Added the svg map
authorLaury GvR <laury@gaslightmedia.com>
Tue, 5 Sep 2017 14:39:27 +0000 (10:39 -0400)
committerLaury GvR <laury@gaslightmedia.com>
Tue, 5 Sep 2017 14:39:27 +0000 (10:39 -0400)
278 files changed:
assets/Footer Graphic.svg [new file with mode: 0644]
assets/Keweenaw Map.svg [new file with mode: 0644]
assets/keweenaw-logo.png [new file with mode: 0644]
css/app.css [new file with mode: 0644]
css/app.css.map [new file with mode: 0644]
functions.php
glm-member-db-events/views/front/events/eventsFeed.html [new file with mode: 0644]
js/app.js [new file with mode: 0644]
js/fastclick/lib/fastclick.js [new file with mode: 0644]
js/foundation/css/foundation.css.map [new file with mode: 0644]
js/foundation/css/normalize.css.map [new file with mode: 0644]
js/foundation/js/foundation.js [new file with mode: 0644]
js/foundation/js/foundation.min.js [new file with mode: 0644]
js/foundation/js/foundation/foundation.abide.js [new file with mode: 0644]
js/foundation/js/foundation/foundation.accordion.js [new file with mode: 0644]
js/foundation/js/foundation/foundation.alert.js [new file with mode: 0644]
js/foundation/js/foundation/foundation.clearing.js [new file with mode: 0644]
js/foundation/js/foundation/foundation.dropdown.js [new file with mode: 0644]
js/foundation/js/foundation/foundation.equalizer.js [new file with mode: 0644]
js/foundation/js/foundation/foundation.interchange.js [new file with mode: 0644]
js/foundation/js/foundation/foundation.joyride.js [new file with mode: 0644]
js/foundation/js/foundation/foundation.js [new file with mode: 0644]
js/foundation/js/foundation/foundation.magellan.js [new file with mode: 0644]
js/foundation/js/foundation/foundation.offcanvas.js [new file with mode: 0644]
js/foundation/js/foundation/foundation.orbit.js [new file with mode: 0644]
js/foundation/js/foundation/foundation.reveal.js [new file with mode: 0644]
js/foundation/js/foundation/foundation.slider.js [new file with mode: 0644]
js/foundation/js/foundation/foundation.tab.js [new file with mode: 0644]
js/foundation/js/foundation/foundation.tooltip.js [new file with mode: 0644]
js/foundation/js/foundation/foundation.topbar.js [new file with mode: 0644]
js/foundation/js/vendor/fastclick.js [new file with mode: 0644]
js/foundation/js/vendor/jquery.cookie.js [new file with mode: 0644]
js/foundation/js/vendor/jquery.js [new file with mode: 0644]
js/foundation/js/vendor/modernizr.js [new file with mode: 0644]
js/foundation/js/vendor/placeholder.js [new file with mode: 0644]
js/jquery-placeholder/jquery.placeholder.js [new file with mode: 0644]
js/jquery.cookie/jquery.cookie.js [new file with mode: 0644]
js/jquery/dist/core.js [new file with mode: 0644]
js/jquery/dist/jquery.js [new file with mode: 0644]
js/jquery/dist/jquery.min.js [new file with mode: 0644]
js/jquery/dist/jquery.min.map [new file with mode: 0644]
js/jquery/dist/jquery.slim.js [new file with mode: 0644]
js/jquery/dist/jquery.slim.min.js [new file with mode: 0644]
js/jquery/dist/jquery.slim.min.map [new file with mode: 0644]
js/jquery/external/sizzle/dist/sizzle.js [new file with mode: 0644]
js/jquery/external/sizzle/dist/sizzle.min.js [new file with mode: 0644]
js/jquery/external/sizzle/dist/sizzle.min.map [new file with mode: 0644]
js/jquery/src/ajax.js [new file with mode: 0644]
js/jquery/src/ajax/jsonp.js [new file with mode: 0644]
js/jquery/src/ajax/load.js [new file with mode: 0644]
js/jquery/src/ajax/parseXML.js [new file with mode: 0644]
js/jquery/src/ajax/script.js [new file with mode: 0644]
js/jquery/src/ajax/var/location.js [new file with mode: 0644]
js/jquery/src/ajax/var/nonce.js [new file with mode: 0644]
js/jquery/src/ajax/var/rquery.js [new file with mode: 0644]
js/jquery/src/ajax/xhr.js [new file with mode: 0644]
js/jquery/src/attributes.js [new file with mode: 0644]
js/jquery/src/attributes/attr.js [new file with mode: 0644]
js/jquery/src/attributes/classes.js [new file with mode: 0644]
js/jquery/src/attributes/prop.js [new file with mode: 0644]
js/jquery/src/attributes/support.js [new file with mode: 0644]
js/jquery/src/attributes/val.js [new file with mode: 0644]
js/jquery/src/callbacks.js [new file with mode: 0644]
js/jquery/src/core.js [new file with mode: 0644]
js/jquery/src/core/DOMEval.js [new file with mode: 0644]
js/jquery/src/core/access.js [new file with mode: 0644]
js/jquery/src/core/init.js [new file with mode: 0644]
js/jquery/src/core/nodeName.js [new file with mode: 0644]
js/jquery/src/core/parseHTML.js [new file with mode: 0644]
js/jquery/src/core/ready-no-deferred.js [new file with mode: 0644]
js/jquery/src/core/ready.js [new file with mode: 0644]
js/jquery/src/core/readyException.js [new file with mode: 0644]
js/jquery/src/core/stripAndCollapse.js [new file with mode: 0644]
js/jquery/src/core/support.js [new file with mode: 0644]
js/jquery/src/core/var/rsingleTag.js [new file with mode: 0644]
js/jquery/src/css.js [new file with mode: 0644]
js/jquery/src/css/addGetHookIf.js [new file with mode: 0644]
js/jquery/src/css/adjustCSS.js [new file with mode: 0644]
js/jquery/src/css/curCSS.js [new file with mode: 0644]
js/jquery/src/css/hiddenVisibleSelectors.js [new file with mode: 0644]
js/jquery/src/css/showHide.js [new file with mode: 0644]
js/jquery/src/css/support.js [new file with mode: 0644]
js/jquery/src/css/var/cssExpand.js [new file with mode: 0644]
js/jquery/src/css/var/getStyles.js [new file with mode: 0644]
js/jquery/src/css/var/isHiddenWithinTree.js [new file with mode: 0644]
js/jquery/src/css/var/rmargin.js [new file with mode: 0644]
js/jquery/src/css/var/rnumnonpx.js [new file with mode: 0644]
js/jquery/src/css/var/swap.js [new file with mode: 0644]
js/jquery/src/data.js [new file with mode: 0644]
js/jquery/src/data/Data.js [new file with mode: 0644]
js/jquery/src/data/var/acceptData.js [new file with mode: 0644]
js/jquery/src/data/var/dataPriv.js [new file with mode: 0644]
js/jquery/src/data/var/dataUser.js [new file with mode: 0644]
js/jquery/src/deferred.js [new file with mode: 0644]
js/jquery/src/deferred/exceptionHook.js [new file with mode: 0644]
js/jquery/src/deprecated.js [new file with mode: 0644]
js/jquery/src/dimensions.js [new file with mode: 0644]
js/jquery/src/effects.js [new file with mode: 0644]
js/jquery/src/effects/Tween.js [new file with mode: 0644]
js/jquery/src/effects/animatedSelector.js [new file with mode: 0644]
js/jquery/src/event.js [new file with mode: 0644]
js/jquery/src/event/ajax.js [new file with mode: 0644]
js/jquery/src/event/alias.js [new file with mode: 0644]
js/jquery/src/event/focusin.js [new file with mode: 0644]
js/jquery/src/event/support.js [new file with mode: 0644]
js/jquery/src/event/trigger.js [new file with mode: 0644]
js/jquery/src/exports/amd.js [new file with mode: 0644]
js/jquery/src/exports/global.js [new file with mode: 0644]
js/jquery/src/jquery.js [new file with mode: 0644]
js/jquery/src/manipulation.js [new file with mode: 0644]
js/jquery/src/manipulation/_evalUrl.js [new file with mode: 0644]
js/jquery/src/manipulation/buildFragment.js [new file with mode: 0644]
js/jquery/src/manipulation/getAll.js [new file with mode: 0644]
js/jquery/src/manipulation/setGlobalEval.js [new file with mode: 0644]
js/jquery/src/manipulation/support.js [new file with mode: 0644]
js/jquery/src/manipulation/var/rcheckableType.js [new file with mode: 0644]
js/jquery/src/manipulation/var/rscriptType.js [new file with mode: 0644]
js/jquery/src/manipulation/var/rtagName.js [new file with mode: 0644]
js/jquery/src/manipulation/wrapMap.js [new file with mode: 0644]
js/jquery/src/offset.js [new file with mode: 0644]
js/jquery/src/queue.js [new file with mode: 0644]
js/jquery/src/queue/delay.js [new file with mode: 0644]
js/jquery/src/selector-native.js [new file with mode: 0644]
js/jquery/src/selector-sizzle.js [new file with mode: 0644]
js/jquery/src/selector.js [new file with mode: 0644]
js/jquery/src/serialize.js [new file with mode: 0644]
js/jquery/src/traversing.js [new file with mode: 0644]
js/jquery/src/traversing/findFilter.js [new file with mode: 0644]
js/jquery/src/traversing/var/dir.js [new file with mode: 0644]
js/jquery/src/traversing/var/rneedsContext.js [new file with mode: 0644]
js/jquery/src/traversing/var/siblings.js [new file with mode: 0644]
js/jquery/src/var/ObjectFunctionString.js [new file with mode: 0644]
js/jquery/src/var/arr.js [new file with mode: 0644]
js/jquery/src/var/class2type.js [new file with mode: 0644]
js/jquery/src/var/concat.js [new file with mode: 0644]
js/jquery/src/var/document.js [new file with mode: 0644]
js/jquery/src/var/documentElement.js [new file with mode: 0644]
js/jquery/src/var/fnToString.js [new file with mode: 0644]
js/jquery/src/var/getProto.js [new file with mode: 0644]
js/jquery/src/var/hasOwn.js [new file with mode: 0644]
js/jquery/src/var/indexOf.js [new file with mode: 0644]
js/jquery/src/var/pnum.js [new file with mode: 0644]
js/jquery/src/var/push.js [new file with mode: 0644]
js/jquery/src/var/rcssNum.js [new file with mode: 0644]
js/jquery/src/var/rnothtmlwhite.js [new file with mode: 0644]
js/jquery/src/var/slice.js [new file with mode: 0644]
js/jquery/src/var/support.js [new file with mode: 0644]
js/jquery/src/var/toString.js [new file with mode: 0644]
js/jquery/src/wrap.js [new file with mode: 0644]
js/modernizr/feature-detects/a-download.js [new file with mode: 0644]
js/modernizr/feature-detects/audio-audiodata-api.js [new file with mode: 0644]
js/modernizr/feature-detects/audio-webaudio-api.js [new file with mode: 0644]
js/modernizr/feature-detects/battery-api.js [new file with mode: 0644]
js/modernizr/feature-detects/battery-level.js [new file with mode: 0644]
js/modernizr/feature-detects/blob-constructor.js [new file with mode: 0644]
js/modernizr/feature-detects/canvas-todataurl-type.js [new file with mode: 0644]
js/modernizr/feature-detects/contenteditable.js [new file with mode: 0644]
js/modernizr/feature-detects/contentsecuritypolicy.js [new file with mode: 0644]
js/modernizr/feature-detects/contextmenu.js [new file with mode: 0644]
js/modernizr/feature-detects/cookies.js [new file with mode: 0644]
js/modernizr/feature-detects/cors.js [new file with mode: 0644]
js/modernizr/feature-detects/css-backgroundposition-shorthand.js [new file with mode: 0644]
js/modernizr/feature-detects/css-backgroundposition-xy.js [new file with mode: 0644]
js/modernizr/feature-detects/css-backgroundrepeat.js [new file with mode: 0644]
js/modernizr/feature-detects/css-backgroundsizecover.js [new file with mode: 0644]
js/modernizr/feature-detects/css-boxsizing.js [new file with mode: 0644]
js/modernizr/feature-detects/css-calc.js [new file with mode: 0644]
js/modernizr/feature-detects/css-cubicbezierrange.js [new file with mode: 0644]
js/modernizr/feature-detects/css-displayrunin.js [new file with mode: 0644]
js/modernizr/feature-detects/css-displaytable.js [new file with mode: 0644]
js/modernizr/feature-detects/css-filters.js [new file with mode: 0644]
js/modernizr/feature-detects/css-hyphens.js [new file with mode: 0644]
js/modernizr/feature-detects/css-lastchild.js [new file with mode: 0644]
js/modernizr/feature-detects/css-mask.js [new file with mode: 0644]
js/modernizr/feature-detects/css-mediaqueries.js [new file with mode: 0644]
js/modernizr/feature-detects/css-objectfit.js [new file with mode: 0644]
js/modernizr/feature-detects/css-overflow-scrolling.js [new file with mode: 0644]
js/modernizr/feature-detects/css-pointerevents.js [new file with mode: 0644]
js/modernizr/feature-detects/css-positionsticky.js [new file with mode: 0644]
js/modernizr/feature-detects/css-regions.js [new file with mode: 0644]
js/modernizr/feature-detects/css-remunit.js [new file with mode: 0644]
js/modernizr/feature-detects/css-resize.js [new file with mode: 0644]
js/modernizr/feature-detects/css-scrollbars.js [new file with mode: 0644]
js/modernizr/feature-detects/css-shapes.js [new file with mode: 0644]
js/modernizr/feature-detects/css-subpixelfont.js [new file with mode: 0644]
js/modernizr/feature-detects/css-supports.js [new file with mode: 0644]
js/modernizr/feature-detects/css-userselect.js [new file with mode: 0644]
js/modernizr/feature-detects/css-vhunit.js [new file with mode: 0644]
js/modernizr/feature-detects/css-vmaxunit.js [new file with mode: 0644]
js/modernizr/feature-detects/css-vminunit.js [new file with mode: 0644]
js/modernizr/feature-detects/css-vwunit.js [new file with mode: 0644]
js/modernizr/feature-detects/custom-protocol-handler.js [new file with mode: 0644]
js/modernizr/feature-detects/dart.js [new file with mode: 0644]
js/modernizr/feature-detects/dataview-api.js [new file with mode: 0644]
js/modernizr/feature-detects/dom-classlist.js [new file with mode: 0644]
js/modernizr/feature-detects/dom-createElement-attrs.js [new file with mode: 0644]
js/modernizr/feature-detects/dom-dataset.js [new file with mode: 0644]
js/modernizr/feature-detects/dom-microdata.js [new file with mode: 0644]
js/modernizr/feature-detects/elem-datalist.js [new file with mode: 0644]
js/modernizr/feature-detects/elem-details.js [new file with mode: 0644]
js/modernizr/feature-detects/elem-output.js [new file with mode: 0644]
js/modernizr/feature-detects/elem-progress-meter.js [new file with mode: 0644]
js/modernizr/feature-detects/elem-ruby.js [new file with mode: 0644]
js/modernizr/feature-detects/elem-time.js [new file with mode: 0644]
js/modernizr/feature-detects/elem-track.js [new file with mode: 0644]
js/modernizr/feature-detects/emoji.js [new file with mode: 0644]
js/modernizr/feature-detects/es5-strictmode.js [new file with mode: 0644]
js/modernizr/feature-detects/event-deviceorientation-motion.js [new file with mode: 0644]
js/modernizr/feature-detects/exif-orientation.js [new file with mode: 0644]
js/modernizr/feature-detects/file-api.js [new file with mode: 0644]
js/modernizr/feature-detects/file-filesystem.js [new file with mode: 0644]
js/modernizr/feature-detects/forms-fileinput.js [new file with mode: 0644]
js/modernizr/feature-detects/forms-formattribute.js [new file with mode: 0644]
js/modernizr/feature-detects/forms-inputnumber-l10n.js [new file with mode: 0644]
js/modernizr/feature-detects/forms-placeholder.js [new file with mode: 0644]
js/modernizr/feature-detects/forms-speechinput.js [new file with mode: 0644]
js/modernizr/feature-detects/forms-validation.js [new file with mode: 0644]
js/modernizr/feature-detects/fullscreen-api.js [new file with mode: 0644]
js/modernizr/feature-detects/gamepad.js [new file with mode: 0644]
js/modernizr/feature-detects/getusermedia.js [new file with mode: 0644]
js/modernizr/feature-detects/ie8compat.js [new file with mode: 0644]
js/modernizr/feature-detects/iframe-sandbox.js [new file with mode: 0644]
js/modernizr/feature-detects/iframe-seamless.js [new file with mode: 0644]
js/modernizr/feature-detects/iframe-srcdoc.js [new file with mode: 0644]
js/modernizr/feature-detects/img-apng.js [new file with mode: 0644]
js/modernizr/feature-detects/img-webp.js [new file with mode: 0644]
js/modernizr/feature-detects/json.js [new file with mode: 0644]
js/modernizr/feature-detects/lists-reversed.js [new file with mode: 0644]
js/modernizr/feature-detects/mathml.js [new file with mode: 0644]
js/modernizr/feature-detects/network-connection.js [new file with mode: 0644]
js/modernizr/feature-detects/network-eventsource.js [new file with mode: 0644]
js/modernizr/feature-detects/network-xhr2.js [new file with mode: 0644]
js/modernizr/feature-detects/notification.js [new file with mode: 0644]
js/modernizr/feature-detects/performance.js [new file with mode: 0644]
js/modernizr/feature-detects/pointerlock-api.js [new file with mode: 0644]
js/modernizr/feature-detects/quota-management-api.js [new file with mode: 0644]
js/modernizr/feature-detects/requestanimationframe.js [new file with mode: 0644]
js/modernizr/feature-detects/script-async.js [new file with mode: 0644]
js/modernizr/feature-detects/script-defer.js [new file with mode: 0644]
js/modernizr/feature-detects/style-scoped.js [new file with mode: 0644]
js/modernizr/feature-detects/svg-filters.js [new file with mode: 0644]
js/modernizr/feature-detects/unicode.js [new file with mode: 0644]
js/modernizr/feature-detects/url-data-uri.js [new file with mode: 0644]
js/modernizr/feature-detects/userdata.js [new file with mode: 0644]
js/modernizr/feature-detects/vibration.js [new file with mode: 0644]
js/modernizr/feature-detects/web-intents.js [new file with mode: 0644]
js/modernizr/feature-detects/webgl-extensions.js [new file with mode: 0644]
js/modernizr/feature-detects/websockets-binary.js [new file with mode: 0644]
js/modernizr/feature-detects/window-framed.js [new file with mode: 0644]
js/modernizr/feature-detects/workers-blobworkers.js [new file with mode: 0644]
js/modernizr/feature-detects/workers-dataworkers.js [new file with mode: 0644]
js/modernizr/feature-detects/workers-sharedworkers.js [new file with mode: 0644]
js/modernizr/grunt.js [new file with mode: 0644]
js/modernizr/modernizr.js [new file with mode: 0644]
js/modernizr/modernizr.min.js [new file with mode: 0644]
js/modernizr/test/caniuse_files/ga.js [new file with mode: 0644]
js/modernizr/test/caniuse_files/jquery.min.js [new file with mode: 0644]
js/modernizr/test/caniuse_files/modernizr-1.7.min.js [new file with mode: 0644]
js/modernizr/test/js/dumpdata.js [new file with mode: 0644]
js/modernizr/test/js/lib/detect-global.js [new file with mode: 0644]
js/modernizr/test/js/lib/jquery-1.7b2.js [new file with mode: 0644]
js/modernizr/test/js/lib/jsonselect.js [new file with mode: 0644]
js/modernizr/test/js/lib/polyfills.js [new file with mode: 0644]
js/modernizr/test/js/lib/uaparser.js [new file with mode: 0644]
js/modernizr/test/js/setup.js [new file with mode: 0644]
js/modernizr/test/js/unit-caniuse.js [new file with mode: 0644]
js/modernizr/test/js/unit.js [new file with mode: 0644]
js/modernizr/test/qunit/qunit.js [new file with mode: 0644]
js/modernizr/test/qunit/run-qunit.js [new file with mode: 0644]
parts/city-map.php [new file with mode: 0644]
parts/event-feed.php [new file with mode: 0644]
parts/map-section.php [new file with mode: 0644]
scss/_page.header.scss
scss/_settings.scss
scss/_topbar.scss
sections/front-page.php
sections/header.php
sections/top-bar.php

diff --git a/assets/Footer Graphic.svg b/assets/Footer Graphic.svg
new file mode 100644 (file)
index 0000000..a7ec83b
--- /dev/null
@@ -0,0 +1,12147 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 21.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+        viewBox="0 0 2000 550" enable-background="new 0 0 2000 550" xml:space="preserve">
+<g id="sky">
+       <g>
+               <defs>
+                       <rect id="SVGID_1_" width="2000" height="511.807"/>
+               </defs>
+               <clipPath id="SVGID_2_">
+                       <use xlink:href="#SVGID_1_"  overflow="visible"/>
+               </clipPath>
+               <g clip-path="url(#SVGID_2_)">
+                       <defs>
+                               <rect id="SVGID_3_" width="2000.002" height="511.807"/>
+                       </defs>
+                       <clipPath id="SVGID_4_">
+                               <use xlink:href="#SVGID_3_"  overflow="visible"/>
+                       </clipPath>
+                       <g opacity="0.5" clip-path="url(#SVGID_4_)">
+                               <g>
+                                       <defs>
+                                               <rect id="SVGID_5_" x="-5.402" y="-1.001" width="2010.804" height="519.817"/>
+                                       </defs>
+                                       <clipPath id="SVGID_6_">
+                                               <use xlink:href="#SVGID_5_"  overflow="visible"/>
+                                       </clipPath>
+                                       <g clip-path="url(#SVGID_6_)">
+                                               <defs>
+                                                       <rect id="SVGID_7_" width="2000.002" height="511.807"/>
+                                               </defs>
+                                               <clipPath id="SVGID_8_">
+                                                       <use xlink:href="#SVGID_7_"  overflow="visible"/>
+                                               </clipPath>
+                                               
+                                                       <linearGradient id="SVGID_9_" gradientUnits="userSpaceOnUse" x1="1.1226" y1="591.3657" x2="2.1238" y2="591.3657" gradientTransform="matrix(0 -726.3913 726.3913 0 -428562.9375 1456.46)">
+                                                       <stop  offset="0" style="stop-color:#FFFFFF"/>
+                                                       <stop  offset="0.2986" style="stop-color:#FFFFFF"/>
+                                                       <stop  offset="1" style="stop-color:#8DC1D7"/>
+                                               </linearGradient>
+                                               <rect x="0" y="0" clip-path="url(#SVGID_8_)" fill="url(#SVGID_9_)" width="2000.002" height="511.807"/>
+                                       </g>
+                               </g>
+                       </g>
+               </g>
+       </g>
+</g>
+<g id="light_green_trees">
+       <g>
+               <path fill="#939E85" d="M1965.811,51.279c-0.042,0.022-0.086,0.045-0.115,0.075c-0.108,0.112-0.177,0.251-0.258,0.375
+                       c0.006,0.105,0.113,0.103,0.189,0.127c0.073,0.024,0.11,0.119,0.216,0.088c0.099-0.104-0.027-0.255,0.072-0.335
+                       c0.015-0.012,0.033-0.018,0.048-0.027C1965.923,51.479,1965.871,51.379,1965.811,51.279 M1961.563,50.786
+                       c-0.115,0.045-0.208,0.105-0.274,0.198c-0.075,0.112-0.071,0.236,0.013,0.344c0.04,0.051,0.088,0.087,0.141,0.107
+                       c-0.007-0.087-0.011-0.173-0.033-0.256c-0.019-0.08,0.031-0.141,0.095-0.195C1961.582,50.922,1961.586,50.851,1961.563,50.786
+                        M1932.267,69.381c-0.184-0.2-0.19-0.401-0.031-0.612c0.016-0.023,0.026-0.056,0.022-0.083c-0.003-0.027-0.025-0.057-0.048-0.071
+                       c-0.027-0.016-0.077-0.024-0.098-0.011c-0.11,0.067-0.215,0.139-0.309,0.202c-0.148-0.02-0.157-0.138-0.241-0.179
+                       c-0.21-0.109-0.299-0.236-0.17-0.438c0.039-0.055,0-0.113-0.057-0.153c-0.028-0.02-0.059-0.031-0.09-0.047
+                       c-0.046,0.271-0.122,0.533-0.424,0.723c-0.112,0.069-0.23,0.138-0.32,0.224c-0.197,0.183-0.197,0.357-0.017,0.564
+                       c0.062,0.073,0.144,0.133,0.206,0.206c0.169,0.202,0.351,0.259,0.621,0.1c0.323-0.193,0.67-0.246,1.023-0.251
+                       C1932.331,69.493,1932.314,69.432,1932.267,69.381 M1931.153,66.72c-0.045-0.033-0.089-0.069-0.137-0.1
+                       c0.024,0.073,0.064,0.149,0.119,0.224C1931.191,66.822,1931.202,66.755,1931.153,66.72 M1922.671,72.729
+                       c-0.141-0.116-0.229-0.251-0.299-0.395c-0.055,0.053-0.117,0.11-0.189,0.177c-0.211,0.2-0.469,0.409-0.793,0.479
+                       c-0.054,0.014-0.105,0.083-0.072,0.149c0.014,0.032,0.072,0.075,0.095,0.069c0.053-0.012,0.098-0.013,0.139-0.012
+                       c0.185-0.054,0.369-0.075,0.591,0.014c0.172,0.069,0.318-0.089,0.455-0.182C1922.717,72.947,1922.794,72.831,1922.671,72.729
+                        M1921.378,71.069c-0.031-0.004-0.059-0.018-0.09-0.027c-0.07,0.078-0.147,0.155-0.232,0.228c0.275,0.083,0.414,0.287,0.531,0.546
+                       c0.103-0.102,0.153-0.167,0.217-0.212c0.048-0.034,0.114-0.042,0.174-0.056c0.006-0.002,0.01,0.002,0.017,0.002
+                       C1921.845,71.334,1921.701,71.129,1921.378,71.069 M1905.426,83.443c-0.058,0.016-0.112,0.042-0.158,0.071
+                       c-0.016,0.012-0.013,0.049-0.013,0.073c0,0.008,0.023,0.016,0.041,0.027c0.074-0.004,0.146-0.024,0.198-0.075
+                       c0.017-0.016,0.023-0.055,0.01-0.071C1905.49,83.449,1905.444,83.437,1905.426,83.443 M1888.084,96.462
+                       c-0.151-0.1-0.278-0.23-0.442-0.308c-0.175-0.084-0.328-0.151-0.331-0.348c-0.002-0.091-0.103-0.151-0.179-0.211
+                       c-0.027-0.02-0.048-0.041-0.072-0.062c-0.055,0.033-0.117,0.059-0.199,0.057c-0.09-0.002-0.176,0.01-0.244,0.059
+                       c-0.125,0.1-0.224,0.229-0.367,0.303c-0.142,0.073-0.337,0.066-0.443,0.204l0.002,0.002c0.108-0.014,0.205-0.004,0.292,0.061
+                       c0.079,0.055,0.16,0.11,0.248,0.173c0.089-0.089,0.16-0.172,0.244-0.24c0.122-0.102,0.281-0.063,0.313,0.08
+                       c0.017,0.071,0.003,0.144,0.003,0.23c0.158,0.04,0.294-0.037,0.437-0.07c0.087-0.018,0.168-0.034,0.254-0.01
+                       c0.094,0.024,0.153,0.098,0.114,0.167c-0.093,0.173-0.196,0.344-0.289,0.515c-0.017,0.029-0.036,0.049-0.054,0.068
+                       c0.243-0.135,0.488-0.267,0.731-0.404c0.001-0.004,0.001-0.006,0.007-0.011C1888.201,96.609,1888.209,96.545,1888.084,96.462
+                        M1886.241,97.745c0.32-0.171,0.641-0.344,0.964-0.522c-0.05,0.016-0.103,0.027-0.16,0.035c-0.318,0.047-0.543,0.238-0.784,0.396
+                       C1886.227,97.676,1886.224,97.715,1886.241,97.745 M1879.661,96.554c-0.05-0.161-0.196-0.226-0.363-0.287
+                       c-0.167-0.059-0.194-0.113-0.094-0.233c0.091-0.108,0.098-0.173-0.026-0.255c-0.15-0.1-0.281-0.232-0.442-0.309
+                       c-0.174-0.084-0.329-0.151-0.333-0.348c-0.002-0.091-0.099-0.149-0.179-0.21c-0.024-0.02-0.046-0.042-0.072-0.062
+                       c-0.055,0.035-0.115,0.059-0.198,0.057c-0.089-0.002-0.177,0.009-0.242,0.059c-0.124,0.1-0.227,0.228-0.367,0.302
+                       c-0.141,0.075-0.34,0.067-0.445,0.204l0.002,0.002c0.108-0.013,0.208-0.004,0.295,0.061c0.075,0.057,0.157,0.112,0.247,0.175
+                       c0.089-0.089,0.158-0.173,0.241-0.242c0.125-0.102,0.28-0.062,0.313,0.08c0.017,0.071,0.002,0.144,0.002,0.234
+                       c0.16,0.038,0.296-0.04,0.441-0.071c0.086-0.02,0.165-0.035,0.253-0.011c0.094,0.027,0.153,0.097,0.116,0.166
+                       c-0.096,0.173-0.197,0.344-0.293,0.517c-0.076,0.138-0.218,0.169-0.38,0.193c-0.317,0.047-0.543,0.237-0.784,0.395
+                       c-0.042,0.029-0.05,0.086-0.009,0.117c0.033,0.023,0.102,0.036,0.141,0.023c0.077-0.03,0.143-0.079,0.215-0.118
+                       c0.048-0.024,0.12-0.036,0.134,0.013c0.057,0.178,0.222,0.204,0.395,0.238c0.103,0.018,0.115,0.092,0.038,0.168
+                       c-0.071,0.067-0.15,0.125-0.218,0.191c-0.011,0.013-0.019,0.027-0.026,0.04c0.077-0.022,0.158-0.038,0.25-0.02
+                       c0.036,0.006,0.095-0.034,0.124-0.065c0.083-0.09,0.194-0.184,0.222-0.288c0.041-0.138,0.081-0.218,0.268-0.2
+                       c0.125,0.014,0.184-0.067,0.243-0.142c0.08-0.108,0.2-0.147,0.354-0.153C1879.667,96.769,1879.709,96.698,1879.661,96.554
+                        M1870.277,95.101c-0.07,0.064-0.138,0.125-0.221,0.168c-0.141,0.075-0.339,0.067-0.444,0.204l0.002,0.002
+                       c0.108-0.013,0.208-0.004,0.294,0.061c0.077,0.057,0.158,0.112,0.248,0.175c0.057-0.057,0.108-0.11,0.156-0.159
+                       c-0.091-0.05-0.095-0.103-0.014-0.2C1870.387,95.247,1870.392,95.179,1870.277,95.101 M1869.282,93.653
+                       c-0.206,0.114-0.398,0.24-0.607,0.344c-0.118,0.058-0.173,0.139-0.222,0.236l0.007,0.006c0.215-0.042,0.451-0.008,0.642-0.14
+                       c0.013-0.008,0.027-0.015,0.042-0.022c-0.039-0.033-0.08-0.066-0.118-0.102c-0.059-0.055-0.021-0.147,0.062-0.182
+                       c0.017-0.004,0.033-0.012,0.048-0.016c0.101-0.02,0.23-0.013,0.263-0.115c0.011-0.038,0.019-0.079,0.02-0.116
+                       C1869.389,93.589,1869.339,93.624,1869.282,93.653 M1863.467,95.87c-0.004-0.015-0.014-0.027-0.022-0.039
+                       c-0.04,0.08-0.066,0.163-0.069,0.249C1863.48,96.052,1863.503,95.986,1863.467,95.87 M1862.036,87.797
+                       c0.086-0.055,0.016-0.21-0.094-0.23c-0.031,0.002-0.083-0.002-0.09,0.008c-0.058,0.114-0.158,0.154-0.296,0.178
+                       c-0.101,0.018-0.125,0.166-0.053,0.241c0.016,0.018,0.064,0.038,0.081,0.032C1861.737,87.952,1861.894,87.884,1862.036,87.797
+                        M1861.306,94.559c-0.135,0.051-0.215,0.157-0.301,0.253c-0.017,0.02-0.022,0.049-0.026,0.075
+                       c-0.002,0.008,0.013,0.027,0.024,0.031c0.013,0.006,0.036,0.01,0.046,0.005c0.167-0.105,0.248-0.276,0.443-0.358
+                       C1861.411,94.488,1861.358,94.539,1861.306,94.559 M1858.923,81.517c-0.111-0.026-0.223-0.031-0.335-0.047
+                       c0.055,0.133,0.239,0.133,0.327,0.23c0.008,0.006,0.064-0.008,0.079-0.024c0.019-0.018,0.028-0.055,0.019-0.075
+                       C1858.992,81.568,1858.961,81.524,1858.923,81.517 M1853.339,102.026c-0.056,0.018-0.11,0.042-0.156,0.073
+                       c-0.017,0.012-0.011,0.049-0.011,0.071c0,0.01,0.022,0.016,0.04,0.029c0.074-0.004,0.146-0.024,0.198-0.075
+                       c0.017-0.016,0.023-0.055,0.008-0.071C1853.406,102.034,1853.361,102.019,1853.339,102.026 M1853.662,106.599
+                       c-0.038-0.039-0.088-0.069-0.122-0.096c-0.077,0.003-0.104,0.032-0.103,0.073c0.008,0.075,0.063,0.12,0.151,0.125
+                       c0.026,0,0.062-0.014,0.077-0.034C1853.678,106.652,1853.676,106.613,1853.662,106.599 M1853.189,108.146v-0.004h-0.005
+                       c-0.048-0.053-0.094-0.106-0.141-0.157c-0.003-0.006-0.032-0.002-0.039,0.004c-0.009,0.007-0.016,0.024-0.014,0.034
+                       c0.021,0.09,0.067,0.151,0.193,0.119v0.002C1853.186,108.146,1853.189,108.146,1853.189,108.146
+                       c0.002,0.01,0.006,0.016,0.008,0.025c0.006-0.002,0.014-0.005,0.021-0.007C1853.208,108.157,1853.198,108.153,1853.189,108.146
+                        M1846.856,101.506c0.055,0.061,0.124,0.091,0.205,0.036c0.05-0.034,0.094-0.073,0.136-0.116c0.041-0.039,0.094-0.088,0.065-0.143
+                       c-0.051-0.097-0.129-0.025-0.201-0.018c-0.062,0.004-0.125-0.014-0.187-0.016c-0.055-0.002-0.088,0.024-0.095,0.073
+                       C1846.773,101.392,1846.805,101.453,1846.856,101.506 M1845.853,95.144c0.088-0.053,0.017-0.208-0.09-0.23
+                       c-0.031,0.004-0.084-0.002-0.092,0.011c-0.057,0.112-0.16,0.153-0.296,0.177c-0.101,0.018-0.127,0.167-0.055,0.24
+                       c0.019,0.02,0.066,0.04,0.083,0.034C1845.557,95.303,1845.713,95.231,1845.853,95.144 M1845.126,101.908
+                       c-0.138,0.052-0.215,0.156-0.301,0.254c-0.017,0.018-0.022,0.049-0.026,0.075c-0.002,0.009,0.011,0.024,0.024,0.031
+                       c0.011,0.006,0.033,0.008,0.045,0.004c0.168-0.104,0.248-0.277,0.443-0.359C1845.232,101.838,1845.179,101.889,1845.126,101.908
+                        M1842.743,88.864c-0.11-0.021-0.225-0.031-0.334-0.044c0.052,0.131,0.238,0.131,0.327,0.228c0.007,0.006,0.062-0.007,0.079-0.022
+                       c0.016-0.018,0.027-0.055,0.016-0.075C1842.812,88.918,1842.778,88.874,1842.743,88.864 M1839.466,112.036
+                       c-0.188-0.1-0.335-0.277-0.608-0.206c-0.068,0.018-0.123-0.029-0.171-0.069c-0.066-0.059-0.128-0.124-0.2-0.182
+                       c-0.129-0.104-0.18-0.112-0.344-0.033c-0.081,0.039-0.153,0.123-0.259,0.082c-0.1-0.04-0.198-0.098-0.275-0.165
+                       c-0.064-0.057-0.105-0.139-0.145-0.212c-0.037-0.063-0.034-0.152-0.087-0.187c-0.086-0.057-0.128,0.067-0.2,0.073
+                       c-0.156,0.012-0.314,0.008-0.472,0c-0.038-0.002-0.083-0.045-0.108-0.078c-0.06-0.081-0.108-0.169-0.163-0.253
+                       c-0.02-0.036-0.05-0.091-0.101-0.071c-0.277,0.106-0.459-0.104-0.712-0.126c0.088,0.133,0.105,0.22,0,0.357
+                       c-0.026,0.036-0.069,0.059-0.101,0.091c-0.134,0.135-0.208,0.293-0.09,0.452c0.069,0.091,0.033,0.154-0.01,0.216
+                       c0.07-0.08,0.156-0.138,0.307-0.104c0.115,0.024,0.132-0.063,0.187-0.104c0.042-0.03,0.103-0.038,0.136-0.005
+                       c0.09,0.091,0.163,0.198,0.349,0.154c0.055-0.014,0.108,0.053,0.134,0.105c0.042,0.085,0.119,0.13,0.224,0.136
+                       c0.171,0.013,0.314,0.08,0.45,0.155c0.172,0.096,0.323,0.226,0.567,0.142c0.067-0.02,0.199,0.002,0.254,0.093
+                       c0.074,0.118,0.198,0.135,0.336,0.114c0.189-0.03,0.337,0.102,0.522,0.09c0.024-0.002,0.057,0.027,0.077,0.045
+                       c0.053,0.053,0.078,0.133,0.172,0.139c0.11,0.01,0.158-0.086,0.232-0.133c0.064-0.042,0.127-0.089,0.174-0.144
+                       C1839.673,112.266,1839.652,112.138,1839.466,112.036 M1837.16,109.376c-0.054,0.018-0.11,0.042-0.156,0.073
+                       c-0.018,0.012-0.014,0.047-0.014,0.071c0.002,0.008,0.024,0.016,0.041,0.027c0.075-0.004,0.148-0.024,0.2-0.075
+                       c0.017-0.016,0.018-0.053,0.007-0.071C1837.227,109.385,1837.181,109.369,1837.16,109.376 M1835.03,111.804
+                       c-0.085,0.004-0.156,0.047-0.184,0.115c-0.01,0.025-0.002,0.054,0.005,0.081c0.003,0.008,0.026,0.027,0.033,0.024
+                       c0.143-0.047,0.323-0.036,0.428-0.14c0.011-0.022,0.024-0.045,0.039-0.065c0.002-0.002,0.005-0.006,0.007-0.009
+                       C1835.247,111.806,1835.14,111.797,1835.03,111.804 M1834.589,114.42c0.01,0.022,0.008,0.042,0.013,0.065
+                       c0.04-0.016,0.083-0.031,0.123-0.047c-0.055-0.059-0.051-0.126-0.024-0.202c0.068-0.183,0.17-0.355,0.162-0.556
+                       c0-0.006,0.005-0.011,0.005-0.017c-0.064,0.064-0.126,0.133-0.176,0.212C1834.589,114.047,1834.506,114.214,1834.589,114.42
+                        M1834.425,112.077c-0.062,0.004-0.124-0.014-0.187-0.016c-0.055-0.002-0.088,0.024-0.096,0.073
+                       c-0.005,0.069,0.027,0.132,0.077,0.184c0.058,0.061,0.125,0.091,0.206,0.036c0.05-0.033,0.093-0.073,0.136-0.115
+                       c0.041-0.04,0.094-0.089,0.065-0.146C1834.576,111.997,1834.497,112.07,1834.425,112.077 M1835.013,113.609
+                       c0.112,0.038,0.211,0.056,0.31-0.023c0.065-0.054,0.146-0.047,0.234-0.024c0.04,0.011,0.123,0.008,0.13-0.007
+                       c0.149-0.271,0.349-0.084,0.533-0.049c0.031,0.169,0.144,0.244,0.283,0.291c0.133-0.047,0.265-0.093,0.399-0.142
+                       c-0.077-0.12-0.19-0.22-0.301-0.326c-0.153,0.024-0.254,0.122-0.381,0.177c-0.016-0.194-0.234-0.324-0.232-0.53
+                       c0-0.051-0.141-0.08-0.205-0.019c-0.086,0.074-0.153,0.078-0.219,0.044c0.01,0.031,0.017,0.063,0.039,0.096
+                       c0.086,0.144,0.029,0.23-0.174,0.277c-0.204,0.045-0.364,0.126-0.498,0.237C1834.958,113.603,1834.984,113.601,1835.013,113.609
+                        M1833.217,105.956c0.086-0.053,0.019-0.208-0.091-0.23c-0.031,0.005-0.082-0.002-0.09,0.012c-0.057,0.11-0.16,0.153-0.297,0.177
+                       c-0.101,0.017-0.127,0.167-0.052,0.239c0.017,0.018,0.065,0.04,0.081,0.034C1832.921,106.114,1833.077,106.043,1833.217,105.956
+                        M1832.491,112.718c-0.138,0.053-0.215,0.157-0.301,0.255c-0.017,0.017-0.022,0.049-0.027,0.075
+                       c-0.002,0.01,0.013,0.024,0.025,0.031c0.011,0.007,0.032,0.01,0.045,0.002c0.167-0.102,0.248-0.275,0.443-0.357
+                       C1832.594,112.649,1832.543,112.7,1832.491,112.718 M1800.146,122.835c-0.163-0.147-0.34-0.24-0.595-0.157
+                       c-0.21,0.068-0.369,0.011-0.457-0.181c-0.088-0.184-0.27-0.308-0.462-0.41c-0.231-0.124-0.429-0.279-0.633-0.435v0.006
+                       c-0.117,0.36-0.33,0.655-0.645,0.93c0.275,0.082,0.413,0.286,0.529,0.546c0.102-0.102,0.152-0.169,0.217-0.213
+                       c0.048-0.033,0.115-0.041,0.174-0.055c0.02-0.004,0.041,0.014,0.06,0.022c0.811,0.364,0.727,0.393,0.149,0.941
+                       c-0.213,0.2-0.47,0.409-0.796,0.479c-0.051,0.012-0.102,0.08-0.071,0.149c0.016,0.031,0.071,0.075,0.095,0.069
+                       c0.026-0.006,0.05-0.006,0.074-0.008c0.014-0.016,0.031-0.036,0.046-0.058c0.038-0.057,0.109-0.062,0.182-0.069
+                       c0.343-0.025,0.685-0.057,1.028-0.086c0.081-0.004,0.18,0.1,0.229,0.018c0.044-0.069,0.041-0.189-0.005-0.256
+                       c-0.108-0.166-0.153-0.357-0.306-0.506c-0.055-0.053,0.007-0.167,0.088-0.175c0.241-0.024,0.483-0.04,0.726-0.059
+                       c0.293,0.149,0.475-0.058,0.74-0.138C1800.368,123.049,1800.263,122.939,1800.146,122.835 M1798.611,128.612
+                       c0.062-0.04,0.098-0.1,0.108-0.172c-0.046,0.061-0.093,0.12-0.149,0.177C1798.587,128.617,1798.597,128.614,1798.611,128.612
+                        M1789.867,122.362c0.015,0.049,0.039,0.086,0.064,0.124c0.003-0.002,0.003-0.004,0.006-0.007
+                       C1789.929,122.422,1789.901,122.389,1789.867,122.362 M1770.458,128.189c-0.046-0.064-0.119-0.161-0.18-0.159
+                       c-0.238,0.004-0.255-0.318-0.538-0.279c-0.292,0.038-0.457-0.267-0.709-0.364c-0.03-0.011-0.041-0.122-0.02-0.169
+                       c0.083-0.186,0.022-0.346-0.145-0.416c-0.039-0.016-0.063-0.038-0.094-0.058c-0.015,0.067-0.026,0.132-0.048,0.195
+                       c-0.22,0.634-0.128,0.464,0.254,0.892c0.038,0.045,0.134,0.066,0.15,0.114c0.056,0.149,0.163,0.175,0.323,0.137
+                       c0.048-0.013,0.103-0.013,0.156-0.013c0.081-0.002,0.142,0.068,0.088,0.117c-0.023,0.02-0.042,0.042-0.062,0.065
+                       c0.039,0.013,0.077,0.029,0.12,0.047c0.156,0.071,0.308,0.147,0.468,0.204c0.081,0.027,0.174-0.006,0.228-0.08
+                       C1770.5,128.349,1770.506,128.26,1770.458,128.189 M1763.851,140.608c-0.151-0.085-0.11-0.24-0.18-0.356
+                       c-0.042-0.075,0.022-0.14,0.081-0.198c0.074-0.066,0.063-0.129-0.022-0.184c-0.04-0.027-0.073-0.063-0.117-0.089
+                       c-0.294-0.171-0.366-0.261-0.439-0.546c-0.029-0.108-0.11-0.177-0.23-0.226c-0.241-0.102-0.457-0.228-0.602-0.41
+                       c-0.002,0.008-0.007,0.015-0.011,0.027c-0.048,0.157-0.113,0.361-0.096,0.475c0.009,0.059,0,0.11-0.053,0.151
+                       c-0.103,0.075-0.057,0.151,0.005,0.217c0.136,0.147,0.184,0.28-0.002,0.431c-0.081,0.064-0.101,0.169-0.065,0.271
+                       c0.022,0.067,0.027,0.135,0.036,0.204c0.018,0.12-0.005,0.222-0.081,0.304c0.275,0.003,0.509-0.122,0.767-0.168
+                       c0.213-0.038,0.373-0.034,0.529,0.092c0.113,0.093,0.23,0.185,0.406,0.167c0.081-0.007,0.197,0.033,0.222-0.062
+                       C1764.018,140.641,1763.909,140.637,1763.851,140.608 M1762.205,144.524c0.105-0.006,0.212-0.018,0.318-0.024
+                       c0.002,0,0.002,0,0.004,0.002c0.011-0.012,0.024-0.019,0.036-0.031c0.041-0.042,0.093-0.088,0.064-0.144
+                       c-0.049-0.098-0.132-0.027-0.2-0.017c-0.062,0.003-0.125-0.014-0.187-0.016c-0.057-0.002-0.089,0.024-0.096,0.073
+                       C1762.14,144.425,1762.166,144.478,1762.205,144.524 M1762.852,144.231c0.003,0.008,0.025,0.027,0.033,0.024
+                       c0.07-0.021,0.148-0.031,0.222-0.047c-0.053-0.053-0.105-0.102-0.155-0.15c-0.048,0.019-0.087,0.048-0.105,0.092
+                       C1762.835,144.176,1762.844,144.206,1762.852,144.231 M1761.384,143.262c-0.077-0.041-0.149-0.088-0.22-0.137
+                       c-0.034,0.074-0.074,0.149-0.132,0.218c-0.026,0.033-0.022,0.084,0.023,0.113c0.048,0.029,0.096,0.011,0.127-0.022
+                       c0.064-0.066,0.137-0.122,0.219-0.161C1761.397,143.269,1761.389,143.265,1761.384,143.262 M1761.126,137.958
+                       c-0.031,0.004-0.083-0.003-0.088,0.011c-0.057,0.112-0.16,0.153-0.297,0.177c-0.103,0.018-0.127,0.167-0.055,0.24
+                       c0.019,0.018,0.066,0.039,0.083,0.034c0.153-0.073,0.309-0.144,0.45-0.232C1761.305,138.136,1761.239,137.981,1761.126,137.958
+                        M1760.493,144.95c-0.138,0.053-0.215,0.157-0.302,0.256c-0.018,0.017-0.021,0.048-0.025,0.075
+                       c-0.003,0.008,0.011,0.024,0.023,0.031c0.01,0.006,0.034,0.008,0.044,0.002c0.171-0.102,0.251-0.275,0.444-0.357
+                       C1760.596,144.88,1760.545,144.932,1760.493,144.95 M1754.828,155.081c-0.081-0.047-0.158-0.104-0.241-0.151
+                       c0.002,0.018,0.005,0.038,0.009,0.057c0.037,0.258-0.018,0.473-0.255,0.619c0.046,0.051,0.077,0.118,0.158,0.124
+                       c0.114,0.008,0.158-0.086,0.233-0.133c0.063-0.042,0.125-0.091,0.175-0.144C1755.039,155.309,1755.015,155.183,1754.828,155.081
+                        M1753.726,150.283c-0.079-0.039-0.158-0.082-0.232-0.126c0.041,0.237-0.395,0.508-0.036,0.681
+                       c0.224,0.112,0.387-0.124,0.578-0.267C1753.941,150.472,1753.865,150.352,1753.726,150.283 M1752.827,150.843
+                       c-0.052,0.004-0.143-0.005-0.156,0.015c-0.028,0.061-0.068,0.106-0.114,0.144c0.055,0.055,0.114,0.108,0.201,0.141
+                       c0.073,0.028,0.141,0.076,0.224,0.063c0.014-0.002,0.026,0,0.038-0.002C1753.109,151.094,1752.996,150.874,1752.827,150.843
+                        M1752.603,146.837c-0.022-0.047-0.053-0.084-0.089-0.122c0.031,0.165,0.037,0.331-0.014,0.497
+                       c0.079-0.035,0.165-0.051,0.184-0.139C1752.7,146.983,1752.635,146.914,1752.603,146.837 M1747.798,140.608
+                       c-0.033-0.061-0.09-0.136-0.152-0.149c-0.189-0.04-0.383-0.054-0.574-0.079c0.091,0.227,0.409,0.227,0.562,0.395
+                       c0.009,0.012,0.111-0.014,0.136-0.042C1747.798,140.703,1747.818,140.639,1747.798,140.608 M1745.358,144.762
+                       c-0.015-0.014-0.029-0.027-0.044-0.04c-0.052,0.004-0.124,0-0.133,0.018c-0.079,0.157-0.216,0.23-0.393,0.277
+                       c0.007,0.002,0.015,0.002,0.022,0.004c0.104,0.029,0.215,0.049,0.325,0.069c0.077,0.015,0.16,0.069,0.237,0.093
+                       c0.04-0.022,0.084-0.042,0.121-0.067c0.053-0.031,0.072-0.085,0.068-0.142C1745.515,144.897,1745.427,144.824,1745.358,144.762
+                        M1740.309,134.487c-0.034-0.059-0.091-0.135-0.153-0.149c-0.189-0.04-0.382-0.053-0.577-0.078
+                       c0.094,0.228,0.412,0.228,0.564,0.395c0.01,0.011,0.108-0.014,0.136-0.04C1740.309,134.585,1740.327,134.52,1740.309,134.487
+                        M1733.733,149.387c-0.163-0.12-0.25-0.183-0.314-0.279c-0.017-0.007-0.036-0.014-0.055-0.02
+                       c-0.167-0.061-0.191-0.114-0.092-0.234c0.008-0.008,0.01-0.015,0.015-0.021c-0.024-0.065-0.05-0.134-0.084-0.222
+                       c-0.022-0.061-0.091-0.107-0.149-0.156c-0.079-0.059-0.16-0.119-0.253-0.164c-0.172-0.085-0.325-0.153-0.33-0.35
+                       c-0.003-0.089-0.103-0.149-0.18-0.209c-0.101-0.082-0.198-0.166-0.292-0.253c-0.022-0.02-0.026-0.045-0.024-0.071
+                       c-0.206,0.082-0.375,0.218-0.557,0.336c-0.04,0.027-0.049,0.086-0.007,0.115c0.034,0.022,0.103,0.038,0.139,0.024
+                       c0.079-0.029,0.146-0.08,0.217-0.117c0.048-0.025,0.12-0.038,0.134,0.011c0.055,0.177,0.221,0.204,0.395,0.237
+                       c0.103,0.02,0.116,0.093,0.037,0.169c-0.07,0.067-0.149,0.124-0.216,0.193c-0.085,0.084-0.069,0.177,0.061,0.202
+                       c0.187,0.036,0.277,0.102,0.246,0.271c-0.007,0.051,0.062,0.087,0.105,0.061c0.258-0.16,0.39-0.034,0.542,0.135
+                       c0.115,0.129,0.031,0.187-0.017,0.3c-0.042,0.1-0.104,0.175-0.174,0.244c0.11,0.011,0.234,0.04,0.387,0.088
+                       c0.074-0.053,0.168-0.075,0.282-0.079C1733.729,149.589,1733.771,149.52,1733.733,149.387 M1731.947,150.135
+                       c0.002,0.002,0.005,0.004,0.007,0.006c0.02-0.04,0.051-0.082,0.094-0.131c-0.029,0.017-0.057,0.033-0.089,0.049
+                       C1731.942,150.07,1731.935,150.116,1731.947,150.135 M1721.556,160.449c-0.187-0.2-0.189-0.399-0.034-0.613
+                       c0.02-0.021,0.029-0.055,0.025-0.082c-0.002-0.024-0.025-0.057-0.048-0.07c-0.027-0.014-0.077-0.025-0.098-0.012
+                       c-0.11,0.067-0.215,0.14-0.309,0.202c-0.147-0.02-0.158-0.138-0.241-0.18c-0.213-0.109-0.299-0.236-0.169-0.434
+                       c0.039-0.058,0-0.116-0.057-0.156c-0.029-0.018-0.06-0.032-0.091-0.047c-0.369-0.182-0.732-0.369-1.105-0.542
+                       c0.055,0.147-0.024,0.272-0.207,0.338c-0.03,0.012-0.075,0.038-0.075,0.055c0.025,0.281-0.291,0.334-0.453,0.491
+                       c-0.046,0.041-0.081,0.091-0.136,0.157c0.268,0.054,0.516,0.1,0.76,0.156c0.182,0.039,0.349,0.031,0.478-0.098
+                       c0.108-0.108,0.208-0.083,0.303,0.006c0.062,0.055,0.132,0.086,0.217,0.113c0.307,0.091,0.32,0.158,0.061,0.336
+                       c-0.287,0.198-0.615,0.334-0.952,0.455c-0.128,0.047-0.263,0.089-0.378,0.153c0.612,0.107,1.221,0.211,1.829,0.315
+                       c0.009-0.031,0.013-0.071-0.005-0.124c-0.029-0.1,0.105-0.151,0.213-0.093c0.059,0.031,0.112,0.071,0.17,0.104
+                       c0.067,0.045,0.132,0.125,0.223,0.089c0.097-0.037,0.141-0.126,0.148-0.222C1721.629,160.644,1721.635,160.534,1721.556,160.449
+                        M1707.825,151.77c0.042,0.033,0.081,0.069,0.115,0.108c0.002-0.006,0.009-0.008,0.013-0.018
+                       C1707.966,151.803,1707.885,151.792,1707.825,151.77 M1707.676,151.568c-0.022,0.031-0.046,0.064-0.06,0.098
+                       c-0.002,0-0.005-0.002-0.007-0.002c0,0.002,0,0.002-0.003,0.004c-0.11-0.004-0.221-0.014-0.332-0.007
+                       c-0.029,0-0.05,0.014-0.074,0.022c0.041,0.018,0.079,0.042,0.12,0.073c0.026,0.022,0.055,0.045,0.083,0.067
+                       c0.086-0.024,0.162-0.063,0.203-0.155h0.008c0,0,0.002,0,0.002-0.002c0.06,0.016,0.11,0.039,0.156,0.068
+                       C1707.717,151.687,1707.691,151.63,1707.676,151.568 M1707.682,151.025c0,0-0.003,0-0.003-0.002
+                       c-0.055,0.084-0.072,0.171-0.04,0.261c0.018-0.027,0.04-0.051,0.066-0.072C1707.777,151.141,1707.768,151.082,1707.682,151.025
+                        M1706.849,155.163c-0.105-0.095-0.22-0.161-0.356-0.18c-0.019,0.018-0.039,0.033-0.055,0.049
+                       c-0.074,0.075-0.144,0.133-0.283,0.131c-0.158-0.006-0.026,0.185-0.167,0.213c-0.057,0.013-0.182,0.008-0.154,0.053
+                       c0.062,0.1,0.038,0.189,0.006,0.275c0.211-0.02,0.421-0.033,0.634-0.051c0.295,0.147,0.474-0.057,0.739-0.137
+                       C1707.072,155.378,1706.963,155.266,1706.849,155.163 M1706.897,150.163c-0.32-0.133-0.593-0.312-0.72-0.605
+                       c-0.005,0.039-0.009,0.08-0.016,0.117c-0.01,0.052,0.029,0.118-0.032,0.152c-0.167,0.09-0.241,0.21-0.246,0.376
+                       c-0.002,0.071-0.095,0.041-0.158,0.041c-0.182,0-0.217,0.015-0.229,0.143c-0.02,0.21-0.077,0.406-0.22,0.579
+                       c-0.026,0.036-0.021,0.085,0.023,0.114c0.048,0.029,0.096,0.012,0.127-0.022c0.117-0.122,0.259-0.21,0.45-0.226
+                       c0.09-0.006,0.153-0.042,0.196-0.106c0.055-0.075,0.14-0.112,0.239-0.129c0.129-0.025,0.222-0.089,0.325-0.165
+                       c0.111-0.078,0.23-0.147,0.355-0.211C1706.961,150.201,1706.932,150.179,1706.897,150.163 M1705.369,145.585
+                       c-0.031,0.002-0.084-0.002-0.09,0.008c-0.056,0.114-0.158,0.153-0.297,0.177c-0.1,0.018-0.124,0.167-0.052,0.242
+                       c0.016,0.018,0.066,0.038,0.081,0.031c0.152-0.073,0.31-0.142,0.451-0.23C1705.549,145.761,1705.479,145.605,1705.369,145.585
+                        M1704.733,152.578c-0.048,0.017-0.086,0.044-0.121,0.07c0.064,0.004,0.129,0.006,0.191,0.004
+                       c0.033-0.027,0.071-0.051,0.117-0.071C1704.838,152.506,1704.786,152.558,1704.733,152.578 M1699.716,152.445
+                       c-0.062-0.091-0.051-0.216-0.085-0.322c-0.039-0.129-0.12-0.228-0.3-0.23c-0.115,0-0.172-0.063-0.231-0.132
+                       c-0.204-0.235-0.414-0.457-0.718-0.612h-0.002c-0.024,0.08-0.096,0.149-0.213,0.191c-0.028,0.011-0.077,0.037-0.074,0.055
+                       c0.024,0.281-0.294,0.335-0.457,0.491c-0.043,0.041-0.079,0.09-0.134,0.157c0.268,0.053,0.515,0.1,0.758,0.155
+                       c0.185,0.04,0.349,0.031,0.478-0.098c0.11-0.108,0.208-0.082,0.306,0.008c0.061,0.056,0.13,0.087,0.219,0.112
+                       c0.303,0.093,0.318,0.159,0.057,0.338c-0.051,0.033-0.105,0.066-0.158,0.097c0.083,0.034,0.168,0.07,0.253,0.096
+                       c0.113,0.036,0.18,0.112,0.293,0.153C1699.788,152.748,1699.832,152.608,1699.716,152.445 M1698.615,148.306
+                       c-0.167-0.121-0.195-0.147-0.266-0.328c-0.055,0.042-0.112,0.084-0.173,0.093c-0.22,0.024-0.334,0.171-0.452,0.279
+                       c-0.147,0.142-0.275,0.289-0.476,0.391c-0.119,0.061-0.212,0.171-0.155,0.3c0.062,0.142-0.007,0.242-0.127,0.304
+                       c-0.228,0.116-0.409,0.271-0.605,0.415c-0.048,0.037-0.121,0.069-0.183,0.069c-0.129,0-0.24,0.013-0.318,0.113
+                       c-0.105,0.134-0.251,0.249-0.283,0.417c-0.002,0.014,0,0.029,0.002,0.045c0.022,0.133,0.472,0.444,0.627,0.397
+                       c0.284-0.083,0.547-0.014,0.822,0.021c0.273,0.038,0.546,0.085,0.825,0.032c0.033-0.004,0.07-0.004,0.103-0.004
+                       c0.051,0.002,0.101,0.002,0.153,0.006c-0.022-0.059-0.037-0.122-0.033-0.193c0.007-0.235-0.024-0.465-0.14-0.687
+                       c-0.108-0.211-0.005-0.405,0.108-0.613c-0.136-0.089-0.236-0.213-0.341-0.336c-0.189-0.219-0.197-0.257,0-0.437
+                       c0.213-0.198,0.332-0.218,0.648-0.116c0.044,0.016,0.084,0.047,0.129,0.053c0.072,0.01,0.124-0.027,0.158-0.075
+                       C1698.675,148.399,1698.677,148.35,1698.615,148.306 M1696.12,154.344c0.015,0.02,0.058,0.036,0.089,0.036
+                       c0.165,0.004,0.294-0.065,0.426-0.144c0.002,0,0.002,0,0.005-0.002c-0.068-0.055-0.134-0.115-0.174-0.189
+                       c-0.008,0.002-0.013,0.005-0.019,0.006c-0.135,0.042-0.239,0.118-0.326,0.215C1696.105,154.282,1696.107,154.325,1696.12,154.344
+                        M1696.721,154.845c0.081-0.041,0.186-0.05,0.205-0.149c0.01-0.055-0.009-0.099-0.036-0.147c-0.014,0.066-0.047,0.127-0.123,0.187
+                       c-0.058,0.047-0.094,0.102-0.12,0.163C1696.671,154.881,1696.695,154.861,1696.721,154.845 M1697.556,153.812
+                       c0.323-0.045,0.502,0.242,0.805,0.235c0.057,0,0.149,0.03,0.169,0.067c0.118,0.198,0.333,0.138,0.514,0.153
+                       c0.065,0.006,0.146-0.006,0.153-0.075c0.006-0.072-0.047-0.133-0.13-0.157c-0.047-0.014-0.098-0.006-0.146-0.012
+                       c-0.227-0.021-0.284-0.037-0.299-0.199c-0.019-0.26-0.213-0.395-0.45-0.486c-0.103-0.039-0.151-0.104-0.184-0.171
+                       c-0.042,0.022-0.083,0.049-0.119,0.078c-0.065,0.049-0.165,0.118-0.156,0.167c0.035,0.198-0.096,0.286-0.235,0.369
+                       C1697.508,153.798,1697.534,153.814,1697.556,153.812 M1686.751,144.247c-0.152-0.082-0.112-0.238-0.18-0.355
+                       c-0.045-0.073,0.02-0.14,0.079-0.195c0.074-0.069,0.065-0.129-0.021-0.185c-0.024-0.017-0.048-0.035-0.069-0.053
+                       c-0.063,0.093-0.106,0.195-0.142,0.307c-0.05,0.152-0.103,0.33-0.136,0.49c0.11,0.089,0.222,0.173,0.391,0.156
+                       c0.081-0.01,0.199,0.033,0.223-0.063C1686.913,144.28,1686.806,144.278,1686.751,144.247 M1685.794,147.649
+                       c-0.057-0.051-0.117-0.091-0.181-0.124c-0.05,0.037-0.101,0.08-0.141,0.113c-0.052,0.225,0.26,0.156,0.294,0.318
+                       c0.014,0.067,0.064,0.118,0.124,0.163c0.087-0.04,0.173-0.085,0.27-0.116C1686.019,147.865,1685.912,147.753,1685.794,147.649
+                        M1685.104,142.008c-0.017-0.047-0.05-0.075-0.089-0.1c0.002,0.004,0,0.006,0,0.011c0.067,0.244-0.401,0.521-0.033,0.702
+                       c0.182,0.088,0.325-0.052,0.474-0.183C1685.3,142.326,1685.173,142.19,1685.104,142.008 M1684.351,142.623
+                       c-0.055,0.004-0.146-0.004-0.156,0.017c-0.098,0.191-0.272,0.262-0.509,0.305c-0.173,0.031-0.219,0.286-0.092,0.412
+                       c0.031,0.031,0.112,0.069,0.14,0.056c0.263-0.125,0.533-0.245,0.775-0.395C1684.657,142.927,1684.54,142.658,1684.351,142.623
+                        M1679.323,132.388c-0.034-0.059-0.092-0.135-0.156-0.148c-0.187-0.04-0.38-0.054-0.574-0.078
+                       c0.092,0.227,0.412,0.227,0.565,0.394c0.009,0.012,0.108-0.013,0.133-0.039C1679.323,132.486,1679.342,132.419,1679.323,132.388
+                        M1675.934,146.618c-0.11,0.082-0.193,0.17-0.187,0.312c0.06,0.04,0.118,0.084,0.168,0.138c0.104,0.117,0.313,0.015,0.483-0.061
+                       C1676.263,146.859,1676.097,146.737,1675.934,146.618 M1674.821,144.471c-0.108,0.114-0.175,0.253-0.258,0.377
+                       c0.007,0.105,0.114,0.102,0.189,0.124c0.033,0.014,0.06,0.038,0.088,0.057c0.005-0.006,0.005-0.019,0.013-0.027
+                       c0.158-0.208-0.017-0.441,0.126-0.632C1674.918,144.4,1674.861,144.429,1674.821,144.471 M1674.478,142.798
+                       c-0.004-0.028-0.011-0.054-0.018-0.081c-0.182,0.229-0.27,0.509-0.542,0.688c0.261,0.118,0.264,0.12,0.384-0.008
+                       c0.077-0.085,0.165-0.149,0.261-0.209C1674.528,143.06,1674.499,142.931,1674.478,142.798 M1673.747,141.03
+                       c-0.003-0.003-0.006-0.005-0.006-0.005c-0.042,0.136-0.057,0.216-0.045,0.276c0.005-0.007,0.007-0.014,0.011-0.023
+                       C1673.759,141.189,1673.852,141.108,1673.747,141.03 M1669.762,149.374c-0.05-0.165-0.199-0.227-0.366-0.287
+                       c-0.166-0.061-0.193-0.114-0.093-0.234c0.093-0.108,0.097-0.173-0.028-0.255c-0.15-0.1-0.277-0.23-0.439-0.308
+                       c-0.175-0.085-0.329-0.153-0.333-0.348c-0.002-0.091-0.102-0.149-0.178-0.211c-0.101-0.082-0.198-0.166-0.292-0.253
+                       c0,0,0-0.002-0.002-0.002c-0.079,0.029-0.16,0.055-0.248,0.073c-0.07,0.013-0.142,0.098-0.096,0.177
+                       c0.02,0.038,0.096,0.093,0.129,0.084c0.454-0.097,0.617,0.207,0.822,0.431c0.161,0.173,0.241,0.404,0.424,0.552
+                       c0.277,0.228,0.207,0.433,0.054,0.666c-0.181,0.273-0.466,0.497-0.578,0.807c0.014,0.01,0.029,0.014,0.042,0.022
+                       c0.061-0.064,0.12-0.129,0.14-0.202c0.04-0.135,0.08-0.215,0.264-0.198c0.125,0.012,0.184-0.067,0.241-0.142
+                       c0.083-0.11,0.201-0.147,0.357-0.152C1669.764,149.589,1669.806,149.517,1669.762,149.374 M1634.585,141.63
+                       c-0.152-0.082-0.112-0.239-0.18-0.355c-0.045-0.073,0.02-0.139,0.079-0.194c0.074-0.07,0.063-0.13-0.022-0.185
+                       c-0.04-0.027-0.073-0.065-0.117-0.089c-0.294-0.172-0.365-0.263-0.439-0.548c-0.028-0.106-0.11-0.177-0.23-0.226
+                       c-0.335-0.139-0.621-0.324-0.738-0.643c-0.028-0.081-0.105-0.109-0.175-0.152c-0.093-0.055-0.18-0.117-0.263-0.182
+                       c-0.134,0.224-0.336,0.408-0.418,0.664c0.321,0.208,0.736,0.173,1.059,0.386c0.093,0.063,0.204-0.035,0.309-0.047
+                       c0.15-0.015,0.251,0.087,0.229,0.222c-0.009,0.061-0.011,0.132-0.048,0.173c-0.172,0.207-0.317,0.46-0.542,0.593
+                       c-0.308,0.183-0.433,0.477-0.676,0.733c0.069,0,0.126-0.014,0.182-0.034c0.031-0.018,0.06-0.031,0.086-0.037
+                       c0.103-0.049,0.189-0.114,0.284-0.16c0.109-0.053,0.212-0.035,0.297,0.038c0.009,0.008,0.016,0.018,0.024,0.024
+                       c0.095-0.03,0.191-0.061,0.292-0.078c0.209-0.038,0.37-0.034,0.525,0.092c0.112,0.093,0.23,0.187,0.406,0.169
+                       c0.082-0.008,0.196,0.034,0.223-0.062C1634.75,141.666,1634.641,141.662,1634.585,141.63 M1624.116,136.323
+                       c0.004,0.031,0.007,0.062,0.013,0.091c0.025,0.179-0.023,0.326-0.24,0.408c-0.057,0.02-0.097,0.069-0.135,0.098
+                       c-0.015,0.063,0.018,0.084,0.056,0.102c0.02-0.018,0.032-0.035,0.055-0.051c0.083-0.055,0.142-0.151,0.194-0.238
+                       C1624.18,136.533,1624.207,136.42,1624.116,136.323 M1622.712,134.186c-0.018,0.004-0.031,0.013-0.045,0.024
+                       c0.009,0.035,0.009,0.078-0.009,0.126c-0.008,0.018-0.015,0.033-0.023,0.049c0.008,0.015,0.013,0.029,0.023,0.04
+                       c0.018,0.019,0.067,0.039,0.083,0.033c0.033-0.016,0.069-0.033,0.105-0.051c0-0.04,0.005-0.082,0.011-0.129
+                       c0.007-0.061,0.014-0.104,0.022-0.144C1622.832,134.159,1622.777,134.175,1622.712,134.186 M1622.463,140.992
+                       c-0.138,0.051-0.215,0.157-0.301,0.253c-0.017,0.02-0.022,0.049-0.026,0.075c-0.002,0.01,0.013,0.027,0.024,0.031
+                       c0.01,0.007,0.033,0.01,0.043,0.005c0.17-0.105,0.251-0.275,0.444-0.358C1622.566,140.921,1622.514,140.972,1622.463,140.992
+                        M1620.081,127.948c-0.111-0.022-0.225-0.031-0.335-0.045c0.053,0.134,0.239,0.134,0.327,0.228
+                       c0.008,0.01,0.062-0.006,0.079-0.021c0.016-0.018,0.029-0.056,0.016-0.076C1620.149,128.001,1620.115,127.956,1620.081,127.948
+                        M1619.737,127.651c-0.088,0.067-0.165,0.131-0.2,0.217c0.07,0.005,0.141,0.01,0.206,0.036
+                       C1619.764,127.815,1619.759,127.73,1619.737,127.651 M1610.203,143.477c-0.024-0.014-0.076-0.022-0.096-0.012
+                       c-0.112,0.067-0.216,0.142-0.31,0.205c-0.149-0.02-0.158-0.14-0.242-0.182c-0.21-0.107-0.299-0.236-0.167-0.435
+                       c0.035-0.055-0.003-0.114-0.061-0.155c-0.005-0.002-0.011-0.005-0.016-0.007c-0.013,0.018-0.024,0.036-0.039,0.054
+                       c-0.064,0.076-0.153,0.141-0.227,0.218c-0.075,0.074-0.141,0.135-0.279,0.133c-0.158-0.002-0.025,0.184-0.164,0.215
+                       c-0.057,0.014-0.183,0.011-0.154,0.055c0.1,0.16-0.01,0.291-0.037,0.433c-0.019,0.089,0.062,0.165,0.168,0.169
+                       c0.133,0.004,0.265-0.006,0.363-0.093c0.132-0.108,0.256-0.22,0.466-0.151c0.013,0.004,0.039-0.002,0.046-0.011
+                       c0.184-0.227,0.54-0.242,0.779-0.405C1610.227,143.495,1610.215,143.484,1610.203,143.477 M1609.221,140.059
+                       c-0.061,0.007-0.125-0.011-0.186-0.011c-0.056-0.002-0.087,0.024-0.094,0.075c-0.002,0.066,0.029,0.129,0.079,0.182
+                       c0.057,0.061,0.127,0.089,0.208,0.034c0.047-0.036,0.09-0.076,0.132-0.118c0.042-0.042,0.093-0.091,0.062-0.147
+                       C1609.371,139.98,1609.292,140.053,1609.221,140.059 M1607.905,133.957c0.087-0.055,0.015-0.211-0.098-0.229
+                       c-0.031,0.003-0.084-0.002-0.088,0.012c-0.055,0.114-0.158,0.155-0.294,0.18c-0.1,0.02-0.122,0.169-0.047,0.242
+                       c0.016,0.018,0.064,0.04,0.08,0.031C1607.611,134.119,1607.766,134.046,1607.905,133.957 M1607.001,140.985
+                       c-0.016,0.02-0.021,0.049-0.023,0.075c-0.002,0.011,0.011,0.027,0.023,0.031c0.013,0.006,0.037,0.008,0.044,0.004
+                       c0.168-0.106,0.25-0.279,0.437-0.364c-0.081-0.075-0.132-0.023-0.183-0.004C1607.161,140.782,1607.088,140.888,1607.001,140.985
+                        M1604.68,127.717c-0.108-0.022-0.223-0.028-0.335-0.04c0.057,0.131,0.243,0.129,0.332,0.224c0.008,0.006,0.063-0.006,0.079-0.024
+                       c0.017-0.018,0.03-0.055,0.017-0.073C1604.752,127.767,1604.718,127.726,1604.68,127.717 M1603.032,136.18
+                       c-0.017,0.024-0.042,0.045-0.069,0.063c-0.033,0.021-0.067,0.051-0.101,0.075c0.026,0.019,0.055,0.037,0.079,0.062
+                       c0.062,0.067,0.181,0.006,0.279-0.04C1603.164,136.28,1603.1,136.229,1603.032,136.18 M1602.65,135.875
+                       c-0.063-0.069-0.112-0.124-0.125-0.207c-0.009-0.07-0.033-0.121-0.119-0.164c-0.149-0.071-0.171-0.234-0.108-0.32
+                       c0.043-0.055,0.04-0.115,0.036-0.173c-0.017,0.022-0.033,0.045-0.048,0.067c-0.06,0.1-0.277,0.015-0.277,0.155
+                       c0,0.08,0.079,0.157,0.105,0.242c0.02,0.057-0.007,0.115-0.072,0.153c-0.042,0.024-0.095,0.037-0.134,0.064
+                       c-0.023,0.018-0.038,0.034-0.05,0.052c0.156,0.073,0.306,0.151,0.445,0.241c0.165,0.047,0.335,0.071,0.517,0.038
+                       C1602.76,135.976,1602.703,135.93,1602.65,135.875 M1602.365,134.638c-0.176-0.224-0.26-0.475-0.306-0.735
+                       c-0.024-0.131-0.077-0.237-0.208-0.312c-0.053-0.033-0.101-0.071-0.149-0.108c-0.234-0.178-0.243-0.209-0.106-0.46
+                       c0.025-0.051,0.081-0.1,0.018-0.144c-0.152-0.11-0.244-0.253-0.343-0.395c-0.017-0.025-0.052-0.047-0.089-0.066
+                       c-0.024,0.151-0.048,0.294-0.237,0.41c-0.22,0.135-0.385,0.338-0.56,0.521c-0.121,0.126-0.187,0.254-0.049,0.438
+                       c0.126,0.171,0.097,0.391-0.053,0.575c-0.054,0.063-0.104,0.124-0.032,0.195c0.065,0.063,0.151,0.059,0.241,0.047
+                       c0.173-0.022,0.344-0.045,0.52-0.059c0.086-0.007,0.191,0,0.233,0.068c0.118,0.181,0.271,0.136,0.441,0.073
+                       c0.184-0.066,0.378-0.051,0.569-0.024c0.074,0.008,0.125,0.042,0.153,0.087C1602.413,134.711,1602.392,134.672,1602.365,134.638
+                        M1600.115,138.728c0.017,0.115,0.351,0.359,0.542,0.397c-0.031-0.069-0.051-0.142-0.05-0.226c0.003-0.236-0.033-0.468-0.15-0.688
+                       h-0.002c-0.02,0.013-0.04,0.031-0.06,0.055c-0.105,0.133-0.252,0.249-0.283,0.417
+                       C1600.111,138.698,1600.113,138.713,1600.115,138.728 M1601.125,142.343c0.119,0.195,0.333,0.134,0.516,0.147
+                       c0.062,0.006,0.147-0.008,0.151-0.075c0.002-0.055-0.033-0.098-0.083-0.129c-0.041,0.002-0.081-0.014-0.122-0.038h-0.075
+                       c-0.104-0.008-0.172-0.017-0.217-0.039c-0.014,0.014-0.029,0.022-0.044,0.039c-0.044,0.04-0.089,0.065-0.14,0.085
+                       C1601.114,142.336,1601.122,142.342,1601.125,142.343 M1602.202,140.401c-0.004-0.02-0.007-0.042-0.014-0.062
+                       c-0.013-0.036-0.026-0.067-0.046-0.096c-0.031,0.035-0.065,0.073-0.105,0.124C1602.095,140.381,1602.148,140.391,1602.202,140.401
+                        M1591.286,132.572c-0.153-0.082-0.112-0.238-0.178-0.355c-0.046-0.073,0.019-0.14,0.079-0.195
+                       c0.073-0.069,0.062-0.13-0.022-0.184c-0.041-0.027-0.074-0.065-0.118-0.089c-0.294-0.173-0.365-0.264-0.439-0.549
+                       c-0.029-0.105-0.11-0.177-0.23-0.225c-0.334-0.14-0.621-0.324-0.738-0.642c-0.028-0.082-0.105-0.112-0.175-0.153
+                       c-0.084-0.051-0.16-0.107-0.235-0.163c-0.004,0.006-0.004,0.016-0.011,0.022c-0.127,0.116-0.2,0.235-0.149,0.397
+                       c0.013,0.033-0.014,0.091-0.047,0.12c-0.281,0.24-0.338,0.601-0.665,0.819c0.26,0.117,0.265,0.119,0.384-0.012
+                       c0.187-0.202,0.443-0.319,0.718-0.41c0.015-0.004,0.037,0.002,0.053,0.002c0.138-0.004,0.108-0.242,0.313-0.159
+                       c0.11,0.044,0.2,0.117,0.332,0.123c0.05,0.005,0.103,0.016,0.15,0.034c0.054,0.022,0.07,0.075,0.044,0.113
+                       c-0.046,0.061-0.113,0.112-0.166,0.169c-0.042,0.049-0.053,0.1-0.021,0.163c0.108,0.202,0.106,0.204-0.029,0.306
+                       c-0.143,0.109-0.284,0.213-0.378,0.361c-0.044,0.075-0.121,0.144-0.2,0.203c-0.092,0.064-0.225,0.098-0.298,0.173
+                       c-0.108,0.113-0.176,0.251-0.26,0.375c0.004,0.047,0.028,0.071,0.059,0.086c0.092-0.124,0.268-0.268,0.364-0.257
+                       c0.055,0.006,0.105,0,0.155-0.002c0.096-0.053,0.204-0.093,0.305-0.142c0.045-0.02,0.097-0.035,0.136-0.065
+                       c0.146-0.099,0.296-0.097,0.428,0c0.013,0.007,0.024,0.014,0.036,0.022c0.118,0,0.22,0.03,0.32,0.109
+                       c0.017,0.015,0.033,0.029,0.053,0.041c0.019,0.007,0.035,0.012,0.055,0.016c0.041,0.012,0.07,0.04,0.079,0.071
+                       c0.064,0.031,0.134,0.049,0.221,0.04c0.08-0.01,0.198,0.033,0.221-0.063C1591.448,132.607,1591.34,132.603,1591.286,132.572
+                        M1589.191,135.71c0.041-0.008,0.081-0.011,0.122-0.015c-0.01-0.02-0.024-0.034-0.037-0.056c-0.007-0.013-0.017-0.023-0.024-0.037
+                       c-0.024,0.031-0.047,0.064-0.066,0.102L1589.191,135.71z M1583.377,142.463c-0.153-0.084-0.113-0.239-0.18-0.355
+                       c-0.045-0.075,0.02-0.14,0.079-0.198c0.074-0.067,0.062-0.128-0.022-0.184c-0.02-0.012-0.035-0.025-0.05-0.038
+                       c0.024,0.051,0.002,0.104-0.035,0.149c-0.038,0.045-0.077,0.091-0.117,0.131c-0.163,0.155-0.235,0.311-0.108,0.522
+                       c0.002,0.006,0.002,0.01,0.004,0.014c0.097,0.075,0.204,0.137,0.352,0.121c0.081-0.005,0.198,0.034,0.222-0.062
+                       C1583.539,142.496,1583.432,142.492,1583.377,142.463 M1582.726,141.181c-0.005,0.008-0.009,0.015-0.014,0.023
+                       c-0.002,0-0.002-0.002-0.002-0.002c-0.002,0-0.002,0.002-0.004,0.002c-0.11-0.002-0.223-0.013-0.335-0.006
+                       c-0.083,0.004-0.152,0.047-0.184,0.118c-0.009,0.022,0,0.053,0.007,0.078c0.003,0.011,0.027,0.029,0.034,0.027
+                       c0.167-0.055,0.391-0.027,0.478-0.216h0.007c0.009,0.003,0.016,0.007,0.026,0.012
+                       C1582.734,141.204,1582.73,141.191,1582.726,141.181 M1581.765,141.471c-0.06,0.007-0.124-0.011-0.186-0.013
+                       c-0.056-0.002-0.087,0.023-0.094,0.073c-0.005,0.068,0.026,0.129,0.077,0.184c0.055,0.059,0.124,0.091,0.205,0.036
+                       c0.048-0.034,0.094-0.076,0.135-0.116c0.042-0.042,0.093-0.089,0.064-0.144C1581.916,141.393,1581.837,141.464,1581.765,141.471
+                        M1580.962,145.148c-0.015,0.087-0.058,0.167-0.077,0.253c-0.019,0.087,0.06,0.165,0.165,0.169c0.11,0.005,0.22-0.004,0.311-0.053
+                       C1581.279,145.354,1581.127,145.241,1580.962,145.148 M1580.56,135.353c0.087-0.053,0.017-0.211-0.093-0.23
+                       c-0.031,0.004-0.084-0.003-0.091,0.008c-0.058,0.114-0.158,0.153-0.296,0.177c-0.101,0.018-0.125,0.167-0.053,0.242
+                       c0.016,0.018,0.064,0.039,0.081,0.031C1580.261,135.51,1580.419,135.44,1580.56,135.353 M1579.831,142.114
+                       c-0.136,0.053-0.213,0.157-0.301,0.253c-0.017,0.02-0.021,0.051-0.026,0.076c0,0.011,0.011,0.027,0.024,0.033
+                       c0.011,0.004,0.035,0.008,0.046,0.001c0.167-0.101,0.251-0.274,0.442-0.357C1579.936,142.043,1579.883,142.094,1579.831,142.114
+                        M1528.903,146.522c-0.023-0.005-0.044-0.014-0.068-0.02c-0.048,0.075-0.101,0.145-0.184,0.202
+                       c-0.007,0.004-0.007,0.016-0.009,0.029c0.069-0.012,0.146-0.012,0.237,0.006c0.028,0.007,0.093-0.037,0.112-0.068
+                       C1529.028,146.602,1528.965,146.533,1528.903,146.522 M1527.749,145.867c-0.031,0.049-0.079,0.091-0.163,0.114
+                       c-0.004,0.002-0.004,0.029,0.002,0.037c0.004,0.012,0.026,0.024,0.036,0.024c0.045-0.011,0.095-0.02,0.134-0.04
+                       c0.031-0.017,0.062-0.035,0.093-0.053C1527.816,145.92,1527.78,145.893,1527.749,145.867 M1526.495,144.775
+                       c-0.111-0.022-0.223-0.029-0.335-0.041c0.055,0.131,0.241,0.129,0.333,0.225c0.003,0.007,0.062-0.008,0.078-0.023
+                       c0.017-0.02,0.026-0.058,0.015-0.076C1526.565,144.826,1526.532,144.781,1526.495,144.775 M1516.928,162.664
+                       c-0.083-0.165-0.223-0.042-0.344-0.032c-0.105,0.008-0.213-0.02-0.32-0.024c-0.093-0.004-0.147,0.042-0.163,0.126
+                       c-0.007,0.116,0.046,0.222,0.132,0.315c0.095,0.104,0.215,0.155,0.354,0.059c0.086-0.057,0.161-0.126,0.232-0.196
+                       C1516.89,162.842,1516.978,162.759,1516.928,162.664 M1514.513,152.129c0.148-0.09,0.031-0.359-0.158-0.395
+                       c-0.055,0.007-0.143-0.002-0.156,0.018c-0.097,0.193-0.272,0.262-0.509,0.304c-0.174,0.032-0.215,0.287-0.09,0.413
+                       c0.031,0.031,0.112,0.068,0.141,0.055C1514,152.401,1514.272,152.281,1514.513,152.129 M1513.265,163.738
+                       c-0.237,0.088-0.368,0.268-0.516,0.432c-0.031,0.036-0.039,0.086-0.046,0.131c-0.002,0.016,0.02,0.045,0.041,0.055
+                       c0.018,0.01,0.059,0.014,0.077,0.005c0.289-0.177,0.43-0.474,0.76-0.615C1513.442,163.616,1513.353,163.704,1513.265,163.738
+                        M1504.571,163.285c-0.011,0.002-0.023,0.004-0.035,0.007c0.022,0.033,0.041,0.064,0.059,0.096
+                       C1504.586,163.354,1504.579,163.319,1504.571,163.285 M1503.381,162.098c-0.015,0.008-0.028,0.017-0.043,0.027
+                       c-0.017,0.008-0.024,0.055-0.011,0.073c0.011,0.022,0.052,0.035,0.083,0.039c0.036,0.006,0.068,0.006,0.102,0.006
+                       C1503.469,162.196,1503.427,162.147,1503.381,162.098 M1502.764,156.408c-0.25-0.181-0.318-0.236-0.41-0.447
+                       c-0.104,0.085-0.185,0.173-0.169,0.318c0.011,0.096-0.074,0.158-0.167,0.207c-0.063,0.035-0.125,0.071-0.184,0.106
+                       c0.132,0.004,0.279,0.04,0.476,0.102c0.076,0.027,0.146,0.08,0.222,0.091c0.024,0.004,0.042,0.002,0.064,0
+                       c0.044-0.024,0.085-0.047,0.133-0.065c0.005-0.002,0.014,0,0.02-0.004c0.022-0.018,0.039-0.038,0.055-0.059
+                       C1502.864,156.568,1502.869,156.484,1502.764,156.408 M1495.276,157.619c-0.033-0.013-0.062-0.029-0.093-0.045
+                       c-0.147,0.085-0.29,0.172-0.443,0.247c-0.114,0.057-0.173,0.141-0.222,0.235l0.007,0.006c0.218-0.039,0.452-0.008,0.646-0.139
+                       c0.083-0.058,0.204-0.073,0.296-0.03c0.088,0.042,0.158,0.038,0.222,0.016C1495.55,157.813,1495.429,157.695,1495.276,157.619
+                        M1488.708,164.816c-0.115-0.065-0.12-0.168-0.146-0.269c-0.04,0.027-0.079,0.054-0.112,0.085
+                       c-0.044,0.041-0.079,0.09-0.136,0.157c0.189,0.038,0.365,0.073,0.538,0.108C1488.843,164.852,1488.757,164.843,1488.708,164.816
+                        M1488.028,163.445c-0.026-0.109-0.11-0.177-0.227-0.226c-0.335-0.14-0.622-0.324-0.739-0.644
+                       c-0.002-0.005-0.009-0.007-0.011-0.014c-0.019,0.004-0.041,0.014-0.061,0.014c-0.128,0-0.239,0.013-0.318,0.113
+                       c-0.108,0.134-0.251,0.249-0.282,0.417c-0.002,0.014,0,0.029,0.002,0.045c0.02,0.133,0.469,0.444,0.625,0.399
+                       c0.286-0.084,0.549-0.015,0.822,0.02c0.081,0.011,0.16,0.022,0.241,0.033C1488.063,163.555,1488.046,163.504,1488.028,163.445
+                        M1475.569,175.106c-0.367,0.033-0.685,0.175-1.035,0.149c-0.169-0.013-0.167,0.128-0.241,0.203
+                       c-0.098,0.1-0.149,0.11-0.259,0.039c-0.255-0.169-0.255-0.169-0.336-0.515c-0.048,0.014-0.098,0.022-0.141,0.042
+                       c-0.094,0.042-0.19,0.029-0.228-0.045c-0.127-0.246-0.327-0.326-0.656-0.335c-0.112-0.005-0.231-0.022-0.346-0.053
+                       c-0.081,0.082-0.161,0.168-0.24,0.252c-0.121,0.13-0.188,0.254-0.051,0.438c0.128,0.174,0.097,0.393-0.05,0.575
+                       c-0.053,0.065-0.103,0.127-0.031,0.198c0.062,0.063,0.15,0.058,0.241,0.047c0.172-0.022,0.343-0.044,0.516-0.059h0.05
+                       c-0.01-0.02-0.017-0.04-0.017-0.053c0.004-0.067,0.068-0.093,0.144-0.106c0.444-0.065,0.886-0.152,1.344-0.075
+                       c0.088,0.015,0.126-0.032,0.139-0.099c0.028-0.166,0.162-0.21,0.336-0.212c0.247-0.002,0.481,0.055,0.72,0.098
+                       c0.116,0.022,0.11,0.153,0.25,0.155C1475.753,175.519,1475.581,175.328,1475.569,175.106 M1474.554,176.644
+                       c-0.182-0.062-0.371-0.084-0.553-0.084c-0.005,0.004-0.01,0.011-0.014,0.015c-0.058,0.1-0.276,0.016-0.276,0.156
+                       c-0.002,0.08,0.077,0.157,0.105,0.239c0.02,0.061-0.007,0.118-0.071,0.156c-0.043,0.023-0.096,0.037-0.137,0.064
+                       c-0.1,0.073-0.079,0.147,0.058,0.189c0.165,0.051,0.327,0.108,0.494,0.139c0.059-0.07,0.151-0.11,0.263-0.1
+                       c0.136,0.016,0.272,0.042,0.408,0.069c0.051,0.01,0.094,0.042,0.144,0.053c0.265,0.065,0.437-0.055,0.418-0.297
+                       c-0.003-0.051-0.042-0.084-0.103-0.075c-0.067,0.008-0.132,0.042-0.198,0.052c-0.259,0.033-0.308-0.016-0.29-0.26
+                       C1474.821,176.744,1474.797,176.729,1474.554,176.644 M1471.817,180.225c0.006,0.036,0.046,0.085,0.099,0.138
+                       c1.207-0.462,2.436-0.927,3.687-1.4c-0.132-0.079-0.296-0.125-0.306-0.305c-0.006-0.073-0.103-0.066-0.168-0.039
+                       c-0.169,0.08-0.287,0.053-0.384-0.096c-0.092-0.133-0.289-0.22-0.191-0.422c0.038-0.073-0.036-0.14-0.103-0.189
+                       c-0.013-0.006-0.026-0.013-0.039-0.019c-0.217,0.023-0.334,0.17-0.449,0.279c-0.149,0.139-0.278,0.288-0.476,0.388
+                       c-0.12,0.063-0.213,0.173-0.158,0.303c0.064,0.141-0.005,0.241-0.125,0.304c-0.227,0.115-0.411,0.269-0.604,0.415
+                       c-0.048,0.035-0.122,0.066-0.185,0.066c-0.128,0-0.238,0.016-0.317,0.116c-0.108,0.133-0.252,0.249-0.282,0.417
+                       C1471.813,180.195,1471.816,180.211,1471.817,180.225 M1453.527,178.377c0.149-0.091,0.028-0.36-0.16-0.395
+                       c-0.053,0.004-0.144-0.004-0.153,0.016c-0.097,0.192-0.275,0.263-0.509,0.306c-0.174,0.031-0.217,0.284-0.093,0.413
+                       c0.031,0.031,0.115,0.066,0.141,0.055C1453.016,178.648,1453.284,178.526,1453.527,178.377 M1448.341,167.748
+                       c-0.036-0.059-0.091-0.135-0.155-0.149c-0.187-0.04-0.383-0.053-0.574-0.078c0.09,0.226,0.408,0.226,0.562,0.393
+                       c0.013,0.013,0.11-0.012,0.136-0.04C1448.341,167.843,1448.361,167.778,1448.341,167.748 M1443.668,189.755
+                       c-0.108-0.155-0.092-0.369-0.149-0.55c-0.064-0.224-0.206-0.395-0.511-0.395c-0.198-0.002-0.299-0.11-0.4-0.226
+                       c-0.235-0.271-0.48-0.53-0.772-0.755c0.041,0.058,0.077,0.116,0.005,0.175c-0.115,0.1-0.207,0.244-0.411,0.24
+                       c-0.09-0.002-0.177,0.008-0.244,0.061c-0.125,0.1-0.224,0.228-0.366,0.301c-0.143,0.073-0.339,0.067-0.444,0.205v0.002
+                       c0.108-0.014,0.207-0.004,0.294,0.059c0.079,0.058,0.157,0.112,0.251,0.175c0.088-0.09,0.158-0.172,0.242-0.241
+                       c0.122-0.102,0.279-0.063,0.313,0.08c0.016,0.071,0.002,0.144,0.002,0.233c0.158,0.038,0.294-0.039,0.437-0.071
+                       c0.086-0.019,0.165-0.035,0.256-0.011c0.093,0.027,0.153,0.098,0.115,0.167c-0.096,0.173-0.196,0.343-0.292,0.516
+                       c-0.009,0.012-0.019,0.02-0.026,0.031c0.005,0.005,0.009,0.007,0.017,0.012c0.353,0.216,0.755,0.389,1.164,0.521
+                       c0.194,0.061,0.311,0.189,0.502,0.26C1443.787,190.278,1443.863,190.037,1443.668,189.755 M1440.85,186.697
+                       c0.013-0.401-0.038-0.801-0.237-1.181c-0.054-0.106-0.073-0.212-0.076-0.314c-0.043,0.049-0.089,0.099-0.143,0.143
+                       c-0.128,0.1-0.276,0.173-0.403,0.274c0.041,0.133,0.213,0.202,0.204,0.353c-0.01,0.121,0.138,0.155,0.227,0.221
+                       c0.108,0.081,0.122,0.152,0.024,0.224c-0.136,0.1-0.253,0.193-0.235,0.366c0.013,0.093-0.073,0.156-0.167,0.206
+                       c-0.206,0.112-0.4,0.24-0.609,0.345c-0.116,0.057-0.173,0.139-0.223,0.233l0.008,0.006c0.217-0.04,0.451-0.006,0.644-0.139
+                       c0.085-0.056,0.204-0.073,0.297-0.027c0.158,0.075,0.26,0.004,0.373-0.067c0.069-0.042,0.141-0.087,0.217-0.116
+                       c0.163-0.062,0.339,0.011,0.337,0.161c-0.003,0.142,0.019,0.178,0.184,0.138c0.022-0.004,0.037-0.015,0.057-0.02
+                       C1441.008,187.325,1440.841,187.052,1440.85,186.697 M1440.212,183.892c-0.075-0.089-0.134-0.16-0.174-0.222
+                       c-0.095,0.078-0.186,0.157-0.251,0.26c-0.048,0.078-0.122,0.147-0.201,0.202c-0.094,0.066-0.224,0.097-0.299,0.172
+                       c-0.105,0.114-0.175,0.254-0.258,0.378c0.01,0.104,0.115,0.102,0.189,0.126c0.077,0.024,0.113,0.12,0.221,0.089
+                       c0.095-0.105-0.028-0.256,0.071-0.336c0.108-0.087,0.265-0.131,0.402-0.195c0.046-0.022,0.098-0.038,0.136-0.065
+                       c0.144-0.102,0.294-0.1,0.428-0.002c0.089,0.067,0.184,0.107,0.287,0.14C1440.547,184.289,1440.385,184.089,1440.212,183.892
+                        M1441.633,192.622c0.018,0.033,0.042,0.055,0.064,0.079c0.026-0.013,0.05-0.029,0.072-0.05c0.121-0.112,0.261-0.14,0.416-0.04
+                       c0.01,0.004,0.019,0.006,0.031,0.012c0.098-0.047,0.194-0.097,0.298-0.144c-0.068-0.012-0.142-0.007-0.211-0.016
+                       c-0.201-0.018-0.326-0.033-0.403-0.083c-0.042,0.016-0.088,0.034-0.136,0.05c-0.088,0.027-0.169,0.068-0.248,0.113
+                       C1441.568,192.562,1441.614,192.591,1441.633,192.622 M1409.547,216.176c-0.105,0.009-0.213-0.023-0.32-0.025
+                       c-0.096-0.003-0.149,0.041-0.163,0.127c-0.008,0.115,0.045,0.222,0.13,0.314c0.032,0.034,0.065,0.058,0.1,0.079
+                       c0.18-0.171,0.364-0.344,0.551-0.523C1409.762,216.08,1409.649,216.166,1409.547,216.176 M1407.475,205.673
+                       c0.149-0.091,0.029-0.36-0.157-0.395c-0.056,0.006-0.147-0.004-0.156,0.018c-0.099,0.192-0.274,0.261-0.51,0.304
+                       c-0.174,0.031-0.215,0.286-0.09,0.413c0.031,0.031,0.112,0.068,0.139,0.055C1406.964,205.944,1407.234,205.824,1407.475,205.673
+                        M1406.228,217.279c-0.237,0.091-0.368,0.271-0.517,0.435c-0.031,0.033-0.038,0.086-0.045,0.127
+                       c-0.005,0.018,0.018,0.048,0.038,0.058c0.022,0.01,0.063,0.013,0.079,0.004c0.287-0.177,0.43-0.473,0.761-0.615
+                       C1406.404,217.158,1406.316,217.246,1406.228,217.279 M1396.955,216.105c-0.196-0.002-0.299-0.109-0.399-0.224
+                       c-0.102-0.122-0.213-0.24-0.323-0.356c-0.038,0.053-0.071,0.112-0.083,0.181c-0.003,0.013,0,0.029,0.002,0.041
+                       c0.02,0.134,0.469,0.446,0.625,0.4c0.071-0.02,0.143-0.032,0.212-0.038C1396.977,216.109,1396.97,216.105,1396.955,216.105
+                        M1359.057,204.918c-0.077-0.1-0.205-0.246-0.308-0.243c-0.41,0.006-0.437-0.484-0.926-0.427
+                       c-0.261,0.032-0.461-0.082-0.657-0.215c-0.008,0.033-0.008,0.069,0.011,0.108c0.016,0.042,0.022,0.081,0.02,0.114
+                       c0.633,0.244,1.265,0.488,1.894,0.73C1359.083,204.962,1359.071,204.94,1359.057,204.918 M1356.179,200.118
+                       c-0.008-0.141,0.009-0.251,0.064-0.317c-0.108,0.104-0.208,0.215-0.308,0.321c-0.122,0.129-0.189,0.254-0.053,0.438
+                       c0.104,0.142,0.099,0.313,0.014,0.471c0.079,0.067,0.156,0.12,0.263,0.051c0.222-0.14,0.411,0.098,0.65-0.008
+                       C1356.627,200.742,1356.199,200.531,1356.179,200.118 M1347.659,194.226c-0.052-0.163-0.198-0.226-0.365-0.287
+                       c-0.043-0.013-0.077-0.029-0.101-0.044c-0.167,0.093-0.301,0.22-0.397,0.383c-0.098,0.163-0.167,0.32-0.103,0.508
+                       c0.039-0.035,0.094-0.052,0.189-0.044c0.125,0.013,0.184-0.065,0.241-0.142c0.081-0.108,0.201-0.147,0.355-0.151
+                       C1347.661,194.442,1347.705,194.371,1347.659,194.226 M1346.223,192.584c0.007,0.051,0.029,0.1,0.069,0.144
+                       c0.031,0.031,0.068,0.053,0.105,0.059C1346.39,192.701,1346.296,192.644,1346.223,192.584 M1345.178,186.377
+                       c0.086-0.053,0.014-0.209-0.096-0.228c-0.031,0.004-0.086,0-0.091,0.011c-0.055,0.114-0.156,0.155-0.294,0.183
+                       c-0.101,0.017-0.122,0.168-0.048,0.241c0.016,0.018,0.066,0.038,0.081,0.032C1344.88,186.54,1345.038,186.466,1345.178,186.377
+                        M1344.274,193.405c-0.017,0.02-0.02,0.051-0.024,0.078c-0.002,0.008,0.011,0.024,0.024,0.031
+                       c0.011,0.007,0.035,0.008,0.043,0.003c0.167-0.105,0.246-0.278,0.437-0.362c-0.081-0.078-0.132-0.024-0.184-0.004
+                       C1344.434,193.203,1344.36,193.31,1344.274,193.405 M1339.061,194.832c-0.033,0.024-0.07,0.054-0.103,0.081
+                       c0.05-0.005,0.101-0.024,0.105-0.079C1339.064,194.834,1339.061,194.834,1339.061,194.832 M1338.483,194.473
+                       c-0.017-0.177-0.12-0.295-0.256-0.379c-0.002,0.042-0.022,0.084-0.07,0.113c-0.042,0.024-0.095,0.038-0.136,0.065
+                       c-0.101,0.073-0.079,0.147,0.057,0.189c0.149,0.044,0.294,0.1,0.448,0.133C1338.504,194.565,1338.488,194.53,1338.483,194.473
+                        M1328.226,186.031c-0.053-0.164-0.198-0.226-0.365-0.286c-0.168-0.061-0.194-0.114-0.094-0.234
+                       c0.09-0.109,0.098-0.173-0.026-0.255c-0.081-0.053-0.156-0.114-0.233-0.173c-0.047,0.033-0.099,0.063-0.154,0.086
+                       c-0.282,0.134-0.401,0.353-0.629,0.491c-0.202,0.122-0.481,0.151-0.69,0.264c-0.177,0.095-0.408,0.191-0.421,0.404
+                       c-0.017,0.214,0.009,0.428,0.024,0.642c0,0.019,0.055,0.053,0.081,0.053c0.244-0.013,0.382,0.08,0.488,0.202
+                       c0.009-0.002,0.017-0.006,0.026-0.006c0.207-0.018,0.378-0.161,0.602-0.118c0.037,0.006,0.096-0.033,0.125-0.065
+                       c0.083-0.09,0.193-0.184,0.224-0.288c0.039-0.138,0.079-0.218,0.265-0.2c0.125,0.011,0.184-0.067,0.242-0.142
+                       c0.081-0.11,0.201-0.147,0.353-0.153C1328.228,186.247,1328.271,186.175,1328.226,186.031 M1326.762,183.408
+                       c-0.069-0.062-0.143-0.119-0.22-0.177c-0.042,0.005-0.083,0.007-0.132,0.005c-0.222-0.014-0.301,0.139-0.325,0.308
+                       c-0.051,0.344,0.132,0.508,0.476,0.359c0.105-0.045,0.208-0.072,0.309-0.088C1326.915,183.668,1326.884,183.521,1326.762,183.408
+                        M1307.236,165.451c-0.112-0.129-0.177-0.303-0.309-0.391c-0.097-0.069-0.167-0.13-0.2-0.198c-0.275,0.153-0.4,0.358-0.41,0.639
+                       c-0.001,0.119-0.163,0.066-0.269,0.066c-0.311,0.002-0.371,0.029-0.39,0.249c-0.035,0.362-0.134,0.695-0.38,0.996
+                       c-0.046,0.058-0.039,0.142,0.04,0.191c0.081,0.051,0.164,0.02,0.217-0.037c0.201-0.211,0.445-0.362,0.772-0.387
+                       c0.156-0.013,0.261-0.075,0.338-0.182c0.09-0.134,0.237-0.193,0.408-0.224c0.039-0.007,0.075-0.018,0.11-0.031
+                       c-0.005-0.073-0.011-0.144-0.029-0.216c-0.022-0.08,0.029-0.142,0.094-0.195C1307.343,165.639,1307.306,165.527,1307.236,165.451
+                        M1305.438,157.573c-0.053,0.004-0.144-0.002-0.153,0.018c-0.098,0.193-0.275,0.262-0.512,0.304
+                       c-0.173,0.031-0.215,0.287-0.09,0.413c0.031,0.031,0.112,0.069,0.141,0.055c0.263-0.124,0.531-0.244,0.773-0.395
+                       C1305.746,157.877,1305.627,157.609,1305.438,157.573 M1304.347,169.577c-0.234,0.088-0.368,0.269-0.516,0.432
+                       c-0.032,0.033-0.039,0.085-0.046,0.13c-0.002,0.017,0.02,0.046,0.041,0.057c0.018,0.008,0.06,0.013,0.075,0.004
+                       c0.29-0.177,0.431-0.473,0.761-0.615C1304.527,169.454,1304.438,169.541,1304.347,169.577 M1300.41,147.338
+                       c-0.033-0.057-0.09-0.133-0.153-0.148c-0.186-0.04-0.382-0.054-0.573-0.075c0.091,0.225,0.409,0.225,0.562,0.392
+                       c0.011,0.011,0.108-0.013,0.136-0.039C1300.41,147.437,1300.429,147.372,1300.41,147.338 M1295.737,169.346
+                       c-0.108-0.156-0.093-0.366-0.147-0.551c-0.029-0.1-0.077-0.186-0.144-0.253c-0.16,0.182-0.313,0.375-0.497,0.524
+                       c-0.127,0.102-0.246,0.224-0.304,0.411c-0.02,0.064-0.047,0.108-0.079,0.141c0.213,0.098,0.431,0.185,0.654,0.256
+                       c0.193,0.062,0.31,0.191,0.502,0.261C1295.857,169.872,1295.932,169.628,1295.737,169.346 M1288.397,162.39
+                       c-0.16-0.157-0.308-0.348-0.518-0.395c-0.108-0.023-0.201-0.055-0.252-0.192c-0.018-0.051-0.038-0.1-0.057-0.149
+                       c-0.007,0.029-0.011,0.055-0.028,0.084c-0.031,0.053-0.079,0.1-0.103,0.155c-0.074,0.169,0.017,0.333,0.202,0.376
+                       c0.042,0.011,0.086,0.015,0.127,0.013c0.106-0.006,0.212-0.018,0.348-0.031c0.022,0.055,0.043,0.115,0.063,0.173
+                       c0.045,0.035,0.086,0.082,0.134,0.106c0.024,0.016,0.069,0,0.093-0.022C1288.431,162.477,1288.426,162.417,1288.397,162.39
+                        M1268.288,166.562c-0.079-0.045-0.105-0.108-0.122-0.175c-0.139,0.056-0.279,0.104-0.428,0.128
+                       c0.024,0.016,0.046,0.025,0.068,0.042c0.112,0.093,0.229,0.185,0.408,0.167c0.081-0.006,0.196,0.033,0.222-0.063
+                       C1268.453,166.596,1268.343,166.591,1268.288,166.562 M1266.466,164.168c-0.098-0.059-0.197-0.124-0.285-0.195
+                       c0,0,0-0.002-0.003-0.002c0,0.011,0.003,0.018,0.003,0.027c-0.007,0.112-0.06,0.198-0.127,0.279
+                       c0.175-0.004,0.349-0.02,0.524-0.035C1266.545,164.215,1266.506,164.193,1266.466,164.168 M1265.977,166.88
+                       c-0.019,0.087-0.025,0.182-0.073,0.257c-0.03,0.045-0.137,0.109-0.282,0.175c0.009,0.024,0.014,0.054,0.019,0.083
+                       c0.057-0.02,0.115-0.047,0.172-0.08c0.077-0.045,0.201-0.036,0.294-0.05c0.083-0.105-0.06-0.125-0.079-0.188
+                       c-0.007-0.027-0.024-0.057-0.016-0.084c0.016-0.079,0.128-0.207,0.239-0.287c-0.03-0.002-0.057-0.002-0.087-0.006
+                       C1266.052,166.682,1265.999,166.786,1265.977,166.88 M1253.435,160.416c-0.127-0.109-0.256-0.216-0.388-0.318
+                       c-0.141,0.059-0.282,0.118-0.426,0.169c-0.176,0.065-0.358,0.122-0.501,0.233c-0.063,0.049-0.163,0.12-0.153,0.169
+                       c0.055,0.295-0.272,0.344-0.43,0.499c-0.087,0.085-0.174,0.055-0.27-0.009c-0.153-0.102-0.167-0.104-0.302,0.02
+                       c-0.077,0.07-0.167,0.097-0.265,0.129c-0.079,0.024-0.145,0.065-0.207,0.108c0.046,0.018,0.086,0.035,0.128,0.053
+                       c0.873-0.064,1.739-0.215,2.624-0.143c0.067,0.006,0.139-0.007,0.207-0.021c0.208-0.035,0.299-0.157,0.273-0.324
+                       C1253.688,160.775,1253.609,160.569,1253.435,160.416 M1251.745,155.829c-0.072,0.063-0.149,0.122-0.242,0.169
+                       c-0.12,0.061-0.216,0.173-0.158,0.3c0.064,0.142-0.005,0.244-0.125,0.304c-0.027,0.014-0.048,0.032-0.072,0.045
+                       c0.077,0.002,0.153-0.002,0.223-0.02c0.395-0.102,0.843-0.037,1.195-0.263C1252.457,155.988,1252.089,155.926,1251.745,155.829
+                        M1250.804,151.876c-0.057-0.042-0.09-0.091-0.112-0.142c-0.011,0.01-0.017,0.018-0.028,0.024
+                       c-0.189,0.118-0.339,0.283-0.488,0.444c0.069,0.014,0.139,0.034,0.215,0.061c0.167,0.062,0.349,0.082,0.476-0.069
+                       C1250.962,152.08,1250.929,151.968,1250.804,151.876 M1250.437,151.124c-0.072-0.018-0.16-0.063-0.254-0.118
+                       c0.043,0.067,0.084,0.133,0.125,0.198c0.05,0.08,0.125,0.098,0.217,0.059c0.048-0.021,0.095-0.047,0.143-0.068
+                       C1250.613,151.167,1250.534,151.147,1250.437,151.124 M1249.265,147.747c0.011,0.002,0.026,0.006,0.038,0.008
+                       c0.103,0.02,0.115,0.096,0.037,0.171c-0.07,0.065-0.149,0.124-0.217,0.191c-0.085,0.086-0.068,0.177,0.06,0.202
+                       c0.188,0.035,0.279,0.102,0.248,0.271c-0.007,0.051,0.059,0.086,0.103,0.059c0.184-0.113,0.301-0.082,0.409,0.005
+                       c0.044,0,0.087,0.001,0.127-0.003l0.005-0.004C1249.926,148.268,1249.867,147.829,1249.265,147.747 M1248.603,141.933
+                       c-0.038-0.002-0.069-0.01-0.105-0.014c-0.129,0.151-0.232,0.315-0.365,0.464c0.354-0.081,0.722-0.036,1.087,0.002l0.002-0.002
+                       C1249.064,142.184,1248.909,141.946,1248.603,141.933 M1247.974,145.987l0.002,0.002c0.014-0.002,0.029-0.002,0.042-0.004
+                       c0.063-0.04,0.122-0.083,0.175-0.129C1248.111,145.883,1248.029,145.914,1247.974,145.987 M1247.601,144.407
+                       c-0.085-0.023-0.158-0.053-0.225-0.086c-0.11,0.066-0.224,0.131-0.341,0.191c-0.115,0.057-0.173,0.139-0.223,0.233l0.008,0.006
+                       c0.215-0.039,0.452-0.006,0.646-0.139c0.083-0.058,0.202-0.073,0.296-0.03c0.126,0.065,0.22,0.027,0.314-0.027
+                       C1247.92,144.498,1247.759,144.451,1247.601,144.407 M1247.321,141.187c-0.042,0.044-0.086,0.086-0.136,0.122
+                       c-0.093,0.066-0.227,0.097-0.299,0.172c-0.105,0.114-0.174,0.254-0.259,0.378c0.01,0.104,0.115,0.102,0.189,0.126
+                       c0.077,0.024,0.113,0.12,0.219,0.089c0.098-0.105-0.026-0.256,0.073-0.336c0.109-0.086,0.265-0.133,0.401-0.195
+                       c0.039-0.018,0.077-0.033,0.112-0.053C1247.52,141.393,1247.422,141.291,1247.321,141.187 M1248.416,147.6
+                       c0.034,0.024,0.103,0.037,0.141,0.024c0.079-0.029,0.144-0.08,0.219-0.118c0.045-0.024,0.117-0.035,0.134,0.014
+                       c0.044,0.151,0.169,0.188,0.315,0.219c-0.079-0.008-0.154-0.11-0.207-0.182c-0.079-0.102-0.151-0.208-0.225-0.312
+                       c-0.126,0.073-0.244,0.159-0.365,0.239C1248.385,147.511,1248.376,147.572,1248.416,147.6 M1248.952,149.879
+                       c0.015,0.021,0.053,0.034,0.083,0.041c0.048,0.005,0.094,0.005,0.139,0c-0.033-0.063-0.066-0.125-0.083-0.187
+                       c-0.042,0.024-0.083,0.049-0.126,0.071C1248.947,149.813,1248.94,149.862,1248.952,149.879 M1241.002,151.504
+                       c-0.151-0.082-0.11-0.237-0.18-0.355c-0.042-0.073,0.02-0.14,0.081-0.195c0.072-0.066,0.063-0.129-0.021-0.184
+                       c-0.041-0.028-0.077-0.065-0.118-0.089c-0.295-0.171-0.366-0.262-0.439-0.548c-0.029-0.107-0.112-0.178-0.23-0.226
+                       c-0.165-0.069-0.318-0.149-0.447-0.251c-0.007,0.019-0.016,0.039-0.031,0.057c-0.038,0.047-0.073,0.093-0.117,0.133
+                       c-0.158,0.158-0.227,0.315-0.096,0.524c0.089,0.144,0.034,0.232-0.169,0.28c-0.339,0.082-0.571,0.257-0.727,0.515
+                       c-0.101,0.17-0.18,0.339-0.094,0.543c0.085,0.195-0.02,0.38-0.158,0.542c-0.04,0.051-0.088,0.096-0.137,0.14
+                       c0.141-0.016,0.277-0.054,0.409-0.132c0.075-0.046,0.2-0.035,0.294-0.048c0.083-0.107-0.061-0.127-0.079-0.189
+                       c-0.007-0.029-0.024-0.059-0.017-0.087c0.026-0.119,0.292-0.37,0.417-0.357c0.314,0.035,0.567-0.12,0.85-0.169
+                       c0.214-0.037,0.374-0.033,0.526,0.093c0.115,0.091,0.23,0.184,0.408,0.167c0.081-0.01,0.197,0.033,0.223-0.063
+                       C1241.167,151.539,1241.057,151.535,1241.002,151.504 M1239.144,149.085c0,0.002-0.002,0.002-0.002,0.002
+                       c-0.111,0-0.222-0.008-0.335-0.002c-0.084,0.006-0.152,0.049-0.182,0.119c-0.009,0.023,0,0.054,0.008,0.079
+                       c0.002,0.011,0.025,0.029,0.033,0.023c0.17-0.057,0.395-0.031,0.476-0.219h0.005
+                       C1239.147,149.087,1239.144,149.087,1239.144,149.085 M1238.207,149.367c-0.061,0.004-0.125-0.011-0.187-0.014
+                       c-0.055,0-0.086,0.028-0.094,0.076c-0.004,0.068,0.029,0.129,0.081,0.184c0.055,0.057,0.125,0.088,0.206,0.031
+                       c0.048-0.033,0.091-0.075,0.132-0.117c0.041-0.04,0.093-0.089,0.062-0.146C1238.357,149.287,1238.278,149.358,1238.207,149.367
+                        M1237.696,152.873c-0.017-0.022-0.055-0.033-0.087-0.046c-0.007-0.003-0.014-0.007-0.021-0.01
+                       c-0.058,0.013-0.18,0.011-0.153,0.055c0.101,0.16-0.01,0.291-0.037,0.433c-0.016,0.084,0.058,0.155,0.156,0.164
+                       c-0.018-0.013-0.038-0.029-0.057-0.039c-0.033-0.022-0.06-0.075-0.057-0.114c0.003-0.071,0.084-0.082,0.151-0.098
+                       c0.128-0.031,0.327,0.051,0.38-0.071C1238.045,152.979,1237.777,152.977,1237.696,152.873 M1238.903,154.635
+                       c0.031,0.024,0.093,0.051,0.124,0.04c0.01-0.004,0.019-0.01,0.028-0.014c-0.021-0.027-0.042-0.055-0.062-0.09
+                       c-0.009-0.027-0.029-0.047-0.042-0.069c-0.015,0.006-0.03,0.015-0.043,0.024C1238.866,154.553,1238.864,154.606,1238.903,154.635
+                        M1236.893,143.265c0.086-0.056,0.011-0.211-0.099-0.232c-0.031,0.004-0.084,0-0.089,0.012c-0.054,0.113-0.157,0.154-0.293,0.182
+                       c-0.101,0.02-0.122,0.169-0.048,0.242c0.017,0.018,0.064,0.037,0.081,0.031C1236.596,143.424,1236.751,143.353,1236.893,143.265
+                        M1235.989,150.292c-0.017,0.018-0.022,0.049-0.024,0.075c-0.002,0.01,0.011,0.024,0.024,0.032
+                       c0.011,0.006,0.033,0.008,0.043,0.002c0.167-0.104,0.245-0.277,0.437-0.362c-0.081-0.078-0.132-0.024-0.184-0.004
+                       C1236.149,150.088,1236.074,150.194,1235.989,150.292 M1231.637,145.179c-0.062-0.068-0.112-0.123-0.124-0.206
+                       c-0.013-0.069-0.034-0.122-0.12-0.164c-0.095-0.045-0.132-0.127-0.134-0.203c-0.191,0.099-0.397,0.183-0.621,0.227
+                       c-0.036,0.006-0.072,0.031-0.098,0.062c0.182,0.098,0.373,0.182,0.557,0.279c0.134,0.042,0.244,0.12,0.338,0.216
+                       c0.147,0.11,0.358,0.153,0.494,0.295c0.062,0.069,0.182,0.006,0.281-0.038C1232.038,145.47,1231.805,145.358,1231.637,145.179
+                        M1230.929,142.966c0.014,0.027,0.029,0.05,0.042,0.076c0.006-0.003,0.008-0.005,0.01-0.01
+                       C1230.967,143.009,1230.948,142.986,1230.929,142.966 M1230.602,142.184c-0.096-0.069-0.166-0.151-0.23-0.238
+                       c-0.099,0.089-0.196,0.177-0.309,0.262c0.189,0.051,0.333,0.137,0.46,0.241c0.014-0.035,0.033-0.072,0.06-0.119
+                       C1230.609,142.277,1230.664,142.23,1230.602,142.184 M1217.155,144.356c-0.083-0.166-0.222-0.042-0.347-0.031
+                       c-0.103,0.008-0.213-0.022-0.32-0.027c-0.093-0.002-0.148,0.042-0.16,0.129c-0.009,0.116,0.044,0.222,0.132,0.315
+                       c0.094,0.102,0.213,0.155,0.351,0.059c0.086-0.057,0.16-0.126,0.232-0.198C1217.115,144.533,1217.203,144.451,1217.155,144.356
+                        M1216.132,140.965c0.005-0.106-0.096-0.242-0.196-0.322c-0.008,0.024-0.023,0.047-0.053,0.065
+                       c-0.287,0.153-0.414,0.359-0.421,0.648c-0.005,0.119-0.165,0.066-0.272,0.066c-0.311,0-0.371,0.029-0.39,0.249
+                       c-0.033,0.362-0.134,0.695-0.38,0.996c-0.046,0.056-0.039,0.142,0.04,0.191c0.084,0.051,0.163,0.02,0.219-0.038
+                       c0.2-0.21,0.444-0.361,0.771-0.386c0.156-0.014,0.261-0.075,0.338-0.182c0.091-0.134,0.237-0.193,0.408-0.224
+                       c0.223-0.04,0.381-0.154,0.557-0.28c0.022-0.015,0.046-0.029,0.067-0.045C1216.457,141.536,1216.11,141.395,1216.132,140.965
+                        M1214.58,133.427c-0.053,0.003-0.144-0.003-0.153,0.017c-0.097,0.191-0.275,0.262-0.509,0.304
+                       c-0.174,0.032-0.217,0.287-0.093,0.413c0.031,0.031,0.112,0.069,0.141,0.055c0.263-0.124,0.531-0.244,0.775-0.395
+                       C1214.888,133.731,1214.769,133.462,1214.58,133.427 M1213.489,145.428c-0.095,0.037-0.172,0.09-0.244,0.15
+                       c0.077,0.034,0.151,0.067,0.224,0.1c0.096-0.092,0.199-0.182,0.335-0.239C1213.669,145.306,1213.58,145.394,1213.489,145.428
+                        M1209.554,123.193c-0.036-0.058-0.09-0.134-0.156-0.149c-0.185-0.04-0.382-0.054-0.573-0.076c0.09,0.226,0.408,0.226,0.562,0.393
+                       c0.011,0.012,0.11-0.013,0.136-0.039C1209.554,123.289,1209.573,123.226,1209.554,123.193 M1200.93,130.549
+                       c-0.053-0.101-0.125-0.114-0.211-0.114c-0.042,0-0.091-0.033-0.122-0.069c-0.128-0.144-0.251-0.297-0.402-0.415
+                       c-0.079-0.059-0.124-0.161-0.083-0.304c0.008-0.016,0.004-0.033,0.008-0.049c-0.034,0.045-0.075,0.085-0.134,0.122
+                       c-0.221,0.136-0.388,0.338-0.562,0.521c-0.12,0.129-0.186,0.253-0.05,0.438c0.126,0.17,0.097,0.392-0.052,0.575
+                       c-0.053,0.062-0.103,0.124-0.031,0.195c0.018,0.02,0.04,0.031,0.062,0.037c0.057-0.027,0.124-0.029,0.189-0.029
+                       c0.022-0.002,0.046-0.002,0.069,0.004c0.032,0.01,0.063,0.012,0.092,0.016c0.117-0.016,0.232-0.031,0.349-0.04
+                       c0.024-0.002,0.05-0.004,0.077-0.002c0.009-0.002,0.02-0.004,0.029-0.006c0.182-0.036,0.356-0.104,0.544-0.02
+                       c0.103,0.045,0.4-0.267,0.414-0.399c0.002-0.016,0.002-0.031,0.002-0.045C1201.095,130.798,1201,130.682,1200.93,130.549
+                        M1199.929,127.977c-0.01-0.01-0.017-0.016-0.029-0.022c0.002,0.027,0.014,0.047,0.049,0.053
+                       C1199.943,127.997,1199.938,127.985,1199.929,127.977 M1199.694,128.957c-0.015-0.019-0.028-0.041-0.044-0.064
+                       c-0.052,0.017-0.108,0.031-0.167,0.042c0.048,0.076,0.099,0.155,0.146,0.23c0.048,0.082,0.122,0.098,0.215,0.059
+                       c0.013-0.004,0.021-0.011,0.034-0.015C1199.813,129.13,1199.756,129.044,1199.694,128.957 M1199.154,135.621
+                       c0.009,0.065,0.119,0.17,0.246,0.256c0.075-0.055,0.163-0.065,0.248-0.069c0.163-0.011,0.259-0.088,0.265-0.314
+                       c0-0.087,0.072-0.122,0.127-0.085c0.105,0.071,0.189,0.171,0.27,0.275c0.035,0.05,0.062,0.131,0.156,0.096
+                       c-0.029-0.155-0.044-0.324-0.136-0.435c-0.105-0.121-0.094-0.257-0.081-0.404c0.014-0.135,0.078-0.18,0.167-0.098
+                       c0.086,0.081,0.172,0.149,0.281,0.144c0.022,0,0.048-0.015,0.06-0.035c0.01-0.02,0.01-0.063,0-0.081
+                       c-0.057-0.095-0.126-0.17-0.217-0.212c-0.028-0.013-0.055-0.027-0.081-0.045c-0.189,0.11-0.354,0.238-0.523,0.366
+                       c-0.048,0.035-0.122,0.067-0.184,0.067c-0.129,0-0.239,0.013-0.318,0.113c-0.108,0.134-0.248,0.249-0.282,0.417
+                       C1199.148,135.592,1199.152,135.606,1199.154,135.621 M1190.47,129.566c-0.005,0.006-0.007,0.016-0.013,0.02
+                       c0.006-0.006,0.01-0.01,0.013-0.018V129.566z M1189.368,132.868c-0.16-0.144-0.34-0.24-0.596-0.156
+                       c-0.209,0.067-0.367,0.01-0.456-0.178c-0.015-0.032-0.037-0.058-0.056-0.085c-0.014,0.013-0.025,0.031-0.042,0.045
+                       c-0.138,0.142-0.275,0.224-0.505,0.14c-0.112-0.042-0.239,0.005-0.287,0.092c-0.16,0.289-0.474,0.293-0.777,0.324
+                       c-0.139,0.016-0.275,0.036-0.413,0.054c0.738,0.367,1.501,0.745,2.283,1.127c0-0.047-0.009-0.096-0.033-0.132
+                       c-0.105-0.164-0.153-0.357-0.307-0.503c-0.055-0.053,0.008-0.168,0.092-0.177c0.239-0.024,0.481-0.04,0.724-0.057
+                       c0.292,0.147,0.474-0.061,0.739-0.138C1189.592,133.082,1189.484,132.972,1189.368,132.868 M1188.677,127.227
+                       c-0.016-0.042-0.046-0.071-0.079-0.096c0,0.033,0.005,0.062,0,0.096c-0.521,0.29-0.523,0.29-1.052,0.31
+                       c-0.151,0.006-0.281,0.038-0.364,0.144c-0.112,0.144-0.286,0.22-0.444,0.318c-0.072,0.044-0.077,0.135-0.015,0.186
+                       c0.053,0.042,0.162,0.091,0.213,0.071c0.204-0.075,0.404-0.164,0.586-0.275c0.177-0.106,0.323-0.184,0.514-0.024
+                       c0.103,0.088,0.199,0.011,0.289-0.047c0.193-0.117,0.389-0.235,0.584-0.353C1188.81,127.465,1188.727,127.359,1188.677,127.227
+                        M1188.466,126.146c-0.095,0.078-0.086,0.156-0.059,0.255v0.005c0.074-0.112,0.143-0.224,0.191-0.344
+                       C1188.549,126.088,1188.505,126.115,1188.466,126.146 M1185.344,119.547c0.093,0.102,0.213,0.155,0.351,0.059
+                       c0.086-0.057,0.16-0.129,0.231-0.198c0.072-0.071,0.16-0.153,0.113-0.249c-0.085-0.166-0.223-0.045-0.347-0.033
+                       c-0.103,0.011-0.213-0.02-0.32-0.024c-0.094-0.005-0.149,0.041-0.161,0.129C1185.202,119.346,1185.255,119.453,1185.344,119.547
+                        M1183.624,108.626c0.149-0.093,0.03-0.36-0.16-0.395c-0.052,0.004-0.143-0.004-0.152,0.016c-0.099,0.192-0.275,0.263-0.509,0.306
+                       c-0.175,0.031-0.219,0.284-0.094,0.413c0.031,0.031,0.112,0.066,0.141,0.055C1183.113,108.897,1183.38,108.775,1183.624,108.626
+                        M1182.373,120.232c-0.234,0.089-0.367,0.271-0.516,0.435c-0.029,0.033-0.038,0.084-0.046,0.129
+                       c-0.002,0.018,0.022,0.045,0.041,0.055c0.02,0.011,0.062,0.016,0.077,0.004c0.289-0.175,0.43-0.473,0.76-0.612
+                       C1182.553,120.109,1182.463,120.199,1182.373,120.232 M1173.764,120.003c-0.108-0.155-0.094-0.369-0.149-0.55
+                       c-0.066-0.224-0.205-0.395-0.512-0.395c-0.093-0.002-0.165-0.027-0.224-0.064c-0.017,0.005-0.026,0.015-0.046,0.021
+                       c-0.198,0.071-0.27,0.23-0.172,0.417c0.026,0.047,0.009,0.157-0.022,0.169c-0.246,0.08-0.423,0.297-0.667,0.353
+                       c0.033,0.016,0.066,0.029,0.108,0.055c0.353,0.216,0.755,0.389,1.164,0.521c0.194,0.063,0.311,0.189,0.502,0.259
+                       C1173.883,120.527,1173.958,120.286,1173.764,120.003 M1171.168,120.245c-0.072,0-0.16,0.096-0.213,0.159
+                       c-0.013,0.018-0.013,0.038-0.017,0.055c0.089-0.071,0.175-0.146,0.263-0.219C1171.19,120.243,1171.179,120.245,1171.168,120.245
+                        M1170.711,115.764c-0.063-0.121-0.081-0.239-0.075-0.357c-0.138,0.102-0.116,0.218,0.038,0.432
+                       c0.039,0.056,0.087,0.109,0.137,0.16C1170.783,115.92,1170.751,115.842,1170.711,115.764 M1161.48,109.726
+                       c-0.11-0.022-0.222-0.027-0.335-0.039c0.055,0.131,0.241,0.129,0.333,0.226c0.004,0.004,0.062-0.01,0.079-0.027
+                       c0.016-0.018,0.025-0.056,0.014-0.073C1161.55,109.777,1161.517,109.736,1161.48,109.726 M1159.474,113.344
+                       c-0.044,0.018-0.088,0.035-0.125,0.059c0.037,0.018,0.07,0.038,0.103,0.056C1159.555,113.417,1159.498,113.379,1159.474,113.344
+                        M1133.68,113.479c-0.052,0.005-0.143-0.002-0.156,0.018c-0.097,0.193-0.272,0.261-0.509,0.304
+                       c-0.174,0.031-0.215,0.287-0.09,0.413c0.031,0.031,0.112,0.068,0.138,0.055c0.266-0.124,0.533-0.244,0.775-0.395
+                       C1133.988,113.782,1133.869,113.515,1133.68,113.479 M1124.86,109.07c-0.03,0.029-0.037,0.075,0,0.1
+                       c0.011,0.008,0.031,0.014,0.047,0.019C1124.894,109.149,1124.877,109.11,1124.86,109.07 M1118.274,107.954
+                       c-0.051-0.151-0.18-0.216-0.333-0.271c-0.012,0.02-0.029,0.037-0.033,0.069c0.04,0.041,0.098,0.084,0.132,0.138
+                       c0.093,0.137,0.095,0.223,0.005,0.292c0.015-0.002,0.031-0.004,0.048-0.006C1118.276,108.169,1118.318,108.098,1118.274,107.954
+                        M1117.475,108.471c0.007,0.002,0.011,0,0.021,0c0.122,0.013,0.183-0.067,0.242-0.142c0.011-0.018,0.029-0.031,0.042-0.045
+                       C1117.618,108.349,1117.519,108.406,1117.475,108.471 M1108.078,115.108c-0.085-0.102-0.204-0.167-0.357-0.21
+                       c-0.536-0.156-0.92-0.444-1.126-0.879c-0.064-0.14,0.013-0.238,0.127-0.324c0.103-0.073,0.222-0.091,0.351-0.038
+                       c0.196,0.083,0.356,0.227,0.648,0.234c-0.284-0.257-0.43-0.55-0.795-0.735c-0.25-0.124-0.417-0.357-0.605-0.554
+                       c-0.129,0.302-0.34,0.548-0.768,0.623c0.051,0.08,0.099,0.158,0.147,0.233c0.047,0.08,0.121,0.098,0.214,0.061
+                       c0.063-0.027,0.118-0.065,0.182-0.087c0.122-0.039,0.221,0.018,0.204,0.122c-0.031,0.171-0.039,0.331-0.244,0.46
+                       c-0.222,0.135-0.387,0.337-0.562,0.522c-0.119,0.126-0.189,0.253-0.05,0.437c0.127,0.171,0.098,0.391-0.052,0.572
+                       c-0.053,0.065-0.103,0.127-0.031,0.198c0.055,0.054,0.126,0.057,0.204,0.051c0.005-0.004,0.007-0.011,0.011-0.015
+                       c0.136-0.149,0.246-0.177,0.459-0.109c0.043,0.016,0.086,0.038,0.129,0.061c0.077-0.002,0.153,0.011,0.191,0.069
+                       c0.002,0.001,0.005,0.004,0.008,0.008c0.078,0.006,0.146-0.024,0.181-0.093c0.027-0.053,0.013-0.122,0.031-0.18
+                       c0.094-0.26,0.285-0.34,0.56-0.226c0.182,0.073,0.347,0.173,0.529,0.242c0.156,0.059,0.301,0.015,0.402-0.096
+                       C1108.165,115.343,1108.169,115.218,1108.078,115.108 M1088.047,99.228c-0.11-0.022-0.222-0.028-0.335-0.04
+                       c0.056,0.131,0.239,0.129,0.333,0.226c0.005,0.005,0.062-0.009,0.077-0.027c0.018-0.018,0.029-0.055,0.017-0.073
+                       C1088.117,99.279,1088.082,99.237,1088.047,99.228 M1086.139,107.496c-0.101,0.038-0.201,0.073-0.296,0.116
+                       c0.145,0.098,0.336,0.144,0.464,0.28c0.062,0.066,0.182,0.006,0.28-0.04C1086.457,107.716,1086.284,107.616,1086.139,107.496
+                        M1086.029,102.831c-0.022-0.066-0.062-0.131-0.068-0.194c0-0.029,0.009-0.061,0.009-0.089c-0.004,0-0.009,0.004-0.016,0.004
+                       c-0.156,0.018-0.259,0.1-0.347,0.185c0.055,0.021,0.123,0.059,0.213,0.116c0.064,0.039,0.134,0.075,0.198,0.108
+                       C1086.137,102.914,1086.045,102.871,1086.029,102.831 M1085.281,106.526c0.145,0.03,0.284,0.056,0.418,0.083
+                       c0.017-0.107-0.042-0.216,0.052-0.306c0.044-0.042,0.02-0.101-0.016-0.15c-0.101,0.076-0.233,0.132-0.318,0.216
+                       C1085.374,106.411,1085.338,106.46,1085.281,106.526 M1085.219,105.102c-0.056-0.031-0.104-0.071-0.151-0.108
+                       c-0.232-0.177-0.241-0.209-0.108-0.46c0.028-0.05,0.081-0.1,0.02-0.144c-0.151-0.11-0.243-0.253-0.342-0.394
+                       c-0.017-0.022-0.044-0.038-0.07-0.056c-0.147,0.096-0.287,0.2-0.426,0.305c-0.05,0.035-0.121,0.066-0.184,0.066
+                       c-0.132,0.002-0.239,0.016-0.317,0.114c-0.108,0.135-0.252,0.249-0.282,0.418c-0.003,0.014,0,0.03,0.002,0.042
+                       c0.019,0.136,0.468,0.446,0.624,0.399c0.285-0.084,0.55-0.015,0.823,0.022c0.2,0.028,0.402,0.058,0.603,0.053
+                       C1085.384,105.255,1085.328,105.165,1085.219,105.102 M1084.987,103.252c-0.083,0.055-0.141,0.137-0.122,0.233
+                       c0.028-0.013,0.057-0.024,0.083-0.038C1085.061,103.384,1085.064,103.358,1084.987,103.252 M1084.344,112.195
+                       c0.134-0.069,0.184-0.091,0.32-0.01c0.211,0.124,0.444,0.222,0.686,0.295c0.112,0.036,0.182,0.109,0.294,0.149
+                       c0.077-0.155,0.118-0.295,0.004-0.459c-0.065-0.089-0.061-0.213-0.094-0.32c-0.041-0.129-0.125-0.228-0.301-0.226
+                       c-0.118,0-0.177-0.063-0.237-0.13c-0.003-0.002-0.005-0.004-0.008-0.008c-0.169,0.061-0.341,0.118-0.532,0.109
+                       c-0.186-0.01-0.23,0.039-0.258,0.21c-0.033,0.188-0.125,0.373-0.115,0.564C1084.173,112.305,1084.247,112.242,1084.344,112.195
+                        M1072.154,107.565c-0.016,0.014-0.031,0.032-0.051,0.037c-0.143,0.056-0.257,0.136-0.363,0.223
+                       c0.011,0.009,0.026,0.015,0.04,0.024c0.068,0.045,0.134,0.124,0.225,0.088c0.097-0.039,0.141-0.126,0.148-0.222
+                       C1072.156,107.667,1072.159,107.614,1072.154,107.565 M1071.298,115.108c-0.053-0.006-0.091-0.027-0.136-0.045
+                       c-0.198,0.091-0.347,0.235-0.382,0.468c0.105-0.062,0.23-0.091,0.389-0.075c0.103,0.009,0.194-0.065,0.215-0.163
+                       C1071.403,115.218,1071.399,115.123,1071.298,115.108 M1070.624,110.274c-0.052-0.011-0.11-0.019-0.147-0.046
+                       c-0.14-0.101-0.412-0.138-0.417-0.289c-0.009-0.211,0.27-0.175,0.443-0.222c0.124-0.033,0.147-0.096,0.073-0.202
+                       c-0.062-0.087-0.128-0.173-0.186-0.264c-0.062-0.093-0.143-0.159-0.262-0.204c-0.123-0.047-0.242-0.1-0.362-0.155
+                       c-0.039,0.004-0.074,0.006-0.112,0.011c-0.139,0.014-0.276,0.035-0.412,0.051c-0.217,0.027-0.339,0.122-0.394,0.313
+                       c-0.125,0.434-0.28,0.519-0.801,0.442c-0.187-0.03-0.294-0.045-0.139,0.141c0.051,0.063,0.093,0.14,0.038,0.193
+                       c-0.229,0.226-0.203,0.562-0.406,0.764c-0.202,0.2-0.094,0.273,0.046,0.392c0.086,0.073,0.183,0.112,0.299,0.063
+                       c0.176-0.073,0.341-0.163,0.521-0.228c0.127-0.047,0.302-0.131,0.393-0.091c0.437,0.184,0.741,0.016,1.054-0.208
+                       c0.077-0.053,0.213-0.049,0.323-0.065c0.325-0.051,0.667-0.066,0.937-0.246C1070.951,110.366,1070.791,110.307,1070.624,110.274
+                        M1068.348,95.399c0.096,0.102,0.215,0.156,0.354,0.061c0.085-0.058,0.16-0.129,0.232-0.198c0.072-0.071,0.158-0.155,0.11-0.249
+                       c-0.083-0.167-0.222-0.045-0.344-0.033c-0.105,0.011-0.213-0.02-0.32-0.024c-0.095-0.004-0.147,0.041-0.163,0.126
+                       C1068.209,95.201,1068.262,95.307,1068.348,95.399 M1066.629,84.48c0.149-0.093,0.031-0.36-0.158-0.395
+                       c-0.055,0.004-0.144-0.004-0.156,0.016c-0.097,0.192-0.272,0.263-0.509,0.306c-0.172,0.029-0.215,0.285-0.091,0.413
+                       c0.031,0.031,0.112,0.066,0.139,0.055C1066.118,84.75,1066.388,84.628,1066.629,84.48 M1065.38,96.085
+                       c-0.237,0.089-0.367,0.271-0.516,0.435c-0.031,0.033-0.039,0.084-0.046,0.129c-0.004,0.017,0.02,0.044,0.041,0.055
+                       c0.019,0.01,0.06,0.015,0.077,0.004c0.286-0.175,0.43-0.473,0.76-0.612C1065.558,95.963,1065.469,96.052,1065.38,96.085
+                        M1055.652,98.585c-0.077-0.022-0.165-0.012-0.25-0.02c-0.277-0.024-0.406-0.049-0.466-0.157
+                       c-0.077,0.035-0.162,0.055-0.268,0.051c-0.12-0.01-0.172,0.065-0.196,0.155c0.098,0.006,0.227,0.051,0.26,0.11
+                       c0.039,0.063,0.082,0.107,0.129,0.142c0.224-0.066,0.436-0.029,0.665,0.027c0.002,0.029,0.002,0.059,0.004,0.088
+                       c0.029,0.003,0.057,0.003,0.086,0.005c0.105,0.008,0.25-0.014,0.259-0.129C1055.886,98.731,1055.798,98.628,1055.652,98.585
+                        M1054.234,97.437c0.003,0.037,0.005,0.073,0.021,0.104c0.041,0.086,0.127,0.117,0.228,0.078c0.015-0.004,0.026-0.014,0.041-0.02
+                       C1054.437,97.537,1054.34,97.483,1054.234,97.437 M1054.724,113.408c0.388,0.024,0.763,0.098,1.126,0.205
+                       c-0.046-0.051-0.108-0.098-0.189-0.142c-0.316-0.173-0.574-0.48-1.04-0.355c-0.026,0.006-0.053,0.006-0.073,0.004
+                       c0.009,0.027,0.014,0.055,0.001,0.092C1054.505,113.354,1054.6,113.401,1054.724,113.408 M1041.01,98.23
+                       c-0.065-0.105-0.133-0.205-0.192-0.305c-0.157,0.116-0.332,0.216-0.536,0.262c-0.049,0.011-0.102,0.08-0.071,0.147
+                       c0.016,0.031,0.071,0.074,0.095,0.069c0.197-0.047,0.316,0.019,0.414,0.121c0.189-0.008,0.373,0.01,0.554,0.038
+                       C1041.178,98.465,1041.09,98.358,1041.01,98.23 M1022.93,102.058c0.033,0.017,0.066,0.033,0.101,0.049
+                       c0.162-0.112,0.258-0.25,0.284-0.464c0.008-0.065,0.02-0.129,0.034-0.191C1023.202,101.649,1023.011,101.824,1022.93,102.058
+                        M981.691,84.488c0.057,0.059,0.127,0.089,0.206,0.033c0.05-0.035,0.093-0.075,0.134-0.117c0.04-0.042,0.091-0.091,0.062-0.144
+                       c-0.05-0.098-0.129-0.024-0.2-0.018c-0.063,0.007-0.125-0.008-0.189-0.011c-0.055-0.002-0.087,0.024-0.092,0.075
+                       C981.607,84.372,981.64,84.435,981.691,84.488 M980.574,78.14c0.086-0.056,0.015-0.209-0.095-0.229
+                       c-0.031,0.002-0.083-0.002-0.091,0.012c-0.056,0.114-0.156,0.155-0.292,0.182c-0.101,0.018-0.125,0.167-0.05,0.24
+                       c0.019,0.018,0.066,0.04,0.084,0.031C980.28,78.301,980.435,78.228,980.574,78.14 M979.673,85.167
+                       c-0.017,0.021-0.021,0.052-0.026,0.076c0,0.011,0.011,0.027,0.024,0.033c0.011,0.004,0.036,0.006,0.045,0.002
+                       c0.168-0.106,0.247-0.279,0.438-0.364c-0.081-0.075-0.134-0.024-0.184-0.004C979.833,84.966,979.757,85.07,979.673,85.167
+                        M977.352,71.899c-0.11-0.022-0.222-0.027-0.334-0.039c0.055,0.131,0.239,0.129,0.332,0.226c0.005,0.004,0.062-0.01,0.077-0.027
+                       c0.019-0.018,0.029-0.055,0.016-0.073C977.424,71.953,977.389,71.908,977.352,71.899 M974.951,84.841
+                       c-0.064-0.088-0.057-0.212-0.093-0.32c-0.041-0.127-0.125-0.228-0.302-0.226c-0.115,0-0.176-0.062-0.236-0.129
+                       c-0.028-0.033-0.063-0.066-0.094-0.102c-0.097,0.054-0.2,0.1-0.316,0.124c-0.051,0.012-0.104,0.08-0.071,0.149
+                       c0.014,0.031,0.069,0.075,0.095,0.069c0.333-0.081,0.452,0.171,0.603,0.355c0.117,0.144,0.18,0.336,0.31,0.46
+                       c0.022,0.017,0.039,0.037,0.053,0.055c0.017,0.006,0.032,0.018,0.048,0.024C975.025,85.146,975.066,85.003,974.951,84.841
+                        M949.176,78.213c-0.153-0.085-0.112-0.24-0.182-0.356c-0.042-0.075,0.019-0.139,0.082-0.198c0.073-0.066,0.062-0.129-0.022-0.184
+                       c-0.041-0.027-0.074-0.063-0.118-0.089c-0.045-0.024-0.077-0.047-0.112-0.07c-0.208,0.095-0.363,0.239-0.478,0.428
+                       c-0.068,0.117-0.123,0.235-0.123,0.364c0.181-0.028,0.33-0.016,0.468,0.099c0.115,0.093,0.23,0.185,0.409,0.167
+                       c0.082-0.006,0.197,0.033,0.223-0.062C949.339,78.246,949.232,78.242,949.176,78.213 M946.731,69.845
+                       c0.086-0.056,0.014-0.211-0.096-0.229c-0.031,0.003-0.084-0.002-0.091,0.012c-0.055,0.114-0.156,0.153-0.294,0.18
+                       c-0.101,0.02-0.121,0.169-0.048,0.242c0.017,0.018,0.068,0.037,0.081,0.031C946.437,70.006,946.592,69.933,946.731,69.845
+                        M945.829,76.873c-0.018,0.019-0.022,0.049-0.026,0.075c-0.002,0.008,0.013,0.027,0.024,0.031
+                       c0.013,0.006,0.036,0.008,0.046,0.004c0.165-0.106,0.246-0.279,0.437-0.364c-0.084-0.075-0.134-0.023-0.186-0.004
+                       C945.987,76.671,945.913,76.775,945.829,76.873 M943.508,63.604c-0.111-0.021-0.225-0.027-0.337-0.039
+                       c0.057,0.131,0.241,0.129,0.332,0.224c0.008,0.006,0.065-0.006,0.079-0.024c0.017-0.018,0.029-0.055,0.017-0.073
+                       C943.577,63.656,943.544,63.613,943.508,63.604 M941.476,71.762c-0.063-0.069-0.113-0.124-0.125-0.206
+                       c-0.01-0.065-0.031-0.116-0.103-0.154c-0.098,0.12-0.184,0.249-0.283,0.371c0.103,0.055,0.204,0.116,0.294,0.191
+                       c0.149,0.117,0.369,0.156,0.507,0.304c0.063,0.067,0.182,0.007,0.28-0.04C941.88,72.052,941.643,71.939,941.476,71.762
+                        M941.191,70.526c-0.177-0.224-0.261-0.475-0.306-0.735c-0.017-0.095-0.05-0.179-0.12-0.245c-0.002,0,0,0.002,0,0.004
+                       c-0.046,0.062-0.112,0.11-0.165,0.168c-0.044,0.05-0.053,0.101-0.022,0.163c0.108,0.202,0.105,0.204-0.029,0.306
+                       c-0.143,0.109-0.284,0.213-0.377,0.362c-0.048,0.075-0.123,0.144-0.201,0.2c-0.091,0.067-0.224,0.1-0.296,0.175
+                       c-0.108,0.114-0.176,0.251-0.258,0.375c0.007,0.106,0.115,0.103,0.189,0.126c0.042,0.016,0.077,0.051,0.115,0.076
+                       c0.053-0.042,0.098-0.076,0.138-0.103c0-0.08-0.031-0.167,0.037-0.219c0.11-0.087,0.265-0.132,0.401-0.195
+                       c0.046-0.02,0.098-0.036,0.137-0.065c0.145-0.1,0.296-0.098,0.428,0c0.084,0.062,0.176,0.102,0.275,0.133
+                       c0.072-0.126-0.038-0.261,0.077-0.373C941.258,70.635,941.229,70.572,941.191,70.526 M933.79,80.945
+                       c-0.152-0.085-0.112-0.24-0.179-0.356c-0.046-0.075,0.018-0.14,0.079-0.198c0.073-0.066,0.062-0.126-0.022-0.184
+                       c-0.041-0.027-0.074-0.063-0.118-0.086c-0.293-0.174-0.365-0.264-0.439-0.549c-0.029-0.108-0.11-0.177-0.23-0.226
+                       c-0.016-0.006-0.029-0.015-0.045-0.022v0.016c0.009,0.057,0.002,0.11-0.05,0.151c-0.101,0.075-0.055,0.151,0.007,0.218
+                       c0.138,0.144,0.189,0.277,0.004,0.43c-0.079,0.067-0.095,0.171-0.057,0.271c0.024,0.067,0.029,0.136,0.041,0.204
+                       c0.014,0.089,0.009,0.169-0.027,0.24c0.009-0.002,0.016-0.004,0.024-0.007c0.213-0.037,0.373-0.033,0.527,0.093
+                       c0.113,0.093,0.231,0.185,0.409,0.167c0.08-0.006,0.198,0.033,0.222-0.062C933.955,80.978,933.845,80.976,933.79,80.945
+                        M933.074,84.575c-0.013-0.012-0.024-0.024-0.034-0.036c-0.035-0.002-0.071-0.006-0.108-0.008c-0.04,0-0.064,0.017-0.079,0.047
+                       C932.928,84.577,933,84.575,933.074,84.575 M931.685,78.354c-0.051-0.037-0.075-0.082-0.072-0.126
+                       c-0.055,0.108-0.153,0.149-0.29,0.176c-0.099,0.019-0.121,0.168-0.047,0.241c0.018,0.018,0.067,0.038,0.08,0.031
+                       c0.153-0.075,0.309-0.147,0.448-0.235c0-0.003,0-0.003,0.002-0.003C931.766,78.41,931.723,78.386,931.685,78.354 M928.581,72.202
+                       c-0.111-0.022-0.225-0.03-0.335-0.042c0.055,0.133,0.239,0.131,0.33,0.226c0.008,0.006,0.065-0.01,0.08-0.024
+                       c0.016-0.018,0.029-0.055,0.016-0.075C928.65,72.253,928.617,72.208,928.581,72.202 M904.294,79.54
+                       c0.055,0.059,0.127,0.088,0.206,0.033c0.05-0.035,0.091-0.075,0.134-0.117c0.04-0.042,0.091-0.091,0.062-0.147
+                       c-0.049-0.096-0.132-0.022-0.2-0.016c-0.063,0.006-0.127-0.011-0.189-0.011c-0.055-0.002-0.086,0.023-0.094,0.075
+                       C904.21,79.424,904.241,79.487,904.294,79.54 M903.178,73.191c0.086-0.056,0.014-0.211-0.096-0.229
+                       c-0.031,0.002-0.083-0.002-0.091,0.012c-0.056,0.114-0.156,0.153-0.292,0.18c-0.103,0.02-0.125,0.169-0.05,0.242
+                       c0.019,0.017,0.066,0.037,0.081,0.031C902.884,73.353,903.038,73.28,903.178,73.191 M902.276,80.218
+                       c-0.019,0.02-0.021,0.051-0.026,0.075c-0.002,0.012,0.013,0.027,0.024,0.032c0.011,0.006,0.035,0.008,0.045,0.004
+                       c0.168-0.106,0.246-0.279,0.438-0.364c-0.085-0.075-0.134-0.024-0.184-0.004C902.436,80.017,902.36,80.122,902.276,80.218
+                        M894.739,87.531c-0.055,0.017-0.11,0.044-0.156,0.075c-0.016,0.011-0.011,0.047-0.011,0.07c0.002,0.01,0.024,0.016,0.044,0.027
+                       c0.073-0.003,0.145-0.027,0.198-0.076c0.014-0.016,0.017-0.056,0.005-0.071C894.807,87.537,894.761,87.524,894.739,87.531
+                        M876.717,86.908c-0.091-0.287-0.349-0.395-0.641-0.501c-0.294-0.105-0.34-0.199-0.163-0.407c0.158-0.191,0.169-0.304-0.048-0.448
+                       c-0.263-0.175-0.488-0.404-0.775-0.542c-0.158-0.075-0.303-0.144-0.411-0.242c-0.043,0.061-0.074,0.125-0.096,0.195
+                       c-0.044,0.16-0.105,0.366-0.086,0.478c0.009,0.059,0,0.11-0.052,0.15c-0.101,0.079-0.055,0.154,0.01,0.22
+                       c0.137,0.144,0.187,0.275,0.003,0.431c-0.078,0.067-0.095,0.168-0.06,0.271c0.024,0.064,0.032,0.135,0.041,0.202
+                       c0.029,0.179-0.017,0.326-0.232,0.411c-0.057,0.021-0.095,0.072-0.134,0.102c-0.029,0.131,0.153,0.088,0.175,0.182
+                       c0.018,0.082,0.126,0.12,0.196,0.177c0.105,0.086,0.114,0.202-0.007,0.289c-0.201,0.143-0.175,0.337-0.206,0.518
+                       c-0.009,0.052,0.031,0.116-0.031,0.151c-0.11,0.063-0.175,0.138-0.21,0.234c0.094-0.016,0.189-0.018,0.289,0.002
+                       c0.06,0.013,0.167-0.055,0.217-0.11c0.145-0.163,0.34-0.322,0.393-0.509c0.069-0.237,0.141-0.379,0.466-0.348
+                       c0.215,0.022,0.32-0.115,0.421-0.249c0.145-0.19,0.353-0.256,0.621-0.267C876.722,87.285,876.796,87.16,876.717,86.908
+                        M874.197,84.031c-0.122-0.098-0.237-0.203-0.351-0.307c-0.053,0.052-0.12,0.093-0.096,0.173c0.038,0.142-0.23,0.307-0.014,0.409
+                       c0.154,0.073,0.258-0.133,0.397-0.198c0.04-0.02,0.075-0.033,0.111-0.042C874.228,84.056,874.213,84.042,874.197,84.031
+                        M873.37,84.313c-0.033,0.002-0.086,0-0.092,0.012c-0.055,0.113-0.158,0.155-0.294,0.182c-0.101,0.018-0.123,0.167-0.049,0.24
+                       c0.018,0.017,0.066,0.039,0.083,0.031c0.15-0.073,0.306-0.147,0.448-0.236C873.552,84.488,873.478,84.333,873.37,84.313
+                        M874.139,94.751c0.135,0.004,0.263-0.006,0.364-0.09c0.127-0.106,0.248-0.211,0.45-0.156c-0.033-0.025-0.064-0.05-0.101-0.073
+                       c-0.32-0.186-0.49-0.319-0.602-0.512c-0.026,0.055,0.011,0.155-0.087,0.175c-0.057,0.013-0.182,0.013-0.154,0.055
+                       c0.101,0.161-0.01,0.291-0.037,0.435C873.953,94.672,874.035,94.748,874.139,94.751 M867.839,91.243
+                       c-0.003-0.002-0.003-0.004-0.003-0.006c-0.138,0.091-0.275,0.18-0.406,0.277c0.038,0.014,0.075,0.029,0.112,0.042
+                       c0.112,0.033,0.182,0.106,0.296,0.147C867.916,91.55,867.957,91.408,867.839,91.243 M866.459,89.954
+                       c-0.193-0.102-0.295-0.261-0.293-0.471c0.002-0.08-0.006-0.159-0.015-0.239c-0.002,0.002-0.007,0.004-0.009,0.009
+                       c-0.186,0.198-0.309,0.44-0.454,0.66c0.017,0.182,0.203,0.177,0.332,0.219c0.132,0.042,0.197,0.211,0.383,0.156
+                       C866.494,90.19,866.472,90.067,866.459,89.954 M857.28,97.836c-0.091-0.286-0.347-0.394-0.64-0.501
+                       c-0.292-0.104-0.338-0.198-0.16-0.408c0.158-0.189,0.169-0.302-0.048-0.446c-0.263-0.175-0.489-0.404-0.775-0.542
+                       c-0.184-0.088-0.351-0.169-0.461-0.291c0.016,0.042,0.024,0.087-0.003,0.132c-0.165,0.302-0.341,0.601-0.508,0.903
+                       c-0.134,0.242-0.383,0.297-0.671,0.34c-0.556,0.082-0.949,0.416-1.375,0.692c-0.072,0.048-0.086,0.153-0.014,0.204
+                       c0.06,0.039,0.181,0.064,0.246,0.042c0.136-0.052,0.251-0.14,0.38-0.207c0.081-0.044,0.206-0.065,0.235,0.022
+                       c0.097,0.309,0.387,0.355,0.691,0.413c0.178,0.033,0.2,0.167,0.064,0.297c-0.122,0.115-0.263,0.22-0.38,0.337
+                       c-0.149,0.149-0.12,0.311,0.105,0.353c0.327,0.063,0.488,0.181,0.435,0.476c-0.007,0.033,0.009,0.057,0.031,0.08
+                       c0.087-0.022,0.175-0.038,0.271-0.038c0.121-0.055,0.227-0.072,0.319-0.059c0.015-0.013,0.029-0.024,0.039-0.035
+                       c0.148-0.162,0.342-0.323,0.395-0.509c0.069-0.238,0.141-0.381,0.464-0.348c0.217,0.02,0.323-0.116,0.423-0.249
+                       c0.145-0.191,0.351-0.257,0.621-0.266C857.286,98.214,857.363,98.086,857.28,97.836 M857.038,92.031
+                       c-0.034,0.031-0.067,0.064-0.101,0.096c0.033-0.032,0.067-0.065,0.103-0.096H857.038z M855.076,95.326
+                       c-0.002-0.155-0.176-0.259-0.312-0.365c-0.177-0.142-0.347-0.291-0.513-0.444c-0.1-0.096-0.038-0.255,0.113-0.318
+                       c0.026-0.011,0.054-0.022,0.084-0.029c0.174-0.036,0.402-0.022,0.459-0.202c0.083-0.26,0.031-0.522-0.189-0.726
+                       c-0.151-0.139-0.32-0.263-0.487-0.392c0.031,0.113,0.045,0.23,0.073,0.344c0.044,0.164,0.307,0.322,0.115,0.485
+                       c-0.203,0.173-0.365,0.431-0.723,0.422c-0.158-0.004-0.309,0.014-0.424,0.104c-0.22,0.174-0.397,0.399-0.645,0.529
+                       c-0.25,0.129-0.593,0.116-0.777,0.357l0.002,0.004c0.189-0.027,0.363-0.011,0.516,0.105c0.134,0.099,0.275,0.192,0.435,0.304
+                       c0.156-0.155,0.278-0.3,0.424-0.422c0.217-0.177,0.49-0.109,0.55,0.141c0.029,0.123,0.004,0.251,0.004,0.405
+                       c0.277,0.071,0.516-0.067,0.768-0.122c0.15-0.036,0.288-0.063,0.444-0.018c0.062,0.016,0.112,0.047,0.151,0.084
+                       C855.105,95.504,855.08,95.426,855.076,95.326 M839.427,103.466c-0.036-0.024-0.069-0.051-0.102-0.078
+                       c-0.336,0.189-0.672,0.373-1.022,0.542c-0.021,0.008-0.033,0.017-0.049,0.029c-0.007,0.071-0.006,0.144,0.021,0.226
+                       c0.021,0.061-0.027,0.159-0.085,0.209c-0.04,0.037-0.079,0.078-0.114,0.115c0.011,0.018,0.024,0.034,0.038,0.047
+                       c0.109-0.006,0.211-0.006,0.309,0.014c0.332-0.14,0.672-0.116,1.014-0.081c-0.037-0.12-0.048-0.249-0.11-0.355
+                       c-0.077-0.131,0.033-0.246,0.138-0.344C839.595,103.67,839.576,103.564,839.427,103.466 M836.958,101.178
+                       c-0.145,0.165-0.139,0.326,0.024,0.515c0.062,0.073,0.146,0.133,0.206,0.206c0.172,0.202,0.354,0.26,0.621,0.1
+                       c0.053-0.033,0.108-0.055,0.163-0.08C837.556,101.738,837.197,101.506,836.958,101.178 M819.592,108.958
+                       c0.058,0.058,0.127,0.089,0.208,0.032c0.048-0.034,0.091-0.075,0.132-0.116c0.043-0.042,0.094-0.091,0.062-0.147
+                       c-0.05-0.096-0.128-0.024-0.2-0.015c-0.06,0.005-0.125-0.012-0.187-0.014c-0.055,0-0.086,0.027-0.092,0.075
+                       C819.512,108.844,819.543,108.903,819.592,108.958 M818.479,102.609c0.086-0.055,0.014-0.21-0.096-0.23
+                       c-0.033,0.005-0.086,0-0.091,0.012c-0.055,0.114-0.158,0.155-0.294,0.182c-0.101,0.02-0.123,0.169-0.048,0.242
+                       c0.016,0.017,0.064,0.038,0.081,0.031C818.182,102.769,818.34,102.698,818.479,102.609 M817.575,109.638
+                       c-0.016,0.017-0.022,0.049-0.024,0.075c-0.002,0.009,0.011,0.024,0.024,0.031c0.011,0.006,0.035,0.008,0.046,0.002
+                       c0.165-0.104,0.244-0.277,0.435-0.361c-0.081-0.079-0.132-0.024-0.184-0.005C817.735,109.434,817.661,109.54,817.575,109.638
+                        M810.042,116.948c-0.056,0.02-0.111,0.045-0.156,0.075c-0.017,0.011-0.013,0.049-0.013,0.073
+                       c0.002,0.006,0.024,0.014,0.041,0.027c0.075-0.006,0.148-0.027,0.198-0.08c0.017-0.014,0.02-0.053,0.008-0.071
+                       C810.106,116.956,810.06,116.941,810.042,116.948 M808.233,120.262c-0.304,0.225-0.658,0.422-1.076,0.504
+                       c-0.048,0.011-0.096,0.047-0.12,0.095c0.457-0.147,0.897-0.279,1.316-0.395C808.288,120.405,808.24,120.343,808.233,120.262
+                        M793.609,126.361c-0.41,0.006-0.438-0.483-0.926-0.426c-0.094,0.011-0.177,0-0.255-0.02c-0.003,0-0.006,0.004-0.008,0.004
+                       c-0.201,0.216-0.314,0.424-0.117,0.721c0.11,0.022,0.241,0.065,0.402,0.126c0.024,0.012,0.048,0.02,0.071,0.031
+                       c0.3-0.141,0.598-0.284,0.892-0.421C793.649,126.37,793.627,126.361,793.609,126.361 M769.723,137.226
+                       c-0.053,0.005-0.143-0.004-0.153,0.016c-0.097,0.193-0.275,0.261-0.509,0.306c-0.174,0.029-0.217,0.285-0.093,0.413
+                       c0.031,0.031,0.115,0.066,0.141,0.055c0.263-0.124,0.531-0.246,0.775-0.395C770.032,137.528,769.911,137.262,769.723,137.226
+                        M769.314,134.031c0.007,0.037,0.016,0.073,0.021,0.108c0.015,0.118,0.07,0.195,0.159,0.246
+                       C769.49,134.241,769.411,134.135,769.314,134.031 M764.697,126.991c-0.035-0.059-0.091-0.135-0.156-0.149
+                       c-0.143-0.031-0.291-0.047-0.439-0.062c-0.026,0.031-0.042,0.064-0.05,0.098c0.134,0.12,0.358,0.149,0.478,0.279
+                       c0.011,0.014,0.11-0.012,0.136-0.04C764.697,127.089,764.716,127.023,764.697,126.991 M739.726,140.715
+                       c-0.024,0.037-0.055,0.073-0.069,0.114c0.014-0.04,0.045-0.076,0.069-0.112V140.715z M739.989,151.693
+                       c-0.284-0.254-0.595-0.417-1.045-0.273c-0.112,0.035-0.213,0.048-0.306,0.044c0.154,0.089,0.332,0.163,0.437,0.311
+                       c0.224,0.32,0.299,0.462,0.083,0.746c-0.014,0.017-0.035,0.035-0.055,0.051c0.077-0.004,0.151-0.011,0.227-0.018
+                       c0.515,0.26,0.833-0.102,1.297-0.239C740.379,152.072,740.193,151.876,739.989,151.693 M738.487,153.956
+                       c-0.114-0.004-0.23-0.01-0.344-0.002c-0.143,0.008-0.265,0.08-0.318,0.202c-0.016,0.037-0.002,0.088,0.01,0.133
+                       c0.071-0.006,0.143-0.013,0.217-0.018c0.022-0.002,0.047,0.002,0.071,0.01c0.129-0.022,0.258-0.045,0.368-0.096
+                       C738.509,154.111,738.507,154.029,738.487,153.956 M738.146,151.106c-0.153-0.326-0.474-0.542-0.808-0.721
+                       c-0.318-0.173-0.602-0.379-0.88-0.591c-0.191,0.225-0.177,0.495-0.224,0.753c-0.017,0.086,0.05,0.2-0.057,0.257
+                       c-0.287,0.153-0.412,0.36-0.421,0.648c-0.004,0.12-0.163,0.067-0.27,0.067c-0.313,0-0.371,0.029-0.393,0.251
+                       c-0.033,0.359-0.132,0.695-0.377,0.994c-0.048,0.057-0.04,0.141,0.041,0.191c0.08,0.051,0.16,0.019,0.218-0.038
+                       c0.2-0.21,0.444-0.362,0.769-0.386c0.156-0.014,0.263-0.073,0.337-0.183c0.093-0.133,0.237-0.193,0.409-0.224
+                       c0.225-0.04,0.383-0.153,0.56-0.279c0.347-0.251,0.761-0.438,1.15-0.644C738.178,151.171,738.163,151.139,738.146,151.106
+                        M736.257,148.357c-0.01,0.005-0.017,0.01-0.027,0.014c-0.097,0.036-0.169,0.12-0.234,0.169c-0.031,0.128,0.06,0.161,0.148,0.194
+                       c0.094-0.005,0.17-0.033,0.208-0.117C736.409,148.488,736.35,148.415,736.257,148.357 M734.875,143.524
+                       c-0.055,0.004-0.143-0.003-0.156,0.018c-0.098,0.193-0.272,0.261-0.509,0.304c-0.174,0.031-0.215,0.287-0.09,0.412
+                       c0.031,0.032,0.112,0.069,0.139,0.055c0.263-0.123,0.533-0.243,0.775-0.395C735.18,143.828,735.064,143.559,734.875,143.524
+                        M733.784,155.525c-0.237,0.091-0.368,0.271-0.516,0.434c-0.031,0.036-0.038,0.087-0.046,0.132
+                       c-0.003,0.015,0.019,0.044,0.038,0.053c0.023,0.011,0.063,0.016,0.08,0.006c0.286-0.177,0.43-0.473,0.76-0.615
+                       C733.962,155.403,733.873,155.491,733.784,155.525 M685.616,176.385c-0.091-0.285-0.348-0.395-0.64-0.501
+                       c-0.052-0.018-0.087-0.036-0.122-0.054c0.015,0.093-0.04,0.138-0.182,0.244c-0.248,0.189-0.5,0.373-0.659,0.633
+                       c-0.085,0.133-0.216,0.255-0.352,0.353c-0.163,0.116-0.396,0.171-0.521,0.304c-0.189,0.198-0.309,0.442-0.454,0.66
+                       c0.017,0.184,0.204,0.18,0.332,0.222h0.002c0.053,0,0.105,0.002,0.16,0.013c0.061,0.014,0.168-0.055,0.218-0.11
+                       c0.018-0.022,0.04-0.045,0.062-0.065c-0.011-0.104-0.02-0.202,0.064-0.271c0.075-0.057,0.163-0.104,0.254-0.147
+                       c0.002-0.009,0.009-0.018,0.011-0.027c0.07-0.238,0.142-0.379,0.467-0.348c0.215,0.022,0.32-0.115,0.42-0.249
+                       c0.146-0.19,0.355-0.255,0.622-0.266C685.622,176.762,685.696,176.638,685.616,176.385 M684.885,175.13
+                       c-0.04,0.042-0.086,0.082-0.124,0.124c-0.077,0.085-0.094,0.173-0.037,0.285c0.007,0.015,0.015,0.023,0.022,0.039
+                       c0.017-0.033,0.033-0.064,0.068-0.102C684.933,175.332,684.969,175.236,684.885,175.13 M683.412,173.877
+                       c-0.005-0.157-0.179-0.262-0.313-0.369c-0.069-0.053-0.13-0.114-0.198-0.169c-0.11,0.151-0.16,0.313-0.095,0.515
+                       c0.018,0.059-0.029,0.16-0.085,0.208c-0.49,0.424-0.588,1.057-1.166,1.434c0.459,0.206,0.466,0.21,0.674-0.016
+                       c0.327-0.357,0.775-0.561,1.258-0.721c0.026-0.006,0.062,0.007,0.091,0.007c0.191-0.007,0.204-0.258,0.369-0.303
+                       C683.661,174.327,683.417,174.205,683.412,173.877 M672.345,168.591c-0.111-0.022-0.223-0.029-0.336-0.042
+                       c0.057,0.131,0.242,0.129,0.332,0.227c0.008,0.006,0.063-0.01,0.079-0.025c0.017-0.019,0.027-0.055,0.017-0.075
+                       C672.416,168.642,672.383,168.597,672.345,168.591 M667.133,189.17c-0.057,0.017-0.11,0.044-0.158,0.075
+                       c-0.007,0.006-0.009,0.017-0.013,0.031c0.074-0.031,0.149-0.065,0.223-0.099C667.166,189.172,667.144,189.164,667.133,189.17
+                        M656.185,189.815c-0.015-0.04-0.031-0.081-0.048-0.121c-0.098,0.054-0.201,0.105-0.301,0.156
+                       c0.108,0.067,0.222,0.126,0.325,0.187C656.362,189.957,656.209,189.883,656.185,189.815 M640.742,197.467
+                       c-0.221-0.285-0.301-0.644-0.669-0.853c-0.228,0.173-0.45,0.346-0.595,0.584c-0.085,0.133-0.216,0.253-0.355,0.353
+                       c-0.16,0.115-0.394,0.171-0.518,0.304c-0.189,0.198-0.309,0.442-0.454,0.66c0.017,0.184,0.204,0.177,0.332,0.219
+                       c0.132,0.045,0.193,0.211,0.381,0.158c0.172-0.183-0.048-0.446,0.126-0.588c0.191-0.153,0.467-0.23,0.706-0.342
+                       c0.079-0.035,0.169-0.064,0.239-0.113c0.251-0.177,0.516-0.173,0.748,0c0.112,0.082,0.234,0.139,0.358,0.191
+                       c0.014-0.089,0.014-0.171,0.007-0.256C640.93,197.697,640.834,197.59,640.742,197.467 M612.909,200.303
+                       c-0.002,0-0.002,0-0.002-0.002c-0.065,0.073-0.105,0.151-0.132,0.243c-0.013,0.04-0.026,0.083-0.038,0.125
+                       c0.032-0.018,0.064-0.038,0.095-0.054C612.995,200.531,613.047,200.415,612.909,200.303 M611.842,204.909
+                       c-0.031-0.036-0.06-0.075-0.089-0.115c-0.018,0.123-0.049,0.249-0.115,0.361c0.085-0.057,0.175-0.11,0.265-0.163
+                       C611.886,204.964,611.866,204.936,611.842,204.909 M611.557,199.892c-0.031,0.004-0.086,0-0.09,0.012
+                       c-0.055,0.113-0.156,0.155-0.294,0.182c-0.009,0.002-0.015,0.012-0.024,0.015c0.067-0.011,0.129,0,0.208,0.047
+                       c0.04,0.024,0.077,0.052,0.115,0.078c0.062-0.033,0.125-0.066,0.182-0.102C611.739,200.067,611.667,199.912,611.557,199.892
+                        M608.43,193.882c-0.11-0.022-0.224-0.029-0.336-0.039c0.057,0.131,0.241,0.129,0.332,0.223c0.008,0.007,0.065-0.008,0.079-0.023
+                       c0.017-0.018,0.029-0.055,0.017-0.076C608.5,193.933,608.466,193.889,608.43,193.882 M606.781,194.3
+                       c0.02,0.045,0.053,0.071,0.093,0.093c0.024-0.022,0.044-0.049,0.053-0.079C606.879,194.311,606.829,194.306,606.781,194.3
+                        M603.269,217.107c-0.101-0.078-0.153-0.102-0.241-0.073c0.097,0.029,0.193,0.067,0.284,0.114
+                       c0.003,0.002,0.005,0.002,0.007,0.004C603.302,217.136,603.285,217.121,603.269,217.107 M602.147,216.606
+                       c-0.022-0.016-0.041-0.016-0.06-0.012c0.022,0,0.04,0.003,0.054,0.016c0.015,0.016,0.03,0.029,0.044,0.042
+                       C602.176,216.635,602.166,216.618,602.147,216.606 M596.588,218.02c0.057,0.057,0.127,0.088,0.208,0.031
+                       c0.047-0.033,0.09-0.075,0.132-0.115c0.04-0.042,0.09-0.091,0.062-0.147c-0.05-0.096-0.129-0.022-0.2-0.016
+                       c-0.061,0.006-0.125-0.011-0.186-0.014c-0.056,0-0.087,0.027-0.094,0.076C596.504,217.904,596.538,217.967,596.588,218.02
+                        M595.473,211.671c0.087-0.055,0.015-0.21-0.097-0.23c-0.031,0.004-0.084,0-0.088,0.011c-0.056,0.114-0.159,0.156-0.295,0.183
+                       c-0.1,0.02-0.122,0.169-0.051,0.241c0.02,0.018,0.068,0.038,0.085,0.032C595.177,211.831,595.333,211.76,595.473,211.671
+                        M594.57,218.699c-0.017,0.018-0.022,0.049-0.024,0.075c-0.002,0.008,0.011,0.024,0.024,0.032
+                       c0.011,0.006,0.035,0.008,0.042,0.002c0.168-0.105,0.247-0.278,0.438-0.362c-0.081-0.078-0.132-0.024-0.184-0.004
+                       C594.731,218.495,594.656,218.601,594.57,218.699 M589.114,224.788c-0.072-0.131-0.186-0.243-0.217-0.395
+                       c-0.006-0.031-0.061-0.057-0.096-0.082c-0.013-0.008-0.031-0.004-0.048-0.011c-0.265-0.073-0.325-0.331-0.557-0.442
+                       c-0.078-0.038-0.157-0.08-0.231-0.124c-0.037,0.238-0.165,0.452-0.25,0.679c-0.014,0.038-0.045,0.082-0.081,0.098
+                       c-0.143,0.055-0.241,0.147-0.33,0.244c0.053,0.024,0.105,0.047,0.168,0.035c0.145-0.023,0.251,0.014,0.339,0.114
+                       c0.024,0.029,0.086,0.055,0.121,0.049c0.252-0.047,0.441,0.067,0.639,0.161c0.043,0.02,0.085,0.048,0.132,0.053
+                       c0.175,0.028,0.386,0.081,0.515-0.015C589.382,225.03,589.176,224.901,589.114,224.788 M587.036,226.011
+                       c-0.057,0.017-0.11,0.041-0.158,0.072c-0.014,0.012-0.011,0.05-0.009,0.073c0,0.007,0.024,0.016,0.04,0.027
+                       c0.075-0.006,0.149-0.027,0.199-0.079c0.016-0.014,0.018-0.054,0.007-0.072C587.101,226.018,587.056,226.004,587.036,226.011
+                        M586.463,222.218c-0.02,0-0.026-0.012-0.037-0.022c-0.062,0.057-0.136,0.1-0.207,0.147c-0.041,0.027-0.043,0.08-0.006,0.108
+                       c0.029,0.024,0.094,0.051,0.122,0.04c0.119-0.047,0.235-0.1,0.34-0.165c0.019-0.013,0.038-0.024,0.057-0.033
+                       C586.652,222.251,586.566,222.221,586.463,222.218 M585.752,225.503c-0.066,0.255-0.158,0.304-0.461,0.264
+                       c-0.11-0.016-0.173-0.024-0.079,0.084c0.031,0.035,0.055,0.08,0.024,0.113c-0.132,0.134-0.112,0.327-0.23,0.447
+                       c-0.112,0.118-0.051,0.159,0.031,0.228c0.051,0.041,0.111,0.065,0.175,0.035c0.103-0.044,0.198-0.098,0.301-0.137
+                       c0.006-0.003,0.013-0.005,0.017-0.006c-0.007-0.083-0.029-0.163-0.079-0.245c-0.031-0.048-0.004-0.115,0.079-0.125
+                       c0.114-0.016,0.224-0.029,0.281-0.134c0.013-0.022,0.046-0.039,0.075-0.051c0.276-0.11,0.276-0.11,0.342-0.273
+                       c0.031-0.078,0.05-0.159,0.091-0.233c0.041-0.073,0.07-0.142,0.074-0.209c-0.055,0.012-0.115,0.018-0.174,0.024
+                       c-0.079,0.01-0.16,0.025-0.239,0.034C585.853,225.336,585.783,225.391,585.752,225.503 M585.317,217.427
+                       c0.057,0.059,0.127,0.09,0.208,0.033c0.047-0.035,0.091-0.075,0.13-0.118c0.041-0.041,0.092-0.09,0.063-0.143
+                       c-0.051-0.096-0.129-0.024-0.2-0.018c-0.063,0.007-0.125-0.008-0.188-0.011c-0.055-0.003-0.086,0.025-0.093,0.075
+                       C585.234,217.311,585.267,217.374,585.317,217.427 M584.203,211.079c0.087-0.054,0.013-0.209-0.097-0.229
+                       c-0.032,0.002-0.085,0-0.089,0.012c-0.055,0.113-0.158,0.155-0.294,0.182c-0.099,0.018-0.123,0.167-0.05,0.242
+                       c0.019,0.016,0.067,0.037,0.084,0.029C583.906,211.24,584.062,211.167,584.203,211.079 M583.299,218.106
+                       c-0.016,0.02-0.02,0.051-0.023,0.075c-0.004,0.012,0.011,0.027,0.02,0.034c0.013,0.004,0.037,0.006,0.046,0.002
+                       c0.167-0.104,0.246-0.279,0.437-0.364c-0.081-0.075-0.13-0.024-0.183-0.004C583.459,217.904,583.383,218.008,583.299,218.106
+                        M580.978,204.84c-0.11-0.022-0.223-0.029-0.335-0.041c0.055,0.131,0.241,0.129,0.333,0.226c0.005,0.004,0.062-0.01,0.079-0.027
+                       c0.016-0.018,0.026-0.055,0.014-0.073C581.049,204.891,581.016,204.846,580.978,204.84 M578.184,228.102
+                       c-0.09,0.027-0.189,0.047-0.294,0.062c-0.279,0.042-0.519,0.147-0.74,0.277c0.134,0.02,0.255,0.091,0.395,0.083
+                       c0.025-0.002,0.06,0.024,0.079,0.045c0.052,0.051,0.08,0.131,0.172,0.137c0.114,0.006,0.158-0.088,0.232-0.137
+                       c0.062-0.042,0.124-0.091,0.172-0.144C578.309,228.298,578.3,228.192,578.184,228.102 M577.626,223.801
+                       c-0.008-0.031-0.061-0.056-0.096-0.083c-0.011-0.006-0.033-0.004-0.048-0.008c-0.266-0.075-0.325-0.331-0.557-0.442
+                       c-0.222-0.108-0.449-0.217-0.538-0.452c-0.038-0.1-0.079-0.232-0.213-0.269c-0.248-0.068-0.181-0.222-0.174-0.371
+                       c0.005-0.066,0.128-0.108,0.05-0.182c-0.029-0.024-0.065-0.047-0.103-0.065c-0.017,0.038-0.046,0.073-0.096,0.112
+                       c-0.239,0.175-0.442,0.339-0.409,0.644c0.02,0.166-0.132,0.273-0.294,0.361c-0.358,0.195-0.698,0.417-1.067,0.601
+                       c-0.203,0.103-0.301,0.246-0.389,0.411l0.011,0.013c0.377-0.073,0.794-0.015,1.13-0.245c0.147-0.1,0.354-0.13,0.516-0.05
+                       c0.061,0.027,0.113,0.042,0.162,0.05c0.015-0.005,0.028-0.01,0.044-0.014c0.008,0.006,0.015,0.014,0.022,0.02
+                       c0.16,0,0.292-0.085,0.43-0.171c0.119-0.075,0.244-0.153,0.38-0.204c0.283-0.104,0.594,0.022,0.588,0.286
+                       c-0.005,0.246,0.034,0.309,0.323,0.24c0.127-0.029,0.235-0.073,0.344-0.126C577.638,223.838,577.631,223.82,577.626,223.801
+                        M575.208,220.54c0.041-0.011,0.074-0.031,0.108-0.064c0.009-0.01,0.019-0.018,0.029-0.027
+                       C575.296,220.479,575.254,220.512,575.208,220.54 M549.767,245.992c-0.032,0.002-0.083-0.002-0.091,0.008
+                       c-0.055,0.114-0.156,0.155-0.294,0.183c-0.099,0.019-0.121,0.169-0.048,0.241c0.02,0.018,0.068,0.038,0.081,0.032
+                       c0.153-0.075,0.309-0.147,0.447-0.236C549.948,246.165,549.877,246.01,549.767,245.992 M546.639,239.98
+                       c-0.11-0.022-0.225-0.029-0.338-0.04c0.057,0.132,0.241,0.13,0.333,0.224c0.007,0.007,0.064-0.006,0.079-0.023
+                       c0.016-0.019,0.029-0.056,0.016-0.073C546.708,240.031,546.675,239.989,546.639,239.98 M542.565,251.16
+                       c0.003-0.157-0.017-0.313-0.063-0.464c-0.38,0.413-0.514,0.959-1.032,1.301c0.459,0.206,0.466,0.21,0.674-0.018
+                       c0.167-0.179,0.363-0.322,0.583-0.44C542.619,251.444,542.562,251.315,542.565,251.16 M536.119,254.859
+                       c-0.636-0.3-0.457-0.845-0.572-1.3c-0.038-0.142,0.052-0.252,0.166-0.342c0.2-0.165,0.13-0.364,0.014-0.497
+                       c-0.201-0.224-0.314-0.529-0.546-0.684c-0.36-0.247-0.501-0.444-0.319-0.834c0.007-0.018,0.011-0.038,0.011-0.061
+                       c-0.119,0.158-0.246,0.309-0.411,0.442c-0.221,0.177-0.481,0.306-0.706,0.482c0.077,0.23,0.375,0.35,0.357,0.614
+                       c-0.015,0.216,0.244,0.273,0.399,0.391c0.189,0.137,0.212,0.263,0.042,0.391c-0.241,0.175-0.442,0.339-0.409,0.644
+                       c0.02,0.164-0.132,0.27-0.296,0.359c-0.359,0.198-0.698,0.42-1.064,0.603c-0.203,0.1-0.301,0.246-0.389,0.411l0.009,0.011
+                       c0.182-0.033,0.371-0.04,0.555-0.059c0.014-0.281,0.081-0.3,0.547-0.328c0.189-0.012,0.34-0.042,0.505-0.132
+                       c0.351-0.186,0.709-0.269,1.057-0.082c0.007-0.002,0.014-0.008,0.024-0.012c0.271-0.104,0.573,0.016,0.585,0.264
+                       c0.12-0.002,0.241-0.024,0.362-0.035C536.155,255.096,536.222,254.908,536.119,254.859 M500.377,269.221
+                       c0.101,0.022,0.201,0.045,0.299,0.067c0.033-0.022,0.07-0.045,0.105-0.067C500.647,269.219,500.513,269.219,500.377,269.221
+                        M488.992,266.434c-0.199-0.169-0.272-0.397-0.378-0.615c-0.061-0.126-0.149-0.257-0.306-0.313
+                       c-0.231-0.084-0.296-0.304-0.435-0.463c-0.031-0.038-0.048-0.08-0.055-0.124c-0.046,0.012-0.093,0.017-0.147,0.015
+                       c-0.161-0.011-0.294,0.087-0.391,0.207c-0.127,0.157-0.301,0.263-0.467,0.377c-0.275,0.191-0.571,0.293-0.922,0.193
+                       c-0.146-0.04-0.294-0.049-0.445-0.054c0.371,0.097,0.744,0.196,1.114,0.289c0.011-0.015,0.026-0.027,0.038-0.043
+                       c0.074-0.092,0.177-0.102,0.27-0.029c0.082,0.065,0.156,0.138,0.232,0.206c0.139,0.038,0.277,0.072,0.419,0.107
+                       c0.011-0.009,0.021-0.013,0.033-0.024c0.099-0.088,0.189-0.188,0.292-0.271c0.103-0.08,0.251-0.047,0.296,0.078
+                       c0.05,0.132,0.086,0.269,0.119,0.404c0.258,0.065,0.519,0.132,0.777,0.195C489.02,266.525,489.003,266.481,488.992,266.434
+                        M481.771,260.368c-0.06,0.135-0.153,0.241-0.239,0.355c-0.039,0.051-0.053,0.117-0.066,0.179
+                       c-0.006,0.022,0.016,0.065,0.04,0.079c0.022,0.011,0.072,0.003,0.091-0.012C481.799,260.808,481.852,260.609,481.771,260.368
+                        M477.425,262.839c-0.137-0.122-0.137-0.344-0.281-0.495c-0.098-0.102,0.02-0.242,0.06-0.362c0.037-0.102-0.011-0.172-0.114-0.143
+                       c-0.246,0.067-0.382-0.096-0.546-0.195c-0.229,0.334-0.567,0.611-0.705,0.992c0.55,0.318,1.268,0.261,1.819,0.588
+                       c0.046,0.023,0.092,0.031,0.137,0.029C477.673,263.114,477.568,262.963,477.425,262.839 M461.732,257.218
+                       c-0.066-0.027-0.145-0.031-0.21-0.061c-0.277-0.122-0.318-0.259-0.143-0.532c0.053-0.08,0.134-0.144,0.193-0.209
+                       c-0.04-0.252-0.32-0.257-0.492-0.337c-0.103-0.047-0.201-0.093-0.292-0.142c0,0.091,0.015,0.185,0.055,0.285
+                       c0.136,0.337-0.051,0.652-0.285,0.927c-0.115,0.133-0.268,0.242-0.394,0.369c-0.129,0.131-0.247,0.228-0.486,0.222
+                       c-0.269-0.006-0.047,0.318-0.284,0.367c-0.098,0.021-0.316,0.016-0.268,0.091c0.009,0.016,0.011,0.029,0.018,0.043
+                       c0.584,0.175,1.165,0.35,1.749,0.526c0.256-0.255,0.65-0.332,0.997-0.471c0.061-0.069,0.115-0.144,0.165-0.218
+                       C462.375,257.614,462.313,257.456,461.732,257.218 M460.905,252.232c-0.086-0.166-0.224-0.045-0.347-0.033
+                       c-0.105,0.011-0.213-0.02-0.32-0.024c-0.093-0.004-0.148,0.041-0.163,0.129c-0.007,0.116,0.046,0.222,0.132,0.315
+                       c0.096,0.102,0.215,0.155,0.354,0.059c0.086-0.057,0.161-0.129,0.232-0.198C460.864,252.409,460.953,252.327,460.905,252.232
+                        M458.488,241.698c0.151-0.093,0.031-0.36-0.158-0.395c-0.053,0.004-0.143-0.004-0.156,0.016
+                       c-0.099,0.192-0.272,0.264-0.509,0.306c-0.172,0.029-0.215,0.285-0.091,0.413c0.031,0.031,0.112,0.066,0.141,0.055
+                       C457.976,241.969,458.246,241.846,458.488,241.698 M457.24,253.303c-0.237,0.089-0.368,0.271-0.517,0.435
+                       c-0.031,0.033-0.038,0.084-0.046,0.128c-0.002,0.018,0.02,0.045,0.041,0.055c0.018,0.012,0.06,0.016,0.077,0.004
+                       c0.289-0.175,0.43-0.473,0.76-0.612C457.419,253.182,457.327,253.271,457.24,253.303 M445.334,251.706
+                       c-0.061,0.135-0.153,0.242-0.239,0.355c-0.039,0.052-0.056,0.118-0.067,0.177c-0.005,0.024,0.017,0.067,0.041,0.081
+                       c0.021,0.011,0.069,0.004,0.091-0.012C445.361,252.148,445.415,251.948,445.334,251.706 M443.941,249.649
+                       c-0.229-0.22-0.406-0.463-0.482-0.764c-0.022,0.012-0.043,0.024-0.065,0.036c-0.191,0.098-0.251,0.243-0.217,0.426
+                       c0.007,0.039,0.018,0.08,0.026,0.122c0.033,0.21,0.042,0.268-0.086,0.344c0.031,0.009,0.062,0.02,0.09,0.031
+                       c0.07,0.027,0.141,0.042,0.189-0.016c0.136-0.17,0.261-0.091,0.395,0.005c0.044,0.029,0.098,0.027,0.139-0.012
+                       C443.984,249.769,443.993,249.698,443.941,249.649 M442.492,246.006c0-0.003-0.002-0.005-0.002-0.005
+                       c-0.014,0.034-0.031,0.069-0.042,0.103c-0.006,0.011-0.013,0.019-0.017,0.031c0.035,0.027,0.074,0.051,0.125,0.062
+                       C442.645,246.096,442.522,246.061,442.492,246.006 M442.334,247.479c-0.069-0.08-0.075-0.184-0.038-0.277
+                       c0.074-0.185,0.01-0.333-0.077-0.502c-0.053-0.1-0.088-0.21-0.119-0.319c-0.086,0.082-0.158,0.175-0.241,0.259
+                       c-0.079,0.083-0.158,0.133-0.292,0.085c-0.068-0.025-0.142,0.006-0.167,0.057c-0.092,0.168-0.273,0.173-0.45,0.192
+                       c-0.079,0.012-0.16,0.025-0.239,0.036c-0.127,0.016-0.197,0.073-0.228,0.184c-0.066,0.253-0.158,0.305-0.461,0.262
+                       c-0.11-0.015-0.172-0.022-0.079,0.084c0.031,0.036,0.055,0.081,0.024,0.114c-0.132,0.133-0.112,0.326-0.23,0.446
+                       c-0.112,0.118-0.053,0.159,0.032,0.228c0.049,0.042,0.106,0.065,0.174,0.036c0.103-0.045,0.198-0.099,0.301-0.138
+                       c0.074-0.029,0.175-0.078,0.23-0.058c0.256,0.107,0.43,0.005,0.61-0.129c0.042-0.031,0.125-0.029,0.187-0.039
+                       c0.222-0.036,0.454-0.047,0.619-0.208c0.042-0.045,0.114-0.054,0.18-0.045c0.15,0.017,0.251-0.047,0.327-0.144
+                       c0.005-0.007,0.011-0.007,0.016-0.014C442.389,247.552,442.363,247.514,442.334,247.479 M441.854,251.046
+                       c0.043,0.02,0.105,0.042,0.142,0.029c0.069-0.031,0.066-0.106,0.06-0.17c-0.004-0.031-0.009-0.073-0.033-0.089
+                       c-0.089-0.065-0.149-0.14-0.199-0.222c-0.095,0.065-0.158,0.16-0.152,0.306c0,0.021-0.013,0.03-0.019,0.045
+                       C441.717,250.981,441.785,251.014,441.854,251.046 M440.049,239.117c0.055,0.059,0.127,0.091,0.206,0.033
+                       c0.051-0.033,0.093-0.075,0.134-0.117c0.04-0.04,0.09-0.089,0.062-0.144c-0.05-0.096-0.129-0.024-0.2-0.016
+                       c-0.063,0.005-0.127-0.011-0.19-0.013c-0.055-0.003-0.086,0.027-0.09,0.075C439.965,239.003,439.996,239.064,440.049,239.117
+                        M438.932,232.768c0.086-0.053,0.015-0.209-0.095-0.229c-0.032,0.004-0.084,0-0.092,0.012c-0.055,0.113-0.156,0.155-0.292,0.182
+                       c-0.103,0.02-0.123,0.169-0.049,0.242c0.018,0.018,0.066,0.037,0.084,0.031C438.638,232.93,438.793,232.859,438.932,232.768
+                        M438.03,239.795c-0.016,0.02-0.021,0.052-0.025,0.079c-0.002,0.008,0.011,0.024,0.024,0.031c0.011,0.004,0.035,0.008,0.045,0.002
+                       c0.167-0.104,0.247-0.279,0.438-0.364c-0.081-0.075-0.135-0.024-0.185-0.004C438.191,239.594,438.115,239.701,438.03,239.795
+                        M435.709,226.531c-0.11-0.023-0.222-0.03-0.335-0.042c0.055,0.133,0.241,0.131,0.333,0.226c0.004,0.006,0.062-0.009,0.077-0.024
+                       c0.018-0.02,0.029-0.057,0.016-0.075C435.78,226.581,435.747,226.537,435.709,226.531 M433.216,239.15
+                       c-0.041-0.129-0.125-0.228-0.302-0.226c-0.117,0-0.176-0.062-0.237-0.129c-0.163-0.184-0.334-0.359-0.552-0.499
+                       c-0.048,0.281-0.184,0.517-0.442,0.699c-0.177,0.124-0.17,0.255-0.037,0.417c0.06,0.073,0.139,0.102,0.215,0.024
+                       c0.091-0.093,0.191-0.144,0.32-0.098c0.194,0.069,0.406-0.133,0.586,0.045c0.115-0.029,0.215-0.087,0.33-0.118
+                       c0.048-0.014,0.092-0.027,0.136-0.04C433.23,239.2,433.223,239.174,433.216,239.15 M432.132,235.348
+                       c-0.156-0.11-0.191-0.137-0.253-0.279c-0.048,0.067-0.094,0.14-0.125,0.22c-0.026,0.067-0.071,0.124-0.119,0.179
+                       c0.066,0.007,0.141,0.02,0.234,0.051c0.046,0.014,0.087,0.045,0.132,0.049c0.032,0.007,0.057-0.002,0.081-0.013
+                       c0.008-0.002,0.013-0.007,0.022-0.011c0.022-0.014,0.041-0.032,0.055-0.054C432.192,235.44,432.195,235.391,432.132,235.348
+                        M432.432,241.298c0.078,0.004,0.16-0.002,0.238,0.004c0.063,0.004,0.144-0.011,0.149-0.078c0.004-0.073-0.048-0.133-0.134-0.157
+                       c-0.046-0.012-0.096-0.005-0.143-0.01c-0.065-0.004-0.113-0.011-0.151-0.017C432.419,241.127,432.434,241.212,432.432,241.298
+                        M432.677,246.252c0.05-0.038,0.063-0.074,0.061-0.112c-0.103,0.055-0.206,0.112-0.309,0.164
+                       C432.522,246.309,432.61,246.3,432.677,246.252 M428.096,238.609c-0.016,0.008-0.035,0.015-0.053,0.024
+                       c-0.057,0.1-0.128,0.19-0.196,0.281c-0.038,0.051-0.055,0.118-0.066,0.179c-0.006,0.022,0.016,0.065,0.04,0.079
+                       c0.022,0.011,0.07,0.003,0.091-0.012C428.1,239.013,428.154,238.828,428.096,238.609 M426.695,236.503
+                       c-0.026-0.024-0.048-0.051-0.072-0.078c-0.132,0.122-0.277,0.135-0.464,0.075c-0.127-0.042-0.198,0.033-0.151,0.155
+                       c0.008,0.02,0.01,0.039,0.015,0.059c0.048,0.012,0.092,0.007,0.125-0.033c0.139-0.171,0.263-0.091,0.397,0.004
+                       c0.042,0.029,0.098,0.029,0.137-0.011C426.736,236.623,426.748,236.552,426.695,236.503 M426.542,232.431
+                       c-0.038-0.057-0.079-0.114-0.117-0.171c-0.077,0.09-0.186,0.16-0.287,0.237c-0.069,0.052-0.15,0.089-0.215,0.147
+                       c0.222,0.085,0.472,0.087,0.713,0.112C426.702,232.604,426.603,232.522,426.542,232.431 M425.521,234.796
+                       c-0.09-0.033-0.156-0.09-0.208-0.155c-0.002,0-0.002,0-0.002,0.002c-0.176,0.124-0.172,0.256-0.035,0.417
+                       c0.06,0.071,0.138,0.102,0.215,0.022c0.074-0.075,0.158-0.12,0.259-0.107C425.694,234.899,425.624,234.831,425.521,234.796
+                        M425.11,242.519c-0.04-0.022-0.084-0.049-0.125-0.073c0.057,0.042,0.114,0.087,0.175,0.134
+                       C425.15,242.557,425.137,242.535,425.11,242.519 M421.713,234.209c-0.057,0.135-0.153,0.241-0.239,0.355
+                       c-0.037,0.051-0.053,0.118-0.065,0.177c-0.007,0.024,0.017,0.067,0.041,0.08c0.022,0.011,0.07,0.005,0.092-0.011
+                       C421.741,234.649,421.794,234.45,421.713,234.209 M419.992,245.12c-0.096-0.073-0.213-0.067-0.249,0.042
+                       c-0.053,0.159-0.184,0.251-0.301,0.357c0,0.059-0.007,0.116-0.033,0.164c0.233,0.075,0.476,0.154,0.709,0.229
+                       c0.007-0.034,0.017-0.067,0.033-0.1C420.328,245.472,420.297,245.361,419.992,245.12 M418.322,239.915
+                       c-0.066-0.02-0.134-0.049-0.203-0.064c-0.077,0.084-0.099,0.184-0.075,0.3c0.011,0.066,0.005,0.137,0.022,0.204
+                       c0.009,0.036,0.02,0.071,0.031,0.106c0.055-0.015,0.11-0.044,0.167-0.096c0.095-0.086,0.225-0.066,0.327,0.028
+                       c0.058,0.05,0.115,0.102,0.235,0.208C418.767,240.231,418.647,240.005,418.322,239.915 M413.373,237.996
+                       c-0.024-0.033-0.035-0.059-0.042-0.086c-0.235,0.442-0.651,0.65-1.167,0.807c-0.252,0.075-0.473,0.224-0.7,0.348
+                       c-0.031,0.018-0.046,0.1-0.024,0.131c0.026,0.036,0.095,0.061,0.149,0.069c0.224,0.036,0.42-0.008,0.582-0.155
+                       c0.217-0.195,0.456-0.246,0.73-0.073c0.196,0.124,0.401,0.089,0.602-0.006c0.079-0.038,0.158-0.08,0.244-0.105
+                       c0.026-0.008,0.046-0.006,0.07-0.011C413.783,238.583,413.596,238.283,413.373,237.996 M373.064,217.635
+                       c-0.042-0.017-0.096-0.019-0.139-0.039c-0.182-0.08-0.208-0.171-0.093-0.348c0.033-0.052,0.086-0.096,0.126-0.138
+                       c-0.026-0.166-0.211-0.168-0.323-0.222c-0.241-0.11-0.474-0.202-0.459-0.485c0.003-0.027-0.009-0.058-0.026-0.087
+                       c-0.117,0.073-0.234,0.147-0.342,0.234c0.074,0.23,0.373,0.348,0.353,0.614c-0.014,0.216,0.245,0.273,0.403,0.389
+                       c0.188,0.14,0.21,0.267,0.04,0.391c-0.239,0.175-0.443,0.341-0.408,0.644c0.02,0.166-0.132,0.272-0.296,0.361
+                       c-0.17,0.093-0.335,0.191-0.5,0.289c0.017,0.039,0.017,0.086,0.011,0.137c0.265,0.052,0.421,0.02,0.531-0.233
+                       c0.098-0.224,0.265-0.246,0.531-0.173c0.156,0.042,0.27,0.187,0.459,0.131c0.084-0.078,0.039-0.155,0.008-0.228
+                       c-0.074-0.167-0.089-0.313,0.117-0.432c0.093-0.055,0.158-0.152,0.218-0.238C373.485,217.896,373.444,217.792,373.064,217.635
+                        M371.211,219.855c-0.008,0.008-0.009,0.02-0.015,0.029c0.01-0.002,0.017-0.006,0.026-0.009
+                       C371.218,219.868,371.214,219.862,371.211,219.855 M365.487,206.374c0.015,0.047,0.041,0.085,0.068,0.122
+                       c0.15-0.082,0.238-0.193,0.255-0.34C365.7,206.225,365.59,206.296,365.487,206.374 M328.172,206.436
+                       c-0.333-0.156-0.441-0.382-0.485-0.625c-0.303,0.081-0.489,0.289-0.67,0.46c-0.039,0.037-0.074,0.073-0.113,0.112
+                       c0.137,0.031,0.274,0.095,0.407,0.21c0.222,0.192,0.512,0.115,0.782,0.088C328.208,206.673,328.275,206.485,328.172,206.436
+                        M327.78,204.296c-0.2-0.224-0.313-0.526-0.542-0.683c-0.07-0.047-0.127-0.091-0.18-0.136c-0.108,0.169-0.478,0.025-0.481,0.269
+                       c-0.002,0.138,0.136,0.275,0.184,0.42c0.035,0.104-0.011,0.207-0.125,0.271c-0.073,0.041-0.169,0.065-0.236,0.115
+                       c-0.177,0.127-0.142,0.256,0.097,0.329c0.364,0.11,0.722,0.253,1.106,0.277c0-0.006-0.004-0.016-0.004-0.022
+                       c-0.038-0.142,0.053-0.251,0.166-0.341C327.967,204.632,327.898,204.432,327.78,204.296 M326.002,208.218
+                       c-0.034,0.031-0.067,0.065-0.098,0.098c0.031-0.033,0.064-0.067,0.1-0.098H326.002z M323.682,209.432
+                       c-0.046-0.045-0.098-0.082-0.148-0.122c-0.127,0.142-0.243,0.291-0.276,0.48c-0.005,0.023,0,0.05,0.002,0.074
+                       c0.017,0.114,0.206,0.293,0.428,0.446c0.084-0.023,0.153-0.064,0.182-0.153C323.954,209.898,323.904,209.636,323.682,209.432
+                        M306.123,205.043c-0.285-0.254-0.595-0.421-1.045-0.276c-0.368,0.12-0.643,0.02-0.799-0.312
+                       c-0.153-0.324-0.474-0.542-0.808-0.721c-0.261-0.14-0.495-0.304-0.724-0.475c-0.038,0.022-0.084,0.039-0.138,0.055
+                       c-0.146,0.04-0.217,0.104-0.211,0.237c0.011,0.297-0.165,0.555-0.266,0.828c-0.013,0.035-0.043,0.08-0.081,0.096
+                       c-0.235,0.092-0.351,0.281-0.505,0.439c-0.081,0.085-0.16,0.134-0.292,0.085c-0.067-0.024-0.141,0.006-0.167,0.057
+                       c-0.09,0.169-0.273,0.175-0.45,0.195c-0.081,0.008-0.16,0.022-0.239,0.033c-0.127,0.016-0.198,0.073-0.228,0.185
+                       c-0.069,0.253-0.157,0.304-0.461,0.263c-0.11-0.015-0.172-0.024-0.081,0.082c0.031,0.038,0.057,0.081,0.024,0.114
+                       c-0.129,0.133-0.11,0.328-0.227,0.446c-0.116,0.12-0.053,0.159,0.031,0.23c0.05,0.042,0.108,0.063,0.174,0.034
+                       c0.101-0.042,0.199-0.098,0.302-0.138c0.071-0.029,0.174-0.078,0.227-0.055c0.256,0.104,0.433,0.004,0.612-0.129
+                       c0.042-0.034,0.122-0.03,0.186-0.04c0.222-0.038,0.454-0.047,0.617-0.21c0.046-0.045,0.114-0.051,0.182-0.045
+                       c0.151,0.017,0.248-0.047,0.327-0.144c0.05-0.065,0.125-0.089,0.211-0.082c0.125,0.011,0.158-0.063,0.217-0.131
+                       c0.096-0.112,0.136-0.105,0.237,0.029c0.024,0.033,0.026,0.088,0.086,0.082c0.361-0.051,0.481,0.161,0.597,0.379
+                       c0.013,0.027,0.024,0.053,0.037,0.078c0.066,0.134,0.071,0.149-0.096,0.222c-0.126,0.055-0.174,0.105-0.121,0.222
+                       c0.053,0.114,0.081,0.234,0.121,0.362c-0.103,0.055-0.196,0.108-0.292,0.157c-0.193,0.1-0.251,0.244-0.217,0.426
+                       c0.007,0.036,0.015,0.071,0.022,0.106c0.432-0.035,0.865-0.072,1.298-0.108c0.142-0.012,0.314,0.175,0.403,0.027
+                       c0.073-0.12,0.069-0.326-0.008-0.446c-0.189-0.288-0.27-0.626-0.538-0.883c-0.095-0.093,0.013-0.295,0.158-0.311
+                       c0.421-0.042,0.843-0.069,1.267-0.102c0.515,0.258,0.832-0.102,1.297-0.241C306.513,205.419,306.327,205.225,306.123,205.043
+                        M302.004,201.483c-0.031-0.037-0.098-0.057-0.153-0.082c-0.081-0.038-0.176-0.079-0.268-0.118
+                       c-0.002,0.024,0.002,0.051,0.009,0.08c0.041,0.163,0.147,0.309,0.12,0.48c-0.301,0.173-0.301,0.173-0.61,0.19
+                       c-0.086,0.005-0.162,0.022-0.211,0.087c-0.062,0.084-0.165,0.129-0.255,0.188c-0.041,0.024-0.041,0.079-0.005,0.107
+                       c0.031,0.023,0.095,0.051,0.124,0.039c0.118-0.047,0.235-0.098,0.338-0.165c0.103-0.062,0.186-0.107,0.301-0.017
+                       c0.061,0.049,0.112,0.006,0.165-0.029c0.019-0.104,0.14-0.13,0.247-0.153c0.103-0.065,0.203-0.13,0.306-0.193
+                       c0.077-0.047,0.143-0.045,0.22,0.006c0.044,0.031,0.086,0.063,0.132,0.091c0.008-0.01,0.017-0.018,0.024-0.032
+                       C302.616,201.67,302.147,201.662,302.004,201.483 M299.736,197.394c0.055,0.057,0.125,0.088,0.206,0.031
+                       c0.048-0.034,0.09-0.075,0.134-0.116c0.04-0.042,0.09-0.09,0.062-0.147c-0.053-0.096-0.132-0.022-0.203-0.015
+                       c-0.061,0.006-0.125-0.012-0.187-0.012c-0.055-0.002-0.086,0.024-0.094,0.073C299.653,197.278,299.685,197.339,299.736,197.394
+                        M298.621,191.044c0.086-0.055,0.014-0.21-0.096-0.23c-0.031,0.004-0.084,0-0.09,0.011c-0.056,0.113-0.156,0.155-0.294,0.183
+                       c-0.101,0.019-0.122,0.168-0.048,0.241c0.016,0.018,0.066,0.038,0.081,0.031C298.327,191.203,298.481,191.132,298.621,191.044
+                        M297.717,198.072c-0.017,0.019-0.019,0.049-0.024,0.075c-0.002,0.009,0.011,0.027,0.024,0.031
+                       c0.011,0.006,0.035,0.01,0.045,0.002c0.166-0.104,0.247-0.277,0.436-0.361c-0.081-0.079-0.132-0.024-0.184-0.005
+                       C297.877,197.868,297.803,197.974,297.717,198.072 M295.397,184.804c-0.11-0.022-0.224-0.03-0.336-0.04
+                       c0.057,0.131,0.24,0.129,0.332,0.224c0.007,0.006,0.065-0.008,0.079-0.024c0.017-0.018,0.029-0.055,0.017-0.075
+                       C295.467,184.855,295.434,184.811,295.397,184.804 M292.26,204.161c-0.072-0.131-0.186-0.244-0.215-0.395
+                       c-0.007-0.031-0.062-0.055-0.098-0.082c-0.009-0.01-0.031-0.004-0.048-0.01c-0.262-0.075-0.325-0.332-0.554-0.444
+                       c-0.079-0.037-0.156-0.078-0.23-0.121c-0.029,0.088-0.077,0.177-0.139,0.268c-0.167,0.256-0.404,0.476-0.573,0.731
+                       c0.071,0.027,0.136,0.069,0.215,0.055c0.145-0.024,0.253,0.014,0.339,0.113c0.027,0.03,0.088,0.056,0.122,0.05
+                       c0.251-0.047,0.439,0.066,0.639,0.161c0.042,0.02,0.086,0.047,0.132,0.053c0.174,0.027,0.384,0.082,0.516-0.016
+                       C292.53,204.403,292.322,204.274,292.26,204.161 M290.469,201.961c-0.002-0.003-0.004-0.005-0.007-0.007
+                       c0.005,0.007,0.009,0.014,0.015,0.02C290.472,201.967,290.474,201.964,290.469,201.961 M289.374,200.948
+                       c-0.026,0.004-0.05,0.017-0.077,0.021c-0.088,0.018-0.181,0.123-0.124,0.225c0.026,0.049,0.121,0.117,0.165,0.106
+                       c0.048-0.01,0.09-0.012,0.136-0.016C289.442,201.173,289.408,201.059,289.374,200.948 M276.003,187.526
+                       c0.095,0.103,0.214,0.155,0.354,0.061c0.086-0.058,0.16-0.13,0.232-0.198c0.071-0.071,0.159-0.154,0.111-0.249
+                       c-0.086-0.167-0.224-0.045-0.346-0.034c-0.103,0.012-0.213-0.019-0.32-0.024c-0.094-0.004-0.149,0.042-0.162,0.129
+                       C275.863,187.327,275.916,187.434,276.003,187.526 M274.283,176.606c0.151-0.092,0.031-0.359-0.158-0.394
+                       c-0.052,0.004-0.143-0.004-0.156,0.015c-0.097,0.193-0.272,0.264-0.509,0.307c-0.172,0.031-0.215,0.284-0.09,0.412
+                       c0.031,0.031,0.112,0.067,0.141,0.055C273.773,176.878,274.041,176.754,274.283,176.606 M273.034,188.213
+                       c-0.236,0.089-0.367,0.271-0.516,0.434c-0.031,0.034-0.038,0.085-0.045,0.13c-0.002,0.017,0.018,0.044,0.04,0.055
+                       c0.019,0.008,0.06,0.016,0.077,0.006c0.289-0.179,0.43-0.475,0.76-0.615C273.214,188.09,273.123,188.179,273.034,188.213
+                        M265.207,179.779c-0.105-0.118-0.189-0.215-0.208-0.357c-0.014-0.12-0.053-0.21-0.2-0.281c-0.252-0.124-0.283-0.407-0.173-0.551
+                       c0.173-0.224-0.049-0.477,0.163-0.674c0.079-0.07,0.032-0.179-0.033-0.263c-0.215-0.283-0.347-0.591-0.428-0.91
+                       c-0.351,0.366-0.56,0.815-0.97,1.147c-0.22,0.178-0.483,0.306-0.705,0.482c0.074,0.23,0.373,0.351,0.356,0.614
+                       c-0.005,0.054,0.007,0.096,0.031,0.132c0.081,0.035,0.167,0.08,0.274,0.137c0.503,0.291,1.072,0.497,1.52,0.868
+                       c0.252,0.209,0.627,0.277,0.858,0.535c0.105,0.115,0.313,0.015,0.483-0.063C265.889,180.288,265.486,180.091,265.207,179.779
+                        M263.907,175.843c-0.092-0.055-0.171-0.122-0.252-0.187c-0.395-0.312-0.411-0.363-0.172-0.791
+                       c0.05-0.087,0.143-0.169,0.038-0.246c-0.227-0.171-0.373-0.387-0.518-0.603c-0.041,0.07-0.043,0.143,0.002,0.23
+                       c0.189,0.353,0.184,0.355-0.053,0.534c-0.248,0.189-0.498,0.373-0.66,0.633c-0.084,0.133-0.215,0.255-0.354,0.353
+                       c-0.16,0.116-0.395,0.171-0.52,0.304c-0.189,0.198-0.308,0.442-0.453,0.66c0.016,0.184,0.203,0.177,0.332,0.219
+                       c0.132,0.045,0.193,0.211,0.38,0.158c0.173-0.182-0.048-0.446,0.127-0.588c0.191-0.151,0.466-0.23,0.705-0.341
+                       c0.081-0.038,0.171-0.065,0.239-0.115c0.252-0.175,0.517-0.172,0.748,0c0.225,0.165,0.483,0.245,0.753,0.317
+                       C264.215,176.159,264.127,175.976,263.907,175.843 M262.079,181.171c0.077,0.025,0.147,0.078,0.223,0.089
+                       c0.121,0.02,0.213-0.042,0.272-0.129c0.057-0.087,0.064-0.169-0.037-0.244c-0.159,0.093-0.323,0.184-0.483,0.277
+                       C262.063,181.166,262.07,181.17,262.079,181.171 M220.979,173.042c-0.04-0.126-0.114-0.212-0.207-0.284
+                       c-0.066,0.082-0.136,0.161-0.204,0.249c-0.084,0.106-0.263,0.166-0.404,0.235c-0.028,0.012-0.045,0.031-0.069,0.045
+                       c0.1,0.062,0.203,0.124,0.303,0.185c0.081-0.021,0.167-0.036,0.263-0.04C220.985,173.419,221.058,173.293,220.979,173.042
+                        M219.905,166.78c-0.145,0.122-0.288,0.249-0.53,0.236c-0.144-0.01-0.191,0.09-0.208,0.202v0.011
+                       c0.294,0.149,0.518,0.057,0.734-0.137c0.061-0.049,0.144-0.08,0.219-0.122C220.028,166.888,219.959,166.831,219.905,166.78
+                        M210.61,154.309c-0.248-0.165-0.296-0.353-0.122-0.585c0.067-0.087,0.072-0.191-0.001-0.285c-0.342,0.3-0.742,0.542-1.26,0.666
+                       c-0.436,0.102-0.68,0.284-0.625,0.69c0.009,0.082-0.057,0.17-0.079,0.257c-0.024,0.106-0.047,0.217-0.016,0.315
+                       c0.121-0.089,0.27-0.165,0.449-0.232c0.259-0.098,0.388-0.196,0.414-0.426c0.009-0.1,0.033-0.202,0.062-0.3
+                       c0.043-0.146,0.132-0.171,0.316-0.133c0.251,0.051,0.463,0.206,0.734,0.202c0.041-0.002,0.094-0.032,0.118-0.063
+                       C210.62,154.39,210.629,154.319,210.61,154.309 M208.755,151.539c-0.048,0.03-0.098,0.058-0.146,0.087
+                       c0.048-0.029,0.098-0.057,0.149-0.087H208.755z M206.914,162.991c-0.029-0.011-0.046-0.121-0.022-0.17
+                       c0.067-0.136,0.048-0.254-0.035-0.338c-0.123,0.195-0.266,0.384-0.134,0.55c0.11,0.14,0.283,0.149,0.464,0.118
+                       C207.1,163.09,207.014,163.028,206.914,162.991 M201.064,149.42c-0.092-0.073-0.159-0.155-0.214-0.242
+                       c-0.1,0.087-0.203,0.171-0.294,0.262c-0.15,0.149-0.119,0.31,0.104,0.353c0.064,0.014,0.116,0.029,0.167,0.047
+                       c0.055-0.037,0.11-0.084,0.162-0.12C201.108,149.637,201.185,149.522,201.064,149.42 M200.425,148.299
+                       c-0.113-0.161-0.217-0.32-0.381-0.426c-0.248,0.136-0.475,0.306-0.709,0.46c-0.074,0.046-0.088,0.151-0.015,0.202
+                       c0.058,0.041,0.18,0.066,0.245,0.041c0.135-0.049,0.253-0.139,0.382-0.206c0.081-0.042,0.206-0.065,0.231,0.022
+                       c0.074,0.233,0.256,0.318,0.471,0.371C200.587,148.603,200.526,148.444,200.425,148.299 M187.779,146.404
+                       c-0.089-0.287-0.347-0.395-0.641-0.502c-0.292-0.104-0.336-0.196-0.162-0.408c0.022-0.024,0.031-0.045,0.048-0.066
+                       c-0.043,0.029-0.084,0.062-0.12,0.106c-0.185,0.235-0.437,0.435-0.492,0.732c-0.004,0.024,0,0.051,0.002,0.078
+                       c0.022,0.142,0.32,0.397,0.615,0.56c0.12-0.069,0.263-0.102,0.436-0.112C187.784,146.781,187.86,146.655,187.779,146.404
+                        M169.276,141.52c-0.285-0.253-0.595-0.417-1.045-0.273c-0.368,0.12-0.643,0.018-0.799-0.312
+                       c-0.153-0.326-0.474-0.542-0.808-0.721c-0.507-0.276-0.928-0.633-1.374-0.969v0.003c0.135,0.335-0.05,0.65-0.285,0.925
+                       c-0.112,0.133-0.268,0.242-0.395,0.369c-0.055,0.055-0.108,0.102-0.169,0.14c0.47,0.268,0.942,0.538,1.41,0.807
+                       c0.366-0.136,0.77-0.22,1.007-0.519c0.033-0.042,0.153-0.055,0.227-0.049c0.237,0.022,0.006,0.366,0.307,0.342
+                       c0.18-0.016,0.337-0.042,0.397,0.149c0.007,0.022,0.018,0.045,0.023,0.067c0.058,0.188,0.438,0.184,0.379,0.427
+                       c-0.044,0.176-0.275,0.223-0.414,0.336c-0.079,0.067-0.084,0.136-0.066,0.216c0.315-0.027,0.633-0.049,0.949-0.075
+                       c0.514,0.259,0.832-0.102,1.295-0.24C169.665,141.9,169.478,141.703,169.276,141.52 M166.992,136.467
+                       c-0.011-0.045-0.033-0.089-0.031-0.133c-0.086,0.149-0.11,0.304-0.046,0.481c0.074-0.005,0.149-0.006,0.213-0.018
+                       C167.274,136.612,167.02,136.578,166.992,136.467 M165.532,138.178c-0.033,0.046-0.072,0.086-0.103,0.137
+                       c-0.05,0.082-0.098,0.165-0.136,0.246c0.15,0.01,0.292,0.006,0.347-0.118C165.699,138.309,165.631,138.236,165.532,138.178
+                        M165.312,135.255c-0.087-0.167-0.225-0.045-0.347-0.033c-0.103,0.011-0.213-0.02-0.32-0.025c-0.094-0.003-0.149,0.042-0.162,0.13
+                       c-0.008,0.115,0.045,0.222,0.132,0.315c0.095,0.102,0.214,0.155,0.354,0.059c0.086-0.057,0.159-0.129,0.232-0.198
+                       C165.271,135.433,165.359,135.351,165.312,135.255 M162.894,124.721c0.151-0.093,0.032-0.36-0.158-0.395
+                       c-0.051,0.004-0.143-0.004-0.154,0.017c-0.098,0.191-0.274,0.262-0.509,0.305c-0.173,0.031-0.215,0.284-0.092,0.412
+                       c0.031,0.032,0.112,0.067,0.141,0.056C162.385,124.992,162.652,124.87,162.894,124.721 M161.645,136.327
+                       c-0.236,0.089-0.367,0.271-0.516,0.435c-0.031,0.033-0.038,0.084-0.045,0.129c-0.002,0.018,0.018,0.045,0.04,0.055
+                       c0.019,0.011,0.06,0.016,0.077,0.004c0.289-0.175,0.43-0.473,0.76-0.613C161.825,136.205,161.735,136.294,161.645,136.327
+                        M153.984,120.081c-0.025-0.073-0.063-0.147-0.087-0.22c-0.066,0.1-0.145,0.191-0.237,0.271c0.101,0.061,0.204,0.118,0.301,0.171
+                       C154.162,120.223,154.007,120.152,153.984,120.081 M142.562,128.29c0.045,0.024,0.091,0.048,0.136,0.075
+                       c0-0.003,0.002-0.003,0.005-0.003C142.659,128.323,142.611,128.303,142.562,128.29 M141.517,122.66
+                       c-0.043-0.029-0.081-0.061-0.122-0.089c0.038,0.098-0.026,0.169-0.22,0.346c-0.163,0.149-0.235,0.303-0.294,0.491
+                       c-0.017,0.051-0.033,0.107-0.05,0.159c0.215,0.005,0.435-0.021,0.641,0.067c0.261,0.112,0.279,0.089,0.411-0.153
+                       c0.06-0.108,0.096-0.226,0.145-0.34c0.039-0.088,0.218-0.1,0.177-0.251C142.007,122.772,141.739,122.817,141.517,122.66
+                        M140.565,126.709c-0.031,0.126-0.103,0.235-0.239,0.32c0.311,0.175,0.624,0.35,0.933,0.526
+                       C141.151,127.193,140.927,126.907,140.565,126.709 M138.813,122.265c-0.053,0.004-0.144-0.004-0.156,0.018
+                       c-0.098,0.191-0.272,0.261-0.509,0.304c-0.173,0.031-0.216,0.286-0.092,0.413c0.031,0.031,0.112,0.066,0.14,0.055
+                       c0.264-0.124,0.532-0.246,0.774-0.395C139.121,122.568,139.002,122.3,138.813,122.265 M119.762,108.836
+                       c-0.006-0.011-0.013-0.019-0.017-0.031c-0.086,0.109-0.253,0.16-0.366,0.253c-0.069,0.058-0.084,0.116-0.074,0.183
+                       c0.047-0.007,0.089-0.012,0.14-0.014C119.767,109.214,119.841,109.09,119.762,108.836 M118.911,107.481
+                       c-0.263-0.175-0.488-0.404-0.775-0.542c-0.303-0.147-0.573-0.264-0.579-0.61c-0.005-0.158-0.18-0.26-0.312-0.369
+                       c-0.137-0.109-0.266-0.224-0.393-0.34c-0.029,0.138-0.024,0.285,0.04,0.442c0.134,0.337-0.049,0.652-0.284,0.927
+                       c-0.116,0.134-0.27,0.242-0.397,0.369c-0.127,0.129-0.246,0.228-0.485,0.222c-0.268-0.01-0.046,0.318-0.283,0.369
+                       c-0.099,0.019-0.315,0.015-0.268,0.091c0.168,0.275-0.026,0.496-0.079,0.74c-0.031,0.153,0.105,0.283,0.285,0.291
+                       c0.23,0.011,0.454-0.004,0.626-0.149c0.228-0.187,0.445-0.373,0.803-0.251c0.022,0.006,0.067-0.002,0.079-0.018
+                       c0.388-0.462,1.191-0.391,1.571-0.868c0.033-0.041,0.153-0.057,0.228-0.051c0.191,0.02,0.081,0.244,0.186,0.318
+                       c0.018-0.038,0.042-0.078,0.082-0.124C119.117,107.738,119.128,107.625,118.911,107.481 M117.069,105.131
+                       c-0.005,0.005-0.007,0.013-0.011,0.019c0.143-0.019,0.284-0.045,0.327-0.18c0.029-0.083,0.035-0.165,0.033-0.244
+                       C117.287,104.845,117.168,104.975,117.069,105.131 M116.952,102.07c-0.082-0.165-0.222-0.042-0.343-0.031
+                       c-0.105,0.008-0.215-0.02-0.32-0.024c-0.096-0.004-0.148,0.039-0.162,0.126c-0.007,0.116,0.045,0.222,0.132,0.315
+                       c0.095,0.102,0.213,0.155,0.354,0.062c0.084-0.057,0.158-0.129,0.232-0.2C116.914,102.248,117,102.166,116.952,102.07
+                        M114.538,91.536c0.148-0.091,0.029-0.359-0.158-0.395c-0.056,0.007-0.147-0.002-0.156,0.018
+                       c-0.098,0.193-0.272,0.261-0.509,0.304c-0.175,0.031-0.217,0.287-0.094,0.412c0.031,0.032,0.114,0.069,0.142,0.056
+                       C114.025,91.807,114.297,91.687,114.538,91.536 M113.287,103.144c-0.235,0.089-0.366,0.269-0.515,0.433
+                       c-0.031,0.035-0.038,0.086-0.047,0.131c-0.002,0.015,0.022,0.045,0.04,0.053c0.022,0.011,0.063,0.016,0.077,0.006
+                       c0.29-0.177,0.43-0.473,0.762-0.614C113.467,103.022,113.378,103.109,113.287,103.144 M104.677,102.916
+                       c-0.108-0.158-0.09-0.369-0.147-0.552c-0.066-0.222-0.207-0.393-0.514-0.395c-0.198,0-0.299-0.109-0.399-0.224
+                       c-0.346-0.404-0.709-0.788-1.234-1.051c-0.033-0.018-0.06-0.04-0.09-0.061c-0.344,0.144-0.634,0.371-0.94,0.57
+                       c-0.072,0.047-0.086,0.151-0.015,0.202c0.06,0.042,0.18,0.067,0.247,0.042c0.136-0.049,0.251-0.137,0.379-0.206
+                       c0.082-0.042,0.206-0.065,0.236,0.021c0.095,0.311,0.384,0.358,0.69,0.415c0.18,0.034,0.201,0.165,0.063,0.297
+                       c-0.12,0.116-0.261,0.218-0.378,0.336c-0.151,0.151-0.12,0.31,0.105,0.355c0.26,0.049,0.409,0.137,0.435,0.318
+                       c0.11,0.064,0.222,0.124,0.339,0.177c0.351-0.14,0.555,0.061,0.787,0.317c0.145,0.068,0.256,0.167,0.421,0.227
+                       C104.796,103.44,104.873,103.197,104.677,102.916 M101.624,98.675c-0.114-0.224-0.088-0.437-0.007-0.652
+                       c-0.087,0.075-0.175,0.147-0.278,0.2c-0.248,0.129-0.593,0.116-0.776,0.358l0.001,0.002c0.189-0.025,0.364-0.01,0.514,0.104
+                       c0.137,0.1,0.278,0.194,0.438,0.306c0.062-0.062,0.114-0.118,0.167-0.175C101.665,98.77,101.65,98.722,101.624,98.675
+                        M102.274,105.395c0.024,0.035,0.094,0.059,0.149,0.069c0.148,0.024,0.281,0.008,0.404-0.045
+                       c-0.015-0.038-0.022-0.082-0.026-0.138c-0.007-0.095-0.031-0.179-0.064-0.257c-0.151,0.073-0.295,0.159-0.438,0.24
+                       C102.267,105.281,102.252,105.364,102.274,105.395 M89.801,99.274c-0.09-0.284-0.347-0.394-0.641-0.499
+                       c-0.292-0.104-0.339-0.2-0.163-0.408c0.158-0.191,0.169-0.304-0.048-0.448c-0.262-0.175-0.488-0.405-0.775-0.542
+                       c-0.04-0.02-0.081-0.04-0.121-0.059c-0.022,0.033-0.048,0.057-0.067,0.091c-0.179,0.29-0.318,0.572-0.182,0.923
+                       c0.66,0.343,1.334,0.699,2.016,1.054C89.816,99.349,89.813,99.316,89.801,99.274 M87.237,94.683
+                       c-0.054-0.051-0.117-0.098-0.176-0.144c0.022,0.068,0.055,0.135,0.11,0.195c0.057,0.062,0.121,0.1,0.196,0.106
+                       C87.333,94.785,87.29,94.732,87.237,94.683 M85.451,83.816c0.149-0.093,0.032-0.361-0.157-0.397
+                       c-0.055,0.007-0.147-0.002-0.156,0.018c-0.098,0.193-0.272,0.261-0.509,0.304c-0.172,0.031-0.215,0.287-0.091,0.413
+                       c0.032,0.031,0.113,0.068,0.14,0.055C84.941,84.085,85.211,83.965,85.451,83.816 M84.204,95.423
+                       c-0.237,0.088-0.368,0.268-0.516,0.432c-0.031,0.035-0.039,0.086-0.046,0.131c-0.002,0.018,0.019,0.045,0.038,0.056
+                       c0.022,0.008,0.063,0.015,0.079,0.003c0.287-0.177,0.432-0.473,0.761-0.612C84.381,95.299,84.292,95.387,84.204,95.423
+                        M76.376,86.989c-0.087-0.098-0.158-0.183-0.189-0.287c-0.041,0.016-0.082,0.036-0.116,0.063
+                       c-0.136,0.106-0.255,0.233-0.385,0.344c0.108,0.068,0.215,0.139,0.314,0.222c0.251,0.206,0.626,0.277,0.857,0.534
+                       c0.106,0.116,0.313,0.014,0.484-0.062C77.057,87.497,76.656,87.297,76.376,86.989 M75.924,84.861
+                       c-0.296-0.386-0.433-0.817-0.502-1.265c-0.035-0.224-0.125-0.408-0.347-0.544c-0.09-0.055-0.169-0.122-0.253-0.188
+                       c-0.393-0.311-0.41-0.362-0.171-0.79c0.05-0.086,0.144-0.169,0.038-0.249c-0.06-0.042-0.109-0.088-0.159-0.138
+                       c-0.182,0.124-0.375,0.238-0.55,0.376c0.074,0.23,0.373,0.35,0.354,0.614c-0.014,0.218,0.244,0.275,0.402,0.391
+                       c0.189,0.138,0.211,0.264,0.041,0.391c-0.239,0.175-0.443,0.339-0.408,0.644c0.018,0.164-0.132,0.27-0.294,0.361
+                       c-0.359,0.195-0.699,0.417-1.067,0.601c-0.204,0.1-0.302,0.246-0.39,0.411l0.013,0.011c0.378-0.071,0.793-0.013,1.128-0.243
+                       c0.148-0.102,0.356-0.129,0.518-0.052c0.278,0.136,0.457,0.012,0.658-0.113c0.119-0.075,0.244-0.153,0.38-0.204
+                       c0.283-0.107,0.593,0.02,0.588,0.284v0.033c0.015-0.021,0.031-0.044,0.055-0.066C76.034,85.052,75.988,84.945,75.924,84.861
+                        M53.815,73.972c-0.046-0.08-0.116-0.144-0.217-0.2c0.102,0.055,0.084,0.011,0.128,0.091c0.044,0.08,0.153,0.281,0.149,0.394
+                       c0.005-0.113,0.035-0.075-0.009-0.155L53.815,73.972z M47.644,63.263c-0.296-0.055-0.514-0.218-0.679-0.407
+                       c-0.116-0.133-0.252-0.255-0.386-0.375c-0.156,0.136-0.227,0.307-0.233,0.521c-0.003,0.118-0.162,0.067-0.271,0.067
+                       c-0.31,0-0.371,0.029-0.391,0.249c-0.033,0.36-0.132,0.695-0.378,0.996c-0.048,0.055-0.041,0.142,0.04,0.191
+                       c0.081,0.051,0.16,0.02,0.217-0.038c0.201-0.21,0.445-0.362,0.77-0.389c0.156-0.011,0.263-0.072,0.338-0.182
+                       c0.093-0.131,0.236-0.192,0.408-0.224c0.224-0.039,0.382-0.151,0.56-0.277c0.042-0.031,0.088-0.059,0.134-0.088
+                       C47.73,63.291,47.694,63.271,47.644,63.263 M45.466,55.074c-0.056,0.004-0.144-0.004-0.156,0.018
+                       c-0.098,0.191-0.272,0.261-0.509,0.304c-0.173,0.031-0.215,0.284-0.091,0.413c0.031,0.031,0.113,0.067,0.14,0.055
+                       c0.266-0.124,0.533-0.246,0.775-0.395C45.772,55.375,45.655,55.109,45.466,55.074 M44.376,67.075
+                       c-0.177,0.067-0.294,0.185-0.404,0.309c0.077,0.029,0.156,0.057,0.231,0.086c0.144-0.144,0.278-0.295,0.489-0.383
+                       C44.553,66.953,44.464,67.042,44.376,67.075 M35.763,66.846c-0.105-0.155-0.091-0.366-0.145-0.55
+                       c-0.067-0.224-0.206-0.395-0.515-0.395c-0.005,0-0.007-0.002-0.014-0.002c-0.356,0.295-0.79,0.597-1.33,0.703
+                       c-0.084,0.018-0.167,0.114-0.126,0.209c0.157-0.071,0.253-0.079,0.45,0.041c0.351,0.216,0.754,0.389,1.164,0.521
+                       c0.193,0.063,0.308,0.189,0.502,0.26C35.886,67.37,35.959,67.128,35.763,66.846 M34.872,69.847
+                       c0.002-0.035-0.002-0.067-0.015-0.098c-0.045,0.069-0.079,0.141-0.112,0.217C34.812,69.949,34.867,69.916,34.872,69.847
+                        M32.311,60.983c-0.022-0.022-0.035-0.041-0.055-0.063c0.055,0.232,0.07,0.474,0.084,0.717c0.175,0,0.34,0.016,0.502,0.022
+                       c0.016-0.033,0.035-0.067,0.053-0.102C32.662,61.405,32.49,61.193,32.311,60.983 M20.867,64.74
+                       c-0.183,0.218-0.365,0.433-0.54,0.656c-0.084,0.109-0.26,0.167-0.404,0.236c-0.286,0.14-0.454,0.357-0.602,0.586
+                       c0.378,0.173,0.76,0.346,1.148,0.524c0.021-0.083-0.02-0.165-0.055-0.246c-0.11-0.253-0.135-0.473,0.181-0.657
+                       c0.141-0.084,0.239-0.23,0.333-0.361C21.188,65.096,21.191,64.923,20.867,64.74 M19.952,63.477
+                       c-0.138-0.064-0.277-0.125-0.391-0.2c-0.12,0.076-0.208,0.149-0.105,0.278c0.108,0.137,0.299,0.186,0.428,0.113
+                       c0.074-0.039,0.141-0.091,0.207-0.141C20.041,63.511,19.993,63.495,19.952,63.477 M19.732,60.675
+                       c-0.176,0.088-0.253,0.233-0.399,0.321c-0.127,0.083-0.303,0.1-0.439,0.173c-0.112,0.063-0.259,0.127-0.268,0.264
+                       c-0.01,0.14,0.007,0.281,0.017,0.422c0,0.014,0.033,0.035,0.052,0.035c0.057-0.004,0.105,0.005,0.149,0.02
+                       c0.002-0.057,0.011-0.115,0.022-0.177c0.076-0.497,0.042-0.503,0.659-0.459c0.132,0.008,0.208-0.006,0.22-0.132
+                       c0.019-0.194,0.056-0.367,0.098-0.53C19.809,60.635,19.773,60.657,19.732,60.675 M1999.985,50.8l0.002,308.157H0L1.245,58.028
+                       c0,0,1.973,0.892,5.359,2.423c0.016-0.041,0.033-0.086,0.053-0.129c0.04-0.088,0.217-0.099,0.176-0.251
+                       c-0.198-0.118-0.463-0.073-0.689-0.23c-0.277-0.195-0.494-0.377-0.669-0.661c-0.167-0.274-0.37-0.505-0.363-0.833
+                       c0.005-0.137-0.081-0.275-0.123-0.413c-0.035-0.117-0.074-0.235-0.099-0.355c-0.017-0.083,0.002-0.167,0.081-0.222
+                       c0.088-0.057,0.169-0.02,0.255,0.024c0.387,0.198,0.491,0.165,0.56-0.228c0.035-0.204,0.189-0.322,0.327-0.455
+                       c0.081-0.081,0.208-0.089,0.327-0.061c0.134,0.031,0.265,0.065,0.395,0.098c0.024-0.053,0.053-0.089,0.055-0.124
+                       c0.013-0.438,0.127-0.501,0.575-0.318c0.169,0.069,0.336,0.147,0.511,0.202c0.091,0.03,0.189-0.006,0.248-0.078
+                       c0.058-0.07,0.063-0.161,0.01-0.233c-0.048-0.065-0.129-0.16-0.197-0.16c-0.261,0.004-0.277-0.317-0.588-0.279
+                       c-0.318,0.04-0.497-0.267-0.777-0.364c-0.029-0.011-0.042-0.121-0.019-0.168c0.091-0.187,0.024-0.344-0.159-0.417
+                       c-0.311-0.12-0.41-0.369-0.584-0.583c-0.16-0.2-0.149-0.369-0.041-0.566c0.084-0.156,0.125-0.175,0.299-0.056
+                       c0.072,0.051,0.129,0.142,0.225,0.081c0.141-0.093,0.26,0.062,0.413-0.007c-0.117-0.217-0.389-0.355-0.402-0.626
+                       c-0.009-0.192,0.041-0.293,0.259-0.249c0.275,0.057,0.428,0.034,0.54-0.228c0.093-0.224,0.256-0.246,0.514-0.173
+                       c0.151,0.042,0.261,0.184,0.445,0.131c0.081-0.078,0.038-0.155,0.007-0.23c-0.072-0.165-0.086-0.311,0.113-0.431
+                       c0.09-0.054,0.154-0.15,0.212-0.237c0.206-0.306,0.165-0.408-0.205-0.564c-0.041-0.017-0.091-0.022-0.132-0.039
+                       c-0.18-0.08-0.204-0.171-0.094-0.348c0.033-0.054,0.086-0.096,0.125-0.138c-0.026-0.166-0.206-0.169-0.313-0.222
+                       c-0.235-0.11-0.459-0.202-0.444-0.485c0.002-0.071-0.061-0.16-0.125-0.211c-0.162-0.131-0.151-0.271-0.125-0.446
+                       c0.048-0.326,0.029-0.33,0.421-0.302c0.084,0.006,0.132-0.004,0.141-0.086c0.06-0.644,0.305-1.002,0.974-1.252
+                       c0.255-0.096,0.384-0.198,0.411-0.424c0.011-0.102,0.035-0.202,0.064-0.302c0.043-0.144,0.129-0.169,0.316-0.131
+                       c0.251,0.049,0.464,0.204,0.731,0.2c0.041,0,0.094-0.031,0.118-0.061c0.022-0.029,0.031-0.097,0.014-0.11
+                       c-0.251-0.165-0.296-0.35-0.123-0.584c0.066-0.088,0.074-0.194-0.005-0.288c-0.132-0.16-0.132-0.346-0.142-0.529
+                       c-0.005-0.08-0.009-0.19,0.046-0.233c0.349-0.275,0.306-0.644,0.358-0.994c0.019-0.139,0.079-0.273,0.186-0.39
+                       c0.173-0.193,0.254-0.216,0.59-0.101c0.129,0.045,0.228,0.065,0.266-0.082c0.034-0.129,0.146-0.206,0.247-0.291
+                       c0.047-0.041,0.105-0.104,0.162-0.106c0.284-0.013,0.554,0.059,0.824,0.129c0.14,0.036,0.261,0.091,0.302,0.228
+                       c0.005,0.02,0.014,0.04,0.022,0.058c0.042,0.104,0.126,0.102,0.227,0.073c0.189-0.055,0.311,0.02,0.411,0.155
+                       c0.101,0.142,0.208,0.279,0.094,0.452c-0.037,0.053-0.086,0.1-0.112,0.155c-0.081,0.169,0.016,0.334,0.22,0.376
+                       c0.045,0.011,0.093,0.015,0.138,0.013c0.118-0.006,0.235-0.02,0.382-0.031c0.084,0.2,0.147,0.417,0.266,0.61
+                       c0.158,0.256,0.141,0.464-0.112,0.655c-0.07,0.053-0.15,0.106-0.145,0.195c0.001,0.031,0.052,0.084,0.079,0.084
+                       c0.09-0.004,0.211-0.002,0.265-0.049c0.284-0.244,0.549-0.091,0.815-0.033c0.038,0.228-0.228,0.291-0.237,0.457
+                       c0.039,0.071,0.11,0.063,0.18,0.071c0.351,0.051,0.395,0.11,0.174,0.309c-0.187,0.166-0.294,0.368-0.387,0.574
+                       c-0.046,0.101-0.007,0.203,0.143,0.236c0.129,0.027,0.22,0.087,0.151,0.212c-0.062,0.116-0.103,0.229-0.041,0.352
+                       c0.118,0.226,0.127,0.471,0.138,0.721c0.311,0,0.586,0.075,0.845-0.081c0.053-0.033,0.129-0.017,0.191,0.03
+                       c0.248,0.188,0.307,0.381,0.211,0.654c-0.127,0.36-0.36,0.654-0.705,0.929c0.299,0.083,0.452,0.287,0.576,0.549
+                       c0.116-0.105,0.169-0.169,0.239-0.216c0.053-0.033,0.127-0.042,0.191-0.055c0.019-0.005,0.043,0.013,0.065,0.022
+                       c0.885,0.363,0.793,0.392,0.16,0.941c-0.23,0.199-0.512,0.408-0.869,0.481c-0.055,0.011-0.114,0.08-0.079,0.147
+                       c0.019,0.031,0.079,0.075,0.105,0.069c0.364-0.081,0.496,0.17,0.66,0.355c0.127,0.144,0.193,0.335,0.339,0.459
+                       c0.223,0.189,0.168,0.358,0.043,0.548c-0.145,0.229-0.373,0.413-0.461,0.67c0.349,0.209,0.806,0.173,1.157,0.387
+                       c0.103,0.063,0.223-0.036,0.335-0.047c0.165-0.015,0.275,0.087,0.251,0.222c-0.013,0.059-0.014,0.131-0.053,0.175
+                       c-0.189,0.204-0.347,0.458-0.591,0.591c-0.34,0.182-0.474,0.477-0.739,0.732c0.27-0.006,0.419-0.149,0.601-0.23
+                       c0.119-0.053,0.231-0.035,0.325,0.037c0.108,0.085,0.176,0.185,0.117,0.325c-0.189,0.434-0.547,0.723-1.043,0.876
+                       c-0.143,0.044-0.253,0.111-0.33,0.213c-0.084,0.11-0.079,0.235,0.015,0.343c0.09,0.112,0.227,0.153,0.371,0.096
+                       c0.169-0.069,0.323-0.169,0.49-0.242c0.255-0.113,0.433-0.033,0.518,0.227c0.019,0.057,0.005,0.124,0.029,0.179
+                       c0.041,0.086,0.129,0.117,0.23,0.078c0.084-0.035,0.158-0.091,0.244-0.122c0.193-0.069,0.296-0.04,0.423,0.108
+                       c0.069,0.081,0.132,0.167,0.196,0.251c0.074,0.098,0.077,0.198-0.029,0.273c-0.196,0.138-0.342,0.344-0.648,0.326
+                       c-0.141-0.006-0.191,0.091-0.208,0.205c-0.033,0.224,0.084,0.332,0.304,0.235c0.262-0.117,0.497-0.066,0.76-0.002
+                       c0.007,0.053,0,0.118,0.026,0.169c0.016,0.033,0.031,0.067,0.04,0.098c0.235-0.38,0.612-0.657,1.218-0.877
+                       c0.404-0.147,0.606-0.3,0.648-0.646c0.02-0.155,0.055-0.308,0.101-0.459c0.066-0.222,0.205-0.257,0.497-0.202
+                       c0.395,0.078,0.73,0.313,1.15,0.306c0.065-0.002,0.149-0.047,0.184-0.092c0.037-0.042,0.05-0.149,0.022-0.167
+                       c-0.393-0.251-0.466-0.537-0.193-0.892c0.105-0.136,0.114-0.297-0.005-0.44c-0.208-0.244-0.208-0.528-0.225-0.805
+                       c-0.007-0.12-0.011-0.291,0.072-0.356c0.547-0.416,0.483-0.98,0.562-1.516c0.033-0.212,0.127-0.417,0.294-0.597
+                       c0.272-0.29,0.399-0.326,0.929-0.151c0.201,0.067,0.357,0.098,0.417-0.126c0.055-0.195,0.232-0.312,0.388-0.444
+                       c0.077-0.064,0.167-0.157,0.255-0.161c0.448-0.02,0.871,0.092,1.294,0.198c0.22,0.053,0.413,0.14,0.475,0.348
+                       c0.01,0.031,0.024,0.059,0.035,0.088c0.065,0.16,0.197,0.155,0.357,0.112c0.296-0.084,0.49,0.031,0.645,0.237
+                       c0.16,0.216,0.327,0.426,0.149,0.69c-0.058,0.08-0.137,0.151-0.177,0.236c-0.129,0.257,0.026,0.51,0.344,0.575
+                       c0.072,0.013,0.148,0.022,0.22,0.017c0.184-0.008,0.366-0.027,0.6-0.046c0.132,0.304,0.232,0.636,0.419,0.929
+                       c0.246,0.391,0.223,0.707-0.177,1.001c-0.11,0.081-0.238,0.16-0.229,0.297c0.002,0.048,0.081,0.129,0.123,0.126
+                       c0.143-0.006,0.33-0.002,0.418-0.075c0.447-0.369,0.866-0.137,1.284-0.048c0.057,0.347-0.358,0.441-0.373,0.696
+                       c0.06,0.112,0.173,0.096,0.281,0.112c0.554,0.075,0.621,0.167,0.277,0.466c-0.294,0.257-0.461,0.564-0.61,0.878
+                       c-0.071,0.153-0.009,0.308,0.225,0.358c0.203,0.041,0.343,0.131,0.239,0.324c-0.087,0.152-0.14,0.306-0.089,0.463
+                       c0.039-0.066,0.105-0.137,0.208-0.233c0.368-0.34,0.573-0.377,1.115-0.2c0.075,0.024,0.143,0.08,0.222,0.09
+                       c0.121,0.018,0.213-0.045,0.272-0.131c0.057-0.088,0.064-0.171-0.04-0.249c-0.35-0.251-0.342-0.253-0.541-0.783
+                       c-0.023-0.063-0.097-0.112-0.154-0.16c-0.113-0.096-0.158-0.193-0.03-0.304c0.096-0.084,0.19-0.173,0.287-0.257
+                       c0.493-0.413,0.639-0.451,1.214-0.122c0.505,0.288,1.075,0.495,1.521,0.865c0.252,0.209,0.627,0.28,0.858,0.535
+                       c0.105,0.118,0.314,0.016,0.484-0.062c-0.285-0.307-0.687-0.504-0.966-0.813c-0.105-0.12-0.192-0.218-0.208-0.36
+                       c-0.015-0.119-0.053-0.208-0.201-0.281c-0.251-0.124-0.282-0.404-0.172-0.55c0.169-0.224-0.05-0.477,0.162-0.672
+                       c0.079-0.073,0.031-0.183-0.033-0.264c-0.295-0.387-0.434-0.819-0.502-1.267c-0.035-0.224-0.125-0.408-0.347-0.542
+                       c-0.091-0.055-0.169-0.124-0.252-0.188c-0.394-0.313-0.411-0.364-0.172-0.79c0.05-0.089,0.143-0.171,0.038-0.249
+                       c-0.257-0.193-0.408-0.44-0.576-0.686c-0.079-0.115-0.32-0.153-0.311-0.31c0.015-0.21,0.272-0.287,0.428-0.413
+                       c0.117-0.096,0.292-0.135,0.435-0.21c0.197-0.105,0.201-0.149,0.065-0.342c-0.169-0.244-0.169-0.242,0.06-0.434
+                       c0.06-0.052,0.098-0.123,0.165-0.16c0.608-0.348,0.572-0.477,1.224-0.067c0.11,0.071,0.23,0.134,0.338,0.193
+                       c0.2-0.078,0.047-0.151,0.024-0.222c-0.039-0.113-0.105-0.224-0.11-0.338c-0.003-0.088,0.066-0.19-0.034-0.261
+                       c-0.263-0.191-0.176-0.364,0.022-0.542c0.112-0.102,0.22-0.208,0.327-0.314c0.147-0.144,0.318-0.183,0.529-0.12
+                       c0.108,0.031,0.217,0.049,0.327,0.069c0.147,0.029,0.318,0.206,0.428,0.033c0.081-0.124-0.093-0.258-0.206-0.362
+                       c-0.148-0.137-0.332-0.242-0.267-0.479c0.217-0.825-0.175-1.532-0.673-2.2c-0.139-0.184-0.11-0.302,0.041-0.432
+                       c0.098-0.084,0.189-0.191,0.308-0.23c0.219-0.075,0.307-0.209,0.311-0.384c0.01-0.493,0.454-0.663,0.87-0.856
+                       c0.101-0.047,0.235-0.045,0.32,0.017c0.238,0.173,0.546,0.085,0.799,0.183v0.002h0.002c0.094,0.226,0.412,0.226,0.565,0.395
+                       c0.009,0.011,0.108-0.014,0.136-0.042c0.029-0.029,0.047-0.096,0.029-0.126c-0.034-0.061-0.091-0.135-0.156-0.149
+                       c-0.186-0.039-0.383-0.053-0.575-0.078c0-0.002-0.002-0.002-0.002-0.002c0.077-0.32-0.026-0.601-0.248-0.861
+                       c-0.074-0.084-0.077-0.173-0.002-0.259c0.098-0.112,0.184-0.24,0.306-0.329c0.123-0.088,0.278-0.161,0.434-0.202
+                       c0.148-0.039,0.237,0.105,0.361,0.151c0.103,0.038,0.215,0.132,0.301,0.114c0.577-0.116,0.708,0.222,0.708,0.552
+                       c0,0.304,0.15,0.424,0.432,0.519c0.397,0.136,0.722,0.356,0.994,0.633c0.206,0.208,0.239,0.308,0.04,0.493
+                       c-0.214,0.201-0.31,0.439-0.439,0.671c-0.132,0.24-0.064,0.584-0.47,0.692c-0.008,0.003-0.01,0.047,0.002,0.065
+                       c0.009,0.018,0.042,0.045,0.06,0.04c0.079-0.016,0.167-0.029,0.235-0.065c0.354-0.191,0.703-0.387,1.052-0.583
+                       c0.206-0.116,0.395-0.134,0.621-0.016c0.193,0.1,0.366,0.212,0.524,0.348c0.363,0.313,0.389,0.381,0,0.684
+                       c-0.296,0.23-0.369,0.583-0.689,0.789c-0.031,0.02-0.017,0.089-0.022,0.136c-0.019,0.135,0.105,0.249,0.239,0.215
+                       c0.081-0.017,0.158-0.046,0.237-0.07c0.204-0.067,0.395-0.207,0.632-0.081c0.332,0.175,0.665,0.358,0.832,0.674
+                       c0.024,0.045-0.019,0.142-0.067,0.185c-0.157,0.135-0.325,0.261-0.499,0.379c-0.244,0.165-0.32,0.373-0.274,0.629
+                       c0.022,0.117,0.005,0.239,0.034,0.353c0.097,0.39,0.246,0.772,0.022,1.172c-0.053,0.093,0.002,0.233,0.016,0.351
+                       c0.024,0.193,0.143,0.286,0.378,0.31c0.715,0.075,0.911,0.165,1.4,0.642c-0.061,0.193-0.252,0.307-0.403,0.444
+                       c-0.165,0.151-0.286,0.291-0.102,0.493c0.057,0.062,0.018,0.137-0.041,0.193c-0.094,0.086-0.213,0.157-0.177,0.3
+                       c0.067,0.244-0.402,0.521-0.033,0.701c0.263,0.129,0.445-0.224,0.684-0.332c0.229-0.105,0.382-0.132,0.602,0.008
+                       c0.18,0.116,0.344,0.23,0.478,0.386c0.259,0.297,0.279,0.305-0.033,0.593c-0.162,0.147-0.235,0.302-0.294,0.491
+                       c-0.086,0.273-0.193,0.623-0.165,0.819c0.016,0.1-0.003,0.189-0.094,0.255c-0.174,0.132-0.097,0.262,0.008,0.376
+                       c0.224,0.239,0.303,0.457,0.035,0.7c0.531-0.09,1.047-0.135,1.523,0.196c0.124,0.086,0.325,0.108,0.498,0.131
+                       c0.33,0.039,0.545-0.2,0.409-0.458c-0.101-0.188-0.294-0.344-0.299-0.563c-0.003-0.147-0.041-0.387,0.042-0.425
+                       c0.593-0.277,0.23-0.565,0.086-0.889c-0.162-0.358-0.233-0.743-0.344-1.116c-0.066-0.234,0.048-0.406,0.259-0.546
+                       c0.5-0.33,0.653-0.324,1.014-0.049c0.105,0.08,0.215,0.157,0.334,0.222c0.19,0.102,0.39,0.153,0.562-0.027
+                       c0.158-0.167,0.34-0.177,0.563-0.098c0.172,0.064,0.346,0.059,0.463-0.1c0.035-0.049,0.069-0.104,0.114-0.149
+                       c0.526-0.499,0.663-0.486,1.021,0.098c0.177,0.286,0.335,0.342,0.674,0.215c0.228-0.082,0.438-0.194,0.665-0.275
+                       c0.215-0.075,0.434,0.081,0.393,0.283c-0.053,0.261-0.151,0.519-0.195,0.781c-0.038,0.228-0.029,0.461-0.04,0.69
+                       c0.147,0.066,0.335,0.049,0.395-0.038c0.313-0.455,0.939-0.348,1.377-0.577c0.134-0.071,0.324,0.134,0.289,0.287
+                       c-0.053,0.24-0.174,0.452-0.354,0.644c-0.165,0.174-0.184,0.375-0.184,0.589c-0.002,0.422,0.103,0.511,0.624,0.484
+                       c0.103-0.004,0.208-0.032,0.309-0.024c0.152,0.011,0.279,0.236,0.213,0.357c-0.029,0.054-0.055,0.118-0.105,0.151
+                       c-0.531,0.34-0.426,0.7-0.062,1.075c0.064,0.066,0.172,0.18,0.148,0.217c-0.301,0.458-0.044,1.085-0.626,1.452
+                       c-0.113,0.071-0.23,0.139-0.32,0.226c-0.197,0.182-0.197,0.358-0.015,0.564c0.062,0.073,0.143,0.133,0.204,0.206
+                       c0.172,0.202,0.354,0.26,0.621,0.098c0.636-0.379,1.365-0.216,2.061-0.209c0.193,0.005,0.285,0.171,0.299,0.327
+                       c0.043,0.442-0.086,0.836-0.538,1.1c-0.43,0.253-0.873,0.495-1.326,0.712c-0.18,0.087-0.254,0.185-0.276,0.342
+                       c-0.033,0.23,0.137,0.415,0.335,0.322c0.613-0.295,1.247,0.016,1.875-0.089c0.42-0.07,0.782,0.529,0.545,0.864
+                       c-0.279,0.393-0.652,0.731-1.214,0.8c-0.687,0.088-0.899,0.581-1.253,0.956c-0.026,0.029,0,0.12,0.038,0.159
+                       c0.039,0.038,0.123,0.069,0.18,0.063c0.201-0.027,0.362-0.2,0.596-0.104c0.401,0.167,0.54,0.481,0.286,0.799
+                       c-0.533,0.67-1.093,1.332-2.08,1.567c-0.435,0.104-0.678,0.286-0.626,0.69c0.011,0.084-0.055,0.171-0.077,0.259
+                       c-0.044,0.177-0.084,0.376,0.136,0.478c0.199,0.092,0.307-0.091,0.447-0.167c0.165-0.089,0.34-0.1,0.494-0.01
+                       c0.359,0.211,0.794,0.198,1.122,0.089c0.583-0.193,1.16-0.171,1.746-0.14c0.255,0.014,0.506,0.005,0.723-0.09
+                       c0.283-0.126,0.447-0.03,0.643,0.133c0.502,0.415,0.537,0.509,0.013,0.81c-0.378,0.217-0.588,0.51-0.755,0.836
+                       c-0.184,0.366-0.471,0.582-0.954,0.597c-0.339,0.012-0.624,0.12-0.777,0.393c-0.169,0.297-0.576,0.333-0.823,0.542
+                       c-0.115,0.1-0.354,0.096-0.343,0.293c0.084,0.086,0.191,0.084,0.293,0.059c0.318-0.08,0.603-0.088,0.899,0.098
+                       c0.316,0.198,0.682,0.291,1.1,0.211c0.313-0.061,0.634,0.004,0.935,0.104c0.399,0.133,0.755,0.106,1.078-0.151
+                       c0.158-0.124,0.379-0.254,0.564-0.2c0.324,0.095,0.625,0.253,0.907,0.422c0.163,0.097,0.102,0.491-0.073,0.665
+                       c-0.088,0.089-0.22,0.147-0.317,0.229c-0.34,0.279-0.782,0.457-0.994,0.866c-0.165,0.319-0.621,0.408-0.985,0.463
+                       c-0.447,0.069-0.775,0.2-1.043,0.519c-0.191,0.23-0.665,0.211-0.772,0.566c-0.041,0.137-0.222,0.106-0.366,0.073
+                       c-0.477-0.104-0.951-0.232-1.434-0.305c-0.419-0.064-0.84-0.233-1.215,0.203c-0.22,0.253-0.683,0.119-0.861-0.189
+                       c-0.093-0.162-0.167-0.324-0.31-0.461c-0.158-0.147-0.405-0.125-0.526,0.057c-0.035,0.051-0.086,0.102-0.096,0.157
+                       c-0.045,0.293-0.451,0.586-0.257,0.828c0.217,0.275,0.661,0.05,0.977-0.005c0.728-0.123,1.48-0.097,2.193-0.31
+                       c0.388-0.116,0.684,0.071,0.801,0.41c0.048,0.142,0.044,0.295,0.079,0.442c0.053,0.209,0.27,0.291,0.478,0.167
+                       c0.316-0.189,0.615-0.403,0.925-0.597c0.228-0.142,0.381-0.108,0.5,0.104c0.06,0.106,0.074,0.235,0.147,0.333
+                       c0.11,0.148,0.286,0.152,0.463,0.084c0.064-0.027,0.141-0.055,0.173-0.102c0.308-0.438,0.666-0.537,1.168-0.191
+                       c0.139,0.093,0.474-0.051,0.516,0.191c0.019,0.12-0.174,0.255-0.2,0.392c-0.074,0.391-0.408,0.615-0.705,0.871
+                       c-0.344,0.297-0.715,0.577-1.031,0.893c-0.335,0.34-0.584,0.762-1.219,0.735c-0.395,0.348-0.882,0.442-1.44,0.438
+                       c-0.182-0.002-0.366,0.164-0.544,0.257c-0.018,0.012-0.029,0.071-0.016,0.08c0.05,0.034,0.143,0.093,0.162,0.081
+                       c0.421-0.262,0.782-0.144,1.146,0.097c0.189,0.127,0.284,0.264,0.174,0.458c-0.097,0.167-0.103,0.342-0.1,0.521
+                       c0.002,0.208-0.019,0.408-0.072,0.597c0.764,0.355,1.532,0.708,2.29,1.061c-0.031-0.025-0.062-0.047-0.09-0.071
+                       c-0.177-0.142-0.349-0.289-0.512-0.442c-0.103-0.096-0.039-0.258,0.112-0.32c0.026-0.008,0.055-0.022,0.084-0.027
+                       c0.174-0.035,0.402-0.024,0.459-0.202c0.084-0.259,0.031-0.521-0.189-0.727c-0.203-0.188-0.447-0.347-0.659-0.53
+                       c-0.103-0.088,0-0.281,0.148-0.304c0.088-0.011,0.182-0.02,0.27-0.016c0.175,0.007,0.337,0.199,0.505,0.067
+                       c0.093-0.073,0.086-0.235,0.145-0.35c0.056-0.106,0.199-0.167,0.299-0.108c0.318,0.182,0.55,0.088,0.78-0.116
+                       c0.057-0.051,0.141-0.081,0.217-0.124c-0.384-0.322-0.384-0.322-0.378-0.781c0.005-0.442,0.009-0.456,0.549-0.491
+                       c0.189-0.012,0.34-0.042,0.507-0.131c0.414-0.22,0.842-0.301,1.244,0.046c0.224,0.193,0.514,0.116,0.784,0.091
+                       c0.115-0.012,0.182-0.198,0.079-0.246c-0.636-0.299-0.457-0.848-0.573-1.302c-0.037-0.142,0.055-0.249,0.167-0.342
+                       c0.198-0.162,0.132-0.361,0.011-0.495c-0.198-0.224-0.312-0.528-0.542-0.686c-0.364-0.247-0.505-0.441-0.323-0.832
+                       c0.066-0.142-0.151-0.371-0.211-0.566c-0.105-0.332-0.053-0.395,0.378-0.554c0.419-0.156,0.624-0.517,0.481-0.857
+                       c-0.05-0.122-0.119-0.237-0.165-0.361c-0.055-0.153,0.115-0.3,0.318-0.287c0.031,0.002,0.072-0.002,0.091,0.011
+                       c0.4,0.278,0.666-0.005,0.965-0.161c0.162-0.086,0.213-0.202,0.074-0.312c-0.191-0.156-0.222-0.358-0.301-0.551
+                       c-0.173-0.432-0.079-0.716,0.408-0.85c0.43-0.117,0.705-0.401,1.081-0.57c0.236-0.108,0.343-0.277,0.303-0.514
+                       c-0.019-0.125-0.015-0.256,0.009-0.38c0.05-0.259,0.22-0.351,0.526-0.263c0.235,0.066,0.451,0.149,0.707,0.108
+                       c0.164-0.024,0.325,0.031,0.371,0.169c0.07,0.224,0.259,0.316,0.466,0.437c0.232,0.14,0.379,0.348,0.741,0.264
+                       c0.191-0.047,0.325,0.124,0.34,0.295c0.029,0.413-0.029,0.821-0.165,1.216c-0.388,1.112-0.228,0.813,0.439,1.562
+                       c0.072,0.078,0.237,0.116,0.266,0.194c0.098,0.262,0.285,0.309,0.566,0.242c0.086-0.02,0.18-0.021,0.271-0.023
+                       c0.145-0.003,0.248,0.123,0.154,0.208c-0.22,0.2-0.349,0.41-0.259,0.695c0.019,0.059-0.026,0.161-0.084,0.208
+                       c-0.49,0.424-0.587,1.057-1.166,1.436c0.459,0.204,0.466,0.208,0.674-0.018c0.327-0.357,0.775-0.561,1.258-0.719
+                       c0.026-0.008,0.062,0.004,0.09,0.004c0.245-0.009,0.191-0.423,0.551-0.281c0.191,0.078,0.354,0.206,0.584,0.22
+                       c0.088,0.004,0.181,0.022,0.261,0.055c0.095,0.038,0.126,0.131,0.076,0.198c-0.079,0.108-0.193,0.195-0.286,0.297
+                       c-0.077,0.087-0.094,0.173-0.037,0.284c0.186,0.354,0.184,0.358-0.053,0.535c-0.248,0.188-0.499,0.373-0.659,0.633
+                       c-0.085,0.133-0.215,0.255-0.353,0.353c-0.162,0.115-0.396,0.17-0.521,0.304c-0.189,0.198-0.308,0.442-0.454,0.659
+                       c0.017,0.185,0.204,0.181,0.332,0.222c0.132,0.042,0.195,0.209,0.381,0.156c0.172-0.183-0.048-0.446,0.126-0.588
+                       c0.192-0.151,0.467-0.232,0.706-0.342c0.081-0.035,0.169-0.065,0.239-0.11c0.176-0.126,0.361-0.155,0.536-0.106
+                       c-0.007-0.065,0.047-0.112,0.176-0.222c0.061-0.05,0.098-0.123,0.166-0.16c0.607-0.346,0.571-0.477,1.223-0.065
+                       c0.11,0.071,0.23,0.132,0.337,0.193c0.2-0.08,0.048-0.153,0.024-0.222c-0.039-0.113-0.105-0.224-0.11-0.337
+                       c-0.002-0.091,0.066-0.191-0.034-0.264c-0.263-0.19-0.176-0.363,0.022-0.539c0.112-0.102,0.22-0.209,0.327-0.318
+                       c0.146-0.144,0.318-0.18,0.529-0.12c0.105,0.031,0.217,0.051,0.327,0.071c0.147,0.027,0.318,0.206,0.428,0.031
+                       c0.082-0.124-0.093-0.257-0.206-0.362c-0.148-0.135-0.332-0.241-0.267-0.479c0.217-0.823-0.175-1.528-0.672-2.199
+                       c-0.14-0.183-0.11-0.3,0.04-0.433c0.098-0.082,0.189-0.188,0.309-0.23c0.217-0.075,0.306-0.208,0.31-0.381
+                       c0.008-0.496,0.454-0.667,0.871-0.857c0.101-0.047,0.233-0.047,0.32,0.018c0.233,0.171,0.545,0.082,0.799,0.182v0.002h0.002
+                       c0.093,0.226,0.411,0.226,0.564,0.393c0.009,0.014,0.108-0.011,0.134-0.04c0.031-0.031,0.05-0.095,0.031-0.129
+                       c-0.033-0.057-0.09-0.133-0.156-0.147c-0.186-0.039-0.382-0.053-0.573-0.078v-0.002h-0.002c0.074-0.32-0.026-0.603-0.249-0.861
+                       c-0.073-0.084-0.076-0.173-0.002-0.259c0.098-0.114,0.184-0.24,0.307-0.331c0.121-0.088,0.277-0.159,0.43-0.202
+                       c0.15-0.039,0.238,0.105,0.364,0.152c0.102,0.039,0.214,0.131,0.301,0.113c0.576-0.116,0.707,0.224,0.707,0.554
+                       c0,0.303,0.151,0.423,0.433,0.519c0.397,0.134,0.722,0.354,0.994,0.631c0.206,0.21,0.239,0.31,0.041,0.495
+                       c-0.215,0.2-0.311,0.439-0.441,0.672c-0.132,0.237-0.064,0.583-0.47,0.69c-0.007,0.001-0.01,0.046,0.002,0.064
+                       c0.009,0.02,0.043,0.045,0.06,0.042c0.079-0.018,0.167-0.031,0.235-0.067c0.354-0.19,0.703-0.387,1.052-0.581
+                       c0.206-0.118,0.395-0.135,0.621-0.016c0.195,0.1,0.366,0.213,0.524,0.348c0.364,0.313,0.389,0.382,0,0.683
+                       c-0.296,0.229-0.368,0.584-0.689,0.79c-0.031,0.02-0.016,0.089-0.022,0.134c-0.018,0.137,0.103,0.251,0.239,0.217
+                       c0.082-0.019,0.159-0.046,0.237-0.072c0.204-0.065,0.395-0.205,0.632-0.081c0.332,0.178,0.665,0.36,0.832,0.675
+                       c0.024,0.046-0.019,0.143-0.067,0.186c-0.157,0.133-0.325,0.26-0.499,0.377c-0.244,0.167-0.32,0.375-0.274,0.631
+                       c0.022,0.115,0.006,0.237,0.034,0.353c0.098,0.388,0.246,0.77,0.022,1.172c-0.053,0.093,0.002,0.23,0.016,0.348
+                       c0.024,0.193,0.144,0.289,0.378,0.313c0.715,0.073,0.911,0.164,1.4,0.638c-0.061,0.195-0.252,0.309-0.402,0.444
+                       c-0.166,0.151-0.287,0.293-0.103,0.495c0.057,0.059,0.018,0.135-0.041,0.191c-0.093,0.086-0.213,0.159-0.176,0.302
+                       c0.066,0.242-0.403,0.521-0.034,0.699c0.264,0.129,0.445-0.222,0.684-0.33c0.229-0.104,0.382-0.131,0.602,0.008
+                       c0.18,0.116,0.344,0.23,0.479,0.387c0.257,0.297,0.279,0.304-0.034,0.591c-0.162,0.149-0.235,0.304-0.294,0.492
+                       c-0.086,0.271-0.193,0.621-0.165,0.817c0.017,0.1-0.002,0.191-0.094,0.257c-0.174,0.132-0.097,0.262,0.008,0.376
+                       c0.236,0.251,0.315,0.479-0.003,0.738c-0.138,0.112-0.169,0.291-0.11,0.466c0.039,0.112,0.046,0.232,0.063,0.346
+                       c0.046,0.309-0.041,0.56-0.412,0.701c-0.097,0.036-0.169,0.12-0.233,0.169c-0.053,0.226,0.26,0.158,0.294,0.318
+                       c0.031,0.143,0.213,0.208,0.33,0.308c0.18,0.154,0.193,0.351-0.017,0.497c-0.351,0.242-0.312,0.575-0.37,0.886
+                       c-0.017,0.087,0.049,0.2-0.058,0.257c-0.287,0.154-0.411,0.362-0.42,0.648c-0.002,0.12-0.163,0.067-0.27,0.067
+                       c-0.313,0.002-0.371,0.031-0.393,0.251c-0.033,0.36-0.132,0.695-0.378,0.994c-0.048,0.057-0.041,0.144,0.04,0.193
+                       c0.081,0.049,0.161,0.018,0.217-0.04c0.201-0.21,0.445-0.361,0.77-0.386c0.156-0.013,0.263-0.073,0.338-0.183
+                       c0.093-0.133,0.237-0.192,0.409-0.223c0.224-0.04,0.382-0.152,0.56-0.28c0.354-0.255,0.772-0.444,1.172-0.654
+                       c0.033-0.016,0.136,0.002,0.148,0.024c0.134,0.275,0.529,0.302,0.711,0.561c0.035,0.052,0.064,0.096,0.093,0.14
+                       c0.01-0.004,0.019-0.008,0.029-0.014c0.414-0.221,0.842-0.302,1.246,0.047c0.224,0.193,0.514,0.116,0.782,0.089
+                       c0.117-0.012,0.182-0.198,0.079-0.246c-0.636-0.3-0.454-0.845-0.571-1.3c-0.039-0.142,0.053-0.251,0.165-0.342
+                       c0.201-0.165,0.134-0.364,0.014-0.497c-0.2-0.224-0.312-0.528-0.542-0.684c-0.363-0.249-0.505-0.443-0.323-0.834
+                       c0.067-0.142-0.152-0.371-0.213-0.564c-0.103-0.336-0.053-0.397,0.38-0.557c0.419-0.153,0.625-0.517,0.481-0.857
+                       c-0.05-0.12-0.119-0.237-0.165-0.359c-0.055-0.155,0.112-0.302,0.318-0.287c0.031,0.003,0.07-0.004,0.088,0.012
+                       c0.404,0.277,0.667-0.007,0.966-0.165c0.164-0.084,0.216-0.2,0.077-0.311c-0.193-0.155-0.224-0.359-0.301-0.552
+                       c-0.175-0.43-0.079-0.716,0.408-0.85c0.43-0.117,0.706-0.399,1.079-0.57c0.239-0.106,0.343-0.275,0.306-0.512
+                       c-0.022-0.125-0.014-0.258,0.009-0.38c0.05-0.259,0.221-0.353,0.526-0.263c0.232,0.066,0.45,0.147,0.707,0.108
+                       c0.161-0.024,0.326,0.031,0.369,0.169c0.072,0.223,0.261,0.314,0.466,0.437c0.235,0.138,0.379,0.348,0.744,0.262
+                       c0.19-0.045,0.326,0.124,0.337,0.297c0.031,0.413-0.028,0.821-0.165,1.216c-0.386,1.111-0.228,0.813,0.443,1.56
+                       c0.069,0.08,0.233,0.118,0.264,0.196c0.096,0.26,0.285,0.309,0.564,0.242c0.087-0.02,0.182-0.024,0.274-0.024
+                       c0.145-0.004,0.246,0.122,0.154,0.207c-0.22,0.202-0.351,0.412-0.257,0.697c0.018,0.059-0.029,0.159-0.084,0.208
+                       c-0.493,0.422-0.59,1.057-1.167,1.434c0.459,0.206,0.466,0.211,0.674-0.016c0.328-0.357,0.775-0.562,1.258-0.721
+                       c0.026-0.009,0.061,0.007,0.091,0.004c0.244-0.006,0.191-0.424,0.549-0.279c0.191,0.078,0.354,0.206,0.581,0.218
+                       c0.088,0.004,0.184,0.024,0.263,0.057c0.095,0.038,0.125,0.129,0.077,0.198c-0.079,0.106-0.197,0.195-0.287,0.297
+                       c-0.079,0.085-0.096,0.173-0.037,0.284c0.186,0.354,0.182,0.356-0.052,0.535c-0.252,0.189-0.5,0.373-0.663,0.633
+                       c-0.081,0.133-0.213,0.253-0.351,0.353c-0.16,0.115-0.395,0.171-0.522,0.304c-0.186,0.198-0.306,0.442-0.452,0.659
+                       c0.015,0.185,0.201,0.178,0.331,0.22c0.134,0.045,0.196,0.211,0.382,0.158c0.172-0.183-0.05-0.446,0.127-0.588
+                       c0.191-0.153,0.466-0.23,0.703-0.342c0.081-0.038,0.172-0.064,0.242-0.113c0.251-0.178,0.514-0.173,0.748-0.002
+                       c0.239,0.177,0.518,0.257,0.81,0.332c0.125,0.031,0.201,0.165,0.108,0.251c-0.413,0.379-0.611,0.882-1.061,1.245
+                       c-0.221,0.177-0.481,0.304-0.706,0.481c0.077,0.232,0.375,0.352,0.356,0.615c-0.014,0.216,0.243,0.273,0.399,0.389
+                       c0.189,0.139,0.213,0.267,0.041,0.39c-0.239,0.176-0.441,0.342-0.406,0.645c0.02,0.166-0.132,0.273-0.296,0.361
+                       c-0.359,0.198-0.698,0.42-1.064,0.602c-0.204,0.101-0.303,0.245-0.39,0.412l0.01,0.011c0.38-0.07,0.793-0.015,1.131-0.245
+                       c0.145-0.1,0.356-0.129,0.518-0.05c0.278,0.134,0.457,0.01,0.656-0.115c0.123-0.075,0.246-0.151,0.382-0.202
+                       c0.248-0.096,0.518-0.007,0.577,0.196c0.143-0.005,0.308,0.03,0.527,0.103c0.068,0.02,0.127,0.059,0.195,0.078
+                       c0.005-0.002,0.009-0.004,0.014-0.006c0.094-0.051,0.169-0.063,0.232-0.049c0.022-0.018,0.04-0.04,0.055-0.063
+                       c0.06-0.088,0.067-0.173-0.041-0.249c-0.346-0.251-0.339-0.255-0.54-0.784c-0.022-0.062-0.095-0.113-0.153-0.161
+                       c-0.112-0.096-0.158-0.191-0.031-0.304c0.098-0.084,0.191-0.173,0.29-0.255c0.492-0.413,0.639-0.454,1.212-0.124
+                       c0.507,0.288,1.077,0.497,1.523,0.868c0.248,0.206,0.625,0.277,0.858,0.534c0.105,0.116,0.313,0.014,0.483-0.062
+                       c-0.284-0.307-0.688-0.507-0.966-0.815c-0.108-0.118-0.191-0.216-0.207-0.358c-0.017-0.119-0.053-0.21-0.201-0.284
+                       c-0.251-0.124-0.281-0.405-0.173-0.548c0.171-0.224-0.052-0.477,0.161-0.674c0.078-0.073,0.033-0.183-0.032-0.264
+                       c-0.296-0.386-0.433-0.819-0.501-1.265c-0.037-0.224-0.125-0.408-0.347-0.544c-0.091-0.055-0.173-0.122-0.253-0.188
+                       c-0.394-0.311-0.41-0.362-0.171-0.79c0.05-0.089,0.143-0.169,0.038-0.249c-0.257-0.191-0.409-0.44-0.576-0.684
+                       c-0.079-0.115-0.32-0.153-0.311-0.31c0.013-0.213,0.27-0.289,0.428-0.413c0.118-0.096,0.292-0.137,0.436-0.212
+                       c0.196-0.102,0.2-0.149,0.064-0.342c-0.173-0.242-0.169-0.242,0.06-0.435c0.06-0.049,0.098-0.122,0.162-0.159
+                       c0.61-0.346,0.574-0.477,1.227-0.065c0.11,0.069,0.229,0.132,0.337,0.193c0.2-0.08,0.048-0.153,0.024-0.222
+                       c-0.039-0.113-0.108-0.226-0.111-0.337c-0.002-0.091,0.065-0.191-0.033-0.264c-0.265-0.191-0.176-0.364,0.019-0.539
+                       c0.115-0.103,0.222-0.209,0.33-0.318c0.144-0.144,0.318-0.183,0.529-0.12c0.105,0.031,0.217,0.051,0.325,0.071
+                       c0.147,0.027,0.32,0.206,0.43,0.031c0.079-0.124-0.095-0.258-0.208-0.362c-0.148-0.137-0.33-0.241-0.268-0.479
+                       c0.221-0.825-0.172-1.529-0.672-2.199c-0.136-0.183-0.108-0.301,0.043-0.433c0.096-0.082,0.186-0.189,0.306-0.23
+                       c0.22-0.075,0.309-0.209,0.311-0.381c0.009-0.495,0.454-0.667,0.873-0.859c0.1-0.047,0.233-0.045,0.319,0.02
+                       c0.235,0.17,0.546,0.082,0.799,0.182v0.002h0.003c0.09,0.226,0.409,0.226,0.561,0.393c0.013,0.011,0.11-0.012,0.136-0.04
+                       c0.032-0.031,0.05-0.096,0.032-0.129c-0.037-0.057-0.091-0.133-0.156-0.147c-0.186-0.039-0.382-0.055-0.573-0.078
+                       c0-0.002,0-0.002-0.003-0.002c0.074-0.32-0.026-0.603-0.251-0.861c-0.072-0.084-0.074-0.175,0-0.259
+                       c0.098-0.114,0.182-0.24,0.306-0.331c0.122-0.088,0.276-0.159,0.43-0.202c0.151-0.039,0.237,0.104,0.364,0.152
+                       c0.101,0.039,0.215,0.131,0.301,0.113c0.577-0.116,0.708,0.222,0.708,0.552c-0.002,0.305,0.15,0.425,0.433,0.519
+                       c0.397,0.136,0.722,0.355,0.994,0.632c0.206,0.211,0.239,0.311,0.039,0.496c-0.216,0.2-0.309,0.437-0.438,0.672
+                       c-0.132,0.237-0.066,0.581-0.471,0.689c-0.009,0.002-0.009,0.047,0,0.065c0.013,0.02,0.046,0.045,0.063,0.042
+                       c0.079-0.018,0.165-0.031,0.232-0.067c0.356-0.191,0.705-0.387,1.054-0.583c0.206-0.116,0.395-0.134,0.621-0.016
+                       c0.193,0.102,0.366,0.212,0.524,0.351c0.363,0.313,0.389,0.381,0,0.683c-0.299,0.229-0.369,0.584-0.689,0.791
+                       c-0.031,0.017-0.016,0.086-0.024,0.133c-0.016,0.137,0.105,0.251,0.241,0.218c0.081-0.02,0.158-0.047,0.237-0.073
+                       c0.204-0.065,0.395-0.205,0.628-0.081c0.335,0.177,0.665,0.358,0.835,0.674c0.024,0.047-0.019,0.142-0.07,0.187
+                       c-0.156,0.133-0.323,0.26-0.497,0.377c-0.247,0.167-0.32,0.375-0.276,0.631c0.022,0.115,0.005,0.237,0.034,0.353
+                       c0.097,0.388,0.246,0.77,0.023,1.169c-0.055,0.096,0,0.233,0.017,0.351c0.024,0.192,0.141,0.289,0.378,0.313
+                       c0.713,0.072,0.909,0.164,1.396,0.638c-0.06,0.195-0.251,0.309-0.398,0.444c-0.166,0.151-0.287,0.293-0.103,0.495
+                       c0.057,0.059,0.016,0.135-0.041,0.191c-0.093,0.086-0.215,0.157-0.176,0.302c0.064,0.242-0.403,0.519-0.037,0.699
+                       c0.266,0.129,0.447-0.222,0.687-0.33c0.229-0.105,0.382-0.131,0.6,0.008c0.182,0.116,0.347,0.23,0.481,0.386
+                       c0.256,0.298,0.28,0.305-0.033,0.591c-0.162,0.15-0.237,0.305-0.294,0.493c-0.086,0.271-0.193,0.621-0.165,0.817
+                       c0.014,0.1-0.002,0.191-0.094,0.257c-0.175,0.13-0.101,0.262,0.008,0.376c0.233,0.251,0.315,0.479-0.006,0.736
+                       c-0.138,0.114-0.167,0.291-0.108,0.468c0.037,0.11,0.046,0.23,0.062,0.346c0.046,0.308-0.04,0.56-0.411,0.701
+                       c-0.097,0.036-0.169,0.12-0.237,0.169c-0.053,0.224,0.261,0.155,0.296,0.318c0.032,0.141,0.213,0.208,0.331,0.308
+                       c0.179,0.151,0.193,0.35-0.017,0.497c-0.351,0.242-0.314,0.575-0.373,0.886c-0.014,0.086,0.05,0.2-0.055,0.257
+                       c-0.286,0.153-0.413,0.362-0.421,0.648c-0.004,0.12-0.165,0.067-0.272,0.067c-0.31,0-0.371,0.029-0.389,0.251
+                       c-0.034,0.359-0.134,0.695-0.38,0.994c-0.046,0.057-0.039,0.142,0.04,0.191c0.084,0.051,0.163,0.02,0.217-0.038
+                       c0.201-0.21,0.445-0.362,0.772-0.386c0.156-0.014,0.261-0.075,0.337-0.183c0.093-0.133,0.237-0.193,0.409-0.224
+                       c0.224-0.04,0.382-0.153,0.56-0.279c0.351-0.255,0.772-0.444,1.171-0.654c0.032-0.018,0.137,0.002,0.149,0.024
+                       c0.134,0.275,0.526,0.302,0.707,0.559c0.225,0.32,0.3,0.464,0.085,0.746c-0.046,0.058-0.12,0.1-0.173,0.155
+                       c-0.231,0.234-0.356,0.502-0.153,0.777c0.166,0.224-0.031,0.348-0.105,0.51c-0.002-0.002-0.004-0.002-0.009-0.004
+                       c0,0.004-0.002,0.004-0.002,0.006c-0.191-0.004-0.385-0.021-0.575-0.011c-0.145,0.009-0.264,0.08-0.319,0.202
+                       c-0.017,0.038,0,0.089,0.011,0.133c0.004,0.018,0.046,0.047,0.057,0.045c0.292-0.098,0.678-0.047,0.825-0.369
+                       c0.002,0,0.007,0,0.009,0.002c0-0.002,0.002-0.004,0.002-0.004c0.123,0.029,0.221,0.073,0.307,0.132
+                       c0.033-0.178,0.141-0.195,0.536-0.22c0.189-0.012,0.34-0.042,0.505-0.131c0.413-0.223,0.841-0.3,1.245,0.046
+                       c0.225,0.193,0.515,0.116,0.783,0.089c0.117-0.012,0.181-0.198,0.079-0.246c-0.636-0.3-0.454-0.845-0.572-1.3
+                       c-0.038-0.142,0.053-0.251,0.165-0.342c0.201-0.161,0.134-0.364,0.015-0.497c-0.201-0.224-0.314-0.526-0.542-0.684
+                       c-0.364-0.249-0.505-0.442-0.323-0.834c0.066-0.142-0.153-0.371-0.214-0.564c-0.102-0.336-0.052-0.397,0.381-0.558
+                       c0.418-0.152,0.624-0.514,0.481-0.856c-0.05-0.119-0.12-0.237-0.165-0.359c-0.055-0.155,0.112-0.302,0.318-0.287
+                       c0.031,0.002,0.069-0.002,0.088,0.012c0.404,0.277,0.667-0.007,0.966-0.165c0.162-0.084,0.215-0.2,0.077-0.311
+                       c-0.193-0.155-0.224-0.359-0.301-0.552c-0.175-0.43-0.079-0.717,0.408-0.85c0.43-0.117,0.705-0.399,1.078-0.57
+                       c0.239-0.106,0.344-0.275,0.306-0.512c-0.021-0.124-0.014-0.258,0.01-0.38c0.05-0.259,0.22-0.353,0.525-0.264
+                       c0.232,0.067,0.45,0.147,0.708,0.109c0.16-0.024,0.325,0.031,0.369,0.169c0.069,0.224,0.26,0.315,0.466,0.437
+                       c0.235,0.138,0.378,0.348,0.744,0.264c0.189-0.047,0.325,0.122,0.337,0.295c0.031,0.413-0.03,0.821-0.165,1.216
+                       c-0.386,1.112-0.228,0.811,0.442,1.559c0.07,0.081,0.235,0.118,0.265,0.199c0.095,0.259,0.284,0.308,0.564,0.241
+                       c0.086-0.019,0.182-0.024,0.272-0.024c0.146-0.004,0.246,0.124,0.156,0.206c-0.22,0.203-0.351,0.413-0.259,0.698
+                       c0.02,0.059-0.029,0.159-0.084,0.208c-0.492,0.422-0.59,1.057-1.167,1.434c0.46,0.206,0.467,0.21,0.675-0.016
+                       c0.327-0.357,0.775-0.562,1.258-0.721c0.026-0.006,0.06,0.007,0.09,0.005c0.244-0.007,0.191-0.423,0.55-0.28
+                       c0.191,0.078,0.354,0.206,0.58,0.218c0.089,0.006,0.184,0.023,0.263,0.057c0.096,0.038,0.125,0.129,0.077,0.198
+                       c-0.081,0.106-0.196,0.195-0.287,0.297c-0.079,0.085-0.095,0.173-0.035,0.284c0.186,0.354,0.184,0.356-0.053,0.535
+                       c-0.251,0.189-0.5,0.373-0.66,0.633c-0.084,0.133-0.215,0.252-0.354,0.353c-0.16,0.115-0.394,0.171-0.521,0.304
+                       c-0.186,0.198-0.309,0.442-0.452,0.659c0.014,0.185,0.2,0.178,0.33,0.22c0.134,0.045,0.196,0.211,0.382,0.157
+                       c0.173-0.182-0.049-0.445,0.127-0.587c0.191-0.153,0.467-0.23,0.706-0.342c0.079-0.038,0.169-0.064,0.236-0.113
+                       c0.254-0.176,0.517-0.173,0.751,0c0.239,0.174,0.52,0.255,0.811,0.33c0.124,0.031,0.2,0.165,0.108,0.251
+                       c-0.414,0.379-0.612,0.882-1.062,1.245c-0.22,0.177-0.481,0.304-0.705,0.481c0.077,0.232,0.374,0.351,0.356,0.615
+                       c-0.015,0.216,0.241,0.273,0.399,0.389c0.189,0.139,0.213,0.267,0.041,0.393c-0.239,0.172-0.443,0.339-0.407,0.642
+                       c0.019,0.166-0.13,0.273-0.296,0.361c-0.358,0.198-0.698,0.42-1.064,0.604c-0.203,0.1-0.303,0.245-0.389,0.41l0.009,0.012
+                       c0.38-0.071,0.794-0.016,1.132-0.246c0.145-0.101,0.356-0.127,0.518-0.05c0.277,0.134,0.457,0.01,0.655-0.115
+                       c0.122-0.073,0.246-0.151,0.382-0.202c0.28-0.106,0.594,0.019,0.588,0.284c-0.003,0.246,0.034,0.308,0.324,0.242
+                       c0.15-0.036,0.272-0.086,0.402-0.155c0.205-0.112,0.341-0.058,0.396,0.131c0.039,0.124,0.05,0.253,0.081,0.377
+                       c0.044,0.165,0.307,0.322,0.113,0.486c-0.201,0.173-0.364,0.428-0.722,0.418c-0.158-0.002-0.311,0.016-0.423,0.107
+                       c-0.22,0.173-0.397,0.399-0.645,0.528c-0.249,0.129-0.593,0.116-0.777,0.357l0.002,0.004c0.189-0.025,0.363-0.011,0.514,0.103
+                       c0.136,0.102,0.277,0.195,0.438,0.306c0.155-0.155,0.277-0.3,0.422-0.422c0.217-0.18,0.491-0.108,0.55,0.142
+                       c0.029,0.12,0.005,0.251,0.005,0.404c0.277,0.069,0.516-0.066,0.768-0.124c0.15-0.033,0.29-0.059,0.444-0.018
+                       c0.162,0.045,0.268,0.173,0.201,0.293c-0.167,0.302-0.344,0.602-0.512,0.903c-0.134,0.242-0.381,0.298-0.667,0.34
+                       c-0.557,0.08-0.95,0.415-1.376,0.693c-0.071,0.047-0.086,0.151-0.014,0.202c0.06,0.042,0.179,0.067,0.246,0.042
+                       c0.136-0.049,0.251-0.138,0.38-0.207c0.081-0.041,0.206-0.062,0.235,0.023c0.095,0.31,0.386,0.357,0.691,0.414
+                       c0.179,0.033,0.2,0.167,0.062,0.297c-0.072,0.071-0.153,0.138-0.232,0.204c0.129,0.01,0.256,0.016,0.371,0.061v0.002h0.002
+                       c0.094,0.226,0.412,0.226,0.564,0.395c0.01,0.011,0.109-0.014,0.137-0.04c0.029-0.031,0.047-0.098,0.029-0.129
+                       c-0.034-0.057-0.092-0.136-0.156-0.149c-0.187-0.039-0.38-0.053-0.575-0.078c0,0-0.002,0-0.002-0.002
+                       c0.077-0.32-0.026-0.602-0.248-0.861c-0.074-0.084-0.077-0.173-0.002-0.257c0.101-0.114,0.184-0.242,0.305-0.331
+                       c0.123-0.09,0.278-0.161,0.434-0.201c0.148-0.04,0.236,0.104,0.36,0.15c0.103,0.038,0.215,0.132,0.301,0.114
+                       c0.577-0.116,0.708,0.222,0.708,0.552c0,0.305,0.15,0.424,0.432,0.519c0.397,0.136,0.722,0.356,0.994,0.633
+                       c0.206,0.208,0.239,0.308,0.041,0.494c-0.215,0.2-0.309,0.438-0.441,0.67c-0.132,0.24-0.064,0.584-0.471,0.692
+                       c-0.007,0.002-0.009,0.045,0.003,0.065c0.009,0.018,0.042,0.045,0.06,0.039c0.081-0.015,0.167-0.029,0.233-0.064
+                       c0.355-0.191,0.704-0.387,1.053-0.584c0.206-0.115,0.397-0.133,0.621-0.015c0.193,0.1,0.366,0.212,0.524,0.348
+                       c0.363,0.312,0.389,0.383,0,0.683c-0.296,0.23-0.366,0.584-0.689,0.79c-0.029,0.02-0.017,0.089-0.022,0.136
+                       c-0.019,0.135,0.105,0.247,0.239,0.217c0.081-0.019,0.158-0.049,0.237-0.073c0.203-0.066,0.395-0.206,0.632-0.08
+                       c0.332,0.175,0.664,0.358,0.832,0.674c0.024,0.045-0.02,0.142-0.068,0.185c-0.158,0.135-0.325,0.261-0.499,0.379
+                       c-0.245,0.165-0.32,0.375-0.274,0.628c0.022,0.118,0.005,0.24,0.034,0.354c0.097,0.39,0.246,0.772,0.021,1.172
+                       c-0.053,0.092,0.002,0.233,0.017,0.35c0.024,0.193,0.143,0.286,0.378,0.311c0.715,0.075,0.911,0.164,1.398,0.64
+                       c-0.06,0.193-0.251,0.306-0.402,0.444c-0.165,0.151-0.286,0.291-0.102,0.493c0.057,0.062,0.018,0.138-0.041,0.192
+                       c-0.092,0.087-0.213,0.158-0.175,0.301c0.065,0.243-0.404,0.52-0.035,0.701c0.263,0.129,0.445-0.224,0.684-0.332
+                       c0.229-0.104,0.382-0.132,0.602,0.008c0.05,0.033,0.098,0.068,0.145,0.102c-0.009-0.016-0.021-0.027-0.031-0.042
+                       c-0.165-0.273-0.371-0.503-0.36-0.832c0.002-0.138-0.081-0.275-0.121-0.413c-0.039-0.117-0.074-0.235-0.101-0.355
+                       c-0.017-0.082,0.002-0.167,0.081-0.22c0.086-0.059,0.169-0.022,0.255,0.022c0.386,0.198,0.491,0.164,0.56-0.228
+                       c0.035-0.204,0.189-0.322,0.325-0.456c0.084-0.078,0.208-0.088,0.331-0.059c0.132,0.031,0.262,0.065,0.391,0.098
+                       c0.026-0.053,0.055-0.089,0.055-0.124c0.015-0.437,0.127-0.501,0.577-0.318c0.169,0.069,0.334,0.147,0.512,0.202
+                       c0.088,0.03,0.189-0.006,0.246-0.078c0.06-0.071,0.065-0.161,0.013-0.23c-0.05-0.067-0.132-0.161-0.197-0.161
+                       c-0.26,0.004-0.279-0.317-0.588-0.278c-0.318,0.038-0.499-0.266-0.777-0.366c-0.031-0.011-0.046-0.121-0.022-0.168
+                       c0.094-0.187,0.024-0.344-0.157-0.415c-0.311-0.122-0.412-0.369-0.584-0.584c-0.16-0.202-0.151-0.369-0.044-0.567
+                       c0.087-0.156,0.127-0.175,0.299-0.056c0.074,0.051,0.129,0.142,0.225,0.08c0.141-0.092,0.26,0.065,0.413-0.006
+                       c-0.115-0.217-0.387-0.355-0.402-0.626c-0.009-0.193,0.044-0.293,0.261-0.246c0.272,0.055,0.428,0.032,0.538-0.228
+                       c0.096-0.226,0.259-0.249,0.516-0.175c0.149,0.042,0.261,0.187,0.443,0.131c0.084-0.078,0.038-0.155,0.007-0.228
+                       c-0.069-0.167-0.084-0.313,0.115-0.433c0.091-0.055,0.153-0.15,0.213-0.237c0.204-0.306,0.166-0.408-0.205-0.564
+                       c-0.043-0.018-0.094-0.021-0.134-0.039c-0.177-0.081-0.201-0.171-0.091-0.348c0.034-0.054,0.084-0.096,0.123-0.138
+                       c-0.026-0.167-0.204-0.169-0.314-0.222c-0.235-0.11-0.457-0.202-0.442-0.485c0.002-0.071-0.063-0.16-0.127-0.211
+                       c-0.16-0.131-0.148-0.271-0.123-0.446c0.048-0.326,0.026-0.33,0.419-0.302c0.086,0.006,0.134-0.004,0.141-0.087
+                       c0.063-0.643,0.304-1.001,0.973-1.251c0.259-0.096,0.388-0.198,0.414-0.424c0.009-0.102,0.033-0.202,0.062-0.302
+                       c0.043-0.144,0.132-0.169,0.316-0.131c0.251,0.051,0.464,0.204,0.735,0.2c0.04,0,0.093-0.03,0.117-0.061
+                       c0.022-0.029,0.031-0.098,0.013-0.11c-0.249-0.165-0.298-0.35-0.122-0.584c0.066-0.088,0.072-0.194-0.004-0.289
+                       c-0.132-0.159-0.132-0.345-0.142-0.528c-0.005-0.079-0.009-0.19,0.043-0.233c0.349-0.273,0.308-0.644,0.358-0.994
+                       c0.022-0.14,0.081-0.273,0.187-0.391c0.175-0.19,0.256-0.215,0.593-0.1c0.127,0.045,0.228,0.065,0.266-0.082
+                       c0.034-0.129,0.146-0.206,0.247-0.291c0.048-0.041,0.105-0.104,0.162-0.106c0.284-0.013,0.552,0.063,0.822,0.129
+                       c0.14,0.036,0.263,0.091,0.304,0.229c0.005,0.019,0.014,0.039,0.022,0.059c0.04,0.102,0.124,0.102,0.227,0.071
+                       c0.189-0.054,0.311,0.021,0.408,0.157c0.103,0.139,0.211,0.277,0.096,0.45c-0.035,0.053-0.086,0.1-0.112,0.156
+                       c-0.081,0.168,0.016,0.335,0.22,0.374c0.043,0.012,0.094,0.016,0.138,0.014c0.118-0.006,0.232-0.018,0.38-0.031
+                       c0.086,0.2,0.149,0.417,0.268,0.611c0.156,0.255,0.142,0.463-0.112,0.656c-0.07,0.051-0.152,0.104-0.147,0.195
+                       c0,0.029,0.054,0.082,0.077,0.082c0.091-0.004,0.211-0.002,0.267-0.049c0.284-0.244,0.551-0.091,0.817-0.033
+                       c0.035,0.228-0.228,0.29-0.237,0.457c0.039,0.073,0.11,0.062,0.177,0.073c0.354,0.049,0.397,0.108,0.177,0.307
+                       c-0.19,0.168-0.295,0.367-0.388,0.575c-0.046,0.1-0.007,0.202,0.141,0.235c0.132,0.027,0.22,0.087,0.153,0.212
+                       c-0.063,0.116-0.103,0.229-0.041,0.352c0.118,0.226,0.125,0.469,0.138,0.721c0.309,0,0.586,0.075,0.842-0.08
+                       c0.055-0.034,0.132-0.018,0.191,0.029c0.248,0.188,0.309,0.381,0.211,0.656c-0.126,0.358-0.358,0.654-0.705,0.927
+                       c0.301,0.085,0.452,0.287,0.579,0.548c0.112-0.104,0.167-0.168,0.238-0.212c0.053-0.034,0.125-0.045,0.192-0.057
+                       c0.016-0.005,0.042,0.013,0.064,0.021c0.885,0.366,0.793,0.395,0.16,0.943c-0.23,0.199-0.514,0.407-0.869,0.48
+                       c-0.057,0.011-0.114,0.08-0.079,0.146c0.017,0.034,0.077,0.076,0.105,0.071c0.364-0.082,0.495,0.169,0.66,0.356
+                       c0.127,0.142,0.193,0.335,0.34,0.457c0.22,0.189,0.167,0.358,0.042,0.548c-0.145,0.228-0.373,0.413-0.463,0.67
+                       c0.351,0.209,0.806,0.173,1.157,0.387c0.103,0.062,0.223-0.036,0.338-0.047c0.162-0.016,0.275,0.086,0.251,0.222
+                       c-0.011,0.059-0.014,0.131-0.055,0.175c-0.186,0.204-0.347,0.457-0.59,0.591c-0.338,0.184-0.474,0.477-0.738,0.734
+                       c0.272-0.006,0.42-0.151,0.602-0.233c0.026-0.012,0.055-0.02,0.079-0.024c0.005-0.098,0.077-0.193,0.184-0.291
+                       c0.112-0.102,0.222-0.208,0.33-0.314c0.144-0.144,0.316-0.183,0.527-0.12c0.108,0.031,0.217,0.049,0.327,0.068
+                       c0.145,0.027,0.318,0.207,0.43,0.034c0.079-0.124-0.095-0.258-0.208-0.362c-0.148-0.137-0.33-0.242-0.268-0.479
+                       c0.217-0.825-0.174-1.532-0.672-2.2c-0.136-0.184-0.11-0.302,0.044-0.432c0.095-0.085,0.186-0.191,0.305-0.232
+                       c0.219-0.074,0.307-0.208,0.311-0.383c0.009-0.492,0.454-0.665,0.87-0.856c0.101-0.047,0.235-0.047,0.32,0.017
+                       c0.237,0.174,0.548,0.085,0.799,0.183v0.002h0.002c0.094,0.226,0.411,0.226,0.565,0.395c0.009,0.011,0.106-0.014,0.135-0.042
+                       c0.029-0.029,0.048-0.096,0.029-0.126c-0.033-0.059-0.091-0.135-0.154-0.149c-0.187-0.04-0.38-0.053-0.575-0.078
+                       c0-0.002,0-0.002-0.002-0.002c0.077-0.32-0.026-0.601-0.248-0.861c-0.074-0.084-0.077-0.173-0.002-0.259
+                       c0.101-0.112,0.184-0.24,0.305-0.328c0.123-0.091,0.278-0.163,0.433-0.205c0.149-0.037,0.237,0.106,0.362,0.153
+                       c0.103,0.038,0.217,0.129,0.301,0.114c0.577-0.116,0.711,0.222,0.708,0.552c0,0.304,0.15,0.424,0.432,0.519
+                       c0.397,0.135,0.722,0.355,0.994,0.632c0.206,0.209,0.239,0.309,0.04,0.494c-0.214,0.201-0.308,0.439-0.439,0.671
+                       c-0.132,0.238-0.064,0.584-0.471,0.693c-0.007,0-0.009,0.047,0.003,0.065c0.009,0.018,0.042,0.045,0.059,0.04
+                       c0.081-0.016,0.167-0.03,0.234-0.065c0.355-0.191,0.704-0.387,1.053-0.583c0.208-0.116,0.397-0.134,0.621-0.016
+                       c0.193,0.1,0.366,0.212,0.523,0.348c0.364,0.313,0.39,0.381,0,0.683c-0.295,0.232-0.365,0.584-0.688,0.79
+                       c-0.029,0.02-0.015,0.089-0.022,0.136c-0.019,0.135,0.105,0.249,0.242,0.215c0.079-0.018,0.156-0.047,0.235-0.07
+                       c0.203-0.067,0.395-0.207,0.631-0.081c0.333,0.175,0.665,0.358,0.833,0.674c0.023,0.045-0.02,0.142-0.068,0.185
+                       c-0.158,0.135-0.325,0.259-0.5,0.379c-0.244,0.165-0.319,0.373-0.272,0.628c0.022,0.118,0.005,0.24,0.033,0.353
+                       c0.098,0.391,0.247,0.773,0.022,1.173c-0.053,0.092,0.002,0.233,0.017,0.351c0.024,0.192,0.143,0.286,0.378,0.31
+                       c0.715,0.075,0.911,0.165,1.398,0.642c-0.06,0.193-0.251,0.307-0.402,0.444c-0.165,0.149-0.287,0.291-0.099,0.493
+                       c0.055,0.063,0.016,0.137-0.044,0.193c-0.092,0.086-0.213,0.157-0.175,0.298c0.064,0.245-0.404,0.523-0.035,0.702
+                       c0.263,0.129,0.445-0.224,0.683-0.334c0.23-0.104,0.383-0.131,0.603,0.01c0.182,0.116,0.344,0.23,0.481,0.388
+                       c0.256,0.295,0.277,0.303-0.035,0.591c-0.16,0.147-0.235,0.303-0.294,0.491c-0.087,0.273-0.194,0.623-0.166,0.819
+                       c0.017,0.1-0.002,0.188-0.09,0.255c-0.176,0.132-0.101,0.262,0.005,0.375c0.237,0.254,0.318,0.479-0.002,0.739
+                       c-0.139,0.114-0.169,0.291-0.11,0.466c0.038,0.113,0.046,0.23,0.062,0.348c0.046,0.308-0.04,0.559-0.411,0.699
+                       c-0.096,0.038-0.167,0.12-0.235,0.171c-0.053,0.224,0.261,0.155,0.294,0.317c0.032,0.142,0.213,0.209,0.331,0.307
+                       c0.179,0.153,0.193,0.351-0.017,0.497c-0.351,0.242-0.313,0.577-0.371,0.885c-0.016,0.087,0.05,0.203-0.057,0.26
+                       c-0.285,0.153-0.412,0.359-0.421,0.648c-0.002,0.118-0.162,0.067-0.27,0.067c-0.31,0-0.371,0.029-0.391,0.249
+                       c-0.034,0.359-0.132,0.695-0.379,0.996c-0.047,0.055-0.04,0.142,0.041,0.19c0.081,0.052,0.16,0.021,0.217-0.039
+                       c0.201-0.208,0.445-0.36,0.772-0.387c0.156-0.011,0.261-0.073,0.334-0.182c0.094-0.131,0.239-0.192,0.412-0.224
+                       c0.222-0.039,0.38-0.151,0.557-0.277c0.354-0.255,0.775-0.444,1.171-0.654c0.034-0.018,0.139,0,0.149,0.024
+                       c0.136,0.275,0.529,0.302,0.709,0.559c0.223,0.318,0.3,0.462,0.081,0.743c-0.042,0.061-0.117,0.102-0.172,0.155
+                       c-0.229,0.236-0.356,0.505-0.153,0.777c0.168,0.223-0.029,0.348-0.102,0.51c-0.006,0-0.008-0.002-0.01-0.002
+                       c-0.002,0.002-0.005,0.004-0.005,0.006c-0.191-0.006-0.385-0.024-0.573-0.013c-0.144,0.008-0.266,0.08-0.319,0.202
+                       c-0.016,0.04-0.001,0.091,0.01,0.135c0.005,0.018,0.046,0.047,0.057,0.042c0.292-0.096,0.676-0.045,0.825-0.366h0.011
+                       c0-0.002,0-0.002,0.003-0.004c0.488,0.122,0.642,0.489,0.839,0.824c0.04,0.072,0.024,0.147-0.019,0.212
+                       c0.103-0.069,0.204-0.116,0.275-0.107c0.55,0.063,0.993-0.21,1.492-0.298c0.371-0.067,0.653-0.058,0.924,0.164
+                       c0.198,0.163,0.402,0.324,0.714,0.293c0.142-0.014,0.344,0.057,0.388-0.109c0.031-0.117-0.16-0.123-0.256-0.177
+                       c-0.265-0.143-0.196-0.418-0.316-0.621c-0.076-0.131,0.034-0.244,0.142-0.343c0.128-0.118,0.11-0.225-0.039-0.322
+                       c-0.071-0.05-0.132-0.112-0.205-0.156c-0.515-0.302-0.641-0.461-0.77-0.96c-0.05-0.187-0.193-0.311-0.402-0.395
+                       c-0.588-0.246-1.088-0.568-1.293-1.126c-0.053-0.139-0.184-0.192-0.309-0.268c-0.175-0.104-0.342-0.22-0.498-0.342
+                       c-0.15-0.12-0.181-0.258-0.026-0.404c0.101-0.096,0.201-0.195,0.278-0.307c0.244-0.355,0.492-0.707,0.521-1.143
+                       c0.015-0.224,0.114-0.237,0.333-0.075c0.046,0.034,0.075,0.104,0.121,0.109c0.138,0.011,0.108-0.089,0.096-0.152
+                       c-0.043-0.221,0.064-0.359,0.323-0.383c0.361-0.031,0.658-0.284,1.054-0.206c0.06,0.013,0.168-0.058,0.217-0.112
+                       c0.146-0.161,0.34-0.321,0.392-0.508c0.07-0.238,0.141-0.381,0.467-0.348c0.214,0.02,0.32-0.116,0.42-0.249
+                       c0.147-0.191,0.351-0.257,0.621-0.267c0.324-0.014,0.397-0.139,0.318-0.39c-0.09-0.287-0.349-0.395-0.641-0.502
+                       c-0.294-0.104-0.339-0.198-0.162-0.408c0.158-0.189,0.171-0.303-0.047-0.446c-0.263-0.175-0.489-0.404-0.775-0.542
+                       c-0.304-0.147-0.574-0.264-0.579-0.61c-0.005-0.158-0.18-0.262-0.316-0.369c-0.177-0.142-0.347-0.291-0.509-0.444
+                       c-0.103-0.096-0.04-0.256,0.11-0.318c0.029-0.012,0.055-0.022,0.087-0.029c0.174-0.036,0.398-0.022,0.455-0.203
+                       c0.085-0.259,0.034-0.52-0.189-0.724c-0.203-0.189-0.446-0.347-0.659-0.531c-0.103-0.086,0-0.281,0.15-0.302
+                       c0.089-0.014,0.18-0.022,0.268-0.018c0.175,0.01,0.34,0.2,0.505,0.069c0.096-0.075,0.089-0.238,0.146-0.351
+                       c0.055-0.106,0.198-0.167,0.301-0.112c0.316,0.183,0.55,0.089,0.777-0.113c0.057-0.051,0.141-0.082,0.217-0.124
+                       c-0.382-0.324-0.382-0.324-0.378-0.782c0.007-0.441,0.01-0.457,0.553-0.49c0.189-0.012,0.339-0.042,0.505-0.132
+                       c0.413-0.222,0.841-0.302,1.245,0.047c0.222,0.193,0.512,0.114,0.782,0.089c0.114-0.012,0.182-0.198,0.079-0.246
+                       c-0.636-0.3-0.457-0.845-0.571-1.3c-0.039-0.142,0.053-0.252,0.165-0.342c0.2-0.165,0.132-0.364,0.014-0.497
+                       c-0.2-0.224-0.312-0.529-0.542-0.683c-0.363-0.25-0.505-0.444-0.323-0.835c0.065-0.142-0.153-0.371-0.213-0.566
+                       c-0.102-0.332-0.053-0.395,0.378-0.554c0.421-0.156,0.625-0.517,0.483-0.857c-0.053-0.122-0.121-0.238-0.165-0.359
+                       c-0.057-0.156,0.112-0.303,0.318-0.287c0.031,0.002,0.07-0.004,0.088,0.01c0.402,0.277,0.667-0.007,0.966-0.163
+                       c0.162-0.085,0.216-0.2,0.077-0.31c-0.193-0.156-0.224-0.36-0.301-0.553c-0.174-0.432-0.081-0.717,0.409-0.85
+                       c0.431-0.118,0.706-0.401,1.079-0.57c0.237-0.106,0.344-0.277,0.306-0.515c-0.022-0.124-0.014-0.255,0.009-0.379
+                       c0.05-0.257,0.221-0.351,0.524-0.264c0.235,0.069,0.452,0.149,0.711,0.109c0.16-0.024,0.325,0.031,0.369,0.171
+                       c0.069,0.222,0.26,0.314,0.466,0.437c0.233,0.138,0.378,0.348,0.74,0.262c0.191-0.045,0.328,0.124,0.34,0.294
+                       c0.031,0.413-0.029,0.822-0.165,1.217c-0.384,1.114-0.228,0.814,0.443,1.561c0.069,0.081,0.233,0.116,0.264,0.199
+                       c0.096,0.259,0.285,0.308,0.564,0.241c0.086-0.022,0.182-0.024,0.274-0.027c0.143-0.002,0.246,0.124,0.156,0.209
+                       c-0.22,0.202-0.352,0.41-0.259,0.697c0.02,0.059-0.028,0.159-0.086,0.208c-0.491,0.422-0.588,1.054-1.165,1.434
+                       c0.459,0.206,0.465,0.21,0.674-0.018c0.328-0.357,0.775-0.559,1.258-0.719c0.026-0.008,0.06,0.004,0.091,0.004
+                       c0.244-0.006,0.191-0.424,0.549-0.279c0.191,0.075,0.354,0.206,0.581,0.218c0.088,0.004,0.182,0.024,0.263,0.057
+                       c0.093,0.038,0.124,0.129,0.073,0.198c-0.078,0.106-0.192,0.195-0.284,0.295c-0.079,0.086-0.096,0.175-0.039,0.285
+                       c0.19,0.353,0.184,0.357-0.049,0.534c-0.252,0.19-0.5,0.375-0.663,0.634c-0.084,0.134-0.215,0.254-0.351,0.354
+                       c-0.16,0.113-0.395,0.17-0.522,0.304c-0.186,0.198-0.308,0.439-0.452,0.659c0.015,0.185,0.201,0.178,0.331,0.22
+                       c0.133,0.045,0.196,0.211,0.382,0.155c0.17-0.182-0.05-0.446,0.127-0.585c0.191-0.153,0.466-0.23,0.703-0.342
+                       c0.081-0.037,0.169-0.064,0.239-0.113c0.254-0.178,0.516-0.173,0.751-0.003c0.239,0.178,0.518,0.258,0.81,0.333
+                       c0.122,0.031,0.201,0.164,0.108,0.251c-0.413,0.377-0.612,0.88-1.061,1.243c-0.221,0.18-0.481,0.306-0.706,0.484
+                       c0.074,0.23,0.375,0.348,0.357,0.614c-0.015,0.216,0.241,0.273,0.399,0.389c0.189,0.14,0.213,0.266,0.04,0.391
+                       c-0.239,0.175-0.443,0.342-0.406,0.644c0.019,0.166-0.132,0.272-0.296,0.361c-0.359,0.195-0.698,0.417-1.067,0.601
+                       c-0.201,0.102-0.301,0.246-0.39,0.411l0.013,0.013c0.38-0.073,0.794-0.015,1.131-0.246c0.145-0.1,0.357-0.129,0.518-0.048
+                       c0.276,0.133,0.458,0.008,0.656-0.116c0.121-0.075,0.246-0.153,0.382-0.204c0.28-0.105,0.59,0.022,0.586,0.286
+                       c-0.002,0.246,0.034,0.309,0.325,0.24c0.149-0.033,0.272-0.085,0.402-0.153c0.206-0.114,0.342-0.058,0.397,0.129
+                       c0.038,0.124,0.048,0.253,0.081,0.377c0.044,0.165,0.306,0.322,0.112,0.488c-0.203,0.172-0.363,0.429-0.722,0.421
+                       c-0.158-0.005-0.31,0.013-0.425,0.104c-0.219,0.175-0.395,0.399-0.643,0.53c-0.249,0.129-0.594,0.116-0.777,0.357l0.002,0.002
+                       c0.189-0.023,0.363-0.008,0.514,0.105c0.136,0.1,0.277,0.193,0.437,0.306c0.156-0.157,0.275-0.3,0.423-0.422
+                       c0.215-0.18,0.49-0.109,0.547,0.14c0.031,0.122,0.008,0.253,0.008,0.406c0.275,0.069,0.516-0.069,0.767-0.124
+                       c0.151-0.033,0.29-0.061,0.445-0.018c0.162,0.045,0.268,0.173,0.2,0.291c-0.167,0.304-0.344,0.601-0.512,0.903
+                       c-0.134,0.244-0.38,0.298-0.667,0.34c-0.556,0.082-0.949,0.417-1.374,0.695c-0.074,0.047-0.088,0.151-0.014,0.202
+                       c0.057,0.04,0.179,0.067,0.244,0.042c0.138-0.049,0.253-0.14,0.382-0.206c0.081-0.042,0.206-0.065,0.233,0.021
+                       c0.096,0.311,0.386,0.358,0.691,0.415c0.18,0.033,0.201,0.165,0.063,0.297c-0.123,0.116-0.261,0.218-0.378,0.335
+                       c-0.151,0.15-0.12,0.311,0.104,0.354c0.326,0.065,0.486,0.18,0.434,0.475c-0.015,0.089,0.104,0.153,0.182,0.106
+                       c0.453-0.281,0.681-0.057,0.951,0.238c0.204,0.224,0.053,0.324-0.031,0.524c-0.22,0.515-0.663,0.741-1.22,0.908
+                       c-0.251,0.078-0.47,0.225-0.7,0.349c-0.029,0.018-0.042,0.1-0.022,0.132c0.024,0.035,0.094,0.059,0.149,0.068
+                       c0.224,0.036,0.419-0.008,0.58-0.155c0.215-0.195,0.455-0.245,0.73-0.073c0.198,0.124,0.402,0.089,0.602-0.006
+                       c0.081-0.037,0.16-0.08,0.247-0.106c0.325-0.096,0.525,0.008,0.542,0.314c0.009,0.163-0.072,0.285,0.251,0.256
+                       c0.369-0.034,0.52,0.135,0.412,0.415c-0.225,0.579-0.586,1.062-1.391,1.202c0.088,0.139,0.172,0.273,0.255,0.406
+                       c0.086,0.142,0.215,0.171,0.378,0.104c0.111-0.047,0.208-0.11,0.32-0.149c0.211-0.07,0.382,0.03,0.351,0.213
+                       c-0.05,0.297-0.062,0.579-0.426,0.803c-0.384,0.238-0.679,0.591-0.982,0.912c-0.213,0.224-0.327,0.444-0.088,0.766
+                       c0.224,0.302,0.169,0.688-0.092,1.005c-0.09,0.114-0.182,0.22-0.055,0.344c0.026,0.027,0.057,0.047,0.088,0.063
+                       c0.081-0.02,0.189-0.032,0.355-0.04c0.187-0.011,0.339-0.045,0.504-0.131c0.414-0.222,0.842-0.302,1.244,0.047
+                       c0.224,0.193,0.514,0.115,0.784,0.088c0.114-0.011,0.182-0.198,0.079-0.245c-0.636-0.301-0.457-0.847-0.574-1.301
+                       c-0.035-0.142,0.056-0.251,0.168-0.342c0.2-0.164,0.132-0.364,0.015-0.497c-0.201-0.224-0.316-0.528-0.546-0.683
+                       c-0.364-0.249-0.505-0.444-0.32-0.835c0.064-0.142-0.153-0.371-0.213-0.566c-0.103-0.332-0.053-0.395,0.378-0.554
+                       c0.419-0.155,0.625-0.517,0.483-0.856c-0.053-0.122-0.121-0.238-0.165-0.36c-0.057-0.155,0.112-0.302,0.316-0.287
+                       c0.031,0.002,0.072-0.003,0.09,0.01c0.402,0.277,0.667-0.007,0.966-0.161c0.164-0.085,0.213-0.201,0.074-0.311
+                       c-0.191-0.155-0.222-0.36-0.299-0.552c-0.175-0.433-0.081-0.717,0.408-0.851c0.428-0.117,0.706-0.401,1.079-0.57
+                       c0.236-0.106,0.343-0.277,0.303-0.514c-0.019-0.124-0.015-0.255,0.011-0.38c0.048-0.257,0.219-0.351,0.524-0.263
+                       c0.235,0.067,0.452,0.149,0.708,0.108c0.161-0.024,0.327,0.031,0.37,0.171c0.07,0.222,0.261,0.315,0.467,0.437
+                       c0.231,0.138,0.378,0.349,0.74,0.262c0.192-0.045,0.327,0.124,0.34,0.297c0.029,0.41-0.029,0.819-0.165,1.214
+                       c-0.388,1.114-0.227,0.815,0.442,1.562c0.07,0.08,0.235,0.118,0.266,0.198c0.096,0.259,0.283,0.308,0.564,0.241
+                       c0.087-0.021,0.182-0.023,0.274-0.023c0.143-0.005,0.246,0.122,0.155,0.206c-0.22,0.202-0.351,0.413-0.26,0.697
+                       c0.02,0.059-0.026,0.16-0.084,0.208c-0.491,0.422-0.588,1.055-1.167,1.434c0.459,0.206,0.466,0.21,0.676-0.017
+                       c0.327-0.356,0.772-0.56,1.258-0.719c0.024-0.01,0.06,0.004,0.089,0.004c0.244-0.007,0.19-0.424,0.552-0.28
+                       c0.191,0.075,0.354,0.207,0.581,0.218c0.088,0.004,0.182,0.024,0.263,0.058c0.093,0.037,0.124,0.129,0.074,0.196
+                       c-0.08,0.107-0.195,0.195-0.287,0.295c-0.077,0.087-0.094,0.175-0.037,0.285c0.19,0.353,0.184,0.357-0.051,0.536
+                       c-0.249,0.189-0.498,0.373-0.66,0.633c-0.084,0.133-0.215,0.253-0.351,0.35c-0.162,0.116-0.395,0.173-0.522,0.306
+                       c-0.187,0.198-0.308,0.44-0.454,0.66c0.017,0.182,0.204,0.177,0.332,0.22c0.132,0.045,0.197,0.21,0.383,0.155
+                       c0.169-0.182-0.05-0.446,0.127-0.586c0.191-0.153,0.463-0.23,0.703-0.342c0.081-0.037,0.169-0.064,0.239-0.113
+                       c0.253-0.177,0.516-0.173,0.751-0.002c0.239,0.177,0.518,0.257,0.81,0.332c0.122,0.032,0.2,0.165,0.105,0.251
+                       c-0.411,0.378-0.61,0.882-1.058,1.246c-0.221,0.177-0.483,0.304-0.706,0.481c0.074,0.23,0.375,0.348,0.356,0.615
+                       c-0.014,0.215,0.241,0.272,0.399,0.388c0.189,0.14,0.214,0.267,0.041,0.391c-0.239,0.175-0.443,0.342-0.41,0.644
+                       c0.019,0.167-0.13,0.273-0.293,0.362c-0.359,0.194-0.698,0.416-1.067,0.601c-0.204,0.102-0.302,0.246-0.39,0.41l0.011,0.014
+                       c0.381-0.073,0.794-0.016,1.132-0.246c0.147-0.101,0.356-0.128,0.518-0.049c0.276,0.133,0.457,0.008,0.656-0.116
+                       c0.121-0.075,0.246-0.153,0.38-0.204c0.002,0,0.007,0,0.007-0.002c0.039-0.02,0.087-0.038,0.142-0.047
+                       c0.562-0.102,1.111-0.169,1.614,0.177c0.123,0.087,0.327,0.108,0.498,0.132c0.33,0.041,0.545-0.201,0.409-0.458
+                       c-0.098-0.186-0.294-0.342-0.296-0.564c-0.002-0.147-0.041-0.383,0.04-0.424c0.595-0.277,0.232-0.565,0.087-0.887
+                       c-0.161-0.358-0.235-0.745-0.342-1.118c-0.067-0.234,0.047-0.407,0.257-0.546c0.498-0.331,0.651-0.322,1.012-0.047
+                       c0.105,0.078,0.215,0.155,0.335,0.219c0.191,0.105,0.389,0.156,0.561-0.027c0.161-0.164,0.34-0.177,0.565-0.096
+                       c0.169,0.063,0.344,0.058,0.461-0.1c0.038-0.05,0.069-0.104,0.117-0.148c0.526-0.502,0.66-0.489,1.021,0.098
+                       c0.175,0.284,0.333,0.34,0.675,0.215c0.224-0.084,0.435-0.198,0.661-0.275c0.217-0.078,0.436,0.078,0.395,0.283
+                       c-0.055,0.261-0.15,0.516-0.196,0.779c-0.039,0.228-0.03,0.461-0.041,0.693c0.147,0.064,0.335,0.046,0.395-0.038
+                       c0.314-0.455,0.942-0.351,1.38-0.579c0.132-0.069,0.323,0.133,0.289,0.286c-0.056,0.242-0.177,0.456-0.355,0.644
+                       c-0.165,0.175-0.186,0.378-0.186,0.591c0,0.422,0.105,0.51,0.624,0.486c0.106-0.007,0.208-0.034,0.309-0.024
+                       c0.153,0.011,0.281,0.235,0.215,0.355c-0.031,0.053-0.055,0.117-0.108,0.151c-0.529,0.34-0.423,0.699-0.062,1.074
+                       c0.064,0.067,0.174,0.181,0.148,0.22c-0.299,0.458-0.043,1.085-0.624,1.451c-0.112,0.071-0.23,0.14-0.323,0.225
+                       c-0.193,0.182-0.193,0.357-0.015,0.565c0.063,0.071,0.143,0.132,0.206,0.204c0.17,0.205,0.351,0.26,0.621,0.101
+                       c0.636-0.382,1.363-0.218,2.059-0.209c0.193,0.002,0.285,0.171,0.301,0.326c0.043,0.44-0.086,0.837-0.54,1.101
+                       c-0.43,0.251-0.87,0.492-1.326,0.712c-0.177,0.085-0.252,0.183-0.276,0.34c-0.031,0.23,0.137,0.417,0.335,0.322
+                       c0.615-0.295,1.247,0.015,1.874-0.089c0.423-0.071,0.784,0.531,0.545,0.863c-0.279,0.395-0.652,0.731-1.214,0.801
+                       c-0.687,0.087-0.896,0.581-1.251,0.955c-0.029,0.029,0,0.122,0.039,0.159c0.035,0.038,0.121,0.069,0.179,0.063
+                       c0.11-0.014,0.208-0.071,0.313-0.107c0.002-0.018,0.002-0.035,0.005-0.052c0.022-0.141,0.081-0.276,0.186-0.394
+                       c0.175-0.19,0.256-0.215,0.593-0.1c0.127,0.045,0.228,0.065,0.265-0.08c0.033-0.129,0.147-0.206,0.244-0.292
+                       c0.05-0.042,0.108-0.103,0.165-0.107c0.285-0.013,0.553,0.063,0.823,0.131c0.141,0.036,0.263,0.091,0.304,0.228
+                       c0.005,0.02,0.014,0.038,0.021,0.058c0.041,0.104,0.125,0.102,0.228,0.073c0.189-0.056,0.311,0.02,0.408,0.155
+                       c0.103,0.139,0.211,0.279,0.096,0.45c-0.037,0.053-0.086,0.1-0.112,0.156c-0.081,0.168,0.016,0.335,0.22,0.377
+                       c0.046,0.008,0.093,0.015,0.139,0.013c0.117-0.008,0.231-0.02,0.382-0.033c0.084,0.2,0.146,0.42,0.265,0.611
+                       c0.158,0.257,0.141,0.465-0.112,0.656c-0.07,0.051-0.153,0.104-0.146,0.195c0,0.029,0.053,0.084,0.077,0.082
+                       c0.091-0.004,0.211,0,0.265-0.049c0.287-0.242,0.553-0.09,0.818-0.033c0.035,0.23-0.228,0.29-0.237,0.459
+                       c0.038,0.071,0.11,0.063,0.177,0.071c0.354,0.049,0.396,0.112,0.176,0.307c-0.186,0.168-0.294,0.368-0.387,0.577
+                       c-0.046,0.1-0.007,0.202,0.143,0.233c0.129,0.029,0.217,0.087,0.151,0.212c-0.063,0.116-0.103,0.229-0.041,0.352
+                       c0.118,0.226,0.127,0.471,0.138,0.721c0.309,0,0.586,0.075,0.842-0.08c0.055-0.032,0.132-0.018,0.193,0.029
+                       c0.246,0.19,0.307,0.383,0.208,0.656c-0.125,0.358-0.359,0.654-0.704,0.93c0.3,0.082,0.45,0.286,0.577,0.545
+                       c0.112-0.104,0.167-0.168,0.239-0.212c0.053-0.033,0.125-0.041,0.191-0.055c0.017-0.004,0.044,0.014,0.065,0.022
+                       c0.885,0.363,0.793,0.392,0.159,0.94c-0.229,0.2-0.514,0.409-0.867,0.48c-0.057,0.012-0.115,0.08-0.079,0.149
+                       c0.017,0.031,0.077,0.075,0.105,0.069c0.364-0.083,0.495,0.17,0.66,0.355c0.127,0.142,0.193,0.336,0.339,0.459
+                       c0.221,0.187,0.168,0.356,0.043,0.549c-0.145,0.226-0.373,0.412-0.464,0.669c0.351,0.207,0.806,0.173,1.157,0.384
+                       c0.103,0.063,0.222-0.036,0.338-0.045c0.165-0.016,0.275,0.086,0.251,0.22c-0.011,0.059-0.014,0.133-0.053,0.175
+                       c-0.189,0.206-0.347,0.457-0.593,0.591c-0.338,0.184-0.474,0.477-0.739,0.734c0.272-0.006,0.421-0.151,0.603-0.23
+                       c0.119-0.053,0.229-0.038,0.325,0.037c0.108,0.085,0.176,0.183,0.117,0.322c-0.191,0.438-0.547,0.724-1.043,0.879
+                       c-0.143,0.045-0.253,0.112-0.332,0.21c-0.084,0.112-0.077,0.236,0.015,0.346c0.093,0.109,0.229,0.154,0.372,0.093
+                       c0.167-0.069,0.32-0.167,0.489-0.242c0.255-0.11,0.433-0.031,0.518,0.226c0.019,0.057,0.005,0.126,0.031,0.181
+                       c0.04,0.088,0.127,0.117,0.228,0.08c0.086-0.035,0.158-0.093,0.244-0.122c0.139-0.049,0.229-0.047,0.315,0.008
+                       c0.01-0.322,0.063-0.337,0.548-0.369c0.189-0.013,0.34-0.045,0.505-0.131c0.415-0.222,0.841-0.302,1.245,0.045
+                       c0.225,0.195,0.514,0.115,0.783,0.091c0.117-0.011,0.183-0.199,0.079-0.246c-0.636-0.3-0.455-0.845-0.572-1.303
+                       c-0.035-0.139,0.053-0.249,0.165-0.341c0.201-0.163,0.134-0.362,0.015-0.496c-0.198-0.223-0.313-0.528-0.542-0.685
+                       c-0.364-0.246-0.505-0.442-0.323-0.832c0.066-0.142-0.153-0.371-0.213-0.566c-0.103-0.333-0.053-0.395,0.38-0.555
+                       c0.418-0.155,0.624-0.517,0.481-0.856c-0.05-0.122-0.12-0.237-0.165-0.359c-0.056-0.156,0.115-0.303,0.318-0.287
+                       c0.031,0.002,0.069-0.004,0.09,0.008c0.402,0.278,0.665-0.006,0.964-0.161c0.162-0.085,0.215-0.2,0.077-0.313
+                       c-0.191-0.153-0.223-0.357-0.302-0.55c-0.172-0.432-0.078-0.717,0.41-0.85c0.43-0.118,0.705-0.401,1.078-0.57
+                       c0.239-0.106,0.344-0.277,0.306-0.515c-0.018-0.124-0.014-0.255,0.01-0.379c0.05-0.257,0.22-0.35,0.525-0.264
+                       c0.232,0.067,0.45,0.149,0.708,0.109c0.163-0.024,0.325,0.031,0.368,0.168c0.071,0.224,0.26,0.318,0.468,0.44
+                       c0.232,0.138,0.375,0.348,0.741,0.261c0.189-0.044,0.325,0.125,0.338,0.295c0.031,0.413-0.028,0.822-0.166,1.216
+                       c-0.385,1.114-0.224,0.813,0.443,1.562c0.071,0.081,0.237,0.118,0.266,0.199c0.097,0.259,0.284,0.308,0.564,0.239
+                       c0.088-0.02,0.182-0.022,0.272-0.024c0.147-0.002,0.246,0.124,0.156,0.208c-0.221,0.202-0.349,0.411-0.259,0.697
+                       c0.019,0.061-0.029,0.16-0.084,0.209c-0.492,0.422-0.59,1.054-1.167,1.434c0.459,0.206,0.467,0.21,0.675-0.018
+                       c0.327-0.355,0.775-0.56,1.257-0.719c0.028-0.01,0.061,0.004,0.092,0.004c0.244-0.008,0.191-0.424,0.551-0.279
+                       c0.191,0.075,0.354,0.206,0.58,0.218c0.091,0.004,0.184,0.023,0.263,0.055c0.096,0.039,0.125,0.131,0.077,0.198
+                       c-0.079,0.108-0.196,0.198-0.287,0.296c-0.076,0.087-0.095,0.176-0.035,0.285c0.186,0.353,0.184,0.357-0.053,0.535
+                       c-0.252,0.19-0.5,0.373-0.66,0.634c-0.084,0.133-0.215,0.253-0.354,0.35c-0.16,0.116-0.395,0.171-0.518,0.305
+                       c-0.189,0.2-0.309,0.441-0.454,0.661c0.014,0.182,0.2,0.177,0.332,0.22c0.132,0.042,0.193,0.21,0.38,0.155
+                       c0.173-0.182-0.047-0.446,0.127-0.585c0.191-0.154,0.466-0.23,0.705-0.342c0.079-0.037,0.17-0.064,0.239-0.114
+                       c0.251-0.177,0.517-0.172,0.748-0.002c0.241,0.177,0.52,0.256,0.814,0.333c0.121,0.031,0.198,0.164,0.105,0.251
+                       c-0.414,0.377-0.612,0.88-1.06,1.243c-0.222,0.179-0.483,0.306-0.705,0.483c0.073,0.23,0.373,0.348,0.354,0.615
+                       c-0.015,0.215,0.244,0.273,0.399,0.389c0.191,0.137,0.213,0.266,0.042,0.39c-0.238,0.176-0.442,0.34-0.408,0.644
+                       c0.019,0.165-0.132,0.273-0.296,0.362c-0.358,0.195-0.698,0.417-1.064,0.601c-0.203,0.102-0.301,0.246-0.389,0.411l0.011,0.013
+                       c0.378-0.073,0.792-0.015,1.128-0.246c0.149-0.1,0.357-0.128,0.52-0.051c0.277,0.136,0.457,0.012,0.655-0.113
+                       c0.123-0.075,0.246-0.154,0.383-0.205c0.282-0.104,0.593,0.022,0.587,0.285c-0.005,0.249,0.034,0.31,0.324,0.242
+                       c0.15-0.036,0.272-0.085,0.402-0.156c0.205-0.11,0.341-0.055,0.398,0.131c0.037,0.125,0.048,0.254,0.08,0.378
+                       c0.042,0.164,0.306,0.322,0.114,0.488c-0.204,0.171-0.366,0.428-0.722,0.42c-0.158-0.004-0.311,0.014-0.426,0.105
+                       c-0.22,0.175-0.397,0.399-0.646,0.528c-0.246,0.131-0.593,0.118-0.777,0.359l0.002,0.002c0.189-0.024,0.363-0.008,0.516,0.104
+                       c0.134,0.1,0.278,0.193,0.435,0.307c0.156-0.157,0.278-0.3,0.423-0.422c0.217-0.181,0.49-0.112,0.549,0.139
+                       c0.03,0.122,0.006,0.253,0.006,0.407c0.277,0.068,0.516-0.069,0.768-0.124c0.15-0.036,0.288-0.061,0.444-0.018
+                       c0.163,0.045,0.268,0.171,0.201,0.291c-0.165,0.304-0.342,0.601-0.509,0.903c-0.136,0.244-0.383,0.297-0.67,0.34
+                       c-0.555,0.082-0.95,0.417-1.373,0.695c-0.073,0.047-0.088,0.151-0.016,0.202c0.06,0.039,0.182,0.066,0.246,0.042
+                       c0.136-0.049,0.251-0.14,0.38-0.207c0.081-0.041,0.208-0.064,0.235,0.022c0.097,0.311,0.388,0.358,0.691,0.415
+                       c0.18,0.033,0.2,0.164,0.064,0.297c-0.121,0.115-0.261,0.218-0.38,0.335c-0.149,0.149-0.12,0.311,0.105,0.353
+                       c0.327,0.063,0.488,0.181,0.435,0.476c-0.016,0.088,0.105,0.153,0.18,0.104c0.457-0.279,0.683-0.057,0.951,0.24
+                       c0.204,0.221,0.056,0.324-0.031,0.524c-0.217,0.515-0.659,0.74-1.216,0.909c-0.252,0.075-0.474,0.224-0.702,0.348
+                       c-0.031,0.016-0.045,0.1-0.023,0.131c0.026,0.036,0.093,0.061,0.148,0.069c0.224,0.036,0.421-0.008,0.584-0.155
+                       c0.215-0.198,0.454-0.246,0.729-0.073c0.196,0.124,0.402,0.089,0.603-0.006c0.079-0.038,0.158-0.08,0.244-0.106
+                       c0.325-0.097,0.526,0.006,0.545,0.314c0.01,0.163-0.072,0.285,0.252,0.256c0.365-0.034,0.518,0.135,0.408,0.414
+                       c-0.222,0.579-0.586,1.061-1.389,1.203c0.086,0.139,0.172,0.272,0.254,0.406c0.086,0.142,0.217,0.171,0.376,0.104
+                       c0.111-0.047,0.209-0.11,0.322-0.149c0.213-0.073,0.385,0.029,0.354,0.213c-0.05,0.297-0.065,0.579-0.428,0.803
+                       c-0.189,0.118-0.354,0.261-0.512,0.415c0.464,0.251,0.939,0.503,1.422,0.756c0.057,0.014,0.127,0.045,0.187,0.056
+                       c0.081,0.015,0.167-0.016,0.165-0.083c-0.009-0.532,0.445-0.87,0.751-1.269c0.046-0.062,0.175-0.144,0.222-0.129
+                       c0.32,0.112,0.671-0.02,0.992,0.113c0.268,0.114,0.285,0.089,0.421-0.15c0.062-0.109,0.098-0.227,0.151-0.34
+                       c0.04-0.089,0.224-0.1,0.182-0.251c-0.204-0.118-0.478-0.075-0.708-0.23c-0.287-0.195-0.512-0.378-0.694-0.662
+                       c-0.172-0.273-0.38-0.505-0.373-0.835c0.006-0.135-0.084-0.273-0.126-0.41c-0.037-0.118-0.074-0.236-0.101-0.355
+                       c-0.02-0.083,0-0.167,0.081-0.222c0.091-0.061,0.176-0.021,0.266,0.023c0.396,0.199,0.503,0.165,0.576-0.228
+                       c0.037-0.204,0.193-0.322,0.337-0.455c0.084-0.08,0.213-0.091,0.339-0.059c0.137,0.031,0.271,0.064,0.405,0.097
+                       c0.026-0.053,0.055-0.088,0.057-0.123c0.011-0.438,0.129-0.502,0.59-0.319c0.176,0.069,0.347,0.144,0.529,0.203
+                       c0.093,0.029,0.196-0.006,0.255-0.078s0.065-0.163,0.011-0.234c-0.049-0.064-0.136-0.159-0.203-0.159
+                       c-0.268,0.004-0.287-0.318-0.608-0.279c-0.327,0.039-0.514-0.267-0.799-0.364c-0.031-0.012-0.047-0.122-0.021-0.169
+                       c0.093-0.186,0.024-0.344-0.165-0.417c-0.32-0.12-0.423-0.369-0.601-0.583c-0.167-0.2-0.156-0.369-0.043-0.566
+                       c0.087-0.155,0.129-0.175,0.307-0.055c0.077,0.051,0.134,0.142,0.231,0.08c0.147-0.093,0.271,0.063,0.428-0.007
+                       c-0.121-0.217-0.4-0.355-0.415-0.625c-0.009-0.193,0.046-0.293,0.268-0.249c0.283,0.055,0.443,0.031,0.557-0.229
+                       c0.097-0.223,0.263-0.246,0.531-0.173c0.152,0.042,0.268,0.185,0.457,0.129c0.086-0.074,0.04-0.152,0.007-0.227
+                       c-0.072-0.167-0.086-0.311,0.117-0.431c0.094-0.055,0.16-0.151,0.22-0.238c0.212-0.306,0.171-0.41-0.212-0.565
+                       c-0.043-0.018-0.094-0.02-0.136-0.038c-0.182-0.08-0.208-0.171-0.094-0.351c0.033-0.051,0.086-0.092,0.125-0.135
+                       c-0.026-0.167-0.208-0.169-0.323-0.222c-0.239-0.112-0.471-0.203-0.457-0.486c0.002-0.071-0.063-0.159-0.129-0.213
+                       c-0.166-0.129-0.153-0.268-0.127-0.443c0.05-0.326,0.029-0.331,0.433-0.303c0.086,0.005,0.136-0.004,0.145-0.086
+                       c0.063-0.644,0.314-1.001,1.002-1.252c0.266-0.095,0.399-0.196,0.426-0.424c0.011-0.102,0.035-0.201,0.064-0.301
+                       c0.046-0.144,0.134-0.169,0.327-0.132c0.259,0.049,0.48,0.204,0.754,0.2c0.042-0.002,0.097-0.031,0.121-0.059
+                       c0.022-0.029,0.034-0.098,0.015-0.112c-0.259-0.164-0.307-0.35-0.127-0.583c0.068-0.089,0.074-0.195-0.004-0.289
+                       c-0.136-0.159-0.136-0.346-0.147-0.53c-0.005-0.078-0.009-0.189,0.046-0.23c0.359-0.275,0.316-0.644,0.368-0.994
+                       c0.022-0.14,0.084-0.276,0.193-0.391c0.177-0.193,0.263-0.216,0.61-0.1c0.132,0.042,0.235,0.064,0.272-0.083
+                       c0.035-0.129,0.151-0.206,0.254-0.29c0.049-0.042,0.11-0.105,0.169-0.106c0.292-0.016,0.569,0.059,0.847,0.129
+                       c0.145,0.035,0.272,0.091,0.312,0.228c0.006,0.02,0.015,0.038,0.024,0.057c0.043,0.104,0.129,0.102,0.232,0.073
+                       c0.196-0.055,0.323,0.02,0.423,0.156c0.104,0.141,0.215,0.279,0.097,0.452c-0.035,0.053-0.088,0.1-0.117,0.155
+                       c-0.084,0.169,0.02,0.332,0.227,0.375c0.048,0.011,0.096,0.016,0.144,0.014c0.122-0.007,0.241-0.021,0.394-0.032
+                       c0.087,0.2,0.151,0.417,0.273,0.611c0.163,0.255,0.148,0.464-0.116,0.654c-0.071,0.053-0.156,0.105-0.15,0.195
+                       c0.002,0.031,0.055,0.085,0.081,0.085c0.094-0.005,0.215-0.003,0.272-0.05c0.294-0.243,0.569-0.09,0.841-0.033
+                       c0.039,0.229-0.233,0.289-0.244,0.457c0.039,0.072,0.116,0.063,0.184,0.072c0.364,0.051,0.409,0.11,0.182,0.306
+                       c-0.193,0.168-0.303,0.369-0.399,0.577c-0.048,0.1-0.007,0.202,0.146,0.235c0.134,0.028,0.227,0.085,0.158,0.213
+                       c-0.065,0.116-0.109,0.228-0.043,0.351c0.121,0.224,0.129,0.468,0.143,0.721c0.318,0,0.603,0.075,0.867-0.08
+                       c0.056-0.033,0.137-0.018,0.199,0.029c0.256,0.189,0.316,0.381,0.215,0.655c-0.129,0.359-0.37,0.654-0.727,0.929
+                       c0.311,0.082,0.466,0.287,0.595,0.546c0.117-0.102,0.175-0.167,0.248-0.213c0.053-0.033,0.127-0.041,0.197-0.055
+                       c0.018-0.004,0.044,0.014,0.066,0.022c0.911,0.363,0.818,0.393,0.165,0.941c-0.236,0.2-0.531,0.408-0.896,0.479
+                       c-0.057,0.013-0.117,0.082-0.079,0.149c0.016,0.031,0.079,0.075,0.108,0.069c0.375-0.08,0.509,0.171,0.68,0.355
+                       c0.13,0.144,0.2,0.336,0.349,0.46c0.229,0.188,0.174,0.357,0.045,0.548c-0.151,0.228-0.385,0.412-0.476,0.67
+                       c0.362,0.208,0.83,0.173,1.194,0.386c0.105,0.061,0.229-0.035,0.344-0.047c0.169-0.015,0.285,0.087,0.26,0.22
+                       c-0.011,0.063-0.014,0.134-0.054,0.177c-0.053,0.053-0.103,0.114-0.153,0.171c0.284-0.068,0.571-0.033,0.843,0.204
+                       c0.225,0.193,0.515,0.116,0.785,0.089c0.114-0.011,0.181-0.198,0.078-0.246c-0.635-0.297-0.457-0.845-0.573-1.3
+                       c-0.035-0.142,0.055-0.251,0.167-0.342c0.201-0.161,0.132-0.363,0.013-0.497c-0.199-0.224-0.314-0.528-0.542-0.684
+                       c-0.364-0.249-0.505-0.442-0.323-0.834c0.066-0.142-0.151-0.371-0.211-0.564c-0.105-0.336-0.053-0.397,0.378-0.557
+                       c0.418-0.153,0.624-0.515,0.481-0.857c-0.05-0.119-0.12-0.237-0.165-0.359c-0.056-0.153,0.114-0.302,0.317-0.286
+                       c0.032,0.002,0.072-0.003,0.091,0.011c0.402,0.277,0.667-0.007,0.966-0.163c0.163-0.086,0.213-0.202,0.074-0.313
+                       c-0.192-0.155-0.223-0.359-0.301-0.551c-0.173-0.431-0.08-0.717,0.407-0.851c0.431-0.117,0.706-0.399,1.081-0.568
+                       c0.237-0.108,0.344-0.277,0.303-0.514c-0.018-0.124-0.014-0.258,0.01-0.38c0.05-0.259,0.22-0.353,0.525-0.263
+                       c0.235,0.067,0.452,0.147,0.708,0.108c0.162-0.024,0.327,0.031,0.371,0.169c0.069,0.224,0.26,0.314,0.466,0.438
+                       c0.232,0.137,0.378,0.348,0.741,0.261c0.191-0.045,0.325,0.124,0.34,0.297c0.029,0.413-0.03,0.821-0.166,1.216
+                       c-0.387,1.112-0.227,0.813,0.443,1.562c0.069,0.078,0.235,0.115,0.263,0.194c0.098,0.262,0.284,0.309,0.566,0.243
+                       c0.086-0.02,0.18-0.025,0.27-0.025c0.147-0.002,0.248,0.122,0.156,0.207c-0.22,0.202-0.35,0.412-0.259,0.697
+                       c0.019,0.059-0.026,0.159-0.084,0.208c-0.49,0.424-0.588,1.057-1.167,1.434c0.46,0.206,0.467,0.21,0.675-0.016
+                       c0.327-0.357,0.775-0.561,1.258-0.721c0.026-0.006,0.062,0.007,0.09,0.007c0.244-0.01,0.191-0.425,0.549-0.283
+                       c0.14,0.055,0.261,0.136,0.405,0.182c0.08-0.055,0.176-0.103,0.251-0.164c0.117-0.096,0.294-0.138,0.435-0.211
+                       c0.197-0.104,0.201-0.151,0.065-0.342c-0.169-0.243-0.169-0.241,0.06-0.437c0.06-0.049,0.098-0.12,0.165-0.157
+                       c0.608-0.348,0.572-0.478,1.224-0.067c0.112,0.071,0.229,0.131,0.34,0.193c0.2-0.078,0.045-0.151,0.021-0.222
+                       c-0.038-0.114-0.105-0.224-0.11-0.338c-0.002-0.09,0.067-0.19-0.033-0.261c-0.263-0.191-0.175-0.364,0.022-0.542
+                       c0.112-0.102,0.222-0.209,0.33-0.315c0.143-0.144,0.316-0.182,0.526-0.121c0.108,0.033,0.217,0.05,0.327,0.07
+                       c0.145,0.027,0.318,0.207,0.43,0.032c0.079-0.125-0.096-0.256-0.208-0.36c-0.148-0.137-0.332-0.242-0.268-0.479
+                       c0.22-0.826-0.174-1.532-0.672-2.2c-0.136-0.184-0.11-0.302,0.044-0.432c0.095-0.085,0.186-0.191,0.306-0.23
+                       c0.217-0.076,0.307-0.209,0.311-0.384c0.009-0.493,0.454-0.666,0.87-0.857c0.101-0.046,0.235-0.046,0.322,0.018
+                       c0.236,0.171,0.547,0.084,0.798,0.183v0.002h0.002c0.094,0.225,0.411,0.225,0.564,0.395c0.01,0.011,0.108-0.014,0.137-0.042
+                       c0.027-0.029,0.047-0.096,0.027-0.127c-0.033-0.059-0.09-0.135-0.152-0.149c-0.189-0.039-0.382-0.052-0.577-0.076v-0.002h-0.002
+                       c0.077-0.32-0.026-0.602-0.248-0.861c-0.074-0.085-0.077-0.173-0.002-0.26c0.101-0.113,0.184-0.239,0.306-0.328
+                       c0.122-0.09,0.277-0.161,0.433-0.202c0.151-0.039,0.237,0.102,0.362,0.151c0.103,0.038,0.217,0.129,0.301,0.114
+                       c0.577-0.118,0.711,0.222,0.708,0.552c0,0.304,0.15,0.422,0.432,0.519c0.397,0.135,0.722,0.355,0.994,0.632
+                       c0.206,0.209,0.239,0.309,0.04,0.493c-0.214,0.202-0.308,0.44-0.439,0.672c-0.132,0.238-0.064,0.584-0.47,0.69
+                       c-0.008,0.002-0.01,0.047,0.002,0.066c0.009,0.018,0.045,0.045,0.06,0.04c0.081-0.015,0.167-0.029,0.234-0.066
+                       c0.355-0.189,0.706-0.384,1.053-0.582c0.205-0.116,0.397-0.133,0.621-0.015c0.193,0.1,0.366,0.212,0.524,0.348
+                       c0.363,0.312,0.389,0.381,0,0.683c-0.296,0.232-0.366,0.584-0.689,0.79c-0.029,0.019-0.015,0.089-0.022,0.135
+                       c-0.019,0.136,0.105,0.249,0.242,0.218c0.079-0.02,0.156-0.049,0.235-0.073c0.203-0.067,0.394-0.206,0.631-0.08
+                       c0.333,0.175,0.665,0.358,0.832,0.672c0.024,0.047-0.018,0.144-0.066,0.187c-0.158,0.133-0.325,0.259-0.5,0.379
+                       c-0.244,0.165-0.32,0.373-0.272,0.628c0.022,0.118,0.004,0.24,0.033,0.353c0.099,0.391,0.247,0.772,0.022,1.172
+                       c-0.053,0.093,0.002,0.232,0.017,0.348c0.026,0.193,0.143,0.289,0.378,0.313c0.715,0.075,0.911,0.165,1.398,0.642
+                       c-0.06,0.192-0.251,0.306-0.402,0.444c-0.165,0.149-0.286,0.29-0.101,0.493c0.055,0.062,0.017,0.135-0.042,0.193
+                       c-0.091,0.086-0.213,0.157-0.175,0.298c0.065,0.244-0.404,0.523-0.035,0.7c0.266,0.131,0.444-0.222,0.683-0.331
+                       c0.23-0.104,0.383-0.131,0.603,0.008c0.182,0.116,0.344,0.232,0.481,0.387c0.256,0.297,0.277,0.304-0.035,0.593
+                       c-0.16,0.147-0.235,0.302-0.294,0.491c-0.087,0.271-0.194,0.623-0.166,0.817c0.017,0.102-0.002,0.191-0.09,0.257
+                       c-0.176,0.131-0.101,0.261,0.007,0.375c0.235,0.253,0.316,0.479-0.004,0.739c-0.139,0.11-0.169,0.291-0.11,0.466
+                       c0.038,0.113,0.048,0.23,0.064,0.348c0.043,0.308-0.042,0.557-0.413,0.699c-0.095,0.035-0.167,0.119-0.235,0.169
+                       c-0.053,0.226,0.261,0.157,0.294,0.317c0.031,0.144,0.215,0.209,0.331,0.309c0.179,0.153,0.196,0.35-0.017,0.497
+                       c-0.349,0.242-0.313,0.575-0.371,0.885c-0.016,0.087,0.05,0.203-0.057,0.258c-0.285,0.155-0.411,0.362-0.421,0.648
+                       c-0.002,0.119-0.163,0.067-0.27,0.069c-0.311,0-0.371,0.029-0.391,0.249c-0.034,0.359-0.132,0.695-0.379,0.996
+                       c-0.047,0.055-0.038,0.141,0.041,0.19c0.081,0.05,0.162,0.02,0.217-0.039c0.2-0.209,0.445-0.36,0.772-0.387
+                       c0.155-0.011,0.261-0.073,0.334-0.182c0.094-0.134,0.239-0.193,0.412-0.224c0.222-0.04,0.38-0.151,0.557-0.277
+                       c0.354-0.255,0.775-0.446,1.171-0.655c0.034-0.017,0.14,0,0.149,0.022c0.136,0.278,0.528,0.302,0.711,0.562
+                       c0.222,0.318,0.299,0.462,0.081,0.743c-0.043,0.061-0.118,0.1-0.173,0.155c-0.23,0.235-0.356,0.505-0.153,0.776
+                       c0.168,0.224-0.029,0.348-0.102,0.511c-0.006,0-0.008-0.002-0.01-0.002c-0.002,0.002-0.002,0.004-0.005,0.006
+                       c-0.191-0.006-0.382-0.022-0.573-0.011c-0.144,0.006-0.266,0.078-0.318,0.199c-0.017,0.04-0.002,0.091,0.009,0.134
+                       c0.005,0.02,0.046,0.049,0.057,0.045c0.292-0.096,0.676-0.045,0.825-0.366h0.013c0-0.002,0-0.002,0.002-0.004
+                       c0.488,0.122,0.643,0.488,0.839,0.823c0.053,0.09,0.009,0.185-0.057,0.264c-0.067,0.074-0.132,0.155-0.206,0.226
+                       c-0.277,0.267-0.397,0.532-0.182,0.894c0.149,0.249,0.053,0.397-0.299,0.477c-0.586,0.134-0.987,0.428-1.26,0.868
+                       c-0.182,0.291-0.32,0.577-0.18,0.929c0.136,0.338-0.049,0.653-0.284,0.928c-0.112,0.133-0.269,0.241-0.395,0.369
+                       c-0.129,0.127-0.249,0.23-0.485,0.222c-0.27-0.007-0.048,0.317-0.285,0.368c-0.098,0.02-0.314,0.016-0.268,0.091
+                       c0.167,0.277-0.026,0.499-0.077,0.743c-0.033,0.151,0.103,0.281,0.283,0.29c0.229,0.01,0.454-0.005,0.628-0.151
+                       c0.213-0.175,0.423-0.35,0.751-0.261c0.072-0.033,0.149-0.065,0.23-0.096c0.151-0.133,0.34-0.217,0.54-0.287
+                       c0.103-0.1,0.162-0.221,0.184-0.392c0.017-0.155,0.055-0.309,0.101-0.46c0.066-0.222,0.203-0.257,0.494-0.202
+                       c0.397,0.078,0.73,0.313,1.152,0.306c0.065-0.002,0.146-0.047,0.184-0.09c0.033-0.045,0.05-0.151,0.022-0.169
+                       c-0.391-0.251-0.466-0.537-0.193-0.892c0.105-0.135,0.114-0.297-0.007-0.438c-0.208-0.246-0.208-0.53-0.223-0.807
+                       c-0.007-0.12-0.014-0.291,0.069-0.355c0.548-0.417,0.484-0.981,0.565-1.516c0.031-0.214,0.125-0.417,0.292-0.597
+                       c0.272-0.291,0.402-0.326,0.93-0.151c0.203,0.066,0.358,0.097,0.418-0.127c0.053-0.194,0.23-0.312,0.386-0.443
+                       c0.079-0.063,0.167-0.158,0.257-0.162c0.447-0.02,0.871,0.096,1.294,0.198c0.22,0.055,0.413,0.14,0.475,0.35
+                       c0.01,0.029,0.024,0.057,0.037,0.087c0.064,0.159,0.196,0.157,0.354,0.11c0.299-0.082,0.492,0.032,0.645,0.238
+                       c0.16,0.215,0.327,0.426,0.149,0.69c-0.056,0.079-0.135,0.15-0.177,0.237c-0.127,0.255,0.029,0.509,0.347,0.572
+                       c0.072,0.014,0.145,0.022,0.22,0.018c0.182-0.008,0.366-0.027,0.597-0.047c0.134,0.304,0.232,0.636,0.419,0.929
+                       c0.248,0.391,0.225,0.708-0.174,1.002c-0.111,0.08-0.24,0.159-0.232,0.297c0.002,0.046,0.084,0.129,0.125,0.126
+                       c0.143-0.006,0.33-0.003,0.415-0.073c0.45-0.371,0.868-0.14,1.286-0.051c0.057,0.35-0.36,0.442-0.375,0.697
+                       c0.06,0.11,0.175,0.096,0.283,0.11c0.554,0.075,0.621,0.167,0.277,0.466c-0.296,0.257-0.463,0.564-0.61,0.878
+                       c-0.072,0.154-0.011,0.309,0.225,0.358c0.203,0.042,0.343,0.131,0.237,0.324c-0.098,0.177-0.164,0.351-0.063,0.536
+                       c0.182,0.344,0.196,0.717,0.217,1.101c0.485,0,0.918,0.113,1.323-0.124c0.086-0.049,0.207-0.028,0.303,0.045
+                       c0.39,0.29,0.481,0.583,0.33,1.001c-0.198,0.548-0.566,0.998-1.109,1.416c0.471,0.129,0.711,0.439,0.909,0.834
+                       c0.176-0.157,0.262-0.255,0.375-0.324c0.081-0.05,0.196-0.066,0.299-0.086c0.031-0.006,0.069,0.02,0.103,0.033
+                       c0.531,0.213,0.837,0.35,0.959,0.486c0.09,0.045,0.187,0.082,0.299,0.078c0.057-0.002,0.148,0.027,0.172,0.064
+                       c0.12,0.196,0.335,0.134,0.517,0.147c0.062,0.005,0.145-0.008,0.15-0.078c0.005-0.073-0.05-0.133-0.134-0.155
+                       c-0.045-0.013-0.095-0.006-0.145-0.011c-0.228-0.018-0.285-0.034-0.302-0.195c-0.023-0.26-0.222-0.393-0.459-0.479
+                       c-0.217-0.083-0.2-0.264-0.303-0.393c-0.02-0.028,0.024-0.118,0.066-0.144c0.17-0.103,0.278-0.255,0.465-0.35
+                       c0.134-0.071,0.181-0.091,0.32-0.008c0.208,0.123,0.444,0.219,0.687,0.294c0.112,0.033,0.181,0.108,0.293,0.149
+                       c0.077-0.155,0.118-0.297,0-0.461c-0.062-0.089-0.057-0.211-0.09-0.32c-0.04-0.13-0.125-0.226-0.303-0.226
+                       c-0.116,0.002-0.175-0.061-0.235-0.126c-0.206-0.234-0.421-0.454-0.729-0.604c-0.208-0.102-0.316-0.266-0.313-0.483
+                       c0.002-0.233-0.031-0.466-0.151-0.686c-0.112-0.208-0.011-0.404,0.096-0.613c-0.138-0.086-0.239-0.21-0.347-0.33
+                       c-0.193-0.218-0.201-0.255-0.009-0.438c0.209-0.202,0.33-0.223,0.645-0.123c0.046,0.013,0.086,0.045,0.132,0.051
+                       c0.071,0.008,0.124-0.028,0.158-0.078c0.033-0.054,0.035-0.101-0.026-0.144c-0.206-0.144-0.201-0.147-0.326-0.454
+                       c-0.011-0.035-0.057-0.064-0.09-0.092c-0.067-0.055-0.093-0.112-0.019-0.177c0.055-0.05,0.108-0.102,0.165-0.152
+                       c0.283-0.241,0.366-0.266,0.705-0.08c0.298,0.165,0.633,0.279,0.895,0.493c0.149,0.12,0.368,0.157,0.507,0.306
+                       c0.062,0.067,0.182,0.007,0.28-0.039c-0.168-0.177-0.404-0.289-0.572-0.466c-0.062-0.071-0.112-0.126-0.124-0.208
+                       c-0.01-0.069-0.034-0.122-0.12-0.163c-0.149-0.07-0.167-0.235-0.108-0.32c0.098-0.131-0.033-0.277,0.088-0.393
+                       c0.046-0.045,0.017-0.106-0.022-0.155c-0.176-0.222-0.26-0.473-0.306-0.732c-0.022-0.131-0.077-0.238-0.208-0.315
+                       c-0.053-0.031-0.1-0.069-0.148-0.106c-0.232-0.18-0.244-0.209-0.108-0.46c0.029-0.053,0.081-0.1,0.02-0.144
+                       c-0.153-0.11-0.245-0.255-0.342-0.394c-0.048-0.067-0.189-0.087-0.184-0.181c0.005-0.124,0.156-0.169,0.244-0.244
+                       c0.066-0.055,0.169-0.082,0.252-0.123c0.115-0.065,0.117-0.091,0.035-0.2c-0.103-0.142-0.103-0.14,0.029-0.256
+                       c0.033-0.029,0.055-0.071,0.093-0.096c0.351-0.206,0.331-0.281,0.715-0.047c0.064,0.04,0.134,0.075,0.198,0.112
+                       c0.116-0.049,0.026-0.089,0.01-0.131c-0.022-0.065-0.063-0.13-0.068-0.195c-0.002-0.053,0.037-0.112-0.022-0.153
+                       c-0.155-0.109-0.108-0.211,0.008-0.313c0.064-0.063,0.126-0.124,0.186-0.188c0.084-0.085,0.184-0.107,0.308-0.073
+                       c0.062,0.017,0.125,0.029,0.189,0.037c0.087,0.016,0.189,0.12,0.252,0.016c0.045-0.073-0.058-0.15-0.125-0.209
+                       c-0.088-0.078-0.196-0.137-0.16-0.277c0.12-0.481-0.117-0.89-0.415-1.276c-0.081-0.107-0.065-0.175,0.021-0.254
+                       c0.055-0.048,0.109-0.11,0.177-0.135c0.123-0.047,0.177-0.124,0.177-0.226c0-0.289,0.258-0.391,0.497-0.507
+                       c0.06-0.027,0.136-0.029,0.186,0.01c0.138,0.098,0.32,0.045,0.469,0.1c0.04-0.186-0.022-0.351-0.156-0.499
+                       c-0.044-0.049-0.046-0.102-0.002-0.151c0.055-0.067,0.103-0.142,0.174-0.195c0.07-0.053,0.16-0.096,0.248-0.122
+                       c0.087-0.022,0.14,0.061,0.213,0.086c0.061,0.022,0.127,0.073,0.177,0.065c0.335-0.071,0.414,0.124,0.419,0.315
+                       c0.002,0.177,0.09,0.245,0.255,0.3c0.235,0.078,0.426,0.202,0.588,0.361c0.122,0.12,0.141,0.178,0.026,0.289
+                       c-0.121,0.118-0.174,0.257-0.248,0.393c-0.074,0.142-0.031,0.341-0.266,0.408c-0.004,0-0.007,0.027,0,0.038
+                       c0.007,0.008,0.026,0.024,0.035,0.022c0.048-0.012,0.098-0.018,0.136-0.04c0.204-0.114,0.407-0.232,0.608-0.346
+                       c0.12-0.071,0.23-0.082,0.362-0.016c0.114,0.058,0.215,0.123,0.308,0.201c0.215,0.18,0.232,0.219,0.007,0.398
+                       c-0.169,0.136-0.207,0.342-0.391,0.465c-0.017,0.011-0.009,0.052-0.013,0.079c-0.009,0.081,0.065,0.144,0.144,0.125
+                       c0.045-0.012,0.09-0.03,0.136-0.045c0.117-0.04,0.227-0.122,0.365-0.052c0.197,0.101,0.393,0.203,0.493,0.387
+                       c0.014,0.027-0.01,0.084-0.038,0.109c-0.089,0.08-0.185,0.153-0.285,0.223c-0.144,0.099-0.184,0.221-0.153,0.369
+                       c0.013,0.069,0.005,0.14,0.022,0.207c0.062,0.224,0.152,0.446,0.026,0.681c-0.031,0.055,0.002,0.136,0.011,0.204
+                       c0.017,0.112,0.087,0.167,0.225,0.178c0.415,0.037,0.53,0.088,0.819,0.363c-0.033,0.114-0.141,0.181-0.227,0.262
+                       c-0.096,0.088-0.165,0.171-0.055,0.288c0.033,0.036,0.011,0.078-0.022,0.112c-0.053,0.051-0.125,0.093-0.101,0.177
+                       c0.041,0.14-0.229,0.306-0.014,0.408c0.156,0.073,0.259-0.133,0.396-0.199c0.133-0.063,0.223-0.081,0.35,0.002
+                       c0.108,0.066,0.205,0.131,0.284,0.219c0.153,0.173,0.168,0.177-0.014,0.346c-0.092,0.086-0.134,0.177-0.165,0.289
+                       c-0.048,0.157-0.109,0.364-0.089,0.477c0.01,0.057,0,0.11-0.05,0.151c-0.102,0.075-0.055,0.153,0.008,0.218
+                       c0.138,0.144,0.189,0.277,0.005,0.43c-0.079,0.067-0.096,0.171-0.058,0.273c0.022,0.065,0.03,0.134,0.041,0.202
+                       c0.029,0.177-0.019,0.327-0.235,0.409c-0.055,0.024-0.095,0.073-0.134,0.102c-0.029,0.131,0.153,0.088,0.175,0.184
+                       c0.019,0.082,0.127,0.118,0.196,0.175c0.105,0.089,0.118,0.204-0.004,0.291c-0.204,0.142-0.176,0.337-0.208,0.517
+                       c-0.007,0.051,0.032,0.118-0.029,0.153c-0.165,0.09-0.237,0.213-0.239,0.38c0,0.068-0.095,0.039-0.158,0.041
+                       c-0.181,0-0.215,0.018-0.224,0.147c-0.017,0.21-0.069,0.406-0.211,0.583c-0.026,0.034-0.022,0.083,0.026,0.112
+                       c0.048,0.029,0.093,0.008,0.127-0.024c0.114-0.124,0.253-0.214,0.444-0.23c0.092-0.01,0.151-0.045,0.195-0.109
+                       c0.053-0.078,0.136-0.116,0.237-0.133c0.129-0.024,0.22-0.091,0.323-0.167c0.203-0.151,0.444-0.266,0.674-0.391
+                       c0.018-0.011,0.081,0,0.088,0.014c0.081,0.159,0.309,0.173,0.419,0.32c0.134,0.184,0.18,0.268,0.055,0.434
+                       c-0.024,0.034-0.067,0.058-0.098,0.091c-0.132,0.137-0.203,0.295-0.081,0.452c0.098,0.131-0.014,0.204-0.055,0.3
+                       c-0.002,0-0.005-0.002-0.005-0.002c-0.002,0-0.002,0.002-0.002,0.004c-0.112-0.002-0.225-0.011-0.335-0.004
+                       c-0.084,0.006-0.156,0.049-0.184,0.12c-0.009,0.024,0,0.053,0.008,0.078c0.002,0.012,0.029,0.029,0.033,0.027
+                       c0.169-0.059,0.395-0.033,0.478-0.22h0.005c0-0.002,0.002-0.002,0.002-0.002c0.285,0.067,0.38,0.278,0.498,0.473
+                       c0.031,0.051,0.009,0.106-0.032,0.154c-0.038,0.046-0.073,0.092-0.117,0.133c-0.158,0.159-0.224,0.314-0.096,0.524
+                       c0.089,0.144,0.034,0.23-0.169,0.279c-0.34,0.083-0.571,0.258-0.724,0.515c-0.103,0.171-0.182,0.34-0.095,0.544
+                       c0.084,0.195-0.022,0.379-0.156,0.544c-0.065,0.078-0.153,0.141-0.228,0.217c-0.071,0.075-0.141,0.136-0.279,0.134
+                       c-0.158-0.004-0.024,0.184-0.162,0.215c-0.057,0.014-0.182,0.012-0.153,0.056c0.101,0.159-0.009,0.29-0.038,0.432
+                       c-0.017,0.088,0.062,0.165,0.167,0.167c0.134,0.004,0.266-0.007,0.365-0.091c0.129-0.108,0.254-0.22,0.465-0.151
+                       c0.011,0.002,0.038-0.002,0.046-0.012c0.222-0.272,0.69-0.237,0.905-0.518c0.019-0.025,0.089-0.033,0.132-0.029
+                       c0.138,0.011,0.007,0.212,0.182,0.194c0.055-0.004,0.105-0.011,0.145-0.002c0.177-0.039,0.397-0.019,0.561-0.006
+                       c0.499,0.042,0.94,0.018,1.364-0.233c0.137-0.081,0.355-0.061,0.517-0.085c0.145-0.189-0.108-0.222-0.136-0.33
+                       c-0.015-0.051-0.044-0.104-0.034-0.151c0.048-0.21,0.509-0.65,0.729-0.626c0.551,0.063,0.993-0.211,1.492-0.297
+                       c0.371-0.067,0.651-0.058,0.921,0.161c0.198,0.165,0.404,0.326,0.714,0.295c0.144-0.016,0.348,0.055,0.39-0.11
+                       c0.031-0.118-0.16-0.122-0.256-0.175c-0.264-0.147-0.196-0.42-0.315-0.623c-0.077-0.128,0.033-0.244,0.141-0.342
+                       c0.127-0.12,0.11-0.226-0.038-0.324c-0.072-0.047-0.133-0.112-0.206-0.155c-0.514-0.301-0.641-0.46-0.77-0.959
+                       c-0.05-0.189-0.196-0.311-0.402-0.397c-0.588-0.244-1.088-0.568-1.293-1.125c-0.053-0.14-0.184-0.193-0.309-0.267
+                       c-0.174-0.107-0.342-0.22-0.497-0.342c-0.153-0.122-0.182-0.259-0.026-0.406c0.1-0.096,0.2-0.193,0.277-0.304
+                       c0.244-0.358,0.492-0.711,0.521-1.144c0.015-0.223,0.116-0.239,0.333-0.076c0.046,0.033,0.077,0.106,0.119,0.108
+                       c0.142,0.011,0.111-0.087,0.098-0.151c-0.046-0.222,0.065-0.36,0.323-0.382c0.36-0.033,0.658-0.286,1.055-0.206
+                       c0.06,0.012,0.167-0.057,0.215-0.114c0.147-0.159,0.341-0.322,0.394-0.506c0.067-0.24,0.142-0.381,0.465-0.351
+                       c0.217,0.022,0.323-0.116,0.422-0.249c0.146-0.191,0.352-0.255,0.622-0.267c0.32-0.013,0.397-0.137,0.315-0.389
+                       c-0.088-0.286-0.347-0.396-0.641-0.501c-0.291-0.104-0.336-0.196-0.162-0.408c0.16-0.189,0.173-0.304-0.045-0.446
+                       c-0.263-0.177-0.488-0.404-0.775-0.542c-0.303-0.149-0.575-0.267-0.581-0.613c-0.002-0.157-0.18-0.259-0.314-0.368
+                       c-0.176-0.142-0.347-0.289-0.511-0.442c-0.1-0.098-0.038-0.257,0.112-0.32c0.03-0.011,0.056-0.02,0.087-0.027
+                       c0.172-0.036,0.399-0.024,0.457-0.202c0.084-0.26,0.031-0.521-0.189-0.725c-0.204-0.189-0.447-0.348-0.66-0.531
+                       c-0.103-0.088,0-0.281,0.151-0.304c0.088-0.011,0.18-0.02,0.268-0.015c0.174,0.008,0.339,0.196,0.504,0.066
+                       c0.094-0.073,0.087-0.236,0.146-0.35c0.055-0.106,0.198-0.167,0.299-0.108c0.318,0.182,0.553,0.088,0.779-0.116
+                       c0.057-0.051,0.142-0.08,0.217-0.122c-0.382-0.324-0.382-0.324-0.378-0.784c0.008-0.441,0.009-0.455,0.551-0.49
+                       c0.189-0.012,0.342-0.042,0.507-0.131c0.413-0.22,0.841-0.3,1.243,0.046c0.224,0.193,0.515,0.116,0.785,0.091
+                       c0.114-0.011,0.181-0.198,0.078-0.246c-0.635-0.3-0.457-0.848-0.573-1.302c-0.035-0.142,0.055-0.249,0.167-0.342
+                       c0.201-0.161,0.132-0.362,0.015-0.495c-0.201-0.224-0.316-0.528-0.545-0.686c-0.364-0.249-0.502-0.442-0.322-0.832
+                       c0.065-0.142-0.152-0.371-0.212-0.566c-0.103-0.332-0.054-0.395,0.378-0.554c0.418-0.155,0.624-0.517,0.483-0.858
+                       c-0.053-0.12-0.123-0.236-0.165-0.36c-0.058-0.153,0.112-0.3,0.317-0.287c0.029,0.002,0.07-0.002,0.089,0.012
+                       c0.402,0.277,0.667-0.007,0.966-0.163c0.162-0.086,0.213-0.202,0.074-0.313c-0.192-0.154-0.223-0.357-0.3-0.549
+                       c-0.174-0.433-0.081-0.717,0.41-0.851c0.428-0.118,0.705-0.401,1.078-0.57c0.237-0.108,0.344-0.277,0.306-0.514
+                       c-0.021-0.124-0.014-0.256,0.01-0.38c0.047-0.259,0.22-0.35,0.523-0.264c0.235,0.068,0.452,0.149,0.711,0.109
+                       c0.16-0.024,0.325,0.031,0.368,0.169c0.069,0.224,0.26,0.318,0.466,0.437c0.232,0.14,0.378,0.349,0.742,0.264
+                       c0.191-0.045,0.325,0.124,0.339,0.295c0.03,0.413-0.029,0.821-0.165,1.216c-0.387,1.112-0.227,0.813,0.443,1.562
+                       c0.069,0.078,0.235,0.115,0.266,0.195c0.095,0.261,0.281,0.31,0.564,0.241c0.086-0.019,0.182-0.022,0.272-0.024
+                       c0.143-0.002,0.246,0.125,0.156,0.209c-0.222,0.202-0.351,0.41-0.261,0.697c0.022,0.057-0.026,0.159-0.084,0.208
+                       c-0.49,0.422-0.588,1.055-1.167,1.434c0.459,0.204,0.467,0.209,0.678-0.018c0.327-0.357,0.775-0.562,1.258-0.719
+                       c0.024-0.008,0.06,0.005,0.09,0.005c0.244-0.01,0.189-0.425,0.551-0.283c0.191,0.078,0.354,0.207,0.58,0.22
+                       c0.088,0.004,0.182,0.022,0.263,0.055c0.094,0.04,0.125,0.131,0.074,0.198c-0.079,0.108-0.195,0.195-0.287,0.297
+                       c-0.077,0.087-0.093,0.175-0.035,0.284c0.189,0.354,0.184,0.358-0.05,0.535c-0.251,0.189-0.5,0.373-0.663,0.633
+                       c-0.084,0.133-0.215,0.255-0.351,0.353c-0.162,0.116-0.395,0.171-0.521,0.304c-0.187,0.198-0.309,0.442-0.456,0.662
+                       c0.017,0.182,0.204,0.177,0.333,0.217c0.134,0.045,0.196,0.211,0.382,0.158c0.171-0.183-0.05-0.446,0.127-0.586
+                       c0.191-0.153,0.463-0.233,0.703-0.343c0.081-0.036,0.171-0.065,0.239-0.112c0.254-0.178,0.516-0.173,0.751-0.002
+                       c0.239,0.175,0.52,0.255,0.811,0.332c0.121,0.031,0.2,0.162,0.104,0.249c-0.411,0.38-0.609,0.884-1.059,1.245
+                       c-0.22,0.178-0.483,0.306-0.706,0.481c0.074,0.232,0.373,0.352,0.357,0.617c-0.015,0.216,0.241,0.273,0.399,0.389
+                       c0.189,0.137,0.213,0.264,0.04,0.391c-0.239,0.175-0.442,0.339-0.406,0.643c0.017,0.165-0.134,0.272-0.296,0.362
+                       c-0.358,0.195-0.698,0.417-1.067,0.602c-0.204,0.1-0.301,0.245-0.389,0.41l0.011,0.012c0.38-0.071,0.794-0.014,1.131-0.244
+                       c0.147-0.103,0.357-0.13,0.52-0.052c0.275,0.134,0.457,0.01,0.655-0.113c0.122-0.075,0.246-0.153,0.382-0.204
+                       c0.28-0.106,0.592,0.019,0.586,0.284c-0.005,0.246,0.034,0.311,0.325,0.242c0.149-0.036,0.274-0.086,0.403-0.155
+                       c0.205-0.112,0.339-0.056,0.396,0.131c0.039,0.124,0.048,0.253,0.081,0.377c0.043,0.165,0.307,0.322,0.113,0.486
+                       c-0.204,0.173-0.366,0.43-0.723,0.422c-0.157-0.005-0.31,0.013-0.425,0.104c-0.217,0.173-0.395,0.399-0.644,0.528
+                       c-0.248,0.131-0.595,0.116-0.776,0.358l0.002,0.004c0.189-0.027,0.363-0.01,0.514,0.104c0.134,0.1,0.277,0.193,0.437,0.304
+                       c0.156-0.155,0.276-0.3,0.423-0.42c0.215-0.179,0.49-0.11,0.548,0.14c0.029,0.122,0.005,0.251,0.005,0.404
+                       c0.277,0.069,0.518-0.066,0.769-0.124c0.151-0.033,0.287-0.059,0.445-0.015c0.163,0.044,0.266,0.17,0.201,0.29
+                       c-0.167,0.302-0.344,0.602-0.513,0.904c-0.134,0.242-0.38,0.297-0.669,0.339c-0.554,0.083-0.946,0.417-1.372,0.692
+                       c-0.074,0.049-0.088,0.151-0.015,0.204c0.058,0.04,0.18,0.065,0.245,0.042c0.136-0.051,0.253-0.139,0.382-0.206
+                       c0.081-0.045,0.206-0.065,0.232,0.022c0.097,0.31,0.387,0.355,0.694,0.413c0.179,0.032,0.2,0.166,0.062,0.296
+                       c-0.121,0.116-0.261,0.22-0.378,0.338c-0.151,0.149-0.12,0.31,0.103,0.353c0.327,0.062,0.488,0.18,0.435,0.475
+                       c-0.015,0.089,0.105,0.154,0.182,0.104c0.454-0.281,0.681-0.057,0.951,0.24c0.201,0.222,0.053,0.324-0.031,0.524
+                       c-0.22,0.515-0.663,0.739-1.219,0.907c-0.252,0.076-0.474,0.225-0.701,0.352c-0.031,0.015-0.042,0.098-0.022,0.129
+                       c0.025,0.035,0.094,0.062,0.149,0.071c0.225,0.035,0.419-0.01,0.581-0.158c0.215-0.194,0.454-0.243,0.729-0.071
+                       c0.198,0.123,0.402,0.089,0.603-0.006c0.079-0.037,0.16-0.08,0.246-0.106c0.325-0.098,0.525,0.006,0.542,0.315
+                       c0.01,0.161-0.071,0.284,0.252,0.255c0.367-0.033,0.518,0.135,0.411,0.415c-0.225,0.579-0.586,1.06-1.391,1.202
+                       c0.088,0.14,0.172,0.273,0.255,0.406c0.087,0.142,0.216,0.171,0.378,0.104c0.111-0.046,0.208-0.113,0.322-0.15
+                       c0.209-0.071,0.382,0.031,0.351,0.212c-0.05,0.3-0.062,0.582-0.426,0.805c-0.388,0.238-0.68,0.591-0.983,0.91
+                       c-0.213,0.227-0.33,0.444-0.088,0.768c0.224,0.3,0.169,0.685-0.092,1.006c-0.093,0.11-0.182,0.219-0.055,0.343
+                       c0.11,0.109,0.263,0.105,0.421,0.083c0.303-0.04,0.605-0.075,0.909-0.104c0.156-0.016,0.334,0,0.413,0.119
+                       c0.206,0.318,0.471,0.238,0.77,0.13c0.294-0.109,0.605-0.091,0.911-0.056c0.01-0.139-0.169-0.341-0.222-0.514
+                       c-0.103-0.333-0.053-0.397,0.378-0.558c0.419-0.153,0.624-0.515,0.483-0.856c-0.053-0.12-0.121-0.238-0.165-0.36
+                       c-0.057-0.153,0.112-0.302,0.318-0.286c0.029,0.002,0.069-0.002,0.088,0.011c0.402,0.277,0.667-0.006,0.966-0.161
+                       c0.163-0.087,0.213-0.202,0.077-0.313c-0.193-0.155-0.224-0.359-0.301-0.552c-0.175-0.431-0.081-0.715,0.408-0.848
+                       c0.43-0.12,0.705-0.401,1.078-0.57c0.237-0.109,0.344-0.277,0.307-0.515c-0.022-0.124-0.015-0.257,0.009-0.379
+                       c0.05-0.26,0.22-0.352,0.524-0.264c0.233,0.067,0.452,0.147,0.71,0.108c0.16-0.023,0.325,0.032,0.368,0.169
+                       c0.069,0.224,0.261,0.315,0.466,0.438c0.235,0.137,0.379,0.348,0.742,0.261c0.191-0.044,0.327,0.124,0.34,0.297
+                       c0.031,0.413-0.029,0.822-0.166,1.216c-0.385,1.112-0.227,0.813,0.443,1.56c0.07,0.08,0.235,0.118,0.266,0.198
+                       c0.096,0.262,0.284,0.308,0.564,0.242c0.086-0.02,0.182-0.024,0.272-0.024c0.143-0.004,0.246,0.124,0.156,0.206
+                       c-0.22,0.202-0.351,0.413-0.26,0.697c0.021,0.061-0.027,0.16-0.085,0.209c-0.49,0.422-0.588,1.056-1.164,1.433
+                       c0.459,0.207,0.464,0.211,0.674-0.015c0.327-0.358,0.775-0.562,1.258-0.722c0.024-0.006,0.06,0.007,0.09,0.005
+                       c0.244-0.007,0.189-0.422,0.551-0.279c0.191,0.078,0.354,0.206,0.581,0.217c0.088,0.007,0.181,0.024,0.262,0.057
+                       c0.094,0.038,0.125,0.132,0.074,0.199c-0.079,0.106-0.193,0.194-0.284,0.296c-0.079,0.085-0.096,0.174-0.039,0.285
+                       c0.189,0.353,0.184,0.355-0.05,0.535c-0.251,0.188-0.499,0.372-0.663,0.632c-0.082,0.133-0.215,0.253-0.351,0.353
+                       c-0.16,0.116-0.394,0.171-0.521,0.305c-0.187,0.197-0.309,0.441-0.454,0.659c0.017,0.184,0.203,0.177,0.332,0.22
+                       c0.134,0.045,0.197,0.21,0.383,0.157c0.169-0.182-0.05-0.446,0.126-0.588c0.192-0.151,0.467-0.23,0.704-0.341
+                       c0.08-0.036,0.169-0.065,0.239-0.114c0.253-0.177,0.516-0.173,0.751,0c0.239,0.175,0.518,0.255,0.81,0.331
+                       c0.122,0.033,0.2,0.164,0.108,0.251c-0.414,0.379-0.612,0.881-1.062,1.245c-0.22,0.177-0.483,0.304-0.705,0.481
+                       c0.074,0.23,0.375,0.35,0.356,0.615c-0.014,0.216,0.241,0.273,0.399,0.391c0.189,0.137,0.213,0.263,0.041,0.39
+                       c-0.239,0.175-0.443,0.34-0.406,0.644c0.018,0.165-0.135,0.271-0.298,0.36c-0.358,0.196-0.698,0.418-1.065,0.601
+                       c-0.201,0.102-0.302,0.249-0.39,0.413l0.013,0.011c0.38-0.071,0.793-0.014,1.131-0.246c0.145-0.1,0.356-0.126,0.518-0.049
+                       c0.275,0.133,0.457,0.009,0.655-0.113c0.122-0.076,0.247-0.154,0.383-0.205c0.279-0.106,0.59,0.02,0.586,0.285
+                       c-0.002,0.246,0.033,0.308,0.325,0.242c0.148-0.036,0.272-0.087,0.402-0.156c0.205-0.11,0.342-0.057,0.397,0.131
+                       c0.038,0.124,0.048,0.254,0.081,0.378c0.042,0.164,0.306,0.322,0.112,0.485c-0.204,0.173-0.364,0.43-0.722,0.42
+                       c-0.158-0.002-0.311,0.016-0.426,0.106c-0.217,0.173-0.395,0.4-0.643,0.529c-0.248,0.129-0.595,0.115-0.777,0.357l0.002,0.002
+                       c0.189-0.024,0.364-0.008,0.515,0.104c0.135,0.102,0.277,0.195,0.437,0.307c0.156-0.156,0.275-0.3,0.423-0.423
+                       c0.214-0.177,0.49-0.108,0.547,0.142c0.029,0.12,0.005,0.251,0.005,0.405c0.277,0.068,0.52-0.067,0.77-0.124
+                       c0.151-0.034,0.289-0.061,0.445-0.018c0.163,0.045,0.268,0.173,0.2,0.293c-0.167,0.302-0.344,0.601-0.512,0.903
+                       c-0.134,0.242-0.38,0.297-0.669,0.34c-0.555,0.082-0.948,0.415-1.372,0.692c-0.074,0.049-0.089,0.151-0.015,0.201
+                       c0.057,0.042,0.18,0.068,0.244,0.042c0.138-0.048,0.254-0.137,0.382-0.206c0.082-0.042,0.206-0.062,0.232,0.022
+                       c0.098,0.311,0.387,0.357,0.694,0.415c0.18,0.033,0.2,0.166,0.062,0.297c-0.121,0.115-0.26,0.218-0.378,0.335
+                       c-0.15,0.151-0.119,0.311,0.103,0.356c0.327,0.062,0.488,0.178,0.435,0.475c-0.014,0.088,0.105,0.151,0.182,0.104
+                       c0.454-0.283,0.682-0.057,0.952,0.237c0.2,0.224,0.053,0.326-0.032,0.524c-0.22,0.517-0.661,0.741-1.219,0.91
+                       c-0.252,0.075-0.471,0.224-0.7,0.348c-0.031,0.018-0.044,0.1-0.022,0.131c0.024,0.036,0.094,0.061,0.148,0.069
+                       c0.225,0.037,0.419-0.008,0.581-0.155c0.215-0.195,0.454-0.246,0.729-0.071c0.199,0.122,0.402,0.086,0.603-0.008
+                       c0.079-0.038,0.16-0.081,0.246-0.105c0.325-0.097,0.526,0.007,0.542,0.313c0.01,0.165-0.071,0.286,0.252,0.257
+                       c0.367-0.033,0.518,0.134,0.411,0.415c-0.224,0.579-0.586,1.061-1.391,1.2c0.033,0.055,0.065,0.105,0.098,0.158
+                       c0.259,0.08,0.514,0.159,0.772,0.242c0.026-0.014,0.055-0.03,0.084-0.038c0.193-0.064,0.347,0.017,0.349,0.173
+                       c1.372,0.43,2.737,0.856,4.084,1.276c-0.055-0.188-0.116-0.377-0.166-0.566c-0.04-0.152,0.019-0.212,0.215-0.215
+                       c0.094,0,0.149-0.022,0.206-0.08c0.093-0.093,0.189-0.191,0.308-0.258c0.082-0.041,0.184-0.053,0.201-0.151
+                       c0.017-0.088-0.05-0.157-0.086-0.233c-0.079-0.173-0.296-0.254-0.393-0.42c0.074-0.096,0.145-0.187,0.21-0.277
+                       c0.041-0.057,0.096-0.067,0.167-0.054c0.096,0.016,0.092-0.039,0.105-0.095c0.017-0.086,0.089-0.122,0.18-0.075
+                       c0.096,0.049,0.182,0.113,0.275,0.17c0.05,0.032,0.113,0.097,0.156,0.089c0.323-0.049,0.505,0.238,0.808,0.226
+                       c0.06-0.002,0.151,0.027,0.173,0.065c0.119,0.195,0.334,0.133,0.518,0.147c0.062,0.004,0.143-0.01,0.149-0.078
+                       c0.004-0.071-0.048-0.134-0.134-0.156c-0.046-0.013-0.096-0.006-0.144-0.011c-0.229-0.018-0.287-0.034-0.303-0.195
+                       c-0.024-0.257-0.221-0.393-0.459-0.479c-0.217-0.082-0.201-0.264-0.304-0.393c-0.018-0.027,0.026-0.117,0.07-0.144
+                       c0.167-0.102,0.275-0.255,0.461-0.351c0.134-0.071,0.184-0.09,0.323-0.008c0.208,0.124,0.445,0.22,0.684,0.295
+                       c0.112,0.035,0.182,0.108,0.294,0.149c0.077-0.156,0.117-0.297,0.003-0.46c-0.065-0.091-0.058-0.212-0.094-0.32
+                       c-0.04-0.129-0.124-0.228-0.301-0.226c-0.115,0-0.176-0.062-0.237-0.129c-0.205-0.233-0.421-0.452-0.729-0.603
+                       c-0.208-0.103-0.316-0.267-0.314-0.484c0.002-0.233-0.031-0.465-0.15-0.685c-0.112-0.209-0.01-0.405,0.095-0.613
+                       c-0.136-0.087-0.239-0.21-0.347-0.33c-0.191-0.218-0.2-0.256-0.009-0.438c0.21-0.2,0.331-0.224,0.648-0.124
+                       c0.044,0.013,0.084,0.045,0.129,0.051c0.072,0.012,0.125-0.027,0.158-0.078c0.033-0.051,0.035-0.1-0.026-0.144
+                       c-0.206-0.143-0.201-0.147-0.323-0.452c-0.015-0.036-0.057-0.065-0.094-0.091c-0.064-0.055-0.093-0.11-0.018-0.177
+                       c0.055-0.051,0.108-0.102,0.165-0.153c0.282-0.242,0.367-0.267,0.705-0.08c0.299,0.164,0.632,0.281,0.897,0.492
+                       c0.145,0.12,0.365,0.158,0.503,0.307c0.063,0.067,0.182,0.006,0.283-0.04c-0.17-0.175-0.406-0.288-0.571-0.465
+                       c-0.065-0.069-0.116-0.125-0.127-0.209c-0.01-0.068-0.033-0.122-0.119-0.163c-0.146-0.07-0.168-0.233-0.106-0.319
+                       c0.096-0.131-0.035-0.277,0.087-0.393c0.045-0.045,0.016-0.106-0.022-0.156c-0.174-0.221-0.261-0.473-0.306-0.732
+                       c-0.022-0.131-0.077-0.238-0.206-0.315c-0.055-0.031-0.103-0.069-0.151-0.106c-0.231-0.18-0.241-0.208-0.108-0.459
+                       c0.028-0.051,0.081-0.1,0.02-0.144c-0.151-0.11-0.242-0.253-0.342-0.395c-0.048-0.067-0.189-0.086-0.184-0.18
+                       c0.006-0.124,0.156-0.169,0.244-0.244c0.068-0.055,0.17-0.08,0.252-0.124c0.115-0.063,0.117-0.089,0.035-0.2
+                       c-0.103-0.142-0.103-0.14,0.031-0.255c0.034-0.03,0.055-0.071,0.094-0.093c0.349-0.208,0.327-0.284,0.712-0.049
+                       c0.065,0.039,0.134,0.075,0.199,0.11c0.117-0.047,0.026-0.088,0.011-0.131c-0.024-0.065-0.064-0.129-0.066-0.195
+                       c-0.002-0.051,0.035-0.11-0.024-0.151c-0.156-0.112-0.105-0.21,0.007-0.315c0.065-0.062,0.127-0.123,0.189-0.188
+                       c0.081-0.084,0.182-0.107,0.306-0.073c0.062,0.018,0.126,0.029,0.191,0.039c0.084,0.014,0.187,0.116,0.248,0.014
+                       c0.046-0.073-0.057-0.149-0.125-0.208c-0.086-0.078-0.193-0.138-0.159-0.278c0.119-0.481-0.118-0.889-0.414-1.276
+                       c-0.084-0.106-0.068-0.173,0.019-0.253c0.055-0.049,0.108-0.112,0.176-0.135c0.127-0.047,0.177-0.125,0.177-0.227
+                       c0-0.286,0.259-0.39,0.498-0.506c0.058-0.027,0.136-0.029,0.189,0.008c0.138,0.1,0.317,0.045,0.466,0.1v0.002h0.002
+                       c0.055,0.132,0.241,0.129,0.332,0.225c0.002,0.004,0.024,0,0.046-0.01c-0.005-0.004-0.011-0.006-0.017-0.011
+                       c-0.045-0.04-0.047-0.103-0.021-0.163c-0.002,0-0.002-0.002-0.006-0.002c-0.11-0.022-0.222-0.029-0.334-0.04l-0.002-0.002
+                       c0.04-0.186-0.022-0.35-0.156-0.499c-0.042-0.049-0.046-0.1-0.003-0.151c0.057-0.066,0.105-0.139,0.175-0.194
+                       c0.069-0.054,0.16-0.097,0.248-0.12c0.088-0.024,0.141,0.057,0.213,0.084c0.059,0.022,0.129,0.075,0.176,0.065
+                       c0.335-0.071,0.417,0.123,0.419,0.317c0.002,0.177,0.091,0.244,0.258,0.297c0.011,0.005,0.022,0.014,0.033,0.018
+                       c0.022-0.071,0.035-0.147,0.066-0.211c0.055-0.106,0.199-0.168,0.302-0.11c0.318,0.182,0.549,0.089,0.777-0.115
+                       c0.057-0.052,0.143-0.081,0.218-0.122c-0.382-0.325-0.382-0.325-0.375-0.782c0.004-0.444,0.007-0.457,0.549-0.491
+                       c0.189-0.013,0.34-0.044,0.505-0.133c0.416-0.22,0.842-0.3,1.246,0.049c0.224,0.193,0.514,0.113,0.782,0.088
+                       c0.118-0.011,0.184-0.197,0.079-0.245c-0.636-0.301-0.454-0.845-0.572-1.301c-0.038-0.144,0.054-0.251,0.166-0.341
+                       c0.2-0.165,0.134-0.364,0.014-0.497c-0.2-0.224-0.312-0.529-0.542-0.684c-0.363-0.251-0.505-0.444-0.323-0.835
+                       c0.067-0.141-0.153-0.371-0.213-0.565c-0.103-0.334-0.053-0.395,0.38-0.555c0.419-0.155,0.624-0.517,0.481-0.856
+                       c-0.05-0.122-0.119-0.238-0.165-0.36c-0.055-0.155,0.112-0.302,0.318-0.286c0.031,0.002,0.069-0.004,0.092,0.008
+                       c0.4,0.277,0.664-0.006,0.962-0.161c0.163-0.085,0.215-0.2,0.077-0.313c-0.191-0.155-0.224-0.357-0.301-0.55
+                       c-0.175-0.433-0.079-0.717,0.408-0.85c0.43-0.118,0.705-0.403,1.078-0.57c0.239-0.106,0.344-0.277,0.307-0.515
+                       c-0.022-0.124-0.015-0.255,0.009-0.379c0.05-0.258,0.221-0.352,0.526-0.264c0.232,0.067,0.45,0.149,0.707,0.108
+                       c0.163-0.023,0.326,0.032,0.369,0.169c0.072,0.224,0.261,0.318,0.467,0.44c0.234,0.137,0.378,0.346,0.743,0.262
+                       c0.19-0.045,0.325,0.123,0.337,0.295c0.031,0.412-0.029,0.821-0.165,1.215c-0.386,1.114-0.225,0.815,0.442,1.562
+                       c0.07,0.078,0.237,0.116,0.265,0.198c0.096,0.259,0.285,0.308,0.564,0.24c0.086-0.02,0.182-0.022,0.274-0.024
+                       c0.145-0.002,0.246,0.124,0.156,0.208c-0.221,0.202-0.353,0.411-0.259,0.697c0.02,0.061-0.029,0.16-0.085,0.209
+                       c-0.492,0.422-0.591,1.054-1.166,1.433c0.459,0.207,0.466,0.211,0.674-0.018c0.327-0.357,0.775-0.559,1.258-0.718
+                       c0.026-0.008,0.06,0.004,0.091,0.004c0.245-0.007,0.192-0.424,0.55-0.279c0.191,0.075,0.354,0.206,0.581,0.217
+                       c0.088,0.005,0.184,0.024,0.262,0.058c0.096,0.037,0.125,0.129,0.077,0.195c-0.078,0.108-0.196,0.196-0.286,0.296
+                       c-0.079,0.087-0.096,0.176-0.037,0.285c0.187,0.353,0.184,0.357-0.051,0.535c-0.252,0.19-0.5,0.374-0.663,0.634
+                       c-0.081,0.133-0.213,0.253-0.351,0.353c-0.16,0.114-0.395,0.171-0.522,0.302c-0.187,0.2-0.306,0.442-0.452,0.662
+                       c0.015,0.182,0.201,0.177,0.331,0.22c0.133,0.041,0.196,0.208,0.382,0.155c0.172-0.182-0.05-0.444,0.127-0.586
+                       c0.191-0.152,0.466-0.23,0.705-0.341c0.079-0.038,0.169-0.065,0.239-0.114c0.251-0.177,0.514-0.173,0.748-0.002
+                       c0.239,0.177,0.519,0.255,0.81,0.333c0.125,0.031,0.201,0.161,0.108,0.251c-0.261,0.237-0.439,0.524-0.645,0.794
+                       c0.141,0.035,0.285,0.057,0.443,0.033c0.163-0.022,0.325,0.031,0.367,0.171c0.072,0.222,0.261,0.314,0.469,0.437
+                       c0.231,0.138,0.375,0.348,0.74,0.262c0.189-0.045,0.326,0.124,0.337,0.297c0.031,0.411-0.026,0.819-0.165,1.214
+                       c-0.384,1.114-0.224,0.815,0.442,1.562c0.072,0.08,0.237,0.118,0.267,0.197c0.097,0.26,0.284,0.309,0.563,0.243
+                       c0.089-0.023,0.182-0.025,0.273-0.025c0.145-0.004,0.246,0.122,0.155,0.207c-0.22,0.202-0.349,0.412-0.258,0.697
+                       c0.018,0.059-0.03,0.159-0.084,0.208c-0.476,0.409-0.586,1.014-1.119,1.397c0.086-0.01,0.172-0.012,0.263,0.015
+                       c0.099,0.027,0.17,0.084,0.2,0.153c0.048-0.027,0.096-0.073,0.163-0.149c0.327-0.355,0.775-0.56,1.257-0.719
+                       c0.027-0.008,0.063,0.007,0.092,0.004c0.244-0.006,0.191-0.424,0.549-0.279c0.191,0.075,0.354,0.206,0.581,0.218
+                       c0.09,0.004,0.184,0.024,0.263,0.057c0.095,0.038,0.123,0.129,0.075,0.198c-0.078,0.107-0.193,0.195-0.286,0.297
+                       c-0.077,0.085-0.096,0.173-0.037,0.283c0.187,0.355,0.184,0.357-0.051,0.534c-0.252,0.191-0.5,0.375-0.66,0.635
+                       c-0.084,0.133-0.215,0.253-0.355,0.353c-0.16,0.116-0.394,0.17-0.519,0.304c-0.189,0.198-0.308,0.442-0.454,0.659
+                       c0.015,0.183,0.201,0.178,0.333,0.22c0.132,0.042,0.193,0.211,0.38,0.156c0.172-0.183-0.048-0.444,0.127-0.586
+                       c0.191-0.153,0.466-0.232,0.705-0.342c0.079-0.037,0.169-0.065,0.239-0.113c0.251-0.177,0.516-0.173,0.748-0.002
+                       c0.092,0.068,0.193,0.119,0.296,0.164c0.141-0.116,0.32-0.212,0.552-0.297c0.263-0.096,0.398-0.198,0.423-0.424
+                       c0.013-0.102,0.037-0.202,0.068-0.302c0.042-0.144,0.134-0.169,0.325-0.131c0.259,0.051,0.478,0.204,0.755,0.2
+                       c0.041,0,0.096-0.029,0.12-0.061c0.024-0.029,0.033-0.098,0.014-0.11c-0.258-0.163-0.306-0.35-0.127-0.583
+                       c0.07-0.089,0.074-0.196-0.004-0.289c-0.136-0.16-0.136-0.346-0.145-0.528c-0.005-0.081-0.009-0.191,0.046-0.234
+                       c0.361-0.273,0.317-0.644,0.371-0.994c0.021-0.139,0.081-0.273,0.191-0.391c0.179-0.19,0.262-0.215,0.61-0.1
+                       c0.133,0.045,0.233,0.065,0.275-0.082c0.033-0.129,0.15-0.206,0.253-0.29c0.05-0.042,0.108-0.105,0.167-0.107
+                       c0.294-0.013,0.572,0.063,0.849,0.129c0.143,0.036,0.27,0.091,0.311,0.229c0.007,0.019,0.016,0.039,0.024,0.059
+                       c0.042,0.102,0.128,0.102,0.231,0.071c0.197-0.053,0.323,0.021,0.423,0.157c0.108,0.14,0.215,0.277,0.098,0.45
+                       c-0.035,0.054-0.089,0.1-0.114,0.156c-0.085,0.168,0.016,0.335,0.224,0.375c0.048,0.011,0.097,0.015,0.145,0.013
+                       c0.12-0.006,0.239-0.018,0.393-0.031c0.086,0.2,0.153,0.417,0.275,0.61c0.134,0.211,0.136,0.389-0.009,0.553
+                       c0.323-0.177,0.468-0.493,0.342-0.792c-0.05-0.122-0.119-0.24-0.166-0.362c-0.054-0.153,0.116-0.3,0.319-0.286
+                       c0.031,0.002,0.071-0.002,0.09,0.011c0.402,0.278,0.667-0.006,0.966-0.161c0.163-0.087,0.213-0.201,0.074-0.313
+                       c-0.191-0.155-0.223-0.358-0.302-0.55c-0.172-0.432-0.078-0.717,0.41-0.851c0.43-0.117,0.707-0.4,1.08-0.569
+                       c0.237-0.108,0.344-0.278,0.303-0.515c-0.018-0.124-0.014-0.255,0.01-0.379c0.051-0.259,0.22-0.35,0.527-0.264
+                       c0.233,0.067,0.452,0.149,0.707,0.109c0.163-0.025,0.327,0.031,0.371,0.168c0.069,0.224,0.259,0.318,0.466,0.438
+                       c0.232,0.137,0.378,0.348,0.741,0.263c0.191-0.046,0.325,0.125,0.339,0.295c0.029,0.413-0.028,0.821-0.165,1.216
+                       c-0.387,1.112-0.227,0.813,0.443,1.562c0.069,0.078,0.235,0.116,0.265,0.195c0.095,0.262,0.282,0.309,0.564,0.242
+                       c0.086-0.02,0.18-0.022,0.272-0.024c0.144-0.002,0.246,0.124,0.153,0.208c-0.221,0.2-0.349,0.411-0.258,0.695
+                       c0.019,0.062-0.027,0.16-0.084,0.208c-0.49,0.425-0.588,1.057-1.167,1.435c0.459,0.206,0.467,0.21,0.674-0.016
+                       c0.329-0.358,0.776-0.562,1.261-0.721c0.024-0.007,0.06,0.006,0.088,0.006c0.244-0.01,0.191-0.424,0.551-0.281
+                       c0.191,0.078,0.353,0.206,0.583,0.219c0.088,0.005,0.182,0.022,0.261,0.056c0.096,0.037,0.127,0.131,0.077,0.198
+                       c-0.079,0.106-0.193,0.194-0.287,0.296c-0.077,0.087-0.093,0.173-0.035,0.285c0.189,0.353,0.184,0.357-0.053,0.534
+                       c-0.248,0.189-0.498,0.374-0.66,0.633c-0.084,0.133-0.215,0.255-0.354,0.353c-0.16,0.116-0.393,0.171-0.519,0.304
+                       c-0.188,0.198-0.308,0.442-0.453,0.66c0.016,0.184,0.203,0.177,0.332,0.222c0.132,0.042,0.193,0.208,0.38,0.155
+                       c0.173-0.182-0.047-0.446,0.127-0.588c0.191-0.151,0.466-0.23,0.705-0.341c0.081-0.036,0.17-0.065,0.239-0.114
+                       c0.254-0.175,0.517-0.171,0.748,0c0.241,0.175,0.52,0.255,0.814,0.332c0.121,0.032,0.2,0.163,0.104,0.249
+                       c-0.411,0.38-0.611,0.882-1.059,1.246c-0.22,0.177-0.483,0.306-0.706,0.481c0.074,0.23,0.374,0.35,0.357,0.615
+                       c-0.017,0.217,0.241,0.275,0.399,0.391c0.189,0.137,0.213,0.263,0.04,0.39c-0.239,0.175-0.442,0.34-0.408,0.642
+                       c0.019,0.167-0.132,0.273-0.294,0.362c-0.358,0.198-0.698,0.42-1.067,0.603c-0.203,0.1-0.301,0.246-0.389,0.41l0.011,0.012
+                       c0.377-0.071,0.794-0.013,1.132-0.244c0.145-0.102,0.353-0.129,0.516-0.051c0.277,0.136,0.457,0.008,0.657-0.113
+                       c0.12-0.075,0.244-0.154,0.38-0.205c0.283-0.106,0.594,0.02,0.588,0.285c-0.004,0.249,0.034,0.308,0.324,0.241
+                       c0.15-0.035,0.272-0.084,0.404-0.155c0.205-0.11,0.339-0.057,0.397,0.131c0.035,0.125,0.047,0.254,0.08,0.378
+                       c0.044,0.164,0.307,0.322,0.113,0.485c-0.204,0.173-0.366,0.43-0.722,0.422c-0.158-0.004-0.311,0.014-0.425,0.104
+                       c-0.218,0.173-0.397,0.399-0.646,0.529c-0.246,0.129-0.593,0.115-0.777,0.357l0.005,0.004c0.186-0.027,0.36-0.011,0.514,0.102
+                       c0.134,0.102,0.277,0.195,0.437,0.307c0.153-0.155,0.276-0.3,0.424-0.422c0.215-0.178,0.491-0.109,0.547,0.141
+                       c0.03,0.122,0.006,0.251,0.006,0.405c0.277,0.068,0.519-0.067,0.768-0.124c0.152-0.034,0.288-0.061,0.444-0.018
+                       c0.165,0.047,0.268,0.173,0.204,0.293c-0.168,0.302-0.344,0.601-0.513,0.903c-0.134,0.242-0.382,0.297-0.669,0.34
+                       c-0.554,0.082-0.947,0.416-1.372,0.693c-0.073,0.048-0.088,0.151-0.014,0.204c0.057,0.039,0.18,0.064,0.244,0.042
+                       c0.136-0.052,0.254-0.14,0.38-0.207c0.084-0.045,0.208-0.065,0.235,0.022c0.097,0.308,0.387,0.355,0.691,0.413
+                       c0.181,0.033,0.203,0.166,0.064,0.297c-0.121,0.115-0.261,0.219-0.38,0.337c-0.149,0.149-0.12,0.308,0.105,0.353
+                       c0.327,0.063,0.488,0.181,0.435,0.476c-0.017,0.088,0.105,0.151,0.182,0.104c0.454-0.281,0.681-0.057,0.951,0.239
+                       c0.201,0.222,0.053,0.324-0.033,0.523c-0.218,0.516-0.659,0.74-1.216,0.909c-0.252,0.075-0.474,0.224-0.702,0.351
+                       c-0.031,0.016-0.042,0.098-0.021,0.129c0.023,0.036,0.093,0.063,0.148,0.071c0.225,0.036,0.419-0.008,0.581-0.157
+                       c0.215-0.195,0.454-0.244,0.729-0.071c0.199,0.122,0.402,0.089,0.603-0.006c0.079-0.04,0.158-0.083,0.244-0.106
+                       c0.325-0.099,0.529,0.005,0.545,0.314c0.009,0.161-0.072,0.285,0.251,0.255c0.368-0.033,0.52,0.136,0.412,0.415
+                       c-0.225,0.579-0.588,1.061-1.392,1.203c0.088,0.137,0.172,0.27,0.253,0.406c0.089,0.139,0.218,0.171,0.381,0.102
+                       c0.108-0.045,0.208-0.11,0.319-0.149c0.211-0.071,0.383,0.031,0.352,0.213c-0.05,0.298-0.063,0.581-0.428,0.805
+                       c-0.386,0.238-0.678,0.591-0.981,0.91c-0.213,0.226-0.329,0.444-0.09,0.768c0.224,0.298,0.172,0.685-0.089,1.005
+                       c-0.093,0.112-0.181,0.22-0.055,0.344c0.11,0.108,0.263,0.102,0.421,0.082c0.108-0.013,0.213-0.024,0.32-0.037
+                       c-0.033-0.083-0.014-0.169,0.081-0.26c0.103-0.096,0.204-0.194,0.277-0.306c0.247-0.355,0.495-0.707,0.522-1.143
+                       c0.014-0.224,0.116-0.238,0.335-0.075c0.042,0.033,0.075,0.104,0.119,0.108c0.141,0.012,0.11-0.086,0.095-0.153
+                       c-0.042-0.22,0.065-0.357,0.323-0.382c0.362-0.031,0.66-0.284,1.057-0.206c0.06,0.014,0.165-0.057,0.215-0.11
+                       c0.145-0.161,0.34-0.322,0.392-0.508c0.069-0.238,0.141-0.38,0.466-0.349c0.217,0.023,0.323-0.115,0.423-0.249
+                       c0.143-0.19,0.351-0.257,0.619-0.266c0.323-0.014,0.397-0.14,0.318-0.391c-0.091-0.287-0.347-0.395-0.641-0.501
+                       c-0.292-0.104-0.34-0.198-0.163-0.408c0.16-0.189,0.17-0.303-0.046-0.447c-0.265-0.175-0.487-0.404-0.773-0.541
+                       c-0.307-0.147-0.575-0.264-0.581-0.611c-0.003-0.157-0.18-0.262-0.313-0.369c-0.177-0.142-0.349-0.291-0.512-0.444
+                       c-0.103-0.095-0.039-0.255,0.112-0.317c0.026-0.012,0.055-0.022,0.084-0.03c0.175-0.035,0.4-0.021,0.459-0.202
+                       c0.084-0.259,0.031-0.52-0.189-0.723c-0.203-0.191-0.446-0.348-0.659-0.532c-0.103-0.086,0-0.283,0.148-0.302
+                       c0.089-0.014,0.182-0.022,0.27-0.018c0.175,0.008,0.338,0.2,0.503,0.069c0.095-0.075,0.088-0.238,0.149-0.35
+                       c0.053-0.107,0.198-0.167,0.299-0.112c0.318,0.182,0.549,0.088,0.779-0.116c0.057-0.049,0.141-0.08,0.215-0.122
+                       c-0.382-0.324-0.382-0.324-0.375-0.781c0.004-0.442,0.009-0.457,0.549-0.491c0.189-0.011,0.34-0.041,0.507-0.131
+                       c0.414-0.222,0.842-0.302,1.244,0.047c0.224,0.193,0.514,0.113,0.784,0.089c0.114-0.012,0.182-0.199,0.077-0.247
+                       c-0.636-0.298-0.454-0.845-0.572-1.3c-0.035-0.141,0.054-0.251,0.166-0.342c0.2-0.164,0.134-0.363,0.014-0.497
+                       c-0.198-0.224-0.313-0.528-0.542-0.683c-0.364-0.249-0.505-0.444-0.323-0.835c0.066-0.142-0.151-0.37-0.213-0.566
+                       c-0.103-0.332-0.053-0.394,0.38-0.554c0.419-0.155,0.624-0.517,0.481-0.856c-0.05-0.122-0.119-0.238-0.165-0.36
+                       c-0.055-0.155,0.115-0.302,0.318-0.286c0.031,0.002,0.069-0.005,0.09,0.008c0.402,0.279,0.667-0.006,0.964-0.161
+                       c0.165-0.085,0.215-0.201,0.077-0.313c-0.191-0.153-0.222-0.358-0.301-0.55c-0.173-0.43-0.079-0.717,0.409-0.851
+                       c0.43-0.117,0.705-0.4,1.081-0.569c0.236-0.107,0.341-0.278,0.303-0.515c-0.02-0.122-0.015-0.255,0.009-0.379
+                       c0.05-0.258,0.22-0.35,0.525-0.264c0.232,0.069,0.451,0.149,0.708,0.11c0.163-0.027,0.325,0.03,0.371,0.169
+                       c0.07,0.224,0.259,0.315,0.467,0.438c0.231,0.138,0.374,0.348,0.741,0.261c0.192-0.044,0.325,0.124,0.337,0.297
+                       c0.031,0.411-0.026,0.819-0.165,1.214c-0.384,1.114-0.225,0.815,0.442,1.562c0.072,0.08,0.237,0.118,0.265,0.198
+                       c0.099,0.26,0.285,0.308,0.564,0.242c0.088-0.022,0.182-0.024,0.273-0.024c0.145-0.004,0.248,0.122,0.155,0.206
+                       c-0.22,0.202-0.349,0.413-0.258,0.697c0.018,0.059-0.03,0.159-0.085,0.209c-0.49,0.421-0.591,1.054-1.166,1.433
+                       c0.459,0.206,0.466,0.211,0.674-0.017c0.327-0.356,0.775-0.56,1.257-0.719c0.026-0.01,0.062,0.006,0.091,0.004
+                       c0.245-0.006,0.191-0.424,0.55-0.28c0.191,0.075,0.354,0.207,0.584,0.218c0.088,0.004,0.181,0.024,0.261,0.058
+                       c0.095,0.037,0.124,0.129,0.075,0.196c-0.079,0.107-0.196,0.196-0.286,0.295c-0.077,0.087-0.094,0.175-0.037,0.287
+                       c0.187,0.353,0.184,0.355-0.053,0.532c-0.251,0.191-0.499,0.376-0.659,0.635c-0.084,0.133-0.216,0.253-0.353,0.353
+                       c-0.16,0.114-0.395,0.171-0.52,0.304c-0.189,0.199-0.309,0.44-0.454,0.66c0.015,0.184,0.201,0.177,0.332,0.22
+                       c0.132,0.045,0.194,0.21,0.381,0.155c0.172-0.182-0.048-0.444,0.127-0.585c0.191-0.154,0.466-0.232,0.705-0.342
+                       c0.079-0.038,0.169-0.065,0.239-0.114c0.251-0.177,0.516-0.173,0.748-0.002c0.242,0.177,0.519,0.257,0.813,0.332
+                       c0.121,0.032,0.201,0.165,0.105,0.251c-0.413,0.378-0.612,0.882-1.058,1.246c-0.221,0.177-0.484,0.304-0.706,0.481
+                       c0.075,0.23,0.373,0.348,0.354,0.615c-0.014,0.215,0.244,0.273,0.402,0.388c0.189,0.14,0.21,0.267,0.041,0.391
+                       c-0.239,0.175-0.443,0.342-0.41,0.644c0.019,0.167-0.13,0.273-0.296,0.361c-0.358,0.199-0.697,0.418-1.063,0.602
+                       c-0.204,0.102-0.301,0.246-0.39,0.41l0.013,0.014c0.378-0.073,0.791-0.016,1.128-0.246c0.147-0.1,0.356-0.129,0.518-0.049
+                       c0.278,0.133,0.457,0.008,0.655-0.116c0.122-0.075,0.247-0.15,0.383-0.204c0.282-0.104,0.593,0.022,0.588,0.287
+                       c-0.005,0.245,0.033,0.308,0.323,0.241c0.151-0.035,0.272-0.086,0.404-0.155c0.204-0.11,0.34-0.057,0.397,0.129
+                       c0.035,0.125,0.047,0.254,0.079,0.379c0.046,0.165,0.305,0.321,0.114,0.486c-0.203,0.171-0.365,0.428-0.722,0.42
+                       c-0.158-0.004-0.31,0.014-0.426,0.104c-0.22,0.176-0.397,0.399-0.645,0.531c-0.246,0.129-0.593,0.115-0.777,0.357l0.003,0.002
+                       c0.189-0.024,0.364-0.008,0.516,0.104c0.134,0.1,0.278,0.193,0.436,0.307c0.156-0.156,0.277-0.301,0.423-0.422
+                       c0.216-0.181,0.49-0.109,0.549,0.139c0.029,0.122,0.005,0.253,0.005,0.407c0.277,0.068,0.516-0.069,0.768-0.124
+                       c0.151-0.034,0.289-0.061,0.444-0.018c0.164,0.044,0.269,0.173,0.201,0.29c-0.165,0.305-0.342,0.602-0.509,0.904
+                       c-0.134,0.244-0.382,0.297-0.669,0.34c-0.555,0.082-0.949,0.416-1.372,0.695c-0.074,0.046-0.089,0.15-0.017,0.202
+                       c0.06,0.039,0.182,0.066,0.246,0.042c0.136-0.05,0.252-0.14,0.38-0.207c0.081-0.041,0.208-0.065,0.235,0.022
+                       c0.098,0.311,0.388,0.357,0.691,0.415c0.18,0.033,0.201,0.164,0.064,0.297c-0.121,0.115-0.26,0.217-0.38,0.335
+                       c-0.148,0.149-0.119,0.311,0.105,0.353c0.327,0.063,0.488,0.181,0.435,0.476c-0.016,0.088,0.106,0.152,0.18,0.106
+                       c0.457-0.281,0.684-0.058,0.952,0.237c0.167,0.185,0.095,0.287,0.019,0.426c0.042-0.041,0.086-0.084,0.141-0.104
+                       c0.126-0.044,0.176-0.124,0.176-0.224c0-0.289,0.256-0.391,0.498-0.506c0.06-0.029,0.136-0.029,0.186,0.008
+                       c0.141,0.098,0.32,0.045,0.468,0.1c0.058,0.132,0.241,0.129,0.333,0.226c0.007,0.005,0.064-0.008,0.079-0.024
+                       c0.02-0.02,0.028-0.057,0.016-0.075c-0.02-0.033-0.055-0.078-0.09-0.086c-0.11-0.02-0.224-0.027-0.337-0.04
+                       c0.041-0.186-0.021-0.353-0.154-0.501c-0.044-0.049-0.046-0.1-0.003-0.151c0.054-0.067,0.102-0.139,0.174-0.193
+                       c0.07-0.053,0.16-0.098,0.248-0.122c0.086-0.024,0.138,0.061,0.213,0.087c0.061,0.019,0.127,0.073,0.177,0.062
+                       c0.334-0.071,0.415,0.124,0.418,0.318c0.003,0.177,0.091,0.244,0.256,0.3c0.235,0.075,0.426,0.202,0.588,0.362
+                       c0.123,0.12,0.141,0.177,0.029,0.286c-0.124,0.118-0.177,0.258-0.251,0.395c-0.074,0.14-0.032,0.34-0.265,0.407
+                       c-0.005,0.002-0.005,0.027,0,0.037c0.007,0.012,0.026,0.027,0.035,0.024c0.048-0.011,0.099-0.02,0.136-0.04
+                       c0.204-0.113,0.406-0.23,0.608-0.348c0.119-0.068,0.23-0.08,0.36-0.013c0.115,0.057,0.215,0.12,0.309,0.2
+                       c0.215,0.18,0.232,0.22,0.007,0.397c-0.17,0.135-0.206,0.344-0.391,0.466c-0.017,0.011-0.008,0.051-0.013,0.078
+                       c-0.009,0.08,0.065,0.143,0.143,0.124c0.03-0.007,0.058-0.018,0.089-0.029c-0.017-0.012-0.031-0.027-0.048-0.04
+                       c-0.093-0.064-0.081-0.177,0.007-0.253c0.079-0.067,0.146-0.138,0.182-0.232c0.057-0.143,0.145-0.208,0.318-0.143
+                       c0.035,0.013,0.108-0.006,0.141-0.033c0.127-0.101,0.244-0.103,0.373-0.007c0.065,0.047,0.132,0.027,0.177-0.037
+                       c0.053-0.078,0.049-0.174-0.03-0.216c-0.167-0.093-0.325-0.249-0.556-0.131c-0.075,0.039-0.129-0.01-0.163-0.073
+                       c-0.044-0.087-0.074-0.183-0.132-0.26c-0.116-0.157-0.04-0.269,0.105-0.391c-0.27-0.161-0.397-0.434-0.621-0.632
+                       c-0.14-0.122-0.137-0.344-0.283-0.497c-0.098-0.102,0.019-0.24,0.063-0.361c0.034-0.1-0.016-0.171-0.118-0.144
+                       c-0.272,0.078-0.408-0.136-0.601-0.222c-0.155-0.073-0.145-0.24-0.183-0.379c-0.048-0.189-0.094-0.374-0.037-0.568
+                       c0.039-0.13,0.118-0.16,0.274-0.098c0.047,0.02,0.088,0.053,0.136,0.066c0.023,0.004,0.066-0.013,0.086-0.035
+                       c0.02-0.02,0.029-0.057,0.026-0.086c-0.002-0.03-0.017-0.065-0.039-0.087c-0.251-0.249-0.272-0.537-0.172-0.845
+                       c0.016-0.047,0.019-0.096,0.033-0.142c0.004-0.013,0.02-0.024,0.033-0.039c0.166-0.014,0.335-0.025,0.502-0.042
+                       c0.302-0.035,0.584-0.002,0.832,0.182c0.092,0.069,0.204,0.116,0.311,0.169c0.042,0.02,0.108,0.042,0.143,0.027
+                       c0.07-0.029,0.065-0.104,0.057-0.169c-0.002-0.031-0.009-0.073-0.031-0.088c-0.217-0.16-0.301-0.375-0.332-0.623
+                       c-0.013-0.102-0.116-0.193-0.167-0.295c-0.037-0.069,0.026-0.169,0.112-0.187c0.068-0.013,0.136-0.024,0.203-0.024
+                       c0.12,0.004,0.228,0.004,0.349-0.037c0.211-0.075,0.431-0.079,0.641,0.047c0.113,0.068,0.254,0.098,0.38,0.149
+                       c0.067,0.027,0.14,0.042,0.188-0.016c0.138-0.171,0.263-0.093,0.394,0.002c0.043,0.031,0.101,0.029,0.142-0.008
+                       c0.052-0.053,0.064-0.124,0.011-0.175c-0.237-0.222-0.416-0.471-0.49-0.78c-0.197-0.167-0.272-0.395-0.375-0.612
+                       c-0.062-0.127-0.151-0.258-0.309-0.313c-0.231-0.084-0.296-0.304-0.435-0.464c-0.067-0.08-0.074-0.186-0.038-0.277
+                       c0.073-0.184,0.009-0.335-0.078-0.501c-0.087-0.171-0.128-0.364-0.181-0.548c-0.02-0.065,0.014-0.131,0.081-0.163
+                       c0.069-0.035,0.132-0.011,0.187,0.038c0.074,0.062,0.136,0.144,0.251,0.169c0.089-0.102-0.033-0.136-0.062-0.191
+                       c-0.029-0.057-0.079-0.106-0.122-0.155c-0.057-0.067-0.091-0.138-0.049-0.222c0.042-0.085,0.205-0.165,0.308-0.138
+                       c0.081,0.02,0.177,0.045,0.23,0.1c0.284,0.291,0.659,0.275,1.023,0.309c0.066-0.149-0.035-0.23-0.096-0.324
+                       c-0.062-0.096-0.136-0.185-0.189-0.285c-0.051-0.098,0.065-0.237,0.182-0.239c0.145-0.003,0.275,0.037,0.368,0.143
+                       c0.086,0.1,0.16,0.207,0.248,0.305c0.07,0.08,0.217,0.066,0.263-0.022c0.073-0.147,0.167-0.291,0.191-0.446
+                       c0.033-0.226,0.186-0.373,0.333-0.529c0.109-0.117,0.207-0.106,0.341,0.023c0.024,0.021,0.037,0.055,0.057,0.079
+                       c0.065,0.07,0.136,0.091,0.217,0.018c0.34-0.314,0.375-0.31,0.615,0.065c0.017,0.027,0.032,0.057,0.048,0.084
+                       c0.114,0.183,0.117,0.183,0.325,0.147c0.05-0.008,0.098-0.035,0.149-0.045c0.101-0.013,0.174,0.04,0.193,0.123
+                       c0.026,0.106,0.024,0.222,0.038,0.332c0.03,0.235,0.241,0.328,0.441,0.186c0.136-0.1,0.261-0.212,0.395-0.312
+                       c0.055-0.04,0.128-0.063,0.191-0.012c0.064,0.056,0.103,0.133,0.069,0.216c-0.024,0.061-0.073,0.108-0.103,0.166
+                       c-0.042,0.087-0.114,0.185-0.102,0.267c0.033,0.24-0.015,0.435-0.215,0.599c-0.044,0.036-0.044,0.12-0.053,0.183
+                       c-0.072,0.446-0.272,0.794-0.787,0.909c-0.018,0.005-0.029,0.05-0.042,0.079c0.124,0.059,0.217-0.076,0.339-0.05
+                       c0.116,0.025,0.194-0.044,0.281-0.097c0.059-0.038,0.129-0.057,0.198-0.034c0.222,0.075,0.368-0.049,0.493-0.182
+                       c0.09-0.096,0.172-0.195,0.288-0.271c0.139-0.088,0.265-0.147,0.419-0.024c0.132,0.104,0.254,0.067,0.364-0.04
+                       c0.048-0.046,0.098-0.09,0.15-0.133c0.118-0.092,0.359-0.064,0.447,0.058c0.053,0.07,0.048,0.164-0.004,0.228
+                       c-0.072,0.088-0.177,0.153-0.254,0.237c-0.086,0.098-0.203,0.191-0.183,0.332c0.021,0.163-0.056,0.262-0.177,0.372
+                       c-0.134,0.12-0.251,0.257-0.318,0.43c-0.053,0.129-0.182,0.23-0.27,0.348c-0.048,0.066-0.088,0.138-0.122,0.21
+                       c-0.022,0.047-0.004,0.099,0.046,0.124c0.026,0.016,0.07,0.03,0.096,0.02c0.064-0.02,0.13-0.045,0.179-0.084
+                       c0.065-0.051,0.113-0.12,0.166-0.185c0.156-0.184,0.356-0.245,0.596-0.186c0.152,0.04,0.287,0.073,0.453,0.012
+                       c0.155-0.056,0.336,0.135,0.305,0.292c-0.019,0.096-0.055,0.184-0.134,0.255c-0.053,0.051-0.129,0.101-0.16,0.16
+                       c0.143,0,0.27,0.039,0.364,0.144c0.086,0.1,0.163,0.206,0.248,0.306c0.07,0.078,0.22,0.067,0.265-0.024
+                       c0.072-0.144,0.167-0.291,0.189-0.444c0.035-0.228,0.187-0.375,0.332-0.53c0.11-0.118,0.211-0.107,0.342,0.022
+                       c0.024,0.022,0.035,0.055,0.057,0.08c0.067,0.068,0.138,0.091,0.217,0.018c0.34-0.315,0.379-0.311,0.614,0.064
+                       c0.02,0.027,0.031,0.057,0.048,0.087c0.118,0.18,0.118,0.182,0.327,0.144c0.05-0.01,0.096-0.036,0.146-0.042
+                       c0.103-0.016,0.174,0.037,0.193,0.12c0.029,0.108,0.024,0.221,0.039,0.332c0.031,0.236,0.244,0.328,0.439,0.186
+                       c0.136-0.099,0.261-0.21,0.397-0.312c0.055-0.04,0.129-0.059,0.189-0.012c0.066,0.055,0.103,0.134,0.07,0.216
+                       c-0.024,0.061-0.074,0.108-0.103,0.167c-0.041,0.086-0.116,0.184-0.103,0.267c0.033,0.239-0.015,0.434-0.215,0.598
+                       c-0.041,0.036-0.041,0.121-0.05,0.185c-0.074,0.444-0.272,0.792-0.788,0.908c-0.02,0.004-0.03,0.049-0.044,0.078
+                       c0.127,0.059,0.217-0.075,0.34-0.049c0.114,0.027,0.196-0.042,0.281-0.098c0.057-0.038,0.127-0.058,0.196-0.033
+                       c0.223,0.075,0.368-0.05,0.493-0.181c0.091-0.097,0.174-0.198,0.289-0.271c0.139-0.088,0.267-0.149,0.42-0.027
+                       c0.132,0.104,0.254,0.069,0.364-0.039c0.048-0.047,0.098-0.091,0.151-0.134c0.114-0.093,0.356-0.064,0.446,0.057
+                       c0.05,0.073,0.046,0.165-0.007,0.229c-0.072,0.089-0.177,0.153-0.253,0.237c-0.037,0.042-0.079,0.085-0.115,0.13
+                       c0.07,0.017,0.146,0.053,0.249,0.11c0.299,0.165,0.631,0.279,0.894,0.493c0.15,0.12,0.369,0.157,0.507,0.304
+                       c0.062,0.067,0.182,0.006,0.282-0.038c-0.169-0.177-0.406-0.29-0.571-0.467c-0.064-0.069-0.115-0.124-0.127-0.207
+                       c-0.009-0.068-0.031-0.121-0.119-0.164c-0.145-0.071-0.167-0.234-0.105-0.318c0.095-0.134-0.037-0.277,0.086-0.395
+                       c0.046-0.041,0.017-0.104-0.022-0.153c-0.174-0.222-0.261-0.473-0.306-0.734c-0.022-0.13-0.077-0.236-0.206-0.313
+                       c-0.055-0.031-0.103-0.071-0.15-0.109c-0.232-0.177-0.242-0.206-0.108-0.459c0.029-0.051,0.08-0.098,0.018-0.144
+                       c-0.151-0.108-0.241-0.253-0.342-0.395c-0.047-0.066-0.189-0.084-0.183-0.177c0.004-0.124,0.154-0.169,0.244-0.244
+                       c0.066-0.055,0.169-0.082,0.251-0.126c0.115-0.062,0.117-0.088,0.037-0.2c-0.103-0.139-0.103-0.139,0.029-0.253
+                       c0.035-0.029,0.057-0.073,0.095-0.096c0.349-0.206,0.327-0.281,0.713-0.047c0.064,0.04,0.134,0.075,0.198,0.112
+                       c0.117-0.049,0.026-0.091,0.013-0.132c-0.024-0.064-0.065-0.131-0.068-0.194c-0.002-0.054,0.035-0.112-0.024-0.154
+                       c-0.156-0.108-0.105-0.21,0.007-0.314c0.065-0.061,0.127-0.124,0.189-0.187c0.082-0.084,0.182-0.108,0.307-0.073
+                       c0.062,0.016,0.126,0.027,0.191,0.038c0.084,0.016,0.186,0.118,0.248,0.016c0.046-0.073-0.057-0.149-0.121-0.209
+                       c-0.089-0.08-0.197-0.14-0.162-0.277c0.119-0.482-0.118-0.89-0.414-1.276c-0.084-0.107-0.066-0.175,0.02-0.254
+                       c0.055-0.049,0.108-0.113,0.177-0.137c0.126-0.045,0.176-0.124,0.176-0.224c0-0.289,0.259-0.391,0.498-0.507
+                       c0.06-0.029,0.136-0.029,0.189,0.01c0.138,0.098,0.318,0.044,0.466,0.1c0.041-0.187-0.022-0.351-0.155-0.499
+                       c-0.044-0.049-0.046-0.103-0.003-0.151c0.058-0.069,0.103-0.142,0.175-0.195c0.069-0.053,0.16-0.098,0.248-0.122
+                       c0.089-0.024,0.141,0.059,0.213,0.086c0.06,0.022,0.127,0.073,0.177,0.063c0.334-0.071,0.415,0.124,0.418,0.318
+                       c0.002,0.177,0.094,0.246,0.259,0.298c0.232,0.076,0.423,0.203,0.586,0.362c0.121,0.12,0.141,0.177,0.029,0.287
+                       c-0.123,0.12-0.177,0.257-0.248,0.394c-0.077,0.14-0.033,0.34-0.269,0.407c-0.004,0.002-0.004,0.029,0,0.037
+                       c0.008,0.012,0.03,0.027,0.039,0.024c0.046-0.011,0.096-0.019,0.134-0.039c0.206-0.114,0.406-0.23,0.608-0.346
+                       c0.119-0.071,0.229-0.083,0.363-0.015c0.113,0.057,0.215,0.121,0.309,0.199c0.215,0.181,0.229,0.22,0.007,0.397
+                       c-0.172,0.136-0.207,0.344-0.394,0.466c-0.017,0.012-0.008,0.053-0.01,0.078c-0.011,0.081,0.063,0.147,0.141,0.124
+                       c0.048-0.011,0.092-0.029,0.136-0.044c0.12-0.038,0.228-0.12,0.366-0.052c0.196,0.102,0.393,0.204,0.493,0.389
+                       c0.014,0.027-0.01,0.082-0.037,0.108c-0.091,0.079-0.187,0.154-0.286,0.224c-0.142,0.098-0.184,0.22-0.153,0.369
+                       c0.014,0.067,0.004,0.138,0.022,0.207c0.062,0.224,0.152,0.445,0.027,0.681c-0.032,0.053,0.004,0.135,0.014,0.202
+                       c0.017,0.114,0.086,0.167,0.222,0.18c0.417,0.038,0.533,0.089,0.823,0.362c-0.033,0.116-0.143,0.182-0.229,0.264
+                       c-0.096,0.088-0.166,0.17-0.056,0.286c0.034,0.036,0.013,0.08-0.022,0.114c-0.052,0.051-0.124,0.092-0.1,0.177
+                       c0.04,0.139-0.228,0.306-0.011,0.406c0.154,0.073,0.255-0.133,0.394-0.198c0.134-0.064,0.223-0.08,0.351,0
+                       c0.105,0.067,0.204,0.133,0.283,0.222c0.153,0.171,0.167,0.175-0.015,0.344c-0.09,0.089-0.13,0.179-0.165,0.288
+                       c-0.048,0.16-0.108,0.366-0.086,0.48c0.009,0.057,0,0.11-0.053,0.151c-0.101,0.075-0.055,0.151,0.007,0.218
+                       c0.142,0.143,0.189,0.277,0.007,0.43c-0.08,0.067-0.095,0.171-0.06,0.271c0.024,0.066,0.029,0.135,0.041,0.204
+                       c0.028,0.177-0.02,0.324-0.232,0.409c-0.057,0.024-0.098,0.073-0.136,0.102c-0.029,0.131,0.153,0.088,0.175,0.182
+                       c0.021,0.085,0.126,0.12,0.196,0.177c0.105,0.087,0.117,0.202-0.005,0.291c-0.201,0.141-0.175,0.338-0.208,0.517
+                       c-0.007,0.051,0.033,0.117-0.029,0.151c-0.165,0.093-0.237,0.212-0.239,0.381c0,0.069-0.096,0.04-0.158,0.04
+                       c-0.18,0.002-0.215,0.019-0.224,0.149c-0.015,0.21-0.07,0.406-0.21,0.584c-0.026,0.032-0.022,0.081,0.026,0.11
+                       c0.047,0.029,0.093,0.009,0.127-0.024c0.114-0.124,0.255-0.216,0.444-0.232c0.092-0.008,0.153-0.046,0.193-0.108
+                       c0.053-0.078,0.137-0.115,0.237-0.133c0.129-0.024,0.223-0.093,0.323-0.169c0.204-0.151,0.445-0.264,0.676-0.389
+                       c0.017-0.011,0.08,0,0.087,0.012c0.081,0.159,0.31,0.172,0.419,0.321c0.133,0.185,0.179,0.269,0.056,0.433
+                       c-0.025,0.035-0.069,0.061-0.099,0.093c-0.132,0.137-0.204,0.295-0.081,0.452c0.099,0.129-0.015,0.205-0.055,0.3
+                       c-0.003,0-0.003-0.002-0.004-0.002c-0.002,0-0.002,0.002-0.002,0.002c-0.113,0-0.225-0.008-0.336-0.002
+                       c-0.084,0.006-0.153,0.049-0.184,0.12c-0.009,0.022,0,0.053,0.007,0.078c0.004,0.011,0.029,0.027,0.037,0.024
+                       c0.167-0.058,0.391-0.032,0.476-0.22h0.003h0.003c0.284,0.067,0.38,0.277,0.497,0.473c0.034,0.051,0.01,0.107-0.031,0.153
+                       c-0.035,0.047-0.074,0.091-0.114,0.134c-0.16,0.157-0.228,0.314-0.099,0.524c0.088,0.141,0.037,0.23-0.167,0.279
+                       c-0.342,0.082-0.571,0.255-0.727,0.515c-0.103,0.17-0.182,0.337-0.094,0.544c0.081,0.194-0.024,0.379-0.158,0.542
+                       c-0.064,0.079-0.152,0.143-0.224,0.217c-0.074,0.078-0.143,0.136-0.281,0.134c-0.158-0.003-0.024,0.186-0.16,0.217
+                       c-0.058,0.013-0.185,0.012-0.157,0.055c0.101,0.16-0.009,0.289-0.038,0.433c-0.016,0.089,0.065,0.165,0.17,0.167
+                       c0.132,0.004,0.262-0.007,0.363-0.091c0.129-0.112,0.254-0.222,0.467-0.153c0.009,0.004,0.038-0.003,0.042-0.012
+                       c0.222-0.271,0.691-0.235,0.907-0.517c0.019-0.023,0.088-0.033,0.134-0.031c0.136,0.014,0.004,0.213,0.18,0.198
+                       c0.105-0.011,0.198-0.027,0.235,0.082c0.004,0.016,0.009,0.028,0.014,0.04c0.033,0.112,0.256,0.104,0.224,0.246
+                       c-0.023,0.102-0.158,0.131-0.236,0.2c-0.056,0.045-0.048,0.091-0.034,0.149c0.043,0.159,0.149,0.309,0.12,0.479
+                       c-0.299,0.173-0.301,0.173-0.61,0.189c-0.086,0.004-0.16,0.024-0.208,0.087c-0.064,0.084-0.167,0.131-0.257,0.188
+                       c-0.041,0.027-0.041,0.08-0.006,0.108c0.031,0.025,0.096,0.052,0.125,0.04c0.118-0.047,0.234-0.1,0.34-0.164
+                       c0.1-0.065,0.184-0.109,0.299-0.018c0.062,0.049,0.115,0.004,0.167-0.029c0.182-0.118,0.368-0.232,0.55-0.346
+                       c0.076-0.047,0.143-0.047,0.22,0.006c0.167,0.12,0.336,0.233,0.555,0.285c0.079,0.017,0.1,0.09,0.071,0.133
+                       c-0.155,0.228-0.141,0.463-0.092,0.71c0.029,0.142-0.06,0.226-0.256,0.281c-0.145,0.038-0.217,0.105-0.21,0.238
+                       c0.003,0.079-0.008,0.155-0.027,0.228c0.068,0.02,0.134,0.042,0.177,0.085c0.283,0.291,0.66,0.275,1.021,0.31
+                       c0.07-0.151-0.033-0.233-0.093-0.324c-0.062-0.098-0.136-0.187-0.189-0.286c-0.05-0.098,0.064-0.238,0.179-0.24
+                       c0.146-0.002,0.276,0.038,0.368,0.144c0.088,0.1,0.163,0.206,0.251,0.306c0.07,0.078,0.218,0.067,0.263-0.024
+                       c0.072-0.144,0.168-0.291,0.189-0.444c0.037-0.228,0.187-0.375,0.333-0.53c0.112-0.118,0.211-0.106,0.344,0.022
+                       c0.02,0.022,0.033,0.055,0.055,0.08c0.066,0.069,0.139,0.091,0.218,0.018c0.263-0.242,0.347-0.293,0.481-0.132
+                       c0.007-0.006,0.014-0.015,0.022-0.021c0.492-0.413,0.638-0.45,1.214-0.122c0.505,0.289,1.073,0.495,1.521,0.865
+                       c0.251,0.207,0.626,0.278,0.858,0.535c0.105,0.116,0.313,0.016,0.483-0.063c-0.285-0.306-0.687-0.503-0.966-0.814
+                       c-0.105-0.118-0.189-0.216-0.208-0.358c-0.014-0.12-0.053-0.208-0.201-0.281c-0.251-0.124-0.281-0.406-0.172-0.55
+                       c0.172-0.224-0.05-0.477,0.163-0.672c0.079-0.073,0.031-0.182-0.033-0.267c-0.294-0.383-0.433-0.817-0.502-1.265
+                       c-0.033-0.224-0.124-0.408-0.347-0.543c-0.091-0.054-0.17-0.123-0.251-0.187c-0.395-0.313-0.412-0.364-0.173-0.79
+                       c0.05-0.089,0.144-0.171,0.039-0.249c-0.258-0.193-0.408-0.44-0.577-0.685c-0.079-0.116-0.319-0.154-0.31-0.311
+                       c0.014-0.211,0.272-0.286,0.428-0.413c0.117-0.095,0.294-0.135,0.435-0.21c0.196-0.104,0.2-0.149,0.065-0.342
+                       c-0.171-0.244-0.171-0.242,0.06-0.438c0.06-0.048,0.097-0.119,0.165-0.157c0.608-0.348,0.571-0.479,1.223-0.066
+                       c0.111,0.07,0.23,0.131,0.337,0.192c0.204-0.078,0.048-0.151,0.024-0.221c-0.038-0.114-0.105-0.225-0.11-0.338
+                       c-0.002-0.091,0.066-0.191-0.033-0.262c-0.263-0.191-0.175-0.364,0.022-0.542c0.112-0.102,0.22-0.208,0.327-0.314
+                       c0.145-0.144,0.318-0.183,0.529-0.12c0.104,0.029,0.217,0.049,0.327,0.068c0.145,0.028,0.318,0.207,0.428,0.034
+                       c0.081-0.126-0.094-0.259-0.206-0.361c-0.149-0.138-0.329-0.242-0.268-0.48c0.217-0.825-0.175-1.531-0.672-2.2
+                       c-0.138-0.184-0.11-0.301,0.042-0.432c0.096-0.084,0.188-0.191,0.307-0.233c0.217-0.073,0.305-0.208,0.311-0.382
+                       c0.009-0.493,0.453-0.665,0.87-0.856c0.101-0.047,0.234-0.047,0.32,0.018c0.237,0.171,0.548,0.084,0.799,0.182v0.002h0.002
+                       c0.093,0.226,0.411,0.226,0.564,0.395c0.009,0.011,0.108-0.014,0.136-0.042c0.029-0.031,0.048-0.095,0.029-0.126
+                       c-0.033-0.059-0.091-0.135-0.153-0.149c-0.189-0.04-0.382-0.053-0.576-0.078v-0.002h-0.002c0.074-0.32-0.027-0.601-0.25-0.861
+                       c-0.073-0.084-0.076-0.173-0.001-0.259c0.097-0.112,0.183-0.24,0.305-0.328c0.123-0.091,0.277-0.163,0.433-0.202
+                       c0.149-0.04,0.237,0.102,0.36,0.15c0.104,0.038,0.216,0.132,0.302,0.114c0.576-0.115,0.707,0.222,0.707,0.552
+                       c0,0.304,0.151,0.422,0.433,0.519c0.397,0.136,0.722,0.355,0.994,0.633c0.206,0.208,0.239,0.308,0.041,0.493
+                       c-0.215,0.201-0.308,0.439-0.439,0.671c-0.132,0.238-0.065,0.584-0.472,0.69c-0.007,0.002-0.009,0.047,0.002,0.067
+                       c0.009,0.018,0.044,0.045,0.06,0.04c0.081-0.016,0.168-0.029,0.235-0.065c0.354-0.191,0.704-0.386,1.053-0.583
+                       c0.205-0.116,0.394-0.134,0.622-0.016c0.193,0.1,0.365,0.213,0.523,0.348c0.364,0.312,0.39,0.381,0,0.684
+                       c-0.296,0.23-0.365,0.583-0.688,0.789c-0.03,0.02-0.015,0.089-0.022,0.136c-0.02,0.135,0.105,0.249,0.239,0.215
+                       c0.081-0.017,0.157-0.047,0.237-0.073c0.203-0.064,0.394-0.204,0.631-0.078c0.333,0.175,0.665,0.358,0.832,0.676
+                       c0.024,0.044-0.019,0.141-0.066,0.184c-0.158,0.133-0.325,0.259-0.5,0.379c-0.244,0.165-0.32,0.373-0.272,0.628
+                       c0.022,0.118,0.004,0.24,0.033,0.353c0.098,0.389,0.246,0.773,0.022,1.173c-0.053,0.092,0.002,0.233,0.016,0.35
+                       c0.027,0.193,0.144,0.286,0.379,0.311c0.714,0.072,0.911,0.164,1.398,0.64c-0.059,0.193-0.251,0.307-0.402,0.444
+                       c-0.165,0.151-0.287,0.291-0.103,0.493c0.057,0.063,0.019,0.136-0.04,0.193c-0.091,0.086-0.213,0.157-0.175,0.3
+                       c0.065,0.244-0.404,0.521-0.035,0.699c0.262,0.131,0.444-0.222,0.683-0.33c0.23-0.104,0.382-0.132,0.603,0.008
+                       c0.179,0.116,0.344,0.23,0.481,0.388c0.255,0.296,0.279,0.303-0.037,0.591c-0.159,0.147-0.235,0.303-0.294,0.491
+                       c-0.086,0.273-0.193,0.623-0.165,0.817c0.017,0.102-0.002,0.19-0.092,0.258c-0.175,0.131-0.099,0.261,0.007,0.374
+                       c0.237,0.252,0.318,0.48-0.002,0.739c-0.139,0.112-0.17,0.291-0.11,0.466c0.038,0.113,0.045,0.23,0.062,0.348
+                       c0.046,0.308-0.04,0.559-0.411,0.699c-0.096,0.036-0.167,0.12-0.235,0.169c-0.053,0.226,0.261,0.157,0.294,0.318
+                       c0.031,0.144,0.213,0.208,0.329,0.308c0.18,0.153,0.195,0.35-0.016,0.497c-0.351,0.242-0.313,0.576-0.371,0.886
+                       c-0.017,0.086,0.05,0.202-0.057,0.257c-0.285,0.155-0.412,0.362-0.421,0.651c-0.003,0.117-0.163,0.064-0.27,0.066
+                       c-0.311,0-0.371,0.029-0.393,0.249c-0.033,0.36-0.132,0.695-0.378,0.996c-0.048,0.055-0.041,0.142,0.04,0.191
+                       c0.082,0.049,0.161,0.02,0.219-0.038c0.2-0.21,0.444-0.361,0.772-0.388c0.152-0.012,0.26-0.073,0.334-0.182
+                       c0.094-0.134,0.237-0.193,0.408-0.225c0.225-0.039,0.383-0.151,0.56-0.277c0.354-0.255,0.775-0.444,1.172-0.654
+                       c0.033-0.018,0.139,0,0.148,0.024c0.134,0.275,0.529,0.3,0.71,0.559c0.223,0.318,0.299,0.462,0.081,0.743
+                       c-0.042,0.061-0.117,0.1-0.172,0.155c-0.23,0.234-0.357,0.504-0.153,0.777c0.167,0.224-0.029,0.348-0.103,0.51
+                       c-0.004,0-0.007-0.002-0.009-0.002c-0.003,0.002-0.005,0.005-0.005,0.007c-0.192-0.007-0.386-0.023-0.574-0.014
+                       c-0.143,0.008-0.265,0.08-0.318,0.202c-0.016,0.04-0.002,0.091,0.01,0.134c0.005,0.019,0.045,0.048,0.057,0.044
+                       c0.292-0.096,0.676-0.044,0.825-0.365h0.011c0-0.002,0-0.002,0.002-0.005c0.087,0.022,0.16,0.055,0.23,0.091
+                       c0.391-0.144,0.593-0.3,0.633-0.642c0.019-0.155,0.055-0.308,0.101-0.459c0.068-0.222,0.206-0.258,0.498-0.201
+                       c0.394,0.075,0.729,0.311,1.15,0.305c0.064-0.002,0.148-0.047,0.184-0.093c0.035-0.041,0.049-0.149,0.022-0.167
+                       c-0.393-0.251-0.467-0.534-0.195-0.889c0.105-0.138,0.116-0.301-0.004-0.44c-0.208-0.246-0.208-0.53-0.224-0.807
+                       c-0.008-0.12-0.013-0.291,0.071-0.356c0.548-0.417,0.483-0.98,0.562-1.516c0.034-0.212,0.127-0.417,0.294-0.597
+                       c0.272-0.29,0.399-0.326,0.93-0.151c0.201,0.067,0.358,0.098,0.415-0.124c0.056-0.198,0.232-0.315,0.388-0.446
+                       c0.077-0.063,0.167-0.157,0.255-0.159c0.447-0.023,0.871,0.092,1.294,0.194c0.22,0.056,0.413,0.14,0.476,0.352
+                       c0.009,0.029,0.024,0.057,0.035,0.086c0.064,0.16,0.198,0.157,0.356,0.11c0.298-0.082,0.491,0.034,0.646,0.24
+                       c0.16,0.216,0.327,0.424,0.148,0.688c-0.057,0.08-0.136,0.151-0.177,0.238c-0.128,0.257,0.026,0.508,0.344,0.572
+                       c0.072,0.013,0.149,0.021,0.221,0.019c0.183-0.012,0.365-0.029,0.6-0.049c0.132,0.304,0.232,0.637,0.419,0.933
+                       c0.246,0.388,0.222,0.707-0.177,0.998c-0.11,0.08-0.239,0.16-0.23,0.297c0.002,0.047,0.081,0.129,0.122,0.126
+                       c0.143-0.006,0.332-0.002,0.418-0.073c0.447-0.371,0.866-0.14,1.284-0.051c0.058,0.351-0.358,0.442-0.372,0.699
+                       c0.06,0.109,0.172,0.093,0.279,0.109c0.555,0.075,0.621,0.168,0.277,0.467c-0.293,0.256-0.461,0.562-0.609,0.877
+                       c-0.072,0.153-0.01,0.308,0.224,0.357c0.203,0.042,0.344,0.133,0.239,0.326c-0.098,0.175-0.165,0.348-0.065,0.535
+                       c0.184,0.344,0.197,0.717,0.219,1.1c0.485-0.002,0.92,0.114,1.324-0.124c0.084-0.049,0.206-0.027,0.301,0.045
+                       c0.39,0.29,0.481,0.583,0.331,1.001c-0.199,0.548-0.568,0.999-1.11,1.416c0.474,0.129,0.71,0.44,0.909,0.835
+                       c0.18-0.158,0.265-0.256,0.378-0.324c0.081-0.051,0.197-0.067,0.3-0.087c0.027-0.006,0.066,0.02,0.099,0.033
+                       c1.392,0.558,1.249,0.601,0.254,1.436c-0.364,0.305-0.808,0.623-1.365,0.733c-0.089,0.017-0.18,0.122-0.125,0.224
+                       c0.029,0.049,0.123,0.117,0.165,0.108c0.572-0.124,0.777,0.259,1.038,0.54c0.139,0.153,0.235,0.337,0.354,0.501
+                       c0.046-0.047,0.116-0.051,0.223-0.009c0.044,0.019,0.086,0.053,0.133,0.066c0.027,0.007,0.067-0.013,0.087-0.033
+                       c0.021-0.022,0.031-0.057,0.029-0.086c-0.002-0.032-0.017-0.067-0.039-0.087c-0.251-0.251-0.272-0.536-0.172-0.848
+                       c0.014-0.047,0.019-0.096,0.031-0.142c0.005-0.013,0.022-0.024,0.035-0.04c0.166-0.013,0.333-0.023,0.5-0.041
+                       c0.303-0.035,0.584-0.002,0.832,0.182c0.094,0.069,0.206,0.118,0.313,0.169c0.042,0.02,0.105,0.042,0.141,0.029
+                       c0.07-0.031,0.068-0.106,0.06-0.171c-0.004-0.031-0.009-0.07-0.033-0.088c-0.217-0.16-0.299-0.373-0.329-0.623
+                       c-0.015-0.103-0.118-0.193-0.167-0.293c-0.037-0.071,0.025-0.171,0.11-0.187c0.066-0.015,0.136-0.027,0.205-0.023
+                       c0.12,0.004,0.228,0.004,0.349-0.04c0.208-0.075,0.432-0.078,0.639,0.049c0.116,0.067,0.256,0.096,0.38,0.146
+                       c0.07,0.028,0.142,0.042,0.189-0.015c0.137-0.171,0.261-0.091,0.395,0.004c0.044,0.029,0.098,0.029,0.14-0.011
+                       c0.055-0.053,0.064-0.124,0.011-0.173c-0.235-0.222-0.414-0.473-0.488-0.779c-0.199-0.169-0.272-0.397-0.379-0.615
+                       c-0.06-0.126-0.148-0.258-0.306-0.313c-0.233-0.084-0.299-0.304-0.435-0.464c-0.07-0.08-0.077-0.184-0.039-0.277
+                       c0.075-0.184,0.01-0.332-0.075-0.501c-0.088-0.171-0.133-0.361-0.184-0.548c-0.017-0.065,0.017-0.128,0.081-0.161
+                       c0.068-0.036,0.134-0.012,0.189,0.037c0.075,0.063,0.134,0.144,0.248,0.169c0.091-0.1-0.033-0.136-0.062-0.191
+                       c-0.029-0.057-0.079-0.104-0.122-0.155c-0.057-0.067-0.091-0.138-0.047-0.22c0.04-0.087,0.205-0.167,0.305-0.139
+                       c0.081,0.019,0.18,0.046,0.231,0.1c0.283,0.29,0.66,0.274,1.022,0.31c0.068-0.151-0.033-0.233-0.094-0.324
+                       c-0.062-0.098-0.136-0.187-0.189-0.287c-0.05-0.095,0.065-0.237,0.18-0.239c0.145-0.002,0.275,0.037,0.367,0.144
+                       c0.089,0.1,0.163,0.206,0.252,0.306c0.07,0.078,0.217,0.066,0.263-0.024c0.071-0.144,0.167-0.291,0.191-0.444
+                       c0.033-0.228,0.184-0.375,0.33-0.53c0.113-0.118,0.21-0.107,0.344,0.021c0.022,0.022,0.033,0.056,0.057,0.081
+                       c0.065,0.068,0.136,0.091,0.215,0.018c0.34-0.317,0.378-0.311,0.615,0.064c0.02,0.027,0.032,0.057,0.048,0.087
+                       c0.117,0.18,0.117,0.182,0.327,0.143c0.051-0.009,0.096-0.035,0.149-0.041c0.101-0.016,0.172,0.037,0.193,0.119
+                       c0.026,0.109,0.024,0.222,0.035,0.333c0.032,0.236,0.245,0.328,0.441,0.186c0.136-0.1,0.263-0.21,0.397-0.312
+                       c0.055-0.04,0.128-0.061,0.189-0.012c0.066,0.056,0.102,0.134,0.069,0.216c-0.024,0.059-0.073,0.108-0.099,0.167
+                       c-0.044,0.086-0.118,0.184-0.105,0.266c0.033,0.24-0.015,0.435-0.213,0.599c-0.044,0.036-0.044,0.12-0.053,0.185
+                       c-0.074,0.444-0.273,0.792-0.79,0.908c-0.018,0.004-0.026,0.048-0.042,0.078c0.126,0.059,0.217-0.075,0.339-0.049
+                       c0.116,0.027,0.197-0.043,0.283-0.098c0.06-0.038,0.129-0.058,0.196-0.033c0.225,0.075,0.368-0.05,0.493-0.181
+                       c0.09-0.098,0.174-0.198,0.292-0.271c0.136-0.088,0.264-0.149,0.418-0.027c0.132,0.104,0.254,0.069,0.364-0.039
+                       c0.048-0.047,0.097-0.091,0.15-0.134c0.118-0.092,0.359-0.065,0.448,0.057c0.05,0.073,0.046,0.165-0.007,0.229
+                       c-0.072,0.088-0.174,0.153-0.252,0.237c-0.088,0.098-0.205,0.191-0.183,0.334c0.02,0.164-0.055,0.263-0.18,0.373
+                       c-0.134,0.117-0.25,0.255-0.318,0.43c-0.05,0.129-0.18,0.23-0.268,0.348c-0.048,0.065-0.091,0.135-0.125,0.208
+                       c-0.018,0.047-0.002,0.098,0.046,0.127c0.029,0.013,0.07,0.027,0.098,0.017c0.062-0.019,0.132-0.041,0.18-0.082
+                       c0.064-0.053,0.112-0.122,0.164-0.186c0.156-0.185,0.355-0.247,0.598-0.185c0.148,0.038,0.284,0.071,0.452,0.011
+                       c0.155-0.057,0.334,0.136,0.303,0.291c-0.019,0.096-0.055,0.185-0.132,0.255c-0.074,0.069-0.184,0.134-0.176,0.229
+                       c0.024,0.279-0.201,0.383-0.382,0.524c-0.123,0.092-0.298,0.131-0.309,0.332c-0.01,0.136-0.175,0.189-0.285,0.264
+                       c-0.022,0.015-0.038,0.057-0.031,0.082c0.017,0.053,0.069,0.067,0.121,0.051c0.096-0.031,0.211-0.098,0.276,0.018
+                       c0.079,0.139,0.156,0.31-0.004,0.44c-0.084,0.068-0.134,0.129-0.149,0.23c-0.044,0.297-0.182,0.54-0.45,0.728
+                       c-0.174,0.124-0.169,0.256-0.035,0.417c0.062,0.073,0.139,0.102,0.215,0.024c0.091-0.093,0.191-0.144,0.323-0.098
+                       c0.191,0.069,0.404-0.133,0.586,0.045c0.112-0.03,0.213-0.087,0.33-0.118c0.184-0.051,0.351-0.133,0.531,0
+                       c0.013,0.012,0.031,0.012,0.048,0.016c0.115,0.024,0.27-0.018,0.332,0.098c0.079,0.153-0.029,0.308-0.057,0.463
+                       c-0.004,0.02-0.048,0.045-0.077,0.051c-0.064,0.014-0.16,0.012-0.139,0.098c0.068,0.269-0.158,0.409-0.287,0.588
+                       c-0.04,0.055-0.099,0.093-0.176,0.084c-0.094-0.011-0.177,0.01-0.235,0.075c-0.141,0.163-0.301,0.181-0.507,0.114
+                       c-0.129-0.042-0.198,0.035-0.153,0.155c0.048,0.126,0.072,0.252,0.048,0.377c-0.026,0.149,0.051,0.242,0.163,0.331
+                       c0.167,0.137,0.235,0.15,0.366-0.033c0.101-0.141,0.253-0.16,0.38-0.238c0.122-0.079,0.222-0.034,0.323,0.051
+                       c0.153,0.129,0.251,0.208,0.335,0.246c0.047-0.014,0.093-0.002,0.134,0.024c0.05-0.007,0.108-0.027,0.176-0.067
+                       c-0.026-0.031-0.051-0.062-0.079-0.093c-0.057-0.066-0.09-0.137-0.05-0.222c0.044-0.084,0.206-0.165,0.309-0.137
+                       c0.081,0.02,0.176,0.045,0.229,0.1c0.285,0.291,0.66,0.275,1.024,0.31c0.066-0.15-0.037-0.233-0.096-0.326
+                       c-0.062-0.096-0.136-0.184-0.189-0.284c-0.05-0.098,0.065-0.238,0.182-0.24c0.147-0.002,0.275,0.038,0.369,0.144
+                       c0.086,0.1,0.16,0.206,0.248,0.307c0.07,0.076,0.217,0.066,0.263-0.025c0.075-0.147,0.167-0.291,0.191-0.445
+                       c0.033-0.227,0.187-0.374,0.332-0.529c0.111-0.118,0.208-0.106,0.342,0.022c0.024,0.022,0.035,0.055,0.057,0.08
+                       c0.065,0.069,0.136,0.091,0.217,0.018c0.34-0.315,0.377-0.31,0.616,0.064c0.016,0.027,0.027,0.058,0.047,0.085
+                       c0.114,0.182,0.114,0.185,0.325,0.147c0.05-0.01,0.098-0.035,0.149-0.042c0.101-0.016,0.174,0.038,0.193,0.12
+                       c0.027,0.108,0.024,0.222,0.039,0.332c0.029,0.236,0.24,0.328,0.439,0.187c0.136-0.1,0.261-0.211,0.395-0.313
+                       c0.055-0.039,0.129-0.063,0.191-0.011c0.064,0.055,0.103,0.133,0.07,0.215c-0.024,0.061-0.075,0.109-0.104,0.167
+                       c-0.042,0.087-0.117,0.184-0.104,0.267c0.035,0.239-0.013,0.434-0.213,0.599c-0.043,0.035-0.043,0.12-0.053,0.184
+                       c-0.072,0.444-0.273,0.792-0.787,0.908c-0.021,0.004-0.029,0.049-0.042,0.078c0.124,0.059,0.218-0.075,0.34-0.049
+                       c0.112,0.027,0.193-0.042,0.279-0.098c0.06-0.037,0.129-0.057,0.198-0.033c0.223,0.075,0.366-0.049,0.493-0.182
+                       c0.091-0.096,0.172-0.197,0.289-0.27c0.139-0.09,0.266-0.149,0.418-0.026c0.132,0.104,0.254,0.066,0.364-0.04
+                       c0.048-0.047,0.097-0.091,0.15-0.133c0.118-0.093,0.359-0.065,0.447,0.057c0.053,0.071,0.048,0.165-0.004,0.228
+                       c-0.072,0.089-0.177,0.153-0.254,0.238c-0.086,0.098-0.203,0.19-0.184,0.332c0.022,0.165-0.055,0.264-0.179,0.373
+                       c-0.134,0.118-0.248,0.256-0.318,0.429c-0.05,0.131-0.18,0.23-0.268,0.349c-0.048,0.065-0.088,0.136-0.122,0.209
+                       c-0.022,0.047-0.005,0.098,0.046,0.124c0.027,0.015,0.07,0.029,0.096,0.02c0.064-0.02,0.132-0.042,0.18-0.083
+                       c0.064-0.053,0.111-0.121,0.165-0.186c0.154-0.184,0.356-0.246,0.598-0.187c0.15,0.04,0.287,0.073,0.452,0.014
+                       c0.156-0.057,0.337,0.136,0.306,0.29c-0.018,0.097-0.055,0.185-0.134,0.256c-0.072,0.069-0.184,0.133-0.174,0.228
+                       c0.024,0.279-0.204,0.383-0.386,0.524c-0.121,0.093-0.296,0.132-0.308,0.333c-0.002,0.041-0.024,0.078-0.053,0.106
+                       c0.468,0.108,0.93,0.21,1.396,0.32c1.15-0.002,2.302-0.007,3.452-0.02c-0.11,0.108-0.349,0.261-0.588,0.406l-1.602-0.098
+                       c0.428,0.096,0.858,0.195,1.284,0.291c0.099-0.059,0.208-0.124,0.318-0.193l2.529,0.158c1.553-0.334,4.06-0.034,6.174,0.381
+                       l3.364,0.209c-0.048-0.232-0.089-0.456-0.103-0.637c0.722,0.053,1.578-0.08,2.405-0.16c0.311-0.179,0.636-0.369,0.973-0.561
+                       c-0.169-0.051-0.344-0.105-0.487-0.207c0.634-0.374,1.365-0.473,2.008-0.67c0.175-0.099,0.357-0.204,0.536-0.308
+                       c-0.134-0.149-1.054-0.12-0.885-0.32c0.5,0.012,1.028-0.029,1.549-0.059c0.248-0.142,0.503-0.287,0.762-0.435
+                       c-0.233-0.177-0.483-0.35-0.604-0.388c0.65-0.154,1.403-0.344,2.173-0.507c0.369-0.21,0.744-0.422,1.126-0.638
+                       c-0.029-0.016-0.055-0.032-0.086-0.045c-0.586-0.244-1.088-0.568-1.293-1.126c-0.053-0.139-0.184-0.192-0.309-0.268
+                       c-0.172-0.104-0.342-0.218-0.498-0.342c-0.15-0.12-0.182-0.258-0.026-0.405c0.101-0.095,0.204-0.194,0.278-0.304
+                       c0.244-0.357,0.495-0.71,0.521-1.143c0.015-0.226,0.118-0.24,0.333-0.078c0.045,0.033,0.079,0.104,0.121,0.109
+                       c0.14,0.011,0.108-0.087,0.096-0.152c-0.044-0.222,0.064-0.359,0.323-0.381c0.362-0.033,0.66-0.286,1.054-0.208
+                       c0.063,0.013,0.168-0.056,0.217-0.112c0.146-0.161,0.34-0.322,0.393-0.506c0.07-0.239,0.141-0.382,0.466-0.35
+                       c0.216,0.022,0.322-0.116,0.423-0.249c0.144-0.191,0.352-0.256,0.619-0.267c0.324-0.014,0.397-0.137,0.318-0.391
+                       c-0.091-0.284-0.347-0.394-0.64-0.499c-0.293-0.104-0.34-0.2-0.163-0.408c0.16-0.189,0.169-0.305-0.047-0.448
+                       c-0.263-0.175-0.489-0.401-0.772-0.542c-0.307-0.147-0.574-0.264-0.581-0.611c-0.002-0.157-0.18-0.259-0.313-0.368
+                       c-0.176-0.142-0.349-0.289-0.512-0.442c-0.103-0.098-0.04-0.258,0.112-0.32c0.026-0.01,0.055-0.02,0.083-0.027
+                       c0.175-0.035,0.4-0.024,0.46-0.203c0.084-0.259,0.031-0.52-0.189-0.725c-0.206-0.19-0.448-0.348-0.663-0.53
+                       c-0.101-0.088,0-0.281,0.151-0.304c0.088-0.012,0.179-0.02,0.27-0.016c0.172,0.007,0.336,0.198,0.501,0.067
+                       c0.096-0.073,0.089-0.235,0.146-0.35c0.055-0.106,0.2-0.167,0.301-0.109c0.318,0.183,0.55,0.089,0.777-0.115
+                       c0.057-0.051,0.143-0.082,0.218-0.124c-0.382-0.324-0.382-0.324-0.375-0.781c0.006-0.442,0.007-0.456,0.55-0.491
+                       c0.189-0.012,0.339-0.042,0.505-0.132c0.415-0.219,0.841-0.3,1.245,0.047c0.224,0.193,0.514,0.116,0.782,0.091
+                       c0.118-0.011,0.182-0.2,0.079-0.249c-0.636-0.297-0.454-0.845-0.571-1.301c-0.035-0.141,0.053-0.251,0.165-0.341
+                       c0.201-0.163,0.134-0.362,0.015-0.498c-0.199-0.223-0.314-0.525-0.544-0.683c-0.363-0.247-0.503-0.441-0.323-0.832
+                       c0.068-0.142-0.152-0.373-0.213-0.566c-0.102-0.332-0.052-0.397,0.38-0.557c0.419-0.154,0.625-0.515,0.481-0.855
+                       c-0.049-0.122-0.119-0.237-0.164-0.361c-0.056-0.154,0.111-0.303,0.317-0.287c0.032,0.002,0.07-0.002,0.092,0.011
+                       c0.401,0.278,0.665-0.006,0.964-0.161c0.162-0.086,0.215-0.202,0.075-0.312c-0.191-0.156-0.224-0.358-0.301-0.553
+                       c-0.174-0.43-0.079-0.715,0.41-0.848c0.429-0.12,0.705-0.401,1.078-0.57c0.239-0.108,0.344-0.277,0.306-0.515
+                       c-0.022-0.124-0.014-0.257,0.01-0.379c0.049-0.259,0.22-0.35,0.525-0.263c0.232,0.066,0.45,0.146,0.708,0.108
+                       c0.159-0.024,0.325,0.031,0.367,0.169c0.072,0.224,0.261,0.317,0.467,0.437c0.234,0.138,0.378,0.348,0.743,0.264
+                       c0.19-0.047,0.326,0.122,0.338,0.295c0.032,0.412-0.029,0.821-0.165,1.216c-0.384,1.112-0.227,0.811,0.443,1.562
+                       c0.069,0.078,0.236,0.115,0.265,0.195c0.096,0.261,0.285,0.308,0.564,0.241c0.089-0.02,0.183-0.024,0.273-0.024
+                       c0.145-0.002,0.246,0.124,0.156,0.209c-0.22,0.2-0.353,0.41-0.259,0.694c0.018,0.061-0.029,0.16-0.083,0.209
+                       c-0.491,0.424-0.59,1.056-1.167,1.434c0.459,0.206,0.467,0.21,0.674-0.016c0.328-0.357,0.775-0.561,1.257-0.721
+                       c0.028-0.006,0.061,0.006,0.092,0.006c0.244-0.008,0.191-0.424,0.549-0.281c0.192,0.078,0.354,0.206,0.581,0.22
+                       c0.092,0.002,0.184,0.022,0.263,0.055c0.095,0.037,0.125,0.131,0.077,0.198c-0.079,0.106-0.197,0.195-0.287,0.297
+                       c-0.077,0.084-0.096,0.173-0.035,0.284c0.187,0.354,0.184,0.357-0.053,0.535c-0.252,0.188-0.5,0.373-0.66,0.632
+                       c-0.083,0.134-0.215,0.256-0.353,0.353c-0.16,0.116-0.395,0.172-0.522,0.305c-0.187,0.198-0.306,0.441-0.452,0.659
+                       c0.015,0.185,0.201,0.177,0.331,0.22c0.134,0.045,0.196,0.211,0.382,0.158c0.173-0.183-0.05-0.447,0.127-0.588
+                       c0.191-0.151,0.466-0.23,0.705-0.342c0.079-0.035,0.169-0.064,0.239-0.113c0.251-0.175,0.514-0.171,0.748,0
+                       c0.169,0.123,0.36,0.199,0.562,0.261c0.323-0.177,0.466-0.495,0.342-0.794c-0.052-0.122-0.122-0.238-0.165-0.359
+                       c-0.058-0.156,0.112-0.303,0.318-0.287c0.029,0.002,0.069-0.004,0.088,0.01c0.401,0.279,0.667-0.005,0.966-0.163
+                       c0.162-0.085,0.213-0.2,0.077-0.31c-0.194-0.156-0.224-0.36-0.301-0.553c-0.175-0.43-0.079-0.717,0.408-0.85
+                       c0.43-0.118,0.705-0.399,1.078-0.57c0.237-0.106,0.344-0.275,0.307-0.515c-0.022-0.122-0.015-0.255,0.009-0.377
+                       c0.05-0.259,0.22-0.353,0.523-0.263c0.235,0.066,0.452,0.147,0.711,0.108c0.16-0.024,0.325,0.031,0.368,0.169
+                       c0.069,0.224,0.261,0.314,0.466,0.437c0.234,0.138,0.377,0.348,0.741,0.262c0.191-0.045,0.327,0.124,0.34,0.297
+                       c0.031,0.412-0.03,0.821-0.166,1.215c-0.384,1.113-0.227,0.813,0.443,1.56c0.068,0.081,0.234,0.118,0.265,0.198
+                       c0.009,0.025,0.018,0.045,0.029,0.063c0-0.057,0.042-0.114,0.139-0.202c0.21-0.2,0.331-0.222,0.645-0.124
+                       c0.046,0.013,0.087,0.045,0.132,0.051c0.072,0.008,0.125-0.027,0.158-0.078s0.035-0.1-0.026-0.144
+                       c-0.206-0.144-0.2-0.147-0.325-0.452c-0.013-0.036-0.057-0.065-0.091-0.093c-0.067-0.053-0.094-0.108-0.019-0.175
+                       c0.055-0.051,0.108-0.102,0.165-0.153c0.283-0.242,0.365-0.267,0.705-0.081c0.296,0.165,0.631,0.283,0.895,0.493
+                       c0.148,0.12,0.368,0.158,0.506,0.307c0.063,0.066,0.182,0.006,0.281-0.04c-0.167-0.175-0.404-0.289-0.571-0.466
+                       c-0.062-0.068-0.112-0.123-0.125-0.208c-0.009-0.069-0.033-0.122-0.119-0.163c-0.149-0.071-0.17-0.235-0.105-0.32
+                       c0.095-0.131-0.037-0.277,0.086-0.392c0.046-0.045,0.016-0.107-0.022-0.156c-0.177-0.221-0.261-0.472-0.306-0.732
+                       c-0.022-0.131-0.077-0.238-0.208-0.315c-0.053-0.031-0.101-0.069-0.149-0.106c-0.233-0.18-0.244-0.209-0.108-0.459
+                       c0.03-0.051,0.081-0.101,0.02-0.144c-0.151-0.112-0.242-0.254-0.342-0.397c-0.048-0.065-0.189-0.085-0.184-0.177
+                       c0.006-0.124,0.156-0.169,0.245-0.244c0.067-0.055,0.169-0.082,0.251-0.124c0.115-0.063,0.117-0.089,0.035-0.203
+                       c-0.103-0.139-0.103-0.139,0.029-0.253c0.034-0.029,0.055-0.071,0.094-0.092c0.352-0.207,0.33-0.285,0.715-0.049
+                       c0.064,0.039,0.134,0.075,0.198,0.11c0.115-0.049,0.026-0.088,0.013-0.131c-0.025-0.065-0.065-0.13-0.07-0.195
+                       c-0.002-0.051,0.038-0.11-0.022-0.151c-0.156-0.11-0.105-0.211,0.005-0.315c0.067-0.062,0.129-0.124,0.189-0.189
+                       c0.083-0.084,0.184-0.105,0.309-0.072c0.062,0.017,0.127,0.029,0.191,0.039c0.084,0.014,0.186,0.116,0.248,0.014
+                       c0.046-0.071-0.057-0.149-0.123-0.208c-0.089-0.081-0.194-0.138-0.161-0.278c0.12-0.481-0.117-0.889-0.415-1.276
+                       c-0.081-0.106-0.064-0.173,0.021-0.253c0.055-0.049,0.108-0.112,0.177-0.136c0.124-0.047,0.176-0.123,0.176-0.226
+                       c0-0.286,0.255-0.391,0.497-0.506c0.061-0.027,0.137-0.029,0.186,0.008c0.142,0.098,0.322,0.045,0.469,0.1
+                       c0.041-0.186-0.022-0.35-0.156-0.499c-0.042-0.049-0.046-0.1-0.002-0.151c0.055-0.067,0.103-0.142,0.175-0.195
+                       c0.069-0.053,0.16-0.096,0.248-0.12c0.086-0.024,0.139,0.058,0.213,0.085c0.06,0.022,0.127,0.075,0.176,0.064
+                       c0.335-0.071,0.417,0.124,0.419,0.318c0.002,0.175,0.092,0.244,0.259,0.297c0.231,0.078,0.423,0.202,0.586,0.362
+                       c0.121,0.119,0.141,0.179,0.026,0.288c-0.122,0.118-0.175,0.258-0.247,0.395c-0.077,0.138-0.033,0.34-0.268,0.407
+                       c-0.005,0-0.005,0.027,0,0.037c0.008,0.011,0.026,0.024,0.037,0.022c0.048-0.01,0.097-0.018,0.136-0.04
+                       c0.204-0.113,0.406-0.23,0.608-0.345c0.119-0.071,0.229-0.083,0.36-0.016c0.115,0.057,0.215,0.122,0.309,0.2
+                       c0.215,0.179,0.231,0.219,0.007,0.399c-0.169,0.136-0.206,0.342-0.393,0.464c-0.016,0.013-0.007,0.053-0.011,0.08
+                       c-0.01,0.078,0.064,0.143,0.143,0.124c0.046-0.012,0.092-0.03,0.136-0.045c0.118-0.04,0.228-0.122,0.366-0.051
+                       c0.196,0.1,0.393,0.204,0.492,0.387c0.015,0.027-0.009,0.084-0.038,0.108c-0.088,0.08-0.184,0.153-0.285,0.224
+                       c-0.143,0.098-0.184,0.222-0.152,0.369c0.011,0.066,0.005,0.139,0.02,0.206c0.063,0.226,0.153,0.446,0.026,0.681
+                       c-0.031,0.056,0.002,0.136,0.013,0.205c0.016,0.11,0.086,0.166,0.224,0.177c0.417,0.04,0.533,0.09,0.82,0.364
+                       c-0.033,0.113-0.144,0.182-0.228,0.261c-0.095,0.089-0.165,0.171-0.055,0.288c0.034,0.036,0.013,0.079-0.021,0.112
+                       c-0.055,0.051-0.125,0.096-0.101,0.177c0.04,0.142-0.23,0.307-0.015,0.409c0.156,0.071,0.259-0.134,0.397-0.201
+                       c0.132-0.062,0.222-0.076,0.349,0.002c0.108,0.065,0.206,0.132,0.285,0.223c0.153,0.171,0.167,0.175-0.015,0.344
+                       c-0.092,0.086-0.134,0.177-0.165,0.288c-0.048,0.157-0.108,0.363-0.088,0.477c0.011,0.058,0.002,0.112-0.05,0.151
+                       c-0.103,0.075-0.055,0.154,0.007,0.218c0.057,0.059,0.096,0.12,0.112,0.177c1.37-0.756,2.761-1.524,4.161-2.296
+                       c-0.029-0.078-0.057-0.163-0.085-0.261c-0.047-0.189-0.192-0.311-0.398-0.398c-0.588-0.244-1.09-0.568-1.296-1.125
+                       c-0.049-0.14-0.184-0.193-0.306-0.267c-0.175-0.106-0.342-0.22-0.498-0.341c-0.152-0.122-0.184-0.26-0.029-0.407
+                       c0.103-0.096,0.204-0.193,0.277-0.304c0.247-0.357,0.496-0.708,0.522-1.143c0.015-0.224,0.117-0.24,0.334-0.078
+                       c0.046,0.033,0.077,0.106,0.12,0.108c0.141,0.012,0.11-0.086,0.096-0.151c-0.044-0.222,0.064-0.359,0.323-0.381
+                       c0.363-0.034,0.659-0.287,1.056-0.207c0.06,0.012,0.165-0.057,0.215-0.113c0.146-0.159,0.34-0.322,0.393-0.507
+                       c0.068-0.239,0.141-0.381,0.466-0.347c0.217,0.019,0.323-0.118,0.423-0.252c0.143-0.19,0.352-0.255,0.621-0.266
+                       c0.055-0.003,0.094-0.012,0.136-0.022c0.015-0.002,0.029-0.007,0.044-0.01c0.007-0.002,0.015-0.002,0.022-0.002
+                       c0.146-0.055,0.174-0.171,0.115-0.357c-0.091-0.285-0.347-0.395-0.641-0.499c-0.292-0.104-0.34-0.2-0.162-0.408
+                       c0.16-0.191,0.169-0.305-0.046-0.447c-0.266-0.177-0.49-0.404-0.775-0.541c-0.306-0.149-0.573-0.267-0.58-0.613
+                       c-0.003-0.158-0.18-0.26-0.313-0.369c-0.177-0.14-0.349-0.288-0.512-0.441c-0.103-0.097-0.038-0.258,0.112-0.32
+                       c0.026-0.012,0.055-0.02,0.083-0.028c0.175-0.035,0.402-0.023,0.459-0.202c0.084-0.259,0.032-0.521-0.189-0.725
+                       c-0.203-0.189-0.446-0.348-0.659-0.53c-0.103-0.089,0-0.281,0.147-0.305c0.089-0.011,0.182-0.019,0.27-0.015
+                       c0.175,0.006,0.337,0.198,0.505,0.067c0.093-0.073,0.086-0.236,0.146-0.35c0.053-0.107,0.198-0.167,0.299-0.109
+                       c0.317,0.183,0.549,0.089,0.779-0.116c0.057-0.051,0.141-0.08,0.217-0.122c-0.384-0.324-0.384-0.324-0.378-0.783
+                       c0.005-0.442,0.009-0.455,0.55-0.491c0.189-0.011,0.339-0.041,0.506-0.131c0.414-0.22,0.842-0.3,1.244,0.047
+                       c0.224,0.193,0.514,0.116,0.784,0.09c0.116-0.011,0.182-0.198,0.077-0.246c-0.636-0.298-0.454-0.848-0.571-1.302
+                       c-0.037-0.141,0.051-0.251,0.165-0.342c0.2-0.161,0.134-0.361,0.014-0.494c-0.198-0.225-0.312-0.529-0.542-0.686
+                       c-0.364-0.249-0.505-0.442-0.323-0.833c0.068-0.141-0.151-0.371-0.213-0.565c-0.103-0.334-0.05-0.395,0.38-0.555
+                       c0.419-0.155,0.625-0.516,0.481-0.856c-0.05-0.122-0.119-0.238-0.165-0.362c-0.055-0.153,0.115-0.3,0.318-0.286
+                       c0.031,0.002,0.069-0.003,0.091,0.011c0.401,0.277,0.667-0.006,0.966-0.163c0.162-0.084,0.213-0.199,0.074-0.312
+                       c-0.191-0.155-0.222-0.357-0.301-0.55c-0.173-0.432-0.079-0.717,0.408-0.85c0.43-0.118,0.706-0.403,1.081-0.57
+                       c0.198-0.091,0.299-0.229,0.305-0.411c-0.009-0.006-0.019-0.015-0.029-0.022c-0.068-0.055-0.042-0.153,0.02-0.222
+                       c-0.003-0.082,0.002-0.161,0.016-0.239c0.05-0.26,0.221-0.351,0.526-0.264c0.172,0.049,0.334,0.106,0.512,0.116
+                       c0.057-0.1,0.197-0.158,0.294-0.102c0.318,0.182,0.549,0.088,0.779-0.114c0.057-0.053,0.141-0.082,0.217-0.124
+                       c-0.384-0.324-0.384-0.324-0.377-0.782c0.007-0.441,0.01-0.457,0.55-0.49c0.189-0.014,0.339-0.045,0.507-0.131
+                       c0.413-0.222,0.841-0.303,1.243,0.046c0.224,0.193,0.514,0.114,0.784,0.089c0.116-0.012,0.182-0.198,0.079-0.246
+                       c-0.635-0.3-0.457-0.845-0.573-1.3c-0.037-0.142,0.055-0.251,0.167-0.342c0.201-0.165,0.132-0.363,0.011-0.497
+                       c-0.198-0.224-0.312-0.528-0.541-0.684c-0.362-0.249-0.506-0.443-0.324-0.834c0.068-0.142-0.15-0.371-0.21-0.566
+                       c-0.105-0.332-0.052-0.395,0.377-0.554c0.419-0.156,0.625-0.517,0.482-0.857c-0.051-0.122-0.12-0.237-0.166-0.359
+                       c-0.055-0.155,0.115-0.302,0.318-0.287c0.031,0.002,0.072-0.004,0.092,0.008c0.402,0.278,0.666-0.006,0.966-0.161
+                       c0.163-0.084,0.213-0.2,0.073-0.313c-0.191-0.153-0.222-0.357-0.301-0.55c-0.172-0.43-0.079-0.716,0.41-0.85
+                       c0.431-0.117,0.705-0.399,1.08-0.57c0.237-0.106,0.344-0.277,0.303-0.514c-0.018-0.123-0.014-0.256,0.01-0.38
+                       c0.051-0.257,0.22-0.351,0.525-0.263c0.235,0.068,0.452,0.148,0.708,0.11c0.162-0.027,0.325,0.029,0.37,0.169
+                       c0.07,0.222,0.261,0.314,0.467,0.438c0.232,0.137,0.378,0.347,0.741,0.261c0.191-0.045,0.325,0.124,0.339,0.295
+                       c0.028,0.413-0.029,0.821-0.167,1.216c-0.385,1.113-0.224,0.815,0.445,1.562c0.069,0.08,0.234,0.117,0.263,0.196
+                       c0.097,0.26,0.284,0.309,0.567,0.243c0.086-0.023,0.18-0.025,0.27-0.025c0.146-0.004,0.248,0.122,0.154,0.206
+                       c-0.22,0.203-0.349,0.411-0.257,0.698c0.019,0.059-0.027,0.159-0.083,0.208c-0.49,0.422-0.588,1.055-1.167,1.434
+                       c0.459,0.206,0.467,0.21,0.674-0.018c0.329-0.357,0.775-0.56,1.258-0.719c0.026-0.009,0.063,0.004,0.091,0.004
+                       c0.244-0.006,0.191-0.423,0.549-0.279c0.193,0.075,0.354,0.207,0.584,0.218c0.088,0.004,0.182,0.024,0.263,0.057
+                       c0.093,0.038,0.124,0.129,0.075,0.198c-0.079,0.107-0.195,0.195-0.287,0.295c-0.077,0.087-0.094,0.175-0.035,0.284
+                       c0.189,0.353,0.183,0.358-0.053,0.535c-0.25,0.191-0.5,0.375-0.66,0.635c-0.083,0.133-0.215,0.253-0.351,0.351
+                       c-0.162,0.115-0.395,0.173-0.521,0.304c-0.19,0.2-0.309,0.442-0.456,0.661c0.017,0.183,0.204,0.178,0.333,0.22
+                       c0.132,0.042,0.194,0.211,0.38,0.156c0.173-0.183-0.048-0.446,0.127-0.586c0.191-0.153,0.466-0.23,0.705-0.342
+                       c0.081-0.038,0.17-0.064,0.239-0.113c0.254-0.177,0.517-0.173,0.748-0.002c0.241,0.177,0.52,0.257,0.812,0.332
+                       c0.122,0.031,0.201,0.165,0.105,0.251c-0.086,0.08-0.16,0.169-0.234,0.255c0.236,0.038,0.409,0.236,0.664,0.226
+                       c0.057-0.002,0.149,0.027,0.173,0.065c0.12,0.195,0.332,0.132,0.516,0.147c0.063,0.004,0.146-0.011,0.149-0.078
+                       c0.005-0.073-0.048-0.134-0.134-0.157c-0.044-0.012-0.096-0.005-0.144-0.01c-0.229-0.018-0.287-0.033-0.301-0.195
+                       c-0.026-0.259-0.222-0.393-0.459-0.481c-0.22-0.08-0.2-0.264-0.303-0.393c-0.022-0.024,0.023-0.115,0.066-0.142
+                       c0.168-0.104,0.275-0.257,0.461-0.353c0.137-0.069,0.184-0.09,0.324-0.006c0.207,0.122,0.444,0.22,0.683,0.292
+                       c0.112,0.036,0.182,0.109,0.294,0.149c0.077-0.152,0.119-0.294,0.002-0.459c-0.064-0.088-0.057-0.212-0.091-0.32
+                       c-0.042-0.129-0.124-0.228-0.303-0.226c-0.114,0-0.174-0.062-0.233-0.129c-0.208-0.23-0.424-0.452-0.733-0.601
+                       c-0.208-0.102-0.316-0.267-0.313-0.484c0.003-0.235-0.031-0.465-0.148-0.685c-0.115-0.209-0.011-0.405,0.095-0.615
+                       c-0.139-0.086-0.241-0.209-0.349-0.328c-0.191-0.22-0.2-0.257-0.009-0.44c0.213-0.2,0.333-0.222,0.648-0.122
+                       c0.046,0.014,0.083,0.045,0.129,0.049c0.072,0.012,0.125-0.027,0.158-0.078c0.033-0.051,0.035-0.1-0.026-0.144
+                       c-0.205-0.141-0.2-0.144-0.323-0.45c-0.015-0.035-0.057-0.065-0.094-0.093c-0.064-0.055-0.091-0.11-0.018-0.177
+                       c0.055-0.049,0.108-0.102,0.165-0.151c0.285-0.244,0.368-0.269,0.705-0.082c0.3,0.167,0.632,0.281,0.897,0.495
+                       c0.148,0.117,0.369,0.157,0.505,0.304c0.062,0.066,0.183,0.006,0.281-0.038c-0.169-0.177-0.406-0.291-0.571-0.468
+                       c-0.065-0.068-0.114-0.123-0.125-0.206c-0.011-0.068-0.033-0.121-0.119-0.164c-0.149-0.071-0.17-0.234-0.108-0.318
+                       c0.097-0.134-0.033-0.277,0.088-0.395c0.044-0.042,0.017-0.104-0.021-0.153c-0.177-0.224-0.26-0.473-0.306-0.735
+                       c-0.024-0.129-0.077-0.235-0.208-0.312c-0.055-0.032-0.101-0.071-0.148-0.109c-0.235-0.177-0.244-0.208-0.111-0.459
+                       c0.029-0.051,0.084-0.1,0.022-0.144c-0.153-0.108-0.244-0.253-0.344-0.395c-0.046-0.066-0.189-0.087-0.183-0.177
+                       c0.005-0.124,0.155-0.169,0.246-0.244c0.067-0.057,0.167-0.082,0.251-0.126c0.112-0.062,0.115-0.089,0.033-0.2
+                       c-0.102-0.139-0.102-0.139,0.032-0.255c0.033-0.03,0.055-0.071,0.093-0.093c0.352-0.206,0.327-0.281,0.713-0.047
+                       c0.064,0.04,0.136,0.073,0.198,0.109c0.117-0.047,0.026-0.089,0.013-0.13c-0.024-0.064-0.065-0.131-0.068-0.195
+                       c-0.002-0.053,0.036-0.11-0.024-0.153c-0.156-0.108-0.105-0.21,0.008-0.314c0.064-0.061,0.126-0.124,0.187-0.187
+                       c0.082-0.087,0.182-0.108,0.307-0.073c0.062,0.016,0.126,0.027,0.191,0.038c0.086,0.016,0.187,0.117,0.251,0.016
+                       c0.046-0.074-0.057-0.152-0.125-0.209c-0.088-0.081-0.196-0.14-0.161-0.277c0.119-0.484-0.118-0.89-0.414-1.276
+                       c-0.081-0.107-0.068-0.176,0.019-0.254c0.055-0.049,0.108-0.113,0.176-0.138c0.127-0.044,0.177-0.123,0.177-0.224
+                       c0-0.288,0.258-0.39,0.5-0.506c0.057-0.029,0.136-0.029,0.186,0.007c0.139,0.1,0.318,0.046,0.466,0.102
+                       c0.041-0.187-0.022-0.352-0.152-0.502c-0.044-0.049-0.048-0.1-0.006-0.151c0.057-0.066,0.105-0.139,0.175-0.193
+                       c0.071-0.052,0.16-0.097,0.251-0.121c0.086-0.024,0.14,0.059,0.213,0.086c0.057,0.02,0.127,0.073,0.175,0.063
+                       c0.334-0.071,0.415,0.124,0.418,0.317c0.002,0.178,0.094,0.246,0.258,0.3c0.232,0.075,0.426,0.203,0.586,0.362
+                       c0.123,0.12,0.143,0.177,0.029,0.286c-0.125,0.118-0.175,0.258-0.249,0.395c-0.073,0.14-0.033,0.34-0.267,0.407
+                       c-0.006,0.002-0.006,0.027,0.003,0.037c0.005,0.012,0.026,0.024,0.036,0.024c0.046-0.011,0.096-0.019,0.134-0.041
+                       c0.206-0.112,0.406-0.228,0.61-0.346c0.117-0.069,0.227-0.081,0.36-0.014c0.113,0.055,0.215,0.122,0.309,0.2
+                       c0.215,0.18,0.229,0.22,0.007,0.397c-0.172,0.136-0.208,0.344-0.393,0.466c-0.018,0.011-0.009,0.051-0.011,0.078
+                       c-0.009,0.08,0.062,0.144,0.141,0.124c0.048-0.012,0.091-0.029,0.136-0.042c0.12-0.041,0.23-0.124,0.369-0.053
+                       c0.193,0.102,0.39,0.204,0.49,0.389c0.017,0.027-0.007,0.082-0.036,0.108c-0.09,0.078-0.187,0.153-0.287,0.224
+                       c-0.141,0.098-0.183,0.22-0.152,0.369c0.014,0.067,0.005,0.138,0.024,0.204c0.06,0.226,0.15,0.448,0.023,0.684
+                       c-0.029,0.053,0.006,0.133,0.015,0.202c0.017,0.113,0.086,0.167,0.222,0.18c0.419,0.038,0.533,0.089,0.823,0.362
+                       c-0.033,0.113-0.143,0.182-0.23,0.261c-0.093,0.089-0.165,0.173-0.054,0.289c0.032,0.035,0.011,0.08-0.022,0.113
+                       c-0.053,0.051-0.122,0.093-0.098,0.176c0.038,0.141-0.23,0.306-0.015,0.408c0.156,0.073,0.256-0.133,0.395-0.198
+                       c0.134-0.063,0.222-0.08,0.351,0c0.108,0.067,0.204,0.133,0.285,0.222c0.15,0.171,0.165,0.175-0.015,0.344
+                       c-0.093,0.089-0.134,0.18-0.167,0.288c-0.048,0.16-0.105,0.364-0.086,0.48c0.009,0.057,0,0.108-0.052,0.149
+                       c-0.101,0.078-0.055,0.153,0.009,0.219c0.139,0.144,0.189,0.276,0.005,0.431c-0.079,0.067-0.095,0.169-0.06,0.271
+                       c0.024,0.066,0.031,0.135,0.041,0.202c0.029,0.18-0.017,0.326-0.232,0.41c-0.057,0.022-0.099,0.073-0.136,0.102
+                       c-0.029,0.132,0.153,0.089,0.177,0.183c0.018,0.082,0.126,0.12,0.193,0.177c0.105,0.087,0.117,0.202-0.004,0.289
+                       c-0.201,0.143-0.175,0.337-0.206,0.518c-0.009,0.051,0.031,0.118-0.031,0.151c-0.165,0.091-0.237,0.213-0.239,0.38
+                       c0,0.071-0.093,0.04-0.156,0.042c-0.182,0.002-0.217,0.019-0.228,0.149c-0.014,0.208-0.069,0.404-0.21,0.581
+                       c-0.026,0.033-0.019,0.084,0.027,0.11c0.048,0.029,0.095,0.012,0.126-0.021c0.116-0.125,0.256-0.216,0.445-0.232
+                       c0.092-0.008,0.153-0.046,0.196-0.108c0.053-0.081,0.134-0.116,0.235-0.134c0.132-0.025,0.222-0.093,0.323-0.168
+                       c0.204-0.151,0.447-0.264,0.677-0.389c0.018-0.011,0.078,0,0.086,0.011c0.081,0.16,0.31,0.173,0.418,0.322
+                       c0.134,0.185,0.18,0.267,0.058,0.433c-0.028,0.035-0.07,0.059-0.101,0.092c-0.132,0.138-0.201,0.295-0.081,0.454
+                       c0.101,0.129-0.013,0.204-0.055,0.297c-0.002,0-0.002,0-0.006-0.002c0,0.002-0.002,0.004-0.002,0.004
+                       c-0.112-0.002-0.222-0.009-0.334-0.002c-0.085,0.006-0.153,0.049-0.184,0.119c-0.007,0.023,0.002,0.054,0.009,0.079
+                       c0.004,0.011,0.026,0.027,0.033,0.024c0.168-0.058,0.395-0.032,0.476-0.22h0.008v-0.002c0.286,0.067,0.38,0.279,0.496,0.473
+                       c0.033,0.053,0.01,0.109-0.029,0.155c-0.038,0.045-0.074,0.091-0.117,0.134c-0.16,0.157-0.228,0.314-0.098,0.524
+                       c0.091,0.141,0.035,0.227-0.167,0.279c-0.342,0.082-0.572,0.255-0.727,0.515c-0.103,0.17-0.18,0.337-0.094,0.544
+                       c0.081,0.194-0.024,0.379-0.158,0.541c-0.064,0.08-0.152,0.142-0.224,0.218c-0.074,0.078-0.141,0.136-0.283,0.133
+                       c-0.154-0.002-0.02,0.185-0.16,0.216c-0.057,0.013-0.183,0.013-0.154,0.057c0.099,0.16-0.01,0.289-0.039,0.433
+                       c-0.017,0.086,0.064,0.161,0.169,0.167c0.135,0.003,0.263-0.007,0.364-0.091c0.129-0.112,0.254-0.222,0.467-0.154
+                       c0.011,0.005,0.038-0.002,0.044-0.011c0.22-0.271,0.689-0.235,0.906-0.517c0.017-0.023,0.088-0.033,0.132-0.031
+                       c0.136,0.013,0.007,0.214,0.182,0.198c0.042-0.004,0.081-0.008,0.117-0.004c0.003-0.006,0.007-0.012,0.01-0.018
+                       c0.014-0.089-0.054-0.157-0.087-0.233c-0.081-0.173-0.299-0.253-0.393-0.42c0.072-0.096,0.144-0.187,0.208-0.277
+                       c0.041-0.058,0.096-0.067,0.168-0.054c0.095,0.016,0.092-0.041,0.105-0.097c0.018-0.085,0.088-0.12,0.18-0.073
+                       c0.097,0.049,0.183,0.113,0.273,0.17c0.053,0.032,0.113,0.097,0.158,0.089c0.32-0.049,0.505,0.238,0.809,0.226
+                       c0.057-0.002,0.148,0.027,0.172,0.065c0.12,0.195,0.332,0.133,0.516,0.147c0.063,0.004,0.147-0.01,0.151-0.078
+                       c0.004-0.073-0.05-0.134-0.134-0.156c-0.046-0.013-0.098-0.006-0.147-0.011c-0.229-0.018-0.286-0.034-0.301-0.195
+                       c-0.026-0.26-0.222-0.393-0.459-0.479c-0.22-0.082-0.201-0.264-0.303-0.393c-0.022-0.027,0.024-0.118,0.067-0.144
+                       c0.17-0.102,0.277-0.255,0.462-0.35c0.136-0.071,0.183-0.091,0.323-0.008c0.207,0.124,0.444,0.219,0.683,0.295
+                       c0.116,0.033,0.182,0.108,0.296,0.149c0.077-0.156,0.118-0.298,0-0.462c-0.064-0.089-0.057-0.214-0.091-0.32
+                       c-0.043-0.128-0.125-0.226-0.304-0.226c-0.115,0.002-0.174-0.059-0.234-0.126c-0.208-0.233-0.423-0.452-0.73-0.604
+                       c-0.21-0.102-0.318-0.266-0.315-0.483c0.004-0.235-0.032-0.466-0.149-0.685c-0.112-0.209-0.011-0.405,0.096-0.613
+                       c-0.14-0.087-0.241-0.21-0.347-0.331c-0.194-0.217-0.204-0.255-0.01-0.437c0.211-0.2,0.331-0.224,0.646-0.124
+                       c0.045,0.013,0.084,0.044,0.13,0.051c0.07,0.008,0.123-0.027,0.156-0.078c0.033-0.053,0.039-0.1-0.026-0.144
+                       c-0.205-0.144-0.2-0.147-0.323-0.452c-0.015-0.036-0.057-0.065-0.09-0.093c-0.068-0.055-0.094-0.11-0.022-0.175
+                       c0.055-0.051,0.11-0.104,0.165-0.153c0.285-0.242,0.368-0.269,0.705-0.08c0.3,0.164,0.634,0.279,0.897,0.492
+                       c0.149,0.12,0.369,0.158,0.505,0.307c0.064,0.067,0.184,0.004,0.282-0.04c-0.169-0.175-0.406-0.288-0.571-0.468
+                       c-0.062-0.068-0.112-0.124-0.125-0.206c-0.011-0.069-0.033-0.122-0.119-0.163c-0.149-0.07-0.17-0.235-0.108-0.319
+                       c0.098-0.132-0.033-0.277,0.088-0.395c0.046-0.042,0.017-0.104-0.022-0.153c-0.176-0.222-0.26-0.473-0.306-0.733
+                       c-0.024-0.131-0.077-0.238-0.208-0.315c-0.053-0.031-0.099-0.069-0.148-0.106c-0.235-0.18-0.245-0.208-0.108-0.459
+                       c0.026-0.051,0.081-0.1,0.018-0.144c-0.152-0.112-0.244-0.256-0.344-0.395c-0.045-0.069-0.185-0.086-0.183-0.179
+                       c0.007-0.124,0.154-0.169,0.246-0.244c0.067-0.055,0.167-0.082,0.251-0.126c0.112-0.063,0.114-0.089,0.033-0.2
+                       c-0.102-0.14-0.099-0.14,0.032-0.254c0.033-0.029,0.055-0.07,0.093-0.092c0.351-0.208,0.327-0.284,0.713-0.049
+                       c0.066,0.039,0.136,0.075,0.198,0.11c0.117-0.049,0.026-0.088,0.013-0.131c-0.024-0.065-0.065-0.129-0.067-0.195
+                       c-0.003-0.051,0.035-0.11-0.022-0.153c-0.158-0.109-0.108-0.209,0.004-0.313c0.065-0.062,0.127-0.124,0.189-0.188
+                       c0.081-0.084,0.184-0.107,0.307-0.073c0.062,0.016,0.127,0.029,0.191,0.037c0.086,0.016,0.186,0.118,0.251,0.016
+                       c0.046-0.073-0.057-0.149-0.124-0.208c-0.089-0.081-0.197-0.138-0.162-0.278c0.119-0.481-0.118-0.89-0.414-1.276
+                       c-0.081-0.106-0.067-0.175,0.02-0.253c0.055-0.049,0.108-0.112,0.177-0.135c0.126-0.047,0.176-0.125,0.176-0.227
+                       c0-0.288,0.259-0.39,0.5-0.506c0.057-0.027,0.136-0.029,0.187,0.008c0.139,0.098,0.318,0.045,0.468,0.1
+                       c0.055,0.133,0.241,0.131,0.333,0.227c0.007,0.006,0.062-0.01,0.079-0.025c0.016-0.017,0.026-0.055,0.016-0.074
+                       c-0.021-0.034-0.055-0.079-0.093-0.085c-0.11-0.022-0.222-0.029-0.335-0.042c0.039-0.186-0.024-0.35-0.154-0.499
+                       c-0.043-0.049-0.048-0.102-0.006-0.151c0.058-0.067,0.105-0.142,0.175-0.195c0.072-0.053,0.16-0.096,0.251-0.12
+                       c0.087-0.023,0.139,0.058,0.213,0.085c0.061,0.022,0.127,0.073,0.175,0.065c0.334-0.071,0.415,0.121,0.418,0.314
+                       c0.002,0.177,0.094,0.246,0.259,0.3c0.232,0.075,0.425,0.202,0.586,0.362c0.122,0.119,0.143,0.177,0.029,0.289
+                       c-0.122,0.117-0.174,0.257-0.248,0.394c-0.074,0.138-0.032,0.34-0.268,0.407c-0.004,0-0.004,0.027,0.002,0.035
+                       c0.007,0.014,0.026,0.027,0.036,0.024c0.046-0.011,0.096-0.018,0.134-0.04c0.206-0.113,0.406-0.23,0.61-0.345
+                       c0.117-0.072,0.227-0.083,0.36-0.016c0.115,0.057,0.215,0.122,0.309,0.2c0.215,0.18,0.232,0.22,0.007,0.399
+                       c-0.169,0.136-0.208,0.342-0.393,0.464c-0.018,0.011-0.009,0.053-0.011,0.08c-0.009,0.08,0.064,0.144,0.141,0.124
+                       c0.048-0.014,0.094-0.029,0.139-0.045c0.118-0.039,0.228-0.122,0.366-0.051c0.197,0.1,0.39,0.202,0.492,0.386
+                       c0.015,0.028-0.009,0.083-0.038,0.109c-0.091,0.08-0.187,0.153-0.286,0.224c-0.142,0.098-0.182,0.22-0.153,0.369
+                       c0.014,0.069,0.004,0.139,0.023,0.206c0.061,0.224,0.151,0.446,0.024,0.681c-0.028,0.056,0.006,0.136,0.015,0.205
+                       c0.017,0.11,0.086,0.166,0.222,0.177c0.419,0.038,0.533,0.088,0.823,0.363c-0.033,0.114-0.143,0.181-0.229,0.262
+                       c-0.094,0.089-0.162,0.171-0.056,0.287c0.034,0.037,0.013,0.08-0.021,0.113c-0.052,0.051-0.122,0.093-0.098,0.177
+                       c0.04,0.14-0.23,0.307-0.014,0.407c0.154,0.073,0.257-0.132,0.396-0.198c0.132-0.063,0.22-0.08,0.349,0.002
+                       c0.108,0.064,0.204,0.131,0.285,0.22c0.153,0.172,0.165,0.175-0.015,0.345c-0.093,0.087-0.133,0.178-0.167,0.289
+                       c-0.046,0.158-0.105,0.364-0.086,0.477c0.009,0.058,0,0.112-0.053,0.152c-0.101,0.075-0.055,0.153,0.009,0.217
+                       c0.14,0.144,0.189,0.277,0.006,0.431c-0.079,0.066-0.096,0.17-0.061,0.273c0.024,0.064,0.031,0.133,0.041,0.202
+                       c0.031,0.177-0.017,0.324-0.232,0.41c-0.055,0.022-0.098,0.071-0.134,0.1c-0.029,0.132,0.153,0.089,0.175,0.182
+                       c0.018,0.085,0.126,0.122,0.193,0.177c0.108,0.089,0.118,0.205-0.004,0.291c-0.201,0.142-0.175,0.338-0.206,0.517
+                       c-0.009,0.051,0.031,0.118-0.031,0.151c-0.165,0.093-0.237,0.213-0.239,0.382c0,0.068-0.094,0.039-0.156,0.039
+                       c-0.182,0.004-0.215,0.02-0.224,0.149c-0.017,0.211-0.072,0.407-0.211,0.584c-0.029,0.033-0.022,0.082,0.024,0.11
+                       c0.05,0.029,0.095,0.008,0.127-0.024c0.114-0.124,0.255-0.212,0.444-0.23c0.091-0.008,0.153-0.045,0.197-0.108
+                       c0.052-0.079,0.136-0.116,0.236-0.134c0.129-0.024,0.221-0.09,0.32-0.167c0.204-0.151,0.448-0.266,0.678-0.39
+                       c0.018-0.012,0.081,0,0.086,0.014c0.081,0.159,0.31,0.17,0.418,0.319c0.134,0.185,0.18,0.269,0.058,0.433
+                       c-0.026,0.035-0.07,0.062-0.098,0.092c-0.134,0.138-0.204,0.295-0.083,0.455c0.099,0.13-0.013,0.203-0.055,0.298
+                       c-0.002,0-0.002-0.003-0.006-0.003c0,0.003,0,0.003-0.001,0.005c-0.111-0.002-0.223-0.012-0.335-0.002
+                       c-0.083,0.004-0.153,0.047-0.182,0.117c-0.009,0.024,0,0.053,0.007,0.079c0.003,0.011,0.026,0.029,0.034,0.027
+                       c0.169-0.061,0.394-0.034,0.476-0.22h0.007v-0.002c0.286,0.066,0.382,0.277,0.499,0.473c0.032,0.053,0.008,0.106-0.031,0.153
+                       c-0.038,0.047-0.074,0.093-0.117,0.133c-0.16,0.16-0.228,0.315-0.096,0.524c0.088,0.144,0.033,0.232-0.17,0.28
+                       c-0.342,0.082-0.571,0.257-0.727,0.514c-0.101,0.171-0.18,0.338-0.094,0.544c0.081,0.195-0.022,0.38-0.157,0.544
+                       c-0.065,0.078-0.153,0.142-0.225,0.218c-0.075,0.075-0.141,0.133-0.281,0.131c-0.158-0.002-0.023,0.187-0.161,0.218
+                       c-0.058,0.013-0.184,0.011-0.156,0.055c0.1,0.159-0.01,0.291-0.037,0.433c-0.019,0.088,0.063,0.164,0.168,0.166
+                       c0.134,0.004,0.263-0.006,0.363-0.09c0.129-0.109,0.256-0.22,0.467-0.151c0.011,0.002,0.038-0.003,0.045-0.012
+                       c0.221-0.273,0.689-0.237,0.906-0.519c0.019-0.024,0.088-0.033,0.132-0.029c0.138,0.011,0.007,0.211,0.182,0.195
+                       c0.103-0.01,0.196-0.027,0.232,0.084c0.004,0.014,0.011,0.027,0.014,0.04c0.035,0.106,0.246,0.104,0.225,0.237
+                       c0.645-0.345,1.283-0.687,1.917-1.025c-0.029-0.018-0.053-0.038-0.088-0.051c-0.079-0.029-0.165-0.042-0.22,0.022
+                       c-0.092,0.1-0.175,0.102-0.29,0.029c-0.129-0.082-0.254-0.171-0.412-0.218c-0.071-0.022-0.077-0.096-0.024-0.139
+                       c0.089-0.082,0.063-0.152-0.016-0.216c-0.086-0.067-0.083-0.14-0.052-0.226c0.066-0.182,0.165-0.357,0.153-0.558
+                       c-0.002-0.057,0.078-0.095,0.148-0.073c0.112,0.038,0.213,0.054,0.311-0.029c0.064-0.05,0.146-0.047,0.231-0.027
+                       c0.041,0.012,0.122,0.009,0.132-0.008c0.125-0.236,0.294-0.131,0.454-0.075c0.013-0.038,0.024-0.078,0.029-0.116
+                       c-0.068-0.126-0.191-0.235-0.193-0.391c0-0.05-0.141-0.076-0.206-0.017c-0.128,0.117-0.22,0.069-0.319-0.024
+                       c-0.125-0.116-0.245-0.218-0.14-0.397c0.063-0.112-0.068-0.122-0.165-0.149c-0.16-0.04-0.184-0.082-0.086-0.165
+                       c0.134-0.113,0.17-0.264,0.258-0.395c0.085-0.126,0.168-0.243,0.374-0.202c0.115,0.022,0.128-0.064,0.187-0.106
+                       c0.04-0.031,0.097-0.04,0.13-0.008c0.096,0.09,0.17,0.198,0.355,0.151c0.029-0.007,0.055,0.006,0.081,0.027
+                       c0.079-0.1,0.117-0.216,0.187-0.32c0.086-0.124,0.169-0.244,0.375-0.203c0.071,0.014,0.102-0.013,0.132-0.046
+                       c-0.003,0-0.006,0.002-0.008,0.002c-0.156,0.014-0.312,0.014-0.47,0.006c-0.039-0.002-0.084-0.044-0.108-0.075
+                       c-0.063-0.082-0.113-0.169-0.167-0.253c-0.024-0.033-0.052-0.089-0.103-0.069c-0.289,0.118-0.478-0.124-0.752-0.122
+                       c-0.042-0.147-0.054-0.281-0.004-0.413c0.069-0.192,0.086-0.374-0.026-0.559c-0.032-0.049-0.006-0.116,0.078-0.126
+                       c0.116-0.016,0.225-0.029,0.283-0.135c0.011-0.02,0.046-0.038,0.074-0.049c0.275-0.114,0.275-0.112,0.339-0.276
+                       c0.032-0.076,0.05-0.159,0.094-0.233c0.11-0.195,0.123-0.363-0.122-0.499c-0.079-0.045-0.057-0.129-0.005-0.186
+                       c0.07-0.073,0.141-0.175,0.237-0.201c0.147-0.037,0.232-0.152,0.397-0.18c0.15,0.091,0.229,0.26,0.418,0.329
+                       c0.074,0.027,0.144,0.072,0.225,0.059c0.093-0.016,0.169-0.004,0.233,0.029c0.017-0.116-0.031-0.22-0.193-0.31
+                       c-0.079-0.042-0.057-0.13-0.004-0.185c0.072-0.075,0.144-0.177,0.237-0.2c0.148-0.038,0.235-0.155,0.399-0.179
+                       c0.151,0.091,0.227,0.257,0.415,0.326c0.077,0.027,0.144,0.075,0.228,0.059c0.017-0.001,0.029,0,0.042-0.001
+                       c-0.009-0.007-0.018-0.014-0.025-0.02c-0.013-0.007-0.034-0.005-0.048-0.01c-0.265-0.072-0.326-0.33-0.557-0.441
+                       c-0.222-0.107-0.45-0.218-0.54-0.454c-0.037-0.1-0.077-0.228-0.21-0.268c-0.248-0.069-0.182-0.222-0.175-0.372
+                       c0.004-0.066,0.129-0.108,0.05-0.182c-0.042-0.037-0.102-0.078-0.163-0.088c-0.258-0.047-0.413-0.273-0.698-0.278
+                       c-0.05-0.002-0.06-0.053-0.072-0.095c-0.071-0.256-0.152-0.507-0.222-0.759c-0.041-0.153,0.02-0.216,0.215-0.216
+                       c0.094-0.002,0.147-0.024,0.206-0.082c0.092-0.093,0.189-0.19,0.308-0.255c0.081-0.045,0.184-0.053,0.201-0.151
+                       c0.017-0.089-0.05-0.158-0.086-0.236c-0.079-0.171-0.296-0.251-0.393-0.416c0.074-0.098,0.143-0.187,0.211-0.28
+                       c0.04-0.055,0.095-0.067,0.165-0.053c0.097,0.018,0.096-0.04,0.108-0.096c0.017-0.086,0.088-0.12,0.18-0.073
+                       c0.095,0.049,0.181,0.112,0.275,0.169c0.05,0.033,0.112,0.098,0.156,0.091c0.244-0.038,0.408,0.117,0.605,0.188
+                       c-0.085-0.161-0.292-0.244-0.384-0.406c0.075-0.096,0.144-0.186,0.211-0.277c0.02-0.029,0.044-0.045,0.072-0.053
+                       c-0.108-0.093-0.12-0.227-0.201-0.329c-0.018-0.023,0.026-0.115,0.07-0.141c0.167-0.104,0.275-0.256,0.461-0.353
+                       c0.134-0.069,0.184-0.091,0.323-0.01c0.173,0.104,0.369,0.187,0.566,0.255c-0.033-0.07-0.055-0.146-0.105-0.208
+                       c-0.018-0.027,0.024-0.118,0.067-0.144c0.129-0.078,0.222-0.186,0.342-0.275c-0.044-0.108-0.125-0.19-0.285-0.188
+                       c-0.117,0-0.177-0.063-0.237-0.13c-0.206-0.23-0.421-0.452-0.729-0.603c-0.208-0.1-0.316-0.263-0.313-0.482
+                       c0.002-0.235-0.031-0.465-0.15-0.685c-0.113-0.208-0.013-0.404,0.095-0.612c-0.136-0.087-0.239-0.211-0.347-0.331
+                       c-0.191-0.218-0.2-0.257-0.009-0.44c0.211-0.199,0.33-0.222,0.645-0.123c0.046,0.015,0.086,0.046,0.132,0.053
+                       c0.071,0.009,0.124-0.027,0.158-0.081c0.033-0.051,0.036-0.1-0.026-0.144c-0.206-0.141-0.201-0.143-0.323-0.449
+                       c-0.015-0.036-0.057-0.065-0.094-0.095c-0.064-0.055-0.092-0.11-0.019-0.177c0.056-0.048,0.109-0.102,0.166-0.151
+                       c0.281-0.244,0.367-0.268,0.705-0.082c0.239,0.131,0.498,0.235,0.727,0.379c-0.064-0.064-0.091-0.135-0.169-0.335
+                       c-0.015-0.035-0.06-0.064-0.094-0.093c-0.066-0.055-0.093-0.11-0.021-0.175c0.056-0.051,0.11-0.104,0.167-0.153
+                       c0.073-0.063,0.134-0.112,0.189-0.144c0-0.093-0.037-0.188,0.048-0.269c0.045-0.041,0.016-0.104-0.022-0.153
+                       c-0.175-0.224-0.261-0.473-0.307-0.735c-0.02-0.128-0.075-0.235-0.205-0.312c-0.055-0.031-0.103-0.071-0.151-0.108
+                       c-0.232-0.178-0.242-0.209-0.108-0.46c0.029-0.051,0.081-0.1,0.019-0.144c-0.151-0.108-0.241-0.253-0.342-0.395
+                       c-0.048-0.066-0.189-0.084-0.184-0.177c0.005-0.123,0.156-0.17,0.244-0.243c0.068-0.056,0.171-0.083,0.252-0.126
+                       c0.114-0.063,0.116-0.089,0.035-0.201c-0.103-0.139-0.103-0.139,0.029-0.255c0.035-0.029,0.057-0.071,0.096-0.093
+                       c0.349-0.206,0.327-0.281,0.712-0.046c0.065,0.039,0.134,0.075,0.199,0.108c0.117-0.047,0.027-0.089,0.011-0.13
+                       c-0.024-0.064-0.065-0.131-0.067-0.194c-0.001-0.054,0.037-0.112-0.023-0.154c-0.156-0.108-0.105-0.21,0.007-0.314
+                       c0.064-0.059,0.127-0.124,0.189-0.187c0.081-0.084,0.182-0.108,0.306-0.073c0.063,0.016,0.127,0.027,0.192,0.038
+                       c0.084,0.014,0.187,0.118,0.248,0.016c0.046-0.073-0.057-0.149-0.125-0.209c-0.086-0.08-0.193-0.139-0.16-0.277
+                       c0.12-0.481-0.117-0.89-0.413-1.276c-0.085-0.106-0.067-0.175,0.018-0.253c0.056-0.052,0.108-0.112,0.177-0.138
+                       c0.127-0.045,0.177-0.124,0.177-0.224c0-0.289,0.257-0.391,0.496-0.506c0.06-0.029,0.136-0.029,0.189,0.008
+                       c0.14,0.098,0.318,0.045,0.467,0.1c0.04-0.189-0.022-0.351-0.156-0.501c-0.043-0.049-0.046-0.1-0.002-0.151
+                       c0.057-0.065,0.105-0.14,0.174-0.193c0.07-0.053,0.16-0.098,0.249-0.122c0.088-0.024,0.139,0.059,0.213,0.086
+                       c0.06,0.02,0.126,0.073,0.176,0.065c0.335-0.073,0.417,0.122,0.419,0.315v0.009c0.083,0.004,0.165,0.004,0.242,0.034
+                       c0.04-0.187-0.022-0.352-0.156-0.5c-0.043-0.049-0.046-0.1-0.002-0.151c0.055-0.066,0.103-0.141,0.174-0.195
+                       c0.07-0.053,0.158-0.095,0.25-0.119c0.086-0.025,0.138,0.057,0.213,0.084c0.059,0.022,0.126,0.073,0.176,0.065
+                       c0.336-0.074,0.414,0.124,0.419,0.314c0.002,0.178,0.091,0.246,0.256,0.3c0.234,0.075,0.425,0.203,0.588,0.362
+                       c0.122,0.12,0.141,0.177,0.025,0.288c-0.122,0.118-0.174,0.258-0.248,0.395c-0.075,0.138-0.031,0.34-0.266,0.405
+                       c-0.004,0.002-0.007,0.029,0,0.037c0.007,0.012,0.027,0.027,0.037,0.024c0.048-0.012,0.095-0.017,0.136-0.04
+                       c0.203-0.113,0.406-0.23,0.607-0.345c0.118-0.071,0.23-0.083,0.362-0.016c0.115,0.057,0.215,0.122,0.308,0.2
+                       c0.216,0.18,0.232,0.22,0.008,0.399c-0.171,0.136-0.208,0.342-0.393,0.464c-0.016,0.011-0.009,0.053-0.011,0.08
+                       c-0.01,0.08,0.064,0.144,0.143,0.124c0.046-0.014,0.09-0.029,0.136-0.045c0.117-0.039,0.227-0.122,0.365-0.051
+                       c0.197,0.1,0.393,0.204,0.493,0.387c0.015,0.027-0.009,0.084-0.038,0.108c-0.089,0.08-0.187,0.153-0.287,0.224
+                       c-0.141,0.098-0.182,0.22-0.151,0.369c0.013,0.069,0.006,0.138,0.022,0.206c0.063,0.224,0.153,0.446,0.026,0.682
+                       c-0.031,0.055,0.002,0.135,0.013,0.204c0.016,0.11,0.086,0.167,0.224,0.177c0.415,0.04,0.531,0.089,0.821,0.364
+                       c-0.034,0.113-0.144,0.182-0.23,0.261c-0.094,0.089-0.163,0.171-0.053,0.287c0.033,0.035,0.013,0.08-0.024,0.113
+                       c-0.052,0.051-0.121,0.093-0.098,0.178c0.041,0.139-0.229,0.306-0.014,0.408c0.156,0.073,0.259-0.134,0.397-0.2
+                       c0.095-0.045,0.169-0.065,0.251-0.042c-0.114-0.373-0.002-0.621,0.445-0.743c0.43-0.118,0.705-0.401,1.078-0.57
+                       c0.239-0.106,0.344-0.277,0.307-0.514c-0.022-0.124-0.015-0.256,0.009-0.38c0.051-0.259,0.22-0.351,0.527-0.263
+                       c0.231,0.066,0.448,0.149,0.707,0.108c0.163-0.024,0.325,0.031,0.369,0.171c0.071,0.222,0.261,0.314,0.468,0.438
+                       c0.232,0.137,0.375,0.347,0.742,0.261c0.189-0.045,0.325,0.124,0.338,0.295c0.031,0.413-0.029,0.821-0.166,1.216
+                       c-0.385,1.114-0.224,0.815,0.443,1.562c0.07,0.078,0.237,0.115,0.265,0.198c0.096,0.259,0.284,0.308,0.564,0.239
+                       c0.088-0.019,0.182-0.022,0.272-0.023c0.147-0.003,0.246,0.123,0.156,0.208c-0.22,0.202-0.349,0.41-0.258,0.697
+                       c0.019,0.059-0.029,0.159-0.084,0.208c-0.492,0.422-0.591,1.055-1.167,1.434c0.46,0.206,0.467,0.211,0.675-0.018
+                       c0.327-0.357,0.775-0.559,1.258-0.719c0.026-0.008,0.06,0.004,0.09,0.004c0.244-0.009,0.191-0.424,0.551-0.279
+                       c0.191,0.075,0.353,0.206,0.58,0.218c0.092,0.004,0.184,0.024,0.263,0.057c0.096,0.038,0.125,0.13,0.077,0.195
+                       c-0.079,0.109-0.196,0.198-0.287,0.297c-0.077,0.087-0.095,0.175-0.035,0.285c0.186,0.353,0.184,0.357-0.053,0.534
+                       c-0.251,0.188-0.5,0.375-0.66,0.635c-0.084,0.133-0.215,0.253-0.354,0.35c-0.16,0.115-0.395,0.173-0.521,0.304
+                       c-0.187,0.2-0.307,0.442-0.452,0.661c0.014,0.183,0.2,0.178,0.329,0.22c0.134,0.042,0.196,0.209,0.383,0.156
+                       c0.172-0.183-0.05-0.446,0.126-0.586c0.192-0.153,0.466-0.23,0.705-0.342c0.079-0.037,0.17-0.064,0.24-0.113
+                       c0.251-0.177,0.514-0.173,0.748-0.002c0.238,0.177,0.519,0.255,0.81,0.332c0.125,0.031,0.2,0.165,0.108,0.251
+                       c-0.414,0.377-0.612,0.882-1.06,1.243c-0.22,0.177-0.483,0.307-0.707,0.484c0.077,0.23,0.375,0.348,0.356,0.614
+                       c-0.014,0.216,0.241,0.273,0.399,0.389c0.191,0.14,0.213,0.264,0.041,0.391c-0.051,0.04-0.101,0.078-0.149,0.116
+                       c3.025-1.554,5.692-2.899,7.919-3.986c-0.158-0.084-0.167-0.18-0.026-0.346c0.16-0.191,0.17-0.304-0.046-0.448
+                       c-0.266-0.175-0.49-0.404-0.775-0.542c-0.306-0.147-0.574-0.264-0.581-0.61c-0.002-0.158-0.179-0.26-0.312-0.369
+                       c-0.177-0.142-0.349-0.289-0.512-0.442c-0.103-0.098-0.039-0.258,0.112-0.32c0.026-0.012,0.055-0.022,0.083-0.027
+                       c0.175-0.035,0.402-0.024,0.459-0.202c0.084-0.259,0.031-0.521-0.189-0.725c-0.203-0.191-0.448-0.349-0.66-0.532
+                       c-0.102-0.087,0-0.283,0.149-0.303c0.088-0.014,0.182-0.019,0.27-0.016c0.175,0.007,0.338,0.199,0.505,0.067
+                       c0.093-0.075,0.086-0.235,0.145-0.35c0.052-0.106,0.199-0.167,0.299-0.108c0.318,0.182,0.55,0.088,0.78-0.116
+                       c0.057-0.051,0.141-0.08,0.218-0.124c-0.386-0.324-0.386-0.324-0.379-0.781c0.006-0.442,0.01-0.455,0.55-0.491
+                       c0.189-0.011,0.34-0.042,0.507-0.131c0.414-0.222,0.842-0.303,1.243,0.047c0.225,0.192,0.515,0.115,0.785,0.088
+                       c0.114-0.011,0.182-0.198,0.077-0.246c-0.634-0.3-0.454-0.845-0.572-1.3c-0.035-0.142,0.055-0.252,0.168-0.342
+                       c0.198-0.163,0.132-0.361,0.011-0.497c-0.198-0.224-0.313-0.528-0.542-0.683c-0.364-0.249-0.505-0.442-0.323-0.835
+                       c0.066-0.14-0.151-0.371-0.213-0.564c-0.103-0.335-0.05-0.397,0.38-0.557c0.419-0.153,0.624-0.515,0.481-0.857
+                       c-0.05-0.12-0.12-0.237-0.165-0.359c-0.055-0.156,0.115-0.303,0.318-0.287c0.031,0.002,0.069-0.002,0.09,0.012
+                       c0.402,0.277,0.667-0.006,0.964-0.165c0.165-0.084,0.215-0.2,0.077-0.31c-0.191-0.156-0.222-0.36-0.301-0.553
+                       c-0.173-0.43-0.08-0.717,0.409-0.85c0.43-0.118,0.705-0.399,1.081-0.57c0.236-0.106,0.343-0.275,0.303-0.512
+                       c-0.02-0.124-0.015-0.258,0.009-0.379c0.05-0.26,0.22-0.354,0.525-0.264c0.236,0.066,0.453,0.147,0.708,0.108
+                       c0.163-0.024,0.325,0.031,0.369,0.169c0.071,0.224,0.26,0.315,0.468,0.437c0.232,0.138,0.375,0.348,0.742,0.262
+                       c0.189-0.045,0.325,0.124,0.34,0.297c0.029,0.413-0.029,0.821-0.168,1.216c-0.384,1.112-0.224,0.813,0.443,1.562
+                       c0.072,0.078,0.237,0.115,0.265,0.195c0.099,0.259,0.284,0.308,0.564,0.241c0.088-0.019,0.182-0.023,0.272-0.023
+                       c0.146-0.005,0.249,0.123,0.156,0.206c-0.22,0.202-0.349,0.412-0.259,0.697c0.02,0.059-0.029,0.159-0.084,0.208
+                       c-0.49,0.422-0.588,1.057-1.167,1.434c0.46,0.206,0.467,0.21,0.675-0.016c0.327-0.357,0.775-0.561,1.258-0.721
+                       c0.026-0.006,0.062,0.006,0.091,0.006c0.244-0.008,0.191-0.424,0.55-0.281c0.191,0.078,0.354,0.206,0.583,0.218
+                       c0.089,0.004,0.182,0.024,0.262,0.057c0.095,0.038,0.123,0.13,0.075,0.198c-0.079,0.107-0.193,0.195-0.287,0.297
+                       c-0.071,0.08-0.088,0.163-0.042,0.262c0.218-0.2,0.415-0.189,0.847,0.008c0.007,0.004,0.014,0.006,0.021,0.012
+                       c0.091-0.138,0.265-0.213,0.433-0.293c0.061-0.027,0.136-0.027,0.189,0.008c0.14,0.098,0.318,0.045,0.467,0.1v0.002h0.002
+                       c0.013,0.029,0.033,0.052,0.057,0.071c0.103-0.011,0.206-0.014,0.311-0.009c-0.013-0.01-0.022-0.02-0.034-0.022
+                       c-0.11-0.022-0.224-0.03-0.334-0.04c0-0.002,0-0.002-0.002-0.002c0.033-0.151-0.005-0.288-0.092-0.415
+                       c-0.437-0.144-0.688-0.481-1.004-0.783c-0.375-0.358-0.339-0.688-0.177-1.065c0.053-0.124,0.18-0.189,0.338-0.142
+                       c0.165,0.051,0.323,0.12,0.485,0.183c0.132,0.048,0.287,0.084,0.404,0.008c0.465-0.3,0.915-0.226,1.38-0.002
+                       c0.084,0.039,0.2,0.037,0.303,0.035c0.208-0.006,0.364-0.261,0.246-0.399c-0.265-0.313-0.545-0.619-0.81-0.934
+                       c-0.123-0.147-0.072-0.293,0.096-0.384c0.263-0.149,0.525-0.313,0.88-0.224c0.255,0.067,0.495-0.018,0.714-0.104
+                       c0.294-0.116,0.553-0.24,0.897-0.1c0.174,0.069,0.32-0.091,0.454-0.183c0.121-0.082,0.198-0.199,0.073-0.301
+                       c-0.372-0.311-0.387-0.759-0.635-1.119c-0.167-0.239-0.305-0.475-0.656-0.538c-0.294-0.055-0.514-0.218-0.679-0.407
+                       c-0.292-0.337-0.708-0.608-0.933-0.954c-0.201-0.318-0.167-0.75-0.193-1.134c-0.022-0.279-0.18-0.512-0.276-0.765
+                       c-0.106-0.28,0.024-0.444,0.379-0.509c0.382-0.069,0.767-0.002,1.12,0.024c0.221-0.32,0.03-0.554-0.069-0.805
+                       c-0.062-0.163,0.02-0.291,0.235-0.331c0.562-0.1,1.111-0.169,1.613,0.181c0.125,0.086,0.327,0.108,0.498,0.131
+                       c0.33,0.039,0.545-0.2,0.409-0.458c-0.098-0.188-0.294-0.344-0.296-0.565c-0.002-0.144-0.041-0.384,0.041-0.423
+                       c0.595-0.277,0.231-0.565,0.085-0.889c-0.159-0.358-0.234-0.743-0.341-1.116c-0.07-0.233,0.047-0.406,0.258-0.546
+                       c0.498-0.33,0.651-0.324,1.012-0.049c0.105,0.08,0.215,0.157,0.335,0.222c0.189,0.102,0.389,0.153,0.562-0.027
+                       c0.16-0.167,0.339-0.178,0.562-0.098c0.172,0.062,0.346,0.057,0.464-0.1c0.035-0.049,0.069-0.104,0.117-0.149
+                       c0.526-0.499,0.66-0.486,1.022,0.098c0.174,0.286,0.332,0.339,0.674,0.215c0.224-0.082,0.435-0.194,0.663-0.275
+                       c0.216-0.075,0.435,0.081,0.394,0.283c-0.055,0.263-0.151,0.519-0.196,0.781c-0.039,0.228-0.029,0.461-0.041,0.69
+                       c0.146,0.066,0.335,0.049,0.395-0.038c0.313-0.452,0.942-0.348,1.378-0.579c0.134-0.069,0.325,0.134,0.289,0.288
+                       c-0.052,0.24-0.174,0.454-0.352,0.642c-0.167,0.177-0.186,0.378-0.186,0.591c-0.003,0.424,0.105,0.511,0.625,0.486
+                       c0.102-0.004,0.208-0.032,0.308-0.024c0.153,0.011,0.282,0.236,0.215,0.357c-0.031,0.053-0.055,0.118-0.108,0.151
+                       c-0.529,0.34-0.424,0.698-0.062,1.075c0.064,0.066,0.174,0.18,0.148,0.217c-0.299,0.458-0.042,1.085-0.624,1.452
+                       c-0.112,0.071-0.23,0.139-0.323,0.226c-0.194,0.182-0.194,0.357-0.015,0.564c0.063,0.071,0.144,0.133,0.206,0.206
+                       c0.169,0.202,0.351,0.259,0.619,0.1c0.636-0.381,1.365-0.22,2.061-0.211c0.194,0.002,0.285,0.171,0.3,0.327
+                       c0.004,0.037,0.004,0.073,0.007,0.108c0.121,0.053,0.253,0.144,0.341,0.002c0.082-0.124-0.093-0.257-0.205-0.362
+                       c-0.149-0.135-0.332-0.241-0.268-0.479c0.217-0.823-0.175-1.528-0.672-2.199c-0.139-0.183-0.11-0.3,0.042-0.433
+                       c0.096-0.082,0.187-0.188,0.307-0.23c0.217-0.075,0.306-0.208,0.31-0.381c0.01-0.493,0.454-0.666,0.871-0.859
+                       c0.101-0.045,0.234-0.045,0.32,0.02c0.236,0.17,0.547,0.082,0.799,0.182v0.002h0.002c0.093,0.226,0.411,0.226,0.564,0.393
+                       c0.009,0.013,0.108-0.012,0.136-0.04c0.029-0.031,0.047-0.095,0.029-0.129c-0.033-0.057-0.09-0.133-0.156-0.147
+                       c-0.186-0.039-0.382-0.055-0.573-0.078v-0.002h-0.002c0.074-0.32-0.026-0.601-0.25-0.86c-0.073-0.085-0.075-0.173-0.002-0.26
+                       c0.098-0.114,0.184-0.24,0.307-0.331c0.121-0.088,0.277-0.159,0.43-0.201c0.15-0.04,0.238,0.104,0.363,0.153
+                       c0.103,0.037,0.215,0.129,0.302,0.113c0.576-0.117,0.707,0.222,0.707,0.552c0,0.303,0.151,0.422,0.432,0.52
+                       c0.397,0.133,0.722,0.355,0.995,0.63c0.206,0.21,0.239,0.311,0.041,0.495c-0.215,0.2-0.309,0.439-0.44,0.671
+                       c-0.133,0.238-0.065,0.584-0.471,0.69c-0.007,0.002-0.01,0.047,0,0.067c0.011,0.018,0.046,0.042,0.062,0.04
+                       c0.081-0.018,0.167-0.029,0.234-0.067c0.354-0.19,0.703-0.383,1.053-0.582c0.205-0.117,0.394-0.135,0.62-0.015
+                       c0.194,0.1,0.366,0.213,0.524,0.348c0.364,0.312,0.39,0.382,0,0.684c-0.296,0.228-0.366,0.583-0.689,0.789
+                       c-0.031,0.02-0.016,0.089-0.021,0.134c-0.019,0.138,0.104,0.251,0.238,0.217c0.081-0.019,0.158-0.046,0.237-0.073
+                       c0.204-0.064,0.395-0.204,0.632-0.079c0.332,0.177,0.664,0.359,0.832,0.674c0.024,0.046-0.02,0.143-0.067,0.186
+                       c-0.158,0.133-0.326,0.26-0.5,0.377c-0.244,0.167-0.32,0.375-0.272,0.631c0.02,0.115,0.005,0.237,0.033,0.353
+                       c0.069,0.281,0.167,0.561,0.128,0.848c0.326-0.144,0.649-0.287,0.976-0.43c0.031-0.144,0.02-0.283-0.066-0.424
+                       c-0.031-0.05-0.006-0.116,0.079-0.126c0.115-0.016,0.224-0.032,0.282-0.136c0.013-0.02,0.046-0.038,0.074-0.049
+                       c0.275-0.11,0.275-0.11,0.342-0.275c0.031-0.078,0.05-0.159,0.09-0.233c0.11-0.195,0.125-0.364-0.121-0.499
+                       c-0.079-0.042-0.058-0.13-0.006-0.187c0.07-0.073,0.144-0.175,0.237-0.2c0.148-0.038,0.235-0.153,0.4-0.177
+                       c0.149,0.088,0.227,0.257,0.415,0.326c0.077,0.027,0.144,0.073,0.228,0.061c0.146-0.028,0.251,0.011,0.34,0.11
+                       c0.024,0.029,0.086,0.057,0.122,0.051c0.252-0.047,0.44,0.066,0.638,0.159c0.044,0.022,0.083,0.047,0.132,0.055
+                       c0.077,0.012,0.16,0.027,0.241,0.034c0.11-0.049,0.223-0.098,0.336-0.147c0.002-0.091-0.12-0.185-0.166-0.267
+                       c-0.071-0.131-0.187-0.245-0.218-0.395c-0.004-0.033-0.06-0.057-0.095-0.084c-0.013-0.006-0.033-0.004-0.048-0.01
+                       c-0.265-0.073-0.325-0.329-0.557-0.441c-0.222-0.108-0.45-0.218-0.538-0.452c-0.038-0.1-0.079-0.228-0.213-0.269
+                       c-0.248-0.071-0.182-0.222-0.172-0.371c0.002-0.067,0.129-0.109,0.047-0.182c-0.042-0.038-0.102-0.079-0.16-0.089
+                       c-0.26-0.047-0.415-0.273-0.698-0.277c-0.05-0.002-0.062-0.053-0.073-0.098c-0.072-0.253-0.153-0.503-0.22-0.757
+                       c-0.044-0.153,0.016-0.215,0.215-0.215c0.09-0.002,0.145-0.022,0.203-0.083c0.094-0.092,0.191-0.19,0.309-0.255
+                       c0.081-0.044,0.183-0.055,0.203-0.153c0.015-0.089-0.053-0.155-0.086-0.23c-0.081-0.173-0.299-0.254-0.393-0.42
+                       c0.072-0.098,0.144-0.187,0.208-0.28c0.041-0.055,0.096-0.064,0.167-0.053c0.096,0.018,0.094-0.039,0.105-0.095
+                       c0.019-0.085,0.089-0.12,0.18-0.073c0.098,0.046,0.184,0.11,0.275,0.168c0.052,0.034,0.112,0.098,0.158,0.091
+                       c0.32-0.049,0.505,0.238,0.808,0.226c0.057-0.002,0.149,0.028,0.173,0.065c0.119,0.193,0.332,0.131,0.516,0.147
+                       c0.062,0.004,0.145-0.01,0.151-0.079c0.003-0.072-0.05-0.133-0.137-0.157c-0.042-0.013-0.095-0.004-0.143-0.008
+                       c-0.229-0.018-0.287-0.034-0.301-0.195c-0.027-0.259-0.222-0.393-0.459-0.481c-0.217-0.081-0.201-0.264-0.303-0.393
+                       c-0.022-0.024,0.023-0.116,0.066-0.142c0.169-0.104,0.278-0.257,0.461-0.353c0.136-0.069,0.184-0.091,0.323-0.006
+                       c0.208,0.121,0.445,0.22,0.684,0.293c0.112,0.035,0.182,0.108,0.296,0.149c0.077-0.154,0.117-0.295,0-0.46
+                       c-0.065-0.089-0.057-0.214-0.09-0.32c-0.044-0.128-0.125-0.228-0.305-0.226c-0.115,0-0.174-0.063-0.233-0.126
+                       c-0.208-0.233-0.425-0.455-0.73-0.603c-0.208-0.102-0.318-0.267-0.316-0.484c0.002-0.235-0.031-0.466-0.148-0.687
+                       c-0.114-0.207-0.013-0.403,0.095-0.613c-0.138-0.087-0.241-0.209-0.349-0.328c-0.191-0.218-0.2-0.258-0.007-0.438
+                       c0.211-0.202,0.331-0.224,0.646-0.124c0.046,0.013,0.085,0.045,0.132,0.051c0.07,0.008,0.122-0.027,0.156-0.078
+                       c0.033-0.054,0.038-0.102-0.026-0.147c-0.206-0.142-0.201-0.144-0.323-0.45c-0.014-0.036-0.057-0.067-0.091-0.093
+                       c-0.066-0.055-0.093-0.112-0.021-0.177c0.055-0.049,0.108-0.102,0.165-0.151c0.285-0.244,0.369-0.269,0.707-0.08
+                       c0.296,0.164,0.629,0.279,0.895,0.492c0.148,0.118,0.368,0.158,0.505,0.305c0.062,0.067,0.184,0.006,0.281-0.038
+                       c-0.169-0.177-0.406-0.29-0.571-0.467c-0.063-0.069-0.112-0.125-0.125-0.207c-0.013-0.069-0.033-0.122-0.12-0.165
+                       c-0.148-0.07-0.169-0.233-0.106-0.317c0.097-0.134-0.034-0.277,0.088-0.395c0.042-0.042,0.017-0.104-0.022-0.153
+                       c-0.176-0.225-0.26-0.474-0.305-0.735c-0.024-0.129-0.077-0.236-0.208-0.313c-0.053-0.031-0.101-0.071-0.149-0.108
+                       c-0.234-0.177-0.244-0.206-0.108-0.46c0.026-0.051,0.081-0.097,0.019-0.143c-0.153-0.109-0.244-0.253-0.344-0.395
+                       c-0.046-0.067-0.187-0.086-0.184-0.177c0.006-0.124,0.156-0.169,0.247-0.244c0.066-0.056,0.167-0.082,0.251-0.126
+                       c0.112-0.063,0.114-0.089,0.033-0.2c-0.103-0.14-0.101-0.14,0.031-0.253c0.034-0.032,0.055-0.073,0.094-0.097
+                       c0.351-0.206,0.327-0.281,0.712-0.046c0.067,0.04,0.136,0.075,0.199,0.108c0.116-0.047,0.026-0.089,0.011-0.129
+                       c-0.024-0.065-0.064-0.131-0.066-0.195c-0.002-0.053,0.035-0.11-0.022-0.153c-0.158-0.108-0.108-0.21,0.004-0.315
+                       c0.065-0.059,0.127-0.122,0.189-0.186c0.081-0.085,0.184-0.109,0.307-0.073c0.062,0.016,0.127,0.027,0.191,0.037
+                       c0.086,0.016,0.187,0.118,0.251,0.016c0.046-0.073-0.057-0.151-0.123-0.209c-0.089-0.079-0.197-0.139-0.164-0.277
+                       c0.12-0.483-0.115-0.889-0.413-1.276c-0.081-0.106-0.067-0.175,0.022-0.253c0.055-0.051,0.105-0.114,0.174-0.137
+                       c0.127-0.045,0.177-0.125,0.177-0.225c0-0.288,0.258-0.392,0.5-0.506c0.057-0.029,0.136-0.029,0.185,0.008
+                       c0.14,0.098,0.319,0.045,0.467,0.1c0.041-0.186-0.022-0.353-0.153-0.501c-0.042-0.049-0.048-0.1-0.004-0.151
+                       c0.057-0.067,0.105-0.14,0.177-0.193c0.069-0.053,0.158-0.098,0.248-0.122c0.086-0.024,0.138,0.061,0.213,0.087
+                       c0.06,0.02,0.127,0.073,0.174,0.065c0.335-0.074,0.417,0.121,0.419,0.314c0.004,0.177,0.094,0.246,0.259,0.3
+                       c0.232,0.075,0.426,0.202,0.585,0.362c0.122,0.12,0.144,0.177,0.03,0.286c-0.123,0.12-0.175,0.258-0.25,0.395
+                       c-0.073,0.14-0.031,0.34-0.267,0.406c-0.003,0.003-0.006,0.027,0.002,0.038c0.005,0.012,0.027,0.027,0.036,0.024
+                       c0.045-0.011,0.096-0.02,0.136-0.04c0.203-0.113,0.404-0.23,0.608-0.348c0.117-0.068,0.227-0.08,0.36-0.013
+                       c0.115,0.057,0.215,0.122,0.309,0.2c0.215,0.18,0.231,0.22,0.007,0.397c-0.17,0.135-0.208,0.344-0.393,0.466
+                       c-0.018,0.011-0.009,0.051-0.011,0.078c-0.01,0.08,0.062,0.144,0.141,0.124c0.048-0.011,0.094-0.029,0.138-0.045
+                       c0.118-0.037,0.228-0.122,0.366-0.049c0.196,0.1,0.39,0.202,0.492,0.386c0.015,0.027-0.009,0.083-0.038,0.109
+                       c-0.092,0.078-0.187,0.153-0.287,0.224c-0.141,0.098-0.181,0.22-0.153,0.369c0.015,0.067,0.006,0.137,0.024,0.204
+                       c0.06,0.226,0.151,0.448,0.024,0.684c-0.029,0.052,0.006,0.133,0.015,0.201c0.016,0.114,0.086,0.167,0.222,0.181
+                       c0.077,0.006,0.139,0.016,0.199,0.024c0.009-0.093,0-0.189-0.039-0.285c-0.052-0.119-0.122-0.235-0.167-0.359
+                       c-0.055-0.153,0.115-0.302,0.318-0.287c0.031,0.002,0.072-0.001,0.091,0.012c0.401,0.277,0.667-0.007,0.966-0.163
+                       c0.162-0.086,0.213-0.202,0.074-0.312c-0.191-0.155-0.222-0.358-0.301-0.55c-0.173-0.433-0.079-0.719,0.408-0.85
+                       c0.43-0.12,0.705-0.403,1.08-0.571c0.237-0.106,0.342-0.277,0.304-0.514c-0.02-0.124-0.015-0.258,0.009-0.38
+                       c0.05-0.259,0.22-0.351,0.526-0.263c0.235,0.067,0.451,0.146,0.707,0.108c0.163-0.024,0.325,0.032,0.371,0.169
+                       c0.07,0.224,0.261,0.318,0.467,0.44c0.231,0.137,0.374,0.346,0.74,0.261c0.191-0.046,0.325,0.122,0.34,0.295
+                       c0.029,0.412-0.03,0.821-0.165,1.216c-0.388,1.112-0.228,0.813,0.442,1.562c0.07,0.078,0.235,0.115,0.263,0.195
+                       c0.086,0.23,0.244,0.295,0.474,0.259c-0.024-0.09,0.035-0.198,0.152-0.246c0.03-0.011,0.057-0.022,0.087-0.029
+                       c0.172-0.035,0.398-0.022,0.457-0.2c0.084-0.26,0.033-0.521-0.187-0.725c-0.206-0.191-0.45-0.348-0.663-0.533
+                       c-0.103-0.086,0-0.279,0.151-0.302c0.088-0.013,0.179-0.02,0.268-0.015c0.174,0.006,0.339,0.198,0.505,0.066
+                       c0.095-0.075,0.088-0.235,0.145-0.351c0.055-0.106,0.198-0.166,0.301-0.108c0.316,0.182,0.55,0.087,0.777-0.116
+                       c0.057-0.051,0.142-0.082,0.217-0.124c-0.382-0.324-0.382-0.324-0.378-0.781c0.007-0.442,0.01-0.456,0.553-0.491
+                       c0.189-0.012,0.339-0.042,0.505-0.131c0.413-0.222,0.841-0.303,1.243,0.047c0.228,0.192,0.517,0.115,0.784,0.088
+                       c0.115-0.008,0.182-0.195,0.08-0.246c-0.636-0.297-0.456-0.845-0.572-1.3c-0.038-0.142,0.052-0.251,0.165-0.342
+                       c0.201-0.161,0.132-0.363,0.015-0.495c-0.201-0.226-0.314-0.528-0.544-0.686c-0.363-0.249-0.503-0.441-0.323-0.834
+                       c0.065-0.141-0.152-0.369-0.212-0.564c-0.103-0.335-0.053-0.397,0.378-0.557c0.418-0.153,0.624-0.517,0.483-0.856
+                       c-0.052-0.12-0.122-0.238-0.165-0.36c-0.058-0.153,0.112-0.302,0.317-0.286c0.03,0.002,0.07-0.002,0.089,0.011
+                       c0.401,0.277,0.667-0.006,0.966-0.165c0.162-0.084,0.213-0.2,0.077-0.31c-0.194-0.155-0.225-0.36-0.302-0.55
+                       c-0.174-0.433-0.078-0.719,0.408-0.853c0.431-0.117,0.706-0.399,1.079-0.568c0.237-0.108,0.344-0.277,0.305-0.514
+                       c-0.021-0.124-0.014-0.256,0.01-0.38c0.05-0.259,0.22-0.353,0.523-0.263c0.235,0.067,0.452,0.147,0.71,0.108
+                       c0.16-0.024,0.325,0.029,0.369,0.169c0.069,0.224,0.26,0.315,0.466,0.438c0.235,0.137,0.378,0.348,0.744,0.261
+                       c0.189-0.045,0.325,0.126,0.336,0.297c0.032,0.413-0.029,0.821-0.165,1.216c-0.384,1.112-0.227,0.813,0.443,1.56
+                       c0.069,0.08,0.234,0.118,0.266,0.198c0.095,0.259,0.284,0.308,0.564,0.242c0.086-0.02,0.182-0.024,0.272-0.024
+                       c0.143-0.002,0.246,0.121,0.156,0.206c-0.22,0.202-0.351,0.412-0.259,0.697c0.02,0.061-0.029,0.159-0.086,0.209
+                       c-0.491,0.421-0.588,1.056-1.165,1.433c0.459,0.206,0.467,0.211,0.674-0.016c0.328-0.357,0.775-0.561,1.259-0.721
+                       c0.027-0.008,0.06,0.007,0.091,0.005c0.244-0.007,0.189-0.422,0.549-0.28c0.192,0.079,0.355,0.207,0.581,0.218
+                       c0.089,0.006,0.184,0.024,0.263,0.057c0.093,0.038,0.125,0.129,0.074,0.199c-0.079,0.106-0.193,0.194-0.285,0.296
+                       c-0.079,0.085-0.095,0.173-0.038,0.284c0.189,0.354,0.184,0.356-0.05,0.535c-0.252,0.189-0.5,0.373-0.663,0.633
+                       c-0.084,0.133-0.215,0.253-0.351,0.353c-0.16,0.116-0.395,0.171-0.522,0.304c-0.185,0.198-0.308,0.442-0.451,0.66
+                       c0.014,0.184,0.2,0.177,0.33,0.219c0.134,0.045,0.196,0.211,0.382,0.158c0.169-0.182-0.05-0.446,0.127-0.588
+                       c0.191-0.151,0.467-0.23,0.703-0.341c0.081-0.038,0.17-0.065,0.239-0.114c0.253-0.175,0.516-0.173,0.751-0.002
+                       c0.239,0.177,0.519,0.257,0.811,0.332c0.121,0.034,0.2,0.165,0.108,0.252c-0.414,0.379-0.612,0.881-1.062,1.244
+                       c-0.221,0.178-0.481,0.307-0.705,0.482c0.076,0.23,0.375,0.351,0.356,0.615c-0.015,0.216,0.242,0.273,0.4,0.388
+                       c0.189,0.14,0.213,0.267,0.04,0.393c-0.239,0.175-0.442,0.34-0.406,0.641c0.02,0.166-0.134,0.273-0.296,0.362
+                       c-0.358,0.196-0.698,0.418-1.064,0.601c-0.203,0.102-0.303,0.245-0.391,0.412l0.011,0.012c0.38-0.071,0.794-0.014,1.131-0.246
+                       c0.146-0.1,0.356-0.129,0.52-0.049c0.277,0.133,0.457,0.008,0.654-0.114c0.123-0.075,0.246-0.153,0.382-0.204
+                       c0.281-0.106,0.594,0.02,0.586,0.284c-0.003,0.246,0.034,0.309,0.325,0.242c0.149-0.035,0.274-0.086,0.402-0.155
+                       c0.206-0.112,0.342-0.057,0.397,0.131c0.039,0.124,0.048,0.253,0.081,0.378c0.043,0.164,0.307,0.321,0.112,0.485
+                       c-0.203,0.173-0.363,0.428-0.721,0.42c-0.158-0.002-0.311,0.015-0.426,0.106c-0.217,0.173-0.395,0.399-0.643,0.528
+                       c-0.25,0.129-0.596,0.116-0.778,0.358l0.003,0.004c0.188-0.027,0.363-0.012,0.514,0.102c0.136,0.102,0.277,0.195,0.437,0.306
+                       c0.156-0.155,0.275-0.3,0.423-0.422c0.158-0.131,0.344-0.123,0.457-0.015c0.086-0.065,0.191-0.118,0.241-0.103
+                       c0.074,0.028,0.151,0.042,0.228,0.054c0.865-0.348,1.68-0.672,2.439-0.968c-0.003-0.016,0-0.029-0.005-0.045
+                       c-0.311-0.177-0.732-0.114-1.081-0.35c-0.437-0.297-0.781-0.575-1.056-1.01c-0.261-0.414-0.581-0.768-0.567-1.268
+                       c0.005-0.209-0.129-0.418-0.194-0.629c-0.057-0.18-0.115-0.359-0.158-0.542c-0.025-0.124,0.006-0.253,0.129-0.338
+                       c0.136-0.09,0.265-0.033,0.401,0.036c0.608,0.302,0.77,0.251,0.878-0.348c0.057-0.312,0.299-0.491,0.516-0.693
+                       c0.129-0.122,0.326-0.138,0.517-0.093c0.207,0.047,0.413,0.1,0.617,0.152c0.038-0.083,0.084-0.136,0.086-0.191
+                       c0.022-0.666,0.199-0.764,0.904-0.484c0.268,0.105,0.528,0.222,0.804,0.309c0.141,0.042,0.299-0.012,0.389-0.12
+                       c0.091-0.109,0.101-0.246,0.017-0.353c-0.077-0.1-0.204-0.246-0.307-0.244c-0.411,0.006-0.437-0.484-0.927-0.426
+                       c-0.498,0.057-0.783-0.407-1.22-0.558c-0.048-0.015-0.069-0.184-0.033-0.257c0.147-0.285,0.038-0.524-0.248-0.635
+                       c-0.487-0.184-0.647-0.561-0.915-0.889c-0.254-0.305-0.237-0.562-0.068-0.866c0.132-0.236,0.198-0.267,0.469-0.083
+                       c0.115,0.075,0.205,0.216,0.354,0.12c0.222-0.142,0.411,0.098,0.65-0.011c-0.184-0.329-0.61-0.54-0.632-0.952
+                       c-0.014-0.295,0.067-0.447,0.41-0.378c0.428,0.085,0.674,0.047,0.846-0.351c0.151-0.342,0.404-0.375,0.811-0.264
+                       c0.233,0.065,0.408,0.283,0.698,0.199c0.129-0.116,0.06-0.234,0.009-0.348c-0.11-0.254-0.134-0.476,0.18-0.66
+                       c0.143-0.083,0.242-0.228,0.332-0.362c0.323-0.465,0.261-0.623-0.32-0.86c-0.066-0.027-0.145-0.029-0.21-0.058
+                       c-0.277-0.122-0.318-0.261-0.143-0.532c0.052-0.08,0.132-0.147,0.193-0.211c-0.04-0.253-0.32-0.257-0.492-0.337
+                       c-0.369-0.171-0.72-0.309-0.699-0.741c0.006-0.106-0.095-0.244-0.196-0.322c-0.253-0.198-0.236-0.41-0.193-0.679
+                       c0.077-0.499,0.044-0.507,0.66-0.462c0.132,0.012,0.208-0.004,0.22-0.131c0.096-0.981,0.478-1.527,1.53-1.909
+                       c0.404-0.147,0.608-0.302,0.648-0.648c0.019-0.153,0.055-0.308,0.101-0.46c0.068-0.219,0.204-0.257,0.498-0.2
+                       c0.395,0.079,0.729,0.313,1.15,0.305c0.064,0,0.148-0.045,0.183-0.091c0.034-0.045,0.05-0.149,0.022-0.169
+                       c-0.391-0.249-0.466-0.534-0.194-0.889c0.105-0.136,0.115-0.298-0.007-0.44c-0.206-0.244-0.206-0.528-0.223-0.808
+                       c-0.006-0.12-0.014-0.291,0.07-0.353c0.55-0.42,0.485-0.981,0.564-1.516c0.033-0.216,0.127-0.42,0.294-0.597
+                       c0.27-0.293,0.399-0.328,0.93-0.153c0.2,0.067,0.356,0.1,0.415-0.124c0.054-0.195,0.23-0.315,0.388-0.444
+                       c0.077-0.065,0.167-0.158,0.257-0.161c0.446-0.023,0.87,0.092,1.293,0.197c0.22,0.054,0.413,0.138,0.476,0.348
+                       c0.009,0.03,0.023,0.061,0.035,0.089c0.065,0.157,0.196,0.155,0.356,0.11c0.296-0.084,0.491,0.032,0.643,0.238
+                       c0.163,0.215,0.33,0.426,0.149,0.688c-0.055,0.082-0.134,0.153-0.175,0.237c-0.129,0.257,0.026,0.511,0.344,0.572
+                       c0.072,0.016,0.149,0.024,0.22,0.02c0.184-0.009,0.366-0.029,0.601-0.049c0.132,0.304,0.231,0.639,0.419,0.931
+                       c0.246,0.391,0.222,0.708-0.177,1.002c-0.11,0.08-0.239,0.159-0.232,0.297c0.005,0.045,0.083,0.126,0.125,0.124
+                       c0.143-0.004,0.33-0.002,0.418-0.073c0.447-0.371,0.866-0.137,1.285-0.051c0.057,0.35-0.359,0.444-0.373,0.699
+                       c0.057,0.108,0.172,0.096,0.279,0.108c0.555,0.076,0.621,0.169,0.277,0.468c-0.296,0.258-0.464,0.562-0.61,0.878
+                       c-0.071,0.152-0.009,0.309,0.225,0.358c0.203,0.042,0.344,0.131,0.237,0.324c-0.096,0.177-0.163,0.348-0.063,0.536
+                       c0.182,0.342,0.197,0.716,0.219,1.099c0.057,0,0.114,0.002,0.172,0.004c-0.002-0.063-0.015-0.124-0.04-0.186
+                       c-0.05-0.123-0.12-0.238-0.166-0.36c-0.055-0.155,0.116-0.302,0.318-0.286c0.031,0.002,0.072-0.005,0.091,0.008
+                       c0.402,0.277,0.667-0.006,0.966-0.163c0.163-0.084,0.213-0.2,0.074-0.312c-0.192-0.153-0.223-0.358-0.302-0.55
+                       c-0.172-0.433-0.079-0.717,0.408-0.851c0.432-0.117,0.706-0.401,1.081-0.569c0.237-0.107,0.344-0.278,0.305-0.515
+                       c-0.02-0.125-0.015-0.256,0.009-0.379c0.049-0.26,0.22-0.352,0.526-0.264c0.234,0.066,0.452,0.149,0.708,0.108
+                       c0.163-0.024,0.325,0.031,0.371,0.171c0.069,0.222,0.26,0.315,0.466,0.438c0.232,0.137,0.378,0.348,0.74,0.261
+                       c0.192-0.045,0.326,0.124,0.34,0.295c0.03,0.413-0.029,0.821-0.165,1.216c-0.387,1.114-0.227,0.815,0.439,1.562
+                       c0.05,0.055,0.146,0.09,0.208,0.135c0.261,0.036,0.474,0.185,0.704,0.291c0.062-0.006,0.129-0.012,0.191-0.012
+                       c0.099-0.001,0.17,0.054,0.184,0.118c0.026,0.002,0.047,0.007,0.075,0.007c0.098-0.003,0.254,0.049,0.292,0.113
+                       c0.201,0.337,0.57,0.236,0.885,0.264c0.106,0.008,0.25-0.014,0.258-0.132c0.01-0.123-0.079-0.227-0.224-0.27
+                       c-0.077-0.022-0.165-0.014-0.249-0.02c-0.391-0.036-0.49-0.065-0.512-0.342c-0.035-0.446-0.367-0.679-0.771-0.835
+                       c-0.374-0.143-0.337-0.457-0.51-0.681c-0.033-0.045,0.046-0.2,0.12-0.244c0.294-0.173,0.483-0.432,0.803-0.593
+                       c0.234-0.117,0.318-0.153,0.555-0.008c0.351,0.218,0.755,0.389,1.164,0.521c0.193,0.062,0.308,0.191,0.502,0.262
+                       c0.136-0.264,0.211-0.507,0.014-0.79c-0.104-0.156-0.09-0.366-0.145-0.55c-0.066-0.222-0.206-0.393-0.512-0.395
+                       c-0.198-0.002-0.301-0.109-0.402-0.224c-0.347-0.404-0.708-0.788-1.233-1.051c-0.354-0.178-0.533-0.462-0.522-0.837
+                       c0.01-0.403-0.04-0.802-0.236-1.181c-0.186-0.359-0.008-0.692,0.181-1.047c-0.231-0.153-0.404-0.366-0.583-0.577
+                       c-0.326-0.376-0.34-0.442-0.006-0.75c0.369-0.34,0.574-0.376,1.115-0.199c0.077,0.025,0.143,0.079,0.222,0.089
+                       c0.123,0.018,0.213-0.042,0.272-0.129c0.058-0.089,0.065-0.173-0.04-0.249c-0.349-0.251-0.342-0.255-0.54-0.784
+                       c-0.024-0.062-0.099-0.113-0.156-0.161c-0.112-0.096-0.158-0.191-0.029-0.302c0.095-0.087,0.189-0.175,0.286-0.258
+                       c0.493-0.412,0.64-0.452,1.215-0.123c0.505,0.288,1.073,0.497,1.521,0.868c0.251,0.206,0.626,0.277,0.858,0.534
+                       c0.105,0.115,0.312,0.013,0.483-0.063c-0.285-0.306-0.686-0.506-0.966-0.814c-0.105-0.12-0.191-0.216-0.208-0.358
+                       c-0.017-0.119-0.053-0.21-0.201-0.284c-0.251-0.124-0.282-0.405-0.172-0.548c0.171-0.225-0.05-0.477,0.163-0.674
+                       c0.079-0.073,0.031-0.183-0.033-0.264c-0.296-0.387-0.432-0.819-0.502-1.265c-0.035-0.224-0.123-0.408-0.347-0.544
+                       c-0.091-0.055-0.169-0.122-0.253-0.188c-0.393-0.311-0.41-0.362-0.171-0.79c0.051-0.089,0.144-0.169,0.039-0.249
+                       c-0.259-0.191-0.409-0.44-0.577-0.686c-0.079-0.114-0.32-0.151-0.31-0.308c0.014-0.213,0.272-0.289,0.427-0.413
+                       c0.118-0.096,0.293-0.137,0.436-0.212c0.196-0.103,0.2-0.15,0.065-0.343c-0.173-0.241-0.17-0.241,0.058-0.434
+                       c0.061-0.049,0.098-0.122,0.166-0.159c0.607-0.346,0.571-0.478,1.223-0.065c0.111,0.069,0.23,0.131,0.337,0.193
+                       c0.2-0.08,0.048-0.153,0.024-0.222c-0.038-0.113-0.105-0.226-0.11-0.338c-0.002-0.09,0.066-0.19-0.034-0.263
+                       c-0.262-0.191-0.176-0.364,0.023-0.54c0.112-0.102,0.22-0.21,0.327-0.318c0.145-0.144,0.317-0.182,0.527-0.12
+                       c0.105,0.032,0.218,0.051,0.329,0.072c0.145,0.027,0.318,0.206,0.428,0.031c0.081-0.124-0.094-0.258-0.206-0.362
+                       c-0.149-0.137-0.333-0.241-0.268-0.479c0.217-0.826-0.175-1.529-0.672-2.2c-0.139-0.182-0.11-0.3,0.04-0.432
+                       c0.098-0.084,0.19-0.189,0.309-0.23c0.217-0.076,0.306-0.209,0.31-0.384c0.01-0.493,0.454-0.664,0.871-0.857
+                       c0.101-0.046,0.235-0.044,0.32,0.02c0.235,0.171,0.545,0.082,0.799,0.183c0,0.002,0.002,0.002,0.002,0.002
+                       c0.093,0.226,0.411,0.226,0.564,0.393c0.009,0.011,0.108-0.012,0.134-0.04c0.031-0.031,0.05-0.096,0.031-0.129
+                       c-0.033-0.058-0.09-0.134-0.156-0.147c-0.186-0.039-0.382-0.055-0.573-0.078v-0.002h-0.002c0.074-0.32-0.026-0.604-0.248-0.861
+                       c-0.074-0.084-0.077-0.175-0.003-0.259c0.098-0.114,0.184-0.24,0.307-0.331c0.121-0.088,0.277-0.161,0.432-0.202
+                       c0.149-0.039,0.237,0.104,0.362,0.151c0.102,0.04,0.215,0.132,0.301,0.114c0.576-0.116,0.707,0.222,0.707,0.552
+                       c0,0.304,0.151,0.424,0.432,0.519c0.397,0.135,0.722,0.355,0.996,0.632c0.205,0.211,0.239,0.311,0.04,0.495
+                       c-0.215,0.201-0.31,0.438-0.44,0.672c-0.132,0.238-0.065,0.584-0.471,0.69c-0.007,0.002-0.01,0.047,0.002,0.065
+                       c0.01,0.02,0.043,0.044,0.06,0.04c0.079-0.016,0.167-0.03,0.235-0.065c0.353-0.191,0.702-0.387,1.052-0.584
+                       c0.206-0.115,0.395-0.133,0.622-0.015c0.193,0.102,0.365,0.215,0.523,0.35c0.364,0.313,0.39,0.381,0,0.683
+                       c-0.296,0.229-0.369,0.584-0.689,0.79c-0.031,0.018-0.016,0.087-0.021,0.133c-0.019,0.136,0.102,0.251,0.239,0.218
+                       c0.081-0.02,0.158-0.049,0.236-0.073c0.204-0.064,0.395-0.204,0.632-0.08c0.333,0.177,0.665,0.359,0.832,0.674
+                       c0.024,0.047-0.02,0.142-0.067,0.185c-0.159,0.135-0.326,0.261-0.5,0.379c-0.246,0.166-0.32,0.375-0.272,0.63
+                       c0.022,0.116,0.005,0.238,0.033,0.354c0.096,0.388,0.246,0.769,0.022,1.169c-0.053,0.095,0.002,0.233,0.016,0.349
+                       c0.024,0.193,0.144,0.289,0.377,0.311c0.713,0.075,0.911,0.167,1.4,0.642c-0.061,0.193-0.252,0.308-0.402,0.444
+                       c-0.165,0.151-0.287,0.293-0.103,0.495c0.057,0.059,0.02,0.135-0.041,0.191c-0.093,0.086-0.213,0.157-0.176,0.298
+                       c0.067,0.244-0.402,0.523-0.033,0.701c0.262,0.13,0.444-0.221,0.683-0.329c0.23-0.107,0.382-0.134,0.603,0.007
+                       c0.179,0.116,0.344,0.232,0.478,0.387c0.258,0.297,0.279,0.304-0.034,0.591c-0.162,0.149-0.234,0.304-0.294,0.493
+                       c-0.086,0.271-0.193,0.621-0.165,0.817c0.017,0.1-0.002,0.191-0.093,0.257c-0.175,0.129-0.098,0.259,0.007,0.375
+                       c0.237,0.251,0.316,0.48-0.002,0.739c-0.132,0.104-0.163,0.269-0.118,0.435c0.263-0.028,0.51-0.093,0.754-0.238
+                       c0.136-0.078,0.354-0.059,0.516-0.084c0.145-0.187-0.108-0.22-0.136-0.331c-0.015-0.049-0.044-0.102-0.034-0.149
+                       c0.048-0.212,0.51-0.65,0.73-0.626c0.549,0.063,0.992-0.211,1.492-0.3c0.37-0.067,0.652-0.057,0.923,0.165
+                       c0.196,0.161,0.401,0.324,0.715,0.292c0.141-0.013,0.344,0.058,0.387-0.108c0.031-0.118-0.16-0.124-0.255-0.177
+                       c-0.266-0.144-0.197-0.417-0.316-0.621c-0.077-0.131,0.033-0.244,0.141-0.344c0.127-0.118,0.11-0.224-0.038-0.322
+                       c-0.072-0.049-0.132-0.11-0.206-0.155c-0.514-0.302-0.641-0.462-0.77-0.961c-0.05-0.186-0.196-0.308-0.402-0.395
+                       c-0.588-0.243-1.088-0.567-1.293-1.125c-0.053-0.14-0.184-0.193-0.309-0.269c-0.174-0.104-0.342-0.217-0.497-0.342
+                       c-0.153-0.119-0.182-0.257-0.026-0.404c0.101-0.096,0.2-0.195,0.277-0.306c0.244-0.355,0.493-0.708,0.521-1.143
+                       c0.013-0.224,0.116-0.238,0.333-0.075c0.046,0.033,0.077,0.104,0.119,0.108c0.142,0.011,0.111-0.086,0.098-0.151
+                       c-0.045-0.222,0.065-0.362,0.323-0.383c0.362-0.031,0.658-0.285,1.055-0.207c0.06,0.014,0.167-0.057,0.217-0.11
+                       c0.145-0.163,0.339-0.322,0.391-0.508c0.067-0.238,0.142-0.382,0.465-0.349c0.217,0.022,0.323-0.115,0.423-0.249
+                       c0.145-0.19,0.352-0.257,0.621-0.266c0.32-0.014,0.397-0.14,0.315-0.391c-0.088-0.286-0.346-0.395-0.641-0.501
+                       c-0.291-0.105-0.336-0.198-0.161-0.409c0.159-0.188,0.172-0.302-0.046-0.446c-0.263-0.175-0.488-0.404-0.775-0.542
+                       c-0.306-0.147-0.573-0.263-0.581-0.612c-0.002-0.155-0.18-0.259-0.313-0.366c-0.176-0.142-0.346-0.29-0.512-0.444
+                       c-0.1-0.095-0.038-0.255,0.113-0.317c0.026-0.012,0.055-0.023,0.086-0.029c0.172-0.036,0.4-0.023,0.457-0.203
+                       c0.084-0.259,0.031-0.522-0.189-0.725c-0.204-0.188-0.448-0.348-0.66-0.531c-0.103-0.086,0-0.281,0.151-0.301
+                       c0.088-0.014,0.18-0.023,0.268-0.018c0.174,0.008,0.34,0.2,0.505,0.068c0.093-0.075,0.086-0.237,0.145-0.351
+                       c0.055-0.106,0.198-0.167,0.299-0.108c0.318,0.18,0.553,0.087,0.779-0.116c0.058-0.05,0.142-0.082,0.217-0.123
+                       c-0.382-0.325-0.382-0.325-0.378-0.784c0.008-0.44,0.01-0.452,0.553-0.489c0.189-0.013,0.34-0.042,0.505-0.131
+                       c0.414-0.222,0.842-0.302,1.243,0.047c0.225,0.193,0.514,0.115,0.785,0.088c0.115-0.011,0.181-0.196,0.079-0.245
+                       c-0.636-0.301-0.457-0.847-0.575-1.301c-0.036-0.142,0.055-0.251,0.167-0.342c0.201-0.164,0.132-0.363,0.015-0.496
+                       c-0.201-0.224-0.316-0.529-0.546-0.686c-0.36-0.246-0.501-0.442-0.32-0.833c0.065-0.141-0.152-0.371-0.212-0.566
+                       c-0.103-0.332-0.053-0.395,0.378-0.554c0.418-0.155,0.624-0.517,0.483-0.856c-0.052-0.122-0.122-0.238-0.165-0.36
+                       c-0.057-0.155,0.112-0.302,0.318-0.286c0.029,0.001,0.069-0.004,0.088,0.008c0.401,0.279,0.667-0.007,0.966-0.163
+                       c0.162-0.084,0.213-0.2,0.073-0.31c-0.191-0.155-0.221-0.36-0.299-0.552c-0.174-0.431-0.081-0.717,0.407-0.85
+                       c0.43-0.118,0.707-0.399,1.08-0.57c0.237-0.107,0.344-0.278,0.306-0.515c-0.022-0.124-0.015-0.255,0.009-0.38
+                       c0.05-0.257,0.22-0.351,0.523-0.263c0.235,0.069,0.452,0.149,0.708,0.108c0.163-0.024,0.327,0.032,0.371,0.171
+                       c0.069,0.222,0.261,0.315,0.466,0.438c0.232,0.137,0.377,0.348,0.741,0.262c0.191-0.045,0.325,0.123,0.339,0.296
+                       c0.03,0.411-0.029,0.819-0.165,1.214c-0.387,1.114-0.227,0.815,0.443,1.562c0.07,0.08,0.235,0.118,0.266,0.198
+                       c0.095,0.259,0.281,0.308,0.564,0.242c0.086-0.022,0.182-0.024,0.272-0.028c0.143-0.002,0.246,0.125,0.156,0.209
+                       c-0.22,0.202-0.351,0.413-0.261,0.697c0.022,0.059-0.026,0.16-0.084,0.209c-0.49,0.422-0.588,1.054-1.167,1.433
+                       c0.46,0.207,0.467,0.211,0.677-0.017c0.327-0.356,0.773-0.56,1.258-0.719c0.023-0.01,0.06,0.006,0.091,0.004
+                       c0.241-0.007,0.189-0.424,0.55-0.279c0.191,0.075,0.354,0.206,0.58,0.217c0.089,0.005,0.182,0.024,0.263,0.058
+                       c0.094,0.037,0.125,0.129,0.074,0.197c-0.079,0.107-0.194,0.195-0.287,0.295c-0.077,0.087-0.093,0.175-0.036,0.285
+                       c0.189,0.353,0.184,0.357-0.052,0.534c-0.248,0.191-0.498,0.375-0.66,0.635c-0.084,0.133-0.215,0.253-0.351,0.353
+                       c-0.163,0.116-0.395,0.171-0.521,0.304c-0.186,0.198-0.309,0.44-0.454,0.66c0.016,0.182,0.203,0.177,0.332,0.22
+                       c0.134,0.041,0.197,0.21,0.382,0.155c0.17-0.182-0.05-0.446,0.127-0.586c0.189-0.153,0.467-0.23,0.703-0.342
+                       c0.082-0.037,0.17-0.064,0.239-0.113c0.254-0.177,0.517-0.173,0.751-0.002c0.239,0.177,0.519,0.258,0.811,0.332
+                       c0.121,0.032,0.2,0.165,0.105,0.252c-0.336,0.308-0.539,0.697-0.842,1.027c0.197,0.006,0.388,0.071,0.577,0.233
+                       c0.224,0.195,0.514,0.116,0.784,0.091c0.115-0.012,0.182-0.198,0.079-0.246c-0.636-0.3-0.457-0.845-0.575-1.302
+                       c-0.036-0.142,0.056-0.249,0.168-0.34c0.198-0.165,0.132-0.364,0.013-0.497c-0.199-0.224-0.315-0.528-0.544-0.686
+                       c-0.364-0.249-0.505-0.441-0.323-0.833c0.067-0.141-0.151-0.37-0.213-0.565c-0.103-0.332-0.05-0.395,0.38-0.554
+                       c0.419-0.156,0.624-0.517,0.481-0.857c-0.05-0.122-0.119-0.237-0.165-0.359c-0.055-0.156,0.115-0.302,0.318-0.287
+                       c0.031,0.003,0.071-0.004,0.091,0.009c0.401,0.278,0.667-0.005,0.966-0.161c0.162-0.084,0.213-0.2,0.074-0.312
+                       c-0.191-0.156-0.222-0.358-0.301-0.551c-0.173-0.432-0.079-0.717,0.408-0.85c0.43-0.118,0.708-0.401,1.081-0.57
+                       c0.236-0.106,0.343-0.277,0.303-0.515c-0.019-0.124-0.015-0.255,0.009-0.379c0.05-0.258,0.22-0.351,0.526-0.263
+                       c0.235,0.066,0.452,0.149,0.707,0.108c0.163-0.024,0.325,0.031,0.371,0.169c0.07,0.224,0.261,0.317,0.466,0.439
+                       c0.232,0.138,0.376,0.348,0.741,0.262c0.191-0.045,0.325,0.124,0.34,0.297c0.029,0.41-0.029,0.819-0.165,1.213
+                       c-0.388,1.114-0.228,0.814,0.442,1.563c0.07,0.078,0.234,0.115,0.263,0.196c0.098,0.26,0.285,0.309,0.566,0.24
+                       c0.087-0.02,0.18-0.022,0.27-0.024c0.146-0.002,0.25,0.124,0.156,0.209c-0.22,0.202-0.349,0.41-0.259,0.697
+                       c0.02,0.059-0.025,0.159-0.084,0.208c-0.49,0.422-0.588,1.054-1.166,1.434c0.459,0.206,0.466,0.21,0.674-0.018
+                       c0.327-0.357,0.775-0.559,1.257-0.719c0.027-0.008,0.062,0.004,0.091,0.004c0.244-0.008,0.192-0.424,0.55-0.279
+                       c0.139,0.055,0.265,0.138,0.408,0.184c-0.044-0.092-0.101-0.184-0.177-0.273c-0.071-0.084-0.076-0.172,0-0.259
+                       c0.098-0.112,0.182-0.24,0.307-0.328c0.121-0.091,0.275-0.163,0.43-0.205c0.151-0.039,0.237,0.105,0.364,0.154
+                       c0.099,0.037,0.215,0.129,0.299,0.113c0.578-0.118,0.711,0.222,0.711,0.552c-0.004,0.305,0.148,0.423,0.431,0.519
+                       c0.397,0.136,0.723,0.356,0.995,0.633c0.205,0.208,0.237,0.308,0.038,0.492c-0.215,0.203-0.308,0.44-0.437,0.673
+                       c-0.134,0.237-0.068,0.583-0.472,0.69c-0.009,0.002-0.009,0.046,0,0.066c0.013,0.018,0.046,0.045,0.063,0.04
+                       c0.078-0.016,0.165-0.03,0.231-0.067c0.357-0.188,0.706-0.383,1.055-0.581c0.205-0.116,0.394-0.134,0.622-0.016
+                       c0.193,0.1,0.365,0.213,0.523,0.348c0.362,0.313,0.39,0.382,0,0.684c-0.299,0.23-0.367,0.583-0.688,0.789
+                       c-0.031,0.02-0.017,0.089-0.024,0.136c-0.02,0.135,0.105,0.249,0.241,0.216c0.081-0.018,0.158-0.047,0.236-0.073
+                       c0.204-0.065,0.395-0.204,0.629-0.078c0.332,0.175,0.665,0.357,0.832,0.674c0.027,0.045-0.016,0.141-0.066,0.184
+                       c-0.156,0.133-0.323,0.26-0.498,0.378c-0.246,0.166-0.323,0.374-0.275,0.63c0.022,0.115,0.004,0.239,0.033,0.353
+                       c0.064,0.253,0.146,0.501,0.136,0.754c0.316-0.113,0.627-0.098,0.9,0.075c0.213,0.136,0.311,0.081,0.42-0.084
+                       c0.065-0.1,0.191-0.109,0.319-0.118c0.602-0.047,1.199-0.102,1.8-0.151c0.141-0.011,0.312,0.175,0.401,0.027
+                       c0.075-0.119,0.069-0.326-0.008-0.446c-0.189-0.29-0.27-0.626-0.538-0.883c-0.095-0.096,0.013-0.295,0.156-0.311
+                       c0.423-0.042,0.847-0.068,1.27-0.102c0.514,0.257,0.832-0.102,1.296-0.24c-0.25-0.243-0.435-0.439-0.639-0.621
+                       c-0.284-0.253-0.595-0.42-1.045-0.275c-0.369,0.12-0.643,0.02-0.799-0.312c-0.153-0.324-0.474-0.542-0.808-0.721
+                       c-0.672-0.362-1.191-0.873-1.815-1.277c-0.062-0.039-0.108-0.131-0.103-0.198c0.008-0.126,0.146-0.144,0.263-0.173
+                       c0.228-0.053,0.577,0.093,0.669-0.122c0.129-0.296-0.339-0.302-0.483-0.481c-0.031-0.039-0.097-0.057-0.153-0.082
+                       c-0.268-0.12-0.664-0.256-0.609-0.503c0.075-0.336,0.562-0.285,0.854-0.26c0.502,0.042,0.938,0.016,1.364-0.233
+                       c0.137-0.08,0.355-0.061,0.517-0.085c0.146-0.189-0.108-0.222-0.136-0.33c-0.015-0.051-0.044-0.104-0.034-0.151
+                       c0.048-0.211,0.51-0.651,0.73-0.626c0.549,0.062,0.992-0.211,1.491-0.297c0.371-0.067,0.654-0.058,0.924,0.161
+                       c0.196,0.165,0.401,0.326,0.715,0.295c0.141-0.015,0.344,0.057,0.387-0.108c0.031-0.12-0.16-0.124-0.255-0.178
+                       c-0.266-0.147-0.197-0.418-0.316-0.622c-0.077-0.13,0.033-0.244,0.141-0.342c0.127-0.12,0.11-0.226-0.038-0.324
+                       c-0.072-0.048-0.132-0.112-0.206-0.154c-0.514-0.302-0.641-0.461-0.77-0.96c-0.05-0.189-0.193-0.311-0.402-0.397
+                       c-0.588-0.244-1.087-0.568-1.293-1.125c-0.053-0.14-0.184-0.193-0.309-0.269c-0.174-0.104-0.341-0.218-0.497-0.342
+                       c-0.151-0.12-0.182-0.257-0.026-0.404c0.101-0.096,0.2-0.193,0.277-0.305c0.244-0.357,0.493-0.709,0.522-1.143
+                       c0.014-0.224,0.115-0.239,0.332-0.078c0.046,0.033,0.077,0.106,0.119,0.109c0.142,0.011,0.111-0.087,0.098-0.152
+                       c-0.045-0.221,0.065-0.359,0.32-0.381c0.364-0.033,0.66-0.286,1.057-0.206c0.06,0.012,0.167-0.057,0.215-0.114
+                       c0.148-0.161,0.342-0.322,0.394-0.506c0.067-0.239,0.142-0.381,0.465-0.351c0.217,0.022,0.323-0.116,0.423-0.249
+                       c0.145-0.191,0.351-0.255,0.621-0.267c0.32-0.011,0.397-0.137,0.315-0.388c-0.091-0.287-0.346-0.397-0.64-0.502
+                       c-0.292-0.104-0.337-0.197-0.163-0.408c0.16-0.188,0.172-0.304-0.046-0.448c-0.263-0.175-0.487-0.401-0.775-0.542
+                       c-0.303-0.147-0.573-0.264-0.581-0.61c-0.002-0.158-0.176-0.26-0.312-0.369c-0.177-0.142-0.347-0.289-0.512-0.442
+                       c-0.101-0.096-0.039-0.257,0.111-0.32c0.027-0.011,0.056-0.02,0.085-0.027c0.174-0.036,0.402-0.024,0.459-0.202
+                       c0.084-0.26,0.031-0.521-0.189-0.725c-0.204-0.189-0.448-0.348-0.66-0.533c-0.103-0.086,0-0.279,0.151-0.302
+                       c0.088-0.012,0.179-0.02,0.268-0.016c0.174,0.007,0.339,0.198,0.503,0.067c0.094-0.073,0.087-0.235,0.146-0.351
+                       c0.055-0.107,0.199-0.167,0.299-0.109c0.318,0.183,0.553,0.089,0.779-0.115c0.058-0.051,0.142-0.08,0.217-0.122
+                       c-0.382-0.324-0.382-0.324-0.378-0.783c0.008-0.442,0.01-0.456,0.553-0.491c0.187-0.012,0.34-0.042,0.505-0.132
+                       c0.413-0.219,0.841-0.3,1.243,0.047c0.225,0.193,0.514,0.116,0.785,0.091c0.115-0.011,0.182-0.198,0.078-0.246
+                       c-0.635-0.3-0.457-0.848-0.573-1.303c-0.035-0.141,0.055-0.249,0.167-0.341c0.201-0.162,0.132-0.362,0.015-0.495
+                       c-0.2-0.224-0.316-0.528-0.546-0.686c-0.36-0.249-0.501-0.441-0.319-0.832c0.064-0.142-0.153-0.371-0.213-0.566
+                       c-0.105-0.332-0.052-0.397,0.378-0.554c0.418-0.155,0.624-0.517,0.483-0.857c-0.053-0.122-0.122-0.237-0.165-0.361
+                       c-0.058-0.154,0.112-0.301,0.317-0.287c0.029,0.002,0.07-0.002,0.089,0.012c0.401,0.277,0.667-0.007,0.966-0.162
+                       c0.162-0.086,0.213-0.202,0.074-0.313c-0.192-0.155-0.223-0.357-0.3-0.55c-0.174-0.432-0.081-0.717,0.407-0.85
+                       c0.43-0.118,0.707-0.401,1.08-0.57c0.237-0.108,0.344-0.277,0.305-0.515c-0.021-0.123-0.014-0.254,0.01-0.379
+                       c0.05-0.259,0.22-0.351,0.523-0.263c0.235,0.066,0.452,0.149,0.708,0.108c0.163-0.024,0.327,0.031,0.371,0.168
+                       c0.069,0.225,0.261,0.319,0.466,0.44c0.234,0.138,0.377,0.346,0.742,0.262c0.191-0.047,0.325,0.124,0.34,0.295
+                       c0.029,0.412-0.03,0.821-0.166,1.216c-0.387,1.112-0.227,0.811,0.443,1.562c0.069,0.078,0.234,0.115,0.266,0.195
+                       c0.096,0.261,0.284,0.308,0.564,0.241c0.086-0.019,0.182-0.021,0.272-0.024c0.143-0.002,0.246,0.124,0.156,0.209
+                       c-0.222,0.2-0.352,0.41-0.261,0.695c0.02,0.059-0.026,0.161-0.083,0.208c-0.49,0.424-0.588,1.056-1.167,1.434
+                       c0.46,0.206,0.467,0.21,0.678-0.016c0.327-0.357,0.772-0.561,1.257-0.721c0.024-0.006,0.06,0.006,0.091,0.006
+                       c0.241-0.009,0.189-0.424,0.55-0.281c0.191,0.078,0.354,0.208,0.58,0.22c0.089,0.004,0.182,0.022,0.263,0.055
+                       c0.094,0.038,0.125,0.131,0.074,0.198c-0.079,0.108-0.193,0.195-0.287,0.297c-0.077,0.086-0.093,0.173-0.035,0.285
+                       c0.189,0.353,0.184,0.357-0.053,0.534c-0.249,0.189-0.498,0.373-0.66,0.632c-0.083,0.134-0.215,0.256-0.351,0.353
+                       c-0.163,0.116-0.395,0.172-0.521,0.305c-0.186,0.198-0.309,0.442-0.454,0.66c0.016,0.184,0.203,0.177,0.332,0.22
+                       c0.132,0.044,0.196,0.21,0.382,0.157c0.17-0.183-0.05-0.446,0.127-0.586c0.192-0.153,0.466-0.233,0.704-0.344
+                       c0.08-0.035,0.168-0.064,0.238-0.11c0.254-0.177,0.517-0.173,0.751-0.002c0.24,0.175,0.516,0.255,0.811,0.332
+                       c0.121,0.031,0.2,0.162,0.105,0.249c-0.412,0.379-0.61,0.883-1.06,1.245c-0.22,0.177-0.483,0.307-0.705,0.482
+                       c0.075,0.23,0.373,0.35,0.356,0.614c-0.015,0.218,0.242,0.275,0.4,0.391c0.189,0.137,0.213,0.264,0.04,0.391
+                       c-0.239,0.175-0.442,0.34-0.408,0.64c0.02,0.167-0.132,0.274-0.294,0.364c-0.358,0.195-0.698,0.417-1.066,0.602
+                       c-0.203,0.1-0.301,0.245-0.389,0.41l0.011,0.012c0.38-0.071,0.794-0.014,1.132-0.245c0.145-0.102,0.356-0.129,0.519-0.05
+                       c0.275,0.135,0.456,0.011,0.654-0.114c0.123-0.075,0.246-0.153,0.384-0.204c0.279-0.106,0.59,0.019,0.586,0.284
+                       c-0.006,0.249,0.033,0.311,0.325,0.242c0.148-0.036,0.272-0.085,0.402-0.156c0.205-0.11,0.339-0.057,0.397,0.132
+                       c0.038,0.124,0.047,0.253,0.08,0.377c0.043,0.165,0.306,0.322,0.113,0.486c-0.204,0.173-0.364,0.43-0.722,0.422
+                       c-0.158-0.005-0.311,0.013-0.426,0.104c-0.217,0.173-0.395,0.399-0.643,0.528c-0.249,0.129-0.596,0.116-0.777,0.357l0.002,0.004
+                       c0.189-0.025,0.364-0.011,0.514,0.103c0.136,0.102,0.278,0.195,0.437,0.306c0.153-0.155,0.276-0.3,0.423-0.422
+                       c0.215-0.177,0.491-0.108,0.548,0.142c0.029,0.122,0.005,0.251,0.005,0.404c0.277,0.069,0.518-0.067,0.77-0.124
+                       c0.15-0.033,0.286-0.059,0.444-0.016c0.162,0.045,0.265,0.172,0.201,0.291c-0.168,0.302-0.344,0.602-0.511,0.903
+                       c-0.134,0.242-0.384,0.298-0.67,0.34c-0.555,0.082-0.947,0.415-1.373,0.693c-0.074,0.049-0.088,0.151-0.014,0.204
+                       c0.057,0.04,0.179,0.065,0.244,0.042c0.136-0.051,0.253-0.14,0.382-0.206c0.081-0.045,0.206-0.065,0.232,0.022
+                       c0.098,0.308,0.387,0.355,0.693,0.412c0.179,0.033,0.2,0.167,0.062,0.297c-0.122,0.116-0.261,0.22-0.377,0.338
+                       c-0.151,0.149-0.119,0.31,0.103,0.353c0.327,0.062,0.488,0.179,0.435,0.475c-0.014,0.089,0.105,0.151,0.182,0.104
+                       c0.454-0.281,0.681-0.057,0.951,0.24c0.201,0.222,0.054,0.324-0.031,0.524c-0.22,0.515-0.661,0.739-1.219,0.908
+                       c-0.252,0.075-0.472,0.224-0.7,0.347c-0.032,0.018-0.043,0.1-0.022,0.132c0.024,0.035,0.093,0.062,0.148,0.071
+                       c0.184,0.029,0.347,0,0.487-0.091c0.013-0.22,0.113-0.326,0.41-0.267c0.43,0.085,0.674,0.047,0.846-0.351
+                       c0.151-0.342,0.404-0.377,0.811-0.263c0.234,0.064,0.409,0.281,0.698,0.196c0.129-0.117,0.06-0.235,0.009-0.347
+                       c-0.11-0.254-0.132-0.476,0.182-0.66c0.141-0.082,0.241-0.228,0.332-0.362c0.32-0.466,0.261-0.623-0.322-0.86
+                       c-0.065-0.027-0.144-0.032-0.21-0.061c-0.279-0.122-0.317-0.259-0.143-0.532c0.05-0.078,0.132-0.144,0.191-0.208
+                       c-0.04-0.254-0.32-0.258-0.492-0.338c-0.366-0.171-0.72-0.308-0.698-0.741c0.005-0.106-0.096-0.244-0.196-0.324
+                       c-0.254-0.198-0.235-0.411-0.195-0.677c0.077-0.499,0.044-0.506,0.66-0.462c0.134,0.01,0.211-0.006,0.222-0.131
+                       c0.096-0.981,0.476-1.527,1.53-1.909c0.402-0.147,0.605-0.302,0.646-0.648c0.018-0.153,0.055-0.308,0.102-0.459
+                       c0.067-0.22,0.204-0.258,0.495-0.2c0.395,0.075,0.729,0.312,1.15,0.304c0.064,0,0.148-0.047,0.184-0.091
+                       c0.035-0.045,0.051-0.149,0.022-0.169c-0.39-0.251-0.465-0.534-0.192-0.89c0.105-0.137,0.113-0.297-0.007-0.439
+                       c-0.208-0.244-0.208-0.528-0.224-0.808c-0.006-0.12-0.013-0.29,0.071-0.355c0.548-0.417,0.483-0.981,0.564-1.514
+                       c0.032-0.216,0.125-0.42,0.292-0.597c0.273-0.293,0.402-0.328,0.93-0.153c0.204,0.067,0.358,0.098,0.419-0.124
+                       c0.053-0.198,0.229-0.315,0.385-0.444c0.077-0.065,0.167-0.157,0.256-0.162c0.446-0.021,0.872,0.093,1.295,0.199
+                       c0.22,0.052,0.414,0.137,0.476,0.347c0.007,0.03,0.022,0.058,0.033,0.089c0.067,0.157,0.199,0.155,0.356,0.11
+                       c0.298-0.084,0.491,0.031,0.646,0.238c0.16,0.216,0.328,0.424,0.149,0.687c-0.055,0.081-0.134,0.154-0.177,0.238
+                       c-0.126,0.258,0.029,0.511,0.348,0.572c0.069,0.016,0.145,0.024,0.218,0.02c0.183-0.011,0.365-0.029,0.6-0.049
+                       c0.134,0.304,0.232,0.637,0.418,0.933c0.247,0.39,0.223,0.707-0.176,0.998c-0.108,0.08-0.237,0.161-0.229,0.3
+                       c0.002,0.045,0.082,0.126,0.121,0.124c0.143-0.006,0.332-0.002,0.418-0.073c0.448-0.371,0.866-0.138,1.284-0.051
+                       c0.058,0.351-0.358,0.444-0.372,0.699c0.06,0.108,0.174,0.096,0.279,0.108c0.557,0.075,0.621,0.169,0.277,0.468
+                       c-0.294,0.256-0.461,0.562-0.609,0.877c-0.07,0.153-0.01,0.31,0.224,0.359c0.206,0.041,0.344,0.131,0.239,0.324
+                       c-0.098,0.175-0.163,0.348-0.064,0.537c0.183,0.341,0.198,0.715,0.217,1.098c0.485,0,0.92,0.113,1.324-0.122
+                       c0.084-0.049,0.206-0.029,0.302,0.042c0.389,0.29,0.48,0.585,0.33,1.001c-0.199,0.548-0.564,0.998-1.107,1.418
+                       c0.471,0.126,0.71,0.438,0.905,0.835c0.18-0.158,0.267-0.258,0.378-0.326c0.082-0.052,0.197-0.065,0.3-0.087
+                       c0.029-0.004,0.069,0.022,0.099,0.035c0.744,0.295,1.045,0.449,1.019,0.651c0.013-0.003,0.019,0,0.034-0.003
+                       c0.055-0.015,0.108,0.054,0.136,0.105c0.042,0.084,0.119,0.126,0.227,0.133c0.168,0.012,0.313,0.075,0.452,0.149
+                       c0.173,0.093,0.325,0.222,0.569,0.136c0.067-0.023,0.199,0,0.256,0.088c0.009,0.014,0.018,0.022,0.031,0.034
+                       c0.456-0.081,0.933-0.174,1.44-0.283c-0.015-0.011-0.024-0.022-0.041-0.031c-0.187-0.098-0.339-0.273-0.609-0.198
+                       c-0.065,0.018-0.125-0.029-0.17-0.069c-0.07-0.057-0.134-0.12-0.205-0.177c-0.132-0.104-0.182-0.108-0.344-0.029
+                       c-0.082,0.039-0.153,0.124-0.259,0.084c-0.101-0.037-0.198-0.093-0.275-0.159c-0.068-0.057-0.11-0.14-0.153-0.213
+                       c-0.033-0.059-0.037-0.148-0.088-0.184c-0.089-0.055-0.129,0.069-0.199,0.075c-0.155,0.013-0.315,0.013-0.471,0.006
+                       c-0.039,0-0.083-0.042-0.11-0.075c-0.061-0.08-0.111-0.167-0.166-0.251c-0.023-0.036-0.051-0.091-0.103-0.071
+                       c-0.291,0.118-0.48-0.122-0.751-0.122c-0.045-0.146-0.055-0.281-0.007-0.412c0.072-0.191,0.089-0.373-0.026-0.56
+                       c-0.029-0.049-0.005-0.115,0.079-0.126c0.118-0.015,0.225-0.029,0.285-0.133c0.013-0.022,0.044-0.04,0.072-0.052
+                       c0.275-0.11,0.275-0.11,0.341-0.274c0.031-0.076,0.05-0.16,0.092-0.232c0.11-0.198,0.123-0.364-0.122-0.501
+                       c-0.079-0.042-0.057-0.129-0.005-0.187c0.07-0.072,0.143-0.175,0.237-0.2c0.148-0.035,0.235-0.153,0.399-0.177
+                       c0.15,0.089,0.227,0.258,0.415,0.327c0.077,0.025,0.144,0.075,0.228,0.059c0.146-0.024,0.251,0.014,0.339,0.113
+                       c0.024,0.027,0.087,0.056,0.122,0.05c0.251-0.048,0.441,0.066,0.639,0.159c0.043,0.022,0.084,0.047,0.132,0.055
+                       c0.175,0.027,0.384,0.083,0.516-0.016c0.165-0.121-0.042-0.251-0.105-0.363c-0.071-0.131-0.186-0.244-0.217-0.395
+                       c-0.005-0.031-0.06-0.057-0.095-0.082c-0.01-0.01-0.032-0.007-0.048-0.012c-0.265-0.073-0.325-0.33-0.557-0.442
+                       c-0.222-0.106-0.45-0.218-0.538-0.452c-0.039-0.1-0.079-0.228-0.213-0.267c-0.248-0.071-0.182-0.222-0.173-0.37
+                       c0.003-0.069,0.129-0.112,0.05-0.183c-0.045-0.039-0.102-0.08-0.163-0.091c-0.26-0.044-0.415-0.272-0.698-0.277
+                       c-0.05,0-0.062-0.053-0.074-0.095c-0.071-0.253-0.153-0.507-0.22-0.759c-0.043-0.153,0.017-0.215,0.215-0.215
+                       c0.091-0.003,0.146-0.023,0.204-0.083c0.093-0.093,0.191-0.191,0.308-0.255c0.081-0.042,0.184-0.053,0.204-0.151
+                       c0.017-0.089-0.05-0.158-0.086-0.234c-0.081-0.173-0.299-0.253-0.393-0.418c0.074-0.097,0.143-0.187,0.211-0.278
+                       c0.04-0.057,0.095-0.066,0.165-0.053c0.096,0.016,0.094-0.041,0.105-0.098c0.02-0.084,0.088-0.12,0.18-0.073
+                       c0.099,0.049,0.184,0.114,0.275,0.169c0.053,0.033,0.112,0.098,0.158,0.091c0.32-0.05,0.505,0.237,0.808,0.226
+                       c0.057-0.002,0.148,0.027,0.172,0.064c0.12,0.195,0.333,0.134,0.517,0.147c0.062,0.004,0.146-0.008,0.15-0.078
+                       c0.006-0.073-0.049-0.133-0.133-0.157c-0.046-0.012-0.098-0.004-0.147-0.009c-0.23-0.018-0.287-0.034-0.301-0.196
+                       c-0.024-0.259-0.223-0.392-0.459-0.481c-0.219-0.08-0.201-0.261-0.305-0.392c-0.018-0.025,0.024-0.116,0.068-0.142
+                       c0.169-0.103,0.277-0.255,0.461-0.354c0.136-0.068,0.184-0.09,0.323-0.006c0.208,0.122,0.444,0.22,0.683,0.295
+                       c0.116,0.033,0.182,0.106,0.298,0.149c0.077-0.155,0.117-0.297,0-0.462c-0.065-0.088-0.058-0.212-0.092-0.319
+                       c-0.042-0.13-0.123-0.227-0.303-0.227c-0.115,0.003-0.175-0.059-0.235-0.125c-0.206-0.234-0.423-0.454-0.729-0.604
+                       c-0.208-0.102-0.316-0.267-0.313-0.483c0.002-0.236-0.031-0.466-0.15-0.686c-0.113-0.208-0.013-0.404,0.095-0.613
+                       c-0.139-0.088-0.239-0.21-0.347-0.33c-0.193-0.217-0.2-0.255-0.009-0.438c0.21-0.202,0.33-0.223,0.645-0.124
+                       c0.046,0.014,0.086,0.045,0.132,0.052c0.07,0.008,0.123-0.028,0.156-0.078c0.033-0.054,0.038-0.103-0.026-0.144
+                       c-0.204-0.144-0.201-0.147-0.323-0.454c-0.015-0.035-0.058-0.064-0.092-0.092c-0.066-0.056-0.092-0.112-0.02-0.177
+                       c0.056-0.05,0.109-0.103,0.167-0.152c0.281-0.243,0.365-0.268,0.705-0.08c0.296,0.165,0.631,0.28,0.894,0.493
+                       c0.149,0.12,0.368,0.157,0.507,0.306c0.063,0.067,0.182,0.005,0.281-0.039c-0.17-0.177-0.404-0.289-0.572-0.468
+                       c-0.062-0.069-0.112-0.124-0.123-0.206c-0.009-0.069-0.033-0.123-0.119-0.165c-0.149-0.069-0.171-0.233-0.109-0.318
+                       c0.099-0.131-0.033-0.277,0.089-0.395c0.045-0.042,0.016-0.104-0.022-0.153c-0.177-0.222-0.261-0.473-0.307-0.732
+                       c-0.024-0.132-0.077-0.238-0.207-0.315c-0.053-0.031-0.101-0.069-0.149-0.106c-0.235-0.18-0.244-0.209-0.108-0.46
+                       c0.027-0.053,0.081-0.1,0.02-0.147c-0.153-0.108-0.244-0.253-0.344-0.394c-0.046-0.065-0.186-0.085-0.184-0.178
+                       c0.007-0.124,0.156-0.169,0.246-0.244c0.068-0.055,0.171-0.082,0.252-0.126c0.112-0.062,0.114-0.088,0.033-0.2
+                       c-0.103-0.139-0.101-0.139,0.031-0.253c0.033-0.029,0.055-0.071,0.094-0.096c0.351-0.206,0.327-0.281,0.712-0.046
+                       c0.068,0.039,0.136,0.074,0.201,0.11c0.115-0.049,0.023-0.091,0.009-0.131c-0.024-0.065-0.064-0.13-0.066-0.195
+                       c-0.003-0.053,0.036-0.112-0.022-0.153c-0.158-0.109-0.108-0.211,0.004-0.315c0.067-0.061,0.127-0.122,0.189-0.187
+                       c0.083-0.084,0.184-0.108,0.306-0.073c0.063,0.018,0.127,0.027,0.192,0.038c0.086,0.015,0.189,0.118,0.251,0.015
+                       c0.046-0.073-0.057-0.149-0.125-0.208c-0.088-0.08-0.196-0.139-0.162-0.277c0.12-0.481-0.115-0.89-0.413-1.277
+                       c-0.081-0.106-0.068-0.175,0.021-0.253c0.056-0.048,0.106-0.11,0.175-0.137c0.127-0.045,0.177-0.122,0.177-0.224
+                       c0.002-0.289,0.258-0.391,0.499-0.506c0.058-0.03,0.136-0.03,0.187,0.009c0.138,0.098,0.318,0.045,0.469,0.1
+                       c0.057,0.133,0.241,0.129,0.332,0.226c0.008,0.006,0.065-0.008,0.079-0.024c0.017-0.018,0.026-0.055,0.017-0.075
+                       c-0.022-0.033-0.055-0.078-0.094-0.085c-0.108-0.021-0.222-0.029-0.334-0.041c0.038-0.186-0.024-0.351-0.156-0.499
+                       c-0.042-0.049-0.046-0.102-0.005-0.151c0.057-0.067,0.105-0.142,0.177-0.195c0.068-0.054,0.157-0.096,0.248-0.122
+                       c0.086-0.024,0.139,0.059,0.213,0.086c0.06,0.022,0.126,0.073,0.176,0.065c0.333-0.073,0.413,0.122,0.419,0.315
+                       c0.002,0.177,0.091,0.246,0.256,0.3c0.233,0.075,0.424,0.202,0.585,0.361c0.122,0.12,0.144,0.177,0.029,0.287
+                       c-0.121,0.12-0.174,0.259-0.248,0.395c-0.074,0.139-0.031,0.342-0.268,0.406c-0.005,0.002-0.005,0.029,0.002,0.038
+                       c0.007,0.011,0.026,0.027,0.036,0.024c0.046-0.012,0.096-0.021,0.137-0.04c0.203-0.114,0.404-0.23,0.606-0.346
+                       c0.118-0.071,0.228-0.082,0.362-0.016c0.114,0.057,0.215,0.122,0.309,0.201c0.215,0.18,0.231,0.22,0.007,0.397
+                       c-0.17,0.137-0.208,0.343-0.393,0.465c-0.017,0.011-0.009,0.051-0.011,0.079c-0.01,0.079,0.064,0.147,0.141,0.125
+                       c0.048-0.013,0.093-0.029,0.139-0.044c0.118-0.04,0.227-0.123,0.366-0.051c0.196,0.1,0.389,0.202,0.492,0.386
+                       c0.014,0.027-0.009,0.082-0.038,0.109c-0.089,0.079-0.188,0.152-0.287,0.224c-0.141,0.098-0.182,0.219-0.153,0.368
+                       c0.015,0.067,0.007,0.138,0.024,0.206c0.062,0.224,0.151,0.447,0.024,0.682c-0.029,0.055,0.004,0.136,0.014,0.204
+                       c0.017,0.112,0.087,0.167,0.225,0.177c0.415,0.038,0.531,0.089,0.821,0.364c-0.034,0.114-0.144,0.18-0.23,0.261
+                       c-0.092,0.089-0.162,0.172-0.052,0.287c0.033,0.036,0.01,0.08-0.024,0.114c-0.053,0.051-0.121,0.093-0.098,0.175
+                       c0.041,0.142-0.229,0.308-0.014,0.408c0.156,0.073,0.259-0.131,0.397-0.198c0.13-0.062,0.22-0.08,0.349,0
+                       c0.108,0.067,0.203,0.134,0.285,0.222c0.152,0.171,0.164,0.175-0.015,0.346c-0.094,0.087-0.134,0.177-0.167,0.289
+                       c-0.046,0.157-0.105,0.364-0.086,0.477c0.009,0.057,0,0.11-0.053,0.151c-0.101,0.075-0.056,0.151,0.009,0.218
+                       c0.138,0.143,0.189,0.277,0.004,0.43c-0.079,0.067-0.096,0.171-0.06,0.271c0.024,0.067,0.031,0.135,0.04,0.204
+                       c0.031,0.177-0.016,0.324-0.231,0.409c-0.055,0.024-0.096,0.073-0.135,0.102c-0.027,0.131,0.153,0.088,0.175,0.182
+                       c0.019,0.085,0.127,0.12,0.197,0.177c0.104,0.087,0.117,0.204-0.008,0.291c-0.2,0.142-0.175,0.337-0.205,0.517
+                       c-0.01,0.051,0.03,0.117-0.032,0.151c-0.165,0.092-0.235,0.212-0.236,0.381c-0.002,0.069-0.096,0.04-0.158,0.04
+                       c-0.182,0.002-0.215,0.02-0.225,0.149c-0.016,0.21-0.071,0.406-0.211,0.583c-0.026,0.034-0.021,0.083,0.024,0.112
+                       c0.05,0.029,0.096,0.008,0.127-0.024c0.114-0.124,0.256-0.216,0.447-0.232c0.088-0.009,0.15-0.044,0.193-0.108
+                       c0.053-0.078,0.136-0.116,0.237-0.133c0.129-0.024,0.22-0.091,0.32-0.169c0.203-0.151,0.448-0.264,0.676-0.389
+                       c0.02-0.011,0.081,0,0.088,0.014c0.079,0.16,0.309,0.171,0.419,0.32c0.132,0.184,0.177,0.268,0.055,0.434
+                       c-0.026,0.034-0.066,0.057-0.098,0.091c-0.134,0.137-0.203,0.295-0.081,0.452c0.098,0.129-0.014,0.204-0.057,0.3
+                       c0-0.002-0.002-0.002-0.004-0.002v0.002c-0.112,0-0.224-0.008-0.336-0.002c-0.085,0.006-0.153,0.049-0.183,0.12
+                       c-0.009,0.024,0,0.053,0.008,0.078c0.002,0.012,0.026,0.029,0.033,0.024c0.169-0.057,0.395-0.031,0.478-0.22h0.004
+                       c0.287,0.067,0.382,0.277,0.5,0.473c0.031,0.051,0.007,0.106-0.031,0.153c-0.039,0.047-0.074,0.093-0.118,0.134
+                       c-0.157,0.159-0.227,0.314-0.095,0.524c0.088,0.144,0.033,0.23-0.171,0.279c-0.34,0.083-0.571,0.258-0.727,0.515
+                       c-0.101,0.171-0.179,0.339-0.092,0.543c0.081,0.196-0.022,0.38-0.156,0.544c-0.065,0.079-0.156,0.142-0.228,0.216
+                       c-0.073,0.078-0.141,0.136-0.279,0.134c-0.158-0.002-0.024,0.186-0.163,0.217c-0.057,0.014-0.184,0.012-0.156,0.056
+                       c0.101,0.159-0.009,0.29-0.035,0.432c-0.019,0.089,0.062,0.164,0.167,0.167c0.134,0.004,0.266-0.007,0.363-0.091
+                       c0.129-0.11,0.256-0.222,0.467-0.153c0.011,0.004,0.038,0,0.046-0.01c0.222-0.272,0.688-0.237,0.906-0.518
+                       c0.018-0.024,0.088-0.034,0.13-0.029c0.139,0.011,0.008,0.21,0.182,0.194c0.105-0.008,0.197-0.027,0.232,0.085
+                       c0.005,0.013,0.013,0.027,0.017,0.039c0.033,0.109,0.255,0.102,0.222,0.244c-0.022,0.102-0.158,0.133-0.237,0.2
+                       c-0.053,0.047-0.048,0.091-0.031,0.149c0.041,0.16,0.145,0.309,0.119,0.479c-0.301,0.173-0.301,0.173-0.609,0.191
+                       c-0.087,0.004-0.164,0.022-0.211,0.084c-0.065,0.087-0.165,0.132-0.256,0.189c-0.04,0.027-0.042,0.08-0.005,0.109
+                       c0.031,0.023,0.093,0.051,0.124,0.039c0.118-0.047,0.235-0.1,0.337-0.165c0.103-0.064,0.187-0.108,0.299-0.017
+                       c0.063,0.048,0.118,0.004,0.171-0.029c0.182-0.118,0.365-0.232,0.549-0.347c0.074-0.046,0.144-0.044,0.217,0.007
+                       c0.168,0.12,0.34,0.233,0.557,0.284c0.079,0.018,0.101,0.091,0.072,0.136c-0.156,0.226-0.144,0.462-0.096,0.707
+                       c0.029,0.142-0.06,0.226-0.253,0.283c-0.146,0.039-0.217,0.104-0.213,0.237c0.015,0.297-0.163,0.555-0.263,0.827
+                       c-0.011,0.036-0.043,0.081-0.081,0.097c-0.237,0.092-0.352,0.281-0.505,0.439c-0.081,0.084-0.16,0.134-0.294,0.084
+                       c-0.064-0.023-0.139,0.007-0.165,0.058c-0.091,0.169-0.272,0.173-0.452,0.195c-0.079,0.008-0.158,0.022-0.239,0.033
+                       c-0.127,0.016-0.196,0.073-0.224,0.184c-0.07,0.254-0.158,0.304-0.465,0.262c-0.106-0.014-0.172-0.022-0.079,0.084
+                       c0.032,0.038,0.056,0.081,0.025,0.114c-0.061,0.063-0.087,0.135-0.113,0.209c2.145-0.669,4.481-1.456,6.966-2.331
+                       c-0.109-0.088-0.252-0.155-0.462-0.177c-0.079-0.008-0.158-0.108-0.211-0.182c-0.312-0.412-0.547-0.874-1.107-1.127
+                       c-0.169-0.075-0.129-0.295,0.022-0.384c0.332-0.192,0.547-0.455,0.746-0.738c0.167-0.238,0.134-0.333-0.132-0.515
+                       c-0.28-0.193-0.614-0.293-0.945-0.387c-0.329-0.093-0.512-0.271-0.692-0.506c-0.225-0.293-0.303-0.668-0.697-0.872
+                       c-0.17-0.089-0.15-0.257-0.04-0.397c0.314-0.391,0.483-0.429,1.023-0.183c0.197,0.091,0.371,0.171,0.586,0.061
+                       c0.457-0.236,0.949-0.175,1.44-0.124h0.002c-0.158-0.2-0.313-0.44-0.619-0.452c-0.705-0.027-0.992-0.476-1.394-0.855
+                       c-0.375-0.355-0.337-0.687-0.177-1.065c0.053-0.121,0.182-0.189,0.34-0.142c0.165,0.052,0.323,0.123,0.483,0.183
+                       c0.134,0.049,0.287,0.086,0.404,0.011c0.467-0.302,0.916-0.226,1.38-0.004c0.084,0.04,0.203,0.04,0.303,0.036
+                       c0.208-0.005,0.365-0.26,0.248-0.4c-0.268-0.312-0.547-0.619-0.81-0.934c-0.122-0.147-0.072-0.291,0.093-0.383
+                       c0.265-0.15,0.526-0.313,0.88-0.222c0.256,0.064,0.498-0.02,0.717-0.107c0.292-0.116,0.553-0.239,0.897-0.1
+                       c0.172,0.069,0.317-0.088,0.454-0.182c0.119-0.082,0.198-0.198,0.073-0.3c-0.373-0.311-0.387-0.762-0.639-1.121
+                       c-0.165-0.24-0.303-0.475-0.652-0.54c-0.296-0.055-0.514-0.217-0.681-0.406c-0.292-0.338-0.708-0.606-0.93-0.955
+                       c-0.204-0.314-0.167-0.75-0.197-1.133c-0.022-0.279-0.176-0.513-0.275-0.766c-0.105-0.279,0.026-0.444,0.377-0.507
+                       c0.386-0.071,0.77-0.004,1.125,0.023c0.22-0.321,0.025-0.556-0.07-0.806c-0.062-0.161,0.016-0.291,0.231-0.331
+                       c0.565-0.099,1.112-0.168,1.617,0.181c0.123,0.086,0.325,0.108,0.498,0.131c0.327,0.04,0.542-0.2,0.408-0.457
+                       c-0.101-0.189-0.294-0.344-0.299-0.564c-0.002-0.147-0.041-0.386,0.042-0.424c0.593-0.277,0.23-0.566,0.084-0.89
+                       c-0.16-0.358-0.232-0.743-0.342-1.116c-0.066-0.233,0.048-0.406,0.258-0.546c0.5-0.33,0.654-0.322,1.014-0.049
+                       c0.105,0.08,0.215,0.158,0.333,0.222c0.191,0.102,0.391,0.153,0.564-0.027c0.157-0.167,0.339-0.177,0.562-0.098
+                       c0.172,0.065,0.347,0.061,0.461-0.098c0.038-0.051,0.072-0.106,0.116-0.151c0.526-0.499,0.66-0.485,1.021,0.098
+                       c0.177,0.287,0.335,0.342,0.675,0.216c0.224-0.083,0.437-0.195,0.664-0.275c0.215-0.076,0.434,0.08,0.393,0.281
+                       c-0.052,0.264-0.151,0.519-0.193,0.782c-0.039,0.228-0.031,0.461-0.041,0.689c0.144,0.067,0.335,0.049,0.392-0.037
+                       c0.313-0.454,0.942-0.348,1.379-0.577c0.132-0.071,0.324,0.133,0.289,0.286c-0.053,0.24-0.176,0.452-0.353,0.644
+                       c-0.165,0.175-0.184,0.377-0.187,0.591c0,0.422,0.105,0.51,0.626,0.483c0.103-0.004,0.206-0.031,0.309-0.024
+                       c0.072,0.006,0.141,0.063,0.184,0.131c0.227-0.078,0.45-0.175,0.715-0.122c0.062,0.012,0.167-0.057,0.217-0.11
+                       c0.145-0.161,0.339-0.324,0.391-0.508c0.07-0.24,0.141-0.382,0.467-0.349c0.215,0.021,0.32-0.117,0.424-0.251
+                       c0.143-0.19,0.351-0.255,0.619-0.266c0.323-0.012,0.396-0.138,0.318-0.389c-0.091-0.287-0.347-0.397-0.641-0.501
+                       c-0.292-0.104-0.34-0.198-0.163-0.408c0.16-0.189,0.169-0.305-0.048-0.449c-0.263-0.175-0.488-0.4-0.773-0.538
+                       c-0.305-0.149-0.574-0.267-0.581-0.613c-0.002-0.157-0.179-0.259-0.313-0.369c-0.176-0.139-0.349-0.288-0.512-0.441
+                       c-0.102-0.096-0.038-0.258,0.111-0.32c0.029-0.012,0.057-0.02,0.086-0.027c0.174-0.036,0.399-0.024,0.459-0.203
+                       c0.083-0.259,0.031-0.52-0.189-0.725c-0.204-0.188-0.447-0.348-0.662-0.53c-0.101-0.089,0-0.281,0.151-0.304
+                       c0.088-0.012,0.179-0.02,0.27-0.016c0.172,0.006,0.336,0.198,0.502,0.067c0.095-0.073,0.088-0.236,0.145-0.35
+                       c0.055-0.107,0.201-0.167,0.301-0.109c0.318,0.183,0.55,0.089,0.777-0.116c0.06-0.05,0.144-0.08,0.217-0.122
+                       c-0.382-0.324-0.382-0.324-0.375-0.783c0.006-0.442,0.01-0.455,0.55-0.489c0.189-0.013,0.34-0.044,0.505-0.133
+                       c0.415-0.22,0.841-0.3,1.245,0.047c0.225,0.193,0.514,0.115,0.781,0.091c0.118-0.012,0.185-0.199,0.079-0.246
+                       c-0.635-0.3-0.454-0.845-0.571-1.303c-0.035-0.141,0.052-0.249,0.165-0.342c0.201-0.161,0.134-0.361,0.015-0.495
+                       c-0.198-0.224-0.313-0.528-0.543-0.685c-0.364-0.249-0.505-0.442-0.323-0.832c0.066-0.142-0.153-0.371-0.213-0.566
+                       c-0.103-0.334-0.053-0.395,0.38-0.554c0.418-0.156,0.624-0.517,0.481-0.857c-0.051-0.122-0.12-0.238-0.166-0.361
+                       c-0.055-0.154,0.113-0.301,0.318-0.287c0.032,0.002,0.07-0.002,0.092,0.011c0.402,0.277,0.664-0.006,0.964-0.161
+                       c0.163-0.087,0.215-0.2,0.077-0.313c-0.191-0.155-0.225-0.357-0.302-0.55c-0.172-0.432-0.079-0.717,0.41-0.85
+                       c0.431-0.118,0.705-0.401,1.08-0.57c0.237-0.109,0.342-0.277,0.303-0.515c-0.018-0.124-0.014-0.255,0.01-0.379
+                       c0.051-0.26,0.22-0.35,0.526-0.264c0.231,0.067,0.449,0.149,0.707,0.109c0.162-0.025,0.325,0.031,0.367,0.168
+                       c0.072,0.225,0.261,0.318,0.467,0.44c0.234,0.138,0.377,0.346,0.744,0.261c0.189-0.046,0.325,0.125,0.338,0.295
+                       c0.031,0.413-0.027,0.821-0.166,1.216c-0.385,1.112-0.224,0.813,0.443,1.562c0.072,0.079,0.237,0.116,0.265,0.195
+                       c0.095,0.262,0.284,0.311,0.564,0.242c0.088-0.02,0.182-0.022,0.272-0.024c0.146-0.002,0.246,0.124,0.156,0.208
+                       c-0.22,0.202-0.349,0.411-0.258,0.695c0.019,0.059-0.029,0.163-0.084,0.208c-0.492,0.424-0.591,1.057-1.167,1.434
+                       c0.459,0.207,0.467,0.213,0.675-0.015c0.327-0.358,0.775-0.562,1.257-0.721c0.026-0.007,0.063,0.006,0.091,0.006
+                       c0.244-0.008,0.191-0.424,0.551-0.28c0.191,0.076,0.353,0.207,0.58,0.219c0.092,0.003,0.184,0.024,0.263,0.055
+                       c0.096,0.037,0.125,0.131,0.077,0.196c-0.079,0.109-0.196,0.196-0.287,0.297c-0.077,0.087-0.095,0.176-0.035,0.285
+                       c0.186,0.353,0.184,0.357-0.053,0.535c-0.251,0.188-0.5,0.373-0.66,0.632c-0.084,0.133-0.215,0.256-0.354,0.353
+                       c-0.16,0.116-0.395,0.171-0.521,0.304c-0.188,0.198-0.307,0.442-0.452,0.66c0.014,0.184,0.2,0.179,0.329,0.222
+                       c0.134,0.042,0.196,0.208,0.383,0.155c0.172-0.182-0.051-0.446,0.126-0.585c0.191-0.154,0.467-0.233,0.705-0.345
+                       c0.079-0.034,0.17-0.062,0.239-0.11c0.252-0.177,0.517-0.172,0.748-0.002c0.241,0.175,0.52,0.256,0.814,0.334
+                       c0.121,0.031,0.198,0.161,0.105,0.249c-0.414,0.379-0.612,0.883-1.06,1.245c-0.22,0.177-0.483,0.306-0.708,0.481
+                       c0.077,0.23,0.376,0.351,0.357,0.617c-0.014,0.215,0.244,0.273,0.399,0.388c0.191,0.138,0.213,0.264,0.042,0.392
+                       c-0.239,0.175-0.442,0.339-0.409,0.643c0.02,0.165-0.132,0.271-0.296,0.362c-0.358,0.195-0.698,0.417-1.063,0.601
+                       c-0.204,0.102-0.302,0.246-0.39,0.411l0.011,0.011c0.379-0.071,0.792-0.014,1.128-0.244c0.149-0.102,0.357-0.129,0.519-0.051
+                       c0.278,0.136,0.458,0.012,0.656-0.114c0.122-0.074,0.246-0.153,0.383-0.204c0.282-0.106,0.593,0.02,0.588,0.285
+                       c-0.006,0.249,0.033,0.31,0.323,0.242c0.15-0.036,0.272-0.085,0.402-0.156c0.077-0.039,0.139-0.051,0.193-0.049
+                       c-0.013-0.092,0.075-0.21,0.189-0.226c0.088-0.013,0.179-0.022,0.268-0.018c0.174,0.01,0.34,0.201,0.505,0.069
+                       c0.093-0.075,0.086-0.237,0.145-0.353c0.055-0.104,0.199-0.166,0.299-0.108c0.318,0.182,0.553,0.088,0.781-0.116
+                       c0.057-0.051,0.141-0.08,0.217-0.122c-0.383-0.324-0.383-0.324-0.379-0.784c0.008-0.439,0.01-0.455,0.553-0.488
+                       c0.187-0.014,0.34-0.045,0.505-0.131c0.414-0.222,0.842-0.303,1.243,0.044c0.225,0.195,0.515,0.116,0.785,0.091
+                       c0.115-0.011,0.181-0.198,0.079-0.246c-0.636-0.3-0.457-0.845-0.575-1.302c-0.035-0.142,0.055-0.249,0.168-0.34
+                       c0.2-0.165,0.13-0.364,0.014-0.497c-0.2-0.224-0.316-0.528-0.545-0.686c-0.362-0.246-0.502-0.441-0.32-0.832
+                       c0.064-0.142-0.153-0.371-0.213-0.566c-0.103-0.332-0.053-0.395,0.378-0.554c0.418-0.155,0.624-0.517,0.483-0.857
+                       c-0.053-0.122-0.122-0.237-0.165-0.359c-0.057-0.155,0.112-0.302,0.316-0.287c0.031,0.003,0.071-0.004,0.091,0.01
+                       c0.401,0.277,0.667-0.006,0.966-0.162c0.162-0.084,0.213-0.2,0.074-0.313c-0.191-0.152-0.223-0.357-0.299-0.55
+                       c-0.175-0.432-0.081-0.716,0.408-0.85c0.428-0.117,0.705-0.401,1.078-0.57c0.237-0.106,0.344-0.277,0.307-0.514
+                       c-0.022-0.122-0.015-0.256,0.009-0.38c0.05-0.257,0.22-0.351,0.523-0.264c0.235,0.067,0.452,0.149,0.708,0.109
+                       c0.163-0.024,0.327,0.031,0.371,0.171c0.07,0.222,0.261,0.315,0.466,0.438c0.232,0.137,0.378,0.347,0.742,0.261
+                       c0.191-0.045,0.327,0.124,0.34,0.295c0.029,0.413-0.03,0.821-0.165,1.216c-0.388,1.114-0.228,0.812,0.442,1.562
+                       c0.07,0.078,0.235,0.115,0.266,0.198c0.095,0.259,0.282,0.308,0.564,0.241c0.086-0.022,0.182-0.024,0.272-0.027
+                       c0.143-0.001,0.247,0.124,0.156,0.209c-0.222,0.202-0.351,0.41-0.261,0.697c0.02,0.059-0.026,0.159-0.084,0.208
+                       c-0.49,0.422-0.588,1.055-1.166,1.434c0.459,0.206,0.466,0.211,0.676-0.018c0.294-0.322,0.691-0.517,1.119-0.67
+                       c-0.002-0.008-0.008-0.018-0.013-0.031c-0.014-0.035-0.057-0.065-0.091-0.091c-0.067-0.055-0.094-0.11-0.022-0.177
+                       c0.057-0.049,0.11-0.102,0.165-0.151c0.285-0.244,0.369-0.269,0.709-0.082c0.296,0.164,0.628,0.281,0.894,0.495
+                       c0.149,0.117,0.368,0.157,0.505,0.304c0.062,0.066,0.184,0.006,0.283-0.038c-0.171-0.177-0.408-0.29-0.572-0.468
+                       c-0.062-0.068-0.112-0.123-0.124-0.206c-0.013-0.071-0.034-0.122-0.12-0.165c-0.149-0.07-0.17-0.233-0.108-0.316
+                       c0.098-0.134-0.033-0.277,0.088-0.395c0.046-0.042,0.017-0.104-0.022-0.153c-0.176-0.224-0.26-0.475-0.306-0.735
+                       c-0.024-0.129-0.077-0.237-0.208-0.312c-0.053-0.031-0.1-0.071-0.148-0.109c-0.234-0.177-0.245-0.208-0.108-0.459
+                       c0.026-0.051,0.081-0.1,0.018-0.144c-0.152-0.108-0.244-0.253-0.344-0.395c-0.045-0.067-0.185-0.086-0.183-0.177
+                       c0.007-0.124,0.156-0.169,0.246-0.244c0.066-0.057,0.169-0.082,0.251-0.126c0.112-0.062,0.115-0.089,0.033-0.2
+                       c-0.102-0.14-0.099-0.14,0.032-0.256c0.033-0.029,0.055-0.07,0.092-0.092c0.352-0.206,0.327-0.281,0.713-0.047
+                       c0.066,0.04,0.136,0.075,0.198,0.108c0.118-0.046,0.026-0.088,0.013-0.129c-0.025-0.064-0.065-0.131-0.068-0.195
+                       c-0.002-0.053,0.036-0.11-0.022-0.153c-0.158-0.108-0.108-0.211,0.005-0.315c0.065-0.059,0.127-0.123,0.19-0.186
+                       c0.083-0.084,0.183-0.108,0.305-0.075c0.062,0.018,0.127,0.029,0.191,0.04c0.086,0.015,0.187,0.117,0.252,0.015
+                       c0.044-0.073-0.058-0.151-0.125-0.208c-0.088-0.08-0.196-0.14-0.163-0.277c0.119-0.484-0.115-0.89-0.414-1.277
+                       c-0.081-0.106-0.067-0.175,0.022-0.253c0.055-0.051,0.105-0.113,0.175-0.137c0.126-0.045,0.176-0.125,0.176-0.225
+                       c0-0.288,0.259-0.392,0.5-0.506c0.057-0.029,0.136-0.029,0.187,0.008c0.138,0.099,0.318,0.045,0.469,0.1
+                       c0.056,0.132,0.24,0.13,0.332,0.227c0.007,0.004,0.062-0.01,0.079-0.024c0.016-0.02,0.027-0.057,0.016-0.075
+                       c-0.021-0.034-0.055-0.078-0.093-0.085c-0.108-0.022-0.222-0.029-0.334-0.042c0.038-0.188-0.025-0.353-0.157-0.501
+                       c-0.042-0.049-0.047-0.1-0.005-0.15c0.058-0.068,0.105-0.141,0.177-0.193c0.07-0.054,0.158-0.098,0.248-0.123
+                       c0.086-0.023,0.139,0.061,0.213,0.087c0.06,0.02,0.127,0.073,0.175,0.063c0.334-0.071,0.415,0.124,0.42,0.317
+                       c0.003,0.177,0.092,0.246,0.256,0.299c0.232,0.076,0.426,0.202,0.586,0.362c0.121,0.12,0.144,0.177,0.029,0.287
+                       c-0.122,0.117-0.175,0.257-0.248,0.394c-0.074,0.14-0.031,0.34-0.268,0.407c-0.005,0.002-0.005,0.027,0.002,0.037
+                       c0.007,0.012,0.026,0.024,0.036,0.024c0.046-0.011,0.096-0.019,0.136-0.039c0.204-0.114,0.404-0.232,0.608-0.348
+                       c0.117-0.069,0.228-0.083,0.36-0.014c0.116,0.057,0.216,0.122,0.309,0.2c0.215,0.181,0.231,0.22,0.007,0.397
+                       c-0.169,0.136-0.207,0.344-0.393,0.466c-0.016,0.011-0.009,0.051-0.011,0.078c-0.009,0.08,0.062,0.144,0.141,0.124
+                       c0.048-0.012,0.094-0.029,0.14-0.045c0.117-0.037,0.227-0.121,0.365-0.051c0.196,0.102,0.39,0.204,0.493,0.389
+                       c0.014,0.027-0.01,0.082-0.039,0.108c-0.09,0.079-0.186,0.153-0.286,0.224c-0.142,0.098-0.182,0.22-0.153,0.369
+                       c0.014,0.067,0.005,0.137,0.024,0.205c0.06,0.225,0.15,0.447,0.024,0.681c-0.03,0.055,0.005,0.137,0.014,0.204
+                       c0.017,0.114,0.086,0.166,0.224,0.18c0.417,0.038,0.531,0.088,0.821,0.362c-0.019,0.064-0.06,0.113-0.11,0.157
+                       c0.132-0.02,0.256-0.051,0.296-0.175c0.084-0.261,0.033-0.521-0.189-0.726c-0.204-0.19-0.446-0.347-0.66-0.532
+                       c-0.102-0.086,0-0.281,0.151-0.302c0.088-0.013,0.18-0.022,0.268-0.018c0.175,0.01,0.34,0.201,0.505,0.069
+                       c0.095-0.075,0.088-0.235,0.145-0.351c0.055-0.106,0.199-0.166,0.301-0.108c0.316,0.18,0.55,0.086,0.778-0.116
+                       c0.057-0.051,0.141-0.082,0.217-0.124c-0.383-0.324-0.383-0.324-0.378-0.781c0.007-0.442,0.009-0.456,0.552-0.491
+                       c0.189-0.011,0.34-0.042,0.505-0.131c0.413-0.222,0.841-0.303,1.246,0.046c0.224,0.193,0.514,0.116,0.781,0.089
+                       c0.115-0.012,0.182-0.198,0.079-0.246c-0.636-0.3-0.457-0.845-0.572-1.3c-0.038-0.142,0.052-0.251,0.165-0.342
+                       c0.201-0.165,0.133-0.364,0.015-0.497c-0.2-0.224-0.316-0.528-0.543-0.683c-0.364-0.249-0.505-0.444-0.323-0.835
+                       c0.066-0.142-0.153-0.371-0.213-0.564c-0.103-0.335-0.053-0.397,0.38-0.557c0.419-0.153,0.621-0.517,0.481-0.857
+                       c-0.053-0.12-0.122-0.237-0.165-0.359c-0.057-0.155,0.112-0.302,0.318-0.287c0.029,0.003,0.069-0.004,0.088,0.012
+                       c0.402,0.277,0.667-0.006,0.966-0.165c0.163-0.084,0.215-0.2,0.077-0.31c-0.193-0.156-0.224-0.36-0.301-0.553
+                       c-0.175-0.43-0.081-0.716,0.408-0.85c0.43-0.118,0.705-0.399,1.078-0.57c0.237-0.106,0.344-0.277,0.307-0.512
+                       c-0.022-0.125-0.015-0.258,0.009-0.382c0.051-0.257,0.22-0.35,0.524-0.261c0.234,0.066,0.451,0.147,0.71,0.108
+                       c0.16-0.024,0.325,0.029,0.368,0.169c0.068,0.224,0.261,0.314,0.466,0.438c0.234,0.137,0.379,0.347,0.744,0.261
+                       c0.189-0.045,0.325,0.124,0.337,0.297c0.031,0.411-0.028,0.821-0.165,1.216c-0.386,1.112-0.228,0.813,0.442,1.56
+                       c0.07,0.08,0.234,0.118,0.265,0.196c0.095,0.26,0.285,0.309,0.564,0.243c0.086-0.021,0.182-0.026,0.272-0.026
+                       c0.144-0.004,0.247,0.122,0.156,0.207c-0.22,0.202-0.351,0.412-0.257,0.697c0.018,0.059-0.03,0.159-0.087,0.208
+                       c-0.49,0.422-0.588,1.057-1.164,1.434c0.459,0.206,0.466,0.211,0.674-0.016c0.327-0.357,0.775-0.561,1.258-0.721
+                       c0.024-0.008,0.06,0.007,0.09,0.004c0.244-0.006,0.191-0.424,0.551-0.279c0.191,0.079,0.353,0.206,0.581,0.218
+                       c0.088,0.006,0.181,0.024,0.262,0.057c0.094,0.038,0.125,0.13,0.074,0.198c-0.077,0.107-0.193,0.195-0.285,0.297
+                       c-0.078,0.085-0.095,0.173-0.038,0.283c0.189,0.355,0.184,0.357-0.05,0.536c-0.251,0.189-0.499,0.373-0.662,0.633
+                       c-0.081,0.133-0.214,0.253-0.351,0.353c-0.16,0.116-0.394,0.171-0.521,0.304c-0.186,0.198-0.309,0.44-0.454,0.659
+                       c0.016,0.185,0.204,0.178,0.332,0.22c0.134,0.045,0.196,0.211,0.383,0.158c0.17-0.182-0.05-0.446,0.126-0.588
+                       c0.191-0.153,0.467-0.23,0.703-0.342c0.081-0.037,0.17-0.065,0.24-0.113c0.253-0.175,0.516-0.173,0.751-0.002
+                       c0.238,0.177,0.518,0.257,0.81,0.332c0.121,0.031,0.2,0.165,0.108,0.251c-0.414,0.379-0.612,0.882-1.062,1.245
+                       c-0.22,0.177-0.481,0.305-0.705,0.482c0.077,0.23,0.375,0.35,0.356,0.614c-0.014,0.216,0.241,0.273,0.399,0.389
+                       c0.189,0.14,0.213,0.267,0.041,0.391c-0.239,0.175-0.443,0.341-0.408,0.644c0.02,0.166-0.134,0.273-0.296,0.361
+                       c-0.358,0.198-0.698,0.42-1.067,0.601c-0.2,0.102-0.301,0.246-0.389,0.413l0.011,0.011c0.381-0.07,0.794-0.015,1.132-0.245
+                       c0.146-0.1,0.356-0.129,0.519-0.05c0.275,0.134,0.457,0.01,0.655-0.115c0.122-0.073,0.247-0.151,0.383-0.202
+                       c0.279-0.107,0.593,0.02,0.585,0.284c-0.002,0.246,0.034,0.309,0.326,0.242c0.148-0.035,0.272-0.086,0.402-0.155
+                       c0.205-0.112,0.341-0.057,0.397,0.131c0.038,0.122,0.047,0.251,0.081,0.377c0.042,0.165,0.306,0.322,0.112,0.486
+                       c-0.203,0.173-0.364,0.428-0.722,0.42c-0.158-0.004-0.311,0.013-0.426,0.106c-0.217,0.173-0.395,0.399-0.643,0.528
+                       c-0.248,0.129-0.593,0.116-0.777,0.358l0.002,0.002c0.189-0.024,0.364-0.01,0.514,0.104c0.136,0.1,0.278,0.195,0.438,0.306
+                       c0.155-0.155,0.277-0.299,0.422-0.422c0.219-0.18,0.491-0.108,0.548,0.142c0.029,0.12,0.007,0.251,0.007,0.404
+                       c0.275,0.069,0.517-0.069,0.768-0.124c0.15-0.033,0.289-0.059,0.444-0.017c0.162,0.044,0.269,0.172,0.201,0.292
+                       c-0.168,0.302-0.344,0.602-0.512,0.904c-0.134,0.241-0.38,0.297-0.667,0.339c-0.557,0.081-0.95,0.415-1.374,0.692
+                       c-0.072,0.047-0.087,0.151-0.015,0.202c0.057,0.042,0.18,0.067,0.244,0.042c0.138-0.049,0.253-0.137,0.382-0.206
+                       c0.081-0.042,0.206-0.063,0.234,0.021c0.096,0.311,0.385,0.358,0.691,0.415c0.18,0.034,0.201,0.165,0.062,0.298
+                       c-0.122,0.115-0.26,0.217-0.378,0.335c-0.15,0.151-0.119,0.311,0.105,0.353c0.206,0.039,0.337,0.108,0.399,0.222
+                       c1.458-0.53,2.836-1.016,4.111-1.448c-0.022-0.033-0.044-0.066-0.065-0.099c-0.024-0.036-0.053-0.089-0.103-0.069
+                       c-0.288,0.116-0.478-0.124-0.751-0.122c-0.042-0.147-0.055-0.283-0.004-0.415c0.07-0.191,0.086-0.372-0.027-0.559
+                       c-0.031-0.049-0.004-0.116,0.077-0.126c0.117-0.014,0.227-0.029,0.284-0.134c0.013-0.022,0.046-0.039,0.072-0.051
+                       c0.278-0.11,0.278-0.11,0.342-0.273c0.031-0.078,0.051-0.159,0.094-0.233c0.11-0.195,0.124-0.364-0.122-0.499
+                       c-0.081-0.045-0.06-0.131-0.004-0.187c0.07-0.075,0.141-0.177,0.237-0.2c0.145-0.037,0.231-0.153,0.396-0.18
+                       c0.151,0.091,0.23,0.26,0.419,0.328c0.074,0.027,0.143,0.073,0.224,0.061c0.146-0.027,0.254,0.011,0.342,0.11
+                       c0.024,0.029,0.086,0.057,0.123,0.051c0.248-0.049,0.437,0.065,0.636,0.16c0.042,0.02,0.086,0.046,0.132,0.053
+                       c0.174,0.027,0.387,0.082,0.516-0.014c0.165-0.124-0.043-0.253-0.105-0.364c-0.072-0.133-0.187-0.245-0.215-0.396
+                       c-0.007-0.032-0.062-0.056-0.099-0.083c-0.009-0.006-0.031-0.004-0.046-0.009c-0.264-0.075-0.325-0.33-0.557-0.442
+                       c-0.221-0.108-0.449-0.218-0.539-0.452c-0.037-0.1-0.079-0.23-0.21-0.269c-0.25-0.071-0.182-0.222-0.175-0.371
+                       c0.002-0.067,0.129-0.11,0.05-0.182c-0.043-0.04-0.103-0.078-0.162-0.089c-0.259-0.046-0.414-0.273-0.698-0.277
+                       c-0.05-0.002-0.06-0.053-0.074-0.098c-0.07-0.253-0.153-0.503-0.22-0.758c-0.041-0.154,0.02-0.213,0.215-0.216
+                       c0.093,0,0.145-0.022,0.206-0.08c0.09-0.093,0.189-0.191,0.308-0.256c0.081-0.044,0.184-0.055,0.201-0.153
+                       c0.016-0.088-0.051-0.157-0.087-0.233c-0.079-0.171-0.299-0.253-0.391-0.42c0.075-0.096,0.143-0.186,0.211-0.277
+                       c0.04-0.055,0.095-0.067,0.165-0.053c0.097,0.017,0.093-0.04,0.108-0.096c0.017-0.086,0.086-0.122,0.179-0.075
+                       c0.096,0.049,0.182,0.113,0.276,0.171c0.05,0.031,0.112,0.096,0.154,0.088c0.32-0.049,0.506,0.238,0.809,0.226
+                       c0.057,0,0.151,0.027,0.172,0.065c0.12,0.195,0.335,0.133,0.517,0.147c0.064,0.006,0.145-0.01,0.15-0.075
+                       c0.005-0.073-0.048-0.133-0.134-0.157c-0.046-0.014-0.096-0.007-0.143-0.012c-0.23-0.016-0.287-0.033-0.303-0.195
+                       c-0.025-0.257-0.221-0.391-0.46-0.479c-0.217-0.08-0.2-0.264-0.303-0.393c-0.02-0.027,0.024-0.115,0.07-0.142
+                       c0.167-0.104,0.275-0.257,0.461-0.353c0.134-0.071,0.184-0.09,0.323-0.008c0.206,0.124,0.442,0.222,0.683,0.295
+                       c0.113,0.035,0.182,0.108,0.294,0.149c0.077-0.156,0.118-0.297,0-0.46c-0.062-0.091-0.057-0.212-0.09-0.32
+                       c-0.04-0.129-0.125-0.228-0.301-0.226c-0.118,0-0.177-0.062-0.237-0.129c-0.206-0.233-0.421-0.452-0.729-0.603
+                       c-0.208-0.1-0.316-0.264-0.313-0.482c0.002-0.235-0.031-0.467-0.151-0.687c-0.112-0.209-0.011-0.403,0.096-0.613
+                       c-0.136-0.087-0.239-0.208-0.347-0.33c-0.193-0.218-0.2-0.256-0.009-0.438c0.211-0.2,0.33-0.222,0.646-0.124
+                       c0.044,0.016,0.086,0.045,0.132,0.051c0.071,0.011,0.123-0.027,0.157-0.078c0.034-0.051,0.037-0.1-0.026-0.144
+                       c-0.205-0.143-0.2-0.143-0.323-0.452c-0.014-0.036-0.06-0.065-0.093-0.091c-0.068-0.055-0.093-0.11-0.02-0.177
+                       c0.055-0.051,0.108-0.102,0.165-0.151c0.283-0.244,0.366-0.269,0.706-0.082c0.296,0.165,0.631,0.281,0.894,0.493
+                       c0.149,0.119,0.368,0.157,0.507,0.306c0.062,0.067,0.182,0.006,0.28-0.04c-0.168-0.175-0.405-0.288-0.57-0.466
+                       c-0.064-0.068-0.114-0.123-0.126-0.206c-0.01-0.071-0.034-0.122-0.12-0.165c-0.145-0.07-0.167-0.233-0.105-0.319
+                       c0.096-0.131-0.035-0.277,0.086-0.393c0.046-0.041,0.017-0.106-0.021-0.153c-0.177-0.224-0.261-0.475-0.307-0.735
+                       c-0.022-0.129-0.077-0.237-0.208-0.314c-0.053-0.029-0.099-0.069-0.148-0.107c-0.232-0.177-0.244-0.208-0.108-0.459
+                       c0.029-0.051,0.081-0.1,0.019-0.144c-0.151-0.11-0.242-0.253-0.342-0.395c-0.048-0.067-0.189-0.086-0.184-0.179
+                       c0.005-0.122,0.156-0.169,0.244-0.242c0.066-0.057,0.169-0.082,0.251-0.126c0.115-0.062,0.118-0.089,0.036-0.2
+                       c-0.102-0.14-0.102-0.14,0.03-0.255c0.033-0.03,0.057-0.071,0.095-0.093c0.349-0.206,0.327-0.281,0.713-0.047
+                       c0.064,0.04,0.134,0.073,0.198,0.109c0.118-0.047,0.026-0.089,0.013-0.13c-0.024-0.066-0.065-0.131-0.07-0.195
+                       c-0.002-0.053,0.035-0.113-0.022-0.153c-0.155-0.11-0.105-0.21,0.008-0.315c0.064-0.062,0.127-0.123,0.186-0.186
+                       c0.083-0.086,0.183-0.108,0.308-0.075c0.062,0.018,0.127,0.029,0.192,0.04c0.082,0.013,0.186,0.117,0.247,0.015
+                       c0.046-0.073-0.056-0.151-0.123-0.21c-0.089-0.078-0.194-0.138-0.16-0.275c0.119-0.484-0.117-0.892-0.413-1.279
+                       c-0.085-0.104-0.068-0.173,0.018-0.251c0.055-0.051,0.108-0.114,0.177-0.137c0.124-0.048,0.176-0.124,0.176-0.227
+                       c0-0.286,0.258-0.39,0.498-0.503c0.06-0.029,0.136-0.029,0.189,0.006c0.139,0.101,0.318,0.045,0.467,0.101v0.002h0.003
+                       c0.055,0.131,0.238,0.129,0.332,0.224c0.005,0.006,0.062-0.007,0.077-0.024c0.017-0.018,0.028-0.055,0.017-0.073
+                       c-0.022-0.036-0.056-0.078-0.091-0.087c-0.11-0.022-0.224-0.027-0.334-0.039c-0.003,0-0.003,0-0.003-0.002
+                       c0.04-0.187-0.021-0.352-0.156-0.5c-0.043-0.048-0.046-0.1-0.002-0.15c0.055-0.067,0.102-0.141,0.174-0.196
+                       c0.07-0.05,0.16-0.095,0.248-0.119c0.089-0.024,0.139,0.059,0.214,0.086c0.06,0.02,0.126,0.073,0.176,0.063
+                       c0.336-0.071,0.413,0.124,0.419,0.317c0.002,0.177,0.09,0.244,0.257,0.3c0.232,0.076,0.424,0.203,0.586,0.362
+                       c0.123,0.12,0.141,0.177,0.029,0.287c-0.124,0.117-0.176,0.257-0.248,0.394c-0.077,0.14-0.033,0.34-0.268,0.407
+                       c-0.004,0-0.004,0.027,0,0.038c0.007,0.011,0.029,0.023,0.038,0.021c0.046-0.008,0.096-0.017,0.134-0.039
+                       c0.204-0.114,0.407-0.229,0.608-0.346c0.119-0.069,0.23-0.083,0.36-0.014c0.116,0.056,0.216,0.12,0.311,0.2
+                       c0.213,0.181,0.23,0.22,0.004,0.397c-0.169,0.136-0.205,0.342-0.391,0.466c-0.017,0.011-0.008,0.051-0.013,0.078
+                       c-0.009,0.08,0.065,0.144,0.144,0.124c0.044-0.012,0.09-0.029,0.136-0.045c0.117-0.04,0.227-0.121,0.365-0.051
+                       c0.197,0.1,0.393,0.205,0.493,0.387c0.014,0.027-0.01,0.084-0.037,0.108c-0.091,0.08-0.187,0.156-0.286,0.224
+                       c-0.144,0.1-0.184,0.222-0.153,0.371c0.011,0.067,0.005,0.137,0.022,0.204c0.062,0.226,0.152,0.446,0.026,0.682
+                       c-0.031,0.055,0.002,0.135,0.014,0.204c0.015,0.114,0.087,0.167,0.223,0.179c0.415,0.038,0.532,0.089,0.819,0.362
+                       c-0.031,0.113-0.141,0.182-0.227,0.261c-0.096,0.089-0.165,0.173-0.055,0.289c0.033,0.035,0.011,0.08-0.022,0.113
+                       c-0.053,0.052-0.125,0.093-0.101,0.175c0.041,0.142-0.229,0.307-0.011,0.409c0.154,0.073,0.255-0.133,0.394-0.198
+                       c0.132-0.065,0.223-0.08,0.353,0c0.105,0.067,0.203,0.131,0.281,0.222c0.153,0.171,0.168,0.175-0.014,0.344
+                       c-0.092,0.087-0.134,0.177-0.166,0.288c-0.047,0.16-0.106,0.364-0.088,0.477c0.011,0.061,0.002,0.112-0.05,0.152
+                       c-0.101,0.078-0.055,0.153,0.008,0.217c0.141,0.147,0.189,0.278,0.005,0.431c-0.079,0.066-0.094,0.171-0.058,0.273
+                       c0.024,0.064,0.03,0.135,0.041,0.202c0.029,0.18-0.02,0.326-0.235,0.411c-0.055,0.021-0.095,0.07-0.134,0.102
+                       c-0.029,0.131,0.153,0.088,0.175,0.182c0.02,0.082,0.127,0.119,0.196,0.175c0.105,0.088,0.117,0.204-0.004,0.291
+                       c-0.2,0.144-0.177,0.337-0.208,0.518c-0.007,0.052,0.031,0.116-0.028,0.152c-0.165,0.09-0.237,0.212-0.239,0.379
+                       c0,0.071-0.095,0.039-0.158,0.041c-0.181,0.002-0.215,0.02-0.224,0.147c-0.017,0.211-0.07,0.407-0.211,0.584
+                       c-0.026,0.033-0.022,0.084,0.026,0.11c0.048,0.029,0.094,0.012,0.127-0.023c0.115-0.122,0.253-0.214,0.444-0.232
+                       c0.092-0.008,0.151-0.045,0.195-0.106c0.053-0.08,0.136-0.116,0.237-0.133c0.128-0.028,0.22-0.093,0.323-0.169
+                       c0.203-0.151,0.444-0.264,0.674-0.389c0.018-0.011,0.081,0,0.088,0.012c0.081,0.159,0.309,0.172,0.419,0.321
+                       c0.134,0.185,0.179,0.267,0.055,0.433c-0.024,0.033-0.067,0.059-0.098,0.09c-0.132,0.14-0.204,0.295-0.081,0.456
+                       c0.101,0.129-0.015,0.202-0.055,0.297c-0.003,0-0.003,0-0.005-0.002c-0.002,0.002-0.002,0.002-0.002,0.004
+                       c-0.112-0.002-0.225-0.011-0.335-0.002c-0.084,0.006-0.156,0.049-0.184,0.12c-0.009,0.022,0,0.051,0.008,0.078
+                       c0.005,0.011,0.029,0.027,0.036,0.024c0.167-0.057,0.393-0.032,0.476-0.22h0.004c0.003,0,0.003-0.002,0.003-0.002
+                       c0.285,0.067,0.38,0.279,0.498,0.473c0.031,0.053,0.009,0.108-0.032,0.155c-0.038,0.045-0.073,0.091-0.117,0.133
+                       c-0.158,0.158-0.225,0.313-0.096,0.525c0.089,0.141,0.037,0.228-0.169,0.277c-0.34,0.082-0.571,0.257-0.724,0.515
+                       c-0.103,0.173-0.182,0.339-0.094,0.546c0.082,0.194-0.023,0.379-0.157,0.541c-0.065,0.078-0.153,0.142-0.228,0.218
+                       c-0.072,0.075-0.141,0.135-0.279,0.133c-0.158-0.002-0.024,0.185-0.16,0.216c-0.061,0.013-0.184,0.011-0.156,0.055
+                       c0.101,0.16-0.009,0.291-0.038,0.433c-0.017,0.088,0.062,0.164,0.167,0.168c0.134,0.005,0.265-0.006,0.366-0.092
+                       c0.128-0.109,0.253-0.22,0.464-0.151c0.011,0.004,0.038-0.003,0.046-0.012c0.222-0.271,0.69-0.237,0.905-0.517
+                       c0.02-0.023,0.089-0.035,0.132-0.031c0.139,0.011,0.007,0.213,0.182,0.198c0.105-0.012,0.196-0.029,0.235,0.082
+                       c0.004,0.014,0.009,0.027,0.014,0.04c0.033,0.108,0.256,0.104,0.225,0.246c-0.024,0.102-0.158,0.131-0.239,0.2
+                       c-0.053,0.045-0.046,0.089-0.031,0.149c0.04,0.159,0.146,0.308,0.119,0.479c-0.299,0.173-0.301,0.173-0.61,0.189
+                       c-0.086,0.004-0.16,0.022-0.21,0.086c-0.062,0.085-0.165,0.132-0.255,0.189c-0.041,0.027-0.041,0.08-0.004,0.106
+                       c0.031,0.027,0.095,0.053,0.125,0.042c0.117-0.047,0.234-0.1,0.336-0.165c0.103-0.064,0.187-0.11,0.301-0.019
+                       c0.06,0.05,0.115,0.006,0.167-0.03c0.182-0.115,0.369-0.228,0.55-0.344c0.077-0.048,0.143-0.046,0.22,0.007
+                       c0.168,0.118,0.338,0.233,0.555,0.284c0.079,0.018,0.101,0.091,0.071,0.133c-0.154,0.229-0.141,0.462-0.093,0.711
+                       c0.026,0.142-0.062,0.226-0.256,0.279c-0.146,0.04-0.218,0.105-0.21,0.24c0.007,0.171-0.05,0.326-0.118,0.481
+                       c0.52-0.062,1.06-0.124,1.607-0.184c0.101-0.155,0.188-0.315,0.199-0.503c0.007-0.129,0.064-0.136,0.189-0.045
+                       c0.026,0.02,0.046,0.061,0.069,0.063c0.079,0.006,0.063-0.05,0.055-0.087c-0.023-0.126,0.039-0.204,0.184-0.218
+                       c0.206-0.018,0.375-0.163,0.603-0.118c0.033,0.007,0.096-0.033,0.125-0.064c0.084-0.091,0.194-0.185,0.224-0.289
+                       c0.038-0.137,0.079-0.22,0.265-0.2c0.122,0.011,0.181-0.067,0.239-0.141c0.084-0.109,0.204-0.147,0.356-0.154
+                       c0.184-0.006,0.228-0.078,0.18-0.222c-0.05-0.164-0.197-0.225-0.364-0.286c-0.167-0.059-0.193-0.114-0.093-0.233
+                       c0.091-0.109,0.095-0.174-0.026-0.256c-0.151-0.1-0.281-0.23-0.443-0.308c-0.174-0.085-0.327-0.152-0.332-0.348
+                       c-0.003-0.091-0.103-0.149-0.18-0.211c-0.101-0.082-0.198-0.167-0.292-0.253c-0.057-0.055-0.022-0.147,0.064-0.182
+                       c0.015-0.007,0.032-0.014,0.048-0.016c0.098-0.02,0.228-0.013,0.261-0.116c0.048-0.148,0.019-0.296-0.108-0.414
+                       c-0.115-0.109-0.255-0.198-0.375-0.302c-0.06-0.051,0-0.163,0.084-0.173c0.05-0.007,0.103-0.014,0.156-0.012
+                       c0.098,0.007,0.191,0.116,0.287,0.04c0.052-0.042,0.051-0.136,0.083-0.2c0.031-0.063,0.112-0.096,0.17-0.063
+                       c0.182,0.102,0.316,0.049,0.445-0.066c0.033-0.029,0.081-0.047,0.123-0.071c-0.217-0.185-0.217-0.185-0.215-0.446
+                       c0.006-0.253,0.006-0.26,0.316-0.279c0.108-0.007,0.193-0.025,0.287-0.075c0.237-0.127,0.481-0.171,0.712,0.025
+                       c0.127,0.112,0.292,0.067,0.447,0.052c0.065-0.007,0.103-0.114,0.044-0.14c-0.364-0.171-0.259-0.484-0.325-0.743
+                       c-0.021-0.082,0.031-0.142,0.093-0.195c0.115-0.093,0.077-0.206,0.01-0.284c-0.116-0.126-0.18-0.299-0.311-0.391
+                       c-0.208-0.141-0.287-0.253-0.184-0.475c0.038-0.082-0.088-0.21-0.121-0.324c-0.058-0.189-0.03-0.224,0.218-0.318
+                       c0.239-0.086,0.356-0.293,0.275-0.489c-0.029-0.068-0.07-0.135-0.096-0.204c-0.031-0.089,0.065-0.173,0.182-0.164
+                       c0.017,0,0.041-0.002,0.053,0.006c0.23,0.157,0.38-0.005,0.55-0.093c0.093-0.049,0.122-0.116,0.042-0.18
+                       c-0.11-0.089-0.126-0.204-0.172-0.312c-0.099-0.249-0.046-0.411,0.234-0.486c0.246-0.067,0.402-0.229,0.617-0.327
+                       c0.134-0.062,0.196-0.157,0.172-0.292c-0.009-0.071-0.007-0.147,0.007-0.218c0.029-0.149,0.125-0.2,0.299-0.151
+                       c0.135,0.038,0.259,0.084,0.405,0.063c0.093-0.014,0.187,0.017,0.21,0.097c0.041,0.127,0.151,0.181,0.268,0.249
+                       c0.134,0.081,0.216,0.201,0.424,0.151c0.108-0.025,0.186,0.071,0.194,0.17c0.016,0.235-0.017,0.467-0.096,0.694
+                       c-0.22,0.635-0.129,0.464,0.253,0.892c0.041,0.045,0.134,0.067,0.151,0.112c0.055,0.149,0.162,0.177,0.323,0.137
+                       c0.05-0.011,0.103-0.013,0.156-0.013c0.083-0.002,0.141,0.071,0.088,0.119c-0.123,0.114-0.198,0.234-0.145,0.397
+                       c0.009,0.034-0.017,0.091-0.05,0.118c-0.28,0.242-0.335,0.603-0.665,0.819c0.263,0.118,0.265,0.12,0.384-0.009
+                       c0.187-0.204,0.443-0.32,0.717-0.411c0.017-0.006,0.037,0.002,0.053,0.002c0.138-0.004,0.11-0.241,0.313-0.159
+                       c0.11,0.042,0.204,0.118,0.332,0.124c0.053,0.002,0.105,0.013,0.151,0.031c0.055,0.022,0.071,0.075,0.043,0.114
+                       c-0.046,0.062-0.111,0.113-0.163,0.171c-0.045,0.049-0.055,0.097-0.021,0.161c0.108,0.202,0.105,0.202-0.029,0.304
+                       c-0.144,0.109-0.287,0.216-0.379,0.362c-0.048,0.078-0.124,0.147-0.2,0.202c-0.093,0.067-0.228,0.098-0.299,0.173
+                       c-0.108,0.113-0.175,0.253-0.259,0.377c0.009,0.104,0.115,0.102,0.189,0.126c0.077,0.024,0.113,0.12,0.217,0.089
+                       c0.098-0.104-0.026-0.255,0.074-0.336c0.108-0.088,0.266-0.133,0.402-0.194c0.046-0.023,0.096-0.038,0.136-0.065
+                       c0.143-0.102,0.294-0.1,0.428-0.002c0.136,0.102,0.296,0.146,0.465,0.19c0.069,0.018,0.112,0.093,0.06,0.142
+                       c-0.237,0.218-0.349,0.503-0.605,0.711c-0.127,0.102-0.275,0.175-0.404,0.275c0.043,0.133,0.215,0.2,0.204,0.353
+                       c-0.008,0.122,0.138,0.155,0.229,0.222c0.108,0.078,0.12,0.151,0.024,0.222c-0.139,0.1-0.253,0.195-0.235,0.369
+                       c0.013,0.093-0.073,0.155-0.169,0.206c-0.204,0.112-0.397,0.238-0.608,0.344c-0.114,0.058-0.172,0.139-0.222,0.233l0.007,0.007
+                       c0.215-0.04,0.452-0.007,0.646-0.14c0.084-0.057,0.203-0.073,0.293-0.029c0.16,0.078,0.261,0.006,0.375-0.065
+                       c0.07-0.042,0.142-0.086,0.218-0.115c0.161-0.063,0.34,0.011,0.337,0.161c-0.002,0.14,0.02,0.175,0.184,0.138
+                       c0.086-0.02,0.156-0.049,0.229-0.089c0.118-0.065,0.194-0.033,0.228,0.075c0.022,0.069,0.026,0.144,0.046,0.216
+                       c0.024,0.093,0.174,0.184,0.064,0.277c-0.115,0.098-0.208,0.244-0.413,0.24c-0.089-0.002-0.177,0.009-0.241,0.059
+                       c-0.125,0.1-0.228,0.228-0.369,0.302s-0.34,0.067-0.443,0.204v0.002c0.108-0.015,0.208-0.004,0.294,0.061
+                       c0.077,0.057,0.158,0.11,0.25,0.173c0.088-0.089,0.158-0.171,0.244-0.24c0.122-0.102,0.279-0.062,0.313,0.08
+                       c0.016,0.069,0.003,0.144,0.003,0.232c0.158,0.039,0.294-0.038,0.437-0.071c0.086-0.018,0.165-0.033,0.254-0.008
+                       c0.092,0.023,0.152,0.097,0.117,0.166c-0.096,0.173-0.199,0.344-0.294,0.515c-0.077,0.14-0.218,0.171-0.38,0.195
+                       c-0.318,0.047-0.543,0.237-0.785,0.395c-0.028,0.017-0.033,0.051-0.026,0.08c0.105-0.006,0.208-0.013,0.311-0.02
+                       c0.022-0.014,0.04-0.027,0.064-0.037c0.046-0.026,0.118-0.038,0.133,0.013c0.001,0.004,0.006,0.006,0.006,0.011
+                       c2.516-0.161,5.151-0.296,7.846-0.402c-0.048-0.1-0.127-0.171-0.278-0.171c-0.117,0-0.176-0.059-0.236-0.125
+                       c-0.206-0.234-0.421-0.456-0.73-0.604c-0.208-0.102-0.315-0.267-0.313-0.483c0.003-0.236-0.032-0.466-0.151-0.686
+                       c-0.112-0.208-0.013-0.404,0.096-0.613c-0.137-0.086-0.239-0.21-0.348-0.33c-0.194-0.218-0.2-0.255-0.009-0.438
+                       c0.211-0.202,0.331-0.223,0.645-0.123c0.046,0.013,0.086,0.044,0.132,0.05c0.072,0.01,0.125-0.027,0.158-0.076
+                       c0.033-0.054,0.035-0.103-0.026-0.144c-0.206-0.144-0.2-0.147-0.323-0.454c-0.015-0.035-0.06-0.064-0.093-0.092
+                       c-0.067-0.056-0.094-0.112-0.019-0.177c0.055-0.05,0.108-0.102,0.165-0.152c0.282-0.243,0.366-0.269,0.705-0.08
+                       c0.296,0.165,0.632,0.279,0.895,0.493c0.148,0.12,0.369,0.157,0.507,0.306c0.062,0.065,0.182,0.005,0.279-0.039
+                       c-0.167-0.177-0.404-0.289-0.571-0.468c-0.062-0.069-0.112-0.124-0.125-0.206c-0.009-0.069-0.033-0.122-0.119-0.165
+                       c-0.149-0.069-0.17-0.233-0.108-0.318c0.099-0.131-0.034-0.277,0.088-0.395c0.046-0.042,0.017-0.104-0.022-0.153
+                       c-0.176-0.222-0.261-0.473-0.306-0.732c-0.022-0.131-0.077-0.238-0.208-0.315c-0.053-0.032-0.101-0.071-0.148-0.106
+                       c-0.232-0.179-0.245-0.209-0.108-0.46c0.025-0.053,0.081-0.1,0.018-0.144c-0.15-0.11-0.244-0.255-0.342-0.397
+                       c-0.047-0.066-0.188-0.084-0.184-0.176c0.006-0.125,0.156-0.17,0.245-0.245c0.067-0.055,0.169-0.082,0.251-0.126
+                       c0.112-0.062,0.115-0.088,0.035-0.2c-0.103-0.139-0.103-0.139,0.029-0.253c0.034-0.029,0.056-0.073,0.094-0.096
+                       c0.351-0.206,0.329-0.281,0.715-0.047c0.064,0.04,0.133,0.075,0.198,0.111c0.115-0.049,0.026-0.091,0.009-0.131
+                       c-0.024-0.065-0.062-0.13-0.066-0.195c-0.002-0.053,0.035-0.11-0.022-0.154c-0.156-0.108-0.108-0.21,0.004-0.314
+                       c0.068-0.061,0.129-0.122,0.189-0.187c0.083-0.084,0.184-0.108,0.309-0.072c0.06,0.015,0.125,0.027,0.189,0.037
+                       c0.086,0.016,0.189,0.118,0.251,0.016c0.046-0.073-0.057-0.15-0.124-0.209c-0.089-0.08-0.197-0.139-0.161-0.277
+                       c0.118-0.481-0.117-0.89-0.415-1.276c-0.081-0.107-0.064-0.175,0.022-0.254c0.055-0.048,0.108-0.11,0.177-0.137
+                       c0.124-0.045,0.176-0.122,0.176-0.224c0-0.289,0.255-0.391,0.498-0.507c0.057-0.029,0.136-0.029,0.187,0.01
+                       c0.141,0.098,0.32,0.045,0.468,0.1c0.041-0.186-0.022-0.35-0.156-0.499c-0.042-0.049-0.045-0.102-0.002-0.151
+                       c0.055-0.067,0.103-0.142,0.175-0.195c0.069-0.053,0.158-0.096,0.248-0.122c0.086-0.024,0.139,0.059,0.213,0.087
+                       c0.06,0.021,0.127,0.072,0.176,0.064c0.335-0.073,0.414,0.122,0.419,0.315c0.002,0.177,0.092,0.246,0.256,0.3
+                       c0.235,0.075,0.426,0.202,0.586,0.361c0.121,0.12,0.143,0.178,0.028,0.287c-0.122,0.12-0.175,0.259-0.248,0.395
+                       c-0.074,0.139-0.032,0.339-0.265,0.406c-0.006,0.002-0.008,0.029,0,0.038c0.007,0.011,0.026,0.027,0.035,0.024
+                       c0.048-0.012,0.098-0.018,0.136-0.04c0.203-0.114,0.406-0.232,0.608-0.348c0.119-0.069,0.229-0.08,0.361-0.014
+                       c0.114,0.058,0.215,0.122,0.309,0.2c0.215,0.18,0.231,0.22,0.007,0.397c-0.169,0.138-0.208,0.344-0.393,0.466
+                       c-0.016,0.012-0.007,0.051-0.011,0.078c-0.009,0.081,0.064,0.147,0.143,0.127c0.046-0.014,0.092-0.029,0.136-0.045
+                       c0.118-0.04,0.228-0.122,0.366-0.051c0.196,0.1,0.391,0.202,0.493,0.386c0.014,0.027-0.01,0.082-0.039,0.109
+                       c-0.088,0.08-0.184,0.153-0.285,0.223c-0.143,0.099-0.184,0.22-0.152,0.369c0.011,0.067,0.004,0.138,0.02,0.206
+                       c0.063,0.225,0.153,0.447,0.027,0.682c-0.031,0.055,0.003,0.136,0.013,0.204c0.016,0.112,0.086,0.165,0.224,0.178
+                       c0.416,0.037,0.531,0.088,0.82,0.363c-0.033,0.113-0.143,0.181-0.228,0.261h-0.002c0.017,0.012,0.031,0.018,0.053,0.034
+                       c0.027,0.02,0.044,0.059,0.068,0.063c0.081,0.005,0.064-0.052,0.057-0.087c-0.026-0.126,0.035-0.206,0.184-0.218
+                       c0.205-0.019,0.375-0.164,0.6-0.12c0.035,0.01,0.096-0.031,0.125-0.062c0.083-0.093,0.193-0.185,0.224-0.291
+                       c0.039-0.135,0.081-0.218,0.265-0.2c0.125,0.013,0.184-0.064,0.242-0.141c0.084-0.109,0.201-0.147,0.353-0.152
+                       c0.184-0.008,0.228-0.08,0.182-0.224c-0.053-0.161-0.198-0.223-0.365-0.284c-0.168-0.059-0.194-0.114-0.094-0.233
+                       c0.091-0.109,0.098-0.175-0.026-0.256c-0.151-0.102-0.279-0.23-0.443-0.31c-0.174-0.082-0.327-0.151-0.33-0.348
+                       c-0.002-0.089-0.102-0.149-0.179-0.211c-0.103-0.08-0.199-0.164-0.292-0.251c-0.06-0.055-0.024-0.149,0.062-0.182
+                       c0.017-0.007,0.031-0.013,0.047-0.018c0.101-0.02,0.23-0.013,0.263-0.113c0.048-0.149,0.017-0.299-0.106-0.415
+                       c-0.118-0.109-0.256-0.2-0.379-0.304c-0.057-0.049,0-0.16,0.087-0.173c0.051-0.006,0.103-0.012,0.152-0.01
+                       c0.101,0.005,0.194,0.114,0.287,0.04c0.055-0.045,0.05-0.136,0.084-0.202c0.031-0.061,0.115-0.096,0.173-0.063
+                       c0.181,0.104,0.312,0.052,0.444-0.066c0.033-0.029,0.081-0.045,0.125-0.069c-0.22-0.187-0.22-0.187-0.215-0.446
+                       c0.003-0.253,0.005-0.261,0.314-0.281c0.108-0.005,0.193-0.022,0.288-0.073c0.237-0.126,0.481-0.173,0.71,0.025
+                       c0.129,0.109,0.294,0.065,0.448,0.052c0.067-0.007,0.104-0.114,0.045-0.142c-0.363-0.171-0.26-0.482-0.327-0.741
+                       c-0.019-0.082,0.031-0.144,0.096-0.195c0.115-0.093,0.075-0.208,0.007-0.284c-0.115-0.128-0.18-0.302-0.311-0.391
+                       c-0.205-0.141-0.286-0.253-0.183-0.477c0.038-0.08-0.087-0.21-0.12-0.322c-0.06-0.191-0.031-0.226,0.215-0.318
+                       c0.239-0.089,0.356-0.295,0.275-0.489c-0.029-0.071-0.068-0.135-0.092-0.206c-0.033-0.088,0.064-0.173,0.182-0.164
+                       c0.016,0.002,0.038,0,0.049,0.006c0.23,0.157,0.38-0.004,0.553-0.093c0.091-0.049,0.123-0.114,0.044-0.177
+                       c-0.11-0.088-0.129-0.204-0.173-0.315c-0.1-0.246-0.046-0.408,0.232-0.485c0.246-0.067,0.404-0.228,0.617-0.324
+                       c0.136-0.063,0.197-0.16,0.175-0.295c-0.013-0.069-0.008-0.144,0.005-0.216c0.029-0.149,0.126-0.202,0.301-0.151
+                       c0.134,0.038,0.259,0.084,0.404,0.063c0.091-0.016,0.187,0.018,0.211,0.096c0.04,0.128,0.148,0.182,0.268,0.25
+                       c0.132,0.078,0.215,0.198,0.424,0.149c0.108-0.023,0.184,0.071,0.191,0.171c0.019,0.236-0.014,0.468-0.094,0.693
+                       c-0.22,0.637-0.128,0.464,0.254,0.892c0.039,0.047,0.134,0.067,0.15,0.114c0.056,0.149,0.163,0.175,0.323,0.137
+                       c0.048-0.011,0.103-0.013,0.156-0.013c0.081-0.002,0.141,0.069,0.089,0.118c-0.127,0.115-0.201,0.235-0.149,0.397
+                       c0.013,0.035-0.015,0.09-0.048,0.119c-0.279,0.24-0.336,0.601-0.665,0.819c0.261,0.118,0.265,0.12,0.386-0.011
+                       c0.187-0.202,0.443-0.32,0.718-0.411c0.014-0.004,0.036,0.004,0.053,0.004c0.139-0.006,0.108-0.243,0.312-0.161
+                       c0.11,0.045,0.201,0.12,0.333,0.124c0.002,0,0.005,0.002,0.007,0.002c-0.017-0.012-0.033-0.022-0.051-0.035
+                       c-0.232-0.177-0.244-0.209-0.108-0.46c0.029-0.051,0.081-0.1,0.02-0.144c-0.153-0.11-0.241-0.253-0.342-0.395
+                       c-0.048-0.066-0.189-0.086-0.184-0.179c0.004-0.122,0.153-0.168,0.244-0.242c0.068-0.057,0.171-0.082,0.252-0.126
+                       c0.112-0.062,0.115-0.089,0.035-0.199c-0.103-0.142-0.103-0.14,0.029-0.256c0.033-0.029,0.055-0.071,0.093-0.093
+                       c0.352-0.206,0.331-0.281,0.715-0.046c0.065,0.039,0.134,0.072,0.199,0.108c0.115-0.049,0.024-0.089,0.009-0.13
+                       c-0.024-0.066-0.062-0.131-0.066-0.197c-0.003-0.051,0.035-0.112-0.022-0.151c-0.156-0.112-0.109-0.211,0.004-0.315
+                       c0.066-0.063,0.129-0.124,0.189-0.187c0.084-0.086,0.184-0.108,0.307-0.075c0.062,0.018,0.126,0.029,0.191,0.04
+                       c0.086,0.014,0.189,0.117,0.251,0.014c0.046-0.072-0.057-0.15-0.125-0.209c-0.088-0.078-0.196-0.138-0.16-0.277
+                       c0.12-0.482-0.117-0.89-0.415-1.276c-0.081-0.105-0.064-0.174,0.022-0.252c0.055-0.051,0.106-0.113,0.176-0.137
+                       c0.125-0.047,0.177-0.124,0.177-0.224c0-0.289,0.255-0.393,0.497-0.506c0.061-0.03,0.137-0.03,0.187,0.006
+                       c0.139,0.1,0.32,0.045,0.469,0.1c0.04-0.187-0.022-0.352-0.156-0.499c-0.044-0.049-0.045-0.101-0.002-0.151
+                       c0.055-0.067,0.103-0.14,0.174-0.195c0.07-0.051,0.158-0.096,0.249-0.12c0.086-0.024,0.139,0.057,0.213,0.084
+                       c0.06,0.022,0.126,0.075,0.176,0.065c0.335-0.071,0.414,0.124,0.419,0.318c0.002,0.177,0.091,0.244,0.255,0.299
+                       c0.234,0.075,0.425,0.2,0.589,0.359c0.119,0.122,0.141,0.18,0.029,0.289c-0.125,0.118-0.177,0.257-0.252,0.395
+                       c-0.074,0.139-0.031,0.34-0.265,0.406c-0.004,0-0.004,0.027,0,0.038c0.007,0.011,0.026,0.024,0.037,0.021
+                       c0.047-0.008,0.097-0.017,0.136-0.039c0.203-0.114,0.406-0.228,0.606-0.346c0.12-0.071,0.23-0.082,0.362-0.016
+                       c0.114,0.058,0.215,0.122,0.308,0.203c0.215,0.18,0.232,0.22,0.008,0.397c-0.17,0.135-0.208,0.341-0.393,0.465
+                       c-0.017,0.011-0.009,0.051-0.011,0.078c-0.01,0.08,0.064,0.144,0.143,0.124c0.046-0.011,0.091-0.029,0.136-0.045
+                       c0.117-0.039,0.227-0.121,0.366-0.05c0.196,0.1,0.391,0.204,0.492,0.386c0.015,0.027-0.009,0.085-0.038,0.108
+                       c-0.089,0.081-0.187,0.156-0.285,0.225c-0.144,0.097-0.184,0.221-0.153,0.368c0.013,0.069,0.006,0.14,0.022,0.207
+                       c0.062,0.226,0.153,0.446,0.026,0.681c-0.031,0.055,0.002,0.135,0.011,0.204c0.017,0.114,0.087,0.167,0.225,0.179
+                       c0.415,0.038,0.531,0.089,0.821,0.362c-0.034,0.114-0.144,0.182-0.23,0.262c-0.092,0.088-0.162,0.173-0.053,0.288
+                       c0.033,0.036,0.013,0.08-0.024,0.112c-0.053,0.053-0.122,0.096-0.098,0.177c0.041,0.142-0.229,0.306-0.014,0.408
+                       c0.156,0.073,0.258-0.133,0.397-0.198c0.132-0.064,0.22-0.08,0.349,0c0.108,0.067,0.206,0.131,0.284,0.222
+                       c0.153,0.171,0.168,0.175-0.014,0.344c-0.094,0.087-0.134,0.177-0.165,0.289c-0.048,0.159-0.108,0.363-0.088,0.477
+                       c0.009,0.059,0.001,0.112-0.05,0.151c-0.103,0.078-0.055,0.153,0.007,0.218c0.138,0.146,0.189,0.277,0.005,0.43
+                       c-0.079,0.067-0.095,0.171-0.057,0.273c0.022,0.065,0.029,0.135,0.04,0.202c0.029,0.18-0.018,0.326-0.234,0.411
+                       c-0.055,0.021-0.096,0.071-0.134,0.1c-0.029,0.133,0.152,0.088,0.174,0.184c0.019,0.083,0.127,0.12,0.196,0.177
+                       c0.105,0.086,0.118,0.202-0.004,0.289c-0.203,0.144-0.176,0.337-0.208,0.519c-0.007,0.051,0.032,0.115-0.029,0.151
+                       c-0.165,0.091-0.236,0.212-0.239,0.379c-0.001,0.069-0.095,0.04-0.157,0.042c-0.182,0.002-0.215,0.02-0.225,0.147
+                       c-0.016,0.21-0.069,0.406-0.211,0.583c-0.026,0.033-0.021,0.085,0.026,0.111c0.048,0.029,0.094,0.011,0.127-0.024
+                       c0.112-0.124,0.254-0.214,0.445-0.232c0.091-0.008,0.15-0.044,0.193-0.108c0.015-0.02,0.039-0.033,0.055-0.049
+                       c0.011-0.041,0.024-0.086,0.026-0.131c0.007-0.129,0.066-0.138,0.191-0.045c0.022,0.016,0.039,0.047,0.06,0.055
+                       c0.022-0.008,0.048-0.013,0.07-0.027c0.002-0.016-0.002-0.037-0.007-0.053c-0.024-0.126,0.038-0.206,0.184-0.22
+                       c0.163-0.013,0.303-0.102,0.466-0.119c0.062-0.034,0.127-0.067,0.189-0.103c0.019-0.009,0.081,0,0.088,0.014
+                       c0,0.002,0.004,0.004,0.005,0.006c0.08-0.087,0.175-0.171,0.204-0.269c0.039-0.135,0.079-0.217,0.265-0.2
+                       c0.125,0.014,0.184-0.066,0.241-0.141c0.081-0.109,0.2-0.147,0.354-0.154c0.184-0.006,0.228-0.078,0.182-0.222
+                       c-0.053-0.161-0.198-0.226-0.365-0.286c-0.168-0.057-0.195-0.113-0.094-0.233c0.091-0.107,0.098-0.173-0.027-0.256
+                       c-0.151-0.1-0.28-0.228-0.443-0.308c-0.174-0.085-0.327-0.151-0.332-0.348c0-0.091-0.101-0.149-0.18-0.211
+                       c-0.099-0.08-0.198-0.164-0.291-0.253c-0.058-0.055-0.022-0.147,0.064-0.182c0.015-0.005,0.031-0.012,0.048-0.016
+                       c0.1-0.02,0.229-0.013,0.262-0.115c0.048-0.149,0.017-0.298-0.108-0.413c-0.117-0.109-0.255-0.2-0.377-0.304
+                       c-0.057-0.052,0-0.162,0.087-0.173c0.049-0.006,0.103-0.012,0.152-0.01c0.098,0.005,0.193,0.114,0.287,0.038
+                       c0.055-0.042,0.05-0.134,0.083-0.2c0.031-0.061,0.114-0.096,0.173-0.063c0.181,0.104,0.313,0.052,0.444-0.066
+                       c0.032-0.029,0.081-0.047,0.125-0.071c-0.22-0.185-0.22-0.185-0.217-0.446c0.005-0.251,0.007-0.259,0.316-0.279
+                       c0.106-0.007,0.194-0.024,0.289-0.076c0.237-0.123,0.481-0.17,0.711,0.027c0.129,0.112,0.294,0.067,0.446,0.054
+                       c0.065-0.007,0.103-0.114,0.046-0.142c-0.363-0.171-0.261-0.482-0.327-0.743c-0.022-0.08,0.031-0.141,0.095-0.195
+                       c0.116-0.092,0.074-0.206,0.008-0.281c-0.116-0.13-0.18-0.302-0.311-0.391c-0.205-0.141-0.286-0.253-0.184-0.477
+                       c0.039-0.08-0.086-0.211-0.121-0.322c-0.057-0.191-0.029-0.226,0.217-0.318c0.239-0.088,0.356-0.295,0.275-0.49
+                       c-0.029-0.069-0.069-0.136-0.093-0.205c-0.034-0.088,0.064-0.173,0.181-0.164c0.017,0.002,0.039-0.002,0.05,0.006
+                       c0.23,0.157,0.38-0.004,0.55-0.093c0.093-0.049,0.125-0.116,0.044-0.177c-0.108-0.088-0.127-0.204-0.171-0.315
+                       c-0.101-0.245-0.044-0.41,0.232-0.485c0.246-0.067,0.404-0.228,0.617-0.324c0.136-0.063,0.196-0.16,0.174-0.295
+                       c-0.011-0.071-0.009-0.147,0.006-0.218c0.029-0.147,0.126-0.2,0.301-0.149c0.132,0.038,0.255,0.085,0.404,0.063
+                       c0.091-0.016,0.184,0.017,0.21,0.095c0.04,0.13,0.148,0.18,0.266,0.252c0.134,0.076,0.215,0.198,0.425,0.148
+                       c0.108-0.023,0.183,0.071,0.191,0.169c0.016,0.236-0.015,0.471-0.092,0.696c-0.221,0.634-0.129,0.463,0.251,0.891
+                       c0.04,0.045,0.136,0.067,0.153,0.114c0.054,0.149,0.161,0.175,0.323,0.138c0.047-0.014,0.102-0.014,0.154-0.016
+                       c0.081,0,0.142,0.071,0.088,0.12c-0.126,0.115-0.2,0.235-0.148,0.396c0.011,0.034-0.016,0.091-0.048,0.12
+                       c-0.279,0.24-0.337,0.602-0.667,0.819c0.263,0.118,0.268,0.12,0.386-0.011c0.189-0.204,0.442-0.32,0.72-0.411
+                       c0.014-0.004,0.033,0.002,0.049,0.002c0.142-0.004,0.111-0.241,0.316-0.159c0.108,0.045,0.201,0.118,0.333,0.124
+                       c0.049,0.004,0.102,0.014,0.148,0.033c0.055,0.022,0.072,0.073,0.044,0.114c-0.044,0.059-0.11,0.11-0.163,0.168
+                       c-0.046,0.05-0.055,0.101-0.022,0.163c0.108,0.202,0.105,0.204-0.029,0.306c-0.144,0.107-0.285,0.213-0.378,0.362
+                       c-0.048,0.075-0.122,0.144-0.201,0.2c-0.092,0.067-0.224,0.098-0.296,0.173c-0.108,0.114-0.177,0.253-0.261,0.377
+                       c0.01,0.105,0.115,0.102,0.189,0.126c0.077,0.024,0.112,0.12,0.221,0.089c0.095-0.104-0.029-0.255,0.071-0.335
+                       c0.108-0.087,0.265-0.132,0.402-0.195c0.046-0.022,0.098-0.036,0.136-0.065c0.144-0.102,0.294-0.098,0.428,0
+                       c0.14,0.1,0.298,0.144,0.465,0.189c0.069,0.017,0.115,0.092,0.06,0.141c-0.235,0.218-0.349,0.505-0.604,0.713
+                       c-0.125,0.1-0.276,0.173-0.401,0.275c0.042,0.132,0.213,0.2,0.203,0.35c-0.009,0.122,0.136,0.155,0.227,0.222
+                       c0.108,0.08,0.122,0.151,0.024,0.224c-0.136,0.1-0.253,0.193-0.234,0.366c0.011,0.096-0.074,0.155-0.168,0.206
+                       c-0.205,0.114-0.4,0.24-0.609,0.344c-0.116,0.057-0.173,0.14-0.223,0.235l0.008,0.007c0.217-0.042,0.454-0.01,0.645-0.142
+                       c0.083-0.055,0.203-0.073,0.296-0.027c0.158,0.075,0.26,0.004,0.373-0.067c0.071-0.042,0.141-0.086,0.22-0.116
+                       c0.16-0.059,0.336,0.012,0.334,0.163c-0.003,0.142,0.019,0.177,0.184,0.138c0.087-0.02,0.156-0.049,0.23-0.089
+                       c0.117-0.063,0.196-0.031,0.227,0.075c0.022,0.071,0.029,0.144,0.046,0.216c0.026,0.093,0.175,0.185,0.064,0.277
+                       c-0.115,0.1-0.207,0.246-0.411,0.24c-0.09-0.003-0.176,0.008-0.244,0.059c-0.124,0.1-0.224,0.228-0.369,0.302
+                       c-0.141,0.075-0.336,0.067-0.442,0.204l0.002,0.002c0.108-0.013,0.206-0.003,0.292,0.061c0.079,0.057,0.159,0.111,0.251,0.175
+                       c0.088-0.089,0.158-0.173,0.242-0.242c0.125-0.102,0.28-0.062,0.313,0.08c0.016,0.071,0.002,0.144,0.002,0.234
+                       c0.158,0.037,0.296-0.04,0.439-0.071c0.087-0.02,0.163-0.035,0.254-0.011c0.093,0.027,0.153,0.099,0.115,0.167
+                       c-0.096,0.172-0.196,0.343-0.292,0.516c-0.077,0.137-0.217,0.169-0.382,0.193c-0.318,0.046-0.54,0.237-0.784,0.395
+                       c-0.041,0.027-0.051,0.086-0.008,0.117c0.033,0.022,0.103,0.036,0.14,0.022c0.078-0.026,0.143-0.078,0.217-0.117
+                       c0.047-0.024,0.117-0.036,0.134,0.013c0.055,0.177,0.22,0.204,0.394,0.235c0.103,0.021,0.116,0.096,0.037,0.172
+                       c-0.07,0.066-0.149,0.123-0.215,0.192c-0.086,0.085-0.07,0.175,0.06,0.201c0.187,0.035,0.277,0.102,0.246,0.27
+                       c-0.007,0.051,0.06,0.089,0.105,0.063c0.127-0.081,0.222-0.089,0.305-0.058c0.017-0.049,0.039-0.099,0.077-0.155
+                       c0.06-0.088,0.067-0.195-0.005-0.289c-0.119-0.159-0.119-0.345-0.128-0.528c-0.006-0.078-0.008-0.191,0.04-0.233
+                       c0.318-0.273,0.283-0.644,0.327-0.994c0.02-0.14,0.072-0.273,0.17-0.391c0.16-0.191,0.234-0.215,0.543-0.1
+                       c0.117,0.045,0.208,0.065,0.241-0.082c0.031-0.13,0.134-0.206,0.224-0.291c0.046-0.042,0.099-0.104,0.151-0.106
+                       c0.26-0.013,0.507,0.062,0.753,0.129c0.126,0.036,0.239,0.093,0.277,0.23c0.006,0.018,0.015,0.038,0.02,0.057
+                       c0.038,0.103,0.115,0.103,0.208,0.071c0.172-0.053,0.285,0.022,0.375,0.158c0.093,0.139,0.191,0.277,0.086,0.45
+                       c-0.031,0.053-0.079,0.1-0.103,0.155c-0.073,0.169,0.017,0.336,0.201,0.375c0.04,0.012,0.086,0.016,0.129,0.014
+                       c0.104-0.007,0.21-0.018,0.346-0.032c0.079,0.201,0.136,0.418,0.244,0.611c0.146,0.255,0.132,0.464-0.102,0.657
+                       c-0.063,0.051-0.138,0.104-0.134,0.195c0.002,0.029,0.048,0.082,0.071,0.082c0.083-0.005,0.194-0.002,0.245-0.049
+                       c0.26-0.244,0.504-0.091,0.747-0.033c0.034,0.23-0.209,0.29-0.217,0.457c0.034,0.073,0.101,0.062,0.164,0.073
+                       c0.323,0.049,0.36,0.108,0.159,0.306c-0.169,0.169-0.268,0.369-0.354,0.575c-0.04,0.1-0.007,0.205,0.132,0.236
+                       c0.117,0.027,0.2,0.086,0.139,0.212c-0.057,0.116-0.095,0.229-0.038,0.35c0.108,0.227,0.114,0.471,0.127,0.722
+                       c0.282,0,0.536,0.075,0.771-0.081c0.048-0.033,0.12-0.017,0.175,0.029c0.227,0.191,0.279,0.382,0.191,0.657
+                       c-0.115,0.357-0.33,0.654-0.645,0.927c0.275,0.085,0.414,0.289,0.531,0.548c0.102-0.104,0.153-0.168,0.217-0.212
+                       c0.048-0.034,0.115-0.045,0.174-0.058c0.017-0.004,0.041,0.014,0.061,0.022c0.808,0.366,0.727,0.395,0.145,0.943
+                       c-0.21,0.198-0.468,0.406-0.794,0.479c-0.052,0.012-0.105,0.081-0.071,0.147c0.014,0.034,0.069,0.079,0.095,0.071
+                       c0.333-0.082,0.452,0.169,0.603,0.356c0.117,0.141,0.176,0.335,0.311,0.457c0.203,0.188,0.152,0.358,0.04,0.548
+                       c-0.134,0.228-0.342,0.413-0.424,0.67c0.32,0.208,0.737,0.173,1.06,0.387c0.093,0.062,0.203-0.036,0.306-0.047
+                       c0.151-0.016,0.254,0.086,0.23,0.222c-0.008,0.051-0.015,0.11-0.041,0.155c0.024,0,0.048,0.002,0.072-0.006
+                       c0.077-0.075,0.035-0.154,0.007-0.229c-0.064-0.166-0.077-0.31,0.105-0.43c0.084-0.055,0.141-0.151,0.193-0.237
+                       c0.187-0.307,0.151-0.411-0.189-0.566c-0.038-0.018-0.084-0.02-0.121-0.038c-0.16-0.08-0.184-0.171-0.081-0.35
+                       c0.029-0.051,0.077-0.093,0.112-0.138c-0.026-0.166-0.189-0.168-0.287-0.219c-0.215-0.114-0.42-0.205-0.406-0.486
+                       c0.002-0.071-0.055-0.163-0.115-0.212c-0.149-0.129-0.136-0.269-0.114-0.444c0.044-0.327,0.025-0.331,0.384-0.302
+                       c0.079,0.003,0.122-0.004,0.129-0.087c0.057-0.644,0.279-1.001,0.891-1.251c0.235-0.099,0.351-0.198,0.375-0.426
+                       c0.011-0.1,0.033-0.202,0.06-0.301c0.039-0.143,0.12-0.168,0.289-0.131c0.23,0.049,0.424,0.204,0.669,0.2
+                       c0.038-0.002,0.086-0.031,0.108-0.059c0.02-0.029,0.029-0.1,0.013-0.112c-0.23-0.165-0.271-0.35-0.113-0.583
+                       c0.063-0.091,0.068-0.195-0.004-0.289c-0.119-0.159-0.119-0.346-0.129-0.53c-0.005-0.078-0.007-0.191,0.041-0.234
+                       c0.32-0.272,0.282-0.64,0.327-0.991c0.019-0.14,0.074-0.275,0.172-0.393c0.159-0.191,0.232-0.213,0.541-0.098
+                       c0.117,0.041,0.208,0.064,0.244-0.082c0.029-0.129,0.132-0.207,0.224-0.293c0.043-0.04,0.096-0.102,0.149-0.107
+                       c0.261-0.013,0.507,0.063,0.753,0.132c0.127,0.035,0.239,0.09,0.277,0.228c0.004,0.02,0.015,0.037,0.019,0.057
+                       c0.038,0.105,0.115,0.103,0.208,0.073c0.172-0.055,0.284,0.02,0.375,0.155c0.093,0.142,0.191,0.28,0.086,0.452
+                       c-0.031,0.052-0.079,0.101-0.103,0.154c-0.075,0.17,0.017,0.335,0.201,0.377c0.04,0.008,0.086,0.016,0.128,0.014
+                       c0.105-0.006,0.213-0.02,0.349-0.034c0.077,0.2,0.134,0.42,0.241,0.613c0.146,0.255,0.132,0.463-0.099,0.654
+                       c-0.065,0.053-0.142,0.104-0.136,0.195c0.002,0.031,0.049,0.084,0.071,0.082c0.085-0.004,0.194,0,0.245-0.048
+                       c0.26-0.242,0.503-0.089,0.748-0.034c0.033,0.23-0.211,0.291-0.218,0.46c0.033,0.071,0.101,0.062,0.163,0.071
+                       c0.323,0.048,0.364,0.11,0.163,0.306c-0.173,0.169-0.271,0.369-0.357,0.577c-0.04,0.1-0.007,0.202,0.132,0.236
+                       c0.118,0.027,0.201,0.084,0.139,0.21c-0.057,0.117-0.095,0.23-0.038,0.353c0.098,0.204,0.112,0.426,0.125,0.655
+                       c0.115-0.05,0.234-0.04,0.429,0.019c0.046,0.014,0.085,0.042,0.127,0.049c0.039-0.006,0.079-0.015,0.118-0.033
+                       c0.016-0.012,0.033-0.024,0.045-0.042c0.034-0.051,0.037-0.1-0.027-0.144c-0.205-0.141-0.2-0.143-0.323-0.452
+                       c-0.014-0.035-0.057-0.064-0.092-0.091c-0.065-0.054-0.094-0.11-0.02-0.177c0.055-0.049,0.108-0.102,0.165-0.151
+                       c0.283-0.243,0.369-0.268,0.706-0.082c0.299,0.165,0.631,0.283,0.896,0.495c0.149,0.118,0.366,0.157,0.505,0.304
+                       c0.062,0.067,0.184,0.006,0.281-0.037c-0.169-0.178-0.406-0.291-0.571-0.468c-0.064-0.069-0.114-0.124-0.127-0.207
+                       c-0.009-0.07-0.031-0.121-0.119-0.164c-0.146-0.071-0.167-0.234-0.105-0.318c0.098-0.133-0.035-0.279,0.086-0.395
+                       c0.046-0.041,0.017-0.104-0.021-0.153c-0.175-0.224-0.261-0.475-0.307-0.735c-0.022-0.129-0.075-0.237-0.206-0.312
+                       c-0.055-0.031-0.099-0.071-0.15-0.108c-0.232-0.178-0.242-0.209-0.108-0.46c0.029-0.051,0.081-0.1,0.019-0.144
+                       c-0.151-0.108-0.242-0.253-0.342-0.395c-0.048-0.066-0.19-0.086-0.184-0.177c0.005-0.124,0.155-0.169,0.244-0.243
+                       c0.07-0.058,0.169-0.083,0.251-0.127c0.115-0.062,0.118-0.089,0.037-0.2c-0.103-0.139-0.103-0.139,0.027-0.255
+                       c0.037-0.029,0.058-0.071,0.096-0.093c0.349-0.206,0.329-0.281,0.713-0.046c0.064,0.039,0.134,0.075,0.198,0.108
+                       c0.118-0.047,0.027-0.089,0.013-0.13c-0.024-0.064-0.065-0.131-0.068-0.194c-0.002-0.054,0.037-0.114-0.024-0.153
+                       c-0.155-0.111-0.105-0.211,0.007-0.315c0.065-0.061,0.127-0.124,0.19-0.187c0.081-0.086,0.181-0.108,0.306-0.075
+                       c0.062,0.018,0.127,0.029,0.191,0.04c0.083,0.013,0.187,0.118,0.249,0.016c0.045-0.074-0.058-0.151-0.122-0.211
+                       c-0.088-0.078-0.196-0.138-0.163-0.275c0.119-0.484-0.117-0.89-0.414-1.278c-0.084-0.105-0.066-0.174,0.02-0.252
+                       c0.055-0.051,0.108-0.113,0.177-0.137c0.127-0.045,0.176-0.124,0.176-0.224c0-0.289,0.258-0.393,0.498-0.506
+                       c0.06-0.03,0.136-0.03,0.189,0.006c0.139,0.1,0.318,0.047,0.466,0.102c0.041-0.189-0.02-0.354-0.155-0.501
+                       c-0.043-0.049-0.046-0.101-0.003-0.151c0.058-0.067,0.105-0.14,0.175-0.193c0.07-0.053,0.16-0.098,0.248-0.122
+                       c0.089-0.024,0.142,0.059,0.213,0.086c0.061,0.02,0.129,0.073,0.177,0.063c0.334-0.071,0.415,0.124,0.419,0.318
+                       c0.003,0.177,0.091,0.246,0.258,0.299c0.232,0.075,0.424,0.202,0.586,0.361c0.122,0.12,0.141,0.177,0.029,0.287
+                       c-0.124,0.118-0.177,0.257-0.248,0.395c-0.075,0.139-0.033,0.339-0.268,0.406c-0.004,0-0.004,0.027,0.002,0.038
+                       c0.005,0.011,0.027,0.023,0.035,0.021c0.046-0.008,0.096-0.017,0.134-0.039c0.206-0.114,0.406-0.228,0.608-0.346
+                       c0.119-0.069,0.23-0.08,0.363-0.014c0.113,0.058,0.216,0.122,0.309,0.2c0.213,0.181,0.23,0.22,0.007,0.397
+                       c-0.172,0.136-0.207,0.344-0.394,0.466c-0.017,0.011-0.008,0.051-0.01,0.078c-0.011,0.08,0.062,0.144,0.142,0.124
+                       c0.047-0.011,0.09-0.029,0.135-0.045c0.118-0.039,0.228-0.121,0.368-0.05c0.194,0.102,0.39,0.204,0.491,0.388
+                       c0.014,0.027-0.01,0.083-0.037,0.108c-0.091,0.079-0.187,0.154-0.286,0.225c-0.142,0.097-0.184,0.22-0.153,0.369
+                       c0.014,0.066,0.004,0.137,0.024,0.204c0.06,0.225,0.15,0.447,0.024,0.681c-0.03,0.055,0.005,0.135,0.014,0.204
+                       c0.017,0.114,0.086,0.167,0.223,0.18c0.415,0.038,0.532,0.089,0.822,0.362c-0.033,0.114-0.143,0.182-0.229,0.262
+                       c-0.096,0.088-0.165,0.172-0.055,0.288c0.033,0.036,0.011,0.08-0.022,0.114c-0.052,0.051-0.125,0.092-0.101,0.175
+                       c0.041,0.142-0.228,0.306-0.011,0.408c0.154,0.073,0.255-0.133,0.394-0.198c0.134-0.064,0.223-0.08,0.352,0
+                       c0.104,0.067,0.203,0.131,0.282,0.222c0.153,0.171,0.167,0.175-0.011,0.344c-0.094,0.087-0.135,0.177-0.168,0.289
+                       c-0.047,0.159-0.108,0.363-0.086,0.477c0.009,0.059,0,0.11-0.053,0.151c-0.101,0.078-0.055,0.153,0.007,0.22
+                       c0.142,0.143,0.192,0.275,0.008,0.428c-0.079,0.067-0.096,0.171-0.06,0.273c0.023,0.064,0.027,0.135,0.04,0.202
+                       c0.029,0.18-0.02,0.326-0.232,0.411c-0.057,0.021-0.097,0.071-0.136,0.102c-0.029,0.131,0.153,0.089,0.175,0.182
+                       c0.022,0.083,0.126,0.12,0.196,0.177c0.105,0.087,0.118,0.202-0.004,0.289c-0.201,0.144-0.175,0.338-0.206,0.518
+                       c-0.009,0.052,0.031,0.116-0.031,0.152c-0.165,0.091-0.237,0.214-0.239,0.379c0,0.071-0.093,0.04-0.158,0.042
+                       c-0.179,0.002-0.215,0.02-0.224,0.149c-0.015,0.208-0.07,0.404-0.211,0.581c-0.026,0.033-0.022,0.085,0.026,0.112
+                       c0.048,0.029,0.093,0.011,0.127-0.024c0.115-0.122,0.255-0.214,0.445-0.232c0.091-0.006,0.152-0.044,0.194-0.106
+                       c0.054-0.08,0.136-0.115,0.236-0.133c0.132-0.027,0.22-0.093,0.323-0.169c0.204-0.151,0.448-0.264,0.677-0.389
+                       c0.018-0.011,0.079,0,0.086,0.012c0.081,0.159,0.312,0.173,0.419,0.322c0.133,0.184,0.179,0.266,0.057,0.432
+                       c-0.026,0.035-0.07,0.059-0.101,0.091c-0.132,0.14-0.201,0.297-0.081,0.455c0.101,0.13-0.015,0.204-0.055,0.297
+                       c-0.003,0-0.003,0-0.005-0.002c0,0.002-0.003,0.002-0.003,0.004c-0.111-0.002-0.224-0.008-0.334-0.002
+                       c-0.083,0.006-0.153,0.049-0.184,0.12c-0.009,0.022,0,0.053,0.007,0.078c0.006,0.012,0.03,0.027,0.037,0.024
+                       c0.167-0.057,0.391-0.031,0.475-0.22h0.008v-0.002c0.287,0.067,0.38,0.279,0.498,0.473c0.033,0.053,0.009,0.109-0.031,0.155
+                       c-0.037,0.045-0.075,0.091-0.116,0.134c-0.16,0.157-0.227,0.312-0.098,0.524c0.091,0.141,0.037,0.228-0.167,0.279
+                       c-0.342,0.082-0.573,0.255-0.727,0.513c-0.103,0.173-0.182,0.339-0.094,0.546c0.081,0.194-0.023,0.379-0.158,0.542
+                       c-0.064,0.078-0.152,0.141-0.224,0.217c-0.074,0.076-0.143,0.136-0.282,0.134c-0.156-0.003-0.024,0.184-0.161,0.215
+                       c-0.057,0.014-0.183,0.011-0.154,0.055c0.101,0.16-0.01,0.291-0.039,0.435c-0.016,0.087,0.065,0.163,0.171,0.167
+                       c0.132,0.004,0.262-0.007,0.363-0.093c0.129-0.109,0.254-0.22,0.467-0.151c0.009,0.004,0.038-0.002,0.042-0.011
+                       c0.223-0.272,0.691-0.236,0.909-0.517c0.017-0.024,0.087-0.036,0.132-0.032c0.137,0.012,0.005,0.213,0.18,0.199
+                       c0.105-0.012,0.198-0.028,0.235,0.082c0.004,0.013,0.009,0.025,0.014,0.039c0.034,0.112,0.256,0.104,0.225,0.246
+                       c-0.024,0.102-0.158,0.131-0.237,0.2c-0.055,0.045-0.048,0.089-0.033,0.149c0.042,0.16,0.148,0.309,0.119,0.479
+                       c-0.299,0.173-0.301,0.173-0.61,0.189c-0.086,0.004-0.16,0.024-0.208,0.087c-0.064,0.084-0.165,0.131-0.255,0.188
+                       c-0.043,0.027-0.043,0.08-0.007,0.108c0.031,0.024,0.095,0.052,0.123,0.04c0.117-0.046,0.235-0.1,0.34-0.164
+                       c0.101-0.065,0.184-0.112,0.299-0.018c0.062,0.049,0.114,0.004,0.167-0.031c0.182-0.116,0.369-0.229,0.55-0.345
+                       c0.077-0.048,0.143-0.046,0.22,0.007c0.167,0.118,0.338,0.233,0.555,0.284c0.079,0.018,0.101,0.091,0.071,0.134
+                       c-0.156,0.228-0.141,0.461-0.093,0.709c0.028,0.142-0.06,0.227-0.257,0.279c-0.143,0.04-0.217,0.107-0.209,0.24
+                       c0.011,0.295-0.164,0.554-0.263,0.825c-0.015,0.038-0.046,0.083-0.084,0.096c-0.235,0.096-0.353,0.283-0.505,0.442
+                       c-0.079,0.082-0.158,0.133-0.292,0.084c-0.066-0.024-0.141,0.007-0.167,0.056c-0.092,0.171-0.273,0.175-0.45,0.194
+                       c-0.079,0.01-0.16,0.023-0.239,0.034c-0.127,0.018-0.197,0.073-0.228,0.184c-0.029,0.109-0.064,0.176-0.117,0.218
+                       c0.419,0.171,0.843,0.344,1.275,0.519c0.091-0.029,0.176-0.066,0.248-0.139c0.044-0.045,0.112-0.052,0.18-0.045
+                       c0.152,0.019,0.251-0.045,0.327-0.142c0.05-0.065,0.123-0.091,0.21-0.082c0.124,0.011,0.158-0.065,0.217-0.134
+                       c0.098-0.11,0.139-0.102,0.237,0.031c0.024,0.032,0.029,0.089,0.086,0.081c0.362-0.049,0.483,0.161,0.597,0.381
+                       c0.015,0.024,0.024,0.051,0.039,0.078c0.064,0.133,0.071,0.147-0.098,0.22c-0.127,0.055-0.174,0.106-0.12,0.224
+                       c0.05,0.112,0.08,0.23,0.122,0.36c0.432,0.175,0.875,0.355,1.321,0.534c0.097-0.11,0.04-0.22-0.006-0.328
+                       c-0.11-0.253-0.134-0.473,0.18-0.657c0.141-0.084,0.242-0.23,0.332-0.363c0.323-0.464,0.261-0.622-0.323-0.859
+                       c-0.064-0.029-0.143-0.031-0.207-0.059c-0.281-0.122-0.318-0.262-0.144-0.533c0.05-0.08,0.132-0.143,0.191-0.21
+                       c-0.04-0.253-0.32-0.255-0.492-0.338c-0.366-0.169-0.72-0.308-0.698-0.741c0.007-0.106-0.094-0.244-0.196-0.322
+                       c-0.254-0.198-0.234-0.41-0.194-0.679c0.077-0.497,0.044-0.507,0.66-0.462c0.134,0.012,0.211-0.004,0.222-0.129
+                       c0.096-0.982,0.476-1.528,1.53-1.911c0.402-0.147,0.605-0.3,0.649-0.646c0.016-0.155,0.055-0.308,0.099-0.459
+                       c0.068-0.222,0.204-0.26,0.496-0.202c0.395,0.078,0.729,0.313,1.152,0.304c0.062,0,0.146-0.045,0.184-0.09
+                       c0.033-0.042,0.05-0.15,0.021-0.167c-0.391-0.251-0.466-0.537-0.194-0.892c0.106-0.136,0.112-0.297-0.007-0.44
+                       c-0.208-0.244-0.208-0.528-0.224-0.807c-0.004-0.118-0.013-0.291,0.071-0.354c0.548-0.42,0.483-0.98,0.565-1.516
+                       c0.031-0.212,0.124-0.417,0.291-0.597c0.273-0.29,0.401-0.326,0.93-0.153c0.204,0.067,0.359,0.1,0.419-0.124
+                       c0.053-0.195,0.229-0.312,0.384-0.444c0.077-0.064,0.167-0.157,0.259-0.161c0.447-0.02,0.87,0.092,1.293,0.198
+                       c0.221,0.053,0.413,0.139,0.476,0.348c0.009,0.031,0.024,0.059,0.036,0.088c0.065,0.158,0.196,0.156,0.354,0.112
+                       c0.296-0.085,0.493,0.031,0.646,0.238c0.16,0.215,0.327,0.426,0.148,0.689c-0.055,0.08-0.134,0.151-0.177,0.236
+                       c-0.126,0.257,0.03,0.51,0.347,0.572c0.072,0.015,0.146,0.024,0.221,0.019c0.182-0.009,0.365-0.029,0.597-0.046
+                       c0.134,0.304,0.232,0.636,0.419,0.929c0.248,0.391,0.224,0.708-0.177,1.001c-0.108,0.081-0.237,0.16-0.229,0.297
+                       c0.003,0.047,0.084,0.129,0.124,0.126c0.141-0.006,0.329-0.002,0.417-0.075c0.448-0.37,0.865-0.137,1.284-0.049
+                       c0.06,0.349-0.359,0.442-0.373,0.697c0.06,0.112,0.174,0.096,0.279,0.112c0.557,0.073,0.624,0.166,0.279,0.466
+                       c-0.295,0.257-0.464,0.561-0.611,0.878c-0.07,0.151-0.01,0.308,0.224,0.358c0.206,0.041,0.344,0.131,0.239,0.324
+                       c-0.097,0.177-0.163,0.351-0.062,0.536c0.181,0.344,0.196,0.717,0.215,1.098c0.485,0,0.92,0.116,1.324-0.121
+                       c0.083-0.05,0.206-0.028,0.302,0.044c0.391,0.289,0.483,0.584,0.33,1.001c-0.199,0.546-0.564,0.999-1.108,1.416
+                       c0.471,0.126,0.71,0.438,0.909,0.835c0.177-0.157,0.263-0.257,0.376-0.326c0.081-0.049,0.196-0.065,0.299-0.085
+                       c0.029-0.006,0.068,0.02,0.102,0.034c1.389,0.557,1.249,0.601,0.252,1.435c-0.362,0.305-0.805,0.622-1.365,0.733
+                       c-0.086,0.018-0.18,0.122-0.122,0.224c0.025,0.049,0.122,0.116,0.161,0.107c0.574-0.125,0.78,0.259,1.038,0.541
+                       c0.204,0.218,0.306,0.511,0.536,0.699c0.347,0.287,0.263,0.544,0.068,0.837c-0.23,0.346-0.586,0.63-0.728,1.021
+                       c0.55,0.32,1.268,0.264,1.82,0.588c0.159,0.095,0.349-0.054,0.528-0.069c0.258-0.024,0.432,0.131,0.395,0.338
+                       c-0.02,0.09-0.022,0.2-0.083,0.266c-0.294,0.313-0.546,0.7-0.93,0.902c-0.404,0.212-0.624,0.52-0.889,0.832
+                       c0.103,0.04,0.206,0.083,0.31,0.122c0.125-0.065,0.239-0.136,0.364-0.188c0.186-0.083,0.364-0.056,0.509,0.057
+                       c0.022,0.016,0.039,0.033,0.057,0.051c0.228-0.12,0.349-0.273,0.38-0.531c0.02-0.155,0.055-0.308,0.101-0.459
+                       c0.068-0.222,0.204-0.258,0.498-0.202c0.394,0.078,0.727,0.312,1.15,0.306c0.064-0.002,0.148-0.047,0.184-0.09
+                       c0.033-0.045,0.05-0.152,0.021-0.169c-0.391-0.252-0.466-0.537-0.193-0.89c0.105-0.138,0.115-0.3-0.007-0.442
+                       c-0.206-0.244-0.206-0.528-0.223-0.805c-0.007-0.12-0.014-0.291,0.07-0.356c0.548-0.416,0.485-0.98,0.564-1.516
+                       c0.034-0.212,0.125-0.416,0.294-0.597c0.27-0.29,0.4-0.326,0.93-0.151c0.2,0.067,0.356,0.098,0.417-0.123
+                       c0.053-0.199,0.229-0.317,0.387-0.447c0.077-0.064,0.167-0.157,0.256-0.161c0.446-0.02,0.87,0.096,1.293,0.198
+                       c0.22,0.055,0.413,0.139,0.476,0.35c0.009,0.029,0.024,0.057,0.035,0.086c0.064,0.16,0.196,0.155,0.353,0.112
+                       c0.3-0.082,0.493,0.033,0.645,0.239c0.16,0.216,0.331,0.424,0.149,0.688c-0.055,0.081-0.134,0.151-0.177,0.238
+                       c-0.126,0.257,0.029,0.508,0.347,0.572c0.072,0.013,0.149,0.022,0.22,0.02c0.182-0.012,0.366-0.03,0.599-0.049
+                       c0.134,0.303,0.231,0.636,0.418,0.931c0.25,0.389,0.225,0.707-0.174,0.998c-0.11,0.08-0.239,0.16-0.232,0.297
+                       c0.002,0.047,0.083,0.129,0.125,0.127c0.143-0.007,0.33-0.002,0.415-0.074c0.45-0.37,0.869-0.139,1.287-0.051
+                       c0.057,0.35-0.359,0.442-0.377,0.699c0.061,0.109,0.175,0.093,0.283,0.109c0.117,0.016,0.208,0.033,0.282,0.051
+                       c-0.047-0.142-0.042-0.269,0.132-0.375c0.091-0.055,0.156-0.151,0.213-0.238c0.206-0.306,0.166-0.411-0.205-0.565
+                       c-0.041-0.018-0.091-0.02-0.132-0.038c-0.177-0.08-0.204-0.173-0.091-0.351c0.032-0.051,0.083-0.096,0.122-0.138
+                       c-0.026-0.166-0.204-0.169-0.313-0.219c-0.234-0.114-0.459-0.205-0.444-0.486c0.003-0.071-0.06-0.161-0.125-0.213
+                       c-0.163-0.129-0.15-0.268-0.123-0.444c0.049-0.328,0.027-0.332,0.42-0.302c0.084,0.005,0.132-0.004,0.141-0.086
+                       c0.061-0.644,0.304-1.002,0.974-1.252c0.255-0.097,0.385-0.198,0.411-0.426c0.013-0.1,0.035-0.202,0.064-0.3
+                       c0.044-0.144,0.129-0.169,0.316-0.131c0.252,0.049,0.465,0.204,0.732,0.2c0.04-0.002,0.093-0.031,0.117-0.059
+                       c0.022-0.029,0.033-0.1,0.014-0.112c-0.251-0.164-0.295-0.351-0.123-0.584c0.066-0.09,0.074-0.194-0.003-0.288
+                       c-0.132-0.161-0.134-0.346-0.143-0.53c-0.006-0.079-0.008-0.191,0.045-0.234c0.349-0.273,0.309-0.642,0.359-0.992
+                       c0.021-0.139,0.078-0.275,0.187-0.393c0.172-0.19,0.253-0.212,0.591-0.099c0.129,0.044,0.227,0.066,0.264-0.081
+                       c0.034-0.129,0.146-0.206,0.247-0.293c0.048-0.039,0.108-0.102,0.163-0.104c0.284-0.015,0.555,0.061,0.825,0.13
+                       c0.139,0.035,0.26,0.09,0.301,0.228c0.004,0.02,0.014,0.037,0.024,0.057c0.04,0.104,0.123,0.102,0.224,0.073
+                       c0.189-0.055,0.314,0.02,0.412,0.155c0.102,0.142,0.207,0.279,0.093,0.454c-0.033,0.05-0.086,0.099-0.112,0.155
+                       c-0.081,0.169,0.016,0.332,0.22,0.375c0.046,0.008,0.094,0.015,0.141,0.014c0.115-0.007,0.232-0.021,0.381-0.034
+                       c0.086,0.2,0.148,0.42,0.264,0.613c0.158,0.255,0.144,0.464-0.112,0.654c-0.068,0.053-0.151,0.104-0.145,0.195
+                       c0.002,0.029,0.053,0.085,0.079,0.082c0.09-0.004,0.21,0,0.265-0.049c0.284-0.241,0.549-0.089,0.817-0.031
+                       c0.037,0.228-0.23,0.289-0.239,0.457c0.038,0.071,0.11,0.063,0.18,0.071c0.353,0.049,0.397,0.112,0.177,0.307
+                       c-0.189,0.168-0.295,0.368-0.388,0.577c-0.045,0.1-0.009,0.202,0.141,0.235c0.129,0.027,0.221,0.085,0.153,0.211
+                       c-0.064,0.115-0.105,0.23-0.04,0.353c0.117,0.224,0.124,0.468,0.136,0.721c0.31,0,0.586,0.073,0.843-0.083
+                       c0.053-0.031,0.132-0.017,0.191,0.03c0.249,0.19,0.307,0.383,0.211,0.656c-0.126,0.36-0.36,0.655-0.705,0.929
+                       c0.299,0.083,0.452,0.287,0.579,0.547c0.111-0.102,0.167-0.169,0.239-0.213c0.049-0.033,0.123-0.042,0.189-0.055
+                       c0.018-0.004,0.042,0.013,0.064,0.022c0.885,0.363,0.794,0.392,0.162,0.941c-0.232,0.2-0.514,0.408-0.871,0.479
+                       c-0.055,0.013-0.112,0.08-0.075,0.149c0.016,0.031,0.075,0.075,0.103,0.069c0.363-0.083,0.494,0.171,0.659,0.355
+                       c0.129,0.144,0.193,0.335,0.34,0.46c0.081,0.068,0.126,0.135,0.143,0.201c0.081-0.088,0.208-0.099,0.419-0.059
+                       c0.394,0.078,0.729,0.313,1.15,0.306c0.064-0.002,0.148-0.046,0.184-0.092c0.033-0.042,0.049-0.149,0.021-0.167
+                       c-0.393-0.251-0.467-0.537-0.194-0.892c0.105-0.135,0.115-0.297-0.005-0.439c-0.208-0.244-0.208-0.529-0.224-0.808
+                       c-0.008-0.118-0.015-0.291,0.071-0.353c0.548-0.42,0.483-0.981,0.562-1.516c0.034-0.213,0.127-0.417,0.294-0.597
+                       c0.273-0.291,0.399-0.326,0.93-0.154c0.201,0.069,0.356,0.1,0.417-0.124c0.052-0.194,0.229-0.312,0.387-0.443
+                       c0.077-0.065,0.167-0.158,0.256-0.163c0.446-0.02,0.87,0.093,1.293,0.198c0.22,0.053,0.413,0.14,0.476,0.348
+                       c0.009,0.031,0.024,0.059,0.036,0.089c0.064,0.159,0.197,0.155,0.356,0.11c0.296-0.084,0.491,0.032,0.643,0.238
+                       c0.162,0.215,0.331,0.426,0.149,0.69c-0.055,0.079-0.134,0.151-0.175,0.235c-0.129,0.257,0.026,0.51,0.344,0.572
+                       c0.072,0.016,0.149,0.024,0.221,0.02c0.181-0.01,0.365-0.029,0.6-0.047c0.029,0.069,0.057,0.14,0.086,0.21
+                       c0.081-0.035,0.182-0.029,0.314,0.012c0.136,0.042,0.239,0.184,0.406,0.131c0.074-0.078,0.036-0.155,0.005-0.23
+                       c-0.062-0.165-0.077-0.311,0.105-0.43c0.083-0.056,0.141-0.152,0.193-0.238c0.189-0.306,0.153-0.408-0.186-0.564
+                       c-0.038-0.018-0.083-0.022-0.122-0.039c-0.162-0.081-0.186-0.171-0.083-0.348c0.029-0.054,0.077-0.096,0.112-0.138
+                       c-0.024-0.167-0.187-0.169-0.287-0.222c-0.215-0.11-0.419-0.202-0.406-0.486c0.002-0.07-0.055-0.159-0.115-0.21
+                       c-0.149-0.131-0.137-0.271-0.113-0.446c0.046-0.326,0.026-0.33,0.386-0.302c0.077,0.006,0.121-0.004,0.129-0.087
+                       c0.055-0.644,0.277-1.001,0.889-1.251c0.235-0.096,0.354-0.198,0.378-0.424c0.009-0.102,0.031-0.202,0.057-0.302
+                       c0.041-0.144,0.12-0.169,0.29-0.131c0.23,0.049,0.426,0.204,0.669,0.199c0.039,0,0.086-0.031,0.108-0.059
+                       c0.022-0.029,0.029-0.098,0.013-0.11c-0.228-0.165-0.271-0.351-0.113-0.583c0.063-0.089,0.068-0.196-0.002-0.289
+                       c-0.121-0.16-0.121-0.346-0.132-0.529c-0.002-0.08-0.007-0.19,0.041-0.233c0.32-0.275,0.282-0.644,0.33-0.994
+                       c0.017-0.14,0.072-0.273,0.169-0.391c0.159-0.19,0.232-0.216,0.541-0.1c0.117,0.045,0.207,0.065,0.244-0.082
+                       c0.031-0.129,0.134-0.206,0.224-0.29c0.046-0.042,0.096-0.105,0.149-0.107c0.26-0.013,0.507,0.063,0.753,0.129
+                       c0.129,0.036,0.242,0.091,0.277,0.228c0.005,0.02,0.015,0.04,0.022,0.058c0.039,0.104,0.115,0.102,0.206,0.073
+                       c0.174-0.054,0.286,0.021,0.375,0.157c0.095,0.139,0.191,0.277,0.086,0.45c-0.031,0.054-0.077,0.1-0.101,0.156
+                       c-0.077,0.168,0.015,0.332,0.2,0.374c0.041,0.01,0.087,0.016,0.127,0.014c0.109-0.006,0.213-0.018,0.349-0.031
+                       c0.077,0.2,0.134,0.417,0.245,0.611c0.143,0.255,0.128,0.463-0.103,0.654c-0.065,0.053-0.139,0.106-0.134,0.195
+                       c0,0.031,0.047,0.084,0.071,0.084c0.083-0.004,0.192-0.002,0.243-0.049c0.26-0.244,0.504-0.09,0.747-0.033
+                       c0.034,0.228-0.208,0.29-0.217,0.457c0.037,0.073,0.103,0.062,0.165,0.073c0.324,0.049,0.362,0.108,0.16,0.307
+                       c-0.172,0.166-0.27,0.367-0.356,0.575c-0.04,0.1-0.005,0.202,0.132,0.235c0.12,0.027,0.201,0.087,0.139,0.212
+                       c-0.057,0.116-0.095,0.229-0.036,0.351c0.105,0.225,0.115,0.471,0.127,0.721c0.281,0,0.536,0.076,0.769-0.08
+                       c0.048-0.033,0.12-0.017,0.175,0.03c0.227,0.188,0.282,0.381,0.193,0.654c-0.117,0.36-0.329,0.654-0.645,0.93
+                       c0.275,0.084,0.413,0.286,0.529,0.545c0.016-0.015,0.027-0.027,0.04-0.041c-0.033-0.114-0.069-0.224-0.093-0.34
+                       c-0.02-0.082,0-0.167,0.081-0.22c0.086-0.059,0.169-0.022,0.253,0.022c0.388,0.198,0.493,0.165,0.56-0.228
+                       c0.036-0.204,0.189-0.322,0.327-0.455c0.085-0.078,0.208-0.089,0.331-0.061c0.132,0.031,0.263,0.067,0.391,0.098
+                       c0.024-0.051,0.052-0.088,0.055-0.124c0.013-0.438,0.127-0.499,0.574-0.318c0.169,0.069,0.338,0.147,0.512,0.202
+                       c0.09,0.029,0.189-0.006,0.248-0.078c0.058-0.071,0.062-0.161,0.013-0.23c-0.051-0.067-0.132-0.163-0.197-0.163
+                       c-0.262,0.005-0.279-0.314-0.59-0.277c-0.316,0.038-0.497-0.267-0.775-0.366c-0.031-0.011-0.045-0.12-0.021-0.168
+                       c0.09-0.187,0.023-0.344-0.158-0.415c-0.312-0.122-0.412-0.369-0.584-0.583c-0.163-0.202-0.151-0.369-0.044-0.569
+                       c0.083-0.154,0.127-0.175,0.299-0.055c0.074,0.052,0.129,0.142,0.225,0.081c0.141-0.093,0.261,0.064,0.413-0.007
+                       c-0.117-0.215-0.387-0.355-0.402-0.626c-0.009-0.192,0.044-0.291,0.261-0.246c0.272,0.056,0.428,0.032,0.538-0.228
+                       c0.096-0.226,0.256-0.249,0.514-0.175c0.151,0.042,0.263,0.187,0.445,0.131c0.081-0.078,0.038-0.155,0.007-0.228
+                       c-0.069-0.167-0.084-0.31,0.116-0.432c0.09-0.053,0.152-0.152,0.209-0.238c0.206-0.304,0.166-0.408-0.203-0.563
+                       c-0.043-0.018-0.093-0.02-0.134-0.04c-0.177-0.08-0.204-0.171-0.092-0.348c0.032-0.053,0.085-0.096,0.123-0.138
+                       c-0.027-0.166-0.203-0.168-0.314-0.221c-0.234-0.112-0.457-0.203-0.444-0.486c0.005-0.069-0.061-0.16-0.125-0.211
+                       c-0.16-0.131-0.151-0.271-0.125-0.446c0.05-0.326,0.03-0.33,0.421-0.302c0.083,0.007,0.134-0.004,0.141-0.084
+                       c0.061-0.646,0.304-1.004,0.974-1.254c0.255-0.096,0.384-0.198,0.411-0.424c0.013-0.102,0.036-0.202,0.064-0.302
+                       c0.043-0.144,0.129-0.169,0.316-0.131c0.251,0.051,0.465,0.206,0.735,0.2c0.038,0,0.09-0.029,0.114-0.059
+                       c0.024-0.03,0.033-0.099,0.015-0.109c-0.25-0.164-0.297-0.353-0.123-0.586c0.068-0.088,0.072-0.194-0.004-0.288
+                       c-0.132-0.159-0.132-0.346-0.143-0.528c-0.003-0.079-0.008-0.191,0.045-0.234c0.349-0.273,0.309-0.644,0.359-0.994
+                       c0.021-0.139,0.079-0.273,0.187-0.391c0.172-0.19,0.255-0.215,0.59-0.099c0.128,0.044,0.229,0.064,0.264-0.083
+                       c0.034-0.129,0.149-0.206,0.247-0.291c0.05-0.041,0.106-0.104,0.163-0.106c0.285-0.014,0.554,0.062,0.825,0.129
+                       c0.139,0.035,0.262,0.091,0.301,0.232c0.007,0.017,0.016,0.037,0.024,0.057c0.04,0.102,0.124,0.102,0.224,0.071
+                       c0.189-0.053,0.313,0.022,0.412,0.157c0.102,0.14,0.207,0.278,0.092,0.45c-0.033,0.053-0.083,0.1-0.112,0.155
+                       c-0.081,0.169,0.02,0.336,0.22,0.378c0.046,0.009,0.093,0.014,0.141,0.011c0.116-0.006,0.232-0.017,0.381-0.031
+                       c0.083,0.2,0.148,0.42,0.264,0.61c0.158,0.258,0.144,0.464-0.112,0.657c-0.069,0.051-0.151,0.104-0.143,0.195
+                       c0,0.029,0.05,0.084,0.077,0.082c0.091-0.004,0.211-0.002,0.266-0.049c0.284-0.241,0.552-0.091,0.817-0.033
+                       c0.037,0.228-0.227,0.29-0.239,0.457c0.039,0.073,0.113,0.063,0.18,0.073c0.354,0.049,0.397,0.109,0.177,0.306
+                       c-0.189,0.169-0.294,0.369-0.388,0.576c-0.046,0.1-0.007,0.204,0.141,0.235c0.132,0.029,0.22,0.087,0.153,0.213
+                       c-0.062,0.115-0.105,0.228-0.041,0.351c0.118,0.226,0.125,0.471,0.139,0.721c0.308,0,0.583,0.075,0.841-0.08
+                       c0.052-0.034,0.132-0.018,0.191,0.029c0.248,0.19,0.307,0.383,0.211,0.656c-0.127,0.357-0.358,0.655-0.705,0.927
+                       c0.301,0.085,0.452,0.289,0.578,0.549c0.113-0.105,0.168-0.169,0.24-0.213c0.051-0.033,0.124-0.042,0.188-0.057
+                       c0.02-0.004,0.046,0.015,0.068,0.022c0.885,0.365,0.794,0.395,0.16,0.943c-0.232,0.196-0.514,0.406-0.871,0.479
+                       c-0.055,0.011-0.112,0.08-0.075,0.147c0.016,0.033,0.075,0.078,0.105,0.07c0.363-0.082,0.492,0.171,0.657,0.356
+                       c0.129,0.141,0.193,0.335,0.34,0.457c0.222,0.189,0.167,0.358,0.045,0.549c-0.148,0.228-0.374,0.412-0.464,0.669
+                       c0.349,0.209,0.806,0.173,1.157,0.387c0.103,0.062,0.223-0.036,0.335-0.047c0.165-0.015,0.277,0.087,0.251,0.222
+                       c-0.009,0.059-0.011,0.131-0.052,0.175c-0.187,0.204-0.347,0.457-0.591,0.591c-0.336,0.184-0.473,0.477-0.738,0.734
+                       c0.27-0.006,0.42-0.151,0.602-0.233c0.119-0.053,0.23-0.035,0.323,0.038c0.108,0.086,0.18,0.184,0.118,0.324
+                       c-0.19,0.434-0.546,0.723-1.043,0.878c-0.142,0.045-0.252,0.11-0.331,0.211c-0.083,0.11-0.079,0.235,0.015,0.343
+                       c0.093,0.112,0.227,0.156,0.371,0.096c0.169-0.069,0.323-0.169,0.49-0.242c0.036-0.015,0.068-0.017,0.101-0.027
+                       c-0.07-0.133-0.103-0.279-0.197-0.401c-0.033-0.045,0.046-0.2,0.122-0.244c0.292-0.173,0.481-0.432,0.801-0.593
+                       c0.235-0.117,0.318-0.153,0.554-0.008c0.352,0.218,0.756,0.391,1.165,0.521c0.193,0.062,0.309,0.19,0.502,0.262
+                       c0.136-0.264,0.21-0.507,0.014-0.788c-0.108-0.155-0.09-0.369-0.145-0.55c-0.066-0.224-0.206-0.395-0.511-0.397
+                       c-0.199,0-0.301-0.109-0.402-0.224c-0.347-0.405-0.711-0.786-1.231-1.049c-0.357-0.181-0.536-0.464-0.524-0.837
+                       c0.01-0.401-0.04-0.801-0.237-1.18c-0.187-0.362-0.007-0.694,0.182-1.05c-0.234-0.153-0.404-0.366-0.586-0.575
+                       c-0.323-0.377-0.336-0.444-0.002-0.752c0.369-0.338,0.574-0.376,1.115-0.199c0.077,0.025,0.143,0.079,0.222,0.091
+                       c0.122,0.018,0.213-0.044,0.272-0.131c0.057-0.088,0.065-0.173-0.04-0.249c-0.349-0.251-0.342-0.255-0.54-0.784
+                       c-0.024-0.062-0.098-0.11-0.156-0.159c-0.112-0.098-0.158-0.193-0.031-0.304c0.097-0.085,0.191-0.173,0.288-0.258
+                       c0.493-0.412,0.638-0.449,1.215-0.123c0.505,0.29,1.073,0.497,1.521,0.867c0.248,0.207,0.626,0.278,0.858,0.535
+                       c0.105,0.115,0.312,0.015,0.483-0.063c-0.285-0.306-0.687-0.503-0.966-0.814c-0.108-0.118-0.192-0.216-0.208-0.358
+                       c-0.017-0.12-0.052-0.21-0.201-0.284c-0.251-0.122-0.281-0.404-0.172-0.548c0.169-0.224-0.05-0.478,0.163-0.674
+                       c0.079-0.073,0.031-0.181-0.033-0.264c-0.294-0.387-0.432-0.817-0.502-1.265c-0.036-0.224-0.125-0.408-0.347-0.544
+                       c-0.09-0.053-0.17-0.122-0.251-0.186c-0.395-0.313-0.412-0.364-0.173-0.792c0.05-0.087,0.144-0.169,0.039-0.246
+                       c-0.258-0.193-0.41-0.442-0.577-0.686c-0.079-0.115-0.32-0.153-0.31-0.31c0.011-0.214,0.27-0.287,0.427-0.413
+                       c0.118-0.096,0.292-0.137,0.436-0.21c0.196-0.104,0.2-0.151,0.064-0.342c-0.17-0.244-0.17-0.242,0.06-0.438
+                       c0.061-0.049,0.098-0.119,0.163-0.159c0.61-0.346,0.573-0.477,1.226-0.065c0.111,0.071,0.23,0.131,0.338,0.193
+                       c0.201-0.08,0.048-0.153,0.024-0.222c-0.039-0.113-0.108-0.224-0.11-0.337c-0.002-0.091,0.067-0.191-0.033-0.262
+                       c-0.263-0.193-0.177-0.364,0.02-0.542c0.113-0.102,0.22-0.208,0.329-0.314c0.143-0.144,0.318-0.183,0.527-0.123
+                       c0.105,0.032,0.217,0.052,0.328,0.071c0.145,0.028,0.317,0.207,0.428,0.033c0.081-0.125-0.094-0.259-0.206-0.361
+                       c-0.151-0.137-0.333-0.242-0.268-0.479c0.217-0.825-0.175-1.532-0.674-2.2c-0.136-0.184-0.109-0.302,0.042-0.432
+                       c0.096-0.085,0.189-0.191,0.309-0.23c0.217-0.075,0.305-0.211,0.308-0.384c0.013-0.493,0.456-0.666,0.873-0.856
+                       c0.101-0.047,0.234-0.047,0.32,0.018c0.234,0.17,0.545,0.084,0.798,0.182v0.002h0.003c0.09,0.226,0.411,0.226,0.564,0.393
+                       c0.009,0.013,0.108-0.012,0.134-0.04c0.031-0.029,0.051-0.096,0.031-0.126c-0.033-0.059-0.091-0.135-0.156-0.149
+                       c-0.187-0.04-0.382-0.053-0.573-0.078v-0.002h-0.003c0.074-0.32-0.025-0.602-0.248-0.861c-0.073-0.084-0.078-0.173-0.002-0.259
+                       c0.098-0.112,0.184-0.24,0.307-0.329c0.121-0.091,0.277-0.161,0.433-0.204c0.149-0.039,0.237,0.105,0.36,0.153
+                       c0.103,0.038,0.216,0.13,0.302,0.114c0.575-0.115,0.707,0.222,0.707,0.552c-0.002,0.302,0.151,0.422,0.433,0.519
+                       c0.397,0.136,0.722,0.355,0.994,0.633c0.206,0.208,0.239,0.308,0.041,0.492c-0.215,0.203-0.311,0.44-0.441,0.672
+                       c-0.13,0.238-0.067,0.584-0.471,0.69c-0.007,0.002-0.009,0.047,0,0.067c0.011,0.018,0.045,0.042,0.062,0.039
+                       c0.079-0.015,0.168-0.029,0.235-0.066c0.354-0.189,0.703-0.383,1.052-0.582c0.206-0.115,0.395-0.135,0.623-0.015
+                       c0.193,0.1,0.365,0.213,0.523,0.348c0.364,0.312,0.39,0.381,0,0.683c-0.296,0.229-0.367,0.584-0.689,0.79
+                       c-0.031,0.02-0.016,0.089-0.023,0.136c-0.017,0.135,0.105,0.249,0.24,0.215c0.081-0.017,0.158-0.047,0.237-0.073
+                       c0.204-0.064,0.395-0.204,0.632-0.078c0.332,0.175,0.662,0.357,0.832,0.676c0.024,0.044-0.02,0.141-0.068,0.184
+                       c-0.157,0.135-0.325,0.259-0.499,0.377c-0.244,0.166-0.32,0.375-0.275,0.631c0.024,0.117,0.007,0.237,0.036,0.352
+                       c0.095,0.389,0.246,0.773,0.022,1.173c-0.053,0.092,0,0.23,0.016,0.348c0.024,0.195,0.142,0.288,0.378,0.313
+                       c0.713,0.072,0.912,0.164,1.399,0.64c-0.059,0.193-0.252,0.306-0.401,0.444c-0.166,0.149-0.287,0.291-0.103,0.493
+                       c0.057,0.062,0.02,0.135-0.04,0.192c-0.094,0.087-0.214,0.158-0.175,0.301c0.064,0.243-0.404,0.52-0.036,0.699
+                       c0.265,0.131,0.445-0.222,0.684-0.33c0.23-0.105,0.382-0.132,0.603,0.008c0.178,0.115,0.344,0.23,0.477,0.387
+                       c0.258,0.296,0.28,0.304-0.033,0.592c-0.163,0.147-0.234,0.303-0.294,0.491c-0.086,0.271-0.193,0.623-0.165,0.817
+                       c0.017,0.102-0.003,0.19-0.094,0.257c-0.174,0.132-0.098,0.262,0.008,0.375c0.237,0.251,0.316,0.48-0.002,0.739
+                       c-0.139,0.11-0.17,0.291-0.11,0.466c0.036,0.113,0.045,0.23,0.062,0.348c0.046,0.308-0.041,0.558-0.411,0.699
+                       c-0.099,0.035-0.171,0.12-0.235,0.169c-0.052,0.226,0.259,0.157,0.294,0.318c0.031,0.143,0.213,0.208,0.329,0.308
+                       c0.18,0.153,0.193,0.351-0.017,0.497c-0.352,0.242-0.312,0.575-0.37,0.886c-0.017,0.086,0.047,0.202-0.057,0.257
+                       c-0.287,0.155-0.412,0.362-0.421,0.648c-0.002,0.12-0.165,0.067-0.27,0.069c-0.311,0-0.373,0.029-0.392,0.249
+                       c-0.033,0.359-0.132,0.695-0.38,0.994c-0.046,0.057-0.039,0.144,0.042,0.193c0.081,0.048,0.16,0.019,0.216-0.04
+                       c0.203-0.208,0.444-0.361,0.771-0.386c0.156-0.012,0.263-0.073,0.338-0.183c0.093-0.133,0.237-0.193,0.408-0.224
+                       c0.225-0.039,0.383-0.151,0.56-0.279c0.354-0.253,0.772-0.444,1.172-0.652c0.033-0.018,0.139,0,0.148,0.024
+                       c0.135,0.275,0.526,0.302,0.708,0.559c0.224,0.318,0.299,0.462,0.083,0.743c-0.044,0.059-0.119,0.1-0.173,0.156
+                       c-0.229,0.233-0.356,0.503-0.152,0.776c0.165,0.224-0.031,0.347-0.105,0.51c-0.002,0-0.005-0.002-0.009-0.002
+                       c0,0.002-0.002,0.004-0.002,0.006c-0.192-0.006-0.386-0.024-0.574-0.013c-0.146,0.008-0.265,0.08-0.318,0.202
+                       c-0.016,0.037-0.002,0.091,0.01,0.133c0.005,0.02,0.045,0.047,0.057,0.045c0.292-0.096,0.676-0.045,0.825-0.366h0.009
+                       c0-0.002,0.002-0.002,0.002-0.004c0.49,0.122,0.645,0.489,0.839,0.823c0.055,0.091,0.013,0.185-0.057,0.264
+                       c-0.064,0.075-0.129,0.155-0.203,0.226c-0.278,0.267-0.397,0.532-0.182,0.894c0.148,0.249,0.053,0.397-0.299,0.477
+                       c-0.586,0.133-0.99,0.428-1.262,0.868c-0.18,0.291-0.32,0.577-0.177,0.93c0.134,0.337-0.051,0.652-0.285,0.927
+                       c-0.115,0.133-0.268,0.241-0.395,0.369c-0.128,0.129-0.248,0.228-0.487,0.222c-0.268-0.006-0.045,0.318-0.282,0.367
+                       c-0.101,0.02-0.316,0.016-0.268,0.091c0.167,0.277-0.026,0.499-0.079,0.743c-0.031,0.151,0.105,0.281,0.284,0.289
+                       c0.23,0.011,0.454-0.005,0.629-0.149c0.224-0.185,0.442-0.373,0.801-0.251c0.022,0.008,0.066-0.003,0.079-0.016
+                       c0.389-0.461,1.193-0.393,1.57-0.87c0.034-0.042,0.153-0.057,0.228-0.049c0.237,0.022,0.005,0.366,0.306,0.342
+                       c0.18-0.016,0.338-0.042,0.397,0.147c0.007,0.024,0.017,0.047,0.024,0.069c0.055,0.188,0.437,0.184,0.378,0.426
+                       c-0.042,0.175-0.275,0.224-0.413,0.337c-0.094,0.078-0.083,0.155-0.059,0.255c0.067,0.276,0.244,0.533,0.191,0.825
+                       c-0.522,0.291-0.522,0.291-1.053,0.311c-0.147,0.007-0.277,0.038-0.363,0.144c-0.112,0.144-0.287,0.22-0.445,0.318
+                       c-0.071,0.045-0.074,0.135-0.011,0.186c0.053,0.042,0.16,0.089,0.211,0.071c0.13-0.049,0.258-0.106,0.382-0.168
+                       c0-0.069,0.05-0.13,0.151-0.172c0.102-0.041,0.205-0.057,0.303-0.047c0.083-0.013,0.167,0.007,0.263,0.087
+                       c0.021,0.018,0.042,0.027,0.064,0.031c0.064,0.016,0.108-0.017,0.153-0.086c0.038-0.055,0.11-0.061,0.181-0.067
+                       c0.008,0,0.013,0,0.019-0.002c0.272-0.167,0.553-0.335,0.828-0.501c0.103-0.065,0.199-0.073,0.296-0.029
+                       c-0.053-0.105-0.105-0.209-0.196-0.297c-0.055-0.053,0.007-0.169,0.088-0.175c0.242-0.027,0.483-0.04,0.724-0.061
+                       c0.294,0.147,0.476-0.057,0.741-0.137c-0.143-0.138-0.248-0.251-0.366-0.353c-0.163-0.147-0.339-0.24-0.595-0.158
+                       c-0.211,0.069-0.369,0.012-0.457-0.18c-0.088-0.185-0.27-0.308-0.461-0.41c-0.382-0.207-0.68-0.5-1.038-0.731
+                       c-0.033-0.022-0.059-0.075-0.057-0.11c0.005-0.073,0.083-0.085,0.151-0.1c0.128-0.032,0.327,0.053,0.382-0.069
+                       c0.073-0.171-0.195-0.173-0.277-0.275c-0.017-0.022-0.056-0.034-0.087-0.049c-0.152-0.067-0.38-0.144-0.349-0.287
+                       c0.046-0.19,0.32-0.161,0.488-0.149c0.287,0.024,0.536,0.01,0.78-0.133c0.078-0.045,0.2-0.033,0.293-0.049
+                       c0.085-0.106-0.059-0.124-0.076-0.189c-0.01-0.027-0.026-0.057-0.019-0.084c0.026-0.122,0.292-0.373,0.417-0.358
+                       c0.312,0.036,0.566-0.119,0.85-0.17c0.213-0.038,0.373-0.034,0.526,0.093c0.115,0.092,0.231,0.184,0.409,0.168
+                       c0.081-0.009,0.199,0.031,0.222-0.064c0.017-0.067-0.09-0.069-0.145-0.1c-0.153-0.085-0.112-0.24-0.182-0.355
+                       c-0.042-0.076,0.022-0.14,0.081-0.196c0.074-0.068,0.062-0.131-0.021-0.186c-0.041-0.027-0.077-0.062-0.118-0.087
+                       c-0.294-0.173-0.366-0.263-0.439-0.547c-0.028-0.109-0.112-0.178-0.23-0.227c-0.335-0.139-0.621-0.326-0.739-0.644
+                       c-0.029-0.08-0.104-0.11-0.174-0.153c-0.101-0.059-0.197-0.124-0.285-0.194c-0.088-0.069-0.105-0.147-0.016-0.232
+                       c0.059-0.053,0.117-0.112,0.158-0.173c0.141-0.204,0.284-0.406,0.299-0.652c0.007-0.129,0.066-0.138,0.191-0.045
+                       c0.024,0.02,0.042,0.061,0.067,0.062c0.081,0.007,0.065-0.048,0.056-0.086c-0.024-0.126,0.038-0.206,0.183-0.218
+                       c0.208-0.02,0.379-0.164,0.603-0.12c0.036,0.01,0.095-0.031,0.124-0.062c0.085-0.093,0.194-0.185,0.225-0.291
+                       c0.038-0.135,0.079-0.218,0.265-0.2c0.125,0.014,0.184-0.064,0.241-0.141c0.083-0.109,0.2-0.147,0.354-0.152
+                       c0.184-0.006,0.227-0.08,0.182-0.224c-0.052-0.161-0.198-0.224-0.366-0.284c-0.167-0.059-0.193-0.114-0.093-0.234
+                       c0.09-0.108,0.097-0.174-0.026-0.254c-0.151-0.101-0.28-0.232-0.443-0.311c-0.174-0.082-0.327-0.151-0.332-0.348
+                       c0-0.089-0.101-0.149-0.18-0.211c-0.101-0.08-0.198-0.164-0.292-0.253c-0.057-0.053-0.022-0.147,0.065-0.18
+                       c0.016-0.006,0.031-0.014,0.048-0.018c0.1-0.02,0.229-0.013,0.262-0.113c0.048-0.149,0.017-0.3-0.108-0.415
+                       c-0.117-0.109-0.256-0.2-0.378-0.304c-0.059-0.049,0-0.16,0.086-0.173c0.05-0.006,0.103-0.012,0.153-0.01
+                       c0.098,0.004,0.193,0.114,0.287,0.04c0.055-0.045,0.05-0.136,0.084-0.202c0.031-0.059,0.115-0.096,0.172-0.063
+                       c0.182,0.105,0.314,0.051,0.445-0.066c0.031-0.03,0.079-0.045,0.124-0.069c-0.22-0.187-0.22-0.187-0.217-0.448
+                       c0.006-0.251,0.008-0.26,0.316-0.279c0.108-0.005,0.195-0.025,0.29-0.073c0.234-0.126,0.48-0.173,0.71,0.027
+                       c0.126,0.108,0.293,0.064,0.446,0.051c0.065-0.006,0.103-0.114,0.046-0.142c-0.364-0.171-0.261-0.481-0.327-0.741
+                       c-0.022-0.082,0.031-0.144,0.095-0.195c0.112-0.093,0.074-0.208,0.008-0.284c-0.116-0.129-0.18-0.302-0.311-0.391
+                       c-0.208-0.142-0.287-0.253-0.184-0.477c0.038-0.08-0.086-0.21-0.122-0.322c-0.056-0.191-0.028-0.226,0.219-0.318
+                       c0.239-0.088,0.356-0.295,0.275-0.489c-0.029-0.068-0.07-0.135-0.094-0.206c-0.033-0.088,0.063-0.173,0.182-0.165
+                       c0.017,0.003,0.039,0,0.05,0.007c0.23,0.157,0.38-0.004,0.549-0.093c0.094-0.049,0.126-0.113,0.044-0.177
+                       c-0.108-0.089-0.126-0.204-0.17-0.315c-0.101-0.246-0.046-0.408,0.233-0.485c0.246-0.067,0.404-0.228,0.617-0.324
+                       c0.136-0.063,0.196-0.16,0.174-0.295c-0.011-0.071-0.007-0.147,0.006-0.216c0.028-0.149,0.126-0.202,0.3-0.151
+                       c0.132,0.038,0.256,0.084,0.405,0.063c0.09-0.016,0.186,0.017,0.21,0.095c0.04,0.13,0.148,0.183,0.265,0.251
+                       c0.134,0.079,0.215,0.199,0.426,0.149c0.108-0.023,0.184,0.071,0.192,0.171c0.016,0.236-0.017,0.469-0.094,0.693
+                       c-0.22,0.637-0.129,0.466,0.251,0.892c0.041,0.045,0.137,0.067,0.153,0.114c0.055,0.149,0.163,0.175,0.323,0.137
+                       c0.048-0.011,0.103-0.013,0.156-0.013c0.081-0.002,0.142,0.069,0.088,0.118c-0.126,0.115-0.2,0.235-0.147,0.396
+                       c0.009,0.036-0.017,0.091-0.048,0.12c-0.281,0.24-0.338,0.601-0.667,0.819c0.263,0.118,0.268,0.12,0.387-0.011
+                       c0.187-0.202,0.441-0.32,0.718-0.411c0.015-0.004,0.034,0.005,0.053,0.002c0.137-0.004,0.108-0.241,0.313-0.159
+                       c0.108,0.045,0.2,0.118,0.332,0.124c0.05,0.004,0.103,0.016,0.149,0.033c0.055,0.022,0.072,0.073,0.042,0.114
+                       c-0.042,0.062-0.109,0.11-0.161,0.169c-0.043,0.049-0.055,0.1-0.022,0.161c0.108,0.202,0.105,0.204-0.028,0.306
+                       c-0.144,0.109-0.285,0.213-0.378,0.362c-0.048,0.075-0.122,0.144-0.201,0.202c-0.09,0.064-0.224,0.098-0.299,0.173
+                       c-0.105,0.113-0.175,0.251-0.259,0.377c0.01,0.104,0.118,0.1,0.189,0.125c0.077,0.023,0.112,0.119,0.221,0.088
+                       c0.095-0.104-0.03-0.253,0.071-0.336c0.11-0.086,0.265-0.131,0.402-0.194c0.046-0.02,0.098-0.036,0.136-0.065
+                       c0.144-0.1,0.294-0.098,0.428,0c0.139,0.1,0.296,0.147,0.465,0.188c0.069,0.018,0.115,0.093,0.06,0.144
+                       c-0.235,0.216-0.349,0.503-0.605,0.711c-0.125,0.102-0.275,0.175-0.401,0.275c0.043,0.131,0.213,0.2,0.204,0.351
+                       c-0.01,0.124,0.138,0.156,0.227,0.222c0.108,0.08,0.122,0.153,0.024,0.224c-0.136,0.1-0.253,0.193-0.235,0.366
+                       c0.013,0.096-0.074,0.155-0.167,0.206c-0.206,0.114-0.4,0.24-0.607,0.344c-0.118,0.057-0.175,0.139-0.225,0.236l0.007,0.005
+                       c0.219-0.039,0.452-0.007,0.646-0.139c0.083-0.057,0.203-0.073,0.295-0.029c0.158,0.075,0.261,0.004,0.373-0.065
+                       c0.07-0.045,0.142-0.088,0.221-0.118c0.16-0.059,0.336,0.014,0.334,0.163c-0.002,0.142,0.019,0.177,0.184,0.14
+                       c0.086-0.02,0.156-0.049,0.23-0.089c0.117-0.064,0.196-0.033,0.227,0.073c0.022,0.071,0.029,0.144,0.048,0.216
+                       c0.024,0.093,0.174,0.184,0.062,0.277c-0.115,0.1-0.207,0.246-0.411,0.242c-0.09-0.002-0.177,0.006-0.244,0.059
+                       c-0.125,0.098-0.225,0.226-0.366,0.302c-0.143,0.073-0.34,0.065-0.445,0.204l0.002,0.003c0.108-0.016,0.206-0.007,0.295,0.057
+                       c0.075,0.057,0.157,0.11,0.248,0.175c0.088-0.089,0.158-0.171,0.242-0.242c0.123-0.102,0.279-0.062,0.312,0.083
+                       c0.017,0.068,0.003,0.141,0.003,0.23c0.158,0.039,0.294-0.04,0.439-0.071c0.086-0.02,0.165-0.035,0.254-0.011
+                       c0.093,0.027,0.152,0.1,0.115,0.168c-0.096,0.171-0.196,0.342-0.292,0.515c-0.077,0.138-0.217,0.169-0.382,0.193
+                       c-0.318,0.047-0.541,0.237-0.784,0.397c-0.041,0.027-0.051,0.084-0.008,0.115c0.033,0.023,0.101,0.038,0.139,0.024
+                       c0.079-0.029,0.143-0.08,0.217-0.119c0.048-0.023,0.118-0.036,0.134,0.013c0.055,0.178,0.221,0.204,0.395,0.238
+                       c0.103,0.017,0.115,0.092,0.037,0.168c-0.07,0.067-0.149,0.125-0.216,0.193c-0.086,0.084-0.069,0.175,0.061,0.202
+                       c0.187,0.036,0.277,0.102,0.246,0.271c-0.007,0.051,0.06,0.087,0.105,0.061c0.257-0.163,0.39-0.034,0.542,0.135
+                       c0.115,0.126,0.031,0.187-0.019,0.3c-0.124,0.295-0.375,0.422-0.696,0.519c-0.143,0.042-0.268,0.126-0.399,0.2
+                       c-0.016,0.01-0.024,0.055-0.011,0.073c0.014,0.02,0.052,0.036,0.084,0.04c0.129,0.019,0.239-0.004,0.333-0.089
+                       c0.121-0.11,0.26-0.14,0.415-0.042c0.112,0.072,0.23,0.052,0.344-0.004c0.046-0.02,0.09-0.044,0.141-0.059
+                       c0.187-0.055,0.299,0.004,0.311,0.179c0.005,0.093-0.043,0.163,0.141,0.147c0.211-0.02,0.297,0.078,0.235,0.237
+                       c-0.127,0.331-0.333,0.606-0.794,0.686c0.05,0.08,0.101,0.155,0.146,0.234c0.051,0.08,0.124,0.097,0.218,0.057
+                       c0.062-0.024,0.117-0.065,0.182-0.084c0.121-0.04,0.22,0.017,0.2,0.121c-0.029,0.171-0.036,0.331-0.244,0.46
+                       c-0.22,0.135-0.388,0.335-0.56,0.519c-0.121,0.129-0.189,0.253-0.052,0.437c0.129,0.173,0.1,0.393-0.05,0.576
+                       c-0.053,0.064-0.103,0.125-0.031,0.196c0.062,0.061,0.151,0.058,0.241,0.047c0.173-0.023,0.344-0.045,0.516-0.059
+                       c0.089-0.008,0.192,0,0.237,0.069c0.118,0.18,0.268,0.135,0.441,0.073c0.183-0.069,0.377-0.051,0.568-0.028
+                       c0.156,0.023,0.217,0.144,0.141,0.272c-0.031,0.05-0.081,0.095-0.112,0.149c-0.057,0.099-0.275,0.015-0.275,0.155
+                       c-0.003,0.08,0.077,0.157,0.105,0.239c0.018,0.061-0.008,0.118-0.072,0.154c-0.043,0.024-0.095,0.037-0.136,0.066
+                       c-0.101,0.073-0.079,0.147,0.057,0.189c0.232,0.071,0.461,0.161,0.713,0.155c0.009-0.008,0.014-0.017,0.025-0.027
+                       c0.065-0.061,0.127-0.124,0.19-0.187c0.081-0.086,0.181-0.108,0.305-0.075c0.063,0.018,0.127,0.029,0.191,0.04
+                       c0.083,0.014,0.187,0.118,0.25,0.015c0.045-0.072-0.058-0.15-0.122-0.207c-0.088-0.081-0.196-0.14-0.163-0.278
+                       c0.117-0.483-0.116-0.892-0.417-1.278c-0.081-0.104-0.064-0.173,0.022-0.251c0.055-0.052,0.108-0.114,0.177-0.138
+                       c0.125-0.045,0.176-0.124,0.176-0.224c0-0.289,0.259-0.393,0.498-0.506c0.06-0.029,0.136-0.029,0.189,0.006
+                       c0.139,0.1,0.318,0.044,0.467,0.102c0.04-0.189-0.022-0.353-0.156-0.501c-0.044-0.049-0.046-0.1-0.003-0.151
+                       c0.054-0.067,0.102-0.14,0.174-0.195c0.07-0.051,0.16-0.096,0.248-0.12c0.089-0.024,0.14,0.059,0.213,0.086
+                       c0.059,0.02,0.127,0.073,0.177,0.063c0.335-0.071,0.415,0.124,0.419,0.318c0.002,0.177,0.09,0.244,0.257,0.3
+                       c0.18,0.057,0.33,0.153,0.467,0.267c0.071-0.058,0.129-0.134,0.176-0.209c0.206-0.306,0.168-0.408-0.203-0.564
+                       c-0.043-0.017-0.094-0.021-0.134-0.039c-0.177-0.08-0.201-0.171-0.092-0.348c0.031-0.053,0.085-0.096,0.123-0.138
+                       c-0.027-0.166-0.204-0.168-0.314-0.222c-0.234-0.11-0.457-0.202-0.444-0.485c0.005-0.071-0.061-0.16-0.125-0.211
+                       c-0.16-0.131-0.149-0.271-0.123-0.446c0.048-0.326,0.027-0.33,0.419-0.302c0.083,0.006,0.134-0.004,0.141-0.086
+                       c0.063-0.644,0.303-1.001,0.974-1.252c0.258-0.096,0.387-0.198,0.411-0.424c0.011-0.102,0.036-0.202,0.064-0.302
+                       c0.043-0.144,0.132-0.168,0.316-0.131c0.252,0.051,0.464,0.204,0.735,0.2c0.04,0,0.093-0.031,0.115-0.059
+                       c0.024-0.029,0.033-0.099,0.014-0.112c-0.248-0.163-0.296-0.351-0.122-0.583c0.067-0.089,0.071-0.195-0.004-0.289
+                       c-0.132-0.159-0.132-0.346-0.142-0.528c-0.005-0.081-0.009-0.191,0.044-0.234c0.349-0.275,0.308-0.644,0.358-0.994
+                       c0.022-0.139,0.081-0.273,0.187-0.39c0.173-0.191,0.256-0.216,0.593-0.1c0.127,0.044,0.228,0.064,0.267-0.083
+                       c0.033-0.129,0.145-0.206,0.244-0.291c0.049-0.041,0.106-0.104,0.165-0.106c0.284-0.013,0.552,0.063,0.822,0.129
+                       c0.14,0.036,0.263,0.091,0.302,0.229c0.007,0.019,0.017,0.039,0.024,0.057c0.04,0.104,0.124,0.102,0.224,0.073
+                       c0.189-0.053,0.313,0.022,0.412,0.157c0.102,0.14,0.207,0.277,0.092,0.45c-0.033,0.053-0.083,0.101-0.11,0.156
+                       c-0.083,0.168,0.017,0.332,0.22,0.375c0.043,0.011,0.093,0.015,0.138,0.013c0.115-0.006,0.232-0.017,0.38-0.031
+                       c0.087,0.2,0.149,0.417,0.268,0.61c0.156,0.256,0.142,0.464-0.112,0.657c-0.069,0.051-0.153,0.104-0.148,0.195
+                       c0.002,0.029,0.055,0.082,0.079,0.082c0.091-0.004,0.21-0.002,0.266-0.049c0.284-0.244,0.552-0.09,0.817-0.033
+                       c0.036,0.228-0.228,0.29-0.237,0.457c0.037,0.073,0.11,0.063,0.177,0.073c0.354,0.049,0.397,0.109,0.176,0.306
+                       c-0.189,0.167-0.293,0.369-0.387,0.576c-0.046,0.1-0.008,0.204,0.143,0.235c0.129,0.027,0.217,0.086,0.151,0.213
+                       c-0.062,0.115-0.105,0.228-0.041,0.351c0.118,0.226,0.127,0.471,0.139,0.721c0.308,0,0.586,0.075,0.841-0.08
+                       c0.055-0.034,0.132-0.018,0.191,0.029c0.25,0.188,0.307,0.381,0.211,0.654c-0.127,0.36-0.358,0.657-0.705,0.93
+                       c0.301,0.084,0.452,0.286,0.578,0.548c0.113-0.104,0.168-0.169,0.239-0.216c0.053-0.031,0.125-0.042,0.191-0.055
+                       c0.017-0.004,0.044,0.013,0.065,0.022c0.885,0.366,0.793,0.393,0.16,0.941c-0.232,0.2-0.514,0.408-0.869,0.481
+                       c-0.057,0.011-0.114,0.08-0.078,0.147c0.016,0.033,0.075,0.075,0.105,0.071c0.363-0.083,0.495,0.169,0.659,0.355
+                       c0.064,0.073,0.114,0.162,0.169,0.246c0.053-0.045,0.061-0.098-0.002-0.149c-0.11-0.089-0.129-0.204-0.172-0.313
+                       c-0.1-0.249-0.046-0.41,0.231-0.485c0.247-0.069,0.404-0.229,0.618-0.326c0.136-0.061,0.196-0.158,0.174-0.293
+                       c-0.011-0.071-0.007-0.147,0.005-0.218c0.028-0.147,0.127-0.2,0.301-0.151c0.132,0.037,0.256,0.084,0.404,0.063
+                       c0.091-0.014,0.188,0.017,0.21,0.097c0.041,0.126,0.149,0.181,0.268,0.249c0.132,0.081,0.215,0.2,0.423,0.152
+                       c0.108-0.028,0.184,0.07,0.193,0.168c0.016,0.236-0.015,0.468-0.094,0.695c-0.22,0.635-0.129,0.464,0.253,0.892
+                       c0.039,0.045,0.134,0.067,0.151,0.112c0.055,0.149,0.162,0.177,0.323,0.137c0.048-0.011,0.103-0.013,0.156-0.013
+                       c0.081-0.002,0.141,0.07,0.088,0.117c-0.127,0.116-0.2,0.236-0.147,0.399c0.011,0.034-0.017,0.091-0.048,0.118
+                       c-0.281,0.242-0.338,0.604-0.667,0.819c0.263,0.118,0.268,0.12,0.387-0.008c0.187-0.204,0.441-0.32,0.718-0.411
+                       c0.015-0.006,0.034,0.002,0.053,0.002c0.138-0.004,0.108-0.241,0.313-0.159c0.11,0.042,0.2,0.118,0.332,0.124
+                       c0.05,0.002,0.103,0.013,0.149,0.031c0.055,0.022,0.072,0.075,0.042,0.114c-0.042,0.062-0.11,0.113-0.163,0.171
+                       c-0.042,0.048-0.055,0.098-0.02,0.161c0.108,0.203,0.105,0.203-0.03,0.304c-0.143,0.109-0.284,0.213-0.378,0.362
+                       c-0.044,0.078-0.121,0.147-0.2,0.202c-0.092,0.067-0.224,0.098-0.297,0.173c-0.108,0.114-0.177,0.253-0.259,0.377
+                       c0.008,0.105,0.115,0.102,0.189,0.126s0.11,0.12,0.217,0.089c0.098-0.104-0.029-0.255,0.072-0.336
+                       c0.11-0.088,0.265-0.133,0.402-0.195c0.046-0.021,0.098-0.037,0.136-0.064c0.147-0.102,0.296-0.1,0.428-0.002
+                       c0.139,0.102,0.297,0.147,0.464,0.191c0.07,0.017,0.116,0.092,0.061,0.141c-0.235,0.216-0.349,0.504-0.605,0.711
+                       c-0.125,0.102-0.275,0.175-0.401,0.275c0.043,0.133,0.213,0.2,0.203,0.353c-0.009,0.122,0.139,0.156,0.228,0.222
+                       c0.108,0.078,0.121,0.151,0.024,0.222c-0.136,0.1-0.253,0.195-0.232,0.369c0.01,0.093-0.077,0.155-0.169,0.206
+                       c-0.206,0.11-0.399,0.238-0.608,0.342c-0.117,0.059-0.174,0.142-0.224,0.235l0.007,0.007c0.217-0.04,0.454-0.007,0.645-0.14
+                       c0.083-0.057,0.204-0.073,0.296-0.029c0.158,0.078,0.261,0.006,0.373-0.065c0.072-0.041,0.142-0.086,0.221-0.115
+                       c0.16-0.063,0.336,0.011,0.334,0.161c-0.002,0.14,0.019,0.175,0.184,0.138c0.086-0.02,0.156-0.049,0.23-0.089
+                       c0.117-0.064,0.196-0.033,0.227,0.075c0.022,0.069,0.029,0.144,0.048,0.216c0.024,0.092,0.174,0.184,0.062,0.277
+                       c-0.115,0.098-0.208,0.244-0.411,0.239c-0.091-0.001-0.177,0.01-0.241,0.061c-0.127,0.1-0.228,0.228-0.369,0.302
+                       c-0.143,0.073-0.339,0.067-0.445,0.204l0.002,0.003c0.109-0.016,0.206-0.007,0.295,0.059c0.075,0.057,0.157,0.11,0.248,0.173
+                       c0.088-0.089,0.158-0.171,0.242-0.24c0.125-0.102,0.279-0.062,0.312,0.081c0.017,0.068,0.003,0.143,0.003,0.23
+                       c0.158,0.039,0.296-0.038,0.439-0.071c0.086-0.018,0.165-0.034,0.254-0.008c0.093,0.024,0.152,0.098,0.115,0.166
+                       c-0.096,0.173-0.197,0.344-0.292,0.515c-0.077,0.14-0.218,0.171-0.383,0.195c-0.316,0.047-0.541,0.237-0.785,0.395
+                       c-0.04,0.027-0.051,0.086-0.007,0.115c0.033,0.024,0.103,0.038,0.139,0.024c0.079-0.029,0.144-0.08,0.217-0.118
+                       c0.048-0.023,0.12-0.037,0.134,0.014c0.055,0.175,0.22,0.202,0.395,0.236c0.103,0.019,0.115,0.095,0.036,0.171
+                       c-0.069,0.064-0.148,0.123-0.215,0.19c-0.086,0.087-0.069,0.177,0.061,0.202c0.186,0.036,0.277,0.102,0.248,0.271
+                       c-0.009,0.051,0.059,0.087,0.103,0.061c0.257-0.16,0.389-0.034,0.542,0.137c0.115,0.126,0.031,0.185-0.017,0.297
+                       c-0.126,0.295-0.378,0.424-0.696,0.519c-0.143,0.045-0.27,0.129-0.401,0.2c-0.016,0.008-0.024,0.055-0.011,0.075
+                       c0.014,0.02,0.053,0.033,0.086,0.04c0.127,0.02,0.239-0.007,0.33-0.091c0.125-0.11,0.261-0.139,0.417-0.04
+                       c0.114,0.069,0.232,0.05,0.344-0.004c0.048-0.021,0.09-0.046,0.141-0.059c0.184-0.056,0.302,0.002,0.311,0.18
+                       c0.005,0.091-0.041,0.161,0.143,0.144c0.048-0.004,0.088,0,0.123,0.006c0.025-0.091,0.127-0.151,0.268-0.139
+                       c0.121,0.011,0.251,0.108,0.36,0.046c0.38-0.212,0.871-0.177,1.251-0.386c-0.098-0.258-0.342-0.442-0.502-0.67
+                       c-0.132-0.191-0.191-0.359,0.048-0.548c0.158-0.122,0.227-0.315,0.365-0.458c0.18-0.186,0.322-0.437,0.713-0.355
+                       c0.031,0.006,0.094-0.038,0.112-0.071c0.041-0.067-0.024-0.135-0.083-0.147c-0.382-0.073-0.688-0.281-0.937-0.479
+                       c-0.683-0.548-0.781-0.577,0.173-0.943c0.023-0.008,0.049-0.027,0.071-0.022c0.07,0.014,0.149,0.024,0.206,0.057
+                       c0.077,0.045,0.136,0.109,0.259,0.213c0.136-0.26,0.299-0.464,0.621-0.548c-0.371-0.273-0.624-0.57-0.761-0.927
+                       c-0.102-0.275-0.04-0.466,0.228-0.657c0.064-0.047,0.148-0.062,0.206-0.029c0.279,0.155,0.576,0.08,0.911,0.08
+                       c0.014-0.251,0.023-0.495,0.147-0.721c0.07-0.121,0.024-0.235-0.042-0.351c-0.075-0.126,0.023-0.186,0.162-0.212
+                       c0.163-0.032,0.203-0.136,0.156-0.236c-0.101-0.206-0.219-0.406-0.419-0.575c-0.239-0.198-0.191-0.257,0.189-0.306
+                       c0.074-0.012,0.153,0,0.193-0.073c-0.009-0.167-0.296-0.227-0.255-0.458c0.286-0.057,0.573-0.21,0.879,0.034
+                       c0.061,0.046,0.19,0.045,0.287,0.048c0.028,0,0.083-0.053,0.083-0.082c0.008-0.09-0.081-0.143-0.157-0.195
+                       c-0.273-0.193-0.29-0.401-0.12-0.656c0.127-0.193,0.196-0.411,0.287-0.61c0.16,0.013,0.286,0.024,0.411,0.03
+                       c0.05,0.003,0.103-0.001,0.151-0.011c0.22-0.042,0.325-0.208,0.237-0.377c-0.03-0.055-0.085-0.102-0.12-0.155
+                       c-0.125-0.173-0.009-0.311,0.101-0.45c0.105-0.136,0.239-0.211,0.442-0.158c0.11,0.032,0.202,0.032,0.246-0.07
+                       c0.008-0.02,0.017-0.04,0.022-0.058c0.043-0.14,0.177-0.195,0.328-0.23c0.292-0.067,0.58-0.142,0.889-0.13
+                       c0.06,0.003,0.121,0.065,0.174,0.107c0.108,0.084,0.23,0.163,0.266,0.291c0.041,0.146,0.149,0.126,0.287,0.082
+                       c0.364-0.116,0.452-0.09,0.638,0.1c0.115,0.118,0.18,0.251,0.2,0.391c0.055,0.351,0.013,0.721,0.388,0.993
+                       c0.057,0.042,0.052,0.156,0.048,0.234c-0.01,0.182-0.013,0.369-0.153,0.528c-0.083,0.093-0.077,0.2-0.005,0.289
+                       c0.189,0.233,0.136,0.422-0.132,0.586c-0.022,0.011-0.009,0.08,0.014,0.108c0.024,0.031,0.082,0.059,0.127,0.059
+                       c0.289,0.004,0.519-0.148,0.79-0.2c0.2-0.037,0.293-0.013,0.341,0.131c0.032,0.101,0.055,0.201,0.07,0.303
+                       c0.016,0.144,0.086,0.235,0.2,0.308c0.037-0.022,0.083-0.031,0.118-0.008c0.181,0.104,0.316,0.049,0.444-0.067
+                       c0.034-0.029,0.082-0.047,0.125-0.071c-0.217-0.184-0.217-0.184-0.215-0.446c0.005-0.251,0.005-0.259,0.316-0.279
+                       c0.108-0.006,0.193-0.024,0.286-0.075c0.238-0.124,0.48-0.171,0.713,0.027c0.127,0.112,0.292,0.067,0.445,0.051
+                       c0.066-0.004,0.105-0.11,0.046-0.14c-0.362-0.17-0.261-0.483-0.326-0.742c-0.02-0.081,0.029-0.142,0.094-0.195
+                       c0.115-0.093,0.077-0.207,0.009-0.283c-0.115-0.129-0.18-0.302-0.311-0.393c-0.207-0.139-0.286-0.251-0.183-0.475
+                       c0.038-0.08-0.087-0.21-0.122-0.321c-0.057-0.191-0.029-0.227,0.217-0.318c0.239-0.089,0.356-0.295,0.276-0.491
+                       c-0.029-0.069-0.07-0.135-0.096-0.204c-0.031-0.089,0.064-0.173,0.182-0.165c0.019,0.002,0.04-0.002,0.052,0.006
+                       c0.229,0.158,0.38-0.004,0.549-0.092c0.094-0.049,0.123-0.116,0.044-0.178c-0.11-0.088-0.127-0.206-0.173-0.314
+                       c-0.097-0.246-0.042-0.411,0.235-0.486c0.246-0.066,0.404-0.228,0.617-0.326c0.134-0.059,0.197-0.157,0.175-0.293
+                       c-0.013-0.071-0.01-0.147,0.005-0.217c0.028-0.147,0.127-0.2,0.299-0.15c0.134,0.038,0.259,0.083,0.406,0.061
+                       c0.092-0.014,0.184,0.018,0.211,0.098c0.038,0.126,0.149,0.18,0.265,0.251c0.134,0.078,0.215,0.198,0.423,0.149
+                       c0.11-0.024,0.187,0.071,0.194,0.169c0.017,0.236-0.017,0.468-0.093,0.695c-0.22,0.634-0.132,0.464,0.251,0.892
+                       c0.041,0.045,0.134,0.066,0.153,0.113c0.052,0.149,0.16,0.175,0.32,0.138c0.05-0.014,0.105-0.014,0.155-0.016
+                       c0.085,0,0.142,0.071,0.091,0.12c-0.127,0.116-0.2,0.236-0.149,0.397c0.01,0.033-0.016,0.09-0.047,0.12
+                       c-0.283,0.239-0.337,0.601-0.667,0.819c0.263,0.116,0.265,0.119,0.384-0.012c0.187-0.204,0.443-0.32,0.718-0.41
+                       c0.016-0.004,0.035,0.002,0.053,0.002c0.138-0.004,0.11-0.242,0.313-0.16c0.11,0.045,0.203,0.118,0.332,0.124
+                       c0.052,0.002,0.105,0.014,0.151,0.034c0.055,0.022,0.071,0.073,0.042,0.11c-0.045,0.063-0.11,0.114-0.162,0.171
+                       c-0.046,0.049-0.055,0.1-0.022,0.163c0.108,0.202,0.105,0.204-0.029,0.306c-0.143,0.106-0.287,0.213-0.377,0.36
+                       c-0.048,0.076-0.123,0.146-0.2,0.202c-0.094,0.066-0.225,0.097-0.3,0.172c-0.104,0.114-0.174,0.254-0.258,0.378
+                       c0.009,0.104,0.115,0.102,0.189,0.126c0.077,0.024,0.112,0.12,0.217,0.088c0.098-0.104-0.026-0.255,0.074-0.335
+                       c0.108-0.086,0.265-0.131,0.402-0.195c0.045-0.022,0.095-0.037,0.136-0.065c0.143-0.102,0.294-0.1,0.428-0.002
+                       c0.136,0.102,0.297,0.147,0.464,0.191c0.07,0.018,0.112,0.092,0.06,0.142c-0.233,0.218-0.349,0.503-0.604,0.712
+                       c-0.127,0.1-0.275,0.174-0.404,0.276c0.042,0.131,0.215,0.2,0.203,0.35c-0.007,0.122,0.139,0.155,0.23,0.222
+                       c0.108,0.08,0.122,0.15,0.022,0.221c-0.136,0.101-0.252,0.195-0.233,0.369c0.013,0.096-0.074,0.156-0.169,0.207
+                       c-0.204,0.11-0.397,0.239-0.608,0.344c-0.114,0.057-0.172,0.139-0.222,0.235l0.007,0.006c0.215-0.042,0.452-0.009,0.645-0.142
+                       c0.084-0.055,0.204-0.073,0.296-0.027c0.158,0.076,0.261,0.005,0.373-0.066c0.07-0.042,0.141-0.087,0.218-0.116
+                       c0.16-0.059,0.34,0.012,0.338,0.161c-0.005,0.143,0.02,0.178,0.184,0.138c0.086-0.02,0.154-0.049,0.229-0.088
+                       c0.118-0.063,0.193-0.032,0.228,0.075c0.022,0.071,0.026,0.143,0.045,0.215c0.024,0.093,0.175,0.185,0.065,0.277
+                       c-0.115,0.099-0.208,0.246-0.412,0.24c-0.09-0.002-0.178,0.008-0.244,0.061c-0.124,0.099-0.224,0.227-0.367,0.302
+                       c-0.142,0.074-0.34,0.067-0.443,0.204v0.002c0.108-0.014,0.208-0.004,0.294,0.059c0.077,0.057,0.158,0.112,0.251,0.173
+                       c0.089-0.088,0.156-0.171,0.239-0.239c0.125-0.102,0.28-0.063,0.313,0.08c0.048,0.004,0.096,0.011,0.145,0.027
+                       c0.109,0.031,0.219,0.051,0.328,0.071c0.038,0.006,0.079,0.024,0.121,0.045c0.033,0,0.068,0,0.103,0.009
+                       c0.036,0.011,0.064,0.029,0.086,0.051c0.043-0.002,0.085-0.02,0.12-0.073c0.079-0.124-0.096-0.257-0.208-0.362
+                       c-0.149-0.137-0.332-0.241-0.268-0.479c0.217-0.825-0.174-1.528-0.672-2.199c-0.136-0.183-0.11-0.3,0.043-0.433
+                       c0.095-0.084,0.185-0.188,0.306-0.23c0.217-0.075,0.307-0.208,0.311-0.381c0.007-0.495,0.454-0.666,0.87-0.859
+                       c0.101-0.047,0.235-0.045,0.32,0.02c0.237,0.171,0.546,0.082,0.799,0.182v0.002h0.002c0.093,0.226,0.412,0.226,0.564,0.393
+                       c0.01,0.012,0.108-0.011,0.136-0.04c0.029-0.031,0.048-0.095,0.029-0.129c-0.033-0.057-0.09-0.133-0.152-0.149
+                       c-0.188-0.039-0.383-0.053-0.577-0.075v-0.002h-0.002c0.073-0.32-0.026-0.603-0.248-0.861c-0.074-0.086-0.077-0.175-0.002-0.259
+                       c0.097-0.113,0.183-0.24,0.305-0.33c0.125-0.089,0.277-0.163,0.433-0.202c0.149-0.04,0.237,0.104,0.362,0.151
+                       c0.102,0.039,0.215,0.131,0.301,0.113c0.576-0.115,0.707,0.222,0.707,0.552c0,0.305,0.151,0.425,0.434,0.519
+                       c0.396,0.136,0.722,0.356,0.994,0.633c0.205,0.211,0.24,0.31,0.04,0.495c-0.215,0.2-0.308,0.438-0.439,0.672
+                       c-0.132,0.237-0.065,0.581-0.472,0.69c-0.007,0.002-0.009,0.046,0.003,0.064c0.01,0.018,0.043,0.045,0.059,0.04
+                       c0.081-0.016,0.168-0.029,0.234-0.065c0.354-0.19,0.703-0.386,1.053-0.583c0.205-0.116,0.396-0.133,0.621-0.016
+                       c0.193,0.102,0.365,0.213,0.523,0.35c0.364,0.313,0.39,0.382,0,0.682c-0.296,0.23-0.365,0.585-0.689,0.79
+                       c-0.027,0.019-0.016,0.088-0.021,0.135c-0.02,0.137,0.105,0.251,0.239,0.218c0.081-0.02,0.158-0.049,0.237-0.073
+                       c0.203-0.065,0.394-0.205,0.63-0.081c0.333,0.178,0.665,0.358,0.832,0.676c0.024,0.047-0.02,0.141-0.067,0.184
+                       c-0.158,0.135-0.325,0.262-0.5,0.38c-0.244,0.166-0.32,0.374-0.272,0.63c0.022,0.116,0.005,0.237,0.033,0.353
+                       c0.098,0.389,0.246,0.77,0.022,1.169c-0.052,0.096,0.002,0.233,0.017,0.351c0.024,0.193,0.143,0.287,0.378,0.313
+                       c0.714,0.073,0.911,0.161,1.398,0.638c-0.06,0.193-0.251,0.309-0.401,0.444c-0.165,0.152-0.287,0.293-0.103,0.495
+                       c0.057,0.059,0.02,0.136-0.04,0.191c-0.092,0.087-0.213,0.157-0.177,0.3c0.067,0.244-0.402,0.521-0.033,0.701
+                       c0.262,0.13,0.444-0.222,0.683-0.33c0.23-0.106,0.383-0.133,0.603,0.008c0.18,0.116,0.344,0.229,0.48,0.387
+                       c0.255,0.297,0.277,0.304-0.036,0.591c-0.161,0.149-0.233,0.304-0.294,0.492c-0.086,0.271-0.194,0.622-0.165,0.817
+                       c0.017,0.101-0.002,0.191-0.093,0.258c-0.175,0.129-0.098,0.259,0.007,0.375c0.053,0.055,0.096,0.108,0.129,0.164
+                       c3.141,0.069,6.532,0.253,10.033,0.637c-0.02-0.016-0.039-0.031-0.057-0.049c-0.247-0.226-0.529-0.42-0.838-0.583
+                       c-0.072-0.038-0.163-0.053-0.213-0.12c-0.05-0.063-0.093-0.132-0.045-0.205c0.048-0.07,0.139-0.086,0.229-0.075
+                       c0.068,0.01,0.139,0.022,0.196,0.054c0.161,0.082,0.338,0.069,0.51,0.069c0.155,0,0.312-0.022,0.468-0.018
+                       c0.287,0.006,0.529-0.096,0.676-0.28c0.14-0.17,0.268-0.206,0.478-0.125c0.057,0.021,0.132,0.019,0.197,0.023
+                       c0.009,0.002,0.024-0.02,0.026-0.031c0.005-0.014,0.002-0.035-0.008-0.039c-0.072-0.04-0.141-0.099-0.22-0.109
+                       c-0.401-0.051-0.741-0.251-1.13-0.33c-0.051-0.01-0.108-0.018-0.147-0.045c-0.141-0.102-0.411-0.14-0.418-0.291
+                       c-0.01-0.21,0.272-0.173,0.445-0.22c0.123-0.033,0.145-0.096,0.071-0.202c-0.059-0.088-0.127-0.175-0.184-0.264
+                       c-0.062-0.095-0.145-0.159-0.263-0.204c-0.174-0.066-0.341-0.147-0.509-0.222c-0.077-0.035-0.158-0.066-0.222-0.113
+                       c-0.189-0.144-0.144-0.34,0.088-0.426c0.151-0.053,0.311-0.071,0.464-0.045c0.3,0.053,0.577,0.055,0.856-0.075
+                       c0.101-0.047,0.243-0.027,0.357-0.058c0.145-0.039,0.299-0.075,0.241-0.27c-0.031-0.1,0.103-0.151,0.213-0.093
+                       c0.057,0.031,0.11,0.069,0.167,0.104c0.068,0.045,0.132,0.122,0.223,0.087c0.097-0.038,0.143-0.126,0.15-0.22
+                       c0.007-0.104,0.009-0.216-0.066-0.297c-0.188-0.202-0.193-0.401-0.034-0.613c0.017-0.022,0.027-0.055,0.024-0.082
+                       c-0.005-0.027-0.024-0.057-0.049-0.073c-0.024-0.014-0.078-0.022-0.096-0.012c-0.112,0.067-0.218,0.142-0.312,0.205
+                       c-0.149-0.02-0.158-0.138-0.241-0.183c-0.21-0.106-0.299-0.235-0.167-0.434c0.035-0.058,0-0.114-0.06-0.155
+                       c-0.026-0.018-0.061-0.029-0.092-0.045c-0.385-0.191-0.767-0.389-1.159-0.568c-0.174-0.08-0.316-0.182-0.439-0.306
+                       c-0.037-0.036-0.056-0.083-0.019-0.12c0.031-0.031,0.079-0.065,0.121-0.071c0.177-0.024,0.349-0.012,0.512,0.059
+                       c0.105,0.047,0.213,0.093,0.342,0.151c0.127-0.155,0.287-0.257,0.509-0.281c0.081-0.008,0.103-0.093,0.046-0.133
+                       c-0.079-0.058-0.156-0.126-0.246-0.165c-0.127-0.051-0.189-0.124-0.186-0.239c0.007-0.116-0.072-0.187-0.151-0.27
+                       c-0.126-0.127-0.086-0.245,0.083-0.317c0.189-0.078,0.378-0.069,0.542,0.035c0.122,0.075,0.18,0.045,0.243-0.049
+                       c0.036-0.055,0.108-0.062,0.181-0.066c0.342-0.027,0.687-0.058,1.029-0.087c0.079-0.006,0.176,0.1,0.229,0.016
+                       c0.041-0.069,0.039-0.187-0.007-0.256c-0.105-0.164-0.153-0.357-0.303-0.503c-0.055-0.055,0.005-0.169,0.088-0.177
+                       c0.239-0.024,0.483-0.04,0.724-0.057c0.292,0.147,0.474-0.059,0.739-0.138c-0.141-0.139-0.25-0.251-0.366-0.355
+                       c-0.16-0.144-0.338-0.24-0.595-0.157c-0.21,0.068-0.369,0.011-0.454-0.178c-0.089-0.186-0.272-0.308-0.461-0.412
+                       c-0.385-0.207-0.682-0.497-1.038-0.728c-0.036-0.023-0.06-0.075-0.057-0.114c0.002-0.071,0.083-0.082,0.15-0.098
+                       c0.129-0.031,0.329,0.051,0.38-0.071c0.074-0.168-0.193-0.17-0.275-0.275c-0.016-0.022-0.057-0.033-0.088-0.047
+                       c-0.153-0.069-0.38-0.143-0.347-0.288c0.044-0.191,0.32-0.16,0.485-0.147c0.287,0.022,0.538,0.008,0.782-0.133
+                       c0.077-0.047,0.201-0.036,0.294-0.049c0.083-0.107-0.06-0.127-0.079-0.189c-0.007-0.029-0.024-0.059-0.018-0.086
+                       c0.029-0.12,0.291-0.372,0.418-0.358c0.314,0.035,0.567-0.12,0.852-0.171c0.21-0.035,0.373-0.031,0.526,0.096
+                       c0.112,0.091,0.229,0.184,0.408,0.167c0.079-0.01,0.196,0.033,0.22-0.063c0.019-0.067-0.09-0.071-0.146-0.102
+                       c-0.151-0.082-0.11-0.238-0.18-0.355c-0.043-0.073,0.02-0.14,0.081-0.195c0.072-0.069,0.062-0.13-0.024-0.185
+                       c-0.04-0.025-0.074-0.062-0.117-0.088c-0.294-0.171-0.366-0.262-0.441-0.548c-0.026-0.106-0.11-0.178-0.227-0.226
+                       c-0.338-0.14-0.621-0.324-0.741-0.642c-0.029-0.08-0.105-0.112-0.174-0.153c-0.099-0.061-0.197-0.126-0.285-0.195
+                       c-0.086-0.069-0.103-0.149-0.014-0.23c0.057-0.056,0.115-0.112,0.157-0.175c0.142-0.202,0.282-0.405,0.3-0.653
+                       c0.007-0.129,0.064-0.135,0.189-0.045c0.025,0.02,0.044,0.061,0.068,0.063c0.079,0.006,0.063-0.049,0.055-0.084
+                       c-0.026-0.127,0.037-0.207,0.184-0.22c0.206-0.018,0.375-0.163,0.603-0.118c0.033,0.006,0.095-0.033,0.123-0.065
+                       c0.081-0.09,0.194-0.184,0.225-0.288c0.038-0.138,0.079-0.218,0.262-0.2c0.125,0.011,0.184-0.067,0.245-0.142
+                       c0.081-0.108,0.198-0.147,0.354-0.153c0.184-0.006,0.224-0.078,0.18-0.222c-0.051-0.164-0.197-0.226-0.366-0.287
+                       c-0.165-0.059-0.191-0.113-0.091-0.233c0.091-0.109,0.095-0.173-0.026-0.256c-0.151-0.099-0.28-0.23-0.443-0.308
+                       c-0.175-0.084-0.33-0.151-0.332-0.348c-0.003-0.091-0.103-0.149-0.18-0.21c-0.101-0.083-0.198-0.167-0.292-0.253
+                       c-0.06-0.056-0.022-0.147,0.064-0.183c0.015-0.006,0.032-0.011,0.048-0.015c0.098-0.02,0.23-0.014,0.261-0.116
+                       c0.048-0.149,0.019-0.297-0.105-0.415c-0.117-0.106-0.259-0.198-0.378-0.302c-0.06-0.051,0-0.161,0.083-0.173
+                       c0.051-0.006,0.103-0.013,0.156-0.012c0.099,0.007,0.191,0.116,0.287,0.041c0.052-0.042,0.049-0.136,0.083-0.201
+                       c0.031-0.062,0.112-0.095,0.17-0.062c0.182,0.102,0.316,0.049,0.445-0.067c0.033-0.029,0.081-0.047,0.124-0.07
+                       c-0.217-0.185-0.217-0.185-0.215-0.447c0.005-0.253,0.005-0.259,0.316-0.279c0.108-0.006,0.193-0.024,0.287-0.075
+                       c0.236-0.126,0.48-0.171,0.712,0.027c0.127,0.112,0.292,0.067,0.445,0.051c0.068-0.006,0.105-0.113,0.046-0.14
+                       c-0.362-0.17-0.261-0.483-0.329-0.743c-0.018-0.08,0.031-0.141,0.096-0.194c0.115-0.093,0.077-0.207,0.007-0.281
+                       c-0.112-0.13-0.176-0.303-0.308-0.393c-0.208-0.142-0.289-0.252-0.184-0.475c0.038-0.083-0.088-0.211-0.123-0.322
+                       c-0.057-0.191-0.029-0.227,0.218-0.319c0.239-0.088,0.357-0.294,0.276-0.49c-0.031-0.069-0.07-0.135-0.096-0.204
+                       c-0.031-0.089,0.065-0.173,0.182-0.165c0.017,0.002,0.041-0.002,0.052,0.006c0.23,0.158,0.38-0.004,0.551-0.092
+                       c0.093-0.049,0.121-0.116,0.042-0.179c-0.11-0.087-0.126-0.205-0.172-0.313c-0.099-0.249-0.046-0.411,0.233-0.486
+                       c0.246-0.066,0.403-0.228,0.618-0.326c0.134-0.059,0.196-0.157,0.174-0.293c-0.011-0.071-0.009-0.147,0.005-0.218
+                       c0.028-0.147,0.125-0.199,0.299-0.15c0.134,0.037,0.259,0.084,0.404,0.062c0.094-0.014,0.187,0.018,0.213,0.098
+                       c0.039,0.126,0.149,0.18,0.265,0.249c0.132,0.08,0.215,0.2,0.424,0.151c0.11-0.027,0.186,0.071,0.193,0.169
+                       c0.017,0.235-0.016,0.468-0.093,0.695c-0.222,0.634-0.132,0.463,0.251,0.892c0.041,0.045,0.134,0.066,0.151,0.11
+                       c0.055,0.149,0.162,0.177,0.323,0.138c0.05-0.012,0.105-0.014,0.156-0.014c0.084-0.002,0.141,0.071,0.088,0.12
+                       c-0.125,0.116-0.198,0.234-0.145,0.397c0.009,0.033-0.017,0.091-0.05,0.118c-0.281,0.241-0.335,0.603-0.665,0.819
+                       c0.263,0.118,0.265,0.122,0.384-0.008c0.187-0.205,0.443-0.321,0.718-0.411c0.015-0.004,0.037,0.002,0.052,0.002
+                       c0.139-0.004,0.11-0.242,0.313-0.16c0.11,0.045,0.203,0.118,0.332,0.125c0.05,0.002,0.105,0.013,0.151,0.033
+                       c0.055,0.02,0.071,0.073,0.042,0.11c-0.044,0.063-0.11,0.114-0.162,0.171c-0.045,0.049-0.055,0.1-0.022,0.161
+                       c0.109,0.203,0.105,0.205-0.031,0.305c-0.141,0.108-0.284,0.216-0.375,0.362c-0.048,0.078-0.124,0.146-0.2,0.201
+                       c-0.094,0.067-0.228,0.099-0.3,0.174c-0.104,0.113-0.174,0.253-0.258,0.377c0.01,0.104,0.115,0.102,0.189,0.126
+                       c0.077,0.024,0.112,0.12,0.217,0.088c0.099-0.104-0.029-0.255,0.072-0.335c0.11-0.089,0.268-0.133,0.404-0.195
+                       c0.046-0.022,0.096-0.037,0.136-0.065c0.143-0.102,0.294-0.1,0.428-0.001c0.136,0.102,0.296,0.146,0.464,0.19
+                       c0.07,0.018,0.112,0.093,0.061,0.142c-0.235,0.217-0.349,0.503-0.605,0.711c-0.127,0.102-0.276,0.175-0.404,0.275
+                       c0.044,0.133,0.213,0.199,0.203,0.353c-0.007,0.122,0.14,0.155,0.23,0.222c0.108,0.078,0.12,0.151,0.022,0.222
+                       c-0.136,0.1-0.252,0.194-0.232,0.367c0.013,0.093-0.075,0.156-0.17,0.207c-0.204,0.11-0.397,0.237-0.608,0.343
+                       c-0.114,0.058-0.172,0.14-0.222,0.234l0.007,0.006c0.215-0.039,0.452-0.006,0.645-0.14c0.081-0.057,0.204-0.072,0.294-0.029
+                       c0.16,0.078,0.261,0.007,0.375-0.064c0.07-0.042,0.142-0.087,0.217-0.116c0.16-0.059,0.34,0.012,0.335,0.162
+                       c-0.002,0.139,0.02,0.175,0.187,0.137c0.086-0.019,0.155-0.049,0.229-0.088c0.118-0.065,0.194-0.034,0.228,0.075
+                       c0.022,0.068,0.026,0.143,0.046,0.215c0.024,0.093,0.174,0.185,0.064,0.277c-0.117,0.099-0.208,0.245-0.413,0.24
+                       c-0.089-0.002-0.175,0.01-0.242,0.061c-0.125,0.099-0.225,0.228-0.369,0.302c-0.141,0.073-0.34,0.066-0.445,0.204l0.002,0.002
+                       c0.108-0.014,0.208-0.004,0.294,0.059c0.077,0.058,0.158,0.112,0.249,0.174c0.088-0.089,0.157-0.172,0.241-0.24
+                       c0.123-0.102,0.282-0.063,0.315,0.08c0.017,0.069,0.003,0.144,0.003,0.23c0.158,0.04,0.295-0.037,0.438-0.07
+                       c0.086-0.018,0.165-0.034,0.253-0.01c0.094,0.024,0.153,0.098,0.115,0.167c-0.094,0.173-0.197,0.344-0.292,0.515
+                       c-0.077,0.139-0.217,0.17-0.381,0.194c-0.317,0.047-0.543,0.238-0.784,0.395c-0.042,0.028-0.05,0.087-0.009,0.116
+                       c0.033,0.024,0.103,0.037,0.141,0.024c0.077-0.029,0.143-0.08,0.217-0.118c0.046-0.024,0.118-0.035,0.134,0.014
+                       c0.055,0.177,0.22,0.202,0.395,0.235c0.103,0.02,0.114,0.096,0.036,0.171c-0.069,0.064-0.15,0.124-0.218,0.191
+                       c-0.086,0.086-0.066,0.177,0.061,0.202c0.185,0.035,0.277,0.102,0.248,0.271c-0.01,0.051,0.059,0.086,0.103,0.059
+                       c0.26-0.159,0.389-0.033,0.543,0.138c0.116,0.126,0.031,0.184-0.017,0.297c-0.125,0.295-0.378,0.424-0.696,0.518
+                       c-0.143,0.045-0.27,0.13-0.4,0.201c-0.019,0.009-0.026,0.057-0.014,0.075c0.014,0.019,0.055,0.033,0.086,0.039
+                       c0.129,0.02,0.239-0.006,0.332-0.09c0.122-0.112,0.259-0.14,0.417-0.04c0.112,0.069,0.229,0.051,0.344-0.004
+                       c0.046-0.022,0.091-0.047,0.139-0.061c0.186-0.055,0.301,0.005,0.31,0.181c0.008,0.091-0.04,0.161,0.144,0.143
+                       c0.21-0.018,0.296,0.079,0.234,0.238c-0.127,0.33-0.335,0.606-0.794,0.688c0.05,0.078,0.098,0.155,0.146,0.23
+                       c0.047,0.08,0.124,0.098,0.215,0.059c0.062-0.027,0.119-0.064,0.184-0.086c0.119-0.04,0.216,0.018,0.2,0.122
+                       c-0.029,0.17-0.036,0.332-0.244,0.459c-0.22,0.136-0.388,0.338-0.56,0.521c-0.122,0.126-0.189,0.254-0.053,0.438
+                       c0.129,0.171,0.098,0.391-0.053,0.575c-0.05,0.063-0.103,0.124-0.029,0.195c0.062,0.063,0.148,0.059,0.239,0.047
+                       c0.172-0.022,0.344-0.042,0.518-0.059c0.088-0.007,0.191,0,0.237,0.068c0.117,0.183,0.268,0.138,0.439,0.073
+                       c0.182-0.066,0.378-0.051,0.568-0.024c0.158,0.02,0.219,0.142,0.141,0.269c-0.031,0.053-0.079,0.098-0.11,0.149
+                       c-0.059,0.102-0.275,0.015-0.278,0.155c0,0.08,0.08,0.158,0.108,0.242c0.02,0.057-0.009,0.117-0.071,0.153
+                       c-0.044,0.024-0.096,0.037-0.136,0.067c-0.101,0.07-0.079,0.144,0.055,0.186c0.293,0.091,0.578,0.218,0.911,0.138
+                       c0.062-0.016,0.141,0.011,0.167,0.078c0.026,0.064-0.024,0.11-0.079,0.147c-0.081,0.055-0.16,0.141-0.251,0.153
+                       c-0.22,0.024-0.335,0.171-0.45,0.279c-0.151,0.142-0.277,0.291-0.476,0.391c-0.121,0.061-0.215,0.171-0.158,0.302
+                       c0.062,0.14-0.004,0.242-0.126,0.302c-0.225,0.118-0.41,0.271-0.605,0.415c-0.048,0.037-0.123,0.069-0.182,0.069
+                       c-0.132,0-0.239,0.013-0.32,0.113c-0.105,0.133-0.248,0.249-0.282,0.417c0,0.016,0.002,0.029,0.004,0.045
+                       c0.018,0.133,0.468,0.444,0.624,0.399c0.241-0.071,0.469-0.033,0.7,0.002c0.01-0.275,0.259-0.379,0.496-0.491
+                       c0.059-0.029,0.136-0.029,0.189,0.006c0.138,0.099,0.318,0.045,0.466,0.101c0.041-0.187-0.021-0.352-0.156-0.499
+                       c-0.042-0.049-0.045-0.101-0.002-0.151c0.058-0.067,0.103-0.14,0.175-0.196c0.069-0.052,0.16-0.095,0.248-0.12
+                       c0.089-0.023,0.139,0.061,0.213,0.087c0.06,0.02,0.127,0.073,0.177,0.062c0.334-0.07,0.415,0.125,0.418,0.319
+                       c0.002,0.177,0.092,0.243,0.256,0.298c0.234,0.076,0.426,0.203,0.588,0.36c0.121,0.122,0.141,0.18,0.029,0.289
+                       c-0.125,0.117-0.177,0.257-0.248,0.394c-0.077,0.14-0.033,0.34-0.268,0.407c-0.006,0-0.006,0.027,0.002,0.038
+                       c0.004,0.011,0.024,0.023,0.033,0.021c0.048-0.008,0.097-0.017,0.136-0.039c0.139-0.076,0.278-0.155,0.413-0.236
+                       c-0.086-0.089-0.215-0.166-0.186-0.326c0.286-0.057,0.573-0.21,0.882,0.033c0.059,0.047,0.187,0.042,0.286,0.047
+                       c0.027,0.003,0.081-0.051,0.085-0.082c0.005-0.089-0.085-0.142-0.158-0.195c-0.276-0.19-0.292-0.399-0.122-0.654
+                       c0.129-0.193,0.196-0.413,0.287-0.611c0.163,0.011,0.286,0.024,0.411,0.032c0.05,0.002,0.103-0.005,0.151-0.014
+                       c0.22-0.042,0.325-0.206,0.239-0.375c-0.031-0.055-0.084-0.102-0.122-0.155c-0.123-0.173-0.009-0.311,0.101-0.454
+                       c0.108-0.135,0.242-0.21,0.444-0.155c0.108,0.029,0.199,0.031,0.244-0.073c0.008-0.018,0.017-0.037,0.024-0.057
+                       c0.044-0.138,0.175-0.193,0.328-0.228c0.289-0.069,0.58-0.144,0.887-0.129c0.062,0.001,0.125,0.064,0.176,0.105
+                       c0.108,0.085,0.228,0.162,0.265,0.291c0.041,0.147,0.146,0.124,0.287,0.083c0.362-0.116,0.45-0.093,0.639,0.1
+                       c0.114,0.117,0.176,0.251,0.198,0.39c0.057,0.352,0.013,0.719,0.388,0.995c0.057,0.039,0.055,0.152,0.05,0.23
+                       c-0.013,0.184-0.013,0.371-0.153,0.53c-0.084,0.093-0.079,0.2-0.005,0.289c0.187,0.233,0.136,0.42-0.134,0.583
+                       c-0.02,0.014-0.01,0.083,0.014,0.112c0.026,0.029,0.083,0.059,0.127,0.059c0.289,0.004,0.518-0.151,0.792-0.2
+                       c0.198-0.038,0.294-0.013,0.339,0.131c0.031,0.098,0.058,0.2,0.07,0.302c0.029,0.227,0.167,0.329,0.445,0.424
+                       c0.721,0.252,0.984,0.609,1.049,1.252c0.009,0.082,0.062,0.093,0.153,0.086c0.152-0.011,0.248-0.017,0.308-0.004
+                       c0.022-0.062,0.005-0.122-0.074-0.177c-0.347-0.251-0.339-0.253-0.54-0.783c-0.024-0.063-0.099-0.112-0.156-0.16
+                       c-0.11-0.098-0.156-0.192-0.029-0.304c0.096-0.085,0.189-0.173,0.29-0.257c0.492-0.413,0.638-0.45,1.212-0.123
+                       c0.507,0.289,1.077,0.495,1.521,0.866c0.251,0.209,0.626,0.277,0.858,0.535c0.105,0.116,0.313,0.016,0.483-0.063
+                       c-0.284-0.306-0.686-0.503-0.964-0.814c-0.108-0.118-0.191-0.216-0.208-0.358c-0.016-0.12-0.055-0.208-0.2-0.281
+                       c-0.251-0.124-0.285-0.406-0.175-0.55c0.173-0.224-0.049-0.477,0.162-0.674c0.079-0.071,0.032-0.179-0.03-0.264
+                       c-0.298-0.383-0.434-0.817-0.502-1.265c-0.037-0.224-0.125-0.409-0.347-0.544c-0.091-0.053-0.173-0.122-0.254-0.187
+                       c-0.395-0.312-0.408-0.363-0.169-0.789c0.047-0.089,0.141-0.171,0.038-0.249c-0.258-0.193-0.408-0.44-0.578-0.685
+                       c-0.077-0.116-0.322-0.152-0.309-0.311c0.011-0.211,0.27-0.287,0.426-0.413c0.117-0.096,0.294-0.135,0.435-0.21
+                       c0.197-0.105,0.201-0.149,0.068-0.342c-0.173-0.244-0.173-0.242,0.06-0.438c0.057-0.048,0.096-0.119,0.162-0.157
+                       c0.608-0.348,0.571-0.477,1.225-0.067c0.112,0.071,0.231,0.132,0.34,0.193c0.2-0.08,0.047-0.151,0.021-0.222
+                       c-0.038-0.113-0.105-0.224-0.108-0.337c-0.002-0.091,0.065-0.191-0.033-0.262c-0.266-0.191-0.177-0.364,0.02-0.542
+                       c0.115-0.102,0.222-0.208,0.33-0.314c0.143-0.144,0.316-0.183,0.529-0.12c0.105,0.031,0.215,0.049,0.325,0.068
+                       c0.145,0.028,0.318,0.207,0.43,0.034c0.079-0.124-0.096-0.258-0.208-0.362c-0.148-0.137-0.33-0.242-0.268-0.479
+                       c0.22-0.825-0.172-1.532-0.672-2.2c-0.136-0.184-0.108-0.302,0.044-0.432c0.095-0.085,0.186-0.191,0.305-0.23
+                       c0.218-0.075,0.309-0.211,0.311-0.384c0.009-0.492,0.455-0.665,0.87-0.856c0.103-0.047,0.235-0.047,0.323,0.017
+                       c0.235,0.174,0.546,0.085,0.799,0.183v0.002h0.003c0.091,0.226,0.408,0.226,0.562,0.395c0.013,0.011,0.111-0.014,0.136-0.042
+                       c0.031-0.029,0.048-0.096,0.031-0.126c-0.036-0.059-0.093-0.135-0.155-0.149c-0.187-0.04-0.383-0.053-0.574-0.078
+                       c0,0-0.003,0-0.003-0.002c0.075-0.32-0.026-0.601-0.251-0.861c-0.074-0.084-0.077-0.173,0-0.259
+                       c0.099-0.112,0.182-0.24,0.303-0.328c0.125-0.091,0.278-0.163,0.432-0.205c0.151-0.037,0.237,0.106,0.364,0.153
+                       c0.101,0.038,0.215,0.132,0.299,0.114c0.579-0.116,0.71,0.222,0.707,0.552c0,0.304,0.151,0.424,0.434,0.519
+                       c0.398,0.135,0.724,0.355,0.997,0.633c0.203,0.208,0.237,0.308,0.038,0.493c-0.215,0.201-0.308,0.439-0.437,0.671
+                       c-0.134,0.238-0.067,0.584-0.474,0.692c-0.007,0-0.009,0.045,0.003,0.065c0.011,0.018,0.045,0.045,0.062,0.04
+                       c0.079-0.016,0.165-0.029,0.231-0.065c0.355-0.191,0.706-0.386,1.055-0.584c0.206-0.115,0.395-0.133,0.619-0.015
+                       c0.196,0.1,0.366,0.213,0.526,0.348c0.361,0.313,0.389,0.383-0.003,0.684c-0.297,0.23-0.365,0.583-0.686,0.789
+                       c-0.031,0.02-0.017,0.089-0.024,0.136c-0.019,0.135,0.105,0.249,0.242,0.215c0.081-0.017,0.158-0.047,0.237-0.071
+                       c0.203-0.066,0.394-0.206,0.628-0.08c0.333,0.175,0.665,0.358,0.832,0.674c0.024,0.045-0.018,0.142-0.066,0.185
+                       c-0.156,0.135-0.323,0.261-0.498,0.379c-0.246,0.165-0.323,0.373-0.275,0.628c0.022,0.118,0.005,0.24,0.034,0.353
+                       c0.097,0.391,0.245,0.773,0.021,1.173c-0.053,0.092,0.002,0.233,0.017,0.35c0.026,0.193,0.143,0.286,0.38,0.31
+                       c0.713,0.075,0.909,0.165,1.396,0.642c-0.06,0.193-0.251,0.307-0.402,0.444c-0.165,0.151-0.285,0.291-0.101,0.493
+                       c0.057,0.063,0.017,0.138-0.042,0.193c-0.092,0.086-0.213,0.157-0.175,0.3c0.065,0.244-0.401,0.521-0.036,0.701
+                       c0.266,0.129,0.444-0.224,0.687-0.334c0.229-0.104,0.382-0.131,0.599,0.01c0.182,0.116,0.344,0.23,0.481,0.386
+                       c0.255,0.297,0.279,0.305-0.033,0.593c-0.164,0.147-0.237,0.303-0.297,0.491c-0.085,0.273-0.194,0.623-0.163,0.819
+                       c0.014,0.1-0.003,0.188-0.094,0.255c-0.175,0.132-0.101,0.262,0.007,0.375c0.235,0.254,0.316,0.48-0.005,0.739
+                       c-0.139,0.114-0.17,0.291-0.11,0.466c0.038,0.113,0.048,0.23,0.064,0.348c0.043,0.308-0.042,0.557-0.413,0.699
+                       c-0.096,0.035-0.167,0.12-0.235,0.171c-0.052,0.224,0.261,0.155,0.296,0.317c0.031,0.143,0.213,0.209,0.33,0.307
+                       c0.177,0.153,0.194,0.35-0.018,0.497c-0.349,0.242-0.311,0.577-0.371,0.886c-0.017,0.086,0.051,0.202-0.055,0.257
+                       c-0.287,0.155-0.414,0.362-0.421,0.65c-0.005,0.118-0.165,0.067-0.272,0.067c-0.31,0-0.371,0.029-0.39,0.249
+                       c-0.033,0.359-0.134,0.695-0.38,0.996c-0.045,0.055-0.038,0.142,0.041,0.19c0.081,0.052,0.163,0.021,0.218-0.037
+                       c0.201-0.211,0.445-0.361,0.772-0.389c0.156-0.011,0.261-0.073,0.337-0.181c0.091-0.132,0.237-0.193,0.41-0.225
+                       c0.222-0.039,0.38-0.151,0.556-0.277c0.354-0.255,0.775-0.446,1.172-0.654c0.033-0.018,0.139,0,0.151,0.024
+                       c0.134,0.275,0.526,0.302,0.707,0.559c0.225,0.318,0.299,0.462,0.083,0.743c-0.045,0.061-0.119,0.102-0.172,0.155
+                       c-0.232,0.236-0.356,0.505-0.156,0.777c0.167,0.223-0.029,0.348-0.103,0.51c-0.005,0-0.007-0.002-0.009-0.002
+                       c-0.002,0.002-0.002,0.005-0.005,0.006c-0.191-0.006-0.383-0.024-0.574-0.011c-0.143,0.006-0.265,0.078-0.317,0.2
+                       c-0.017,0.04,0,0.091,0.011,0.134c0.005,0.019,0.046,0.048,0.057,0.044c0.292-0.096,0.676-0.044,0.823-0.366h0.011
+                       c0-0.001,0.002-0.001,0.002-0.004c0.487,0.122,0.644,0.489,0.84,0.824c0.053,0.09,0.011,0.183-0.057,0.263
+                       c-0.065,0.078-0.129,0.155-0.204,0.226c-0.277,0.267-0.4,0.535-0.184,0.894c0.151,0.249,0.053,0.397-0.296,0.477
+                       c-0.588,0.134-0.99,0.429-1.262,0.868c-0.182,0.291-0.32,0.577-0.18,0.933c0.136,0.335-0.05,0.65-0.284,0.925
+                       c-0.113,0.133-0.269,0.242-0.395,0.369c-0.129,0.131-0.246,0.23-0.485,0.221c-0.27-0.005-0.048,0.319-0.283,0.369
+                       c-0.101,0.022-0.316,0.016-0.27,0.091c0.169,0.277-0.024,0.499-0.077,0.743c-0.033,0.151,0.103,0.281,0.285,0.291
+                       c0.227,0.008,0.452-0.006,0.626-0.151c0.225-0.185,0.445-0.373,0.804-0.249c0.021,0.006,0.065-0.004,0.079-0.018
+                       c0.388-0.462,1.191-0.393,1.571-0.87c0.033-0.042,0.151-0.055,0.227-0.049c0.237,0.022,0.006,0.366,0.305,0.342
+                       c0.181-0.016,0.339-0.042,0.397,0.147c0.007,0.024,0.018,0.047,0.025,0.069c0.056,0.188,0.436,0.184,0.379,0.426v0.002
+                       c0.011,0.013,0.023,0.027,0.036,0.027c0.081,0.006,0.064-0.049,0.057-0.085c-0.026-0.126,0.037-0.206,0.184-0.22
+                       c0.206-0.017,0.375-0.161,0.603-0.117c0.033,0.006,0.095-0.033,0.121-0.065c0.083-0.09,0.196-0.182,0.224-0.289
+                       c0.041-0.135,0.082-0.217,0.265-0.199c0.125,0.013,0.184-0.067,0.243-0.142c0.082-0.108,0.2-0.147,0.354-0.153
+                       c0.184-0.006,0.227-0.079,0.181-0.222c-0.052-0.163-0.198-0.226-0.365-0.287c-0.167-0.057-0.193-0.114-0.094-0.233
+                       c0.091-0.106,0.098-0.173-0.026-0.255c-0.151-0.1-0.277-0.232-0.442-0.309c-0.175-0.084-0.328-0.151-0.33-0.348
+                       c-0.003-0.09-0.102-0.149-0.179-0.21c-0.101-0.081-0.199-0.165-0.292-0.254c-0.059-0.055-0.024-0.146,0.062-0.182
+                       c0.016-0.006,0.033-0.011,0.048-0.015c0.101-0.02,0.23-0.014,0.263-0.116c0.048-0.149,0.018-0.297-0.108-0.413
+                       c-0.118-0.108-0.256-0.2-0.379-0.304c-0.056-0.051,0-0.161,0.087-0.173c0.05-0.006,0.103-0.011,0.152-0.008
+                       c0.101,0.004,0.194,0.113,0.287,0.037c0.055-0.041,0.05-0.135,0.084-0.2c0.032-0.062,0.115-0.096,0.173-0.062
+                       c0.182,0.104,0.314,0.049,0.445-0.067c0.033-0.029,0.081-0.047,0.124-0.071c-0.22-0.184-0.22-0.184-0.215-0.446
+                       c0.002-0.251,0.004-0.259,0.313-0.279c0.11-0.007,0.193-0.024,0.29-0.075c0.237-0.124,0.479-0.171,0.709,0.027
+                       c0.129,0.11,0.294,0.067,0.448,0.051c0.066-0.004,0.105-0.112,0.044-0.14c-0.363-0.17-0.26-0.483-0.327-0.742
+                       c-0.018-0.081,0.032-0.142,0.096-0.195c0.115-0.093,0.074-0.207,0.007-0.283c-0.112-0.129-0.18-0.302-0.31-0.393
+                       c-0.206-0.139-0.287-0.251-0.184-0.475c0.038-0.082-0.087-0.21-0.12-0.322c-0.06-0.191-0.031-0.225,0.215-0.317
+                       c0.239-0.089,0.356-0.295,0.275-0.491c-0.029-0.069-0.067-0.136-0.093-0.204c-0.031-0.089,0.064-0.173,0.182-0.165
+                       c0.016,0.002,0.038-0.002,0.05,0.006c0.229,0.158,0.38-0.004,0.552-0.093c0.094-0.048,0.122-0.115,0.044-0.177
+                       c-0.11-0.088-0.129-0.206-0.173-0.314c-0.097-0.246-0.045-0.411,0.233-0.486c0.246-0.067,0.404-0.228,0.619-0.326
+                       c0.134-0.061,0.193-0.157,0.173-0.293c-0.013-0.07-0.007-0.147,0.004-0.217c0.029-0.147,0.127-0.201,0.301-0.152
+                       c0.132,0.04,0.258,0.085,0.404,0.063c0.094-0.013,0.186,0.018,0.21,0.098c0.041,0.126,0.148,0.179,0.268,0.251
+                       c0.132,0.078,0.215,0.198,0.423,0.149c0.108-0.024,0.187,0.071,0.193,0.169c0.017,0.235-0.017,0.468-0.095,0.694
+                       c-0.221,0.635-0.129,0.464,0.253,0.892c0.038,0.045,0.134,0.067,0.151,0.112c0.055,0.149,0.163,0.177,0.323,0.14
+                       c0.048-0.014,0.103-0.014,0.156-0.016c0.084-0.002,0.141,0.071,0.088,0.12c-0.127,0.115-0.201,0.235-0.149,0.397
+                       c0.013,0.033-0.014,0.09-0.047,0.12c-0.281,0.24-0.338,0.601-0.665,0.817c0.26,0.117,0.265,0.121,0.384-0.01
+                       c0.187-0.204,0.443-0.319,0.718-0.41c0.015-0.005,0.035,0.002,0.053,0.002c0.138-0.005,0.108-0.242,0.312-0.159
+                       c0.111,0.044,0.204,0.117,0.333,0.123c0.05,0.002,0.105,0.014,0.151,0.034c0.052,0.022,0.071,0.073,0.042,0.11
+                       c-0.045,0.062-0.112,0.114-0.165,0.171c-0.044,0.049-0.053,0.1-0.022,0.163c0.108,0.202,0.105,0.204-0.028,0.306
+                       c-0.143,0.107-0.284,0.212-0.375,0.359c-0.048,0.078-0.125,0.147-0.203,0.203c-0.091,0.066-0.225,0.097-0.297,0.173
+                       c-0.108,0.113-0.176,0.253-0.26,0.376c0.009,0.105,0.116,0.103,0.191,0.127c0.077,0.024,0.11,0.119,0.217,0.088
+                       c0.098-0.104-0.029-0.255,0.072-0.335c0.11-0.087,0.266-0.132,0.402-0.195c0.044-0.022,0.097-0.038,0.138-0.065
+                       c0.143-0.102,0.294-0.1,0.426-0.002c0.139,0.102,0.297,0.147,0.464,0.191c0.07,0.018,0.116,0.093,0.06,0.142
+                       c-0.234,0.218-0.349,0.503-0.604,0.712c-0.125,0.1-0.276,0.173-0.401,0.275c0.042,0.132,0.213,0.201,0.203,0.351
+                       c-0.009,0.122,0.139,0.156,0.228,0.222c0.11,0.081,0.121,0.152,0.024,0.222c-0.136,0.101-0.254,0.195-0.232,0.369
+                       c0.009,0.093-0.077,0.155-0.169,0.206c-0.206,0.112-0.4,0.24-0.608,0.345c-0.117,0.057-0.172,0.139-0.222,0.235l0.005,0.006
+                       c0.217-0.042,0.454-0.008,0.645-0.139c0.083-0.058,0.204-0.075,0.296-0.03c0.158,0.075,0.261,0.004,0.375-0.067
+                       c0.07-0.041,0.139-0.086,0.217-0.115c0.16-0.059,0.338,0.011,0.335,0.161c-0.002,0.142,0.018,0.178,0.184,0.138
+                       c0.086-0.02,0.158-0.049,0.231-0.088c0.118-0.063,0.194-0.032,0.225,0.074c0.021,0.072,0.029,0.146,0.047,0.216
+                       c0.024,0.093,0.175,0.184,0.065,0.277c-0.118,0.098-0.211,0.246-0.414,0.24c-0.088-0.002-0.176,0.009-0.241,0.061
+                       c-0.124,0.1-0.227,0.228-0.367,0.302c-0.142,0.073-0.34,0.066-0.445,0.204l0.002,0.002c0.108-0.014,0.208-0.005,0.294,0.059
+                       c0.077,0.058,0.158,0.112,0.25,0.175c0.088-0.091,0.158-0.172,0.242-0.241c0.124-0.102,0.279-0.063,0.312,0.08
+                       c0.017,0.07,0.002,0.144,0.002,0.23c0.16,0.04,0.296-0.037,0.441-0.069c0.086-0.019,0.165-0.035,0.253-0.011
+                       c0.093,0.027,0.153,0.098,0.115,0.166c-0.095,0.174-0.196,0.345-0.291,0.515c-0.077,0.14-0.218,0.171-0.383,0.195
+                       c-0.316,0.047-0.54,0.238-0.784,0.395c-0.041,0.027-0.05,0.086-0.007,0.116c0.033,0.024,0.103,0.037,0.139,0.024
+                       c0.079-0.029,0.145-0.081,0.217-0.118c0.048-0.024,0.119-0.035,0.134,0.014c0.055,0.177,0.222,0.204,0.395,0.235
+                       c0.102,0.02,0.117,0.096,0.036,0.171c-0.07,0.067-0.149,0.124-0.215,0.191c-0.086,0.086-0.069,0.177,0.059,0.202
+                       c0.187,0.035,0.278,0.102,0.248,0.271c-0.009,0.051,0.061,0.088,0.103,0.059c0.258-0.159,0.39-0.031,0.543,0.138
+                       c0.115,0.126,0.031,0.184-0.017,0.3c-0.127,0.292-0.378,0.421-0.696,0.517c-0.143,0.044-0.27,0.129-0.399,0.199
+                       c-0.02,0.012-0.026,0.058-0.014,0.075c0.014,0.021,0.053,0.034,0.086,0.04c0.127,0.02,0.239-0.006,0.33-0.091
+                       c0.125-0.11,0.261-0.139,0.419-0.039c0.112,0.071,0.229,0.051,0.341-0.004c0.046-0.022,0.094-0.045,0.142-0.061
+                       c0.095-0.029,0.172-0.027,0.224,0.006c0.022-0.059,0.048-0.117,0.048-0.177c0-0.139-0.143-0.053-0.184-0.155
+                       c-0.02-0.051-0.053-0.096-0.075-0.149c-0.049-0.126-0.009-0.249,0.096-0.269c0.124-0.027,0.253-0.042,0.375,0.024
+                       c0.112,0.063,0.213,0.109,0.292-0.073c0.029-0.069,0.099-0.074,0.156-0.069c0.115,0.016,0.229,0.038,0.344,0.061
+                       c0.059,0.013,0.117,0.015,0.157-0.047c0.051-0.071,0.015-0.133-0.018-0.195c-0.101-0.184-0.12-0.404-0.034-0.575
+                       c0.089-0.184,0.046-0.31-0.033-0.437c-0.117-0.185-0.227-0.387-0.373-0.523c-0.136-0.129-0.141-0.288-0.16-0.459
+                       c-0.011-0.104,0.053-0.163,0.132-0.122c0.043,0.022,0.081,0.061,0.122,0.087c0.062,0.037,0.11,0.019,0.143-0.061
+                       c0.031-0.075,0.062-0.153,0.096-0.233c-0.305-0.081-0.441-0.355-0.526-0.686c-0.04-0.159,0.017-0.255,0.156-0.237
+                       c0.121,0.017,0.09-0.054,0.095-0.144c0.006-0.177,0.082-0.236,0.206-0.18c0.031,0.013,0.063,0.037,0.093,0.059
+                       c0.074,0.053,0.153,0.073,0.228,0.004c0.103-0.1,0.193-0.071,0.275,0.04c0.063,0.084,0.136,0.11,0.221,0.09
+                       c0.021-0.006,0.047-0.019,0.057-0.039c0.007-0.02,0.002-0.067-0.01-0.075c-0.086-0.071-0.169-0.155-0.265-0.2
+                       c-0.209-0.096-0.378-0.224-0.459-0.519c-0.033-0.114-0.088-0.171-0.011-0.297c0.101-0.171,0.186-0.297,0.358-0.137
+                       c0.029,0.025,0.074-0.01,0.07-0.061c-0.02-0.169,0.04-0.235,0.162-0.271c0.086-0.024,0.098-0.116,0.04-0.202
+                       c-0.045-0.067-0.098-0.126-0.143-0.191c-0.053-0.075-0.044-0.151,0.024-0.17c0.114-0.034,0.224-0.061,0.263-0.236
+                       c0.009-0.051,0.057-0.038,0.088-0.013c0.048,0.037,0.09,0.088,0.143,0.117c0.024,0.014,0.07,0,0.092-0.024
+                       c0.029-0.029,0.024-0.089-0.005-0.116c-0.16-0.157-0.309-0.347-0.519-0.395c-0.11-0.023-0.203-0.055-0.253-0.194
+                       c-0.062-0.171-0.129-0.342-0.194-0.515c-0.024-0.069,0.014-0.142,0.076-0.167c0.059-0.024,0.113-0.008,0.168,0.008
+                       c0.095,0.034,0.186,0.112,0.292,0.071c0-0.086-0.01-0.161,0.002-0.23c0.022-0.141,0.124-0.182,0.207-0.08
+                       c0.055,0.069,0.101,0.151,0.158,0.239c0.063-0.062,0.116-0.115,0.167-0.172c0.058-0.065,0.122-0.075,0.194-0.061l0.003-0.002
+                       c-0.072-0.137-0.202-0.131-0.294-0.204c-0.096-0.073-0.163-0.202-0.244-0.302c-0.043-0.051-0.103-0.063-0.162-0.059
+                       c-0.134,0.003-0.196-0.143-0.274-0.24c-0.071-0.093,0.026-0.185,0.044-0.277c0.013-0.071,0.017-0.147,0.031-0.216
+                       c0.022-0.109,0.072-0.14,0.151-0.075c0.048,0.039,0.095,0.069,0.151,0.089c0.11,0.037,0.124,0.002,0.124-0.138
+                       c-0.002-0.151,0.116-0.224,0.22-0.163c0.053,0.029,0.101,0.073,0.147,0.116c0.074,0.071,0.143,0.142,0.246,0.065
+                       c0.062-0.045,0.141-0.029,0.198,0.029c0.127,0.133,0.283,0.1,0.426,0.139l0.005-0.006c-0.033-0.093-0.069-0.175-0.148-0.233
+                       c-0.139-0.106-0.266-0.234-0.402-0.344c-0.062-0.051-0.119-0.113-0.112-0.206c0.014-0.173-0.065-0.269-0.153-0.369
+                       c-0.067-0.071-0.057-0.144,0.015-0.222c0.06-0.067,0.157-0.1,0.15-0.222c-0.007-0.153,0.108-0.22,0.134-0.353
+                       c-0.084-0.101-0.181-0.173-0.266-0.275c-0.169-0.207-0.244-0.493-0.401-0.711c-0.036-0.049-0.005-0.124,0.041-0.142
+                       c0.11-0.045,0.215-0.088,0.306-0.19c0.089-0.098,0.189-0.1,0.285,0.002c0.026,0.027,0.059,0.041,0.09,0.064
+                       c0.088,0.063,0.195,0.106,0.266,0.195c0.067,0.08-0.017,0.232,0.048,0.336c0.072,0.031,0.096-0.065,0.145-0.089
+                       c0.048-0.024,0.12-0.022,0.125-0.126c-0.055-0.124-0.101-0.264-0.172-0.377c-0.048-0.075-0.136-0.107-0.196-0.173
+                       c-0.054-0.055-0.104-0.124-0.135-0.202c-0.059-0.147-0.156-0.253-0.248-0.362c-0.09-0.1-0.09-0.102-0.019-0.304
+                       c0.021-0.065,0.015-0.114-0.014-0.163c-0.036-0.057-0.079-0.108-0.108-0.17c-0.019-0.038-0.008-0.091,0.026-0.114
+                       c0.031-0.018,0.066-0.029,0.099-0.031c0.087-0.006,0.149-0.08,0.221-0.124c0.136-0.083,0.114,0.155,0.207,0.159
+                       c0.013,0,0.024-0.008,0.034-0.002c0.184,0.091,0.351,0.206,0.475,0.41c0.079,0.129,0.082,0.127,0.256,0.01
+                       c-0.217-0.216-0.256-0.577-0.439-0.819c-0.024-0.027-0.041-0.084-0.033-0.118c0.036-0.164-0.015-0.284-0.098-0.397
+                       c-0.033-0.048,0.005-0.122,0.06-0.119c0.033,0,0.07,0.001,0.103,0.013c0.105,0.04,0.176,0.012,0.212-0.138
+                       c0.013-0.044,0.074-0.066,0.102-0.11c0.253-0.428,0.312-0.257,0.167-0.892c-0.052-0.226-0.074-0.46-0.062-0.695
+                       c0.005-0.098,0.055-0.195,0.126-0.169c0.138,0.05,0.193-0.07,0.282-0.151c0.077-0.069,0.148-0.122,0.174-0.249
+                       c0.017-0.08,0.079-0.11,0.141-0.098c0.098,0.022,0.18-0.024,0.268-0.062c0.116-0.049,0.18,0.002,0.199,0.151
+                       c0.009,0.071,0.011,0.147,0.002,0.218c-0.015,0.135,0.026,0.233,0.117,0.292c0.142,0.098,0.244,0.26,0.41,0.327
+                       c0.184,0.075,0.217,0.237,0.152,0.485c-0.027,0.108-0.04,0.224-0.115,0.313c-0.052,0.064-0.031,0.131,0.029,0.179
+                       c0.112,0.088,0.215,0.251,0.366,0.093c0.007-0.01,0.022-0.007,0.033-0.007c0.079-0.009,0.143,0.075,0.123,0.165
+                       c-0.017,0.069-0.046,0.135-0.065,0.204c-0.053,0.195,0.024,0.403,0.182,0.491c0.165,0.091,0.184,0.126,0.147,0.318
+                       c-0.024,0.11-0.108,0.24-0.081,0.322c0.069,0.221,0.014,0.332-0.123,0.475c-0.086,0.091-0.131,0.263-0.206,0.392
+                       c-0.046,0.076-0.071,0.189,0.005,0.283c0.043,0.053,0.077,0.113,0.063,0.195c-0.044,0.259,0.024,0.572-0.215,0.743
+                       c-0.039,0.027-0.015,0.133,0.031,0.139c0.1,0.016,0.211,0.061,0.294-0.051c0.152-0.198,0.316-0.153,0.472-0.027
+                       c0.062,0.051,0.119,0.069,0.19,0.076c0.206,0.019,0.206,0.025,0.208,0.279c0.003,0.261,0.003,0.261-0.143,0.446
+                       c0.028,0.024,0.062,0.041,0.083,0.07c0.086,0.116,0.174,0.169,0.294,0.065c0.039-0.031,0.094,0.002,0.112,0.065
+                       c0.024,0.064,0.02,0.157,0.055,0.199c0.065,0.076,0.127-0.033,0.192-0.037c0.033-0.004,0.069,0.002,0.102,0.008
+                       c0.055,0.012,0.094,0.123,0.055,0.173c-0.079,0.104-0.172,0.193-0.248,0.303c-0.083,0.117-0.103,0.267-0.071,0.414
+                       c0.021,0.102,0.106,0.096,0.174,0.116c0.009,0.002,0.022,0.009,0.031,0.016c0.057,0.035,0.081,0.126,0.044,0.182
+                       c-0.063,0.086-0.127,0.171-0.194,0.253c-0.053,0.063-0.117,0.12-0.119,0.211c-0.002,0.197-0.103,0.263-0.22,0.348
+                       c-0.108,0.078-0.194,0.208-0.292,0.308c-0.084,0.082-0.079,0.147-0.02,0.255c0.067,0.12,0.05,0.174-0.059,0.234
+                       c-0.112,0.059-0.208,0.121-0.244,0.286c-0.029,0.144,0,0.216,0.121,0.222c0.101,0.006,0.18,0.045,0.235,0.153
+                       c0.038,0.075,0.077,0.153,0.16,0.142c0.122-0.018,0.151,0.063,0.175,0.2c0.022,0.104,0.093,0.195,0.148,0.289
+                       c0.02,0.031,0.061,0.071,0.083,0.064c0.149-0.045,0.261,0.1,0.397,0.118c0.099,0.014,0.139,0.09,0.125,0.22
+                       c-0.004,0.035-0.017,0.09,0.036,0.084c0.014,0,0.026-0.041,0.046-0.062c0.081-0.091,0.119-0.085,0.127,0.045
+                       c0.009,0.249,0.102,0.449,0.196,0.651c0.028,0.065,0.066,0.12,0.105,0.176c0.057,0.082,0.047,0.161-0.01,0.23
+                       c-0.059,0.069-0.124,0.135-0.189,0.195c-0.048,0.042-0.097,0.073-0.117,0.153c-0.015,0.057-0.035,0.104-0.055,0.153
+                       c0.007,0.006,0.017,0.01,0.024,0.014c0.237,0.173,0.547,0.084,0.801,0.184c0.074-0.319-0.029-0.603-0.252-0.86
+                       c-0.071-0.087-0.076-0.175,0-0.26c0.098-0.114,0.182-0.239,0.307-0.33c0.123-0.089,0.275-0.162,0.43-0.202
+                       c0.15-0.04,0.237,0.104,0.363,0.151c0.101,0.037,0.215,0.131,0.3,0.114c0.579-0.116,0.71,0.221,0.707,0.551
+                       c0,0.305,0.151,0.424,0.433,0.52c0.399,0.135,0.724,0.355,0.998,0.632c0.205,0.208,0.237,0.308,0.038,0.495
+                       c-0.215,0.2-0.309,0.437-0.437,0.672c-0.134,0.238-0.068,0.581-0.472,0.69c-0.009,0.002-0.009,0.047,0,0.064
+                       c0.011,0.018,0.046,0.045,0.062,0.04c0.079-0.016,0.165-0.029,0.232-0.065c0.354-0.19,0.705-0.386,1.054-0.583
+                       c0.206-0.116,0.395-0.134,0.623-0.016c0.193,0.102,0.366,0.213,0.521,0.351c0.364,0.313,0.39,0.382,0,0.682
+                       c-0.297,0.23-0.366,0.583-0.687,0.789c-0.031,0.02-0.016,0.089-0.024,0.136c-0.018,0.136,0.106,0.249,0.243,0.218
+                       c0.078-0.02,0.158-0.049,0.234-0.073c0.206-0.067,0.397-0.205,0.632-0.08c0.333,0.177,0.665,0.357,0.832,0.674
+                       c0.024,0.047-0.019,0.141-0.066,0.184c-0.156,0.136-0.324,0.261-0.498,0.379c-0.246,0.167-0.323,0.376-0.275,0.631
+                       c0.021,0.115,0.004,0.237,0.033,0.351c0.098,0.391,0.246,0.772,0.022,1.172c-0.053,0.093,0.002,0.234,0.016,0.351
+                       c0.026,0.193,0.144,0.286,0.38,0.311c0.713,0.075,0.91,0.164,1.397,0.642c-0.06,0.192-0.252,0.308-0.399,0.444
+                       c-0.166,0.15-0.287,0.292-0.103,0.492c0.055,0.063,0.017,0.138-0.044,0.193c-0.09,0.086-0.212,0.157-0.174,0.3
+                       c0.064,0.244-0.402,0.521-0.037,0.701c0.267,0.129,0.445-0.222,0.686-0.33c0.23-0.106,0.382-0.133,0.601,0.01
+                       c0.181,0.115,0.346,0.227,0.479,0.386c0.256,0.297,0.28,0.304-0.036,0.591c-0.16,0.148-0.235,0.304-0.294,0.493
+                       c-0.083,0.27-0.193,0.621-0.162,0.816c0.014,0.1-0.002,0.191-0.093,0.258c-0.177,0.129-0.101,0.259,0.007,0.372
+                       c0.235,0.254,0.315,0.48-0.005,0.74c-0.14,0.113-0.17,0.29-0.11,0.467c0.038,0.112,0.047,0.232,0.064,0.346
+                       c0.044,0.309-0.041,0.56-0.413,0.7c-0.096,0.037-0.168,0.121-0.235,0.17c-0.053,0.224,0.26,0.156,0.297,0.318
+                       c0.031,0.142,0.213,0.208,0.329,0.308c0.156,0.132,0.177,0.297,0.044,0.435c0.011,0,0.02,0,0.031,0.002
+                       c0.132,0.009,0.208-0.007,0.22-0.131c0.096-0.984,0.478-1.527,1.531-1.911c0.404-0.144,0.607-0.3,0.648-0.646
+                       c0.018-0.155,0.055-0.308,0.099-0.46c0.068-0.222,0.204-0.257,0.498-0.199c0.395,0.075,0.729,0.31,1.15,0.304
+                       c0.064-0.003,0.148-0.047,0.184-0.091c0.033-0.045,0.05-0.151,0.022-0.169c-0.392-0.251-0.467-0.537-0.195-0.89
+                       c0.105-0.137,0.116-0.298-0.005-0.442c-0.208-0.243-0.208-0.528-0.224-0.805c-0.007-0.12-0.015-0.291,0.071-0.355
+                       c0.548-0.417,0.483-0.981,0.562-1.516c0.034-0.214,0.127-0.417,0.295-0.597c0.271-0.291,0.4-0.326,0.929-0.151
+                       c0.201,0.066,0.359,0.098,0.417-0.124c0.053-0.198,0.231-0.315,0.387-0.447c0.077-0.064,0.168-0.157,0.256-0.161
+                       c0.446-0.019,0.87,0.096,1.293,0.198c0.22,0.055,0.413,0.14,0.476,0.35c0.009,0.029,0.024,0.057,0.036,0.087
+                       c0.065,0.159,0.196,0.155,0.356,0.11c0.298-0.082,0.491,0.033,0.647,0.24c0.159,0.216,0.327,0.424,0.146,0.687
+                       c-0.055,0.081-0.134,0.151-0.175,0.236c-0.128,0.257,0.027,0.511,0.344,0.575c0.072,0.014,0.149,0.022,0.221,0.02
+                       c0.184-0.011,0.365-0.029,0.6-0.049c0.132,0.304,0.232,0.637,0.417,0.933c0.248,0.388,0.224,0.707-0.175,0.998
+                       c-0.11,0.08-0.239,0.159-0.229,0.297c0.001,0.046,0.081,0.129,0.121,0.126c0.143-0.006,0.332-0.002,0.419-0.073
+                       c0.447-0.371,0.865-0.138,1.284-0.051c0.057,0.35-0.358,0.442-0.373,0.697c0.057,0.11,0.172,0.096,0.279,0.11
+                       c0.555,0.075,0.621,0.169,0.278,0.466c-0.297,0.257-0.462,0.563-0.61,0.879c-0.07,0.153-0.013,0.308,0.224,0.357
+                       c0.204,0.042,0.344,0.131,0.239,0.324c-0.097,0.177-0.165,0.351-0.064,0.537c0.183,0.343,0.196,0.716,0.218,1.1
+                       c0.485,0,0.92,0.113,1.324-0.124c0.084-0.049,0.206-0.027,0.301,0.044c0.305,0.227,0.424,0.456,0.393,0.742
+                       c0.055,0.023,0.12,0.059,0.206,0.113c0.066,0.039,0.136,0.075,0.198,0.112c0.118-0.049,0.026-0.091,0.013-0.132
+                       c-0.024-0.064-0.065-0.129-0.068-0.195c-0.002-0.053,0.036-0.11-0.022-0.153c-0.157-0.108-0.108-0.21,0.006-0.314
+                       c0.064-0.061,0.126-0.122,0.189-0.187c0.084-0.085,0.183-0.108,0.305-0.073c0.063,0.015,0.127,0.027,0.191,0.038
+                       c0.087,0.015,0.189,0.117,0.252,0.015c0.045-0.072-0.058-0.149-0.125-0.208c-0.088-0.08-0.196-0.14-0.163-0.277
+                       c0.12-0.482-0.117-0.89-0.413-1.277c-0.082-0.106-0.068-0.175,0.02-0.253c0.055-0.049,0.105-0.11,0.175-0.138
+                       c0.127-0.044,0.176-0.123,0.176-0.223c0-0.289,0.259-0.391,0.5-0.507c0.057-0.029,0.136-0.029,0.187,0.008
+                       c0.138,0.099,0.318,0.045,0.469,0.101c0.056,0.133,0.24,0.131,0.332,0.225c0.007,0.007,0.065-0.008,0.079-0.023
+                       c0.016-0.02,0.029-0.055,0.016-0.076c-0.021-0.033-0.054-0.078-0.093-0.084c-0.11-0.022-0.222-0.029-0.334-0.041
+                       c0.038-0.187-0.024-0.352-0.156-0.499c-0.044-0.052-0.046-0.103-0.005-0.154c0.057-0.065,0.105-0.139,0.176-0.193
+                       c0.07-0.053,0.158-0.097,0.248-0.122c0.087-0.024,0.14,0.061,0.213,0.087c0.061,0.022,0.127,0.073,0.175,0.064
+                       c0.334-0.073,0.417,0.123,0.418,0.315c0.003,0.178,0.094,0.246,0.258,0.3c0.232,0.075,0.426,0.203,0.586,0.362
+                       c0.122,0.12,0.144,0.177,0.028,0.288c-0.122,0.118-0.174,0.256-0.248,0.393c-0.074,0.14-0.031,0.342-0.268,0.407
+                       c-0.005,0.002-0.005,0.029,0.002,0.037c0.004,0.012,0.026,0.027,0.035,0.024c0.046-0.011,0.096-0.017,0.136-0.04
+                       c0.204-0.113,0.405-0.23,0.608-0.347c0.117-0.069,0.228-0.081,0.362-0.014c0.114,0.057,0.215,0.122,0.307,0.2
+                       c0.215,0.179,0.233,0.22,0.007,0.397c-0.169,0.138-0.207,0.344-0.391,0.466c-0.02,0.012-0.009,0.051-0.013,0.078
+                       c-0.009,0.08,0.065,0.147,0.141,0.126c0.048-0.013,0.094-0.029,0.14-0.045c0.116-0.04,0.227-0.122,0.365-0.051
+                       c0.196,0.1,0.39,0.202,0.493,0.387c0.014,0.027-0.01,0.082-0.039,0.108c-0.088,0.08-0.186,0.153-0.286,0.224
+                       c-0.142,0.098-0.182,0.22-0.153,0.369c0.015,0.067,0.005,0.138,0.024,0.206c0.06,0.225,0.151,0.446,0.024,0.682
+                       c-0.028,0.055,0.005,0.135,0.014,0.204c0.017,0.11,0.087,0.166,0.225,0.177c0.415,0.038,0.53,0.089,0.82,0.364
+                       c-0.034,0.113-0.144,0.179-0.23,0.261c-0.094,0.089-0.163,0.171-0.052,0.287c0.033,0.035,0.009,0.08-0.024,0.114
+                       c-0.053,0.05-0.123,0.092-0.099,0.175c0.039,0.141-0.229,0.308-0.014,0.408c0.156,0.073,0.258-0.131,0.397-0.198
+                       c0.13-0.062,0.22-0.08,0.349,0c0.108,0.067,0.203,0.133,0.284,0.222c0.153,0.171,0.165,0.175-0.014,0.346
+                       c-0.094,0.086-0.134,0.177-0.167,0.288c-0.046,0.158-0.105,0.364-0.087,0.478c0.01,0.057,0,0.11-0.05,0.15
+                       c-0.102,0.075-0.057,0.152,0.008,0.219c0.138,0.143,0.189,0.277,0.005,0.43c-0.079,0.066-0.096,0.171-0.061,0.271
+                       c0.024,0.066,0.032,0.135,0.041,0.204c0.031,0.177-0.017,0.324-0.232,0.408c-0.054,0.024-0.095,0.073-0.134,0.102
+                       c-0.029,0.131,0.151,0.089,0.175,0.183c0.02,0.084,0.126,0.12,0.196,0.177c0.105,0.086,0.115,0.202-0.007,0.291
+                       c-0.201,0.141-0.175,0.337-0.206,0.517c-0.009,0.05,0.031,0.117-0.031,0.15c-0.165,0.093-0.234,0.213-0.237,0.382
+                       c-0.002,0.069-0.095,0.04-0.158,0.04c-0.181,0.001-0.215,0.019-0.224,0.148c-0.017,0.211-0.072,0.407-0.21,0.584
+                       c-0.029,0.033-0.022,0.082,0.024,0.11c0.05,0.029,0.095,0.01,0.127-0.023c0.115-0.125,0.255-0.216,0.447-0.232
+                       c0.089-0.008,0.151-0.047,0.194-0.108c0.053-0.081,0.136-0.116,0.234-0.134c0.132-0.023,0.223-0.09,0.323-0.168
+                       c0.206-0.151,0.447-0.264,0.678-0.389c0.018-0.011,0.081,0,0.086,0.013c0.081,0.16,0.311,0.171,0.419,0.32
+                       c0.007,0.01,0.009,0.014,0.014,0.022c0.017-0.096,0.072-0.1,0.184-0.018c0.026,0.021,0.046,0.061,0.07,0.063
+                       c0.081,0.006,0.062-0.049,0.055-0.084c-0.024-0.127,0.038-0.206,0.184-0.22c0.205-0.018,0.378-0.163,0.602-0.118
+                       c0.033,0.006,0.096-0.033,0.125-0.064c0.083-0.095,0.194-0.185,0.224-0.289c0.039-0.135,0.079-0.218,0.266-0.2
+                       c0.121,0.011,0.184-0.067,0.241-0.142c0.081-0.108,0.202-0.147,0.354-0.153c0.184-0.006,0.228-0.078,0.182-0.222
+                       c-0.053-0.163-0.198-0.226-0.365-0.286c-0.168-0.061-0.194-0.114-0.094-0.234c0.091-0.108,0.098-0.173-0.026-0.255
+                       c-0.151-0.1-0.279-0.23-0.443-0.309c-0.174-0.084-0.328-0.151-0.332-0.347c-0.002-0.091-0.103-0.15-0.18-0.211
+                       c-0.101-0.082-0.198-0.167-0.292-0.253c-0.057-0.056-0.021-0.147,0.065-0.182c0.014-0.007,0.031-0.012,0.048-0.016
+                       c0.099-0.02,0.229-0.014,0.26-0.116c0.05-0.149,0.019-0.297-0.104-0.415c-0.118-0.106-0.256-0.198-0.379-0.302
+                       c-0.06-0.051,0-0.161,0.087-0.173c0.049-0.006,0.102-0.011,0.152-0.008c0.099,0.004,0.195,0.113,0.287,0.037
+                       c0.055-0.041,0.051-0.135,0.083-0.2c0.031-0.062,0.115-0.096,0.172-0.062c0.18,0.102,0.313,0.049,0.443-0.067
+                       c0.033-0.029,0.081-0.047,0.125-0.07c-0.217-0.185-0.217-0.185-0.215-0.446c0.005-0.254,0.007-0.26,0.315-0.28
+                       c0.108-0.006,0.194-0.024,0.289-0.075c0.235-0.126,0.481-0.171,0.711,0.027c0.127,0.112,0.292,0.067,0.446,0.051
+                       c0.065-0.004,0.103-0.113,0.044-0.14c-0.36-0.17-0.259-0.483-0.325-0.742c-0.022-0.083,0.029-0.142,0.096-0.195
+                       c0.114-0.093,0.073-0.207,0.007-0.283c-0.114-0.129-0.18-0.302-0.311-0.393c-0.207-0.141-0.287-0.251-0.184-0.475
+                       c0.039-0.082-0.086-0.21-0.121-0.321c-0.057-0.191-0.029-0.226,0.218-0.318c0.239-0.089,0.356-0.295,0.275-0.491
+                       c-0.029-0.069-0.07-0.135-0.094-0.204c-0.033-0.089,0.063-0.173,0.18-0.165c0.02,0.002,0.041-0.002,0.052,0.004
+                       c0.23,0.16,0.381-0.002,0.55-0.09c0.093-0.049,0.122-0.116,0.042-0.18c-0.11-0.089-0.126-0.205-0.169-0.313
+                       c-0.1-0.249-0.048-0.411,0.232-0.486c0.246-0.066,0.402-0.228,0.617-0.326c0.136-0.059,0.196-0.157,0.174-0.293
+                       c-0.011-0.071-0.009-0.147,0.005-0.217c0.03-0.147,0.127-0.2,0.302-0.151c0.132,0.037,0.255,0.084,0.404,0.062
+                       c0.09-0.013,0.184,0.018,0.211,0.098c0.038,0.126,0.148,0.18,0.265,0.249c0.134,0.08,0.215,0.2,0.422,0.151
+                       c0.111-0.027,0.186,0.071,0.194,0.169c0.016,0.236-0.017,0.468-0.094,0.695c-0.22,0.634-0.129,0.464,0.252,0.892
+                       c0.04,0.045,0.136,0.066,0.152,0.11c0.054,0.149,0.16,0.177,0.321,0.138c0.05-0.012,0.105-0.013,0.156-0.013
+                       c0.084-0.003,0.141,0.07,0.088,0.119c-0.123,0.114-0.198,0.234-0.145,0.397c0.009,0.033-0.017,0.09-0.048,0.118
+                       c-0.282,0.242-0.336,0.603-0.667,0.819c0.263,0.118,0.265,0.12,0.385-0.01c0.174-0.19,0.409-0.304,0.664-0.39v-0.005
+                       c0.044-0.102,0.139-0.159,0.261-0.152c0.033-0.034,0.077-0.054,0.16-0.02c0.108,0.044,0.201,0.117,0.333,0.123
+                       c0.051,0.002,0.102,0.014,0.148,0.034c0.046,0.018,0.06,0.057,0.048,0.093c0.098,0.021,0.196,0.023,0.277-0.029
+                       c0.467-0.301,0.916-0.227,1.382-0.003c0.081,0.04,0.2,0.038,0.301,0.036c0.208-0.004,0.366-0.26,0.249-0.399
+                       c-0.269-0.313-0.548-0.619-0.811-0.935c-0.121-0.147-0.072-0.293,0.096-0.383c0.263-0.149,0.523-0.313,0.878-0.224
+                       c0.255,0.066,0.496-0.018,0.716-0.105c0.293-0.115,0.553-0.239,0.897-0.099c0.172,0.068,0.318-0.089,0.454-0.183
+                       c0.121-0.082,0.196-0.198,0.075-0.3c-0.373-0.31-0.388-0.762-0.639-1.121c-0.165-0.24-0.302-0.475-0.653-0.54
+                       c-0.296-0.055-0.516-0.218-0.679-0.406c-0.294-0.338-0.71-0.606-0.933-0.955c-0.203-0.317-0.167-0.75-0.196-1.133
+                       c-0.022-0.28-0.177-0.513-0.274-0.766c-0.106-0.279,0.024-0.444,0.376-0.509c0.384-0.068,0.769-0.002,1.124,0.025
+                       c0.22-0.32,0.027-0.555-0.07-0.806c-0.062-0.163,0.017-0.291,0.234-0.33c0.562-0.1,1.112-0.169,1.614,0.18
+                       c0.125,0.087,0.325,0.108,0.498,0.129c0.328,0.042,0.543-0.198,0.409-0.455c-0.101-0.189-0.294-0.344-0.299-0.564
+                       c-0.002-0.147-0.041-0.386,0.042-0.424c0.594-0.279,0.23-0.566,0.085-0.89c-0.161-0.357-0.232-0.743-0.342-1.115
+                       c-0.068-0.234,0.048-0.409,0.257-0.546c0.5-0.331,0.653-0.322,1.014-0.05c0.105,0.081,0.215,0.158,0.335,0.222
+                       c0.189,0.102,0.389,0.154,0.562-0.027c0.158-0.167,0.339-0.177,0.562-0.097c0.172,0.064,0.347,0.057,0.461-0.101
+                       c0.038-0.048,0.072-0.104,0.117-0.148c0.526-0.5,0.661-0.486,1.022,0.097c0.176,0.287,0.334,0.342,0.674,0.216
+                       c0.227-0.082,0.437-0.195,0.665-0.275c0.217-0.075,0.432,0.08,0.391,0.281c-0.052,0.262-0.15,0.519-0.193,0.782
+                       c-0.038,0.228-0.029,0.461-0.041,0.689c0.147,0.067,0.335,0.049,0.395-0.037c0.314-0.455,0.94-0.348,1.378-0.577
+                       c0.13-0.071,0.323,0.133,0.289,0.286c-0.054,0.24-0.175,0.452-0.355,0.642c-0.165,0.177-0.184,0.377-0.184,0.593
+                       c-0.002,0.422,0.103,0.508,0.625,0.483c0.103-0.004,0.207-0.031,0.308-0.023c0.153,0.011,0.283,0.235,0.213,0.357
+                       c-0.029,0.053-0.055,0.117-0.105,0.151c-0.531,0.34-0.426,0.699-0.062,1.074c0.064,0.067,0.172,0.181,0.148,0.218
+                       c-0.301,0.457-0.042,1.084-0.626,1.451c-0.11,0.071-0.227,0.14-0.321,0.227c-0.196,0.182-0.196,0.357-0.015,0.563
+                       c0.063,0.071,0.144,0.133,0.204,0.204c0.17,0.205,0.354,0.262,0.621,0.101c0.636-0.38,1.365-0.216,2.061-0.209
+                       c0.194,0.002,0.285,0.171,0.299,0.326c0.044,0.442-0.083,0.837-0.538,1.1c-0.43,0.253-0.872,0.495-1.326,0.713
+                       c-0.18,0.086-0.254,0.185-0.275,0.342c-0.034,0.23,0.134,0.415,0.334,0.322c0.614-0.297,1.248,0.015,1.872-0.089
+                       c0.423-0.071,0.785,0.528,0.547,0.863c-0.279,0.393-0.652,0.728-1.214,0.799c-0.686,0.089-0.899,0.581-1.253,0.957
+                       c-0.027,0.029,0,0.119,0.039,0.159c0.038,0.037,0.121,0.068,0.178,0.063c0.201-0.027,0.362-0.201,0.595-0.105
+                       c0.403,0.167,0.541,0.482,0.287,0.799c-0.532,0.671-1.092,1.332-2.079,1.568c-0.436,0.104-0.68,0.286-0.627,0.689
+                       c0.013,0.085-0.055,0.171-0.077,0.26c-0.042,0.177-0.083,0.373,0.136,0.477c0.197,0.093,0.307-0.09,0.447-0.166
+                       c0.165-0.089,0.34-0.101,0.496-0.01c0.358,0.21,0.792,0.198,1.121,0.088c0.583-0.192,1.157-0.17,1.745-0.139
+                       c0.253,0.011,0.507,0.004,0.724-0.091c0.282-0.126,0.446-0.029,0.643,0.133c0.502,0.415,0.536,0.509,0.011,0.81
+                       c-0.378,0.218-0.588,0.511-0.755,0.837c-0.184,0.363-0.472,0.581-0.955,0.597c-0.338,0.011-0.623,0.12-0.775,0.393
+                       c-0.171,0.297-0.577,0.332-0.823,0.542c-0.116,0.1-0.354,0.095-0.344,0.292c0.083,0.087,0.191,0.085,0.294,0.058
+                       c0.318-0.079,0.604-0.087,0.898,0.1c0.316,0.198,0.682,0.29,1.101,0.21c0.312-0.059,0.633,0.004,0.935,0.105
+                       c0.396,0.133,0.754,0.105,1.078-0.152c0.158-0.124,0.378-0.253,0.564-0.2c0.323,0.096,0.624,0.253,0.906,0.422
+                       c0.163,0.098,0.102,0.491-0.072,0.666c-0.09,0.088-0.22,0.147-0.318,0.228c-0.34,0.28-0.784,0.458-0.995,0.866
+                       c-0.165,0.32-0.625,0.408-0.985,0.463c-0.45,0.069-0.775,0.201-1.042,0.52c-0.191,0.23-0.665,0.21-0.772,0.565
+                       c-0.04,0.138-0.222,0.106-0.365,0.073c-0.479-0.106-0.952-0.23-1.435-0.304c-0.418-0.065-0.841-0.233-1.214,0.2
+                       c-0.221,0.255-0.684,0.122-0.86-0.187c-0.094-0.161-0.168-0.323-0.313-0.461c-0.153-0.147-0.402-0.124-0.524,0.057
+                       c-0.036,0.051-0.088,0.103-0.095,0.158c-0.046,0.293-0.452,0.583-0.259,0.827c0.217,0.275,0.66,0.051,0.978-0.004
+                       c0.727-0.124,1.48-0.098,2.191-0.311c0.388-0.115,0.684,0.071,0.802,0.411c0.047,0.141,0.042,0.295,0.078,0.442
+                       c0.054,0.208,0.27,0.29,0.476,0.167c0.318-0.189,0.614-0.403,0.928-0.598c0.227-0.141,0.38-0.108,0.499,0.106
+                       c0.061,0.105,0.074,0.234,0.146,0.331c0.11,0.149,0.287,0.153,0.463,0.084c0.065-0.025,0.141-0.055,0.173-0.102
+                       c0.308-0.437,0.667-0.537,1.168-0.192c0.136,0.095,0.474-0.05,0.516,0.192c0.019,0.122-0.174,0.255-0.2,0.393
+                       c-0.074,0.391-0.408,0.615-0.705,0.868c-0.344,0.297-0.715,0.579-1.031,0.896c-0.334,0.34-0.584,0.762-1.219,0.735
+                       c-0.395,0.347-0.882,0.442-1.44,0.437c-0.077,0-0.156,0.031-0.232,0.073c0,0.008,0.004,0.016,0.008,0.022
+                       c0.011,0.075,0.018,0.151,0.026,0.226c0.336-0.122,0.641-0.011,0.944,0.191c0.191,0.129,0.287,0.266,0.177,0.457
+                       c-0.099,0.171-0.103,0.344-0.101,0.524c0.005,0.529-0.136,1.008-0.593,1.383c0.215-0.037,0.406-0.142,0.622-0.182
+                       c0.2-0.038,0.294-0.014,0.342,0.133c0.031,0.098,0.054,0.198,0.067,0.3c0.028,0.228,0.169,0.328,0.447,0.424
+                       c0.371,0.131,0.619,0.289,0.784,0.499c0.02-0.008,0.039-0.016,0.057-0.027c0.061-0.035,0.223-0.011,0.287,0.036
+                       c0.156,0.108,0.282,0.159,0.445,0.019c0.2-0.171,0.47-0.084,0.707-0.121c0.149-0.025,0.289,0.029,0.358,0.143
+                       c0.151,0.249,0.397,0.403,0.658,0.562c0.334,0.204,0.32,0.501-0.031,0.642c-0.617,0.243-1.016,0.595-1.172,1.178
+                       c-0.108,0.404-0.39,0.519-0.878,0.477c-0.15-0.013-0.299-0.037-0.449-0.064c-0.011,0.059-0.064,0.104-0.165,0.147
+                       c-0.045,0.019-0.098,0.021-0.143,0.039c-0.399,0.155-0.443,0.26-0.22,0.564c0.06,0.086,0.128,0.184,0.227,0.238
+                       c0.215,0.121,0.199,0.266,0.123,0.432c-0.034,0.075-0.081,0.151,0.007,0.228c0.198,0.056,0.318-0.088,0.481-0.131
+                       c0.277-0.073,0.454-0.051,0.557,0.175c0.117,0.26,0.284,0.284,0.581,0.228c0.117-0.022,0.189-0.008,0.231,0.035
+                       c0.01-0.013,0.017-0.029,0.034-0.044c0.057-0.053,0.115-0.112,0.157-0.173c0.142-0.204,0.282-0.406,0.299-0.652
+                       c0.008-0.13,0.065-0.138,0.19-0.045c0.025,0.019,0.044,0.059,0.068,0.062c0.081,0.007,0.063-0.051,0.055-0.086
+                       c-0.026-0.126,0.039-0.207,0.184-0.218c0.206-0.018,0.375-0.165,0.602-0.12c0.034,0.01,0.096-0.031,0.125-0.062
+                       c0.081-0.093,0.194-0.185,0.225-0.291c0.038-0.136,0.078-0.218,0.266-0.2c0.121,0.014,0.181-0.065,0.241-0.142
+                       c0.081-0.108,0.198-0.147,0.354-0.151c0.184-0.008,0.224-0.08,0.181-0.224c-0.052-0.161-0.198-0.224-0.365-0.286
+                       c-0.167-0.058-0.193-0.114-0.094-0.232c0.092-0.108,0.096-0.175-0.026-0.255c-0.15-0.102-0.279-0.23-0.442-0.31
+                       c-0.174-0.085-0.327-0.152-0.332-0.348c-0.003-0.089-0.103-0.149-0.18-0.211c-0.101-0.08-0.198-0.165-0.292-0.251
+                       c-0.057-0.057-0.022-0.149,0.064-0.183c0.015-0.005,0.032-0.013,0.048-0.017c0.098-0.02,0.23-0.014,0.261-0.114
+                       c0.05-0.149,0.019-0.3-0.105-0.414c-0.118-0.109-0.256-0.201-0.378-0.305c-0.059-0.049,0-0.159,0.083-0.173
+                       c0.053-0.006,0.103-0.011,0.156-0.008c0.097,0.004,0.194,0.114,0.287,0.037c0.052-0.041,0.049-0.133,0.083-0.199
+                       c0.031-0.061,0.112-0.096,0.172-0.063c0.18,0.104,0.313,0.051,0.443-0.067c0.033-0.029,0.081-0.044,0.124-0.071
+                       c-0.217-0.184-0.217-0.184-0.215-0.445c0.005-0.251,0.005-0.258,0.316-0.278c0.108-0.008,0.193-0.027,0.289-0.075
+                       c0.235-0.126,0.477-0.173,0.71,0.028c0.127,0.108,0.292,0.064,0.445,0.05c0.066-0.006,0.105-0.113,0.046-0.141
+                       c-0.362-0.171-0.259-0.484-0.326-0.741c-0.021-0.083,0.032-0.144,0.096-0.195c0.112-0.093,0.073-0.208,0.007-0.284
+                       c-0.115-0.129-0.178-0.302-0.31-0.391c-0.208-0.142-0.289-0.253-0.184-0.475c0.038-0.082-0.086-0.214-0.123-0.324
+                       c-0.057-0.191-0.029-0.226,0.219-0.318c0.238-0.088,0.356-0.295,0.274-0.489c-0.031-0.07-0.069-0.135-0.095-0.206
+                       c-0.031-0.089,0.064-0.173,0.182-0.165c0.017,0.002,0.04-0.002,0.053,0.007c0.229,0.157,0.38-0.005,0.55-0.093
+                       c0.093-0.049,0.122-0.116,0.042-0.177c-0.11-0.089-0.127-0.205-0.172-0.315c-0.099-0.246-0.046-0.41,0.233-0.485
+                       c0.246-0.067,0.404-0.229,0.617-0.327c0.134-0.059,0.197-0.157,0.175-0.292c-0.013-0.069-0.01-0.147,0.005-0.216
+                       c0.029-0.149,0.125-0.202,0.299-0.151c0.134,0.037,0.259,0.084,0.404,0.063c0.094-0.016,0.187,0.015,0.213,0.095
+                       c0.039,0.129,0.149,0.181,0.265,0.251c0.132,0.079,0.215,0.198,0.424,0.152c0.11-0.028,0.186,0.068,0.193,0.166
+                       c0.017,0.237-0.016,0.471-0.093,0.695c-0.223,0.637-0.129,0.466,0.251,0.892c0.041,0.045,0.134,0.067,0.151,0.114
+                       c0.055,0.148,0.162,0.175,0.323,0.137c0.05-0.014,0.105-0.014,0.156-0.016c0.084,0,0.141,0.071,0.088,0.12
+                       c-0.125,0.116-0.199,0.236-0.146,0.397c0.01,0.036-0.016,0.091-0.05,0.12c-0.279,0.24-0.334,0.601-0.664,0.819
+                       c0.263,0.118,0.268,0.12,0.384-0.011c0.187-0.202,0.443-0.32,0.72-0.411c0.015-0.004,0.033,0.002,0.05,0.002
+                       c0.139-0.004,0.11-0.242,0.313-0.159c0.11,0.045,0.203,0.118,0.334,0.126c0.051,0.002,0.103,0.013,0.149,0.031
+                       c0.055,0.022,0.071,0.073,0.042,0.113c-0.044,0.061-0.11,0.112-0.162,0.17c-0.045,0.048-0.055,0.099-0.021,0.161
+                       c0.106,0.202,0.104,0.204-0.03,0.306c-0.143,0.107-0.285,0.213-0.377,0.362c-0.048,0.075-0.121,0.143-0.201,0.202
+                       c-0.093,0.064-0.227,0.098-0.299,0.173c-0.108,0.113-0.174,0.251-0.258,0.375c0.009,0.104,0.115,0.102,0.189,0.126
+                       c0.077,0.024,0.112,0.12,0.217,0.089c0.099-0.104-0.026-0.253,0.075-0.336c0.108-0.086,0.265-0.131,0.401-0.195
+                       c0.046-0.02,0.095-0.035,0.136-0.064c0.143-0.1,0.294-0.098,0.428,0c0.136,0.1,0.296,0.143,0.463,0.188
+                       c0.07,0.018,0.116,0.093,0.061,0.144c-0.235,0.216-0.35,0.503-0.605,0.711c-0.127,0.102-0.275,0.173-0.404,0.275
+                       c0.042,0.131,0.215,0.2,0.204,0.35c-0.008,0.122,0.139,0.157,0.229,0.222c0.108,0.08,0.12,0.151,0.022,0.224
+                       c-0.134,0.1-0.251,0.193-0.232,0.366c0.013,0.096-0.075,0.155-0.17,0.206c-0.204,0.113-0.397,0.24-0.608,0.344
+                       c-0.114,0.057-0.172,0.142-0.222,0.235l0.007,0.006c0.215-0.041,0.452-0.008,0.645-0.139c0.081-0.057,0.204-0.073,0.297-0.029
+                       c0.158,0.075,0.259,0.006,0.373-0.067c0.069-0.042,0.142-0.087,0.217-0.116c0.16-0.059,0.34,0.012,0.338,0.163
+                       c-0.002,0.141,0.02,0.177,0.184,0.14c0.084-0.02,0.156-0.049,0.229-0.089c0.118-0.065,0.194-0.033,0.228,0.073
+                       c0.021,0.071,0.026,0.144,0.045,0.216c0.026,0.092,0.175,0.184,0.065,0.277c-0.117,0.1-0.208,0.245-0.411,0.242
+                       c-0.092-0.003-0.177,0.006-0.245,0.057c-0.124,0.1-0.224,0.228-0.367,0.302c-0.141,0.075-0.34,0.067-0.445,0.206h0.002
+                       c0.108-0.013,0.208-0.004,0.294,0.061c0.077,0.057,0.158,0.11,0.252,0.175c0.088-0.089,0.155-0.171,0.24-0.242
+                       c0.122-0.102,0.281-0.062,0.313,0.082c0.017,0.069,0.003,0.142,0.003,0.232c0.158,0.037,0.294-0.04,0.438-0.071
+                       c0.086-0.02,0.165-0.036,0.253-0.012c0.094,0.027,0.153,0.098,0.116,0.167c-0.095,0.173-0.198,0.344-0.294,0.517
+                       c-0.076,0.138-0.218,0.169-0.38,0.193c-0.317,0.047-0.543,0.237-0.784,0.394c-0.044,0.029-0.05,0.089-0.009,0.118
+                       c0.033,0.022,0.103,0.036,0.141,0.024c0.077-0.029,0.143-0.08,0.217-0.12c0.046-0.024,0.118-0.035,0.134,0.014
+                       c0.055,0.177,0.22,0.204,0.395,0.238c0.103,0.017,0.114,0.092,0.036,0.168c-0.069,0.067-0.15,0.124-0.218,0.193
+                       c-0.084,0.084-0.067,0.175,0.059,0.202c0.187,0.036,0.281,0.102,0.25,0.271c-0.01,0.051,0.06,0.087,0.103,0.059
+                       c0.26-0.161,0.389-0.033,0.545,0.136c0.114,0.126,0.028,0.187-0.02,0.3c-0.125,0.293-0.378,0.422-0.696,0.519
+                       c-0.143,0.042-0.27,0.126-0.4,0.198c-0.016,0.011-0.024,0.057-0.011,0.075c0.011,0.02,0.053,0.036,0.083,0.039
+                       c0.129,0.02,0.239-0.003,0.332-0.088c0.122-0.112,0.259-0.14,0.417-0.042c0.112,0.071,0.229,0.051,0.343-0.004
+                       c0.046-0.02,0.092-0.045,0.14-0.059c0.186-0.056,0.301,0.003,0.311,0.18c0.007,0.093-0.041,0.161,0.143,0.147
+                       c0.21-0.02,0.296,0.078,0.234,0.237c-0.127,0.329-0.335,0.606-0.794,0.686c0.05,0.08,0.098,0.155,0.145,0.234
+                       c0.05,0.079,0.125,0.095,0.215,0.057c0.063-0.024,0.12-0.063,0.184-0.085c0.12-0.042,0.218,0.018,0.201,0.122
+                       c-0.029,0.169-0.037,0.331-0.244,0.46c-0.22,0.135-0.388,0.335-0.56,0.518c-0.122,0.13-0.189,0.253-0.053,0.438
+                       c0.129,0.173,0.098,0.393-0.05,0.575c-0.052,0.065-0.105,0.124-0.031,0.198c0.062,0.059,0.15,0.057,0.239,0.047
+                       c0.172-0.024,0.344-0.045,0.518-0.059c0.088-0.01,0.191,0,0.237,0.066c0.117,0.183,0.268,0.138,0.439,0.073
+                       c0.182-0.067,0.378-0.048,0.568-0.024c0.157,0.022,0.22,0.142,0.143,0.271c-0.033,0.051-0.081,0.096-0.112,0.149
+                       c-0.059,0.1-0.276,0.016-0.278,0.155c0,0.081,0.079,0.158,0.108,0.24c0.019,0.061-0.009,0.118-0.071,0.153
+                       c-0.044,0.024-0.096,0.038-0.136,0.067c-0.101,0.073-0.08,0.147,0.057,0.189c0.292,0.088,0.576,0.217,0.909,0.135
+                       c0.064-0.015,0.141,0.014,0.167,0.078c0.026,0.065-0.024,0.112-0.077,0.149c-0.084,0.055-0.163,0.14-0.253,0.151
+                       c-0.22,0.027-0.335,0.171-0.45,0.283c-0.151,0.139-0.278,0.288-0.476,0.388c-0.119,0.062-0.215,0.173-0.158,0.302
+                       c0.065,0.142-0.005,0.242-0.124,0.304c-0.228,0.116-0.412,0.269-0.608,0.415c-0.048,0.036-0.12,0.067-0.182,0.067
+                       c-0.132,0-0.239,0.014-0.318,0.114c-0.048,0.057-0.097,0.113-0.146,0.168c0.634,0.26,1.26,0.515,1.875,0.768
+                       c0.088,0,0.174-0.004,0.262-0.022c0.034-0.006,0.07-0.004,0.106-0.004c0.157,0.002,0.346-0.01,0.411,0.136
+                       c0.036,0.074,0.033,0.147-0.002,0.208c0.435,0.177,0.863,0.353,1.286,0.526c0.031-0.326,0.151-0.364,0.518-0.2
+                       c0.156,0.069,0.309,0.147,0.469,0.202c0.083,0.029,0.174-0.006,0.227-0.078c0.052-0.071,0.057-0.161,0.009-0.233
+                       c-0.044-0.065-0.119-0.16-0.178-0.16c-0.237,0.004-0.254-0.314-0.538-0.277c-0.292,0.038-0.457-0.269-0.71-0.366
+                       c-0.029-0.011-0.04-0.12-0.02-0.168c0.085-0.187,0.022-0.344-0.145-0.415c-0.285-0.122-0.375-0.371-0.533-0.584
+                       c-0.149-0.202-0.136-0.367-0.038-0.568c0.077-0.155,0.115-0.175,0.272-0.055c0.068,0.051,0.119,0.142,0.205,0.081
+                       c0.129-0.093,0.239,0.062,0.381-0.007c-0.108-0.215-0.357-0.355-0.369-0.626c-0.009-0.193,0.039-0.291,0.237-0.246
+                       c0.251,0.056,0.391,0.031,0.492-0.228c0.088-0.226,0.237-0.249,0.474-0.175c0.136,0.041,0.237,0.186,0.404,0.131
+                       c0.077-0.078,0.035-0.155,0.007-0.228c-0.064-0.167-0.077-0.31,0.105-0.433c0.081-0.055,0.139-0.15,0.195-0.237
+                       c0.185-0.307,0.15-0.409-0.19-0.564c-0.038-0.017-0.083-0.022-0.121-0.039c-0.16-0.08-0.184-0.171-0.084-0.349
+                       c0.031-0.052,0.079-0.095,0.115-0.137c-0.026-0.166-0.189-0.169-0.287-0.222c-0.215-0.112-0.421-0.202-0.408-0.485
+                       c0.004-0.071-0.053-0.16-0.112-0.211c-0.149-0.131-0.138-0.271-0.115-0.446c0.046-0.326,0.026-0.33,0.385-0.302
+                       c0.077,0.006,0.121-0.004,0.129-0.086c0.055-0.644,0.277-1.002,0.891-1.252c0.234-0.095,0.351-0.198,0.375-0.424
+                       c0.011-0.102,0.033-0.202,0.059-0.302c0.039-0.144,0.118-0.169,0.287-0.131c0.23,0.051,0.426,0.204,0.672,0.2
+                       c0.039,0,0.086-0.029,0.105-0.061c0.022-0.029,0.031-0.097,0.015-0.11c-0.23-0.163-0.273-0.352-0.113-0.584
+                       c0.063-0.088,0.068-0.195-0.004-0.288c-0.119-0.16-0.119-0.346-0.129-0.528c-0.005-0.081-0.007-0.191,0.041-0.234
+                       c0.318-0.275,0.282-0.644,0.328-0.994c0.019-0.14,0.074-0.273,0.17-0.391c0.16-0.19,0.234-0.215,0.542-0.1
+                       c0.117,0.045,0.207,0.065,0.241-0.082c0.033-0.129,0.134-0.206,0.224-0.291c0.046-0.041,0.098-0.104,0.151-0.106
+                       c0.261-0.014,0.507,0.062,0.753,0.129c0.127,0.035,0.242,0.091,0.277,0.228c0.006,0.02,0.015,0.04,0.019,0.058
+                       c0.038,0.104,0.115,0.102,0.208,0.072c0.156-0.048,0.263,0.012,0.347,0.125c-0.002-0.058,0.031-0.114,0.083-0.136
+                       c0.057-0.024,0.11-0.008,0.167,0.011c0.094,0.032,0.184,0.109,0.289,0.071c0-0.088-0.007-0.161,0.002-0.23
+                       c0.022-0.141,0.127-0.184,0.208-0.082c0.055,0.071,0.101,0.153,0.16,0.241c0.059-0.064,0.115-0.117,0.165-0.175
+                       c0.057-0.064,0.122-0.073,0.193-0.059l0.003-0.002c-0.069-0.137-0.2-0.129-0.294-0.202c-0.095-0.075-0.163-0.204-0.244-0.302
+                       c-0.042-0.053-0.1-0.063-0.16-0.059c-0.136,0.004-0.198-0.142-0.272-0.243c-0.074-0.092,0.024-0.184,0.041-0.277
+                       c0.011-0.07,0.016-0.143,0.031-0.215c0.022-0.107,0.073-0.138,0.15-0.073c0.048,0.037,0.096,0.066,0.153,0.089
+                       c0.108,0.037,0.122,0.002,0.122-0.14c-0.003-0.151,0.115-0.222,0.222-0.163c0.05,0.029,0.097,0.073,0.143,0.116
+                       c0.077,0.071,0.144,0.142,0.249,0.067c0.062-0.045,0.139-0.029,0.196,0.029c0.127,0.131,0.284,0.098,0.428,0.139l0.002-0.006
+                       c-0.033-0.096-0.069-0.177-0.146-0.235c-0.139-0.105-0.268-0.232-0.404-0.345c-0.062-0.05-0.117-0.109-0.112-0.206
+                       c0.015-0.173-0.062-0.266-0.152-0.366c-0.065-0.072-0.058-0.143,0.014-0.223c0.06-0.067,0.158-0.098,0.153-0.222
+                       c-0.007-0.151,0.105-0.22,0.134-0.35c-0.085-0.103-0.184-0.174-0.268-0.275c-0.17-0.207-0.244-0.495-0.399-0.711
+                       c-0.036-0.051-0.007-0.126,0.038-0.144c0.113-0.044,0.218-0.088,0.309-0.189c0.088-0.097,0.187-0.102,0.282,0
+                       c0.026,0.03,0.059,0.045,0.091,0.065c0.091,0.065,0.194,0.108,0.266,0.195c0.066,0.082-0.017,0.23,0.049,0.336
+                       c0.07,0.031,0.094-0.065,0.144-0.089c0.048-0.024,0.119-0.022,0.125-0.124c-0.055-0.126-0.101-0.267-0.17-0.377
+                       c-0.047-0.075-0.136-0.109-0.198-0.175c-0.053-0.055-0.101-0.124-0.134-0.2c-0.059-0.149-0.153-0.253-0.25-0.362
+                       c-0.088-0.102-0.09-0.104-0.018-0.306c0.021-0.063,0.014-0.114-0.015-0.163c-0.033-0.057-0.079-0.108-0.108-0.169
+                       c-0.019-0.039-0.007-0.09,0.029-0.113c0.028-0.018,0.065-0.029,0.098-0.033c0.086-0.007,0.149-0.081,0.22-0.124
+                       c0.136-0.083,0.116,0.155,0.208,0.159c0.011,0,0.026-0.006,0.033-0.002c0.184,0.091,0.351,0.206,0.476,0.41
+                       c0.081,0.132,0.083,0.13,0.255,0.012c-0.217-0.218-0.255-0.579-0.439-0.819c-0.022-0.029-0.041-0.084-0.033-0.12
+                       c0.036-0.161-0.015-0.281-0.098-0.397c-0.033-0.049,0.005-0.119,0.06-0.117c0.034,0,0.07,0.001,0.103,0.013
+                       c0.105,0.037,0.177,0.012,0.213-0.138c0.013-0.047,0.074-0.068,0.101-0.113c0.254-0.426,0.313-0.256,0.167-0.892
+                       c-0.05-0.224-0.074-0.457-0.062-0.695c0.005-0.098,0.055-0.193,0.129-0.169c0.136,0.051,0.191-0.071,0.279-0.149
+                       c0.077-0.071,0.151-0.122,0.177-0.251c0.016-0.078,0.079-0.11,0.139-0.096c0.097,0.022,0.18-0.024,0.268-0.062
+                       c0.115-0.051,0.18,0.002,0.198,0.151c0.01,0.068,0.013,0.144,0.006,0.215c-0.015,0.136,0.023,0.234,0.115,0.295
+                       c0.141,0.096,0.246,0.258,0.408,0.324c0.184,0.079,0.22,0.24,0.153,0.486c-0.029,0.11-0.041,0.226-0.112,0.315
+                       c-0.053,0.064-0.034,0.129,0.028,0.177c0.112,0.088,0.213,0.251,0.363,0.092c0.007-0.008,0.024-0.004,0.034-0.006
+                       c0.078-0.008,0.143,0.075,0.121,0.165c-0.016,0.071-0.043,0.138-0.062,0.204c-0.055,0.195,0.024,0.401,0.182,0.491
+                       c0.162,0.091,0.181,0.126,0.143,0.318c-0.024,0.11-0.105,0.241-0.081,0.322c0.07,0.223,0.017,0.335-0.123,0.477
+                       c-0.086,0.088-0.129,0.261-0.205,0.39c-0.043,0.075-0.07,0.191,0.007,0.285c0.041,0.051,0.077,0.113,0.062,0.193
+                       c-0.045,0.261,0.024,0.572-0.217,0.742c-0.038,0.03-0.014,0.136,0.031,0.142c0.101,0.014,0.211,0.061,0.296-0.051
+                       c0.151-0.2,0.314-0.153,0.469-0.029c0.062,0.051,0.119,0.069,0.191,0.075c0.206,0.02,0.208,0.029,0.208,0.28
+                       c0.002,0.261,0.002,0.261-0.142,0.447c0.03,0.025,0.061,0.04,0.081,0.069c0.087,0.118,0.175,0.171,0.295,0.067
+                       c0.038-0.034,0.093,0.002,0.114,0.063c0.022,0.066,0.019,0.157,0.055,0.199c0.062,0.075,0.125-0.033,0.189-0.037
+                       c0.033-0.002,0.069,0.002,0.103,0.008c0.057,0.014,0.095,0.125,0.057,0.173c-0.081,0.104-0.172,0.195-0.252,0.305
+                       c-0.082,0.115-0.102,0.266-0.071,0.412c0.024,0.102,0.108,0.096,0.174,0.116c0.01,0.004,0.022,0.011,0.032,0.016
+                       c0.057,0.035,0.081,0.129,0.042,0.182c-0.062,0.088-0.126,0.173-0.193,0.253c-0.05,0.063-0.118,0.12-0.118,0.211
+                       c-0.003,0.196-0.104,0.263-0.22,0.347c-0.11,0.081-0.194,0.211-0.294,0.311c-0.081,0.08-0.076,0.147-0.016,0.253
+                       c0.067,0.12,0.047,0.175-0.063,0.236c-0.11,0.057-0.207,0.121-0.241,0.284c-0.031,0.144-0.002,0.218,0.12,0.224
+                       c0.101,0.004,0.178,0.042,0.235,0.151c0.038,0.076,0.079,0.155,0.159,0.142c0.122-0.018,0.151,0.065,0.175,0.2
+                       c0.022,0.106,0.096,0.198,0.151,0.291c0.016,0.031,0.057,0.068,0.081,0.062c0.086-0.024,0.16,0.012,0.234,0.053
+                       c0.015-0.059-0.005-0.115-0.076-0.167c-0.347-0.251-0.34-0.255-0.541-0.785c-0.024-0.059-0.097-0.112-0.154-0.159
+                       c-0.113-0.096-0.156-0.191-0.029-0.305c0.097-0.084,0.189-0.173,0.288-0.255c0.491-0.412,0.636-0.452,1.213-0.124
+                       c0.505,0.289,1.076,0.495,1.521,0.866c0.251,0.208,0.626,0.279,0.857,0.535c0.106,0.117,0.313,0.015,0.484-0.061
+                       c-0.283-0.306-0.687-0.507-0.964-0.815c-0.108-0.12-0.192-0.215-0.211-0.357c-0.015-0.12-0.053-0.211-0.201-0.285
+                       c-0.248-0.124-0.282-0.404-0.172-0.548c0.172-0.224-0.05-0.477,0.163-0.674c0.079-0.073,0.031-0.182-0.031-0.264
+                       c-0.296-0.386-0.434-0.818-0.505-1.265c-0.033-0.223-0.123-0.41-0.344-0.544c-0.093-0.055-0.172-0.121-0.253-0.188
+                       c-0.395-0.31-0.41-0.361-0.171-0.79c0.048-0.088,0.141-0.168,0.037-0.249c-0.256-0.19-0.41-0.439-0.577-0.685
+                       c-0.077-0.114-0.32-0.151-0.311-0.309c0.015-0.213,0.273-0.289,0.428-0.412c0.118-0.096,0.294-0.138,0.436-0.213
+                       c0.198-0.102,0.203-0.149,0.067-0.342c-0.172-0.241-0.172-0.241,0.059-0.434c0.057-0.049,0.096-0.122,0.164-0.16
+                       c0.606-0.346,0.571-0.477,1.223-0.064c0.112,0.069,0.232,0.131,0.34,0.192c0.201-0.08,0.046-0.152,0.022-0.224
+                       c-0.039-0.11-0.105-0.223-0.108-0.337c-0.002-0.089,0.064-0.189-0.035-0.262c-0.264-0.191-0.175-0.363,0.02-0.538
+                       c0.112-0.102,0.222-0.211,0.33-0.318c0.144-0.144,0.316-0.183,0.529-0.12c0.105,0.032,0.215,0.051,0.325,0.071
+                       c0.146,0.027,0.318,0.206,0.43,0.031c0.08-0.124-0.095-0.257-0.207-0.361c-0.149-0.138-0.331-0.242-0.268-0.48
+                       c0.22-0.825-0.173-1.528-0.672-2.199c-0.137-0.185-0.11-0.3,0.042-0.433c0.096-0.084,0.187-0.188,0.306-0.23
+                       c0.219-0.075,0.309-0.208,0.311-0.384c0.01-0.492,0.454-0.663,0.871-0.856c0.103-0.047,0.234-0.044,0.323,0.02
+                       c0.235,0.171,0.545,0.083,0.799,0.182c0.073-0.32-0.029-0.603-0.252-0.86c-0.073-0.085-0.077-0.176-0.002-0.26
+                       c0.101-0.113,0.184-0.24,0.306-0.33c0.121-0.089,0.277-0.163,0.433-0.202c0.15-0.04,0.237,0.104,0.36,0.151
+                       c0.103,0.039,0.217,0.131,0.302,0.113c0.576-0.115,0.71,0.222,0.707,0.553c0,0.304,0.151,0.424,0.432,0.518
+                       c0.397,0.136,0.724,0.356,0.994,0.633c0.206,0.21,0.239,0.31,0.041,0.495c-0.215,0.2-0.309,0.438-0.441,0.672
+                       c-0.132,0.238-0.064,0.583-0.47,0.69c-0.008,0.002-0.01,0.047,0.002,0.064c0.009,0.02,0.046,0.045,0.062,0.04
+                       c0.079-0.015,0.166-0.029,0.232-0.065c0.354-0.19,0.705-0.386,1.054-0.583c0.206-0.116,0.395-0.133,0.621-0.016
+                       c0.191,0.102,0.366,0.213,0.522,0.351c0.364,0.313,0.389,0.382,0,0.682c-0.296,0.23-0.366,0.586-0.686,0.79
+                       c-0.031,0.019-0.016,0.091-0.024,0.135c-0.018,0.136,0.105,0.251,0.243,0.218c0.078-0.02,0.157-0.049,0.234-0.073
+                       c0.204-0.067,0.397-0.204,0.632-0.08c0.332,0.177,0.665,0.357,0.832,0.674c0.024,0.046-0.02,0.142-0.068,0.184
+                       c-0.156,0.136-0.323,0.262-0.497,0.379c-0.246,0.165-0.323,0.375-0.276,0.631c0.022,0.115,0.006,0.238,0.034,0.353
+                       c0.098,0.389,0.246,0.77,0.021,1.169c-0.052,0.093,0.003,0.233,0.017,0.351c0.026,0.193,0.144,0.287,0.38,0.311
+                       c0.713,0.075,0.909,0.166,1.397,0.642c-0.061,0.193-0.252,0.308-0.401,0.443c-0.166,0.151-0.285,0.293-0.101,0.496
+                       c0.055,0.059,0.016,0.135-0.044,0.19c-0.09,0.087-0.213,0.157-0.174,0.3c0.064,0.244-0.402,0.522-0.037,0.701
+                       c0.265,0.13,0.445-0.221,0.684-0.332c0.23-0.104,0.382-0.132,0.602,0.011c0.182,0.116,0.344,0.232,0.481,0.387
+                       c0.256,0.297,0.281,0.304-0.036,0.591c-0.16,0.149-0.235,0.304-0.294,0.493c-0.086,0.27-0.193,0.62-0.162,0.817
+                       c0.014,0.099-0.002,0.19-0.093,0.256c-0.177,0.13-0.101,0.26,0.007,0.374c0.233,0.253,0.316,0.479-0.006,0.739
+                       c-0.139,0.113-0.169,0.29-0.11,0.468c0.039,0.11,0.048,0.23,0.063,0.345c0.046,0.309-0.041,0.56-0.411,0.699
+                       c-0.096,0.038-0.168,0.122-0.235,0.171c-0.052,0.224,0.26,0.155,0.297,0.318c0.018,0.098,0.112,0.159,0.208,0.22
+                       c0.033-0.027,0.08-0.045,0.135-0.04c0.017,0.003,0.041-0.002,0.053,0.007c0.23,0.157,0.381-0.004,0.55-0.093
+                       c0.094-0.049,0.122-0.116,0.044-0.177c-0.11-0.089-0.127-0.204-0.172-0.315c-0.098-0.246-0.046-0.411,0.234-0.485
+                       c0.246-0.067,0.402-0.229,0.617-0.327c0.134-0.059,0.197-0.157,0.175-0.292c-0.013-0.071-0.01-0.147,0.005-0.216
+                       c0.029-0.149,0.124-0.202,0.299-0.151c0.134,0.037,0.259,0.084,0.404,0.062c0.094-0.015,0.186,0.016,0.21,0.096
+                       c0.04,0.129,0.151,0.181,0.268,0.251c0.132,0.078,0.215,0.198,0.423,0.149c0.11-0.024,0.187,0.071,0.194,0.169
+                       c0.017,0.235-0.017,0.471-0.096,0.695c-0.22,0.635-0.126,0.463,0.254,0.892c0.041,0.044,0.134,0.067,0.151,0.113
+                       c0.055,0.149,0.162,0.176,0.323,0.138c0.049-0.014,0.102-0.014,0.155-0.014c0.083-0.002,0.142,0.069,0.089,0.118
+                       c-0.039,0.036-0.07,0.071-0.096,0.109c0.393,0.076,0.727,0.312,1.148,0.306c0.064-0.002,0.148-0.047,0.184-0.093
+                       c0.036-0.042,0.05-0.149,0.022-0.167c-0.392-0.251-0.467-0.536-0.194-0.89c0.104-0.137,0.115-0.298-0.008-0.441
+                       c-0.205-0.244-0.205-0.529-0.222-0.806c-0.007-0.12-0.015-0.29,0.069-0.355c0.55-0.42,0.486-0.98,0.565-1.516
+                       c0.033-0.212,0.124-0.417,0.293-0.597c0.271-0.29,0.399-0.326,0.93-0.153c0.201,0.069,0.357,0.1,0.417-0.122
+                       c0.053-0.198,0.229-0.315,0.387-0.446c0.077-0.065,0.168-0.157,0.256-0.163c0.447-0.019,0.87,0.093,1.293,0.199
+                       c0.22,0.055,0.414,0.139,0.476,0.35c0.009,0.029,0.024,0.057,0.036,0.086c0.065,0.159,0.197,0.155,0.354,0.11
+                       c0.3-0.082,0.493,0.032,0.645,0.24c0.164,0.213,0.331,0.424,0.149,0.688c-0.055,0.08-0.134,0.151-0.177,0.235
+                       c-0.126,0.258,0.028,0.511,0.347,0.575c0.072,0.014,0.149,0.023,0.221,0.018c0.184-0.009,0.365-0.029,0.6-0.047
+                       c0.132,0.304,0.232,0.637,0.419,0.93c0.246,0.39,0.222,0.707-0.177,1.001c-0.11,0.08-0.239,0.16-0.231,0.297
+                       c0.005,0.047,0.084,0.129,0.124,0.126c0.143-0.006,0.329-0.002,0.419-0.075c0.447-0.371,0.865-0.138,1.284-0.049
+                       c0.057,0.348-0.36,0.442-0.373,0.697c0.057,0.11,0.172,0.096,0.279,0.11c0.555,0.076,0.621,0.168,0.278,0.466
+                       c-0.296,0.258-0.465,0.562-0.61,0.879c-0.072,0.151-0.013,0.308,0.224,0.357c0.204,0.042,0.344,0.131,0.237,0.324
+                       c-0.095,0.177-0.163,0.35-0.062,0.537c0.184,0.343,0.196,0.717,0.218,1.098c0.485,0,0.92,0.116,1.324-0.122
+                       c0.083-0.049,0.206-0.027,0.302,0.045c0.389,0.29,0.48,0.583,0.33,1.001c-0.198,0.548-0.567,0.998-1.109,1.416
+                       c0.473,0.13,0.709,0.44,0.907,0.835c0.18-0.157,0.265-0.258,0.376-0.326c0.083-0.05,0.198-0.065,0.301-0.085
+                       c0.029-0.006,0.066,0.02,0.099,0.033c1.392,0.558,1.249,0.602,0.254,1.436c-0.364,0.305-0.808,0.621-1.365,0.733
+                       c-0.088,0.018-0.182,0.122-0.125,0.224c0.029,0.049,0.123,0.116,0.166,0.106c0.571-0.122,0.777,0.26,1.037,0.542
+                       c0.201,0.22,0.304,0.511,0.533,0.699c0.349,0.287,0.263,0.544,0.07,0.837c-0.23,0.346-0.588,0.63-0.729,1.021
+                       c0.549,0.32,1.267,0.263,1.819,0.587c0.163,0.097,0.349-0.053,0.528-0.068c0.258-0.024,0.432,0.131,0.395,0.337
+                       c-0.017,0.091-0.022,0.2-0.083,0.267c-0.294,0.313-0.546,0.699-0.928,0.901c-0.533,0.279-0.746,0.729-1.162,1.118
+                       c0.426-0.011,0.659-0.228,0.944-0.353c0.189-0.082,0.364-0.055,0.511,0.057c0.17,0.13,0.277,0.28,0.184,0.494
+                       c-0.299,0.665-0.86,1.102-1.64,1.337c-0.223,0.069-0.397,0.169-0.519,0.324c-0.132,0.169-0.124,0.359,0.022,0.526
+                       c0.146,0.167,0.359,0.236,0.584,0.144c0.268-0.106,0.507-0.257,0.77-0.369c0.402-0.17,0.681-0.05,0.815,0.345
+                       c0.031,0.088,0.008,0.19,0.048,0.274c0.064,0.132,0.201,0.181,0.358,0.118c0.134-0.051,0.25-0.138,0.383-0.184
+                       c0.309-0.107,0.468-0.065,0.667,0.161c0.11,0.126,0.208,0.258,0.308,0.386c0.118,0.15,0.122,0.303-0.046,0.416
+                       c-0.005,0.002-0.007,0.004-0.009,0.006c0.068-0.016,0.129-0.054,0.189-0.109c0.033-0.029,0.081-0.047,0.125-0.07
+                       c-0.217-0.185-0.217-0.185-0.213-0.447c0.003-0.253,0.003-0.259,0.314-0.279c0.108-0.006,0.193-0.024,0.288-0.075
+                       c0.237-0.126,0.48-0.171,0.71,0.027c0.127,0.112,0.292,0.067,0.448,0.051c0.064-0.006,0.102-0.113,0.042-0.139
+                       c-0.361-0.171-0.259-0.484-0.325-0.743c-0.022-0.082,0.031-0.142,0.094-0.195c0.115-0.093,0.077-0.206,0.009-0.281
+                       c-0.115-0.13-0.18-0.305-0.311-0.393c-0.207-0.142-0.287-0.253-0.183-0.475c0.038-0.083-0.087-0.211-0.122-0.322
+                       c-0.057-0.191-0.028-0.229,0.217-0.32c0.239-0.087,0.356-0.295,0.275-0.489c-0.029-0.069-0.068-0.135-0.093-0.206
+                       c-0.034-0.087,0.064-0.171,0.179-0.163c0.019,0,0.041-0.002,0.052,0.004c0.23,0.16,0.381-0.001,0.55-0.09
+                       c0.093-0.049,0.121-0.116,0.046-0.18c-0.111-0.089-0.129-0.204-0.175-0.315c-0.098-0.246-0.042-0.409,0.235-0.484
+                       c0.246-0.068,0.404-0.228,0.617-0.326c0.136-0.062,0.196-0.157,0.175-0.293c-0.013-0.071-0.01-0.147,0.004-0.217
+                       c0.029-0.147,0.125-0.2,0.299-0.151c0.134,0.037,0.258,0.084,0.406,0.062c0.09-0.014,0.184,0.018,0.211,0.098
+                       c0.038,0.126,0.147,0.179,0.265,0.249c0.134,0.08,0.215,0.2,0.423,0.151c0.11-0.027,0.186,0.071,0.193,0.169
+                       c0.016,0.236-0.017,0.468-0.094,0.695c-0.22,0.634-0.129,0.464,0.252,0.89c0.04,0.047,0.134,0.069,0.152,0.113
+                       c0.056,0.149,0.163,0.177,0.323,0.138c0.048-0.011,0.103-0.013,0.153-0.013c0.083-0.003,0.142,0.07,0.091,0.117
+                       c-0.127,0.116-0.201,0.236-0.149,0.397c0.009,0.035-0.017,0.093-0.048,0.12c-0.279,0.241-0.336,0.603-0.667,0.819
+                       c0.263,0.118,0.268,0.12,0.386-0.01c0.189-0.204,0.442-0.32,0.717-0.41c0.016-0.004,0.036,0.002,0.052,0.002
+                       c0.139-0.004,0.11-0.241,0.317-0.16c0.106,0.045,0.2,0.118,0.332,0.125c0.05,0.002,0.102,0.013,0.148,0.031
+                       c0.056,0.022,0.072,0.075,0.043,0.114c-0.046,0.062-0.11,0.11-0.162,0.17c-0.044,0.049-0.055,0.1-0.022,0.163
+                       c0.108,0.2,0.105,0.202-0.029,0.304c-0.143,0.108-0.287,0.214-0.377,0.362c-0.048,0.078-0.123,0.143-0.201,0.202
+                       c-0.093,0.067-0.227,0.098-0.296,0.172c-0.108,0.114-0.176,0.254-0.26,0.378c0.009,0.104,0.115,0.102,0.189,0.124
+                       c0.075,0.024,0.112,0.12,0.22,0.091c0.095-0.105-0.029-0.256,0.071-0.336c0.109-0.088,0.266-0.133,0.402-0.195
+                       c0.046-0.021,0.096-0.037,0.137-0.064c0.143-0.102,0.294-0.101,0.428-0.002c0.136,0.102,0.296,0.147,0.464,0.191
+                       c0.07,0.017,0.115,0.092,0.06,0.141c-0.234,0.216-0.349,0.503-0.604,0.711c-0.125,0.102-0.276,0.175-0.405,0.275
+                       c0.046,0.133,0.215,0.199,0.204,0.353c-0.007,0.122,0.138,0.155,0.23,0.22c0.108,0.08,0.121,0.153,0.024,0.224
+                       c-0.136,0.1-0.254,0.195-0.235,0.367c0.011,0.093-0.074,0.156-0.167,0.207c-0.206,0.11-0.399,0.237-0.61,0.341
+                       c-0.114,0.061-0.173,0.142-0.222,0.236l0.007,0.006c0.217-0.039,0.451-0.008,0.645-0.14c0.083-0.057,0.203-0.072,0.296-0.029
+                       c0.158,0.079,0.259,0.007,0.373-0.064c0.07-0.042,0.141-0.086,0.218-0.116c0.162-0.062,0.34,0.012,0.336,0.163
+                       c-0.002,0.14,0.02,0.175,0.184,0.137c0.087-0.02,0.156-0.049,0.23-0.088c0.117-0.065,0.196-0.034,0.227,0.073
+                       c0.022,0.07,0.026,0.147,0.046,0.217c0.026,0.093,0.177,0.183,0.064,0.278c-0.115,0.098-0.207,0.244-0.411,0.239
+                       c-0.09-0.002-0.176,0.007-0.244,0.061c-0.125,0.099-0.224,0.228-0.368,0.302c-0.141,0.073-0.336,0.067-0.442,0.204v0.002
+                       c0.108-0.016,0.208-0.006,0.294,0.058c0.079,0.057,0.158,0.11,0.251,0.175c0.089-0.089,0.158-0.171,0.241-0.24
+                       c0.122-0.102,0.28-0.063,0.313,0.08c0.016,0.069,0.002,0.144,0.002,0.232c0.158,0.039,0.294-0.038,0.437-0.071
+                       c0.089-0.018,0.165-0.034,0.256-0.01c0.092,0.024,0.151,0.098,0.114,0.167c-0.095,0.173-0.196,0.342-0.292,0.515
+                       c-0.076,0.139-0.217,0.17-0.382,0.195c-0.318,0.044-0.542,0.237-0.784,0.395c-0.041,0.027-0.05,0.086-0.01,0.115
+                       c0.034,0.024,0.103,0.037,0.142,0.024c0.079-0.029,0.143-0.08,0.217-0.118c0.045-0.023,0.117-0.037,0.134,0.011
+                       c0.055,0.178,0.22,0.205,0.395,0.238c0.102,0.02,0.114,0.093,0.036,0.169c-0.07,0.067-0.149,0.126-0.215,0.193
+                       c-0.087,0.084-0.07,0.177,0.059,0.202c0.186,0.035,0.277,0.102,0.246,0.271c-0.007,0.051,0.06,0.086,0.105,0.059
+                       c0.259-0.159,0.388-0.033,0.544,0.138c0.114,0.126,0.031,0.184-0.02,0.297c-0.125,0.295-0.378,0.424-0.696,0.519
+                       c-0.144,0.041-0.27,0.129-0.4,0.2c-0.017,0.008-0.024,0.055-0.013,0.075c0.013,0.019,0.054,0.033,0.083,0.04
+                       c0.129,0.019,0.239-0.007,0.333-0.091c0.121-0.112,0.259-0.14,0.416-0.04c0.113,0.069,0.23,0.049,0.344-0.004
+                       c0.046-0.022,0.091-0.047,0.139-0.061c0.186-0.055,0.301,0.003,0.31,0.181c0.007,0.09-0.04,0.161,0.146,0.143
+                       c0.208-0.017,0.295,0.079,0.235,0.238c-0.129,0.33-0.338,0.605-0.798,0.686c0.051,0.08,0.099,0.157,0.147,0.233
+                       c0.05,0.08,0.125,0.098,0.215,0.059c0.064-0.027,0.119-0.064,0.184-0.086c0.119-0.039,0.22,0.018,0.2,0.122
+                       c-0.029,0.171-0.036,0.33-0.244,0.46c-0.22,0.135-0.387,0.337-0.56,0.52c-0.121,0.126-0.189,0.254-0.053,0.438
+                       c0.129,0.171,0.099,0.391-0.05,0.572c-0.051,0.065-0.102,0.126-0.031,0.198c0.063,0.063,0.151,0.061,0.24,0.047
+                       c0.173-0.022,0.347-0.045,0.519-0.059c0.088-0.007,0.191,0,0.236,0.068c0.118,0.183,0.269,0.136,0.441,0.073
+                       c0.093-0.033,0.189-0.047,0.285-0.047c0.05-0.041,0.102-0.08,0.165-0.113c0.134-0.069,0.181-0.091,0.32-0.007
+                       c0.207,0.122,0.444,0.22,0.683,0.295c0.115,0.034,0.184,0.107,0.297,0.149c0.077-0.155,0.118-0.297,0-0.461
+                       c-0.064-0.089-0.057-0.213-0.091-0.32c-0.041-0.129-0.125-0.228-0.303-0.226c-0.116,0-0.175-0.059-0.235-0.126
+                       c-0.206-0.234-0.421-0.456-0.73-0.604c-0.207-0.102-0.315-0.266-0.313-0.483c0.002-0.236-0.031-0.466-0.151-0.686
+                       c-0.112-0.208-0.011-0.404,0.096-0.612c-0.139-0.089-0.239-0.211-0.347-0.331c-0.193-0.218-0.201-0.255-0.009-0.439
+                       c0.211-0.2,0.33-0.222,0.645-0.122c0.046,0.013,0.086,0.045,0.132,0.051c0.069,0.008,0.121-0.027,0.155-0.078
+                       c0.034-0.054,0.039-0.103-0.024-0.147c-0.205-0.142-0.203-0.144-0.325-0.45c-0.011-0.036-0.057-0.065-0.09-0.093
+                       c-0.067-0.055-0.093-0.11-0.022-0.177c0.057-0.049,0.11-0.102,0.167-0.151c0.283-0.244,0.366-0.269,0.706-0.081
+                       c0.296,0.165,0.63,0.28,0.894,0.493c0.149,0.12,0.369,0.158,0.507,0.307c0.062,0.064,0.182,0.004,0.281-0.04
+                       c-0.171-0.177-0.405-0.291-0.572-0.468c-0.062-0.069-0.112-0.124-0.124-0.206c-0.01-0.069-0.034-0.122-0.12-0.165
+                       c-0.149-0.071-0.169-0.233-0.108-0.318c0.099-0.133-0.033-0.277,0.088-0.395c0.046-0.041,0.017-0.104-0.021-0.153
+                       c-0.177-0.221-0.261-0.472-0.307-0.732c-0.024-0.131-0.077-0.238-0.208-0.315c-0.052-0.031-0.1-0.068-0.148-0.106
+                       c-0.234-0.18-0.244-0.209-0.108-0.46c0.029-0.053,0.081-0.1,0.02-0.145c-0.153-0.109-0.244-0.254-0.342-0.396
+                       c-0.048-0.066-0.189-0.084-0.184-0.176c0.004-0.124,0.153-0.169,0.244-0.244c0.068-0.055,0.169-0.083,0.252-0.126
+                       c0.115-0.063,0.117-0.089,0.035-0.201c-0.105-0.139-0.103-0.139,0.029-0.255c0.033-0.027,0.055-0.07,0.093-0.092
+                       c0.351-0.207,0.33-0.283,0.713-0.047c0.067,0.039,0.136,0.075,0.2,0.11c0.116-0.049,0.026-0.088,0.013-0.131
+                       c-0.026-0.065-0.067-0.129-0.07-0.195c-0.002-0.053,0.037-0.11-0.022-0.153c-0.154-0.109-0.106-0.211,0.006-0.315
+                       c0.066-0.059,0.127-0.122,0.189-0.187c0.083-0.084,0.184-0.108,0.305-0.072c0.062,0.015,0.127,0.027,0.191,0.037
+                       c0.087,0.016,0.189,0.118,0.252,0.016c0.046-0.073-0.058-0.151-0.125-0.208c-0.088-0.081-0.196-0.14-0.16-0.278
+                       c0.12-0.481-0.117-0.89-0.417-1.276c-0.081-0.106-0.066-0.175,0.022-0.253c0.055-0.049,0.105-0.112,0.175-0.136
+                       c0.127-0.047,0.176-0.123,0.176-0.226c0.002-0.289,0.259-0.391,0.5-0.506c0.057-0.029,0.136-0.029,0.187,0.008
+                       c0.138,0.098,0.318,0.045,0.469,0.1c0.057,0.134,0.241,0.129,0.332,0.226c0.007,0.007,0.064-0.008,0.079-0.024
+                       c0.016-0.02,0.029-0.057,0.016-0.075c-0.021-0.033-0.054-0.078-0.09-0.084c-0.11-0.022-0.224-0.029-0.336-0.042
+                       c0.038-0.186-0.022-0.351-0.156-0.499c-0.044-0.051-0.046-0.102-0.004-0.153c0.057-0.065,0.105-0.14,0.176-0.193
+                       c0.07-0.053,0.158-0.096,0.249-0.122c0.086-0.024,0.139,0.059,0.212,0.087c0.061,0.019,0.127,0.073,0.177,0.064
+                       c0.334-0.073,0.414,0.122,0.419,0.315c0.002,0.177,0.091,0.246,0.255,0.3c0.235,0.075,0.426,0.202,0.586,0.362
+                       c0.125,0.119,0.143,0.177,0.028,0.286c-0.121,0.12-0.174,0.26-0.248,0.395c-0.074,0.14-0.031,0.339-0.268,0.407
+                       c-0.002,0.001-0.005,0.027,0.002,0.037c0.007,0.011,0.026,0.027,0.036,0.024c0.048-0.012,0.096-0.02,0.136-0.04
+                       c0.204-0.113,0.407-0.23,0.608-0.348c0.117-0.068,0.228-0.08,0.362-0.013c0.114,0.057,0.215,0.122,0.308,0.199
+                       c0.215,0.181,0.232,0.22,0.007,0.398c-0.169,0.137-0.207,0.344-0.391,0.466c-0.017,0.011-0.009,0.051-0.013,0.076
+                       c-0.009,0.081,0.065,0.147,0.142,0.127c0.048-0.014,0.093-0.029,0.139-0.045c0.116-0.04,0.227-0.124,0.366-0.051
+                       c0.196,0.1,0.391,0.202,0.492,0.387c0.014,0.027-0.01,0.082-0.039,0.108c-0.088,0.078-0.186,0.153-0.286,0.224
+                       c-0.142,0.098-0.182,0.22-0.153,0.369c0.014,0.066,0.005,0.137,0.024,0.204c0.062,0.226,0.153,0.448,0.026,0.683
+                       c-0.031,0.054,0.002,0.136,0.011,0.203c0.017,0.113,0.087,0.166,0.225,0.18c0.415,0.037,0.53,0.088,0.819,0.361
+                       c-0.033,0.116-0.143,0.183-0.229,0.264c-0.094,0.089-0.162,0.171-0.052,0.286c0.033,0.036,0.009,0.081-0.024,0.114
+                       c-0.053,0.051-0.121,0.093-0.099,0.175c0.041,0.142-0.229,0.309-0.014,0.409c0.156,0.073,0.258-0.132,0.397-0.199
+                       c0.132-0.062,0.22-0.079,0.348,0c0.108,0.067,0.204,0.134,0.285,0.222c0.153,0.172,0.166,0.176-0.014,0.347
+                       c-0.092,0.086-0.134,0.177-0.166,0.288c-0.047,0.157-0.108,0.363-0.088,0.477c0.01,0.058,0,0.112-0.05,0.151
+                       c-0.102,0.075-0.055,0.151,0.008,0.218c0.138,0.144,0.189,0.277,0.005,0.43c-0.079,0.067-0.096,0.169-0.057,0.271
+                       c0.021,0.067,0.029,0.136,0.038,0.205c0.031,0.177-0.017,0.324-0.232,0.408c-0.055,0.024-0.095,0.073-0.134,0.102
+                       c-0.029,0.131,0.153,0.089,0.175,0.183c0.02,0.084,0.126,0.119,0.196,0.177c0.105,0.088,0.117,0.202-0.007,0.288
+                       c-0.201,0.144-0.174,0.34-0.206,0.519c-0.009,0.051,0.032,0.116-0.028,0.151c-0.167,0.091-0.237,0.213-0.239,0.381
+                       c-0.003,0.069-0.095,0.04-0.158,0.04c-0.181,0.002-0.215,0.02-0.224,0.149c-0.017,0.211-0.072,0.407-0.21,0.584
+                       c-0.026,0.031-0.022,0.082,0.026,0.11c0.048,0.029,0.093,0.01,0.125-0.024c0.115-0.124,0.255-0.215,0.446-0.23
+                       c0.068-0.006,0.118-0.036,0.156-0.073c-0.005-0.004-0.011-0.01-0.018-0.016c-0.057-0.049,0-0.159,0.086-0.173
+                       c0.049-0.006,0.103-0.011,0.153-0.008c0.025,0,0.052,0.008,0.076,0.02c0.111-0.027,0.197-0.083,0.285-0.147
+                       c0.002-0.014,0.004-0.024,0.009-0.036c0.03-0.053,0.096-0.084,0.151-0.068c0.145-0.089,0.297-0.173,0.452-0.256
+                       c-0.079-0.082-0.079-0.135-0.077-0.319c0.002-0.254,0.005-0.262,0.313-0.283c0.108-0.006,0.193-0.024,0.289-0.073
+                       c0.236-0.126,0.479-0.173,0.71,0.027c0.129,0.109,0.294,0.065,0.447,0.052c0.067-0.007,0.105-0.114,0.045-0.143
+                       c-0.363-0.17-0.26-0.483-0.327-0.74c-0.022-0.082,0.031-0.144,0.096-0.198c0.112-0.091,0.074-0.207,0.007-0.283
+                       c-0.114-0.129-0.18-0.302-0.311-0.39c-0.205-0.142-0.286-0.254-0.184-0.477c0.039-0.081-0.086-0.211-0.119-0.322
+                       c-0.059-0.191-0.031-0.226,0.215-0.318c0.239-0.089,0.357-0.295,0.275-0.489c-0.029-0.071-0.069-0.135-0.093-0.206
+                       c-0.033-0.089,0.064-0.173,0.182-0.165c0.016,0.002,0.038-0.002,0.05,0.006c0.229,0.158,0.38-0.004,0.549-0.092
+                       c0.094-0.049,0.121-0.116,0.046-0.177c-0.11-0.089-0.129-0.205-0.173-0.315c-0.099-0.246-0.045-0.411,0.232-0.486
+                       c0.246-0.066,0.404-0.228,0.617-0.324c0.136-0.062,0.197-0.159,0.174-0.295c-0.011-0.071-0.009-0.143,0.006-0.217
+                       c0.029-0.147,0.127-0.2,0.299-0.15c0.134,0.038,0.259,0.085,0.406,0.063c0.091-0.016,0.187,0.018,0.211,0.096
+                       c0.041,0.128,0.149,0.179,0.265,0.251c0.134,0.078,0.215,0.198,0.424,0.149c0.11-0.024,0.186,0.071,0.193,0.169
+                       c0.02,0.238-0.015,0.471-0.093,0.695c-0.221,0.636-0.129,0.466,0.251,0.892c0.04,0.045,0.136,0.066,0.153,0.113
+                       c0.055,0.149,0.163,0.175,0.323,0.138c0.048-0.014,0.102-0.014,0.155-0.016c0.081,0,0.142,0.071,0.089,0.12
+                       c-0.127,0.116-0.201,0.236-0.149,0.397c0.01,0.033-0.016,0.091-0.047,0.12c-0.28,0.239-0.338,0.601-0.668,0.817
+                       c0.263,0.12,0.269,0.122,0.388-0.01c0.184-0.202,0.441-0.32,0.717-0.41c0.014-0.004,0.033,0.002,0.05,0.002
+                       c0.141-0.004,0.11-0.242,0.315-0.16c0.111,0.045,0.201,0.118,0.333,0.125c0.049,0.003,0.103,0.013,0.148,0.033
+                       c0.055,0.022,0.072,0.073,0.043,0.113c-0.043,0.061-0.11,0.112-0.162,0.169c-0.044,0.049-0.055,0.1-0.022,0.163
+                       c0.108,0.202,0.105,0.204-0.029,0.306c-0.143,0.106-0.285,0.213-0.378,0.362c-0.048,0.075-0.122,0.144-0.2,0.202
+                       c-0.094,0.065-0.225,0.096-0.297,0.173c-0.108,0.11-0.176,0.251-0.26,0.375c0.009,0.106,0.117,0.102,0.191,0.126
+                       c0.073,0.024,0.11,0.12,0.218,0.089c0.097-0.105-0.029-0.256,0.071-0.336c0.111-0.086,0.265-0.131,0.403-0.195
+                       c0.045-0.02,0.098-0.035,0.136-0.065c0.145-0.1,0.294-0.097,0.428,0c0.138,0.101,0.296,0.146,0.464,0.189
+                       c0.068,0.018,0.114,0.093,0.059,0.142c-0.235,0.218-0.349,0.503-0.604,0.712c-0.127,0.102-0.276,0.173-0.402,0.276
+                       c0.042,0.131,0.213,0.2,0.203,0.35c-0.009,0.122,0.139,0.155,0.228,0.222c0.108,0.08,0.122,0.151,0.024,0.224
+                       c-0.137,0.1-0.254,0.192-0.232,0.365c0.009,0.096-0.077,0.156-0.169,0.207c-0.206,0.113-0.4,0.239-0.608,0.344
+                       c-0.118,0.057-0.175,0.141-0.224,0.235l0.007,0.006c0.218-0.042,0.454-0.008,0.646-0.139c0.083-0.058,0.204-0.073,0.296-0.029
+                       c0.158,0.075,0.261,0.004,0.375-0.067c0.068-0.042,0.139-0.087,0.217-0.116c0.16-0.059,0.338,0.012,0.335,0.163
+                       c-0.003,0.142,0.018,0.177,0.183,0.137c0.087-0.02,0.156-0.047,0.23-0.086c0.119-0.065,0.197-0.034,0.228,0.073
+                       c0.021,0.071,0.029,0.143,0.045,0.215c0.026,0.093,0.177,0.185,0.065,0.278c-0.115,0.1-0.208,0.246-0.412,0.241
+                       c-0.091-0.004-0.176,0.006-0.244,0.058c-0.125,0.099-0.224,0.228-0.365,0.302c-0.144,0.075-0.34,0.067-0.445,0.206h0.002
+                       c0.108-0.014,0.206-0.004,0.294,0.059c0.077,0.058,0.158,0.112,0.248,0.175c0.088-0.088,0.158-0.17,0.242-0.241
+                       c0.122-0.102,0.279-0.063,0.313,0.082c0.017,0.069,0.002,0.142,0.002,0.23c0.158,0.038,0.296-0.039,0.439-0.071
+                       c0.087-0.019,0.166-0.035,0.254-0.011c0.093,0.027,0.153,0.1,0.116,0.167c-0.096,0.173-0.197,0.343-0.293,0.517
+                       c-0.077,0.137-0.217,0.168-0.382,0.192c-0.316,0.047-0.54,0.238-0.784,0.395c-0.041,0.03-0.05,0.089-0.007,0.118
+                       c0.033,0.022,0.099,0.035,0.138,0.024c0.078-0.031,0.143-0.08,0.218-0.12c0.048-0.024,0.119-0.035,0.134,0.014
+                       c0.055,0.177,0.22,0.204,0.395,0.237c0.102,0.018,0.114,0.093,0.036,0.169c-0.07,0.067-0.148,0.124-0.215,0.191
+                       c-0.086,0.086-0.07,0.18,0.06,0.202c0.186,0.035,0.277,0.102,0.248,0.273c-0.009,0.051,0.06,0.086,0.103,0.059
+                       c0.259-0.161,0.39-0.033,0.542,0.136c0.115,0.126,0.032,0.186-0.018,0.3c-0.125,0.294-0.375,0.422-0.696,0.519
+                       c-0.142,0.041-0.268,0.126-0.399,0.198c-0.017,0.011-0.024,0.057-0.011,0.075c0.014,0.019,0.052,0.035,0.083,0.04
+                       c0.128,0.019,0.239-0.005,0.332-0.089c0.124-0.112,0.261-0.14,0.417-0.042c0.115,0.071,0.229,0.051,0.343-0.004
+                       c0.046-0.02,0.092-0.045,0.142-0.061c0.187-0.055,0.301,0.005,0.31,0.181c0.005,0.093-0.04,0.161,0.144,0.147
+                       c0.208-0.02,0.294,0.075,0.235,0.237c-0.13,0.328-0.335,0.603-0.797,0.686c0.05,0.08,0.099,0.155,0.145,0.233
+                       c0.05,0.081,0.125,0.096,0.217,0.057c0.063-0.025,0.118-0.062,0.182-0.084c0.121-0.041,0.22,0.018,0.201,0.122
+                       c-0.029,0.171-0.037,0.33-0.245,0.459c-0.081,0.049-0.152,0.112-0.224,0.175c0.065-0.053,0.163-0.068,0.318-0.037
+                       c0.43,0.084,0.674,0.049,0.846-0.348c0.151-0.344,0.404-0.377,0.811-0.267c0.234,0.065,0.408,0.283,0.698,0.2
+                       c0.129-0.118,0.06-0.235,0.011-0.351c-0.112-0.253-0.134-0.473,0.18-0.656c0.141-0.085,0.242-0.232,0.333-0.362
+                       c0.323-0.466,0.258-0.623-0.324-0.861c-0.064-0.029-0.143-0.031-0.209-0.059c-0.278-0.122-0.318-0.261-0.142-0.532
+                       c0.05-0.08,0.132-0.144,0.191-0.211c-0.04-0.253-0.32-0.255-0.492-0.335c-0.366-0.171-0.72-0.311-0.698-0.743
+                       c0.005-0.107-0.096-0.244-0.196-0.322c-0.254-0.198-0.234-0.411-0.194-0.68c0.077-0.499,0.044-0.506,0.66-0.461
+                       c0.134,0.011,0.208-0.004,0.22-0.131c0.098-0.981,0.478-1.525,1.531-1.909c0.404-0.147,0.607-0.303,0.647-0.646
+                       c0.019-0.156,0.056-0.31,0.104-0.46c0.064-0.222,0.203-0.259,0.495-0.202c0.395,0.078,0.729,0.313,1.15,0.307
+                       c0.064-0.003,0.148-0.047,0.184-0.093c0.035-0.042,0.052-0.15,0.022-0.167c-0.392-0.251-0.467-0.537-0.191-0.892
+                       c0.102-0.135,0.112-0.297-0.008-0.44c-0.208-0.243-0.208-0.528-0.224-0.807c-0.007-0.12-0.011-0.291,0.071-0.354
+                       c0.548-0.416,0.484-0.98,0.565-1.515c0.031-0.213,0.124-0.417,0.291-0.597c0.272-0.291,0.4-0.327,0.93-0.153
+                       c0.201,0.068,0.356,0.1,0.419-0.125c0.052-0.195,0.23-0.312,0.384-0.444c0.077-0.064,0.168-0.157,0.256-0.161
+                       c0.446-0.02,0.872,0.093,1.295,0.198c0.221,0.055,0.412,0.138,0.476,0.348c0.007,0.031,0.022,0.059,0.033,0.089
+                       c0.068,0.157,0.199,0.155,0.356,0.11c0.298-0.084,0.491,0.031,0.646,0.237c0.159,0.216,0.328,0.425,0.148,0.69
+                       c-0.055,0.081-0.134,0.152-0.176,0.236c-0.127,0.258,0.026,0.51,0.343,0.572c0.072,0.015,0.149,0.024,0.221,0.02
+                       c0.184-0.008,0.365-0.029,0.6-0.049c0.132,0.306,0.232,0.639,0.419,0.931c0.246,0.391,0.222,0.708-0.177,1.002
+                       c-0.11,0.08-0.237,0.159-0.229,0.296c0.001,0.047,0.081,0.13,0.121,0.127c0.143-0.007,0.332-0.002,0.419-0.075
+                       c0.446-0.369,0.865-0.138,1.284-0.052c0.057,0.352-0.358,0.444-0.373,0.7c0.059,0.11,0.174,0.095,0.279,0.108
+                       c0.557,0.075,0.625,0.169,0.278,0.468c-0.294,0.257-0.462,0.561-0.61,0.879c-0.07,0.15-0.009,0.308,0.224,0.357
+                       c0.204,0.041,0.344,0.131,0.239,0.324c-0.097,0.177-0.165,0.351-0.064,0.536c0.184,0.344,0.198,0.717,0.218,1.099
+                       c0.485,0,0.92,0.115,1.324-0.122c0.085-0.049,0.206-0.027,0.301,0.044c0.39,0.289,0.482,0.584,0.331,1.002
+                       c-0.198,0.546-0.567,0.998-1.108,1.416c0.471,0.126,0.708,0.437,0.906,0.835c0.18-0.158,0.265-0.258,0.379-0.327
+                       c0.081-0.049,0.196-0.065,0.299-0.084c0.028-0.007,0.066,0.019,0.099,0.033c1.392,0.558,1.251,0.601,0.254,1.436
+                       c-0.361,0.304-0.805,0.621-1.365,0.733c-0.088,0.017-0.18,0.121-0.123,0.223c0.026,0.049,0.12,0.116,0.163,0.106
+                       c0.572-0.123,0.778,0.26,1.038,0.542c0.202,0.218,0.303,0.511,0.533,0.7c0.349,0.286,0.263,0.544,0.07,0.837
+                       c-0.23,0.345-0.588,0.63-0.73,1.02c0.553,0.32,1.268,0.264,1.823,0.588c0.159,0.096,0.349-0.053,0.526-0.069
+                       c0.258-0.024,0.435,0.132,0.395,0.336c-0.017,0.093-0.022,0.202-0.081,0.269c-0.296,0.313-0.547,0.699-0.93,0.901
+                       c-0.533,0.279-0.743,0.728-1.162,1.118c0.426-0.012,0.659-0.228,0.947-0.353c0.186-0.083,0.362-0.056,0.509,0.057
+                       c0.17,0.129,0.281,0.279,0.184,0.493c-0.297,0.664-0.86,1.104-1.637,1.338c-0.225,0.069-0.4,0.169-0.522,0.324
+                       c-0.132,0.168-0.121,0.359,0.022,0.526c0.146,0.167,0.358,0.233,0.586,0.144c0.266-0.107,0.507-0.257,0.768-0.369
+                       c0.404-0.171,0.681-0.051,0.817,0.344c0.03,0.088,0.008,0.191,0.046,0.275c0.064,0.131,0.201,0.179,0.36,0.118
+                       c0.132-0.051,0.247-0.138,0.383-0.187c0.306-0.104,0.466-0.062,0.665,0.165c0.11,0.126,0.207,0.257,0.31,0.386
+                       c0.118,0.149,0.12,0.303-0.048,0.415c-0.306,0.209-0.536,0.526-1.015,0.499c-0.225-0.013-0.302,0.14-0.328,0.309
+                       c-0.053,0.342,0.134,0.508,0.478,0.359c0.412-0.177,0.779-0.1,1.196-0.004c0.011,0.084-0.002,0.182,0.04,0.257
+                       c0.252,0.466-0.024,0.815-0.446,1.014c-0.06,0.029-0.111,0.063-0.158,0.098c2.484,0.954,4.865,1.868,7.112,2.732
+                       c0.041-0.027,0.089-0.038,0.144-0.042c0.344-0.027,0.686-0.057,1.028-0.087c0.081-0.003,0.18,0.101,0.23,0.016
+                       c0.04-0.068,0.038-0.186-0.004-0.253c-0.108-0.166-0.156-0.357-0.307-0.506c-0.055-0.053,0.005-0.169,0.088-0.177
+                       c0.243-0.024,0.484-0.038,0.725-0.058c0.291,0.147,0.473-0.059,0.738-0.137c-0.141-0.138-0.246-0.252-0.363-0.355
+                       c-0.163-0.146-0.34-0.238-0.599-0.156c-0.207,0.069-0.365,0.011-0.457-0.18c-0.086-0.184-0.27-0.308-0.459-0.411
+                       c-0.384-0.208-0.682-0.499-1.038-0.73c-0.033-0.022-0.06-0.075-0.057-0.113c0.002-0.071,0.084-0.083,0.151-0.098
+                       c0.129-0.032,0.327,0.053,0.38-0.069c0.074-0.171-0.194-0.173-0.275-0.275c-0.017-0.022-0.058-0.036-0.087-0.049
+                       c-0.154-0.069-0.38-0.144-0.349-0.287c0.044-0.19,0.32-0.161,0.489-0.148c0.286,0.023,0.536,0.008,0.779-0.134
+                       c0.076-0.045,0.2-0.036,0.294-0.049c0.083-0.107-0.06-0.126-0.079-0.189c-0.007-0.029-0.024-0.059-0.017-0.084
+                       c0.026-0.122,0.289-0.373,0.417-0.357c0.312,0.035,0.566-0.12,0.851-0.171c0.209-0.038,0.373-0.033,0.525,0.092
+                       c0.115,0.093,0.23,0.185,0.409,0.167c0.082-0.006,0.197,0.034,0.223-0.062c0.016-0.067-0.094-0.071-0.149-0.1
+                       c-0.15-0.085-0.11-0.24-0.179-0.356c-0.044-0.075,0.018-0.139,0.081-0.196c0.071-0.067,0.062-0.13-0.024-0.185
+                       c-0.041-0.027-0.074-0.063-0.118-0.087c-0.292-0.172-0.363-0.263-0.439-0.55c-0.026-0.106-0.11-0.175-0.228-0.226
+                       c-0.336-0.138-0.621-0.324-0.738-0.642c-0.031-0.08-0.105-0.11-0.177-0.153c-0.098-0.059-0.193-0.124-0.284-0.195
+                       c-0.087-0.068-0.103-0.147-0.015-0.23c0.057-0.053,0.115-0.11,0.158-0.173c0.141-0.204,0.282-0.406,0.299-0.652
+                       c0.007-0.129,0.064-0.137,0.189-0.045c0.026,0.018,0.046,0.059,0.07,0.063c0.081,0.004,0.062-0.052,0.055-0.087
+                       c-0.024-0.126,0.038-0.206,0.184-0.22c0.205-0.018,0.375-0.161,0.602-0.117c0.033,0.008,0.095-0.032,0.125-0.063
+                       c0.084-0.093,0.193-0.184,0.224-0.291c0.039-0.135,0.079-0.217,0.266-0.2c0.122,0.014,0.184-0.067,0.241-0.142
+                       c0.081-0.108,0.201-0.147,0.354-0.153c0.184-0.006,0.228-0.078,0.182-0.221c-0.052-0.163-0.198-0.227-0.367-0.287
+                       c-0.166-0.058-0.193-0.114-0.092-0.234c0.092-0.106,0.096-0.172-0.026-0.253c-0.151-0.102-0.279-0.23-0.442-0.31
+                       c-0.175-0.085-0.329-0.151-0.333-0.348c-0.003-0.089-0.103-0.149-0.18-0.211c-0.1-0.08-0.198-0.164-0.291-0.253
+                       c-0.058-0.055-0.022-0.147,0.064-0.182c0.014-0.004,0.031-0.012,0.048-0.016c0.101-0.02,0.229-0.014,0.26-0.113
+                       c0.048-0.149,0.02-0.3-0.108-0.415c-0.114-0.108-0.253-0.2-0.375-0.304c-0.06-0.05,0-0.159,0.085-0.173
+                       c0.053-0.007,0.104-0.012,0.155-0.01c0.098,0.005,0.194,0.114,0.287,0.038c0.055-0.042,0.05-0.133,0.083-0.2
+                       c0.031-0.061,0.112-0.096,0.17-0.063c0.181,0.104,0.315,0.051,0.444-0.066c0.034-0.03,0.081-0.045,0.125-0.071
+                       c-0.217-0.185-0.217-0.185-0.215-0.446c0.004-0.251,0.004-0.26,0.316-0.277c0.108-0.009,0.193-0.027,0.288-0.075
+                       c0.234-0.126,0.481-0.173,0.71,0.024c0.127,0.11,0.292,0.066,0.447,0.053c0.065-0.006,0.104-0.114,0.043-0.142
+                       c-0.36-0.171-0.257-0.483-0.325-0.741c-0.022-0.082,0.031-0.144,0.094-0.195c0.115-0.096,0.075-0.208,0.009-0.284
+                       c-0.115-0.129-0.18-0.302-0.311-0.391c-0.208-0.142-0.287-0.253-0.184-0.477c0.039-0.08-0.086-0.211-0.121-0.322
+                       c-0.057-0.191-0.029-0.226,0.217-0.318c0.239-0.088,0.356-0.295,0.275-0.488c-0.028-0.071-0.068-0.136-0.095-0.207
+                       c-0.032-0.088,0.064-0.173,0.181-0.164c0.017,0.002,0.041-0.002,0.052,0.006c0.23,0.157,0.38-0.004,0.55-0.093
+                       c0.093-0.049,0.122-0.113,0.042-0.177c-0.109-0.088-0.126-0.204-0.172-0.315c-0.098-0.246-0.043-0.41,0.235-0.485
+                       c0.246-0.067,0.402-0.228,0.617-0.324c0.134-0.063,0.196-0.16,0.172-0.295c-0.009-0.071-0.007-0.147,0.008-0.216
+                       c0.029-0.149,0.127-0.202,0.299-0.151c0.134,0.038,0.259,0.085,0.404,0.062c0.093-0.015,0.186,0.016,0.213,0.097
+                       c0.038,0.125,0.148,0.18,0.265,0.251c0.134,0.078,0.215,0.196,0.423,0.151c0.11-0.028,0.187,0.069,0.194,0.166
+                       c0.016,0.238-0.017,0.471-0.094,0.696c-0.22,0.634-0.128,0.463,0.252,0.891c0.04,0.045,0.136,0.067,0.152,0.114
+                       c0.055,0.149,0.16,0.175,0.323,0.137c0.048-0.013,0.104-0.013,0.153-0.015c0.084,0,0.142,0.07,0.089,0.12
+                       c-0.125,0.115-0.199,0.235-0.146,0.397c0.01,0.033-0.016,0.09-0.048,0.119c-0.282,0.24-0.337,0.602-0.667,0.819
+                       c0.263,0.118,0.268,0.12,0.385-0.011c0.187-0.202,0.442-0.32,0.72-0.41c0.014-0.005,0.033,0.001,0.049,0.001
+                       c0.139-0.004,0.111-0.241,0.316-0.159c0.108,0.045,0.202,0.118,0.333,0.124c0.05,0.004,0.103,0.014,0.147,0.034
+                       c0.055,0.021,0.072,0.072,0.044,0.113c-0.046,0.059-0.11,0.11-0.163,0.169c-0.046,0.048-0.055,0.1-0.021,0.161
+                       c0.108,0.202,0.105,0.204-0.029,0.307c-0.143,0.106-0.287,0.212-0.377,0.361c-0.048,0.075-0.123,0.144-0.201,0.202
+                       c-0.093,0.065-0.227,0.098-0.299,0.173c-0.105,0.114-0.174,0.251-0.259,0.376c0.01,0.104,0.116,0.101,0.189,0.125
+                       c0.077,0.024,0.113,0.12,0.219,0.089c0.097-0.104-0.026-0.253,0.073-0.336c0.108-0.086,0.266-0.131,0.403-0.194
+                       c0.045-0.02,0.095-0.036,0.136-0.065c0.143-0.102,0.293-0.098,0.427,0c0.136,0.1,0.297,0.144,0.465,0.189
+                       c0.069,0.017,0.115,0.092,0.059,0.141c-0.237,0.218-0.349,0.507-0.604,0.713c-0.127,0.102-0.276,0.173-0.404,0.275
+                       c0.042,0.131,0.215,0.2,0.205,0.351c-0.009,0.122,0.136,0.155,0.227,0.222c0.109,0.08,0.122,0.152,0.024,0.224
+                       c-0.139,0.1-0.253,0.193-0.234,0.366c0.011,0.095-0.074,0.155-0.167,0.206c-0.206,0.114-0.4,0.24-0.61,0.344
+                       c-0.116,0.057-0.173,0.14-0.223,0.235l0.008,0.007c0.215-0.042,0.452-0.01,0.645-0.142c0.084-0.055,0.203-0.071,0.297-0.027
+                       c0.158,0.075,0.26,0.004,0.373-0.067c0.069-0.041,0.141-0.086,0.218-0.115c0.16-0.061,0.339,0.011,0.336,0.161
+                       c-0.002,0.142,0.019,0.177,0.184,0.137c0.087-0.019,0.156-0.048,0.23-0.088c0.116-0.062,0.196-0.031,0.228,0.075
+                       c0.02,0.071,0.025,0.144,0.044,0.216c0.024,0.092,0.175,0.184,0.065,0.277c-0.116,0.1-0.208,0.246-0.412,0.239
+                       c-0.09-0.001-0.176,0.01-0.244,0.061c-0.124,0.1-0.224,0.228-0.369,0.302c-0.141,0.076-0.339,0.067-0.442,0.205v0.002
+                       c0.108-0.014,0.208-0.005,0.294,0.059c0.079,0.057,0.158,0.11,0.248,0.175c0.091-0.088,0.158-0.171,0.244-0.242
+                       c0.122-0.102,0.28-0.062,0.313,0.083c0.016,0.069,0.002,0.141,0.002,0.23c0.158,0.037,0.294-0.04,0.437-0.071
+                       c0.087-0.02,0.165-0.036,0.254-0.012c0.093,0.028,0.152,0.101,0.117,0.167c-0.095,0.173-0.196,0.344-0.292,0.517
+                       c-0.077,0.138-0.22,0.169-0.382,0.193c-0.318,0.047-0.544,0.238-0.784,0.395c-0.044,0.029-0.05,0.086-0.01,0.118
+                       c0.033,0.021,0.103,0.035,0.141,0.021c0.078-0.029,0.144-0.078,0.218-0.117c0.045-0.024,0.117-0.036,0.134,0.013
+                       c0.055,0.177,0.22,0.204,0.394,0.238c0.103,0.017,0.116,0.093,0.036,0.169c-0.07,0.066-0.149,0.123-0.217,0.192
+                       c-0.084,0.085-0.067,0.176,0.059,0.2c0.187,0.036,0.279,0.105,0.248,0.273c-0.007,0.051,0.059,0.087,0.103,0.061
+                       c0.261-0.163,0.39-0.033,0.545,0.135c0.116,0.126,0.031,0.185-0.018,0.3c-0.125,0.293-0.378,0.422-0.696,0.519
+                       c-0.144,0.042-0.271,0.126-0.399,0.198c-0.017,0.011-0.024,0.058-0.013,0.075c0.013,0.02,0.052,0.035,0.083,0.04
+                       c0.129,0.02,0.239-0.005,0.333-0.089c0.121-0.113,0.257-0.139,0.415-0.041c0.113,0.07,0.23,0.05,0.344-0.005
+                       c0.046-0.021,0.091-0.045,0.138-0.059c0.187-0.055,0.302,0.004,0.313,0.18c0.005,0.093-0.043,0.162,0.142,0.147
+                       c0.209-0.02,0.295,0.075,0.234,0.238c-0.035,0.097-0.083,0.188-0.139,0.273c0.314,0.157,0.621,0.319,0.889,0.54
+                       c0.248,0.208,0.627,0.279,0.858,0.534c0.105,0.117,0.313,0.015,0.484-0.061c-0.285-0.306-0.687-0.506-0.967-0.814
+                       c-0.108-0.12-0.191-0.218-0.208-0.358c-0.016-0.12-0.053-0.21-0.2-0.284c-0.252-0.124-0.283-0.404-0.173-0.548
+                       c0.17-0.224-0.049-0.478,0.163-0.674c0.076-0.073,0.031-0.181-0.034-0.264c-0.296-0.387-0.433-0.819-0.501-1.265
+                       c-0.037-0.224-0.125-0.41-0.347-0.544c-0.091-0.055-0.173-0.122-0.252-0.188c-0.394-0.311-0.411-0.362-0.172-0.79
+                       c0.05-0.089,0.143-0.169,0.038-0.249c-0.258-0.191-0.408-0.44-0.576-0.686c-0.079-0.113-0.32-0.151-0.311-0.311
+                       c0.013-0.21,0.272-0.286,0.428-0.41c0.116-0.095,0.292-0.137,0.435-0.212c0.197-0.103,0.201-0.149,0.065-0.342
+                       c-0.173-0.242-0.17-0.242,0.06-0.435c0.059-0.049,0.098-0.122,0.163-0.159c0.61-0.346,0.573-0.477,1.227-0.065
+                       c0.11,0.069,0.23,0.132,0.336,0.193c0.201-0.08,0.048-0.153,0.024-0.222c-0.038-0.114-0.108-0.226-0.11-0.337
+                       c-0.002-0.091,0.068-0.191-0.033-0.264c-0.265-0.191-0.176-0.364,0.02-0.54c0.114-0.102,0.222-0.21,0.33-0.318
+                       c0.145-0.143,0.318-0.182,0.529-0.12c0.105,0.032,0.217,0.052,0.327,0.071c0.147,0.028,0.318,0.205,0.428,0.031
+                       c0.081-0.123-0.093-0.257-0.206-0.361c-0.15-0.138-0.332-0.242-0.27-0.479c0.22-0.825-0.172-1.528-0.672-2.2
+                       c-0.136-0.182-0.108-0.3,0.044-0.432c0.095-0.085,0.186-0.188,0.308-0.232c0.218-0.074,0.307-0.208,0.309-0.383
+                       c0.009-0.493,0.454-0.663,0.872-0.856c0.101-0.045,0.235-0.045,0.32,0.018c0.235,0.172,0.546,0.084,0.799,0.184v0.002h0.003
+                       c0.091,0.226,0.41,0.226,0.562,0.393c0.013,0.011,0.11-0.014,0.136-0.04c0.032-0.031,0.05-0.096,0.032-0.129
+                       c-0.034-0.057-0.092-0.133-0.156-0.149c-0.187-0.039-0.383-0.053-0.574-0.075v-0.002h-0.003c0.075-0.32-0.026-0.604-0.251-0.861
+                       c-0.072-0.084-0.074-0.175,0-0.259c0.099-0.114,0.184-0.24,0.306-0.331c0.122-0.088,0.278-0.161,0.43-0.202
+                       c0.151-0.039,0.239,0.105,0.364,0.151c0.101,0.04,0.215,0.132,0.301,0.114c0.577-0.116,0.708,0.222,0.708,0.552
+                       c-0.002,0.304,0.15,0.424,0.433,0.519c0.397,0.136,0.722,0.356,0.994,0.633c0.206,0.21,0.239,0.308,0.041,0.494
+                       c-0.216,0.2-0.311,0.438-0.441,0.672c-0.132,0.238-0.066,0.582-0.471,0.69c-0.007,0.002-0.009,0.047,0,0.065
+                       c0.013,0.018,0.046,0.045,0.063,0.041c0.079-0.017,0.165-0.031,0.231-0.066c0.357-0.191,0.706-0.387,1.055-0.582
+                       c0.206-0.118,0.394-0.135,0.621-0.017c0.195,0.102,0.366,0.215,0.524,0.35c0.363,0.312,0.389,0.381,0,0.681
+                       c-0.297,0.232-0.369,0.586-0.689,0.79c-0.031,0.022-0.017,0.088-0.024,0.135c-0.017,0.136,0.108,0.252,0.242,0.218
+                       c0.081-0.019,0.158-0.046,0.237-0.073c0.204-0.064,0.395-0.204,0.632-0.08c0.332,0.177,0.661,0.357,0.832,0.674
+                       c0.024,0.047-0.019,0.142-0.07,0.187c-0.156,0.133-0.323,0.259-0.498,0.377c-0.246,0.167-0.32,0.375-0.272,0.63
+                       c0.019,0.116,0.002,0.238,0.031,0.353c0.099,0.389,0.247,0.771,0.022,1.17c-0.052,0.092,0.002,0.233,0.02,0.351
+                       c0.024,0.193,0.143,0.286,0.378,0.31c0.713,0.075,0.911,0.167,1.398,0.642c-0.062,0.193-0.251,0.308-0.402,0.444
+                       c-0.165,0.151-0.286,0.293-0.103,0.495c0.058,0.059,0.017,0.135-0.04,0.19c-0.094,0.087-0.213,0.158-0.177,0.301
+                       c0.068,0.243-0.401,0.52-0.033,0.701c0.263,0.129,0.444-0.222,0.684-0.33c0.229-0.107,0.382-0.134,0.602,0.008
+                       c0.18,0.115,0.344,0.23,0.479,0.386c0.256,0.297,0.279,0.305-0.033,0.591c-0.163,0.149-0.235,0.305-0.294,0.493
+                       c-0.086,0.271-0.194,0.621-0.165,0.817c0.016,0.1-0.003,0.19-0.094,0.257c-0.174,0.129-0.098,0.262,0.007,0.375
+                       c0.235,0.251,0.316,0.478-0.002,0.737c-0.139,0.113-0.169,0.29-0.11,0.468c0.039,0.112,0.046,0.23,0.062,0.346
+                       c0.046,0.308-0.04,0.559-0.411,0.699c-0.098,0.037-0.169,0.12-0.234,0.171c-0.053,0.224,0.258,0.155,0.295,0.318
+                       c0.03,0.141,0.212,0.208,0.33,0.308c0.178,0.153,0.193,0.351-0.017,0.497c-0.351,0.242-0.313,0.575-0.373,0.886
+                       c-0.014,0.086,0.051,0.2-0.055,0.257c-0.287,0.153-0.411,0.359-0.421,0.648c-0.004,0.12-0.165,0.067-0.27,0.067
+                       c-0.312,0-0.371,0.029-0.393,0.251c-0.033,0.359-0.13,0.692-0.377,0.994c-0.048,0.055-0.041,0.142,0.04,0.193
+                       c0.081,0.048,0.16,0.017,0.215-0.04c0.203-0.21,0.447-0.361,0.772-0.387c0.156-0.013,0.263-0.074,0.337-0.182
+                       c0.094-0.133,0.237-0.193,0.41-0.224c0.224-0.039,0.382-0.153,0.56-0.279c0.354-0.255,0.771-0.444,1.172-0.654
+                       c0.032-0.018,0.135,0.002,0.148,0.023c0.083,0.172,0.263,0.246,0.432,0.338c0.112-0.035,0.222-0.071,0.34-0.093
+                       c0.211-0.035,0.371-0.031,0.527,0.096c0.112,0.091,0.229,0.184,0.408,0.167c0.079-0.007,0.196,0.033,0.222-0.063
+                       c0.017-0.066-0.094-0.07-0.147-0.102c-0.151-0.082-0.113-0.237-0.18-0.355c-0.044-0.073,0.02-0.138,0.079-0.195
+                       c0.073-0.069,0.064-0.129-0.022-0.184c-0.04-0.027-0.074-0.065-0.117-0.089c-0.294-0.173-0.366-0.263-0.441-0.548
+                       c-0.026-0.106-0.11-0.177-0.227-0.226c-0.338-0.14-0.622-0.324-0.739-0.642c-0.031-0.08-0.108-0.11-0.177-0.153
+                       c-0.097-0.059-0.196-0.124-0.284-0.195c-0.086-0.069-0.103-0.149-0.015-0.23c0.057-0.055,0.115-0.112,0.158-0.175
+                       c0.139-0.204,0.283-0.405,0.297-0.653c0.009-0.125,0.068-0.135,0.191-0.044c0.026,0.02,0.044,0.062,0.07,0.064
+                       c0.079,0.004,0.062-0.051,0.055-0.086c-0.026-0.127,0.036-0.206,0.184-0.22c0.206-0.018,0.375-0.161,0.602-0.118
+                       c0.034,0.006,0.096-0.033,0.122-0.064c0.083-0.091,0.196-0.183,0.224-0.289c0.041-0.135,0.081-0.218,0.265-0.2
+                       c0.125,0.011,0.184-0.067,0.241-0.142c0.085-0.108,0.204-0.147,0.355-0.153c0.183-0.006,0.227-0.078,0.181-0.222
+                       c-0.05-0.161-0.196-0.226-0.365-0.286c-0.167-0.061-0.191-0.114-0.092-0.234c0.092-0.108,0.096-0.173-0.028-0.255
+                       c-0.15-0.1-0.277-0.23-0.442-0.309c-0.175-0.084-0.325-0.151-0.33-0.35c-0.002-0.088-0.102-0.146-0.179-0.208
+                       c-0.101-0.082-0.199-0.166-0.292-0.253c-0.059-0.056-0.022-0.147,0.062-0.182c0.017-0.007,0.033-0.014,0.051-0.016
+                       c0.098-0.02,0.227-0.014,0.261-0.116c0.048-0.149,0.018-0.297-0.108-0.414c-0.116-0.109-0.256-0.198-0.379-0.303
+                       c-0.057-0.051,0-0.161,0.087-0.173c0.05-0.006,0.102-0.011,0.156-0.011c0.097,0.007,0.191,0.115,0.286,0.04
+                       c0.053-0.042,0.05-0.136,0.083-0.201c0.032-0.059,0.113-0.095,0.17-0.062c0.181,0.104,0.315,0.049,0.444-0.066
+                       c0.034-0.03,0.082-0.047,0.125-0.071c-0.217-0.185-0.217-0.185-0.215-0.447c0.002-0.251,0.004-0.259,0.313-0.279
+                       c0.11-0.006,0.196-0.023,0.289-0.075c0.238-0.126,0.48-0.17,0.71,0.027c0.129,0.112,0.294,0.067,0.448,0.051
+                       c0.066-0.004,0.105-0.113,0.044-0.139c-0.363-0.171-0.26-0.484-0.325-0.743c-0.021-0.08,0.029-0.142,0.094-0.195
+                       c0.115-0.093,0.077-0.206,0.007-0.281c-0.112-0.13-0.18-0.303-0.308-0.391c-0.208-0.144-0.289-0.253-0.186-0.477
+                       c0.039-0.083-0.088-0.211-0.121-0.322c-0.06-0.191-0.031-0.226,0.217-0.318c0.239-0.089,0.354-0.295,0.272-0.491
+                       c-0.029-0.069-0.066-0.135-0.093-0.204c-0.031-0.089,0.064-0.173,0.182-0.164c0.016,0.002,0.04-0.002,0.052,0.006
+                       c0.227,0.157,0.38-0.004,0.549-0.093c0.094-0.049,0.122-0.116,0.044-0.177c-0.11-0.091-0.127-0.206-0.172-0.315
+                       c-0.098-0.249-0.046-0.41,0.234-0.486c0.246-0.066,0.402-0.227,0.615-0.326c0.136-0.059,0.198-0.157,0.175-0.292
+                       c-0.013-0.071-0.008-0.147,0.007-0.218c0.028-0.147,0.125-0.2,0.299-0.149c0.134,0.038,0.259,0.082,0.404,0.059
+                       c0.094-0.013,0.186,0.018,0.21,0.098c0.041,0.126,0.149,0.179,0.268,0.251c0.132,0.078,0.215,0.198,0.423,0.149
+                       c0.108-0.027,0.187,0.071,0.194,0.169c0.017,0.236-0.017,0.471-0.096,0.695c-0.22,0.634-0.129,0.464,0.254,0.892
+                       c0.04,0.045,0.134,0.066,0.151,0.11c0.055,0.149,0.162,0.177,0.323,0.14c0.05-0.013,0.105-0.013,0.155-0.015
+                       c0.085-0.003,0.142,0.07,0.089,0.119c-0.127,0.114-0.201,0.234-0.149,0.397c0.013,0.033-0.014,0.091-0.048,0.118
+                       c-0.279,0.242-0.334,0.603-0.664,0.819c0.26,0.118,0.265,0.122,0.384-0.008c0.187-0.205,0.443-0.321,0.718-0.411
+                       c0.014-0.004,0.035,0.002,0.053,0.002c0.138-0.004,0.11-0.241,0.312-0.159c0.111,0.044,0.204,0.117,0.333,0.124
+                       c0.05,0.002,0.105,0.013,0.151,0.031c0.051,0.022,0.071,0.075,0.042,0.114c-0.045,0.062-0.112,0.113-0.165,0.17
+                       c-0.043,0.049-0.053,0.1-0.019,0.162c0.108,0.2,0.105,0.204-0.031,0.304c-0.141,0.109-0.285,0.216-0.378,0.362
+                       c-0.046,0.078-0.122,0.147-0.2,0.202c-0.092,0.067-0.225,0.098-0.298,0.173c-0.108,0.113-0.176,0.253-0.258,0.377
+                       c0.009,0.104,0.115,0.102,0.189,0.126c0.075,0.024,0.112,0.12,0.217,0.089c0.098-0.105-0.029-0.256,0.074-0.336
+                       c0.108-0.088,0.266-0.133,0.398-0.195c0.048-0.021,0.098-0.037,0.139-0.064c0.143-0.102,0.294-0.101,0.428-0.002
+                       c0.136,0.102,0.294,0.147,0.461,0.19c0.072,0.018,0.115,0.093,0.062,0.142c-0.236,0.218-0.349,0.503-0.604,0.713
+                       c-0.127,0.1-0.275,0.173-0.404,0.273c0.042,0.133,0.215,0.202,0.203,0.353c-0.007,0.122,0.139,0.155,0.23,0.222
+                       c0.108,0.078,0.119,0.151,0.022,0.222c-0.137,0.1-0.252,0.195-0.232,0.369c0.01,0.092-0.077,0.155-0.171,0.206
+                       c-0.203,0.11-0.396,0.239-0.606,0.344c-0.115,0.057-0.173,0.14-0.222,0.233l0.005,0.007c0.217-0.04,0.454-0.007,0.645-0.14
+                       c0.086-0.058,0.205-0.073,0.296-0.029c0.158,0.078,0.261,0.006,0.375-0.065c0.07-0.042,0.139-0.087,0.218-0.116
+                       c0.16-0.059,0.34,0.012,0.335,0.163c-0.002,0.14,0.018,0.175,0.186,0.137c0.083-0.019,0.155-0.048,0.229-0.088
+                       c0.118-0.065,0.193-0.031,0.228,0.075c0.002,0.009,0.002,0.018,0.005,0.027c0.334-0.269,0.679-0.537,1.018-0.803
+                       c-0.143-0.071-0.327-0.091-0.463-0.171c-0.156-0.091-0.239-0.234-0.432-0.322c-0.291-0.132-0.479-0.357-0.305-0.664
+                       c0.026-0.051,0.019-0.116,0.026-0.169c0.285-0.064,0.538-0.115,0.821,0.003c0.236,0.097,0.363-0.012,0.329-0.238
+                       c-0.019-0.112-0.072-0.209-0.224-0.202c-0.333,0.017-0.489-0.189-0.699-0.326c-0.115-0.076-0.112-0.175-0.032-0.273
+                       c0.071-0.085,0.137-0.172,0.212-0.253c0.136-0.147,0.246-0.175,0.456-0.107c0.094,0.031,0.173,0.086,0.263,0.122
+                       c0.11,0.04,0.204,0.008,0.246-0.078c0.028-0.055,0.013-0.122,0.034-0.181c0.093-0.259,0.282-0.339,0.558-0.225
+                       c0.182,0.073,0.348,0.17,0.529,0.241c0.156,0.057,0.302,0.014,0.402-0.095c0.098-0.109,0.105-0.234,0.015-0.345
+                       c-0.083-0.102-0.204-0.168-0.357-0.212c-0.536-0.153-0.92-0.442-1.126-0.878c-0.064-0.138,0.013-0.238,0.127-0.322
+                       c0.101-0.075,0.222-0.091,0.351-0.038c0.197,0.083,0.356,0.224,0.648,0.23c-0.284-0.255-0.432-0.549-0.798-0.732
+                       c-0.263-0.133-0.434-0.387-0.636-0.593c-0.044-0.042-0.046-0.114-0.057-0.173c-0.026-0.135,0.093-0.238,0.27-0.222
+                       c0.121,0.012,0.253,0.106,0.363,0.045c0.381-0.21,0.871-0.175,1.249-0.384c-0.096-0.257-0.342-0.441-0.5-0.67
+                       c-0.134-0.19-0.191-0.359,0.048-0.548c0.158-0.123,0.228-0.314,0.366-0.459c0.178-0.184,0.32-0.435,0.712-0.355
+                       c0.03,0.006,0.094-0.038,0.113-0.069c0.038-0.069-0.024-0.135-0.083-0.149c-0.386-0.071-0.689-0.279-0.937-0.479
+                       c-0.684-0.548-0.782-0.577,0.172-0.941c0.024-0.01,0.05-0.028,0.068-0.022c0.072,0.013,0.151,0.022,0.206,0.055
+                       c0.079,0.045,0.136,0.112,0.258,0.214c0.136-0.26,0.301-0.464,0.624-0.546c-0.371-0.275-0.624-0.57-0.76-0.93
+                       c-0.105-0.272-0.041-0.465,0.227-0.656c0.065-0.045,0.149-0.059,0.206-0.027c0.277,0.153,0.576,0.08,0.909,0.08
+                       c0.014-0.251,0.024-0.495,0.15-0.721c0.068-0.122,0.024-0.236-0.042-0.35c-0.075-0.129,0.021-0.187,0.162-0.213
+                       c0.163-0.033,0.204-0.135,0.153-0.235c-0.1-0.209-0.215-0.409-0.419-0.577c-0.237-0.195-0.189-0.256,0.191-0.307
+                       c0.074-0.009,0.153,0,0.191-0.07c-0.009-0.169-0.294-0.229-0.255-0.46c0.286-0.055,0.576-0.209,0.882,0.034
+                       c0.059,0.048,0.189,0.046,0.286,0.05c0.029,0,0.084-0.053,0.084-0.084c0.008-0.089-0.081-0.142-0.157-0.195
+                       c-0.276-0.191-0.29-0.399-0.12-0.654c0.127-0.193,0.196-0.413,0.287-0.613c0.16,0.014,0.285,0.027,0.411,0.033
+                       c0.05,0.002,0.101-0.004,0.151-0.013c0.217-0.042,0.325-0.207,0.237-0.375c-0.029-0.055-0.084-0.102-0.12-0.156
+                       c-0.123-0.173-0.009-0.31,0.101-0.452c0.105-0.135,0.239-0.21,0.443-0.155c0.11,0.029,0.198,0.032,0.244-0.073
+                       c0.009-0.018,0.018-0.038,0.026-0.057c0.04-0.138,0.174-0.193,0.325-0.229c0.292-0.068,0.58-0.141,0.889-0.129
+                       c0.061,0.003,0.123,0.065,0.175,0.105c0.108,0.086,0.229,0.164,0.265,0.292c0.04,0.147,0.148,0.125,0.286,0.083
+                       c0.364-0.116,0.452-0.093,0.639,0.1c0.115,0.117,0.18,0.251,0.201,0.39c0.055,0.35,0.011,0.719,0.387,0.994
+                       c0.057,0.042,0.053,0.154,0.048,0.232c-0.009,0.184-0.011,0.37-0.153,0.53c-0.084,0.093-0.077,0.2-0.005,0.289
+                       c0.187,0.233,0.136,0.418-0.132,0.583c-0.022,0.013-0.009,0.082,0.015,0.112c0.024,0.029,0.081,0.059,0.126,0.059
+                       c0.024,0,0.05-0.006,0.074-0.008c0.024-0.027,0.053-0.051,0.072-0.081c0.141-0.204,0.282-0.404,0.299-0.652
+                       c0.007-0.126,0.067-0.135,0.189-0.041c0.026,0.017,0.046,0.059,0.07,0.062c0.08,0.004,0.062-0.051,0.055-0.087
+                       c-0.024-0.126,0.038-0.206,0.184-0.219c0.207-0.018,0.378-0.162,0.602-0.118c0.035,0.006,0.096-0.033,0.125-0.064
+                       c0.083-0.091,0.193-0.185,0.224-0.289c0.038-0.136,0.079-0.218,0.265-0.2c0.125,0.013,0.182-0.067,0.241-0.142
+                       c0.081-0.109,0.201-0.147,0.354-0.153c0.184-0.006,0.228-0.078,0.182-0.222c-0.053-0.163-0.198-0.226-0.366-0.286
+                       c-0.167-0.061-0.193-0.114-0.092-0.234c0.09-0.108,0.097-0.173-0.026-0.255c-0.151-0.1-0.281-0.228-0.443-0.309
+                       c-0.174-0.084-0.327-0.151-0.332-0.348c0-0.09-0.101-0.149-0.18-0.21c-0.101-0.08-0.198-0.165-0.292-0.254
+                       c-0.057-0.055-0.021-0.147,0.065-0.181c0.016-0.007,0.031-0.012,0.047-0.016c0.101-0.02,0.23-0.014,0.263-0.116
+                       c0.048-0.149,0.017-0.297-0.106-0.412c-0.118-0.109-0.256-0.201-0.379-0.305c-0.059-0.051,0-0.161,0.086-0.173
+                       c0.05-0.006,0.103-0.011,0.153-0.008c0.098,0.004,0.193,0.113,0.287,0.037c0.055-0.042,0.05-0.135,0.083-0.2
+                       c0.031-0.059,0.115-0.096,0.173-0.062c0.181,0.102,0.313,0.049,0.442-0.067c0.033-0.029,0.081-0.047,0.127-0.071
+                       c-0.221-0.184-0.221-0.184-0.215-0.445c0.002-0.252,0.005-0.26,0.312-0.28c0.108-0.006,0.195-0.024,0.29-0.075
+                       c0.234-0.124,0.48-0.171,0.71,0.027c0.126,0.112,0.294,0.067,0.446,0.051c0.065-0.004,0.103-0.112,0.043-0.14
+                       c-0.362-0.17-0.258-0.483-0.325-0.742c-0.022-0.081,0.031-0.142,0.095-0.195c0.113-0.093,0.074-0.207,0.008-0.283
+                       c-0.116-0.129-0.18-0.302-0.311-0.39c-0.208-0.142-0.286-0.254-0.184-0.477c0.039-0.083-0.086-0.211-0.121-0.323
+                       c-0.058-0.19-0.028-0.225,0.217-0.317c0.239-0.089,0.356-0.295,0.275-0.491c-0.028-0.069-0.069-0.135-0.095-0.205
+                       c-0.032-0.088,0.067-0.172,0.181-0.164c0.02,0.002,0.041-0.002,0.053,0.006c0.23,0.157,0.38-0.004,0.55-0.092
+                       c0.093-0.049,0.121-0.116,0.042-0.177c-0.108-0.091-0.126-0.205-0.172-0.315c-0.098-0.246-0.042-0.411,0.235-0.486
+                       c0.246-0.066,0.404-0.228,0.617-0.326c0.134-0.062,0.196-0.157,0.174-0.293c-0.011-0.07-0.009-0.147,0.005-0.217
+                       c0.029-0.147,0.125-0.2,0.3-0.152c0.134,0.04,0.257,0.087,0.406,0.065c0.09-0.015,0.184,0.016,0.21,0.096
+                       c0.04,0.129,0.148,0.18,0.265,0.249c0.135,0.08,0.216,0.2,0.424,0.151c0.11-0.024,0.186,0.071,0.193,0.169
+                       c0.016,0.235-0.017,0.468-0.094,0.695c-0.22,0.634-0.129,0.464,0.251,0.892c0.041,0.045,0.137,0.066,0.153,0.113
+                       c0.055,0.149,0.16,0.175,0.323,0.138c0.048-0.014,0.103-0.014,0.156-0.016c0.081-0.002,0.138,0.071,0.089,0.12
+                       c-0.127,0.116-0.201,0.233-0.149,0.397c0.009,0.033-0.017,0.09-0.048,0.118c-0.279,0.242-0.337,0.603-0.667,0.819
+                       c0.263,0.118,0.268,0.121,0.385-0.01c0.188-0.204,0.443-0.319,0.721-0.41c0.014-0.004,0.033,0.002,0.049,0.002
+                       c0.14-0.004,0.11-0.242,0.316-0.159c0.11,0.044,0.201,0.117,0.332,0.124c0.05,0.001,0.103,0.013,0.149,0.031
+                       c0.055,0.024,0.072,0.075,0.044,0.115c-0.044,0.061-0.111,0.112-0.163,0.169c-0.019,0.022-0.032,0.045-0.036,0.069
+                       c0.009-0.012,0.02-0.02,0.031-0.029c0.368-0.34,0.574-0.377,1.112-0.2c0.077,0.023,0.146,0.078,0.224,0.091
+                       c0.12,0.017,0.213-0.045,0.27-0.132c0.061-0.088,0.067-0.173-0.04-0.249c-0.347-0.251-0.34-0.255-0.54-0.783
+                       c-0.024-0.063-0.096-0.112-0.156-0.16c-0.11-0.096-0.156-0.193-0.029-0.304c0.099-0.085,0.191-0.173,0.29-0.257
+                       c0.492-0.413,0.635-0.45,1.212-0.123c0.507,0.29,1.076,0.496,1.521,0.866c0.251,0.209,0.626,0.279,0.858,0.535
+                       c0.105,0.116,0.316,0.016,0.483-0.063c-0.283-0.306-0.687-0.503-0.964-0.811c-0.108-0.12-0.191-0.218-0.208-0.36
+                       c-0.017-0.12-0.052-0.208-0.2-0.281c-0.252-0.124-0.282-0.406-0.175-0.55c0.173-0.224-0.05-0.477,0.162-0.674
+                       c0.079-0.071,0.032-0.179-0.031-0.262c-0.296-0.386-0.433-0.819-0.502-1.267c-0.036-0.222-0.124-0.408-0.347-0.544
+                       c-0.091-0.053-0.172-0.122-0.253-0.186c-0.395-0.313-0.408-0.364-0.169-0.79c0.047-0.089,0.141-0.171,0.038-0.249
+                       c-0.258-0.193-0.412-0.44-0.577-0.686c-0.078-0.115-0.323-0.151-0.31-0.31c0.011-0.211,0.27-0.287,0.428-0.413
+                       c0.117-0.095,0.292-0.137,0.432-0.21c0.198-0.105,0.203-0.151,0.067-0.342c-0.172-0.244-0.17-0.242,0.061-0.438
+                       c0.06-0.048,0.095-0.119,0.162-0.157c0.61-0.348,0.571-0.477,1.227-0.067c0.11,0.071,0.229,0.134,0.336,0.193
+                       c0.202-0.078,0.048-0.151,0.024-0.222c-0.04-0.113-0.108-0.224-0.11-0.337c-0.002-0.091,0.064-0.191-0.033-0.262
+                       c-0.266-0.193-0.177-0.364,0.018-0.542c0.116-0.102,0.223-0.208,0.331-0.314c0.143-0.144,0.318-0.183,0.529-0.12
+                       c0.104,0.029,0.215,0.049,0.325,0.068c0.146,0.028,0.318,0.207,0.431,0.032c0.079-0.124-0.096-0.257-0.208-0.36
+                       c-0.149-0.137-0.33-0.242-0.268-0.479c0.22-0.825-0.172-1.532-0.672-2.2c-0.136-0.184-0.108-0.301,0.042-0.432
+                       c0.096-0.085,0.188-0.191,0.307-0.233c0.22-0.073,0.309-0.209,0.311-0.382c0.009-0.492,0.453-0.665,0.872-0.856
+                       c0.101-0.047,0.232-0.047,0.321,0.017c0.234,0.172,0.546,0.085,0.799,0.183c0.074-0.32-0.026-0.602-0.252-0.861
+                       c-0.071-0.084-0.076-0.173,0-0.259c0.098-0.112,0.182-0.24,0.307-0.328c0.123-0.091,0.275-0.162,0.43-0.202
+                       c0.151-0.041,0.237,0.103,0.364,0.15c0.102,0.038,0.215,0.13,0.301,0.114c0.577-0.116,0.708,0.222,0.708,0.552
+                       c-0.004,0.304,0.148,0.422,0.429,0.519c0.399,0.136,0.725,0.355,0.998,0.633c0.205,0.208,0.237,0.308,0.038,0.493
+                       c-0.215,0.201-0.308,0.439-0.437,0.671c-0.134,0.238-0.068,0.584-0.472,0.693c-0.009,0-0.009,0.045,0,0.065
+                       c0.013,0.018,0.046,0.045,0.062,0.04c0.079-0.016,0.166-0.029,0.232-0.067c0.354-0.189,0.706-0.383,1.055-0.582
+                       c0.205-0.115,0.394-0.133,0.622-0.015c0.193,0.1,0.366,0.214,0.523,0.348c0.364,0.312,0.388,0.381,0,0.683
+                       c-0.299,0.228-0.367,0.584-0.688,0.79c-0.032,0.02-0.017,0.089-0.024,0.136c-0.02,0.135,0.105,0.249,0.241,0.215
+                       c0.079-0.017,0.158-0.047,0.237-0.071c0.203-0.066,0.394-0.206,0.628-0.08c0.334,0.175,0.665,0.357,0.832,0.673
+                       c0.027,0.046-0.016,0.143-0.066,0.186c-0.156,0.135-0.323,0.259-0.498,0.379c-0.246,0.165-0.32,0.373-0.275,0.628
+                       c0.022,0.118,0.004,0.238,0.033,0.353c0.098,0.389,0.246,0.773,0.022,1.173c-0.053,0.092,0.002,0.23,0.019,0.348
+                       c0.023,0.193,0.141,0.288,0.378,0.313c0.712,0.074,0.909,0.164,1.396,0.638c-0.059,0.195-0.248,0.309-0.399,0.446
+                       c-0.165,0.149-0.287,0.291-0.103,0.493c0.055,0.062,0.017,0.138-0.04,0.19c-0.094,0.089-0.215,0.16-0.177,0.303
+                       c0.064,0.244-0.402,0.521-0.036,0.699c0.265,0.131,0.446-0.222,0.685-0.331c0.23-0.104,0.383-0.131,0.601,0.01
+                       c0.181,0.116,0.347,0.23,0.481,0.386c0.255,0.297,0.279,0.305-0.037,0.593c-0.16,0.147-0.234,0.303-0.292,0.491
+                       c-0.088,0.273-0.196,0.623-0.165,0.817c0.015,0.102-0.002,0.19-0.093,0.257c-0.175,0.132-0.101,0.262,0.007,0.375
+                       c0.235,0.254,0.316,0.48-0.004,0.739c-0.139,0.11-0.168,0.291-0.11,0.466c0.038,0.113,0.048,0.23,0.064,0.348
+                       c0.044,0.308-0.04,0.557-0.413,0.699c-0.096,0.037-0.167,0.12-0.234,0.171c-0.053,0.224,0.261,0.155,0.296,0.315
+                       c0.031,0.144,0.213,0.208,0.329,0.308c0.18,0.153,0.195,0.351-0.018,0.497c-0.349,0.242-0.311,0.577-0.371,0.886
+                       c-0.015,0.086,0.05,0.202-0.055,0.257c-0.287,0.155-0.414,0.362-0.421,0.65c-0.005,0.118-0.165,0.065-0.272,0.065
+                       c-0.311,0.002-0.371,0.031-0.39,0.251c-0.033,0.36-0.134,0.695-0.38,0.996c-0.046,0.055-0.038,0.142,0.044,0.191
+                       c0.081,0.049,0.16,0.02,0.215-0.038c0.2-0.212,0.444-0.361,0.771-0.389c0.156-0.011,0.262-0.072,0.338-0.182
+                       c0.094-0.133,0.237-0.192,0.408-0.222c0.223-0.041,0.381-0.153,0.557-0.279c0.357-0.255,0.775-0.446,1.172-0.654
+                       c0.033-0.018,0.139,0,0.151,0.022c0.097,0.204,0.334,0.272,0.525,0.394c0.462-0.186,0.939-0.376,1.416-0.567
+                       c-0.134-0.061-0.282-0.109-0.287-0.22c-0.009-0.211,0.271-0.173,0.443-0.22c0.125-0.036,0.145-0.096,0.074-0.202
+                       c-0.063-0.089-0.129-0.175-0.187-0.267c-0.059-0.093-0.144-0.157-0.263-0.204c-0.175-0.067-0.34-0.147-0.509-0.222
+                       c-0.075-0.033-0.158-0.065-0.22-0.112c-0.189-0.143-0.144-0.339,0.088-0.426c0.148-0.055,0.309-0.073,0.461-0.047
+                       c0.299,0.054,0.579,0.058,0.856-0.073c0.101-0.046,0.241-0.029,0.356-0.059c0.149-0.04,0.3-0.075,0.243-0.271
+                       c-0.03-0.1,0.105-0.149,0.213-0.093c0.059,0.032,0.112,0.071,0.167,0.107c0.067,0.041,0.132,0.122,0.224,0.086
+                       c0.098-0.037,0.141-0.126,0.149-0.22c0.007-0.104,0.011-0.215-0.067-0.3c-0.187-0.2-0.191-0.399-0.033-0.61
+                       c0.017-0.024,0.028-0.058,0.024-0.085c-0.005-0.024-0.024-0.057-0.048-0.071c-0.026-0.013-0.079-0.021-0.098-0.011
+                       c-0.112,0.067-0.215,0.14-0.308,0.204c-0.149-0.022-0.16-0.139-0.244-0.182c-0.21-0.109-0.296-0.235-0.167-0.435
+                       c0.038-0.057,0-0.116-0.061-0.155c-0.026-0.018-0.06-0.031-0.088-0.047c-0.387-0.188-0.768-0.386-1.162-0.568
+                       c-0.173-0.08-0.316-0.18-0.44-0.306c-0.035-0.033-0.055-0.08-0.017-0.12c0.03-0.031,0.078-0.062,0.122-0.068
+                       c0.175-0.025,0.347-0.014,0.509,0.057c0.108,0.049,0.213,0.096,0.342,0.151c0.127-0.155,0.287-0.257,0.509-0.28
+                       c0.081-0.008,0.103-0.092,0.046-0.135c-0.079-0.057-0.153-0.124-0.247-0.161c-0.124-0.054-0.189-0.127-0.183-0.242
+                       c0.005-0.113-0.074-0.186-0.153-0.269c-0.125-0.129-0.086-0.246,0.084-0.314c0.189-0.079,0.38-0.071,0.545,0.033
+                       c0.12,0.078,0.177,0.046,0.239-0.047c0.039-0.057,0.11-0.063,0.182-0.069c0.344-0.027,0.687-0.057,1.028-0.084
+                       c0.082-0.006,0.18,0.098,0.23,0.015c0.041-0.068,0.038-0.188-0.004-0.255c-0.108-0.166-0.153-0.357-0.307-0.506
+                       c-0.055-0.053,0.008-0.167,0.089-0.175c0.242-0.027,0.483-0.04,0.724-0.061c0.294,0.149,0.474-0.057,0.742-0.137
+                       c-0.144-0.138-0.25-0.249-0.366-0.354c-0.163-0.147-0.34-0.239-0.596-0.157c-0.209,0.069-0.367,0.011-0.457-0.177
+                       c-0.088-0.186-0.27-0.31-0.461-0.413c-0.382-0.206-0.679-0.497-1.037-0.73c-0.034-0.022-0.061-0.073-0.058-0.11
+                       c0.002-0.073,0.084-0.085,0.151-0.101c0.129-0.029,0.327,0.054,0.38-0.068c0.074-0.169-0.191-0.173-0.275-0.275
+                       c-0.017-0.022-0.055-0.034-0.086-0.047c-0.156-0.069-0.381-0.147-0.349-0.289c0.044-0.19,0.32-0.161,0.488-0.149
+                       c0.286,0.024,0.536,0.012,0.779-0.133c0.079-0.045,0.204-0.034,0.294-0.047c0.083-0.109-0.06-0.126-0.077-0.191
+                       c-0.009-0.027-0.026-0.057-0.019-0.084c0.026-0.122,0.292-0.371,0.417-0.358c0.312,0.036,0.566-0.12,0.851-0.17
+                       c0.211-0.038,0.373-0.034,0.525,0.092c0.116,0.093,0.23,0.187,0.41,0.169c0.081-0.008,0.196,0.033,0.222-0.062
+                       c0.017-0.069-0.091-0.071-0.147-0.103c-0.151-0.081-0.11-0.239-0.18-0.355c-0.044-0.073,0.019-0.139,0.081-0.195
+                       c0.071-0.069,0.062-0.129-0.022-0.186c-0.044-0.027-0.075-0.063-0.118-0.087c-0.293-0.172-0.365-0.263-0.44-0.548
+                       c-0.029-0.106-0.112-0.177-0.229-0.226c-0.336-0.14-0.622-0.324-0.739-0.643c-0.029-0.081-0.105-0.109-0.177-0.152
+                       c-0.097-0.062-0.194-0.126-0.284-0.198c-0.086-0.066-0.103-0.147-0.015-0.23c0.06-0.053,0.118-0.11,0.16-0.173
+                       c0.139-0.204,0.283-0.404,0.296-0.652c0.008-0.129,0.068-0.136,0.189-0.045c0.026,0.02,0.046,0.059,0.07,0.062
+                       c0.081,0.007,0.062-0.048,0.055-0.086c-0.024-0.126,0.038-0.206,0.184-0.217c0.208-0.018,0.377-0.165,0.602-0.118
+                       c0.037,0.006,0.096-0.034,0.125-0.065c0.084-0.093,0.193-0.184,0.224-0.291c0.039-0.135,0.079-0.217,0.266-0.198
+                       c0.125,0.012,0.184-0.066,0.241-0.142c0.081-0.11,0.201-0.146,0.355-0.153c0.184-0.006,0.227-0.08,0.181-0.223
+                       c-0.051-0.163-0.198-0.225-0.365-0.285c-0.168-0.061-0.193-0.113-0.094-0.234c0.092-0.108,0.099-0.172-0.026-0.255
+                       c-0.151-0.102-0.279-0.23-0.442-0.31c-0.175-0.083-0.328-0.151-0.333-0.348c0-0.089-0.101-0.149-0.176-0.209
+                       c-0.103-0.082-0.201-0.166-0.294-0.253c-0.058-0.055-0.022-0.147,0.064-0.182c0.015-0.006,0.031-0.014,0.048-0.018
+                       c0.101-0.019,0.23-0.011,0.263-0.113c0.048-0.15,0.016-0.3-0.108-0.415c-0.118-0.108-0.256-0.198-0.377-0.304
+                       c-0.06-0.05,0-0.16,0.083-0.171c0.052-0.01,0.105-0.014,0.156-0.012c0.097,0.004,0.193,0.114,0.286,0.04
+                       c0.055-0.045,0.05-0.135,0.083-0.2c0.032-0.063,0.115-0.096,0.173-0.065c0.182,0.105,0.313,0.051,0.444-0.064
+                       c0.032-0.029,0.079-0.047,0.125-0.071c-0.22-0.187-0.22-0.187-0.217-0.446c0.004-0.253,0.007-0.26,0.316-0.279
+                       c0.108-0.007,0.193-0.024,0.289-0.075c0.234-0.127,0.48-0.174,0.71,0.027c0.127,0.11,0.294,0.064,0.447,0.051
+                       c0.067-0.007,0.103-0.114,0.046-0.142c-0.364-0.169-0.261-0.481-0.328-0.741c-0.022-0.082,0.032-0.144,0.096-0.195
+                       c0.112-0.092,0.074-0.208,0.007-0.284c-0.114-0.126-0.18-0.302-0.31-0.391c-0.208-0.142-0.287-0.253-0.185-0.475
+                       c0.039-0.082-0.086-0.213-0.121-0.324c-0.057-0.191-0.029-0.226,0.217-0.318c0.239-0.086,0.356-0.294,0.275-0.488
+                       c-0.029-0.069-0.069-0.136-0.093-0.207c-0.033-0.086,0.064-0.171,0.18-0.161c0.018,0,0.04-0.002,0.053,0.004
+                       c0.229,0.159,0.38-0.002,0.549-0.093c0.094-0.047,0.125-0.113,0.043-0.177c-0.108-0.089-0.127-0.204-0.173-0.315
+                       c-0.098-0.246-0.046-0.408,0.235-0.485c0.246-0.067,0.404-0.226,0.617-0.324c0.136-0.063,0.196-0.158,0.175-0.293
+                       c-0.013-0.071-0.007-0.147,0.005-0.218c0.029-0.149,0.126-0.2,0.301-0.151c0.132,0.038,0.256,0.085,0.404,0.062
+                       c0.092-0.013,0.187,0.018,0.211,0.097c0.041,0.129,0.149,0.182,0.265,0.251c0.134,0.078,0.215,0.196,0.424,0.151
+                       c0.11-0.028,0.187,0.071,0.193,0.168c0.017,0.236-0.017,0.468-0.093,0.696c-0.221,0.634-0.129,0.463,0.251,0.889
+                       c0.04,0.047,0.136,0.067,0.153,0.114c0.055,0.148,0.163,0.175,0.323,0.137c0.048-0.011,0.103-0.013,0.156-0.013
+                       c0.081-0.003,0.139,0.07,0.088,0.118c-0.127,0.115-0.202,0.235-0.149,0.397c0.01,0.035-0.016,0.09-0.047,0.119
+                       c-0.28,0.242-0.338,0.602-0.668,0.819c0.263,0.118,0.268,0.12,0.388-0.009c0.184-0.204,0.439-0.322,0.717-0.413
+                       c0.014-0.004,0.033,0.004,0.05,0.004c0.141-0.004,0.11-0.244,0.315-0.159c0.108,0.042,0.201,0.118,0.331,0.124
+                       c0.053,0.002,0.105,0.014,0.15,0.031c0.055,0.022,0.072,0.075,0.044,0.114c-0.046,0.063-0.11,0.11-0.163,0.169
+                       c-0.044,0.051-0.055,0.1-0.022,0.161c0.108,0.202,0.105,0.205-0.028,0.307c-0.143,0.108-0.285,0.212-0.378,0.361
+                       c-0.048,0.078-0.122,0.144-0.2,0.202c-0.094,0.065-0.225,0.098-0.3,0.173c-0.105,0.114-0.174,0.251-0.257,0.377
+                       c0.009,0.105,0.116,0.1,0.189,0.124c0.077,0.024,0.112,0.12,0.22,0.089c0.098-0.102-0.029-0.253,0.072-0.336
+                       c0.11-0.086,0.266-0.131,0.402-0.194c0.044-0.02,0.097-0.036,0.136-0.065c0.143-0.1,0.294-0.098,0.428,0
+                       c0.136,0.1,0.296,0.147,0.463,0.189c0.069,0.02,0.114,0.095,0.06,0.143c-0.234,0.216-0.349,0.505-0.604,0.711
+                       c-0.125,0.102-0.276,0.175-0.402,0.275c0.042,0.133,0.213,0.2,0.203,0.351c-0.009,0.124,0.136,0.157,0.228,0.222
+                       c0.108,0.08,0.122,0.153,0.024,0.224c-0.137,0.1-0.254,0.195-0.234,0.366c0.011,0.096-0.074,0.155-0.167,0.206
+                       c-0.206,0.114-0.4,0.24-0.608,0.344c-0.117,0.057-0.175,0.142-0.225,0.235l0.008,0.007c0.217-0.04,0.454-0.01,0.645-0.14
+                       c0.084-0.057,0.203-0.073,0.297-0.029c0.158,0.075,0.261,0.006,0.373-0.067c0.069-0.041,0.141-0.084,0.22-0.115
+                       c0.16-0.061,0.338,0.013,0.335,0.161c-0.002,0.142,0.018,0.178,0.184,0.14c0.086-0.02,0.155-0.049,0.229-0.089
+                       c0.118-0.064,0.196-0.033,0.228,0.075c0.021,0.069,0.029,0.142,0.045,0.213c0.026,0.095,0.175,0.184,0.065,0.279
+                       c-0.115,0.098-0.208,0.244-0.412,0.239c-0.091-0.002-0.176,0.007-0.244,0.061c-0.124,0.1-0.224,0.226-0.367,0.302
+                       c-0.142,0.073-0.338,0.067-0.443,0.205l0.003,0.002c0.108-0.016,0.206-0.007,0.292,0.057c0.079,0.057,0.16,0.11,0.251,0.175
+                       c0.088-0.088,0.158-0.171,0.241-0.24c0.123-0.102,0.281-0.064,0.314,0.081c0.017,0.068,0.002,0.143,0.002,0.23
+                       c0.158,0.039,0.294-0.038,0.437-0.071c0.089-0.018,0.168-0.033,0.256-0.011c0.093,0.027,0.153,0.1,0.115,0.168
+                       c-0.095,0.173-0.196,0.342-0.291,0.515c-0.078,0.137-0.219,0.169-0.383,0.193c-0.318,0.047-0.542,0.239-0.784,0.397
+                       c-0.043,0.027-0.05,0.087-0.007,0.115c0.033,0.022,0.099,0.038,0.138,0.024c0.079-0.029,0.143-0.08,0.218-0.118
+                       c0.048-0.023,0.117-0.037,0.134,0.012c0.055,0.177,0.22,0.204,0.395,0.237c0.102,0.018,0.115,0.093,0.035,0.17
+                       c-0.07,0.066-0.147,0.125-0.215,0.192c-0.086,0.085-0.07,0.177,0.059,0.202c0.187,0.036,0.278,0.103,0.248,0.271
+                       c-0.009,0.051,0.061,0.087,0.103,0.059c0.259-0.159,0.39-0.033,0.543,0.136c0.116,0.129,0.032,0.187-0.018,0.3
+                       c-0.125,0.295-0.377,0.424-0.696,0.519c-0.143,0.042-0.268,0.129-0.4,0.2c-0.017,0.008-0.024,0.055-0.011,0.073
+                       c0.014,0.02,0.051,0.035,0.083,0.04c0.129,0.022,0.239-0.005,0.332-0.089c0.125-0.11,0.261-0.139,0.417-0.042
+                       c0.112,0.071,0.229,0.052,0.343-0.002c0.046-0.021,0.092-0.047,0.142-0.062c0.184-0.056,0.301,0.004,0.31,0.179
+                       c0.006,0.093-0.042,0.165,0.144,0.147c0.208-0.018,0.294,0.078,0.232,0.238c-0.127,0.33-0.336,0.605-0.794,0.685
+                       c0.05,0.08,0.101,0.156,0.145,0.234c0.05,0.08,0.124,0.098,0.217,0.057c0.063-0.024,0.118-0.063,0.182-0.085
+                       c0.12-0.039,0.22,0.018,0.202,0.122c-0.006,0.024-0.008,0.049-0.013,0.076c0.05,0.004,0.098,0.011,0.145,0.015
+                       c0.139,0.014,0.278,0.037,0.417,0.051c0.07,0.01,0.145,0.002,0.189-0.053c0.134-0.175,0.312-0.259,0.572-0.235
+                       c0.102,0.011,0.194-0.063,0.215-0.163c0.018-0.075,0.016-0.169-0.083-0.185c-0.364-0.055-0.489-0.304-0.618-0.534
+                       c-0.071-0.131-0.119-0.24-0.308-0.257c-0.046-0.004-0.088-0.047-0.125-0.075c-0.06-0.054-0.129-0.109-0.101-0.191
+                       c0.03-0.089,0.122-0.098,0.211-0.096c0.244,0.002,0.488,0,0.708,0.118c0.042,0.024,0.11,0.022,0.136-0.022
+                       c0.02-0.033,0.02-0.087,0.005-0.124c-0.022-0.053-0.053-0.118-0.103-0.149c-0.305-0.186-0.583-0.404-1.021-0.351
+                       c-0.417,0.049-0.687-0.116-0.847-0.448c-0.055-0.116-0.003-0.213,0.137-0.234c0.241-0.035,0.488-0.042,0.714-0.124
+                       c0.07-0.022,0.134,0.003,0.199,0.03c0.184,0.075,0.37,0.146,0.564,0.224c0.042-0.144-0.105-0.191-0.141-0.283
+                       c-0.046-0.11-0.098-0.219-0.173-0.32c-0.064-0.086-0.16-0.153-0.244-0.228c-0.248-0.226-0.529-0.42-0.839-0.583
+                       c-0.072-0.04-0.16-0.053-0.214-0.12c-0.047-0.063-0.09-0.132-0.042-0.204c0.048-0.071,0.139-0.087,0.228-0.076
+                       c0.069,0.01,0.141,0.023,0.198,0.054c0.158,0.082,0.334,0.069,0.507,0.069c0.158,0,0.313-0.022,0.47-0.018
+                       c0.287,0.006,0.526-0.096,0.675-0.28c0.138-0.17,0.27-0.206,0.477-0.125c0.061,0.021,0.132,0.019,0.199,0.023
+                       c0.007,0.003,0.024-0.02,0.026-0.031c0.002-0.013,0.002-0.035-0.007-0.039c-0.074-0.04-0.143-0.1-0.222-0.109
+                       c-0.403-0.051-0.741-0.251-1.129-0.33c-0.051-0.008-0.11-0.018-0.145-0.045c-0.142-0.102-0.414-0.14-0.419-0.291
+                       c-0.009-0.21,0.272-0.173,0.443-0.22c0.124-0.033,0.148-0.095,0.073-0.202c-0.062-0.088-0.128-0.175-0.187-0.263
+                       c-0.06-0.096-0.143-0.16-0.263-0.207c-0.172-0.064-0.339-0.144-0.506-0.222c-0.077-0.033-0.16-0.064-0.223-0.11
+                       c-0.189-0.144-0.143-0.34,0.089-0.426c0.148-0.053,0.31-0.071,0.461-0.045c0.299,0.051,0.579,0.055,0.856-0.075
+                       c0.103-0.047,0.244-0.027,0.358-0.057c0.146-0.04,0.296-0.076,0.239-0.271c-0.029-0.102,0.105-0.151,0.213-0.096
+                       c0.061,0.034,0.112,0.071,0.168,0.107c0.069,0.044,0.133,0.121,0.224,0.086c0.097-0.038,0.141-0.126,0.147-0.22
+                       c0.008-0.104,0.013-0.216-0.066-0.297c-0.186-0.202-0.191-0.401-0.033-0.613c0.019-0.024,0.028-0.055,0.023-0.082
+                       c-0.004-0.027-0.023-0.058-0.048-0.073c-0.026-0.014-0.076-0.022-0.098-0.012c-0.11,0.068-0.215,0.142-0.309,0.204
+                       c-0.148-0.019-0.159-0.136-0.242-0.181c-0.212-0.107-0.299-0.236-0.169-0.435c0.039-0.058,0-0.114-0.059-0.155
+                       c-0.026-0.018-0.06-0.031-0.089-0.045c-0.387-0.191-0.767-0.389-1.162-0.568c-0.172-0.08-0.316-0.182-0.439-0.306
+                       c-0.037-0.035-0.056-0.083-0.017-0.12c0.029-0.031,0.077-0.065,0.122-0.071c0.174-0.024,0.347-0.014,0.509,0.059
+                       c0.108,0.047,0.213,0.093,0.342,0.151c0.126-0.155,0.286-0.259,0.509-0.281c0.081-0.008,0.102-0.092,0.045-0.133
+                       c-0.079-0.061-0.152-0.126-0.246-0.165c-0.125-0.051-0.189-0.126-0.184-0.239c0.006-0.116-0.072-0.187-0.153-0.272
+                       c-0.124-0.125-0.083-0.243,0.085-0.314c0.189-0.078,0.38-0.071,0.545,0.035c0.119,0.075,0.176,0.045,0.239-0.048
+                       c0.038-0.058,0.11-0.063,0.182-0.067c0.343-0.027,0.686-0.058,1.028-0.087c0.081-0.006,0.18,0.1,0.229,0.016
+                       c0.041-0.069,0.039-0.186-0.005-0.255c-0.108-0.167-0.152-0.358-0.305-0.507c-0.055-0.053,0.007-0.167,0.088-0.175
+                       c0.241-0.024,0.484-0.039,0.724-0.059c0.295,0.149,0.476-0.057,0.741-0.138c-0.143-0.137-0.248-0.249-0.365-0.353
+                       c-0.163-0.144-0.34-0.239-0.596-0.157c-0.21,0.068-0.369,0.011-0.457-0.177c-0.088-0.187-0.27-0.311-0.461-0.413
+                       c-0.382-0.207-0.68-0.497-1.038-0.728c-0.033-0.022-0.06-0.075-0.057-0.114c0.005-0.071,0.083-0.082,0.151-0.1
+                       c0.128-0.029,0.327,0.053,0.382-0.069c0.074-0.169-0.193-0.171-0.278-0.275c-0.016-0.022-0.054-0.033-0.086-0.046
+                       c-0.153-0.069-0.38-0.144-0.349-0.289c0.046-0.191,0.32-0.16,0.489-0.147c0.286,0.024,0.538,0.008,0.78-0.134
+                       c0.079-0.046,0.203-0.035,0.293-0.048c0.085-0.107-0.059-0.127-0.075-0.189c-0.007-0.029-0.026-0.059-0.02-0.087
+                       c0.026-0.121,0.292-0.37,0.417-0.357c0.312,0.036,0.567-0.12,0.85-0.171c0.214-0.035,0.373-0.031,0.526,0.096
+                       c0.114,0.091,0.229,0.184,0.408,0.167c0.081-0.01,0.199,0.033,0.223-0.063c0.016-0.067-0.092-0.07-0.149-0.102
+                       c-0.15-0.082-0.11-0.237-0.176-0.355c-0.046-0.073,0.018-0.138,0.078-0.195c0.074-0.069,0.063-0.128-0.021-0.184
+                       c-0.041-0.027-0.074-0.065-0.118-0.089c-0.294-0.173-0.366-0.264-0.439-0.548c-0.029-0.106-0.11-0.177-0.23-0.226
+                       c-0.334-0.14-0.621-0.324-0.738-0.644c-0.03-0.078-0.105-0.108-0.175-0.151c-0.1-0.059-0.196-0.126-0.285-0.195
+                       c-0.086-0.069-0.104-0.149-0.016-0.23c0.057-0.056,0.117-0.112,0.16-0.175c0.138-0.205,0.281-0.405,0.296-0.653
+                       c0.007-0.126,0.066-0.135,0.191-0.045c0.024,0.021,0.043,0.061,0.07,0.063c0.079,0.006,0.062-0.049,0.053-0.084
+                       c-0.025-0.127,0.038-0.206,0.183-0.22c0.208-0.018,0.378-0.163,0.603-0.118c0.037,0.006,0.096-0.033,0.124-0.065
+                       c0.085-0.09,0.195-0.182,0.225-0.288c0.039-0.138,0.079-0.218,0.265-0.2c0.124,0.013,0.184-0.067,0.242-0.142
+                       c0.081-0.11,0.2-0.147,0.354-0.153c0.183-0.006,0.225-0.078,0.181-0.222c-0.053-0.163-0.198-0.226-0.366-0.286
+                       c-0.167-0.061-0.193-0.114-0.093-0.234c0.09-0.109,0.098-0.173-0.026-0.255c-0.151-0.1-0.279-0.23-0.442-0.309
+                       c-0.175-0.084-0.328-0.151-0.333-0.348c0-0.09-0.101-0.149-0.176-0.21c-0.103-0.082-0.199-0.167-0.293-0.253
+                       c-0.059-0.056-0.024-0.147,0.063-0.183c0.016-0.006,0.031-0.013,0.047-0.015c0.101-0.02,0.23-0.014,0.264-0.116
+                       c0.047-0.149,0.016-0.297-0.109-0.415c-0.117-0.108-0.255-0.196-0.378-0.302c-0.057-0.051,0-0.161,0.086-0.173
+                       c0.051-0.006,0.103-0.011,0.153-0.008c0.101,0.004,0.193,0.11,0.287,0.037c0.055-0.041,0.051-0.135,0.084-0.2
+                       c0.031-0.062,0.115-0.095,0.172-0.062c0.182,0.102,0.313,0.049,0.445-0.067c0.033-0.029,0.081-0.047,0.125-0.07
+                       c-0.221-0.185-0.221-0.185-0.215-0.447c0.002-0.253,0.004-0.259,0.312-0.279c0.108-0.006,0.194-0.024,0.289-0.075
+                       c0.237-0.124,0.48-0.171,0.71,0.027c0.13,0.112,0.294,0.067,0.447,0.051c0.068-0.004,0.103-0.113,0.046-0.139
+                       c-0.363-0.171-0.261-0.484-0.328-0.743c-0.021-0.082,0.031-0.142,0.095-0.195c0.116-0.093,0.075-0.207,0.008-0.284
+                       c-0.116-0.127-0.18-0.301-0.311-0.392c-0.206-0.141-0.287-0.251-0.184-0.474c0.039-0.083-0.086-0.211-0.119-0.322
+                       c-0.06-0.191-0.032-0.226,0.215-0.318c0.239-0.089,0.356-0.295,0.275-0.491c-0.029-0.069-0.07-0.135-0.094-0.204
+                       c-0.033-0.089,0.065-0.173,0.182-0.165c0.017,0,0.039-0.002,0.05,0.004c0.23,0.16,0.381-0.002,0.553-0.09
+                       c0.09-0.049,0.121-0.116,0.042-0.179c-0.11-0.089-0.128-0.204-0.172-0.313c-0.101-0.249-0.046-0.411,0.232-0.486
+                       c0.246-0.066,0.404-0.228,0.617-0.326c0.136-0.062,0.196-0.157,0.174-0.293c-0.011-0.071-0.009-0.147,0.004-0.217
+                       c0.03-0.147,0.127-0.2,0.299-0.151c0.135,0.037,0.259,0.084,0.407,0.062c0.09-0.014,0.187,0.018,0.209,0.098
+                       c0.041,0.126,0.149,0.179,0.267,0.249c0.134,0.08,0.215,0.2,0.425,0.151c0.109-0.027,0.184,0.071,0.191,0.169
+                       c0.019,0.235-0.014,0.468-0.093,0.695c-0.22,0.634-0.129,0.464,0.252,0.892c0.04,0.045,0.136,0.064,0.152,0.11
+                       c0.055,0.149,0.163,0.177,0.323,0.138c0.048-0.012,0.103-0.014,0.156-0.014c0.081-0.002,0.141,0.071,0.088,0.12
+                       c-0.126,0.114-0.2,0.234-0.147,0.397c0.011,0.033-0.017,0.091-0.048,0.118c-0.281,0.241-0.336,0.603-0.665,0.819
+                       c0.261,0.118,0.267,0.12,0.384-0.01c0.188-0.204,0.443-0.32,0.719-0.41c0.014-0.004,0.033,0.002,0.051,0.002
+                       c0.14-0.004,0.109-0.242,0.313-0.16c0.11,0.045,0.204,0.118,0.333,0.125c0.051,0.002,0.102,0.013,0.148,0.031
+                       c0.055,0.022,0.072,0.075,0.043,0.113c-0.043,0.063-0.11,0.114-0.162,0.171c-0.044,0.049-0.056,0.1-0.022,0.162
+                       c0.108,0.2,0.105,0.202-0.028,0.304c-0.144,0.108-0.285,0.213-0.378,0.362c-0.048,0.078-0.122,0.147-0.201,0.202
+                       c-0.093,0.067-0.224,0.098-0.296,0.172c-0.108,0.114-0.177,0.254-0.261,0.378c0.01,0.104,0.118,0.102,0.192,0.126
+                       c0.073,0.024,0.11,0.12,0.218,0.089c0.097-0.105-0.029-0.256,0.071-0.336c0.11-0.088,0.265-0.133,0.401-0.195
+                       c0.046-0.021,0.098-0.037,0.136-0.064c0.146-0.103,0.297-0.101,0.428-0.002c0.139,0.102,0.297,0.147,0.465,0.19
+                       c0.07,0.018,0.114,0.093,0.06,0.142c-0.235,0.217-0.349,0.503-0.605,0.711c-0.126,0.102-0.275,0.175-0.402,0.275
+                       c0.044,0.133,0.213,0.199,0.204,0.353c-0.009,0.122,0.139,0.155,0.228,0.222c0.108,0.078,0.121,0.151,0.023,0.222
+                       c-0.136,0.1-0.253,0.194-0.231,0.367c0.009,0.093-0.077,0.156-0.171,0.207c-0.205,0.11-0.398,0.239-0.606,0.344
+                       c-0.118,0.057-0.175,0.139-0.223,0.233l0.006,0.01c0.218-0.042,0.453-0.01,0.645-0.143c0.083-0.057,0.203-0.073,0.295-0.029
+                       c0.158,0.079,0.262,0.007,0.373-0.064c0.072-0.045,0.142-0.087,0.221-0.116c0.16-0.059,0.336,0.012,0.334,0.163
+                       c-0.002,0.139,0.02,0.175,0.184,0.137c0.086-0.02,0.156-0.049,0.229-0.088c0.118-0.063,0.197-0.034,0.228,0.075
+                       c0.022,0.07,0.029,0.143,0.048,0.215c0.024,0.093,0.174,0.183,0.062,0.278c-0.115,0.098-0.208,0.244-0.411,0.239
+                       c-0.09-0.002-0.177,0.01-0.244,0.061c-0.125,0.099-0.224,0.228-0.366,0.302c-0.143,0.073-0.34,0.067-0.444,0.204l0.002,0.002
+                       c0.108-0.016,0.205-0.006,0.294,0.059c0.075,0.056,0.158,0.112,0.248,0.173c0.089-0.088,0.158-0.171,0.241-0.239
+                       c0.125-0.102,0.279-0.063,0.312,0.08c0.017,0.069,0.004,0.144,0.004,0.232c0.157,0.039,0.296-0.038,0.439-0.072
+                       c0.086-0.017,0.163-0.033,0.253-0.009c0.094,0.024,0.153,0.098,0.115,0.167c-0.096,0.173-0.197,0.343-0.292,0.515
+                       c-0.077,0.139-0.217,0.17-0.382,0.194c-0.316,0.047-0.54,0.238-0.785,0.395c-0.04,0.028-0.05,0.087-0.007,0.116
+                       c0.033,0.024,0.103,0.037,0.14,0.024c0.078-0.029,0.143-0.08,0.216-0.118c0.048-0.023,0.12-0.037,0.134,0.014
+                       c0.055,0.175,0.221,0.202,0.395,0.235c0.103,0.02,0.115,0.096,0.036,0.171c-0.069,0.065-0.148,0.124-0.214,0.191
+                       c-0.086,0.086-0.07,0.177,0.059,0.202c0.186,0.035,0.277,0.102,0.248,0.271c-0.009,0.051,0.059,0.086,0.103,0.059
+                       c0.259-0.159,0.389-0.033,0.543,0.138c0.114,0.126,0.032,0.184-0.018,0.297c-0.125,0.295-0.375,0.424-0.696,0.518
+                       c-0.142,0.045-0.268,0.13-0.401,0.201c-0.016,0.008-0.023,0.055-0.011,0.075c0.015,0.019,0.053,0.033,0.083,0.04
+                       c0.129,0.019,0.239-0.007,0.333-0.091c0.123-0.112,0.26-0.14,0.415-0.04c0.115,0.071,0.23,0.051,0.344-0.004
+                       c0.046-0.022,0.092-0.047,0.141-0.061c0.188-0.055,0.302,0.003,0.311,0.181c0.005,0.091-0.042,0.161,0.143,0.144
+                       c0.212-0.018,0.296,0.078,0.234,0.237c-0.129,0.33-0.335,0.605-0.796,0.688c0.05,0.078,0.101,0.155,0.145,0.23
+                       c0.051,0.08,0.125,0.098,0.219,0.059c0.062-0.027,0.117-0.064,0.182-0.086c0.122-0.039,0.22,0.018,0.2,0.122
+                       c-0.028,0.171-0.036,0.33-0.244,0.459c-0.22,0.136-0.388,0.338-0.56,0.519c-0.121,0.129-0.189,0.256-0.05,0.44
+                       c0.127,0.171,0.096,0.391-0.053,0.572c-0.052,0.065-0.103,0.126-0.031,0.198c0.063,0.062,0.151,0.061,0.241,0.047
+                       c0.172-0.022,0.344-0.042,0.517-0.059c0.088-0.007,0.193,0,0.237,0.068c0.116,0.181,0.269,0.136,0.439,0.073
+                       c0.184-0.067,0.378-0.051,0.567-0.024c0.158,0.02,0.222,0.142,0.143,0.269c-0.031,0.053-0.079,0.098-0.11,0.149
+                       c-0.059,0.102-0.277,0.015-0.277,0.155c0,0.08,0.077,0.158,0.105,0.242c0.02,0.057-0.008,0.115-0.072,0.153
+                       c-0.044,0.024-0.096,0.037-0.134,0.067c-0.103,0.071-0.081,0.144,0.055,0.187c0.087,0.027,0.172,0.055,0.261,0.082
+                       c0.036-0.118,0.084-0.189,0.255-0.171c0.122,0.011,0.184-0.067,0.241-0.142c0.081-0.11,0.201-0.147,0.355-0.153
+                       c0.183-0.006,0.227-0.078,0.181-0.222c-0.052-0.165-0.198-0.226-0.367-0.287c-0.166-0.059-0.191-0.113-0.09-0.233
+                       c0.09-0.108,0.097-0.173-0.027-0.255c-0.15-0.1-0.279-0.232-0.442-0.309c-0.175-0.084-0.327-0.153-0.333-0.351
+                       c-0.002-0.088-0.101-0.149-0.179-0.208c-0.1-0.083-0.199-0.167-0.292-0.253c-0.057-0.055-0.022-0.147,0.064-0.183
+                       c0.015-0.006,0.031-0.013,0.048-0.018c0.101-0.017,0.229-0.011,0.262-0.113c0.048-0.149,0.017-0.3-0.106-0.415
+                       c-0.118-0.108-0.256-0.2-0.378-0.304c-0.059-0.049,0-0.159,0.084-0.173c0.052-0.006,0.103-0.011,0.156-0.009
+                       c0.098,0.004,0.194,0.113,0.287,0.04c0.054-0.045,0.049-0.136,0.082-0.201c0.032-0.062,0.112-0.095,0.171-0.064
+                       c0.184,0.104,0.316,0.051,0.444-0.065c0.033-0.029,0.081-0.047,0.125-0.071c-0.217-0.184-0.217-0.184-0.215-0.446
+                       c0.005-0.253,0.007-0.259,0.316-0.279c0.108-0.006,0.193-0.024,0.288-0.075c0.235-0.126,0.482-0.171,0.711,0.027
+                       c0.129,0.11,0.292,0.065,0.447,0.051c0.064-0.006,0.102-0.113,0.045-0.139c-0.363-0.171-0.26-0.484-0.326-0.743
+                       c-0.023-0.083,0.031-0.142,0.095-0.195c0.112-0.093,0.074-0.209,0.007-0.285c-0.114-0.125-0.178-0.302-0.31-0.39
+                       c-0.208-0.142-0.287-0.254-0.185-0.476c0.039-0.082-0.086-0.212-0.122-0.324c-0.057-0.19-0.028-0.226,0.218-0.317
+                       c0.239-0.087,0.357-0.295,0.275-0.489c-0.028-0.069-0.069-0.136-0.095-0.206c-0.031-0.087,0.067-0.171,0.182-0.165
+                       c0.02,0.002,0.04,0,0.053,0.007c0.229,0.157,0.38-0.003,0.551-0.095c0.092-0.046,0.123-0.113,0.042-0.177
+                       c-0.108-0.088-0.127-0.204-0.173-0.314c-0.098-0.246-0.045-0.409,0.234-0.484c0.246-0.069,0.402-0.23,0.617-0.326
+                       c0.134-0.062,0.197-0.157,0.175-0.293c-0.013-0.071-0.01-0.146,0.004-0.217c0.029-0.149,0.127-0.203,0.299-0.151
+                       c0.134,0.037,0.259,0.084,0.406,0.062c0.09-0.014,0.184,0.018,0.211,0.098c0.038,0.126,0.149,0.18,0.266,0.249
+                       c0.134,0.08,0.215,0.198,0.423,0.151c0.11-0.027,0.186,0.071,0.193,0.169c0.017,0.235-0.017,0.467-0.093,0.695
+                       c-0.22,0.635-0.129,0.463,0.251,0.89c0.04,0.046,0.134,0.067,0.153,0.113c0.055,0.149,0.159,0.177,0.32,0.138
+                       c0.05-0.012,0.104-0.014,0.155-0.014c0.085-0.002,0.141,0.071,0.089,0.118c-0.125,0.115-0.199,0.235-0.146,0.399
+                       c0.01,0.034-0.016,0.089-0.047,0.118c-0.283,0.242-0.338,0.603-0.668,0.819c0.263,0.117,0.268,0.119,0.386-0.012
+                       c0.189-0.202,0.443-0.319,0.72-0.41c0.014-0.005,0.033,0.004,0.05,0.004c0.139-0.004,0.11-0.242,0.315-0.159
+                       c0.109,0.041,0.201,0.117,0.331,0.123c0.053,0.003,0.105,0.014,0.151,0.032c0.054,0.022,0.071,0.075,0.042,0.113
+                       c-0.046,0.063-0.11,0.112-0.162,0.169c-0.046,0.049-0.055,0.1-0.022,0.162c0.108,0.202,0.105,0.204-0.028,0.306
+                       c-0.143,0.108-0.286,0.212-0.378,0.361c-0.048,0.079-0.122,0.144-0.201,0.203c-0.093,0.064-0.227,0.098-0.295,0.173
+                       c-0.108,0.113-0.177,0.251-0.261,0.377c0.009,0.104,0.115,0.102,0.189,0.124c0.077,0.027,0.112,0.119,0.22,0.09
+                       c0.095-0.104-0.029-0.255,0.072-0.337c0.106-0.087,0.265-0.132,0.401-0.195c0.046-0.02,0.098-0.035,0.136-0.065
+                       c0.048-0.033,0.097-0.051,0.145-0.062c0.005-0.191,0.031-0.2,0.313-0.218c0.108-0.006,0.195-0.024,0.29-0.075
+                       c0.237-0.126,0.479-0.17,0.711,0.027c0.126,0.112,0.293,0.065,0.446,0.051c0.064-0.006,0.103-0.113,0.046-0.139
+                       c-0.364-0.171-0.261-0.484-0.328-0.743c-0.021-0.083,0.032-0.142,0.096-0.195c0.112-0.093,0.074-0.209,0.007-0.284
+                       c-0.115-0.127-0.18-0.303-0.31-0.392c-0.208-0.141-0.287-0.253-0.184-0.474c0.038-0.083-0.087-0.213-0.119-0.324
+                       c-0.061-0.191-0.032-0.227,0.214-0.318c0.24-0.087,0.357-0.295,0.276-0.489c-0.03-0.069-0.07-0.135-0.094-0.206
+                       c-0.033-0.089,0.064-0.171,0.18-0.163c0.02,0,0.04-0.002,0.053,0.004c0.229,0.158,0.38-0.002,0.549-0.092
+                       c0.094-0.047,0.122-0.114,0.044-0.177c-0.108-0.089-0.127-0.205-0.17-0.315c-0.101-0.246-0.046-0.409,0.231-0.484
+                       c0.247-0.068,0.404-0.23,0.618-0.326c0.135-0.062,0.196-0.157,0.174-0.293c-0.013-0.07-0.01-0.147,0.005-0.217
+                       c0.028-0.15,0.127-0.202,0.301-0.152c0.132,0.038,0.256,0.085,0.404,0.063c0.091-0.013,0.188,0.018,0.21,0.096
+                       c0.039,0.129,0.149,0.182,0.266,0.251c0.134,0.08,0.215,0.198,0.423,0.151c0.11-0.027,0.187,0.071,0.193,0.169
+                       c0.02,0.236-0.014,0.468-0.093,0.695c-0.221,0.634-0.129,0.464,0.251,0.89c0.041,0.047,0.136,0.066,0.153,0.113
+                       c0.055,0.149,0.16,0.177,0.323,0.138c0.048-0.012,0.103-0.014,0.156-0.014c0.081-0.002,0.138,0.071,0.088,0.118
+                       c-0.127,0.116-0.2,0.236-0.148,0.397c0.009,0.035-0.017,0.093-0.048,0.12c-0.281,0.242-0.338,0.603-0.667,0.819
+                       c0.263,0.118,0.268,0.12,0.384-0.012c0.189-0.202,0.443-0.32,0.72-0.41c0.015-0.004,0.034,0.004,0.05,0.004
+                       c0.141-0.004,0.11-0.242,0.316-0.159c0.108,0.041,0.2,0.117,0.332,0.124c0.05,0.002,0.103,0.013,0.149,0.031
+                       c0.055,0.022,0.071,0.075,0.042,0.114c-0.045,0.062-0.11,0.11-0.163,0.168c-0.043,0.049-0.055,0.1-0.022,0.161
+                       c0.108,0.203,0.105,0.205-0.028,0.307c-0.143,0.108-0.284,0.213-0.378,0.362c-0.048,0.078-0.121,0.143-0.2,0.202
+                       c-0.094,0.064-0.228,0.097-0.296,0.172c-0.108,0.114-0.177,0.252-0.261,0.378c0.009,0.104,0.115,0.102,0.189,0.124
+                       c0.077,0.024,0.112,0.12,0.22,0.088c0.096-0.102-0.028-0.253,0.072-0.335c0.11-0.086,0.265-0.131,0.402-0.195
+                       c0.044-0.02,0.098-0.035,0.136-0.065c0.143-0.1,0.294-0.098,0.428,0c0.136,0.103,0.296,0.147,0.464,0.191
+                       c0.07,0.018,0.116,0.093,0.059,0.142c-0.234,0.215-0.349,0.503-0.604,0.709c-0.125,0.103-0.275,0.175-0.401,0.276
+                       c0.009,0.029,0.026,0.055,0.046,0.079c0.009-0.013,0.014-0.023,0.028-0.037c0.096-0.084,0.19-0.173,0.287-0.255
+                       c0.493-0.413,0.638-0.452,1.214-0.124c0.506,0.289,1.074,0.497,1.521,0.866c0.252,0.208,0.627,0.279,0.859,0.536
+                       c0.104,0.116,0.313,0.014,0.482-0.062c-0.284-0.307-0.686-0.506-0.966-0.815c-0.104-0.12-0.191-0.216-0.207-0.357
+                       c-0.015-0.12-0.052-0.211-0.201-0.285c-0.251-0.124-0.281-0.404-0.172-0.548c0.169-0.224-0.05-0.477,0.163-0.674
+                       c0.079-0.073,0.031-0.179-0.033-0.263c-0.294-0.387-0.432-0.819-0.502-1.265c-0.035-0.225-0.124-0.409-0.347-0.544
+                       c-0.091-0.055-0.17-0.123-0.252-0.189c-0.394-0.31-0.411-0.361-0.172-0.79c0.05-0.086,0.144-0.169,0.038-0.249
+                       c-0.257-0.19-0.407-0.44-0.575-0.683c-0.079-0.116-0.321-0.154-0.311-0.311c0.015-0.212,0.274-0.286,0.428-0.413
+                       c0.118-0.095,0.293-0.137,0.436-0.212c0.196-0.102,0.2-0.149,0.064-0.342c-0.169-0.242-0.169-0.242,0.06-0.434
+                       c0.061-0.049,0.098-0.12,0.165-0.159c0.608-0.347,0.572-0.478,1.224-0.065c0.11,0.068,0.23,0.131,0.338,0.193
+                       c0.204-0.081,0.047-0.154,0.024-0.222c-0.039-0.114-0.105-0.227-0.11-0.338c-0.003-0.091,0.067-0.191-0.034-0.264
+                       c-0.262-0.19-0.174-0.363,0.021-0.538c0.113-0.102,0.221-0.209,0.329-0.318c0.145-0.144,0.317-0.179,0.527-0.12
+                       c0.105,0.031,0.217,0.051,0.327,0.071c0.146,0.027,0.318,0.206,0.429,0.031c0.081-0.124-0.094-0.257-0.206-0.362
+                       c-0.149-0.137-0.333-0.241-0.268-0.479c0.217-0.823-0.175-1.528-0.672-2.199c-0.139-0.182-0.11-0.3,0.042-0.433
+                       c0.096-0.084,0.187-0.188,0.306-0.23c0.219-0.075,0.307-0.208,0.311-0.381c0.007-0.495,0.455-0.666,0.871-0.857
+                       c0.101-0.047,0.235-0.047,0.319,0.018c0.237,0.171,0.546,0.082,0.8,0.182v0.002h0.002c0.093,0.227,0.411,0.227,0.564,0.393
+                       c0.009,0.012,0.108-0.011,0.136-0.04c0.029-0.031,0.047-0.095,0.029-0.129c-0.033-0.057-0.09-0.133-0.153-0.149
+                       c-0.189-0.039-0.384-0.05-0.575-0.075v-0.002h-0.002c0.073-0.32-0.026-0.603-0.25-0.86c-0.074-0.085-0.075-0.173-0.002-0.26
+                       c0.098-0.113,0.184-0.239,0.307-0.33c0.121-0.089,0.277-0.16,0.43-0.202c0.151-0.04,0.24,0.104,0.363,0.153
+                       c0.103,0.037,0.215,0.129,0.301,0.11c0.577-0.115,0.709,0.222,0.709,0.552c0,0.305,0.151,0.425,0.432,0.52
+                       c0.397,0.135,0.722,0.355,0.994,0.632c0.206,0.21,0.239,0.311,0.041,0.495c-0.215,0.2-0.311,0.438-0.441,0.672
+                       c-0.13,0.237-0.064,0.582-0.47,0.69c-0.007,0.002-0.009,0.046,0.003,0.064c0.009,0.02,0.046,0.045,0.059,0.04
+                       c0.079-0.016,0.168-0.03,0.234-0.064c0.354-0.191,0.703-0.387,1.052-0.582c0.206-0.118,0.397-0.135,0.623-0.016
+                       c0.193,0.1,0.365,0.213,0.523,0.348c0.364,0.313,0.389,0.382,0,0.684c-0.296,0.228-0.365,0.583-0.689,0.79
+                       c-0.029,0.019-0.016,0.088-0.021,0.133c-0.02,0.138,0.105,0.251,0.238,0.218c0.081-0.02,0.158-0.047,0.237-0.073
+                       c0.204-0.065,0.395-0.205,0.632-0.08c0.332,0.177,0.662,0.359,0.832,0.674c0.024,0.047-0.02,0.141-0.068,0.186
+                       c-0.158,0.133-0.325,0.26-0.499,0.378c-0.245,0.166-0.32,0.375-0.274,0.63c0.023,0.116,0.006,0.237,0.034,0.353
+                       c0.096,0.388,0.246,0.77,0.022,1.169c-0.053,0.096,0.001,0.233,0.017,0.35c0.023,0.193,0.143,0.287,0.378,0.311
+                       c0.714,0.075,0.91,0.166,1.397,0.64c-0.06,0.195-0.251,0.309-0.4,0.444c-0.165,0.152-0.287,0.293-0.103,0.495
+                       c0.057,0.061,0.02,0.136-0.04,0.191c-0.094,0.087-0.214,0.159-0.175,0.302c0.065,0.242-0.405,0.519-0.037,0.699
+                       c0.263,0.129,0.445-0.222,0.684-0.33c0.23-0.104,0.382-0.133,0.602,0.008c0.18,0.116,0.346,0.23,0.48,0.387
+                       c0.256,0.297,0.278,0.304-0.035,0.591c-0.163,0.149-0.235,0.304-0.294,0.492c-0.086,0.272-0.193,0.625-0.165,0.817
+                       c0.017,0.1-0.003,0.191-0.094,0.258c-0.174,0.131-0.097,0.261,0.008,0.375c0.237,0.251,0.316,0.477-0.002,0.739
+                       c-0.138,0.11-0.17,0.29-0.111,0.465c0.039,0.112,0.046,0.232,0.063,0.348c0.045,0.307-0.041,0.558-0.412,0.699
+                       c-0.095,0.036-0.17,0.12-0.234,0.169c-0.053,0.226,0.258,0.156,0.293,0.318c0.032,0.142,0.214,0.209,0.33,0.309
+                       c0.18,0.153,0.194,0.35-0.016,0.496c-0.353,0.242-0.315,0.576-0.371,0.886c-0.017,0.087,0.05,0.2-0.057,0.257
+                       c-0.287,0.154-0.412,0.362-0.421,0.649c-0.002,0.119-0.163,0.066-0.271,0.066c-0.312,0.002-0.37,0.032-0.391,0.251
+                       c-0.033,0.36-0.132,0.693-0.377,0.995c-0.048,0.057-0.041,0.141,0.04,0.192c0.081,0.049,0.16,0.018,0.218-0.04
+                       c0.2-0.21,0.444-0.361,0.769-0.386c0.158-0.013,0.263-0.075,0.338-0.182c0.094-0.134,0.237-0.193,0.408-0.224
+                       c0.225-0.04,0.383-0.153,0.56-0.28c0.354-0.255,0.773-0.443,1.172-0.654c0.033-0.018,0.136,0.002,0.148,0.024
+                       c0.134,0.275,0.529,0.302,0.708,0.559c0.224,0.32,0.299,0.464,0.083,0.746c-0.046,0.058-0.116,0.101-0.172,0.156
+                       c-0.23,0.233-0.357,0.501-0.153,0.776c0.167,0.224-0.03,0.348-0.103,0.51c-0.005-0.002-0.007-0.002-0.011-0.004
+                       c0,0.002-0.004,0.004-0.004,0.007c-0.191-0.005-0.385-0.022-0.573-0.012c-0.144,0.009-0.265,0.08-0.318,0.202
+                       c-0.017,0.038-0.002,0.089,0.01,0.134c0.004,0.018,0.045,0.047,0.056,0.041c0.293-0.095,0.677-0.044,0.825-0.365
+                       c0.004,0,0.008,0.002,0.01,0.002c0.002-0.002,0.002-0.005,0.005-0.005c0.488,0.123,0.643,0.486,0.837,0.822
+                       c0.055,0.093,0.011,0.186-0.057,0.266c-0.064,0.075-0.129,0.154-0.204,0.225c-0.1,0.097-0.176,0.192-0.229,0.294
+                       c1.106-0.365,2.213-0.728,3.321-1.087c-0.033-0.087-0.081-0.181-0.189-0.211c-0.248-0.069-0.182-0.222-0.175-0.371
+                       c0.006-0.066,0.129-0.108,0.05-0.182c-0.042-0.038-0.102-0.078-0.163-0.089c-0.257-0.047-0.413-0.273-0.698-0.277
+                       c-0.051,0-0.06-0.053-0.072-0.096c-0.071-0.253-0.152-0.506-0.222-0.758c-0.04-0.154,0.02-0.216,0.215-0.216
+                       c0.094-0.002,0.149-0.022,0.206-0.082c0.093-0.093,0.189-0.191,0.308-0.255c0.082-0.042,0.184-0.054,0.204-0.151
+                       c0.014-0.089-0.052-0.158-0.088-0.236c-0.079-0.171-0.298-0.251-0.39-0.417c0.072-0.098,0.143-0.186,0.208-0.28
+                       c0.041-0.054,0.095-0.064,0.167-0.052c0.095,0.018,0.094-0.04,0.105-0.096c0.02-0.087,0.088-0.12,0.18-0.073
+                       c0.096,0.049,0.184,0.112,0.275,0.169c0.053,0.033,0.112,0.097,0.158,0.091c0.32-0.05,0.502,0.237,0.808,0.225
+                       c0.057-0.002,0.149,0.027,0.169,0.065c0.122,0.195,0.335,0.131,0.519,0.147c0.062,0.004,0.146-0.008,0.148-0.078
+                       c0.006-0.073-0.048-0.134-0.132-0.158c-0.045-0.011-0.097-0.004-0.146-0.008c-0.229-0.017-0.287-0.033-0.301-0.195
+                       c-0.026-0.259-0.223-0.393-0.459-0.481c-0.22-0.08-0.204-0.264-0.305-0.393c-0.021-0.024,0.024-0.116,0.068-0.142
+                       c0.167-0.104,0.277-0.255,0.461-0.353c0.134-0.068,0.184-0.091,0.323-0.008c0.208,0.124,0.445,0.222,0.684,0.297
+                       c0.05,0.015,0.093,0.04,0.134,0.064c0.045-0.023,0.105-0.039,0.174-0.039c0.013,0,0.024,0,0.036,0.002
+                       c0.036-0.112,0.036-0.22-0.047-0.34c-0.065-0.088-0.057-0.214-0.094-0.32c-0.04-0.129-0.121-0.226-0.301-0.226
+                       c-0.115,0-0.177-0.063-0.235-0.129c-0.208-0.23-0.422-0.452-0.731-0.601c-0.208-0.102-0.316-0.267-0.314-0.484
+                       c0.003-0.235-0.031-0.466-0.15-0.686c-0.112-0.208-0.01-0.403,0.095-0.612c-0.136-0.086-0.239-0.211-0.347-0.33
+                       c-0.191-0.218-0.201-0.258-0.009-0.438c0.213-0.202,0.332-0.224,0.648-0.124c0.046,0.014,0.083,0.045,0.129,0.051
+                       c0.072,0.01,0.124-0.027,0.158-0.08c0.033-0.051,0.035-0.1-0.026-0.144c-0.206-0.142-0.201-0.144-0.323-0.45
+                       c-0.015-0.035-0.057-0.065-0.094-0.093c-0.064-0.055-0.093-0.11-0.019-0.177c0.056-0.049,0.108-0.102,0.166-0.151
+                       c0.281-0.244,0.367-0.269,0.705-0.082c0.299,0.166,0.631,0.281,0.896,0.495c0.149,0.118,0.369,0.157,0.505,0.304
+                       c0.063,0.069,0.182,0.006,0.283-0.037c-0.17-0.178-0.406-0.289-0.571-0.468c-0.063-0.069-0.116-0.124-0.127-0.206
+                       c-0.009-0.07-0.031-0.123-0.119-0.165c-0.146-0.071-0.168-0.234-0.106-0.318c0.099-0.132-0.033-0.278,0.087-0.395
+                       c0.046-0.042,0.016-0.104-0.022-0.153c-0.175-0.224-0.259-0.473-0.307-0.735c-0.021-0.129-0.073-0.235-0.205-0.312
+                       c-0.052-0.032-0.101-0.071-0.151-0.109c-0.231-0.177-0.241-0.208-0.108-0.459c0.029-0.052,0.081-0.1,0.02-0.144
+                       c-0.151-0.108-0.241-0.253-0.342-0.395c-0.048-0.067-0.189-0.085-0.184-0.177c0.004-0.124,0.156-0.169,0.246-0.244
+                       c0.068-0.055,0.168-0.082,0.252-0.126c0.112-0.063,0.114-0.088,0.033-0.2c-0.103-0.14-0.103-0.14,0.031-0.255
+                       c0.033-0.029,0.055-0.069,0.093-0.093c0.349-0.207,0.328-0.283,0.713-0.047c0.064,0.04,0.136,0.075,0.199,0.109
+                       c0.117-0.048,0.025-0.089,0.011-0.13c-0.024-0.064-0.064-0.131-0.066-0.195c-0.003-0.053,0.036-0.11-0.024-0.153
+                       c-0.156-0.108-0.106-0.21,0.007-0.314c0.064-0.061,0.126-0.125,0.189-0.187c0.081-0.085,0.182-0.108,0.306-0.073
+                       c0.063,0.016,0.127,0.027,0.192,0.038c0.083,0.013,0.185,0.117,0.251,0.015c0.042-0.073-0.06-0.149-0.125-0.208
+                       c-0.088-0.08-0.196-0.14-0.162-0.277c0.12-0.482-0.117-0.89-0.414-1.277c-0.08-0.106-0.067-0.175,0.02-0.253
+                       c0.056-0.049,0.108-0.113,0.177-0.138c0.127-0.044,0.177-0.123,0.177-0.223c0-0.289,0.258-0.391,0.497-0.507
+                       c0.059-0.029,0.139-0.029,0.189,0.01c0.14,0.097,0.318,0.044,0.467,0.1c0.04-0.187-0.022-0.35-0.153-0.499
+                       c-0.042-0.052-0.048-0.102-0.005-0.152c0.057-0.066,0.105-0.141,0.175-0.195c0.071-0.053,0.16-0.095,0.247-0.121
+                       c0.089-0.025,0.142,0.059,0.216,0.086c0.059,0.022,0.124,0.073,0.174,0.063c0.335-0.071,0.417,0.124,0.419,0.317
+                       c0.002,0.178,0.093,0.246,0.259,0.301c0.231,0.074,0.424,0.202,0.586,0.361c0.082,0.082,0.114,0.135,0.093,0.195
+                       c0.015-0.007,0.031-0.012,0.042-0.01c0.072,0.014,0.151,0.023,0.206,0.056c0.077,0.044,0.136,0.11,0.259,0.212
+                       c0.136-0.259,0.299-0.463,0.624-0.548c-0.373-0.273-0.624-0.568-0.761-0.927c-0.104-0.273-0.042-0.466,0.225-0.657
+                       c0.067-0.047,0.151-0.059,0.208-0.029c0.278,0.156,0.577,0.081,0.909,0.083c0.015-0.253,0.024-0.498,0.15-0.721
+                       c0.068-0.125,0.022-0.238-0.045-0.354c-0.072-0.126,0.024-0.184,0.165-0.21c0.16-0.034,0.201-0.136,0.153-0.236
+                       c-0.101-0.208-0.216-0.408-0.419-0.577c-0.237-0.195-0.191-0.257,0.191-0.306c0.072-0.008,0.151,0,0.191-0.071
+                       c-0.009-0.169-0.293-0.228-0.255-0.46c0.286-0.055,0.573-0.208,0.882,0.034c0.059,0.049,0.189,0.045,0.287,0.049
+                       c0.026,0.002,0.08-0.053,0.084-0.083c0.005-0.09-0.084-0.141-0.158-0.194c-0.276-0.191-0.292-0.399-0.122-0.655
+                       c0.129-0.193,0.197-0.413,0.287-0.612c0.16,0.013,0.287,0.027,0.413,0.033c0.048,0.002,0.101-0.004,0.151-0.014
+                       c0.218-0.041,0.323-0.206,0.237-0.377c-0.029-0.055-0.084-0.102-0.122-0.155c-0.123-0.171-0.007-0.308,0.101-0.45
+                       c0.108-0.135,0.242-0.211,0.444-0.156c0.109,0.03,0.199,0.032,0.245-0.072c0.007-0.02,0.018-0.038,0.024-0.058
+                       c0.042-0.137,0.176-0.193,0.327-0.228c0.288-0.069,0.581-0.144,0.887-0.131c0.063,0.004,0.125,0.064,0.177,0.106
+                       c0.108,0.087,0.227,0.161,0.265,0.293c0.04,0.147,0.148,0.124,0.287,0.08c0.363-0.113,0.451-0.091,0.638,0.1
+                       c0.115,0.118,0.177,0.254,0.2,0.393c0.056,0.35,0.01,0.719,0.388,0.992c0.057,0.042,0.053,0.155,0.048,0.233
+                       c-0.011,0.184-0.011,0.371-0.156,0.531c-0.081,0.092-0.077,0.196-0.002,0.288c0.187,0.233,0.136,0.42-0.134,0.584
+                       c-0.02,0.011-0.007,0.082,0.015,0.108c0.026,0.031,0.082,0.061,0.126,0.063c0.29,0.004,0.52-0.151,0.792-0.203
+                       c0.2-0.037,0.294-0.011,0.339,0.134c0.032,0.098,0.058,0.2,0.07,0.3c0.029,0.228,0.167,0.328,0.445,0.426
+                       c0.722,0.251,0.984,0.609,1.049,1.252c0.009,0.082,0.062,0.09,0.153,0.084c0.424-0.029,0.402-0.024,0.455,0.304
+                       c0.026,0.175,0.04,0.315-0.134,0.444c-0.07,0.051-0.138,0.141-0.136,0.213c0.014,0.281-0.228,0.372-0.478,0.485
+                       c-0.118,0.051-0.311,0.053-0.34,0.22c0.044,0.042,0.098,0.087,0.134,0.137c0.12,0.178,0.093,0.272-0.098,0.35
+                       c-0.046,0.018-0.099,0.02-0.143,0.038c-0.399,0.155-0.443,0.26-0.222,0.564c0.062,0.086,0.132,0.184,0.227,0.237
+                       c0.217,0.122,0.201,0.267,0.125,0.433c-0.034,0.075-0.081,0.153,0.007,0.228c0.198,0.055,0.318-0.089,0.481-0.131
+                       c0.277-0.073,0.452-0.049,0.555,0.175c0.119,0.259,0.286,0.284,0.581,0.228c0.236-0.045,0.291,0.053,0.282,0.246
+                       c-0.016,0.273-0.309,0.411-0.435,0.626c0.165,0.071,0.297-0.084,0.447,0.007c0.104,0.062,0.164-0.03,0.242-0.079
+                       c0.189-0.12,0.231-0.102,0.323,0.053c0.117,0.201,0.128,0.369-0.046,0.568c-0.186,0.216-0.292,0.464-0.629,0.584
+                       c-0.198,0.071-0.27,0.228-0.172,0.414c0.026,0.049,0.009,0.16-0.022,0.171c-0.299,0.098-0.494,0.405-0.836,0.364
+                       c-0.338-0.037-0.356,0.284-0.636,0.279c-0.071-0.002-0.16,0.093-0.213,0.159c-0.055,0.071-0.05,0.16,0.013,0.232
+                       c0.064,0.073,0.172,0.106,0.268,0.08c0.188-0.057,0.37-0.133,0.552-0.204c0.484-0.183,0.608-0.118,0.622,0.318
+                       c0,0.037,0.031,0.073,0.056,0.126c0.139-0.034,0.282-0.069,0.427-0.1c0.128-0.029,0.264-0.018,0.354,0.059
+                       c0.148,0.136,0.315,0.251,0.354,0.457c0.074,0.391,0.187,0.427,0.603,0.227c0.093-0.042,0.181-0.083,0.274-0.022
+                       c0.087,0.055,0.109,0.139,0.089,0.222c-0.029,0.119-0.067,0.237-0.108,0.355c-0.046,0.138-0.136,0.275-0.132,0.41
+                       c0.007,0.329-0.211,0.562-0.39,0.833c-0.189,0.284-0.425,0.468-0.727,0.664c-0.239,0.155-0.525,0.11-0.74,0.228
+                       c-0.046,0.153,0.147,0.165,0.191,0.253c0.052,0.114,0.093,0.228,0.158,0.34c0.141,0.239,0.16,0.263,0.439,0.151
+                       c0.338-0.134,0.704-0.002,1.038-0.114c0.05-0.018,0.187,0.067,0.235,0.126c0.321,0.403,0.795,0.739,0.786,1.272
+                       c0,0.021,0.009,0.037,0.026,0.05c0.411-0.121,0.821-0.241,1.229-0.361c-0.122-0.182-0.167-0.346,0.063-0.526
+                       c0.157-0.122,0.229-0.315,0.365-0.457c0.18-0.187,0.32-0.438,0.715-0.356c0.029,0.005,0.093-0.037,0.112-0.07
+                       c0.038-0.067-0.026-0.136-0.086-0.147c-0.383-0.073-0.689-0.283-0.938-0.48c-0.683-0.55-0.782-0.577,0.175-0.942
+                       c0.022-0.01,0.05-0.028,0.07-0.023c0.069,0.014,0.148,0.023,0.206,0.057c0.076,0.045,0.135,0.109,0.258,0.213
+                       c0.136-0.261,0.299-0.463,0.624-0.548c-0.373-0.272-0.624-0.57-0.76-0.927c-0.105-0.275-0.044-0.466,0.225-0.657
+                       c0.067-0.047,0.15-0.062,0.207-0.029c0.278,0.155,0.576,0.08,0.909,0.08c0.015-0.251,0.024-0.495,0.151-0.721
+                       c0.066-0.121,0.022-0.235-0.046-0.35c-0.072-0.126,0.024-0.187,0.165-0.212c0.16-0.032,0.2-0.136,0.153-0.236
+                       c-0.101-0.206-0.215-0.408-0.419-0.575c-0.236-0.198-0.191-0.257,0.193-0.306c0.071-0.011,0.15,0,0.191-0.073
+                       c-0.01-0.169-0.297-0.228-0.256-0.458c0.287-0.057,0.574-0.21,0.882,0.034c0.059,0.047,0.189,0.045,0.284,0.049
+                       c0.03,0,0.085-0.054,0.087-0.083c0.005-0.09-0.083-0.143-0.158-0.197c-0.276-0.191-0.292-0.399-0.122-0.655
+                       c0.129-0.193,0.197-0.411,0.287-0.61c0.162,0.013,0.287,0.023,0.411,0.031c0.051,0.002,0.103-0.002,0.153-0.014
+                       c0.219-0.04,0.323-0.206,0.237-0.375c-0.031-0.055-0.083-0.102-0.122-0.155c-0.124-0.173-0.009-0.31,0.101-0.45
+                       c0.108-0.136,0.239-0.211,0.445-0.158c0.108,0.032,0.198,0.032,0.244-0.072c0.007-0.018,0.017-0.038,0.024-0.058
+                       c0.042-0.138,0.174-0.193,0.325-0.228c0.292-0.067,0.584-0.142,0.889-0.129c0.062,0.002,0.125,0.064,0.177,0.106
+                       c0.108,0.084,0.227,0.163,0.265,0.291c0.04,0.146,0.145,0.126,0.286,0.082c0.362-0.116,0.45-0.09,0.636,0.1
+                       c0.118,0.118,0.18,0.251,0.202,0.391c0.057,0.351,0.011,0.719,0.387,0.994c0.057,0.042,0.053,0.155,0.05,0.233
+                       c-0.013,0.182-0.013,0.369-0.156,0.529c-0.081,0.092-0.077,0.199-0.002,0.288c0.186,0.233,0.136,0.42-0.134,0.583
+                       c-0.019,0.014-0.009,0.083,0.015,0.112c0.026,0.029,0.081,0.061,0.126,0.061c0.29,0.003,0.52-0.149,0.792-0.201
+                       c0.2-0.037,0.294-0.013,0.34,0.132c0.031,0.1,0.057,0.2,0.069,0.302c0.028,0.226,0.168,0.328,0.445,0.424
+                       c0.722,0.251,0.983,0.608,1.049,1.251c0.009,0.082,0.062,0.093,0.153,0.087c0.422-0.029,0.399-0.024,0.452,0.302
+                       c0.029,0.175,0.04,0.315-0.134,0.446c-0.07,0.051-0.136,0.139-0.135,0.21c0.015,0.285-0.227,0.375-0.477,0.486
+                       c-0.12,0.053-0.312,0.056-0.34,0.222c0.044,0.041,0.098,0.084,0.134,0.137c0.083,0.126,0.092,0.207,0.022,0.273
+                       c2.166-0.592,4.304-1.162,6.41-1.708c0.096-0.114,0.164-0.251,0.268-0.36c0.18-0.186,0.32-0.437,0.713-0.355
+                       c0.031,0.004,0.095-0.038,0.112-0.071c0.041-0.067-0.023-0.136-0.084-0.147c-0.382-0.073-0.689-0.281-0.937-0.479
+                       c-0.683-0.551-0.782-0.58,0.173-0.943c0.023-0.009,0.051-0.027,0.071-0.022c0.07,0.014,0.149,0.024,0.206,0.055
+                       c0.077,0.047,0.136,0.11,0.258,0.216c0.134-0.262,0.299-0.464,0.621-0.548c-0.371-0.273-0.625-0.57-0.761-0.929
+                       c-0.103-0.274-0.04-0.466,0.228-0.655c0.064-0.047,0.148-0.062,0.207-0.029c0.276,0.155,0.574,0.08,0.91,0.08
+                       c0.014-0.251,0.023-0.495,0.148-0.721c0.07-0.122,0.024-0.235-0.044-0.35c-0.073-0.126,0.025-0.186,0.164-0.214
+                       c0.162-0.033,0.203-0.135,0.155-0.235c-0.1-0.207-0.217-0.409-0.418-0.575c-0.239-0.198-0.191-0.258,0.189-0.307
+                       c0.074-0.011,0.153,0,0.193-0.073c-0.009-0.166-0.296-0.228-0.255-0.457c0.286-0.057,0.573-0.21,0.88,0.033
+                       c0.059,0.047,0.189,0.045,0.286,0.049c0.029,0,0.084-0.053,0.084-0.082c0.008-0.09-0.08-0.144-0.156-0.195
+                       c-0.275-0.193-0.291-0.401-0.121-0.656c0.129-0.193,0.197-0.411,0.287-0.611c0.16,0.014,0.287,0.024,0.411,0.031
+                       c0.05,0.003,0.103-0.002,0.15-0.013c0.221-0.042,0.326-0.206,0.237-0.375c-0.028-0.056-0.082-0.102-0.119-0.155
+                       c-0.125-0.173-0.009-0.311,0.101-0.45c0.105-0.136,0.24-0.211,0.442-0.158c0.11,0.029,0.201,0.031,0.244-0.071
+                       c0.01-0.02,0.02-0.039,0.026-0.059c0.044-0.138,0.175-0.193,0.326-0.228c0.291-0.067,0.582-0.142,0.889-0.13
+                       c0.062,0.003,0.121,0.065,0.176,0.107c0.105,0.084,0.228,0.161,0.263,0.29c0.041,0.147,0.149,0.126,0.287,0.083
+                       c0.363-0.116,0.452-0.091,0.639,0.1c0.114,0.117,0.178,0.251,0.201,0.39c0.054,0.352,0.011,0.72,0.387,0.995
+                       c0.057,0.041,0.053,0.153,0.047,0.233c-0.009,0.182-0.011,0.369-0.152,0.528c-0.085,0.093-0.077,0.2-0.006,0.289
+                       c0.189,0.233,0.137,0.42-0.13,0.583c-0.022,0.014-0.01,0.082,0.014,0.11c0.024,0.03,0.081,0.061,0.127,0.061
+                       c0.289,0.004,0.518-0.151,0.789-0.2c0.2-0.038,0.293-0.013,0.341,0.132c0.031,0.099,0.056,0.199,0.07,0.301
+                       c0.026,0.227,0.167,0.329,0.445,0.424c0.721,0.252,0.982,0.609,1.048,1.252c0.01,0.082,0.061,0.093,0.151,0.086
+                       c0.424-0.029,0.402-0.023,0.454,0.303c0.029,0.175,0.041,0.314-0.134,0.445c-0.069,0.052-0.136,0.14-0.134,0.211
+                       c0.015,0.284-0.228,0.375-0.478,0.486c-0.119,0.053-0.31,0.055-0.339,0.222c0.04,0.041,0.096,0.084,0.131,0.137
+                       c0.024,0.033,0.038,0.065,0.049,0.09c0.123-0.025,0.25-0.057,0.371-0.084c-0.028-0.041-0.076-0.082-0.141-0.12
+                       c-0.079-0.044-0.055-0.131-0.002-0.186c0.071-0.075,0.145-0.175,0.241-0.198c0.148-0.035,0.235-0.149,0.402-0.173
+                       c0.149,0.091,0.222,0.259,0.409,0.33c0.077,0.03,0.143,0.078,0.228,0.065c0.042-0.006,0.083-0.006,0.121-0.002
+                       c0.448-0.102,0.893-0.2,1.338-0.297c-0.01-0.027-0.023-0.051-0.027-0.08c-0.004-0.034-0.059-0.057-0.095-0.085
+                       c-0.01-0.008-0.031-0.004-0.046-0.011c-0.266-0.078-0.32-0.336-0.55-0.448c-0.22-0.11-0.444-0.224-0.53-0.46
+                       c-0.037-0.1-0.075-0.23-0.208-0.27c-0.246-0.073-0.177-0.225-0.165-0.374c0.005-0.066,0.128-0.108,0.053-0.18
+                       c-0.044-0.039-0.103-0.08-0.16-0.093c-0.258-0.049-0.412-0.277-0.693-0.286c-0.05-0.002-0.059-0.053-0.072-0.098
+                       c-0.067-0.253-0.143-0.507-0.208-0.762c-0.038-0.153,0.024-0.212,0.221-0.212c0.09,0.002,0.147-0.02,0.206-0.079
+                       c0.095-0.09,0.194-0.188,0.313-0.25c0.081-0.042,0.186-0.054,0.206-0.151c0.016-0.089-0.048-0.158-0.082-0.234
+                       c-0.078-0.173-0.295-0.257-0.384-0.424c0.074-0.096,0.145-0.185,0.213-0.275c0.043-0.058,0.098-0.065,0.167-0.051
+                       c0.096,0.018,0.094-0.04,0.108-0.096c0.019-0.084,0.091-0.12,0.182-0.071c0.096,0.049,0.18,0.115,0.27,0.173
+                       c0.052,0.033,0.113,0.098,0.156,0.091c0.323-0.045,0.5,0.244,0.803,0.237c0.061-0.002,0.151,0.03,0.173,0.067
+                       c0.117,0.195,0.332,0.135,0.514,0.153c0.062,0.004,0.145-0.008,0.15-0.075c0.008-0.073-0.045-0.133-0.13-0.159
+                       c-0.043-0.014-0.096-0.007-0.144-0.012c-0.228-0.02-0.284-0.035-0.299-0.2c-0.02-0.259-0.213-0.395-0.45-0.485
+                       c-0.217-0.083-0.196-0.267-0.297-0.397c-0.019-0.024,0.027-0.116,0.07-0.142c0.17-0.1,0.282-0.251,0.468-0.344
+                       c0.136-0.069,0.184-0.088,0.323-0.004c0.206,0.126,0.441,0.226,0.68,0.304c0.112,0.036,0.179,0.109,0.291,0.151
+                       c0.079-0.153,0.122-0.295,0.01-0.459c-0.063-0.091-0.055-0.213-0.086-0.322c-0.039-0.129-0.12-0.228-0.3-0.228
+                       c-0.115-0.002-0.174-0.065-0.231-0.131c-0.204-0.236-0.413-0.46-0.72-0.614c-0.206-0.104-0.311-0.27-0.305-0.488
+                       c0.008-0.234-0.023-0.466-0.138-0.688c-0.11-0.208-0.005-0.404,0.108-0.61c-0.135-0.089-0.236-0.213-0.341-0.336
+                       c-0.189-0.219-0.197-0.259-0.002-0.437c0.215-0.198,0.334-0.22,0.648-0.118c0.045,0.015,0.086,0.047,0.132,0.053
+                       c0.071,0.011,0.124-0.024,0.158-0.075c0.033-0.051,0.038-0.1-0.024-0.144c-0.201-0.147-0.199-0.149-0.316-0.457
+                       c-0.011-0.036-0.055-0.065-0.088-0.093c-0.068-0.055-0.094-0.114-0.017-0.177c0.055-0.049,0.11-0.102,0.167-0.149
+                       c0.287-0.242,0.371-0.264,0.708-0.073c0.294,0.169,0.624,0.289,0.885,0.506c0.145,0.12,0.365,0.163,0.499,0.311
+                       c0.063,0.068,0.184,0.008,0.282-0.036c-0.165-0.177-0.399-0.294-0.562-0.474c-0.062-0.069-0.112-0.125-0.122-0.209
+                       c-0.009-0.069-0.031-0.122-0.117-0.165c-0.145-0.073-0.165-0.235-0.101-0.319c0.101-0.132-0.029-0.278,0.096-0.393
+                       c0.046-0.042,0.016-0.104-0.02-0.154c-0.172-0.226-0.254-0.477-0.294-0.738c-0.019-0.13-0.071-0.238-0.2-0.315
+                       c-0.053-0.033-0.101-0.073-0.149-0.11c-0.23-0.183-0.237-0.211-0.098-0.46c0.028-0.051,0.085-0.1,0.022-0.144
+                       c-0.151-0.113-0.239-0.257-0.334-0.399c-0.046-0.067-0.189-0.088-0.182-0.182c0.007-0.122,0.158-0.167,0.25-0.24
+                       c0.069-0.055,0.17-0.08,0.253-0.121c0.114-0.063,0.117-0.089,0.038-0.201c-0.1-0.141-0.1-0.141,0.036-0.255
+                       c0.034-0.029,0.056-0.071,0.096-0.093c0.355-0.202,0.333-0.277,0.713-0.037c0.064,0.042,0.133,0.078,0.196,0.113
+                       c0.117-0.047,0.028-0.088,0.015-0.129c-0.025-0.067-0.063-0.133-0.063-0.198c-0.002-0.053,0.036-0.11-0.022-0.153
+                       c-0.152-0.112-0.103-0.21,0.013-0.315c0.066-0.059,0.129-0.122,0.191-0.184c0.084-0.085,0.187-0.106,0.309-0.069
+                       c0.062,0.018,0.126,0.029,0.189,0.04c0.086,0.015,0.187,0.119,0.251,0.017c0.048-0.071-0.055-0.149-0.12-0.21
+                       c-0.088-0.08-0.193-0.14-0.158-0.277c0.129-0.482-0.1-0.892-0.391-1.283c-0.079-0.106-0.062-0.175,0.026-0.251
+                       c0.055-0.049,0.108-0.11,0.18-0.136c0.126-0.044,0.176-0.121,0.18-0.224c0.006-0.286,0.264-0.386,0.508-0.497
+                       c0.057-0.029,0.136-0.029,0.188,0.01c0.135,0.1,0.317,0.049,0.465,0.106c-0.001,0,0,0-0.001,0.002h0.001
+                       c0.056,0.131,0.239,0.131,0.328,0.229c0.007,0.006,0.065-0.007,0.079-0.024c0.019-0.018,0.028-0.056,0.019-0.074
+                       c-0.021-0.035-0.052-0.079-0.091-0.086c-0.11-0.024-0.222-0.031-0.335-0.045v-0.002c0.043-0.186-0.016-0.351-0.146-0.501
+                       c-0.043-0.049-0.046-0.102-0.002-0.151c0.061-0.067,0.108-0.14,0.18-0.193c0.072-0.051,0.16-0.093,0.251-0.118
+                       c0.089-0.021,0.14,0.063,0.211,0.089c0.06,0.022,0.127,0.075,0.177,0.067c0.334-0.069,0.411,0.129,0.411,0.322
+                       c0,0.175,0.088,0.246,0.253,0.302c0.232,0.078,0.421,0.206,0.579,0.369c0.12,0.122,0.139,0.18,0.024,0.288
+                       c-0.127,0.116-0.18,0.256-0.256,0.391c-0.076,0.14-0.038,0.34-0.275,0.404c-0.005,0-0.005,0.027,0,0.038
+                       c0.008,0.011,0.026,0.024,0.036,0.022c0.048-0.008,0.098-0.016,0.137-0.038c0.206-0.112,0.411-0.224,0.615-0.339
+                       c0.119-0.068,0.229-0.079,0.36-0.01c0.113,0.057,0.213,0.124,0.307,0.204c0.209,0.183,0.227,0.222,0,0.397
+                       c-0.175,0.134-0.217,0.34-0.402,0.462c-0.02,0.011-0.01,0.051-0.015,0.078c-0.009,0.078,0.062,0.144,0.141,0.126
+                       c0.048-0.011,0.092-0.029,0.136-0.041c0.12-0.04,0.232-0.121,0.368-0.048c0.194,0.102,0.388,0.209,0.485,0.393
+                       c0.015,0.028-0.011,0.083-0.038,0.106c-0.093,0.081-0.189,0.154-0.292,0.223c-0.144,0.095-0.187,0.217-0.158,0.365
+                       c0.011,0.069,0.002,0.14,0.017,0.207c0.057,0.226,0.145,0.448,0.014,0.681c-0.031,0.055,0,0.135,0.01,0.204
+                       c0.014,0.114,0.082,0.167,0.219,0.183c0.416,0.041,0.53,0.096,0.815,0.373c-0.036,0.113-0.146,0.179-0.234,0.259
+                       c-0.096,0.087-0.168,0.169-0.061,0.287c0.034,0.035,0.013,0.08-0.024,0.113c-0.053,0.049-0.125,0.091-0.099,0.175
+                       c0.036,0.14-0.237,0.302-0.022,0.406c0.152,0.075,0.258-0.129,0.399-0.192c0.133-0.059,0.222-0.075,0.349,0.004
+                       c0.105,0.069,0.203,0.135,0.279,0.226c0.151,0.173,0.163,0.177-0.019,0.344c-0.095,0.086-0.135,0.177-0.172,0.287
+                       c-0.05,0.159-0.112,0.363-0.096,0.476c0.01,0.058-0.002,0.112-0.054,0.15c-0.101,0.074-0.058,0.153,0.003,0.219
+                       c0.137,0.147,0.185,0.279-0.002,0.431c-0.081,0.065-0.097,0.169-0.062,0.271c0.022,0.066,0.027,0.135,0.036,0.202
+                       c0.026,0.18-0.023,0.326-0.24,0.408c-0.056,0.022-0.098,0.071-0.137,0.1c-0.031,0.132,0.153,0.091,0.173,0.185
+                       c0.02,0.082,0.124,0.121,0.193,0.179c0.103,0.088,0.113,0.204-0.011,0.289c-0.204,0.141-0.182,0.335-0.216,0.516
+                       c-0.009,0.051,0.03,0.116-0.033,0.151c-0.167,0.089-0.239,0.209-0.244,0.378c-0.002,0.068-0.095,0.037-0.158,0.037
+                       c-0.183,0-0.217,0.018-0.23,0.147c-0.018,0.208-0.076,0.404-0.22,0.579c-0.025,0.034-0.023,0.083,0.025,0.114
+                       c0.047,0.029,0.093,0.008,0.126-0.024c0.117-0.122,0.259-0.211,0.45-0.224c0.09-0.008,0.153-0.045,0.196-0.107
+                       c0.055-0.076,0.139-0.113,0.239-0.131c0.059-0.011,0.111-0.031,0.158-0.055c-0.005-0.004-0.009-0.006-0.011-0.008
+                       c-0.101-0.059-0.196-0.124-0.285-0.195c-0.086-0.069-0.105-0.147-0.017-0.23c0.061-0.054,0.118-0.112,0.161-0.174
+                       c0.138-0.204,0.281-0.406,0.296-0.651c0.009-0.13,0.067-0.138,0.191-0.045c0.023,0.017,0.042,0.059,0.067,0.062
+                       c0.081,0.006,0.065-0.051,0.055-0.086c-0.024-0.127,0.039-0.207,0.186-0.218c0.206-0.02,0.375-0.165,0.603-0.12
+                       c0.033,0.006,0.093-0.031,0.121-0.062c0.084-0.093,0.193-0.185,0.224-0.291c0.042-0.136,0.082-0.218,0.265-0.2
+                       c0.125,0.013,0.184-0.065,0.241-0.142c0.085-0.108,0.201-0.147,0.355-0.151c0.184-0.006,0.227-0.08,0.182-0.224
+                       c-0.052-0.163-0.199-0.224-0.366-0.285c-0.167-0.059-0.194-0.115-0.094-0.235c0.091-0.106,0.098-0.173-0.026-0.253
+                       c-0.15-0.102-0.279-0.232-0.442-0.311c-0.175-0.082-0.328-0.151-0.33-0.347c-0.002-0.089-0.103-0.15-0.18-0.211
+                       c-0.103-0.08-0.198-0.165-0.294-0.251c-0.057-0.055-0.022-0.149,0.064-0.183c0.017-0.006,0.032-0.013,0.05-0.017
+                       c0.098-0.02,0.228-0.014,0.261-0.116c0.048-0.147,0.017-0.297-0.108-0.412c-0.118-0.109-0.256-0.201-0.378-0.305
+                       c-0.057-0.049,0-0.159,0.086-0.173c0.05-0.006,0.103-0.011,0.153-0.008c0.099,0.004,0.193,0.113,0.286,0.037
+                       c0.056-0.041,0.05-0.133,0.085-0.199c0.031-0.061,0.115-0.097,0.172-0.063c0.182,0.104,0.316,0.051,0.445-0.067
+                       c0.033-0.029,0.081-0.044,0.124-0.069c-0.22-0.186-0.22-0.186-0.215-0.447c0.002-0.252,0.005-0.26,0.313-0.28
+                       c0.108-0.006,0.194-0.024,0.29-0.073c0.237-0.126,0.481-0.173,0.709,0.027c0.129,0.109,0.294,0.065,0.448,0.051
+                       c0.067-0.006,0.105-0.113,0.046-0.142c-0.364-0.17-0.261-0.481-0.329-0.74c-0.021-0.083,0.031-0.144,0.096-0.195
+                       c0.115-0.093,0.074-0.209,0.007-0.285c-0.115-0.129-0.18-0.302-0.31-0.39c-0.206-0.142-0.287-0.254-0.182-0.478
+                       c0.036-0.08-0.088-0.21-0.121-0.322c-0.061-0.19-0.032-0.225,0.214-0.317c0.239-0.089,0.357-0.295,0.276-0.489
+                       c-0.028-0.071-0.07-0.136-0.094-0.206c-0.031-0.089,0.065-0.173,0.182-0.165c0.016,0.002,0.039-0.002,0.05,0.007
+                       c0.23,0.157,0.38-0.005,0.552-0.095c0.094-0.048,0.123-0.115,0.044-0.177c-0.11-0.088-0.129-0.204-0.172-0.314
+                       c-0.101-0.246-0.046-0.41,0.233-0.486c0.244-0.067,0.402-0.228,0.615-0.324c0.136-0.062,0.196-0.159,0.175-0.295
+                       c-0.013-0.068-0.008-0.147,0.005-0.215c0.028-0.149,0.127-0.202,0.301-0.151c0.134,0.037,0.256,0.084,0.405,0.062
+                       c0.093-0.015,0.186,0.018,0.21,0.096c0.041,0.129,0.149,0.182,0.268,0.251c0.132,0.078,0.215,0.198,0.424,0.149
+                       c0.108-0.024,0.184,0.071,0.191,0.169c0.019,0.237-0.014,0.471-0.093,0.695c-0.22,0.634-0.129,0.464,0.253,0.892
+                       c0.039,0.044,0.134,0.066,0.151,0.113c0.055,0.149,0.162,0.175,0.323,0.138c0.048-0.012,0.101-0.014,0.15-0.014
+                       c-0.031-0.053-0.023-0.11,0.039-0.168c0.059-0.056,0.116-0.112,0.16-0.175c0.139-0.205,0.283-0.405,0.297-0.653
+                       c0.007-0.129,0.068-0.135,0.191-0.045c0.024,0.02,0.044,0.061,0.07,0.063c0.079,0.006,0.062-0.049,0.055-0.087
+                       c-0.026-0.124,0.037-0.204,0.183-0.217c0.206-0.018,0.376-0.163,0.601-0.118c0.036,0.006,0.096-0.033,0.125-0.065
+                       c0.083-0.09,0.193-0.184,0.224-0.288c0.039-0.138,0.081-0.218,0.266-0.201c0.125,0.012,0.184-0.066,0.241-0.141
+                       c0.084-0.11,0.202-0.147,0.354-0.153c0.184-0.006,0.228-0.078,0.182-0.222c-0.05-0.165-0.198-0.226-0.365-0.287
+                       c-0.168-0.059-0.194-0.113-0.094-0.233c0.09-0.109,0.097-0.173-0.026-0.256c-0.15-0.099-0.277-0.23-0.442-0.308
+                       c-0.175-0.084-0.328-0.153-0.331-0.348c-0.002-0.091-0.103-0.149-0.18-0.21c-0.102-0.082-0.198-0.165-0.291-0.253
+                       c-0.061-0.056-0.024-0.147,0.062-0.183c0.017-0.006,0.033-0.013,0.048-0.015c0.101-0.02,0.229-0.014,0.262-0.116
+                       c0.048-0.149,0.02-0.297-0.106-0.415c-0.118-0.108-0.256-0.198-0.378-0.302c-0.058-0.051,0-0.161,0.085-0.173
+                       c0.05-0.006,0.104-0.014,0.155-0.012c0.099,0.007,0.192,0.116,0.288,0.04c0.052-0.042,0.048-0.135,0.081-0.2
+                       c0.033-0.062,0.114-0.095,0.172-0.064c0.183,0.104,0.317,0.051,0.445-0.065c0.033-0.029,0.081-0.047,0.124-0.071
+                       c-0.219-0.184-0.219-0.184-0.214-0.446c0.002-0.253,0.004-0.259,0.312-0.279c0.11-0.006,0.194-0.024,0.289-0.075
+                       c0.237-0.126,0.481-0.171,0.711,0.027c0.129,0.112,0.294,0.067,0.447,0.051c0.067-0.006,0.104-0.113,0.045-0.14
+                       c-0.363-0.171-0.26-0.483-0.327-0.743c-0.022-0.082,0.031-0.141,0.095-0.194c0.115-0.093,0.078-0.207,0.008-0.285
+                       c-0.113-0.126-0.18-0.3-0.309-0.39c-0.207-0.142-0.288-0.254-0.186-0.475c0.039-0.083-0.086-0.211-0.119-0.322
+                       c-0.06-0.191-0.031-0.227,0.215-0.319c0.239-0.088,0.356-0.294,0.275-0.49c-0.029-0.069-0.07-0.135-0.093-0.206
+                       c-0.034-0.087,0.064-0.171,0.182-0.163c0.016,0,0.038-0.002,0.049,0.004c0.23,0.16,0.38-0.002,0.553-0.09
+                       c0.091-0.049,0.121-0.116,0.043-0.18c-0.11-0.089-0.129-0.205-0.173-0.316c-0.099-0.245-0.046-0.408,0.232-0.483
+                       c0.246-0.069,0.404-0.228,0.617-0.326c0.136-0.062,0.196-0.157,0.175-0.293c-0.013-0.071-0.008-0.147,0.007-0.218
+                       c0.025-0.147,0.124-0.199,0.299-0.151c0.134,0.038,0.257,0.085,0.404,0.063c0.09-0.014,0.187,0.018,0.211,0.098
+                       c0.04,0.126,0.148,0.18,0.268,0.249c0.132,0.08,0.215,0.2,0.423,0.151c0.108-0.027,0.183,0.071,0.191,0.169
+                       c0.018,0.235-0.015,0.468-0.093,0.695c-0.221,0.634-0.13,0.463,0.253,0.892c0.038,0.045,0.134,0.064,0.15,0.11
+                       c0.055,0.149,0.164,0.177,0.324,0.138c0.05-0.012,0.102-0.014,0.155-0.014c0.081-0.002,0.141,0.071,0.088,0.118
+                       c-0.126,0.116-0.2,0.235-0.148,0.399c0.013,0.033-0.015,0.091-0.047,0.118c-0.28,0.241-0.338,0.603-0.665,0.819
+                       c0.26,0.117,0.264,0.12,0.384-0.01c0.186-0.204,0.442-0.32,0.718-0.41c0.014-0.004,0.033,0.002,0.049,0.002
+                       c0.142-0.004,0.111-0.242,0.316-0.16c0.11,0.042,0.201,0.118,0.333,0.125c0.05,0.002,0.102,0.013,0.15,0.031
+                       c0.053,0.021,0.07,0.075,0.041,0.113c-0.044,0.063-0.11,0.114-0.163,0.169c-0.044,0.051-0.052,0.102-0.022,0.164
+                       c0.108,0.201,0.108,0.203-0.028,0.305c-0.144,0.108-0.285,0.216-0.378,0.362c-0.046,0.078-0.122,0.143-0.201,0.201
+                       c-0.09,0.067-0.224,0.099-0.296,0.173c-0.108,0.114-0.176,0.254-0.261,0.378c0.01,0.104,0.118,0.102,0.193,0.126
+                       c0.073,0.024,0.11,0.12,0.216,0.088c0.098-0.104-0.028-0.255,0.072-0.335c0.111-0.089,0.265-0.133,0.401-0.195
+                       c0.046-0.022,0.099-0.037,0.137-0.065c0.145-0.102,0.296-0.1,0.428-0.002c0.138,0.103,0.295,0.147,0.464,0.191
+                       c0.068,0.018,0.114,0.093,0.06,0.142c-0.235,0.217-0.347,0.503-0.604,0.709c-0.125,0.103-0.276,0.176-0.403,0.275
+                       c0.044,0.134,0.214,0.2,0.204,0.354c-0.009,0.122,0.139,0.155,0.228,0.222c0.106,0.078,0.121,0.151,0.023,0.222
+                       c-0.136,0.1-0.253,0.194-0.231,0.367c0.009,0.093-0.077,0.156-0.169,0.207c-0.206,0.11-0.401,0.237-0.609,0.343
+                       c-0.117,0.058-0.172,0.14-0.222,0.234l0.006,0.006c0.216-0.04,0.453-0.006,0.645-0.14c0.083-0.057,0.203-0.073,0.296-0.029
+                       c0.157,0.079,0.261,0.007,0.375-0.064c0.069-0.042,0.139-0.087,0.217-0.116c0.16-0.062,0.338,0.012,0.335,0.162
+                       c-0.003,0.139,0.018,0.175,0.183,0.137c0.087-0.02,0.156-0.049,0.23-0.089c0.119-0.064,0.196-0.033,0.227,0.076
+                       c0.022,0.068,0.03,0.143,0.048,0.215c0.024,0.093,0.175,0.183,0.065,0.277c-0.118,0.099-0.211,0.244-0.414,0.24
+                       c-0.09-0.002-0.177,0.006-0.241,0.059c-0.127,0.1-0.227,0.229-0.367,0.303c-0.142,0.073-0.34,0.066-0.445,0.204l0.003,0.002
+                       c0.108-0.015,0.206-0.004,0.294,0.057c0.076,0.058,0.158,0.114,0.248,0.176c0.088-0.089,0.158-0.172,0.241-0.24
+                       c0.125-0.102,0.281-0.063,0.314,0.08c0.016,0.069,0.002,0.144,0.002,0.23c0.158,0.04,0.296-0.038,0.439-0.07
+                       c0.086-0.018,0.165-0.034,0.254-0.01c0.093,0.024,0.153,0.098,0.115,0.167c-0.096,0.173-0.196,0.341-0.292,0.515
+                       c-0.077,0.139-0.217,0.17-0.382,0.194c-0.316,0.047-0.54,0.238-0.784,0.395c-0.041,0.027-0.048,0.087-0.007,0.116
+                       c0.033,0.024,0.102,0.037,0.137,0.024c0.079-0.029,0.147-0.08,0.219-0.118c0.048-0.024,0.119-0.037,0.134,0.014
+                       c0.055,0.174,0.22,0.202,0.394,0.235c0.103,0.02,0.116,0.096,0.039,0.169c-0.072,0.066-0.151,0.126-0.219,0.193
+                       c-0.086,0.086-0.069,0.177,0.061,0.202c0.186,0.035,0.277,0.102,0.246,0.27c-0.007,0.052,0.062,0.087,0.105,0.061
+                       c0.259-0.16,0.39-0.033,0.543,0.135c0.116,0.13,0.031,0.187-0.016,0.301c-0.127,0.294-0.379,0.424-0.699,0.518
+                       c-0.141,0.045-0.267,0.13-0.398,0.201c-0.017,0.009-0.024,0.055-0.013,0.075c0.015,0.019,0.053,0.033,0.085,0.039
+                       c0.128,0.02,0.241-0.006,0.332-0.09c0.124-0.112,0.261-0.14,0.417-0.04c0.113,0.069,0.231,0.049,0.343-0.004
+                       c0.046-0.022,0.094-0.047,0.142-0.061c0.186-0.055,0.301,0.002,0.31,0.181c0.004,0.091-0.04,0.161,0.143,0.143
+                       c0.211-0.018,0.297,0.079,0.235,0.238c-0.129,0.33-0.334,0.606-0.793,0.685c0.047,0.081,0.097,0.158,0.143,0.234
+                       c0.05,0.08,0.125,0.098,0.217,0.059c0.062-0.027,0.117-0.064,0.182-0.086c0.046-0.016,0.086-0.014,0.119-0.002
+                       c0.043-0.078,0.153-0.122,0.225-0.183c0.066-0.057,0.169-0.082,0.251-0.126c0.112-0.062,0.114-0.088,0.033-0.2
+                       c-0.103-0.14-0.099-0.14,0.032-0.255c0.033-0.029,0.054-0.071,0.093-0.092c0.351-0.207,0.327-0.283,0.713-0.047
+                       c0.066,0.039,0.136,0.075,0.198,0.108c0.118-0.047,0.026-0.089,0.011-0.13c-0.023-0.066-0.064-0.131-0.066-0.194
+                       c-0.003-0.054,0.035-0.114-0.022-0.153c-0.156-0.112-0.108-0.211,0.005-0.315c0.065-0.061,0.127-0.124,0.19-0.187
+                       c0.082-0.084,0.183-0.108,0.306-0.075c0.062,0.018,0.127,0.029,0.191,0.04c0.086,0.013,0.189,0.118,0.251,0.015
+                       c0.046-0.073-0.057-0.15-0.124-0.21c-0.088-0.078-0.196-0.138-0.162-0.277c0.119-0.482-0.115-0.89-0.414-1.277
+                       c-0.081-0.103-0.067-0.172,0.022-0.25c0.055-0.052,0.105-0.114,0.176-0.138c0.125-0.045,0.175-0.124,0.175-0.226
+                       c0-0.287,0.259-0.391,0.5-0.503c0.057-0.03,0.136-0.03,0.187,0.006c0.139,0.098,0.32,0.044,0.468,0.1
+                       c0.039-0.187-0.021-0.352-0.154-0.499c-0.043-0.049-0.046-0.1-0.003-0.151c0.055-0.067,0.103-0.14,0.175-0.195
+                       c0.07-0.051,0.158-0.096,0.248-0.12c0.086-0.024,0.139,0.059,0.213,0.084c0.06,0.022,0.127,0.075,0.177,0.065
+                       c0.332-0.071,0.413,0.124,0.415,0.318c0.005,0.177,0.094,0.244,0.259,0.3c0.234,0.075,0.426,0.202,0.586,0.359
+                       c0.121,0.122,0.143,0.179,0.028,0.289c-0.122,0.118-0.175,0.257-0.248,0.395c-0.074,0.139-0.032,0.339-0.268,0.406
+                       c-0.003,0-0.006,0.027,0.002,0.038c0.007,0.011,0.026,0.023,0.036,0.021c0.046-0.009,0.096-0.017,0.136-0.039
+                       c0.204-0.113,0.406-0.228,0.608-0.346c0.116-0.069,0.227-0.082,0.361-0.014c0.115,0.056,0.214,0.12,0.308,0.201
+                       c0.215,0.179,0.232,0.219,0.007,0.397c-0.169,0.135-0.208,0.341-0.392,0.465c-0.016,0.011-0.009,0.051-0.011,0.079
+                       c-0.009,0.079,0.064,0.143,0.143,0.123c0.046-0.011,0.092-0.029,0.137-0.045c0.117-0.039,0.227-0.121,0.365-0.05
+                       c0.196,0.099,0.39,0.204,0.492,0.386c0.015,0.027-0.009,0.085-0.038,0.108c-0.091,0.081-0.187,0.156-0.287,0.225
+                       c-0.141,0.099-0.183,0.222-0.152,0.37c0.014,0.067,0.004,0.138,0.024,0.205c0.06,0.226,0.15,0.447,0.023,0.681
+                       c-0.029,0.055,0.005,0.135,0.015,0.204c0.017,0.114,0.086,0.167,0.224,0.18c0.417,0.038,0.531,0.089,0.821,0.362
+                       c-0.033,0.114-0.144,0.182-0.229,0.262c-0.094,0.088-0.163,0.173-0.056,0.288c0.036,0.036,0.013,0.081-0.021,0.112
+                       c-0.052,0.053-0.122,0.095-0.098,0.177c0.041,0.142-0.229,0.306-0.015,0.409c0.156,0.072,0.258-0.134,0.397-0.199
+                       c0.132-0.064,0.219-0.08,0.349,0c0.108,0.067,0.204,0.131,0.285,0.222c0.153,0.171,0.165,0.175-0.015,0.344
+                       c-0.093,0.089-0.134,0.177-0.165,0.289c-0.048,0.159-0.108,0.363-0.088,0.477c0.009,0.059,0,0.11-0.051,0.151
+                       c-0.103,0.078-0.055,0.153,0.007,0.218c0.14,0.147,0.189,0.277,0.005,0.43c-0.079,0.067-0.095,0.171-0.056,0.273
+                       c0.02,0.065,0.027,0.135,0.038,0.202c0.031,0.18-0.017,0.326-0.232,0.411c-0.055,0.021-0.096,0.071-0.134,0.102
+                       c-0.028,0.131,0.153,0.089,0.174,0.182c0.019,0.083,0.127,0.12,0.197,0.177c0.105,0.087,0.117,0.202-0.004,0.289
+                       c-0.204,0.144-0.177,0.338-0.208,0.519c-0.009,0.051,0.031,0.115-0.032,0.151c-0.164,0.091-0.234,0.212-0.236,0.379
+                       c-0.002,0.071-0.096,0.04-0.158,0.042c-0.182,0.002-0.215,0.02-0.224,0.149c-0.017,0.208-0.07,0.404-0.211,0.581
+                       c-0.028,0.033-0.022,0.085,0.024,0.112c0.049,0.029,0.095,0.011,0.126-0.024c0.115-0.124,0.256-0.213,0.447-0.232
+                       c0.088-0.008,0.151-0.044,0.193-0.108c0.054-0.078,0.136-0.114,0.237-0.133c0.129-0.024,0.22-0.091,0.32-0.167
+                       c0.204-0.151,0.448-0.264,0.677-0.391c0.018-0.008,0.081,0,0.088,0.014c0.079,0.159,0.308,0.173,0.418,0.322
+                       c0.133,0.184,0.177,0.267,0.056,0.432c-0.027,0.036-0.07,0.061-0.098,0.091c-0.132,0.137-0.204,0.297-0.081,0.455
+                       c0.098,0.129-0.015,0.202-0.057,0.297c-0.002,0-0.002,0-0.004-0.002c0,0.002,0,0.002-0.003,0.004
+                       c-0.112-0.002-0.222-0.011-0.334-0.002c-0.081,0.004-0.153,0.049-0.182,0.12c-0.01,0.022,0,0.051,0.007,0.078
+                       c0.002,0.012,0.026,0.027,0.034,0.024c0.169-0.057,0.394-0.031,0.475-0.22h0.008v-0.002c0.286,0.069,0.382,0.279,0.499,0.473
+                       c0.032,0.053,0.007,0.109-0.031,0.155c-0.007,0.007-0.014,0.014-0.018,0.022c0.009,0,0.018-0.002,0.03-0.002
+                       c0.079-0.006,0.177,0.1,0.23,0.016c0.041-0.069,0.038-0.187-0.005-0.256c-0.108-0.164-0.155-0.357-0.308-0.505
+                       c-0.053-0.054,0.007-0.168,0.09-0.176c0.239-0.024,0.483-0.039,0.722-0.059c0.294,0.149,0.476-0.057,0.74-0.136
+                       c-0.141-0.139-0.248-0.251-0.365-0.355c-0.16-0.144-0.34-0.24-0.595-0.155c-0.212,0.066-0.369,0.008-0.457-0.181
+                       c-0.087-0.186-0.27-0.31-0.462-0.412c-0.382-0.207-0.679-0.497-1.035-0.728c-0.035-0.022-0.063-0.075-0.061-0.114
+                       c0.006-0.071,0.085-0.082,0.151-0.098c0.129-0.031,0.33,0.051,0.382-0.071c0.074-0.169-0.193-0.171-0.275-0.275
+                       c-0.02-0.022-0.057-0.033-0.089-0.046c-0.152-0.069-0.38-0.146-0.346-0.29c0.043-0.19,0.32-0.161,0.485-0.146
+                       c0.287,0.022,0.538,0.008,0.782-0.134c0.077-0.046,0.201-0.035,0.294-0.048c0.084-0.107-0.062-0.127-0.079-0.189
+                       c-0.007-0.029-0.024-0.059-0.018-0.087c0.029-0.119,0.291-0.37,0.418-0.357c0.314,0.036,0.564-0.12,0.852-0.171
+                       c0.21-0.037,0.371-0.031,0.525,0.093c0.113,0.093,0.23,0.186,0.407,0.169c0.081-0.01,0.198,0.033,0.222-0.063
+                       c0.019-0.067-0.091-0.07-0.146-0.102c-0.151-0.082-0.113-0.237-0.18-0.355c-0.043-0.073,0.02-0.14,0.079-0.195
+                       c0.074-0.069,0.064-0.129-0.022-0.184c-0.041-0.028-0.074-0.065-0.117-0.089c-0.294-0.173-0.366-0.264-0.439-0.548
+                       c-0.028-0.107-0.111-0.178-0.228-0.226c-0.338-0.14-0.622-0.324-0.741-0.642c-0.029-0.08-0.105-0.11-0.175-0.153
+                       c-0.1-0.059-0.196-0.124-0.284-0.195c-0.086-0.069-0.103-0.149-0.015-0.23c0.057-0.056,0.116-0.112,0.158-0.175
+                       c0.138-0.205,0.282-0.405,0.297-0.653c0.01-0.129,0.067-0.135,0.191-0.045c0.026,0.02,0.043,0.063,0.07,0.063
+                       c0.079,0.006,0.062-0.049,0.055-0.084c-0.026-0.127,0.037-0.206,0.184-0.22c0.206-0.018,0.375-0.163,0.603-0.118
+                       c0.032,0.006,0.095-0.033,0.121-0.065c0.083-0.09,0.196-0.184,0.225-0.288c0.04-0.138,0.08-0.218,0.267-0.2
+                       c0.122,0.013,0.182-0.067,0.239-0.142c0.083-0.108,0.204-0.147,0.357-0.153c0.181-0.006,0.224-0.078,0.178-0.222
+                       c-0.049-0.165-0.198-0.226-0.365-0.287c-0.168-0.059-0.194-0.113-0.094-0.233c0.094-0.109,0.098-0.173-0.026-0.255
+                       c-0.15-0.1-0.277-0.23-0.443-0.309c-0.172-0.084-0.324-0.151-0.33-0.348c-0.002-0.091-0.102-0.149-0.178-0.21
+                       c-0.101-0.082-0.199-0.165-0.292-0.253c-0.061-0.056-0.022-0.147,0.064-0.183c0.015-0.006,0.031-0.011,0.048-0.015
+                       c0.098-0.02,0.228-0.014,0.26-0.116c0.048-0.149,0.019-0.297-0.106-0.415c-0.118-0.108-0.256-0.197-0.375-0.302
+                       c-0.06-0.051,0-0.161,0.083-0.173c0.049-0.006,0.103-0.014,0.153-0.011c0.1,0.006,0.194,0.115,0.29,0.04
+                       c0.051-0.044,0.047-0.136,0.083-0.201c0.031-0.062,0.111-0.095,0.169-0.062c0.181,0.102,0.316,0.049,0.445-0.067
+                       c0.033-0.029,0.08-0.047,0.124-0.071c-0.218-0.184-0.218-0.184-0.215-0.446c0.005-0.253,0.005-0.259,0.316-0.279
+                       c0.108-0.006,0.193-0.024,0.286-0.075c0.237-0.126,0.482-0.171,0.713,0.027c0.127,0.112,0.293,0.067,0.445,0.051
+                       c0.067-0.006,0.105-0.113,0.045-0.14c-0.363-0.17-0.26-0.483-0.327-0.742c-0.019-0.083,0.032-0.142,0.096-0.195
+                       c0.115-0.093,0.077-0.207,0.007-0.283c-0.112-0.129-0.18-0.302-0.308-0.393c-0.208-0.141-0.291-0.252-0.184-0.474
+                       c0.038-0.083-0.089-0.211-0.123-0.323c-0.059-0.19-0.028-0.226,0.218-0.317c0.239-0.089,0.354-0.295,0.275-0.491
+                       c-0.031-0.069-0.069-0.135-0.095-0.206c-0.031-0.087,0.064-0.171,0.182-0.163c0.017,0.002,0.04-0.002,0.05,0.006
+                       c0.229,0.158,0.382-0.004,0.552-0.092c0.094-0.049,0.122-0.116,0.043-0.179c-0.11-0.089-0.127-0.205-0.172-0.315
+                       c-0.098-0.246-0.046-0.409,0.233-0.484c0.244-0.066,0.402-0.228,0.615-0.326c0.136-0.062,0.198-0.157,0.175-0.293
+                       c-0.01-0.071-0.008-0.147,0.007-0.218c0.029-0.146,0.125-0.199,0.299-0.15c0.134,0.037,0.259,0.084,0.404,0.062
+                       c0.094-0.014,0.187,0.018,0.211,0.098c0.04,0.126,0.151,0.18,0.268,0.249c0.134,0.08,0.215,0.2,0.424,0.151
+                       c0.108-0.027,0.186,0.071,0.193,0.169c0.017,0.235-0.016,0.468-0.095,0.695c-0.22,0.634-0.13,0.464,0.253,0.892
+                       c0.04,0.045,0.134,0.066,0.151,0.11c0.055,0.149,0.163,0.177,0.323,0.138c0.05-0.012,0.102-0.014,0.155-0.014
+                       c0.085-0.002,0.142,0.071,0.089,0.118c-0.125,0.116-0.199,0.236-0.149,0.399c0.013,0.033-0.014,0.09-0.047,0.118
+                       c-0.28,0.241-0.335,0.603-0.665,0.819c0.261,0.118,0.266,0.12,0.385-0.01c0.186-0.204,0.442-0.32,0.718-0.41
+                       c0.014-0.004,0.035,0.002,0.052,0.002c0.139-0.004,0.11-0.241,0.313-0.16c0.109,0.045,0.203,0.118,0.332,0.125
+                       c0.053,0.001,0.105,0.013,0.151,0.031c0.051,0.022,0.071,0.075,0.042,0.114c-0.044,0.062-0.112,0.113-0.162,0.17
+                       c-0.046,0.049-0.054,0.1-0.022,0.163c0.109,0.202,0.105,0.202-0.03,0.304c-0.144,0.108-0.286,0.216-0.379,0.362
+                       c-0.046,0.078-0.123,0.147-0.201,0.202c-0.09,0.066-0.224,0.098-0.295,0.172c-0.108,0.114-0.177,0.254-0.259,0.378
+                       c0.009,0.104,0.115,0.102,0.189,0.126c0.077,0.024,0.112,0.12,0.217,0.089c0.097-0.105-0.029-0.256,0.072-0.336
+                       c0.109-0.088,0.268-0.133,0.404-0.195c0.046-0.022,0.095-0.037,0.136-0.065c0.143-0.102,0.294-0.1,0.428-0.001
+                       c0.136,0.102,0.294,0.146,0.461,0.19c0.072,0.018,0.115,0.093,0.062,0.142c-0.236,0.218-0.349,0.503-0.604,0.712
+                       c-0.127,0.101-0.276,0.174-0.404,0.274c0.042,0.133,0.213,0.199,0.203,0.353c-0.005,0.057,0.03,0.092,0.07,0.123
+                       c0-0.023,0.011-0.048,0.033-0.074c0.058-0.065,0.105-0.138,0.18-0.191c0.07-0.053,0.16-0.096,0.251-0.118
+                       c0.086-0.024,0.136,0.059,0.21,0.087c0.06,0.022,0.125,0.078,0.175,0.066c0.336-0.066,0.413,0.132,0.411,0.322
+                       c0,0.177,0.088,0.246,0.254,0.304c0.231,0.079,0.42,0.207,0.58,0.369c0.119,0.122,0.138,0.181,0.021,0.287
+                       c-0.125,0.118-0.18,0.255-0.256,0.393c-0.071,0.131-0.042,0.318-0.244,0.39c0.003,0.018-0.007,0.038-0.021,0.056
+                       c0.008,0.008,0.021,0.02,0.03,0.018c0.045-0.012,0.095-0.018,0.136-0.038c0.205-0.112,0.408-0.226,0.611-0.34
+                       c0.12-0.068,0.23-0.08,0.364-0.008c0.112,0.057,0.213,0.124,0.303,0.202c0.213,0.185,0.228,0.224,0,0.399
+                       c-0.172,0.134-0.212,0.34-0.401,0.46c-0.017,0.011-0.01,0.051-0.013,0.078c-0.013,0.08,0.062,0.147,0.141,0.126
+                       c0.046-0.012,0.092-0.027,0.137-0.042c0.119-0.037,0.229-0.12,0.367-0.047c0.193,0.104,0.387,0.209,0.485,0.393
+                       c0.015,0.027-0.011,0.084-0.04,0.109c-0.092,0.076-0.19,0.15-0.29,0.219c-0.143,0.098-0.186,0.22-0.16,0.369
+                       c0.011,0.067,0.002,0.137,0.02,0.204c0.057,0.226,0.143,0.451,0.011,0.684c-0.031,0.053,0.003,0.135,0.011,0.202
+                       c0.015,0.114,0.081,0.169,0.22,0.182c0.417,0.045,0.532,0.096,0.814,0.373c-0.033,0.114-0.145,0.179-0.232,0.26
+                       c-0.064,0.057-0.11,0.113-0.108,0.177c0.137-0.238,0.354-0.413,0.696-0.553c0.235-0.095,0.355-0.196,0.378-0.424
+                       c0.01-0.102,0.032-0.202,0.058-0.301c0.038-0.144,0.119-0.169,0.288-0.132c0.23,0.049,0.424,0.205,0.669,0.2
+                       c0.039,0,0.087-0.031,0.108-0.059c0.022-0.03,0.03-0.098,0.013-0.11c-0.228-0.165-0.27-0.352-0.112-0.584
+                       c0.062-0.089,0.066-0.195-0.005-0.289c-0.12-0.159-0.12-0.346-0.129-0.528c-0.006-0.08-0.008-0.191,0.04-0.233
+                       c0.32-0.275,0.282-0.644,0.33-0.994c0.018-0.14,0.071-0.274,0.17-0.391c0.158-0.193,0.232-0.216,0.54-0.1
+                       c0.117,0.045,0.208,0.064,0.245-0.082c0.03-0.13,0.133-0.207,0.224-0.291c0.045-0.042,0.097-0.104,0.15-0.106
+                       c0.259-0.014,0.505,0.059,0.751,0.129c0.129,0.035,0.241,0.091,0.278,0.228c0.005,0.02,0.015,0.04,0.022,0.057
+                       c0.038,0.104,0.115,0.102,0.205,0.073c0.175-0.055,0.287,0.02,0.375,0.155c0.094,0.142,0.191,0.28,0.086,0.454
+                       c-0.031,0.053-0.075,0.1-0.102,0.155c-0.074,0.169,0.016,0.332,0.2,0.375c0.042,0.011,0.087,0.016,0.129,0.013
+                       c0.108-0.006,0.213-0.019,0.349-0.031c0.077,0.2,0.134,0.417,0.244,0.611c0.143,0.255,0.129,0.464-0.103,0.654
+                       c-0.064,0.053-0.139,0.107-0.134,0.198c0,0.029,0.048,0.082,0.072,0.082c0.083-0.004,0.191-0.002,0.241-0.049
+                       c0.263-0.243,0.505-0.09,0.748-0.033c0.033,0.228-0.208,0.289-0.217,0.457c0.033,0.073,0.101,0.063,0.162,0.073
+                       c0.325,0.049,0.364,0.109,0.163,0.307c-0.172,0.166-0.27,0.369-0.356,0.575c-0.041,0.1-0.006,0.202,0.132,0.235
+                       c0.119,0.028,0.2,0.085,0.139,0.213c-0.058,0.116-0.096,0.228-0.037,0.351c0.105,0.227,0.115,0.471,0.125,0.721
+                       c0.284,0,0.536,0.075,0.772-0.08c0.05-0.033,0.119-0.018,0.174,0.027c0.23,0.191,0.28,0.383,0.193,0.657
+                       c-0.117,0.359-0.33,0.654-0.644,0.929c0.275,0.082,0.413,0.286,0.527,0.546c0.103-0.102,0.153-0.167,0.221-0.213
+                       c0.044-0.033,0.112-0.041,0.172-0.055c0.017-0.004,0.04,0.014,0.059,0.022c0.811,0.364,0.727,0.393,0.149,0.941
+                       c-0.213,0.2-0.471,0.408-0.796,0.479c-0.051,0.014-0.103,0.083-0.072,0.149c0.017,0.031,0.072,0.075,0.096,0.069
+                       c0.333-0.08,0.452,0.171,0.604,0.355c0.118,0.144,0.177,0.336,0.311,0.46c0.064,0.059,0.101,0.117,0.119,0.172
+                       c0.013-0.013,0.026-0.023,0.036-0.037c0.139-0.204,0.282-0.404,0.297-0.652c0.007-0.129,0.068-0.136,0.191-0.045
+                       c0.027,0.02,0.042,0.059,0.068,0.062c0.081,0.007,0.062-0.048,0.054-0.086c-0.023-0.126,0.039-0.204,0.185-0.218
+                       c0.208-0.017,0.378-0.164,0.604-0.117c0.033,0.006,0.094-0.034,0.122-0.065c0.084-0.093,0.193-0.184,0.224-0.288
+                       c0.041-0.138,0.081-0.22,0.265-0.201c0.125,0.012,0.184-0.066,0.241-0.142c0.083-0.11,0.201-0.146,0.354-0.153
+                       c0.184-0.006,0.228-0.078,0.182-0.221c-0.052-0.165-0.198-0.227-0.366-0.287c-0.167-0.061-0.194-0.113-0.093-0.233
+                       c0.09-0.109,0.098-0.173-0.026-0.256c-0.151-0.1-0.281-0.23-0.443-0.308c-0.175-0.085-0.327-0.153-0.329-0.351
+                       c-0.002-0.089-0.103-0.149-0.18-0.209c-0.1-0.082-0.201-0.166-0.291-0.253c-0.06-0.055-0.025-0.147,0.062-0.182
+                       c0.017-0.006,0.031-0.014,0.047-0.016c0.101-0.02,0.23-0.013,0.263-0.115c0.048-0.15,0.019-0.298-0.108-0.415
+                       c-0.117-0.108-0.255-0.198-0.378-0.304c-0.057-0.049,0-0.16,0.087-0.173c0.049-0.005,0.102-0.012,0.152-0.01
+                       c0.101,0.004,0.194,0.114,0.289,0.04c0.053-0.045,0.048-0.135,0.081-0.2c0.031-0.062,0.115-0.096,0.173-0.065
+                       c0.181,0.105,0.312,0.051,0.444-0.064c0.033-0.029,0.081-0.047,0.125-0.071c-0.221-0.185-0.221-0.185-0.216-0.446
+                       c0.003-0.253,0.006-0.259,0.313-0.279c0.109-0.006,0.195-0.024,0.29-0.075c0.237-0.127,0.48-0.171,0.709,0.027
+                       c0.13,0.11,0.295,0.066,0.448,0.051c0.067-0.006,0.105-0.114,0.046-0.14c-0.363-0.171-0.261-0.483-0.328-0.743
+                       c-0.02-0.082,0.031-0.144,0.095-0.194c0.116-0.093,0.074-0.209,0.007-0.285c-0.111-0.126-0.179-0.302-0.31-0.391
+                       c-0.206-0.142-0.287-0.253-0.181-0.475c0.034-0.082-0.089-0.21-0.122-0.324c-0.06-0.191-0.031-0.226,0.215-0.318
+                       c0.239-0.086,0.356-0.295,0.275-0.488c-0.029-0.069-0.068-0.136-0.093-0.206c-0.034-0.087,0.064-0.172,0.181-0.163
+                       c0.017,0,0.039-0.002,0.05,0.004c0.23,0.159,0.382-0.002,0.553-0.093c0.094-0.047,0.123-0.113,0.044-0.177
+                       c-0.111-0.089-0.129-0.204-0.173-0.315c-0.097-0.246-0.046-0.408,0.233-0.485c0.246-0.067,0.404-0.226,0.617-0.324
+                       c0.136-0.063,0.196-0.158,0.174-0.293c-0.011-0.071-0.007-0.147,0.006-0.218c0.028-0.149,0.126-0.2,0.301-0.151
+                       c0.133,0.038,0.258,0.085,0.404,0.063c0.093-0.014,0.187,0.017,0.211,0.098c0.04,0.126,0.147,0.179,0.265,0.249
+                       c0.134,0.08,0.217,0.199,0.424,0.151c0.109-0.027,0.184,0.071,0.193,0.168c0.018,0.236-0.015,0.468-0.094,0.696
+                       c-0.22,0.634-0.129,0.463,0.252,0.891c0.04,0.045,0.136,0.065,0.152,0.112c0.055,0.149,0.162,0.177,0.323,0.137
+                       c0.048-0.011,0.103-0.013,0.156-0.013c0.081-0.002,0.141,0.071,0.089,0.118c-0.127,0.115-0.201,0.235-0.149,0.397
+                       c0.011,0.035-0.014,0.092-0.048,0.12c-0.279,0.241-0.337,0.603-0.667,0.818c0.263,0.118,0.268,0.12,0.388-0.008
+                       c0.187-0.204,0.442-0.322,0.716-0.412c0.015-0.005,0.034,0.004,0.053,0.004c0.138-0.004,0.108-0.242,0.313-0.16
+                       c0.11,0.042,0.201,0.118,0.332,0.124c0.05,0.002,0.103,0.014,0.149,0.032c0.055,0.021,0.072,0.075,0.046,0.113
+                       c-0.046,0.063-0.113,0.113-0.165,0.169c-0.043,0.051-0.053,0.1-0.021,0.161c0.108,0.203,0.105,0.205-0.029,0.307
+                       c-0.143,0.108-0.285,0.212-0.378,0.361c-0.048,0.075-0.122,0.144-0.201,0.202c-0.091,0.065-0.225,0.098-0.297,0.173
+                       c-0.108,0.114-0.177,0.251-0.261,0.378c0.01,0.104,0.118,0.099,0.191,0.125c0.074,0.025,0.11,0.118,0.219,0.087
+                       c0.097-0.102-0.03-0.253,0.071-0.332c0.11-0.089,0.265-0.134,0.402-0.195c0.048-0.022,0.098-0.038,0.14-0.065
+                       c0.141-0.102,0.293-0.1,0.424-0.002c0.139,0.102,0.297,0.147,0.465,0.191c0.069,0.018,0.115,0.092,0.062,0.141
+                       c-0.237,0.216-0.351,0.505-0.608,0.711c-0.123,0.102-0.275,0.175-0.401,0.275c0.043,0.133,0.213,0.2,0.204,0.353
+                       c-0.01,0.122,0.138,0.155,0.227,0.22c0.108,0.081,0.122,0.153,0.024,0.224c-0.136,0.1-0.253,0.195-0.231,0.366
+                       c0.009,0.096-0.077,0.155-0.17,0.209c-0.205,0.11-0.399,0.237-0.607,0.341c-0.118,0.059-0.173,0.142-0.222,0.235
+                       c-0.004,0,0.003,0.007,0.003,0.007c0.219-0.04,0.454-0.01,0.645-0.14c0.083-0.057,0.204-0.073,0.297-0.029
+                       c0.158,0.075,0.26,0.006,0.375-0.064c0.069-0.045,0.139-0.087,0.218-0.116c0.16-0.063,0.338,0.011,0.334,0.161
+                       c-0.002,0.14,0.019,0.176,0.184,0.138c0.086-0.02,0.156-0.049,0.23-0.089c0.117-0.064,0.196-0.033,0.228,0.073
+                       c0.02,0.071,0.028,0.144,0.047,0.216c0.024,0.096,0.175,0.184,0.064,0.279c-0.117,0.098-0.209,0.244-0.413,0.24
+                       c-0.091-0.002-0.176,0.006-0.241,0.059c-0.127,0.1-0.228,0.228-0.369,0.303c-0.143,0.072-0.34,0.066-0.445,0.204l0.003,0.002
+                       c0.106-0.016,0.207-0.007,0.293,0.057c0.078,0.057,0.159,0.11,0.249,0.175c0.088-0.088,0.158-0.171,0.241-0.24
+                       c0.125-0.102,0.279-0.062,0.313,0.081c0.017,0.068,0.002,0.144,0.002,0.23c0.158,0.039,0.296-0.038,0.439-0.071
+                       c0.087-0.018,0.165-0.033,0.254-0.01c0.093,0.025,0.152,0.099,0.115,0.167c-0.095,0.173-0.196,0.342-0.292,0.515
+                       c-0.077,0.138-0.218,0.171-0.382,0.193c-0.316,0.049-0.542,0.239-0.784,0.397c-0.041,0.027-0.05,0.086-0.008,0.116
+                       c0.033,0.023,0.103,0.037,0.139,0.023c0.079-0.029,0.146-0.079,0.219-0.117c0.047-0.024,0.119-0.038,0.133,0.011
+                       c0.056,0.177,0.221,0.204,0.395,0.238c0.103,0.02,0.116,0.096,0.036,0.169c-0.069,0.066-0.148,0.126-0.214,0.193
+                       c-0.087,0.084-0.07,0.176,0.059,0.202c0.187,0.035,0.277,0.102,0.248,0.27c-0.009,0.051,0.059,0.087,0.103,0.061
+                       c0.077-0.047,0.141-0.067,0.198-0.071c0.085-0.078,0.133-0.177,0.149-0.313c0.015-0.121,0.044-0.244,0.079-0.363
+                       c0.053-0.176,0.16-0.205,0.391-0.16c0.314,0.063,0.579,0.249,0.913,0.242c0.054,0,0.118-0.036,0.146-0.073
+                       c0.029-0.033,0.04-0.117,0.017-0.133c-0.311-0.199-0.369-0.424-0.153-0.706c0.083-0.108,0.09-0.235-0.005-0.348
+                       c-0.165-0.192-0.165-0.42-0.177-0.639c-0.005-0.095-0.009-0.23,0.055-0.281c0.435-0.33,0.385-0.779,0.448-1.203
+                       c0.026-0.168,0.101-0.329,0.232-0.472c0.217-0.232,0.317-0.26,0.738-0.12c0.16,0.053,0.283,0.078,0.33-0.1
+                       c0.043-0.155,0.183-0.249,0.306-0.354c0.062-0.048,0.134-0.123,0.206-0.125c0.354-0.018,0.688,0.072,1.025,0.155
+                       c0.175,0.042,0.327,0.11,0.375,0.277c0.007,0.024,0.02,0.047,0.029,0.069c0.053,0.126,0.156,0.124,0.282,0.088
+                       c0.234-0.066,0.389,0.024,0.512,0.189c0.126,0.171,0.261,0.338,0.117,0.546c-0.042,0.065-0.108,0.12-0.139,0.189
+                       c-0.103,0.204,0.022,0.404,0.272,0.455c0.057,0.009,0.117,0.018,0.175,0.013c0.145-0.006,0.289-0.022,0.475-0.037
+                       c0.105,0.241,0.184,0.506,0.333,0.738c0.193,0.309,0.176,0.562-0.142,0.792c-0.086,0.065-0.189,0.127-0.181,0.238
+                       c0.002,0.036,0.064,0.1,0.097,0.1c0.113-0.006,0.261-0.002,0.331-0.061c0.356-0.292,0.685-0.108,1.018-0.039
+                       c0.045,0.277-0.285,0.35-0.296,0.554c0.048,0.087,0.139,0.075,0.222,0.087c0.439,0.059,0.493,0.133,0.22,0.371
+                       c-0.233,0.204-0.365,0.446-0.483,0.695c-0.033,0.07-0.026,0.139,0.019,0.195c0.077-0.01,0.149-0.027,0.222-0.067
+                       c0.237-0.124,0.48-0.171,0.713,0.027c0.127,0.112,0.294,0.067,0.447,0.051c0.064-0.004,0.102-0.112,0.045-0.14
+                       c-0.363-0.171-0.26-0.483-0.327-0.743c-0.022-0.08,0.031-0.141,0.096-0.195c0.112-0.092,0.073-0.206,0.007-0.281
+                       c-0.115-0.129-0.18-0.302-0.311-0.391c-0.208-0.141-0.287-0.253-0.184-0.476c0.039-0.081-0.086-0.211-0.122-0.323
+                       c-0.057-0.19-0.028-0.226,0.218-0.318c0.239-0.088,0.356-0.295,0.275-0.49c-0.029-0.069-0.069-0.135-0.096-0.204
+                       c-0.031-0.089,0.065-0.174,0.183-0.165c0.018,0.002,0.04-0.002,0.051,0.006c0.23,0.158,0.381-0.004,0.551-0.092
+                       c0.094-0.049,0.122-0.116,0.043-0.177c-0.108-0.091-0.127-0.207-0.17-0.315c-0.101-0.246-0.045-0.411,0.232-0.486
+                       c0.246-0.066,0.402-0.228,0.617-0.326c0.136-0.061,0.196-0.157,0.174-0.293c-0.011-0.071-0.009-0.147,0.006-0.218
+                       c0.029-0.147,0.125-0.199,0.301-0.149c0.132,0.038,0.256,0.083,0.404,0.061c0.091-0.014,0.184,0.018,0.211,0.098
+                       c0.038,0.126,0.149,0.18,0.265,0.249c0.134,0.08,0.215,0.2,0.422,0.151c0.11-0.027,0.187,0.071,0.194,0.169
+                       c0.016,0.235-0.017,0.471-0.094,0.695c-0.22,0.634-0.128,0.463,0.252,0.892c0.04,0.044,0.134,0.066,0.152,0.113
+                       c0.056,0.149,0.16,0.175,0.324,0.138c0.047-0.014,0.102-0.014,0.154-0.016c0.081,0,0.139,0.071,0.087,0.12
+                       c-0.125,0.116-0.199,0.235-0.146,0.397c0.009,0.033-0.017,0.09-0.048,0.119c-0.279,0.24-0.338,0.602-0.667,0.818
+                       c0.263,0.117,0.268,0.122,0.386-0.01c0.189-0.204,0.442-0.32,0.72-0.41c0.014-0.004,0.033,0.002,0.049,0.002
+                       c0.139-0.005,0.11-0.242,0.316-0.16c0.11,0.045,0.201,0.118,0.333,0.125c0.051,0.001,0.103,0.013,0.148,0.033
+                       c0.055,0.019,0.072,0.072,0.043,0.11c-0.046,0.063-0.11,0.114-0.162,0.171c-0.046,0.049-0.055,0.1-0.022,0.161
+                       c0.108,0.202,0.105,0.205-0.028,0.305c-0.144,0.108-0.287,0.216-0.378,0.362c-0.048,0.076-0.122,0.146-0.201,0.201
+                       c-0.093,0.067-0.224,0.098-0.299,0.173c-0.105,0.114-0.175,0.254-0.259,0.378c0.01,0.104,0.116,0.102,0.189,0.126
+                       c0.077,0.023,0.112,0.12,0.218,0.088c0.098-0.104-0.026-0.255,0.073-0.335c0.108-0.087,0.266-0.131,0.403-0.195
+                       c0.045-0.022,0.098-0.036,0.135-0.065c0.144-0.102,0.294-0.1,0.429-0.002c0.136,0.102,0.295,0.147,0.464,0.191
+                       c0.068,0.017,0.114,0.093,0.059,0.142c-0.235,0.217-0.349,0.503-0.604,0.712c-0.125,0.1-0.276,0.173-0.404,0.275
+                       c0.042,0.132,0.214,0.2,0.203,0.352c-0.007,0.121,0.139,0.155,0.23,0.221c0.108,0.078,0.122,0.152,0.024,0.224
+                       c-0.137,0.099-0.254,0.193-0.235,0.366c0.013,0.093-0.073,0.156-0.167,0.206c-0.205,0.112-0.4,0.24-0.609,0.344
+                       c-0.114,0.058-0.173,0.14-0.223,0.234l0.007,0.008c0.216-0.042,0.453-0.008,0.647-0.142c0.084-0.057,0.203-0.073,0.296-0.027
+                       c0.158,0.075,0.261,0.005,0.373-0.066c0.069-0.042,0.141-0.087,0.22-0.116c0.079-0.031,0.163-0.027,0.228,0.002
+                       c0.031-0.057,0.052-0.122,0.062-0.202c0.016-0.122,0.045-0.244,0.081-0.363c0.053-0.176,0.16-0.205,0.395-0.16
+                       c0.313,0.062,0.578,0.249,0.91,0.241c0.054,0,0.118-0.035,0.146-0.07c0.028-0.036,0.041-0.12,0.016-0.134
+                       c-0.31-0.2-0.367-0.426-0.152-0.705c0.083-0.108,0.09-0.238-0.005-0.351c-0.162-0.193-0.165-0.417-0.177-0.639
+                       c-0.005-0.096-0.009-0.23,0.057-0.281c0.432-0.331,0.383-0.776,0.445-1.2c0.026-0.172,0.101-0.331,0.235-0.475
+                       c0.215-0.232,0.315-0.258,0.736-0.12c0.16,0.053,0.285,0.078,0.33-0.098c0.043-0.158,0.184-0.251,0.306-0.353
+                       c0.062-0.052,0.134-0.125,0.206-0.13c0.354-0.017,0.689,0.073,1.025,0.158c0.174,0.041,0.327,0.108,0.377,0.275
+                       c0.005,0.023,0.016,0.047,0.026,0.07c0.053,0.125,0.156,0.125,0.283,0.089c0.237-0.067,0.389,0.024,0.51,0.188
+                       c0.127,0.17,0.262,0.336,0.118,0.547c-0.042,0.062-0.105,0.12-0.139,0.186c-0.103,0.204,0.021,0.405,0.272,0.455
+                       c0.057,0.012,0.117,0.018,0.174,0.016c0.146-0.008,0.289-0.022,0.476-0.037c0.105,0.239,0.184,0.503,0.333,0.736
+                       c0.196,0.311,0.176,0.562-0.142,0.794c-0.086,0.063-0.189,0.126-0.181,0.236c0.003,0.037,0.064,0.102,0.098,0.1
+                       c0.113-0.005,0.261-0.002,0.33-0.057c0.356-0.295,0.686-0.112,1.019-0.04c0.045,0.277-0.285,0.351-0.298,0.552
+                       c0.049,0.087,0.14,0.075,0.223,0.087c0.443,0.059,0.495,0.133,0.22,0.37c-0.234,0.205-0.365,0.446-0.483,0.697
+                       c-0.057,0.12-0.009,0.246,0.177,0.285c0.163,0.033,0.272,0.104,0.189,0.257c-0.077,0.14-0.129,0.277-0.05,0.424
+                       c0.146,0.273,0.158,0.568,0.175,0.872c0.382,0,0.729,0.091,1.049-0.097c0.066-0.038,0.162-0.02,0.239,0.035
+                       c0.308,0.23,0.38,0.464,0.261,0.794c-0.158,0.433-0.451,0.792-0.881,1.123c0.376,0.1,0.565,0.346,0.723,0.662
+                       c0.141-0.125,0.207-0.204,0.299-0.258c0.064-0.039,0.154-0.05,0.237-0.068c0.021-0.005,0.052,0.015,0.079,0.027
+                       c0.176,0.07,0.317,0.129,0.432,0.184c0.016-0.013,0.033-0.024,0.05-0.038c0.033-0.029,0.08-0.047,0.124-0.07
+                       c-0.22-0.185-0.22-0.185-0.215-0.446c0.002-0.253,0.006-0.26,0.316-0.28c0.108-0.006,0.191-0.024,0.287-0.074
+                       c0.236-0.127,0.481-0.172,0.71,0.027c0.129,0.11,0.294,0.066,0.447,0.05c0.068-0.006,0.105-0.113,0.046-0.139
+                       c-0.364-0.171-0.261-0.483-0.328-0.743c-0.018-0.082,0.032-0.142,0.096-0.195c0.114-0.093,0.077-0.206,0.007-0.284
+                       c-0.112-0.126-0.179-0.302-0.308-0.391c-0.208-0.142-0.29-0.253-0.184-0.475c0.038-0.082-0.088-0.211-0.122-0.324
+                       c-0.06-0.189-0.031-0.224,0.215-0.318c0.239-0.086,0.359-0.295,0.275-0.488c-0.029-0.069-0.067-0.136-0.093-0.207
+                       c-0.031-0.086,0.064-0.171,0.182-0.161c0.016,0,0.04-0.003,0.053,0.004c0.227,0.159,0.377-0.002,0.549-0.091
+                       c0.094-0.049,0.122-0.115,0.044-0.18c-0.11-0.089-0.127-0.204-0.172-0.315c-0.098-0.246-0.046-0.408,0.234-0.483
+                       c0.244-0.069,0.401-0.229,0.614-0.326c0.136-0.063,0.199-0.158,0.175-0.293c-0.01-0.071-0.008-0.147,0.007-0.218
+                       c0.026-0.149,0.125-0.2,0.299-0.151c0.134,0.037,0.258,0.084,0.404,0.062c0.094-0.013,0.187,0.018,0.211,0.098
+                       c0.024,0.069,0.068,0.118,0.122,0.158c0.053-0.032,0.105-0.065,0.148-0.1c0.117-0.096,0.292-0.136,0.435-0.211
+                       c0.197-0.104,0.201-0.149,0.065-0.342c-0.172-0.244-0.169-0.241,0.06-0.434c0.059-0.051,0.098-0.122,0.165-0.16
+                       c0.608-0.347,0.572-0.477,1.224-0.064c0.11,0.069,0.23,0.131,0.337,0.191c0.201-0.078,0.048-0.151,0.025-0.222
+                       c-0.039-0.114-0.108-0.224-0.11-0.338c-0.002-0.088,0.066-0.188-0.034-0.262c-0.263-0.19-0.176-0.363,0.022-0.538
+                       c0.112-0.105,0.22-0.211,0.327-0.318c0.146-0.144,0.318-0.182,0.529-0.12c0.105,0.032,0.217,0.049,0.327,0.071
+                       c0.145,0.027,0.318,0.204,0.428,0.031c0.081-0.124-0.093-0.257-0.205-0.361c-0.149-0.138-0.333-0.242-0.269-0.48
+                       c0.219-0.825-0.174-1.531-0.671-2.199c-0.14-0.185-0.111-0.302,0.04-0.433c0.095-0.084,0.189-0.19,0.308-0.23
+                       c0.217-0.075,0.306-0.208,0.309-0.383c0.011-0.493,0.457-0.664,0.872-0.856c0.101-0.047,0.236-0.045,0.322,0.017
+                       c0.233,0.173,0.545,0.084,0.798,0.185c0.074-0.322-0.027-0.604-0.251-0.863c-0.071-0.085-0.075-0.173,0-0.258
+                       c0.098-0.113,0.184-0.239,0.305-0.33c0.123-0.088,0.278-0.161,0.431-0.202c0.15-0.04,0.239,0.104,0.363,0.151
+                       c0.103,0.038,0.215,0.131,0.302,0.113c0.576-0.115,0.707,0.222,0.707,0.553c0,0.304,0.151,0.424,0.432,0.519
+                       c0.397,0.135,0.722,0.355,0.994,0.632c0.206,0.208,0.239,0.308,0.04,0.495c-0.214,0.2-0.31,0.438-0.439,0.67
+                       c-0.132,0.24-0.064,0.584-0.47,0.693c-0.008,0.002-0.009,0.047,0.002,0.064c0.009,0.018,0.042,0.045,0.06,0.04
+                       c0.079-0.015,0.165-0.029,0.234-0.065c0.354-0.19,0.703-0.386,1.052-0.583c0.206-0.115,0.395-0.133,0.622-0.016
+                       c0.193,0.1,0.366,0.213,0.524,0.348c0.363,0.315,0.39,0.384,0,0.684c-0.297,0.23-0.369,0.586-0.689,0.79
+                       c-0.031,0.02-0.016,0.088-0.024,0.136c-0.016,0.135,0.105,0.247,0.241,0.217c0.081-0.02,0.158-0.049,0.237-0.073
+                       c0.203-0.067,0.395-0.204,0.632-0.08c0.332,0.177,0.661,0.357,0.832,0.674c0.024,0.045-0.02,0.142-0.07,0.184
+                       c-0.156,0.136-0.323,0.262-0.498,0.38c-0.243,0.164-0.319,0.375-0.271,0.63c0.021,0.115,0.001,0.238,0.033,0.351
+                       c0.097,0.391,0.246,0.772,0.021,1.172c-0.053,0.093,0,0.234,0.017,0.351c0.024,0.193,0.141,0.287,0.378,0.311
+                       c0.619,0.065,0.849,0.142,1.22,0.473c0.009-0.002,0.014-0.004,0.026-0.006c0.205-0.018,0.375-0.163,0.6-0.118
+                       c0.035,0.006,0.096-0.033,0.125-0.065c0.083-0.092,0.196-0.184,0.224-0.29c0.038-0.136,0.081-0.216,0.266-0.199
+                       c0.125,0.012,0.184-0.066,0.242-0.141c0.084-0.112,0.201-0.147,0.354-0.153c0.184-0.006,0.228-0.078,0.182-0.222
+                       c-0.053-0.164-0.198-0.226-0.365-0.287c-0.168-0.059-0.194-0.113-0.094-0.233c0.091-0.109,0.098-0.173-0.026-0.256
+                       c-0.15-0.099-0.277-0.23-0.443-0.308c-0.174-0.084-0.328-0.153-0.33-0.351c-0.002-0.089-0.102-0.147-0.18-0.208
+                       c-0.102-0.083-0.2-0.167-0.291-0.253c-0.059-0.056-0.024-0.147,0.062-0.183c0.017-0.006,0.033-0.013,0.048-0.015
+                       c0.101-0.02,0.229-0.014,0.262-0.116c0.048-0.149,0.019-0.297-0.108-0.415c-0.117-0.108-0.255-0.198-0.378-0.304
+                       c-0.057-0.049,0-0.159,0.087-0.171c0.049-0.006,0.102-0.014,0.152-0.012c0.101,0.007,0.194,0.114,0.287,0.04
+                       c0.055-0.042,0.05-0.135,0.083-0.2c0.031-0.062,0.115-0.095,0.172-0.064c0.182,0.104,0.316,0.051,0.445-0.065
+                       c0.033-0.029,0.081-0.047,0.125-0.071c-0.221-0.184-0.221-0.184-0.215-0.446c0.003-0.253,0.005-0.259,0.313-0.279
+                       c0.108-0.006,0.194-0.024,0.289-0.075c0.237-0.124,0.482-0.171,0.71,0.027c0.129,0.112,0.294,0.067,0.448,0.051
+                       c0.067-0.006,0.104-0.113,0.045-0.14c-0.363-0.171-0.261-0.483-0.327-0.743c-0.022-0.081,0.031-0.141,0.096-0.194
+                       c0.115-0.093,0.073-0.207,0.007-0.285c-0.112-0.126-0.18-0.3-0.309-0.39c-0.207-0.142-0.288-0.254-0.186-0.475
+                       c0.038-0.083-0.087-0.211-0.12-0.324c-0.059-0.189-0.032-0.225,0.215-0.319c0.239-0.086,0.356-0.292,0.275-0.488
+                       c-0.028-0.069-0.066-0.135-0.092-0.206c-0.032-0.087,0.064-0.172,0.181-0.162c0.017,0,0.039-0.002,0.05,0.004
+                       c0.23,0.16,0.38-0.002,0.553-0.09c0.092-0.049,0.123-0.116,0.044-0.18c-0.11-0.089-0.129-0.205-0.173-0.313
+                       c-0.101-0.249-0.046-0.411,0.232-0.486c0.246-0.068,0.404-0.228,0.617-0.326c0.136-0.062,0.199-0.157,0.174-0.293
+                       c-0.011-0.071-0.007-0.147,0.006-0.218c0.029-0.149,0.127-0.199,0.301-0.151c0.134,0.038,0.258,0.085,0.404,0.063
+                       c0.093-0.014,0.187,0.018,0.211,0.098c0.04,0.126,0.148,0.18,0.265,0.249c0.134,0.08,0.217,0.2,0.425,0.151
+                       c0.108-0.027,0.185,0.071,0.192,0.169c0.019,0.235-0.015,0.468-0.094,0.695c-0.22,0.634-0.128,0.463,0.254,0.89
+                       c0.038,0.047,0.134,0.066,0.15,0.113c0.055,0.149,0.162,0.177,0.324,0.138c0.049-0.012,0.102-0.014,0.155-0.014
+                       c0.083-0.002,0.141,0.071,0.089,0.118c-0.127,0.115-0.201,0.236-0.149,0.399c0.011,0.033-0.017,0.09-0.048,0.118
+                       c-0.279,0.241-0.336,0.603-0.664,0.819c0.26,0.118,0.264,0.12,0.384-0.01c0.187-0.204,0.443-0.32,0.718-0.41
+                       c0.014-0.004,0.033,0.002,0.053,0.002c0.139-0.004,0.106-0.242,0.312-0.16c0.11,0.042,0.201,0.118,0.332,0.125
+                       c0.052,0.002,0.105,0.013,0.151,0.031c0.052,0.021,0.07,0.075,0.043,0.113c-0.046,0.063-0.112,0.11-0.165,0.169
+                       c-0.044,0.051-0.053,0.102-0.02,0.164c0.105,0.201,0.105,0.203-0.031,0.305c-0.143,0.108-0.285,0.212-0.379,0.362
+                       c-0.045,0.078-0.122,0.143-0.2,0.201c-0.093,0.067-0.224,0.098-0.296,0.174c-0.108,0.113-0.177,0.253-0.261,0.377
+                       c0.01,0.104,0.118,0.102,0.191,0.126c0.074,0.024,0.111,0.118,0.219,0.088c0.098-0.104-0.03-0.255,0.071-0.335
+                       c0.111-0.089,0.266-0.133,0.402-0.195c0.048-0.022,0.098-0.037,0.136-0.065c0.147-0.102,0.294-0.1,0.429-0.002
+                       c0.139,0.103,0.296,0.147,0.464,0.191c0.069,0.018,0.115,0.093,0.062,0.142c-0.237,0.217-0.349,0.503-0.607,0.71
+                       c-0.124,0.103-0.275,0.176-0.402,0.276c0.043,0.133,0.213,0.199,0.204,0.351c-0.01,0.123,0.139,0.157,0.227,0.222
+                       c0.108,0.08,0.122,0.152,0.025,0.224c-0.137,0.1-0.252,0.194-0.232,0.367c0.009,0.093-0.077,0.156-0.171,0.207
+                       c-0.205,0.11-0.399,0.237-0.607,0.343c-0.118,0.058-0.173,0.14-0.223,0.234l0.004,0.006c0.219-0.04,0.455-0.006,0.647-0.14
+                       c0.083-0.057,0.204-0.073,0.296-0.029c0.158,0.078,0.26,0.007,0.375-0.064c0.068-0.045,0.138-0.087,0.217-0.118
+                       c0.16-0.059,0.338,0.014,0.334,0.164c-0.002,0.14,0.02,0.176,0.187,0.138c0.085-0.02,0.156-0.049,0.23-0.089
+                       c0.116-0.064,0.193-0.033,0.224,0.076c0.021,0.068,0.03,0.141,0.048,0.215c0.024,0.093,0.175,0.183,0.065,0.277
+                       c-0.118,0.099-0.211,0.244-0.414,0.24c-0.091-0.002-0.176,0.006-0.241,0.059c-0.127,0.1-0.228,0.229-0.368,0.303
+                       c-0.141,0.073-0.339,0.066-0.444,0.204l0.002,0.002c0.108-0.016,0.205-0.004,0.291,0.057c0.08,0.058,0.161,0.114,0.252,0.175
+                       c0.088-0.088,0.158-0.171,0.241-0.239c0.125-0.102,0.28-0.063,0.313,0.08c0.016,0.069,0.002,0.144,0.002,0.23
+                       c0.158,0.04,0.297-0.038,0.44-0.071c0.087-0.017,0.165-0.033,0.254-0.008c0.094,0.024,0.152,0.098,0.114,0.167
+                       c-0.095,0.173-0.196,0.341-0.292,0.515c-0.077,0.139-0.218,0.17-0.382,0.194c-0.316,0.047-0.54,0.238-0.784,0.395
+                       c-0.041,0.028-0.05,0.087-0.008,0.116c0.034,0.024,0.103,0.037,0.139,0.024c0.08-0.029,0.146-0.08,0.219-0.118
+                       c0.048-0.024,0.119-0.037,0.134,0.013c0.055,0.175,0.22,0.203,0.394,0.236c0.103,0.02,0.116,0.093,0.037,0.169
+                       c-0.07,0.066-0.149,0.126-0.215,0.193c-0.087,0.084-0.07,0.177,0.06,0.202c0.187,0.035,0.277,0.102,0.248,0.27
+                       c-0.009,0.052,0.06,0.087,0.103,0.061c0.261-0.159,0.39-0.033,0.542,0.136c0.115,0.129,0.031,0.186-0.017,0.3
+                       c-0.126,0.294-0.377,0.424-0.697,0.518c-0.142,0.045-0.268,0.13-0.397,0.201c-0.019,0.008-0.026,0.055-0.015,0.073
+                       c0.015,0.021,0.052,0.035,0.083,0.041c0.129,0.02,0.241-0.006,0.333-0.091c0.124-0.11,0.261-0.139,0.419-0.041
+                       c0.112,0.073,0.229,0.053,0.341-0.002c0.046-0.022,0.091-0.047,0.141-0.061c0.187-0.057,0.302,0.003,0.312,0.177
+                       c0.004,0.093-0.044,0.165,0.143,0.147c0.208-0.018,0.298,0.079,0.236,0.238c-0.128,0.33-0.335,0.606-0.796,0.685
+                       c0.049,0.081,0.099,0.158,0.145,0.234c0.05,0.08,0.125,0.098,0.217,0.059c0.062-0.027,0.117-0.064,0.182-0.086
+                       c0.121-0.04,0.22,0.018,0.2,0.122c-0.029,0.17-0.036,0.33-0.241,0.459c-0.22,0.135-0.387,0.338-0.562,0.521
+                       c-0.122,0.126-0.187,0.254-0.049,0.435c0.126,0.173,0.095,0.393-0.053,0.575c-0.054,0.065-0.103,0.126-0.032,0.198
+                       c0.062,0.063,0.151,0.059,0.242,0.047c0.173-0.022,0.344-0.045,0.519-0.061c0.088-0.006,0.189,0,0.234,0.069
+                       c0.118,0.179,0.271,0.136,0.441,0.073c0.184-0.066,0.377-0.051,0.569-0.024c0.158,0.02,0.217,0.142,0.141,0.269
+                       c-0.031,0.051-0.079,0.098-0.11,0.149c-0.06,0.1-0.277,0.015-0.277,0.155c0,0.08,0.077,0.158,0.105,0.24
+                       c0.019,0.059-0.007,0.117-0.072,0.155c-0.042,0.024-0.095,0.037-0.134,0.064c-0.102,0.073-0.081,0.147,0.055,0.189
+                       c0.241,0.073,0.478,0.167,0.739,0.153c-0.028-0.039-0.028-0.082,0.026-0.128c0.055-0.051,0.11-0.102,0.167-0.151
+                       c0.287-0.239,0.373-0.264,0.707-0.071c0.295,0.169,0.627,0.289,0.885,0.505c0.146,0.121,0.366,0.161,0.502,0.312
+                       c0.061,0.067,0.182,0.01,0.28-0.035c-0.166-0.181-0.399-0.295-0.562-0.476c-0.063-0.068-0.11-0.125-0.122-0.208
+                       c-0.007-0.069-0.029-0.122-0.117-0.164c-0.146-0.073-0.162-0.238-0.101-0.322c0.101-0.13-0.029-0.278,0.096-0.393
+                       c0.045-0.042,0.02-0.104-0.02-0.153c-0.172-0.224-0.251-0.478-0.292-0.737c-0.022-0.131-0.074-0.238-0.204-0.318
+                       c-0.052-0.031-0.1-0.071-0.146-0.108c-0.23-0.183-0.239-0.213-0.099-0.462c0.027-0.051,0.083-0.098,0.021-0.144
+                       c-0.151-0.11-0.239-0.255-0.334-0.399c-0.046-0.066-0.187-0.088-0.182-0.18c0.007-0.124,0.158-0.166,0.248-0.242
+                       c0.07-0.053,0.172-0.08,0.253-0.122c0.115-0.059,0.118-0.086,0.039-0.2c-0.098-0.141-0.098-0.141,0.037-0.253
+                       c0.033-0.029,0.057-0.071,0.095-0.093c0.354-0.202,0.332-0.277,0.713-0.037c0.064,0.039,0.133,0.075,0.198,0.113
+                       c0.115-0.046,0.027-0.09,0.011-0.131c-0.02-0.064-0.062-0.131-0.062-0.196c-0.002-0.052,0.039-0.109-0.021-0.152
+                       c-0.155-0.113-0.101-0.212,0.011-0.315c0.067-0.059,0.129-0.121,0.194-0.184c0.083-0.084,0.184-0.106,0.305-0.071
+                       c0.063,0.018,0.127,0.03,0.191,0.042c0.085,0.016,0.184,0.12,0.25,0.018c0.048-0.073-0.055-0.151-0.12-0.211
+                       c-0.086-0.08-0.193-0.141-0.157-0.279c0.128-0.479-0.101-0.892-0.39-1.281c-0.079-0.106-0.064-0.175,0.024-0.253
+                       c0.057-0.049,0.11-0.11,0.18-0.133c0.127-0.045,0.178-0.122,0.181-0.224c0.006-0.289,0.263-0.389,0.507-0.499
+                       c0.059-0.027,0.137-0.027,0.187,0.011c0.136,0.1,0.318,0.049,0.467,0.106c0.055,0.134,0.239,0.134,0.329,0.232
+                       c0.005,0.006,0.062-0.008,0.079-0.024c0.016-0.018,0.028-0.055,0.016-0.075c-0.018-0.034-0.052-0.079-0.09-0.087
+                       c-0.108-0.022-0.222-0.031-0.334-0.045c0.042-0.186-0.017-0.353-0.146-0.501c-0.044-0.051-0.046-0.102-0.003-0.151
+                       c0.061-0.066,0.108-0.142,0.18-0.193c0.072-0.053,0.163-0.095,0.251-0.117c0.088-0.024,0.139,0.059,0.211,0.088
+                       c0.062,0.022,0.127,0.075,0.177,0.065c0.334-0.067,0.413,0.129,0.411,0.322c0,0.177,0.088,0.247,0.253,0.304
+                       c0.232,0.078,0.421,0.206,0.579,0.369c0.12,0.122,0.139,0.179,0.024,0.286c-0.125,0.118-0.18,0.256-0.255,0.393
+                       c-0.077,0.138-0.039,0.34-0.276,0.403c-0.005,0.002-0.005,0.027,0.002,0.037c0.006,0.011,0.024,0.027,0.037,0.024
+                       c0.045-0.01,0.095-0.018,0.133-0.038c0.208-0.11,0.412-0.226,0.615-0.34c0.12-0.068,0.23-0.076,0.362-0.009
+                       c0.115,0.058,0.215,0.124,0.306,0.202c0.21,0.183,0.228,0.225,0,0.4c-0.174,0.133-0.214,0.339-0.401,0.459
+                       c-0.017,0.012-0.01,0.051-0.013,0.078c-0.013,0.08,0.059,0.147,0.139,0.126c0.048-0.011,0.094-0.027,0.139-0.041
+                       c0.119-0.038,0.229-0.12,0.365-0.047c0.193,0.104,0.387,0.208,0.485,0.392c0.014,0.027-0.009,0.085-0.038,0.109
+                       c-0.091,0.078-0.189,0.151-0.292,0.22c-0.141,0.098-0.187,0.22-0.158,0.368c0.011,0.067,0.002,0.138,0.019,0.205
+                       c0.057,0.226,0.143,0.45,0.011,0.683c-0.031,0.053,0.002,0.136,0.009,0.204c0.015,0.112,0.084,0.167,0.221,0.181
+                       c0.415,0.045,0.531,0.097,0.815,0.375c-0.036,0.113-0.145,0.177-0.234,0.257c-0.096,0.089-0.168,0.171-0.058,0.289
+                       c0.031,0.035,0.01,0.08-0.026,0.11c-0.052,0.051-0.124,0.093-0.103,0.175c0.039,0.142-0.231,0.305-0.019,0.409
+                       c0.153,0.075,0.26-0.129,0.4-0.193c0.134-0.063,0.222-0.078,0.349,0.004c0.105,0.069,0.2,0.136,0.279,0.226
+                       c0.15,0.173,0.163,0.175-0.018,0.344c-0.094,0.087-0.137,0.175-0.173,0.287c-0.05,0.157-0.112,0.361-0.095,0.477
+                       c0.008,0.057,0,0.108-0.054,0.149c-0.102,0.075-0.057,0.153,0.003,0.218c0.139,0.146,0.183,0.279-0.003,0.43
+                       c-0.079,0.066-0.097,0.169-0.062,0.273c0.022,0.065,0.026,0.133,0.036,0.202c0.008,0.047,0.008,0.091,0.003,0.133
+                       c0.073,0.002,0.057-0.05,0.049-0.086c-0.023-0.126,0.039-0.207,0.184-0.218c0.206-0.018,0.375-0.165,0.603-0.12
+                       c0.033,0.01,0.095-0.031,0.125-0.062c0.083-0.093,0.194-0.185,0.224-0.291c0.038-0.135,0.079-0.218,0.262-0.198
+                       c0.125,0.012,0.187-0.067,0.243-0.144c0.084-0.108,0.203-0.144,0.356-0.151c0.182-0.006,0.224-0.08,0.18-0.222
+                       c-0.051-0.164-0.197-0.226-0.364-0.286c-0.167-0.061-0.193-0.114-0.093-0.234c0.09-0.108,0.095-0.173-0.026-0.255
+                       c-0.151-0.1-0.28-0.23-0.443-0.308c-0.174-0.085-0.327-0.153-0.332-0.35c-0.002-0.089-0.103-0.149-0.18-0.209
+                       c-0.101-0.082-0.198-0.166-0.292-0.253c-0.057-0.055-0.022-0.149,0.064-0.182c0.015-0.006,0.032-0.014,0.048-0.018
+                       c0.098-0.02,0.23-0.012,0.261-0.114c0.048-0.149,0.019-0.3-0.108-0.414c-0.115-0.108-0.255-0.198-0.375-0.305
+                       c-0.059-0.048,0-0.159,0.083-0.172c0.051-0.007,0.105-0.012,0.156-0.01c0.099,0.004,0.194,0.114,0.287,0.04
+                       c0.055-0.045,0.051-0.136,0.083-0.202c0.031-0.061,0.112-0.093,0.17-0.063c0.182,0.105,0.316,0.051,0.445-0.065
+                       c0.033-0.031,0.081-0.047,0.123-0.07c-0.216-0.187-0.216-0.187-0.214-0.446c0.004-0.253,0.004-0.26,0.315-0.28
+                       c0.108-0.006,0.193-0.024,0.289-0.075c0.237-0.126,0.481-0.171,0.71,0.028c0.127,0.11,0.292,0.064,0.447,0.05
+                       c0.065-0.005,0.103-0.113,0.044-0.139c-0.362-0.171-0.258-0.483-0.325-0.743c-0.022-0.082,0.029-0.144,0.093-0.195
+                       c0.116-0.093,0.077-0.208,0.008-0.284c-0.112-0.126-0.177-0.302-0.309-0.391c-0.208-0.142-0.289-0.253-0.184-0.475
+                       c0.038-0.082-0.086-0.212-0.122-0.324c-0.058-0.191-0.03-0.226,0.218-0.318c0.239-0.088,0.356-0.295,0.275-0.489
+                       c-0.029-0.068-0.069-0.135-0.096-0.206c-0.031-0.086,0.067-0.171,0.182-0.161c0.017,0,0.041-0.003,0.05,0.004
+                       c0.23,0.157,0.382-0.002,0.553-0.093c0.092-0.047,0.121-0.113,0.044-0.177c-0.112-0.089-0.129-0.204-0.174-0.315
+                       c-0.099-0.246-0.046-0.408,0.234-0.485c0.246-0.067,0.404-0.227,0.616-0.324c0.137-0.063,0.197-0.158,0.175-0.295
+                       c-0.011-0.069-0.009-0.144,0.004-0.216c0.029-0.149,0.125-0.202,0.299-0.151c0.135,0.037,0.259,0.084,0.405,0.062
+                       c0.093-0.013,0.187,0.018,0.21,0.098c0.041,0.126,0.151,0.181,0.268,0.249c0.134,0.079,0.216,0.2,0.423,0.152
+                       c0.11-0.028,0.186,0.071,0.193,0.168c0.017,0.236-0.016,0.468-0.093,0.695c-0.22,0.635-0.129,0.464,0.251,0.89
+                       c0.041,0.047,0.134,0.067,0.153,0.114c0.052,0.148,0.16,0.177,0.32,0.137c0.05-0.011,0.105-0.014,0.156-0.014
+                       c0.083-0.002,0.141,0.07,0.088,0.118c-0.123,0.116-0.198,0.236-0.145,0.397c0.009,0.036-0.017,0.093-0.05,0.12
+                       c-0.28,0.242-0.335,0.601-0.665,0.819c0.263,0.118,0.266,0.12,0.385-0.011c0.187-0.202,0.443-0.32,0.72-0.411
+                       c0.015-0.004,0.033,0.004,0.05,0.004c0.139-0.006,0.11-0.241,0.316-0.159c0.108,0.042,0.201,0.118,0.33,0.124
+                       c0.053,0.002,0.105,0.013,0.151,0.031c0.055,0.022,0.071,0.075,0.043,0.114c-0.047,0.062-0.111,0.11-0.163,0.169
+                       c-0.045,0.048-0.055,0.1-0.021,0.161c0.108,0.202,0.104,0.204-0.03,0.306c-0.143,0.109-0.284,0.213-0.377,0.362
+                       c-0.047,0.075-0.124,0.144-0.2,0.202c-0.094,0.064-0.227,0.098-0.296,0.173c-0.108,0.114-0.177,0.251-0.261,0.377
+                       c0.009,0.105,0.115,0.1,0.189,0.124c0.077,0.024,0.112,0.12,0.217,0.089c0.099-0.102-0.026-0.253,0.075-0.336
+                       c0.108-0.086,0.265-0.131,0.401-0.195c0.046-0.019,0.096-0.035,0.136-0.064c0.143-0.1,0.294-0.098,0.428,0
+                       c0.136,0.1,0.296,0.147,0.465,0.188c0.068,0.02,0.114,0.096,0.06,0.144c-0.235,0.216-0.35,0.503-0.605,0.711
+                       c-0.127,0.102-0.275,0.175-0.402,0.275c0.041,0.133,0.213,0.2,0.201,0.35c-0.007,0.124,0.137,0.157,0.229,0.222
+                       c0.108,0.08,0.122,0.153,0.024,0.224c-0.138,0.1-0.253,0.193-0.234,0.366c0.013,0.095-0.073,0.155-0.167,0.206
+                       c-0.206,0.113-0.399,0.24-0.61,0.344c-0.114,0.057-0.172,0.142-0.222,0.235l0.007,0.007c0.215-0.04,0.452-0.01,0.647-0.14
+                       c0.083-0.057,0.203-0.073,0.296-0.029c0.155,0.075,0.26,0.004,0.372-0.065c0.069-0.045,0.142-0.086,0.221-0.117
+                       c0.158-0.061,0.336,0.013,0.334,0.161c-0.002,0.142,0.02,0.177,0.184,0.139c0.086-0.021,0.156-0.048,0.229-0.088
+                       c0.118-0.064,0.194-0.033,0.228,0.073c0.022,0.071,0.026,0.144,0.046,0.216c0.023,0.095,0.174,0.184,0.064,0.279
+                       c-0.114,0.098-0.208,0.244-0.411,0.239c-0.09-0.001-0.18,0.007-0.244,0.061c-0.125,0.1-0.228,0.226-0.369,0.302
+                       c-0.141,0.073-0.34,0.067-0.442,0.204v0.003c0.108-0.016,0.207-0.007,0.293,0.057c0.077,0.057,0.158,0.11,0.252,0.175
+                       c0.088-0.089,0.156-0.171,0.241-0.24c0.121-0.104,0.277-0.062,0.314,0.081c0.016,0.068,0.002,0.143,0.002,0.23
+                       c0.158,0.039,0.293-0.038,0.437-0.071c0.086-0.018,0.165-0.034,0.253-0.012c0.096,0.028,0.153,0.101,0.118,0.169
+                       c-0.096,0.171-0.199,0.342-0.292,0.515c-0.079,0.138-0.217,0.171-0.382,0.193c-0.318,0.047-0.542,0.24-0.785,0.397
+                       c-0.042,0.027-0.05,0.086-0.009,0.115c0.033,0.022,0.103,0.038,0.141,0.024c0.077-0.029,0.144-0.08,0.219-0.117
+                       c0.045-0.025,0.117-0.038,0.133,0.011c0.055,0.177,0.221,0.204,0.395,0.237c0.103,0.02,0.114,0.093,0.036,0.169
+                       c-0.069,0.067-0.15,0.124-0.215,0.193c-0.086,0.084-0.069,0.177,0.06,0.202c0.184,0.036,0.278,0.102,0.247,0.271
+                       c-0.01,0.051,0.06,0.087,0.103,0.061c0.26-0.16,0.389-0.034,0.545,0.135c0.114,0.129,0.028,0.187-0.02,0.3
+                       c-0.123,0.295-0.378,0.422-0.696,0.519c-0.143,0.042-0.269,0.126-0.4,0.198c-0.016,0.011-0.024,0.057-0.011,0.075
+                       c0.011,0.02,0.052,0.035,0.083,0.04c0.129,0.022,0.239-0.005,0.332-0.089c0.122-0.11,0.259-0.139,0.417-0.042
+                       c0.112,0.071,0.23,0.051,0.344-0.002c0.045-0.021,0.09-0.047,0.139-0.062c0.186-0.056,0.301,0.004,0.311,0.18
+                       c0.005,0.093-0.041,0.161,0.143,0.147c0.21-0.018,0.297,0.078,0.234,0.237c-0.127,0.331-0.335,0.606-0.794,0.686
+                       c0.05,0.08,0.098,0.158,0.146,0.233c0.05,0.08,0.121,0.098,0.215,0.058c0.062-0.025,0.119-0.063,0.184-0.085
+                       c0.119-0.039,0.217,0.018,0.2,0.122c-0.029,0.171-0.036,0.331-0.244,0.46c-0.22,0.135-0.388,0.335-0.56,0.519
+                       c-0.122,0.129-0.189,0.253-0.053,0.438c0.129,0.172,0.099,0.392-0.05,0.574c-0.052,0.065-0.105,0.127-0.031,0.195
+                       c0.062,0.065,0.151,0.059,0.241,0.049c0.169-0.024,0.344-0.045,0.516-0.059c0.089-0.008,0.191,0,0.237,0.069
+                       c0.118,0.18,0.268,0.135,0.441,0.072c0.181-0.068,0.375-0.05,0.567-0.027c0.158,0.023,0.22,0.142,0.143,0.272
+                       c-0.033,0.05-0.081,0.095-0.112,0.148c-0.06,0.101-0.275,0.016-0.278,0.156c0,0.08,0.08,0.157,0.109,0.239
+                       c0.018,0.061-0.008,0.118-0.072,0.153c-0.042,0.024-0.098,0.038-0.136,0.067c-0.101,0.073-0.079,0.147,0.057,0.189
+                       c0.292,0.088,0.577,0.217,0.909,0.135c0.064-0.015,0.142,0.014,0.167,0.078c0.026,0.067-0.024,0.112-0.077,0.149
+                       c-0.084,0.054-0.163,0.14-0.253,0.151c-0.217,0.027-0.335,0.171-0.45,0.283c-0.148,0.139-0.277,0.288-0.476,0.388
+                       c-0.121,0.063-0.215,0.173-0.158,0.303c0.063,0.141-0.005,0.241-0.124,0.303c-0.228,0.116-0.412,0.27-0.605,0.416
+                       c-0.05,0.035-0.125,0.066-0.187,0.066c-0.129,0-0.237,0.015-0.316,0.114c-0.106,0.133-0.251,0.249-0.282,0.418
+                       c-0.002,0.014,0,0.03,0.002,0.042c0.02,0.136,0.468,0.446,0.624,0.399c0.285-0.084,0.55-0.013,0.823,0.022
+                       c0.272,0.035,0.547,0.085,0.824,0.031c0.034-0.004,0.07-0.004,0.106-0.004c0.048,0,0.095,0.002,0.145,0.004
+                       c-0.081-0.053-0.158-0.113-0.227-0.184c-0.034-0.033-0.056-0.082-0.017-0.12c0.029-0.031,0.077-0.062,0.122-0.068
+                       c0.175-0.028,0.347-0.014,0.509,0.057c0.109,0.047,0.214,0.096,0.342,0.151c0.127-0.156,0.287-0.258,0.512-0.279
+                       c0.079-0.01,0.101-0.093,0.046-0.136c-0.081-0.057-0.156-0.124-0.246-0.161c-0.126-0.054-0.191-0.127-0.187-0.242
+                       c0.005-0.114-0.072-0.187-0.153-0.269c-0.124-0.129-0.084-0.246,0.083-0.315c0.192-0.078,0.381-0.07,0.546,0.034
+                       c0.12,0.078,0.177,0.047,0.239-0.047c0.038-0.057,0.11-0.063,0.184-0.069c0.341-0.027,0.683-0.057,1.025-0.086
+                       c0.081-0.007,0.18,0.1,0.23,0.017c0.042-0.069,0.04-0.186-0.005-0.255c-0.109-0.167-0.155-0.357-0.307-0.506
+                       c-0.055-0.053,0.007-0.167,0.091-0.176c0.239-0.025,0.48-0.039,0.723-0.059c0.293,0.147,0.475-0.057,0.74-0.137
+                       c-0.143-0.138-0.248-0.251-0.366-0.354c-0.163-0.147-0.339-0.239-0.595-0.157c-0.211,0.069-0.369,0.011-0.457-0.18
+                       c-0.086-0.185-0.27-0.309-0.461-0.411c-0.382-0.206-0.68-0.499-1.036-0.73c-0.037-0.022-0.062-0.075-0.059-0.114
+                       c0.004-0.07,0.083-0.082,0.15-0.098c0.129-0.031,0.328,0.054,0.383-0.069c0.074-0.17-0.195-0.172-0.277-0.275
+                       c-0.017-0.021-0.056-0.033-0.087-0.049c-0.152-0.066-0.38-0.143-0.347-0.286c0.042-0.19,0.32-0.161,0.485-0.149
+                       c0.287,0.024,0.538,0.009,0.779-0.133c0.079-0.045,0.204-0.036,0.294-0.047c0.087-0.108-0.059-0.129-0.075-0.191
+                       c-0.01-0.027-0.024-0.057-0.02-0.084c0.028-0.122,0.292-0.371,0.415-0.358c0.313,0.036,0.568-0.119,0.854-0.17
+                       c0.211-0.038,0.371-0.034,0.524,0.092c0.115,0.093,0.229,0.187,0.409,0.169c0.081-0.008,0.199,0.031,0.223-0.065
+                       c0.016-0.066-0.091-0.068-0.146-0.1c-0.153-0.082-0.112-0.239-0.178-0.355c-0.046-0.073,0.018-0.139,0.078-0.194
+                       c0.074-0.07,0.063-0.13-0.022-0.187c-0.04-0.028-0.073-0.062-0.117-0.087c-0.294-0.173-0.365-0.264-0.439-0.548
+                       c-0.028-0.108-0.11-0.177-0.23-0.226c-0.334-0.14-0.622-0.324-0.738-0.644c-0.03-0.08-0.106-0.108-0.175-0.153
+                       c-0.101-0.061-0.196-0.124-0.284-0.195c-0.087-0.067-0.106-0.147-0.017-0.23c0.059-0.053,0.117-0.11,0.16-0.173
+                       c0.139-0.204,0.283-0.404,0.296-0.652c0.009-0.13,0.067-0.136,0.191-0.045c0.024,0.02,0.044,0.059,0.068,0.062
+                       c0.08,0.007,0.064-0.049,0.057-0.086c-0.026-0.126,0.036-0.207,0.183-0.218c0.206-0.018,0.375-0.165,0.601-0.12
+                       c0.035,0.01,0.095-0.031,0.124-0.062c0.083-0.093,0.197-0.185,0.225-0.291c0.039-0.135,0.081-0.218,0.265-0.198
+                       c0.125,0.012,0.184-0.067,0.241-0.144c0.084-0.108,0.2-0.144,0.357-0.151c0.181-0.006,0.223-0.08,0.179-0.222
+                       c-0.05-0.164-0.198-0.226-0.366-0.286c-0.167-0.061-0.194-0.114-0.093-0.234c0.09-0.108,0.097-0.173-0.026-0.255
+                       c-0.151-0.1-0.277-0.23-0.443-0.308c-0.172-0.085-0.327-0.153-0.329-0.35c-0.002-0.089-0.103-0.149-0.18-0.209
+                       c-0.102-0.082-0.198-0.166-0.291-0.253c-0.061-0.055-0.025-0.149,0.062-0.182c0.016-0.006,0.031-0.014,0.049-0.018
+                       c0.098-0.02,0.228-0.012,0.261-0.114c0.048-0.149,0.02-0.3-0.108-0.414c-0.116-0.108-0.255-0.198-0.377-0.305
+                       c-0.057-0.048,0-0.159,0.086-0.172c0.05-0.007,0.103-0.012,0.153-0.01c0.098,0.004,0.193,0.114,0.287,0.04
+                       c0.055-0.045,0.049-0.136,0.083-0.202c0.031-0.061,0.115-0.093,0.172-0.063c0.182,0.105,0.316,0.051,0.445-0.065
+                       c0.033-0.031,0.079-0.047,0.124-0.07c-0.22-0.187-0.22-0.187-0.214-0.446c0.002-0.253,0.005-0.26,0.312-0.28
+                       c0.108-0.006,0.195-0.024,0.29-0.075c0.237-0.126,0.48-0.171,0.71,0.028c0.129,0.11,0.293,0.064,0.446,0.05
+                       c0.065-0.005,0.103-0.113,0.046-0.139c-0.363-0.171-0.261-0.483-0.327-0.743c-0.02-0.082,0.031-0.144,0.095-0.195
+                       c0.115-0.093,0.074-0.208,0.008-0.284c-0.114-0.126-0.18-0.302-0.311-0.391c-0.206-0.142-0.287-0.253-0.184-0.475
+                       c0.039-0.082-0.086-0.212-0.119-0.324c-0.059-0.191-0.031-0.226,0.215-0.318c0.238-0.088,0.356-0.295,0.275-0.489
+                       c-0.029-0.068-0.07-0.135-0.093-0.206c-0.031-0.086,0.064-0.171,0.181-0.161c0.017,0,0.041-0.003,0.05,0.004
+                       c0.23,0.157,0.38-0.002,0.553-0.093c0.09-0.047,0.122-0.113,0.042-0.177c-0.11-0.089-0.126-0.204-0.172-0.315
+                       c-0.101-0.246-0.046-0.408,0.232-0.485c0.246-0.067,0.403-0.227,0.617-0.324c0.136-0.063,0.198-0.158,0.174-0.295
+                       c-0.011-0.069-0.007-0.144,0.005-0.216c0.03-0.149,0.127-0.202,0.301-0.151c0.132,0.037,0.258,0.084,0.405,0.062
+                       c0.093-0.013,0.186,0.018,0.21,0.098c0.04,0.126,0.148,0.181,0.268,0.249c0.13,0.079,0.212,0.2,0.423,0.152
+                       c0.106-0.028,0.183,0.071,0.193,0.168c0.017,0.236-0.016,0.468-0.095,0.695c-0.22,0.635-0.129,0.464,0.254,0.89
+                       c0.038,0.047,0.133,0.067,0.15,0.114c0.055,0.148,0.164,0.177,0.323,0.137c0.05-0.011,0.103-0.014,0.156-0.014
+                       c0.081-0.002,0.141,0.07,0.088,0.118c-0.127,0.116-0.2,0.236-0.148,0.397c0.011,0.036-0.016,0.093-0.048,0.12
+                       c-0.281,0.242-0.338,0.601-0.665,0.819c0.261,0.118,0.265,0.12,0.384-0.011c0.187-0.202,0.443-0.32,0.717-0.411
+                       c0.015-0.004,0.037,0.004,0.053,0.004c0.139-0.006,0.108-0.241,0.313-0.159c0.11,0.042,0.2,0.118,0.332,0.124
+                       c0.051,0.002,0.103,0.013,0.151,0.031c0.053,0.022,0.07,0.075,0.044,0.114c-0.046,0.062-0.112,0.11-0.166,0.169
+                       c-0.042,0.048-0.052,0.1-0.021,0.161c0.108,0.202,0.105,0.204-0.03,0.306c-0.143,0.109-0.284,0.213-0.378,0.362
+                       c-0.047,0.075-0.121,0.144-0.2,0.202c-0.09,0.064-0.224,0.098-0.296,0.173c-0.108,0.114-0.177,0.251-0.261,0.377
+                       c0.009,0.105,0.118,0.1,0.191,0.124c0.077,0.024,0.113,0.12,0.217,0.089c0.098-0.102-0.028-0.253,0.072-0.336
+                       c0.111-0.086,0.265-0.131,0.402-0.195c0.046-0.019,0.098-0.035,0.136-0.064c0.146-0.1,0.296-0.098,0.428,0
+                       c0.14,0.1,0.296,0.147,0.464,0.188c0.07,0.02,0.116,0.096,0.063,0.144c-0.237,0.216-0.349,0.503-0.604,0.711
+                       c-0.127,0.102-0.278,0.175-0.405,0.275c0.043,0.133,0.213,0.2,0.204,0.35c-0.01,0.124,0.138,0.157,0.227,0.222
+                       c0.108,0.08,0.121,0.153,0.024,0.224c-0.136,0.1-0.253,0.193-0.232,0.366c0.01,0.095-0.075,0.155-0.169,0.206
+                       c-0.205,0.113-0.399,0.24-0.608,0.344c-0.116,0.057-0.172,0.142-0.222,0.235l0.008,0.007c0.214-0.04,0.451-0.01,0.642-0.14
+                       c0.085-0.057,0.204-0.073,0.296-0.029c0.158,0.075,0.261,0.004,0.376-0.065c0.069-0.045,0.139-0.086,0.218-0.117
+                       c0.16-0.061,0.336,0.013,0.334,0.161c-0.003,0.142,0.019,0.177,0.184,0.139c0.086-0.021,0.156-0.048,0.232-0.088
+                       c0.117-0.064,0.193-0.033,0.224,0.073c0.022,0.071,0.029,0.144,0.048,0.216c0.024,0.095,0.174,0.184,0.064,0.279
+                       c-0.117,0.098-0.209,0.244-0.413,0.239c-0.092-0.001-0.176,0.007-0.244,0.061c-0.125,0.1-0.225,0.226-0.366,0.302
+                       c-0.141,0.073-0.34,0.067-0.444,0.204l0.002,0.003c0.104-0.016,0.205-0.007,0.293,0.057c0.077,0.057,0.158,0.11,0.249,0.175
+                       c0.088-0.089,0.158-0.171,0.242-0.24c0.105-0.089,0.232-0.066,0.287,0.031c0.029-0.002,0.06-0.006,0.088-0.006
+                       c0.098,0.004,0.191,0.114,0.287,0.04c0.055-0.042,0.049-0.136,0.083-0.2c0.031-0.063,0.112-0.096,0.17-0.065
+                       c0.182,0.104,0.316,0.051,0.444-0.065c0.034-0.029,0.082-0.047,0.125-0.07c-0.217-0.185-0.217-0.185-0.215-0.446
+                       c0.006-0.253,0.006-0.26,0.316-0.28c0.108-0.006,0.194-0.024,0.287-0.074c0.237-0.127,0.481-0.172,0.713,0.027
+                       c0.126,0.11,0.291,0.064,0.444,0.05c0.067-0.006,0.105-0.113,0.046-0.139c-0.361-0.171-0.259-0.483-0.327-0.743
+                       c-0.019-0.082,0.031-0.142,0.095-0.195c0.044-0.033,0.057-0.071,0.064-0.108c-0.095-0.093-0.136-0.167-0.121-0.262
+                       c-0.079-0.11-0.141-0.233-0.244-0.304c-0.208-0.142-0.289-0.253-0.184-0.475c0.038-0.082-0.086-0.213-0.122-0.324
+                       c-0.045-0.147-0.036-0.202,0.085-0.259c-0.101-0.068-0.237-0.118-0.23-0.238c0.014-0.211,0.272-0.287,0.428-0.413
+                       c0.039-0.029,0.081-0.053,0.127-0.075c-0.002-0.008-0.007-0.018-0.013-0.027c-0.031-0.088,0.065-0.171,0.182-0.161
+                       c0.017,0,0.041-0.003,0.05,0.004c0.033,0.021,0.062,0.037,0.091,0.047c0.193-0.103,0.199-0.149,0.063-0.34
+                       c-0.17-0.242-0.17-0.242,0.062-0.435c0.057-0.05,0.096-0.121,0.163-0.159c0.011-0.008,0.024-0.014,0.035-0.022
+                       c0.041-0.071,0.115-0.126,0.245-0.159c0.023-0.007,0.042-0.018,0.067-0.027c0.072-0.045,0.134-0.074,0.191-0.091
+                       c0.12-0.071,0.23-0.151,0.359-0.208c0.133-0.063,0.196-0.158,0.172-0.295c-0.009-0.069-0.008-0.144,0.007-0.216
+                       c0.029-0.149,0.125-0.2,0.299-0.151c0.008,0.002,0.013,0.004,0.017,0.004c0.022-0.022,0.046-0.047,0.072-0.069
+                       c0.112-0.102,0.222-0.21,0.33-0.317c0.144-0.144,0.316-0.183,0.526-0.12c0.108,0.031,0.218,0.049,0.328,0.071
+                       c0.146,0.025,0.318,0.204,0.43,0.031c0.079-0.124-0.096-0.258-0.208-0.362c-0.149-0.137-0.329-0.242-0.268-0.479
+                       c0.22-0.825-0.172-1.532-0.672-2.2c-0.136-0.184-0.11-0.302,0.043-0.432c0.095-0.085,0.187-0.19,0.306-0.23
+                       c0.217-0.075,0.305-0.209,0.311-0.384c0.009-0.492,0.454-0.663,0.87-0.856c0.103-0.047,0.235-0.045,0.323,0.017
+                       c0.235,0.174,0.546,0.085,0.797,0.185c0.077-0.322-0.026-0.603-0.248-0.864c-0.074-0.084-0.077-0.173-0.002-0.257
+                       c0.099-0.114,0.183-0.24,0.305-0.33c0.123-0.089,0.277-0.163,0.433-0.203c0.151-0.039,0.237,0.104,0.361,0.151
+                       c0.103,0.038,0.217,0.132,0.301,0.114c0.577-0.116,0.71,0.222,0.707,0.552c0,0.304,0.151,0.424,0.434,0.519
+                       c0.399,0.136,0.723,0.355,0.994,0.633c0.205,0.208,0.239,0.308,0.041,0.495c-0.216,0.199-0.309,0.437-0.441,0.672
+                       c-0.132,0.237-0.064,0.581-0.472,0.689c-0.007,0.003-0.009,0.047,0.002,0.065c0.013,0.018,0.046,0.045,0.062,0.04
+                       c0.079-0.016,0.166-0.029,0.233-0.065c0.353-0.191,0.705-0.387,1.052-0.583c0.207-0.116,0.397-0.134,0.624-0.016
+                       c0.193,0.102,0.364,0.212,0.521,0.35c0.364,0.313,0.39,0.381,0,0.682c-0.297,0.23-0.365,0.585-0.688,0.789
+                       c-0.029,0.02-0.015,0.089-0.022,0.136c-0.02,0.135,0.105,0.249,0.241,0.217c0.079-0.019,0.158-0.049,0.235-0.073
+                       c0.204-0.066,0.395-0.204,0.632-0.08c0.332,0.177,0.664,0.358,0.831,0.676c0.024,0.044-0.02,0.141-0.067,0.184
+                       c-0.156,0.135-0.325,0.261-0.499,0.379c-0.245,0.165-0.322,0.375-0.273,0.63c0.022,0.116,0.005,0.238,0.033,0.354
+                       c0.098,0.388,0.246,0.77,0.022,1.169c-0.009,0.017-0.015,0.04-0.016,0.059c0.112-0.078,0.162-0.182,0.165-0.31
+                       c0.009-0.493,0.454-0.664,0.87-0.857c0.103-0.047,0.235-0.047,0.32,0.018c0.237,0.173,0.548,0.084,0.801,0.182
+                       c0.075-0.32-0.029-0.601-0.251-0.86c-0.072-0.084-0.077-0.173,0-0.26c0.098-0.11,0.182-0.239,0.306-0.328
+                       c0.119-0.091,0.276-0.163,0.43-0.202c0.151-0.04,0.237,0.104,0.362,0.151c0.102,0.037,0.218,0.129,0.301,0.114
+                       c0.576-0.116,0.71,0.221,0.707,0.551c0,0.305,0.151,0.424,0.434,0.52c0.398,0.135,0.722,0.355,0.995,0.632
+                       c0.208,0.209,0.239,0.309,0.04,0.493c-0.215,0.202-0.308,0.439-0.439,0.672c-0.132,0.237-0.065,0.583-0.471,0.692
+                       c-0.007,0.002-0.009,0.044,0.003,0.065c0.008,0.017,0.045,0.044,0.062,0.039c0.079-0.016,0.165-0.029,0.231-0.067
+                       c0.354-0.188,0.706-0.383,1.055-0.581c0.206-0.116,0.395-0.134,0.621-0.016c0.191,0.1,0.363,0.213,0.521,0.348
+                       c0.364,0.313,0.393,0.382,0,0.684c-0.296,0.23-0.365,0.583-0.686,0.79c-0.031,0.02-0.017,0.088-0.024,0.135
+                       c-0.019,0.136,0.105,0.249,0.242,0.216c0.079-0.018,0.158-0.047,0.234-0.071c0.205-0.067,0.396-0.207,0.631-0.08
+                       c0.333,0.177,0.665,0.357,0.832,0.674c0.024,0.045-0.016,0.142-0.066,0.184c-0.156,0.136-0.325,0.26-0.498,0.379
+                       c-0.246,0.165-0.323,0.374-0.275,0.629c0.019,0.1,0.011,0.204,0.028,0.304c0.011-0.015,0.026-0.033,0.038-0.049
+                       c0.041-0.055,0.096-0.065,0.168-0.051c0.095,0.018,0.093-0.04,0.105-0.096c0.022-0.084,0.093-0.12,0.182-0.071
+                       c0.098,0.05,0.181,0.116,0.272,0.173c0.051,0.034,0.11,0.098,0.156,0.091c0.319-0.045,0.499,0.244,0.803,0.238
+                       c0.057-0.002,0.148,0.029,0.172,0.066c0.115,0.198,0.33,0.138,0.514,0.153c0.063,0.006,0.144-0.006,0.151-0.075
+                       c0.007-0.073-0.048-0.133-0.132-0.157c-0.044-0.013-0.096-0.01-0.144-0.013c-0.229-0.02-0.286-0.036-0.299-0.199
+                       c-0.022-0.259-0.215-0.394-0.449-0.485c-0.219-0.084-0.199-0.269-0.3-0.397c-0.018-0.027,0.027-0.118,0.072-0.142
+                       c0.169-0.1,0.281-0.253,0.468-0.346c0.137-0.069,0.184-0.088,0.324-0.004c0.203,0.126,0.44,0.226,0.676,0.304
+                       c0.112,0.036,0.182,0.112,0.294,0.154c0.079-0.156,0.121-0.297,0.007-0.462c-0.062-0.089-0.052-0.213-0.083-0.32
+                       c-0.041-0.131-0.122-0.23-0.299-0.23c-0.116,0-0.175-0.065-0.234-0.131c-0.2-0.236-0.414-0.46-0.716-0.613
+                       c-0.208-0.104-0.314-0.271-0.307-0.486c0.007-0.235-0.022-0.468-0.139-0.69c-0.108-0.208-0.002-0.401,0.108-0.61
+                       c-0.137-0.089-0.234-0.213-0.342-0.336c-0.187-0.219-0.196-0.257,0-0.437c0.213-0.198,0.334-0.22,0.648-0.116
+                       c0.046,0.014,0.083,0.045,0.129,0.051c0.072,0.012,0.125-0.024,0.158-0.075c0.036-0.051,0.041-0.1-0.022-0.143
+                       c-0.203-0.147-0.198-0.149-0.316-0.458c-0.014-0.036-0.057-0.065-0.091-0.093c-0.065-0.055-0.092-0.11-0.017-0.177
+                       c0.057-0.049,0.11-0.1,0.168-0.149c0.286-0.239,0.372-0.264,0.707-0.071c0.294,0.167,0.626,0.289,0.887,0.504
+                       c0.146,0.121,0.364,0.161,0.5,0.31c0.062,0.069,0.181,0.008,0.282-0.036c-0.167-0.177-0.402-0.292-0.562-0.472
+                       c-0.064-0.072-0.112-0.126-0.121-0.209c-0.01-0.071-0.031-0.124-0.118-0.166c-0.145-0.071-0.165-0.236-0.1-0.32
+                       c0.098-0.132-0.028-0.278,0.093-0.393c0.046-0.042,0.02-0.104-0.019-0.153c-0.172-0.227-0.251-0.478-0.292-0.739
+                       c-0.021-0.129-0.071-0.238-0.203-0.315c-0.052-0.031-0.098-0.071-0.146-0.108c-0.229-0.183-0.239-0.214-0.099-0.462
+                       c0.029-0.051,0.084-0.098,0.022-0.144c-0.149-0.11-0.237-0.257-0.335-0.399c-0.046-0.066-0.186-0.088-0.182-0.182
+                       c0.007-0.122,0.16-0.167,0.251-0.24c0.068-0.055,0.17-0.08,0.254-0.122c0.115-0.059,0.118-0.088,0.039-0.2
+                       c-0.101-0.141-0.101-0.141,0.033-0.253c0.033-0.031,0.057-0.071,0.095-0.092c0.354-0.204,0.333-0.28,0.715-0.038
+                       c0.064,0.04,0.132,0.075,0.196,0.112c0.118-0.047,0.026-0.089,0.015-0.13c-0.024-0.066-0.065-0.131-0.065-0.198
+                       c-0.002-0.053,0.039-0.11-0.018-0.153c-0.156-0.11-0.103-0.21,0.009-0.312c0.067-0.061,0.132-0.125,0.193-0.187
+                       c0.083-0.082,0.184-0.104,0.309-0.069c0.06,0.018,0.124,0.029,0.189,0.04c0.086,0.015,0.186,0.119,0.251,0.02
+                       c0.046-0.073-0.055-0.152-0.121-0.211c-0.086-0.08-0.191-0.142-0.156-0.279c0.127-0.482-0.101-0.892-0.392-1.282
+                       c-0.079-0.107-0.062-0.174,0.026-0.252c0.055-0.049,0.108-0.11,0.177-0.135c0.129-0.045,0.179-0.122,0.181-0.222
+                       c0.006-0.289,0.266-0.389,0.508-0.499c0.059-0.027,0.136-0.027,0.189,0.008c0.136,0.1,0.315,0.049,0.464,0.106v0.002h0.002
+                       c0.053,0.132,0.239,0.132,0.328,0.229c0.005,0.006,0.062-0.007,0.079-0.022c0.017-0.018,0.029-0.055,0.017-0.075
+                       c-0.02-0.034-0.053-0.078-0.088-0.087c-0.11-0.022-0.223-0.031-0.335-0.045l-0.002-0.002c0.042-0.186-0.014-0.35-0.146-0.501
+                       c-0.042-0.049-0.045-0.1,0-0.151c0.058-0.065,0.108-0.14,0.177-0.193c0.072-0.051,0.162-0.093,0.251-0.117
+                       c0.089-0.023,0.141,0.062,0.213,0.088c0.061,0.022,0.127,0.076,0.175,0.067c0.337-0.067,0.413,0.129,0.413,0.322
+                       c0,0.177,0.086,0.246,0.252,0.302c0.231,0.08,0.42,0.208,0.579,0.369c0.121,0.122,0.141,0.179,0.023,0.288
+                       c-0.124,0.118-0.179,0.256-0.255,0.391c-0.077,0.14-0.039,0.342-0.276,0.404c-0.002,0-0.005,0.027,0.003,0.038
+                       c0.005,0.011,0.027,0.024,0.036,0.022c0.046-0.008,0.096-0.016,0.136-0.038c0.206-0.11,0.408-0.224,0.612-0.339
+                       c0.122-0.067,0.229-0.078,0.363-0.01c0.112,0.061,0.214,0.124,0.304,0.204c0.213,0.183,0.227,0.222,0,0.397
+                       c-0.173,0.136-0.213,0.342-0.402,0.462c-0.017,0.011-0.007,0.051-0.011,0.078c-0.013,0.08,0.061,0.147,0.141,0.126
+                       c0.045-0.011,0.09-0.027,0.136-0.041c0.119-0.038,0.229-0.12,0.369-0.047c0.192,0.102,0.387,0.208,0.482,0.392
+                       c0.015,0.027-0.008,0.083-0.038,0.109c-0.091,0.078-0.189,0.151-0.289,0.22c-0.143,0.096-0.189,0.217-0.16,0.366
+                       c0.013,0.068,0.003,0.139,0.02,0.206c0.057,0.226,0.144,0.448,0.011,0.681c-0.028,0.056,0.003,0.135,0.013,0.204
+                       c0.014,0.114,0.084,0.169,0.22,0.183c0.417,0.044,0.531,0.096,0.814,0.373c-0.034,0.113-0.146,0.179-0.232,0.259
+                       c-0.096,0.087-0.167,0.171-0.061,0.287c0.034,0.037,0.01,0.08-0.023,0.113c-0.056,0.051-0.125,0.093-0.103,0.175
+                       c0.038,0.14-0.234,0.304-0.022,0.409c0.069,0.033,0.129,0.008,0.187-0.034c-0.011-0.041,0-0.088,0.05-0.137
+                       c0.06-0.053,0.117-0.112,0.16-0.175c0.138-0.202,0.282-0.405,0.296-0.65c0.007-0.129,0.067-0.138,0.191-0.045
+                       c0.026,0.018,0.043,0.059,0.067,0.063c0.081,0.006,0.064-0.052,0.055-0.087c-0.024-0.126,0.038-0.206,0.184-0.218
+                       c0.207-0.02,0.378-0.164,0.604-0.12c0.033,0.006,0.093-0.031,0.122-0.062c0.084-0.093,0.194-0.185,0.224-0.291
+                       c0.039-0.135,0.079-0.218,0.266-0.2c0.125,0.013,0.184-0.066,0.242-0.142c0.084-0.108,0.2-0.146,0.354-0.151
+                       c0.184-0.008,0.228-0.08,0.182-0.224c-0.053-0.161-0.198-0.224-0.366-0.286c-0.167-0.061-0.193-0.114-0.093-0.234
+                       c0.091-0.106,0.097-0.173-0.026-0.253c-0.151-0.102-0.279-0.23-0.443-0.31c-0.174-0.083-0.328-0.151-0.332-0.348
+                       c0-0.089-0.101-0.149-0.177-0.211c-0.102-0.08-0.2-0.165-0.292-0.251c-0.06-0.055-0.024-0.149,0.063-0.182
+                       c0.017-0.007,0.031-0.014,0.048-0.018c0.099-0.02,0.229-0.013,0.262-0.115c0.048-0.147,0.017-0.298-0.108-0.413
+                       c-0.117-0.109-0.255-0.2-0.378-0.304c-0.057-0.049,0-0.16,0.086-0.174c0.051-0.006,0.104-0.011,0.154-0.008
+                       c0.1,0.005,0.194,0.114,0.289,0.038c0.053-0.042,0.048-0.133,0.081-0.2c0.033-0.061,0.115-0.096,0.172-0.063
+                       c0.182,0.104,0.313,0.051,0.445-0.066c0.033-0.029,0.081-0.045,0.125-0.069c-0.221-0.187-0.221-0.187-0.215-0.448
+                       c0.003-0.252,0.005-0.26,0.313-0.28c0.108-0.006,0.194-0.023,0.289-0.073c0.237-0.125,0.481-0.172,0.711,0.024
+                       c0.129,0.112,0.294,0.067,0.447,0.054c0.067-0.007,0.104-0.114,0.045-0.142c-0.363-0.171-0.261-0.482-0.327-0.743
+                       c-0.019-0.08,0.031-0.142,0.096-0.193c0.113-0.095,0.073-0.208,0.007-0.284c-0.115-0.13-0.18-0.303-0.311-0.391
+                       c-0.206-0.142-0.286-0.253-0.184-0.477c0.039-0.081-0.086-0.211-0.119-0.322c-0.059-0.191-0.031-0.226,0.215-0.318
+                       c0.239-0.089,0.356-0.295,0.275-0.488c-0.029-0.072-0.07-0.136-0.093-0.207c-0.034-0.088,0.064-0.173,0.181-0.164
+                       c0.017,0.002,0.039-0.002,0.05,0.006c0.23,0.157,0.38-0.004,0.553-0.093c0.092-0.049,0.122-0.115,0.043-0.177
+                       c-0.11-0.089-0.129-0.204-0.173-0.315c-0.101-0.246-0.046-0.41,0.232-0.486c0.246-0.066,0.404-0.227,0.617-0.324
+                       c0.136-0.062,0.196-0.159,0.174-0.294c-0.011-0.071-0.007-0.147,0.005-0.218c0.03-0.147,0.127-0.2,0.302-0.149
+                       c0.132,0.038,0.255,0.084,0.404,0.062c0.093-0.015,0.187,0.018,0.211,0.096c0.04,0.13,0.148,0.18,0.265,0.251
+                       c0.007,0.004,0.014,0.01,0.021,0.014c-0.007-0.096,0.019-0.189,0.072-0.291c0.077-0.155,0.114-0.173,0.272-0.053
+                       c0.067,0.051,0.12,0.14,0.206,0.078c0.129-0.09,0.239,0.065,0.378-0.006c-0.105-0.216-0.354-0.353-0.369-0.623
+                       c-0.007-0.195,0.041-0.293,0.239-0.249c0.248,0.055,0.393,0.031,0.493-0.228c0.086-0.225,0.235-0.246,0.47-0.173
+                       c0.136,0.039,0.239,0.184,0.406,0.129c0.078-0.075,0.036-0.153,0.008-0.228c-0.065-0.167-0.079-0.311,0.102-0.431
+                       c0.085-0.055,0.142-0.151,0.197-0.237c0.187-0.307,0.151-0.411-0.188-0.566c-0.038-0.018-0.084-0.02-0.122-0.038
+                       c-0.163-0.08-0.185-0.17-0.085-0.351c0.031-0.05,0.079-0.095,0.112-0.137c-0.024-0.165-0.186-0.169-0.286-0.22
+                       c-0.213-0.112-0.419-0.204-0.407-0.486c0.006-0.07-0.055-0.161-0.112-0.212c-0.148-0.129-0.138-0.269-0.114-0.444
+                       c0.046-0.326,0.026-0.33,0.384-0.302c0.077,0.004,0.122-0.005,0.129-0.086c0.055-0.644,0.278-1.002,0.889-1.252
+                       c0.237-0.098,0.355-0.198,0.379-0.424c0.009-0.102,0.03-0.204,0.057-0.302c0.04-0.144,0.119-0.169,0.288-0.132
+                       c0.23,0.049,0.426,0.205,0.669,0.201c0.039-0.003,0.087-0.032,0.109-0.063c0.021-0.027,0.03-0.096,0.011-0.108
+                       c-0.228-0.165-0.27-0.352-0.112-0.584c0.062-0.091,0.066-0.195-0.002-0.288c-0.123-0.16-0.123-0.347-0.129-0.531
+                       c-0.005-0.078-0.009-0.19,0.041-0.233c0.317-0.273,0.279-0.642,0.327-0.992c0.018-0.14,0.071-0.273,0.169-0.393
+                       c0.158-0.191,0.234-0.212,0.542-0.1c0.117,0.045,0.206,0.067,0.242-0.08c0.032-0.129,0.134-0.207,0.224-0.293
+                       c0.047-0.04,0.098-0.102,0.152-0.106c0.258-0.014,0.506,0.062,0.752,0.131c0.127,0.035,0.239,0.09,0.276,0.228
+                       c0.007,0.02,0.014,0.038,0.02,0.057c0.039,0.105,0.116,0.102,0.208,0.073c0.173-0.055,0.284,0.02,0.376,0.156
+                       c0.093,0.142,0.189,0.279,0.082,0.452c-0.031,0.051-0.077,0.1-0.099,0.155c-0.075,0.169,0.015,0.332,0.2,0.375
+                       c0.04,0.01,0.086,0.016,0.127,0.014c0.108-0.007,0.213-0.02,0.349-0.033c0.077,0.199,0.136,0.418,0.244,0.612
+                       c0.144,0.256,0.129,0.464-0.103,0.655c-0.064,0.053-0.138,0.104-0.134,0.194c0.002,0.031,0.048,0.085,0.072,0.083
+                       c0.083-0.005,0.195,0,0.244-0.049c0.261-0.242,0.502-0.089,0.746-0.032c0.033,0.229-0.208,0.289-0.217,0.458
+                       c0.036,0.07,0.103,0.063,0.165,0.07c0.323,0.05,0.36,0.113,0.16,0.307c-0.173,0.169-0.268,0.369-0.353,0.577
+                       c-0.041,0.1-0.008,0.202,0.129,0.236c0.119,0.027,0.2,0.084,0.139,0.21c-0.055,0.118-0.094,0.232-0.036,0.354
+                       c0.108,0.224,0.116,0.467,0.127,0.72c0.282,0,0.536,0.074,0.77-0.082c0.038-0.021,0.083-0.016,0.129,0.007
+                       c0.038-0.073,0.086-0.147,0.148-0.213c0.215-0.23,0.316-0.259,0.737-0.12c0.16,0.051,0.285,0.078,0.332-0.1
+                       c0.041-0.155,0.182-0.249,0.306-0.353c0.061-0.049,0.133-0.124,0.204-0.129c0.354-0.016,0.691,0.075,1.025,0.157
+                       c0.175,0.042,0.328,0.112,0.378,0.277c0.008,0.022,0.019,0.047,0.03,0.069c0.05,0.126,0.155,0.124,0.279,0.089
+                       c0.237-0.067,0.39,0.023,0.511,0.188c0.129,0.171,0.261,0.338,0.117,0.546c-0.042,0.064-0.104,0.12-0.138,0.189
+                       c-0.1,0.204,0.021,0.404,0.274,0.452c0.057,0.011,0.116,0.02,0.174,0.016c0.146-0.007,0.289-0.022,0.476-0.038
+                       c0.105,0.242,0.184,0.506,0.332,0.739c0.197,0.308,0.177,0.561-0.141,0.791c-0.086,0.065-0.189,0.127-0.182,0.238
+                       c0.002,0.036,0.065,0.1,0.098,0.1c0.112-0.006,0.261-0.002,0.33-0.059c0.357-0.293,0.689-0.108,1.019-0.04
+                       c0.045,0.277-0.285,0.351-0.297,0.554c0.048,0.087,0.14,0.073,0.225,0.087c0.439,0.057,0.492,0.133,0.22,0.371
+                       c-0.237,0.202-0.369,0.444-0.485,0.695c-0.055,0.122-0.007,0.246,0.18,0.284c0.16,0.033,0.271,0.104,0.189,0.258
+                       c-0.079,0.139-0.129,0.277-0.054,0.426c0.147,0.271,0.158,0.568,0.175,0.872c0.385-0.002,0.729,0.089,1.049-0.098
+                       c0.068-0.039,0.163-0.022,0.24,0.033c0.212,0.16,0.306,0.322,0.308,0.513c0.069,0.02,0.134,0.018,0.187-0.065
+                       c0.079-0.123-0.094-0.257-0.206-0.361c-0.151-0.138-0.333-0.242-0.268-0.479c0.217-0.823-0.175-1.529-0.674-2.2
+                       c-0.136-0.182-0.108-0.3,0.042-0.432c0.096-0.085,0.187-0.189,0.309-0.232c0.217-0.075,0.306-0.208,0.311-0.381
+                       c0.009-0.495,0.451-0.666,0.87-0.857c0.101-0.049,0.235-0.047,0.32,0.018c0.235,0.171,0.545,0.082,0.799,0.182v0.002h0.002
+                       c0.091,0.227,0.409,0.227,0.564,0.393c0.01,0.012,0.108-0.011,0.134-0.039c0.031-0.032,0.05-0.096,0.031-0.129
+                       c-0.033-0.058-0.09-0.134-0.155-0.149c-0.188-0.04-0.383-0.051-0.574-0.076c0-0.002,0-0.002-0.002-0.002
+                       c0.074-0.319-0.026-0.603-0.25-0.86c-0.073-0.086-0.075-0.175-0.002-0.259c0.098-0.114,0.182-0.24,0.307-0.331
+                       c0.121-0.089,0.277-0.163,0.431-0.202c0.151-0.039,0.237,0.104,0.364,0.151c0.099,0.04,0.214,0.131,0.301,0.114
+                       c0.017-0.003,0.031-0.003,0.048-0.005c-0.017-0.024-0.037-0.049-0.056-0.066c-0.146-0.13-0.135-0.269-0.112-0.444
+                       c0.046-0.328,0.028-0.331,0.386-0.302c0.077,0.004,0.119-0.004,0.129-0.087c0.054-0.644,0.277-1.001,0.889-1.251
+                       c0.235-0.098,0.354-0.198,0.378-0.424c0.009-0.102,0.031-0.204,0.057-0.302c0.041-0.144,0.119-0.171,0.289-0.134
+                       c0.229,0.052,0.426,0.206,0.669,0.202c0.038-0.002,0.086-0.031,0.108-0.062c0.022-0.027,0.031-0.096,0.011-0.109
+                       c-0.227-0.164-0.269-0.351-0.112-0.583c0.063-0.091,0.067-0.195-0.003-0.289c-0.121-0.159-0.121-0.346-0.132-0.53
+                       c-0.004-0.078-0.007-0.191,0.041-0.234c0.319-0.272,0.281-0.64,0.329-0.991c0.017-0.14,0.072-0.275,0.17-0.393
+                       c0.158-0.191,0.232-0.213,0.54-0.098c0.118,0.042,0.209,0.065,0.245-0.082c0.031-0.129,0.134-0.207,0.224-0.293
+                       c0.044-0.042,0.099-0.102,0.148-0.107c0.261-0.013,0.508,0.063,0.756,0.132c0.126,0.035,0.239,0.09,0.275,0.228
+                       c0.005,0.02,0.015,0.038,0.022,0.058c0.038,0.104,0.115,0.102,0.206,0.073c0.174-0.056,0.287,0.019,0.378,0.154
+                       c0.091,0.142,0.189,0.28,0.083,0.454c-0.031,0.051-0.077,0.098-0.103,0.153c-0.073,0.171,0.017,0.335,0.204,0.377
+                       c0.04,0.01,0.084,0.016,0.126,0.014c0.108-0.006,0.213-0.02,0.349-0.033c0.077,0.199,0.134,0.418,0.245,0.612
+                       c0.143,0.255,0.128,0.464-0.103,0.654c-0.065,0.054-0.138,0.104-0.134,0.195c0,0.032,0.048,0.084,0.071,0.082
+                       c0.082-0.003,0.192,0,0.245-0.048c0.26-0.242,0.501-0.089,0.745-0.034c0.033,0.23-0.207,0.291-0.217,0.46
+                       c0.036,0.071,0.101,0.062,0.162,0.071c0.325,0.049,0.364,0.11,0.164,0.306c-0.173,0.169-0.271,0.369-0.357,0.577
+                       c-0.041,0.1-0.005,0.202,0.132,0.236c0.119,0.027,0.2,0.084,0.139,0.21c-0.055,0.118-0.093,0.23-0.035,0.353
+                       c0.105,0.224,0.114,0.468,0.125,0.721c0.284-0.002,0.538,0.073,0.771-0.082c0.048-0.031,0.12-0.018,0.175,0.029
+                       c0.055,0.047,0.099,0.093,0.133,0.14c0.061-0.002,0.109-0.014,0.133-0.065c0.073-0.169-0.194-0.173-0.276-0.275
+                       c-0.018-0.022-0.057-0.033-0.088-0.047c-0.153-0.069-0.38-0.146-0.347-0.289c0.044-0.19,0.318-0.161,0.485-0.148
+                       c0.287,0.024,0.538,0.011,0.78-0.134c0.079-0.045,0.2-0.033,0.296-0.046c0.081-0.109-0.063-0.127-0.079-0.191
+                       c-0.01-0.027-0.026-0.058-0.02-0.085c0.026-0.122,0.292-0.371,0.417-0.357c0.315,0.035,0.565-0.12,0.85-0.171
+                       c0.213-0.037,0.373-0.033,0.529,0.093c0.112,0.093,0.227,0.186,0.406,0.169c0.081-0.01,0.197,0.033,0.222-0.065
+                       c0.02-0.067-0.09-0.069-0.147-0.1c-0.151-0.082-0.11-0.24-0.177-0.355c-0.045-0.073,0.02-0.14,0.079-0.195
+                       c0.074-0.069,0.063-0.129-0.022-0.184c-0.04-0.028-0.073-0.065-0.117-0.089c-0.294-0.173-0.366-0.263-0.441-0.548
+                       c-0.027-0.109-0.109-0.177-0.229-0.226c-0.334-0.14-0.621-0.324-0.739-0.645c-0.028-0.079-0.105-0.107-0.174-0.152
+                       c-0.101-0.061-0.196-0.125-0.285-0.193c-0.086-0.069-0.105-0.149-0.016-0.233c0.059-0.054,0.117-0.112,0.16-0.174
+                       c0.138-0.204,0.281-0.404,0.296-0.652c0.007-0.129,0.067-0.135,0.191-0.044c0.026,0.019,0.044,0.059,0.069,0.062
+                       c0.079,0.006,0.061-0.049,0.053-0.086c-0.024-0.127,0.039-0.205,0.186-0.218c0.206-0.018,0.375-0.165,0.603-0.118
+                       c0.033,0.006,0.093-0.033,0.121-0.064c0.083-0.095,0.194-0.185,0.225-0.291c0.038-0.136,0.079-0.218,0.265-0.198
+                       c0.124,0.011,0.184-0.067,0.241-0.142c0.084-0.112,0.2-0.147,0.354-0.153c0.184-0.006,0.227-0.078,0.182-0.222
+                       c-0.053-0.165-0.199-0.226-0.366-0.286c-0.167-0.061-0.194-0.114-0.093-0.234c0.09-0.108,0.098-0.173-0.026-0.255
+                       c-0.151-0.1-0.281-0.23-0.443-0.309c-0.174-0.084-0.327-0.153-0.33-0.351c-0.002-0.088-0.103-0.149-0.18-0.208
+                       c-0.102-0.082-0.2-0.167-0.292-0.254c-0.06-0.055-0.023-0.146,0.062-0.181c0.017-0.007,0.032-0.014,0.048-0.018
+                       c0.101-0.018,0.23-0.012,0.263-0.114c0.048-0.149,0.017-0.297-0.108-0.415c-0.117-0.108-0.255-0.2-0.378-0.304
+                       c-0.057-0.049,0-0.159,0.086-0.173c0.05-0.006,0.103-0.011,0.153-0.008c0.101,0.004,0.193,0.113,0.289,0.039
+                       c0.053-0.045,0.047-0.135,0.081-0.202c0.031-0.059,0.115-0.093,0.172-0.063c0.182,0.105,0.313,0.052,0.445-0.064
+                       c0.033-0.029,0.081-0.047,0.123-0.071c-0.219-0.184-0.219-0.184-0.214-0.446c0.002-0.253,0.004-0.259,0.312-0.279
+                       c0.108-0.006,0.194-0.024,0.29-0.075c0.237-0.126,0.481-0.171,0.711,0.027c0.129,0.112,0.293,0.067,0.446,0.051
+                       c0.068-0.006,0.105-0.113,0.046-0.14c-0.363-0.17-0.261-0.483-0.327-0.742c-0.022-0.083,0.031-0.142,0.095-0.197
+                       c0.115-0.092,0.074-0.208,0.008-0.284c-0.113-0.126-0.18-0.302-0.312-0.391c-0.205-0.141-0.286-0.253-0.181-0.474
+                       c0.037-0.083-0.088-0.213-0.121-0.325c-0.061-0.19-0.032-0.226,0.214-0.317c0.24-0.087,0.357-0.295,0.276-0.489
+                       c-0.028-0.069-0.069-0.135-0.094-0.206c-0.033-0.087,0.065-0.171,0.18-0.162c0.019,0,0.043-0.002,0.053,0.004
+                       c0.23,0.16,0.38-0.002,0.553-0.092c0.093-0.047,0.121-0.114,0.042-0.177c-0.11-0.089-0.129-0.205-0.172-0.315
+                       c-0.101-0.246-0.046-0.409,0.231-0.486c0.247-0.066,0.405-0.226,0.617-0.324c0.137-0.062,0.197-0.157,0.175-0.293
+                       c-0.011-0.071-0.007-0.147,0.005-0.217c0.029-0.15,0.127-0.2,0.301-0.152c0.132,0.038,0.256,0.085,0.405,0.063
+                       c0.093-0.013,0.187,0.018,0.209,0.098c0.041,0.126,0.149,0.179,0.265,0.249c0.134,0.078,0.219,0.2,0.426,0.151
+                       c0.109-0.027,0.184,0.071,0.191,0.169c0.019,0.235-0.014,0.468-0.093,0.695c-0.22,0.634-0.129,0.464,0.253,0.89
+                       c0.039,0.047,0.134,0.066,0.151,0.113c0.055,0.149,0.162,0.175,0.323,0.138c0.048-0.012,0.103-0.014,0.156-0.014
+                       c0.081-0.002,0.141,0.071,0.088,0.118c-0.126,0.116-0.2,0.235-0.148,0.397c0.011,0.035-0.017,0.092-0.048,0.12
+                       c-0.281,0.241-0.338,0.603-0.667,0.819c0.263,0.118,0.268,0.12,0.387-0.01c0.187-0.204,0.441-0.322,0.717-0.41
+                       c0.015-0.006,0.034,0.002,0.053,0.002c0.14-0.004,0.108-0.242,0.313-0.16c0.11,0.042,0.201,0.118,0.332,0.125
+                       c0.05,0.001,0.105,0.013,0.149,0.031c0.055,0.022,0.072,0.074,0.042,0.114c-0.042,0.062-0.11,0.11-0.161,0.168
+                       c-0.044,0.051-0.054,0.1-0.023,0.161c0.108,0.203,0.106,0.205-0.029,0.307c-0.143,0.108-0.284,0.213-0.377,0.362
+                       c-0.045,0.074-0.121,0.143-0.2,0.202c-0.092,0.064-0.224,0.097-0.296,0.172c-0.108,0.114-0.177,0.252-0.259,0.378
+                       c0.007,0.104,0.115,0.1,0.19,0.124c0.073,0.027,0.109,0.12,0.216,0.088c0.098-0.102-0.028-0.253,0.072-0.332
+                       c0.108-0.089,0.266-0.133,0.402-0.198c0.046-0.02,0.098-0.036,0.136-0.063c0.143-0.102,0.294-0.1,0.428-0.002
+                       c0.139,0.1,0.297,0.147,0.464,0.191c0.07,0.018,0.116,0.093,0.061,0.142c-0.234,0.215-0.349,0.503-0.604,0.709
+                       c-0.126,0.103-0.276,0.175-0.403,0.276c0.043,0.133,0.213,0.199,0.204,0.351c-0.01,0.123,0.138,0.157,0.227,0.222
+                       c0.108,0.08,0.121,0.153,0.024,0.223c-0.136,0.101-0.254,0.193-0.231,0.366c0.009,0.096-0.077,0.158-0.171,0.206
+                       c-0.205,0.114-0.399,0.24-0.608,0.344c-0.117,0.061-0.174,0.142-0.224,0.236l0.008,0.006c0.216-0.04,0.453-0.008,0.644-0.14
+                       c0.085-0.057,0.204-0.072,0.296-0.029c0.158,0.076,0.261,0.007,0.377-0.064c0.068-0.045,0.138-0.087,0.217-0.118
+                       c0.16-0.059,0.336,0.014,0.334,0.161c-0.002,0.142,0.019,0.177,0.184,0.14c0.086-0.02,0.156-0.049,0.229-0.088
+                       c0.118-0.065,0.197-0.034,0.228,0.073c0.021,0.07,0.029,0.143,0.048,0.215c0.023,0.096,0.174,0.185,0.062,0.279
+                       c-0.115,0.098-0.208,0.244-0.411,0.24c-0.091-0.002-0.177,0.006-0.241,0.061c-0.127,0.1-0.228,0.228-0.369,0.301
+                       c-0.141,0.074-0.34,0.068-0.445,0.205l0.002,0.002c0.108-0.016,0.206-0.006,0.295,0.057c0.075,0.057,0.157,0.112,0.247,0.175
+                       c0.089-0.088,0.159-0.17,0.242-0.239c0.124-0.102,0.279-0.063,0.312,0.08c0.017,0.069,0.002,0.144,0.002,0.23
+                       c0.158,0.04,0.298-0.037,0.441-0.071c0.086-0.019,0.165-0.033,0.253-0.009c0.094,0.024,0.155,0.098,0.116,0.167
+                       c-0.096,0.173-0.197,0.341-0.292,0.514c-0.077,0.138-0.218,0.171-0.383,0.193c-0.315,0.047-0.539,0.238-0.784,0.397
+                       c-0.04,0.027-0.05,0.087-0.007,0.116c0.033,0.022,0.103,0.037,0.139,0.024c0.079-0.029,0.144-0.081,0.217-0.118
+                       c0.048-0.024,0.12-0.038,0.135,0.012c0.054,0.177,0.22,0.204,0.394,0.237c0.103,0.02,0.115,0.093,0.035,0.169
+                       c-0.068,0.067-0.147,0.124-0.215,0.192c-0.086,0.085-0.068,0.178,0.061,0.203c0.187,0.035,0.277,0.102,0.248,0.271
+                       c-0.01,0.051,0.057,0.086,0.102,0.059c0.258-0.161,0.39-0.033,0.543,0.136c0.115,0.129,0.031,0.186-0.016,0.298
+                       c-0.127,0.295-0.381,0.425-0.696,0.519c-0.144,0.042-0.271,0.129-0.403,0.2c-0.016,0.01-0.023,0.056-0.011,0.073
+                       c0.015,0.022,0.052,0.036,0.083,0.04c0.129,0.022,0.241-0.004,0.333-0.088c0.121-0.112,0.26-0.14,0.416-0.042
+                       c0.114,0.071,0.232,0.051,0.344-0.002c0.048-0.022,0.091-0.047,0.141-0.061c0.184-0.057,0.301,0.003,0.312,0.178
+                       c0.004,0.092-0.04,0.164,0.143,0.147c0.21-0.018,0.294,0.078,0.234,0.237c-0.129,0.33-0.335,0.605-0.797,0.686
+                       c0.051,0.08,0.101,0.157,0.146,0.233c0.05,0.08,0.125,0.098,0.219,0.059c0.062-0.027,0.117-0.064,0.181-0.086
+                       c0.122-0.04,0.221,0.018,0.201,0.122c-0.029,0.171-0.036,0.33-0.244,0.459c-0.22,0.136-0.388,0.338-0.56,0.519
+                       c-0.122,0.129-0.189,0.253-0.051,0.438c0.127,0.173,0.099,0.393-0.053,0.575c-0.052,0.065-0.103,0.126-0.031,0.198
+                       c0.062,0.062,0.151,0.059,0.242,0.047c0.169-0.024,0.344-0.045,0.516-0.061c0.092-0.008,0.192,0,0.237,0.069
+                       c0.117,0.18,0.271,0.136,0.441,0.073c0.184-0.069,0.377-0.051,0.569-0.027c0.156,0.022,0.218,0.142,0.141,0.271
+                       c-0.031,0.051-0.081,0.098-0.11,0.149c-0.06,0.1-0.277,0.015-0.277,0.155c0,0.04,0.018,0.08,0.043,0.12c0,0,0.001-0.002,0.004,0
+                       c0.037,0.006,0.096-0.033,0.122-0.064c0.086-0.093,0.197-0.185,0.227-0.291c0.039-0.136,0.079-0.218,0.264-0.198
+                       c0.124,0.011,0.183-0.067,0.243-0.142c0.082-0.112,0.199-0.147,0.354-0.153c0.183-0.006,0.227-0.08,0.18-0.222
+                       c-0.051-0.165-0.199-0.226-0.366-0.286c-0.166-0.061-0.194-0.114-0.092-0.234c0.092-0.108,0.096-0.173-0.026-0.255
+                       c-0.15-0.1-0.279-0.23-0.442-0.311c-0.175-0.082-0.327-0.151-0.333-0.348c-0.002-0.088-0.102-0.149-0.178-0.208
+                       c-0.101-0.082-0.199-0.167-0.292-0.254c-0.057-0.055-0.021-0.146,0.062-0.182c0.017-0.006,0.034-0.013,0.05-0.017
+                       c0.098-0.018,0.229-0.012,0.263-0.114c0.045-0.149,0.016-0.3-0.111-0.414c-0.115-0.109-0.255-0.199-0.378-0.305
+                       c-0.057-0.049,0-0.16,0.087-0.173c0.05-0.006,0.103-0.011,0.156-0.008c0.097,0.004,0.191,0.113,0.287,0.039
+                       c0.054-0.045,0.047-0.135,0.083-0.202c0.032-0.059,0.112-0.093,0.171-0.062c0.181,0.104,0.316,0.051,0.444-0.065
+                       c0.033-0.029,0.081-0.047,0.125-0.071c-0.217-0.186-0.217-0.186-0.215-0.446c0.002-0.253,0.005-0.259,0.313-0.279
+                       c0.109-0.006,0.194-0.024,0.289-0.075c0.237-0.126,0.482-0.171,0.711,0.027c0.129,0.112,0.294,0.065,0.448,0.051
+                       c0.066-0.006,0.104-0.113,0.045-0.14c-0.363-0.17-0.258-0.483-0.324-0.742c-0.021-0.083,0.028-0.144,0.093-0.195
+                       c0.115-0.093,0.076-0.209,0.007-0.285c-0.112-0.126-0.177-0.302-0.308-0.39c-0.208-0.142-0.287-0.254-0.184-0.476
+                       c0.038-0.082-0.086-0.212-0.122-0.324c-0.059-0.19-0.028-0.226,0.215-0.317c0.239-0.087,0.359-0.295,0.275-0.489
+                       c-0.028-0.069-0.066-0.135-0.092-0.207c-0.031-0.088,0.064-0.17,0.182-0.161c0.017,0,0.04-0.002,0.052,0.004
+                       c0.229,0.16,0.38-0.002,0.549-0.093c0.094-0.046,0.123-0.113,0.044-0.177c-0.11-0.088-0.127-0.204-0.172-0.314
+                       c-0.099-0.246-0.047-0.408,0.233-0.484c0.244-0.068,0.402-0.23,0.617-0.326c0.134-0.063,0.197-0.157,0.172-0.295
+                       c-0.011-0.068-0.007-0.144,0.008-0.215c0.028-0.149,0.125-0.2,0.299-0.152c0.134,0.038,0.258,0.085,0.404,0.063
+                       c0.093-0.013,0.187,0.018,0.211,0.096c0.04,0.129,0.149,0.182,0.268,0.251c0.134,0.078,0.215,0.2,0.424,0.151
+                       c0.108-0.027,0.186,0.071,0.193,0.169c0.017,0.235-0.017,0.468-0.096,0.695c-0.22,0.634-0.128,0.464,0.254,0.89
+                       c0.041,0.046,0.134,0.066,0.15,0.113c0.056,0.149,0.163,0.177,0.324,0.138c0.05-0.012,0.105-0.014,0.155-0.014
+                       c0.085-0.002,0.142,0.071,0.089,0.118c-0.125,0.116-0.199,0.235-0.149,0.397c0.011,0.035-0.014,0.092-0.045,0.12
+                       c-0.283,0.242-0.338,0.603-0.667,0.819c0.26,0.117,0.264,0.119,0.384-0.01c0.187-0.204,0.443-0.322,0.717-0.413
+                       c0.014-0.003,0.036,0.005,0.053,0.005c0.138-0.007,0.11-0.242,0.312-0.159c0.11,0.041,0.204,0.117,0.333,0.123
+                       c0.05,0.002,0.105,0.014,0.15,0.031c0.052,0.023,0.072,0.076,0.043,0.114c-0.045,0.063-0.112,0.112-0.165,0.169
+                       c-0.043,0.051-0.052,0.1-0.019,0.162c0.108,0.202,0.105,0.204-0.031,0.306c-0.141,0.108-0.284,0.213-0.378,0.361
+                       c-0.046,0.076-0.12,0.144-0.199,0.203c-0.093,0.064-0.227,0.097-0.299,0.173c-0.106,0.113-0.174,0.251-0.259,0.376
+                       c0.01,0.105,0.116,0.101,0.19,0.125c0.077,0.024,0.112,0.12,0.217,0.088c0.098-0.102-0.028-0.253,0.074-0.335
+                       c0.108-0.087,0.266-0.131,0.402-0.195c0.045-0.02,0.095-0.035,0.134-0.065c0.146-0.1,0.296-0.097,0.43,0
+                       c0.136,0.102,0.296,0.147,0.461,0.189c0.072,0.02,0.117,0.096,0.063,0.144c-0.237,0.215-0.35,0.503-0.605,0.709
+                       c-0.127,0.102-0.277,0.175-0.404,0.276c0.043,0.131,0.215,0.2,0.203,0.351c-0.007,0.123,0.139,0.157,0.23,0.222
+                       c0.108,0.08,0.12,0.153,0.022,0.223c-0.136,0.1-0.252,0.195-0.232,0.366c0.013,0.096-0.074,0.156-0.169,0.206
+                       c-0.204,0.114-0.398,0.24-0.608,0.345c-0.114,0.057-0.173,0.141-0.222,0.235l0.007,0.006c0.215-0.042,0.452-0.008,0.643-0.139
+                       c0.086-0.058,0.204-0.073,0.299-0.03c0.158,0.075,0.259,0.006,0.373-0.065c0.07-0.044,0.141-0.086,0.218-0.117
+                       c0.16-0.061,0.34,0.014,0.337,0.161c-0.005,0.142,0.017,0.177,0.184,0.14c0.086-0.02,0.156-0.049,0.229-0.088
+                       c0.118-0.065,0.193-0.034,0.228,0.073c0.021,0.07,0.026,0.143,0.045,0.215c0,0.007,0.004,0.013,0.008,0.02
+                       c1.546-0.601,3.093-1.2,4.63-1.786c-0.111-0.078-0.207-0.169-0.255-0.304c-0.036-0.1-0.074-0.23-0.208-0.271
+                       c-0.246-0.073-0.176-0.224-0.167-0.373c0.005-0.067,0.132-0.108,0.055-0.18c-0.043-0.04-0.103-0.08-0.162-0.091
+                       c-0.259-0.051-0.409-0.279-0.691-0.289c-0.051,0-0.06-0.052-0.072-0.095c-0.067-0.256-0.144-0.509-0.207-0.762
+                       c-0.038-0.155,0.022-0.216,0.22-0.212c0.09,0,0.145-0.023,0.206-0.079c0.093-0.093,0.191-0.191,0.313-0.253
+                       c0.081-0.042,0.183-0.051,0.203-0.149c0.02-0.088-0.048-0.157-0.081-0.235c-0.077-0.174-0.294-0.256-0.384-0.425
+                       c0.076-0.095,0.148-0.184,0.215-0.275c0.04-0.055,0.097-0.064,0.167-0.05c0.095,0.017,0.093-0.04,0.108-0.097
+                       c0.018-0.084,0.092-0.117,0.178-0.07c0.096,0.049,0.182,0.115,0.274,0.173c0.05,0.033,0.11,0.097,0.156,0.093
+                       c0.32-0.047,0.499,0.241,0.802,0.235c0.058,0,0.149,0.029,0.173,0.066c0.115,0.199,0.33,0.138,0.514,0.154
+                       c0.063,0.006,0.146-0.007,0.151-0.075c0.007-0.073-0.048-0.134-0.131-0.158c-0.042-0.013-0.095-0.006-0.143-0.011
+                       c-0.228-0.022-0.287-0.038-0.3-0.2c-0.021-0.259-0.215-0.395-0.449-0.486c-0.217-0.084-0.197-0.269-0.296-0.397
+                       c-0.022-0.027,0.025-0.115,0.069-0.141c0.17-0.102,0.28-0.254,0.469-0.346c0.136-0.069,0.183-0.089,0.323-0.004
+                       c0.205,0.126,0.439,0.225,0.676,0.304c0.112,0.035,0.182,0.11,0.294,0.151c0.079-0.154,0.122-0.295,0.009-0.46
+                       c-0.062-0.088-0.055-0.212-0.086-0.319c-0.038-0.132-0.119-0.232-0.299-0.232c-0.115,0-0.175-0.064-0.234-0.131
+                       c-0.2-0.236-0.413-0.458-0.718-0.613c-0.207-0.104-0.31-0.271-0.305-0.489c0.007-0.233-0.022-0.465-0.136-0.687
+                       c-0.11-0.209-0.005-0.401,0.105-0.61c-0.136-0.089-0.235-0.213-0.34-0.336c-0.189-0.22-0.196-0.258-0.003-0.438
+                       c0.215-0.198,0.336-0.22,0.648-0.116c0.046,0.014,0.084,0.045,0.132,0.052c0.07,0.011,0.122-0.024,0.158-0.075
+                       c0.033-0.052,0.038-0.1-0.024-0.144c-0.203-0.147-0.198-0.149-0.316-0.457c-0.011-0.036-0.057-0.065-0.09-0.093
+                       c-0.064-0.056-0.091-0.112-0.017-0.178c0.057-0.048,0.111-0.1,0.17-0.149c0.284-0.239,0.371-0.263,0.705-0.071
+                       c0.294,0.167,0.626,0.289,0.887,0.505c0.147,0.122,0.366,0.161,0.5,0.313c0.062,0.066,0.181,0.008,0.282-0.038
+                       c-0.164-0.177-0.398-0.293-0.564-0.473c-0.062-0.071-0.11-0.126-0.12-0.208c-0.008-0.071-0.03-0.122-0.116-0.167
+                       c-0.146-0.071-0.166-0.236-0.101-0.32c0.101-0.131-0.031-0.277,0.093-0.393c0.046-0.042,0.02-0.104-0.019-0.153
+                       c-0.172-0.226-0.251-0.477-0.291-0.737c-0.019-0.131-0.072-0.239-0.202-0.317c-0.055-0.031-0.101-0.071-0.147-0.109
+                       c-0.23-0.182-0.239-0.212-0.101-0.461c0.031-0.051,0.083-0.098,0.024-0.144c-0.151-0.11-0.239-0.257-0.338-0.399
+                       c-0.045-0.067-0.187-0.089-0.18-0.18c0.008-0.125,0.158-0.17,0.25-0.242c0.067-0.055,0.169-0.08,0.253-0.122
+                       c0.115-0.062,0.117-0.089,0.039-0.2c-0.101-0.142-0.101-0.142,0.033-0.253c0.035-0.03,0.057-0.072,0.096-0.093
+                       c0.354-0.204,0.332-0.279,0.714-0.038c0.064,0.04,0.132,0.075,0.196,0.112c0.118-0.047,0.03-0.089,0.015-0.129
+                       c-0.024-0.067-0.062-0.132-0.064-0.198c-0.003-0.052,0.038-0.112-0.02-0.154c-0.156-0.11-0.103-0.21,0.011-0.312
+                       c0.065-0.059,0.129-0.124,0.191-0.187c0.085-0.082,0.184-0.104,0.309-0.068c0.059,0.018,0.125,0.029,0.189,0.039
+                       c0.086,0.016,0.186,0.12,0.252,0.02c0.045-0.073-0.056-0.151-0.123-0.211c-0.086-0.079-0.191-0.141-0.156-0.279
+                       c0.126-0.481-0.101-0.892-0.392-1.282c-0.079-0.106-0.062-0.173,0.026-0.251c0.055-0.05,0.108-0.112,0.177-0.136
+                       c0.127-0.041,0.18-0.122,0.182-0.222c0.007-0.288,0.265-0.388,0.507-0.499c0.06-0.027,0.139-0.027,0.189,0.008
+                       c0.136,0.103,0.318,0.052,0.464,0.107v0.002h0.002c0.053,0.131,0.239,0.131,0.327,0.228c0.008,0.006,0.063-0.006,0.079-0.022
+                       c0.017-0.018,0.03-0.055,0.017-0.075c-0.018-0.033-0.053-0.078-0.088-0.087c-0.11-0.021-0.223-0.031-0.335-0.044l-0.002-0.002
+                       c0.044-0.187-0.015-0.35-0.145-0.502c-0.044-0.048-0.044-0.1,0-0.15c0.057-0.065,0.108-0.14,0.179-0.193
+                       c0.07-0.051,0.16-0.093,0.252-0.118c0.086-0.022,0.139,0.063,0.211,0.089c0.059,0.021,0.126,0.075,0.174,0.066
+                       c0.338-0.066,0.414,0.129,0.414,0.322c0,0.177,0.086,0.246,0.251,0.303c0.233,0.079,0.421,0.208,0.581,0.367
+                       c0.119,0.122,0.138,0.182,0.024,0.289c-0.127,0.118-0.182,0.255-0.259,0.393c-0.077,0.137-0.039,0.339-0.272,0.401
+                       c-0.004,0-0.008,0.027,0,0.037c0.005,0.012,0.026,0.027,0.036,0.024c0.046-0.011,0.096-0.017,0.136-0.039
+                       c0.206-0.109,0.41-0.224,0.612-0.34c0.121-0.067,0.233-0.078,0.364-0.01c0.112,0.061,0.211,0.125,0.303,0.205
+                       c0.213,0.182,0.227,0.222,0,0.397c-0.173,0.135-0.213,0.342-0.402,0.462c-0.017,0.011-0.008,0.05-0.011,0.078
+                       c-0.01,0.08,0.062,0.146,0.141,0.126c0.045-0.012,0.091-0.027,0.136-0.042c0.119-0.038,0.23-0.12,0.368-0.047
+                       c0.194,0.102,0.387,0.209,0.485,0.393c0.014,0.027-0.013,0.084-0.041,0.108c-0.091,0.078-0.189,0.151-0.29,0.22
+                       c-0.143,0.096-0.185,0.218-0.16,0.366c0.013,0.068,0.002,0.139,0.02,0.206c0.058,0.226,0.143,0.448,0.015,0.681
+                       c-0.032,0.056,0,0.136,0.009,0.205c0.015,0.113,0.081,0.169,0.221,0.182c0.415,0.045,0.53,0.096,0.815,0.374
+                       c-0.037,0.113-0.148,0.178-0.235,0.259c-0.096,0.086-0.167,0.17-0.06,0.286c0.033,0.038,0.009,0.08-0.024,0.114
+                       c-0.055,0.051-0.125,0.091-0.103,0.175c0.039,0.141-0.234,0.304-0.022,0.406c0.156,0.078,0.261-0.129,0.4-0.191
+                       c0.134-0.062,0.223-0.078,0.352,0.005c0.104,0.066,0.2,0.133,0.279,0.224c0.147,0.173,0.163,0.177-0.022,0.345
+                       c-0.094,0.085-0.136,0.175-0.17,0.287c-0.049,0.158-0.115,0.362-0.095,0.475c0.008,0.059-0.002,0.112-0.055,0.151
+                       c-0.103,0.075-0.057,0.152,0.005,0.218c0.136,0.147,0.184,0.279-0.002,0.43c-0.081,0.067-0.097,0.169-0.064,0.271
+                       c0.021,0.067,0.026,0.135,0.036,0.204c0.026,0.18-0.022,0.325-0.239,0.407c-0.055,0.022-0.098,0.071-0.136,0.1
+                       c-0.031,0.131,0.151,0.091,0.172,0.184c0.02,0.085,0.125,0.122,0.191,0.18c0.105,0.089,0.113,0.205-0.009,0.291
+                       c-0.203,0.14-0.182,0.336-0.217,0.515c-0.009,0.051,0.031,0.118-0.031,0.151c-0.167,0.088-0.241,0.211-0.246,0.377
+                       c-0.004,0.069-0.096,0.04-0.158,0.04c-0.182,0-0.215,0.016-0.228,0.144c-0.018,0.21-0.077,0.404-0.222,0.579
+                       c-0.026,0.033-0.022,0.084,0.024,0.114c0.048,0.029,0.095,0.011,0.127-0.025c0.117-0.121,0.26-0.208,0.449-0.223
+                       c0.091-0.007,0.153-0.042,0.197-0.107c0.055-0.078,0.141-0.113,0.239-0.129c0.13-0.024,0.222-0.088,0.324-0.164
+                       c0.207-0.15,0.453-0.26,0.684-0.38c0.02-0.011,0.079,0,0.087,0.014c0.079,0.159,0.308,0.175,0.413,0.326
+                       c-0.024-0.12-0.031-0.234,0.015-0.344c0.073-0.189,0.093-0.371-0.017-0.56c-0.031-0.049-0.004-0.115,0.079-0.124
+                       c0.116-0.013,0.227-0.027,0.286-0.131c0.013-0.022,0.047-0.038,0.075-0.049c0.277-0.108,0.277-0.108,0.346-0.271
+                       c0.032-0.075,0.054-0.157,0.096-0.23c0.112-0.195,0.129-0.361-0.115-0.501c-0.077-0.045-0.055-0.132,0-0.186
+                       c0.072-0.073,0.146-0.174,0.238-0.199c0.149-0.035,0.237-0.149,0.403-0.173c0.147,0.093,0.222,0.262,0.411,0.334
+                       c0.074,0.027,0.141,0.075,0.224,0.062c0.149-0.023,0.253,0.016,0.34,0.118c0.024,0.027,0.084,0.057,0.119,0.051
+                       c0.254-0.044,0.441,0.071,0.636,0.169c0.041,0.02,0.085,0.047,0.132,0.055c0.173,0.029,0.383,0.087,0.514-0.008
+                       c0.168-0.12-0.038-0.252-0.095-0.364c-0.072-0.133-0.184-0.249-0.21-0.399c-0.008-0.031-0.061-0.057-0.095-0.084
+                       c-0.01-0.007-0.032-0.005-0.048-0.01c-0.263-0.078-0.318-0.335-0.548-0.45c-0.22-0.108-0.446-0.222-0.531-0.459
+                       c-0.036-0.101-0.073-0.232-0.208-0.271c-0.246-0.073-0.176-0.222-0.166-0.371c0.004-0.069,0.13-0.109,0.051-0.183
+                       c-0.04-0.039-0.099-0.08-0.16-0.09c-0.258-0.051-0.409-0.279-0.691-0.289c-0.052,0-0.062-0.053-0.071-0.095
+                       c-0.068-0.256-0.147-0.509-0.208-0.762c-0.038-0.156,0.022-0.216,0.218-0.213c0.093,0,0.149-0.022,0.208-0.078
+                       c0.093-0.092,0.191-0.191,0.312-0.253c0.081-0.042,0.184-0.051,0.204-0.149c0.02-0.089-0.047-0.158-0.081-0.235
+                       c-0.077-0.174-0.294-0.256-0.385-0.424c0.077-0.097,0.148-0.185,0.215-0.276c0.04-0.055,0.095-0.064,0.167-0.051
+                       c0.096,0.018,0.094-0.038,0.108-0.096c0.02-0.084,0.088-0.117,0.18-0.071c0.095,0.052,0.182,0.116,0.272,0.173
+                       c0.053,0.034,0.11,0.098,0.156,0.093c0.32-0.047,0.499,0.242,0.804,0.236c0.059,0,0.147,0.029,0.172,0.066
+                       c0.115,0.198,0.331,0.138,0.514,0.154c0.063,0.006,0.146-0.007,0.151-0.076c0.007-0.073-0.046-0.133-0.132-0.157
+                       c-0.042-0.013-0.096-0.006-0.143-0.013c-0.23-0.021-0.287-0.036-0.299-0.198c-0.022-0.26-0.216-0.396-0.45-0.486
+                       c-0.219-0.084-0.197-0.267-0.3-0.397c-0.018-0.027,0.03-0.116,0.073-0.142c0.168-0.1,0.279-0.253,0.468-0.345
+                       c0.136-0.07,0.183-0.089,0.32-0.005c0.208,0.126,0.443,0.226,0.679,0.304c0.112,0.036,0.182,0.112,0.294,0.154
+                       c0.079-0.156,0.122-0.295,0.008-0.462c-0.063-0.089-0.054-0.212-0.085-0.32c-0.04-0.131-0.121-0.23-0.299-0.23
+                       c-0.117,0-0.175-0.065-0.231-0.131c-0.204-0.236-0.417-0.46-0.72-0.613c-0.206-0.104-0.314-0.269-0.307-0.486
+                       c0.007-0.235-0.022-0.468-0.136-0.689c-0.11-0.208-0.004-0.401,0.105-0.611c-0.136-0.089-0.234-0.213-0.34-0.335
+                       c-0.189-0.22-0.198-0.258-0.002-0.438c0.215-0.198,0.334-0.22,0.648-0.116c0.046,0.014,0.085,0.045,0.129,0.051
+                       c0.072,0.012,0.125-0.023,0.16-0.075c0.034-0.051,0.039-0.1-0.023-0.143c-0.205-0.147-0.199-0.149-0.317-0.458
+                       c-0.014-0.035-0.054-0.064-0.088-0.093c-0.066-0.055-0.093-0.11-0.019-0.177c0.058-0.049,0.11-0.1,0.168-0.149
+                       c0.286-0.239,0.373-0.263,0.707-0.07c0.294,0.166,0.626,0.288,0.887,0.503c0.147,0.122,0.364,0.161,0.5,0.312
+                       c0.06,0.067,0.182,0.009,0.282-0.037c-0.164-0.177-0.401-0.293-0.561-0.473c-0.063-0.071-0.113-0.127-0.122-0.208
+                       c-0.01-0.071-0.031-0.123-0.117-0.167c-0.146-0.071-0.166-0.236-0.101-0.32c0.097-0.129-0.031-0.277,0.094-0.393
+                       c0.045-0.042,0.018-0.104-0.017-0.153c-0.174-0.224-0.254-0.477-0.294-0.737c-0.022-0.131-0.072-0.24-0.204-0.318
+                       c-0.053-0.031-0.098-0.07-0.146-0.108c-0.229-0.182-0.239-0.212-0.1-0.461c0.031-0.052,0.084-0.099,0.024-0.144
+                       c-0.151-0.112-0.239-0.256-0.338-0.399c-0.045-0.067-0.186-0.089-0.178-0.181c0.007-0.124,0.158-0.169,0.248-0.241
+                       c0.067-0.056,0.169-0.081,0.254-0.122c0.112-0.061,0.117-0.089,0.038-0.201c-0.101-0.141-0.101-0.141,0.033-0.253
+                       c0.033-0.029,0.057-0.071,0.096-0.092c0.354-0.202,0.334-0.28,0.714-0.038c0.064,0.04,0.134,0.075,0.197,0.112
+                       c0.117-0.045,0.025-0.089,0.011-0.129c-0.022-0.067-0.06-0.132-0.062-0.199c-0.004-0.051,0.038-0.108-0.02-0.153
+                       c-0.153-0.11-0.103-0.21,0.011-0.312c0.065-0.061,0.129-0.122,0.191-0.187c0.085-0.082,0.185-0.104,0.309-0.069
+                       c0.06,0.018,0.125,0.029,0.189,0.042c0.086,0.014,0.186,0.118,0.251,0.018c0.046-0.073-0.055-0.151-0.121-0.211
+                       c-0.086-0.08-0.191-0.142-0.154-0.279c0.126-0.481-0.102-0.892-0.394-1.28c-0.079-0.109-0.062-0.175,0.027-0.254
+                       c0.055-0.049,0.108-0.11,0.179-0.135c0.127-0.042,0.177-0.122,0.18-0.222c0.005-0.289,0.265-0.388,0.507-0.499
+                       c0.059-0.027,0.139-0.027,0.189,0.011c0.136,0.101,0.318,0.047,0.464,0.107c0.044-0.187-0.014-0.354-0.145-0.503
+                       c-0.044-0.05-0.044-0.101,0-0.152c0.057-0.064,0.105-0.139,0.177-0.19c0.071-0.053,0.162-0.096,0.253-0.118
+                       c0.086-0.024,0.136,0.059,0.209,0.086c0.061,0.022,0.127,0.075,0.175,0.067c0.338-0.067,0.414,0.129,0.414,0.322
+                       c0,0.177,0.088,0.246,0.251,0.304c0.232,0.078,0.421,0.207,0.581,0.366c0.119,0.122,0.138,0.182,0.021,0.288
+                       c-0.124,0.118-0.178,0.256-0.255,0.393c-0.077,0.138-0.038,0.34-0.272,0.401c-0.005,0.003-0.005,0.028,0,0.038
+                       c0.007,0.012,0.026,0.027,0.035,0.024c0.046-0.011,0.096-0.018,0.137-0.038c0.205-0.11,0.407-0.225,0.611-0.339
+                       c0.122-0.069,0.232-0.081,0.364-0.012c0.112,0.061,0.213,0.125,0.303,0.205c0.213,0.182,0.228,0.221,0,0.397
+                       c-0.172,0.135-0.213,0.341-0.399,0.461c-0.02,0.011-0.011,0.051-0.014,0.079c-0.013,0.079,0.06,0.146,0.141,0.125
+                       c0.048-0.011,0.09-0.027,0.136-0.041c0.119-0.038,0.23-0.12,0.368-0.047c0.193,0.104,0.387,0.208,0.485,0.393
+                       c0.015,0.027-0.011,0.084-0.041,0.108c-0.09,0.078-0.189,0.151-0.29,0.22c-0.143,0.098-0.185,0.217-0.159,0.366
+                       c0.011,0.068,0.002,0.139,0.019,0.206c0.058,0.226,0.144,0.448,0.013,0.683c-0.031,0.054,0.002,0.134,0.011,0.203
+                       c0.015,0.113,0.081,0.168,0.221,0.182c0.416,0.045,0.53,0.096,0.815,0.373c-0.036,0.113-0.149,0.18-0.235,0.259
+                       c-0.096,0.087-0.167,0.171-0.059,0.287c0.033,0.037,0.009,0.08-0.024,0.113c-0.055,0.052-0.125,0.093-0.103,0.175
+                       c0.039,0.142-0.233,0.305-0.022,0.409c0.157,0.075,0.261-0.132,0.4-0.193c0.134-0.062,0.222-0.078,0.351,0.004
+                       c0.105,0.067,0.202,0.136,0.281,0.224c0.149,0.175,0.163,0.178-0.022,0.346c-0.093,0.085-0.136,0.175-0.169,0.287
+                       c-0.05,0.157-0.112,0.361-0.096,0.475c0.007,0.059-0.002,0.11-0.055,0.151c-0.103,0.075-0.057,0.151,0.005,0.218
+                       c0.136,0.147,0.184,0.279-0.003,0.43c-0.081,0.067-0.101,0.169-0.064,0.273c0.022,0.065,0.026,0.134,0.036,0.202
+                       c0.026,0.181-0.024,0.325-0.239,0.406c-0.057,0.023-0.097,0.071-0.136,0.1c-0.031,0.132,0.151,0.091,0.173,0.185
+                       c0.018,0.084,0.125,0.122,0.191,0.18c0.105,0.089,0.112,0.205-0.009,0.291c-0.204,0.139-0.182,0.335-0.219,0.515
+                       c-0.009,0.051,0.031,0.118-0.031,0.151c-0.167,0.088-0.241,0.21-0.246,0.377c-0.002,0.069-0.096,0.04-0.158,0.04
+                       c-0.182,0-0.215,0.015-0.227,0.143c-0.019,0.211-0.078,0.405-0.221,0.58c-0.029,0.033-0.024,0.084,0.022,0.113
+                       c0.05,0.029,0.095,0.011,0.127-0.022c0.117-0.124,0.261-0.21,0.45-0.226c0.091-0.006,0.152-0.041,0.198-0.106
+                       c0.052-0.078,0.136-0.114,0.237-0.129c0.132-0.024,0.222-0.089,0.325-0.165c0.208-0.149,0.452-0.257,0.684-0.381
+                       c0.018-0.008,0.078,0.002,0.086,0.015c0.079,0.16,0.306,0.175,0.413,0.327c0.129,0.184,0.173,0.269,0.048,0.432
+                       c-0.026,0.035-0.07,0.059-0.101,0.091c-0.134,0.135-0.208,0.292-0.091,0.452c0.098,0.131-0.015,0.204-0.059,0.297
+                       c-0.002,0-0.002-0.002-0.006-0.002c0,0.002-0.003,0.002-0.003,0.004c-0.112-0.004-0.222-0.014-0.334-0.006
+                       c-0.083,0.004-0.156,0.046-0.184,0.117c-0.011,0.022-0.002,0.051,0.004,0.078c0.003,0.01,0.027,0.028,0.034,0.025
+                       c0.169-0.056,0.394-0.028,0.479-0.213h0.008v-0.002c0.284,0.071,0.375,0.284,0.49,0.479c0.031,0.053,0.005,0.106-0.033,0.153
+                       c-0.039,0.045-0.077,0.091-0.12,0.134c-0.162,0.155-0.232,0.31-0.105,0.521c0.087,0.144,0.031,0.23-0.174,0.277
+                       c-0.342,0.078-0.577,0.249-0.735,0.503c-0.105,0.171-0.188,0.338-0.105,0.544c0.079,0.198-0.029,0.379-0.165,0.54
+                       c-0.067,0.078-0.157,0.141-0.233,0.215c-0.073,0.076-0.143,0.134-0.281,0.129c-0.156-0.004-0.027,0.187-0.166,0.216
+                       c-0.056,0.014-0.183,0.01-0.157,0.053c0.101,0.162-0.014,0.291-0.043,0.433c-0.018,0.088,0.06,0.164,0.166,0.169
+                       c0.13,0.006,0.264-0.003,0.366-0.087c0.13-0.109,0.258-0.218,0.468-0.147c0.009,0.004,0.038-0.002,0.044-0.008
+                       c0.225-0.271,0.694-0.228,0.917-0.506c0.016-0.025,0.088-0.034,0.13-0.03c0.136,0.014,0.004,0.213,0.177,0.198
+                       c0.105-0.009,0.196-0.024,0.232,0.087c0.005,0.013,0.01,0.027,0.014,0.04c0.031,0.108,0.254,0.106,0.22,0.247
+                       c-0.025,0.103-0.16,0.132-0.241,0.195c-0.054,0.047-0.047,0.091-0.032,0.151c0.037,0.16,0.141,0.308,0.109,0.48
+                       c-0.303,0.168-0.303,0.168-0.611,0.182c-0.087,0.002-0.162,0.022-0.21,0.084c-0.068,0.083-0.171,0.127-0.261,0.185
+                       c-0.04,0.023-0.044,0.078-0.007,0.108c0.029,0.024,0.093,0.051,0.121,0.04c0.12-0.045,0.237-0.096,0.342-0.16
+                       c0.103-0.062,0.189-0.106,0.299-0.013c0.062,0.051,0.118,0.006,0.17-0.027c0.183-0.116,0.37-0.226,0.556-0.34
+                       c0.077-0.047,0.143-0.042,0.219,0.012c0.164,0.119,0.334,0.235,0.552,0.29c0.077,0.018,0.098,0.091,0.067,0.136
+                       c-0.158,0.223-0.149,0.459-0.105,0.707c0.024,0.142-0.065,0.226-0.261,0.277c-0.146,0.038-0.22,0.103-0.215,0.236
+                       c0.007,0.296-0.175,0.55-0.28,0.823c-0.011,0.035-0.045,0.08-0.083,0.096c-0.237,0.088-0.356,0.275-0.512,0.432
+                       c-0.081,0.082-0.163,0.132-0.294,0.08c-0.067-0.023-0.138,0.005-0.167,0.055c-0.092,0.169-0.276,0.172-0.454,0.189
+                       c-0.079,0.01-0.158,0.02-0.239,0.031c-0.127,0.016-0.199,0.071-0.23,0.183c-0.071,0.253-0.163,0.302-0.466,0.257
+                       c-0.11-0.017-0.172-0.027-0.081,0.082c0.028,0.036,0.055,0.081,0.021,0.114c-0.085,0.084-0.111,0.195-0.15,0.297
+                       c1.753-0.583,3.467-1.145,5.125-1.669c0.042-0.132,0.09-0.264,0.047-0.407c-0.018-0.073,0.092-0.131,0.168-0.082
+                       c0.11,0.069,0.172,0.073,0.279-0.008c0.11-0.085,0.108-0.162,0.079-0.258c-0.042-0.131-0.145-0.215-0.286-0.269
+                       c-0.077-0.031-0.164-0.045-0.223,0.018c-0.088,0.1-0.174,0.1-0.287,0.027c-0.128-0.084-0.251-0.173-0.408-0.224
+                       c-0.07-0.022-0.074-0.092-0.022-0.139c0.091-0.081,0.065-0.149-0.011-0.216c-0.084-0.067-0.081-0.14-0.048-0.226
+                       c0.07-0.181,0.169-0.356,0.163-0.554c-0.002-0.058,0.079-0.093,0.149-0.071c0.112,0.037,0.213,0.055,0.313-0.024
+                       c0.065-0.051,0.145-0.047,0.23-0.024c0.042,0.011,0.124,0.011,0.134-0.007c0.147-0.27,0.349-0.084,0.531-0.048
+                       c0.057,0.297,0.358,0.312,0.617,0.37c0.069,0.016,0.136-0.084,0.105-0.15c-0.072-0.156-0.208-0.272-0.34-0.395
+                       c-0.156,0.023-0.256,0.119-0.382,0.175c-0.017-0.193-0.232-0.322-0.232-0.529c0-0.051-0.139-0.082-0.206-0.022
+                       c-0.132,0.118-0.219,0.067-0.32-0.029c-0.119-0.118-0.236-0.22-0.132-0.399c0.065-0.108-0.066-0.122-0.161-0.149
+                       c-0.158-0.044-0.182-0.084-0.081-0.166c0.135-0.112,0.174-0.262,0.264-0.391c0.086-0.124,0.173-0.244,0.377-0.2
+                       c0.116,0.027,0.129-0.063,0.187-0.102c0.041-0.032,0.101-0.04,0.134-0.007c0.094,0.091,0.163,0.2,0.349,0.153
+                       c0.055-0.013,0.108,0.055,0.134,0.107c0.043,0.084,0.12,0.129,0.228,0.137c0.167,0.012,0.31,0.078,0.449,0.153
+                       c0.17,0.096,0.32,0.227,0.567,0.144c0.067-0.021,0.196,0,0.251,0.091c0.074,0.118,0.202,0.136,0.338,0.115
+                       c0.189-0.031,0.337,0.101,0.521,0.089c0.024,0,0.058,0.027,0.077,0.047c0.052,0.051,0.082,0.131,0.173,0.138
+                       c0.112,0.011,0.158-0.085,0.231-0.134c0.064-0.042,0.127-0.088,0.177-0.142c0.132-0.147,0.108-0.272-0.079-0.374
+                       c-0.184-0.101-0.335-0.278-0.608-0.207c-0.064,0.018-0.123-0.029-0.169-0.068c-0.068-0.061-0.129-0.125-0.2-0.181
+                       c-0.129-0.106-0.18-0.113-0.343-0.036c-0.082,0.04-0.155,0.125-0.26,0.083c-0.101-0.04-0.199-0.098-0.272-0.165
+                       c-0.067-0.057-0.105-0.139-0.149-0.212c-0.033-0.063-0.033-0.151-0.086-0.187c-0.086-0.057-0.129,0.069-0.2,0.073
+                       c-0.157,0.011-0.313,0.008-0.472,0c-0.038-0.002-0.084-0.045-0.108-0.075c-0.057-0.082-0.108-0.168-0.16-0.255
+                       c-0.024-0.036-0.053-0.091-0.103-0.071c-0.292,0.114-0.476-0.129-0.748-0.131c-0.04-0.149-0.05-0.283,0.003-0.413
+                       c0.074-0.191,0.092-0.373-0.017-0.559c-0.027-0.051-0.002-0.116,0.081-0.127c0.116-0.013,0.225-0.027,0.285-0.131
+                       c0.011-0.02,0.046-0.037,0.074-0.049c0.277-0.108,0.277-0.106,0.347-0.268c0.031-0.079,0.053-0.16,0.095-0.234
+                       c0.116-0.192,0.132-0.362-0.112-0.501c-0.079-0.045-0.055-0.129-0.002-0.187c0.072-0.073,0.145-0.173,0.241-0.194
+                       c0.146-0.036,0.235-0.151,0.402-0.174c0.149,0.091,0.223,0.26,0.408,0.331c0.077,0.027,0.144,0.075,0.228,0.064
+                       c0.145-0.024,0.252,0.014,0.336,0.116c0.024,0.029,0.087,0.058,0.122,0.051c0.252-0.045,0.437,0.071,0.634,0.169
+                       c0.042,0.022,0.083,0.049,0.13,0.055c0.175,0.029,0.383,0.087,0.517-0.008c0.165-0.12-0.038-0.251-0.098-0.364
+                       c-0.07-0.133-0.183-0.249-0.211-0.399c-0.005-0.031-0.06-0.057-0.096-0.082c-0.008-0.008-0.03-0.006-0.045-0.011
+                       c-0.264-0.079-0.32-0.336-0.549-0.449c-0.221-0.11-0.445-0.224-0.531-0.459c-0.037-0.1-0.075-0.232-0.208-0.271
+                       c-0.246-0.073-0.176-0.224-0.167-0.373c0.007-0.067,0.132-0.108,0.055-0.182c-0.044-0.04-0.103-0.081-0.16-0.091
+                       c-0.258-0.049-0.411-0.277-0.693-0.286c-0.05-0.002-0.061-0.054-0.072-0.099c-0.067-0.253-0.143-0.506-0.208-0.76
+                       c-0.038-0.153,0.024-0.213,0.22-0.213c0.092,0,0.146-0.02,0.207-0.078c0.095-0.093,0.194-0.188,0.313-0.253
+                       c0.081-0.042,0.186-0.051,0.206-0.149c0.016-0.089-0.048-0.157-0.084-0.234c-0.077-0.172-0.294-0.257-0.383-0.424
+                       c0.074-0.097,0.146-0.186,0.213-0.277c0.043-0.055,0.098-0.064,0.168-0.051c0.095,0.02,0.093-0.037,0.106-0.095
+                       c0.019-0.085,0.091-0.118,0.182-0.071c0.096,0.051,0.18,0.115,0.27,0.173c0.053,0.033,0.113,0.099,0.156,0.092
+                       c0.323-0.044,0.5,0.242,0.803,0.236c0.06,0,0.149,0.031,0.173,0.069c0.117,0.194,0.33,0.135,0.514,0.151
+                       c0.062,0.006,0.145-0.007,0.15-0.075c0.008-0.071-0.045-0.134-0.132-0.158c-0.042-0.014-0.095-0.006-0.143-0.011
+                       c-0.227-0.02-0.284-0.038-0.299-0.2c-0.018-0.26-0.215-0.395-0.449-0.486c-0.217-0.084-0.197-0.267-0.297-0.397
+                       c-0.018-0.024,0.026-0.115,0.07-0.142c0.169-0.1,0.282-0.253,0.468-0.346c0.137-0.066,0.184-0.088,0.323-0.004
+                       c0.206,0.127,0.439,0.226,0.679,0.305c0.113,0.037,0.18,0.11,0.293,0.153c0.079-0.155,0.121-0.295,0.009-0.46
+                       c-0.063-0.09-0.055-0.216-0.086-0.322c-0.039-0.129-0.12-0.228-0.3-0.23c-0.115,0-0.174-0.063-0.231-0.131
+                       c-0.204-0.236-0.414-0.458-0.72-0.613c-0.206-0.102-0.311-0.269-0.306-0.485c0.009-0.236-0.022-0.466-0.137-0.688
+                       c-0.109-0.211-0.004-0.405,0.109-0.613c-0.136-0.088-0.237-0.212-0.342-0.332c-0.189-0.222-0.196-0.259-0.002-0.44
+                       c0.215-0.198,0.334-0.218,0.648-0.115c0.046,0.015,0.086,0.046,0.132,0.052c0.07,0.012,0.124-0.027,0.158-0.075
+                       c0.033-0.053,0.038-0.102-0.024-0.146c-0.201-0.144-0.199-0.147-0.316-0.456c-0.011-0.035-0.055-0.066-0.088-0.095
+                       c-0.068-0.056-0.094-0.112-0.02-0.175c0.057-0.05,0.112-0.103,0.169-0.152c0.287-0.239,0.371-0.261,0.708-0.07
+                       c0.294,0.168,0.624,0.288,0.885,0.503c0.145,0.122,0.366,0.164,0.5,0.312c0.062,0.067,0.184,0.01,0.281-0.035
+                       c-0.165-0.18-0.399-0.295-0.562-0.475c-0.063-0.069-0.112-0.126-0.122-0.209c-0.009-0.068-0.031-0.121-0.117-0.164
+                       c-0.145-0.073-0.165-0.236-0.099-0.32c0.099-0.132-0.029-0.279,0.093-0.395c0.048-0.042,0.019-0.104-0.017-0.153
+                       c-0.172-0.224-0.253-0.477-0.294-0.737c-0.018-0.131-0.071-0.237-0.201-0.317c-0.052-0.032-0.1-0.072-0.147-0.109
+                       c-0.231-0.182-0.239-0.211-0.098-0.462c0.029-0.05,0.081-0.097,0.021-0.143c-0.15-0.112-0.238-0.256-0.336-0.399
+                       c-0.044-0.067-0.187-0.087-0.18-0.181c0.007-0.124,0.158-0.166,0.248-0.241c0.07-0.054,0.171-0.079,0.253-0.122
+                       c0.116-0.061,0.118-0.087,0.039-0.2c-0.101-0.142-0.101-0.14,0.033-0.254c0.037-0.029,0.058-0.07,0.096-0.092
+                       c0.357-0.203,0.334-0.277,0.715-0.038c0.064,0.04,0.134,0.075,0.196,0.114c0.118-0.047,0.029-0.089,0.015-0.132
+                       c-0.024-0.064-0.063-0.131-0.065-0.194c0-0.054,0.039-0.112-0.018-0.153c-0.153-0.112-0.103-0.213,0.011-0.315
+                       c0.068-0.061,0.129-0.122,0.191-0.184c0.083-0.085,0.187-0.107,0.309-0.071c0.062,0.017,0.126,0.029,0.189,0.041
+                       c0.086,0.016,0.187,0.12,0.251,0.018c0.048-0.073-0.055-0.151-0.119-0.211c-0.089-0.08-0.194-0.139-0.158-0.279
+                       c0.129-0.479-0.101-0.89-0.393-1.281c-0.079-0.105-0.062-0.175,0.026-0.252c0.055-0.049,0.108-0.112,0.18-0.134
+                       c0.127-0.044,0.179-0.122,0.179-0.224c0.008-0.287,0.266-0.387,0.509-0.499c0.057-0.027,0.137-0.027,0.186,0.011
+                       c0.137,0.1,0.318,0.05,0.465,0.107c0.045-0.187-0.015-0.35-0.144-0.501c-0.042-0.051-0.044-0.103-0.002-0.152
+                       c0.058-0.066,0.108-0.139,0.18-0.192c0.072-0.054,0.16-0.093,0.251-0.118c0.087-0.024,0.14,0.059,0.212,0.088
+                       c0.058,0.023,0.126,0.075,0.176,0.065c0.334-0.066,0.411,0.129,0.411,0.322c0,0.177,0.089,0.246,0.252,0.304
+                       c0.234,0.078,0.422,0.206,0.58,0.369c0.12,0.122,0.139,0.18,0.024,0.289c-0.126,0.116-0.182,0.255-0.258,0.39
+                       c-0.074,0.138-0.037,0.34-0.273,0.403c-0.005,0.002-0.005,0.027,0,0.037c0.008,0.011,0.026,0.027,0.037,0.024
+                       c0.048-0.008,0.098-0.017,0.136-0.037c0.206-0.112,0.411-0.224,0.613-0.34c0.12-0.069,0.231-0.078,0.362-0.009
+                       c0.113,0.057,0.213,0.124,0.307,0.202c0.21,0.184,0.224,0.224,0,0.399c-0.175,0.133-0.215,0.34-0.402,0.459
+                       c-0.02,0.012-0.01,0.051-0.015,0.078c-0.009,0.081,0.062,0.147,0.142,0.127c0.047-0.012,0.09-0.028,0.136-0.042
+                       c0.119-0.038,0.231-0.118,0.369-0.047c0.193,0.104,0.387,0.208,0.485,0.393c0.014,0.027-0.013,0.084-0.039,0.108
+                       c-0.094,0.078-0.189,0.151-0.292,0.22c-0.143,0.098-0.187,0.22-0.16,0.369c0.015,0.067,0.006,0.137,0.02,0.204
+                       c0.057,0.226,0.145,0.45,0.015,0.684c-0.032,0.053,0,0.135,0.008,0.204c0.015,0.11,0.085,0.167,0.221,0.18
+                       c0.415,0.045,0.531,0.098,0.815,0.375c-0.036,0.114-0.148,0.18-0.234,0.258c-0.096,0.088-0.168,0.17-0.061,0.288
+                       c0.034,0.036,0.013,0.081-0.024,0.111c-0.052,0.05-0.123,0.092-0.103,0.175c0.039,0.141-0.233,0.304-0.018,0.408
+                       c0.153,0.075,0.258-0.129,0.399-0.193c0.132-0.063,0.222-0.078,0.349,0.005c0.105,0.068,0.2,0.135,0.28,0.225
+                       c0.15,0.174,0.161,0.178-0.019,0.345c-0.096,0.086-0.139,0.175-0.173,0.286c-0.05,0.157-0.112,0.364-0.095,0.477
+                       c0.009,0.057-0.002,0.112-0.055,0.149c-0.103,0.075-0.057,0.153,0.004,0.218c0.136,0.149,0.184,0.279-0.002,0.431
+                       c-0.081,0.066-0.099,0.17-0.065,0.272c0.024,0.065,0.029,0.136,0.039,0.202c0.026,0.181-0.024,0.326-0.242,0.409
+                       c-0.055,0.019-0.098,0.069-0.136,0.098c-0.031,0.131,0.152,0.09,0.172,0.186c0.02,0.082,0.125,0.12,0.193,0.181
+                       c0.103,0.088,0.112,0.204-0.011,0.288c-0.204,0.142-0.182,0.335-0.215,0.517c-0.009,0.049,0.029,0.115-0.033,0.149
+                       c-0.168,0.091-0.243,0.21-0.247,0.377c-0.002,0.071-0.093,0.04-0.157,0.04c-0.18,0-0.216,0.017-0.228,0.144
+                       c-0.015,0.148-0.048,0.288-0.118,0.418c0.07,0.029,0.137,0.067,0.204,0.014c0.052-0.042,0.048-0.134,0.083-0.2
+                       c0.029-0.059,0.112-0.096,0.171-0.063c0.181,0.105,0.316,0.051,0.445-0.066c0.032-0.029,0.08-0.045,0.123-0.071
+                       c-0.22-0.185-0.22-0.185-0.215-0.446c0.002-0.251,0.005-0.259,0.312-0.279c0.109-0.007,0.194-0.024,0.289-0.073
+                       c0.237-0.127,0.482-0.173,0.711,0.027c0.129,0.108,0.294,0.065,0.448,0.051c0.067-0.007,0.104-0.114,0.044-0.142
+                       c-0.363-0.171-0.26-0.481-0.327-0.743c-0.02-0.08,0.031-0.142,0.096-0.193c0.114-0.093,0.077-0.208,0.007-0.284
+                       c-0.112-0.129-0.179-0.302-0.309-0.391c-0.208-0.141-0.29-0.253-0.183-0.477c0.035-0.08-0.089-0.21-0.122-0.322
+                       c-0.059-0.191-0.031-0.226,0.215-0.318c0.239-0.088,0.356-0.295,0.275-0.489c-0.028-0.07-0.067-0.135-0.093-0.206
+                       c-0.031-0.089,0.064-0.173,0.182-0.165c0.016,0.003,0.04-0.001,0.049,0.007c0.23,0.157,0.38-0.004,0.553-0.093
+                       c0.091-0.049,0.122-0.116,0.044-0.177c-0.11-0.089-0.127-0.204-0.173-0.314c-0.099-0.246-0.045-0.411,0.235-0.486
+                       c0.244-0.067,0.401-0.228,0.614-0.324c0.136-0.063,0.198-0.16,0.175-0.295c-0.013-0.071-0.008-0.147,0.005-0.218
+                       c0.029-0.147,0.126-0.2,0.301-0.149c0.134,0.038,0.257,0.084,0.404,0.063c0.093-0.016,0.186,0.018,0.21,0.095
+                       c0.04,0.13,0.148,0.183,0.268,0.251c0.13,0.079,0.215,0.199,0.423,0.149c0.108-0.023,0.186,0.071,0.193,0.169
+                       c0.017,0.238-0.016,0.47-0.095,0.695c-0.221,0.635-0.13,0.466,0.253,0.892c0.038,0.045,0.134,0.067,0.15,0.114
+                       c0.056,0.149,0.163,0.175,0.324,0.137c0.049-0.013,0.102-0.013,0.154-0.015c0.085,0,0.141,0.071,0.089,0.119
+                       c-0.127,0.116-0.201,0.236-0.149,0.397c0.013,0.034-0.017,0.091-0.047,0.12c-0.28,0.24-0.335,0.601-0.666,0.819
+                       c0.261,0.118,0.266,0.12,0.386-0.011c0.187-0.205,0.443-0.32,0.717-0.411c0.014-0.004,0.036,0.002,0.053,0.002
+                       c0.137-0.004,0.108-0.241,0.312-0.159c0.11,0.045,0.204,0.118,0.333,0.124c0.05,0.004,0.105,0.015,0.151,0.033
+                       c0.052,0.023,0.071,0.073,0.042,0.114c-0.045,0.059-0.112,0.11-0.165,0.169c-0.044,0.049-0.052,0.1-0.018,0.161
+                       c0.104,0.202,0.104,0.204-0.032,0.307c-0.143,0.106-0.285,0.212-0.378,0.361c-0.046,0.075-0.122,0.144-0.201,0.2
+                       c-0.09,0.067-0.224,0.1-0.295,0.175c-0.109,0.11-0.177,0.251-0.259,0.375c0.007,0.106,0.114,0.102,0.188,0.127
+                       c0.077,0.023,0.113,0.119,0.219,0.088c0.097-0.104-0.029-0.255,0.072-0.336c0.109-0.086,0.266-0.131,0.401-0.194
+                       c0.048-0.02,0.098-0.036,0.137-0.065c0.145-0.1,0.297-0.098,0.428,0c0.139,0.1,0.295,0.144,0.464,0.189
+                       c0.069,0.017,0.114,0.092,0.063,0.141c-0.237,0.218-0.35,0.507-0.605,0.713c-0.127,0.1-0.278,0.173-0.405,0.275
+                       c0.044,0.132,0.214,0.2,0.205,0.351c-0.004,0.045,0.016,0.075,0.042,0.102c0.016-0.044,0.028-0.092,0.05-0.135
+                       c0.031-0.059,0.112-0.096,0.17-0.063c0.182,0.105,0.316,0.049,0.445-0.066c0.033-0.029,0.08-0.047,0.124-0.071
+                       c-0.22-0.185-0.22-0.185-0.215-0.446c0.002-0.251,0.005-0.259,0.313-0.279c0.11-0.007,0.196-0.024,0.289-0.073
+                       c0.237-0.127,0.482-0.173,0.711,0.027c0.129,0.108,0.294,0.065,0.448,0.051c0.066-0.007,0.105-0.114,0.045-0.142
+                       c-0.363-0.171-0.26-0.484-0.324-0.743c-0.023-0.08,0.028-0.142,0.093-0.195c0.115-0.093,0.077-0.206,0.007-0.281
+                       c-0.112-0.129-0.178-0.302-0.309-0.391c-0.207-0.141-0.288-0.253-0.183-0.477c0.035-0.08-0.089-0.21-0.122-0.322
+                       c-0.059-0.191-0.028-0.226,0.219-0.318c0.238-0.088,0.356-0.295,0.273-0.489c-0.031-0.07-0.068-0.135-0.095-0.206
+                       c-0.031-0.089,0.064-0.173,0.182-0.165c0.017,0.003,0.04-0.001,0.05,0.007c0.229,0.157,0.382-0.004,0.552-0.093
+                       c0.094-0.049,0.123-0.116,0.044-0.177c-0.11-0.089-0.127-0.204-0.172-0.314c-0.099-0.246-0.046-0.411,0.233-0.486
+                       c0.245-0.067,0.402-0.228,0.615-0.326c0.137-0.061,0.199-0.158,0.175-0.293c-0.01-0.071-0.007-0.147,0.007-0.218
+                       c0.028-0.147,0.125-0.2,0.299-0.149c0.135,0.038,0.259,0.084,0.404,0.063c0.094-0.016,0.187,0.015,0.211,0.095
+                       c0.041,0.13,0.149,0.181,0.268,0.251c0.132,0.079,0.215,0.199,0.424,0.149c0.108-0.023,0.184,0.071,0.191,0.169
+                       c0.019,0.236-0.015,0.47-0.094,0.695c-0.22,0.635-0.128,0.464,0.254,0.892c0.039,0.045,0.134,0.067,0.151,0.114
+                       c0.055,0.149,0.162,0.175,0.323,0.137c0.05-0.013,0.103-0.013,0.155-0.015c0.085,0,0.142,0.071,0.089,0.119
+                       c-0.127,0.116-0.2,0.236-0.149,0.397c0.013,0.034-0.014,0.091-0.048,0.12c-0.279,0.24-0.334,0.601-0.664,0.819
+                       c0.261,0.118,0.265,0.12,0.384-0.011c0.187-0.205,0.443-0.32,0.717-0.411c0.015-0.004,0.036,0.002,0.053,0.002
+                       c0.138-0.004,0.108-0.241,0.313-0.159c0.11,0.045,0.204,0.118,0.332,0.124c0.05,0.002,0.105,0.014,0.151,0.033
+                       c0.052,0.023,0.071,0.073,0.042,0.114c-0.046,0.059-0.112,0.11-0.165,0.169c-0.042,0.049-0.052,0.1-0.018,0.161
+                       c0.104,0.202,0.104,0.204-0.032,0.307c-0.141,0.106-0.284,0.212-0.375,0.359c-0.049,0.078-0.124,0.147-0.204,0.202
+                       c-0.09,0.067-0.224,0.098-0.296,0.175c-0.106,0.11-0.176,0.251-0.258,0.375c0.007,0.104,0.115,0.102,0.189,0.127
+                       c0.074,0.023,0.11,0.119,0.217,0.088c0.098-0.104-0.028-0.255,0.072-0.336c0.11-0.086,0.266-0.131,0.402-0.194
+                       c0.048-0.02,0.098-0.036,0.139-0.065c0.143-0.1,0.294-0.098,0.426,0c0.139,0.1,0.296,0.144,0.464,0.189
+                       c0.072,0.017,0.116,0.092,0.062,0.141c-0.236,0.218-0.348,0.503-0.607,0.713c-0.125,0.1-0.272,0.173-0.401,0.275
+                       c0.043,0.132,0.212,0.2,0.204,0.351c-0.008,0.122,0.137,0.155,0.229,0.222c0.108,0.08,0.12,0.151,0.022,0.224
+                       c-0.136,0.1-0.251,0.193-0.232,0.366c0.009,0.093-0.077,0.155-0.169,0.206c-0.204,0.114-0.397,0.24-0.608,0.344
+                       c-0.117,0.058-0.172,0.139-0.222,0.236l0.005,0.006c0.217-0.042,0.454-0.008,0.648-0.142c0.081-0.055,0.204-0.071,0.294-0.027
+                       c0.158,0.075,0.261,0.004,0.375-0.067c0.07-0.042,0.142-0.086,0.218-0.115c0.161-0.061,0.337,0.011,0.335,0.161
+                       c-0.003,0.142,0.018,0.177,0.184,0.138c0.086-0.02,0.158-0.049,0.231-0.089c0.118-0.062,0.194-0.031,0.228,0.075
+                       c0.017,0.061,0.026,0.124,0.038,0.187c0.002-0.007,0.01-0.01,0.013-0.016c0.047-0.149,0.017-0.297-0.108-0.413
+                       c-0.118-0.108-0.256-0.199-0.378-0.304c-0.061-0.051,0-0.161,0.083-0.173c0.053-0.006,0.105-0.011,0.155-0.009
+                       c0.099,0.004,0.195,0.113,0.287,0.038c0.055-0.042,0.051-0.136,0.085-0.201c0.031-0.062,0.115-0.095,0.172-0.062
+                       c0.178,0.102,0.312,0.049,0.445-0.067c0.031-0.029,0.081-0.047,0.124-0.071c-0.22-0.184-0.22-0.184-0.218-0.446
+                       c0.005-0.253,0.005-0.259,0.316-0.279c0.108-0.006,0.193-0.024,0.287-0.075c0.236-0.124,0.479-0.171,0.712,0.027
+                       c0.127,0.112,0.292,0.067,0.447,0.051c0.064-0.004,0.103-0.11,0.045-0.139c-0.363-0.171-0.26-0.484-0.327-0.745
+                       c-0.021-0.082,0.031-0.141,0.093-0.194c0.116-0.093,0.077-0.206,0.01-0.281c-0.114-0.13-0.178-0.303-0.311-0.393
+                       c-0.208-0.14-0.286-0.251-0.183-0.475c0.038-0.083-0.087-0.211-0.123-0.322c-0.057-0.191-0.029-0.227,0.218-0.318
+                       c0.239-0.089,0.356-0.295,0.275-0.491c-0.029-0.069-0.069-0.135-0.095-0.206c-0.032-0.087,0.064-0.171,0.182-0.162
+                       c0.018,0.002,0.04-0.002,0.053,0.006c0.229,0.158,0.38-0.004,0.549-0.092c0.094-0.049,0.123-0.116,0.042-0.18
+                       c-0.106-0.089-0.126-0.205-0.172-0.313c-0.098-0.249-0.045-0.411,0.234-0.486c0.246-0.066,0.402-0.228,0.617-0.326
+                       c0.136-0.062,0.197-0.157,0.174-0.293c-0.011-0.07-0.008-0.147,0.006-0.217c0.029-0.147,0.124-0.2,0.299-0.151
+                       c0.134,0.037,0.259,0.084,0.406,0.062c0.092-0.013,0.184,0.018,0.211,0.098c0.038,0.126,0.149,0.18,0.265,0.249
+                       c0.134,0.08,0.215,0.2,0.424,0.151c0.11-0.027,0.186,0.071,0.193,0.169c0.016,0.235-0.017,0.468-0.093,0.695
+                       c-0.221,0.635-0.129,0.463,0.251,0.892c0.04,0.045,0.134,0.066,0.153,0.11c0.054,0.149,0.16,0.177,0.319,0.138
+                       c0.05-0.012,0.106-0.014,0.157-0.014c0.082-0.002,0.141,0.071,0.09,0.12c-0.127,0.113-0.201,0.233-0.149,0.397
+                       c0.01,0.033-0.017,0.091-0.048,0.118c-0.282,0.241-0.336,0.603-0.667,0.819c0.264,0.117,0.267,0.122,0.386-0.01
+                       c0.189-0.204,0.442-0.319,0.72-0.41c0.014-0.004,0.033,0.002,0.05,0.002c0.141-0.004,0.11-0.242,0.316-0.16
+                       c0.108,0.045,0.2,0.118,0.332,0.125c0.051,0.002,0.103,0.013,0.148,0.033c0.056,0.019,0.072,0.073,0.043,0.11
+                       c-0.046,0.063-0.11,0.114-0.162,0.171c-0.046,0.049-0.055,0.1-0.022,0.163c0.108,0.202,0.105,0.204-0.029,0.304
+                       c-0.143,0.108-0.285,0.216-0.378,0.361c-0.048,0.079-0.122,0.147-0.201,0.202c-0.093,0.067-0.224,0.099-0.299,0.174
+                       c-0.104,0.113-0.174,0.253-0.258,0.377c0.009,0.104,0.115,0.102,0.189,0.126c0.077,0.024,0.112,0.12,0.22,0.088
+                       c0.096-0.104-0.029-0.255,0.071-0.335c0.108-0.089,0.266-0.133,0.403-0.195c0.045-0.022,0.097-0.037,0.135-0.064
+                       c0.144-0.102,0.295-0.1,0.429-0.002c0.138,0.102,0.296,0.146,0.464,0.19c0.07,0.018,0.115,0.093,0.06,0.142
+                       c-0.237,0.218-0.349,0.503-0.604,0.711c-0.127,0.102-0.276,0.175-0.405,0.274c0.044,0.134,0.215,0.202,0.204,0.354
+                       c-0.007,0.122,0.139,0.155,0.23,0.222c0.108,0.078,0.121,0.151,0.024,0.222c-0.136,0.1-0.254,0.194-0.234,0.369
+                       c0.011,0.092-0.075,0.154-0.17,0.206c-0.204,0.11-0.397,0.239-0.605,0.343c-0.117,0.058-0.174,0.14-0.224,0.234l0.007,0.006
+                       c0.218-0.039,0.454-0.006,0.645-0.139c0.083-0.058,0.204-0.074,0.296-0.03c0.158,0.078,0.261,0.007,0.373-0.064
+                       c0.068-0.042,0.141-0.086,0.217-0.116c0.16-0.062,0.34,0.012,0.338,0.163c-0.002,0.139,0.018,0.177,0.184,0.137
+                       c0.085-0.02,0.155-0.049,0.229-0.089c0.117-0.062,0.197-0.031,0.228,0.076c0.018,0.059,0.026,0.124,0.04,0.184
+                       c0.003-0.004,0.007-0.006,0.01-0.013c0.048-0.149,0.018-0.297-0.109-0.415c-0.117-0.109-0.255-0.198-0.378-0.303
+                       c-0.057-0.05,0-0.161,0.087-0.172c0.05-0.006,0.102-0.014,0.152-0.012c0.101,0.005,0.194,0.114,0.287,0.04
+                       c0.055-0.042,0.05-0.136,0.083-0.2c0.031-0.063,0.115-0.096,0.172-0.065c0.183,0.104,0.313,0.051,0.445-0.064
+                       c0.034-0.03,0.081-0.047,0.125-0.071c-0.22-0.185-0.22-0.185-0.215-0.446c0.002-0.253,0.005-0.259,0.313-0.279
+                       c0.106-0.007,0.193-0.024,0.288-0.075c0.237-0.126,0.481-0.171,0.711,0.027c0.119,0.102,0.27,0.07,0.413,0.055
+                       c-0.014-0.051,0-0.103,0.058-0.157c-0.333-0.173-0.242-0.477-0.306-0.731c-0.02-0.082,0.031-0.144,0.095-0.195
+                       c0.115-0.092,0.077-0.206,0.008-0.284c-0.112-0.126-0.18-0.3-0.311-0.391c-0.206-0.142-0.287-0.253-0.183-0.475
+                       c0.038-0.082-0.087-0.212-0.12-0.322c-0.059-0.191-0.031-0.226,0.215-0.318c0.239-0.088,0.356-0.297,0.275-0.491
+                       c-0.029-0.068-0.069-0.135-0.094-0.206c-0.03-0.086,0.065-0.171,0.183-0.163c0.016,0,0.038-0.001,0.049,0.005
+                       c0.23,0.159,0.381-0.002,0.553-0.091c0.09-0.049,0.121-0.116,0.043-0.18c-0.11-0.089-0.129-0.204-0.173-0.315
+                       c-0.101-0.245-0.046-0.408,0.235-0.483c0.244-0.069,0.401-0.228,0.614-0.326c0.136-0.063,0.196-0.157,0.174-0.293
+                       c-0.011-0.071-0.007-0.147,0.005-0.218c0.006-0.02,0.013-0.031,0.02-0.049c-0.045-0.064-0.088-0.129-0.134-0.195
+                       c-0.079-0.115-0.32-0.151-0.31-0.31c0.014-0.211,0.272-0.287,0.428-0.413c0.117-0.093,0.293-0.135,0.435-0.21
+                       c0.196-0.105,0.201-0.149,0.064-0.342c-0.169-0.244-0.169-0.242,0.061-0.435c0.06-0.049,0.098-0.122,0.165-0.159
+                       c0.608-0.348,0.571-0.477,1.224-0.065c0.112,0.069,0.229,0.131,0.339,0.191c0.201-0.078,0.046-0.151,0.022-0.222
+                       c-0.039-0.11-0.105-0.224-0.11-0.337c-0.002-0.089,0.067-0.189-0.033-0.262c-0.263-0.191-0.175-0.363,0.022-0.54
+                       c0.112-0.102,0.222-0.21,0.327-0.317c0.146-0.144,0.318-0.183,0.528-0.12c0.108,0.031,0.218,0.049,0.328,0.071
+                       c0.145,0.027,0.318,0.204,0.43,0.031c0.079-0.124-0.096-0.258-0.208-0.362c-0.149-0.137-0.33-0.241-0.268-0.479
+                       c0.218-0.825-0.175-1.532-0.672-2.199c-0.139-0.185-0.11-0.303,0.042-0.433c0.096-0.084,0.188-0.191,0.307-0.23
+                       c0.218-0.075,0.307-0.209,0.311-0.384c0.009-0.493,0.453-0.664,0.87-0.856c0.101-0.047,0.235-0.045,0.32,0.017
+                       c0.237,0.173,0.546,0.085,0.799,0.185l0.002,0.002c0.094,0.226,0.411,0.226,0.564,0.393c0.009,0.011,0.108-0.014,0.136-0.04
+                       c0.029-0.031,0.048-0.098,0.029-0.129c-0.033-0.061-0.091-0.136-0.153-0.149c-0.189-0.04-0.382-0.053-0.576-0.075v-0.002h-0.002
+                       c0.077-0.322-0.026-0.603-0.248-0.863c-0.074-0.084-0.077-0.173-0.002-0.257c0.1-0.114,0.184-0.24,0.306-0.33
+                       c0.122-0.089,0.278-0.162,0.43-0.203c0.15-0.039,0.239,0.105,0.364,0.151c0.102,0.038,0.217,0.132,0.301,0.114
+                       c0.577-0.116,0.709,0.222,0.707,0.552c0,0.305,0.151,0.424,0.432,0.519c0.397,0.136,0.722,0.355,0.996,0.632
+                       c0.205,0.209,0.238,0.309,0.04,0.495c-0.215,0.201-0.308,0.438-0.439,0.671c-0.132,0.239-0.065,0.583-0.471,0.693
+                       c-0.007,0.002-0.009,0.046,0.002,0.064c0.009,0.018,0.046,0.045,0.06,0.04c0.082-0.016,0.168-0.03,0.235-0.065
+                       c0.354-0.191,0.704-0.387,1.053-0.583c0.208-0.116,0.396-0.134,0.621-0.016c0.193,0.1,0.365,0.212,0.523,0.351
+                       c0.364,0.313,0.39,0.382,0,0.682c-0.297,0.23-0.365,0.583-0.689,0.789c-0.027,0.02-0.014,0.089-0.02,0.136
+                       c-0.02,0.135,0.105,0.249,0.241,0.218c0.079-0.02,0.155-0.05,0.233-0.073c0.204-0.067,0.395-0.205,0.632-0.081
+                       c0.333,0.177,0.665,0.358,0.833,0.674c0.023,0.045-0.02,0.142-0.067,0.185c-0.158,0.135-0.325,0.262-0.5,0.379
+                       c-0.244,0.165-0.321,0.375-0.272,0.631c0.021,0.115,0.005,0.237,0.033,0.351c0.098,0.39,0.246,0.772,0.022,1.172
+                       c-0.053,0.093,0.002,0.233,0.016,0.35c0.027,0.193,0.144,0.287,0.379,0.31c0.714,0.075,0.911,0.165,1.398,0.642
+                       c-0.06,0.193-0.251,0.309-0.402,0.444c-0.024,0.022-0.046,0.042-0.068,0.065c0.445-0.273,0.888-0.546,1.334-0.819
+                       c-0.042-0.027-0.132-0.034-0.181,0.011c-0.129,0.118-0.221,0.069-0.318-0.029c-0.123-0.116-0.239-0.22-0.134-0.399
+                       c0.064-0.109-0.067-0.122-0.163-0.149c-0.157-0.042-0.179-0.084-0.08-0.165c0.135-0.113,0.174-0.263,0.264-0.393
+                       c0.087-0.124,0.173-0.243,0.378-0.197c0.115,0.024,0.129-0.063,0.186-0.105c0.041-0.031,0.101-0.037,0.134-0.006
+                       c0.094,0.091,0.163,0.2,0.35,0.155c0.056-0.013,0.106,0.054,0.133,0.104c0.044,0.085,0.12,0.13,0.228,0.138
+                       c0.167,0.014,0.311,0.078,0.45,0.155c0.033,0.018,0.066,0.038,0.099,0.058c0.342-0.209,0.687-0.417,1.029-0.623
+                       c-0.051-0.01-0.105,0.006-0.194,0.049c-0.084,0.037-0.156,0.121-0.261,0.082c-0.101-0.04-0.196-0.098-0.272-0.167
+                       c-0.068-0.057-0.108-0.137-0.149-0.212c-0.033-0.061-0.033-0.152-0.086-0.185c-0.086-0.057-0.129,0.067-0.2,0.071
+                       c-0.156,0.012-0.313,0.008-0.469,0.002c-0.039-0.002-0.084-0.045-0.11-0.078c-0.057-0.083-0.108-0.169-0.16-0.253
+                       c-0.024-0.036-0.052-0.091-0.103-0.073c-0.292,0.113-0.476-0.128-0.748-0.128c-0.04-0.149-0.05-0.285,0.002-0.415
+                       c0.074-0.191,0.094-0.373-0.017-0.56c-0.027-0.05-0.001-0.115,0.082-0.126c0.115-0.013,0.224-0.027,0.284-0.129
+                       c0.015-0.022,0.046-0.04,0.074-0.051c0.277-0.106,0.277-0.106,0.347-0.269c0.033-0.078,0.052-0.159,0.095-0.233
+                       c0.115-0.193,0.132-0.362-0.112-0.501c-0.079-0.045-0.055-0.129-0.002-0.184c0.072-0.073,0.146-0.175,0.241-0.199
+                       c0.149-0.035,0.235-0.149,0.402-0.173c0.149,0.091,0.223,0.26,0.412,0.331c0.073,0.029,0.141,0.078,0.224,0.064
+                       c0.147-0.023,0.252,0.016,0.336,0.116c0.026,0.029,0.087,0.057,0.123,0.051c0.252-0.045,0.437,0.073,0.634,0.169
+                       c0.042,0.022,0.086,0.049,0.132,0.055c0.174,0.029,0.384,0.087,0.517-0.006c0.164-0.122-0.039-0.254-0.098-0.366
+                       c-0.07-0.133-0.185-0.246-0.211-0.397c-0.006-0.033-0.061-0.057-0.094-0.084c-0.011-0.01-0.033-0.005-0.048-0.012
+                       c-0.262-0.078-0.32-0.332-0.55-0.448c-0.22-0.11-0.445-0.224-0.531-0.46c-0.035-0.099-0.074-0.23-0.207-0.27
+                       c-0.247-0.073-0.178-0.224-0.166-0.373c0.005-0.067,0.132-0.109,0.052-0.182c-0.044-0.038-0.101-0.081-0.16-0.091
+                       c-0.259-0.049-0.411-0.277-0.694-0.287c-0.05-0.002-0.06-0.053-0.072-0.098c-0.066-0.253-0.143-0.506-0.208-0.76
+                       c-0.038-0.154,0.025-0.214,0.221-0.214c0.091,0,0.148-0.02,0.205-0.078c0.096-0.09,0.194-0.189,0.313-0.251
+                       c0.081-0.042,0.187-0.053,0.206-0.151c0.016-0.089-0.048-0.158-0.081-0.234c-0.079-0.172-0.296-0.257-0.385-0.424
+                       c0.074-0.096,0.146-0.184,0.214-0.275c0.042-0.057,0.097-0.064,0.167-0.051c0.095,0.018,0.095-0.039,0.106-0.096
+                       c0.023-0.084,0.092-0.12,0.183-0.071c0.095,0.05,0.181,0.116,0.27,0.173c0.051,0.034,0.112,0.099,0.156,0.091
+                       c0.322-0.045,0.499,0.244,0.802,0.238c0.061-0.002,0.151,0.029,0.173,0.066c0.117,0.195,0.332,0.136,0.514,0.154
+                       c0.063,0.004,0.145-0.01,0.153-0.076c0.005-0.072-0.048-0.133-0.131-0.159c-0.046-0.013-0.096-0.006-0.145-0.011
+                       c-0.228-0.02-0.285-0.038-0.3-0.201c-0.018-0.259-0.213-0.395-0.448-0.485c-0.218-0.082-0.197-0.267-0.298-0.397
+                       c-0.018-0.024,0.026-0.116,0.07-0.142c0.172-0.1,0.282-0.251,0.469-0.343c0.136-0.07,0.186-0.089,0.322-0.005
+                       c0.206,0.126,0.441,0.227,0.68,0.304c0.112,0.036,0.179,0.109,0.292,0.152c0.079-0.154,0.124-0.295,0.009-0.46
+                       c-0.062-0.091-0.052-0.212-0.086-0.322c-0.039-0.129-0.12-0.228-0.299-0.228c-0.116-0.002-0.175-0.065-0.232-0.131
+                       c-0.204-0.236-0.414-0.46-0.72-0.613c-0.205-0.104-0.311-0.271-0.303-0.489c0.007-0.235-0.024-0.466-0.139-0.688
+                       c-0.11-0.208-0.004-0.404,0.108-0.61c-0.136-0.089-0.237-0.214-0.342-0.335c-0.189-0.22-0.196-0.26-0.002-0.438
+                       c0.215-0.198,0.337-0.22,0.648-0.118c0.046,0.016,0.086,0.047,0.132,0.053c0.072,0.012,0.125-0.024,0.158-0.075
+                       c0.036-0.051,0.038-0.1-0.024-0.143c-0.203-0.147-0.198-0.149-0.316-0.458c-0.011-0.035-0.055-0.065-0.088-0.093
+                       c-0.064-0.055-0.092-0.113-0.017-0.177c0.055-0.048,0.11-0.1,0.167-0.148c0.287-0.243,0.373-0.264,0.708-0.074
+                       c0.294,0.169,0.624,0.289,0.885,0.507c0.145,0.12,0.366,0.161,0.5,0.31c0.062,0.069,0.184,0.01,0.282-0.035
+                       c-0.165-0.177-0.4-0.295-0.562-0.475c-0.062-0.069-0.112-0.127-0.123-0.209c-0.009-0.068-0.031-0.122-0.117-0.164
+                       c-0.145-0.073-0.165-0.236-0.099-0.32c0.099-0.131-0.03-0.277,0.095-0.393c0.046-0.042,0.017-0.106-0.02-0.153
+                       c-0.172-0.226-0.253-0.477-0.294-0.739c-0.018-0.129-0.071-0.237-0.2-0.314c-0.052-0.034-0.101-0.073-0.149-0.112
+                       c-0.229-0.182-0.238-0.21-0.098-0.459c0.029-0.052,0.083-0.101,0.021-0.144c-0.15-0.114-0.238-0.258-0.334-0.399
+                       c-0.046-0.067-0.187-0.089-0.182-0.183c0.008-0.122,0.158-0.167,0.248-0.24c0.069-0.055,0.17-0.08,0.254-0.123
+                       c0.115-0.061,0.117-0.087,0.038-0.2c-0.101-0.14-0.098-0.14,0.037-0.254c0.033-0.029,0.055-0.07,0.093-0.092
+                       c0.354-0.202,0.335-0.278,0.715-0.038c0.064,0.042,0.134,0.078,0.196,0.114c0.118-0.047,0.029-0.089,0.015-0.129
+                       c-0.022-0.067-0.062-0.132-0.062-0.199c-0.002-0.052,0.036-0.11-0.023-0.153c-0.152-0.11-0.102-0.21,0.013-0.314
+                       c0.067-0.061,0.129-0.123,0.191-0.185c0.086-0.084,0.186-0.106,0.309-0.069c0.062,0.018,0.127,0.03,0.191,0.04
+                       c0.083,0.016,0.184,0.12,0.248,0.018c0.048-0.071-0.055-0.149-0.119-0.211c-0.087-0.08-0.193-0.139-0.158-0.277
+                       c0.129-0.482-0.101-0.892-0.392-1.282c-0.079-0.107-0.062-0.175,0.026-0.252c0.057-0.049,0.11-0.11,0.18-0.135
+                       c0.127-0.045,0.178-0.122,0.178-0.224c0.008-0.287,0.267-0.386,0.51-0.499c0.057-0.028,0.136-0.028,0.186,0.012
+                       c0.137,0.099,0.318,0.048,0.465,0.105v0.002h0.002c0.055,0.132,0.239,0.132,0.327,0.229c0.008,0.006,0.064-0.007,0.081-0.024
+                       c0.017-0.018,0.029-0.056,0.017-0.073c-0.02-0.035-0.053-0.08-0.091-0.087c-0.111-0.023-0.223-0.031-0.335-0.045v-0.002h-0.002
+                       c0.045-0.186-0.015-0.351-0.144-0.501c-0.042-0.049-0.045-0.102-0.002-0.151c0.058-0.067,0.108-0.139,0.18-0.193
+                       c0.071-0.051,0.162-0.092,0.251-0.117c0.089-0.022,0.139,0.059,0.21,0.088c0.061,0.022,0.127,0.076,0.177,0.067
+                       c0.335-0.069,0.413,0.13,0.411,0.322c0,0.175,0.089,0.246,0.254,0.302c0.229,0.079,0.42,0.207,0.579,0.369
+                       c0.119,0.122,0.138,0.18,0.024,0.288c-0.127,0.116-0.183,0.256-0.256,0.391c-0.079,0.14-0.039,0.34-0.276,0.404
+                       c-0.005,0-0.005,0.027,0.003,0.038c0.005,0.008,0.024,0.024,0.033,0.022c0.048-0.008,0.095-0.016,0.136-0.037
+                       c0.205-0.112,0.411-0.224,0.615-0.34c0.119-0.067,0.23-0.078,0.36-0.01c0.113,0.058,0.213,0.125,0.307,0.205
+                       c0.211,0.182,0.227,0.221,0,0.397c-0.175,0.133-0.215,0.339-0.402,0.459c-0.017,0.011-0.01,0.053-0.015,0.081
+                       c-0.009,0.079,0.063,0.143,0.142,0.125c0.047-0.011,0.09-0.029,0.138-0.041c0.117-0.04,0.229-0.12,0.365-0.047
+                       c0.194,0.102,0.388,0.208,0.485,0.392c0.015,0.028-0.009,0.083-0.038,0.107c-0.092,0.08-0.189,0.153-0.292,0.222
+                       c-0.143,0.096-0.186,0.218-0.158,0.366c0.013,0.068,0.002,0.139,0.02,0.206c0.055,0.226,0.143,0.448,0.013,0.682
+                       c-0.032,0.055,0,0.135,0.009,0.204c0.014,0.113,0.084,0.166,0.22,0.182c0.252,0.027,0.392,0.055,0.526,0.135
+                       c0.007-0.021,0.007-0.044,0.014-0.066c0.039-0.144,0.118-0.169,0.289-0.131c0.23,0.048,0.423,0.204,0.67,0.199
+                       c0.038-0.002,0.086-0.031,0.108-0.059c0.019-0.029,0.028-0.098,0.011-0.11c-0.229-0.165-0.272-0.352-0.112-0.584
+                       c0.063-0.089,0.068-0.195-0.005-0.289c-0.119-0.159-0.119-0.345-0.129-0.53c-0.004-0.078-0.007-0.188,0.041-0.23
+                       c0.317-0.275,0.279-0.644,0.327-0.994c0.019-0.14,0.072-0.273,0.17-0.391c0.159-0.193,0.234-0.215,0.542-0.1
+                       c0.118,0.042,0.208,0.065,0.242-0.082c0.031-0.13,0.134-0.206,0.224-0.291c0.046-0.042,0.098-0.104,0.151-0.106
+                       c0.261-0.016,0.506,0.059,0.753,0.129c0.127,0.035,0.239,0.091,0.277,0.228c0.005,0.02,0.015,0.04,0.019,0.057
+                       c0.038,0.104,0.115,0.102,0.208,0.073c0.172-0.055,0.284,0.02,0.375,0.156c0.093,0.141,0.191,0.279,0.086,0.452
+                       c-0.031,0.053-0.079,0.1-0.103,0.155c-0.074,0.169,0.017,0.334,0.201,0.375c0.04,0.008,0.086,0.016,0.128,0.014
+                       c0.106-0.007,0.21-0.02,0.349-0.032c0.078,0.2,0.135,0.417,0.241,0.611c0.146,0.255,0.133,0.464-0.103,0.655
+                       c-0.061,0.053-0.138,0.106-0.134,0.194c0.004,0.031,0.049,0.085,0.073,0.083c0.084-0.005,0.193,0,0.243-0.047
+                       c0.261-0.244,0.505-0.091,0.749-0.034c0.034,0.229-0.211,0.289-0.217,0.458c0.001,0.006,0.006,0.008,0.011,0.015
+                       c0.189,0.012,0.372,0.034,0.552,0.047c0.221-0.319,0.026-0.554-0.069-0.805c-0.064-0.163,0.016-0.291,0.232-0.328
+                       c0.562-0.103,1.111-0.171,1.614,0.177c0.127,0.086,0.327,0.108,0.499,0.131c0.328,0.042,0.543-0.2,0.408-0.457
+                       c-0.1-0.189-0.293-0.342-0.299-0.564c-0.002-0.147-0.04-0.383,0.043-0.424c0.593-0.277,0.23-0.566,0.084-0.888
+                       c-0.16-0.359-0.231-0.743-0.341-1.118c-0.068-0.233,0.048-0.406,0.257-0.546c0.5-0.33,0.652-0.322,1.014-0.047
+                       c0.105,0.078,0.215,0.156,0.333,0.22c0.191,0.105,0.389,0.153,0.564-0.027c0.158-0.164,0.339-0.177,0.561-0.096
+                       c0.173,0.063,0.344,0.058,0.462-0.099c0.038-0.052,0.069-0.107,0.116-0.15c0.526-0.501,0.66-0.489,1.021,0.098
+                       c0.177,0.285,0.333,0.34,0.674,0.213c0.225-0.083,0.436-0.195,0.662-0.273c0.217-0.078,0.435,0.078,0.395,0.281
+                       c-0.052,0.261-0.151,0.517-0.193,0.779c-0.039,0.229-0.031,0.462-0.041,0.693c0.143,0.065,0.333,0.047,0.392-0.039
+                       c0.314-0.454,0.942-0.348,1.379-0.577c0.132-0.069,0.323,0.133,0.289,0.286c-0.052,0.242-0.177,0.455-0.353,0.644
+                       c-0.165,0.175-0.187,0.377-0.187,0.591c0,0.422,0.105,0.51,0.626,0.483c0.103-0.004,0.206-0.031,0.307-0.022
+                       c0.108,0.006,0.204,0.12,0.227,0.228c0.039-0.024,0.089-0.035,0.144-0.039c0.342-0.027,0.683-0.058,1.028-0.087
+                       c0.079-0.006,0.177,0.1,0.228,0.016c0.04-0.069,0.038-0.186-0.006-0.253c-0.105-0.167-0.152-0.357-0.305-0.506
+                       c-0.055-0.054,0.007-0.169,0.091-0.177c0.239-0.026,0.48-0.04,0.722-0.058c0.293,0.147,0.475-0.059,0.74-0.138
+                       c-0.143-0.137-0.248-0.251-0.366-0.355c-0.162-0.144-0.339-0.237-0.594-0.155c-0.211,0.069-0.37,0.008-0.456-0.18
+                       c-0.087-0.187-0.271-0.309-0.462-0.411c-0.383-0.208-0.679-0.499-1.038-0.73c-0.033-0.022-0.059-0.075-0.057-0.114
+                       c0.005-0.071,0.084-0.082,0.151-0.098c0.128-0.031,0.328,0.053,0.382-0.068c0.075-0.172-0.193-0.174-0.277-0.277
+                       c-0.017-0.021-0.055-0.034-0.087-0.047c-0.152-0.069-0.38-0.144-0.347-0.287c0.043-0.191,0.32-0.163,0.486-0.149
+                       c0.286,0.024,0.537,0.01,0.782-0.133c0.075-0.045,0.2-0.036,0.292-0.049c0.085-0.107-0.059-0.127-0.077-0.189
+                       c-0.008-0.027-0.024-0.057-0.02-0.085c0.029-0.121,0.292-0.372,0.417-0.357c0.315,0.036,0.567-0.119,0.853-0.171
+                       c0.211-0.037,0.371-0.033,0.524,0.093c0.114,0.093,0.232,0.186,0.41,0.167c0.08-0.007,0.198,0.033,0.221-0.063
+                       c0.019-0.066-0.091-0.07-0.145-0.099c-0.153-0.085-0.11-0.24-0.18-0.356c-0.044-0.075,0.02-0.14,0.079-0.198
+                       c0.074-0.066,0.063-0.129-0.021-0.184c-0.041-0.027-0.074-0.063-0.118-0.089c-0.294-0.171-0.366-0.261-0.439-0.548
+                       c-0.029-0.106-0.11-0.175-0.23-0.224c-0.334-0.14-0.621-0.326-0.738-0.644c-0.028-0.08-0.106-0.11-0.175-0.153
+                       c-0.101-0.059-0.196-0.124-0.284-0.195c-0.087-0.069-0.106-0.147-0.015-0.23c0.057-0.053,0.115-0.112,0.158-0.173
+                       c0.139-0.205,0.279-0.407,0.296-0.652c0.009-0.129,0.066-0.138,0.191-0.045c0.026,0.018,0.043,0.059,0.067,0.062
+                       c0.081,0.006,0.064-0.051,0.057-0.086c-0.026-0.126,0.036-0.206,0.183-0.218c0.206-0.02,0.376-0.164,0.603-0.12
+                       c0.033,0.008,0.096-0.031,0.123-0.062c0.084-0.093,0.193-0.185,0.224-0.291c0.041-0.135,0.081-0.218,0.266-0.2
+                       c0.125,0.013,0.184-0.067,0.241-0.142c0.081-0.108,0.201-0.147,0.354-0.151c0.184-0.006,0.228-0.08,0.182-0.224
+                       c-0.053-0.161-0.199-0.224-0.366-0.286c-0.167-0.058-0.193-0.114-0.093-0.232c0.091-0.108,0.097-0.175-0.026-0.255
+                       c-0.151-0.102-0.28-0.23-0.443-0.311c-0.174-0.084-0.327-0.15-0.33-0.348c-0.002-0.088-0.103-0.148-0.18-0.21
+                       c-0.102-0.08-0.198-0.164-0.292-0.253c-0.06-0.055-0.024-0.147,0.063-0.18c0.016-0.007,0.033-0.014,0.048-0.018
+                       c0.101-0.02,0.229-0.014,0.262-0.114c0.048-0.149,0.02-0.299-0.108-0.414c-0.117-0.109-0.256-0.2-0.378-0.305
+                       c-0.057-0.048,0-0.159,0.086-0.173c0.05-0.006,0.103-0.011,0.153-0.008c0.101,0.004,0.194,0.113,0.287,0.037
+                       c0.055-0.041,0.053-0.133,0.084-0.199c0.033-0.061,0.115-0.096,0.172-0.063c0.182,0.104,0.313,0.051,0.445-0.067
+                       c0.033-0.029,0.081-0.045,0.124-0.068c-0.219-0.187-0.219-0.187-0.214-0.448c0.002-0.252,0.005-0.26,0.312-0.28
+                       c0.111-0.006,0.193-0.024,0.289-0.073c0.237-0.126,0.48-0.173,0.71,0.027c0.129,0.109,0.295,0.065,0.447,0.051
+                       c0.068-0.006,0.105-0.113,0.046-0.141c-0.364-0.171-0.26-0.484-0.327-0.741c-0.02-0.082,0.031-0.144,0.095-0.195
+                       c0.115-0.096,0.077-0.208,0.007-0.284c-0.112-0.13-0.179-0.302-0.308-0.391c-0.208-0.142-0.29-0.253-0.186-0.477
+                       c0.038-0.08-0.086-0.211-0.12-0.322c-0.06-0.191-0.03-0.226,0.219-0.318c0.237-0.089,0.354-0.295,0.272-0.489
+                       c-0.029-0.071-0.068-0.135-0.094-0.206c-0.031-0.088,0.065-0.173,0.183-0.165c0.016,0.002,0.038-0.002,0.049,0.007
+                       c0.23,0.157,0.38-0.005,0.553-0.093c0.093-0.049,0.122-0.116,0.043-0.177c-0.111-0.089-0.127-0.204-0.173-0.315
+                       c-0.101-0.246-0.045-0.409,0.232-0.486c0.246-0.066,0.404-0.228,0.617-0.324c0.136-0.062,0.196-0.159,0.175-0.295
+                       c-0.013-0.07-0.008-0.146,0.007-0.215c0.025-0.149,0.124-0.202,0.299-0.151c0.132,0.037,0.255,0.084,0.404,0.062
+                       c0.093-0.015,0.187,0.016,0.211,0.096c0.04,0.129,0.147,0.182,0.268,0.251c0.132,0.078,0.215,0.198,0.422,0.149
+                       c0.108-0.024,0.185,0.071,0.191,0.169c0.02,0.235-0.014,0.471-0.093,0.695c-0.22,0.635-0.129,0.464,0.254,0.892
+                       c0.038,0.045,0.134,0.067,0.15,0.113c0.055,0.15,0.163,0.175,0.323,0.138c0.05-0.013,0.103-0.013,0.156-0.013
+                       c0.084-0.003,0.141,0.068,0.088,0.117c-0.126,0.116-0.2,0.236-0.148,0.397c0.011,0.036-0.015,0.091-0.048,0.12
+                       c-0.28,0.24-0.338,0.601-0.667,0.819c0.263,0.118,0.268,0.12,0.387-0.012c0.187-0.204,0.443-0.319,0.717-0.41
+                       c0.015-0.004,0.037,0.002,0.052,0.002c0.139-0.004,0.108-0.242,0.314-0.159c0.11,0.045,0.203,0.117,0.333,0.124
+                       c0.049,0.004,0.103,0.015,0.15,0.033c0.053,0.022,0.07,0.073,0.044,0.114c-0.046,0.059-0.112,0.11-0.166,0.168
+                       c-0.042,0.049-0.052,0.1-0.021,0.162c0.108,0.202,0.108,0.204-0.028,0.306c-0.144,0.106-0.285,0.213-0.378,0.362
+                       c-0.048,0.075-0.122,0.143-0.201,0.202c-0.091,0.064-0.224,0.098-0.297,0.173c-0.108,0.113-0.177,0.251-0.258,0.375
+                       c0.008,0.104,0.115,0.102,0.189,0.126c0.075,0.024,0.11,0.12,0.218,0.089c0.098-0.105-0.029-0.254,0.072-0.336
+                       c0.11-0.086,0.266-0.131,0.403-0.195c0.047-0.019,0.096-0.035,0.139-0.064c0.143-0.1,0.293-0.098,0.425,0
+                       c0.138,0.1,0.297,0.144,0.464,0.188c0.072,0.018,0.115,0.093,0.061,0.144c-0.235,0.216-0.347,0.503-0.605,0.711
+                       c-0.124,0.102-0.275,0.173-0.402,0.275c0.044,0.131,0.213,0.2,0.204,0.35c-0.009,0.124,0.139,0.155,0.227,0.222
+                       c0.11,0.08,0.123,0.151,0.025,0.224c-0.137,0.1-0.254,0.192-0.233,0.366c0.01,0.095-0.077,0.155-0.169,0.206
+                       c-0.203,0.113-0.4,0.24-0.608,0.344c-0.117,0.057-0.172,0.139-0.222,0.235l0.005,0.006c0.218-0.041,0.454-0.008,0.648-0.139
+                       c0.082-0.057,0.201-0.073,0.295-0.029c0.157,0.075,0.26,0.004,0.375-0.067c0.069-0.042,0.141-0.086,0.216-0.116
+                       c0.161-0.059,0.338,0.012,0.335,0.163c-0.002,0.141,0.02,0.177,0.184,0.137c0.086-0.02,0.158-0.049,0.232-0.088
+                       c0.117-0.063,0.193-0.031,0.224,0.075c0.022,0.071,0.03,0.144,0.048,0.215c0.024,0.093,0.175,0.185,0.065,0.278
+                       c-0.118,0.1-0.21,0.246-0.414,0.239c-0.091,0-0.177,0.01-0.242,0.063c-0.127,0.098-0.228,0.226-0.368,0.3
+                       c-0.141,0.075-0.339,0.066-0.445,0.206h0.002c0.109-0.013,0.209-0.004,0.295,0.061c0.076,0.057,0.158,0.11,0.248,0.175
+                       c0.088-0.089,0.158-0.171,0.241-0.242c0.125-0.102,0.281-0.063,0.314,0.082c0.016,0.069,0.002,0.142,0.002,0.232
+                       c0.158,0.037,0.297-0.04,0.439-0.071c0.086-0.02,0.166-0.036,0.254-0.012c0.093,0.027,0.152,0.098,0.115,0.167
+                       c-0.096,0.173-0.196,0.344-0.292,0.517c-0.077,0.137-0.217,0.168-0.38,0.192c-0.318,0.047-0.543,0.238-0.786,0.396
+                       c-0.041,0.029-0.048,0.086-0.008,0.117c0.033,0.022,0.103,0.038,0.138,0.024c0.079-0.029,0.146-0.08,0.219-0.12
+                       c0.048-0.024,0.119-0.035,0.133,0.014c0.056,0.177,0.221,0.204,0.395,0.237c0.103,0.018,0.115,0.093,0.039,0.169
+                       c-0.072,0.067-0.151,0.124-0.217,0.191c-0.087,0.087-0.068,0.177,0.059,0.202c0.186,0.035,0.277,0.104,0.248,0.273
+                       c-0.009,0.051,0.06,0.086,0.103,0.059c0.261-0.161,0.39-0.033,0.543,0.136c0.114,0.126,0.031,0.186-0.016,0.3
+                       c-0.127,0.293-0.379,0.422-0.697,0.519c-0.143,0.041-0.27,0.126-0.401,0.198c-0.017,0.011-0.024,0.057-0.013,0.075
+                       c0.015,0.019,0.053,0.035,0.084,0.04c0.129,0.019,0.242-0.005,0.333-0.089c0.124-0.112,0.26-0.14,0.418-0.042
+                       c0.112,0.071,0.23,0.051,0.344-0.004c0.046-0.02,0.088-0.045,0.139-0.061c0.186-0.055,0.302,0.005,0.311,0.181
+                       c0.005,0.092-0.04,0.161,0.143,0.147c0.211-0.02,0.296,0.075,0.235,0.235c-0.127,0.33-0.334,0.608-0.793,0.688
+                       c0.047,0.08,0.097,0.155,0.143,0.233c0.05,0.081,0.125,0.096,0.217,0.057c0.062-0.027,0.117-0.062,0.181-0.084
+                       c0.123-0.039,0.221,0.018,0.204,0.122c-0.031,0.169-0.036,0.33-0.246,0.457c-0.217,0.138-0.385,0.338-0.56,0.522
+                       c-0.119,0.128-0.187,0.254-0.049,0.438c0.126,0.173,0.097,0.393-0.054,0.575c-0.053,0.065-0.103,0.124-0.031,0.195
+                       c0.065,0.063,0.151,0.061,0.241,0.049c0.173-0.024,0.344-0.045,0.52-0.059c0.086-0.01,0.191,0,0.233,0.068
+                       c0.118,0.181,0.27,0.136,0.441,0.073c0.184-0.068,0.378-0.051,0.569-0.025c0.156,0.021,0.22,0.141,0.141,0.27
+                       c-0.031,0.051-0.078,0.096-0.11,0.149c-0.059,0.1-0.277,0.016-0.277,0.156c0,0.08,0.079,0.157,0.104,0.239
+                       c0.02,0.057-0.006,0.118-0.071,0.153c-0.042,0.024-0.095,0.038-0.134,0.067c-0.103,0.073-0.081,0.147,0.056,0.186
+                       c0.293,0.091,0.578,0.218,0.908,0.138c0.064-0.016,0.143,0.013,0.169,0.078c0.026,0.065-0.024,0.11-0.078,0.149
+                       c-0.081,0.053-0.163,0.139-0.252,0.151c-0.22,0.027-0.334,0.171-0.452,0.281c-0.147,0.14-0.275,0.289-0.476,0.389
+                       c-0.119,0.063-0.211,0.173-0.155,0.302c0.062,0.142-0.008,0.242-0.127,0.305c-0.228,0.115-0.409,0.268-0.605,0.414
+                       c-0.048,0.036-0.121,0.067-0.183,0.067c-0.13,0-0.241,0.013-0.318,0.113c-0.082,0.102-0.184,0.195-0.243,0.309
+                       c1.775-0.803,3.556-1.597,5.337-2.379c-0.043-0.031-0.089-0.055-0.127-0.051c-0.389,0.033-0.509-0.344-0.799-0.457
+                       c-0.029-0.014-0.06-0.071-0.057-0.104c0.022-0.272-0.165-0.391-0.371-0.517c-0.176-0.107-0.191-0.454-0.042-0.588
+                       c0.028-0.024,0.077-0.053,0.112-0.047c0.492,0.075,0.983-0.075,1.475-0.024c0.189,0.02,0.38,0.033,0.61,0.051
+                       c-0.002-0.355-0.225-0.577-0.274-0.866c-0.03-0.175-0.186-0.359-0.37-0.483c-0.175-0.118-0.329-0.262-0.513-0.369
+                       c-0.157-0.093-0.284-0.182-0.268-0.377c0.008-0.087-0.014-0.173-0.09-0.218c-0.309-0.177-0.203-0.466-0.217-0.721
+                       c-0.002-0.039,0.065-0.113,0.112-0.122c0.05-0.011,0.132,0.018,0.168,0.057c0.081,0.091,0.149,0.201,0.213,0.305
+                       c0.059,0.095,0.133,0.161,0.257,0.133c0.098-0.024,0.122-0.102,0.116-0.19c-0.003-0.041-0.01-0.087,0.009-0.12
+                       c0.114-0.211,0.064-0.378-0.096-0.555c-0.123-0.137-0.059-0.306,0.11-0.322c0.316-0.029,0.579-0.12,0.756-0.391
+                       c0.06-0.088,0.179-0.106,0.29-0.104c0.214,0,0.429,0.007,0.644,0.01c0.19,0,0.319,0.106,0.447,0.218
+                       c0.166,0.139,0.363,0.219,0.584,0.237c0.18,0.012,0.373,0.067,0.579-0.057c-0.182-0.18-0.469-0.016-0.595-0.236
+                       c-0.103-0.179-0.324-0.179-0.496-0.255c-0.121-0.055-0.187-0.155-0.22-0.287c-0.113-0.434-0.364-0.772-0.803-0.968
+                       c-0.153-0.068-0.299-0.155-0.369-0.326c-0.028-0.066-0.103-0.151-0.172-0.164c-0.372-0.073-0.419-0.366-0.507-0.635
+                       c-0.031-0.096-0.054-0.195-0.089-0.288c-0.036-0.093-0.13-0.193-0.002-0.264c0.052-0.027,0.156,0.039,0.234,0.057
+                       c0.072,0.016,0.148-0.015,0.146-0.08c-0.007-0.535,0.397-0.872,0.667-1.271c0.041-0.063,0.156-0.144,0.199-0.126
+                       c0.284,0.108,0.595-0.022,0.877,0.113c0.239,0.112,0.256,0.089,0.376-0.153c0.055-0.108,0.088-0.226,0.133-0.338
+                       c0.039-0.09,0.201-0.099,0.163-0.253c-0.182-0.117-0.425-0.073-0.629-0.228c-0.255-0.195-0.455-0.379-0.615-0.664
+                       c-0.152-0.271-0.34-0.503-0.332-0.832c0.005-0.138-0.074-0.275-0.112-0.411c-0.034-0.119-0.068-0.237-0.092-0.357
+                       c-0.017-0.082,0.002-0.167,0.074-0.22c0.081-0.059,0.156-0.022,0.235,0.022c0.354,0.198,0.449,0.165,0.511-0.228
+                       c0.033-0.204,0.172-0.322,0.299-0.455c0.077-0.078,0.191-0.089,0.301-0.061c0.122,0.031,0.241,0.067,0.362,0.098
+                       c0.02-0.051,0.048-0.089,0.048-0.124c0.014-0.438,0.116-0.499,0.525-0.318c0.156,0.069,0.309,0.147,0.469,0.202
+                       c0.083,0.03,0.174-0.006,0.227-0.078c0.052-0.071,0.057-0.161,0.01-0.23c-0.046-0.067-0.12-0.161-0.177-0.161
+                       c-0.239,0.003-0.259-0.315-0.541-0.278c-0.291,0.038-0.456-0.266-0.71-0.365c-0.028-0.012-0.04-0.12-0.02-0.169
+                       c0.085-0.187,0.022-0.344-0.145-0.415c-0.285-0.122-0.375-0.369-0.533-0.583c-0.148-0.202-0.136-0.369-0.038-0.568
+                       c0.077-0.156,0.115-0.175,0.272-0.056c0.067,0.052,0.119,0.142,0.205,0.081c0.129-0.093,0.239,0.064,0.381-0.007
+                       c-0.108-0.215-0.356-0.355-0.368-0.626c-0.01-0.193,0.038-0.29,0.237-0.246c0.25,0.056,0.392,0.032,0.492-0.228
+                       c0.088-0.226,0.237-0.249,0.471-0.175c0.139,0.042,0.239,0.187,0.406,0.131c0.077-0.078,0.037-0.155,0.007-0.228
+                       c-0.064-0.167-0.077-0.31,0.105-0.432c0.085-0.056,0.138-0.151,0.193-0.238c0.186-0.304,0.151-0.408-0.189-0.564
+                       c-0.038-0.017-0.084-0.019-0.121-0.039c-0.163-0.08-0.184-0.171-0.083-0.348c0.031-0.051,0.079-0.096,0.114-0.138
+                       c-0.026-0.166-0.189-0.169-0.289-0.222c-0.213-0.11-0.419-0.202-0.406-0.485c0.005-0.069-0.055-0.16-0.112-0.211
+                       c-0.149-0.131-0.136-0.268-0.115-0.446c0.045-0.326,0.025-0.33,0.384-0.302c0.076,0.006,0.123-0.002,0.128-0.084
+                       c0.056-0.646,0.278-1.004,0.89-1.254c0.237-0.096,0.353-0.198,0.377-0.424c0.013-0.1,0.031-0.202,0.06-0.302
+                       c0.039-0.144,0.118-0.169,0.287-0.131c0.233,0.051,0.426,0.206,0.672,0.2c0.038,0,0.086-0.029,0.108-0.061
+                       c0.019-0.029,0.028-0.097,0.011-0.108c-0.229-0.165-0.272-0.353-0.112-0.586c0.061-0.088,0.068-0.194-0.005-0.288
+                       c-0.119-0.16-0.119-0.346-0.129-0.528c-0.004-0.079-0.009-0.191,0.041-0.234c0.318-0.273,0.281-0.644,0.327-0.992
+                       c0.02-0.141,0.072-0.275,0.17-0.393c0.157-0.19,0.234-0.215,0.543-0.099c0.117,0.044,0.208,0.064,0.241-0.083
+                       c0.031-0.129,0.134-0.206,0.224-0.291c0.046-0.041,0.098-0.103,0.15-0.106c0.258-0.013,0.508,0.063,0.754,0.129
+                       c0.127,0.036,0.239,0.091,0.277,0.232c0.005,0.017,0.015,0.037,0.02,0.057c0.039,0.102,0.114,0.102,0.208,0.071
+                       c0.172-0.053,0.284,0.022,0.375,0.157c0.092,0.14,0.191,0.277,0.086,0.45c-0.033,0.053-0.079,0.1-0.103,0.156
+                       c-0.074,0.168,0.017,0.335,0.201,0.377c0.042,0.008,0.086,0.013,0.127,0.011c0.106-0.006,0.212-0.017,0.348-0.031
+                       c0.079,0.2,0.137,0.42,0.244,0.611c0.144,0.257,0.133,0.463-0.102,0.656c-0.063,0.051-0.139,0.104-0.134,0.195
+                       c0.002,0.029,0.05,0.084,0.071,0.082c0.083-0.004,0.194-0.002,0.244-0.049c0.262-0.242,0.505-0.091,0.746-0.033
+                       c0.037,0.23-0.208,0.291-0.216,0.457c0.035,0.073,0.102,0.063,0.165,0.073c0.323,0.049,0.363,0.109,0.159,0.307
+                       c-0.172,0.168-0.268,0.369-0.354,0.575c-0.041,0.1-0.007,0.204,0.132,0.235c0.118,0.027,0.201,0.087,0.137,0.214
+                       c-0.056,0.115-0.095,0.228-0.037,0.35c0.108,0.226,0.115,0.471,0.126,0.721c0.283,0,0.537,0.075,0.772-0.08
+                       c0.048-0.032,0.12-0.018,0.175,0.029c0.227,0.19,0.279,0.383,0.191,0.656c-0.115,0.357-0.33,0.655-0.646,0.928
+                       c0.276,0.084,0.414,0.288,0.531,0.548c0.103-0.105,0.153-0.169,0.217-0.213c0.048-0.033,0.115-0.045,0.174-0.057
+                       c0.017-0.004,0.041,0.013,0.061,0.022c0.808,0.365,0.727,0.394,0.145,0.943c-0.211,0.196-0.469,0.406-0.793,0.479
+                       c-0.054,0.011-0.106,0.08-0.072,0.147c0.016,0.033,0.07,0.078,0.095,0.071c0.333-0.083,0.452,0.169,0.605,0.355
+                       c0.116,0.142,0.175,0.335,0.309,0.457c0.203,0.189,0.152,0.358,0.04,0.551c-0.134,0.226-0.342,0.41-0.423,0.667
+                       c0.23,0.151,0.511,0.175,0.77,0.258c-0.033-0.067-0.055-0.136-0.081-0.204c-0.101-0.246-0.046-0.411,0.232-0.486
+                       c0.246-0.067,0.404-0.228,0.616-0.326c0.137-0.059,0.197-0.157,0.175-0.293c-0.013-0.071-0.007-0.147,0.004-0.218
+                       c0.03-0.146,0.127-0.2,0.301-0.149c0.133,0.038,0.256,0.083,0.405,0.061c0.091-0.014,0.187,0.017,0.21,0.098
+                       c0.042,0.126,0.149,0.18,0.268,0.251c0.132,0.078,0.216,0.198,0.424,0.149c0.109-0.027,0.184,0.071,0.191,0.168
+                       c0.019,0.236-0.014,0.471-0.093,0.696c-0.219,0.634-0.128,0.463,0.254,0.891c0.038,0.045,0.134,0.067,0.15,0.114
+                       c0.055,0.149,0.163,0.175,0.323,0.138c0.048-0.014,0.103-0.014,0.156-0.016c0.083,0,0.141,0.071,0.088,0.12
+                       c-0.126,0.115-0.2,0.235-0.147,0.397c0.011,0.033-0.015,0.09-0.048,0.119c-0.279,0.24-0.336,0.602-0.667,0.817
+                       c0.263,0.12,0.268,0.122,0.388-0.009c0.186-0.204,0.442-0.32,0.716-0.411c0.015-0.004,0.034,0.003,0.052,0.003
+                       c0.14-0.005,0.109-0.242,0.313-0.16c0.108,0.045,0.204,0.118,0.333,0.124c0.049,0.002,0.102,0.014,0.148,0.033
+                       c0.043,0.016,0.055,0.051,0.048,0.085c0.125,0.042,0.263,0.02,0.382,0.067v0.002h0.002c0.054,0.131,0.237,0.131,0.327,0.228
+                       c0.006,0.006,0.063-0.007,0.079-0.024c0.017-0.018,0.028-0.055,0.017-0.073c-0.02-0.033-0.053-0.078-0.09-0.087
+                       c-0.108-0.022-0.223-0.031-0.333-0.044l-0.002-0.002c0.043-0.187-0.017-0.35-0.145-0.502c-0.044-0.049-0.046-0.1,0-0.151
+                       c0.057-0.064,0.105-0.139,0.176-0.192c0.072-0.051,0.164-0.093,0.251-0.118c0.089-0.022,0.14,0.062,0.212,0.088
+                       c0.062,0.022,0.126,0.076,0.176,0.067c0.335-0.069,0.413,0.128,0.412,0.322c0,0.177,0.088,0.246,0.253,0.302
+                       c0.232,0.08,0.421,0.206,0.581,0.369c0.116,0.122,0.136,0.18,0.021,0.288c-0.125,0.118-0.18,0.256-0.256,0.394
+                       c-0.077,0.137-0.039,0.339-0.276,0.401c-0.005,0-0.005,0.027,0.003,0.037c0.005,0.011,0.026,0.024,0.036,0.022
+                       c0.046-0.008,0.096-0.016,0.134-0.038c0.208-0.11,0.411-0.223,0.615-0.339c0.119-0.067,0.23-0.078,0.364-0.009
+                       c0.111,0.059,0.212,0.124,0.303,0.204c0.21,0.182,0.227,0.222,0,0.397c-0.173,0.133-0.215,0.341-0.402,0.461
+                       c-0.017,0.012-0.01,0.051-0.013,0.078c-0.011,0.08,0.061,0.144,0.142,0.126c0.045-0.011,0.09-0.029,0.136-0.041
+                       c0.117-0.038,0.229-0.12,0.369-0.047c0.193,0.102,0.384,0.208,0.483,0.393c0.014,0.027-0.01,0.082-0.038,0.108
+                       c-0.093,0.078-0.19,0.151-0.29,0.22c-0.144,0.096-0.189,0.218-0.161,0.366c0.013,0.069,0.003,0.139,0.019,0.206
+                       c0.057,0.226,0.144,0.448,0.013,0.681c-0.032,0.056,0.002,0.136,0.009,0.205c0.016,0.113,0.084,0.168,0.222,0.182
+                       c0.413,0.042,0.529,0.096,0.812,0.373c-0.033,0.113-0.145,0.18-0.231,0.259c-0.098,0.087-0.171,0.169-0.06,0.287
+                       c0.002,0.004,0,0.006,0,0.011c1.137-0.394,2.23-0.76,3.277-1.096c-0.009-0.006-0.016-0.015-0.031-0.019
+                       c-0.335-0.14-0.621-0.325-0.738-0.642c-0.032-0.081-0.105-0.112-0.177-0.154c-0.098-0.059-0.194-0.126-0.281-0.194
+                       c-0.087-0.069-0.106-0.149-0.017-0.232c0.057-0.055,0.117-0.11,0.158-0.175c0.141-0.204,0.282-0.404,0.299-0.652
+                       c0.007-0.129,0.066-0.136,0.191-0.045c0.024,0.02,0.042,0.061,0.067,0.063c0.082,0.006,0.063-0.049,0.055-0.087
+                       c-0.023-0.124,0.039-0.204,0.184-0.218c0.208-0.017,0.379-0.161,0.603-0.117c0.036,0.006,0.095-0.034,0.125-0.065
+                       c0.082-0.093,0.193-0.184,0.224-0.289c0.038-0.137,0.079-0.217,0.265-0.2c0.121,0.012,0.184-0.066,0.241-0.141
+                       c0.081-0.111,0.2-0.147,0.354-0.153c0.184-0.007,0.228-0.079,0.182-0.222c-0.052-0.165-0.199-0.226-0.366-0.287
+                       c-0.167-0.059-0.194-0.113-0.093-0.233c0.09-0.109,0.097-0.173-0.027-0.256c-0.15-0.099-0.279-0.23-0.442-0.308
+                       c-0.175-0.084-0.327-0.151-0.332-0.348c-0.002-0.091-0.101-0.149-0.177-0.211c-0.103-0.082-0.201-0.166-0.294-0.253
+                       c-0.057-0.055-0.022-0.146,0.065-0.182c0.014-0.006,0.031-0.014,0.047-0.016c0.101-0.019,0.23-0.013,0.263-0.115
+                       c0.048-0.149,0.017-0.297-0.108-0.415c-0.117-0.108-0.255-0.198-0.378-0.302c-0.06-0.051,0-0.162,0.086-0.173
+                       c0.05-0.006,0.101-0.014,0.153-0.011c0.098,0.004,0.193,0.113,0.287,0.039c0.055-0.042,0.05-0.135,0.083-0.2
+                       c0.031-0.063,0.115-0.096,0.172-0.064c0.182,0.104,0.314,0.05,0.445-0.065c0.031-0.029,0.079-0.047,0.121-0.071
+                       c-0.217-0.184-0.217-0.184-0.213-0.446c0.003-0.253,0.006-0.259,0.313-0.279c0.109-0.006,0.194-0.024,0.29-0.075
+                       c0.237-0.126,0.48-0.171,0.709,0.027c0.129,0.11,0.292,0.067,0.448,0.051c0.065-0.006,0.103-0.114,0.046-0.14
+                       c-0.364-0.17-0.261-0.483-0.328-0.742c-0.022-0.083,0.031-0.142,0.095-0.196c0.115-0.092,0.074-0.206,0.007-0.284
+                       c-0.115-0.126-0.179-0.3-0.31-0.391c-0.208-0.141-0.287-0.253-0.184-0.475c0.038-0.082-0.086-0.21-0.12-0.322
+                       c-0.06-0.19-0.031-0.226,0.216-0.32c0.239-0.086,0.356-0.292,0.275-0.488c-0.029-0.069-0.07-0.136-0.094-0.207
+                       c-0.033-0.086,0.065-0.17,0.18-0.161c0.019,0.002,0.04-0.002,0.052,0.004c0.23,0.159,0.38-0.002,0.553-0.091
+                       c0.091-0.049,0.121-0.115,0.042-0.18c-0.11-0.088-0.129-0.204-0.174-0.314c-0.098-0.246-0.043-0.409,0.235-0.484
+                       c0.245-0.069,0.404-0.228,0.617-0.326c0.135-0.063,0.196-0.157,0.174-0.293c-0.011-0.071-0.007-0.147,0.005-0.218
+                       c0.028-0.146,0.127-0.2,0.302-0.151c0.13,0.038,0.255,0.085,0.404,0.063c0.093-0.014,0.185,0.018,0.211,0.098
+                       c0.04,0.126,0.147,0.18,0.264,0.249c0.134,0.08,0.215,0.2,0.423,0.151c0.11-0.027,0.187,0.071,0.193,0.168
+                       c0.02,0.236-0.014,0.468-0.092,0.696c-0.22,0.634-0.129,0.463,0.251,0.891c0.041,0.045,0.134,0.065,0.153,0.112
+                       c0.055,0.149,0.162,0.177,0.323,0.138c0.048-0.012,0.103-0.014,0.156-0.014c0.081-0.002,0.141,0.071,0.088,0.118
+                       c-0.127,0.115-0.2,0.235-0.147,0.397c0.011,0.035-0.017,0.093-0.048,0.12c-0.279,0.241-0.338,0.603-0.667,0.818
+                       c0.263,0.118,0.268,0.12,0.385-0.008c0.188-0.204,0.442-0.32,0.719-0.41c0.014-0.007,0.033,0.002,0.053,0.002
+                       c0.136-0.004,0.108-0.242,0.313-0.16c0.11,0.045,0.2,0.118,0.332,0.124c0.05,0.002,0.103,0.014,0.149,0.032
+                       c0.055,0.021,0.072,0.074,0.042,0.113c-0.045,0.063-0.109,0.114-0.163,0.171c-0.042,0.049-0.052,0.098-0.022,0.161
+                       c0.109,0.201,0.105,0.202-0.028,0.305c-0.144,0.108-0.285,0.212-0.377,0.361c-0.048,0.078-0.123,0.144-0.201,0.203
+                       c-0.091,0.066-0.225,0.097-0.297,0.172c-0.108,0.114-0.177,0.254-0.261,0.378c0.01,0.104,0.117,0.102,0.189,0.126
+                       c0.077,0.023,0.112,0.117,0.22,0.088c0.098-0.104-0.029-0.255,0.072-0.335c0.108-0.089,0.265-0.134,0.402-0.195
+                       c0.046-0.022,0.097-0.038,0.136-0.065c0.144-0.102,0.294-0.1,0.428-0.002c0.139,0.102,0.297,0.147,0.465,0.191
+                       c0.069,0.017,0.114,0.093,0.06,0.141c-0.234,0.218-0.349,0.504-0.605,0.711c-0.126,0.102-0.275,0.175-0.401,0.275
+                       c0.043,0.134,0.213,0.2,0.204,0.353c-0.01,0.122,0.136,0.156,0.227,0.222c0.108,0.078,0.122,0.152,0.024,0.222
+                       c-0.136,0.1-0.254,0.195-0.234,0.369c0.011,0.093-0.075,0.155-0.168,0.206c-0.206,0.111-0.399,0.238-0.61,0.344
+                       c-0.115,0.058-0.173,0.14-0.222,0.234l0.007,0.006c0.217-0.04,0.452-0.006,0.645-0.14c0.083-0.057,0.204-0.073,0.297-0.029
+                       c0.158,0.078,0.26,0.006,0.372-0.064c0.072-0.042,0.141-0.087,0.217-0.116c0.16-0.063,0.34,0.011,0.338,0.163
+                       c-0.002,0.139,0.019,0.174,0.184,0.137c0.086-0.02,0.156-0.049,0.23-0.089c0.116-0.064,0.196-0.033,0.227,0.076
+                       c0.021,0.068,0.028,0.143,0.048,0.215c0.024,0.093,0.175,0.182,0.062,0.277c-0.115,0.098-0.208,0.244-0.411,0.24
+                       c-0.091-0.002-0.177,0.006-0.241,0.059c-0.127,0.1-0.228,0.229-0.371,0.302c-0.142,0.074-0.338,0.067-0.443,0.205l0.002,0.002
+                       c0.108-0.016,0.206-0.004,0.292,0.059c0.079,0.056,0.16,0.112,0.252,0.173c0.088-0.088,0.158-0.171,0.241-0.24
+                       c0.121-0.102,0.28-0.062,0.313,0.081c0.016,0.068,0.002,0.144,0.002,0.23c0.157,0.04,0.296-0.037,0.437-0.071
+                       c0.088-0.018,0.167-0.033,0.256-0.008c0.092,0.024,0.152,0.098,0.114,0.166c-0.096,0.174-0.197,0.342-0.292,0.515
+                       c-0.077,0.14-0.218,0.171-0.384,0.193c-0.317,0.049-0.54,0.24-0.784,0.397c-0.04,0.027-0.051,0.086-0.007,0.116
+                       c0.033,0.024,0.103,0.037,0.139,0.024c0.079-0.029,0.143-0.081,0.217-0.118c0.048-0.024,0.118-0.038,0.134,0.014
+                       c0.046,0.141,0.163,0.186,0.299,0.215c0.419-0.039,0.808-0.062,1.163-0.062c1.115,0,2.183-0.016,3.205-0.042
+                       c-0.038-0.069-0.078-0.138-0.14-0.195c-0.055-0.053,0.006-0.169,0.088-0.177c0.241-0.024,0.483-0.04,0.724-0.058
+                       c0.294,0.147,0.476-0.059,0.741-0.137c-0.144-0.138-0.25-0.251-0.366-0.355c-0.163-0.144-0.34-0.238-0.595-0.155
+                       c-0.211,0.068-0.369,0.009-0.457-0.181c-0.089-0.186-0.271-0.308-0.462-0.41c-0.382-0.209-0.679-0.499-1.038-0.731
+                       c-0.033-0.022-0.06-0.075-0.057-0.113c0.006-0.071,0.085-0.083,0.151-0.098c0.129-0.031,0.327,0.053,0.382-0.069
+                       c0.075-0.171-0.193-0.173-0.277-0.277c-0.017-0.02-0.055-0.033-0.086-0.047c-0.153-0.069-0.38-0.144-0.347-0.286
+                       c0.042-0.191,0.318-0.162,0.485-0.149c0.286,0.024,0.538,0.008,0.779-0.134c0.079-0.045,0.203-0.035,0.294-0.049
+                       c0.084-0.106-0.059-0.126-0.077-0.188c-0.009-0.03-0.024-0.058-0.019-0.085c0.026-0.122,0.292-0.373,0.417-0.357
+                       c0.313,0.035,0.566-0.12,0.851-0.171c0.213-0.037,0.373-0.034,0.525,0.093c0.116,0.092,0.23,0.184,0.41,0.168
+                       c0.081-0.008,0.198,0.032,0.222-0.064c0.017-0.067-0.09-0.071-0.145-0.1c-0.153-0.085-0.112-0.24-0.18-0.355
+                       c-0.046-0.075,0.019-0.14,0.079-0.198c0.073-0.067,0.062-0.126-0.021-0.185c-0.04-0.027-0.075-0.062-0.117-0.088
+                       c-0.294-0.171-0.366-0.262-0.441-0.549c-0.029-0.106-0.112-0.174-0.229-0.224c-0.335-0.139-0.623-0.326-0.739-0.643
+                       c-0.029-0.081-0.105-0.112-0.174-0.154c-0.101-0.059-0.197-0.124-0.285-0.194c-0.087-0.069-0.105-0.147-0.016-0.232
+                       c0.059-0.053,0.116-0.11,0.159-0.173c0.14-0.204,0.283-0.406,0.297-0.652c0.009-0.129,0.068-0.137,0.192-0.045
+                       c0.023,0.018,0.042,0.061,0.067,0.063c0.081,0.006,0.064-0.051,0.057-0.087c-0.026-0.126,0.035-0.206,0.184-0.218
+                       c0.205-0.019,0.375-0.164,0.6-0.119c0.037,0.008,0.096-0.032,0.125-0.063c0.083-0.093,0.193-0.184,0.224-0.291
+                       c0.039-0.135,0.081-0.217,0.265-0.2c0.125,0.014,0.184-0.066,0.241-0.141c0.081-0.109,0.202-0.147,0.357-0.151
+                       c0.181-0.007,0.224-0.081,0.179-0.224c-0.052-0.163-0.198-0.226-0.365-0.287c-0.168-0.057-0.193-0.114-0.094-0.233
+                       c0.091-0.107,0.098-0.173-0.027-0.253c-0.15-0.103-0.279-0.232-0.442-0.311c-0.173-0.084-0.327-0.151-0.331-0.348
+                       c-0.002-0.088-0.103-0.149-0.178-0.21c-0.103-0.081-0.198-0.165-0.292-0.254c-0.061-0.053-0.024-0.147,0.062-0.182
+                       c0.017-0.004,0.032-0.012,0.048-0.016c0.101-0.019,0.229-0.013,0.263-0.115c0.047-0.147,0.016-0.297-0.108-0.413
+                       c-0.117-0.108-0.256-0.2-0.378-0.304c-0.058-0.049,0-0.16,0.086-0.173c0.049-0.006,0.103-0.012,0.152-0.008
+                       c0.098,0.004,0.194,0.113,0.287,0.037c0.055-0.042,0.05-0.133,0.084-0.2c0.032-0.059,0.115-0.096,0.173-0.062
+                       c0.182,0.104,0.314,0.051,0.444-0.067c0.034-0.029,0.079-0.045,0.125-0.071c-0.22-0.184-0.22-0.184-0.215-0.446
+                       c0.002-0.251,0.006-0.259,0.313-0.279c0.108-0.007,0.193-0.024,0.29-0.073c0.236-0.126,0.48-0.173,0.71,0.027
+                       c0.129,0.108,0.294,0.065,0.448,0.051c0.064-0.006,0.103-0.114,0.046-0.142c-0.364-0.171-0.261-0.481-0.328-0.743
+                       c-0.021-0.08,0.032-0.141,0.096-0.193c0.114-0.092,0.074-0.208,0.007-0.284c-0.114-0.129-0.18-0.302-0.31-0.391
+                       c-0.206-0.141-0.287-0.253-0.185-0.477c0.039-0.08-0.085-0.21-0.119-0.322c-0.06-0.191-0.031-0.226,0.215-0.317
+                       c0.239-0.089,0.357-0.295,0.276-0.489c-0.03-0.071-0.07-0.136-0.094-0.207c-0.033-0.088,0.064-0.172,0.18-0.164
+                       c0.018,0.002,0.04-0.002,0.052,0.006c0.23,0.157,0.381-0.004,0.553-0.093c0.092-0.048,0.122-0.113,0.044-0.177
+                       c-0.11-0.088-0.129-0.204-0.173-0.314c-0.099-0.246-0.045-0.411,0.232-0.486c0.246-0.067,0.404-0.228,0.617-0.324
+                       c0.136-0.063,0.196-0.16,0.175-0.295c-0.013-0.071-0.008-0.147,0.004-0.218c0.029-0.147,0.127-0.2,0.301-0.149
+                       c0.132,0.038,0.256,0.085,0.404,0.063c0.094-0.016,0.186,0.016,0.21,0.096c0.041,0.129,0.148,0.18,0.266,0.251
+                       c0.134,0.078,0.215,0.198,0.426,0.149c0.108-0.024,0.184,0.071,0.193,0.169c0.017,0.237-0.016,0.471-0.095,0.694
+                       c-0.221,0.635-0.129,0.466,0.253,0.893c0.038,0.044,0.134,0.066,0.151,0.113c0.055,0.149,0.163,0.175,0.323,0.138
+                       c0.051-0.014,0.102-0.014,0.156-0.016c0.081,0,0.141,0.071,0.088,0.12c-0.127,0.115-0.201,0.235-0.149,0.397
+                       c0.013,0.033-0.016,0.09-0.047,0.12c-0.28,0.239-0.338,0.601-0.665,0.818c0.26,0.118,0.264,0.12,0.384-0.011
+                       c0.187-0.204,0.442-0.32,0.718-0.41c0.014-0.005,0.033,0.002,0.05,0.002c0.141-0.005,0.11-0.242,0.316-0.16
+                       c0.109,0.045,0.2,0.118,0.332,0.124c0.05,0.005,0.103,0.016,0.151,0.034c0.052,0.022,0.069,0.072,0.042,0.113
+                       c-0.046,0.059-0.112,0.11-0.165,0.169c-0.042,0.049-0.055,0.1-0.022,0.161c0.109,0.203,0.105,0.205-0.029,0.307
+                       c-0.143,0.106-0.285,0.212-0.378,0.361c-0.048,0.075-0.122,0.144-0.2,0.2c-0.091,0.067-0.225,0.098-0.296,0.175
+                       c-0.108,0.112-0.177,0.251-0.261,0.375c0.009,0.107,0.117,0.103,0.191,0.127c0.074,0.024,0.11,0.119,0.217,0.088
+                       c0.098-0.104-0.029-0.255,0.072-0.335c0.11-0.087,0.265-0.132,0.401-0.195c0.046-0.02,0.098-0.036,0.137-0.065
+                       c0.145-0.1,0.296-0.098,0.428,0c0.139,0.1,0.296,0.144,0.464,0.189c0.07,0.018,0.114,0.093,0.062,0.142
+                       c-0.237,0.217-0.351,0.503-0.607,0.712c-0.125,0.102-0.276,0.173-0.402,0.275c0.042,0.132,0.213,0.2,0.203,0.351
+                       c-0.009,0.122,0.139,0.156,0.228,0.222c0.108,0.081,0.121,0.151,0.023,0.224c-0.135,0.1-0.253,0.193-0.231,0.366
+                       c0.009,0.096-0.077,0.155-0.169,0.206c-0.206,0.114-0.401,0.24-0.608,0.344c-0.117,0.058-0.173,0.14-0.225,0.236l0.01,0.006
+                       c0.215-0.042,0.452-0.01,0.643-0.14c0.083-0.057,0.203-0.073,0.296-0.029c0.158,0.075,0.261,0.004,0.375-0.067
+                       c0.07-0.041,0.139-0.086,0.217-0.115c0.16-0.061,0.338,0.011,0.335,0.161c-0.002,0.142,0.019,0.178,0.183,0.138
+                       c0.087-0.02,0.156-0.049,0.23-0.086c0.117-0.065,0.196-0.034,0.228,0.072c0.021,0.071,0.028,0.144,0.047,0.216
+                       c0.025,0.093,0.175,0.184,0.063,0.277c-0.115,0.1-0.208,0.246-0.412,0.242c-0.09-0.004-0.176,0.006-0.244,0.057
+                       c-0.124,0.1-0.224,0.229-0.365,0.302c-0.144,0.076-0.34,0.067-0.445,0.205l0.002,0.002c0.105-0.014,0.206-0.005,0.294,0.059
+                       c0.077,0.058,0.158,0.112,0.25,0.175c0.088-0.088,0.157-0.173,0.24-0.241c0.125-0.103,0.281-0.063,0.314,0.082
+                       c0.017,0.068,0.002,0.141,0.002,0.23c0.158,0.038,0.296-0.04,0.441-0.071c0.086-0.02,0.165-0.035,0.253-0.011
+                       c0.094,0.027,0.153,0.1,0.115,0.166c-0.096,0.173-0.196,0.344-0.291,0.517c-0.077,0.138-0.217,0.169-0.383,0.193
+                       c-0.318,0.047-0.54,0.238-0.784,0.395c-0.041,0.029-0.05,0.086-0.007,0.118c0.033,0.022,0.103,0.035,0.138,0.022
+                       c0.079-0.03,0.146-0.079,0.218-0.118c0.048-0.024,0.117-0.035,0.134,0.013c0.055,0.178,0.22,0.205,0.395,0.238
+                       c0.102,0.018,0.115,0.093,0.036,0.169c-0.07,0.067-0.149,0.124-0.215,0.193c-0.086,0.084-0.07,0.175,0.06,0.2
+                       c0.187,0.037,0.277,0.104,0.246,0.273c-0.007,0.051,0.06,0.086,0.105,0.059c0.259-0.163,0.39-0.033,0.544,0.135
+                       c0.115,0.127,0.031,0.185-0.017,0.301c-0.127,0.292-0.378,0.422-0.696,0.518c-0.144,0.042-0.271,0.126-0.401,0.198
+                       c-0.016,0.012-0.024,0.058-0.013,0.075c0.015,0.02,0.054,0.036,0.085,0.04c0.129,0.02,0.239-0.004,0.332-0.089
+                       c0.122-0.11,0.261-0.139,0.417-0.041c0.115,0.071,0.229,0.051,0.344-0.004c0.045-0.02,0.09-0.045,0.141-0.061
+                       c0.183-0.055,0.301,0.004,0.31,0.179c0.006,0.093-0.042,0.163,0.144,0.147c0.207-0.02,0.294,0.075,0.234,0.236
+                       c-0.128,0.332-0.334,0.608-0.795,0.687c0.053,0.081,0.101,0.156,0.145,0.234c0.051,0.08,0.125,0.096,0.218,0.057
+                       c0.063-0.027,0.118-0.062,0.182-0.084c0.122-0.042,0.22,0.017,0.2,0.119c-0.028,0.174-0.034,0.334-0.243,0.462
+                       c-0.221,0.136-0.385,0.336-0.56,0.519c-0.122,0.129-0.19,0.253-0.05,0.438c0.127,0.17,1.312,0.179,1.164,0.361
+                       C1999.932,49.351,1999.985,50.8,1999.985,50.8"/>
+       </g>
+</g>
+<g id="land">
+       <path fill="#2A3524" d="M1938.785,279.851c-23.566,1.134-147.255,6.923-156.563,4.684c-11.781-2.837-36.468-4.325-68.61-4.539
+               c-35.399-0.233-81.078,2.268-103.255,5.672c-22.175,3.402-36.115-7.274-59.676-6.139c-23.562,1.133-33.541,7.509-51.558,7.509
+               c-10.077,0-33.32-2.839-55.142,4.282c-17.192,5.612-22.386,3.537-41.58,8.509c-14.773,3.824-47.122,13.044-49.894,16.446
+               c-2.61,3.206-10.136,8.417-16.792,6.171c0.407,0.134,0.817,0.241,1.229,0.325c-1.097-0.399-2.227-0.819-3.379-1.254
+               c0.307,0.139,0.613,0.277,0.925,0.431c-1.4-0.687-2.74-1.227-4.027-1.618c0,0,0.001,0,0.001,0
+               c-10.51-4.076-21.914-8.995-25.951-11.094c-5.572-2.896-32.062-5.357-40.581-4.409c-17.602,1.961-49.872,13.23-55.74,14.21
+               c-5.865,0.98-3.91,0.491-8.8,0c-4.889-0.49-11.734-6.861-17.112-8.331c-5.379-1.471-8.8-0.98-12.713,0.49
+               c-3.911,1.47-13.689-1.961-30.802-1.961c-17.113,0-53.275-4.669-63.071-3.918c-44.371,3.392-42.87,24.389-98.521,29.892
+               c-3.057,0.302-7.944,1.653-13.462,3.553H811.802c-3.763-4.492-5.543-10.035-10.957-11.218
+               c-21.819-4.765-43.56-19.556-54.272-20.337c-25.151-1.834-48.405-13.476-48.405-13.476s-10.267,1.962-14.669,1.471
+               c-4.399-0.49-13.199-2.451-21.51-2.942c-15.985-0.941-31.293,6.371-42.539,6.862c-11.244,0.49-13.2-2.94-17.602-4.9
+               c-4.399-1.961-11.243-3.92-18.091-4.41c-6.844-0.491-18.578-0.98-26.891-0.491c-8.311,0.491-14.179,1.471-21.511,0.98
+               c-7.334-0.49-12.712,4.411-18.58,4.411c-5.868,0-23.959,3.919-30.314,3.919c-3.956,0-10.244,10.064-12.505,28.715
+               c-21.209-4.367-36.009-6.966-50.071-3.128c-9.848,2.686-45.913-16.192-61.937-9.399c-19.639-3.917-40.297-8.033-57.261-9.886
+               c-41.579-4.539-55.439-10.208-70.684-7.941c-13.81-6.796-44.302-5.676-62.369-6.807c-18.254-1.14-38.007-5.657-59.601-7.939
+               c-59.043-6.234-17.78,1.007-112.027-8.068v275.77h1999.99v-275.77C1994.83,274.203,1962.347,278.717,1938.785,279.851z
+                M761.938,389.889L761.938,389.889c0,0,0,0.001,0,0.001C761.938,389.889,761.938,389.889,761.938,389.889z M812.653,339.722
+               C812.653,339.722,812.653,339.722,812.653,339.722c0.122,0.129,0.256,0.25,0.382,0.377
+               C812.908,339.972,812.775,339.851,812.653,339.722z M814.49,341.402c-0.305-0.24-0.598-0.487-0.879-0.742c0,0,0,0,0,0
+               C813.891,340.916,814.186,341.163,814.49,341.402C814.49,341.403,814.49,341.403,814.49,341.402z M815.66,342.24
+               c-0.279-0.179-0.54-0.372-0.8-0.564C815.121,341.869,815.382,342.061,815.66,342.24C815.661,342.241,815.661,342.241,815.66,342.24
+               z M818.234,343.557c-0.424-0.167-0.825-0.352-1.213-0.546c0,0,0,0,0,0C817.409,343.205,817.81,343.39,818.234,343.557
+               C818.234,343.557,818.234,343.557,818.234,343.557z M819.558,344.006c-0.105-0.031-0.2-0.07-0.303-0.102
+               C819.358,343.936,819.454,343.975,819.558,344.006C819.558,344.006,819.558,344.006,819.558,344.006z M1008.239,360.794
+               c0.001,0,0.002,0,0.003,0.001c0.287,0.059,0.576,0.122,0.863,0.182C1008.816,360.916,1008.527,360.853,1008.239,360.794z
+                M1013.112,361.867c0.417,0.098,0.835,0.195,1.253,0.295c0,0,0.001,0,0.001,0C1013.948,362.062,1013.53,361.965,1013.112,361.867z
+                M1016.586,362.702c0.001,0,0.002,0,0.003,0.001c0.377,0.094,0.754,0.189,1.131,0.285
+               C1017.342,362.892,1016.964,362.796,1016.586,362.702z"/>
+</g>
+<g id="rocks">
+       <path fill="#596053" d="M486.255,329.888c38.807,7.94,54.053-3.401,58.214,6.806c16.585-3.193,27.702-5.876,49.692,5.805
+               c9.112,4.835,23.729,5.583,41.782,8.942c60.983,11.344,70.685,10.207,95.633,14.746c22.826,4.152,29.406,14.946,30.362,23.702
+               c0,0,0,0,0.001,0c0.385-0.012,0.773-0.027,1.159-0.04c0.444-0.015,0.887-0.03,1.333-0.047c0.408-0.016,0.818-0.034,1.227-0.051
+               c0.427-0.018,0.855-0.037,1.284-0.057c0.415-0.019,0.831-0.04,1.247-0.061c0.432-0.022,0.864-0.045,1.296-0.068
+               c0.407-0.022,0.815-0.045,1.222-0.069c0.456-0.027,0.913-0.056,1.369-0.085c0.384-0.024,0.768-0.048,1.151-0.074
+               c0.56-0.038,1.118-0.078,1.676-0.119c0.441-0.032,0.882-0.065,1.321-0.1c0.638-0.05,1.276-0.101,1.91-0.155
+               c0.35-0.03,0.697-0.062,1.046-0.093c0.483-0.043,0.965-0.087,1.445-0.133c0.366-0.035,0.729-0.071,1.093-0.108
+               c0.463-0.046,0.924-0.094,1.384-0.143c0.362-0.039,0.723-0.078,1.083-0.118c0.465-0.052,0.927-0.106,1.388-0.16
+               c0.341-0.04,0.683-0.08,1.021-0.122c0.519-0.064,1.032-0.131,1.544-0.199c0.27-0.036,0.543-0.07,0.811-0.106
+               c0.761-0.104,1.513-0.211,2.255-0.323c0.219-0.033,0.432-0.068,0.65-0.102c0.535-0.083,1.068-0.167,1.593-0.254
+               c0.286-0.048,0.567-0.097,0.85-0.146c0.45-0.078,0.897-0.156,1.338-0.237c0.289-0.053,0.575-0.107,0.86-0.162
+               c0.43-0.082,0.855-0.167,1.275-0.252c0.272-0.055,0.545-0.111,0.812-0.168c0.442-0.094,0.874-0.191,1.304-0.288
+               c0.228-0.052,0.459-0.102,0.683-0.155c0.597-0.141,1.182-0.286,1.751-0.434c0.045-0.012,0.093-0.023,0.137-0.034
+               c0.608-0.16,1.196-0.325,1.769-0.494c0.189-0.056,0.368-0.114,0.553-0.17c0.382-0.117,0.759-0.235,1.123-0.356
+               c0.205-0.068,0.404-0.138,0.604-0.208c0.332-0.116,0.656-0.233,0.972-0.352c0.192-0.073,0.382-0.146,0.568-0.22
+               c0.313-0.125,0.614-0.252,0.908-0.38c0.164-0.072,0.331-0.142,0.49-0.215c0.329-0.151,0.64-0.306,0.943-0.463
+               c0.103-0.053,0.214-0.104,0.313-0.158c0.392-0.211,0.761-0.427,1.105-0.648c0.082-0.053,0.152-0.107,0.231-0.161
+               c0.254-0.171,0.499-0.344,0.723-0.52c0.104-0.082,0.197-0.166,0.294-0.249c0.179-0.153,0.35-0.308,0.507-0.465
+               c0.092-0.092,0.178-0.186,0.261-0.28c0.139-0.156,0.266-0.315,0.382-0.475c0.069-0.095,0.138-0.189,0.199-0.285
+               c0.11-0.174,0.2-0.352,0.282-0.531c0.039-0.085,0.087-0.169,0.12-0.255c0.102-0.266,0.18-0.537,0.22-0.814
+               c0.407-2.83-1.243-9.814-3.912-13.723c-2.883-4.22-4.106-2.614,6.845-2.205c12.917,0.486,29.244-1.709,37.404-1.959
+               c-1.002-10.101-8.689-10.492-33.982-15.192c-0.511-0.095-0.993-0.213-1.462-0.342c-0.121-0.033-0.24-0.068-0.359-0.103
+               c-0.419-0.124-0.825-0.259-1.211-0.408c-0.037-0.014-0.076-0.026-0.113-0.041c-0.424-0.167-0.825-0.352-1.213-0.546
+               c-0.086-0.043-0.171-0.088-0.256-0.133c-0.345-0.181-0.679-0.371-0.997-0.572c-0.035-0.022-0.073-0.043-0.107-0.065
+               c-0.359-0.23-0.699-0.473-1.028-0.725c-0.048-0.037-0.095-0.076-0.143-0.113c-0.305-0.24-0.598-0.487-0.879-0.742
+               c-0.02-0.018-0.04-0.035-0.06-0.053c-0.312-0.287-0.611-0.582-0.898-0.885c-0.006-0.006-0.012-0.013-0.018-0.019
+               c-4.363-4.622-5.991-10.891-11.79-12.158c-21.819-4.765-43.56-19.556-54.272-20.337c-25.151-1.834-48.405-13.476-48.405-13.476
+               s-10.267,1.962-14.669,1.471c-4.399-0.49-13.199-2.451-21.51-2.942c-15.985-0.941-31.293,6.371-42.539,6.862
+               c-11.244,0.49-13.2-2.94-17.602-4.9c-4.399-1.961-11.243-3.92-18.091-4.41c-6.844-0.491-18.578-0.98-26.891-0.491
+               c-8.311,0.491-14.179,1.471-21.511,0.98c-7.334-0.49-12.712,4.411-18.58,4.411c-5.868,0-23.959,3.919-30.314,3.919
+               c-3.956,0-10.244,10.064-12.505,28.715C477.831,328.144,481.918,329,486.255,329.888z"/>
+       <g>
+               <path fill="#596053" d="M1334.489,321.947c0.803,0.394,1.625,0.655,2.454,0.824c-1.097-0.399-2.227-0.819-3.379-1.254
+                       C1333.87,321.656,1334.176,321.794,1334.489,321.947z"/>
+               <path fill="#596053" d="M963.32,338.899c-0.421,0.146-0.846,0.295-1.273,0.447c-0.204,0.073-0.409,0.146-0.614,0.22
+                       c-0.389,0.14-0.78,0.282-1.173,0.427c-0.18,0.066-0.359,0.131-0.539,0.198c-0.538,0.199-1.079,0.403-1.622,0.609
+                       c-0.189,0.072-0.378,0.145-0.567,0.217c-0.396,0.152-0.794,0.306-1.191,0.461c-0.209,0.082-0.419,0.163-0.628,0.246
+                       c-0.487,0.192-0.974,0.385-1.461,0.581c-0.146,0.059-0.291,0.117-0.437,0.176c-0.497,0.201-0.993,0.404-1.488,0.608
+                       c-0.204,0.084-0.407,0.169-0.61,0.253c-0.406,0.169-0.812,0.339-1.216,0.51c-0.177,0.075-0.355,0.149-0.531,0.225
+                       c-0.549,0.234-1.095,0.469-1.638,0.705c-0.153,0.067-0.304,0.134-0.456,0.201c-0.421,0.184-0.839,0.369-1.254,0.555
+                       c-0.182,0.081-0.363,0.162-0.543,0.243c-0.46,0.207-0.916,0.414-1.368,0.622c-0.091,0.042-0.185,0.084-0.276,0.126
+                       c-0.526,0.242-1.043,0.485-1.554,0.726c-0.161,0.076-0.319,0.152-0.478,0.228c-0.383,0.183-0.761,0.365-1.134,0.546
+                       c-0.148,0.072-0.297,0.144-0.444,0.216c-0.491,0.241-0.975,0.481-1.446,0.719c-0.091,0.046-0.178,0.091-0.268,0.137
+                       c-0.39,0.198-0.773,0.396-1.147,0.591c-0.139,0.073-0.277,0.145-0.414,0.218c-0.373,0.197-0.738,0.392-1.093,0.586
+                       c-0.077,0.042-0.157,0.084-0.232,0.126c-0.419,0.23-0.822,0.456-1.212,0.679c-0.106,0.06-0.207,0.12-0.31,0.18
+                       c-0.298,0.172-0.586,0.343-0.866,0.511c-0.102,0.061-0.204,0.122-0.303,0.183c-0.353,0.216-0.694,0.428-1.012,0.635
+                       c-0.032,0.021-0.06,0.04-0.091,0.061c-0.286,0.187-0.554,0.369-0.809,0.548c-0.083,0.058-0.162,0.115-0.241,0.171
+                       c-0.219,0.157-0.426,0.311-0.619,0.461c-0.051,0.04-0.107,0.081-0.157,0.12c-0.23,0.183-0.439,0.359-0.627,0.53
+                       c-0.045,0.041-0.084,0.08-0.127,0.121c-0.141,0.133-0.269,0.262-0.383,0.387c-0.041,0.045-0.083,0.091-0.121,0.135
+                       c-0.132,0.156-0.249,0.307-0.333,0.448c-5.509,9.246,16.233,2.393,20.533,4.656c5.202,2.733,9.607,1.556,16.623,2.205
+                       c7.92,0.732,20.596-4.786,32.515-3.43c1.303,0.148,2.612,0.333,3.926,0.539c0.458,0.072,0.918,0.157,1.376,0.235
+                       c0.855,0.146,1.711,0.294,2.57,0.459c0.561,0.108,1.123,0.224,1.685,0.339c0.752,0.154,1.505,0.311,2.259,0.477
+                       c0.632,0.139,1.264,0.281,1.897,0.427c0.655,0.151,1.311,0.306,1.968,0.463c0.741,0.178,1.482,0.356,2.224,0.54
+                       c0.399,0.099,0.799,0.201,1.199,0.301c4.945,1.247,9.911,2.593,14.859,3.802c3.391-10.112,12.705-29.322,35.035-31.815
+                       c30.491-3.401,6.237-6.237,41.579-4.535c14.903,0.715,36.732,1.702,47.82,8.505c11.088,6.807,8.316,10.211,19.403,10.211
+                       c11.088,0,20.818-6.685,38.807-5.672c26.413,1.485,26.334,9.075,26.334,9.075s11.781-5.669,20.79-9.642
+                       c7.816-3.441,9.009-1.699,15.938-9.639c2.497-2.862,7.184-2.157,13.167-2.837c5.152-0.587,7.601-4.177,12.474-5.105
+                       c5.083-0.965,12.509,0.709,13.86-1.133c3.318-4.527,7.524-5.433,12.609-3.889c-10.51-4.076-21.914-8.995-25.951-11.094
+                       c-5.572-2.896-32.062-5.357-40.581-4.409c-17.602,1.961-49.872,13.23-55.74,14.21c-5.865,0.98-3.91,0.491-8.8,0
+                       c-4.889-0.49-11.734-6.861-17.112-8.331c-5.379-1.471-8.8-0.98-12.713,0.49c-3.911,1.47-13.689-1.961-30.802-1.961
+                       c-17.113,0-53.275-4.669-63.071-3.918c-44.371,3.392-42.87,24.389-98.521,29.892c-3.057,0.302-7.944,1.653-13.462,3.553
+                       C963.581,338.807,963.45,338.854,963.32,338.899z"/>
+       </g>
+</g>
+<g id="water">
+       <g>
+               <path fill="#77BDC9" d="M878.493,489.829c-5.544-4.535-31.878,1.133-42.966,4.539c-11.088,3.401-11.088,2.267-19.403,2.267
+                       c-8.316,0-20.79,4.54-30.492,4.54s2.772,11.341,6.93,18.147c4.158,6.807,11.088-2.267,18.018,0
+                       c6.93,2.268,26.333,5.673,31.877,4.54c5.544-1.134,13.86-9.074,5.544-12.479c-21.111-8.638,22.84-17.179,8.316-13.613
+                       C870.177,494.368,884.037,494.368,878.493,489.829z"/>
+               <path fill="#77BDC9" d="M1091.936,549.949c0,0,2.772,0-8.316,0c-11.087,0-9.701-11.34-23.561-12.475
+                       c-13.86-1.137-20.79-10.211-37.422-19.286c-16.631-9.074-40.193-11.345-29.105-19.285c11.088-7.941,31.877-21.551,37.421-26.089
+                       c5.544-4.538,4.158-3.4-4.158-11.34c-8.316-7.944-5.544-5.673-20.789-5.673c-15.246,0-31.877-2.271-34.649-10.211
+                       c-2.772-7.94,0-20.416,0-20.416s1.764-7.647-17.325-6.241c-13.409,0.99-16.385-1.749-8.316-3.401
+                       c4.851-3.97,19.404-2.837,24.255-16.449c2.068-5.808-2.405-13.409,6.929-15.88c4.716-1.249,8.82-6.807,20.79-6.807
+                       c31.877,0,33.263-3.401,33.263-3.401s0.455-2.491,1.694-6.187c-11.386-2.783-22.871-6.326-33.963-7.585
+                       c-11.919-1.356-24.595,4.162-32.515,3.43c-7.016-0.649-11.421,0.529-16.623-2.205c-4.3-2.263-26.042,4.59-20.533-4.656
+                       c2.166-3.639,20.516-12.146,34.697-17.029H811.8c2.172,2.593,5.002,4.837,9.579,5.688c25.293,4.7,32.98,5.092,33.982,15.192
+                       c-8.16,0.249-24.487,2.444-37.404,1.959c-10.951-0.41-9.728-2.016-6.845,2.205c2.669,3.909,4.319,10.893,3.912,13.723
+                       c-1.159,8.042-28.937,11.615-53.087,12.36c0.089,0.815,0.133,1.614,0.133,2.387c0,9.078,19.403,5.673,30.491,7.94
+                       c11.088,2.271,30.492,9.079,49.895,11.346c19.404,2.267,27.72,13.612,33.264,4.539c5.544-9.078,8.316-21.554,19.403-19.286
+                       c11.088,2.268,13.86,12.48,13.86,12.48c-0.039,0.02,6.691,14.985,23.536,17.125c13.967,1.773,3.63,8.551-21.457,7.829
+                       c-14.738-0.426-21.483,9.074-46.43,9.074c-24.948,0-16.632,6.807-44.351,6.807c-27.72,0-27.502,14.507-11.088,11.346
+                       c14.256-2.751,6.508,11.051,23.561,9.638c2.98,5.544-21.375,2.801-29.105,6.241c-15.403,6.857,19.404,4.536,34.649,2.268
+                       c7.052-1.047,0.422-4.971,3.465-9.074c3.54-4.771,16.7-9.686,25.641-9.074c16.632,1.133,36.035-5.673,51.281-6.807
+                       c8.316-7.94,21.772,4.682,45.741,9.074c24.976,4.579,29.269,11.885,24.947,12.476c-9.762,1.341,1.497,6.416-8.316,9.078
+                       c-7.879,2.135-22.175,5.668-22.175,5.668s19.403,13.613-11.088,20.42c-9.455,2.11-23.565,6.806-29.109,10.207
+                       c-5.544,3.405,19.407,2.272,31.881,2.272s19.404,2.267,26.333,6.806c6.93,4.536,10.98,12.11,13.86,19.282
+                       C990.806,550.064,1091.936,549.949,1091.936,549.949z"/>
+       </g>
+</g>
+<g id="dark_green_trees">
+       <g>
+               <path fill="#2A3524" d="M354.723,414.773c0.305-0.553-0.053-0.606-0.501-0.863c-0.476-0.274-1.203-0.011-1.379-0.442
+                       c-0.276-0.669-0.834-0.526-1.093-0.385c-0.41,0.22,0.085,0.557,0.169,0.85c0.125,0.438,0.007,0.878-0.422,0.934
+                       c-0.586,0.08-0.557-0.336-0.45-0.805c0.1-0.444-0.41-0.669-0.639-0.633c-0.735,0.112-0.758,1.105-1.451,1.34
+                       c0.367,0.678,0.266,1.676,1.019,2.039c0.493,0.238,1.081-0.095,1.347-0.74c0.21-0.508,0.376-1.037,0.944-0.104
+                       c0.326,0.541,1.181,0.606,1.906,0.316C354.929,415.977,354.672,415.343,354.723,414.773 M347.708,361.824
+                       c0.559,3.13,0.771,3.83,1.164,3.843c1.733,0.061,3.466,0.052,5.007-1.321c-1.696,0.555-1.992-1.223-3.045-1.794
+                       C349.715,361.945,348.433,363.33,347.708,361.824 M275.858,411.32c-1.291-0.324-2.462,0.664-3.473-0.337
+                       c-0.251-0.251-0.438,0.138-0.614,0.367c-1.137,1.488-2.566,2.6-4.349,3.187c-0.483,0.16-0.393,0.496-0.44,0.804
+                       c-0.066,0.439,0.425,0.785,0.573,0.684c1.243-0.864,3.069-0.459,4.041-1.764c0.721-0.974,1.644-1.567,2.725-1.934
+                       C274.858,412.146,275.358,412.012,275.858,411.32 M265.34,408.667c0.002-0.746-0.584-0.853-1.044-0.92
+                       c-0.304-0.041-0.64,0.169-0.899-0.168c-0.594-0.77-1.514,0.138-2.147-0.42c-0.233,1.769-1.696,1.412-2.826,1.676
+                       c-0.601,0.14-1.697,2.167-1.395,2.523c0.529,0.626,1.166,0.09,1.52-0.161c1.863-1.331,3.941-1.886,6.178-2.005
+                       C265.069,409.176,265.472,409.181,265.34,408.667 M341.839,338.855c1.038,1.181,2.523,0.636,3.688,1.137
+                       c0.274,0.117,0.639-0.218,0.525-0.493c-0.261-0.64-0.132-1.08,0.423-1.438c-0.421-0.625-0.037-1.476-1.052-2.035
+                       c-2.075-1.141-3.117,1.477-5.164,0.61c0.777,1.297,2.023,0.955,2.548,1.867C342.493,338.619,342.204,338.722,341.839,338.855
+                        M331.28,299.118c-0.441,0.312-0.622-0.027-0.854-0.134c-0.726-0.337-1.369-0.146-1.872,0.389c-0.748,0.8,0.254,1.249,0.545,1.711
+                       c0.332,0.528,0.914,0.005,1.362-0.224c0.448-0.227,0.881-0.537,1.359-0.64c0.853-0.184,1.165-0.598,0.891-1.438
+                       c-0.106-0.325-0.133-0.655,0.054-0.964c-0.474-0.241-0.744,0.45-1.207,0.275c-0.118-0.995,0.718-0.696,1.162-0.902
+                       c0.508-0.237,0.836-0.598,0.879-1.163c0.039-0.527-0.369-0.629-0.751-0.794c-1.226-0.524-2.438-1.082-2.793-2.573
+                       c-0.01-0.044-0.183-0.049-0.319-0.081c-0.15,0.859,0.835,1.656,0.557,2.227C329.428,296.588,330.337,297.846,331.28,299.118
+                        M265.583,320.233c1.446-0.127,0.36,1.259,1.153,1.531c0.926,0.32,1.127,0.922,1.062,1.815c-0.015,0.208,0.433,0.554,0.73,0.653
+                       c0.263,0.089,0.442-0.244,0.588-0.502c0.213-0.388,0.221-1.252,0.967-0.75c0.584,0.393-0.175,0.714-0.308,1.069
+                       c-0.128,0.346-0.637,0.719-0.098,1.012c0.448,0.245,1.306,0.595,1.503,0.188c0.642-1.323,2.09-1.533,2.986-2.468
+                       c0.357-0.372,0.654-0.75,0.474-1.191c-0.308-0.76-0.742,0.027-1.122-0.006c-0.46-0.037-0.773,0.559-1.306,0.267
+                       c0.13-0.544,0.506-0.721,0.979-0.988c0.873-0.49,1.992-0.876,0.805-2.429c-0.734-0.96-1.739-1.124-2.536-1.773
+                       c-1.295-1.058-2.454-0.565-3.238,0.865c-0.091,0.162-0.082,0.462-0.403,0.397c-1.617-0.325-2.288,1.358-3.659,1.62
+                       c0.998,0.067,1.947-0.899,2.884,0.113C266.699,320.12,266.134,319.649,265.583,320.233 M297.173,457.063
+                       c0.021-8.781,0.057-17.564,0.049-26.347c-0.002-1.171,0.149-2.386-1.949-2.031c-0.691,0.117-1.84-0.84-3.048-0.577
+                       c-0.342,0.076-0.62-0.163-0.996,0.289c-0.647,0.782-1.408,1.232-1.771-0.346c-0.096-0.423-0.253-1.165-0.845-1.158
+                       c-0.733,0.008-0.183,0.793-0.442,1.094c-0.32,0.372-0.754,1.696-1.127,0.007c-1.068,1.168-1.013-0.329-1.466-0.619
+                       c-0.391-0.094-0.046,1.549-0.961,0.378c-0.423-0.544-0.98,0.291-1.576,0.205c-0.391-0.056-1.098,0.339-1.213-0.098
+                       c-0.421-1.601-1.272-0.302-1.533-0.126c-0.554,0.37-1.196,1.004-0.075,1.685c0.582,0.354,0.115,0.816-0.246,1.105
+                       c-0.499,0.404-1.066,0.848-1.675,0.288c-0.16-0.146,0.057-0.735-0.504-0.43c-0.216,0.115-0.386,0.238-0.359,0.645
+                       c0.062,0.988-0.099,1.558-1.535,1.454c-1.255-0.091-2.839,1.08-2.794,2.331c0.055,1.51-1.045,1.45-1.71,2.314
+                       c-0.015-0.87-0.752-1.432,0.068-2.386c-1.453,0.999-2.854,0.986-4.226,1.099c-0.391,0.033-1.032,0.138-1.028-0.3
+                       c0.004-0.462,0.414-0.976,0.763-1.359c0.19-0.206,0.711-0.353,0.938-0.238c1.533,0.772,2.33,0.128,2.799-1.32
+                       c0.121-0.372,0.333-0.936,0.752-0.768c0.985,0.396,1.032-0.337,1.282-0.88c-0.583-0.245-1.106-0.664-1.824-0.379
+                       c-0.529,0.209-1.091,0.692-1.318-0.506c-0.134-0.707,0.324-0.589,0.511-0.723c0.327-0.233,0.96,0.155,1.158-0.581
+                       c-0.557-0.501-1.434,0.319-1.982-0.445c-0.186-0.26-0.471,0.077-0.535,0.402c-0.254,1.248-1.221,1.746-2.232,2.301
+                       c-0.87,0.477-1.51,1.879-2.504,0.081c-0.197-0.357-1.038,0.165-1.314,0.499c-0.548,0.656-1.308,0.503-1.951,0.742
+                       c-0.482,0.177-0.944-0.112-1.13-0.573c-0.179-0.445,0.312-0.583,0.582-0.681c0.403-0.147,0.543-0.198,0.291-0.672
+                       c-0.312-0.591-0.529-0.175-0.742-0.01c-0.414,0.322-0.785,0.705-1.635,0.497c0.699-1.542,2.559-1.408,3.405-2.714
+                       c-1.118-0.113-2.192,0.61-3.322,0.414c-0.083-0.015-0.233,0.187-0.282,0.161c-1.935-1.028-2.22,0.717-2.75,1.757
+                       c-1-0.095-0.147-1.735-1.37-1.351c-0.898,0.281-1.115,1.023-0.964,1.941c0.074,0.453-0.062,1.084-0.688,0.904
+                       c-0.742-0.213,0.263-0.679,0.027-0.883c-0.431-0.374,0.083-1.321-0.274-1.163c-1.081,0.481-1.73-1.353-2.769-0.374
+                       c-0.21,0.197-0.089,0.53,0.847,1.38c-2.573-1.154-3.136,1.608-5.075,1.489c-0.078-0.507,1.111-1.088,0.197-1.619
+                       c-0.622-0.362-1.326-0.188-1.892,0.249c-0.688,0.528-1.34,1.101-2.299,0.919c-0.07-0.396,0.193-0.548,0.408-0.722
+                       c0.63-0.52,0.677-1.52,0.503-1.904c-0.331-0.738-1.052-0.049-1.621,0.116c-1.002,0.285-1.996,0.401-2.807-0.592
+                       c0.569-0.62,1.268-0.723,2.022-0.681c0.444,0.023,0.656-0.216,0.545-0.639c-0.148-0.554-0.403-0.088-0.603-0.027
+                       c-1.662,0.509-2.873-0.672-4.264-1.158c-0.38-0.133-0.238-0.48,0-0.68c0.372-0.312,0.21-1.171,1.075-0.99
+                       c1.004,0.208,2.068,0.216,3.026,0.544c1.278,0.435,2.542,0.47,3.812,0.231c0.405-0.078,0.618-0.005,0.913,0.184
+                       c1.276,0.824,2.028-0.348,2.949-0.832c0.098-0.051,0.109-0.458,0.022-0.63c-0.168-0.339-0.468-0.199-0.737-0.08
+                       c-0.529,0.236-1.179,0.573-1.478-0.16c-0.346-0.845,0.495-0.769,0.97-1.009c0.625-0.313,0.966-0.915,1.204-1.595
+                       c-0.647-0.272-0.841,0.291-1.117,0.575c-0.779,0.81-1.577,0.88-2.459,0.205c-0.269-0.205-0.528-0.54-0.821-0.576
+                       c-1.222-0.149-2.445,0.299-3.333-1.35c-0.409-0.76-1.301-1.067-0.222-2.233c-2.054,0.697-3.558,1.561-4.585,3.13
+                       c-0.09,0.14-0.484,0.409-0.444,0.136c0.136-0.962-1.177-0.388-0.907-0.681c0.694-0.759-0.208-2.054,1.136-2.6
+                       c1.102-0.449,1.232-1.604,1.07-2.713c-0.719-0.17-0.607,0.536-0.883,0.655c-0.722,0.31-1.455,1.61-2.283-0.055
+                       c-0.238-0.483-1.138-0.81-1.814-1.107c-0.369-0.16-2.042,0.869-1.14-0.921c0.004-0.009-0.299-0.249-0.371-0.212
+                       c-1.366,0.71-1.277-1.042-2.117-1.268c-0.289-0.078-0.062-0.51,0.101-0.742c0.211-0.3,0.461-0.255,0.731-0.057
+                       c0.501,0.373,1.002,0.759,1.724,0.606c-0.357-0.494-0.132-1.251-0.839-1.532c1.33-0.604,2.547-0.421,3.867,0.084
+                       c2.073,0.797,4.352,0.331,6.509,0.802c1.088,0.237,1.689-0.249,1.909-1.58c0.141-0.866,1.183-1.648,2.449-1.638
+                       c-0.713-0.251-1.425-0.504-2.135-0.755c0.291-0.863,1.262-1.056,1.744-1.758c0.268-0.391,0.622-0.576,0.093-1.088
+                       c-0.469-0.451-0.552-0.538-1.159-0.055c-0.707,0.566-1.777,0.676-2.773,0.825c0.414-0.872,1.731-1.035,1.365-2.373
+                       c-1.673,0.242-2.979,2.494-5.003,1.12c1.61-1.61-0.504-2.256-1.123-2.533c-1.481-0.663-2.464-1.868-3.751-2.7
+                       c-0.303-0.195-0.452-0.341-0.227-0.65c0.389-0.528,1.019-1.085,1.557-0.757c1.826,1.118,4.124,1.022,5.852,2.488
+                       c0.535,0.455,2.039,1.416,2.474-0.654c0.172-0.816,1.232-0.316,1.856-0.434c0.767-0.142,0.399,0.462,0.306,0.904
+                       c-0.051,0.236,0.334,0.821,0.486,0.808c1.43-0.125,2.736,0.481,4.107,0.867c0.092-0.844-0.529-1.05-0.771-1.475
+                       c-0.454-0.796-0.282-1.133,0.451-1.44c1.319-0.553,2.597-1.325,3.971-1.589c0.771-0.148,1.743-0.765,2.748,0.528
+                       c0.745,0.957,2.831,0.825,4.092,0.214c1.811-0.878,3.094-1.568,5.666-1.926c0.348-0.048,0.866-0.152,0.615-0.557
+                       c-0.681-1.095-0.675-2.592-1.467-3.406c-0.484-0.501-1.574-0.763-2.357-1.284c-0.429-0.285-0.794,0.474-1.076,0.886
+                       c-0.53,0.772-0.982,1.629-2.076,1.89c0-1.178,1.644-1.169,1.513-2.467c-0.449-0.184-0.848,0.272-1.215,0.327
+                       c-0.401-0.546,0.302-0.688,0.233-1.066c-0.479,0.396-0.908-0.211-1.439-0.032c-1.049,0.358-2.927,1.252-3.944,2.086
+                       c-0.497-0.829,0.835-1.234,0.351-2.174c-1.064,0.495-1.807,1.597-3.158,1.924c0.388-1.805,2.535-2.245,2.892-3.995
+                       c-0.922-0.282-0.743,0.94-1.484,0.972c-0.217-2.084-1.661-0.055-2.375-0.685c-0.197,1.695-2.106,0.389-2.51,1.626
+                       c-0.738-0.544-0.325-1.173-0.418-1.7c-0.142-0.792-0.478-1.099-1.24-0.696c-0.17,0.089-0.446,0.608-0.425,0.293
+                       c0.041-0.669-1.185-0.593-0.666-1.15c0.758-0.812,0.256-2.315,1.622-2.764c0.253-0.081,0.605-0.42,0.457-0.817
+                       c-0.062-0.168-0.315-0.356-0.497-0.375c-0.397-0.039-0.572,0.245-0.708,0.61c-0.176,0.47-0.409,0.927-0.688,1.344
+                       c-0.214,0.319-0.004,1.427-1.077,0.51c-0.28-0.239-1.713,0.788-2.267,1.65c-0.584-0.17,0.507-1.445-0.833-1.154
+                       c-0.183,0.04,0.043-0.687,0.117-0.702c1.501-0.287,0.03-0.772,0.055-1.158c-0.267,0.485-0.531,0.968-0.873,1.593
+                       c-0.312-0.929-0.743-1.352-1.599-0.796c-0.518,0.334-1.159-0.126-1.017-0.431c0.595-1.279-0.698-1.321-1.079-1.939
+                       c-0.236-0.382-1.102-0.14-0.891-0.819c0.157-0.512,0.7-0.671,1.246-0.791c0.439-0.097,1.357,0.083,0.841-1.05
+                       c-0.147-0.324,0.476-0.923-0.467-0.442c-0.865,0.445-0.835-1.002-1.663-0.658c0.299-0.765,0.97-0.508,1.489-0.78
+                       c-0.69-0.993-2.528-0.242-2.489-1.926c1.544-0.373,2.709,1.888,4.487,0.863c-0.469-0.106-0.281-1.075-0.988-0.844
+                       c-1.18,0.385-0.363-1.096-1.085-1.084c0.327-0.759,0.862,0.255,1.257-0.196c0.094-0.504-0.288-1.085,0.041-1.59
+                       c0.996-0.184-0.208,2.45,1.692,1.119c0.168,1.048-0.733,1.956-0.165,2.955c0.242,0.422-0.261,1.737,0.974,0.634
+                       c0.17-0.151,0.469,0.079,0.402,0.353c-0.434,1.813,0.758,1.005,1.433,0.863c1.202-0.251,2.253-1.15,3.604-0.899
+                       c-0.075,0.637-0.588,0.807-0.988,0.847c-0.654,0.063-0.97,0.27-0.826,0.945c0.124,0.589,0.572,0.979,1.096,0.863
+                       c1.124-0.249,1.86,0.147,2.625,0.95c0.934,0.976,2.183,0.572,3.763-1.096c-0.65-0.285-1.28-0.562-1.941-0.851
+                       c1.274-1.129,2.722,0.117,4.082-0.472c-1.001-1.551-2.459-2.401-4.227-3.039c1.495-0.334,3.143-0.418,2.409-2.598
+                       c-0.793-0.056-1.122,0.663-1.617,1.096c-0.533,0.468-1.546,0.893-1.728,0.556c-0.637-1.196-2.124-1.131-2.822-2.122
+                       c0.376-0.66,1.189-0.096,1.607-0.817c-0.531-0.125-1.433-0.015-1.159-0.912c0.221-0.721,0.93-0.413,1.338-0.28
+                       c0.781,0.252,1.573-0.33,2.346,0.176c0.293,0.193,0.652-0.136,0.711-0.521c0.109-0.702-1.524-2.072-2.25-1.914
+                       c-0.502,0.109-1.103,0.072-1.493,0.342c-1.136,0.787-1.334,0.028-1.491-0.91c-0.388,0.451-0.556,1.173-1.196,0.906
+                       c-0.569-0.235-0.059-0.772-0.081-1.173c-0.029-0.454-2.142-1.788-2.537-1.531c-0.686,0.445-1.37,0.314-2.385,0.193
+                       c1.064-0.863,1.854-1.58,3.183-1.353c-1.458-1.853-2.745-0.363-4.166,0.077c0.289-0.984,1.278-0.795,1.644-1.557
+                       c-1.362-0.28-2.347-1.265-4.016-1.874c2.291-0.209,3.912,0.265,5.277,1.514c0.423-0.393,0.202-0.757-0.151-1.23
+                       c0.967,0.038,1.264,0.719,1.687,1.143c0.255,0.255-0.177,1.083,0.583,0.997c0.945-0.112-0.265-1.028,0.423-1.306
+                       c1.635,0.77,3.309,0.647,4.999,0.217c-1.057-0.432-2.013-1.204-3.209-0.733c-0.129,0.05-0.456-0.047-0.457-0.085
+                       c-0.054-1.423-1.464-1.877-2.046-2.914c-0.051-0.091-0.098-0.183-0.147-0.276c2.293-1.011-0.246-1.747-0.059-2.777
+                       c1.441,0.691,2.486-0.508,3.744-1.016c-2.141-2.108,1.212-1.372,1.388-2.649c-1.489,0.369-2.892,0.808-4.372,0.248
+                       c0.063-0.331,0.478-0.378,0.785-0.559c0.485-0.287,1.228-0.585,1.062-1.171c-0.112-0.391-0.819-0.707-1.482-0.348
+                       c-0.213,0.117-0.626-0.136-1.062-0.25c0.576-0.397,1.431-0.43,1.436-0.927c0.009-0.697-0.754-0.692-1.342-0.755
+                       c-0.693-0.073-0.298-0.513-0.345-0.899c-0.091-0.749,0.156-0.502,0.61-0.489c1.701,0.052,3.334,0.129,3.78,2.258
+                       c0.608-0.2,0.756,0.723,1.363,0.555c0.788-0.215,0.077-0.612,0.126-0.914c0.04-0.251,0.204-0.467,0.459-0.411
+                       c0.49,0.108,0.692,0.818,1.325,0.665c-0.158,0.279-0.317,0.562-0.631,1.114c0.919-0.572,1.665-0.513,2.452-0.472
+                       c1.506,0.08,2.838-1.014,4.469-0.655c0.726,0.159,0.484-0.757,0.433-1.206c-0.064-0.587-0.531-0.272-0.799-0.198
+                       c-1.021,0.277-2.166-0.625-1.773-1.654c0.831-2.175-1.229-1.699-1.983-2.258c-0.692-0.511-1.759-0.511-2.748-0.757
+                       c0.437-0.742,1.047-0.761,1.567-0.936c0.879-0.297-0.03-0.814,0.151-1.231c0.146-0.333-0.085-0.405-0.482-0.385
+                       c-1.958,0.104-3.867,0.025-4.46-2.441c0.775,0.038,1.68,0.593,2.729,0.061c-0.531-0.661-1.733-0.648-1.756-1.756
+                       c1.032-0.606,1.756,0.192,2.635,0.517c2.064,0.761,4.183,1.378,6.299,1.982c0.838,0.238,1.728,0.899,2.597,0.024
+                       c0.739,1.086,2.073,0.678,3.052,1.201c0.373,0.2,1.565,1.582,1.214-0.472c-0.01-0.053,0.134-0.187,0.215-0.195
+                       c1.998-0.221,0.652-0.972,0.201-1.548c0.101-0.053,0.156-0.108,0.204-0.1c0.975,0.14,1.984,0.282,2.668-0.632
+                       c0.344-0.463-0.757-0.858-1.693-0.504c-0.312,0.117-0.544,0.443-0.856,0.568c-0.796,0.316-1.376-0.109-1.07-0.846
+                       c0.308-0.738-0.261-0.449-0.448-0.487c-0.943-0.189-1.871-0.385-2.58-1.142c0.237-0.361,0.692-0.034,0.89-0.225
+                       c0.533-0.514,1.55,0.462,1.722-0.417c0.174-0.891-0.903-1.287-1.481-1.616c-0.717-0.409-1.191-0.521-0.59-1.401
+                       c0.128-0.186-0.019-0.824-0.214-0.931c-1.311-0.715-1.444-2.469-2.867-3.141c0.582-0.353,0.96,0.257,1.391,0.225
+                       c0.828-0.059,1.486-0.63,1.546-1.384c0.051-0.647-0.816-0.585-1.306-0.734c-0.37-0.113-0.926,0.099-1.162-0.108
+                       c-0.543-0.477,0.557-0.681,0.361-0.784c-0.335-0.18-0.063-1.698-1.066-0.563c-0.085,0.096-0.677,0.389-0.798-0.208
+                       c-0.073-0.365-0.079-0.7,0.437-0.723c0.261-0.012,0.603,0.098,0.661-0.47c-0.457-0.232-1.084-0.136-1.521-0.588
+                       c-0.414-0.431-0.979-0.714-1.841-1.316c1.094,0.234,1.794,0.419,2.506,0.525c0.62,0.094,0.955,1.044,1.747,0.567
+                       c-0.548-0.69,0.761-0.807,0.427-1.598c-0.448-1.056-1.361-0.129-1.909-0.648c0.389-0.872,1.304-0.462,1.969-0.842
+                       c-1.03-0.923-2.746-0.653-3.391-2.231c1.418,0.432,2.711,1.031,4.144,1.067c0.606,0.014,1.052,0.486,1.406,0.911
+                       c1.307,1.581,2.332,1.433,3.218-0.513c-0.047-0.032-0.094-0.068-0.145-0.096c-0.662-0.357-1.86,0.662-1.939-0.155
+                       c-0.095-0.969,1.296-0.661,2.19-1.05c-1.138-0.717-1.722-2.22-3.489-1.54c0.255-1.828,2.213-2.035,2.952-3.423
+                       c-1.296-0.286-2.175,0.081-2.712,1.461c-0.567-1.354,0.69-1.807,0.762-2.668c-1.811-0.544-2.229,0.795-2.584,2.225
+                       c-0.657-0.37-0.024-2.004-1.415-1.256c-0.036,0.02-0.384-0.397-0.469-0.65c-0.127-0.381,0.217-0.462,0.491-0.536
+                       c0.433-0.113,0.883-0.338,1.301-0.292c1.398,0.145,1.712-0.457,1.294-1.909c-0.843,1.148-2.084,1.148-3.233,1.785
+                       c0.032-1.459,1.398-1.104,1.992-1.857c-1.46-0.127-2.52,0.5-3.846,1.538c0.566-1.209,0.188-1.795-0.723-1.962
+                       c0.324-0.666,1.015-0.456,1.204-1.152c-0.952,0.649-1.499-0.421-2.321-0.404c-0.14,0.002-0.627,0.276-0.404-0.317
+                       c0.446-1.193-0.006-1.189-0.911-0.7c-0.266,0.143-0.745,0.107-0.917-0.215c-0.229-0.429,0.229-0.401,0.463-0.493
+                       c0.35-0.138,0.237-0.458,0.053-0.493c-0.962-0.179-0.561-1.1-1.238-1.803c0.87,0.112,1.397-0.023,1.835,0.569
+                       c0.178,0.238,0.639,0.477,0.887,0.409c0.542-0.15-0.363-0.702,0.265-1.02c0.873,0.963,1.835,1.949,3.303,1.888
+                       c0.529-0.023,0.499,0.102,0.49,0.532c-0.004,0.273,0.297,0.77,0.497,0.789c1.342,0.123,2.406,1.024,3.699,1.247
+                       c0.362,0.063,0.803-0.026,0.875-0.383c0.141-0.721-0.987-0.441-1.019-1.355c2.684,1.607,6.05,1.107,8.303,3.543
+                       c0.406-0.797,0.107-1.423-0.031-2.106c0.603-0.279,0.48,0.752,1.132,0.514c-0.087-0.549,0.5-1.381-0.058-1.755
+                       c-0.403-0.272-1.31-0.102-1.818,0.535c-0.327,0.41-0.773,0.478-1.198,0.053c-0.437-0.437,0.005-0.662,0.168-1.01
+                       c0.24-0.513,0.703-1.336-0.571-1.091c-0.361,0.068-0.648,0.043-0.493-0.335c0.451-1.101-0.484-0.74-0.877-1.074
+                       c-0.747-0.636-1.235-1.581-2.317-1.883c2.292,0.1,4.42,0.787,6.571,1.353c0.722,0.191,1.025,0.07,0.762-0.692
+                       c-0.229-0.666,0.158-1.197,0.391-1.939c-0.926,0.299-1.253,1.12-2.034,1.59c-0.429-1.133-1.731-1.014-2.547-1.841
+                       c-0.855-0.863-0.949-2.165-2-2.826c0.442-0.73,1.077,0.081,1.529-0.181c0.429-0.248,0.779-0.629,1.168-0.956
+                       c0.631,0.316-0.132,1.633,0.382,1.28c0.966-0.663,2.831,0.136,3.067-1.877c-1.655,1.088-3.517-1.263-5.09,0.706
+                       c1.148-1.003,0.764-2.339,1.307-3.645c-1.148,0.632-2.199,0.117-3.331,0.544c-0.691,0.26-2.425,0.535-2.999-0.502
+                       c-0.705-1.271-2.179,0.373-2.603-1.037c0.32-0.839,1.35-0.862,1.996-1.405c-0.387-0.376-0.709-0.702-1.13-0.513
+                       c-0.849,0.387-1.593,0.233-2.304-0.289c-0.178-0.131-0.728-0.25-0.472-0.378c0.378-0.191,0.179-0.967,0.909-0.746
+                       c0.758,0.231,1.57,0.282,2.39,0.419c-0.466-1.948-0.466-1.948-1.684-1.816c0.095-1.015,1.223-0.901,1.707-1.526
+                       c-1.185-0.313-1.185-0.313-3.116,0.819c0.02-0.859,0.561-1.489,1.009-2.652c-1.07,1.12-2.098,1.067-3.313,1.116
+                       c0.555-1.131,1.693-0.873,2.336-1.429c-0.942-0.572-2.926-1.035-4.525-1.054c0.117-0.587,0.786-0.378,1.119-0.781
+                       c-0.671-0.424-1.574-0.287-1.979-0.065c-0.966,0.535-0.501-0.734-1.132-0.723c-0.316,0.006,0.021-0.467,0.416-0.456
+                       c0.017-1.357,1.071-0.407,1.585-0.686c0.295-0.158,0.936,0.437,0.949-0.44c0.004-0.31,0.416-0.377,0.422-0.254
+                       c0.058,1.278,1.939,1.05,1.911,2.419c-0.016,0.755,0.612,1.01,1.428,1.122c0.032-0.862-1.842-1.977,0.259-2.495
+                       c-0.004-0.611-0.775-0.558-0.98-0.993c0.164-0.117,0.247-0.231,0.328-0.229c1.083,0.015,1.975,0.493,3.302,0.104
+                       c1.533-0.448,3.646,0.017,5.266,1.141c0.79,0.549,1.776,1.332,1.865-0.589c0.019-0.413,0.762-0.362,0.669-0.921
+                       c-0.943-0.508-1.342,0.208-1.731,0.993c-0.342-1.108-2.153-2.006-3.028-1.654c-0.873,0.35-0.873,0.35-2.168-0.279
+                       c0.949-0.602,2.198-0.258,2.981-1.083c-1.017-1.264-1.788-0.219-2.554,0.303c-0.521-0.57,0.658-0.765,0.163-1.165
+                       c-0.204-0.167-0.705-0.138-0.981-0.008c-0.548,0.259-1.157,0.636-1.432-0.138c-0.259-0.73,0.72-0.506,0.997-0.89
+                       c0.085-0.117,0.257-0.171,0.586-0.377c-1.559-0.461-3.094-0.729-3.725-2.389c1.896,0.241,3.946,0.144,4.664,2.702
+                       c0.539-0.533,0.231-1.101,0.488-1.58c0.125,0.045,0.337,0.059,0.376,0.15c0.556,1.275,2.044,1.665,2.688,2.862
+                       c0.245,0.456,0.527,0.06,0.833-0.007c1.372-0.294,2.752-0.637,3.826,0.818c0.253,0.344,0.729,0.289,0.722-0.529
+                       c-0.01-1.017,0.648-1.319,1.19-0.592c0.511,0.684,1.259,1.369,1.769,1.661c1.159,0.667,2.922,1.282,4.019,0.847
+                       c2.324-0.922,2.213-1.203,3.577-1.21c-0.682-0.569-1.226-0.979-1.383-1.86c-0.098-0.555-1.17-0.181-1.869,0.234
+                       c0.187-1.16,1.032-1.559,1.581-2.182c0.256-0.287,0.401-0.624,0.12-0.922c-0.356-0.374-0.581,0.036-0.841,0.229
+                       c-1.242,0.912-2.79,0.27-3.1-1.287c-0.202-1.019-1.038-0.557-1.435-0.441c-0.956,0.28-1.5-0.157-2.169-0.693
+                       c-0.856-0.687-0.435-1.095,0.359-1.646c-1.677-0.276-3.039-0.818-4.058-2.02c1.229-0.136,2.423-0.598,3.387,0.824
+                       c0.535,0.788,1.134,0.224,1.132-1.062c0.917,1.574,1.563,2.686,3.105,2.641c0.333-0.011,0.276,0.432,0.38,0.676
+                       c0.144,0.342,0.565,0.447,0.649,0.183c0.255-0.787,0.566-1.665,0.601-2.392c0.039-0.883-0.322-2.065-1.367-2.573
+                       c-0.252-0.123-0.663,0.155-1.108-0.183c1.017-0.705,1.821-1.565,2.372-2.617c-0.077-0.083-0.109-0.146-0.149-0.151
+                       c-2.686-0.367-2.999-0.413-2.691-2.508c0.198-1.349-0.55-1.595-1.269-2.185c1.278-0.665,2.783,0.437,3.877-0.937
+                       c-1.812-0.727-0.361-1.93-0.456-2.994c0.758,1.249,2.079,1.965,2.722,3.279c0.24,0.491,0.645,1.212,1.472,0.443
+                       c0.439-0.405,0.805-0.268,0.749,0.474c-0.059,0.765,0.752,0.54,1.123,0.829c0.047,0.036,0.391-0.198,0.495-0.369
+                       c0.315-0.517-0.204-0.657-0.45-0.944c-0.626-0.74-1.727-1.412-0.306-2.475c0.351-0.261,0.334-0.759-0.255-1.099
+                       c-0.469-0.272-0.753-0.424-1.129,0.062c-0.23,0.299-0.263,0.801-0.85,0.837c-0.603-0.926,0.89-1.143,0.659-2.043
+                       c-0.62-0.113-0.757,0.756-1.3,0.748c-0.306-0.261,0.363-1.42-1.011-0.782c-1.329,0.619-1.686,0.161-1.501-1.146
+                       c0.057-0.392-0.351-0.657-0.429-0.61c-1.319,0.776-0.495-1.002-1.162-0.962c0.138-0.829,0.941-0.399,1.38-0.697
+                       c0.217-0.146,0.737,0.437,0.984-0.191c-0.816-0.155-0.242-1.635-1.164-1.431c-1.102,0.244-1.616-1.317-2.718-0.689
+                       c0.012-0.802-0.253-1.497-0.899-2.125c0.892,0.365,1.693,0.842,2.451-0.072c0.149-0.179,0.493-0.168,0.61,0.043
+                       c0.692,1.246,1.783,1.719,3.141,1.866c0.197,0.022,0.316,0.762,0.471,1.17c1.586-0.944,2.353,1.289,3.788,0.982
+                       c0.319-0.068,0.597,0.34,1.02-0.146c0.331-0.377,1.117,0.329,0.915,0.871c-0.159,0.428,0.006,0.704,0.336,0.85
+                       c0.571,0.251,0.359-0.367,0.539-0.557c0.525-0.566,1.03-1.15,1.544-1.73c0.365,0.257,0.187,0.493,0.002,0.71
+                       c-0.31,0.365-0.671,0.818-0.238,1.2c0.401,0.354,0.678-0.204,0.971-0.435c0.422-0.329,0.872-0.857,0.983,0.215
+                       c0.027,0.257,0.055,0.515,0.282,0.072c0.531-1.033,1.249-0.11,1.506,0.085c1.098,0.829,1.527,0.731,2.132-0.825
+                       c-1.293,0.672-2.094-0.999-3.546-0.378c0.342-0.701,1.777-1.284,0.029-1.548c-0.837-0.127-1.613-0.662-2.414-1.02
+                       c-0.102-0.045-0.181-0.14-0.272-0.212c-1.523,2.113-2.215-1.108-3.544-0.234c0.131-1.014,0.832-0.575,1.138-0.921
+                       c-0.291-0.494-0.854-0.649-1.281-0.528c-1.599,0.454-1.915-0.324-1.607-1.874c-0.854,0.423-1.574,0.899-1.604-0.522
+                       c-0.012-0.498-0.934-0.555-1.516-0.409c-0.429,0.107-0.785,0.503-1.469,0.294c1.25-0.615,0.747-1.355,0.335-2.14
+                       c-0.666-1.268-1.236,0.454-1.905-0.072c0.597-1.213-0.556-1.435-1.722-2.124c2.224,0.11,3.753,0.731,5.317,1.664
+                       c0.457-0.252,0.017-0.889,0.23-1.46c0.412,0.197,0.988,0.284,1.121,0.576c0.206,0.452-0.257,1.344,0.508,1.383
+                       c0.41,0.023,1.096-0.673,1.24-1.17c0.217-0.741-0.629-0.953-1.13-1.3c-0.055-0.038-0.023-0.2-0.053-0.556
+                       c1.257,1.008,3.156,0.639,3.757,2.465c0.442-0.385,0.998,0.025,1.444-0.2c0.342-0.172,0.488-0.482,0.291-0.869
+                       c-0.195-0.387-0.402-0.653-0.935-0.443c-0.431,0.17-0.896,0.019-1.318-0.199c0.025-0.845,1.354,0.233,1.221-0.859
+                       c-0.094-0.795-0.432-1.204-1.275-1.016c0.092-1.349-0.743-1.205-1.641-1.072c-0.236,0.034-0.352-0.438-0.236-0.532
+                       c1.236-1.001-0.125-1.558-0.601-2.559c1.047,0.451,1.763,1.225,2.708,0.618c0.214-0.138,0.516,0.049,0.459,0.306
+                       c-0.336,1.533,1.484,1.208,1.813,2.15c0.297-0.131,1.009,0.698,0.898-0.445c-0.049-0.508,0.444-0.4,0.758-0.223
+                       c0.563,0.314,1.137,0.604,1.797,0.473c0.456-0.091,1.212,0.329,1.298-0.395c0.074-0.607-0.578-0.749-1.132-0.786
+                       c-0.13-0.008-0.251-0.144-0.348-0.202c0.072-0.783,0.942-0.671,1.191-1.274c-1.088-0.765-2.056,0.88-3.16,0.058
+                       c-0.094-0.498,0.792-0.532,0.716-1.171c-0.975-0.149-1.379,1.675-2.557,0.816c0.021-0.835,1.085-0.242,1.25-0.938
+                       c-1.666-0.444-2.635-3.072-5.083-1.241c0.191-1.281-0.123-2.102-1.279-2.257c0.461-0.861,1.805,0.995,1.896-0.793
+                       c0.005-0.119,0.391,0.087,0.519,0.261c0.854,1.165,2.627,1.196,3.249,2.643c0.477-0.353,1.019,1.084,1.603-0.153
+                       c0.291-0.615,1.083-0.24,1.568,0.355c0.312,0.384,0.709,1.289,1.271,0.725c0.557-0.562,0.882-1.491,1.003-2.303
+                       c0.095-0.651-0.623-0.581-1.155-0.613c-0.996-0.059-1.083-0.967-1.377-2.045c-0.326-1.189-0.777-2.577-2.136-3.317
+                       c1.591-0.466,2.903,0.918,4.438,0.233c0.686-0.305,0.948,1.625,2.052,0.685c0.813,1.169,1.773,1.561,2.996,0.576
+                       c0.107,0.241,0.217,0.486,0.346,0.773c0.55-0.955,0.451-1.976-0.214-2.577c-1.155-1.042-0.795-1.462,0.409-1.862
+                       c0.12-0.039,0.179-0.272,0.315-0.49c-0.505-0.215-1.058,0.589-1.13,0.246c-0.524-2.483-2.319-0.962-3.793-1.062
+                       c0.661-0.8,1.682-0.385,2.033-1.225c-1.27-0.36-2.98,0.31-3.642-1.524c0.253-0.42,1.529,0.748,1.151-0.695
+                       c0.582-0.116,0.771,0.522,1.268,0.666c0.562,0.163,1.074,1.352,1.624,0.507c0.484-0.742-0.9-0.553-1.202-1.165
+                       c0.567-0.24,1.109-0.47,1.985-0.84c-1.231-0.176-2.102,0.597-2.987-0.04c0.518-0.834,1.582-0.024,2.329-0.969
+                       c-1.304-0.124-1.862-1.557-3.295-1.316c-0.162,0.027-0.372-0.218-0.561-0.338c1.493-1.197-0.563-1.468-0.611-2.863
+                       c1.123,1.879,3.446,1.471,4.017,3.525c0.166,0.602,0.865,0.466,1.33,0.65c-0.066-0.871,1.161-0.463,1.289-1.461
+                       c0.127-0.977-0.425-0.836-0.81-1.248c-1.24-1.31-2.811-2.027-4.321-2.99c1.367,0.579,2.794,0.286,4.164,0.506
+                       c0.635,0.099,1.056-0.295,1.574-0.459c0.102-0.032,0.144-0.261,0.212-0.398c-1.452,0.102-0.39-1.208-0.966-1.739
+                       c-0.996-0.914,0.259-0.8,0.696-1.031c-1.199-0.932-1.577-2.563-3.087-3.203c1.331-0.384,2.402,2.516,3.72,0.06
+                       c0.763-1.423-1.227-1.227-1.255-2.324c1.024,0.066,1.394,0.933,1.952,1.465c0.491,0.47,1.049,0.749,1.385,0.142
+                       c0.25-0.449,1.076-1.139,0.125-1.741c-0.231-0.146-0.382-0.255-0.291-0.5c0.399-1.067,0.406-1.064-0.654-1.463
+                       c-0.026-0.008-0.015-0.108-0.025-0.189c0.6-0.721,1.248,0.44,1.987-0.11c-1.142-1.61-2.096-3.33-2.582-5.299
+                       c0.501,0.79,1.028,1.563,1.495,2.373c0.246,0.429,0.554,0.706,1.01,0.875c0.273,0.101,0.542,0.274,0.782,0.005
+                       c0.281-0.315-0.193-0.511-0.187-0.676c0.024-0.777-1.601-1.623,0.196-2.41c0.549-0.241-0.587-0.99-0.665-1.819
+                       c2.272,0.961,2.2-0.791,2.45-2.306c0.661,0.486,0.232,0.953,0.325,1.308c0.136,0.518-1.129,2.106,0.909,1.306
+                       c0.156-0.061,0.376-0.014,0.353,0.228c-0.024,0.256,0.095,0.646-0.329,0.667c-0.605,0.03-0.958,0.308-1.102,0.915
+                       c0.35,0.466,1.796-0.232,1.284,1.33c-0.136,0.42,1.396,0.761,2.116,1.271c0.864,0.611,0.649,0.935,0.505,1.658
+                       c-0.058,0.287-0.973,0.281-0.274,0.795c0.416,0.306,0.86,0.207,1.081-0.031c0.673-0.726,1.351-0.995,2.139-0.277
+                       c0.481,0.441,0.39,0.071,0.585-0.231c0.345-0.534,0.567-1.282,1.587-1.041c0.354,0.082,0.611-0.047,0.9,0.361
+                       c0.518,0.731-0.444,0.43-0.474,0.788c-0.018,0.185-0.261,0.353-0.407,0.526c-0.234,0.278-0.856,0.075-0.818,0.71
+                       c0.041,0.683,0.633,0.56,1.007,0.743c0.289,0.14,0.609,0.216,1.351,0.468c-1.857,0.186-3.044,1.029-4.505,1.335
+                       c0.72,0.868,1.945,0.526,2.699,1.208c0.062,0.055,0.642-0.243,0.654-0.397c0.071-1.069,0.782-0.686,1.377-0.736
+                       c0.424-0.036,0.649-0.646,1.316-0.646c-0.104,0.674-2.096,1.507,0.015,2c-0.155,0.438,0.164,1.123-0.783,1.117
+                       c-0.523-0.002-1.321-0.361-1.444,0.914c-0.086,0.902-1.326-0.426-1.922,0.298c0.161,1.156,1.408,0.627,2.14,1.303
+                       c-0.996,0.293-1.828,0.645-2.786,0.556c-0.533-0.051-0.86,0.284-1.026,0.761c-0.24,0.691,0.398,0.844,0.75,0.92
+                       c1.106,0.236,2.238,1.617,3.363,0.032c0.534,0.568,1.277,0.33,1.888,0.536c0.204,0.068-0.182,0.517-0.575,0.56
+                       c-0.351,0.04-0.938-0.213-0.913,0.441c0.023,0.653,0.662,0.155,0.972,0.386c0.251,0.187,0.616,0.218,1.107,0.374
+                       c-1.416,0.856-2.744,1.586-4.209,2.016c-0.374,0.108-1.06-0.34-0.979,0.443c0.049,0.47,0.65,0.565,1.144,0.555
+                       c0.156-0.004,0.315,0.101,1.026,0.348c-1.527,0.157-2.676,0.096-3.285,1.161c-0.214,0.374-0.779,0.664-0.469,1.177
+                       c0.431,0.708,0.732-0.153,1.123-0.174c2.139-0.11,4.277-0.249,6.448-0.38c-0.071,0.916-1.031,0.289-1.156,0.806
+                       c-0.102,0.426-0.161,1.061,0.074,1.319c0.294,0.324,1.275,0.573,1.326,0.485c0.552-0.952,1.563-0.569,2.264-0.692
+                       c0.997-0.174,0.817-1.136,1.46-1.482c0.302-0.165,0.274-0.723,0.812-0.159c0.851,0.893,2.046,0.786,3.17,0.765
+                       c-0.276,1.187-1.089,1.415-2.151,1.298c-0.323-0.036-0.934,0.058-0.956,0.18c-0.272,1.402-0.94,1.64-2.293,1.23
+                       c-0.795-0.242-0.614,1.012-1.102,1.452c-0.395,0.353,0.049,0.484,0.312,0.713c0.56,0.493,0.658,0.199,1.17-0.168
+                       c0.527-0.376,1.614,0.066,1.824-1.107c0.021-0.119,0.236,0.061,0.334,0.21c0.482,0.725,1.305,0.608,1.645,0.15
+                       c0.937-1.257,2.428-0.956,3.613-1.683c-0.317,1.982-2.247,1.418-3.226,2.304c0.252,0.392,1.006,0.452,0.692,1.159
+                       c-0.125,0.282-0.295,0.325-0.527,0.253c-0.52-0.159-1.295-0.568-1.408,0.178c-0.123,0.81,1.024,0.021,1.313,0.638
+                       c-0.079,0.492-0.516,0.354-0.816,0.407c-0.416,0.072-0.949-0.183-1.036,0.561c-0.03,0.255-0.068,0.447,0.164,0.572
+                       c0.482,0.259,0.881-0.029,1.28-0.239c0.525-0.279,2.16-0.587,3.241-0.613c0.155-0.004,0.352-0.1,0.454-0.219
+                       c1.018-1.174,2.478-0.653,3.772-1.124c-0.79,1.722-2.232,1.759-3.836,1.739c1.1,0.738,0.461,1.854,1.232,2.952
+                       c-1.48-0.626-1.529-2.773-3.102-2.117c-0.4,0.166-0.924,1.292-0.667,2.452c-1.001-0.84-1.724-0.81-2.576-0.142
+                       c-0.939,0.733-1.882,1.552-3.139,1.758c-0.329,0.053-0.856,0.072-0.773,0.462c0.077,0.365,0.421,0.902,1,0.655
+                       c0.756-0.321,1.43,0.417,2.196,0.078c0.408-0.18,0.635,0.183,0.673,0.553c0.032,0.327-0.236,0.481-0.515,0.598
+                       c-0.861,0.365-0.863,0.365-1.443,1.465c-0.102,0.192-0.216,0.168-0.392,0.119c-0.867-0.246-1.491,0.173-1.374,0.987
+                       c0.155,1.078,1.08,1.546,2.117,1.601c0.407,0.023,0.807-0.485,1.446,0.134c-1.525-0.09-1.166,2.017-2.707,1.854
+                       c1.719,0.261,3.327-0.349,4.99-0.441c0.966-0.051,1.631-0.244,2.085,0.875c-0.32,0.293-1.627-0.756-1.189,0.711
+                       c0.019,0.066-0.321,0.321-0.338,0.306c-1.123-0.95-2.456,0.382-3.589-0.336c-0.458-0.289-1.008-0.576-1.356,0.013
+                       c-0.387,0.657,0.363,0.746,0.706,0.905c1.014,0.474-0.756,0.462-0.125,1.006c0.958,0.828,3.787,0.978,4.867,0.068
+                       c0.221-0.187,0.408-0.119,0.587-0.026c0.263,0.132,0.728,0.332,0.775,0.136c0.503-2.09,2.425-0.318,3.395-1.275
+                       c0.317-0.313,0.967-0.241,0.829-0.991c-0.221-1.206,1.066-0.809,1.125-0.696c0.671,1.3,1.865,0.585,2.877,0.706
+                       c-0.484,0.893-0.957,1.523-1.997,1.261c-1.054-0.265-0.047,0.872-0.863,1.23c-1.522,0.668-2.896,1.612-4.833,1.461
+                       c0.389,0.63,1.368,0.935,0.849,1.593c-0.386,0.491-0.851-0.098-1.303-0.338c-0.78-0.419-1.6,0.104-1.943,0.668
+                       c-0.943,1.558-2.789,1.456-4.006,2.451c-1.032,0.845-2.162,0.938-3.37,0.432c-0.102-0.043-0.306-0.1-0.318-0.079
+                       c-0.967,1.944-2.685,0.656-4.386,0.912c1.234,0.605,2.173,1.066,3.116,1.528c-0.969,1.378-2.442,0.084-3.502,0.836
+                       c1.183,2.074,3.659,1.007,5.375,2.085c-0.635,0.473-1.162,0.866-1.878,1.398c1.321-0.032,2.315-0.709,3.542-0.409
+                       c0.825,0.203,1.283-1.029,1.774-1.675c0.512-0.675-0.758-0.681-0.786-1.425c0.79-0.626,1.852,0.303,2.676-0.27
+                       c0.796-0.553,1.614-1.05,2.58-1.105c0.238-0.935-1.047-0.936-0.899-1.895c1.343,0.385,2.959,1.941,3.832-0.629
+                       c0.694,0.577,0.046,1.025,0.112,1.597c1.007-0.468,1.803,0.665,2.867,0.356c-0.454,0.381-0.909,0.764-1.353,1.136
+                       c1.924,1.065,2.298,0.888,2.778-1.455c0.537,0.617,1.153,1.932,1.552,0.011c0.055-0.258,0.297-0.3,0.546-0.179
+                       c1.189,0.579,2.064,0.42,3.037-0.666c0.552-0.616,1.792-0.61,2.984-0.962c-0.364,0.776-1.578,1.039-0.608,2.005
+                       c-1.633-0.382-1.633-0.382-3.414,0.574c0.235,0.341,0.594,0.191,0.883,0.234c0.28,0.043,0.581-0.006,0.941,0.491
+                       c-0.831-0.031-1.34,0.736-2.183,0.337c-0.362-0.171-0.612-0.119-0.256,0.288c0.557,0.643-0.537,0.614-0.39,1.065
+                       c-1.261-0.342-1.754,1.401-3.256,1.063c-0.805-0.181-2.308,0.593-2.34,2.207c-0.03,1.542-0.891,0.904-1.516,0.44
+                       c-0.97-0.719-0.939-0.753-1.198,0.394c-0.099,0.439-0.618,0.845-0.809,0.681c-1.327-1.143-1.739,0.281-2.47,0.801
+                       c0.996,0.785,1.85,1.85,3.462,1.589c-0.559,1.197-1.886,1.837-1.657,3.238c-1-0.253-1.722,0.836-2.592,0.643
+                       c-0.544-0.122-0.854-0.194-0.667,0.348c0.488,1.416-0.451,1.817-1.413,2.116c-0.66,0.204-0.944,0.812-1.526,1.059
+                       c1.21,1.21,1.83-0.548,2.841-0.567c0.665-0.014,1.096-0.314,1.417,0.56c0.206,0.561,0.762,1.185,1.391,1.164
+                       c0.966-0.031,0.231-0.979,0.505-1.313c0.278-0.336,0.467-0.93,1.09-0.914c1.31,0.035,1.513-0.263,1.052-1.545
+                       c0.598-0.259,0.931,0.69,1.532,0.367c0.284-0.68-0.555-0.616-0.682-1.019c0.811-0.573,1.701-0.109,2.544-0.255
+                       c0.935-0.16-0.072,0.928,0.355,1.323c3.134-1.788,6.337-3.456,10.066-3.985c-0.98,1.884-2.699,2.729-4.211,3.918
+                       c-2.024,1.591-3.968,1.451-6.216,1.185c-0.221,0.847,0.915,0.938,0.915,1.659c-0.996-0.117-2.013-0.089-2.977-0.731
+                       c0.851,1.038,1.561,1.926,1.573,3.329c0.005,0.801,0.621,1.891-0.089,2.331c-0.716,0.446-2.002,1.172-2.759-0.618
+                       c0.604,0.592,0.364,1.108,0.364,1.576c-0.002,0.316-0.141,0.575-0.451,0.647c-0.409,0.093-0.373-0.327-0.537-0.528
+                       c-0.34-0.409-0.342-1.247-1.098-1.073c-0.136,0.032-0.584,0.6-0.732,1.099c-0.293,0.992,0.69,0.706,0.894,1.069
+                       c1.234,2.213,3.298,0.846,4.944,1.227c0.101,0.022,0.222-0.036,0.331-0.057c-0.771-2.212,1.801-0.034,1.697-1.401
+                       c0.029-0.586-1.012-0.299-0.975-0.991c0.416-0.711,2.979,1.688,1.582-1.466c0.998,0.304,1.818,0.581,2.61-0.146
+                       c-0.128,0.257-0.259,0.515-0.389,0.774c1.255,0.327,2.308-0.551,3.506-0.598c0.429-0.017,0.506-0.329,0.393-0.755
+                       c-0.083-0.322,0.31-0.655,0.484-0.476c1.47,1.513,1.593-0.37,2.298-0.904c0.769,0.541,1,1.537,0.894,2.186
+                       c-0.128,0.804-1.181,0.683-1.935,0.706c-0.363,0.011-1.155-0.218-0.537,0.655c0.049,0.07,0.042,0.181,0.06,0.274
+                       c-0.219-0.026-0.474,0.013-0.648-0.087c-0.646-0.375-1.083-0.129-1.548,0.479c0.702,0.06,1.312,0.112,2.166,0.186
+                       c-0.594,0.652-0.544,1.776-1.856,1.017c-0.412-0.238-0.811,0.742-1.523,0.645c0.567,0.816,1.115,1.248,2.102,0.767
+                       c0.536-0.261,1.528-0.398,1.634,0.251c0.101,0.625,0.295,1.76-0.984,2.011c-0.516,0.102-1.666-0.566-1.376,1.055
+                       c0.124,0.697-0.35,0.781,0.945,2.01c-2.49-0.658-2.705,2.86-5.054,2.351c-0.134,0.555,1.196,1.061,0.323,1.436
+                       c-0.599,0.259-0.896,1.743-1.969,0.716c-0.199-0.188-0.541-0.325-0.685,0.107c-0.138,0.415,0.048,0.678,0.475,0.717
+                       c0.694,0.065,1.285,0.354,2.173,0.845c-2.175,0.314-4.067,1.97-5.825-0.489c-0.38,0.496,0,1.961-1.364,1.097
+                       c-0.312-0.196-1.304-1.063-1.641,0.21c-0.27,1.028-0.123,1.924,1.025,2.388c0.378,0.151,0.811-0.226,1.162,0.193
+                       c-0.274,0.719-1.856,0.361-1.446,1.71c0.051,0.171-0.425,0.282-0.722,0.11c-0.525-0.302-1.06-0.246-1.606-0.036
+                       c0.096,0.727,0.858,0.973,0.892,1.907c0.028,0.786,1.578,0.599,2.404,0.244c1.147-0.496,2.243-0.464,3.417-0.228
+                       c0.476,0.094,1.094,0.068,1.499-0.161c2.275-1.291,4.67-2.168,7.257-2.587c1.562-0.253,0.193-0.922,0.078-1.652
+                       c2.529,0.333,5.022,0.576,7.624-0.2c-1.206,1.899-2.72,2.792-4.596,3.313c-0.312,0.087-1.102,0.842-1.437,1.344
+                       c-0.493,0.738,0.496,1.203,1.006,1.46c0.686,0.341,1.75,1.95,2.194-0.29c0.178-0.898,1.463,0.346,1.603-0.759
+                       c0.665,0.089,0.257,0.459,0.193,0.739c1.404,0.149,0.51,1.655,1.281,2.197c0.134,0.093,0.053,0.348-0.149,0.407
+                       c-1.492,0.423-1.854,2.473-3.61,2.509c-0.235,0.006-0.395-0.043-0.288,0.338c0.369,1.292-0.667,1.341-1.629,1.497
+                       c0.713,0.809,2.289,0.146,2.304,1.692c0,0.161,0.888-0.058,0.966-0.331c0.393-1.381,1.202-1.027,1.984-0.464
+                       c0.412-0.707-0.436-0.596-0.419-0.989c0.113-0.053,0.244-0.164,0.3-0.136c1.257,0.66,2.238,0.397,3.094-0.755
+                       c0.32-0.43,2.134-0.772,3.007-1.035c0.873-0.264,1.422-1.448,2.486-1.169c0.808,0.211,1.496,0.058,2.198-0.29
+                       c0.249,0.705-0.148,0.807-0.566,0.885c-0.324,0.06-0.89,0.156-0.508,0.55c0.707,0.727-0.009,0.682-0.344,0.804
+                       c-0.314,0.116-0.962,0.155-0.96,0.174c0.17,1.611-1.227,2.026-2.173,2.523c-0.792,0.417-1.966,0.517-2.83,0.267
+                       c-0.999-0.288-1.58,0.101-2.283,0.547c-0.2,0.126-0.27,0.147-0.236,0.458c0.217,1.974-0.711,2.852-2.663,2.498
+                       c-1.06-0.191-1.54,0.759-2.075,1.21c-0.486,0.409,0.502,0.868,1.054,1.172c0.39,0.215,1.161,0.415,0.775,1.092
+                       c-0.291,0.513-0.701-0.053-1.003-0.206c-0.526-0.267-1.312,0.189-1.631-0.602c-0.225,0.66-0.622,1.317-0.626,1.978
+                       c-0.006,0.575,0.673,0.519,1.119,0.385c1.761-0.52,3.517-1.065,5.267-1.621c0.14-0.044,0.274-0.36,0.344-0.339
+                       c2.457,0.78,4.221-1.148,6.352-1.605c0.76-0.162,1.624,0.331,2.301-0.611c-0.048,1.305-1.802,1.508-1.269,2.896
+                       c0.087,0.226-0.455,0.209-0.725,0.242c-1.89,0.217-2.111,0.556-1.471,2.34c-0.818,0.265-1.767-1.387-2.379-0.02
+                       c-0.444,0.989,1.245,0.543,1.323,1.461c-0.822,0.032-1.658-0.43-2.467,0.029c-0.234,0.132-0.767-0.135-0.608,0.499
+                       c0.117,0.464,0.317,0.729,0.846,0.542c0.365-0.128,0.864-0.684,1.029,0.151c0.119,0.607-0.258,0.842-0.87,1.02
+                       c-1.049,0.304-2.105,0.615-2.616,1.871c-0.306,0.757-1.753,0.657-1.971,0.546c-1.393-0.713-1.417,1.209-2.387,1.079
+                       c0.102,0.449,0.159,1.432,0.471,1.185c1.156-0.906,1.413,0.358,2.084,0.553c0.437,0.129,1.182-0.272,1.688-0.534
+                       c0.841-0.431,1.883,0.119,2.588-0.662c0.289,0.5,1.457-0.062,1.253,1.003c-0.186,0.976-2.153,2.471-3.208,2.399
+                       c-0.325-0.02-0.699-0.365-0.71,0.223c-0.025,1.281-1.149,1.151-2.291,1.562c2.873,0.9,5.133-1.435,7.683-0.478
+                       c0.266-0.544-0.733-0.619-0.569-1.148c0.225-0.344,0.455-0.181,0.722-0.038c0.82,0.443,1.516,0.888,1.998-0.547
+                       c0.234-0.695,1.567-0.007,2.215-0.8c-0.737,0.531,1.4,1.612-0.488,1.914c-0.346,0.055,0.518,0.498,0.41,0.976
+                       c-0.544,0.375-1.208-0.009-1.841,0.233c0.119,0.815,0.883,0.942,1.467,1.234c-0.353,0.712-0.943,1.003-1.557,1.076
+                       c-0.492,0.059-1.204-0.543-1.382,0.318c-0.145,0.706,0.949,0.206,1.138,0.969c-1.438-0.044-2.072,1.461-3.427,1.58
+                       c0.093,0.513,1.331,0.278,0.652,1.073c-0.519,0.609-1.468,1.107-2.099,0.811c-1.412-0.66-1.768-0.124-1.93,1.134
+                       c-0.049,0.388-0.187,0.941-0.834,0.409c-0.567-0.468-1.234-0.54-2.143-0.089c1.875,0.517,1.108,2.276,1.815,3.376
+                       c0.258,0.401,0.153,0.98,0.867,0.938c0.546-0.03,1.227,0.183,1.194-0.772c-0.024-0.676,0.562-0.502,0.908-0.713
+                       c0.869-0.535,1.933-0.521,2.716-1.29c-0.49,0.865-1.495,1.375-0.717,2.581c0.259,0.401-0.368,0.083-0.557,0.182
+                       c-0.577,0.298-1.2,0.314-2.076,0.293c0.787,1.427,2.359,0.069,3.076,1.156c-0.772,0.541-1.658,0.17-2.459,0.327
+                       c-0.195,0.038-0.512-0.061-0.448,0.294c0.037,0.206,0.238,0.555,0.451,0.384c0.749-0.597,1.374,0.451,2.189-0.234
+                       c-0.102,1.144-1.748,1.353-0.848,2.616c-1.601-1.342-2.059,1.723-3.667,0.391c0.667,2.043-0.654,3.267-3.368,3.501
+                       c0.383,0.976,1.264,1.261,2.049,1.626c0.368,0.172,0.865,0.231,0.703,0.768c-0.151,0.502-0.692,0.395-1.042,0.325
+                       c-1.134-0.221-2.099-0.961-3.379-0.853c-0.552,0.047-0.55,0.094-0.425,0.462c0.132,0.388,1.383,1.093-0.301,0.864
+                       c-0.109-0.014-0.141,0.392,0.116,0.525c0.389,0.204,0.786,0.396,1.064,0.536c0.24,0.965-1.367-0.374-0.794,0.885
+                       c0.276,0.606,0.574,1.174,1.372,0.983c0.387-0.091,0.514-0.738,1.157-0.406c0.78,0.404,0.941-0.681,1.534-0.823
+                       c0.932-0.223-0.279,1.368,0.84,0.991c0.262-0.089,0.593-0.064,0.801-0.217c1.051-0.772,2.27-1.173,3.474-1.605
+                       c0.017-0.738-0.892-0.393-1.044-0.861c0.439-0.658,2.251,0.82,1.666-1.209c-0.108-0.371,0.234-0.233,0.432-0.155
+                       c0.233,0.092,0.399,0.583,0.685,0.274c1.689-1.828,1.731,0.654,2.545,1.034c0.35,0.163-0.351,0.474-0.621,0.827
+                       c2.335,0.495,4.56,0.717,6.603-0.796c0.183-0.134,0.563-0.335,0.592-0.299c1.512,1.929,1.489-0.426,2.171-0.774
+                       c0.25-0.127,0.635-0.437,0.728-0.365c0.928,0.729,2.654-0.09,3.115,1.658c-0.486,0.153-0.949,0.3-1.441,0.456
+                       c0.441,0.415,0.804,0.757,1.426,1.342c-1.732-0.212-2.86,0.231-3.228,1.805c-0.072,0.303-0.439,0.618-0.606,0.463
+                       c-1.02-0.952-1.417,1.287-2.367,0.426c-0.135,1.665-1.142,0.334-1.756,0.511c-0.352,1.028,1.043,0.89,1.139,1.87
+                       c-1.028-1.16-0.835,1.169-1.789,0.395c-0.137,1.189,1.491,1.614,1.154,2.996c-0.291,1.199-0.459,2.226-2.009,2.052
+                       c0,0.123-0.045,0.268,0.008,0.331c0.391,0.472,1.614,0.017,1.429,0.804c-0.208,0.891-1.051-0.181-1.628,0.062
+                       c-0.34,0.144-0.973-0.224-1.068,0.241c-0.158,0.777,0.095,1.582,0.439,2.297c0.238,0.496,0.667,0.255,1.032,0.083
+                       c0.259-0.122,0.55-0.383,0.779-0.334c2.317,0.475,2.36-0.89,1.931-2.635c1.97,1.213,3.875,1.628,5.98,1.039
+                       c0.473-0.132,0.716-0.253,0.735-0.736c0.012-0.312,0.18-0.697,0.469-0.581c1.839,0.736,2.512-1.65,4.322-1.32
+                       c-1.65,0.258-0.944,2.249-2.343,2.753c-0.354,0.126-0.044,0.506,0.079,0.728c0.18,0.325,0.382,0.647-0.117,0.827
+                       c-1.939,0.695-3.648,2.634-6.01,1.145c-0.112-0.072-0.331,0.026-0.637,0.06c0.323,0.713,0.913,0.999,1.484,1.306
+                       c0.584,0.314,1.169,0.629,1.712,1.206c-2.007-1.308-3.905,0.722-6.069-0.266c0.543,1.023,1.548,1.084,1.851,1.826
+                       c-2.125,1.498-3.161-1.43-4.994-1.331c-0.085,0.863,1.38,0.498,1.015,1.555c-0.095,0.275,1.44,0.023,0.824,0.944
+                       c-0.501,0.75-0.856-0.529-1.597-0.323c0.499,0.755,0.575,1.666,1.329,2.326c-0.743,0.527-1.168-0.11-1.675-0.183
+                       c-0.845-0.121-1.661-0.572-2.493,0.278c-0.474,0.485-0.998,0.666-0.221,1.287c0.626,0.5,0.851,0.885-0.023,1.559
+                       c-0.391,0.301-1.136,1.074-0.639,2.048c0.339,0.664-0.718,0.551-0.699,0.583c0.65,1.096,0.059,1.38-0.897,1.452
+                       c0.124,1.516-0.839-0.083-1.261,0.401c-0.216,0.243-1.238-1.029-1.686-0.118c-0.442,0.908,0.484,1.371,1.521,1.747
+                       c-0.663,0.291-1.09,0.481-1.461,0.643c-0.16,0.312,0.053,0.419,0.184,0.432c1.255,0.132,2.617,0.516,3.139-1.249
+                       c0.059-0.197,0.282-0.346,0.427-0.517c1.047,1.306,1.79-0.366,2.718-0.34c0.165,0.731-0.694,0.706-0.775,1.206
+                       c0.212,0.287,0.713,0.024,0.879,0.513c-0.123,0.07-0.253,0.204-0.389,0.209c-0.528,0.026-1.091-0.351-1.546,0.305
+                       c-0.223,0.319-0.157,0.702,0.045,0.642c1.421-0.428,2.971,0.972,4.317-0.335c0.584-0.57,1.311-0.626,2.073-0.397
+                       c0.291,0.918-2.134,1.558-0.157,2.653c-0.695,0.112-1.183,0.466-1.89,0.119c-1.219-0.598-0.125,1.229-1.009,1.086
+                       c-0.66-0.104-1.315-0.247-1.971-0.374c0.733,1.298-0.715,0.775-1.023,1.215c-0.697,1.001,0.645,1.116,0.785,1.737
+                       c-0.868,0.457-1.671,0.848-2.59-0.418c-0.007,1.076,1.55,1.874,0.348,2.206c-1.041,0.284-1.956,2.444-3.402,0.536
+                       c-0.353-0.465-1.062-1.004-1.032,0.371c0.015,0.664-0.707-0.231-0.943,0.381c0.085,0.112,0.286,0.261,0.335,0.451
+                       c0.204,0.767,1.51,0.831,1.307,1.629c-0.251,1.003-1.226-0.122-1.754,0.31c-0.192,0.159-0.789,0.226-0.557,0.428
+                       c0.603,0.529-0.285,1.339,0.387,1.683c0.592,0.302,1.288,0.642,1.913,0.6c2.844-0.184,5.645-0.893,8.543-0.522
+                       c0.669,0.084,1.412-0.391,2.115-0.62c1.501-0.486,2.876-1.323,4.61-1.05c0.908,0.144,2.077-0.44,2.506-1.122
+                       c1.018-1.616,2.579-1.85,4.144-2.28c1.427-0.392,1.418-0.428,0.586-1.769c1.395,1.321,2.336-0.515,3.582-0.383
+                       c0.213,0.023,0.784-0.492,0.795-0.204c0.019,0.502,0.566,0.937,0.299,1.315c-0.274,0.389-0.31,0.583,0.078,0.793
+                       c0.457,0.252,1.209,0.25,0.89,1.111c-0.305,0.821-1.072,0.149-1.741,0.641c-0.124,0.186,1.217,1.077-0.051,1.026
+                       c-1.652-0.064-3.181,0.492-4.834,0.783c1.871,0.44,3.738,0.893,5.615,1.308c0.495,0.11,1.379-0.513,1.309,0.583
+                       c-0.06,0.965-0.884,1.013-1.655,0.948c-1.444-0.12-2.901,0.033-4.387-0.113c0.431,0.249,0.87,0.491,1.293,0.755
+                       c0.879,0.553,0.922,0.591,0.344,1.488c-0.288,0.445,0.984,0.656,0.089,1.018c-0.635,0.255-0.662-0.72-1.01-0.685
+                       c-1.91,0.188-3.139-2.4-5.365-1.263c1.192,1.171,2.379,2.284,2.319,4.172c-0.463-0.117-0.972-0.399-1.142-0.261
+                       c-1.188,0.967-2.264,1.31-3.4-0.092c-0.253-0.314-0.416,0.177-0.601,0.361c-0.389,0.385-0.242,0.825,0.032,1.069
+                       c0.786,0.702,1.435,1.754,2.716,1.527c1.096-0.195,1.658,0.628,2.399,1.12c0.183,0.122,0.43,0.251,0.204,0.526
+                       c-0.186,0.223-0.473,0.494-0.72,0.255c-0.698-0.674-1.783-0.332-2.382-1.118c-0.353,0.532,0.425,0.74,0.089,1.235
+                       c-1.425-0.912-3.311-0.356-4.661-1.666c-0.846,4.365,2.486,5.103,5.187,6.469c-0.902-0.201-1.514,0.249-2.236,0.621
+                       c-0.91,0.469-1.989,0.405-2.762-0.518c-0.332-0.396-0.735-1.042-1.189-0.485c-0.381,0.472,0.342,0.903,0.72,1.16
+                       c0.46,0.312,1.049,0.427,1.573,0.649c0.601,0.255,1.276,0.625,0.807,1.356c-0.242,0.375-0.703,1.251-1.521,0.5
+                       c-0.188-0.174-0.537-0.155-0.775-0.291c-0.39-0.222-0.817-0.705-1.174-0.148c-0.31,0.483,0.066,1.069,0.419,1.376
+                       c1.618,1.408,2.717,1.476,4.629,0.321c0.41-0.247,0.62,0.051,0.928,0.095c2.102,0.296,4.115,0.502,6.218-0.483
+                       c1.438-0.672,3.221-0.657,4.861-0.823c1.607-0.163,0.732,1.671,1.673,2.331c0.554,0.391-0.841,0.708-1.264,0.793
+                       c-1.297,0.259-1.373,1.015-1.098,2.076c-0.749-0.058-1.033-1.06-1.911-0.73c0.262,0.506,0.073,1.037,0.674,1.622
+                       c0.685,0.672-0.357,1.298-1.007,1.514c-1.213,0.404-2.459,0.136-3.578-0.404c-0.657-0.317-1.236-0.329-1.735,0.068
+                       c-0.731,0.581,0.373,0.837,0.325,1.149c-0.174,1.146,0.503,1.64,1.299,2.153c0.194,0.127,0.472,0.415,0.242,0.733
+                       c-0.199,0.272-0.497,0.141-0.783,0.141c-1.493-0.002-2.443-1.165-3.693-1.685c-1.349-0.565-1.326-0.621-1.429,0.866
+                       c-0.727-0.492-0.852-1.334-1.428-2.233c-0.184,1.858,0.659,2.993,2.061,4.216c-1.408-0.099-2.19-0.548-2.744-1.431
+                       c-0.518,0.655,0.301,1.15-0.268,1.667c-0.671-0.511-0.832-1.38-1.344-2.061c-0.516,0.775-1.053,1.182-1.38-0.097
+                       c-0.177-0.696-0.433-1.159-1.287-1.029c-0.505,0.078-0.678-0.261-0.618-0.768c0.138-1.171-1.262-0.919-1.582-1.678
+                       c-0.988,0.439-1.44,1.153-1.073,2.182c-0.261,0.192-0.38,0.119-0.512-0.016c-0.413-0.416-0.395-1.304-1.278-1.196
+                       c-0.247,0.03-0.429,0.229-0.386,0.489c0.121,0.696,0.687,1.036,1.212,1.378c0.28,0.179,0.669,0.19,0.811,0.571
+                       c-0.042,0.099-0.061,0.252-0.134,0.284c-2.276,1.006-2.682,1.073-2.839,0.335c-0.293-1.361-2.111-1.132-2.355-2.561
+                       c0.894,0.027,1.164,1.197,2.09,1.067c0.312-1.657-1.262-1.911-2.054-2.642c-0.333-0.308-0.554,0.501-0.575,0.952
+                       c-0.019,0.476,0.286,1.105-0.478,1.244c-0.745,0.134-0.955-0.479-1.185-1.007c-0.227-0.518-0.476-1.031-0.654-1.568
+                       c-0.155-0.468-0.48-0.714-0.904-0.616c-0.521,0.121-0.392,0.539-0.323,0.975c0.116,0.736,1.287,1.691,0.388,2.065
+                       c-0.794,0.329-0.626-1.206-1.066-1.701c-0.452-0.507-1.351-0.95-1.998-0.88c-1.455,0.157-2.731-0.276-4.063-0.714
+                       c1.015,1.199,1.818,2.67,3.802,2.134c0.412-0.112,0.819,0.131,0.849,0.79c0.036,0.84,0.125,0.837,1.022,0.373
+                       c-0.576,1.72-1.026,1.71-3.917-0.084c-0.042,0.88-0.038,0.875,0.67,1.498c0.278,0.246,0.821,0.454,0.456,0.932
+                       c-0.223,0.291-0.165,0.778-0.699,0.89c-1.081,0.224-2.229-0.208-3.272,0.35c-0.03,0.016-0.219-0.216-0.299-0.354
+                       c-1.032-1.79-1.343-1.86-2.644-0.587c-0.82-0.547,0.951-1.065,0.095-1.395c-0.817-0.316-0.514,0.835-0.964,1.158
+                       c-0.195,0.141-0.843-0.032-0.556,0.586c0.118,0.256,0.295,0.559-0.094,0.682c-0.121,0.04-0.327-0.302-0.524-0.352
+                       c-0.51-0.124-1.039-0.183-1.534-0.262c-0.26-0.645,1.103-0.606,0.508-1.21c-0.418-0.42-1.142-0.791-1.724-0.575
+                       c-0.729,0.268-0.038,1.11-0.359,1.807c-0.272-0.389-0.487-0.639-0.635-0.924c-0.115-0.225,0.132-0.587-0.281-0.734
+                       c-0.35,0.006-0.477,0.274-0.471,0.571c0.025,1.109-0.966,0.858-1.505,1.021c-0.704,0.215-0.481-0.557-0.695-0.9
+                       c-0.614-0.981-1.737-1.627-2.867-1.574c-0.851,0.038-0.537,1.039-0.182,1.403c0.961,0.98,1.635,2.033,2.085,3.362
+                       c0.246,0.729,1.265,0.978,2.232,0.653c0.752-0.251,1.527-0.351,2.393-0.351c1.773-0.004,0.969,2.17,2.326,2.24
+                       c-0.262,0.587-0.75,1.251-1.324,0.95c-1.359-0.71-2.765,0.173-4.217-0.5c-1.595-0.74-2.892,0.527-2.843,2.415
+                       c-0.862-0.591-1.478-1.487-2.67-1.327c-0.456,0.062-0.856-0.606-0.393-0.997c1.028-0.87,0.043-1.276-0.214-1.965
+                       c-0.642-1.716-2.686-1.671-3.551-3.051c-0.046-0.072-0.768,0.087-0.805,0.235c-0.358,1.395-1.03,0.255-1.552,0.227
+                       c0.072-0.893-1.811-1.231-0.771-2.273c0.489-0.492,0.038-0.515-0.08-0.682c-0.151-0.215-0.272-0.349-0.638-0.053
+                       c-1.393,1.129-3.037,0.784-4.007-0.702c-0.469-0.719-0.342-1.101,0.467-1.427c0.342-0.137,0.886-0.434,0.718-0.995
+                       c-0.068-0.232-0.376-0.5-0.62-0.557c-0.726-0.164-0.535,0.656-0.798,0.958c-0.398-0.877-0.771-1.69-1.141-2.506
+                       c-0.157,1.035-0.762,1.614-1.644,1.961c-1.229,0.483-0.615,1.599-0.634,2.328c-0.268,10.333-0.434,20.668-0.621,31.006
+                       c-0.004,0.172,0.051,0.344,0.077,0.517H297.173z"/>
+       </g>
+       <g>
+               <path fill="#2A3524" d="M445.968,360.892c0.305-0.553-0.053-0.606-0.501-0.863c-0.476-0.274-1.203-0.011-1.379-0.442
+                       c-0.276-0.669-0.834-0.526-1.093-0.385c-0.41,0.22,0.085,0.557,0.169,0.85c0.125,0.438,0.007,0.878-0.422,0.934
+                       c-0.586,0.08-0.557-0.336-0.45-0.805c0.1-0.444-0.41-0.669-0.639-0.633c-0.735,0.112-0.758,1.105-1.451,1.34
+                       c0.367,0.678,0.266,1.676,1.019,2.039c0.493,0.238,1.081-0.095,1.347-0.74c0.21-0.508,0.376-1.037,0.944-0.104
+                       c0.326,0.541,1.181,0.606,1.906,0.316C446.174,362.096,445.917,361.462,445.968,360.892 M438.953,307.943
+                       c0.559,3.13,0.771,3.83,1.164,3.843c1.733,0.061,3.466,0.052,5.007-1.321c-1.696,0.555-1.992-1.223-3.045-1.794
+                       C440.96,308.064,439.678,309.449,438.953,307.943 M367.103,357.439c-1.291-0.324-2.462,0.664-3.473-0.337
+                       c-0.251-0.251-0.438,0.138-0.614,0.367c-1.137,1.488-2.566,2.6-4.349,3.187c-0.483,0.16-0.393,0.496-0.44,0.804
+                       c-0.066,0.439,0.425,0.785,0.573,0.684c1.243-0.864,3.069-0.459,4.041-1.764c0.721-0.974,1.644-1.567,2.725-1.934
+                       C366.103,358.265,366.603,358.131,367.103,357.439 M356.585,354.786c0.002-0.746-0.584-0.853-1.044-0.92
+                       c-0.304-0.041-0.64,0.169-0.899-0.168c-0.594-0.77-1.514,0.138-2.147-0.42c-0.233,1.769-1.696,1.412-2.826,1.676
+                       c-0.601,0.14-1.697,2.167-1.395,2.523c0.529,0.626,1.166,0.09,1.52-0.161c1.863-1.331,3.941-1.886,6.178-2.005
+                       C356.314,355.295,356.717,355.3,356.585,354.786 M433.084,284.974c1.038,1.181,2.523,0.636,3.688,1.137
+                       c0.274,0.117,0.639-0.218,0.525-0.493c-0.261-0.64-0.132-1.08,0.423-1.438c-0.421-0.625-0.037-1.476-1.052-2.035
+                       c-2.075-1.141-3.117,1.477-5.164,0.61c0.777,1.297,2.023,0.955,2.548,1.867C433.738,284.738,433.449,284.841,433.084,284.974
+                        M422.525,245.237c-0.441,0.312-0.622-0.027-0.854-0.134c-0.726-0.337-1.369-0.146-1.872,0.389
+                       c-0.748,0.8,0.254,1.249,0.545,1.711c0.332,0.528,0.914,0.005,1.362-0.224c0.448-0.227,0.881-0.537,1.359-0.64
+                       c0.853-0.184,1.165-0.598,0.891-1.438c-0.106-0.325-0.133-0.655,0.054-0.964c-0.474-0.241-0.744,0.45-1.207,0.275
+                       c-0.118-0.995,0.718-0.696,1.162-0.902c0.508-0.237,0.836-0.598,0.879-1.163c0.039-0.527-0.369-0.629-0.751-0.794
+                       c-1.226-0.524-2.438-1.082-2.793-2.573c-0.01-0.044-0.183-0.049-0.319-0.081c-0.15,0.859,0.835,1.656,0.557,2.227
+                       C420.673,242.707,421.582,243.965,422.525,245.237 M356.828,266.352c1.446-0.127,0.36,1.259,1.153,1.531
+                       c0.926,0.32,1.127,0.922,1.062,1.815c-0.015,0.208,0.433,0.554,0.73,0.653c0.263,0.089,0.442-0.244,0.588-0.502
+                       c0.213-0.387,0.221-1.252,0.967-0.75c0.584,0.393-0.175,0.714-0.308,1.069c-0.128,0.346-0.637,0.719-0.098,1.012
+                       c0.448,0.245,1.306,0.595,1.503,0.188c0.642-1.323,2.09-1.533,2.986-2.468c0.357-0.372,0.654-0.75,0.474-1.191
+                       c-0.308-0.76-0.742,0.027-1.122-0.006c-0.46-0.037-0.773,0.559-1.306,0.267c0.13-0.544,0.506-0.721,0.979-0.988
+                       c0.873-0.49,1.992-0.876,0.805-2.429c-0.734-0.96-1.739-1.124-2.536-1.773c-1.295-1.058-2.454-0.565-3.238,0.865
+                       c-0.091,0.162-0.082,0.462-0.403,0.396c-1.617-0.325-2.288,1.358-3.659,1.62c0.998,0.067,1.947-0.899,2.884,0.113
+                       C357.944,266.239,357.379,265.768,356.828,266.352 M388.418,403.182c0.021-8.781,0.057-17.564,0.049-26.347
+                       c-0.002-1.171,0.149-2.386-1.949-2.031c-0.691,0.117-1.84-0.84-3.048-0.577c-0.342,0.076-0.62-0.163-0.996,0.289
+                       c-0.647,0.782-1.408,1.232-1.771-0.346c-0.096-0.423-0.253-1.165-0.845-1.158c-0.733,0.008-0.183,0.793-0.442,1.094
+                       c-0.32,0.372-0.754,1.696-1.127,0.007c-1.068,1.168-1.013-0.329-1.466-0.619c-0.391-0.094-0.046,1.549-0.961,0.377
+                       c-0.423-0.544-0.98,0.291-1.576,0.205c-0.391-0.056-1.098,0.339-1.213-0.098c-0.421-1.601-1.272-0.302-1.533-0.126
+                       c-0.554,0.37-1.196,1.004-0.075,1.685c0.582,0.354,0.115,0.816-0.246,1.105c-0.499,0.404-1.066,0.848-1.675,0.288
+                       c-0.16-0.146,0.057-0.735-0.504-0.43c-0.216,0.115-0.386,0.238-0.359,0.645c0.062,0.988-0.099,1.558-1.535,1.454
+                       c-1.255-0.091-2.839,1.08-2.794,2.331c0.055,1.51-1.045,1.45-1.71,2.314c-0.015-0.87-0.752-1.432,0.068-2.386
+                       c-1.453,0.999-2.854,0.986-4.226,1.099c-0.391,0.033-1.032,0.138-1.028-0.3c0.004-0.462,0.414-0.976,0.763-1.359
+                       c0.19-0.206,0.711-0.353,0.938-0.238c1.533,0.772,2.33,0.128,2.799-1.32c0.121-0.372,0.333-0.936,0.752-0.768
+                       c0.985,0.396,1.032-0.337,1.282-0.88c-0.583-0.245-1.106-0.664-1.824-0.379c-0.529,0.209-1.091,0.692-1.318-0.506
+                       c-0.134-0.707,0.324-0.589,0.511-0.723c0.327-0.233,0.96,0.155,1.158-0.581c-0.557-0.501-1.434,0.319-1.982-0.445
+                       c-0.186-0.26-0.471,0.077-0.535,0.402c-0.254,1.248-1.221,1.746-2.232,2.301c-0.87,0.477-1.51,1.879-2.504,0.081
+                       c-0.197-0.357-1.038,0.165-1.314,0.499c-0.548,0.656-1.308,0.503-1.951,0.742c-0.482,0.177-0.944-0.112-1.13-0.573
+                       c-0.179-0.445,0.312-0.583,0.582-0.681c0.403-0.147,0.543-0.198,0.291-0.672c-0.312-0.591-0.529-0.175-0.742-0.01
+                       c-0.414,0.322-0.785,0.705-1.635,0.497c0.699-1.542,2.559-1.408,3.405-2.714c-1.118-0.113-2.192,0.61-3.322,0.414
+                       c-0.083-0.015-0.233,0.187-0.282,0.161c-1.935-1.028-2.22,0.717-2.75,1.757c-1-0.095-0.147-1.735-1.37-1.351
+                       c-0.898,0.281-1.115,1.023-0.964,1.941c0.074,0.453-0.062,1.084-0.688,0.904c-0.742-0.213,0.263-0.679,0.027-0.883
+                       c-0.431-0.373,0.083-1.321-0.274-1.162c-1.081,0.481-1.73-1.353-2.769-0.374c-0.21,0.197-0.089,0.53,0.847,1.38
+                       c-2.573-1.154-3.136,1.608-5.075,1.489c-0.078-0.507,1.111-1.088,0.197-1.619c-0.622-0.362-1.326-0.188-1.892,0.249
+                       c-0.688,0.528-1.34,1.101-2.299,0.919c-0.07-0.396,0.193-0.548,0.408-0.722c0.63-0.52,0.677-1.52,0.503-1.904
+                       c-0.331-0.738-1.052-0.049-1.621,0.116c-1.002,0.285-1.996,0.401-2.807-0.592c0.569-0.62,1.268-0.723,2.022-0.681
+                       c0.444,0.023,0.656-0.216,0.545-0.639c-0.148-0.554-0.403-0.088-0.603-0.027c-1.662,0.509-2.873-0.672-4.264-1.157
+                       c-0.38-0.133-0.238-0.48,0-0.68c0.372-0.312,0.21-1.172,1.075-0.99c1.004,0.208,2.068,0.216,3.026,0.544
+                       c1.278,0.435,2.542,0.47,3.812,0.231c0.405-0.078,0.618-0.005,0.913,0.184c1.276,0.824,2.028-0.348,2.949-0.832
+                       c0.098-0.051,0.109-0.458,0.022-0.63c-0.168-0.339-0.468-0.199-0.737-0.08c-0.529,0.236-1.179,0.573-1.478-0.16
+                       c-0.346-0.845,0.495-0.769,0.97-1.009c0.625-0.313,0.966-0.915,1.204-1.595c-0.647-0.272-0.841,0.291-1.117,0.575
+                       c-0.779,0.81-1.577,0.88-2.459,0.205c-0.269-0.205-0.528-0.54-0.821-0.576c-1.222-0.149-2.445,0.299-3.333-1.35
+                       c-0.409-0.76-1.301-1.067-0.222-2.233c-2.054,0.697-3.558,1.561-4.585,3.13c-0.09,0.14-0.484,0.409-0.444,0.136
+                       c0.136-0.962-1.177-0.388-0.907-0.681c0.694-0.759-0.208-2.054,1.136-2.6c1.102-0.449,1.232-1.604,1.07-2.713
+                       c-0.719-0.17-0.607,0.536-0.883,0.655c-0.722,0.31-1.455,1.61-2.283-0.055c-0.238-0.483-1.138-0.81-1.814-1.107
+                       c-0.369-0.16-2.042,0.869-1.14-0.921c0.004-0.009-0.299-0.249-0.371-0.212c-1.366,0.71-1.277-1.042-2.117-1.268
+                       c-0.289-0.078-0.062-0.51,0.101-0.742c0.211-0.3,0.461-0.255,0.731-0.057c0.501,0.373,1.002,0.759,1.724,0.606
+                       c-0.357-0.494-0.132-1.251-0.839-1.532c1.33-0.604,2.547-0.421,3.867,0.084c2.073,0.797,4.352,0.331,6.509,0.802
+                       c1.088,0.237,1.689-0.249,1.909-1.58c0.141-0.866,1.183-1.648,2.449-1.638c-0.713-0.251-1.425-0.504-2.135-0.755
+                       c0.291-0.863,1.262-1.056,1.744-1.758c0.268-0.391,0.622-0.576,0.093-1.088c-0.469-0.451-0.552-0.538-1.159-0.055
+                       c-0.707,0.566-1.777,0.676-2.773,0.825c0.414-0.872,1.731-1.035,1.365-2.373c-1.673,0.242-2.979,2.494-5.003,1.12
+                       c1.61-1.61-0.504-2.256-1.123-2.533c-1.481-0.663-2.464-1.868-3.751-2.7c-0.303-0.195-0.452-0.341-0.227-0.65
+                       c0.389-0.528,1.019-1.085,1.557-0.757c1.826,1.118,4.124,1.022,5.852,2.488c0.535,0.455,2.039,1.416,2.474-0.654
+                       c0.172-0.816,1.232-0.316,1.856-0.434c0.767-0.142,0.399,0.462,0.306,0.904c-0.051,0.236,0.334,0.821,0.486,0.808
+                       c1.43-0.125,2.736,0.481,4.107,0.867c0.092-0.844-0.529-1.05-0.771-1.475c-0.454-0.796-0.282-1.133,0.451-1.44
+                       c1.319-0.553,2.597-1.325,3.971-1.589c0.771-0.148,1.743-0.765,2.748,0.528c0.745,0.957,2.831,0.825,4.092,0.214
+                       c1.811-0.878,3.094-1.568,5.666-1.926c0.348-0.048,0.866-0.152,0.615-0.557c-0.681-1.095-0.675-2.592-1.467-3.406
+                       c-0.484-0.501-1.574-0.763-2.357-1.284c-0.429-0.285-0.794,0.474-1.076,0.886c-0.53,0.772-0.982,1.629-2.076,1.89
+                       c0-1.178,1.644-1.169,1.513-2.467c-0.449-0.184-0.848,0.272-1.215,0.327c-0.401-0.546,0.302-0.688,0.233-1.066
+                       c-0.479,0.396-0.908-0.211-1.439-0.032c-1.049,0.358-2.927,1.252-3.944,2.086c-0.497-0.829,0.835-1.234,0.351-2.174
+                       c-1.064,0.495-1.807,1.597-3.158,1.924c0.388-1.805,2.535-2.245,2.892-3.995c-0.922-0.282-0.743,0.94-1.484,0.972
+                       c-0.217-2.084-1.661-0.055-2.375-0.685c-0.197,1.695-2.106,0.389-2.51,1.626c-0.738-0.544-0.325-1.174-0.418-1.7
+                       c-0.142-0.792-0.478-1.099-1.24-0.696c-0.17,0.089-0.446,0.608-0.425,0.293c0.041-0.669-1.185-0.593-0.666-1.15
+                       c0.758-0.812,0.256-2.315,1.622-2.764c0.253-0.081,0.605-0.42,0.457-0.817c-0.062-0.168-0.315-0.356-0.497-0.375
+                       c-0.397-0.039-0.572,0.245-0.708,0.61c-0.176,0.47-0.409,0.927-0.688,1.344c-0.214,0.319-0.004,1.427-1.077,0.51
+                       c-0.28-0.239-1.713,0.788-2.267,1.65c-0.584-0.17,0.507-1.445-0.833-1.153c-0.183,0.04,0.043-0.687,0.117-0.702
+                       c1.501-0.287,0.03-0.772,0.055-1.157c-0.267,0.485-0.531,0.968-0.873,1.593c-0.312-0.929-0.743-1.352-1.599-0.796
+                       c-0.518,0.334-1.159-0.126-1.017-0.431c0.595-1.279-0.698-1.321-1.079-1.939c-0.236-0.383-1.102-0.14-0.891-0.819
+                       c0.157-0.512,0.7-0.671,1.246-0.791c0.439-0.097,1.357,0.083,0.841-1.05c-0.147-0.324,0.476-0.923-0.467-0.442
+                       c-0.865,0.445-0.835-1.002-1.663-0.658c0.299-0.765,0.97-0.508,1.489-0.78c-0.69-0.993-2.528-0.242-2.489-1.926
+                       c1.544-0.373,2.709,1.888,4.487,0.863c-0.469-0.106-0.281-1.075-0.988-0.844c-1.18,0.385-0.363-1.096-1.085-1.084
+                       c0.327-0.759,0.862,0.255,1.257-0.196c0.094-0.504-0.288-1.085,0.041-1.59c0.996-0.184-0.208,2.45,1.692,1.119
+                       c0.168,1.048-0.733,1.955-0.165,2.955c0.242,0.422-0.261,1.737,0.974,0.634c0.17-0.151,0.469,0.079,0.402,0.353
+                       c-0.434,1.813,0.758,1.005,1.433,0.863c1.202-0.251,2.253-1.15,3.604-0.899c-0.075,0.637-0.588,0.807-0.988,0.847
+                       c-0.654,0.063-0.97,0.27-0.826,0.945c0.124,0.589,0.572,0.979,1.096,0.863c1.124-0.249,1.86,0.147,2.625,0.95
+                       c0.934,0.976,2.183,0.572,3.763-1.096c-0.65-0.285-1.28-0.562-1.941-0.851c1.274-1.129,2.722,0.117,4.082-0.472
+                       c-1.001-1.551-2.459-2.401-4.227-3.039c1.495-0.334,3.143-0.418,2.409-2.598c-0.793-0.056-1.122,0.663-1.617,1.096
+                       c-0.533,0.468-1.546,0.893-1.728,0.556c-0.637-1.196-2.124-1.131-2.822-2.122c0.376-0.66,1.189-0.096,1.607-0.817
+                       c-0.531-0.125-1.433-0.015-1.159-0.912c0.221-0.721,0.93-0.413,1.338-0.28c0.781,0.252,1.573-0.33,2.346,0.176
+                       c0.293,0.193,0.652-0.136,0.711-0.521c0.109-0.702-1.524-2.072-2.25-1.914c-0.502,0.109-1.103,0.072-1.493,0.342
+                       c-1.136,0.787-1.334,0.028-1.491-0.91c-0.388,0.451-0.556,1.172-1.196,0.906c-0.569-0.235-0.059-0.772-0.081-1.173
+                       c-0.029-0.454-2.142-1.788-2.537-1.531c-0.686,0.445-1.37,0.314-2.385,0.193c1.064-0.863,1.854-1.58,3.183-1.353
+                       c-1.458-1.853-2.745-0.363-4.166,0.077c0.289-0.984,1.278-0.795,1.644-1.557c-1.362-0.28-2.347-1.265-4.016-1.874
+                       c2.291-0.209,3.912,0.265,5.277,1.514c0.423-0.394,0.202-0.757-0.151-1.23c0.967,0.038,1.264,0.719,1.687,1.143
+                       c0.255,0.255-0.177,1.083,0.583,0.997c0.945-0.112-0.265-1.028,0.423-1.306c1.635,0.77,3.309,0.647,4.999,0.217
+                       c-1.057-0.432-2.013-1.204-3.209-0.733c-0.129,0.05-0.456-0.047-0.457-0.085c-0.054-1.423-1.464-1.877-2.046-2.914
+                       c-0.051-0.091-0.098-0.183-0.147-0.276c2.293-1.011-0.246-1.747-0.059-2.777c1.441,0.691,2.486-0.508,3.744-1.016
+                       c-2.141-2.108,1.212-1.372,1.388-2.649c-1.489,0.369-2.892,0.808-4.372,0.248c0.063-0.331,0.478-0.378,0.785-0.559
+                       c0.485-0.287,1.228-0.585,1.062-1.17c-0.112-0.391-0.819-0.707-1.482-0.348c-0.213,0.117-0.626-0.136-1.062-0.25
+                       c0.576-0.397,1.431-0.43,1.436-0.927c0.009-0.697-0.754-0.692-1.342-0.755c-0.693-0.073-0.298-0.513-0.345-0.899
+                       c-0.091-0.749,0.156-0.502,0.61-0.489c1.701,0.052,3.334,0.129,3.78,2.258c0.608-0.2,0.756,0.723,1.363,0.555
+                       c0.788-0.215,0.077-0.612,0.126-0.914c0.04-0.251,0.204-0.467,0.459-0.411c0.49,0.108,0.692,0.818,1.325,0.665
+                       c-0.158,0.279-0.317,0.562-0.631,1.114c0.919-0.572,1.665-0.513,2.452-0.472c1.506,0.08,2.838-1.014,4.469-0.655
+                       c0.726,0.159,0.484-0.757,0.433-1.206c-0.064-0.587-0.531-0.272-0.799-0.198c-1.021,0.277-2.166-0.625-1.773-1.654
+                       c0.831-2.175-1.229-1.699-1.983-2.258c-0.692-0.511-1.759-0.511-2.748-0.757c0.437-0.742,1.047-0.761,1.567-0.936
+                       c0.879-0.297-0.03-0.814,0.151-1.231c0.146-0.333-0.085-0.405-0.482-0.384c-1.958,0.104-3.867,0.025-4.46-2.441
+                       c0.775,0.038,1.68,0.593,2.729,0.061c-0.531-0.661-1.733-0.648-1.756-1.756c1.032-0.606,1.756,0.192,2.635,0.517
+                       c2.064,0.761,4.183,1.378,6.299,1.982c0.838,0.238,1.728,0.899,2.597,0.024c0.739,1.086,2.073,0.678,3.052,1.201
+                       c0.373,0.2,1.565,1.582,1.214-0.472c-0.01-0.053,0.134-0.187,0.215-0.195c1.998-0.221,0.652-0.972,0.201-1.548
+                       c0.101-0.053,0.156-0.108,0.204-0.1c0.975,0.14,1.984,0.282,2.668-0.632c0.344-0.463-0.757-0.858-1.693-0.504
+                       c-0.312,0.117-0.544,0.443-0.856,0.568c-0.796,0.316-1.376-0.109-1.07-0.846c0.308-0.738-0.261-0.449-0.448-0.487
+                       c-0.943-0.189-1.871-0.385-2.58-1.142c0.237-0.361,0.692-0.034,0.89-0.225c0.533-0.514,1.55,0.462,1.722-0.417
+                       c0.174-0.891-0.903-1.287-1.481-1.616c-0.717-0.409-1.191-0.521-0.59-1.401c0.128-0.186-0.019-0.824-0.214-0.931
+                       c-1.311-0.715-1.444-2.469-2.867-3.141c0.582-0.353,0.96,0.257,1.391,0.225c0.828-0.059,1.486-0.63,1.546-1.384
+                       c0.051-0.647-0.816-0.585-1.306-0.734c-0.37-0.113-0.926,0.099-1.162-0.108c-0.543-0.477,0.557-0.681,0.361-0.784
+                       c-0.335-0.18-0.063-1.698-1.066-0.563c-0.085,0.096-0.677,0.389-0.798-0.208c-0.073-0.365-0.079-0.7,0.437-0.723
+                       c0.261-0.012,0.603,0.098,0.661-0.47c-0.457-0.232-1.084-0.136-1.521-0.588c-0.414-0.431-0.979-0.714-1.841-1.316
+                       c1.094,0.234,1.794,0.419,2.506,0.525c0.62,0.094,0.955,1.044,1.747,0.567c-0.548-0.69,0.761-0.807,0.427-1.598
+                       c-0.448-1.056-1.361-0.129-1.909-0.648c0.389-0.872,1.304-0.462,1.969-0.842c-1.03-0.923-2.746-0.653-3.391-2.231
+                       c1.418,0.432,2.711,1.031,4.144,1.067c0.606,0.014,1.052,0.486,1.406,0.911c1.307,1.581,2.332,1.433,3.218-0.513
+                       c-0.047-0.032-0.094-0.068-0.145-0.096c-0.662-0.357-1.86,0.662-1.939-0.155c-0.095-0.969,1.296-0.661,2.19-1.05
+                       c-1.138-0.717-1.722-2.22-3.489-1.54c0.255-1.828,2.213-2.035,2.952-3.423c-1.296-0.286-2.175,0.081-2.712,1.461
+                       c-0.567-1.354,0.69-1.807,0.762-2.668c-1.811-0.544-2.229,0.795-2.584,2.225c-0.657-0.37-0.024-2.004-1.415-1.256
+                       c-0.036,0.02-0.384-0.397-0.469-0.65c-0.127-0.382,0.217-0.462,0.491-0.536c0.433-0.113,0.883-0.338,1.301-0.292
+                       c1.398,0.145,1.712-0.457,1.294-1.909c-0.843,1.148-2.084,1.148-3.233,1.785c0.032-1.459,1.398-1.104,1.992-1.857
+                       c-1.46-0.127-2.52,0.5-3.846,1.538c0.566-1.209,0.188-1.795-0.723-1.962c0.324-0.666,1.015-0.456,1.204-1.152
+                       c-0.952,0.649-1.499-0.421-2.321-0.404c-0.14,0.002-0.627,0.276-0.404-0.317c0.446-1.193-0.006-1.189-0.911-0.7
+                       c-0.266,0.143-0.745,0.107-0.917-0.215c-0.229-0.429,0.229-0.401,0.463-0.493c0.35-0.138,0.237-0.458,0.053-0.493
+                       c-0.962-0.179-0.561-1.1-1.238-1.803c0.87,0.112,1.397-0.023,1.835,0.569c0.178,0.238,0.639,0.477,0.887,0.409
+                       c0.542-0.15-0.363-0.702,0.265-1.02c0.873,0.963,1.835,1.949,3.303,1.888c0.529-0.023,0.499,0.102,0.49,0.532
+                       c-0.004,0.273,0.297,0.77,0.497,0.789c1.342,0.123,2.406,1.024,3.699,1.247c0.362,0.063,0.803-0.026,0.875-0.383
+                       c0.141-0.721-0.987-0.441-1.019-1.355c2.684,1.607,6.05,1.107,8.303,3.543c0.406-0.797,0.107-1.423-0.031-2.106
+                       c0.603-0.279,0.48,0.752,1.132,0.514c-0.087-0.549,0.5-1.381-0.058-1.755c-0.403-0.272-1.31-0.102-1.818,0.535
+                       c-0.327,0.41-0.773,0.478-1.198,0.053c-0.437-0.437,0.005-0.662,0.168-1.01c0.24-0.513,0.703-1.336-0.571-1.091
+                       c-0.361,0.068-0.648,0.043-0.493-0.335c0.451-1.101-0.484-0.74-0.877-1.074c-0.747-0.636-1.235-1.581-2.317-1.883
+                       c2.292,0.1,4.42,0.787,6.571,1.353c0.722,0.191,1.025,0.07,0.762-0.692c-0.229-0.666,0.158-1.197,0.391-1.938
+                       c-0.926,0.299-1.253,1.12-2.034,1.59c-0.429-1.133-1.731-1.014-2.547-1.841c-0.855-0.863-0.949-2.165-2-2.826
+                       c0.442-0.73,1.077,0.081,1.529-0.181c0.429-0.248,0.779-0.629,1.168-0.956c0.631,0.316-0.132,1.633,0.382,1.28
+                       c0.966-0.663,2.831,0.136,3.067-1.877c-1.655,1.088-3.517-1.263-5.09,0.706c1.148-1.003,0.764-2.339,1.307-3.645
+                       c-1.148,0.632-2.199,0.117-3.331,0.544c-0.691,0.26-2.425,0.535-2.999-0.502c-0.705-1.271-2.179,0.373-2.603-1.037
+                       c0.32-0.839,1.35-0.862,1.996-1.405c-0.387-0.376-0.709-0.702-1.13-0.513c-0.849,0.387-1.593,0.233-2.304-0.289
+                       c-0.178-0.131-0.728-0.25-0.472-0.378c0.378-0.191,0.179-0.967,0.909-0.746c0.758,0.231,1.57,0.282,2.39,0.419
+                       c-0.466-1.948-0.466-1.948-1.684-1.816c0.095-1.015,1.223-0.901,1.707-1.526c-1.185-0.313-1.185-0.313-3.116,0.819
+                       c0.02-0.859,0.561-1.489,1.009-2.652c-1.07,1.12-2.098,1.067-3.313,1.116c0.555-1.131,1.693-0.873,2.336-1.429
+                       c-0.942-0.572-2.926-1.035-4.525-1.054c0.117-0.587,0.786-0.378,1.119-0.781c-0.671-0.424-1.574-0.287-1.979-0.065
+                       c-0.966,0.535-0.501-0.734-1.132-0.723c-0.316,0.006,0.021-0.467,0.416-0.456c0.017-1.357,1.071-0.407,1.585-0.686
+                       c0.295-0.158,0.936,0.437,0.949-0.44c0.004-0.31,0.416-0.377,0.422-0.254c0.058,1.278,1.939,1.05,1.911,2.419
+                       c-0.016,0.755,0.612,1.01,1.428,1.122c0.032-0.862-1.842-1.977,0.259-2.495c-0.004-0.611-0.775-0.558-0.98-0.993
+                       c0.164-0.117,0.247-0.231,0.328-0.229c1.083,0.015,1.975,0.493,3.302,0.104c1.533-0.448,3.646,0.017,5.266,1.141
+                       c0.79,0.549,1.776,1.332,1.865-0.589c0.019-0.413,0.762-0.362,0.669-0.921c-0.943-0.508-1.342,0.208-1.731,0.993
+                       c-0.342-1.108-2.153-2.006-3.028-1.654c-0.873,0.35-0.873,0.35-2.168-0.279c0.949-0.602,2.198-0.258,2.981-1.083
+                       c-1.017-1.264-1.788-0.219-2.554,0.303c-0.521-0.57,0.658-0.765,0.163-1.165c-0.204-0.167-0.705-0.138-0.981-0.008
+                       c-0.548,0.259-1.157,0.636-1.432-0.138c-0.259-0.73,0.72-0.506,0.997-0.89c0.085-0.117,0.257-0.171,0.586-0.377
+                       c-1.559-0.461-3.094-0.729-3.725-2.389c1.896,0.241,3.946,0.144,4.664,2.702c0.539-0.533,0.231-1.101,0.488-1.58
+                       c0.125,0.045,0.337,0.059,0.376,0.15c0.556,1.275,2.044,1.665,2.688,2.862c0.245,0.456,0.527,0.06,0.833-0.007
+                       c1.372-0.294,2.752-0.637,3.826,0.818c0.253,0.344,0.729,0.289,0.722-0.529c-0.01-1.017,0.648-1.319,1.19-0.592
+                       c0.511,0.684,1.259,1.369,1.769,1.661c1.159,0.667,2.922,1.282,4.019,0.847c2.324-0.922,2.213-1.203,3.577-1.21
+                       c-0.682-0.569-1.226-0.979-1.383-1.86c-0.098-0.555-1.17-0.181-1.869,0.234c0.187-1.16,1.032-1.559,1.581-2.182
+                       c0.256-0.287,0.401-0.624,0.12-0.922c-0.356-0.374-0.581,0.036-0.841,0.229c-1.242,0.912-2.79,0.27-3.1-1.287
+                       c-0.202-1.019-1.038-0.557-1.435-0.441c-0.956,0.28-1.5-0.157-2.169-0.693c-0.856-0.687-0.435-1.095,0.359-1.646
+                       c-1.677-0.276-3.039-0.818-4.058-2.02c1.229-0.136,2.423-0.598,3.387,0.824c0.535,0.788,1.134,0.224,1.132-1.062
+                       c0.917,1.574,1.563,2.686,3.105,2.641c0.333-0.011,0.276,0.432,0.38,0.676c0.144,0.342,0.565,0.447,0.649,0.183
+                       c0.255-0.787,0.566-1.665,0.601-2.392c0.039-0.883-0.322-2.065-1.367-2.573c-0.252-0.123-0.663,0.155-1.108-0.183
+                       c1.017-0.705,1.821-1.565,2.372-2.617c-0.077-0.083-0.109-0.146-0.149-0.151c-2.686-0.367-2.999-0.413-2.691-2.508
+                       c0.198-1.349-0.55-1.595-1.269-2.185c1.278-0.665,2.783,0.437,3.877-0.937c-1.812-0.727-0.361-1.93-0.456-2.994
+                       c0.758,1.249,2.079,1.965,2.722,3.279c0.24,0.491,0.645,1.212,1.472,0.443c0.439-0.405,0.805-0.268,0.749,0.474
+                       c-0.059,0.765,0.752,0.54,1.123,0.829c0.047,0.036,0.391-0.198,0.495-0.369c0.315-0.517-0.204-0.657-0.45-0.944
+                       c-0.626-0.74-1.727-1.412-0.306-2.475c0.351-0.261,0.334-0.759-0.255-1.099c-0.469-0.272-0.753-0.424-1.129,0.062
+                       c-0.23,0.299-0.263,0.801-0.85,0.837c-0.603-0.926,0.89-1.143,0.659-2.043c-0.62-0.113-0.757,0.756-1.3,0.748
+                       c-0.306-0.261,0.363-1.42-1.011-0.782c-1.329,0.619-1.686,0.161-1.501-1.146c0.057-0.392-0.351-0.657-0.429-0.61
+                       c-1.319,0.776-0.495-1.002-1.162-0.962c0.138-0.829,0.941-0.399,1.38-0.697c0.217-0.146,0.737,0.437,0.984-0.191
+                       c-0.816-0.155-0.242-1.635-1.164-1.431c-1.102,0.244-1.616-1.317-2.718-0.689c0.012-0.802-0.253-1.497-0.899-2.125
+                       c0.892,0.365,1.693,0.842,2.451-0.072c0.149-0.179,0.493-0.168,0.61,0.043c0.692,1.246,1.783,1.719,3.141,1.866
+                       c0.197,0.022,0.316,0.762,0.471,1.17c1.586-0.944,2.353,1.289,3.788,0.982c0.319-0.068,0.597,0.34,1.02-0.146
+                       c0.331-0.377,1.117,0.329,0.915,0.871c-0.159,0.428,0.006,0.704,0.336,0.85c0.571,0.251,0.359-0.367,0.539-0.557
+                       c0.525-0.566,1.03-1.15,1.544-1.73c0.365,0.257,0.187,0.493,0.002,0.71c-0.31,0.365-0.671,0.818-0.238,1.2
+                       c0.401,0.354,0.678-0.204,0.971-0.435c0.422-0.329,0.872-0.857,0.983,0.215c0.027,0.257,0.055,0.515,0.282,0.072
+                       c0.531-1.033,1.249-0.11,1.506,0.085c1.098,0.829,1.527,0.731,2.132-0.825c-1.293,0.672-2.094-0.999-3.546-0.378
+                       c0.342-0.701,1.777-1.284,0.029-1.548c-0.837-0.127-1.613-0.662-2.414-1.02c-0.102-0.045-0.181-0.14-0.272-0.212
+                       c-1.523,2.113-2.215-1.108-3.544-0.234c0.131-1.014,0.832-0.575,1.138-0.921c-0.291-0.494-0.854-0.649-1.281-0.528
+                       c-1.599,0.454-1.915-0.324-1.607-1.874c-0.854,0.423-1.574,0.899-1.604-0.522c-0.012-0.498-0.934-0.555-1.516-0.409
+                       c-0.429,0.107-0.785,0.503-1.469,0.294c1.25-0.615,0.747-1.355,0.335-2.14c-0.666-1.268-1.236,0.454-1.905-0.072
+                       c0.597-1.213-0.556-1.435-1.722-2.124c2.224,0.11,3.753,0.731,5.317,1.664c0.457-0.252,0.017-0.889,0.23-1.46
+                       c0.412,0.197,0.988,0.284,1.121,0.576c0.206,0.452-0.257,1.344,0.508,1.383c0.41,0.023,1.096-0.673,1.24-1.17
+                       c0.217-0.741-0.629-0.953-1.13-1.3c-0.055-0.038-0.023-0.2-0.053-0.556c1.257,1.008,3.156,0.639,3.757,2.465
+                       c0.442-0.385,0.998,0.025,1.444-0.2c0.342-0.172,0.488-0.482,0.291-0.869c-0.195-0.387-0.402-0.653-0.935-0.443
+                       c-0.431,0.17-0.896,0.019-1.318-0.199c0.025-0.845,1.354,0.233,1.221-0.859c-0.094-0.795-0.432-1.204-1.275-1.016
+                       c0.092-1.349-0.743-1.205-1.641-1.072c-0.236,0.034-0.352-0.438-0.236-0.532c1.236-1.001-0.125-1.558-0.601-2.559
+                       c1.047,0.451,1.763,1.225,2.708,0.618c0.214-0.138,0.516,0.049,0.459,0.306c-0.336,1.533,1.484,1.208,1.813,2.15
+                       c0.297-0.131,1.009,0.698,0.898-0.445c-0.049-0.508,0.444-0.4,0.758-0.223c0.563,0.314,1.137,0.604,1.797,0.473
+                       c0.456-0.091,1.212,0.329,1.298-0.395c0.074-0.607-0.578-0.749-1.132-0.786c-0.13-0.008-0.251-0.144-0.348-0.202
+                       c0.072-0.783,0.942-0.671,1.191-1.274c-1.088-0.765-2.056,0.88-3.16,0.058c-0.094-0.498,0.792-0.532,0.716-1.171
+                       c-0.975-0.149-1.379,1.675-2.557,0.816c0.021-0.835,1.085-0.242,1.25-0.938c-1.666-0.444-2.635-3.072-5.083-1.241
+                       c0.191-1.281-0.123-2.102-1.279-2.257c0.461-0.861,1.805,0.995,1.896-0.793c0.005-0.119,0.391,0.087,0.519,0.261
+                       c0.854,1.165,2.627,1.196,3.249,2.643c0.477-0.353,1.019,1.084,1.603-0.153c0.291-0.615,1.083-0.24,1.568,0.355
+                       c0.312,0.384,0.709,1.289,1.271,0.725c0.557-0.562,0.882-1.491,1.003-2.303c0.095-0.651-0.623-0.581-1.155-0.613
+                       c-0.996-0.059-1.083-0.967-1.377-2.045c-0.326-1.189-0.777-2.577-2.136-3.317c1.591-0.466,2.903,0.918,4.438,0.233
+                       c0.686-0.305,0.948,1.625,2.052,0.685c0.813,1.169,1.773,1.561,2.996,0.576c0.107,0.241,0.217,0.486,0.346,0.773
+                       c0.55-0.955,0.451-1.976-0.214-2.577c-1.155-1.042-0.795-1.462,0.409-1.862c0.12-0.039,0.179-0.272,0.315-0.49
+                       c-0.505-0.215-1.058,0.589-1.13,0.246c-0.524-2.483-2.319-0.962-3.793-1.062c0.661-0.8,1.682-0.385,2.033-1.225
+                       c-1.27-0.36-2.98,0.31-3.642-1.524c0.253-0.42,1.529,0.748,1.151-0.695c0.582-0.116,0.771,0.522,1.268,0.666
+                       c0.562,0.163,1.074,1.352,1.624,0.507c0.484-0.742-0.9-0.553-1.202-1.165c0.567-0.24,1.109-0.47,1.985-0.84
+                       c-1.231-0.176-2.102,0.597-2.987-0.04c0.518-0.834,1.582-0.024,2.329-0.969c-1.304-0.124-1.862-1.557-3.295-1.316
+                       c-0.162,0.027-0.372-0.218-0.561-0.338c1.493-1.197-0.563-1.468-0.611-2.863c1.123,1.879,3.446,1.471,4.017,3.526
+                       c0.166,0.602,0.865,0.466,1.33,0.65c-0.066-0.871,1.161-0.463,1.289-1.461c0.127-0.977-0.425-0.836-0.81-1.248
+                       c-1.24-1.31-2.811-2.027-4.321-2.99c1.367,0.579,2.794,0.286,4.164,0.506c0.635,0.099,1.056-0.295,1.574-0.459
+                       c0.102-0.032,0.144-0.261,0.212-0.398c-1.452,0.102-0.39-1.208-0.966-1.739c-0.996-0.914,0.259-0.8,0.696-1.031
+                       c-1.199-0.932-1.577-2.563-3.087-3.203c1.331-0.384,2.402,2.516,3.72,0.06c0.763-1.423-1.227-1.227-1.255-2.324
+                       c1.024,0.066,1.394,0.933,1.952,1.465c0.491,0.47,1.049,0.749,1.385,0.142c0.25-0.449,1.076-1.139,0.125-1.741
+                       c-0.231-0.146-0.382-0.255-0.291-0.5c0.399-1.067,0.406-1.064-0.654-1.463c-0.026-0.008-0.015-0.108-0.025-0.189
+                       c0.6-0.721,1.248,0.44,1.987-0.11c-1.142-1.61-2.096-3.33-2.582-5.299c0.501,0.79,1.028,1.563,1.495,2.373
+                       c0.246,0.429,0.554,0.706,1.01,0.875c0.273,0.101,0.542,0.274,0.782,0.005c0.281-0.315-0.193-0.511-0.187-0.676
+                       c0.024-0.777-1.601-1.623,0.196-2.41c0.549-0.241-0.587-0.99-0.665-1.819c2.272,0.961,2.2-0.791,2.45-2.306
+                       c0.661,0.486,0.232,0.953,0.325,1.308c0.136,0.518-1.129,2.106,0.909,1.306c0.156-0.061,0.376-0.014,0.353,0.228
+                       c-0.024,0.256,0.095,0.646-0.329,0.667c-0.605,0.03-0.958,0.308-1.102,0.915c0.35,0.466,1.796-0.232,1.284,1.33
+                       c-0.136,0.42,1.396,0.761,2.116,1.271c0.864,0.611,0.649,0.935,0.505,1.658c-0.058,0.287-0.973,0.281-0.274,0.795
+                       c0.416,0.306,0.86,0.207,1.081-0.031c0.673-0.726,1.351-0.995,2.139-0.277c0.481,0.441,0.39,0.071,0.585-0.231
+                       c0.345-0.534,0.567-1.282,1.587-1.041c0.354,0.082,0.611-0.047,0.9,0.361c0.518,0.731-0.444,0.43-0.474,0.788
+                       c-0.018,0.185-0.261,0.353-0.407,0.526c-0.234,0.278-0.856,0.075-0.818,0.71c0.041,0.683,0.633,0.56,1.007,0.743
+                       c0.289,0.14,0.609,0.216,1.351,0.468c-1.857,0.186-3.044,1.029-4.505,1.335c0.72,0.868,1.945,0.526,2.699,1.208
+                       c0.062,0.055,0.642-0.243,0.654-0.397c0.071-1.069,0.782-0.686,1.377-0.736c0.424-0.036,0.649-0.646,1.316-0.646
+                       c-0.104,0.674-2.096,1.507,0.015,2c-0.155,0.438,0.164,1.123-0.783,1.117c-0.523-0.002-1.321-0.361-1.444,0.914
+                       c-0.086,0.902-1.326-0.426-1.922,0.298c0.161,1.156,1.408,0.627,2.14,1.303c-0.996,0.293-1.828,0.645-2.786,0.556
+                       c-0.533-0.051-0.86,0.284-1.026,0.761c-0.24,0.691,0.398,0.844,0.75,0.92c1.106,0.236,2.238,1.617,3.363,0.032
+                       c0.534,0.568,1.277,0.33,1.888,0.536c0.204,0.068-0.182,0.517-0.575,0.56c-0.351,0.04-0.938-0.213-0.913,0.441
+                       c0.023,0.653,0.662,0.155,0.972,0.387c0.251,0.187,0.616,0.218,1.107,0.374c-1.416,0.856-2.744,1.586-4.209,2.016
+                       c-0.374,0.108-1.06-0.34-0.979,0.443c0.049,0.47,0.65,0.565,1.144,0.555c0.156-0.004,0.315,0.101,1.026,0.348
+                       c-1.527,0.157-2.676,0.096-3.285,1.161c-0.214,0.374-0.779,0.664-0.469,1.178c0.431,0.708,0.732-0.153,1.123-0.174
+                       c2.139-0.11,4.277-0.249,6.448-0.38c-0.071,0.916-1.031,0.289-1.156,0.806c-0.102,0.426-0.161,1.061,0.074,1.319
+                       c0.294,0.324,1.275,0.573,1.326,0.485c0.552-0.952,1.563-0.569,2.264-0.692c0.997-0.174,0.817-1.136,1.46-1.482
+                       c0.302-0.165,0.274-0.723,0.812-0.159c0.851,0.893,2.046,0.786,3.17,0.765c-0.276,1.187-1.089,1.415-2.151,1.298
+                       c-0.323-0.036-0.934,0.058-0.956,0.18c-0.272,1.402-0.94,1.64-2.293,1.23c-0.795-0.242-0.614,1.012-1.102,1.452
+                       c-0.395,0.353,0.049,0.484,0.312,0.713c0.56,0.493,0.658,0.199,1.17-0.168c0.527-0.376,1.614,0.066,1.824-1.107
+                       c0.021-0.119,0.236,0.061,0.334,0.21c0.482,0.725,1.305,0.608,1.645,0.15c0.937-1.257,2.428-0.956,3.613-1.683
+                       c-0.317,1.982-2.247,1.418-3.226,2.304c0.252,0.392,1.006,0.452,0.692,1.16c-0.125,0.282-0.295,0.325-0.527,0.253
+                       c-0.52-0.159-1.295-0.568-1.408,0.178c-0.123,0.81,1.024,0.021,1.313,0.638c-0.079,0.492-0.516,0.354-0.816,0.407
+                       c-0.416,0.072-0.949-0.183-1.036,0.561c-0.03,0.255-0.068,0.447,0.164,0.572c0.482,0.259,0.881-0.029,1.28-0.239
+                       c0.525-0.279,2.16-0.587,3.241-0.613c0.155-0.004,0.352-0.1,0.454-0.219c1.018-1.173,2.478-0.653,3.772-1.124
+                       c-0.79,1.722-2.232,1.759-3.836,1.739c1.1,0.738,0.461,1.854,1.232,2.952c-1.48-0.626-1.529-2.773-3.102-2.117
+                       c-0.4,0.166-0.924,1.292-0.667,2.452c-1.001-0.84-1.724-0.81-2.576-0.142c-0.939,0.733-1.882,1.552-3.139,1.758
+                       c-0.329,0.053-0.856,0.072-0.773,0.462c0.077,0.365,0.421,0.902,1,0.655c0.756-0.321,1.43,0.417,2.196,0.078
+                       c0.408-0.18,0.635,0.183,0.673,0.553c0.032,0.327-0.236,0.481-0.515,0.598c-0.861,0.365-0.863,0.365-1.443,1.465
+                       c-0.102,0.192-0.216,0.168-0.392,0.119c-0.867-0.246-1.491,0.173-1.374,0.987c0.155,1.078,1.08,1.546,2.117,1.601
+                       c0.407,0.023,0.807-0.485,1.446,0.134c-1.525-0.09-1.166,2.017-2.707,1.854c1.719,0.261,3.327-0.349,4.99-0.441
+                       c0.966-0.051,1.631-0.244,2.085,0.875c-0.32,0.293-1.627-0.756-1.189,0.711c0.019,0.066-0.321,0.321-0.338,0.306
+                       c-1.123-0.95-2.456,0.382-3.589-0.336c-0.458-0.289-1.008-0.576-1.356,0.013c-0.387,0.657,0.363,0.746,0.706,0.905
+                       c1.014,0.474-0.756,0.462-0.125,1.006c0.958,0.828,3.787,0.978,4.867,0.068c0.221-0.187,0.408-0.119,0.587-0.026
+                       c0.263,0.132,0.728,0.332,0.775,0.136c0.503-2.09,2.425-0.318,3.395-1.275c0.317-0.313,0.967-0.241,0.829-0.991
+                       c-0.221-1.206,1.066-0.809,1.125-0.696c0.671,1.3,1.865,0.585,2.877,0.706c-0.484,0.893-0.957,1.523-1.997,1.261
+                       c-1.054-0.265-0.047,0.872-0.863,1.23c-1.522,0.668-2.896,1.612-4.833,1.461c0.389,0.63,1.368,0.935,0.849,1.593
+                       c-0.386,0.491-0.851-0.098-1.303-0.338c-0.78-0.419-1.6,0.104-1.943,0.668c-0.943,1.558-2.789,1.456-4.006,2.451
+                       c-1.032,0.845-2.162,0.938-3.37,0.432c-0.102-0.043-0.306-0.1-0.318-0.079c-0.967,1.944-2.685,0.656-4.386,0.912
+                       c1.234,0.605,2.173,1.066,3.116,1.528c-0.969,1.378-2.442,0.084-3.502,0.836c1.183,2.074,3.659,1.007,5.375,2.085
+                       c-0.635,0.473-1.162,0.866-1.878,1.398c1.321-0.032,2.315-0.709,3.542-0.409c0.825,0.203,1.283-1.029,1.774-1.675
+                       c0.512-0.675-0.758-0.681-0.786-1.425c0.79-0.626,1.852,0.303,2.676-0.27c0.796-0.553,1.614-1.05,2.58-1.105
+                       c0.238-0.935-1.047-0.936-0.899-1.895c1.343,0.385,2.959,1.941,3.832-0.629c0.694,0.577,0.046,1.025,0.112,1.597
+                       c1.007-0.468,1.803,0.665,2.867,0.356c-0.454,0.381-0.909,0.764-1.353,1.136c1.924,1.065,2.298,0.888,2.778-1.455
+                       c0.537,0.617,1.153,1.932,1.552,0.011c0.055-0.258,0.297-0.3,0.546-0.179c1.189,0.579,2.064,0.42,3.037-0.666
+                       c0.552-0.616,1.792-0.61,2.984-0.962c-0.364,0.776-1.578,1.039-0.608,2.005c-1.633-0.382-1.633-0.382-3.414,0.574
+                       c0.235,0.341,0.594,0.191,0.883,0.234c0.28,0.043,0.581-0.006,0.941,0.491c-0.831-0.031-1.34,0.736-2.183,0.337
+                       c-0.362-0.171-0.612-0.119-0.256,0.288c0.557,0.643-0.537,0.614-0.39,1.065c-1.261-0.342-1.754,1.401-3.256,1.063
+                       c-0.805-0.181-2.308,0.593-2.34,2.207c-0.03,1.542-0.891,0.904-1.516,0.44c-0.97-0.719-0.939-0.753-1.198,0.394
+                       c-0.099,0.439-0.618,0.845-0.809,0.681c-1.327-1.143-1.739,0.281-2.47,0.801c0.996,0.785,1.85,1.85,3.462,1.589
+                       c-0.559,1.197-1.886,1.837-1.657,3.238c-1-0.253-1.722,0.836-2.592,0.643c-0.544-0.122-0.854-0.194-0.667,0.348
+                       c0.488,1.416-0.451,1.817-1.413,2.116c-0.66,0.204-0.944,0.812-1.526,1.059c1.21,1.21,1.83-0.548,2.841-0.567
+                       c0.665-0.014,1.096-0.314,1.417,0.56c0.206,0.561,0.762,1.185,1.391,1.164c0.966-0.031,0.231-0.979,0.505-1.313
+                       c0.278-0.336,0.467-0.93,1.09-0.914c1.31,0.035,1.513-0.263,1.052-1.545c0.598-0.259,0.931,0.69,1.532,0.367
+                       c0.284-0.68-0.555-0.616-0.682-1.019c0.811-0.573,1.701-0.109,2.544-0.255c0.935-0.16-0.072,0.928,0.355,1.323
+                       c3.134-1.788,6.337-3.456,10.066-3.985c-0.98,1.884-2.699,2.729-4.211,3.918c-2.024,1.591-3.968,1.451-6.216,1.185
+                       c-0.221,0.847,0.915,0.938,0.915,1.659c-0.996-0.117-2.013-0.089-2.977-0.731c0.851,1.038,1.561,1.926,1.573,3.329
+                       c0.005,0.801,0.621,1.891-0.089,2.331c-0.716,0.446-2.002,1.173-2.759-0.618c0.604,0.592,0.364,1.108,0.364,1.576
+                       c-0.002,0.316-0.141,0.575-0.451,0.647c-0.409,0.093-0.373-0.327-0.537-0.528c-0.34-0.409-0.342-1.247-1.098-1.073
+                       c-0.136,0.032-0.584,0.6-0.732,1.099c-0.293,0.992,0.69,0.706,0.894,1.069c1.234,2.213,3.298,0.846,4.944,1.227
+                       c0.101,0.022,0.222-0.036,0.331-0.057c-0.771-2.212,1.801-0.034,1.697-1.401c0.029-0.586-1.012-0.299-0.975-0.991
+                       c0.416-0.711,2.979,1.688,1.582-1.466c0.998,0.304,1.818,0.581,2.61-0.146c-0.128,0.257-0.259,0.515-0.389,0.774
+                       c1.255,0.327,2.308-0.551,3.506-0.598c0.429-0.017,0.506-0.329,0.393-0.755c-0.083-0.322,0.31-0.655,0.484-0.476
+                       c1.47,1.513,1.593-0.37,2.298-0.904c0.769,0.541,1,1.537,0.894,2.186c-0.128,0.804-1.181,0.683-1.935,0.706
+                       c-0.363,0.011-1.155-0.218-0.537,0.655c0.049,0.07,0.042,0.181,0.06,0.274c-0.219-0.026-0.474,0.013-0.648-0.087
+                       c-0.646-0.375-1.083-0.129-1.548,0.479c0.702,0.06,1.312,0.112,2.166,0.186c-0.594,0.652-0.544,1.776-1.856,1.017
+                       c-0.412-0.238-0.811,0.742-1.523,0.645c0.567,0.816,1.115,1.248,2.102,0.767c0.536-0.261,1.528-0.398,1.634,0.251
+                       c0.101,0.625,0.295,1.76-0.984,2.011c-0.516,0.102-1.666-0.566-1.376,1.055c0.124,0.697-0.35,0.781,0.945,2.01
+                       c-2.49-0.658-2.705,2.86-5.054,2.351c-0.134,0.555,1.196,1.061,0.323,1.436c-0.599,0.259-0.896,1.743-1.969,0.716
+                       c-0.199-0.188-0.541-0.325-0.685,0.107c-0.138,0.416,0.048,0.678,0.475,0.717c0.694,0.065,1.285,0.354,2.173,0.845
+                       c-2.175,0.314-4.067,1.97-5.825-0.489c-0.38,0.496,0,1.961-1.364,1.097c-0.312-0.196-1.304-1.063-1.641,0.21
+                       c-0.27,1.028-0.123,1.924,1.025,2.388c0.378,0.151,0.811-0.226,1.162,0.193c-0.274,0.719-1.856,0.361-1.446,1.71
+                       c0.051,0.171-0.425,0.282-0.722,0.11c-0.525-0.302-1.06-0.246-1.606-0.036c0.096,0.727,0.858,0.973,0.892,1.907
+                       c0.028,0.786,1.578,0.599,2.404,0.244c1.147-0.496,2.243-0.464,3.417-0.228c0.476,0.094,1.094,0.068,1.499-0.161
+                       c2.275-1.291,4.67-2.168,7.257-2.587c1.562-0.253,0.193-0.922,0.078-1.652c2.529,0.333,5.022,0.576,7.624-0.2
+                       c-1.206,1.899-2.72,2.792-4.596,3.313c-0.312,0.087-1.102,0.842-1.437,1.344c-0.493,0.738,0.496,1.203,1.006,1.46
+                       c0.686,0.341,1.75,1.95,2.194-0.29c0.178-0.898,1.463,0.346,1.603-0.759c0.665,0.089,0.257,0.459,0.193,0.739
+                       c1.404,0.149,0.51,1.655,1.281,2.197c0.134,0.093,0.053,0.348-0.149,0.407c-1.492,0.423-1.854,2.473-3.61,2.509
+                       c-0.235,0.006-0.395-0.043-0.288,0.338c0.369,1.292-0.667,1.341-1.629,1.497c0.713,0.809,2.289,0.146,2.304,1.692
+                       c0,0.161,0.888-0.058,0.966-0.331c0.393-1.381,1.202-1.027,1.984-0.464c0.412-0.707-0.436-0.596-0.419-0.989
+                       c0.113-0.053,0.244-0.164,0.3-0.136c1.257,0.66,2.238,0.397,3.094-0.755c0.32-0.43,2.134-0.772,3.007-1.035
+                       c0.873-0.264,1.422-1.448,2.486-1.169c0.808,0.211,1.496,0.058,2.198-0.29c0.249,0.705-0.148,0.807-0.566,0.885
+                       c-0.324,0.06-0.89,0.156-0.508,0.55c0.707,0.727-0.009,0.682-0.344,0.804c-0.314,0.116-0.962,0.155-0.96,0.174
+                       c0.17,1.611-1.227,2.026-2.173,2.523c-0.792,0.417-1.966,0.517-2.83,0.267c-0.999-0.288-1.58,0.101-2.283,0.547
+                       c-0.2,0.126-0.27,0.147-0.236,0.458c0.217,1.974-0.711,2.852-2.663,2.498c-1.06-0.191-1.54,0.759-2.075,1.21
+                       c-0.486,0.409,0.502,0.868,1.054,1.172c0.39,0.215,1.161,0.415,0.775,1.092c-0.291,0.513-0.701-0.053-1.003-0.206
+                       c-0.526-0.267-1.312,0.189-1.631-0.602c-0.225,0.66-0.622,1.317-0.626,1.978c-0.006,0.575,0.673,0.519,1.119,0.385
+                       c1.761-0.52,3.517-1.065,5.267-1.621c0.14-0.044,0.274-0.36,0.344-0.339c2.457,0.78,4.221-1.148,6.352-1.605
+                       c0.76-0.162,1.624,0.331,2.301-0.611c-0.048,1.305-1.802,1.508-1.269,2.896c0.087,0.226-0.455,0.209-0.725,0.242
+                       c-1.89,0.217-2.111,0.556-1.471,2.34c-0.818,0.265-1.767-1.387-2.379-0.02c-0.444,0.989,1.245,0.543,1.323,1.461
+                       c-0.822,0.032-1.658-0.43-2.467,0.029c-0.234,0.132-0.767-0.135-0.608,0.499c0.117,0.464,0.317,0.729,0.846,0.542
+                       c0.365-0.128,0.864-0.684,1.029,0.151c0.119,0.607-0.258,0.842-0.87,1.02c-1.049,0.304-2.105,0.615-2.616,1.871
+                       c-0.306,0.757-1.753,0.657-1.971,0.546c-1.393-0.713-1.417,1.209-2.387,1.079c0.102,0.449,0.159,1.432,0.471,1.185
+                       c1.156-0.906,1.413,0.358,2.084,0.553c0.437,0.129,1.182-0.272,1.688-0.534c0.841-0.431,1.883,0.119,2.588-0.662
+                       c0.289,0.5,1.457-0.062,1.253,1.003c-0.186,0.976-2.153,2.471-3.208,2.399c-0.325-0.02-0.699-0.365-0.71,0.223
+                       c-0.025,1.281-1.149,1.151-2.291,1.562c2.873,0.9,5.133-1.435,7.683-0.478c0.266-0.544-0.733-0.619-0.569-1.148
+                       c0.225-0.344,0.455-0.181,0.722-0.038c0.82,0.443,1.516,0.888,1.998-0.547c0.234-0.695,1.567-0.007,2.215-0.8
+                       c-0.737,0.531,1.4,1.612-0.488,1.914c-0.346,0.055,0.518,0.498,0.41,0.976c-0.544,0.375-1.208-0.009-1.841,0.233
+                       c0.119,0.815,0.883,0.942,1.467,1.234c-0.353,0.712-0.943,1.003-1.557,1.076c-0.492,0.059-1.204-0.543-1.382,0.318
+                       c-0.145,0.706,0.949,0.206,1.138,0.969c-1.438-0.044-2.072,1.461-3.427,1.58c0.093,0.513,1.331,0.278,0.652,1.073
+                       c-0.519,0.609-1.468,1.107-2.099,0.811c-1.412-0.66-1.768-0.124-1.93,1.134c-0.049,0.387-0.187,0.941-0.834,0.409
+                       c-0.567-0.468-1.234-0.54-2.143-0.089c1.875,0.517,1.108,2.276,1.815,3.376c0.258,0.401,0.153,0.98,0.867,0.938
+                       c0.546-0.03,1.227,0.183,1.194-0.772c-0.024-0.676,0.562-0.502,0.908-0.713c0.869-0.535,1.933-0.521,2.716-1.29
+                       c-0.49,0.865-1.495,1.375-0.717,2.581c0.259,0.402-0.368,0.083-0.557,0.182c-0.577,0.298-1.2,0.314-2.076,0.293
+                       c0.787,1.427,2.359,0.069,3.076,1.156c-0.772,0.541-1.658,0.17-2.459,0.327c-0.195,0.038-0.512-0.061-0.448,0.294
+                       c0.037,0.206,0.238,0.555,0.451,0.384c0.749-0.597,1.374,0.451,2.189-0.234c-0.102,1.144-1.748,1.353-0.848,2.616
+                       c-1.601-1.342-2.059,1.723-3.667,0.391c0.667,2.043-0.654,3.267-3.368,3.501c0.383,0.976,1.264,1.261,2.049,1.626
+                       c0.368,0.172,0.865,0.231,0.703,0.768c-0.151,0.502-0.692,0.396-1.042,0.325c-1.134-0.221-2.099-0.961-3.379-0.853
+                       c-0.552,0.047-0.55,0.094-0.425,0.462c0.132,0.388,1.383,1.093-0.301,0.864c-0.109-0.014-0.141,0.392,0.116,0.525
+                       c0.389,0.204,0.786,0.396,1.064,0.536c0.24,0.965-1.367-0.374-0.794,0.885c0.276,0.606,0.574,1.174,1.372,0.983
+                       c0.387-0.091,0.514-0.738,1.157-0.406c0.78,0.404,0.941-0.681,1.534-0.823c0.932-0.223-0.279,1.368,0.84,0.991
+                       c0.262-0.089,0.593-0.064,0.801-0.217c1.051-0.772,2.27-1.173,3.474-1.605c0.017-0.738-0.892-0.394-1.044-0.861
+                       c0.439-0.658,2.251,0.82,1.666-1.209c-0.108-0.371,0.234-0.233,0.432-0.155c0.233,0.092,0.399,0.583,0.685,0.274
+                       c1.689-1.828,1.731,0.654,2.545,1.034c0.35,0.163-0.351,0.474-0.621,0.827c2.335,0.495,4.56,0.717,6.603-0.796
+                       c0.183-0.134,0.563-0.335,0.592-0.299c1.512,1.929,1.489-0.426,2.171-0.774c0.25-0.127,0.635-0.437,0.728-0.365
+                       c0.928,0.729,2.654-0.09,3.115,1.658c-0.486,0.153-0.949,0.3-1.441,0.456c0.441,0.415,0.804,0.757,1.426,1.342
+                       c-1.732-0.212-2.86,0.231-3.228,1.805c-0.072,0.303-0.439,0.618-0.606,0.463c-1.02-0.952-1.417,1.287-2.367,0.426
+                       c-0.135,1.665-1.142,0.334-1.756,0.511c-0.352,1.028,1.043,0.89,1.139,1.87c-1.028-1.16-0.835,1.168-1.789,0.395
+                       c-0.137,1.189,1.491,1.614,1.154,2.996c-0.291,1.199-0.459,2.226-2.009,2.052c0,0.123-0.045,0.268,0.008,0.331
+                       c0.391,0.472,1.614,0.017,1.429,0.804c-0.208,0.891-1.051-0.181-1.628,0.062c-0.34,0.144-0.973-0.224-1.068,0.241
+                       c-0.158,0.777,0.095,1.582,0.439,2.297c0.238,0.496,0.667,0.255,1.032,0.083c0.259-0.122,0.55-0.383,0.779-0.334
+                       c2.317,0.475,2.36-0.89,1.931-2.635c1.97,1.213,3.875,1.628,5.98,1.039c0.473-0.132,0.716-0.253,0.735-0.736
+                       c0.012-0.312,0.18-0.697,0.469-0.581c1.839,0.736,2.512-1.65,4.322-1.32c-1.65,0.258-0.944,2.249-2.343,2.753
+                       c-0.354,0.126-0.044,0.506,0.079,0.728c0.18,0.325,0.382,0.647-0.117,0.827c-1.939,0.695-3.648,2.634-6.01,1.145
+                       c-0.112-0.072-0.331,0.026-0.637,0.06c0.323,0.713,0.913,0.999,1.484,1.306c0.584,0.314,1.169,0.629,1.712,1.206
+                       c-2.007-1.308-3.905,0.722-6.069-0.266c0.543,1.023,1.548,1.084,1.851,1.826c-2.125,1.498-3.161-1.43-4.994-1.331
+                       c-0.085,0.863,1.38,0.498,1.015,1.555c-0.095,0.275,1.44,0.023,0.824,0.944c-0.501,0.75-0.856-0.529-1.597-0.323
+                       c0.499,0.755,0.575,1.666,1.329,2.326c-0.743,0.527-1.168-0.11-1.675-0.183c-0.845-0.121-1.661-0.572-2.493,0.278
+                       c-0.474,0.485-0.998,0.666-0.221,1.287c0.626,0.5,0.851,0.885-0.023,1.559c-0.391,0.301-1.136,1.074-0.639,2.048
+                       c0.339,0.664-0.718,0.551-0.699,0.583c0.65,1.096,0.059,1.38-0.897,1.452c0.124,1.516-0.839-0.083-1.261,0.401
+                       c-0.216,0.243-1.238-1.029-1.686-0.118c-0.442,0.908,0.484,1.371,1.521,1.747c-0.663,0.291-1.09,0.481-1.461,0.643
+                       c-0.16,0.312,0.053,0.419,0.184,0.432c1.255,0.132,2.617,0.516,3.139-1.249c0.059-0.197,0.282-0.346,0.427-0.517
+                       c1.047,1.306,1.79-0.366,2.718-0.34c0.165,0.731-0.694,0.706-0.775,1.206c0.212,0.287,0.713,0.024,0.879,0.513
+                       c-0.123,0.07-0.253,0.204-0.389,0.209c-0.528,0.026-1.091-0.351-1.546,0.305c-0.223,0.319-0.157,0.702,0.045,0.642
+                       c1.421-0.428,2.971,0.972,4.317-0.335c0.584-0.57,1.311-0.626,2.073-0.398c0.291,0.918-2.134,1.558-0.157,2.653
+                       c-0.695,0.112-1.183,0.466-1.89,0.119c-1.219-0.598-0.125,1.229-1.009,1.086c-0.66-0.104-1.315-0.247-1.971-0.374
+                       c0.733,1.298-0.715,0.775-1.023,1.215c-0.697,1.001,0.645,1.116,0.785,1.737c-0.868,0.457-1.671,0.848-2.59-0.418
+                       c-0.007,1.076,1.55,1.874,0.348,2.206c-1.041,0.284-1.956,2.444-3.402,0.536c-0.353-0.465-1.062-1.004-1.032,0.371
+                       c0.015,0.664-0.707-0.231-0.943,0.382c0.085,0.112,0.286,0.261,0.335,0.451c0.204,0.767,1.51,0.831,1.307,1.629
+                       c-0.251,1.003-1.226-0.122-1.754,0.31c-0.192,0.159-0.789,0.226-0.557,0.428c0.603,0.529-0.285,1.339,0.387,1.683
+                       c0.592,0.302,1.288,0.642,1.913,0.6c2.844-0.184,5.645-0.893,8.543-0.522c0.669,0.084,1.412-0.391,2.115-0.62
+                       c1.501-0.486,2.876-1.323,4.61-1.05c0.908,0.144,2.077-0.44,2.506-1.122c1.018-1.616,2.579-1.85,4.144-2.28
+                       c1.427-0.392,1.418-0.428,0.586-1.769c1.395,1.321,2.336-0.515,3.582-0.383c0.213,0.023,0.784-0.492,0.795-0.204
+                       c0.019,0.502,0.566,0.937,0.299,1.315c-0.274,0.389-0.31,0.583,0.078,0.793c0.457,0.252,1.209,0.25,0.89,1.111
+                       c-0.305,0.821-1.072,0.149-1.741,0.641c-0.124,0.186,1.217,1.077-0.051,1.026c-1.652-0.064-3.181,0.492-4.834,0.783
+                       c1.871,0.44,3.738,0.893,5.615,1.308c0.495,0.11,1.379-0.513,1.309,0.583c-0.06,0.965-0.884,1.013-1.655,0.948
+                       c-1.444-0.12-2.901,0.033-4.387-0.113c0.431,0.249,0.87,0.491,1.293,0.755c0.879,0.553,0.922,0.591,0.344,1.488
+                       c-0.288,0.445,0.984,0.656,0.089,1.018c-0.635,0.255-0.662-0.72-1.01-0.685c-1.91,0.188-3.139-2.4-5.365-1.263
+                       c1.192,1.172,2.379,2.284,2.319,4.172c-0.463-0.117-0.972-0.399-1.142-0.261c-1.188,0.967-2.264,1.31-3.4-0.092
+                       c-0.253-0.314-0.416,0.177-0.601,0.361c-0.389,0.385-0.242,0.825,0.032,1.069c0.786,0.702,1.435,1.754,2.716,1.527
+                       c1.096-0.195,1.658,0.628,2.399,1.12c0.183,0.122,0.43,0.251,0.204,0.526c-0.186,0.223-0.473,0.494-0.72,0.255
+                       c-0.698-0.674-1.783-0.332-2.382-1.118c-0.353,0.532,0.425,0.74,0.089,1.235c-1.425-0.912-3.311-0.356-4.661-1.666
+                       c-0.846,4.365,2.486,5.103,5.187,6.469c-0.902-0.201-1.514,0.249-2.236,0.621c-0.91,0.469-1.989,0.405-2.762-0.518
+                       c-0.332-0.396-0.735-1.042-1.189-0.485c-0.381,0.472,0.342,0.903,0.72,1.16c0.46,0.312,1.049,0.427,1.573,0.649
+                       c0.601,0.255,1.276,0.625,0.807,1.356c-0.242,0.375-0.703,1.251-1.521,0.5c-0.188-0.174-0.537-0.155-0.775-0.291
+                       c-0.39-0.222-0.817-0.705-1.174-0.148c-0.31,0.483,0.066,1.069,0.419,1.376c1.618,1.408,2.717,1.476,4.629,0.321
+                       c0.41-0.247,0.62,0.051,0.928,0.095c2.102,0.296,4.115,0.502,6.218-0.483c1.438-0.672,3.221-0.657,4.861-0.823
+                       c1.607-0.163,0.732,1.671,1.673,2.331c0.554,0.391-0.841,0.708-1.264,0.793c-1.297,0.259-1.373,1.015-1.098,2.076
+                       c-0.749-0.058-1.033-1.06-1.911-0.73c0.262,0.506,0.073,1.037,0.674,1.622c0.685,0.672-0.357,1.298-1.007,1.514
+                       c-1.213,0.404-2.459,0.136-3.578-0.404c-0.657-0.317-1.236-0.329-1.735,0.068c-0.731,0.581,0.373,0.837,0.325,1.149
+                       c-0.174,1.146,0.503,1.64,1.299,2.153c0.194,0.127,0.472,0.415,0.242,0.733c-0.199,0.272-0.497,0.141-0.783,0.141
+                       c-1.493-0.002-2.443-1.165-3.693-1.685c-1.349-0.565-1.326-0.621-1.429,0.866c-0.727-0.492-0.852-1.334-1.428-2.233
+                       c-0.184,1.858,0.659,2.993,2.061,4.216c-1.408-0.099-2.19-0.548-2.744-1.431c-0.518,0.655,0.301,1.15-0.268,1.667
+                       c-0.671-0.511-0.832-1.38-1.344-2.061c-0.516,0.775-1.053,1.182-1.38-0.097c-0.177-0.696-0.433-1.159-1.287-1.029
+                       c-0.505,0.078-0.678-0.261-0.618-0.768c0.138-1.172-1.262-0.919-1.582-1.678c-0.988,0.439-1.44,1.153-1.073,2.182
+                       c-0.261,0.192-0.38,0.119-0.512-0.016c-0.413-0.416-0.395-1.304-1.278-1.196c-0.247,0.03-0.429,0.229-0.386,0.489
+                       c0.121,0.696,0.687,1.036,1.212,1.378c0.28,0.179,0.669,0.19,0.811,0.571c-0.042,0.099-0.061,0.252-0.134,0.284
+                       c-2.276,1.006-2.682,1.073-2.839,0.335c-0.293-1.361-2.111-1.132-2.355-2.561c0.894,0.027,1.164,1.197,2.09,1.067
+                       c0.312-1.657-1.262-1.911-2.054-2.642c-0.333-0.308-0.554,0.501-0.575,0.952c-0.019,0.476,0.286,1.105-0.478,1.244
+                       c-0.745,0.134-0.955-0.479-1.185-1.007c-0.227-0.518-0.476-1.031-0.654-1.568c-0.155-0.468-0.48-0.714-0.904-0.616
+                       c-0.521,0.121-0.392,0.539-0.323,0.975c0.116,0.736,1.287,1.691,0.388,2.065c-0.794,0.329-0.626-1.206-1.066-1.701
+                       c-0.452-0.507-1.351-0.95-1.998-0.88c-1.455,0.157-2.731-0.276-4.063-0.714c1.015,1.199,1.818,2.67,3.802,2.134
+                       c0.412-0.112,0.819,0.131,0.849,0.79c0.036,0.84,0.125,0.837,1.022,0.373c-0.576,1.72-1.026,1.71-3.917-0.084
+                       c-0.042,0.88-0.038,0.875,0.67,1.498c0.278,0.246,0.821,0.454,0.456,0.932c-0.223,0.291-0.165,0.778-0.699,0.89
+                       c-1.081,0.224-2.229-0.208-3.272,0.35c-0.03,0.016-0.219-0.216-0.299-0.354c-1.032-1.79-1.343-1.86-2.644-0.587
+                       c-0.82-0.547,0.951-1.065,0.095-1.395c-0.817-0.316-0.514,0.835-0.964,1.158c-0.195,0.141-0.843-0.032-0.556,0.586
+                       c0.118,0.256,0.295,0.559-0.094,0.682c-0.121,0.04-0.327-0.302-0.524-0.352c-0.51-0.124-1.039-0.183-1.534-0.262
+                       c-0.26-0.645,1.103-0.606,0.508-1.21c-0.418-0.42-1.142-0.791-1.724-0.575c-0.729,0.268-0.038,1.11-0.359,1.807
+                       c-0.272-0.388-0.487-0.639-0.635-0.924c-0.115-0.225,0.132-0.587-0.281-0.734c-0.35,0.006-0.477,0.274-0.471,0.571
+                       c0.025,1.109-0.966,0.858-1.505,1.021c-0.704,0.215-0.481-0.557-0.695-0.9c-0.614-0.981-1.737-1.627-2.867-1.574
+                       c-0.851,0.038-0.537,1.039-0.182,1.403c0.961,0.98,1.635,2.033,2.085,3.362c0.246,0.729,1.265,0.978,2.232,0.653
+                       c0.752-0.251,1.527-0.351,2.393-0.351c1.773-0.004,0.969,2.17,2.326,2.24c-0.262,0.587-0.75,1.251-1.324,0.95
+                       c-1.359-0.71-2.765,0.173-4.217-0.5c-1.595-0.74-2.892,0.527-2.843,2.415c-0.862-0.591-1.478-1.487-2.67-1.327
+                       c-0.456,0.062-0.856-0.606-0.393-0.997c1.028-0.87,0.043-1.276-0.214-1.965c-0.642-1.716-2.686-1.671-3.551-3.051
+                       c-0.046-0.072-0.768,0.087-0.805,0.235c-0.358,1.395-1.03,0.255-1.552,0.227c0.072-0.893-1.811-1.231-0.771-2.273
+                       c0.489-0.492,0.038-0.515-0.08-0.682c-0.151-0.215-0.272-0.349-0.638-0.053c-1.393,1.129-3.037,0.784-4.007-0.702
+                       c-0.469-0.719-0.342-1.101,0.467-1.427c0.342-0.137,0.886-0.434,0.718-0.995c-0.068-0.232-0.376-0.5-0.62-0.557
+                       c-0.726-0.164-0.535,0.656-0.798,0.958c-0.398-0.877-0.771-1.69-1.141-2.506c-0.157,1.035-0.762,1.614-1.644,1.961
+                       c-1.229,0.483-0.615,1.599-0.634,2.328c-0.268,10.333-0.434,20.668-0.621,31.006c-0.004,0.172,0.051,0.344,0.077,0.517H388.418z"
+                       />
+       </g>
+       <g>
+               <path fill="#2A3524" d="M482.786,362.408c0.323-1.815-1.06-2.805-1.609-4.11c-0.376-0.901-1.005,0.632-1.876,0.283
+                       c-1.07-0.43-2.023,0.846-1.771,2.101c0.1,0.502,0.345,0.825,0.856,0.892c0.561,0.073,0.752-0.337,0.988-0.744
+                       c0.265-0.459-0.485-1.739,0.792-1.306c0.9,0.305-0.145,1.019-0.104,1.568c0.01,0.123-0.039,0.25-0.081,0.502
+                       C481.049,361.23,481.691,362.241,482.786,362.408 M496.551,463.905c0.827,0.529,2.398-0.05,2.269,1.889
+                       c-0.047,0.71,1.097,0.47,1.772,0.157c0.425-0.196,1.207-0.094,0.894-0.872c-0.601-1.487-0.42-3.225-1.52-4.557
+                       c-0.282-0.338-0.384-0.827-0.945-0.81c-0.302,0.01-0.686-0.099-0.824,0.295c-0.176,0.503,0.189,0.804,0.465,1.176
+                       c0.775,1.04,0.283,2.269-0.926,2.361C497.307,463.575,496.842,463.385,496.551,463.905 M522.727,523.562
+                       c-2.26-0.409-4.283-0.891-6.364-0.723c1.34,1.728,3.289,0.812,4.892,1.325c1.081,0.346,2.285,0.31,3.436,0.434
+                       c2.116,0.227,0.533-1.782,1.391-2.314c0.108-0.066,0.297-0.075,0.34-0.165c0.1-0.211,0.253-0.521,0.17-0.667
+                       c-0.087-0.155-0.442-0.258-0.654-0.226c-1.364,0.216-2.545,0.64-2.12,2.447c-0.63-0.098-0.418-0.5-0.52-0.752
+                       c-0.393-0.964-1.136-0.972-2.02-0.919C521.485,522.874,522.342,522.413,522.727,523.562 M498.586,332.75
+                       c0.038,1.211,1.898,3.175,2.684,2.892c1.873-0.672,3.721-1.418,5.57-2.163c0.805-0.326-0.166-1.304,0.561-1.69
+                       c-0.469-0.117-0.767,0.032-1.166,0.37c-0.525,0.446-1.291,0.785-1.86-0.112c-0.321-0.509-1.049,0.205-1.338-0.433
+                       c-0.374,0.37,0.183,0.613,0.125,0.963c-0.157,0.93-0.556,1.843-1.399,2.138c-0.758,0.267-0.718-0.649-0.799-1.154
+                       c-0.066-0.41-0.437-0.361-0.522-0.28C499.586,334.086,499.308,332.884,498.586,332.75 M437.025,438.983
+                       c-0.788,0.03-0.93,1.376-1.259,0.715c-0.869-1.739-1.599,0.042-2.368-0.037c-0.587-0.061-0.625,0.885-0.455,1.449
+                       c0.16,0.527,0.433,1.15,1.164,0.948c0.82-0.225,1.737,0.135,2.487-0.458c0.571-0.451,0.93-0.202,1.182,0.458
+                       c-0.679,0.185-1.348,0.367-2.106,0.573c1.387,1.123,2.555-0.524,3.81-0.152c-0.041-0.693,0.565-1.305,0.337-1.997
+                       c-0.724-0.314-0.929,1.155-1.56,0.424C437.749,440.314,436.755,439.982,437.025,438.983 M496.207,400.071
+                       c-2.316-0.706-2.236-3.482-4.143-4.408c-0.666-0.323-0.921-0.609-1.142-1.231c-0.279-0.777-1.083-1.326-1.742-0.929
+                       c-0.764,0.463-1.203,1.378-0.282,2.272c0.174,0.168,0.291,0.638,0.374,0.622c1.847-0.33,2.123,1.584,3.194,2.332
+                       C493.591,399.514,494.935,399.484,496.207,400.071 M460.705,398.659c-0.843-0.244-0.758-1.943-1.856-1.48
+                       c-2.215,0.936-4.334,2.106-6.475,3.211c-0.573,0.295-0.427,0.759-0.282,1.327c0.231,0.889,0.913,0.284,1.329,0.545
+                       c0.605,0.383,0.95-0.348,0.905-0.615c-0.302-1.762,0.981-1.173,1.643-1.024c0.608,0.137,1.13,0.384,1.687,0.123
+                       c0.189-0.658-1.353-1.178-0.5-1.185C458.439,399.55,459.344,398.394,460.705,398.659 M461.797,528.167
+                       c-0.644-0.259-1.07-0.306-1.294-0.545c-0.618-0.656-1.181-0.792-1.662,0.06c-0.361,0.64-1.234,1.249-0.107,2.084
+                       c0.928,0.689,0.565,1.088-0.464,1.249c-1.321,0.206-2.058,15.444-1.428,16.932c0.191,0.452,0.315-0.363-0.208,0
+                       c-0.303,0.21-0.826-0.496-0.306,0c0.393,0.375,0.837,0.447,1.345,0c0.628-0.551,1.225,0.899,0.906,0
+                       c-0.231-0.651-0.01-15.344,0.493-15.597c0.705-0.357,0.813-0.982,1.036-1.669C460.403,529.776,460.463,528.668,461.797,528.167
+                        M465.842,494.803c0.079,1.454,1.431,1.807,1.858,2.748c0.399,0.882,1.039,0.627,1.614,0.55c0.737-0.099,0.741-0.72,0.792-1.336
+                       c0.092-1.136-0.463-2.243-0.106-3.377c0.246-0.786-0.142-1.106-0.809-1.474c-1.049-0.575-1.553,0.214-2.121,0.706
+                       c-0.636,0.553-0.066,0.997,0.326,1.431c0.321,0.358,0.867,0.617,0.672,1.376C467.342,495.35,466.613,495.35,465.842,494.803
+                        M494.224,456.094c1.888-0.236,3.759-0.224,5.942,0.191c-0.663-1.074,0.153-2.944-2.047-2.177c-0.17,0.061-0.61-0.319-0.763-0.749
+                       c-0.522-1.457-2.397-2.006-3.151-0.834c-0.274,0.428-2.115,1.748,0.338,2.325C495.695,455.12,494.744,455.672,494.224,456.094
+                        M491.463,443.545c0.083-1.021-0.227-1.281-1.225-0.974c-1.077,0.329-2.272-0.272-2.081-1.294
+                       c0.246-1.299-0.499-1.329-1.128-1.342c-1.053-0.021-2.079,0.062-2.644,1.376c-0.463,1.078,0.419,1.219,0.809,1.625
+                       c0.589,0.616,1.523,0.43,2.296,0.632c0.656,0.172,1.508-0.242,1.748,0.922c0.125,0.613,0.851,0.406,1.302,0.234
+                       C491.075,444.526,491.642,444.262,491.463,443.545 M489.136,477.543c-0.036-0.792-0.349-1.59-0.82-2.254
+                       c-0.559-0.79-1.293-0.314-2.03-0.093c-0.822,0.248-1.684,1.223-1.538,1.395c1.043,1.244,1.309,2.564,1.03,4.103
+                       c-0.048,0.262,2.379,0.9,2.353,0.73C487.9,479.995,489.081,478.952,489.136,477.543 M525.685,502.581
+                       c-0.072,0.076-0.144,0.154-0.213,0.231c-0.233-0.208-0.462-0.425-0.7-0.627c-0.429-0.364-0.739-1.232-1.412-0.128
+                       c-0.264,0.432-0.882,2.348-0.483,2.761c0.126,0.131,0.302,0.235,0.476,0.297c1.281,0.458,3.245-0.253,3.733-1.34
+                       c0.986-2.209,0.572-3.602-1.278-4.461c-0.359-0.166-0.732-0.471-1.049-0.206c-0.38,0.316-0.284,0.827-0.093,1.259
+                       C524.993,501.109,525.343,501.843,525.685,502.581 M482.536,444.02c-0.108-1.645-1.797-1.79-2.77-2.594
+                       c-0.921-0.759-1.441-0.201-1.473,0.77c-0.038,1.212-0.225,2.556,0.225,3.598c0.331,0.77,1.584,1.028,2.556,0.304
+                       c0.022-0.016,0.241,0.223,0.361,0.35c0.34,0.359,0.719,0.763,1.218,0.368c0.469-0.37,0.222-0.949,0.216-1.449
+                       C482.863,444.904,481.807,444.845,482.536,444.02 M501.351,444.447c-0.115-2.449-0.466-3.048-2.406-4.722
+                       c-0.446-0.386-0.792-0.585-1.311-0.233c-1.032,0.699-1.21,0.112-1.121-0.777c0.057-0.578-0.24-0.858-0.728-0.916
+                       c-0.578-0.069-0.576,0.502-0.773,0.84c-0.909,1.567,0.56,1.824,1.297,2.641C497.685,442.807,499.229,443.886,501.351,444.447
+                        M479.463,501.44c1.834,2.559,2.009,5.222,1.157,8.077c0.667-0.089,1.355,0.251,1.584,1.261c0.215,0.953,1.141,0.853,1.78,1.176
+                       c0.213,0.109,0.474-0.053,0.376-0.199c-0.792-1.173,0.66-0.831,0.96-1.486c-0.973,0.355-1.332-0.838-2.219-0.622
+                       c-0.302,0.073,0.242,1.11-0.542,0.533c-0.333-0.243-0.701-0.759,0.047-1.237c0.238-0.152,0.251-0.992,0.08-1.392
+                       c-0.448-1.033-0.514-1.029,0.65-1.097c0.412-0.022,0.811-0.104,0.986-0.436c0.204-0.379-0.308-0.472-0.476-0.711
+                       C482.75,503.73,481.449,502.364,479.463,501.44 M505.194,477.673c0.402,0.646,0.88,0.893,1.478,1.031
+                       c0.723,0.166,1.82,0.185,0.894,1.436c-0.052,0.071,0.107,0.428,0.166,0.428c1.913-0.012,3.411,1.307,5.216,1.609
+                       c0.329,0.055,0.815,0.176,0.979-0.317c0.144-0.43-0.16-0.602-0.493-0.867c-2.055-1.639-4.067-3.332-6.065-5.041
+                       c-0.287-0.244-0.559-0.365-0.826-0.198c-0.155,0.098-0.289,0.526-0.204,0.657C507.318,477.923,506.112,477.707,505.194,477.673
+                        M448.22,345.023c0.143,0.236,0.069,0.436-0.006,0.701c-0.278,0.985-0.505,1.835,0.794,2.535c1.36,0.734,1.561-0.345,1.986-0.951
+                       c0.363-0.516,0.554-0.636,0.996-0.186c0.367,0.373,0.616,0.404,0.65-0.232c0.034-0.627,0.76-1.592,0.703-1.569
+                       c-2.324,0.967-0.145-1.116-0.814-1.181c-0.114,0.062-1.053-0.227-1.119-0.365c-0.097-0.202-0.219-0.3-0.371-0.085
+                       c-1.347,1.922-0.593-0.576-0.99-0.514c-2.056,1.32-4.264,2.243-6.373,3.339C446.292,346.165,447.414,345.731,448.22,345.023
+                        M442.869,484.254c0.499-0.845,1.051-1.662,1.465-2.546c0.126-0.268,0.653-0.925,0.058-0.993
+                       c-0.402-0.047-0.858-0.785-1.482,0.009c-0.684,0.875-1.736,1.462-2.632,2.168c-0.461,0.36-1.157,0.864-0.665,1.366
+                       c0.565,0.58,0.12,1.816,1.506,1.877c2.536,0.112,4.628-0.987,6.749-2.084c0.248-0.126,0.612-0.566,0.363-0.764
+                       c-0.352-0.276-1.191-0.547-1.314-0.398C445.902,484.117,444.264,483.702,442.869,484.254 M498.135,492.544
+                       c-0.235-0.226-0.467-0.54-0.45-0.956c0.032-0.741-0.516-1.223-1.028-1.103c-0.524,0.123-0.976,0.635-1.384,1.203
+                       c-0.677,0.938,0.27,0.881,0.486,1.155c0.588,0.757,1.232,1.499,1.977,2.092c1.275,1.014,1.155,1.669-0.613,2.195
+                       c0.968-0.008,1.679,1.128,2.361,0.144c0.896-1.291,1.703-2.661,2.383-4.077c0.246-0.505,0.231-1.287-0.215-1.835
+                       c-0.802-0.986-1.639-1.945-2.582-3.06c-0.151,1.841,0.234,3.189,1.712,4.001C499.923,493.312,499.053,491.14,498.135,492.544
+                        M488.955,495.731c-0.667-0.329,0.967-1.171-0.55-1.062c-0.412,0.031-0.656-0.34-0.819-0.704
+                       c-0.846-1.864-1.612,0.498-2.428,0.045c-0.289,0.721-0.987,1.543,0.002,2.147c1.901,1.155,3.422,2.699,4.902,4.324
+                       c0.624,0.685,1.07,0.325,1.654-0.342c0.818-0.938,0.856-1.918,0.728-3c-0.004-0.028-0.6-0.041-0.893,0.037
+                       c-0.392,0.099-0.604,0.941-1.061,0.511c-0.551-0.519-0.02-1.037,0.368-1.471c0.299-0.333,0.312-0.719,0.06-1.05
+                       c-0.47-0.622-0.716,0.051-1.06,0.214C489.528,495.538,489.176,495.647,488.955,495.731 M467.445,338.007
+                       c-1.796,0.769-0.904,2.112-1.127,3.136c-0.087,0.408,0.267,1.274-0.654,0.916c-0.495-0.191-1.249,1.393-1.453-0.251
+                       c-0.063-0.489-0.677-0.701-0.99-0.459c-0.825,0.638-0.794,0.057-0.891-0.492c-0.047-0.267,0.15-0.752-0.251-0.74
+                       c-0.28,0.007-0.695,0.117-0.868,0.605c-0.253,0.72-0.275,1.652-1.353,1.836c-1.414,0.242-2.357,1.257-3.29,2.227
+                       c-0.738,0.766,0.238,1.501,0.143,2.269c0.63-0.187,1.512,0.153,1.779-0.796c0.179-0.64,0.372-0.778,0.815-0.176
+                       c0.34,0.464,0.442,0.23,0.415-0.191c-0.068-1.135,1.439-1.212,1.527-2.294c0.029-0.332,0.69-0.355,0.645-0.001
+                       c-0.11,0.841,0.181,0.96,0.841,0.715c0.833-0.31-0.335-0.818,0.189-1.265c1.387,0.697,2.752-0.151,4.154-0.351
+                       c0.58-0.084,1.491-0.367,1.005-1.699C467.755,340.094,466.719,339.297,467.445,338.007 M463.345,359.136
+                       c-0.539-0.181-0.007-1.342-0.559-1.029c-1.093,0.617-1.221-0.583-1.178-0.695c0.29-0.753-0.022-0.812-0.648-0.827
+                       c-0.465-0.013-0.939-0.396-1.228,0.337c-0.291,0.734-0.679,1.429-1.127,2.35c-0.446-0.959-0.59-1.877-1.291-2.528
+                       c-0.264-0.245,0.125-1.11-0.829-0.757c-0.707,0.265-0.976,0.712-0.794,1.389c0.098,0.371,0.788,0.62,0.232,1.114
+                       c-1.249,1.117-1.243,1.096,0.044,2.035c1.111,0.81,2.243,1.543,3.772,1.701c-0.145-0.654-0.873-1.091-0.374-1.602
+                       c0.37-0.38,0.994-0.242,1.482-0.127c0.714,0.166,1.404,0.445,2.262,0.729c-1.3-1.685,1.671-1.611,0.949-2.968
+                       C463.279,358.108,463.75,358.982,463.345,359.136 M445.286,391.778c0.567-0.78,0.516-1.834-0.181-2.207
+                       c-0.841-0.449-2.051-0.3-2.905,0.198c-0.775,0.455-0.344,1.301-0.1,2.035c0.361,1.086,0.168,2.067-0.943,2.674
+                       c-0.775-0.668-0.227-1.949-1.321-2.909c0.192,1.129,0.147,1.92-0.634,2.327c-0.797,0.418-0.608,0.931-0.166,1.378
+                       c0.42,0.425,0.809,0.784,0.841,1.444c0.108,2.2,1.845-0.086,2.419,0.864c0.416-0.273,0.837-0.535,1.236-0.826
+                       c0.061-0.045,0.066-0.268,0.012-0.35c-1.522-2.257,2.325-2.185,1.741-4.026c1.183,0.549,1.028-0.701,1.56-0.971
+                       C445.931,390.537,446.097,392.13,445.286,391.778 M487.575,328.317c1.31,0.854,1.642,2.25,2.57,3.276
+                       c-0.755,0.261-1.381,0.479-2.32,0.804c2.547,1.857,5.403,1.342,7.881,2.184c0.287-0.749-0.59-1.071-0.267-1.776
+                       c0.112-0.244-0.427-1.086-0.797-1.191c-0.732-0.204-1.216-0.604-1.242-1.368c-0.019-0.563,1.136-1.158,0.138-1.552
+                       c-0.374-0.148-1.338-1.21-1.849,0.175c-0.075,0.204-0.181-0.289-0.255-0.471c-0.476-1.191-1.631-0.897-2.53-1.162
+                       C489.51,328.626,488.174,327.93,487.575,328.317 M460.641,463.724c-0.335,0.596-0.792,1.118-0.386,1.903
+                       c0.172,0.335-0.215,0.57-0.529,0.623c-0.287,0.049-0.45-0.155-0.482-0.458c-0.302-2.693-2.277,0.296-3.024-0.893
+                       c-0.472,1.044-1.115,2.157-0.608,3.26c0.446,0.972,1.067,1.878,2.576,1.731c2.551-0.251,3.188-2.79,5.238-3.666
+                       c-0.584-0.475-0.963,0.485-1.321-0.157c0.091-0.824,2.301-0.26,1.172-1.867c-0.039-0.057,0.163-0.37,0.312-0.458
+                       c1.451-0.843,0.58-2.245,1.108-3.261c-1.22-0.177-0.291,1.83-1.79,1.286c-0.076-0.027-0.431,1.138-0.767,1.738
+                       C461.512,464.626,461.703,464.735,460.641,463.724 M501.202,489.294c0.548-0.764,0.892-1.661,1.865-1.093
+                       c2.355,1.374,4.759,1.313,7.439,0.38c-2.236-0.008-3.738-0.878-4.685-2.679c-0.461-0.882-1.86-0.814-2.022-2.001
+                       c-0.68,1.123-2.28,0-2.884,1.31c1.277-2.786,1.049-3.802-1.178-5.083c-0.259-0.15-0.465-0.565-0.805-0.362
+                       c-0.563,0.337,0.147,0.792,0.1,0.846c-0.786,0.935,0.598,1.767,0.134,2.646c-0.827,0.007-0.559-1.136-1.311-1.185
+                       c0.007,1.819,0.083,1.723,1.347,2.701c0.599,0.466,1.327,1.546,1.153,2.067C499.979,487.968,500.731,488.422,501.202,489.294
+                        M492.722,507.016c-0.297,0.862-1.541-0.497-1.259,0.949c0.015,0.074-0.257,0.291-0.393,0.287
+                       c-0.327-0.005-0.384-0.295-0.373-0.554c0.023-0.514,0.097-1.024,0.11-1.535c0.006-0.28-0.174-0.483-0.46-0.532
+                       c-0.247-0.044-0.256,0.166-0.353,0.333c-0.559,0.97-0.924,1.04-1.168,0.067c-0.253-1.015-1.657-1.544-1.164-2.891
+                       c0.04-0.108-0.283-1.779-1.272-1.609c-0.554,0.095-0.65,1.086-0.705,1.794c-0.104,1.361,0.645,2.433,1.181,3.549
+                       c0.567,1.173,1.531,0.338,2.355,0.278c0.41-0.031,1.008,0.203,1.027,0.677c0.018,0.443-0.142,1.04-0.694,1.221
+                       c-1.091,0.357-1.136,0.38-0.509,1.172c0.554,0.698,1.276,1.253,1.637,2.118c0.471,1.127,1.565,0.646,2.196,0.491
+                       c1.132-0.281,2.14-1.021,2.951-1.931c0.002-0.003-0.184-0.14-0.246-0.238c-1.372-2.123-2.742-4.247-4.111-6.373
+                       C491.837,505.273,490.939,506.845,492.722,507.016 M462.642,433.69c-2.236-1.537-4.608,0.466-6.796-0.729
+                       c-0.31-0.168-0.323,0.265-0.395,0.494c-0.18,0.567-0.478,0.818-0.875,0.183c-0.269-0.428-0.547-0.375-0.959-0.26
+                       c-2.205,0.627-0.865,3.188-2.313,4.227c-0.1,0.072-0.14,0.432-0.061,0.513c0.265,0.265,0.218,0.714,0.654,0.891
+                       c1.976,0.803,5.498-0.026,6.806-1.773c0.344-0.46,0.768-0.66,1.178-0.893C461.072,435.671,462.015,434.787,462.642,433.69
+                        M518.148,456.885c-1.847,0.282-2.888,1.67-4.463,1.701c-0.44,0.01-0.062,0.396,0.036,0.531c0.486,0.658,0.93,1.621,1.926,1.258
+                       c1.274-0.464,1.454,1.178,2.365,1.083c1.691-0.174,1.795-0.312,2.536,0.753c0.625,0.9,2.109,0.119,2.398,1.42
+                       c0.794-0.759,2.257-1.25,1.866-2.604c-0.63-2.175-1.348-4.361-3.534-5.66c-1.063-0.633-1.236,0.662-1.953,0.63
+                       C519.875,457.848,518.297,456.665,518.148,456.885 M468.9,547.946c0.079-0.507,0.219,0.367-0.552,0
+                       c-0.841-0.399-0.762-0.47-0.983,0c-0.24,0.51-0.627,0.158-0.969,0c-1.227-0.568-2.489-14.185-3.083-15.523
+                       c-0.478-1.077-1.425-1.022-2.028-0.523c-0.697,0.577-1.463,15.223-1.081,16.046c0.41,0.892,1.365,0.202,2.013,0
+                       c0.516-0.163,0.892-0.567,1.483,0c0.399,0.378,0.161-0.3-0.094,0c-0.427,0.504-0.172,0.185-1.363,0
+                       c-0.404-0.065-1.143-0.804-1.141,0c0.002,0.85-0.078,0.103-0.834,0c-0.946-0.128-1.147,1.033-0.744,0
+                       c-1.095,1.208-27.884,0.855-28.968,0c-0.749-0.593-0.894-0.642-2.37,0c-0.059,0.026-0.114-0.032-0.169,0
+                       c-0.2-2.144-2.933,1.881-3.292,0c-0.548,0.53-0.486-0.357-0.338,0c0.453,1.081,1.253,0.202-0.947,0c0.007,1.32-9.199,0.809-8.93,0
+                       c0.128-0.384,0.852,0.308-0.044,0c-0.389-0.132-0.909-0.668-1.211,0c-0.18,0.398-0.173,0.053-0.913,0
+                       c0.363-0.91-1.745,1.194-0.917,0c-1.697-0.091-0.125,0.494-0.48,0c-0.123-0.034-0.308-0.041-0.348,0
+                       c-0.435,0.444-0.845-0.459-1.262,0c-0.463-1.601-2.319,0.961-3.115,0c-0.518-0.627-0.053-0.078,0.682,0
+                       c2.671,0.275,4.763-15.944,7.453-15.607c1.115,0.141,0.395-0.991,0.826-1.482c0.98,1.488,2.143,0.371,3.277,0.274
+                       c-0.273-0.725-1.085-0.478-1.694-1.031c1.263-0.853,2.45-1.201,3.812-0.468c0.261,0.139,0.586,0.62,0.791,0.277
+                       c0.937-1.571,2.545-0.578,3.751-1.073c0.851-0.35,2.143-0.064,2.024-1.665c-0.024-0.351,0.401-0.621,0.862-0.297
+                       c0.412,0.289,0.826,0.61,1.291,0.784c2.364,0.887,5.4-1,5.534-3.583c0.038-0.738,0.722-1.431,0.179-2.196
+                       c-2.232,0.653-3.209-0.479-2.835-3.341c-0.963,0.177,0.057,1.51-1.066,1.565c-0.744-0.519,0.106-1.128,0.071-1.891
+                       c-0.929,0.191-1.639,1.313-2.792,0.597c-0.42-0.263-1.255-0.119-1.308-0.783c-0.049-0.592,0.55-1.012,1.106-1.195
+                       c2.184-0.721,4.02-2.301,6.575-2.519c-1-1.376-0.924-2.237,0.818-2.598c1.694-0.35,2.864-1.396,3.227-3.381
+                       c-2.155,0.19-3.128,2.286-4.914,2.967c-1.546-1.771,0.635-3.713-0.18-5.55c-0.113-0.251,0.208-0.574,0.431-0.532
+                       c3.882,0.727-0.983-2.162,0.924-2.231c-0.37-0.17-0.782-0.295-0.979,0.176c-0.245,0.588-0.669,0.621-1.068,0.339
+                       c-0.364-0.256-0.194-0.685-0.019-1.05c0.962-1.992,1.65-4.176,3.183-5.794c0.62-0.652-0.461-0.687-0.047-1.336
+                       c0.871-1.366,1.807-2.095,3.44-1.86c0.414,0.059,0.967,0.106,0.977-0.59c0.004-0.299,0.124-0.646-0.263-0.843
+                       c-0.48-0.243-0.818-0.3-0.869,0.416c-0.017,0.262-0.363,0.035-0.422,0.084c-1.083,0.888-1.625-0.443-2.366-0.69
+                       c-0.922-0.308-2.07-0.442-2.735-1.38c-0.41-0.579-0.546-0.263-0.665,0.214c-0.136,0.535-0.571,0.764-1.303,1.027
+                       c0.466-1.299,0.857-2.419,1.267-3.532c0.208-0.562,0.346-1.437-0.21-1.459c-0.569-0.023-1.055-1.268-1.701-0.176
+                       c-0.367,0.617-0.708-0.189-1.143-0.076c-0.726,0.188-1.193,0.352-0.766,1.239c0.454,0.943-0.775,2.104,0.055,2.861
+                       c1.561,1.42-0.085,3.653,1.47,5.028c0.269,0.236,0.161,0.817-0.391,1.101c-0.61,0.314-0.981,0.2-1.181-0.415
+                       c-0.142-0.436-0.474-0.549-0.843-0.789c-0.119,1.276-0.225,2.422-0.329,3.541c-0.38,0.458-0.837-2.097-1.172,0.066
+                       c-0.052,0.346-0.442,0.763-0.859,0.583c-0.547-0.234-0.087-0.621,0-0.955c0.111-0.436,0.262-1.03-0.178-1.251
+                       c-1.317-0.659-0.836-1.639-0.611-2.657c-0.848,1.357-3.226,1.279-3.092,3.483c-1.561,0.086-1.702,1.233-1.941,2.419
+                       c-0.051,0.255-0.905,0.613-1.221,0.49c-0.393-0.155-0.724-0.766-0.247-1.274c0.673-0.711,0.366-1.27-0.161-1.767
+                       c-0.306,0.223-0.697,0.382-0.883,0.672c-0.291,0.459-0.638,0.708-1.083,0.406c-0.361-0.248-0.217-0.686-0.037-1.052
+                       c0.319-0.65,0.395-1.316,0.206-2.005c-0.928-0.022-0.422,1.035-1.04,1.176c-0.701-0.975-0.656-2.082-0.459-3.234
+                       c-0.93,0.174-0.733,1.219-1.639,1.366c-0.007-1.208-0.438-2.193-2.188-2.22c2.719-1.355,4.965-2.997,7.822-1.54
+                       c0.48,0.246,3.257-1.941,3.276-2.451c0.026-0.789-0.787-0.327-1.112-0.774c-0.801-1.098-1.311-2.552-2.938-2.844
+                       c-0.246-0.043-0.56-0.384-0.441-0.766c0.121-0.383,0.499-0.373,0.807-0.383c0.86-0.031,1.472-0.018,1.59-1.286
+                       c0.151-1.621,1.986-1.448,3.005-1.648c1.17-0.227,1.599-0.009,0.459-1.021c-0.183-0.165,0.35-0.419-0.011-0.663
+                       c-0.7,0.07-0.492,1.223-1.316,1.152c-0.04-1.669-1.453-2.706-3.345-2.397c-0.32-1.468,1.688-1.155,1.822-2.614
+                       c-0.817,0.706-1.622,0.872-2.471,1.105c-0.347-0.821,0.64-1.103,0.708-1.726c0.034-0.541-2.323,1.422-0.792-0.755
+                       c0.102-0.144-0.618,0.352-0.968-0.021c-0.293-0.309-0.285-0.572,0.04-0.782c0.693-0.45,1.396-1.275,2.232-0.953
+                       c2.536,0.975,5.316,0.265,7.89,1.363c0.881,0.375,1.639,1.195,2.766,1.212c0.584,0.007,0.922-0.134,0.982-0.561
+                       c0.112-0.777-0.748-0.13-1.039-0.624c0.641-0.453,1.364-0.26,1.994-0.271c1.733-0.03,2.65-1.196,3.659-2.337
+                       c0.578-0.657,1.245-1.289,2.243-1.319c1.157-0.036-0.308-1.27,0.656-1.492c0.201-0.045-0.145-0.188-0.257-0.268
+                       c-0.573-0.415-0.571,0.247-0.805,0.445c-0.596,0.504-1.584,0.462-1.678,1.961c-0.609-1.242,0.825-3.225-1.581-2.443
+                       c-0.366,0.12-0.404-0.361-0.223-0.691c0.303-0.548,0.815-1.038,0.509-1.759c-0.694,0.079-0.501,0.849-0.907,1.131
+                       c-0.305,0.21-0.248,0.887-0.871,0.675c0.782-1.547-2.777,0.869-1.333-1.492c0.482-0.79-0.741-0.072-0.943-0.5
+                       c1.302-0.933,2.309-2.05,2.546-3.555c-3.102,0.424-4.57,3.1-6.485,5.231c-0.656-0.814,0.792-1.584-0.039-1.871
+                       c-0.447-0.155-1.586-0.823-2.166,0.471c-0.208,0.463-1.49,1.378-1.456-0.545c0.006-0.3-1.555-0.475-0.092-1.637
+                       c-1.11,0.695-1.747,1.492-2.841,1.111c0.185-0.802,0.633-1.314,1.351-1.741c0.807-0.483,1.889-1.043,1.994-1.973
+                       c0.24-2.108,1.405-1.213,2.399-0.921c0.415,0.121,0.956,0.583,1.164,0.028c0.312-0.83-0.592,0.188-0.775-0.399
+                       c-0.225-0.723-0.263-1.266,0.42-1.704c-0.59-0.558-1.276,0.525-1.788-0.319c-0.409-0.676,0.325-0.865,0.431-1.55
+                       c-1.106,0.616-2.03,0.737-3.299,0.428c-1.432-0.348-2.247-1.01-2.973-2.04c-0.529-0.751-1.094,0.22-1.74-0.14
+                       c0.312-0.67,0.512-1.601,1.344-1.321c1.436,0.481,2.564-0.456,3.855-0.54c0.129-0.007,1.074-0.128,0.405-0.811
+                       c-0.082-0.084,0.009-0.335,0.02-0.51c2.418,0.713,2.728-3.209,5.636-2.381c1.293,0.369,3.9-0.077,5.009-2.187
+                       c0.204-0.389,0.675-0.681,0.363-1.129c-0.306-0.44-0.603-0.028-0.945,0.136c-1.159,0.554-2.888-0.86-2.754-2.2
+                       c0.149-1.491-1.115-2.818-2.445-2.369c-0.925,0.312-2.042,0.502-2.624,1.435c-0.267,0.428-0.48,0.317-0.75,0.159
+                       c-0.889-0.527-1.648-0.814-2.862-0.684c-1.34,0.144,0.269-0.927-0.104-1.61c-0.597,0.353-1.124,0.917-1.996,1.038
+                       c0.046-0.981,1.187-1.659,0.668-2.675c-0.244,0.164-0.488,0.327-0.887,0.594c0.41-1.33,0.699-2.568-1.376-2.551
+                       c1.609-0.713,3.145-0.779,4.621-0.13c1.626,0.715,2.794-0.287,4.075-0.878c0.864-0.398,0.172-1.097,0.1-1.603
+                       c0.588-0.242,0.883,0.831,1.382,0.131c0.257-0.36,1-0.534,0.664-1.141c-0.335-0.604-0.721-0.045-1.122,0.057
+                       c-1.001,0.257-1.997,0.428-2.027,1.774c-1.713-0.817-0.369-2.438-1.333-3.928c-0.27,1.171-0.486,1.903-0.601,2.651
+                       c-0.162,1.05-0.93,0.574-1.482,0.651c-0.139-1.122-1.179-0.454-1.281-0.538c-1.883-1.548-1.557,0.876-2.489,1.278
+                       c-0.176-1.045-1.656-0.606-1.924-1.714c-0.009-0.042-0.435-0.08-0.48-0.008c-1.317,2.186-0.875,0.458-1.446-0.396
+                       c-0.387-0.58-1.518-0.821-1.529-1.918c-0.76,0.152-0.586,1.069-1.251,1.243c-0.157-0.23-0.339-0.477-0.497-0.736
+                       c-0.361-0.596-2.1-0.558-1.252-1.503c0.929-1.031,2.49-1.497,3.801-2.159c0.05-0.025,0.318,0.517,0.558,0.695
+                       c0.272,0.198,0.896,0.419,0.905,0.4c0.626-1.259,1.762-0.95,2.826-1.096c0.727-0.098,1.134-0.398,1.77,0.38
+                       c0.471,0.575,3.514-0.812,3.83-1.779c0.255-0.787,1.219-1.346,0.714-2.454c-0.21-0.464,2.576-1.099,3.155-0.602
+                       c1.378,1.183,3.139,1.769,4.439,3.171c0.58,0.625,2.096,0.245,2.799,1.439c0.276,0.469,0.872-0.149,1.28-0.454
+                       c1.049-0.782,1.899-1.758,3.532-1.558c1.25,0.153,1.503-1.614,2.529-2.167c0.255-0.138,0.414-0.458,0.618-0.694
+                       c1.69,1.49,2.55-0.969,4.136-0.85c-0.22,0.804-0.424,1.557-0.7,2.573c0.811-0.511,1.899,0.359,2.293-0.67
+                       c0.247-0.651-0.842-0.077-1.138-0.666c0.259-0.545,0.724-0.876,1.393-0.962c0.249-0.033,0.593-0.007,0.726-0.158
+                       c1.511-1.699,1.521-1.644,3.519-2.211c1.221-0.343,1.174-1.978,2.268-2.541c0.495,0.563-0.255,0.883-0.278,1.351
+                       c-0.023,0.44-0.951,0.816-0.013,1.33c0.811,0.444,1.468,0.407,2.058-0.299c0.098-0.118,0.18-0.429,0.142-0.451
+                       c-0.329-0.212-1.257,0.206-0.824-0.776c0.226-0.517,0.911-0.466,1.289-0.783c2.013-1.69,3.675-3.604,3.644-6.578
+                       c-0.673,0.47-1.49,0.193-2.221,0.361c-2.132,0.484-4.094,1.455-5.961,2.557c-1.401,0.826-2.865,1.04-4.402,0.921
+                       c-0.516,1.168,1.281,1.389,0.877,2.486c-0.815,0.019-0.957-0.989-1.701-1.074c-0.474,0.816,0.108,1.654,0.178,2.727
+                       c-1.429-0.81-0.004-3.213-2.204-3.083c-0.255,0.75,0.476,1.132,0.639,1.724c0.102,0.38,0.179,0.827-0.15,1.086
+                       c-0.58,0.456-0.455-0.25-0.676-0.434c-0.497-0.411-0.308,0.28-0.414,0.413c-0.601,0.749,0.047,1.754-0.422,2.546
+                       c-1.311-0.201-0.032-1.935-1.162-2.047c-0.766-0.073-1.361,0.942-2.314,0.703c-1.99-0.504-1.326,1.63-2.56,2.652
+                       c0.892-2.004-1.242-1.663-1.373-2.788c-1.249,0.959-2.897-0.07-4.286,0.931c0.144-1.181,0.446-2.407-0.652-3.128
+                       c-1.104-0.727-0.896,1.41-2.081,0.948c0.149-0.38,0.308-0.786,0.544-1.386c-1.173,0.817-1.385,0.893-1.746-0.132
+                       c-0.27-0.767-0.867-0.818-1.296-1.193c-0.448-0.393-1.152-0.449-0.949-1.399c0.094-0.447,0.343-1.585-1.123-1.064
+                       c-0.745,0.262-0.917-0.663-0.372-1.269c0.74-0.821,1.283-1.69,1.049-3.001c-0.603,1.431-1.586,2.552-3.073,2.116
+                       c-0.56-0.167-0.857-1.55-0.647-3.034c-1.971,2.689-2.532,0.602-3.714-0.747c1.8,0.272,3.081-1.257,4.861,0.185
+                       c0.762,0.615,2.467,0.079,2.818-1.741c1.577,2.035,3.616,1.871,5.731,1.484c-0.611-0.874-0.543-1.184,0.824-1.735
+                       c1.478-0.599,3.578-0.208,4.466-2.126c0.18-0.387,0.185-0.73,0.07-1.177c-0.554,0.238-1.096,0.473-1.733,0.747
+                       c0.289-1.873-3.357-2.818-0.611-5.176c-1.289,0.457-1.34,2.146-1.858,1.943c-0.86-0.338-1.183-0.051-1.842,0.363
+                       c0.221-0.788,0.499-1.566,0.644-2.368c0.078-0.433,0.333-1.084-0.264-1.309c-0.511-0.193-0.749,0.319-0.925,0.747
+                       c-0.072,0.176-0.16,0.35-0.259,0.513c-0.242,0.41-0.659,0.738-1.052,0.479c-0.312-0.207-0.193-0.715,0.121-1.023
+                       c0.606-0.595,0.644-1.285,0.465-2.15c-0.698,0.934-0.893,0.961-2.609,0.445c0.46-0.721,1.416-1.154,1.27-2.343
+                       c-0.99,0.078-1.584,1.399-2.799,0.878c0.169-0.211,0.274-0.462,0.456-0.545c0.457-0.208,1.172-0.223,1.213-0.793
+                       c0.046-0.631-0.745-0.731-1.155-1.063c-0.345-0.28-1.113-0.074-0.958-0.901c0.061-0.321,0.125-0.659,0.473-0.787
+                       c0.582-0.218,1.111,0.183,1.355,0.505c0.652,0.862,1.436,1.35,2.4,1.832c0.716,0.359,0.887-0.161,1.064-0.301
+                       c0.288-0.228,0.221-0.779-0.304-0.847c-0.499-0.065-0.82-0.318-1.145-0.642c-0.269-0.266-0.293-0.5-0.072-0.821
+                       c0.185-0.274,0.529-0.703,0.684-0.479c1.096,1.593,2.723-1.022,3.886,0.56c0.355,0.485,0.485-0.543,0.894-0.696
+                       c0.4-0.148,0.083-0.536-0.034-0.538c-2.123-0.038-0.329-1.788-1.272-2.558c0.259,1.65-1.21,1.298-1.934,1.82
+                       c-0.805,0.583-0.032-0.708-0.563-0.659c0.161-0.591,0.697-1.427-0.69-0.87c-0.219,0.088-0.508-0.428-0.126-0.858
+                       c0.459-0.516,0.812-1.125,1.255-1.754c-0.925-0.013-1.318-0.224-1.511-0.857c-0.087-0.281-0.281-0.257-0.421-0.229
+                       c-1.837,0.361-0.945-1.021-1.109-1.725c0.769,0.005,1.6-0.169,2.288,0.072c0.737,0.257,1.089,1.423,2.185,1.002
+                       c0.286,1.235,0.405,0.267,0.626-0.034c0.217-0.295,0.045-0.711,0.183-0.899c0.387-0.531,0.917-0.96,1.389-1.43
+                       c0.251,0.573,0.463,1.187,1.368,1.135c-0.47,0.74-2.302,0.787-0.837,2.04c0.061,0.053,0.016,0.238,0.006,0.361
+                       c-0.04,0.498-1.635,0.021-0.72,0.889c0.523,0.497,1.459,1.223,2.57,0.455c0.83-0.575,1.331-1.393,1.034-2.553
+                       c-0.062-0.239-0.041-0.504-0.032-0.755c0.032-0.817-1.756-1.344-1.085-1.415c1.176-0.127,2.958-0.589,3.973,0.949
+                       c-0.148,0.129-0.221,0.231-0.319,0.272c-0.556,0.233-1.359-0.309-1.692,0.459c-0.085,0.195,0.34,0.611,0.533,0.927
+                       c0.467-0.725,1.384,0.18,2.058-0.874c2.739-4.278,6.243-7.809,11.055-9.843c1.181-0.5,1.979-0.474,2.897,0.485
+                       c0.342,0.357,0.747,1.504,1.626,0.7c0.338-0.31,1.211-0.31,0.971-0.991c-0.346-0.984-0.525-0.07-0.758,0.145
+                       c-0.136,0.127-0.285,0.238-0.658,0.545c0.333-2.249-1.047-2.376-2.53-2.39c-0.896-0.007-1.849,0.069-1.968-1.595
+                       c-0.726,1.758-0.726,1.758-1.591,1.073c-0.18,0.489-0.276,0.968-0.078,1.465c0.085,0.214,0.363,0.525-0.073,0.562
+                       c-1.652,0.136-2.745,0.992-3.548,2.407c-0.295,0.521-1.346,0.419-1.497,0.282c-0.625-0.564-1.049-0.314-1.476,0.113
+                       c-0.885,0.887-1.257-0.361-1.905-0.49c-1.559-0.308-1.531-0.453-2.642,0.698c-0.46-0.3-0.093-0.842-0.365-1.215
+                       c-0.728,0.317-1.166,0.927-1.535,1.58c-0.809-0.423-1.1-1.552-2.29-1.486c-0.293,0.016-0.947-0.874-0.881-0.972
+                       c0.378-0.559,0.627-1.287,1.372-1.523c0.592-0.19,1.002-0.233,0.472-1.122c-0.723-1.218,1.259-2.196,0.581-3.597
+                       c-0.529,0.714-0.414,2.003-1.707,2.188c-0.31-1.021,0.977-1.173,0.943-2.084c-0.682-0.391-1.735,1.577-2.239-0.222
+                       c-0.04-0.148-0.352-0.345-0.337-0.366c1.293-1.689-0.913-1.232-1.176-2.17c1.116,0.352,2.272,0.183,3.329,0.874
+                       c0.406,0.266,1.145,1.006,1.582,0.004c0.412-0.944-0.448-1.048-1.032-1.152c-1.968-0.354-0.371-1.565-0.596-2.35
+                       c-0.665-0.086-0.391,0.893-1.007,0.887c-0.733-0.657,0.539-2.307-1.21-2.734c0.025-0.579,0.637-1.098,1.237-1.992
+                       c-1.042,0.462-1.815,0.805-2.745,1.218c0.104-1.352,1.35-2.7-0.765-3.722c2.459-0.466,3.542,1.532,5.352,1.64
+                       c0.586,0.034,0.652,0.21,0.964-0.398c0.32-0.625,0.872-0.008,0.994,0.323c0.853,2.292,0.832,2.366,3.639,2.25
+                       c1.164-0.047,0.168,1.694,1.61,1.582c0.569-0.041,1.19-1.928,1.869-0.162c0.201,0.521,0.766,0.479,1.193,0.399
+                       c0.981-0.181,1.933-0.662,2.385,0.878c0.17,0.581,2.013-0.311,2.185-1.218c0.083-0.436-0.048-0.909,0.786-1.094
+                       c-0.669,1.87,1.313,2.354,1.837,3.666c-0.412-1.69-0.824-3.38-1.24-5.07c-1.238,0.814-1.986,3.168-4.114,1.286
+                       c-0.135-0.12-0.673,1.092-1.295,0.38c-0.354-0.406-0.476-1.02-0.68-1.551c-0.41-1.055-1.594-0.703-2.342-1.302
+                       c-1.232-0.981-1.246,1.038-2.257,1.288c0.431-1.822-0.497-2.237-2.094-2.53c-0.759-0.14-2.587-0.55-1.508-2.61
+                       c-0.894,0.536-1.471,0.881-2.083,1.248c-0.295-0.723,0.569-1.278,0.047-1.953c-0.672,0.514-0.627,1.666-1.623,1.921
+                       c-0.473-0.731,0.627-0.869,0.55-1.363c-1.478-0.574-2.459-1.985-4.536-2.197c1.828-1.024,3.298,1.138,4.576-0.212
+                       c0.708-0.749,2.793,0.346,2.392-1.82c-0.584-0.13-0.879,1.12-1.408,0.464c-0.474-0.589-0.374-1.461,0.199-2.246
+                       c-0.879,0.084-0.635,1.052-1.446,1.159c0.472-0.842-0.565-1.391-0.233-2.407c-0.612,0.489-1.1,0.876-1.585,1.265
+                       c0.38-0.614-1.042-1.448,0.238-1.951c-0.259-0.487-0.427-1.071-0.809-1.424c-0.265-0.243-0.679-0.355-0.75-0.767
+                       c-0.023-0.126,0.164-0.406,0.276-0.42c0.483-0.048,0.867-0.024,1.37,0.343c1.827,1.332,4.169,1.376,6.278,2.662
+                       c-0.202-1.416-1.287-1.331-1.703-1.973c-0.332-0.513-1.283-0.753-0.515-1.723c0.533-0.678,0.718-0.742,1.557-0.323
+                       c1.489,0.739,4.251-1.09,3.908-2.703c-0.176-0.817,1.656-1.075,0.261-1.702c-0.446-0.201-0.325-1.202-0.505-0.881
+                       c-0.519,0.928-2.517-1.797-2.139,0.952c0.044,0.316-1.098,1.308-2.151,0.931c0.235-1.23,0.467-2.456,0.702-3.682
+                       c-0.347,0.755-0.97,1.411-1.596,1.617c-0.485,0.161-1.23-0.462-1.861-0.736c1.018-1.537-0.135-0.799-0.798-0.842
+                       c-1.446-0.094-0.987-1.055-0.611-1.987c-0.404-0.023-0.723-0.095-1.026-0.046c-0.463,0.074-1.049,0.199-1.043-0.418
+                       c0.008-0.678,0.597-0.421,1.036-0.352c1.84,0.288,3.71-0.443,5.549,0.126c0.079,0.025,0.207-0.024,0.283-0.081
+                       c1.395-1.061,1.956-0.906,2.733,0.835c1.527-0.893,3.003-1.713,4.963-1.078c0.656,0.211,1.994-0.642,2.138-1.55
+                       c0.123-0.79,0.797-2.052-0.815-2.619c-1.015-0.357-1.548-1.539-1.238-2.583c0.477-1.595,1.898-0.432,2.839-0.575
+                       c0.618-0.095,0.044,1.359,1.019,2.095c-0.512-1.44,0.678-2.188,0.588-3.406c-0.047-0.625,1.026-0.489,1.644-0.627
+                       c1.043-0.233,2.657-0.189,1.421-2.089c-0.414-0.639,0.295-1.195,0.425-1.804c0.091-0.424,0.513-0.878-0.251-1.029
+                       c-0.436-0.085-0.977-0.145-0.975,0.555c0.004,0.74-0.389,1.204-1.038,1.637v-2.678c-1.678,0.71-1.493,2.894-3.148,3.359
+                       c-0.539-0.55,0.311-1.034,0.09-1.667c-1.192,1.113-1.256,0.253-1.251-0.838c-0.478,1.414-1.671,1.767-2.744,2.118
+                       c-0.157,0.051-1.386-0.954-0.257-2.167c-1.314,0.477-0.711,1.432-1.397,1.895c-1.119-0.647-1.71-2.584-3.604-1.786
+                       c-0.251,0.106-0.48-0.228-0.395-0.499c0.2-0.644,0.756-1.267-0.027-1.889c1.021,0.445,1.573-0.672,2.51-0.802
+                       c0.807-0.114,1.403,1.02,2.126,0.18c1.074,1.247,2.319,0.473,3.816,0.281c-1.593-0.857-1.466-2.089-0.965-3.411
+                       c-0.843,0.179-0.652,1.117-1.344,1.249c-0.522-0.54,0.17-0.893,0.289-1.304c0.159-0.556,0.665-1.111-0.389-0.406
+                       c-0.102,0.068-0.231,0.096-0.346,0.141c0.491-0.917-0.291-1.748-0.18-2.569c0.048-0.344,0.643-1.016,1.633-0.589
+                       c1.35,0.584,2.761-0.447,4.273-0.382c1.52,0.065,2.215-1.544,2.482-3.05c0.083-0.472,0.518-0.337,0.779-0.304
+                       c1.355,0.162,1.863-0.861,2.455-1.73c0.425-0.628,0.374-0.676-0.435-1.141c-0.314-0.177-0.314-0.177,0.276-1.638
+                       c-1.427,1.49-2.255,3.493-3.971,4.784c-0.453-0.225,0.189-0.816-0.348-1.182c-0.485,2.054-2.288,0.388-3.334,1.176
+                       c-0.198,0.147,0.448-0.653-0.145-0.786c-0.716,0.148-0.167,1.166-1.108,1.337c0.516-1.784-0.903-1.178-1.959-1.342
+                       c1.247-0.98,2.81-0.7,3.704-1.849c-1.293-0.039-1.954-0.976-1.66-2.087c0.11-0.417,0.974-0.955-0.068-1.38
+                       c-0.941-0.382-0.561,0.778-1.081,0.876c-0.113,0.021-0.208,0.133-0.474,0.314c-0.452-1.297-0.673-3.219-2.796-1.421
+                       c-0.06-1.422,2.161-2.668-0.028-3.823c2.181-0.553,1.133-2.245,1.204-3.573c0.664,0.017,0.845,0.526,1.214,0.958
+                       c0.616,0.731,0.827,2.007,2.425,1.7c1.009-0.193,1.95,0.18,2.292-1.28c0.293-1.255,1.395-2.267,0.82-3.808
+                       c-0.151-0.405-0.38-2.235,1.344-1.345c0.588,0.3,0.992-0.631,1.61-0.098c0.172,0.147,0.495-0.312,0.556-0.627
+                       c0.032-0.163-0.062-0.352-0.1-0.529c-1.055,0.722-1.817-0.897-2.533-0.488c-0.812,0.464-0.752,0.127-0.903-0.408
+                       c-0.036-0.124-0.293-0.186-0.448-0.279c-0.38,0.86-0.624,1.381-1.618,0.342c-0.395-0.413-1.295,1.044-2.272,0.937
+                       c-0.047-1.558,0.668-2.697,1.728-3.822c0.88-0.934-0.873-1.871-0.085-3.216c-0.989,0.592-1.628,0.976-2.308,1.383
+                       c-0.157-0.797-0.297-1.501-0.448-2.263c-0.627,0.432-0.869,1.491-1.917,0.931c-0.192-0.566,0.806-0.855,0.405-1.492
+                       c-0.767,0.165-1.873,0.827-1.121-0.967c0.359-0.853,0.792-1.774,0.596-2.763c-0.023-0.116-0.34,0.132-0.524,0.321
+                       c-0.675,0.697-1.115,0.427-1.92,0.101c-0.775-0.312-1.291-1.003-2.486-1.098c2.084-0.385,2.356-1.385,1.469-4.068
+                       c1.661-0.893,1.291,1.703,2.559,1.505c0.091-0.016,0.202,0.162,0.312,0.172c2.079,0.211,3.151,1.706,3.869,3.402
+                       c0.93-0.36,0.232-0.791,0.442-1.073c0.423-0.57-1.041-1.251,0.13-1.788c0.953-0.438,1.828,0.1,2.437,0.505
+                       c2.795,1.864,4.679,1.713,7.174-0.972c-1.215-0.291-2.092-0.821-1.026-2.229c-1.13,0.264-0.688,1.294-1.178,1.869
+                       c-0.412-1.295-0.051-2.399,0.352-3.615c-0.66,0.497-1.153,0.995-1.922,1.065c-0.471-0.993,0.454-1.846,0.266-2.811
+                       c-0.068-0.343,0.22-0.8-0.242-1.008c-0.361-0.163-0.652-0.092-0.943,0.335c-0.546,0.804-1.527,0.145-2.243,0.496
+                       c-0.038-0.46-1.336-0.283-0.567-1.191c0.268-0.316,0.363-0.81,0.448-1.24c0.057-0.287,0.081-0.679-0.352-0.776
+                       c-0.346-0.077-0.642,0-0.705,0.424c-0.079,0.557-0.355,1.185-0.918,0.958c-0.631-0.256-0.418-0.968-0.142-1.493
+                       c0.234-0.449,0.325-0.907-0.093-1.225c-1.636-1.251-0.873-2.97-1.444-4.934c1.452,0.801,0.588,2.053,1.433,2.442
+                       c1.298,0.598,0.656-1.363,1.803-1.283c-0.198,0.717-0.383,1.392-0.571,2.07c0.913-0.128,1.115-1.716,1.962-1.195
+                       c0.586,0.361,1.062,1.429,0.58,2.434c-0.071,0.15,0.244,0.642,0.478,0.742c0.324,0.136,0.492-0.272,0.719-0.489
+                       c1.039-0.989,0.126-2.004-0.059-3.071c1.834,0.87,2.62,0.143,3.376-3.246c-1.55,1.977-2.331,0.969-3.865,0.067
+                       c-2.662-1.564-0.94-2.166,0.597-3.403c-1.469,0.163-1.994-0.302-2.17-1.261c-0.057-0.309-0.31-0.583,0.059-0.808
+                       c0.261-0.159,0.461,0.044,0.654,0.229c0.34,0.325,0.497,1.139,1.128,0.769c0.561-0.329,0.127-1.323,0.832-1.745
+                       c0.17-0.1-1.391-1.202,0.353-0.706c0.229,0.066,0.183-0.357,0.121-0.368c-1.697-0.282-0.006-2.967-2.325-2.887
+                       c1.221-0.518,1.901,0.096,2.667,0.564c0.635,0.386,0.809,0.229,0.718-0.562c-0.02-0.178-0.187-0.383,0.063-0.428
+                       c0.612-0.108,1.686-0.723,1.315-0.772c-1.453-0.195-0.221-3.549-2.686-1.896c0.384-0.975,2.645-2.009,3.074-1.487
+                       c1.553,1.886,2.729,0.234,3.97-0.393c0.486-0.244,0.811-0.806,1.231-1.247c-0.537-0.061-1.389-0.057-1.406-0.174
+                       c-0.17-1.199-1.229-0.191-1.658-0.827c0.157-0.119,0.433-0.223,0.514-0.413c0.272-0.63,1.703-0.212,1.28-1.433
+                       c-1.157,0.426-0.246-1.493-1.454-1.234c-0.861,0.185-0.869-0.276-0.602-1.148c0.326-1.069-0.573-2.402,0.742-3.385
+                       c0.199-0.15-0.71-0.243-1.034-0.559c-0.515-0.508-0.582-1.139-0.166-1.544c0.431-0.419,0.779,0.122,0.986,0.526
+                       c0.942,1.828,1.711-0.606,2.595-0.102c0.137-0.547,0.401-0.815,0.944-0.409c0.276,0.206,0.469-0.038,0.703-0.091
+                       c1.385-0.317-0.758-1.255,0.296-1.637c0.6-0.215,1.061,1.38,1.737,0.095c0.318-0.604-0.304-3.221-0.962-3.446
+                       c-0.584-0.199-0.646,0.92-1.43,0.636c0.013-0.212-0.055-0.509,0.058-0.69c0.97-1.53-0.408-1.621-1.105-1.435
+                       c-1.437,0.382-1.407-0.035-0.987-1.139c0.172-0.451,0.108-1.01,0.075-1.516c-0.054-0.844,0.622-1.02,0.889-0.549
+                       c0.713,1.259,1.442,0.23,2.143,0.196c0.475-0.024,0.49-0.399,0.267-0.681c-0.17-0.216-0.148-0.719-0.798-0.428
+                       c-0.746,0.335-0.837,0.182-0.62-0.562c0.31-1.062-1.483-0.481-1.21-1.609c0.073-0.301-1.069-0.545-0.555-1.168
+                       c0.45-0.547,0.892,0.447,1.051,0.34c0.65-0.434,1.417,0.755,1.775-0.066c0.158-0.367-0.628-1.146-0.764-1.488
+                       c-0.605-1.497-1.41-2.639-2.964-3.355c1.406-0.187,2.699-1.065,3.871,0.221c0.295,0.324,0.69,0.337,0.93-0.139
+                       c0.25-0.498-0.312-0.515-0.408-0.706c-0.635-1.249-2.026-1.312-2.937-2.077c-0.373-0.313-0.888-0.742-0.548-1.283
+                       c0.283-0.455,0.684,0.179,0.946,0.148c0.98-0.116,1.671-0.748,2.236-1.545c0.346-0.492-0.262-1.722,0.981-1.472
+                       c1.015,0.204,1.73,0.859,1.599,2.065c0.881-0.01,0.839-1.043,1.635-1.314c0.654-0.221,0.418-1.497-0.302-1.453
+                       c-2.189,0.13-1.599-1.84-2.1-2.766c-0.66-1.219-0.593-2.828-0.858-4.265c-0.206-1.121,0.14-1.852,2.009-1.913
+                       c-1.412-0.659-1.922-1.332-1.981-2.352c2.115,0.71,3.191-0.005,2.996-2.265c-0.189-2.207,0.538-3.93,1.763-5.641
+                       c0.55-0.769,1.183-1.84,1.057-2.661c-0.374-2.443,2.26-3.503,2.322-5.669c0.004-0.17,0.36-0.333,0.556-0.502
+                       c0.849,1.286,0.148,3.189,1.939,4.069c0.815,0.399-0.242,1.235-0.02,1.95c0.398,1.302,2.685,1.967,1.324,3.857
+                       c1.943,0.046,0.46,3.107,2.624,3.075c0.049,0-0.518,1.329-0.632,2.059c-0.101,0.669-1.4,2.088,0.879,1.715
+                       c0.426-0.07,1.325,0.662,1.406,1.129c0.097,0.548-0.648,1.054-1.245,1.314c-0.38,0.164-0.966-0.006-0.885,0.714
+                       c1.556-0.595-0.725,2.151,1.38,1.502c1.401-0.43,1.852,0.623,1.338,2.186c-0.289,0.882-0.71,1.574-1.44,2.126
+                       c-0.501,0.378-1.058,0.768,0.129,1.066c0.876,0.22,0.102,0.646-0.01,0.99c-0.104,0.32-1.141-0.254-0.584,0.517
+                       c0.34,0.47-0.136,1.54,1.008,1.47c0.084-0.005,0.215,0.434,0.48,0.097c0.355-0.449,0.55-1.322,1.389-0.651
+                       c1.172,0.934,1.155,0.953,0.435,2.503c-0.413,0.884,0.64,1.769,2.392,1.798c-1.217,0.741-1.119,2.286-2.529,2.78
+                       c-0.623,0.217,0.957,0.255,0.369,1.097c-0.798,1.141-1.403,2.349-3.083,2.426c0.641,0.623,2.665,0.856,3.211,0.737
+                       c1.176-0.257,1.942-1.488,3.268-1.339c-0.117,2.608-1.761,4.389-4.054,4.087c1.592,1.187-0.312,1.79-0.206,2.629
+                       c2.344,1.782,3.215-0.848,4.736-1.533c0.29-0.128,0.411-0.748,0.864-0.337c0.265,0.238,0.146,0.627-0.043,0.894
+                       c-0.599,0.848-0.144,2.641-2.245,2.136c0.485,0.797,2.642,1.289,0.204,2.082c-1.015,0.329-0.685,1.596,0.636,2.546
+                       c-0.119,0.586-1.139,0.382-1.026,1.237c0.093,0.042,0.278,0.203,0.39,0.163c1.387-0.505,1.649,1.048,2.557,1.431
+                       c0.175,0.074-0.127,0.473-0.412,0.696c-0.622,0.487-1.34,0.312-2.019,0.398c0.341,1.843-1.236,3.783-2.978,3.646
+                       c-0.431-0.035-0.675,0.041-0.643,0.372c0.136,1.399-0.561,2.002-1.928,1.974c1.384,2.645,3.489,1.703,5.6,1.467
+                       c-2.028,0.728-1.41,3.927-4.224,3.832c1.168,1.08,2.202,1.86,3.699,1.446c0.525-0.147,0.593,0.336,0.748,0.687
+                       c0.331,0.753-0.465,0.368-0.55,0.557c-0.221,0.492-1.633,0.575-0.521,1.602c0.31,0.288-0.594,0.635-1.824,0.176
+                       c0.37,1.371,1.251,2.313,1.935,3.383c1.053,1.643,2.102-0.859,3.226,0.362c-1.784,1.55-3.156,3.743-5.855,4.206
+                       c-0.465,0.079-0.491,0.855-1.096,0.591c-0.14,0.51,0.297,0.643,0.576,0.872c0.475,0.389,1.416,0.394,0.972,1.49
+                       c-0.185,0.454,0.266,0.175,0.442,0.09c1.637-0.8,3.334-1.434,5.443-1.947c-1.115,1.183-0.13,3.07-1.952,3.704
+                       c-0.068,0.025-0.132,0.257-0.095,0.35c0.335,0.814,1.187,1.01,1.849,1.327c0.705,0.336,1.672,0.638,2.34,0.409
+                       c1.036-0.353,2.336-0.024,3.135-1.08c0.057-0.076,0.376,0.14,0.24,0.345c-0.425,0.642,1.129,1.197,0.038,1.868
+                       c-1.784,1.099-0.087,0.931,0.454,1.186c-0.055,0.574-0.749,0.823-0.94,0.789c-1.992-0.353-1.659,0.871-1.765,2.156
+                       c-0.132,1.618,1.431,0.868,1.828,1.618c1.175-0.999,3.25-0.755,3.734-2.746c0.08-0.326,0.488-0.64,0.928-0.459
+                       c0.295,0.123,0.586,0.388,0.422,0.755c-0.622,1.384,0.438,1.099,1.151,1.064c-0.142,1.538-1.796,2.302-1.474,3.815
+                       c-0.83,0.24-1.019-0.68-1.647-0.648c0.732,1.975-0.828,2.615-1.816,3.84c-1.264,1.571-2.96,0.542-4.169,1.482
+                       c-0.102,0.766,1.19,0.547,0.992,1.567c-0.684-0.299-1.336-0.585-2.026-0.887c-0.333,0.641,0.55,1.051,0.359,1.674
+                       c-0.679,0.181-0.958-0.395-1.212-0.753c-1.183-1.667-1.657-0.047-2.114,0.538c-0.329,0.422-1.452,1.072-0.594,1.633
+                       c0.962,0.63,1.473,2.004,3.079,1.763c1.871-0.276,3.115-1.355,4.084-2.747c0.541-0.775,2.104-0.027,2.164-1.58
+                       c0.25,0.933,0.777,1.902,0.664,2.789c-0.1,0.791-1.055,0.196-1.796,0.234c1.13,0.385,0.701,1.077,0.775,1.82
+                       c0.085,0.867,0.902,1.454-0.561,1.921c-0.828,0.264-0.119,1.296-0.38,1.882c-0.259,0.579,0.932,2.065-1.145,1.669
+                       c-1.057-0.2,0.453,0.865-0.193,1.231c-0.709,0.16-0.475-1.007-1.183-0.89c-0.541,0.735,1.028,1.391,0.168,1.962
+                       c-0.575,0.383-0.86-0.528-1.425-0.898c-0.204,0.609,0.055,1.929-1.369,0.813c-0.831-0.651-2.218-0.742-3.322,0.013
+                       c0.661-2.191-2.752,0.331-2.293-1.985c-0.478,0.679,0.116,1.892-1.24,1.735c-0.225-0.027-0.593,0.545-0.357,0.76
+                       c1.291,1.187,0.541,2.633,0.446,4.162c0.637-0.421,1.115-1.653,1.631-0.193c0.023,0.066,0.461-0.013,0.705-0.025
+                       c-0.756-1.483,1.248-0.95,1.335-1.827c0.035-0.365,0.026-0.884,0.614-0.655c0.351,0.138,0.336,0.645,0.155,0.849
+                       c-0.957,1.071,0.147,1.088,0.635,1.528c0.567-0.512-0.333-1.165,0.431-1.59c0.707,0.778,1.595,2.016,2.135-0.179
+                       c0.446,0.324,0.9,0.437,1.49,0.513c3.29,0.42,5.662-0.933,7.492-3.526c0.313-0.446,0.682-0.557,1.326-0.152
+                       c-1.929,0.642,0.494,2.158-0.835,3.248c-0.631,0.519-0.261,0.97-1.289,0.638c-0.168-0.055-0.336-0.112-0.582-0.195
+                       c0.768,0.961,0.768,0.961,1.882,1.225c-1.931,1.871-1.931,1.871-3.061,0.774c-0.176,0.426-0.564,1.123-0.477,1.191
+                       c1.159,0.87,0.399,1.977,0.422,2.965c0.017,0.764-0.639,0.468-0.938,0.39c-0.778-0.202-1.217-0.325-0.529,0.654
+                       c0.142,0.2-0.136,0.43-0.427,0.494c-1.553,0.344-1.741,0.963-0.659,2.159c0.387,0.428,0.576,0.374,1.538-0.543
+                       c-0.106,1.232,0.365,1.726,1.512,1.519c1.3-0.234,0.611,1.067,1.159,1.59c-1.868-0.808-1.964,1.084-2.805,1.781
+                       c-0.113,0.094-1.941,0.713-0.337,1.578c0.05,0.026-0.208,0.759-0.727,0.961c-1.229,0.475-2.72,1.118-3.622,0.117
+                       c-0.782-0.869-1.659-0.219-2.26-0.857c0.495,0.974,1.102,1.68,2.249,1.856c0.35,0.053,1.076,0.199,1.163,0.476
+                       c0.445,1.421,1.084,2.182,2.572,1.172c0.867-0.587,2.253-0.496,2.793-2.197c0.089,0.236,0.244,0.469,0.257,0.712
+                       c0.059,0.964,0.11,2.074,1.389,1.943c0.619-0.063,1.331-0.218,1.994-0.812c1.673-1.497,4.189-1.216,6.082-2.402
+                       c0.1-0.062,0.386,0.04,0.499,0.151c0.225,0.224,0.068,0.457-0.077,0.68c-0.682,1.054-1.191,2.303-2.761,2.29
+                       c0.323,0.969,1.039,0.691,1.449,0.456c0.552-0.315,0.754-0.783,1.433,0.027c0.472,0.56,1.151-0.176,1.376-0.825
+                       c0.359-1.035,0.92-1.705,2.117-1.807c0.398-0.034,0.882-0.536,1.183-0.074c0.315,0.487-0.497,0.722-0.547,1.011
+                       c-0.128,0.73-1.224,1.639,0.363,2.333c-1.387,0.751-2.789,0.793-4.366,0.849c0.439,0.759,1.102,1.205,1.235,1.945
+                       c0.058,0.333,0.706,0.444,0.351,0.933c-0.709-0.542-0.786,0.582-1.378,0.508c-1.292-0.163-1.977,0.619-1.759,1.924
+                       c-0.781-0.017-0.885-0.833-1.573-1.293c0.201,0.969,1.444,2.7-1,1.782c-0.06,1.333-1.122,1.098-2.336,1.235
+                       c1.571,0.904,2.034,2.719,1.306,3.315c-1.738,1.429,0.182,1.45,0.427,2.148c1.144,3.259,2.036-0.583,3.047-0.059
+                       c0.051-1.793,1.701-1.632,2.699-2.284c0.312,1.256,0.586,2.453,0.734,3.704c0.15,1.266,1.389,0.978,2.124,0.496
+                       c0.669-0.44,1.241-0.588,2.024-0.372c0.066,1.124-2.329,1.296-1.223,3.034c-0.834,0.353-2.585-0.673-2.818,1.375
+                       c-0.062,0.544-0.227,0.871,0.414,0.893c0.584,0.021,1.062,0.231,1.265,0.733c0.901,2.22,1.85,0.844,2.528-0.053
+                       c0.919-1.211,2.11-2.025,3.334-2.827c0.231-0.152,0.595-0.099,0.826-0.131c0.75,0.769-2.245,1.586,0.18,2.158
+                       c-0.369,0.884-1.921,0.347-1.884,1.663c0.024,0.902,0.971,0.062,1.145,0.682c-0.465,0.507-1.151,0.602-1.885,0.673
+                       c0.21,0.863,1.061,0.765,1.406,1.27c-0.342,1.008-1.065-0.014-1.628,0.28c-0.791,0.415,1.25,0.78-0.089,1.148
+                       c-0.653,0.178-1.195,0.01-1.919-0.039c0.271,0.891,2.367,0.881,1.147,2.195c-0.758,0.818-1.765-0.029-2.602-0.232
+                       c-0.301,0.647,0.204,0.788,0.399,1.082c0.194,0.297,0.771,0.532,0.433,0.921c-0.231,0.269-0.851-0.251-1.218,0.392
+                       c-0.119,0.207-0.204-0.428-0.246-0.67c-0.186-1.085-0.929-0.409-1.067-0.194c-1.148,1.765-2.149,0.551-3.336-0.101
+                       c-0.325,0.693-0.728,1.365,0.418,1.811c-1.027,0.778-1.688-1.287-2.244-0.261c-0.463,0.856,0.824,1.423,1.473,1.906
+                       c0.631,0.471-0.579,1.451,0.584,1.587c-0.628,1.084,0.334,1.629,0.856,2.237c0.291,0.339,0.839,0.555,0.568,1.039
+                       c-0.3,0.538-1.048,0.435-1.358,0.158c-1.104-0.977-1.688-0.328-2.671,0.314c-0.748,0.491-2.27,0.986-3.015-0.74
+                       c-0.359,0.335,0.069,2.203-1.164,0.723c-0.276-0.328-0.733-0.522-1.132-0.73c-1.362-0.708-1.99-0.329-1.96,1.21
+                       c-0.733-0.146-1.449-0.29-2.031-0.867c-0.235,0.602,0.531,1.103,0.1,1.66c-0.208,0.268-0.412,0.554-0.04,0.804
+                       c0.958,0.647,2.782,0.695,1.762,2.654c0.168,0.049,0.334,0.104,0.502,0.144c1.677,0.392,3.36,0.988,5.085,0.64
+                       c0.852-0.17,1.236,0.266,1.797,0.443c-0.129,0.704-0.509,0.519-0.792,0.532c-0.446,0.019-1.064-0.068-1.064,0.519
+                       c0,0.31,0.315,0.729,0.75,1.016c1.323,0.878,3.016,0.397,4.466,1.327c-0.637,0.71-2.931,0.157-1.656,2.106
+                       c-0.958,0.248-0.546,1.31-1.111,1.851c0.862,0.393,1.329-0.757,2.266-0.477c0.545,0.16,0.658-0.217,0.989,0.217
+                       c0.353,0.466,0.472,0.543,0.986-0.252c0.327-0.502,0.704-0.685,1.068-0.507c0.968,0.468-0.391,0.423-0.217,0.762
+                       c0.049,0.097,0.045,0.293,0.094,0.303c1.699,0.338,2.682,2.052,4.349,2.335c0.569,0.097,1.291-0.374,1.866-0.715
+                       c1.026-0.608,2.763,0.332,3.249-1.495c0.024-0.097,0.657-0.174,0.892-0.047c2.311,1.238,4.454,0.321,6.59-0.491
+                       c0.573-0.217,1.191-0.579,1.491,0.102c0.28,0.636-0.54,0.693-0.905,0.99c-0.278,0.224-0.879,0.191-0.805,0.7
+                       c0.323,2.206-1.064,0.651-1.699,0.789c-0.289,0.443,0.669,0.595,0.257,1.089c-0.386,0.466-0.679,0.275-1.149,0.072
+                       c-1.312-0.562-1.157,1.016-1.14,1.246c0.081,1.133-0.828,2.278-1.476,1.652c-1.242-1.202-1.321,0.198-1.646,0.606
+                       c-0.464,0.579-0.323,1.884-1.057,1.936c-0.865,0.058-1.816-0.518-2.657-0.96c-0.633-0.333-1.151-0.889-1.737-1.361
+                       c-0.482,1.012-0.323,1.639,0.692,2.122c0.65,0.31,1.27,0.706,1.769,1.382c0.903,1.22,2.343,0.345,3.487,0.361
+                       c1.06,0.013,0.841,0.02,0.474,0.738c-1.113,2.178-3.06,2.495-5.161,1.108c-0.669-0.439-0.883-1.997-2.357-1.238
+                       c-0.375,0.193-0.089-0.88-0.492-1.294c-1.831,1.067-3.952,1.89-3.292,4.939c-0.971-1.8-1.962-1.169-2.935-0.335
+                       c-0.871,0.746-1.323,0.238-1.682-0.744c-0.1,0.893-0.371,1.467-1.061,1.965c-0.534-1.013-1.657-1.592-1.846-2.819
+                       c-0.605,1.168-1.383,2.342,0.007,3.507c0.189,0.159,0.265,0.434-0.075,0.604c-0.741,0.368-1.459,0.8-2.228,1.092
+                       c-0.225,0.086-0.329-0.367-0.273-0.604c0.431-1.794-1.217-3.39-0.485-5.249c0.113-0.285,0.451-1.086-0.307-1.302
+                       c-0.349-0.098-1.098-0.221-0.506,0.597c0.172,0.236,0.559,0.349,0.266,0.915c-0.852-0.806-2.298-0.278-2.791-1.791
+                       c-0.571,0.794,0.506,1.54-0.611,2.011c-0.665-0.719-0.939-1.918-2.423-2.56c1.187,1.333-0.126,2.851,1.114,3.901
+                       c0.211,0.179,0.051,0.5-0.191,0.643c-0.242,0.142-0.486,0.079-0.698-0.121c-0.421-0.397-0.848-0.785-1.428-1.321
+                       c0.12,1.635,1.7,2.434,1.606,3.998c-0.032,0.559,1.089,1.107,1.493,0.927c1.576-0.692,1.975,0.994,2.049,1.407
+                       c0.312,1.763,1.089,1.023,1.907,0.591c0.219-0.117,0.529-0.365,0.667-0.293c1.204,0.613,2.641-0.059,3.495,0.159
+                       c1.952,0.497,3.112-1.233,4.766-0.875c0.014,2.081,1.011,2.85,3.117,2.167c1.276-0.415,2.572,0.322,3.857-0.357
+                       c0.923-0.488,1.582-0.798,1.011-1.984c-0.264-0.547-0.648-1.163-0.007-2.076c0.058,1.125,2.151,1.124,0.954,2.666
+                       c0.753,0.083,0.172,1.035,0.803,1.221c1.114,0.325,0.897-1.103,1.658-1.246c0.482,0.354-0.363,1.248,0.55,1.384
+                       c0.227,0.032,0.516-0.055,0.713-0.183c0.767-0.502,0.043-1.041-0.04-1.531c-0.136-0.788-0.765-1.459-0.671-2.53
+                       c1.471,0.479,1.614,2.242,3.024,2.645c0.527,0.151,1.16,0.647,1.688,1.135c0.529,0.493,1.285-0.17,1.16-1.048
+                       c-0.07-0.493,0.189-0.978,0.45-0.725c1.14,1.107,2.4-0.079,3.527,0.338c0.754,0.278,0.95-0.543,1.442-0.683
+                       c0.679-0.193,1.419-0.172,2.3-0.261c-0.816,1.249-2.638,1.49-2.013,3.323c0.178,0.521-0.45,0.453-0.828,0.418
+                       c-0.34-0.027-0.831,0.063-0.676,0.421c0.964,2.234-1.009,1.31-1.729,1.58c-1.095,0.415-2.463,0.514-1.127,2.062
+                       c-0.943,1.082-1.361-0.899-2.812-0.125c-1.828,0.976-2.263,3.022-4.016,3.819c-0.131,0.06,0.667,0.997,1.175,1.242
+                       c0.677,0.323,0.85,0.492,0.14,0.919c-0.609,0.369-0.76,0.675,0.043,1.018c0.195,0.084,0.231,0.593-0.06,0.627
+                       c-1.136,0.128-1.987,2.044-3.542,0.401c1.066,1.52-1.079,1.938-0.713,3.304c-0.459-1.546-1.759-0.791-2.598-1.155
+                       c-0.49-0.214,0.009,0.904-0.522,1.198c-0.633-0.393-1.281-0.799-2.141-1.337c0.466,1.309,0.125,1.834-1.108,1.502
+                       c-0.219-0.059-0.431-0.325-0.675-0.029c-0.958,1.162-0.958,1.16-2.269,0.179c0.319,1,0.083,1.664-0.764,2.137
+                       c2.043-0.344,4.028,1.204,5.991-0.128c0.38-0.258,0.69-0.278,0.836,0.289c0.077,0.302-0.346,1.144,0.544,0.74
+                       c0.853-0.386-0.115-0.63-0.165-0.958c-0.026-0.173-0.005-0.353-0.005-0.637c1.319-0.046,1.801,1.932,3.256,0.982
+                       c0.032,0.793-0.856,0.615-0.686,1.253c0.165,0.009,0.405,0.096,0.511,0.013c1.058-0.836,1.816-1.003,3.25-0.16
+                       c2.011,1.181,4.383,0.483,6.487-0.549c0.344-0.171,0.707-0.308,1.028-0.514c0.395-0.251,0.635-0.023,0.731,0.272
+                       c0.046,0.138-0.177,0.489-0.351,0.555c-0.962,0.363-1.61,0.74-1.629,2.052c-0.008,0.574-1.278,1.063-2.193,0.415
+                       c-0.196,1.076,1.737,0.451,1.044,1.367c-0.677,0.891-1.278-0.85-2.164-0.542c-0.22,0.683,0.697,0.755,0.708,1.313
+                       c-0.826,0.406-1.652,0.35-2.432-0.328c-0.274,1.127,1.047,0.904,0.875,1.863c-1.442-0.487-2.848,0.278-4.319,0.108
+                       c-0.121-0.013-0.259,0.028-0.361-0.017c-0.92-0.409-0.916-0.413-1.052,0.613c-0.016,0.125-0.066,0.244-0.142,0.517
+                       c-0.297-0.468-0.486-0.902-0.796-1.221c-0.306-0.312-0.752-0.164-1.088,0.015c-0.439,0.233-0.048,0.542,0,0.82
+                       c0.094,0.567,0.083,1.178,0.294,1.695c0.195,0.478,0.299,0.43-0.317,0.581c-1.461,0.363-2.871-0.948-4.36,0.029
+                       c-0.312,0.202-0.182-0.96-0.891-1.182c-0.2,0.573-0.215,1.852-1.44,0.669c-0.157-0.149-1.071-0.749-1.699-0.041
+                       c-0.627,0.712,0.227,0.988,0.337,1.474c0.136,0.616,0.291,1.241,0.538,1.816c0.22,0.514-0.049,0.824-0.406,0.864
+                       c-0.956,0.105-1.977-0.88-2.894,0.167c-0.444-1.012-1.64-1.611-1.572-2.908c0.017-0.331-0.08-0.647-0.433-0.79
+                       c-0.475,1.936-0.144,3.089,1.346,4.209c1.109,0.834,1.697,2.052,2.63,3.351c-0.88-0.302-1.549-0.598-2.249-0.745
+                       c-0.376-0.08-1.077-0.335-1.147,0.289c-0.268,2.445-1.897,1.438-3.164,1.387c0.456,1.467,0.701,1.925,1.448,2.005
+                       c0.964,0.103,1.875,0.221,2.544,1.253c-1.444-0.161-2.926-0.189-4.317-0.555c-0.525-0.138-0.659,0.071-0.909,0.245
+                       c-0.365,0.256-0.491,0.809-0.168,0.99c0.739,0.415,0.983,2.689,2.459,0.746c0.253-0.333,0.841-0.568,0.99,0.07
+                       c0.374,1.616,1.448,1.276,2.491,0.978c0.845-0.238,1.754-0.438,2.467-0.91c0.911-0.606,1.322,0.155,2.133,0.161
+                       c-0.727,1.069-1.663,0.966-3.167,1.362c2.848,0.785,3.602,2.485,3.693,4.624c0.017,0.393-0.025,1.048,0.748,0.645
+                       c0.773-0.405,0.554,0.095,0.643,0.575c0.274,1.507,1.735,0.271,2.378,0.941c0.459,0.481-1.172,1.794,0.793,1.852
+                       c0.658,0.021,2.675,0.3,0.962,1.991c-0.149,0.148,0.375,1.329,0.465,1.315c1.72-0.292,2.746,1.985,4.483,1.252
+                       c0.887-0.372,2.159-0.285,2.376-1.745c0.125-0.822,1.007-0.592,1.07-0.139c0.185,1.323,1.948,2.195,1.024,3.827
+                       c-0.297,0.522,0.191,1.129,0.599,1.273c0.779,0.272,0.066-0.499,0.322-0.624c0.115-0.055,0.347-0.025,0.444,0.06
+                       c1.07,0.933,2.238,0.455,3.389,0.27c0.623-0.098,1.27-0.569,1.733,0.423c0.151,0.323,0.901,0.425,0.839-0.483
+                       c-0.019-0.288,0.372-0.509,0.735-0.468c0.363,0.042,0.544,0.314,0.663,0.623c0.378,0.967-0.476,2.96-1.527,3.054
+                       c-0.773,0.069-1.047,1.206-1.999,0.71c-0.204-0.106-0.129,0.359,0.047,0.525c0.185,0.172,0.302,0.592,0.215,0.553
+                       c-1.171-0.528-1.349,1.993-2.963,0.843c-0.55-0.392-2.09-0.109-3.171-0.385c-0.418-0.108-0.226,0.363-0.237,0.555
+                       c-0.066,1.287,1.276,2.116,2.667,1.864c1.31-0.237,2.593-0.803,4.009-0.518c-0.102,0.614-0.752,0.593-1.044,0.954
+                       c1.163,0.788,2.289,1.272,3.68,0.346c0.8-0.536,1.327-0.219,0.975,0.85c1.397-0.427,2.091,1.308,3.47,1.095
+                       c1.07-0.164,2.174-0.233,3.25,0.177c0.988,0.379,2.056,1.083,2.451-0.823c0.06-0.283,1.716-0.481,2.538-0.296
+                       c0.947,0.211,1.336-0.134,1.926-0.729c1.191-1.208,2.748-1.287,4.627-1.172c-1.694,1.385-2.225,3.502-4.404,4.067
+                       c0.304,0.262,0.539,0.467,0.777,0.672c0.247,0.213,0.542,0.461,0.347,0.806c-0.188,0.331-0.521,0.251-0.84,0.096
+                       c-0.849-0.413-1.715-0.198-2.601-0.139c0.017,1.311,1.417,1.239,1.837,2.106c-1.004,0.378-1.457-0.583-2.177-0.827
+                       c-0.352,0.649,0.788,0.653,0.519,1.227c-0.495,0.453-0.774-0.453-1.228-0.151c-0.215,0.654,1.249,0.664,0.586,1.419
+                       c-0.554,0.63-0.974-0.134-1.461-0.287c-1.448-0.455-2.943-0.163-4.374-0.002c-0.816,0.092-0.877-0.721-1.463-0.663
+                       c-0.47,0.984,0.77,1.223,0.91,2.194c-1.773-0.261-3.011-1.664-4.778-1.984c-0.218,0.978,1.173,1.278,0.808,2.331
+                       c-1.249-0.57-2.332-1.492-2.749-2.528c-0.484-1.196-1.08-0.942-1.894-0.878c-1.937,0.153-3.839,0.68-5.872,0.633
+                       c1.967,0.699,3.033,2.346,4.351,3.787c1.177,1.287,2.838,1.523,4.526,0.622c0.353-0.188,0.985-0.764,1.274,0.012
+                       c0.198,0.526-0.475,0.666-0.851,0.831c-1.139,0.499-2.111,1.155-2.927,2.142c-0.664,0.802-1.507,1.578-3.275,0.852
+                       c1.98,2.35,4.112,3.253,6.316,4.015c-0.201,0.485-0.53,0.729-0.945,0.595c-0.894-0.291-1.767-0.858-2.2,0.643
+                       c-0.104,0.359-0.832,0.063-1.255,0.128c-0.909,0.14-2.612-0.738-2.076,1.482c0.031,0.127-0.207,0.451-0.236,0.442
+                       c-1.122-0.393-2.179,0.817-3.375,0.11c-0.27,0.598,2.028,1.493-0.65,1.776c1.347,0.604,2.067,1.218,2.731,2.029
+                       c0.828,1.01,2.546,1,3.481,0.64c2.754-1.057,3.23-1.071,4.793,1.603c0.121,0.206,0.199,0.439,0.295,0.659
+                       c-0.565,0.342-1.079,0.347-1.546,0.081c-0.495-0.28-0.955-0.276-1.448-0.058c0.015,0.138-0.011,0.289,0.051,0.382
+                       c0.63,0.924,1.272,1.839,1.996,2.88c-1.38,0.303-2.773-0.892-4.141,0.214c-1.854,1.503-2.937-0.111-4.063-1.293
+                       c-0.286-0.298-0.6-0.575-0.9-0.862c-0.391,0.734-1.663,0.537-1.712,1.604c-0.01,0.223,0.245,0.465,0.009,0.695
+                       c-0.505,0.492-1.495,0.808-0.686,1.782c0.862,1.039,1.595-0.019,2.381-0.186c0.363-0.078,0.696-0.761,0.93-0.461
+                       c0.492,0.634,1.771-0.534,1.595,0.553c-0.106,0.651-0.03,2.605-2.143,1.429c0.548,0.912,0.953,1.661,1.709,1.552
+                       c1.534-0.225,2.313,0.454,2.829,1.784c0.711,1.835,2.68,1.593,3.837,1.474c2.05-0.21,3.844,0.397,5.715,0.788
+                       c0.558,0.117,0.909,0.256,1.336-0.182c0.157-0.161,0.626-0.302,0.662-0.254c1.38,2.007,2.988,0.222,4.473,0.303
+                       c0.477,0.026,1.029-0.166,1.573,0.418c-0.937,0.466-1.31,1.29-1.656,2.206c-0.52,1.382-2.013-0.229-2.782,1.076
+                       c-0.022,0.225,0.711,0.206,0.826,0.935c-0.845-0.81-1.453,0.84-2.345-0.087c-0.197-0.206-0.21,0.312-0.265,0.524
+                       c-0.098,0.38,0.771,0.688,0.087,1.113c-0.429-0.801-1.036,0.317-1.83-0.28c-1.186-0.897-2.761-1.911-4.5-1.293
+                       c-0.701,0.248-0.962-0.162-1.311-0.471c-0.342-0.303-0.611-0.738-1.127-0.44c-0.279,0.16-0.121,0.442,0.01,0.672
+                       c0.219,0.388-0.093,1.135,0.763,1.094c0.386-0.019,0.783-0.027,1.161,0.036c0.631,0.101,0.765,0.705,0.795,1.151
+                       c0.034,0.542-0.542,0.392-0.894,0.427c-0.381,0.039-0.738,0.046-1.103,0.258c-0.535,0.31-1.382,0.547-1.076,1.244
+                       c0.293,0.668,1.127,0.559,1.65,0.06c0.547-0.518,0.985-0.179,1.352,0.105c1.922,1.489,3.989,1.387,6.155,0.713
+                       c0.405-0.124,0.938-0.128,1.316,0.034c0.436,0.187,0.684,0.973,0.09,0.954c-1.625-0.052-1.914,1.972-3.417,1.982
+                       c-0.106,0-0.113,0.422-0.519,0.283c-2.51-0.861-1.187,1.414-1.066,1.696c0.684,1.585,1.542,3.018-0.734,4.049
+                       c-0.65,0.295-0.079,0.916,0.036,1.172c0.643,1.406,0.253,2.196-1.417,2.549c1.699,0.336,1.276,2.074,2.243,2.879
+                       c0.261,0.217-0.193,1.294-0.89,1.046c-1.78-0.633-1.646,0.35-1.279,1.556c-1.112-0.167-0.932-1.288-1.594-1.656
+                       c0.064,1.893-1.629,4.019-3.349,3.932c-0.627-0.032-1.612-0.441-1.408-1.526c0.085-0.454,0.204-0.872-0.053-1.304
+                       c-1.487,2.48-1.251,3.301,1.202,4.508c1.748,0.859,2.822,2.437,3.948,3.936c0.193,0.253,0.203,0.629-0.058,0.893
+                       c-0.263,0.265-0.579,0.209-0.889,0.057c-0.574-0.279-1.135-0.594-1.731-0.826c-0.862-0.337-1.652-0.411-1.935,0.779
+                       c-0.233,0.985-0.34,1.816,0.983,2.173c0.48,0.127,1.185,0.123,1.504,0.867c-0.854,0.732-1.752,0.046-2.599,0.062
+                       c-0.478,0.632,1.237,15.24,0.392,15.321c-0.637,0.061-1.541,1.069-2.161,0c-0.23-0.397-0.412-0.076-0.841,0
+                       c-0.1,0.017-0.257-0.113-0.215,0c0.159,0.437,0.746-0.155-0.199,0c-0.57,0.094-1.224,0.651-1.449,0
+                       c-0.65-1.886-1.155,0.313-1.737,0c-0.327,2.378-0.817-0.367-1.206,0c0.136,1.987-0.438,0.901-2.57,0
+                       c-0.441,0.568,0.567-0.35-0.095,0c-0.816,0.432-1.272,0.193-1.981,0c0.335,1.858-3.164,0.965-2.385,0
+                       c1.047-1.302,0.784,1.424,0.9,0c0.121-1.504-0.265-17.164-1.926-16.965c0.329,0.405,0.818,0.921,0.48,1.243
+                       c-0.703,0.667-0.992-0.615-1.676-0.501c-0.454,0.548-0.07,16.083-1.202,16.223c-0.6-0.678,0.43-15.592-0.021-16.349
+                       c-0.375,0.103-0.811,0.222-1.25,0.341c-0.27-0.674,0.218-0.895,0.569-1.116c0.496-0.31,0.567-0.716,0.293-1.139
+                       c-0.166-0.255-0.563-0.421-0.858-0.198c-1.735,1.315-2.706-0.444-4.173-0.856c-1.622,2.065,1.412,2.235,1.69,3.543
+                       c-2.474,0.376-4.661-2.42-5.72-6.203c0.023,1.64-3.193-0.339-2.118,2.375c-1.465-0.432-0.548-1.816-1.429-2.521
+                       c-0.875,1.399-2.043,2.647-0.414,4.622c-1.525-0.406-1.784-1.515-2.47-2.186c-0.104-0.105-0.121-1.003-0.681-0.279
+                       c-0.204,0.267-0.721,0.311-0.364,0.845c0.431,0.645,0.85,1.236,1.421,1.82c1.928,1.978,4.362,16.879,6.761,17.302
+                       c0.654,0.115,1.421-0.828,1.117,0c-0.284,0.768-1.131,0.217-1.677,0c-2.697-1.079-2.687-2.366-3.946,0
+                       c-0.013-1.247-0.391,0.212-1.756,0C497.673,549.704,468.694,549.262,468.9,547.946"/>
+       </g>
+       <g>
+               <path fill="#2A3524" d="M1065.393,256.276c0.127-0.706-0.412-1.091-0.626-1.601c-0.147-0.35-0.393,0.245-0.731,0.109
+                       c-0.418-0.166-0.788,0.331-0.69,0.82c0.038,0.194,0.134,0.32,0.333,0.346c0.218,0.03,0.293-0.131,0.385-0.29
+                       c0.102-0.177-0.189-0.677,0.309-0.507c0.351,0.119-0.057,0.396-0.04,0.61c0.003,0.049-0.015,0.098-0.032,0.196
+                       C1064.716,255.818,1064.967,256.212,1065.393,256.276 M1070.758,295.809c0.322,0.208,0.934-0.019,0.883,0.738
+                       c-0.017,0.276,0.428,0.181,0.692,0.061c0.164-0.076,0.471-0.036,0.347-0.341c-0.234-0.579-0.163-1.255-0.591-1.773
+                       c-0.11-0.132-0.151-0.323-0.368-0.315c-0.119,0.003-0.269-0.038-0.322,0.113c-0.068,0.197,0.074,0.314,0.182,0.458
+                       c0.302,0.408,0.109,0.886-0.361,0.92C1071.052,295.682,1070.87,295.608,1070.758,295.809 M1080.957,319.047
+                       c-0.881-0.159-1.669-0.348-2.479-0.281c0.523,0.671,1.281,0.315,1.907,0.516c0.421,0.134,0.89,0.12,1.338,0.169
+                       c0.825,0.089,0.207-0.695,0.542-0.901c0.042-0.027,0.115-0.03,0.132-0.064c0.04-0.083,0.099-0.204,0.067-0.261
+                       c-0.035-0.06-0.173-0.1-0.256-0.087c-0.531,0.083-0.992,0.247-0.826,0.952c-0.245-0.038-0.162-0.195-0.202-0.291
+                       c-0.153-0.378-0.442-0.378-0.788-0.358C1080.473,318.779,1080.808,318.599,1080.957,319.047 M1071.55,244.724
+                       c0.016,0.472,0.739,1.237,1.046,1.126c0.729-0.263,1.452-0.553,2.172-0.842c0.313-0.127-0.067-0.51,0.217-0.659
+                       c-0.182-0.045-0.299,0.013-0.454,0.144c-0.204,0.174-0.502,0.306-0.724-0.044c-0.126-0.198-0.41,0.08-0.522-0.168
+                       c-0.145,0.144,0.071,0.238,0.048,0.374c-0.061,0.363-0.215,0.719-0.544,0.833c-0.295,0.104-0.28-0.252-0.312-0.449
+                       c-0.025-0.161-0.17-0.14-0.203-0.109C1071.94,245.245,1071.832,244.776,1071.55,244.724 M1047.563,286.102
+                       c-0.308,0.012-0.363,0.536-0.492,0.278c-0.338-0.678-0.624,0.017-0.922-0.013c-0.229-0.025-0.244,0.344-0.177,0.564
+                       c0.062,0.204,0.167,0.449,0.453,0.369c0.319-0.087,0.677,0.052,0.969-0.178c0.221-0.176,0.361-0.08,0.46,0.178
+                       c-0.263,0.071-0.524,0.143-0.821,0.223c0.541,0.437,0.997-0.205,1.486-0.059c-0.017-0.27,0.219-0.509,0.131-0.78
+                       c-0.282-0.12-0.361,0.453-0.608,0.167C1047.844,286.621,1047.457,286.493,1047.563,286.102 M1070.622,270.946
+                       c-0.901-0.274-0.869-1.357-1.614-1.716c-0.258-0.127-0.357-0.236-0.444-0.479c-0.109-0.305-0.421-0.517-0.68-0.361
+                       c-0.297,0.178-0.467,0.536-0.108,0.884c0.066,0.065,0.114,0.247,0.146,0.241c0.72-0.128,0.826,0.617,1.243,0.909
+                       C1069.604,270.729,1070.128,270.717,1070.622,270.946 M1056.79,270.397c-0.329-0.096-0.297-0.759-0.724-0.577
+                       c-0.864,0.365-1.688,0.819-2.524,1.251c-0.222,0.115-0.166,0.295-0.109,0.517c0.09,0.346,0.355,0.109,0.518,0.212
+                       c0.236,0.149,0.37-0.136,0.353-0.239c-0.119-0.687,0.382-0.458,0.639-0.399c0.238,0.053,0.44,0.147,0.657,0.047
+                       c0.074-0.257-0.527-0.458-0.194-0.462C1055.907,270.744,1056.258,270.293,1056.79,270.397 M1057.215,320.84
+                       c-0.252-0.1-0.418-0.119-0.505-0.212c-0.24-0.255-0.459-0.307-0.646,0.025c-0.142,0.248-0.482,0.487-0.044,0.812
+                       c0.363,0.266,0.221,0.424-0.179,0.484c-0.516,0.082-0.802,0.329-0.558,0.909c0.076,0.177,0.123,0.4-0.081,0.541
+                       c-0.117,0.081-0.321,0.102-0.117,0.295c0.153,0.146,0.325,0.25,0.524,0.076c0.243-0.214,0.475-0.464,0.353-0.814
+                       c-0.091-0.253-0.006-0.389,0.191-0.487c0.276-0.138,0.317-0.382,0.404-0.649C1056.67,321.467,1056.695,321.037,1057.215,320.84
+                        M1058.791,307.844c0.03,0.569,0.557,0.705,0.724,1.071c0.155,0.344,0.405,0.244,0.629,0.214c0.288-0.038,0.29-0.28,0.309-0.521
+                       c0.035-0.443-0.18-0.874-0.042-1.316c0.096-0.306-0.055-0.431-0.316-0.573c-0.408-0.225-0.605,0.083-0.826,0.274
+                       c-0.248,0.215-0.024,0.388,0.127,0.558c0.126,0.139,0.338,0.239,0.262,0.534C1059.375,308.058,1059.092,308.058,1058.791,307.844
+                        M1069.852,292.768c0.735-0.093,1.464-0.089,2.315,0.075c-0.259-0.42,0.06-1.148-0.798-0.849
+                       c-0.066,0.024-0.238-0.125-0.299-0.291c-0.202-0.568-0.933-0.782-1.227-0.325c-0.107,0.166-0.823,0.681,0.131,0.906
+                       C1070.424,292.389,1070.053,292.603,1069.852,292.768 M1068.774,287.88c0.034-0.398-0.087-0.5-0.476-0.38
+                       c-0.42,0.128-0.887-0.106-0.811-0.504c0.095-0.505-0.195-0.517-0.441-0.522c-0.41-0.008-0.81,0.024-1.03,0.535
+                       c-0.181,0.421,0.163,0.476,0.316,0.635c0.229,0.238,0.593,0.166,0.894,0.246c0.257,0.065,0.588-0.095,0.683,0.358
+                       c0.048,0.238,0.331,0.157,0.506,0.091C1068.623,288.262,1068.844,288.16,1068.774,287.88 M1067.869,301.123
+                       c-0.015-0.308-0.138-0.621-0.32-0.878c-0.219-0.308-0.505-0.123-0.792-0.036c-0.321,0.097-0.655,0.475-0.598,0.544
+                       c0.406,0.483,0.51,0.996,0.4,1.597c-0.019,0.102,0.928,0.35,0.917,0.286C1067.387,302.077,1067.846,301.671,1067.869,301.123
+                        M1082.11,310.874c-0.028,0.031-0.055,0.06-0.083,0.091c-0.091-0.081-0.18-0.165-0.273-0.244
+                       c-0.167-0.142-0.287-0.481-0.549-0.051c-0.104,0.168-0.345,0.916-0.19,1.077c0.05,0.051,0.12,0.091,0.186,0.115
+                       c0.501,0.177,1.264-0.098,1.455-0.523c0.384-0.859,0.223-1.402-0.499-1.737c-0.138-0.064-0.283-0.183-0.408-0.081
+                       c-0.148,0.123-0.11,0.323-0.036,0.492C1081.842,310.301,1081.978,310.587,1082.11,310.874 M1065.296,288.065
+                       c-0.041-0.64-0.701-0.698-1.079-1.01c-0.359-0.295-0.561-0.078-0.574,0.3c-0.016,0.472-0.087,0.995,0.087,1.401
+                       c0.13,0.299,0.618,0.402,0.997,0.119c0.008-0.008,0.094,0.085,0.14,0.136c0.133,0.14,0.28,0.297,0.475,0.142
+                       c0.183-0.144,0.087-0.368,0.085-0.564C1065.423,288.409,1065.013,288.386,1065.296,288.065 M1072.628,288.231
+                       c-0.044-0.955-0.182-1.187-0.938-1.838c-0.174-0.152-0.308-0.228-0.51-0.091c-0.403,0.27-0.472,0.043-0.438-0.303
+                       c0.023-0.225-0.093-0.335-0.284-0.357c-0.225-0.026-0.223,0.194-0.301,0.327c-0.353,0.611,0.218,0.712,0.505,1.029
+                       C1071.199,287.592,1071.802,288.012,1072.628,288.231 M1064.098,310.429c0.714,0.997,0.785,2.035,0.452,3.147
+                       c0.259-0.036,0.527,0.098,0.616,0.49c0.085,0.371,0.446,0.333,0.694,0.459c0.085,0.043,0.185-0.02,0.147-0.077
+                       c-0.308-0.457,0.257-0.324,0.374-0.58c-0.379,0.14-0.52-0.325-0.863-0.241c-0.119,0.028,0.092,0.433-0.214,0.207
+                       c-0.129-0.094-0.272-0.295,0.021-0.481c0.093-0.06,0.097-0.387,0.03-0.543c-0.176-0.404-0.2-0.402,0.253-0.428
+                       c0.161-0.008,0.316-0.04,0.384-0.169c0.079-0.149-0.119-0.183-0.185-0.277C1065.38,311.323,1064.873,310.789,1064.098,310.429
+                        M1074.125,301.172c0.157,0.252,0.343,0.348,0.576,0.404c0.282,0.064,0.709,0.072,0.348,0.56
+                       c-0.019,0.026,0.043,0.165,0.066,0.165c0.745-0.004,1.329,0.509,2.032,0.628c0.129,0.021,0.317,0.068,0.382-0.125
+                       c0.057-0.166-0.062-0.234-0.193-0.336c-0.799-0.64-1.584-1.299-2.363-1.965c-0.111-0.094-0.219-0.141-0.321-0.077
+                       c-0.06,0.038-0.113,0.204-0.081,0.255C1074.952,301.271,1074.484,301.185,1074.125,301.172 M1065.572,326.998
+                       c0.522,0.183,0.981,0.079,1.123-0.293c0.077-0.21-0.289-0.578-0.433-0.884c-0.191-0.405-0.491-0.656-0.93-0.728
+                       c-0.292-0.049-0.37,0.081-0.262,0.346c0.03,0.076-0.044,0.659-0.095,0.709c-0.137,0.136-0.361,0.253-0.249,0.485
+                       c0.3,0.625,0.692,1.195,1.134,1.726c0.013,0.017,0.185,0.14,0.259-0.141C1066.264,327.661,1065.841,327.442,1065.572,326.998
+                        M1051.925,249.506c0.055,0.092,0.026,0.17-0.002,0.272c-0.11,0.383-0.198,0.715,0.308,0.987c0.531,0.285,0.608-0.134,0.775-0.37
+                       c0.142-0.201,0.215-0.248,0.388-0.072c0.143,0.145,0.239,0.157,0.253-0.091c0.013-0.244,0.296-0.621,0.274-0.611
+                       c-0.906,0.376-0.057-0.436-0.318-0.461c-0.044,0.025-0.41-0.088-0.436-0.141c-0.038-0.079-0.085-0.117-0.144-0.034
+                       c-0.525,0.749-0.231-0.223-0.385-0.199c-0.802,0.513-1.662,0.875-2.484,1.301C1051.172,249.95,1051.611,249.782,1051.925,249.506
+                        M1049.84,303.736c0.193-0.329,0.409-0.647,0.569-0.991c0.049-0.104,0.255-0.361,0.024-0.388
+                       c-0.156-0.017-0.334-0.304-0.578,0.006c-0.266,0.338-0.676,0.568-1.026,0.842c-0.179,0.142-0.45,0.338-0.259,0.534
+                       c0.221,0.225,0.047,0.708,0.588,0.731c0.986,0.043,1.803-0.384,2.629-0.812c0.096-0.049,0.24-0.219,0.141-0.297
+                       c-0.136-0.108-0.465-0.213-0.512-0.155C1051.022,303.683,1050.383,303.521,1049.84,303.736 M1071.374,306.964
+                       c-0.09-0.086-0.182-0.209-0.175-0.37c0.013-0.289-0.2-0.477-0.401-0.43c-0.204,0.047-0.379,0.246-0.538,0.468
+                       c-0.263,0.365,0.105,0.342,0.189,0.45c0.228,0.293,0.48,0.584,0.771,0.814c0.497,0.396,0.449,0.652-0.238,0.856
+                       c0.376-0.002,0.654,0.439,0.918,0.056c0.35-0.503,0.663-1.036,0.93-1.588c0.095-0.196,0.089-0.501-0.085-0.714
+                       c-0.312-0.384-0.638-0.759-1.005-1.194c-0.059,0.718,0.09,1.244,0.667,1.558C1072.07,307.263,1071.732,306.417,1071.374,306.964
+                        M1067.797,308.206c-0.259-0.128,0.378-0.456-0.214-0.413c-0.16,0.012-0.255-0.134-0.319-0.273
+                       c-0.329-0.728-0.628,0.192-0.947,0.017c-0.112,0.279-0.384,0.601,0.002,0.836c0.741,0.451,1.335,1.052,1.911,1.684
+                       c0.242,0.266,0.416,0.127,0.642-0.135c0.32-0.364,0.335-0.747,0.286-1.167c-0.002-0.011-0.235-0.015-0.35,0.014
+                       c-0.151,0.039-0.234,0.367-0.412,0.2c-0.215-0.202-0.008-0.406,0.144-0.573c0.115-0.131,0.121-0.281,0.022-0.41
+                       c-0.183-0.244-0.279,0.019-0.412,0.083C1068.02,308.13,1067.884,308.174,1067.797,308.206 M1059.415,246.772
+                       c-0.699,0.299-0.352,0.822-0.439,1.221c-0.034,0.159,0.104,0.497-0.255,0.357c-0.193-0.075-0.485,0.544-0.565-0.098
+                       c-0.024-0.19-0.265-0.272-0.386-0.178c-0.321,0.248-0.31,0.021-0.347-0.192c-0.019-0.104,0.058-0.291-0.098-0.287
+                       c-0.108,0.004-0.271,0.045-0.339,0.236c-0.098,0.28-0.108,0.644-0.527,0.715c-0.55,0.093-0.919,0.489-1.282,0.867
+                       c-0.287,0.298,0.093,0.585,0.055,0.883c0.246-0.071,0.59,0.061,0.694-0.31c0.07-0.247,0.145-0.302,0.317-0.067
+                       c0.133,0.179,0.172,0.088,0.163-0.076c-0.027-0.442,0.559-0.472,0.595-0.893c0.01-0.129,0.268-0.138,0.25,0
+                       c-0.042,0.327,0.071,0.374,0.328,0.278c0.326-0.122-0.13-0.318,0.074-0.493c0.541,0.27,1.072-0.058,1.62-0.136
+                       c0.225-0.032,0.58-0.143,0.391-0.662C1059.536,247.584,1059.133,247.276,1059.415,246.772 M1057.818,255.003
+                       c-0.21-0.072-0.002-0.523-0.218-0.401c-0.425,0.239-0.475-0.228-0.459-0.271c0.113-0.293-0.007-0.316-0.251-0.323
+                       c-0.182-0.004-0.367-0.154-0.48,0.132c-0.114,0.286-0.265,0.557-0.439,0.916c-0.174-0.374-0.23-0.733-0.503-0.986
+                       c-0.103-0.094,0.048-0.432-0.322-0.293c-0.276,0.102-0.381,0.276-0.31,0.54c0.037,0.145,0.308,0.242,0.09,0.435
+                       c-0.488,0.437-0.485,0.427,0.017,0.793c0.433,0.314,0.873,0.601,1.47,0.663c-0.056-0.255-0.339-0.427-0.145-0.625
+                       c0.143-0.147,0.385-0.094,0.576-0.049c0.278,0.065,0.546,0.172,0.883,0.282c-0.506-0.655,0.65-0.627,0.369-1.154
+                       C1057.793,254.602,1057.975,254.941,1057.818,255.003 M1050.781,267.716c0.222-0.303,0.201-0.714-0.069-0.859
+                       c-0.329-0.174-0.8-0.117-1.133,0.078c-0.302,0.177-0.134,0.505-0.04,0.792c0.14,0.423,0.067,0.805-0.366,1.041
+                       c-0.302-0.259-0.089-0.759-0.516-1.133c0.076,0.441,0.057,0.749-0.246,0.906c-0.312,0.163-0.238,0.363-0.066,0.538
+                       c0.164,0.164,0.316,0.304,0.329,0.562c0.042,0.857,0.718-0.034,0.943,0.336c0.161-0.105,0.325-0.208,0.48-0.321
+                       c0.024-0.017,0.026-0.104,0.005-0.136c-0.592-0.88,0.906-0.851,0.677-1.569c0.463,0.214,0.403-0.272,0.609-0.378
+                       C1051.032,267.233,1051.097,267.854,1050.781,267.716 M1067.26,242.998c0.511,0.331,0.641,0.876,1.002,1.277
+                       c-0.295,0.101-0.539,0.184-0.906,0.311c0.995,0.725,2.106,0.523,3.072,0.852c0.111-0.293-0.229-0.419-0.104-0.693
+                       c0.043-0.095-0.167-0.423-0.31-0.464c-0.286-0.079-0.474-0.235-0.484-0.534c-0.007-0.217,0.442-0.45,0.053-0.604
+                       c-0.146-0.056-0.522-0.471-0.72,0.068c-0.031,0.079-0.07-0.111-0.098-0.183c-0.188-0.464-0.637-0.348-0.987-0.453
+                       C1068.014,243.118,1067.492,242.848,1067.26,242.998 M1056.765,295.741c-0.13,0.23-0.31,0.436-0.151,0.74
+                       c0.068,0.13-0.084,0.223-0.206,0.244c-0.112,0.019-0.176-0.061-0.189-0.18c-0.117-1.048-0.887,0.116-1.178-0.346
+                       c-0.183,0.406-0.434,0.839-0.236,1.269c0.174,0.38,0.416,0.732,1.004,0.676c0.994-0.099,1.241-1.086,2.041-1.428
+                       c-0.227-0.185-0.376,0.187-0.514-0.062c0.033-0.321,0.896-0.102,0.455-0.727c-0.015-0.022,0.064-0.146,0.123-0.179
+                       c0.565-0.327,0.225-0.874,0.431-1.271c-0.475-0.067-0.113,0.714-0.697,0.502c-0.031-0.011-0.169,0.444-0.299,0.678
+                       C1057.104,296.09,1057.179,296.132,1056.765,295.741 M1072.569,305.7c0.214-0.299,0.348-0.647,0.728-0.428
+                       c0.918,0.536,1.854,0.513,2.899,0.149c-0.871-0.003-1.457-0.342-1.826-1.044c-0.181-0.342-0.725-0.316-0.788-0.778
+                       c-0.264,0.438-0.888,0-1.124,0.509c0.499-1.085,0.408-1.482-0.46-1.979c-0.1-0.059-0.179-0.22-0.311-0.142
+                       c-0.222,0.132,0.056,0.308,0.037,0.33c-0.306,0.363,0.233,0.688,0.054,1.029c-0.324,0.005-0.22-0.442-0.513-0.461
+                       c0.004,0.709,0.034,0.671,0.526,1.052c0.234,0.181,0.516,0.604,0.45,0.805C1072.093,305.184,1072.388,305.36,1072.569,305.7
+                        M1069.266,312.602c-0.116,0.336-0.601-0.193-0.492,0.37c0.006,0.029-0.1,0.112-0.153,0.112c-0.127-0.002-0.149-0.115-0.144-0.217
+                       c0.008-0.199,0.036-0.398,0.042-0.597c0.002-0.11-0.068-0.189-0.18-0.208c-0.094-0.017-0.099,0.065-0.136,0.129
+                       c-0.219,0.38-0.361,0.407-0.455,0.028c-0.1-0.397-0.647-0.602-0.454-1.128c0.015-0.041-0.112-0.69-0.497-0.626
+                       c-0.215,0.038-0.251,0.424-0.274,0.7c-0.04,0.53,0.251,0.948,0.461,1.382c0.219,0.457,0.596,0.132,0.917,0.108
+                       c0.161-0.012,0.393,0.081,0.401,0.264c0.007,0.172-0.055,0.406-0.271,0.476c-0.425,0.138-0.442,0.147-0.198,0.456
+                       c0.215,0.272,0.497,0.489,0.637,0.826c0.185,0.439,0.61,0.251,0.856,0.19c0.442-0.109,0.834-0.398,1.149-0.753
+                       c0.002,0-0.07-0.053-0.094-0.091c-0.535-0.826-1.068-1.656-1.603-2.485C1068.922,311.924,1068.57,312.536,1069.266,312.602
+                        M1057.544,284.042c-0.872-0.598-1.796,0.179-2.648-0.284c-0.121-0.066-0.125,0.103-0.153,0.191
+                       c-0.072,0.222-0.187,0.32-0.342,0.072c-0.104-0.166-0.212-0.148-0.373-0.1c-0.86,0.242-0.338,1.242-0.901,1.646
+                       c-0.04,0.027-0.055,0.167-0.025,0.199c0.104,0.104,0.085,0.278,0.256,0.345c0.768,0.314,2.142-0.009,2.651-0.69
+                       c0.134-0.178,0.301-0.257,0.459-0.346C1056.933,284.812,1057.3,284.469,1057.544,284.042 M1079.173,293.076
+                       c-0.72,0.11-1.125,0.649-1.739,0.662c-0.172,0.004-0.024,0.155,0.015,0.206c0.189,0.255,0.361,0.633,0.75,0.491
+                       c0.496-0.18,0.565,0.459,0.921,0.422c0.66-0.068,0.699-0.12,0.989,0.293c0.243,0.35,0.821,0.045,0.934,0.553
+                       c0.309-0.295,0.88-0.487,0.726-1.014c-0.245-0.845-0.525-1.697-1.375-2.205c-0.416-0.246-0.482,0.257-0.762,0.246
+                       C1079.846,293.451,1079.231,292.991,1079.173,293.076 M1072.934,329.249c0.223-0.548-0.164-0.977-0.063-1.411
+                       c0.226-0.938-0.311-1.533-0.84-2.168c-0.312-0.375-0.611-0.235-0.906-0.057c-0.367,0.221-0.682,0.506-1.173,0.445
+                       c-0.288-0.034-0.562,0.078-0.326-0.388c0.161-0.32,0.063-0.518-0.353-0.606c-0.315-0.069-1.04,0.117-0.711-0.709
+                       c0.048-0.118-0.3-0.033-0.462-0.115c-0.08-0.039-0.262,0.159-0.163,0.325c0.23,0.388,0.48,0.752,0.111,1.206
+                       c-0.068,0.085-0.011,0.286,0.119,0.406c0.397,0.363,0.618,0.881,1.329,0.91c0.382,0.017,1.174-0.184,1.191,0.708
+                       c0.002,0.1,0.372,0.198,0.574,0.287c0.102,0.044,0.231-0.021,0.303,0.142C1071.836,328.824,1072.482,328.884,1072.934,329.249
+                        M1064.824,331.452c0.038,0.282-0.074,0.542-0.269,0.651c-0.689,0.387-0.776,1.105-0.71,1.69c0.168,1.48-0.348,2.992,0.369,4.461
+                       c0.408,0.834,0.765,1.803,1.217,2.118c-0.928,0.498-1.149,1.215-0.495,1.846c0.015-0.541,0.217-0.904,0.712-1.109
+                       c0.395-0.163,0.301-0.554,0.161-0.841c-0.07-0.146-0.301-0.197-0.05-0.384c0.229-0.172,0.146-0.766,0.464-0.644
+                       c0.432,0.167-0.228,0.61,0.062,0.933c0.093-0.168,0.193-0.35,0.293-0.532c0.043,0.026,0.091,0.044,0.115,0.076
+                       c0.195,0.243-0.255,0.77,0.37,0.845c0.056,0.006-0.44,0.873-0.563,0.866c-0.659-0.042-0.366,0.524-0.272,0.62
+                       c0.251,0.254,0.182,0.391,0.057,0.68c-0.474,1.108-1.045,2.143-1.896,3.012c-0.743,0.761-1.096,1.677-1.043,2.746
+                       c0.051,1.054-0.032,2.109,0.231,3.16c0.185,0.742,0.011,0.804-0.747,0.663c-1.151-0.217-2.31-0.402-3.474-0.544
+                       c-0.395-0.047-0.452-0.196-0.404-0.526c0.312-2.094,0.612-4.193,0.669-6.304c0.049-1.878,0.423-3.76,0.179-5.625
+                       c-0.098-0.758,0.133-1.446,0.061-2.177c-0.075-0.776-0.013-1.563-0.019-2.347c-0.006-0.938-0.082-0.985-0.96-0.668
+                       c-0.174,0.062-0.416,0.176-0.522-0.055c-0.085-0.189,0.123-0.323,0.28-0.387c1.503-0.617,1.284-1.963,1.336-3.179
+                       c0.023-0.516-0.211-0.671-0.714-0.428c-0.27,0.13-0.734,0.485-0.845,0.213c-0.174-0.422,0.412-0.436,0.688-0.583
+                       c0.603-0.32,0.965-0.743,0.896-1.474c-0.055-0.582,0.212-1.18-0.093-1.747c-0.317-0.002-0.544,0.375-0.907,0.229
+                       c0.006-0.352,0.384-0.269,0.514-0.481c0.204-0.333,0.145-0.56-0.227-0.577c-0.189-0.008-0.295-0.08-0.331-0.226
+                       c-0.051-0.198,0.087-0.351,0.233-0.443c0.455-0.279,0.713-0.689,0.794-1.202c0.03-0.199,0.084-0.42-0.216-0.562
+                       c-0.329-0.157-0.296,0.049-0.383,0.233c-0.095,0.196-0.244,0.058-0.378-0.003c-0.479-0.221-0.97-0.43-1.202-0.951
+                       c-0.186-0.419-0.554-0.397-0.79-0.203c-0.271,0.226-0.569,0.65-0.422,0.969c0.161,0.346,0.533-0.019,0.785-0.098
+                       c0.201-0.064,0.347-0.289,0.58-0.068c0.155,0.147,0.062,0.272-0.038,0.389c-0.166,0.195-0.068,0.638-0.532,0.564
+                       c-0.158-0.024-0.446-0.219-0.444,0.095c0,0.328-0.029,0.748-0.324,0.706c-0.369-0.049-0.448-0.481-0.29-0.882
+                       c-0.427,0.47-0.194,1.225-0.822,1.597c-0.155,0.091,0.165,0.239,0.293,0.333c0.304,0.226,0.741,0.299,0.923,0.818
+                       c-0.439-0.093-0.807-0.181-1.182-0.246c-0.132-0.023-0.295-0.085-0.374,0.126c-0.07,0.187,0.064,0.246,0.155,0.363
+                       c0.367,0.474,0.779,0.933,1.039,1.463c0.254,0.521,0.411,1.067,0.989,1.338c0.091,0.042,0.236,0.129,0.176,0.282
+                       c-0.023,0.063-0.139,0.155-0.153,0.145c-0.715-0.467-0.847,0.444-1.314,0.557c-0.155,0.036-0.244,0.304-0.468,0.066
+                       c-0.229-0.238-0.339,0.057-0.239,0.146c0.385,0.348,0.013,0.851,0.401,1.225c-0.499-0.055-0.901-0.099-1.304-0.144
+                       c-0.051,0.434,0.308,0.438,0.529,0.555c0.204,0.109,0.249,0.266,0.157,0.432c-0.118,0.212-0.242-0.01-0.367-0.042
+                       c-0.168-0.043-0.27-0.194-0.531-0.056c-0.332,0.175-0.442,0.005-0.334-0.398c0.024-0.092,0.049-0.232,0.002-0.291
+                       c-0.467-0.583-0.357-0.893,0.396-1.021c0.239-0.039,0.242-0.348,0.216-0.583c-0.163,0.03-0.38-0.184-0.482,0.124
+                       c-0.081,0.243-0.331,0.326-0.477,0.178c-0.173-0.176-0.115-0.489-0.054-0.721c0.051-0.191,0.272-0.283,0.48-0.235
+                       c0.117,0.027,0.213,0.133,0.325,0.19c0.145,0.072,0.24-0.025,0.315-0.127c0.101-0.138,0.031-0.204-0.107-0.276
+                       c-0.403-0.214-0.521-0.623-0.635-1.019c-0.085-0.301,0.076-0.563,0.336-0.631c0.367-0.098,0.334-0.299,0.274-0.7
+                       c-0.501,0.844-1.33,0.679-1.984,0.777c-0.873,0.134-0.938,0.033-1.475,0.373c-0.302,0.195-0.207,0.383-0.075,0.694
+                       c-0.382-0.105-0.695-0.397-1.072-0.138c0.169,0.205,0.372-0.122,0.543,0.14c-0.263,0.833-1.257,1.096-1.603,1.978
+                       c-0.308-0.398,0.117-0.641-0.075-0.906c-0.281-0.049-0.171,0.344-0.396,0.365c-0.085-0.006-0.162-0.078-0.107-0.13
+                       c0.194-0.191-0.05-0.384,0.026-0.569c-0.204-0.035-0.381,0.059-0.524,0.17c-0.525,0.412-1.162,0.618-1.733,0.945
+                       c-0.027,0.324,0.435,0.376,0.341,0.723c-0.339,0.151-0.361-0.222-0.546-0.353c0.007,0.375-0.331,0.645-0.26,1.091
+                       c-0.147-0.585-0.691-0.148-0.912-0.457c-0.248,0.227-0.391,0.499-0.365,0.848c0.008,0.112,0.025,0.319-0.14,0.281
+                       c-0.461-0.103-0.928-0.094-1.389-0.145c-0.146-0.015-0.36-0.255-0.374-0.411c-0.021-0.194,0.24-0.185,0.41-0.231
+                       c0.238-0.066,0.463-0.177,0.697-0.266c0.246-0.093,0.423-0.312,0.299-0.513c-0.108-0.172,0.123-0.597-0.365-0.536
+                       c-0.206,0.024-0.442-0.197-0.418-0.357c0.03-0.197,0.297-0.276,0.524-0.274c0.174,0,0.34-0.004,0.502,0.107
+                       c0.639,0.44,1.035,0.134,1.441-0.736c-1.314,1.459-1.694-0.405-2.64-0.453c0.062,0.398,0.644,0.988-0.331,0.876
+                       c-0.331-0.039-0.371,0.263-0.331,0.559c0.017,0.125,0.066,0.329-0.125,0.388c-0.266,0.081-0.134-0.286-0.323-0.312
+                       c-0.159,0.041-0.134,0.177-0.161,0.298c-0.038,0.169,0.121,0.495-0.193,0.464c-0.315-0.03-0.374-0.394-0.253-0.596
+                       c0.197-0.329,0.05-0.57-0.069-0.868c-0.146,0.122-0.129,0.466-0.398,0.378c-0.245-0.079-0.165-0.338-0.162-0.532
+                       c0.007-0.543-0.66-1.07-1.302-0.853c0.444-0.413,0.062-0.823,0.221-1.204c0.057-0.136-0.072-0.202-0.21-0.24
+                       c-0.204-0.055-0.197,0.07-0.206,0.198c-0.028,0.335-0.348,0.449-0.575,0.837c0.018-0.954-0.51-0.757-0.865-0.534
+                       c-0.441,0.278-0.822-0.222-1.255,0.019c-0.102,0.058,0.229-0.286,0.024-0.393c-0.069-0.037-0.234,0.15-0.366,0.178
+                       c-0.165,0.032-0.342,0.008-0.516,0.008c0.028-0.532,0.508-0.451,0.769-0.631c0.741-0.513,1.577-0.8,2.481-0.876
+                       c0.4-0.032,0.524,0.375,0.772,0.548c0.406,0.281,1.058,0.064,1.279,0.66c0.025,0.07,0.163,0.117,0.19-0.051
+                       c0.064-0.378,0.479-0.384,0.699-0.759c0.038,0.592,0.472,0.84,0.661,1.263c0.147,0.329,0.815-0.104,1.024-0.335
+                       c0.216-0.236,0.386-0.477,0.679-0.419c0.335,0.065,0.223,0.273,0.127,0.553c-0.081,0.244,0.368,0.12,0.534,0.278
+                       c0.059,0.053,0.331,0.229,0.339-0.007c0.013-0.415,0.331-0.335,0.531-0.396c0.554-0.171,0.962-0.448,1.19-1.022
+                       c0.148-0.365,0.46-0.389,0.739-0.055c0.067,0.08-0.226,0.356,0.126,0.248c0.126-0.04,0.202-0.182,0.111-0.371
+                       c-0.214-0.452-0.431-0.874-1.076-0.83c-0.187,0.198,0.119,0.636-0.298,0.826c-0.212-0.251,0.047-0.622-0.21-0.912
+                       c-0.015,0.907-0.939,0.421-1.283,0.943c-0.062-0.378,0.06-0.986-0.607-0.58c-0.184,0.112-0.293,0.031-0.357-0.111
+                       c-0.102-0.219,0.015-0.42,0.193-0.515c0.28-0.151,0.601-0.227,0.892-0.363c0.254-0.119,0.531-0.217,0.11-0.551
+                       c-0.293-0.23-0.348-0.8-0.925-0.551c-0.023,0.009-0.043,0.025-0.066,0.038c-0.077-0.834-1.141-0.312-1.282-1.044
+                       c-0.213,0.205-0.19,0.409-0.132,0.547c0.178,0.423,0.488,0.864-0.369,0.787c0.002,0.514-0.513,0.691-0.691,1.058
+                       c-0.221,0.454-0.883,0.325-0.971,0.862c-0.188-0.554-0.547-0.041-0.794-0.13c-0.541-0.197,0.042-0.623-0.205-0.982
+                       c-0.073,0.897-0.782,0.625-1.256,0.759c-0.27,0.077-0.295-0.079-0.214-0.357c0.106-0.377,0.547-0.367,0.652-0.682
+                       c0.05-0.151,0.331-0.361-0.019-0.481c-0.151-0.053-0.353-0.12-0.47,0.14c-0.071,0.153-0.069,0.425-0.358,0.404
+                       c0.143-0.356-0.678-0.121-0.355-0.587c-0.661-0.034-0.049-0.449-0.189-0.642c-0.047-0.013-0.119-0.051-0.134-0.036
+                       c-0.17,0.174-0.329,0.355-0.492,0.534c-0.181-0.623-0.904-0.379-1.213-0.751c-0.202-0.244-0.02-0.459,0.265-0.428
+                       c1.041,0.107,1.856-0.765,2.905-0.634c0.434,0.055,0.153-0.387,0.321-0.578c0.382,0.579,0.835,0.146,1.278,0.108
+                       c-0.108-0.284-0.424-0.187-0.66-0.404c0.492-0.331,0.954-0.468,1.484-0.181c0.102,0.055,0.228,0.241,0.308,0.107
+                       c0.364-0.611,0.992-0.224,1.463-0.418c0.331-0.136,0.835-0.025,0.788-0.647c-0.009-0.139,0.157-0.243,0.337-0.118
+                       c0.16,0.114,0.32,0.239,0.502,0.306c0.92,0.344,2.104-0.389,2.157-1.396c0.014-0.287,0.281-0.557,0.069-0.853
+                       c-0.869,0.253-1.251-0.188-1.105-1.305c-0.374,0.07,0.022,0.591-0.416,0.611c-0.289-0.201,0.043-0.439,0.028-0.736
+                       c-0.36,0.074-0.639,0.512-1.089,0.231c-0.162-0.102-0.487-0.045-0.508-0.305c-0.019-0.228,0.214-0.393,0.431-0.465
+                       c0.851-0.28,1.567-0.895,2.561-0.98c-0.389-0.536-0.359-0.873,0.32-1.013c0.659-0.136,1.115-0.545,1.256-1.317
+                       c-0.839,0.074-1.219,0.891-1.914,1.156c-0.601-0.691,0.247-1.446-0.07-2.163c-0.044-0.099,0.081-0.224,0.169-0.206
+                       c1.511,0.283-0.385-0.842,0.36-0.869c-0.145-0.066-0.306-0.115-0.381,0.068c-0.097,0.229-0.262,0.242-0.417,0.133
+                       c-0.143-0.101-0.077-0.267-0.007-0.41c0.374-0.776,0.643-1.627,1.24-2.257c0.24-0.254-0.18-0.267-0.019-0.521
+                       c0.34-0.532,0.705-0.816,1.34-0.725c0.162,0.023,0.378,0.042,0.381-0.229c0.002-0.117,0.05-0.251-0.102-0.329
+                       c-0.187-0.094-0.319-0.115-0.337,0.162c-0.008,0.103-0.143,0.014-0.165,0.033c-0.424,0.346-0.633-0.172-0.922-0.269
+                       c-0.36-0.119-0.808-0.172-1.066-0.537c-0.161-0.225-0.214-0.103-0.261,0.083c-0.051,0.208-0.221,0.297-0.507,0.401
+                       c0.182-0.507,0.335-0.942,0.494-1.375c0.081-0.22,0.134-0.561-0.082-0.568c-0.221-0.01-0.412-0.497-0.663-0.07
+                       c-0.142,0.239-0.276-0.074-0.446-0.029c-0.282,0.072-0.463,0.136-0.297,0.481c0.176,0.369-0.302,0.819,0.021,1.114
+                       c0.609,0.554-0.034,1.424,0.573,1.96c0.104,0.092,0.062,0.317-0.153,0.43c-0.238,0.123-0.382,0.077-0.46-0.161
+                       c-0.055-0.17-0.185-0.214-0.329-0.308c-0.045,0.498-0.086,0.944-0.128,1.38c-0.148,0.177-0.325-0.818-0.456,0.026
+                       c-0.021,0.134-0.172,0.297-0.336,0.227c-0.212-0.093-0.032-0.242,0-0.372c0.043-0.17,0.104-0.402-0.068-0.489
+                       c-0.514-0.255-0.325-0.638-0.239-1.033c-0.33,0.529-1.256,0.498-1.205,1.357c-0.608,0.032-0.663,0.479-0.756,0.941
+                       c-0.019,0.1-0.353,0.24-0.474,0.191c-0.154-0.061-0.284-0.297-0.097-0.497c0.261-0.276,0.142-0.494-0.064-0.688
+                       c-0.119,0.086-0.272,0.148-0.344,0.262c-0.113,0.177-0.248,0.274-0.422,0.157c-0.139-0.097-0.084-0.266-0.015-0.411
+                       c0.125-0.252,0.155-0.511,0.082-0.78c-0.361-0.009-0.165,0.404-0.406,0.459c-0.273-0.38-0.256-0.81-0.179-1.261
+                       c-0.362,0.068-0.284,0.475-0.638,0.532c-0.002-0.47-0.172-0.854-0.852-0.863c1.059-0.528,1.932-1.169,3.046-0.6
+                       c0.189,0.095,1.27-0.757,1.277-0.955c0.01-0.307-0.305-0.127-0.432-0.301c-0.312-0.43-0.512-0.995-1.146-1.109
+                       c-0.096-0.016-0.218-0.149-0.172-0.296c0.048-0.15,0.195-0.145,0.314-0.15c0.337-0.011,0.575-0.007,0.62-0.501
+                       c0.059-0.631,0.775-0.564,1.172-0.642c0.456-0.089,0.622-0.004,0.178-0.397c-0.072-0.064,0.136-0.163-0.004-0.257
+                       c-0.272,0.026-0.191,0.475-0.513,0.449c-0.015-0.651-0.566-1.054-1.303-0.935c-0.125-0.571,0.658-0.449,0.71-1.017
+                       c-0.319,0.275-0.633,0.339-0.963,0.431c-0.135-0.319,0.249-0.43,0.275-0.674c0.014-0.209-0.905,0.555-0.308-0.293
+                       c0.04-0.056-0.242,0.138-0.378-0.007c-0.113-0.121-0.11-0.223,0.017-0.305c0.269-0.175,0.543-0.495,0.87-0.37
+                       c0.988,0.378,2.071,0.102,3.075,0.53c0.342,0.146,0.639,0.466,1.077,0.472c0.227,0.004,0.359-0.051,0.382-0.218
+                       c0.043-0.302-0.291-0.05-0.405-0.241c0.25-0.176,0.531-0.102,0.777-0.106c0.677-0.013,1.034-0.466,1.425-0.91
+                       c0.227-0.255,0.486-0.502,0.875-0.515c0.452-0.013-0.121-0.494,0.255-0.582c0.08-0.017-0.056-0.071-0.1-0.103
+                       c-0.223-0.161-0.221,0.096-0.314,0.173c-0.23,0.195-0.616,0.18-0.653,0.763c-0.237-0.483,0.321-1.257-0.617-0.952
+                       c-0.141,0.048-0.157-0.139-0.087-0.268c0.12-0.214,0.318-0.405,0.199-0.685c-0.27,0.03-0.195,0.33-0.354,0.441
+                       c-0.117,0.081-0.096,0.344-0.338,0.263c0.305-0.604-1.083,0.338-0.52-0.581c0.188-0.308-0.289-0.029-0.369-0.195
+                       c0.509-0.365,0.903-0.799,0.993-1.386c-1.208,0.167-1.78,1.208-2.527,2.039c-0.255-0.317,0.31-0.617-0.015-0.73
+                       c-0.174-0.059-0.618-0.32-0.843,0.183c-0.081,0.181-0.58,0.538-0.567-0.212c0.002-0.115-0.606-0.183-0.036-0.638
+                       c-0.433,0.27-0.682,0.583-1.107,0.434c0.072-0.312,0.245-0.511,0.527-0.677c0.314-0.19,0.735-0.408,0.776-0.769
+                       c0.094-0.821,0.547-0.473,0.934-0.359c0.163,0.047,0.373,0.227,0.454,0.011c0.123-0.323-0.23,0.072-0.302-0.155
+                       c-0.087-0.281-0.102-0.494,0.164-0.664c-0.23-0.217-0.497,0.204-0.697-0.125c-0.159-0.263,0.126-0.336,0.167-0.603
+                       c-0.43,0.239-0.789,0.287-1.284,0.167c-0.558-0.136-0.876-0.396-1.159-0.794c-0.206-0.293-0.427,0.085-0.678-0.055
+                       c0.122-0.261,0.2-0.625,0.523-0.515c0.559,0.187,1-0.178,1.503-0.21c0.051-0.004,0.419-0.049,0.158-0.316
+                       c-0.032-0.032,0.004-0.13,0.008-0.198c0.941,0.278,1.062-1.251,2.196-0.927c0.505,0.144,1.52-0.03,1.952-0.851
+                       c0.08-0.152,0.263-0.267,0.14-0.442c-0.119-0.17-0.234-0.01-0.368,0.053c-0.45,0.216-1.125-0.335-1.072-0.855
+                       c0.059-0.581-0.434-1.098-0.952-0.924c-0.362,0.121-0.796,0.195-1.023,0.559c-0.104,0.166-0.187,0.124-0.293,0.062
+                       c-0.346-0.204-0.643-0.315-1.115-0.267c-0.522,0.057,0.104-0.358-0.041-0.626c-0.233,0.138-0.437,0.358-0.777,0.406
+                       c0.019-0.382,0.463-0.647,0.26-1.043c-0.096,0.065-0.191,0.127-0.346,0.231c0.16-0.519,0.273-0.999-0.536-0.994
+                       c0.627-0.277,1.227-0.302,1.801-0.05c0.633,0.279,1.089-0.112,1.587-0.343c0.337-0.153,0.069-0.426,0.04-0.622
+                       c0.229-0.095,0.344,0.323,0.539,0.051c0.1-0.142,0.389-0.208,0.257-0.445c-0.13-0.237-0.28-0.019-0.436,0.021
+                       c-0.389,0.099-0.779,0.165-0.791,0.692c-0.666-0.319-0.143-0.95-0.518-1.531c-0.105,0.456-0.19,0.742-0.236,1.033
+                       c-0.062,0.409-0.36,0.223-0.576,0.253c-0.055-0.437-0.459-0.177-0.499-0.21c-0.734-0.602-0.606,0.341-0.969,0.499
+                       c-0.069-0.408-0.647-0.237-0.751-0.669c-0.004-0.017-0.17-0.03-0.187-0.002c-0.515,0.85-0.34,0.178-0.563-0.155
+                       c-0.152-0.224-0.592-0.319-0.596-0.747c-0.296,0.06-0.229,0.417-0.487,0.485c-0.062-0.089-0.133-0.186-0.195-0.286
+                       c-0.14-0.232-0.818-0.217-0.488-0.586c0.361-0.402,0.972-0.584,1.482-0.84c0.019-0.01,0.123,0.2,0.217,0.27
+                       c0.107,0.077,0.35,0.162,0.354,0.155c0.242-0.491,0.686-0.369,1.1-0.426c0.284-0.04,0.442-0.155,0.69,0.146
+                       c0.183,0.224,1.37-0.315,1.493-0.692c0.098-0.306,0.474-0.524,0.278-0.955c-0.083-0.182,1.003-0.431,1.228-0.235
+                       c0.537,0.46,1.225,0.689,1.731,1.234c0.226,0.244,0.817,0.097,1.091,0.561c0.108,0.183,0.339-0.057,0.499-0.176
+                       c0.408-0.304,0.739-0.685,1.376-0.608c0.486,0.061,0.584-0.628,0.984-0.844c0.101-0.053,0.162-0.177,0.241-0.268
+                       c0.659,0.58,0.994-0.378,1.612-0.331c-0.086,0.312-0.165,0.606-0.272,1.001c0.315-0.198,0.741,0.14,0.894-0.261
+                       c0.096-0.253-0.329-0.03-0.445-0.258c0.101-0.212,0.282-0.341,0.543-0.375c0.098-0.011,0.232-0.001,0.283-0.06
+                       c0.59-0.663,0.592-0.642,1.371-0.862c0.476-0.134,0.457-0.769,0.884-0.989c0.193,0.22-0.098,0.344-0.108,0.527
+                       c-0.009,0.17-0.37,0.317-0.005,0.517c0.315,0.174,0.572,0.158,0.803-0.116c0.038-0.047,0.07-0.166,0.055-0.175
+                       c-0.129-0.083-0.49,0.081-0.322-0.303c0.089-0.2,0.356-0.18,0.502-0.304c0.783-0.659,1.434-1.404,1.421-2.562
+                       c-0.263,0.183-0.581,0.076-0.866,0.139c-0.831,0.19-1.595,0.569-2.323,0.998c-0.546,0.321-1.117,0.405-1.716,0.357
+                       c-0.2,0.456,0.501,0.542,0.342,0.969c-0.318,0.007-0.372-0.387-0.663-0.419c-0.183,0.318,0.043,0.643,0.07,1.061
+                       c-0.556-0.315-0.002-1.251-0.858-1.2c-0.101,0.291,0.185,0.442,0.247,0.672c0.042,0.147,0.072,0.321-0.056,0.422
+                       c-0.227,0.178-0.179-0.096-0.265-0.167c-0.193-0.159-0.119,0.109-0.161,0.16c-0.234,0.291,0.019,0.683-0.164,0.991
+                       c-0.512-0.077-0.012-0.753-0.453-0.796c-0.298-0.031-0.53,0.366-0.902,0.272c-0.775-0.195-0.516,0.636-0.998,1.033
+                       c0.348-0.78-0.484-0.648-0.533-1.087c-0.488,0.375-1.131-0.026-1.671,0.364c0.055-0.461,0.174-0.937-0.255-1.22
+                       c-0.429-0.281-0.35,0.552-0.811,0.369c0.059-0.147,0.121-0.304,0.212-0.539c-0.456,0.319-0.539,0.347-0.68-0.052
+                       c-0.105-0.298-0.339-0.317-0.505-0.464c-0.174-0.153-0.448-0.175-0.371-0.545c0.038-0.174,0.134-0.619-0.437-0.417
+                       c-0.291,0.104-0.356-0.257-0.145-0.492c0.289-0.32,0.501-0.659,0.411-1.171c-0.237,0.558-0.619,0.994-1.199,0.824
+                       c-0.219-0.065-0.334-0.604-0.253-1.18c-0.768,1.048-0.985,0.234-1.446-0.291c0.701,0.105,1.2-0.491,1.894,0.072
+                       c0.296,0.239,0.962,0.031,1.098-0.678c0.614,0.793,1.409,0.728,2.234,0.577c-0.239-0.338-0.212-0.46,0.319-0.675
+                       c0.577-0.233,1.395-0.082,1.741-0.828c0.07-0.151,0.073-0.285,0.028-0.458c-0.215,0.093-0.427,0.183-0.677,0.289
+                       c0.114-0.728-1.307-1.097-0.238-2.016c-0.501,0.178-0.521,0.837-0.721,0.758c-0.337-0.133-0.463-0.021-0.72,0.141
+                       c0.086-0.306,0.196-0.609,0.251-0.921c0.03-0.17,0.13-0.425-0.102-0.511c-0.199-0.076-0.294,0.124-0.361,0.291
+                       c-0.029,0.068-0.062,0.136-0.1,0.2c-0.095,0.159-0.257,0.285-0.41,0.185c-0.122-0.081-0.076-0.278,0.047-0.4
+                       c0.236-0.23,0.251-0.5,0.181-0.836c-0.272,0.363-0.348,0.374-1.017,0.172c0.18-0.28,0.552-0.449,0.496-0.912
+                       c-0.386,0.03-0.618,0.545-1.091,0.342c0.064-0.083,0.106-0.18,0.178-0.212c0.178-0.081,0.455-0.087,0.472-0.309
+                       c0.017-0.244-0.291-0.284-0.449-0.416c-0.137-0.107-0.436-0.028-0.375-0.349c0.025-0.125,0.049-0.256,0.185-0.306
+                       c0.227-0.086,0.433,0.071,0.527,0.196c0.254,0.335,0.56,0.527,0.936,0.713c0.28,0.141,0.346-0.062,0.414-0.117
+                       c0.113-0.088,0.087-0.302-0.119-0.329c-0.193-0.024-0.32-0.124-0.446-0.249c-0.104-0.104-0.113-0.195-0.028-0.319
+                       c0.073-0.108,0.208-0.274,0.266-0.187c0.429,0.62,1.062-0.398,1.516,0.219c0.138,0.187,0.189-0.212,0.348-0.272
+                       c0.157-0.057,0.031-0.208-0.014-0.21c-0.826-0.013-0.128-0.697-0.495-0.995c0.101,0.642-0.472,0.506-0.754,0.709
+                       c-0.314,0.227-0.011-0.275-0.219-0.256c0.063-0.229,0.272-0.557-0.268-0.339c-0.086,0.034-0.199-0.166-0.05-0.335
+                       c0.178-0.2,0.316-0.437,0.488-0.683c-0.359-0.005-0.512-0.086-0.588-0.332c-0.034-0.11-0.11-0.1-0.164-0.089
+                       c-0.716,0.14-0.369-0.4-0.432-0.674c0.3,0.004,0.624-0.064,0.891,0.028c0.287,0.101,0.425,0.555,0.852,0.392
+                       c0.112,0.481,0.157,0.104,0.244-0.013c0.085-0.116,0.017-0.278,0.07-0.35c0.153-0.208,0.359-0.374,0.543-0.559
+                       c0.098,0.224,0.179,0.463,0.532,0.444c-0.183,0.287-0.896,0.306-0.324,0.795c0.022,0.02,0.005,0.092,0.002,0.139
+                       c-0.017,0.195-0.638,0.01-0.283,0.346c0.205,0.193,0.57,0.477,1.002,0.178c0.324-0.225,0.518-0.544,0.403-0.995
+                       c-0.023-0.093-0.015-0.195-0.011-0.293c0.011-0.32-0.684-0.525-0.424-0.554c0.46-0.048,1.153-0.228,1.548,0.371
+                       c-0.057,0.051-0.085,0.091-0.125,0.106c-0.215,0.091-0.529-0.121-0.659,0.178c-0.032,0.076,0.134,0.238,0.208,0.361
+                       c0.183-0.282,0.541,0.069,0.803-0.34c1.068-1.666,2.433-3.041,4.307-3.835c0.46-0.194,0.772-0.183,1.128,0.189
+                       c0.135,0.14,0.292,0.587,0.634,0.273c0.132-0.122,0.472-0.119,0.38-0.386c-0.136-0.383-0.204-0.027-0.297,0.057
+                       c-0.053,0.049-0.11,0.092-0.255,0.212c0.129-0.877-0.408-0.926-0.987-0.931c-0.35-0.002-0.72,0.028-0.767-0.621
+                       c-0.282,0.685-0.282,0.685-0.62,0.418c-0.07,0.189-0.106,0.377-0.031,0.57c0.035,0.083,0.143,0.204-0.028,0.219
+                       c-0.642,0.054-1.069,0.387-1.381,0.939c-0.115,0.202-0.525,0.162-0.584,0.108c-0.244-0.218-0.408-0.122-0.575,0.045
+                       c-0.346,0.346-0.489-0.142-0.742-0.191c-0.607-0.119-0.598-0.176-1.03,0.272c-0.178-0.117-0.036-0.327-0.142-0.473
+                       c-0.284,0.122-0.456,0.361-0.597,0.615c-0.316-0.165-0.429-0.604-0.895-0.579c-0.113,0.005-0.368-0.341-0.342-0.379
+                       c0.148-0.217,0.245-0.501,0.536-0.594c0.23-0.074,0.389-0.089,0.182-0.438c-0.281-0.473,0.49-0.855,0.228-1.398
+                       c-0.207,0.276-0.163,0.779-0.666,0.851c-0.121-0.398,0.38-0.458,0.367-0.812c-0.267-0.152-0.675,0.614-0.871-0.086
+                       c-0.017-0.057-0.138-0.135-0.133-0.142c0.505-0.659-0.355-0.481-0.458-0.846c0.436,0.136,0.885,0.072,1.297,0.34
+                       c0.159,0.104,0.446,0.392,0.617,0.002c0.16-0.368-0.174-0.409-0.401-0.451c-0.767-0.138-0.146-0.61-0.233-0.913
+                       c-0.258-0.035-0.153,0.345-0.393,0.343c-0.285-0.255,0.21-0.897-0.472-1.064c0.011-0.226,0.249-0.427,0.484-0.775
+                       c-0.407,0.18-0.709,0.312-1.07,0.474c0.039-0.527,0.525-1.052-0.299-1.45c0.958-0.182,1.38,0.598,2.085,0.64
+                       c0.228,0.013,0.255,0.081,0.376-0.155c0.124-0.244,0.34-0.004,0.388,0.126c0.332,0.892,0.322,0.92,1.417,0.876
+                       c0.454-0.018,0.066,0.659,0.627,0.616c0.221-0.015,0.466-0.752,0.728-0.063c0.079,0.203,0.299,0.186,0.465,0.155
+                       c0.384-0.071,0.754-0.257,0.93,0.342c0.066,0.226,0.784-0.122,0.852-0.475c0.033-0.17-0.019-0.353,0.307-0.426
+                       c-0.262,0.726,0.51,0.916,0.714,1.427c-0.161-0.659-0.321-1.316-0.482-1.974c-0.484,0.315-0.775,1.234-1.605,0.499
+                       c-0.051-0.045-0.26,0.427-0.503,0.15c-0.138-0.159-0.185-0.4-0.266-0.604c-0.159-0.413-0.62-0.276-0.913-0.507
+                       c-0.48-0.384-0.483,0.403-0.879,0.5c0.169-0.71-0.193-0.871-0.814-0.984c-0.297-0.055-1.01-0.214-0.588-1.016
+                       c-0.35,0.208-0.574,0.342-0.813,0.485c-0.115-0.28,0.222-0.499,0.019-0.761c-0.262,0.2-0.245,0.649-0.633,0.749
+                       c-0.183-0.285,0.245-0.338,0.215-0.532c-0.576-0.223-0.958-0.772-1.766-0.855c0.71-0.4,1.283,0.443,1.782-0.083
+                       c0.276-0.291,1.088,0.134,0.932-0.708c-0.227-0.051-0.343,0.436-0.549,0.179c-0.185-0.228-0.145-0.57,0.077-0.874
+                       c-0.343,0.032-0.247,0.409-0.563,0.451c0.184-0.327-0.221-0.541-0.09-0.937c-0.241,0.191-0.429,0.341-0.618,0.493
+                       c0.147-0.238-0.407-0.564,0.093-0.759c-0.101-0.189-0.167-0.419-0.316-0.555c-0.103-0.096-0.265-0.14-0.294-0.298
+                       c-0.007-0.05,0.065-0.159,0.109-0.163c0.189-0.021,0.338-0.011,0.534,0.132c0.713,0.519,1.624,0.536,2.446,1.037
+                       c-0.078-0.551-0.501-0.519-0.663-0.768c-0.129-0.199-0.499-0.293-0.2-0.672c0.207-0.263,0.279-0.287,0.606-0.125
+                       c0.58,0.287,1.655-0.427,1.521-1.052c-0.066-0.319,0.647-0.42,0.103-0.664c-0.172-0.078-0.127-0.468-0.197-0.343
+                       c-0.202,0.362-0.979-0.7-0.833,0.371c0.016,0.123-0.427,0.51-0.838,0.361c0.091-0.479,0.182-0.955,0.272-1.435
+                       c-0.134,0.295-0.376,0.552-0.619,0.633c-0.191,0.062-0.481-0.182-0.727-0.287c0.398-0.601-0.052-0.312-0.311-0.328
+                       c-0.564-0.037-0.384-0.412-0.238-0.774c-0.157-0.009-0.282-0.037-0.399-0.019c-0.181,0.029-0.409,0.078-0.406-0.162
+                       c0.002-0.263,0.232-0.162,0.402-0.136c0.718,0.112,1.446-0.172,2.162,0.049c0.032,0.009,0.082-0.009,0.112-0.032
+                       c0.544-0.413,0.761-0.353,1.064,0.325c0.595-0.347,1.172-0.668,1.936-0.42c0.255,0.081,0.776-0.25,0.831-0.604
+                       c0.049-0.309,0.312-0.799-0.318-1.02c-0.394-0.14-0.603-0.6-0.482-1.006c0.186-0.621,0.739-0.169,1.108-0.224
+                       c0.24-0.038,0.015,0.529,0.395,0.816c-0.199-0.563,0.264-0.851,0.228-1.327c-0.016-0.244,0.401-0.191,0.641-0.244
+                       c0.408-0.09,1.036-0.073,0.556-0.813c-0.162-0.25,0.114-0.466,0.164-0.705c0.036-0.164,0.201-0.34-0.098-0.398
+                       c-0.168-0.035-0.379-0.057-0.378,0.215c0,0.288-0.153,0.468-0.406,0.638v-1.042c-0.654,0.275-0.581,1.125-1.227,1.308
+                       c-0.21-0.214,0.121-0.404,0.036-0.65c-0.465,0.434-0.489,0.098-0.487-0.327c-0.186,0.552-0.651,0.69-1.07,0.826
+                       c-0.061,0.021-0.539-0.371-0.101-0.845c-0.512,0.186-0.275,0.559-0.544,0.738c-0.435-0.251-0.665-1.006-1.404-0.694
+                       c-0.098,0.042-0.187-0.091-0.153-0.195c0.077-0.249,0.295-0.494-0.011-0.736c0.398,0.174,0.613-0.261,0.979-0.311
+                       c0.313-0.044,0.545,0.397,0.828,0.069c0.417,0.487,0.903,0.184,1.487,0.11c-0.622-0.332-0.573-0.814-0.376-1.329
+                       c-0.329,0.07-0.255,0.436-0.524,0.487c-0.204-0.21,0.066-0.348,0.112-0.51c0.062-0.215,0.261-0.432-0.151-0.157
+                       c-0.04,0.027-0.09,0.038-0.135,0.055c0.191-0.357-0.113-0.681-0.07-1c0.017-0.134,0.25-0.397,0.635-0.229
+                       c0.527,0.227,1.078-0.174,1.666-0.148c0.593,0.025,0.863-0.602,0.967-1.189c0.032-0.183,0.202-0.132,0.304-0.119
+                       c0.527,0.063,0.726-0.334,0.956-0.673c0.167-0.246,0.147-0.263-0.169-0.445c-0.121-0.071-0.121-0.071,0.107-0.638
+                       c-0.555,0.579-0.878,1.361-1.547,1.861c-0.176-0.087,0.075-0.316-0.137-0.46c-0.186,0.8-0.89,0.151-1.298,0.458
+                       c-0.075,0.059,0.176-0.253-0.056-0.304c-0.281,0.057-0.065,0.454-0.431,0.521c0.2-0.696-0.354-0.46-0.765-0.524
+                       c0.486-0.381,1.095-0.273,1.445-0.72c-0.505-0.015-0.762-0.38-0.649-0.813c0.044-0.163,0.381-0.371-0.026-0.539
+                       c-0.365-0.149-0.217,0.303-0.422,0.343c-0.043,0.007-0.079,0.051-0.182,0.121c-0.178-0.504-0.264-1.253-1.091-0.553
+                       c-0.023-0.555,0.843-1.039-0.01-1.49c0.849-0.215,0.441-0.874,0.469-1.393c0.259,0.008,0.329,0.206,0.473,0.375
+                       c0.24,0.283,0.322,0.781,0.944,0.662c0.394-0.076,0.76,0.07,0.894-0.5c0.114-0.489,0.543-0.881,0.32-1.482
+                       c-0.058-0.157-0.149-0.87,0.524-0.524c0.228,0.117,0.387-0.246,0.627-0.038c0.066,0.057,0.193-0.123,0.216-0.244
+                       c0.013-0.064-0.025-0.138-0.039-0.206c-0.411,0.28-0.708-0.35-0.986-0.191c-0.318,0.182-0.295,0.052-0.353-0.157
+                       c-0.014-0.049-0.114-0.074-0.175-0.11c-0.147,0.335-0.243,0.54-0.63,0.135c-0.153-0.161-0.505,0.405-0.885,0.363
+                       c-0.019-0.606,0.259-1.05,0.673-1.488c0.344-0.362-0.341-0.728-0.034-1.253c-0.384,0.231-0.634,0.38-0.898,0.54
+                       c-0.062-0.31-0.115-0.585-0.174-0.882c-0.246,0.166-0.341,0.581-0.749,0.363c-0.073-0.221,0.314-0.335,0.159-0.582
+                       c-0.299,0.063-0.729,0.322-0.436-0.375c0.139-0.333,0.308-0.694,0.23-1.077c-0.007-0.046-0.132,0.051-0.202,0.125
+                       c-0.264,0.27-0.435,0.166-0.75,0.039c-0.301-0.122-0.503-0.391-0.968-0.428c0.811-0.151,0.916-0.54,0.573-1.585
+                       c0.647-0.346,0.502,0.664,0.996,0.587c0.036-0.006,0.079,0.062,0.123,0.067c0.811,0.082,1.226,0.665,1.506,1.325
+                       c0.363-0.139,0.092-0.308,0.174-0.418c0.164-0.221-0.406-0.487,0.049-0.697c0.372-0.17,0.713,0.038,0.951,0.197
+                       c1.088,0.725,1.824,0.666,2.795-0.38c-0.474-0.111-0.815-0.32-0.401-0.867c-0.44,0.102-0.266,0.504-0.457,0.729
+                       c-0.161-0.506-0.021-0.935,0.136-1.41c-0.257,0.195-0.448,0.387-0.749,0.417c-0.183-0.388,0.178-0.72,0.105-1.096
+                       c-0.027-0.134,0.085-0.31-0.095-0.392c-0.142-0.064-0.255-0.036-0.368,0.131c-0.212,0.312-0.596,0.057-0.874,0.193
+                       c-0.015-0.18-0.521-0.11-0.221-0.464c0.104-0.124,0.142-0.316,0.174-0.484c0.023-0.113,0.032-0.264-0.136-0.302
+                       c-0.136-0.03-0.251,0-0.274,0.165c-0.032,0.217-0.14,0.462-0.359,0.372c-0.246-0.098-0.163-0.376-0.055-0.582
+                       c0.091-0.174,0.127-0.351-0.036-0.476c-0.639-0.487-0.34-1.157-0.563-1.923c0.565,0.312,0.229,0.801,0.559,0.952
+                       c0.505,0.232,0.256-0.53,0.702-0.5c-0.078,0.277-0.15,0.543-0.223,0.806c0.357-0.049,0.436-0.669,0.765-0.466
+                       c0.229,0.142,0.414,0.556,0.227,0.948c-0.029,0.058,0.094,0.249,0.185,0.289c0.127,0.053,0.193-0.106,0.28-0.191
+                       c0.406-0.383,0.051-0.78-0.023-1.196c0.714,0.338,1.021,0.057,1.315-1.265c-0.603,0.77-0.907,0.376-1.506,0.026
+                       c-1.036-0.609-0.364-0.843,0.233-1.326c-0.571,0.064-0.777-0.118-0.845-0.491c-0.023-0.121-0.121-0.227,0.022-0.313
+                       c0.102-0.063,0.18,0.017,0.255,0.088c0.133,0.127,0.195,0.443,0.441,0.299c0.217-0.129,0.049-0.515,0.323-0.679
+                       c0.066-0.04-0.542-0.468,0.138-0.274c0.089,0.024,0.072-0.141,0.047-0.145c-0.661-0.109-0.002-1.155-0.907-1.123
+                       c0.477-0.202,0.743,0.038,1.041,0.219c0.247,0.149,0.314,0.089,0.28-0.219c-0.009-0.068-0.073-0.149,0.025-0.166
+                       c0.238-0.042,0.656-0.282,0.512-0.301c-0.567-0.075-0.087-1.382-1.047-0.738c0.149-0.38,1.03-0.782,1.197-0.579
+                       c0.606,0.734,1.064,0.09,1.547-0.153c0.189-0.095,0.316-0.314,0.48-0.487c-0.21-0.022-0.542-0.021-0.548-0.066
+                       c-0.066-0.468-0.478-0.076-0.646-0.323c0.06-0.046,0.17-0.088,0.2-0.161c0.106-0.244,0.663-0.082,0.499-0.559
+                       c-0.45,0.167-0.096-0.581-0.567-0.479c-0.335,0.072-0.338-0.107-0.234-0.449c0.127-0.416-0.223-0.935,0.289-1.319
+                       c0.077-0.057-0.276-0.095-0.402-0.218c-0.203-0.196-0.227-0.443-0.065-0.6c0.168-0.162,0.303,0.048,0.384,0.205
+                       c0.366,0.711,0.667-0.236,1.011-0.04c0.053-0.214,0.157-0.318,0.369-0.159c0.107,0.08,0.181-0.015,0.273-0.036
+                       c0.539-0.123-0.296-0.488,0.116-0.638c0.232-0.083,0.412,0.538,0.677,0.038c0.122-0.236-0.119-1.257-0.377-1.344
+                       c-0.226-0.077-0.251,0.359-0.557,0.248c0.005-0.084-0.021-0.199,0.024-0.268c0.376-0.597-0.16-0.633-0.432-0.559
+                       c-0.56,0.148-0.547-0.013-0.384-0.446c0.068-0.175,0.041-0.393,0.03-0.59c-0.021-0.329,0.242-0.397,0.346-0.214
+                       c0.278,0.491,0.561,0.092,0.835,0.078c0.184-0.009,0.191-0.155,0.104-0.267c-0.066-0.083-0.058-0.279-0.311-0.164
+                       c-0.291,0.128-0.326,0.07-0.243-0.219c0.122-0.415-0.576-0.187-0.47-0.627c0.028-0.117-0.416-0.212-0.216-0.456
+                       c0.174-0.212,0.348,0.174,0.409,0.134c0.253-0.17,0.553,0.293,0.692-0.027c0.062-0.143-0.244-0.447-0.298-0.579
+                       c-0.236-0.583-0.549-1.029-1.154-1.308c0.548-0.071,1.051-0.415,1.508,0.087c0.115,0.125,0.268,0.131,0.361-0.055
+                       c0.098-0.193-0.121-0.2-0.158-0.274c-0.248-0.487-0.789-0.511-1.144-0.81c-0.145-0.121-0.348-0.287-0.214-0.499
+                       c0.11-0.176,0.267,0.069,0.369,0.058c0.382-0.046,0.652-0.291,0.871-0.602c0.135-0.191-0.102-0.672,0.382-0.574
+                       c0.395,0.079,0.674,0.335,0.624,0.805c0.341-0.005,0.326-0.408,0.636-0.514c0.256-0.085,0.163-0.583-0.117-0.566
+                       c-0.852,0.051-0.623-0.715-0.82-1.076c-0.257-0.476-0.231-1.102-0.332-1.662c-0.082-0.437,0.054-0.721,0.782-0.745
+                       c-0.55-0.256-0.748-0.519-0.773-0.916c0.826,0.276,1.244-0.002,1.168-0.882c-0.074-0.859,0.21-1.531,0.688-2.197
+                       c0.214-0.299,0.461-0.716,0.412-1.037c-0.147-0.952,0.881-1.365,0.904-2.208c0.001-0.067,0.141-0.129,0.217-0.195
+                       c0.331,0.502,0.056,1.244,0.756,1.585c0.317,0.156-0.095,0.482-0.01,0.759c0.157,0.508,1.047,0.767,0.518,1.503
+                       c0.756,0.017,0.179,1.21,1.023,1.198c0.019,0-0.203,0.518-0.246,0.803c-0.041,0.259-0.546,0.811,0.342,0.668
+                       c0.165-0.029,0.516,0.257,0.548,0.439c0.036,0.214-0.253,0.412-0.485,0.512c-0.148,0.064-0.377-0.002-0.346,0.278
+                       c0.606-0.231-0.282,0.838,0.539,0.586c0.546-0.168,0.721,0.243,0.521,0.852c-0.113,0.342-0.278,0.611-0.561,0.827
+                       c-0.197,0.147-0.413,0.299,0.048,0.415c0.343,0.087,0.04,0.252-0.003,0.386c-0.04,0.124-0.444-0.099-0.227,0.2
+                       c0.132,0.183-0.053,0.602,0.393,0.573c0.032-0.002,0.083,0.169,0.187,0.038c0.138-0.174,0.214-0.515,0.541-0.253
+                       c0.457,0.365,0.449,0.372,0.17,0.974c-0.161,0.344,0.25,0.69,0.932,0.7c-0.475,0.29-0.437,0.892-0.985,1.083
+                       c-0.244,0.085,0.372,0.1,0.143,0.43c-0.311,0.445-0.546,0.914-1.201,0.944c0.249,0.242,1.037,0.333,1.251,0.285
+                       c0.457-0.1,0.756-0.579,1.274-0.52c-0.046,1.016-0.687,1.708-1.581,1.593c0.62,0.462-0.12,0.696-0.079,1.022
+                       c0.913,0.694,1.251-0.329,1.845-0.597c0.113-0.051,0.16-0.291,0.336-0.132c0.105,0.094,0.057,0.244-0.017,0.35
+                       c-0.232,0.328-0.054,1.027-0.875,0.83c0.191,0.31,1.03,0.502,0.08,0.812c-0.396,0.129-0.267,0.621,0.249,0.99
+                       c-0.047,0.228-0.444,0.149-0.4,0.483c0.036,0.016,0.107,0.079,0.151,0.064c0.542-0.197,0.642,0.409,0.996,0.556
+                       c0.069,0.029-0.05,0.186-0.159,0.273c-0.244,0.188-0.524,0.121-0.788,0.152c0.134,0.72-0.483,1.475-1.161,1.422
+                       c-0.168-0.013-0.262,0.015-0.249,0.144c0.052,0.545-0.22,0.781-0.75,0.77c0.538,1.029,1.359,0.662,2.18,0.57
+                       c-0.789,0.283-0.549,1.531-1.646,1.493c0.456,0.421,0.859,0.725,1.443,0.564c0.203-0.056,0.23,0.13,0.291,0.267
+                       c0.128,0.292-0.182,0.143-0.216,0.217c-0.085,0.191-0.635,0.223-0.202,0.625c0.12,0.111-0.231,0.245-0.711,0.068
+                       c0.144,0.533,0.488,0.9,0.754,1.317c0.41,0.64,0.819-0.332,1.257,0.142c-0.696,0.604-1.23,1.457-2.281,1.637
+                       c-0.182,0.032-0.191,0.334-0.427,0.23c-0.055,0.199,0.115,0.252,0.224,0.34c0.186,0.152,0.551,0.153,0.379,0.58
+                       c-0.072,0.177,0.104,0.068,0.172,0.036c0.638-0.312,1.3-0.561,2.122-0.759c-0.435,0.461-0.051,1.197-0.761,1.442
+                       c-0.027,0.01-0.052,0.1-0.038,0.136c0.132,0.318,0.463,0.393,0.722,0.518c0.274,0.132,0.651,0.249,0.911,0.16
+                       c0.402-0.138,0.911-0.009,1.223-0.423c0.021-0.03,0.145,0.055,0.092,0.134c-0.166,0.25,0.439,0.468,0.015,0.73
+                       c-0.696,0.428-0.034,0.362,0.176,0.461c-0.021,0.224-0.291,0.32-0.365,0.306c-0.777-0.136-0.646,0.341-0.688,0.84
+                       c-0.053,0.631,0.558,0.339,0.711,0.631c0.459-0.39,1.268-0.293,1.457-1.069c0.03-0.127,0.189-0.249,0.361-0.177
+                       c0.115,0.047,0.227,0.151,0.165,0.293c-0.244,0.539,0.169,0.428,0.448,0.414c-0.055,0.601-0.7,0.897-0.575,1.486
+                       c-0.323,0.094-0.397-0.264-0.643-0.251c0.286,0.768-0.321,1.018-0.706,1.496c-0.494,0.612-1.154,0.21-1.624,0.576
+                       c-0.042,0.299,0.463,0.214,0.385,0.612c-0.266-0.118-0.52-0.229-0.79-0.346c-0.128,0.249,0.216,0.411,0.142,0.653
+                       c-0.264,0.07-0.374-0.155-0.473-0.293c-0.461-0.649-0.646-0.019-0.823,0.21c-0.129,0.162-0.566,0.416-0.233,0.636
+                       c0.376,0.244,0.575,0.78,1.201,0.687c0.729-0.108,1.212-0.528,1.591-1.069c0.211-0.303,0.82-0.012,0.843-0.617
+                       c0.098,0.363,0.302,0.742,0.258,1.086c-0.038,0.308-0.41,0.075-0.699,0.091c0.441,0.151,0.272,0.42,0.303,0.709
+                       c0.032,0.339,0.349,0.566-0.219,0.748c-0.324,0.104-0.048,0.505-0.15,0.734c-0.1,0.225,0.365,0.805-0.444,0.65
+                       c-0.412-0.078,0.176,0.338-0.076,0.478c-0.276,0.065-0.185-0.392-0.461-0.345c-0.211,0.287,0.401,0.543,0.066,0.766
+                       c-0.225,0.148-0.336-0.206-0.556-0.351c-0.079,0.238,0.021,0.753-0.532,0.317c-0.325-0.253-0.866-0.289-1.297,0.006
+                       c0.259-0.853-1.071,0.128-0.892-0.774c-0.187,0.264,0.043,0.738-0.484,0.675c-0.087-0.009-0.231,0.212-0.14,0.298
+                       c0.505,0.461,0.212,1.024,0.176,1.619c0.248-0.162,0.433-0.643,0.635-0.074c0.009,0.025,0.18-0.005,0.274-0.009
+                       c-0.294-0.579,0.488-0.371,0.52-0.714c0.015-0.141,0.011-0.344,0.24-0.253c0.138,0.053,0.131,0.25,0.061,0.329
+                       c-0.375,0.418,0.056,0.425,0.247,0.596c0.221-0.198-0.131-0.454,0.168-0.618c0.275,0.302,0.622,0.783,0.831-0.071
+                       c0.175,0.127,0.35,0.169,0.581,0.199c1.283,0.165,2.206-0.363,2.92-1.374c0.121-0.172,0.265-0.216,0.516-0.059
+                       c-0.752,0.252,0.193,0.84-0.325,1.267c-0.245,0.2-0.102,0.377-0.503,0.247c-0.066-0.021-0.13-0.044-0.226-0.075
+                       c0.3,0.374,0.3,0.374,0.733,0.477c-0.752,0.728-0.752,0.728-1.193,0.3c-0.068,0.166-0.219,0.44-0.185,0.464
+                       c0.452,0.339,0.155,0.771,0.164,1.156c0.006,0.297-0.249,0.181-0.366,0.151c-0.302-0.079-0.474-0.126-0.206,0.254
+                       c0.056,0.077-0.053,0.168-0.166,0.193c-0.605,0.134-0.677,0.374-0.257,0.84c0.151,0.166,0.224,0.145,0.599-0.21
+                       c-0.042,0.479,0.143,0.672,0.589,0.59c0.507-0.09,0.238,0.418,0.452,0.621c-0.728-0.315-0.766,0.423-1.092,0.693
+                       c-0.046,0.036-0.757,0.278-0.133,0.615c0.019,0.01-0.079,0.295-0.283,0.373c-0.478,0.187-1.059,0.437-1.41,0.047
+                       c-0.307-0.338-0.646-0.085-0.881-0.334c0.193,0.379,0.429,0.654,0.877,0.722c0.134,0.021,0.417,0.078,0.452,0.186
+                       c0.174,0.554,0.423,0.849,1.004,0.458c0.336-0.229,0.876-0.193,1.086-0.855c0.036,0.091,0.095,0.181,0.1,0.275
+                       c0.023,0.377,0.044,0.809,0.543,0.757c0.24-0.024,0.517-0.084,0.777-0.315c0.651-0.583,1.631-0.473,2.37-0.935
+                       c0.039-0.024,0.149,0.016,0.194,0.059c0.087,0.087,0.026,0.178-0.03,0.265c-0.267,0.409-0.465,0.897-1.077,0.89
+                       c0.126,0.377,0.406,0.269,0.565,0.178c0.215-0.123,0.295-0.306,0.559,0.01c0.184,0.219,0.448-0.068,0.535-0.319
+                       c0.14-0.406,0.359-0.665,0.826-0.705c0.155-0.013,0.344-0.209,0.461-0.03c0.123,0.189-0.195,0.281-0.214,0.394
+                       c-0.049,0.284-0.476,0.64,0.143,0.911c-0.541,0.291-1.087,0.308-1.702,0.33c0.17,0.295,0.429,0.468,0.481,0.757
+                       c0.022,0.128,0.275,0.172,0.137,0.363c-0.275-0.212-0.306,0.227-0.537,0.196c-0.504-0.062-0.77,0.242-0.685,0.75
+                       c-0.305-0.005-0.345-0.323-0.613-0.504c0.078,0.378,0.561,1.052-0.391,0.695c-0.023,0.519-0.436,0.428-0.909,0.481
+                       c0.612,0.352,0.792,1.059,0.509,1.293c-0.677,0.557,0.071,0.564,0.165,0.836c0.447,1.27,0.794-0.227,1.187-0.022
+                       c0.021-0.701,0.664-0.637,1.053-0.892c0.121,0.491,0.229,0.955,0.286,1.444c0.058,0.493,0.542,0.38,0.827,0.193
+                       c0.261-0.172,0.485-0.229,0.788-0.145c0.027,0.437-0.906,0.505-0.476,1.181c-0.325,0.138-1.007-0.261-1.098,0.538
+                       c-0.023,0.21-0.088,0.338,0.163,0.346c0.226,0.009,0.412,0.09,0.491,0.285c0.352,0.865,0.722,0.329,0.987-0.019
+                       c0.357-0.474,0.822-0.791,1.298-1.103c0.091-0.058,0.233-0.037,0.321-0.051c0.293,0.301-0.875,0.619,0.071,0.842
+                       c-0.142,0.342-0.748,0.134-0.734,0.648c0.009,0.351,0.378,0.024,0.446,0.264c-0.181,0.197-0.448,0.234-0.735,0.263
+                       c0.083,0.334,0.414,0.297,0.548,0.494c-0.132,0.393-0.414-0.005-0.635,0.11c-0.308,0.16,0.49,0.302-0.034,0.447
+                       c-0.253,0.07-0.465,0.004-0.747-0.015c0.104,0.346,0.923,0.344,0.446,0.855c-0.295,0.317-0.688-0.011-1.013-0.091
+                       c-0.117,0.251,0.079,0.308,0.155,0.423c0.076,0.115,0.301,0.206,0.169,0.359c-0.092,0.104-0.331-0.098-0.475,0.151
+                       c-0.045,0.081-0.079-0.166-0.096-0.261c-0.072-0.422-0.361-0.158-0.416-0.075c-0.446,0.688-0.837,0.213-1.301-0.04
+                       c-0.124,0.27-0.283,0.532,0.165,0.706c-0.401,0.302-0.658-0.502-0.875-0.102c-0.18,0.334,0.321,0.555,0.574,0.743
+                       c0.246,0.184-0.224,0.565,0.228,0.62c-0.245,0.422,0.13,0.634,0.334,0.87c0.111,0.131,0.327,0.216,0.221,0.406
+                       c-0.117,0.207-0.408,0.167-0.53,0.06c-0.43-0.38-0.657-0.127-1.04,0.123c-0.291,0.191-0.885,0.384-1.174-0.288
+                       c-0.14,0.131,0.026,0.857-0.456,0.282c-0.106-0.128-0.285-0.204-0.44-0.285c-0.531-0.274-0.775-0.129-0.763,0.471
+                       c-0.286-0.057-0.566-0.111-0.793-0.336c-0.091,0.234,0.208,0.43,0.04,0.645c-0.081,0.107-0.161,0.217-0.017,0.314
+                       c0.374,0.251,1.085,0.27,0.688,1.033c0.064,0.019,0.13,0.042,0.197,0.057c0.651,0.153,1.307,0.383,1.98,0.249
+                       c0.331-0.067,0.482,0.102,0.7,0.172c-0.05,0.274-0.197,0.2-0.308,0.207c-0.174,0.007-0.416-0.027-0.414,0.202
+                       c0,0.12,0.123,0.283,0.291,0.395c0.516,0.343,1.175,0.155,1.74,0.518c-0.247,0.275-1.141,0.06-0.644,0.821
+                       c-0.374,0.096-0.214,0.509-0.432,0.721c0.334,0.151,0.517-0.295,0.882-0.187c0.211,0.064,0.255-0.084,0.383,0.085
+                       c0.138,0.181,0.185,0.212,0.386-0.098c0.127-0.195,0.274-0.265,0.416-0.197c0.378,0.181-0.152,0.164-0.083,0.297
+                       c0.019,0.038,0.017,0.113,0.036,0.117c0.661,0.132,1.045,0.8,1.695,0.91c0.22,0.038,0.503-0.146,0.725-0.278
+                       c0.401-0.236,1.078,0.128,1.267-0.583c0.009-0.037,0.255-0.068,0.347-0.019c0.901,0.483,1.736,0.125,2.569-0.191
+                       c0.223-0.083,0.463-0.225,0.58,0.042c0.11,0.248-0.209,0.269-0.353,0.384c-0.108,0.088-0.342,0.075-0.314,0.272
+                       c0.127,0.859-0.414,0.253-0.661,0.308c-0.112,0.172,0.26,0.23,0.1,0.424c-0.15,0.182-0.265,0.106-0.448,0.029
+                       c-0.51-0.22-0.45,0.395-0.445,0.485c0.033,0.442-0.32,0.886-0.573,0.643c-0.484-0.468-0.517,0.078-0.643,0.236
+                       c-0.18,0.225-0.125,0.735-0.41,0.754c-0.339,0.022-0.709-0.201-1.036-0.373c-0.248-0.13-0.45-0.346-0.677-0.53
+                       c-0.189,0.394-0.126,0.638,0.268,0.827c0.253,0.119,0.496,0.274,0.691,0.537c0.351,0.476,0.913,0.134,1.359,0.141
+                       c0.413,0.005,0.326,0.007,0.184,0.286c-0.434,0.848-1.192,0.973-2.012,0.433c-0.26-0.17-0.342-0.778-0.917-0.483
+                       c-0.147,0.075-0.034-0.343-0.193-0.504c-0.712,0.416-1.54,0.736-1.283,1.924c-0.378-0.702-0.764-0.457-1.143-0.13
+                       c-0.339,0.289-0.515,0.092-0.654-0.29c-0.04,0.348-0.146,0.57-0.414,0.765c-0.208-0.393-0.647-0.619-0.72-1.097
+                       c-0.237,0.454-0.539,0.912,0.004,1.366c0.073,0.063,0.103,0.169-0.031,0.234c-0.289,0.145-0.567,0.312-0.867,0.427
+                       c-0.087,0.034-0.129-0.144-0.107-0.235c0.167-0.7-0.473-1.321-0.189-2.044c0.044-0.113,0.176-0.424-0.12-0.507
+                       c-0.136-0.04-0.427-0.087-0.197,0.231c0.066,0.092,0.219,0.136,0.104,0.356c-0.333-0.313-0.896-0.109-1.087-0.698
+                       c-0.223,0.31,0.197,0.6-0.238,0.784c-0.258-0.28-0.367-0.748-0.945-0.997c0.463,0.518-0.049,1.11,0.433,1.519
+                       c0.083,0.068,0.021,0.195-0.074,0.25c-0.094,0.055-0.189,0.03-0.272-0.047c-0.162-0.154-0.33-0.305-0.556-0.516
+                       c0.048,0.638,0.662,0.948,0.626,1.558c-0.013,0.218,0.423,0.432,0.582,0.361c0.614-0.27,0.769,0.387,0.798,0.549
+                       c0.123,0.685,0.425,0.398,0.743,0.229c0.086-0.045,0.208-0.142,0.26-0.114c0.469,0.239,1.028-0.022,1.361,0.063
+                       c0.762,0.192,1.214-0.481,1.858-0.34c0.006,0.81,0.395,1.108,1.215,0.841c0.497-0.16,1.002,0.127,1.503-0.138
+                       c0.359-0.191,0.616-0.309,0.393-0.772c-0.102-0.213-0.252-0.454-0.002-0.809c0.023,0.439,0.839,0.439,0.372,1.038
+                       c0.293,0.032,0.067,0.404,0.314,0.476c0.433,0.126,0.348-0.43,0.645-0.485c0.188,0.138-0.142,0.487,0.213,0.539
+                       c0.089,0.013,0.203-0.023,0.278-0.071c0.301-0.195,0.017-0.406-0.015-0.597c-0.053-0.306-0.298-0.568-0.261-0.986
+                       c0.573,0.188,0.63,0.875,1.178,1.031c0.206,0.059,0.453,0.252,0.657,0.442c0.209,0.193,0.502-0.066,0.454-0.409
+                       c-0.028-0.191,0.072-0.38,0.173-0.28c0.445,0.43,0.936-0.032,1.377,0.13c0.293,0.11,0.368-0.209,0.561-0.264
+                       c0.265-0.076,0.552-0.069,0.896-0.102c-0.317,0.486-1.028,0.579-0.784,1.294c0.069,0.203-0.176,0.176-0.324,0.163
+                       c-0.132-0.011-0.323,0.025-0.262,0.163c0.374,0.87-0.394,0.511-0.673,0.617c-0.427,0.161-0.962,0.198-0.441,0.802
+                       c-0.366,0.423-0.529-0.349-1.095-0.049c-0.713,0.38-0.881,1.177-1.566,1.488c-0.05,0.022,0.262,0.388,0.46,0.485
+                       c0.262,0.124,0.33,0.19,0.055,0.357c-0.239,0.143-0.297,0.262,0.015,0.395c0.075,0.034,0.09,0.231-0.023,0.244
+                       c-0.442,0.051-0.775,0.797-1.38,0.157c0.414,0.593-0.421,0.756-0.278,1.287c-0.179-0.602-0.686-0.308-1.012-0.45
+                       c-0.192-0.083,0.003,0.351-0.205,0.467c-0.245-0.154-0.499-0.311-0.833-0.521c0.181,0.51,0.049,0.714-0.431,0.585
+                       c-0.085-0.024-0.168-0.128-0.265-0.012c-0.372,0.454-0.372,0.452-0.883,0.071c0.124,0.388,0.031,0.648-0.298,0.831
+                       c0.796-0.132,1.571,0.47,2.334-0.049c0.148-0.101,0.269-0.108,0.325,0.113c0.03,0.117-0.134,0.445,0.214,0.287
+                       c0.333-0.151-0.046-0.245-0.065-0.372c-0.011-0.068-0.002-0.138-0.002-0.248c0.515-0.019,0.702,0.752,1.269,0.383
+                       c0.013,0.308-0.333,0.237-0.267,0.488c0.062,0.002,0.157,0.036,0.199,0.004c0.411-0.325,0.707-0.391,1.266-0.062
+                       c0.785,0.46,1.708,0.187,2.527-0.214c0.134-0.066,0.276-0.119,0.401-0.198c0.155-0.099,0.247-0.01,0.285,0.105
+                       c0.019,0.053-0.07,0.189-0.136,0.216c-0.376,0.142-0.628,0.287-0.635,0.798c-0.004,0.224-0.497,0.415-0.854,0.161
+                       c-0.078,0.42,0.676,0.176,0.406,0.534c-0.265,0.346-0.497-0.333-0.843-0.212c-0.087,0.267,0.272,0.293,0.276,0.513
+                       c-0.322,0.157-0.644,0.134-0.947-0.128c-0.108,0.439,0.406,0.351,0.34,0.725c-0.563-0.189-1.111,0.11-1.684,0.043
+                       c-0.045-0.005-0.1,0.012-0.139-0.007c-0.36-0.159-0.358-0.161-0.41,0.238c-0.007,0.049-0.027,0.096-0.055,0.202
+                       c-0.116-0.183-0.191-0.351-0.31-0.477c-0.119-0.121-0.293-0.063-0.426,0.005c-0.17,0.091-0.019,0.212,0,0.32
+                       c0.038,0.221,0.033,0.458,0.116,0.661c0.075,0.184,0.117,0.166-0.123,0.226c-0.571,0.14-1.119-0.368-1.699,0.012
+                       c-0.123,0.077-0.072-0.374-0.348-0.463c-0.078,0.224-0.083,0.721-0.562,0.262c-0.06-0.059-0.417-0.291-0.661-0.016
+                       c-0.245,0.276,0.089,0.384,0.13,0.574c0.054,0.24,0.114,0.483,0.21,0.708c0.087,0.198-0.018,0.319-0.156,0.334
+                       c-0.375,0.042-0.772-0.342-1.129,0.066c-0.174-0.394-0.638-0.628-0.614-1.133c0.007-0.128-0.031-0.251-0.169-0.306
+                       c-0.183,0.755-0.054,1.202,0.526,1.639c0.433,0.325,0.661,0.799,1.024,1.306c-0.344-0.117-0.603-0.232-0.875-0.289
+                       c-0.147-0.033-0.421-0.131-0.448,0.112c-0.103,0.951-0.739,0.56-1.232,0.541c0.178,0.57,0.272,0.749,0.564,0.78
+                       c0.376,0.041,0.731,0.086,0.992,0.488c-0.563-0.062-1.14-0.073-1.683-0.215c-0.206-0.055-0.257,0.028-0.354,0.094
+                       c-0.143,0.1-0.192,0.316-0.065,0.385c0.287,0.163,0.381,1.049,0.957,0.292c0.1-0.131,0.328-0.221,0.387,0.026
+                       c0.145,0.631,0.563,0.498,0.969,0.382c0.329-0.095,0.685-0.172,0.962-0.355c0.355-0.235,0.514,0.06,0.832,0.062
+                       c-0.284,0.417-0.648,0.376-1.235,0.532c1.11,0.304,1.403,0.967,1.439,1.8c0.006,0.153-0.009,0.409,0.291,0.251
+                       c0.303-0.157,0.217,0.038,0.251,0.223c0.107,0.589,0.677,0.106,0.927,0.366c0.179,0.188-0.456,0.699,0.31,0.723
+                       c0.255,0.008,1.041,0.116,0.374,0.774c-0.059,0.057,0.146,0.518,0.181,0.512c0.671-0.111,1.07,0.774,1.746,0.488
+                       c0.346-0.145,0.842-0.111,0.926-0.679c0.05-0.32,0.394-0.23,0.418-0.055c0.072,0.517,0.758,0.856,0.399,1.492
+                       c-0.115,0.202,0.074,0.441,0.233,0.496c0.304,0.105,0.026-0.195,0.124-0.242c0.046-0.023,0.136-0.012,0.174,0.023
+                       c0.418,0.362,0.873,0.177,1.321,0.105c0.242-0.04,0.496-0.221,0.675,0.165c0.059,0.124,0.351,0.164,0.327-0.189
+                       c-0.008-0.112,0.145-0.197,0.288-0.182c0.141,0.017,0.211,0.123,0.258,0.242c0.148,0.376-0.185,1.152-0.595,1.191
+                       c-0.303,0.027-0.409,0.469-0.781,0.276c-0.079-0.042-0.048,0.14,0.019,0.204c0.072,0.066,0.117,0.231,0.085,0.215
+                       c-0.457-0.206-0.527,0.777-1.157,0.328c-0.213-0.152-0.812-0.042-1.234-0.15c-0.164-0.041-0.088,0.142-0.092,0.215
+                       c-0.025,0.502,0.496,0.824,1.039,0.727c0.511-0.092,1.009-0.311,1.562-0.202c-0.04,0.238-0.293,0.231-0.407,0.372
+                       c0.454,0.307,0.892,0.497,1.435,0.135c0.311-0.208,0.517-0.085,0.38,0.33c0.544-0.166,0.814,0.51,1.351,0.427
+                       c0.417-0.064,0.848-0.091,1.266,0.07c0.386,0.147,0.802,0.422,0.956-0.32c0.023-0.111,0.667-0.189,0.989-0.117
+                       c0.369,0.083,0.522-0.051,0.75-0.283c0.465-0.47,1.072-0.502,1.803-0.457c-0.66,0.54-0.867,1.364-1.716,1.584
+                       c0.119,0.102,0.21,0.181,0.303,0.261c0.096,0.085,0.211,0.181,0.136,0.313c-0.074,0.131-0.203,0.099-0.327,0.038
+                       c-0.333-0.16-0.67-0.075-1.015-0.053c0.007,0.512,0.554,0.483,0.716,0.82c-0.391,0.147-0.567-0.227-0.848-0.321
+                       c-0.136,0.251,0.308,0.253,0.202,0.477c-0.193,0.176-0.301-0.176-0.478-0.059c-0.086,0.256,0.485,0.259,0.228,0.553
+                       c-0.215,0.246-0.379-0.051-0.569-0.112c-0.565-0.177-1.147-0.064-1.705,0c-0.317,0.036-0.341-0.281-0.57-0.258
+                       c-0.184,0.383,0.3,0.477,0.355,0.855c-0.692-0.102-1.173-0.65-1.862-0.774c-0.084,0.383,0.458,0.498,0.314,0.91
+                       c-0.486-0.223-0.907-0.583-1.072-0.986c-0.186-0.466-0.419-0.367-0.737-0.342c-0.754,0.061-1.495,0.265-2.288,0.246
+                       c0.767,0.272,1.183,0.915,1.695,1.476c0.459,0.502,1.108,0.593,1.766,0.242c0.138-0.073,0.383-0.297,0.494,0.004
+                       c0.078,0.205-0.185,0.26-0.331,0.323c-0.444,0.194-0.821,0.451-1.141,0.834c-0.257,0.312-0.586,0.616-1.275,0.333
+                       c0.77,0.914,1.602,1.266,2.46,1.564c-0.077,0.188-0.206,0.282-0.366,0.23c-0.35-0.113-0.69-0.333-0.859,0.251
+                       c-0.041,0.14-0.324,0.023-0.489,0.049c-0.353,0.055-1.017-0.287-0.809,0.578c0.013,0.049-0.082,0.176-0.092,0.172
+                       c-0.438-0.153-0.849,0.317-1.314,0.042c-0.106,0.234,0.79,0.583-0.255,0.692c0.527,0.236,0.807,0.476,1.066,0.791
+                       c0.321,0.393,0.99,0.388,1.355,0.248c1.074-0.411,1.258-0.417,1.869,0.626c0.047,0.08,0.076,0.171,0.114,0.255
+                       c-0.22,0.133-0.42,0.135-0.601,0.033c-0.195-0.11-0.373-0.108-0.565-0.023c0.005,0.053-0.005,0.111,0.02,0.147
+                       c0.244,0.362,0.495,0.718,0.777,1.122c-0.537,0.119-1.079-0.348-1.614,0.083c-0.722,0.585-1.143-0.043-1.582-0.504
+                       c-0.112-0.117-0.235-0.222-0.352-0.336c-0.151,0.288-0.648,0.21-0.667,0.627c-0.003,0.087,0.097,0.179,0.004,0.27
+                       c-0.196,0.191-0.582,0.314-0.267,0.695c0.335,0.405,0.622-0.008,0.928-0.074c0.14-0.031,0.271-0.295,0.362-0.178
+                       c0.192,0.246,0.689-0.208,0.622,0.214c-0.04,0.253-0.012,1.016-0.836,0.556c0.214,0.356,0.372,0.648,0.667,0.606
+                       c0.598-0.088,0.899,0.176,1.102,0.695c0.276,0.715,1.045,0.621,1.495,0.576c0.8-0.084,1.499,0.153,2.226,0.305
+                       c0.217,0.046,0.356,0.099,0.522-0.071c0.06-0.062,0.244-0.117,0.257-0.098c0.539,0.781,1.164,0.086,1.744,0.117
+                       c0.186,0.011,0.399-0.065,0.613,0.162c-0.366,0.181-0.511,0.504-0.647,0.859c-0.202,0.538-0.784-0.088-1.082,0.421
+                       c-0.01,0.087,0.276,0.079,0.321,0.363c-0.329-0.316-0.567,0.326-0.913-0.034c-0.078-0.079-0.083,0.122-0.104,0.204
+                       c-0.038,0.149,0.3,0.266,0.034,0.434c-0.168-0.312-0.404,0.124-0.712-0.11c-0.463-0.348-1.078-0.743-1.754-0.504
+                       c-0.275,0.098-0.375-0.062-0.513-0.183c-0.132-0.117-0.238-0.285-0.438-0.17c-0.108,0.062-0.047,0.172,0.004,0.26
+                       c0.084,0.152-0.036,0.444,0.296,0.427c0.152-0.006,0.307-0.009,0.454,0.015c0.246,0.04,0.299,0.274,0.31,0.449
+                       c0.013,0.212-0.212,0.153-0.348,0.166c-0.149,0.015-0.289,0.017-0.431,0.101c-0.207,0.121-0.538,0.213-0.419,0.485
+                       c0.113,0.26,0.44,0.217,0.642,0.024c0.214-0.202,0.386-0.072,0.528,0.04c0.748,0.579,1.553,0.54,2.398,0.277
+                       c0.159-0.048,0.364-0.05,0.512,0.014c0.17,0.072,0.269,0.377,0.036,0.37c-0.633-0.021-0.747,0.768-1.331,0.772
+                       c-0.041,0-0.045,0.165-0.203,0.11c-0.978-0.335-0.462,0.551-0.415,0.66c0.267,0.619,0.601,1.177-0.287,1.578
+                       c-0.253,0.114-0.03,0.358,0.015,0.457c0.25,0.547,0.098,0.856-0.552,0.994c0.662,0.13,0.495,0.807,0.874,1.119
+                       c0.102,0.085-0.076,0.506-0.346,0.41c-0.694-0.246-0.643,0.136-0.5,0.606c-0.432-0.067-0.362-0.502-0.621-0.646
+                       c0.027,0.738-0.635,1.565-1.304,1.531c-0.246-0.011-0.629-0.172-0.55-0.594c0.034-0.176,0.081-0.339-0.019-0.508
+                       c-0.58,0.965-0.487,1.285,0.467,1.756c0.682,0.334,1.1,0.948,1.54,1.533c0.074,0.098,0.077,0.243-0.024,0.347
+                       c-0.102,0.103-0.226,0.082-0.346,0.021c-0.223-0.107-0.443-0.23-0.675-0.321c-0.335-0.131-0.643-0.159-0.754,0.305
+                       c-0.091,0.384-0.132,0.707,0.383,0.845c0.188,0.05,0.462,0.048,0.587,0.336c-0.333,0.286-0.683,0.019-1.014,0.025
+                       c-0.185,0.245,0.482,0.408,0.153,0.437c-0.247,0.025-0.601,0.447-0.841,0.031c-0.091-0.155-0.162-0.248-0.329-0.219
+                       c-0.039,0.007-0.1,0.128-0.082,0.171c0.06,0.171,0.291,0.377-0.078,0.438c-0.223,0.038-0.478-0.022-0.565-0.275
+                       c-0.253-0.737-0.45,0.137-0.677,0.016c-0.129,0.925-0.317-0.128-0.47,0.013c0.052,0.775-0.17,0.901-1.002,0.549
+                       c-0.17,0.222,0.221,0.533-0.036,0.669c-0.319,0.168-0.495-0.246-0.773-0.322c0.13,0.725-0.214,1.49-0.8,1.733
+                       c-0.134,0.055-0.362,0.059-0.321-0.163c0.085-0.482-0.111-1.054,0.191-1.43c0.411-0.507,0.306-1.023,0.352-1.576
+                       c0.047-0.587-0.102-0.787-0.751-0.71c0.129,0.157,0.32,0.357,0.188,0.483c-0.274,0.261-0.386-0.238-0.655-0.194
+                       c-0.175,0.213-0.026,0.668-0.466,0.723c-0.235-0.265,0.166-0.478-0.01-0.773c-0.145,0.04-0.316,0.088-0.485,0.134
+                       c-0.107-0.262,0.085-0.349,0.221-0.435c0.192-0.121,0.22-0.278,0.113-0.445c-0.064-0.098-0.219-0.163-0.332-0.076
+                       c-0.677,0.511-1.057-0.174-1.628-0.332c-0.631,0.802,0.55,0.868,0.658,1.38c-0.964,0.145-1.815-0.943-2.229-2.417
+                       c0.01,0.637-1.243-0.132-0.825,0.925c-0.57-0.169-0.214-0.708-0.556-0.982c-0.342,0.546-0.798,1.031-0.162,1.799
+                       c-0.594-0.156-0.694-0.588-0.963-0.851c-0.039-0.04-0.047-0.391-0.264-0.107c-0.08,0.103-0.282,0.12-0.142,0.326
+                       c0.168,0.254,0.331,0.483,0.554,0.71c0.75,0.77,1.699,0.808,2.634,0.972c0.255,0.045,0.554,0.155,0.435,0.478
+                       c-0.111,0.3-0.44,0.2-0.654,0.115c-1.051-0.421-1.047-0.43-1.536,0.493c-0.006-0.487-0.153-0.803-0.684-0.885
+                       c0.158,0.684,0.413,1.292,0.954,1.787c0.117,0.11,0.818,0.108,0.217,0.568c-0.026,0.021,0.333,0.624,0.575,0.901
+                       c0.361,0.414,0.421,0.824,0.343,1.375c-0.098,0.69,0.154,1.371,0.479,1.998c0.076,0.143,0.219,0.244,0.369,0.117
+                       c0.508-0.432,0.986-0.042,1.477,0.034c0.114,0.017,0.293-0.014,0.269,0.166c-0.029,0.217-0.213,0.163-0.353,0.123
+                       c-0.214-0.06-0.496-0.514-0.611-0.029c-0.089,0.379,0.503,0.901,0.599,0.876c0.837-0.207,1.661,0.278,2.503-0.037
+                       c0.368-0.137,0.639,0.283,0.708,0.634c0.102,0.517-0.444,0.121-0.567,0.365c0.106,0.228,0.355,0.214,0.518,0.159
+                       c0.7-0.233,0.864,0.628,1.435,0.677c0.105,0.009-0.076,0.087-0.125,0.099c-0.143,0.031-0.153,0.12-0.1,0.219
+                       c0.062,0.111,0.164,0.189,0.302,0.175c0.104-0.011,0.183-0.448,0.31-0.015c0.691-0.547,1.551,0.123,2.276-0.317
+                       c0.2-0.121,0.502-0.253,0.765-0.061c0.543,0.4,1.072,0.812,1.616,1.208c0.163,0.119,0.172,0.236,0.058,0.372
+                       c-0.12,0.144-0.219,0.021-0.315-0.051c-0.081-0.06-0.16-0.123-0.244-0.179c-0.128-0.089-0.2-0.327-0.429-0.159
+                       c-0.168,0.127-0.166,0.307-0.13,0.477c0.041,0.197,0.338,0.431,0.028,0.569c-0.253,0.113-0.2-0.373-0.499-0.381
+                       c-0.094,0.186,0.163,0.259,0.163,0.409c0,0.22,0.432,0.303,0.215,0.561c-0.168,0.197-0.363-0.047-0.548-0.072
+                       c-1.002-0.126-1.051-0.16-1.801-1.491c-0.093,0.39-0.078,0.382,0.026,0.63c0.161,0.387,0.253,0.811,0.463,1.167
+                       c0.2,0.338-0.062,0.498-0.2,0.628c-0.2,0.191-0.251-0.119-0.359-0.219c-0.191-0.179-0.395-0.282-0.671-0.27
+                       c-0.542,0.024-1-0.161-1.298-0.689c-0.137,0.611-0.063,1.169,0.043,1.742c-0.121-0.024-0.21-0.04-0.21-0.043
+                       c0.138-1.163-0.674-0.98-1.364-0.965c-0.066,0-0.14,0.02-0.197,0.055c-0.716,0.424-1.066,0.306-1.353-0.498
+                       c-0.068-0.189-0.097-0.388-0.246-0.543c-0.166,0.06-0.027,0.48-0.334,0.33c-0.26-0.127,0.052-0.411-0.127-0.645
+                       c-0.155,0.562-0.624,0.439-1.015,0.49c-0.064,0.009-0.138-0.041-0.208-0.066c0.282-0.785-1.043-0.553-0.853-1.342
+                       c0.033-0.13-0.291-0.342-0.687-0.174c-0.649,0.276-1.386,0.428-2.089,0.434c-0.223,0.002-0.701-0.174-0.937-0.417
+                       c-0.624-0.638-1.419-0.782-2.236-0.902c-0.06,0.669,0.577,1.535,1.247,1.695c0.191,0.045,0.548-0.114,0.497,0.259
+                       c-0.051,0.376-0.37,0.217-0.595,0.159c-0.096-0.027-0.178-0.084-0.264,0.009c0.194,0.852,0.92,1.133,1.666,1.418
+                       c-0.119,0.088-0.158,0.145-0.194,0.141c-0.342-0.026-0.79-0.158-0.932,0.21c-0.076,0.193,0.212,0.566,0.399,0.81
+                       c0.274,0.357,0.643,0.604,1.047,0.829c0.227,0.127,0.629,0.23,0.614,0.746c-0.366-0.208-0.726-0.268-1.002-0.533
+                       c-0.115-0.109-0.296-0.138-0.38,0.025c-0.064,0.127,0.076,0.225,0.186,0.284c0.357,0.192,0.905,0.223,0.722,0.866
+                       c0.164,0.042,0.327,0.085,0.491,0.125c0.532,0.125,1.066,0.313,0.971,0.98c-0.071,0.502-0.4,0.946-0.875,1.159
+                       c-0.448,0.203-0.761-0.086-0.682-0.552c0.042-0.253,0.106-0.485-0.248-0.602c-0.282-0.095-0.477-0.063-0.63,0.193
+                       c-0.099,0.162-0.156,0.424-0.431,0.236c-0.212-0.144-0.212-0.358-0.051-0.523c0.461-0.468,0-0.649-0.265-0.872
+                       c-0.339-0.286-1.041-0.361-0.497-1.083c0.208-0.274-0.167-0.507-0.276-0.714c-0.297-0.563,0.193-1.197-0.261-1.745
+                       c-0.144-0.174-0.219-0.434-0.446-0.555c-0.125-0.065-0.259-0.185-0.199-0.276c0.367-0.542-0.132-1.099,0.09-1.675
+                       c0.234-0.609-0.641-1.82-1.321-1.854c-0.739-0.036-0.902-0.579-1.116-1.076c-0.095-0.22-0.191-0.367-0.404-0.466
+                       c-0.331-0.155-0.588-0.21-0.547,0.3c0.002,0.025,0,0.05,0,0.076C1063.909,331.824,1063.93,331.841,1064.824,331.452"/>
+       </g>
+       <g>
+               <path fill="#2A3524" d="M1199.795,334.537c0.164-0.299-0.031-0.327-0.272-0.468c-0.258-0.15-0.652-0.008-0.747-0.239
+                       c-0.15-0.362-0.452-0.285-0.591-0.209c-0.222,0.119,0.047,0.3,0.09,0.46c0.068,0.238,0.004,0.478-0.227,0.507
+                       c-0.318,0.044-0.302-0.181-0.244-0.437c0.055-0.24-0.222-0.361-0.346-0.342c-0.398,0.06-0.412,0.6-0.785,0.727
+                       c0.197,0.366,0.143,0.908,0.551,1.104c0.267,0.129,0.584-0.05,0.73-0.401c0.113-0.276,0.202-0.562,0.51-0.057
+                       c0.178,0.293,0.639,0.327,1.032,0.17C1199.906,335.189,1199.766,334.845,1199.795,334.537 M1195.996,305.838
+                       c0.304,1.697,0.417,2.076,0.631,2.084c0.938,0.034,1.875,0.028,2.71-0.716c-0.918,0.3-1.079-0.662-1.648-0.972
+                       C1197.083,305.904,1196.389,306.655,1195.996,305.838 M1157.097,332.665c-0.699-0.176-1.332,0.359-1.88-0.183
+                       c-0.136-0.134-0.238,0.076-0.333,0.2c-0.614,0.807-1.388,1.409-2.355,1.728c-0.26,0.085-0.211,0.267-0.238,0.436
+                       c-0.035,0.238,0.231,0.426,0.311,0.368c0.674-0.465,1.662-0.247,2.188-0.955c0.391-0.529,0.89-0.85,1.476-1.046
+                       C1156.555,333.113,1156.827,333.042,1157.097,332.665 M1151.403,331.227c0.002-0.403-0.315-0.462-0.565-0.498
+                       c-0.165-0.023-0.346,0.091-0.487-0.093c-0.32-0.416-0.819,0.076-1.163-0.227c-0.125,0.96-0.916,0.767-1.529,0.908
+                       c-0.325,0.076-0.919,1.177-0.756,1.369c0.287,0.338,0.633,0.049,0.824-0.087c1.01-0.721,2.132-1.021,3.346-1.086
+                       C1151.258,331.503,1151.475,331.505,1151.403,331.227 M1192.819,293.39c0.561,0.641,1.366,0.343,1.995,0.616
+                       c0.15,0.065,0.346-0.117,0.286-0.266c-0.142-0.346-0.072-0.585,0.229-0.78c-0.229-0.337-0.021-0.8-0.572-1.101
+                       c-1.122-0.619-1.685,0.799-2.795,0.329c0.422,0.704,1.097,0.519,1.38,1.012C1193.174,293.262,1193.016,293.319,1192.819,293.39
+                        M1187.101,271.854c-0.238,0.168-0.336-0.015-0.461-0.074c-0.393-0.181-0.741-0.079-1.013,0.212
+                       c-0.406,0.434,0.136,0.676,0.295,0.927c0.18,0.285,0.495,0.002,0.737-0.121c0.242-0.123,0.476-0.291,0.735-0.346
+                       c0.461-0.1,0.632-0.323,0.482-0.78c-0.057-0.175-0.072-0.355,0.031-0.522c-0.258-0.13-0.405,0.242-0.655,0.147
+                       c-0.063-0.539,0.39-0.375,0.63-0.488c0.276-0.129,0.452-0.323,0.475-0.632c0.022-0.284-0.199-0.341-0.405-0.428
+                       c-0.665-0.286-1.321-0.59-1.512-1.395c-0.006-0.025-0.1-0.029-0.174-0.046c-0.081,0.466,0.452,0.897,0.303,1.208
+                       C1186.1,270.482,1186.591,271.163,1187.101,271.854 M1151.536,283.297c0.782-0.068,0.194,0.683,0.623,0.831
+                       c0.501,0.172,0.61,0.499,0.575,0.981c-0.008,0.114,0.234,0.301,0.395,0.356c0.143,0.047,0.239-0.132,0.317-0.272
+                       c0.117-0.21,0.121-0.68,0.526-0.408c0.315,0.214-0.097,0.386-0.169,0.579c-0.069,0.19-0.344,0.391-0.053,0.55
+                       c0.244,0.132,0.707,0.321,0.815,0.102c0.348-0.717,1.13-0.831,1.616-1.338c0.195-0.202,0.355-0.406,0.257-0.646
+                       c-0.166-0.413-0.403,0.015-0.609-0.001c-0.247-0.021-0.418,0.301-0.704,0.143c0.069-0.295,0.274-0.392,0.529-0.536
+                       c0.472-0.265,1.079-0.476,0.436-1.317c-0.398-0.521-0.943-0.608-1.374-0.962c-0.701-0.573-1.329-0.304-1.754,0.47
+                       c-0.047,0.089-0.043,0.252-0.217,0.216c-0.875-0.176-1.238,0.736-1.981,0.878c0.541,0.036,1.055-0.489,1.561,0.062
+                       C1152.138,283.237,1151.834,282.982,1151.536,283.297 M1168.636,357.457c0.013-4.759,0.032-9.518,0.026-14.28
+                       c0-0.634,0.082-1.293-1.052-1.099c-0.376,0.065-0.998-0.456-1.652-0.312c-0.185,0.04-0.336-0.088-0.539,0.157
+                       c-0.35,0.423-0.763,0.667-0.958-0.188c-0.053-0.228-0.138-0.633-0.457-0.63c-0.397,0.007-0.101,0.431-0.241,0.595
+                       c-0.173,0.202-0.408,0.918-0.61,0.004c-0.578,0.632-0.548-0.178-0.794-0.334c-0.212-0.054-0.024,0.838-0.519,0.201
+                       c-0.231-0.292-0.531,0.159-0.855,0.114c-0.21-0.03-0.593,0.182-0.656-0.055c-0.228-0.866-0.687-0.162-0.829-0.068
+                       c-0.301,0.2-0.649,0.546-0.042,0.914c0.316,0.191,0.063,0.441-0.132,0.601c-0.27,0.217-0.578,0.457-0.907,0.155
+                       c-0.087-0.08,0.03-0.399-0.273-0.233c-0.117,0.062-0.21,0.128-0.194,0.35c0.034,0.533-0.053,0.843-0.832,0.786
+                       c-0.678-0.048-1.536,0.587-1.512,1.265c0.031,0.818-0.565,0.785-0.925,1.255c-0.01-0.473-0.409-0.777,0.035-1.295
+                       c-0.786,0.542-1.544,0.536-2.287,0.597c-0.212,0.017-0.56,0.076-0.556-0.163c0.002-0.249,0.224-0.53,0.413-0.736
+                       c0.102-0.111,0.385-0.191,0.508-0.13c0.83,0.418,1.261,0.069,1.514-0.714c0.066-0.202,0.181-0.509,0.408-0.416
+                       c0.533,0.213,0.559-0.184,0.693-0.478c-0.315-0.134-0.598-0.361-0.986-0.206c-0.287,0.113-0.591,0.374-0.714-0.274
+                       c-0.072-0.382,0.176-0.318,0.277-0.392c0.176-0.126,0.519,0.084,0.626-0.315c-0.3-0.269-0.777,0.174-1.074-0.24
+                       c-0.099-0.14-0.253,0.042-0.289,0.218c-0.136,0.677-0.661,0.948-1.207,1.249c-0.47,0.257-0.818,1.018-1.356,0.043
+                       c-0.107-0.193-0.563,0.089-0.712,0.27c-0.297,0.356-0.707,0.272-1.057,0.402c-0.258,0.097-0.51-0.06-0.61-0.31
+                       c-0.098-0.24,0.168-0.315,0.316-0.368c0.217-0.079,0.293-0.108,0.156-0.363c-0.17-0.321-0.287-0.097-0.402-0.006
+                       c-0.223,0.174-0.425,0.383-0.884,0.269c0.377-0.837,1.385-0.763,1.843-1.471c-0.606-0.062-1.187,0.329-1.798,0.223
+                       c-0.045-0.008-0.127,0.102-0.153,0.087c-1.048-0.556-1.202,0.388-1.489,0.953c-0.541-0.052-0.08-0.941-0.741-0.732
+                       c-0.486,0.153-0.605,0.555-0.524,1.052c0.042,0.244-0.032,0.587-0.372,0.491c-0.401-0.117,0.144-0.369,0.015-0.48
+                       c-0.235-0.202,0.045-0.717-0.147-0.63c-0.587,0.259-0.938-0.733-1.501-0.204c-0.112,0.108-0.047,0.287,0.459,0.749
+                       c-1.393-0.626-1.697,0.871-2.746,0.806c-0.044-0.274,0.601-0.59,0.106-0.878c-0.336-0.194-0.719-0.1-1.025,0.136
+                       c-0.372,0.286-0.726,0.597-1.244,0.499c-0.037-0.214,0.105-0.297,0.22-0.392c0.34-0.281,0.367-0.824,0.274-1.032
+                       c-0.182-0.401-0.571-0.026-0.879,0.063c-0.542,0.155-1.081,0.217-1.52-0.32c0.308-0.336,0.687-0.392,1.095-0.368
+                       c0.242,0.011,0.355-0.118,0.295-0.346c-0.079-0.301-0.217-0.048-0.325-0.015c-0.902,0.276-1.556-0.363-2.31-0.627
+                       c-0.206-0.073-0.128-0.261,0-0.368c0.2-0.17,0.113-0.636,0.582-0.538c0.544,0.113,1.119,0.117,1.639,0.295
+                       c0.691,0.236,1.375,0.253,2.064,0.125c0.219-0.042,0.334-0.002,0.493,0.1c0.692,0.447,1.098-0.188,1.597-0.451
+                       c0.053-0.029,0.058-0.248,0.013-0.342c-0.093-0.183-0.255-0.108-0.401-0.042c-0.285,0.126-0.636,0.308-0.799-0.089
+                       c-0.187-0.458,0.268-0.416,0.525-0.545c0.339-0.172,0.522-0.498,0.651-0.866c-0.35-0.148-0.454,0.158-0.603,0.311
+                       c-0.424,0.439-0.854,0.477-1.333,0.112c-0.145-0.112-0.285-0.291-0.444-0.312c-0.661-0.082-1.325,0.162-1.805-0.732
+                       c-0.221-0.411-0.703-0.578-0.119-1.21c-1.113,0.378-1.928,0.845-2.483,1.697c-0.049,0.076-0.261,0.221-0.24,0.072
+                       c0.073-0.523-0.638-0.208-0.492-0.367c0.376-0.413-0.111-1.114,0.616-1.41c0.597-0.243,0.668-0.87,0.578-1.47
+                       c-0.387-0.093-0.328,0.289-0.477,0.353c-0.389,0.168-0.788,0.873-1.235-0.031c-0.13-0.26-0.618-0.438-0.984-0.597
+                       c-0.199-0.089-1.104,0.47-0.616-0.502c0.002-0.006-0.161-0.134-0.201-0.116c-0.739,0.386-0.691-0.564-1.145-0.686
+                       c-0.157-0.042-0.034-0.277,0.054-0.402c0.114-0.163,0.25-0.138,0.396-0.031c0.27,0.201,0.542,0.412,0.934,0.327
+                       c-0.195-0.266-0.072-0.677-0.454-0.83c0.72-0.327,1.377-0.227,2.092,0.047c1.123,0.432,2.356,0.177,3.525,0.434
+                       c0.588,0.128,0.915-0.135,1.032-0.856c0.077-0.471,0.641-0.893,1.327-0.889c-0.386-0.136-0.772-0.272-1.158-0.409
+                       c0.16-0.468,0.685-0.572,0.946-0.952c0.145-0.213,0.336-0.312,0.049-0.591c-0.253-0.243-0.299-0.291-0.628-0.028
+                       c-0.381,0.304-0.959,0.365-1.5,0.448c0.225-0.474,0.937-0.563,0.739-1.288c-0.906,0.13-1.612,1.351-2.708,0.608
+                       c0.871-0.874-0.273-1.223-0.609-1.375c-0.801-0.358-1.334-1.012-2.03-1.462c-0.165-0.106-0.246-0.186-0.123-0.352
+                       c0.21-0.287,0.552-0.588,0.843-0.411c0.989,0.606,2.232,0.554,3.168,1.348c0.289,0.247,1.104,0.768,1.34-0.354
+                       c0.093-0.443,0.667-0.17,1.005-0.234c0.414-0.078,0.216,0.25,0.165,0.49c-0.026,0.129,0.181,0.446,0.263,0.438
+                       c0.774-0.066,1.481,0.261,2.224,0.472c0.049-0.459-0.288-0.57-0.418-0.799c-0.245-0.434-0.153-0.615,0.244-0.782
+                       c0.715-0.298,1.406-0.717,2.151-0.861c0.416-0.081,0.943-0.414,1.487,0.286c0.403,0.519,1.533,0.447,2.215,0.115
+                       c0.981-0.475,1.675-0.848,3.068-1.042c0.189-0.027,0.468-0.083,0.332-0.302c-0.368-0.593-0.364-1.405-0.793-1.845
+                       c-0.263-0.271-0.852-0.413-1.276-0.697c-0.232-0.155-0.429,0.257-0.582,0.481c-0.289,0.419-0.533,0.884-1.125,1.023
+                       c0-0.637,0.891-0.633,0.818-1.337c-0.243-0.099-0.456,0.147-0.657,0.177c-0.217-0.295,0.165-0.37,0.127-0.578
+                       c-0.259,0.216-0.492-0.113-0.779-0.017c-0.569,0.193-1.586,0.678-2.136,1.13c-0.268-0.449,0.452-0.668,0.191-1.179
+                       c-0.576,0.268-0.979,0.866-1.71,1.044c0.209-0.98,1.372-1.217,1.566-2.166c-0.5-0.153-0.402,0.51-0.804,0.527
+                       c-0.118-1.129-0.898-0.03-1.286-0.371c-0.108,0.92-1.139,0.211-1.358,0.882c-0.4-0.295-0.176-0.637-0.228-0.921
+                       c-0.075-0.43-0.258-0.597-0.67-0.378c-0.091,0.049-0.241,0.331-0.231,0.161c0.023-0.363-0.641-0.322-0.359-0.625
+                       c0.41-0.442,0.137-1.255,0.876-1.497c0.138-0.046,0.328-0.229,0.25-0.445c-0.034-0.091-0.172-0.193-0.27-0.203
+                       c-0.216-0.02-0.31,0.133-0.384,0.329c-0.096,0.256-0.221,0.504-0.372,0.731c-0.117,0.172-0.002,0.772-0.584,0.274
+                       c-0.151-0.129-0.926,0.428-1.227,0.895c-0.315-0.093,0.274-0.783-0.45-0.625c-0.1,0.021,0.023-0.372,0.063-0.38
+                       c0.813-0.157,0.015-0.418,0.029-0.628c-0.145,0.263-0.288,0.526-0.474,0.863c-0.167-0.504-0.4-0.731-0.863-0.433
+                       c-0.282,0.183-0.629-0.065-0.552-0.232c0.321-0.692-0.378-0.715-0.584-1.052c-0.126-0.205-0.595-0.075-0.482-0.443
+                       c0.085-0.278,0.38-0.363,0.675-0.428c0.238-0.053,0.735,0.044,0.456-0.57c-0.082-0.176,0.256-0.502-0.253-0.24
+                       c-0.469,0.242-0.453-0.543-0.901-0.357c0.162-0.414,0.524-0.274,0.806-0.422c-0.372-0.539-1.369-0.131-1.348-1.043
+                       c0.835-0.202,1.467,1.024,2.431,0.468c-0.256-0.057-0.153-0.584-0.537-0.458c-0.637,0.209-0.197-0.595-0.586-0.589
+                       c0.176-0.411,0.465,0.138,0.68-0.106c0.051-0.272-0.154-0.589,0.021-0.861c0.541-0.1-0.112,1.329,0.917,0.608
+                       c0.091,0.567-0.397,1.059-0.089,1.6c0.13,0.229-0.142,0.941,0.528,0.343c0.092-0.081,0.253,0.043,0.217,0.193
+                       c-0.235,0.981,0.41,0.545,0.775,0.467c0.651-0.136,1.221-0.624,1.952-0.486c-0.042,0.342-0.319,0.435-0.535,0.456
+                       c-0.356,0.036-0.525,0.148-0.448,0.515c0.068,0.317,0.31,0.53,0.593,0.468c0.609-0.136,1.008,0.079,1.422,0.515
+                       c0.506,0.53,1.181,0.308,2.037-0.594c-0.352-0.155-0.691-0.305-1.051-0.463c0.69-0.611,1.475,0.064,2.21-0.255
+                       c-0.543-0.84-1.331-1.3-2.289-1.646c0.811-0.181,1.703-0.227,1.306-1.408c-0.431-0.032-0.609,0.357-0.877,0.594
+                       c-0.287,0.251-0.837,0.483-0.934,0.301c-0.346-0.65-1.15-0.614-1.529-1.15c0.205-0.358,0.643-0.052,0.87-0.444
+                       c-0.288-0.068-0.775-0.007-0.627-0.494c0.12-0.389,0.504-0.223,0.725-0.151c0.422,0.136,0.851-0.18,1.27,0.095
+                       c0.159,0.103,0.352-0.074,0.383-0.282c0.059-0.38-0.823-1.122-1.216-1.037c-0.272,0.059-0.597,0.038-0.809,0.185
+                       c-0.615,0.426-0.722,0.015-0.807-0.494c-0.21,0.244-0.301,0.636-0.649,0.492c-0.308-0.128-0.03-0.42-0.043-0.636
+                       c-0.015-0.247-1.159-0.968-1.372-0.83c-0.373,0.239-0.743,0.17-1.293,0.103c0.576-0.467,1.003-0.855,1.724-0.732
+                       c-0.788-1.004-1.486-0.197-2.255,0.042c0.157-0.535,0.692-0.432,0.89-0.844c-0.739-0.151-1.271-0.685-2.176-1.014
+                       c1.241-0.116,2.119,0.141,2.858,0.819c0.229-0.214,0.11-0.411-0.083-0.666c0.526,0.019,0.686,0.389,0.915,0.619
+                       c0.138,0.138-0.096,0.588,0.315,0.54c0.511-0.059-0.143-0.557,0.229-0.707c0.885,0.419,1.792,0.35,2.707,0.117
+                       c-0.571-0.232-1.091-0.652-1.737-0.397c-0.07,0.028-0.248-0.024-0.248-0.045c-0.028-0.771-0.791-1.019-1.107-1.581
+                       c-0.028-0.049-0.053-0.098-0.08-0.149c1.24-0.547-0.134-0.946-0.032-1.505c0.781,0.375,1.346-0.274,2.027-0.551
+                       c-1.159-1.142,0.657-0.743,0.752-1.436c-0.807,0.2-1.565,0.44-2.366,0.134c0.033-0.179,0.258-0.204,0.423-0.302
+                       c0.262-0.155,0.665-0.316,0.576-0.634c-0.06-0.212-0.444-0.383-0.803-0.19c-0.115,0.063-0.339-0.073-0.575-0.134
+                       c0.312-0.215,0.773-0.232,0.777-0.503c0.006-0.379-0.408-0.375-0.726-0.41c-0.376-0.039-0.162-0.278-0.187-0.486
+                       c-0.049-0.408,0.086-0.273,0.331-0.265c0.921,0.026,1.805,0.068,2.045,1.223c0.331-0.11,0.41,0.392,0.739,0.3
+                       c0.427-0.117,0.042-0.33,0.068-0.495c0.022-0.136,0.11-0.254,0.25-0.222c0.264,0.057,0.373,0.442,0.716,0.36
+                       c-0.085,0.151-0.172,0.301-0.343,0.603c0.498-0.31,0.902-0.278,1.328-0.255c0.816,0.044,1.536-0.551,2.421-0.355
+                       c0.392,0.087,0.26-0.41,0.234-0.653c-0.036-0.318-0.288-0.148-0.433-0.108c-0.552,0.151-1.174-0.338-0.96-0.895
+                       c0.45-1.178-0.665-0.921-1.074-1.225c-0.374-0.276-0.952-0.276-1.487-0.411c0.237-0.401,0.567-0.413,0.846-0.508
+                       c0.477-0.16-0.014-0.441,0.084-0.667c0.08-0.18-0.046-0.22-0.261-0.209c-1.06,0.057-2.094,0.016-2.415-1.321
+                       c0.419,0.019,0.911,0.32,1.478,0.033c-0.288-0.358-0.938-0.352-0.951-0.952c0.56-0.329,0.951,0.103,1.427,0.279
+                       c1.117,0.414,2.264,0.746,3.41,1.073c0.453,0.128,0.935,0.489,1.405,0.013c0.401,0.589,1.123,0.367,1.654,0.652
+                       c0.201,0.107,0.847,0.857,0.656-0.256c-0.005-0.028,0.072-0.1,0.117-0.106c1.082-0.118,0.352-0.528,0.109-0.838
+                       c0.054-0.028,0.084-0.058,0.11-0.055c0.528,0.076,1.074,0.153,1.445-0.342c0.186-0.249-0.41-0.465-0.917-0.272
+                       c-0.168,0.065-0.295,0.24-0.463,0.306c-0.431,0.172-0.747-0.059-0.58-0.458c0.168-0.4-0.14-0.242-0.243-0.263
+                       c-0.51-0.102-1.012-0.21-1.396-0.621c0.128-0.195,0.375-0.017,0.482-0.121c0.287-0.277,0.839,0.25,0.932-0.225
+                       c0.094-0.484-0.488-0.698-0.801-0.876c-0.388-0.221-0.647-0.281-0.32-0.759c0.068-0.102-0.011-0.447-0.117-0.505
+                       c-0.709-0.388-0.781-1.338-1.552-1.701c0.316-0.193,0.52,0.138,0.754,0.12c0.448-0.031,0.804-0.339,0.838-0.749
+                       c0.026-0.351-0.442-0.315-0.709-0.398c-0.199-0.062-0.501,0.053-0.628-0.058c-0.294-0.259,0.301-0.369,0.195-0.427
+                       c-0.181-0.098-0.034-0.919-0.577-0.304c-0.047,0.051-0.366,0.21-0.432-0.113c-0.04-0.196-0.044-0.38,0.238-0.392
+                       c0.139-0.006,0.325,0.053,0.357-0.253c-0.247-0.128-0.588-0.074-0.824-0.32c-0.225-0.233-0.531-0.387-0.998-0.711
+                       c0.593,0.126,0.974,0.224,1.359,0.283c0.334,0.049,0.516,0.566,0.945,0.306c-0.297-0.374,0.412-0.437,0.23-0.867
+                       c-0.241-0.572-0.737-0.07-1.031-0.349c0.21-0.474,0.704-0.25,1.064-0.457c-0.558-0.502-1.486-0.353-1.836-1.21
+                       c0.768,0.233,1.467,0.559,2.244,0.578c0.329,0.009,0.571,0.264,0.762,0.496c0.706,0.855,1.262,0.776,1.742-0.279
+                       c-0.026-0.018-0.051-0.036-0.079-0.052c-0.36-0.193-1.007,0.359-1.051-0.083c-0.051-0.526,0.703-0.359,1.187-0.57
+                       c-0.616-0.389-0.931-1.203-1.888-0.834c0.138-0.991,1.196-1.103,1.597-1.856c-0.701-0.155-1.178,0.043-1.467,0.793
+                       c-0.308-0.735,0.372-0.98,0.41-1.448c-0.979-0.293-1.206,0.432-1.396,1.208c-0.357-0.203-0.015-1.086-0.768-0.682
+                       c-0.018,0.011-0.208-0.215-0.253-0.351c-0.07-0.208,0.117-0.249,0.267-0.289c0.232-0.063,0.476-0.184,0.703-0.161
+                       c0.756,0.079,0.928-0.246,0.701-1.033c-0.458,0.623-1.128,0.623-1.752,0.967c0.017-0.792,0.758-0.599,1.079-1.007
+                       c-0.79-0.067-1.365,0.27-2.083,0.835c0.308-0.655,0.102-0.973-0.389-1.064c0.174-0.36,0.55-0.247,0.65-0.624
+                       c-0.516,0.351-0.81-0.229-1.257-0.219c-0.074,0.001-0.338,0.149-0.217-0.173c0.24-0.645-0.004-0.643-0.494-0.377
+                       c-0.145,0.077-0.402,0.058-0.496-0.117c-0.124-0.233,0.124-0.216,0.251-0.267c0.189-0.074,0.126-0.248,0.028-0.267
+                       c-0.52-0.098-0.304-0.596-0.669-0.976c0.469,0.061,0.756-0.013,0.993,0.306c0.096,0.129,0.345,0.259,0.479,0.221
+                       c0.293-0.081-0.196-0.379,0.144-0.552c0.472,0.523,0.994,1.055,1.788,1.023c0.287-0.013,0.271,0.055,0.267,0.289
+                       c-0.005,0.146,0.16,0.417,0.268,0.426c0.726,0.069,1.302,0.556,2.001,0.676c0.197,0.035,0.435-0.013,0.475-0.206
+                       c0.076-0.392-0.536-0.24-0.552-0.736c1.453,0.87,3.275,0.6,4.497,1.92c0.219-0.432,0.056-0.77-0.018-1.14
+                       c0.327-0.151,0.259,0.409,0.612,0.278c-0.047-0.297,0.271-0.748-0.031-0.952c-0.218-0.148-0.71-0.055-0.985,0.289
+                       c-0.176,0.221-0.418,0.259-0.648,0.03c-0.237-0.238,0.003-0.359,0.09-0.549c0.131-0.277,0.382-0.723-0.308-0.592
+                       c-0.197,0.038-0.352,0.024-0.266-0.18c0.243-0.598-0.263-0.401-0.477-0.583c-0.402-0.346-0.667-0.857-1.253-1.022
+                       c1.24,0.055,2.393,0.429,3.557,0.735c0.391,0.103,0.556,0.038,0.412-0.377c-0.122-0.358,0.087-0.647,0.212-1.047
+                       c-0.501,0.16-0.678,0.606-1.102,0.861c-0.231-0.616-0.936-0.55-1.378-0.998c-0.463-0.467-0.514-1.173-1.083-1.532
+                       c0.24-0.397,0.585,0.045,0.828-0.097c0.232-0.134,0.422-0.342,0.633-0.519c0.342,0.17-0.072,0.884,0.206,0.693
+                       c0.523-0.359,1.533,0.074,1.662-1.018c-0.896,0.591-1.905-0.683-2.756,0.384c0.621-0.544,0.414-1.268,0.707-1.976
+                       c-0.622,0.342-1.189,0.062-1.803,0.295c-0.375,0.14-1.314,0.289-1.624-0.274c-0.382-0.688-1.179,0.203-1.41-0.563
+                       c0.174-0.455,0.731-0.466,1.081-0.76c-0.21-0.203-0.383-0.381-0.612-0.277c-0.459,0.208-0.862,0.125-1.248-0.157
+                       c-0.096-0.069-0.393-0.136-0.255-0.205c0.205-0.105,0.097-0.523,0.492-0.404c0.412,0.125,0.85,0.153,1.294,0.225
+                       c-0.251-1.056-0.251-1.056-0.911-0.984c0.052-0.549,0.662-0.488,0.925-0.827c-0.643-0.168-0.643-0.168-1.688,0.445
+                       c0.012-0.466,0.304-0.806,0.546-1.438c-0.578,0.608-1.135,0.579-1.793,0.606c0.3-0.614,0.916-0.474,1.264-0.774
+                       c-0.508-0.31-1.584-0.562-2.45-0.572c0.065-0.318,0.426-0.206,0.605-0.424c-0.363-0.229-0.85-0.157-1.069-0.034
+                       c-0.524,0.289-0.272-0.4-0.613-0.392c-0.172,0.001,0.012-0.254,0.225-0.248c0.01-0.737,0.58-0.221,0.858-0.371
+                       c0.159-0.087,0.507,0.237,0.515-0.24c0.002-0.166,0.224-0.204,0.226-0.136c0.032,0.693,1.051,0.57,1.036,1.312
+                       c-0.01,0.409,0.331,0.547,0.773,0.607c0.017-0.467-0.998-1.07,0.14-1.351c-0.002-0.33-0.42-0.302-0.532-0.54
+                       c0.09-0.063,0.135-0.124,0.178-0.124c0.586,0.009,1.07,0.268,1.788,0.057c0.83-0.242,1.975,0.009,2.852,0.618
+                       c0.425,0.297,0.961,0.721,1.009-0.319c0.01-0.223,0.412-0.194,0.362-0.498c-0.511-0.274-0.727,0.112-0.936,0.538
+                       c-0.187-0.602-1.166-1.086-1.641-0.897c-0.472,0.191-0.472,0.191-1.173-0.151c0.514-0.326,1.19-0.138,1.614-0.587
+                       c-0.55-0.685-0.968-0.119-1.383,0.164c-0.282-0.308,0.357-0.415,0.088-0.632c-0.109-0.091-0.382-0.074-0.531-0.003
+                       c-0.297,0.139-0.625,0.343-0.775-0.076c-0.141-0.396,0.389-0.272,0.539-0.482c0.047-0.063,0.14-0.094,0.319-0.206
+                       c-0.844-0.249-1.676-0.393-2.019-1.294c1.029,0.131,2.138,0.077,2.527,1.464c0.291-0.287,0.126-0.596,0.264-0.855
+                       c0.067,0.025,0.182,0.033,0.203,0.08c0.301,0.692,1.106,0.904,1.455,1.551c0.133,0.247,0.286,0.033,0.45-0.003
+                       c0.743-0.159,1.491-0.344,2.072,0.443c0.138,0.187,0.395,0.159,0.391-0.285c-0.004-0.553,0.352-0.716,0.644-0.322
+                       c0.279,0.371,0.683,0.742,0.959,0.903c0.628,0.359,1.582,0.692,2.175,0.458c1.259-0.499,1.198-0.651,1.937-0.654
+                       c-0.37-0.309-0.665-0.533-0.747-1.011c-0.054-0.299-0.636-0.096-1.014,0.128c0.102-0.63,0.559-0.845,0.857-1.182
+                       c0.138-0.158,0.217-0.339,0.064-0.5c-0.192-0.203-0.314,0.018-0.456,0.122c-0.671,0.497-1.51,0.148-1.677-0.696
+                       c-0.109-0.553-0.563-0.303-0.777-0.239c-0.517,0.152-0.812-0.084-1.174-0.375c-0.464-0.371-0.235-0.593,0.194-0.892
+                       c-0.908-0.149-1.644-0.445-2.196-1.093c0.663-0.076,1.311-0.325,1.833,0.445c0.289,0.428,0.614,0.123,0.613-0.576
+                       c0.496,0.854,0.846,1.458,1.679,1.433c0.182-0.006,0.15,0.233,0.207,0.365c0.079,0.185,0.306,0.242,0.351,0.1
+                       c0.138-0.428,0.309-0.903,0.325-1.296c0.023-0.48-0.173-1.119-0.739-1.396c-0.136-0.065-0.359,0.084-0.598-0.1
+                       c0.549-0.379,0.984-0.847,1.283-1.419c-0.042-0.044-0.059-0.078-0.082-0.081c-1.453-0.199-1.623-0.223-1.457-1.36
+                       c0.108-0.73-0.297-0.864-0.686-1.185c0.692-0.358,1.506,0.237,2.098-0.507c-0.981-0.394-0.195-1.046-0.246-1.622
+                       c0.411,0.676,1.127,1.063,1.474,1.777c0.129,0.265,0.348,0.655,0.796,0.24c0.238-0.221,0.437-0.146,0.406,0.255
+                       c-0.032,0.415,0.406,0.292,0.607,0.449c0.027,0.021,0.212-0.106,0.268-0.198c0.172-0.28-0.109-0.356-0.243-0.514
+                       c-0.339-0.401-0.936-0.764-0.165-1.342c0.189-0.141,0.18-0.411-0.138-0.596c-0.255-0.147-0.408-0.228-0.612,0.036
+                       c-0.125,0.161-0.142,0.434-0.46,0.453c-0.327-0.502,0.483-0.621,0.358-1.107c-0.337-0.062-0.412,0.409-0.705,0.406
+                       c-0.164-0.143,0.196-0.769-0.546-0.425c-0.721,0.335-0.913,0.087-0.814-0.621c0.031-0.211-0.19-0.355-0.232-0.33
+                       c-0.714,0.422-0.268-0.544-0.629-0.521c0.074-0.451,0.508-0.218,0.746-0.378c0.118-0.078,0.4,0.236,0.534-0.105
+                       c-0.443-0.083-0.131-0.885-0.632-0.773c-0.595,0.13-0.875-0.714-1.47-0.375c0.006-0.433-0.136-0.809-0.488-1.15
+                       c0.484,0.197,0.917,0.457,1.327-0.039c0.081-0.099,0.269-0.091,0.331,0.022c0.374,0.676,0.965,0.933,1.7,1.012
+                       c0.109,0.012,0.173,0.414,0.256,0.635c0.858-0.513,1.274,0.698,2.051,0.532c0.173-0.036,0.323,0.185,0.551-0.078
+                       c0.18-0.205,0.605,0.178,0.496,0.472c-0.085,0.23,0.003,0.38,0.183,0.46c0.308,0.136,0.194-0.198,0.291-0.302
+                       c0.286-0.304,0.558-0.623,0.835-0.937c0.199,0.14,0.103,0.267,0.002,0.386c-0.168,0.196-0.362,0.443-0.13,0.649
+                       c0.218,0.193,0.369-0.109,0.527-0.234c0.227-0.18,0.471-0.466,0.531,0.115c0.015,0.14,0.031,0.28,0.153,0.039
+                       c0.288-0.559,0.677-0.058,0.817,0.046c0.593,0.451,0.826,0.398,1.153-0.447c-0.7,0.363-1.134-0.542-1.92-0.206
+                       c0.186-0.378,0.961-0.695,0.016-0.838c-0.453-0.068-0.873-0.357-1.306-0.553c-0.057-0.025-0.1-0.076-0.149-0.115
+                       c-0.824,1.144-1.198-0.601-1.918-0.127c0.072-0.549,0.45-0.31,0.616-0.5c-0.157-0.266-0.463-0.352-0.694-0.285
+                       c-0.865,0.245-1.035-0.174-0.869-1.014c-0.463,0.226-0.853,0.486-0.87-0.284c-0.005-0.271-0.504-0.3-0.82-0.221
+                       c-0.232,0.059-0.423,0.272-0.795,0.16c0.678-0.334,0.404-0.736,0.181-1.161c-0.359-0.687-0.669,0.247-1.032-0.038
+                       c0.325-0.658-0.3-0.778-0.932-1.15c1.206,0.058,2.034,0.396,2.879,0.901c0.249-0.136,0.009-0.483,0.125-0.791
+                       c0.222,0.105,0.537,0.155,0.608,0.312c0.11,0.246-0.14,0.728,0.274,0.749c0.221,0.013,0.594-0.364,0.671-0.634
+                       c0.119-0.402-0.34-0.517-0.61-0.704c-0.031-0.021-0.013-0.11-0.031-0.303c0.681,0.547,1.709,0.348,2.036,1.339
+                       c0.238-0.21,0.539,0.013,0.781-0.11c0.185-0.092,0.264-0.261,0.158-0.472c-0.105-0.21-0.219-0.353-0.506-0.237
+                       c-0.234,0.092-0.486,0.008-0.715-0.109c0.014-0.46,0.734,0.127,0.662-0.466c-0.051-0.431-0.235-0.652-0.692-0.55
+                       c0.051-0.733-0.4-0.656-0.886-0.584c-0.129,0.019-0.191-0.236-0.129-0.287c0.669-0.543-0.068-0.844-0.325-1.387
+                       c0.567,0.244,0.955,0.664,1.465,0.334c0.117-0.075,0.282,0.027,0.249,0.167c-0.181,0.83,0.804,0.655,0.981,1.165
+                       c0.161-0.072,0.547,0.376,0.486-0.242c-0.027-0.274,0.242-0.216,0.412-0.121c0.304,0.17,0.614,0.327,0.974,0.257
+                       c0.245-0.049,0.655,0.177,0.703-0.216c0.037-0.327-0.316-0.403-0.615-0.424c-0.069-0.005-0.136-0.079-0.189-0.111
+                       c0.04-0.425,0.511-0.361,0.647-0.689c-0.59-0.415-1.116,0.477-1.712,0.03c-0.052-0.268,0.429-0.287,0.387-0.634
+                       c-0.528-0.081-0.747,0.908-1.384,0.441c0.011-0.452,0.588-0.13,0.677-0.507c-0.901-0.24-1.427-1.666-2.752-0.672
+                       c0.104-0.695-0.066-1.139-0.692-1.225c0.248-0.466,0.977,0.541,1.025-0.43c0.003-0.064,0.213,0.047,0.281,0.142
+                       c0.463,0.632,1.423,0.647,1.76,1.432c0.257-0.191,0.551,0.589,0.867-0.083c0.157-0.332,0.586-0.13,0.849,0.193
+                       c0.17,0.208,0.386,0.699,0.69,0.391c0.3-0.302,0.476-0.806,0.542-1.247c0.051-0.354-0.338-0.314-0.626-0.331
+                       c-0.538-0.034-0.585-0.524-0.746-1.108c-0.176-0.644-0.42-1.397-1.155-1.798c0.862-0.252,1.57,0.498,2.402,0.127
+                       c0.371-0.167,0.515,0.879,1.112,0.37c0.438,0.634,0.958,0.846,1.622,0.312c0.058,0.131,0.117,0.263,0.186,0.419
+                       c0.298-0.517,0.244-1.071-0.115-1.397c-0.625-0.564-0.431-0.793,0.22-1.009c0.066-0.022,0.098-0.147,0.172-0.265
+                       c-0.272-0.117-0.573,0.319-0.613,0.133c-0.281-1.346-1.255-0.521-2.052-0.575c0.357-0.434,0.91-0.21,1.1-0.665
+                       c-0.686-0.195-1.613,0.168-1.971-0.827c0.137-0.225,0.827,0.408,0.623-0.376c0.316-0.061,0.418,0.283,0.686,0.361
+                       c0.305,0.089,0.582,0.733,0.879,0.274c0.263-0.4-0.488-0.298-0.652-0.63c0.308-0.131,0.603-0.255,1.075-0.457
+                       c-0.665-0.094-1.138,0.323-1.616-0.021c0.28-0.452,0.857-0.012,1.261-0.526c-0.707-0.068-1.009-0.844-1.784-0.713
+                       c-0.089,0.014-0.202-0.12-0.303-0.184c0.807-0.649-0.305-0.795-0.331-1.552c0.607,1.018,1.864,0.799,2.174,1.912
+                       c0.091,0.324,0.469,0.253,0.72,0.351c-0.036-0.472,0.63-0.249,0.698-0.791c0.068-0.53-0.229-0.455-0.438-0.676
+                       c-0.672-0.711-1.523-1.099-2.341-1.622c0.741,0.314,1.512,0.155,2.255,0.274c0.344,0.055,0.573-0.16,0.852-0.247
+                       c0.055-0.019,0.078-0.142,0.116-0.216c-0.786,0.055-0.212-0.654-0.524-0.942c-0.539-0.496,0.14-0.434,0.376-0.56
+                       c-0.648-0.506-0.852-1.389-1.67-1.735c0.72-0.208,1.3,1.364,2.014,0.032c0.412-0.77-0.665-0.665-0.68-1.259
+                       c0.554,0.034,0.756,0.506,1.057,0.793c0.266,0.255,0.568,0.407,0.75,0.077c0.136-0.244,0.582-0.617,0.068-0.944
+                       c-0.125-0.077-0.206-0.138-0.157-0.27c0.216-0.58,0.219-0.576-0.356-0.793c-0.012-0.004-0.007-0.059-0.012-0.102
+                       c0.324-0.392,0.676,0.238,1.075-0.061c-0.618-0.872-1.134-1.805-1.397-2.871c0.271,0.428,0.556,0.848,0.809,1.288
+                       c0.132,0.23,0.301,0.381,0.546,0.473c0.15,0.055,0.295,0.147,0.424,0.004c0.153-0.173-0.105-0.278-0.103-0.367
+                       c0.016-0.42-0.865-0.88,0.108-1.308c0.297-0.131-0.317-0.536-0.361-0.984c1.231,0.521,1.191-0.43,1.327-1.251
+                       c0.357,0.263,0.127,0.517,0.176,0.71c0.073,0.28-0.611,1.14,0.493,0.708c0.083-0.035,0.202-0.008,0.191,0.122
+                       c-0.013,0.138,0.051,0.35-0.179,0.362c-0.327,0.017-0.518,0.166-0.596,0.495c0.189,0.254,0.972-0.126,0.696,0.721
+                       c-0.074,0.227,0.756,0.414,1.145,0.69c0.467,0.331,0.35,0.506,0.273,0.898c-0.031,0.155-0.528,0.152-0.148,0.43
+                       c0.225,0.167,0.465,0.114,0.585-0.017c0.364-0.394,0.732-0.539,1.157-0.149c0.261,0.238,0.212,0.038,0.318-0.125
+                       c0.187-0.289,0.306-0.694,0.86-0.564c0.19,0.043,0.33-0.026,0.485,0.195c0.28,0.397-0.239,0.234-0.257,0.428
+                       c-0.007,0.1-0.141,0.191-0.219,0.286c-0.127,0.149-0.463,0.039-0.442,0.383c0.021,0.369,0.342,0.302,0.544,0.402
+                       c0.157,0.077,0.329,0.117,0.732,0.255c-1.006,0.1-1.648,0.557-2.441,0.723c0.392,0.47,1.053,0.283,1.464,0.653
+                       c0.032,0.03,0.347-0.131,0.353-0.215c0.038-0.58,0.423-0.371,0.747-0.398c0.229-0.021,0.349-0.35,0.712-0.35
+                       c-0.057,0.364-1.136,0.815,0.007,1.084c-0.084,0.236,0.09,0.607-0.425,0.605c-0.281-0.002-0.714-0.196-0.78,0.495
+                       c-0.047,0.491-0.719-0.229-1.039,0.162c0.085,0.627,0.761,0.339,1.156,0.706c-0.539,0.159-0.989,0.35-1.508,0.301
+                       c-0.289-0.026-0.465,0.155-0.556,0.413c-0.131,0.374,0.217,0.459,0.407,0.498c0.599,0.128,1.211,0.878,1.82,0.019
+                       c0.291,0.306,0.691,0.18,1.022,0.289c0.11,0.038-0.098,0.28-0.31,0.304c-0.191,0.021-0.509-0.117-0.495,0.238
+                       c0.013,0.354,0.357,0.084,0.527,0.21c0.135,0.1,0.333,0.117,0.6,0.203c-0.768,0.464-1.486,0.859-2.28,1.091
+                       c-0.202,0.059-0.574-0.185-0.531,0.24c0.026,0.253,0.353,0.305,0.62,0.299c0.085-0.002,0.172,0.054,0.556,0.189
+                       c-0.828,0.085-1.45,0.053-1.779,0.63c-0.115,0.202-0.422,0.359-0.253,0.638c0.232,0.385,0.394-0.083,0.606-0.094
+                       c1.159-0.059,2.318-0.134,3.493-0.206c-0.039,0.496-0.559,0.156-0.627,0.437c-0.055,0.23-0.088,0.576,0.04,0.715
+                       c0.16,0.176,0.691,0.31,0.718,0.262c0.3-0.516,0.846-0.308,1.227-0.375c0.538-0.092,0.442-0.615,0.789-0.802
+                       c0.163-0.089,0.149-0.392,0.441-0.087c0.459,0.485,1.105,0.426,1.716,0.415c-0.15,0.643-0.59,0.768-1.167,0.704
+                       c-0.173-0.019-0.504,0.032-0.517,0.098c-0.146,0.761-0.509,0.888-1.24,0.666c-0.431-0.13-0.333,0.55-0.598,0.788
+                       c-0.213,0.191,0.027,0.26,0.171,0.386c0.302,0.265,0.355,0.107,0.633-0.092c0.285-0.203,0.873,0.037,0.986-0.6
+                       c0.012-0.064,0.129,0.033,0.182,0.114c0.26,0.391,0.707,0.329,0.89,0.081c0.507-0.682,1.315-0.519,1.956-0.912
+                       c-0.172,1.073-1.215,0.769-1.746,1.249c0.136,0.212,0.544,0.244,0.374,0.629c-0.066,0.153-0.159,0.176-0.285,0.136
+                       c-0.282-0.085-0.701-0.306-0.762,0.097c-0.066,0.439,0.554,0.011,0.71,0.346c-0.043,0.265-0.279,0.192-0.442,0.219
+                       c-0.225,0.039-0.514-0.099-0.561,0.304c-0.015,0.138-0.036,0.242,0.091,0.31c0.261,0.14,0.476-0.015,0.692-0.13
+                       c0.283-0.152,1.169-0.318,1.755-0.331c0.083-0.002,0.189-0.055,0.244-0.119c0.552-0.637,1.342-0.354,2.043-0.61
+                       c-0.427,0.932-1.207,0.953-2.077,0.942c0.596,0.4,0.25,1.005,0.667,1.601c-0.801-0.34-0.827-1.504-1.678-1.148
+                       c-0.217,0.091-0.501,0.7-0.363,1.328c-0.54-0.454-0.932-0.437-1.395-0.075c-0.506,0.398-1.018,0.84-1.697,0.951
+                       c-0.179,0.029-0.465,0.04-0.419,0.25c0.041,0.198,0.228,0.49,0.54,0.356c0.41-0.174,0.775,0.224,1.189,0.041
+                       c0.221-0.096,0.344,0.101,0.364,0.301c0.019,0.175-0.128,0.258-0.277,0.323c-0.467,0.197-0.469,0.198-0.783,0.793
+                       c-0.054,0.106-0.115,0.092-0.211,0.064c-0.469-0.132-0.808,0.095-0.743,0.538c0.083,0.582,0.584,0.836,1.145,0.867
+                       c0.22,0.011,0.437-0.264,0.783,0.072c-0.827-0.05-0.632,1.093-1.465,1.003c0.93,0.143,1.801-0.188,2.701-0.237
+                       c0.523-0.028,0.882-0.133,1.128,0.475c-0.172,0.159-0.881-0.411-0.643,0.384c0.01,0.036-0.173,0.175-0.183,0.166
+                       c-0.608-0.515-1.328,0.208-1.943-0.182c-0.248-0.157-0.546-0.312-0.733,0.007c-0.21,0.355,0.196,0.405,0.382,0.492
+                       c0.548,0.256-0.41,0.249-0.068,0.545c0.517,0.449,2.05,0.53,2.634,0.036c0.119-0.1,0.221-0.064,0.318-0.013
+                       c0.144,0.072,0.395,0.179,0.42,0.073c0.272-1.131,1.313-0.172,1.836-0.691c0.174-0.169,0.526-0.13,0.451-0.537
+                       c-0.12-0.654,0.578-0.44,0.608-0.376c0.365,0.704,1.011,0.316,1.559,0.381c-0.264,0.485-0.518,0.825-1.081,0.684
+                       c-0.571-0.144-0.027,0.473-0.469,0.666c-0.824,0.361-1.566,0.874-2.615,0.793c0.21,0.34,0.74,0.505,0.459,0.863
+                       c-0.208,0.264-0.461-0.053-0.705-0.184c-0.422-0.227-0.868,0.057-1.051,0.362c-0.512,0.843-1.512,0.788-2.17,1.328
+                       c-0.559,0.459-1.172,0.509-1.823,0.234c-0.057-0.024-0.167-0.055-0.172-0.043c-0.524,1.054-1.456,0.355-2.376,0.494
+                       c0.669,0.327,1.177,0.578,1.687,0.829c-0.525,0.747-1.323,0.045-1.897,0.453c0.641,1.124,1.983,0.547,2.91,1.129
+                       c-0.343,0.257-0.629,0.47-1.016,0.759c0.714-0.017,1.253-0.384,1.917-0.221c0.447,0.107,0.695-0.559,0.961-0.908
+                       c0.278-0.365-0.41-0.369-0.425-0.772c0.427-0.34,1.002,0.162,1.449-0.148c0.429-0.299,0.874-0.568,1.396-0.598
+                       c0.13-0.508-0.567-0.508-0.486-1.028c0.727,0.209,1.6,1.052,2.075-0.339c0.374,0.312,0.023,0.556,0.059,0.864
+                       c0.546-0.253,0.977,0.36,1.553,0.193c-0.246,0.208-0.493,0.415-0.733,0.617c1.041,0.578,1.245,0.481,1.504-0.789
+                       c0.291,0.335,0.624,1.048,0.841,0.006c0.028-0.14,0.159-0.163,0.295-0.096c0.643,0.313,1.117,0.226,1.644-0.362
+                       c0.299-0.332,0.97-0.33,1.614-0.521c-0.197,0.421-0.852,0.565-0.326,1.086c-0.885-0.208-0.885-0.208-1.849,0.31
+                       c0.127,0.186,0.321,0.104,0.478,0.127c0.151,0.023,0.314-0.002,0.508,0.264c-0.449-0.015-0.725,0.402-1.181,0.184
+                       c-0.197-0.092-0.33-0.065-0.14,0.157c0.303,0.348-0.291,0.333-0.209,0.577c-0.685-0.185-0.949,0.759-1.764,0.576
+                       c-0.436-0.098-1.249,0.321-1.266,1.198c-0.017,0.834-0.482,0.491-0.82,0.239c-0.526-0.391-0.51-0.41-0.65,0.211
+                       c-0.054,0.238-0.335,0.458-0.439,0.369c-0.716-0.619-0.939,0.153-1.336,0.435c0.538,0.425,1.001,1.003,1.875,0.861
+                       c-0.303,0.648-1.021,0.995-0.898,1.754c-0.54-0.136-0.931,0.455-1.402,0.348c-0.295-0.066-0.463-0.104-0.361,0.189
+                       c0.263,0.769-0.246,0.984-0.765,1.146c-0.358,0.112-0.513,0.44-0.827,0.574c0.654,0.657,0.99-0.297,1.537-0.306
+                       c0.361-0.008,0.595-0.17,0.769,0.304c0.112,0.303,0.41,0.642,0.752,0.631c0.524-0.017,0.125-0.531,0.275-0.712
+                       c0.148-0.181,0.251-0.504,0.589-0.496c0.709,0.019,0.819-0.142,0.569-0.838c0.325-0.141,0.504,0.376,0.83,0.2
+                       c0.153-0.369-0.301-0.334-0.371-0.553c0.441-0.31,0.922-0.059,1.378-0.138c0.507-0.087-0.039,0.502,0.193,0.717
+                       c1.697-0.968,3.43-1.873,5.448-2.161c-0.53,1.022-1.46,1.48-2.278,2.123c-1.097,0.864-2.15,0.788-3.367,0.642
+                       c-0.119,0.46,0.497,0.512,0.497,0.901c-0.54-0.065-1.09-0.049-1.612-0.397c0.461,0.561,0.845,1.045,0.85,1.804
+                       c0.004,0.433,0.337,1.026-0.046,1.265c-0.388,0.239-1.085,0.634-1.494-0.337c0.327,0.321,0.197,0.602,0.197,0.856
+                       c0,0.169-0.078,0.312-0.244,0.349c-0.223,0.051-0.202-0.178-0.291-0.285c-0.183-0.221-0.185-0.676-0.595-0.582
+                       c-0.074,0.017-0.316,0.326-0.396,0.595c-0.158,0.539,0.375,0.383,0.484,0.581c0.668,1.2,1.784,0.458,2.677,0.665
+                       c0.055,0.012,0.118-0.019,0.179-0.031c-0.417-1.198,0.975-0.019,0.919-0.759c0.015-0.317-0.548-0.162-0.528-0.537
+                       c0.225-0.386,1.612,0.913,0.856-0.795c0.539,0.164,0.985,0.314,1.414-0.08c-0.071,0.141-0.141,0.28-0.211,0.419
+                       c0.68,0.178,1.249-0.296,1.897-0.323c0.233-0.008,0.274-0.178,0.214-0.41c-0.045-0.173,0.168-0.353,0.262-0.256
+                       c0.796,0.819,0.862-0.201,1.244-0.491c0.416,0.293,0.541,0.833,0.484,1.185c-0.07,0.436-0.639,0.371-1.049,0.382
+                       c-0.197,0.006-0.624-0.117-0.289,0.356c0.027,0.037,0.021,0.098,0.032,0.146c-0.119-0.012-0.257,0.009-0.352-0.046
+                       c-0.349-0.203-0.585-0.069-0.837,0.26c0.38,0.032,0.711,0.061,1.174,0.098c-0.321,0.356-0.297,0.965-1.007,0.554
+                       c-0.223-0.129-0.437,0.401-0.825,0.349c0.308,0.441,0.605,0.676,1.138,0.415c0.292-0.14,0.83-0.214,0.885,0.138
+                       c0.054,0.336,0.16,0.953-0.531,1.088c-0.28,0.056-0.902-0.307-0.747,0.574c0.068,0.376-0.189,0.422,0.513,1.087
+                       c-1.348-0.355-1.466,1.55-2.737,1.274c-0.073,0.301,0.648,0.576,0.175,0.78c-0.325,0.139-0.484,0.944-1.066,0.387
+                       c-0.107-0.102-0.293-0.177-0.37,0.059c-0.076,0.223,0.024,0.367,0.257,0.388c0.376,0.036,0.695,0.193,1.176,0.457
+                       c-1.178,0.171-2.2,1.068-3.153-0.263c-0.206,0.269,0,1.061-0.739,0.595c-0.168-0.106-0.707-0.576-0.888,0.113
+                       c-0.146,0.559-0.067,1.043,0.555,1.295c0.205,0.083,0.439-0.123,0.628,0.105c-0.148,0.391-1.004,0.195-0.783,0.928
+                       c0.029,0.091-0.228,0.151-0.389,0.058c-0.285-0.164-0.574-0.134-0.871-0.019c0.053,0.394,0.465,0.527,0.484,1.033
+                       c0.014,0.427,0.854,0.324,1.3,0.133c0.622-0.269,1.215-0.252,1.852-0.125c0.257,0.052,0.591,0.037,0.811-0.087
+                       c1.23-0.7,2.529-1.173,3.93-1.402c0.844-0.137,0.103-0.501,0.041-0.895c1.368,0.181,2.718,0.311,4.127-0.109
+                       c-0.653,1.03-1.472,1.513-2.489,1.797c-0.168,0.046-0.597,0.456-0.778,0.728c-0.265,0.4,0.268,0.651,0.546,0.789
+                       c0.37,0.187,0.947,1.058,1.187-0.155c0.096-0.488,0.792,0.187,0.868-0.413c0.36,0.049,0.139,0.249,0.103,0.402
+                       c0.762,0.079,0.278,0.896,0.696,1.19c0.072,0.052,0.026,0.19-0.081,0.22c-0.809,0.228-1.006,1.342-1.955,1.361
+                       c-0.126,0.004-0.215-0.023-0.155,0.183c0.199,0.699-0.36,0.726-0.882,0.812c0.386,0.437,1.238,0.079,1.247,0.916
+                       c0,0.086,0.48-0.031,0.522-0.18c0.214-0.748,0.652-0.556,1.075-0.251c0.223-0.382-0.236-0.322-0.226-0.536
+                       c0.06-0.028,0.13-0.089,0.16-0.074c0.683,0.358,1.213,0.215,1.676-0.409c0.175-0.233,1.156-0.419,1.628-0.563
+                       c0.474-0.141,0.769-0.783,1.345-0.633c0.439,0.115,0.812,0.032,1.191-0.155c0.134,0.379-0.079,0.437-0.306,0.479
+                       c-0.176,0.032-0.482,0.085-0.274,0.297c0.382,0.395-0.006,0.37-0.187,0.437c-0.17,0.062-0.522,0.083-0.52,0.094
+                       c0.091,0.873-0.665,1.097-1.177,1.367c-0.429,0.225-1.064,0.28-1.531,0.146c-0.543-0.157-0.856,0.055-1.237,0.295
+                       c-0.109,0.069-0.147,0.079-0.128,0.247c0.118,1.071-0.383,1.546-1.442,1.355c-0.572-0.104-0.834,0.411-1.122,0.655
+                       c-0.263,0.221,0.272,0.472,0.57,0.637c0.21,0.117,0.628,0.224,0.42,0.592c-0.157,0.275-0.38-0.028-0.542-0.112
+                       c-0.286-0.145-0.711,0.103-0.885-0.325c-0.121,0.356-0.337,0.713-0.338,1.071c-0.002,0.312,0.364,0.279,0.606,0.21
+                       c0.953-0.284,1.904-0.579,2.851-0.88c0.077-0.025,0.148-0.195,0.186-0.183c1.331,0.422,2.286-0.623,3.44-0.871
+                       c0.41-0.089,0.879,0.179,1.243-0.331c-0.024,0.706-0.973,0.818-0.685,1.57c0.047,0.124-0.246,0.115-0.393,0.131
+                       c-1.023,0.118-1.142,0.301-0.796,1.269c-0.444,0.143-0.956-0.752-1.289-0.012c-0.24,0.538,0.674,0.295,0.716,0.793
+                       c-0.444,0.018-0.897-0.234-1.334,0.016c-0.129,0.071-0.416-0.072-0.329,0.27c0.062,0.251,0.17,0.394,0.457,0.293
+                       c0.199-0.07,0.469-0.371,0.558,0.081c0.064,0.329-0.139,0.456-0.47,0.553c-0.57,0.166-1.142,0.334-1.418,1.016
+                       c-0.165,0.409-0.949,0.353-1.068,0.293c-0.754-0.384-0.766,0.656-1.291,0.587c0.055,0.241,0.085,0.776,0.255,0.642
+                       c0.626-0.491,0.766,0.194,1.129,0.3c0.236,0.068,0.638-0.15,0.913-0.29c0.455-0.234,1.02,0.065,1.4-0.358
+                       c0.157,0.27,0.79-0.034,0.679,0.543c-0.101,0.53-1.164,1.34-1.737,1.302c-0.175-0.013-0.378-0.198-0.384,0.12
+                       c-0.013,0.694-0.622,0.624-1.24,0.847c1.556,0.487,2.779-0.778,4.16-0.259c0.144-0.293-0.399-0.334-0.308-0.623
+                       c0.121-0.187,0.246-0.098,0.391-0.02c0.444,0.239,0.819,0.481,1.081-0.295c0.127-0.378,0.847-0.006,1.198-0.436
+                       c-0.398,0.287,0.76,0.874-0.264,1.037c-0.185,0.03,0.282,0.27,0.223,0.53c-0.295,0.204-0.654-0.003-0.996,0.126
+                       c0.064,0.444,0.476,0.512,0.794,0.669c-0.191,0.385-0.511,0.545-0.843,0.585c-0.266,0.032-0.652-0.295-0.749,0.172
+                       c-0.079,0.382,0.512,0.111,0.617,0.527c-0.779-0.025-1.121,0.79-1.857,0.855c0.052,0.277,0.722,0.151,0.354,0.581
+                       c-0.281,0.331-0.796,0.6-1.136,0.441c-0.766-0.357-0.958-0.068-1.045,0.616c-0.026,0.207-0.102,0.509-0.452,0.22
+                       c-0.308-0.253-0.669-0.293-1.16-0.048c1.014,0.279,0.599,1.234,0.983,1.829c0.139,0.217,0.083,0.532,0.468,0.51
+                       c0.297-0.018,0.666,0.099,0.647-0.42c-0.012-0.366,0.304-0.272,0.491-0.387c0.473-0.289,1.047-0.281,1.47-0.698
+                       c-0.264,0.47-0.809,0.746-0.387,1.401c0.141,0.217-0.2,0.043-0.303,0.096c-0.311,0.162-0.648,0.172-1.122,0.161
+                       c0.425,0.772,1.277,0.037,1.665,0.626c-0.417,0.293-0.898,0.093-1.33,0.176c-0.107,0.02-0.278-0.033-0.243,0.16
+                       c0.019,0.112,0.127,0.299,0.244,0.208c0.405-0.323,0.743,0.244,1.184-0.126c-0.055,0.62-0.946,0.732-0.46,1.417
+                       c-0.865-0.726-1.113,0.935-1.985,0.212c0.364,1.107-0.353,1.771-1.823,1.898c0.21,0.53,0.686,0.683,1.109,0.881
+                       c0.201,0.093,0.469,0.125,0.382,0.417c-0.081,0.27-0.376,0.214-0.565,0.176c-0.613-0.119-1.136-0.521-1.829-0.462
+                       c-0.299,0.024-0.297,0.051-0.229,0.249c0.072,0.21,0.748,0.593-0.165,0.469c-0.058-0.009-0.075,0.213,0.063,0.284
+                       c0.212,0.11,0.427,0.214,0.576,0.289c0.13,0.525-0.739-0.201-0.429,0.48c0.149,0.329,0.312,0.638,0.743,0.534
+                       c0.209-0.049,0.278-0.4,0.627-0.219c0.422,0.217,0.509-0.369,0.83-0.447c0.505-0.121-0.151,0.741,0.454,0.538
+                       c0.143-0.048,0.321-0.035,0.434-0.117c0.569-0.42,1.229-0.637,1.881-0.869c0.009-0.402-0.484-0.216-0.565-0.468
+                       c0.238-0.357,1.219,0.443,0.901-0.657c-0.059-0.2,0.127-0.125,0.235-0.083c0.126,0.049,0.215,0.315,0.37,0.147
+                       c0.915-0.989,0.938,0.356,1.378,0.562c0.189,0.089-0.189,0.256-0.336,0.449c1.264,0.267,2.47,0.389,3.575-0.432
+                       c0.098-0.073,0.305-0.181,0.32-0.162c0.819,1.046,0.807-0.231,1.175-0.419c0.137-0.069,0.344-0.238,0.393-0.198
+                       c0.503,0.394,1.438-0.051,1.688,0.898c-0.262,0.082-0.513,0.162-0.78,0.246c0.239,0.225,0.434,0.411,0.771,0.729
+                       c-0.936-0.115-1.548,0.125-1.746,0.977c-0.04,0.164-0.239,0.334-0.329,0.249c-0.552-0.515-0.766,0.698-1.282,0.23
+                       c-0.072,0.905-0.618,0.184-0.951,0.278c-0.189,0.558,0.566,0.481,0.619,1.014c-0.558-0.63-0.454,0.632-0.97,0.214
+                       c-0.074,0.643,0.807,0.874,0.626,1.621c-0.157,0.652-0.25,1.208-1.089,1.113c0,0.066-0.024,0.145,0.003,0.18
+                       c0.212,0.255,0.876,0.009,0.776,0.437c-0.112,0.483-0.569-0.1-0.881,0.032c-0.186,0.078-0.527-0.121-0.578,0.13
+                       c-0.087,0.423,0.051,0.858,0.238,1.246c0.128,0.268,0.361,0.138,0.557,0.046c0.14-0.067,0.299-0.207,0.422-0.182
+                       c1.254,0.257,1.277-0.483,1.045-1.429c1.068,0.657,2.098,0.884,3.237,0.564c0.257-0.072,0.388-0.136,0.4-0.397
+                       c0.005-0.171,0.098-0.379,0.253-0.317c0.996,0.401,1.359-0.894,2.339-0.715c-0.892,0.14-0.51,1.219-1.268,1.491
+                       c-0.191,0.071-0.024,0.274,0.044,0.397c0.096,0.176,0.206,0.35-0.064,0.449c-1.049,0.374-1.974,1.427-3.254,0.619
+                       c-0.062-0.038-0.179,0.015-0.345,0.034c0.176,0.385,0.495,0.541,0.803,0.708c0.317,0.169,0.633,0.34,0.926,0.652
+                       c-1.086-0.707-2.113,0.391-3.285-0.143c0.295,0.554,0.838,0.587,1.002,0.99c-1.149,0.811-1.71-0.776-2.702-0.722
+                       c-0.046,0.468,0.746,0.268,0.549,0.842c-0.051,0.15,0.779,0.014,0.446,0.513c-0.272,0.406-0.463-0.287-0.865-0.175
+                       c0.27,0.409,0.312,0.902,0.72,1.261c-0.403,0.285-0.634-0.061-0.907-0.1c-0.458-0.065-0.9-0.309-1.35,0.151
+                       c-0.257,0.262-0.54,0.36-0.119,0.698c0.339,0.27,0.459,0.479-0.013,0.844c-0.212,0.164-0.615,0.583-0.346,1.11
+                       c0.183,0.359-0.389,0.299-0.378,0.316c0.352,0.595,0.032,0.748-0.486,0.785c0.068,0.824-0.455-0.043-0.684,0.218
+                       c-0.115,0.132-0.669-0.557-0.911-0.063c-0.24,0.493,0.261,0.743,0.822,0.946c-0.357,0.159-0.59,0.261-0.79,0.348
+                       c-0.087,0.17,0.029,0.227,0.098,0.234c0.681,0.072,1.42,0.278,1.702-0.678c0.032-0.105,0.151-0.186,0.23-0.279
+                       c0.567,0.708,0.969-0.198,1.472-0.183c0.089,0.396-0.376,0.381-0.419,0.653c0.115,0.155,0.385,0.013,0.476,0.277
+                       c-0.068,0.038-0.138,0.11-0.212,0.114c-0.285,0.013-0.591-0.191-0.837,0.165c-0.121,0.174-0.085,0.379,0.025,0.347
+                       c0.769-0.232,1.608,0.529,2.336-0.181c0.317-0.309,0.712-0.338,1.122-0.216c0.159,0.499-1.153,0.844-0.083,1.439
+                       c-0.377,0.06-0.643,0.251-1.024,0.064c-0.66-0.323-0.067,0.666-0.546,0.589c-0.358-0.057-0.713-0.134-1.068-0.203
+                       c0.397,0.704-0.388,0.421-0.552,0.659c-0.378,0.544,0.348,0.606,0.423,0.94c-0.468,0.248-0.903,0.461-1.4-0.224
+                       c-0.006,0.583,0.837,1.016,0.187,1.194c-0.564,0.155-1.059,1.325-1.843,0.291c-0.19-0.251-0.574-0.545-0.557,0.2
+                       c0.007,0.36-0.382-0.124-0.511,0.208c0.046,0.059,0.153,0.14,0.182,0.245c0.11,0.414,0.816,0.449,0.706,0.881
+                       c-0.136,0.544-0.663-0.066-0.948,0.169c-0.106,0.086-0.427,0.122-0.302,0.232c0.326,0.285-0.154,0.725,0.21,0.912
+                       c0.32,0.162,0.697,0.345,1.035,0.323c1.54-0.098,3.056-0.485,4.625-0.281c0.363,0.045,0.763-0.212,1.145-0.335
+                       c0.813-0.265,1.557-0.717,2.495-0.57c0.494,0.077,1.126-0.238,1.358-0.61c0.551-0.876,1.396-1.003,2.243-1.236
+                       c0.772-0.212,0.768-0.231,0.318-0.959c0.755,0.717,1.263-0.278,1.938-0.206c0.116,0.011,0.426-0.266,0.431-0.11
+                       c0.009,0.271,0.306,0.506,0.16,0.712c-0.147,0.21-0.165,0.316,0.044,0.43c0.248,0.136,0.654,0.136,0.482,0.604
+                       c-0.164,0.445-0.58,0.079-0.943,0.345c-0.068,0.101,0.66,0.584-0.029,0.558c-0.892-0.037-1.721,0.266-2.615,0.424
+                       c1.013,0.238,2.024,0.485,3.039,0.709c0.268,0.059,0.749-0.277,0.711,0.316c-0.034,0.523-0.481,0.549-0.898,0.514
+                       c-0.783-0.065-1.571,0.017-2.374-0.061c0.232,0.134,0.471,0.264,0.699,0.409c0.477,0.299,0.499,0.319,0.187,0.806
+                       c-0.156,0.24,0.533,0.355,0.047,0.553c-0.343,0.138-0.358-0.389-0.546-0.373c-1.035,0.103-1.7-1.3-2.904-0.683
+                       c0.646,0.635,1.287,1.239,1.254,2.262c-0.251-0.064-0.525-0.216-0.618-0.142c-0.644,0.525-1.226,0.71-1.84-0.051
+                       c-0.136-0.168-0.226,0.097-0.326,0.197c-0.21,0.21-0.13,0.449,0.018,0.579c0.427,0.38,0.777,0.951,1.47,0.829
+                       c0.593-0.106,0.898,0.34,1.298,0.607c0.099,0.067,0.233,0.137,0.112,0.284c-0.1,0.121-0.257,0.269-0.391,0.138
+                       c-0.378-0.365-0.965-0.179-1.289-0.605c-0.191,0.287,0.23,0.401,0.049,0.669c-0.773-0.495-1.794-0.195-2.524-0.904
+                       c-0.459,2.365,1.346,2.765,2.807,3.506c-0.487-0.108-0.82,0.136-1.209,0.336c-0.494,0.253-1.078,0.22-1.495-0.279
+                       c-0.18-0.215-0.399-0.566-0.645-0.263c-0.206,0.255,0.186,0.491,0.389,0.629c0.25,0.167,0.57,0.23,0.853,0.351
+                       c0.325,0.138,0.69,0.338,0.437,0.734c-0.131,0.205-0.381,0.678-0.825,0.271c-0.1-0.093-0.291-0.084-0.419-0.157
+                       c-0.21-0.121-0.443-0.382-0.635-0.08c-0.168,0.262,0.036,0.58,0.227,0.746c0.877,0.763,1.47,0.799,2.506,0.174
+                       c0.223-0.134,0.336,0.027,0.503,0.051c1.137,0.161,2.228,0.272,3.366-0.26c0.778-0.365,1.742-0.358,2.63-0.448
+                       c0.872-0.089,0.398,0.904,0.907,1.265c0.299,0.21-0.455,0.381-0.685,0.43c-0.701,0.14-0.743,0.549-0.594,1.124
+                       c-0.406-0.031-0.56-0.576-1.034-0.397c0.142,0.274,0.04,0.563,0.365,0.88c0.371,0.363-0.193,0.703-0.544,0.82
+                       c-0.658,0.217-1.333,0.073-1.938-0.218c-0.356-0.171-0.671-0.179-0.939,0.036c-0.397,0.316,0.201,0.455,0.174,0.623
+                       c-0.092,0.621,0.274,0.889,0.703,1.167c0.106,0.068,0.257,0.225,0.133,0.398c-0.108,0.147-0.269,0.076-0.424,0.076
+                       c-0.809,0-1.323-0.633-1.999-0.914c-0.732-0.304-0.719-0.337-0.773,0.47c-0.395-0.265-0.464-0.723-0.776-1.21
+                       c-0.098,1.006,0.358,1.623,1.118,2.284c-0.762-0.051-1.187-0.295-1.486-0.774c-0.28,0.353,0.163,0.623-0.145,0.905
+                       c-0.364-0.279-0.45-0.75-0.728-1.119c-0.28,0.421-0.571,0.642-0.747-0.05c-0.096-0.379-0.234-0.631-0.697-0.559
+                       c-0.274,0.041-0.367-0.142-0.334-0.417c0.075-0.636-0.685-0.5-0.857-0.91c-0.535,0.238-0.78,0.627-0.58,1.183
+                       c-0.142,0.104-0.208,0.065-0.278-0.007c-0.223-0.227-0.215-0.708-0.692-0.649c-0.134,0.017-0.232,0.122-0.208,0.264
+                       c0.065,0.376,0.37,0.562,0.655,0.746c0.151,0.098,0.363,0.103,0.44,0.31c-0.023,0.052-0.034,0.136-0.074,0.153
+                       c-1.232,0.547-1.452,0.581-1.536,0.181c-0.159-0.736-1.144-0.613-1.275-1.387c0.485,0.015,0.63,0.647,1.131,0.579
+                       c0.17-0.899-0.683-1.037-1.112-1.432c-0.179-0.167-0.3,0.27-0.311,0.516c-0.01,0.255,0.155,0.599-0.259,0.674
+                       c-0.403,0.072-0.516-0.259-0.641-0.545c-0.123-0.282-0.259-0.561-0.355-0.852c-0.084-0.253-0.259-0.387-0.488-0.332
+                       c-0.283,0.066-0.214,0.291-0.176,0.528c0.063,0.4,0.696,0.917,0.21,1.118c-0.429,0.18-0.338-0.653-0.576-0.922
+                       c-0.246-0.274-0.733-0.514-1.083-0.476c-0.787,0.084-1.478-0.15-2.2-0.387c0.55,0.649,0.984,1.447,2.06,1.155
+                       c0.223-0.06,0.442,0.072,0.459,0.428c0.019,0.457,0.066,0.454,0.554,0.203c-0.312,0.931-0.556,0.927-2.123-0.046
+                       c-0.022,0.478-0.019,0.474,0.365,0.812c0.15,0.133,0.443,0.246,0.246,0.506c-0.121,0.158-0.089,0.423-0.378,0.483
+                       c-0.586,0.121-1.206-0.114-1.771,0.189c-0.017,0.009-0.119-0.117-0.162-0.191c-0.56-0.97-0.728-1.008-1.431-0.317
+                       c-0.445-0.297,0.514-0.578,0.051-0.757c-0.442-0.17-0.28,0.452-0.522,0.628c-0.106,0.078-0.457-0.017-0.302,0.317
+                       c0.064,0.138,0.16,0.301-0.05,0.369c-0.066,0.021-0.177-0.164-0.283-0.191c-0.278-0.068-0.563-0.098-0.831-0.142
+                       c-0.141-0.349,0.597-0.329,0.275-0.655c-0.226-0.228-0.617-0.43-0.933-0.312c-0.396,0.145-0.021,0.602-0.195,0.979
+                       c-0.147-0.21-0.265-0.344-0.344-0.5c-0.062-0.123,0.072-0.317-0.153-0.398c-0.189,0.002-0.257,0.147-0.253,0.308
+                       c0.011,0.602-0.524,0.466-0.815,0.555c-0.384,0.115-0.26-0.303-0.376-0.489c-0.332-0.532-0.942-0.882-1.553-0.853
+                       c-0.46,0.021-0.291,0.564-0.099,0.761c0.52,0.531,0.885,1.101,1.129,1.822c0.132,0.396,0.684,0.53,1.207,0.353
+                       c0.409-0.136,0.828-0.191,1.297-0.191c0.96-0.002,0.525,1.177,1.261,1.216c-0.145,0.315-0.409,0.677-0.719,0.515
+                       c-0.735-0.387-1.497,0.092-2.283-0.272c-0.863-0.401-1.565,0.285-1.538,1.309c-0.467-0.319-0.8-0.806-1.446-0.719
+                       c-0.248,0.034-0.463-0.327-0.214-0.541c0.557-0.472,0.025-0.691-0.115-1.063c-0.348-0.931-1.453-0.905-1.922-1.654
+                       c-0.025-0.038-0.416,0.048-0.437,0.126c-0.193,0.757-0.557,0.14-0.839,0.125c0.038-0.485-0.981-0.666-0.418-1.233
+                       c0.265-0.268,0.021-0.279-0.043-0.37c-0.081-0.115-0.147-0.189-0.346-0.028c-0.754,0.613-1.644,0.426-2.17-0.382
+                       c-0.253-0.389-0.185-0.595,0.254-0.771c0.184-0.076,0.48-0.234,0.389-0.54c-0.038-0.127-0.205-0.272-0.336-0.303
+                       c-0.394-0.088-0.289,0.356-0.432,0.52c-0.217-0.474-0.417-0.916-0.617-1.358c-0.086,0.561-0.415,0.874-0.89,1.062
+                       c-0.666,0.26-0.333,0.868-0.345,1.263c-0.145,5.601-0.234,11.202-0.336,16.805c-0.002,0.092,0.028,0.187,0.043,0.279H1168.636z"/>
+       </g>
+       <g>
+               <path fill="#2A3524" d="M1220.646,330.699c-0.164-0.299,0.031-0.327,0.272-0.468c0.258-0.148,0.653-0.006,0.747-0.239
+                       c0.15-0.362,0.452-0.284,0.591-0.209c0.222,0.119-0.046,0.302-0.092,0.462c-0.066,0.236-0.002,0.476,0.229,0.507
+                       c0.318,0.042,0.302-0.183,0.244-0.437c-0.055-0.24,0.222-0.361,0.346-0.344c0.398,0.062,0.412,0.6,0.785,0.727
+                       c-0.197,0.366-0.143,0.91-0.551,1.104c-0.266,0.129-0.584-0.05-0.73-0.401c-0.113-0.274-0.203-0.562-0.51-0.057
+                       c-0.178,0.293-0.639,0.329-1.032,0.172C1220.535,331.351,1220.675,331.009,1220.646,330.699 M1224.445,302.002
+                       c-0.304,1.695-0.418,2.076-0.631,2.082c-0.938,0.034-1.875,0.028-2.71-0.716c0.918,0.3,1.079-0.662,1.648-0.97
+                       C1223.359,302.066,1224.053,302.817,1224.445,302.002 M1263.344,328.826c0.699-0.175,1.332,0.36,1.88-0.181
+                       c0.136-0.136,0.238,0.074,0.333,0.198c0.614,0.807,1.388,1.411,2.355,1.728c0.26,0.087,0.211,0.268,0.238,0.436
+                       c0.036,0.238-0.231,0.426-0.311,0.37c-0.674-0.467-1.662-0.247-2.188-0.957c-0.391-0.527-0.89-0.848-1.476-1.046
+                       C1263.886,329.275,1263.614,329.204,1263.344,328.826 M1269.038,327.388c-0.002-0.402,0.315-0.462,0.565-0.498
+                       c0.165-0.023,0.346,0.091,0.488-0.091c0.319-0.418,0.818,0.074,1.162-0.228c0.125,0.959,0.917,0.766,1.529,0.909
+                       c0.325,0.076,0.919,1.174,0.756,1.367c-0.287,0.34-0.633,0.049-0.824-0.087c-1.01-0.721-2.134-1.021-3.345-1.086
+                       C1269.183,327.665,1268.966,327.669,1269.038,327.388 M1227.622,289.553c-0.561,0.64-1.366,0.344-1.995,0.615
+                       c-0.15,0.065-0.346-0.117-0.286-0.264c0.142-0.348,0.072-0.587-0.229-0.78c0.229-0.338,0.021-0.8,0.57-1.103
+                       c1.124-0.619,1.687,0.801,2.797,0.329c-0.422,0.704-1.097,0.519-1.38,1.014C1227.267,289.425,1227.425,289.481,1227.622,289.553
+                        M1233.338,268.016c0.24,0.168,0.338-0.015,0.463-0.072c0.393-0.183,0.741-0.079,1.013,0.21c0.406,0.436-0.136,0.678-0.295,0.927
+                       c-0.18,0.285-0.495,0.004-0.737-0.121c-0.242-0.123-0.476-0.289-0.735-0.346c-0.462-0.1-0.632-0.323-0.482-0.779
+                       c0.057-0.176,0.072-0.354-0.031-0.523c0.258-0.13,0.403,0.244,0.655,0.149c0.063-0.539-0.39-0.378-0.63-0.49
+                       c-0.276-0.127-0.452-0.323-0.475-0.63c-0.022-0.284,0.199-0.341,0.405-0.43c0.665-0.284,1.321-0.588,1.512-1.395
+                       c0.006-0.025,0.1-0.027,0.174-0.044c0.082,0.464-0.452,0.897-0.303,1.208C1234.341,266.646,1233.85,267.327,1233.338,268.016
+                        M1268.905,279.459c-0.782-0.068-0.194,0.683-0.623,0.831c-0.501,0.172-0.61,0.499-0.575,0.983
+                       c0.008,0.114-0.234,0.299-0.395,0.354c-0.143,0.047-0.239-0.132-0.317-0.272c-0.117-0.21-0.121-0.678-0.525-0.408
+                       c-0.316,0.214,0.096,0.388,0.168,0.579c0.07,0.19,0.344,0.393,0.051,0.552c-0.242,0.132-0.705,0.321-0.813,0.1
+                       c-0.348-0.717-1.13-0.831-1.616-1.337c-0.195-0.201-0.355-0.406-0.257-0.647c0.166-0.411,0.403,0.016,0.609-0.001
+                       c0.247-0.021,0.418,0.301,0.704,0.145c-0.069-0.295-0.274-0.392-0.529-0.536c-0.472-0.266-1.079-0.477-0.436-1.317
+                       c0.398-0.521,0.943-0.61,1.374-0.961c0.701-0.574,1.329-0.305,1.754,0.469c0.047,0.087,0.043,0.25,0.217,0.214
+                       c0.875-0.176,1.238,0.736,1.981,0.878c-0.541,0.036-1.055-0.487-1.561,0.062C1268.303,279.399,1268.607,279.144,1268.905,279.459
+                        M1251.805,353.619c-0.013-4.759-0.032-9.518-0.026-14.278c0-0.636-0.082-1.295,1.052-1.101c0.376,0.065,0.998-0.456,1.652-0.312
+                       c0.185,0.04,0.335-0.088,0.539,0.157c0.35,0.423,0.763,0.667,0.958-0.187c0.053-0.229,0.138-0.632,0.457-0.628
+                       c0.397,0.004,0.101,0.43,0.241,0.592c0.173,0.202,0.408,0.92,0.61,0.006c0.578,0.633,0.548-0.18,0.793-0.336
+                       c0.213-0.052,0.025,0.838,0.52,0.203c0.229-0.294,0.531,0.157,0.855,0.112c0.21-0.03,0.593,0.184,0.656-0.053
+                       c0.228-0.868,0.687-0.164,0.829-0.07c0.301,0.202,0.649,0.548,0.042,0.914c-0.316,0.193-0.063,0.443,0.132,0.601
+                       c0.27,0.217,0.579,0.459,0.907,0.154c0.087-0.079-0.03-0.397,0.273-0.232c0.117,0.064,0.21,0.13,0.194,0.35
+                       c-0.034,0.535,0.053,0.843,0.832,0.787c0.679-0.047,1.537,0.586,1.512,1.264c-0.03,0.818,0.565,0.785,0.925,1.255
+                       c0.01-0.472,0.407-0.777-0.035-1.293c0.786,0.542,1.544,0.535,2.287,0.595c0.212,0.019,0.56,0.076,0.556-0.163
+                       c-0.002-0.249-0.224-0.528-0.413-0.736c-0.102-0.111-0.385-0.19-0.508-0.128c-0.83,0.418-1.261,0.069-1.514-0.716
+                       c-0.066-0.202-0.181-0.507-0.408-0.416c-0.533,0.213-0.559-0.182-0.693-0.478c0.315-0.134,0.598-0.359,0.986-0.206
+                       c0.287,0.113,0.592,0.375,0.714-0.274c0.072-0.383-0.176-0.318-0.277-0.389c-0.176-0.127-0.519,0.083-0.626-0.316
+                       c0.3-0.27,0.777,0.172,1.074-0.242c0.098-0.14,0.253,0.044,0.289,0.219c0.136,0.676,0.661,0.947,1.207,1.248
+                       c0.471,0.259,0.818,1.018,1.356,0.043c0.107-0.193,0.563,0.091,0.712,0.27c0.297,0.356,0.707,0.273,1.057,0.402
+                       c0.258,0.096,0.51-0.061,0.61-0.309c0.098-0.242-0.168-0.315-0.316-0.37c-0.217-0.079-0.293-0.106-0.156-0.363
+                       c0.168-0.319,0.287-0.095,0.402-0.006c0.223,0.176,0.423,0.382,0.884,0.269c-0.377-0.837-1.385-0.763-1.843-1.471
+                       c0.605-0.06,1.187,0.331,1.798,0.223c0.045-0.008,0.127,0.102,0.154,0.087c1.047-0.556,1.201,0.389,1.488,0.953
+                       c0.541-0.05,0.08-0.94,0.741-0.732c0.486,0.153,0.605,0.555,0.522,1.052c-0.04,0.245,0.034,0.589,0.374,0.491
+                       c0.401-0.116-0.143-0.369-0.014-0.48c0.234-0.202-0.046-0.715,0.146-0.63c0.587,0.261,0.938-0.733,1.499-0.203
+                       c0.114,0.107,0.049,0.286-0.457,0.749c1.393-0.627,1.697,0.87,2.746,0.805c0.044-0.274-0.601-0.588-0.105-0.878
+                       c0.336-0.194,0.718-0.1,1.024,0.136c0.372,0.286,0.726,0.599,1.244,0.499c0.037-0.214-0.105-0.295-0.22-0.391
+                       c-0.342-0.28-0.367-0.822-0.274-1.031c0.179-0.4,0.571-0.027,0.879,0.062c0.542,0.155,1.081,0.217,1.52-0.32
+                       c-0.308-0.334-0.687-0.391-1.095-0.368c-0.241,0.013-0.355-0.118-0.295-0.346c0.079-0.301,0.217-0.047,0.326-0.015
+                       c0.899,0.276,1.555-0.363,2.309-0.627c0.206-0.072,0.128-0.261,0-0.368c-0.201-0.169-0.114-0.635-0.582-0.538
+                       c-0.544,0.113-1.121,0.117-1.639,0.295c-0.691,0.236-1.375,0.255-2.064,0.125c-0.219-0.042-0.334-0.002-0.493,0.1
+                       c-0.692,0.447-1.098-0.188-1.597-0.451c-0.053-0.029-0.058-0.248-0.013-0.342c0.093-0.183,0.255-0.108,0.401-0.042
+                       c0.284,0.129,0.636,0.31,0.799-0.087c0.187-0.458-0.268-0.417-0.525-0.547c-0.339-0.17-0.524-0.498-0.651-0.864
+                       c0.35-0.148,0.454,0.156,0.603,0.311c0.424,0.44,0.854,0.475,1.333,0.11c0.145-0.11,0.285-0.291,0.444-0.31
+                       c0.661-0.082,1.323,0.161,1.805-0.733c0.221-0.412,0.703-0.579,0.119-1.211c1.113,0.379,1.928,0.847,2.483,1.697
+                       c0.049,0.076,0.261,0.221,0.24,0.074c-0.073-0.523,0.638-0.21,0.492-0.368c-0.376-0.412,0.111-1.113-0.616-1.411
+                       c-0.597-0.243-0.668-0.87-0.578-1.47c0.387-0.093,0.328,0.289,0.477,0.353c0.39,0.168,0.789,0.875,1.235-0.03
+                       c0.13-0.261,0.618-0.438,0.984-0.598c0.199-0.087,1.104,0.471,0.616-0.5c-0.002-0.006,0.161-0.136,0.201-0.116
+                       c0.739,0.384,0.691-0.566,1.145-0.686c0.157-0.044,0.034-0.277-0.054-0.404c-0.114-0.163-0.25-0.138-0.396-0.031
+                       c-0.27,0.203-0.542,0.414-0.934,0.327c0.195-0.266,0.072-0.677,0.454-0.83c-0.72-0.325-1.377-0.227-2.092,0.047
+                       c-1.123,0.432-2.356,0.179-3.525,0.435c-0.588,0.129-0.915-0.136-1.032-0.857c-0.077-0.469-0.641-0.893-1.327-0.887
+                       c0.386-0.136,0.772-0.272,1.158-0.409c-0.16-0.47-0.685-0.574-0.946-0.954c-0.145-0.211-0.336-0.311-0.049-0.589
+                       c0.253-0.245,0.299-0.293,0.628-0.03c0.381,0.307,0.959,0.365,1.5,0.448c-0.225-0.474-0.937-0.561-0.739-1.288
+                       c0.906,0.132,1.612,1.353,2.708,0.608c-0.871-0.872,0.272-1.223,0.609-1.373c0.801-0.358,1.334-1.012,2.03-1.464
+                       c0.165-0.106,0.246-0.186,0.123-0.352c-0.21-0.285-0.552-0.588-0.843-0.411c-0.989,0.606-2.232,0.555-3.168,1.349
+                       c-0.291,0.247-1.104,0.767-1.34-0.353c-0.093-0.443-0.667-0.172-1.005-0.234c-0.414-0.078-0.216,0.25-0.165,0.488
+                       c0.027,0.131-0.181,0.447-0.263,0.44c-0.774-0.068-1.481,0.261-2.224,0.47c-0.049-0.459,0.288-0.57,0.418-0.799
+                       c0.245-0.432,0.151-0.615-0.244-0.779c-0.715-0.301-1.406-0.72-2.151-0.864c-0.415-0.079-0.943-0.414-1.487,0.286
+                       c-0.403,0.519-1.533,0.449-2.215,0.117c-0.981-0.477-1.675-0.85-3.068-1.044c-0.189-0.026-0.468-0.083-0.332-0.301
+                       c0.368-0.594,0.364-1.406,0.793-1.846c0.263-0.27,0.852-0.413,1.276-0.697c0.232-0.153,0.429,0.257,0.582,0.481
+                       c0.288,0.42,0.533,0.884,1.125,1.026c0-0.64-0.891-0.634-0.818-1.338c0.243-0.101,0.457,0.146,0.657,0.175
+                       c0.217-0.294-0.165-0.37-0.127-0.576c0.259,0.214,0.492-0.115,0.779-0.017c0.569,0.193,1.586,0.678,2.136,1.128
+                       c0.268-0.449-0.452-0.668-0.191-1.176c0.576,0.268,0.979,0.864,1.71,1.042c-0.209-0.978-1.372-1.217-1.566-2.165
+                       c0.5-0.154,0.402,0.509,0.804,0.528c0.118-1.13,0.898-0.03,1.286-0.372c0.108,0.919,1.14,0.211,1.359,0.881
+                       c0.399-0.295,0.175-0.635,0.227-0.921c0.075-0.43,0.256-0.597,0.67-0.376c0.091,0.047,0.241,0.329,0.231,0.159
+                       c-0.025-0.363,0.641-0.322,0.36-0.625c-0.411-0.44-0.138-1.255-0.877-1.497c-0.138-0.045-0.329-0.227-0.25-0.443
+                       c0.034-0.093,0.172-0.193,0.27-0.204c0.216-0.021,0.31,0.132,0.384,0.33c0.094,0.254,0.221,0.504,0.372,0.729
+                       c0.116,0.172,0.002,0.772,0.584,0.276c0.151-0.13,0.926,0.428,1.227,0.893c0.315-0.093-0.274-0.783,0.45-0.625
+                       c0.1,0.021-0.023-0.372-0.063-0.38c-0.813-0.155-0.017-0.418-0.029-0.628c0.145,0.263,0.288,0.526,0.474,0.865
+                       c0.167-0.504,0.4-0.733,0.863-0.435c0.282,0.183,0.629-0.065,0.552-0.232c-0.323-0.692,0.378-0.715,0.584-1.05
+                       c0.127-0.205,0.595-0.075,0.482-0.445c-0.085-0.276-0.38-0.361-0.675-0.428c-0.238-0.053-0.735,0.046-0.456-0.57
+                       c0.08-0.176-0.256-0.502,0.254-0.238c0.468,0.24,0.452-0.543,0.9-0.357c-0.161-0.415-0.524-0.274-0.806-0.423
+                       c0.372-0.54,1.369-0.132,1.348-1.044c-0.835-0.202-1.467,1.024-2.431,0.468c0.255-0.057,0.153-0.583,0.537-0.456
+                       c0.637,0.207,0.197-0.595,0.586-0.589c-0.176-0.414-0.467,0.138-0.68-0.106c-0.051-0.274,0.154-0.589-0.021-0.863
+                       c-0.541-0.1,0.112,1.329-0.917,0.608c-0.091,0.568,0.397,1.059,0.089,1.6c-0.13,0.229,0.142,0.941-0.528,0.345
+                       c-0.092-0.083-0.253,0.041-0.217,0.191c0.235,0.981-0.41,0.545-0.776,0.467c-0.65-0.136-1.22-0.624-1.951-0.486
+                       c0.042,0.344,0.32,0.435,0.535,0.458c0.356,0.034,0.525,0.147,0.448,0.513c-0.068,0.319-0.31,0.53-0.593,0.468
+                       c-0.609-0.134-1.008,0.081-1.422,0.515c-0.506,0.53-1.181,0.31-2.037-0.592c0.352-0.155,0.691-0.305,1.051-0.465
+                       c-0.69-0.611-1.475,0.064-2.21-0.254c0.543-0.841,1.331-1.301,2.289-1.647c-0.811-0.181-1.703-0.227-1.306-1.408
+                       c0.431-0.031,0.609,0.359,0.877,0.594c0.287,0.253,0.837,0.485,0.934,0.301c0.346-0.647,1.15-0.614,1.529-1.15
+                       c-0.205-0.358-0.643-0.051-0.87-0.442c0.288-0.068,0.775-0.009,0.628-0.496c-0.121-0.389-0.505-0.223-0.726-0.151
+                       c-0.422,0.136-0.851-0.18-1.27,0.095c-0.159,0.103-0.352-0.074-0.383-0.282c-0.059-0.378,0.823-1.122,1.216-1.037
+                       c0.272,0.059,0.597,0.038,0.809,0.185c0.615,0.428,0.722,0.015,0.807-0.494c0.21,0.244,0.301,0.636,0.649,0.492
+                       c0.306-0.128,0.03-0.418,0.043-0.635c0.015-0.248,1.159-0.969,1.373-0.831c0.372,0.241,0.742,0.17,1.292,0.103
+                       c-0.576-0.466-1.003-0.855-1.724-0.732c0.788-1.002,1.486-0.196,2.255,0.044c-0.157-0.536-0.692-0.432-0.89-0.846
+                       c0.739-0.151,1.271-0.685,2.176-1.014c-1.24-0.116-2.119,0.142-2.858,0.819c-0.229-0.212-0.11-0.411,0.083-0.666
+                       c-0.526,0.021-0.686,0.389-0.915,0.619c-0.138,0.14,0.096,0.589-0.315,0.542c-0.511-0.061,0.143-0.557-0.229-0.709
+                       c-0.885,0.42-1.792,0.35-2.707,0.12c0.571-0.235,1.091-0.653,1.737-0.4c0.07,0.028,0.248-0.024,0.248-0.045
+                       c0.028-0.771,0.791-1.017,1.108-1.579c0.028-0.049,0.052-0.1,0.079-0.151c-1.24-0.547,0.134-0.946,0.032-1.505
+                       c-0.781,0.375-1.346-0.274-2.027-0.551c1.159-1.142-0.657-0.743-0.752-1.436c0.807,0.2,1.566,0.44,2.367,0.136
+                       c-0.034-0.179-0.259-0.206-0.424-0.304c-0.262-0.155-0.665-0.316-0.576-0.634c0.061-0.21,0.444-0.382,0.803-0.188
+                       c0.115,0.063,0.338-0.075,0.575-0.136c-0.312-0.215-0.773-0.232-0.777-0.503c-0.006-0.376,0.408-0.375,0.726-0.41
+                       c0.376-0.039,0.162-0.278,0.187-0.486c0.049-0.407-0.086-0.272-0.331-0.265c-0.921,0.026-1.805,0.068-2.045,1.225
+                       c-0.331-0.11-0.41,0.389-0.739,0.298c-0.427-0.117-0.042-0.33-0.068-0.495c-0.022-0.136-0.11-0.252-0.249-0.222
+                       c-0.265,0.059-0.374,0.443-0.717,0.36c0.085,0.151,0.172,0.304,0.343,0.603c-0.498-0.309-0.902-0.275-1.328-0.255
+                       c-0.816,0.044-1.538-0.549-2.42-0.353c-0.393,0.087-0.261-0.412-0.235-0.655c0.036-0.318,0.288-0.146,0.433-0.106
+                       c0.552,0.149,1.174-0.338,0.96-0.897c-0.452-1.179,0.666-0.921,1.074-1.225c0.374-0.276,0.952-0.276,1.487-0.409
+                       c-0.236-0.403-0.567-0.413-0.848-0.51c-0.475-0.16,0.016-0.441-0.082-0.666c-0.08-0.179,0.046-0.219,0.261-0.208
+                       c1.06,0.057,2.094,0.014,2.415-1.323c-0.419,0.021-0.911,0.322-1.478,0.033c0.288-0.358,0.938-0.35,0.951-0.952
+                       c-0.56-0.327-0.951,0.105-1.427,0.279c-1.117,0.414-2.264,0.748-3.41,1.073c-0.453,0.13-0.935,0.489-1.405,0.015
+                       c-0.401,0.589-1.123,0.367-1.654,0.65c-0.201,0.107-0.847,0.857-0.656-0.256c0.005-0.028-0.072-0.1-0.117-0.106
+                       c-1.082-0.118-0.352-0.526-0.109-0.838c-0.054-0.028-0.084-0.058-0.11-0.055c-0.528,0.076-1.074,0.153-1.445-0.342
+                       c-0.186-0.249,0.41-0.463,0.917-0.272c0.168,0.065,0.295,0.24,0.463,0.308c0.431,0.17,0.747-0.06,0.58-0.458
+                       c-0.168-0.402,0.14-0.244,0.242-0.265c0.511-0.102,1.013-0.21,1.397-0.619c-0.128-0.195-0.375-0.019-0.482-0.123
+                       c-0.289-0.275-0.839,0.252-0.932-0.225c-0.094-0.482,0.488-0.698,0.802-0.876c0.387-0.221,0.644-0.279,0.319-0.758
+                       c-0.068-0.103,0.012-0.448,0.117-0.504c0.709-0.388,0.781-1.34,1.552-1.703c-0.316-0.191-0.522,0.138-0.754,0.122
+                       c-0.448-0.031-0.804-0.341-0.838-0.75c-0.026-0.35,0.443-0.316,0.709-0.398c0.199-0.06,0.501,0.053,0.628-0.058
+                       c0.294-0.257-0.3-0.369-0.195-0.427c0.181-0.096,0.034-0.919,0.577-0.304c0.047,0.053,0.366,0.212,0.432-0.113
+                       c0.04-0.196,0.043-0.378-0.238-0.392c-0.139-0.006-0.325,0.053-0.357-0.253c0.248-0.126,0.588-0.074,0.824-0.318
+                       c0.225-0.233,0.531-0.388,0.998-0.713c-0.593,0.126-0.974,0.226-1.359,0.283c-0.334,0.051-0.516,0.566-0.945,0.306
+                       c0.297-0.372-0.412-0.437-0.23-0.864c0.241-0.575,0.737-0.071,1.032-0.352c-0.21-0.474-0.705-0.249-1.065-0.457
+                       c0.558-0.502,1.486-0.353,1.836-1.209c-0.768,0.232-1.467,0.558-2.244,0.579c-0.329,0.007-0.571,0.262-0.762,0.494
+                       c-0.706,0.855-1.262,0.776-1.742-0.277c0.026-0.018,0.051-0.038,0.079-0.054c0.359-0.193,1.008,0.36,1.051-0.083
+                       c0.051-0.524-0.703-0.357-1.187-0.57c0.616-0.387,0.932-1.203,1.888-0.834c-0.138-0.989-1.196-1.103-1.597-1.855
+                       c0.701-0.155,1.178,0.044,1.467,0.792c0.308-0.735-0.372-0.978-0.41-1.446c0.979-0.295,1.206,0.432,1.396,1.206
+                       c0.358-0.201,0.015-1.086,0.768-0.682c0.019,0.011,0.208-0.213,0.253-0.349c0.07-0.208-0.117-0.251-0.267-0.291
+                       c-0.232-0.061-0.476-0.184-0.703-0.159c-0.756,0.079-0.928-0.246-0.701-1.035c0.458,0.623,1.129,0.623,1.752,0.969
+                       c-0.017-0.792-0.758-0.601-1.079-1.007c0.79-0.069,1.365,0.27,2.083,0.833c-0.308-0.655-0.102-0.973,0.389-1.064
+                       c-0.174-0.36-0.55-0.245-0.65-0.624c0.516,0.351,0.811-0.227,1.257-0.219c0.074,0.001,0.338,0.149,0.217-0.172
+                       c-0.24-0.646,0.004-0.644,0.494-0.378c0.145,0.077,0.402,0.059,0.496-0.117c0.124-0.231-0.124-0.216-0.251-0.267
+                       c-0.189-0.074-0.126-0.248-0.028-0.267c0.52-0.096,0.304-0.595,0.669-0.976c-0.469,0.061-0.756-0.011-0.992,0.307
+                       c-0.097,0.13-0.346,0.258-0.48,0.222c-0.293-0.081,0.196-0.382-0.144-0.554c-0.472,0.523-0.994,1.057-1.788,1.023
+                       c-0.287-0.011-0.271,0.057-0.267,0.289c0.005,0.148-0.16,0.417-0.268,0.428c-0.726,0.067-1.302,0.555-2.001,0.676
+                       c-0.197,0.034-0.437-0.015-0.475-0.208c-0.076-0.392,0.535-0.238,0.552-0.734c-1.453,0.87-3.275,0.6-4.496,1.92
+                       c-0.219-0.434-0.057-0.771,0.017-1.142c-0.327-0.151-0.259,0.409-0.612,0.278c0.047-0.297-0.27-0.748,0.031-0.952
+                       c0.218-0.146,0.71-0.053,0.985,0.291c0.176,0.221,0.418,0.257,0.648,0.028c0.237-0.236-0.003-0.357-0.09-0.547
+                       c-0.13-0.278-0.382-0.725,0.308-0.592c0.197,0.038,0.352,0.024,0.266-0.182c-0.243-0.598,0.263-0.401,0.477-0.583
+                       c0.402-0.344,0.667-0.857,1.253-1.02c-1.24,0.055-2.393,0.428-3.557,0.735c-0.391,0.102-0.556,0.036-0.412-0.376
+                       c0.122-0.361-0.087-0.65-0.212-1.05c0.501,0.162,0.677,0.608,1.1,0.861c0.233-0.616,0.938-0.55,1.38-0.998
+                       c0.463-0.467,0.514-1.172,1.083-1.53c-0.24-0.399-0.584,0.043-0.828-0.099c-0.232-0.134-0.422-0.34-0.633-0.519
+                       c-0.342,0.172,0.072,0.886-0.206,0.695c-0.523-0.359-1.533,0.072-1.662-1.018c0.896,0.589,1.906-0.685,2.756,0.383
+                       c-0.621-0.544-0.414-1.268-0.707-1.976c0.622,0.342,1.189,0.062,1.803,0.295c0.375,0.14,1.314,0.289,1.624-0.272
+                       c0.382-0.69,1.179,0.202,1.41-0.563c-0.174-0.454-0.731-0.468-1.081-0.76c0.21-0.205,0.383-0.381,0.612-0.279
+                       c0.459,0.208,0.862,0.125,1.247-0.157c0.097-0.069,0.394-0.134,0.256-0.203c-0.205-0.104-0.097-0.525-0.492-0.406
+                       c-0.412,0.125-0.852,0.153-1.294,0.227c0.251-1.056,0.251-1.056,0.911-0.984c-0.052-0.551-0.662-0.488-0.925-0.827
+                       c0.643-0.17,0.643-0.17,1.688,0.445c-0.012-0.468-0.304-0.808-0.546-1.44c0.578,0.61,1.135,0.579,1.793,0.606
+                       c-0.3-0.614-0.916-0.474-1.264-0.774c0.508-0.31,1.584-0.561,2.45-0.572c-0.065-0.318-0.426-0.204-0.605-0.424
+                       c0.363-0.229,0.85-0.155,1.069-0.034c0.524,0.289,0.272-0.397,0.613-0.391c0.172,0.003-0.012-0.254-0.225-0.246
+                       c-0.01-0.737-0.58-0.221-0.858-0.374c-0.159-0.087-0.507,0.237-0.515-0.237c-0.002-0.169-0.224-0.205-0.226-0.139
+                       c-0.032,0.693-1.051,0.57-1.036,1.312c0.01,0.409-0.331,0.547-0.773,0.608c-0.017-0.467,0.998-1.069-0.14-1.351
+                       c0.002-0.331,0.42-0.303,0.532-0.539c-0.09-0.064-0.134-0.126-0.178-0.124c-0.586,0.007-1.07,0.266-1.788,0.057
+                       c-0.83-0.244-1.975,0.009-2.852,0.618c-0.427,0.295-0.961,0.722-1.009-0.319c-0.01-0.223-0.412-0.196-0.362-0.5
+                       c0.511-0.274,0.727,0.113,0.936,0.54c0.187-0.602,1.166-1.088,1.641-0.897c0.472,0.189,0.472,0.189,1.171-0.152
+                       c-0.511-0.327-1.188-0.139-1.612-0.588c0.55-0.685,0.968-0.117,1.383,0.166c0.282-0.31-0.357-0.417-0.088-0.634
+                       c0.109-0.089,0.382-0.074,0.531-0.003c0.297,0.141,0.625,0.345,0.775-0.074c0.14-0.396-0.389-0.274-0.541-0.483
+                       c-0.045-0.064-0.138-0.093-0.317-0.204c0.844-0.25,1.676-0.397,2.019-1.295c-1.029,0.129-2.138,0.077-2.527,1.464
+                       c-0.291-0.289-0.125-0.597-0.263-0.857c-0.068,0.025-0.183,0.033-0.204,0.082c-0.301,0.691-1.106,0.902-1.455,1.55
+                       c-0.133,0.247-0.286,0.034-0.45-0.002c-0.743-0.161-1.491-0.346-2.072,0.443c-0.138,0.185-0.395,0.157-0.391-0.287
+                       c0.004-0.551-0.352-0.714-0.644-0.319c-0.279,0.37-0.683,0.742-0.959,0.9c-0.628,0.361-1.582,0.695-2.175,0.458
+                       c-1.259-0.499-1.198-0.651-1.937-0.654c0.37-0.308,0.665-0.533,0.748-1.009c0.053-0.301,0.635-0.098,1.013,0.126
+                       c-0.102-0.628-0.559-0.843-0.857-1.182c-0.138-0.155-0.216-0.337-0.063-0.5c0.191-0.203,0.313,0.02,0.455,0.124
+                       c0.671,0.495,1.51,0.146,1.677-0.696c0.109-0.555,0.563-0.303,0.777-0.241c0.517,0.152,0.812-0.084,1.174-0.373
+                       c0.464-0.373,0.235-0.595-0.194-0.894c0.908-0.149,1.644-0.443,2.196-1.093c-0.663-0.074-1.311-0.325-1.833,0.447
+                       c-0.289,0.427-0.614,0.121-0.613-0.576c-0.496,0.854-0.846,1.456-1.679,1.431c-0.182-0.006-0.15,0.235-0.207,0.367
+                       c-0.079,0.185-0.306,0.24-0.351,0.098c-0.138-0.426-0.309-0.903-0.325-1.296c-0.023-0.48,0.173-1.118,0.739-1.396
+                       c0.136-0.065,0.359,0.086,0.598-0.1c-0.549-0.379-0.984-0.847-1.283-1.418c0.042-0.045,0.059-0.079,0.082-0.082
+                       c1.453-0.199,1.623-0.223,1.455-1.358c-0.106-0.732,0.299-0.866,0.689-1.185c-0.693-0.36-1.507,0.237-2.098-0.509
+                       c0.98-0.394,0.194-1.046,0.245-1.622c-0.411,0.676-1.127,1.063-1.474,1.777c-0.129,0.265-0.348,0.657-0.796,0.24
+                       c-0.238-0.22-0.437-0.146-0.406,0.255c0.032,0.417-0.406,0.293-0.607,0.451c-0.027,0.019-0.212-0.108-0.268-0.2
+                       c-0.172-0.28,0.109-0.356,0.241-0.514c0.341-0.399,0.938-0.764,0.167-1.34c-0.189-0.141-0.18-0.411,0.138-0.596
+                       c0.255-0.147,0.408-0.23,0.612,0.034c0.125,0.163,0.142,0.434,0.46,0.453c0.327-0.502-0.483-0.619-0.358-1.107
+                       c0.337-0.06,0.412,0.409,0.706,0.406c0.163-0.141-0.197-0.769,0.545-0.423c0.72,0.334,0.913,0.087,0.813-0.623
+                       c-0.03-0.211,0.191-0.355,0.233-0.33c0.714,0.422,0.268-0.544,0.629-0.521c-0.074-0.451-0.508-0.216-0.746-0.376
+                       c-0.117-0.079-0.4,0.236-0.534-0.107c0.443-0.082,0.131-0.883,0.632-0.773c0.595,0.132,0.875-0.714,1.47-0.373
+                       c-0.006-0.435,0.136-0.811,0.488-1.152c-0.484,0.199-0.917,0.457-1.327-0.039c-0.081-0.097-0.269-0.091-0.331,0.024
+                       c-0.374,0.676-0.965,0.931-1.7,1.01c-0.109,0.014-0.172,0.414-0.256,0.635c-0.858-0.511-1.274,0.698-2.051,0.532
+                       c-0.173-0.036-0.323,0.185-0.551-0.078c-0.18-0.204-0.605,0.178-0.496,0.472c0.085,0.232-0.003,0.382-0.183,0.46
+                       c-0.308,0.136-0.194-0.198-0.291-0.3c-0.285-0.306-0.558-0.625-0.835-0.937c-0.199,0.14-0.103,0.266-0.002,0.384
+                       c0.168,0.198,0.362,0.443,0.13,0.651c-0.217,0.191-0.369-0.111-0.527-0.236c-0.227-0.178-0.471-0.464-0.531,0.115
+                       c-0.015,0.142-0.031,0.28-0.153,0.04c-0.288-0.559-0.677-0.059-0.817,0.047c-0.594,0.449-0.826,0.395-1.153-0.449
+                       c0.7,0.365,1.134-0.542,1.92-0.204c-0.186-0.38-0.961-0.697-0.016-0.839c0.453-0.069,0.873-0.358,1.306-0.554
+                       c0.056-0.025,0.1-0.076,0.149-0.113c0.824,1.144,1.198-0.603,1.918-0.127c-0.072-0.551-0.451-0.312-0.616-0.5
+                       c0.157-0.268,0.463-0.351,0.694-0.287c0.865,0.245,1.035-0.174,0.869-1.014c0.463,0.228,0.853,0.488,0.87-0.284
+                       c0.005-0.269,0.504-0.3,0.82-0.221c0.232,0.059,0.423,0.272,0.795,0.16c-0.678-0.334-0.404-0.734-0.181-1.159
+                       c0.359-0.689,0.669,0.246,1.032-0.04c-0.325-0.656,0.3-0.778,0.932-1.15c-1.206,0.06-2.034,0.396-2.881,0.901
+                       c-0.247-0.136-0.007-0.481-0.123-0.789c-0.223,0.105-0.537,0.153-0.608,0.311c-0.11,0.245,0.14,0.727-0.274,0.75
+                       c-0.221,0.011-0.594-0.366-0.671-0.634c-0.119-0.404,0.34-0.517,0.61-0.706c0.031-0.021,0.013-0.108,0.031-0.301
+                       c-0.681,0.547-1.709,0.346-2.036,1.337c-0.238-0.208-0.539,0.013-0.781-0.108c-0.185-0.094-0.264-0.261-0.158-0.472
+                       c0.105-0.21,0.219-0.353,0.506-0.239c0.234,0.092,0.486,0.01,0.715-0.109c-0.014-0.458-0.734,0.127-0.662-0.466
+                       c0.051-0.431,0.235-0.652,0.692-0.55c-0.051-0.733,0.4-0.653,0.886-0.582c0.129,0.019,0.191-0.236,0.129-0.287
+                       c-0.669-0.543,0.068-0.846,0.325-1.387c-0.567,0.242-0.955,0.662-1.465,0.332c-0.117-0.073-0.282,0.027-0.249,0.167
+                       c0.181,0.83-0.803,0.655-0.981,1.165c-0.161-0.07-0.547,0.378-0.486-0.24c0.027-0.276-0.242-0.218-0.412-0.123
+                       c-0.304,0.172-0.616,0.327-0.974,0.257c-0.245-0.049-0.655,0.18-0.703-0.214c-0.037-0.329,0.316-0.405,0.615-0.426
+                       c0.07-0.004,0.136-0.077,0.189-0.109c-0.04-0.425-0.511-0.363-0.647-0.691c0.59-0.415,1.114,0.477,1.712,0.032
+                       c0.052-0.27-0.428-0.287-0.389-0.636c0.53-0.081,0.747,0.908,1.386,0.443c-0.011-0.452-0.588-0.132-0.677-0.509
+                       c0.901-0.238,1.427-1.664,2.752-0.672c-0.104-0.695,0.066-1.139,0.692-1.223c-0.25-0.468-0.977,0.539-1.025-0.43
+                       c-0.003-0.066-0.213,0.046-0.281,0.14c-0.463,0.632-1.423,0.649-1.76,1.434c-0.259-0.193-0.551,0.587-0.867-0.085
+                       c-0.157-0.33-0.586-0.129-0.849,0.195c-0.17,0.206-0.385,0.699-0.69,0.391c-0.3-0.304-0.476-0.808-0.542-1.249
+                       c-0.051-0.351,0.338-0.314,0.626-0.331c0.538-0.032,0.585-0.524,0.746-1.108c0.176-0.644,0.42-1.397,1.155-1.796
+                       c-0.862-0.253-1.571,0.496-2.402,0.125c-0.371-0.165-0.515,0.881-1.112,0.37c-0.438,0.634-0.958,0.846-1.622,0.312
+                       c-0.058,0.132-0.117,0.263-0.186,0.421c-0.297-0.519-0.244-1.071,0.115-1.397c0.625-0.566,0.431-0.795-0.22-1.01
+                       c-0.065-0.021-0.098-0.148-0.172-0.266c0.272-0.117,0.573,0.319,0.613,0.133c0.281-1.346,1.255-0.521,2.052-0.575
+                       c-0.357-0.434-0.91-0.208-1.099-0.663c0.685-0.197,1.612,0.166,1.971-0.829c-0.138-0.225-0.828,0.408-0.624-0.374
+                       c-0.316-0.063-0.418,0.282-0.686,0.361c-0.305,0.087-0.582,0.731-0.879,0.274c-0.263-0.402,0.488-0.298,0.65-0.632
+                       c-0.306-0.131-0.601-0.255-1.073-0.455c0.665-0.096,1.138,0.322,1.616-0.023c-0.28-0.452-0.857-0.012-1.261-0.526
+                       c0.707-0.068,1.009-0.844,1.784-0.713c0.089,0.014,0.202-0.117,0.303-0.182c-0.807-0.651,0.305-0.797,0.331-1.552
+                       c-0.608,1.018-1.864,0.797-2.174,1.911c-0.091,0.325-0.469,0.252-0.72,0.35c0.036-0.472-0.63-0.249-0.697-0.791
+                       c-0.069-0.53,0.228-0.454,0.437-0.676c0.672-0.709,1.523-1.099,2.341-1.622c-0.741,0.314-1.512,0.155-2.255,0.274
+                       c-0.344,0.055-0.573-0.158-0.852-0.247c-0.055-0.017-0.078-0.142-0.116-0.216c0.786,0.055,0.212-0.654,0.524-0.942
+                       c0.539-0.496-0.14-0.434-0.378-0.56c0.65-0.504,0.854-1.389,1.672-1.735c-0.722-0.207-1.3,1.364-2.014,0.034
+                       c-0.412-0.772,0.665-0.667,0.68-1.261c-0.554,0.036-0.756,0.506-1.057,0.795c-0.266,0.253-0.569,0.405-0.75,0.075
+                       c-0.136-0.242-0.582-0.617-0.068-0.944c0.125-0.077,0.206-0.138,0.157-0.27c-0.216-0.578-0.219-0.576,0.356-0.791
+                       c0.012-0.006,0.007-0.061,0.012-0.104c-0.324-0.39-0.676,0.238-1.075-0.059c0.618-0.874,1.134-1.805,1.397-2.873
+                       c-0.27,0.428-0.558,0.848-0.809,1.288c-0.132,0.23-0.3,0.381-0.546,0.473c-0.15,0.057-0.295,0.149-0.424,0.004
+                       c-0.153-0.172,0.105-0.278,0.103-0.367c-0.016-0.42,0.865-0.88-0.108-1.306c-0.297-0.131,0.317-0.538,0.359-0.986
+                       c-1.229,0.521-1.189-0.43-1.325-1.251c-0.357,0.263-0.126,0.519-0.176,0.71c-0.073,0.281,0.611,1.14-0.493,0.708
+                       c-0.083-0.033-0.202-0.008-0.191,0.122c0.014,0.138-0.051,0.35,0.179,0.362c0.327,0.017,0.518,0.168,0.596,0.495
+                       c-0.189,0.254-0.971-0.124-0.696,0.722c0.074,0.227-0.756,0.413-1.145,0.689c-0.467,0.331-0.352,0.507-0.272,0.899
+                       c0.03,0.154,0.527,0.151,0.147,0.431c-0.225,0.165-0.464,0.112-0.585-0.017c-0.364-0.394-0.732-0.539-1.157-0.151
+                       c-0.261,0.239-0.212,0.04-0.318-0.125c-0.187-0.289-0.306-0.694-0.86-0.564c-0.19,0.046-0.33-0.024-0.485,0.195
+                       c-0.28,0.398,0.239,0.234,0.257,0.428c0.007,0.1,0.141,0.191,0.219,0.286c0.127,0.149,0.463,0.039,0.442,0.383
+                       c-0.021,0.369-0.342,0.302-0.544,0.403c-0.157,0.076-0.329,0.118-0.732,0.254c1.006,0.1,1.648,0.559,2.441,0.723
+                       c-0.392,0.472-1.053,0.285-1.464,0.655c-0.032,0.028-0.347-0.133-0.353-0.216c-0.038-0.579-0.423-0.37-0.746-0.399
+                       c-0.229-0.019-0.35-0.35-0.713-0.35c0.057,0.365,1.136,0.818-0.007,1.084c0.084,0.236-0.09,0.608,0.425,0.606
+                       c0.281-0.002,0.714-0.197,0.78,0.494c0.047,0.491,0.719-0.229,1.039,0.163c-0.084,0.626-0.761,0.34-1.156,0.705
+                       c0.539,0.16,0.989,0.35,1.508,0.301c0.289-0.026,0.465,0.155,0.556,0.415c0.131,0.372-0.217,0.457-0.407,0.498
+                       c-0.599,0.128-1.211,0.876-1.82,0.017c-0.291,0.306-0.691,0.18-1.022,0.289c-0.11,0.038,0.098,0.28,0.31,0.304
+                       c0.191,0.021,0.509-0.115,0.495,0.238c-0.013,0.354-0.359,0.086-0.527,0.21c-0.135,0.1-0.333,0.117-0.599,0.203
+                       c0.767,0.464,1.485,0.859,2.279,1.091c0.202,0.059,0.574-0.185,0.53,0.24c-0.025,0.253-0.352,0.307-0.619,0.301
+                       c-0.085-0.002-0.172,0.054-0.556,0.187c0.828,0.085,1.45,0.053,1.779,0.63c0.115,0.204,0.422,0.361,0.253,0.638
+                       c-0.232,0.385-0.394-0.081-0.606-0.092c-1.159-0.061-2.318-0.136-3.493-0.206c0.039,0.496,0.56,0.155,0.627,0.437
+                       c0.055,0.229,0.087,0.576-0.04,0.713c-0.16,0.176-0.691,0.311-0.718,0.264c-0.3-0.518-0.846-0.309-1.227-0.375
+                       c-0.538-0.094-0.442-0.617-0.789-0.804c-0.163-0.089-0.149-0.392-0.44-0.085c-0.46,0.483-1.106,0.426-1.717,0.415
+                       c0.149,0.641,0.59,0.766,1.167,0.702c0.173-0.019,0.504,0.032,0.515,0.098c0.148,0.761,0.511,0.89,1.242,0.666
+                       c0.431-0.13,0.333,0.55,0.598,0.788c0.213,0.191-0.027,0.262-0.171,0.387c-0.302,0.264-0.355,0.106-0.633-0.093
+                       c-0.285-0.203-0.873,0.037-0.986-0.6c-0.012-0.064-0.129,0.035-0.182,0.114c-0.26,0.394-0.707,0.329-0.89,0.081
+                       c-0.507-0.681-1.315-0.517-1.956-0.912c0.172,1.075,1.215,0.769,1.746,1.25c-0.136,0.211-0.544,0.243-0.374,0.628
+                       c0.066,0.153,0.159,0.176,0.285,0.138c0.282-0.087,0.701-0.308,0.762,0.097c0.066,0.437-0.553,0.011-0.71,0.344
+                       c0.041,0.266,0.279,0.192,0.442,0.22c0.225,0.04,0.514-0.1,0.561,0.303c0.015,0.138,0.036,0.242-0.091,0.31
+                       c-0.261,0.14-0.476-0.015-0.692-0.13c-0.285-0.15-1.169-0.316-1.755-0.331c-0.083-0.002-0.189-0.055-0.246-0.119
+                       c-0.55-0.636-1.34-0.354-2.041-0.61c0.427,0.933,1.207,0.953,2.077,0.943c-0.596,0.401-0.25,1.004-0.667,1.6
+                       c0.801-0.338,0.827-1.502,1.678-1.148c0.217,0.091,0.501,0.7,0.361,1.33c0.542-0.456,0.934-0.439,1.397-0.077
+                       c0.506,0.398,1.019,0.841,1.697,0.952c0.179,0.03,0.465,0.039,0.419,0.251c-0.041,0.198-0.228,0.488-0.54,0.356
+                       c-0.41-0.176-0.775,0.224-1.189,0.041c-0.221-0.098-0.343,0.099-0.364,0.299c-0.019,0.177,0.128,0.26,0.277,0.323
+                       c0.467,0.197,0.469,0.198,0.781,0.795c0.056,0.104,0.117,0.09,0.213,0.064c0.469-0.132,0.808,0.093,0.743,0.536
+                       c-0.083,0.583-0.584,0.836-1.145,0.867c-0.219,0.013-0.437-0.261-0.783,0.073c0.827-0.051,0.632,1.092,1.465,1.005
+                       c-0.93,0.14-1.801-0.189-2.701-0.238c-0.523-0.028-0.882-0.135-1.13,0.473c0.174,0.159,0.883-0.409,0.645,0.385
+                       c-0.01,0.037,0.173,0.174,0.183,0.167c0.608-0.517,1.328,0.206,1.943-0.184c0.248-0.156,0.546-0.312,0.733,0.008
+                       c0.21,0.355-0.196,0.404-0.382,0.491c-0.548,0.257,0.41,0.249,0.068,0.545c-0.517,0.451-2.05,0.532-2.634,0.038
+                       c-0.119-0.102-0.221-0.064-0.318-0.015c-0.144,0.072-0.395,0.181-0.419,0.073c-0.273-1.131-1.314-0.172-1.84-0.69
+                       c-0.171-0.17-0.523-0.131-0.447-0.538c0.119-0.654-0.579-0.438-0.609-0.376c-0.365,0.704-1.011,0.316-1.559,0.381
+                       c0.262,0.485,0.517,0.826,1.081,0.684c0.571-0.144,0.027,0.473,0.469,0.666c0.824,0.363,1.566,0.874,2.616,0.793
+                       c-0.21,0.34-0.741,0.507-0.46,0.863c0.208,0.264,0.461-0.053,0.705-0.184c0.421-0.226,0.867,0.057,1.051,0.363
+                       c0.512,0.842,1.512,0.787,2.17,1.329c0.559,0.459,1.172,0.508,1.823,0.233c0.057-0.023,0.167-0.055,0.172-0.044
+                       c0.524,1.054,1.456,0.355,2.376,0.494c-0.669,0.329-1.177,0.58-1.687,0.829c0.525,0.748,1.323,0.045,1.897,0.455
+                       c-0.641,1.122-1.983,0.545-2.91,1.127c0.343,0.257,0.629,0.472,1.017,0.759c-0.715-0.017-1.254-0.384-1.918-0.221
+                       c-0.447,0.11-0.695-0.559-0.961-0.908c-0.278-0.365,0.41-0.369,0.425-0.772c-0.427-0.339-1.002,0.164-1.449-0.146
+                       c-0.429-0.298-0.874-0.569-1.396-0.6c-0.13-0.507,0.567-0.507,0.486-1.027c-0.727,0.21-1.6,1.051-2.075-0.34
+                       c-0.374,0.313-0.023,0.556-0.059,0.866c-0.546-0.253-0.977,0.359-1.553,0.193c0.245,0.206,0.493,0.413,0.733,0.615
+                       c-1.041,0.578-1.245,0.481-1.504-0.787c-0.291,0.333-0.624,1.046-0.841,0.006c-0.028-0.14-0.159-0.163-0.295-0.098
+                       c-0.643,0.313-1.117,0.228-1.644-0.36c-0.299-0.334-0.969-0.331-1.616-0.523c0.199,0.423,0.854,0.565,0.328,1.086
+                       c0.885-0.205,0.885-0.205,1.849,0.31c-0.127,0.188-0.321,0.104-0.478,0.129c-0.151,0.023-0.314-0.004-0.508,0.264
+                       c0.449-0.017,0.725,0.401,1.181,0.184c0.197-0.093,0.33-0.064,0.14,0.155c-0.303,0.35,0.291,0.333,0.209,0.577
+                       c0.683-0.183,0.949,0.761,1.764,0.578c0.436-0.098,1.249,0.321,1.266,1.196c0.017,0.837,0.482,0.491,0.821,0.239
+                       c0.525-0.391,0.509-0.41,0.649,0.211c0.054,0.238,0.335,0.46,0.439,0.371c0.716-0.621,0.939,0.151,1.336,0.433
+                       c-0.538,0.427-1.001,1.003-1.875,0.861c0.303,0.65,1.021,0.995,0.898,1.754c0.54-0.136,0.932,0.455,1.402,0.35
+                       c0.295-0.066,0.463-0.106,0.362,0.189c-0.264,0.767,0.245,0.984,0.765,1.144c0.357,0.112,0.512,0.442,0.826,0.576
+                       c-0.654,0.655-0.99-0.297-1.537-0.308c-0.361-0.006-0.595-0.17-0.769,0.304c-0.112,0.303-0.41,0.642-0.752,0.631
+                       c-0.524-0.017-0.125-0.53-0.275-0.71c-0.148-0.183-0.251-0.506-0.589-0.496c-0.709,0.019-0.818-0.144-0.568-0.838
+                       c-0.326-0.143-0.505,0.374-0.831,0.198c-0.153-0.369,0.301-0.333,0.371-0.551c-0.441-0.312-0.922-0.061-1.378-0.138
+                       c-0.507-0.089,0.04,0.501-0.193,0.715c-1.697-0.968-3.43-1.873-5.448-2.16c0.528,1.023,1.461,1.479,2.278,2.124
+                       c1.097,0.862,2.15,0.786,3.365,0.642c0.121,0.46-0.495,0.51-0.495,0.899c0.538-0.063,1.091-0.049,1.612-0.396
+                       c-0.461,0.562-0.845,1.044-0.85,1.803c-0.004,0.436-0.337,1.026,0.046,1.265c0.388,0.239,1.085,0.634,1.494-0.335
+                       c-0.327,0.321-0.197,0.6-0.197,0.854c0,0.171,0.078,0.312,0.244,0.349c0.223,0.051,0.202-0.176,0.291-0.284
+                       c0.183-0.22,0.185-0.677,0.595-0.583c0.074,0.017,0.316,0.326,0.396,0.597c0.159,0.537-0.375,0.382-0.484,0.579
+                       c-0.67,1.2-1.786,0.459-2.676,0.667c-0.056,0.01-0.119-0.021-0.18-0.033c0.417-1.198-0.975-0.019-0.919-0.759
+                       c-0.015-0.317,0.549-0.162,0.528-0.537c-0.225-0.386-1.612,0.913-0.856-0.795c-0.539,0.164-0.985,0.316-1.414-0.08
+                       c0.069,0.141,0.141,0.28,0.211,0.421c-0.68,0.177-1.249-0.296-1.897-0.323c-0.233-0.01-0.274-0.178-0.214-0.409
+                       c0.045-0.176-0.168-0.356-0.262-0.258c-0.796,0.82-0.862-0.202-1.244-0.49c-0.416,0.291-0.54,0.831-0.484,1.185
+                       c0.07,0.436,0.639,0.369,1.049,0.382c0.197,0.006,0.624-0.119,0.289,0.354c-0.027,0.037-0.021,0.098-0.032,0.149
+                       c0.119-0.015,0.257,0.006,0.352-0.048c0.349-0.202,0.586-0.07,0.837,0.259c-0.38,0.033-0.711,0.061-1.174,0.101
+                       c0.321,0.353,0.297,0.963,1.005,0.551c0.225-0.129,0.439,0.403,0.827,0.349c-0.308,0.444-0.605,0.676-1.138,0.417
+                       c-0.291-0.142-0.83-0.216-0.885,0.136c-0.054,0.339-0.16,0.953,0.531,1.089c0.28,0.055,0.902-0.306,0.745,0.573
+                       c-0.066,0.377,0.191,0.424-0.51,1.089c1.347-0.357,1.465,1.548,2.737,1.274c0.072,0.301-0.649,0.576-0.176,0.778
+                       c0.325,0.139,0.484,0.944,1.066,0.388c0.107-0.102,0.293-0.175,0.37,0.059c0.076,0.225-0.024,0.367-0.257,0.387
+                       c-0.376,0.037-0.695,0.193-1.176,0.459c1.176,0.17,2.2,1.067,3.153-0.265c0.206,0.269,0,1.063,0.739,0.597
+                       c0.168-0.108,0.707-0.578,0.888,0.113c0.146,0.557,0.067,1.042-0.555,1.295c-0.204,0.081-0.439-0.123-0.628,0.103
+                       c0.148,0.39,1.004,0.195,0.783,0.928c-0.029,0.093,0.228,0.153,0.389,0.058c0.285-0.162,0.574-0.132,0.871-0.019
+                       c-0.053,0.393-0.465,0.529-0.484,1.033c-0.014,0.427-0.854,0.326-1.302,0.133c-0.62-0.267-1.213-0.252-1.85-0.123
+                       c-0.257,0.051-0.591,0.036-0.811-0.089c-1.231-0.699-2.529-1.173-3.929-1.401c-0.845-0.138-0.104-0.5-0.042-0.895
+                       c-1.368,0.18-2.718,0.31-4.127-0.109c0.653,1.031,1.472,1.514,2.489,1.796c0.168,0.047,0.597,0.458,0.777,0.728
+                       c0.266,0.4-0.269,0.651-0.545,0.791c-0.37,0.185-0.947,1.057-1.187-0.157c-0.096-0.488-0.792,0.187-0.868-0.411
+                       c-0.36,0.047-0.139,0.247-0.105,0.4c-0.76,0.081-0.276,0.896-0.694,1.19c-0.072,0.052-0.026,0.19,0.081,0.22
+                       c0.809,0.23,1.006,1.342,1.955,1.363c0.126,0.002,0.215-0.025,0.155,0.181c-0.199,0.7,0.36,0.727,0.882,0.812
+                       c-0.386,0.437-1.238,0.079-1.247,0.918c0,0.086-0.48-0.033-0.522-0.18c-0.214-0.749-0.652-0.557-1.075-0.251
+                       c-0.223-0.384,0.236-0.324,0.226-0.536c-0.06-0.03-0.13-0.091-0.16-0.074c-0.682,0.358-1.213,0.213-1.676-0.411
+                       c-0.174-0.233-1.155-0.419-1.628-0.561c-0.474-0.143-0.771-0.785-1.345-0.633c-0.439,0.113-0.811,0.032-1.191-0.157
+                       c-0.134,0.382,0.079,0.437,0.306,0.479c0.176,0.034,0.482,0.085,0.274,0.298c-0.382,0.393,0.006,0.369,0.187,0.436
+                       c0.17,0.062,0.522,0.083,0.52,0.094c-0.091,0.873,0.663,1.098,1.177,1.369c0.429,0.225,1.064,0.278,1.531,0.144
+                       c0.543-0.155,0.856,0.055,1.237,0.296c0.109,0.068,0.146,0.08,0.128,0.248c-0.118,1.069,0.383,1.546,1.442,1.353
+                       c0.572-0.104,0.833,0.411,1.122,0.655c0.263,0.221-0.272,0.472-0.57,0.637c-0.21,0.117-0.627,0.224-0.42,0.592
+                       c0.157,0.277,0.38-0.028,0.542-0.112c0.286-0.143,0.711,0.103,0.885-0.324c0.121,0.356,0.337,0.712,0.338,1.07
+                       c0.002,0.312-0.364,0.281-0.606,0.21c-0.953-0.282-1.903-0.579-2.851-0.88c-0.077-0.023-0.148-0.195-0.186-0.183
+                       c-1.331,0.422-2.285-0.623-3.44-0.871c-0.41-0.087-0.879,0.182-1.244-0.329c0.025,0.706,0.974,0.816,0.686,1.569
+                       c-0.047,0.123,0.246,0.114,0.393,0.131c1.023,0.117,1.142,0.3,0.796,1.268c0.444,0.143,0.956-0.752,1.289-0.012
+                       c0.24,0.539-0.674,0.295-0.716,0.794c0.444,0.017,0.898-0.233,1.334,0.015c0.127,0.071,0.416-0.072,0.329,0.27
+                       c-0.062,0.251-0.17,0.396-0.457,0.293c-0.199-0.07-0.469-0.368-0.558,0.083c-0.064,0.329,0.14,0.456,0.47,0.553
+                       c0.57,0.165,1.142,0.332,1.418,1.014c0.165,0.411,0.949,0.355,1.068,0.295c0.752-0.386,0.766,0.654,1.291,0.585
+                       c-0.055,0.243-0.085,0.776-0.255,0.644c-0.626-0.493-0.766,0.192-1.129,0.298c-0.236,0.068-0.638-0.148-0.913-0.29
+                       c-0.455-0.234-1.02,0.065-1.4-0.358c-0.157,0.272-0.79-0.033-0.679,0.545c0.101,0.528,1.164,1.338,1.738,1.301
+                       c0.174-0.012,0.377-0.199,0.383,0.121c0.013,0.694,0.622,0.622,1.24,0.845c-1.556,0.489-2.779-0.778-4.16-0.259
+                       c-0.144-0.293,0.399-0.334,0.308-0.623c-0.121-0.187-0.246-0.098-0.391-0.018c-0.444,0.237-0.818,0.481-1.082-0.297
+                       c-0.126-0.377-0.846-0.004-1.197-0.434c0.398,0.287-0.76,0.874,0.264,1.037c0.185,0.03-0.281,0.27-0.223,0.53
+                       c0.295,0.202,0.654-0.005,0.996,0.124c-0.064,0.444-0.476,0.512-0.794,0.671c0.191,0.387,0.511,0.543,0.843,0.583
+                       c0.267,0.032,0.652-0.295,0.749,0.172c0.079,0.381-0.514,0.111-0.617,0.527c0.779-0.025,1.121,0.79,1.857,0.855
+                       c-0.052,0.277-0.722,0.151-0.353,0.583c0.281,0.329,0.793,0.6,1.135,0.439c0.766-0.357,0.958-0.066,1.045,0.616
+                       c0.026,0.209,0.102,0.509,0.452,0.22c0.308-0.253,0.669-0.293,1.16-0.048c-1.014,0.279-0.599,1.234-0.983,1.829
+                       c-0.139,0.217-0.083,0.532-0.468,0.51c-0.297-0.018-0.666,0.099-0.647-0.419c0.012-0.367-0.304-0.273-0.491-0.387
+                       c-0.473-0.289-1.049-0.281-1.47-0.698c0.264,0.468,0.809,0.744,0.387,1.399c-0.141,0.217,0.198,0.045,0.303,0.098
+                       c0.311,0.161,0.648,0.17,1.122,0.159c-0.425,0.774-1.277,0.038-1.665,0.626c0.417,0.293,0.898,0.093,1.331,0.178
+                       c0.106,0.019,0.277-0.035,0.242,0.158c-0.019,0.112-0.127,0.301-0.244,0.208c-0.405-0.323-0.743,0.244-1.184-0.126
+                       c0.054,0.62,0.946,0.732,0.46,1.419c0.865-0.727,1.113,0.933,1.985,0.212c-0.364,1.107,0.353,1.769,1.823,1.898
+                       c-0.21,0.528-0.686,0.681-1.109,0.879c-0.201,0.093-0.469,0.125-0.382,0.417c0.081,0.272,0.376,0.214,0.565,0.178
+                       c0.613-0.121,1.136-0.523,1.829-0.464c0.299,0.024,0.297,0.051,0.229,0.25c-0.072,0.209-0.748,0.592,0.163,0.469
+                       c0.06-0.01,0.077,0.212-0.061,0.283c-0.212,0.112-0.427,0.214-0.576,0.29c-0.13,0.524,0.739-0.202,0.429,0.481
+                       c-0.149,0.329-0.312,0.636-0.743,0.532c-0.209-0.049-0.278-0.4-0.627-0.219c-0.422,0.219-0.509-0.369-0.83-0.447
+                       c-0.505-0.121,0.151,0.741-0.454,0.539c-0.143-0.049-0.321-0.036-0.434-0.118c-0.569-0.42-1.229-0.637-1.881-0.869
+                       c-0.009-0.402,0.484-0.214,0.565-0.468c-0.238-0.357-1.219,0.445-0.901-0.655c0.059-0.202-0.127-0.127-0.235-0.085
+                       c-0.126,0.051-0.215,0.315-0.37,0.149c-0.915-0.991-0.938,0.354-1.378,0.56c-0.19,0.089,0.189,0.258,0.337,0.45
+                       c-1.265,0.268-2.471,0.389-3.576-0.433c-0.098-0.073-0.305-0.181-0.32-0.162c-0.818,1.047-0.807-0.229-1.175-0.419
+                       c-0.137-0.069-0.345-0.236-0.395-0.198c-0.501,0.393-1.436-0.049-1.686,0.899c0.262,0.083,0.513,0.162,0.78,0.245
+                       c-0.239,0.226-0.434,0.411-0.771,0.729c0.936-0.115,1.548,0.125,1.747,0.978c0.039,0.164,0.238,0.333,0.326,0.25
+                       c0.552-0.516,0.768,0.698,1.284,0.23c0.072,0.903,0.618,0.182,0.951,0.276c0.189,0.558-0.566,0.483-0.619,1.014
+                       c0.558-0.628,0.452,0.634,0.97,0.214c0.074,0.643-0.807,0.876-0.625,1.623c0.156,0.65,0.247,1.206,1.088,1.113
+                       c0,0.066,0.025,0.144-0.005,0.178c-0.212,0.255-0.873,0.009-0.774,0.437c0.112,0.483,0.569-0.098,0.881,0.034
+                       c0.186,0.078,0.527-0.123,0.578,0.131c0.087,0.42-0.051,0.857-0.237,1.243c-0.129,0.268-0.362,0.14-0.558,0.046
+                       c-0.14-0.067-0.299-0.207-0.422-0.182c-1.254,0.257-1.277-0.483-1.045-1.427c-1.068,0.657-2.098,0.882-3.237,0.562
+                       c-0.257-0.072-0.39-0.136-0.4-0.396c-0.005-0.17-0.098-0.379-0.253-0.317c-0.996,0.401-1.359-0.892-2.339-0.714
+                       c0.892,0.139,0.51,1.218,1.268,1.49c0.191,0.071,0.024,0.274-0.044,0.396c-0.096,0.176-0.206,0.352,0.065,0.449
+                       c1.048,0.376,1.973,1.429,3.253,0.621c0.062-0.04,0.179,0.014,0.345,0.032c-0.176,0.388-0.495,0.543-0.803,0.708
+                       c-0.317,0.169-0.633,0.34-0.926,0.654c1.086-0.709,2.113,0.391,3.285-0.145c-0.295,0.554-0.838,0.589-1.002,0.99
+                       c1.149,0.813,1.71-0.774,2.703-0.722c0.045,0.468-0.747,0.271-0.55,0.843c0.05,0.149-0.779,0.013-0.446,0.512
+                       c0.272,0.408,0.463-0.287,0.865-0.175c-0.27,0.411-0.312,0.902-0.72,1.262c0.403,0.284,0.634-0.06,0.907-0.1
+                       c0.458-0.066,0.9-0.31,1.35,0.152c0.257,0.26,0.54,0.359,0.119,0.696c-0.339,0.27-0.459,0.481,0.013,0.846
+                       c0.212,0.162,0.615,0.581,0.346,1.108c-0.183,0.359,0.389,0.299,0.378,0.316c-0.352,0.595-0.032,0.748,0.486,0.788
+                       c-0.068,0.821,0.455-0.046,0.684,0.217c0.115,0.132,0.669-0.559,0.911-0.065c0.24,0.493-0.261,0.743-0.822,0.946
+                       c0.357,0.159,0.59,0.261,0.79,0.35c0.087,0.168-0.029,0.225-0.098,0.232c-0.681,0.072-1.42,0.28-1.702-0.678
+                       c-0.031-0.105-0.151-0.186-0.23-0.277c-0.567,0.706-0.97-0.198-1.472-0.185c-0.089,0.396,0.376,0.382,0.419,0.653
+                       c-0.115,0.157-0.385,0.013-0.476,0.277c0.068,0.038,0.138,0.11,0.212,0.114c0.285,0.014,0.589-0.191,0.837,0.165
+                       c0.121,0.174,0.085,0.379-0.025,0.347c-0.769-0.23-1.608,0.529-2.336-0.181c-0.317-0.309-0.712-0.338-1.122-0.216
+                       c-0.159,0.499,1.153,0.844,0.083,1.439c0.376,0.06,0.643,0.253,1.024,0.064c0.66-0.323,0.067,0.666,0.546,0.591
+                       c0.358-0.057,0.713-0.136,1.068-0.205c-0.397,0.704,0.386,0.421,0.552,0.659c0.378,0.544-0.348,0.606-0.423,0.942
+                       c0.468,0.246,0.903,0.459,1.4-0.226c0.004,0.585-0.837,1.016-0.187,1.196c0.564,0.153,1.059,1.325,1.841,0.289
+                       c0.192-0.251,0.577-0.543,0.559,0.201c-0.007,0.361,0.382-0.123,0.511,0.207c-0.046,0.061-0.153,0.142-0.182,0.245
+                       c-0.11,0.416-0.816,0.45-0.708,0.883c0.138,0.543,0.665-0.068,0.95,0.167c0.104,0.086,0.427,0.122,0.303,0.232
+                       c-0.328,0.285,0.153,0.725-0.21,0.912c-0.321,0.164-0.698,0.345-1.036,0.325c-1.54-0.1-3.056-0.485-4.625-0.283
+                       c-0.363,0.045-0.763-0.212-1.145-0.335c-0.813-0.263-1.557-0.717-2.495-0.57c-0.494,0.077-1.126-0.238-1.358-0.608
+                       c-0.551-0.876-1.396-1.003-2.242-1.236c-0.773-0.214-0.769-0.232-0.319-0.959c-0.755,0.715-1.263-0.28-1.938-0.208
+                       c-0.117,0.013-0.426-0.266-0.431-0.109c-0.009,0.27-0.306,0.507-0.162,0.713c0.149,0.208,0.167,0.314-0.042,0.43
+                       c-0.247,0.136-0.654,0.134-0.482,0.602c0.164,0.445,0.58,0.079,0.943,0.346c0.068,0.102-0.66,0.585,0.029,0.557
+                       c0.892-0.035,1.719,0.266,2.615,0.424c-1.013,0.238-2.024,0.485-3.039,0.71c-0.268,0.06-0.749-0.278-0.711,0.315
+                       c0.034,0.523,0.481,0.55,0.898,0.515c0.783-0.066,1.571,0.018,2.374-0.062c-0.232,0.136-0.471,0.264-0.699,0.409
+                       c-0.477,0.301-0.499,0.32-0.187,0.806c0.156,0.242-0.533,0.357-0.047,0.553c0.343,0.138,0.358-0.389,0.546-0.371
+                       c1.034,0.103,1.699-1.302,2.904-0.685c-0.646,0.635-1.287,1.239-1.254,2.262c0.251-0.063,0.525-0.216,0.618-0.142
+                       c0.644,0.527,1.226,0.712,1.84-0.049c0.136-0.17,0.226,0.097,0.326,0.195c0.21,0.21,0.13,0.449-0.018,0.581
+                       c-0.427,0.38-0.776,0.95-1.47,0.827c-0.593-0.106-0.898,0.34-1.298,0.607c-0.101,0.067-0.233,0.137-0.112,0.284
+                       c0.1,0.123,0.257,0.269,0.391,0.14c0.376-0.365,0.965-0.181,1.289-0.607c0.191,0.289-0.23,0.401-0.049,0.669
+                       c0.771-0.494,1.794-0.193,2.524-0.902c0.459,2.365-1.346,2.765-2.807,3.504c0.487-0.108,0.82,0.136,1.209,0.336
+                       c0.494,0.254,1.078,0.22,1.495-0.279c0.18-0.214,0.399-0.564,0.645-0.263c0.206,0.255-0.185,0.491-0.389,0.629
+                       c-0.25,0.17-0.57,0.23-0.853,0.351c-0.325,0.14-0.69,0.34-0.437,0.735c0.131,0.204,0.381,0.679,0.823,0.272
+                       c0.102-0.094,0.293-0.085,0.421-0.159c0.21-0.119,0.443-0.38,0.635-0.08c0.166,0.262-0.036,0.58-0.227,0.746
+                       c-0.877,0.763-1.47,0.801-2.506,0.174c-0.223-0.134-0.336,0.028-0.503,0.051c-1.137,0.161-2.228,0.272-3.365-0.26
+                       c-0.779-0.364-1.743-0.356-2.631-0.448c-0.872-0.089-0.398,0.906-0.907,1.265c-0.299,0.21,0.455,0.384,0.685,0.43
+                       c0.701,0.14,0.743,0.551,0.594,1.126c0.405-0.033,0.56-0.576,1.034-0.399c-0.142,0.274-0.04,0.564-0.365,0.88
+                       c-0.371,0.363,0.193,0.705,0.544,0.82c0.658,0.219,1.333,0.075,1.938-0.218c0.356-0.171,0.671-0.178,0.939,0.036
+                       c0.397,0.316-0.2,0.455-0.174,0.623c0.093,0.623-0.274,0.891-0.703,1.167c-0.106,0.068-0.257,0.225-0.133,0.398
+                       c0.108,0.147,0.269,0.078,0.424,0.078c0.809-0.002,1.323-0.633,1.999-0.914c0.732-0.306,0.719-0.337,0.773,0.47
+                       c0.395-0.267,0.464-0.723,0.776-1.212c0.098,1.008-0.36,1.623-1.118,2.286c0.762-0.053,1.187-0.297,1.486-0.776
+                       c0.28,0.355-0.163,0.624,0.145,0.905c0.364-0.276,0.45-0.75,0.728-1.117c0.28,0.421,0.571,0.64,0.747-0.052
+                       c0.096-0.379,0.234-0.629,0.697-0.559c0.274,0.041,0.367-0.141,0.334-0.417c-0.075-0.634,0.685-0.498,0.857-0.91
+                       c0.535,0.238,0.778,0.627,0.58,1.182c0.142,0.106,0.208,0.065,0.278-0.007c0.223-0.225,0.215-0.708,0.692-0.649
+                       c0.134,0.017,0.232,0.124,0.208,0.264c-0.065,0.378-0.371,0.562-0.655,0.746c-0.151,0.098-0.363,0.104-0.44,0.312
+                       c0.023,0.053,0.034,0.136,0.074,0.153c1.232,0.545,1.452,0.581,1.536,0.181c0.159-0.738,1.144-0.615,1.275-1.389
+                       c-0.485,0.015-0.63,0.649-1.131,0.579c-0.17-0.899,0.683-1.035,1.112-1.432c0.179-0.167,0.3,0.272,0.311,0.516
+                       c0.01,0.257-0.154,0.6,0.259,0.674c0.403,0.074,0.517-0.258,0.641-0.545c0.123-0.282,0.259-0.561,0.355-0.85
+                       c0.084-0.253,0.26-0.388,0.488-0.334c0.283,0.066,0.214,0.291,0.176,0.53c-0.063,0.397-0.698,0.915-0.21,1.118
+                       c0.429,0.178,0.338-0.653,0.576-0.922c0.246-0.276,0.733-0.516,1.083-0.478c0.787,0.084,1.478-0.15,2.2-0.386
+                       c-0.55,0.649-0.984,1.447-2.06,1.155c-0.223-0.06-0.442,0.072-0.459,0.428c-0.019,0.457-0.066,0.456-0.554,0.203
+                       c0.312,0.933,0.556,0.927,2.123-0.046c0.022,0.48,0.019,0.476-0.365,0.812c-0.15,0.135-0.443,0.246-0.246,0.506
+                       c0.121,0.159,0.089,0.423,0.378,0.483c0.586,0.123,1.206-0.112,1.771,0.191c0.017,0.007,0.119-0.119,0.162-0.193
+                       c0.558-0.97,0.728-1.008,1.431-0.318c0.445-0.296-0.514-0.577-0.051-0.756c0.442-0.17,0.28,0.452,0.522,0.628
+                       c0.106,0.078,0.457-0.017,0.302,0.317c-0.064,0.138-0.16,0.303,0.05,0.369c0.066,0.023,0.177-0.164,0.283-0.189
+                       c0.278-0.068,0.563-0.1,0.831-0.144c0.141-0.349-0.597-0.328-0.276-0.655c0.227-0.228,0.619-0.428,0.934-0.312
+                       c0.396,0.146,0.021,0.602,0.195,0.981c0.147-0.21,0.265-0.346,0.344-0.502c0.062-0.121-0.072-0.317,0.153-0.397
+                       c0.189,0.002,0.257,0.147,0.253,0.31c-0.011,0.6,0.524,0.464,0.815,0.553c0.384,0.117,0.26-0.303,0.376-0.487
+                       c0.332-0.534,0.942-0.884,1.553-0.855c0.46,0.021,0.291,0.564,0.099,0.761c-0.52,0.531-0.885,1.101-1.129,1.822
+                       c-0.134,0.396-0.683,0.53-1.207,0.353c-0.408-0.136-0.828-0.191-1.297-0.191c-0.96-0.002-0.525,1.178-1.261,1.216
+                       c0.145,0.317,0.409,0.677,0.719,0.515c0.735-0.384,1.497,0.093,2.283-0.271c0.863-0.401,1.565,0.286,1.538,1.31
+                       c0.467-0.321,0.8-0.806,1.446-0.719c0.248,0.034,0.463-0.329,0.214-0.541c-0.557-0.472-0.025-0.691,0.115-1.065
+                       c0.348-0.93,1.453-0.905,1.922-1.652c0.025-0.04,0.416,0.046,0.437,0.126c0.193,0.755,0.557,0.138,0.839,0.123
+                       c-0.038-0.485,0.981-0.666,0.418-1.233c-0.265-0.266-0.021-0.277,0.043-0.368c0.081-0.117,0.147-0.191,0.346-0.03
+                       c0.754,0.613,1.644,0.426,2.17-0.378c0.253-0.391,0.185-0.598-0.254-0.774c-0.184-0.076-0.48-0.234-0.389-0.54
+                       c0.038-0.127,0.205-0.27,0.336-0.3c0.394-0.091,0.289,0.353,0.432,0.518c0.217-0.475,0.417-0.915,0.617-1.359
+                       c0.086,0.561,0.415,0.876,0.89,1.064c0.666,0.26,0.333,0.866,0.345,1.261c0.145,5.601,0.234,11.202,0.336,16.804
+                       c0.002,0.092-0.028,0.187-0.043,0.279H1251.805z"/>
+       </g>
+       <g>
+               <path fill="#2A3524" d="M1359.627,371.75c0.165-0.3-0.028-0.326-0.271-0.467c-0.258-0.149-0.652-0.006-0.747-0.239
+                       c-0.15-0.362-0.451-0.284-0.591-0.209c-0.222,0.119,0.047,0.301,0.09,0.46c0.069,0.237,0.004,0.477-0.227,0.507
+                       c-0.317,0.044-0.303-0.182-0.244-0.437c0.054-0.239-0.222-0.36-0.345-0.341c-0.399,0.061-0.412,0.598-0.788,0.725
+                       c0.199,0.368,0.145,0.909,0.553,1.105c0.266,0.128,0.585-0.052,0.729-0.401c0.114-0.276,0.203-0.563,0.511-0.057
+                       c0.177,0.294,0.64,0.327,1.032,0.171C1359.739,372.403,1359.599,372.06,1359.627,371.75 M1355.83,343.053
+                       c0.303,1.697,0.417,2.077,0.629,2.083c0.939,0.034,1.877,0.028,2.711-0.716c-0.918,0.301-1.079-0.663-1.649-0.972
+                       C1356.916,343.12,1356.222,343.869,1355.83,343.053 M1316.93,369.881c-0.699-0.177-1.333,0.358-1.878-0.184
+                       c-0.139-0.135-0.239,0.076-0.335,0.199c-0.616,0.807-1.389,1.409-2.354,1.727c-0.261,0.087-0.212,0.269-0.237,0.435
+                       c-0.038,0.239,0.229,0.428,0.309,0.37c0.673-0.468,1.663-0.247,2.188-0.955c0.391-0.528,0.889-0.848,1.475-1.047
+                       C1316.388,370.326,1316.66,370.254,1316.93,369.881 M1311.235,368.441c0.002-0.405-0.315-0.464-0.565-0.497
+                       c-0.164-0.025-0.345,0.089-0.486-0.093c-0.32-0.419-0.819,0.076-1.164-0.227c-0.125,0.957-0.917,0.765-1.528,0.908
+                       c-0.326,0.077-0.919,1.176-0.756,1.368c0.288,0.339,0.633,0.048,0.823-0.088c1.01-0.719,2.135-1.02,3.346-1.085
+                       C1311.091,368.716,1311.307,368.72,1311.235,368.441 M1352.652,330.605c0.561,0.64,1.367,0.343,1.997,0.616
+                       c0.147,0.064,0.344-0.116,0.284-0.266c-0.142-0.347-0.072-0.587,0.229-0.78c-0.229-0.338-0.021-0.799-0.57-1.101
+                       c-1.125-0.619-1.688,0.8-2.795,0.33c0.419,0.702,1.094,0.518,1.378,1.012C1353.006,330.475,1352.849,330.533,1352.652,330.605
+                        M1346.936,309.068c-0.239,0.168-0.338-0.016-0.463-0.073c-0.394-0.182-0.741-0.079-1.013,0.211
+                       c-0.405,0.435,0.137,0.676,0.295,0.926c0.18,0.286,0.495,0.004,0.737-0.119c0.243-0.123,0.478-0.292,0.735-0.347
+                       c0.461-0.1,0.632-0.324,0.482-0.78c-0.057-0.175-0.071-0.353,0.031-0.523c-0.257-0.131-0.404,0.243-0.655,0.15
+                       c-0.062-0.541,0.389-0.378,0.63-0.49c0.274-0.127,0.453-0.324,0.476-0.632c0.02-0.283-0.199-0.34-0.406-0.43
+                       c-0.665-0.284-1.322-0.587-1.513-1.394c-0.006-0.024-0.1-0.028-0.172-0.045c-0.082,0.466,0.451,0.897,0.301,1.208
+                       C1345.933,307.697,1346.423,308.379,1346.936,309.068 M1311.367,320.511c0.784-0.068,0.196,0.684,0.624,0.832
+                       c0.503,0.172,0.611,0.499,0.577,0.983c-0.01,0.112,0.233,0.299,0.394,0.353c0.143,0.049,0.239-0.131,0.319-0.271
+                       c0.115-0.211,0.119-0.678,0.523-0.407c0.316,0.212-0.095,0.387-0.167,0.579c-0.07,0.188-0.345,0.389-0.053,0.549
+                       c0.243,0.133,0.707,0.322,0.813,0.1c0.349-0.715,1.132-0.829,1.618-1.336c0.193-0.201,0.354-0.407,0.256-0.646
+                       c-0.167-0.413-0.402,0.015-0.607-0.001c-0.25-0.021-0.419,0.301-0.707,0.143c0.07-0.294,0.275-0.391,0.529-0.536
+                       c0.474-0.265,1.078-0.474,0.436-1.317c-0.397-0.521-0.941-0.61-1.373-0.96c-0.701-0.574-1.329-0.305-1.754,0.469
+                       c-0.047,0.087-0.043,0.25-0.218,0.214c-0.874-0.176-1.238,0.737-1.979,0.879c0.54,0.036,1.052-0.489,1.56,0.061
+                       C1311.972,320.451,1311.665,320.196,1311.367,320.511 M1328.469,394.672c0.014-4.76,0.032-9.518,0.027-14.279
+                       c0-0.635,0.081-1.294-1.054-1.099c-0.374,0.062-0.996-0.458-1.65-0.313c-0.186,0.04-0.336-0.089-0.54,0.157
+                       c-0.35,0.422-0.762,0.667-0.958-0.188c-0.053-0.229-0.138-0.632-0.459-0.628c-0.396,0.004-0.098,0.429-0.239,0.592
+                       c-0.172,0.203-0.407,0.919-0.61,0.006c-0.578,0.632-0.548-0.18-0.795-0.335c-0.21-0.054-0.024,0.839-0.519,0.203
+                       c-0.229-0.295-0.531,0.157-0.853,0.111c-0.21-0.03-0.594,0.184-0.657-0.053c-0.227-0.867-0.687-0.163-0.829-0.068
+                       c-0.3,0.201-0.647,0.545-0.042,0.913c0.317,0.191,0.062,0.443-0.133,0.6c-0.269,0.218-0.576,0.46-0.906,0.155
+                       c-0.087-0.079,0.03-0.397-0.273-0.233c-0.116,0.063-0.209,0.129-0.195,0.349c0.034,0.536-0.052,0.845-0.829,0.788
+                       c-0.68-0.048-1.538,0.587-1.513,1.264c0.029,0.819-0.567,0.786-0.927,1.256c-0.007-0.473-0.407-0.777,0.036-1.293
+                       c-0.785,0.541-1.543,0.533-2.286,0.594c-0.213,0.017-0.56,0.076-0.558-0.161c0.004-0.25,0.223-0.53,0.414-0.737
+                       c0.102-0.111,0.385-0.191,0.508-0.13c0.83,0.42,1.26,0.069,1.514-0.715c0.067-0.202,0.18-0.508,0.408-0.415
+                       c0.533,0.212,0.559-0.182,0.694-0.477c-0.314-0.135-0.599-0.361-0.988-0.207c-0.286,0.113-0.589,0.374-0.713-0.275
+                       c-0.072-0.382,0.174-0.317,0.277-0.392c0.176-0.125,0.519,0.084,0.626-0.314c-0.301-0.27-0.776,0.172-1.074-0.241
+                       c-0.098-0.14-0.253,0.042-0.289,0.218c-0.135,0.676-0.66,0.947-1.208,1.248c-0.471,0.26-0.817,1.019-1.356,0.045
+                       c-0.106-0.194-0.561,0.089-0.711,0.269c-0.296,0.355-0.707,0.273-1.056,0.401c-0.26,0.097-0.512-0.061-0.61-0.309
+                       c-0.099-0.24,0.168-0.315,0.314-0.367c0.218-0.08,0.294-0.109,0.157-0.365c-0.168-0.32-0.287-0.094-0.402-0.005
+                       c-0.223,0.174-0.424,0.382-0.885,0.269c0.38-0.837,1.385-0.763,1.843-1.472c-0.604-0.06-1.186,0.331-1.797,0.225
+                       c-0.046-0.008-0.125,0.1-0.154,0.087c-1.046-0.559-1.202,0.387-1.488,0.952c-0.542-0.052-0.08-0.941-0.741-0.732
+                       c-0.488,0.153-0.605,0.554-0.524,1.051c0.042,0.244-0.032,0.588-0.371,0.49c-0.402-0.115,0.142-0.368,0.015-0.478
+                       c-0.235-0.201,0.044-0.717-0.15-0.629c-0.586,0.259-0.936-0.735-1.497-0.205c-0.114,0.106-0.05,0.288,0.456,0.748
+                       c-1.392-0.625-1.696,0.871-2.747,0.807c-0.042-0.273,0.603-0.589,0.108-0.877c-0.338-0.196-0.719-0.101-1.025,0.135
+                       c-0.372,0.286-0.725,0.597-1.244,0.499c-0.038-0.214,0.104-0.295,0.22-0.392c0.341-0.279,0.367-0.822,0.273-1.031
+                       c-0.178-0.401-0.571-0.027-0.878,0.063c-0.542,0.155-1.081,0.216-1.519-0.321c0.307-0.336,0.686-0.391,1.094-0.367
+                       c0.241,0.011,0.354-0.118,0.294-0.348c-0.078-0.299-0.216-0.047-0.326-0.013c-0.899,0.275-1.554-0.364-2.308-0.629
+                       c-0.206-0.071-0.128-0.259,0-0.367c0.201-0.169,0.114-0.634,0.582-0.538c0.544,0.114,1.119,0.118,1.639,0.296
+                       c0.692,0.235,1.376,0.254,2.064,0.123c0.218-0.04,0.334-0.002,0.493,0.102c0.69,0.447,1.098-0.189,1.597-0.451
+                       c0.053-0.029,0.059-0.249,0.013-0.342c-0.091-0.183-0.254-0.108-0.4-0.043c-0.286,0.128-0.639,0.31-0.8-0.088
+                       c-0.188-0.458,0.267-0.416,0.525-0.547c0.338-0.168,0.524-0.496,0.652-0.863c-0.35-0.148-0.455,0.157-0.604,0.311
+                       c-0.423,0.438-0.854,0.476-1.331,0.111c-0.147-0.111-0.287-0.291-0.444-0.312c-0.664-0.08-1.325,0.163-1.805-0.732
+                       c-0.222-0.411-0.705-0.579-0.121-1.211c-1.112,0.379-1.927,0.847-2.482,1.697c-0.049,0.076-0.262,0.222-0.241,0.074
+                       c0.074-0.523-0.637-0.21-0.491-0.368c0.375-0.413-0.112-1.114,0.614-1.41c0.597-0.243,0.668-0.87,0.58-1.472
+                       c-0.388-0.091-0.328,0.29-0.478,0.355c-0.39,0.168-0.788,0.873-1.235-0.031c-0.13-0.259-0.617-0.438-0.982-0.598
+                       c-0.2-0.087-1.106,0.471-0.619-0.501c0.004-0.004-0.161-0.135-0.199-0.114c-0.741,0.382-0.691-0.566-1.147-0.688
+                       c-0.155-0.041-0.034-0.277,0.055-0.402c0.114-0.162,0.25-0.138,0.394-0.03c0.273,0.201,0.545,0.413,0.935,0.328
+                       c-0.194-0.267-0.072-0.68-0.455-0.831c0.72-0.327,1.38-0.228,2.093,0.047c1.125,0.431,2.357,0.179,3.525,0.435
+                       c0.589,0.128,0.916-0.136,1.033-0.857c0.078-0.47,0.641-0.893,1.328-0.889c-0.388-0.134-0.773-0.271-1.157-0.409
+                       c0.157-0.467,0.682-0.573,0.944-0.952c0.146-0.213,0.338-0.311,0.049-0.589c-0.252-0.245-0.297-0.292-0.628-0.031
+                       c-0.383,0.305-0.961,0.364-1.499,0.447c0.224-0.473,0.936-0.56,0.737-1.286c-0.904,0.131-1.611,1.353-2.707,0.609
+                       c0.872-0.874-0.273-1.225-0.609-1.376c-0.802-0.358-1.334-1.011-2.03-1.463c-0.163-0.105-0.245-0.184-0.123-0.351
+                       c0.21-0.286,0.551-0.588,0.843-0.412c0.988,0.608,2.233,0.554,3.169,1.35c0.289,0.246,1.103,0.767,1.338-0.355
+                       c0.093-0.443,0.668-0.171,1.005-0.233c0.415-0.078,0.216,0.249,0.167,0.49c-0.029,0.129,0.18,0.445,0.262,0.437
+                       c0.775-0.066,1.482,0.262,2.223,0.472c0.05-0.459-0.286-0.57-0.416-0.8c-0.245-0.433-0.152-0.615,0.244-0.78
+                       c0.715-0.3,1.405-0.718,2.15-0.862c0.417-0.08,0.942-0.414,1.486,0.287c0.404,0.518,1.534,0.446,2.216,0.115
+                       c0.981-0.477,1.675-0.849,3.068-1.044c0.188-0.026,0.468-0.083,0.332-0.301c-0.368-0.594-0.364-1.405-0.793-1.847
+                       c-0.263-0.269-0.852-0.412-1.275-0.695c-0.234-0.155-0.431,0.256-0.584,0.481c-0.287,0.42-0.531,0.883-1.123,1.025
+                       c-0.001-0.639,0.889-0.635,0.819-1.339c-0.245-0.099-0.458,0.148-0.659,0.176c-0.217-0.294,0.165-0.369,0.127-0.575
+                       c-0.259,0.214-0.491-0.115-0.78-0.017c-0.567,0.191-1.585,0.677-2.134,1.129c-0.27-0.45,0.452-0.668,0.189-1.18
+                       c-0.576,0.268-0.976,0.866-1.71,1.044c0.21-0.979,1.375-1.217,1.566-2.166c-0.499-0.153-0.402,0.511-0.804,0.528
+                       c-0.116-1.129-0.899-0.03-1.285-0.372c-0.106,0.919-1.14,0.211-1.358,0.881c-0.4-0.294-0.176-0.636-0.227-0.92
+                       c-0.076-0.43-0.259-0.597-0.671-0.379c-0.092,0.05-0.241,0.331-0.23,0.159c0.022-0.362-0.641-0.32-0.361-0.623
+                       c0.411-0.442,0.139-1.256,0.879-1.497c0.136-0.046,0.327-0.228,0.248-0.444c-0.034-0.092-0.171-0.194-0.269-0.204
+                       c-0.217-0.02-0.311,0.133-0.385,0.33c-0.095,0.255-0.222,0.504-0.372,0.729c-0.115,0.173-0.002,0.773-0.584,0.275
+                       c-0.151-0.129-0.927,0.428-1.226,0.894c-0.317-0.093,0.275-0.782-0.451-0.625c-0.099,0.021,0.022-0.371,0.062-0.379
+                       c0.813-0.155,0.017-0.42,0.03-0.629c-0.144,0.264-0.288,0.527-0.472,0.864c-0.169-0.503-0.402-0.732-0.866-0.433
+                       c-0.28,0.182-0.628-0.067-0.55-0.231c0.322-0.693-0.378-0.716-0.584-1.051c-0.129-0.207-0.598-0.077-0.484-0.445
+                       c0.088-0.277,0.38-0.362,0.676-0.428c0.239-0.053,0.735,0.044,0.454-0.572c-0.079-0.174,0.258-0.499-0.251-0.237
+                       c-0.469,0.239-0.454-0.545-0.901-0.358c0.161-0.414,0.525-0.273,0.807-0.422c-0.375-0.537-1.37-0.13-1.348-1.044
+                       c0.835-0.202,1.466,1.023,2.429,0.47c-0.254-0.059-0.154-0.585-0.537-0.458c-0.636,0.208-0.195-0.597-0.585-0.589
+                       c0.176-0.413,0.466,0.137,0.68-0.106c0.051-0.273-0.155-0.589,0.021-0.861c0.541-0.101-0.112,1.327,0.916,0.605
+                       c0.093,0.57-0.396,1.061-0.087,1.602c0.131,0.23-0.143,0.941,0.527,0.343c0.091-0.081,0.252,0.044,0.216,0.192
+                       c-0.235,0.981,0.412,0.545,0.777,0.469c0.65-0.136,1.22-0.625,1.951-0.488c-0.042,0.343-0.319,0.437-0.534,0.458
+                       c-0.355,0.034-0.526,0.147-0.448,0.515c0.067,0.318,0.309,0.53,0.594,0.467c0.608-0.137,1.006,0.08,1.42,0.514
+                       c0.506,0.531,1.181,0.31,2.038-0.593c-0.353-0.154-0.694-0.304-1.05-0.462c0.688-0.612,1.473,0.064,2.208-0.256
+                       c-0.542-0.84-1.331-1.301-2.288-1.646c0.809-0.182,1.701-0.227,1.304-1.409c-0.431-0.03-0.606,0.358-0.876,0.595
+                       c-0.288,0.251-0.838,0.484-0.934,0.299c-0.346-0.648-1.152-0.613-1.529-1.148c0.204-0.358,0.643-0.051,0.871-0.443
+                       c-0.289-0.068-0.776-0.009-0.628-0.495c0.119-0.389,0.503-0.224,0.725-0.152c0.422,0.136,0.851-0.179,1.27,0.095
+                       c0.159,0.104,0.352-0.075,0.384-0.281c0.059-0.379-0.824-1.124-1.217-1.038c-0.272,0.06-0.599,0.039-0.809,0.186
+                       c-0.615,0.427-0.723,0.015-0.806-0.494c-0.211,0.244-0.302,0.636-0.648,0.492c-0.31-0.127-0.033-0.42-0.046-0.636
+                       c-0.013-0.247-1.158-0.968-1.373-0.83c-0.371,0.241-0.741,0.171-1.291,0.105c0.576-0.468,1.005-0.857,1.724-0.736
+                       c-0.789-1.002-1.485-0.195-2.255,0.044c0.156-0.533,0.691-0.431,0.89-0.845c-0.738-0.151-1.271-0.685-2.175-1.015
+                       c1.24-0.114,2.118,0.144,2.857,0.821c0.229-0.213,0.11-0.412-0.081-0.667c0.523,0.021,0.684,0.391,0.913,0.619
+                       c0.139,0.14-0.096,0.589,0.315,0.541c0.512-0.059-0.142-0.556,0.229-0.706c0.886,0.418,1.792,0.349,2.706,0.118
+                       c-0.571-0.234-1.09-0.654-1.737-0.4c-0.07,0.029-0.246-0.024-0.246-0.045c-0.028-0.771-0.792-1.018-1.107-1.58
+                       c-0.029-0.049-0.054-0.098-0.08-0.149c1.24-0.547-0.135-0.947-0.032-1.504c0.779,0.374,1.344-0.275,2.026-0.55
+                       c-1.159-1.145,0.657-0.745,0.752-1.438c-0.806,0.201-1.566,0.439-2.367,0.135c0.034-0.18,0.258-0.205,0.423-0.304
+                       c0.263-0.155,0.665-0.316,0.577-0.634c-0.061-0.21-0.444-0.381-0.802-0.188c-0.116,0.063-0.34-0.074-0.575-0.136
+                       c0.311-0.215,0.774-0.231,0.778-0.502c0.003-0.377-0.41-0.375-0.727-0.41c-0.377-0.04-0.163-0.279-0.188-0.486
+                       c-0.049-0.409,0.086-0.274,0.33-0.266c0.922,0.029,1.806,0.07,2.046,1.225c0.33-0.11,0.41,0.392,0.74,0.299
+                       c0.426-0.117,0.041-0.331,0.068-0.495c0.021-0.137,0.109-0.253,0.248-0.222c0.263,0.058,0.376,0.443,0.717,0.358
+                       c-0.085,0.152-0.173,0.305-0.341,0.606c0.496-0.311,0.9-0.279,1.327-0.256c0.815,0.044,1.535-0.551,2.419-0.355
+                       c0.392,0.087,0.262-0.41,0.235-0.653c-0.036-0.318-0.288-0.148-0.434-0.108c-0.552,0.152-1.172-0.338-0.959-0.895
+                       c0.451-1.18-0.664-0.921-1.074-1.225c-0.373-0.276-0.952-0.276-1.486-0.411c0.235-0.403,0.567-0.412,0.847-0.508
+                       c0.476-0.161-0.016-0.44,0.082-0.666c0.078-0.18-0.046-0.22-0.259-0.208c-1.062,0.056-2.096,0.013-2.416-1.324
+                       c0.419,0.021,0.91,0.321,1.477,0.032c-0.288-0.356-0.939-0.349-0.95-0.951c0.559-0.327,0.95,0.105,1.426,0.281
+                       c1.118,0.413,2.265,0.746,3.411,1.072c0.452,0.129,0.934,0.489,1.404,0.013c0.4,0.589,1.125,0.368,1.654,0.652
+                       c0.201,0.108,0.847,0.856,0.656-0.256c-0.005-0.029,0.074-0.1,0.117-0.107c1.08-0.119,0.353-0.526,0.108-0.836
+                       c0.055-0.029,0.086-0.059,0.11-0.055c0.529,0.076,1.075,0.151,1.445-0.344c0.188-0.248-0.409-0.463-0.916-0.271
+                       c-0.169,0.063-0.296,0.239-0.463,0.308c-0.432,0.17-0.747-0.061-0.579-0.46c0.166-0.4-0.141-0.243-0.243-0.264
+                       c-0.511-0.102-1.013-0.209-1.397-0.619c0.128-0.196,0.375-0.019,0.483-0.121c0.288-0.277,0.838,0.25,0.931-0.226
+                       c0.095-0.484-0.49-0.698-0.802-0.877c-0.387-0.22-0.645-0.281-0.319-0.758c0.069-0.102-0.011-0.448-0.115-0.505
+                       c-0.712-0.386-0.783-1.338-1.553-1.702c0.314-0.192,0.519,0.138,0.752,0.123c0.448-0.032,0.806-0.343,0.839-0.75
+                       c0.026-0.351-0.442-0.316-0.708-0.398c-0.201-0.061-0.502,0.053-0.629-0.059c-0.294-0.258,0.301-0.368,0.195-0.426
+                       c-0.18-0.098-0.034-0.92-0.576-0.305c-0.047,0.053-0.366,0.211-0.432-0.111c-0.04-0.198-0.044-0.38,0.236-0.394
+                       c0.141-0.006,0.325,0.053,0.357-0.252c-0.246-0.128-0.588-0.076-0.823-0.319c-0.224-0.233-0.531-0.388-0.997-0.714
+                       c0.593,0.127,0.972,0.226,1.357,0.284c0.336,0.05,0.516,0.567,0.946,0.308c-0.298-0.374,0.412-0.439,0.23-0.868
+                       c-0.243-0.571-0.736-0.068-1.032-0.349c0.211-0.472,0.706-0.249,1.066-0.458c-0.559-0.501-1.487-0.352-1.835-1.209
+                       c0.765,0.233,1.465,0.558,2.243,0.579c0.328,0.008,0.568,0.263,0.76,0.494c0.709,0.856,1.262,0.776,1.742-0.278
+                       c-0.025-0.018-0.051-0.037-0.077-0.052c-0.359-0.193-1.008,0.359-1.051-0.083c-0.051-0.526,0.701-0.359,1.187-0.57
+                       c-0.616-0.389-0.933-1.204-1.89-0.835c0.138-0.991,1.198-1.103,1.598-1.855c-0.701-0.155-1.177,0.044-1.467,0.792
+                       c-0.308-0.733,0.373-0.979,0.411-1.447c-0.98-0.293-1.206,0.432-1.397,1.206c-0.357-0.201-0.015-1.086-0.769-0.68
+                       c-0.018,0.012-0.206-0.213-0.251-0.35c-0.071-0.209,0.115-0.253,0.265-0.29c0.234-0.063,0.478-0.184,0.704-0.159
+                       c0.756,0.077,0.926-0.247,0.701-1.037c-0.457,0.625-1.128,0.625-1.752,0.97c0.017-0.791,0.756-0.6,1.079-1.008
+                       c-0.791-0.068-1.363,0.272-2.082,0.836c0.307-0.658,0.103-0.974-0.391-1.065c0.175-0.36,0.551-0.247,0.653-0.625
+                       c-0.518,0.353-0.814-0.228-1.258-0.218c-0.076,0.002-0.339,0.15-0.219-0.173c0.242-0.645-0.002-0.643-0.493-0.379
+                       c-0.144,0.08-0.402,0.059-0.497-0.115c-0.123-0.232,0.123-0.216,0.252-0.268c0.188-0.073,0.128-0.248,0.029-0.265
+                       c-0.521-0.099-0.305-0.599-0.672-0.978c0.471,0.061,0.757-0.011,0.994,0.308c0.097,0.128,0.347,0.258,0.48,0.222
+                       c0.294-0.082-0.196-0.382,0.144-0.555c0.472,0.522,0.993,1.057,1.788,1.023c0.286-0.012,0.271,0.057,0.265,0.29
+                       c-0.002,0.146,0.161,0.418,0.27,0.428c0.726,0.066,1.302,0.554,2.001,0.675c0.198,0.034,0.436-0.015,0.474-0.208
+                       c0.077-0.392-0.532-0.237-0.551-0.735c1.452,0.872,3.276,0.6,4.495,1.921c0.22-0.433,0.059-0.771-0.015-1.141
+                       c0.326-0.151,0.26,0.409,0.612,0.277c-0.047-0.296,0.27-0.748-0.032-0.95c-0.218-0.149-0.709-0.056-0.984,0.289
+                       c-0.178,0.22-0.419,0.258-0.649,0.029c-0.237-0.237,0.002-0.358,0.092-0.548c0.129-0.278,0.379-0.725-0.31-0.593
+                       c-0.196,0.038-0.35,0.024-0.267-0.181c0.245-0.596-0.263-0.401-0.476-0.583c-0.404-0.345-0.667-0.856-1.253-1.019
+                       c1.24,0.053,2.393,0.428,3.557,0.733c0.391,0.103,0.556,0.038,0.414-0.375c-0.126-0.361,0.085-0.648,0.21-1.05
+                       c-0.501,0.161-0.677,0.608-1.102,0.862c-0.231-0.615-0.934-0.551-1.378-0.998c-0.463-0.468-0.512-1.173-1.082-1.532
+                       c0.238-0.396,0.583,0.045,0.828-0.097c0.231-0.135,0.421-0.341,0.631-0.519c0.343,0.171-0.072,0.885,0.207,0.693
+                       c0.523-0.358,1.533,0.074,1.661-1.017c-0.895,0.59-1.904-0.685-2.755,0.384c0.621-0.545,0.413-1.269,0.707-1.976
+                       c-0.622,0.341-1.191,0.062-1.803,0.293c-0.374,0.14-1.314,0.29-1.624-0.271c-0.382-0.689-1.18,0.203-1.41-0.562
+                       c0.173-0.456,0.73-0.467,1.081-0.762c-0.208-0.204-0.383-0.381-0.61-0.276c-0.461,0.206-0.863,0.125-1.248-0.158
+                       c-0.097-0.07-0.394-0.134-0.256-0.205c0.205-0.104,0.097-0.524,0.491-0.404c0.412,0.125,0.851,0.154,1.295,0.225
+                       c-0.252-1.055-0.252-1.055-0.911-0.983c0.05-0.551,0.661-0.488,0.923-0.828c-0.641-0.168-0.641-0.168-1.686,0.445
+                       c0.009-0.465,0.304-0.807,0.546-1.439c-0.58,0.61-1.136,0.58-1.793,0.606c0.299-0.614,0.915-0.473,1.264-0.775
+                       c-0.51-0.309-1.585-0.56-2.45-0.571c0.063-0.317,0.426-0.205,0.606-0.424c-0.365-0.227-0.852-0.156-1.072-0.034
+                       c-0.522,0.29-0.271-0.4-0.612-0.391c-0.171,0.001,0.011-0.255,0.225-0.247c0.01-0.737,0.58-0.222,0.858-0.372
+                       c0.159-0.087,0.506,0.236,0.513-0.239c0.004-0.168,0.226-0.204,0.23-0.136c0.029,0.691,1.048,0.568,1.033,1.31
+                       c-0.008,0.411,0.332,0.549,0.774,0.61c0.017-0.468-0.998-1.071,0.14-1.355c-0.002-0.329-0.419-0.301-0.532-0.536
+                       c0.09-0.065,0.136-0.126,0.179-0.126c0.586,0.01,1.069,0.268,1.788,0.057c0.828-0.243,1.974,0.01,2.851,0.619
+                       c0.427,0.296,0.962,0.722,1.009-0.319c0.01-0.223,0.412-0.197,0.362-0.499c-0.51-0.275-0.726,0.112-0.936,0.539
+                       c-0.186-0.602-1.166-1.087-1.64-0.897c-0.472,0.189-0.472,0.189-1.174-0.152c0.513-0.326,1.191-0.139,1.614-0.587
+                       c-0.55-0.685-0.967-0.119-1.383,0.165c-0.282-0.309,0.357-0.417,0.09-0.634c-0.112-0.089-0.383-0.074-0.533-0.002
+                       c-0.297,0.14-0.626,0.343-0.776-0.076c-0.14-0.395,0.391-0.273,0.54-0.482c0.046-0.063,0.141-0.093,0.319-0.206
+                       c-0.846-0.248-1.676-0.393-2.017-1.294c1.026,0.131,2.136,0.077,2.525,1.465c0.29-0.288,0.125-0.598,0.264-0.856
+                       c0.066,0.025,0.182,0.033,0.205,0.08c0.299,0.693,1.105,0.903,1.453,1.551c0.133,0.247,0.285,0.034,0.452-0.002
+                       c0.741-0.161,1.49-0.345,2.07,0.442c0.139,0.187,0.395,0.158,0.391-0.286c-0.004-0.552,0.352-0.713,0.647-0.32
+                       c0.274,0.37,0.68,0.742,0.955,0.902c0.627,0.36,1.583,0.692,2.177,0.458c1.258-0.5,1.197-0.652,1.937-0.656
+                       c-0.369-0.307-0.665-0.531-0.749-1.007c-0.053-0.3-0.635-0.099-1.012,0.126c0.1-0.63,0.559-0.844,0.857-1.182
+                       c0.136-0.158,0.216-0.338,0.062-0.5c-0.191-0.203-0.312,0.019-0.455,0.123c-0.671,0.496-1.511,0.146-1.678-0.697
+                       c-0.108-0.554-0.561-0.301-0.775-0.239c-0.52,0.152-0.813-0.085-1.175-0.375c-0.463-0.372-0.236-0.594,0.193-0.892
+                       c-0.907-0.15-1.644-0.445-2.196-1.093c0.664-0.076,1.312-0.324,1.833,0.445c0.291,0.429,0.615,0.123,0.613-0.576
+                       c0.497,0.855,0.846,1.457,1.682,1.432c0.18-0.004,0.15,0.235,0.205,0.368c0.079,0.183,0.307,0.24,0.352,0.098
+                       c0.137-0.428,0.308-0.903,0.325-1.297c0.022-0.479-0.175-1.118-0.74-1.395c-0.137-0.067-0.36,0.085-0.599-0.099
+                       c0.55-0.382,0.986-0.848,1.284-1.421c-0.042-0.043-0.059-0.077-0.08-0.081c-1.457-0.197-1.625-0.223-1.458-1.357
+                       c0.108-0.733-0.298-0.866-0.686-1.185c0.691-0.36,1.505,0.235,2.097-0.51c-0.98-0.393-0.194-1.045-0.245-1.622
+                       c0.41,0.677,1.124,1.064,1.473,1.778c0.129,0.263,0.349,0.655,0.796,0.239c0.237-0.22,0.436-0.146,0.406,0.256
+                       c-0.032,0.416,0.408,0.292,0.607,0.45c0.026,0.019,0.212-0.108,0.269-0.201c0.171-0.279-0.11-0.354-0.243-0.511
+                       c-0.339-0.401-0.937-0.765-0.166-1.342c0.189-0.142,0.18-0.41-0.139-0.597c-0.254-0.147-0.408-0.229-0.611,0.034
+                       c-0.125,0.163-0.142,0.436-0.46,0.455c-0.327-0.502,0.481-0.621,0.358-1.106c-0.335-0.063-0.411,0.408-0.705,0.404
+                       c-0.165-0.14,0.195-0.769-0.548-0.423c-0.719,0.335-0.912,0.087-0.812-0.621c0.031-0.213-0.189-0.355-0.232-0.331
+                       c-0.716,0.42-0.268-0.545-0.628-0.522c0.074-0.45,0.508-0.216,0.747-0.377c0.116-0.078,0.398,0.237,0.53-0.105
+                       c-0.439-0.083-0.128-0.884-0.629-0.774c-0.597,0.13-0.876-0.714-1.471-0.374c0.005-0.434-0.137-0.81-0.488-1.149
+                       c0.484,0.197,0.918,0.456,1.328-0.04c0.082-0.097,0.267-0.091,0.33,0.022c0.375,0.677,0.967,0.932,1.702,1.012
+                       c0.106,0.011,0.171,0.414,0.254,0.634c0.859-0.512,1.274,0.699,2.05,0.532c0.174-0.036,0.324,0.186,0.553-0.077
+                       c0.179-0.205,0.605,0.178,0.496,0.47c-0.086,0.232,0.003,0.382,0.181,0.462c0.309,0.137,0.196-0.199,0.292-0.301
+                       c0.285-0.305,0.558-0.625,0.837-0.938c0.197,0.14,0.1,0.268,0,0.385c-0.167,0.197-0.363,0.443-0.129,0.652
+                       c0.217,0.191,0.367-0.113,0.527-0.238c0.227-0.178,0.469-0.463,0.53,0.118c0.016,0.139,0.031,0.279,0.154,0.038
+                       c0.288-0.559,0.675-0.059,0.815,0.047c0.594,0.449,0.827,0.396,1.155-0.448c-0.7,0.364-1.134-0.541-1.921-0.205
+                       c0.186-0.379,0.963-0.695,0.015-0.839c-0.453-0.068-0.871-0.358-1.306-0.553c-0.055-0.025-0.099-0.075-0.147-0.115
+                       c-0.823,1.144-1.199-0.602-1.918-0.127c0.071-0.549,0.45-0.311,0.615-0.5c-0.158-0.268-0.463-0.351-0.693-0.287
+                       c-0.866,0.247-1.036-0.173-0.87-1.012c-0.462,0.227-0.853,0.486-0.868-0.283c-0.006-0.272-0.506-0.301-0.821-0.222
+                       c-0.233,0.059-0.424,0.271-0.796,0.16c0.677-0.334,0.403-0.736,0.182-1.16c-0.361-0.687-0.669,0.246-1.032-0.04
+                       c0.323-0.657-0.301-0.777-0.933-1.15c1.206,0.061,2.033,0.397,2.881,0.902c0.246-0.137,0.007-0.483,0.123-0.79
+                       c0.223,0.106,0.537,0.153,0.606,0.311c0.113,0.245-0.138,0.727,0.276,0.75c0.221,0.011,0.595-0.366,0.672-0.634
+                       c0.118-0.403-0.341-0.517-0.612-0.705c-0.03-0.021-0.014-0.11-0.03-0.301c0.682,0.547,1.71,0.347,2.036,1.336
+                       c0.239-0.208,0.539,0.014,0.781-0.107c0.186-0.093,0.264-0.262,0.158-0.472c-0.107-0.21-0.218-0.354-0.507-0.241
+                       c-0.233,0.093-0.485,0.012-0.714-0.108c0.015-0.458,0.733,0.127,0.663-0.465c-0.053-0.432-0.235-0.652-0.692-0.551
+                       c0.051-0.731-0.402-0.653-0.887-0.581c-0.129,0.017-0.192-0.237-0.129-0.289c0.669-0.543-0.067-0.844-0.326-1.387
+                       c0.567,0.244,0.955,0.664,1.467,0.334c0.115-0.075,0.279,0.026,0.249,0.166c-0.182,0.831,0.803,0.656,0.98,1.165
+                       c0.161-0.07,0.548,0.379,0.487-0.24c-0.026-0.276,0.241-0.217,0.409-0.122c0.306,0.171,0.617,0.326,0.975,0.256
+                       c0.246-0.049,0.656,0.178,0.704-0.214c0.038-0.328-0.315-0.405-0.615-0.426c-0.07-0.003-0.136-0.078-0.188-0.11
+                       c0.038-0.424,0.509-0.362,0.645-0.689c-0.589-0.414-1.113,0.477-1.712,0.031c-0.051-0.27,0.43-0.287,0.389-0.635
+                       c-0.527-0.081-0.747,0.907-1.385,0.443c0.012-0.454,0.587-0.133,0.676-0.509c-0.901-0.239-1.426-1.665-2.751-0.673
+                       c0.104-0.694-0.067-1.138-0.692-1.225c0.248-0.465,0.976,0.542,1.026-0.429c0.004-0.064,0.212,0.047,0.282,0.142
+                       c0.463,0.631,1.421,0.648,1.757,1.432c0.258-0.19,0.552,0.589,0.868-0.084c0.158-0.331,0.587-0.128,0.85,0.194
+                       c0.169,0.208,0.383,0.699,0.688,0.392c0.302-0.303,0.478-0.807,0.543-1.249c0.051-0.351-0.338-0.313-0.624-0.33
+                       c-0.541-0.032-0.588-0.524-0.747-1.108c-0.177-0.646-0.421-1.398-1.157-1.798c0.863-0.252,1.572,0.498,2.403,0.125
+                       c0.371-0.165,0.513,0.883,1.11,0.372c0.44,0.634,0.96,0.847,1.624,0.311c0.058,0.133,0.117,0.264,0.187,0.42
+                       c0.298-0.519,0.245-1.07-0.116-1.397c-0.625-0.564-0.432-0.792,0.22-1.008c0.067-0.023,0.099-0.148,0.171-0.266
+                       c-0.273-0.117-0.573,0.319-0.612,0.133c-0.283-1.346-1.255-0.522-2.054-0.575c0.359-0.435,0.913-0.209,1.102-0.665
+                       c-0.686-0.195-1.613,0.169-1.972-0.826c0.139-0.225,0.828,0.407,0.624-0.377c0.315-0.061,0.417,0.285,0.686,0.362
+                       c0.303,0.087,0.582,0.731,0.88,0.273c0.262-0.401-0.487-0.298-0.652-0.63c0.307-0.131,0.601-0.255,1.075-0.457
+                       c-0.665-0.096-1.138,0.323-1.618-0.02c0.281-0.454,0.857-0.013,1.261-0.526c-0.705-0.069-1.008-0.845-1.782-0.714
+                       c-0.089,0.015-0.203-0.12-0.305-0.184c0.809-0.65-0.306-0.795-0.33-1.551c0.607,1.019,1.866,0.797,2.175,1.911
+                       c0.089,0.324,0.468,0.252,0.718,0.351c-0.034-0.473,0.629-0.251,0.7-0.792c0.068-0.53-0.23-0.454-0.44-0.676
+                       c-0.671-0.71-1.521-1.099-2.34-1.621c0.741,0.313,1.514,0.156,2.257,0.273c0.343,0.055,0.57-0.159,0.851-0.247
+                       c0.055-0.018,0.077-0.142,0.115-0.215c-0.786,0.054-0.212-0.656-0.524-0.942c-0.539-0.496,0.14-0.435,0.376-0.56
+                       c-0.648-0.505-0.852-1.39-1.67-1.737c0.72-0.207,1.301,1.365,2.014,0.034c0.413-0.771-0.664-0.665-0.679-1.259
+                       c0.553,0.034,0.754,0.506,1.056,0.793c0.268,0.255,0.569,0.405,0.751,0.077c0.134-0.243,0.582-0.618,0.066-0.944
+                       c-0.123-0.078-0.206-0.138-0.157-0.271c0.216-0.577,0.219-0.575-0.355-0.792c-0.013-0.005-0.008-0.058-0.011-0.102
+                       c0.324-0.391,0.675,0.237,1.073-0.061c-0.616-0.873-1.134-1.805-1.397-2.87c0.273,0.427,0.557,0.846,0.809,1.285
+                       c0.133,0.232,0.302,0.383,0.546,0.476c0.15,0.054,0.296,0.147,0.425,0.001c0.153-0.171-0.105-0.277-0.102-0.366
+                       c0.015-0.419-0.865-0.879,0.108-1.306c0.295-0.131-0.319-0.536-0.361-0.985c1.231,0.52,1.191-0.43,1.326-1.252
+                       c0.358,0.264,0.126,0.519,0.176,0.711c0.074,0.28-0.611,1.14,0.493,0.708c0.083-0.035,0.203-0.008,0.19,0.123
+                       c-0.012,0.138,0.052,0.349-0.179,0.36c-0.326,0.017-0.517,0.167-0.595,0.496c0.19,0.252,0.973-0.125,0.696,0.721
+                       c-0.074,0.228,0.754,0.413,1.145,0.69c0.466,0.329,0.35,0.507,0.273,0.897c-0.032,0.156-0.527,0.152-0.148,0.432
+                       c0.224,0.166,0.464,0.114,0.586-0.017c0.364-0.393,0.732-0.54,1.157-0.15c0.261,0.239,0.212,0.038,0.316-0.125
+                       c0.188-0.288,0.307-0.695,0.861-0.564c0.189,0.043,0.33-0.025,0.486,0.195c0.28,0.397-0.24,0.234-0.257,0.427
+                       c-0.009,0.101-0.142,0.192-0.22,0.285c-0.126,0.152-0.464,0.042-0.443,0.385c0.022,0.37,0.343,0.304,0.546,0.403
+                       c0.155,0.076,0.329,0.115,0.731,0.254c-1.006,0.1-1.649,0.556-2.439,0.721c0.39,0.472,1.052,0.286,1.462,0.656
+                       c0.031,0.029,0.346-0.132,0.351-0.217c0.041-0.579,0.426-0.369,0.748-0.398c0.229-0.019,0.351-0.348,0.713-0.348
+                       c-0.057,0.363-1.136,0.815,0.007,1.083c-0.083,0.237,0.09,0.609-0.425,0.606c-0.282,0-0.714-0.196-0.781,0.496
+                       c-0.047,0.49-0.718-0.23-1.04,0.161c0.087,0.627,0.762,0.339,1.158,0.706c-0.539,0.159-0.99,0.349-1.507,0.302
+                       c-0.29-0.029-0.467,0.153-0.556,0.412c-0.13,0.374,0.216,0.458,0.406,0.498c0.599,0.128,1.211,0.879,1.82,0.019
+                       c0.29,0.307,0.692,0.18,1.022,0.289c0.11,0.037-0.097,0.279-0.311,0.304c-0.19,0.021-0.508-0.115-0.495,0.239
+                       c0.014,0.353,0.359,0.083,0.527,0.209c0.137,0.1,0.334,0.117,0.599,0.203c-0.765,0.463-1.484,0.859-2.278,1.09
+                       c-0.201,0.059-0.575-0.183-0.53,0.241c0.025,0.253,0.351,0.305,0.618,0.3c0.086-0.002,0.172,0.055,0.556,0.187
+                       c-0.826,0.086-1.448,0.054-1.779,0.631c-0.115,0.203-0.42,0.36-0.251,0.638c0.232,0.383,0.394-0.084,0.606-0.093
+                       c1.159-0.06,2.315-0.136,3.491-0.207c-0.038,0.496-0.558,0.156-0.626,0.437c-0.055,0.23-0.088,0.576,0.04,0.716
+                       c0.159,0.175,0.69,0.309,0.718,0.262c0.3-0.517,0.848-0.309,1.227-0.376c0.538-0.092,0.442-0.615,0.789-0.803
+                       c0.163-0.088,0.15-0.391,0.44-0.085c0.461,0.485,1.107,0.426,1.716,0.415c-0.148,0.643-0.59,0.767-1.165,0.704
+                       c-0.174-0.021-0.504,0.03-0.518,0.096c-0.147,0.762-0.507,0.889-1.239,0.667c-0.432-0.131-0.334,0.549-0.597,0.786
+                       c-0.215,0.193,0.026,0.264,0.168,0.387c0.303,0.265,0.357,0.108,0.634-0.092c0.286-0.202,0.873,0.037,0.987-0.599
+                       c0.012-0.065,0.127,0.034,0.181,0.113c0.261,0.393,0.707,0.331,0.89,0.082c0.507-0.682,1.315-0.519,1.957-0.911
+                       c-0.172,1.072-1.217,0.767-1.748,1.248c0.137,0.212,0.546,0.244,0.375,0.628c-0.068,0.154-0.159,0.176-0.286,0.138
+                       c-0.281-0.087-0.7-0.308-0.762,0.096c-0.066,0.439,0.556,0.013,0.711,0.344c-0.042,0.267-0.278,0.194-0.441,0.222
+                       c-0.224,0.038-0.514-0.1-0.561,0.302c-0.016,0.138-0.037,0.242,0.09,0.311c0.26,0.14,0.476-0.015,0.692-0.131
+                       c0.285-0.15,1.168-0.317,1.754-0.33c0.085-0.002,0.189-0.055,0.246-0.119c0.552-0.637,1.341-0.355,2.043-0.61
+                       c-0.429,0.932-1.208,0.955-2.077,0.941c0.595,0.401,0.249,1.006,0.666,1.601c-0.8-0.338-0.827-1.502-1.678-1.146
+                       c-0.218,0.088-0.501,0.698-0.363,1.329c-0.542-0.457-0.932-0.439-1.395-0.078c-0.506,0.398-1.018,0.841-1.698,0.952
+                       c-0.179,0.029-0.463,0.04-0.42,0.251c0.044,0.199,0.23,0.49,0.542,0.355c0.411-0.175,0.776,0.225,1.189,0.041
+                       c0.222-0.096,0.344,0.101,0.364,0.3c0.02,0.178-0.126,0.259-0.276,0.324c-0.469,0.197-0.469,0.197-0.783,0.793
+                       c-0.055,0.104-0.116,0.092-0.213,0.064c-0.47-0.132-0.805,0.096-0.743,0.536c0.083,0.585,0.584,0.838,1.147,0.868
+                       c0.218,0.012,0.436-0.262,0.781,0.072c-0.824-0.05-0.629,1.093-1.463,1.006c0.929,0.14,1.799-0.19,2.7-0.239
+                       c0.523-0.028,0.883-0.133,1.129,0.475c-0.174,0.157-0.881-0.411-0.644,0.385c0.011,0.036-0.173,0.174-0.184,0.165
+                       c-0.607-0.515-1.329,0.208-1.941-0.182c-0.249-0.156-0.546-0.311-0.734,0.007c-0.211,0.355,0.197,0.405,0.381,0.491
+                       c0.55,0.257-0.41,0.25-0.068,0.547c0.519,0.448,2.051,0.529,2.635,0.036c0.119-0.101,0.222-0.065,0.318-0.015
+                       c0.142,0.071,0.395,0.182,0.42,0.073c0.273-1.131,1.313-0.172,1.837-0.689c0.172-0.17,0.525-0.13,0.451-0.537
+                       c-0.121-0.655,0.576-0.439,0.608-0.377c0.362,0.704,1.009,0.316,1.557,0.383c-0.263,0.482-0.517,0.823-1.081,0.681
+                       c-0.57-0.144-0.026,0.473-0.466,0.667c-0.824,0.362-1.57,0.872-2.619,0.793c0.211,0.339,0.742,0.505,0.461,0.863
+                       c-0.208,0.264-0.461-0.055-0.705-0.185c-0.423-0.226-0.866,0.059-1.052,0.362c-0.51,0.845-1.511,0.789-2.169,1.329
+                       c-0.558,0.46-1.17,0.509-1.824,0.234c-0.057-0.023-0.167-0.054-0.173-0.042c-0.523,1.053-1.454,0.354-2.375,0.493
+                       c0.669,0.329,1.178,0.578,1.687,0.83c-0.523,0.746-1.322,0.046-1.895,0.452c0.64,1.124,1.98,0.547,2.91,1.129
+                       c-0.344,0.256-0.63,0.469-1.017,0.76c0.715-0.017,1.253-0.385,1.917-0.222c0.448,0.108,0.696-0.559,0.961-0.909
+                       c0.277-0.364-0.411-0.368-0.426-0.771c0.428-0.34,1.003,0.163,1.45-0.148c0.431-0.298,0.874-0.568,1.396-0.598
+                       c0.128-0.507-0.567-0.507-0.488-1.027c0.729,0.209,1.602,1.051,2.077-0.341c0.375,0.313,0.024,0.557,0.06,0.865
+                       c0.544-0.252,0.975,0.361,1.551,0.194c-0.245,0.206-0.491,0.414-0.732,0.617c1.041,0.575,1.244,0.48,1.504-0.79
+                       c0.29,0.334,0.624,1.048,0.842,0.006c0.028-0.138,0.159-0.163,0.293-0.096c0.645,0.314,1.117,0.227,1.644-0.361
+                       c0.3-0.334,0.971-0.33,1.618-0.522c-0.198,0.422-0.856,0.564-0.331,1.085c-0.883-0.207-0.883-0.207-1.846,0.311
+                       c0.125,0.186,0.32,0.104,0.476,0.127c0.151,0.023,0.315-0.002,0.509,0.266c-0.449-0.018-0.724,0.398-1.181,0.184
+                       c-0.196-0.094-0.332-0.065-0.14,0.155c0.304,0.349-0.29,0.331-0.21,0.577c-0.683-0.184-0.948,0.76-1.764,0.578
+                       c-0.435-0.099-1.249,0.32-1.266,1.196c-0.017,0.835-0.482,0.49-0.821,0.237c-0.525-0.389-0.508-0.409-0.648,0.212
+                       c-0.054,0.239-0.336,0.46-0.438,0.37c-0.719-0.619-0.941,0.152-1.337,0.435c0.538,0.426,1.001,1.002,1.875,0.86
+                       c-0.303,0.649-1.022,0.996-0.899,1.756c-0.54-0.137-0.93,0.454-1.401,0.347c-0.295-0.067-0.463-0.105-0.362,0.19
+                       c0.264,0.766-0.244,0.983-0.766,1.146c-0.356,0.109-0.51,0.441-0.825,0.573c0.655,0.657,0.99-0.295,1.539-0.307
+                       c0.357-0.005,0.592-0.168,0.767,0.303c0.11,0.303,0.411,0.644,0.752,0.633c0.524-0.017,0.126-0.532,0.274-0.712
+                       c0.149-0.182,0.252-0.506,0.589-0.496c0.709,0.019,0.819-0.142,0.569-0.837c0.324-0.14,0.504,0.374,0.83,0.199
+                       c0.154-0.37-0.301-0.334-0.369-0.553c0.44-0.311,0.921-0.059,1.378-0.138c0.507-0.088-0.04,0.503,0.192,0.717
+                       c1.696-0.969,3.431-1.873,5.449-2.16c-0.531,1.021-1.462,1.478-2.279,2.122c-1.096,0.864-2.148,0.786-3.366,0.642
+                       c-0.119,0.462,0.495,0.512,0.495,0.9c-0.538-0.062-1.088-0.047-1.611-0.396c0.46,0.563,0.846,1.044,0.851,1.804
+                       c0.003,0.435,0.338,1.025-0.047,1.265c-0.389,0.239-1.085,0.634-1.495-0.336c0.329,0.32,0.198,0.602,0.198,0.854
+                       c0,0.17-0.078,0.311-0.245,0.351c-0.221,0.05-0.201-0.179-0.29-0.286c-0.184-0.22-0.186-0.677-0.595-0.582
+                       c-0.074,0.018-0.317,0.324-0.396,0.595c-0.158,0.539,0.375,0.384,0.485,0.581c0.667,1.2,1.784,0.458,2.675,0.665
+                       c0.055,0.013,0.119-0.019,0.18-0.031c-0.419-1.2,0.975-0.019,0.92-0.759c0.015-0.317-0.55-0.163-0.529-0.537
+                       c0.225-0.387,1.613,0.914,0.857-0.796c0.54,0.165,0.984,0.315,1.412-0.08c-0.07,0.141-0.14,0.281-0.21,0.42
+                       c0.678,0.179,1.25-0.296,1.898-0.322c0.233-0.01,0.273-0.178,0.212-0.411c-0.046-0.174,0.169-0.352,0.264-0.255
+                       c0.794,0.817,0.86-0.201,1.243-0.491c0.417,0.293,0.54,0.832,0.484,1.185c-0.071,0.436-0.639,0.37-1.049,0.382
+                       c-0.195,0.006-0.626-0.117-0.29,0.355c0.026,0.038,0.023,0.099,0.033,0.148c-0.118-0.013-0.257,0.008-0.352-0.047
+                       c-0.348-0.201-0.585-0.069-0.838,0.259c0.379,0.032,0.712,0.061,1.174,0.101c-0.32,0.352-0.296,0.962-1.004,0.552
+                       c-0.224-0.13-0.44,0.401-0.825,0.35c0.307,0.442,0.603,0.675,1.137,0.415c0.29-0.142,0.829-0.215,0.886,0.137
+                       c0.053,0.337,0.159,0.953-0.533,1.089c-0.281,0.055-0.902-0.307-0.745,0.572c0.066,0.377-0.19,0.424,0.511,1.089
+                       c-1.348-0.356-1.465,1.549-2.737,1.272c-0.073,0.302,0.648,0.578,0.176,0.781c-0.326,0.14-0.485,0.943-1.067,0.387
+                       c-0.107-0.102-0.292-0.176-0.37,0.059c-0.076,0.224,0.025,0.366,0.258,0.389c0.376,0.034,0.696,0.191,1.175,0.456
+                       c-1.177,0.171-2.201,1.068-3.155-0.264c-0.204,0.27,0.003,1.063-0.737,0.597c-0.169-0.108-0.707-0.578-0.887,0.111
+                       c-0.146,0.559-0.067,1.044,0.553,1.296c0.205,0.083,0.44-0.123,0.63,0.106c-0.148,0.388-1.005,0.195-0.784,0.926
+                       c0.029,0.091-0.229,0.152-0.39,0.059c-0.284-0.163-0.575-0.133-0.87-0.019c0.053,0.393,0.465,0.528,0.484,1.035
+                       c0.015,0.425,0.854,0.322,1.3,0.13c0.622-0.267,1.216-0.25,1.851-0.123c0.257,0.051,0.591,0.036,0.811-0.087
+                       c1.232-0.701,2.529-1.175,3.93-1.403c0.844-0.137,0.104-0.5,0.042-0.895c1.369,0.18,2.719,0.312,4.127-0.109
+                       c-0.652,1.03-1.473,1.513-2.489,1.797c-0.169,0.046-0.597,0.456-0.777,0.727c-0.266,0.401,0.269,0.652,0.544,0.79
+                       c0.371,0.187,0.948,1.059,1.189-0.156c0.097-0.488,0.792,0.188,0.868-0.412c0.358,0.049,0.138,0.249,0.104,0.401
+                       c0.76,0.082,0.275,0.898,0.692,1.191c0.074,0.051,0.028,0.189-0.08,0.22c-0.807,0.229-1.004,1.342-1.954,1.361
+                       c-0.127,0.002-0.214-0.023-0.156,0.182c0.2,0.7-0.36,0.727-0.881,0.813c0.384,0.437,1.238,0.079,1.245,0.916
+                       c0.002,0.088,0.482-0.032,0.524-0.18c0.214-0.748,0.652-0.556,1.075-0.25c0.224-0.383-0.237-0.322-0.226-0.536
+                       c0.059-0.03,0.131-0.091,0.161-0.073c0.681,0.356,1.212,0.213,1.677-0.41c0.172-0.233,1.154-0.418,1.626-0.563
+                       c0.474-0.142,0.769-0.784,1.346-0.633c0.438,0.115,0.809,0.032,1.189-0.156c0.136,0.382-0.08,0.437-0.305,0.479
+                       c-0.177,0.034-0.482,0.085-0.275,0.298c0.383,0.394-0.004,0.369-0.186,0.436c-0.171,0.063-0.522,0.084-0.52,0.095
+                       c0.092,0.873-0.665,1.097-1.177,1.367c-0.429,0.226-1.063,0.281-1.532,0.144c-0.542-0.155-0.855,0.055-1.236,0.296
+                       c-0.108,0.07-0.146,0.08-0.127,0.248c0.117,1.071-0.385,1.546-1.443,1.355c-0.572-0.103-0.834,0.411-1.122,0.654
+                       c-0.264,0.222,0.271,0.472,0.57,0.637c0.211,0.117,0.628,0.225,0.42,0.592c-0.158,0.277-0.38-0.028-0.543-0.111
+                       c-0.284-0.145-0.711,0.102-0.883-0.325c-0.123,0.356-0.338,0.714-0.339,1.07c-0.002,0.311,0.363,0.281,0.606,0.211
+                       c0.954-0.283,1.903-0.579,2.851-0.881c0.077-0.023,0.148-0.195,0.186-0.182c1.332,0.422,2.285-0.623,3.44-0.871
+                       c0.411-0.087,0.879,0.18,1.244-0.33c-0.025,0.706-0.975,0.816-0.687,1.57c0.048,0.121-0.245,0.114-0.392,0.129
+                       c-1.022,0.119-1.142,0.301-0.797,1.27c-0.442,0.145-0.955-0.752-1.287-0.011c-0.241,0.538,0.673,0.294,0.717,0.791
+                       c-0.446,0.017-0.899-0.233-1.335,0.016c-0.129,0.072-0.417-0.072-0.33,0.271c0.062,0.25,0.17,0.395,0.457,0.292
+                       c0.199-0.07,0.468-0.368,0.557,0.083c0.065,0.328-0.138,0.456-0.47,0.553c-0.568,0.165-1.141,0.331-1.416,1.013
+                       c-0.167,0.411-0.95,0.357-1.068,0.296c-0.754-0.384-0.767,0.655-1.293,0.585c0.057,0.243,0.087,0.777,0.257,0.644
+                       c0.625-0.492,0.766,0.193,1.128,0.298c0.237,0.069,0.639-0.149,0.913-0.289c0.455-0.233,1.02,0.065,1.401-0.358
+                       c0.156,0.271,0.789-0.034,0.679,0.543c-0.1,0.53-1.166,1.34-1.737,1.301c-0.176-0.011-0.379-0.197-0.385,0.121
+                       c-0.013,0.695-0.622,0.625-1.239,0.847c1.554,0.488,2.779-0.778,4.16-0.26c0.143-0.292-0.399-0.333-0.31-0.621
+                       c0.121-0.188,0.247-0.098,0.391-0.021c0.445,0.239,0.821,0.481,1.083-0.295c0.126-0.376,0.847-0.006,1.197-0.436
+                       c-0.397,0.289,0.759,0.875-0.263,1.039c-0.187,0.028,0.281,0.268,0.222,0.529c-0.296,0.203-0.654-0.005-0.995,0.125
+                       c0.064,0.443,0.475,0.512,0.792,0.669c-0.191,0.388-0.51,0.545-0.842,0.585c-0.267,0.032-0.652-0.294-0.749,0.172
+                       c-0.079,0.381,0.514,0.112,0.617,0.525c-0.78-0.023-1.121,0.791-1.857,0.856c0.052,0.279,0.723,0.152,0.355,0.583
+                       c-0.283,0.33-0.797,0.6-1.138,0.441c-0.764-0.359-0.957-0.069-1.044,0.613c-0.027,0.211-0.101,0.511-0.451,0.222
+                       c-0.308-0.254-0.67-0.292-1.161-0.049c1.016,0.28,0.6,1.234,0.982,1.829c0.141,0.218,0.083,0.532,0.47,0.509
+                       c0.296-0.015,0.664,0.1,0.647-0.418c-0.013-0.366,0.303-0.271,0.491-0.388c0.47-0.288,1.047-0.28,1.469-0.698
+                       c-0.263,0.469-0.809,0.746-0.386,1.399c0.14,0.218-0.2,0.045-0.302,0.099c-0.313,0.161-0.65,0.171-1.124,0.159
+                       c0.426,0.773,1.278,0.038,1.665,0.626c-0.417,0.293-0.898,0.094-1.332,0.177c-0.106,0.021-0.276-0.033-0.243,0.161
+                       c0.021,0.11,0.13,0.3,0.245,0.206c0.406-0.322,0.746,0.245,1.186-0.126c-0.055,0.621-0.947,0.732-0.459,1.42
+                       c-0.867-0.728-1.115,0.932-1.985,0.21c0.362,1.107-0.355,1.771-1.824,1.898c0.208,0.529,0.684,0.684,1.109,0.881
+                       c0.199,0.093,0.468,0.125,0.381,0.416c-0.082,0.271-0.376,0.215-0.565,0.178c-0.613-0.121-1.136-0.522-1.83-0.463
+                       c-0.298,0.024-0.298,0.051-0.229,0.25c0.072,0.209,0.749,0.593-0.164,0.468c-0.058-0.008-0.075,0.212,0.063,0.284
+                       c0.212,0.11,0.427,0.214,0.576,0.29c0.13,0.524-0.739-0.203-0.429,0.481c0.149,0.327,0.312,0.636,0.743,0.531
+                       c0.21-0.049,0.278-0.398,0.627-0.217c0.421,0.215,0.508-0.37,0.83-0.449c0.505-0.12-0.151,0.742,0.453,0.539
+                       c0.145-0.049,0.323-0.036,0.435-0.119c0.569-0.418,1.229-0.636,1.88-0.868c0.01-0.401-0.483-0.214-0.563-0.467
+                       c0.236-0.358,1.218,0.443,0.899-0.657c-0.057-0.201,0.129-0.125,0.235-0.083c0.127,0.049,0.216,0.315,0.372,0.147
+                       c0.914-0.99,0.937,0.355,1.378,0.563c0.19,0.087-0.191,0.256-0.337,0.448c1.264,0.268,2.47,0.389,3.575-0.433
+                       c0.099-0.072,0.305-0.18,0.321-0.161c0.817,1.045,0.806-0.229,1.176-0.42c0.134-0.068,0.343-0.236,0.392-0.198
+                       c0.502,0.396,1.437-0.049,1.687,0.898c-0.263,0.084-0.513,0.163-0.779,0.247c0.239,0.225,0.434,0.411,0.77,0.729
+                       c-0.937-0.115-1.547,0.123-1.746,0.977c-0.04,0.163-0.239,0.334-0.329,0.249c-0.551-0.515-0.767,0.698-1.281,0.231
+                       c-0.074,0.904-0.618,0.182-0.952,0.277c-0.189,0.558,0.565,0.483,0.618,1.013c-0.556-0.628-0.453,0.635-0.968,0.215
+                       c-0.075,0.643,0.807,0.875,0.625,1.623c-0.157,0.649-0.248,1.206-1.088,1.111c0,0.067-0.025,0.144,0.004,0.179
+                       c0.212,0.256,0.874,0.009,0.773,0.437c-0.111,0.483-0.569-0.098-0.882,0.034c-0.183,0.078-0.527-0.123-0.577,0.131
+                       c-0.086,0.42,0.05,0.856,0.238,1.244c0.129,0.269,0.36,0.138,0.559,0.045c0.139-0.066,0.298-0.206,0.421-0.182
+                       c1.254,0.258,1.278-0.482,1.045-1.427c1.068,0.656,2.099,0.882,3.239,0.564c0.255-0.073,0.386-0.137,0.398-0.4
+                       c0.005-0.168,0.096-0.377,0.253-0.315c0.996,0.398,1.36-0.893,2.34-0.715c-0.893,0.14-0.512,1.219-1.268,1.492
+                       c-0.192,0.068-0.025,0.273,0.043,0.396c0.097,0.176,0.205,0.35-0.064,0.448c-1.051,0.376-1.974,1.428-3.253,0.621
+                       c-0.061-0.038-0.181,0.015-0.346,0.032c0.175,0.387,0.495,0.543,0.802,0.709c0.317,0.17,0.634,0.339,0.927,0.652
+                       c-1.086-0.708-2.114,0.392-3.285-0.144c0.296,0.555,0.838,0.589,1.003,0.991c-1.151,0.813-1.71-0.776-2.704-0.722
+                       c-0.045,0.468,0.747,0.27,0.55,0.841c-0.051,0.151,0.779,0.014,0.446,0.514c-0.272,0.406-0.463-0.287-0.865-0.175
+                       c0.271,0.41,0.311,0.902,0.718,1.261c-0.401,0.284-0.631-0.061-0.906-0.1c-0.457-0.065-0.898-0.308-1.35,0.151
+                       c-0.256,0.261-0.538,0.36-0.119,0.697c0.339,0.271,0.461,0.481-0.011,0.845c-0.213,0.164-0.615,0.583-0.348,1.11
+                       c0.184,0.36-0.388,0.297-0.377,0.316c0.353,0.593,0.031,0.746-0.485,0.786c0.066,0.822-0.455-0.045-0.685,0.217
+                       c-0.115,0.132-0.669-0.557-0.911-0.063c-0.241,0.492,0.261,0.742,0.822,0.947c-0.358,0.158-0.589,0.26-0.791,0.347
+                       c-0.087,0.171,0.031,0.225,0.099,0.233c0.681,0.072,1.419,0.279,1.701-0.676c0.033-0.106,0.152-0.187,0.231-0.279
+                       c0.567,0.706,0.969-0.199,1.472-0.185c0.088,0.397-0.376,0.384-0.419,0.653c0.113,0.155,0.384,0.013,0.476,0.278
+                       c-0.067,0.038-0.137,0.111-0.211,0.114c-0.286,0.014-0.591-0.191-0.838,0.165c-0.12,0.173-0.084,0.379,0.025,0.347
+                       c0.77-0.231,1.608,0.529,2.337-0.182c0.317-0.307,0.711-0.337,1.123-0.214c0.158,0.498-1.155,0.843-0.085,1.437
+                       c-0.376,0.061-0.641,0.253-1.024,0.065c-0.66-0.323-0.067,0.666-0.546,0.59c-0.357-0.058-0.712-0.135-1.068-0.204
+                       c0.396,0.704-0.387,0.422-0.553,0.658c-0.378,0.544,0.348,0.606,0.424,0.942c-0.468,0.248-0.904,0.459-1.401-0.226
+                       c-0.003,0.585,0.838,1.015,0.188,1.197c-0.563,0.153-1.058,1.323-1.841,0.29c-0.192-0.253-0.577-0.545-0.559,0.199
+                       c0.007,0.36-0.383-0.123-0.51,0.208c0.045,0.059,0.153,0.14,0.18,0.243c0.111,0.416,0.817,0.451,0.709,0.884
+                       c-0.137,0.543-0.663-0.068-0.95,0.168c-0.105,0.087-0.429,0.123-0.302,0.231c0.327,0.286-0.155,0.725,0.211,0.913
+                       c0.318,0.163,0.696,0.345,1.033,0.324c1.541-0.1,3.059-0.484,4.626-0.282c0.363,0.045,0.765-0.211,1.145-0.336
+                       c0.814-0.264,1.557-0.716,2.495-0.57c0.494,0.078,1.125-0.237,1.358-0.608c0.551-0.876,1.395-1.004,2.243-1.236
+                       c0.773-0.213,0.768-0.231,0.318-0.961c0.755,0.718,1.263-0.278,1.938-0.206c0.116,0.013,0.425-0.265,0.43-0.11
+                       c0.012,0.271,0.308,0.508,0.161,0.714c-0.145,0.208-0.166,0.315,0.044,0.429c0.249,0.137,0.654,0.137,0.482,0.602
+                       c-0.165,0.447-0.58,0.082-0.942,0.347c-0.069,0.101,0.659,0.585-0.029,0.557c-0.892-0.034-1.722,0.267-2.616,0.425
+                       c1.012,0.237,2.025,0.485,3.039,0.709c0.27,0.061,0.749-0.277,0.711,0.316c-0.034,0.523-0.479,0.549-0.897,0.514
+                       c-0.783-0.065-1.571,0.017-2.375-0.061c0.233,0.134,0.47,0.263,0.699,0.408c0.476,0.3,0.501,0.321,0.186,0.807
+                       c-0.155,0.241,0.534,0.357,0.047,0.553c-0.341,0.138-0.356-0.392-0.544-0.372c-1.035,0.102-1.701-1.301-2.907-0.684
+                       c0.647,0.635,1.29,1.239,1.258,2.262c-0.253-0.063-0.527-0.216-0.619-0.142c-0.644,0.526-1.226,0.711-1.841-0.05
+                       c-0.138-0.168-0.225,0.097-0.326,0.196c-0.21,0.21-0.13,0.448,0.018,0.581c0.426,0.379,0.777,0.949,1.471,0.826
+                       c0.593-0.105,0.897,0.341,1.299,0.609c0.098,0.064,0.231,0.135,0.109,0.282c-0.1,0.122-0.255,0.27-0.39,0.139
+                       c-0.378-0.364-0.963-0.18-1.289-0.606c-0.192,0.288,0.231,0.403,0.047,0.67c-0.769-0.495-1.791-0.193-2.522-0.903
+                       c-0.458,2.365,1.347,2.765,2.808,3.506c-0.489-0.109-0.821,0.134-1.211,0.335c-0.491,0.254-1.077,0.218-1.494-0.28
+                       c-0.18-0.214-0.398-0.565-0.645-0.262c-0.207,0.256,0.186,0.49,0.391,0.629c0.248,0.168,0.566,0.231,0.851,0.35
+                       c0.324,0.141,0.69,0.34,0.436,0.735c-0.131,0.205-0.379,0.68-0.823,0.271c-0.102-0.092-0.292-0.083-0.419-0.157
+                       c-0.21-0.122-0.444-0.383-0.637-0.08c-0.167,0.26,0.036,0.579,0.228,0.744c0.876,0.765,1.471,0.801,2.506,0.175
+                       c0.222-0.133,0.336,0.028,0.503,0.051c1.137,0.161,2.228,0.273,3.367-0.259c0.777-0.365,1.742-0.357,2.629-0.449
+                       c0.871-0.088,0.398,0.907,0.907,1.264c0.299,0.211-0.455,0.383-0.685,0.432c-0.701,0.14-0.743,0.549-0.593,1.124
+                       c-0.406-0.031-0.559-0.576-1.036-0.396c0.143,0.273,0.04,0.562,0.364,0.879c0.372,0.362-0.191,0.703-0.544,0.82
+                       c-0.657,0.218-1.331,0.074-1.935-0.218c-0.357-0.173-0.671-0.178-0.94,0.036c-0.397,0.314,0.2,0.454,0.176,0.623
+                       c-0.095,0.622,0.271,0.89,0.701,1.167c0.107,0.068,0.256,0.224,0.133,0.397c-0.108,0.148-0.269,0.078-0.425,0.078
+                       c-0.807-0.002-1.323-0.632-1.998-0.915c-0.732-0.306-0.719-0.336-0.774,0.471c-0.394-0.267-0.462-0.723-0.773-1.211
+                       c-0.1,1.007,0.356,1.623,1.115,2.285c-0.763-0.053-1.186-0.295-1.485-0.774c-0.28,0.352,0.163,0.623-0.146,0.903
+                       c-0.362-0.277-0.449-0.75-0.728-1.118c-0.278,0.422-0.569,0.642-0.745-0.051c-0.097-0.377-0.235-0.628-0.698-0.558
+                       c-0.273,0.041-0.367-0.142-0.335-0.419c0.076-0.633-0.683-0.497-0.855-0.908c-0.535,0.237-0.779,0.626-0.582,1.182
+                       c-0.141,0.104-0.207,0.064-0.277-0.008c-0.224-0.226-0.214-0.707-0.692-0.649c-0.135,0.017-0.231,0.124-0.209,0.265
+                       c0.064,0.377,0.372,0.562,0.657,0.746c0.151,0.097,0.362,0.105,0.439,0.309c-0.025,0.055-0.034,0.137-0.074,0.154
+                       c-1.232,0.547-1.45,0.581-1.538,0.182c-0.157-0.737-1.141-0.614-1.273-1.388c0.485,0.015,0.629,0.648,1.131,0.579
+                       c0.169-0.899-0.684-1.036-1.11-1.433c-0.182-0.167-0.302,0.271-0.314,0.517c-0.009,0.257,0.156,0.6-0.257,0.673
+                       c-0.404,0.075-0.518-0.258-0.643-0.545c-0.123-0.28-0.258-0.56-0.354-0.85c-0.084-0.253-0.258-0.388-0.488-0.334
+                       c-0.283,0.067-0.212,0.291-0.176,0.53c0.063,0.398,0.697,0.917,0.21,1.118c-0.43,0.178-0.338-0.653-0.576-0.923
+                       c-0.247-0.274-0.732-0.514-1.083-0.476c-0.787,0.085-1.479-0.15-2.199-0.387c0.548,0.65,0.984,1.448,2.059,1.156
+                       c0.222-0.061,0.442,0.071,0.459,0.429c0.018,0.456,0.068,0.454,0.553,0.201c-0.313,0.932-0.555,0.928-2.121-0.044
+                       c-0.023,0.478-0.019,0.473,0.364,0.811c0.15,0.134,0.444,0.247,0.247,0.505c-0.122,0.159-0.09,0.422-0.38,0.483
+                       c-0.584,0.123-1.205-0.112-1.77,0.191c-0.016,0.008-0.12-0.117-0.162-0.193c-0.559-0.97-0.728-1.008-1.431-0.317
+                       c-0.444-0.297,0.514-0.577,0.051-0.757c-0.442-0.171-0.279,0.454-0.521,0.628c-0.106,0.078-0.457-0.017-0.302,0.319
+                       c0.063,0.137,0.16,0.301-0.051,0.367c-0.066,0.023-0.176-0.163-0.283-0.189c-0.278-0.068-0.563-0.1-0.832-0.144
+                       c-0.14-0.349,0.597-0.328,0.275-0.653c-0.226-0.229-0.618-0.43-0.933-0.313c-0.394,0.146-0.021,0.602-0.195,0.979
+                       c-0.146-0.21-0.264-0.345-0.344-0.501c-0.062-0.122,0.073-0.317-0.151-0.397c-0.19,0.002-0.257,0.147-0.254,0.309
+                       c0.011,0.6-0.525,0.465-0.816,0.552c-0.383,0.118-0.261-0.301-0.376-0.486c-0.333-0.534-0.941-0.883-1.554-0.854
+                       c-0.458,0.021-0.289,0.564-0.096,0.761c0.519,0.53,0.884,1.101,1.128,1.82c0.132,0.397,0.685,0.532,1.208,0.355
+                       c0.408-0.137,0.828-0.192,1.294-0.192c0.962-0.002,0.526,1.178,1.262,1.216c-0.142,0.317-0.408,0.678-0.717,0.514
+                       c-0.735-0.383-1.498,0.095-2.285-0.271c-0.862-0.401-1.564,0.286-1.537,1.31c-0.466-0.32-0.801-0.805-1.445-0.717
+                       c-0.248,0.032-0.464-0.33-0.215-0.543c0.558-0.472,0.025-0.692-0.115-1.063c-0.349-0.93-1.454-0.905-1.922-1.654
+                       c-0.025-0.04-0.416,0.048-0.437,0.128c-0.193,0.755-0.557,0.138-0.84,0.123c0.038-0.484-0.98-0.666-0.416-1.233
+                       c0.263-0.267,0.021-0.278-0.044-0.369c-0.082-0.118-0.148-0.19-0.345-0.028c-0.755,0.612-1.646,0.425-2.171-0.38
+                       c-0.254-0.392-0.184-0.598,0.254-0.775c0.186-0.073,0.48-0.232,0.389-0.539c-0.038-0.125-0.203-0.271-0.336-0.302
+                       c-0.392-0.088-0.29,0.355-0.432,0.519c-0.216-0.473-0.418-0.914-0.618-1.355c-0.085,0.56-0.414,0.872-0.889,1.06
+                       c-0.666,0.262-0.334,0.868-0.343,1.263c-0.147,5.6-0.235,11.202-0.338,16.805c-0.002,0.093,0.028,0.186,0.043,0.279H1328.469z"/>
+       </g>
+       <g>
+               <path fill="#2A3524" d="M1346.23,330.782c-0.164-0.299,0.031-0.327,0.272-0.468c0.258-0.148,0.653-0.006,0.747-0.239
+                       c0.15-0.362,0.452-0.284,0.591-0.209c0.222,0.119-0.046,0.302-0.092,0.462c-0.066,0.236-0.002,0.476,0.229,0.507
+                       c0.318,0.042,0.302-0.183,0.244-0.437c-0.055-0.24,0.222-0.361,0.346-0.344c0.398,0.062,0.412,0.6,0.785,0.727
+                       c-0.197,0.366-0.143,0.91-0.551,1.104c-0.266,0.129-0.584-0.05-0.73-0.401c-0.113-0.274-0.203-0.562-0.51-0.057
+                       c-0.178,0.293-0.639,0.329-1.032,0.172C1346.119,331.434,1346.259,331.093,1346.23,330.782 M1350.029,302.085
+                       c-0.304,1.695-0.418,2.076-0.631,2.082c-0.938,0.034-1.875,0.028-2.71-0.716c0.918,0.3,1.079-0.662,1.648-0.97
+                       C1348.943,302.15,1349.637,302.9,1350.029,302.085 M1388.928,328.91c0.699-0.175,1.332,0.36,1.88-0.181
+                       c0.136-0.136,0.238,0.074,0.333,0.198c0.614,0.807,1.388,1.411,2.355,1.728c0.26,0.087,0.211,0.268,0.238,0.436
+                       c0.036,0.238-0.231,0.426-0.311,0.37c-0.674-0.467-1.662-0.247-2.188-0.957c-0.391-0.527-0.89-0.848-1.476-1.046
+                       C1389.47,329.358,1389.198,329.287,1388.928,328.91 M1394.622,327.472c-0.002-0.403,0.315-0.462,0.565-0.498
+                       c0.165-0.023,0.346,0.091,0.488-0.091c0.319-0.418,0.818,0.074,1.162-0.228c0.125,0.959,0.917,0.766,1.529,0.909
+                       c0.325,0.076,0.919,1.174,0.756,1.367c-0.287,0.34-0.633,0.049-0.824-0.087c-1.01-0.721-2.134-1.021-3.345-1.086
+                       C1394.767,327.748,1394.55,327.752,1394.622,327.472 M1353.206,289.637c-0.561,0.64-1.366,0.344-1.995,0.615
+                       c-0.15,0.065-0.346-0.117-0.286-0.264c0.142-0.348,0.072-0.587-0.229-0.78c0.229-0.338,0.021-0.8,0.57-1.103
+                       c1.124-0.619,1.687,0.801,2.797,0.329c-0.422,0.704-1.097,0.519-1.38,1.014C1352.851,289.508,1353.009,289.564,1353.206,289.637
+                        M1358.922,268.099c0.24,0.168,0.338-0.015,0.463-0.072c0.393-0.183,0.741-0.079,1.013,0.21c0.406,0.436-0.136,0.678-0.295,0.927
+                       c-0.18,0.285-0.495,0.004-0.737-0.121c-0.242-0.123-0.476-0.289-0.735-0.346c-0.462-0.1-0.632-0.323-0.482-0.779
+                       c0.057-0.176,0.072-0.354-0.031-0.523c0.258-0.13,0.403,0.244,0.655,0.149c0.063-0.539-0.39-0.377-0.63-0.49
+                       c-0.276-0.127-0.452-0.323-0.475-0.63c-0.022-0.284,0.199-0.341,0.405-0.43c0.665-0.284,1.321-0.588,1.512-1.395
+                       c0.006-0.025,0.1-0.027,0.174-0.044c0.082,0.464-0.452,0.897-0.303,1.208C1359.925,266.729,1359.434,267.41,1358.922,268.099
+                        M1394.489,279.543c-0.782-0.068-0.194,0.683-0.623,0.831c-0.501,0.172-0.61,0.499-0.575,0.983
+                       c0.008,0.114-0.234,0.299-0.395,0.354c-0.143,0.047-0.239-0.132-0.317-0.272c-0.117-0.21-0.121-0.678-0.525-0.408
+                       c-0.316,0.214,0.096,0.389,0.168,0.579c0.07,0.19,0.344,0.392,0.051,0.552c-0.242,0.132-0.705,0.321-0.813,0.1
+                       c-0.348-0.717-1.13-0.831-1.616-1.337c-0.195-0.201-0.355-0.407-0.257-0.647c0.166-0.411,0.403,0.016,0.609-0.001
+                       c0.247-0.021,0.418,0.301,0.704,0.145c-0.069-0.295-0.274-0.392-0.529-0.536c-0.472-0.266-1.079-0.477-0.436-1.317
+                       c0.398-0.521,0.943-0.61,1.374-0.961c0.701-0.574,1.329-0.305,1.754,0.469c0.047,0.087,0.043,0.25,0.217,0.214
+                       c0.875-0.176,1.238,0.736,1.981,0.878c-0.541,0.036-1.055-0.487-1.561,0.062C1393.887,279.483,1394.191,279.227,1394.489,279.543
+                        M1377.389,353.702c-0.013-4.759-0.032-9.518-0.026-14.278c0-0.636-0.082-1.295,1.052-1.101c0.376,0.065,0.998-0.456,1.652-0.312
+                       c0.185,0.04,0.335-0.088,0.539,0.157c0.35,0.423,0.763,0.667,0.958-0.187c0.053-0.229,0.138-0.632,0.457-0.628
+                       c0.397,0.004,0.101,0.43,0.241,0.592c0.173,0.202,0.408,0.92,0.61,0.006c0.578,0.633,0.548-0.18,0.793-0.336
+                       c0.213-0.052,0.025,0.838,0.52,0.203c0.229-0.294,0.531,0.157,0.855,0.112c0.21-0.03,0.593,0.184,0.656-0.053
+                       c0.228-0.868,0.687-0.164,0.829-0.07c0.301,0.202,0.649,0.548,0.042,0.914c-0.316,0.193-0.063,0.443,0.132,0.601
+                       c0.27,0.217,0.579,0.459,0.907,0.154c0.087-0.079-0.03-0.398,0.273-0.232c0.117,0.064,0.21,0.13,0.194,0.35
+                       c-0.034,0.535,0.053,0.843,0.832,0.787c0.679-0.047,1.537,0.586,1.512,1.264c-0.03,0.818,0.565,0.785,0.925,1.255
+                       c0.01-0.472,0.407-0.777-0.035-1.293c0.786,0.542,1.544,0.535,2.287,0.595c0.212,0.019,0.56,0.076,0.556-0.163
+                       c-0.002-0.249-0.224-0.528-0.413-0.736c-0.102-0.111-0.385-0.19-0.508-0.128c-0.83,0.418-1.261,0.069-1.514-0.716
+                       c-0.066-0.202-0.181-0.507-0.408-0.416c-0.533,0.213-0.559-0.182-0.693-0.478c0.315-0.134,0.598-0.359,0.986-0.206
+                       c0.287,0.113,0.592,0.375,0.714-0.274c0.072-0.383-0.176-0.318-0.277-0.389c-0.176-0.127-0.519,0.083-0.626-0.316
+                       c0.3-0.27,0.777,0.172,1.074-0.242c0.098-0.14,0.253,0.044,0.289,0.219c0.136,0.676,0.661,0.947,1.207,1.248
+                       c0.471,0.259,0.818,1.018,1.356,0.043c0.107-0.193,0.563,0.091,0.712,0.27c0.297,0.356,0.707,0.273,1.057,0.403
+                       c0.258,0.096,0.51-0.061,0.61-0.309c0.098-0.242-0.168-0.315-0.316-0.37c-0.217-0.079-0.293-0.106-0.156-0.363
+                       c0.168-0.319,0.287-0.095,0.402-0.006c0.223,0.176,0.423,0.382,0.884,0.269c-0.377-0.837-1.385-0.763-1.843-1.471
+                       c0.605-0.06,1.187,0.331,1.798,0.223c0.045-0.008,0.127,0.102,0.154,0.087c1.047-0.556,1.201,0.389,1.488,0.953
+                       c0.541-0.05,0.08-0.94,0.741-0.732c0.486,0.153,0.605,0.555,0.522,1.052c-0.04,0.245,0.034,0.589,0.374,0.491
+                       c0.401-0.116-0.143-0.369-0.014-0.48c0.234-0.202-0.046-0.715,0.146-0.63c0.587,0.261,0.938-0.733,1.499-0.203
+                       c0.114,0.107,0.049,0.286-0.457,0.749c1.393-0.627,1.697,0.87,2.746,0.805c0.044-0.274-0.601-0.588-0.105-0.878
+                       c0.336-0.194,0.718-0.1,1.024,0.136c0.372,0.286,0.726,0.599,1.244,0.499c0.037-0.214-0.105-0.295-0.22-0.391
+                       c-0.342-0.28-0.367-0.822-0.274-1.031c0.179-0.4,0.571-0.027,0.879,0.062c0.542,0.155,1.081,0.217,1.52-0.32
+                       c-0.308-0.334-0.687-0.391-1.095-0.368c-0.241,0.013-0.355-0.118-0.295-0.346c0.079-0.301,0.217-0.047,0.326-0.015
+                       c0.899,0.276,1.555-0.363,2.309-0.627c0.206-0.072,0.128-0.261,0-0.368c-0.201-0.169-0.114-0.635-0.582-0.538
+                       c-0.544,0.113-1.121,0.117-1.639,0.295c-0.691,0.236-1.375,0.255-2.064,0.125c-0.219-0.042-0.334-0.002-0.493,0.1
+                       c-0.692,0.447-1.098-0.188-1.597-0.451c-0.053-0.029-0.058-0.248-0.013-0.342c0.093-0.183,0.255-0.108,0.401-0.042
+                       c0.284,0.129,0.636,0.31,0.799-0.087c0.187-0.458-0.268-0.417-0.525-0.547c-0.339-0.17-0.524-0.498-0.651-0.864
+                       c0.35-0.148,0.454,0.156,0.603,0.311c0.424,0.44,0.854,0.475,1.333,0.11c0.145-0.11,0.285-0.291,0.444-0.31
+                       c0.661-0.082,1.323,0.161,1.805-0.733c0.221-0.412,0.703-0.579,0.119-1.211c1.113,0.378,1.928,0.847,2.483,1.697
+                       c0.049,0.076,0.261,0.221,0.24,0.074c-0.073-0.523,0.638-0.21,0.492-0.368c-0.376-0.412,0.111-1.113-0.616-1.411
+                       c-0.597-0.243-0.668-0.87-0.578-1.47c0.387-0.093,0.328,0.289,0.477,0.353c0.39,0.168,0.789,0.875,1.235-0.03
+                       c0.13-0.261,0.618-0.438,0.984-0.598c0.199-0.087,1.104,0.471,0.616-0.5c-0.002-0.006,0.161-0.136,0.201-0.116
+                       c0.739,0.384,0.691-0.566,1.145-0.686c0.157-0.044,0.034-0.277-0.054-0.404c-0.114-0.163-0.25-0.138-0.396-0.031
+                       c-0.27,0.203-0.542,0.414-0.934,0.327c0.195-0.266,0.072-0.677,0.454-0.83c-0.72-0.325-1.377-0.227-2.092,0.047
+                       c-1.123,0.432-2.356,0.179-3.525,0.435c-0.588,0.129-0.915-0.136-1.032-0.857c-0.077-0.469-0.641-0.893-1.327-0.887
+                       c0.386-0.136,0.772-0.272,1.158-0.409c-0.16-0.47-0.685-0.574-0.946-0.954c-0.145-0.211-0.336-0.311-0.049-0.589
+                       c0.253-0.245,0.299-0.293,0.628-0.03c0.381,0.307,0.959,0.365,1.5,0.448c-0.225-0.474-0.937-0.561-0.739-1.288
+                       c0.906,0.132,1.612,1.353,2.708,0.608c-0.871-0.872,0.272-1.223,0.609-1.373c0.801-0.358,1.334-1.012,2.03-1.464
+                       c0.165-0.106,0.246-0.186,0.123-0.352c-0.21-0.285-0.552-0.588-0.843-0.411c-0.989,0.606-2.232,0.555-3.168,1.349
+                       c-0.291,0.247-1.104,0.767-1.34-0.353c-0.093-0.443-0.667-0.172-1.005-0.234c-0.414-0.078-0.216,0.25-0.165,0.488
+                       c0.027,0.131-0.181,0.447-0.263,0.44c-0.774-0.068-1.481,0.261-2.224,0.47c-0.049-0.459,0.288-0.57,0.418-0.799
+                       c0.245-0.432,0.151-0.615-0.244-0.779c-0.715-0.301-1.406-0.72-2.151-0.864c-0.415-0.079-0.943-0.414-1.487,0.286
+                       c-0.403,0.519-1.533,0.449-2.215,0.117c-0.981-0.477-1.675-0.85-3.068-1.044c-0.189-0.026-0.468-0.083-0.332-0.301
+                       c0.368-0.594,0.364-1.406,0.793-1.846c0.263-0.27,0.852-0.413,1.276-0.697c0.232-0.153,0.429,0.257,0.582,0.481
+                       c0.288,0.42,0.533,0.884,1.125,1.026c0-0.64-0.891-0.634-0.818-1.338c0.243-0.101,0.457,0.146,0.657,0.175
+                       c0.217-0.294-0.165-0.37-0.127-0.576c0.259,0.214,0.492-0.115,0.779-0.017c0.569,0.193,1.586,0.678,2.136,1.128
+                       c0.268-0.449-0.452-0.668-0.191-1.176c0.576,0.268,0.979,0.864,1.71,1.042c-0.209-0.978-1.372-1.217-1.566-2.165
+                       c0.5-0.154,0.402,0.509,0.804,0.528c0.118-1.13,0.898-0.03,1.286-0.372c0.108,0.919,1.14,0.211,1.359,0.881
+                       c0.399-0.295,0.175-0.635,0.227-0.921c0.075-0.43,0.256-0.597,0.67-0.376c0.091,0.047,0.241,0.329,0.231,0.159
+                       c-0.025-0.363,0.641-0.322,0.36-0.625c-0.411-0.44-0.138-1.255-0.877-1.497c-0.138-0.045-0.329-0.227-0.25-0.443
+                       c0.034-0.093,0.172-0.193,0.27-0.204c0.216-0.021,0.31,0.132,0.384,0.33c0.094,0.254,0.221,0.504,0.372,0.729
+                       c0.116,0.172,0.002,0.772,0.584,0.276c0.151-0.13,0.926,0.428,1.227,0.893c0.315-0.093-0.274-0.783,0.45-0.625
+                       c0.1,0.021-0.023-0.372-0.063-0.38c-0.813-0.155-0.017-0.418-0.029-0.628c0.145,0.263,0.288,0.526,0.474,0.865
+                       c0.167-0.504,0.4-0.733,0.863-0.435c0.282,0.183,0.629-0.065,0.552-0.232c-0.323-0.692,0.378-0.715,0.584-1.05
+                       c0.127-0.205,0.595-0.075,0.482-0.445c-0.085-0.276-0.38-0.361-0.675-0.428c-0.238-0.053-0.735,0.046-0.456-0.57
+                       c0.08-0.176-0.256-0.502,0.254-0.238c0.468,0.24,0.452-0.543,0.9-0.357c-0.161-0.415-0.524-0.274-0.806-0.423
+                       c0.372-0.54,1.369-0.132,1.348-1.044c-0.835-0.202-1.467,1.024-2.431,0.468c0.255-0.057,0.153-0.583,0.537-0.456
+                       c0.637,0.207,0.197-0.595,0.586-0.589c-0.176-0.414-0.467,0.138-0.68-0.106c-0.051-0.274,0.154-0.589-0.021-0.863
+                       c-0.541-0.1,0.112,1.329-0.917,0.608c-0.091,0.568,0.397,1.059,0.089,1.6c-0.13,0.229,0.142,0.941-0.528,0.345
+                       c-0.092-0.083-0.253,0.041-0.217,0.191c0.235,0.981-0.41,0.545-0.776,0.467c-0.65-0.136-1.22-0.624-1.951-0.486
+                       c0.042,0.344,0.32,0.435,0.535,0.458c0.356,0.034,0.525,0.147,0.448,0.513c-0.068,0.319-0.31,0.53-0.593,0.468
+                       c-0.609-0.134-1.008,0.081-1.422,0.515c-0.506,0.53-1.181,0.31-2.037-0.592c0.352-0.155,0.691-0.305,1.051-0.465
+                       c-0.69-0.611-1.475,0.064-2.21-0.254c0.543-0.841,1.331-1.301,2.289-1.647c-0.811-0.181-1.703-0.227-1.306-1.408
+                       c0.431-0.031,0.609,0.359,0.877,0.594c0.287,0.253,0.837,0.485,0.934,0.301c0.346-0.647,1.15-0.614,1.529-1.15
+                       c-0.205-0.358-0.643-0.051-0.87-0.442c0.288-0.068,0.775-0.009,0.628-0.496c-0.121-0.389-0.505-0.223-0.726-0.151
+                       c-0.422,0.136-0.851-0.18-1.27,0.095c-0.159,0.103-0.352-0.074-0.383-0.282c-0.059-0.378,0.823-1.122,1.216-1.037
+                       c0.272,0.059,0.597,0.038,0.809,0.185c0.615,0.428,0.722,0.015,0.807-0.494c0.21,0.244,0.301,0.636,0.649,0.492
+                       c0.306-0.128,0.03-0.418,0.043-0.635c0.015-0.248,1.159-0.969,1.373-0.831c0.372,0.241,0.742,0.17,1.292,0.103
+                       c-0.576-0.466-1.003-0.855-1.724-0.732c0.788-1.002,1.486-0.196,2.255,0.044c-0.157-0.536-0.692-0.432-0.89-0.846
+                       c0.739-0.151,1.271-0.685,2.176-1.014c-1.24-0.116-2.119,0.142-2.858,0.819c-0.229-0.212-0.11-0.411,0.083-0.666
+                       c-0.526,0.021-0.686,0.389-0.915,0.619c-0.138,0.14,0.096,0.589-0.315,0.542c-0.511-0.061,0.143-0.557-0.229-0.709
+                       c-0.885,0.42-1.792,0.35-2.707,0.12c0.571-0.235,1.091-0.653,1.737-0.4c0.07,0.028,0.248-0.024,0.248-0.045
+                       c0.028-0.771,0.791-1.017,1.108-1.579c0.028-0.049,0.052-0.1,0.079-0.151c-1.24-0.547,0.134-0.946,0.032-1.505
+                       c-0.781,0.375-1.346-0.274-2.027-0.551c1.159-1.142-0.657-0.743-0.752-1.436c0.807,0.2,1.566,0.44,2.367,0.136
+                       c-0.034-0.179-0.259-0.206-0.424-0.304c-0.262-0.155-0.665-0.316-0.576-0.634c0.061-0.21,0.444-0.382,0.803-0.188
+                       c0.115,0.063,0.338-0.075,0.575-0.136c-0.312-0.215-0.773-0.232-0.777-0.503c-0.006-0.376,0.408-0.375,0.726-0.41
+                       c0.376-0.039,0.162-0.278,0.187-0.486c0.049-0.407-0.086-0.272-0.331-0.265c-0.921,0.026-1.805,0.068-2.045,1.225
+                       c-0.331-0.11-0.41,0.389-0.739,0.298c-0.427-0.117-0.042-0.33-0.068-0.495c-0.022-0.136-0.11-0.252-0.249-0.222
+                       c-0.265,0.059-0.374,0.443-0.717,0.36c0.085,0.151,0.172,0.304,0.343,0.603c-0.498-0.309-0.902-0.275-1.328-0.255
+                       c-0.816,0.044-1.538-0.549-2.42-0.353c-0.393,0.087-0.261-0.412-0.235-0.655c0.036-0.318,0.288-0.146,0.433-0.106
+                       c0.552,0.149,1.174-0.338,0.96-0.897c-0.452-1.178,0.666-0.921,1.074-1.225c0.374-0.276,0.952-0.276,1.487-0.409
+                       c-0.236-0.403-0.567-0.413-0.848-0.51c-0.475-0.16,0.016-0.441-0.082-0.666c-0.08-0.179,0.046-0.219,0.261-0.208
+                       c1.06,0.057,2.094,0.014,2.415-1.323c-0.419,0.021-0.911,0.322-1.478,0.033c0.288-0.358,0.938-0.35,0.951-0.952
+                       c-0.56-0.327-0.951,0.105-1.427,0.279c-1.117,0.414-2.264,0.748-3.41,1.073c-0.453,0.13-0.935,0.489-1.405,0.015
+                       c-0.401,0.589-1.123,0.367-1.654,0.65c-0.201,0.107-0.847,0.857-0.656-0.256c0.005-0.028-0.072-0.1-0.117-0.106
+                       c-1.082-0.118-0.352-0.526-0.109-0.838c-0.054-0.028-0.084-0.058-0.11-0.055c-0.528,0.076-1.074,0.153-1.445-0.342
+                       c-0.186-0.249,0.41-0.463,0.917-0.272c0.168,0.065,0.295,0.24,0.463,0.308c0.431,0.17,0.747-0.06,0.58-0.458
+                       c-0.168-0.401,0.14-0.244,0.242-0.265c0.511-0.102,1.013-0.21,1.397-0.619c-0.128-0.195-0.375-0.019-0.482-0.123
+                       c-0.289-0.275-0.839,0.252-0.932-0.225c-0.094-0.482,0.488-0.698,0.802-0.876c0.387-0.221,0.644-0.279,0.319-0.758
+                       c-0.068-0.103,0.012-0.448,0.117-0.504c0.709-0.387,0.781-1.34,1.552-1.703c-0.316-0.191-0.522,0.138-0.754,0.122
+                       c-0.448-0.031-0.804-0.341-0.838-0.75c-0.026-0.35,0.443-0.316,0.709-0.398c0.199-0.06,0.501,0.053,0.628-0.058
+                       c0.294-0.257-0.3-0.369-0.195-0.427c0.181-0.096,0.034-0.919,0.577-0.304c0.047,0.053,0.366,0.212,0.432-0.113
+                       c0.04-0.196,0.043-0.378-0.238-0.392c-0.139-0.006-0.325,0.053-0.357-0.253c0.248-0.126,0.588-0.074,0.824-0.318
+                       c0.225-0.233,0.531-0.388,0.998-0.713c-0.593,0.126-0.974,0.226-1.359,0.283c-0.334,0.051-0.516,0.566-0.945,0.306
+                       c0.297-0.372-0.412-0.437-0.23-0.864c0.241-0.575,0.737-0.071,1.032-0.352c-0.21-0.474-0.705-0.249-1.065-0.457
+                       c0.558-0.502,1.486-0.353,1.836-1.209c-0.768,0.232-1.467,0.558-2.244,0.579c-0.329,0.007-0.571,0.262-0.762,0.494
+                       c-0.706,0.855-1.262,0.776-1.742-0.277c0.026-0.018,0.051-0.038,0.079-0.054c0.359-0.193,1.008,0.36,1.051-0.083
+                       c0.051-0.524-0.703-0.357-1.187-0.57c0.616-0.388,0.932-1.203,1.888-0.834c-0.138-0.989-1.196-1.103-1.597-1.855
+                       c0.701-0.155,1.178,0.044,1.467,0.792c0.308-0.735-0.372-0.978-0.41-1.446c0.979-0.295,1.206,0.432,1.396,1.206
+                       c0.358-0.201,0.015-1.086,0.768-0.682c0.019,0.011,0.208-0.213,0.253-0.349c0.07-0.208-0.117-0.251-0.267-0.291
+                       c-0.232-0.061-0.476-0.184-0.703-0.159c-0.756,0.079-0.928-0.246-0.701-1.035c0.458,0.623,1.129,0.623,1.752,0.969
+                       c-0.017-0.792-0.758-0.601-1.079-1.007c0.79-0.069,1.365,0.27,2.083,0.833c-0.308-0.655-0.102-0.973,0.389-1.064
+                       c-0.174-0.36-0.55-0.245-0.65-0.624c0.516,0.351,0.811-0.227,1.257-0.219c0.074,0.001,0.338,0.149,0.217-0.172
+                       c-0.24-0.646,0.004-0.644,0.494-0.378c0.145,0.077,0.402,0.059,0.496-0.117c0.124-0.231-0.124-0.216-0.251-0.267
+                       c-0.189-0.074-0.126-0.248-0.028-0.267c0.52-0.096,0.304-0.595,0.669-0.976c-0.469,0.061-0.756-0.011-0.992,0.307
+                       c-0.097,0.13-0.346,0.258-0.48,0.222c-0.293-0.081,0.196-0.381-0.144-0.554c-0.472,0.523-0.994,1.057-1.788,1.023
+                       c-0.287-0.011-0.271,0.057-0.267,0.289c0.005,0.148-0.16,0.417-0.268,0.428c-0.726,0.067-1.302,0.555-2.001,0.676
+                       c-0.197,0.034-0.437-0.015-0.475-0.208c-0.076-0.391,0.535-0.238,0.552-0.734c-1.453,0.87-3.275,0.6-4.496,1.92
+                       c-0.219-0.434-0.057-0.771,0.017-1.142c-0.327-0.151-0.259,0.409-0.612,0.278c0.047-0.297-0.27-0.748,0.031-0.952
+                       c0.218-0.146,0.71-0.053,0.985,0.291c0.176,0.221,0.418,0.257,0.648,0.028c0.237-0.236-0.003-0.357-0.09-0.547
+                       c-0.13-0.278-0.382-0.725,0.308-0.592c0.197,0.038,0.352,0.024,0.266-0.182c-0.243-0.598,0.263-0.401,0.477-0.583
+                       c0.402-0.344,0.667-0.857,1.253-1.02c-1.24,0.055-2.393,0.428-3.557,0.735c-0.391,0.102-0.556,0.036-0.412-0.376
+                       c0.122-0.361-0.087-0.65-0.212-1.05c0.501,0.162,0.677,0.608,1.1,0.861c0.233-0.616,0.938-0.55,1.38-0.998
+                       c0.463-0.467,0.514-1.172,1.083-1.53c-0.24-0.399-0.584,0.043-0.828-0.099c-0.232-0.134-0.422-0.34-0.633-0.519
+                       c-0.342,0.172,0.072,0.886-0.206,0.695c-0.523-0.359-1.533,0.072-1.662-1.018c0.896,0.589,1.906-0.685,2.756,0.383
+                       c-0.621-0.544-0.414-1.268-0.707-1.976c0.622,0.342,1.189,0.062,1.803,0.295c0.375,0.14,1.314,0.289,1.624-0.272
+                       c0.382-0.69,1.179,0.202,1.41-0.563c-0.174-0.454-0.731-0.468-1.081-0.76c0.21-0.205,0.383-0.381,0.612-0.279
+                       c0.459,0.208,0.862,0.125,1.247-0.157c0.097-0.069,0.394-0.134,0.256-0.203c-0.205-0.104-0.097-0.525-0.492-0.406
+                       c-0.412,0.125-0.852,0.153-1.294,0.227c0.251-1.056,0.251-1.056,0.911-0.984c-0.052-0.551-0.662-0.488-0.925-0.827
+                       c0.643-0.17,0.643-0.17,1.688,0.445c-0.012-0.468-0.304-0.808-0.546-1.44c0.578,0.61,1.135,0.579,1.793,0.606
+                       c-0.3-0.614-0.916-0.474-1.264-0.774c0.508-0.31,1.584-0.561,2.45-0.572c-0.065-0.318-0.426-0.204-0.605-0.424
+                       c0.363-0.229,0.85-0.155,1.069-0.034c0.524,0.289,0.272-0.397,0.613-0.391c0.172,0.003-0.012-0.254-0.225-0.246
+                       c-0.01-0.737-0.58-0.221-0.858-0.373c-0.159-0.087-0.507,0.237-0.515-0.237c-0.002-0.169-0.224-0.205-0.226-0.139
+                       c-0.032,0.693-1.051,0.57-1.036,1.312c0.01,0.409-0.331,0.547-0.773,0.608c-0.017-0.467,0.998-1.069-0.14-1.351
+                       c0.002-0.331,0.42-0.303,0.532-0.539c-0.09-0.064-0.134-0.126-0.178-0.124c-0.586,0.007-1.07,0.266-1.788,0.057
+                       c-0.83-0.244-1.975,0.009-2.852,0.618c-0.427,0.295-0.961,0.722-1.009-0.319c-0.01-0.223-0.412-0.196-0.362-0.5
+                       c0.511-0.274,0.727,0.113,0.936,0.54c0.187-0.602,1.166-1.088,1.641-0.897c0.472,0.189,0.472,0.189,1.171-0.152
+                       c-0.511-0.327-1.188-0.139-1.612-0.588c0.55-0.685,0.968-0.117,1.383,0.166c0.282-0.31-0.357-0.417-0.088-0.634
+                       c0.109-0.089,0.382-0.074,0.531-0.003c0.297,0.141,0.625,0.345,0.775-0.074c0.14-0.395-0.389-0.274-0.541-0.483
+                       c-0.045-0.064-0.138-0.093-0.317-0.204c0.844-0.25,1.676-0.396,2.019-1.295c-1.029,0.129-2.138,0.077-2.527,1.464
+                       c-0.291-0.289-0.125-0.597-0.263-0.857c-0.068,0.025-0.183,0.033-0.204,0.082c-0.301,0.691-1.106,0.902-1.455,1.55
+                       c-0.133,0.247-0.286,0.034-0.45-0.002c-0.743-0.161-1.491-0.346-2.072,0.443c-0.138,0.185-0.395,0.157-0.391-0.287
+                       c0.004-0.551-0.352-0.714-0.644-0.319c-0.279,0.37-0.683,0.742-0.959,0.9c-0.628,0.361-1.582,0.695-2.175,0.458
+                       c-1.259-0.499-1.198-0.651-1.937-0.654c0.37-0.308,0.665-0.533,0.748-1.009c0.053-0.301,0.635-0.098,1.013,0.126
+                       c-0.102-0.628-0.559-0.843-0.857-1.182c-0.138-0.155-0.216-0.337-0.063-0.5c0.191-0.203,0.313,0.02,0.455,0.124
+                       c0.671,0.495,1.51,0.146,1.677-0.696c0.109-0.555,0.563-0.303,0.777-0.241c0.517,0.152,0.812-0.084,1.174-0.373
+                       c0.464-0.373,0.235-0.595-0.194-0.894c0.908-0.149,1.644-0.443,2.196-1.093c-0.663-0.074-1.311-0.325-1.833,0.447
+                       c-0.289,0.427-0.614,0.121-0.613-0.576c-0.496,0.854-0.846,1.456-1.679,1.431c-0.182-0.006-0.15,0.235-0.207,0.367
+                       c-0.079,0.185-0.306,0.24-0.351,0.098c-0.138-0.426-0.309-0.903-0.325-1.296c-0.023-0.48,0.173-1.118,0.739-1.396
+                       c0.136-0.065,0.359,0.086,0.598-0.1c-0.549-0.379-0.984-0.847-1.283-1.418c0.042-0.045,0.059-0.079,0.082-0.082
+                       c1.453-0.199,1.623-0.223,1.455-1.358c-0.106-0.732,0.299-0.866,0.689-1.185c-0.693-0.36-1.507,0.237-2.098-0.509
+                       c0.98-0.393,0.194-1.046,0.245-1.622c-0.411,0.676-1.127,1.063-1.474,1.777c-0.129,0.265-0.348,0.657-0.796,0.24
+                       c-0.238-0.22-0.437-0.146-0.406,0.255c0.032,0.417-0.406,0.293-0.607,0.451c-0.027,0.019-0.212-0.108-0.268-0.2
+                       c-0.172-0.28,0.109-0.356,0.241-0.514c0.341-0.399,0.938-0.764,0.167-1.34c-0.189-0.141-0.18-0.411,0.138-0.596
+                       c0.255-0.147,0.408-0.23,0.612,0.034c0.125,0.163,0.142,0.434,0.46,0.453c0.327-0.502-0.483-0.619-0.358-1.107
+                       c0.337-0.06,0.412,0.409,0.706,0.406c0.163-0.141-0.197-0.769,0.545-0.423c0.72,0.334,0.913,0.087,0.813-0.623
+                       c-0.03-0.211,0.191-0.355,0.233-0.33c0.714,0.422,0.268-0.544,0.629-0.521c-0.074-0.451-0.508-0.216-0.746-0.376
+                       c-0.117-0.079-0.4,0.236-0.534-0.107c0.443-0.082,0.131-0.883,0.632-0.773c0.595,0.132,0.875-0.714,1.47-0.373
+                       c-0.006-0.435,0.136-0.811,0.488-1.152c-0.484,0.199-0.917,0.457-1.327-0.039c-0.081-0.097-0.269-0.091-0.331,0.024
+                       c-0.374,0.676-0.965,0.931-1.7,1.01c-0.109,0.014-0.172,0.414-0.256,0.635c-0.858-0.511-1.274,0.698-2.051,0.532
+                       c-0.173-0.036-0.323,0.185-0.551-0.078c-0.18-0.204-0.605,0.178-0.496,0.472c0.085,0.232-0.003,0.382-0.183,0.46
+                       c-0.308,0.136-0.194-0.198-0.291-0.3c-0.285-0.306-0.558-0.625-0.835-0.937c-0.199,0.14-0.103,0.266-0.002,0.384
+                       c0.168,0.198,0.362,0.443,0.13,0.651c-0.217,0.191-0.369-0.111-0.527-0.236c-0.227-0.178-0.471-0.464-0.531,0.115
+                       c-0.015,0.142-0.031,0.28-0.153,0.04c-0.288-0.559-0.677-0.059-0.817,0.047c-0.594,0.449-0.826,0.396-1.153-0.449
+                       c0.7,0.365,1.134-0.542,1.92-0.204c-0.186-0.38-0.961-0.697-0.016-0.839c0.453-0.069,0.873-0.358,1.306-0.554
+                       c0.056-0.025,0.1-0.076,0.149-0.113c0.824,1.144,1.198-0.603,1.918-0.127c-0.072-0.551-0.451-0.312-0.616-0.5
+                       c0.157-0.268,0.463-0.351,0.694-0.287c0.865,0.245,1.035-0.174,0.869-1.014c0.463,0.228,0.853,0.488,0.87-0.284
+                       c0.005-0.269,0.504-0.3,0.82-0.221c0.232,0.059,0.423,0.272,0.795,0.16c-0.678-0.334-0.404-0.734-0.181-1.159
+                       c0.359-0.689,0.669,0.246,1.032-0.04c-0.325-0.656,0.3-0.778,0.932-1.15c-1.206,0.06-2.034,0.396-2.881,0.901
+                       c-0.247-0.136-0.007-0.481-0.123-0.789c-0.223,0.105-0.537,0.153-0.608,0.311c-0.11,0.245,0.14,0.727-0.274,0.75
+                       c-0.221,0.011-0.594-0.366-0.671-0.634c-0.119-0.404,0.34-0.517,0.61-0.706c0.031-0.021,0.013-0.108,0.031-0.301
+                       c-0.681,0.547-1.709,0.346-2.036,1.337c-0.238-0.208-0.539,0.013-0.781-0.108c-0.185-0.094-0.264-0.261-0.158-0.472
+                       c0.105-0.21,0.219-0.353,0.506-0.239c0.234,0.092,0.486,0.01,0.715-0.109c-0.014-0.458-0.734,0.127-0.662-0.466
+                       c0.051-0.431,0.235-0.652,0.692-0.55c-0.051-0.733,0.4-0.653,0.886-0.582c0.129,0.019,0.191-0.236,0.129-0.287
+                       c-0.669-0.543,0.068-0.846,0.325-1.387c-0.567,0.242-0.955,0.662-1.465,0.332c-0.117-0.073-0.282,0.027-0.249,0.167
+                       c0.181,0.83-0.803,0.655-0.981,1.165c-0.161-0.07-0.547,0.378-0.486-0.24c0.027-0.276-0.242-0.218-0.412-0.123
+                       c-0.304,0.172-0.616,0.327-0.974,0.257c-0.245-0.049-0.655,0.18-0.703-0.214c-0.037-0.329,0.316-0.405,0.615-0.426
+                       c0.07-0.004,0.136-0.077,0.189-0.109c-0.04-0.425-0.511-0.363-0.647-0.691c0.59-0.415,1.114,0.477,1.712,0.032
+                       c0.052-0.27-0.428-0.287-0.389-0.636c0.53-0.081,0.747,0.908,1.386,0.443c-0.011-0.452-0.588-0.132-0.677-0.509
+                       c0.901-0.238,1.427-1.664,2.752-0.672c-0.104-0.695,0.066-1.139,0.692-1.223c-0.25-0.468-0.977,0.539-1.025-0.43
+                       c-0.003-0.066-0.213,0.046-0.281,0.14c-0.463,0.632-1.423,0.649-1.76,1.434c-0.259-0.193-0.551,0.587-0.867-0.085
+                       c-0.157-0.33-0.586-0.129-0.849,0.195c-0.17,0.206-0.385,0.699-0.69,0.392c-0.3-0.304-0.476-0.808-0.542-1.249
+                       c-0.051-0.351,0.338-0.314,0.626-0.331c0.538-0.032,0.585-0.524,0.746-1.108c0.176-0.644,0.42-1.397,1.155-1.796
+                       c-0.862-0.253-1.571,0.496-2.402,0.125c-0.371-0.165-0.515,0.881-1.112,0.37c-0.438,0.634-0.958,0.846-1.622,0.312
+                       c-0.058,0.132-0.117,0.263-0.186,0.421c-0.297-0.519-0.244-1.071,0.115-1.397c0.625-0.566,0.431-0.795-0.22-1.01
+                       c-0.065-0.021-0.098-0.148-0.172-0.266c0.272-0.117,0.573,0.319,0.613,0.133c0.281-1.346,1.255-0.521,2.052-0.575
+                       c-0.357-0.434-0.91-0.208-1.099-0.663c0.685-0.197,1.612,0.166,1.971-0.829c-0.138-0.225-0.828,0.408-0.624-0.374
+                       c-0.316-0.063-0.418,0.282-0.686,0.361c-0.305,0.087-0.582,0.731-0.879,0.274c-0.263-0.403,0.488-0.298,0.65-0.632
+                       c-0.306-0.131-0.601-0.255-1.073-0.455c0.665-0.096,1.138,0.322,1.616-0.023c-0.28-0.452-0.857-0.012-1.261-0.526
+                       c0.707-0.068,1.009-0.844,1.784-0.713c0.089,0.014,0.202-0.117,0.303-0.182c-0.807-0.651,0.305-0.797,0.331-1.552
+                       c-0.608,1.018-1.864,0.797-2.174,1.911c-0.091,0.325-0.469,0.252-0.72,0.35c0.036-0.472-0.63-0.249-0.697-0.791
+                       c-0.069-0.53,0.228-0.454,0.437-0.676c0.672-0.709,1.523-1.099,2.341-1.622c-0.741,0.314-1.512,0.155-2.255,0.274
+                       c-0.344,0.055-0.573-0.158-0.852-0.247c-0.055-0.017-0.078-0.142-0.116-0.216c0.786,0.055,0.212-0.654,0.524-0.942
+                       c0.539-0.496-0.14-0.434-0.378-0.56c0.65-0.504,0.854-1.389,1.672-1.735c-0.722-0.207-1.3,1.364-2.014,0.034
+                       c-0.412-0.772,0.665-0.667,0.68-1.261c-0.554,0.036-0.756,0.506-1.057,0.795c-0.266,0.253-0.569,0.405-0.75,0.075
+                       c-0.136-0.242-0.582-0.617-0.068-0.944c0.125-0.077,0.206-0.138,0.157-0.27c-0.216-0.578-0.219-0.576,0.356-0.791
+                       c0.012-0.006,0.007-0.061,0.012-0.104c-0.324-0.389-0.676,0.238-1.075-0.059c0.618-0.874,1.134-1.805,1.397-2.873
+                       c-0.27,0.428-0.558,0.848-0.809,1.288c-0.132,0.23-0.3,0.381-0.546,0.473c-0.15,0.057-0.295,0.149-0.424,0.004
+                       c-0.153-0.172,0.105-0.278,0.103-0.367c-0.016-0.42,0.865-0.88-0.108-1.306c-0.297-0.131,0.317-0.538,0.359-0.986
+                       c-1.229,0.521-1.189-0.43-1.325-1.251c-0.357,0.263-0.126,0.519-0.176,0.71c-0.073,0.281,0.611,1.14-0.493,0.708
+                       c-0.083-0.033-0.202-0.008-0.191,0.122c0.014,0.138-0.051,0.35,0.179,0.362c0.327,0.017,0.518,0.168,0.596,0.495
+                       c-0.189,0.254-0.971-0.124-0.696,0.722c0.074,0.227-0.756,0.413-1.145,0.689c-0.467,0.331-0.352,0.507-0.272,0.899
+                       c0.03,0.154,0.527,0.151,0.147,0.431c-0.225,0.165-0.464,0.112-0.585-0.017c-0.364-0.394-0.732-0.539-1.157-0.151
+                       c-0.261,0.239-0.212,0.04-0.318-0.125c-0.187-0.289-0.306-0.694-0.86-0.564c-0.19,0.046-0.33-0.024-0.485,0.195
+                       c-0.28,0.397,0.239,0.234,0.257,0.428c0.007,0.1,0.141,0.191,0.219,0.286c0.127,0.149,0.463,0.039,0.442,0.383
+                       c-0.021,0.369-0.342,0.302-0.544,0.403c-0.157,0.076-0.329,0.118-0.732,0.254c1.006,0.1,1.648,0.559,2.441,0.723
+                       c-0.392,0.472-1.053,0.285-1.464,0.655c-0.032,0.028-0.347-0.133-0.353-0.216c-0.038-0.579-0.423-0.37-0.746-0.398
+                       c-0.229-0.019-0.35-0.35-0.713-0.35c0.057,0.365,1.136,0.818-0.007,1.084c0.084,0.236-0.09,0.608,0.425,0.606
+                       c0.281-0.002,0.714-0.197,0.78,0.494c0.047,0.491,0.719-0.229,1.039,0.163c-0.084,0.626-0.761,0.34-1.156,0.705
+                       c0.539,0.16,0.989,0.35,1.508,0.301c0.289-0.026,0.465,0.155,0.556,0.415c0.131,0.372-0.217,0.457-0.407,0.498
+                       c-0.599,0.128-1.211,0.876-1.82,0.017c-0.291,0.306-0.691,0.18-1.022,0.289c-0.11,0.038,0.098,0.28,0.31,0.304
+                       c0.191,0.021,0.509-0.115,0.495,0.238c-0.013,0.354-0.359,0.086-0.527,0.21c-0.135,0.1-0.333,0.117-0.599,0.203
+                       c0.767,0.464,1.485,0.859,2.279,1.091c0.202,0.059,0.574-0.185,0.53,0.24c-0.025,0.253-0.352,0.307-0.619,0.301
+                       c-0.085-0.002-0.172,0.054-0.556,0.187c0.828,0.085,1.45,0.053,1.779,0.63c0.115,0.204,0.422,0.361,0.253,0.638
+                       c-0.232,0.384-0.394-0.081-0.606-0.092c-1.159-0.061-2.318-0.136-3.493-0.206c0.039,0.496,0.56,0.155,0.627,0.437
+                       c0.055,0.229,0.087,0.576-0.04,0.713c-0.16,0.176-0.691,0.311-0.718,0.264c-0.3-0.518-0.846-0.309-1.227-0.375
+                       c-0.538-0.094-0.442-0.617-0.789-0.804c-0.163-0.089-0.149-0.391-0.44-0.085c-0.46,0.483-1.106,0.426-1.717,0.415
+                       c0.149,0.641,0.59,0.766,1.167,0.702c0.173-0.019,0.504,0.032,0.515,0.098c0.148,0.761,0.511,0.89,1.242,0.666
+                       c0.431-0.13,0.333,0.55,0.598,0.788c0.213,0.191-0.027,0.262-0.171,0.387c-0.302,0.264-0.355,0.106-0.633-0.093
+                       c-0.285-0.203-0.873,0.037-0.986-0.6c-0.012-0.064-0.129,0.035-0.182,0.114c-0.26,0.394-0.707,0.329-0.89,0.081
+                       c-0.507-0.681-1.315-0.517-1.956-0.912c0.172,1.075,1.215,0.769,1.746,1.25c-0.136,0.211-0.544,0.243-0.374,0.628
+                       c0.066,0.153,0.159,0.176,0.285,0.138c0.282-0.087,0.701-0.308,0.762,0.097c0.066,0.437-0.553,0.011-0.71,0.344
+                       c0.041,0.266,0.279,0.192,0.442,0.22c0.225,0.04,0.514-0.1,0.561,0.303c0.015,0.138,0.036,0.242-0.091,0.31
+                       c-0.261,0.14-0.476-0.015-0.692-0.13c-0.285-0.15-1.169-0.316-1.755-0.331c-0.083-0.002-0.189-0.055-0.246-0.119
+                       c-0.55-0.636-1.34-0.354-2.041-0.61c0.427,0.933,1.207,0.953,2.077,0.943c-0.596,0.401-0.25,1.004-0.667,1.6
+                       c0.801-0.338,0.827-1.502,1.678-1.148c0.217,0.091,0.501,0.7,0.361,1.33c0.542-0.456,0.934-0.439,1.397-0.077
+                       c0.506,0.398,1.019,0.841,1.697,0.952c0.179,0.03,0.465,0.039,0.419,0.251c-0.041,0.198-0.228,0.488-0.54,0.356
+                       c-0.41-0.176-0.775,0.224-1.189,0.041c-0.221-0.098-0.343,0.099-0.364,0.299c-0.019,0.177,0.128,0.26,0.277,0.323
+                       c0.467,0.197,0.469,0.198,0.781,0.795c0.056,0.104,0.117,0.09,0.213,0.064c0.469-0.132,0.808,0.093,0.743,0.536
+                       c-0.083,0.583-0.584,0.836-1.145,0.867c-0.219,0.013-0.437-0.261-0.783,0.073c0.827-0.051,0.632,1.092,1.465,1.005
+                       c-0.93,0.14-1.801-0.189-2.701-0.238c-0.523-0.028-0.882-0.135-1.13,0.473c0.174,0.159,0.883-0.409,0.645,0.385
+                       c-0.01,0.037,0.173,0.174,0.183,0.167c0.608-0.517,1.328,0.206,1.943-0.184c0.248-0.156,0.546-0.312,0.733,0.008
+                       c0.21,0.355-0.196,0.404-0.382,0.491c-0.548,0.257,0.41,0.249,0.068,0.545c-0.517,0.451-2.05,0.532-2.634,0.038
+                       c-0.119-0.102-0.221-0.064-0.318-0.015c-0.144,0.072-0.395,0.181-0.419,0.073c-0.273-1.131-1.314-0.172-1.84-0.69
+                       c-0.171-0.17-0.523-0.131-0.447-0.538c0.119-0.654-0.579-0.438-0.609-0.376c-0.365,0.704-1.011,0.316-1.559,0.381
+                       c0.262,0.485,0.517,0.826,1.081,0.684c0.571-0.144,0.027,0.473,0.469,0.666c0.824,0.363,1.566,0.874,2.616,0.793
+                       c-0.21,0.34-0.741,0.507-0.46,0.863c0.208,0.264,0.461-0.053,0.705-0.184c0.421-0.226,0.867,0.057,1.051,0.363
+                       c0.512,0.842,1.512,0.787,2.17,1.329c0.559,0.459,1.172,0.508,1.823,0.233c0.057-0.023,0.167-0.055,0.172-0.044
+                       c0.524,1.054,1.456,0.355,2.376,0.494c-0.669,0.329-1.177,0.58-1.687,0.829c0.525,0.748,1.323,0.045,1.897,0.455
+                       c-0.641,1.122-1.983,0.545-2.91,1.127c0.343,0.257,0.629,0.472,1.017,0.759c-0.715-0.017-1.254-0.384-1.918-0.221
+                       c-0.447,0.11-0.695-0.559-0.961-0.908c-0.278-0.365,0.41-0.369,0.425-0.772c-0.427-0.339-1.002,0.164-1.449-0.146
+                       c-0.429-0.298-0.874-0.569-1.396-0.6c-0.13-0.507,0.567-0.507,0.486-1.027c-0.727,0.21-1.6,1.051-2.075-0.34
+                       c-0.374,0.313-0.023,0.556-0.059,0.866c-0.546-0.253-0.977,0.359-1.553,0.193c0.245,0.206,0.493,0.413,0.733,0.615
+                       c-1.041,0.578-1.245,0.481-1.504-0.787c-0.291,0.333-0.624,1.046-0.841,0.006c-0.028-0.14-0.159-0.163-0.295-0.098
+                       c-0.643,0.313-1.117,0.228-1.644-0.36c-0.299-0.334-0.969-0.331-1.616-0.523c0.199,0.423,0.854,0.565,0.328,1.086
+                       c0.885-0.205,0.885-0.205,1.849,0.31c-0.127,0.188-0.321,0.104-0.478,0.129c-0.151,0.023-0.314-0.004-0.508,0.264
+                       c0.449-0.017,0.725,0.401,1.181,0.184c0.197-0.093,0.33-0.064,0.14,0.155c-0.303,0.35,0.291,0.333,0.209,0.577
+                       c0.683-0.183,0.949,0.761,1.764,0.578c0.436-0.098,1.249,0.321,1.266,1.196c0.017,0.837,0.482,0.491,0.821,0.239
+                       c0.525-0.39,0.509-0.41,0.649,0.211c0.054,0.238,0.335,0.46,0.439,0.371c0.716-0.621,0.939,0.151,1.336,0.433
+                       c-0.538,0.427-1.001,1.003-1.875,0.861c0.303,0.65,1.021,0.995,0.898,1.754c0.54-0.136,0.932,0.455,1.402,0.35
+                       c0.295-0.066,0.463-0.106,0.362,0.189c-0.264,0.767,0.245,0.984,0.765,1.144c0.357,0.112,0.512,0.442,0.826,0.576
+                       c-0.654,0.655-0.99-0.297-1.537-0.308c-0.361-0.006-0.595-0.17-0.769,0.304c-0.112,0.303-0.41,0.642-0.752,0.631
+                       c-0.524-0.017-0.125-0.53-0.275-0.71c-0.148-0.183-0.251-0.506-0.589-0.496c-0.709,0.019-0.818-0.144-0.568-0.838
+                       c-0.326-0.143-0.505,0.374-0.831,0.198c-0.153-0.369,0.301-0.333,0.371-0.551c-0.441-0.312-0.922-0.061-1.378-0.138
+                       c-0.507-0.089,0.04,0.501-0.193,0.715c-1.697-0.968-3.43-1.873-5.448-2.16c0.528,1.023,1.461,1.479,2.278,2.124
+                       c1.097,0.862,2.15,0.786,3.365,0.642c0.121,0.46-0.495,0.51-0.495,0.899c0.538-0.063,1.091-0.049,1.612-0.396
+                       c-0.461,0.562-0.845,1.044-0.85,1.803c-0.004,0.436-0.337,1.026,0.046,1.265c0.388,0.239,1.085,0.634,1.494-0.335
+                       c-0.327,0.321-0.197,0.6-0.197,0.854c0,0.171,0.078,0.312,0.244,0.349c0.223,0.051,0.202-0.176,0.291-0.284
+                       c0.183-0.22,0.185-0.677,0.595-0.583c0.074,0.017,0.316,0.326,0.396,0.597c0.159,0.537-0.375,0.381-0.484,0.579
+                       c-0.67,1.2-1.786,0.459-2.676,0.667c-0.056,0.01-0.119-0.021-0.18-0.033c0.417-1.198-0.975-0.019-0.919-0.759
+                       c-0.015-0.317,0.549-0.162,0.528-0.537c-0.225-0.386-1.612,0.913-0.856-0.795c-0.539,0.164-0.985,0.316-1.414-0.08
+                       c0.069,0.141,0.141,0.28,0.211,0.421c-0.68,0.177-1.249-0.296-1.897-0.323c-0.233-0.01-0.274-0.178-0.214-0.409
+                       c0.045-0.176-0.168-0.356-0.262-0.258c-0.796,0.82-0.862-0.202-1.244-0.49c-0.416,0.291-0.54,0.831-0.484,1.185
+                       c0.07,0.436,0.639,0.369,1.049,0.382c0.197,0.006,0.624-0.119,0.289,0.354c-0.027,0.037-0.021,0.098-0.032,0.149
+                       c0.119-0.015,0.257,0.006,0.352-0.048c0.349-0.202,0.586-0.07,0.837,0.259c-0.38,0.033-0.711,0.061-1.174,0.101
+                       c0.321,0.353,0.297,0.963,1.005,0.551c0.225-0.129,0.439,0.403,0.827,0.349c-0.308,0.444-0.605,0.676-1.138,0.417
+                       c-0.291-0.142-0.83-0.216-0.885,0.136c-0.054,0.339-0.16,0.953,0.531,1.089c0.28,0.055,0.902-0.306,0.745,0.573
+                       c-0.066,0.377,0.191,0.424-0.51,1.089c1.347-0.357,1.465,1.548,2.737,1.274c0.072,0.301-0.649,0.576-0.176,0.778
+                       c0.325,0.139,0.484,0.944,1.066,0.387c0.107-0.102,0.293-0.175,0.37,0.059c0.076,0.225-0.024,0.367-0.257,0.387
+                       c-0.376,0.037-0.695,0.193-1.176,0.459c1.176,0.17,2.2,1.067,3.153-0.265c0.206,0.269,0,1.063,0.739,0.597
+                       c0.168-0.108,0.707-0.578,0.888,0.113c0.146,0.557,0.067,1.042-0.555,1.295c-0.204,0.081-0.439-0.123-0.628,0.103
+                       c0.148,0.391,1.004,0.195,0.783,0.928c-0.029,0.093,0.228,0.153,0.389,0.058c0.285-0.162,0.574-0.132,0.871-0.019
+                       c-0.053,0.394-0.465,0.529-0.484,1.033c-0.014,0.427-0.854,0.326-1.302,0.133c-0.62-0.267-1.213-0.252-1.85-0.123
+                       c-0.257,0.051-0.591,0.036-0.811-0.089c-1.231-0.699-2.529-1.173-3.929-1.401c-0.845-0.138-0.104-0.5-0.042-0.895
+                       c-1.368,0.18-2.718,0.31-4.127-0.109c0.653,1.031,1.472,1.514,2.489,1.796c0.168,0.047,0.597,0.458,0.777,0.728
+                       c0.266,0.4-0.269,0.651-0.545,0.791c-0.37,0.185-0.947,1.057-1.187-0.157c-0.096-0.488-0.792,0.187-0.868-0.411
+                       c-0.36,0.047-0.139,0.247-0.105,0.4c-0.76,0.081-0.276,0.896-0.694,1.19c-0.072,0.052-0.026,0.19,0.081,0.22
+                       c0.809,0.23,1.006,1.342,1.955,1.363c0.126,0.002,0.215-0.025,0.155,0.181c-0.199,0.7,0.36,0.727,0.882,0.812
+                       c-0.386,0.437-1.238,0.079-1.247,0.918c0,0.086-0.48-0.033-0.522-0.18c-0.214-0.749-0.652-0.557-1.075-0.251
+                       c-0.223-0.384,0.236-0.324,0.226-0.536c-0.06-0.03-0.13-0.091-0.16-0.074c-0.682,0.358-1.213,0.213-1.676-0.411
+                       c-0.174-0.233-1.155-0.419-1.628-0.561c-0.474-0.143-0.771-0.785-1.345-0.633c-0.439,0.113-0.811,0.032-1.191-0.157
+                       c-0.134,0.382,0.079,0.437,0.306,0.479c0.176,0.034,0.482,0.085,0.274,0.298c-0.382,0.393,0.006,0.369,0.187,0.436
+                       c0.17,0.062,0.522,0.083,0.52,0.094c-0.091,0.873,0.663,1.098,1.177,1.369c0.429,0.225,1.064,0.278,1.531,0.144
+                       c0.543-0.155,0.856,0.055,1.237,0.296c0.109,0.068,0.146,0.08,0.128,0.248c-0.118,1.069,0.383,1.546,1.442,1.353
+                       c0.572-0.104,0.833,0.411,1.122,0.655c0.263,0.221-0.272,0.472-0.57,0.637c-0.21,0.117-0.627,0.224-0.42,0.592
+                       c0.157,0.277,0.38-0.028,0.542-0.112c0.286-0.143,0.711,0.103,0.885-0.324c0.121,0.356,0.337,0.712,0.338,1.07
+                       c0.002,0.312-0.364,0.281-0.606,0.21c-0.953-0.282-1.903-0.579-2.851-0.88c-0.077-0.023-0.148-0.195-0.186-0.183
+                       c-1.331,0.422-2.285-0.623-3.44-0.871c-0.41-0.087-0.879,0.182-1.244-0.329c0.025,0.706,0.974,0.816,0.686,1.569
+                       c-0.047,0.123,0.246,0.114,0.393,0.131c1.023,0.117,1.142,0.3,0.796,1.268c0.444,0.143,0.956-0.752,1.289-0.012
+                       c0.24,0.539-0.674,0.295-0.716,0.794c0.444,0.017,0.898-0.233,1.334,0.015c0.127,0.071,0.416-0.072,0.329,0.27
+                       c-0.062,0.251-0.17,0.396-0.457,0.293c-0.199-0.07-0.469-0.368-0.558,0.083c-0.064,0.329,0.14,0.456,0.47,0.553
+                       c0.57,0.165,1.142,0.332,1.418,1.014c0.165,0.411,0.949,0.355,1.068,0.295c0.752-0.386,0.766,0.654,1.291,0.585
+                       c-0.055,0.243-0.085,0.776-0.255,0.644c-0.626-0.493-0.766,0.192-1.129,0.298c-0.236,0.068-0.638-0.148-0.913-0.29
+                       c-0.455-0.234-1.02,0.065-1.4-0.358c-0.157,0.272-0.79-0.033-0.679,0.545c0.101,0.528,1.164,1.338,1.738,1.301
+                       c0.174-0.012,0.377-0.199,0.383,0.121c0.013,0.694,0.622,0.622,1.24,0.845c-1.556,0.489-2.779-0.778-4.16-0.259
+                       c-0.144-0.293,0.399-0.334,0.308-0.623c-0.121-0.187-0.246-0.098-0.391-0.018c-0.444,0.237-0.818,0.481-1.082-0.297
+                       c-0.126-0.377-0.846-0.004-1.197-0.434c0.398,0.287-0.76,0.874,0.264,1.037c0.185,0.03-0.281,0.27-0.223,0.53
+                       c0.295,0.202,0.654-0.005,0.996,0.124c-0.064,0.444-0.476,0.512-0.794,0.671c0.191,0.387,0.511,0.543,0.843,0.583
+                       c0.267,0.032,0.652-0.295,0.749,0.172c0.079,0.382-0.514,0.111-0.617,0.527c0.779-0.025,1.121,0.79,1.857,0.855
+                       c-0.052,0.277-0.722,0.151-0.353,0.583c0.281,0.329,0.793,0.6,1.135,0.439c0.766-0.357,0.958-0.066,1.045,0.616
+                       c0.026,0.209,0.102,0.509,0.452,0.22c0.308-0.253,0.669-0.293,1.16-0.048c-1.014,0.279-0.599,1.234-0.983,1.829
+                       c-0.139,0.217-0.083,0.532-0.468,0.51c-0.297-0.018-0.666,0.099-0.647-0.419c0.012-0.367-0.304-0.273-0.491-0.387
+                       c-0.473-0.289-1.049-0.281-1.47-0.698c0.264,0.468,0.809,0.744,0.387,1.399c-0.141,0.217,0.198,0.045,0.303,0.098
+                       c0.311,0.161,0.648,0.17,1.122,0.159c-0.425,0.774-1.277,0.038-1.665,0.626c0.417,0.293,0.898,0.093,1.331,0.178
+                       c0.106,0.019,0.277-0.035,0.242,0.158c-0.019,0.112-0.127,0.301-0.244,0.208c-0.405-0.323-0.743,0.244-1.184-0.126
+                       c0.054,0.62,0.946,0.732,0.46,1.419c0.865-0.727,1.113,0.933,1.985,0.212c-0.364,1.107,0.353,1.769,1.823,1.898
+                       c-0.21,0.528-0.686,0.681-1.109,0.879c-0.201,0.093-0.469,0.125-0.382,0.417c0.081,0.272,0.376,0.214,0.565,0.178
+                       c0.613-0.121,1.136-0.523,1.829-0.464c0.299,0.024,0.297,0.051,0.229,0.25c-0.072,0.209-0.748,0.592,0.163,0.469
+                       c0.06-0.01,0.077,0.212-0.061,0.283c-0.212,0.112-0.427,0.214-0.576,0.29c-0.13,0.524,0.739-0.202,0.429,0.481
+                       c-0.149,0.329-0.312,0.636-0.743,0.532c-0.209-0.049-0.278-0.4-0.627-0.219c-0.422,0.219-0.509-0.369-0.83-0.447
+                       c-0.505-0.121,0.151,0.741-0.454,0.539c-0.143-0.049-0.321-0.036-0.434-0.118c-0.569-0.42-1.229-0.637-1.881-0.869
+                       c-0.009-0.402,0.484-0.214,0.565-0.468c-0.238-0.357-1.219,0.445-0.901-0.655c0.059-0.202-0.127-0.127-0.235-0.085
+                       c-0.126,0.051-0.215,0.315-0.37,0.149c-0.915-0.991-0.938,0.354-1.378,0.56c-0.19,0.089,0.189,0.258,0.337,0.45
+                       c-1.265,0.268-2.471,0.389-3.576-0.433c-0.098-0.073-0.305-0.181-0.32-0.162c-0.818,1.047-0.807-0.229-1.175-0.419
+                       c-0.137-0.069-0.345-0.236-0.395-0.198c-0.501,0.393-1.436-0.049-1.686,0.899c0.262,0.083,0.513,0.162,0.78,0.245
+                       c-0.239,0.226-0.434,0.411-0.771,0.729c0.936-0.115,1.548,0.125,1.747,0.978c0.039,0.164,0.238,0.333,0.326,0.25
+                       c0.552-0.516,0.768,0.698,1.284,0.23c0.072,0.903,0.618,0.182,0.951,0.276c0.189,0.558-0.566,0.483-0.619,1.014
+                       c0.558-0.628,0.452,0.634,0.97,0.214c0.074,0.643-0.807,0.876-0.625,1.623c0.156,0.65,0.247,1.206,1.088,1.113
+                       c0,0.066,0.025,0.144-0.005,0.178c-0.212,0.255-0.873,0.009-0.774,0.437c0.112,0.483,0.569-0.098,0.881,0.034
+                       c0.186,0.078,0.527-0.123,0.578,0.131c0.087,0.42-0.051,0.857-0.237,1.243c-0.129,0.268-0.362,0.14-0.558,0.046
+                       c-0.14-0.067-0.299-0.207-0.422-0.182c-1.254,0.257-1.277-0.483-1.045-1.427c-1.068,0.657-2.098,0.882-3.237,0.562
+                       c-0.257-0.072-0.39-0.136-0.4-0.397c-0.005-0.17-0.098-0.379-0.253-0.317c-0.996,0.401-1.359-0.892-2.339-0.714
+                       c0.892,0.139,0.51,1.218,1.268,1.49c0.191,0.071,0.024,0.274-0.044,0.397c-0.096,0.176-0.206,0.352,0.065,0.449
+                       c1.048,0.376,1.973,1.429,3.253,0.621c0.062-0.04,0.179,0.014,0.345,0.032c-0.176,0.387-0.495,0.543-0.803,0.708
+                       c-0.317,0.169-0.633,0.34-0.926,0.654c1.086-0.709,2.113,0.391,3.285-0.145c-0.295,0.554-0.838,0.589-1.002,0.99
+                       c1.149,0.813,1.71-0.774,2.703-0.722c0.045,0.468-0.747,0.271-0.55,0.843c0.05,0.149-0.779,0.013-0.446,0.512
+                       c0.272,0.408,0.463-0.287,0.865-0.175c-0.27,0.411-0.312,0.902-0.72,1.262c0.403,0.284,0.634-0.06,0.907-0.1
+                       c0.458-0.066,0.9-0.31,1.35,0.152c0.257,0.26,0.54,0.359,0.119,0.696c-0.339,0.27-0.459,0.481,0.013,0.846
+                       c0.212,0.162,0.615,0.581,0.346,1.108c-0.183,0.359,0.389,0.299,0.378,0.316c-0.352,0.595-0.032,0.748,0.486,0.788
+                       c-0.068,0.821,0.455-0.046,0.684,0.217c0.115,0.132,0.669-0.559,0.911-0.065c0.24,0.493-0.261,0.743-0.822,0.946
+                       c0.357,0.159,0.59,0.261,0.79,0.35c0.087,0.168-0.029,0.225-0.098,0.232c-0.681,0.072-1.42,0.28-1.702-0.678
+                       c-0.031-0.105-0.151-0.186-0.23-0.277c-0.567,0.706-0.97-0.198-1.472-0.185c-0.089,0.396,0.376,0.382,0.419,0.653
+                       c-0.115,0.157-0.385,0.013-0.476,0.277c0.068,0.038,0.138,0.11,0.212,0.114c0.285,0.014,0.589-0.191,0.837,0.165
+                       c0.121,0.174,0.085,0.379-0.025,0.347c-0.769-0.23-1.608,0.529-2.336-0.181c-0.317-0.309-0.712-0.338-1.122-0.216
+                       c-0.159,0.499,1.153,0.844,0.083,1.439c0.376,0.06,0.643,0.253,1.024,0.064c0.66-0.323,0.067,0.666,0.546,0.591
+                       c0.358-0.057,0.713-0.136,1.068-0.205c-0.397,0.704,0.386,0.421,0.552,0.659c0.378,0.544-0.348,0.606-0.423,0.942
+                       c0.468,0.246,0.903,0.459,1.4-0.226c0.004,0.585-0.837,1.016-0.187,1.196c0.564,0.153,1.059,1.325,1.841,0.289
+                       c0.192-0.251,0.577-0.543,0.559,0.201c-0.007,0.361,0.382-0.123,0.511,0.207c-0.046,0.061-0.153,0.142-0.182,0.245
+                       c-0.11,0.416-0.816,0.45-0.708,0.883c0.138,0.543,0.665-0.068,0.95,0.167c0.104,0.086,0.427,0.122,0.303,0.232
+                       c-0.328,0.285,0.153,0.725-0.21,0.912c-0.321,0.164-0.698,0.345-1.036,0.325c-1.54-0.1-3.056-0.485-4.625-0.283
+                       c-0.363,0.045-0.763-0.212-1.145-0.335c-0.813-0.263-1.557-0.717-2.495-0.57c-0.494,0.077-1.126-0.238-1.358-0.608
+                       c-0.551-0.876-1.396-1.003-2.242-1.236c-0.773-0.214-0.769-0.232-0.319-0.959c-0.755,0.715-1.263-0.28-1.938-0.208
+                       c-0.117,0.013-0.426-0.266-0.431-0.109c-0.009,0.27-0.306,0.507-0.162,0.713c0.149,0.208,0.167,0.314-0.042,0.43
+                       c-0.247,0.136-0.654,0.134-0.482,0.602c0.164,0.445,0.58,0.079,0.943,0.346c0.068,0.102-0.66,0.585,0.029,0.557
+                       c0.892-0.035,1.719,0.266,2.615,0.424c-1.013,0.238-2.024,0.485-3.039,0.71c-0.268,0.06-0.749-0.278-0.711,0.315
+                       c0.034,0.523,0.481,0.55,0.898,0.515c0.783-0.066,1.571,0.018,2.374-0.062c-0.232,0.136-0.471,0.264-0.699,0.409
+                       c-0.477,0.301-0.499,0.32-0.187,0.806c0.156,0.242-0.533,0.357-0.047,0.553c0.343,0.138,0.358-0.389,0.546-0.371
+                       c1.034,0.103,1.699-1.302,2.904-0.685c-0.646,0.635-1.287,1.239-1.254,2.262c0.251-0.063,0.525-0.216,0.618-0.142
+                       c0.644,0.527,1.226,0.712,1.84-0.049c0.136-0.17,0.226,0.097,0.326,0.195c0.21,0.21,0.13,0.449-0.018,0.581
+                       c-0.427,0.38-0.776,0.95-1.47,0.827c-0.593-0.106-0.898,0.34-1.298,0.607c-0.101,0.067-0.233,0.137-0.112,0.284
+                       c0.1,0.123,0.257,0.269,0.391,0.14c0.376-0.365,0.965-0.181,1.289-0.607c0.191,0.289-0.23,0.401-0.049,0.669
+                       c0.771-0.494,1.794-0.193,2.524-0.902c0.459,2.365-1.346,2.765-2.807,3.504c0.487-0.108,0.82,0.136,1.209,0.336
+                       c0.494,0.254,1.078,0.22,1.495-0.279c0.18-0.214,0.399-0.564,0.645-0.263c0.206,0.255-0.185,0.491-0.389,0.629
+                       c-0.25,0.17-0.57,0.23-0.853,0.351c-0.325,0.14-0.69,0.34-0.437,0.735c0.131,0.204,0.381,0.679,0.823,0.272
+                       c0.102-0.094,0.293-0.085,0.421-0.159c0.21-0.119,0.443-0.38,0.635-0.08c0.166,0.262-0.036,0.58-0.227,0.746
+                       c-0.877,0.763-1.47,0.801-2.506,0.174c-0.223-0.134-0.336,0.028-0.503,0.051c-1.137,0.161-2.228,0.272-3.365-0.26
+                       c-0.779-0.364-1.743-0.356-2.631-0.448c-0.872-0.089-0.398,0.906-0.907,1.265c-0.299,0.21,0.455,0.384,0.685,0.43
+                       c0.701,0.14,0.743,0.551,0.594,1.126c0.405-0.033,0.56-0.576,1.034-0.399c-0.142,0.274-0.04,0.564-0.365,0.88
+                       c-0.371,0.363,0.193,0.705,0.544,0.82c0.658,0.219,1.333,0.075,1.938-0.218c0.356-0.171,0.671-0.178,0.939,0.036
+                       c0.397,0.316-0.2,0.455-0.174,0.623c0.093,0.623-0.274,0.891-0.703,1.168c-0.106,0.068-0.257,0.225-0.133,0.397
+                       c0.108,0.147,0.269,0.078,0.424,0.078c0.809-0.002,1.323-0.633,1.999-0.914c0.732-0.306,0.719-0.337,0.773,0.47
+                       c0.395-0.267,0.464-0.723,0.776-1.212c0.098,1.008-0.36,1.623-1.118,2.286c0.762-0.053,1.187-0.297,1.486-0.776
+                       c0.28,0.355-0.163,0.624,0.145,0.905c0.364-0.276,0.45-0.75,0.728-1.117c0.28,0.421,0.571,0.64,0.747-0.052
+                       c0.096-0.379,0.234-0.629,0.697-0.559c0.274,0.041,0.367-0.141,0.334-0.417c-0.075-0.634,0.685-0.498,0.857-0.91
+                       c0.535,0.238,0.778,0.627,0.58,1.183c0.142,0.106,0.208,0.065,0.278-0.007c0.223-0.225,0.215-0.708,0.692-0.649
+                       c0.134,0.017,0.232,0.124,0.208,0.264c-0.065,0.378-0.371,0.562-0.655,0.746c-0.151,0.098-0.363,0.104-0.44,0.312
+                       c0.023,0.053,0.034,0.136,0.074,0.153c1.232,0.545,1.452,0.581,1.536,0.181c0.159-0.738,1.144-0.615,1.275-1.389
+                       c-0.485,0.015-0.63,0.649-1.131,0.579c-0.17-0.899,0.683-1.035,1.112-1.432c0.179-0.167,0.3,0.272,0.311,0.516
+                       c0.01,0.257-0.154,0.6,0.259,0.674c0.403,0.074,0.517-0.258,0.641-0.545c0.123-0.282,0.259-0.561,0.355-0.85
+                       c0.084-0.253,0.26-0.387,0.488-0.334c0.283,0.066,0.214,0.291,0.176,0.53c-0.063,0.397-0.698,0.915-0.21,1.118
+                       c0.429,0.178,0.338-0.653,0.576-0.922c0.246-0.276,0.733-0.516,1.083-0.478c0.787,0.084,1.478-0.15,2.2-0.386
+                       c-0.55,0.649-0.984,1.447-2.06,1.155c-0.223-0.06-0.442,0.072-0.459,0.428c-0.019,0.457-0.066,0.456-0.554,0.203
+                       c0.312,0.933,0.556,0.927,2.123-0.046c0.022,0.48,0.019,0.476-0.365,0.812c-0.15,0.135-0.443,0.246-0.246,0.506
+                       c0.121,0.159,0.089,0.423,0.378,0.483c0.586,0.123,1.206-0.112,1.771,0.191c0.017,0.007,0.119-0.119,0.162-0.193
+                       c0.558-0.97,0.728-1.008,1.431-0.318c0.445-0.296-0.514-0.577-0.051-0.756c0.442-0.17,0.28,0.452,0.522,0.628
+                       c0.106,0.078,0.457-0.017,0.302,0.317c-0.064,0.138-0.16,0.303,0.05,0.369c0.066,0.023,0.177-0.164,0.283-0.189
+                       c0.278-0.068,0.563-0.1,0.831-0.144c0.141-0.349-0.597-0.328-0.276-0.655c0.227-0.228,0.619-0.428,0.934-0.312
+                       c0.396,0.146,0.021,0.602,0.195,0.981c0.147-0.21,0.265-0.346,0.344-0.502c0.062-0.121-0.072-0.317,0.153-0.397
+                       c0.189,0.002,0.257,0.147,0.253,0.31c-0.011,0.6,0.524,0.464,0.815,0.553c0.384,0.117,0.26-0.303,0.376-0.487
+                       c0.332-0.534,0.942-0.884,1.553-0.855c0.46,0.021,0.291,0.564,0.099,0.761c-0.52,0.531-0.885,1.101-1.129,1.822
+                       c-0.134,0.396-0.683,0.53-1.207,0.353c-0.408-0.136-0.828-0.191-1.297-0.191c-0.96-0.002-0.525,1.177-1.261,1.216
+                       c0.145,0.317,0.409,0.677,0.719,0.515c0.735-0.384,1.497,0.093,2.283-0.271c0.863-0.401,1.565,0.286,1.538,1.31
+                       c0.467-0.321,0.8-0.806,1.446-0.719c0.248,0.034,0.463-0.329,0.214-0.541c-0.557-0.472-0.025-0.691,0.115-1.065
+                       c0.348-0.93,1.453-0.905,1.922-1.652c0.025-0.04,0.416,0.046,0.437,0.126c0.193,0.755,0.557,0.138,0.839,0.123
+                       c-0.038-0.485,0.981-0.666,0.418-1.233c-0.265-0.266-0.021-0.277,0.043-0.368c0.081-0.117,0.147-0.191,0.346-0.03
+                       c0.754,0.613,1.644,0.426,2.17-0.378c0.253-0.391,0.185-0.598-0.254-0.774c-0.184-0.076-0.48-0.234-0.389-0.54
+                       c0.038-0.127,0.205-0.27,0.336-0.3c0.394-0.091,0.289,0.353,0.432,0.518c0.217-0.475,0.417-0.915,0.617-1.359
+                       c0.086,0.561,0.415,0.876,0.89,1.064c0.666,0.26,0.333,0.866,0.345,1.261c0.145,5.601,0.234,11.202,0.336,16.804
+                       c0.002,0.092-0.028,0.187-0.043,0.279H1377.389z"/>
+       </g>
+       <g>
+               <path fill="#2A3524" d="M1512.801,328.851c0.305-0.553-0.053-0.606-0.501-0.863c-0.476-0.274-1.203-0.011-1.379-0.442
+                       c-0.276-0.669-0.834-0.526-1.093-0.385c-0.41,0.22,0.085,0.557,0.169,0.85c0.125,0.438,0.007,0.878-0.422,0.934
+                       c-0.586,0.08-0.557-0.336-0.45-0.805c0.1-0.444-0.41-0.669-0.639-0.633c-0.735,0.112-0.758,1.105-1.451,1.34
+                       c0.367,0.678,0.266,1.676,1.019,2.039c0.493,0.238,1.081-0.095,1.347-0.74c0.21-0.508,0.376-1.037,0.944-0.104
+                       c0.326,0.541,1.181,0.606,1.906,0.316C1513.007,330.055,1512.75,329.421,1512.801,328.851 M1505.786,275.902
+                       c0.559,3.13,0.771,3.83,1.164,3.843c1.733,0.061,3.466,0.052,5.007-1.321c-1.696,0.555-1.992-1.223-3.045-1.794
+                       C1507.793,276.023,1506.511,277.408,1505.786,275.902 M1433.936,325.398c-1.291-0.324-2.462,0.664-3.473-0.337
+                       c-0.251-0.251-0.438,0.138-0.614,0.367c-1.137,1.488-2.566,2.6-4.349,3.187c-0.483,0.16-0.393,0.496-0.44,0.804
+                       c-0.066,0.439,0.425,0.785,0.573,0.684c1.243-0.864,3.069-0.459,4.041-1.764c0.721-0.974,1.644-1.567,2.725-1.934
+                       C1432.936,326.224,1433.436,326.09,1433.936,325.398 M1423.418,322.745c0.002-0.746-0.584-0.853-1.044-0.92
+                       c-0.304-0.041-0.64,0.169-0.899-0.168c-0.594-0.77-1.514,0.138-2.147-0.42c-0.233,1.769-1.696,1.412-2.826,1.676
+                       c-0.601,0.14-1.697,2.167-1.395,2.523c0.529,0.626,1.166,0.09,1.52-0.161c1.863-1.331,3.941-1.886,6.178-2.005
+                       C1423.147,323.254,1423.55,323.259,1423.418,322.745 M1499.917,252.933c1.038,1.181,2.523,0.636,3.688,1.137
+                       c0.274,0.117,0.639-0.218,0.525-0.493c-0.261-0.64-0.132-1.08,0.423-1.438c-0.421-0.625-0.037-1.476-1.052-2.035
+                       c-2.075-1.141-3.117,1.477-5.164,0.61c0.777,1.297,2.023,0.955,2.548,1.867C1500.571,252.697,1500.282,252.8,1499.917,252.933
+                        M1489.358,213.196c-0.441,0.312-0.622-0.027-0.854-0.134c-0.726-0.337-1.369-0.146-1.872,0.389
+                       c-0.748,0.8,0.254,1.249,0.545,1.711c0.332,0.528,0.914,0.005,1.362-0.224c0.448-0.227,0.881-0.537,1.359-0.64
+                       c0.853-0.184,1.165-0.598,0.891-1.438c-0.106-0.325-0.133-0.655,0.054-0.964c-0.474-0.241-0.744,0.45-1.207,0.275
+                       c-0.118-0.995,0.718-0.696,1.162-0.902c0.508-0.237,0.836-0.598,0.879-1.163c0.039-0.527-0.369-0.629-0.751-0.794
+                       c-1.226-0.524-2.438-1.082-2.793-2.573c-0.01-0.044-0.183-0.049-0.319-0.081c-0.15,0.859,0.835,1.656,0.557,2.227
+                       C1487.506,210.666,1488.415,211.924,1489.358,213.196 M1423.661,234.311c1.446-0.127,0.36,1.259,1.153,1.531
+                       c0.926,0.32,1.127,0.922,1.062,1.815c-0.015,0.208,0.433,0.554,0.73,0.653c0.263,0.089,0.442-0.244,0.588-0.502
+                       c0.213-0.387,0.221-1.252,0.967-0.75c0.584,0.393-0.175,0.714-0.308,1.069c-0.128,0.346-0.637,0.719-0.098,1.012
+                       c0.448,0.245,1.306,0.595,1.503,0.188c0.642-1.323,2.09-1.533,2.986-2.468c0.357-0.372,0.654-0.75,0.474-1.191
+                       c-0.308-0.76-0.742,0.027-1.122-0.006c-0.46-0.037-0.773,0.559-1.306,0.267c0.13-0.544,0.506-0.721,0.979-0.988
+                       c0.873-0.49,1.992-0.876,0.805-2.429c-0.734-0.96-1.739-1.124-2.536-1.773c-1.295-1.058-2.454-0.565-3.238,0.865
+                       c-0.091,0.162-0.082,0.462-0.403,0.396c-1.617-0.325-2.288,1.358-3.659,1.62c0.998,0.067,1.947-0.899,2.884,0.113
+                       C1424.777,234.198,1424.212,233.727,1423.661,234.311 M1455.251,371.141c0.021-8.781,0.057-17.564,0.049-26.347
+                       c-0.002-1.171,0.149-2.386-1.949-2.031c-0.691,0.117-1.84-0.84-3.048-0.577c-0.342,0.076-0.62-0.163-0.996,0.289
+                       c-0.647,0.782-1.408,1.232-1.771-0.346c-0.096-0.423-0.253-1.165-0.845-1.158c-0.733,0.008-0.183,0.793-0.442,1.094
+                       c-0.32,0.372-0.754,1.696-1.127,0.007c-1.068,1.168-1.013-0.329-1.466-0.619c-0.391-0.094-0.046,1.549-0.961,0.377
+                       c-0.423-0.544-0.98,0.291-1.576,0.205c-0.391-0.056-1.098,0.339-1.213-0.098c-0.421-1.601-1.272-0.302-1.533-0.126
+                       c-0.554,0.37-1.196,1.004-0.075,1.685c0.582,0.354,0.115,0.816-0.246,1.105c-0.499,0.404-1.066,0.848-1.675,0.288
+                       c-0.16-0.146,0.057-0.735-0.504-0.43c-0.216,0.115-0.386,0.238-0.359,0.645c0.062,0.988-0.099,1.558-1.535,1.454
+                       c-1.255-0.091-2.839,1.08-2.794,2.331c0.055,1.51-1.045,1.45-1.71,2.314c-0.015-0.87-0.752-1.432,0.068-2.386
+                       c-1.453,0.999-2.854,0.986-4.226,1.099c-0.391,0.033-1.032,0.138-1.028-0.3c0.004-0.462,0.414-0.976,0.763-1.359
+                       c0.19-0.206,0.711-0.353,0.938-0.238c1.533,0.772,2.33,0.128,2.799-1.32c0.121-0.372,0.333-0.936,0.752-0.768
+                       c0.985,0.396,1.032-0.337,1.282-0.88c-0.583-0.245-1.106-0.664-1.824-0.379c-0.529,0.209-1.091,0.692-1.318-0.506
+                       c-0.134-0.707,0.324-0.589,0.511-0.723c0.327-0.233,0.96,0.155,1.158-0.581c-0.557-0.501-1.434,0.319-1.982-0.445
+                       c-0.186-0.26-0.471,0.077-0.535,0.402c-0.254,1.248-1.221,1.746-2.232,2.301c-0.87,0.477-1.51,1.879-2.504,0.081
+                       c-0.197-0.357-1.038,0.165-1.314,0.499c-0.548,0.656-1.308,0.503-1.951,0.742c-0.482,0.177-0.944-0.112-1.13-0.573
+                       c-0.179-0.445,0.312-0.583,0.582-0.681c0.403-0.147,0.543-0.198,0.291-0.672c-0.312-0.591-0.529-0.175-0.742-0.01
+                       c-0.414,0.322-0.785,0.705-1.635,0.497c0.699-1.542,2.559-1.408,3.405-2.714c-1.118-0.113-2.192,0.61-3.322,0.414
+                       c-0.083-0.015-0.233,0.187-0.282,0.161c-1.935-1.028-2.22,0.717-2.75,1.757c-1-0.095-0.147-1.735-1.37-1.351
+                       c-0.898,0.281-1.115,1.023-0.964,1.941c0.074,0.453-0.062,1.084-0.688,0.904c-0.742-0.213,0.263-0.679,0.027-0.883
+                       c-0.431-0.373,0.083-1.321-0.274-1.162c-1.081,0.481-1.73-1.353-2.769-0.374c-0.21,0.197-0.089,0.53,0.847,1.38
+                       c-2.573-1.154-3.136,1.608-5.075,1.489c-0.078-0.507,1.111-1.088,0.197-1.619c-0.622-0.362-1.326-0.188-1.892,0.249
+                       c-0.688,0.528-1.34,1.101-2.299,0.919c-0.07-0.396,0.193-0.548,0.408-0.722c0.63-0.52,0.677-1.52,0.503-1.904
+                       c-0.331-0.738-1.052-0.049-1.621,0.116c-1.002,0.285-1.996,0.401-2.807-0.592c0.569-0.62,1.268-0.723,2.022-0.681
+                       c0.444,0.023,0.656-0.216,0.545-0.639c-0.148-0.554-0.403-0.088-0.603-0.027c-1.662,0.509-2.873-0.672-4.264-1.157
+                       c-0.38-0.133-0.238-0.48,0-0.68c0.372-0.312,0.21-1.172,1.075-0.99c1.004,0.208,2.068,0.216,3.026,0.544
+                       c1.278,0.435,2.542,0.47,3.812,0.231c0.405-0.078,0.618-0.005,0.913,0.184c1.276,0.824,2.028-0.348,2.949-0.832
+                       c0.098-0.051,0.109-0.458,0.022-0.63c-0.168-0.339-0.468-0.199-0.737-0.08c-0.529,0.236-1.179,0.573-1.478-0.16
+                       c-0.346-0.845,0.495-0.769,0.97-1.009c0.625-0.313,0.966-0.915,1.204-1.595c-0.647-0.272-0.841,0.291-1.117,0.575
+                       c-0.779,0.81-1.577,0.88-2.459,0.205c-0.269-0.205-0.528-0.54-0.821-0.576c-1.222-0.149-2.445,0.299-3.333-1.35
+                       c-0.409-0.76-1.301-1.067-0.222-2.233c-2.054,0.697-3.558,1.561-4.585,3.13c-0.09,0.14-0.484,0.409-0.444,0.136
+                       c0.136-0.962-1.177-0.387-0.907-0.681c0.694-0.759-0.208-2.054,1.136-2.6c1.102-0.449,1.232-1.604,1.07-2.713
+                       c-0.719-0.17-0.607,0.536-0.883,0.655c-0.722,0.31-1.455,1.61-2.283-0.055c-0.238-0.483-1.138-0.81-1.814-1.107
+                       c-0.369-0.16-2.042,0.869-1.14-0.921c0.004-0.009-0.299-0.249-0.371-0.212c-1.366,0.71-1.277-1.042-2.117-1.268
+                       c-0.289-0.078-0.062-0.51,0.101-0.742c0.211-0.3,0.461-0.255,0.731-0.057c0.501,0.373,1.002,0.759,1.724,0.606
+                       c-0.357-0.494-0.132-1.251-0.839-1.532c1.33-0.604,2.547-0.421,3.867,0.084c2.073,0.797,4.352,0.331,6.509,0.802
+                       c1.088,0.237,1.689-0.249,1.909-1.58c0.141-0.866,1.183-1.648,2.449-1.638c-0.713-0.251-1.425-0.504-2.135-0.755
+                       c0.291-0.863,1.262-1.056,1.744-1.758c0.268-0.391,0.622-0.576,0.093-1.088c-0.469-0.451-0.552-0.538-1.159-0.055
+                       c-0.707,0.566-1.777,0.676-2.773,0.825c0.414-0.872,1.731-1.035,1.365-2.373c-1.673,0.242-2.979,2.494-5.003,1.12
+                       c1.61-1.61-0.504-2.256-1.123-2.533c-1.481-0.663-2.464-1.868-3.751-2.7c-0.303-0.195-0.452-0.341-0.227-0.65
+                       c0.389-0.528,1.019-1.085,1.557-0.757c1.826,1.118,4.124,1.022,5.852,2.488c0.535,0.455,2.039,1.416,2.474-0.654
+                       c0.172-0.816,1.232-0.316,1.856-0.434c0.767-0.142,0.399,0.462,0.306,0.904c-0.051,0.236,0.334,0.821,0.486,0.808
+                       c1.43-0.125,2.736,0.481,4.107,0.867c0.092-0.844-0.529-1.05-0.771-1.475c-0.454-0.796-0.282-1.133,0.451-1.44
+                       c1.319-0.553,2.597-1.325,3.971-1.589c0.771-0.148,1.743-0.765,2.748,0.528c0.745,0.957,2.831,0.825,4.092,0.214
+                       c1.811-0.878,3.094-1.568,5.666-1.926c0.348-0.048,0.866-0.152,0.615-0.557c-0.681-1.095-0.675-2.592-1.467-3.406
+                       c-0.484-0.501-1.574-0.763-2.357-1.284c-0.429-0.285-0.794,0.474-1.076,0.886c-0.53,0.772-0.982,1.629-2.076,1.89
+                       c0-1.178,1.644-1.169,1.513-2.467c-0.449-0.184-0.848,0.272-1.215,0.327c-0.401-0.546,0.302-0.688,0.233-1.066
+                       c-0.479,0.396-0.908-0.211-1.439-0.032c-1.049,0.358-2.927,1.252-3.944,2.086c-0.497-0.829,0.835-1.234,0.351-2.174
+                       c-1.064,0.495-1.807,1.597-3.158,1.924c0.388-1.805,2.535-2.245,2.892-3.995c-0.922-0.282-0.743,0.94-1.484,0.972
+                       c-0.217-2.084-1.661-0.055-2.375-0.685c-0.197,1.695-2.106,0.389-2.51,1.626c-0.738-0.544-0.325-1.174-0.418-1.7
+                       c-0.142-0.792-0.478-1.099-1.24-0.696c-0.17,0.089-0.446,0.608-0.425,0.293c0.041-0.669-1.185-0.593-0.666-1.15
+                       c0.758-0.812,0.256-2.315,1.622-2.764c0.253-0.081,0.605-0.42,0.457-0.817c-0.062-0.168-0.315-0.356-0.497-0.375
+                       c-0.397-0.039-0.572,0.245-0.708,0.61c-0.176,0.47-0.409,0.927-0.688,1.344c-0.214,0.319-0.004,1.427-1.077,0.51
+                       c-0.28-0.239-1.713,0.788-2.267,1.65c-0.584-0.17,0.507-1.445-0.833-1.153c-0.183,0.04,0.043-0.687,0.117-0.702
+                       c1.501-0.287,0.03-0.772,0.055-1.157c-0.267,0.485-0.531,0.968-0.873,1.593c-0.312-0.929-0.743-1.352-1.599-0.796
+                       c-0.518,0.334-1.159-0.126-1.017-0.431c0.595-1.279-0.698-1.321-1.079-1.939c-0.236-0.383-1.102-0.14-0.891-0.819
+                       c0.157-0.512,0.7-0.671,1.246-0.791c0.439-0.097,1.357,0.083,0.841-1.05c-0.147-0.324,0.476-0.923-0.467-0.442
+                       c-0.865,0.445-0.835-1.002-1.663-0.658c0.299-0.765,0.97-0.508,1.489-0.78c-0.69-0.993-2.528-0.242-2.489-1.926
+                       c1.544-0.373,2.709,1.888,4.487,0.863c-0.469-0.106-0.281-1.075-0.988-0.844c-1.18,0.385-0.363-1.096-1.085-1.084
+                       c0.327-0.759,0.862,0.255,1.257-0.196c0.094-0.504-0.288-1.085,0.041-1.59c0.996-0.184-0.208,2.45,1.692,1.119
+                       c0.168,1.048-0.733,1.955-0.165,2.955c0.242,0.422-0.261,1.737,0.974,0.634c0.17-0.151,0.469,0.079,0.402,0.353
+                       c-0.434,1.813,0.758,1.005,1.433,0.863c1.202-0.251,2.253-1.15,3.604-0.899c-0.075,0.637-0.588,0.807-0.988,0.847
+                       c-0.654,0.063-0.97,0.27-0.826,0.945c0.124,0.589,0.572,0.979,1.096,0.863c1.124-0.249,1.86,0.147,2.625,0.95
+                       c0.934,0.976,2.183,0.572,3.763-1.096c-0.65-0.285-1.28-0.562-1.941-0.851c1.274-1.129,2.722,0.117,4.082-0.472
+                       c-1.001-1.551-2.459-2.401-4.227-3.039c1.495-0.334,3.143-0.418,2.409-2.598c-0.793-0.056-1.122,0.663-1.617,1.096
+                       c-0.533,0.468-1.546,0.893-1.728,0.556c-0.637-1.196-2.124-1.131-2.822-2.122c0.376-0.66,1.189-0.096,1.607-0.817
+                       c-0.531-0.125-1.433-0.015-1.159-0.912c0.221-0.721,0.93-0.413,1.338-0.28c0.781,0.252,1.573-0.33,2.346,0.176
+                       c0.293,0.193,0.652-0.136,0.711-0.521c0.109-0.702-1.524-2.072-2.25-1.914c-0.502,0.109-1.103,0.072-1.493,0.342
+                       c-1.136,0.787-1.334,0.028-1.491-0.91c-0.388,0.451-0.556,1.172-1.196,0.906c-0.569-0.235-0.059-0.772-0.081-1.173
+                       c-0.029-0.454-2.142-1.788-2.537-1.531c-0.686,0.445-1.37,0.314-2.385,0.193c1.064-0.863,1.854-1.58,3.183-1.353
+                       c-1.458-1.853-2.745-0.363-4.166,0.077c0.289-0.984,1.278-0.795,1.644-1.557c-1.362-0.28-2.347-1.265-4.016-1.874
+                       c2.291-0.209,3.912,0.265,5.277,1.514c0.423-0.394,0.202-0.757-0.151-1.23c0.967,0.038,1.264,0.719,1.687,1.143
+                       c0.255,0.255-0.177,1.083,0.583,0.997c0.945-0.112-0.265-1.028,0.423-1.306c1.635,0.77,3.309,0.647,4.999,0.217
+                       c-1.057-0.432-2.013-1.204-3.209-0.733c-0.129,0.05-0.456-0.047-0.457-0.085c-0.054-1.423-1.464-1.877-2.046-2.914
+                       c-0.051-0.091-0.098-0.183-0.147-0.276c2.293-1.011-0.246-1.747-0.059-2.777c1.441,0.691,2.486-0.508,3.744-1.016
+                       c-2.141-2.108,1.212-1.372,1.388-2.649c-1.489,0.369-2.892,0.808-4.372,0.248c0.063-0.331,0.478-0.378,0.785-0.559
+                       c0.485-0.287,1.228-0.585,1.062-1.171c-0.112-0.39-0.819-0.707-1.482-0.348c-0.213,0.117-0.626-0.136-1.062-0.25
+                       c0.576-0.397,1.431-0.43,1.436-0.927c0.009-0.697-0.754-0.692-1.342-0.755c-0.693-0.073-0.298-0.513-0.345-0.899
+                       c-0.091-0.749,0.156-0.502,0.61-0.489c1.701,0.052,3.334,0.129,3.78,2.258c0.608-0.2,0.756,0.723,1.363,0.555
+                       c0.788-0.215,0.077-0.612,0.126-0.914c0.04-0.251,0.204-0.467,0.459-0.411c0.49,0.108,0.692,0.818,1.325,0.665
+                       c-0.158,0.279-0.317,0.562-0.631,1.114c0.919-0.572,1.665-0.513,2.452-0.472c1.506,0.08,2.838-1.014,4.469-0.655
+                       c0.726,0.159,0.484-0.757,0.433-1.206c-0.064-0.587-0.531-0.272-0.799-0.198c-1.021,0.277-2.166-0.625-1.773-1.654
+                       c0.831-2.175-1.229-1.699-1.983-2.258c-0.692-0.511-1.759-0.511-2.748-0.757c0.437-0.742,1.047-0.761,1.567-0.936
+                       c0.879-0.297-0.03-0.814,0.151-1.231c0.146-0.333-0.085-0.405-0.482-0.385c-1.958,0.104-3.867,0.025-4.46-2.441
+                       c0.775,0.038,1.68,0.593,2.729,0.061c-0.531-0.661-1.733-0.648-1.756-1.756c1.032-0.606,1.756,0.192,2.635,0.517
+                       c2.064,0.761,4.183,1.378,6.299,1.982c0.838,0.238,1.728,0.899,2.597,0.024c0.739,1.086,2.073,0.678,3.052,1.201
+                       c0.373,0.2,1.565,1.582,1.214-0.472c-0.01-0.053,0.134-0.187,0.215-0.195c1.998-0.221,0.652-0.972,0.201-1.548
+                       c0.101-0.053,0.156-0.108,0.204-0.1c0.975,0.14,1.984,0.282,2.668-0.632c0.344-0.463-0.757-0.858-1.693-0.504
+                       c-0.312,0.117-0.544,0.443-0.856,0.568c-0.796,0.316-1.376-0.109-1.07-0.846c0.308-0.738-0.261-0.449-0.448-0.487
+                       c-0.943-0.189-1.871-0.385-2.58-1.142c0.237-0.361,0.692-0.034,0.89-0.225c0.533-0.514,1.55,0.462,1.722-0.417
+                       c0.174-0.891-0.903-1.287-1.481-1.616c-0.717-0.409-1.191-0.521-0.59-1.401c0.128-0.186-0.019-0.824-0.214-0.931
+                       c-1.311-0.715-1.444-2.469-2.867-3.141c0.582-0.353,0.96,0.257,1.391,0.225c0.828-0.059,1.486-0.63,1.546-1.384
+                       c0.051-0.647-0.816-0.585-1.306-0.734c-0.37-0.113-0.926,0.099-1.162-0.108c-0.543-0.477,0.557-0.681,0.361-0.784
+                       c-0.335-0.18-0.063-1.698-1.066-0.563c-0.085,0.096-0.677,0.389-0.798-0.208c-0.073-0.365-0.079-0.7,0.437-0.723
+                       c0.261-0.012,0.603,0.098,0.661-0.47c-0.457-0.232-1.084-0.136-1.521-0.588c-0.414-0.431-0.979-0.714-1.841-1.316
+                       c1.094,0.234,1.794,0.419,2.506,0.525c0.62,0.094,0.955,1.044,1.747,0.567c-0.548-0.69,0.761-0.807,0.427-1.598
+                       c-0.448-1.056-1.361-0.129-1.909-0.648c0.389-0.872,1.304-0.462,1.969-0.842c-1.03-0.923-2.746-0.653-3.391-2.231
+                       c1.418,0.432,2.711,1.031,4.144,1.067c0.606,0.014,1.052,0.486,1.406,0.911c1.307,1.581,2.332,1.433,3.218-0.513
+                       c-0.047-0.032-0.094-0.068-0.145-0.096c-0.662-0.357-1.86,0.662-1.939-0.155c-0.095-0.969,1.296-0.661,2.19-1.05
+                       c-1.138-0.717-1.722-2.22-3.489-1.54c0.255-1.828,2.213-2.035,2.952-3.423c-1.296-0.286-2.175,0.081-2.712,1.461
+                       c-0.567-1.354,0.69-1.807,0.762-2.668c-1.811-0.544-2.229,0.795-2.584,2.225c-0.657-0.37-0.024-2.004-1.415-1.256
+                       c-0.036,0.02-0.384-0.396-0.469-0.65c-0.127-0.381,0.217-0.462,0.491-0.536c0.433-0.113,0.883-0.338,1.301-0.292
+                       c1.398,0.145,1.712-0.457,1.294-1.909c-0.843,1.148-2.084,1.148-3.233,1.785c0.032-1.459,1.398-1.104,1.992-1.857
+                       c-1.46-0.127-2.52,0.5-3.846,1.538c0.566-1.209,0.188-1.795-0.723-1.963c0.324-0.666,1.015-0.456,1.204-1.152
+                       c-0.952,0.649-1.499-0.421-2.321-0.404c-0.14,0.002-0.627,0.276-0.404-0.317c0.446-1.193-0.006-1.189-0.911-0.7
+                       c-0.266,0.143-0.745,0.107-0.917-0.215c-0.229-0.429,0.229-0.401,0.463-0.493c0.35-0.138,0.237-0.458,0.053-0.493
+                       c-0.962-0.179-0.561-1.1-1.238-1.803c0.87,0.112,1.397-0.023,1.835,0.569c0.178,0.238,0.639,0.477,0.887,0.409
+                       c0.542-0.15-0.363-0.702,0.265-1.02c0.873,0.963,1.835,1.949,3.303,1.888c0.529-0.023,0.499,0.102,0.49,0.532
+                       c-0.004,0.273,0.297,0.77,0.497,0.789c1.342,0.123,2.406,1.024,3.699,1.247c0.362,0.063,0.803-0.026,0.875-0.383
+                       c0.141-0.721-0.987-0.441-1.019-1.355c2.684,1.607,6.05,1.107,8.303,3.543c0.406-0.797,0.107-1.423-0.031-2.106
+                       c0.603-0.279,0.48,0.752,1.132,0.514c-0.087-0.549,0.5-1.381-0.058-1.755c-0.403-0.272-1.31-0.102-1.818,0.535
+                       c-0.327,0.41-0.773,0.478-1.198,0.053c-0.437-0.437,0.005-0.662,0.168-1.01c0.24-0.513,0.703-1.336-0.571-1.091
+                       c-0.361,0.068-0.648,0.043-0.493-0.335c0.451-1.101-0.484-0.74-0.877-1.074c-0.747-0.636-1.235-1.581-2.317-1.883
+                       c2.292,0.1,4.42,0.787,6.571,1.353c0.722,0.191,1.025,0.07,0.762-0.692c-0.229-0.666,0.158-1.197,0.391-1.938
+                       c-0.926,0.299-1.253,1.12-2.034,1.59c-0.429-1.133-1.731-1.014-2.547-1.841c-0.855-0.863-0.949-2.165-2-2.826
+                       c0.442-0.73,1.077,0.081,1.529-0.181c0.429-0.248,0.779-0.629,1.168-0.956c0.631,0.316-0.132,1.633,0.382,1.28
+                       c0.966-0.663,2.831,0.136,3.067-1.877c-1.655,1.088-3.517-1.263-5.09,0.706c1.148-1.003,0.764-2.339,1.307-3.645
+                       c-1.148,0.632-2.199,0.117-3.331,0.544c-0.691,0.26-2.425,0.535-2.999-0.502c-0.705-1.271-2.179,0.373-2.603-1.037
+                       c0.32-0.839,1.35-0.862,1.996-1.405c-0.387-0.376-0.709-0.702-1.13-0.513c-0.849,0.387-1.593,0.233-2.304-0.289
+                       c-0.178-0.131-0.728-0.25-0.472-0.378c0.378-0.191,0.179-0.967,0.909-0.746c0.758,0.231,1.57,0.282,2.39,0.419
+                       c-0.466-1.948-0.466-1.948-1.684-1.816c0.095-1.015,1.223-0.901,1.707-1.526c-1.185-0.313-1.185-0.313-3.116,0.819
+                       c0.02-0.859,0.561-1.489,1.009-2.652c-1.07,1.12-2.098,1.067-3.313,1.116c0.555-1.131,1.693-0.873,2.336-1.429
+                       c-0.942-0.572-2.926-1.035-4.525-1.054c0.117-0.587,0.786-0.378,1.119-0.781c-0.671-0.424-1.574-0.287-1.979-0.065
+                       c-0.966,0.535-0.501-0.734-1.132-0.723c-0.316,0.006,0.021-0.467,0.416-0.456c0.017-1.357,1.071-0.407,1.585-0.686
+                       c0.295-0.158,0.936,0.437,0.949-0.44c0.004-0.31,0.416-0.377,0.422-0.254c0.058,1.278,1.939,1.05,1.911,2.419
+                       c-0.016,0.755,0.612,1.01,1.428,1.122c0.032-0.862-1.842-1.977,0.259-2.495c-0.004-0.611-0.775-0.558-0.98-0.993
+                       c0.164-0.117,0.247-0.231,0.328-0.229c1.083,0.015,1.975,0.493,3.302,0.104c1.533-0.448,3.646,0.017,5.266,1.141
+                       c0.79,0.549,1.776,1.332,1.865-0.589c0.019-0.413,0.762-0.362,0.669-0.921c-0.943-0.508-1.342,0.208-1.731,0.993
+                       c-0.342-1.108-2.153-2.006-3.028-1.654c-0.873,0.35-0.873,0.35-2.168-0.279c0.949-0.602,2.198-0.258,2.981-1.083
+                       c-1.017-1.264-1.788-0.219-2.554,0.303c-0.521-0.57,0.658-0.765,0.163-1.165c-0.204-0.167-0.705-0.138-0.981-0.008
+                       c-0.548,0.259-1.157,0.636-1.432-0.138c-0.259-0.73,0.72-0.506,0.997-0.89c0.085-0.117,0.257-0.171,0.586-0.377
+                       c-1.559-0.461-3.094-0.729-3.725-2.389c1.896,0.241,3.946,0.144,4.664,2.702c0.539-0.533,0.231-1.101,0.488-1.58
+                       c0.125,0.045,0.337,0.059,0.376,0.15c0.556,1.275,2.044,1.665,2.688,2.862c0.245,0.456,0.527,0.06,0.833-0.007
+                       c1.372-0.294,2.752-0.637,3.826,0.818c0.253,0.344,0.729,0.289,0.722-0.529c-0.01-1.017,0.648-1.319,1.19-0.592
+                       c0.511,0.684,1.259,1.369,1.769,1.661c1.159,0.667,2.922,1.282,4.019,0.847c2.324-0.922,2.213-1.203,3.577-1.21
+                       c-0.682-0.569-1.226-0.979-1.383-1.86c-0.098-0.555-1.17-0.181-1.869,0.234c0.187-1.16,1.032-1.559,1.581-2.182
+                       c0.256-0.287,0.401-0.624,0.12-0.922c-0.356-0.374-0.581,0.036-0.841,0.229c-1.242,0.912-2.79,0.27-3.1-1.287
+                       c-0.202-1.019-1.038-0.557-1.435-0.441c-0.956,0.28-1.5-0.157-2.169-0.693c-0.856-0.687-0.435-1.095,0.359-1.646
+                       c-1.677-0.276-3.039-0.818-4.058-2.02c1.229-0.136,2.423-0.598,3.387,0.824c0.535,0.788,1.134,0.224,1.132-1.062
+                       c0.917,1.574,1.563,2.686,3.105,2.641c0.333-0.011,0.276,0.432,0.38,0.676c0.144,0.342,0.565,0.447,0.649,0.183
+                       c0.255-0.787,0.566-1.665,0.601-2.392c0.039-0.883-0.322-2.065-1.367-2.573c-0.252-0.123-0.663,0.155-1.108-0.183
+                       c1.017-0.705,1.821-1.565,2.372-2.617c-0.077-0.083-0.109-0.146-0.149-0.151c-2.686-0.367-2.999-0.413-2.691-2.508
+                       c0.198-1.349-0.55-1.595-1.269-2.185c1.278-0.665,2.783,0.437,3.877-0.937c-1.812-0.727-0.361-1.93-0.456-2.994
+                       c0.758,1.249,2.079,1.965,2.722,3.279c0.24,0.491,0.645,1.212,1.472,0.443c0.439-0.405,0.805-0.268,0.749,0.474
+                       c-0.059,0.765,0.752,0.54,1.123,0.829c0.047,0.036,0.391-0.198,0.495-0.369c0.315-0.517-0.204-0.657-0.45-0.944
+                       c-0.626-0.74-1.727-1.412-0.306-2.475c0.351-0.261,0.334-0.759-0.255-1.099c-0.469-0.272-0.753-0.424-1.129,0.062
+                       c-0.23,0.299-0.263,0.801-0.85,0.837c-0.603-0.926,0.89-1.143,0.659-2.043c-0.62-0.113-0.757,0.756-1.3,0.748
+                       c-0.306-0.261,0.363-1.42-1.011-0.782c-1.329,0.619-1.686,0.161-1.501-1.146c0.057-0.392-0.351-0.657-0.429-0.61
+                       c-1.319,0.776-0.495-1.002-1.162-0.962c0.138-0.829,0.941-0.4,1.38-0.697c0.217-0.146,0.737,0.437,0.984-0.191
+                       c-0.816-0.155-0.242-1.635-1.164-1.431c-1.102,0.244-1.616-1.317-2.718-0.689c0.012-0.802-0.253-1.497-0.899-2.125
+                       c0.892,0.365,1.693,0.842,2.451-0.072c0.149-0.179,0.493-0.168,0.61,0.043c0.692,1.246,1.783,1.719,3.141,1.866
+                       c0.197,0.022,0.316,0.762,0.471,1.17c1.586-0.944,2.353,1.289,3.788,0.982c0.319-0.068,0.597,0.34,1.02-0.146
+                       c0.331-0.377,1.117,0.329,0.915,0.871c-0.159,0.428,0.006,0.704,0.336,0.85c0.571,0.251,0.359-0.367,0.539-0.557
+                       c0.525-0.566,1.03-1.15,1.544-1.73c0.365,0.257,0.187,0.493,0.002,0.71c-0.31,0.365-0.671,0.818-0.238,1.2
+                       c0.401,0.354,0.678-0.204,0.971-0.435c0.422-0.329,0.872-0.857,0.983,0.215c0.027,0.257,0.055,0.515,0.282,0.072
+                       c0.531-1.033,1.249-0.11,1.506,0.085c1.098,0.829,1.527,0.731,2.132-0.825c-1.293,0.672-2.094-0.999-3.546-0.378
+                       c0.342-0.701,1.777-1.284,0.029-1.548c-0.837-0.127-1.613-0.662-2.414-1.02c-0.102-0.045-0.181-0.14-0.272-0.212
+                       c-1.523,2.113-2.215-1.108-3.544-0.234c0.131-1.014,0.832-0.575,1.138-0.921c-0.291-0.494-0.854-0.649-1.281-0.528
+                       c-1.599,0.454-1.915-0.324-1.607-1.874c-0.854,0.423-1.574,0.899-1.604-0.522c-0.012-0.498-0.934-0.555-1.516-0.409
+                       c-0.429,0.107-0.785,0.503-1.469,0.294c1.25-0.615,0.747-1.355,0.335-2.14c-0.666-1.268-1.236,0.454-1.905-0.072
+                       c0.597-1.213-0.556-1.435-1.722-2.124c2.224,0.11,3.753,0.731,5.317,1.664c0.457-0.252,0.017-0.889,0.23-1.46
+                       c0.412,0.197,0.988,0.284,1.121,0.576c0.206,0.452-0.257,1.344,0.508,1.383c0.41,0.023,1.096-0.673,1.24-1.17
+                       c0.217-0.741-0.629-0.953-1.13-1.3c-0.055-0.038-0.023-0.2-0.053-0.556c1.257,1.008,3.156,0.639,3.757,2.465
+                       c0.442-0.385,0.998,0.025,1.444-0.2c0.342-0.172,0.488-0.482,0.291-0.869c-0.195-0.387-0.402-0.653-0.935-0.443
+                       c-0.431,0.17-0.896,0.019-1.318-0.199c0.025-0.845,1.354,0.233,1.221-0.859c-0.094-0.795-0.432-1.204-1.275-1.016
+                       c0.092-1.349-0.743-1.205-1.641-1.072c-0.236,0.034-0.352-0.438-0.236-0.532c1.236-1.001-0.125-1.558-0.601-2.559
+                       c1.047,0.451,1.763,1.225,2.708,0.618c0.214-0.138,0.516,0.049,0.459,0.306c-0.336,1.533,1.484,1.208,1.813,2.15
+                       c0.297-0.131,1.009,0.698,0.898-0.445c-0.049-0.508,0.444-0.4,0.758-0.223c0.563,0.314,1.137,0.604,1.797,0.473
+                       c0.456-0.091,1.212,0.329,1.298-0.395c0.074-0.607-0.578-0.749-1.132-0.786c-0.13-0.008-0.251-0.144-0.348-0.202
+                       c0.072-0.783,0.942-0.671,1.191-1.274c-1.088-0.765-2.056,0.88-3.16,0.058c-0.094-0.498,0.792-0.532,0.716-1.171
+                       c-0.975-0.149-1.379,1.675-2.557,0.816c0.021-0.835,1.085-0.242,1.25-0.938c-1.666-0.444-2.635-3.072-5.083-1.241
+                       c0.191-1.281-0.123-2.102-1.279-2.257c0.461-0.861,1.805,0.995,1.896-0.793c0.005-0.119,0.391,0.087,0.519,0.261
+                       c0.854,1.165,2.627,1.196,3.249,2.643c0.477-0.353,1.019,1.084,1.603-0.153c0.291-0.615,1.083-0.24,1.568,0.355
+                       c0.312,0.384,0.709,1.289,1.271,0.725c0.557-0.562,0.882-1.491,1.003-2.303c0.095-0.651-0.623-0.581-1.155-0.613
+                       c-0.996-0.059-1.083-0.967-1.377-2.045c-0.326-1.189-0.777-2.577-2.136-3.317c1.591-0.466,2.903,0.918,4.438,0.233
+                       c0.686-0.305,0.948,1.625,2.052,0.685c0.813,1.169,1.773,1.561,2.996,0.576c0.107,0.241,0.217,0.486,0.346,0.773
+                       c0.55-0.955,0.451-1.976-0.214-2.577c-1.155-1.042-0.795-1.462,0.409-1.862c0.12-0.039,0.179-0.272,0.315-0.49
+                       c-0.505-0.215-1.058,0.589-1.13,0.246c-0.524-2.483-2.319-0.962-3.793-1.062c0.661-0.8,1.682-0.385,2.033-1.225
+                       c-1.27-0.36-2.98,0.31-3.642-1.524c0.253-0.42,1.529,0.748,1.151-0.695c0.582-0.116,0.771,0.522,1.268,0.666
+                       c0.562,0.163,1.074,1.352,1.624,0.507c0.484-0.742-0.9-0.553-1.202-1.165c0.567-0.24,1.109-0.47,1.985-0.84
+                       c-1.231-0.176-2.102,0.597-2.987-0.04c0.518-0.834,1.582-0.024,2.329-0.969c-1.304-0.124-1.862-1.557-3.295-1.316
+                       c-0.162,0.027-0.372-0.218-0.561-0.338c1.493-1.197-0.563-1.468-0.611-2.863c1.123,1.879,3.446,1.471,4.017,3.526
+                       c0.166,0.602,0.865,0.466,1.33,0.65c-0.066-0.871,1.161-0.463,1.289-1.461c0.127-0.977-0.425-0.836-0.81-1.248
+                       c-1.24-1.31-2.811-2.027-4.321-2.99c1.367,0.579,2.794,0.286,4.164,0.506c0.635,0.099,1.056-0.295,1.574-0.459
+                       c0.102-0.032,0.144-0.261,0.212-0.398c-1.452,0.102-0.39-1.208-0.966-1.739c-0.996-0.914,0.259-0.8,0.696-1.031
+                       c-1.199-0.932-1.577-2.563-3.087-3.203c1.331-0.384,2.402,2.516,3.72,0.06c0.763-1.423-1.227-1.227-1.255-2.324
+                       c1.024,0.066,1.394,0.933,1.952,1.465c0.491,0.47,1.049,0.749,1.385,0.142c0.25-0.449,1.076-1.139,0.125-1.741
+                       c-0.231-0.146-0.382-0.255-0.291-0.5c0.399-1.067,0.406-1.064-0.654-1.463c-0.026-0.008-0.015-0.108-0.025-0.189
+                       c0.6-0.721,1.248,0.44,1.987-0.11c-1.142-1.61-2.096-3.33-2.582-5.299c0.501,0.79,1.028,1.563,1.495,2.373
+                       c0.246,0.429,0.554,0.706,1.01,0.875c0.273,0.101,0.542,0.274,0.782,0.005c0.281-0.315-0.193-0.511-0.187-0.676
+                       c0.024-0.777-1.601-1.623,0.196-2.41c0.549-0.241-0.587-0.99-0.665-1.819c2.272,0.961,2.2-0.791,2.45-2.306
+                       c0.661,0.486,0.232,0.953,0.325,1.308c0.136,0.518-1.129,2.106,0.909,1.306c0.156-0.061,0.376-0.014,0.353,0.228
+                       c-0.024,0.256,0.095,0.646-0.329,0.667c-0.605,0.03-0.958,0.308-1.102,0.915c0.35,0.466,1.796-0.232,1.284,1.33
+                       c-0.136,0.42,1.396,0.761,2.116,1.271c0.864,0.611,0.649,0.935,0.505,1.658c-0.058,0.287-0.973,0.281-0.274,0.795
+                       c0.416,0.306,0.86,0.207,1.081-0.031c0.673-0.726,1.351-0.995,2.139-0.277c0.481,0.441,0.39,0.071,0.585-0.231
+                       c0.345-0.534,0.567-1.282,1.587-1.041c0.354,0.082,0.611-0.047,0.9,0.361c0.518,0.731-0.444,0.43-0.474,0.788
+                       c-0.018,0.185-0.261,0.353-0.407,0.526c-0.234,0.278-0.856,0.075-0.818,0.71c0.041,0.683,0.633,0.56,1.007,0.743
+                       c0.289,0.14,0.609,0.216,1.351,0.468c-1.857,0.186-3.044,1.029-4.505,1.335c0.72,0.868,1.945,0.526,2.699,1.208
+                       c0.062,0.055,0.642-0.243,0.654-0.397c0.071-1.069,0.782-0.686,1.377-0.736c0.424-0.036,0.649-0.646,1.316-0.646
+                       c-0.104,0.674-2.096,1.507,0.015,2c-0.155,0.438,0.164,1.123-0.783,1.117c-0.523-0.002-1.321-0.361-1.444,0.914
+                       c-0.086,0.902-1.326-0.426-1.922,0.298c0.161,1.156,1.408,0.627,2.14,1.303c-0.996,0.293-1.828,0.645-2.786,0.556
+                       c-0.533-0.051-0.86,0.284-1.026,0.761c-0.24,0.691,0.398,0.844,0.75,0.92c1.106,0.236,2.238,1.617,3.363,0.032
+                       c0.534,0.568,1.277,0.33,1.888,0.536c0.204,0.068-0.182,0.517-0.575,0.56c-0.351,0.04-0.938-0.213-0.913,0.441
+                       c0.023,0.653,0.662,0.155,0.972,0.386c0.251,0.187,0.616,0.218,1.107,0.374c-1.416,0.856-2.744,1.586-4.209,2.016
+                       c-0.374,0.108-1.06-0.34-0.979,0.443c0.049,0.47,0.65,0.565,1.144,0.555c0.156-0.004,0.315,0.101,1.026,0.348
+                       c-1.527,0.157-2.676,0.096-3.285,1.161c-0.214,0.374-0.779,0.664-0.469,1.177c0.431,0.708,0.732-0.153,1.123-0.174
+                       c2.139-0.11,4.277-0.249,6.448-0.38c-0.071,0.916-1.031,0.289-1.156,0.806c-0.102,0.426-0.161,1.061,0.074,1.319
+                       c0.294,0.324,1.275,0.573,1.326,0.485c0.552-0.952,1.563-0.569,2.264-0.692c0.997-0.174,0.817-1.136,1.46-1.482
+                       c0.302-0.165,0.274-0.723,0.812-0.159c0.851,0.893,2.046,0.786,3.17,0.765c-0.276,1.187-1.089,1.415-2.151,1.298
+                       c-0.323-0.036-0.934,0.058-0.956,0.18c-0.272,1.402-0.94,1.64-2.293,1.23c-0.795-0.242-0.614,1.012-1.102,1.452
+                       c-0.395,0.353,0.049,0.484,0.312,0.713c0.56,0.493,0.658,0.199,1.17-0.168c0.527-0.376,1.614,0.066,1.824-1.107
+                       c0.021-0.119,0.236,0.061,0.334,0.21c0.482,0.725,1.305,0.608,1.645,0.15c0.937-1.257,2.428-0.956,3.613-1.683
+                       c-0.317,1.982-2.247,1.418-3.226,2.304c0.252,0.392,1.006,0.452,0.692,1.159c-0.125,0.282-0.295,0.325-0.527,0.253
+                       c-0.52-0.159-1.295-0.568-1.408,0.178c-0.123,0.81,1.024,0.021,1.313,0.638c-0.079,0.492-0.516,0.354-0.816,0.407
+                       c-0.416,0.072-0.949-0.183-1.036,0.561c-0.03,0.255-0.068,0.447,0.164,0.572c0.482,0.259,0.881-0.029,1.28-0.239
+                       c0.525-0.279,2.16-0.587,3.241-0.613c0.155-0.004,0.352-0.1,0.454-0.219c1.018-1.173,2.478-0.653,3.772-1.124
+                       c-0.79,1.722-2.232,1.759-3.836,1.739c1.1,0.738,0.461,1.854,1.232,2.952c-1.48-0.626-1.529-2.773-3.102-2.117
+                       c-0.4,0.166-0.924,1.292-0.667,2.452c-1.001-0.84-1.724-0.81-2.576-0.142c-0.939,0.733-1.882,1.552-3.139,1.758
+                       c-0.329,0.053-0.856,0.072-0.773,0.462c0.077,0.365,0.421,0.902,1,0.655c0.756-0.321,1.43,0.417,2.196,0.078
+                       c0.408-0.18,0.635,0.183,0.673,0.553c0.032,0.327-0.236,0.481-0.515,0.598c-0.861,0.365-0.863,0.365-1.443,1.465
+                       c-0.102,0.192-0.216,0.168-0.392,0.119c-0.867-0.246-1.491,0.173-1.374,0.987c0.155,1.078,1.08,1.546,2.117,1.601
+                       c0.407,0.023,0.807-0.485,1.446,0.134c-1.525-0.09-1.166,2.017-2.707,1.854c1.719,0.261,3.327-0.349,4.99-0.441
+                       c0.966-0.051,1.631-0.244,2.085,0.875c-0.32,0.293-1.627-0.756-1.189,0.711c0.019,0.066-0.321,0.321-0.338,0.306
+                       c-1.123-0.95-2.456,0.382-3.589-0.336c-0.458-0.289-1.008-0.576-1.356,0.013c-0.387,0.657,0.363,0.746,0.706,0.905
+                       c1.014,0.474-0.756,0.462-0.125,1.006c0.958,0.828,3.787,0.978,4.867,0.068c0.221-0.187,0.408-0.119,0.587-0.026
+                       c0.263,0.132,0.728,0.332,0.775,0.136c0.503-2.09,2.425-0.318,3.395-1.275c0.317-0.313,0.967-0.241,0.829-0.991
+                       c-0.221-1.206,1.066-0.809,1.125-0.696c0.671,1.3,1.865,0.585,2.877,0.706c-0.484,0.893-0.957,1.523-1.997,1.261
+                       c-1.054-0.265-0.047,0.872-0.863,1.23c-1.522,0.668-2.896,1.612-4.833,1.461c0.389,0.63,1.368,0.935,0.849,1.593
+                       c-0.386,0.491-0.851-0.098-1.303-0.338c-0.78-0.419-1.6,0.104-1.943,0.668c-0.943,1.558-2.789,1.456-4.006,2.451
+                       c-1.032,0.845-2.162,0.938-3.37,0.432c-0.102-0.043-0.306-0.1-0.318-0.079c-0.967,1.944-2.685,0.656-4.386,0.912
+                       c1.234,0.605,2.173,1.066,3.116,1.528c-0.969,1.378-2.442,0.084-3.502,0.836c1.183,2.074,3.659,1.007,5.375,2.085
+                       c-0.635,0.473-1.162,0.866-1.878,1.398c1.321-0.032,2.315-0.709,3.542-0.409c0.825,0.203,1.283-1.029,1.774-1.675
+                       c0.512-0.675-0.758-0.681-0.786-1.425c0.79-0.626,1.852,0.303,2.676-0.27c0.796-0.553,1.614-1.05,2.58-1.105
+                       c0.238-0.935-1.047-0.936-0.899-1.895c1.343,0.385,2.959,1.941,3.832-0.629c0.694,0.577,0.046,1.025,0.112,1.597
+                       c1.007-0.468,1.803,0.665,2.867,0.356c-0.454,0.381-0.909,0.764-1.353,1.136c1.924,1.065,2.298,0.888,2.778-1.455
+                       c0.537,0.617,1.153,1.932,1.552,0.011c0.055-0.258,0.297-0.3,0.546-0.179c1.189,0.579,2.064,0.42,3.037-0.666
+                       c0.552-0.616,1.792-0.61,2.984-0.962c-0.364,0.776-1.578,1.039-0.608,2.005c-1.633-0.382-1.633-0.382-3.414,0.574
+                       c0.235,0.341,0.594,0.191,0.883,0.234c0.28,0.043,0.581-0.006,0.941,0.491c-0.831-0.031-1.34,0.736-2.183,0.337
+                       c-0.362-0.171-0.612-0.119-0.256,0.288c0.557,0.643-0.537,0.614-0.39,1.065c-1.261-0.342-1.754,1.401-3.256,1.063
+                       c-0.805-0.181-2.308,0.593-2.34,2.207c-0.03,1.542-0.891,0.904-1.516,0.44c-0.97-0.719-0.939-0.753-1.198,0.394
+                       c-0.099,0.439-0.618,0.845-0.809,0.681c-1.327-1.143-1.739,0.281-2.47,0.801c0.996,0.785,1.85,1.85,3.462,1.589
+                       c-0.559,1.197-1.886,1.837-1.657,3.238c-1-0.253-1.722,0.836-2.592,0.643c-0.544-0.122-0.854-0.194-0.667,0.348
+                       c0.488,1.416-0.451,1.817-1.413,2.116c-0.66,0.204-0.944,0.812-1.526,1.059c1.21,1.21,1.83-0.548,2.841-0.567
+                       c0.665-0.014,1.096-0.314,1.417,0.56c0.206,0.561,0.762,1.185,1.391,1.164c0.966-0.031,0.231-0.979,0.505-1.313
+                       c0.278-0.336,0.467-0.93,1.09-0.914c1.31,0.035,1.513-0.263,1.052-1.545c0.598-0.259,0.931,0.69,1.532,0.367
+                       c0.284-0.68-0.555-0.616-0.682-1.019c0.811-0.573,1.701-0.109,2.544-0.255c0.935-0.16-0.072,0.928,0.355,1.323
+                       c3.134-1.788,6.337-3.456,10.066-3.985c-0.98,1.884-2.699,2.729-4.211,3.918c-2.024,1.591-3.968,1.451-6.216,1.185
+                       c-0.221,0.847,0.915,0.938,0.915,1.659c-0.996-0.117-2.013-0.089-2.977-0.731c0.851,1.038,1.561,1.926,1.573,3.329
+                       c0.005,0.801,0.621,1.891-0.089,2.331c-0.716,0.446-2.002,1.173-2.759-0.618c0.604,0.592,0.364,1.108,0.364,1.576
+                       c-0.002,0.316-0.141,0.575-0.451,0.647c-0.409,0.093-0.373-0.327-0.537-0.528c-0.34-0.409-0.342-1.247-1.098-1.073
+                       c-0.136,0.032-0.584,0.6-0.732,1.099c-0.293,0.992,0.69,0.706,0.894,1.069c1.234,2.213,3.298,0.846,4.944,1.227
+                       c0.101,0.022,0.222-0.036,0.331-0.057c-0.771-2.212,1.801-0.034,1.697-1.401c0.029-0.586-1.012-0.299-0.975-0.991
+                       c0.416-0.711,2.979,1.688,1.582-1.466c0.998,0.304,1.818,0.581,2.61-0.146c-0.128,0.257-0.259,0.515-0.389,0.774
+                       c1.255,0.327,2.308-0.551,3.506-0.598c0.429-0.017,0.506-0.329,0.393-0.755c-0.083-0.322,0.31-0.655,0.484-0.476
+                       c1.47,1.513,1.593-0.37,2.298-0.904c0.769,0.541,1,1.537,0.894,2.186c-0.128,0.804-1.181,0.683-1.935,0.706
+                       c-0.363,0.011-1.155-0.218-0.537,0.655c0.049,0.07,0.042,0.181,0.06,0.274c-0.219-0.026-0.474,0.013-0.648-0.087
+                       c-0.646-0.375-1.083-0.129-1.548,0.479c0.702,0.06,1.312,0.112,2.166,0.186c-0.594,0.652-0.544,1.776-1.856,1.017
+                       c-0.412-0.238-0.811,0.742-1.523,0.645c0.567,0.816,1.115,1.248,2.102,0.767c0.536-0.261,1.528-0.398,1.634,0.251
+                       c0.101,0.625,0.295,1.76-0.984,2.011c-0.516,0.102-1.666-0.566-1.376,1.055c0.124,0.697-0.35,0.781,0.945,2.01
+                       c-2.49-0.658-2.705,2.86-5.054,2.351c-0.134,0.555,1.196,1.061,0.323,1.436c-0.599,0.259-0.896,1.743-1.969,0.716
+                       c-0.199-0.188-0.541-0.325-0.685,0.107c-0.138,0.416,0.048,0.678,0.475,0.717c0.694,0.065,1.285,0.354,2.173,0.845
+                       c-2.175,0.314-4.067,1.97-5.825-0.489c-0.38,0.496,0,1.961-1.364,1.097c-0.312-0.196-1.304-1.063-1.641,0.21
+                       c-0.27,1.028-0.123,1.924,1.025,2.388c0.378,0.151,0.811-0.226,1.162,0.193c-0.274,0.719-1.856,0.361-1.446,1.71
+                       c0.051,0.171-0.425,0.282-0.722,0.11c-0.525-0.302-1.06-0.246-1.606-0.036c0.096,0.727,0.858,0.973,0.892,1.907
+                       c0.028,0.786,1.578,0.599,2.404,0.244c1.147-0.496,2.243-0.464,3.417-0.228c0.476,0.094,1.094,0.068,1.499-0.161
+                       c2.275-1.291,4.67-2.168,7.257-2.587c1.562-0.253,0.193-0.922,0.078-1.652c2.529,0.333,5.022,0.576,7.624-0.2
+                       c-1.206,1.899-2.72,2.792-4.596,3.313c-0.312,0.087-1.102,0.842-1.437,1.344c-0.493,0.738,0.496,1.203,1.006,1.46
+                       c0.686,0.341,1.75,1.951,2.194-0.29c0.178-0.898,1.463,0.346,1.603-0.759c0.665,0.089,0.257,0.459,0.193,0.739
+                       c1.404,0.149,0.51,1.655,1.281,2.197c0.134,0.093,0.053,0.348-0.149,0.407c-1.492,0.423-1.854,2.473-3.61,2.509
+                       c-0.235,0.006-0.395-0.043-0.288,0.338c0.369,1.292-0.667,1.341-1.629,1.497c0.713,0.809,2.289,0.146,2.304,1.692
+                       c0,0.161,0.888-0.058,0.966-0.331c0.393-1.381,1.202-1.027,1.984-0.464c0.412-0.707-0.436-0.596-0.419-0.989
+                       c0.113-0.053,0.244-0.164,0.3-0.136c1.257,0.66,2.238,0.397,3.094-0.755c0.32-0.43,2.134-0.772,3.007-1.035
+                       c0.873-0.264,1.422-1.448,2.486-1.169c0.808,0.211,1.496,0.058,2.198-0.29c0.249,0.705-0.148,0.807-0.566,0.885
+                       c-0.324,0.06-0.89,0.156-0.508,0.55c0.707,0.727-0.009,0.682-0.344,0.804c-0.314,0.116-0.962,0.155-0.96,0.174
+                       c0.17,1.611-1.227,2.026-2.173,2.523c-0.792,0.417-1.966,0.517-2.83,0.267c-0.999-0.288-1.58,0.101-2.283,0.547
+                       c-0.2,0.126-0.27,0.147-0.236,0.458c0.217,1.974-0.711,2.852-2.663,2.498c-1.06-0.191-1.54,0.759-2.075,1.21
+                       c-0.486,0.409,0.502,0.868,1.054,1.172c0.39,0.215,1.161,0.415,0.775,1.092c-0.291,0.513-0.701-0.053-1.003-0.206
+                       c-0.526-0.267-1.312,0.189-1.631-0.602c-0.225,0.66-0.622,1.317-0.626,1.978c-0.006,0.575,0.673,0.519,1.119,0.385
+                       c1.761-0.52,3.517-1.065,5.267-1.621c0.14-0.044,0.274-0.36,0.344-0.339c2.457,0.78,4.221-1.148,6.352-1.605
+                       c0.76-0.162,1.624,0.331,2.301-0.611c-0.048,1.305-1.802,1.508-1.269,2.896c0.087,0.226-0.455,0.209-0.725,0.242
+                       c-1.89,0.217-2.111,0.556-1.471,2.34c-0.818,0.265-1.767-1.387-2.379-0.02c-0.444,0.989,1.245,0.543,1.323,1.461
+                       c-0.822,0.032-1.658-0.43-2.467,0.029c-0.234,0.132-0.767-0.135-0.608,0.499c0.117,0.464,0.317,0.729,0.846,0.542
+                       c0.365-0.128,0.864-0.684,1.029,0.151c0.119,0.607-0.258,0.842-0.87,1.02c-1.049,0.304-2.105,0.615-2.616,1.871
+                       c-0.306,0.757-1.753,0.657-1.971,0.546c-1.393-0.713-1.417,1.209-2.387,1.079c0.102,0.449,0.159,1.432,0.471,1.185
+                       c1.156-0.906,1.413,0.358,2.084,0.553c0.437,0.129,1.182-0.272,1.688-0.534c0.841-0.431,1.883,0.119,2.588-0.662
+                       c0.289,0.5,1.457-0.062,1.253,1.003c-0.186,0.976-2.153,2.471-3.208,2.399c-0.325-0.02-0.699-0.365-0.71,0.223
+                       c-0.025,1.281-1.149,1.151-2.291,1.562c2.873,0.9,5.133-1.435,7.683-0.478c0.266-0.544-0.733-0.619-0.569-1.148
+                       c0.225-0.344,0.455-0.181,0.722-0.038c0.82,0.443,1.516,0.888,1.998-0.547c0.234-0.695,1.567-0.007,2.215-0.8
+                       c-0.737,0.531,1.4,1.612-0.488,1.914c-0.346,0.055,0.518,0.498,0.41,0.976c-0.544,0.375-1.208-0.009-1.841,0.233
+                       c0.119,0.815,0.883,0.942,1.467,1.234c-0.353,0.712-0.943,1.003-1.557,1.076c-0.492,0.059-1.204-0.543-1.382,0.318
+                       c-0.145,0.706,0.949,0.206,1.138,0.969c-1.438-0.044-2.072,1.461-3.427,1.58c0.093,0.513,1.331,0.278,0.652,1.073
+                       c-0.519,0.609-1.468,1.107-2.099,0.811c-1.412-0.66-1.768-0.124-1.93,1.134c-0.049,0.387-0.187,0.941-0.834,0.409
+                       c-0.567-0.468-1.234-0.54-2.143-0.089c1.875,0.517,1.108,2.276,1.815,3.376c0.258,0.401,0.153,0.98,0.867,0.938
+                       c0.546-0.03,1.227,0.183,1.194-0.772c-0.024-0.676,0.562-0.502,0.908-0.713c0.869-0.535,1.933-0.521,2.716-1.29
+                       c-0.49,0.865-1.495,1.375-0.717,2.581c0.259,0.402-0.368,0.083-0.557,0.182c-0.577,0.298-1.2,0.314-2.076,0.293
+                       c0.787,1.427,2.359,0.069,3.076,1.156c-0.772,0.541-1.658,0.17-2.459,0.327c-0.195,0.038-0.512-0.061-0.448,0.294
+                       c0.037,0.206,0.238,0.555,0.451,0.384c0.749-0.597,1.374,0.451,2.189-0.234c-0.102,1.144-1.748,1.353-0.848,2.616
+                       c-1.601-1.342-2.059,1.723-3.667,0.391c0.667,2.043-0.654,3.267-3.368,3.501c0.383,0.976,1.264,1.261,2.049,1.626
+                       c0.368,0.172,0.865,0.231,0.703,0.768c-0.151,0.502-0.692,0.396-1.042,0.325c-1.134-0.221-2.099-0.961-3.379-0.853
+                       c-0.552,0.047-0.55,0.094-0.425,0.462c0.132,0.388,1.383,1.093-0.301,0.864c-0.109-0.014-0.141,0.392,0.116,0.525
+                       c0.389,0.204,0.786,0.396,1.064,0.536c0.24,0.965-1.367-0.374-0.794,0.885c0.276,0.606,0.574,1.174,1.372,0.983
+                       c0.387-0.091,0.514-0.738,1.157-0.406c0.78,0.404,0.941-0.681,1.534-0.823c0.932-0.223-0.279,1.368,0.84,0.991
+                       c0.262-0.089,0.593-0.064,0.801-0.217c1.051-0.772,2.27-1.173,3.474-1.605c0.017-0.738-0.892-0.394-1.044-0.861
+                       c0.439-0.658,2.251,0.82,1.666-1.209c-0.108-0.371,0.234-0.233,0.432-0.155c0.233,0.092,0.399,0.583,0.685,0.274
+                       c1.689-1.828,1.731,0.654,2.545,1.034c0.35,0.163-0.351,0.474-0.621,0.827c2.335,0.495,4.56,0.717,6.603-0.796
+                       c0.183-0.134,0.563-0.335,0.592-0.299c1.512,1.929,1.489-0.426,2.171-0.774c0.25-0.127,0.635-0.437,0.728-0.365
+                       c0.928,0.729,2.654-0.09,3.115,1.658c-0.486,0.153-0.949,0.3-1.441,0.456c0.441,0.415,0.804,0.757,1.426,1.342
+                       c-1.732-0.212-2.86,0.231-3.228,1.805c-0.072,0.303-0.439,0.618-0.606,0.463c-1.02-0.952-1.417,1.287-2.367,0.426
+                       c-0.135,1.665-1.142,0.334-1.756,0.511c-0.352,1.028,1.043,0.89,1.139,1.87c-1.028-1.16-0.835,1.168-1.789,0.395
+                       c-0.137,1.189,1.491,1.614,1.154,2.996c-0.291,1.199-0.459,2.226-2.009,2.052c0,0.123-0.045,0.268,0.008,0.331
+                       c0.391,0.472,1.614,0.017,1.429,0.804c-0.208,0.891-1.051-0.181-1.628,0.062c-0.34,0.144-0.973-0.224-1.068,0.241
+                       c-0.158,0.777,0.095,1.582,0.439,2.297c0.238,0.496,0.667,0.255,1.032,0.083c0.259-0.122,0.55-0.382,0.779-0.334
+                       c2.317,0.475,2.36-0.89,1.931-2.635c1.97,1.213,3.875,1.628,5.98,1.039c0.473-0.132,0.716-0.253,0.735-0.736
+                       c0.012-0.312,0.18-0.697,0.469-0.581c1.839,0.736,2.512-1.65,4.322-1.32c-1.65,0.258-0.944,2.249-2.343,2.753
+                       c-0.354,0.126-0.044,0.506,0.079,0.728c0.18,0.325,0.382,0.647-0.117,0.827c-1.939,0.695-3.648,2.634-6.01,1.145
+                       c-0.112-0.072-0.331,0.026-0.637,0.06c0.323,0.713,0.913,0.999,1.484,1.306c0.584,0.314,1.169,0.629,1.712,1.206
+                       c-2.007-1.308-3.905,0.722-6.069-0.266c0.543,1.023,1.548,1.084,1.851,1.826c-2.125,1.498-3.161-1.43-4.994-1.331
+                       c-0.085,0.863,1.38,0.498,1.015,1.555c-0.095,0.275,1.44,0.023,0.824,0.944c-0.501,0.75-0.856-0.529-1.597-0.323
+                       c0.499,0.755,0.575,1.666,1.329,2.326c-0.743,0.527-1.168-0.11-1.675-0.183c-0.845-0.121-1.661-0.572-2.493,0.278
+                       c-0.474,0.485-0.998,0.666-0.221,1.287c0.626,0.5,0.851,0.885-0.023,1.559c-0.391,0.301-1.136,1.074-0.639,2.048
+                       c0.339,0.664-0.718,0.551-0.699,0.583c0.65,1.096,0.059,1.38-0.897,1.452c0.124,1.516-0.839-0.083-1.261,0.401
+                       c-0.216,0.243-1.238-1.029-1.686-0.118c-0.442,0.908,0.484,1.371,1.521,1.747c-0.663,0.291-1.09,0.481-1.461,0.643
+                       c-0.16,0.312,0.053,0.419,0.184,0.432c1.255,0.132,2.617,0.516,3.139-1.249c0.059-0.197,0.282-0.346,0.427-0.517
+                       c1.047,1.306,1.79-0.366,2.718-0.34c0.165,0.731-0.694,0.706-0.775,1.206c0.212,0.287,0.713,0.024,0.879,0.513
+                       c-0.123,0.07-0.253,0.204-0.389,0.209c-0.528,0.026-1.091-0.351-1.546,0.305c-0.223,0.319-0.157,0.702,0.045,0.642
+                       c1.421-0.428,2.971,0.972,4.317-0.335c0.584-0.57,1.311-0.626,2.073-0.398c0.291,0.918-2.134,1.558-0.157,2.653
+                       c-0.695,0.112-1.183,0.466-1.89,0.119c-1.219-0.598-0.125,1.229-1.009,1.086c-0.66-0.104-1.315-0.247-1.971-0.374
+                       c0.733,1.298-0.715,0.775-1.023,1.215c-0.697,1.001,0.645,1.116,0.785,1.737c-0.868,0.457-1.671,0.848-2.59-0.418
+                       c-0.007,1.076,1.55,1.874,0.348,2.206c-1.041,0.284-1.956,2.444-3.402,0.536c-0.353-0.465-1.062-1.004-1.032,0.371
+                       c0.015,0.664-0.707-0.231-0.943,0.382c0.085,0.112,0.286,0.261,0.335,0.451c0.204,0.767,1.51,0.831,1.307,1.629
+                       c-0.251,1.003-1.226-0.122-1.754,0.31c-0.192,0.159-0.789,0.226-0.557,0.428c0.603,0.529-0.285,1.339,0.387,1.683
+                       c0.592,0.302,1.288,0.642,1.913,0.6c2.844-0.184,5.645-0.893,8.543-0.522c0.669,0.084,1.412-0.391,2.115-0.62
+                       c1.501-0.486,2.876-1.323,4.61-1.05c0.908,0.144,2.077-0.44,2.506-1.122c1.018-1.616,2.579-1.85,4.144-2.28
+                       c1.427-0.392,1.418-0.428,0.586-1.769c1.395,1.321,2.336-0.515,3.582-0.382c0.213,0.023,0.784-0.492,0.795-0.204
+                       c0.019,0.502,0.566,0.937,0.299,1.315c-0.274,0.388-0.31,0.583,0.078,0.793c0.457,0.252,1.209,0.25,0.89,1.111
+                       c-0.305,0.821-1.072,0.149-1.741,0.641c-0.124,0.186,1.217,1.077-0.051,1.026c-1.652-0.064-3.181,0.492-4.834,0.783
+                       c1.871,0.44,3.738,0.893,5.615,1.308c0.495,0.11,1.379-0.513,1.309,0.583c-0.06,0.965-0.884,1.013-1.655,0.948
+                       c-1.444-0.12-2.901,0.033-4.387-0.113c0.431,0.249,0.87,0.491,1.293,0.755c0.879,0.553,0.922,0.591,0.344,1.488
+                       c-0.288,0.445,0.984,0.656,0.089,1.018c-0.635,0.255-0.662-0.72-1.01-0.685c-1.91,0.188-3.139-2.4-5.365-1.263
+                       c1.192,1.172,2.379,2.284,2.319,4.172c-0.463-0.117-0.972-0.398-1.142-0.261c-1.188,0.967-2.264,1.31-3.4-0.092
+                       c-0.253-0.314-0.416,0.177-0.601,0.361c-0.389,0.385-0.242,0.825,0.032,1.069c0.786,0.702,1.435,1.754,2.716,1.527
+                       c1.096-0.195,1.658,0.628,2.399,1.12c0.183,0.122,0.43,0.251,0.204,0.526c-0.186,0.223-0.473,0.494-0.72,0.255
+                       c-0.698-0.674-1.783-0.332-2.382-1.118c-0.353,0.532,0.425,0.74,0.089,1.235c-1.425-0.912-3.311-0.356-4.661-1.666
+                       c-0.846,4.365,2.486,5.103,5.187,6.469c-0.902-0.201-1.514,0.249-2.236,0.621c-0.91,0.469-1.989,0.405-2.762-0.518
+                       c-0.332-0.396-0.735-1.042-1.189-0.485c-0.381,0.472,0.342,0.903,0.72,1.16c0.46,0.312,1.049,0.427,1.573,0.649
+                       c0.601,0.255,1.276,0.625,0.807,1.356c-0.242,0.375-0.703,1.251-1.521,0.5c-0.188-0.174-0.537-0.155-0.775-0.291
+                       c-0.39-0.222-0.817-0.705-1.174-0.148c-0.31,0.483,0.066,1.069,0.419,1.376c1.618,1.408,2.717,1.476,4.629,0.321
+                       c0.41-0.247,0.62,0.051,0.928,0.095c2.102,0.296,4.115,0.502,6.218-0.483c1.438-0.672,3.221-0.657,4.861-0.823
+                       c1.607-0.163,0.732,1.671,1.673,2.331c0.554,0.391-0.841,0.708-1.264,0.793c-1.297,0.259-1.373,1.015-1.098,2.076
+                       c-0.749-0.058-1.033-1.06-1.911-0.73c0.262,0.506,0.073,1.037,0.674,1.622c0.685,0.672-0.357,1.298-1.007,1.514
+                       c-1.213,0.404-2.459,0.136-3.578-0.404c-0.657-0.317-1.236-0.329-1.735,0.068c-0.731,0.581,0.373,0.837,0.325,1.149
+                       c-0.174,1.146,0.503,1.64,1.299,2.153c0.194,0.127,0.472,0.415,0.242,0.733c-0.199,0.272-0.497,0.141-0.783,0.141
+                       c-1.493-0.002-2.443-1.165-3.693-1.685c-1.349-0.565-1.326-0.621-1.429,0.866c-0.727-0.492-0.852-1.334-1.428-2.233
+                       c-0.184,1.858,0.659,2.993,2.061,4.216c-1.408-0.099-2.19-0.548-2.744-1.431c-0.518,0.655,0.301,1.15-0.268,1.667
+                       c-0.671-0.511-0.832-1.38-1.344-2.061c-0.516,0.775-1.053,1.183-1.38-0.097c-0.177-0.696-0.433-1.159-1.287-1.029
+                       c-0.505,0.078-0.678-0.261-0.618-0.768c0.138-1.172-1.262-0.919-1.582-1.678c-0.988,0.439-1.44,1.153-1.073,2.182
+                       c-0.261,0.192-0.38,0.119-0.512-0.016c-0.413-0.416-0.395-1.304-1.278-1.196c-0.247,0.03-0.429,0.229-0.386,0.489
+                       c0.121,0.696,0.687,1.036,1.212,1.378c0.28,0.179,0.669,0.19,0.811,0.571c-0.042,0.099-0.061,0.252-0.134,0.284
+                       c-2.276,1.006-2.682,1.073-2.839,0.335c-0.293-1.361-2.111-1.132-2.355-2.561c0.894,0.027,1.164,1.197,2.09,1.067
+                       c0.312-1.657-1.262-1.911-2.054-2.642c-0.333-0.308-0.554,0.501-0.575,0.952c-0.019,0.476,0.286,1.105-0.478,1.244
+                       c-0.745,0.134-0.955-0.479-1.185-1.007c-0.227-0.518-0.476-1.031-0.654-1.568c-0.155-0.468-0.48-0.714-0.904-0.616
+                       c-0.521,0.121-0.392,0.539-0.323,0.975c0.116,0.736,1.287,1.691,0.388,2.065c-0.794,0.329-0.626-1.206-1.066-1.701
+                       c-0.452-0.507-1.351-0.95-1.998-0.88c-1.455,0.157-2.731-0.276-4.063-0.714c1.015,1.199,1.818,2.67,3.802,2.134
+                       c0.412-0.112,0.819,0.131,0.849,0.79c0.036,0.84,0.125,0.837,1.022,0.373c-0.576,1.72-1.026,1.71-3.917-0.084
+                       c-0.042,0.88-0.038,0.875,0.67,1.498c0.278,0.246,0.821,0.454,0.456,0.932c-0.223,0.291-0.165,0.778-0.699,0.89
+                       c-1.081,0.224-2.229-0.208-3.272,0.35c-0.03,0.016-0.219-0.216-0.299-0.354c-1.032-1.79-1.343-1.86-2.644-0.587
+                       c-0.82-0.547,0.951-1.065,0.095-1.395c-0.817-0.316-0.514,0.835-0.964,1.159c-0.195,0.141-0.843-0.032-0.556,0.586
+                       c0.118,0.256,0.295,0.559-0.094,0.682c-0.121,0.04-0.327-0.302-0.524-0.352c-0.51-0.124-1.039-0.183-1.534-0.262
+                       c-0.26-0.645,1.103-0.606,0.508-1.21c-0.418-0.42-1.142-0.791-1.724-0.575c-0.729,0.268-0.038,1.11-0.359,1.807
+                       c-0.272-0.388-0.487-0.639-0.635-0.924c-0.115-0.225,0.132-0.587-0.281-0.734c-0.35,0.006-0.477,0.274-0.471,0.571
+                       c0.025,1.109-0.966,0.858-1.505,1.021c-0.704,0.215-0.481-0.557-0.695-0.9c-0.614-0.981-1.737-1.627-2.867-1.574
+                       c-0.851,0.038-0.537,1.039-0.182,1.403c0.961,0.98,1.635,2.033,2.085,3.362c0.246,0.729,1.265,0.978,2.232,0.653
+                       c0.752-0.251,1.527-0.351,2.393-0.351c1.773-0.004,0.969,2.17,2.326,2.24c-0.262,0.587-0.75,1.251-1.324,0.95
+                       c-1.359-0.71-2.765,0.173-4.217-0.5c-1.595-0.74-2.892,0.527-2.843,2.415c-0.862-0.591-1.478-1.487-2.67-1.327
+                       c-0.456,0.062-0.856-0.606-0.393-0.997c1.028-0.87,0.043-1.276-0.214-1.965c-0.642-1.716-2.686-1.671-3.551-3.051
+                       c-0.046-0.072-0.768,0.087-0.805,0.235c-0.358,1.395-1.03,0.255-1.552,0.227c0.072-0.893-1.811-1.231-0.771-2.273
+                       c0.489-0.492,0.038-0.515-0.08-0.682c-0.151-0.215-0.272-0.349-0.638-0.053c-1.393,1.129-3.037,0.784-4.007-0.702
+                       c-0.469-0.719-0.342-1.101,0.467-1.427c0.342-0.137,0.886-0.434,0.718-0.995c-0.068-0.232-0.376-0.5-0.62-0.557
+                       c-0.726-0.164-0.535,0.656-0.798,0.958c-0.398-0.877-0.771-1.69-1.141-2.506c-0.157,1.035-0.762,1.614-1.644,1.961
+                       c-1.229,0.483-0.615,1.599-0.634,2.328c-0.268,10.333-0.434,20.668-0.621,31.006c-0.004,0.172,0.051,0.344,0.077,0.517H1455.251z"
+                       />
+       </g>
+       <g>
+               <path fill="#2A3524" d="M1556.146,264.447c-0.164-0.299,0.031-0.327,0.272-0.468c0.258-0.148,0.653-0.006,0.747-0.239
+                       c0.15-0.362,0.452-0.284,0.591-0.209c0.222,0.119-0.046,0.302-0.092,0.462c-0.066,0.236-0.002,0.476,0.229,0.507
+                       c0.318,0.042,0.302-0.183,0.244-0.437c-0.055-0.24,0.222-0.361,0.346-0.344c0.398,0.062,0.412,0.6,0.785,0.727
+                       c-0.197,0.366-0.143,0.91-0.551,1.104c-0.266,0.129-0.584-0.05-0.73-0.401c-0.113-0.274-0.203-0.562-0.51-0.057
+                       c-0.178,0.293-0.639,0.329-1.032,0.172C1556.035,265.099,1556.175,264.758,1556.146,264.447 M1559.945,235.751
+                       c-0.304,1.695-0.418,2.076-0.631,2.082c-0.938,0.034-1.875,0.028-2.71-0.716c0.918,0.3,1.079-0.662,1.648-0.97
+                       C1558.859,235.815,1559.553,236.566,1559.945,235.751 M1598.844,262.575c0.699-0.175,1.332,0.36,1.88-0.181
+                       c0.136-0.136,0.238,0.074,0.333,0.198c0.614,0.807,1.388,1.411,2.355,1.728c0.26,0.087,0.211,0.268,0.238,0.436
+                       c0.036,0.238-0.231,0.426-0.311,0.37c-0.674-0.467-1.662-0.247-2.188-0.957c-0.391-0.527-0.89-0.848-1.476-1.046
+                       C1599.386,263.023,1599.114,262.952,1598.844,262.575 M1604.538,261.137c-0.002-0.403,0.315-0.462,0.565-0.498
+                       c0.165-0.023,0.346,0.091,0.488-0.091c0.319-0.418,0.818,0.074,1.162-0.228c0.125,0.959,0.917,0.766,1.529,0.909
+                       c0.325,0.076,0.919,1.174,0.756,1.367c-0.287,0.34-0.633,0.049-0.824-0.087c-1.01-0.721-2.134-1.021-3.345-1.086
+                       C1604.683,261.413,1604.466,261.417,1604.538,261.137 M1563.122,223.302c-0.561,0.64-1.366,0.344-1.995,0.615
+                       c-0.15,0.065-0.346-0.117-0.286-0.264c0.142-0.348,0.072-0.587-0.229-0.78c0.229-0.338,0.021-0.8,0.57-1.103
+                       c1.124-0.619,1.687,0.801,2.797,0.329c-0.422,0.704-1.097,0.519-1.38,1.014C1562.767,223.173,1562.925,223.23,1563.122,223.302
+                        M1568.838,201.764c0.24,0.168,0.338-0.015,0.463-0.072c0.393-0.183,0.741-0.079,1.013,0.21c0.406,0.436-0.136,0.678-0.295,0.927
+                       c-0.18,0.285-0.495,0.004-0.737-0.121c-0.242-0.123-0.476-0.289-0.735-0.346c-0.462-0.1-0.632-0.323-0.482-0.779
+                       c0.057-0.176,0.072-0.354-0.031-0.523c0.258-0.13,0.403,0.244,0.655,0.149c0.063-0.539-0.39-0.377-0.63-0.49
+                       c-0.276-0.127-0.452-0.323-0.475-0.63c-0.022-0.284,0.199-0.341,0.405-0.43c0.665-0.284,1.321-0.588,1.512-1.395
+                       c0.006-0.025,0.1-0.027,0.174-0.044c0.082,0.464-0.452,0.897-0.303,1.208C1569.841,200.394,1569.35,201.075,1568.838,201.764
+                        M1604.405,213.208c-0.782-0.068-0.194,0.683-0.623,0.831c-0.501,0.172-0.61,0.499-0.575,0.983
+                       c0.008,0.114-0.234,0.299-0.395,0.354c-0.143,0.047-0.239-0.132-0.317-0.272c-0.117-0.21-0.121-0.678-0.525-0.408
+                       c-0.316,0.214,0.096,0.389,0.168,0.579c0.07,0.19,0.344,0.393,0.051,0.552c-0.242,0.132-0.705,0.321-0.813,0.1
+                       c-0.348-0.717-1.13-0.831-1.616-1.337c-0.195-0.201-0.355-0.407-0.257-0.647c0.166-0.411,0.403,0.016,0.609-0.001
+                       c0.247-0.021,0.418,0.301,0.704,0.145c-0.069-0.295-0.274-0.392-0.529-0.536c-0.472-0.266-1.079-0.477-0.436-1.317
+                       c0.398-0.521,0.943-0.61,1.374-0.961c0.701-0.574,1.329-0.305,1.754,0.469c0.047,0.087,0.043,0.25,0.217,0.214
+                       c0.875-0.176,1.238,0.736,1.981,0.878c-0.541,0.036-1.055-0.487-1.561,0.062C1603.803,213.148,1604.107,212.892,1604.405,213.208
+                        M1587.305,287.368c-0.013-4.759-0.032-9.518-0.026-14.278c0-0.636-0.082-1.295,1.052-1.101c0.376,0.065,0.998-0.456,1.652-0.312
+                       c0.185,0.04,0.335-0.088,0.539,0.157c0.35,0.423,0.763,0.667,0.958-0.187c0.053-0.229,0.138-0.632,0.457-0.628
+                       c0.397,0.004,0.101,0.43,0.241,0.592c0.173,0.202,0.408,0.92,0.61,0.006c0.578,0.633,0.548-0.18,0.793-0.336
+                       c0.213-0.052,0.025,0.838,0.52,0.203c0.229-0.294,0.531,0.157,0.855,0.112c0.21-0.03,0.593,0.184,0.656-0.053
+                       c0.228-0.868,0.687-0.164,0.829-0.07c0.301,0.202,0.649,0.548,0.042,0.914c-0.316,0.193-0.063,0.443,0.132,0.601
+                       c0.27,0.217,0.579,0.459,0.907,0.154c0.087-0.079-0.03-0.398,0.273-0.232c0.117,0.064,0.21,0.13,0.194,0.35
+                       c-0.034,0.535,0.053,0.843,0.832,0.787c0.679-0.047,1.537,0.586,1.512,1.264c-0.03,0.818,0.565,0.785,0.925,1.255
+                       c0.01-0.472,0.407-0.777-0.035-1.293c0.786,0.542,1.544,0.535,2.287,0.595c0.212,0.019,0.56,0.076,0.556-0.163
+                       c-0.002-0.249-0.224-0.528-0.413-0.736c-0.102-0.111-0.385-0.19-0.508-0.128c-0.83,0.418-1.261,0.069-1.514-0.716
+                       c-0.066-0.202-0.181-0.507-0.408-0.416c-0.533,0.213-0.559-0.182-0.693-0.478c0.315-0.134,0.598-0.359,0.986-0.206
+                       c0.287,0.113,0.592,0.375,0.714-0.274c0.072-0.382-0.176-0.318-0.277-0.389c-0.176-0.127-0.519,0.083-0.626-0.316
+                       c0.3-0.27,0.777,0.172,1.074-0.242c0.098-0.14,0.253,0.044,0.289,0.219c0.136,0.676,0.661,0.947,1.207,1.248
+                       c0.471,0.259,0.818,1.018,1.356,0.043c0.107-0.193,0.563,0.091,0.712,0.27c0.297,0.356,0.707,0.273,1.057,0.403
+                       c0.258,0.096,0.51-0.061,0.61-0.309c0.098-0.242-0.168-0.315-0.316-0.37c-0.217-0.079-0.293-0.106-0.156-0.363
+                       c0.168-0.319,0.287-0.095,0.402-0.006c0.223,0.176,0.423,0.383,0.884,0.269c-0.377-0.837-1.385-0.763-1.843-1.471
+                       c0.605-0.06,1.187,0.331,1.798,0.223c0.045-0.008,0.127,0.102,0.154,0.087c1.047-0.556,1.201,0.389,1.488,0.953
+                       c0.541-0.05,0.08-0.94,0.741-0.732c0.486,0.153,0.605,0.555,0.522,1.052c-0.04,0.245,0.034,0.589,0.374,0.491
+                       c0.401-0.116-0.143-0.369-0.014-0.48c0.234-0.202-0.046-0.715,0.146-0.63c0.587,0.261,0.938-0.733,1.499-0.203
+                       c0.114,0.107,0.049,0.286-0.457,0.749c1.393-0.627,1.697,0.87,2.746,0.805c0.044-0.274-0.601-0.588-0.105-0.878
+                       c0.336-0.194,0.718-0.1,1.024,0.136c0.372,0.286,0.726,0.599,1.244,0.499c0.037-0.214-0.105-0.295-0.22-0.392
+                       c-0.342-0.28-0.367-0.822-0.274-1.031c0.179-0.4,0.571-0.027,0.879,0.062c0.542,0.155,1.081,0.217,1.52-0.32
+                       c-0.308-0.334-0.687-0.392-1.095-0.368c-0.241,0.013-0.355-0.118-0.295-0.346c0.079-0.301,0.217-0.047,0.326-0.015
+                       c0.899,0.276,1.555-0.363,2.309-0.627c0.206-0.072,0.128-0.261,0-0.368c-0.201-0.169-0.114-0.635-0.582-0.538
+                       c-0.544,0.113-1.121,0.117-1.639,0.295c-0.691,0.236-1.375,0.255-2.064,0.125c-0.219-0.042-0.334-0.002-0.493,0.1
+                       c-0.692,0.447-1.098-0.188-1.597-0.451c-0.053-0.029-0.058-0.248-0.013-0.342c0.093-0.183,0.255-0.108,0.401-0.042
+                       c0.284,0.129,0.636,0.31,0.799-0.087c0.187-0.458-0.268-0.417-0.525-0.547c-0.339-0.17-0.524-0.498-0.651-0.864
+                       c0.35-0.148,0.454,0.156,0.603,0.311c0.424,0.44,0.854,0.475,1.333,0.11c0.145-0.11,0.285-0.291,0.444-0.31
+                       c0.661-0.082,1.323,0.161,1.805-0.733c0.221-0.412,0.703-0.579,0.119-1.211c1.113,0.378,1.928,0.847,2.483,1.697
+                       c0.049,0.076,0.261,0.221,0.24,0.074c-0.073-0.523,0.638-0.21,0.492-0.368c-0.376-0.412,0.111-1.113-0.616-1.411
+                       c-0.597-0.243-0.668-0.87-0.578-1.47c0.387-0.093,0.328,0.289,0.477,0.353c0.39,0.168,0.789,0.875,1.235-0.03
+                       c0.13-0.261,0.618-0.438,0.984-0.598c0.199-0.087,1.104,0.471,0.616-0.5c-0.002-0.006,0.161-0.136,0.201-0.116
+                       c0.739,0.384,0.691-0.566,1.145-0.686c0.157-0.044,0.034-0.277-0.054-0.404c-0.114-0.163-0.25-0.138-0.396-0.031
+                       c-0.27,0.203-0.542,0.414-0.934,0.327c0.195-0.266,0.072-0.677,0.454-0.83c-0.72-0.325-1.377-0.227-2.092,0.047
+                       c-1.123,0.432-2.356,0.179-3.525,0.435c-0.588,0.129-0.915-0.136-1.032-0.857c-0.077-0.469-0.641-0.893-1.327-0.887
+                       c0.386-0.136,0.772-0.272,1.158-0.409c-0.16-0.47-0.685-0.574-0.946-0.954c-0.145-0.211-0.336-0.311-0.049-0.589
+                       c0.253-0.245,0.299-0.293,0.628-0.03c0.381,0.307,0.959,0.365,1.5,0.448c-0.225-0.474-0.937-0.561-0.739-1.288
+                       c0.906,0.132,1.612,1.353,2.708,0.608c-0.871-0.872,0.272-1.223,0.609-1.373c0.801-0.358,1.334-1.012,2.03-1.464
+                       c0.165-0.106,0.246-0.186,0.123-0.352c-0.21-0.285-0.552-0.588-0.843-0.411c-0.989,0.606-2.232,0.555-3.168,1.349
+                       c-0.291,0.247-1.104,0.767-1.34-0.353c-0.093-0.443-0.667-0.172-1.005-0.234c-0.414-0.078-0.216,0.25-0.165,0.488
+                       c0.027,0.131-0.181,0.447-0.263,0.44c-0.774-0.068-1.481,0.261-2.224,0.47c-0.049-0.459,0.288-0.57,0.418-0.799
+                       c0.245-0.432,0.151-0.615-0.244-0.779c-0.715-0.301-1.406-0.72-2.151-0.864c-0.415-0.079-0.943-0.414-1.487,0.286
+                       c-0.403,0.519-1.533,0.449-2.215,0.117c-0.981-0.477-1.675-0.85-3.068-1.044c-0.189-0.026-0.468-0.083-0.332-0.301
+                       c0.368-0.594,0.364-1.406,0.793-1.846c0.263-0.27,0.852-0.413,1.276-0.697c0.232-0.153,0.429,0.257,0.582,0.481
+                       c0.288,0.42,0.533,0.884,1.125,1.026c0-0.64-0.891-0.634-0.818-1.338c0.243-0.101,0.457,0.146,0.657,0.175
+                       c0.217-0.294-0.165-0.37-0.127-0.576c0.259,0.214,0.492-0.115,0.779-0.017c0.569,0.193,1.586,0.678,2.136,1.128
+                       c0.268-0.449-0.452-0.668-0.191-1.177c0.576,0.268,0.979,0.864,1.71,1.042c-0.209-0.978-1.372-1.217-1.566-2.165
+                       c0.5-0.154,0.402,0.509,0.804,0.528c0.118-1.13,0.898-0.03,1.286-0.372c0.108,0.919,1.14,0.211,1.359,0.881
+                       c0.399-0.295,0.175-0.635,0.227-0.921c0.075-0.43,0.256-0.597,0.67-0.376c0.091,0.047,0.241,0.329,0.231,0.159
+                       c-0.025-0.363,0.641-0.322,0.36-0.625c-0.411-0.44-0.138-1.255-0.877-1.497c-0.138-0.045-0.329-0.227-0.25-0.443
+                       c0.034-0.093,0.172-0.193,0.27-0.204c0.216-0.021,0.31,0.132,0.384,0.33c0.094,0.254,0.221,0.504,0.372,0.729
+                       c0.116,0.172,0.002,0.772,0.584,0.276c0.151-0.13,0.926,0.428,1.227,0.893c0.315-0.093-0.274-0.783,0.45-0.625
+                       c0.1,0.021-0.023-0.372-0.063-0.38c-0.813-0.155-0.017-0.418-0.029-0.628c0.145,0.263,0.288,0.526,0.474,0.865
+                       c0.167-0.504,0.4-0.733,0.863-0.435c0.282,0.183,0.629-0.065,0.552-0.232c-0.323-0.692,0.378-0.715,0.584-1.05
+                       c0.127-0.205,0.595-0.075,0.482-0.445c-0.085-0.276-0.38-0.361-0.675-0.428c-0.238-0.053-0.735,0.046-0.456-0.57
+                       c0.08-0.176-0.256-0.502,0.254-0.238c0.468,0.24,0.452-0.543,0.9-0.357c-0.161-0.415-0.524-0.274-0.806-0.423
+                       c0.372-0.54,1.369-0.132,1.348-1.044c-0.835-0.202-1.467,1.024-2.431,0.468c0.255-0.057,0.153-0.583,0.537-0.456
+                       c0.637,0.207,0.197-0.595,0.586-0.589c-0.176-0.414-0.467,0.138-0.68-0.106c-0.051-0.274,0.154-0.589-0.021-0.863
+                       c-0.541-0.1,0.112,1.329-0.917,0.608c-0.091,0.568,0.397,1.059,0.089,1.6c-0.13,0.229,0.142,0.941-0.528,0.345
+                       c-0.092-0.083-0.253,0.041-0.217,0.191c0.235,0.981-0.41,0.545-0.776,0.467c-0.65-0.136-1.22-0.624-1.951-0.486
+                       c0.042,0.344,0.32,0.435,0.535,0.458c0.356,0.034,0.525,0.147,0.448,0.513c-0.068,0.319-0.31,0.53-0.593,0.468
+                       c-0.609-0.134-1.008,0.081-1.422,0.515c-0.506,0.53-1.181,0.31-2.037-0.592c0.352-0.155,0.691-0.305,1.051-0.465
+                       c-0.69-0.611-1.475,0.064-2.21-0.254c0.543-0.841,1.331-1.301,2.289-1.647c-0.811-0.181-1.703-0.227-1.306-1.408
+                       c0.431-0.031,0.609,0.359,0.877,0.594c0.287,0.253,0.837,0.485,0.934,0.301c0.346-0.647,1.15-0.614,1.529-1.15
+                       c-0.205-0.358-0.643-0.051-0.87-0.442c0.288-0.068,0.775-0.009,0.628-0.496c-0.121-0.389-0.505-0.223-0.726-0.151
+                       c-0.422,0.136-0.851-0.18-1.27,0.095c-0.159,0.103-0.352-0.074-0.383-0.282c-0.059-0.378,0.823-1.122,1.216-1.037
+                       c0.272,0.059,0.597,0.038,0.809,0.185c0.615,0.428,0.722,0.015,0.807-0.494c0.21,0.244,0.301,0.636,0.649,0.492
+                       c0.306-0.128,0.03-0.418,0.043-0.635c0.015-0.248,1.159-0.969,1.373-0.831c0.372,0.241,0.742,0.17,1.292,0.103
+                       c-0.576-0.466-1.003-0.855-1.724-0.732c0.788-1.002,1.486-0.196,2.255,0.044c-0.157-0.536-0.692-0.432-0.89-0.846
+                       c0.739-0.151,1.271-0.685,2.176-1.014c-1.24-0.116-2.119,0.142-2.858,0.819c-0.229-0.212-0.11-0.411,0.083-0.666
+                       c-0.526,0.021-0.686,0.389-0.915,0.619c-0.138,0.14,0.096,0.589-0.315,0.542c-0.511-0.061,0.143-0.557-0.229-0.709
+                       c-0.885,0.42-1.792,0.35-2.707,0.12c0.571-0.235,1.091-0.653,1.737-0.4c0.07,0.028,0.248-0.024,0.248-0.045
+                       c0.028-0.771,0.791-1.017,1.108-1.579c0.028-0.049,0.052-0.1,0.079-0.151c-1.24-0.547,0.134-0.946,0.032-1.505
+                       c-0.781,0.375-1.346-0.274-2.027-0.551c1.159-1.142-0.657-0.743-0.752-1.436c0.807,0.2,1.566,0.44,2.367,0.136
+                       c-0.034-0.179-0.259-0.206-0.424-0.304c-0.262-0.155-0.665-0.316-0.576-0.634c0.061-0.21,0.444-0.382,0.803-0.188
+                       c0.115,0.063,0.338-0.075,0.575-0.136c-0.312-0.215-0.773-0.232-0.777-0.503c-0.006-0.376,0.408-0.375,0.726-0.41
+                       c0.376-0.039,0.162-0.278,0.187-0.486c0.049-0.407-0.086-0.272-0.331-0.265c-0.921,0.026-1.805,0.068-2.045,1.225
+                       c-0.331-0.11-0.41,0.389-0.739,0.298c-0.427-0.117-0.042-0.33-0.068-0.495c-0.022-0.136-0.11-0.252-0.249-0.222
+                       c-0.265,0.059-0.374,0.443-0.717,0.36c0.085,0.151,0.172,0.304,0.343,0.603c-0.498-0.309-0.902-0.275-1.328-0.255
+                       c-0.816,0.044-1.538-0.549-2.42-0.353c-0.393,0.087-0.261-0.412-0.235-0.655c0.036-0.318,0.288-0.146,0.433-0.106
+                       c0.552,0.149,1.174-0.338,0.96-0.897c-0.452-1.179,0.666-0.921,1.074-1.225c0.374-0.276,0.952-0.276,1.487-0.409
+                       c-0.236-0.403-0.567-0.413-0.848-0.51c-0.475-0.16,0.016-0.441-0.082-0.666c-0.08-0.179,0.046-0.219,0.261-0.208
+                       c1.06,0.057,2.094,0.014,2.415-1.323c-0.419,0.021-0.911,0.322-1.478,0.033c0.288-0.358,0.938-0.35,0.951-0.952
+                       c-0.56-0.327-0.951,0.105-1.427,0.279c-1.117,0.414-2.264,0.748-3.41,1.073c-0.453,0.13-0.935,0.489-1.405,0.015
+                       c-0.401,0.589-1.123,0.367-1.654,0.65c-0.201,0.107-0.847,0.857-0.656-0.256c0.005-0.028-0.072-0.1-0.117-0.106
+                       c-1.082-0.118-0.352-0.526-0.109-0.838c-0.054-0.028-0.084-0.058-0.11-0.055c-0.528,0.076-1.074,0.153-1.445-0.342
+                       c-0.186-0.249,0.41-0.463,0.917-0.272c0.168,0.065,0.295,0.24,0.463,0.308c0.431,0.17,0.747-0.06,0.58-0.458
+                       c-0.168-0.402,0.14-0.244,0.242-0.265c0.511-0.102,1.013-0.21,1.397-0.619c-0.128-0.195-0.375-0.019-0.482-0.123
+                       c-0.289-0.275-0.839,0.252-0.932-0.225c-0.094-0.482,0.488-0.698,0.802-0.876c0.387-0.221,0.644-0.279,0.319-0.758
+                       c-0.068-0.103,0.012-0.448,0.117-0.504c0.709-0.387,0.781-1.34,1.552-1.703c-0.316-0.191-0.522,0.138-0.754,0.122
+                       c-0.448-0.031-0.804-0.341-0.838-0.75c-0.026-0.35,0.443-0.316,0.709-0.399c0.199-0.06,0.501,0.053,0.628-0.058
+                       c0.294-0.257-0.3-0.369-0.195-0.427c0.181-0.096,0.034-0.919,0.577-0.304c0.047,0.053,0.366,0.212,0.432-0.113
+                       c0.04-0.196,0.043-0.378-0.238-0.391c-0.139-0.006-0.325,0.053-0.357-0.253c0.248-0.126,0.588-0.074,0.824-0.318
+                       c0.225-0.233,0.531-0.389,0.998-0.713c-0.593,0.126-0.974,0.226-1.359,0.283c-0.334,0.051-0.516,0.566-0.945,0.306
+                       c0.297-0.372-0.412-0.437-0.23-0.864c0.241-0.575,0.737-0.071,1.032-0.352c-0.21-0.474-0.705-0.249-1.065-0.457
+                       c0.558-0.502,1.486-0.353,1.836-1.209c-0.768,0.232-1.467,0.558-2.244,0.579c-0.329,0.007-0.571,0.262-0.762,0.494
+                       c-0.706,0.855-1.262,0.776-1.742-0.277c0.026-0.018,0.051-0.038,0.079-0.054c0.359-0.193,1.008,0.36,1.051-0.083
+                       c0.051-0.524-0.703-0.357-1.187-0.57c0.616-0.387,0.932-1.203,1.888-0.834c-0.138-0.989-1.196-1.103-1.597-1.855
+                       c0.701-0.155,1.178,0.044,1.467,0.792c0.308-0.735-0.372-0.978-0.41-1.446c0.979-0.295,1.206,0.432,1.396,1.206
+                       c0.358-0.201,0.015-1.086,0.768-0.682c0.019,0.011,0.208-0.213,0.253-0.349c0.07-0.208-0.117-0.251-0.267-0.291
+                       c-0.232-0.061-0.476-0.184-0.703-0.159c-0.756,0.079-0.928-0.246-0.701-1.035c0.458,0.623,1.129,0.623,1.752,0.969
+                       c-0.017-0.792-0.758-0.601-1.079-1.007c0.79-0.069,1.365,0.27,2.083,0.833c-0.308-0.655-0.102-0.973,0.389-1.064
+                       c-0.174-0.36-0.55-0.245-0.65-0.624c0.516,0.351,0.811-0.227,1.257-0.219c0.074,0.001,0.338,0.149,0.217-0.172
+                       c-0.24-0.646,0.004-0.644,0.494-0.378c0.145,0.077,0.402,0.059,0.496-0.117c0.124-0.231-0.124-0.216-0.251-0.267
+                       c-0.189-0.074-0.126-0.248-0.028-0.267c0.52-0.096,0.304-0.595,0.669-0.976c-0.469,0.061-0.756-0.011-0.992,0.307
+                       c-0.097,0.13-0.346,0.258-0.48,0.222c-0.293-0.081,0.196-0.381-0.144-0.554c-0.472,0.523-0.994,1.057-1.788,1.023
+                       c-0.287-0.011-0.271,0.057-0.267,0.289c0.005,0.148-0.16,0.417-0.268,0.428c-0.726,0.067-1.302,0.555-2.001,0.676
+                       c-0.197,0.034-0.437-0.015-0.475-0.208c-0.076-0.391,0.535-0.238,0.552-0.734c-1.453,0.87-3.275,0.6-4.496,1.92
+                       c-0.219-0.434-0.057-0.771,0.017-1.142c-0.327-0.151-0.259,0.409-0.612,0.278c0.047-0.297-0.27-0.748,0.031-0.952
+                       c0.218-0.146,0.71-0.053,0.985,0.291c0.176,0.221,0.418,0.257,0.648,0.028c0.237-0.236-0.003-0.357-0.09-0.547
+                       c-0.13-0.278-0.382-0.725,0.308-0.592c0.197,0.038,0.352,0.024,0.266-0.182c-0.243-0.598,0.263-0.401,0.477-0.583
+                       c0.402-0.344,0.667-0.857,1.253-1.02c-1.24,0.055-2.393,0.428-3.557,0.735c-0.391,0.102-0.556,0.036-0.412-0.376
+                       c0.122-0.361-0.087-0.65-0.212-1.05c0.501,0.162,0.677,0.608,1.1,0.861c0.233-0.616,0.938-0.55,1.38-0.998
+                       c0.463-0.467,0.514-1.173,1.083-1.53c-0.24-0.399-0.584,0.043-0.828-0.099c-0.232-0.134-0.422-0.34-0.633-0.519
+                       c-0.342,0.172,0.072,0.886-0.206,0.695c-0.523-0.359-1.533,0.072-1.662-1.018c0.896,0.589,1.906-0.685,2.756,0.382
+                       c-0.621-0.544-0.414-1.268-0.707-1.976c0.622,0.342,1.189,0.062,1.803,0.295c0.375,0.14,1.314,0.289,1.624-0.272
+                       c0.382-0.69,1.179,0.202,1.41-0.563c-0.174-0.454-0.731-0.468-1.081-0.76c0.21-0.205,0.383-0.381,0.612-0.279
+                       c0.459,0.208,0.862,0.125,1.247-0.157c0.097-0.069,0.394-0.134,0.256-0.203c-0.205-0.104-0.097-0.525-0.492-0.406
+                       c-0.412,0.125-0.852,0.153-1.294,0.227c0.251-1.056,0.251-1.056,0.911-0.984c-0.052-0.551-0.662-0.488-0.925-0.827
+                       c0.643-0.17,0.643-0.17,1.688,0.445c-0.012-0.468-0.304-0.808-0.546-1.44c0.578,0.61,1.135,0.579,1.793,0.606
+                       c-0.3-0.614-0.916-0.474-1.264-0.774c0.508-0.31,1.584-0.561,2.45-0.572c-0.065-0.318-0.426-0.204-0.605-0.424
+                       c0.363-0.229,0.85-0.155,1.069-0.034c0.524,0.289,0.272-0.398,0.613-0.392c0.172,0.003-0.012-0.254-0.225-0.246
+                       c-0.01-0.737-0.58-0.221-0.858-0.373c-0.159-0.087-0.507,0.237-0.515-0.237c-0.002-0.169-0.224-0.205-0.226-0.139
+                       c-0.032,0.693-1.051,0.57-1.036,1.312c0.01,0.409-0.331,0.547-0.773,0.608c-0.017-0.467,0.998-1.069-0.14-1.351
+                       c0.002-0.331,0.42-0.303,0.532-0.539c-0.09-0.064-0.134-0.126-0.178-0.124c-0.586,0.007-1.07,0.266-1.788,0.057
+                       c-0.83-0.244-1.975,0.009-2.852,0.618c-0.427,0.295-0.961,0.722-1.009-0.319c-0.01-0.223-0.412-0.196-0.362-0.5
+                       c0.511-0.274,0.727,0.113,0.936,0.54c0.187-0.602,1.166-1.088,1.641-0.897c0.472,0.189,0.472,0.189,1.171-0.152
+                       c-0.511-0.327-1.188-0.139-1.612-0.588c0.55-0.685,0.968-0.117,1.383,0.166c0.282-0.31-0.357-0.417-0.088-0.634
+                       c0.109-0.089,0.382-0.074,0.531-0.003c0.297,0.141,0.625,0.345,0.775-0.074c0.14-0.396-0.389-0.274-0.541-0.483
+                       c-0.045-0.064-0.138-0.093-0.317-0.204c0.844-0.25,1.676-0.397,2.019-1.295c-1.029,0.129-2.138,0.077-2.527,1.464
+                       c-0.291-0.289-0.125-0.597-0.263-0.857c-0.068,0.025-0.183,0.033-0.204,0.082c-0.301,0.691-1.106,0.902-1.455,1.55
+                       c-0.133,0.247-0.286,0.034-0.45-0.002c-0.743-0.161-1.491-0.346-2.072,0.443c-0.138,0.185-0.395,0.157-0.391-0.287
+                       c0.004-0.551-0.352-0.714-0.644-0.319c-0.279,0.37-0.683,0.742-0.959,0.9c-0.628,0.361-1.582,0.695-2.175,0.458
+                       c-1.259-0.499-1.198-0.651-1.937-0.654c0.37-0.308,0.665-0.533,0.748-1.009c0.053-0.301,0.635-0.098,1.013,0.126
+                       c-0.102-0.628-0.559-0.843-0.857-1.182c-0.138-0.155-0.216-0.337-0.063-0.5c0.191-0.203,0.313,0.02,0.455,0.124
+                       c0.671,0.495,1.51,0.146,1.677-0.696c0.109-0.555,0.563-0.303,0.777-0.241c0.517,0.152,0.812-0.084,1.174-0.373
+                       c0.464-0.373,0.235-0.595-0.194-0.894c0.908-0.149,1.644-0.443,2.196-1.093c-0.663-0.074-1.311-0.325-1.833,0.447
+                       c-0.289,0.427-0.614,0.121-0.613-0.576c-0.496,0.854-0.846,1.456-1.679,1.431c-0.182-0.006-0.15,0.235-0.207,0.367
+                       c-0.079,0.185-0.306,0.24-0.351,0.098c-0.138-0.426-0.309-0.903-0.325-1.296c-0.023-0.48,0.173-1.118,0.739-1.396
+                       c0.136-0.065,0.359,0.086,0.598-0.1c-0.549-0.379-0.984-0.847-1.283-1.418c0.042-0.045,0.059-0.079,0.082-0.082
+                       c1.453-0.199,1.623-0.223,1.455-1.358c-0.106-0.732,0.299-0.866,0.689-1.185c-0.693-0.36-1.507,0.237-2.098-0.509
+                       c0.98-0.394,0.194-1.046,0.245-1.622c-0.411,0.676-1.127,1.063-1.474,1.777c-0.129,0.265-0.348,0.657-0.796,0.24
+                       c-0.238-0.22-0.437-0.146-0.406,0.255c0.032,0.417-0.406,0.293-0.607,0.451c-0.027,0.019-0.212-0.108-0.268-0.2
+                       c-0.172-0.28,0.109-0.356,0.241-0.514c0.341-0.399,0.938-0.764,0.167-1.34c-0.189-0.141-0.18-0.411,0.138-0.596
+                       c0.255-0.147,0.408-0.23,0.612,0.034c0.125,0.163,0.142,0.434,0.46,0.453c0.327-0.502-0.483-0.619-0.358-1.107
+                       c0.337-0.06,0.412,0.409,0.706,0.406c0.163-0.141-0.197-0.769,0.545-0.423c0.72,0.334,0.913,0.087,0.813-0.623
+                       c-0.03-0.211,0.191-0.355,0.233-0.33c0.714,0.422,0.268-0.544,0.629-0.521c-0.074-0.451-0.508-0.216-0.746-0.376
+                       c-0.117-0.079-0.4,0.236-0.534-0.107c0.443-0.082,0.131-0.883,0.632-0.773c0.595,0.132,0.875-0.714,1.47-0.373
+                       c-0.006-0.435,0.136-0.811,0.488-1.152c-0.484,0.199-0.917,0.457-1.327-0.039c-0.081-0.097-0.269-0.091-0.331,0.024
+                       c-0.374,0.676-0.965,0.931-1.7,1.01c-0.109,0.014-0.172,0.414-0.256,0.635c-0.858-0.511-1.274,0.698-2.051,0.532
+                       c-0.173-0.036-0.323,0.185-0.551-0.078c-0.18-0.204-0.605,0.178-0.496,0.472c0.085,0.232-0.003,0.382-0.183,0.46
+                       c-0.308,0.136-0.194-0.198-0.291-0.3c-0.285-0.306-0.558-0.625-0.835-0.937c-0.199,0.14-0.103,0.266-0.002,0.384
+                       c0.168,0.198,0.362,0.443,0.13,0.651c-0.217,0.191-0.369-0.111-0.527-0.236c-0.227-0.178-0.471-0.464-0.531,0.115
+                       c-0.015,0.142-0.031,0.28-0.153,0.04c-0.288-0.559-0.677-0.059-0.817,0.047c-0.594,0.449-0.826,0.395-1.153-0.449
+                       c0.7,0.365,1.134-0.542,1.92-0.204c-0.186-0.38-0.961-0.697-0.016-0.839c0.453-0.069,0.873-0.358,1.306-0.554
+                       c0.056-0.025,0.1-0.076,0.149-0.113c0.824,1.144,1.198-0.603,1.918-0.127c-0.072-0.551-0.451-0.312-0.616-0.5
+                       c0.157-0.268,0.463-0.351,0.694-0.287c0.865,0.245,1.035-0.174,0.869-1.014c0.463,0.228,0.853,0.488,0.87-0.284
+                       c0.005-0.269,0.504-0.3,0.82-0.221c0.232,0.059,0.423,0.272,0.795,0.16c-0.678-0.334-0.404-0.734-0.181-1.159
+                       c0.359-0.689,0.669,0.246,1.032-0.04c-0.325-0.656,0.3-0.778,0.932-1.15c-1.206,0.06-2.034,0.396-2.881,0.901
+                       c-0.247-0.136-0.007-0.481-0.123-0.789c-0.223,0.105-0.537,0.153-0.608,0.311c-0.11,0.245,0.14,0.727-0.274,0.75
+                       c-0.221,0.011-0.594-0.366-0.671-0.634c-0.119-0.404,0.34-0.517,0.61-0.706c0.031-0.021,0.013-0.108,0.031-0.301
+                       c-0.681,0.547-1.709,0.346-2.036,1.337c-0.238-0.208-0.539,0.013-0.781-0.108c-0.185-0.094-0.264-0.261-0.158-0.472
+                       c0.105-0.21,0.219-0.353,0.506-0.239c0.234,0.092,0.486,0.01,0.715-0.109c-0.014-0.458-0.734,0.127-0.662-0.466
+                       c0.051-0.431,0.235-0.652,0.692-0.55c-0.051-0.733,0.4-0.653,0.886-0.582c0.129,0.019,0.191-0.236,0.129-0.287
+                       c-0.669-0.543,0.068-0.846,0.325-1.387c-0.567,0.242-0.955,0.662-1.465,0.332c-0.117-0.073-0.282,0.027-0.249,0.167
+                       c0.181,0.83-0.803,0.655-0.981,1.165c-0.161-0.07-0.547,0.378-0.486-0.24c0.027-0.276-0.242-0.218-0.412-0.123
+                       c-0.304,0.172-0.616,0.327-0.974,0.257c-0.245-0.049-0.655,0.18-0.703-0.214c-0.037-0.329,0.316-0.405,0.615-0.426
+                       c0.07-0.004,0.136-0.077,0.189-0.109c-0.04-0.425-0.511-0.363-0.647-0.691c0.59-0.415,1.114,0.477,1.712,0.032
+                       c0.052-0.27-0.428-0.287-0.389-0.636c0.53-0.081,0.747,0.908,1.386,0.443c-0.011-0.452-0.588-0.132-0.677-0.509
+                       c0.901-0.238,1.427-1.664,2.752-0.672c-0.104-0.695,0.066-1.139,0.692-1.223c-0.25-0.468-0.977,0.539-1.025-0.43
+                       c-0.003-0.066-0.213,0.046-0.281,0.14c-0.463,0.632-1.423,0.649-1.76,1.434c-0.259-0.193-0.551,0.587-0.867-0.085
+                       c-0.157-0.33-0.586-0.129-0.849,0.195c-0.17,0.206-0.385,0.699-0.69,0.391c-0.3-0.304-0.476-0.808-0.542-1.249
+                       c-0.051-0.351,0.338-0.314,0.626-0.331c0.538-0.032,0.585-0.524,0.746-1.108c0.176-0.644,0.42-1.397,1.155-1.796
+                       c-0.862-0.253-1.571,0.496-2.402,0.125c-0.371-0.165-0.515,0.881-1.112,0.37c-0.438,0.634-0.958,0.846-1.622,0.312
+                       c-0.058,0.132-0.117,0.263-0.186,0.421c-0.297-0.519-0.244-1.071,0.115-1.397c0.625-0.566,0.431-0.795-0.22-1.01
+                       c-0.065-0.021-0.098-0.148-0.172-0.266c0.272-0.117,0.573,0.319,0.613,0.133c0.281-1.346,1.255-0.521,2.052-0.575
+                       c-0.357-0.434-0.91-0.208-1.099-0.663c0.685-0.197,1.612,0.166,1.971-0.829c-0.138-0.225-0.828,0.408-0.624-0.374
+                       c-0.316-0.063-0.418,0.282-0.686,0.361c-0.305,0.087-0.582,0.731-0.879,0.274c-0.263-0.403,0.488-0.298,0.65-0.632
+                       c-0.306-0.131-0.601-0.255-1.073-0.455c0.665-0.096,1.138,0.322,1.616-0.023c-0.28-0.452-0.857-0.012-1.261-0.526
+                       c0.707-0.068,1.009-0.844,1.784-0.713c0.089,0.014,0.202-0.117,0.303-0.182c-0.807-0.651,0.305-0.797,0.331-1.552
+                       c-0.608,1.018-1.864,0.797-2.174,1.911c-0.091,0.325-0.469,0.252-0.72,0.35c0.036-0.472-0.63-0.249-0.697-0.791
+                       c-0.069-0.53,0.228-0.454,0.437-0.676c0.672-0.709,1.523-1.099,2.341-1.622c-0.741,0.314-1.512,0.155-2.255,0.274
+                       c-0.344,0.055-0.573-0.158-0.852-0.247c-0.055-0.017-0.078-0.142-0.116-0.216c0.786,0.055,0.212-0.654,0.524-0.942
+                       c0.539-0.496-0.14-0.434-0.378-0.56c0.65-0.504,0.854-1.389,1.672-1.735c-0.722-0.207-1.3,1.364-2.014,0.034
+                       c-0.412-0.772,0.665-0.667,0.68-1.261c-0.554,0.036-0.756,0.506-1.057,0.795c-0.266,0.253-0.569,0.404-0.75,0.075
+                       c-0.136-0.242-0.582-0.617-0.068-0.944c0.125-0.077,0.206-0.138,0.157-0.27c-0.216-0.578-0.219-0.576,0.356-0.791
+                       c0.012-0.006,0.007-0.061,0.012-0.104c-0.324-0.39-0.676,0.238-1.075-0.059c0.618-0.874,1.134-1.805,1.397-2.873
+                       c-0.27,0.428-0.558,0.848-0.809,1.288c-0.132,0.23-0.3,0.381-0.546,0.473c-0.15,0.057-0.295,0.149-0.424,0.004
+                       c-0.153-0.172,0.105-0.278,0.103-0.367c-0.016-0.42,0.865-0.88-0.108-1.306c-0.297-0.131,0.317-0.538,0.359-0.986
+                       c-1.229,0.521-1.189-0.43-1.325-1.251c-0.357,0.263-0.126,0.519-0.176,0.71c-0.073,0.281,0.611,1.14-0.493,0.708
+                       c-0.083-0.033-0.202-0.008-0.191,0.122c0.014,0.138-0.051,0.35,0.179,0.362c0.327,0.017,0.518,0.168,0.596,0.495
+                       c-0.189,0.254-0.971-0.124-0.696,0.722c0.074,0.227-0.756,0.413-1.145,0.689c-0.467,0.331-0.352,0.507-0.272,0.899
+                       c0.03,0.154,0.527,0.151,0.147,0.431c-0.225,0.165-0.464,0.112-0.585-0.017c-0.364-0.394-0.732-0.539-1.157-0.151
+                       c-0.261,0.239-0.212,0.04-0.318-0.125c-0.187-0.289-0.306-0.694-0.86-0.564c-0.19,0.046-0.33-0.024-0.485,0.195
+                       c-0.28,0.398,0.239,0.234,0.257,0.428c0.007,0.1,0.141,0.191,0.219,0.286c0.127,0.149,0.463,0.039,0.442,0.383
+                       c-0.021,0.369-0.342,0.302-0.544,0.403c-0.157,0.076-0.329,0.118-0.732,0.254c1.006,0.1,1.648,0.559,2.441,0.723
+                       c-0.392,0.472-1.053,0.285-1.464,0.655c-0.032,0.028-0.347-0.133-0.353-0.216c-0.038-0.579-0.423-0.37-0.746-0.398
+                       c-0.229-0.019-0.35-0.35-0.713-0.35c0.057,0.365,1.136,0.818-0.007,1.084c0.084,0.236-0.09,0.608,0.425,0.606
+                       c0.281-0.002,0.714-0.197,0.78,0.494c0.047,0.491,0.719-0.229,1.039,0.163c-0.084,0.626-0.761,0.34-1.156,0.705
+                       c0.539,0.16,0.989,0.35,1.508,0.301c0.289-0.026,0.465,0.155,0.556,0.415c0.131,0.372-0.217,0.457-0.407,0.498
+                       c-0.599,0.128-1.211,0.876-1.82,0.017c-0.291,0.306-0.691,0.18-1.022,0.289c-0.11,0.038,0.098,0.28,0.31,0.304
+                       c0.191,0.021,0.509-0.115,0.495,0.238c-0.013,0.354-0.359,0.086-0.527,0.21c-0.135,0.1-0.333,0.117-0.599,0.203
+                       c0.767,0.464,1.485,0.859,2.279,1.091c0.202,0.059,0.574-0.185,0.53,0.24c-0.025,0.253-0.352,0.307-0.619,0.301
+                       c-0.085-0.002-0.172,0.054-0.556,0.187c0.828,0.085,1.45,0.053,1.779,0.63c0.115,0.204,0.422,0.361,0.253,0.638
+                       c-0.232,0.385-0.394-0.081-0.606-0.092c-1.159-0.061-2.318-0.136-3.493-0.206c0.039,0.496,0.56,0.155,0.627,0.437
+                       c0.055,0.229,0.087,0.576-0.04,0.713c-0.16,0.176-0.691,0.311-0.718,0.264c-0.3-0.518-0.846-0.309-1.227-0.375
+                       c-0.538-0.094-0.442-0.617-0.789-0.804c-0.163-0.089-0.149-0.392-0.44-0.085c-0.46,0.483-1.106,0.426-1.717,0.415
+                       c0.149,0.641,0.59,0.766,1.167,0.702c0.173-0.019,0.504,0.032,0.515,0.098c0.148,0.761,0.511,0.89,1.242,0.666
+                       c0.431-0.13,0.333,0.55,0.598,0.788c0.213,0.191-0.027,0.262-0.171,0.387c-0.302,0.264-0.355,0.106-0.633-0.093
+                       c-0.285-0.203-0.873,0.037-0.986-0.6c-0.012-0.064-0.129,0.035-0.182,0.114c-0.26,0.394-0.707,0.329-0.89,0.081
+                       c-0.507-0.681-1.315-0.517-1.956-0.912c0.172,1.075,1.215,0.769,1.746,1.25c-0.136,0.211-0.544,0.243-0.374,0.628
+                       c0.066,0.153,0.159,0.176,0.285,0.138c0.282-0.087,0.701-0.308,0.762,0.097c0.066,0.437-0.553,0.011-0.71,0.344
+                       c0.041,0.266,0.279,0.192,0.442,0.22c0.225,0.04,0.514-0.1,0.561,0.303c0.015,0.138,0.036,0.242-0.091,0.31
+                       c-0.261,0.14-0.476-0.015-0.692-0.13c-0.285-0.15-1.169-0.316-1.755-0.331c-0.083-0.002-0.189-0.055-0.246-0.119
+                       c-0.55-0.636-1.34-0.354-2.041-0.61c0.427,0.933,1.207,0.953,2.077,0.943c-0.596,0.401-0.25,1.004-0.667,1.6
+                       c0.801-0.338,0.827-1.502,1.678-1.148c0.217,0.091,0.501,0.7,0.361,1.33c0.542-0.456,0.934-0.439,1.397-0.077
+                       c0.506,0.398,1.019,0.841,1.697,0.952c0.179,0.03,0.465,0.039,0.419,0.251c-0.041,0.198-0.228,0.488-0.54,0.356
+                       c-0.41-0.176-0.775,0.224-1.189,0.041c-0.221-0.098-0.343,0.099-0.364,0.299c-0.019,0.177,0.128,0.26,0.277,0.323
+                       c0.467,0.197,0.469,0.198,0.781,0.795c0.056,0.104,0.117,0.09,0.213,0.064c0.469-0.132,0.808,0.093,0.743,0.536
+                       c-0.083,0.583-0.584,0.836-1.145,0.867c-0.219,0.013-0.437-0.261-0.783,0.073c0.827-0.051,0.632,1.092,1.465,1.005
+                       c-0.93,0.14-1.801-0.189-2.701-0.238c-0.523-0.028-0.882-0.135-1.13,0.473c0.174,0.159,0.883-0.409,0.645,0.385
+                       c-0.01,0.037,0.173,0.174,0.183,0.167c0.608-0.517,1.328,0.206,1.943-0.184c0.248-0.156,0.546-0.312,0.733,0.008
+                       c0.21,0.355-0.196,0.404-0.382,0.491c-0.548,0.257,0.41,0.249,0.068,0.545c-0.517,0.451-2.05,0.532-2.634,0.038
+                       c-0.119-0.102-0.221-0.064-0.318-0.015c-0.144,0.072-0.395,0.181-0.419,0.073c-0.273-1.131-1.314-0.172-1.84-0.69
+                       c-0.171-0.17-0.523-0.131-0.447-0.538c0.119-0.654-0.579-0.438-0.609-0.376c-0.365,0.704-1.011,0.316-1.559,0.381
+                       c0.262,0.485,0.517,0.826,1.081,0.684c0.571-0.144,0.027,0.473,0.469,0.666c0.824,0.363,1.566,0.874,2.616,0.793
+                       c-0.21,0.34-0.741,0.507-0.46,0.863c0.208,0.264,0.461-0.053,0.705-0.184c0.421-0.226,0.867,0.057,1.051,0.363
+                       c0.512,0.842,1.512,0.787,2.17,1.329c0.559,0.459,1.172,0.508,1.823,0.233c0.057-0.023,0.167-0.055,0.172-0.044
+                       c0.524,1.054,1.456,0.355,2.376,0.494c-0.669,0.329-1.177,0.58-1.687,0.829c0.525,0.748,1.323,0.045,1.897,0.455
+                       c-0.641,1.122-1.983,0.545-2.91,1.127c0.343,0.257,0.629,0.472,1.017,0.759c-0.715-0.017-1.254-0.384-1.918-0.221
+                       c-0.447,0.11-0.695-0.559-0.961-0.908c-0.278-0.365,0.41-0.369,0.425-0.772c-0.427-0.339-1.002,0.164-1.449-0.146
+                       c-0.429-0.298-0.874-0.569-1.396-0.6c-0.13-0.507,0.567-0.507,0.486-1.027c-0.727,0.21-1.6,1.051-2.075-0.34
+                       c-0.374,0.313-0.023,0.556-0.059,0.866c-0.546-0.253-0.977,0.359-1.553,0.193c0.245,0.206,0.493,0.413,0.733,0.615
+                       c-1.041,0.578-1.245,0.481-1.504-0.787c-0.291,0.333-0.624,1.046-0.841,0.006c-0.028-0.14-0.159-0.163-0.295-0.098
+                       c-0.643,0.313-1.117,0.228-1.644-0.36c-0.299-0.334-0.969-0.331-1.616-0.523c0.199,0.423,0.854,0.565,0.328,1.086
+                       c0.885-0.205,0.885-0.205,1.849,0.31c-0.127,0.188-0.321,0.104-0.478,0.129c-0.151,0.023-0.314-0.004-0.508,0.264
+                       c0.449-0.017,0.725,0.401,1.181,0.184c0.197-0.093,0.33-0.064,0.14,0.155c-0.303,0.35,0.291,0.333,0.209,0.577
+                       c0.683-0.183,0.949,0.761,1.764,0.578c0.436-0.098,1.249,0.321,1.266,1.196c0.017,0.837,0.482,0.491,0.821,0.239
+                       c0.525-0.391,0.509-0.41,0.649,0.211c0.054,0.238,0.335,0.46,0.439,0.371c0.716-0.621,0.939,0.151,1.336,0.433
+                       c-0.538,0.427-1.001,1.003-1.875,0.861c0.303,0.65,1.021,0.995,0.898,1.754c0.54-0.136,0.932,0.455,1.402,0.35
+                       c0.295-0.066,0.463-0.106,0.362,0.189c-0.264,0.767,0.245,0.984,0.765,1.144c0.357,0.112,0.512,0.442,0.826,0.576
+                       c-0.654,0.655-0.99-0.297-1.537-0.308c-0.361-0.006-0.595-0.17-0.769,0.304c-0.112,0.303-0.41,0.642-0.752,0.631
+                       c-0.524-0.017-0.125-0.53-0.275-0.71c-0.148-0.183-0.251-0.506-0.589-0.496c-0.709,0.019-0.818-0.144-0.568-0.838
+                       c-0.326-0.143-0.505,0.374-0.831,0.198c-0.153-0.369,0.301-0.333,0.371-0.551c-0.441-0.312-0.922-0.061-1.378-0.138
+                       c-0.507-0.089,0.04,0.501-0.193,0.715c-1.697-0.968-3.43-1.873-5.448-2.16c0.528,1.023,1.461,1.479,2.278,2.124
+                       c1.097,0.862,2.15,0.786,3.365,0.642c0.121,0.46-0.495,0.51-0.495,0.899c0.538-0.063,1.091-0.049,1.612-0.396
+                       c-0.461,0.562-0.845,1.044-0.85,1.803c-0.004,0.436-0.337,1.026,0.046,1.265c0.388,0.239,1.085,0.634,1.494-0.335
+                       c-0.327,0.321-0.197,0.6-0.197,0.854c0,0.171,0.078,0.312,0.244,0.349c0.223,0.051,0.202-0.176,0.291-0.284
+                       c0.183-0.22,0.185-0.677,0.595-0.583c0.074,0.017,0.316,0.326,0.396,0.597c0.159,0.537-0.375,0.382-0.484,0.579
+                       c-0.67,1.2-1.786,0.459-2.676,0.667c-0.056,0.01-0.119-0.021-0.18-0.033c0.417-1.198-0.975-0.019-0.919-0.759
+                       c-0.015-0.317,0.549-0.162,0.528-0.537c-0.225-0.386-1.612,0.913-0.856-0.795c-0.539,0.164-0.985,0.316-1.414-0.08
+                       c0.069,0.141,0.141,0.28,0.211,0.421c-0.68,0.177-1.249-0.296-1.897-0.323c-0.233-0.01-0.274-0.178-0.214-0.409
+                       c0.045-0.176-0.168-0.356-0.262-0.258c-0.796,0.82-0.862-0.202-1.244-0.49c-0.416,0.291-0.54,0.831-0.484,1.185
+                       c0.07,0.436,0.639,0.369,1.049,0.383c0.197,0.006,0.624-0.119,0.289,0.354c-0.027,0.037-0.021,0.098-0.032,0.149
+                       c0.119-0.015,0.257,0.006,0.352-0.048c0.349-0.202,0.586-0.07,0.837,0.259c-0.38,0.033-0.711,0.061-1.174,0.101
+                       c0.321,0.353,0.297,0.963,1.005,0.551c0.225-0.129,0.439,0.403,0.827,0.349c-0.308,0.444-0.605,0.676-1.138,0.417
+                       c-0.291-0.142-0.83-0.216-0.885,0.136c-0.054,0.339-0.16,0.953,0.531,1.089c0.28,0.055,0.902-0.306,0.745,0.573
+                       c-0.066,0.377,0.191,0.424-0.51,1.089c1.347-0.357,1.465,1.548,2.737,1.274c0.072,0.301-0.649,0.576-0.176,0.778
+                       c0.325,0.139,0.484,0.944,1.066,0.387c0.107-0.102,0.293-0.175,0.37,0.059c0.076,0.225-0.024,0.367-0.257,0.387
+                       c-0.376,0.037-0.695,0.193-1.176,0.459c1.176,0.17,2.2,1.067,3.153-0.265c0.206,0.269,0,1.063,0.739,0.597
+                       c0.168-0.108,0.707-0.578,0.888,0.113c0.146,0.557,0.067,1.042-0.555,1.295c-0.204,0.081-0.439-0.123-0.628,0.103
+                       c0.148,0.391,1.004,0.195,0.783,0.928c-0.029,0.093,0.228,0.153,0.389,0.058c0.285-0.162,0.574-0.132,0.871-0.019
+                       c-0.053,0.394-0.465,0.529-0.484,1.033c-0.014,0.427-0.854,0.326-1.302,0.133c-0.62-0.267-1.213-0.252-1.85-0.123
+                       c-0.257,0.051-0.591,0.036-0.811-0.089c-1.231-0.699-2.529-1.174-3.929-1.401c-0.845-0.138-0.104-0.5-0.042-0.895
+                       c-1.368,0.18-2.718,0.31-4.127-0.109c0.653,1.031,1.472,1.514,2.489,1.796c0.168,0.047,0.597,0.458,0.777,0.728
+                       c0.266,0.4-0.269,0.651-0.545,0.791c-0.37,0.185-0.947,1.057-1.187-0.157c-0.096-0.488-0.792,0.187-0.868-0.411
+                       c-0.36,0.047-0.139,0.247-0.105,0.4c-0.76,0.081-0.276,0.896-0.694,1.19c-0.072,0.052-0.026,0.19,0.081,0.22
+                       c0.809,0.23,1.006,1.342,1.955,1.363c0.126,0.002,0.215-0.025,0.155,0.181c-0.199,0.7,0.36,0.727,0.882,0.812
+                       c-0.386,0.437-1.238,0.079-1.247,0.918c0,0.086-0.48-0.033-0.522-0.18c-0.214-0.749-0.652-0.557-1.075-0.251
+                       c-0.223-0.384,0.236-0.324,0.226-0.536c-0.06-0.03-0.13-0.091-0.16-0.074c-0.682,0.358-1.213,0.213-1.676-0.411
+                       c-0.174-0.233-1.155-0.419-1.628-0.561c-0.474-0.143-0.771-0.785-1.345-0.633c-0.439,0.113-0.811,0.032-1.191-0.157
+                       c-0.134,0.381,0.079,0.437,0.306,0.479c0.176,0.034,0.482,0.085,0.274,0.298c-0.382,0.394,0.006,0.369,0.187,0.436
+                       c0.17,0.062,0.522,0.083,0.52,0.094c-0.091,0.873,0.663,1.098,1.177,1.369c0.429,0.225,1.064,0.278,1.531,0.144
+                       c0.543-0.155,0.856,0.055,1.237,0.296c0.109,0.068,0.146,0.08,0.128,0.248c-0.118,1.069,0.383,1.546,1.442,1.353
+                       c0.572-0.104,0.833,0.411,1.122,0.655c0.263,0.221-0.272,0.472-0.57,0.637c-0.21,0.117-0.627,0.224-0.42,0.592
+                       c0.157,0.277,0.38-0.028,0.542-0.112c0.286-0.143,0.711,0.103,0.885-0.324c0.121,0.356,0.337,0.712,0.338,1.07
+                       c0.002,0.312-0.364,0.281-0.606,0.21c-0.953-0.282-1.903-0.579-2.851-0.88c-0.077-0.023-0.148-0.195-0.186-0.183
+                       c-1.331,0.422-2.285-0.623-3.44-0.871c-0.41-0.087-0.879,0.182-1.244-0.329c0.025,0.706,0.974,0.816,0.686,1.569
+                       c-0.047,0.123,0.246,0.114,0.393,0.131c1.023,0.117,1.142,0.3,0.796,1.268c0.444,0.143,0.956-0.752,1.289-0.012
+                       c0.24,0.539-0.674,0.295-0.716,0.794c0.444,0.017,0.898-0.233,1.334,0.015c0.127,0.071,0.416-0.072,0.329,0.27
+                       c-0.062,0.251-0.17,0.396-0.457,0.293c-0.199-0.07-0.469-0.368-0.558,0.083c-0.064,0.329,0.14,0.456,0.47,0.553
+                       c0.57,0.165,1.142,0.332,1.418,1.014c0.165,0.411,0.949,0.355,1.068,0.295c0.752-0.386,0.766,0.654,1.291,0.585
+                       c-0.055,0.243-0.085,0.776-0.255,0.644c-0.626-0.493-0.766,0.192-1.129,0.298c-0.236,0.068-0.638-0.148-0.913-0.29
+                       c-0.455-0.234-1.02,0.065-1.4-0.358c-0.157,0.272-0.79-0.033-0.679,0.545c0.101,0.528,1.164,1.338,1.738,1.301
+                       c0.174-0.012,0.377-0.199,0.383,0.121c0.013,0.694,0.622,0.622,1.24,0.845c-1.556,0.489-2.779-0.778-4.16-0.259
+                       c-0.144-0.293,0.399-0.334,0.308-0.623c-0.121-0.187-0.246-0.098-0.391-0.018c-0.444,0.237-0.818,0.481-1.082-0.297
+                       c-0.126-0.378-0.846-0.004-1.197-0.434c0.398,0.287-0.76,0.874,0.264,1.037c0.185,0.03-0.281,0.27-0.223,0.53
+                       c0.295,0.202,0.654-0.005,0.996,0.124c-0.064,0.444-0.476,0.512-0.794,0.671c0.191,0.387,0.511,0.543,0.843,0.583
+                       c0.267,0.032,0.652-0.295,0.749,0.172c0.079,0.381-0.514,0.111-0.617,0.527c0.779-0.025,1.121,0.79,1.857,0.855
+                       c-0.052,0.277-0.722,0.151-0.353,0.583c0.281,0.329,0.793,0.6,1.135,0.439c0.766-0.357,0.958-0.066,1.045,0.616
+                       c0.026,0.209,0.102,0.509,0.452,0.22c0.308-0.253,0.669-0.293,1.16-0.048c-1.014,0.279-0.599,1.234-0.983,1.829
+                       c-0.139,0.217-0.083,0.532-0.468,0.51c-0.297-0.018-0.666,0.099-0.647-0.419c0.012-0.367-0.304-0.273-0.491-0.387
+                       c-0.473-0.289-1.049-0.281-1.47-0.698c0.264,0.468,0.809,0.744,0.387,1.399c-0.141,0.217,0.198,0.045,0.303,0.098
+                       c0.311,0.161,0.648,0.17,1.122,0.159c-0.425,0.774-1.277,0.038-1.665,0.626c0.417,0.293,0.898,0.093,1.331,0.178
+                       c0.106,0.019,0.277-0.035,0.242,0.158c-0.019,0.112-0.127,0.301-0.244,0.208c-0.405-0.323-0.743,0.244-1.184-0.126
+                       c0.054,0.62,0.946,0.732,0.46,1.419c0.865-0.727,1.113,0.933,1.985,0.212c-0.364,1.107,0.353,1.769,1.823,1.898
+                       c-0.21,0.528-0.686,0.681-1.109,0.879c-0.201,0.093-0.469,0.125-0.382,0.417c0.081,0.272,0.376,0.214,0.565,0.178
+                       c0.613-0.121,1.136-0.523,1.829-0.464c0.299,0.024,0.297,0.051,0.229,0.25c-0.072,0.209-0.748,0.592,0.163,0.469
+                       c0.06-0.01,0.077,0.212-0.061,0.283c-0.212,0.112-0.427,0.214-0.576,0.29c-0.13,0.524,0.739-0.202,0.429,0.481
+                       c-0.149,0.329-0.312,0.636-0.743,0.532c-0.209-0.049-0.278-0.4-0.627-0.219c-0.422,0.219-0.509-0.369-0.83-0.447
+                       c-0.505-0.121,0.151,0.741-0.454,0.539c-0.143-0.049-0.321-0.036-0.434-0.118c-0.569-0.42-1.229-0.637-1.881-0.869
+                       c-0.009-0.402,0.484-0.214,0.565-0.468c-0.238-0.357-1.219,0.445-0.901-0.655c0.059-0.202-0.127-0.127-0.235-0.085
+                       c-0.126,0.051-0.215,0.315-0.37,0.149c-0.915-0.991-0.938,0.354-1.378,0.56c-0.19,0.089,0.189,0.258,0.337,0.45
+                       c-1.265,0.268-2.471,0.389-3.576-0.433c-0.098-0.073-0.305-0.181-0.32-0.162c-0.818,1.047-0.807-0.229-1.175-0.419
+                       c-0.137-0.069-0.345-0.236-0.395-0.198c-0.501,0.394-1.436-0.049-1.686,0.899c0.262,0.083,0.513,0.162,0.78,0.245
+                       c-0.239,0.226-0.434,0.411-0.771,0.729c0.936-0.115,1.548,0.125,1.747,0.978c0.039,0.164,0.238,0.333,0.326,0.25
+                       c0.552-0.516,0.768,0.698,1.284,0.23c0.072,0.903,0.618,0.182,0.951,0.276c0.189,0.558-0.566,0.483-0.619,1.014
+                       c0.558-0.628,0.452,0.634,0.97,0.214c0.074,0.643-0.807,0.876-0.625,1.623c0.156,0.65,0.247,1.206,1.088,1.113
+                       c0,0.066,0.025,0.144-0.005,0.178c-0.212,0.255-0.873,0.009-0.774,0.437c0.112,0.483,0.569-0.098,0.881,0.034
+                       c0.186,0.078,0.527-0.123,0.578,0.131c0.087,0.42-0.051,0.857-0.237,1.243c-0.129,0.268-0.362,0.14-0.558,0.046
+                       c-0.14-0.067-0.299-0.207-0.422-0.182c-1.254,0.257-1.277-0.483-1.045-1.427c-1.068,0.657-2.098,0.882-3.237,0.562
+                       c-0.257-0.072-0.39-0.136-0.4-0.396c-0.005-0.17-0.098-0.379-0.253-0.317c-0.996,0.401-1.359-0.892-2.339-0.714
+                       c0.892,0.139,0.51,1.218,1.268,1.49c0.191,0.071,0.024,0.274-0.044,0.397c-0.096,0.176-0.206,0.352,0.065,0.449
+                       c1.048,0.376,1.973,1.429,3.253,0.621c0.062-0.04,0.179,0.014,0.345,0.032c-0.176,0.387-0.495,0.543-0.803,0.708
+                       c-0.317,0.169-0.633,0.34-0.926,0.654c1.086-0.709,2.113,0.391,3.285-0.145c-0.295,0.554-0.838,0.589-1.002,0.99
+                       c1.149,0.813,1.71-0.774,2.703-0.722c0.045,0.468-0.747,0.271-0.55,0.843c0.05,0.149-0.779,0.013-0.446,0.512
+                       c0.272,0.408,0.463-0.287,0.865-0.175c-0.27,0.411-0.312,0.902-0.72,1.262c0.403,0.284,0.634-0.06,0.907-0.1
+                       c0.458-0.066,0.9-0.31,1.35,0.152c0.257,0.26,0.54,0.359,0.119,0.696c-0.339,0.27-0.459,0.481,0.013,0.846
+                       c0.212,0.162,0.615,0.581,0.346,1.108c-0.183,0.359,0.389,0.299,0.378,0.316c-0.352,0.595-0.032,0.748,0.486,0.788
+                       c-0.068,0.821,0.455-0.046,0.684,0.217c0.115,0.132,0.669-0.559,0.911-0.065c0.24,0.493-0.261,0.743-0.822,0.946
+                       c0.357,0.159,0.59,0.261,0.79,0.35c0.087,0.168-0.029,0.225-0.098,0.232c-0.681,0.072-1.42,0.28-1.702-0.678
+                       c-0.031-0.105-0.151-0.186-0.23-0.277c-0.567,0.706-0.97-0.198-1.472-0.185c-0.089,0.396,0.376,0.381,0.419,0.653
+                       c-0.115,0.157-0.385,0.013-0.476,0.277c0.068,0.038,0.138,0.11,0.212,0.114c0.285,0.014,0.589-0.191,0.837,0.165
+                       c0.121,0.174,0.085,0.379-0.025,0.347c-0.769-0.23-1.608,0.529-2.336-0.181c-0.317-0.309-0.712-0.338-1.122-0.216
+                       c-0.159,0.499,1.153,0.844,0.083,1.439c0.376,0.06,0.643,0.253,1.024,0.064c0.66-0.323,0.067,0.666,0.546,0.591
+                       c0.358-0.057,0.713-0.136,1.068-0.205c-0.397,0.704,0.386,0.421,0.552,0.659c0.378,0.544-0.348,0.606-0.423,0.942
+                       c0.468,0.246,0.903,0.459,1.4-0.226c0.004,0.585-0.837,1.016-0.187,1.196c0.564,0.153,1.059,1.325,1.841,0.289
+                       c0.192-0.251,0.577-0.543,0.559,0.201c-0.007,0.361,0.382-0.123,0.511,0.207c-0.046,0.061-0.153,0.142-0.182,0.245
+                       c-0.11,0.416-0.816,0.45-0.708,0.883c0.138,0.543,0.665-0.068,0.95,0.167c0.104,0.086,0.427,0.122,0.303,0.232
+                       c-0.328,0.285,0.153,0.725-0.21,0.912c-0.321,0.164-0.698,0.345-1.036,0.325c-1.54-0.1-3.056-0.485-4.625-0.283
+                       c-0.363,0.045-0.763-0.212-1.145-0.335c-0.813-0.263-1.557-0.717-2.495-0.57c-0.494,0.077-1.126-0.238-1.358-0.608
+                       c-0.551-0.876-1.396-1.003-2.242-1.236c-0.773-0.214-0.769-0.232-0.319-0.959c-0.755,0.715-1.263-0.28-1.938-0.208
+                       c-0.117,0.013-0.426-0.266-0.431-0.109c-0.009,0.27-0.306,0.507-0.162,0.713c0.149,0.208,0.167,0.314-0.042,0.43
+                       c-0.247,0.136-0.654,0.134-0.482,0.602c0.164,0.445,0.58,0.079,0.943,0.346c0.068,0.102-0.66,0.585,0.029,0.557
+                       c0.892-0.035,1.719,0.266,2.615,0.424c-1.013,0.238-2.024,0.485-3.039,0.71c-0.268,0.06-0.749-0.278-0.711,0.315
+                       c0.034,0.523,0.481,0.55,0.898,0.515c0.783-0.066,1.571,0.018,2.374-0.062c-0.232,0.136-0.471,0.264-0.699,0.409
+                       c-0.477,0.301-0.499,0.32-0.187,0.806c0.156,0.242-0.533,0.357-0.047,0.553c0.343,0.138,0.358-0.389,0.546-0.371
+                       c1.034,0.103,1.699-1.302,2.904-0.685c-0.646,0.635-1.287,1.239-1.254,2.262c0.251-0.063,0.525-0.216,0.618-0.142
+                       c0.644,0.527,1.226,0.712,1.84-0.049c0.136-0.17,0.226,0.097,0.326,0.195c0.21,0.21,0.13,0.449-0.018,0.581
+                       c-0.427,0.38-0.776,0.95-1.47,0.827c-0.593-0.106-0.898,0.34-1.298,0.607c-0.101,0.067-0.233,0.137-0.112,0.284
+                       c0.1,0.123,0.257,0.269,0.391,0.14c0.376-0.365,0.965-0.181,1.289-0.607c0.191,0.289-0.23,0.401-0.049,0.669
+                       c0.771-0.494,1.794-0.193,2.524-0.902c0.459,2.365-1.346,2.765-2.807,3.504c0.487-0.108,0.82,0.136,1.209,0.336
+                       c0.494,0.254,1.078,0.22,1.495-0.279c0.18-0.214,0.399-0.564,0.645-0.263c0.206,0.255-0.185,0.491-0.389,0.629
+                       c-0.25,0.17-0.57,0.23-0.853,0.351c-0.325,0.14-0.69,0.34-0.437,0.735c0.131,0.204,0.381,0.679,0.823,0.272
+                       c0.102-0.094,0.293-0.085,0.421-0.159c0.21-0.119,0.443-0.38,0.635-0.08c0.166,0.262-0.036,0.58-0.227,0.746
+                       c-0.877,0.763-1.47,0.801-2.506,0.174c-0.223-0.134-0.336,0.028-0.503,0.051c-1.137,0.161-2.228,0.272-3.365-0.26
+                       c-0.779-0.364-1.743-0.356-2.631-0.448c-0.872-0.089-0.398,0.906-0.907,1.265c-0.299,0.21,0.455,0.384,0.685,0.43
+                       c0.701,0.14,0.743,0.551,0.594,1.126c0.405-0.033,0.56-0.576,1.034-0.398c-0.142,0.274-0.04,0.564-0.365,0.88
+                       c-0.371,0.363,0.193,0.705,0.544,0.82c0.658,0.219,1.333,0.075,1.938-0.218c0.356-0.171,0.671-0.178,0.939,0.036
+                       c0.397,0.316-0.2,0.455-0.174,0.623c0.093,0.623-0.274,0.891-0.703,1.167c-0.106,0.068-0.257,0.225-0.133,0.398
+                       c0.108,0.147,0.269,0.078,0.424,0.078c0.809-0.002,1.323-0.633,1.999-0.914c0.732-0.306,0.719-0.337,0.773,0.47
+                       c0.395-0.267,0.464-0.723,0.776-1.212c0.098,1.008-0.36,1.623-1.118,2.286c0.762-0.053,1.187-0.297,1.486-0.776
+                       c0.28,0.355-0.163,0.624,0.145,0.905c0.364-0.276,0.45-0.75,0.728-1.117c0.28,0.421,0.571,0.64,0.747-0.052
+                       c0.096-0.379,0.234-0.629,0.697-0.559c0.274,0.041,0.367-0.141,0.334-0.417c-0.075-0.634,0.685-0.498,0.857-0.91
+                       c0.535,0.238,0.778,0.627,0.58,1.183c0.142,0.106,0.208,0.065,0.278-0.007c0.223-0.225,0.215-0.708,0.692-0.649
+                       c0.134,0.017,0.232,0.124,0.208,0.264c-0.065,0.378-0.371,0.562-0.655,0.746c-0.151,0.098-0.363,0.104-0.44,0.312
+                       c0.023,0.053,0.034,0.136,0.074,0.153c1.232,0.545,1.452,0.581,1.536,0.181c0.159-0.738,1.144-0.615,1.275-1.389
+                       c-0.485,0.015-0.63,0.649-1.131,0.579c-0.17-0.899,0.683-1.035,1.112-1.432c0.179-0.167,0.3,0.272,0.311,0.516
+                       c0.01,0.257-0.154,0.6,0.259,0.674c0.403,0.074,0.517-0.258,0.641-0.545c0.123-0.282,0.259-0.561,0.355-0.85
+                       c0.084-0.253,0.26-0.387,0.488-0.334c0.283,0.066,0.214,0.291,0.176,0.53c-0.063,0.398-0.698,0.915-0.21,1.118
+                       c0.429,0.178,0.338-0.653,0.576-0.922c0.246-0.276,0.733-0.516,1.083-0.478c0.787,0.084,1.478-0.15,2.2-0.387
+                       c-0.55,0.649-0.984,1.447-2.06,1.155c-0.223-0.06-0.442,0.072-0.459,0.428c-0.019,0.457-0.066,0.456-0.554,0.203
+                       c0.312,0.933,0.556,0.927,2.123-0.046c0.022,0.48,0.019,0.476-0.365,0.812c-0.15,0.135-0.443,0.246-0.246,0.506
+                       c0.121,0.159,0.089,0.423,0.378,0.483c0.586,0.123,1.206-0.112,1.771,0.191c0.017,0.007,0.119-0.119,0.162-0.193
+                       c0.558-0.97,0.728-1.008,1.431-0.318c0.445-0.296-0.514-0.577-0.051-0.756c0.442-0.17,0.28,0.452,0.522,0.628
+                       c0.106,0.078,0.457-0.017,0.302,0.317c-0.064,0.138-0.16,0.303,0.05,0.369c0.066,0.023,0.177-0.164,0.283-0.189
+                       c0.278-0.068,0.563-0.1,0.831-0.144c0.141-0.349-0.597-0.328-0.276-0.655c0.227-0.228,0.619-0.428,0.934-0.312
+                       c0.396,0.146,0.021,0.602,0.195,0.981c0.147-0.21,0.265-0.346,0.344-0.502c0.062-0.121-0.072-0.317,0.153-0.398
+                       c0.189,0.002,0.257,0.147,0.253,0.31c-0.011,0.6,0.524,0.464,0.815,0.553c0.384,0.117,0.26-0.303,0.376-0.487
+                       c0.332-0.534,0.942-0.884,1.553-0.855c0.46,0.021,0.291,0.564,0.099,0.761c-0.52,0.531-0.885,1.101-1.129,1.822
+                       c-0.134,0.396-0.683,0.53-1.207,0.353c-0.408-0.136-0.828-0.191-1.297-0.191c-0.96-0.002-0.525,1.177-1.261,1.216
+                       c0.145,0.317,0.409,0.677,0.719,0.515c0.735-0.384,1.497,0.093,2.283-0.271c0.863-0.401,1.565,0.286,1.538,1.31
+                       c0.467-0.321,0.8-0.806,1.446-0.719c0.248,0.034,0.463-0.329,0.214-0.541c-0.557-0.472-0.025-0.691,0.115-1.065
+                       c0.348-0.93,1.453-0.905,1.922-1.652c0.025-0.04,0.416,0.046,0.437,0.126c0.193,0.755,0.557,0.138,0.839,0.123
+                       c-0.038-0.485,0.981-0.666,0.418-1.233c-0.265-0.266-0.021-0.277,0.043-0.368c0.081-0.117,0.147-0.191,0.346-0.03
+                       c0.754,0.613,1.644,0.426,2.17-0.379c0.253-0.39,0.185-0.598-0.254-0.774c-0.184-0.076-0.48-0.234-0.389-0.54
+                       c0.038-0.127,0.205-0.27,0.336-0.3c0.394-0.091,0.289,0.353,0.432,0.518c0.217-0.475,0.417-0.915,0.617-1.359
+                       c0.086,0.561,0.415,0.876,0.89,1.064c0.666,0.26,0.333,0.866,0.345,1.261c0.145,5.601,0.234,11.202,0.336,16.805
+                       c0.002,0.092-0.028,0.187-0.043,0.279H1587.305z"/>
+       </g>
+       <g>
+               <path fill="#2A3524" d="M1647.321,294.903c0.323-1.814-1.06-2.805-1.608-4.11c-0.376-0.9-1.006,0.633-1.877,0.284
+                       c-1.07-0.43-2.023,0.846-1.771,2.101c0.1,0.502,0.346,0.825,0.856,0.891c0.561,0.073,0.752-0.336,0.988-0.744
+                       c0.265-0.458-0.485-1.738,0.792-1.306c0.9,0.306-0.145,1.02-0.103,1.569c0.009,0.123-0.04,0.25-0.082,0.502
+                       C1645.584,293.726,1646.226,294.736,1647.321,294.903 M1661.086,396.399c0.827,0.53,2.398-0.049,2.27,1.89
+                       c-0.047,0.71,1.096,0.47,1.771,0.157c0.425-0.196,1.207-0.094,0.894-0.872c-0.601-1.488-0.42-3.225-1.52-4.557
+                       c-0.282-0.339-0.384-0.827-0.945-0.81c-0.302,0.009-0.686-0.099-0.824,0.294c-0.176,0.504,0.189,0.805,0.465,1.176
+                       c0.775,1.041,0.283,2.269-0.926,2.362C1661.842,396.07,1661.377,395.881,1661.086,396.399 M1687.262,456.058
+                       c-2.26-0.409-4.282-0.891-6.364-0.723c1.34,1.728,3.289,0.812,4.892,1.325c1.081,0.346,2.285,0.31,3.436,0.434
+                       c2.117,0.227,0.533-1.782,1.391-2.315c0.108-0.065,0.297-0.075,0.34-0.164c0.1-0.211,0.254-0.521,0.17-0.668
+                       c-0.087-0.155-0.442-0.257-0.654-0.225c-1.364,0.216-2.545,0.64-2.12,2.447c-0.63-0.098-0.418-0.5-0.52-0.752
+                       c-0.393-0.965-1.136-0.972-2.02-0.919C1686.021,455.369,1686.877,454.909,1687.262,456.058 M1663.121,265.246
+                       c0.038,1.211,1.898,3.175,2.684,2.892c1.873-0.673,3.722-1.418,5.57-2.164c0.805-0.325-0.166-1.304,0.561-1.689
+                       c-0.468-0.118-0.767,0.031-1.166,0.37c-0.525,0.445-1.291,0.785-1.86-0.112c-0.321-0.509-1.049,0.204-1.338-0.433
+                       c-0.374,0.37,0.184,0.613,0.125,0.962c-0.157,0.931-0.556,1.844-1.399,2.139c-0.758,0.267-0.718-0.649-0.799-1.153
+                       c-0.066-0.412-0.437-0.362-0.522-0.281C1664.121,266.581,1663.843,265.38,1663.121,265.246 M1601.56,371.479
+                       c-0.788,0.03-0.93,1.375-1.259,0.715c-0.869-1.739-1.598,0.041-2.368-0.038c-0.587-0.06-0.625,0.886-0.455,1.45
+                       c0.16,0.527,0.433,1.15,1.164,0.948c0.82-0.225,1.737,0.134,2.487-0.459c0.571-0.45,0.93-0.202,1.182,0.459
+                       c-0.679,0.185-1.348,0.366-2.106,0.573c1.387,1.123,2.555-0.524,3.81-0.153c-0.041-0.692,0.566-1.304,0.337-1.997
+                       c-0.724-0.314-0.928,1.156-1.559,0.424C1602.284,372.81,1601.29,372.478,1601.56,371.479 M1660.742,332.566
+                       c-2.316-0.706-2.236-3.481-4.143-4.407c-0.665-0.324-0.921-0.61-1.142-1.231c-0.279-0.778-1.083-1.327-1.742-0.929
+                       c-0.764,0.462-1.202,1.378-0.282,2.271c0.174,0.168,0.291,0.638,0.375,0.623c1.846-0.331,2.122,1.584,3.193,2.331
+                       C1658.126,332.01,1659.47,331.979,1660.742,332.566 M1625.24,331.155c-0.843-0.245-0.758-1.943-1.856-1.48
+                       c-2.215,0.936-4.334,2.106-6.475,3.211c-0.573,0.295-0.427,0.759-0.282,1.327c0.231,0.889,0.913,0.283,1.329,0.545
+                       c0.605,0.382,0.95-0.348,0.905-0.616c-0.302-1.761,0.981-1.173,1.643-1.023c0.608,0.137,1.13,0.382,1.687,0.123
+                       c0.189-0.659-1.353-1.179-0.5-1.185C1622.974,332.046,1623.879,330.89,1625.24,331.155 M1626.333,460.663
+                       c-0.645-0.26-1.07-0.306-1.295-0.546c-0.618-0.655-1.181-0.791-1.662,0.061c-0.361,0.64-1.234,1.249-0.107,2.084
+                       c0.928,0.688,0.565,1.088-0.463,1.249c-1.321,0.206-2.058,0.844-1.429,2.332c0.191,0.452,0.315,1.025-0.208,1.389
+                       c-0.303,0.21-0.826,0.261-0.306,0.757c0.393,0.374,0.837,0.641,1.345,0.194c0.628-0.55,1.225-1.19,0.906-2.089
+                       c-0.231-0.652-0.01-0.995,0.493-1.249c0.705-0.358,0.813-0.983,1.036-1.669C1624.938,462.271,1624.998,461.163,1626.333,460.663
+                        M1630.377,427.299c0.079,1.453,1.431,1.807,1.858,2.748c0.399,0.882,1.039,0.627,1.614,0.549
+                       c0.737-0.098,0.741-0.719,0.792-1.336c0.092-1.135-0.463-2.243-0.106-3.376c0.246-0.787-0.142-1.107-0.809-1.474
+                       c-1.049-0.575-1.553,0.213-2.121,0.706c-0.636,0.553-0.065,0.997,0.326,1.431c0.321,0.357,0.867,0.617,0.672,1.376
+                       C1631.878,427.846,1631.148,427.846,1630.377,427.299 M1658.759,388.589c1.888-0.236,3.759-0.225,5.942,0.191
+                       c-0.663-1.075,0.153-2.945-2.047-2.177c-0.17,0.061-0.61-0.319-0.763-0.749c-0.522-1.457-2.397-2.007-3.151-0.834
+                       c-0.274,0.428-2.115,1.748,0.338,2.325C1660.23,387.616,1659.279,388.167,1658.759,388.589 M1655.998,376.04
+                       c0.083-1.021-0.227-1.281-1.225-0.974c-1.077,0.329-2.272-0.272-2.081-1.295c0.246-1.298-0.499-1.329-1.128-1.342
+                       c-1.053-0.021-2.079,0.063-2.644,1.376c-0.463,1.079,0.419,1.22,0.809,1.626c0.59,0.615,1.523,0.43,2.296,0.632
+                       c0.656,0.172,1.508-0.242,1.748,0.922c0.125,0.613,0.851,0.405,1.302,0.234C1655.61,377.021,1656.178,376.758,1655.998,376.04
+                        M1653.671,410.038c-0.036-0.791-0.349-1.589-0.82-2.253c-0.559-0.79-1.293-0.315-2.03-0.093
+                       c-0.822,0.247-1.684,1.223-1.538,1.395c1.043,1.243,1.309,2.563,1.03,4.102c-0.048,0.263,2.379,0.901,2.353,0.731
+                       C1652.435,412.491,1653.616,411.448,1653.671,410.038 M1690.22,435.077c-0.072,0.075-0.144,0.153-0.213,0.23
+                       c-0.233-0.207-0.462-0.424-0.7-0.626c-0.429-0.365-0.739-1.232-1.412-0.129c-0.264,0.433-0.882,2.349-0.483,2.762
+                       c0.126,0.13,0.302,0.234,0.476,0.297c1.281,0.458,3.245-0.253,3.733-1.34c0.986-2.21,0.572-3.602-1.278-4.461
+                       c-0.359-0.167-0.732-0.472-1.049-0.206c-0.38,0.315-0.284,0.827-0.093,1.259C1689.529,433.605,1689.878,434.339,1690.22,435.077
+                        M1647.071,376.516c-0.108-1.645-1.797-1.79-2.77-2.595c-0.921-0.758-1.441-0.2-1.473,0.771c-0.037,1.212-0.225,2.556,0.225,3.598
+                       c0.331,0.77,1.584,1.027,2.556,0.304c0.022-0.017,0.242,0.223,0.361,0.349c0.34,0.36,0.719,0.763,1.219,0.369
+                       c0.468-0.37,0.221-0.95,0.215-1.449C1647.398,377.4,1646.342,377.341,1647.071,376.516 M1665.886,376.942
+                       c-0.115-2.449-0.466-3.047-2.406-4.721c-0.446-0.386-0.792-0.586-1.311-0.233c-1.032,0.698-1.21,0.111-1.121-0.777
+                       c0.057-0.578-0.24-0.858-0.728-0.917c-0.578-0.068-0.576,0.502-0.773,0.841c-0.909,1.566,0.56,1.824,1.297,2.641
+                       C1662.22,375.302,1663.764,376.382,1665.886,376.942 M1643.998,433.935c1.834,2.558,2.009,5.221,1.157,8.077
+                       c0.667-0.089,1.355,0.251,1.584,1.261c0.215,0.953,1.141,0.853,1.78,1.174c0.214,0.11,0.474-0.053,0.376-0.198
+                       c-0.792-1.173,0.66-0.831,0.96-1.486c-0.973,0.355-1.332-0.838-2.218-0.623c-0.303,0.074,0.241,1.111-0.543,0.534
+                       c-0.333-0.244-0.701-0.759,0.047-1.238c0.238-0.151,0.252-0.991,0.08-1.391c-0.448-1.033-0.514-1.029,0.65-1.097
+                       c0.412-0.023,0.811-0.104,0.986-0.436c0.204-0.38-0.308-0.472-0.476-0.711C1647.285,436.225,1645.985,434.859,1643.998,433.935
+                        M1669.729,410.168c0.402,0.646,0.88,0.894,1.478,1.031c0.723,0.167,1.82,0.186,0.894,1.437c-0.051,0.07,0.107,0.428,0.166,0.428
+                       c1.913-0.013,3.411,1.306,5.216,1.609c0.329,0.055,0.815,0.176,0.98-0.318c0.143-0.43-0.161-0.602-0.494-0.866
+                       c-2.054-1.639-4.067-3.333-6.065-5.041c-0.287-0.244-0.559-0.365-0.826-0.199c-0.155,0.099-0.289,0.527-0.204,0.657
+                       C1671.853,410.418,1670.647,410.203,1669.729,410.168 M1647.78,476.47c1.34,0.471,2.52,0.202,2.879-0.754
+                       c0.204-0.537-0.739-1.482-1.11-2.268c-0.488-1.037-1.258-1.685-2.387-1.87c-0.75-0.125-0.947,0.21-0.673,0.885
+                       c0.08,0.197-0.113,1.696-0.244,1.825c-0.353,0.348-0.922,0.653-0.638,1.245c0.769,1.603,1.774,3.066,2.908,4.433
+                       c0.034,0.039,0.475,0.357,0.668-0.369C1649.555,478.177,1648.466,477.612,1647.78,476.47 M1612.755,277.519
+                       c0.143,0.236,0.069,0.435-0.006,0.701c-0.278,0.985-0.505,1.834,0.794,2.535c1.36,0.734,1.561-0.346,1.986-0.952
+                       c0.363-0.515,0.554-0.635,0.996-0.185c0.367,0.373,0.616,0.404,0.65-0.232c0.034-0.627,0.76-1.592,0.703-1.569
+                       c-2.324,0.967-0.145-1.116-0.814-1.182c-0.114,0.063-1.053-0.226-1.119-0.364c-0.096-0.203-0.219-0.301-0.371-0.086
+                       c-1.347,1.923-0.593-0.575-0.99-0.513c-2.056,1.32-4.264,2.243-6.373,3.338C1610.827,278.661,1611.949,278.227,1612.755,277.519
+                        M1607.404,416.748c0.499-0.844,1.051-1.661,1.465-2.545c0.126-0.268,0.654-0.925,0.058-0.993
+                       c-0.402-0.048-0.857-0.786-1.481,0.009c-0.685,0.875-1.737,1.461-2.633,2.167c-0.461,0.361-1.157,0.865-0.665,1.367
+                       c0.565,0.579,0.121,1.816,1.506,1.877c2.536,0.112,4.629-0.988,6.749-2.084c0.248-0.127,0.612-0.566,0.363-0.764
+                       c-0.352-0.276-1.191-0.548-1.314-0.399C1610.438,416.612,1608.799,416.198,1607.404,416.748 M1662.67,425.039
+                       c-0.235-0.225-0.467-0.539-0.45-0.955c0.032-0.742-0.516-1.223-1.028-1.103c-0.524,0.123-0.976,0.634-1.384,1.202
+                       c-0.676,0.939,0.27,0.882,0.486,1.156c0.588,0.757,1.232,1.499,1.977,2.091c1.275,1.014,1.155,1.669-0.613,2.195
+                       c0.968-0.007,1.679,1.128,2.361,0.145c0.896-1.292,1.703-2.661,2.383-4.077c0.246-0.505,0.231-1.287-0.215-1.835
+                       c-0.801-0.986-1.639-1.946-2.582-3.06c-0.151,1.841,0.234,3.188,1.713,4C1664.458,425.808,1663.588,423.635,1662.67,425.039
+                        M1653.49,428.226c-0.667-0.329,0.968-1.169-0.55-1.061c-0.412,0.03-0.656-0.341-0.819-0.704
+                       c-0.846-1.864-1.612,0.498-2.428,0.045c-0.289,0.721-0.987,1.542,0.002,2.146c1.901,1.156,3.423,2.7,4.902,4.325
+                       c0.624,0.685,1.07,0.325,1.654-0.342c0.819-0.938,0.856-1.919,0.728-3c-0.004-0.029-0.599-0.041-0.892,0.036
+                       c-0.393,0.1-0.605,0.942-1.062,0.512c-0.551-0.52-0.02-1.037,0.368-1.471c0.299-0.333,0.312-0.72,0.06-1.05
+                       c-0.47-0.623-0.716,0.051-1.06,0.213C1654.063,428.033,1653.711,428.143,1653.49,428.226 M1631.98,270.502
+                       c-1.796,0.769-0.904,2.112-1.127,3.135c-0.087,0.408,0.267,1.275-0.653,0.917c-0.496-0.191-1.25,1.392-1.454-0.252
+                       c-0.062-0.489-0.677-0.7-0.99-0.458c-0.825,0.638-0.794,0.057-0.891-0.492c-0.047-0.267,0.15-0.752-0.251-0.74
+                       c-0.28,0.007-0.695,0.117-0.868,0.605c-0.253,0.72-0.275,1.652-1.353,1.835c-1.413,0.242-2.357,1.258-3.29,2.228
+                       c-0.737,0.766,0.238,1.501,0.143,2.269c0.63-0.187,1.513,0.153,1.779-0.797c0.18-0.64,0.372-0.778,0.815-0.176
+                       c0.34,0.465,0.442,0.231,0.415-0.19c-0.068-1.135,1.439-1.212,1.527-2.294c0.029-0.333,0.69-0.356,0.645-0.002
+                       c-0.11,0.842,0.181,0.961,0.841,0.715c0.834-0.31-0.335-0.817,0.189-1.264c1.387,0.697,2.752-0.151,4.154-0.352
+                       c0.581-0.083,1.491-0.366,1.006-1.698C1632.29,272.59,1631.254,271.793,1631.98,270.502 M1627.88,291.631
+                       c-0.538-0.181-0.007-1.342-0.559-1.03c-1.093,0.618-1.221-0.583-1.178-0.694c0.29-0.753-0.022-0.812-0.648-0.827
+                       c-0.465-0.013-0.939-0.396-1.228,0.336c-0.291,0.735-0.679,1.43-1.127,2.351c-0.446-0.959-0.59-1.877-1.291-2.528
+                       c-0.264-0.246,0.125-1.111-0.829-0.757c-0.707,0.264-0.976,0.712-0.794,1.389c0.098,0.371,0.788,0.619,0.232,1.114
+                       c-1.249,1.116-1.243,1.095,0.044,2.035c1.111,0.81,2.243,1.543,3.772,1.701c-0.145-0.655-0.873-1.091-0.374-1.602
+                       c0.37-0.381,0.994-0.243,1.482-0.127c0.714,0.166,1.404,0.445,2.262,0.729c-1.3-1.685,1.671-1.611,0.949-2.968
+                       C1627.814,290.603,1628.285,291.477,1627.88,291.631 M1609.821,324.273c0.567-0.779,0.516-1.833-0.181-2.206
+                       c-0.841-0.449-2.051-0.301-2.905,0.198c-0.775,0.454-0.344,1.301-0.1,2.035c0.361,1.086,0.168,2.067-0.943,2.674
+                       c-0.775-0.668-0.227-1.949-1.321-2.91c0.192,1.13,0.147,1.921-0.634,2.328c-0.797,0.417-0.608,0.931-0.166,1.378
+                       c0.42,0.425,0.809,0.783,0.841,1.444c0.108,2.199,1.845-0.086,2.419,0.863c0.416-0.272,0.838-0.534,1.237-0.825
+                       c0.06-0.045,0.065-0.269,0.011-0.35c-1.522-2.257,2.325-2.185,1.741-4.027c1.183,0.549,1.028-0.7,1.561-0.97
+                       C1610.466,323.032,1610.632,324.626,1609.821,324.273 M1652.11,260.813c1.31,0.854,1.642,2.25,2.571,3.276
+                       c-0.756,0.261-1.382,0.479-2.321,0.804c2.547,1.856,5.403,1.342,7.881,2.184c0.287-0.749-0.59-1.071-0.266-1.776
+                       c0.111-0.245-0.428-1.086-0.798-1.191c-0.732-0.205-1.216-0.604-1.242-1.369c-0.019-0.562,1.136-1.156,0.138-1.552
+                       c-0.374-0.147-1.338-1.21-1.848,0.176c-0.076,0.204-0.182-0.289-0.256-0.472c-0.476-1.189-1.631-0.897-2.53-1.161
+                       C1654.045,261.121,1652.709,260.426,1652.11,260.813 M1625.176,396.219c-0.335,0.597-0.792,1.119-0.386,1.904
+                       c0.172,0.334-0.215,0.569-0.529,0.622c-0.287,0.05-0.45-0.154-0.482-0.458c-0.302-2.692-2.277,0.297-3.024-0.893
+                       c-0.472,1.044-1.115,2.158-0.608,3.26c0.446,0.973,1.067,1.879,2.576,1.732c2.551-0.252,3.188-2.79,5.238-3.666
+                       c-0.584-0.476-0.963,0.485-1.321-0.157c0.091-0.825,2.301-0.261,1.172-1.867c-0.039-0.057,0.163-0.37,0.312-0.459
+                       c1.452-0.842,0.581-2.244,1.108-3.26c-1.219-0.178-0.291,1.83-1.79,1.285c-0.076-0.027-0.431,1.139-0.767,1.739
+                       C1626.047,397.122,1626.238,397.231,1625.176,396.219 M1665.737,421.79c0.548-0.765,0.892-1.661,1.866-1.094
+                       c2.354,1.375,4.759,1.314,7.438,0.382c-2.236-0.008-3.738-0.878-4.685-2.68c-0.461-0.881-1.859-0.814-2.022-2.001
+                       c-0.68,1.124-2.28,0-2.884,1.311c1.278-2.787,1.049-3.803-1.178-5.083c-0.259-0.149-0.465-0.564-0.805-0.361
+                       c-0.563,0.336,0.147,0.791,0.1,0.846c-0.786,0.934,0.598,1.767,0.134,2.645c-0.827,0.008-0.559-1.135-1.311-1.185
+                       c0.007,1.82,0.083,1.724,1.347,2.702c0.6,0.466,1.327,1.546,1.153,2.067C1664.514,420.463,1665.266,420.918,1665.737,421.79
+                        M1657.257,439.511c-0.297,0.863-1.541-0.496-1.259,0.95c0.015,0.073-0.257,0.291-0.393,0.287
+                       c-0.327-0.005-0.384-0.295-0.373-0.555c0.023-0.513,0.097-1.023,0.11-1.534c0.006-0.28-0.174-0.483-0.459-0.533
+                       c-0.248-0.043-0.257,0.167-0.354,0.333c-0.559,0.97-0.924,1.041-1.168,0.068c-0.253-1.015-1.657-1.544-1.164-2.892
+                       c0.04-0.107-0.283-1.778-1.272-1.608c-0.554,0.094-0.65,1.085-0.705,1.794c-0.104,1.361,0.645,2.433,1.181,3.548
+                       c0.567,1.174,1.531,0.339,2.355,0.278c0.411-0.03,1.008,0.204,1.027,0.677c0.018,0.444-0.142,1.041-0.694,1.222
+                       c-1.091,0.357-1.136,0.38-0.509,1.171c0.554,0.699,1.276,1.254,1.637,2.118c0.471,1.128,1.565,0.646,2.196,0.491
+                       c1.133-0.28,2.14-1.02,2.951-1.93c0.002-0.003-0.183-0.14-0.246-0.238c-1.372-2.123-2.742-4.248-4.111-6.374
+                       C1656.372,437.769,1655.474,439.34,1657.257,439.511 M1627.177,366.185c-2.236-1.537-4.608,0.466-6.796-0.728
+                       c-0.31-0.169-0.323,0.264-0.395,0.494c-0.18,0.566-0.478,0.817-0.875,0.183c-0.268-0.428-0.547-0.376-0.958-0.261
+                       c-2.206,0.627-0.866,3.189-2.314,4.228c-0.1,0.071-0.14,0.432-0.061,0.513c0.265,0.265,0.218,0.714,0.655,0.891
+                       c1.975,0.802,5.498-0.026,6.805-1.773c0.345-0.46,0.768-0.66,1.178-0.893C1625.607,368.166,1626.55,367.283,1627.177,366.185
+                        M1682.683,389.38c-1.847,0.281-2.888,1.669-4.462,1.701c-0.441,0.01-0.063,0.396,0.035,0.53c0.486,0.659,0.93,1.622,1.926,1.259
+                       c1.274-0.464,1.454,1.178,2.365,1.083c1.691-0.174,1.795-0.312,2.536,0.752c0.626,0.901,2.109,0.12,2.398,1.42
+                       c0.794-0.759,2.257-1.25,1.866-2.604c-0.63-2.174-1.348-4.36-3.534-5.66c-1.062-0.632-1.236,0.663-1.953,0.631
+                       C1684.41,390.344,1682.832,389.161,1682.683,389.38 M1666.673,482.249c0.572-1.405-0.424-2.511-0.159-3.621
+                       c0.573-2.411-0.803-3.938-2.161-5.569c-0.801-0.965-1.568-0.602-2.324-0.144c-0.943,0.569-1.752,1.297-3.013,1.141
+                       c-0.735-0.091-1.438,0.198-0.833-0.999c0.414-0.819,0.161-1.323-0.909-1.552c-0.81-0.174-2.665,0.299-1.822-1.82
+                       c0.123-0.306-0.771-0.085-1.185-0.293c-0.204-0.1-0.671,0.409-0.42,0.834c0.592,0.996,1.234,1.926,0.287,3.096
+                       c-0.177,0.218-0.032,0.735,0.305,1.041c1.018,0.93,1.589,2.26,3.411,2.337c0.977,0.042,3.009-0.471,3.056,1.817
+                       c0.006,0.257,0.953,0.507,1.474,0.734c0.261,0.113,0.59-0.051,0.777,0.365C1663.855,481.161,1665.51,481.312,1666.673,482.249
+                        M1645.858,487.906c0.1,0.723-0.187,1.391-0.686,1.671c-1.771,0.995-1.996,2.839-1.826,4.342c0.429,3.798-0.89,7.681,0.949,11.449
+                       c1.047,2.145,1.964,4.631,3.121,5.441c-2.38,1.274-2.947,3.116-1.273,4.739c0.04-1.392,0.558-2.321,1.832-2.849
+                       c1.011-0.419,0.773-1.42,0.414-2.162c-0.18-0.372-0.775-0.503-0.129-0.987c0.586-0.439,0.372-1.969,1.191-1.65
+                       c1.109,0.428-0.584,1.567,0.159,2.396c0.238-0.434,0.493-0.897,0.75-1.365c0.11,0.068,0.231,0.109,0.299,0.195
+                       c0.499,0.626-0.658,1.975,0.948,2.17c0.14,0.017-1.13,2.241-1.445,2.222c-1.696-0.106-0.944,1.346-0.7,1.592
+                       c0.645,0.653,0.467,1.001,0.148,1.743c-1.221,2.846-2.686,5.503-4.865,7.734c-1.909,1.955-2.815,4.306-2.682,7.053
+                       c0.132,2.706-0.081,13.608,0.595,16.307c0.478,1.907,0.029,0.367-1.916,0c-2.954-0.56-5.929,0.362-8.911,0
+                       c-1.017-0.123-1.165,0.848-1.04,0c0.799-5.371,1.569-20.003,1.714-25.425c0.127-4.824,1.089-9.651,0.461-14.444
+                       c-0.253-1.942,0.338-3.71,0.155-5.585c-0.194-1.991-0.032-4.016-0.045-6.024c-0.017-2.413-0.208-2.532-2.465-1.716
+                       c-0.449,0.162-1.069,0.454-1.34-0.141c-0.219-0.485,0.318-0.831,0.717-0.994c3.855-1.586,3.292-5.039,3.43-8.165
+                       c0.057-1.32-0.543-1.716-1.835-1.094c-0.69,0.331-1.881,1.244-2.166,0.548c-0.448-1.084,1.055-1.117,1.765-1.495
+                       c1.546-0.822,2.478-1.911,2.3-3.788c-0.142-1.489,0.543-3.023-0.242-4.487c-0.811-0.002-1.393,0.965-2.322,0.589
+                       c0.011-0.898,0.981-0.685,1.315-1.232c0.524-0.856,0.376-1.441-0.58-1.48c-0.488-0.023-0.754-0.204-0.851-0.583
+                       c-0.13-0.506,0.225-0.903,0.597-1.132c1.171-0.723,1.83-1.773,2.036-3.088c0.079-0.508,0.219-1.077-0.552-1.444
+                       c-0.841-0.4-0.761,0.128-0.983,0.598c-0.24,0.509-0.627,0.153-0.969-0.005c-1.227-0.568-2.489-1.102-3.083-2.44
+                       c-0.478-1.076-1.425-1.021-2.028-0.522c-0.697,0.577-1.463,1.665-1.081,2.488c0.41,0.891,1.365-0.051,2.013-0.253
+                       c0.516-0.163,0.892-0.743,1.484-0.176c0.399,0.378,0.16,0.7-0.095,1.001c-0.427,0.504-0.172,1.637-1.362,1.451
+                       c-0.405-0.064-1.144-0.566-1.142,0.239c0.002,0.849-0.078,1.918-0.834,1.816c-0.946-0.129-1.147-1.234-0.744-2.267
+                       c-1.095,1.208-0.497,3.145-2.106,4.1c-0.397,0.237,0.424,0.616,0.751,0.857c0.782,0.583,1.903,0.767,2.368,2.097
+                       c-1.127-0.238-2.074-0.462-3.03-0.63c-0.342-0.06-0.76-0.221-0.962,0.323c-0.179,0.481,0.163,0.633,0.395,0.931
+                       c0.941,1.219,2.002,2.396,2.667,3.761c0.652,1.334,1.055,2.738,2.54,3.432c0.233,0.108,0.607,0.329,0.452,0.727
+                       c-0.061,0.159-0.355,0.398-0.393,0.37c-1.835-1.2-2.174,1.139-3.374,1.428c-0.397,0.094-0.624,0.785-1.204,0.174
+                       c-0.584-0.616-0.864,0.143-0.608,0.372c0.99,0.891,0.035,2.185,1.028,3.143c-1.282-0.14-2.316-0.253-3.348-0.366
+                       c-0.128,1.11,0.794,1.117,1.358,1.421c0.525,0.279,0.64,0.687,0.406,1.104c-0.305,0.546-0.624-0.024-0.943-0.105
+                       c-0.433-0.11-0.696-0.499-1.363-0.146c-0.852,0.451-1.134,0.015-0.862-1.018c0.064-0.238,0.131-0.596,0.01-0.749
+                       c-1.2-1.495-0.919-2.292,1.018-2.623c0.607-0.104,0.62-0.893,0.55-1.495c-0.417,0.078-0.973-0.471-1.236,0.315
+                       c-0.208,0.625-0.846,0.837-1.219,0.461c-0.45-0.455-0.296-1.255-0.141-1.848c0.128-0.495,0.695-0.731,1.232-0.606
+                       c0.298,0.069,0.544,0.34,0.833,0.485c0.371,0.186,0.616-0.063,0.807-0.324c0.259-0.353,0.08-0.524-0.272-0.711
+                       c-1.034-0.548-1.342-1.6-1.631-2.617c-0.221-0.774,0.195-1.442,0.864-1.62c0.941-0.247,0.858-0.763,0.701-1.796
+                       c-1.285,2.17-3.413,1.743-5.092,2.001c-2.239,0.342-2.407,0.081-3.782,0.955c-0.78,0.499-0.536,0.985-0.194,1.781
+                       c-0.979-0.27-1.784-1.02-2.754-0.353c0.435,0.524,0.956-0.312,1.393,0.36c-0.675,2.136-3.226,2.815-4.109,5.076
+                       c-0.796-1.023,0.297-1.648-0.196-2.325c-0.719-0.129-0.435,0.885-1.013,0.937c-0.222-0.016-0.418-0.199-0.278-0.335
+                       c0.501-0.491-0.127-0.986,0.07-1.457c-0.524-0.091-0.982,0.149-1.346,0.434c-1.346,1.057-2.982,1.585-4.445,2.425
+                       c-0.072,0.839,1.115,0.967,0.869,1.856c-0.866,0.392-0.922-0.566-1.403-0.904c0.023,0.965-0.844,1.652-0.663,2.801
+                       c-0.378-1.504-1.775-0.378-2.341-1.169c-0.637,0.583-1.002,1.276-0.936,2.173c0.021,0.291,0.062,0.821-0.359,0.726
+                       c-1.183-0.266-2.38-0.243-3.564-0.374c-0.375-0.039-0.921-0.657-0.961-1.051c-0.051-0.506,0.618-0.478,1.051-0.597
+                       c0.612-0.168,1.193-0.456,1.79-0.681c0.633-0.238,1.086-0.803,0.765-1.322c-0.272-0.441,0.318-1.53-0.931-1.373
+                       c-0.53,0.065-1.138-0.504-1.074-0.916c0.079-0.507,0.76-0.71,1.344-0.708c0.448,0.002,0.871-0.009,1.289,0.278
+                       c1.638,1.125,2.653,0.341,3.695-1.888c-3.37,3.745-4.343-1.039-6.772-1.16c0.159,1.019,1.654,2.535-0.851,2.246
+                       c-0.85-0.098-0.952,0.678-0.848,1.437c0.043,0.32,0.172,0.846-0.323,0.995c-0.685,0.21-0.342-0.732-0.826-0.804
+                       c-0.408,0.108-0.344,0.458-0.414,0.768c-0.097,0.434,0.312,1.27-0.496,1.193c-0.808-0.078-0.958-1.012-0.648-1.535
+                       c0.503-0.842,0.127-1.461-0.181-2.226c-0.37,0.312-0.329,1.197-1.017,0.971c-0.631-0.206-0.427-0.872-0.419-1.365
+                       c0.02-1.399-1.69-2.75-3.34-2.195c1.138-1.06,0.159-2.109,0.569-3.088c0.145-0.35-0.185-0.52-0.541-0.616
+                       c-0.524-0.141-0.503,0.179-0.531,0.507c-0.072,0.866-0.89,1.152-1.472,2.151c0.045-2.449-1.308-1.945-2.219-1.371
+                       c-1.132,0.714-2.111-0.571-3.222,0.051c-0.263,0.146,0.585-0.736,0.062-1.01c-0.18-0.093-0.599,0.386-0.939,0.456
+                       c-0.424,0.088-0.879,0.021-1.327,0.021c0.076-1.363,1.306-1.154,1.977-1.618c1.899-1.315,4.044-2.053,6.365-2.246
+                       c1.023-0.085,1.342,0.959,1.981,1.403c1.043,0.726,2.716,0.162,3.281,1.693c0.068,0.183,0.418,0.3,0.49-0.129
+                       c0.162-0.972,1.228-0.987,1.791-1.947c0.098,1.52,1.212,2.156,1.699,3.241c0.38,0.843,2.089-0.267,2.629-0.864
+                       c0.552-0.606,0.987-1.22,1.743-1.072c0.856,0.166,0.567,0.702,0.325,1.419c-0.212,0.627,0.941,0.308,1.372,0.714
+                       c0.148,0.138,0.849,0.587,0.868-0.019c0.032-1.063,0.848-0.857,1.36-1.014c1.422-0.438,2.471-1.148,3.058-2.623
+                       c0.377-0.94,1.178-0.998,1.894-0.143c0.172,0.206-0.582,0.916,0.322,0.637c0.327-0.101,0.519-0.463,0.289-0.953
+                       c-0.548-1.159-1.108-2.243-2.765-2.131c-0.479,0.509,0.306,1.632-0.762,2.124c-0.546-0.647,0.121-1.597-0.541-2.339
+                       c-0.036,2.325-2.409,1.078-3.292,2.418c-0.161-0.972,0.153-2.53-1.559-1.488c-0.471,0.287-0.749,0.078-0.917-0.285
+                       c-0.263-0.568,0.042-1.08,0.493-1.323c0.722-0.388,1.546-0.581,2.291-0.931c0.654-0.308,1.367-0.562,0.282-1.418
+                       c-0.749-0.592-0.894-2.053-2.37-1.411c-0.059,0.026-0.114,0.064-0.168,0.096c-0.201-2.145-2.934-0.801-3.293-2.681
+                       c-0.548,0.53-0.485,1.048-0.338,1.406c0.453,1.08,1.253,2.22-0.947,2.018c0.007,1.319-1.315,1.777-1.773,2.719
+                       c-0.567,1.165-2.264,0.83-2.493,2.212c-0.48-1.423-1.4-0.104-2.037-0.334c-1.389-0.502,0.105-1.596-0.526-2.519
+                       c-0.187,2.303-2.009,1.601-3.222,1.945c-0.698,0.199-0.756-0.202-0.552-0.92c0.274-0.964,1.404-0.938,1.673-1.748
+                       c0.128-0.383,0.852-0.925-0.044-1.234c-0.389-0.133-0.909-0.308-1.211,0.359c-0.18,0.398-0.173,1.087-0.913,1.035
+                       c0.363-0.91-1.745-0.308-0.917-1.503c-1.697-0.09-0.125-1.154-0.48-1.648c-0.123-0.034-0.308-0.132-0.348-0.091
+                       c-0.434,0.444-0.845,0.91-1.262,1.368c-0.463-1.6-2.319-0.968-3.115-1.929c-0.518-0.627-0.053-1.173,0.682-1.095
+                       c2.671,0.275,4.763-1.965,7.453-1.628c1.115,0.14,0.395-0.991,0.826-1.482c0.98,1.488,2.143,0.371,3.277,0.274
+                       c-0.272-0.725-1.085-0.479-1.694-1.031c1.263-0.853,2.45-1.202,3.813-0.468c0.26,0.138,0.585,0.62,0.79,0.276
+                       c0.937-1.57,2.545-0.577,3.751-1.072c0.851-0.35,2.144-0.064,2.024-1.666c-0.024-0.351,0.401-0.62,0.862-0.296
+                       c0.412,0.289,0.826,0.609,1.291,0.783c2.364,0.887,5.4-0.999,5.534-3.583c0.038-0.738,0.722-1.43,0.179-2.195
+                       c-2.232,0.653-3.209-0.479-2.835-3.341c-0.963,0.177,0.057,1.509-1.065,1.564c-0.745-0.519,0.105-1.127,0.07-1.89
+                       c-0.929,0.191-1.639,1.312-2.792,0.597c-0.42-0.263-1.255-0.12-1.308-0.784c-0.049-0.591,0.55-1.012,1.106-1.194
+                       c2.185-0.721,4.02-2.301,6.575-2.519c-1-1.376-0.924-2.237,0.819-2.598c1.693-0.35,2.863-1.397,3.226-3.382
+                       c-2.155,0.191-3.128,2.287-4.914,2.968c-1.546-1.771,0.635-3.713-0.18-5.551c-0.113-0.251,0.208-0.573,0.431-0.531
+                       c3.882,0.726-0.983-2.162,0.924-2.232c-0.37-0.17-0.782-0.295-0.979,0.176c-0.245,0.589-0.669,0.621-1.068,0.34
+                       c-0.364-0.256-0.194-0.685-0.019-1.05c0.962-1.993,1.65-4.176,3.183-5.794c0.62-0.653-0.461-0.687-0.047-1.337
+                       c0.871-1.366,1.807-2.094,3.44-1.859c0.414,0.059,0.968,0.106,0.977-0.591c0.004-0.298,0.125-0.646-0.263-0.842
+                       c-0.48-0.244-0.818-0.3-0.869,0.415c-0.017,0.263-0.363,0.036-0.422,0.085c-1.083,0.887-1.625-0.443-2.366-0.691
+                       c-0.922-0.308-2.07-0.441-2.735-1.38c-0.41-0.579-0.546-0.262-0.665,0.214c-0.136,0.536-0.571,0.765-1.303,1.027
+                       c0.466-1.298,0.857-2.418,1.267-3.531c0.208-0.562,0.346-1.437-0.21-1.459c-0.569-0.023-1.054-1.269-1.701-0.176
+                       c-0.367,0.616-0.708-0.189-1.143-0.076c-0.726,0.187-1.193,0.352-0.766,1.238c0.454,0.944-0.774,2.105,0.055,2.862
+                       c1.561,1.419-0.085,3.652,1.471,5.028c0.268,0.236,0.16,0.817-0.392,1.1c-0.61,0.315-0.981,0.201-1.181-0.415
+                       c-0.142-0.435-0.474-0.548-0.843-0.788c-0.119,1.275-0.225,2.422-0.329,3.541c-0.379,0.458-0.837-2.097-1.172,0.066
+                       c-0.052,0.346-0.442,0.762-0.859,0.583c-0.547-0.234-0.087-0.621,0-0.955c0.111-0.436,0.262-1.03-0.178-1.252
+                       c-1.317-0.658-0.835-1.639-0.61-2.656c-0.849,1.357-3.227,1.279-3.093,3.483c-1.561,0.085-1.702,1.232-1.941,2.418
+                       c-0.051,0.256-0.905,0.614-1.221,0.491c-0.393-0.155-0.724-0.767-0.247-1.274c0.673-0.711,0.366-1.27-0.161-1.767
+                       c-0.306,0.223-0.697,0.382-0.883,0.672c-0.291,0.458-0.638,0.707-1.082,0.405c-0.362-0.247-0.218-0.685-0.038-1.051
+                       c0.319-0.65,0.395-1.316,0.206-2.005c-0.928-0.023-0.422,1.035-1.04,1.176c-0.701-0.975-0.656-2.082-0.459-3.234
+                       c-0.93,0.174-0.733,1.218-1.639,1.366c-0.007-1.208-0.438-2.194-2.188-2.22c2.72-1.355,4.965-2.997,7.822-1.54
+                       c0.48,0.245,3.257-1.941,3.276-2.451c0.026-0.789-0.787-0.327-1.111-0.774c-0.802-1.099-1.312-2.552-2.939-2.844
+                       c-0.246-0.044-0.56-0.384-0.441-0.767c0.121-0.382,0.499-0.372,0.807-0.382c0.86-0.031,1.472-0.018,1.59-1.286
+                       c0.151-1.622,1.986-1.448,3.005-1.648c1.17-0.227,1.599-0.01,0.459-1.022c-0.183-0.164,0.35-0.418-0.011-0.663
+                       c-0.7,0.071-0.492,1.223-1.316,1.153c-0.039-1.669-1.453-2.706-3.345-2.398c-0.32-1.467,1.688-1.154,1.822-2.613
+                       c-0.816,0.706-1.622,0.872-2.47,1.105c-0.348-0.822,0.639-1.103,0.707-1.726c0.034-0.542-2.323,1.421-0.792-0.755
+                       c0.102-0.144-0.618,0.351-0.968-0.021c-0.293-0.31-0.285-0.572,0.04-0.782c0.693-0.45,1.396-1.275,2.232-0.953
+                       c2.536,0.974,5.316,0.265,7.89,1.363c0.881,0.374,1.639,1.194,2.766,1.211c0.584,0.008,0.922-0.134,0.982-0.56
+                       c0.112-0.778-0.748-0.13-1.039-0.625c0.641-0.453,1.364-0.259,1.994-0.27c1.733-0.03,2.65-1.195,3.659-2.338
+                       c0.578-0.656,1.245-1.288,2.243-1.319c1.157-0.035-0.308-1.27,0.656-1.491c0.201-0.045-0.145-0.189-0.257-0.268
+                       c-0.572-0.415-0.571,0.247-0.805,0.445c-0.595,0.504-1.584,0.462-1.678,1.961c-0.609-1.242,0.825-3.225-1.58-2.443
+                       c-0.367,0.119-0.405-0.361-0.223-0.691c0.302-0.549,0.814-1.039,0.508-1.76c-0.694,0.079-0.501,0.85-0.907,1.131
+                       c-0.305,0.21-0.248,0.888-0.871,0.676c0.782-1.548-2.777,0.869-1.333-1.493c0.482-0.789-0.741-0.071-0.943-0.5
+                       c1.302-0.932,2.309-2.05,2.546-3.554c-3.102,0.424-4.57,3.099-6.485,5.231c-0.656-0.814,0.792-1.584-0.039-1.871
+                       c-0.447-0.155-1.586-0.824-2.166,0.471c-0.208,0.462-1.49,1.378-1.456-0.545c0.006-0.301-1.555-0.476-0.092-1.637
+                       c-1.11,0.694-1.747,1.491-2.841,1.111c0.185-0.803,0.633-1.315,1.351-1.742c0.807-0.482,1.889-1.042,1.994-1.971
+                       c0.24-2.108,1.405-1.213,2.399-0.921c0.415,0.121,0.956,0.583,1.164,0.028c0.312-0.831-0.592,0.188-0.775-0.4
+                       c-0.225-0.723-0.263-1.266,0.42-1.703c-0.59-0.559-1.276,0.525-1.788-0.319c-0.408-0.676,0.325-0.865,0.431-1.55
+                       c-1.106,0.615-2.03,0.737-3.298,0.428c-1.433-0.348-2.248-1.01-2.973-2.04c-0.53-0.752-1.095,0.219-1.741-0.14
+                       c0.312-0.671,0.512-1.601,1.344-1.321c1.436,0.481,2.565-0.457,3.855-0.54c0.129-0.007,1.074-0.128,0.405-0.812
+                       c-0.082-0.083,0.009-0.335,0.021-0.51c2.417,0.714,2.727-3.209,5.636-2.38c1.292,0.369,3.899-0.077,5.008-2.188
+                       c0.204-0.389,0.675-0.681,0.363-1.129c-0.306-0.439-0.603-0.027-0.945,0.136c-1.159,0.555-2.888-0.859-2.754-2.199
+                       c0.149-1.491-1.115-2.818-2.445-2.369c-0.925,0.312-2.042,0.501-2.624,1.434c-0.266,0.428-0.48,0.318-0.75,0.159
+                       c-0.889-0.527-1.648-0.814-2.862-0.684c-1.34,0.145,0.269-0.926-0.103-1.61c-0.598,0.354-1.125,0.918-1.997,1.039
+                       c0.046-0.982,1.187-1.659,0.668-2.676c-0.244,0.165-0.488,0.327-0.887,0.595c0.411-1.331,0.7-2.568-1.376-2.551
+                       c1.609-0.713,3.146-0.779,4.622-0.13c1.625,0.715,2.793-0.288,4.074-0.878c0.864-0.398,0.172-1.097,0.1-1.603
+                       c0.588-0.242,0.883,0.83,1.382,0.13c0.257-0.359,1-0.533,0.664-1.14c-0.335-0.604-0.721-0.046-1.121,0.056
+                       c-1.002,0.258-1.998,0.429-2.028,1.775c-1.713-0.817-0.369-2.439-1.333-3.928c-0.27,1.171-0.485,1.903-0.601,2.65
+                       c-0.162,1.05-0.93,0.574-1.482,0.652c-0.139-1.122-1.179-0.455-1.281-0.538c-1.882-1.548-1.557,0.876-2.489,1.278
+                       c-0.176-1.045-1.656-0.606-1.924-1.715c-0.009-0.041-0.435-0.079-0.48-0.007c-1.317,2.186-0.875,0.458-1.446-0.395
+                       c-0.387-0.58-1.518-0.821-1.529-1.919c-0.76,0.153-0.586,1.069-1.251,1.244c-0.157-0.231-0.338-0.477-0.497-0.736
+                       c-0.361-0.596-2.1-0.559-1.251-1.503c0.928-1.031,2.489-1.497,3.8-2.159c0.05-0.025,0.318,0.517,0.558,0.695
+                       c0.272,0.198,0.896,0.418,0.905,0.398c0.626-1.259,1.762-0.95,2.826-1.095c0.727-0.098,1.134-0.398,1.771,0.38
+                       c0.47,0.575,3.513-0.812,3.829-1.779c0.255-0.787,1.219-1.346,0.714-2.454c-0.209-0.464,2.576-1.1,3.155-0.602
+                       c1.378,1.183,3.139,1.769,4.439,3.171c0.581,0.625,2.096,0.244,2.799,1.439c0.276,0.469,0.872-0.15,1.28-0.455
+                       c1.049-0.782,1.899-1.758,3.532-1.557c1.25,0.152,1.503-1.614,2.529-2.167c0.255-0.138,0.414-0.459,0.618-0.695
+                       c1.69,1.491,2.55-0.968,4.136-0.849c-0.22,0.804-0.424,1.557-0.7,2.573c0.811-0.511,1.9,0.359,2.293-0.67
+                       c0.247-0.652-0.841-0.078-1.138-0.667c0.259-0.545,0.724-0.876,1.393-0.961c0.249-0.034,0.593-0.007,0.726-0.158
+                       c1.512-1.7,1.521-1.645,3.519-2.211c1.221-0.344,1.174-1.978,2.268-2.541c0.495,0.562-0.255,0.883-0.278,1.351
+                       c-0.022,0.44-0.951,0.816-0.013,1.329c0.811,0.445,1.468,0.406,2.058-0.298c0.098-0.118,0.18-0.429,0.142-0.451
+                       c-0.329-0.212-1.257,0.205-0.824-0.776c0.227-0.518,0.911-0.466,1.289-0.784c2.013-1.689,3.676-3.604,3.644-6.577
+                       c-0.673,0.469-1.49,0.192-2.221,0.36c-2.132,0.485-4.094,1.456-5.961,2.557c-1.401,0.827-2.865,1.041-4.402,0.922
+                       c-0.516,1.169,1.282,1.388,0.877,2.486c-0.815,0.019-0.956-0.989-1.701-1.075c-0.474,0.816,0.108,1.654,0.178,2.727
+                       c-1.429-0.81-0.004-3.213-2.204-3.083c-0.255,0.75,0.476,1.131,0.639,1.724c0.102,0.379,0.179,0.826-0.15,1.086
+                       c-0.58,0.456-0.455-0.25-0.676-0.434c-0.497-0.41-0.308,0.28-0.414,0.413c-0.601,0.749,0.047,1.754-0.422,2.545
+                       c-1.311-0.2-0.032-1.934-1.162-2.046c-0.765-0.074-1.361,0.942-2.313,0.702c-1.99-0.504-1.327,1.631-2.561,2.653
+                       c0.892-2.005-1.242-1.664-1.372-2.788c-1.25,0.959-2.898-0.07-4.287,0.931c0.144-1.182,0.446-2.407-0.652-3.129
+                       c-1.104-0.726-0.896,1.411-2.081,0.948c0.149-0.379,0.308-0.785,0.544-1.385c-1.173,0.817-1.385,0.893-1.746-0.132
+                       c-0.27-0.767-0.867-0.818-1.296-1.193c-0.448-0.393-1.152-0.449-0.949-1.399c0.094-0.447,0.344-1.586-1.123-1.065
+                       c-0.745,0.263-0.917-0.662-0.372-1.268c0.741-0.821,1.283-1.69,1.049-3.001c-0.603,1.43-1.586,2.552-3.073,2.115
+                       c-0.56-0.166-0.856-1.549-0.647-3.033c-1.971,2.689-2.532,0.602-3.714-0.748c1.8,0.272,3.081-1.257,4.861,0.186
+                       c0.762,0.614,2.467,0.079,2.818-1.742c1.577,2.036,3.616,1.872,5.731,1.484c-0.611-0.874-0.542-1.183,0.824-1.735
+                       c1.478-0.598,3.578-0.207,4.466-2.125c0.18-0.387,0.185-0.731,0.07-1.178c-0.554,0.239-1.096,0.474-1.733,0.748
+                       c0.289-1.873-3.357-2.819-0.61-5.176c-1.29,0.456-1.341,2.146-1.858,1.943c-0.861-0.339-1.184-0.052-1.843,0.363
+                       c0.221-0.788,0.499-1.566,0.644-2.368c0.078-0.434,0.333-1.084-0.264-1.31c-0.511-0.192-0.749,0.32-0.925,0.748
+                       c-0.071,0.176-0.16,0.35-0.259,0.513c-0.242,0.409-0.659,0.738-1.052,0.479c-0.312-0.208-0.193-0.715,0.121-1.024
+                       c0.606-0.594,0.644-1.285,0.465-2.149c-0.698,0.934-0.893,0.961-2.608,0.445c0.459-0.721,1.415-1.154,1.27-2.343
+                       c-0.991,0.077-1.584,1.398-2.8,0.877c0.169-0.211,0.275-0.461,0.456-0.545c0.457-0.207,1.172-0.222,1.213-0.792
+                       c0.046-0.631-0.744-0.731-1.155-1.063c-0.345-0.28-1.113-0.074-0.958-0.901c0.061-0.321,0.125-0.659,0.473-0.788
+                       c0.582-0.217,1.111,0.184,1.355,0.506c0.652,0.861,1.436,1.35,2.4,1.831c0.717,0.36,0.887-0.16,1.064-0.3
+                       c0.288-0.229,0.221-0.779-0.304-0.848c-0.499-0.064-0.82-0.317-1.145-0.641c-0.269-0.267-0.293-0.5-0.072-0.822
+                       c0.185-0.273,0.529-0.702,0.684-0.479c1.096,1.593,2.724-1.021,3.886,0.561c0.355,0.485,0.485-0.544,0.894-0.697
+                       c0.4-0.147,0.083-0.535-0.034-0.537c-2.123-0.038-0.329-1.788-1.272-2.559c0.259,1.65-1.21,1.299-1.933,1.821
+                       c-0.806,0.583-0.033-0.709-0.564-0.659c0.161-0.591,0.698-1.427-0.69-0.871c-0.219,0.089-0.508-0.428-0.126-0.857
+                       c0.459-0.516,0.812-1.126,1.255-1.754c-0.924-0.014-1.318-0.225-1.511-0.857c-0.086-0.282-0.281-0.257-0.421-0.229
+                       c-1.837,0.361-0.945-1.021-1.109-1.726c0.769,0.006,1.601-0.168,2.288,0.072c0.737,0.257,1.089,1.423,2.185,1.003
+                       c0.286,1.234,0.405,0.266,0.626-0.034c0.217-0.295,0.045-0.712,0.183-0.899c0.388-0.532,0.917-0.961,1.389-1.431
+                       c0.252,0.574,0.463,1.187,1.369,1.136c-0.471,0.74-2.302,0.787-0.838,2.04c0.061,0.053,0.016,0.238,0.006,0.361
+                       c-0.04,0.498-1.635,0.021-0.72,0.889c0.524,0.496,1.459,1.223,2.57,0.455c0.83-0.576,1.331-1.393,1.034-2.553
+                       c-0.062-0.24-0.041-0.504-0.032-0.755c0.032-0.817-1.756-1.344-1.085-1.416c1.176-0.126,2.958-0.588,3.973,0.95
+                       c-0.147,0.129-0.221,0.231-0.319,0.272c-0.556,0.233-1.359-0.31-1.692,0.459c-0.085,0.195,0.34,0.611,0.533,0.926
+                       c0.467-0.724,1.384,0.181,2.058-0.874c2.739-4.278,6.243-7.808,11.055-9.842c1.181-0.5,1.979-0.474,2.897,0.484
+                       c0.342,0.358,0.747,1.505,1.626,0.701c0.338-0.31,1.211-0.31,0.971-0.992c-0.346-0.983-0.525-0.069-0.758,0.146
+                       c-0.136,0.127-0.285,0.238-0.658,0.545c0.333-2.25-1.047-2.376-2.53-2.39c-0.896-0.007-1.849,0.068-1.968-1.595
+                       c-0.726,1.758-0.726,1.758-1.591,1.072c-0.18,0.489-0.276,0.969-0.078,1.466c0.085,0.213,0.363,0.524-0.073,0.561
+                       c-1.652,0.137-2.745,0.992-3.548,2.408c-0.295,0.521-1.346,0.419-1.497,0.282c-0.625-0.565-1.049-0.314-1.476,0.113
+                       c-0.884,0.887-1.257-0.361-1.905-0.491c-1.559-0.308-1.531-0.452-2.642,0.699c-0.46-0.3-0.093-0.842-0.365-1.215
+                       c-0.728,0.317-1.166,0.926-1.535,1.58c-0.808-0.423-1.099-1.552-2.29-1.486c-0.293,0.015-0.947-0.874-0.881-0.972
+                       c0.378-0.559,0.627-1.288,1.372-1.524c0.592-0.189,1.002-0.233,0.473-1.122c-0.724-1.217,1.258-2.195,0.58-3.596
+                       c-0.529,0.714-0.414,2.003-1.707,2.188c-0.31-1.021,0.977-1.173,0.943-2.084c-0.682-0.391-1.735,1.576-2.239-0.222
+                       c-0.04-0.148-0.352-0.345-0.337-0.366c1.293-1.689-0.913-1.232-1.175-2.171c1.115,0.352,2.271,0.184,3.328,0.875
+                       c0.406,0.266,1.145,1.006,1.582,0.003c0.412-0.943-0.448-1.048-1.032-1.152c-1.968-0.353-0.371-1.564-0.596-2.35
+                       c-0.665-0.085-0.391,0.893-1.007,0.888c-0.733-0.658,0.539-2.308-1.21-2.736c0.025-0.579,0.638-1.097,1.237-1.991
+                       c-1.042,0.462-1.815,0.804-2.745,1.218c0.104-1.352,1.35-2.7-0.765-3.723c2.459-0.466,3.542,1.533,5.352,1.641
+                       c0.586,0.033,0.652,0.209,0.964-0.399c0.32-0.624,0.872-0.007,0.995,0.324c0.852,2.292,0.831,2.365,3.638,2.25
+                       c1.164-0.047,0.168,1.694,1.61,1.582c0.569-0.041,1.191-1.928,1.869-0.163c0.201,0.521,0.766,0.479,1.193,0.4
+                       c0.981-0.181,1.933-0.662,2.385,0.878c0.17,0.581,2.013-0.312,2.185-1.219c0.083-0.436-0.047-0.908,0.786-1.094
+                       c-0.669,1.87,1.314,2.354,1.837,3.667c-0.412-1.69-0.824-3.38-1.24-5.07c-1.238,0.814-1.986,3.168-4.114,1.285
+                       c-0.134-0.119-0.673,1.092-1.295,0.382c-0.353-0.406-0.476-1.021-0.68-1.551c-0.41-1.055-1.594-0.703-2.342-1.302
+                       c-1.232-0.982-1.245,1.037-2.256,1.287c0.43-1.821-0.498-2.237-2.095-2.53c-0.759-0.139-2.587-0.549-1.508-2.609
+                       c-0.894,0.536-1.47,0.88-2.083,1.248c-0.295-0.723,0.569-1.278,0.047-1.954c-0.672,0.513-0.627,1.665-1.623,1.92
+                       c-0.472-0.73,0.628-0.868,0.55-1.362c-1.478-0.574-2.459-1.986-4.536-2.198c1.828-1.023,3.298,1.139,4.576-0.211
+                       c0.708-0.75,2.793,0.346,2.392-1.82c-0.584-0.131-0.878,1.12-1.408,0.464c-0.474-0.589-0.374-1.461,0.199-2.247
+                       c-0.879,0.085-0.635,1.052-1.446,1.16c0.472-0.842-0.565-1.391-0.233-2.408c-0.612,0.489-1.099,0.876-1.585,1.265
+                       c0.38-0.613-1.042-1.447,0.238-1.95c-0.259-0.487-0.427-1.071-0.809-1.424c-0.265-0.244-0.679-0.355-0.75-0.768
+                       c-0.023-0.125,0.164-0.405,0.276-0.419c0.483-0.049,0.867-0.024,1.37,0.342c1.827,1.333,4.169,1.376,6.278,2.662
+                       c-0.202-1.415-1.287-1.33-1.703-1.971c-0.332-0.513-1.283-0.753-0.515-1.724c0.533-0.677,0.718-0.742,1.557-0.322
+                       c1.489,0.739,4.251-1.09,3.909-2.703c-0.176-0.817,1.655-1.076,0.26-1.703c-0.446-0.2-0.325-1.202-0.504-0.88
+                       c-0.52,0.928-2.518-1.797-2.14,0.952c0.044,0.316-1.098,1.308-2.151,0.931c0.235-1.23,0.467-2.456,0.702-3.683
+                       c-0.346,0.755-0.97,1.412-1.596,1.618c-0.485,0.161-1.23-0.462-1.861-0.736c1.018-1.537-0.135-0.799-0.798-0.842
+                       c-1.446-0.094-0.986-1.056-0.61-1.988c-0.405-0.023-0.724-0.094-1.026-0.045c-0.464,0.074-1.049,0.198-1.044-0.418
+                       c0.008-0.678,0.597-0.421,1.036-0.352c1.841,0.287,3.71-0.443,5.549,0.126c0.079,0.025,0.208-0.024,0.283-0.081
+                       c1.395-1.061,1.957-0.907,2.733,0.835c1.528-0.893,3.004-1.713,4.963-1.079c0.656,0.212,1.994-0.642,2.138-1.549
+                       c0.123-0.79,0.798-2.053-0.814-2.619c-1.016-0.357-1.549-1.539-1.239-2.583c0.477-1.596,1.898-0.432,2.839-0.575
+                       c0.618-0.095,0.044,1.358,1.019,2.094c-0.512-1.44,0.678-2.187,0.588-3.406c-0.047-0.624,1.026-0.488,1.644-0.626
+                       c1.043-0.233,2.658-0.19,1.421-2.089c-0.414-0.639,0.295-1.196,0.425-1.804c0.091-0.425,0.513-0.878-0.251-1.029
+                       c-0.436-0.085-0.977-0.145-0.975,0.555c0.004,0.74-0.389,1.204-1.038,1.637v-2.678c-1.678,0.71-1.493,2.894-3.148,3.359
+                       c-0.539-0.551,0.311-1.035,0.09-1.667c-1.192,1.112-1.256,0.253-1.251-0.838c-0.478,1.414-1.671,1.767-2.744,2.118
+                       c-0.157,0.05-1.386-0.954-0.257-2.168c-1.314,0.478-0.711,1.433-1.397,1.896c-1.119-0.647-1.71-2.584-3.604-1.786
+                       c-0.251,0.106-0.48-0.229-0.395-0.5c0.2-0.644,0.756-1.267-0.027-1.888c1.021,0.445,1.573-0.672,2.511-0.802
+                       c0.806-0.114,1.402,1.019,2.126,0.179c1.073,1.247,2.319,0.474,3.815,0.282c-1.593-0.857-1.466-2.09-0.965-3.412
+                       c-0.843,0.18-0.652,1.118-1.344,1.25c-0.522-0.54,0.17-0.893,0.289-1.305c0.159-0.555,0.665-1.11-0.389-0.405
+                       c-0.102,0.068-0.231,0.096-0.346,0.141c0.491-0.917-0.291-1.748-0.18-2.569c0.048-0.344,0.643-1.016,1.633-0.589
+                       c1.35,0.583,2.762-0.447,4.273-0.382c1.52,0.064,2.215-1.544,2.482-3.051c0.083-0.471,0.518-0.336,0.779-0.304
+                       c1.355,0.163,1.863-0.861,2.455-1.729c0.425-0.629,0.374-0.676-0.435-1.141c-0.313-0.177-0.313-0.177,0.276-1.638
+                       c-1.427,1.489-2.255,3.492-3.971,4.784c-0.453-0.226,0.189-0.816-0.347-1.182c-0.486,2.054-2.289,0.388-3.334,1.176
+                       c-0.199,0.147,0.448-0.653-0.146-0.786c-0.716,0.148-0.166,1.166-1.107,1.337c0.516-1.784-0.904-1.178-1.96-1.342
+                       c1.247-0.981,2.81-0.7,3.704-1.849c-1.293-0.039-1.954-0.976-1.66-2.088c0.11-0.416,0.974-0.955-0.068-1.379
+                       c-0.941-0.382-0.561,0.777-1.081,0.876c-0.113,0.021-0.207,0.132-0.474,0.314c-0.451-1.297-0.673-3.22-2.795-1.422
+                       c-0.061-1.421,2.16-2.668-0.029-3.823c2.181-0.552,1.133-2.244,1.204-3.573c0.664,0.017,0.845,0.526,1.214,0.959
+                       c0.616,0.73,0.828,2.007,2.425,1.699c1.009-0.193,1.95,0.18,2.292-1.279c0.293-1.255,1.395-2.267,0.82-3.808
+                       c-0.151-0.405-0.38-2.235,1.344-1.346c0.588,0.301,0.992-0.63,1.61-0.098c0.172,0.147,0.496-0.312,0.556-0.627
+                       c0.032-0.162-0.062-0.351-0.1-0.528c-1.055,0.721-1.816-0.897-2.533-0.488c-0.812,0.464-0.752,0.126-0.903-0.408
+                       c-0.036-0.124-0.293-0.187-0.448-0.279c-0.38,0.86-0.624,1.381-1.618,0.341c-0.395-0.413-1.294,1.045-2.272,0.937
+                       c-0.047-1.558,0.668-2.696,1.728-3.821c0.881-0.934-0.873-1.871-0.085-3.216c-0.989,0.592-1.627,0.976-2.308,1.383
+                       c-0.157-0.797-0.297-1.501-0.448-2.264c-0.627,0.433-0.869,1.492-1.916,0.931c-0.193-0.566,0.805-0.855,0.404-1.491
+                       c-0.767,0.164-1.873,0.827-1.12-0.967c0.359-0.853,0.791-1.774,0.595-2.763c-0.023-0.116-0.34,0.132-0.524,0.321
+                       c-0.674,0.696-1.115,0.426-1.92,0.101c-0.775-0.312-1.291-1.004-2.485-1.098c2.083-0.386,2.355-1.385,1.468-4.069
+                       c1.662-0.893,1.291,1.704,2.559,1.505c0.091-0.015,0.202,0.163,0.312,0.172c2.079,0.212,3.151,1.707,3.869,3.402
+                       c0.93-0.359,0.232-0.791,0.442-1.072c0.424-0.57-1.041-1.251,0.13-1.789c0.953-0.437,1.828,0.1,2.437,0.506
+                       c2.795,1.864,4.68,1.713,7.174-0.972c-1.215-0.291-2.092-0.821-1.026-2.23c-1.13,0.265-0.688,1.295-1.177,1.87
+                       c-0.413-1.295-0.051-2.4,0.351-3.615c-0.66,0.496-1.153,0.995-1.922,1.065c-0.471-0.993,0.454-1.846,0.266-2.811
+                       c-0.068-0.344,0.22-0.8-0.241-1.008c-0.362-0.163-0.653-0.093-0.944,0.334c-0.546,0.805-1.527,0.146-2.243,0.497
+                       c-0.038-0.461-1.336-0.284-0.567-1.191c0.268-0.316,0.363-0.81,0.448-1.24c0.057-0.288,0.081-0.68-0.352-0.776
+                       c-0.345-0.078-0.642,0-0.705,0.424c-0.079,0.557-0.355,1.185-0.918,0.957c-0.631-0.255-0.418-0.968-0.142-1.493
+                       c0.235-0.449,0.325-0.906-0.093-1.224c-1.636-1.252-0.873-2.97-1.444-4.934c1.452,0.801,0.588,2.052,1.433,2.441
+                       c1.299,0.599,0.656-1.363,1.803-1.283c-0.198,0.717-0.383,1.393-0.57,2.071c0.912-0.129,1.114-1.716,1.961-1.195
+                       c0.586,0.361,1.062,1.429,0.58,2.434c-0.071,0.149,0.244,0.641,0.479,0.742c0.323,0.136,0.491-0.272,0.718-0.489
+                       c1.039-0.989,0.126-2.004-0.059-3.071c1.834,0.87,2.62,0.143,3.376-3.246c-1.55,1.976-2.331,0.969-3.865,0.066
+                       c-2.662-1.563-0.94-2.165,0.597-3.402c-1.469,0.163-1.994-0.302-2.17-1.261c-0.057-0.309-0.31-0.583,0.059-0.808
+                       c0.261-0.159,0.461,0.043,0.654,0.229c0.34,0.325,0.497,1.139,1.128,0.768c0.561-0.329,0.127-1.323,0.832-1.744
+                       c0.17-0.101-1.391-1.202,0.353-0.707c0.229,0.067,0.183-0.357,0.121-0.368c-1.697-0.281-0.006-2.966-2.325-2.886
+                       c1.221-0.519,1.902,0.096,2.667,0.564c0.635,0.387,0.809,0.229,0.718-0.562c-0.02-0.178-0.187-0.382,0.063-0.429
+                       c0.612-0.107,1.686-0.723,1.315-0.771c-1.453-0.195-0.221-3.549-2.685-1.896c0.383-0.975,2.644-2.009,3.073-1.488
+                       c1.553,1.887,2.729,0.235,3.971-0.391c0.485-0.244,0.81-0.806,1.23-1.248c-0.537-0.06-1.389-0.056-1.406-0.174
+                       c-0.17-1.198-1.229-0.19-1.658-0.826c0.157-0.119,0.433-0.224,0.514-0.413c0.272-0.631,1.703-0.212,1.28-1.433
+                       c-1.157,0.426-0.246-1.494-1.454-1.234c-0.861,0.185-0.869-0.277-0.602-1.148c0.327-1.069-0.573-2.402,0.742-3.386
+                       c0.199-0.149-0.71-0.242-1.034-0.558c-0.515-0.508-0.582-1.14-0.166-1.545c0.431-0.418,0.779,0.123,0.987,0.527
+                       c0.941,1.828,1.71-0.606,2.595-0.103c0.136-0.547,0.401-0.815,0.943-0.409c0.276,0.207,0.469-0.038,0.703-0.09
+                       c1.385-0.318-0.758-1.255,0.297-1.637c0.599-0.216,1.06,1.38,1.736,0.094c0.318-0.604-0.304-3.22-0.962-3.445
+                       c-0.584-0.199-0.646,0.919-1.43,0.636c0.013-0.212-0.055-0.509,0.058-0.691c0.97-1.529-0.408-1.62-1.105-1.434
+                       c-1.437,0.381-1.406-0.035-0.987-1.14c0.172-0.45,0.108-1.01,0.076-1.516c-0.055-0.843,0.622-1.019,0.888-0.548
+                       c0.713,1.259,1.442,0.23,2.143,0.196c0.475-0.024,0.49-0.399,0.267-0.681c-0.17-0.216-0.147-0.72-0.798-0.429
+                       c-0.746,0.335-0.837,0.182-0.62-0.562c0.31-1.061-1.483-0.481-1.209-1.608c0.072-0.301-1.07-0.546-0.556-1.167
+                       c0.45-0.548,0.892,0.446,1.051,0.34c0.65-0.434,1.417,0.755,1.775-0.066c0.158-0.367-0.628-1.146-0.764-1.488
+                       c-0.605-1.497-1.41-2.64-2.963-3.355c1.405-0.187,2.698-1.065,3.87,0.221c0.295,0.324,0.69,0.336,0.93-0.139
+                       c0.25-0.499-0.312-0.516-0.408-0.706c-0.635-1.25-2.026-1.313-2.937-2.077c-0.373-0.313-0.888-0.742-0.548-1.283
+                       c0.283-0.455,0.684,0.179,0.946,0.147c0.98-0.115,1.671-0.748,2.236-1.544c0.346-0.492-0.262-1.722,0.981-1.473
+                       c1.015,0.205,1.73,0.86,1.599,2.066c0.881-0.01,0.839-1.043,1.635-1.314c0.654-0.221,0.418-1.497-0.302-1.454
+                       c-2.189,0.131-1.599-1.839-2.1-2.765c-0.66-1.219-0.593-2.828-0.858-4.265c-0.206-1.122,0.14-1.852,2.009-1.913
+                       c-1.412-0.659-1.922-1.333-1.981-2.352c2.115,0.709,3.191-0.006,2.996-2.266c-0.189-2.206,0.539-3.93,1.763-5.641
+                       c0.55-0.768,1.183-1.839,1.057-2.66c-0.374-2.443,2.26-3.502,2.322-5.669c0.004-0.171,0.36-0.333,0.556-0.503
+                       c0.849,1.286,0.148,3.189,1.939,4.069c0.815,0.399-0.242,1.236-0.02,1.951c0.398,1.302,2.685,1.967,1.324,3.857
+                       c1.943,0.045,0.46,3.107,2.624,3.075c0.049,0-0.518,1.328-0.631,2.059c-0.102,0.668-1.401,2.088,0.878,1.714
+                       c0.426-0.069,1.325,0.663,1.407,1.13c0.096,0.547-0.649,1.053-1.246,1.314c-0.38,0.164-0.966-0.006-0.885,0.713
+                       c1.556-0.594-0.725,2.152,1.38,1.503c1.401-0.43,1.852,0.623,1.338,2.186c-0.289,0.881-0.71,1.574-1.44,2.125
+                       c-0.501,0.378-1.058,0.769,0.129,1.067c0.877,0.219,0.102,0.645-0.01,0.99c-0.104,0.319-1.141-0.254-0.584,0.517
+                       c0.34,0.469-0.136,1.54,1.008,1.47c0.085-0.005,0.215,0.434,0.48,0.097c0.355-0.449,0.55-1.322,1.389-0.652
+                       c1.172,0.935,1.155,0.954,0.435,2.504c-0.413,0.884,0.64,1.769,2.392,1.798c-1.217,0.741-1.119,2.285-2.529,2.78
+                       c-0.623,0.217,0.957,0.255,0.369,1.097c-0.797,1.141-1.402,2.349-3.083,2.426c0.641,0.623,2.665,0.855,3.211,0.736
+                       c1.176-0.257,1.942-1.487,3.268-1.338c-0.117,2.608-1.761,4.389-4.054,4.087c1.592,1.187-0.312,1.79-0.206,2.629
+                       c2.344,1.782,3.215-0.849,4.737-1.534c0.289-0.128,0.41-0.747,0.863-0.336c0.265,0.238,0.146,0.627-0.043,0.894
+                       c-0.599,0.847-0.144,2.641-2.245,2.136c0.485,0.797,2.642,1.289,0.204,2.082c-1.015,0.329-0.685,1.596,0.636,2.545
+                       c-0.119,0.587-1.139,0.383-1.026,1.238c0.093,0.042,0.278,0.202,0.39,0.162c1.387-0.505,1.65,1.048,2.557,1.432
+                       c0.175,0.074-0.127,0.473-0.412,0.696c-0.622,0.487-1.34,0.312-2.019,0.398c0.341,1.843-1.236,3.783-2.978,3.645
+                       c-0.431-0.034-0.675,0.042-0.643,0.373c0.136,1.398-0.561,2.002-1.928,1.974c1.384,2.645,3.489,1.703,5.6,1.466
+                       c-2.028,0.729-1.41,3.927-4.224,3.833c1.168,1.08,2.202,1.859,3.699,1.446c0.525-0.148,0.593,0.336,0.748,0.687
+                       c0.331,0.753-0.465,0.368-0.55,0.557c-0.221,0.492-1.633,0.575-0.521,1.602c0.31,0.288-0.594,0.635-1.824,0.176
+                       c0.37,1.37,1.251,2.313,1.935,3.383c1.053,1.643,2.102-0.859,3.226,0.362c-1.784,1.549-3.156,3.743-5.855,4.206
+                       c-0.465,0.079-0.491,0.855-1.096,0.59c-0.14,0.51,0.297,0.644,0.576,0.873c0.475,0.39,1.416,0.394,0.972,1.489
+                       c-0.185,0.455,0.266,0.176,0.442,0.091c1.637-0.801,3.334-1.435,5.443-1.947c-1.115,1.183-0.13,3.07-1.952,3.704
+                       c-0.068,0.025-0.132,0.257-0.095,0.35c0.335,0.813,1.187,1.01,1.849,1.327c0.705,0.336,1.673,0.637,2.34,0.409
+                       c1.036-0.354,2.336-0.025,3.135-1.081c0.057-0.076,0.376,0.14,0.24,0.346c-0.425,0.642,1.129,1.197,0.038,1.868
+                       c-1.784,1.099-0.087,0.931,0.454,1.187c-0.055,0.573-0.749,0.823-0.939,0.789c-1.993-0.354-1.66,0.87-1.766,2.155
+                       c-0.132,1.619,1.431,0.869,1.828,1.619c1.175-0.999,3.251-0.755,3.734-2.746c0.08-0.325,0.488-0.64,0.928-0.458
+                       c0.295,0.123,0.586,0.387,0.422,0.755c-0.622,1.384,0.438,1.099,1.151,1.063c-0.142,1.538-1.796,2.303-1.474,3.815
+                       c-0.83,0.241-1.019-0.679-1.646-0.647c0.731,1.974-0.828,2.615-1.817,3.84c-1.264,1.57-2.96,0.541-4.169,1.482
+                       c-0.102,0.766,1.19,0.547,0.992,1.566c-0.684-0.298-1.336-0.585-2.026-0.887c-0.333,0.642,0.55,1.052,0.359,1.675
+                       c-0.679,0.181-0.958-0.396-1.211-0.753c-1.183-1.668-1.658-0.048-2.115,0.537c-0.329,0.422-1.452,1.073-0.594,1.633
+                       c0.962,0.631,1.473,2.005,3.079,1.764c1.871-0.276,3.115-1.355,4.084-2.747c0.541-0.776,2.104-0.028,2.165-1.58
+                       c0.249,0.933,0.776,1.902,0.663,2.788c-0.1,0.792-1.055,0.197-1.796,0.234c1.131,0.386,0.701,1.077,0.775,1.821
+                       c0.085,0.866,0.902,1.453-0.561,1.92c-0.828,0.265-0.119,1.297-0.38,1.882c-0.259,0.58,0.932,2.066-1.145,1.67
+                       c-1.057-0.2,0.453,0.865-0.193,1.23c-0.709,0.161-0.475-1.006-1.183-0.889c-0.541,0.734,1.028,1.391,0.168,1.962
+                       c-0.575,0.383-0.86-0.529-1.425-0.899c-0.204,0.61,0.055,1.93-1.369,0.814c-0.831-0.651-2.218-0.742-3.322,0.013
+                       c0.661-2.192-2.752,0.331-2.293-1.985c-0.478,0.679,0.116,1.892-1.239,1.735c-0.225-0.027-0.594,0.545-0.358,0.76
+                       c1.291,1.187,0.541,2.632,0.446,4.162c0.637-0.422,1.116-1.653,1.632-0.193c0.022,0.066,0.46-0.014,0.704-0.025
+                       c-0.756-1.484,1.248-0.95,1.335-1.827c0.035-0.365,0.026-0.885,0.614-0.656c0.351,0.138,0.336,0.646,0.155,0.85
+                       c-0.957,1.071,0.147,1.088,0.635,1.527c0.567-0.511-0.333-1.165,0.431-1.589c0.707,0.778,1.595,2.015,2.135-0.18
+                       c0.446,0.325,0.9,0.438,1.49,0.514c3.29,0.42,5.662-0.933,7.492-3.527c0.313-0.445,0.682-0.556,1.327-0.151
+                       c-1.93,0.642,0.493,2.158-0.836,3.247c-0.631,0.519-0.26,0.971-1.289,0.638c-0.168-0.055-0.336-0.111-0.582-0.195
+                       c0.768,0.962,0.768,0.962,1.883,1.225c-1.932,1.871-1.932,1.871-3.062,0.774c-0.176,0.427-0.563,1.124-0.477,1.191
+                       c1.159,0.871,0.399,1.978,0.422,2.966c0.017,0.764-0.639,0.468-0.938,0.389c-0.778-0.202-1.217-0.325-0.529,0.653
+                       c0.142,0.201-0.136,0.43-0.427,0.495c-1.553,0.343-1.74,0.962-0.659,2.159c0.387,0.428,0.576,0.374,1.538-0.543
+                       c-0.106,1.232,0.365,1.725,1.512,1.519c1.3-0.234,0.611,1.067,1.159,1.59c-1.868-0.808-1.964,1.083-2.805,1.78
+                       c-0.113,0.095-1.941,0.714-0.337,1.578c0.05,0.027-0.207,0.759-0.727,0.962c-1.229,0.475-2.72,1.118-3.622,0.117
+                       c-0.782-0.869-1.659-0.22-2.26-0.857c0.495,0.974,1.102,1.68,2.249,1.856c0.35,0.053,1.076,0.198,1.163,0.475
+                       c0.446,1.422,1.084,2.183,2.572,1.174c0.868-0.587,2.253-0.496,2.793-2.197c0.089,0.236,0.244,0.469,0.257,0.711
+                       c0.059,0.965,0.11,2.075,1.389,1.943c0.619-0.062,1.331-0.217,1.995-0.811c1.672-1.497,4.188-1.216,6.082-2.402
+                       c0.099-0.062,0.385,0.04,0.498,0.151c0.225,0.223,0.068,0.456-0.077,0.68c-0.682,1.054-1.191,2.303-2.761,2.29
+                       c0.323,0.968,1.039,0.691,1.449,0.456c0.552-0.315,0.754-0.783,1.433,0.026c0.472,0.561,1.151-0.175,1.376-0.824
+                       c0.359-1.035,0.92-1.705,2.117-1.807c0.398-0.035,0.882-0.536,1.183-0.074c0.315,0.486-0.497,0.721-0.546,1.01
+                       c-0.129,0.731-1.225,1.639,0.362,2.333c-1.387,0.752-2.789,0.794-4.365,0.85c0.438,0.759,1.101,1.205,1.234,1.945
+                       c0.058,0.333,0.706,0.444,0.351,0.933c-0.709-0.542-0.786,0.581-1.378,0.508c-1.292-0.163-1.976,0.619-1.759,1.924
+                       c-0.781-0.017-0.885-0.833-1.573-1.294c0.201,0.969,1.444,2.701-1,1.783c-0.06,1.332-1.122,1.097-2.335,1.234
+                       c1.57,0.905,2.033,2.719,1.305,3.316c-1.738,1.428,0.182,1.449,0.427,2.148c1.144,3.259,2.036-0.584,3.047-0.059
+                       c0.051-1.793,1.701-1.633,2.699-2.284c0.312,1.255,0.586,2.453,0.734,3.704c0.151,1.266,1.389,0.978,2.124,0.496
+                       c0.669-0.44,1.242-0.589,2.024-0.373c0.066,1.124-2.329,1.297-1.223,3.034c-0.833,0.354-2.585-0.672-2.818,1.376
+                       c-0.062,0.544-0.226,0.871,0.414,0.893c0.584,0.021,1.062,0.231,1.265,0.733c0.901,2.22,1.85,0.844,2.528-0.053
+                       c0.919-1.212,2.11-2.025,3.334-2.828c0.231-0.151,0.596-0.098,0.826-0.13c0.751,0.768-2.245,1.585,0.18,2.158
+                       c-0.369,0.883-1.921,0.347-1.884,1.662c0.024,0.903,0.971,0.063,1.145,0.682c-0.465,0.507-1.151,0.602-1.884,0.674
+                       c0.209,0.862,1.06,0.764,1.406,1.27c-0.343,1.008-1.066-0.015-1.629,0.28c-0.791,0.415,1.251,0.78-0.089,1.148
+                       c-0.652,0.178-1.195,0.009-1.919-0.039c0.271,0.89,2.367,0.881,1.147,2.195c-0.758,0.817-1.765-0.029-2.602-0.233
+                       c-0.3,0.648,0.204,0.789,0.399,1.082c0.194,0.297,0.771,0.532,0.433,0.922c-0.231,0.268-0.851-0.251-1.217,0.392
+                       c-0.12,0.206-0.205-0.428-0.246-0.67c-0.187-1.086-0.93-0.409-1.068-0.195c-1.147,1.766-2.149,0.551-3.336-0.1
+                       c-0.325,0.693-0.728,1.365,0.418,1.811c-1.026,0.778-1.688-1.287-2.244-0.261c-0.463,0.856,0.824,1.423,1.473,1.906
+                       c0.631,0.471-0.579,1.451,0.584,1.587c-0.628,1.084,0.334,1.629,0.856,2.237c0.291,0.339,0.839,0.555,0.569,1.039
+                       c-0.301,0.537-1.049,0.435-1.359,0.158c-1.104-0.978-1.688-0.328-2.671,0.314c-0.748,0.49-2.27,0.986-3.014-0.74
+                       c-0.359,0.334,0.068,2.203-1.164,0.723c-0.277-0.329-0.734-0.523-1.133-0.73c-1.362-0.708-1.99-0.329-1.96,1.209
+                       c-0.733-0.146-1.449-0.289-2.031-0.867c-0.235,0.602,0.531,1.104,0.1,1.66c-0.208,0.268-0.412,0.555-0.04,0.805
+                       c0.958,0.647,2.782,0.694,1.762,2.654c0.168,0.049,0.334,0.104,0.502,0.144c1.677,0.392,3.361,0.987,5.085,0.64
+                       c0.852-0.17,1.236,0.266,1.797,0.443c-0.129,0.704-0.509,0.519-0.792,0.532c-0.446,0.019-1.064-0.068-1.064,0.518
+                       c0,0.31,0.315,0.73,0.75,1.017c1.323,0.878,3.017,0.398,4.466,1.327c-0.637,0.709-2.931,0.157-1.656,2.106
+                       c-0.957,0.248-0.546,1.31-1.111,1.85c0.862,0.393,1.329-0.757,2.266-0.477c0.545,0.161,0.658-0.217,0.989,0.218
+                       c0.353,0.466,0.472,0.543,0.986-0.252c0.327-0.502,0.704-0.685,1.068-0.507c0.968,0.468-0.391,0.422-0.217,0.762
+                       c0.049,0.097,0.045,0.293,0.095,0.303c1.699,0.338,2.682,2.052,4.348,2.335c0.569,0.096,1.291-0.375,1.866-0.715
+                       c1.026-0.608,2.763,0.332,3.249-1.495c0.024-0.097,0.658-0.174,0.892-0.048c2.311,1.238,4.454,0.321,6.59-0.491
+                       c0.573-0.217,1.191-0.578,1.491,0.103c0.28,0.636-0.54,0.692-0.905,0.989c-0.278,0.225-0.879,0.191-0.805,0.701
+                       c0.323,2.206-1.064,0.651-1.699,0.789c-0.289,0.443,0.669,0.594,0.257,1.089c-0.386,0.466-0.679,0.274-1.149,0.072
+                       c-1.312-0.562-1.157,1.016-1.14,1.246c0.082,1.133-0.828,2.278-1.476,1.652c-1.242-1.202-1.321,0.198-1.646,0.606
+                       c-0.463,0.579-0.323,1.884-1.057,1.935c-0.865,0.058-1.816-0.517-2.657-0.959c-0.633-0.333-1.151-0.89-1.737-1.361
+                       c-0.482,1.012-0.323,1.638,0.692,2.121c0.65,0.311,1.27,0.706,1.769,1.382c0.903,1.221,2.344,0.346,3.487,0.362
+                       c1.06,0.012,0.841,0.02,0.474,0.738c-1.113,2.178-3.06,2.495-5.161,1.108c-0.669-0.44-0.883-1.997-2.357-1.238
+                       c-0.374,0.193-0.089-0.88-0.491-1.295c-1.832,1.067-3.952,1.89-3.293,4.939c-0.971-1.799-1.962-1.169-2.935-0.335
+                       c-0.871,0.746-1.323,0.238-1.682-0.743c-0.1,0.893-0.371,1.466-1.061,1.965c-0.534-1.013-1.657-1.592-1.846-2.819
+                       c-0.605,1.167-1.383,2.341,0.007,3.506c0.19,0.159,0.265,0.434-0.075,0.604c-0.741,0.369-1.459,0.801-2.228,1.092
+                       c-0.225,0.087-0.329-0.367-0.273-0.604c0.431-1.794-1.217-3.389-0.485-5.248c0.113-0.285,0.451-1.086-0.307-1.302
+                       c-0.349-0.098-1.098-0.222-0.506,0.596c0.172,0.236,0.56,0.349,0.267,0.916c-0.853-0.806-2.299-0.278-2.792-1.792
+                       c-0.571,0.795,0.506,1.54-0.611,2.012c-0.665-0.719-0.939-1.918-2.423-2.56c1.187,1.333-0.126,2.85,1.114,3.9
+                       c0.211,0.18,0.051,0.5-0.191,0.644c-0.242,0.142-0.486,0.079-0.698-0.121c-0.421-0.398-0.848-0.786-1.428-1.321
+                       c0.121,1.635,1.7,2.433,1.606,3.998c-0.032,0.559,1.089,1.107,1.493,0.927c1.576-0.693,1.975,0.994,2.049,1.407
+                       c0.312,1.763,1.089,1.023,1.907,0.59c0.219-0.117,0.529-0.364,0.667-0.293c1.204,0.614,2.641-0.059,3.495,0.159
+                       c1.952,0.498,3.112-1.232,4.766-0.874c0.014,2.08,1.011,2.85,3.117,2.167c1.276-0.415,2.572,0.321,3.857-0.357
+                       c0.923-0.489,1.582-0.799,1.011-1.984c-0.264-0.547-0.648-1.163-0.007-2.076c0.059,1.125,2.151,1.124,0.955,2.666
+                       c0.752,0.083,0.172,1.034,0.803,1.221c1.113,0.325,0.896-1.103,1.657-1.246c0.482,0.354-0.363,1.248,0.55,1.384
+                       c0.227,0.032,0.516-0.055,0.713-0.184c0.767-0.501,0.043-1.04-0.04-1.53c-0.136-0.788-0.765-1.46-0.671-2.53
+                       c1.471,0.478,1.614,2.242,3.024,2.645c0.527,0.151,1.161,0.647,1.688,1.135c0.529,0.492,1.285-0.171,1.16-1.049
+                       c-0.07-0.492,0.189-0.977,0.45-0.724c1.14,1.107,2.401-0.079,3.527,0.338c0.754,0.278,0.951-0.544,1.442-0.683
+                       c0.679-0.193,1.419-0.173,2.3-0.261c-0.816,1.249-2.638,1.489-2.013,3.323c0.178,0.52-0.45,0.453-0.828,0.418
+                       c-0.34-0.028-0.831,0.063-0.676,0.421c0.964,2.233-1.009,1.31-1.729,1.58c-1.095,0.415-2.463,0.513-1.127,2.062
+                       c-0.943,1.081-1.361-0.899-2.812-0.126c-1.828,0.977-2.263,3.023-4.016,3.82c-0.131,0.06,0.667,0.997,1.175,1.241
+                       c0.677,0.324,0.851,0.493,0.14,0.92c-0.608,0.369-0.76,0.674,0.043,1.018c0.195,0.083,0.231,0.592-0.06,0.626
+                       c-1.136,0.129-1.987,2.044-3.542,0.402c1.066,1.52-1.079,1.937-0.712,3.304c-0.46-1.546-1.76-0.791-2.599-1.156
+                       c-0.49-0.214,0.009,0.905-0.522,1.199c-0.633-0.394-1.281-0.799-2.141-1.337c0.466,1.308,0.125,1.833-1.108,1.501
+                       c-0.219-0.059-0.431-0.325-0.674-0.028c-0.959,1.161-0.959,1.159-2.27,0.179c0.319,0.999,0.083,1.664-0.764,2.137
+                       c2.043-0.344,4.028,1.204,5.991-0.129c0.38-0.257,0.69-0.277,0.836,0.29c0.077,0.302-0.346,1.144,0.544,0.739
+                       c0.853-0.385-0.115-0.629-0.165-0.957c-0.026-0.174-0.005-0.353-0.005-0.638c1.319-0.045,1.801,1.932,3.257,0.983
+                       c0.031,0.792-0.857,0.614-0.687,1.252c0.165,0.01,0.405,0.097,0.511,0.014c1.058-0.836,1.816-1.003,3.25-0.161
+                       c2.011,1.181,4.383,0.483,6.487-0.549c0.344-0.17,0.707-0.308,1.028-0.513c0.395-0.251,0.635-0.023,0.731,0.272
+                       c0.046,0.138-0.177,0.489-0.351,0.555c-0.962,0.363-1.61,0.74-1.629,2.052c-0.008,0.573-1.278,1.063-2.192,0.414
+                       c-0.197,1.077,1.736,0.451,1.043,1.367c-0.677,0.891-1.278-0.849-2.164-0.541c-0.219,0.683,0.697,0.754,0.708,1.313
+                       c-0.826,0.406-1.652,0.35-2.432-0.329c-0.274,1.128,1.047,0.905,0.875,1.864c-1.442-0.487-2.848,0.277-4.319,0.108
+                       c-0.121-0.013-0.258,0.028-0.361-0.017c-0.92-0.409-0.916-0.414-1.052,0.613c-0.016,0.125-0.066,0.244-0.142,0.517
+                       c-0.297-0.468-0.486-0.903-0.796-1.221c-0.306-0.312-0.752-0.164-1.088,0.015c-0.439,0.233-0.048,0.542,0,0.82
+                       c0.094,0.567,0.083,1.177,0.295,1.695c0.194,0.477,0.298,0.43-0.318,0.581c-1.461,0.363-2.871-0.948-4.36,0.028
+                       c-0.312,0.203-0.182-0.959-0.891-1.182c-0.2,0.574-0.215,1.853-1.44,0.67c-0.157-0.149-1.071-0.749-1.699-0.041
+                       c-0.627,0.711,0.227,0.987,0.337,1.474c0.136,0.615,0.291,1.24,0.538,1.816c0.22,0.513-0.049,0.823-0.406,0.863
+                       c-0.956,0.106-1.977-0.88-2.894,0.168c-0.444-1.012-1.64-1.612-1.572-2.908c0.017-0.331-0.079-0.648-0.433-0.79
+                       c-0.474,1.936-0.144,3.089,1.346,4.208c1.109,0.835,1.697,2.053,2.631,3.352c-0.881-0.302-1.55-0.598-2.25-0.746
+                       c-0.376-0.079-1.077-0.334-1.147,0.289c-0.268,2.446-1.897,1.439-3.164,1.388c0.456,1.467,0.702,1.924,1.448,2.004
+                       c0.964,0.104,1.875,0.222,2.544,1.254c-1.444-0.161-2.926-0.19-4.317-0.556c-0.525-0.137-0.659,0.072-0.909,0.246
+                       c-0.364,0.255-0.491,0.809-0.168,0.99c0.739,0.415,0.983,2.688,2.459,0.745c0.253-0.332,0.841-0.567,0.99,0.071
+                       c0.375,1.616,1.448,1.275,2.491,0.978c0.845-0.238,1.754-0.438,2.467-0.911c0.911-0.605,1.323,0.155,2.133,0.161
+                       c-0.727,1.069-1.663,0.967-3.167,1.363c2.848,0.785,3.602,2.484,3.693,4.623c0.017,0.393-0.025,1.048,0.748,0.645
+                       c0.774-0.405,0.554,0.095,0.643,0.576c0.274,1.506,1.735,0.271,2.378,0.94c0.459,0.482-1.172,1.794,0.794,1.853
+                       c0.657,0.021,2.674,0.3,0.962,1.991c-0.15,0.147,0.374,1.329,0.464,1.314c1.72-0.291,2.746,1.985,4.483,1.253
+                       c0.887-0.372,2.159-0.285,2.376-1.745c0.125-0.822,1.007-0.592,1.07-0.139c0.185,1.323,1.948,2.195,1.024,3.826
+                       c-0.296,0.523,0.191,1.13,0.6,1.274c0.778,0.272,0.066-0.5,0.321-0.624c0.115-0.055,0.348-0.025,0.444,0.06
+                       c1.07,0.933,2.238,0.454,3.389,0.27c0.624-0.098,1.27-0.569,1.733,0.423c0.151,0.323,0.901,0.424,0.839-0.483
+                       c-0.019-0.288,0.372-0.509,0.735-0.468c0.363,0.042,0.544,0.314,0.663,0.623c0.378,0.966-0.476,2.96-1.527,3.054
+                       c-0.773,0.068-1.047,1.206-1.999,0.71c-0.204-0.106-0.129,0.359,0.047,0.524c0.185,0.172,0.302,0.593,0.215,0.554
+                       c-1.171-0.529-1.349,1.992-2.963,0.843c-0.55-0.391-2.09-0.11-3.171-0.385c-0.418-0.108-0.225,0.363-0.237,0.555
+                       c-0.066,1.287,1.276,2.115,2.667,1.863c1.31-0.236,2.593-0.802,4.009-0.517c-0.102,0.613-0.752,0.592-1.044,0.954
+                       c1.163,0.787,2.289,1.271,3.68,0.346c0.8-0.536,1.327-0.22,0.975,0.849c1.397-0.426,2.091,1.308,3.471,1.096
+                       c1.069-0.165,2.173-0.233,3.249,0.177c0.988,0.378,2.056,1.082,2.451-0.823c0.06-0.283,1.716-0.481,2.538-0.297
+                       c0.947,0.212,1.336-0.134,1.926-0.728c1.191-1.208,2.748-1.287,4.627-1.172c-1.694,1.385-2.225,3.502-4.404,4.067
+                       c0.304,0.262,0.539,0.467,0.777,0.671c0.247,0.214,0.542,0.462,0.348,0.807c-0.189,0.331-0.522,0.251-0.841,0.096
+                       c-0.849-0.413-1.715-0.199-2.601-0.14c0.017,1.312,1.417,1.24,1.837,2.107c-1.004,0.377-1.457-0.583-2.177-0.828
+                       c-0.352,0.65,0.788,0.654,0.52,1.227c-0.496,0.453-0.775-0.452-1.229-0.151c-0.215,0.655,1.249,0.665,0.586,1.419
+                       c-0.554,0.631-0.974-0.134-1.461-0.286c-1.448-0.455-2.943-0.163-4.374-0.003c-0.816,0.093-0.876-0.721-1.462-0.662
+                       c-0.471,0.984,0.769,1.223,0.909,2.193c-1.773-0.26-3.011-1.663-4.778-1.983c-0.218,0.978,1.173,1.278,0.809,2.331
+                       c-1.25-0.57-2.333-1.493-2.75-2.528c-0.484-1.196-1.08-0.942-1.894-0.878c-1.937,0.153-3.839,0.68-5.872,0.632
+                       c1.967,0.699,3.033,2.347,4.351,3.787c1.177,1.287,2.838,1.524,4.526,0.623c0.353-0.189,0.985-0.764,1.274,0.012
+                       c0.198,0.526-0.475,0.666-0.851,0.83c-1.139,0.5-2.111,1.156-2.927,2.143c-0.663,0.802-1.507,1.578-3.275,0.851
+                       c1.98,2.351,4.112,3.253,6.316,4.016c-0.201,0.485-0.529,0.728-0.945,0.594c-0.894-0.291-1.767-0.857-2.2,0.644
+                       c-0.104,0.359-0.832,0.062-1.255,0.128c-0.909,0.14-2.612-0.738-2.075,1.482c0.03,0.127-0.208,0.451-0.237,0.442
+                       c-1.122-0.393-2.179,0.817-3.375,0.109c-0.27,0.598,2.028,1.493-0.65,1.777c1.347,0.604,2.068,1.217,2.731,2.029
+                       c0.828,1.01,2.546,0.999,3.481,0.64c2.754-1.058,3.23-1.071,4.793,1.602c0.121,0.207,0.199,0.44,0.295,0.659
+                       c-0.565,0.343-1.079,0.348-1.546,0.081c-0.495-0.279-0.954-0.275-1.448-0.058c0.015,0.138-0.011,0.289,0.051,0.382
+                       c0.63,0.923,1.272,1.839,1.996,2.88c-1.38,0.303-2.773-0.893-4.141,0.214c-1.854,1.502-2.937-0.112-4.063-1.293
+                       c-0.286-0.299-0.6-0.575-0.9-0.863c-0.391,0.735-1.663,0.538-1.712,1.605c-0.01,0.223,0.245,0.464,0.009,0.694
+                       c-0.505,0.493-1.495,0.809-0.686,1.783c0.862,1.038,1.595-0.019,2.382-0.187c0.362-0.078,0.695-0.761,0.929-0.46
+                       c0.492,0.633,1.771-0.535,1.596,0.552c-0.106,0.652-0.031,2.606-2.144,1.43c0.548,0.911,0.953,1.661,1.709,1.551
+                       c1.535-0.224,2.313,0.455,2.829,1.784c0.711,1.836,2.68,1.594,3.837,1.475c2.05-0.21,3.844,0.397,5.715,0.787
+                       c0.558,0.117,0.909,0.257,1.336-0.181c0.157-0.161,0.626-0.303,0.662-0.254c1.38,2.007,2.988,0.221,4.473,0.303
+                       c0.477,0.026,1.029-0.166,1.573,0.418c-0.937,0.466-1.31,1.289-1.656,2.205c-0.52,1.382-2.012-0.228-2.782,1.077
+                       c-0.022,0.224,0.711,0.206,0.826,0.935c-0.845-0.811-1.453,0.84-2.345-0.088c-0.197-0.205-0.21,0.312-0.265,0.525
+                       c-0.098,0.38,0.771,0.687,0.087,1.112c-0.429-0.8-1.036,0.318-1.83-0.279c-1.186-0.897-2.761-1.911-4.5-1.293
+                       c-0.701,0.247-0.962-0.163-1.311-0.472c-0.342-0.302-0.611-0.738-1.127-0.439c-0.279,0.16-0.121,0.441,0.01,0.671
+                       c0.219,0.388-0.093,1.136,0.763,1.094c0.386-0.019,0.783-0.027,1.161,0.036c0.631,0.102,0.765,0.706,0.795,1.152
+                       c0.035,0.541-0.542,0.392-0.894,0.426c-0.381,0.04-0.738,0.047-1.103,0.259c-0.535,0.31-1.382,0.547-1.076,1.244
+                       c0.293,0.668,1.127,0.558,1.651,0.06c0.546-0.519,0.984-0.179,1.351,0.104c1.922,1.49,3.99,1.388,6.155,0.714
+                       c0.405-0.125,0.938-0.129,1.316,0.034c0.437,0.187,0.684,0.973,0.09,0.954c-1.625-0.052-1.914,1.972-3.417,1.981
+                       c-0.105,0-0.113,0.422-0.519,0.284c-2.51-0.861-1.187,1.414-1.066,1.695c0.684,1.586,1.542,3.018-0.733,4.05
+                       c-0.651,0.295-0.08,0.915,0.035,1.172c0.643,1.406,0.254,2.195-1.417,2.549c1.699,0.336,1.276,2.074,2.243,2.878
+                       c0.261,0.218-0.192,1.295-0.89,1.046c-1.78-0.632-1.646,0.35-1.279,1.556c-1.112-0.166-0.932-1.287-1.594-1.656
+                       c0.065,1.894-1.629,4.02-3.349,3.932c-0.627-0.031-1.612-0.44-1.408-1.525c0.085-0.454,0.204-0.872-0.053-1.304
+                       c-1.487,2.479-1.251,3.3,1.202,4.508c1.749,0.859,2.822,2.437,3.948,3.936c0.193,0.253,0.203,0.628-0.058,0.893
+                       c-0.263,0.265-0.578,0.208-0.888,0.057c-0.575-0.28-1.136-0.595-1.732-0.827c-0.861-0.336-1.652-0.411-1.935,0.779
+                       c-0.233,0.986-0.34,1.817,0.983,2.173c0.48,0.127,1.185,0.123,1.504,0.867c-0.854,0.732-1.752,0.047-2.598,0.063
+                       c-0.479,0.631,1.236,1.042,0.391,1.123c-0.637,0.061-1.541,1.142-2.16,0.074c-0.231-0.398-0.413-0.636-0.842-0.56
+                       c-0.1,0.016-0.257,0.328-0.215,0.442c0.159,0.438,0.747,0.966-0.198,1.121c-0.571,0.094-1.225-0.059-1.45-0.71
+                       c-0.65-1.887-1.155,0.355-1.737,0.042c-0.327,2.378-0.817-0.329-1.206,0.037c0.136,1.988-0.438,2.309-2.57,1.408
+                       c-0.441,0.568,0.567,1.365-0.095,1.715c-0.816,0.431-1.272-0.632-1.981-0.825c0.335,1.857-0.551,3.822-2.056,4.449
+                       c-0.34,0.14-0.926,0.149-0.824-0.42c0.221-1.235-0.283-2.706,0.496-3.672c1.046-1.303,0.784-2.625,0.899-4.048
+                       c0.121-1.504-0.265-2.021-1.926-1.822c0.329,0.405,0.818,0.922,0.48,1.244c-0.703,0.666-0.992-0.615-1.676-0.502
+                       c-0.454,0.549-0.07,1.712-1.202,1.853c-0.6-0.678,0.431-1.222-0.021-1.979c-0.374,0.102-0.811,0.221-1.25,0.34
+                       c-0.27-0.673,0.218-0.895,0.569-1.116c0.496-0.31,0.567-0.715,0.293-1.138c-0.166-0.256-0.563-0.421-0.858-0.199
+                       c-1.735,1.316-2.706-0.443-4.173-0.855c-1.622,2.065,1.412,2.235,1.69,3.543c-2.474,0.376-4.661-2.421-5.719-6.203
+                       c0.023,1.64-3.194-0.339-2.119,2.375c-1.465-0.433-0.548-1.817-1.429-2.521c-0.875,1.399-2.043,2.647-0.414,4.622
+                       c-1.525-0.406-1.784-1.515-2.47-2.187c-0.104-0.104-0.121-1.002-0.68-0.278c-0.205,0.267-0.722,0.311-0.365,0.844
+                       c0.431,0.646,0.85,1.237,1.421,1.821c1.928,1.978,4.362,2.072,6.761,2.495c0.654,0.116,1.421,0.4,1.117,1.227
+                       c-0.284,0.769-1.13,0.514-1.677,0.295c-2.697-1.078-2.687-1.103-3.946,1.262c-0.013-1.247-0.391-2.059-1.756-2.27
+                       c0.408,1.757,1.064,3.317,2.45,4.591c0.302,0.276,2.103,0.274,0.557,1.455c-0.068,0.053,0.855,1.602,1.476,2.315
+                       c0.928,1.063,1.081,2.114,0.881,3.528c-0.251,1.771,0.393,3.522,1.228,5.128c0.193,0.371,0.562,0.629,0.947,0.301
+                       c1.306-1.108,2.535-0.106,3.792,0.087c0.294,0.046,0.756-0.034,0.691,0.43c-0.075,0.557-0.551,0.417-0.911,0.316
+                       c-0.544-0.155-1.268-1.318-1.563-0.074c-0.23,0.973,1.289,2.309,1.539,2.248c2.145-0.532,4.262,0.716,6.42-0.094
+                       c0.945-0.354,1.641,0.727,1.819,1.627c0.26,1.325-1.142,0.31-1.456,0.938c0.274,0.586,0.913,0.546,1.331,0.408
+                       c1.793-0.602,2.217,1.614,3.678,1.739c0.272,0.023-0.191,0.221-0.32,0.249c-0.366,0.082-0.391,0.314-0.255,0.565
+                       c0.157,0.285,0.422,0.484,0.777,0.451c0.264-0.025,0.471-1.151,0.794-0.038c1.775-1.403,3.98,0.315,5.84-0.814
+                       c0.512-0.312,1.289-0.653,1.965-0.155c1.389,1.021,2.75,2.086,4.145,3.099c0.416,0.303,0.442,0.608,0.149,0.956
+                       c-0.307,0.368-0.561,0.057-0.809-0.13c-0.207-0.153-0.411-0.314-0.623-0.462c-0.331-0.227-0.518-0.842-1.1-0.408
+                       c-0.435,0.324-0.429,0.787-0.337,1.225c0.104,0.504,0.87,1.099,0.07,1.458c-0.648,0.289-0.514-0.96-1.279-0.981
+                       c-0.242,0.48,0.418,0.669,0.419,1.05c0.002,0.565,1.108,0.78,0.55,1.441c-0.427,0.505-0.929-0.121-1.408-0.184
+                       c-2.568-0.325-2.691-0.416-4.617-3.828c-0.238,0.997-0.2,0.982,0.064,1.614c0.416,0.993,0.652,2.084,1.193,2.997
+                       c0.514,0.868-0.164,1.275-0.52,1.611c-0.51,0.49-0.641-0.306-0.916-0.566c-0.49-0.462-1.015-0.723-1.726-0.693
+                       c-1.389,0.061-2.563-0.415-3.328-1.769c-0.352,1.569-0.165,3.002,0.111,4.474c-0.313-0.062-0.542-0.1-0.541-0.109
+                       c0.352-2.983-1.731-2.517-3.5-2.482c-0.17,0.004-0.357,0.057-0.504,0.145c-1.841,1.089-2.739,0.785-3.476-1.278
+                       c-0.172-0.485-0.244-0.995-0.631-1.396c-0.423,0.155-0.066,1.237-0.857,0.85c-0.665-0.321,0.137-1.055-0.326-1.655
+                       c-0.395,1.442-1.599,1.123-2.603,1.258c-0.166,0.023-0.354-0.109-0.533-0.169c0.726-2.019-2.68-1.418-2.185-3.444
+                       c0.081-0.337-0.748-0.883-1.769-0.447c-1.661,0.707-3.557,1.096-5.356,1.11c-0.573,0.004-1.801-0.449-2.408-1.067
+                       c-1.602-1.639-3.642-2.006-5.736-2.316c-0.159,1.717,1.478,3.936,3.2,4.349c0.489,0.117,1.406-0.291,1.274,0.668
+                       c-0.133,0.969-0.949,0.561-1.53,0.408c-0.245-0.065-0.453-0.21-0.674,0.024c0.499,2.186,2.359,2.909,4.277,3.641
+                       c-0.304,0.229-0.408,0.37-0.499,0.365c-0.881-0.068-2.03-0.409-2.395,0.536c-0.19,0.496,0.544,1.455,1.023,2.08
+                       c0.705,0.92,1.654,1.553,2.689,2.131c0.582,0.323,1.612,0.594,1.577,1.913c-0.942-0.536-1.864-0.689-2.569-1.363
+                       c-0.297-0.285-0.762-0.359-0.977,0.06c-0.166,0.324,0.193,0.578,0.476,0.729c0.915,0.496,2.321,0.574,1.852,2.224
+                       c0.422,0.108,0.841,0.221,1.263,0.321c1.363,0.323,2.737,0.806,2.491,2.519c-0.183,1.285-1.028,2.43-2.245,2.977
+                       c-1.151,0.519-1.955-0.223-1.753-1.422c0.108-0.651,0.277-1.243-0.633-1.543c-0.729-0.245-1.226-0.16-1.623,0.495
+                       c-0.25,0.417-0.397,1.09-1.106,0.608c-0.54-0.367-0.542-0.916-0.127-1.338c1.182-1.202,0-1.669-0.68-2.243
+                       c-0.869-0.734-2.674-0.927-1.275-2.778c0.534-0.707-0.429-1.305-0.709-1.836c-0.764-1.445,0.495-3.073-0.669-4.477
+                       c-0.371-0.449-0.562-1.114-1.144-1.425c-0.319-0.169-0.667-0.48-0.51-0.71c0.939-1.389-0.34-2.824,0.227-4.302
+                       c0.601-1.567-1.645-4.674-3.389-4.759c-1.898-0.095-2.313-1.49-2.859-2.766c-0.246-0.568-0.496-0.94-1.04-1.196
+                       c-0.853-0.397-1.51-0.542-1.404,0.77c0.005,0.064,0.001,0.13,0,0.195C1643.513,488.858,1643.565,488.901,1645.858,487.906"/>
+       </g>
+       <g>
+               <path fill="#2A3524" d="M678.941,301.167c0-0.317,0.041-0.193,0.019,0.036C678.949,301.205,678.941,301.196,678.941,301.167
+                        M690.238,302.251c-0.074,0.072-1.739,1.303-1.739,1.303s0.869,0.722,1.304,0.866c0.435,0.146,0.289-0.577,0.435-1.3
+                       C690.381,302.397,690.309,302.179,690.238,302.251 M688.064,304.638c-0.289-0.362-0.652-0.652-0.652-0.652
+                       s-2.82,1.732-3.476,2.387c-0.215,0.215-0.289,1.446,0,1.518c0.291,0.071,1.233-0.146,2.174-0.434
+                       c0.941-0.289,1.302,0.287,1.737,0.651c0.434,0.359,0.869-0.797,1.521-1.52C690.02,305.866,688.355,304.999,688.064,304.638
+                        M703.271,306.589c-0.741,0.837-3.646,2.389-4.78,2.82c-0.867,0.329-6.363-0.158-8.036-0.217
+                       c-1.321-0.046-0.979,0.651-0.435,1.086c0.543,0.434,0.607,0.299,0.652,2.169c0.021,0.925,2.389,4.227,3.476,5.637
+                       c1.085,1.41,0.76,2.169,0.65,4.122c-0.108,1.951-0.325,4.227-1.737,4.337c-1.412,0.108-2.716-0.217-3.258-0.651
+                       c-0.544-0.434-0.696,0.483-1.522,0.434c-1.024-0.063-1.294-0.549-1.519-2.169c-0.21-1.497-2.064-2.386-2.826-1.302
+                       c-0.759,1.084-1.084,1.519-1.302,2.603c-0.217,1.084-1.411,1.518-1.521,2.385c-0.108,0.868-0.872,0.318-0.435,2.386
+                       c0.144,0.68-1.194-0.759-1.52-1.518c-0.326-0.76-1.304-3.037-1.738-3.904c-0.435-0.868-0.96-0.723-1.008,0.259
+                       c-0.041,0.822-0.066,1.879-0.077,1.909c0,0-0.575-0.934-0.87-1.735c-0.476,0.299-0.478,4.58-5.214,8.892
+                       c-0.626,0.57-0.433,7.048-0.868,9.975c-0.434,2.928,0.059,4.299,0,5.855c-0.038,0.999-0.544,1.627-0.434,4.121
+                       c0.107,2.494,0.977,7.048,1.086,7.809c0.108,0.759-0.652,1.518,0.216,1.95c0.869,0.434,0.762,1.303,1.304,1.735
+                       c0.543,0.434,1.087,1.518,1.304,1.952c0.217,0.434-0.327,0.434-1.956,0.434c-1.629,0-2.172,0.435-2.607-0.434
+                       c-0.434-0.867-0.759-0.977-0.434-1.736c0.327-0.758,0-1.083-0.652-1.517c-0.65-0.434-0.76-1.301-0.435-4.12
+                       c0.327-2.82,0.225-6.452,0-7.591c-0.225-1.146-1.003-5.495-0.867-6.723c0.113-1.035-0.218-1.736-0.435-2.387
+                       c-0.217-0.649-1.194-0.433-1.304,0.217c-0.108,0.652-0.218,2.494-0.218,3.471c0,0.974,0.435,2.277,0.218,3.902
+                       c-0.218,1.627-0.268,7.085,0.217,8.892c0.537,2.003-0.107,3.037,0.217,3.471c0.326,0.433,0.978-0.065,1.522,1.95
+                       c0.179,0.67,0.834,0.423,1.519,2.386c0.144,0.41-2.182,0.085-3.693,0c-0.453-0.026-0.903-0.321-0.869-1.517
+                       c0.057-1.879-0.433-1.411-1.085-1.736c-0.652-0.324-0.444,0.28-0.217-4.555c0.153-3.294,0.13-5.752-0.218-6.94
+                       c-1.646-5.622-0.4-7.139-0.869-8.023c-1.801-3.403-2.542-6.591-2.823-8.46c-0.15-0.987-3.055,1.107-9.558-0.651
+                       c-2.189-0.59-3.873-2.32-4.78-1.3c-0.484,0.543-0.034,1.707-7.821,9.326c-0.824,0.806-2.224,2.019,0,7.591
+                       c3.988,9.979,4.838,10.219,6.084,12.144c0.792,1.227,1.302,2.061,1.954,2.82c0.652,0.759,0.435,1.518-0.434,1.518
+                       c-0.87,0-1.752-0.044-3.041-0.216c-0.926-0.125-0.602-1.035-0.87-2.386c-0.232-1.176-0.76-1.518-1.085-0.867
+                       c-0.327,0.652-0.761-0.109-1.086-1.302c-0.326-1.193-4.345-12.794-5.648-15.181c-1.304-2.386-1.521-2.82-1.521-4.119
+                       c0-1.303,1.232-1.236,2.389-3.038c2.776-4.322,2.825-6.073,2.825-7.157c0-1.083-0.544-1.518-0.869-0.649
+                       c-0.327,0.867-3.91,7.591-4.78,9.109c-0.869,1.517-0.548,2.818-0.652,4.553c-0.161,2.739-1.024,2.519-1.085,3.253
+                       c-0.23,2.738-0.111,7.361,0,11.712c0.025,0.999-0.434,1.41,0,2.386c0.435,0.975,0.373,1.195,0.435,2.385
+                       c0.058,1.131-0.11,1.302-1.739,1.518c-1.629,0.217-1.954-0.542-1.737-1.518c0.216-0.977-0.969,0.038-0.217-1.735
+                       c0.527-1.244,0.542-1.518,0-2.818c-0.544-1.303,0.546-0.905,0.65-5.207c0.076-3.035,0.423-8.021,0.217-9.108
+                       c-0.691-3.67,0.598-2.404,0.652-5.422c0.046-2.389,0.76-16.483,0.652-17.134c-0.107-0.65-2.388-8.24,2.172-11.928
+                       c4.563-3.687,8.581-5.204,10.645-4.771c2.063,0.434,6.516,0.759,10.209-0.215c3.693-0.976,9.993-3.037,10.427-3.47
+                       c0.435-0.434,1.779-3.046,4.563-2.82c4.018,0.325,5.54,3.796,8.905,4.338c1.943,0.311,5.958,0.7,6.519,0.866
+                       c1.085,0.325,1.954,0,1.085-0.434c-0.869-0.433-6.082-2.602-8.471-3.904c-2.391-1.3-4.621-3.823-6.299-6.722
+                       c-2.826-4.88-1.957-6.614-2.609-8.242c-0.652-1.628-0.875-2.568-1.084-3.253c-0.212-0.685,0.007-1.022,0.432-0.217
+                       c0.26,0.49,1.097,1.735,1.522,2.386c0.361,0.553,0.657,0.208,0.652-0.651c-0.004-0.583-0.217-1.626-0.217-2.169
+                       c0-0.542,0.803-0.481,0.869,0c0.059,0.434,0.325,1.193,0.435,1.735c0.108,0.541,0.389,0.266,0.65-0.434
+                       c0.195-0.518,0.434-1.084,0.434-1.084s0.494-0.051,0.435,0.651c-0.049,0.582-0.595,3.276-0.652,4.986
+                       c-0.028,0.874,0.439,0.769,0.652,0c0.293-1.047,0.87-2.818,1.087-3.468c0.217-0.651,0.543,0.434,0.435,1.3
+                       c-0.11,0.869-0.248,5.12,0.65,6.291c1.24,1.614,2.57,2.059,2.608,1.084c0.106-2.769,0.671-3.802,1.302-4.555
+                       c0.643-0.765,0.87-0.652,0.652,0.217c-0.217,0.867-0.86,5.011,0.652,8.242c1.131,2.415,1.924,2.739,2.607,3.036
+                       c0.68,0.296,0.856-0.274,0.888-0.616c0.079-0.013,0.391-0.557,0.633,0.182c0.27,0.819,0.652,1.41,1.085,2.169
+                       c0.435,0.759,0.921,1.027,1.521,0.866c0.741-0.198,1.645-0.43,2.172-2.384c0.754-2.798,2.064-3.579,1.956-2.604
+                       c-0.109,0.976-0.215,1.643-0.434,3.038c-0.146,0.913,0.652,0.758,1.086,0.433c0.433-0.324,0.382-0.379,0.65-1.083
+                       c0.246-0.64,0.87-0.759,0.652-0.218c-0.217,0.544,0,1.195,0.435,0.651c0.435-0.541,1.522-1.517,1.522-1.517
+                       s-1.114-5.517-9.777-10.844c-1.713-1.052-0.386-1.169,0.434-1.084c1.265,0.13,2.127,0.543,2.826,0.866
+                       c0.491,0.231,0.489-0.345,0.215-0.866c-0.4-0.761-0.215-1.084,0.435-0.217c0.652,0.868,1.412,1.519,2.174,1.952
+                       c0.759,0.433,2.171,0.325,1.736-1.084c-0.434-1.41-0.325-1.584-0.869-2.386c-0.387-0.576,0.14-0.95,0.652-0.434
+                       c1.225,1.231,1.9,3.889,2.654,4.442c1.166,0.855,2.326,0.441,2.561-0.755c0.211-1.085,0.434-2.277,0.434-3.036
+                       s0.65-0.651,0.868,0.215c0.217,0.869-0.046,2.859,0.217,4.339c0.272,1.524,1.197,1.519,2.174,0.65
+                       c0.977-0.866,1.44-1.838,1.519-2.601c0.104-0.97,0.756-1.084,0.652,0c-0.213,2.244-1.264,4.47-2.823,6.073
+                       c-0.864,0.887-0.87,1.843,0.217,1.735c1.087-0.11,2.82-1.02,4.345-3.904c1.024-1.941,0.754,0.14,0.433,1.3
+                       c-0.654,2.377-2.669,3.842-4.343,5.422c-2.733,2.577-3.574,4.334-3.259,5.64c0.331,1.368,1.629,1.626,2.824,1.518
+                       c1.194-0.109,3.258-2.711,3.693-3.254c0.435-0.541,1.952-1.243,0.652,0.652c-1.688,2.454-0.652,2.276,0,1.734
+                       c0.65-0.543,2.389-1.409,2.824-1.734C704.14,304.745,704.407,305.309,703.271,306.589"/>
+       </g>
+</g>
+</svg>
diff --git a/assets/Keweenaw Map.svg b/assets/Keweenaw Map.svg
new file mode 100644 (file)
index 0000000..8aa4c3a
--- /dev/null
@@ -0,0 +1,2104 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 21.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+        viewBox="0 0 645 400" enable-background="new 0 0 645 400" xml:space="preserve">
+<g id="water">
+       <rect fill="#BCD5E9" width="645" height="400"/>
+</g>
+<g id="Land">
+       <g>
+               <path fill="#CCE7D3" d="M643.387,400.005l-25.732-21.212c-7.998-13.214-35.121-23.646-35.121-23.646
+                       c-5.911,0.348-23.993-6.955-23.993-6.955c-18.893-23.53-38.25-23.646-38.25-23.646c-11.475,0.348-11.127-10.432-11.127-10.432
+                       c-9.389-14.025-29.905-1.043-29.905-1.043c-14.952,3.825-20.864-2.086-20.864-2.086c-5.911-11.127-27.471,1.739-27.471,1.739
+                       c-17.039-3.13-28.166,10.084-28.166,10.084c-15.3,30.253-14.952,21.559-14.952,21.559c3.155-20.745,19.821-31.644,19.821-31.644
+                       s51.464-39.294,14.605-27.123c-36.86,12.171-65.026,51.464-65.026,51.464s-5.42,5.852-2.29,0.636
+                       c3.13-5.216-1.272-5.174-1.272-5.174s-19.549,15.056-7.803,12.298c7.982-1.875,1.018,3.053,1.018,3.053
+                       c-12.552,8.651-19.558,26.741-19.558,26.741c-4.173,17.734-11.475,13.214-11.475,13.214c-6.955-6.607,3.13-14.257,3.13-14.257
+                       c6.912-3.05,3.483-9.902-0.557-15.068c-0.007-0.628-0.022-1.255-0.022-1.878c0-1.274,0.198-1.96,0.673-3.115
+                       c0.827-2.011,0.931-4.309,0.273-6.393c-0.523-1.659-0.951-3.743-0.423-5.476c0.494-1.624,1.717-2.991,2.083-4.652
+                       c0.254-1.153,0.225-2.447,0.554-3.553c0.336-1.129,1.41-1.95,2.037-2.909c0.763-1.169,1.054-2.498,1.765-3.705
+                       c1.502-2.547,2.732-4.78,3.789-7.422c0.115-0.286,0.221-0.569,0.325-0.852c1.753-3.432,2.246-9.504,1.347-12.615l0.001-0.024
+                       l0.065-1.042v-4.938l0.506-2.402l-0.126-2.787l0.633-2.276l1.139-1.9l1.771-2.277l0.381-3.291l-1.14-3.418l-2.531-2.656
+                       l-2.026-1.647l-2.278-3.036l-1.772-1.9l-1.9-1.644h-1.138l-1.392-0.128l-0.633-0.379l-0.759,0.253l-0.508,0.76l-1.391-0.381
+                       l-1.735-1.334l2.368-0.311l0.662-0.423l0.689-0.597l0.458-1.285l-0.55-1.102l-1.193-1.1l-1.699-1.332l-0.184-1.514l-1.146-0.415
+                       l-1.009-0.366l-0.918-1.148l-1.01-0.965l-0.46-0.549l-0.596,0.274l-0.687,0.918l-0.781,0.552l-0.917,0.642l0.229,0.414
+                       l0.919,0.412l0.826,0.873l0.184,1.239l-1.286,2.112l-0.962,1.605l-1.653,0.185l-1.331-0.459c0,0-0.918-0.552-1.056-0.688
+                       c-0.137-0.139-0.137-1.975-0.137-1.975l0.55-1.377l0.827-1.79l0.78-2.615l0.505-6.658l0.275-3.857l-0.414-3.35v-3.213
+                       l0.827-15.064l-0.369-0.367c0,0-0.733-0.275-0.78-0.458c-0.045-0.184-0.366-0.826-0.091-1.009c0.275-0.184,1.376-0.46,1.376-0.46
+                       l0.047-0.461l-1.194-0.319l-2.523-1.103l-2.434-0.779c0,0-2.016-1.378-2.2-1.515c-0.183-0.139-1.744-1.286-1.744-1.286
+                       l-2.157-1.148l-3.534-0.826l-2.065-0.413l-2.386-0.275l-2.938,0.139l-3.212,0.091l-6.133-0.081l-2.533-1.036l-1.841-1.036
+                       l-1.094-1.036l-1.036-1.381l-1.036-2.532l-0.921-2.187l-0.575-1.383l-0.345-1.381l-0.058-1.9l-0.23-1.439l-0.749-1.727
+                       l-1.726-1.899l-0.345-1.496l-0.23-1.381l0.23-2.36l0.287-1.727l1.209-0.805l1.612-1.381l1.093-1.093l0.287-1.67l0.461-2.13
+                       l0.806-1.209l1.036-1.323l0.633-1.095l0.172-1.669l-0.057-4.662l-0.23-3.166l-0.691-2.878l-1.036-1.958l-0.805-0.921l-0.691-0.575
+                       l-0.461-0.286l-0.922,0.172l-0.747,0.518l-1.957,0.287l-1.842,0.23l-1.381,0.345l-1.209,0.576l-1.67,1.439l-2.533,1.324
+                       l-1.381,0.69l-3.078,2.706l-3.694,3.167l-3.958,2.639l-1.847,1.584l-1.847,1.583l-2.375,2.375l-1.847,1.055l-1.584,1.32
+                       l-2.903,3.695l-1.847,2.638l-2.374,2.904l-2.904,2.902l-0.666,0.593c-0.423,0.094-0.983,0.3-1.732,0.659
+                       c-2.703,1.294-4.803,3.968-7.176,5.757c-3.89,2.932-8.563,3.474-12.479,6.405c-3.998,2.991-5.298,7.569-7.434,11.824
+                       c-2.399,4.777-6.569,5.051-11.065,6.486c-8.407,2.685-9.613,8.824-12.059,16.295c-1.369,4.18-5.032,6.802-5.483,11.393
+                       c-0.273,2.779-0.03,3.764-1.613,6.094c-1.046,1.541-2.633,3.033-3.788,4.372l-11.608,3.397
+                       c-9.041-4.868-14.605,1.391-14.605,1.391c-7.302,6.607-18.082,3.13-18.082,3.13l-13.214,3.13l-6.955,4.173
+                       c0,0-0.683-0.402-10.084,16.343c-11.127,19.821-84.151,44.162-84.151,44.162l0.348,56.68"/>
+               <path fill="#496B71" d="M641.815,400.004l-24.922-20.551l-0.088-0.145c-7.388-12.206-32.024-22.202-34.439-23.159
+                       c-6.252,0.145-23.459-6.737-24.198-7.035l-0.24-0.097l-0.162-0.202c-14.673-18.273-30.935-23.214-37.484-23.274
+                       c-3.753,0.119-6.757-0.907-8.884-3.039c-2.885-2.89-3.201-6.889-3.228-8.078c-8.818-12.659-28.186-0.636-28.382-0.512
+                       l-0.284,0.123c-15.324,3.921-21.555-2.088-21.813-2.346l-0.175-0.236c-0.982-1.849-2.466-3.029-4.536-3.607
+                       c-8.039-2.243-21.415,5.653-21.549,5.732l-0.321,0.192l-0.368-0.068c-15.594-2.866-26.196,8.583-27.156,9.666
+                       c-12.142,23.991-14.346,23.413-15.529,23.103c-0.974-0.253-1.281-1.312-1.247-2.143l0.011-0.11
+                       c3.185-20.943,19.563-31.871,20.259-32.325c14.27-10.9,28.841-24.407,27.393-27.15c-0.099-0.186-1.269-1.72-11.934,1.802
+                       c-36.134,11.931-64.25,50.709-64.53,51.1l-0.078,0.096c-3.216,3.473-3.863,3.414-4.546,2.901
+                       c-0.962-0.722-0.167-2.048,0.675-3.451c1.225-2.042,1.015-2.86,0.868-3.117c-0.188-0.329-0.661-0.47-0.985-0.524
+                       c-5.744,4.459-10.541,9.147-10.853,10.588c0.257,0.051,0.937,0.093,2.52-0.279c2.559-0.601,4.376-0.749,4.931,0.483
+                       c0.181,0.403,0.733,1.628-3.112,4.349c-11.812,8.141-18.722,25.079-19.181,26.229c-1.848,7.813-4.566,12.512-8.078,13.967
+                       c-2.687,1.113-4.781-0.152-4.87-0.207l-0.161-0.125c-1.949-1.852-2.872-3.964-2.744-6.278c0.285-5.131,5.726-9.315,5.958-9.491
+                       l0.199-0.117c1.816-0.801,2.872-1.882,3.229-3.302c0.611-2.435-0.83-5.978-4.168-10.245l-0.207-0.265l-0.013-1.001
+                       c-0.007-0.41-0.013-0.819-0.013-1.225c0-1.433,0.231-2.236,0.749-3.493c0.736-1.791,0.826-3.874,0.244-5.715
+                       c-0.778-2.467-0.918-4.451-0.426-6.065c0.258-0.847,0.672-1.598,1.072-2.325c0.424-0.769,0.825-1.496,0.991-2.251
+                       c0.1-0.455,0.153-0.948,0.208-1.471c0.076-0.711,0.154-1.447,0.364-2.153c0.276-0.927,0.895-1.641,1.441-2.272
+                       c0.271-0.312,0.527-0.608,0.717-0.897c0.354-0.543,0.602-1.152,0.865-1.796c0.249-0.612,0.507-1.245,0.876-1.871
+                       c1.552-2.633,2.716-4.77,3.722-7.286c0.111-0.276,0.211-0.544,0.311-0.813l0.052-0.122c1.695-3.319,2.078-9.116,1.277-11.887
+                       l-0.045-0.155l0.074-1.249l-0.002-4.979l0.501-2.38l-0.128-2.818l0.78-2.674l1.207-1.999l1.601-2.058l0.323-2.796l-0.999-2.997
+                       l-2.335-2.451l-2.145-1.781l-2.246-2.994l-1.699-1.822l-1.58-1.367h-0.768l-1.709-0.153l-0.435-0.261l-0.003,0.001l-0.716,1.072
+                       l-2.271-0.621l-3.789-2.913l4.523-0.595l0.415-0.265l0.437-0.378l0.228-0.641l-0.28-0.56l-1.059-0.977l-1.962-1.533l-0.159-1.316
+                       l-1.845-0.669l-1.051-1.314l-0.888-0.849l-0.558,0.665l-0.539,0.381l0.001,0l1.176,1.243l0.283,1.905l-2.685,4.441l-2.365,0.264
+                       l-1.731-0.62c-1.017-0.612-1.172-0.764-1.238-0.828c-0.258-0.262-0.436-0.442-0.436-2.685v-0.191l0.621-1.554l0.818-1.773
+                       l0.729-2.446l0.765-10.307l-0.409-3.376v-3.212l0.801-14.623c-0.819-0.361-1.015-0.717-1.092-1.022
+                       c-0.136-0.371-0.461-1.259,0.067-1.86l-1.84-0.804l-2.644-0.889c0,0-2.047-1.4-2.234-1.539c-0.166-0.126-1.397-1.031-1.68-1.239
+                       l-1.979-1.053l-3.408-0.797l-2.034-0.406l-2.223-0.253l-2.858,0.135l-3.232,0.092l-6.363-0.083l-2.818-1.162l-2.037-1.18
+                       l-1.206-1.162l-1.161-1.601l-2.577-6.237l-0.374-1.592l-0.056-1.836l-0.2-1.252l-0.634-1.461l-1.79-1.969l-0.403-1.75
+                       l-0.263-1.571l0.243-2.49l0.367-2.219l1.517-1.01l1.567-1.342l0.814-0.817l0.234-1.36l0.509-2.355l0.911-1.366l1.037-1.328
+                       l0.492-0.852l0.144-1.4l-0.056-4.605l-0.222-3.024l-0.643-2.678l-0.923-1.744l-0.677-0.775l-0.652-0.528l-0.334,0.062l-0.764,0.53
+                       l-3.991,0.547l-1.227,0.307l-0.998,0.476l-1.757,1.479l-3.815,1.965l-2.981,2.62l-3.799,3.247l-3.908,2.606l-3.649,3.127
+                       l-2.528,2.483l-1.771,1.011l-1.436,1.197l-2.838,3.613l-1.815,2.594l-2.419,2.963l-2.971,2.976l-0.9,0.804l-0.253,0.056
+                       c-0.368,0.081-0.878,0.278-1.517,0.585c-1.569,0.75-2.991,2.075-4.366,3.357c-0.848,0.789-1.724,1.605-2.641,2.298
+                       c-2.054,1.549-4.299,2.458-6.471,3.337c-2.14,0.867-4.161,1.685-6.012,3.07c-2.899,2.17-4.297,5.272-5.778,8.558
+                       c-0.431,0.957-0.877,1.946-1.364,2.916c-2.173,4.328-5.657,5.293-9.345,6.315c-0.753,0.209-1.524,0.422-2.306,0.672
+                       c-7.164,2.288-8.681,7.063-10.78,13.673c-0.206,0.65-0.417,1.312-0.637,1.985c-0.622,1.902-1.667,3.471-2.677,4.989
+                       c-1.299,1.952-2.526,3.795-2.761,6.192c-0.049,0.496-0.081,0.935-0.11,1.333c-0.136,1.864-0.226,3.096-1.67,5.222
+                       c-0.744,1.096-1.705,2.124-2.634,3.119c-0.431,0.462-0.851,0.91-1.224,1.343l-0.192,0.222l-12.281,3.594l-0.359-0.193
+                       c-8.255-4.444-13.341,1.12-13.391,1.177l-0.076,0.077c-7.069,6.396-16.97,3.943-18.78,3.421l-12.804,3.033l-6.861,4.116
+                       c-0.341,0.352-2.2,2.613-9.69,15.955c-10.736,19.122-76.114,41.714-84.02,44.388l0.343,55.962l-1.987,0.012v-57.401l0.332-0.228
+                       c0.727-0.242,72.785-24.445,83.599-43.706c8.461-15.071,9.986-16.535,10.544-16.772l7.131-4.224l13.483-3.193l0.264,0.085
+                       c0.102,0.033,10.305,3.204,17.084-2.896c0.591-0.617,6.444-6.332,15.404-1.745l10.945-3.203c0.338-0.382,0.705-0.775,1.081-1.178
+                       c0.878-0.939,1.784-1.911,2.442-2.879c1.145-1.685,1.204-2.489,1.332-4.25c0.03-0.414,0.063-0.868,0.114-1.383
+                       c0.284-2.89,1.707-5.03,3.085-7.098c0.979-1.472,1.904-2.862,2.443-4.506c0.219-0.667,0.427-1.324,0.632-1.968
+                       c2.108-6.635,3.927-12.364,12.07-14.964c0.806-0.258,1.602-0.478,2.379-0.694c3.532-0.979,6.322-1.752,8.1-5.292
+                       c0.471-0.938,0.9-1.891,1.328-2.84c1.519-3.371,3.089-6.856,6.399-9.333c2.056-1.539,4.293-2.444,6.456-3.32
+                       c2.147-0.87,4.175-1.691,6.02-3.082c0.835-0.63,1.636-1.376,2.483-2.166c1.485-1.383,3.02-2.813,4.861-3.694
+                       c0.658-0.316,1.212-0.536,1.682-0.667l0.484-0.431l2.863-2.863l2.307-2.83l1.803-2.579l3.08-3.889l1.727-1.42l1.731-0.989
+                       l2.281-2.281l3.846-3.29l3.908-2.606l3.649-3.127l3.281-2.84l1.381-0.69l2.415-1.263l1.804-1.508l1.395-0.643l1.499-0.367
+                       l3.547-0.481l0.731-0.507l1.51-0.281l0.899,0.57l0.803,0.685l0.935,1.111l1.124,2.19l0.716,3.038l0.23,3.165l0.061,4.779
+                       l-0.2,1.937l-0.817,1.395l-1.036,1.322l-0.657,0.989l-0.421,1.946l-0.333,1.94l-1.317,1.316l-1.764,1.505l-0.85,0.566
+                       l-0.217,1.302l-0.208,2.163l0.208,1.252l0.274,1.183l1.663,1.829l0.884,2.117l0.242,1.565l0.054,1.793l0.301,1.206l2.457,5.92
+                       l0.909,1.213l0.944,0.893l1.68,0.946l2.301,0.942l5.945,0.078l3.172-0.091l2.999-0.142l2.466,0.284l2.146,0.426l3.806,0.923
+                       l2.279,1.224c0,0,1.572,1.155,1.756,1.295c0.161,0.12,1.61,1.111,2.041,1.405l2.391,0.77l2.455,1.073l1.939,0.518l-0.205,1.996
+                       l-0.676,0.17c-0.094,0.024-0.19,0.049-0.285,0.075l0.087,0.033l0.836,0.831l-0.852,15.508l0.001,3.097l0.418,3.385l-0.826,10.825
+                       l-0.83,2.748l-0.827,1.79l-0.458,1.149c0.004,0.459,0.021,0.923,0.042,1.21c0.154,0.097,0.375,0.235,0.58,0.36l1.019,0.351
+                       l0.942-0.105l1.812-2.995l-0.085-0.574l-0.475-0.502l-1.041-0.466l-0.823-1.487l2.299-1.612l0.745-0.995l1.514-0.696l0.912,1.088
+                       l1.06,1.025l0.744,0.93l2.467,0.893l0.208,1.712l1.374,1.078l1.388,1.275l0.821,1.643l-0.688,1.93l-0.652,0.566l0.596-0.199
+                       l0.83,0.497l1.167,0.108l1.417-0.004l2.256,1.96l1.84,1.981l2.205,2.939l2.024,1.655l2.684,2.817l1.28,3.837l-0.438,3.787
+                       l-1.905,2.45l-1.039,1.733l-0.554,1.994l0.125,2.754l-0.51,2.425v4.835l-0.059,0.959c0.855,3.223,0.435,9.406-1.436,13.12
+                       c-0.105,0.283-0.206,0.552-0.316,0.826c-1.052,2.63-2.255,4.84-3.854,7.554c-0.295,0.501-0.515,1.04-0.748,1.611
+                       c-0.286,0.703-0.582,1.429-1.041,2.133c-0.263,0.403-0.576,0.763-0.879,1.112c-0.455,0.524-0.884,1.02-1.038,1.537
+                       c-0.158,0.531-0.223,1.145-0.292,1.796c-0.059,0.553-0.12,1.125-0.244,1.687c-0.228,1.036-0.718,1.924-1.191,2.784
+                       c-0.367,0.666-0.714,1.295-0.911,1.943c-0.366,1.201-0.224,2.845,0.42,4.888c0.729,2.311,0.622,4.821-0.302,7.069
+                       c-0.449,1.092-0.598,1.641-0.598,2.738c0,0.396,0.006,0.795,0.012,1.194l0.005,0.338c3.631,4.718,5.086,8.649,4.323,11.687
+                       c-0.5,1.993-1.925,3.535-4.237,4.584c-0.651,0.521-4.879,4.053-5.092,7.958c-0.093,1.693,0.575,3.211,2.039,4.636
+                       c0.301,0.15,1.507,0.656,3.037,0.003c1.979-0.846,4.779-3.724,6.876-12.638l0.041-0.131c0.29-0.75,7.261-18.477,19.921-27.201
+                       c0.74-0.524,1.49-1.168,1.952-1.652c-0.441,0.036-1.128,0.138-2.179,0.385c-1.869,0.439-4.104,0.752-4.809-0.728
+                       c-1.222-2.573,5.731-8.666,11.779-13.324l0.264-0.203l0.333-0.003c0.21-0.02,2.147,0.023,3.022,1.551
+                       c0.436,0.762,0.491,1.707,0.166,2.826c3.681-4.922,30.796-39.928,65.098-51.254c8.691-2.87,13.106-3.13,14.314-0.843
+                       c2.902,5.501-20.701,24.122-28.004,29.698c-0.221,0.148-16.257,10.87-19.402,30.749c1.133-0.937,4.464-4.937,13.045-21.903
+                       l0.127-0.192c0.114-0.135,11.535-13.431,28.74-10.486c2.204-1.266,14.559-8.042,22.778-5.751c2.527,0.705,4.434,2.196,5.671,4.431
+                       c0.775,0.657,6.614,5.082,19.682,1.783c1.876-1.131,21.729-12.613,31.12,1.417l0.178,0.265l-0.01,0.319
+                       c-0.001,0.04-0.084,4.224,2.661,6.963c1.723,1.719,4.223,2.541,7.443,2.444c0.843,0.004,19.973,0.387,38.891,23.813
+                       c2.144,0.853,18.071,7.09,23.324,6.789l0.214-0.013l0.201,0.077c1.116,0.429,27.34,10.633,35.525,23.913l26.493,21.87H641.815z"/>
+       </g>
+       <path fill="#CCE7D3" d="M342.431,289.381l1.826-1.143l2.398-1.825l1.599-2.17l0.913-1.941l1.256-2.17l1.598-2.168l1.598-2.626
+               l0.8-0.914l0.913-0.228l1.598-1.485l1.37-2.283l0.8-0.914l0.571-1.484l0.114-1.94l0.227-2.169l1.257-2.969l1.712-4.453l0.685-2.169
+               l0.913-1.942l-0.228-3.311v-3.311l0.228-2.511l1.37-2.284l2.17-1.712l2.168-1.599l1.941-0.799l2.283-0.912l2.169-1.257l1.827-1.255
+               l1.484-0.686l2.056-1.598l1.712-2.055l2.625-6.051l0.686-2.398l-0.343-2.855l0.457-3.311l1.255-2.625l2.398-2.626l1.598-0.799
+               l2.97-0.46h1.597l1.257,0.8l1.372,1.37l1.025,1.37l0.572,0.458l0.912-0.571l0.799-1.029l1.6-1.026l1.483-1.143
+               c0,0,0.685-0.798,0.914-1.141c0.229-0.343,0.57-2.282,0.57-2.282l0.228-1.486l-0.911-0.57l-0.571,0.227l-0.458,0.914l-1.255,0.114
+               l-0.685-0.801l-0.686-2.739l0.228-6.281l1.259-5.022l1.824-3.654l2.17-3.311l2.742-3.197l2.398-2.513l1.826-1.484l1.597-0.456
+               l0.916,0.684l0.913,0.456l2.057,0.342l1.37-0.457l2.283-1.371l1.484-0.569l1.029-0.115l1.026-0.572l1.713-1.712l1.94-0.686
+               l1.028-0.683l1.256-2.398l1.599-2.283l1.597-0.799l1.942-1.143l1.939-1.939l1.6-3.541l1.599-2.742l1.029-2.055l1.598-1.37
+               l1.827-0.685l2.056-0.456h1.827l0.798-1.257l1.715-2.511l1.37-1.712l1.254-1.485l1.259-1.027l1.026-2.055l1.712-2.397l2.286-2.057
+               l1.597-1.597c0,0,0.685-0.801,0.913-1.143c0.23-0.342,0.8-2.056,0.8-2.056l2.17-0.684l3.424-0.457l2.515-0.685l3.769-1.599
+               l3.081-1.598l2.398-2.513l1.94-1.599l1.487-1.027l1.367-1.483l1.829-0.913l1.825-0.57l2.055-1.942c0,0,1.829-2.169,2.17-2.283
+               c0.342-0.114,1.941-0.685,1.941-0.685l2.398-0.342l1.6,0.114l1.823-0.913l2.286-2.742l0.913-2.739l-0.913-2.056l-1.6-1.827
+               l-3.994-2.624l-2.286-2.171l-1.369-2.626l0.684-2.967l0.457-1.6l0.344-1.598c0,0,0.57-1.369,0.684-1.713
+               c0.114-0.342,0.684-1.483,0.684-1.483l2.169-0.914l3.427-0.57l3.995-0.913l3.316-0.229l2.852-1.027l2.056-0.342l1.484,0.571
+               l1.027,0.457l1.142-0.344l1.599-0.913l2.054-1.141h2.398l1.711,0.113l1.6,1.028l2.055,0.457l2.74-0.228h1.6l1.824,0.684l0.23,0.8
+               l1.143,0.342h1.254l1.598,0.342l1.598,1.029c0,0,0.572,0.799,0.914,0.913c0.343,0.114,1.827,0.685,1.827,0.685h1.827l1.598-1.141
+               c0,0,1.257-1.486,1.6-1.599c0.342-0.114,2.169-1.142,2.169-1.142l1.942-0.685l1.943-0.458l1.484,0.571l1.143,0.57l1.713,0.115
+               l1.483-0.571l1.255-1.713l1.257-2.169l1.256-1.37l1.598-0.684l1.371-0.228h1.713l0.684-0.229l1.256-0.227l2.169,0.798l2.168,0.686
+               l1.598,0.913h4.797l0.8-0.571l0.341-1.485l-0.228-1.94l-0.8-1.712l-1.824-1.599l-0.686-2.397l0.342-3.311l0.455-1.827l-0.571-3.653
+               l-0.226-3.311l-1.484-1.712l-8.45-5.596l-1.141-0.686l-1.37-0.114l-1.828-1.37l-0.684-0.913l-1.486-0.114l-1.482-0.571
+               l-2.968-1.941l-1.828-0.114l-1.484-1.028l-1.254-1.029l-1.485-0.57h-1.94l-2.513-0.343h-1.142l-1.142,0.228l-1.94-0.113
+               l-1.37-0.342h-2.856l-2.397-0.228l-2.511-0.229l-2.398-0.684l-2.397-0.228l-2.285,1.026l-1.369,0.686l6.051,0.685l0.799,0.684
+               l-0.113,0.8l-1.029,0.456l-1.37-0.913l-1.141-0.571l-0.686,0.228l-0.341,0.685l-1.143-0.457l-1.371-0.457l-5.25,0.685l-2.056-0.799
+               l-2.969,0.228l-1.369-0.57l0.57-0.457l-0.57-2.284l-3.539-0.341l-3.541,0.57l-2.17-0.457l-3.195-1.256c0,0-4.452,1.37-5.023,1.37
+               c-0.571,0-2.169-0.457-2.169-0.457l-4.457-0.456l-1.143,0.456l-4.681,0.914l-4.452-0.457l-2.627,0.457l-3.768,0.798l-5.708-0.114
+               l-2.055,1.37l5.478,0.572l-6.393,0.685l6.051,0.571l-8.219,0.685l-5.596,0.114l-3.196,0.228l-4.682,0.456l-0.911,0.572
+               l-5.253-0.228l0.344,1.369c0,0-0.344,0.8-0.688,0.8h-1.826l-1.141-0.228l-0.914-0.799l0.569-0.799l0.802-0.457l-6.851,0.228
+               l-0.912,1.028l-0.457,1.599l-4.339,0.913v-0.913l-5.371,1.94h-3.195l-3.198,2.625l-0.114-0.456l-4.452,1.142
+               c0,0-0.912,0.8-1.255,0.914c-0.343,0.113-1.941,0.913-1.941,0.913l-2.511,1.256l0.57,0.684l0.914,0.457l0.341,0.572l-0.571,2.51
+               l-3.996,3.768L406.6,64.11l-3.084,1.027l-3.308,0.457l-2.514,0.228l-2.283,0.686c0,0-1.712,0.113-2.056,0.227
+               c-0.343,0.115-2.511,0.342-2.511,0.342l-1.716,1.03l-2.968,1.825l-2.625,1.827l-2.397,1.37l-0.572,1.028
+               c0,0-0.343,0.571-0.914,0.686c-0.57,0.113-4.224,1.484-4.224,1.484l-1.598,0.914l-3.311,2.281l-3.311,1.257l-2.968,0.685h-2.17
+               l-3.541,1.828c0,0-1.254,1.141-1.597,1.255c-0.343,0.113-2.513,1.94-2.513,1.94l-1.599,0.685l-2.511,1.255l-0.686,0.914
+               l-1.941,1.712c0,0-1.484,1.141-2.284,1.255c-0.798,0.116-2.967,0.685-2.967,0.685l-3.196,1.94l-2.97,4.456l-1.484,2.284
+               l-1.941,2.512l-2.855,2.055l-1.598,1.141l-2.169,2.398l-1.828,2.512l-1.483,2.854l-0.913,3.425l-0.686,2.398l-3.196,2.626
+               l-1.255,2.967l-2.17,2.855l-1.941,1.713l-3.084,2.625l-1.827,1.712l-1.827,1.599l-2.284,2.967l-2.17,1.942l-3.31,2.625
+               c0,0-1.712-0.114-1.941,0.228c-0.229,0.342-2.513,2.512-2.855,2.856c-0.343,0.343-3.767,4.109-3.767,4.109l-2.854,1.94
+               l-2.968,2.284l-4.225,0.571l-3.539,1.371l-3.197,2.055l-1.826,2.397l-0.001,1.601l1.255,2.855l0.685,2.397v4.681l-0.228,8.336
+               l-1.028,2.054l-1.255,2.285l-1.485,1.711c0,0-1.598,1.598-1.94,1.827c-0.343,0.228-1.485,2.055-1.485,2.055l0.115,2.283
+               l1.027,1.712l1.599,1.713l0.458,3.197l1.027,4.909l1.369,3.426l1.257,2.511l2.054,2.169c0,0,1.714,0.571,2.056,0.686
+               c0.342,0.113,2.968,0.227,2.968,0.227l13.816-0.343l2.739,1.256l3.312,0.571l4.453,1.371l3.31,1.255l3.084,0.915l1.483,0.457
+               l0.914,0.343l0.457-0.686l0.799-1.141h1.029v1.256l-0.115,1.028l-0.457,1.141l-0.57,0.686l0.57,1.369l-0.456,1.599l-0.114,1.599
+               l0.456,0.912l1.257,1.484l0.113,1.941c0,0,0.685,1.255,0.8,1.599c0.114,0.343,1.484,1.257,1.484,1.257l0.799,0.341l0.571-0.456
+               h2.854l0.685-1.257l1.143-0.457l1.026-0.455l0.344-0.572h1.027h1.027c0,0,0.685-0.342,1.028-0.342c0.343,0,1.141-1.028,1.141-1.028
+               l4.682-0.113l1.712-0.343l1.599-0.459l0.228-1.027v-0.8l0.571-0.341l1.142-0.229l0.685-0.571l0.57-1.141l3.197-10.39l0.343-4.223
+               l-0.571-3.54l-0.572-2.625l-0.684-2.626l-3.311-1.255h-2.283l-1.599,0.569l-1.484,1.714l-1.6,2.853l-0.799,2.284l-2.056,3.654
+               l-1.827,1.599l-1.37,0.227l-0.342,1.257l-1.713,0.227l-1.484-0.684l-0.799-1.486l0.114-1.255l1.141-2.056l1.713-1.484l1.37-0.798
+               l1.827-0.801v-1.597l1.37-0.571l0.343-2.056l1.828-3.653l1.826-1.713l1.941-1.026l0.799-0.801h2.169l0.799-0.457l-0.799-1.599
+               l2.055-3.881l1.255-2.17l1.483-1.598l1.372-0.341l1.598,1.368l1.029,1.028l0.799-0.913l0.571-0.115l0.457,1.142l-0.114,1.257
+               l-0.456,1.141l-1.255,2.168l-0.114,1.257l0.57,1.484l-0.341,2.398l-1.371,1.827l-1.142,1.255l-0.114,2.284l0.571,3.196l0.799,2.398
+               l0.344,2.626v4.567l-0.344,4.795l-0.799,2.74l-1.142,2.284l-1.142,1.942l-1.369,1.598l-0.913,0.684l0.113,1.942l-3.082,3.426
+               l-2.626,1.94l-3.654,1.483l-4.11,2.284l-1.712,2.397l-1.941,3.198l-0.913,2.624l-0.57,3.198l-0.23,3.543v3.654l0.23,2.167
+               l0.798,2.626l1.029,2.626l1.255,1.599l1.598,0.799l2.169,0.572l1.371,0.456l1.141,0.455v0.687l-0.114,1.141l1.256,3.083
+               l1.941,2.284l1.484,2.168l1.141,2.056l0.115,1.484l1.254-1.598l0.114,5.138c0,0-0.342,1.143-0.685,1.255
+               c-0.342,0.114-0.913,1.599-0.913,1.599l0.686,0.8l1.712-0.228l1.143-0.343L342.431,289.381z"/>
+       <path fill="#81B9D9" d="M280.216,165.146c-0.071,0.453-0.594,0.896-1.02,1.135c0.044-1.282-0.457-4.628,1.202-5.164
+               c0.824-0.266,1.495,0.245,1.534,1.187c0.04,0.941-1.299,2.47-1.856,3.124"/>
+       <path fill="none" stroke="#007BB2" stroke-width="0.8763" d="M280.216,165.146c-0.071,0.453-0.594,0.896-1.02,1.135
+               c0.044-1.282-0.457-4.628,1.202-5.164c0.824-0.266,1.495,0.245,1.534,1.187c0.04,0.941-1.299,2.47-1.856,3.124"/>
+       <path fill="#81B9D9" d="M390.34,198.3c-0.366-0.365-0.887-0.322-1.239-0.7c-0.478-0.518-0.372-0.886,0.076-1.428
+               c0.441-0.532,1.004-0.816,1.501-1.301c0.514-0.503,0.537-1.128,0.341-1.759c-0.298-0.964-1.204-1.538-2.169-1.596
+               c-0.655-0.04-1.136,0.053-1.594,0.493c-0.487,0.471-0.729,1.067-1.162,1.556c-0.206,0.232-0.451,0.518-0.673,0.707
+               c-0.26,0.223-0.635,0.336-0.893,0.569c-0.541,0.484-0.604,1.177-0.636,1.854c-0.06,1.214,0.41,2.276,0.291,3.54
+               c-0.107,1.142-0.415,2.497,0.501,3.347c0.787,0.729,2.236,0.475,2.87-0.356c0.309-0.403,0.46-1,0.587-1.499
+               c0.158-0.606,0.542-1.044,1.034-1.388c0.418-0.294,0.94-0.463,1.175-0.923c0.252-0.485,0.28-1.021-0.272-1.267"/>
+       <path fill="none" stroke="#007BB2" stroke-width="0.8763" d="M390.34,198.3c-0.366-0.365-0.887-0.322-1.239-0.7
+               c-0.478-0.518-0.372-0.886,0.076-1.428c0.441-0.532,1.004-0.816,1.501-1.301c0.514-0.503,0.537-1.128,0.341-1.759
+               c-0.298-0.964-1.204-1.538-2.169-1.596c-0.655-0.04-1.136,0.053-1.594,0.493c-0.487,0.471-0.729,1.067-1.162,1.556
+               c-0.206,0.232-0.451,0.518-0.673,0.707c-0.26,0.223-0.635,0.336-0.893,0.569c-0.541,0.484-0.604,1.177-0.636,1.854
+               c-0.06,1.214,0.41,2.276,0.291,3.54c-0.107,1.142-0.415,2.497,0.501,3.347c0.787,0.729,2.236,0.475,2.87-0.356
+               c0.309-0.403,0.46-1,0.587-1.499c0.158-0.606,0.542-1.044,1.034-1.388c0.418-0.294,0.94-0.463,1.175-0.923
+               c0.252-0.485,0.28-1.021-0.272-1.267"/>
+       <path fill="#81B9D9" d="M377.877,212.084c-0.416,0-1.032-0.108-1.415,0.023c-0.201,0.067-0.322,0.258-0.518,0.345
+               c-0.209,0.091-0.446,0.092-0.656,0.172c-0.413,0.154-0.806,0.405-1.13,0.669c-0.412,0.334-0.863,0.576-1.224,0.979
+               c-0.255,0.281-0.563,0.697-0.67,1.066c-0.095,0.328-0.238,1.004,0.066,1.229c0.312,0.228,0.974,0.095,1.289-0.022
+               c0.345-0.129,0.639-0.371,1.004-0.49c0.463-0.148,0.736-0.223,1.134-0.539c0.305-0.245,0.638-0.447,0.969-0.675
+               c0.38-0.266,0.787-0.484,1.161-0.734c0.4-0.268,0.781-0.428,0.854-0.928c0.096-0.655-0.329-1.029-0.949-1.094"/>
+       <path fill="none" stroke="#007BB2" stroke-width="0.8763" d="M377.877,212.084c-0.416,0-1.032-0.108-1.415,0.023
+               c-0.201,0.067-0.322,0.258-0.518,0.345c-0.209,0.091-0.446,0.092-0.656,0.172c-0.413,0.154-0.806,0.405-1.13,0.669
+               c-0.412,0.334-0.863,0.576-1.224,0.979c-0.255,0.281-0.563,0.697-0.67,1.066c-0.095,0.328-0.238,1.004,0.066,1.229
+               c0.312,0.228,0.974,0.095,1.289-0.022c0.345-0.129,0.639-0.371,1.004-0.49c0.463-0.148,0.736-0.223,1.134-0.539
+               c0.305-0.245,0.638-0.447,0.969-0.675c0.38-0.266,0.787-0.484,1.161-0.734c0.4-0.268,0.781-0.428,0.854-0.928
+               c0.096-0.655-0.329-1.029-0.949-1.094"/>
+       <path fill="#81B9D9" d="M399.518,134.928c0.003,1.162-0.383,1.622-1.553,1.727c-0.548,0.048-0.794,0.125-1.225,0.446
+               c-0.41,0.306-0.456,0.433-0.833,0.056c-0.267-0.263-0.347-0.614-0.577-0.863c-0.242-0.262-0.647-0.364-0.836-0.66
+               c-0.693-1.09,0.903-1.366,1.587-1.497c0.476-0.091,0.413-0.111,0.832,0.171c0.347,0.233,0.4,0.359,0.879,0.388
+               c0.751,0.046,1.719-0.477,1.669,0.691"/>
+       <path fill="none" stroke="#007BB2" stroke-width="0.8763" d="M399.518,134.928c0.003,1.162-0.383,1.622-1.553,1.727
+               c-0.548,0.048-0.794,0.125-1.225,0.446c-0.41,0.306-0.456,0.433-0.833,0.056c-0.267-0.263-0.347-0.614-0.577-0.863
+               c-0.242-0.262-0.647-0.364-0.836-0.66c-0.693-1.09,0.903-1.366,1.587-1.497c0.476-0.091,0.413-0.111,0.832,0.171
+               c0.347,0.233,0.4,0.359,0.879,0.388c0.751,0.046,1.719-0.477,1.669,0.691"/>
+       <path fill="#81B9D9" d="M451.263,48.073c-0.653-0.046-1.136,0.312-1.727,0.461c-0.52,0.13-1.4-0.176-1.761,0.34
+               c-0.843,1.215,1.445,1.566,2.11,1.728c1.307,0.32,2.407-0.38,3.68-0.456c1.536-0.092,2.559,0.338,2.398-1.592
+               c-1.11-0.734-3.529-0.253-4.845-0.48"/>
+       <path fill="none" stroke="#007BB2" stroke-width="0.8763" d="M451.263,48.073c-0.653-0.046-1.136,0.312-1.727,0.461
+               c-0.52,0.13-1.4-0.176-1.761,0.34c-0.843,1.215,1.445,1.566,2.11,1.728c1.307,0.32,2.407-0.38,3.68-0.456
+               c1.536-0.092,2.559,0.338,2.398-1.592c-1.11-0.734-3.529-0.253-4.845-0.48"/>
+       <path fill="#81B9D9" d="M497.122,58.517c-1.19,0.309-0.851-0.856-0.849-1.543c-0.805-0.395-1.68-0.839-2.467-1.177
+               c0.105-1.165-1.116-3.158-2.513-3.109c-0.942,0.032-0.608,1.071-1.223,1.59c-0.707,0.596-1.587,0.258-2.419,0.391
+               c-1.935,0.305-1.305,2.053-0.127,2.935c0.314,0.236,1.482,0.667,1.614,0.988c0.407,0.982-1.235,0.739-1.793,1.1
+               c-1.64,1.06,0.811,1.556,1.638,1.864c1.18,0.438,2.142,1.222,3.583,0.731c0.76-0.261,0.962-1.005,1.64-1.375
+               c0.577-0.315,1.515-0.209,2.185-0.209c1.554,0,3.23-0.077,2.795-2.167c-0.85-0.5-2.472,0.363-3.001-0.226"/>
+       <path fill="none" stroke="#007BB2" stroke-width="0.8763" d="M497.122,58.517c-1.19,0.309-0.851-0.856-0.849-1.543
+               c-0.805-0.395-1.68-0.839-2.467-1.177c0.105-1.165-1.116-3.158-2.513-3.109c-0.942,0.032-0.608,1.071-1.223,1.59
+               c-0.707,0.596-1.587,0.258-2.419,0.391c-1.935,0.305-1.305,2.053-0.127,2.935c0.314,0.236,1.482,0.667,1.614,0.988
+               c0.407,0.982-1.235,0.739-1.793,1.1c-1.64,1.06,0.811,1.556,1.638,1.864c1.18,0.438,2.142,1.222,3.583,0.731
+               c0.76-0.261,0.962-1.005,1.64-1.375c0.577-0.315,1.515-0.209,2.185-0.209c1.554,0,3.23-0.077,2.795-2.167
+               c-0.85-0.5-2.472,0.363-3.001-0.226"/>
+       <path fill="#81B9D9" d="M469.958,46.863c-0.427-0.06-0.948-0.515-1.379-0.239c-0.561,0.358-0.246,1.006,0.05,1.36
+               c0.161,0.192,0.97,0.663,1.223,0.651c0.807-0.04,0.671-0.632,0.611-1.337c-0.383-0.062-0.467-0.414-0.561-0.461"/>
+       <path fill="none" stroke="#007BB2" stroke-width="0.8763" d="M469.958,46.863c-0.427-0.06-0.948-0.515-1.379-0.239
+               c-0.561,0.358-0.246,1.006,0.05,1.36c0.161,0.192,0.97,0.663,1.223,0.651c0.807-0.04,0.671-0.632,0.611-1.337
+               c-0.383-0.062-0.467-0.414-0.561-0.461"/>
+       <path fill="#81B9D9" d="M575.322,64.517c0.086-0.333,0.225-0.553-0.123-0.724c-0.24-0.117-0.612-0.049-0.879-0.085
+               c-0.515-0.072-1.03-0.352-1.155-0.887c-0.141-0.613-0.02-1.38,0.041-2.001c0.065-0.673,0.172-1.321,0.961-1.387
+               c0.631-0.052,1.193-0.081,1.551,0.414c0.329,0.457,0.544,0.663,1.068,0.895c0.519,0.232,1.083,0.484,1.551,0.837
+               c0.651,0.493,0.168,0.903-0.076,1.475c-0.257,0.588,0.14,1.381-0.234,1.925c-0.188,0.276-0.509,0.314-0.75,0.529
+               c-0.233,0.207-0.466,0.465-0.656,0.735c-0.183,0.259-0.227,0.518-0.299,0.814c-0.06,0.252-0.033,0.739-0.24,0.919
+               c-0.517,0.446-1.006-0.277-1.107-0.686c-0.116-0.474-0.054-1.142-0.01-1.625c0.064-0.62,0.333-1.001,0.511-1.571"/>
+       <path fill="none" stroke="#007BB2" stroke-width="0.8763" d="M575.322,64.517c0.086-0.333,0.225-0.553-0.123-0.724
+               c-0.24-0.117-0.612-0.049-0.879-0.085c-0.515-0.072-1.03-0.352-1.155-0.887c-0.141-0.613-0.02-1.38,0.041-2.001
+               c0.065-0.673,0.172-1.321,0.961-1.387c0.631-0.052,1.193-0.081,1.551,0.414c0.329,0.457,0.544,0.663,1.068,0.895
+               c0.519,0.232,1.083,0.484,1.551,0.837c0.651,0.493,0.168,0.903-0.076,1.475c-0.257,0.588,0.14,1.381-0.234,1.925
+               c-0.188,0.276-0.509,0.314-0.75,0.529c-0.233,0.207-0.466,0.465-0.656,0.735c-0.183,0.259-0.227,0.518-0.299,0.814
+               c-0.06,0.252-0.033,0.739-0.24,0.919c-0.517,0.446-1.006-0.277-1.107-0.686c-0.116-0.474-0.054-1.142-0.01-1.625
+               c0.064-0.62,0.333-1.001,0.511-1.571"/>
+       <path fill="#81B9D9" d="M551.133,73.337c-0.079,0.282,0.026,0.626-0.18,0.856c-0.251,0.28-0.515,0.127-0.817,0.143
+               c-0.799,0.04-0.366,0.841,0.034,1.118c0.772,0.536,1.165,1.736,2.236,1.733c0.353,0,0.585,0.038,0.808-0.27
+               c0.182-0.251,0.207-0.488,0.425-0.721c0.512-0.556,0.264-0.895-0.231-1.358c-0.372-0.347-0.788-0.733-1.071-1.126
+               c-0.221-0.312-0.987-1.074-1.281-0.26c-0.041,0.117-0.042,0.227,0,0.346"/>
+       <path fill="none" stroke="#007BB2" stroke-width="0.8763" d="M551.133,73.337c-0.079,0.282,0.026,0.626-0.18,0.856
+               c-0.251,0.28-0.515,0.127-0.817,0.143c-0.799,0.04-0.366,0.841,0.034,1.118c0.772,0.536,1.165,1.736,2.236,1.733
+               c0.353,0,0.585,0.038,0.808-0.27c0.182-0.251,0.207-0.488,0.425-0.721c0.512-0.556,0.264-0.895-0.231-1.358
+               c-0.372-0.347-0.788-0.733-1.071-1.126c-0.221-0.312-0.987-1.074-1.281-0.26c-0.041,0.117-0.042,0.227,0,0.346"/>
+       <path fill="#81B9D9" d="M566.457,76.216c0.141,0.113,0.277,0.163,0.546,0.151c0.569-0.027,1.251-0.685,1.3-1.272
+               c0.017-0.193,0.065-0.615-0.438-0.645c-0.957-0.055-1.406,0.811-1.493,1.001C566.152,75.94,566.392,76.164,566.457,76.216"/>
+       <path fill="none" stroke="#007BB2" stroke-width="0.8763" d="M566.457,76.216c0.141,0.113,0.277,0.163,0.546,0.151
+               c0.569-0.027,1.251-0.685,1.3-1.272c0.017-0.193,0.065-0.615-0.438-0.645c-0.957-0.055-1.406,0.811-1.493,1.001
+               C566.152,75.94,566.392,76.164,566.457,76.216z"/>
+       <path fill="#81B9D9" d="M517.835,70.441c-0.528-0.101-0.765-0.668-1.264-0.728c-0.502-0.059-0.971,0.482-1.388,0.681
+               c-0.562,0.266-1.126,0.927-0.706,1.609c0.114,0.188,0.436,0.364,0.649,0.421c0.379,0.102,0.548-0.111,0.787-0.347
+               c0.2-0.196,0.358-0.385,0.62-0.487c0.343-0.132,0.728-0.013,1.072-0.143c0.781-0.295,0.112-0.823-0.193-1.197"/>
+       <path fill="none" stroke="#007BB2" stroke-width="0.8763" d="M517.835,70.441c-0.528-0.101-0.765-0.668-1.264-0.728
+               c-0.502-0.059-0.971,0.482-1.388,0.681c-0.562,0.266-1.126,0.927-0.706,1.609c0.114,0.188,0.436,0.364,0.649,0.421
+               c0.379,0.102,0.548-0.111,0.787-0.347c0.2-0.196,0.358-0.385,0.62-0.487c0.343-0.132,0.728-0.013,1.072-0.143
+               c0.781-0.295,0.112-0.823-0.193-1.197"/>
+       <path fill="#81B9D9" d="M525.914,68.028c-0.656,0-1.184-0.013-1.733-0.183c-0.508-0.156-1.083-0.177-1.571-0.382
+               c-0.543-0.23-0.925-0.652-0.831-1.273c0.121-0.805,0.705-0.957,1.42-0.957c0.602-0.001,1.158,0.31,1.684,0.621
+               c0.584,0.344,1.109,0.529,1.838,0.489c0.706-0.038,1.408-0.102,2.105-0.19c0.57-0.074,1.575-0.389,1.904,0.238
+               c0.298,0.563,0.077,1.328-0.601,1.407c-0.609,0.07-1.245-0.032-1.81-0.106c-0.617-0.081-1.194,0.002-1.789,0.067
+               c-0.381,0.043-0.477,0.192-0.805,0.308c-0.248,0.089-0.686,0.065-0.957,0.037c-0.173-0.018-0.282,0-0.42-0.115"/>
+       <path fill="none" stroke="#007BB2" stroke-width="0.8763" d="M525.914,68.028c-0.656,0-1.184-0.013-1.733-0.183
+               c-0.508-0.156-1.083-0.177-1.571-0.382c-0.543-0.23-0.925-0.652-0.831-1.273c0.121-0.805,0.705-0.957,1.42-0.957
+               c0.602-0.001,1.158,0.31,1.684,0.621c0.584,0.344,1.109,0.529,1.838,0.489c0.706-0.038,1.408-0.102,2.105-0.19
+               c0.57-0.074,1.575-0.389,1.904,0.238c0.298,0.563,0.077,1.328-0.601,1.407c-0.609,0.07-1.245-0.032-1.81-0.106
+               c-0.617-0.081-1.194,0.002-1.789,0.067c-0.381,0.043-0.477,0.192-0.805,0.308c-0.248,0.089-0.686,0.065-0.957,0.037
+               c-0.173-0.018-0.282,0-0.42-0.115"/>
+       <path fill="#81B9D9" d="M441.537,96.228c-0.52,0.051-1.178-0.033-1.648,0.097c-0.577,0.156-0.958,0.675-1.074,1.228
+               c-0.127,0.59-0.267,1.168-0.454,1.745c-0.091,0.285-0.16,0.575-0.355,0.837c-0.192,0.257-0.457,0.382-0.691,0.59
+               c-0.425,0.378-0.891,0.724-1.181,1.188c-0.22,0.348-0.194,0.468-0.256,0.871c-0.033,0.215-0.161,0.579-0.348,0.726
+               c-0.27,0.21-0.544,0.027-0.69,0.425c-0.089,0.245-0.023,0.579,0.036,0.803c0.132,0.511,0.318,1.016,0.616,1.474
+               c0.326,0.496,0.836,0.935,1.343,1.247c0.545,0.334,1.081,0.395,1.702,0.489c0.551,0.083,1.255,0.118,1.709-0.245
+               c0.466-0.374,0.531-1.214,1.15-1.397c0.595-0.177,1.286,0.242,1.849,0.072c0.31-0.093,0.405-0.453,0.556-0.699
+               c0.174-0.279,0.301-0.434,0.596-0.602c0.569-0.321,1.259-0.335,1.821-0.644c0.702-0.385,0.962-0.931,1.171-1.648
+               c0.172-0.588,0.441-1.134,0.53-1.744c0.089-0.6,0.175-1.178,0.591-1.641c0.5-0.552,1.175-0.939,1.738-1.438
+               c0.431-0.383,0.546-1.049,0.416-1.621c-0.124-0.555-0.72-0.931-1.143-1.255c-0.468-0.363-0.747-0.803-1.177-1.161
+               c-1.139-0.943-2.336-0.295-3.322,0.49c-0.584,0.465-1.018,1.086-1.735,1.353c-0.306,0.112-0.665,0.187-0.982,0.25
+               c-0.346,0.067-0.661,0.182-0.945,0.245"/>
+       <path fill="none" stroke="#007BB2" stroke-width="0.8763" d="M441.537,96.228c-0.52,0.051-1.178-0.033-1.648,0.097
+               c-0.577,0.156-0.958,0.675-1.074,1.228c-0.127,0.59-0.267,1.168-0.454,1.745c-0.091,0.285-0.16,0.575-0.355,0.837
+               c-0.192,0.257-0.457,0.382-0.691,0.59c-0.425,0.378-0.891,0.724-1.181,1.188c-0.22,0.348-0.194,0.468-0.256,0.871
+               c-0.033,0.215-0.161,0.579-0.348,0.726c-0.27,0.21-0.544,0.027-0.69,0.425c-0.089,0.245-0.023,0.579,0.036,0.803
+               c0.132,0.511,0.318,1.016,0.616,1.474c0.326,0.496,0.836,0.935,1.343,1.247c0.545,0.334,1.081,0.395,1.702,0.489
+               c0.551,0.083,1.255,0.118,1.709-0.245c0.466-0.374,0.531-1.214,1.15-1.397c0.595-0.177,1.286,0.242,1.849,0.072
+               c0.31-0.093,0.405-0.453,0.556-0.699c0.174-0.279,0.301-0.434,0.596-0.602c0.569-0.321,1.259-0.335,1.821-0.644
+               c0.702-0.385,0.962-0.931,1.171-1.648c0.172-0.588,0.441-1.134,0.53-1.744c0.089-0.6,0.175-1.178,0.591-1.641
+               c0.5-0.552,1.175-0.939,1.738-1.438c0.431-0.383,0.546-1.049,0.416-1.621c-0.124-0.555-0.72-0.931-1.143-1.255
+               c-0.468-0.363-0.747-0.803-1.177-1.161c-1.139-0.943-2.336-0.295-3.322,0.49c-0.584,0.465-1.018,1.086-1.735,1.353
+               c-0.306,0.112-0.665,0.187-0.982,0.25c-0.346,0.067-0.661,0.182-0.945,0.245"/>
+       <path fill="#81B9D9" d="M472.329,96.883c-0.111,1.02-0.023,2.664,0.344,3.568"/>
+       <path fill="#81B9D9" d="M475.552,100.834c-0.901-0.171-1.575-1.132-2.38-1.534c-1.595-0.799-1.379,1.309-1.379,2.38
+               c0,0.651-0.009,1.281-0.073,1.917c-0.074,0.698-0.409,1.055-0.546,1.69c-0.26,1.215,1.482,1.637,2.382,1.534
+               c0.878-0.099,1.285-0.627,1.994-1.054c0.791-0.478,1.52-0.822,1.75-1.861c0.472-2.133-1.241-2.201-2.362-3.377"/>
+       <path fill="none" stroke="#007BB2" stroke-width="0.8763" d="M475.552,100.834c-0.901-0.171-1.575-1.132-2.38-1.534
+               c-1.595-0.799-1.379,1.309-1.379,2.38c0,0.651-0.009,1.281-0.073,1.917c-0.074,0.698-0.409,1.055-0.546,1.69
+               c-0.26,1.215,1.482,1.637,2.382,1.534c0.878-0.099,1.285-0.627,1.994-1.054c0.791-0.478,1.52-0.822,1.75-1.861
+               c0.472-2.133-1.241-2.201-2.362-3.377"/>
+       <path fill="#81B9D9" d="M480.253,88.504c-1.174,0.32-1.326,0.389-2.628,0.435c-1.278,0.045-1.856,1.262-2.359,2.321
+               c-0.556,1.179-0.541,2.266-0.173,3.435c0.291,0.929,0.364,2.057,1.534,2.304c1.618,0.343,1.706-1.684,2.836-2.249
+               c1.068-0.532,2.588-0.113,3.688-0.055c0.616,0.033,1.304,0.059,1.919,0c0.853-0.082,0.963-0.521,1.625-1.053
+               c0.446-0.356,1.136-0.873,1.695-0.732c0.408,0.102,0.722,0.699,1.074,0.922c1.023,0.648,2.318-0.019,3.416,0.344
+               c0.558,0.185,0.775,0.517,1.477,0.52c0.549,0.003,1.048-0.163,1.44-0.558c0.614-0.619,1.534-2.183,1.629-3.049
+               c0.146-1.358-1.855-1.352-2.688-0.863c-0.54,0.315-0.683,0.612-1.302,0.709c-0.448,0.071-0.916-0.03-1.306-0.154
+               c-0.823-0.26-2.047-0.539-2.302-1.38c-0.149-0.497,0.114-0.765-0.366-1.094c-0.292-0.201-0.944-0.179-1.321-0.135
+               c-0.886,0.103-1.697,0.944-2.598,0.831c-0.997-1.425-4.515-0.844-6.062-0.312"/>
+       <path fill="none" stroke="#007BB2" stroke-width="0.8763" d="M480.253,88.504c-1.174,0.32-1.326,0.389-2.628,0.435
+               c-1.278,0.045-1.856,1.262-2.359,2.321c-0.556,1.179-0.541,2.266-0.173,3.435c0.291,0.929,0.364,2.057,1.534,2.304
+               c1.618,0.343,1.706-1.684,2.836-2.249c1.068-0.532,2.588-0.113,3.688-0.055c0.616,0.033,1.304,0.059,1.919,0
+               c0.853-0.082,0.963-0.521,1.625-1.053c0.446-0.356,1.136-0.873,1.695-0.732c0.408,0.102,0.722,0.699,1.074,0.922
+               c1.023,0.648,2.318-0.019,3.416,0.344c0.558,0.185,0.775,0.517,1.477,0.52c0.549,0.003,1.048-0.163,1.44-0.558
+               c0.614-0.619,1.534-2.183,1.629-3.049c0.146-1.358-1.855-1.352-2.688-0.863c-0.54,0.315-0.683,0.612-1.302,0.709
+               c-0.448,0.071-0.916-0.03-1.306-0.154c-0.823-0.26-2.047-0.539-2.302-1.38c-0.149-0.497,0.114-0.765-0.366-1.094
+               c-0.292-0.201-0.944-0.179-1.321-0.135c-0.886,0.103-1.697,0.944-2.598,0.831c-0.997-1.425-4.515-0.844-6.062-0.312"/>
+       <path fill="#81B9D9" d="M526.348,49.352c-0.356-0.198-0.566-0.044-0.938-0.044c-0.368-0.001-0.539-0.195-0.714,0.267
+               c-0.235,0.627,0.387,1.096,0.816,1.462c1.253,1.072,2.842-1.092,1.605-1.739c-0.192-0.101-0.589-0.26-0.688,0.048
+               c-0.094,0.026-0.178,0.007-0.259-0.038"/>
+       <path fill="none" stroke="#007BB2" stroke-width="0.8763" d="M526.348,49.352c-0.356-0.198-0.566-0.044-0.938-0.044
+               c-0.368-0.001-0.539-0.195-0.714,0.267c-0.235,0.627,0.387,1.096,0.816,1.462c1.253,1.072,2.842-1.092,1.605-1.739
+               c-0.192-0.101-0.589-0.26-0.688,0.048c-0.094,0.026-0.178,0.007-0.259-0.038"/>
+       <path fill="#81B9D9" d="M542.5,46.23c-0.054-0.439-0.331-1.399-0.985-1.252c-0.594,0.135-0.669,1.529-0.412,1.934
+               c0.336,0.523,1.096,0.347,1.474,0.891c0.357,0.511,0.159,1.415,0.187,2.044c0.006,0.14,0.064,0.322,0.057,0.484
+               c0.124-0.378-0.086-0.776-0.144-1.157c-0.068-0.438-0.091-0.87-0.091-1.338c0-0.45,0.053-0.935,0-1.383
+               c-0.044-0.404-0.142-0.599-0.268-0.937"/>
+       <path fill="none" stroke="#007BB2" stroke-width="0.8763" d="M542.5,46.23c-0.054-0.439-0.331-1.399-0.985-1.252
+               c-0.594,0.135-0.669,1.529-0.412,1.934c0.336,0.523,1.096,0.347,1.474,0.891c0.357,0.511,0.159,1.415,0.187,2.044
+               c0.006,0.14,0.064,0.322,0.057,0.484c0.124-0.378-0.086-0.776-0.144-1.157c-0.068-0.438-0.091-0.87-0.091-1.338
+               c0-0.45,0.053-0.935,0-1.383c-0.044-0.404-0.142-0.599-0.268-0.937"/>
+       <path fill="#81B9D9" d="M538.037,41.857c0.316,0.002,0.589,0.047,0.892,0.045c0.432-0.002,0.549-0.128,0.891-0.305
+               c0.265-0.134,0.641-0.195,0.939-0.141c0.353,0.062,0.389,0.098,0.535,0.446c0.267,0.64,0.041,1.142-0.76,0.982
+               c-0.54-0.11-0.767-0.594-0.979-1.027"/>
+       <path fill="none" stroke="#007BB2" stroke-width="0.8763" d="M538.037,41.857c0.316,0.002,0.589,0.047,0.892,0.045
+               c0.432-0.002,0.549-0.128,0.891-0.305c0.265-0.134,0.641-0.195,0.939-0.141c0.353,0.062,0.389,0.098,0.535,0.446
+               c0.267,0.64,0.041,1.142-0.76,0.982c-0.54-0.11-0.767-0.594-0.979-1.027"/>
+       <path fill="#81B9D9" d="M525.188,43.508c-0.72,0.061-1.204-0.546-1.832,0.088c-0.78,0.79,0.157,1.169,0.764,1.42
+               c1.352,0.559,2.602,0.918,4.137,0.723c0.854-0.107,1.648-0.223,2.518-0.223c0.988,0,1.724,0.366,2.656,0.636
+               c0.954,0.276,1.853,0.398,2.868,0.346c0.461-0.023,0.848-0.162,1.292-0.267c0.335-0.078,0.763-0.044,1.071-0.166
+               c0.788-0.313,0.356-1.348-0.081-1.718c-0.717-0.609-1.532-0.748-2.463-0.705c-0.764,0.036-1.434,0.39-2.229,0.313
+               c-0.705-0.066-1.452-0.302-2.139-0.405c-0.681-0.103-1.044,0.092-1.654,0.305c-0.575,0.2-1.207,0.15-1.83,0.143
+               c-0.683-0.006-1.225-0.262-1.875-0.356c-0.39-0.057-1.09,0.035-1.427-0.179"/>
+       <path fill="none" stroke="#007BB2" stroke-width="0.8763" d="M525.188,43.508c-0.72,0.061-1.204-0.546-1.832,0.088
+               c-0.78,0.79,0.157,1.169,0.764,1.42c1.352,0.559,2.602,0.918,4.137,0.723c0.854-0.107,1.648-0.223,2.518-0.223
+               c0.988,0,1.724,0.366,2.656,0.636c0.954,0.276,1.853,0.398,2.868,0.346c0.461-0.023,0.848-0.162,1.292-0.267
+               c0.335-0.078,0.763-0.044,1.071-0.166c0.788-0.313,0.356-1.348-0.081-1.718c-0.717-0.609-1.532-0.748-2.463-0.705
+               c-0.764,0.036-1.434,0.39-2.229,0.313c-0.705-0.066-1.452-0.302-2.139-0.405c-0.681-0.103-1.044,0.092-1.654,0.305
+               c-0.575,0.2-1.207,0.15-1.83,0.143c-0.683-0.006-1.225-0.262-1.875-0.356c-0.39-0.057-1.09,0.035-1.427-0.179"/>
+       <path fill="#81B9D9" d="M288.158,329.07c-2.187,0.108-5.356,5.424-5.151,7.376c0.476-0.107,1.18,0.185,1.655,0.076
+               c-0.061,0.174,0.022,0.692,0.001,0.915c-0.221,0.118-0.442-0.035-0.668,0.072c-0.069,1.131-0.391,1.808-0.493,2.892
+               c2.177,0.622,2.415-2.013,2.989-3.422c0.776-1.906,1.118-2.515,3.108-3.503c0.252-1.01-0.384-1.976-0.914-2.626
+               c0.883-0.237,1.247-0.68,1.414-1.482C289.509,329.082,288.844,328.957,288.158,329.07"/>
+       <path fill="none" stroke="#007BB2" stroke-width="0.8763" d="M288.158,329.07c-2.187,0.108-5.356,5.424-5.151,7.376
+               c0.476-0.107,1.18,0.185,1.655,0.076c-0.061,0.174,0.022,0.692,0.001,0.915c-0.221,0.118-0.442-0.035-0.668,0.072
+               c-0.069,1.131-0.391,1.808-0.493,2.892c2.177,0.622,2.415-2.013,2.989-3.422c0.776-1.906,1.118-2.515,3.108-3.503
+               c0.252-1.01-0.384-1.976-0.914-2.626c0.883-0.237,1.247-0.68,1.414-1.482C289.509,329.082,288.844,328.957,288.158,329.07"/>
+       <g>
+               <g>
+                       <g>
+                               <path fill="#FFFFFF" d="M478.658,258.296l-8.661-10.322l2.079-1.744l7.145,8.515l3.977-3.338l1.516,1.808L478.658,258.296z"/>
+                               <path fill="#FFFFFF" d="M490.922,248.004l-1.295-0.74l-0.054,0.045c0.039,0.745-0.049,1.359-0.266,1.841
+                                       c-0.216,0.482-0.617,0.97-1.203,1.461c-0.72,0.604-1.469,0.864-2.245,0.777c-0.778-0.087-1.501-0.53-2.173-1.33
+                                       c-0.702-0.837-0.942-1.688-0.72-2.553c0.223-0.864,0.878-1.79,1.966-2.774l1.265-1.134l-0.291-0.346
+                                       c-0.67-0.799-1.396-0.873-2.174-0.22c-0.599,0.503-1.143,1.285-1.632,2.344l-1.898-0.886c0.463-1.199,1.221-2.24,2.271-3.122
+                                       c1.006-0.844,1.972-1.26,2.895-1.25c0.924,0.012,1.78,0.488,2.57,1.429l4.414,5.26L490.922,248.004z M487.25,244.852
+                                       l-0.767,0.693c-0.578,0.518-0.927,1.003-1.044,1.454c-0.116,0.451,0.003,0.887,0.358,1.312c0.51,0.607,1.095,0.633,1.758,0.078
+                                       c0.473-0.398,0.733-0.86,0.774-1.385c0.044-0.526-0.135-1.027-0.534-1.502L487.25,244.852z"/>
+                               <path fill="#FFFFFF" d="M492.821,239.096l-0.115-1.948l0.084-4.161l2.307-1.937l-0.105,5.923l6.909,1.818l-2.361,1.98
+                                       l-4.843-1.385l-0.257,1.479l2.062,2.457l-2.045,1.716l-9.218-10.986l2.045-1.716l4.112,4.901l1.397,1.882L492.821,239.096z"/>
+                               <path fill="#FFFFFF" d="M506.228,235.403c-1.208,1.013-2.446,1.453-3.714,1.323c-1.268-0.131-2.441-0.839-3.519-2.124
+                                       c-1.111-1.323-1.653-2.609-1.632-3.86c0.021-1.25,0.587-2.339,1.696-3.27c1.06-0.89,2.152-1.264,3.276-1.125
+                                       c1.124,0.141,2.155,0.771,3.095,1.891l0.876,1.045l-4.836,4.058c0.536,0.594,1.109,0.927,1.719,0.999
+                                       c0.61,0.075,1.206-0.132,1.787-0.62c0.452-0.379,0.837-0.787,1.156-1.223c0.32-0.437,0.607-0.947,0.864-1.531l1.398,1.666
+                                       c-0.2,0.489-0.465,0.949-0.795,1.383C507.271,234.449,506.813,234.911,506.228,235.403z M500.358,228.994
+                                       c-0.434,0.365-0.652,0.794-0.655,1.289c-0.003,0.496,0.201,1.026,0.611,1.588l2.871-2.409c-0.456-0.525-0.932-0.826-1.43-0.901
+                                       C501.257,228.486,500.792,228.63,500.358,228.994z"/>
+                               <path fill="#FFFFFF" d="M517.942,220.446c0.782,0.932,1.08,1.935,0.893,3.006c-0.186,1.071-0.848,2.083-1.983,3.037
+                                       c-1.047,0.878-2.146,1.447-3.299,1.708l-1.707-2.034c0.923-0.244,1.667-0.495,2.233-0.752c0.565-0.258,1.036-0.546,1.417-0.865
+                                       c0.456-0.382,0.73-0.768,0.819-1.156c0.09-0.388-0.017-0.764-0.321-1.126c-0.17-0.202-0.375-0.338-0.615-0.405
+                                       c-0.24-0.068-0.524-0.087-0.855-0.058c-0.33,0.027-0.949,0.151-1.857,0.367c-0.848,0.207-1.537,0.299-2.065,0.277
+                                       c-0.53-0.022-1.035-0.139-1.518-0.351c-0.482-0.212-0.928-0.561-1.334-1.047c-0.766-0.912-1.075-1.876-0.926-2.892
+                                       c0.15-1.016,0.743-1.959,1.781-2.829c0.509-0.428,1.049-0.772,1.618-1.034c0.57-0.261,1.204-0.487,1.903-0.681l0.757,2.265
+                                       c-0.713,0.212-1.278,0.417-1.695,0.615c-0.417,0.198-0.791,0.436-1.122,0.713c-0.394,0.331-0.615,0.68-0.663,1.049
+                                       c-0.048,0.371,0.057,0.709,0.319,1.021c0.161,0.193,0.344,0.325,0.55,0.398c0.206,0.072,0.457,0.097,0.756,0.077
+                                       c0.298-0.023,0.939-0.15,1.925-0.382c1.304-0.309,2.321-0.373,3.048-0.195C516.731,219.348,517.378,219.774,517.942,220.446z"/>
+                               <path fill="#FFFFFF" d="M527.153,217.603l-1.122-0.778l-0.108,0.089c0.089,0.551,0.016,1.095-0.218,1.633
+                                       c-0.235,0.538-0.609,1.023-1.123,1.454c-0.881,0.739-1.754,1.048-2.618,0.927c-0.864-0.122-1.686-0.648-2.468-1.58l-4.32-5.147
+                                       l2.045-1.717l3.869,4.611c0.477,0.569,0.932,0.916,1.363,1.039c0.432,0.124,0.858,0.01,1.278-0.343
+                                       c0.572-0.48,0.817-1.028,0.734-1.646c-0.083-0.616-0.515-1.39-1.297-2.322l-3.115-3.713l2.045-1.717l6.624,7.893
+                                       L527.153,217.603z"/>
+                               <path fill="#FFFFFF" d="M535.119,211.16c-0.881,0.738-1.854,0.982-2.919,0.729l-0.108,0.09c0.625,0.599,0.98,0.95,1.066,1.054
+                                       l2.685,3.199l-2.045,1.716l-9.539-11.367l1.664-1.395l1.148,0.781l0.093-0.079c-0.177-1.184,0.204-2.168,1.143-2.956
+                                       c0.885-0.743,1.881-0.964,2.986-0.665c1.104,0.301,2.194,1.09,3.269,2.37c0.707,0.843,1.203,1.673,1.49,2.492
+                                       c0.286,0.818,0.349,1.572,0.188,2.261C536.079,210.078,535.705,210.668,535.119,211.16z M529.094,205.206
+                                       c-0.505,0.424-0.736,0.897-0.695,1.419c0.043,0.523,0.375,1.163,0.997,1.924l0.196,0.233c0.711,0.848,1.34,1.354,1.887,1.521
+                                       c0.547,0.166,1.081,0.031,1.6-0.405c0.916-0.768,0.707-1.948-0.628-3.539c-0.652-0.777-1.255-1.264-1.806-1.463
+                                       C530.094,204.697,529.577,204.8,529.094,205.206z"/>
+                               <path fill="#FFFFFF" d="M543.033,204.52c-1.207,1.013-2.445,1.453-3.713,1.323c-1.268-0.131-2.441-0.84-3.519-2.125
+                                       c-1.111-1.323-1.654-2.608-1.633-3.86c0.022-1.249,0.587-2.338,1.697-3.269c1.06-0.89,2.152-1.264,3.276-1.124
+                                       c1.123,0.141,2.154,0.771,3.094,1.891l0.877,1.045l-4.836,4.058c0.536,0.594,1.109,0.927,1.718,0.999
+                                       c0.611,0.075,1.207-0.133,1.788-0.62c0.451-0.379,0.837-0.787,1.156-1.223s0.607-0.947,0.864-1.531l1.398,1.666
+                                       c-0.199,0.489-0.465,0.949-0.794,1.383C544.076,203.565,543.619,204.028,543.033,204.52z M537.164,198.11
+                                       c-0.434,0.364-0.653,0.794-0.655,1.289c-0.004,0.496,0.2,1.025,0.611,1.587l2.87-2.408c-0.455-0.526-0.931-0.827-1.429-0.901
+                                       C538.063,197.602,537.597,197.747,537.164,198.11z"/>
+                               <path fill="#FFFFFF" d="M545.073,188.862c0.277-0.232,0.526-0.404,0.745-0.516l1.54,2.149c-0.205,0.091-0.426,0.237-0.663,0.436
+                                       c-0.653,0.548-1.014,1.151-1.082,1.809c-0.068,0.659,0.164,1.307,0.698,1.942l3.371,4.017l-2.046,1.716l-6.623-7.893l1.549-1.3
+                                       l1.416,1.074l0.101-0.084c-0.14-0.638-0.124-1.258,0.045-1.86C544.291,189.749,544.608,189.253,545.073,188.862z"/>
+                               <path fill="#FFFFFF" d="M545.258,185.483c-0.588-0.701-0.511-1.364,0.231-1.987c0.742-0.623,1.408-0.583,1.996,0.118
+                                       c0.28,0.334,0.407,0.672,0.376,1.014s-0.23,0.668-0.602,0.979C546.518,186.23,545.851,186.188,545.258,185.483z
+                                        M555.727,193.627l-2.046,1.716l-6.623-7.893l2.045-1.716L555.727,193.627z"/>
+                               <path fill="#FFFFFF" d="M561.255,182.239c1.078,1.285,1.599,2.559,1.564,3.825c-0.036,1.265-0.628,2.38-1.777,3.344
+                                       c-0.72,0.604-1.494,0.971-2.323,1.1c-0.828,0.13-1.65,0.009-2.467-0.366c-0.816-0.374-1.572-0.974-2.267-1.803
+                                       c-1.082-1.289-1.604-2.561-1.564-3.813c0.039-1.252,0.636-2.363,1.795-3.336c0.72-0.603,1.493-0.972,2.32-1.104
+                                       c0.827-0.132,1.646-0.014,2.459,0.356C559.805,180.811,560.559,181.411,561.255,182.239z M556.07,186.59
+                                       c0.656,0.781,1.273,1.269,1.852,1.465c0.58,0.196,1.145,0.063,1.695-0.399c0.545-0.458,0.77-0.986,0.676-1.584
+                                       c-0.095-0.599-0.471-1.29-1.131-2.076c-0.656-0.781-1.268-1.267-1.837-1.454c-0.57-0.188-1.129-0.051-1.68,0.409
+                                       c-0.545,0.458-0.776,0.983-0.692,1.573C555.038,185.114,555.41,185.803,556.07,186.59z"/>
+                               <path fill="#FFFFFF" d="M563.65,173.274c0.277-0.233,0.526-0.405,0.745-0.517l1.54,2.15c-0.205,0.091-0.426,0.237-0.663,0.436
+                                       c-0.653,0.548-1.014,1.15-1.082,1.809c-0.068,0.659,0.165,1.306,0.698,1.942l3.371,4.017l-2.045,1.716l-6.624-7.892l1.549-1.3
+                                       l1.416,1.074l0.101-0.084c-0.14-0.638-0.124-1.258,0.046-1.86C562.868,174.16,563.185,173.664,563.65,173.274z"/>
+                       </g>
+               </g>
+       </g>
+       <g>
+               <path fill="#CCE7D3" d="M300.068,42.939c-0.711,0.076-1.017,0.417-1.584,0.795c-1.341,0.895-2.349,2.276-3.798,3.006
+                       c-0.965,0.486-1.894,0.596-2.796,1.087c-0.922,0.502-1.429,0.785-2.11,1.602c0.407-1.323,2.381-2.545,3.533-2.981
+                       c1.672-0.632,1.822-1.42,2.986-2.561c-1.372,0.33-2.629,0.777-3.683,1.719c-0.577,0.516-0.967,1.296-1.645,1.703
+                       c-0.284,0.17-1.481,0.315-1.565,0.403c0.136-0.142,0.636-0.982,0.766-0.999c-0.92,0.124-1.912,0.752-2.736,1.171
+                       c-0.983,0.5-2.068,0.734-3.149,1.117c-1.128,0.4-1.811,1.263-2.892,1.717c-0.799,0.334-4.691,1.915-4.78,1.013
+                       c-0.107-1.078,2.776-2.892,3.531-3.314c2.168-1.211,3.562-2.191,3.562-2.191l-2.298-0.157c-1.251,0.931-2.501,1.86-3.751,2.791
+                       c-0.436,0.324-0.866,0.663-1.312,0.975c-1.038,0.725-2.514,0.863-3.398,1.748c0.152,0.047,2.118,0.72,2.019,0.755
+                       c-0.904,0.318-2.293,0.419-3.087,0.941c-0.897,0.591-1.137,1.588-2.021,2.155c-2.244,1.442-5.093,1.399-7.461,2.574
+                       c-0.859,0.426-1.268,0.737-1.761,1.56c-0.279,0.465-0.136,1.04-0.674,1.36c-0.955,0.569-1.629,3.019-4.984,4.023
+                       c-3.359,1.005-1.651-1.757-5.733,0.589c-4.082,2.347-10.164,3.182-17.462,7.476c-3.014,1.773-6.336,2.955-9.634,4.08
+                       c-1.435,0.49-2.837,1.013-4.225,1.575c-0.522,0.21-1.206,0.264-1.621,0.694c-0.094,0.098-0.599,1.119-0.496,1.082
+                       c-0.866,0.306-1.713,0.43-2.384,1.009c-0.495,0.427-0.795,1.111-1.296,1.552c-0.633,0.557-1.689,0.879-2.154,1.606
+                       c-0.65,1.016,0.511,1.483-0.405,2.641c0.196-0.247,2.855-0.814,3.375-1.098c0.612-0.335,1.299-0.7,1.802-1.193
+                       c0.317-0.311,0.657-1.135,1.035-1.275c1.122-0.416,1.447,0.542,1.079,1.443c-0.335,0.818-1.16,1.142-1.94,1.364
+                       c-1.427,0.406-3.678-0.06-4.555,1.464c-0.355,0.615,0.276,0.972,0.223,1.532c-0.059,0.618-0.697,1.579-1.149,2.171
+                       c-0.515,0.675-1.601,1.21-1.541,2.16c0.129,2.034,2.92,0.344,3.755-0.152c2.556,0.08,0.464,0.142,0.593,1.512
+                       c0.128,1.368-0.053,1.704-0.053,1.704s2.168,1.602,5.214,2.38c3.046,0.777,3.461-1.599,6.819-2.603
+                       c3.358-1.005,3.874-1.16,8.523-2.55c4.649-1.391,7.104-3.532,11.417-5.104c4.314-1.572,2.377-2.4,2.377-2.4
+                       s-1.731,0.8-4.572,1.649c-2.841,0.85-2.738,0.256-2.738,0.256s-2.374-0.414-3.666-0.028s-2.117-0.492-2.349-1.267
+                       c-0.232-0.775,3.153-2.631,6.873-4.307c3.719-1.675,3.591-3.045,5.916-3.74c2.324-0.695,3.022-1.185,4.675-2.243
+                       c1.653-1.057,1.001-0.725,3.325-1.42c2.324-0.695,4.655-0.123,6.463-0.664c1.808-0.54,6.897-2.344,11.029-3.58
+                       c4.133-1.237,4.548-3.611,6.02-4.334c1.679-0.823,3.798-1.626,5.013-3.113c0.428-0.522,1.146-1.853,0.84-2.566
+                       c-0.248-0.578-2.15-0.819-2.149-0.807c-0.107-1.061,1.524-0.732,1.584-1.167c0.252-1.809-2.911,0.051-3.463,0.597
+                       c-0.806,0.797-1.251,2.111-2.207,2.729c-0.898,0.578-2.295,0.566-1.377-0.743c1.038-1.478,2.922-2.718,4.488-3.56
+                       c1.823-0.979,3.745-1.022,5.543-2.286c2.791-1.96,6.28-7.226,9.148-8.927c2.867-1.702,6.432-3.894,6.432-3.894
+                       C301.276,43.251,300.28,42.917,300.068,42.939 M262.578,71.542c-0.545,0.153-0.968,0.601-1.46,0.865
+                       c-1.281,0.688-2.788,1.542-4.298,1.529c-0.767-0.007-1.167-0.215-1.989-0.077c-0.722,0.12-1.502,0.414-2.196,0.656
+                       c-0.562,0.197-1.894,1.008-2.559,1.325c0.001,0.001,0.002,0.003,0.002,0.004c-0.001-0.001-0.001-0.003-0.002-0.004
+                       c-0.211,0.101-0.356,0.153-0.385,0.119c0.029,0.034,0.175-0.018,0.385-0.119c-0.67-1.203,1.521-1.555,2.118-2.212
+                       c1.821-2.006,4.798-3.386,7.319-4.403c1.571-0.634,3.072,0.384,4.543-0.215c0.42,0.729,0.724,1.659,0.863,2.516
+                       C264.126,71.697,263.409,71.308,262.578,71.542"/>
+               <path fill="none" stroke="#496B71" stroke-width="0.9816" d="M300.068,42.939c-0.711,0.076-1.017,0.417-1.584,0.795
+                       c-1.341,0.895-2.349,2.276-3.798,3.006c-0.965,0.486-1.894,0.596-2.796,1.087c-0.922,0.502-1.429,0.785-2.11,1.602
+                       c0.407-1.323,2.381-2.545,3.533-2.981c1.672-0.632,1.822-1.42,2.986-2.561c-1.372,0.33-2.629,0.777-3.683,1.719
+                       c-0.577,0.516-0.967,1.296-1.645,1.703c-0.284,0.17-1.481,0.315-1.565,0.403c0.136-0.142,0.636-0.982,0.766-0.999
+                       c-0.92,0.124-1.912,0.752-2.736,1.171c-0.983,0.5-2.068,0.734-3.149,1.117c-1.128,0.4-1.811,1.263-2.892,1.717
+                       c-0.799,0.334-4.691,1.915-4.78,1.013c-0.107-1.078,2.776-2.892,3.531-3.314c2.168-1.211,3.562-2.191,3.562-2.191l-2.298-0.157
+                       c-1.251,0.931-2.501,1.86-3.751,2.791c-0.436,0.324-0.866,0.663-1.312,0.975c-1.038,0.725-2.514,0.863-3.398,1.748
+                       c0.152,0.047,2.118,0.72,2.019,0.755c-0.904,0.318-2.293,0.419-3.087,0.941c-0.897,0.591-1.137,1.588-2.021,2.155
+                       c-2.244,1.442-5.093,1.399-7.461,2.574c-0.859,0.426-1.268,0.737-1.761,1.56c-0.279,0.465-0.136,1.04-0.674,1.36
+                       c-0.955,0.569-1.629,3.019-4.984,4.023c-3.359,1.005-1.651-1.757-5.733,0.589c-4.082,2.347-10.164,3.182-17.462,7.476
+                       c-3.014,1.773-6.336,2.955-9.634,4.08c-1.435,0.49-2.837,1.013-4.225,1.575c-0.522,0.21-1.206,0.264-1.621,0.694
+                       c-0.094,0.098-0.599,1.119-0.496,1.082c-0.866,0.306-1.713,0.43-2.384,1.009c-0.495,0.427-0.795,1.111-1.296,1.552
+                       c-0.633,0.557-1.689,0.879-2.154,1.606c-0.65,1.016,0.511,1.483-0.405,2.641c0.196-0.247,2.855-0.814,3.375-1.098
+                       c0.612-0.335,1.299-0.7,1.802-1.193c0.317-0.311,0.657-1.135,1.035-1.275c1.122-0.416,1.447,0.542,1.079,1.443
+                       c-0.335,0.818-1.16,1.142-1.94,1.364c-1.427,0.406-3.678-0.06-4.555,1.464c-0.355,0.615,0.276,0.972,0.223,1.532
+                       c-0.059,0.618-0.697,1.579-1.149,2.171c-0.515,0.675-1.601,1.21-1.541,2.16c0.129,2.034,2.92,0.344,3.755-0.152
+                       c2.556,0.08,0.464,0.142,0.593,1.512c0.128,1.368-0.053,1.704-0.053,1.704s2.168,1.602,5.214,2.38
+                       c3.046,0.777,3.461-1.599,6.819-2.603c3.358-1.005,3.874-1.16,8.523-2.55c4.649-1.391,7.104-3.532,11.417-5.104
+                       c4.314-1.572,2.377-2.4,2.377-2.4s-1.731,0.8-4.572,1.649c-2.841,0.85-2.738,0.256-2.738,0.256s-2.374-0.414-3.666-0.028
+                       s-2.117-0.492-2.349-1.267c-0.232-0.775,3.153-2.631,6.873-4.307c3.719-1.675,3.591-3.045,5.916-3.74
+                       c2.324-0.695,3.022-1.185,4.675-2.243c1.653-1.057,1.001-0.725,3.325-1.42c2.324-0.695,4.655-0.123,6.463-0.664
+                       c1.808-0.54,6.897-2.344,11.029-3.58c4.133-1.237,4.548-3.611,6.02-4.334c1.679-0.823,3.798-1.626,5.013-3.113
+                       c0.428-0.522,1.146-1.853,0.84-2.566c-0.248-0.578-2.15-0.819-2.149-0.807c-0.107-1.061,1.524-0.732,1.584-1.167
+                       c0.252-1.809-2.911,0.051-3.463,0.597c-0.806,0.797-1.251,2.111-2.207,2.729c-0.898,0.578-2.295,0.566-1.377-0.743
+                       c1.038-1.478,2.922-2.718,4.488-3.56c1.823-0.979,3.745-1.022,5.543-2.286c2.791-1.96,6.28-7.226,9.148-8.927
+                       c2.867-1.702,6.432-3.894,6.432-3.894C301.276,43.251,300.28,42.917,300.068,42.939z M262.578,71.542
+                       c-0.545,0.153-0.968,0.601-1.46,0.865c-1.281,0.688-2.788,1.542-4.298,1.529c-0.767-0.007-1.167-0.215-1.989-0.077
+                       c-0.722,0.12-1.502,0.414-2.196,0.656c-0.562,0.197-1.894,1.008-2.559,1.325c0.001,0.001,0.002,0.003,0.002,0.004
+                       c-0.001-0.001-0.001-0.003-0.002-0.004c-0.211,0.101-0.356,0.153-0.385,0.119c0.029,0.034,0.175-0.018,0.385-0.119
+                       c-0.67-1.203,1.521-1.555,2.118-2.212c1.821-2.006,4.798-3.386,7.319-4.403c1.571-0.634,3.072,0.384,4.543-0.215
+                       c0.42,0.729,0.724,1.659,0.863,2.516C264.126,71.697,263.409,71.308,262.578,71.542z"/>
+               <path fill="#F0ECE9" d="M208.312,89.787c-0.163,0.003-0.324-0.003-0.485-0.025c-0.3-0.041-0.643-0.281-0.904-0.303
+                       c-0.309-0.026-0.95-0.033-1.19,0.193c-0.225,0.211-0.508,0.963-0.453,1.174c0.224,0.877,1.484,0.495,2.032,0.274
+                       c0.15-0.06,0.418-0.06,0.537-0.172c0.121-0.113,0.051-0.426,0.141-0.514c0.306-0.302,0.857-0.51,1.285-0.69
+                       C208.957,89.739,208.633,89.78,208.312,89.787"/>
+               <path fill="none" stroke="#496B71" stroke-width="0.9816" d="M208.312,89.787c-0.163,0.003-0.324-0.003-0.485-0.025
+                       c-0.3-0.041-0.643-0.281-0.904-0.303c-0.309-0.026-0.95-0.033-1.19,0.193c-0.225,0.211-0.508,0.963-0.453,1.174
+                       c0.224,0.877,1.484,0.495,2.032,0.274c0.15-0.06,0.418-0.06,0.537-0.172c0.121-0.113,0.051-0.426,0.141-0.514
+                       c0.306-0.302,0.857-0.51,1.285-0.69C208.957,89.739,208.633,89.78,208.312,89.787z"/>
+       </g>
+       <g>
+               <path fill="#496B71" d="M131.841,48.232c-0.129-0.123-0.3-0.184-0.503-0.184c-0.673,0-1.475,0.654-2.453,1.998
+                       c-0.782,1.074-1.676,2.62-2.654,4.551c0.033-0.204,0.079-0.496,0.079-0.496l0.087-1.944l-0.011-1.619
+                       c0-0.711,0.097-1.353,0.289-1.91l0.076-0.301l-0.076-0.319l-0.164,0.04c-0.157,0-0.315,0.12-0.696,0.755l-1.596,2.933
+                       c-0.863,1.645-1.779,2.884-2.721,3.684c-0.924,0.786-1.919,1.186-2.952,1.186c-0.77,0-1.398-0.181-1.867-0.534
+                       c-0.461-0.345-0.681-0.777-0.681-1.319c0-0.683,0.267-1.25,0.826-1.731c0.556-0.483,1.246-0.728,2.051-0.728
+                       c0.538,0,0.968,0.123,1.276,0.365c0.298,0.234,0.446,0.538,0.446,0.931c0,0.446-0.196,0.815-0.596,1.129
+                       c-0.408,0.32-0.931,0.484-1.555,0.484l-0.579-0.08l-0.467-0.106l-0.083,0.06c-0.104,0.061-0.119,0.147-0.119,0.195
+                       c0,0.207,0.228,0.305,0.477,0.38l0.815,0.109c0.751,0,1.392-0.225,1.908-0.671c0.525-0.451,0.792-1.005,0.792-1.641
+                       c0-0.635-0.226-1.144-0.672-1.51c-0.432-0.36-1.03-0.54-1.781-0.54c-0.998,0-1.825,0.286-2.456,0.855
+                       c-0.638,0.574-0.961,1.321-0.961,2.222c0,0.811,0.303,1.471,0.898,1.961c0.585,0.484,1.363,0.729,2.313,0.729
+                       c0.962,0,1.911-0.315,2.82-0.938c0.898-0.615,1.727-1.506,2.462-2.658l1.148-2.068c0,0,0.164-0.307,0.354-0.672
+                       c-0.033,0.169-0.089,0.446-0.089,0.446l-0.114,1.452l0.102,1.348l0.101,1.298c0,0.515-0.07,0.957-0.213,1.317
+                       c-0.003,0.01-0.034,0.149-0.034,0.149l0.041,0.196c0.046,0.083,0.129,0.131,0.232,0.131c0.15,0,0.207,0,1.03-1.656l1.577-2.962
+                       c0.662-1.149,1.272-2.068,1.805-2.73c0.696-0.866,0.972-0.936,1.041-0.938c-0.003,0-0.004,0.003-0.004,0.004
+                       c0,0.029,0.074,0.15,0.074,0.15c0.109,0.247,0.303,0.387,0.547,0.387c0.172,0,0.33-0.075,0.454-0.215
+                       c0.123-0.136,0.181-0.298,0.181-0.483C132.044,48.525,131.974,48.356,131.841,48.232"/>
+               <g>
+                       <polygon fill="#FFFFFF" points="118.209,43.106 122.137,41.702 125.786,42.544 129.153,43.387 123.821,24.305                      "/>
+                       <polygon fill="#F17225" points="123.821,24.304 118.209,43.105 122.138,41.703 123.531,42.026                     "/>
+                       <polygon fill="none" stroke="#496B71" stroke-width="2.134" points="118.209,43.106 123.564,41.734 129.153,43.387 
+                               123.821,24.305                  "/>
+               </g>
+       </g>
+       <path fill="#81B9D9" d="M187.992,327.717c0,0-0.505-0.757,1.261-2.019c1.767-1.261,2.019-1.261,2.523-2.27
+               c0.504-1.009,2.774-1.262,2.774-1.262s2.523-3.027,3.532-1.766c1.009,1.262,0.504,1.766,0.252,3.027
+               c-0.252,1.261-0.505,2.269-2.271,2.522c-1.766,0.252-2.018,1.009-2.774,0.252l-0.757-0.757c0,0,0.252-0.504-0.756,0
+               C190.766,325.951,188.749,328.222,187.992,327.717"/>
+       <path fill="#81B9D9" d="M186.731,327.212c0,0-1.766-0.505-2.019,0.757c-0.252,1.262-0.504,2.522-0.504,2.522
+               s-2.018,0.757-1.514,1.514c0.504,0.757,2.522-0.757,2.774,0.757c0.253,1.513,1.009,1.514,1.514,0.252
+               c0.505-1.262,0.505-3.28,0.505-3.28L186.731,327.212z"/>
+       <g>
+               <path fill="#496B71" d="M395.751,218.611v-4.232h0.862v3.513h2.142v0.719H395.751z"/>
+               <path fill="#496B71" d="M399.343,218.611v-4.267h0.862v4.267H399.343z"/>
+               <path fill="#496B71" d="M401.986,218.611v-3.545h-1.266v-0.722h3.391v0.722h-1.263v3.545H401.986z"/>
+               <path fill="#496B71" d="M405.627,218.611v-3.545h-1.266v-0.722h3.391v0.722h-1.263v3.545H405.627z"/>
+               <path fill="#496B71" d="M408.331,218.611v-4.232h0.862v3.513h2.142v0.719H408.331z"/>
+               <path fill="#496B71" d="M411.949,218.611v-4.267h3.164v0.722h-2.302v0.946h2.142v0.719h-2.142v1.161h2.384v0.719H411.949z"/>
+       </g>
+       <g>
+               <path fill="#496B71" d="M390.778,224.306v-3.545h-1.266v-0.722h3.391v0.722h-1.263v3.545H390.778z"/>
+               <path fill="#496B71" d="M393.461,224.306v-4.267h1.813c0.456,0,0.787,0.039,0.994,0.114c0.207,0.078,0.372,0.213,0.496,0.409
+                       c0.124,0.196,0.186,0.42,0.186,0.672c0,0.32-0.094,0.585-0.282,0.793c-0.188,0.21-0.47,0.341-0.844,0.395
+                       c0.186,0.109,0.34,0.228,0.461,0.358s0.285,0.361,0.49,0.693l0.521,0.832h-1.03l-0.623-0.929c-0.221-0.332-0.373-0.54-0.454-0.628
+                       c-0.082-0.085-0.168-0.146-0.259-0.177c-0.091-0.033-0.236-0.049-0.434-0.049h-0.175v1.781H393.461z M394.323,221.843h0.637
+                       c0.413,0,0.671-0.017,0.774-0.052s0.183-0.095,0.242-0.18c0.058-0.085,0.087-0.192,0.087-0.32c0-0.144-0.038-0.259-0.115-0.347
+                       c-0.077-0.088-0.185-0.145-0.325-0.168c-0.07-0.01-0.279-0.015-0.629-0.015h-0.672V221.843z"/>
+               <path fill="#496B71" d="M401.611,224.306h-0.937l-0.373-0.969h-1.706l-0.352,0.969h-0.914l1.662-4.267h0.911L401.611,224.306z
+                        M400.025,222.618l-0.588-1.583l-0.576,1.583H400.025z"/>
+               <path fill="#496B71" d="M402.716,224.306l-1.525-4.267h0.934l1.08,3.158l1.045-3.158h0.914l-1.528,4.267H402.716z"/>
+               <path fill="#496B71" d="M405.603,224.306v-4.267h3.164v0.722h-2.302v0.946h2.142v0.719h-2.142v1.161h2.384v0.719H405.603z"/>
+               <path fill="#496B71" d="M409.582,224.306v-4.267h1.812c0.456,0,0.788,0.039,0.995,0.114c0.206,0.078,0.371,0.213,0.495,0.409
+                       c0.124,0.196,0.186,0.42,0.186,0.672c0,0.32-0.093,0.585-0.281,0.793c-0.188,0.21-0.47,0.341-0.844,0.395
+                       c0.186,0.109,0.34,0.228,0.462,0.358c0.12,0.13,0.283,0.361,0.489,0.693l0.522,0.832h-1.03l-0.623-0.929
+                       c-0.221-0.332-0.373-0.54-0.454-0.628c-0.082-0.085-0.169-0.146-0.26-0.177c-0.091-0.033-0.235-0.049-0.433-0.049h-0.175v1.781
+                       H409.582z M410.443,221.843h0.636c0.413,0,0.671-0.017,0.774-0.052s0.184-0.095,0.243-0.18c0.058-0.085,0.087-0.192,0.087-0.32
+                       c0-0.144-0.039-0.259-0.114-0.347c-0.078-0.088-0.186-0.145-0.326-0.168c-0.07-0.01-0.279-0.015-0.629-0.015h-0.671V221.843z"/>
+               <path fill="#496B71" d="M413.665,222.917l0.838-0.081c0.05,0.281,0.153,0.488,0.307,0.62c0.155,0.132,0.363,0.198,0.625,0.198
+                       c0.277,0,0.486-0.058,0.627-0.177c0.141-0.116,0.212-0.254,0.212-0.411c0-0.101-0.03-0.186-0.089-0.258
+                       c-0.059-0.07-0.162-0.132-0.309-0.184c-0.101-0.035-0.331-0.097-0.69-0.186c-0.462-0.114-0.786-0.255-0.972-0.422
+                       c-0.262-0.235-0.393-0.521-0.393-0.859c0-0.217,0.061-0.421,0.185-0.609c0.122-0.19,0.3-0.334,0.532-0.433
+                       c0.232-0.099,0.512-0.148,0.84-0.148c0.536,0,0.939,0.117,1.209,0.352c0.272,0.235,0.413,0.548,0.427,0.94l-0.862,0.038
+                       c-0.037-0.219-0.116-0.376-0.237-0.473c-0.122-0.095-0.304-0.144-0.546-0.144c-0.25,0-0.446,0.051-0.588,0.154
+                       c-0.091,0.066-0.137,0.154-0.137,0.265c0,0.101,0.043,0.187,0.128,0.259c0.109,0.091,0.373,0.186,0.792,0.285
+                       c0.419,0.099,0.73,0.202,0.929,0.308c0.202,0.106,0.359,0.25,0.472,0.433c0.114,0.184,0.171,0.41,0.171,0.68
+                       c0,0.245-0.068,0.473-0.204,0.687c-0.136,0.213-0.328,0.373-0.576,0.476c-0.248,0.103-0.558,0.155-0.929,0.155
+                       c-0.539,0-0.954-0.124-1.243-0.375C413.894,223.759,413.721,223.395,413.665,222.917z"/>
+               <path fill="#496B71" d="M417.859,224.306v-4.267h3.164v0.722h-2.302v0.946h2.142v0.719h-2.142v1.161h2.384v0.719H417.859z"/>
+       </g>
+       <g>
+               <path fill="#496B71" d="M399.806,225.734h1.706c0.338,0,0.589,0.015,0.755,0.043c0.166,0.028,0.314,0.086,0.445,0.176
+                       s0.24,0.209,0.327,0.356c0.087,0.149,0.131,0.315,0.131,0.5c0,0.2-0.054,0.383-0.162,0.55s-0.254,0.292-0.438,0.375
+                       c0.26,0.076,0.46,0.205,0.6,0.387s0.21,0.397,0.21,0.643c0,0.194-0.045,0.383-0.135,0.566c-0.09,0.184-0.213,0.331-0.37,0.44
+                       s-0.349,0.177-0.578,0.202c-0.144,0.016-0.49,0.025-1.039,0.029h-1.452V225.734z M400.668,226.444v0.987h0.565
+                       c0.336,0,0.544-0.005,0.626-0.015c0.147-0.017,0.263-0.068,0.348-0.153c0.084-0.083,0.127-0.195,0.127-0.333
+                       c0-0.132-0.036-0.239-0.109-0.321c-0.073-0.082-0.181-0.133-0.325-0.15c-0.085-0.01-0.331-0.015-0.736-0.015H400.668z
+                        M400.668,228.141v1.141h0.798c0.31,0,0.507-0.009,0.591-0.026c0.128-0.023,0.232-0.08,0.313-0.171
+                       c0.081-0.089,0.121-0.211,0.121-0.362c0-0.128-0.031-0.237-0.093-0.326c-0.062-0.089-0.152-0.154-0.269-0.195
+                       s-0.372-0.061-0.764-0.061H400.668z"/>
+               <path fill="#496B71" d="M407.956,230.001h-0.937l-0.373-0.969h-1.706l-0.352,0.969h-0.914l1.662-4.267h0.911L407.956,230.001z
+                        M406.37,228.313l-0.588-1.583l-0.576,1.583H406.37z"/>
+               <path fill="#496B71" d="M408.986,230.001v-1.796l-1.563-2.471h1.01l1.005,1.688l0.984-1.688h0.993l-1.569,2.477v1.79H408.986z"/>
+       </g>
+       <g>
+               <path fill="#496B71" d="M419.509,182.151h1.706c0.338,0,0.59,0.014,0.755,0.043c0.167,0.027,0.314,0.086,0.446,0.176
+                       c0.13,0.089,0.24,0.209,0.327,0.356c0.087,0.149,0.131,0.315,0.131,0.5c0,0.2-0.054,0.383-0.161,0.55
+                       c-0.109,0.167-0.254,0.292-0.439,0.375c0.26,0.076,0.46,0.205,0.6,0.387s0.21,0.397,0.21,0.643c0,0.194-0.045,0.383-0.136,0.566
+                       c-0.089,0.184-0.213,0.331-0.369,0.44c-0.157,0.11-0.349,0.177-0.578,0.202c-0.144,0.016-0.49,0.025-1.039,0.029h-1.452V182.151z
+                        M420.371,182.861v0.987h0.565c0.336,0,0.544-0.005,0.626-0.015c0.147-0.017,0.263-0.068,0.348-0.153
+                       c0.083-0.083,0.126-0.195,0.126-0.333c0-0.132-0.037-0.239-0.109-0.321c-0.074-0.082-0.181-0.133-0.325-0.15
+                       c-0.085-0.01-0.331-0.015-0.736-0.015H420.371z M420.371,184.558v1.141h0.798c0.31,0,0.507-0.009,0.591-0.026
+                       c0.128-0.023,0.232-0.08,0.313-0.171c0.08-0.089,0.12-0.211,0.12-0.362c0-0.128-0.031-0.237-0.093-0.326
+                       c-0.062-0.089-0.152-0.154-0.27-0.195s-0.372-0.061-0.764-0.061H420.371z"/>
+               <path fill="#496B71" d="M423.785,186.418v-4.267h0.862v4.267H423.785z"/>
+               <path fill="#496B71" d="M427.453,184.849v-0.719h1.857v1.7c-0.18,0.175-0.442,0.329-0.785,0.462
+                       c-0.342,0.132-0.689,0.199-1.04,0.199c-0.446,0-0.835-0.093-1.167-0.28s-0.581-0.455-0.748-0.803s-0.25-0.728-0.25-1.137
+                       c0-0.444,0.093-0.839,0.279-1.185s0.459-0.61,0.818-0.795c0.274-0.142,0.614-0.212,1.022-0.212c0.53,0,0.943,0.112,1.242,0.333
+                       c0.297,0.223,0.489,0.53,0.574,0.922l-0.856,0.16c-0.06-0.21-0.173-0.375-0.34-0.496c-0.165-0.121-0.373-0.182-0.621-0.182
+                       c-0.376,0-0.676,0.119-0.898,0.358c-0.222,0.239-0.333,0.593-0.333,1.062c0,0.506,0.113,0.887,0.338,1.139
+                       c0.225,0.254,0.52,0.38,0.885,0.38c0.18,0,0.361-0.035,0.542-0.107c0.181-0.07,0.338-0.156,0.468-0.257v-0.541H427.453z"/>
+       </g>
+       <g>
+               <path fill="#496B71" d="M409.756,192.113v-3.545h-1.266v-0.722h3.391v0.722h-1.263v3.545H409.756z"/>
+               <path fill="#496B71" d="M412.44,192.113v-4.267h1.813c0.456,0,0.787,0.039,0.994,0.114c0.206,0.078,0.372,0.213,0.496,0.409
+                       c0.124,0.196,0.186,0.42,0.186,0.672c0,0.32-0.094,0.585-0.282,0.793c-0.188,0.21-0.47,0.341-0.844,0.395
+                       c0.186,0.109,0.34,0.228,0.462,0.358c0.12,0.13,0.284,0.361,0.49,0.693l0.521,0.832h-1.03l-0.623-0.929
+                       c-0.221-0.332-0.373-0.54-0.454-0.628c-0.082-0.085-0.168-0.146-0.259-0.177c-0.091-0.033-0.236-0.049-0.434-0.049h-0.175v1.781
+                       H412.44z M413.302,189.651h0.637c0.413,0,0.671-0.017,0.774-0.052s0.183-0.095,0.242-0.18c0.058-0.085,0.087-0.192,0.087-0.32
+                       c0-0.144-0.039-0.259-0.114-0.347c-0.078-0.088-0.185-0.145-0.325-0.168c-0.07-0.01-0.279-0.015-0.629-0.015h-0.672V189.651z"/>
+               <path fill="#496B71" d="M420.59,192.113h-0.937l-0.373-0.969h-1.706l-0.352,0.969h-0.914l1.662-4.267h0.911L420.59,192.113z
+                        M419.004,190.425l-0.588-1.583l-0.576,1.583H419.004z"/>
+               <path fill="#496B71" d="M421.694,192.113l-1.525-4.267h0.934l1.08,3.158l1.045-3.158h0.914l-1.528,4.267H421.694z"/>
+               <path fill="#496B71" d="M424.582,192.113v-4.267h3.164v0.722h-2.302v0.946h2.142v0.719h-2.142v1.161h2.384v0.719H424.582z"/>
+               <path fill="#496B71" d="M428.561,192.113v-4.267h1.813c0.456,0,0.787,0.039,0.994,0.114c0.206,0.078,0.372,0.213,0.496,0.409
+                       c0.124,0.196,0.186,0.42,0.186,0.672c0,0.32-0.094,0.585-0.282,0.793c-0.188,0.21-0.47,0.341-0.844,0.395
+                       c0.186,0.109,0.34,0.228,0.462,0.358c0.12,0.13,0.284,0.361,0.49,0.693l0.521,0.832h-1.03l-0.623-0.929
+                       c-0.221-0.332-0.373-0.54-0.454-0.628c-0.082-0.085-0.168-0.146-0.259-0.177c-0.091-0.033-0.236-0.049-0.434-0.049h-0.175v1.781
+                       H428.561z M429.422,189.651h0.637c0.413,0,0.671-0.017,0.774-0.052s0.183-0.095,0.242-0.18c0.058-0.085,0.087-0.192,0.087-0.32
+                       c0-0.144-0.039-0.259-0.114-0.347c-0.078-0.088-0.185-0.145-0.325-0.168c-0.07-0.01-0.279-0.015-0.629-0.015h-0.672V189.651z"/>
+               <path fill="#496B71" d="M432.644,190.725l0.838-0.081c0.05,0.281,0.153,0.488,0.307,0.62c0.155,0.132,0.363,0.198,0.625,0.198
+                       c0.277,0,0.486-0.058,0.627-0.177c0.141-0.116,0.212-0.254,0.212-0.411c0-0.101-0.03-0.186-0.089-0.258
+                       c-0.059-0.07-0.162-0.132-0.31-0.184c-0.101-0.035-0.331-0.097-0.69-0.186c-0.462-0.114-0.786-0.255-0.972-0.422
+                       c-0.262-0.235-0.393-0.521-0.393-0.859c0-0.217,0.061-0.421,0.185-0.609c0.122-0.19,0.3-0.334,0.532-0.433
+                       c0.232-0.099,0.512-0.148,0.84-0.148c0.536,0,0.939,0.117,1.209,0.352c0.272,0.235,0.413,0.548,0.427,0.94l-0.862,0.038
+                       c-0.037-0.219-0.116-0.376-0.237-0.473c-0.122-0.095-0.304-0.144-0.546-0.144c-0.25,0-0.446,0.051-0.588,0.154
+                       c-0.091,0.066-0.137,0.154-0.137,0.265c0,0.101,0.043,0.187,0.128,0.259c0.109,0.091,0.373,0.186,0.792,0.285
+                       c0.419,0.099,0.73,0.202,0.929,0.308c0.202,0.106,0.359,0.25,0.472,0.433c0.115,0.184,0.171,0.41,0.171,0.68
+                       c0,0.245-0.068,0.473-0.204,0.687s-0.328,0.373-0.576,0.476c-0.248,0.103-0.558,0.155-0.929,0.155
+                       c-0.539,0-0.954-0.124-1.243-0.375C432.873,191.566,432.701,191.202,432.644,190.725z"/>
+               <path fill="#496B71" d="M436.839,192.113v-4.267h3.164v0.722H437.7v0.946h2.142v0.719H437.7v1.161h2.384v0.719H436.839z"/>
+       </g>
+       <g>
+               <path fill="#496B71" d="M418.784,193.542h1.706c0.338,0,0.59,0.015,0.755,0.043c0.167,0.028,0.314,0.086,0.446,0.176
+                       c0.13,0.089,0.24,0.209,0.327,0.356c0.087,0.149,0.131,0.315,0.131,0.5c0,0.2-0.054,0.383-0.161,0.55
+                       c-0.109,0.167-0.254,0.292-0.439,0.375c0.26,0.076,0.46,0.205,0.6,0.387s0.21,0.397,0.21,0.643c0,0.194-0.045,0.383-0.136,0.566
+                       c-0.089,0.184-0.213,0.331-0.369,0.44c-0.157,0.11-0.349,0.177-0.578,0.202c-0.144,0.016-0.49,0.025-1.039,0.029h-1.452V193.542z
+                        M419.646,194.252v0.987h0.565c0.336,0,0.544-0.005,0.626-0.015c0.147-0.017,0.263-0.068,0.348-0.153
+                       c0.083-0.083,0.126-0.195,0.126-0.333c0-0.132-0.037-0.239-0.109-0.321c-0.074-0.082-0.181-0.133-0.325-0.15
+                       c-0.085-0.01-0.331-0.015-0.736-0.015H419.646z M419.646,195.949v1.141h0.798c0.31,0,0.507-0.009,0.591-0.026
+                       c0.128-0.023,0.232-0.08,0.313-0.171c0.08-0.089,0.12-0.211,0.12-0.362c0-0.128-0.031-0.237-0.093-0.326
+                       c-0.062-0.089-0.152-0.154-0.27-0.195c-0.117-0.041-0.372-0.061-0.764-0.061H419.646z"/>
+               <path fill="#496B71" d="M426.934,197.809h-0.937l-0.373-0.969h-1.706l-0.352,0.969h-0.914l1.662-4.267h0.911L426.934,197.809z
+                        M425.348,196.12l-0.588-1.583l-0.576,1.583H425.348z"/>
+               <path fill="#496B71" d="M427.964,197.809v-1.796l-1.563-2.471h1.01l1.004,1.688l0.984-1.688h0.993l-1.569,2.477v1.79H427.964z"/>
+       </g>
+       <g>
+               <path fill="#496B71" d="M335.749,315.625v-4.267h0.862v1.895l1.741-1.895h1.158l-1.607,1.662l1.694,2.605h-1.115l-1.173-2.003
+                       l-0.699,0.713v1.289H335.749z"/>
+               <path fill="#496B71" d="M340.042,315.625v-4.267h3.164v0.722h-2.302v0.946h2.142v0.719h-2.142v1.161h2.384v0.719H340.042z"/>
+               <path fill="#496B71" d="M344.624,315.625l-1.019-4.267h0.882l0.643,2.931l0.78-2.931h1.025l0.748,2.981l0.655-2.981h0.867
+                       l-1.036,4.267h-0.914l-0.85-3.19l-0.847,3.19H344.624z"/>
+               <path fill="#496B71" d="M349.645,315.625v-4.267h3.164v0.722h-2.302v0.946h2.142v0.719h-2.142v1.161h2.384v0.719H349.645z"/>
+               <path fill="#496B71" d="M353.621,315.625v-4.267h3.164v0.722h-2.302v0.946h2.142v0.719h-2.142v1.161h2.384v0.719H353.621z"/>
+               <path fill="#496B71" d="M357.605,315.625v-4.267h0.838l1.746,2.85v-2.85h0.8v4.267h-0.865l-1.72-2.783v2.783H357.605z"/>
+               <path fill="#496B71" d="M365.75,315.625h-0.937l-0.373-0.969h-1.706l-0.352,0.969h-0.914l1.662-4.267h0.911L365.75,315.625z
+                        M364.163,313.937l-0.588-1.583l-0.576,1.583H364.163z"/>
+               <path fill="#496B71" d="M366.812,315.625l-1.019-4.267h0.882l0.643,2.931l0.78-2.931h1.025l0.748,2.981l0.655-2.981h0.867
+                       l-1.036,4.267h-0.914l-0.85-3.19l-0.847,3.19H366.812z"/>
+       </g>
+       <g>
+               <path fill="#496B71" d="M347.491,317.053h1.706c0.338,0,0.589,0.015,0.755,0.043c0.166,0.028,0.314,0.086,0.445,0.176
+                       c0.131,0.089,0.24,0.209,0.327,0.356c0.087,0.149,0.131,0.315,0.131,0.5c0,0.2-0.054,0.383-0.162,0.55s-0.254,0.292-0.438,0.375
+                       c0.26,0.076,0.46,0.205,0.6,0.387s0.21,0.397,0.21,0.643c0,0.194-0.045,0.383-0.135,0.566c-0.09,0.184-0.213,0.331-0.37,0.44
+                       c-0.156,0.11-0.349,0.177-0.578,0.202c-0.144,0.016-0.49,0.025-1.039,0.029h-1.452V317.053z M348.352,317.763v0.987h0.565
+                       c0.336,0,0.544-0.005,0.626-0.015c0.147-0.017,0.263-0.068,0.348-0.153c0.084-0.083,0.127-0.195,0.127-0.333
+                       c0-0.132-0.036-0.239-0.109-0.321c-0.073-0.082-0.181-0.133-0.325-0.15c-0.085-0.01-0.331-0.015-0.736-0.015H348.352z
+                        M348.352,319.46v1.141h0.798c0.31,0,0.507-0.009,0.591-0.026c0.128-0.023,0.232-0.08,0.313-0.171
+                       c0.081-0.089,0.121-0.211,0.121-0.362c0-0.128-0.031-0.237-0.093-0.326c-0.062-0.089-0.152-0.154-0.269-0.195
+                       c-0.117-0.041-0.372-0.061-0.764-0.061H348.352z"/>
+               <path fill="#496B71" d="M355.641,321.32h-0.937l-0.373-0.969h-1.706l-0.352,0.969h-0.914l1.662-4.267h0.911L355.641,321.32z
+                        M354.054,319.632l-0.588-1.583l-0.576,1.583H354.054z"/>
+               <path fill="#496B71" d="M357.218,321.32v-1.796l-1.563-2.471h1.01l1.004,1.688l0.984-1.688h0.993l-1.569,2.477v1.79H357.218z"/>
+       </g>
+       <g>
+               <path fill="#496B71" d="M510.029,112.792v-4.267h1.383c0.524,0,0.865,0.021,1.025,0.064c0.245,0.064,0.449,0.203,0.614,0.418
+                       c0.165,0.214,0.247,0.491,0.247,0.831c0,0.262-0.048,0.482-0.143,0.661c-0.095,0.179-0.216,0.319-0.362,0.421
+                       c-0.147,0.102-0.296,0.169-0.447,0.202c-0.206,0.041-0.504,0.061-0.894,0.061h-0.562v1.61H510.029z M510.891,109.247v1.211h0.472
+                       c0.34,0,0.567-0.022,0.681-0.067c0.115-0.045,0.204-0.114,0.269-0.21c0.065-0.095,0.098-0.206,0.098-0.332
+                       c0-0.155-0.046-0.283-0.137-0.384c-0.091-0.101-0.207-0.164-0.346-0.189c-0.103-0.019-0.31-0.029-0.62-0.029H510.891z"/>
+               <path fill="#496B71" d="M513.83,110.685c0-0.435,0.065-0.799,0.195-1.094c0.097-0.217,0.229-0.412,0.398-0.585
+                       c0.167-0.173,0.351-0.301,0.551-0.384c0.266-0.113,0.572-0.169,0.92-0.169c0.629,0,1.131,0.195,1.51,0.585
+                       c0.376,0.39,0.566,0.932,0.566,1.627c0,0.689-0.187,1.228-0.562,1.617c-0.375,0.389-0.875,0.584-1.502,0.584
+                       c-0.635,0-1.139-0.194-1.514-0.581S513.83,111.364,513.83,110.685z M514.718,110.656c0,0.483,0.112,0.849,0.335,1.099
+                       s0.506,0.374,0.85,0.374s0.625-0.124,0.845-0.371c0.22-0.247,0.331-0.619,0.331-1.113c0-0.489-0.108-0.854-0.321-1.094
+                       c-0.215-0.241-0.5-0.361-0.855-0.361s-0.641,0.122-0.859,0.365C514.827,109.797,514.718,110.165,514.718,110.656z"/>
+               <path fill="#496B71" d="M518.616,112.792v-4.267h0.862v4.267H518.616z"/>
+               <path fill="#496B71" d="M520.307,112.792v-4.267h0.838l1.746,2.85v-2.85h0.8v4.267h-0.864l-1.72-2.783v2.783H520.307z"/>
+               <path fill="#496B71" d="M525.563,112.792v-3.545h-1.266v-0.722h3.391v0.722h-1.263v3.545H525.563z"/>
+               <path fill="#496B71" d="M529.767,112.792v-4.267h0.862v4.267H529.767z"/>
+               <path fill="#496B71" d="M531.231,111.404l0.838-0.081c0.05,0.281,0.153,0.488,0.307,0.62c0.155,0.132,0.363,0.198,0.625,0.198
+                       c0.278,0,0.486-0.059,0.627-0.176s0.212-0.255,0.212-0.412c0-0.101-0.03-0.187-0.089-0.258c-0.059-0.071-0.162-0.132-0.31-0.185
+                       c-0.101-0.035-0.331-0.097-0.69-0.186c-0.462-0.114-0.786-0.255-0.972-0.422c-0.262-0.235-0.393-0.521-0.393-0.859
+                       c0-0.217,0.061-0.421,0.185-0.61c0.122-0.189,0.3-0.333,0.532-0.432c0.232-0.099,0.512-0.148,0.84-0.148
+                       c0.536,0,0.939,0.117,1.209,0.352c0.272,0.235,0.413,0.548,0.427,0.94l-0.862,0.038c-0.037-0.219-0.116-0.377-0.237-0.473
+                       c-0.122-0.096-0.304-0.144-0.546-0.144c-0.25,0-0.446,0.051-0.588,0.154c-0.091,0.066-0.137,0.154-0.137,0.265
+                       c0,0.101,0.043,0.187,0.128,0.259c0.109,0.091,0.373,0.186,0.792,0.285c0.419,0.099,0.73,0.201,0.929,0.307
+                       c0.202,0.106,0.359,0.25,0.472,0.434c0.115,0.183,0.171,0.41,0.171,0.68c0,0.244-0.068,0.473-0.204,0.687
+                       c-0.136,0.213-0.328,0.372-0.576,0.476c-0.248,0.104-0.558,0.156-0.929,0.156c-0.539,0-0.954-0.125-1.243-0.374
+                       S531.287,111.881,531.231,111.404z"/>
+               <path fill="#496B71" d="M539.273,112.792h-0.937l-0.373-0.969h-1.706l-0.352,0.969h-0.914l1.662-4.267h0.911L539.273,112.792z
+                        M537.687,111.104l-0.588-1.583l-0.576,1.583H537.687z"/>
+               <path fill="#496B71" d="M539.733,108.525h1.706c0.338,0,0.59,0.014,0.755,0.042c0.167,0.028,0.314,0.087,0.446,0.176
+                       c0.13,0.089,0.24,0.208,0.327,0.357c0.087,0.148,0.131,0.315,0.131,0.499c0,0.2-0.054,0.383-0.161,0.55
+                       c-0.109,0.167-0.254,0.292-0.439,0.375c0.26,0.076,0.46,0.205,0.6,0.387s0.21,0.397,0.21,0.643c0,0.194-0.045,0.383-0.136,0.566
+                       c-0.089,0.183-0.213,0.33-0.369,0.44c-0.157,0.11-0.349,0.177-0.578,0.202c-0.144,0.016-0.49,0.025-1.039,0.029h-1.452V108.525z
+                        M540.594,109.235v0.987h0.565c0.336,0,0.544-0.005,0.626-0.015c0.147-0.017,0.263-0.068,0.348-0.153
+                       c0.083-0.084,0.126-0.196,0.126-0.333c0-0.132-0.037-0.239-0.109-0.322c-0.074-0.082-0.181-0.132-0.325-0.15
+                       c-0.085-0.01-0.331-0.015-0.736-0.015H540.594z M540.594,110.932v1.141h0.798c0.31,0,0.507-0.009,0.591-0.026
+                       c0.128-0.023,0.232-0.08,0.313-0.17c0.08-0.09,0.12-0.211,0.12-0.362c0-0.128-0.031-0.237-0.093-0.326
+                       c-0.062-0.089-0.152-0.154-0.27-0.195c-0.117-0.041-0.372-0.061-0.764-0.061H540.594z"/>
+               <path fill="#496B71" d="M544.035,112.792v-4.267h3.164v0.722h-2.302v0.946h2.142v0.719h-2.142v1.161h2.384v0.719H544.035z"/>
+               <path fill="#496B71" d="M548.034,112.792v-4.232h0.862v3.513h2.142v0.719H548.034z"/>
+               <path fill="#496B71" d="M551.675,112.792v-4.232h0.862v3.513h2.142v0.719H551.675z"/>
+               <path fill="#496B71" d="M555.293,112.792v-4.267h3.164v0.722h-2.302v0.946h2.142v0.719h-2.142v1.161h2.384v0.719H555.293z"/>
+       </g>
+       <g>
+               <path fill="#496B71" d="M570.996,85.528v-4.399h0.862v1.954l1.741-1.954h1.158l-1.607,1.713l1.694,2.686h-1.115l-1.173-2.065
+                       l-0.699,0.735v1.329H570.996z"/>
+               <path fill="#496B71" d="M575.236,85.528v-4.399h3.164v0.744h-2.302v0.975h2.142v0.741h-2.142v1.197h2.384v0.741H575.236z"/>
+               <path fill="#496B71" d="M579.763,85.528l-1.019-4.399h0.882l0.643,3.022l0.78-3.022h1.025l0.748,3.073l0.655-3.073h0.867
+                       l-1.036,4.399h-0.914l-0.85-3.289l-0.847,3.289H579.763z"/>
+               <path fill="#496B71" d="M584.73,85.528v-4.399h3.164v0.744h-2.302v0.975h2.142v0.741h-2.142v1.197h2.384v0.741H584.73z"/>
+               <path fill="#496B71" d="M588.653,85.528v-4.399h3.164v0.744h-2.302v0.975h2.142v0.741h-2.142v1.197h2.384v0.741H588.653z"/>
+               <path fill="#496B71" d="M592.584,85.528v-4.399h0.838l1.746,2.938v-2.938h0.8v4.399h-0.864l-1.72-2.868v2.868H592.584z"/>
+               <path fill="#496B71" d="M600.668,85.528h-0.937l-0.373-0.999h-1.706l-0.352,0.999h-0.914l1.662-4.399h0.911L600.668,85.528z
+                        M599.082,83.788l-0.588-1.632l-0.576,1.632H599.082z"/>
+               <path fill="#496B71" d="M601.456,85.528l-1.019-4.399h0.882l0.643,3.022l0.78-3.022h1.025l0.748,3.073l0.655-3.073h0.867
+                       l-1.036,4.399h-0.914l-0.85-3.289l-0.847,3.289H601.456z"/>
+               <path fill="#496B71" d="M608.026,85.528v-4.399h1.383c0.524,0,0.865,0.022,1.025,0.066c0.245,0.066,0.449,0.21,0.614,0.431
+                       c0.165,0.221,0.247,0.506,0.247,0.857c0,0.27-0.048,0.497-0.143,0.681c-0.095,0.184-0.216,0.328-0.362,0.434
+                       c-0.147,0.105-0.296,0.174-0.447,0.208c-0.206,0.042-0.504,0.063-0.894,0.063h-0.562v1.66H608.026z M608.888,81.874v1.248h0.472
+                       c0.34,0,0.567-0.023,0.681-0.069c0.115-0.046,0.204-0.118,0.269-0.216c0.065-0.098,0.098-0.212,0.098-0.342
+                       c0-0.16-0.046-0.292-0.137-0.396c-0.091-0.104-0.207-0.169-0.346-0.195c-0.103-0.02-0.31-0.03-0.62-0.03H608.888z"/>
+               <path fill="#496B71" d="M611.775,83.356c0-0.448,0.065-0.824,0.195-1.128c0.097-0.224,0.229-0.425,0.398-0.603
+                       c0.167-0.178,0.351-0.31,0.551-0.396c0.266-0.116,0.572-0.174,0.92-0.174c0.629,0,1.131,0.201,1.51,0.603
+                       c0.376,0.402,0.566,0.961,0.566,1.677c0,0.71-0.187,1.266-0.562,1.667c-0.375,0.401-0.875,0.602-1.502,0.602
+                       c-0.635,0-1.139-0.2-1.514-0.599C611.962,84.606,611.775,84.056,611.775,83.356z M612.662,83.326c0,0.498,0.112,0.876,0.335,1.133
+                       c0.223,0.257,0.506,0.386,0.85,0.386c0.344,0,0.625-0.128,0.845-0.383s0.331-0.637,0.331-1.148c0-0.504-0.108-0.88-0.321-1.128
+                       c-0.215-0.248-0.5-0.372-0.855-0.372s-0.641,0.126-0.859,0.376C612.771,82.441,612.662,82.82,612.662,83.326z"/>
+               <path fill="#496B71" d="M616.505,85.528v-4.399h0.862v4.399H616.505z"/>
+               <path fill="#496B71" d="M618.143,85.528v-4.399h0.838l1.746,2.938v-2.938h0.8v4.399h-0.864l-1.72-2.868v2.868H618.143z"/>
+               <path fill="#496B71" d="M623.341,85.528v-3.655h-1.266v-0.744h3.391v0.744h-1.263v3.655H623.341z"/>
+       </g>
+       <g>
+               <g>
+                       <path fill="#496B71" d="M446.834,32.871h-0.937l-0.373-0.969h-1.706l-0.352,0.969h-0.914l1.662-4.267h0.911L446.834,32.871z
+                                M445.248,31.183l-0.588-1.583l-0.576,1.583H445.248z"/>
+                       <path fill="#496B71" d="M449.276,31.302v-0.719h1.857v1.7c-0.18,0.175-0.442,0.328-0.785,0.461s-0.689,0.199-1.04,0.199
+                               c-0.446,0-0.835-0.094-1.167-0.281c-0.332-0.187-0.581-0.455-0.748-0.803s-0.25-0.727-0.25-1.137
+                               c0-0.444,0.093-0.839,0.279-1.185c0.186-0.345,0.459-0.61,0.818-0.795c0.274-0.142,0.614-0.212,1.022-0.212
+                               c0.53,0,0.943,0.111,1.242,0.333c0.297,0.222,0.489,0.529,0.574,0.921l-0.856,0.16c-0.06-0.21-0.173-0.375-0.34-0.496
+                               c-0.165-0.121-0.373-0.182-0.621-0.182c-0.376,0-0.676,0.119-0.898,0.358c-0.222,0.239-0.333,0.593-0.333,1.062
+                               c0,0.506,0.113,0.886,0.338,1.14c0.225,0.253,0.52,0.38,0.885,0.38c0.18,0,0.361-0.035,0.542-0.106
+                               c0.181-0.071,0.338-0.157,0.468-0.258v-0.541H449.276z"/>
+                       <path fill="#496B71" d="M455.776,32.871h-0.937l-0.373-0.969h-1.706l-0.352,0.969h-0.914l1.662-4.267h0.911L455.776,32.871z
+                                M454.189,31.183l-0.588-1.583l-0.576,1.583H454.189z"/>
+                       <path fill="#496B71" d="M456.752,32.871v-3.545h-1.266v-0.722h3.391v0.722h-1.263v3.545H456.752z"/>
+                       <path fill="#496B71" d="M459.432,32.871v-4.267h3.164v0.722h-2.302v0.946h2.142v0.719h-2.142v1.161h2.384v0.719H459.432z"/>
+                       <path fill="#496B71" d="M440.948,40.025v-4.267h0.862v1.679h1.688v-1.679h0.862v4.267h-0.862v-1.866h-1.688v1.866H440.948z"/>
+                       <path fill="#496B71" d="M449.097,40.025h-0.937l-0.373-0.969h-1.706l-0.352,0.969h-0.914l1.662-4.267h0.911L449.097,40.025z
+                                M447.511,38.336l-0.588-1.583l-0.576,1.583H447.511z"/>
+                       <path fill="#496B71" d="M449.557,40.025v-4.267h1.813c0.456,0,0.787,0.038,0.995,0.115c0.206,0.077,0.372,0.213,0.496,0.409
+                               c0.124,0.196,0.186,0.42,0.186,0.672c0,0.32-0.094,0.585-0.282,0.793c-0.188,0.209-0.47,0.34-0.844,0.394
+                               c0.186,0.109,0.34,0.228,0.462,0.358c0.12,0.13,0.284,0.361,0.49,0.693l0.521,0.832h-1.03l-0.623-0.929
+                               c-0.221-0.332-0.373-0.541-0.454-0.627c-0.082-0.086-0.168-0.146-0.259-0.178c-0.091-0.032-0.236-0.048-0.434-0.048h-0.175v1.781
+                               H449.557z M450.419,37.562h0.637c0.413,0,0.671-0.017,0.774-0.052s0.183-0.095,0.242-0.18c0.058-0.085,0.087-0.192,0.087-0.32
+                               c0-0.144-0.039-0.26-0.115-0.348c-0.078-0.088-0.185-0.144-0.325-0.167c-0.07-0.01-0.279-0.015-0.629-0.015h-0.672V37.562z"/>
+                       <path fill="#496B71" d="M453.862,35.757h1.706c0.338,0,0.59,0.014,0.755,0.042c0.167,0.028,0.314,0.087,0.446,0.176
+                               c0.13,0.089,0.24,0.208,0.327,0.357c0.087,0.148,0.131,0.315,0.131,0.499c0,0.2-0.054,0.383-0.161,0.55
+                               c-0.109,0.167-0.254,0.292-0.439,0.375c0.26,0.076,0.46,0.205,0.6,0.387c0.14,0.182,0.21,0.397,0.21,0.643
+                               c0,0.194-0.045,0.383-0.136,0.566c-0.089,0.183-0.213,0.33-0.369,0.44c-0.157,0.11-0.349,0.177-0.578,0.202
+                               c-0.144,0.016-0.49,0.025-1.039,0.029h-1.452V35.757z M454.724,36.468v0.987h0.565c0.336,0,0.544-0.005,0.626-0.015
+                               c0.147-0.017,0.263-0.068,0.348-0.153c0.083-0.084,0.126-0.196,0.126-0.333c0-0.132-0.037-0.239-0.109-0.322
+                               c-0.074-0.082-0.181-0.132-0.325-0.15c-0.085-0.01-0.331-0.015-0.736-0.015H454.724z M454.724,38.165v1.141h0.798
+                               c0.31,0,0.507-0.009,0.591-0.026c0.128-0.023,0.232-0.08,0.313-0.17c0.08-0.09,0.12-0.211,0.12-0.362
+                               c0-0.128-0.031-0.237-0.093-0.326s-0.152-0.154-0.27-0.195c-0.117-0.041-0.372-0.061-0.764-0.061H454.724z"/>
+                       <path fill="#496B71" d="M457.99,37.917c0-0.435,0.065-0.799,0.195-1.094c0.097-0.217,0.229-0.412,0.398-0.585
+                               c0.167-0.173,0.351-0.301,0.551-0.384c0.266-0.113,0.572-0.169,0.92-0.169c0.629,0,1.131,0.195,1.51,0.585
+                               c0.376,0.39,0.566,0.932,0.566,1.627c0,0.689-0.187,1.228-0.562,1.617c-0.375,0.389-0.875,0.584-1.502,0.584
+                               c-0.635,0-1.139-0.194-1.514-0.581C458.177,39.13,457.99,38.596,457.99,37.917z M458.877,37.888c0,0.483,0.112,0.849,0.335,1.099
+                               c0.223,0.249,0.506,0.374,0.85,0.374c0.343,0,0.625-0.124,0.845-0.371s0.331-0.619,0.331-1.113c0-0.489-0.108-0.854-0.321-1.094
+                               c-0.215-0.241-0.5-0.361-0.855-0.361c-0.355,0-0.641,0.122-0.859,0.365C458.986,37.03,458.877,37.397,458.877,37.888z"/>
+                       <path fill="#496B71" d="M462.804,40.025v-4.267h1.813c0.456,0,0.787,0.038,0.994,0.115c0.206,0.077,0.372,0.213,0.496,0.409
+                               c0.124,0.196,0.186,0.42,0.186,0.672c0,0.32-0.094,0.585-0.282,0.793s-0.47,0.34-0.844,0.394c0.186,0.109,0.34,0.228,0.462,0.358
+                               c0.12,0.13,0.284,0.361,0.49,0.693l0.521,0.832h-1.03l-0.623-0.929c-0.221-0.332-0.373-0.541-0.454-0.627
+                               c-0.082-0.086-0.168-0.146-0.259-0.178c-0.091-0.032-0.236-0.048-0.434-0.048h-0.175v1.781H462.804z M463.666,37.562h0.637
+                               c0.413,0,0.671-0.017,0.774-0.052c0.103-0.035,0.183-0.095,0.242-0.18c0.058-0.085,0.087-0.192,0.087-0.32
+                               c0-0.144-0.039-0.26-0.114-0.348c-0.078-0.088-0.185-0.144-0.325-0.167c-0.07-0.01-0.279-0.015-0.629-0.015h-0.672V37.562z"/>
+               </g>
+       </g>
+       <g>
+               <path fill="#496B71" d="M306.67,83.438v-4.267h2.925v0.722h-2.064v1.01h1.781v0.722h-1.781v1.813H306.67z"/>
+               <path fill="#496B71" d="M310.279,83.438v-4.267h0.862v4.267H310.279z"/>
+               <path fill="#496B71" d="M313.05,83.438l-1.525-4.267h0.934l1.08,3.158l1.045-3.158h0.914l-1.528,4.267H313.05z"/>
+               <path fill="#496B71" d="M315.938,83.438v-4.267h3.164v0.722h-2.302v0.946h2.142v0.719h-2.142v1.161h2.384v0.719H315.938z"/>
+               <path fill="#496B71" d="M321.558,83.438v-4.267h1.289l0.774,2.911l0.766-2.911h1.292v4.267h-0.8v-3.359l-0.847,3.359h-0.83
+                       l-0.844-3.359v3.359H321.558z"/>
+               <path fill="#496B71" d="M326.51,83.438v-4.267h0.862v4.267H326.51z"/>
+               <path fill="#496B71" d="M328.215,83.438v-4.232h0.862v3.513h2.142v0.719H328.215z"/>
+               <path fill="#496B71" d="M331.833,83.438v-4.267h3.164v0.722h-2.302v0.946h2.142v0.719h-2.142v1.161h2.384v0.719H331.833z"/>
+               <path fill="#496B71" d="M337.465,83.438v-4.267h1.383c0.524,0,0.865,0.021,1.025,0.064c0.245,0.064,0.449,0.203,0.614,0.418
+                       c0.165,0.214,0.247,0.491,0.247,0.831c0,0.262-0.048,0.482-0.143,0.661c-0.095,0.179-0.216,0.319-0.362,0.421
+                       c-0.147,0.102-0.295,0.169-0.447,0.202c-0.206,0.041-0.504,0.061-0.894,0.061h-0.562v1.61H337.465z M338.327,79.892v1.211h0.472
+                       c0.34,0,0.567-0.022,0.681-0.067c0.114-0.045,0.204-0.114,0.269-0.21c0.065-0.095,0.098-0.206,0.098-0.332
+                       c0-0.155-0.046-0.283-0.137-0.384c-0.091-0.101-0.207-0.164-0.346-0.189c-0.103-0.019-0.31-0.029-0.62-0.029H338.327z"/>
+               <path fill="#496B71" d="M341.267,81.33c0-0.435,0.065-0.799,0.195-1.094c0.097-0.217,0.229-0.412,0.397-0.585
+                       c0.168-0.173,0.352-0.301,0.552-0.384c0.266-0.113,0.572-0.169,0.92-0.169c0.629,0,1.132,0.195,1.509,0.585
+                       c0.377,0.39,0.566,0.932,0.566,1.627c0,0.689-0.187,1.228-0.562,1.617c-0.375,0.389-0.875,0.584-1.502,0.584
+                       c-0.635,0-1.139-0.194-1.514-0.581S341.267,82.009,341.267,81.33z M342.155,81.301c0,0.483,0.112,0.849,0.335,1.099
+                       c0.223,0.249,0.506,0.374,0.85,0.374c0.343,0,0.625-0.124,0.846-0.371c0.22-0.247,0.33-0.619,0.33-1.113
+                       c0-0.489-0.107-0.854-0.322-1.094c-0.214-0.241-0.499-0.361-0.854-0.361s-0.641,0.122-0.859,0.365
+                       C342.263,80.443,342.155,80.81,342.155,81.301z"/>
+               <path fill="#496B71" d="M346.052,83.438v-4.267h0.862v4.267H346.052z"/>
+               <path fill="#496B71" d="M347.743,83.438v-4.267h0.838l1.746,2.85v-2.85h0.8v4.267h-0.864l-1.72-2.783v2.783H347.743z"/>
+               <path fill="#496B71" d="M353,83.438v-3.545h-1.266v-0.722h3.391v0.722h-1.263v3.545H353z"/>
+       </g>
+       <g>
+               <g>
+                       <path fill="#496B71" d="M215.331,74.282l-2.539-5.092l1.028-0.513l2.539,5.092L215.331,74.282z"/>
+                       <path fill="#496B71" d="M216.252,71.755l0.952-0.597c0.228,0.307,0.473,0.492,0.735,0.557s0.55,0.02,0.863-0.136
+                               c0.331-0.165,0.545-0.359,0.644-0.583c0.098-0.223,0.1-0.429,0.007-0.618c-0.06-0.12-0.146-0.205-0.26-0.255
+                               c-0.113-0.048-0.273-0.06-0.48-0.036c-0.141,0.018-0.452,0.081-0.934,0.188c-0.619,0.139-1.09,0.163-1.411,0.075
+                               c-0.452-0.125-0.779-0.388-0.979-0.791c-0.13-0.26-0.177-0.538-0.143-0.838c0.034-0.299,0.161-0.577,0.378-0.832
+                               c0.218-0.257,0.522-0.482,0.914-0.677c0.639-0.319,1.19-0.419,1.652-0.299s0.819,0.408,1.068,0.867l-1.006,0.558
+                               c-0.174-0.24-0.362-0.381-0.564-0.424c-0.202-0.042-0.447,0.009-0.736,0.153c-0.299,0.148-0.503,0.327-0.61,0.534
+                               c-0.07,0.133-0.072,0.265-0.006,0.397c0.06,0.121,0.162,0.198,0.307,0.233c0.184,0.044,0.556,0,1.115-0.13
+                               c0.559-0.131,0.991-0.193,1.292-0.187c0.303,0.006,0.576,0.085,0.821,0.237c0.245,0.151,0.447,0.388,0.607,0.71
+                               c0.146,0.291,0.201,0.605,0.166,0.94c-0.036,0.336-0.17,0.64-0.405,0.912c-0.235,0.272-0.573,0.518-1.015,0.738
+                               c-0.644,0.321-1.213,0.419-1.706,0.293C217.025,72.62,216.603,72.291,216.252,71.755z"/>
+                       <path fill="#496B71" d="M222.11,70.901l-2.518-5.05l1.028-0.513l2.09,4.192l2.557-1.274l0.428,0.858L222.11,70.901z"/>
+                       <path fill="#496B71" d="M226.428,68.749l-2.539-5.092l3.775-1.883l0.43,0.862l-2.747,1.37l0.563,1.129l2.556-1.275l0.428,0.858
+                               l-2.556,1.275l0.691,1.385l2.844-1.418l0.428,0.858L226.428,68.749z"/>
+                       <path fill="#496B71" d="M233.151,65.396l-2.539-5.092l2.164-1.079c0.544-0.271,0.963-0.422,1.255-0.454
+                               c0.293-0.032,0.571,0.033,0.836,0.193c0.264,0.16,0.472,0.39,0.622,0.692c0.19,0.381,0.235,0.752,0.135,1.114
+                               c-0.1,0.361-0.358,0.685-0.772,0.973c0.287,0.019,0.541,0.069,0.764,0.152c0.222,0.084,0.554,0.261,0.997,0.535l1.117,0.684
+                               l-1.229,0.613l-1.296-0.737c-0.461-0.264-0.766-0.423-0.915-0.478c-0.149-0.055-0.287-0.074-0.415-0.057
+                               c-0.128,0.016-0.31,0.082-0.546,0.2l-0.209,0.104l1.06,2.126L233.151,65.396z M232.715,61.945l0.761-0.379
+                               c0.493-0.246,0.79-0.421,0.892-0.524c0.103-0.103,0.163-0.223,0.181-0.359c0.019-0.136-0.011-0.281-0.086-0.434
+                               c-0.085-0.172-0.2-0.287-0.344-0.347c-0.144-0.059-0.306-0.062-0.488-0.006c-0.088,0.03-0.342,0.148-0.758,0.356l-0.802,0.4
+                               L232.715,61.945z"/>
+                       <path fill="#496B71" d="M236.822,60.426c-0.259-0.519-0.398-0.994-0.418-1.422c-0.014-0.317,0.028-0.629,0.126-0.935
+                               c0.098-0.305,0.241-0.568,0.43-0.786c0.25-0.293,0.582-0.542,0.997-0.75c0.75-0.374,1.467-0.44,2.149-0.2
+                               c0.682,0.241,1.23,0.776,1.643,1.604c0.41,0.823,0.507,1.577,0.292,2.264c-0.215,0.688-0.697,1.218-1.445,1.59
+                               c-0.757,0.377-1.474,0.447-2.151,0.208C237.767,61.76,237.226,61.235,236.822,60.426z M237.864,59.863
+                               c0.288,0.576,0.638,0.946,1.053,1.111c0.414,0.165,0.827,0.145,1.237-0.059c0.409-0.205,0.672-0.52,0.788-0.945
+                               c0.115-0.427,0.026-0.935-0.268-1.526c-0.291-0.583-0.636-0.954-1.035-1.115c-0.4-0.16-0.811-0.133-1.234,0.079
+                               c-0.424,0.211-0.693,0.526-0.807,0.946C237.483,58.775,237.572,59.277,237.864,59.863z"/>
+                       <path fill="#496B71" d="M245.154,59.41l-1.069-2.142l-3.336-2.02l1.205-0.601l2.203,1.418l0.169-2.601l1.185-0.59l-0.398,3.89
+                               l1.065,2.135L245.154,59.41z"/>
+                       <path fill="#496B71" d="M252.505,55.745l-1.118,0.557l-1.021-0.935l-2.036,1.015l0.157,1.366l-1.091,0.544l-0.556-6.08
+                               l1.087-0.542L252.505,55.745z M249.608,54.674l-1.644-1.539l0.254,2.232L249.608,54.674z"/>
+                       <path fill="#496B71" d="M253.079,55.459l-2.519-5.05l1.028-0.512l2.09,4.192l2.556-1.275l0.428,0.858L253.079,55.459z"/>
+                       <path fill="#496B71" d="M257.395,53.306l-2.539-5.092l3.775-1.883l0.43,0.862l-2.747,1.37l0.563,1.129l2.556-1.274l0.428,0.858
+                               l-2.556,1.274l0.691,1.385l2.844-1.418l0.428,0.858L257.395,53.306z"/>
+               </g>
+       </g>
+       <g>
+               <path fill="#496B71" d="M292.9,54.912v-4.267h1.813c0.456,0,0.787,0.038,0.994,0.115s0.372,0.213,0.496,0.409
+                       c0.124,0.196,0.186,0.42,0.186,0.672c0,0.32-0.094,0.585-0.282,0.793c-0.188,0.209-0.47,0.34-0.844,0.394
+                       c0.186,0.109,0.34,0.228,0.461,0.358c0.121,0.13,0.285,0.361,0.49,0.693l0.521,0.832h-1.03l-0.623-0.929
+                       c-0.221-0.332-0.373-0.541-0.454-0.627c-0.082-0.086-0.168-0.146-0.259-0.178c-0.091-0.032-0.236-0.048-0.434-0.048h-0.175v1.781
+                       H292.9z M293.761,52.449h0.637c0.413,0,0.671-0.017,0.774-0.052s0.183-0.095,0.242-0.18c0.058-0.085,0.087-0.192,0.087-0.32
+                       c0-0.144-0.038-0.26-0.115-0.348c-0.077-0.088-0.185-0.144-0.325-0.167c-0.07-0.01-0.279-0.015-0.629-0.015h-0.672V52.449z"/>
+               <path fill="#496B71" d="M297.027,52.804c0-0.435,0.065-0.799,0.195-1.094c0.097-0.217,0.229-0.412,0.397-0.585
+                       s0.352-0.301,0.552-0.384c0.266-0.113,0.572-0.169,0.92-0.169c0.629,0,1.132,0.195,1.509,0.585s0.566,0.932,0.566,1.627
+                       c0,0.689-0.187,1.228-0.562,1.617c-0.375,0.389-0.875,0.584-1.502,0.584c-0.635,0-1.139-0.194-1.514-0.581
+                       S297.027,53.484,297.027,52.804z M297.915,52.775c0,0.483,0.112,0.849,0.335,1.099c0.223,0.249,0.506,0.374,0.85,0.374
+                       c0.343,0,0.625-0.124,0.846-0.371s0.33-0.619,0.33-1.113c0-0.489-0.107-0.854-0.322-1.094c-0.214-0.241-0.499-0.361-0.854-0.361
+                       s-0.641,0.122-0.859,0.365C298.023,51.917,297.915,52.284,297.915,52.775z"/>
+               <path fill="#496B71" d="M304.569,53.343l0.835,0.265c-0.128,0.466-0.341,0.812-0.639,1.038c-0.298,0.226-0.676,0.339-1.134,0.339
+                       c-0.567,0-1.032-0.194-1.397-0.581s-0.547-0.916-0.547-1.588c0-0.71,0.183-1.262,0.55-1.655s0.849-0.589,1.447-0.589
+                       c0.522,0,0.946,0.154,1.272,0.463c0.194,0.182,0.34,0.444,0.437,0.786l-0.853,0.204c-0.05-0.221-0.156-0.396-0.316-0.524
+                       c-0.16-0.128-0.355-0.192-0.584-0.192c-0.316,0-0.573,0.114-0.77,0.341s-0.295,0.595-0.295,1.103c0,0.539,0.097,0.924,0.291,1.153
+                       c0.194,0.229,0.446,0.343,0.757,0.343c0.229,0,0.426-0.073,0.591-0.218C304.378,53.884,304.497,53.655,304.569,53.343z"/>
+               <path fill="#496B71" d="M306.155,54.912v-4.267h0.862v1.895l1.741-1.895h1.158l-1.607,1.662l1.694,2.605h-1.115l-1.173-2.003
+                       l-0.699,0.713v1.289H306.155z"/>
+               <path fill="#496B71" d="M312.107,54.912v-4.267h0.862v1.679h1.688v-1.679h0.862v4.267h-0.862v-1.866h-1.688v1.866H312.107z"/>
+               <path fill="#496B71" d="M320.257,54.912h-0.937l-0.373-0.969h-1.706l-0.352,0.969h-0.914l1.662-4.267h0.911L320.257,54.912z
+                        M318.671,53.224l-0.588-1.583l-0.576,1.583H318.671z"/>
+               <path fill="#496B71" d="M320.717,54.912v-4.267h1.813c0.456,0,0.787,0.038,0.994,0.115c0.207,0.077,0.372,0.213,0.496,0.409
+                       c0.124,0.196,0.186,0.42,0.186,0.672c0,0.32-0.094,0.585-0.282,0.793s-0.47,0.34-0.844,0.394c0.186,0.109,0.34,0.228,0.461,0.358
+                       c0.121,0.13,0.285,0.361,0.49,0.693l0.521,0.832h-1.03l-0.623-0.929c-0.221-0.332-0.373-0.541-0.454-0.627
+                       c-0.081-0.086-0.168-0.146-0.259-0.178c-0.091-0.032-0.236-0.048-0.434-0.048h-0.175v1.781H320.717z M321.579,52.449h0.637
+                       c0.413,0,0.671-0.017,0.774-0.052s0.183-0.095,0.242-0.18c0.058-0.085,0.087-0.192,0.087-0.32c0-0.144-0.038-0.26-0.115-0.348
+                       s-0.185-0.144-0.325-0.167c-0.07-0.01-0.279-0.015-0.629-0.015h-0.672V52.449z"/>
+               <path fill="#496B71" d="M325.022,50.645h1.706c0.338,0,0.589,0.014,0.755,0.042c0.166,0.028,0.314,0.087,0.445,0.176
+                       c0.131,0.089,0.24,0.208,0.327,0.357c0.087,0.148,0.131,0.315,0.131,0.499c0,0.2-0.054,0.383-0.162,0.55
+                       c-0.108,0.167-0.254,0.292-0.438,0.375c0.26,0.076,0.46,0.205,0.6,0.387s0.21,0.397,0.21,0.643c0,0.194-0.045,0.383-0.135,0.566
+                       c-0.09,0.183-0.213,0.33-0.37,0.44c-0.156,0.11-0.349,0.177-0.578,0.202c-0.144,0.016-0.49,0.025-1.039,0.029h-1.452V50.645z
+                        M325.884,51.355v0.987h0.565c0.336,0,0.544-0.005,0.626-0.015c0.147-0.017,0.263-0.068,0.348-0.153
+                       c0.084-0.084,0.127-0.196,0.127-0.333c0-0.132-0.036-0.239-0.109-0.322c-0.073-0.082-0.181-0.132-0.325-0.15
+                       c-0.085-0.01-0.331-0.015-0.736-0.015H325.884z M325.884,53.052v1.141h0.798c0.31,0,0.507-0.009,0.591-0.026
+                       c0.128-0.023,0.232-0.08,0.313-0.17c0.081-0.09,0.121-0.211,0.121-0.362c0-0.128-0.031-0.237-0.093-0.326
+                       c-0.062-0.089-0.152-0.154-0.269-0.195c-0.117-0.041-0.372-0.061-0.764-0.061H325.884z"/>
+               <path fill="#496B71" d="M329.15,52.804c0-0.435,0.065-0.799,0.195-1.094c0.097-0.217,0.229-0.412,0.397-0.585
+                       c0.168-0.173,0.352-0.301,0.552-0.384c0.266-0.113,0.572-0.169,0.92-0.169c0.629,0,1.132,0.195,1.509,0.585
+                       c0.377,0.39,0.566,0.932,0.566,1.627c0,0.689-0.187,1.228-0.562,1.617c-0.374,0.389-0.875,0.584-1.502,0.584
+                       c-0.635,0-1.139-0.194-1.514-0.581S329.15,53.484,329.15,52.804z M330.037,52.775c0,0.483,0.112,0.849,0.335,1.099
+                       c0.223,0.249,0.506,0.374,0.85,0.374c0.343,0,0.625-0.124,0.846-0.371s0.33-0.619,0.33-1.113c0-0.489-0.107-0.854-0.322-1.094
+                       c-0.214-0.241-0.499-0.361-0.854-0.361s-0.641,0.122-0.859,0.365C330.146,51.917,330.037,52.284,330.037,52.775z"/>
+               <path fill="#496B71" d="M333.964,54.912v-4.267h1.813c0.456,0,0.787,0.038,0.994,0.115s0.372,0.213,0.496,0.409
+                       c0.124,0.196,0.186,0.42,0.186,0.672c0,0.32-0.094,0.585-0.282,0.793c-0.188,0.209-0.47,0.34-0.844,0.394
+                       c0.186,0.109,0.34,0.228,0.461,0.358c0.121,0.13,0.285,0.361,0.49,0.693l0.521,0.832h-1.03l-0.623-0.929
+                       c-0.221-0.332-0.373-0.541-0.454-0.627c-0.081-0.086-0.168-0.146-0.259-0.178c-0.091-0.032-0.236-0.048-0.434-0.048h-0.175v1.781
+                       H333.964z M334.825,52.449h0.637c0.413,0,0.671-0.017,0.774-0.052s0.183-0.095,0.242-0.18c0.058-0.085,0.087-0.192,0.087-0.32
+                       c0-0.144-0.038-0.26-0.115-0.348c-0.077-0.088-0.185-0.144-0.325-0.167c-0.07-0.01-0.279-0.015-0.629-0.015h-0.672V52.449z"/>
+       </g>
+       <path fill="none" stroke="#007BB2" stroke-width="0.8763" d="M187.992,327.717c0,0-0.505-0.757,1.261-2.019
+               c1.767-1.261,2.019-1.261,2.523-2.27c0.504-1.009,2.774-1.262,2.774-1.262s2.523-3.027,3.532-1.766
+               c1.009,1.262,0.504,1.766,0.252,3.027c-0.252,1.261-0.505,2.269-2.271,2.522c-1.766,0.252-2.018,1.009-2.774,0.252l-0.757-0.757
+               c0,0,0.252-0.504-0.756,0C190.766,325.951,188.749,328.222,187.992,327.717z"/>
+       <path fill="none" stroke="#007BB2" stroke-width="0.8763" d="M186.731,327.212c0,0-1.766-0.505-2.019,0.757
+               c-0.252,1.262-0.504,2.522-0.504,2.522s-2.018,0.757-1.514,1.514c0.504,0.757,2.522-0.757,2.774,0.757
+               c0.253,1.513,1.009,1.514,1.514,0.252c0.505-1.262,0.505-3.28,0.505-3.28L186.731,327.212z"/>
+       <path fill="none" stroke="#496B71" stroke-width="1.7546" d="M342.431,289.381l1.826-1.143l2.398-1.825l1.599-2.17l0.913-1.941
+               l1.256-2.17l1.598-2.168l1.598-2.626l0.8-0.914l0.913-0.228l1.598-1.485l1.37-2.283l0.8-0.914l0.571-1.484l0.114-1.94l0.227-2.169
+               l1.257-2.969l1.712-4.453l0.685-2.169l0.913-1.942l-0.228-3.311v-3.311l0.228-2.511l1.37-2.284l2.17-1.712l2.168-1.599l1.941-0.799
+               l2.283-0.912l2.169-1.257l1.827-1.255l1.484-0.686l2.056-1.598l1.712-2.055l2.625-6.051l0.686-2.398l-0.343-2.855l0.457-3.311
+               l1.255-2.625l2.398-2.626l1.598-0.799l2.97-0.46h1.597l1.257,0.8l1.372,1.37l1.025,1.37l0.572,0.458l0.912-0.571l0.799-1.029
+               l1.6-1.026l1.483-1.143c0,0,0.685-0.798,0.914-1.141c0.229-0.343,0.57-2.282,0.57-2.282l0.228-1.486l-0.911-0.57l-0.571,0.227
+               l-0.458,0.914l-1.255,0.114l-0.685-0.801l-0.686-2.739l0.228-6.281l1.259-5.022l1.824-3.654l2.17-3.311l2.742-3.197l2.398-2.513
+               l1.826-1.484l1.597-0.456l0.916,0.684l0.913,0.456l2.057,0.342l1.37-0.457l2.283-1.371l1.484-0.569l1.029-0.115l1.026-0.572
+               l1.713-1.712l1.94-0.686l1.028-0.683l1.256-2.398l1.599-2.283l1.597-0.799l1.942-1.143l1.939-1.939l1.6-3.541l1.599-2.742
+               l1.029-2.055l1.598-1.37l1.827-0.685l2.056-0.456h1.827l0.798-1.257l1.715-2.511l1.37-1.712l1.254-1.485l1.259-1.027l1.026-2.055
+               l1.712-2.397l2.286-2.057l1.597-1.597c0,0,0.685-0.801,0.913-1.143c0.23-0.342,0.8-2.056,0.8-2.056l2.17-0.684l3.424-0.457
+               l2.515-0.685l3.769-1.599l3.081-1.598l2.398-2.513l1.94-1.599l1.487-1.027l1.367-1.483l1.829-0.913l1.825-0.57l2.055-1.942
+               c0,0,1.829-2.169,2.17-2.283c0.342-0.114,1.941-0.685,1.941-0.685l2.398-0.342l1.6,0.114l1.823-0.913l2.286-2.742l0.913-2.739
+               l-0.913-2.056l-1.6-1.827l-3.994-2.624l-2.286-2.171l-1.369-2.626l0.684-2.967l0.457-1.6l0.344-1.598c0,0,0.57-1.369,0.684-1.713
+               c0.114-0.342,0.684-1.483,0.684-1.483l2.169-0.914l3.427-0.57l3.995-0.913l3.316-0.229l2.852-1.027l2.056-0.342l1.484,0.571
+               l1.027,0.457l1.142-0.344l1.599-0.913l2.054-1.141h2.398l1.711,0.113l1.6,1.028l2.055,0.457l2.74-0.228h1.6l1.824,0.684l0.23,0.8
+               l1.143,0.342h1.254l1.598,0.342l1.598,1.029c0,0,0.572,0.799,0.914,0.913c0.343,0.114,1.827,0.685,1.827,0.685h1.827l1.598-1.141
+               c0,0,1.257-1.486,1.6-1.599c0.342-0.114,2.169-1.142,2.169-1.142l1.942-0.685l1.943-0.458l1.484,0.571l1.143,0.57l1.713,0.115
+               l1.483-0.571l1.255-1.713l1.257-2.169l1.256-1.37l1.598-0.684l1.371-0.228h1.713l0.684-0.229l1.256-0.227l2.169,0.798l2.168,0.686
+               l1.598,0.913h4.797l0.8-0.571l0.341-1.485l-0.228-1.94l-0.8-1.712l-1.824-1.599l-0.686-2.397l0.342-3.311l0.455-1.827l-0.571-3.653
+               l-0.226-3.311l-1.484-1.712l-8.45-5.596l-1.141-0.686l-1.37-0.114l-1.828-1.37l-0.684-0.913l-1.486-0.114l-1.482-0.571
+               l-2.968-1.941l-1.828-0.114l-1.484-1.028l-1.254-1.029l-1.485-0.57h-1.94l-2.513-0.343h-1.142l-1.142,0.228l-1.94-0.113
+               l-1.37-0.342h-2.856l-2.397-0.228l-2.511-0.229l-2.398-0.684l-2.397-0.228l-2.285,1.026l-1.369,0.686l6.051,0.685l0.799,0.684
+               l-0.113,0.8l-1.029,0.456l-1.37-0.913l-1.141-0.571l-0.686,0.228l-0.341,0.685l-1.143-0.457l-1.371-0.457l-5.25,0.685l-2.056-0.799
+               l-2.969,0.228l-1.369-0.57l0.57-0.457l-0.57-2.284l-3.539-0.341l-3.541,0.57l-2.17-0.457l-3.195-1.256c0,0-4.452,1.37-5.023,1.37
+               c-0.571,0-2.169-0.457-2.169-0.457l-4.457-0.456l-1.143,0.456l-4.681,0.914l-4.452-0.457l-2.627,0.457l-3.768,0.798l-5.708-0.114
+               l-2.055,1.37l5.137,1.828l-8.219,0.685l-5.596,0.114l-3.196,0.228l-4.682,0.456l-0.911,0.572l-5.253-0.228l0.344,1.369
+               c0,0-0.344,0.8-0.688,0.8h-1.826l-1.141-0.228l-0.914-0.799l0.569-0.799l0.802-0.457l-6.851,0.228l-0.912,1.028l-0.457,1.599
+               l-4.339,0.913v-0.913l-5.371,1.94h-3.195l-3.198,2.625l-0.114-0.456l-4.452,1.142c0,0-0.912,0.8-1.255,0.914
+               c-0.343,0.113-1.941,0.913-1.941,0.913l-2.511,1.256l0.57,0.684l0.914,0.457l0.341,0.572l-0.571,2.51l-3.996,3.768L406.6,64.11
+               l-3.084,1.027l-3.308,0.457l-2.514,0.228l-2.283,0.686c0,0-1.712,0.113-2.056,0.227c-0.343,0.115-2.511,0.342-2.511,0.342
+               l-1.716,1.03l-2.968,1.825l-2.625,1.827l-2.397,1.37l-0.572,1.028c0,0-0.343,0.571-0.914,0.686
+               c-0.57,0.113-4.224,1.484-4.224,1.484l-1.598,0.914l-3.311,2.281l-3.311,1.257l-2.968,0.685h-2.17l-3.541,1.828
+               c0,0-1.254,1.141-1.597,1.255c-0.343,0.113-2.513,1.94-2.513,1.94l-1.599,0.685l-2.511,1.255l-0.686,0.914l-1.941,1.712
+               c0,0-1.484,1.141-2.284,1.255c-0.798,0.116-2.967,0.685-2.967,0.685l-3.196,1.94l-2.97,4.456l-1.484,2.284l-1.941,2.512
+               l-2.855,2.055l-1.598,1.141l-2.169,2.398l-1.828,2.512l-1.483,2.854l-0.913,3.425l-0.686,2.398l-3.196,2.626l-1.255,2.967
+               l-2.17,2.855l-1.941,1.713l-3.084,2.625l-1.827,1.712l-1.827,1.599l-2.284,2.967l-2.17,1.942l-3.31,2.625
+               c0,0-1.712-0.114-1.941,0.228c-0.229,0.342-2.513,2.512-2.855,2.856c-0.343,0.343-3.767,4.109-3.767,4.109l-2.854,1.94
+               l-2.968,2.284l-4.225,0.571l-3.539,1.371l-3.197,2.055l-1.826,2.397l-0.001,1.601l1.255,2.855l0.685,2.397v4.681l-0.228,8.336
+               l-1.028,2.054l-1.255,2.285l-1.485,1.711c0,0-1.598,1.598-1.94,1.827c-0.343,0.228-1.485,2.055-1.485,2.055l0.115,2.283
+               l1.027,1.712l1.599,1.713l0.458,3.197l1.027,4.909l1.369,3.426l1.257,2.511l2.054,2.169c0,0,1.714,0.571,2.056,0.686
+               c0.342,0.113,2.968,0.227,2.968,0.227l13.816-0.343l2.739,1.256l3.312,0.571l4.453,1.371l3.31,1.255l3.084,0.915l1.483,0.457
+               l0.914,0.343l0.457-0.686l0.799-1.141h1.029v1.256l-0.115,1.028l-0.457,1.141l-0.57,0.686l0.57,1.369l-0.456,1.599l-0.114,1.599
+               l0.456,0.912l1.257,1.484l0.113,1.941c0,0,0.685,1.255,0.8,1.599c0.114,0.343,1.484,1.257,1.484,1.257l0.799,0.341l0.571-0.456
+               h2.854l0.685-1.257l1.143-0.457l1.026-0.455l0.344-0.572h1.027h1.027c0,0,0.685-0.342,1.028-0.342c0.343,0,1.141-1.028,1.141-1.028
+               l4.682-0.113l1.712-0.343l1.599-0.459l0.228-1.027v-0.8l0.571-0.341l1.142-0.229l0.685-0.571l0.57-1.141l3.197-10.39l0.343-4.223
+               l-0.571-3.54l-0.572-2.625l-0.684-2.626l-3.311-1.255h-2.283l-1.599,0.569l-1.484,1.714l-1.6,2.853l-0.799,2.284l-2.056,3.654
+               l-1.827,1.599l-1.37,0.227l-0.342,1.257l-1.713,0.227l-1.484-0.684l-0.799-1.486l0.114-1.255l1.141-2.056l1.713-1.484l1.37-0.798
+               l1.827-0.801v-1.597l1.37-0.571l0.343-2.056l1.828-3.653l1.826-1.713l1.941-1.026l0.799-0.801h2.169l0.799-0.457l-0.799-1.599
+               l2.055-3.881l1.255-2.17l1.483-1.598l1.372-0.341l1.598,1.368l1.029,1.028l0.799-0.913l0.571-0.115l0.457,1.142l-0.114,1.257
+               l-0.456,1.141l-1.255,2.168l-0.114,1.257l0.57,1.484l-0.341,2.398l-1.371,1.827l-1.142,1.255l-0.114,2.284l0.571,3.196l0.799,2.398
+               l0.344,2.626v4.567l-0.344,4.795l-0.799,2.74l-1.142,2.284l-1.142,1.942l-1.369,1.598l-0.913,0.684l0.113,1.942l-3.082,3.426
+               l-2.626,1.94l-3.654,1.483l-4.11,2.284l-1.712,2.397l-1.941,3.198l-0.913,2.624l-0.57,3.198l-0.23,3.543v3.654l0.23,2.167
+               l0.798,2.626l1.029,2.626l1.255,1.599l1.598,0.799l2.169,0.572l1.371,0.456l1.141,0.455v0.687l-0.114,1.141l1.256,3.083
+               l1.941,2.284l1.484,2.168l1.141,2.056l0.115,1.484l1.254-1.598l0.114,5.138c0,0-0.342,1.143-0.685,1.255
+               c-0.342,0.114-0.913,1.599-0.913,1.599l0.686,0.8l1.712-0.228l1.143-0.343L342.431,289.381z"/>
+       <g>
+               <path fill="#496B71" d="M276.771,246.006v-4.267h1.383c0.524,0,0.865,0.021,1.025,0.064c0.245,0.064,0.449,0.204,0.614,0.417
+                       c0.165,0.215,0.247,0.492,0.247,0.831c0,0.262-0.048,0.482-0.143,0.661c-0.095,0.179-0.216,0.318-0.362,0.421
+                       c-0.146,0.101-0.295,0.169-0.447,0.202c-0.206,0.041-0.504,0.061-0.894,0.061h-0.562v1.61H276.771z M277.632,242.461v1.211h0.472
+                       c0.34,0,0.567-0.022,0.681-0.067c0.115-0.045,0.204-0.114,0.269-0.21c0.065-0.095,0.098-0.206,0.098-0.332
+                       c0-0.155-0.046-0.283-0.137-0.384c-0.091-0.101-0.207-0.164-0.346-0.189c-0.103-0.019-0.31-0.029-0.62-0.029H277.632z"/>
+               <path fill="#496B71" d="M280.572,243.899c0-0.435,0.065-0.799,0.195-1.094c0.097-0.217,0.229-0.412,0.397-0.585
+                       c0.168-0.173,0.352-0.301,0.552-0.384c0.266-0.113,0.572-0.169,0.92-0.169c0.629,0,1.132,0.195,1.509,0.585
+                       c0.377,0.39,0.566,0.932,0.566,1.627c0,0.689-0.187,1.228-0.562,1.617c-0.375,0.389-0.875,0.583-1.502,0.583
+                       c-0.635,0-1.139-0.193-1.514-0.581C280.759,245.111,280.572,244.578,280.572,243.899z M281.46,243.87
+                       c0,0.483,0.112,0.85,0.335,1.098c0.223,0.25,0.506,0.375,0.85,0.375c0.343,0,0.625-0.124,0.846-0.371
+                       c0.22-0.248,0.33-0.619,0.33-1.114c0-0.489-0.107-0.854-0.322-1.094s-0.499-0.361-0.854-0.361s-0.641,0.122-0.859,0.365
+                       C281.568,243.012,281.46,243.379,281.46,243.87z"/>
+               <path fill="#496B71" d="M285.386,246.006v-4.267h1.813c0.456,0,0.787,0.039,0.994,0.114c0.207,0.078,0.372,0.213,0.496,0.409
+                       c0.124,0.196,0.186,0.42,0.186,0.672c0,0.32-0.094,0.585-0.282,0.793c-0.188,0.21-0.47,0.341-0.844,0.395
+                       c0.186,0.109,0.34,0.228,0.461,0.358c0.121,0.13,0.285,0.361,0.49,0.693l0.521,0.832h-1.03l-0.623-0.929
+                       c-0.221-0.332-0.373-0.54-0.454-0.628c-0.082-0.085-0.168-0.146-0.259-0.177c-0.091-0.033-0.236-0.049-0.434-0.049h-0.175v1.781
+                       H285.386z M286.248,243.544h0.637c0.413,0,0.671-0.017,0.774-0.052c0.103-0.035,0.183-0.095,0.242-0.18
+                       c0.058-0.085,0.087-0.192,0.087-0.32c0-0.144-0.038-0.259-0.115-0.347c-0.077-0.088-0.185-0.145-0.325-0.168
+                       c-0.07-0.01-0.279-0.015-0.629-0.015h-0.672V243.544z"/>
+               <path fill="#496B71" d="M290.542,246.006v-3.545h-1.266v-0.722h3.391v0.722h-1.263v3.545H290.542z"/>
+               <path fill="#496B71" d="M296.629,246.006h-0.937l-0.373-0.969h-1.706l-0.352,0.969h-0.914l1.662-4.267h0.911L296.629,246.006z
+                        M295.043,244.318l-0.588-1.583l-0.576,1.583H295.043z"/>
+               <path fill="#496B71" d="M299.071,244.437v-0.719h1.857v1.7c-0.18,0.175-0.442,0.329-0.784,0.462
+                       c-0.342,0.132-0.689,0.199-1.041,0.199c-0.446,0-0.835-0.093-1.167-0.28c-0.332-0.187-0.581-0.455-0.748-0.803
+                       c-0.167-0.348-0.25-0.728-0.25-1.137c0-0.444,0.093-0.839,0.279-1.185c0.186-0.345,0.459-0.61,0.818-0.795
+                       c0.274-0.142,0.614-0.212,1.022-0.212c0.53,0,0.944,0.112,1.241,0.333c0.298,0.223,0.489,0.53,0.575,0.922l-0.856,0.16
+                       c-0.06-0.21-0.173-0.375-0.339-0.496c-0.166-0.121-0.373-0.182-0.621-0.182c-0.376,0-0.676,0.119-0.898,0.358
+                       c-0.222,0.239-0.333,0.593-0.333,1.062c0,0.506,0.113,0.887,0.338,1.139c0.225,0.254,0.52,0.38,0.885,0.38
+                       c0.18,0,0.361-0.035,0.543-0.107c0.181-0.07,0.337-0.156,0.467-0.257v-0.541H299.071z"/>
+               <path fill="#496B71" d="M301.723,246.006v-4.267h3.164v0.722h-2.302v0.946h2.142v0.719h-2.142v1.161h2.384v0.719H301.723z"/>
+       </g>
+       <g>
+               <path fill="#496B71" d="M289.495,252.247v-4.232h0.862v3.513h2.142v0.719H289.495z"/>
+               <path fill="#496B71" d="M296.961,252.247h-0.937l-0.373-0.969h-1.706l-0.352,0.969h-0.914l1.662-4.267h0.911L296.961,252.247z
+                        M295.375,250.558l-0.588-1.583l-0.576,1.583H295.375z"/>
+               <path fill="#496B71" d="M297.43,252.247v-4.267h0.862v1.895l1.741-1.895h1.158l-1.607,1.662l1.694,2.605h-1.115l-1.173-2.003
+                       l-0.699,0.713v1.289H297.43z"/>
+               <path fill="#496B71" d="M301.723,252.247v-4.267h3.164v0.722h-2.302v0.946h2.142v0.719h-2.142v1.161h2.384v0.719H301.723z"/>
+       </g>
+       <g>
+               <g opacity="0.7">
+                       <path fill-rule="evenodd" clip-rule="evenodd" fill="#FFFFFF" d="M107.085,142.346c0.055,0.102,0.035,0.281,0.073,0.4
+                               c0.12,0.074,0.29,0.098,0.436,0.146c0.455,0.539,0.588,1.503,1.019,2.183c2.326-0.291,3.628,0.318,4.55,1.493
+                               c0.422,0.136,0.826,0.222,1.383,0.145c0.548,0.775,1.624,1.021,3.021,0.946c0.539,0.517,1.164,0.947,1.747,1.419
+                               c-0.356,0.487-0.019,1.323,0.363,2.039c0.242,0.452,1.056,1.026,0.983,1.528c-0.097,0.662-1.623,0.613-1.892,1.237
+                               c0.183,0.585-0.461,0.943-0.401,1.419c0.028,0.227,0.258,0.246,0.328,0.437c0.139,0.39,0.012,0.612,0.254,0.838
+                               c0.13,0.12,0.365,0.093,0.51,0.219c0.107,0.093,0.131,0.317,0.255,0.437c0.268,0.261,0.746,0.247,0.946,0.509
+                               c0.382,0.503,0.376,1.778,0.473,2.475c0.117,0.843,0.47,2.164-0.255,2.874c-0.016,0.824,0.207,1.636-0.327,2.038
+                               c0.137,0.662,0.11,2.847-0.291,3.676c-0.289,0.595-1.186,0.661-1.638,1.019c-0.098-0.201-0.229-0.074-0.219,0.145
+                               c-0.696,0.336-1.051,1.012-1.31,1.784c-0.318,1.041-0.175,2.093-0.619,2.911c-0.215,0.397-0.71,0.578-1.019,0.874
+                               c-0.46,0.44-0.87,1.008-1.784,1.091c-0.34,0.031-0.55-0.074-0.8,0c-1.939,0.576-1.036,2.809-1.528,4.549
+                               c-0.138,0.484-0.354,1.084,0,1.82c0.16,0.335,0.535,0.497,0.945,0.654c0.054,0.251,0.194,0.413,0.401,0.51
+                               c0.232,0.037,0.309-0.079,0.51-0.073c0.104,0.055,0.038,0.277,0.145,0.328c1.055-0.346,1.574,0.362,1.966,0.91
+                               c1.045-0.52,1.398-1.732,2.219-2.475c0.722-0.019,1.42-0.382,1.238-1.309c0.546-0.17,0.455-0.977,1.055-1.093
+                               c0.137-1.051,1.031-1.346,1.201-2.365c0.493-0.224,0.815-0.617,0.91-1.237c0.461-0.111,0.905-0.5,1.383-0.182
+                               c0.699-0.684,2.445-0.321,2.548-1.602c0.645-0.143,0.879-0.698,1.819-0.547c0.149,0.505,1.063,0.248,1.128,0.837
+                               c0.327-0.677,0.706-0.092,0.873,0.365c0.08,0.066,0.298-0.007,0.364,0.072c0.737,0.464,1,1.402,1.346,2.256
+                               c1.015,1.405,1.385,3.482,1.492,5.423c0.127,2.299,0.808,4.665,1.056,6.915c0.098,0.889,0.299,1.839,0.437,2.693
+                               c0.058,0.357,0.372,0.779,0.437,1.237c0.031,0.221-0.057,0.461,0,0.655c0.06,0.209,0.328,0.245,0.437,0.436
+                               c0.208,0.368,0.554,1.259,0.546,1.674c-0.011,0.523-0.634,1.111-0.764,1.711c-0.09,0.414,0.044,0.843,0,1.237
+                               c-0.048,0.433-0.101,0.639-0.036,1.128c0.16,1.21-0.618,2.126-0.765,3.311c-0.224,0.003-0.817,0.251-1.201,0.146
+                               c-0.217-0.059-0.239-0.323-0.4-0.473c-0.727-0.682-1.805-0.424-2.438,0.037c-0.105,0.076-0.601,0.287-0.655,0.546
+                               c-0.032,0.15,0.113,0.353,0.109,0.509c-0.025,1.047-1.119,1.573-1.201,2.511c-0.033,0.378,0.139,0.707,0.109,1.02
+                               c-0.048,0.512-0.349,1.321-0.656,1.782c-0.562,0.847-2.086,0.778-2.802,1.675c-0.243,0.303-0.423,1.036-0.546,1.456
+                               c-0.213,0.725-0.576,1.836-0.618,2.439c-0.04,0.563,0.195,1.067,0.108,1.528c-0.105,0.563-0.641,1.132-1.055,1.491
+                               c-0.139,0.954-1.006,1.179-1.456,1.821c0.279,0.539-0.177,1.045-0.655,1.164c-0.028,0.149,0.056,0.187,0.037,0.327
+                               c-0.546,0.461-0.517,1.498-1.056,1.965c-6.284,0.244-13.32,0.368-19.652,0.437c-0.255-0.264,0.009-0.851-0.219-1.165
+                               c-10.049-0.361-20.921-0.043-30.897-0.364c0.64-0.816,1.813-1.098,2.183-2.184c0.138-0.117,0.315-0.194,0.474-0.291
+                               c0.544-1.227,0.927-2.615,1.528-3.784c-0.23-1.046,1.229-1.148,1.128-2.184c0.863-0.525,1.532-2.332,1.784-3.567
+                               c0.073-0.359,0.43-0.614,0.109-1.056c0.626-0.503,0.763-1.839,0.619-2.875c0.543-0.462,0.123-1.099,0.146-1.71
+                               c0.031-0.833,0.619-1.672,0.327-2.802c0.209-0.143,0.644-0.06,0.619-0.436c-0.096-0.111-0.35-0.062-0.546-0.073
+                               c-0.322-0.839-0.146-1.593-0.219-2.475c-0.124-1.507-0.691-3.434-1.201-4.84c-0.288-0.794-1.049-1.549-0.036-2.074
+                               c-0.113-0.317-0.575,0.01-0.909-0.073c-0.346-0.851-1.426-2.312-0.401-3.02c-0.186-0.261-0.446,0.095-0.764,0.036
+                               c-0.449-0.567-0.488-1.24-0.655-2.11c-0.221-1.151-1.433-2.239-1.128-3.494c0.222-0.916,1.002-1.729,1.602-2.511
+                               c-0.319-0.411-0.059-0.711,0.182-1.019c-0.024-0.194-0.254-0.184-0.291-0.364c0.081-1.558-0.4-2.976-0.947-4.185
+                               c0.273-0.076,0.649-0.171,0.51-0.546c-0.222-0.135-0.386,0.187-0.619,0.037c-0.158-0.591,0.338-0.605,0.655-0.837
+                               c0.808-0.592,1.281-1.98,1.674-3.02c0.139-0.368,0.553-0.645,0.692-1.128c0.145-0.505,0.331-0.79,0.51-1.237
+                               c0.206-0.098,0.667,0.059,0.765-0.146c0.016-0.296-0.421-0.138-0.51-0.328c0.065-0.686-0.016-1.211,0-1.819
+                               c0.019-0.732,0.457-1.42,0.51-2.112c0.063-0.843-0.691-1.502-0.365-2.292c0.484,0.001,0.596,0.438,0.874,0.655
+                               c0.29,0.226,0.844,0.118,0.91-0.073c0.229-0.657-1.38-1.04-1.892-1.128c0.41,0.018,0.726-0.585,1.456-0.728
+                               c0.572-0.112,1.071-0.152,1.165-0.763c0.027-0.181-0.127-0.382-0.109-0.583c0.014-0.163,0.199-0.335,0.218-0.51
+                               c0.049-0.441-0.186-0.975-0.182-1.419c0.085-0.218,0.243-0.363,0.437-0.473c1.242,0.938,1.13-1.184,1.965-1.128
+                               c0.334,0.023,0.434,0.403,0.801,0.474c1.038,0.017,0.936-1.103,1.784-1.274c0.03-0.304,0.138-0.729,0.073-0.91
+                               c0.903-0.698,1.01-2.192,1.747-3.057c0.245,0.01,0.465,0.045,0.546,0.218c-0.01,0.382-0.434,0.655-0.51,1.092
+                               c0.417,0.94-0.604,2.037-0.655,3.348c-0.041,1.043-0.038,2.166,0.037,2.985c0.049,0.543,0.374,1.293,1.092,1.019
+                               c0.228,0.554,0.928,0.479,1.201,0c-0.023-0.594,0.381-0.759,0.655-1.056c0.069-0.756,0.518-1.132,0.801-1.674
+                               c0.386-0.997,0.309-2.456,0.692-3.457c0.789,1.248,0.32,2.999,0.656,4.33c0.532-0.002,0.308-0.537,0.29-0.91
+                               c-0.021-0.443,0.192-0.977,0.182-1.383c-0.006-0.218-0.255-0.409-0.291-0.692c-0.025-0.199,0.106-0.396,0.073-0.508
+                               c-0.047-0.164-0.289-0.175-0.364-0.327c-0.17-0.345-0.016-0.711-0.219-0.909c-0.066-0.08-0.297,0.006-0.363-0.074
+                               c-0.348-1.782-0.655-4.665,1.638-4.804c0.172-0.082,0.06-0.45,0.182-0.582c0.787-0.204,1.196-0.928,2.036-0.883
+                               c0.235,0.012,0.694,0.154,0.949,0.138c0.698-0.044,1.263-0.277,1.892-0.384c0.034-0.338-0.092-0.515-0.182-0.728
+                               c-0.708-0.346-2.123-0.384-2.439-1.091c-0.675-1.51-0.253-3.269,1.347-3.603c0.021-0.659,0.509-0.85,0.91-1.128
+                               c0.175-0.589-0.319-0.701-0.364-0.947c0.994,1.042,2.37,0.628,2.998-0.55c0.107-0.249,0.72,0.095,0.823,0.295
+                               c0.851,0.687,2.117,0.75,2.911,1.493c0.197,0.183,0.664,0.828,1.092,0.837c0.221,0.004,0.348-0.286,0.546-0.328
+                               C105.084,141.37,106.048,142.076,107.085,142.346z"/>
+               </g>
+               <g>
+                       <path opacity="0.7" fill-rule="evenodd" clip-rule="evenodd" fill="#FFFFFF" d="M113.115,134.707
+                               c-0.402-0.055,0.049,0.442,0.029,0.089c0.152,0.053,0.227,0.184,0.294,0.323c-0.047,0.16-0.292,0.293-0.117,0.498
+                               c0.245,0.147,0.717,0.066,0.822,0.353c-0.078,0.274-0.109,0.595-0.322,0.734c-0.281-0.116-0.486,0.173-0.705,0.146
+                               c-0.204-0.024-0.387-0.442-0.646-0.498c-0.754-0.167-2.234,0.597-2.465-0.382c0.154,0.012,0.185,0.148,0.352,0.148
+                               c0.287-0.385,0.781-0.872,1.409-0.939c0.511-0.056-0.02-0.878-0.176-1.086C112.299,133.978,113.088,134.039,113.115,134.707z"/>
+                       <path opacity="0.7" fill-rule="evenodd" clip-rule="evenodd" fill="#FFFFFF" d="M64.365,111.667
+                               c-0.424,0.115-0.707,0.37-1.145,0.47c-0.549-0.351-2.307-0.103-1.614,0.587c-1.083,1.079-2.64,1.683-3.581,2.905
+                               c-0.13,0.085-0.094-0.208-0.294-0.146c0.121,0.749-0.444,1.194-0.791,1.761c-0.207,0.337-0.543,1.268-0.822,1.232
+                               c-0.251-0.032-0.612-1.425-0.029-1.409c-0.066-0.139-0.35-0.063-0.47-0.148c-0.167-0.541-0.927-0.634-1.526-0.645
+                               c0.006,0.277,0.369,0.199,0.588,0.265c0.448,0.284,0.138,0.866,0.264,1.379c0.366,0.191,0.593,0.521,0.821,0.852
+                               c-0.036,0.525-0.291,1.063-0.411,1.614c-0.042,0.197,0.047,0.505,0,0.763c-0.034,0.189-0.163,0.322-0.147,0.47
+                               c0.019,0.164,0.284,0.295,0.294,0.44c0.017,0.242-0.34,0.35-0.323,0.558c0.597,0.359,0.964-1.049,1.379-1.41
+                               c0.694-0.601,1.467-1.218,2.202-1.467c-0.1,0.586-0.881,0.489-0.764,1.292c-0.098,0.198-0.476,0.262-0.382,0.557
+                               c0.132,0.14,0.319-0.064,0.44-0.117c0.203-0.441,0.244-0.757,0.557-0.999c0.407-0.312,1.029-0.009,1.38-0.352
+                               c0.795,0.16,1.529,0.292,2.348,0.294c0.031,0.076,0.071,0.144,0.059,0.264c0.357-0.074,0.444,0.124,0.587,0.265
+                               c0.434-0.383,0.5-0.059,0.733,0.263c0.187,0.258,0.648,0.421,0.44,0.764c0.196,0.107,0.323,0.284,0.528,0.382
+                               c0.191,0.003,0.069-0.303,0.148-0.411c0.831,0.206,0.871,1.202,1.174,1.936c0.095,0.1,0.297,0.094,0.411,0.176
+                               c-0.004,0.709,0.677,0.732,0.703,1.409c0.293,0.3,0.647,0.642,0.764,1.056c0.056,0.198-0.023,0.335,0.088,0.499
+                               c0.43,0.632,1.565,0.306,2.201,0.763c0.164-0.143,0.32-0.402,0.646-0.293c0.105,0.062,0.01,0.322,0.146,0.352
+                               c0.299-0.675,1.738-1.409,2.084-0.352c-0.062,0.125-0.255,0.118-0.264,0.293c0.194,0.294,0.481,0.162,0.821,0.323
+                               c0.275,0.13,0.376,0.545,0.793,0.499c0.308-0.034,0.364-0.538,0.646-0.645c0.448-0.174,0.638,0.312,0.939,0.557
+                               c0.148-0.02,0.206,0.05,0.353,0.029c0.17,0.078,0.138,0.309,0.323,0.322c0.396,0.028,0.651-0.74,0.881-1.115
+                               c0.122-0.2,0.627-0.475,0.91-0.675c0.151-0.107,0.265-0.318,0.352-0.353c0.35-0.138,0.79-0.056,1.115-0.176
+                               c0.225-0.083,0.279-0.332,0.47-0.528c0.551-0.569,1.647-0.785,2.084-1.438c1.023,0.8,2.578-0.681,3.727-0.089
+                               c0.834,0.051,1.734-0.161,2.231,0.206c0.386-0.23,1.03-0.041,1.438-0.088c0.066,0.258,0.194,0.506,0.118,0.821
+                               c0.153-0.143,0.74-0.099,1.086-0.146c0.386-0.228,0.018-1.035,0.498-1.175c0.152,0.015,0.328,0.027,0.206-0.058
+                               c0.404-0.836,1.561-0.741,2.407-0.85c-0.33,0.263-0.189,0.881-0.44,1.173c0.326,0.192,0.516-0.084,0.586-0.323
+                               c0.323,0.011,0.593,0.074,0.646,0.353c-0.307,0.11-0.73,0.417-0.44,0.851c0.239,0.074,0.502-0.11,0.734,0.029
+                               c0.194,0.437,0.316,1.058-0.118,1.32c-0.133,1.29,1.036,1.569,2.231,1.526c0.739,0.853,1.83-0.084,2.495-0.41
+                               c0.111,0.088-0.02,0.194,0.029,0.352c0.052,0.168,0.783,0.832,0.851,0.851c0.379,0.104,0.571-0.346,0.998-0.382
+                               c0.597-0.05,0.469,0.103,0.733-0.412c0.242-0.468,0.86-0.861,1.556-0.704c-0.193,0.556,0.535,0.724,0.586,1.32
+                               c0.007,0.076-0.075,0.248-0.058,0.352c0.028,0.182,0.248,0.26,0.352,0.44c0.207,0.36,0.229,0.961,0.147,1.38
+                               c0.15,0.182,0.426,0.24,0.382,0.617c-0.255,0.361-0.829,0.404-0.91,0.938c0.238,0.213,0.425,0.475,0.529,0.821
+                               c0.206-0.342,0.743-0.352,1.174-0.469c0.208,0.418,0.706,0.546,1.057,0.821c-0.24,0.3-0.463,0.605,0,0.822
+                               c-0.027,0.242,0.05,0.381,0.088,0.558c0.294,0.105,0.646,0.155,0.704,0.499c0.318-0.152,0.65-0.049,0.851,0.147
+                               c0.019,0.159,0.069,0.3,0.029,0.441c-0.157,0.213-0.706,0.176-0.88,0c0.003-0.209,0.011-0.423-0.088-0.528
+                               c-0.17-0.004-0.29,0.043-0.382,0.118c-0.02,0.195,0.156,0.195,0.146,0.381c-1.182,0.153-2.759-0.423-4.226-0.322
+                               c-0.255,0.017-0.521,0.171-0.705,0.146c-0.228-0.03-0.333-0.244-0.587-0.177c-0.122,0.034-0.167,0.198-0.264,0.235
+                               c-0.391,0.15-0.526-0.213-0.704-0.528c-0.635,0.052-0.863-0.449-1.439-0.353c-0.473,0.08-0.255,0.801-0.47,1.233
+                               c-0.141,0.284-0.723,0.562-0.234,0.968c0.011,0.148-0.13,0.145-0.147,0.265c0.094,0.129,0.192,0.425,0.029,0.558
+                               c-0.847-0.093-1.522-0.356-1.819-0.997c-0.292-0.091-0.635-0.252-0.587-0.588c0.113-0.093,0.368-0.042,0.528-0.088
+                               c-0.017,0.184,0.228,0.625,0.469,0.352c0.053-0.167-0.215-0.248-0.322-0.352c0.093-0.281-0.069-0.451-0.206-0.587
+                               c-0.115-0.058-0.193,0.05-0.293,0.089c-0.188-0.167-0.63-0.339-0.88-0.176c-0.142,0.004-0.105-0.171-0.206-0.205
+                               c-1.249-0.095-2.968-1.152-4.285-1.35c-0.492-0.075-1.04-0.168-1.497-0.059c-0.619,0.148-0.66,1.056-1.291,1.321
+                               c-0.007,1.55-2.567,0.511-3.463,1.145c-0.142,0.099-0.245,0.44-0.44,0.469c-0.555,0.085-1.07-0.516-1.585-0.558
+                               c-1.108-0.089-2.585,0.201-2.935,1.087c-0.138,0.349-0.062,0.538-0.234,0.968c-0.14,0.347-1.008,1.181-1.438,1.38
+                               c-0.413,0.189-0.877,0.059-0.91,0.675c-0.739,0.151-0.705,1.075-1.115,1.556c-0.507-0.084-0.944-0.757-0.323-0.997
+                               c0.032-0.179-0.093-0.2-0.088-0.353c0.671-0.023,0.398-1.419,1.204-0.939c0.116-0.484,0.357-1.029,0.615-1.526
+                               c-0.074-0.714-0.837-0.632-1.232-0.235c-0.014,0.201-0.09,0.342-0.177,0.469c-0.232,0.061-0.571,0.014-0.851,0.029
+                               c-0.17-0.073-0.157-0.33-0.323-0.411c-0.246-0.012-0.412,0.058-0.558,0.147c0.085,0.757-0.79,1.934-1.379,2.26
+                               c-0.187,0.103-0.562,0.087-0.763,0.088c-0.324-0.4,0.08-1.25-0.264-1.761c0.065-0.527,0.993-0.968,0.411-1.497
+                               c-0.404,0.105-0.653,0.489-0.587,0.969c-0.182,0.403-0.799,0.552-0.763,1.057c0.037,0.517,0.44,1.056-0.235,1.409
+                               c-0.116,0.06-0.268,0.029-0.382,0.088c-0.768,0.397-0.79,1.607-1.614,1.966c-0.822,3.229-2.949,5.152-4.373,7.777
+                               c-0.601-0.383-1.438-0.589-1.409-1.291c0.012-0.316,0.287-0.707,0.381-1.027c0.161-0.546,0.749-1.341,0.735-1.732
+                               c-0.006-0.153-0.297-0.524-0.499-0.528c-0.293-0.006-0.511,0.489-0.851,0.558c-0.415,0.085-1.256,0.01-1.322-0.351
+                               c-0.04-0.218,0.233-0.357,0.264-0.617c0.027-0.22-0.087-0.385-0.058-0.528c0.07-0.364,0.713-0.526,0.793-0.939
+                               c0.088-0.458-0.173-0.735-0.264-1.204c1.11-0.225-0.049-1.248,0.03-1.615c0.071-0.335,0.724-0.375,0.146-0.88
+                               c-0.086-0.074-0.263-0.085-0.382-0.176c-0.21-0.161-0.295-0.456-0.499-0.559c-0.472-0.233-1.121-0.116-1.262-0.675
+                               c-0.685,0.153-1.591,0.03-1.556-0.645c0.018-0.348,0.585-0.453,0.617-0.733c0.006-0.049-0.179-0.582-0.265-0.764
+                               c-0.147-0.312-0.924-0.523-1.35-0.587c-0.197-0.03-0.353-0.264-0.557-0.294c-0.181-0.026-0.373,0.06-0.528,0.029
+                               c-0.279-0.055-0.418-0.411-0.705-0.469c-0.132-0.027-0.289,0.074-0.44,0.058c-0.874-0.087-1.265-0.752-2.142-0.5
+                               c-0.148,0.043-0.292,0.273-0.44,0.294c-0.381,0.052-0.713-0.564-1.232-0.616c-0.375-0.038-0.623,0.014-0.969-0.059
+                               c-1.236-0.479-2.16-1.555-3.434-2.055c-0.942-0.369-2.108-0.426-2.847-0.997c-0.17,0.071-0.424,0.08-0.557-0.029
+                               c-0.069-0.049-0.064-0.172-0.059-0.294c-0.821,0.275-2.301-0.391-3.141-0.645c-1.018-0.308-1.955-0.53-2.817-0.822
+                               c-0.053-0.075-0.101-0.154-0.088-0.293c-0.875,0.264-1.738-0.333-2.524-0.529c-0.534-1.277-0.699-2.922-2.231-3.2
+                               c-0.081-0.115-0.062-0.328-0.176-0.411c-1.489,0.314-0.897-0.584,0.176-0.704c0.599-0.067,1.422-0.54,1.673-0.763
+                               c2.121-0.082,2.948-1.454,4.021-2.583c1.188-0.779,2.464,0.045,3.786-0.499c0.647,0.057,1.708,0.022,2.172-0.294
+                               c0.707-0.481,1.573-0.889,2.084-1.409c0.089-1.097,1.596-0.623,2.524-0.851c0.438-0.108,0.558-0.655,0.676-1.116
+                               c0.529-0.743,1.284-1.26,2.143-1.673c0.124-0.535,0.556-0.908,1.144-0.88c0.222,0.41-0.238,1.25,0.353,1.379
+                               c0.164-0.424-0.041-1.214,0.117-1.643c1.237-0.432,1.445-2.035,2.642-2.524c0.966-0.396,1.827-1.046,2.876-1.204
+                               c0.681,0.177,1.438-0.228,2.231-0.116c0.401,0.057,0.802,0.315,1.174,0.058c0.429,0.071,0.863,0.058,1.145,0.324
+                               C64.142,111.363,64.35,111.419,64.365,111.667z"/>
+               </g>
+               <g>
+                       <path fill-rule="evenodd" clip-rule="evenodd" fill="#F17225" d="M64.13,111.111c-0.281-0.266-0.716-0.252-1.145-0.324
+                               c-0.372,0.257-0.772-0.002-1.174-0.058c-0.793-0.112-1.55,0.293-2.231,0.116c-1.049,0.158-1.91,0.808-2.876,1.204
+                               c-1.197,0.49-1.405,2.092-2.642,2.524c-0.159,0.429,0.046,1.219-0.117,1.643c-0.591-0.129-0.131-0.969-0.353-1.379
+                               c-0.588-0.028-1.02,0.346-1.144,0.88c-0.859,0.413-1.614,0.929-2.143,1.673c-0.117,0.461-0.237,1.008-0.676,1.116
+                               c-0.928,0.228-2.435-0.246-2.524,0.851c-0.32,0.326-0.779,0.608-1.252,0.891c0.661,1.1,5.355,0.946,6.405,1.667
+                               c0.093,0.02,1.35,0.544,2.15,0.559c0.061-0.083,0.704,0.22,0.776,0.144c-0.003-0.001-0.005-0.002-0.007-0.003
+                               c-0.017-0.208,0.34-0.316,0.323-0.558c-0.01-0.145-0.276-0.276-0.294-0.44c-0.016-0.147,0.113-0.281,0.147-0.47
+                               c0.047-0.258-0.042-0.566,0-0.763c0.12-0.551,0.375-1.089,0.411-1.614c-0.228-0.33-0.455-0.66-0.821-0.852
+                               c-0.127-0.512,0.184-1.095-0.264-1.379c-0.218-0.066-0.582,0.012-0.588-0.265c0.6,0.011,1.359,0.105,1.526,0.645
+                               c0.12,0.084,0.404,0.008,0.47,0.148c-0.582-0.017-0.222,1.376,0.029,1.409c0.28,0.036,0.615-0.896,0.822-1.232
+                               c0.348-0.567,0.913-1.012,0.791-1.761c0.2-0.061,0.164,0.232,0.294,0.146c0.94-1.222,2.498-1.826,3.581-2.905
+                               c-0.692-0.69,1.065-0.938,1.614-0.587c0.438-0.1,0.721-0.355,1.145-0.47C64.35,111.419,64.142,111.363,64.13,111.111z"/>
+               </g>
+       </g>
+       <g>
+               <path fill="#496B71" d="M483.716,41.546h1.383c0.274,0,0.477,0.012,0.612,0.034c0.134,0.023,0.254,0.07,0.361,0.143
+                       c0.106,0.072,0.194,0.169,0.265,0.289c0.071,0.12,0.107,0.255,0.107,0.405c0,0.162-0.044,0.31-0.131,0.446
+                       c-0.087,0.135-0.206,0.237-0.355,0.304c0.211,0.062,0.373,0.166,0.486,0.314c0.114,0.148,0.17,0.322,0.17,0.521
+                       c0,0.157-0.037,0.31-0.11,0.459c-0.074,0.148-0.174,0.267-0.3,0.356c-0.127,0.089-0.282,0.144-0.469,0.164
+                       c-0.116,0.013-0.397,0.021-0.842,0.024h-1.177V41.546z M484.415,42.122v0.8h0.457c0.273,0,0.441-0.004,0.507-0.012
+                       c0.119-0.014,0.213-0.055,0.282-0.124c0.068-0.068,0.102-0.159,0.102-0.27c0-0.107-0.029-0.194-0.088-0.261
+                       c-0.059-0.067-0.146-0.108-0.263-0.122c-0.069-0.008-0.268-0.012-0.597-0.012H484.415z M484.415,43.497v0.925h0.646
+                       c0.251,0,0.411-0.007,0.478-0.021c0.104-0.019,0.189-0.065,0.254-0.138c0.065-0.073,0.098-0.171,0.098-0.293
+                       c0-0.104-0.025-0.192-0.076-0.264c-0.05-0.072-0.123-0.125-0.218-0.158c-0.095-0.033-0.302-0.049-0.619-0.049H484.415z"/>
+               <path fill="#496B71" d="M487.205,45.005v-3.459h1.47c0.37,0,0.637,0.031,0.805,0.093c0.168,0.062,0.302,0.173,0.403,0.332
+                       c0.1,0.159,0.15,0.341,0.15,0.545c0,0.26-0.076,0.474-0.229,0.643c-0.152,0.169-0.38,0.276-0.684,0.32
+                       c0.151,0.088,0.276,0.185,0.375,0.291c0.098,0.105,0.231,0.293,0.397,0.561l0.423,0.675h-0.835l-0.505-0.752
+                       c-0.18-0.269-0.303-0.439-0.369-0.508c-0.066-0.07-0.136-0.118-0.21-0.144c-0.074-0.026-0.191-0.039-0.352-0.039h-0.141v1.444
+                       H487.205z M487.904,43.009h0.516c0.335,0,0.544-0.015,0.628-0.043c0.083-0.028,0.148-0.077,0.196-0.147
+                       c0.047-0.069,0.071-0.156,0.071-0.259c0-0.116-0.031-0.211-0.093-0.282c-0.062-0.071-0.15-0.116-0.263-0.135
+                       c-0.057-0.008-0.227-0.012-0.51-0.012h-0.544V43.009z"/>
+               <path fill="#496B71" d="M490.55,43.297c0-0.352,0.053-0.648,0.158-0.887c0.079-0.176,0.186-0.334,0.322-0.474
+                       c0.136-0.14,0.285-0.244,0.447-0.311c0.215-0.091,0.464-0.137,0.746-0.137c0.509,0,0.917,0.158,1.222,0.474
+                       c0.307,0.316,0.459,0.756,0.459,1.319c0,0.558-0.151,0.995-0.455,1.31c-0.304,0.316-0.709,0.473-1.218,0.473
+                       c-0.514,0-0.923-0.157-1.226-0.471C490.702,44.28,490.55,43.848,490.55,43.297z M491.27,43.273c0,0.392,0.09,0.689,0.272,0.891
+                       c0.18,0.202,0.41,0.303,0.689,0.303c0.278,0,0.506-0.1,0.685-0.301s0.268-0.501,0.268-0.902c0-0.396-0.086-0.692-0.26-0.887
+                       c-0.175-0.195-0.406-0.293-0.693-0.293c-0.288,0-0.52,0.099-0.697,0.296C491.358,42.578,491.27,42.876,491.27,43.273z"/>
+               <path fill="#496B71" d="M496.663,43.734l0.677,0.214c-0.104,0.377-0.277,0.658-0.518,0.841c-0.241,0.183-0.547,0.275-0.919,0.275
+                       c-0.459,0-0.836-0.157-1.132-0.471c-0.296-0.313-0.443-0.743-0.443-1.287c0-0.575,0.148-1.023,0.445-1.341
+                       c0.298-0.318,0.689-0.477,1.173-0.477c0.423,0,0.766,0.125,1.031,0.375c0.157,0.148,0.275,0.36,0.353,0.637l-0.691,0.165
+                       c-0.041-0.179-0.126-0.321-0.256-0.424c-0.13-0.104-0.287-0.156-0.473-0.156c-0.257,0-0.465,0.092-0.625,0.276
+                       c-0.159,0.184-0.239,0.482-0.239,0.894c0,0.438,0.079,0.749,0.236,0.934c0.157,0.186,0.362,0.278,0.613,0.278
+                       c0.185,0,0.345-0.059,0.479-0.177C496.509,44.172,496.605,43.987,496.663,43.734z"/>
+               <path fill="#496B71" d="M497.949,45.005v-3.459h0.699v1.536l1.411-1.536h0.939l-1.302,1.347l1.373,2.112h-0.904l-0.951-1.623
+                       l-0.566,0.578v1.045H497.949z"/>
+               <path fill="#496B71" d="M501.919,45.005l-0.826-3.459h0.715l0.521,2.376l0.633-2.376h0.831l0.606,2.416l0.531-2.416h0.703
+                       l-0.84,3.459h-0.741l-0.689-2.586l-0.686,2.586H501.919z"/>
+               <path fill="#496B71" d="M508.929,45.005h-0.76l-0.302-0.786h-1.383l-0.285,0.786h-0.741l1.348-3.459h0.738L508.929,45.005z
+                        M507.643,43.637l-0.476-1.283l-0.468,1.283H507.643z"/>
+               <path fill="#496B71" d="M509.85,45.005v-1.456l-1.267-2.003h0.819l0.813,1.369l0.798-1.369h0.805l-1.272,2.008v1.451H509.85z"/>
+               <path fill="#496B71" d="M484.602,50.803v-3.459h1.045l0.628,2.36l0.62-2.36h1.048v3.459h-0.649v-2.722l-0.686,2.722h-0.672
+                       l-0.685-2.722v2.722H484.602z"/>
+               <path fill="#496B71" d="M489.415,50.803V47.93h-1.027v-0.585h2.749v0.585h-1.024v2.874H489.415z"/>
+               <path fill="#496B71" d="M491.595,50.803v-3.459h0.679l1.416,2.31v-2.31h0.649v3.459h-0.701l-1.394-2.255v2.255H491.595z"/>
+               <path fill="#496B71" d="M495.071,50.803V50.14h0.664v0.663H495.071z"/>
+               <path fill="#496B71" d="M497.76,47.344h1.276c0.288,0,0.507,0.022,0.659,0.066c0.203,0.06,0.376,0.166,0.521,0.319
+                       c0.145,0.153,0.255,0.34,0.331,0.56c0.076,0.221,0.113,0.493,0.113,0.817c0,0.285-0.035,0.53-0.106,0.736
+                       c-0.086,0.251-0.21,0.455-0.371,0.611c-0.121,0.118-0.284,0.21-0.491,0.276c-0.153,0.049-0.36,0.073-0.618,0.073h-1.314V47.344z
+                        M498.458,47.93v2.291h0.521c0.195,0,0.336-0.011,0.422-0.033c0.114-0.029,0.208-0.077,0.282-0.144
+                       c0.075-0.067,0.136-0.179,0.182-0.334c0.048-0.155,0.071-0.366,0.071-0.634c0-0.267-0.023-0.473-0.071-0.616
+                       c-0.047-0.143-0.113-0.255-0.198-0.335c-0.084-0.08-0.192-0.134-0.323-0.163c-0.098-0.022-0.289-0.033-0.573-0.033H498.458z"/>
+               <path fill="#496B71" d="M501.253,50.803v-3.459h1.47c0.37,0,0.637,0.031,0.805,0.093s0.302,0.173,0.403,0.332
+                       c0.1,0.159,0.15,0.341,0.15,0.545c0,0.26-0.076,0.474-0.229,0.643c-0.152,0.169-0.38,0.276-0.684,0.32
+                       c0.151,0.088,0.276,0.185,0.375,0.291c0.098,0.105,0.231,0.293,0.397,0.561l0.423,0.675h-0.835l-0.505-0.752
+                       c-0.18-0.269-0.303-0.439-0.369-0.508c-0.066-0.07-0.136-0.118-0.21-0.144c-0.074-0.026-0.191-0.039-0.352-0.039h-0.141v1.444
+                       H501.253z M501.952,48.808h0.516c0.335,0,0.544-0.015,0.628-0.043c0.083-0.028,0.148-0.077,0.196-0.147
+                       c0.047-0.069,0.071-0.156,0.071-0.259c0-0.116-0.031-0.211-0.093-0.282c-0.062-0.071-0.15-0.116-0.263-0.135
+                       c-0.057-0.008-0.227-0.012-0.51-0.012h-0.544V48.808z"/>
+               <path fill="#496B71" d="M504.718,50.803v-3.459h0.699v3.459H504.718z"/>
+               <path fill="#496B71" d="M506.965,50.803l-1.236-3.459h0.757l0.875,2.56l0.847-2.56h0.741l-1.239,3.459H506.965z"/>
+               <path fill="#496B71" d="M509.305,50.803v-3.459h2.565v0.585h-1.867v0.767h1.737v0.583h-1.737v0.942h1.933v0.583H509.305z"/>
+       </g>
+</g>
+<g id="Main_Towns">
+       <g>
+               <path fill="#231F20" d="M504.279,88.812h2.559c0.506,0,0.884,0.021,1.133,0.063c0.248,0.043,0.472,0.13,0.668,0.264
+                       c0.197,0.134,0.361,0.312,0.491,0.535c0.132,0.222,0.197,0.472,0.197,0.749c0,0.3-0.081,0.575-0.243,0.825
+                       c-0.161,0.25-0.38,0.438-0.657,0.563c0.39,0.114,0.69,0.307,0.899,0.581s0.314,0.595,0.314,0.965c0,0.291-0.068,0.574-0.203,0.849
+                       c-0.136,0.275-0.32,0.495-0.555,0.659c-0.234,0.165-0.523,0.266-0.866,0.304c-0.215,0.023-0.735,0.038-1.559,0.044h-2.178V88.812z
+                        M505.571,89.877v1.48h0.847c0.504,0,0.817-0.007,0.939-0.022c0.22-0.026,0.395-0.103,0.521-0.229
+                       c0.127-0.127,0.19-0.293,0.19-0.5c0-0.198-0.054-0.358-0.164-0.483c-0.109-0.123-0.272-0.198-0.487-0.225
+                       c-0.128-0.015-0.496-0.022-1.104-0.022H505.571z M505.571,92.422v1.711h1.196c0.466,0,0.761-0.013,0.887-0.039
+                       c0.192-0.035,0.348-0.12,0.469-0.255c0.121-0.136,0.181-0.317,0.181-0.544c0-0.192-0.047-0.355-0.14-0.489
+                       c-0.093-0.134-0.228-0.231-0.404-0.293c-0.177-0.061-0.559-0.092-1.147-0.092H505.571z"/>
+               <path fill="#231F20" d="M510.731,95.212v-6.401h4.746v1.083h-3.454v1.419h3.213v1.078h-3.213v1.742h3.576v1.078H510.731z"/>
+               <path fill="#231F20" d="M518.136,95.212v-5.318h-1.9v-1.083h5.086v1.083h-1.894v5.318H518.136z"/>
+               <path fill="#231F20" d="M522.156,95.212v-6.401h4.746v1.083h-3.454v1.419h3.213v1.078h-3.213v1.742h3.576v1.078H522.156z"/>
+               <path fill="#231F20" d="M533.583,92.859v-1.078h2.785v2.55c-0.27,0.262-0.663,0.493-1.176,0.692
+                       c-0.514,0.199-1.034,0.299-1.561,0.299c-0.669,0-1.253-0.14-1.751-0.422c-0.497-0.28-0.871-0.682-1.122-1.205
+                       c-0.25-0.522-0.375-1.091-0.375-1.705c0-0.667,0.14-1.259,0.419-1.777c0.279-0.518,0.688-0.915,1.227-1.192
+                       c0.409-0.212,0.921-0.319,1.532-0.319c0.795,0,1.416,0.167,1.862,0.5c0.447,0.333,0.734,0.794,0.862,1.382l-1.284,0.24
+                       c-0.09-0.314-0.26-0.562-0.508-0.745c-0.249-0.181-0.56-0.273-0.932-0.273c-0.565,0-1.014,0.179-1.347,0.537
+                       c-0.334,0.358-0.5,0.889-0.5,1.594c0,0.76,0.168,1.329,0.506,1.71c0.337,0.379,0.779,0.57,1.327,0.57
+                       c0.27,0,0.541-0.053,0.814-0.159c0.272-0.106,0.505-0.235,0.701-0.387v-0.812H533.583z"/>
+               <path fill="#231F20" d="M537.564,95.212v-6.401h2.72c0.684,0,1.182,0.058,1.491,0.173c0.31,0.115,0.558,0.319,0.744,0.613
+                       c0.186,0.294,0.279,0.63,0.279,1.009c0,0.48-0.141,0.877-0.423,1.19c-0.282,0.313-0.704,0.51-1.266,0.591
+                       c0.279,0.163,0.51,0.342,0.692,0.537c0.182,0.195,0.427,0.541,0.735,1.039l0.782,1.249h-1.546l-0.934-1.393
+                       c-0.332-0.498-0.559-0.811-0.681-0.941c-0.122-0.13-0.252-0.218-0.388-0.267c-0.138-0.048-0.354-0.072-0.651-0.072h-0.262v2.672
+                       H537.564z M538.857,91.519h0.956c0.621,0,1.007-0.026,1.162-0.079c0.153-0.052,0.275-0.143,0.362-0.271
+                       c0.087-0.128,0.131-0.288,0.131-0.48c0-0.215-0.057-0.389-0.173-0.522c-0.115-0.132-0.277-0.216-0.487-0.251
+                       c-0.105-0.015-0.419-0.022-0.943-0.022h-1.008V91.519z"/>
+               <path fill="#231F20" d="M543.979,95.212v-6.401h1.292v6.401H543.979z"/>
+               <path fill="#231F20" d="M546.174,93.13l1.257-0.122c0.076,0.422,0.229,0.732,0.461,0.93c0.231,0.198,0.543,0.297,0.936,0.297
+                       c0.416,0,0.73-0.088,0.941-0.264c0.211-0.176,0.316-0.382,0.316-0.618c0-0.151-0.045-0.28-0.133-0.386
+                       c-0.089-0.106-0.244-0.199-0.466-0.277c-0.151-0.052-0.496-0.146-1.034-0.279c-0.693-0.172-1.179-0.383-1.458-0.633
+                       c-0.393-0.352-0.589-0.782-0.589-1.288c0-0.326,0.092-0.631,0.276-0.915c0.185-0.283,0.451-0.5,0.799-0.648
+                       c0.347-0.148,0.767-0.223,1.259-0.223c0.803,0,1.408,0.176,1.814,0.528c0.406,0.352,0.619,0.822,0.639,1.41l-1.292,0.057
+                       c-0.055-0.329-0.174-0.566-0.356-0.709c-0.181-0.145-0.455-0.216-0.818-0.216c-0.376,0-0.67,0.077-0.883,0.231
+                       c-0.137,0.099-0.205,0.231-0.205,0.397c0,0.151,0.064,0.281,0.192,0.389c0.163,0.137,0.559,0.279,1.188,0.428
+                       c0.629,0.148,1.093,0.302,1.395,0.46c0.301,0.159,0.537,0.375,0.707,0.651c0.17,0.275,0.255,0.615,0.255,1.019
+                       c0,0.367-0.102,0.71-0.306,1.03c-0.204,0.32-0.492,0.558-0.865,0.714c-0.373,0.156-0.837,0.234-1.392,0.234
+                       c-0.81,0-1.431-0.187-1.865-0.561C546.518,94.391,546.259,93.846,546.174,93.13z"/>
+               <path fill="#231F20" d="M552.465,95.212v-6.401h4.746v1.083h-3.454v1.419h3.213v1.078h-3.213v1.742h3.576v1.078H552.465z"/>
+       </g>
+       <g>
+               <path fill="#231F20" d="M413.102,86.004v-6.348h1.292v5.27h3.213v1.078H413.102z"/>
+               <path fill="#231F20" d="M424.301,86.004h-1.407l-0.559-1.454h-2.558l-0.529,1.454h-1.371l2.493-6.401h1.366L424.301,86.004z
+                        M421.921,83.472l-0.882-2.375l-0.864,2.375H421.921z"/>
+               <path fill="#231F20" d="M429.083,83.651l1.253,0.397c-0.192,0.699-0.511,1.218-0.959,1.556c-0.446,0.34-1.014,0.509-1.701,0.509
+                       c-0.85,0-1.548-0.291-2.096-0.871c-0.547-0.581-0.821-1.375-0.821-2.382c0-1.065,0.276-1.893,0.826-2.482
+                       c0.55-0.59,1.273-0.884,2.17-0.884c0.782,0,1.418,0.231,1.907,0.694c0.291,0.274,0.509,0.667,0.655,1.179l-1.28,0.306
+                       c-0.076-0.332-0.233-0.594-0.473-0.786c-0.24-0.192-0.532-0.288-0.875-0.288c-0.474,0-0.86,0.17-1.155,0.511
+                       c-0.296,0.341-0.443,0.892-0.443,1.655c0,0.809,0.146,1.385,0.437,1.729s0.669,0.515,1.135,0.515c0.343,0,0.638-0.109,0.886-0.327
+                       C428.796,84.463,428.974,84.119,429.083,83.651z"/>
+               <path fill="#231F20" d="M433.963,86.004v-6.348h1.292v5.27h3.213v1.078H433.963z"/>
+               <path fill="#231F20" d="M445.163,86.004h-1.407l-0.559-1.454h-2.558l-0.529,1.454h-1.371l2.493-6.401h1.366L445.163,86.004z
+                        M442.783,83.472l-0.882-2.375l-0.864,2.375H442.783z"/>
+               <path fill="#231F20" d="M448.006,79.603h2.559c0.506,0,0.884,0.021,1.133,0.063c0.248,0.043,0.472,0.131,0.668,0.264
+                       c0.197,0.134,0.361,0.312,0.491,0.535c0.132,0.222,0.197,0.472,0.197,0.749c0,0.3-0.081,0.575-0.243,0.825
+                       c-0.161,0.25-0.38,0.438-0.657,0.563c0.39,0.114,0.69,0.307,0.899,0.581s0.314,0.595,0.314,0.965c0,0.291-0.068,0.574-0.203,0.849
+                       c-0.136,0.275-0.32,0.495-0.555,0.659c-0.234,0.165-0.523,0.266-0.866,0.304c-0.215,0.023-0.735,0.038-1.559,0.044h-2.178V79.603z
+                        M449.298,80.669v1.48h0.847c0.504,0,0.817-0.007,0.939-0.022c0.22-0.026,0.395-0.103,0.521-0.229
+                       c0.127-0.127,0.19-0.293,0.19-0.5c0-0.198-0.054-0.358-0.164-0.483c-0.109-0.123-0.272-0.198-0.487-0.225
+                       c-0.128-0.015-0.496-0.022-1.104-0.022H449.298z M449.298,83.214v1.711h1.196c0.466,0,0.761-0.013,0.887-0.039
+                       c0.192-0.035,0.348-0.12,0.469-0.255c0.121-0.136,0.181-0.317,0.181-0.544c0-0.192-0.047-0.355-0.14-0.489
+                       c-0.093-0.134-0.228-0.231-0.404-0.293c-0.177-0.061-0.559-0.092-1.147-0.092H449.298z"/>
+               <path fill="#231F20" d="M454.459,86.004v-6.401h4.746v1.083h-3.454v1.419h3.213v1.078h-3.213v1.742h3.576v1.078H454.459z"/>
+               <path fill="#231F20" d="M460.458,86.004v-6.348h1.292v5.27h3.213v1.078H460.458z"/>
+               <path fill="#231F20" d="M465.919,86.004v-6.348h1.292v5.27h3.213v1.078H465.919z"/>
+               <path fill="#231F20" d="M471.347,86.004v-6.401h4.746v1.083h-3.454v1.419h3.213v1.078h-3.213v1.742h3.576v1.078H471.347z"/>
+       </g>
+       <g>
+               <path fill="#231F20" d="M254.635,265.01l1.253,0.398c-0.192,0.699-0.512,1.218-0.959,1.556c-0.447,0.34-1.013,0.508-1.7,0.508
+                       c-0.85,0-1.548-0.29-2.096-0.87c-0.547-0.581-0.821-1.375-0.821-2.382c0-1.065,0.275-1.893,0.825-2.482
+                       c0.55-0.59,1.273-0.885,2.17-0.885c0.783,0,1.419,0.232,1.908,0.695c0.291,0.274,0.509,0.667,0.655,1.179l-1.279,0.306
+                       c-0.076-0.332-0.233-0.594-0.474-0.786c-0.24-0.192-0.532-0.288-0.875-0.288c-0.474,0-0.86,0.17-1.155,0.511
+                       c-0.296,0.34-0.443,0.892-0.443,1.654c0,0.809,0.146,1.385,0.437,1.729c0.291,0.343,0.669,0.515,1.135,0.515
+                       c0.343,0,0.639-0.109,0.886-0.328C254.349,265.823,254.527,265.48,254.635,265.01z"/>
+               <path fill="#231F20" d="M257.001,267.364v-6.401h1.292v2.52h2.532v-2.52h1.292v6.401h-1.292v-2.798h-2.532v2.798H257.001z"/>
+               <path fill="#231F20" d="M269.226,267.364h-1.406l-0.559-1.453h-2.559l-0.528,1.453h-1.371l2.493-6.401h1.367L269.226,267.364z
+                        M266.846,264.831l-0.882-2.375l-0.864,2.375H266.846z"/>
+               <path fill="#231F20" d="M269.584,265.282l1.257-0.122c0.076,0.422,0.229,0.732,0.461,0.93c0.231,0.198,0.543,0.297,0.936,0.297
+                       c0.416,0,0.73-0.088,0.941-0.264c0.211-0.177,0.316-0.382,0.316-0.618c0-0.151-0.045-0.28-0.133-0.386
+                       c-0.089-0.107-0.244-0.199-0.465-0.277c-0.151-0.052-0.496-0.146-1.035-0.279c-0.693-0.172-1.179-0.382-1.458-0.634
+                       c-0.393-0.351-0.589-0.781-0.589-1.288c0-0.326,0.092-0.631,0.277-0.915c0.185-0.283,0.451-0.5,0.799-0.648
+                       c0.347-0.148,0.767-0.223,1.259-0.223c0.803,0,1.408,0.177,1.814,0.529c0.406,0.352,0.619,0.823,0.639,1.41l-1.292,0.057
+                       c-0.055-0.329-0.174-0.566-0.356-0.709c-0.182-0.145-0.455-0.216-0.818-0.216c-0.375,0-0.669,0.078-0.882,0.232
+                       c-0.137,0.099-0.205,0.231-0.205,0.397c0,0.151,0.064,0.281,0.192,0.389c0.163,0.137,0.559,0.279,1.188,0.427
+                       c0.629,0.149,1.093,0.303,1.395,0.461c0.301,0.159,0.537,0.375,0.707,0.651c0.17,0.275,0.255,0.615,0.255,1.019
+                       c0,0.367-0.102,0.711-0.306,1.03c-0.204,0.321-0.492,0.559-0.864,0.714c-0.373,0.156-0.837,0.234-1.393,0.234
+                       c-0.809,0-1.431-0.187-1.864-0.561C269.927,266.542,269.668,265.998,269.584,265.282z"/>
+               <path fill="#231F20" d="M275.548,265.282l1.257-0.122c0.076,0.422,0.229,0.732,0.461,0.93c0.231,0.198,0.543,0.297,0.936,0.297
+                       c0.416,0,0.73-0.088,0.941-0.264c0.211-0.177,0.316-0.382,0.316-0.618c0-0.151-0.045-0.28-0.133-0.386
+                       c-0.089-0.107-0.244-0.199-0.465-0.277c-0.151-0.052-0.496-0.146-1.035-0.279c-0.693-0.172-1.179-0.382-1.458-0.634
+                       c-0.393-0.351-0.589-0.781-0.589-1.288c0-0.326,0.092-0.631,0.277-0.915c0.185-0.283,0.451-0.5,0.799-0.648
+                       c0.347-0.148,0.767-0.223,1.259-0.223c0.803,0,1.408,0.177,1.814,0.529c0.406,0.352,0.619,0.823,0.639,1.41l-1.292,0.057
+                       c-0.055-0.329-0.174-0.566-0.356-0.709c-0.182-0.145-0.455-0.216-0.818-0.216c-0.375,0-0.669,0.078-0.882,0.232
+                       c-0.137,0.099-0.205,0.231-0.205,0.397c0,0.151,0.064,0.281,0.192,0.389c0.163,0.137,0.559,0.279,1.188,0.427
+                       c0.629,0.149,1.093,0.303,1.395,0.461c0.301,0.159,0.537,0.375,0.707,0.651c0.17,0.275,0.255,0.615,0.255,1.019
+                       c0,0.367-0.102,0.711-0.306,1.03c-0.204,0.321-0.492,0.559-0.864,0.714c-0.373,0.156-0.837,0.234-1.393,0.234
+                       c-0.809,0-1.431-0.187-1.864-0.561C275.891,266.542,275.632,265.998,275.548,265.282z"/>
+               <path fill="#231F20" d="M281.839,267.364v-6.401h4.746v1.083h-3.454v1.419h3.213v1.078h-3.213v1.742h3.576v1.079H281.839z"/>
+               <path fill="#231F20" d="M287.838,267.364v-6.348h1.292v5.269h3.213v1.079H287.838z"/>
+               <path fill="#231F20" d="M293.3,267.364v-6.348h1.292v5.269h3.213v1.079H293.3z"/>
+       </g>
+       <g>
+               <path fill="#231F20" d="M193.953,291.091v-5.318h-1.899v-1.083h5.086v1.083h-1.895v5.318H193.953z"/>
+               <path fill="#231F20" d="M197.551,287.93c0-0.652,0.098-1.199,0.293-1.642c0.146-0.326,0.344-0.618,0.596-0.877
+                       c0.252-0.259,0.528-0.451,0.828-0.576c0.399-0.169,0.859-0.254,1.38-0.254c0.943,0,1.697,0.293,2.264,0.878
+                       s0.849,1.399,0.849,2.44c0,1.034-0.281,1.842-0.843,2.426c-0.562,0.584-1.313,0.875-2.253,0.875c-0.952,0-1.709-0.29-2.27-0.87
+                       C197.832,289.748,197.551,288.949,197.551,287.93z M198.883,287.886c0,0.725,0.167,1.274,0.502,1.648
+                       c0.335,0.374,0.76,0.561,1.275,0.561c0.515,0,0.938-0.185,1.269-0.557c0.33-0.371,0.495-0.928,0.495-1.67
+                       c0-0.733-0.161-1.281-0.483-1.642c-0.322-0.361-0.749-0.541-1.281-0.541c-0.533,0-0.962,0.182-1.288,0.548
+                       C199.046,286.599,198.883,287.15,198.883,287.886z"/>
+               <path fill="#231F20" d="M204.729,291.091v-6.401h1.292v6.401H204.729z"/>
+               <path fill="#231F20" d="M208.885,291.091l-2.288-6.401h1.402l1.62,4.738l1.567-4.738h1.371l-2.292,6.401H208.885z"/>
+               <path fill="#231F20" d="M212.954,287.93c0-0.652,0.098-1.199,0.293-1.642c0.146-0.326,0.344-0.618,0.596-0.877
+                       c0.252-0.259,0.528-0.451,0.828-0.576c0.399-0.169,0.859-0.254,1.38-0.254c0.943,0,1.697,0.293,2.264,0.878
+                       s0.849,1.399,0.849,2.44c0,1.034-0.281,1.842-0.843,2.426c-0.562,0.584-1.313,0.875-2.253,0.875c-0.952,0-1.709-0.29-2.27-0.87
+                       C213.235,289.748,212.954,288.949,212.954,287.93z M214.286,287.886c0,0.725,0.167,1.274,0.502,1.648
+                       c0.335,0.374,0.76,0.561,1.275,0.561c0.515,0,0.938-0.185,1.269-0.557c0.33-0.371,0.495-0.928,0.495-1.67
+                       c0-0.733-0.161-1.281-0.483-1.642c-0.322-0.361-0.749-0.541-1.281-0.541c-0.533,0-0.962,0.182-1.288,0.548
+                       C214.449,286.599,214.286,287.15,214.286,287.886z"/>
+               <path fill="#231F20" d="M220.206,291.091v-6.348h1.292v5.269h3.213v1.079H220.206z"/>
+               <path fill="#231F20" d="M231.405,291.091h-1.406l-0.559-1.453h-2.559l-0.528,1.453h-1.371l2.493-6.401h1.367L231.405,291.091z
+                        M229.026,288.558l-0.882-2.375l-0.864,2.375H229.026z"/>
+       </g>
+       <g>
+               <path fill="#231F20" d="M323.189,69.72v-6.401h4.746v1.083h-3.454v1.419h3.213v1.078h-3.213v1.742h3.576v1.078H323.189z"/>
+               <path fill="#231F20" d="M334.925,69.72h-1.406l-0.559-1.454h-2.559l-0.528,1.454h-1.371l2.493-6.401h1.367L334.925,69.72z
+                        M332.545,67.187l-0.882-2.375l-0.864,2.375H332.545z"/>
+               <path fill="#231F20" d="M338.588,67.366v-1.078h2.786v2.55c-0.271,0.262-0.663,0.493-1.176,0.692
+                       c-0.514,0.199-1.034,0.299-1.561,0.299c-0.669,0-1.253-0.14-1.751-0.422c-0.498-0.28-0.872-0.682-1.122-1.205
+                       c-0.25-0.522-0.375-1.091-0.375-1.705c0-0.667,0.14-1.259,0.419-1.777s0.688-0.915,1.227-1.192
+                       c0.41-0.212,0.921-0.319,1.532-0.319c0.795,0,1.415,0.167,1.862,0.5c0.447,0.333,0.734,0.794,0.863,1.382l-1.284,0.24
+                       c-0.09-0.314-0.26-0.562-0.508-0.745c-0.249-0.181-0.56-0.273-0.932-0.273c-0.565,0-1.014,0.179-1.347,0.537
+                       c-0.334,0.358-0.5,0.889-0.5,1.594c0,0.76,0.169,1.329,0.506,1.71c0.338,0.379,0.78,0.57,1.327,0.57
+                       c0.271,0,0.542-0.053,0.815-0.159c0.272-0.106,0.505-0.235,0.701-0.387v-0.812H338.588z"/>
+               <path fill="#231F20" d="M342.6,69.72v-6.348h1.292v5.27h3.213v1.078H342.6z"/>
+               <path fill="#231F20" d="M348.027,69.72v-6.401h4.746v1.083h-3.454v1.419h3.213v1.078h-3.213v1.742h3.576v1.078H348.027z"/>
+               <path fill="#231F20" d="M356.48,69.72v-6.401h2.72c0.684,0,1.181,0.058,1.491,0.173c0.31,0.115,0.558,0.319,0.745,0.613
+                       c0.186,0.294,0.279,0.63,0.279,1.009c0,0.48-0.141,0.877-0.424,1.19c-0.282,0.313-0.704,0.51-1.266,0.591
+                       c0.279,0.163,0.51,0.342,0.692,0.537s0.427,0.541,0.736,1.039l0.782,1.249h-1.546l-0.934-1.393
+                       c-0.332-0.498-0.559-0.811-0.681-0.941c-0.122-0.13-0.252-0.218-0.389-0.267c-0.137-0.048-0.354-0.072-0.651-0.072h-0.262v2.672
+                       H356.48z M357.772,66.026h0.956c0.62,0,1.007-0.026,1.161-0.079s0.275-0.143,0.362-0.271c0.087-0.128,0.131-0.288,0.131-0.48
+                       c0-0.215-0.058-0.389-0.173-0.522c-0.115-0.132-0.277-0.216-0.487-0.251c-0.105-0.015-0.419-0.022-0.943-0.022h-1.009V66.026z"/>
+               <path fill="#231F20" d="M362.894,69.72v-6.401h1.292v6.401H362.894z"/>
+               <path fill="#231F20" d="M367.05,69.72l-2.288-6.401h1.402l1.62,4.737l1.567-4.737h1.371l-2.292,6.401H367.05z"/>
+               <path fill="#231F20" d="M371.381,69.72v-6.401h4.746v1.083h-3.454v1.419h3.213v1.078h-3.213v1.742h3.576v1.078H371.381z"/>
+               <path fill="#231F20" d="M377.35,69.72v-6.401h2.719c0.685,0,1.182,0.058,1.492,0.173c0.31,0.115,0.557,0.319,0.743,0.613
+                       c0.186,0.294,0.279,0.63,0.279,1.009c0,0.48-0.14,0.877-0.423,1.19c-0.281,0.313-0.704,0.51-1.265,0.591
+                       c0.279,0.163,0.51,0.342,0.691,0.537c0.182,0.195,0.427,0.541,0.735,1.039l0.782,1.249h-1.545l-0.935-1.393
+                       c-0.332-0.498-0.559-0.811-0.681-0.941s-0.252-0.218-0.388-0.267c-0.138-0.048-0.353-0.072-0.65-0.072h-0.262v2.672H377.35z
+                        M378.643,66.026h0.955c0.621,0,1.007-0.026,1.162-0.079c0.153-0.052,0.276-0.143,0.363-0.271c0.087-0.128,0.13-0.288,0.13-0.48
+                       c0-0.215-0.056-0.389-0.173-0.522c-0.114-0.132-0.277-0.216-0.487-0.251c-0.105-0.015-0.419-0.022-0.943-0.022h-1.007V66.026z"/>
+       </g>
+       <g>
+               <path fill="#231F20" d="M358.959,45.537v-6.401h4.746v1.083h-3.454v1.419h3.213v1.078h-3.213v1.742h3.576v1.078H358.959z"/>
+               <path fill="#231F20" d="M370.695,45.537h-1.406l-0.559-1.454h-2.559l-0.528,1.454h-1.371l2.493-6.401h1.367L370.695,45.537z
+                        M368.316,43.005l-0.882-2.375l-0.864,2.375H368.316z"/>
+               <path fill="#231F20" d="M374.359,43.184v-1.078h2.785v2.55c-0.27,0.262-0.664,0.493-1.176,0.692
+                       c-0.514,0.199-1.034,0.299-1.562,0.299c-0.669,0-1.253-0.14-1.75-0.422c-0.498-0.28-0.872-0.682-1.122-1.205
+                       c-0.25-0.522-0.375-1.091-0.375-1.705c0-0.667,0.14-1.259,0.419-1.777c0.279-0.518,0.688-0.915,1.227-1.192
+                       c0.41-0.212,0.921-0.319,1.532-0.319c0.796,0,1.417,0.167,1.863,0.5c0.446,0.333,0.733,0.794,0.862,1.382l-1.283,0.24
+                       c-0.091-0.314-0.26-0.562-0.508-0.745c-0.25-0.181-0.561-0.273-0.933-0.273c-0.565,0-1.013,0.179-1.346,0.537
+                       c-0.334,0.358-0.5,0.889-0.5,1.594c0,0.76,0.169,1.329,0.506,1.71c0.338,0.379,0.779,0.57,1.328,0.57
+                       c0.27,0,0.541-0.053,0.813-0.159c0.272-0.106,0.506-0.235,0.701-0.387v-0.812H374.359z"/>
+               <path fill="#231F20" d="M378.37,45.537v-6.348h1.292v5.27h3.213v1.078H378.37z"/>
+               <path fill="#231F20" d="M383.798,45.537v-6.401h4.746v1.083h-3.454v1.419h3.213v1.078h-3.213v1.742h3.576v1.078H383.798z"/>
+               <path fill="#231F20" d="M392.252,45.537v-6.401h1.292v2.519h2.532v-2.519h1.292v6.401h-1.292v-2.799h-2.532v2.799H392.252z"/>
+               <path fill="#231F20" d="M404.477,45.537h-1.407l-0.559-1.454h-2.558l-0.529,1.454h-1.371l2.493-6.401h1.366L404.477,45.537z
+                        M402.097,43.005l-0.882-2.375l-0.864,2.375H402.097z"/>
+               <path fill="#231F20" d="M405.167,45.537v-6.401h2.72c0.684,0,1.182,0.058,1.491,0.173c0.31,0.115,0.558,0.319,0.744,0.613
+                       s0.279,0.63,0.279,1.009c0,0.48-0.141,0.877-0.423,1.19c-0.282,0.313-0.704,0.51-1.266,0.591c0.279,0.163,0.51,0.342,0.692,0.537
+                       c0.182,0.195,0.427,0.541,0.735,1.039l0.782,1.249h-1.546l-0.934-1.393c-0.332-0.498-0.559-0.811-0.681-0.941
+                       c-0.122-0.13-0.252-0.218-0.388-0.267c-0.138-0.048-0.354-0.072-0.651-0.072h-0.262v2.672H405.167z M406.46,41.843h0.956
+                       c0.621,0,1.007-0.026,1.162-0.079c0.153-0.052,0.275-0.143,0.362-0.271c0.087-0.128,0.131-0.288,0.131-0.48
+                       c0-0.215-0.057-0.389-0.173-0.522c-0.115-0.132-0.277-0.216-0.487-0.251c-0.105-0.015-0.419-0.022-0.943-0.022h-1.008V41.843z"/>
+               <path fill="#231F20" d="M411.625,39.136h2.559c0.506,0,0.884,0.021,1.133,0.063c0.248,0.043,0.472,0.13,0.668,0.264
+                       c0.197,0.134,0.361,0.312,0.491,0.535c0.132,0.222,0.197,0.472,0.197,0.749c0,0.3-0.081,0.575-0.243,0.825
+                       c-0.161,0.25-0.38,0.438-0.657,0.563c0.39,0.114,0.69,0.307,0.899,0.581s0.314,0.595,0.314,0.965c0,0.291-0.068,0.574-0.203,0.849
+                       c-0.136,0.275-0.32,0.495-0.555,0.659c-0.234,0.165-0.523,0.266-0.866,0.304c-0.215,0.023-0.735,0.038-1.559,0.044h-2.178V39.136z
+                        M412.917,40.202v1.48h0.847c0.504,0,0.817-0.007,0.939-0.022c0.22-0.026,0.395-0.103,0.521-0.229
+                       c0.127-0.127,0.19-0.293,0.19-0.5c0-0.198-0.054-0.358-0.164-0.483c-0.109-0.123-0.272-0.198-0.487-0.225
+                       c-0.128-0.015-0.496-0.022-1.104-0.022H412.917z M412.917,42.747v1.711h1.196c0.466,0,0.761-0.013,0.887-0.039
+                       c0.192-0.035,0.348-0.12,0.469-0.255c0.121-0.136,0.181-0.317,0.181-0.544c0-0.192-0.047-0.355-0.14-0.489
+                       s-0.228-0.231-0.404-0.293c-0.177-0.061-0.559-0.092-1.147-0.092H412.917z"/>
+               <path fill="#231F20" d="M417.816,42.376c0-0.652,0.098-1.199,0.293-1.642c0.146-0.326,0.344-0.619,0.596-0.878
+                       c0.252-0.259,0.528-0.451,0.828-0.576c0.399-0.169,0.859-0.253,1.38-0.253c0.943,0,1.698,0.293,2.264,0.878
+                       c0.567,0.585,0.85,1.399,0.85,2.441c0,1.033-0.281,1.842-0.843,2.425c-0.562,0.584-1.313,0.876-2.253,0.876
+                       c-0.952,0-1.709-0.291-2.27-0.871C418.098,44.194,417.816,43.395,417.816,42.376z M419.148,42.332
+                       c0,0.725,0.167,1.274,0.502,1.648c0.335,0.374,0.761,0.561,1.275,0.561c0.516,0,0.938-0.185,1.269-0.557
+                       c0.33-0.371,0.495-0.928,0.495-1.67c0-0.733-0.16-1.281-0.482-1.642c-0.321-0.361-0.748-0.541-1.282-0.541
+                       c-0.532,0-0.962,0.183-1.288,0.548C419.311,41.045,419.148,41.596,419.148,42.332z"/>
+               <path fill="#231F20" d="M425.038,45.537v-6.401h2.72c0.684,0,1.182,0.058,1.491,0.173c0.31,0.115,0.558,0.319,0.744,0.613
+                       c0.186,0.294,0.279,0.63,0.279,1.009c0,0.48-0.141,0.877-0.423,1.19c-0.282,0.313-0.704,0.51-1.266,0.591
+                       c0.279,0.163,0.51,0.342,0.692,0.537c0.182,0.195,0.427,0.541,0.735,1.039l0.782,1.249h-1.546l-0.934-1.393
+                       c-0.332-0.498-0.559-0.811-0.681-0.941c-0.122-0.13-0.252-0.218-0.388-0.267c-0.138-0.048-0.354-0.072-0.651-0.072h-0.262v2.672
+                       H425.038z M426.33,41.843h0.956c0.621,0,1.007-0.026,1.162-0.079c0.153-0.052,0.275-0.143,0.362-0.271
+                       c0.087-0.128,0.131-0.288,0.131-0.48c0-0.215-0.057-0.389-0.173-0.522c-0.114-0.132-0.277-0.216-0.487-0.251
+                       c-0.105-0.015-0.419-0.022-0.943-0.022h-1.008V41.843z"/>
+       </g>
+       <g>
+               <g>
+                       <path fill="#231F20" d="M526.919,34.508l1.253,0.397c-0.192,0.699-0.511,1.218-0.959,1.556c-0.446,0.34-1.014,0.509-1.701,0.509
+                               c-0.85,0-1.549-0.291-2.096-0.871c-0.547-0.581-0.821-1.375-0.821-2.382c0-1.065,0.276-1.893,0.826-2.482
+                               c0.55-0.59,1.273-0.884,2.17-0.884c0.782,0,1.419,0.231,1.907,0.694c0.291,0.274,0.509,0.667,0.655,1.179l-1.28,0.306
+                               c-0.076-0.332-0.233-0.594-0.473-0.786c-0.24-0.192-0.532-0.288-0.875-0.288c-0.474,0-0.86,0.17-1.155,0.511
+                               c-0.296,0.341-0.443,0.892-0.443,1.655c0,0.809,0.146,1.385,0.437,1.729c0.291,0.343,0.669,0.515,1.135,0.515
+                               c0.343,0,0.638-0.109,0.886-0.327C526.633,35.32,526.81,34.977,526.919,34.508z"/>
+                       <path fill="#231F20" d="M529.018,33.701c0-0.652,0.098-1.199,0.293-1.642c0.146-0.326,0.344-0.619,0.596-0.878
+                               c0.252-0.259,0.528-0.451,0.828-0.576c0.399-0.169,0.859-0.253,1.38-0.253c0.943,0,1.698,0.293,2.264,0.878
+                               c0.567,0.585,0.85,1.399,0.85,2.441c0,1.033-0.281,1.842-0.843,2.425c-0.562,0.584-1.313,0.876-2.253,0.876
+                               c-0.952,0-1.709-0.291-2.27-0.871C529.3,35.519,529.018,34.719,529.018,33.701z M530.351,33.657c0,0.725,0.167,1.274,0.502,1.648
+                               c0.335,0.374,0.761,0.561,1.275,0.561c0.516,0,0.938-0.185,1.269-0.557c0.33-0.371,0.495-0.928,0.495-1.67
+                               c0-0.733-0.16-1.281-0.482-1.642c-0.321-0.361-0.748-0.541-1.282-0.541c-0.532,0-0.961,0.183-1.288,0.548
+                               C530.514,32.37,530.351,32.921,530.351,33.657z"/>
+                       <path fill="#231F20" d="M536.235,36.862v-6.401h2.074c0.786,0,1.298,0.032,1.537,0.096c0.367,0.096,0.673,0.305,0.922,0.627
+                               c0.246,0.322,0.371,0.737,0.371,1.246c0,0.393-0.072,0.723-0.214,0.991c-0.144,0.268-0.324,0.478-0.544,0.631
+                               c-0.219,0.153-0.443,0.254-0.67,0.304c-0.309,0.061-0.755,0.092-1.34,0.092h-0.843v2.414H536.235z M537.527,31.544v1.816h0.708
+                               c0.508,0,0.849-0.033,1.021-0.1c0.172-0.067,0.307-0.172,0.405-0.314c0.097-0.143,0.146-0.309,0.146-0.498
+                               c0-0.233-0.069-0.425-0.206-0.576c-0.137-0.151-0.31-0.246-0.52-0.284c-0.154-0.029-0.464-0.044-0.929-0.044H537.527z"/>
+                       <path fill="#231F20" d="M542.199,36.862v-6.401h2.074c0.786,0,1.298,0.032,1.537,0.096c0.367,0.096,0.673,0.305,0.922,0.627
+                               c0.246,0.322,0.371,0.737,0.371,1.246c0,0.393-0.072,0.723-0.213,0.991c-0.144,0.268-0.324,0.478-0.544,0.631
+                               c-0.219,0.153-0.443,0.254-0.67,0.304c-0.309,0.061-0.755,0.092-1.34,0.092h-0.843v2.414H542.199z M543.491,31.544v1.816h0.708
+                               c0.508,0,0.849-0.033,1.021-0.1c0.172-0.067,0.307-0.172,0.405-0.314c0.097-0.143,0.146-0.309,0.146-0.498
+                               c0-0.233-0.069-0.425-0.206-0.576c-0.137-0.151-0.31-0.246-0.52-0.284c-0.154-0.029-0.464-0.044-0.93-0.044H543.491z"/>
+                       <path fill="#231F20" d="M548.163,36.862v-6.401h4.746v1.083h-3.454v1.419h3.213v1.078h-3.213v1.742h3.576v1.078H548.163z"/>
+                       <path fill="#231F20" d="M554.132,36.862v-6.401h2.72c0.684,0,1.182,0.058,1.491,0.173c0.31,0.115,0.558,0.319,0.744,0.613
+                               c0.186,0.294,0.279,0.63,0.279,1.009c0,0.48-0.141,0.877-0.423,1.19c-0.282,0.313-0.704,0.51-1.266,0.591
+                               c0.279,0.163,0.51,0.342,0.692,0.537c0.182,0.195,0.427,0.541,0.735,1.039l0.782,1.249h-1.546l-0.934-1.393
+                               c-0.332-0.498-0.559-0.811-0.681-0.941c-0.122-0.13-0.252-0.218-0.388-0.267c-0.138-0.048-0.354-0.072-0.651-0.072h-0.262v2.672
+                               H554.132z M555.424,33.168h0.956c0.621,0,1.007-0.026,1.162-0.079c0.153-0.052,0.275-0.143,0.362-0.271
+                               c0.087-0.128,0.131-0.288,0.131-0.48c0-0.215-0.057-0.389-0.173-0.522c-0.115-0.132-0.277-0.216-0.487-0.251
+                               c-0.105-0.015-0.419-0.022-0.943-0.022h-1.008V33.168z"/>
+                       <path fill="#231F20" d="M563.073,36.862v-6.401h1.292v2.519h2.532v-2.519h1.292v6.401h-1.292v-2.799h-2.532v2.799H563.073z"/>
+                       <path fill="#231F20" d="M575.299,36.862h-1.407l-0.559-1.454h-2.558l-0.529,1.454h-1.371l2.493-6.401h1.366L575.299,36.862z
+                                M572.919,34.329l-0.882-2.375l-0.864,2.375H572.919z"/>
+                       <path fill="#231F20" d="M575.988,36.862v-6.401h2.72c0.684,0,1.182,0.058,1.491,0.173c0.31,0.115,0.558,0.319,0.744,0.613
+                               c0.186,0.294,0.279,0.63,0.279,1.009c0,0.48-0.141,0.877-0.423,1.19c-0.282,0.313-0.704,0.51-1.266,0.591
+                               c0.279,0.163,0.51,0.342,0.692,0.537c0.182,0.195,0.427,0.541,0.735,1.039l0.782,1.249h-1.546l-0.934-1.393
+                               c-0.332-0.498-0.559-0.811-0.681-0.941c-0.122-0.13-0.252-0.218-0.388-0.267c-0.138-0.048-0.354-0.072-0.651-0.072h-0.262v2.672
+                               H575.988z M577.281,33.168h0.956c0.621,0,1.007-0.026,1.162-0.079c0.153-0.052,0.275-0.143,0.362-0.271
+                               c0.087-0.128,0.131-0.288,0.131-0.48c0-0.215-0.057-0.389-0.173-0.522c-0.115-0.132-0.277-0.216-0.487-0.251
+                               c-0.105-0.015-0.419-0.022-0.943-0.022h-1.008V33.168z"/>
+                       <path fill="#231F20" d="M582.446,30.461h2.558c0.506,0,0.884,0.021,1.133,0.063c0.248,0.043,0.472,0.13,0.668,0.264
+                               c0.197,0.134,0.361,0.312,0.491,0.535c0.132,0.222,0.197,0.472,0.197,0.749c0,0.3-0.081,0.575-0.243,0.825
+                               c-0.161,0.25-0.38,0.438-0.657,0.563c0.39,0.114,0.69,0.307,0.899,0.581c0.21,0.274,0.314,0.595,0.314,0.965
+                               c0,0.291-0.068,0.574-0.203,0.849c-0.136,0.275-0.32,0.495-0.555,0.659c-0.234,0.165-0.523,0.266-0.866,0.304
+                               c-0.215,0.023-0.735,0.038-1.559,0.044h-2.178V30.461z M583.739,31.526v1.48h0.847c0.504,0,0.817-0.007,0.939-0.022
+                               c0.22-0.026,0.395-0.103,0.521-0.229c0.127-0.127,0.19-0.293,0.19-0.5c0-0.198-0.054-0.358-0.164-0.483
+                               c-0.109-0.123-0.272-0.198-0.487-0.225c-0.128-0.015-0.496-0.022-1.104-0.022H583.739z M583.739,34.072v1.711h1.196
+                               c0.466,0,0.761-0.013,0.887-0.039c0.192-0.035,0.348-0.12,0.469-0.255c0.121-0.136,0.181-0.317,0.181-0.544
+                               c0-0.192-0.047-0.355-0.14-0.489s-0.228-0.231-0.404-0.293c-0.177-0.061-0.559-0.092-1.147-0.092H583.739z"/>
+                       <path fill="#231F20" d="M588.637,33.701c0-0.652,0.098-1.199,0.293-1.642c0.146-0.326,0.344-0.619,0.596-0.878
+                               c0.252-0.259,0.528-0.451,0.828-0.576c0.399-0.169,0.859-0.253,1.38-0.253c0.943,0,1.698,0.293,2.264,0.878
+                               c0.567,0.585,0.85,1.399,0.85,2.441c0,1.033-0.281,1.842-0.843,2.425c-0.562,0.584-1.313,0.876-2.253,0.876
+                               c-0.952,0-1.709-0.291-2.27-0.871C588.919,35.519,588.637,34.719,588.637,33.701z M589.969,33.657
+                               c0,0.725,0.167,1.274,0.502,1.648c0.335,0.374,0.761,0.561,1.275,0.561c0.516,0,0.938-0.185,1.269-0.557
+                               c0.33-0.371,0.495-0.928,0.495-1.67c0-0.733-0.16-1.281-0.482-1.642c-0.321-0.361-0.748-0.541-1.282-0.541
+                               c-0.532,0-0.962,0.183-1.288,0.548C590.133,32.37,589.969,32.921,589.969,33.657z"/>
+                       <path fill="#231F20" d="M595.859,36.862v-6.401h2.72c0.684,0,1.182,0.058,1.491,0.173c0.31,0.115,0.558,0.319,0.744,0.613
+                               c0.186,0.294,0.279,0.63,0.279,1.009c0,0.48-0.141,0.877-0.423,1.19s-0.704,0.51-1.266,0.591c0.279,0.163,0.51,0.342,0.692,0.537
+                               c0.182,0.195,0.427,0.541,0.735,1.039l0.782,1.249h-1.546l-0.934-1.393c-0.332-0.498-0.559-0.811-0.681-0.941
+                               c-0.122-0.13-0.252-0.218-0.388-0.267c-0.138-0.048-0.354-0.072-0.651-0.072h-0.262v2.672H595.859z M597.151,33.168h0.956
+                               c0.621,0,1.007-0.026,1.162-0.079c0.153-0.052,0.275-0.143,0.362-0.271c0.087-0.128,0.131-0.288,0.131-0.48
+                               c0-0.215-0.057-0.389-0.173-0.522c-0.115-0.132-0.277-0.216-0.487-0.251c-0.105-0.015-0.419-0.022-0.943-0.022h-1.008V33.168z"/>
+               </g>
+       </g>
+       <g>
+               <path fill="#231F20" d="M274.719,207.659v-6.401h1.292v2.52h2.532v-2.52h1.292v6.401h-1.292v-2.798h-2.532v2.798H274.719z"/>
+               <path fill="#231F20" d="M286.944,207.659h-1.406l-0.559-1.453h-2.559l-0.528,1.453h-1.371l2.493-6.401h1.367L286.944,207.659z
+                        M284.564,205.127l-0.882-2.375l-0.864,2.375H284.564z"/>
+               <path fill="#231F20" d="M287.642,207.659v-6.401h1.257l2.62,4.274v-4.274h1.201v6.401h-1.297l-2.58-4.174v4.174H287.642z"/>
+               <path fill="#231F20" d="M298.182,205.306l1.253,0.398c-0.192,0.699-0.512,1.218-0.959,1.556c-0.447,0.34-1.013,0.508-1.7,0.508
+                       c-0.85,0-1.548-0.29-2.096-0.87c-0.547-0.581-0.821-1.375-0.821-2.382c0-1.065,0.275-1.893,0.825-2.482
+                       c0.55-0.59,1.273-0.885,2.17-0.885c0.783,0,1.419,0.232,1.908,0.695c0.291,0.274,0.509,0.667,0.655,1.179l-1.279,0.306
+                       c-0.076-0.332-0.233-0.594-0.474-0.786c-0.24-0.192-0.532-0.288-0.875-0.288c-0.474,0-0.86,0.17-1.155,0.511
+                       c-0.296,0.34-0.443,0.892-0.443,1.654c0,0.809,0.146,1.385,0.437,1.729c0.291,0.343,0.669,0.515,1.135,0.515
+                       c0.343,0,0.639-0.109,0.886-0.328C297.897,206.119,298.074,205.775,298.182,205.306z"/>
+               <path fill="#231F20" d="M300.282,204.498c0-0.652,0.098-1.199,0.293-1.642c0.146-0.326,0.344-0.618,0.596-0.877
+                       s0.528-0.451,0.828-0.576c0.399-0.169,0.859-0.254,1.38-0.254c0.943,0,1.697,0.293,2.264,0.878
+                       c0.566,0.585,0.849,1.399,0.849,2.44c0,1.034-0.281,1.842-0.843,2.426c-0.562,0.584-1.313,0.875-2.253,0.875
+                       c-0.952,0-1.709-0.29-2.27-0.87C300.563,206.317,300.282,205.517,300.282,204.498z M301.614,204.455
+                       c0,0.725,0.167,1.274,0.502,1.648c0.335,0.374,0.76,0.561,1.275,0.561c0.515,0,0.938-0.185,1.269-0.557
+                       c0.33-0.371,0.495-0.928,0.495-1.67c0-0.733-0.161-1.281-0.483-1.642c-0.322-0.361-0.749-0.541-1.281-0.541
+                       c-0.533,0-0.962,0.182-1.288,0.548C301.777,203.167,301.614,203.718,301.614,204.455z"/>
+               <path fill="#231F20" d="M311.595,205.306l1.253,0.398c-0.192,0.699-0.512,1.218-0.959,1.556c-0.447,0.34-1.013,0.508-1.7,0.508
+                       c-0.85,0-1.548-0.29-2.096-0.87c-0.547-0.581-0.821-1.375-0.821-2.382c0-1.065,0.275-1.893,0.825-2.482
+                       c0.55-0.59,1.273-0.885,2.17-0.885c0.783,0,1.419,0.232,1.908,0.695c0.291,0.274,0.509,0.667,0.655,1.179l-1.279,0.306
+                       c-0.076-0.332-0.233-0.594-0.474-0.786c-0.24-0.192-0.532-0.288-0.875-0.288c-0.474,0-0.86,0.17-1.155,0.511
+                       c-0.296,0.34-0.443,0.892-0.443,1.654c0,0.809,0.146,1.385,0.437,1.729c0.291,0.343,0.669,0.515,1.135,0.515
+                       c0.343,0,0.639-0.109,0.886-0.328C311.309,206.119,311.487,205.775,311.595,205.306z"/>
+               <path fill="#231F20" d="M313.974,207.659v-6.401h1.292v2.842l2.611-2.842h1.738l-2.41,2.493l2.541,3.908h-1.672l-1.76-3.004
+                       l-1.048,1.069v1.935H313.974z"/>
+       </g>
+       <g>
+               <path fill="#231F20" d="M247.067,230.239v-6.401h1.292v2.52h2.532v-2.52h1.292v6.401h-1.292v-2.798h-2.532v2.798H247.067z"/>
+               <path fill="#231F20" d="M253.258,227.078c0-0.652,0.098-1.199,0.293-1.642c0.146-0.326,0.344-0.618,0.596-0.877
+                       c0.252-0.259,0.528-0.451,0.828-0.576c0.399-0.169,0.859-0.254,1.38-0.254c0.943,0,1.697,0.293,2.264,0.878
+                       s0.849,1.399,0.849,2.44c0,1.034-0.281,1.842-0.843,2.426c-0.562,0.584-1.313,0.875-2.253,0.875c-0.952,0-1.709-0.29-2.27-0.87
+                       C253.539,228.896,253.258,228.096,253.258,227.078z M254.59,227.034c0,0.725,0.167,1.274,0.502,1.648
+                       c0.335,0.374,0.76,0.561,1.275,0.561s0.938-0.185,1.269-0.557c0.33-0.371,0.495-0.928,0.495-1.67c0-0.733-0.161-1.281-0.483-1.642
+                       c-0.322-0.361-0.749-0.541-1.281-0.541c-0.533,0-0.962,0.182-1.288,0.548C254.753,225.747,254.59,226.298,254.59,227.034z"/>
+               <path fill="#231F20" d="M260.466,223.838h1.292v3.467c0,0.55,0.016,0.907,0.048,1.069c0.055,0.262,0.187,0.473,0.395,0.632
+                       c0.208,0.158,0.493,0.238,0.854,0.238c0.367,0,0.643-0.075,0.83-0.225c0.186-0.149,0.298-0.334,0.336-0.552
+                       c0.038-0.218,0.057-0.581,0.057-1.088v-3.54h1.292v3.362c0,0.768-0.035,1.312-0.105,1.628c-0.07,0.318-0.199,0.586-0.386,0.803
+                       c-0.188,0.219-0.439,0.393-0.753,0.522c-0.314,0.13-0.725,0.194-1.231,0.194c-0.611,0-1.075-0.07-1.391-0.212
+                       c-0.316-0.141-0.565-0.324-0.749-0.55c-0.183-0.225-0.304-0.462-0.362-0.709c-0.084-0.367-0.127-0.908-0.127-1.624V223.838z"/>
+               <path fill="#231F20" d="M269.91,227.885v-1.078h2.786v2.55c-0.271,0.262-0.663,0.493-1.176,0.692
+                       c-0.514,0.2-1.034,0.299-1.561,0.299c-0.669,0-1.253-0.14-1.751-0.421c-0.498-0.28-0.872-0.682-1.122-1.205
+                       c-0.25-0.522-0.375-1.091-0.375-1.705c0-0.667,0.14-1.258,0.419-1.777c0.279-0.518,0.688-0.916,1.227-1.192
+                       c0.41-0.212,0.921-0.319,1.532-0.319c0.795,0,1.415,0.167,1.862,0.501c0.447,0.333,0.734,0.794,0.863,1.382l-1.284,0.241
+                       c-0.09-0.314-0.26-0.563-0.508-0.745c-0.249-0.181-0.56-0.273-0.932-0.273c-0.565,0-1.014,0.179-1.347,0.537
+                       c-0.334,0.359-0.5,0.89-0.5,1.594c0,0.76,0.169,1.329,0.506,1.71c0.338,0.379,0.78,0.57,1.327,0.57
+                       c0.271,0,0.542-0.053,0.815-0.159c0.272-0.107,0.505-0.235,0.701-0.386v-0.813H269.91z"/>
+               <path fill="#231F20" d="M273.892,230.239v-6.401h1.292v2.52h2.532v-2.52h1.292v6.401h-1.292v-2.798h-2.532v2.798H273.892z"/>
+               <path fill="#231F20" d="M281.786,230.239v-5.318h-1.899v-1.083h5.086v1.083h-1.895v5.318H281.786z"/>
+               <path fill="#231F20" d="M285.545,227.078c0-0.652,0.098-1.199,0.293-1.642c0.146-0.326,0.344-0.618,0.596-0.877
+                       c0.252-0.259,0.528-0.451,0.828-0.576c0.399-0.169,0.859-0.254,1.38-0.254c0.943,0,1.697,0.293,2.264,0.878
+                       s0.849,1.399,0.849,2.44c0,1.034-0.281,1.842-0.843,2.426c-0.562,0.584-1.313,0.875-2.253,0.875c-0.952,0-1.709-0.29-2.27-0.87
+                       C285.826,228.896,285.545,228.096,285.545,227.078z M286.876,227.034c0,0.725,0.167,1.274,0.502,1.648
+                       c0.335,0.374,0.76,0.561,1.275,0.561s0.938-0.185,1.269-0.557c0.33-0.371,0.495-0.928,0.495-1.67c0-0.733-0.161-1.281-0.483-1.642
+                       c-0.322-0.361-0.749-0.541-1.281-0.541s-0.962,0.182-1.288,0.548C287.039,225.747,286.876,226.298,286.876,227.034z"/>
+               <path fill="#231F20" d="M292.775,230.239v-6.401h1.257l2.62,4.274v-4.274h1.201v6.401h-1.297l-2.58-4.174v4.174H292.775z"/>
+       </g>
+       <path fill="#231F20" d="M383.502,71.798c-1.041,0-1.888,0.847-1.888,1.888c0,1.041,0.847,1.887,1.888,1.887
+               c1.04,0,1.886-0.847,1.886-1.887C385.388,72.646,384.542,71.798,383.502,71.798"/>
+       <path fill="#231F20" d="M479.871,83.996c-1.043,0-1.889,0.847-1.889,1.888c0,1.041,0.847,1.887,1.889,1.887
+               c1.04,0,1.885-0.846,1.885-1.887C481.756,84.843,480.911,83.996,479.871,83.996"/>
+       <path fill="#231F20" d="M502.778,83.34c-1.041,0-1.886,0.847-1.886,1.888c0,1.041,0.845,1.887,1.886,1.887s1.888-0.846,1.888-1.887
+               C504.666,84.187,503.819,83.34,502.778,83.34"/>
+       <path fill="#231F20" d="M331.185,151.591c0-1.371-1.43-2.416-2.879-1.723c-0.344,0.165-0.629,0.45-0.793,0.794
+               c-0.689,1.448,0.356,2.874,1.726,2.874C330.313,153.537,331.185,152.664,331.185,151.591"/>
+       <path fill="#231F20" d="M287.365,211.648c0-1.372-1.429-2.417-2.877-1.726c-0.344,0.164-0.629,0.45-0.794,0.794
+               c-0.692,1.448,0.353,2.877,1.726,2.877C286.492,213.593,287.365,212.72,287.365,211.648"/>
+       <path fill="#231F20" d="M341.347,166.533c0-1.072-0.873-1.944-1.945-1.944c-1.072,0-1.945,0.872-1.945,1.944
+               c0,1.073,0.873,1.945,1.945,1.945C340.475,168.478,341.347,167.606,341.347,166.533"/>
+       <path fill="#231F20" d="M300.912,262.557c-1.413,0-2.489,1.471-1.776,2.962c0.17,0.355,0.465,0.65,0.821,0.819
+               c1.49,0.708,2.957-0.367,2.957-1.779C302.914,263.455,302.016,262.557,300.912,262.557"/>
+       <path fill="#231F20" d="M287.004,217.64c-1.413,0-2.488,1.47-1.777,2.961c0.17,0.356,0.464,0.651,0.82,0.82
+               c1.49,0.711,2.959-0.366,2.959-1.779C289.006,218.538,288.108,217.64,287.004,217.64"/>
+       <path fill="#231F20" d="M524.868,39.389c-1.041,0-1.889,0.847-1.889,1.888s0.848,1.887,1.889,1.887c1.04,0,1.885-0.847,1.885-1.887
+               S525.908,39.389,524.868,39.389"/>
+       <path fill="#231F20" d="M212.538,278.084c-1.412,0-2.487,1.471-1.778,2.96c0.169,0.356,0.464,0.65,0.82,0.819
+               c1.491,0.711,2.96-0.365,2.96-1.776C214.54,278.983,213.642,278.084,212.538,278.084"/>
+       <path fill="#231F20" d="M430.704,47.618c-1.041,0-1.887,0.846-1.887,1.887c0,1.042,0.846,1.888,1.887,1.888
+               c1.04,0,1.886-0.846,1.886-1.888C432.59,48.464,431.744,47.618,430.704,47.618"/>
+       <g>
+               <path fill="#231F20" d="M343.314,169.626v-6.348h1.292v5.27h3.213v1.078H343.314z"/>
+               <path fill="#231F20" d="M354.513,169.626h-1.406l-0.559-1.454h-2.559l-0.528,1.454h-1.371l2.493-6.401h1.367L354.513,169.626z
+                        M352.134,167.094l-0.882-2.375l-0.864,2.375H352.134z"/>
+               <path fill="#231F20" d="M355.19,163.226h1.292v3.467c0,0.55,0.016,0.907,0.048,1.07c0.055,0.262,0.187,0.473,0.395,0.631
+                       c0.208,0.159,0.493,0.238,0.854,0.238c0.367,0,0.643-0.075,0.83-0.225c0.186-0.149,0.298-0.334,0.336-0.552
+                       s0.057-0.581,0.057-1.087v-3.541h1.292v3.362c0,0.768-0.035,1.311-0.105,1.629c-0.07,0.317-0.199,0.585-0.386,0.803
+                       c-0.188,0.218-0.439,0.392-0.753,0.521c-0.314,0.13-0.725,0.195-1.231,0.195c-0.611,0-1.075-0.071-1.391-0.212
+                       c-0.316-0.141-0.565-0.324-0.749-0.55c-0.183-0.225-0.304-0.462-0.362-0.709c-0.084-0.367-0.127-0.908-0.127-1.624V163.226z"/>
+               <path fill="#231F20" d="M361.661,169.626v-6.401h2.72c0.684,0,1.181,0.058,1.491,0.173c0.31,0.115,0.558,0.319,0.745,0.613
+                       c0.186,0.294,0.279,0.63,0.279,1.009c0,0.48-0.141,0.877-0.423,1.19s-0.704,0.51-1.266,0.591c0.279,0.163,0.51,0.342,0.692,0.537
+                       c0.182,0.195,0.427,0.541,0.736,1.039l0.782,1.249h-1.546l-0.934-1.393c-0.332-0.498-0.559-0.811-0.681-0.941
+                       c-0.122-0.13-0.252-0.218-0.389-0.267c-0.137-0.048-0.354-0.072-0.651-0.072h-0.262v2.672H361.661z M362.953,165.933h0.956
+                       c0.62,0,1.007-0.026,1.161-0.079c0.154-0.052,0.275-0.143,0.362-0.271c0.087-0.128,0.131-0.288,0.131-0.48
+                       c0-0.215-0.058-0.389-0.173-0.522c-0.115-0.132-0.277-0.216-0.487-0.251c-0.105-0.015-0.419-0.022-0.943-0.022h-1.009V165.933z"/>
+               <path fill="#231F20" d="M368.074,169.626v-6.401h1.292v6.401H368.074z"/>
+               <path fill="#231F20" d="M370.589,163.226h1.292v3.467c0,0.55,0.016,0.907,0.048,1.07c0.055,0.262,0.187,0.473,0.395,0.631
+                       c0.208,0.159,0.493,0.238,0.854,0.238c0.367,0,0.643-0.075,0.83-0.225c0.186-0.149,0.298-0.334,0.336-0.552
+                       s0.057-0.581,0.057-1.087v-3.541h1.292v3.362c0,0.768-0.035,1.311-0.105,1.629c-0.07,0.317-0.199,0.585-0.386,0.803
+                       c-0.188,0.218-0.439,0.392-0.753,0.521c-0.314,0.13-0.725,0.195-1.231,0.195c-0.611,0-1.075-0.071-1.391-0.212
+                       c-0.316-0.141-0.565-0.324-0.749-0.55c-0.183-0.225-0.304-0.462-0.362-0.709c-0.084-0.367-0.127-0.908-0.127-1.624V163.226z"/>
+               <path fill="#231F20" d="M377.038,169.626v-6.401h1.934l1.161,4.366l1.148-4.366h1.939v6.401h-1.201v-5.038l-1.271,5.038h-1.244
+                       l-1.266-5.038v5.038H377.038z"/>
+       </g>
+       <g>
+               <path fill="#231F20" d="M306.498,145.516l1.253,0.397c-0.192,0.699-0.512,1.218-0.959,1.556c-0.447,0.34-1.013,0.509-1.7,0.509
+                       c-0.85,0-1.548-0.291-2.096-0.871c-0.547-0.581-0.821-1.375-0.821-2.382c0-1.065,0.275-1.893,0.825-2.482
+                       c0.55-0.59,1.273-0.884,2.17-0.884c0.783,0,1.419,0.231,1.908,0.694c0.291,0.274,0.509,0.667,0.655,1.179l-1.279,0.306
+                       c-0.076-0.332-0.233-0.594-0.474-0.786c-0.24-0.192-0.532-0.288-0.875-0.288c-0.474,0-0.86,0.17-1.155,0.511
+                       c-0.296,0.341-0.443,0.892-0.443,1.655c0,0.809,0.146,1.385,0.437,1.729s0.669,0.515,1.135,0.515c0.343,0,0.639-0.109,0.886-0.327
+                       C306.213,146.328,306.391,145.984,306.498,145.516z"/>
+               <path fill="#231F20" d="M314.632,147.869h-1.406l-0.559-1.454h-2.559l-0.528,1.454h-1.371l2.493-6.401h1.367L314.632,147.869z
+                        M312.253,145.337l-0.882-2.375l-0.865,2.375H312.253z"/>
+               <path fill="#231F20" d="M315.353,147.869v-6.348h1.292v5.27h3.213v1.078H315.353z"/>
+               <path fill="#231F20" d="M320.771,141.468h1.292v3.467c0,0.55,0.016,0.907,0.048,1.07c0.055,0.262,0.187,0.473,0.395,0.631
+                       c0.208,0.159,0.493,0.238,0.854,0.238c0.367,0,0.643-0.075,0.83-0.225c0.186-0.149,0.298-0.334,0.336-0.552
+                       c0.038-0.218,0.057-0.581,0.057-1.087v-3.541h1.292v3.362c0,0.768-0.035,1.311-0.105,1.629c-0.07,0.317-0.199,0.585-0.386,0.803
+                       c-0.188,0.218-0.439,0.392-0.753,0.521c-0.314,0.13-0.725,0.195-1.231,0.195c-0.611,0-1.075-0.071-1.391-0.212
+                       c-0.316-0.141-0.565-0.324-0.749-0.55c-0.183-0.225-0.304-0.462-0.362-0.709c-0.084-0.367-0.127-0.908-0.127-1.624V141.468z"/>
+               <path fill="#231F20" d="M327.22,147.869v-6.401h1.934l1.161,4.366l1.148-4.366h1.939v6.401h-1.201v-5.038l-1.271,5.038h-1.244
+                       l-1.266-5.038v5.038H327.22z"/>
+               <path fill="#231F20" d="M334.686,147.869v-6.401h4.746v1.083h-3.454v1.419h3.213v1.078h-3.213v1.742h3.576v1.078H334.686z"/>
+               <path fill="#231F20" d="M342.09,147.869v-5.318h-1.899v-1.083h5.086v1.083h-1.895v5.318H342.09z"/>
+       </g>
+</g>
+<g id="Main_Towns_-_hover" display="none">
+       <g display="inline">
+               <defs>
+                       <rect id="SVGID_1_" x="185.186" y="277.719" width="53" height="20"/>
+               </defs>
+               <clipPath id="SVGID_2_">
+                       <use xlink:href="#SVGID_1_"  overflow="visible"/>
+               </clipPath>
+               <path clip-path="url(#SVGID_2_)" fill="#F27327" d="M191.686,278.219c0,0-6,0-6,6v7c0,0,0,6,6,6h40c0,0,6,0,6-6v-7c0,0,0-6-6-6
+                       H191.686z"/>
+               <path clip-path="url(#SVGID_2_)" fill="none" stroke="#FFFFFF" d="M191.686,278.219c0,0-6,0-6,6v7c0,0,0,6,6,6h40c0,0,6,0,6-6v-7
+                       c0,0,0-6-6-6H191.686z"/>
+       </g>
+       <g display="inline">
+               <defs>
+                       <polygon id="SVGID_3_" points="243.576,273.983 304.427,273.819 304.427,253.819 243.576,253.983                  "/>
+               </defs>
+               <clipPath id="SVGID_4_">
+                       <use xlink:href="#SVGID_3_"  overflow="visible"/>
+               </clipPath>
+               <path clip-path="url(#SVGID_4_)" fill="#F27327" d="M250.076,254.483c0,0-6,0-6,6v7c0,0,0,6,6,6l47.851-0.164c0,0,6,0,6-6v-7
+                       c0,0,0-6-6-6L250.076,254.483z"/>
+               <path clip-path="url(#SVGID_4_)" fill="none" stroke="#FFFFFF" d="M250.076,254.483c0,0-6,0-6,6v7c0,0,0,6,6,6l47.851-0.164
+                       c0,0,6,0,6-6v-7c0,0,0-6-6-6L250.076,254.483z"/>
+       </g>
+       <g display="inline">
+               <defs>
+                       <polygon id="SVGID_5_" points="240.301,237.086 304.5,236.922 304.5,216.922 240.301,217.086                      "/>
+               </defs>
+               <clipPath id="SVGID_6_">
+                       <use xlink:href="#SVGID_5_"  overflow="visible"/>
+               </clipPath>
+               <path clip-path="url(#SVGID_6_)" fill="#F27327" d="M246.801,217.586c0,0-6,0-6,6v7c0,0,0,6,6,6L298,236.422c0,0,6,0,6-6v-7
+                       c0,0,0-6-6-6L246.801,217.586z"/>
+               <path clip-path="url(#SVGID_6_)" fill="none" stroke="#FFFFFF" d="M246.801,217.586c0,0-6,0-6,6v7c0,0,0,6,6,6L298,236.422
+                       c0,0,6,0,6-6v-7c0,0,0-6-6-6L246.801,217.586z"/>
+       </g>
+       <g display="inline">
+               <defs>
+                       <polygon id="SVGID_7_" points="267.989,214.648 326.125,214.484 326.125,194.484 267.989,194.648                  "/>
+               </defs>
+               <clipPath id="SVGID_8_">
+                       <use xlink:href="#SVGID_7_"  overflow="visible"/>
+               </clipPath>
+               <path clip-path="url(#SVGID_8_)" fill="#F27327" d="M274.489,195.148c0,0-6,0-6,6v7c0,0,0,6,6,6l45.136-0.164c0,0,6,0,6-6v-7
+                       c0,0,0-6-6-6L274.489,195.148z"/>
+               <path clip-path="url(#SVGID_8_)" fill="none" stroke="#FFFFFF" d="M274.489,195.148c0,0-6,0-6,6v7c0,0,0,6,6,6l45.136-0.164
+                       c0,0,6,0,6-6v-7c0,0,0-6-6-6L274.489,195.148z"/>
+       </g>
+       <g display="inline">
+               <defs>
+                       <polygon id="SVGID_9_" points="336.655,176.802 389.911,176.638 389.911,156.638 336.655,156.802                  "/>
+               </defs>
+               <clipPath id="SVGID_10_">
+                       <use xlink:href="#SVGID_9_"  overflow="visible"/>
+               </clipPath>
+               <path clip-path="url(#SVGID_10_)" fill="#F27327" d="M343.155,157.302c0,0-6,0-6,6v7c0,0,0,6,6,6l40.256-0.164c0,0,6,0,6-6v-7
+                       c0,0,0-6-6-6L343.155,157.302z"/>
+               <path clip-path="url(#SVGID_10_)" fill="none" stroke="#FFFFFF" d="M343.155,157.302c0,0-6,0-6,6v7c0,0,0,6,6,6l40.256-0.164
+                       c0,0,6,0,6-6v-7c0,0,0-6-6-6L343.155,157.302z"/>
+       </g>
+       <g display="inline">
+               <defs>
+                       <polygon id="SVGID_11_" points="295.67,154.469 351.917,154.305 351.917,134.305 295.67,134.469                   "/>
+               </defs>
+               <clipPath id="SVGID_12_">
+                       <use xlink:href="#SVGID_11_"  overflow="visible"/>
+               </clipPath>
+               <path clip-path="url(#SVGID_12_)" fill="#F27327" d="M302.17,134.969c0,0-6,0-6,6v7c0,0,0,6,6,6l43.247-0.164c0,0,6,0,6-6v-7
+                       c0,0,0-6-6-6L302.17,134.969z"/>
+               <path clip-path="url(#SVGID_12_)" fill="none" stroke="#FFFFFF" d="M302.17,134.969c0,0-6,0-6,6v7c0,0,0,6,6,6l43.247-0.164
+                       c0,0,6,0,6-6v-7c0,0,0-6-6-6L302.17,134.969z"/>
+       </g>
+       <g display="inline">
+               <defs>
+                       <polygon id="SVGID_13_" points="316.545,76.219 389.812,76.055 389.812,56.055 316.545,56.219                     "/>
+               </defs>
+               <clipPath id="SVGID_14_">
+                       <use xlink:href="#SVGID_13_"  overflow="visible"/>
+               </clipPath>
+               <path clip-path="url(#SVGID_14_)" fill="#F27327" d="M323.045,56.719c0,0-6,0-6,6v7c0,0,0,6,6,6l60.267-0.164c0,0,6,0,6-6v-7
+                       c0,0,0-6-6-6L323.045,56.719z"/>
+               <path clip-path="url(#SVGID_14_)" fill="none" stroke="#FFFFFF" d="M323.045,56.719c0,0-6,0-6,6v7c0,0,0,6,6,6l60.267-0.164
+                       c0,0,6,0,6-6v-7c0,0,0-6-6-6L323.045,56.719z"/>
+       </g>
+       <g display="inline">
+               <defs>
+                       <polygon id="SVGID_15_" points="352.358,52.219 437.125,52.055 437.125,32.055 352.358,32.219                     "/>
+               </defs>
+               <clipPath id="SVGID_16_">
+                       <use xlink:href="#SVGID_15_"  overflow="visible"/>
+               </clipPath>
+               <path clip-path="url(#SVGID_16_)" fill="#F27327" d="M358.858,32.719c0,0-6,0-6,6v7c0,0,0,6,6,6l71.767-0.164c0,0,6,0,6-6v-7
+                       c0,0,0-6-6-6L358.858,32.719z"/>
+               <path clip-path="url(#SVGID_16_)" fill="none" stroke="#FFFFFF" d="M358.858,32.719c0,0-6,0-6,6v7c0,0,0,6,6,6l71.767-0.164
+                       c0,0,6,0,6-6v-7c0,0,0-6-6-6L358.858,32.719z"/>
+       </g>
+       <g display="inline">
+               <defs>
+                       <polygon id="SVGID_17_" points="406.56,93.219 482.609,93.055 482.609,73.055 406.56,73.219                       "/>
+               </defs>
+               <clipPath id="SVGID_18_">
+                       <use xlink:href="#SVGID_17_"  overflow="visible"/>
+               </clipPath>
+               <path clip-path="url(#SVGID_18_)" fill="#F27327" d="M413.06,73.719c0,0-6,0-6,6v7c0,0,0,6,6,6l63.049-0.164c0,0,6,0,6-6v-7
+                       c0,0,0-6-6-6L413.06,73.719z"/>
+               <path clip-path="url(#SVGID_18_)" fill="none" stroke="#FFFFFF" d="M413.06,73.719c0,0-6,0-6,6v7c0,0,0,6,6,6l63.049-0.164
+                       c0,0,6,0,6-6v-7c0,0,0-6-6-6L413.06,73.719z"/>
+       </g>
+       <g display="inline">
+               <defs>
+                       <polygon id="SVGID_19_" points="497.728,102.469 563.848,102.305 563.848,82.305 497.728,82.469                   "/>
+               </defs>
+               <clipPath id="SVGID_20_">
+                       <use xlink:href="#SVGID_19_"  overflow="visible"/>
+               </clipPath>
+               <path clip-path="url(#SVGID_20_)" fill="#F27327" d="M504.228,82.969c0,0-6,0-6,6v7c0,0,0,6,6,6l53.12-0.164c0,0,6,0,6-6v-7
+                       c0,0,0-6-6-6L504.228,82.969z"/>
+               <path clip-path="url(#SVGID_20_)" fill="none" stroke="#FFFFFF" d="M504.228,82.969c0,0-6,0-6,6v7c0,0,0,6,6,6l53.12-0.164
+                       c0,0,6,0,6-6v-7c0,0,0-6-6-6L504.228,82.969z"/>
+       </g>
+       <g display="inline">
+               <defs>
+                       <polygon id="SVGID_21_" points="515.962,43.85 608.046,43.686 608.046,23.686 515.962,23.85                       "/>
+               </defs>
+               <clipPath id="SVGID_22_">
+                       <use xlink:href="#SVGID_21_"  overflow="visible"/>
+               </clipPath>
+               <path clip-path="url(#SVGID_22_)" fill="#F27327" d="M522.462,24.35c0,0-6,0-6,6v7c0,0,0,6,6,6l79.084-0.164c0,0,6,0,6-6v-7
+                       c0,0,0-6-6-6L522.462,24.35z"/>
+               <path clip-path="url(#SVGID_22_)" fill="none" stroke="#FFFFFF" d="M522.462,24.35c0,0-6,0-6,6v7c0,0,0,6,6,6l79.084-0.164
+                       c0,0,6,0,6-6v-7c0,0,0-6-6-6L522.462,24.35z"/>
+       </g>
+       <g display="inline">
+               <path fill="#FFFFFF" d="M343.314,169.626v-6.348h1.292v5.27h3.213v1.078H343.314z"/>
+               <path fill="#FFFFFF" d="M354.513,169.626h-1.406l-0.559-1.454h-2.559l-0.528,1.454h-1.371l2.493-6.401h1.367L354.513,169.626z
+                        M352.134,167.094l-0.882-2.375l-0.864,2.375H352.134z"/>
+               <path fill="#FFFFFF" d="M355.19,163.226h1.292v3.467c0,0.55,0.016,0.907,0.048,1.07c0.055,0.262,0.187,0.473,0.395,0.631
+                       c0.208,0.159,0.493,0.238,0.854,0.238c0.367,0,0.643-0.075,0.83-0.225c0.186-0.149,0.298-0.334,0.336-0.552
+                       s0.057-0.581,0.057-1.087v-3.541h1.292v3.362c0,0.768-0.035,1.311-0.105,1.629c-0.07,0.317-0.199,0.585-0.386,0.803
+                       c-0.188,0.218-0.439,0.392-0.753,0.521c-0.314,0.13-0.725,0.195-1.231,0.195c-0.611,0-1.075-0.071-1.391-0.212
+                       c-0.316-0.141-0.565-0.324-0.749-0.55c-0.183-0.225-0.304-0.462-0.362-0.709c-0.084-0.367-0.127-0.908-0.127-1.624V163.226z"/>
+               <path fill="#FFFFFF" d="M361.661,169.626v-6.401h2.72c0.684,0,1.181,0.058,1.491,0.173c0.31,0.115,0.558,0.319,0.745,0.613
+                       c0.186,0.294,0.279,0.63,0.279,1.009c0,0.48-0.141,0.877-0.423,1.19s-0.704,0.51-1.266,0.591c0.279,0.163,0.51,0.342,0.692,0.537
+                       c0.182,0.195,0.427,0.541,0.736,1.039l0.782,1.249h-1.546l-0.934-1.393c-0.332-0.498-0.559-0.811-0.681-0.941
+                       c-0.122-0.13-0.252-0.218-0.389-0.267c-0.137-0.048-0.354-0.072-0.651-0.072h-0.262v2.672H361.661z M362.953,165.933h0.956
+                       c0.62,0,1.007-0.026,1.161-0.079c0.154-0.052,0.275-0.143,0.362-0.271c0.087-0.128,0.131-0.288,0.131-0.48
+                       c0-0.215-0.058-0.389-0.173-0.522c-0.115-0.132-0.277-0.216-0.487-0.251c-0.105-0.015-0.419-0.022-0.943-0.022h-1.009V165.933z"/>
+               <path fill="#FFFFFF" d="M368.074,169.626v-6.401h1.292v6.401H368.074z"/>
+               <path fill="#FFFFFF" d="M370.589,163.226h1.292v3.467c0,0.55,0.016,0.907,0.048,1.07c0.055,0.262,0.187,0.473,0.395,0.631
+                       c0.208,0.159,0.493,0.238,0.854,0.238c0.367,0,0.643-0.075,0.83-0.225c0.186-0.149,0.298-0.334,0.336-0.552
+                       s0.057-0.581,0.057-1.087v-3.541h1.292v3.362c0,0.768-0.035,1.311-0.105,1.629c-0.07,0.317-0.199,0.585-0.386,0.803
+                       c-0.188,0.218-0.439,0.392-0.753,0.521c-0.314,0.13-0.725,0.195-1.231,0.195c-0.611,0-1.075-0.071-1.391-0.212
+                       c-0.316-0.141-0.565-0.324-0.749-0.55c-0.183-0.225-0.304-0.462-0.362-0.709c-0.084-0.367-0.127-0.908-0.127-1.624V163.226z"/>
+               <path fill="#FFFFFF" d="M377.038,169.626v-6.401h1.934l1.161,4.366l1.148-4.366h1.939v6.401h-1.201v-5.038l-1.271,5.038h-1.244
+                       l-1.266-5.038v5.038H377.038z"/>
+       </g>
+       <g display="inline">
+               <path fill="#FFFFFF" d="M306.498,145.516l1.253,0.397c-0.192,0.699-0.512,1.218-0.959,1.556c-0.447,0.34-1.013,0.509-1.7,0.509
+                       c-0.85,0-1.548-0.291-2.096-0.871c-0.547-0.581-0.821-1.375-0.821-2.382c0-1.065,0.275-1.893,0.825-2.482
+                       c0.55-0.59,1.273-0.884,2.17-0.884c0.783,0,1.419,0.231,1.908,0.694c0.291,0.274,0.509,0.667,0.655,1.179l-1.279,0.306
+                       c-0.076-0.332-0.233-0.594-0.474-0.786c-0.24-0.192-0.532-0.288-0.875-0.288c-0.474,0-0.86,0.17-1.155,0.511
+                       c-0.296,0.341-0.443,0.892-0.443,1.655c0,0.809,0.146,1.385,0.437,1.729s0.669,0.515,1.135,0.515c0.343,0,0.639-0.109,0.886-0.327
+                       C306.213,146.328,306.391,145.984,306.498,145.516z"/>
+               <path fill="#FFFFFF" d="M314.632,147.869h-1.406l-0.559-1.454h-2.559l-0.528,1.454h-1.371l2.493-6.401h1.367L314.632,147.869z
+                        M312.253,145.337l-0.882-2.375l-0.865,2.375H312.253z"/>
+               <path fill="#FFFFFF" d="M315.353,147.869v-6.348h1.292v5.27h3.213v1.078H315.353z"/>
+               <path fill="#FFFFFF" d="M320.771,141.468h1.292v3.467c0,0.55,0.016,0.907,0.048,1.07c0.055,0.262,0.187,0.473,0.395,0.631
+                       c0.208,0.159,0.493,0.238,0.854,0.238c0.367,0,0.643-0.075,0.83-0.225c0.186-0.149,0.298-0.334,0.336-0.552
+                       c0.038-0.218,0.057-0.581,0.057-1.087v-3.541h1.292v3.362c0,0.768-0.035,1.311-0.105,1.629c-0.07,0.317-0.199,0.585-0.386,0.803
+                       c-0.188,0.218-0.439,0.392-0.753,0.521c-0.314,0.13-0.725,0.195-1.231,0.195c-0.611,0-1.075-0.071-1.391-0.212
+                       c-0.316-0.141-0.565-0.324-0.749-0.55c-0.183-0.225-0.304-0.462-0.362-0.709c-0.084-0.367-0.127-0.908-0.127-1.624V141.468z"/>
+               <path fill="#FFFFFF" d="M327.22,147.869v-6.401h1.934l1.161,4.366l1.148-4.366h1.939v6.401h-1.201v-5.038l-1.271,5.038h-1.244
+                       l-1.266-5.038v5.038H327.22z"/>
+               <path fill="#FFFFFF" d="M334.686,147.869v-6.401h4.746v1.083h-3.454v1.419h3.213v1.078h-3.213v1.742h3.576v1.078H334.686z"/>
+               <path fill="#FFFFFF" d="M342.09,147.869v-5.318h-1.899v-1.083h5.086v1.083h-1.895v5.318H342.09z"/>
+       </g>
+       <g display="inline">
+               <path fill="#FFFFFF" d="M504.279,88.812h2.559c0.506,0,0.884,0.021,1.133,0.063c0.248,0.043,0.472,0.13,0.668,0.264
+                       c0.197,0.134,0.361,0.312,0.491,0.535c0.132,0.222,0.197,0.472,0.197,0.749c0,0.3-0.081,0.575-0.243,0.825
+                       c-0.161,0.25-0.38,0.438-0.657,0.563c0.39,0.114,0.69,0.307,0.899,0.581s0.314,0.595,0.314,0.965c0,0.291-0.068,0.574-0.203,0.849
+                       c-0.136,0.275-0.32,0.495-0.555,0.659c-0.234,0.165-0.523,0.266-0.866,0.304c-0.215,0.023-0.735,0.038-1.559,0.044h-2.178V88.812z
+                        M505.571,89.877v1.48h0.847c0.504,0,0.817-0.007,0.939-0.022c0.22-0.026,0.395-0.103,0.521-0.229
+                       c0.127-0.127,0.19-0.293,0.19-0.5c0-0.198-0.054-0.358-0.164-0.483c-0.109-0.123-0.272-0.198-0.487-0.225
+                       c-0.128-0.015-0.496-0.022-1.104-0.022H505.571z M505.571,92.422v1.711h1.196c0.466,0,0.761-0.013,0.887-0.039
+                       c0.192-0.035,0.348-0.12,0.469-0.255c0.121-0.136,0.181-0.317,0.181-0.544c0-0.192-0.047-0.355-0.14-0.489
+                       c-0.093-0.134-0.228-0.231-0.404-0.293c-0.177-0.061-0.559-0.092-1.147-0.092H505.571z"/>
+               <path fill="#FFFFFF" d="M510.731,95.212v-6.401h4.746v1.083h-3.454v1.419h3.213v1.078h-3.213v1.742h3.576v1.078H510.731z"/>
+               <path fill="#FFFFFF" d="M518.136,95.212v-5.318h-1.9v-1.083h5.086v1.083h-1.894v5.318H518.136z"/>
+               <path fill="#FFFFFF" d="M522.156,95.212v-6.401h4.746v1.083h-3.454v1.419h3.213v1.078h-3.213v1.742h3.576v1.078H522.156z"/>
+               <path fill="#FFFFFF" d="M533.583,92.859v-1.078h2.785v2.55c-0.27,0.262-0.663,0.493-1.176,0.692
+                       c-0.514,0.199-1.034,0.299-1.561,0.299c-0.669,0-1.253-0.14-1.751-0.422c-0.497-0.28-0.871-0.682-1.122-1.205
+                       c-0.25-0.522-0.375-1.091-0.375-1.705c0-0.667,0.14-1.259,0.419-1.777c0.279-0.518,0.688-0.915,1.227-1.192
+                       c0.409-0.212,0.921-0.319,1.532-0.319c0.795,0,1.416,0.167,1.862,0.5c0.447,0.333,0.734,0.794,0.862,1.382l-1.284,0.24
+                       c-0.09-0.314-0.26-0.562-0.508-0.745c-0.249-0.181-0.56-0.273-0.932-0.273c-0.565,0-1.014,0.179-1.347,0.537
+                       c-0.334,0.358-0.5,0.889-0.5,1.594c0,0.76,0.168,1.329,0.506,1.71c0.337,0.379,0.779,0.57,1.327,0.57
+                       c0.27,0,0.541-0.053,0.814-0.159c0.272-0.106,0.505-0.235,0.701-0.387v-0.812H533.583z"/>
+               <path fill="#FFFFFF" d="M537.564,95.212v-6.401h2.72c0.684,0,1.182,0.058,1.491,0.173c0.31,0.115,0.558,0.319,0.744,0.613
+                       c0.186,0.294,0.279,0.63,0.279,1.009c0,0.48-0.141,0.877-0.423,1.19c-0.282,0.313-0.704,0.51-1.266,0.591
+                       c0.279,0.163,0.51,0.342,0.692,0.537c0.182,0.195,0.427,0.541,0.735,1.039l0.782,1.249h-1.546l-0.934-1.393
+                       c-0.332-0.498-0.559-0.811-0.681-0.941c-0.122-0.13-0.252-0.218-0.388-0.267c-0.138-0.048-0.354-0.072-0.651-0.072h-0.262v2.672
+                       H537.564z M538.857,91.519h0.956c0.621,0,1.007-0.026,1.162-0.079c0.153-0.052,0.275-0.143,0.362-0.271
+                       c0.087-0.128,0.131-0.288,0.131-0.48c0-0.215-0.057-0.389-0.173-0.522c-0.115-0.132-0.277-0.216-0.487-0.251
+                       c-0.105-0.015-0.419-0.022-0.943-0.022h-1.008V91.519z"/>
+               <path fill="#FFFFFF" d="M543.979,95.212v-6.401h1.292v6.401H543.979z"/>
+               <path fill="#FFFFFF" d="M546.174,93.13l1.257-0.122c0.076,0.422,0.229,0.732,0.461,0.93c0.231,0.198,0.543,0.297,0.936,0.297
+                       c0.416,0,0.73-0.088,0.941-0.264c0.211-0.176,0.316-0.382,0.316-0.618c0-0.151-0.045-0.28-0.133-0.386
+                       c-0.089-0.106-0.244-0.199-0.466-0.277c-0.151-0.052-0.496-0.146-1.034-0.279c-0.693-0.172-1.179-0.383-1.458-0.633
+                       c-0.393-0.352-0.589-0.782-0.589-1.288c0-0.326,0.092-0.631,0.276-0.915c0.185-0.283,0.451-0.5,0.799-0.648
+                       c0.347-0.148,0.767-0.223,1.259-0.223c0.803,0,1.408,0.176,1.814,0.528c0.406,0.352,0.619,0.822,0.639,1.41l-1.292,0.057
+                       c-0.055-0.329-0.174-0.566-0.356-0.709c-0.181-0.145-0.455-0.216-0.818-0.216c-0.376,0-0.67,0.077-0.883,0.231
+                       c-0.137,0.099-0.205,0.231-0.205,0.397c0,0.151,0.064,0.281,0.192,0.389c0.163,0.137,0.559,0.279,1.188,0.428
+                       c0.629,0.148,1.093,0.302,1.395,0.46c0.301,0.159,0.537,0.375,0.707,0.651c0.17,0.275,0.255,0.615,0.255,1.019
+                       c0,0.367-0.102,0.71-0.306,1.03c-0.204,0.32-0.492,0.558-0.865,0.714c-0.373,0.156-0.837,0.234-1.392,0.234
+                       c-0.81,0-1.431-0.187-1.865-0.561C546.518,94.391,546.259,93.846,546.174,93.13z"/>
+               <path fill="#FFFFFF" d="M552.465,95.212v-6.401h4.746v1.083h-3.454v1.419h3.213v1.078h-3.213v1.742h3.576v1.078H552.465z"/>
+       </g>
+       <g display="inline">
+               <path fill="#FFFFFF" d="M413.102,86.004v-6.348h1.292v5.27h3.213v1.078H413.102z"/>
+               <path fill="#FFFFFF" d="M424.301,86.004h-1.407l-0.559-1.454h-2.558l-0.529,1.454h-1.371l2.493-6.401h1.366L424.301,86.004z
+                        M421.921,83.472l-0.882-2.375l-0.864,2.375H421.921z"/>
+               <path fill="#FFFFFF" d="M429.083,83.651l1.253,0.397c-0.192,0.699-0.511,1.218-0.959,1.556c-0.446,0.34-1.014,0.509-1.701,0.509
+                       c-0.85,0-1.548-0.291-2.096-0.871c-0.547-0.581-0.821-1.375-0.821-2.382c0-1.065,0.276-1.893,0.826-2.482
+                       c0.55-0.59,1.273-0.884,2.17-0.884c0.782,0,1.418,0.231,1.907,0.694c0.291,0.274,0.509,0.667,0.655,1.179l-1.28,0.306
+                       c-0.076-0.332-0.233-0.594-0.473-0.786c-0.24-0.192-0.532-0.288-0.875-0.288c-0.474,0-0.86,0.17-1.155,0.511
+                       c-0.296,0.341-0.443,0.892-0.443,1.655c0,0.809,0.146,1.385,0.437,1.729s0.669,0.515,1.135,0.515c0.343,0,0.638-0.109,0.886-0.327
+                       C428.796,84.463,428.974,84.119,429.083,83.651z"/>
+               <path fill="#FFFFFF" d="M433.963,86.004v-6.348h1.292v5.27h3.213v1.078H433.963z"/>
+               <path fill="#FFFFFF" d="M445.163,86.004h-1.407l-0.559-1.454h-2.558l-0.529,1.454h-1.371l2.493-6.401h1.366L445.163,86.004z
+                        M442.783,83.472l-0.882-2.375l-0.864,2.375H442.783z"/>
+               <path fill="#FFFFFF" d="M448.006,79.603h2.559c0.506,0,0.884,0.021,1.133,0.063c0.248,0.043,0.472,0.131,0.668,0.264
+                       c0.197,0.134,0.361,0.312,0.491,0.535c0.132,0.222,0.197,0.472,0.197,0.749c0,0.3-0.081,0.575-0.243,0.825
+                       c-0.161,0.25-0.38,0.438-0.657,0.563c0.39,0.114,0.69,0.307,0.899,0.581s0.314,0.595,0.314,0.965c0,0.291-0.068,0.574-0.203,0.849
+                       c-0.136,0.275-0.32,0.495-0.555,0.659c-0.234,0.165-0.523,0.266-0.866,0.304c-0.215,0.023-0.735,0.038-1.559,0.044h-2.178V79.603z
+                        M449.298,80.669v1.48h0.847c0.504,0,0.817-0.007,0.939-0.022c0.22-0.026,0.395-0.103,0.521-0.229
+                       c0.127-0.127,0.19-0.293,0.19-0.5c0-0.198-0.054-0.358-0.164-0.483c-0.109-0.123-0.272-0.198-0.487-0.225
+                       c-0.128-0.015-0.496-0.022-1.104-0.022H449.298z M449.298,83.214v1.711h1.196c0.466,0,0.761-0.013,0.887-0.039
+                       c0.192-0.035,0.348-0.12,0.469-0.255c0.121-0.136,0.181-0.317,0.181-0.544c0-0.192-0.047-0.355-0.14-0.489
+                       c-0.093-0.134-0.228-0.231-0.404-0.293c-0.177-0.061-0.559-0.092-1.147-0.092H449.298z"/>
+               <path fill="#FFFFFF" d="M454.459,86.004v-6.401h4.746v1.083h-3.454v1.419h3.213v1.078h-3.213v1.742h3.576v1.078H454.459z"/>
+               <path fill="#FFFFFF" d="M460.458,86.004v-6.348h1.292v5.27h3.213v1.078H460.458z"/>
+               <path fill="#FFFFFF" d="M465.919,86.004v-6.348h1.292v5.27h3.213v1.078H465.919z"/>
+               <path fill="#FFFFFF" d="M471.347,86.004v-6.401h4.746v1.083h-3.454v1.419h3.213v1.078h-3.213v1.742h3.576v1.078H471.347z"/>
+       </g>
+       <g display="inline">
+               <path fill="#FFFFFF" d="M254.635,265.01l1.253,0.398c-0.192,0.699-0.512,1.218-0.959,1.556c-0.447,0.34-1.013,0.508-1.7,0.508
+                       c-0.85,0-1.548-0.29-2.096-0.87c-0.547-0.581-0.821-1.375-0.821-2.382c0-1.065,0.275-1.893,0.825-2.482
+                       c0.55-0.59,1.273-0.885,2.17-0.885c0.783,0,1.419,0.232,1.908,0.695c0.291,0.274,0.509,0.667,0.655,1.179l-1.279,0.306
+                       c-0.076-0.332-0.233-0.594-0.474-0.786c-0.24-0.192-0.532-0.288-0.875-0.288c-0.474,0-0.86,0.17-1.155,0.511
+                       c-0.296,0.34-0.443,0.892-0.443,1.654c0,0.809,0.146,1.385,0.437,1.729c0.291,0.343,0.669,0.515,1.135,0.515
+                       c0.343,0,0.639-0.109,0.886-0.328C254.349,265.823,254.527,265.48,254.635,265.01z"/>
+               <path fill="#FFFFFF" d="M257.001,267.364v-6.401h1.292v2.52h2.532v-2.52h1.292v6.401h-1.292v-2.798h-2.532v2.798H257.001z"/>
+               <path fill="#FFFFFF" d="M269.226,267.364h-1.406l-0.559-1.453h-2.559l-0.528,1.453h-1.371l2.493-6.401h1.367L269.226,267.364z
+                        M266.846,264.831l-0.882-2.375l-0.864,2.375H266.846z"/>
+               <path fill="#FFFFFF" d="M269.584,265.282l1.257-0.122c0.076,0.422,0.229,0.732,0.461,0.93c0.231,0.198,0.543,0.297,0.936,0.297
+                       c0.416,0,0.73-0.088,0.941-0.264c0.211-0.177,0.316-0.382,0.316-0.618c0-0.151-0.045-0.28-0.133-0.386
+                       c-0.089-0.107-0.244-0.199-0.465-0.277c-0.151-0.052-0.496-0.146-1.035-0.279c-0.693-0.172-1.179-0.382-1.458-0.634
+                       c-0.393-0.351-0.589-0.781-0.589-1.288c0-0.326,0.092-0.631,0.277-0.915c0.185-0.283,0.451-0.5,0.799-0.648
+                       c0.347-0.148,0.767-0.223,1.259-0.223c0.803,0,1.408,0.177,1.814,0.529c0.406,0.352,0.619,0.823,0.639,1.41l-1.292,0.057
+                       c-0.055-0.329-0.174-0.566-0.356-0.709c-0.182-0.145-0.455-0.216-0.818-0.216c-0.375,0-0.669,0.078-0.882,0.232
+                       c-0.137,0.099-0.205,0.231-0.205,0.397c0,0.151,0.064,0.281,0.192,0.389c0.163,0.137,0.559,0.279,1.188,0.427
+                       c0.629,0.149,1.093,0.303,1.395,0.461c0.301,0.159,0.537,0.375,0.707,0.651c0.17,0.275,0.255,0.615,0.255,1.019
+                       c0,0.367-0.102,0.711-0.306,1.03c-0.204,0.321-0.492,0.559-0.864,0.714c-0.373,0.156-0.837,0.234-1.393,0.234
+                       c-0.809,0-1.431-0.187-1.864-0.561C269.927,266.542,269.668,265.998,269.584,265.282z"/>
+               <path fill="#FFFFFF" d="M275.548,265.282l1.257-0.122c0.076,0.422,0.229,0.732,0.461,0.93c0.231,0.198,0.543,0.297,0.936,0.297
+                       c0.416,0,0.73-0.088,0.941-0.264c0.211-0.177,0.316-0.382,0.316-0.618c0-0.151-0.045-0.28-0.133-0.386
+                       c-0.089-0.107-0.244-0.199-0.465-0.277c-0.151-0.052-0.496-0.146-1.035-0.279c-0.693-0.172-1.179-0.382-1.458-0.634
+                       c-0.393-0.351-0.589-0.781-0.589-1.288c0-0.326,0.092-0.631,0.277-0.915c0.185-0.283,0.451-0.5,0.799-0.648
+                       c0.347-0.148,0.767-0.223,1.259-0.223c0.803,0,1.408,0.177,1.814,0.529c0.406,0.352,0.619,0.823,0.639,1.41l-1.292,0.057
+                       c-0.055-0.329-0.174-0.566-0.356-0.709c-0.182-0.145-0.455-0.216-0.818-0.216c-0.375,0-0.669,0.078-0.882,0.232
+                       c-0.137,0.099-0.205,0.231-0.205,0.397c0,0.151,0.064,0.281,0.192,0.389c0.163,0.137,0.559,0.279,1.188,0.427
+                       c0.629,0.149,1.093,0.303,1.395,0.461c0.301,0.159,0.537,0.375,0.707,0.651c0.17,0.275,0.255,0.615,0.255,1.019
+                       c0,0.367-0.102,0.711-0.306,1.03c-0.204,0.321-0.492,0.559-0.864,0.714c-0.373,0.156-0.837,0.234-1.393,0.234
+                       c-0.809,0-1.431-0.187-1.864-0.561C275.891,266.542,275.632,265.998,275.548,265.282z"/>
+               <path fill="#FFFFFF" d="M281.839,267.364v-6.401h4.746v1.083h-3.454v1.419h3.213v1.078h-3.213v1.742h3.576v1.079H281.839z"/>
+               <path fill="#FFFFFF" d="M287.838,267.364v-6.348h1.292v5.269h3.213v1.079H287.838z"/>
+               <path fill="#FFFFFF" d="M293.3,267.364v-6.348h1.292v5.269h3.213v1.079H293.3z"/>
+       </g>
+       <g display="inline">
+               <path fill="#FFFFFF" d="M193.953,291.091v-5.318h-1.899v-1.083h5.086v1.083h-1.895v5.318H193.953z"/>
+               <path fill="#FFFFFF" d="M197.551,287.93c0-0.652,0.098-1.199,0.293-1.642c0.146-0.326,0.344-0.618,0.596-0.877
+                       c0.252-0.259,0.528-0.451,0.828-0.576c0.399-0.169,0.859-0.254,1.38-0.254c0.943,0,1.697,0.293,2.264,0.878
+                       s0.849,1.399,0.849,2.44c0,1.034-0.281,1.842-0.843,2.426c-0.562,0.584-1.313,0.875-2.253,0.875c-0.952,0-1.709-0.29-2.27-0.87
+                       C197.832,289.748,197.551,288.949,197.551,287.93z M198.883,287.886c0,0.725,0.167,1.274,0.502,1.648
+                       c0.335,0.374,0.76,0.561,1.275,0.561c0.515,0,0.938-0.185,1.269-0.557c0.33-0.371,0.495-0.928,0.495-1.67
+                       c0-0.733-0.161-1.281-0.483-1.642c-0.322-0.361-0.749-0.541-1.281-0.541c-0.533,0-0.962,0.182-1.288,0.548
+                       C199.046,286.599,198.883,287.15,198.883,287.886z"/>
+               <path fill="#FFFFFF" d="M204.729,291.091v-6.401h1.292v6.401H204.729z"/>
+               <path fill="#FFFFFF" d="M208.885,291.091l-2.288-6.401h1.402l1.62,4.738l1.567-4.738h1.371l-2.292,6.401H208.885z"/>
+               <path fill="#FFFFFF" d="M212.954,287.93c0-0.652,0.098-1.199,0.293-1.642c0.146-0.326,0.344-0.618,0.596-0.877
+                       c0.252-0.259,0.528-0.451,0.828-0.576c0.399-0.169,0.859-0.254,1.38-0.254c0.943,0,1.697,0.293,2.264,0.878
+                       s0.849,1.399,0.849,2.44c0,1.034-0.281,1.842-0.843,2.426c-0.562,0.584-1.313,0.875-2.253,0.875c-0.952,0-1.709-0.29-2.27-0.87
+                       C213.235,289.748,212.954,288.949,212.954,287.93z M214.286,287.886c0,0.725,0.167,1.274,0.502,1.648
+                       c0.335,0.374,0.76,0.561,1.275,0.561c0.515,0,0.938-0.185,1.269-0.557c0.33-0.371,0.495-0.928,0.495-1.67
+                       c0-0.733-0.161-1.281-0.483-1.642c-0.322-0.361-0.749-0.541-1.281-0.541c-0.533,0-0.962,0.182-1.288,0.548
+                       C214.449,286.599,214.286,287.15,214.286,287.886z"/>
+               <path fill="#FFFFFF" d="M220.206,291.091v-6.348h1.292v5.269h3.213v1.079H220.206z"/>
+               <path fill="#FFFFFF" d="M231.405,291.091h-1.406l-0.559-1.453h-2.559l-0.528,1.453h-1.371l2.493-6.401h1.367L231.405,291.091z
+                        M229.026,288.558l-0.882-2.375l-0.864,2.375H229.026z"/>
+       </g>
+       <g display="inline">
+               <path fill="#FFFFFF" d="M323.189,69.72v-6.401h4.746v1.083h-3.454v1.419h3.213v1.078h-3.213v1.742h3.576v1.078H323.189z"/>
+               <path fill="#FFFFFF" d="M334.925,69.72h-1.406l-0.559-1.454h-2.559l-0.528,1.454h-1.371l2.493-6.401h1.367L334.925,69.72z
+                        M332.545,67.187l-0.882-2.375l-0.864,2.375H332.545z"/>
+               <path fill="#FFFFFF" d="M338.588,67.366v-1.078h2.786v2.55c-0.271,0.262-0.663,0.493-1.176,0.692
+                       c-0.514,0.199-1.034,0.299-1.561,0.299c-0.669,0-1.253-0.14-1.751-0.422c-0.498-0.28-0.872-0.682-1.122-1.205
+                       c-0.25-0.522-0.375-1.091-0.375-1.705c0-0.667,0.14-1.259,0.419-1.777s0.688-0.915,1.227-1.192
+                       c0.41-0.212,0.921-0.319,1.532-0.319c0.795,0,1.415,0.167,1.862,0.5c0.447,0.333,0.734,0.794,0.863,1.382l-1.284,0.24
+                       c-0.09-0.314-0.26-0.562-0.508-0.745c-0.249-0.181-0.56-0.273-0.932-0.273c-0.565,0-1.014,0.179-1.347,0.537
+                       c-0.334,0.358-0.5,0.889-0.5,1.594c0,0.76,0.169,1.329,0.506,1.71c0.338,0.379,0.78,0.57,1.327,0.57
+                       c0.271,0,0.542-0.053,0.815-0.159c0.272-0.106,0.505-0.235,0.701-0.387v-0.812H338.588z"/>
+               <path fill="#FFFFFF" d="M342.6,69.72v-6.348h1.292v5.27h3.213v1.078H342.6z"/>
+               <path fill="#FFFFFF" d="M348.027,69.72v-6.401h4.746v1.083h-3.454v1.419h3.213v1.078h-3.213v1.742h3.576v1.078H348.027z"/>
+               <path fill="#FFFFFF" d="M356.48,69.72v-6.401h2.72c0.684,0,1.181,0.058,1.491,0.173c0.31,0.115,0.558,0.319,0.745,0.613
+                       c0.186,0.294,0.279,0.63,0.279,1.009c0,0.48-0.141,0.877-0.424,1.19c-0.282,0.313-0.704,0.51-1.266,0.591
+                       c0.279,0.163,0.51,0.342,0.692,0.537s0.427,0.541,0.736,1.039l0.782,1.249h-1.546l-0.934-1.393
+                       c-0.332-0.498-0.559-0.811-0.681-0.941c-0.122-0.13-0.252-0.218-0.389-0.267c-0.137-0.048-0.354-0.072-0.651-0.072h-0.262v2.672
+                       H356.48z M357.772,66.026h0.956c0.62,0,1.007-0.026,1.161-0.079s0.275-0.143,0.362-0.271c0.087-0.128,0.131-0.288,0.131-0.48
+                       c0-0.215-0.058-0.389-0.173-0.522c-0.115-0.132-0.277-0.216-0.487-0.251c-0.105-0.015-0.419-0.022-0.943-0.022h-1.009V66.026z"/>
+               <path fill="#FFFFFF" d="M362.894,69.72v-6.401h1.292v6.401H362.894z"/>
+               <path fill="#FFFFFF" d="M367.05,69.72l-2.288-6.401h1.402l1.62,4.737l1.567-4.737h1.371l-2.292,6.401H367.05z"/>
+               <path fill="#FFFFFF" d="M371.381,69.72v-6.401h4.746v1.083h-3.454v1.419h3.213v1.078h-3.213v1.742h3.576v1.078H371.381z"/>
+               <path fill="#FFFFFF" d="M377.35,69.72v-6.401h2.719c0.685,0,1.182,0.058,1.492,0.173c0.31,0.115,0.557,0.319,0.743,0.613
+                       c0.186,0.294,0.279,0.63,0.279,1.009c0,0.48-0.14,0.877-0.423,1.19c-0.281,0.313-0.704,0.51-1.265,0.591
+                       c0.279,0.163,0.51,0.342,0.691,0.537c0.182,0.195,0.427,0.541,0.735,1.039l0.782,1.249h-1.545l-0.935-1.393
+                       c-0.332-0.498-0.559-0.811-0.681-0.941s-0.252-0.218-0.388-0.267c-0.138-0.048-0.353-0.072-0.65-0.072h-0.262v2.672H377.35z
+                        M378.643,66.026h0.955c0.621,0,1.007-0.026,1.162-0.079c0.153-0.052,0.276-0.143,0.363-0.271c0.087-0.128,0.13-0.288,0.13-0.48
+                       c0-0.215-0.056-0.389-0.173-0.522c-0.114-0.132-0.277-0.216-0.487-0.251c-0.105-0.015-0.419-0.022-0.943-0.022h-1.007V66.026z"/>
+       </g>
+       <g display="inline">
+               <path fill="#FFFFFF" d="M358.959,45.537v-6.401h4.746v1.083h-3.454v1.419h3.213v1.078h-3.213v1.742h3.576v1.078H358.959z"/>
+               <path fill="#FFFFFF" d="M370.695,45.537h-1.406l-0.559-1.454h-2.559l-0.528,1.454h-1.371l2.493-6.401h1.367L370.695,45.537z
+                        M368.316,43.005l-0.882-2.375l-0.864,2.375H368.316z"/>
+               <path fill="#FFFFFF" d="M374.359,43.184v-1.078h2.785v2.55c-0.27,0.262-0.664,0.493-1.176,0.692
+                       c-0.514,0.199-1.034,0.299-1.562,0.299c-0.669,0-1.253-0.14-1.75-0.422c-0.498-0.28-0.872-0.682-1.122-1.205
+                       c-0.25-0.522-0.375-1.091-0.375-1.705c0-0.667,0.14-1.259,0.419-1.777c0.279-0.518,0.688-0.915,1.227-1.192
+                       c0.41-0.212,0.921-0.319,1.532-0.319c0.796,0,1.417,0.167,1.863,0.5c0.446,0.333,0.733,0.794,0.862,1.382l-1.283,0.24
+                       c-0.091-0.314-0.26-0.562-0.508-0.745c-0.25-0.181-0.561-0.273-0.933-0.273c-0.565,0-1.013,0.179-1.346,0.537
+                       c-0.334,0.358-0.5,0.889-0.5,1.594c0,0.76,0.169,1.329,0.506,1.71c0.338,0.379,0.779,0.57,1.328,0.57
+                       c0.27,0,0.541-0.053,0.813-0.159c0.272-0.106,0.506-0.235,0.701-0.387v-0.812H374.359z"/>
+               <path fill="#FFFFFF" d="M378.37,45.537v-6.348h1.292v5.27h3.213v1.078H378.37z"/>
+               <path fill="#FFFFFF" d="M383.798,45.537v-6.401h4.746v1.083h-3.454v1.419h3.213v1.078h-3.213v1.742h3.576v1.078H383.798z"/>
+               <path fill="#FFFFFF" d="M392.252,45.537v-6.401h1.292v2.519h2.532v-2.519h1.292v6.401h-1.292v-2.799h-2.532v2.799H392.252z"/>
+               <path fill="#FFFFFF" d="M404.477,45.537h-1.407l-0.559-1.454h-2.558l-0.529,1.454h-1.371l2.493-6.401h1.366L404.477,45.537z
+                        M402.097,43.005l-0.882-2.375l-0.864,2.375H402.097z"/>
+               <path fill="#FFFFFF" d="M405.167,45.537v-6.401h2.72c0.684,0,1.182,0.058,1.491,0.173c0.31,0.115,0.558,0.319,0.744,0.613
+                       s0.279,0.63,0.279,1.009c0,0.48-0.141,0.877-0.423,1.19c-0.282,0.313-0.704,0.51-1.266,0.591c0.279,0.163,0.51,0.342,0.692,0.537
+                       c0.182,0.195,0.427,0.541,0.735,1.039l0.782,1.249h-1.546l-0.934-1.393c-0.332-0.498-0.559-0.811-0.681-0.941
+                       c-0.122-0.13-0.252-0.218-0.388-0.267c-0.138-0.048-0.354-0.072-0.651-0.072h-0.262v2.672H405.167z M406.46,41.843h0.956
+                       c0.621,0,1.007-0.026,1.162-0.079c0.153-0.052,0.275-0.143,0.362-0.271c0.087-0.128,0.131-0.288,0.131-0.48
+                       c0-0.215-0.057-0.389-0.173-0.522c-0.115-0.132-0.277-0.216-0.487-0.251c-0.105-0.015-0.419-0.022-0.943-0.022h-1.008V41.843z"/>
+               <path fill="#FFFFFF" d="M411.625,39.136h2.559c0.506,0,0.884,0.021,1.133,0.063c0.248,0.043,0.472,0.13,0.668,0.264
+                       c0.197,0.134,0.361,0.312,0.491,0.535c0.132,0.222,0.197,0.472,0.197,0.749c0,0.3-0.081,0.575-0.243,0.825
+                       c-0.161,0.25-0.38,0.438-0.657,0.563c0.39,0.114,0.69,0.307,0.899,0.581s0.314,0.595,0.314,0.965c0,0.291-0.068,0.574-0.203,0.849
+                       c-0.136,0.275-0.32,0.495-0.555,0.659c-0.234,0.165-0.523,0.266-0.866,0.304c-0.215,0.023-0.735,0.038-1.559,0.044h-2.178V39.136z
+                        M412.917,40.202v1.48h0.847c0.504,0,0.817-0.007,0.939-0.022c0.22-0.026,0.395-0.103,0.521-0.229
+                       c0.127-0.127,0.19-0.293,0.19-0.5c0-0.198-0.054-0.358-0.164-0.483c-0.109-0.123-0.272-0.198-0.487-0.225
+                       c-0.128-0.015-0.496-0.022-1.104-0.022H412.917z M412.917,42.747v1.711h1.196c0.466,0,0.761-0.013,0.887-0.039
+                       c0.192-0.035,0.348-0.12,0.469-0.255c0.121-0.136,0.181-0.317,0.181-0.544c0-0.192-0.047-0.355-0.14-0.489
+                       s-0.228-0.231-0.404-0.293c-0.177-0.061-0.559-0.092-1.147-0.092H412.917z"/>
+               <path fill="#FFFFFF" d="M417.816,42.376c0-0.652,0.098-1.199,0.293-1.642c0.146-0.326,0.344-0.619,0.596-0.878
+                       c0.252-0.259,0.528-0.451,0.828-0.576c0.399-0.169,0.859-0.253,1.38-0.253c0.943,0,1.698,0.293,2.264,0.878
+                       c0.567,0.585,0.85,1.399,0.85,2.441c0,1.033-0.281,1.842-0.843,2.425c-0.562,0.584-1.313,0.876-2.253,0.876
+                       c-0.952,0-1.709-0.291-2.27-0.871C418.098,44.194,417.816,43.395,417.816,42.376z M419.148,42.332
+                       c0,0.725,0.167,1.274,0.502,1.648c0.335,0.374,0.761,0.561,1.275,0.561c0.516,0,0.938-0.185,1.269-0.557
+                       c0.33-0.371,0.495-0.928,0.495-1.67c0-0.733-0.16-1.281-0.482-1.642c-0.321-0.361-0.748-0.541-1.282-0.541
+                       c-0.532,0-0.962,0.183-1.288,0.548C419.311,41.045,419.148,41.596,419.148,42.332z"/>
+               <path fill="#FFFFFF" d="M425.038,45.537v-6.401h2.72c0.684,0,1.182,0.058,1.491,0.173c0.31,0.115,0.558,0.319,0.744,0.613
+                       c0.186,0.294,0.279,0.63,0.279,1.009c0,0.48-0.141,0.877-0.423,1.19c-0.282,0.313-0.704,0.51-1.266,0.591
+                       c0.279,0.163,0.51,0.342,0.692,0.537c0.182,0.195,0.427,0.541,0.735,1.039l0.782,1.249h-1.546l-0.934-1.393
+                       c-0.332-0.498-0.559-0.811-0.681-0.941c-0.122-0.13-0.252-0.218-0.388-0.267c-0.138-0.048-0.354-0.072-0.651-0.072h-0.262v2.672
+                       H425.038z M426.33,41.843h0.956c0.621,0,1.007-0.026,1.162-0.079c0.153-0.052,0.275-0.143,0.362-0.271
+                       c0.087-0.128,0.131-0.288,0.131-0.48c0-0.215-0.057-0.389-0.173-0.522c-0.114-0.132-0.277-0.216-0.487-0.251
+                       c-0.105-0.015-0.419-0.022-0.943-0.022h-1.008V41.843z"/>
+       </g>
+       <g display="inline">
+               <g>
+                       <path fill="#FFFFFF" d="M526.919,34.508l1.253,0.397c-0.192,0.699-0.511,1.218-0.959,1.556c-0.446,0.34-1.014,0.509-1.701,0.509
+                               c-0.85,0-1.549-0.291-2.096-0.871c-0.547-0.581-0.821-1.375-0.821-2.382c0-1.065,0.276-1.893,0.826-2.482
+                               c0.55-0.59,1.273-0.884,2.17-0.884c0.782,0,1.419,0.231,1.907,0.694c0.291,0.274,0.509,0.667,0.655,1.179l-1.28,0.306
+                               c-0.076-0.332-0.233-0.594-0.473-0.786c-0.24-0.192-0.532-0.288-0.875-0.288c-0.474,0-0.86,0.17-1.155,0.511
+                               c-0.296,0.341-0.443,0.892-0.443,1.655c0,0.809,0.146,1.385,0.437,1.729c0.291,0.343,0.669,0.515,1.135,0.515
+                               c0.343,0,0.638-0.109,0.886-0.327C526.633,35.32,526.81,34.977,526.919,34.508z"/>
+                       <path fill="#FFFFFF" d="M529.018,33.701c0-0.652,0.098-1.199,0.293-1.642c0.146-0.326,0.344-0.619,0.596-0.878
+                               c0.252-0.259,0.528-0.451,0.828-0.576c0.399-0.169,0.859-0.253,1.38-0.253c0.943,0,1.698,0.293,2.264,0.878
+                               c0.567,0.585,0.85,1.399,0.85,2.441c0,1.033-0.281,1.842-0.843,2.425c-0.562,0.584-1.313,0.876-2.253,0.876
+                               c-0.952,0-1.709-0.291-2.27-0.871C529.3,35.519,529.018,34.719,529.018,33.701z M530.351,33.657c0,0.725,0.167,1.274,0.502,1.648
+                               c0.335,0.374,0.761,0.561,1.275,0.561c0.516,0,0.938-0.185,1.269-0.557c0.33-0.371,0.495-0.928,0.495-1.67
+                               c0-0.733-0.16-1.281-0.482-1.642c-0.321-0.361-0.748-0.541-1.282-0.541c-0.532,0-0.961,0.183-1.288,0.548
+                               C530.514,32.37,530.351,32.921,530.351,33.657z"/>
+                       <path fill="#FFFFFF" d="M536.235,36.862v-6.401h2.074c0.786,0,1.298,0.032,1.537,0.096c0.367,0.096,0.673,0.305,0.922,0.627
+                               c0.246,0.322,0.371,0.737,0.371,1.246c0,0.393-0.072,0.723-0.214,0.991c-0.144,0.268-0.324,0.478-0.544,0.631
+                               c-0.219,0.153-0.443,0.254-0.67,0.304c-0.309,0.061-0.755,0.092-1.34,0.092h-0.843v2.414H536.235z M537.527,31.544v1.816h0.708
+                               c0.508,0,0.849-0.033,1.021-0.1c0.172-0.067,0.307-0.172,0.405-0.314c0.097-0.143,0.146-0.309,0.146-0.498
+                               c0-0.233-0.069-0.425-0.206-0.576c-0.137-0.151-0.31-0.246-0.52-0.284c-0.154-0.029-0.464-0.044-0.929-0.044H537.527z"/>
+                       <path fill="#FFFFFF" d="M542.199,36.862v-6.401h2.074c0.786,0,1.298,0.032,1.537,0.096c0.367,0.096,0.673,0.305,0.922,0.627
+                               c0.246,0.322,0.371,0.737,0.371,1.246c0,0.393-0.072,0.723-0.213,0.991c-0.144,0.268-0.324,0.478-0.544,0.631
+                               c-0.219,0.153-0.443,0.254-0.67,0.304c-0.309,0.061-0.755,0.092-1.34,0.092h-0.843v2.414H542.199z M543.491,31.544v1.816h0.708
+                               c0.508,0,0.849-0.033,1.021-0.1c0.172-0.067,0.307-0.172,0.405-0.314c0.097-0.143,0.146-0.309,0.146-0.498
+                               c0-0.233-0.069-0.425-0.206-0.576c-0.137-0.151-0.31-0.246-0.52-0.284c-0.154-0.029-0.464-0.044-0.93-0.044H543.491z"/>
+                       <path fill="#FFFFFF" d="M548.163,36.862v-6.401h4.746v1.083h-3.454v1.419h3.213v1.078h-3.213v1.742h3.576v1.078H548.163z"/>
+                       <path fill="#FFFFFF" d="M554.132,36.862v-6.401h2.72c0.684,0,1.182,0.058,1.491,0.173c0.31,0.115,0.558,0.319,0.744,0.613
+                               c0.186,0.294,0.279,0.63,0.279,1.009c0,0.48-0.141,0.877-0.423,1.19c-0.282,0.313-0.704,0.51-1.266,0.591
+                               c0.279,0.163,0.51,0.342,0.692,0.537c0.182,0.195,0.427,0.541,0.735,1.039l0.782,1.249h-1.546l-0.934-1.393
+                               c-0.332-0.498-0.559-0.811-0.681-0.941c-0.122-0.13-0.252-0.218-0.388-0.267c-0.138-0.048-0.354-0.072-0.651-0.072h-0.262v2.672
+                               H554.132z M555.424,33.168h0.956c0.621,0,1.007-0.026,1.162-0.079c0.153-0.052,0.275-0.143,0.362-0.271
+                               c0.087-0.128,0.131-0.288,0.131-0.48c0-0.215-0.057-0.389-0.173-0.522c-0.115-0.132-0.277-0.216-0.487-0.251
+                               c-0.105-0.015-0.419-0.022-0.943-0.022h-1.008V33.168z"/>
+                       <path fill="#FFFFFF" d="M563.073,36.862v-6.401h1.292v2.519h2.532v-2.519h1.292v6.401h-1.292v-2.799h-2.532v2.799H563.073z"/>
+                       <path fill="#FFFFFF" d="M575.299,36.862h-1.407l-0.559-1.454h-2.558l-0.529,1.454h-1.371l2.493-6.401h1.366L575.299,36.862z
+                                M572.919,34.329l-0.882-2.375l-0.864,2.375H572.919z"/>
+                       <path fill="#FFFFFF" d="M575.988,36.862v-6.401h2.72c0.684,0,1.182,0.058,1.491,0.173c0.31,0.115,0.558,0.319,0.744,0.613
+                               c0.186,0.294,0.279,0.63,0.279,1.009c0,0.48-0.141,0.877-0.423,1.19c-0.282,0.313-0.704,0.51-1.266,0.591
+                               c0.279,0.163,0.51,0.342,0.692,0.537c0.182,0.195,0.427,0.541,0.735,1.039l0.782,1.249h-1.546l-0.934-1.393
+                               c-0.332-0.498-0.559-0.811-0.681-0.941c-0.122-0.13-0.252-0.218-0.388-0.267c-0.138-0.048-0.354-0.072-0.651-0.072h-0.262v2.672
+                               H575.988z M577.281,33.168h0.956c0.621,0,1.007-0.026,1.162-0.079c0.153-0.052,0.275-0.143,0.362-0.271
+                               c0.087-0.128,0.131-0.288,0.131-0.48c0-0.215-0.057-0.389-0.173-0.522c-0.115-0.132-0.277-0.216-0.487-0.251
+                               c-0.105-0.015-0.419-0.022-0.943-0.022h-1.008V33.168z"/>
+                       <path fill="#FFFFFF" d="M582.446,30.461h2.558c0.506,0,0.884,0.021,1.133,0.063c0.248,0.043,0.472,0.13,0.668,0.264
+                               c0.197,0.134,0.361,0.312,0.491,0.535c0.132,0.222,0.197,0.472,0.197,0.749c0,0.3-0.081,0.575-0.243,0.825
+                               c-0.161,0.25-0.38,0.438-0.657,0.563c0.39,0.114,0.69,0.307,0.899,0.581c0.21,0.274,0.314,0.595,0.314,0.965
+                               c0,0.291-0.068,0.574-0.203,0.849c-0.136,0.275-0.32,0.495-0.555,0.659c-0.234,0.165-0.523,0.266-0.866,0.304
+                               c-0.215,0.023-0.735,0.038-1.559,0.044h-2.178V30.461z M583.739,31.526v1.48h0.847c0.504,0,0.817-0.007,0.939-0.022
+                               c0.22-0.026,0.395-0.103,0.521-0.229c0.127-0.127,0.19-0.293,0.19-0.5c0-0.198-0.054-0.358-0.164-0.483
+                               c-0.109-0.123-0.272-0.198-0.487-0.225c-0.128-0.015-0.496-0.022-1.104-0.022H583.739z M583.739,34.072v1.711h1.196
+                               c0.466,0,0.761-0.013,0.887-0.039c0.192-0.035,0.348-0.12,0.469-0.255c0.121-0.136,0.181-0.317,0.181-0.544
+                               c0-0.192-0.047-0.355-0.14-0.489s-0.228-0.231-0.404-0.293c-0.177-0.061-0.559-0.092-1.147-0.092H583.739z"/>
+                       <path fill="#FFFFFF" d="M588.637,33.701c0-0.652,0.098-1.199,0.293-1.642c0.146-0.326,0.344-0.619,0.596-0.878
+                               c0.252-0.259,0.528-0.451,0.828-0.576c0.399-0.169,0.859-0.253,1.38-0.253c0.943,0,1.698,0.293,2.264,0.878
+                               c0.567,0.585,0.85,1.399,0.85,2.441c0,1.033-0.281,1.842-0.843,2.425c-0.562,0.584-1.313,0.876-2.253,0.876
+                               c-0.952,0-1.709-0.291-2.27-0.871C588.919,35.519,588.637,34.719,588.637,33.701z M589.969,33.657
+                               c0,0.725,0.167,1.274,0.502,1.648c0.335,0.374,0.761,0.561,1.275,0.561c0.516,0,0.938-0.185,1.269-0.557
+                               c0.33-0.371,0.495-0.928,0.495-1.67c0-0.733-0.16-1.281-0.482-1.642c-0.321-0.361-0.748-0.541-1.282-0.541
+                               c-0.532,0-0.962,0.183-1.288,0.548C590.133,32.37,589.969,32.921,589.969,33.657z"/>
+                       <path fill="#FFFFFF" d="M595.859,36.862v-6.401h2.72c0.684,0,1.182,0.058,1.491,0.173c0.31,0.115,0.558,0.319,0.744,0.613
+                               c0.186,0.294,0.279,0.63,0.279,1.009c0,0.48-0.141,0.877-0.423,1.19s-0.704,0.51-1.266,0.591c0.279,0.163,0.51,0.342,0.692,0.537
+                               c0.182,0.195,0.427,0.541,0.735,1.039l0.782,1.249h-1.546l-0.934-1.393c-0.332-0.498-0.559-0.811-0.681-0.941
+                               c-0.122-0.13-0.252-0.218-0.388-0.267c-0.138-0.048-0.354-0.072-0.651-0.072h-0.262v2.672H595.859z M597.151,33.168h0.956
+                               c0.621,0,1.007-0.026,1.162-0.079c0.153-0.052,0.275-0.143,0.362-0.271c0.087-0.128,0.131-0.288,0.131-0.48
+                               c0-0.215-0.057-0.389-0.173-0.522c-0.115-0.132-0.277-0.216-0.487-0.251c-0.105-0.015-0.419-0.022-0.943-0.022h-1.008V33.168z"/>
+               </g>
+       </g>
+       <g display="inline">
+               <path fill="#FFFFFF" d="M274.719,207.659v-6.401h1.292v2.52h2.532v-2.52h1.292v6.401h-1.292v-2.798h-2.532v2.798H274.719z"/>
+               <path fill="#FFFFFF" d="M286.944,207.659h-1.406l-0.559-1.453h-2.559l-0.528,1.453h-1.371l2.493-6.401h1.367L286.944,207.659z
+                        M284.564,205.127l-0.882-2.375l-0.864,2.375H284.564z"/>
+               <path fill="#FFFFFF" d="M287.642,207.659v-6.401h1.257l2.62,4.274v-4.274h1.201v6.401h-1.297l-2.58-4.174v4.174H287.642z"/>
+               <path fill="#FFFFFF" d="M298.182,205.306l1.253,0.398c-0.192,0.699-0.512,1.218-0.959,1.556c-0.447,0.34-1.013,0.508-1.7,0.508
+                       c-0.85,0-1.548-0.29-2.096-0.87c-0.547-0.581-0.821-1.375-0.821-2.382c0-1.065,0.275-1.893,0.825-2.482
+                       c0.55-0.59,1.273-0.885,2.17-0.885c0.783,0,1.419,0.232,1.908,0.695c0.291,0.274,0.509,0.667,0.655,1.179l-1.279,0.306
+                       c-0.076-0.332-0.233-0.594-0.474-0.786c-0.24-0.192-0.532-0.288-0.875-0.288c-0.474,0-0.86,0.17-1.155,0.511
+                       c-0.296,0.34-0.443,0.892-0.443,1.654c0,0.809,0.146,1.385,0.437,1.729c0.291,0.343,0.669,0.515,1.135,0.515
+                       c0.343,0,0.639-0.109,0.886-0.328C297.897,206.119,298.074,205.775,298.182,205.306z"/>
+               <path fill="#FFFFFF" d="M300.282,204.498c0-0.652,0.098-1.199,0.293-1.642c0.146-0.326,0.344-0.618,0.596-0.877
+                       s0.528-0.451,0.828-0.576c0.399-0.169,0.859-0.254,1.38-0.254c0.943,0,1.697,0.293,2.264,0.878
+                       c0.566,0.585,0.849,1.399,0.849,2.44c0,1.034-0.281,1.842-0.843,2.426c-0.562,0.584-1.313,0.875-2.253,0.875
+                       c-0.952,0-1.709-0.29-2.27-0.87C300.563,206.317,300.282,205.517,300.282,204.498z M301.614,204.455
+                       c0,0.725,0.167,1.274,0.502,1.648c0.335,0.374,0.76,0.561,1.275,0.561c0.515,0,0.938-0.185,1.269-0.557
+                       c0.33-0.371,0.495-0.928,0.495-1.67c0-0.733-0.161-1.281-0.483-1.642c-0.322-0.361-0.749-0.541-1.281-0.541
+                       c-0.533,0-0.962,0.182-1.288,0.548C301.777,203.167,301.614,203.718,301.614,204.455z"/>
+               <path fill="#FFFFFF" d="M311.595,205.306l1.253,0.398c-0.192,0.699-0.512,1.218-0.959,1.556c-0.447,0.34-1.013,0.508-1.7,0.508
+                       c-0.85,0-1.548-0.29-2.096-0.87c-0.547-0.581-0.821-1.375-0.821-2.382c0-1.065,0.275-1.893,0.825-2.482
+                       c0.55-0.59,1.273-0.885,2.17-0.885c0.783,0,1.419,0.232,1.908,0.695c0.291,0.274,0.509,0.667,0.655,1.179l-1.279,0.306
+                       c-0.076-0.332-0.233-0.594-0.474-0.786c-0.24-0.192-0.532-0.288-0.875-0.288c-0.474,0-0.86,0.17-1.155,0.511
+                       c-0.296,0.34-0.443,0.892-0.443,1.654c0,0.809,0.146,1.385,0.437,1.729c0.291,0.343,0.669,0.515,1.135,0.515
+                       c0.343,0,0.639-0.109,0.886-0.328C311.309,206.119,311.487,205.775,311.595,205.306z"/>
+               <path fill="#FFFFFF" d="M313.974,207.659v-6.401h1.292v2.842l2.611-2.842h1.738l-2.41,2.493l2.541,3.908h-1.672l-1.76-3.004
+                       l-1.048,1.069v1.935H313.974z"/>
+       </g>
+       <g display="inline">
+               <path fill="#FFFFFF" d="M247.067,230.239v-6.401h1.292v2.52h2.532v-2.52h1.292v6.401h-1.292v-2.798h-2.532v2.798H247.067z"/>
+               <path fill="#FFFFFF" d="M253.258,227.078c0-0.652,0.098-1.199,0.293-1.642c0.146-0.326,0.344-0.618,0.596-0.877
+                       c0.252-0.259,0.528-0.451,0.828-0.576c0.399-0.169,0.859-0.254,1.38-0.254c0.943,0,1.697,0.293,2.264,0.878
+                       s0.849,1.399,0.849,2.44c0,1.034-0.281,1.842-0.843,2.426c-0.562,0.584-1.313,0.875-2.253,0.875c-0.952,0-1.709-0.29-2.27-0.87
+                       C253.539,228.896,253.258,228.096,253.258,227.078z M254.59,227.034c0,0.725,0.167,1.274,0.502,1.648
+                       c0.335,0.374,0.76,0.561,1.275,0.561s0.938-0.185,1.269-0.557c0.33-0.371,0.495-0.928,0.495-1.67c0-0.733-0.161-1.281-0.483-1.642
+                       c-0.322-0.361-0.749-0.541-1.281-0.541c-0.533,0-0.962,0.182-1.288,0.548C254.753,225.747,254.59,226.298,254.59,227.034z"/>
+               <path fill="#FFFFFF" d="M260.466,223.838h1.292v3.467c0,0.55,0.016,0.907,0.048,1.069c0.055,0.262,0.187,0.473,0.395,0.632
+                       c0.208,0.158,0.493,0.238,0.854,0.238c0.367,0,0.643-0.075,0.83-0.225c0.186-0.149,0.298-0.334,0.336-0.552
+                       c0.038-0.218,0.057-0.581,0.057-1.088v-3.54h1.292v3.362c0,0.768-0.035,1.312-0.105,1.628c-0.07,0.318-0.199,0.586-0.386,0.803
+                       c-0.188,0.219-0.439,0.393-0.753,0.522c-0.314,0.13-0.725,0.194-1.231,0.194c-0.611,0-1.075-0.07-1.391-0.212
+                       c-0.316-0.141-0.565-0.324-0.749-0.55c-0.183-0.225-0.304-0.462-0.362-0.709c-0.084-0.367-0.127-0.908-0.127-1.624V223.838z"/>
+               <path fill="#FFFFFF" d="M269.91,227.885v-1.078h2.786v2.55c-0.271,0.262-0.663,0.493-1.176,0.692
+                       c-0.514,0.2-1.034,0.299-1.561,0.299c-0.669,0-1.253-0.14-1.751-0.421c-0.498-0.28-0.872-0.682-1.122-1.205
+                       c-0.25-0.522-0.375-1.091-0.375-1.705c0-0.667,0.14-1.258,0.419-1.777c0.279-0.518,0.688-0.916,1.227-1.192
+                       c0.41-0.212,0.921-0.319,1.532-0.319c0.795,0,1.415,0.167,1.862,0.501c0.447,0.333,0.734,0.794,0.863,1.382l-1.284,0.241
+                       c-0.09-0.314-0.26-0.563-0.508-0.745c-0.249-0.181-0.56-0.273-0.932-0.273c-0.565,0-1.014,0.179-1.347,0.537
+                       c-0.334,0.359-0.5,0.89-0.5,1.594c0,0.76,0.169,1.329,0.506,1.71c0.338,0.379,0.78,0.57,1.327,0.57
+                       c0.271,0,0.542-0.053,0.815-0.159c0.272-0.107,0.505-0.235,0.701-0.386v-0.813H269.91z"/>
+               <path fill="#FFFFFF" d="M273.892,230.239v-6.401h1.292v2.52h2.532v-2.52h1.292v6.401h-1.292v-2.798h-2.532v2.798H273.892z"/>
+               <path fill="#FFFFFF" d="M281.786,230.239v-5.318h-1.899v-1.083h5.086v1.083h-1.895v5.318H281.786z"/>
+               <path fill="#FFFFFF" d="M285.545,227.078c0-0.652,0.098-1.199,0.293-1.642c0.146-0.326,0.344-0.618,0.596-0.877
+                       c0.252-0.259,0.528-0.451,0.828-0.576c0.399-0.169,0.859-0.254,1.38-0.254c0.943,0,1.697,0.293,2.264,0.878
+                       s0.849,1.399,0.849,2.44c0,1.034-0.281,1.842-0.843,2.426c-0.562,0.584-1.313,0.875-2.253,0.875c-0.952,0-1.709-0.29-2.27-0.87
+                       C285.826,228.896,285.545,228.096,285.545,227.078z M286.876,227.034c0,0.725,0.167,1.274,0.502,1.648
+                       c0.335,0.374,0.76,0.561,1.275,0.561s0.938-0.185,1.269-0.557c0.33-0.371,0.495-0.928,0.495-1.67c0-0.733-0.161-1.281-0.483-1.642
+                       c-0.322-0.361-0.749-0.541-1.281-0.541s-0.962,0.182-1.288,0.548C287.039,225.747,286.876,226.298,286.876,227.034z"/>
+               <path fill="#FFFFFF" d="M292.775,230.239v-6.401h1.257l2.62,4.274v-4.274h1.201v6.401h-1.297l-2.58-4.174v4.174H292.775z"/>
+       </g>
+</g>
+</svg>
diff --git a/assets/keweenaw-logo.png b/assets/keweenaw-logo.png
new file mode 100644 (file)
index 0000000..a7b29e4
Binary files /dev/null and b/assets/keweenaw-logo.png differ
diff --git a/css/app.css b/css/app.css
new file mode 100644 (file)
index 0000000..ec91b5e
--- /dev/null
@@ -0,0 +1,6969 @@
+/* $tabbar-menu-icon-text-indent: rem-calc(55);*/
+/* $topbar-height: rem-calc(61);*/
+/* $topbar-link-font-size: rem-calc(20);*/
+/* $topbar-link-dropdown-padding: rem-calc(16);*/
+meta.foundation-version {
+  font-family: "/5.5.3/"; }
+
+meta.foundation-mq-small {
+  font-family: "/only screen/";
+  width: 0em; }
+
+meta.foundation-mq-small-only {
+  font-family: "/only screen and (max-width: 40em)/";
+  width: 0em; }
+
+meta.foundation-mq-medium {
+  font-family: "/only screen and (min-width:40.063em)/";
+  width: 40.063em; }
+
+meta.foundation-mq-medium-only {
+  font-family: "/only screen and (min-width:40.063em) and (max-width:64em)/";
+  width: 40.063em; }
+
+meta.foundation-mq-large {
+  font-family: "/only screen and (min-width:64.063em)/";
+  width: 64.063em; }
+
+meta.foundation-mq-large-only {
+  font-family: "/only screen and (min-width:64.063em) and (max-width:90em)/";
+  width: 64.063em; }
+
+meta.foundation-mq-xlarge {
+  font-family: "/only screen and (min-width:90.063em)/";
+  width: 90.063em; }
+
+meta.foundation-mq-xlarge-only {
+  font-family: "/only screen and (min-width:90.063em) and (max-width:120em)/";
+  width: 90.063em; }
+
+meta.foundation-mq-xxlarge {
+  font-family: "/only screen and (min-width:120.063em)/";
+  width: 120.063em; }
+
+meta.foundation-data-attribute-namespace {
+  font-family: false; }
+
+html, body {
+  height: 100%; }
+
+*, *:before, *:after {
+  -webkit-box-sizing: border-box;
+  -moz-box-sizing: border-box;
+  box-sizing: border-box; }
+
+html, body {
+  font-size: 100%; }
+
+body {
+  background: #fff;
+  color: #000000;
+  cursor: auto;
+  font-family: "Open Sans", sans-serif;
+  font-style: normal;
+  font-weight: normal;
+  line-height: 150%;
+  margin: 0;
+  padding: 0;
+  position: relative; }
+
+a:hover {
+  cursor: pointer; }
+
+img {
+  max-width: 100%;
+  height: auto; }
+
+img {
+  -ms-interpolation-mode: bicubic; }
+
+#map_canvas img, #map_canvas embed, #map_canvas object, .map_canvas img, .map_canvas embed, .map_canvas object, .mqa-display img, .mqa-display embed, .mqa-display object {
+  max-width: none !important; }
+
+.left {
+  float: left !important; }
+
+.right {
+  float: right !important; }
+
+.clearfix:before, .clearfix:after {
+  content: " ";
+  display: table; }
+.clearfix:after {
+  clear: both; }
+
+.hide {
+  display: none; }
+
+.invisible {
+  visibility: hidden; }
+
+.antialiased {
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale; }
+
+img {
+  display: inline-block;
+  vertical-align: middle; }
+
+textarea {
+  height: auto;
+  min-height: 50px; }
+
+select {
+  width: 100%; }
+
+.row {
+  margin: 0 auto;
+  max-width: 62.5rem;
+  width: 100%; }
+  .row:before, .row:after {
+    content: " ";
+    display: table; }
+  .row:after {
+    clear: both; }
+  .row.collapse > .column, .row.collapse > .columns {
+    padding-left: 0;
+    padding-right: 0; }
+  .row.collapse .row {
+    margin-left: 0;
+    margin-right: 0; }
+  .row .row {
+    margin: 0 -0.9375rem;
+    max-width: none;
+    width: auto; }
+    .row .row:before, .row .row:after {
+      content: " ";
+      display: table; }
+    .row .row:after {
+      clear: both; }
+    .row .row.collapse {
+      margin: 0;
+      max-width: none;
+      width: auto; }
+      .row .row.collapse:before, .row .row.collapse:after {
+        content: " ";
+        display: table; }
+      .row .row.collapse:after {
+        clear: both; }
+
+.column, .columns {
+  padding-left: 0.9375rem;
+  padding-right: 0.9375rem;
+  width: 100%;
+  float: left; }
+
+.column + .column:last-child, .columns + .columns:last-child {
+  float: right; }
+.column + .column.end, .columns + .columns.end {
+  float: left; }
+
+@media only screen {
+  .small-push-0 {
+    position: relative;
+    left: 0;
+    right: auto; }
+  .small-pull-0 {
+    position: relative;
+    right: 0;
+    left: auto; }
+  .small-push-1 {
+    position: relative;
+    left: 8.3333333333%;
+    right: auto; }
+  .small-pull-1 {
+    position: relative;
+    right: 8.3333333333%;
+    left: auto; }
+  .small-push-2 {
+    position: relative;
+    left: 16.6666666667%;
+    right: auto; }
+  .small-pull-2 {
+    position: relative;
+    right: 16.6666666667%;
+    left: auto; }
+  .small-push-3 {
+    position: relative;
+    left: 25%;
+    right: auto; }
+  .small-pull-3 {
+    position: relative;
+    right: 25%;
+    left: auto; }
+  .small-push-4 {
+    position: relative;
+    left: 33.3333333333%;
+    right: auto; }
+  .small-pull-4 {
+    position: relative;
+    right: 33.3333333333%;
+    left: auto; }
+  .small-push-5 {
+    position: relative;
+    left: 41.6666666667%;
+    right: auto; }
+  .small-pull-5 {
+    position: relative;
+    right: 41.6666666667%;
+    left: auto; }
+  .small-push-6 {
+    position: relative;
+    left: 50%;
+    right: auto; }
+  .small-pull-6 {
+    position: relative;
+    right: 50%;
+    left: auto; }
+  .small-push-7 {
+    position: relative;
+    left: 58.3333333333%;
+    right: auto; }
+  .small-pull-7 {
+    position: relative;
+    right: 58.3333333333%;
+    left: auto; }
+  .small-push-8 {
+    position: relative;
+    left: 66.6666666667%;
+    right: auto; }
+  .small-pull-8 {
+    position: relative;
+    right: 66.6666666667%;
+    left: auto; }
+  .small-push-9 {
+    position: relative;
+    left: 75%;
+    right: auto; }
+  .small-pull-9 {
+    position: relative;
+    right: 75%;
+    left: auto; }
+  .small-push-10 {
+    position: relative;
+    left: 83.3333333333%;
+    right: auto; }
+  .small-pull-10 {
+    position: relative;
+    right: 83.3333333333%;
+    left: auto; }
+  .small-push-11 {
+    position: relative;
+    left: 91.6666666667%;
+    right: auto; }
+  .small-pull-11 {
+    position: relative;
+    right: 91.6666666667%;
+    left: auto; }
+  .column, .columns {
+    position: relative;
+    padding-left: 0.9375rem;
+    padding-right: 0.9375rem;
+    float: left; }
+  .small-1 {
+    width: 8.3333333333%; }
+  .small-2 {
+    width: 16.6666666667%; }
+  .small-3 {
+    width: 25%; }
+  .small-4 {
+    width: 33.3333333333%; }
+  .small-5 {
+    width: 41.6666666667%; }
+  .small-6 {
+    width: 50%; }
+  .small-7 {
+    width: 58.3333333333%; }
+  .small-8 {
+    width: 66.6666666667%; }
+  .small-9 {
+    width: 75%; }
+  .small-10 {
+    width: 83.3333333333%; }
+  .small-11 {
+    width: 91.6666666667%; }
+  .small-12 {
+    width: 100%; }
+  .small-offset-0 {
+    margin-left: 0 !important; }
+  .small-offset-1 {
+    margin-left: 8.3333333333% !important; }
+  .small-offset-2 {
+    margin-left: 16.6666666667% !important; }
+  .small-offset-3 {
+    margin-left: 25% !important; }
+  .small-offset-4 {
+    margin-left: 33.3333333333% !important; }
+  .small-offset-5 {
+    margin-left: 41.6666666667% !important; }
+  .small-offset-6 {
+    margin-left: 50% !important; }
+  .small-offset-7 {
+    margin-left: 58.3333333333% !important; }
+  .small-offset-8 {
+    margin-left: 66.6666666667% !important; }
+  .small-offset-9 {
+    margin-left: 75% !important; }
+  .small-offset-10 {
+    margin-left: 83.3333333333% !important; }
+  .small-offset-11 {
+    margin-left: 91.6666666667% !important; }
+  .small-reset-order {
+    float: left;
+    left: auto;
+    margin-left: 0;
+    margin-right: 0;
+    right: auto; }
+  .column.small-centered, .columns.small-centered {
+    margin-left: auto;
+    margin-right: auto;
+    float: none; }
+  .column.small-uncentered, .columns.small-uncentered {
+    float: left;
+    margin-left: 0;
+    margin-right: 0; }
+  .column.small-centered:last-child, .columns.small-centered:last-child {
+    float: none; }
+  .column.small-uncentered:last-child, .columns.small-uncentered:last-child {
+    float: left; }
+  .column.small-uncentered.opposite, .columns.small-uncentered.opposite {
+    float: right; }
+  .row.small-collapse > .column, .row.small-collapse > .columns {
+    padding-left: 0;
+    padding-right: 0; }
+  .row.small-collapse .row {
+    margin-left: 0;
+    margin-right: 0; }
+  .row.small-uncollapse > .column, .row.small-uncollapse > .columns {
+    padding-left: 0.9375rem;
+    padding-right: 0.9375rem;
+    float: left; } }
+
+@media only screen and (min-width:40.063em) {
+  .medium-push-0 {
+    position: relative;
+    left: 0;
+    right: auto; }
+  .medium-pull-0 {
+    position: relative;
+    right: 0;
+    left: auto; }
+  .medium-push-1 {
+    position: relative;
+    left: 8.3333333333%;
+    right: auto; }
+  .medium-pull-1 {
+    position: relative;
+    right: 8.3333333333%;
+    left: auto; }
+  .medium-push-2 {
+    position: relative;
+    left: 16.6666666667%;
+    right: auto; }
+  .medium-pull-2 {
+    position: relative;
+    right: 16.6666666667%;
+    left: auto; }
+  .medium-push-3 {
+    position: relative;
+    left: 25%;
+    right: auto; }
+  .medium-pull-3 {
+    position: relative;
+    right: 25%;
+    left: auto; }
+  .medium-push-4 {
+    position: relative;
+    left: 33.3333333333%;
+    right: auto; }
+  .medium-pull-4 {
+    position: relative;
+    right: 33.3333333333%;
+    left: auto; }
+  .medium-push-5 {
+    position: relative;
+    left: 41.6666666667%;
+    right: auto; }
+  .medium-pull-5 {
+    position: relative;
+    right: 41.6666666667%;
+    left: auto; }
+  .medium-push-6 {
+    position: relative;
+    left: 50%;
+    right: auto; }
+  .medium-pull-6 {
+    position: relative;
+    right: 50%;
+    left: auto; }
+  .medium-push-7 {
+    position: relative;
+    left: 58.3333333333%;
+    right: auto; }
+  .medium-pull-7 {
+    position: relative;
+    right: 58.3333333333%;
+    left: auto; }
+  .medium-push-8 {
+    position: relative;
+    left: 66.6666666667%;
+    right: auto; }
+  .medium-pull-8 {
+    position: relative;
+    right: 66.6666666667%;
+    left: auto; }
+  .medium-push-9 {
+    position: relative;
+    left: 75%;
+    right: auto; }
+  .medium-pull-9 {
+    position: relative;
+    right: 75%;
+    left: auto; }
+  .medium-push-10 {
+    position: relative;
+    left: 83.3333333333%;
+    right: auto; }
+  .medium-pull-10 {
+    position: relative;
+    right: 83.3333333333%;
+    left: auto; }
+  .medium-push-11 {
+    position: relative;
+    left: 91.6666666667%;
+    right: auto; }
+  .medium-pull-11 {
+    position: relative;
+    right: 91.6666666667%;
+    left: auto; }
+  .column, .columns {
+    position: relative;
+    padding-left: 0.9375rem;
+    padding-right: 0.9375rem;
+    float: left; }
+  .medium-1 {
+    width: 8.3333333333%; }
+  .medium-2 {
+    width: 16.6666666667%; }
+  .medium-3 {
+    width: 25%; }
+  .medium-4 {
+    width: 33.3333333333%; }
+  .medium-5 {
+    width: 41.6666666667%; }
+  .medium-6 {
+    width: 50%; }
+  .medium-7 {
+    width: 58.3333333333%; }
+  .medium-8 {
+    width: 66.6666666667%; }
+  .medium-9 {
+    width: 75%; }
+  .medium-10 {
+    width: 83.3333333333%; }
+  .medium-11 {
+    width: 91.6666666667%; }
+  .medium-12 {
+    width: 100%; }
+  .medium-offset-0 {
+    margin-left: 0 !important; }
+  .medium-offset-1 {
+    margin-left: 8.3333333333% !important; }
+  .medium-offset-2 {
+    margin-left: 16.6666666667% !important; }
+  .medium-offset-3 {
+    margin-left: 25% !important; }
+  .medium-offset-4 {
+    margin-left: 33.3333333333% !important; }
+  .medium-offset-5 {
+    margin-left: 41.6666666667% !important; }
+  .medium-offset-6 {
+    margin-left: 50% !important; }
+  .medium-offset-7 {
+    margin-left: 58.3333333333% !important; }
+  .medium-offset-8 {
+    margin-left: 66.6666666667% !important; }
+  .medium-offset-9 {
+    margin-left: 75% !important; }
+  .medium-offset-10 {
+    margin-left: 83.3333333333% !important; }
+  .medium-offset-11 {
+    margin-left: 91.6666666667% !important; }
+  .medium-reset-order {
+    float: left;
+    left: auto;
+    margin-left: 0;
+    margin-right: 0;
+    right: auto; }
+  .column.medium-centered, .columns.medium-centered {
+    margin-left: auto;
+    margin-right: auto;
+    float: none; }
+  .column.medium-uncentered, .columns.medium-uncentered {
+    float: left;
+    margin-left: 0;
+    margin-right: 0; }
+  .column.medium-centered:last-child, .columns.medium-centered:last-child {
+    float: none; }
+  .column.medium-uncentered:last-child, .columns.medium-uncentered:last-child {
+    float: left; }
+  .column.medium-uncentered.opposite, .columns.medium-uncentered.opposite {
+    float: right; }
+  .row.medium-collapse > .column, .row.medium-collapse > .columns {
+    padding-left: 0;
+    padding-right: 0; }
+  .row.medium-collapse .row {
+    margin-left: 0;
+    margin-right: 0; }
+  .row.medium-uncollapse > .column, .row.medium-uncollapse > .columns {
+    padding-left: 0.9375rem;
+    padding-right: 0.9375rem;
+    float: left; }
+  .push-0 {
+    position: relative;
+    left: 0;
+    right: auto; }
+  .pull-0 {
+    position: relative;
+    right: 0;
+    left: auto; }
+  .push-1 {
+    position: relative;
+    left: 8.3333333333%;
+    right: auto; }
+  .pull-1 {
+    position: relative;
+    right: 8.3333333333%;
+    left: auto; }
+  .push-2 {
+    position: relative;
+    left: 16.6666666667%;
+    right: auto; }
+  .pull-2 {
+    position: relative;
+    right: 16.6666666667%;
+    left: auto; }
+  .push-3 {
+    position: relative;
+    left: 25%;
+    right: auto; }
+  .pull-3 {
+    position: relative;
+    right: 25%;
+    left: auto; }
+  .push-4 {
+    position: relative;
+    left: 33.3333333333%;
+    right: auto; }
+  .pull-4 {
+    position: relative;
+    right: 33.3333333333%;
+    left: auto; }
+  .push-5 {
+    position: relative;
+    left: 41.6666666667%;
+    right: auto; }
+  .pull-5 {
+    position: relative;
+    right: 41.6666666667%;
+    left: auto; }
+  .push-6 {
+    position: relative;
+    left: 50%;
+    right: auto; }
+  .pull-6 {
+    position: relative;
+    right: 50%;
+    left: auto; }
+  .push-7 {
+    position: relative;
+    left: 58.3333333333%;
+    right: auto; }
+  .pull-7 {
+    position: relative;
+    right: 58.3333333333%;
+    left: auto; }
+  .push-8 {
+    position: relative;
+    left: 66.6666666667%;
+    right: auto; }
+  .pull-8 {
+    position: relative;
+    right: 66.6666666667%;
+    left: auto; }
+  .push-9 {
+    position: relative;
+    left: 75%;
+    right: auto; }
+  .pull-9 {
+    position: relative;
+    right: 75%;
+    left: auto; }
+  .push-10 {
+    position: relative;
+    left: 83.3333333333%;
+    right: auto; }
+  .pull-10 {
+    position: relative;
+    right: 83.3333333333%;
+    left: auto; }
+  .push-11 {
+    position: relative;
+    left: 91.6666666667%;
+    right: auto; }
+  .pull-11 {
+    position: relative;
+    right: 91.6666666667%;
+    left: auto; } }
+
+@media only screen and (min-width:64.063em) {
+  .large-push-0 {
+    position: relative;
+    left: 0;
+    right: auto; }
+  .large-pull-0 {
+    position: relative;
+    right: 0;
+    left: auto; }
+  .large-push-1 {
+    position: relative;
+    left: 8.3333333333%;
+    right: auto; }
+  .large-pull-1 {
+    position: relative;
+    right: 8.3333333333%;
+    left: auto; }
+  .large-push-2 {
+    position: relative;
+    left: 16.6666666667%;
+    right: auto; }
+  .large-pull-2 {
+    position: relative;
+    right: 16.6666666667%;
+    left: auto; }
+  .large-push-3 {
+    position: relative;
+    left: 25%;
+    right: auto; }
+  .large-pull-3 {
+    position: relative;
+    right: 25%;
+    left: auto; }
+  .large-push-4 {
+    position: relative;
+    left: 33.3333333333%;
+    right: auto; }
+  .large-pull-4 {
+    position: relative;
+    right: 33.3333333333%;
+    left: auto; }
+  .large-push-5 {
+    position: relative;
+    left: 41.6666666667%;
+    right: auto; }
+  .large-pull-5 {
+    position: relative;
+    right: 41.6666666667%;
+    left: auto; }
+  .large-push-6 {
+    position: relative;
+    left: 50%;
+    right: auto; }
+  .large-pull-6 {
+    position: relative;
+    right: 50%;
+    left: auto; }
+  .large-push-7 {
+    position: relative;
+    left: 58.3333333333%;
+    right: auto; }
+  .large-pull-7 {
+    position: relative;
+    right: 58.3333333333%;
+    left: auto; }
+  .large-push-8 {
+    position: relative;
+    left: 66.6666666667%;
+    right: auto; }
+  .large-pull-8 {
+    position: relative;
+    right: 66.6666666667%;
+    left: auto; }
+  .large-push-9 {
+    position: relative;
+    left: 75%;
+    right: auto; }
+  .large-pull-9 {
+    position: relative;
+    right: 75%;
+    left: auto; }
+  .large-push-10 {
+    position: relative;
+    left: 83.3333333333%;
+    right: auto; }
+  .large-pull-10 {
+    position: relative;
+    right: 83.3333333333%;
+    left: auto; }
+  .large-push-11 {
+    position: relative;
+    left: 91.6666666667%;
+    right: auto; }
+  .large-pull-11 {
+    position: relative;
+    right: 91.6666666667%;
+    left: auto; }
+  .column, .columns {
+    position: relative;
+    padding-left: 0.9375rem;
+    padding-right: 0.9375rem;
+    float: left; }
+  .large-1 {
+    width: 8.3333333333%; }
+  .large-2 {
+    width: 16.6666666667%; }
+  .large-3 {
+    width: 25%; }
+  .large-4 {
+    width: 33.3333333333%; }
+  .large-5 {
+    width: 41.6666666667%; }
+  .large-6 {
+    width: 50%; }
+  .large-7 {
+    width: 58.3333333333%; }
+  .large-8 {
+    width: 66.6666666667%; }
+  .large-9 {
+    width: 75%; }
+  .large-10 {
+    width: 83.3333333333%; }
+  .large-11 {
+    width: 91.6666666667%; }
+  .large-12 {
+    width: 100%; }
+  .large-offset-0 {
+    margin-left: 0 !important; }
+  .large-offset-1 {
+    margin-left: 8.3333333333% !important; }
+  .large-offset-2 {
+    margin-left: 16.6666666667% !important; }
+  .large-offset-3 {
+    margin-left: 25% !important; }
+  .large-offset-4 {
+    margin-left: 33.3333333333% !important; }
+  .large-offset-5 {
+    margin-left: 41.6666666667% !important; }
+  .large-offset-6 {
+    margin-left: 50% !important; }
+  .large-offset-7 {
+    margin-left: 58.3333333333% !important; }
+  .large-offset-8 {
+    margin-left: 66.6666666667% !important; }
+  .large-offset-9 {
+    margin-left: 75% !important; }
+  .large-offset-10 {
+    margin-left: 83.3333333333% !important; }
+  .large-offset-11 {
+    margin-left: 91.6666666667% !important; }
+  .large-reset-order {
+    float: left;
+    left: auto;
+    margin-left: 0;
+    margin-right: 0;
+    right: auto; }
+  .column.large-centered, .columns.large-centered {
+    margin-left: auto;
+    margin-right: auto;
+    float: none; }
+  .column.large-uncentered, .columns.large-uncentered {
+    float: left;
+    margin-left: 0;
+    margin-right: 0; }
+  .column.large-centered:last-child, .columns.large-centered:last-child {
+    float: none; }
+  .column.large-uncentered:last-child, .columns.large-uncentered:last-child {
+    float: left; }
+  .column.large-uncentered.opposite, .columns.large-uncentered.opposite {
+    float: right; }
+  .row.large-collapse > .column, .row.large-collapse > .columns {
+    padding-left: 0;
+    padding-right: 0; }
+  .row.large-collapse .row {
+    margin-left: 0;
+    margin-right: 0; }
+  .row.large-uncollapse > .column, .row.large-uncollapse > .columns {
+    padding-left: 0.9375rem;
+    padding-right: 0.9375rem;
+    float: left; }
+  .push-0 {
+    position: relative;
+    left: 0;
+    right: auto; }
+  .pull-0 {
+    position: relative;
+    right: 0;
+    left: auto; }
+  .push-1 {
+    position: relative;
+    left: 8.3333333333%;
+    right: auto; }
+  .pull-1 {
+    position: relative;
+    right: 8.3333333333%;
+    left: auto; }
+  .push-2 {
+    position: relative;
+    left: 16.6666666667%;
+    right: auto; }
+  .pull-2 {
+    position: relative;
+    right: 16.6666666667%;
+    left: auto; }
+  .push-3 {
+    position: relative;
+    left: 25%;
+    right: auto; }
+  .pull-3 {
+    position: relative;
+    right: 25%;
+    left: auto; }
+  .push-4 {
+    position: relative;
+    left: 33.3333333333%;
+    right: auto; }
+  .pull-4 {
+    position: relative;
+    right: 33.3333333333%;
+    left: auto; }
+  .push-5 {
+    position: relative;
+    left: 41.6666666667%;
+    right: auto; }
+  .pull-5 {
+    position: relative;
+    right: 41.6666666667%;
+    left: auto; }
+  .push-6 {
+    position: relative;
+    left: 50%;
+    right: auto; }
+  .pull-6 {
+    position: relative;
+    right: 50%;
+    left: auto; }
+  .push-7 {
+    position: relative;
+    left: 58.3333333333%;
+    right: auto; }
+  .pull-7 {
+    position: relative;
+    right: 58.3333333333%;
+    left: auto; }
+  .push-8 {
+    position: relative;
+    left: 66.6666666667%;
+    right: auto; }
+  .pull-8 {
+    position: relative;
+    right: 66.6666666667%;
+    left: auto; }
+  .push-9 {
+    position: relative;
+    left: 75%;
+    right: auto; }
+  .pull-9 {
+    position: relative;
+    right: 75%;
+    left: auto; }
+  .push-10 {
+    position: relative;
+    left: 83.3333333333%;
+    right: auto; }
+  .pull-10 {
+    position: relative;
+    right: 83.3333333333%;
+    left: auto; }
+  .push-11 {
+    position: relative;
+    left: 91.6666666667%;
+    right: auto; }
+  .pull-11 {
+    position: relative;
+    right: 91.6666666667%;
+    left: auto; } }
+
+.accordion {
+  margin-bottom: 0;
+  margin-left: 0; }
+  .accordion:before, .accordion:after {
+    content: " ";
+    display: table; }
+  .accordion:after {
+    clear: both; }
+  .accordion .accordion-navigation, .accordion dd {
+    display: block;
+    margin-bottom: 0 !important; }
+    .accordion .accordion-navigation.active > a, .accordion dd.active > a {
+      background: #e8e8e8;
+      color: #222222; }
+    .accordion .accordion-navigation > a, .accordion dd > a {
+      background: #EFEFEF;
+      color: #222222;
+      display: block;
+      font-family: "Open Sans", sans-serif;
+      font-size: 1rem;
+      padding: 1rem; }
+      .accordion .accordion-navigation > a:hover, .accordion dd > a:hover {
+        background: #e3e3e3; }
+    .accordion .accordion-navigation > .content, .accordion dd > .content {
+      display: none;
+      padding: 0.9375rem; }
+      .accordion .accordion-navigation > .content.active, .accordion dd > .content.active {
+        background: #FFFFFF;
+        display: block; }
+
+.alert-box {
+  border-style: solid;
+  border-width: 1px;
+  display: block;
+  font-size: 0.8125rem;
+  font-weight: normal;
+  margin-bottom: 1.25rem;
+  padding: 0.875rem 1.5rem 0.875rem 0.875rem;
+  position: relative;
+  transition: opacity 300ms ease-out;
+  background-color: #008CBA;
+  border-color: #0078a0;
+  color: #FFFFFF; }
+  .alert-box .close {
+    right: 0.25rem;
+    background: inherit;
+    color: #333333;
+    font-size: 1.375rem;
+    line-height: .9;
+    margin-top: -0.6875rem;
+    opacity: 0.3;
+    padding: 0 6px 4px;
+    position: absolute;
+    top: 50%; }
+    .alert-box .close:hover, .alert-box .close:focus {
+      opacity: 0.5; }
+  .alert-box.radius {
+    border-radius: 3px; }
+  .alert-box.round {
+    border-radius: 1000px; }
+  .alert-box.success {
+    background-color: #43AC6A;
+    border-color: #3a945b;
+    color: #FFFFFF; }
+  .alert-box.alert {
+    background-color: #f04124;
+    border-color: #de2d0f;
+    color: #FFFFFF; }
+  .alert-box.secondary {
+    background-color: #e7e7e7;
+    border-color: #c7c7c7;
+    color: #4f4f4f; }
+  .alert-box.warning {
+    background-color: #f08a24;
+    border-color: #de770f;
+    color: #FFFFFF; }
+  .alert-box.info {
+    background-color: #a0d3e8;
+    border-color: #74bfdd;
+    color: #4f4f4f; }
+  .alert-box.alert-close {
+    opacity: 0; }
+
+[class*="block-grid-"] {
+  display: block;
+  padding: 0;
+  margin: 0 -0.625rem; }
+  [class*="block-grid-"]:before, [class*="block-grid-"]:after {
+    content: " ";
+    display: table; }
+  [class*="block-grid-"]:after {
+    clear: both; }
+  [class*="block-grid-"] > li {
+    display: block;
+    float: left;
+    height: auto;
+    padding: 0 0.625rem 1.25rem; }
+
+@media only screen {
+  .small-block-grid-1 > li {
+    list-style: none;
+    width: 100%; }
+    .small-block-grid-1 > li:nth-of-type(1n) {
+      clear: none; }
+    .small-block-grid-1 > li:nth-of-type(1n+1) {
+      clear: both; }
+  .small-block-grid-2 > li {
+    list-style: none;
+    width: 50%; }
+    .small-block-grid-2 > li:nth-of-type(1n) {
+      clear: none; }
+    .small-block-grid-2 > li:nth-of-type(2n+1) {
+      clear: both; }
+  .small-block-grid-3 > li {
+    list-style: none;
+    width: 33.3333333333%; }
+    .small-block-grid-3 > li:nth-of-type(1n) {
+      clear: none; }
+    .small-block-grid-3 > li:nth-of-type(3n+1) {
+      clear: both; }
+  .small-block-grid-4 > li {
+    list-style: none;
+    width: 25%; }
+    .small-block-grid-4 > li:nth-of-type(1n) {
+      clear: none; }
+    .small-block-grid-4 > li:nth-of-type(4n+1) {
+      clear: both; }
+  .small-block-grid-5 > li {
+    list-style: none;
+    width: 20%; }
+    .small-block-grid-5 > li:nth-of-type(1n) {
+      clear: none; }
+    .small-block-grid-5 > li:nth-of-type(5n+1) {
+      clear: both; }
+  .small-block-grid-6 > li {
+    list-style: none;
+    width: 16.6666666667%; }
+    .small-block-grid-6 > li:nth-of-type(1n) {
+      clear: none; }
+    .small-block-grid-6 > li:nth-of-type(6n+1) {
+      clear: both; }
+  .small-block-grid-7 > li {
+    list-style: none;
+    width: 14.2857142857%; }
+    .small-block-grid-7 > li:nth-of-type(1n) {
+      clear: none; }
+    .small-block-grid-7 > li:nth-of-type(7n+1) {
+      clear: both; }
+  .small-block-grid-8 > li {
+    list-style: none;
+    width: 12.5%; }
+    .small-block-grid-8 > li:nth-of-type(1n) {
+      clear: none; }
+    .small-block-grid-8 > li:nth-of-type(8n+1) {
+      clear: both; }
+  .small-block-grid-9 > li {
+    list-style: none;
+    width: 11.1111111111%; }
+    .small-block-grid-9 > li:nth-of-type(1n) {
+      clear: none; }
+    .small-block-grid-9 > li:nth-of-type(9n+1) {
+      clear: both; }
+  .small-block-grid-10 > li {
+    list-style: none;
+    width: 10%; }
+    .small-block-grid-10 > li:nth-of-type(1n) {
+      clear: none; }
+    .small-block-grid-10 > li:nth-of-type(10n+1) {
+      clear: both; }
+  .small-block-grid-11 > li {
+    list-style: none;
+    width: 9.0909090909%; }
+    .small-block-grid-11 > li:nth-of-type(1n) {
+      clear: none; }
+    .small-block-grid-11 > li:nth-of-type(11n+1) {
+      clear: both; }
+  .small-block-grid-12 > li {
+    list-style: none;
+    width: 8.3333333333%; }
+    .small-block-grid-12 > li:nth-of-type(1n) {
+      clear: none; }
+    .small-block-grid-12 > li:nth-of-type(12n+1) {
+      clear: both; } }
+
+@media only screen and (min-width:40.063em) {
+  .medium-block-grid-1 > li {
+    list-style: none;
+    width: 100%; }
+    .medium-block-grid-1 > li:nth-of-type(1n) {
+      clear: none; }
+    .medium-block-grid-1 > li:nth-of-type(1n+1) {
+      clear: both; }
+  .medium-block-grid-2 > li {
+    list-style: none;
+    width: 50%; }
+    .medium-block-grid-2 > li:nth-of-type(1n) {
+      clear: none; }
+    .medium-block-grid-2 > li:nth-of-type(2n+1) {
+      clear: both; }
+  .medium-block-grid-3 > li {
+    list-style: none;
+    width: 33.3333333333%; }
+    .medium-block-grid-3 > li:nth-of-type(1n) {
+      clear: none; }
+    .medium-block-grid-3 > li:nth-of-type(3n+1) {
+      clear: both; }
+  .medium-block-grid-4 > li {
+    list-style: none;
+    width: 25%; }
+    .medium-block-grid-4 > li:nth-of-type(1n) {
+      clear: none; }
+    .medium-block-grid-4 > li:nth-of-type(4n+1) {
+      clear: both; }
+  .medium-block-grid-5 > li {
+    list-style: none;
+    width: 20%; }
+    .medium-block-grid-5 > li:nth-of-type(1n) {
+      clear: none; }
+    .medium-block-grid-5 > li:nth-of-type(5n+1) {
+      clear: both; }
+  .medium-block-grid-6 > li {
+    list-style: none;
+    width: 16.6666666667%; }
+    .medium-block-grid-6 > li:nth-of-type(1n) {
+      clear: none; }
+    .medium-block-grid-6 > li:nth-of-type(6n+1) {
+      clear: both; }
+  .medium-block-grid-7 > li {
+    list-style: none;
+    width: 14.2857142857%; }
+    .medium-block-grid-7 > li:nth-of-type(1n) {
+      clear: none; }
+    .medium-block-grid-7 > li:nth-of-type(7n+1) {
+      clear: both; }
+  .medium-block-grid-8 > li {
+    list-style: none;
+    width: 12.5%; }
+    .medium-block-grid-8 > li:nth-of-type(1n) {
+      clear: none; }
+    .medium-block-grid-8 > li:nth-of-type(8n+1) {
+      clear: both; }
+  .medium-block-grid-9 > li {
+    list-style: none;
+    width: 11.1111111111%; }
+    .medium-block-grid-9 > li:nth-of-type(1n) {
+      clear: none; }
+    .medium-block-grid-9 > li:nth-of-type(9n+1) {
+      clear: both; }
+  .medium-block-grid-10 > li {
+    list-style: none;
+    width: 10%; }
+    .medium-block-grid-10 > li:nth-of-type(1n) {
+      clear: none; }
+    .medium-block-grid-10 > li:nth-of-type(10n+1) {
+      clear: both; }
+  .medium-block-grid-11 > li {
+    list-style: none;
+    width: 9.0909090909%; }
+    .medium-block-grid-11 > li:nth-of-type(1n) {
+      clear: none; }
+    .medium-block-grid-11 > li:nth-of-type(11n+1) {
+      clear: both; }
+  .medium-block-grid-12 > li {
+    list-style: none;
+    width: 8.3333333333%; }
+    .medium-block-grid-12 > li:nth-of-type(1n) {
+      clear: none; }
+    .medium-block-grid-12 > li:nth-of-type(12n+1) {
+      clear: both; } }
+
+@media only screen and (min-width:64.063em) {
+  .large-block-grid-1 > li {
+    list-style: none;
+    width: 100%; }
+    .large-block-grid-1 > li:nth-of-type(1n) {
+      clear: none; }
+    .large-block-grid-1 > li:nth-of-type(1n+1) {
+      clear: both; }
+  .large-block-grid-2 > li {
+    list-style: none;
+    width: 50%; }
+    .large-block-grid-2 > li:nth-of-type(1n) {
+      clear: none; }
+    .large-block-grid-2 > li:nth-of-type(2n+1) {
+      clear: both; }
+  .large-block-grid-3 > li {
+    list-style: none;
+    width: 33.3333333333%; }
+    .large-block-grid-3 > li:nth-of-type(1n) {
+      clear: none; }
+    .large-block-grid-3 > li:nth-of-type(3n+1) {
+      clear: both; }
+  .large-block-grid-4 > li {
+    list-style: none;
+    width: 25%; }
+    .large-block-grid-4 > li:nth-of-type(1n) {
+      clear: none; }
+    .large-block-grid-4 > li:nth-of-type(4n+1) {
+      clear: both; }
+  .large-block-grid-5 > li {
+    list-style: none;
+    width: 20%; }
+    .large-block-grid-5 > li:nth-of-type(1n) {
+      clear: none; }
+    .large-block-grid-5 > li:nth-of-type(5n+1) {
+      clear: both; }
+  .large-block-grid-6 > li {
+    list-style: none;
+    width: 16.6666666667%; }
+    .large-block-grid-6 > li:nth-of-type(1n) {
+      clear: none; }
+    .large-block-grid-6 > li:nth-of-type(6n+1) {
+      clear: both; }
+  .large-block-grid-7 > li {
+    list-style: none;
+    width: 14.2857142857%; }
+    .large-block-grid-7 > li:nth-of-type(1n) {
+      clear: none; }
+    .large-block-grid-7 > li:nth-of-type(7n+1) {
+      clear: both; }
+  .large-block-grid-8 > li {
+    list-style: none;
+    width: 12.5%; }
+    .large-block-grid-8 > li:nth-of-type(1n) {
+      clear: none; }
+    .large-block-grid-8 > li:nth-of-type(8n+1) {
+      clear: both; }
+  .large-block-grid-9 > li {
+    list-style: none;
+    width: 11.1111111111%; }
+    .large-block-grid-9 > li:nth-of-type(1n) {
+      clear: none; }
+    .large-block-grid-9 > li:nth-of-type(9n+1) {
+      clear: both; }
+  .large-block-grid-10 > li {
+    list-style: none;
+    width: 10%; }
+    .large-block-grid-10 > li:nth-of-type(1n) {
+      clear: none; }
+    .large-block-grid-10 > li:nth-of-type(10n+1) {
+      clear: both; }
+  .large-block-grid-11 > li {
+    list-style: none;
+    width: 9.0909090909%; }
+    .large-block-grid-11 > li:nth-of-type(1n) {
+      clear: none; }
+    .large-block-grid-11 > li:nth-of-type(11n+1) {
+      clear: both; }
+  .large-block-grid-12 > li {
+    list-style: none;
+    width: 8.3333333333%; }
+    .large-block-grid-12 > li:nth-of-type(1n) {
+      clear: none; }
+    .large-block-grid-12 > li:nth-of-type(12n+1) {
+      clear: both; } }
+
+.breadcrumbs {
+  border-style: solid;
+  border-width: 1px;
+  display: block;
+  list-style: none;
+  margin-left: 0;
+  overflow: hidden;
+  padding: 0.5625rem 0.875rem 0.5625rem;
+  background-color: #f4f4f4;
+  border-color: gainsboro;
+  border-radius: 3px; }
+  .breadcrumbs > * {
+    color: #008CBA;
+    float: left;
+    font-size: 0.6875rem;
+    line-height: 0.6875rem;
+    margin: 0;
+    text-transform: uppercase; }
+    .breadcrumbs > *:hover a, .breadcrumbs > *:focus a {
+      text-decoration: underline; }
+    .breadcrumbs > * a {
+      color: #008CBA; }
+    .breadcrumbs > *.current {
+      color: #333333;
+      cursor: default; }
+      .breadcrumbs > *.current a {
+        color: #333333;
+        cursor: default; }
+      .breadcrumbs > *.current:hover, .breadcrumbs > *.current:hover a, .breadcrumbs > *.current:focus, .breadcrumbs > *.current:focus a {
+        text-decoration: none; }
+    .breadcrumbs > *.unavailable {
+      color: #999999; }
+      .breadcrumbs > *.unavailable a {
+        color: #999999; }
+      .breadcrumbs > *.unavailable:hover, .breadcrumbs > *.unavailable:hover a, .breadcrumbs > *.unavailable:focus, .breadcrumbs > *.unavailable a:focus {
+        color: #999999;
+        cursor: false;
+        text-decoration: none; }
+    .breadcrumbs > *:before {
+      color: #AAAAAA;
+      content: "/";
+      margin: 0 0.75rem;
+      position: relative;
+      top: 1px; }
+    .breadcrumbs > *:first-child:before {
+      content: " ";
+      margin: 0; }
+
+/* Accessibility - hides the forward slash */
+[aria-label="breadcrumbs"] [aria-hidden="true"]:after {
+  content: "/"; }
+
+button, .button {
+  -webkit-appearance: none;
+  -moz-appearance: none;
+  border-radius: 0;
+  border-style: solid;
+  border-width: 0;
+  cursor: pointer;
+  font-family: "Open Sans", sans-serif;
+  font-weight: normal;
+  line-height: normal;
+  margin: 0 0 1.25rem;
+  position: relative;
+  text-align: center;
+  text-decoration: none;
+  display: inline-block;
+  padding: 1rem 2rem 1.0625rem 2rem;
+  font-size: 1rem;
+  background-color: #008CBA;
+  border-color: #007095;
+  color: #FFFFFF;
+  transition: background-color 300ms ease-out; }
+  button:hover, button:focus, .button:hover, .button:focus {
+    background-color: #007095; }
+  button:hover, button:focus, .button:hover, .button:focus {
+    color: #FFFFFF; }
+  button.secondary, .button.secondary {
+    background-color: #e7e7e7;
+    border-color: #b9b9b9;
+    color: #333333; }
+    button.secondary:hover, button.secondary:focus, .button.secondary:hover, .button.secondary:focus {
+      background-color: #b9b9b9; }
+    button.secondary:hover, button.secondary:focus, .button.secondary:hover, .button.secondary:focus {
+      color: #333333; }
+  button.success, .button.success {
+    background-color: #43AC6A;
+    border-color: #368a55;
+    color: #FFFFFF; }
+    button.success:hover, button.success:focus, .button.success:hover, .button.success:focus {
+      background-color: #368a55; }
+    button.success:hover, button.success:focus, .button.success:hover, .button.success:focus {
+      color: #FFFFFF; }
+  button.alert, .button.alert {
+    background-color: #f04124;
+    border-color: #cf2a0e;
+    color: #FFFFFF; }
+    button.alert:hover, button.alert:focus, .button.alert:hover, .button.alert:focus {
+      background-color: #cf2a0e; }
+    button.alert:hover, button.alert:focus, .button.alert:hover, .button.alert:focus {
+      color: #FFFFFF; }
+  button.warning, .button.warning {
+    background-color: #f08a24;
+    border-color: #cf6e0e;
+    color: #FFFFFF; }
+    button.warning:hover, button.warning:focus, .button.warning:hover, .button.warning:focus {
+      background-color: #cf6e0e; }
+    button.warning:hover, button.warning:focus, .button.warning:hover, .button.warning:focus {
+      color: #FFFFFF; }
+  button.info, .button.info {
+    background-color: #a0d3e8;
+    border-color: #61b6d9;
+    color: #333333; }
+    button.info:hover, button.info:focus, .button.info:hover, .button.info:focus {
+      background-color: #61b6d9; }
+    button.info:hover, button.info:focus, .button.info:hover, .button.info:focus {
+      color: #FFFFFF; }
+  button.large, .button.large {
+    padding: 1.125rem 2.25rem 1.1875rem 2.25rem;
+    font-size: 1.25rem; }
+  button.small, .button.small {
+    padding: 0.875rem 1.75rem 0.9375rem 1.75rem;
+    font-size: 0.8125rem; }
+  button.tiny, .button.tiny {
+    padding: 0.625rem 1.25rem 0.6875rem 1.25rem;
+    font-size: 0.6875rem; }
+  button.expand, .button.expand {
+    padding: 1rem 2rem 1.0625rem 2rem;
+    font-size: 1rem;
+    padding-bottom: 1.0625rem;
+    padding-top: 1rem;
+    padding-left: 1rem;
+    padding-right: 1rem;
+    width: 100%; }
+  button.left-align, .button.left-align {
+    text-align: left;
+    text-indent: 0.75rem; }
+  button.right-align, .button.right-align {
+    text-align: right;
+    padding-right: 0.75rem; }
+  button.radius, .button.radius {
+    border-radius: 3px; }
+  button.round, .button.round {
+    border-radius: 1000px; }
+  button.disabled, button[disabled], .button.disabled, .button[disabled] {
+    background-color: #008CBA;
+    border-color: #007095;
+    color: #FFFFFF;
+    box-shadow: none;
+    cursor: default;
+    opacity: 0.7; }
+    button.disabled:hover, button.disabled:focus, button[disabled]:hover, button[disabled]:focus, .button.disabled:hover, .button.disabled:focus, .button[disabled]:hover, .button[disabled]:focus {
+      background-color: #007095; }
+    button.disabled:hover, button.disabled:focus, button[disabled]:hover, button[disabled]:focus, .button.disabled:hover, .button.disabled:focus, .button[disabled]:hover, .button[disabled]:focus {
+      color: #FFFFFF; }
+    button.disabled:hover, button.disabled:focus, button[disabled]:hover, button[disabled]:focus, .button.disabled:hover, .button.disabled:focus, .button[disabled]:hover, .button[disabled]:focus {
+      background-color: #008CBA; }
+    button.disabled.secondary, button[disabled].secondary, .button.disabled.secondary, .button[disabled].secondary {
+      background-color: #e7e7e7;
+      border-color: #b9b9b9;
+      color: #333333;
+      box-shadow: none;
+      cursor: default;
+      opacity: 0.7; }
+      button.disabled.secondary:hover, button.disabled.secondary:focus, button[disabled].secondary:hover, button[disabled].secondary:focus, .button.disabled.secondary:hover, .button.disabled.secondary:focus, .button[disabled].secondary:hover, .button[disabled].secondary:focus {
+        background-color: #b9b9b9; }
+      button.disabled.secondary:hover, button.disabled.secondary:focus, button[disabled].secondary:hover, button[disabled].secondary:focus, .button.disabled.secondary:hover, .button.disabled.secondary:focus, .button[disabled].secondary:hover, .button[disabled].secondary:focus {
+        color: #333333; }
+      button.disabled.secondary:hover, button.disabled.secondary:focus, button[disabled].secondary:hover, button[disabled].secondary:focus, .button.disabled.secondary:hover, .button.disabled.secondary:focus, .button[disabled].secondary:hover, .button[disabled].secondary:focus {
+        background-color: #e7e7e7; }
+    button.disabled.success, button[disabled].success, .button.disabled.success, .button[disabled].success {
+      background-color: #43AC6A;
+      border-color: #368a55;
+      color: #FFFFFF;
+      box-shadow: none;
+      cursor: default;
+      opacity: 0.7; }
+      button.disabled.success:hover, button.disabled.success:focus, button[disabled].success:hover, button[disabled].success:focus, .button.disabled.success:hover, .button.disabled.success:focus, .button[disabled].success:hover, .button[disabled].success:focus {
+        background-color: #368a55; }
+      button.disabled.success:hover, button.disabled.success:focus, button[disabled].success:hover, button[disabled].success:focus, .button.disabled.success:hover, .button.disabled.success:focus, .button[disabled].success:hover, .button[disabled].success:focus {
+        color: #FFFFFF; }
+      button.disabled.success:hover, button.disabled.success:focus, button[disabled].success:hover, button[disabled].success:focus, .button.disabled.success:hover, .button.disabled.success:focus, .button[disabled].success:hover, .button[disabled].success:focus {
+        background-color: #43AC6A; }
+    button.disabled.alert, button[disabled].alert, .button.disabled.alert, .button[disabled].alert {
+      background-color: #f04124;
+      border-color: #cf2a0e;
+      color: #FFFFFF;
+      box-shadow: none;
+      cursor: default;
+      opacity: 0.7; }
+      button.disabled.alert:hover, button.disabled.alert:focus, button[disabled].alert:hover, button[disabled].alert:focus, .button.disabled.alert:hover, .button.disabled.alert:focus, .button[disabled].alert:hover, .button[disabled].alert:focus {
+        background-color: #cf2a0e; }
+      button.disabled.alert:hover, button.disabled.alert:focus, button[disabled].alert:hover, button[disabled].alert:focus, .button.disabled.alert:hover, .button.disabled.alert:focus, .button[disabled].alert:hover, .button[disabled].alert:focus {
+        color: #FFFFFF; }
+      button.disabled.alert:hover, button.disabled.alert:focus, button[disabled].alert:hover, button[disabled].alert:focus, .button.disabled.alert:hover, .button.disabled.alert:focus, .button[disabled].alert:hover, .button[disabled].alert:focus {
+        background-color: #f04124; }
+    button.disabled.warning, button[disabled].warning, .button.disabled.warning, .button[disabled].warning {
+      background-color: #f08a24;
+      border-color: #cf6e0e;
+      color: #FFFFFF;
+      box-shadow: none;
+      cursor: default;
+      opacity: 0.7; }
+      button.disabled.warning:hover, button.disabled.warning:focus, button[disabled].warning:hover, button[disabled].warning:focus, .button.disabled.warning:hover, .button.disabled.warning:focus, .button[disabled].warning:hover, .button[disabled].warning:focus {
+        background-color: #cf6e0e; }
+      button.disabled.warning:hover, button.disabled.warning:focus, button[disabled].warning:hover, button[disabled].warning:focus, .button.disabled.warning:hover, .button.disabled.warning:focus, .button[disabled].warning:hover, .button[disabled].warning:focus {
+        color: #FFFFFF; }
+      button.disabled.warning:hover, button.disabled.warning:focus, button[disabled].warning:hover, button[disabled].warning:focus, .button.disabled.warning:hover, .button.disabled.warning:focus, .button[disabled].warning:hover, .button[disabled].warning:focus {
+        background-color: #f08a24; }
+    button.disabled.info, button[disabled].info, .button.disabled.info, .button[disabled].info {
+      background-color: #a0d3e8;
+      border-color: #61b6d9;
+      color: #333333;
+      box-shadow: none;
+      cursor: default;
+      opacity: 0.7; }
+      button.disabled.info:hover, button.disabled.info:focus, button[disabled].info:hover, button[disabled].info:focus, .button.disabled.info:hover, .button.disabled.info:focus, .button[disabled].info:hover, .button[disabled].info:focus {
+        background-color: #61b6d9; }
+      button.disabled.info:hover, button.disabled.info:focus, button[disabled].info:hover, button[disabled].info:focus, .button.disabled.info:hover, .button.disabled.info:focus, .button[disabled].info:hover, .button[disabled].info:focus {
+        color: #FFFFFF; }
+      button.disabled.info:hover, button.disabled.info:focus, button[disabled].info:hover, button[disabled].info:focus, .button.disabled.info:hover, .button.disabled.info:focus, .button[disabled].info:hover, .button[disabled].info:focus {
+        background-color: #a0d3e8; }
+
+button::-moz-focus-inner {
+  border: 0;
+  padding: 0; }
+
+@media only screen and (min-width:40.063em) {
+  button, .button {
+    display: inline-block; } }
+
+.button-group {
+  list-style: none;
+  margin: 0;
+  left: 0; }
+  .button-group:before, .button-group:after {
+    content: " ";
+    display: table; }
+  .button-group:after {
+    clear: both; }
+  .button-group.even-2 li {
+    display: inline-block;
+    margin: 0 -2px;
+    width: 50%; }
+    .button-group.even-2 li > button, .button-group.even-2 li .button {
+      border-left: 1px solid;
+      border-color: rgba(255, 255, 255, 0.5); }
+    .button-group.even-2 li:first-child button, .button-group.even-2 li:first-child .button {
+      border-left: 0; }
+    .button-group.even-2 li button, .button-group.even-2 li .button {
+      width: 100%; }
+  .button-group.even-3 li {
+    display: inline-block;
+    margin: 0 -2px;
+    width: 33.3333333333%; }
+    .button-group.even-3 li > button, .button-group.even-3 li .button {
+      border-left: 1px solid;
+      border-color: rgba(255, 255, 255, 0.5); }
+    .button-group.even-3 li:first-child button, .button-group.even-3 li:first-child .button {
+      border-left: 0; }
+    .button-group.even-3 li button, .button-group.even-3 li .button {
+      width: 100%; }
+  .button-group.even-4 li {
+    display: inline-block;
+    margin: 0 -2px;
+    width: 25%; }
+    .button-group.even-4 li > button, .button-group.even-4 li .button {
+      border-left: 1px solid;
+      border-color: rgba(255, 255, 255, 0.5); }
+    .button-group.even-4 li:first-child button, .button-group.even-4 li:first-child .button {
+      border-left: 0; }
+    .button-group.even-4 li button, .button-group.even-4 li .button {
+      width: 100%; }
+  .button-group.even-5 li {
+    display: inline-block;
+    margin: 0 -2px;
+    width: 20%; }
+    .button-group.even-5 li > button, .button-group.even-5 li .button {
+      border-left: 1px solid;
+      border-color: rgba(255, 255, 255, 0.5); }
+    .button-group.even-5 li:first-child button, .button-group.even-5 li:first-child .button {
+      border-left: 0; }
+    .button-group.even-5 li button, .button-group.even-5 li .button {
+      width: 100%; }
+  .button-group.even-6 li {
+    display: inline-block;
+    margin: 0 -2px;
+    width: 16.6666666667%; }
+    .button-group.even-6 li > button, .button-group.even-6 li .button {
+      border-left: 1px solid;
+      border-color: rgba(255, 255, 255, 0.5); }
+    .button-group.even-6 li:first-child button, .button-group.even-6 li:first-child .button {
+      border-left: 0; }
+    .button-group.even-6 li button, .button-group.even-6 li .button {
+      width: 100%; }
+  .button-group.even-7 li {
+    display: inline-block;
+    margin: 0 -2px;
+    width: 14.2857142857%; }
+    .button-group.even-7 li > button, .button-group.even-7 li .button {
+      border-left: 1px solid;
+      border-color: rgba(255, 255, 255, 0.5); }
+    .button-group.even-7 li:first-child button, .button-group.even-7 li:first-child .button {
+      border-left: 0; }
+    .button-group.even-7 li button, .button-group.even-7 li .button {
+      width: 100%; }
+  .button-group.even-8 li {
+    display: inline-block;
+    margin: 0 -2px;
+    width: 12.5%; }
+    .button-group.even-8 li > button, .button-group.even-8 li .button {
+      border-left: 1px solid;
+      border-color: rgba(255, 255, 255, 0.5); }
+    .button-group.even-8 li:first-child button, .button-group.even-8 li:first-child .button {
+      border-left: 0; }
+    .button-group.even-8 li button, .button-group.even-8 li .button {
+      width: 100%; }
+  .button-group > li {
+    display: inline-block;
+    margin: 0 -2px; }
+    .button-group > li > button, .button-group > li .button {
+      border-left: 1px solid;
+      border-color: rgba(255, 255, 255, 0.5); }
+    .button-group > li:first-child button, .button-group > li:first-child .button {
+      border-left: 0; }
+  .button-group.stack > li {
+    display: block;
+    margin: 0;
+    float: none; }
+    .button-group.stack > li > button, .button-group.stack > li .button {
+      border-left: 1px solid;
+      border-color: rgba(255, 255, 255, 0.5); }
+    .button-group.stack > li:first-child button, .button-group.stack > li:first-child .button {
+      border-left: 0; }
+    .button-group.stack > li > button, .button-group.stack > li .button {
+      border-color: rgba(255, 255, 255, 0.5);
+      border-left-width: 0;
+      border-top: 1px solid;
+      display: block;
+      margin: 0; }
+    .button-group.stack > li > button {
+      width: 100%; }
+    .button-group.stack > li:first-child button, .button-group.stack > li:first-child .button {
+      border-top: 0; }
+  .button-group.stack-for-small > li {
+    display: inline-block;
+    margin: 0 -2px; }
+    .button-group.stack-for-small > li > button, .button-group.stack-for-small > li .button {
+      border-left: 1px solid;
+      border-color: rgba(255, 255, 255, 0.5); }
+    .button-group.stack-for-small > li:first-child button, .button-group.stack-for-small > li:first-child .button {
+      border-left: 0; }
+    @media only screen and (max-width: 40em) {
+      .button-group.stack-for-small > li {
+        display: block;
+        margin: 0;
+        width: 100%; }
+        .button-group.stack-for-small > li > button, .button-group.stack-for-small > li .button {
+          border-left: 1px solid;
+          border-color: rgba(255, 255, 255, 0.5); }
+        .button-group.stack-for-small > li:first-child button, .button-group.stack-for-small > li:first-child .button {
+          border-left: 0; }
+        .button-group.stack-for-small > li > button, .button-group.stack-for-small > li .button {
+          border-color: rgba(255, 255, 255, 0.5);
+          border-left-width: 0;
+          border-top: 1px solid;
+          display: block;
+          margin: 0; }
+        .button-group.stack-for-small > li > button {
+          width: 100%; }
+        .button-group.stack-for-small > li:first-child button, .button-group.stack-for-small > li:first-child .button {
+          border-top: 0; } }
+  .button-group.radius > * {
+    display: inline-block;
+    margin: 0 -2px; }
+    .button-group.radius > * > button, .button-group.radius > * .button {
+      border-left: 1px solid;
+      border-color: rgba(255, 255, 255, 0.5); }
+    .button-group.radius > *:first-child button, .button-group.radius > *:first-child .button {
+      border-left: 0; }
+    .button-group.radius > *, .button-group.radius > * > a, .button-group.radius > * > button, .button-group.radius > * > .button {
+      border-radius: 0; }
+    .button-group.radius > *:first-child, .button-group.radius > *:first-child > a, .button-group.radius > *:first-child > button, .button-group.radius > *:first-child > .button {
+      -webkit-border-bottom-left-radius: 3px;
+      -webkit-border-top-left-radius: 3px;
+      border-bottom-left-radius: 3px;
+      border-top-left-radius: 3px; }
+    .button-group.radius > *:last-child, .button-group.radius > *:last-child > a, .button-group.radius > *:last-child > button, .button-group.radius > *:last-child > .button {
+      -webkit-border-bottom-right-radius: 3px;
+      -webkit-border-top-right-radius: 3px;
+      border-bottom-right-radius: 3px;
+      border-top-right-radius: 3px; }
+  .button-group.radius.stack > * {
+    display: block;
+    margin: 0; }
+    .button-group.radius.stack > * > button, .button-group.radius.stack > * .button {
+      border-left: 1px solid;
+      border-color: rgba(255, 255, 255, 0.5); }
+    .button-group.radius.stack > *:first-child button, .button-group.radius.stack > *:first-child .button {
+      border-left: 0; }
+    .button-group.radius.stack > * > button, .button-group.radius.stack > * .button {
+      border-color: rgba(255, 255, 255, 0.5);
+      border-left-width: 0;
+      border-top: 1px solid;
+      display: block;
+      margin: 0; }
+    .button-group.radius.stack > * > button {
+      width: 100%; }
+    .button-group.radius.stack > *:first-child button, .button-group.radius.stack > *:first-child .button {
+      border-top: 0; }
+    .button-group.radius.stack > *, .button-group.radius.stack > * > a, .button-group.radius.stack > * > button, .button-group.radius.stack > * > .button {
+      border-radius: 0; }
+    .button-group.radius.stack > *:first-child, .button-group.radius.stack > *:first-child > a, .button-group.radius.stack > *:first-child > button, .button-group.radius.stack > *:first-child > .button {
+      -webkit-top-left-radius: 3px;
+      -webkit-top-right-radius: 3px;
+      border-top-left-radius: 3px;
+      border-top-right-radius: 3px; }
+    .button-group.radius.stack > *:last-child, .button-group.radius.stack > *:last-child > a, .button-group.radius.stack > *:last-child > button, .button-group.radius.stack > *:last-child > .button {
+      -webkit-bottom-left-radius: 3px;
+      -webkit-bottom-right-radius: 3px;
+      border-bottom-left-radius: 3px;
+      border-bottom-right-radius: 3px; }
+  @media only screen and (min-width:40.063em) {
+    .button-group.radius.stack-for-small > * {
+      display: inline-block;
+      margin: 0 -2px; }
+      .button-group.radius.stack-for-small > * > button, .button-group.radius.stack-for-small > * .button {
+        border-left: 1px solid;
+        border-color: rgba(255, 255, 255, 0.5); }
+      .button-group.radius.stack-for-small > *:first-child button, .button-group.radius.stack-for-small > *:first-child .button {
+        border-left: 0; }
+      .button-group.radius.stack-for-small > *, .button-group.radius.stack-for-small > * > a, .button-group.radius.stack-for-small > * > button, .button-group.radius.stack-for-small > * > .button {
+        border-radius: 0; }
+      .button-group.radius.stack-for-small > *:first-child, .button-group.radius.stack-for-small > *:first-child > a, .button-group.radius.stack-for-small > *:first-child > button, .button-group.radius.stack-for-small > *:first-child > .button {
+        -webkit-border-bottom-left-radius: 3px;
+        -webkit-border-top-left-radius: 3px;
+        border-bottom-left-radius: 3px;
+        border-top-left-radius: 3px; }
+      .button-group.radius.stack-for-small > *:last-child, .button-group.radius.stack-for-small > *:last-child > a, .button-group.radius.stack-for-small > *:last-child > button, .button-group.radius.stack-for-small > *:last-child > .button {
+        -webkit-border-bottom-right-radius: 3px;
+        -webkit-border-top-right-radius: 3px;
+        border-bottom-right-radius: 3px;
+        border-top-right-radius: 3px; } }
+  @media only screen and (max-width: 40em) {
+    .button-group.radius.stack-for-small > * {
+      display: block;
+      margin: 0; }
+      .button-group.radius.stack-for-small > * > button, .button-group.radius.stack-for-small > * .button {
+        border-left: 1px solid;
+        border-color: rgba(255, 255, 255, 0.5); }
+      .button-group.radius.stack-for-small > *:first-child button, .button-group.radius.stack-for-small > *:first-child .button {
+        border-left: 0; }
+      .button-group.radius.stack-for-small > * > button, .button-group.radius.stack-for-small > * .button {
+        border-color: rgba(255, 255, 255, 0.5);
+        border-left-width: 0;
+        border-top: 1px solid;
+        display: block;
+        margin: 0; }
+      .button-group.radius.stack-for-small > * > button {
+        width: 100%; }
+      .button-group.radius.stack-for-small > *:first-child button, .button-group.radius.stack-for-small > *:first-child .button {
+        border-top: 0; }
+      .button-group.radius.stack-for-small > *, .button-group.radius.stack-for-small > * > a, .button-group.radius.stack-for-small > * > button, .button-group.radius.stack-for-small > * > .button {
+        border-radius: 0; }
+      .button-group.radius.stack-for-small > *:first-child, .button-group.radius.stack-for-small > *:first-child > a, .button-group.radius.stack-for-small > *:first-child > button, .button-group.radius.stack-for-small > *:first-child > .button {
+        -webkit-top-left-radius: 3px;
+        -webkit-top-right-radius: 3px;
+        border-top-left-radius: 3px;
+        border-top-right-radius: 3px; }
+      .button-group.radius.stack-for-small > *:last-child, .button-group.radius.stack-for-small > *:last-child > a, .button-group.radius.stack-for-small > *:last-child > button, .button-group.radius.stack-for-small > *:last-child > .button {
+        -webkit-bottom-left-radius: 3px;
+        -webkit-bottom-right-radius: 3px;
+        border-bottom-left-radius: 3px;
+        border-bottom-right-radius: 3px; } }
+  .button-group.round > * {
+    display: inline-block;
+    margin: 0 -2px; }
+    .button-group.round > * > button, .button-group.round > * .button {
+      border-left: 1px solid;
+      border-color: rgba(255, 255, 255, 0.5); }
+    .button-group.round > *:first-child button, .button-group.round > *:first-child .button {
+      border-left: 0; }
+    .button-group.round > *, .button-group.round > * > a, .button-group.round > * > button, .button-group.round > * > .button {
+      border-radius: 0; }
+    .button-group.round > *:first-child, .button-group.round > *:first-child > a, .button-group.round > *:first-child > button, .button-group.round > *:first-child > .button {
+      -webkit-border-bottom-left-radius: 1000px;
+      -webkit-border-top-left-radius: 1000px;
+      border-bottom-left-radius: 1000px;
+      border-top-left-radius: 1000px; }
+    .button-group.round > *:last-child, .button-group.round > *:last-child > a, .button-group.round > *:last-child > button, .button-group.round > *:last-child > .button {
+      -webkit-border-bottom-right-radius: 1000px;
+      -webkit-border-top-right-radius: 1000px;
+      border-bottom-right-radius: 1000px;
+      border-top-right-radius: 1000px; }
+  .button-group.round.stack > * {
+    display: block;
+    margin: 0; }
+    .button-group.round.stack > * > button, .button-group.round.stack > * .button {
+      border-left: 1px solid;
+      border-color: rgba(255, 255, 255, 0.5); }
+    .button-group.round.stack > *:first-child button, .button-group.round.stack > *:first-child .button {
+      border-left: 0; }
+    .button-group.round.stack > * > button, .button-group.round.stack > * .button {
+      border-color: rgba(255, 255, 255, 0.5);
+      border-left-width: 0;
+      border-top: 1px solid;
+      display: block;
+      margin: 0; }
+    .button-group.round.stack > * > button {
+      width: 100%; }
+    .button-group.round.stack > *:first-child button, .button-group.round.stack > *:first-child .button {
+      border-top: 0; }
+    .button-group.round.stack > *, .button-group.round.stack > * > a, .button-group.round.stack > * > button, .button-group.round.stack > * > .button {
+      border-radius: 0; }
+    .button-group.round.stack > *:first-child, .button-group.round.stack > *:first-child > a, .button-group.round.stack > *:first-child > button, .button-group.round.stack > *:first-child > .button {
+      -webkit-top-left-radius: 1rem;
+      -webkit-top-right-radius: 1rem;
+      border-top-left-radius: 1rem;
+      border-top-right-radius: 1rem; }
+    .button-group.round.stack > *:last-child, .button-group.round.stack > *:last-child > a, .button-group.round.stack > *:last-child > button, .button-group.round.stack > *:last-child > .button {
+      -webkit-bottom-left-radius: 1rem;
+      -webkit-bottom-right-radius: 1rem;
+      border-bottom-left-radius: 1rem;
+      border-bottom-right-radius: 1rem; }
+  @media only screen and (min-width:40.063em) {
+    .button-group.round.stack-for-small > * {
+      display: inline-block;
+      margin: 0 -2px; }
+      .button-group.round.stack-for-small > * > button, .button-group.round.stack-for-small > * .button {
+        border-left: 1px solid;
+        border-color: rgba(255, 255, 255, 0.5); }
+      .button-group.round.stack-for-small > *:first-child button, .button-group.round.stack-for-small > *:first-child .button {
+        border-left: 0; }
+      .button-group.round.stack-for-small > *, .button-group.round.stack-for-small > * > a, .button-group.round.stack-for-small > * > button, .button-group.round.stack-for-small > * > .button {
+        border-radius: 0; }
+      .button-group.round.stack-for-small > *:first-child, .button-group.round.stack-for-small > *:first-child > a, .button-group.round.stack-for-small > *:first-child > button, .button-group.round.stack-for-small > *:first-child > .button {
+        -webkit-border-bottom-left-radius: 1000px;
+        -webkit-border-top-left-radius: 1000px;
+        border-bottom-left-radius: 1000px;
+        border-top-left-radius: 1000px; }
+      .button-group.round.stack-for-small > *:last-child, .button-group.round.stack-for-small > *:last-child > a, .button-group.round.stack-for-small > *:last-child > button, .button-group.round.stack-for-small > *:last-child > .button {
+        -webkit-border-bottom-right-radius: 1000px;
+        -webkit-border-top-right-radius: 1000px;
+        border-bottom-right-radius: 1000px;
+        border-top-right-radius: 1000px; } }
+  @media only screen and (max-width: 40em) {
+    .button-group.round.stack-for-small > * {
+      display: block;
+      margin: 0; }
+      .button-group.round.stack-for-small > * > button, .button-group.round.stack-for-small > * .button {
+        border-left: 1px solid;
+        border-color: rgba(255, 255, 255, 0.5); }
+      .button-group.round.stack-for-small > *:first-child button, .button-group.round.stack-for-small > *:first-child .button {
+        border-left: 0; }
+      .button-group.round.stack-for-small > * > button, .button-group.round.stack-for-small > * .button {
+        border-color: rgba(255, 255, 255, 0.5);
+        border-left-width: 0;
+        border-top: 1px solid;
+        display: block;
+        margin: 0; }
+      .button-group.round.stack-for-small > * > button {
+        width: 100%; }
+      .button-group.round.stack-for-small > *:first-child button, .button-group.round.stack-for-small > *:first-child .button {
+        border-top: 0; }
+      .button-group.round.stack-for-small > *, .button-group.round.stack-for-small > * > a, .button-group.round.stack-for-small > * > button, .button-group.round.stack-for-small > * > .button {
+        border-radius: 0; }
+      .button-group.round.stack-for-small > *:first-child, .button-group.round.stack-for-small > *:first-child > a, .button-group.round.stack-for-small > *:first-child > button, .button-group.round.stack-for-small > *:first-child > .button {
+        -webkit-top-left-radius: 1rem;
+        -webkit-top-right-radius: 1rem;
+        border-top-left-radius: 1rem;
+        border-top-right-radius: 1rem; }
+      .button-group.round.stack-for-small > *:last-child, .button-group.round.stack-for-small > *:last-child > a, .button-group.round.stack-for-small > *:last-child > button, .button-group.round.stack-for-small > *:last-child > .button {
+        -webkit-bottom-left-radius: 1rem;
+        -webkit-bottom-right-radius: 1rem;
+        border-bottom-left-radius: 1rem;
+        border-bottom-right-radius: 1rem; } }
+
+.button-bar:before, .button-bar:after {
+  content: " ";
+  display: table; }
+.button-bar:after {
+  clear: both; }
+.button-bar .button-group {
+  float: left;
+  margin-right: 0.625rem; }
+  .button-bar .button-group div {
+    overflow: hidden; }
+
+/* Clearing Styles */
+.clearing-thumbs, [data-clearing] {
+  list-style: none;
+  margin-left: 0;
+  margin-bottom: 0; }
+  .clearing-thumbs:before, .clearing-thumbs:after, [data-clearing]:before, [data-clearing]:after {
+    content: " ";
+    display: table; }
+  .clearing-thumbs:after, [data-clearing]:after {
+    clear: both; }
+  .clearing-thumbs li, [data-clearing] li {
+    float: left;
+    margin-right: 10px; }
+  .clearing-thumbs[class*="block-grid-"] li, [data-clearing][class*="block-grid-"] li {
+    margin-right: 0; }
+
+.clearing-blackout {
+  background: #333333;
+  height: 100%;
+  position: fixed;
+  top: 0;
+  width: 100%;
+  z-index: 998;
+  left: 0; }
+  .clearing-blackout .clearing-close {
+    display: block; }
+
+.clearing-container {
+  height: 100%;
+  margin: 0;
+  overflow: hidden;
+  position: relative;
+  z-index: 998; }
+
+.clearing-touch-label {
+  color: #AAAAAA;
+  font-size: .6em;
+  left: 50%;
+  position: absolute;
+  top: 50%; }
+
+.visible-img {
+  height: 95%;
+  position: relative; }
+  .visible-img img {
+    position: absolute;
+    left: 50%;
+    top: 50%;
+    -webkit-transform: translateY(-50%) translateX(-50%);
+    -moz-transform: translateY(-50%) translateX(-50%);
+    -ms-transform: translateY(-50%) translateX(-50%);
+    -o-transform: translateY(-50%) translateX(-50%);
+    transform: translateY(-50%) translateX(-50%);
+    max-height: 100%;
+    max-width: 100%; }
+
+.clearing-caption {
+  background: #333333;
+  bottom: 0;
+  color: #CCCCCC;
+  font-size: 0.875em;
+  line-height: 1.3;
+  margin-bottom: 0;
+  padding: 10px 30px 20px;
+  position: absolute;
+  text-align: center;
+  width: 100%;
+  left: 0; }
+
+.clearing-close {
+  color: #CCCCCC;
+  display: none;
+  font-size: 30px;
+  line-height: 1;
+  padding-left: 20px;
+  padding-top: 10px;
+  z-index: 999; }
+  .clearing-close:hover, .clearing-close:focus {
+    color: #CCCCCC; }
+
+.clearing-assembled .clearing-container {
+  height: 100%; }
+  .clearing-assembled .clearing-container .carousel > ul {
+    display: none; }
+
+.clearing-feature li {
+  display: none; }
+  .clearing-feature li.clearing-featured-img {
+    display: block; }
+
+@media only screen and (min-width:40.063em) {
+  .clearing-main-prev, .clearing-main-next {
+    height: 100%;
+    position: absolute;
+    top: 0;
+    width: 40px; }
+    .clearing-main-prev > span, .clearing-main-next > span {
+      border: solid 12px;
+      display: block;
+      height: 0;
+      position: absolute;
+      top: 50%;
+      width: 0; }
+      .clearing-main-prev > span:hover, .clearing-main-next > span:hover {
+        opacity: .8; }
+  .clearing-main-prev {
+    left: 0; }
+    .clearing-main-prev > span {
+      left: 5px;
+      border-color: transparent;
+      border-right-color: #CCCCCC; }
+  .clearing-main-next {
+    right: 0; }
+    .clearing-main-next > span {
+      border-color: transparent;
+      border-left-color: #CCCCCC; }
+  .clearing-main-prev.disabled, .clearing-main-next.disabled {
+    opacity: .3; }
+  .clearing-assembled .clearing-container .carousel {
+    background: rgba(51, 51, 51, 0.8);
+    height: 120px;
+    margin-top: 10px;
+    text-align: center; }
+    .clearing-assembled .clearing-container .carousel > ul {
+      display: inline-block;
+      z-index: 999;
+      height: 100%;
+      position: relative;
+      float: none; }
+      .clearing-assembled .clearing-container .carousel > ul li {
+        clear: none;
+        cursor: pointer;
+        display: block;
+        float: left;
+        margin-right: 0;
+        min-height: inherit;
+        opacity: .4;
+        overflow: hidden;
+        padding: 0;
+        position: relative;
+        width: 120px; }
+        .clearing-assembled .clearing-container .carousel > ul li.fix-height img {
+          height: 100%;
+          max-width: none; }
+        .clearing-assembled .clearing-container .carousel > ul li a.th {
+          border: none;
+          box-shadow: none;
+          display: block; }
+        .clearing-assembled .clearing-container .carousel > ul li img {
+          cursor: pointer !important;
+          width: 100% !important; }
+        .clearing-assembled .clearing-container .carousel > ul li.visible {
+          opacity: 1; }
+        .clearing-assembled .clearing-container .carousel > ul li:hover {
+          opacity: .8; }
+  .clearing-assembled .clearing-container .visible-img {
+    background: #333333;
+    height: 85%;
+    overflow: hidden; }
+  .clearing-close {
+    padding-left: 0;
+    padding-top: 0;
+    position: absolute;
+    top: 10px;
+    right: 20px; } }
+
+/* Foundation Dropdowns */
+.f-dropdown {
+  display: none;
+  left: -9999px;
+  list-style: none;
+  margin-left: 0;
+  position: absolute;
+  background: #FFFFFF;
+  border: solid 1px #cccccc;
+  font-size: 0.875rem;
+  height: auto;
+  max-height: none;
+  width: 100%;
+  z-index: 89;
+  margin-top: 2px;
+  max-width: 200px; }
+  .f-dropdown.open {
+    display: block; }
+  .f-dropdown > *:first-child {
+    margin-top: 0; }
+  .f-dropdown > *:last-child {
+    margin-bottom: 0; }
+  .f-dropdown:before {
+    border: inset 6px;
+    content: "";
+    display: block;
+    height: 0;
+    width: 0;
+    border-color: transparent transparent #FFFFFF transparent;
+    border-bottom-style: solid;
+    position: absolute;
+    top: -12px;
+    left: 10px;
+    z-index: 89; }
+  .f-dropdown:after {
+    border: inset 7px;
+    content: "";
+    display: block;
+    height: 0;
+    width: 0;
+    border-color: transparent transparent #cccccc transparent;
+    border-bottom-style: solid;
+    position: absolute;
+    top: -14px;
+    left: 9px;
+    z-index: 88; }
+  .f-dropdown.right:before {
+    left: auto;
+    right: 10px; }
+  .f-dropdown.right:after {
+    left: auto;
+    right: 9px; }
+  .f-dropdown.drop-right {
+    display: none;
+    left: -9999px;
+    list-style: none;
+    margin-left: 0;
+    position: absolute;
+    background: #FFFFFF;
+    border: solid 1px #cccccc;
+    font-size: 0.875rem;
+    height: auto;
+    max-height: none;
+    width: 100%;
+    z-index: 89;
+    margin-top: 0;
+    margin-left: 2px;
+    max-width: 200px; }
+    .f-dropdown.drop-right.open {
+      display: block; }
+    .f-dropdown.drop-right > *:first-child {
+      margin-top: 0; }
+    .f-dropdown.drop-right > *:last-child {
+      margin-bottom: 0; }
+    .f-dropdown.drop-right:before {
+      border: inset 6px;
+      content: "";
+      display: block;
+      height: 0;
+      width: 0;
+      border-color: transparent #FFFFFF transparent transparent;
+      border-right-style: solid;
+      position: absolute;
+      top: 10px;
+      left: -12px;
+      z-index: 89; }
+    .f-dropdown.drop-right:after {
+      border: inset 7px;
+      content: "";
+      display: block;
+      height: 0;
+      width: 0;
+      border-color: transparent #cccccc transparent transparent;
+      border-right-style: solid;
+      position: absolute;
+      top: 9px;
+      left: -14px;
+      z-index: 88; }
+  .f-dropdown.drop-left {
+    display: none;
+    left: -9999px;
+    list-style: none;
+    margin-left: 0;
+    position: absolute;
+    background: #FFFFFF;
+    border: solid 1px #cccccc;
+    font-size: 0.875rem;
+    height: auto;
+    max-height: none;
+    width: 100%;
+    z-index: 89;
+    margin-top: 0;
+    margin-left: -2px;
+    max-width: 200px; }
+    .f-dropdown.drop-left.open {
+      display: block; }
+    .f-dropdown.drop-left > *:first-child {
+      margin-top: 0; }
+    .f-dropdown.drop-left > *:last-child {
+      margin-bottom: 0; }
+    .f-dropdown.drop-left:before {
+      border: inset 6px;
+      content: "";
+      display: block;
+      height: 0;
+      width: 0;
+      border-color: transparent transparent transparent #FFFFFF;
+      border-left-style: solid;
+      position: absolute;
+      top: 10px;
+      right: -12px;
+      left: auto;
+      z-index: 89; }
+    .f-dropdown.drop-left:after {
+      border: inset 7px;
+      content: "";
+      display: block;
+      height: 0;
+      width: 0;
+      border-color: transparent transparent transparent #cccccc;
+      border-left-style: solid;
+      position: absolute;
+      top: 9px;
+      right: -14px;
+      left: auto;
+      z-index: 88; }
+  .f-dropdown.drop-top {
+    display: none;
+    left: -9999px;
+    list-style: none;
+    margin-left: 0;
+    position: absolute;
+    background: #FFFFFF;
+    border: solid 1px #cccccc;
+    font-size: 0.875rem;
+    height: auto;
+    max-height: none;
+    width: 100%;
+    z-index: 89;
+    margin-left: 0;
+    margin-top: -2px;
+    max-width: 200px; }
+    .f-dropdown.drop-top.open {
+      display: block; }
+    .f-dropdown.drop-top > *:first-child {
+      margin-top: 0; }
+    .f-dropdown.drop-top > *:last-child {
+      margin-bottom: 0; }
+    .f-dropdown.drop-top:before {
+      border: inset 6px;
+      content: "";
+      display: block;
+      height: 0;
+      width: 0;
+      border-color: #FFFFFF transparent transparent transparent;
+      border-top-style: solid;
+      bottom: -12px;
+      position: absolute;
+      top: auto;
+      left: 10px;
+      right: auto;
+      z-index: 89; }
+    .f-dropdown.drop-top:after {
+      border: inset 7px;
+      content: "";
+      display: block;
+      height: 0;
+      width: 0;
+      border-color: #cccccc transparent transparent transparent;
+      border-top-style: solid;
+      bottom: -14px;
+      position: absolute;
+      top: auto;
+      left: 9px;
+      right: auto;
+      z-index: 88; }
+  .f-dropdown li {
+    cursor: pointer;
+    font-size: 0.875rem;
+    line-height: 1.125rem;
+    margin: 0; }
+    .f-dropdown li:hover, .f-dropdown li:focus {
+      background: #EEEEEE; }
+    .f-dropdown li a {
+      display: block;
+      padding: 0.5rem;
+      color: #555555; }
+  .f-dropdown.content {
+    display: none;
+    left: -9999px;
+    list-style: none;
+    margin-left: 0;
+    position: absolute;
+    background: #FFFFFF;
+    border: solid 1px #cccccc;
+    font-size: 0.875rem;
+    height: auto;
+    max-height: none;
+    padding: 1rem;
+    width: 100%;
+    z-index: 89;
+    max-width: 200px; }
+    .f-dropdown.content.open {
+      display: block; }
+    .f-dropdown.content > *:first-child {
+      margin-top: 0; }
+    .f-dropdown.content > *:last-child {
+      margin-bottom: 0; }
+  .f-dropdown.radius {
+    border-radius: 3px; }
+  .f-dropdown.tiny {
+    max-width: 200px; }
+  .f-dropdown.small {
+    max-width: 300px; }
+  .f-dropdown.medium {
+    max-width: 500px; }
+  .f-dropdown.large {
+    max-width: 800px; }
+  .f-dropdown.mega {
+    width: 100% !important;
+    max-width: 100% !important; }
+    .f-dropdown.mega.open {
+      left: 0 !important; }
+
+.dropdown.button, button.dropdown {
+  position: relative;
+  padding-right: 3.5625rem; }
+  .dropdown.button::after, button.dropdown::after {
+    border-color: #FFFFFF transparent transparent transparent;
+    border-style: solid;
+    content: "";
+    display: block;
+    height: 0;
+    position: absolute;
+    top: 50%;
+    width: 0; }
+  .dropdown.button::after, button.dropdown::after {
+    border-width: 0.375rem;
+    right: 1.40625rem;
+    margin-top: -0.15625rem; }
+  .dropdown.button::after, button.dropdown::after {
+    border-color: #FFFFFF transparent transparent transparent; }
+  .dropdown.button.tiny, button.dropdown.tiny {
+    padding-right: 2.625rem; }
+    .dropdown.button.tiny:after, button.dropdown.tiny:after {
+      border-width: 0.375rem;
+      right: 1.125rem;
+      margin-top: -0.125rem; }
+    .dropdown.button.tiny::after, button.dropdown.tiny::after {
+      border-color: #FFFFFF transparent transparent transparent; }
+  .dropdown.button.small, button.dropdown.small {
+    padding-right: 3.0625rem; }
+    .dropdown.button.small::after, button.dropdown.small::after {
+      border-width: 0.4375rem;
+      right: 1.3125rem;
+      margin-top: -0.15625rem; }
+    .dropdown.button.small::after, button.dropdown.small::after {
+      border-color: #FFFFFF transparent transparent transparent; }
+  .dropdown.button.large, button.dropdown.large {
+    padding-right: 3.625rem; }
+    .dropdown.button.large::after, button.dropdown.large::after {
+      border-width: 0.3125rem;
+      right: 1.71875rem;
+      margin-top: -0.15625rem; }
+    .dropdown.button.large::after, button.dropdown.large::after {
+      border-color: #FFFFFF transparent transparent transparent; }
+  .dropdown.button.secondary:after, button.dropdown.secondary:after {
+    border-color: #333333 transparent transparent transparent; }
+
+.flex-video {
+  height: 0;
+  margin-bottom: 1rem;
+  overflow: hidden;
+  padding-bottom: 67.5%;
+  padding-top: 1.5625rem;
+  position: relative; }
+  .flex-video.widescreen {
+    padding-bottom: 56.34%; }
+  .flex-video.vimeo {
+    padding-top: 0; }
+  .flex-video iframe, .flex-video object, .flex-video embed, .flex-video video {
+    height: 100%;
+    position: absolute;
+    top: 0;
+    width: 100%;
+    left: 0; }
+
+/* Standard Forms */
+form {
+  margin: 0 0 1rem; }
+
+/* Using forms within rows, we need to set some defaults */
+form .row .row {
+  margin: 0 -0.5rem; }
+  form .row .row .column, form .row .row .columns {
+    padding: 0 0.5rem; }
+  form .row .row.collapse {
+    margin: 0; }
+    form .row .row.collapse .column, form .row .row.collapse .columns {
+      padding: 0; }
+    form .row .row.collapse input {
+      -webkit-border-bottom-right-radius: 0;
+      -webkit-border-top-right-radius: 0;
+      border-bottom-right-radius: 0;
+      border-top-right-radius: 0; }
+form .row input.column, form .row input.columns, form .row textarea.column, form .row textarea.columns {
+  padding-left: 0.5rem; }
+
+/* Label Styles */
+label {
+  color: #4d4d4d;
+  cursor: pointer;
+  display: block;
+  font-size: 0.875rem;
+  font-weight: normal;
+  line-height: 1.5;
+  margin-bottom: 0;
+  /* Styles for required inputs */ }
+  label.right {
+    float: none !important;
+    text-align: right; }
+  label.inline {
+    margin: 0 0 1rem 0;
+    padding: 0.5625rem 0; }
+  label small {
+    text-transform: capitalize;
+    color: #676767; }
+
+/* Attach elements to the beginning or end of an input */
+.prefix, .postfix {
+  border-style: solid;
+  border-width: 1px;
+  display: block;
+  font-size: 0.875rem;
+  height: 2.3125rem;
+  line-height: 2.3125rem;
+  overflow: visible;
+  padding-bottom: 0;
+  padding-top: 0;
+  position: relative;
+  text-align: center;
+  width: 100%;
+  z-index: 2; }
+
+/* Adjust padding, alignment and radius if pre/post element is a button */
+.postfix.button {
+  border: none;
+  padding-left: 0;
+  padding-right: 0;
+  padding-bottom: 0;
+  padding-top: 0;
+  text-align: center; }
+
+.prefix.button {
+  border: none;
+  padding-left: 0;
+  padding-right: 0;
+  padding-bottom: 0;
+  padding-top: 0;
+  text-align: center; }
+
+.prefix.button.radius {
+  border-radius: 0;
+  -webkit-border-bottom-left-radius: 3px;
+  -webkit-border-top-left-radius: 3px;
+  border-bottom-left-radius: 3px;
+  border-top-left-radius: 3px; }
+
+.postfix.button.radius {
+  border-radius: 0;
+  -webkit-border-bottom-right-radius: 3px;
+  -webkit-border-top-right-radius: 3px;
+  border-bottom-right-radius: 3px;
+  border-top-right-radius: 3px; }
+
+.prefix.button.round {
+  border-radius: 0;
+  -webkit-border-bottom-left-radius: 1000px;
+  -webkit-border-top-left-radius: 1000px;
+  border-bottom-left-radius: 1000px;
+  border-top-left-radius: 1000px; }
+
+.postfix.button.round {
+  border-radius: 0;
+  -webkit-border-bottom-right-radius: 1000px;
+  -webkit-border-top-right-radius: 1000px;
+  border-bottom-right-radius: 1000px;
+  border-top-right-radius: 1000px; }
+
+/* Separate prefix and postfix styles when on span or label so buttons keep their own */
+span.prefix, label.prefix {
+  background: #f2f2f2;
+  border-right: none;
+  color: #333333;
+  border-color: #cccccc; }
+
+span.postfix, label.postfix {
+  background: #f2f2f2;
+  border-left: none;
+  color: #333333;
+  border-color: #cccccc; }
+
+/* We use this to get basic styling on all basic form elements */
+input:not([type]), input[type="text"], input[type="password"], input[type="date"], input[type="datetime"], input[type="datetime-local"], input[type="month"], input[type="week"], input[type="email"], input[type="number"], input[type="search"], input[type="tel"], input[type="time"], input[type="url"], input[type="color"], textarea {
+  -webkit-appearance: none;
+  -moz-appearance: none;
+  border-radius: 0;
+  background-color: #FFFFFF;
+  border-style: solid;
+  border-width: 1px;
+  border-color: #cccccc;
+  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
+  color: rgba(0, 0, 0, 0.75);
+  display: block;
+  font-family: inherit;
+  font-size: 0.875rem;
+  height: 2.3125rem;
+  margin: 0 0 1rem 0;
+  padding: 0.5rem;
+  width: 100%;
+  -webkit-box-sizing: border-box;
+  -moz-box-sizing: border-box;
+  box-sizing: border-box;
+  -webkit-transition: border-color 0.15s linear, background 0.15s linear;
+  -moz-transition: border-color 0.15s linear, background 0.15s linear;
+  -ms-transition: border-color 0.15s linear, background 0.15s linear;
+  -o-transition: border-color 0.15s linear, background 0.15s linear;
+  transition: border-color 0.15s linear, background 0.15s linear; }
+  input:not([type]):focus, input[type="text"]:focus, input[type="password"]:focus, input[type="date"]:focus, input[type="datetime"]:focus, input[type="datetime-local"]:focus, input[type="month"]:focus, input[type="week"]:focus, input[type="email"]:focus, input[type="number"]:focus, input[type="search"]:focus, input[type="tel"]:focus, input[type="time"]:focus, input[type="url"]:focus, input[type="color"]:focus, textarea:focus {
+    background: #fafafa;
+    border-color: #999999;
+    outline: none; }
+  input:not([type]):disabled, input[type="text"]:disabled, input[type="password"]:disabled, input[type="date"]:disabled, input[type="datetime"]:disabled, input[type="datetime-local"]:disabled, input[type="month"]:disabled, input[type="week"]:disabled, input[type="email"]:disabled, input[type="number"]:disabled, input[type="search"]:disabled, input[type="tel"]:disabled, input[type="time"]:disabled, input[type="url"]:disabled, input[type="color"]:disabled, textarea:disabled {
+    background-color: #DDDDDD;
+    cursor: default; }
+  input:not([type])[disabled], input:not([type])[readonly], fieldset[disabled] input:not([type]), input[type="text"][disabled], input[type="text"][readonly], fieldset[disabled] input[type="text"], input[type="password"][disabled], input[type="password"][readonly], fieldset[disabled] input[type="password"], input[type="date"][disabled], input[type="date"][readonly], fieldset[disabled] input[type="date"], input[type="datetime"][disabled], input[type="datetime"][readonly], fieldset[disabled] input[type="datetime"], input[type="datetime-local"][disabled], input[type="datetime-local"][readonly], fieldset[disabled] input[type="datetime-local"], input[type="month"][disabled], input[type="month"][readonly], fieldset[disabled] input[type="month"], input[type="week"][disabled], input[type="week"][readonly], fieldset[disabled] input[type="week"], input[type="email"][disabled], input[type="email"][readonly], fieldset[disabled] input[type="email"], input[type="number"][disabled], input[type="number"][readonly], fieldset[disabled] input[type="number"], input[type="search"][disabled], input[type="search"][readonly], fieldset[disabled] input[type="search"], input[type="tel"][disabled], input[type="tel"][readonly], fieldset[disabled] input[type="tel"], input[type="time"][disabled], input[type="time"][readonly], fieldset[disabled] input[type="time"], input[type="url"][disabled], input[type="url"][readonly], fieldset[disabled] input[type="url"], input[type="color"][disabled], input[type="color"][readonly], fieldset[disabled] input[type="color"], textarea[disabled], textarea[readonly], fieldset[disabled] textarea {
+    background-color: #DDDDDD;
+    cursor: default; }
+  input:not([type]).radius, input[type="text"].radius, input[type="password"].radius, input[type="date"].radius, input[type="datetime"].radius, input[type="datetime-local"].radius, input[type="month"].radius, input[type="week"].radius, input[type="email"].radius, input[type="number"].radius, input[type="search"].radius, input[type="tel"].radius, input[type="time"].radius, input[type="url"].radius, input[type="color"].radius, textarea.radius {
+    border-radius: 3px; }
+
+form .row .prefix-radius.row.collapse input, form .row .prefix-radius.row.collapse textarea, form .row .prefix-radius.row.collapse select, form .row .prefix-radius.row.collapse button {
+  border-radius: 0;
+  -webkit-border-bottom-right-radius: 3px;
+  -webkit-border-top-right-radius: 3px;
+  border-bottom-right-radius: 3px;
+  border-top-right-radius: 3px; }
+form .row .prefix-radius.row.collapse .prefix {
+  border-radius: 0;
+  -webkit-border-bottom-left-radius: 3px;
+  -webkit-border-top-left-radius: 3px;
+  border-bottom-left-radius: 3px;
+  border-top-left-radius: 3px; }
+form .row .postfix-radius.row.collapse input, form .row .postfix-radius.row.collapse textarea, form .row .postfix-radius.row.collapse select, form .row .postfix-radius.row.collapse button {
+  border-radius: 0;
+  -webkit-border-bottom-left-radius: 3px;
+  -webkit-border-top-left-radius: 3px;
+  border-bottom-left-radius: 3px;
+  border-top-left-radius: 3px; }
+form .row .postfix-radius.row.collapse .postfix {
+  border-radius: 0;
+  -webkit-border-bottom-right-radius: 3px;
+  -webkit-border-top-right-radius: 3px;
+  border-bottom-right-radius: 3px;
+  border-top-right-radius: 3px; }
+form .row .prefix-round.row.collapse input, form .row .prefix-round.row.collapse textarea, form .row .prefix-round.row.collapse select, form .row .prefix-round.row.collapse button {
+  border-radius: 0;
+  -webkit-border-bottom-right-radius: 1000px;
+  -webkit-border-top-right-radius: 1000px;
+  border-bottom-right-radius: 1000px;
+  border-top-right-radius: 1000px; }
+form .row .prefix-round.row.collapse .prefix {
+  border-radius: 0;
+  -webkit-border-bottom-left-radius: 1000px;
+  -webkit-border-top-left-radius: 1000px;
+  border-bottom-left-radius: 1000px;
+  border-top-left-radius: 1000px; }
+form .row .postfix-round.row.collapse input, form .row .postfix-round.row.collapse textarea, form .row .postfix-round.row.collapse select, form .row .postfix-round.row.collapse button {
+  border-radius: 0;
+  -webkit-border-bottom-left-radius: 1000px;
+  -webkit-border-top-left-radius: 1000px;
+  border-bottom-left-radius: 1000px;
+  border-top-left-radius: 1000px; }
+form .row .postfix-round.row.collapse .postfix {
+  border-radius: 0;
+  -webkit-border-bottom-right-radius: 1000px;
+  -webkit-border-top-right-radius: 1000px;
+  border-bottom-right-radius: 1000px;
+  border-top-right-radius: 1000px; }
+
+input[type="submit"] {
+  -webkit-appearance: none;
+  -moz-appearance: none;
+  border-radius: 0; }
+
+/* Respect enforced amount of rows for textarea */
+textarea[rows] {
+  height: auto; }
+
+/* Not allow resize out of parent */
+textarea {
+  max-width: 100%; }
+
+::-webkit-input-placeholder {
+  color: #666666; }
+
+:-moz-placeholder {
+  /* Firefox 18- */
+  color: #666666; }
+
+::-moz-placeholder {
+  /* Firefox 19+ */
+  color: #666666; }
+
+:-ms-input-placeholder {
+  color: #666666; }
+
+/* Add height value for select elements to match text input height */
+select {
+  -webkit-appearance: none !important;
+  -moz-appearance: none !important;
+  background-color: #FAFAFA;
+  border-radius: 0;
+  background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgeD0iMTJweCIgeT0iMHB4IiB3aWR0aD0iMjRweCIgaGVpZ2h0PSIzcHgiIHZpZXdCb3g9IjAgMCA2IDMiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDYgMyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PHBvbHlnb24gcG9pbnRzPSI1Ljk5MiwwIDIuOTkyLDMgLTAuMDA4LDAgIi8+PC9zdmc+');
+  background-position: 100% center;
+  background-repeat: no-repeat;
+  border-style: solid;
+  border-width: 1px;
+  border-color: #cccccc;
+  color: rgba(0, 0, 0, 0.75);
+  font-family: inherit;
+  font-size: 0.875rem;
+  line-height: normal;
+  padding: 0.5rem;
+  border-radius: 0;
+  height: 2.3125rem; }
+  select::-ms-expand {
+    display: none; }
+  select.radius {
+    border-radius: 3px; }
+  select:focus {
+    background-color: #f3f3f3;
+    border-color: #999999; }
+  select:disabled {
+    background-color: #DDDDDD;
+    cursor: default; }
+  select[multiple] {
+    height: auto; }
+
+/* Adjust margin for form elements below */
+input[type="file"], input[type="checkbox"], input[type="radio"], select {
+  margin: 0 0 1rem 0; }
+
+input[type="checkbox"] + label, input[type="radio"] + label {
+  display: inline-block;
+  margin-left: 0.5rem;
+  margin-right: 1rem;
+  margin-bottom: 0;
+  vertical-align: baseline; }
+
+/* Normalize file input width */
+input[type="file"] {
+  width: 100%; }
+
+/* HTML5 Number spinners settings */
+/* We add basic fieldset styling */
+fieldset {
+  border: 1px solid #DDDDDD;
+  margin: 1.125rem 0;
+  padding: 1.25rem; }
+  fieldset legend {
+    font-weight: bold;
+    margin: 0;
+    margin-left: -0.1875rem;
+    padding: 0 0.1875rem; }
+
+/* Error Handling */
+[data-abide] .error small.error, [data-abide] .error span.error, [data-abide] span.error, [data-abide] small.error {
+  display: block;
+  font-size: 0.75rem;
+  font-style: italic;
+  font-weight: normal;
+  margin-bottom: 1rem;
+  margin-top: -1px;
+  padding: 0.375rem 0.5625rem 0.5625rem;
+  background: #f04124;
+  color: #FFFFFF; }
+[data-abide] span.error, [data-abide] small.error {
+  display: none; }
+
+span.error, small.error {
+  display: block;
+  font-size: 0.75rem;
+  font-style: italic;
+  font-weight: normal;
+  margin-bottom: 1rem;
+  margin-top: -1px;
+  padding: 0.375rem 0.5625rem 0.5625rem;
+  background: #f04124;
+  color: #FFFFFF; }
+
+.error input, .error textarea, .error select {
+  margin-bottom: 0; }
+.error input[type="checkbox"], .error input[type="radio"] {
+  margin-bottom: 1rem; }
+.error label, .error label.error {
+  color: #f04124; }
+.error small.error {
+  display: block;
+  font-size: 0.75rem;
+  font-style: italic;
+  font-weight: normal;
+  margin-bottom: 1rem;
+  margin-top: -1px;
+  padding: 0.375rem 0.5625rem 0.5625rem;
+  background: #f04124;
+  color: #FFFFFF; }
+.error > label > small {
+  background: transparent;
+  color: #676767;
+  display: inline;
+  font-size: 60%;
+  font-style: normal;
+  margin: 0;
+  padding: 0;
+  text-transform: capitalize; }
+.error span.error-message {
+  display: block; }
+
+input.error, textarea.error, select.error {
+  margin-bottom: 0; }
+
+label.error {
+  color: #f04124; }
+
+.icon-bar {
+  display: inline-block;
+  font-size: 0;
+  width: 100%;
+  background: #333333; }
+  .icon-bar > * {
+    display: block;
+    float: left;
+    font-size: 1rem;
+    margin: 0 auto;
+    padding: 1.25rem;
+    text-align: center;
+    width: 25%; }
+    .icon-bar > * i, .icon-bar > * img {
+      display: block;
+      margin: 0 auto; }
+      .icon-bar > * i + label, .icon-bar > * img + label {
+        margin-top: .0625rem; }
+    .icon-bar > * i {
+      font-size: 1.875rem;
+      vertical-align: middle; }
+    .icon-bar > * img {
+      height: 1.875rem;
+      width: 1.875rem; }
+  .icon-bar.label-right > * i, .icon-bar.label-right > * img {
+    display: inline-block;
+    margin: 0 .0625rem 0 0; }
+    .icon-bar.label-right > * i + label, .icon-bar.label-right > * img + label {
+      margin-top: 0; }
+  .icon-bar.label-right > * label {
+    display: inline-block; }
+  .icon-bar.vertical.label-right > * {
+    text-align: left; }
+  .icon-bar.vertical, .icon-bar.small-vertical {
+    height: 100%;
+    width: auto; }
+    .icon-bar.vertical .item, .icon-bar.small-vertical .item {
+      float: none;
+      margin: auto;
+      width: auto; }
+  @media only screen and (min-width:40.063em) {
+    .icon-bar.medium-vertical {
+      height: 100%;
+      width: auto; }
+      .icon-bar.medium-vertical .item {
+        float: none;
+        margin: auto;
+        width: auto; } }
+  @media only screen and (min-width:64.063em) {
+    .icon-bar.large-vertical {
+      height: 100%;
+      width: auto; }
+      .icon-bar.large-vertical .item {
+        float: none;
+        margin: auto;
+        width: auto; } }
+  .icon-bar > * {
+    font-size: 1rem;
+    padding: 1.25rem; }
+    .icon-bar > * i + label, .icon-bar > * img + label {
+      margin-top: .0625rem;
+      font-size: 1rem; }
+    .icon-bar > * i {
+      font-size: 1.875rem; }
+    .icon-bar > * img {
+      height: 1.875rem;
+      width: 1.875rem; }
+  .icon-bar > * label {
+    color: #FFFFFF; }
+  .icon-bar > * i {
+    color: #FFFFFF; }
+  .icon-bar > a:hover {
+    background: #008CBA; }
+    .icon-bar > a:hover label {
+      color: #FFFFFF; }
+    .icon-bar > a:hover i {
+      color: #FFFFFF; }
+  .icon-bar > a.active {
+    background: #008CBA; }
+    .icon-bar > a.active label {
+      color: #FFFFFF; }
+    .icon-bar > a.active i {
+      color: #FFFFFF; }
+  .icon-bar .item.disabled {
+    cursor: false;
+    opacity: 0.7;
+    pointer-events: none; }
+    .icon-bar .item.disabled > * {
+      opacity: 0.7;
+      cursor: false; }
+  .icon-bar.two-up .item {
+    width: 50%; }
+  .icon-bar.two-up.vertical .item, .icon-bar.two-up.small-vertical .item {
+    width: auto; }
+  @media only screen and (min-width:40.063em) {
+    .icon-bar.two-up.medium-vertical .item {
+      width: auto; } }
+  @media only screen and (min-width:64.063em) {
+    .icon-bar.two-up.large-vertical .item {
+      width: auto; } }
+  .icon-bar.three-up .item {
+    width: 33.3333%; }
+  .icon-bar.three-up.vertical .item, .icon-bar.three-up.small-vertical .item {
+    width: auto; }
+  @media only screen and (min-width:40.063em) {
+    .icon-bar.three-up.medium-vertical .item {
+      width: auto; } }
+  @media only screen and (min-width:64.063em) {
+    .icon-bar.three-up.large-vertical .item {
+      width: auto; } }
+  .icon-bar.four-up .item {
+    width: 25%; }
+  .icon-bar.four-up.vertical .item, .icon-bar.four-up.small-vertical .item {
+    width: auto; }
+  @media only screen and (min-width:40.063em) {
+    .icon-bar.four-up.medium-vertical .item {
+      width: auto; } }
+  @media only screen and (min-width:64.063em) {
+    .icon-bar.four-up.large-vertical .item {
+      width: auto; } }
+  .icon-bar.five-up .item {
+    width: 20%; }
+  .icon-bar.five-up.vertical .item, .icon-bar.five-up.small-vertical .item {
+    width: auto; }
+  @media only screen and (min-width:40.063em) {
+    .icon-bar.five-up.medium-vertical .item {
+      width: auto; } }
+  @media only screen and (min-width:64.063em) {
+    .icon-bar.five-up.large-vertical .item {
+      width: auto; } }
+  .icon-bar.six-up .item {
+    width: 16.66667%; }
+  .icon-bar.six-up.vertical .item, .icon-bar.six-up.small-vertical .item {
+    width: auto; }
+  @media only screen and (min-width:40.063em) {
+    .icon-bar.six-up.medium-vertical .item {
+      width: auto; } }
+  @media only screen and (min-width:64.063em) {
+    .icon-bar.six-up.large-vertical .item {
+      width: auto; } }
+  .icon-bar.seven-up .item {
+    width: 14.28571%; }
+  .icon-bar.seven-up.vertical .item, .icon-bar.seven-up.small-vertical .item {
+    width: auto; }
+  @media only screen and (min-width:40.063em) {
+    .icon-bar.seven-up.medium-vertical .item {
+      width: auto; } }
+  @media only screen and (min-width:64.063em) {
+    .icon-bar.seven-up.large-vertical .item {
+      width: auto; } }
+  .icon-bar.eight-up .item {
+    width: 12.5%; }
+  .icon-bar.eight-up.vertical .item, .icon-bar.eight-up.small-vertical .item {
+    width: auto; }
+  @media only screen and (min-width:40.063em) {
+    .icon-bar.eight-up.medium-vertical .item {
+      width: auto; } }
+  @media only screen and (min-width:64.063em) {
+    .icon-bar.eight-up.large-vertical .item {
+      width: auto; } }
+
+.icon-bar.two-up .item {
+  width: 50%; }
+.icon-bar.two-up.vertical .item, .icon-bar.two-up.small-vertical .item {
+  width: auto; }
+@media only screen and (min-width:40.063em) {
+  .icon-bar.two-up.medium-vertical .item {
+    width: auto; } }
+@media only screen and (min-width:64.063em) {
+  .icon-bar.two-up.large-vertical .item {
+    width: auto; } }
+.icon-bar.three-up .item {
+  width: 33.3333%; }
+.icon-bar.three-up.vertical .item, .icon-bar.three-up.small-vertical .item {
+  width: auto; }
+@media only screen and (min-width:40.063em) {
+  .icon-bar.three-up.medium-vertical .item {
+    width: auto; } }
+@media only screen and (min-width:64.063em) {
+  .icon-bar.three-up.large-vertical .item {
+    width: auto; } }
+.icon-bar.four-up .item {
+  width: 25%; }
+.icon-bar.four-up.vertical .item, .icon-bar.four-up.small-vertical .item {
+  width: auto; }
+@media only screen and (min-width:40.063em) {
+  .icon-bar.four-up.medium-vertical .item {
+    width: auto; } }
+@media only screen and (min-width:64.063em) {
+  .icon-bar.four-up.large-vertical .item {
+    width: auto; } }
+.icon-bar.five-up .item {
+  width: 20%; }
+.icon-bar.five-up.vertical .item, .icon-bar.five-up.small-vertical .item {
+  width: auto; }
+@media only screen and (min-width:40.063em) {
+  .icon-bar.five-up.medium-vertical .item {
+    width: auto; } }
+@media only screen and (min-width:64.063em) {
+  .icon-bar.five-up.large-vertical .item {
+    width: auto; } }
+.icon-bar.six-up .item {
+  width: 16.66667%; }
+.icon-bar.six-up.vertical .item, .icon-bar.six-up.small-vertical .item {
+  width: auto; }
+@media only screen and (min-width:40.063em) {
+  .icon-bar.six-up.medium-vertical .item {
+    width: auto; } }
+@media only screen and (min-width:64.063em) {
+  .icon-bar.six-up.large-vertical .item {
+    width: auto; } }
+.icon-bar.seven-up .item {
+  width: 14.28571%; }
+.icon-bar.seven-up.vertical .item, .icon-bar.seven-up.small-vertical .item {
+  width: auto; }
+@media only screen and (min-width:40.063em) {
+  .icon-bar.seven-up.medium-vertical .item {
+    width: auto; } }
+@media only screen and (min-width:64.063em) {
+  .icon-bar.seven-up.large-vertical .item {
+    width: auto; } }
+.icon-bar.eight-up .item {
+  width: 12.5%; }
+.icon-bar.eight-up.vertical .item, .icon-bar.eight-up.small-vertical .item {
+  width: auto; }
+@media only screen and (min-width:40.063em) {
+  .icon-bar.eight-up.medium-vertical .item {
+    width: auto; } }
+@media only screen and (min-width:64.063em) {
+  .icon-bar.eight-up.large-vertical .item {
+    width: auto; } }
+
+.inline-list {
+  list-style: none;
+  margin-top: 0;
+  margin-bottom: 1.0625rem;
+  margin-left: -1.375rem;
+  margin-right: 0;
+  overflow: hidden;
+  padding: 0; }
+  .inline-list > li {
+    display: block;
+    float: left;
+    list-style: none;
+    margin-left: 1.375rem; }
+    .inline-list > li > * {
+      display: block; }
+
+/* Foundation Joyride */
+.joyride-list {
+  display: none; }
+
+/* Default styles for the container */
+.joyride-tip-guide {
+  background: #333333;
+  color: #FFFFFF;
+  display: none;
+  font-family: inherit;
+  font-weight: normal;
+  position: absolute;
+  top: 0;
+  width: 95%;
+  z-index: 103;
+  left: 2.5%; }
+
+.lt-ie9 .joyride-tip-guide {
+  margin-left: -400px;
+  max-width: 800px;
+  left: 50%; }
+
+.joyride-content-wrapper {
+  padding: 1.125rem 1.25rem 1.5rem;
+  width: 100%; }
+  .joyride-content-wrapper .button {
+    margin-bottom: 0 !important; }
+  .joyride-content-wrapper .joyride-prev-tip {
+    margin-right: 10px; }
+
+/* Add a little css triangle pip, older browser just miss out on the fanciness of it */
+.joyride-tip-guide .joyride-nub {
+  border: 10px solid #333333;
+  display: block;
+  height: 0;
+  position: absolute;
+  width: 0;
+  left: 22px; }
+  .joyride-tip-guide .joyride-nub.top {
+    border-color: #333333;
+    border-top-color: transparent !important;
+    border-top-style: solid;
+    border-left-color: transparent !important;
+    border-right-color: transparent !important;
+    top: -20px; }
+  .joyride-tip-guide .joyride-nub.bottom {
+    border-color: #333333 !important;
+    border-bottom-color: transparent !important;
+    border-bottom-style: solid;
+    border-left-color: transparent !important;
+    border-right-color: transparent !important;
+    bottom: -20px; }
+  .joyride-tip-guide .joyride-nub.right {
+    right: -20px; }
+  .joyride-tip-guide .joyride-nub.left {
+    left: -20px; }
+
+/* Typography */
+.joyride-tip-guide h1, .joyride-tip-guide h2, .joyride-tip-guide h3, .joyride-tip-guide h4, .joyride-tip-guide h5, .joyride-tip-guide h6 {
+  color: #FFFFFF;
+  font-weight: bold;
+  line-height: 1.25;
+  margin: 0; }
+
+.joyride-tip-guide p {
+  font-size: 0.875rem;
+  line-height: 1.3;
+  margin: 0 0 1.125rem 0; }
+
+.joyride-timer-indicator-wrap {
+  border: solid 1px #555555;
+  bottom: 1rem;
+  height: 3px;
+  position: absolute;
+  width: 50px;
+  right: 1.0625rem; }
+
+.joyride-timer-indicator {
+  background: #666666;
+  display: block;
+  height: inherit;
+  width: 0; }
+
+.joyride-close-tip {
+  color: #777777 !important;
+  font-size: 24px;
+  font-weight: normal;
+  line-height: .5 !important;
+  position: absolute;
+  text-decoration: none;
+  top: 10px;
+  right: 12px; }
+  .joyride-close-tip:hover, .joyride-close-tip:focus {
+    color: #EEEEEE !important; }
+
+.joyride-modal-bg {
+  background: rgba(0, 0, 0, 0.5);
+  cursor: pointer;
+  display: none;
+  height: 100%;
+  position: fixed;
+  top: 0;
+  width: 100%;
+  z-index: 100;
+  left: 0; }
+
+.joyride-expose-wrapper {
+  background-color: #FFFFFF;
+  border-radius: 3px;
+  box-shadow: 0 0 15px #FFFFFF;
+  position: absolute;
+  z-index: 102; }
+
+.joyride-expose-cover {
+  background: transparent;
+  border-radius: 3px;
+  left: 0;
+  position: absolute;
+  top: 0;
+  z-index: 9999; }
+
+/* Styles for screens that are at least 768px; */
+@media only screen {
+  .joyride-tip-guide {
+    width: 300px;
+    left: inherit; }
+    .joyride-tip-guide .joyride-nub.bottom {
+      border-color: #333333 !important;
+      border-bottom-color: transparent !important;
+      border-left-color: transparent !important;
+      border-right-color: transparent !important;
+      bottom: -20px; }
+    .joyride-tip-guide .joyride-nub.right {
+      border-color: #333333 !important;
+      border-right-color: transparent !important;
+      border-bottom-color: transparent !important;
+      border-top-color: transparent !important;
+      left: auto;
+      right: -20px;
+      top: 22px; }
+    .joyride-tip-guide .joyride-nub.left {
+      border-color: #333333 !important;
+      border-bottom-color: transparent !important;
+      border-left-color: transparent !important;
+      border-top-color: transparent !important;
+      left: -20px;
+      right: auto;
+      top: 22px; } }
+
+.keystroke, kbd {
+  background-color: #ededed;
+  border-color: #dddddd;
+  color: #222222;
+  border-style: solid;
+  border-width: 1px;
+  font-family: "Consolas", "Menlo", "Courier", monospace;
+  font-size: inherit;
+  margin: 0;
+  padding: 0.125rem 0.25rem 0;
+  border-radius: 3px; }
+
+.label {
+  display: inline-block;
+  font-family: "Open Sans", sans-serif;
+  font-weight: normal;
+  line-height: 1;
+  margin-bottom: auto;
+  position: relative;
+  text-align: center;
+  text-decoration: none;
+  white-space: nowrap;
+  padding: 0.25rem 0.5rem 0.25rem;
+  font-size: 0.6875rem;
+  background-color: #008CBA;
+  color: #FFFFFF; }
+  .label.radius {
+    border-radius: 3px; }
+  .label.round {
+    border-radius: 1000px; }
+  .label.alert {
+    background-color: #f04124;
+    color: #FFFFFF; }
+  .label.warning {
+    background-color: #f08a24;
+    color: #FFFFFF; }
+  .label.success {
+    background-color: #43AC6A;
+    color: #FFFFFF; }
+  .label.secondary {
+    background-color: #e7e7e7;
+    color: #333333; }
+  .label.info {
+    background-color: #a0d3e8;
+    color: #333333; }
+
+[data-magellan-expedition], [data-magellan-expedition-clone] {
+  background: #FFFFFF;
+  min-width: 100%;
+  padding: 10px;
+  z-index: 50; }
+  [data-magellan-expedition] .sub-nav, [data-magellan-expedition-clone] .sub-nav {
+    margin-bottom: 0; }
+    [data-magellan-expedition] .sub-nav dd, [data-magellan-expedition-clone] .sub-nav dd {
+      margin-bottom: 0; }
+    [data-magellan-expedition] .sub-nav a, [data-magellan-expedition-clone] .sub-nav a {
+      line-height: 1.8em; }
+
+@-webkit-keyframes rotate {
+  from {
+    -webkit-transform: rotate(0deg);
+    transform: rotate(0deg); }
+
+  to {
+    -webkit-transform: rotate(360deg);
+    transform: rotate(360deg); } }
+
+@keyframes rotate {
+  from {
+    -webkit-transform: rotate(0deg);
+    -moz-transform: rotate(0deg);
+    -ms-transform: rotate(0deg);
+    transform: rotate(0deg); }
+
+  to {
+    -webkit-transform: rotate(360deg);
+    -moz-transform: rotate(360deg);
+    -ms-transform: rotate(360deg);
+    transform: rotate(360deg); } }
+
+/* Orbit Graceful Loading */
+.slideshow-wrapper {
+  position: relative; }
+  .slideshow-wrapper ul {
+    list-style-type: none;
+    margin: 0; }
+    .slideshow-wrapper ul li, .slideshow-wrapper ul li .orbit-caption {
+      display: none; }
+    .slideshow-wrapper ul li:first-child {
+      display: block; }
+  .slideshow-wrapper .orbit-container {
+    background-color: transparent; }
+    .slideshow-wrapper .orbit-container li {
+      display: block; }
+      .slideshow-wrapper .orbit-container li .orbit-caption {
+        display: block; }
+    .slideshow-wrapper .orbit-container .orbit-bullets li {
+      display: inline-block; }
+  .slideshow-wrapper .preloader {
+    border-radius: 1000px;
+    animation-duration: 1.5s;
+    animation-iteration-count: infinite;
+    animation-name: rotate;
+    animation-timing-function: linear;
+    border-color: #555555 #FFFFFF;
+    border: solid 3px;
+    display: block;
+    height: 40px;
+    left: 50%;
+    margin-left: -20px;
+    margin-top: -20px;
+    position: absolute;
+    top: 50%;
+    width: 40px; }
+
+.orbit-container {
+  background: none;
+  overflow: hidden;
+  position: relative;
+  width: 100%; }
+  .orbit-container .orbit-slides-container {
+    list-style: none;
+    margin: 0;
+    padding: 0;
+    position: relative;
+    -webkit-transform: translateZ(0);
+    -moz-transform: translateZ(0);
+    -ms-transform: translateZ(0);
+    -o-transform: translateZ(0);
+    transform: translateZ(0); }
+    .orbit-container .orbit-slides-container img {
+      display: block;
+      max-width: 100%; }
+    .orbit-container .orbit-slides-container > * {
+      position: absolute;
+      top: 0;
+      width: 100%;
+      margin-left: 100%; }
+      .orbit-container .orbit-slides-container > *:first-child {
+        margin-left: 0; }
+      .orbit-container .orbit-slides-container > * .orbit-caption {
+        bottom: 0;
+        position: absolute;
+        background-color: rgba(51, 51, 51, 0.8);
+        color: #FFFFFF;
+        font-size: 0.875rem;
+        padding: 0.625rem 0.875rem;
+        width: 100%; }
+  .orbit-container .orbit-slide-number {
+    left: 10px;
+    background: transparent;
+    color: #FFFFFF;
+    font-size: 12px;
+    position: absolute;
+    top: 10px;
+    z-index: 10; }
+    .orbit-container .orbit-slide-number span {
+      font-weight: 700;
+      padding: 0.3125rem; }
+  .orbit-container .orbit-timer {
+    position: absolute;
+    top: 12px;
+    right: 10px;
+    height: 6px;
+    width: 100px;
+    z-index: 10; }
+    .orbit-container .orbit-timer .orbit-progress {
+      height: 3px;
+      background-color: rgba(255, 255, 255, 0.3);
+      display: block;
+      width: 0;
+      position: relative;
+      right: 20px;
+      top: 5px; }
+    .orbit-container .orbit-timer > span {
+      border: solid 4px #FFFFFF;
+      border-bottom: none;
+      border-top: none;
+      display: none;
+      height: 14px;
+      position: absolute;
+      top: 0;
+      width: 11px;
+      right: 0; }
+    .orbit-container .orbit-timer.paused > span {
+      top: 0;
+      width: 11px;
+      height: 14px;
+      border: inset 8px;
+      border-left-style: solid;
+      border-color: transparent;
+      border-left-color: #FFFFFF;
+      right: -4px; }
+      .orbit-container .orbit-timer.paused > span.dark {
+        border-left-color: #333333; }
+  .orbit-container:hover .orbit-timer > span {
+    display: block; }
+  .orbit-container .orbit-prev, .orbit-container .orbit-next {
+    background-color: transparent;
+    color: white;
+    height: 60px;
+    line-height: 50px;
+    margin-top: -25px;
+    position: absolute;
+    text-indent: -9999px !important;
+    top: 45%;
+    width: 36px;
+    z-index: 10; }
+    .orbit-container .orbit-prev:hover, .orbit-container .orbit-next:hover {
+      background-color: rgba(0, 0, 0, 0.3); }
+    .orbit-container .orbit-prev > span, .orbit-container .orbit-next > span {
+      border: inset 10px;
+      display: block;
+      height: 0;
+      margin-top: -10px;
+      position: absolute;
+      top: 50%;
+      width: 0; }
+  .orbit-container .orbit-prev {
+    left: 0; }
+    .orbit-container .orbit-prev > span {
+      border-right-style: solid;
+      border-color: transparent;
+      border-right-color: #FFFFFF; }
+    .orbit-container .orbit-prev:hover > span {
+      border-right-color: #FFFFFF; }
+  .orbit-container .orbit-next {
+    right: 0; }
+    .orbit-container .orbit-next > span {
+      border-color: transparent;
+      border-left-style: solid;
+      border-left-color: #FFFFFF;
+      left: 50%;
+      margin-left: -4px; }
+    .orbit-container .orbit-next:hover > span {
+      border-left-color: #FFFFFF; }
+
+.orbit-bullets-container {
+  text-align: center; }
+
+.orbit-bullets {
+  display: block;
+  float: none;
+  margin: 0 auto 30px auto;
+  overflow: hidden;
+  position: relative;
+  text-align: center;
+  top: 10px; }
+  .orbit-bullets li {
+    background: #CCCCCC;
+    cursor: pointer;
+    display: inline-block;
+    float: none;
+    height: 0.5625rem;
+    margin-right: 6px;
+    width: 0.5625rem;
+    border-radius: 1000px; }
+    .orbit-bullets li.active {
+      background: #999999; }
+    .orbit-bullets li:last-child {
+      margin-right: 0; }
+
+.touch .orbit-container .orbit-prev, .touch .orbit-container .orbit-next {
+  display: none; }
+.touch .orbit-bullets {
+  display: none; }
+
+@media only screen and (min-width:40.063em) {
+  .touch .orbit-container .orbit-prev, .touch .orbit-container .orbit-next {
+    display: inherit; }
+  .touch .orbit-bullets {
+    display: block; } }
+
+@media only screen and (max-width: 40em) {
+  .orbit-stack-on-small .orbit-slides-container {
+    height: auto !important; }
+  .orbit-stack-on-small .orbit-slides-container > * {
+    margin: 0  !important;
+    opacity: 1 !important;
+    position: relative; }
+  .orbit-stack-on-small .orbit-slide-number {
+    display: none; }
+  .orbit-timer {
+    display: none; }
+  .orbit-next, .orbit-prev {
+    display: none; }
+  .orbit-bullets {
+    display: none; } }
+
+ul.pagination {
+  display: block;
+  margin-left: -0.3125rem;
+  min-height: 1.5rem; }
+  ul.pagination li {
+    color: #222222;
+    font-size: 0.875rem;
+    height: 1.5rem;
+    margin-left: 0.3125rem; }
+    ul.pagination li a, ul.pagination li button {
+      border-radius: 3px;
+      transition: background-color 300ms ease-out;
+      background: none;
+      color: #999999;
+      display: block;
+      font-size: 1em;
+      font-weight: normal;
+      line-height: inherit;
+      padding: 0.0625rem 0.625rem 0.0625rem; }
+    ul.pagination li:hover a, ul.pagination li a:focus, ul.pagination li:hover button, ul.pagination li button:focus {
+      background: #e6e6e6; }
+    ul.pagination li.unavailable a, ul.pagination li.unavailable button {
+      cursor: default;
+      color: #999999;
+      pointer-events: none; }
+    ul.pagination li.unavailable:hover a, ul.pagination li.unavailable a:focus, ul.pagination li.unavailable:hover button, ul.pagination li.unavailable button:focus {
+      background: transparent; }
+    ul.pagination li.current a, ul.pagination li.current button {
+      background: #008CBA;
+      color: #FFFFFF;
+      cursor: default;
+      font-weight: bold; }
+      ul.pagination li.current a:hover, ul.pagination li.current a:focus, ul.pagination li.current button:hover, ul.pagination li.current button:focus {
+        background: #008CBA; }
+  ul.pagination li {
+    display: block;
+    float: left; }
+
+/* Pagination centred wrapper */
+.pagination-centered {
+  text-align: center; }
+  .pagination-centered ul.pagination li {
+    display: inline-block;
+    float: none; }
+
+/* Panels */
+.panel {
+  border-style: solid;
+  border-width: 1px;
+  border-color: #d8d8d8;
+  margin-bottom: 1.25rem;
+  padding: 1.25rem;
+  background: #f2f2f2;
+  color: #333333; }
+  .panel > :first-child {
+    margin-top: 0; }
+  .panel > :last-child {
+    margin-bottom: 0; }
+  .panel h1, .panel h2, .panel h3, .panel h4, .panel h5, .panel h6, .panel p, .panel li, .panel dl {
+    color: #333333; }
+  .panel h1, .panel h2, .panel h3, .panel h4, .panel h5, .panel h6 {
+    line-height: 1;
+    margin-bottom: 0.625rem; }
+    .panel h1.subheader, .panel h2.subheader, .panel h3.subheader, .panel h4.subheader, .panel h5.subheader, .panel h6.subheader {
+      line-height: 1.4; }
+  .panel.callout {
+    border-style: solid;
+    border-width: 1px;
+    border-color: #d8d8d8;
+    margin-bottom: 1.25rem;
+    padding: 1.25rem;
+    background: #ecfaff;
+    color: #333333; }
+    .panel.callout > :first-child {
+      margin-top: 0; }
+    .panel.callout > :last-child {
+      margin-bottom: 0; }
+    .panel.callout h1, .panel.callout h2, .panel.callout h3, .panel.callout h4, .panel.callout h5, .panel.callout h6, .panel.callout p, .panel.callout li, .panel.callout dl {
+      color: #333333; }
+    .panel.callout h1, .panel.callout h2, .panel.callout h3, .panel.callout h4, .panel.callout h5, .panel.callout h6 {
+      line-height: 1;
+      margin-bottom: 0.625rem; }
+      .panel.callout h1.subheader, .panel.callout h2.subheader, .panel.callout h3.subheader, .panel.callout h4.subheader, .panel.callout h5.subheader, .panel.callout h6.subheader {
+        line-height: 1.4; }
+    .panel.callout a:not(.button) {
+      color: #008CBA; }
+      .panel.callout a:not(.button):hover, .panel.callout a:not(.button):focus {
+        color: #0078a0; }
+  .panel.radius {
+    border-radius: 3px; }
+
+/* Pricing Tables */
+.pricing-table {
+  border: solid 1px #DDDDDD;
+  margin-left: 0;
+  margin-bottom: 1.25rem; }
+  .pricing-table * {
+    list-style: none;
+    line-height: 1; }
+  .pricing-table .title {
+    background-color: #333333;
+    color: #EEEEEE;
+    font-family: "Open Sans", sans-serif;
+    font-size: 1rem;
+    font-weight: normal;
+    padding: 0.9375rem 1.25rem;
+    text-align: center; }
+  .pricing-table .price {
+    background-color: #F6F6F6;
+    color: #333333;
+    font-family: "Open Sans", sans-serif;
+    font-size: 2rem;
+    font-weight: normal;
+    padding: 0.9375rem 1.25rem;
+    text-align: center; }
+  .pricing-table .description {
+    background-color: #FFFFFF;
+    border-bottom: dotted 1px #DDDDDD;
+    color: #777777;
+    font-size: 0.75rem;
+    font-weight: normal;
+    line-height: 1.4;
+    padding: 0.9375rem;
+    text-align: center; }
+  .pricing-table .bullet-item {
+    background-color: #FFFFFF;
+    border-bottom: dotted 1px #DDDDDD;
+    color: #333333;
+    font-size: 0.875rem;
+    font-weight: normal;
+    padding: 0.9375rem;
+    text-align: center; }
+  .pricing-table .cta-button {
+    background-color: #FFFFFF;
+    padding: 1.25rem 1.25rem 0;
+    text-align: center; }
+
+/* Progress Bar */
+.progress {
+  background-color: #F6F6F6;
+  border: 1px solid white;
+  height: 1.5625rem;
+  margin-bottom: 0.625rem;
+  padding: 0.125rem; }
+  .progress .meter {
+    background: #008CBA;
+    display: block;
+    height: 100%;
+    float: left;
+    width: 0%; }
+    .progress .meter.secondary {
+      background: #e7e7e7;
+      display: block;
+      height: 100%;
+      float: left;
+      width: 0%; }
+    .progress .meter.success {
+      background: #43AC6A;
+      display: block;
+      height: 100%;
+      float: left;
+      width: 0%; }
+    .progress .meter.alert {
+      background: #f04124;
+      display: block;
+      height: 100%;
+      float: left;
+      width: 0%; }
+  .progress.secondary .meter {
+    background: #e7e7e7;
+    display: block;
+    height: 100%;
+    float: left;
+    width: 0%; }
+  .progress.success .meter {
+    background: #43AC6A;
+    display: block;
+    height: 100%;
+    float: left;
+    width: 0%; }
+  .progress.alert .meter {
+    background: #f04124;
+    display: block;
+    height: 100%;
+    float: left;
+    width: 0%; }
+  .progress.radius {
+    border-radius: 3px; }
+    .progress.radius .meter {
+      border-radius: 2px; }
+  .progress.round {
+    border-radius: 1000px; }
+    .progress.round .meter {
+      border-radius: 999px; }
+
+.range-slider {
+  border: 1px solid #DDDDDD;
+  margin: 1.25rem 0;
+  position: relative;
+  -ms-touch-action: none;
+  touch-action: none;
+  display: block;
+  height: 1rem;
+  width: 100%;
+  background: #FAFAFA; }
+  .range-slider.vertical-range {
+    border: 1px solid #DDDDDD;
+    margin: 1.25rem 0;
+    position: relative;
+    -ms-touch-action: none;
+    touch-action: none;
+    display: inline-block;
+    height: 12.5rem;
+    width: 1rem; }
+    .range-slider.vertical-range .range-slider-handle {
+      bottom: -10.5rem;
+      margin-left: -0.5rem;
+      margin-top: 0;
+      position: absolute; }
+    .range-slider.vertical-range .range-slider-active-segment {
+      border-bottom-left-radius: inherit;
+      border-bottom-right-radius: inherit;
+      border-top-left-radius: initial;
+      bottom: 0;
+      height: auto;
+      width: 0.875rem; }
+  .range-slider.radius {
+    background: #FAFAFA;
+    border-radius: 3px; }
+    .range-slider.radius .range-slider-handle {
+      background: #008CBA;
+      border-radius: 3px; }
+      .range-slider.radius .range-slider-handle:hover {
+        background: #007ba4; }
+  .range-slider.round {
+    background: #FAFAFA;
+    border-radius: 1000px; }
+    .range-slider.round .range-slider-handle {
+      background: #008CBA;
+      border-radius: 1000px; }
+      .range-slider.round .range-slider-handle:hover {
+        background: #007ba4; }
+  .range-slider.disabled, .range-slider[disabled] {
+    background: #FAFAFA;
+    cursor: false;
+    opacity: 0.7; }
+    .range-slider.disabled .range-slider-handle, .range-slider[disabled] .range-slider-handle {
+      background: #008CBA;
+      cursor: default;
+      opacity: 0.7; }
+      .range-slider.disabled .range-slider-handle:hover, .range-slider[disabled] .range-slider-handle:hover {
+        background: #007ba4; }
+
+.range-slider-active-segment {
+  background: #e5e5e5;
+  border-bottom-left-radius: inherit;
+  border-top-left-radius: inherit;
+  display: inline-block;
+  height: 0.875rem;
+  position: absolute; }
+
+.range-slider-handle {
+  border: 1px solid none;
+  cursor: pointer;
+  display: inline-block;
+  height: 1.375rem;
+  position: absolute;
+  top: -0.3125rem;
+  width: 2rem;
+  z-index: 1;
+  -ms-touch-action: manipulation;
+  touch-action: manipulation;
+  background: #008CBA; }
+  .range-slider-handle:hover {
+    background: #007ba4; }
+
+.reveal-modal-bg {
+  background: #000000;
+  background: rgba(0, 0, 0, 0.45);
+  bottom: 0;
+  display: none;
+  left: 0;
+  position: fixed;
+  right: 0;
+  top: 0;
+  z-index: 1004;
+  left: 0; }
+
+.reveal-modal {
+  border-radius: 3px;
+  display: none;
+  position: absolute;
+  top: 0;
+  visibility: hidden;
+  width: 100%;
+  z-index: 1005;
+  left: 0;
+  background-color: #FFFFFF;
+  padding: 1.875rem;
+  border: solid 1px #666666;
+  box-shadow: 0 0 10px rgba(0, 0, 0, 0.4); }
+  @media only screen and (max-width: 40em) {
+    .reveal-modal {
+      min-height: 100vh; } }
+  .reveal-modal .column, .reveal-modal .columns {
+    min-width: 0; }
+  .reveal-modal > :first-child {
+    margin-top: 0; }
+  .reveal-modal > :last-child {
+    margin-bottom: 0; }
+  @media only screen and (min-width:40.063em) {
+    .reveal-modal {
+      left: 0;
+      margin: 0 auto;
+      max-width: 62.5rem;
+      right: 0;
+      width: 80%; } }
+  @media only screen and (min-width:40.063em) {
+    .reveal-modal {
+      top: 6.25rem; } }
+  .reveal-modal.radius {
+    box-shadow: none;
+    border-radius: 3px; }
+  .reveal-modal.round {
+    box-shadow: none;
+    border-radius: 1000px; }
+  .reveal-modal.collapse {
+    padding: 0;
+    box-shadow: none; }
+  @media only screen and (min-width:40.063em) {
+    .reveal-modal.tiny {
+      left: 0;
+      margin: 0 auto;
+      max-width: 62.5rem;
+      right: 0;
+      width: 30%; } }
+  @media only screen and (min-width:40.063em) {
+    .reveal-modal.small {
+      left: 0;
+      margin: 0 auto;
+      max-width: 62.5rem;
+      right: 0;
+      width: 40%; } }
+  @media only screen and (min-width:40.063em) {
+    .reveal-modal.medium {
+      left: 0;
+      margin: 0 auto;
+      max-width: 62.5rem;
+      right: 0;
+      width: 60%; } }
+  @media only screen and (min-width:40.063em) {
+    .reveal-modal.large {
+      left: 0;
+      margin: 0 auto;
+      max-width: 62.5rem;
+      right: 0;
+      width: 70%; } }
+  @media only screen and (min-width:40.063em) {
+    .reveal-modal.xlarge {
+      left: 0;
+      margin: 0 auto;
+      max-width: 62.5rem;
+      right: 0;
+      width: 95%; } }
+  .reveal-modal.full {
+    height: 100vh;
+    height: 100%;
+    left: 0;
+    margin-left: 0 !important;
+    max-width: none !important;
+    min-height: 100vh;
+    top: 0; }
+    @media only screen and (min-width:40.063em) {
+      .reveal-modal.full {
+        left: 0;
+        margin: 0 auto;
+        max-width: 62.5rem;
+        right: 0;
+        width: 100%; } }
+  .reveal-modal.toback {
+    z-index: 1003; }
+  .reveal-modal .close-reveal-modal {
+    color: #AAAAAA;
+    cursor: pointer;
+    font-size: 2.5rem;
+    font-weight: bold;
+    line-height: 1;
+    position: absolute;
+    top: 0.625rem;
+    right: 1.375rem; }
+
+.side-nav {
+  display: block;
+  font-family: "Open Sans", sans-serif;
+  list-style-position: outside;
+  list-style-type: none;
+  margin: 0;
+  padding: 0.875rem 0; }
+  .side-nav li {
+    font-size: 0.875rem;
+    font-weight: normal;
+    margin: 0 0 0.4375rem 0; }
+    .side-nav li a:not(.button) {
+      color: #008CBA;
+      display: block;
+      margin: 0;
+      padding: 0.4375rem 0.875rem; }
+      .side-nav li a:not(.button):hover, .side-nav li a:not(.button):focus {
+        background: rgba(0, 0, 0, 0.025);
+        color: #1cc7ff; }
+      .side-nav li a:not(.button):active {
+        color: #1cc7ff; }
+    .side-nav li.active > a:first-child:not(.button) {
+      color: #1cc7ff;
+      font-family: "Open Sans", sans-serif;
+      font-weight: normal; }
+    .side-nav li.divider {
+      border-top: 1px solid;
+      height: 0;
+      list-style: none;
+      padding: 0;
+      border-top-color: #e6e6e6; }
+    .side-nav li.heading {
+      color: #008CBA;
+      font-size: 0.875rem;
+      font-weight: bold;
+      text-transform: uppercase; }
+
+.split.button {
+  position: relative;
+  padding-right: 5.0625rem; }
+  .split.button span {
+    display: block;
+    height: 100%;
+    position: absolute;
+    right: 0;
+    top: 0;
+    border-left: solid 1px; }
+    .split.button span:after {
+      position: absolute;
+      content: "";
+      width: 0;
+      height: 0;
+      display: block;
+      border-style: inset;
+      top: 50%;
+      left: 50%; }
+    .split.button span:active {
+      background-color: rgba(0, 0, 0, 0.1); }
+  .split.button span {
+    border-left-color: rgba(255, 255, 255, 0.5); }
+  .split.button span {
+    width: 3.09375rem; }
+    .split.button span:after {
+      border-top-style: solid;
+      border-width: 0.375rem;
+      margin-left: -0.375rem;
+      top: 48%; }
+  .split.button span:after {
+    border-color: #FFFFFF transparent transparent transparent; }
+  .split.button.secondary span {
+    border-left-color: rgba(255, 255, 255, 0.5); }
+  .split.button.secondary span:after {
+    border-color: #FFFFFF transparent transparent transparent; }
+  .split.button.alert span {
+    border-left-color: rgba(255, 255, 255, 0.5); }
+  .split.button.success span {
+    border-left-color: rgba(255, 255, 255, 0.5); }
+  .split.button.tiny {
+    padding-right: 3.75rem; }
+    .split.button.tiny span {
+      width: 2.25rem; }
+      .split.button.tiny span:after {
+        border-top-style: solid;
+        border-width: 0.375rem;
+        margin-left: -0.375rem;
+        top: 48%; }
+  .split.button.small {
+    padding-right: 4.375rem; }
+    .split.button.small span {
+      width: 2.625rem; }
+      .split.button.small span:after {
+        border-top-style: solid;
+        border-width: 0.4375rem;
+        margin-left: -0.375rem;
+        top: 48%; }
+  .split.button.large {
+    padding-right: 5.5rem; }
+    .split.button.large span {
+      width: 3.4375rem; }
+      .split.button.large span:after {
+        border-top-style: solid;
+        border-width: 0.3125rem;
+        margin-left: -0.375rem;
+        top: 48%; }
+  .split.button.expand {
+    padding-left: 2rem; }
+  .split.button.secondary span:after {
+    border-color: #333333 transparent transparent transparent; }
+  .split.button.radius span {
+    -webkit-border-bottom-right-radius: 3px;
+    -webkit-border-top-right-radius: 3px;
+    border-bottom-right-radius: 3px;
+    border-top-right-radius: 3px; }
+  .split.button.round span {
+    -webkit-border-bottom-right-radius: 1000px;
+    -webkit-border-top-right-radius: 1000px;
+    border-bottom-right-radius: 1000px;
+    border-top-right-radius: 1000px; }
+  .split.button.no-pip span:before {
+    border-style: none; }
+  .split.button.no-pip span:after {
+    border-style: none; }
+  .split.button.no-pip span > i {
+    display: block;
+    left: 50%;
+    margin-left: -0.28889em;
+    margin-top: -0.48889em;
+    position: absolute;
+    top: 50%; }
+
+.sub-nav {
+  display: block;
+  margin: -0.25rem 0 1.125rem;
+  overflow: hidden;
+  padding-top: 0.25rem;
+  width: auto; }
+  .sub-nav dt {
+    text-transform: uppercase; }
+  .sub-nav dt, .sub-nav dd, .sub-nav li {
+    color: #999999;
+    float: left;
+    font-family: "Open Sans", sans-serif;
+    font-size: 0.875rem;
+    font-weight: normal;
+    margin-left: 1rem;
+    margin-bottom: 0; }
+    .sub-nav dt a, .sub-nav dd a, .sub-nav li a {
+      color: #999999;
+      padding: 0.1875rem 1rem;
+      text-decoration: none; }
+      .sub-nav dt a:hover, .sub-nav dd a:hover, .sub-nav li a:hover {
+        color: #737373; }
+    .sub-nav dt.active a, .sub-nav dd.active a, .sub-nav li.active a {
+      border-radius: 3px;
+      background: #008CBA;
+      color: #FFFFFF;
+      cursor: default;
+      font-weight: normal;
+      padding: 0.1875rem 1rem; }
+      .sub-nav dt.active a:hover, .sub-nav dd.active a:hover, .sub-nav li.active a:hover {
+        background: #0078a0; }
+
+.switch {
+  border: none;
+  margin-bottom: 1.5rem;
+  outline: 0;
+  padding: 0;
+  position: relative;
+  -webkit-user-select: none;
+  -moz-user-select: none;
+  -ms-user-select: none;
+  user-select: none; }
+  .switch label {
+    background: #DDDDDD;
+    color: transparent;
+    cursor: pointer;
+    display: block;
+    margin-bottom: 1rem;
+    position: relative;
+    text-indent: 100%;
+    width: 4rem;
+    height: 2rem;
+    transition: left 0.15s ease-out; }
+  .switch input {
+    left: 10px;
+    opacity: 0;
+    padding: 0;
+    position: absolute;
+    top: 9px; }
+    .switch input + label {
+      margin-left: 0;
+      margin-right: 0; }
+  .switch label:after {
+    background: #FFFFFF;
+    content: "";
+    display: block;
+    height: 1.5rem;
+    left: .25rem;
+    position: absolute;
+    top: .25rem;
+    width: 1.5rem;
+    -webkit-transition: left 0.15s ease-out;
+    -moz-transition: left 0.15s ease-out;
+    -o-transition: translate3d(0, 0, 0);
+    transition: left 0.15s ease-out;
+    -webkit-transform: translate3d(0, 0, 0);
+    -moz-transform: translate3d(0, 0, 0);
+    -ms-transform: translate3d(0, 0, 0);
+    -o-transform: translate3d(0, 0, 0);
+    transform: translate3d(0, 0, 0); }
+  .switch input:checked + label {
+    background: #008CBA; }
+  .switch input:checked + label:after {
+    left: 2.25rem; }
+  .switch label {
+    height: 2rem;
+    width: 4rem; }
+  .switch label:after {
+    height: 1.5rem;
+    width: 1.5rem; }
+  .switch input:checked + label:after {
+    left: 2.25rem; }
+  .switch label {
+    color: transparent;
+    background: #DDDDDD; }
+  .switch label:after {
+    background: #FFFFFF; }
+  .switch input:checked + label {
+    background: #008CBA; }
+  .switch.large label {
+    height: 2.5rem;
+    width: 5rem; }
+  .switch.large label:after {
+    height: 2rem;
+    width: 2rem; }
+  .switch.large input:checked + label:after {
+    left: 2.75rem; }
+  .switch.small label {
+    height: 1.75rem;
+    width: 3.5rem; }
+  .switch.small label:after {
+    height: 1.25rem;
+    width: 1.25rem; }
+  .switch.small input:checked + label:after {
+    left: 2rem; }
+  .switch.tiny label {
+    height: 1.5rem;
+    width: 3rem; }
+  .switch.tiny label:after {
+    height: 1rem;
+    width: 1rem; }
+  .switch.tiny input:checked + label:after {
+    left: 1.75rem; }
+  .switch.radius label {
+    border-radius: 4px; }
+  .switch.radius label:after {
+    border-radius: 3px; }
+  .switch.round {
+    border-radius: 1000px; }
+    .switch.round label {
+      border-radius: 2rem; }
+    .switch.round label:after {
+      border-radius: 2rem; }
+
+table {
+  background: #FFFFFF;
+  border: solid 1px #DDDDDD;
+  margin-bottom: 1.25rem;
+  table-layout: auto; }
+  table caption {
+    background: transparent;
+    color: #222222;
+    font-size: 1rem;
+    font-weight: bold; }
+  table thead {
+    background: #F5F5F5; }
+    table thead tr th, table thead tr td {
+      color: #222222;
+      font-size: 0.875rem;
+      font-weight: bold;
+      padding: 0.5rem 0.625rem 0.625rem; }
+  table tfoot {
+    background: #F5F5F5; }
+    table tfoot tr th, table tfoot tr td {
+      color: #222222;
+      font-size: 0.875rem;
+      font-weight: bold;
+      padding: 0.5rem 0.625rem 0.625rem; }
+  table tr th, table tr td {
+    color: #222222;
+    font-size: 0.875rem;
+    padding: 0.5625rem 0.625rem;
+    text-align: left; }
+  table tr.even, table tr.alt, table tr:nth-of-type(even) {
+    background: #F9F9F9; }
+  table thead tr th, table tfoot tr th, table tfoot tr td, table tbody tr th, table tbody tr td, table tr td {
+    display: table-cell;
+    line-height: 1.125rem; }
+
+.tabs {
+  margin-bottom: 0 !important;
+  margin-left: 0; }
+  .tabs:before, .tabs:after {
+    content: " ";
+    display: table; }
+  .tabs:after {
+    clear: both; }
+  .tabs dd, .tabs .tab-title {
+    float: left;
+    list-style: none;
+    margin-bottom: 0 !important;
+    position: relative; }
+    .tabs dd > a, .tabs .tab-title > a {
+      display: block;
+      background-color: #EFEFEF;
+      color: #222222;
+      font-family: "Open Sans", sans-serif;
+      font-size: 1rem;
+      padding: 1rem 2rem; }
+      .tabs dd > a:hover, .tabs .tab-title > a:hover {
+        background-color: #e1e1e1; }
+    .tabs dd.active > a, .tabs .tab-title.active > a {
+      background-color: #FFFFFF;
+      color: #222222; }
+  .tabs.radius dd:first-child a, .tabs.radius .tab:first-child a {
+    -webkit-border-bottom-left-radius: 3px;
+    -webkit-border-top-left-radius: 3px;
+    border-bottom-left-radius: 3px;
+    border-top-left-radius: 3px; }
+  .tabs.radius dd:last-child a, .tabs.radius .tab:last-child a {
+    -webkit-border-bottom-right-radius: 3px;
+    -webkit-border-top-right-radius: 3px;
+    border-bottom-right-radius: 3px;
+    border-top-right-radius: 3px; }
+  .tabs.vertical dd, .tabs.vertical .tab-title {
+    position: inherit;
+    float: none;
+    display: block;
+    top: auto; }
+
+.tabs-content {
+  margin-bottom: 1.5rem;
+  width: 100%; }
+  .tabs-content:before, .tabs-content:after {
+    content: " ";
+    display: table; }
+  .tabs-content:after {
+    clear: both; }
+  .tabs-content > .content {
+    display: none;
+    float: left;
+    padding: 0.9375rem 0;
+    width: 100%; }
+    .tabs-content > .content.active {
+      display: block;
+      float: none; }
+    .tabs-content > .content.contained {
+      padding: 0.9375rem; }
+  .tabs-content.vertical {
+    display: block; }
+    .tabs-content.vertical > .content {
+      padding: 0 0.9375rem; }
+
+@media only screen and (min-width:40.063em) {
+  .tabs.vertical {
+    float: left;
+    margin: 0;
+    margin-bottom: 1.25rem !important;
+    max-width: 20%;
+    width: 20%; }
+  .tabs-content.vertical {
+    float: left;
+    margin-left: -1px;
+    max-width: 80%;
+    padding-left: 1rem;
+    width: 80%; } }
+
+.no-js .tabs-content > .content {
+  display: block;
+  float: none; }
+
+/* Image Thumbnails */
+.th {
+  border: solid 4px #FFFFFF;
+  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.2);
+  display: inline-block;
+  line-height: 0;
+  max-width: 100%;
+  transition: all 200ms ease-out; }
+  .th:hover, .th:focus {
+    box-shadow: 0 0 6px 1px rgba(0, 140, 186, 0.5); }
+  .th.radius {
+    border-radius: 3px; }
+
+/* Tooltips */
+.has-tip {
+  border-bottom: dotted 1px #CCCCCC;
+  color: #333333;
+  cursor: help;
+  font-weight: bold; }
+  .has-tip:hover, .has-tip:focus {
+    border-bottom: dotted 1px #003f54;
+    color: #008CBA; }
+  .has-tip.tip-left, .has-tip.tip-right {
+    float: none !important; }
+
+.tooltip {
+  background: #333333;
+  color: #FFFFFF;
+  display: none;
+  font-size: 0.875rem;
+  font-weight: normal;
+  line-height: 1.3;
+  max-width: 300px;
+  padding: 0.75rem;
+  position: absolute;
+  width: 100%;
+  z-index: 1006;
+  left: 50%; }
+  .tooltip > .nub {
+    border: solid 5px;
+    border-color: transparent transparent #333333 transparent;
+    display: block;
+    height: 0;
+    pointer-events: none;
+    position: absolute;
+    top: -10px;
+    width: 0;
+    left: 5px; }
+    .tooltip > .nub.rtl {
+      left: auto;
+      right: 5px; }
+  .tooltip.radius {
+    border-radius: 3px; }
+  .tooltip.round {
+    border-radius: 1000px; }
+    .tooltip.round > .nub {
+      left: 2rem; }
+  .tooltip.opened {
+    border-bottom: dotted 1px #003f54 !important;
+    color: #008CBA !important; }
+
+.tap-to-close {
+  color: #777777;
+  display: block;
+  font-size: 0.625rem;
+  font-weight: normal; }
+
+@media only screen {
+  .tooltip > .nub {
+    border-color: transparent transparent #333333 transparent;
+    top: -10px; }
+  .tooltip.tip-top > .nub {
+    border-color: #333333 transparent transparent transparent;
+    bottom: -10px;
+    top: auto; }
+  .tooltip.tip-left, .tooltip.tip-right {
+    float: none !important; }
+  .tooltip.tip-left > .nub {
+    border-color: transparent transparent transparent #333333;
+    left: auto;
+    margin-top: -5px;
+    right: -10px;
+    top: 50%; }
+  .tooltip.tip-right > .nub {
+    border-color: transparent #333333 transparent transparent;
+    left: -10px;
+    margin-top: -5px;
+    right: auto;
+    top: 50%; } }
+
+meta.foundation-mq-topbar {
+  font-family: "/only screen and (min-width:40.063em)/";
+  width: 40.063em; }
+
+/* Wrapped around .top-bar to contain to grid width */
+.contain-to-grid {
+  width: 100%;
+  background: #333333; }
+  .contain-to-grid .top-bar {
+    margin-bottom: 0; }
+
+.fixed {
+  position: fixed;
+  top: 0;
+  width: 100%;
+  z-index: 99;
+  left: 0; }
+  .fixed.expanded:not(.top-bar) {
+    height: auto;
+    max-height: 100%;
+    overflow-y: auto;
+    width: 100%; }
+    .fixed.expanded:not(.top-bar) .title-area {
+      position: fixed;
+      width: 100%;
+      z-index: 99; }
+    .fixed.expanded:not(.top-bar) .top-bar-section {
+      margin-top: 2.8125rem;
+      z-index: 98; }
+
+.top-bar {
+  background: #333333;
+  height: 2.8125rem;
+  line-height: 2.8125rem;
+  margin-bottom: 0;
+  overflow: hidden;
+  position: relative; }
+  .top-bar ul {
+    list-style: none;
+    margin-bottom: 0; }
+  .top-bar .row {
+    max-width: none; }
+  .top-bar form, .top-bar input, .top-bar select {
+    margin-bottom: 0; }
+  .top-bar input, .top-bar select {
+    font-size: 0.75rem;
+    height: 1.75rem;
+    padding-bottom: .35rem;
+    padding-top: .35rem; }
+  .top-bar .button, .top-bar button {
+    font-size: 0.75rem;
+    margin-bottom: 0;
+    padding-bottom: .4125rem;
+    padding-top: .4125rem; }
+    @media only screen and (max-width: 40em) {
+      .top-bar .button, .top-bar button {
+        position: relative;
+        top: -1px; } }
+  .top-bar .title-area {
+    margin: 0;
+    position: relative; }
+  .top-bar .name {
+    font-size: 16px;
+    height: 2.8125rem;
+    margin: 0; }
+    .top-bar .name h1, .top-bar .name h2, .top-bar .name h3, .top-bar .name h4, .top-bar .name p, .top-bar .name span {
+      font-size: 1.0625rem;
+      line-height: 2.8125rem;
+      margin: 0; }
+      .top-bar .name h1 a, .top-bar .name h2 a, .top-bar .name h3 a, .top-bar .name h4 a, .top-bar .name p a, .top-bar .name span a {
+        color: #FFFFFF;
+        display: block;
+        font-weight: normal;
+        padding: 0 0.9375rem;
+        width: 75%; }
+  .top-bar .toggle-topbar {
+    position: absolute;
+    right: 0;
+    top: 0; }
+    .top-bar .toggle-topbar a {
+      color: #FFFFFF;
+      display: block;
+      font-size: 0.8125rem;
+      font-weight: bold;
+      height: 2.8125rem;
+      line-height: 2.8125rem;
+      padding: 0 0.9375rem;
+      position: relative;
+      text-transform: uppercase; }
+    .top-bar .toggle-topbar.menu-icon {
+      margin-top: -16px;
+      top: 50%; }
+      .top-bar .toggle-topbar.menu-icon a {
+        color: #FFFFFF;
+        height: 34px;
+        line-height: 33px;
+        padding: 0 2.5rem 0 0.9375rem;
+        position: relative; }
+        .top-bar .toggle-topbar.menu-icon a span::after {
+          content: "";
+          display: block;
+          height: 0;
+          position: absolute;
+          margin-top: -8px;
+          top: 50%;
+          right: 0.9375rem;
+          box-shadow: 0 0 0 1px #FFFFFF, 0 7px 0 1px #FFFFFF, 0 14px 0 1px #FFFFFF;
+          width: 16px; }
+        .top-bar .toggle-topbar.menu-icon a span:hover:after {
+          box-shadow: 0 0 0 1px "", 0 7px 0 1px "", 0 14px 0 1px ""; }
+  .top-bar.expanded {
+    background: transparent;
+    height: auto; }
+    .top-bar.expanded .title-area {
+      background: #333333; }
+    .top-bar.expanded .toggle-topbar a {
+      color: #888888; }
+      .top-bar.expanded .toggle-topbar a span::after {
+        box-shadow: 0 0 0 1px #888888, 0 7px 0 1px #888888, 0 14px 0 1px #888888; }
+    @media screen and (-webkit-min-device-pixel-ratio: 0) {
+      .top-bar.expanded .top-bar-section .has-dropdown.moved > .dropdown, .top-bar.expanded .top-bar-section .dropdown {
+        clip: initial; }
+      .top-bar.expanded .top-bar-section .has-dropdown:not(.moved) > ul {
+        padding: 0; } }
+
+.top-bar-section {
+  left: 0;
+  position: relative;
+  width: auto;
+  transition: left 300ms ease-out; }
+  .top-bar-section ul {
+    display: block;
+    font-size: 16px;
+    height: auto;
+    margin: 0;
+    padding: 0;
+    width: 100%; }
+  .top-bar-section .divider, .top-bar-section [role="separator"] {
+    border-top: solid 1px #1a1a1a;
+    clear: both;
+    height: 1px;
+    width: 100%; }
+  .top-bar-section ul li {
+    background: #333333; }
+    .top-bar-section ul li > a {
+      color: #FFFFFF;
+      display: block;
+      font-family: "Open Sans", sans-serif;
+      font-size: 0.8125rem;
+      font-weight: normal;
+      padding-left: 0.9375rem;
+      padding: 12px 0 12px 0.9375rem;
+      text-transform: none;
+      width: 100%; }
+      .top-bar-section ul li > a.button {
+        font-size: 0.8125rem;
+        padding-left: 0.9375rem;
+        padding-right: 0.9375rem;
+        background-color: #008CBA;
+        border-color: #007095;
+        color: #FFFFFF; }
+        .top-bar-section ul li > a.button:hover, .top-bar-section ul li > a.button:focus {
+          background-color: #007095; }
+        .top-bar-section ul li > a.button:hover, .top-bar-section ul li > a.button:focus {
+          color: #FFFFFF; }
+      .top-bar-section ul li > a.button.secondary {
+        background-color: #e7e7e7;
+        border-color: #b9b9b9;
+        color: #333333; }
+        .top-bar-section ul li > a.button.secondary:hover, .top-bar-section ul li > a.button.secondary:focus {
+          background-color: #b9b9b9; }
+        .top-bar-section ul li > a.button.secondary:hover, .top-bar-section ul li > a.button.secondary:focus {
+          color: #333333; }
+      .top-bar-section ul li > a.button.success {
+        background-color: #43AC6A;
+        border-color: #368a55;
+        color: #FFFFFF; }
+        .top-bar-section ul li > a.button.success:hover, .top-bar-section ul li > a.button.success:focus {
+          background-color: #368a55; }
+        .top-bar-section ul li > a.button.success:hover, .top-bar-section ul li > a.button.success:focus {
+          color: #FFFFFF; }
+      .top-bar-section ul li > a.button.alert {
+        background-color: #f04124;
+        border-color: #cf2a0e;
+        color: #FFFFFF; }
+        .top-bar-section ul li > a.button.alert:hover, .top-bar-section ul li > a.button.alert:focus {
+          background-color: #cf2a0e; }
+        .top-bar-section ul li > a.button.alert:hover, .top-bar-section ul li > a.button.alert:focus {
+          color: #FFFFFF; }
+      .top-bar-section ul li > a.button.warning {
+        background-color: #f08a24;
+        border-color: #cf6e0e;
+        color: #FFFFFF; }
+        .top-bar-section ul li > a.button.warning:hover, .top-bar-section ul li > a.button.warning:focus {
+          background-color: #cf6e0e; }
+        .top-bar-section ul li > a.button.warning:hover, .top-bar-section ul li > a.button.warning:focus {
+          color: #FFFFFF; }
+      .top-bar-section ul li > a.button.info {
+        background-color: #a0d3e8;
+        border-color: #61b6d9;
+        color: #333333; }
+        .top-bar-section ul li > a.button.info:hover, .top-bar-section ul li > a.button.info:focus {
+          background-color: #61b6d9; }
+        .top-bar-section ul li > a.button.info:hover, .top-bar-section ul li > a.button.info:focus {
+          color: #FFFFFF; }
+    .top-bar-section ul li > button {
+      font-size: 0.8125rem;
+      padding-left: 0.9375rem;
+      padding-right: 0.9375rem;
+      background-color: #008CBA;
+      border-color: #007095;
+      color: #FFFFFF; }
+      .top-bar-section ul li > button:hover, .top-bar-section ul li > button:focus {
+        background-color: #007095; }
+      .top-bar-section ul li > button:hover, .top-bar-section ul li > button:focus {
+        color: #FFFFFF; }
+      .top-bar-section ul li > button.secondary {
+        background-color: #e7e7e7;
+        border-color: #b9b9b9;
+        color: #333333; }
+        .top-bar-section ul li > button.secondary:hover, .top-bar-section ul li > button.secondary:focus {
+          background-color: #b9b9b9; }
+        .top-bar-section ul li > button.secondary:hover, .top-bar-section ul li > button.secondary:focus {
+          color: #333333; }
+      .top-bar-section ul li > button.success {
+        background-color: #43AC6A;
+        border-color: #368a55;
+        color: #FFFFFF; }
+        .top-bar-section ul li > button.success:hover, .top-bar-section ul li > button.success:focus {
+          background-color: #368a55; }
+        .top-bar-section ul li > button.success:hover, .top-bar-section ul li > button.success:focus {
+          color: #FFFFFF; }
+      .top-bar-section ul li > button.alert {
+        background-color: #f04124;
+        border-color: #cf2a0e;
+        color: #FFFFFF; }
+        .top-bar-section ul li > button.alert:hover, .top-bar-section ul li > button.alert:focus {
+          background-color: #cf2a0e; }
+        .top-bar-section ul li > button.alert:hover, .top-bar-section ul li > button.alert:focus {
+          color: #FFFFFF; }
+      .top-bar-section ul li > button.warning {
+        background-color: #f08a24;
+        border-color: #cf6e0e;
+        color: #FFFFFF; }
+        .top-bar-section ul li > button.warning:hover, .top-bar-section ul li > button.warning:focus {
+          background-color: #cf6e0e; }
+        .top-bar-section ul li > button.warning:hover, .top-bar-section ul li > button.warning:focus {
+          color: #FFFFFF; }
+      .top-bar-section ul li > button.info {
+        background-color: #a0d3e8;
+        border-color: #61b6d9;
+        color: #333333; }
+        .top-bar-section ul li > button.info:hover, .top-bar-section ul li > button.info:focus {
+          background-color: #61b6d9; }
+        .top-bar-section ul li > button.info:hover, .top-bar-section ul li > button.info:focus {
+          color: #FFFFFF; }
+    .top-bar-section ul li:hover:not(.has-form) > a {
+      background-color: #555555;
+      color: #FFFFFF;
+      background: #222222; }
+    .top-bar-section ul li.active > a {
+      background: #008CBA;
+      color: #FFFFFF; }
+      .top-bar-section ul li.active > a:hover {
+        background: #0078a0;
+        color: #FFFFFF; }
+  .top-bar-section .has-form {
+    padding: 0.9375rem; }
+  .top-bar-section .has-dropdown {
+    position: relative; }
+    .top-bar-section .has-dropdown > a:after {
+      margin-right: 0.9375rem;
+      margin-top: -4.5px;
+      position: absolute;
+      top: 50%;
+      right: 0; }
+    .top-bar-section .has-dropdown.moved {
+      position: static; }
+      .top-bar-section .has-dropdown.moved > .dropdown {
+        position: static !important;
+        height: auto;
+        width: auto;
+        overflow: visible;
+        clip: auto;
+        display: block;
+        position: absolute !important;
+        width: 100%; }
+      .top-bar-section .has-dropdown.moved > a:after {
+        display: none; }
+  .top-bar-section .dropdown {
+    clip: rect(1px, 1px, 1px, 1px);
+    height: 1px;
+    overflow: hidden;
+    position: absolute !important;
+    width: 1px;
+    display: block;
+    padding: 0;
+    position: absolute;
+    top: 0;
+    z-index: 99;
+    left: 100%; }
+    .top-bar-section .dropdown li {
+      height: auto;
+      width: 100%; }
+      .top-bar-section .dropdown li a {
+        font-weight: normal;
+        padding: 8px 0.9375rem; }
+        .top-bar-section .dropdown li a.parent-link {
+          font-weight: normal; }
+      .top-bar-section .dropdown li.title h5, .top-bar-section .dropdown li.parent-link {
+        margin-bottom: 0;
+        margin-top: 0;
+        font-size: 1.125rem; }
+        .top-bar-section .dropdown li.title h5 a, .top-bar-section .dropdown li.parent-link a {
+          color: #FFFFFF;
+          display: block; }
+          .top-bar-section .dropdown li.title h5 a:hover, .top-bar-section .dropdown li.parent-link a:hover {
+            background: none; }
+      .top-bar-section .dropdown li.has-form {
+        padding: 8px 0.9375rem; }
+      .top-bar-section .dropdown li .button, .top-bar-section .dropdown li button {
+        top: auto; }
+    .top-bar-section .dropdown label {
+      color: #777777;
+      font-size: 0.625rem;
+      font-weight: bold;
+      margin-bottom: 0;
+      padding: 8px 0.9375rem 2px;
+      text-transform: uppercase; }
+
+.js-generated {
+  display: block; }
+
+@media only screen and (min-width:40.063em) {
+  .top-bar {
+    background: #333333;
+    overflow: visible; }
+    .top-bar:before, .top-bar:after {
+      content: " ";
+      display: table; }
+    .top-bar:after {
+      clear: both; }
+    .top-bar .toggle-topbar {
+      display: none; }
+    .top-bar .title-area {
+      float: left; }
+    .top-bar .name h1 a, .top-bar .name h2 a, .top-bar .name h3 a, .top-bar .name h4 a, .top-bar .name h5 a, .top-bar .name h6 a {
+      width: auto; }
+    .top-bar input, .top-bar select, .top-bar .button, .top-bar button {
+      font-size: 0.875rem;
+      height: 1.75rem;
+      position: relative;
+      top: 0.53125rem; }
+    .top-bar .has-form > .button, .top-bar .has-form > button {
+      font-size: 0.875rem;
+      height: 1.75rem;
+      position: relative;
+      top: 0.53125rem; }
+    .top-bar.expanded {
+      background: #333333; }
+  .contain-to-grid .top-bar {
+    margin: 0 auto;
+    margin-bottom: 0;
+    max-width: 62.5rem; }
+  .top-bar-section {
+    transition: none 0 0;
+    left: 0 !important; }
+    .top-bar-section ul {
+      display: inline;
+      height: auto !important;
+      width: auto; }
+      .top-bar-section ul li {
+        float: left; }
+        .top-bar-section ul li .js-generated {
+          display: none; }
+    .top-bar-section li.hover > a:not(.button) {
+      background-color: #555555;
+      background: #222222;
+      color: #FFFFFF; }
+    .top-bar-section li:not(.has-form) a:not(.button) {
+      background: #333333;
+      line-height: 2.8125rem;
+      padding: 0 0.9375rem; }
+      .top-bar-section li:not(.has-form) a:not(.button):hover {
+        background-color: #555555;
+        background: #222222; }
+    .top-bar-section li.active:not(.has-form) a:not(.button) {
+      background: #008CBA;
+      color: #FFFFFF;
+      line-height: 2.8125rem;
+      padding: 0 0.9375rem; }
+      .top-bar-section li.active:not(.has-form) a:not(.button):hover {
+        background: #0078a0;
+        color: #FFFFFF; }
+    .top-bar-section .has-dropdown.moved {
+      position: relative; }
+      .top-bar-section .has-dropdown.moved > .dropdown {
+        clip: rect(1px, 1px, 1px, 1px);
+        height: 1px;
+        overflow: hidden;
+        position: absolute !important;
+        width: 1px;
+        display: block; }
+    .top-bar-section .has-dropdown.hover > .dropdown, .top-bar-section .has-dropdown.not-click:hover > .dropdown {
+      position: static !important;
+      height: auto;
+      width: auto;
+      overflow: visible;
+      clip: auto;
+      display: block;
+      position: absolute !important; }
+    .top-bar-section .has-dropdown > a:focus + .dropdown {
+      position: static !important;
+      height: auto;
+      width: auto;
+      overflow: visible;
+      clip: auto;
+      display: block;
+      position: absolute !important; }
+    .top-bar-section .has-dropdown .dropdown li.has-dropdown > a:after {
+      border: none;
+      content: "\00bb";
+      top: 0.1875rem;
+      right: 5px; }
+    .top-bar-section .dropdown {
+      left: 0;
+      background: transparent;
+      min-width: 100%;
+      top: auto; }
+      .top-bar-section .dropdown li a {
+        background: #333333;
+        color: #FFFFFF;
+        line-height: 2.8125rem;
+        padding: 12px 0.9375rem;
+        white-space: nowrap; }
+      .top-bar-section .dropdown li:not(.has-form):not(.active) > a:not(.button) {
+        background: #333333;
+        color: #FFFFFF; }
+      .top-bar-section .dropdown li:not(.has-form):not(.active):hover > a:not(.button) {
+        background-color: #555555;
+        color: #FFFFFF;
+        background: #222222; }
+      .top-bar-section .dropdown li label {
+        background: #333333;
+        white-space: nowrap; }
+      .top-bar-section .dropdown li .dropdown {
+        left: 100%;
+        top: 0; }
+    .top-bar-section > ul > .divider, .top-bar-section > ul > [role="separator"] {
+      border-right: solid 1px #4e4e4e;
+      border-bottom: none;
+      border-top: none;
+      clear: none;
+      height: 2.8125rem;
+      width: 0; }
+    .top-bar-section .has-form {
+      background: #333333;
+      height: 2.8125rem;
+      padding: 0 0.9375rem; }
+    .top-bar-section .right li .dropdown {
+      left: auto;
+      right: 0; }
+      .top-bar-section .right li .dropdown li .dropdown {
+        right: 100%; }
+    .top-bar-section .left li .dropdown {
+      right: auto;
+      left: 0; }
+      .top-bar-section .left li .dropdown li .dropdown {
+        left: 100%; }
+  .no-js .top-bar-section ul li:hover > a {
+    background-color: #555555;
+    background: #222222;
+    color: #FFFFFF; }
+  .no-js .top-bar-section ul li:active > a {
+    background: #008CBA;
+    color: #FFFFFF; }
+  .no-js .top-bar-section .has-dropdown:hover > .dropdown {
+    position: static !important;
+    height: auto;
+    width: auto;
+    overflow: visible;
+    clip: auto;
+    display: block;
+    position: absolute !important; }
+  .no-js .top-bar-section .has-dropdown > a:focus + .dropdown {
+    position: static !important;
+    height: auto;
+    width: auto;
+    overflow: visible;
+    clip: auto;
+    display: block;
+    position: absolute !important; } }
+
+.text-left {
+  text-align: left !important; }
+
+.text-right {
+  text-align: right !important; }
+
+.text-center {
+  text-align: center !important; }
+
+.text-justify {
+  text-align: justify !important; }
+
+@media only screen and (max-width: 40em) {
+  .small-only-text-left {
+    text-align: left !important; }
+  .small-only-text-right {
+    text-align: right !important; }
+  .small-only-text-center {
+    text-align: center !important; }
+  .small-only-text-justify {
+    text-align: justify !important; } }
+
+@media only screen {
+  .small-text-left {
+    text-align: left !important; }
+  .small-text-right {
+    text-align: right !important; }
+  .small-text-center {
+    text-align: center !important; }
+  .small-text-justify {
+    text-align: justify !important; } }
+
+@media only screen and (min-width:40.063em) and (max-width:64em) {
+  .medium-only-text-left {
+    text-align: left !important; }
+  .medium-only-text-right {
+    text-align: right !important; }
+  .medium-only-text-center {
+    text-align: center !important; }
+  .medium-only-text-justify {
+    text-align: justify !important; } }
+
+@media only screen and (min-width:40.063em) {
+  .medium-text-left {
+    text-align: left !important; }
+  .medium-text-right {
+    text-align: right !important; }
+  .medium-text-center {
+    text-align: center !important; }
+  .medium-text-justify {
+    text-align: justify !important; } }
+
+@media only screen and (min-width:64.063em) and (max-width:90em) {
+  .large-only-text-left {
+    text-align: left !important; }
+  .large-only-text-right {
+    text-align: right !important; }
+  .large-only-text-center {
+    text-align: center !important; }
+  .large-only-text-justify {
+    text-align: justify !important; } }
+
+@media only screen and (min-width:64.063em) {
+  .large-text-left {
+    text-align: left !important; }
+  .large-text-right {
+    text-align: right !important; }
+  .large-text-center {
+    text-align: center !important; }
+  .large-text-justify {
+    text-align: justify !important; } }
+
+@media only screen and (min-width:90.063em) and (max-width:120em) {
+  .xlarge-only-text-left {
+    text-align: left !important; }
+  .xlarge-only-text-right {
+    text-align: right !important; }
+  .xlarge-only-text-center {
+    text-align: center !important; }
+  .xlarge-only-text-justify {
+    text-align: justify !important; } }
+
+@media only screen and (min-width:90.063em) {
+  .xlarge-text-left {
+    text-align: left !important; }
+  .xlarge-text-right {
+    text-align: right !important; }
+  .xlarge-text-center {
+    text-align: center !important; }
+  .xlarge-text-justify {
+    text-align: justify !important; } }
+
+@media only screen and (min-width:120.063em) and (max-width:99999999em) {
+  .xxlarge-only-text-left {
+    text-align: left !important; }
+  .xxlarge-only-text-right {
+    text-align: right !important; }
+  .xxlarge-only-text-center {
+    text-align: center !important; }
+  .xxlarge-only-text-justify {
+    text-align: justify !important; } }
+
+@media only screen and (min-width:120.063em) {
+  .xxlarge-text-left {
+    text-align: left !important; }
+  .xxlarge-text-right {
+    text-align: right !important; }
+  .xxlarge-text-center {
+    text-align: center !important; }
+  .xxlarge-text-justify {
+    text-align: justify !important; } }
+
+/* Typography resets */
+div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, form, p, blockquote, th, td {
+  margin: 0;
+  padding: 0; }
+
+/* Default Link Styles */
+a {
+  color: #008CBA;
+  line-height: inherit;
+  text-decoration: none; }
+  a:hover, a:focus {
+    color: #0078a0; }
+  a img {
+    border: none; }
+
+/* Default paragraph styles */
+p {
+  font-family: inherit;
+  font-size: 0.875rem;
+  font-weight: normal;
+  line-height: 1.6;
+  margin-bottom: 1.25rem;
+  text-rendering: optimizeLegibility; }
+  p.lead {
+    font-size: 1.09375rem;
+    line-height: 1.6; }
+  p aside {
+    font-size: 0.875rem;
+    font-style: italic;
+    line-height: 1.35; }
+
+/* Default header styles */
+h1, h2, h3, h4, h5, h6 {
+  color: #222222;
+  font-family: "Open Sans", sans-serif;
+  font-style: normal;
+  font-weight: normal;
+  line-height: 1.4;
+  margin-bottom: 0.5rem;
+  margin-top: 0.2rem;
+  text-rendering: optimizeLegibility; }
+  h1 small, h2 small, h3 small, h4 small, h5 small, h6 small {
+    color: #6f6f6f;
+    font-size: 60%;
+    line-height: 0; }
+
+h1 {
+  font-size: 1.9375rem; }
+
+h2 {
+  font-size: 2.25rem; }
+
+h3 {
+  font-size: 1.875rem; }
+
+h4 {
+  font-size: 1.5rem; }
+
+h5 {
+  font-size: 1.125rem; }
+
+h6 {
+  font-size: 1rem; }
+
+.subheader {
+  line-height: 1.4;
+  color: #6f6f6f;
+  font-weight: normal;
+  margin-top: 0.2rem;
+  margin-bottom: 0.5rem; }
+
+hr {
+  border: solid #DDDDDD;
+  border-width: 1px 0 0;
+  clear: both;
+  height: 0;
+  margin: 1.25rem 0 1.1875rem; }
+
+/* Helpful Typography Defaults */
+em, i {
+  font-style: italic;
+  line-height: inherit; }
+
+strong, b {
+  font-weight: bold;
+  line-height: inherit; }
+
+small {
+  font-size: 60%;
+  line-height: inherit; }
+
+code {
+  background-color: #f8f8f8;
+  border-color: #dfdfdf;
+  border-style: solid;
+  border-width: 1px;
+  color: #333333;
+  font-family: Consolas, "Liberation Mono", Courier, monospace;
+  font-weight: normal;
+  padding: 0.125rem 0.3125rem 0.0625rem; }
+
+/* Lists */
+ul, ol, dl {
+  font-family: inherit;
+  font-size: 0.875rem;
+  line-height: 1.6;
+  list-style-position: outside;
+  margin-bottom: 1.25rem; }
+
+ul {
+  margin-left: 1.1rem; }
+
+/* Unordered Lists */
+ul li ul, ul li ol {
+  margin-left: 1.25rem;
+  margin-bottom: 0; }
+ul.square li ul, ul.circle li ul, ul.disc li ul {
+  list-style: inherit; }
+ul.square {
+  list-style-type: square;
+  margin-left: 1.1rem; }
+ul.circle {
+  list-style-type: circle;
+  margin-left: 1.1rem; }
+ul.disc {
+  list-style-type: disc;
+  margin-left: 1.1rem; }
+
+/* Ordered Lists */
+ol {
+  margin-left: 1.4rem; }
+  ol li ul, ol li ol {
+    margin-left: 1.25rem;
+    margin-bottom: 0; }
+
+.no-bullet {
+  list-style-type: none;
+  margin-left: 0; }
+  .no-bullet li ul, .no-bullet li ol {
+    margin-left: 1.25rem;
+    margin-bottom: 0;
+    list-style: none; }
+
+/* Definition Lists */
+dl dt {
+  margin-bottom: 0.3rem;
+  font-weight: bold; }
+dl dd {
+  margin-bottom: 0.75rem; }
+
+/* Abbreviations */
+abbr, acronym {
+  text-transform: uppercase;
+  font-size: 90%;
+  color: #000000;
+  cursor: help; }
+
+abbr {
+  text-transform: none; }
+  abbr[title] {
+    border-bottom: 1px dotted #DDDDDD; }
+
+/* Blockquotes */
+blockquote {
+  margin: 0 0 1.25rem;
+  padding: 0.5625rem 1.25rem 0 1.1875rem;
+  border-left: 1px solid #DDDDDD; }
+  blockquote cite {
+    display: block;
+    font-size: 0.8125rem;
+    color: #555555; }
+    blockquote cite:before {
+      content: "\2014 \0020"; }
+    blockquote cite a, blockquote cite a:visited {
+      color: #555555; }
+
+blockquote, blockquote p {
+  line-height: 1.6;
+  color: #6f6f6f; }
+
+/* Microformats */
+.vcard {
+  display: inline-block;
+  margin: 0 0 1.25rem 0;
+  border: 1px solid #DDDDDD;
+  padding: 0.625rem 0.75rem; }
+  .vcard li {
+    margin: 0;
+    display: block; }
+  .vcard .fn {
+    font-weight: bold;
+    font-size: 0.9375rem; }
+
+.vevent .summary {
+  font-weight: bold; }
+.vevent abbr {
+  cursor: default;
+  text-decoration: none;
+  font-weight: bold;
+  border: none;
+  padding: 0 0.0625rem; }
+
+@media only screen and (min-width:40.063em) {
+  h1, h2, h3, h4, h5, h6 {
+    line-height: 1.4; }
+  h1 {
+    font-size: 2.25rem; }
+  h2 {
+    font-size: 2.25rem; }
+  h3 {
+    font-size: 1.875rem; }
+  h4 {
+    font-size: 1.5rem; }
+  h5 {
+    font-size: 1.125rem; }
+  h6 {
+    font-size: 1rem; } }
+
+/*
+       * Print styles.
+       *
+       * Inlined to avoid required HTTP connection: www.phpied.com/delay-loading-your-print-css/
+       * Credit to Paul Irish and HTML5 Boilerplate (html5boilerplate.com)
+      */
+@media print {
+  * {
+    background: transparent !important;
+    color: #000000 !important;
+    /* Black prints faster: h5bp.com/s */
+    box-shadow: none !important;
+    text-shadow: none !important; }
+  a, a:visited {
+    text-decoration: underline; }
+  a[href]:after {
+    content: " (" attr(href) ")"; }
+  abbr[title]:after {
+    content: " (" attr(title) ")"; }
+  .ir a:after, a[href^="javascript:"]:after, a[href^="#"]:after {
+    content: ""; }
+  pre, blockquote {
+    border: 1px solid #999999;
+    page-break-inside: avoid; }
+  thead {
+    display: table-header-group;
+    /* h5bp.com/t */ }
+  tr, img {
+    page-break-inside: avoid; }
+  img {
+    max-width: 100% !important; }
+  @page {
+    margin: 0.34in; }
+
+  p, h2, h3 {
+    orphans: 3;
+    widows: 3; }
+  h2, h3 {
+    page-break-after: avoid; } }
+
+.off-canvas-wrap {
+  -webkit-backface-visibility: hidden;
+  position: relative;
+  width: 100%;
+  overflow: hidden; }
+  .off-canvas-wrap.move-right, .off-canvas-wrap.move-left, .off-canvas-wrap.move-bottom, .off-canvas-wrap.move-top {
+    min-height: 100%;
+    -webkit-overflow-scrolling: touch; }
+
+.inner-wrap {
+  position: relative;
+  width: 100%;
+  -webkit-transition: -webkit-transform 500ms ease;
+  -moz-transition: -moz-transform 500ms ease;
+  -ms-transition: -ms-transform 500ms ease;
+  -o-transition: -o-transform 500ms ease;
+  transition: transform 500ms ease; }
+  .inner-wrap:before, .inner-wrap:after {
+    content: " ";
+    display: table; }
+  .inner-wrap:after {
+    clear: both; }
+
+.tab-bar {
+  -webkit-backface-visibility: hidden;
+  background: #0093d1;
+  color: #FFFFFF;
+  height: 2.8125rem;
+  line-height: 2.8125rem;
+  position: relative; }
+  .tab-bar h1, .tab-bar h2, .tab-bar h3, .tab-bar h4, .tab-bar h5, .tab-bar h6 {
+    color: #FFFFFF;
+    font-weight: bold;
+    line-height: 2.8125rem;
+    margin: 0; }
+  .tab-bar h1, .tab-bar h2, .tab-bar h3, .tab-bar h4 {
+    font-size: 1.125rem; }
+
+.left-small {
+  height: 2.8125rem;
+  position: absolute;
+  top: 0;
+  width: 2.8125rem;
+  border-right: solid 1px #004a69;
+  left: 0; }
+
+.right-small {
+  height: 2.8125rem;
+  position: absolute;
+  top: 0;
+  width: 2.8125rem;
+  border-left: solid 1px #004a69;
+  right: 0; }
+
+.tab-bar-section {
+  height: 2.8125rem;
+  padding: 0 0.625rem;
+  position: absolute;
+  text-align: center;
+  top: 0; }
+  .tab-bar-section.left {
+    text-align: left; }
+  .tab-bar-section.right {
+    text-align: right; }
+  .tab-bar-section.left {
+    left: 0;
+    right: 2.8125rem; }
+  .tab-bar-section.right {
+    left: 2.8125rem;
+    right: 0; }
+  .tab-bar-section.middle {
+    left: 2.8125rem;
+    right: 2.8125rem; }
+
+.tab-bar .menu-icon {
+  color: #FFFFFF;
+  display: block;
+  height: 2.8125rem;
+  padding: 0;
+  position: relative;
+  text-indent: 2.1875rem;
+  transform: translate3d(0, 0, 0);
+  width: 2.8125rem; }
+  .tab-bar .menu-icon span::after {
+    content: "";
+    display: block;
+    height: 0;
+    position: absolute;
+    top: 50%;
+    margin-top: -0.5rem;
+    left: 0.90625rem;
+    box-shadow: 0 0 0 1px #FFFFFF, 0 7px 0 1px #FFFFFF, 0 14px 0 1px #FFFFFF;
+    width: 1rem; }
+  .tab-bar .menu-icon span:hover:after {
+    box-shadow: 0 0 0 1px #b3b3b3, 0 7px 0 1px #b3b3b3, 0 14px 0 1px #b3b3b3; }
+
+.left-off-canvas-menu {
+  -webkit-backface-visibility: hidden;
+  background: #0093d1;
+  bottom: 0;
+  box-sizing: content-box;
+  -webkit-overflow-scrolling: touch;
+  -ms-overflow-style: -ms-autohiding-scrollbar;
+  overflow-x: hidden;
+  overflow-y: auto;
+  position: absolute;
+  transition: transform 500ms ease 0s;
+  width: 15.625rem;
+  z-index: 1001;
+  -webkit-transform: translate3d(-100%, 0, 0);
+  -moz-transform: translate3d(-100%, 0, 0);
+  -ms-transform: translate(-100%, 0);
+  -o-transform: translate3d(-100%, 0, 0);
+  transform: translate3d(-100%, 0, 0);
+  left: 0;
+  top: 0; }
+  .left-off-canvas-menu * {
+    -webkit-backface-visibility: hidden; }
+
+.right-off-canvas-menu {
+  -webkit-backface-visibility: hidden;
+  background: #0093d1;
+  bottom: 0;
+  box-sizing: content-box;
+  -webkit-overflow-scrolling: touch;
+  -ms-overflow-style: -ms-autohiding-scrollbar;
+  overflow-x: hidden;
+  overflow-y: auto;
+  position: absolute;
+  transition: transform 500ms ease 0s;
+  width: 15.625rem;
+  z-index: 1001;
+  -webkit-transform: translate3d(100%, 0, 0);
+  -moz-transform: translate3d(100%, 0, 0);
+  -ms-transform: translate(100%, 0);
+  -o-transform: translate3d(100%, 0, 0);
+  transform: translate3d(100%, 0, 0);
+  right: 0;
+  top: 0; }
+  .right-off-canvas-menu * {
+    -webkit-backface-visibility: hidden; }
+
+.top-off-canvas-menu {
+  -webkit-backface-visibility: hidden;
+  background: #0093d1;
+  bottom: 0;
+  box-sizing: content-box;
+  -webkit-overflow-scrolling: touch;
+  -ms-overflow-style: -ms-autohiding-scrollbar;
+  overflow-x: hidden;
+  overflow-y: auto;
+  position: absolute;
+  transition: transform 500ms ease 0s;
+  width: 15.625rem;
+  z-index: 1001;
+  -webkit-transform: translate3d(0, -100%, 0);
+  -moz-transform: translate3d(0, -100%, 0);
+  -ms-transform: translate(0, -100%);
+  -o-transform: translate3d(0, -100%, 0);
+  transform: translate3d(0, -100%, 0);
+  top: 0;
+  width: 100%;
+  height: 18.75rem; }
+  .top-off-canvas-menu * {
+    -webkit-backface-visibility: hidden; }
+
+.bottom-off-canvas-menu {
+  -webkit-backface-visibility: hidden;
+  background: #0093d1;
+  bottom: 0;
+  box-sizing: content-box;
+  -webkit-overflow-scrolling: touch;
+  -ms-overflow-style: -ms-autohiding-scrollbar;
+  overflow-x: hidden;
+  overflow-y: auto;
+  position: absolute;
+  transition: transform 500ms ease 0s;
+  width: 15.625rem;
+  z-index: 1001;
+  -webkit-transform: translate3d(0, 100%, 0);
+  -moz-transform: translate3d(0, 100%, 0);
+  -ms-transform: translate(0, 100%);
+  -o-transform: translate3d(0, 100%, 0);
+  transform: translate3d(0, 100%, 0);
+  bottom: 0;
+  width: 100%;
+  height: 18.75rem; }
+  .bottom-off-canvas-menu * {
+    -webkit-backface-visibility: hidden; }
+
+ul.off-canvas-list {
+  list-style-type: none;
+  margin: 0;
+  padding: 0; }
+  ul.off-canvas-list li label {
+    background: #444444;
+    border-bottom: none;
+    border-top: 1px solid #5e5e5e;
+    color: #999999;
+    display: block;
+    font-size: 0.75rem;
+    font-weight: bold;
+    margin: 0;
+    padding: .3rem 0.9375rem;
+    text-transform: uppercase; }
+  ul.off-canvas-list li a {
+    border-bottom: 1px solid #006e9d;
+    color: rgba(255, 255, 255, 0.7);
+    display: block;
+    padding: 0.6666666667rem;
+    transition: background 300ms ease; }
+    ul.off-canvas-list li a:hover {
+      background: #006792; }
+    ul.off-canvas-list li a:active {
+      background: #006792; }
+
+.move-right > .inner-wrap {
+  -webkit-transform: translate3d(15.625rem, 0, 0);
+  -moz-transform: translate3d(15.625rem, 0, 0);
+  -ms-transform: translate(15.625rem, 0);
+  -o-transform: translate3d(15.625rem, 0, 0);
+  transform: translate3d(15.625rem, 0, 0); }
+.move-right .exit-off-canvas {
+  -webkit-backface-visibility: hidden;
+  box-shadow: -4px 0 4px rgba(0, 0, 0, 0.5), 4px 0 4px rgba(0, 0, 0, 0.5);
+  cursor: pointer;
+  transition: background 300ms ease;
+  -webkit-tap-highlight-color: transparent;
+  background: rgba(255, 255, 255, 0.2);
+  bottom: 0;
+  display: block;
+  left: 0;
+  position: absolute;
+  right: 0;
+  top: 0;
+  z-index: 1002; }
+  @media only screen and (min-width:40.063em) {
+    .move-right .exit-off-canvas:hover {
+      background: rgba(255, 255, 255, 0.05); } }
+
+.move-left > .inner-wrap {
+  -webkit-transform: translate3d(-15.625rem, 0, 0);
+  -moz-transform: translate3d(-15.625rem, 0, 0);
+  -ms-transform: translate(-15.625rem, 0);
+  -o-transform: translate3d(-15.625rem, 0, 0);
+  transform: translate3d(-15.625rem, 0, 0); }
+.move-left .exit-off-canvas {
+  -webkit-backface-visibility: hidden;
+  box-shadow: -4px 0 4px rgba(0, 0, 0, 0.5), 4px 0 4px rgba(0, 0, 0, 0.5);
+  cursor: pointer;
+  transition: background 300ms ease;
+  -webkit-tap-highlight-color: transparent;
+  background: rgba(255, 255, 255, 0.2);
+  bottom: 0;
+  display: block;
+  left: 0;
+  position: absolute;
+  right: 0;
+  top: 0;
+  z-index: 1002; }
+  @media only screen and (min-width:40.063em) {
+    .move-left .exit-off-canvas:hover {
+      background: rgba(255, 255, 255, 0.05); } }
+
+.move-top > .inner-wrap {
+  -webkit-transform: translate3d(0, -18.75rem, 0);
+  -moz-transform: translate3d(0, -18.75rem, 0);
+  -ms-transform: translate(0, -18.75rem);
+  -o-transform: translate3d(0, -18.75rem, 0);
+  transform: translate3d(0, -18.75rem, 0); }
+.move-top .exit-off-canvas {
+  -webkit-backface-visibility: hidden;
+  box-shadow: -4px 0 4px rgba(0, 0, 0, 0.5), 4px 0 4px rgba(0, 0, 0, 0.5);
+  cursor: pointer;
+  transition: background 300ms ease;
+  -webkit-tap-highlight-color: transparent;
+  background: rgba(255, 255, 255, 0.2);
+  bottom: 0;
+  display: block;
+  left: 0;
+  position: absolute;
+  right: 0;
+  top: 0;
+  z-index: 1002; }
+  @media only screen and (min-width:40.063em) {
+    .move-top .exit-off-canvas:hover {
+      background: rgba(255, 255, 255, 0.05); } }
+
+.move-bottom > .inner-wrap {
+  -webkit-transform: translate3d(0, 18.75rem, 0);
+  -moz-transform: translate3d(0, 18.75rem, 0);
+  -ms-transform: translate(0, 18.75rem);
+  -o-transform: translate3d(0, 18.75rem, 0);
+  transform: translate3d(0, 18.75rem, 0); }
+.move-bottom .exit-off-canvas {
+  -webkit-backface-visibility: hidden;
+  box-shadow: -4px 0 4px rgba(0, 0, 0, 0.5), 4px 0 4px rgba(0, 0, 0, 0.5);
+  cursor: pointer;
+  transition: background 300ms ease;
+  -webkit-tap-highlight-color: transparent;
+  background: rgba(255, 255, 255, 0.2);
+  bottom: 0;
+  display: block;
+  left: 0;
+  position: absolute;
+  right: 0;
+  top: 0;
+  z-index: 1002; }
+  @media only screen and (min-width:40.063em) {
+    .move-bottom .exit-off-canvas:hover {
+      background: rgba(255, 255, 255, 0.05); } }
+
+.offcanvas-overlap .left-off-canvas-menu, .offcanvas-overlap .right-off-canvas-menu, .offcanvas-overlap .top-off-canvas-menu, .offcanvas-overlap .bottom-off-canvas-menu {
+  -ms-transform: none;
+  -webkit-transform: none;
+  -moz-transform: none;
+  -o-transform: none;
+  transform: none;
+  z-index: 1003; }
+.offcanvas-overlap .exit-off-canvas {
+  -webkit-backface-visibility: hidden;
+  box-shadow: -4px 0 4px rgba(0, 0, 0, 0.5), 4px 0 4px rgba(0, 0, 0, 0.5);
+  cursor: pointer;
+  transition: background 300ms ease;
+  -webkit-tap-highlight-color: transparent;
+  background: rgba(255, 255, 255, 0.2);
+  bottom: 0;
+  display: block;
+  left: 0;
+  position: absolute;
+  right: 0;
+  top: 0;
+  z-index: 1002; }
+  @media only screen and (min-width:40.063em) {
+    .offcanvas-overlap .exit-off-canvas:hover {
+      background: rgba(255, 255, 255, 0.05); } }
+
+.offcanvas-overlap-left .right-off-canvas-menu {
+  -ms-transform: none;
+  -webkit-transform: none;
+  -moz-transform: none;
+  -o-transform: none;
+  transform: none;
+  z-index: 1003; }
+.offcanvas-overlap-left .exit-off-canvas {
+  -webkit-backface-visibility: hidden;
+  box-shadow: -4px 0 4px rgba(0, 0, 0, 0.5), 4px 0 4px rgba(0, 0, 0, 0.5);
+  cursor: pointer;
+  transition: background 300ms ease;
+  -webkit-tap-highlight-color: transparent;
+  background: rgba(255, 255, 255, 0.2);
+  bottom: 0;
+  display: block;
+  left: 0;
+  position: absolute;
+  right: 0;
+  top: 0;
+  z-index: 1002; }
+  @media only screen and (min-width:40.063em) {
+    .offcanvas-overlap-left .exit-off-canvas:hover {
+      background: rgba(255, 255, 255, 0.05); } }
+
+.offcanvas-overlap-right .left-off-canvas-menu {
+  -ms-transform: none;
+  -webkit-transform: none;
+  -moz-transform: none;
+  -o-transform: none;
+  transform: none;
+  z-index: 1003; }
+.offcanvas-overlap-right .exit-off-canvas {
+  -webkit-backface-visibility: hidden;
+  box-shadow: -4px 0 4px rgba(0, 0, 0, 0.5), 4px 0 4px rgba(0, 0, 0, 0.5);
+  cursor: pointer;
+  transition: background 300ms ease;
+  -webkit-tap-highlight-color: transparent;
+  background: rgba(255, 255, 255, 0.2);
+  bottom: 0;
+  display: block;
+  left: 0;
+  position: absolute;
+  right: 0;
+  top: 0;
+  z-index: 1002; }
+  @media only screen and (min-width:40.063em) {
+    .offcanvas-overlap-right .exit-off-canvas:hover {
+      background: rgba(255, 255, 255, 0.05); } }
+
+.offcanvas-overlap-top .bottom-off-canvas-menu {
+  -ms-transform: none;
+  -webkit-transform: none;
+  -moz-transform: none;
+  -o-transform: none;
+  transform: none;
+  z-index: 1003; }
+.offcanvas-overlap-top .exit-off-canvas {
+  -webkit-backface-visibility: hidden;
+  box-shadow: -4px 0 4px rgba(0, 0, 0, 0.5), 4px 0 4px rgba(0, 0, 0, 0.5);
+  cursor: pointer;
+  transition: background 300ms ease;
+  -webkit-tap-highlight-color: transparent;
+  background: rgba(255, 255, 255, 0.2);
+  bottom: 0;
+  display: block;
+  left: 0;
+  position: absolute;
+  right: 0;
+  top: 0;
+  z-index: 1002; }
+  @media only screen and (min-width:40.063em) {
+    .offcanvas-overlap-top .exit-off-canvas:hover {
+      background: rgba(255, 255, 255, 0.05); } }
+
+.offcanvas-overlap-bottom .top-off-canvas-menu {
+  -ms-transform: none;
+  -webkit-transform: none;
+  -moz-transform: none;
+  -o-transform: none;
+  transform: none;
+  z-index: 1003; }
+.offcanvas-overlap-bottom .exit-off-canvas {
+  -webkit-backface-visibility: hidden;
+  box-shadow: -4px 0 4px rgba(0, 0, 0, 0.5), 4px 0 4px rgba(0, 0, 0, 0.5);
+  cursor: pointer;
+  transition: background 300ms ease;
+  -webkit-tap-highlight-color: transparent;
+  background: rgba(255, 255, 255, 0.2);
+  bottom: 0;
+  display: block;
+  left: 0;
+  position: absolute;
+  right: 0;
+  top: 0;
+  z-index: 1002; }
+  @media only screen and (min-width:40.063em) {
+    .offcanvas-overlap-bottom .exit-off-canvas:hover {
+      background: rgba(255, 255, 255, 0.05); } }
+
+.no-csstransforms .left-off-canvas-menu {
+  left: -15.625rem; }
+.no-csstransforms .right-off-canvas-menu {
+  right: -15.625rem; }
+.no-csstransforms .top-off-canvas-menu {
+  top: -18.75rem; }
+.no-csstransforms .bottom-off-canvas-menu {
+  bottom: -18.75rem; }
+.no-csstransforms .move-left > .inner-wrap {
+  right: 15.625rem; }
+.no-csstransforms .move-right > .inner-wrap {
+  left: 15.625rem; }
+.no-csstransforms .move-top > .inner-wrap {
+  right: 18.75rem; }
+.no-csstransforms .move-bottom > .inner-wrap {
+  left: 18.75rem; }
+
+.left-submenu {
+  -webkit-backface-visibility: hidden;
+  -webkit-overflow-scrolling: touch;
+  background: #0093d1;
+  bottom: 0;
+  box-sizing: content-box;
+  margin: 0;
+  overflow-x: hidden;
+  overflow-y: auto;
+  position: absolute;
+  top: 0;
+  width: 15.625rem;
+  height: 18.75rem;
+  z-index: 1002;
+  -webkit-transform: translate3d(-100%, 0, 0);
+  -moz-transform: translate3d(-100%, 0, 0);
+  -ms-transform: translate(-100%, 0);
+  -o-transform: translate3d(-100%, 0, 0);
+  transform: translate3d(-100%, 0, 0);
+  left: 0;
+  -webkit-transition: -webkit-transform 500ms ease;
+  -moz-transition: -moz-transform 500ms ease;
+  -ms-transition: -ms-transform 500ms ease;
+  -o-transition: -o-transform 500ms ease;
+  transition: transform 500ms ease; }
+  .left-submenu * {
+    -webkit-backface-visibility: hidden; }
+  .left-submenu .back > a {
+    background: #444;
+    border-bottom: none;
+    border-top: 1px solid #5e5e5e;
+    color: #999999;
+    font-weight: bold;
+    padding: .3rem 0.9375rem;
+    text-transform: uppercase;
+    margin: 0; }
+    .left-submenu .back > a:hover {
+      background: #303030;
+      border-bottom: none;
+      border-top: 1px solid #5e5e5e; }
+    .left-submenu .back > a:before {
+      content: "\AB";
+      margin-right: .5rem;
+      display: inline; }
+  .left-submenu.move-right, .left-submenu.offcanvas-overlap-right, .left-submenu.offcanvas-overlap {
+    -webkit-transform: translate3d(0%, 0, 0);
+    -moz-transform: translate3d(0%, 0, 0);
+    -ms-transform: translate(0%, 0);
+    -o-transform: translate3d(0%, 0, 0);
+    transform: translate3d(0%, 0, 0); }
+
+.right-submenu {
+  -webkit-backface-visibility: hidden;
+  -webkit-overflow-scrolling: touch;
+  background: #0093d1;
+  bottom: 0;
+  box-sizing: content-box;
+  margin: 0;
+  overflow-x: hidden;
+  overflow-y: auto;
+  position: absolute;
+  top: 0;
+  width: 15.625rem;
+  height: 18.75rem;
+  z-index: 1002;
+  -webkit-transform: translate3d(100%, 0, 0);
+  -moz-transform: translate3d(100%, 0, 0);
+  -ms-transform: translate(100%, 0);
+  -o-transform: translate3d(100%, 0, 0);
+  transform: translate3d(100%, 0, 0);
+  right: 0;
+  -webkit-transition: -webkit-transform 500ms ease;
+  -moz-transition: -moz-transform 500ms ease;
+  -ms-transition: -ms-transform 500ms ease;
+  -o-transition: -o-transform 500ms ease;
+  transition: transform 500ms ease; }
+  .right-submenu * {
+    -webkit-backface-visibility: hidden; }
+  .right-submenu .back > a {
+    background: #444;
+    border-bottom: none;
+    border-top: 1px solid #5e5e5e;
+    color: #999999;
+    font-weight: bold;
+    padding: .3rem 0.9375rem;
+    text-transform: uppercase;
+    margin: 0; }
+    .right-submenu .back > a:hover {
+      background: #303030;
+      border-bottom: none;
+      border-top: 1px solid #5e5e5e; }
+    .right-submenu .back > a:after {
+      content: "\BB";
+      margin-left: .5rem;
+      display: inline; }
+  .right-submenu.move-left, .right-submenu.offcanvas-overlap-left, .right-submenu.offcanvas-overlap {
+    -webkit-transform: translate3d(0%, 0, 0);
+    -moz-transform: translate3d(0%, 0, 0);
+    -ms-transform: translate(0%, 0);
+    -o-transform: translate3d(0%, 0, 0);
+    transform: translate3d(0%, 0, 0); }
+
+.top-submenu {
+  -webkit-backface-visibility: hidden;
+  -webkit-overflow-scrolling: touch;
+  background: #0093d1;
+  bottom: 0;
+  box-sizing: content-box;
+  margin: 0;
+  overflow-x: hidden;
+  overflow-y: auto;
+  position: absolute;
+  top: 0;
+  width: 15.625rem;
+  height: 18.75rem;
+  z-index: 1002;
+  -webkit-transform: translate3d(0, -100%, 0);
+  -moz-transform: translate3d(0, -100%, 0);
+  -ms-transform: translate(0, -100%);
+  -o-transform: translate3d(0, -100%, 0);
+  transform: translate3d(0, -100%, 0);
+  top: 0;
+  width: 100%;
+  -webkit-transition: -webkit-transform 500ms ease;
+  -moz-transition: -moz-transform 500ms ease;
+  -ms-transition: -ms-transform 500ms ease;
+  -o-transition: -o-transform 500ms ease;
+  transition: transform 500ms ease; }
+  .top-submenu * {
+    -webkit-backface-visibility: hidden; }
+  .top-submenu .back > a {
+    background: #444;
+    border-bottom: none;
+    border-top: 1px solid #5e5e5e;
+    color: #999999;
+    font-weight: bold;
+    padding: .3rem 0.9375rem;
+    text-transform: uppercase;
+    margin: 0; }
+    .top-submenu .back > a:hover {
+      background: #303030;
+      border-bottom: none;
+      border-top: 1px solid #5e5e5e; }
+  .top-submenu.move-bottom, .top-submenu.offcanvas-overlap-bottom, .top-submenu.offcanvas-overlap {
+    -webkit-transform: translate3d(0, 0%, 0);
+    -moz-transform: translate3d(0, 0%, 0);
+    -ms-transform: translate(0, 0%);
+    -o-transform: translate3d(0, 0%, 0);
+    transform: translate3d(0, 0%, 0); }
+
+.bottom-submenu {
+  -webkit-backface-visibility: hidden;
+  -webkit-overflow-scrolling: touch;
+  background: #0093d1;
+  bottom: 0;
+  box-sizing: content-box;
+  margin: 0;
+  overflow-x: hidden;
+  overflow-y: auto;
+  position: absolute;
+  top: 0;
+  width: 15.625rem;
+  height: 18.75rem;
+  z-index: 1002;
+  -webkit-transform: translate3d(0, 100%, 0);
+  -moz-transform: translate3d(0, 100%, 0);
+  -ms-transform: translate(0, 100%);
+  -o-transform: translate3d(0, 100%, 0);
+  transform: translate3d(0, 100%, 0);
+  bottom: 0;
+  width: 100%;
+  -webkit-transition: -webkit-transform 500ms ease;
+  -moz-transition: -moz-transform 500ms ease;
+  -ms-transition: -ms-transform 500ms ease;
+  -o-transition: -o-transform 500ms ease;
+  transition: transform 500ms ease; }
+  .bottom-submenu * {
+    -webkit-backface-visibility: hidden; }
+  .bottom-submenu .back > a {
+    background: #444;
+    border-bottom: none;
+    border-top: 1px solid #5e5e5e;
+    color: #999999;
+    font-weight: bold;
+    padding: .3rem 0.9375rem;
+    text-transform: uppercase;
+    margin: 0; }
+    .bottom-submenu .back > a:hover {
+      background: #303030;
+      border-bottom: none;
+      border-top: 1px solid #5e5e5e; }
+  .bottom-submenu.move-top, .bottom-submenu.offcanvas-overlap-top, .bottom-submenu.offcanvas-overlap {
+    -webkit-transform: translate3d(0, 0%, 0);
+    -moz-transform: translate3d(0, 0%, 0);
+    -ms-transform: translate(0, 0%);
+    -o-transform: translate3d(0, 0%, 0);
+    transform: translate3d(0, 0%, 0); }
+
+.left-off-canvas-menu ul.off-canvas-list li.has-submenu > a:after {
+  content: "\BB";
+  margin-left: .5rem;
+  display: inline; }
+
+.right-off-canvas-menu ul.off-canvas-list li.has-submenu > a:before {
+  content: "\AB";
+  margin-right: .5rem;
+  display: inline; }
+
+/* small displays */
+@media only screen {
+  .show-for-small-only, .show-for-small-up, .show-for-small, .show-for-small-down, .hide-for-medium-only, .hide-for-medium-up, .hide-for-medium, .show-for-medium-down, .hide-for-large-only, .hide-for-large-up, .hide-for-large, .show-for-large-down, .hide-for-xlarge-only, .hide-for-xlarge-up, .hide-for-xlarge, .show-for-xlarge-down, .hide-for-xxlarge-only, .hide-for-xxlarge-up, .hide-for-xxlarge, .show-for-xxlarge-down {
+    display: inherit !important; }
+  .hide-for-small-only, .hide-for-small-up, .hide-for-small, .hide-for-small-down, .show-for-medium-only, .show-for-medium-up, .show-for-medium, .hide-for-medium-down, .show-for-large-only, .show-for-large-up, .show-for-large, .hide-for-large-down, .show-for-xlarge-only, .show-for-xlarge-up, .show-for-xlarge, .hide-for-xlarge-down, .show-for-xxlarge-only, .show-for-xxlarge-up, .show-for-xxlarge, .hide-for-xxlarge-down {
+    display: none !important; }
+  .visible-for-small-only, .visible-for-small-up, .visible-for-small, .visible-for-small-down, .hidden-for-medium-only, .hidden-for-medium-up, .hidden-for-medium, .visible-for-medium-down, .hidden-for-large-only, .hidden-for-large-up, .hidden-for-large, .visible-for-large-down, .hidden-for-xlarge-only, .hidden-for-xlarge-up, .hidden-for-xlarge, .visible-for-xlarge-down, .hidden-for-xxlarge-only, .hidden-for-xxlarge-up, .hidden-for-xxlarge, .visible-for-xxlarge-down {
+    position: static !important;
+    height: auto;
+    width: auto;
+    overflow: visible;
+    clip: auto; }
+  .hidden-for-small-only, .hidden-for-small-up, .hidden-for-small, .hidden-for-small-down, .visible-for-medium-only, .visible-for-medium-up, .visible-for-medium, .hidden-for-medium-down, .visible-for-large-only, .visible-for-large-up, .visible-for-large, .hidden-for-large-down, .visible-for-xlarge-only, .visible-for-xlarge-up, .visible-for-xlarge, .hidden-for-xlarge-down, .visible-for-xxlarge-only, .visible-for-xxlarge-up, .visible-for-xxlarge, .hidden-for-xxlarge-down {
+    clip: rect(1px, 1px, 1px, 1px);
+    height: 1px;
+    overflow: hidden;
+    position: absolute !important;
+    width: 1px; }
+  table.show-for-small-only, table.show-for-small-up, table.show-for-small, table.show-for-small-down, table.hide-for-medium-only, table.hide-for-medium-up, table.hide-for-medium, table.show-for-medium-down, table.hide-for-large-only, table.hide-for-large-up, table.hide-for-large, table.show-for-large-down, table.hide-for-xlarge-only, table.hide-for-xlarge-up, table.hide-for-xlarge, table.show-for-xlarge-down, table.hide-for-xxlarge-only, table.hide-for-xxlarge-up, table.hide-for-xxlarge, table.show-for-xxlarge-down {
+    display: table !important; }
+  thead.show-for-small-only, thead.show-for-small-up, thead.show-for-small, thead.show-for-small-down, thead.hide-for-medium-only, thead.hide-for-medium-up, thead.hide-for-medium, thead.show-for-medium-down, thead.hide-for-large-only, thead.hide-for-large-up, thead.hide-for-large, thead.show-for-large-down, thead.hide-for-xlarge-only, thead.hide-for-xlarge-up, thead.hide-for-xlarge, thead.show-for-xlarge-down, thead.hide-for-xxlarge-only, thead.hide-for-xxlarge-up, thead.hide-for-xxlarge, thead.show-for-xxlarge-down {
+    display: table-header-group !important; }
+  tbody.show-for-small-only, tbody.show-for-small-up, tbody.show-for-small, tbody.show-for-small-down, tbody.hide-for-medium-only, tbody.hide-for-medium-up, tbody.hide-for-medium, tbody.show-for-medium-down, tbody.hide-for-large-only, tbody.hide-for-large-up, tbody.hide-for-large, tbody.show-for-large-down, tbody.hide-for-xlarge-only, tbody.hide-for-xlarge-up, tbody.hide-for-xlarge, tbody.show-for-xlarge-down, tbody.hide-for-xxlarge-only, tbody.hide-for-xxlarge-up, tbody.hide-for-xxlarge, tbody.show-for-xxlarge-down {
+    display: table-row-group !important; }
+  tr.show-for-small-only, tr.show-for-small-up, tr.show-for-small, tr.show-for-small-down, tr.hide-for-medium-only, tr.hide-for-medium-up, tr.hide-for-medium, tr.show-for-medium-down, tr.hide-for-large-only, tr.hide-for-large-up, tr.hide-for-large, tr.show-for-large-down, tr.hide-for-xlarge-only, tr.hide-for-xlarge-up, tr.hide-for-xlarge, tr.show-for-xlarge-down, tr.hide-for-xxlarge-only, tr.hide-for-xxlarge-up, tr.hide-for-xxlarge, tr.show-for-xxlarge-down {
+    display: table-row; }
+  th.show-for-small-only, td.show-for-small-only, th.show-for-small-up, td.show-for-small-up, th.show-for-small, td.show-for-small, th.show-for-small-down, td.show-for-small-down, th.hide-for-medium-only, td.hide-for-medium-only, th.hide-for-medium-up, td.hide-for-medium-up, th.hide-for-medium, td.hide-for-medium, th.show-for-medium-down, td.show-for-medium-down, th.hide-for-large-only, td.hide-for-large-only, th.hide-for-large-up, td.hide-for-large-up, th.hide-for-large, td.hide-for-large, th.show-for-large-down, td.show-for-large-down, th.hide-for-xlarge-only, td.hide-for-xlarge-only, th.hide-for-xlarge-up, td.hide-for-xlarge-up, th.hide-for-xlarge, td.hide-for-xlarge, th.show-for-xlarge-down, td.show-for-xlarge-down, th.hide-for-xxlarge-only, td.hide-for-xxlarge-only, th.hide-for-xxlarge-up, td.hide-for-xxlarge-up, th.hide-for-xxlarge, td.hide-for-xxlarge, th.show-for-xxlarge-down, td.show-for-xxlarge-down {
+    display: table-cell !important; } }
+
+/* medium displays */
+@media only screen and (min-width:40.063em) {
+  .hide-for-small-only, .show-for-small-up, .hide-for-small, .hide-for-small-down, .show-for-medium-only, .show-for-medium-up, .show-for-medium, .show-for-medium-down, .hide-for-large-only, .hide-for-large-up, .hide-for-large, .show-for-large-down, .hide-for-xlarge-only, .hide-for-xlarge-up, .hide-for-xlarge, .show-for-xlarge-down, .hide-for-xxlarge-only, .hide-for-xxlarge-up, .hide-for-xxlarge, .show-for-xxlarge-down {
+    display: inherit !important; }
+  .show-for-small-only, .hide-for-small-up, .show-for-small, .show-for-small-down, .hide-for-medium-only, .hide-for-medium-up, .hide-for-medium, .hide-for-medium-down, .show-for-large-only, .show-for-large-up, .show-for-large, .hide-for-large-down, .show-for-xlarge-only, .show-for-xlarge-up, .show-for-xlarge, .hide-for-xlarge-down, .show-for-xxlarge-only, .show-for-xxlarge-up, .show-for-xxlarge, .hide-for-xxlarge-down {
+    display: none !important; }
+  .hidden-for-small-only, .visible-for-small-up, .hidden-for-small, .hidden-for-small-down, .visible-for-medium-only, .visible-for-medium-up, .visible-for-medium, .visible-for-medium-down, .hidden-for-large-only, .hidden-for-large-up, .hidden-for-large, .visible-for-large-down, .hidden-for-xlarge-only, .hidden-for-xlarge-up, .hidden-for-xlarge, .visible-for-xlarge-down, .hidden-for-xxlarge-only, .hidden-for-xxlarge-up, .hidden-for-xxlarge, .visible-for-xxlarge-down {
+    position: static !important;
+    height: auto;
+    width: auto;
+    overflow: visible;
+    clip: auto; }
+  .visible-for-small-only, .hidden-for-small-up, .visible-for-small, .visible-for-small-down, .hidden-for-medium-only, .hidden-for-medium-up, .hidden-for-medium, .hidden-for-medium-down, .visible-for-large-only, .visible-for-large-up, .visible-for-large, .hidden-for-large-down, .visible-for-xlarge-only, .visible-for-xlarge-up, .visible-for-xlarge, .hidden-for-xlarge-down, .visible-for-xxlarge-only, .visible-for-xxlarge-up, .visible-for-xxlarge, .hidden-for-xxlarge-down {
+    clip: rect(1px, 1px, 1px, 1px);
+    height: 1px;
+    overflow: hidden;
+    position: absolute !important;
+    width: 1px; }
+  table.hide-for-small-only, table.show-for-small-up, table.hide-for-small, table.hide-for-small-down, table.show-for-medium-only, table.show-for-medium-up, table.show-for-medium, table.show-for-medium-down, table.hide-for-large-only, table.hide-for-large-up, table.hide-for-large, table.show-for-large-down, table.hide-for-xlarge-only, table.hide-for-xlarge-up, table.hide-for-xlarge, table.show-for-xlarge-down, table.hide-for-xxlarge-only, table.hide-for-xxlarge-up, table.hide-for-xxlarge, table.show-for-xxlarge-down {
+    display: table !important; }
+  thead.hide-for-small-only, thead.show-for-small-up, thead.hide-for-small, thead.hide-for-small-down, thead.show-for-medium-only, thead.show-for-medium-up, thead.show-for-medium, thead.show-for-medium-down, thead.hide-for-large-only, thead.hide-for-large-up, thead.hide-for-large, thead.show-for-large-down, thead.hide-for-xlarge-only, thead.hide-for-xlarge-up, thead.hide-for-xlarge, thead.show-for-xlarge-down, thead.hide-for-xxlarge-only, thead.hide-for-xxlarge-up, thead.hide-for-xxlarge, thead.show-for-xxlarge-down {
+    display: table-header-group !important; }
+  tbody.hide-for-small-only, tbody.show-for-small-up, tbody.hide-for-small, tbody.hide-for-small-down, tbody.show-for-medium-only, tbody.show-for-medium-up, tbody.show-for-medium, tbody.show-for-medium-down, tbody.hide-for-large-only, tbody.hide-for-large-up, tbody.hide-for-large, tbody.show-for-large-down, tbody.hide-for-xlarge-only, tbody.hide-for-xlarge-up, tbody.hide-for-xlarge, tbody.show-for-xlarge-down, tbody.hide-for-xxlarge-only, tbody.hide-for-xxlarge-up, tbody.hide-for-xxlarge, tbody.show-for-xxlarge-down {
+    display: table-row-group !important; }
+  tr.hide-for-small-only, tr.show-for-small-up, tr.hide-for-small, tr.hide-for-small-down, tr.show-for-medium-only, tr.show-for-medium-up, tr.show-for-medium, tr.show-for-medium-down, tr.hide-for-large-only, tr.hide-for-large-up, tr.hide-for-large, tr.show-for-large-down, tr.hide-for-xlarge-only, tr.hide-for-xlarge-up, tr.hide-for-xlarge, tr.show-for-xlarge-down, tr.hide-for-xxlarge-only, tr.hide-for-xxlarge-up, tr.hide-for-xxlarge, tr.show-for-xxlarge-down {
+    display: table-row; }
+  th.hide-for-small-only, td.hide-for-small-only, th.show-for-small-up, td.show-for-small-up, th.hide-for-small, td.hide-for-small, th.hide-for-small-down, td.hide-for-small-down, th.show-for-medium-only, td.show-for-medium-only, th.show-for-medium-up, td.show-for-medium-up, th.show-for-medium, td.show-for-medium, th.show-for-medium-down, td.show-for-medium-down, th.hide-for-large-only, td.hide-for-large-only, th.hide-for-large-up, td.hide-for-large-up, th.hide-for-large, td.hide-for-large, th.show-for-large-down, td.show-for-large-down, th.hide-for-xlarge-only, td.hide-for-xlarge-only, th.hide-for-xlarge-up, td.hide-for-xlarge-up, th.hide-for-xlarge, td.hide-for-xlarge, th.show-for-xlarge-down, td.show-for-xlarge-down, th.hide-for-xxlarge-only, td.hide-for-xxlarge-only, th.hide-for-xxlarge-up, td.hide-for-xxlarge-up, th.hide-for-xxlarge, td.hide-for-xxlarge, th.show-for-xxlarge-down, td.show-for-xxlarge-down {
+    display: table-cell !important; } }
+
+/* large displays */
+@media only screen and (min-width:64.063em) {
+  .hide-for-small-only, .show-for-small-up, .hide-for-small, .hide-for-small-down, .hide-for-medium-only, .show-for-medium-up, .hide-for-medium, .hide-for-medium-down, .show-for-large-only, .show-for-large-up, .show-for-large, .show-for-large-down, .hide-for-xlarge-only, .hide-for-xlarge-up, .hide-for-xlarge, .show-for-xlarge-down, .hide-for-xxlarge-only, .hide-for-xxlarge-up, .hide-for-xxlarge, .show-for-xxlarge-down {
+    display: inherit !important; }
+  .show-for-small-only, .hide-for-small-up, .show-for-small, .show-for-small-down, .show-for-medium-only, .hide-for-medium-up, .show-for-medium, .show-for-medium-down, .hide-for-large-only, .hide-for-large-up, .hide-for-large, .hide-for-large-down, .show-for-xlarge-only, .show-for-xlarge-up, .show-for-xlarge, .hide-for-xlarge-down, .show-for-xxlarge-only, .show-for-xxlarge-up, .show-for-xxlarge, .hide-for-xxlarge-down {
+    display: none !important; }
+  .hidden-for-small-only, .visible-for-small-up, .hidden-for-small, .hidden-for-small-down, .hidden-for-medium-only, .visible-for-medium-up, .hidden-for-medium, .hidden-for-medium-down, .visible-for-large-only, .visible-for-large-up, .visible-for-large, .visible-for-large-down, .hidden-for-xlarge-only, .hidden-for-xlarge-up, .hidden-for-xlarge, .visible-for-xlarge-down, .hidden-for-xxlarge-only, .hidden-for-xxlarge-up, .hidden-for-xxlarge, .visible-for-xxlarge-down {
+    position: static !important;
+    height: auto;
+    width: auto;
+    overflow: visible;
+    clip: auto; }
+  .visible-for-small-only, .hidden-for-small-up, .visible-for-small, .visible-for-small-down, .visible-for-medium-only, .hidden-for-medium-up, .visible-for-medium, .visible-for-medium-down, .hidden-for-large-only, .hidden-for-large-up, .hidden-for-large, .hidden-for-large-down, .visible-for-xlarge-only, .visible-for-xlarge-up, .visible-for-xlarge, .hidden-for-xlarge-down, .visible-for-xxlarge-only, .visible-for-xxlarge-up, .visible-for-xxlarge, .hidden-for-xxlarge-down {
+    clip: rect(1px, 1px, 1px, 1px);
+    height: 1px;
+    overflow: hidden;
+    position: absolute !important;
+    width: 1px; }
+  table.hide-for-small-only, table.show-for-small-up, table.hide-for-small, table.hide-for-small-down, table.hide-for-medium-only, table.show-for-medium-up, table.hide-for-medium, table.hide-for-medium-down, table.show-for-large-only, table.show-for-large-up, table.show-for-large, table.show-for-large-down, table.hide-for-xlarge-only, table.hide-for-xlarge-up, table.hide-for-xlarge, table.show-for-xlarge-down, table.hide-for-xxlarge-only, table.hide-for-xxlarge-up, table.hide-for-xxlarge, table.show-for-xxlarge-down {
+    display: table !important; }
+  thead.hide-for-small-only, thead.show-for-small-up, thead.hide-for-small, thead.hide-for-small-down, thead.hide-for-medium-only, thead.show-for-medium-up, thead.hide-for-medium, thead.hide-for-medium-down, thead.show-for-large-only, thead.show-for-large-up, thead.show-for-large, thead.show-for-large-down, thead.hide-for-xlarge-only, thead.hide-for-xlarge-up, thead.hide-for-xlarge, thead.show-for-xlarge-down, thead.hide-for-xxlarge-only, thead.hide-for-xxlarge-up, thead.hide-for-xxlarge, thead.show-for-xxlarge-down {
+    display: table-header-group !important; }
+  tbody.hide-for-small-only, tbody.show-for-small-up, tbody.hide-for-small, tbody.hide-for-small-down, tbody.hide-for-medium-only, tbody.show-for-medium-up, tbody.hide-for-medium, tbody.hide-for-medium-down, tbody.show-for-large-only, tbody.show-for-large-up, tbody.show-for-large, tbody.show-for-large-down, tbody.hide-for-xlarge-only, tbody.hide-for-xlarge-up, tbody.hide-for-xlarge, tbody.show-for-xlarge-down, tbody.hide-for-xxlarge-only, tbody.hide-for-xxlarge-up, tbody.hide-for-xxlarge, tbody.show-for-xxlarge-down {
+    display: table-row-group !important; }
+  tr.hide-for-small-only, tr.show-for-small-up, tr.hide-for-small, tr.hide-for-small-down, tr.hide-for-medium-only, tr.show-for-medium-up, tr.hide-for-medium, tr.hide-for-medium-down, tr.show-for-large-only, tr.show-for-large-up, tr.show-for-large, tr.show-for-large-down, tr.hide-for-xlarge-only, tr.hide-for-xlarge-up, tr.hide-for-xlarge, tr.show-for-xlarge-down, tr.hide-for-xxlarge-only, tr.hide-for-xxlarge-up, tr.hide-for-xxlarge, tr.show-for-xxlarge-down {
+    display: table-row; }
+  th.hide-for-small-only, td.hide-for-small-only, th.show-for-small-up, td.show-for-small-up, th.hide-for-small, td.hide-for-small, th.hide-for-small-down, td.hide-for-small-down, th.hide-for-medium-only, td.hide-for-medium-only, th.show-for-medium-up, td.show-for-medium-up, th.hide-for-medium, td.hide-for-medium, th.hide-for-medium-down, td.hide-for-medium-down, th.show-for-large-only, td.show-for-large-only, th.show-for-large-up, td.show-for-large-up, th.show-for-large, td.show-for-large, th.show-for-large-down, td.show-for-large-down, th.hide-for-xlarge-only, td.hide-for-xlarge-only, th.hide-for-xlarge-up, td.hide-for-xlarge-up, th.hide-for-xlarge, td.hide-for-xlarge, th.show-for-xlarge-down, td.show-for-xlarge-down, th.hide-for-xxlarge-only, td.hide-for-xxlarge-only, th.hide-for-xxlarge-up, td.hide-for-xxlarge-up, th.hide-for-xxlarge, td.hide-for-xxlarge, th.show-for-xxlarge-down, td.show-for-xxlarge-down {
+    display: table-cell !important; } }
+
+/* xlarge displays */
+@media only screen and (min-width:90.063em) {
+  .hide-for-small-only, .show-for-small-up, .hide-for-small, .hide-for-small-down, .hide-for-medium-only, .show-for-medium-up, .hide-for-medium, .hide-for-medium-down, .hide-for-large-only, .show-for-large-up, .hide-for-large, .hide-for-large-down, .show-for-xlarge-only, .show-for-xlarge-up, .show-for-xlarge, .show-for-xlarge-down, .hide-for-xxlarge-only, .hide-for-xxlarge-up, .hide-for-xxlarge, .show-for-xxlarge-down {
+    display: inherit !important; }
+  .show-for-small-only, .hide-for-small-up, .show-for-small, .show-for-small-down, .show-for-medium-only, .hide-for-medium-up, .show-for-medium, .show-for-medium-down, .show-for-large-only, .hide-for-large-up, .show-for-large, .show-for-large-down, .hide-for-xlarge-only, .hide-for-xlarge-up, .hide-for-xlarge, .hide-for-xlarge-down, .show-for-xxlarge-only, .show-for-xxlarge-up, .show-for-xxlarge, .hide-for-xxlarge-down {
+    display: none !important; }
+  .hidden-for-small-only, .visible-for-small-up, .hidden-for-small, .hidden-for-small-down, .hidden-for-medium-only, .visible-for-medium-up, .hidden-for-medium, .hidden-for-medium-down, .hidden-for-large-only, .visible-for-large-up, .hidden-for-large, .hidden-for-large-down, .visible-for-xlarge-only, .visible-for-xlarge-up, .visible-for-xlarge, .visible-for-xlarge-down, .hidden-for-xxlarge-only, .hidden-for-xxlarge-up, .hidden-for-xxlarge, .visible-for-xxlarge-down {
+    position: static !important;
+    height: auto;
+    width: auto;
+    overflow: visible;
+    clip: auto; }
+  .visible-for-small-only, .hidden-for-small-up, .visible-for-small, .visible-for-small-down, .visible-for-medium-only, .hidden-for-medium-up, .visible-for-medium, .visible-for-medium-down, .visible-for-large-only, .hidden-for-large-up, .visible-for-large, .visible-for-large-down, .hidden-for-xlarge-only, .hidden-for-xlarge-up, .hidden-for-xlarge, .hidden-for-xlarge-down, .visible-for-xxlarge-only, .visible-for-xxlarge-up, .visible-for-xxlarge, .hidden-for-xxlarge-down {
+    clip: rect(1px, 1px, 1px, 1px);
+    height: 1px;
+    overflow: hidden;
+    position: absolute !important;
+    width: 1px; }
+  table.hide-for-small-only, table.show-for-small-up, table.hide-for-small, table.hide-for-small-down, table.hide-for-medium-only, table.show-for-medium-up, table.hide-for-medium, table.hide-for-medium-down, table.hide-for-large-only, table.show-for-large-up, table.hide-for-large, table.hide-for-large-down, table.show-for-xlarge-only, table.show-for-xlarge-up, table.show-for-xlarge, table.show-for-xlarge-down, table.hide-for-xxlarge-only, table.hide-for-xxlarge-up, table.hide-for-xxlarge, table.show-for-xxlarge-down {
+    display: table !important; }
+  thead.hide-for-small-only, thead.show-for-small-up, thead.hide-for-small, thead.hide-for-small-down, thead.hide-for-medium-only, thead.show-for-medium-up, thead.hide-for-medium, thead.hide-for-medium-down, thead.hide-for-large-only, thead.show-for-large-up, thead.hide-for-large, thead.hide-for-large-down, thead.show-for-xlarge-only, thead.show-for-xlarge-up, thead.show-for-xlarge, thead.show-for-xlarge-down, thead.hide-for-xxlarge-only, thead.hide-for-xxlarge-up, thead.hide-for-xxlarge, thead.show-for-xxlarge-down {
+    display: table-header-group !important; }
+  tbody.hide-for-small-only, tbody.show-for-small-up, tbody.hide-for-small, tbody.hide-for-small-down, tbody.hide-for-medium-only, tbody.show-for-medium-up, tbody.hide-for-medium, tbody.hide-for-medium-down, tbody.hide-for-large-only, tbody.show-for-large-up, tbody.hide-for-large, tbody.hide-for-large-down, tbody.show-for-xlarge-only, tbody.show-for-xlarge-up, tbody.show-for-xlarge, tbody.show-for-xlarge-down, tbody.hide-for-xxlarge-only, tbody.hide-for-xxlarge-up, tbody.hide-for-xxlarge, tbody.show-for-xxlarge-down {
+    display: table-row-group !important; }
+  tr.hide-for-small-only, tr.show-for-small-up, tr.hide-for-small, tr.hide-for-small-down, tr.hide-for-medium-only, tr.show-for-medium-up, tr.hide-for-medium, tr.hide-for-medium-down, tr.hide-for-large-only, tr.show-for-large-up, tr.hide-for-large, tr.hide-for-large-down, tr.show-for-xlarge-only, tr.show-for-xlarge-up, tr.show-for-xlarge, tr.show-for-xlarge-down, tr.hide-for-xxlarge-only, tr.hide-for-xxlarge-up, tr.hide-for-xxlarge, tr.show-for-xxlarge-down {
+    display: table-row; }
+  th.hide-for-small-only, td.hide-for-small-only, th.show-for-small-up, td.show-for-small-up, th.hide-for-small, td.hide-for-small, th.hide-for-small-down, td.hide-for-small-down, th.hide-for-medium-only, td.hide-for-medium-only, th.show-for-medium-up, td.show-for-medium-up, th.hide-for-medium, td.hide-for-medium, th.hide-for-medium-down, td.hide-for-medium-down, th.hide-for-large-only, td.hide-for-large-only, th.show-for-large-up, td.show-for-large-up, th.hide-for-large, td.hide-for-large, th.hide-for-large-down, td.hide-for-large-down, th.show-for-xlarge-only, td.show-for-xlarge-only, th.show-for-xlarge-up, td.show-for-xlarge-up, th.show-for-xlarge, td.show-for-xlarge, th.show-for-xlarge-down, td.show-for-xlarge-down, th.hide-for-xxlarge-only, td.hide-for-xxlarge-only, th.hide-for-xxlarge-up, td.hide-for-xxlarge-up, th.hide-for-xxlarge, td.hide-for-xxlarge, th.show-for-xxlarge-down, td.show-for-xxlarge-down {
+    display: table-cell !important; } }
+
+/* xxlarge displays */
+@media only screen and (min-width:120.063em) {
+  .hide-for-small-only, .show-for-small-up, .hide-for-small, .hide-for-small-down, .hide-for-medium-only, .show-for-medium-up, .hide-for-medium, .hide-for-medium-down, .hide-for-large-only, .show-for-large-up, .hide-for-large, .hide-for-large-down, .hide-for-xlarge-only, .show-for-xlarge-up, .hide-for-xlarge, .hide-for-xlarge-down, .show-for-xxlarge-only, .show-for-xxlarge-up, .show-for-xxlarge, .show-for-xxlarge-down {
+    display: inherit !important; }
+  .show-for-small-only, .hide-for-small-up, .show-for-small, .show-for-small-down, .show-for-medium-only, .hide-for-medium-up, .show-for-medium, .show-for-medium-down, .show-for-large-only, .hide-for-large-up, .show-for-large, .show-for-large-down, .show-for-xlarge-only, .hide-for-xlarge-up, .show-for-xlarge, .show-for-xlarge-down, .hide-for-xxlarge-only, .hide-for-xxlarge-up, .hide-for-xxlarge, .hide-for-xxlarge-down {
+    display: none !important; }
+  .hidden-for-small-only, .visible-for-small-up, .hidden-for-small, .hidden-for-small-down, .hidden-for-medium-only, .visible-for-medium-up, .hidden-for-medium, .hidden-for-medium-down, .hidden-for-large-only, .visible-for-large-up, .hidden-for-large, .hidden-for-large-down, .hidden-for-xlarge-only, .visible-for-xlarge-up, .hidden-for-xlarge, .hidden-for-xlarge-down, .visible-for-xxlarge-only, .visible-for-xxlarge-up, .visible-for-xxlarge, .visible-for-xxlarge-down {
+    position: static !important;
+    height: auto;
+    width: auto;
+    overflow: visible;
+    clip: auto; }
+  .visible-for-small-only, .hidden-for-small-up, .visible-for-small, .visible-for-small-down, .visible-for-medium-only, .hidden-for-medium-up, .visible-for-medium, .visible-for-medium-down, .visible-for-large-only, .hidden-for-large-up, .visible-for-large, .visible-for-large-down, .visible-for-xlarge-only, .hidden-for-xlarge-up, .visible-for-xlarge, .visible-for-xlarge-down, .hidden-for-xxlarge-only, .hidden-for-xxlarge-up, .hidden-for-xxlarge, .hidden-for-xxlarge-down {
+    clip: rect(1px, 1px, 1px, 1px);
+    height: 1px;
+    overflow: hidden;
+    position: absolute !important;
+    width: 1px; }
+  table.hide-for-small-only, table.show-for-small-up, table.hide-for-small, table.hide-for-small-down, table.hide-for-medium-only, table.show-for-medium-up, table.hide-for-medium, table.hide-for-medium-down, table.hide-for-large-only, table.show-for-large-up, table.hide-for-large, table.hide-for-large-down, table.hide-for-xlarge-only, table.show-for-xlarge-up, table.hide-for-xlarge, table.hide-for-xlarge-down, table.show-for-xxlarge-only, table.show-for-xxlarge-up, table.show-for-xxlarge, table.show-for-xxlarge-down {
+    display: table !important; }
+  thead.hide-for-small-only, thead.show-for-small-up, thead.hide-for-small, thead.hide-for-small-down, thead.hide-for-medium-only, thead.show-for-medium-up, thead.hide-for-medium, thead.hide-for-medium-down, thead.hide-for-large-only, thead.show-for-large-up, thead.hide-for-large, thead.hide-for-large-down, thead.hide-for-xlarge-only, thead.show-for-xlarge-up, thead.hide-for-xlarge, thead.hide-for-xlarge-down, thead.show-for-xxlarge-only, thead.show-for-xxlarge-up, thead.show-for-xxlarge, thead.show-for-xxlarge-down {
+    display: table-header-group !important; }
+  tbody.hide-for-small-only, tbody.show-for-small-up, tbody.hide-for-small, tbody.hide-for-small-down, tbody.hide-for-medium-only, tbody.show-for-medium-up, tbody.hide-for-medium, tbody.hide-for-medium-down, tbody.hide-for-large-only, tbody.show-for-large-up, tbody.hide-for-large, tbody.hide-for-large-down, tbody.hide-for-xlarge-only, tbody.show-for-xlarge-up, tbody.hide-for-xlarge, tbody.hide-for-xlarge-down, tbody.show-for-xxlarge-only, tbody.show-for-xxlarge-up, tbody.show-for-xxlarge, tbody.show-for-xxlarge-down {
+    display: table-row-group !important; }
+  tr.hide-for-small-only, tr.show-for-small-up, tr.hide-for-small, tr.hide-for-small-down, tr.hide-for-medium-only, tr.show-for-medium-up, tr.hide-for-medium, tr.hide-for-medium-down, tr.hide-for-large-only, tr.show-for-large-up, tr.hide-for-large, tr.hide-for-large-down, tr.hide-for-xlarge-only, tr.show-for-xlarge-up, tr.hide-for-xlarge, tr.hide-for-xlarge-down, tr.show-for-xxlarge-only, tr.show-for-xxlarge-up, tr.show-for-xxlarge, tr.show-for-xxlarge-down {
+    display: table-row; }
+  th.hide-for-small-only, td.hide-for-small-only, th.show-for-small-up, td.show-for-small-up, th.hide-for-small, td.hide-for-small, th.hide-for-small-down, td.hide-for-small-down, th.hide-for-medium-only, td.hide-for-medium-only, th.show-for-medium-up, td.show-for-medium-up, th.hide-for-medium, td.hide-for-medium, th.hide-for-medium-down, td.hide-for-medium-down, th.hide-for-large-only, td.hide-for-large-only, th.show-for-large-up, td.show-for-large-up, th.hide-for-large, td.hide-for-large, th.hide-for-large-down, td.hide-for-large-down, th.hide-for-xlarge-only, td.hide-for-xlarge-only, th.show-for-xlarge-up, td.show-for-xlarge-up, th.hide-for-xlarge, td.hide-for-xlarge, th.hide-for-xlarge-down, td.hide-for-xlarge-down, th.show-for-xxlarge-only, td.show-for-xxlarge-only, th.show-for-xxlarge-up, td.show-for-xxlarge-up, th.show-for-xxlarge, td.show-for-xxlarge, th.show-for-xxlarge-down, td.show-for-xxlarge-down {
+    display: table-cell !important; } }
+
+/* Orientation targeting */
+.show-for-landscape, .hide-for-portrait {
+  display: inherit !important; }
+
+.hide-for-landscape, .show-for-portrait {
+  display: none !important; }
+
+/* Specific visibility for tables */
+table.hide-for-landscape, table.show-for-portrait {
+  display: table !important; }
+
+thead.hide-for-landscape, thead.show-for-portrait {
+  display: table-header-group !important; }
+
+tbody.hide-for-landscape, tbody.show-for-portrait {
+  display: table-row-group !important; }
+
+tr.hide-for-landscape, tr.show-for-portrait {
+  display: table-row !important; }
+
+td.hide-for-landscape, td.show-for-portrait, th.hide-for-landscape, th.show-for-portrait {
+  display: table-cell !important; }
+
+@media only screen and (orientation: landscape) {
+  .show-for-landscape, .hide-for-portrait {
+    display: inherit !important; }
+  .hide-for-landscape, .show-for-portrait {
+    display: none !important; }
+  /* Specific visibility for tables */
+  table.show-for-landscape, table.hide-for-portrait {
+    display: table !important; }
+  thead.show-for-landscape, thead.hide-for-portrait {
+    display: table-header-group !important; }
+  tbody.show-for-landscape, tbody.hide-for-portrait {
+    display: table-row-group !important; }
+  tr.show-for-landscape, tr.hide-for-portrait {
+    display: table-row !important; }
+  td.show-for-landscape, td.hide-for-portrait, th.show-for-landscape, th.hide-for-portrait {
+    display: table-cell !important; } }
+
+@media only screen and (orientation: portrait) {
+  .show-for-portrait, .hide-for-landscape {
+    display: inherit !important; }
+  .hide-for-portrait, .show-for-landscape {
+    display: none !important; }
+  /* Specific visibility for tables */
+  table.show-for-portrait, table.hide-for-landscape {
+    display: table !important; }
+  thead.show-for-portrait, thead.hide-for-landscape {
+    display: table-header-group !important; }
+  tbody.show-for-portrait, tbody.hide-for-landscape {
+    display: table-row-group !important; }
+  tr.show-for-portrait, tr.hide-for-landscape {
+    display: table-row !important; }
+  td.show-for-portrait, td.hide-for-landscape, th.show-for-portrait, th.hide-for-landscape {
+    display: table-cell !important; } }
+
+/* Touch-enabled device targeting */
+.show-for-touch {
+  display: none !important; }
+
+.hide-for-touch {
+  display: inherit !important; }
+
+.touch .show-for-touch {
+  display: inherit !important; }
+
+.touch .hide-for-touch {
+  display: none !important; }
+
+/* Specific visibility for tables */
+table.hide-for-touch {
+  display: table !important; }
+
+.touch table.show-for-touch {
+  display: table !important; }
+
+thead.hide-for-touch {
+  display: table-header-group !important; }
+
+.touch thead.show-for-touch {
+  display: table-header-group !important; }
+
+tbody.hide-for-touch {
+  display: table-row-group !important; }
+
+.touch tbody.show-for-touch {
+  display: table-row-group !important; }
+
+tr.hide-for-touch {
+  display: table-row !important; }
+
+.touch tr.show-for-touch {
+  display: table-row !important; }
+
+td.hide-for-touch {
+  display: table-cell !important; }
+
+.touch td.show-for-touch {
+  display: table-cell !important; }
+
+th.hide-for-touch {
+  display: table-cell !important; }
+
+.touch th.show-for-touch {
+  display: table-cell !important; }
+
+/* Screen reader-specific classes */
+.show-for-sr {
+  clip: rect(1px, 1px, 1px, 1px);
+  height: 1px;
+  overflow: hidden;
+  position: absolute !important;
+  width: 1px; }
+
+.show-on-focus {
+  clip: rect(1px, 1px, 1px, 1px);
+  height: 1px;
+  overflow: hidden;
+  position: absolute !important;
+  width: 1px; }
+  .show-on-focus:focus, .show-on-focus:active {
+    position: static !important;
+    height: auto;
+    width: auto;
+    overflow: visible;
+    clip: auto; }
+
+/* Print visibility */
+.print-only, .show-for-print {
+  display: none !important; }
+
+@media print {
+  .print-only, .show-for-print {
+    display: block !important; }
+  .hide-on-print, .hide-for-print {
+    display: none !important; }
+  table.show-for-print {
+    display: table !important; }
+  thead.show-for-print {
+    display: table-header-group !important; }
+  tbody.show-for-print {
+    display: table-row-group !important; }
+  tr.show-for-print {
+    display: table-row !important; }
+  td.show-for-print {
+    display: table-cell !important; }
+  th.show-for-print {
+    display: table-cell !important; } }
+
+/* 
+    Created on : Mar 5, 2015, 2:57:35 PM
+    Author     : laury
+*/
+img.aligncenter {
+  display: block;
+  clear: both;
+  float: none;
+  padding: 0;
+  margin-left: auto;
+  margin-right: auto; }
+
+img.alignright {
+  padding: 0;
+  margin: 0 0 6px 11px;
+  display: inline; }
+
+blockquote.alignleft, img.alignleft, .wp-caption.alignleft {
+  margin: 0.4375rem 2.1875rem 0.4375rem 0; }
+
+blockquote.alignright, img.alignright, .wp-caption.alignright {
+  margin: 0.4375rem 0 0.4375rem 2.1875rem; }
+
+img.alignleft {
+  padding: 0;
+  display: inline; }
+
+.alignright {
+  float: right; }
+
+.alignnone {
+  float: none; }
+
+.alignleft {
+  float: left; }
+
+.wp-caption {
+  width: auto; }
+
+.wp-caption-text {
+  font-family: Open Sans, sans-serif;
+  font-size: 9px;
+  color: #FFFFFF;
+  font-style: italic;
+  margin: 0;
+  padding: 0 5px; }
+
+.gallery-one-title {
+  height: 45px;
+  font-size: 0.8em;
+  text-align: center;
+  font-family: sans-serif;
+  padding: 5px; }
+
+.gallery-holder {
+  margin: 10px 0 20px 0; }
+
+@media 0em, 40em {
+  img.alignright, img.alignleft, img.aligncenter {
+    width: 70% !important;
+    display: block;
+    margin-left: auto;
+    margin-right: auto;
+    float: none;
+    text-align: center; }
+  div.wp-caption.alignright, div.wp-caption.alignleft {
+    width: 44% !important;
+    margin-left: auto;
+    margin-right: auto;
+    float: none;
+    text-align: center; }
+  div.wp-caption.aligncenter {
+    width: 85% !important;
+    margin-left: auto;
+    margin-right: auto;
+    float: none;
+    text-align: center; }
+  div.wp-caption.alignnone {
+    width: 85% !important;
+    float: none; }
+  div.wp-caption.alignright, div.wp-caption.alignleft, div.wp-caption.aligncenter {
+    width: 100%; } }
+
+@media 40.063em, 64em {
+  img.aligncenter, img.alignnone {
+    width: 70% !important;
+    display: block;
+    margin-left: auto;
+    margin-right: auto;
+    float: none;
+    text-align: center; }
+  div.wp-caption.aligncenter {
+    width: 74% !important;
+    margin-left: auto;
+    margin-right: auto;
+    float: none;
+    text-align: center; }
+  div.wp-caption.aligncenter {
+    width: 100%; }
+  div.wp-caption.alignnone {
+    width: 73% !important;
+    float: none; } }
+
+.wp-caption {
+  max-width: 100%;
+  margin: 10px 20px;
+  padding: 5px;
+  text-align: center; }
+  .wp-caption img {
+    width: 100%; }
+  .wp-caption p.wp-caption-text {
+    padding: 5px;
+    width: 100%;
+    margin: 0;
+    color: black;
+    font-size: 12px; }
+  .wp-caption.aligncenter {
+    margin: 10px auto; }
+
+@media only screen and (max-width: 40em) {
+  #blog-posts-over {
+    padding: 0 !important;
+    margin: 0 !important; } }
+
+.blog-posts-container {
+  margin: 30px 0 30px; }
+  .blog-posts-container embed, .blog-posts-container iframe, .blog-posts-container object, .blog-posts-container video {
+    max-width: 100%; }
+  .blog-posts-container a {
+    text-decoration: none; }
+  .blog-posts-container header.entry-header h2.entry-title a {
+    color: #222;
+    margin-left: 0; }
+  .blog-posts-container .wp-caption .wp-caption-text, .blog-posts-container .gallery-caption, .blog-posts-container .entry-caption {
+    overflow: hidden;
+    color: #757575;
+    font-size: 0.857143rem;
+    font-style: italic;
+    line-height: 2; }
+  .blog-posts-container .date {
+    font-size: 12px; }
+  .blog-posts-container footer.entry-meta {
+    color: #757575;
+    font-size: 0.928571rem;
+    line-height: 1.84615;
+    margin-top: 1.71429rem;
+    clear: both;
+    float: none;
+    margin-right: auto; }
+  .blog-posts-container footer {
+    background: none;
+    clear: both;
+    padding: 15px 0 0;
+    position: relative;
+    text-align: center; }
+
+#content-wrapper h1, #content-wrapper h2, #content-wrapper h3, #content-wrapper h4, #content-wrapper h5, #content-wrapper h6 {
+  clear: both; }
+
+.content {
+  background: #fff;
+  /*    -webkit-box-shadow: 5px 5px 10px 0px rgba(0,0,0,0.75);
+    -moz-box-shadow: 5px 5px 10px 0px rgba(0,0,0,0.75);
+    box-shadow: 5px 5px 10px 0px rgba(0,0,0,0.75);*/
+  box-shadow: 3px 3px 8px -1px darkgrey; }
+
+#searchform_container {
+  margin-top: 20px; }
+
+#searchform {
+  max-width: 100%;
+  text-align: center; }
+  #searchform div input.blogbutton {
+    background: -webkit-linear-gradient(left, #1999ce 5%, #107098 100%);
+    background: -moz-linear-gradient(center top, #1999ce 5%, #107098 100%);
+    background: -ms-linear-gradient(left, #1999ce 5%, #107098 100%); }
+
+#blog-side-info {
+  border-left: 1px solid grey;
+  margin-top: 30px;
+  padding-left: 20px; }
+  @media only screen and (max-width: 40em) {
+    #blog-side-info {
+      text-align: center; } }
+
+h1, h2, h3, h4, h5, h6 {
+  clear: both; }
+
+/* PLUGINS */
+/* Nextgen */
+.gallery li a img {
+  display: block;
+  width: 100%; }
+
+.ngg-gallery-thumbnail, .ngg-gallery-thumbnail-box {
+  float: none !important; }
+
+.ngg-album-compact h4 .ngg-album-desc {
+  height: auto !important;
+  font-family: Georgia, Cambria, "Times New Roman", Times, serif;
+  font-weight: 400; }
+
+.ngg-album-compact .album-meta-wrapper h4 a {
+  font-style: normal; }
+
+.album-meta-wrapper {
+  display: block;
+  height: 54px;
+  margin-bottom: 20px; }
+
+.ngg-glmalbums {
+  margin: 10px 0;
+  min-height: 260px; }
+  @media only screen and (max-width: 40em) {
+    .ngg-glmalbums {
+      min-height: 180px; } }
+
+.ngg-album-link {
+  text-align: center; }
+
+/* Ninja Forms */
+.ninja-forms-form-wrap {
+  max-width: 600px;
+  margin: 0 auto; }
+  .ninja-forms-form-wrap input[type=submit] {
+    -webkit-appearance: none;
+    -moz-appearance: none;
+    border-radius: 0;
+    border-style: solid;
+    border-width: 0;
+    cursor: pointer;
+    font-family: "Open Sans", sans-serif;
+    font-weight: normal;
+    line-height: normal;
+    margin: 0 0 1.25rem;
+    position: relative;
+    text-align: center;
+    text-decoration: none;
+    display: inline-block;
+    padding: 1rem 2rem 1.0625rem 2rem;
+    font-size: 1rem;
+    background-color: #008CBA;
+    border-color: #007095;
+    color: #FFFFFF;
+    transition: background-color 300ms ease-out;
+    display: block;
+    margin: 0 auto; }
+    .ninja-forms-form-wrap input[type=submit]:hover, .ninja-forms-form-wrap input[type=submit]:focus {
+      background-color: #007095; }
+    .ninja-forms-form-wrap input[type=submit]:hover, .ninja-forms-form-wrap input[type=submit]:focus {
+      color: #FFFFFF; }
+
+/* For fixing cellphones not showing phone numbers because of /helpful/ auto-coloring */
+a[href^=tel] {
+  color: inherit;
+  text-decoration: none; }
+
+body .shadow-wrapper {
+  margin: 0 auto;
+  background: #FFFFFF;
+  box-shadow: 0 0 15px -6px #000000;
+  -ms-box-shadow: 0 0 15px -6px #000000;
+  -moz-box-shadow: 0 0 15px -6px #000000;
+  -webkit-box-shadow: 0 0 15px -6px #000000;
+  max-width: 1000px;
+  padding-top: 1.25rem; }
+
+#header-separator {
+  height: auto;
+  background-color: #486b71;
+  color: #FFFFFF;
+  width: 100%;
+  text-align: center;
+  padding: 5px 0 20px; }
+  #header-separator > * {
+    max-width: 1024px;
+    margin: 0 auto;
+    float: none; }
+  #header-separator h1 {
+    color: #FFFFFF;
+    font-weight: bold;
+    text-transform: uppercase;
+    letter-spacing: 1px;
+    line-height: 1.8; }
+  #header-separator p {
+    color: #f5ad1a;
+    font-size: 18px;
+    line-height: 1.2; }
+
+header {
+  list-style: none;
+  max-height: 600px;
+  height: auto; }
+  header #logo img {
+    margin-bottom: 15px; }
+  header .search input {
+    height: 20px;
+    width: 167px;
+    padding: 0 8px;
+    margin: 13px 0px 0px 18px;
+    border-radius: 3px;
+    font-size: 10px;
+    color: #000000;
+    display: inline-block; }
+  header .search a.magnifying-glass {
+    font-size: 10em;
+    /* This controls the size. */
+    display: inline-block;
+    width: 0.625rem;
+    height: 0.625rem;
+    border: 0.125rem solid #131c5f;
+    position: relative;
+    border-radius: 0.35em;
+    margin: 0 0 0 -25px; }
+    header .search a.magnifying-glass:before {
+      content: "";
+      display: inline-block;
+      position: absolute;
+      right: -0.4375rem;
+      bottom: -0.25rem;
+      border-width: 0;
+      background: #131c5f;
+      width: 0.5rem;
+      height: 0.125rem;
+      -webkit-transform: rotate(45deg);
+      -moz-transform: rotate(45deg);
+      -ms-transform: rotate(45deg);
+      transform: rotate(45deg); }
+  header #sec-nav {
+    position: relative;
+    text-align: left;
+    padding: 10px 0;
+    margin: 0 0 15px 45px; }
+    header #sec-nav ul {
+      margin: 0; }
+      header #sec-nav ul li {
+        display: inline; }
+        header #sec-nav ul li a {
+          font-size: 12px;
+          color: #131c5f;
+          padding: 0 5px;
+          font-weight: bold; }
+    header #sec-nav > ul > li {
+      position: relative; }
+      header #sec-nav > ul > li:before {
+        color: #999999;
+        content: "|";
+        position: absolute;
+        top: 2px;
+        left: -15px;
+        font-size: 14px;
+        font-weight: bold;
+        display: block;
+        padding: 0 10px; }
+      header #sec-nav > ul > li:first-child:before {
+        content: none; }
+  header img {
+    margin-left: 5px; }
+  header .social {
+    margin-top: -25px;
+    padding-right: 0; }
+    header .social a {
+      float: right;
+      margin: 0 5px; }
+      header .social a img {
+        margin: 0; }
+
+.contain-to-grid {
+  box-shadow: 0 5px 10px -1px #999999; }
+  .contain-to-grid .top-bar {
+    height: 73px;
+    box-shadow: 0 3px 3px 0 rgba(0, 0, 0, 0.5);
+    margin-bottom: 10px; }
+
+.tab-bar .tab-bar-section.middle {
+  text-align: right; }
+
+#top-bar-wrapper {
+  position: absolute;
+  top: 0;
+  width: 100%; }
+
+#top-bar-logo {
+  position: absolute;
+  left: -10px;
+  top: 20px;
+  z-index: 9; }
+
+.top-bar {
+  background: transparent;
+  width: 1024px;
+  margin: 0 auto;
+  padding-top: 100px; }
+  .top-bar .top-bar-section {
+    background: transparent;
+    border-radius: 4px;
+    float: right;
+    margin-left: auto;
+    margin-right: auto;
+    display: inline-block;
+    height: auto;
+    line-height: 1; }
+    .top-bar .top-bar-section:before {
+      background-image: url("../wp-content/themes/keweenaw2017/assets/keweenaw-logo.png"); }
+    .top-bar .top-bar-section > ul > li:not(.has-form) {
+      background-color: #dfccae; }
+      .top-bar .top-bar-section > ul > li:not(.has-form) > a:not(.button) {
+        color: #486b71;
+        font-size: 22px;
+        font-weight: bold;
+        padding: 6px 20px; }
+    .top-bar .top-bar-section ul li:not(.has-form):not(.active) > a:not(.button) {
+      background: transparent; }
+    .top-bar .top-bar-section ul li ul.dropdown li a {
+      border-top-left-radius: 0;
+      border-top-right-radius: 0;
+      text-align: left; }
+    .top-bar .top-bar-section ul li ul.dropdown li:not(.has-form):not(.active) > a:not(.button) {
+      font-size: 1.25rem;
+      padding: 10px 14px; }
+    .top-bar .top-bar-section ul li ul.dropdown li.active:not(.has-form) > a:not(.button) {
+      padding: 10px 14px; }
+    .top-bar .top-bar-section ul li.drop-left ul.dropdown {
+      right: -1%;
+      left: auto; }
+      .top-bar .top-bar-section ul li.drop-left ul.dropdown li a {
+        text-align: left; }
+
+.breadcrumbs {
+  margin-top: 10px; }
+
+#content-bulk #con {
+  margin: 0; }
+#content-bulk h2 {
+  text-transform: uppercase;
+  font-size: 25px; }
+#content-bulk footer {
+  margin: 35px 0; }
+  #content-bulk footer #address {
+    margin-top: 25px; }
+    #content-bulk footer #address p {
+      font-size: 12px;
+      margin-top: 5px; }
+    #content-bulk footer #address img {
+      margin: 0;
+      padding-right: 5px; }
+    #content-bulk footer #address a {
+      font-size: 12px; }
+  #content-bulk footer img {
+    box-shadow: none; }
+
+.st_sharethis {
+  float: right;
+  width: 58px; }
+
+body .stButton .sharethis {
+  background-image: url("../assets/share-icon.png") !important;
+  width: 52px;
+  height: 22px; }
+
+#slideshow #caption {
+  background: rgba(0, 0, 0, 0.75);
+  color: #FFFFFF;
+  margin-top: -51px; }
+  #slideshow #caption p {
+    padding: 10px 5px;
+    font-size: 12px;
+    margin: 0;
+    text-align: right; }
+
+/* NextGen Gallery */
+.ngg-gallery-thumbnail, .ngg-gallery-thumbnail-box {
+  float: none !important; }
+
+.gallery li a img {
+  display: block;
+  width: 100%; }
+
+.ngg-gallery-thumbnail, .ngg-gallery-thumbnail-box {
+  float: none !important; }
+
+.ngg-album-compact h4 .ngg-album-desc {
+  height: auto !important;
+  font-family: Georgia, Cambria, "Times New Roman", Times, serif;
+  font-weight: 400; }
+
+.ngg-album-compact .album-meta-wrapper h4 a {
+  font-style: normal; }
+
+.album-meta-wrapper {
+  display: block;
+  height: 54px;
+  margin-bottom: 20px; }
+
+.ngg-glmalbums {
+  margin: 10px 0; }
+
+/* Ninja Forms */
+.ninja-forms-form-wrap {
+  max-width: 600px;
+  margin: 0 auto; }
+  .ninja-forms-form-wrap input[type=submit] {
+    -webkit-appearance: none;
+    -moz-appearance: none;
+    border-radius: 0;
+    border-style: solid;
+    border-width: 0;
+    cursor: pointer;
+    font-family: "Open Sans", sans-serif;
+    font-weight: normal;
+    line-height: normal;
+    margin: 0 0 1.25rem;
+    position: relative;
+    text-align: center;
+    text-decoration: none;
+    display: inline-block;
+    padding: 1rem 2rem 1.0625rem 2rem;
+    font-size: 1rem;
+    background-color: #008CBA;
+    border-color: #007095;
+    color: #FFFFFF;
+    transition: background-color 300ms ease-out;
+    display: block;
+    margin: 0 auto; }
+    .ninja-forms-form-wrap input[type=submit]:hover, .ninja-forms-form-wrap input[type=submit]:focus {
+      background-color: #007095; }
+    .ninja-forms-form-wrap input[type=submit]:hover, .ninja-forms-form-wrap input[type=submit]:focus {
+      color: #FFFFFF; }
+
+/* End NextGen Gallery */
+#blog-posts-over article.ai1ec_event {
+  padding: 10px; }
+
+/* These are the basic styles for calendar, there are several others that can be added from the calendar's mark up. 
+   These styles are primarily for the buttons, columns headers, and the over all calendar body. More selectors will 
+   be necessary when getting deeper into the calendar's mark up to style elements
+*/
+#eventCalendar {
+  /* contains all of the buttons above the calendar, on left and right */
+  /* entire calendar body */ }
+  #eventCalendar .fc-toolbar {
+    /* apply button styles here to affect all of the calendar buttons */
+    /* currently selected button styles */
+    /* affect only today, prev and next buttons (buttons on the above the left side of the calendar*/
+    /* affect only month, week, day buttons (buttons above the right side of the calendar) */
+    /* Calendar Title / Current Month or Date */ }
+  #eventCalendar .fc-view-container {
+    /* dates, days or months at the top of each column (sun, mon, tue, wed, thur, fri, sat) */ }
+
+.home-feed-post {
+  padding-bottom: 25px; }
+
+input[type="submit"].blogbutton {
+  border-radius: 3px;
+  color: #FFFFFF;
+  border: 2px solid #FFFFFF;
+  font-weight: bold;
+  font-size: 13px;
+  padding: 2px 5px;
+  margin-top: -10px;
+  text-transform: uppercase; }
+  input[type="submit"].blogbutton:hover {
+    cursor: pointer;
+    background: #FFFFFF;
+    border: 2px solid #035C84;
+    color: white; }
+
+#blog-posts-over article {
+  padding-top: 10px;
+  margin-bottom: 15px;
+  display: inline-block;
+  width: 100%; }
+  #blog-posts-over article .entry-header {
+    background: transparent; }
+  #blog-posts-over article #addthis_wrapper {
+    margin-top: -25px; }
+  #blog-posts-over article p {
+    padding-bottom: 15px; }
+  #blog-posts-over article a.read-more {
+    border: 2px solid #FFFFFF;
+    font-weight: bold;
+    font-size: 13px;
+    padding: 0 3px;
+    text-transform: uppercase; }
+    #blog-posts-over article a.read-more:hover {
+      background: #FFFFFF;
+      border: 2px solid #035C84;
+      color: #035C84; }
+  #blog-posts-over article .entry-header {
+    margin-bottom: 10px; }
+    #blog-posts-over article .entry-header .entry-title {
+      margin-bottom: 0; }
+    #blog-posts-over article .entry-header .meta.date {
+      font-size: 13px;
+      font-weight: bold; }
+
+/*#searchform div input &[type="text"] {
+    width: 95%;
+}*/
+#blog-posts-over .entry-meta {
+  text-align: center;
+  color: #757575;
+  font-size: 12px; }
+
+#blog-posts-over > div {
+  margin: 25px 0; }
+
+#blog-side-info #searchform {
+  margin-bottom: 30px; }
+#blog-side-info p {
+  margin-bottom: 0; }
+
+@media only screen and (max-width: 40em) {
+  #blog-side-info-wrapper {
+    float: none;
+    margin: 0 auto;
+    clear: both; }
+  #blog-side-info {
+    padding-left: 0;
+    border-left: 0; }
+    #blog-side-info ul {
+      margin-left: 0;
+      margin-top: 10px; }
+    #blog-side-info #searchform {
+      padding: 35px 0; }
+      #blog-side-info #searchform #s {
+        width: 100%; } }
+
+#blog-side-info {
+  padding-right: 10px; }
+  #blog-side-info ul {
+    list-style-type: none; }
+
+.blog-archive .featured-image-wrap, .blog-home .featured-image-wrap {
+  display: none; }
+
+#sidebar {
+  padding-top: 25px;
+  background: #f2f9fc; }
+  #sidebar .row.collapse {
+    margin-left: 14px; }
+  #sidebar li {
+    list-style: none; }
+    #sidebar li #calendar_wrap table#wp-calendar {
+      margin: 0 auto; }
+  #sidebar a {
+    font-size: 12px; }
+  #sidebar form {
+    margin: 0 12px 0 14px; }
+    #sidebar form select {
+      padding: 0 0.5rem;
+      border-radius: 5px;
+      height: 25px;
+      margin: 0; }
+      #sidebar form select option {
+        font-size: 10px; }
+  #sidebar .small-block-grid-2 {
+    margin-top: 10px; }
+    #sidebar .small-block-grid-2 li {
+      padding: 0 0.625rem 0.625rem; }
+      #sidebar .small-block-grid-2 li img {
+        border: 2px solid lightblue; }
+    #sidebar .small-block-grid-2 > li:nth-of-type(2), #sidebar .small-block-grid-2 > li:nth-of-type(4) {
+      padding-left: 0; }
+    #sidebar .small-block-grid-2 > li:nth-of-type(3), #sidebar .small-block-grid-2 > li:nth-of-type(4) {
+      padding-bottom: 20px; }
+  #sidebar h3 {
+    margin: 20px 0 0; }
+  #sidebar h1 {
+    margin: 0;
+    font-size: 1.5625rem;
+    text-transform: none; }
+  #sidebar input {
+    padding: 5px 0 5px 8px;
+    height: auto;
+    margin: 10px 0; }
+  #sidebar button {
+    border-radius: 2px;
+    padding: 0 10px; }
+
+#side-nav {
+  padding-top: 10px;
+  background: #f2f9fc; }
+  #side-nav h1 {
+    font-size: 1.375rem;
+    /*        margin: 5px 0 25px;*/ }
+  #side-nav h4 {
+    font-weight: bold;
+    margin-left: 10px; }
+  #side-nav li {
+    list-style: none; }
+  #side-nav ul {
+    list-style: none;
+    margin: 0 0 20px; }
+    #side-nav ul li {
+      margin: 0 -15px;
+      padding: 5px 10px 5px 25px; }
+      #side-nav ul li:hover {
+        background: #81adc1; }
+      #side-nav ul li a {
+        color: darkblue; }
+        #side-nav ul li a:hover {
+          color: #FFFFFF; }
+  #side-nav h3 {
+    text-transform: none;
+    margin: 0; }
+  #side-nav input {
+    padding: 5px 0 5px 8px;
+    height: auto;
+    margin-bottom: 10px; }
+  #side-nav button {
+    border-radius: 2px;
+    padding: 0 10px; }
+
+#extra {
+  margin-top: 15px; }
+  #extra p {
+    line-height: 1.3; }
+    #extra p.title {
+      margin: 0; }
+      #extra p.title#last {
+        padding-top: 10px; }
+    #extra p#message {
+      text-transform: uppercase;
+      color: lightblue;
+      font-size: 0.9375rem;
+      margin: 40px 0; }
+
+.county-news {
+  font-weight: bold; }
+
+.current_page_item a {
+  font-weight: bold; }
+
+.search-top #searchform {
+  text-align: left;
+  display: inline-block;
+  position: relative; }
+  .search-top #searchform #search-button {
+    width: 22px;
+    right: 0px;
+    position: absolute;
+    padding: 0;
+    border: 1px solid lightgray; }
+.search-top input {
+  height: 20px;
+  width: 167px;
+  padding: 0 8px;
+  margin: 13px 0px 0px 18px;
+  border-radius: 3px;
+  font-size: 10px;
+  color: #000000;
+  display: inline-block; }
+.search-top a.magnifying-glass {
+  font-size: 10em;
+  /* This controls the size. */
+  width: 0.75rem;
+  height: 0.75rem;
+  border: 0.125rem solid darkblue;
+  position: absolute;
+  top: 15px;
+  border-radius: 0.35em;
+  margin: 0 0 0 -20px; }
+  .search-top a.magnifying-glass:before {
+    content: "";
+    display: inline-block;
+    position: absolute;
+    right: -0.4375rem;
+    bottom: -0.25rem;
+    border-width: 0;
+    background: darkblue;
+    width: 0.5rem;
+    height: 0.125rem;
+    -webkit-transform: rotate(45deg);
+    -moz-transform: rotate(45deg);
+    -ms-transform: rotate(45deg);
+    transform: rotate(45deg); }
+
+.search-results #blog-posts-over .search-result-container header.entry-header {
+  margin-bottom: 0px; }
+.search-results #blog-posts-over .search-result-container .search_result_context {
+  margin: 0;
+  padding: 0;
+  line-height: 1.3; }
+.search-results #blog-posts-over .search-result-container article p {
+  margin: 0;
+  padding: 0; }
+
+footer.main {
+  position: absolute;
+  bottom: 0;
+  left: 0;
+  right: 0; }
+  @media only screen and (max-width: 1024px) {
+    footer.main {
+      position: relative;
+      bottom: 0; } }
+
+#footer_address span {
+  white-space: nowrap; }
+
+#connect {
+  padding-top: 20px;
+  background: #4c4d4f; }
+  #connect ul {
+    margin: 0;
+    list-style: none; }
+    #connect ul li {
+      background: none;
+      padding: 0 5px;
+      display: inline-block; }
+      #connect ul li > a {
+        display: block;
+        font-family: Open Sans, sans-serif;
+        font-size: 12px;
+        color: #fff;
+        padding: 20px 18px;
+        line-height: 1.2; }
+      #connect ul li a#current {
+        background: #0093d1; }
+
+#copyright {
+  padding: 20px 0;
+  margin: 0 auto;
+  float: none; }
+  #copyright span {
+    font-size: 0.625rem; }
+  #copyright a {
+    color: #000000; }
+
+#footer_address span.bullet, #copyright span.bullet {
+  margin: 0 5px; }
+  @media only screen and (max-width: 40em) {
+    #footer_address span.bullet, #copyright span.bullet {
+      display: none !important; } }
+
+.off-canvas-wrap {
+  min-height: 100%; }
+  .off-canvas-wrap .inner-wrap {
+    min-height: 100vh;
+    height: 100%; }
+
+#example.element {
+  background-color: transparent; }
+
+/* for the mobile menu */
+aside.left-off-canvas-menu li.page_item {
+  display: block;
+  overflow: hidden;
+  position: relative;
+  padding: 4px 8px; }
+
+aside.left-off-canvas-menu .off-canvas-list ul li a {
+  line-height: 20px;
+  color: white;
+  border-bottom: 1px solid #b1b3b6;
+  background-repeat: no-repeat;
+  background-position: 3px 50%; }
+
+aside.left-off-canvas-menu li.page_item_has_children a.toggle {
+  position: absolute;
+  right: 10px;
+  top: 5px;
+  width: auto;
+  text-decoration: none; }
+  aside.left-off-canvas-menu li.page_item_has_children a.toggle:before {
+    content: '>';
+    transform: rotate(0deg);
+    color: #FFFFFF;
+    height: 17px;
+    width: 17px;
+    font-size: 17px;
+    font-weight: bold;
+    display: block; }
+  aside.left-off-canvas-menu li.page_item_has_children a.toggle:hover {
+    background: transparent; }
+
+aside.left-off-canvas-menu li.page_item_has_children a.toggle.open {
+  content: '>';
+  transform: rotate(90deg);
+  color: #FFFFFF;
+  height: 1rem;
+  width: 1rem;
+  font-size: 1rem;
+  font-weight: bold;
+  display: block; }
+
+aside.left-off-canvas-menu ul.children {
+  display: none; }
+
+aside.left-off-canvas-menu .off-canvas-list ul li > ul li > a {
+  padding-left: 10px;
+  margin-left: 25px;
+  line-height: 18px; }
+
+aside.left-off-canvas-menu ul.open {
+  display: block; }
+
+.left-off-canvas-menu {
+  list-style: none; }
+  .left-off-canvas-menu li a {
+    color: #FFFFFF;
+    font-size: 1rem;
+    line-height: 1.2;
+    border-color: white;
+    margin-bottom: 5px; }
+  .left-off-canvas-menu li a:hover {
+    color: black; }
+  .left-off-canvas-menu li .dropdown {
+    list-style: none; }
+  .left-off-canvas-menu ul {
+    list-style: none;
+    padding: 10px 0; }
+    .left-off-canvas-menu ul li a {
+      color: #FFFFFF; }
+    .left-off-canvas-menu ul li ul {
+      list-style: none; }
+      .left-off-canvas-menu ul li ul li a {
+        width: 85%;
+        display: block;
+        white-space: pre-wrap; }
+
+.offcavas-social-list {
+  list-style: none;
+  margin-top: 0;
+  margin-bottom: 1.0625rem;
+  margin-left: -1.375rem;
+  margin-right: 0;
+  overflow: hidden;
+  padding: 0;
+  margin-left: auto; }
+  .offcavas-social-list > li {
+    display: block;
+    float: left;
+    list-style: none;
+    margin-left: 1.375rem; }
+    .offcavas-social-list > li > * {
+      display: block; }
+
+/* End Mobile Menu */
+/*# sourceMappingURL=app.css.map */
\ No newline at end of file
diff --git a/css/app.css.map b/css/app.css.map
new file mode 100644 (file)
index 0000000..7e66aca
--- /dev/null
@@ -0,0 +1,73 @@
+{
+       "version": 3,
+       "file": "app.css",
+       "sources": [
+               "../app.scss",
+               "../_settings.scss",
+               "../../bower_components/foundation/scss/foundation.scss",
+               "../_mixins.scss",
+               "../_wordpress.scss",
+               "../_defaults.scss",
+               "../_body.scss",
+               "../_page.header.scss",
+               "../_topbar.scss",
+               "../_main.scss",
+               "../_slideshow.scss",
+               "../_plugins.scss",
+               "../_blog.scss",
+               "../_sidebar.scss",
+               "../_search.scss",
+               "../_page.footer.scss",
+               "../_copyright.scss",
+               "../_structure.scss",
+               "../_left-off-canvas.scss",
+               "../../bower_components/foundation/scss/foundation/_functions.scss",
+               "../../bower_components/foundation/scss/foundation/components/_grid.scss",
+               "../../bower_components/foundation/scss/foundation/components/_accordion.scss",
+               "../../bower_components/foundation/scss/foundation/components/_alert-boxes.scss",
+               "../../bower_components/foundation/scss/foundation/components/_block-grid.scss",
+               "../../bower_components/foundation/scss/foundation/components/_breadcrumbs.scss",
+               "../../bower_components/foundation/scss/foundation/components/_button-groups.scss",
+               "../../bower_components/foundation/scss/foundation/components/_buttons.scss",
+               "../../bower_components/foundation/scss/foundation/components/_clearing.scss",
+               "../../bower_components/foundation/scss/foundation/components/_dropdown.scss",
+               "../../bower_components/foundation/scss/foundation/components/_dropdown-buttons.scss",
+               "../../bower_components/foundation/scss/foundation/components/_flex-video.scss",
+               "../../bower_components/foundation/scss/foundation/components/_forms.scss",
+               "../../bower_components/foundation/scss/foundation/components/_icon-bar.scss",
+               "../../bower_components/foundation/scss/foundation/components/_inline-lists.scss",
+               "../../bower_components/foundation/scss/foundation/components/_joyride.scss",
+               "../../bower_components/foundation/scss/foundation/components/_keystrokes.scss",
+               "../../bower_components/foundation/scss/foundation/components/_labels.scss",
+               "../../bower_components/foundation/scss/foundation/components/_magellan.scss",
+               "../../bower_components/foundation/scss/foundation/components/_orbit.scss",
+               "../../bower_components/foundation/scss/foundation/components/_pagination.scss",
+               "../../bower_components/foundation/scss/foundation/components/_panels.scss",
+               "../../bower_components/foundation/scss/foundation/components/_pricing-tables.scss",
+               "../../bower_components/foundation/scss/foundation/components/_progress-bars.scss",
+               "../../bower_components/foundation/scss/foundation/components/_range-slider.scss",
+               "../../bower_components/foundation/scss/foundation/components/_reveal.scss",
+               "../../bower_components/foundation/scss/foundation/components/_side-nav.scss",
+               "../../bower_components/foundation/scss/foundation/components/_split-buttons.scss",
+               "../../bower_components/foundation/scss/foundation/components/_sub-nav.scss",
+               "../../bower_components/foundation/scss/foundation/components/_switches.scss",
+               "../../bower_components/foundation/scss/foundation/components/_tables.scss",
+               "../../bower_components/foundation/scss/foundation/components/_tabs.scss",
+               "../../bower_components/foundation/scss/foundation/components/_thumbs.scss",
+               "../../bower_components/foundation/scss/foundation/components/_tooltips.scss",
+               "../../bower_components/foundation/scss/foundation/components/_top-bar.scss",
+               "../../bower_components/foundation/scss/foundation/components/_type.scss",
+               "../../bower_components/foundation/scss/foundation/components/_offcanvas.scss",
+               "../../bower_components/foundation/scss/foundation/components/_visibility.scss",
+               "../mixins/_gradient.scss",
+               "../mixins/_off-canvas-arrow.scss",
+               "../plugins/_nextgen.scss",
+               "../plugins/_gravityForms.scss",
+               "../plugins/_events.scss",
+               "../plugins/_fullCalendar.scss",
+               "../../bower_components/foundation/scss/foundation/components/_global.scss"
+       ],
+       "sourcesContent": [],
+       "mappings": "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",
+       "names": []
+}
\ No newline at end of file
index e5f35fc..92ce597 100644 (file)
@@ -73,21 +73,24 @@ function glm_site_scripts()
 
 /* Header for posts*/
 function glm_get_header() {
-    echo '<div';
-
-    if (has_post_thumbnail() && $post->post_type == 'page') {
-            $image_data = wp_get_attachment_image_src(get_post_thumbnail_id(), "full");
-            echo ' style="background-image: url('.$image_data[0].');height:0;padding:0;padding-bottom:20%;background-position:center center;background-size: 100%;background-repeat:no-repeat;max-height: 300px; "';
+    if ( is_front_page() ) {
+        echo "<div id='slideshow'>";
+        if ( is_active_sidebar( 'slideshow' ) ) :
+           dynamic_sidebar( 'slideshow' );
+        endif;
+       echo '</div>';
     } else {
-            //echo ' style="background-image: url('.get_template_directory_uri().'/assets/default-header.gif);height:0;padding:0;padding-bottom:30%;background-position:center center;background-size: 100%;background-repeat:no-repeat;max-height: 300px;"';
-            echo ' class="no-featured"';
+        echo '<div';
+        if (has_post_thumbnail() && $post->post_type == 'page') {
+                $image_data = wp_get_attachment_image_src(get_post_thumbnail_id(), "full");
+                echo ' style="background-image: url('.$image_data[0].');height:0;padding:0;padding-bottom:20%;background-position:center center;background-size: 100%;background-repeat:no-repeat;max-height: 300px; "';
+        } else {
+                //echo ' style="background-image: url('.get_template_directory_uri().'/assets/default-header.gif);height:0;padding:0;padding-bottom:30%;background-position:center center;background-size: 100%;background-repeat:no-repeat;max-height: 300px;"';
+                echo ' class="no-featured"';
+        }
+        echo '>';
+        echo '</div>';
     }
-    echo '>';
-    echo '</div>';
-    echo '<div class="row">';
-    echo '<div class="small-12 columns">';
-    echo '</div>';
-    echo '</div>';
 }
 
 // // The code below is useful when you want the image to resize to
diff --git a/glm-member-db-events/views/front/events/eventsFeed.html b/glm-member-db-events/views/front/events/eventsFeed.html
new file mode 100644 (file)
index 0000000..c5684ca
--- /dev/null
@@ -0,0 +1,35 @@
+{if $events}
+<div class="small-12 medium-9 large-10 columns">
+    <h1>Featured Events</h1>
+</div>
+<div class="small-12 medium-3 large-2 columns">
+    <a href="{$mainEventUrl}"><button class="view-events-btn">VIEW ALL EVENTS</button></a>
+</div>
+<div class="small-12 columns main-events-container">
+    <div id="feed" class="row collapse">
+        {foreach $events as $event}
+        <div class="event small-12 text-left medium-6 large-4 columns">
+            <a href="{$siteBaseUrl}event-detail/{$event.name_slug}/"> <a href="{$siteBaseUrl}event-detail/{$event.name_slug}/"><div style='background: url("{$mainImgUrl}{$event.image}") no-repeat center center;background-size: contain;' class='image-container'></div></a></a>
+            <a class="front-event-link" href="{$siteBaseUrl}event-detail/{$event.name_slug}/"><h6 class="front-event-title">{$event.name}</h6></a>
+    
+            <p>{$event.intro}</p>
+             {foreach from=$event.times key=myId item=i name=time}
+                {if $smarty.foreach.time.first}
+                  
+                    <span class="front-event-date">{$i.start_time.timestamp|date_format:"%b %e"}</span>
+                    {assign var=first value=$i.start_time.timestamp}
+                    
+                {/if}
+                {if $smarty.foreach.time.last}
+                    {if $first != $i.start_time.timestamp}
+                       <span class="front-event-date"> - {$i.start_time.timestamp|date_format:"%b %e"} </span>
+                    {/if}
+                {/if}
+             {/foreach}
+              <a class="front-event-button" href="{$siteBaseUrl}event-detail/{$event.name_slug}/">MORE</a>
+            <div class="event-border"></div>
+        </div>
+        {/foreach}
+    </div>
+</div>
+{/if}
diff --git a/js/app.js b/js/app.js
new file mode 100644 (file)
index 0000000..1481ce2
--- /dev/null
+++ b/js/app.js
@@ -0,0 +1,33 @@
+/*
+ * To avoid conflicts, Wordpress tends to prefer jQuery being used over $.
+ * As long as this file is included, no such conflicts should arise. Ensure it
+ * is called before other .js files using $.
+ */
+var $=jQuery.noConflict();;!function(a,b,c,d){"use strict";function e(a){return("string"==typeof a||a instanceof String)&&(a=a.replace(/^['\\/"]+|(;\s?})+|['\\/"]+$/g,"")),a}function f(a){this.selector=a,this.query=""}var g=function(b){var c=a("head");c.prepend(a.map(b,function(a){return 0===c.has("."+a).length?'<meta class="'+a+'" />':void 0}))};g(["foundation-mq-small","foundation-mq-small-only","foundation-mq-medium","foundation-mq-medium-only","foundation-mq-large","foundation-mq-large-only","foundation-mq-xlarge","foundation-mq-xlarge-only","foundation-mq-xxlarge","foundation-data-attribute-namespace"]),a(function(){"undefined"!=typeof FastClick&&"undefined"!=typeof c.body&&FastClick.attach(c.body)});var h=function(b,d){if("string"==typeof b){if(d){var e;if(d.jquery){if(e=d[0],!e)return d}else e=d;return a(e.querySelectorAll(b))}return a(c.querySelectorAll(b))}return a(b,d)},i=function(a){var b=[];return a||b.push("data"),this.namespace.length>0&&b.push(this.namespace),b.push(this.name),b.join("-")},j=function(a){for(var b=a.split("-"),c=b.length,d=[];c--;)0!==c?d.push(b[c]):this.namespace.length>0?d.push(this.namespace,b[c]):d.push(b[c]);return d.reverse().join("-")},k=function(b,c){var d=this,e=function(){var e=h(this),f=!e.data(d.attr_name(!0)+"-init");e.data(d.attr_name(!0)+"-init",a.extend({},d.settings,c||b,d.data_options(e))),f&&d.events(this)};return h(this.scope).is("["+this.attr_name()+"]")?e.call(this.scope):h("["+this.attr_name()+"]",this.scope).each(e),"string"==typeof b?this[b].call(this,c):void 0},l=function(a,b){function c(){b(a[0])}function d(){if(this.one("load",c),/MSIE (\d+\.\d+);/.test(navigator.userAgent)){var a=this.attr("src"),b=a.match(/\?/)?"&":"?";b+="random="+(new Date).getTime(),this.attr("src",a+b)}}return a.attr("src")?void(a[0].complete||4===a[0].readyState?c():d.call(a)):void c()};/*! matchMedia() polyfill - Test a CSS media type/query in JS. Authors & copyright (c) 2012: Scott Jehl, Paul Irish, Nicholas Zakas, David Knight. Dual MIT/BSD license */
+b.matchMedia||(b.matchMedia=function(){var a=b.styleMedia||b.media;if(!a){var d=c.createElement("style"),e=c.getElementsByTagName("script")[0],f=null;d.type="text/css",d.id="matchmediajs-test",e.parentNode.insertBefore(d,e),f="getComputedStyle"in b&&b.getComputedStyle(d,null)||d.currentStyle,a={matchMedium:function(a){var b="@media "+a+"{ #matchmediajs-test { width: 1px; } }";return d.styleSheet?d.styleSheet.cssText=b:d.textContent=b,"1px"===f.width}}}return function(b){return{matches:a.matchMedium(b||"all"),media:b||"all"}}}()),function(a){function c(){d&&(g(c),i&&a.fx.tick())}for(var d,e=0,f=["webkit","moz"],g=b.requestAnimationFrame,h=b.cancelAnimationFrame,i="undefined"!=typeof a.fx;e<f.length&&!g;e++)g=b[f[e]+"RequestAnimationFrame"],h=h||b[f[e]+"CancelAnimationFrame"]||b[f[e]+"CancelRequestAnimationFrame"];g?(b.requestAnimationFrame=g,b.cancelAnimationFrame=h,i&&(a.fx.timer=function(b){b()&&a.timers.push(b)&&!d&&(d=!0,c())},a.fx.stop=function(){d=!1})):(b.requestAnimationFrame=function(a){var c=(new Date).getTime(),d=Math.max(0,16-(c-e)),f=b.setTimeout(function(){a(c+d)},d);return e=c+d,f},b.cancelAnimationFrame=function(a){clearTimeout(a)})}(a),f.prototype.toString=function(){return this.query||(this.query=h(this.selector).css("font-family").replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g,""))},b.Foundation={name:"Foundation",version:"5.5.3",media_queries:{small:new f(".foundation-mq-small"),"small-only":new f(".foundation-mq-small-only"),medium:new f(".foundation-mq-medium"),"medium-only":new f(".foundation-mq-medium-only"),large:new f(".foundation-mq-large"),"large-only":new f(".foundation-mq-large-only"),xlarge:new f(".foundation-mq-xlarge"),"xlarge-only":new f(".foundation-mq-xlarge-only"),xxlarge:new f(".foundation-mq-xxlarge")},stylesheet:a("<style></style>").appendTo("head")[0].sheet,global:{namespace:d},init:function(a,c,d,e,f){var g=[a,d,e,f],i=[];if(this.rtl=/rtl/i.test(h("html").attr("dir")),this.scope=a||this.scope,this.set_namespace(),c&&"string"==typeof c&&!/reflow/i.test(c))this.libs.hasOwnProperty(c)&&i.push(this.init_lib(c,g));else for(var j in this.libs)i.push(this.init_lib(j,c));return h(b).load(function(){h(b).trigger("resize.fndtn.clearing").trigger("resize.fndtn.dropdown").trigger("resize.fndtn.equalizer").trigger("resize.fndtn.interchange").trigger("resize.fndtn.joyride").trigger("resize.fndtn.magellan").trigger("resize.fndtn.topbar").trigger("resize.fndtn.slider")}),a},init_lib:function(b,c){return this.libs.hasOwnProperty(b)?(this.patch(this.libs[b]),c&&c.hasOwnProperty(b)?("undefined"!=typeof this.libs[b].settings?a.extend(!0,this.libs[b].settings,c[b]):"undefined"!=typeof this.libs[b].defaults&&a.extend(!0,this.libs[b].defaults,c[b]),this.libs[b].init.apply(this.libs[b],[this.scope,c[b]])):(c=c instanceof Array?c:new Array(c),this.libs[b].init.apply(this.libs[b],c))):function(){}},patch:function(a){a.scope=this.scope,a.namespace=this.global.namespace,a.rtl=this.rtl,a.data_options=this.utils.data_options,a.attr_name=i,a.add_namespace=j,a.bindings=k,a.S=this.utils.S},inherit:function(a,b){for(var c=b.split(" "),d=c.length;d--;)this.utils.hasOwnProperty(c[d])&&(a[c[d]]=this.utils[c[d]])},set_namespace:function(){var b=this.global.namespace===d?a(".foundation-data-attribute-namespace").css("font-family"):this.global.namespace;this.global.namespace=b===d||/false/i.test(b)?"":b},libs:{},utils:{S:h,throttle:function(a,b){var c=null;return function(){var d=this,e=arguments;null==c&&(c=setTimeout(function(){a.apply(d,e),c=null},b))}},debounce:function(a,b,c){var d,e;return function(){var f=this,g=arguments,h=function(){d=null,c||(e=a.apply(f,g))},i=c&&!d;return clearTimeout(d),d=setTimeout(h,b),i&&(e=a.apply(f,g)),e}},data_options:function(b,c){function d(a){return!isNaN(a-0)&&null!==a&&""!==a&&a!==!1&&a!==!0}function e(b){return"string"==typeof b?a.trim(b):b}c=c||"options";var f,g,h,i={},j=function(a){var b=Foundation.global.namespace;return b.length>0?a.data(b+"-"+c):a.data(c)},k=j(b);if("object"==typeof k)return k;for(h=(k||":").split(";"),f=h.length;f--;)g=h[f].split(":"),g=[g[0],g.slice(1).join(":")],/true/i.test(g[1])&&(g[1]=!0),/false/i.test(g[1])&&(g[1]=!1),d(g[1])&&(-1===g[1].indexOf(".")?g[1]=parseInt(g[1],10):g[1]=parseFloat(g[1])),2===g.length&&g[0].length>0&&(i[e(g[0])]=e(g[1]));return i},register_media:function(b,c){Foundation.media_queries[b]===d&&(a("head").append('<meta class="'+c+'"/>'),Foundation.media_queries[b]=e(a("."+c).css("font-family")))},add_custom_rule:function(a,b){if(b===d&&Foundation.stylesheet)Foundation.stylesheet.insertRule(a,Foundation.stylesheet.cssRules.length);else{var c=Foundation.media_queries[b];c!==d&&Foundation.stylesheet.insertRule("@media "+Foundation.media_queries[b]+"{ "+a+" }",Foundation.stylesheet.cssRules.length)}},image_loaded:function(a,b){function c(a){for(var b=a.length,c=b-1;c>=0;c--)if(a.attr("height")===d)return!1;return!0}var e=this,f=a.length;(0===f||c(a))&&b(a),a.each(function(){l(e.S(this),function(){f-=1,0===f&&b(a)})})},random_str:function(){return this.fidx||(this.fidx=0),this.prefix=this.prefix||[this.name||"F",(+new Date).toString(36)].join("-"),this.prefix+(this.fidx++).toString(36)},match:function(a){return b.matchMedia(a).matches},is_small_up:function(){return this.match(Foundation.media_queries.small)},is_medium_up:function(){return this.match(Foundation.media_queries.medium)},is_large_up:function(){return this.match(Foundation.media_queries.large)},is_xlarge_up:function(){return this.match(Foundation.media_queries.xlarge)},is_xxlarge_up:function(){return this.match(Foundation.media_queries.xxlarge)},is_small_only:function(){return!(this.is_medium_up()||this.is_large_up()||this.is_xlarge_up()||this.is_xxlarge_up())},is_medium_only:function(){return this.is_medium_up()&&!this.is_large_up()&&!this.is_xlarge_up()&&!this.is_xxlarge_up()},is_large_only:function(){return this.is_medium_up()&&this.is_large_up()&&!this.is_xlarge_up()&&!this.is_xxlarge_up()},is_xlarge_only:function(){return this.is_medium_up()&&this.is_large_up()&&this.is_xlarge_up()&&!this.is_xxlarge_up()},is_xxlarge_only:function(){return this.is_medium_up()&&this.is_large_up()&&this.is_xlarge_up()&&this.is_xxlarge_up()}}},a.fn.foundation=function(){var a=Array.prototype.slice.call(arguments,0);return this.each(function(){return Foundation.init.apply(Foundation,[this].concat(a)),this})}}(jQuery,window,window.document),function(a,b,c,d){"use strict";Foundation.libs.abide={name:"abide",version:"5.5.3",settings:{live_validate:!0,validate_on_blur:!0,focus_on_invalid:!0,error_labels:!0,error_class:"error",timeout:1e3,patterns:{alpha:/^[a-zA-Z]+$/,alpha_numeric:/^[a-zA-Z0-9]+$/,integer:/^[-+]?\d+$/,number:/^[-+]?\d*(?:[\.\,]\d+)?$/,card:/^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$/,cvv:/^([0-9]){3,4}$/,email:/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+$/,url:/^(https?|ftp|file|ssh):\/\/([-;:&=\+\$,\w]+@{1})?([-A-Za-z0-9\.]+)+:?(\d+)?((\/[-\+~%\/\.\w]+)?\??([-\+=&;%@\.\w]+)?#?([\w]+)?)?/,domain:/^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,8}$/,datetime:/^([0-2][0-9]{3})\-([0-1][0-9])\-([0-3][0-9])T([0-5][0-9])\:([0-5][0-9])\:([0-5][0-9])(Z|([\-\+]([0-1][0-9])\:00))$/,date:/(?:19|20)[0-9]{2}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-9])|(?:(?!02)(?:0[1-9]|1[0-2])-(?:30))|(?:(?:0[13578]|1[02])-31))$/,time:/^(0[0-9]|1[0-9]|2[0-3])(:[0-5][0-9]){2}$/,dateISO:/^\d{4}[\/\-]\d{1,2}[\/\-]\d{1,2}$/,month_day_year:/^(0[1-9]|1[012])[- \/.](0[1-9]|[12][0-9]|3[01])[- \/.]\d{4}$/,day_month_year:/^(0[1-9]|[12][0-9]|3[01])[- \/.](0[1-9]|1[012])[- \/.]\d{4}$/,color:/^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/},validators:{equalTo:function(a,b,d){var e=c.getElementById(a.getAttribute(this.add_namespace("data-equalto"))).value,f=a.value,g=e===f;return g}}},timer:null,init:function(a,b,c){this.bindings(b,c)},events:function(b){function c(a,b){clearTimeout(d.timer),d.timer=setTimeout(function(){d.validate([a],b)}.bind(a),f.timeout)}var d=this,e=d.S(b).attr("novalidate","novalidate"),f=e.data(this.attr_name(!0)+"-init")||{};this.invalid_attr=this.add_namespace("data-invalid"),e.off(".abide").on("submit.fndtn.abide",function(a){var b=/ajax/i.test(d.S(this).attr(d.attr_name()));return d.validate(d.S(this).find("input, textarea, select").not(":hidden, [data-abide-ignore]").get(),a,b)}).on("validate.fndtn.abide",function(a){"manual"===f.validate_on&&d.validate([a.target],a)}).on("reset",function(b){return d.reset(a(this),b)}).find("input, textarea, select").not(":hidden, [data-abide-ignore]").off(".abide").on("blur.fndtn.abide change.fndtn.abide",function(a){var b=this.getAttribute("id"),d=e.find('[data-equalto="'+b+'"]');f.validate_on_blur&&f.validate_on_blur===!0&&c(this,a),"undefined"!=typeof d.get(0)&&d.val().length&&c(d.get(0),a),"change"===f.validate_on&&c(this,a)}).on("keydown.fndtn.abide",function(a){var b=this.getAttribute("id"),d=e.find('[data-equalto="'+b+'"]');f.live_validate&&f.live_validate===!0&&9!=a.which&&c(this,a),"undefined"!=typeof d.get(0)&&d.val().length&&c(d.get(0),a),"tab"===f.validate_on&&9===a.which?c(this,a):"change"===f.validate_on&&c(this,a)}).on("focus",function(b){navigator.userAgent.match(/iPad|iPhone|Android|BlackBerry|Windows Phone|webOS/i)&&a("html, body").animate({scrollTop:a(b.target).offset().top},100)})},reset:function(b,c){var d=this;b.removeAttr(d.invalid_attr),a("["+d.invalid_attr+"]",b).removeAttr(d.invalid_attr),a("."+d.settings.error_class,b).not("small").removeClass(d.settings.error_class),a(":input",b).not(":button, :submit, :reset, :hidden, [data-abide-ignore]").val("").removeAttr(d.invalid_attr)},validate:function(a,b,c){for(var d=this.parse_patterns(a),e=d.length,f=this.S(a[0]).closest("form"),g=/submit/.test(b.type),h=0;e>h;h++)if(!d[h]&&(g||c))return this.settings.focus_on_invalid&&a[h].focus(),f.trigger("invalid.fndtn.abide"),this.S(a[h]).closest("form").attr(this.invalid_attr,""),!1;return(g||c)&&f.trigger("valid.fndtn.abide"),f.removeAttr(this.invalid_attr),c?!1:!0},parse_patterns:function(a){for(var b=a.length,c=[];b--;)c.push(this.pattern(a[b]));return this.check_validation_and_apply_styles(c)},pattern:function(a){var b=a.getAttribute("type"),c="string"==typeof a.getAttribute("required"),d=a.getAttribute("pattern")||"";return this.settings.patterns.hasOwnProperty(d)&&d.length>0?[a,this.settings.patterns[d],c]:d.length>0?[a,new RegExp(d),c]:this.settings.patterns.hasOwnProperty(b)?[a,this.settings.patterns[b],c]:(d=/.*/,[a,d,c])},check_validation_and_apply_styles:function(b){var c=b.length,d=[];if(0==c)return d;var e=this.S(b[0][0]).closest("[data-"+this.attr_name(!0)+"]");for(e.data(this.attr_name(!0)+"-init")||{};c--;){var f,g,h=b[c][0],i=b[c][2],j=h.value.trim(),k=this.S(h).parent(),l=h.getAttribute(this.add_namespace("data-abide-validator")),m="radio"===h.type,n="checkbox"===h.type,o=this.S('label[for="'+h.getAttribute("id")+'"]'),p=i?h.value.length>0:!0,q=[];if(h.getAttribute(this.add_namespace("data-equalto"))&&(l="equalTo"),f=k.is("label")?k.parent():k,m&&i)q.push(this.valid_radio(h,i));else if(n&&i)q.push(this.valid_checkbox(h,i));else if(l){for(var r=l.split(" "),s=!0,t=!0,u=0;u<r.length;u++)g=this.settings.validators[r[u]].apply(this,[h,i,f]),q.push(g),t=g&&s,s=g;t?(this.S(h).removeAttr(this.invalid_attr),f.removeClass("error"),o.length>0&&this.settings.error_labels&&o.removeClass(this.settings.error_class).removeAttr("role"),a(h).triggerHandler("valid")):(this.S(h).attr(this.invalid_attr,""),f.addClass("error"),o.length>0&&this.settings.error_labels&&o.addClass(this.settings.error_class).attr("role","alert"),a(h).triggerHandler("invalid"))}else if(b[c][1].test(j)&&p||!i&&h.value.length<1||a(h).attr("disabled")?q.push(!0):q.push(!1),q=[q.every(function(a){return a})],q[0])this.S(h).removeAttr(this.invalid_attr),h.setAttribute("aria-invalid","false"),h.removeAttribute("aria-describedby"),f.removeClass(this.settings.error_class),o.length>0&&this.settings.error_labels&&o.removeClass(this.settings.error_class).removeAttr("role"),a(h).triggerHandler("valid");else{this.S(h).attr(this.invalid_attr,""),h.setAttribute("aria-invalid","true");var v=f.find("small."+this.settings.error_class,"span."+this.settings.error_class),w=v.length>0?v[0].id:"";w.length>0&&h.setAttribute("aria-describedby",w),f.addClass(this.settings.error_class),o.length>0&&this.settings.error_labels&&o.addClass(this.settings.error_class).attr("role","alert"),a(h).triggerHandler("invalid")}d=d.concat(q)}return d},valid_checkbox:function(b,c){var b=this.S(b),d=b.is(":checked")||!c||b.get(0).getAttribute("disabled");return d?(b.removeAttr(this.invalid_attr).parent().removeClass(this.settings.error_class),a(b).triggerHandler("valid")):(b.attr(this.invalid_attr,"").parent().addClass(this.settings.error_class),a(b).triggerHandler("invalid")),d},valid_radio:function(b,c){for(var d=b.getAttribute("name"),e=this.S(b).closest("[data-"+this.attr_name(!0)+"]").find("[name='"+d+"']"),f=e.length,g=!1,h=!1,i=0;f>i;i++)e[i].getAttribute("disabled")?(h=!0,g=!0):e[i].checked?g=!0:h&&(g=!1);for(var i=0;f>i;i++)g?(this.S(e[i]).removeAttr(this.invalid_attr).parent().removeClass(this.settings.error_class),a(e[i]).triggerHandler("valid")):(this.S(e[i]).attr(this.invalid_attr,"").parent().addClass(this.settings.error_class),a(e[i]).triggerHandler("invalid"));return g},valid_equal:function(a,b,d){var e=c.getElementById(a.getAttribute(this.add_namespace("data-equalto"))).value,f=a.value,g=e===f;return g?(this.S(a).removeAttr(this.invalid_attr),d.removeClass(this.settings.error_class),label.length>0&&settings.error_labels&&label.removeClass(this.settings.error_class)):(this.S(a).attr(this.invalid_attr,""),d.addClass(this.settings.error_class),label.length>0&&settings.error_labels&&label.addClass(this.settings.error_class)),g},valid_oneof:function(a,b,c,d){var a=this.S(a),e=this.S("["+this.add_namespace("data-oneof")+"]"),f=e.filter(":checked").length>0;if(f?a.removeAttr(this.invalid_attr).parent().removeClass(this.settings.error_class):a.attr(this.invalid_attr,"").parent().addClass(this.settings.error_class),!d){var g=this;e.each(function(){g.valid_oneof.call(g,this,null,null,!0)})}return f},reflow:function(a,b){var c=this,d=c.S("["+this.attr_name()+"]").attr("novalidate","novalidate");c.S(d).each(function(a,b){c.events(b)})}}}(jQuery,window,window.document),function(a,b,c,d){"use strict";Foundation.libs.accordion={name:"accordion",version:"5.5.3",settings:{content_class:"content",active_class:"active",multi_expand:!1,toggleable:!0,callback:function(){}},init:function(a,b,c){this.bindings(b,c)},events:function(b){var c=this,d=this.S;c.create(this.S(b)),d(this.scope).off(".fndtn.accordion").on("click.fndtn.accordion","["+this.attr_name()+"] > dd > a, ["+this.attr_name()+"] > li > a",function(b){var e=d(this).closest("["+c.attr_name()+"]"),f=c.attr_name()+"="+e.attr(c.attr_name()),g=e.data(c.attr_name(!0)+"-init")||c.settings,h=d("#"+this.href.split("#")[1]),i=a("> dd, > li",e),j=i.children("."+g.content_class),k=j.filter("."+g.active_class);return b.preventDefault(),e.attr(c.attr_name())&&(j=j.add("["+f+"] dd > ."+g.content_class+", ["+f+"] li > ."+g.content_class),i=i.add("["+f+"] dd, ["+f+"] li")),g.toggleable&&h.is(k)?(h.parent("dd, li").toggleClass(g.active_class,!1),h.toggleClass(g.active_class,!1),d(this).attr("aria-expanded",function(a,b){return"true"===b?"false":"true"}),g.callback(h),h.triggerHandler("toggled",[e]),void e.triggerHandler("toggled",[h])):(g.multi_expand||(j.removeClass(g.active_class),i.removeClass(g.active_class),i.children("a").attr("aria-expanded","false")),h.addClass(g.active_class).parent().addClass(g.active_class),g.callback(h),h.triggerHandler("toggled",[e]),e.triggerHandler("toggled",[h]),void d(this).attr("aria-expanded","true"))})},create:function(b){var c=this,d=b,e=a("> .accordion-navigation",d),f=d.data(c.attr_name(!0)+"-init")||c.settings;e.children("a").attr("aria-expanded","false"),e.has("."+f.content_class+"."+f.active_class).addClass(f.active_class).children("a").attr("aria-expanded","true"),f.multi_expand&&b.attr("aria-multiselectable","true")},toggle:function(a){var a="undefined"!=typeof a?a:{},c="undefined"!=typeof a.selector?a.selector:"",d="undefined"!=typeof a.toggle_state?a.toggle_state:"",e="undefined"!=typeof a.$accordion?a.$accordion:this.S(this.scope).closest("["+this.attr_name()+"]"),f=e.find("> dd"+c+", > li"+c);if(f.length<1)return b.console&&console.error("Selection not found.",c),!1;var g=this.S,h=this.settings.active_class;f.each(function(){var a=g(this),b=a.hasClass(h);(b&&"close"===d||!b&&"open"===d||""===d)&&a.find("> a").trigger("click.fndtn.accordion")})},open:function(a){var a="undefined"!=typeof a?a:{};a.toggle_state="open",this.toggle(a)},close:function(a){var a="undefined"!=typeof a?a:{};a.toggle_state="close",this.toggle(a)},off:function(){},reflow:function(){}}}(jQuery,window,window.document),function(a,b,c,d){"use strict";Foundation.libs.alert={name:"alert",version:"5.5.3",settings:{callback:function(){}},init:function(a,b,c){this.bindings(b,c)},events:function(){var b=this,c=this.S;a(this.scope).off(".alert").on("click.fndtn.alert","["+this.attr_name()+"] .close",function(a){var d=c(this).closest("["+b.attr_name()+"]"),e=d.data(b.attr_name(!0)+"-init")||b.settings;a.preventDefault(),Modernizr.csstransitions?(d.addClass("alert-close"),d.on("transitionend webkitTransitionEnd oTransitionEnd",function(a){c(this).trigger("close.fndtn.alert").remove(),e.callback()})):d.fadeOut(300,function(){c(this).trigger("close.fndtn.alert").remove(),e.callback()})})},reflow:function(){}}}(jQuery,window,window.document),function(a,b,c,d){"use strict";Foundation.libs.clearing={name:"clearing",version:"5.5.3",settings:{templates:{viewing:'<a href="#" class="clearing-close">&times;</a><div class="visible-img" style="display: none"><div class="clearing-touch-label"></div><img src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs%3D" alt="" /><p class="clearing-caption"></p><a href="#" class="clearing-main-prev"><span></span></a><a href="#" class="clearing-main-next"><span></span></a></div><img class="clearing-preload-next" style="display: none" src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs%3D" alt="" /><img class="clearing-preload-prev" style="display: none" src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs%3D" alt="" />'},close_selectors:".clearing-close, div.clearing-blackout",open_selectors:"",skip_selector:"",touch_label:"",init:!1,locked:!1},init:function(a,b,c){var d=this;Foundation.inherit(this,"throttle image_loaded"),this.bindings(b,c),d.S(this.scope).is("["+this.attr_name()+"]")?this.assemble(d.S("li",this.scope)):d.S("["+this.attr_name()+"]",this.scope).each(function(){d.assemble(d.S("li",this))})},events:function(d){var e=this,f=e.S,g=a(".scroll-container");g.length>0&&(this.scope=g),f(this.scope).off(".clearing").on("click.fndtn.clearing","ul["+this.attr_name()+"] li "+this.settings.open_selectors,function(a,b,c){var b=b||f(this),c=c||b,d=b.next("li"),g=b.closest("["+e.attr_name()+"]").data(e.attr_name(!0)+"-init"),h=f(a.target);a.preventDefault(),g||(e.init(),g=b.closest("["+e.attr_name()+"]").data(e.attr_name(!0)+"-init")),c.hasClass("visible")&&b[0]===c[0]&&d.length>0&&e.is_open(b)&&(c=d,h=f("img",c)),e.open(h,b,c),e.update_paddles(c)}).on("click.fndtn.clearing",".clearing-main-next",function(a){e.nav(a,"next")}).on("click.fndtn.clearing",".clearing-main-prev",function(a){e.nav(a,"prev")}).on("click.fndtn.clearing",this.settings.close_selectors,function(a){Foundation.libs.clearing.close(a,this)}),a(c).on("keydown.fndtn.clearing",function(a){e.keydown(a)}),f(b).off(".clearing").on("resize.fndtn.clearing",function(){e.resize()}),this.swipe_events(d)},swipe_events:function(a){var b=this,c=b.S;c(this.scope).on("touchstart.fndtn.clearing",".visible-img",function(a){a.touches||(a=a.originalEvent);var b={start_page_x:a.touches[0].pageX,start_page_y:a.touches[0].pageY,start_time:(new Date).getTime(),delta_x:0,is_scrolling:d};c(this).data("swipe-transition",b),a.stopPropagation()}).on("touchmove.fndtn.clearing",".visible-img",function(a){if(a.touches||(a=a.originalEvent),!(a.touches.length>1||a.scale&&1!==a.scale)){var d=c(this).data("swipe-transition");if("undefined"==typeof d&&(d={}),d.delta_x=a.touches[0].pageX-d.start_page_x,Foundation.rtl&&(d.delta_x=-d.delta_x),"undefined"==typeof d.is_scrolling&&(d.is_scrolling=!!(d.is_scrolling||Math.abs(d.delta_x)<Math.abs(a.touches[0].pageY-d.start_page_y))),!d.is_scrolling&&!d.active){a.preventDefault();var e=d.delta_x<0?"next":"prev";d.active=!0,b.nav(a,e)}}}).on("touchend.fndtn.clearing",".visible-img",function(a){c(this).data("swipe-transition",{}),a.stopPropagation()})},assemble:function(b){var c=b.parent();if(!c.parent().hasClass("carousel")){c.after('<div id="foundationClearingHolder"></div>');var d=c.detach(),e="";if(null!=d[0]){e=d[0].outerHTML;var f=this.S("#foundationClearingHolder"),g=c.data(this.attr_name(!0)+"-init"),h={grid:'<div class="carousel">'+e+"</div>",viewing:g.templates.viewing},i='<div class="clearing-assembled"><div>'+h.viewing+h.grid+"</div></div>",j=this.settings.touch_label;Modernizr.touch&&(i=a(i).find(".clearing-touch-label").html(j).end()),f.after(i).remove()}}},open:function(b,d,e){function f(){setTimeout(function(){this.image_loaded(m,function(){1!==m.outerWidth()||o?g.call(this,m):f.call(this)}.bind(this))}.bind(this),100)}function g(b){var c=a(b);c.css("visibility","visible"),c.trigger("imageVisible"),i.css("overflow","hidden"),j.addClass("clearing-blackout"),k.addClass("clearing-container"),l.show(),this.fix_height(e).caption(h.S(".clearing-caption",l),h.S("img",e)).center_and_label(b,n).shift(d,e,function(){e.closest("li").siblings().removeClass("visible"),e.closest("li").addClass("visible")}),l.trigger("opened.fndtn.clearing")}var h=this,i=a(c.body),j=e.closest(".clearing-assembled"),k=h.S("div",j).first(),l=h.S(".visible-img",k),m=h.S("img",l).not(b),n=h.S(".clearing-touch-label",k),o=!1,p={};a("body").on("touchmove",function(a){a.preventDefault()}),m.error(function(){o=!0}),this.locked()||(l.trigger("open.fndtn.clearing"),p=this.load(b),p.interchange?m.attr("data-interchange",p.interchange).foundation("interchange","reflow"):m.attr("src",p.src).attr("data-interchange",""),m.css("visibility","hidden"),f.call(this))},close:function(b,d){b.preventDefault();var e,f,g=function(a){return/blackout/.test(a.selector)?a:a.closest(".clearing-blackout")}(a(d)),h=a(c.body);return d===b.target&&g&&(h.css("overflow",""),e=a("div",g).first(),f=a(".visible-img",e),f.trigger("close.fndtn.clearing"),this.settings.prev_index=0,a("ul["+this.attr_name()+"]",g).attr("style","").closest(".clearing-blackout").removeClass("clearing-blackout"),e.removeClass("clearing-container"),f.hide(),f.trigger("closed.fndtn.clearing")),a("body").off("touchmove"),!1},is_open:function(a){return a.parent().prop("style").length>0},keydown:function(b){var c=a(".clearing-blackout ul["+this.attr_name()+"]"),d=this.rtl?37:39,e=this.rtl?39:37,f=27;b.which===d&&this.go(c,"next"),b.which===e&&this.go(c,"prev"),b.which===f&&this.S("a.clearing-close").trigger("click.fndtn.clearing")},nav:function(b,c){var d=a("ul["+this.attr_name()+"]",".clearing-blackout");b.preventDefault(),this.go(d,c)},resize:function(){var b=a("img",".clearing-blackout .visible-img"),c=a(".clearing-touch-label",".clearing-blackout");b.length&&(this.center_and_label(b,c),b.trigger("resized.fndtn.clearing"))},fix_height:function(a){var b=a.parent().children(),c=this;return b.each(function(){var a=c.S(this),b=a.find("img");a.height()>b.outerHeight()&&a.addClass("fix-height")}).closest("ul").width(100*b.length+"%"),this},update_paddles:function(a){a=a.closest("li");var b=a.closest(".carousel").siblings(".visible-img");a.next().length>0?this.S(".clearing-main-next",b).removeClass("disabled"):this.S(".clearing-main-next",b).addClass("disabled"),a.prev().length>0?this.S(".clearing-main-prev",b).removeClass("disabled"):this.S(".clearing-main-prev",b).addClass("disabled")},center_and_label:function(a,b){return!this.rtl&&b.length>0?b.css({marginLeft:-(b.outerWidth()/2),marginTop:-(a.outerHeight()/2)-b.outerHeight()-10}):b.css({marginRight:-(b.outerWidth()/2),marginTop:-(a.outerHeight()/2)-b.outerHeight()-10,left:"auto",right:"50%"}),this},load:function(a){var b,c,d;return"A"===a[0].nodeName?(b=a.attr("href"),c=a.data("clearing-interchange")):(d=a.closest("a"),b=d.attr("href"),c=d.data("clearing-interchange")),this.preload(a),{src:b?b:a.attr("src"),interchange:b?c:a.data("clearing-interchange")}},preload:function(a){this.img(a.closest("li").next(),"next").img(a.closest("li").prev(),"prev")},img:function(b,c){if(b.length){var d,e,f,g=a(".clearing-preload-"+c),h=this.S("a",b);h.length?(d=h.attr("href"),e=h.data("clearing-interchange")):(f=this.S("img",b),d=f.attr("src"),e=f.data("clearing-interchange")),e?g.attr("data-interchange",e):(g.attr("src",d),g.attr("data-interchange",""))}return this},caption:function(a,b){var c=b.attr("data-caption");if(c){var d=a.get(0);d.innerHTML=c,a.show()}else a.text("").hide();return this},go:function(a,b){var c=this.S(".visible",a),d=c[b]();this.settings.skip_selector&&0!=d.find(this.settings.skip_selector).length&&(d=d[b]()),d.length&&this.S("img",d).trigger("click.fndtn.clearing",[c,d]).trigger("change.fndtn.clearing")},shift:function(a,b,c){var d,e=b.parent(),f=this.settings.prev_index||b.index(),g=this.direction(e,a,b),h=this.rtl?"right":"left",i=parseInt(e.css("left"),10),j=b.outerWidth(),k={};b.index()===f||/skip/.test(g)?/skip/.test(g)&&(d=b.index()-this.settings.up_count,this.lock(),d>0?(k[h]=-(d*j),e.animate(k,300,this.unlock())):(k[h]=0,e.animate(k,300,this.unlock()))):/left/.test(g)?(this.lock(),k[h]=i+j,e.animate(k,300,this.unlock())):/right/.test(g)&&(this.lock(),k[h]=i-j,e.animate(k,300,this.unlock())),c()},direction:function(a,b,c){var d,e=this.S("li",a),f=e.outerWidth()+e.outerWidth()/4,g=Math.floor(this.S(".clearing-container").outerWidth()/f)-1,h=e.index(c);return this.settings.up_count=g,d=this.adjacent(this.settings.prev_index,h)?h>g&&h>this.settings.prev_index?"right":h>g-1&&h<=this.settings.prev_index?"left":!1:"skip",this.settings.prev_index=h,d},adjacent:function(a,b){for(var c=b+1;c>=b-1;c--)if(c===a)return!0;return!1},lock:function(){this.settings.locked=!0},unlock:function(){this.settings.locked=!1},locked:function(){return this.settings.locked},off:function(){this.S(this.scope).off(".fndtn.clearing"),this.S(b).off(".fndtn.clearing")},reflow:function(){this.init()}}}(jQuery,window,window.document),function(a,b,c,d){"use strict";Foundation.libs.dropdown={name:"dropdown",version:"5.5.3",settings:{active_class:"open",disabled_class:"disabled",mega_class:"mega",align:"bottom",is_hover:!1,hover_timeout:150,opened:function(){},closed:function(){}},init:function(b,c,d){Foundation.inherit(this,"throttle"),a.extend(!0,this.settings,c,d),this.bindings(c,d)},events:function(d){var e=this,f=e.S;f(this.scope).off(".dropdown").on("click.fndtn.dropdown","["+this.attr_name()+"]",function(b){var c=f(this).data(e.attr_name(!0)+"-init")||e.settings;(!c.is_hover||Modernizr.touch)&&(b.preventDefault(),f(this).parent("[data-reveal-id]").length&&b.stopPropagation(),e.toggle(a(this)))}).on("mouseenter.fndtn.dropdown","["+this.attr_name()+"], ["+this.attr_name()+"-content]",function(a){var b,c,d=f(this);clearTimeout(e.timeout),d.data(e.data_attr())?(b=f("#"+d.data(e.data_attr())),c=d):(b=d,c=f("["+e.attr_name()+'="'+b.attr("id")+'"]'));var g=c.data(e.attr_name(!0)+"-init")||e.settings;f(a.currentTarget).data(e.data_attr())&&g.is_hover&&e.closeall.call(e),g.is_hover&&e.open.apply(e,[b,c])}).on("mouseleave.fndtn.dropdown","["+this.attr_name()+"], ["+this.attr_name()+"-content]",function(a){var b,c=f(this);if(c.data(e.data_attr()))b=c.data(e.data_attr(!0)+"-init")||e.settings;else var d=f("["+e.attr_name()+'="'+f(this).attr("id")+'"]'),b=d.data(e.attr_name(!0)+"-init")||e.settings;e.timeout=setTimeout(function(){c.data(e.data_attr())?b.is_hover&&e.close.call(e,f("#"+c.data(e.data_attr()))):b.is_hover&&e.close.call(e,c)}.bind(this),b.hover_timeout)}).on("click.fndtn.dropdown",function(b){var d=f(b.target).closest("["+e.attr_name()+"-content]"),g=d.find("a");return g.length>0&&"false"!==d.attr("aria-autoclose")&&e.close.call(e,f("["+e.attr_name()+"-content]")),b.target!==c&&!a.contains(c.documentElement,b.target)||f(b.target).closest("["+e.attr_name()+"]").length>0?void 0:!f(b.target).data("revealId")&&d.length>0&&(f(b.target).is("["+e.attr_name()+"-content]")||a.contains(d.first()[0],b.target))?void b.stopPropagation():void e.close.call(e,f("["+e.attr_name()+"-content]"))}).on("opened.fndtn.dropdown","["+e.attr_name()+"-content]",function(){e.settings.opened.call(this)}).on("closed.fndtn.dropdown","["+e.attr_name()+"-content]",function(){e.settings.closed.call(this)}),f(b).off(".dropdown").on("resize.fndtn.dropdown",e.throttle(function(){e.resize.call(e)},50)),this.resize()},close:function(b){var c=this;b.each(function(d){var e=a("["+c.attr_name()+"="+b[d].id+"]")||a("aria-controls="+b[d].id+"]");e.attr("aria-expanded","false"),c.S(this).hasClass(c.settings.active_class)&&(c.S(this).css(Foundation.rtl?"right":"left","-99999px").attr("aria-hidden","true").removeClass(c.settings.active_class).prev("["+c.attr_name()+"]").removeClass(c.settings.active_class).removeData("target"),c.S(this).trigger("closed.fndtn.dropdown",[b]))}),b.removeClass("f-open-"+this.attr_name(!0))},closeall:function(){var b=this;a.each(b.S(".f-open-"+this.attr_name(!0)),function(){b.close.call(b,b.S(this))})},open:function(a,b){this.css(a.addClass(this.settings.active_class),b),a.prev("["+this.attr_name()+"]").addClass(this.settings.active_class),a.data("target",b.get(0)).trigger("opened.fndtn.dropdown",[a,b]),a.attr("aria-hidden","false"),b.attr("aria-expanded","true"),a.focus(),a.addClass("f-open-"+this.attr_name(!0))},data_attr:function(){return this.namespace.length>0?this.namespace+"-"+this.name:this.name},toggle:function(a){if(!a.hasClass(this.settings.disabled_class)){var b=this.S("#"+a.data(this.data_attr()));0!==b.length&&(this.close.call(this,this.S("["+this.attr_name()+"-content]").not(b)),b.hasClass(this.settings.active_class)?(this.close.call(this,b),b.data("target")!==a.get(0)&&this.open.call(this,b,a)):this.open.call(this,b,a))}},resize:function(){var b=this.S("["+this.attr_name()+"-content].open"),c=a(b.data("target"));b.length&&c.length&&this.css(b,c)},css:function(a,b){var c=Math.max((b.width()-a.width())/2,8),d=b.data(this.attr_name(!0)+"-init")||this.settings,e=a.parent().css("overflow-y")||a.parent().css("overflow");if(this.clear_idx(),this.small()){var f=this.dirs.bottom.call(a,b,d);a.attr("style","").removeClass("drop-left drop-right drop-top").css({position:"absolute",width:"95%","max-width":"none",top:f.top}),a.css(Foundation.rtl?"right":"left",c)}else if("visible"!==e){var g=b[0].offsetTop+b[0].offsetHeight;a.attr("style","").css({position:"absolute",top:g}),a.css(Foundation.rtl?"right":"left",c)}else this.style(a,b,d);return a},style:function(b,c,d){var e=a.extend({position:"absolute"},this.dirs[d.align].call(b,c,d));b.attr("style","").css(e)},dirs:{_base:function(a,d){var e=this.offsetParent(),f=e.offset(),g=a.offset();g.top-=f.top,g.left-=f.left,g.missRight=!1,g.missTop=!1,g.missLeft=!1,g.leftRightFlag=!1;var h,i=b.innerWidth;h=c.getElementsByClassName("row")[0]?c.getElementsByClassName("row")[0].clientWidth:i;var j=(i-h)/2,k=h;if(!this.hasClass("mega")&&!d.ignore_repositioning){var l=this.outerWidth(),m=a.offset().left;a.offset().top<=this.outerHeight()&&(g.missTop=!0,k=i-j,g.leftRightFlag=!0),m+l>m+j&&m-j>l&&(g.missRight=!0,g.missLeft=!1),0>=m-l&&(g.missLeft=!0,g.missRight=!1)}return g},top:function(a,b){var c=Foundation.libs.dropdown,d=c.dirs._base.call(this,a,b);return this.addClass("drop-top"),1==d.missTop&&(d.top=d.top+a.outerHeight()+this.outerHeight(),
+this.removeClass("drop-top")),1==d.missRight&&(d.left=d.left-this.outerWidth()+a.outerWidth()),(a.outerWidth()<this.outerWidth()||c.small()||this.hasClass(b.mega_menu))&&c.adjust_pip(this,a,b,d),Foundation.rtl?{left:d.left-this.outerWidth()+a.outerWidth(),top:d.top-this.outerHeight()}:{left:d.left,top:d.top-this.outerHeight()}},bottom:function(a,b){var c=Foundation.libs.dropdown,d=c.dirs._base.call(this,a,b);return 1==d.missRight&&(d.left=d.left-this.outerWidth()+a.outerWidth()),(a.outerWidth()<this.outerWidth()||c.small()||this.hasClass(b.mega_menu))&&c.adjust_pip(this,a,b,d),c.rtl?{left:d.left-this.outerWidth()+a.outerWidth(),top:d.top+a.outerHeight()}:{left:d.left,top:d.top+a.outerHeight()}},left:function(a,b){var c=Foundation.libs.dropdown.dirs._base.call(this,a,b);return this.addClass("drop-left"),1==c.missLeft&&(c.left=c.left+this.outerWidth(),c.top=c.top+a.outerHeight(),this.removeClass("drop-left")),{left:c.left-this.outerWidth(),top:c.top}},right:function(a,b){var c=Foundation.libs.dropdown.dirs._base.call(this,a,b);this.addClass("drop-right"),1==c.missRight?(c.left=c.left-this.outerWidth(),c.top=c.top+a.outerHeight(),this.removeClass("drop-right")):c.triggeredRight=!0;var d=Foundation.libs.dropdown;return(a.outerWidth()<this.outerWidth()||d.small()||this.hasClass(b.mega_menu))&&d.adjust_pip(this,a,b,c),{left:c.left+a.outerWidth(),top:c.top}}},adjust_pip:function(a,b,c,d){var e=Foundation.stylesheet,f=8;a.hasClass(c.mega_class)?f=d.left+b.outerWidth()/2-8:this.small()&&(f+=d.left-8),this.rule_idx=e.cssRules.length;var g=".f-dropdown.open:before",h=".f-dropdown.open:after",i="left: "+f+"px;",j="left: "+(f-1)+"px;";1==d.missRight&&(f=a.outerWidth()-23,g=".f-dropdown.open:before",h=".f-dropdown.open:after",i="left: "+f+"px;",j="left: "+(f-1)+"px;"),1==d.triggeredRight&&(g=".f-dropdown.open:before",h=".f-dropdown.open:after",i="left:-12px;",j="left:-14px;"),e.insertRule?(e.insertRule([g,"{",i,"}"].join(" "),this.rule_idx),e.insertRule([h,"{",j,"}"].join(" "),this.rule_idx+1)):(e.addRule(g,i,this.rule_idx),e.addRule(h,j,this.rule_idx+1))},clear_idx:function(){var a=Foundation.stylesheet;"undefined"!=typeof this.rule_idx&&(a.deleteRule(this.rule_idx),a.deleteRule(this.rule_idx),delete this.rule_idx)},small:function(){return matchMedia(Foundation.media_queries.small).matches&&!matchMedia(Foundation.media_queries.medium).matches},off:function(){this.S(this.scope).off(".fndtn.dropdown"),this.S("html, body").off(".fndtn.dropdown"),this.S(b).off(".fndtn.dropdown"),this.S("[data-dropdown-content]").off(".fndtn.dropdown")},reflow:function(){}}}(jQuery,window,window.document),function(a,b,c,d){"use strict";Foundation.libs.equalizer={name:"equalizer",version:"5.5.3",settings:{use_tallest:!0,before_height_change:a.noop,after_height_change:a.noop,equalize_on_stack:!1,act_on_hidden_el:!1},init:function(a,b,c){Foundation.inherit(this,"image_loaded"),this.bindings(b,c),this.reflow()},events:function(){this.S(b).off(".equalizer").on("resize.fndtn.equalizer",function(a){this.reflow()}.bind(this))},equalize:function(b){var c,d,e=!1,f=b.data("equalizer"),g=b.data(this.attr_name(!0)+"-init")||this.settings;if(c=g.act_on_hidden_el?f?b.find("["+this.attr_name()+'-watch="'+f+'"]'):b.find("["+this.attr_name()+"-watch]"):f?b.find("["+this.attr_name()+'-watch="'+f+'"]:visible'):b.find("["+this.attr_name()+"-watch]:visible"),0!==c.length&&(g.before_height_change(),b.trigger("before-height-change.fndth.equalizer"),c.height("inherit"),g.equalize_on_stack!==!1||(d=c.first().offset().top,c.each(function(){return a(this).offset().top!==d?(e=!0,!1):void 0}),!e))){var h=c.map(function(){return a(this).outerHeight(!1)}).get();if(g.use_tallest){var i=Math.max.apply(null,h);c.css("height",i)}else{var j=Math.min.apply(null,h);c.css("height",j)}g.after_height_change(),b.trigger("after-height-change.fndtn.equalizer")}},reflow:function(){var b=this;this.S("["+this.attr_name()+"]",this.scope).each(function(){var c=a(this),d=c.data("equalizer-mq"),e=!0;d&&(d="is_"+d.replace(/-/g,"_"),Foundation.utils.hasOwnProperty(d)&&(e=!1)),b.image_loaded(b.S("img",this),function(){if(e||Foundation.utils[d]())b.equalize(c);else{var a=c.find("["+b.attr_name()+"-watch]:visible");a.css("height","auto")}})})}}}(jQuery,window,window.document),function(a,b,c,d){"use strict";Foundation.libs.interchange={name:"interchange",version:"5.5.3",cache:{},images_loaded:!1,nodes_loaded:!1,settings:{load_attr:"interchange",named_queries:{"default":"only screen",small:Foundation.media_queries.small,"small-only":Foundation.media_queries["small-only"],medium:Foundation.media_queries.medium,"medium-only":Foundation.media_queries["medium-only"],large:Foundation.media_queries.large,"large-only":Foundation.media_queries["large-only"],xlarge:Foundation.media_queries.xlarge,"xlarge-only":Foundation.media_queries["xlarge-only"],xxlarge:Foundation.media_queries.xxlarge,landscape:"only screen and (orientation: landscape)",portrait:"only screen and (orientation: portrait)",retina:"only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1),only screen and (min-device-pixel-ratio: 2),only screen and (min-resolution: 192dpi),only screen and (min-resolution: 2dppx)"},directives:{replace:function(b,c,d){if(null!==b&&/IMG/.test(b[0].nodeName)){var e=a.each(b,function(){this.src=c});if(new RegExp(c,"i").test(e))return;return b.attr("src",c),d(b[0].src)}var f=b.data(this.data_attr+"-last-path"),g=this;if(f!=c)return/\.(gif|jpg|jpeg|tiff|png)([?#].*)?/i.test(c)?(a(b).css("background-image","url("+c+")"),b.data("interchange-last-path",c),d(c)):a.get(c,function(a){b.html(a),b.data(g.data_attr+"-last-path",c),d()})}}},init:function(b,c,d){Foundation.inherit(this,"throttle random_str"),this.data_attr=this.set_data_attr(),a.extend(!0,this.settings,c,d),this.bindings(c,d),this.reflow()},get_media_hash:function(){var a="";for(var b in this.settings.named_queries)a+=matchMedia(this.settings.named_queries[b]).matches.toString();return a},events:function(){var c,d=this;return a(b).off(".interchange").on("resize.fndtn.interchange",d.throttle(function(){var a=d.get_media_hash();a!==c&&d.resize(),c=a},50)),this},resize:function(){var b=this.cache;if(!this.images_loaded||!this.nodes_loaded)return void setTimeout(a.proxy(this.resize,this),50);for(var c in b)if(b.hasOwnProperty(c)){var d=this.results(c,b[c]);d&&this.settings.directives[d.scenario[1]].call(this,d.el,d.scenario[0],function(a){if(arguments[0]instanceof Array)var b=arguments[0];else var b=Array.prototype.slice.call(arguments,0);return function(){a.el.trigger(a.scenario[1],b)}}(d))}},results:function(a,b){var c=b.length;if(c>0)for(var d=this.S("["+this.add_namespace("data-uuid")+'="'+a+'"]');c--;){var e,f=b[c][2];if(e=this.settings.named_queries.hasOwnProperty(f)?matchMedia(this.settings.named_queries[f]):matchMedia(f),e.matches)return{el:d,scenario:b[c]}}return!1},load:function(a,b){return("undefined"==typeof this["cached_"+a]||b)&&this["update_"+a](),this["cached_"+a]},update_images:function(){var a=this.S("img["+this.data_attr+"]"),b=a.length,c=b,d=0,e=this.data_attr;for(this.cache={},this.cached_images=[],this.images_loaded=0===b;c--;){if(d++,a[c]){var f=a[c].getAttribute(e)||"";f.length>0&&this.cached_images.push(a[c])}d===b&&(this.images_loaded=!0,this.enhance("images"))}return this},update_nodes:function(){var a=this.S("["+this.data_attr+"]").not("img"),b=a.length,c=b,d=0,e=this.data_attr;for(this.cached_nodes=[],this.nodes_loaded=0===b;c--;){d++;var f=a[c].getAttribute(e)||"";f.length>0&&this.cached_nodes.push(a[c]),d===b&&(this.nodes_loaded=!0,this.enhance("nodes"))}return this},enhance:function(c){for(var d=this["cached_"+c].length;d--;)this.object(a(this["cached_"+c][d]));return a(b).trigger("resize.fndtn.interchange")},convert_directive:function(a){var b=this.trim(a);return b.length>0?b:"replace"},parse_scenario:function(a){var b=a[0].match(/(.+),\s*(\w+)\s*$/),c=a[1].match(/(.*)\)/);if(b)var d=b[1],e=b[2];else var f=a[0].split(/,\s*$/),d=f[0],e="";return[this.trim(d),this.convert_directive(e),this.trim(c[1])]},object:function(a){var b=this.parse_data_attr(a),c=[],d=b.length;if(d>0)for(;d--;){var e=b[d].split(/,\s?\(/);if(e.length>1){var f=this.parse_scenario(e);c.push(f)}}return this.store(a,c)},store:function(a,b){var c=this.random_str(),d=a.data(this.add_namespace("uuid",!0));return this.cache[d]?this.cache[d]:(a.attr(this.add_namespace("data-uuid"),c),this.cache[c]=b)},trim:function(b){return"string"==typeof b?a.trim(b):b},set_data_attr:function(a){return a?this.namespace.length>0?this.namespace+"-"+this.settings.load_attr:this.settings.load_attr:this.namespace.length>0?"data-"+this.namespace+"-"+this.settings.load_attr:"data-"+this.settings.load_attr},parse_data_attr:function(a){for(var b=a.attr(this.attr_name()).split(/\[(.*?)\]/),c=b.length,d=[];c--;)b[c].replace(/[\W\d]+/,"").length>4&&d.push(b[c]);return d},reflow:function(){this.load("images",!0),this.load("nodes",!0)}}}(jQuery,window,window.document),function(a,b,c,d){"use strict";Foundation.libs.joyride={name:"joyride",version:"5.5.3",defaults:{expose:!1,modal:!0,keyboard:!0,tip_location:"bottom",nub_position:"auto",scroll_speed:1500,scroll_animation:"linear",timer:0,start_timer_on_click:!0,start_offset:0,next_button:!0,prev_button:!0,tip_animation:"fade",pause_after:[],exposed:[],tip_animation_fade_speed:300,cookie_monster:!1,cookie_name:"joyride",cookie_domain:!1,cookie_expires:365,tip_container:"body",abort_on_close:!0,tip_location_patterns:{top:["bottom"],bottom:[],left:["right","top","bottom"],right:["left","top","bottom"]},post_ride_callback:function(){},post_step_callback:function(){},pre_step_callback:function(){},pre_ride_callback:function(){},post_expose_callback:function(){},template:{link:'<a href="#close" class="joyride-close-tip">&times;</a>',timer:'<div class="joyride-timer-indicator-wrap"><span class="joyride-timer-indicator"></span></div>',tip:'<div class="joyride-tip-guide"><span class="joyride-nub"></span></div>',wrapper:'<div class="joyride-content-wrapper"></div>',button:'<a href="#" class="small button joyride-next-tip"></a>',prev_button:'<a href="#" class="small button joyride-prev-tip"></a>',modal:'<div class="joyride-modal-bg"></div>',expose:'<div class="joyride-expose-wrapper"></div>',expose_cover:'<div class="joyride-expose-cover"></div>'},expose_add_class:""},init:function(b,c,d){Foundation.inherit(this,"throttle random_str"),this.settings=this.settings||a.extend({},this.defaults,d||c),this.bindings(c,d)},go_next:function(){this.settings.$li.next().length<1?this.end():this.settings.timer>0?(clearTimeout(this.settings.automate),this.hide(),this.show(),this.startTimer()):(this.hide(),this.show())},go_prev:function(){this.settings.$li.prev().length<1||(this.settings.timer>0?(clearTimeout(this.settings.automate),this.hide(),this.show(null,!0),this.startTimer()):(this.hide(),this.show(null,!0)))},events:function(){var c=this;a(this.scope).off(".joyride").on("click.fndtn.joyride",".joyride-next-tip, .joyride-modal-bg",function(a){a.preventDefault(),this.go_next()}.bind(this)).on("click.fndtn.joyride",".joyride-prev-tip",function(a){a.preventDefault(),this.go_prev()}.bind(this)).on("click.fndtn.joyride",".joyride-close-tip",function(a){a.preventDefault(),this.end(this.settings.abort_on_close)}.bind(this)).on("keyup.fndtn.joyride",function(a){if(this.settings.keyboard&&this.settings.riding)switch(a.which){case 39:a.preventDefault(),this.go_next();break;case 37:a.preventDefault(),this.go_prev();break;case 27:a.preventDefault(),this.end(this.settings.abort_on_close)}}.bind(this)),a(b).off(".joyride").on("resize.fndtn.joyride",c.throttle(function(){if(a("["+c.attr_name()+"]").length>0&&c.settings.$next_tip&&c.settings.riding){if(c.settings.exposed.length>0){var b=a(c.settings.exposed);b.each(function(){var b=a(this);c.un_expose(b),c.expose(b)})}c.is_phone()?c.pos_phone():c.pos_default(!1)}},100))},start:function(){var b=this,c=a("["+this.attr_name()+"]",this.scope),d=["timer","scrollSpeed","startOffset","tipAnimationFadeSpeed","cookieExpires"],e=d.length;!c.length>0||(this.settings.init||this.events(),this.settings=c.data(this.attr_name(!0)+"-init"),this.settings.$content_el=c,this.settings.$body=a(this.settings.tip_container),this.settings.body_offset=a(this.settings.tip_container).position(),this.settings.$tip_content=this.settings.$content_el.find("> li"),this.settings.paused=!1,this.settings.attempts=0,this.settings.riding=!0,"function"!=typeof a.cookie&&(this.settings.cookie_monster=!1),(!this.settings.cookie_monster||this.settings.cookie_monster&&!a.cookie(this.settings.cookie_name))&&(this.settings.$tip_content.each(function(c){var f=a(this);this.settings=a.extend({},b.defaults,b.data_options(f));for(var g=e;g--;)b.settings[d[g]]=parseInt(b.settings[d[g]],10);b.create({$li:f,index:c})}),!this.settings.start_timer_on_click&&this.settings.timer>0?(this.show("init"),this.startTimer()):this.show("init")))},resume:function(){this.set_li(),this.show()},tip_template:function(b){var c,d;return b.tip_class=b.tip_class||"",c=a(this.settings.template.tip).addClass(b.tip_class),d=a.trim(a(b.li).html())+this.prev_button_text(b.prev_button_text,b.index)+this.button_text(b.button_text)+this.settings.template.link+this.timer_instance(b.index),c.append(a(this.settings.template.wrapper)),c.first().attr(this.add_namespace("data-index"),b.index),a(".joyride-content-wrapper",c).append(d),c[0]},timer_instance:function(b){var c;return c=0===b&&this.settings.start_timer_on_click&&this.settings.timer>0||0===this.settings.timer?"":a(this.settings.template.timer)[0].outerHTML},button_text:function(b){return this.settings.tip_settings.next_button?(b=a.trim(b)||"Next",b=a(this.settings.template.button).append(b)[0].outerHTML):b="",b},prev_button_text:function(b,c){return this.settings.tip_settings.prev_button?(b=a.trim(b)||"Previous",b=0==c?a(this.settings.template.prev_button).append(b).addClass("disabled")[0].outerHTML:a(this.settings.template.prev_button).append(b)[0].outerHTML):b="",b},create:function(b){this.settings.tip_settings=a.extend({},this.settings,this.data_options(b.$li));var c=b.$li.attr(this.add_namespace("data-button"))||b.$li.attr(this.add_namespace("data-text")),d=b.$li.attr(this.add_namespace("data-button-prev"))||b.$li.attr(this.add_namespace("data-prev-text")),e=b.$li.attr("class"),f=a(this.tip_template({tip_class:e,index:b.index,button_text:c,prev_button_text:d,li:b.$li}));a(this.settings.tip_container).append(f)},show:function(b,c){var e=null;if(this.settings.$li===d||-1===a.inArray(this.settings.$li.index(),this.settings.pause_after))if(this.settings.paused?this.settings.paused=!1:this.set_li(b,c),this.settings.attempts=0,this.settings.$li.length&&this.settings.$target.length>0){if(b&&(this.settings.pre_ride_callback(this.settings.$li.index(),this.settings.$next_tip),this.settings.modal&&this.show_modal()),this.settings.pre_step_callback(this.settings.$li.index(),this.settings.$next_tip),this.settings.modal&&this.settings.expose&&this.expose(),this.settings.tip_settings=a.extend({},this.settings,this.data_options(this.settings.$li)),this.settings.timer=parseInt(this.settings.timer,10),this.settings.tip_settings.tip_location_pattern=this.settings.tip_location_patterns[this.settings.tip_settings.tip_location],!/body/i.test(this.settings.$target.selector)&&!this.settings.expose){var f=a(".joyride-modal-bg");/pop/i.test(this.settings.tipAnimation)?f.hide():f.fadeOut(this.settings.tipAnimationFadeSpeed),this.scroll_to()}this.is_phone()?this.pos_phone(!0):this.pos_default(!0),e=this.settings.$next_tip.find(".joyride-timer-indicator"),/pop/i.test(this.settings.tip_animation)?(e.width(0),this.settings.timer>0?(this.settings.$next_tip.show(),setTimeout(function(){e.animate({width:e.parent().width()},this.settings.timer,"linear")}.bind(this),this.settings.tip_animation_fade_speed)):this.settings.$next_tip.show()):/fade/i.test(this.settings.tip_animation)&&(e.width(0),this.settings.timer>0?(this.settings.$next_tip.fadeIn(this.settings.tip_animation_fade_speed).show(),setTimeout(function(){e.animate({width:e.parent().width()},this.settings.timer,"linear")}.bind(this),this.settings.tip_animation_fade_speed)):this.settings.$next_tip.fadeIn(this.settings.tip_animation_fade_speed)),this.settings.$current_tip=this.settings.$next_tip}else this.settings.$li&&this.settings.$target.length<1?this.show(b,c):this.end();else this.settings.paused=!0},is_phone:function(){return matchMedia(Foundation.media_queries.small).matches&&!matchMedia(Foundation.media_queries.medium).matches},hide:function(){this.settings.modal&&this.settings.expose&&this.un_expose(),this.settings.modal||a(".joyride-modal-bg").hide(),this.settings.$current_tip.css("visibility","hidden"),setTimeout(a.proxy(function(){this.hide(),this.css("visibility","visible")},this.settings.$current_tip),0),this.settings.post_step_callback(this.settings.$li.index(),this.settings.$current_tip)},set_li:function(a,b){a?(this.settings.$li=this.settings.$tip_content.eq(this.settings.start_offset),this.set_next_tip(),this.settings.$current_tip=this.settings.$next_tip):(b?this.settings.$li=this.settings.$li.prev():this.settings.$li=this.settings.$li.next(),this.set_next_tip()),this.set_target()},set_next_tip:function(){this.settings.$next_tip=a(".joyride-tip-guide").eq(this.settings.$li.index()),this.settings.$next_tip.data("closed","")},set_target:function(){var b=this.settings.$li.attr(this.add_namespace("data-class")),d=this.settings.$li.attr(this.add_namespace("data-id")),e=function(){return d?a(c.getElementById(d)):b?a("."+b).first():a("body")};this.settings.$target=e()},scroll_to:function(){var c,d;c=a(b).height()/2,d=Math.ceil(this.settings.$target.offset().top-c+this.settings.$next_tip.outerHeight()),0!=d&&a("html, body").stop().animate({scrollTop:d},this.settings.scroll_speed,"swing")},paused:function(){return-1===a.inArray(this.settings.$li.index()+1,this.settings.pause_after)},restart:function(){this.hide(),this.settings.$li=d,this.show("init")},pos_default:function(a){var b=this.settings.$next_tip.find(".joyride-nub"),c=Math.ceil(b.outerWidth()/2),d=Math.ceil(b.outerHeight()/2),e=a||!1;if(e&&(this.settings.$next_tip.css("visibility","hidden"),this.settings.$next_tip.show()),/body/i.test(this.settings.$target.selector))this.settings.$li.length&&this.pos_modal(b);else{var f=this.settings.tip_settings.tipAdjustmentY?parseInt(this.settings.tip_settings.tipAdjustmentY):0,g=this.settings.tip_settings.tipAdjustmentX?parseInt(this.settings.tip_settings.tipAdjustmentX):0;this.bottom()?(this.rtl?this.settings.$next_tip.css({top:this.settings.$target.offset().top+d+this.settings.$target.outerHeight()+f,left:this.settings.$target.offset().left+this.settings.$target.outerWidth()-this.settings.$next_tip.outerWidth()+g}):this.settings.$next_tip.css({top:this.settings.$target.offset().top+d+this.settings.$target.outerHeight()+f,left:this.settings.$target.offset().left+g}),this.nub_position(b,this.settings.tip_settings.nub_position,"top")):this.top()?(this.rtl?this.settings.$next_tip.css({top:this.settings.$target.offset().top-this.settings.$next_tip.outerHeight()-d+f,left:this.settings.$target.offset().left+this.settings.$target.outerWidth()-this.settings.$next_tip.outerWidth()}):this.settings.$next_tip.css({top:this.settings.$target.offset().top-this.settings.$next_tip.outerHeight()-d+f,left:this.settings.$target.offset().left+g}),this.nub_position(b,this.settings.tip_settings.nub_position,"bottom")):this.right()?(this.settings.$next_tip.css({top:this.settings.$target.offset().top+f,left:this.settings.$target.outerWidth()+this.settings.$target.offset().left+c+g}),this.nub_position(b,this.settings.tip_settings.nub_position,"left")):this.left()&&(this.settings.$next_tip.css({top:this.settings.$target.offset().top+f,left:this.settings.$target.offset().left-this.settings.$next_tip.outerWidth()-c+g}),this.nub_position(b,this.settings.tip_settings.nub_position,"right")),!this.visible(this.corners(this.settings.$next_tip))&&this.settings.attempts<this.settings.tip_settings.tip_location_pattern.length&&(b.removeClass("bottom").removeClass("top").removeClass("right").removeClass("left"),this.settings.tip_settings.tip_location=this.settings.tip_settings.tip_location_pattern[this.settings.attempts],this.settings.attempts++,this.pos_default())}e&&(this.settings.$next_tip.hide(),this.settings.$next_tip.css("visibility","visible"))},pos_phone:function(b){var c=this.settings.$next_tip.outerHeight(),d=(this.settings.$next_tip.offset(),this.settings.$target.outerHeight()),e=a(".joyride-nub",this.settings.$next_tip),f=Math.ceil(e.outerHeight()/2),g=b||!1;e.removeClass("bottom").removeClass("top").removeClass("right").removeClass("left"),g&&(this.settings.$next_tip.css("visibility","hidden"),this.settings.$next_tip.show()),/body/i.test(this.settings.$target.selector)?this.settings.$li.length&&this.pos_modal(e):this.top()?(this.settings.$next_tip.offset({top:this.settings.$target.offset().top-c-f}),e.addClass("bottom")):(this.settings.$next_tip.offset({top:this.settings.$target.offset().top+d+f}),e.addClass("top")),g&&(this.settings.$next_tip.hide(),this.settings.$next_tip.css("visibility","visible"))},pos_modal:function(a){this.center(),a.hide(),this.show_modal()},show_modal:function(){if(!this.settings.$next_tip.data("closed")){var b=a(".joyride-modal-bg");if(b.length<1){var b=a(this.settings.template.modal);b.appendTo("body")}/pop/i.test(this.settings.tip_animation)?b.show():b.fadeIn(this.settings.tip_animation_fade_speed)}},expose:function(){var c,d,e,f,g,h="expose-"+this.random_str(6);if(arguments.length>0&&arguments[0]instanceof a)e=arguments[0];else{if(!this.settings.$target||/body/i.test(this.settings.$target.selector))return!1;e=this.settings.$target}return e.length<1?(b.console&&console.error("element not valid",e),!1):(c=a(this.settings.template.expose),this.settings.$body.append(c),c.css({top:e.offset().top,left:e.offset().left,width:e.outerWidth(!0),height:e.outerHeight(!0)}),d=a(this.settings.template.expose_cover),f={zIndex:e.css("z-index"),position:e.css("position")},g=null==e.attr("class")?"":e.attr("class"),e.css("z-index",parseInt(c.css("z-index"))+1),"static"==f.position&&e.css("position","relative"),e.data("expose-css",f),e.data("orig-class",g),e.attr("class",g+" "+this.settings.expose_add_class),d.css({top:e.offset().top,left:e.offset().left,width:e.outerWidth(!0),height:e.outerHeight(!0)}),this.settings.modal&&this.show_modal(),this.settings.$body.append(d),c.addClass(h),d.addClass(h),e.data("expose",h),this.settings.post_expose_callback(this.settings.$li.index(),this.settings.$next_tip,e),void this.add_exposed(e))},un_expose:function(){var c,d,e,f,g,h=!1;if(arguments.length>0&&arguments[0]instanceof a)d=arguments[0];else{if(!this.settings.$target||/body/i.test(this.settings.$target.selector))return!1;d=this.settings.$target}return d.length<1?(b.console&&console.error("element not valid",d),!1):(c=d.data("expose"),e=a("."+c),arguments.length>1&&(h=arguments[1]),h===!0?a(".joyride-expose-wrapper,.joyride-expose-cover").remove():e.remove(),f=d.data("expose-css"),"auto"==f.zIndex?d.css("z-index",""):d.css("z-index",f.zIndex),f.position!=d.css("position")&&("static"==f.position?d.css("position",""):d.css("position",f.position)),g=d.data("orig-class"),d.attr("class",g),d.removeData("orig-classes"),d.removeData("expose"),d.removeData("expose-z-index"),void this.remove_exposed(d))},add_exposed:function(b){this.settings.exposed=this.settings.exposed||[],b instanceof a||"object"==typeof b?this.settings.exposed.push(b[0]):"string"==typeof b&&this.settings.exposed.push(b)},remove_exposed:function(b){var c,d;for(b instanceof a?c=b[0]:"string"==typeof b&&(c=b),this.settings.exposed=this.settings.exposed||[],d=this.settings.exposed.length;d--;)if(this.settings.exposed[d]==c)return void this.settings.exposed.splice(d,1)},center:function(){var c=a(b);return this.settings.$next_tip.css({top:(c.height()-this.settings.$next_tip.outerHeight())/2+c.scrollTop(),left:(c.width()-this.settings.$next_tip.outerWidth())/2+c.scrollLeft()}),!0},bottom:function(){return/bottom/i.test(this.settings.tip_settings.tip_location)},top:function(){return/top/i.test(this.settings.tip_settings.tip_location)},right:function(){return/right/i.test(this.settings.tip_settings.tip_location)},left:function(){return/left/i.test(this.settings.tip_settings.tip_location)},corners:function(c){if(0===c.length)return[!1,!1,!1,!1];var d=a(b),e=d.height()/2,f=Math.ceil(this.settings.$target.offset().top-e+this.settings.$next_tip.outerHeight()),g=d.width()+d.scrollLeft(),h=d.height()+f,i=d.height()+d.scrollTop(),j=d.scrollTop();return j>f&&(j=0>f?0:f),h>i&&(i=h),[c.offset().top<j,g<c.offset().left+c.outerWidth(),i<c.offset().top+c.outerHeight(),d.scrollLeft()>c.offset().left]},visible:function(a){for(var b=a.length;b--;)if(a[b])return!1;return!0},nub_position:function(a,b,c){"auto"===b?a.addClass(c):a.addClass(b)},startTimer:function(){this.settings.$li.length?this.settings.automate=setTimeout(function(){this.hide(),this.show(),this.startTimer()}.bind(this),this.settings.timer):clearTimeout(this.settings.automate)},end:function(b){this.settings.cookie_monster&&a.cookie(this.settings.cookie_name,"ridden",{expires:this.settings.cookie_expires,domain:this.settings.cookie_domain}),this.settings.timer>0&&clearTimeout(this.settings.automate),this.settings.modal&&this.settings.expose&&this.un_expose(),a(this.scope).off("keyup.joyride"),this.settings.$next_tip.data("closed",!0),this.settings.riding=!1,a(".joyride-modal-bg").hide(),this.settings.$current_tip.hide(),("undefined"==typeof b||b===!1)&&(this.settings.post_step_callback(this.settings.$li.index(),this.settings.$current_tip),this.settings.post_ride_callback(this.settings.$li.index(),this.settings.$current_tip)),a(".joyride-tip-guide").remove()},off:function(){a(this.scope).off(".joyride"),a(b).off(".joyride"),a(".joyride-close-tip, .joyride-next-tip, .joyride-modal-bg").off(".joyride"),a(".joyride-tip-guide, .joyride-modal-bg").remove(),clearTimeout(this.settings.automate)},reflow:function(){}}}(jQuery,window,window.document),function(a,b,c,d){"use strict";Foundation.libs["magellan-expedition"]={name:"magellan-expedition",version:"5.5.3",settings:{active_class:"active",threshold:0,destination_threshold:20,throttle_delay:30,fixed_top:0,offset_by_height:!0,duration:700,easing:"swing"},init:function(a,b,c){Foundation.inherit(this,"throttle"),this.bindings(b,c)},events:function(){var b=this,c=b.S,d=b.settings;b.set_expedition_position(),c(b.scope).off(".magellan").on("click.fndtn.magellan","["+b.add_namespace("data-magellan-arrival")+"] a[href*=#]",function(c){var d=this.hostname===location.hostname||!this.hostname,e=b.filterPathname(location.pathname)===b.filterPathname(this.pathname),f=this.hash.replace(/(:|\.|\/)/g,"\\$1"),g=this;if(d&&e&&f){c.preventDefault();var h=a(this).closest("["+b.attr_name()+"]"),i=h.data("magellan-expedition-init"),j=this.hash.split("#").join(""),k=a('a[name="'+j+'"]');0===k.length&&(k=a("#"+j));var l=k.offset().top-i.destination_threshold+1;i.offset_by_height&&(l-=h.outerHeight()),a("html, body").stop().animate({scrollTop:l},i.duration,i.easing,function(){history.pushState?history.pushState(null,null,g.pathname+g.search+"#"+j):location.hash=g.pathname+g.search+"#"+j})}}).on("scroll.fndtn.magellan",b.throttle(this.check_for_arrivals.bind(this),d.throttle_delay))},check_for_arrivals:function(){var a=this;a.update_arrivals(),a.update_expedition_positions()},set_expedition_position:function(){var b=this;a("["+this.attr_name()+"=fixed]",b.scope).each(function(c,d){var e,f,g=a(this),h=g.data("magellan-expedition-init"),i=g.attr("styles");g.attr("style",""),e=g.offset().top+h.threshold,f=parseInt(g.data("magellan-fixed-top")),isNaN(f)||(b.settings.fixed_top=f),g.data(b.data_attr("magellan-top-offset"),e),g.attr("style",i)})},update_expedition_positions:function(){var c=this,d=a(b).scrollTop();a("["+this.attr_name()+"=fixed]",c.scope).each(function(){var b=a(this),e=b.data("magellan-expedition-init"),f=b.attr("style"),g=b.data("magellan-top-offset");if(d+c.settings.fixed_top>=g){var h=b.prev("["+c.add_namespace("data-magellan-expedition-clone")+"]");0===h.length&&(h=b.clone(),h.removeAttr(c.attr_name()),h.attr(c.add_namespace("data-magellan-expedition-clone"),""),b.before(h)),b.css({position:"fixed",top:e.fixed_top}).addClass("fixed")}else b.prev("["+c.add_namespace("data-magellan-expedition-clone")+"]").remove(),b.attr("style",f).css("position","").css("top","").removeClass("fixed")})},update_arrivals:function(){var c=this,d=a(b).scrollTop();a("["+this.attr_name()+"]",c.scope).each(function(){var b=a(this),e=b.data(c.attr_name(!0)+"-init"),f=c.offsets(b,d),g=b.find("["+c.add_namespace("data-magellan-arrival")+"]"),h=!1;f.each(function(a,d){if(d.viewport_offset>=d.top_offset){var f=b.find("["+c.add_namespace("data-magellan-arrival")+"]");return f.not(d.arrival).removeClass(e.active_class),d.arrival.addClass(e.active_class),h=!0,!0}}),h||g.removeClass(e.active_class)})},offsets:function(b,c){var d=this,e=b.data(d.attr_name(!0)+"-init"),f=c;return b.find("["+d.add_namespace("data-magellan-arrival")+"]").map(function(c,g){var h=a(this).data(d.data_attr("magellan-arrival")),i=a("["+d.add_namespace("data-magellan-destination")+"="+h+"]");if(i.length>0){var j=i.offset().top-e.destination_threshold;return e.offset_by_height&&(j-=b.outerHeight()),j=Math.floor(j),{destination:i,arrival:a(this),top_offset:j,viewport_offset:f}}}).sort(function(a,b){return a.top_offset<b.top_offset?-1:a.top_offset>b.top_offset?1:0})},data_attr:function(a){return this.namespace.length>0?this.namespace+"-"+a:a},off:function(){this.S(this.scope).off(".magellan"),this.S(b).off(".magellan")},filterPathname:function(a){return a=a||"",a.replace(/^\//,"").replace(/(?:index|default).[a-zA-Z]{3,4}$/,"").replace(/\/$/,"")},reflow:function(){var b=this;a("["+b.add_namespace("data-magellan-expedition-clone")+"]",b.scope).remove()}}}(jQuery,window,window.document),function(a,b,c,d){"use strict";Foundation.libs.offcanvas={name:"offcanvas",version:"5.5.3",settings:{open_method:"move",close_on_click:!1},init:function(a,b,c){this.bindings(b,c)},events:function(){var b=this,c=b.S,d="",e="",f="",g="",h="";"move"===this.settings.open_method?(d="move-",e="right",f="left",g="top",h="bottom"):"overlap_single"===this.settings.open_method?(d="offcanvas-overlap-",e="right",f="left",g="top",h="bottom"):"overlap"===this.settings.open_method&&(d="offcanvas-overlap"),c(this.scope).off(".offcanvas").on("click.fndtn.offcanvas",".left-off-canvas-toggle",function(f){b.click_toggle_class(f,d+e),"overlap"!==b.settings.open_method&&c(".left-submenu").removeClass(d+e),a(".left-off-canvas-toggle").attr("aria-expanded","true")}).on("click.fndtn.offcanvas",".left-off-canvas-menu a",function(f){var g=b.get_settings(f),h=c(this).parent();!g.close_on_click||h.hasClass("has-submenu")||h.hasClass("back")?c(this).parent().hasClass("has-submenu")?(f.preventDefault(),c(this).siblings(".left-submenu").toggleClass(d+e)):h.hasClass("back")&&(f.preventDefault(),h.parent().removeClass(d+e)):(b.hide.call(b,d+e,b.get_wrapper(f)),h.parent().removeClass(d+e)),a(".left-off-canvas-toggle").attr("aria-expanded","true")}).on("click.fndtn.offcanvas",".right-off-canvas-toggle",function(e){b.click_toggle_class(e,d+f),"overlap"!==b.settings.open_method&&c(".right-submenu").removeClass(d+f),a(".right-off-canvas-toggle").attr("aria-expanded","true")}).on("click.fndtn.offcanvas",".right-off-canvas-menu a",function(e){var g=b.get_settings(e),h=c(this).parent();!g.close_on_click||h.hasClass("has-submenu")||h.hasClass("back")?c(this).parent().hasClass("has-submenu")?(e.preventDefault(),c(this).siblings(".right-submenu").toggleClass(d+f)):h.hasClass("back")&&(e.preventDefault(),h.parent().removeClass(d+f)):(b.hide.call(b,d+f,b.get_wrapper(e)),h.parent().removeClass(d+f)),a(".right-off-canvas-toggle").attr("aria-expanded","true");
+}).on("click.fndtn.offcanvas",".top-off-canvas-toggle",function(e){b.click_toggle_class(e,d+h),"overlap"!==b.settings.open_method&&c(".top-submenu").removeClass(d+h),a(".top-off-canvas-toggle").attr("aria-expanded","true")}).on("click.fndtn.offcanvas",".top-off-canvas-menu a",function(e){var f=b.get_settings(e),g=c(this).parent();!f.close_on_click||g.hasClass("has-submenu")||g.hasClass("back")?c(this).parent().hasClass("has-submenu")?(e.preventDefault(),c(this).siblings(".top-submenu").toggleClass(d+h)):g.hasClass("back")&&(e.preventDefault(),g.parent().removeClass(d+h)):(b.hide.call(b,d+h,b.get_wrapper(e)),g.parent().removeClass(d+h)),a(".top-off-canvas-toggle").attr("aria-expanded","true")}).on("click.fndtn.offcanvas",".bottom-off-canvas-toggle",function(e){b.click_toggle_class(e,d+g),"overlap"!==b.settings.open_method&&c(".bottom-submenu").removeClass(d+g),a(".bottom-off-canvas-toggle").attr("aria-expanded","true")}).on("click.fndtn.offcanvas",".bottom-off-canvas-menu a",function(e){var f=b.get_settings(e),h=c(this).parent();!f.close_on_click||h.hasClass("has-submenu")||h.hasClass("back")?c(this).parent().hasClass("has-submenu")?(e.preventDefault(),c(this).siblings(".bottom-submenu").toggleClass(d+g)):h.hasClass("back")&&(e.preventDefault(),h.parent().removeClass(d+g)):(b.hide.call(b,d+g,b.get_wrapper(e)),h.parent().removeClass(d+g)),a(".bottom-off-canvas-toggle").attr("aria-expanded","true")}).on("click.fndtn.offcanvas",".exit-off-canvas",function(g){b.click_remove_class(g,d+f),c(".right-submenu").removeClass(d+f),e&&(b.click_remove_class(g,d+e),c(".left-submenu").removeClass(d+f)),a(".right-off-canvas-toggle").attr("aria-expanded","true")}).on("click.fndtn.offcanvas",".exit-off-canvas",function(c){b.click_remove_class(c,d+f),a(".left-off-canvas-toggle").attr("aria-expanded","false"),e&&(b.click_remove_class(c,d+e),a(".right-off-canvas-toggle").attr("aria-expanded","false"))}).on("click.fndtn.offcanvas",".exit-off-canvas",function(e){b.click_remove_class(e,d+g),c(".bottom-submenu").removeClass(d+g),h&&(b.click_remove_class(e,d+h),c(".top-submenu").removeClass(d+g)),a(".bottom-off-canvas-toggle").attr("aria-expanded","true")}).on("click.fndtn.offcanvas",".exit-off-canvas",function(c){b.click_remove_class(c,d+g),a(".top-off-canvas-toggle").attr("aria-expanded","false"),h&&(b.click_remove_class(c,d+h),a(".bottom-off-canvas-toggle").attr("aria-expanded","false"))})},toggle:function(a,b){b=b||this.get_wrapper(),b.is("."+a)?this.hide(a,b):this.show(a,b)},show:function(a,b){b=b||this.get_wrapper(),b.trigger("open.fndtn.offcanvas"),b.addClass(a)},hide:function(a,b){b=b||this.get_wrapper(),b.trigger("close.fndtn.offcanvas"),b.removeClass(a)},click_toggle_class:function(a,b){a.preventDefault();var c=this.get_wrapper(a);this.toggle(b,c)},click_remove_class:function(a,b){a.preventDefault();var c=this.get_wrapper(a);this.hide(b,c)},get_settings:function(a){var b=this.S(a.target).closest("["+this.attr_name()+"]");return b.data(this.attr_name(!0)+"-init")||this.settings},get_wrapper:function(a){var b=this.S(a?a.target:this.scope).closest(".off-canvas-wrap");return 0===b.length&&(b=this.S(".off-canvas-wrap")),b},reflow:function(){}}}(jQuery,window,window.document),function(a,b,c,d){"use strict";var e=function(){},f=function(e,f){if(e.hasClass(f.slides_container_class))return this;var j,k,l,m,n,o,p=this,q=e,r=0,s=!1;p.slides=function(){return q.children(f.slide_selector)},p.slides().first().addClass(f.active_slide_class),p.update_slide_number=function(b){f.slide_number&&(k.find("span:first").text(parseInt(b)+1),k.find("span:last").text(p.slides().length)),f.bullets&&(l.children().removeClass(f.bullets_active_class),a(l.children().get(b)).addClass(f.bullets_active_class))},p.update_active_link=function(b){var c=a('[data-orbit-link="'+p.slides().eq(b).attr("data-orbit-slide")+'"]');c.siblings().removeClass(f.bullets_active_class),c.addClass(f.bullets_active_class)},p.build_markup=function(){q.wrap('<div class="'+f.container_class+'"></div>'),j=q.parent(),q.addClass(f.slides_container_class),f.stack_on_small&&j.addClass(f.stack_on_small_class),f.navigation_arrows&&(j.append(a('<a href="#"><span></span></a>').addClass(f.prev_class)),j.append(a('<a href="#"><span></span></a>').addClass(f.next_class))),f.timer&&(m=a("<div>").addClass(f.timer_container_class),m.append("<span>"),m.append(a("<div>").addClass(f.timer_progress_class)),m.addClass(f.timer_paused_class),j.append(m)),f.slide_number&&(k=a("<div>").addClass(f.slide_number_class),k.append("<span></span> "+f.slide_number_text+" <span></span>"),j.append(k)),f.bullets&&(l=a("<ol>").addClass(f.bullets_container_class),j.append(l),l.wrap('<div class="orbit-bullets-container"></div>'),p.slides().each(function(b,c){var d=a("<li>").attr("data-orbit-slide",b).on("click",p.link_bullet);l.append(d)}))},p._goto=function(b,c){if(b===r)return!1;"object"==typeof o&&o.restart();var d=p.slides(),e="next";if(s=!0,r>b&&(e="prev"),b>=d.length){if(!f.circular)return!1;b=0}else if(0>b){if(!f.circular)return!1;b=d.length-1}var g=a(d.get(r)),h=a(d.get(b));g.css("zIndex",2),g.removeClass(f.active_slide_class),h.css("zIndex",4).addClass(f.active_slide_class),q.trigger("before-slide-change.fndtn.orbit"),f.before_slide_change(),p.update_active_link(b);var i=function(){var a=function(){r=b,s=!1,c===!0&&(o=p.create_timer(),o.start()),p.update_slide_number(r),q.trigger("after-slide-change.fndtn.orbit",[{slide_number:r,total_slides:d.length}]),f.after_slide_change(r,d.length)};q.outerHeight()!=h.outerHeight()&&f.variable_height?q.animate({height:h.outerHeight()},250,"linear",a):a()};if(1===d.length)return i(),!1;var j=function(){"next"===e&&n.next(g,h,i),"prev"===e&&n.prev(g,h,i)};h.outerHeight()>q.outerHeight()&&f.variable_height?q.animate({height:h.outerHeight()},250,"linear",j):j()},p.next=function(a){a.stopImmediatePropagation(),a.preventDefault(),p._goto(r+1)},p.prev=function(a){a.stopImmediatePropagation(),a.preventDefault(),p._goto(r-1)},p.link_custom=function(b){b.preventDefault();var c=a(this).attr("data-orbit-link");if("string"==typeof c&&""!=(c=a.trim(c))){var d=j.find("[data-orbit-slide="+c+"]");-1!=d.index()&&p._goto(d.index())}},p.link_bullet=function(b){var c=a(this).attr("data-orbit-slide");if("string"==typeof c&&""!=(c=a.trim(c)))if(isNaN(parseInt(c))){var d=j.find("[data-orbit-slide="+c+"]");-1!=d.index()&&p._goto(d.index()+1)}else p._goto(parseInt(c))},p.timer_callback=function(){p._goto(r+1,!0)},p.compute_dimensions=function(){var b=a(p.slides().get(r)),c=b.outerHeight();f.variable_height||p.slides().each(function(){a(this).outerHeight()>c&&(c=a(this).outerHeight())}),q.height(c)},p.create_timer=function(){var a=new g(j.find("."+f.timer_container_class),f,p.timer_callback);return a},p.stop_timer=function(){"object"==typeof o&&o.stop()},p.toggle_timer=function(){var a=j.find("."+f.timer_container_class);a.hasClass(f.timer_paused_class)?("undefined"==typeof o&&(o=p.create_timer()),o.start()):"object"==typeof o&&o.stop()},p.init=function(){p.build_markup(),f.timer&&(o=p.create_timer(),Foundation.utils.image_loaded(this.slides().children("img"),o.start)),n=new i(f,q),"slide"===f.animation&&(n=new h(f,q)),j.on("click","."+f.next_class,p.next),j.on("click","."+f.prev_class,p.prev),f.next_on_click&&j.on("click","."+f.slides_container_class+" [data-orbit-slide]",p.link_bullet),j.on("click",p.toggle_timer),f.swipe&&j.on("touchstart.fndtn.orbit",function(a){a.touches||(a=a.originalEvent);var b={start_page_x:a.touches[0].pageX,start_page_y:a.touches[0].pageY,start_time:(new Date).getTime(),delta_x:0,is_scrolling:d};j.data("swipe-transition",b),a.stopPropagation()}).on("touchmove.fndtn.orbit",function(a){if(a.touches||(a=a.originalEvent),!(a.touches.length>1||a.scale&&1!==a.scale)){var b=j.data("swipe-transition");if("undefined"==typeof b&&(b={}),b.delta_x=a.touches[0].pageX-b.start_page_x,"undefined"==typeof b.is_scrolling&&(b.is_scrolling=!!(b.is_scrolling||Math.abs(b.delta_x)<Math.abs(a.touches[0].pageY-b.start_page_y))),!b.is_scrolling&&!b.active){a.preventDefault();var c=b.delta_x<0?r+1:r-1;b.active=!0,p._goto(c)}}}).on("touchend.fndtn.orbit",function(a){j.data("swipe-transition",{}),a.stopPropagation()}),j.on("mouseenter.fndtn.orbit",function(a){f.timer&&f.pause_on_hover&&p.stop_timer()}).on("mouseleave.fndtn.orbit",function(a){f.timer&&f.resume_on_mouseout&&o.start()}),a(c).on("click","[data-orbit-link]",p.link_custom),a(b).on("load resize",p.compute_dimensions),Foundation.utils.image_loaded(this.slides().children("img"),p.compute_dimensions),Foundation.utils.image_loaded(this.slides().children("img"),function(){j.prev("."+f.preloader_class).css("display","none"),p.update_slide_number(0),p.update_active_link(0),q.trigger("ready.fndtn.orbit")})},p.init()},g=function(a,b,c){var d,e,f=this,g=b.timer_speed,h=a.find("."+b.timer_progress_class),i=-1;this.update_progress=function(a){var b=h.clone();b.attr("style",""),b.css("width",a+"%"),h.replaceWith(b),h=b},this.restart=function(){clearTimeout(e),a.addClass(b.timer_paused_class),i=-1,f.update_progress(0)},this.start=function(){return a.hasClass(b.timer_paused_class)?(i=-1===i?g:i,a.removeClass(b.timer_paused_class),d=(new Date).getTime(),h.animate({width:"100%"},i,"linear"),e=setTimeout(function(){f.restart(),c()},i),void a.trigger("timer-started.fndtn.orbit")):!0},this.stop=function(){if(a.hasClass(b.timer_paused_class))return!0;clearTimeout(e),a.addClass(b.timer_paused_class);var c=(new Date).getTime();i-=c-d;var h=100-i/g*100;f.update_progress(h),a.trigger("timer-stopped.fndtn.orbit")}},h=function(b,c){var d=b.animation_speed,e=1===a("html[dir=rtl]").length,f=e?"marginRight":"marginLeft",g={};g[f]="0%",this.next=function(a,b,c){a.animate({marginLeft:"-100%"},d),b.animate(g,d,function(){a.css(f,"100%"),c()})},this.prev=function(a,b,c){a.animate({marginLeft:"100%"},d),b.css(f,"-100%"),b.animate(g,d,function(){a.css(f,"100%"),c()})}},i=function(b,c){var d=b.animation_speed;1===a("html[dir=rtl]").length;this.next=function(a,b,c){b.css({margin:"0%",opacity:"0.01"}),b.animate({opacity:"1"},d,"linear",function(){a.css("margin","100%"),c()})},this.prev=function(a,b,c){b.css({margin:"0%",opacity:"0.01"}),b.animate({opacity:"1"},d,"linear",function(){a.css("margin","100%"),c()})}};Foundation.libs=Foundation.libs||{},Foundation.libs.orbit={name:"orbit",version:"5.5.3",settings:{animation:"slide",timer_speed:1e4,pause_on_hover:!0,resume_on_mouseout:!1,next_on_click:!0,animation_speed:500,stack_on_small:!1,navigation_arrows:!0,slide_number:!0,slide_number_text:"of",container_class:"orbit-container",stack_on_small_class:"orbit-stack-on-small",next_class:"orbit-next",prev_class:"orbit-prev",timer_container_class:"orbit-timer",timer_paused_class:"paused",timer_progress_class:"orbit-progress",slides_container_class:"orbit-slides-container",preloader_class:"preloader",slide_selector:"*",bullets_container_class:"orbit-bullets",bullets_active_class:"active",slide_number_class:"orbit-slide-number",caption_class:"orbit-caption",active_slide_class:"active",orbit_transition_class:"orbit-transitioning",bullets:!0,circular:!0,timer:!0,variable_height:!1,swipe:!0,before_slide_change:e,after_slide_change:e},init:function(a,b,c){this.bindings(b,c)},events:function(a){var b=new f(this.S(a),this.S(a).data("orbit-init"));this.S(a).data(this.name+"-instance",b)},reflow:function(){var a=this;if(a.S(a.scope).is("[data-orbit]")){var b=a.S(a.scope),c=b.data(a.name+"-instance");c.compute_dimensions()}else a.S("[data-orbit]",a.scope).each(function(b,c){var d=a.S(c),e=(a.data_options(d),d.data(a.name+"-instance"));e.compute_dimensions()})}}}(jQuery,window,window.document),function(a,b,c,d){"use strict";function e(a){var b=/fade/i.test(a),c=/pop/i.test(a);return{animate:b||c,pop:c,fade:b}}var f=[];Foundation.libs.reveal={name:"reveal",version:"5.5.3",locked:!1,settings:{animation:"fadeAndPop",animation_speed:250,close_on_background_click:!0,close_on_esc:!0,dismiss_modal_class:"close-reveal-modal",multiple_opened:!1,bg_class:"reveal-modal-bg",root_element:"body",open:function(){},opened:function(){},close:function(){},closed:function(){},on_ajax_error:a.noop,bg:a(".reveal-modal-bg"),css:{open:{opacity:0,visibility:"visible",display:"block"},close:{opacity:1,visibility:"hidden",display:"none"}}},init:function(b,c,d){a.extend(!0,this.settings,c,d),this.bindings(c,d)},events:function(a){var b=this,d=b.S;return d(this.scope).off(".reveal").on("click.fndtn.reveal","["+this.add_namespace("data-reveal-id")+"]:not([disabled])",function(a){if(a.preventDefault(),!b.locked){var c=d(this),e=c.data(b.data_attr("reveal-ajax")),f=c.data(b.data_attr("reveal-replace-content"));if(b.locked=!0,"undefined"==typeof e)b.open.call(b,c);else{var g=e===!0?c.attr("href"):e;b.open.call(b,c,{url:g},{replaceContentSel:f})}}}),d(c).on("click.fndtn.reveal",this.close_targets(),function(a){if(a.preventDefault(),!b.locked){var c=d("["+b.attr_name()+"].open").data(b.attr_name(!0)+"-init")||b.settings,e=d(a.target)[0]===d("."+c.bg_class)[0];if(e){if(!c.close_on_background_click)return;a.stopPropagation()}b.locked=!0,b.close.call(b,e?d("["+b.attr_name()+"].open:not(.toback)"):d(this).closest("["+b.attr_name()+"]"))}}),d("["+b.attr_name()+"]",this.scope).length>0?d(this.scope).on("open.fndtn.reveal",this.settings.open).on("opened.fndtn.reveal",this.settings.opened).on("opened.fndtn.reveal",this.open_video).on("close.fndtn.reveal",this.settings.close).on("closed.fndtn.reveal",this.settings.closed).on("closed.fndtn.reveal",this.close_video):d(this.scope).on("open.fndtn.reveal","["+b.attr_name()+"]",this.settings.open).on("opened.fndtn.reveal","["+b.attr_name()+"]",this.settings.opened).on("opened.fndtn.reveal","["+b.attr_name()+"]",this.open_video).on("close.fndtn.reveal","["+b.attr_name()+"]",this.settings.close).on("closed.fndtn.reveal","["+b.attr_name()+"]",this.settings.closed).on("closed.fndtn.reveal","["+b.attr_name()+"]",this.close_video),!0},key_up_on:function(a){var b=this;return b.S("body").off("keyup.fndtn.reveal").on("keyup.fndtn.reveal",function(a){var c=b.S("["+b.attr_name()+"].open"),d=c.data(b.attr_name(!0)+"-init")||b.settings;d&&27===a.which&&d.close_on_esc&&!b.locked&&b.close.call(b,c)}),!0},key_up_off:function(a){return this.S("body").off("keyup.fndtn.reveal"),!0},open:function(c,e){var g,h=this;c?"undefined"!=typeof c.selector?g=h.S("#"+c.data(h.data_attr("reveal-id"))).first():(g=h.S(this.scope),e=c):g=h.S(this.scope);var i=g.data(h.attr_name(!0)+"-init");if(i=i||this.settings,g.hasClass("open")&&c!==d&&c.attr("data-reveal-id")==g.attr("id"))return h.close(g);if(!g.hasClass("open")){var j=h.S("["+h.attr_name()+"].open");"undefined"==typeof g.data("css-top")&&g.data("css-top",parseInt(g.css("top"),10)).data("offset",this.cache_offset(g)),g.attr("tabindex","0").attr("aria-hidden","false"),this.key_up_on(g),g.on("open.fndtn.reveal",function(a){"fndtn.reveal"!==a.namespace}),g.on("open.fndtn.reveal").trigger("open.fndtn.reveal"),j.length<1&&this.toggle_bg(g,!0),"string"==typeof e&&(e={url:e});var k=function(){j.length>0&&(i.multiple_opened?h.to_back(j):h.hide(j,i.css.close)),i.multiple_opened&&f.push(g),h.show(g,i.css.open)};if("undefined"!=typeof e&&e.url){var l="undefined"!=typeof e.success?e.success:null;a.extend(e,{success:function(b,c,d){if(a.isFunction(l)){var e=l(b,c,d);"string"==typeof e&&(b=e)}"undefined"!=typeof options&&"undefined"!=typeof options.replaceContentSel?g.find(options.replaceContentSel).html(b):g.html(b),h.S(g).foundation("section","reflow"),h.S(g).children().foundation(),k()}}),i.on_ajax_error!==a.noop&&a.extend(e,{error:i.on_ajax_error}),a.ajax(e)}else k()}h.S(b).trigger("resize")},close:function(b){var b=b&&b.length?b:this.S(this.scope),c=this.S("["+this.attr_name()+"].open"),d=b.data(this.attr_name(!0)+"-init")||this.settings,e=this;if(c.length>0)if(b.removeAttr("tabindex","0").attr("aria-hidden","true"),this.locked=!0,this.key_up_off(b),b.trigger("close.fndtn.reveal"),(d.multiple_opened&&1===c.length||!d.multiple_opened||b.length>1)&&(e.toggle_bg(b,!1),e.to_front(b)),d.multiple_opened){var g=b.is(":not(.toback)");e.hide(b,d.css.close,d),g?f.pop():f=a.grep(f,function(a){var c=a[0]===b[0];return c&&e.to_front(b),!c}),f.length>0&&e.to_front(f[f.length-1])}else e.hide(c,d.css.close,d)},close_targets:function(){var a="."+this.settings.dismiss_modal_class;return this.settings.close_on_background_click?a+", ."+this.settings.bg_class:a},toggle_bg:function(b,c){0===this.S("."+this.settings.bg_class).length&&(this.settings.bg=a("<div />",{"class":this.settings.bg_class}).appendTo("body").hide());var e=this.settings.bg.filter(":visible").length>0;c!=e&&((c==d?e:!c)?this.hide(this.settings.bg):this.show(this.settings.bg))},show:function(c,d){if(d){var f=c.data(this.attr_name(!0)+"-init")||this.settings,g=f.root_element,h=this;if(0===c.parent(g).length){var i=c.wrap('<div style="display: none;" />').parent();c.on("closed.fndtn.reveal.wrapped",function(){c.detach().appendTo(i),c.unwrap().unbind("closed.fndtn.reveal.wrapped")}),c.detach().appendTo(g)}var j=e(f.animation);if(j.animate||(this.locked=!1),j.pop){d.top=a(b).scrollTop()-c.data("offset")+"px";var k={top:a(b).scrollTop()+c.data("css-top")+"px",opacity:1};return setTimeout(function(){return c.css(d).animate(k,f.animation_speed,"linear",function(){h.locked=!1,c.trigger("opened.fndtn.reveal")}).addClass("open")},f.animation_speed/2)}if(d.top=a(b).scrollTop()+c.data("css-top")+"px",j.fade){var k={opacity:1};return setTimeout(function(){return c.css(d).animate(k,f.animation_speed,"linear",function(){h.locked=!1,c.trigger("opened.fndtn.reveal")}).addClass("open")},f.animation_speed/2)}return c.css(d).show().css({opacity:1}).addClass("open").trigger("opened.fndtn.reveal")}var f=this.settings;return e(f.animation).fade?c.fadeIn(f.animation_speed/2):(this.locked=!1,c.show())},to_back:function(a){a.addClass("toback")},to_front:function(a){a.removeClass("toback")},hide:function(c,d){if(d){var f=c.data(this.attr_name(!0)+"-init"),g=this;f=f||this.settings;var h=e(f.animation);if(h.animate||(this.locked=!1),h.pop){var i={top:-a(b).scrollTop()-c.data("offset")+"px",opacity:0};return setTimeout(function(){return c.animate(i,f.animation_speed,"linear",function(){g.locked=!1,c.css(d).trigger("closed.fndtn.reveal")}).removeClass("open")},f.animation_speed/2)}if(h.fade){var i={opacity:0};return setTimeout(function(){return c.animate(i,f.animation_speed,"linear",function(){g.locked=!1,c.css(d).trigger("closed.fndtn.reveal")}).removeClass("open")},f.animation_speed/2)}return c.hide().css(d).removeClass("open").trigger("closed.fndtn.reveal")}var f=this.settings;return e(f.animation).fade?c.fadeOut(f.animation_speed/2):c.hide()},close_video:function(b){var c=a(".flex-video",b.target),d=a("iframe",c);d.length>0&&(d.attr("data-src",d[0].src),d.attr("src",d.attr("src")),c.hide())},open_video:function(b){var c=a(".flex-video",b.target),e=c.find("iframe");if(e.length>0){var f=e.attr("data-src");if("string"==typeof f)e[0].src=e.attr("data-src");else{var g=e[0].src;e[0].src=d,e[0].src=g}c.show()}},data_attr:function(a){return this.namespace.length>0?this.namespace+"-"+a:a},cache_offset:function(a){var b=a.show().height()+parseInt(a.css("top"),10)+a.scrollY;return a.hide(),b},off:function(){a(this.scope).off(".fndtn.reveal")},reflow:function(){}}}(jQuery,window,window.document),function(a,b,c,d){"use strict";Foundation.libs.slider={name:"slider",version:"5.5.3",settings:{start:0,end:100,step:1,precision:2,initial:null,display_selector:"",vertical:!1,trigger_input_change:!1,on_change:function(){}},cache:{},init:function(a,b,c){Foundation.inherit(this,"throttle"),this.bindings(b,c),this.reflow()},events:function(){var c=this;a(this.scope).off(".slider").on("mousedown.fndtn.slider touchstart.fndtn.slider pointerdown.fndtn.slider","["+c.attr_name()+"]:not(.disabled, [disabled]) .range-slider-handle",function(b){c.cache.active||(b.preventDefault(),c.set_active_slider(a(b.target)))}).on("mousemove.fndtn.slider touchmove.fndtn.slider pointermove.fndtn.slider",function(d){if(c.cache.active)if(d.preventDefault(),a.data(c.cache.active[0],"settings").vertical){var e=0;d.pageY||(e=b.scrollY),c.calculate_position(c.cache.active,c.get_cursor_position(d,"y")+e)}else c.calculate_position(c.cache.active,c.get_cursor_position(d,"x"))}).on("mouseup.fndtn.slider touchend.fndtn.slider pointerup.fndtn.slider",function(d){if(!c.cache.active){var e="slider"===a(d.target).attr("role")?a(d.target):a(d.target).closest(".range-slider").find("[role='slider']");if(e.length&&!e.parent().hasClass("disabled")&&!e.parent().attr("disabled"))if(c.set_active_slider(e),a.data(c.cache.active[0],"settings").vertical){var f=0;d.pageY||(f=b.scrollY),c.calculate_position(c.cache.active,c.get_cursor_position(d,"y")+f)}else c.calculate_position(c.cache.active,c.get_cursor_position(d,"x"))}c.remove_active_slider()}).on("change.fndtn.slider",function(a){c.settings.on_change()}),c.S(b).on("resize.fndtn.slider",c.throttle(function(a){c.reflow()},300)),this.S("["+this.attr_name()+"]").each(function(){var b=a(this),d=b.children(".range-slider-handle")[0],e=c.initialize_settings(d);""!=e.display_selector&&a(e.display_selector).each(function(){a(this).attr("value")&&a(this).off("change").on("change",function(){b.foundation("slider","set_value",a(this).val())})})})},get_cursor_position:function(a,b){var c,d="page"+b.toUpperCase(),e="client"+b.toUpperCase();return"undefined"!=typeof a[d]?c=a[d]:"undefined"!=typeof a.originalEvent[e]?c=a.originalEvent[e]:a.originalEvent.touches&&a.originalEvent.touches[0]&&"undefined"!=typeof a.originalEvent.touches[0][e]?c=a.originalEvent.touches[0][e]:a.currentPoint&&"undefined"!=typeof a.currentPoint[b]&&(c=a.currentPoint[b]),c},set_active_slider:function(a){this.cache.active=a},remove_active_slider:function(){this.cache.active=null},calculate_position:function(b,c){var d=this,e=a.data(b[0],"settings"),f=(a.data(b[0],"handle_l"),a.data(b[0],"handle_o"),a.data(b[0],"bar_l")),g=a.data(b[0],"bar_o");requestAnimationFrame(function(){var a;a=Foundation.rtl&&!e.vertical?d.limit_to((g+f-c)/f,0,1):d.limit_to((c-g)/f,0,1),a=e.vertical?1-a:a;var h=d.normalized_value(a,e.start,e.end,e.step,e.precision);d.set_ui(b,h)})},set_ui:function(b,c){var d=a.data(b[0],"settings"),e=a.data(b[0],"handle_l"),f=a.data(b[0],"bar_l"),g=this.normalized_percentage(c,d.start,d.end),h=g*(f-e)-1,i=100*g,j=b.parent(),k=b.parent().children("input[type=hidden]");Foundation.rtl&&!d.vertical&&(h=-h),h=d.vertical?-h+f-e+1:h,this.set_translate(b,h,d.vertical),d.vertical?b.siblings(".range-slider-active-segment").css("height",i+"%"):b.siblings(".range-slider-active-segment").css("width",i+"%"),j.attr(this.attr_name(),c).trigger("change.fndtn.slider"),k.val(c),d.trigger_input_change&&k.trigger("change.fndtn.slider"),b[0].hasAttribute("aria-valuemin")||b.attr({"aria-valuemin":d.start,"aria-valuemax":d.end}),b.attr("aria-valuenow",c),""!=d.display_selector&&a(d.display_selector).each(function(){this.hasAttribute("value")?a(this).val(c):a(this).text(c)})},normalized_percentage:function(a,b,c){return Math.min(1,(a-b)/(c-b))},normalized_value:function(a,b,c,d,e){var f=c-b,g=a*f,h=(g-g%d)/d,i=g%d,j=i>=.5*d?d:0;return(h*d+j+b).toFixed(e)},set_translate:function(b,c,d){d?a(b).css("-webkit-transform","translateY("+c+"px)").css("-moz-transform","translateY("+c+"px)").css("-ms-transform","translateY("+c+"px)").css("-o-transform","translateY("+c+"px)").css("transform","translateY("+c+"px)"):a(b).css("-webkit-transform","translateX("+c+"px)").css("-moz-transform","translateX("+c+"px)").css("-ms-transform","translateX("+c+"px)").css("-o-transform","translateX("+c+"px)").css("transform","translateX("+c+"px)")},limit_to:function(a,b,c){return Math.min(Math.max(a,b),c)},initialize_settings:function(b){var c,d=a.extend({},this.settings,this.data_options(a(b).parent()));return null===d.precision&&(c=(""+d.step).match(/\.([\d]*)/),d.precision=c&&c[1]?c[1].length:0),d.vertical?(a.data(b,"bar_o",a(b).parent().offset().top),a.data(b,"bar_l",a(b).parent().outerHeight()),a.data(b,"handle_o",a(b).offset().top),a.data(b,"handle_l",a(b).outerHeight())):(a.data(b,"bar_o",a(b).parent().offset().left),a.data(b,"bar_l",a(b).parent().outerWidth()),a.data(b,"handle_o",a(b).offset().left),a.data(b,"handle_l",a(b).outerWidth())),a.data(b,"bar",a(b).parent()),a.data(b,"settings",d)},set_initial_position:function(b){var c=a.data(b.children(".range-slider-handle")[0],"settings"),d="number"!=typeof c.initial||isNaN(c.initial)?Math.floor(.5*(c.end-c.start)/c.step)*c.step+c.start:c.initial,e=b.children(".range-slider-handle");this.set_ui(e,d)},set_value:function(b){var c=this;a("["+c.attr_name()+"]",this.scope).each(function(){a(this).attr(c.attr_name(),b)}),a(this.scope).attr(c.attr_name())&&a(this.scope).attr(c.attr_name(),b),c.reflow()},reflow:function(){var b=this;b.S("["+this.attr_name()+"]").each(function(){var c=a(this).children(".range-slider-handle")[0],d=a(this).attr(b.attr_name());b.initialize_settings(c),d?b.set_ui(a(c),parseFloat(d)):b.set_initial_position(a(this))})}}}(jQuery,window,window.document),function(a,b,c,d){"use strict";Foundation.libs.tab={name:"tab",version:"5.5.3",settings:{active_class:"active",callback:function(){},deep_linking:!1,scroll_to_content:!0,is_hover:!1},default_tab_hashes:[],init:function(a,b,c){var d=this,e=this.S;e("["+this.attr_name()+"] > .active > a",this.scope).each(function(){d.default_tab_hashes.push(this.hash)}),this.bindings(b,c),this.handle_location_hash_change()},events:function(){var a=this,c=this.S,d=function(b,d){var e=c(d).closest("["+a.attr_name()+"]").data(a.attr_name(!0)+"-init");if(!e.is_hover||Modernizr.touch){var f=b.keyCode||b.which;9!==f&&(b.preventDefault(),b.stopPropagation()),a.toggle_active_tab(c(d).parent())}};c(this.scope).off(".tab").on("keydown.fndtn.tab","["+this.attr_name()+"] > * > a",function(a){var b=a.keyCode||a.which;if(13===b||32===b){var c=this;d(a,c)}}).on("click.fndtn.tab","["+this.attr_name()+"] > * > a",function(a){var b=this;d(a,b)}).on("mouseenter.fndtn.tab","["+this.attr_name()+"] > * > a",function(b){var d=c(this).closest("["+a.attr_name()+"]").data(a.attr_name(!0)+"-init");d.is_hover&&a.toggle_active_tab(c(this).parent())}),c(b).on("hashchange.fndtn.tab",function(b){b.preventDefault(),a.handle_location_hash_change()})},handle_location_hash_change:function(){var b=this,c=this.S;c("["+this.attr_name()+"]",this.scope).each(function(){var e=c(this).data(b.attr_name(!0)+"-init");if(e.deep_linking){var f;if(f=e.scroll_to_content?b.scope.location.hash:b.scope.location.hash.replace("fndtn-",""),""!=f){var g=c(f);if(g.hasClass("content")&&g.parent().hasClass("tabs-content"))b.toggle_active_tab(a("["+b.attr_name()+"] > * > a[href="+f+"]").parent());else{var h=g.closest(".content").attr("id");h!=d&&b.toggle_active_tab(a("["+b.attr_name()+"] > * > a[href=#"+h+"]").parent(),f)}}else for(var i=0;i<b.default_tab_hashes.length;i++)b.toggle_active_tab(a("["+b.attr_name()+"] > * > a[href="+b.default_tab_hashes[i]+"]").parent())}})},toggle_active_tab:function(e,f){var g=this,h=g.S,i=e.closest("["+this.attr_name()+"]"),j=e.find("a"),k=e.children("a").first(),l="#"+k.attr("href").split("#")[1],m=h(l),n=e.siblings(),o=i.data(this.attr_name(!0)+"-init"),p=function(b){var d,e=a(this),f=a(this).parents("li").prev().children('[role="tab"]'),g=a(this).parents("li").next().children('[role="tab"]');switch(b.keyCode){case 37:d=f;break;case 39:d=g;break;default:d=!1}d.length&&(e.attr({tabindex:"-1","aria-selected":null}),d.attr({tabindex:"0","aria-selected":!0}).focus()),a('[role="tabpanel"]').attr("aria-hidden","true"),a("#"+a(c.activeElement).attr("href").substring(1)).attr("aria-hidden",null)},q=function(a){var c=o.scroll_to_content?g.default_tab_hashes[0]:"fndtn-"+g.default_tab_hashes[0].replace("#","");(a!==c||b.location.hash)&&(b.location.hash=a)};k.data("tab-content")&&(l="#"+k.data("tab-content").split("#")[1],m=h(l)),o.deep_linking&&(o.scroll_to_content?(q(f||l),f==d||f==l?e.parent()[0].scrollIntoView():h(l)[0].scrollIntoView()):q(f!=d?"fndtn-"+f.replace("#",""):"fndtn-"+l.replace("#",""))),e.addClass(o.active_class).triggerHandler("opened"),j.attr({"aria-selected":"true",tabindex:0}),n.removeClass(o.active_class),n.find("a").attr({"aria-selected":"false"}),m.siblings().removeClass(o.active_class).attr({"aria-hidden":"true"}),m.addClass(o.active_class).attr("aria-hidden","false").removeAttr("tabindex"),o.callback(e),m.triggerHandler("toggled",[m]),i.triggerHandler("toggled",[e]),j.off("keydown").on("keydown",p)},data_attr:function(a){return this.namespace.length>0?this.namespace+"-"+a:a},off:function(){},reflow:function(){}}}(jQuery,window,window.document),function(a,b,c,d){"use strict";Foundation.libs.tooltip={name:"tooltip",version:"5.5.3",settings:{additional_inheritable_classes:[],tooltip_class:".tooltip",append_to:"body",touch_close_text:"Tap To Close",disable_for_touch:!1,hover_delay:200,fade_in_duration:150,fade_out_duration:150,show_on:"all",tip_template:function(a,b){return'<span data-selector="'+a+'" id="'+a+'" class="'+Foundation.libs.tooltip.settings.tooltip_class.substring(1)+'" role="tooltip">'+b+'<span class="nub"></span></span>'}},cache:{},init:function(a,b,c){Foundation.inherit(this,"random_str"),this.bindings(b,c)},should_show:function(b,c){var d=a.extend({},this.settings,this.data_options(b));return"all"===d.show_on?!0:this.small()&&"small"===d.show_on?!0:this.medium()&&"medium"===d.show_on?!0:this.large()&&"large"===d.show_on?!0:!1},medium:function(){return matchMedia(Foundation.media_queries.medium).matches},large:function(){return matchMedia(Foundation.media_queries.large).matches},events:function(b){function c(a,b,c){a.timer||(c?(a.timer=null,e.showTip(b)):a.timer=setTimeout(function(){a.timer=null,e.showTip(b)}.bind(a),e.settings.hover_delay))}function d(a,b){a.timer&&(clearTimeout(a.timer),a.timer=null),e.hide(b)}var e=this,f=e.S;e.create(this.S(b)),a(this.scope).off(".tooltip").on("mouseenter.fndtn.tooltip mouseleave.fndtn.tooltip touchstart.fndtn.tooltip MSPointerDown.fndtn.tooltip","["+this.attr_name()+"]",function(b){var g=f(this),h=a.extend({},e.settings,e.data_options(g)),i=!1;if(Modernizr.touch&&/touchstart|MSPointerDown/i.test(b.type)&&f(b.target).is("a"))return!1;if(/mouse/i.test(b.type)&&e.ie_touch(b))return!1;if(g.hasClass("open"))Modernizr.touch&&/touchstart|MSPointerDown/i.test(b.type)&&b.preventDefault(),e.hide(g);else{if(h.disable_for_touch&&Modernizr.touch&&/touchstart|MSPointerDown/i.test(b.type))return;if(!h.disable_for_touch&&Modernizr.touch&&/touchstart|MSPointerDown/i.test(b.type)&&(b.preventDefault(),f(h.tooltip_class+".open").hide(),i=!0,a(".open["+e.attr_name()+"]").length>0)){var j=f(a(".open["+e.attr_name()+"]")[0]);e.hide(j)}/enter|over/i.test(b.type)?c(this,g):"mouseout"===b.type||"mouseleave"===b.type?d(this,g):c(this,g,!0)}}).on("mouseleave.fndtn.tooltip touchstart.fndtn.tooltip MSPointerDown.fndtn.tooltip","["+this.attr_name()+"].open",function(b){return/mouse/i.test(b.type)&&e.ie_touch(b)?!1:void(("touch"!=a(this).data("tooltip-open-event-type")||"mouseleave"!=b.type)&&("mouse"==a(this).data("tooltip-open-event-type")&&/MSPointerDown|touchstart/i.test(b.type)?e.convert_to_touch(a(this)):d(this,a(this))))}).on("DOMNodeRemoved DOMAttrModified","["+this.attr_name()+"]:not(a)",function(a){d(this,f(this))})},ie_touch:function(a){return!1},showTip:function(a){var b=this.getTip(a);return this.should_show(a,b)?this.show(a):void 0},getTip:function(b){var c=this.selector(b),d=a.extend({},this.settings,this.data_options(b)),e=null;return c&&(e=this.S('span[data-selector="'+c+'"]'+d.tooltip_class)),"object"==typeof e?e:!1},selector:function(a){var b=a.attr(this.attr_name())||a.attr("data-selector");return"string"!=typeof b&&(b=this.random_str(6),a.attr("data-selector",b).attr("aria-describedby",b)),b},create:function(c){var d=this,e=a.extend({},this.settings,this.data_options(c)),f=this.settings.tip_template;"string"==typeof e.tip_template&&b.hasOwnProperty(e.tip_template)&&(f=b[e.tip_template]);
+var g=a(f(this.selector(c),a("<div></div>").html(c.attr("title")).html())),h=this.inheritable_classes(c);g.addClass(h).appendTo(e.append_to),Modernizr.touch&&(g.append('<span class="tap-to-close">'+e.touch_close_text+"</span>"),g.on("touchstart.fndtn.tooltip MSPointerDown.fndtn.tooltip",function(a){d.hide(c)})),c.removeAttr("title").attr("title","")},reposition:function(b,c,d){var e,f,g,h,i;c.css("visibility","hidden").show(),e=b.data("width"),f=c.children(".nub"),g=f.outerHeight(),h=f.outerWidth(),this.small()?c.css({width:"100%"}):c.css({width:e?e:"auto"}),i=function(a,b,c,d,e,f){return a.css({top:b?b:"auto",bottom:d?d:"auto",left:e?e:"auto",right:c?c:"auto"}).end()};var j=b.offset().top,k=b.offset().left,l=b.outerHeight();if(i(c,j+l+10,"auto","auto",k),this.small())i(c,j+l+10,"auto","auto",12.5,a(this.scope).width()),c.addClass("tip-override"),i(f,-g,"auto","auto",k);else{Foundation.rtl&&(f.addClass("rtl"),k=k+b.outerWidth()-c.outerWidth()),i(c,j+l+10,"auto","auto",k),f.attr("style")&&f.removeAttr("style"),c.removeClass("tip-override");var m=c.outerHeight();d&&d.indexOf("tip-top")>-1?(Foundation.rtl&&f.addClass("rtl"),i(c,j-m,"auto","auto",k).removeClass("tip-override")):d&&d.indexOf("tip-left")>-1?(i(c,j+l/2-m/2,"auto","auto",k-c.outerWidth()-g).removeClass("tip-override"),f.removeClass("rtl")):d&&d.indexOf("tip-right")>-1&&(i(c,j+l/2-m/2,"auto","auto",k+b.outerWidth()+g).removeClass("tip-override"),f.removeClass("rtl"))}c.css("visibility","visible").hide()},small:function(){return matchMedia(Foundation.media_queries.small).matches&&!matchMedia(Foundation.media_queries.medium).matches},inheritable_classes:function(b){var c=a.extend({},this.settings,this.data_options(b)),d=["tip-top","tip-left","tip-bottom","tip-right","radius","round"].concat(c.additional_inheritable_classes),e=b.attr("class"),f=e?a.map(e.split(" "),function(b,c){return-1!==a.inArray(b,d)?b:void 0}).join(" "):"";return a.trim(f)},convert_to_touch:function(b){var c=this,d=c.getTip(b),e=a.extend({},c.settings,c.data_options(b));0===d.find(".tap-to-close").length&&(d.append('<span class="tap-to-close">'+e.touch_close_text+"</span>"),d.on("click.fndtn.tooltip.tapclose touchstart.fndtn.tooltip.tapclose MSPointerDown.fndtn.tooltip.tapclose",function(a){c.hide(b)})),b.data("tooltip-open-event-type","touch")},show:function(a){var b=this.getTip(a);"touch"==a.data("tooltip-open-event-type")&&this.convert_to_touch(a),this.reposition(a,b,a.attr("class")),a.addClass("open"),b.fadeIn(this.settings.fade_in_duration)},hide:function(a){var b=this.getTip(a);b.fadeOut(this.settings.fade_out_duration,function(){b.find(".tap-to-close").remove(),b.off("click.fndtn.tooltip.tapclose MSPointerDown.fndtn.tapclose"),a.removeClass("open")})},off:function(){var b=this;this.S(this.scope).off(".fndtn.tooltip"),this.S(this.settings.tooltip_class).each(function(c){a("["+b.attr_name()+"]").eq(c).attr("title",a(this).text())}).remove()},reflow:function(){}}}(jQuery,window,window.document),function(a,b,c,d){"use strict";Foundation.libs.topbar={name:"topbar",version:"5.5.3",settings:{index:0,start_offset:0,sticky_class:"sticky",custom_back_text:!0,back_text:"Back",mobile_show_parent_link:!0,is_hover:!0,scrolltop:!0,sticky_on:"all",dropdown_autoclose:!0},init:function(b,c,d){Foundation.inherit(this,"add_custom_rule register_media throttle");var e=this;e.register_media("topbar","foundation-mq-topbar"),this.bindings(c,d),e.S("["+this.attr_name()+"]",this.scope).each(function(){var b=a(this),c=b.data(e.attr_name(!0)+"-init");e.S("section, .top-bar-section",this);b.data("index",0);var d=b.parent();d.hasClass("fixed")||e.is_sticky(b,d,c)?(e.settings.sticky_class=c.sticky_class,e.settings.sticky_topbar=b,b.data("height",d.outerHeight()),b.data("stickyoffset",d.offset().top)):b.data("height",b.outerHeight()),c.assembled||e.assemble(b),c.is_hover?e.S(".has-dropdown",b).addClass("not-click"):e.S(".has-dropdown",b).removeClass("not-click"),e.add_custom_rule(".f-topbar-fixed { padding-top: "+b.data("height")+"px }"),d.hasClass("fixed")&&e.S("body").addClass("f-topbar-fixed")})},is_sticky:function(a,b,c){var d=b.hasClass(c.sticky_class),e=matchMedia(Foundation.media_queries.small).matches,f=matchMedia(Foundation.media_queries.medium).matches,g=matchMedia(Foundation.media_queries.large).matches;return d&&"all"===c.sticky_on?!0:d&&this.small()&&-1!==c.sticky_on.indexOf("small")&&e&&!f&&!g?!0:d&&this.medium()&&-1!==c.sticky_on.indexOf("medium")&&e&&f&&!g?!0:d&&this.large()&&-1!==c.sticky_on.indexOf("large")&&e&&f&&g?!0:!1},toggle:function(c){var d,e=this;d=c?e.S(c).closest("["+this.attr_name()+"]"):e.S("["+this.attr_name()+"]");var f=d.data(this.attr_name(!0)+"-init"),g=e.S("section, .top-bar-section",d);e.breakpoint()&&(e.rtl?(g.css({right:"0%"}),a(">.name",g).css({right:"100%"})):(g.css({left:"0%"}),a(">.name",g).css({left:"100%"})),e.S("li.moved",g).removeClass("moved"),d.data("index",0),d.toggleClass("expanded").css("height","")),f.scrolltop?d.hasClass("expanded")?d.parent().hasClass("fixed")&&(f.scrolltop?(d.parent().removeClass("fixed"),d.addClass("fixed"),e.S("body").removeClass("f-topbar-fixed"),b.scrollTo(0,0)):d.parent().removeClass("expanded")):d.hasClass("fixed")&&(d.parent().addClass("fixed"),d.removeClass("fixed"),e.S("body").addClass("f-topbar-fixed")):(e.is_sticky(d,d.parent(),f)&&d.parent().addClass("fixed"),d.parent().hasClass("fixed")&&(d.hasClass("expanded")?(d.addClass("fixed"),d.parent().addClass("expanded"),e.S("body").addClass("f-topbar-fixed")):(d.removeClass("fixed"),d.parent().removeClass("expanded"),e.update_sticky_positioning())))},timer:null,events:function(c){var d=this,e=this.S;e(this.scope).off(".topbar").on("click.fndtn.topbar","["+this.attr_name()+"] .toggle-topbar",function(a){a.preventDefault(),d.toggle(this)}).on("click.fndtn.topbar contextmenu.fndtn.topbar",'.top-bar .top-bar-section li a[href^="#"],['+this.attr_name()+'] .top-bar-section li a[href^="#"]',function(b){var c=a(this).closest("li"),e=c.closest("["+d.attr_name()+"]"),f=e.data(d.attr_name(!0)+"-init");if(f.dropdown_autoclose&&f.is_hover){var g=a(this).closest(".hover");g.removeClass("hover")}!d.breakpoint()||c.hasClass("back")||c.hasClass("has-dropdown")||d.toggle()}).on("click.fndtn.topbar","["+this.attr_name()+"] li.has-dropdown",function(b){var c=e(this),f=e(b.target),g=c.closest("["+d.attr_name()+"]"),h=g.data(d.attr_name(!0)+"-init");return f.data("revealId")?void d.toggle():void(d.breakpoint()||(!h.is_hover||Modernizr.touch)&&(b.stopImmediatePropagation(),c.hasClass("hover")?(c.removeClass("hover").find("li").removeClass("hover"),c.parents("li.hover").removeClass("hover")):(c.addClass("hover"),a(c).siblings().removeClass("hover"),"A"===f[0].nodeName&&f.parent().hasClass("has-dropdown")&&b.preventDefault())))}).on("click.fndtn.topbar","["+this.attr_name()+"] .has-dropdown>a",function(a){if(d.breakpoint()){a.preventDefault();var b=e(this),c=b.closest("["+d.attr_name()+"]"),f=c.find("section, .top-bar-section"),g=(b.next(".dropdown").outerHeight(),b.closest("li"));c.data("index",c.data("index")+1),g.addClass("moved"),d.rtl?(f.css({right:-(100*c.data("index"))+"%"}),f.find(">.name").css({right:100*c.data("index")+"%"})):(f.css({left:-(100*c.data("index"))+"%"}),f.find(">.name").css({left:100*c.data("index")+"%"})),c.css("height",b.siblings("ul").outerHeight(!0)+c.data("height"))}}),e(b).off(".topbar").on("resize.fndtn.topbar",d.throttle(function(){d.resize.call(d)},50)).trigger("resize.fndtn.topbar").load(function(){e(this).trigger("resize.fndtn.topbar")}),e("body").off(".topbar").on("click.fndtn.topbar",function(a){var b=e(a.target).closest("li").closest("li.hover");b.length>0||e("["+d.attr_name()+"] li.hover").removeClass("hover")}),e(this.scope).on("click.fndtn.topbar","["+this.attr_name()+"] .has-dropdown .back",function(a){a.preventDefault();var b=e(this),c=b.closest("["+d.attr_name()+"]"),f=c.find("section, .top-bar-section"),g=(c.data(d.attr_name(!0)+"-init"),b.closest("li.moved")),h=g.parent();c.data("index",c.data("index")-1),d.rtl?(f.css({right:-(100*c.data("index"))+"%"}),f.find(">.name").css({right:100*c.data("index")+"%"})):(f.css({left:-(100*c.data("index"))+"%"}),f.find(">.name").css({left:100*c.data("index")+"%"})),0===c.data("index")?c.css("height",""):c.css("height",h.outerHeight(!0)+c.data("height")),setTimeout(function(){g.removeClass("moved")},300)}),e(this.scope).find(".dropdown a").focus(function(){a(this).parents(".has-dropdown").addClass("hover")}).blur(function(){a(this).parents(".has-dropdown").removeClass("hover")})},resize:function(){var a=this;a.S("["+this.attr_name()+"]").each(function(){var b,d=a.S(this),e=d.data(a.attr_name(!0)+"-init"),f=d.parent("."+a.settings.sticky_class);if(!a.breakpoint()){var g=d.hasClass("expanded");d.css("height","").removeClass("expanded").find("li").removeClass("hover"),g&&a.toggle(d)}a.is_sticky(d,f,e)&&(f.hasClass("fixed")?(f.removeClass("fixed"),b=f.offset().top,a.S(c.body).hasClass("f-topbar-fixed")&&(b-=d.data("height")),d.data("stickyoffset",b),f.addClass("fixed")):(b=f.offset().top,d.data("stickyoffset",b)))})},breakpoint:function(){return!matchMedia(Foundation.media_queries.topbar).matches},small:function(){return matchMedia(Foundation.media_queries.small).matches},medium:function(){return matchMedia(Foundation.media_queries.medium).matches},large:function(){return matchMedia(Foundation.media_queries.large).matches},assemble:function(b){var c=this,d=b.data(this.attr_name(!0)+"-init"),e=c.S("section, .top-bar-section",b);e.detach(),c.S(".has-dropdown>a",e).each(function(){var b,e=c.S(this),f=e.siblings(".dropdown"),g=e.attr("href");f.find(".title.back").length||(b=a(1==d.mobile_show_parent_link&&g?'<li class="title back js-generated"><h5><a href="javascript:void(0)"></a></h5></li><li class="parent-link hide-for-medium-up"><a class="parent-link js-generated" href="'+g+'">'+e.html()+"</a></li>":'<li class="title back js-generated"><h5><a href="javascript:void(0)"></a></h5>'),1==d.custom_back_text?a("h5>a",b).html(d.back_text):a("h5>a",b).html("&laquo; "+e.html()),f.prepend(b))}),e.appendTo(b),this.sticky(),this.assembled(b)},assembled:function(b){b.data(this.attr_name(!0),a.extend({},b.data(this.attr_name(!0)),{assembled:!0}))},height:function(b){var c=0,d=this;return a("> li",b).each(function(){c+=d.S(this).outerHeight(!0)}),c},sticky:function(){var a=this;this.S(b).on("scroll",function(){a.update_sticky_positioning()})},update_sticky_positioning:function(){var a="."+this.settings.sticky_class,c=this.S(b),d=this;if(d.settings.sticky_topbar&&d.is_sticky(this.settings.sticky_topbar,this.settings.sticky_topbar.parent(),this.settings)){var e=this.settings.sticky_topbar.data("stickyoffset")+this.settings.start_offset;d.S(a).hasClass("expanded")||(c.scrollTop()>e?d.S(a).hasClass("fixed")||(d.S(a).addClass("fixed"),d.S("body").addClass("f-topbar-fixed")):c.scrollTop()<=e&&d.S(a).hasClass("fixed")&&(d.S(a).removeClass("fixed"),d.S("body").removeClass("f-topbar-fixed")))}},off:function(){this.S(this.scope).off(".fndtn.topbar"),this.S(b).off(".fndtn.topbar")},reflow:function(){}}}(jQuery,window,window.document);;// Load foundation
+$(document).foundation();
+$(document).ready(function () {
+    $('ul.children').each(function () {
+        $(this).before('<a class="toggle" href="#"></a>');
+    });
+    $('a.toggle').click('click', function () {
+        $(this).toggleClass('open');
+        $(this).siblings('ul').toggleClass('open');
+    });
+    $('.top-bar-section').find('ul.sub-menu.dropdown').each(function (){
+        var menuImg = $(this).parent('li').prop('id');
+        var menuNum = menuImg.match(/\d+/)[0];
+        var menuImgSrc = 'img_for_menu_' + menuNum;
+        if (window['img_for_menu_' + menuNum]) {
+            $(this).find('li.image-placeholder').html('<img src="' + eval(menuImgSrc) + '">');
+        } else {
+            $(this).find('li.image-placeholder').parent('ul').addClass('no-image-subul');
+            $(this).find('li.image-placeholder').remove();
+        }
+        //console.log('ul = ' + menuImg);
+        //console.log('menu-id = ' + menuNum);
+    });
+});
diff --git a/js/fastclick/lib/fastclick.js b/js/fastclick/lib/fastclick.js
new file mode 100644 (file)
index 0000000..3af4f9d
--- /dev/null
@@ -0,0 +1,841 @@
+;(function () {
+       'use strict';
+
+       /**
+        * @preserve FastClick: polyfill to remove click delays on browsers with touch UIs.
+        *
+        * @codingstandard ftlabs-jsv2
+        * @copyright The Financial Times Limited [All Rights Reserved]
+        * @license MIT License (see LICENSE.txt)
+        */
+
+       /*jslint browser:true, node:true*/
+       /*global define, Event, Node*/
+
+
+       /**
+        * Instantiate fast-clicking listeners on the specified layer.
+        *
+        * @constructor
+        * @param {Element} layer The layer to listen on
+        * @param {Object} [options={}] The options to override the defaults
+        */
+       function FastClick(layer, options) {
+               var oldOnClick;
+
+               options = options || {};
+
+               /**
+                * Whether a click is currently being tracked.
+                *
+                * @type boolean
+                */
+               this.trackingClick = false;
+
+
+               /**
+                * Timestamp for when click tracking started.
+                *
+                * @type number
+                */
+               this.trackingClickStart = 0;
+
+
+               /**
+                * The element being tracked for a click.
+                *
+                * @type EventTarget
+                */
+               this.targetElement = null;
+
+
+               /**
+                * X-coordinate of touch start event.
+                *
+                * @type number
+                */
+               this.touchStartX = 0;
+
+
+               /**
+                * Y-coordinate of touch start event.
+                *
+                * @type number
+                */
+               this.touchStartY = 0;
+
+
+               /**
+                * ID of the last touch, retrieved from Touch.identifier.
+                *
+                * @type number
+                */
+               this.lastTouchIdentifier = 0;
+
+
+               /**
+                * Touchmove boundary, beyond which a click will be cancelled.
+                *
+                * @type number
+                */
+               this.touchBoundary = options.touchBoundary || 10;
+
+
+               /**
+                * The FastClick layer.
+                *
+                * @type Element
+                */
+               this.layer = layer;
+
+               /**
+                * The minimum time between tap(touchstart and touchend) events
+                *
+                * @type number
+                */
+               this.tapDelay = options.tapDelay || 200;
+
+               /**
+                * The maximum time for a tap
+                *
+                * @type number
+                */
+               this.tapTimeout = options.tapTimeout || 700;
+
+               if (FastClick.notNeeded(layer)) {
+                       return;
+               }
+
+               // Some old versions of Android don't have Function.prototype.bind
+               function bind(method, context) {
+                       return function() { return method.apply(context, arguments); };
+               }
+
+
+               var methods = ['onMouse', 'onClick', 'onTouchStart', 'onTouchMove', 'onTouchEnd', 'onTouchCancel'];
+               var context = this;
+               for (var i = 0, l = methods.length; i < l; i++) {
+                       context[methods[i]] = bind(context[methods[i]], context);
+               }
+
+               // Set up event handlers as required
+               if (deviceIsAndroid) {
+                       layer.addEventListener('mouseover', this.onMouse, true);
+                       layer.addEventListener('mousedown', this.onMouse, true);
+                       layer.addEventListener('mouseup', this.onMouse, true);
+               }
+
+               layer.addEventListener('click', this.onClick, true);
+               layer.addEventListener('touchstart', this.onTouchStart, false);
+               layer.addEventListener('touchmove', this.onTouchMove, false);
+               layer.addEventListener('touchend', this.onTouchEnd, false);
+               layer.addEventListener('touchcancel', this.onTouchCancel, false);
+
+               // Hack is required for browsers that don't support Event#stopImmediatePropagation (e.g. Android 2)
+               // which is how FastClick normally stops click events bubbling to callbacks registered on the FastClick
+               // layer when they are cancelled.
+               if (!Event.prototype.stopImmediatePropagation) {
+                       layer.removeEventListener = function(type, callback, capture) {
+                               var rmv = Node.prototype.removeEventListener;
+                               if (type === 'click') {
+                                       rmv.call(layer, type, callback.hijacked || callback, capture);
+                               } else {
+                                       rmv.call(layer, type, callback, capture);
+                               }
+                       };
+
+                       layer.addEventListener = function(type, callback, capture) {
+                               var adv = Node.prototype.addEventListener;
+                               if (type === 'click') {
+                                       adv.call(layer, type, callback.hijacked || (callback.hijacked = function(event) {
+                                               if (!event.propagationStopped) {
+                                                       callback(event);
+                                               }
+                                       }), capture);
+                               } else {
+                                       adv.call(layer, type, callback, capture);
+                               }
+                       };
+               }
+
+               // If a handler is already declared in the element's onclick attribute, it will be fired before
+               // FastClick's onClick handler. Fix this by pulling out the user-defined handler function and
+               // adding it as listener.
+               if (typeof layer.onclick === 'function') {
+
+                       // Android browser on at least 3.2 requires a new reference to the function in layer.onclick
+                       // - the old one won't work if passed to addEventListener directly.
+                       oldOnClick = layer.onclick;
+                       layer.addEventListener('click', function(event) {
+                               oldOnClick(event);
+                       }, false);
+                       layer.onclick = null;
+               }
+       }
+
+       /**
+       * Windows Phone 8.1 fakes user agent string to look like Android and iPhone.
+       *
+       * @type boolean
+       */
+       var deviceIsWindowsPhone = navigator.userAgent.indexOf("Windows Phone") >= 0;
+
+       /**
+        * Android requires exceptions.
+        *
+        * @type boolean
+        */
+       var deviceIsAndroid = navigator.userAgent.indexOf('Android') > 0 && !deviceIsWindowsPhone;
+
+
+       /**
+        * iOS requires exceptions.
+        *
+        * @type boolean
+        */
+       var deviceIsIOS = /iP(ad|hone|od)/.test(navigator.userAgent) && !deviceIsWindowsPhone;
+
+
+       /**
+        * iOS 4 requires an exception for select elements.
+        *
+        * @type boolean
+        */
+       var deviceIsIOS4 = deviceIsIOS && (/OS 4_\d(_\d)?/).test(navigator.userAgent);
+
+
+       /**
+        * iOS 6.0-7.* requires the target element to be manually derived
+        *
+        * @type boolean
+        */
+       var deviceIsIOSWithBadTarget = deviceIsIOS && (/OS [6-7]_\d/).test(navigator.userAgent);
+
+       /**
+        * BlackBerry requires exceptions.
+        *
+        * @type boolean
+        */
+       var deviceIsBlackBerry10 = navigator.userAgent.indexOf('BB10') > 0;
+
+       /**
+        * Determine whether a given element requires a native click.
+        *
+        * @param {EventTarget|Element} target Target DOM element
+        * @returns {boolean} Returns true if the element needs a native click
+        */
+       FastClick.prototype.needsClick = function(target) {
+               switch (target.nodeName.toLowerCase()) {
+
+               // Don't send a synthetic click to disabled inputs (issue #62)
+               case 'button':
+               case 'select':
+               case 'textarea':
+                       if (target.disabled) {
+                               return true;
+                       }
+
+                       break;
+               case 'input':
+
+                       // File inputs need real clicks on iOS 6 due to a browser bug (issue #68)
+                       if ((deviceIsIOS && target.type === 'file') || target.disabled) {
+                               return true;
+                       }
+
+                       break;
+               case 'label':
+               case 'iframe': // iOS8 homescreen apps can prevent events bubbling into frames
+               case 'video':
+                       return true;
+               }
+
+               return (/\bneedsclick\b/).test(target.className);
+       };
+
+
+       /**
+        * Determine whether a given element requires a call to focus to simulate click into element.
+        *
+        * @param {EventTarget|Element} target Target DOM element
+        * @returns {boolean} Returns true if the element requires a call to focus to simulate native click.
+        */
+       FastClick.prototype.needsFocus = function(target) {
+               switch (target.nodeName.toLowerCase()) {
+               case 'textarea':
+                       return true;
+               case 'select':
+                       return !deviceIsAndroid;
+               case 'input':
+                       switch (target.type) {
+                       case 'button':
+                       case 'checkbox':
+                       case 'file':
+                       case 'image':
+                       case 'radio':
+                       case 'submit':
+                               return false;
+                       }
+
+                       // No point in attempting to focus disabled inputs
+                       return !target.disabled && !target.readOnly;
+               default:
+                       return (/\bneedsfocus\b/).test(target.className);
+               }
+       };
+
+
+       /**
+        * Send a click event to the specified element.
+        *
+        * @param {EventTarget|Element} targetElement
+        * @param {Event} event
+        */
+       FastClick.prototype.sendClick = function(targetElement, event) {
+               var clickEvent, touch;
+
+               // On some Android devices activeElement needs to be blurred otherwise the synthetic click will have no effect (#24)
+               if (document.activeElement && document.activeElement !== targetElement) {
+                       document.activeElement.blur();
+               }
+
+               touch = event.changedTouches[0];
+
+               // Synthesise a click event, with an extra attribute so it can be tracked
+               clickEvent = document.createEvent('MouseEvents');
+               clickEvent.initMouseEvent(this.determineEventType(targetElement), true, true, window, 1, touch.screenX, touch.screenY, touch.clientX, touch.clientY, false, false, false, false, 0, null);
+               clickEvent.forwardedTouchEvent = true;
+               targetElement.dispatchEvent(clickEvent);
+       };
+
+       FastClick.prototype.determineEventType = function(targetElement) {
+
+               //Issue #159: Android Chrome Select Box does not open with a synthetic click event
+               if (deviceIsAndroid && targetElement.tagName.toLowerCase() === 'select') {
+                       return 'mousedown';
+               }
+
+               return 'click';
+       };
+
+
+       /**
+        * @param {EventTarget|Element} targetElement
+        */
+       FastClick.prototype.focus = function(targetElement) {
+               var length;
+
+               // Issue #160: on iOS 7, some input elements (e.g. date datetime month) throw a vague TypeError on setSelectionRange. These elements don't have an integer value for the selectionStart and selectionEnd properties, but unfortunately that can't be used for detection because accessing the properties also throws a TypeError. Just check the type instead. Filed as Apple bug #15122724.
+               if (deviceIsIOS && targetElement.setSelectionRange && targetElement.type.indexOf('date') !== 0 && targetElement.type !== 'time' && targetElement.type !== 'month') {
+                       length = targetElement.value.length;
+                       targetElement.setSelectionRange(length, length);
+               } else {
+                       targetElement.focus();
+               }
+       };
+
+
+       /**
+        * Check whether the given target element is a child of a scrollable layer and if so, set a flag on it.
+        *
+        * @param {EventTarget|Element} targetElement
+        */
+       FastClick.prototype.updateScrollParent = function(targetElement) {
+               var scrollParent, parentElement;
+
+               scrollParent = targetElement.fastClickScrollParent;
+
+               // Attempt to discover whether the target element is contained within a scrollable layer. Re-check if the
+               // target element was moved to another parent.
+               if (!scrollParent || !scrollParent.contains(targetElement)) {
+                       parentElement = targetElement;
+                       do {
+                               if (parentElement.scrollHeight > parentElement.offsetHeight) {
+                                       scrollParent = parentElement;
+                                       targetElement.fastClickScrollParent = parentElement;
+                                       break;
+                               }
+
+                               parentElement = parentElement.parentElement;
+                       } while (parentElement);
+               }
+
+               // Always update the scroll top tracker if possible.
+               if (scrollParent) {
+                       scrollParent.fastClickLastScrollTop = scrollParent.scrollTop;
+               }
+       };
+
+
+       /**
+        * @param {EventTarget} targetElement
+        * @returns {Element|EventTarget}
+        */
+       FastClick.prototype.getTargetElementFromEventTarget = function(eventTarget) {
+
+               // On some older browsers (notably Safari on iOS 4.1 - see issue #56) the event target may be a text node.
+               if (eventTarget.nodeType === Node.TEXT_NODE) {
+                       return eventTarget.parentNode;
+               }
+
+               return eventTarget;
+       };
+
+
+       /**
+        * On touch start, record the position and scroll offset.
+        *
+        * @param {Event} event
+        * @returns {boolean}
+        */
+       FastClick.prototype.onTouchStart = function(event) {
+               var targetElement, touch, selection;
+
+               // Ignore multiple touches, otherwise pinch-to-zoom is prevented if both fingers are on the FastClick element (issue #111).
+               if (event.targetTouches.length > 1) {
+                       return true;
+               }
+
+               targetElement = this.getTargetElementFromEventTarget(event.target);
+               touch = event.targetTouches[0];
+
+               if (deviceIsIOS) {
+
+                       // Only trusted events will deselect text on iOS (issue #49)
+                       selection = window.getSelection();
+                       if (selection.rangeCount && !selection.isCollapsed) {
+                               return true;
+                       }
+
+                       if (!deviceIsIOS4) {
+
+                               // Weird things happen on iOS when an alert or confirm dialog is opened from a click event callback (issue #23):
+                               // when the user next taps anywhere else on the page, new touchstart and touchend events are dispatched
+                               // with the same identifier as the touch event that previously triggered the click that triggered the alert.
+                               // Sadly, there is an issue on iOS 4 that causes some normal touch events to have the same identifier as an
+                               // immediately preceeding touch event (issue #52), so this fix is unavailable on that platform.
+                               // Issue 120: touch.identifier is 0 when Chrome dev tools 'Emulate touch events' is set with an iOS device UA string,
+                               // which causes all touch events to be ignored. As this block only applies to iOS, and iOS identifiers are always long,
+                               // random integers, it's safe to to continue if the identifier is 0 here.
+                               if (touch.identifier && touch.identifier === this.lastTouchIdentifier) {
+                                       event.preventDefault();
+                                       return false;
+                               }
+
+                               this.lastTouchIdentifier = touch.identifier;
+
+                               // If the target element is a child of a scrollable layer (using -webkit-overflow-scrolling: touch) and:
+                               // 1) the user does a fling scroll on the scrollable layer
+                               // 2) the user stops the fling scroll with another tap
+                               // then the event.target of the last 'touchend' event will be the element that was under the user's finger
+                               // when the fling scroll was started, causing FastClick to send a click event to that layer - unless a check
+                               // is made to ensure that a parent layer was not scrolled before sending a synthetic click (issue #42).
+                               this.updateScrollParent(targetElement);
+                       }
+               }
+
+               this.trackingClick = true;
+               this.trackingClickStart = event.timeStamp;
+               this.targetElement = targetElement;
+
+               this.touchStartX = touch.pageX;
+               this.touchStartY = touch.pageY;
+
+               // Prevent phantom clicks on fast double-tap (issue #36)
+               if ((event.timeStamp - this.lastClickTime) < this.tapDelay) {
+                       event.preventDefault();
+               }
+
+               return true;
+       };
+
+
+       /**
+        * Based on a touchmove event object, check whether the touch has moved past a boundary since it started.
+        *
+        * @param {Event} event
+        * @returns {boolean}
+        */
+       FastClick.prototype.touchHasMoved = function(event) {
+               var touch = event.changedTouches[0], boundary = this.touchBoundary;
+
+               if (Math.abs(touch.pageX - this.touchStartX) > boundary || Math.abs(touch.pageY - this.touchStartY) > boundary) {
+                       return true;
+               }
+
+               return false;
+       };
+
+
+       /**
+        * Update the last position.
+        *
+        * @param {Event} event
+        * @returns {boolean}
+        */
+       FastClick.prototype.onTouchMove = function(event) {
+               if (!this.trackingClick) {
+                       return true;
+               }
+
+               // If the touch has moved, cancel the click tracking
+               if (this.targetElement !== this.getTargetElementFromEventTarget(event.target) || this.touchHasMoved(event)) {
+                       this.trackingClick = false;
+                       this.targetElement = null;
+               }
+
+               return true;
+       };
+
+
+       /**
+        * Attempt to find the labelled control for the given label element.
+        *
+        * @param {EventTarget|HTMLLabelElement} labelElement
+        * @returns {Element|null}
+        */
+       FastClick.prototype.findControl = function(labelElement) {
+
+               // Fast path for newer browsers supporting the HTML5 control attribute
+               if (labelElement.control !== undefined) {
+                       return labelElement.control;
+               }
+
+               // All browsers under test that support touch events also support the HTML5 htmlFor attribute
+               if (labelElement.htmlFor) {
+                       return document.getElementById(labelElement.htmlFor);
+               }
+
+               // If no for attribute exists, attempt to retrieve the first labellable descendant element
+               // the list of which is defined here: http://www.w3.org/TR/html5/forms.html#category-label
+               return labelElement.querySelector('button, input:not([type=hidden]), keygen, meter, output, progress, select, textarea');
+       };
+
+
+       /**
+        * On touch end, determine whether to send a click event at once.
+        *
+        * @param {Event} event
+        * @returns {boolean}
+        */
+       FastClick.prototype.onTouchEnd = function(event) {
+               var forElement, trackingClickStart, targetTagName, scrollParent, touch, targetElement = this.targetElement;
+
+               if (!this.trackingClick) {
+                       return true;
+               }
+
+               // Prevent phantom clicks on fast double-tap (issue #36)
+               if ((event.timeStamp - this.lastClickTime) < this.tapDelay) {
+                       this.cancelNextClick = true;
+                       return true;
+               }
+
+               if ((event.timeStamp - this.trackingClickStart) > this.tapTimeout) {
+                       return true;
+               }
+
+               // Reset to prevent wrong click cancel on input (issue #156).
+               this.cancelNextClick = false;
+
+               this.lastClickTime = event.timeStamp;
+
+               trackingClickStart = this.trackingClickStart;
+               this.trackingClick = false;
+               this.trackingClickStart = 0;
+
+               // On some iOS devices, the targetElement supplied with the event is invalid if the layer
+               // is performing a transition or scroll, and has to be re-detected manually. Note that
+               // for this to function correctly, it must be called *after* the event target is checked!
+               // See issue #57; also filed as rdar://13048589 .
+               if (deviceIsIOSWithBadTarget) {
+                       touch = event.changedTouches[0];
+
+                       // In certain cases arguments of elementFromPoint can be negative, so prevent setting targetElement to null
+                       targetElement = document.elementFromPoint(touch.pageX - window.pageXOffset, touch.pageY - window.pageYOffset) || targetElement;
+                       targetElement.fastClickScrollParent = this.targetElement.fastClickScrollParent;
+               }
+
+               targetTagName = targetElement.tagName.toLowerCase();
+               if (targetTagName === 'label') {
+                       forElement = this.findControl(targetElement);
+                       if (forElement) {
+                               this.focus(targetElement);
+                               if (deviceIsAndroid) {
+                                       return false;
+                               }
+
+                               targetElement = forElement;
+                       }
+               } else if (this.needsFocus(targetElement)) {
+
+                       // Case 1: If the touch started a while ago (best guess is 100ms based on tests for issue #36) then focus will be triggered anyway. Return early and unset the target element reference so that the subsequent click will be allowed through.
+                       // Case 2: Without this exception for input elements tapped when the document is contained in an iframe, then any inputted text won't be visible even though the value attribute is updated as the user types (issue #37).
+                       if ((event.timeStamp - trackingClickStart) > 100 || (deviceIsIOS && window.top !== window && targetTagName === 'input')) {
+                               this.targetElement = null;
+                               return false;
+                       }
+
+                       this.focus(targetElement);
+                       this.sendClick(targetElement, event);
+
+                       // Select elements need the event to go through on iOS 4, otherwise the selector menu won't open.
+                       // Also this breaks opening selects when VoiceOver is active on iOS6, iOS7 (and possibly others)
+                       if (!deviceIsIOS || targetTagName !== 'select') {
+                               this.targetElement = null;
+                               event.preventDefault();
+                       }
+
+                       return false;
+               }
+
+               if (deviceIsIOS && !deviceIsIOS4) {
+
+                       // Don't send a synthetic click event if the target element is contained within a parent layer that was scrolled
+                       // and this tap is being used to stop the scrolling (usually initiated by a fling - issue #42).
+                       scrollParent = targetElement.fastClickScrollParent;
+                       if (scrollParent && scrollParent.fastClickLastScrollTop !== scrollParent.scrollTop) {
+                               return true;
+                       }
+               }
+
+               // Prevent the actual click from going though - unless the target node is marked as requiring
+               // real clicks or if it is in the whitelist in which case only non-programmatic clicks are permitted.
+               if (!this.needsClick(targetElement)) {
+                       event.preventDefault();
+                       this.sendClick(targetElement, event);
+               }
+
+               return false;
+       };
+
+
+       /**
+        * On touch cancel, stop tracking the click.
+        *
+        * @returns {void}
+        */
+       FastClick.prototype.onTouchCancel = function() {
+               this.trackingClick = false;
+               this.targetElement = null;
+       };
+
+
+       /**
+        * Determine mouse events which should be permitted.
+        *
+        * @param {Event} event
+        * @returns {boolean}
+        */
+       FastClick.prototype.onMouse = function(event) {
+
+               // If a target element was never set (because a touch event was never fired) allow the event
+               if (!this.targetElement) {
+                       return true;
+               }
+
+               if (event.forwardedTouchEvent) {
+                       return true;
+               }
+
+               // Programmatically generated events targeting a specific element should be permitted
+               if (!event.cancelable) {
+                       return true;
+               }
+
+               // Derive and check the target element to see whether the mouse event needs to be permitted;
+               // unless explicitly enabled, prevent non-touch click events from triggering actions,
+               // to prevent ghost/doubleclicks.
+               if (!this.needsClick(this.targetElement) || this.cancelNextClick) {
+
+                       // Prevent any user-added listeners declared on FastClick element from being fired.
+                       if (event.stopImmediatePropagation) {
+                               event.stopImmediatePropagation();
+                       } else {
+
+                               // Part of the hack for browsers that don't support Event#stopImmediatePropagation (e.g. Android 2)
+                               event.propagationStopped = true;
+                       }
+
+                       // Cancel the event
+                       event.stopPropagation();
+                       event.preventDefault();
+
+                       return false;
+               }
+
+               // If the mouse event is permitted, return true for the action to go through.
+               return true;
+       };
+
+
+       /**
+        * On actual clicks, determine whether this is a touch-generated click, a click action occurring
+        * naturally after a delay after a touch (which needs to be cancelled to avoid duplication), or
+        * an actual click which should be permitted.
+        *
+        * @param {Event} event
+        * @returns {boolean}
+        */
+       FastClick.prototype.onClick = function(event) {
+               var permitted;
+
+               // It's possible for another FastClick-like library delivered with third-party code to fire a click event before FastClick does (issue #44). In that case, set the click-tracking flag back to false and return early. This will cause onTouchEnd to return early.
+               if (this.trackingClick) {
+                       this.targetElement = null;
+                       this.trackingClick = false;
+                       return true;
+               }
+
+               // Very odd behaviour on iOS (issue #18): if a submit element is present inside a form and the user hits enter in the iOS simulator or clicks the Go button on the pop-up OS keyboard the a kind of 'fake' click event will be triggered with the submit-type input element as the target.
+               if (event.target.type === 'submit' && event.detail === 0) {
+                       return true;
+               }
+
+               permitted = this.onMouse(event);
+
+               // Only unset targetElement if the click is not permitted. This will ensure that the check for !targetElement in onMouse fails and the browser's click doesn't go through.
+               if (!permitted) {
+                       this.targetElement = null;
+               }
+
+               // If clicks are permitted, return true for the action to go through.
+               return permitted;
+       };
+
+
+       /**
+        * Remove all FastClick's event listeners.
+        *
+        * @returns {void}
+        */
+       FastClick.prototype.destroy = function() {
+               var layer = this.layer;
+
+               if (deviceIsAndroid) {
+                       layer.removeEventListener('mouseover', this.onMouse, true);
+                       layer.removeEventListener('mousedown', this.onMouse, true);
+                       layer.removeEventListener('mouseup', this.onMouse, true);
+               }
+
+               layer.removeEventListener('click', this.onClick, true);
+               layer.removeEventListener('touchstart', this.onTouchStart, false);
+               layer.removeEventListener('touchmove', this.onTouchMove, false);
+               layer.removeEventListener('touchend', this.onTouchEnd, false);
+               layer.removeEventListener('touchcancel', this.onTouchCancel, false);
+       };
+
+
+       /**
+        * Check whether FastClick is needed.
+        *
+        * @param {Element} layer The layer to listen on
+        */
+       FastClick.notNeeded = function(layer) {
+               var metaViewport;
+               var chromeVersion;
+               var blackberryVersion;
+               var firefoxVersion;
+
+               // Devices that don't support touch don't need FastClick
+               if (typeof window.ontouchstart === 'undefined') {
+                       return true;
+               }
+
+               // Chrome version - zero for other browsers
+               chromeVersion = +(/Chrome\/([0-9]+)/.exec(navigator.userAgent) || [,0])[1];
+
+               if (chromeVersion) {
+
+                       if (deviceIsAndroid) {
+                               metaViewport = document.querySelector('meta[name=viewport]');
+
+                               if (metaViewport) {
+                                       // Chrome on Android with user-scalable="no" doesn't need FastClick (issue #89)
+                                       if (metaViewport.content.indexOf('user-scalable=no') !== -1) {
+                                               return true;
+                                       }
+                                       // Chrome 32 and above with width=device-width or less don't need FastClick
+                                       if (chromeVersion > 31 && document.documentElement.scrollWidth <= window.outerWidth) {
+                                               return true;
+                                       }
+                               }
+
+                       // Chrome desktop doesn't need FastClick (issue #15)
+                       } else {
+                               return true;
+                       }
+               }
+
+               if (deviceIsBlackBerry10) {
+                       blackberryVersion = navigator.userAgent.match(/Version\/([0-9]*)\.([0-9]*)/);
+
+                       // BlackBerry 10.3+ does not require Fastclick library.
+                       // https://github.com/ftlabs/fastclick/issues/251
+                       if (blackberryVersion[1] >= 10 && blackberryVersion[2] >= 3) {
+                               metaViewport = document.querySelector('meta[name=viewport]');
+
+                               if (metaViewport) {
+                                       // user-scalable=no eliminates click delay.
+                                       if (metaViewport.content.indexOf('user-scalable=no') !== -1) {
+                                               return true;
+                                       }
+                                       // width=device-width (or less than device-width) eliminates click delay.
+                                       if (document.documentElement.scrollWidth <= window.outerWidth) {
+                                               return true;
+                                       }
+                               }
+                       }
+               }
+
+               // IE10 with -ms-touch-action: none or manipulation, which disables double-tap-to-zoom (issue #97)
+               if (layer.style.msTouchAction === 'none' || layer.style.touchAction === 'manipulation') {
+                       return true;
+               }
+
+               // Firefox version - zero for other browsers
+               firefoxVersion = +(/Firefox\/([0-9]+)/.exec(navigator.userAgent) || [,0])[1];
+
+               if (firefoxVersion >= 27) {
+                       // Firefox 27+ does not have tap delay if the content is not zoomable - https://bugzilla.mozilla.org/show_bug.cgi?id=922896
+
+                       metaViewport = document.querySelector('meta[name=viewport]');
+                       if (metaViewport && (metaViewport.content.indexOf('user-scalable=no') !== -1 || document.documentElement.scrollWidth <= window.outerWidth)) {
+                               return true;
+                       }
+               }
+
+               // IE11: prefixed -ms-touch-action is no longer supported and it's recomended to use non-prefixed version
+               // http://msdn.microsoft.com/en-us/library/windows/apps/Hh767313.aspx
+               if (layer.style.touchAction === 'none' || layer.style.touchAction === 'manipulation') {
+                       return true;
+               }
+
+               return false;
+       };
+
+
+       /**
+        * Factory method for creating a FastClick object
+        *
+        * @param {Element} layer The layer to listen on
+        * @param {Object} [options={}] The options to override the defaults
+        */
+       FastClick.attach = function(layer, options) {
+               return new FastClick(layer, options);
+       };
+
+
+       if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {
+
+               // AMD. Register as an anonymous module.
+               define(function() {
+                       return FastClick;
+               });
+       } else if (typeof module !== 'undefined' && module.exports) {
+               module.exports = FastClick.attach;
+               module.exports.FastClick = FastClick;
+       } else {
+               window.FastClick = FastClick;
+       }
+}());
diff --git a/js/foundation/css/foundation.css.map b/js/foundation/css/foundation.css.map
new file mode 100644 (file)
index 0000000..40bd448
--- /dev/null
@@ -0,0 +1,7 @@
+{
+"version": 3,
+"mappings": "AA8aI,uBAAwB;EACtB,WAAW,EAAE,eAAe;;AAG9B,wBAAyB;EACvB,WAAW,EAAE,eAA8B;EAC3C,KAAK,EAjEM,CAAC;;AAoEd,6BAA8B;EAC5B,WAAW,EAAE,qCAAgC;EAC7C,KAAK,EAtEM,CAAC;;AAyEd,yBAA0B;EACxB,WAAW,EAAE,yCAA+B;EAC5C,KAAK,EAAE,SAA0B;;AAGnC,8BAA+B;EAC7B,WAAW,EAAE,8DAAiC;EAC9C,KAAK,EAAE,SAA0B;;AAGnC,wBAAyB;EACvB,WAAW,EAAE,yCAA8B;EAC3C,KAAK,EAAE,SAAyB;;AAGlC,6BAA8B;EAC5B,WAAW,EAAE,8DAAgC;EAC7C,KAAK,EAAE,SAAyB;;AAGlC,yBAA0B;EACxB,WAAW,EAAE,yCAA+B;EAC5C,KAAK,EAAE,SAA0B;;AAGnC,8BAA+B;EAC7B,WAAW,EAAE,+DAAiC;EAC9C,KAAK,EAAE,SAA0B;;AAGnC,0BAA2B;EACzB,WAAW,EAAE,0CAAgC;EAC7C,KAAK,EAAE,UAA2B;;AAGpC,wCAAyC;EACvC,WAAW,EAAE,KAAa;;AAQ5B,UAAW;EAAE,MAAM,EAAE,IAAI;;AAGzB;;OAEQ;EAzVV,kBAAkB,EA0VM,UAAU;EAzV/B,eAAe,EAyVM,UAAU;EAxV1B,UAAU,EAwVM,UAAU;;AAGhC;IACK;EAAE,SAAS,EA/dH,IAAI;;AAkejB,IAAK;EACH,UAAU,EA/KN,IAAI;EAgLR,KAAK,EA/KO,IAAI;EAgLhB,MAAM,EA3FQ,IAAI;EA4FlB,WAAW,EAhLE,sDAAuB;EAiLpC,UAAU,EA/KE,MAAM;EAgLlB,WAAW,EAjLE,MAAmB;EAkLhC,WAAW,EAteE,GAAG;EAuehB,MAAM,EAAE,CAAC;EACT,OAAO,EAAE,CAAC;EACV,QAAQ,EAAE,QAAQ;;AAGtB,OAAQ;EAAE,MAAM,EAjGK,OAAO;;AAoG1B,GAAI;EAAE,SAAS,EAAE,IAAI;EAAE,MAAM,EAAE,IAAI;;AAEnC,GAAI;EAAE,sBAAsB,EAAE,OAAO;;AAKnC;;;;;;;;mBAEO;EAAE,SAAS,EAAE,eAAe;;AAKrC,KAAM;EAAE,KAAK,EAAE,eAAe;;AAC9B,MAAO;EAAE,KAAK,EAAE,gBAAgB;;AAtSlC,iCAAkB;EAAE,OAAO,EAAE,GAAG;EAAE,OAAO,EAAE,KAAK;AAChD,eAAQ;EAAE,KAAK,EAAE,IAAI;;AAySnB,KAAM;EACJ,OAAO,EAAE,IAAI;;AAIf,UAAW;EAAE,UAAU,EAAE,MAAM;;AAM/B,YAAa;EAAE,sBAAsB,EAAE,WAAW;EAAE,uBAAuB,EAAE,SAAS;;AAGtF,GAAI;EACF,OAAO,EAAE,YAAY;EACrB,cAAc,EAAE,MAAM;;AAQxB,QAAS;EAAE,MAAM,EAAE,IAAI;EAAE,UAAU,EAAE,IAAI;;AAGzC,MAAO;EAAE,KAAK,EAAE,IAAI;;AChVpB,IAAK;EA9JL,MAAM,EAAE,MAAM;EACd,SAAS,EA1DD,OAAc;EA2DtB,KAAK,EAAE,IAAI;EDuKb,uBAAkB;IAAE,OAAO,EAAE,GAAG;IAAE,OAAO,EAAE,KAAK;EAChD,UAAQ;IAAE,KAAK,EAAE,IAAI;ECRd;0BACW;IA7HhB,YAAY,EAAE,CAAC;IACf,aAAa,EAAE,CAAC;EA8HZ,kBAAK;IAAC,WAAW,EAAC,CAAC;IAAE,YAAY,EAAC,CAAC;EAGrC,SAAK;IA7LP,MAAM,EAAE,YAAuB;IAC/B,SAAS,EAAE,IAAI;IACf,KAAK,EAAE,IAAI;ID4Lb,iCAAkB;MAAE,OAAO,EAAE,GAAG;MAAE,OAAO,EAAE,KAAK;IAChD,eAAQ;MAAE,KAAK,EAAE,IAAI;ICDf,kBAAW;MAhLf,MAAM,EAAE,CAAC;MACT,SAAS,EAAE,IAAI;MACf,KAAK,EAAE,IAAI;MD8Kb,mDAAkB;QAAE,OAAO,EAAE,GAAG;QAAE,OAAO,EAAE,KAAK;MAChD,wBAAQ;QAAE,KAAK,EAAE,IAAI;;ACGnB;QACS;EAjIT,YAAY,EAAE,SAAoB;EAClC,aAAa,EAAE,SAAoB;EAKnC,KAAK,EAzFE,IAAwC;EAoGR,KAAK,EDkN9B,IAAI;;AC9FhB;;;;mBAAiB;EACf,KAAK,EAzOM,KAAmB;AA2OhC;;;;YAAU;EACR,KAAK,ED0FK,IAAI;;ACtFlB,kBAAoB;EArGpB,aAAqB;IApDrB,QAAQ,EAAE,QAAQ;IAyBR,IAAiB,EA/FA,CAAC;IA+FmC,KAAsB,EAAE,IAAI;;EA8B3F,aAAqB;IAvDrB,QAAQ,EAAE,QAAQ;IA0BR,KAAsB,EAhGL,CAAC;IAgGwC,IAAiB,EAAE,IAAI;;EA0B3F,aAAqB;IApDrB,QAAQ,EAAE,QAAQ;IAyBR,IAAiB,EAhGpB,QAAwC;IAgGgB,KAAsB,EAAE,IAAI;;EA8B3F,aAAqB;IAvDrB,QAAQ,EAAE,QAAQ;IA0BR,KAAsB,EAjGzB,QAAwC;IAiGqB,IAAiB,EAAE,IAAI;;EA0B3F,aAAqB;IApDrB,QAAQ,EAAE,QAAQ;IAyBR,IAAiB,EAhGpB,SAAwC;IAgGgB,KAAsB,EAAE,IAAI;;EA8B3F,aAAqB;IAvDrB,QAAQ,EAAE,QAAQ;IA0BR,KAAsB,EAjGzB,SAAwC;IAiGqB,IAAiB,EAAE,IAAI;;EA0B3F,aAAqB;IApDrB,QAAQ,EAAE,QAAQ;IAyBR,IAAiB,EAhGpB,GAAwC;IAgGgB,KAAsB,EAAE,IAAI;;EA8B3F,aAAqB;IAvDrB,QAAQ,EAAE,QAAQ;IA0BR,KAAsB,EAjGzB,GAAwC;IAiGqB,IAAiB,EAAE,IAAI;;EA0B3F,aAAqB;IApDrB,QAAQ,EAAE,QAAQ;IAyBR,IAAiB,EAhGpB,SAAwC;IAgGgB,KAAsB,EAAE,IAAI;;EA8B3F,aAAqB;IAvDrB,QAAQ,EAAE,QAAQ;IA0BR,KAAsB,EAjGzB,SAAwC;IAiGqB,IAAiB,EAAE,IAAI;;EA0B3F,aAAqB;IApDrB,QAAQ,EAAE,QAAQ;IAyBR,IAAiB,EAhGpB,SAAwC;IAgGgB,KAAsB,EAAE,IAAI;;EA8B3F,aAAqB;IAvDrB,QAAQ,EAAE,QAAQ;IA0BR,KAAsB,EAjGzB,SAAwC;IAiGqB,IAAiB,EAAE,IAAI;;EA0B3F,aAAqB;IApDrB,QAAQ,EAAE,QAAQ;IAyBR,IAAiB,EAhGpB,GAAwC;IAgGgB,KAAsB,EAAE,IAAI;;EA8B3F,aAAqB;IAvDrB,QAAQ,EAAE,QAAQ;IA0BR,KAAsB,EAjGzB,GAAwC;IAiGqB,IAAiB,EAAE,IAAI;;EA0B3F,aAAqB;IApDrB,QAAQ,EAAE,QAAQ;IAyBR,IAAiB,EAhGpB,SAAwC;IAgGgB,KAAsB,EAAE,IAAI;;EA8B3F,aAAqB;IAvDrB,QAAQ,EAAE,QAAQ;IA0BR,KAAsB,EAjGzB,SAAwC;IAiGqB,IAAiB,EAAE,IAAI;;EA0B3F,aAAqB;IApDrB,QAAQ,EAAE,QAAQ;IAyBR,IAAiB,EAhGpB,SAAwC;IAgGgB,KAAsB,EAAE,IAAI;;EA8B3F,aAAqB;IAvDrB,QAAQ,EAAE,QAAQ;IA0BR,KAAsB,EAjGzB,SAAwC;IAiGqB,IAAiB,EAAE,IAAI;;EA0B3F,aAAqB;IApDrB,QAAQ,EAAE,QAAQ;IAyBR,IAAiB,EAhGpB,GAAwC;IAgGgB,KAAsB,EAAE,IAAI;;EA8B3F,aAAqB;IAvDrB,QAAQ,EAAE,QAAQ;IA0BR,KAAsB,EAjGzB,GAAwC;IAiGqB,IAAiB,EAAE,IAAI;;EA0B3F,cAAqB;IApDrB,QAAQ,EAAE,QAAQ;IAyBR,IAAiB,EAhGpB,SAAwC;IAgGgB,KAAsB,EAAE,IAAI;;EA8B3F,cAAqB;IAvDrB,QAAQ,EAAE,QAAQ;IA0BR,KAAsB,EAjGzB,SAAwC;IAiGqB,IAAiB,EAAE,IAAI;;EA0B3F,cAAqB;IApDrB,QAAQ,EAAE,QAAQ;IAyBR,IAAiB,EAhGpB,SAAwC;IAgGgB,KAAsB,EAAE,IAAI;;EA8B3F,cAAqB;IAvDrB,QAAQ,EAAE,QAAQ;IA0BR,KAAsB,EAjGzB,SAAwC;IAiGqB,IAAiB,EAAE,IAAI;;EAkC7F;UACS;IA7DP,QAAQ,EAAE,QAAQ;IAYlB,YAAY,EAAE,SAAoB;IAClC,aAAa,EAAE,SAAoB;IAgBI,KAAK,EDkN9B,IAAI;;EC9KlB,QAAgB;IA/ChB,KAAK,EAzFE,QAAwC;;EAwI/C,QAAgB;IA/ChB,KAAK,EAzFE,SAAwC;;EAwI/C,QAAgB;IA/ChB,KAAK,EAzFE,GAAwC;;EAwI/C,QAAgB;IA/ChB,KAAK,EAzFE,SAAwC;;EAwI/C,QAAgB;IA/ChB,KAAK,EAzFE,SAAwC;;EAwI/C,QAAgB;IA/ChB,KAAK,EAzFE,GAAwC;;EAwI/C,QAAgB;IA/ChB,KAAK,EAzFE,SAAwC;;EAwI/C,QAAgB;IA/ChB,KAAK,EAzFE,SAAwC;;EAwI/C,QAAgB;IA/ChB,KAAK,EAzFE,GAAwC;;EAwI/C,SAAgB;IA/ChB,KAAK,EAzFE,SAAwC;;EAwI/C,SAAgB;IA/ChB,KAAK,EAzFE,SAAwC;;EAwI/C,SAAgB;IA/ChB,KAAK,EAzFE,IAAwC;;EA4I/C,eAAuB;IA3BX,WAAwB,EAAE,YAA6C;;EA2BnF,eAAuB;IA3BX,WAAwB,EAAE,mBAA6C;;EA2BnF,eAAuB;IA3BX,WAAwB,EAAE,oBAA6C;;EA2BnF,eAAuB;IA3BX,WAAwB,EAAE,cAA6C;;EA2BnF,eAAuB;IA3BX,WAAwB,EAAE,oBAA6C;;EA2BnF,eAAuB;IA3BX,WAAwB,EAAE,oBAA6C;;EA2BnF,eAAuB;IA3BX,WAAwB,EAAE,cAA6C;;EA2BnF,eAAuB;IA3BX,WAAwB,EAAE,oBAA6C;;EA2BnF,eAAuB;IA3BX,WAAwB,EAAE,oBAA6C;;EA2BnF,eAAuB;IA3BX,WAAwB,EAAE,cAA6C;;EA2BnF,gBAAuB;IA3BX,WAAwB,EAAE,oBAA6C;;EA2BnF,gBAAuB;IA3BX,WAAwB,EAAE,oBAA6C;;EA8BrF,kBAAsB;IACpB,KAAK,EDsKS,IAAI;ICrKlB,IAAI,EAAE,IAAI;IACV,WAAwB,EAAE,CAAC;IAC3B,YAA6B,EAAE,CAAC;IAChC,KAAK,EAAE,IAAI;;EAGb;yBAC2B;IA7CzB,WAAwB,EAAE,IAAI;IAC9B,YAA6B,EAAE,IAAI;IACnC,KAAK,EAAE,IAAI;;EA6Cb;2BAC6B;IAC3B,KAAK,ED0JS,IAAI;ICzJlB,WAAwB,EAAE,CAAC;IAC3B,YAA6B,EAAE,CAAC;;EAIlC;oCACqC;IACnC,KAAK,EAAE,IAAI;;EAIb;sCACwC;IACtC,KAAK,ED4IS,IAAI;;ECzIpB;oCACsC;IACpC,KAAK,EA/LU,KAAmB;;EAoMhC;gCACW;IAzGb,YAAY,EAAE,CAAC;IACf,aAAa,EAAE,CAAC;EA0Gd,wBAAK;IAAC,WAAW,EAAC,CAAC;IAAE,YAAY,EAAC,CAAC;EAGnC;kCACW;IAxGb,YAAY,EAAE,SAAoB;IAClC,aAAa,EAAE,SAAoB;IAgBI,KAAK,EDkN9B,IAAI;AClFlB,6CAAqB;EAzGrB,cAAqB;IApDrB,QAAQ,EAAE,QAAQ;IAyBR,IAAiB,EA/FA,CAAC;IA+FmC,KAAsB,EAAE,IAAI;;EA8B3F,cAAqB;IAvDrB,QAAQ,EAAE,QAAQ;IA0BR,KAAsB,EAhGL,CAAC;IAgGwC,IAAiB,EAAE,IAAI;;EA0B3F,cAAqB;IApDrB,QAAQ,EAAE,QAAQ;IAyBR,IAAiB,EAhGpB,QAAwC;IAgGgB,KAAsB,EAAE,IAAI;;EA8B3F,cAAqB;IAvDrB,QAAQ,EAAE,QAAQ;IA0BR,KAAsB,EAjGzB,QAAwC;IAiGqB,IAAiB,EAAE,IAAI;;EA0B3F,cAAqB;IApDrB,QAAQ,EAAE,QAAQ;IAyBR,IAAiB,EAhGpB,SAAwC;IAgGgB,KAAsB,EAAE,IAAI;;EA8B3F,cAAqB;IAvDrB,QAAQ,EAAE,QAAQ;IA0BR,KAAsB,EAjGzB,SAAwC;IAiGqB,IAAiB,EAAE,IAAI;;EA0B3F,cAAqB;IApDrB,QAAQ,EAAE,QAAQ;IAyBR,IAAiB,EAhGpB,GAAwC;IAgGgB,KAAsB,EAAE,IAAI;;EA8B3F,cAAqB;IAvDrB,QAAQ,EAAE,QAAQ;IA0BR,KAAsB,EAjGzB,GAAwC;IAiGqB,IAAiB,EAAE,IAAI;;EA0B3F,cAAqB;IApDrB,QAAQ,EAAE,QAAQ;IAyBR,IAAiB,EAhGpB,SAAwC;IAgGgB,KAAsB,EAAE,IAAI;;EA8B3F,cAAqB;IAvDrB,QAAQ,EAAE,QAAQ;IA0BR,KAAsB,EAjGzB,SAAwC;IAiGqB,IAAiB,EAAE,IAAI;;EA0B3F,cAAqB;IApDrB,QAAQ,EAAE,QAAQ;IAyBR,IAAiB,EAhGpB,SAAwC;IAgGgB,KAAsB,EAAE,IAAI;;EA8B3F,cAAqB;IAvDrB,QAAQ,EAAE,QAAQ;IA0BR,KAAsB,EAjGzB,SAAwC;IAiGqB,IAAiB,EAAE,IAAI;;EA0B3F,cAAqB;IApDrB,QAAQ,EAAE,QAAQ;IAyBR,IAAiB,EAhGpB,GAAwC;IAgGgB,KAAsB,EAAE,IAAI;;EA8B3F,cAAqB;IAvDrB,QAAQ,EAAE,QAAQ;IA0BR,KAAsB,EAjGzB,GAAwC;IAiGqB,IAAiB,EAAE,IAAI;;EA0B3F,cAAqB;IApDrB,QAAQ,EAAE,QAAQ;IAyBR,IAAiB,EAhGpB,SAAwC;IAgGgB,KAAsB,EAAE,IAAI;;EA8B3F,cAAqB;IAvDrB,QAAQ,EAAE,QAAQ;IA0BR,KAAsB,EAjGzB,SAAwC;IAiGqB,IAAiB,EAAE,IAAI;;EA0B3F,cAAqB;IApDrB,QAAQ,EAAE,QAAQ;IAyBR,IAAiB,EAhGpB,SAAwC;IAgGgB,KAAsB,EAAE,IAAI;;EA8B3F,cAAqB;IAvDrB,QAAQ,EAAE,QAAQ;IA0BR,KAAsB,EAjGzB,SAAwC;IAiGqB,IAAiB,EAAE,IAAI;;EA0B3F,cAAqB;IApDrB,QAAQ,EAAE,QAAQ;IAyBR,IAAiB,EAhGpB,GAAwC;IAgGgB,KAAsB,EAAE,IAAI;;EA8B3F,cAAqB;IAvDrB,QAAQ,EAAE,QAAQ;IA0BR,KAAsB,EAjGzB,GAAwC;IAiGqB,IAAiB,EAAE,IAAI;;EA0B3F,eAAqB;IApDrB,QAAQ,EAAE,QAAQ;IAyBR,IAAiB,EAhGpB,SAAwC;IAgGgB,KAAsB,EAAE,IAAI;;EA8B3F,eAAqB;IAvDrB,QAAQ,EAAE,QAAQ;IA0BR,KAAsB,EAjGzB,SAAwC;IAiGqB,IAAiB,EAAE,IAAI;;EA0B3F,eAAqB;IApDrB,QAAQ,EAAE,QAAQ;IAyBR,IAAiB,EAhGpB,SAAwC;IAgGgB,KAAsB,EAAE,IAAI;;EA8B3F,eAAqB;IAvDrB,QAAQ,EAAE,QAAQ;IA0BR,KAAsB,EAjGzB,SAAwC;IAiGqB,IAAiB,EAAE,IAAI;;EAkC7F;UACS;IA7DP,QAAQ,EAAE,QAAQ;IAYlB,YAAY,EAAE,SAAoB;IAClC,aAAa,EAAE,SAAoB;IAgBI,KAAK,EDkN9B,IAAI;;EC9KlB,SAAgB;IA/ChB,KAAK,EAzFE,QAAwC;;EAwI/C,SAAgB;IA/ChB,KAAK,EAzFE,SAAwC;;EAwI/C,SAAgB;IA/ChB,KAAK,EAzFE,GAAwC;;EAwI/C,SAAgB;IA/ChB,KAAK,EAzFE,SAAwC;;EAwI/C,SAAgB;IA/ChB,KAAK,EAzFE,SAAwC;;EAwI/C,SAAgB;IA/ChB,KAAK,EAzFE,GAAwC;;EAwI/C,SAAgB;IA/ChB,KAAK,EAzFE,SAAwC;;EAwI/C,SAAgB;IA/ChB,KAAK,EAzFE,SAAwC;;EAwI/C,SAAgB;IA/ChB,KAAK,EAzFE,GAAwC;;EAwI/C,UAAgB;IA/ChB,KAAK,EAzFE,SAAwC;;EAwI/C,UAAgB;IA/ChB,KAAK,EAzFE,SAAwC;;EAwI/C,UAAgB;IA/ChB,KAAK,EAzFE,IAAwC;;EA4I/C,gBAAuB;IA3BX,WAAwB,EAAE,YAA6C;;EA2BnF,gBAAuB;IA3BX,WAAwB,EAAE,mBAA6C;;EA2BnF,gBAAuB;IA3BX,WAAwB,EAAE,oBAA6C;;EA2BnF,gBAAuB;IA3BX,WAAwB,EAAE,cAA6C;;EA2BnF,gBAAuB;IA3BX,WAAwB,EAAE,oBAA6C;;EA2BnF,gBAAuB;IA3BX,WAAwB,EAAE,oBAA6C;;EA2BnF,gBAAuB;IA3BX,WAAwB,EAAE,cAA6C;;EA2BnF,gBAAuB;IA3BX,WAAwB,EAAE,oBAA6C;;EA2BnF,gBAAuB;IA3BX,WAAwB,EAAE,oBAA6C;;EA2BnF,gBAAuB;IA3BX,WAAwB,EAAE,cAA6C;;EA2BnF,iBAAuB;IA3BX,WAAwB,EAAE,oBAA6C;;EA2BnF,iBAAuB;IA3BX,WAAwB,EAAE,oBAA6C;;EA8BrF,mBAAsB;IACpB,KAAK,EDsKS,IAAI;ICrKlB,IAAI,EAAE,IAAI;IACV,WAAwB,EAAE,CAAC;IAC3B,YAA6B,EAAE,CAAC;IAChC,KAAK,EAAE,IAAI;;EAGb;0BAC2B;IA7CzB,WAAwB,EAAE,IAAI;IAC9B,YAA6B,EAAE,IAAI;IACnC,KAAK,EAAE,IAAI;;EA6Cb;4BAC6B;IAC3B,KAAK,ED0JS,IAAI;ICzJlB,WAAwB,EAAE,CAAC;IAC3B,YAA6B,EAAE,CAAC;;EAIlC;qCACqC;IACnC,KAAK,EAAE,IAAI;;EAIb;uCACwC;IACtC,KAAK,ED4IS,IAAI;;ECzIpB;qCACsC;IACpC,KAAK,EA/LU,KAAmB;;EAoMhC;iCACW;IAzGb,YAAY,EAAE,CAAC;IACf,aAAa,EAAE,CAAC;EA0Gd,yBAAK;IAAC,WAAW,EAAC,CAAC;IAAE,YAAY,EAAC,CAAC;EAGnC;mCACW;IAxGb,YAAY,EAAE,SAAoB;IAClC,aAAa,EAAE,SAAoB;IAgBI,KAAK,EDkN9B,IAAI;;EC9Ed,OAAY;IAjKhB,QAAQ,EAAE,QAAQ;IAyBR,IAAiB,EA/FA,CAAC;IA+FmC,KAAsB,EAAE,IAAI;;EA2IvF,OAAY;IApKhB,QAAQ,EAAE,QAAQ;IA0BR,KAAsB,EAhGL,CAAC;IAgGwC,IAAiB,EAAE,IAAI;;EAuIvF,OAAY;IAjKhB,QAAQ,EAAE,QAAQ;IAyBR,IAAiB,EAhGpB,QAAwC;IAgGgB,KAAsB,EAAE,IAAI;;EA2IvF,OAAY;IApKhB,QAAQ,EAAE,QAAQ;IA0BR,KAAsB,EAjGzB,QAAwC;IAiGqB,IAAiB,EAAE,IAAI;;EAuIvF,OAAY;IAjKhB,QAAQ,EAAE,QAAQ;IAyBR,IAAiB,EAhGpB,SAAwC;IAgGgB,KAAsB,EAAE,IAAI;;EA2IvF,OAAY;IApKhB,QAAQ,EAAE,QAAQ;IA0BR,KAAsB,EAjGzB,SAAwC;IAiGqB,IAAiB,EAAE,IAAI;;EAuIvF,OAAY;IAjKhB,QAAQ,EAAE,QAAQ;IAyBR,IAAiB,EAhGpB,GAAwC;IAgGgB,KAAsB,EAAE,IAAI;;EA2IvF,OAAY;IApKhB,QAAQ,EAAE,QAAQ;IA0BR,KAAsB,EAjGzB,GAAwC;IAiGqB,IAAiB,EAAE,IAAI;;EAuIvF,OAAY;IAjKhB,QAAQ,EAAE,QAAQ;IAyBR,IAAiB,EAhGpB,SAAwC;IAgGgB,KAAsB,EAAE,IAAI;;EA2IvF,OAAY;IApKhB,QAAQ,EAAE,QAAQ;IA0BR,KAAsB,EAjGzB,SAAwC;IAiGqB,IAAiB,EAAE,IAAI;;EAuIvF,OAAY;IAjKhB,QAAQ,EAAE,QAAQ;IAyBR,IAAiB,EAhGpB,SAAwC;IAgGgB,KAAsB,EAAE,IAAI;;EA2IvF,OAAY;IApKhB,QAAQ,EAAE,QAAQ;IA0BR,KAAsB,EAjGzB,SAAwC;IAiGqB,IAAiB,EAAE,IAAI;;EAuIvF,OAAY;IAjKhB,QAAQ,EAAE,QAAQ;IAyBR,IAAiB,EAhGpB,GAAwC;IAgGgB,KAAsB,EAAE,IAAI;;EA2IvF,OAAY;IApKhB,QAAQ,EAAE,QAAQ;IA0BR,KAAsB,EAjGzB,GAAwC;IAiGqB,IAAiB,EAAE,IAAI;;EAuIvF,OAAY;IAjKhB,QAAQ,EAAE,QAAQ;IAyBR,IAAiB,EAhGpB,SAAwC;IAgGgB,KAAsB,EAAE,IAAI;;EA2IvF,OAAY;IApKhB,QAAQ,EAAE,QAAQ;IA0BR,KAAsB,EAjGzB,SAAwC;IAiGqB,IAAiB,EAAE,IAAI;;EAuIvF,OAAY;IAjKhB,QAAQ,EAAE,QAAQ;IAyBR,IAAiB,EAhGpB,SAAwC;IAgGgB,KAAsB,EAAE,IAAI;;EA2IvF,OAAY;IApKhB,QAAQ,EAAE,QAAQ;IA0BR,KAAsB,EAjGzB,SAAwC;IAiGqB,IAAiB,EAAE,IAAI;;EAuIvF,OAAY;IAjKhB,QAAQ,EAAE,QAAQ;IAyBR,IAAiB,EAhGpB,GAAwC;IAgGgB,KAAsB,EAAE,IAAI;;EA2IvF,OAAY;IApKhB,QAAQ,EAAE,QAAQ;IA0BR,KAAsB,EAjGzB,GAAwC;IAiGqB,IAAiB,EAAE,IAAI;;EAuIvF,QAAY;IAjKhB,QAAQ,EAAE,QAAQ;IAyBR,IAAiB,EAhGpB,SAAwC;IAgGgB,KAAsB,EAAE,IAAI;;EA2IvF,QAAY;IApKhB,QAAQ,EAAE,QAAQ;IA0BR,KAAsB,EAjGzB,SAAwC;IAiGqB,IAAiB,EAAE,IAAI;;EAuIvF,QAAY;IAjKhB,QAAQ,EAAE,QAAQ;IAyBR,IAAiB,EAhGpB,SAAwC;IAgGgB,KAAsB,EAAE,IAAI;;EA2IvF,QAAY;IApKhB,QAAQ,EAAE,QAAQ;IA0BR,KAAsB,EAjGzB,SAAwC;IAiGqB,IAAiB,EAAE,IAAI;AA+I3F,6CAAoB;EArHpB,aAAqB;IApDrB,QAAQ,EAAE,QAAQ;IAyBR,IAAiB,EA/FA,CAAC;IA+FmC,KAAsB,EAAE,IAAI;;EA8B3F,aAAqB;IAvDrB,QAAQ,EAAE,QAAQ;IA0BR,KAAsB,EAhGL,CAAC;IAgGwC,IAAiB,EAAE,IAAI;;EA0B3F,aAAqB;IApDrB,QAAQ,EAAE,QAAQ;IAyBR,IAAiB,EAhGpB,QAAwC;IAgGgB,KAAsB,EAAE,IAAI;;EA8B3F,aAAqB;IAvDrB,QAAQ,EAAE,QAAQ;IA0BR,KAAsB,EAjGzB,QAAwC;IAiGqB,IAAiB,EAAE,IAAI;;EA0B3F,aAAqB;IApDrB,QAAQ,EAAE,QAAQ;IAyBR,IAAiB,EAhGpB,SAAwC;IAgGgB,KAAsB,EAAE,IAAI;;EA8B3F,aAAqB;IAvDrB,QAAQ,EAAE,QAAQ;IA0BR,KAAsB,EAjGzB,SAAwC;IAiGqB,IAAiB,EAAE,IAAI;;EA0B3F,aAAqB;IApDrB,QAAQ,EAAE,QAAQ;IAyBR,IAAiB,EAhGpB,GAAwC;IAgGgB,KAAsB,EAAE,IAAI;;EA8B3F,aAAqB;IAvDrB,QAAQ,EAAE,QAAQ;IA0BR,KAAsB,EAjGzB,GAAwC;IAiGqB,IAAiB,EAAE,IAAI;;EA0B3F,aAAqB;IApDrB,QAAQ,EAAE,QAAQ;IAyBR,IAAiB,EAhGpB,SAAwC;IAgGgB,KAAsB,EAAE,IAAI;;EA8B3F,aAAqB;IAvDrB,QAAQ,EAAE,QAAQ;IA0BR,KAAsB,EAjGzB,SAAwC;IAiGqB,IAAiB,EAAE,IAAI;;EA0B3F,aAAqB;IApDrB,QAAQ,EAAE,QAAQ;IAyBR,IAAiB,EAhGpB,SAAwC;IAgGgB,KAAsB,EAAE,IAAI;;EA8B3F,aAAqB;IAvDrB,QAAQ,EAAE,QAAQ;IA0BR,KAAsB,EAjGzB,SAAwC;IAiGqB,IAAiB,EAAE,IAAI;;EA0B3F,aAAqB;IApDrB,QAAQ,EAAE,QAAQ;IAyBR,IAAiB,EAhGpB,GAAwC;IAgGgB,KAAsB,EAAE,IAAI;;EA8B3F,aAAqB;IAvDrB,QAAQ,EAAE,QAAQ;IA0BR,KAAsB,EAjGzB,GAAwC;IAiGqB,IAAiB,EAAE,IAAI;;EA0B3F,aAAqB;IApDrB,QAAQ,EAAE,QAAQ;IAyBR,IAAiB,EAhGpB,SAAwC;IAgGgB,KAAsB,EAAE,IAAI;;EA8B3F,aAAqB;IAvDrB,QAAQ,EAAE,QAAQ;IA0BR,KAAsB,EAjGzB,SAAwC;IAiGqB,IAAiB,EAAE,IAAI;;EA0B3F,aAAqB;IApDrB,QAAQ,EAAE,QAAQ;IAyBR,IAAiB,EAhGpB,SAAwC;IAgGgB,KAAsB,EAAE,IAAI;;EA8B3F,aAAqB;IAvDrB,QAAQ,EAAE,QAAQ;IA0BR,KAAsB,EAjGzB,SAAwC;IAiGqB,IAAiB,EAAE,IAAI;;EA0B3F,aAAqB;IApDrB,QAAQ,EAAE,QAAQ;IAyBR,IAAiB,EAhGpB,GAAwC;IAgGgB,KAAsB,EAAE,IAAI;;EA8B3F,aAAqB;IAvDrB,QAAQ,EAAE,QAAQ;IA0BR,KAAsB,EAjGzB,GAAwC;IAiGqB,IAAiB,EAAE,IAAI;;EA0B3F,cAAqB;IApDrB,QAAQ,EAAE,QAAQ;IAyBR,IAAiB,EAhGpB,SAAwC;IAgGgB,KAAsB,EAAE,IAAI;;EA8B3F,cAAqB;IAvDrB,QAAQ,EAAE,QAAQ;IA0BR,KAAsB,EAjGzB,SAAwC;IAiGqB,IAAiB,EAAE,IAAI;;EA0B3F,cAAqB;IApDrB,QAAQ,EAAE,QAAQ;IAyBR,IAAiB,EAhGpB,SAAwC;IAgGgB,KAAsB,EAAE,IAAI;;EA8B3F,cAAqB;IAvDrB,QAAQ,EAAE,QAAQ;IA0BR,KAAsB,EAjGzB,SAAwC;IAiGqB,IAAiB,EAAE,IAAI;;EAkC7F;UACS;IA7DP,QAAQ,EAAE,QAAQ;IAYlB,YAAY,EAAE,SAAoB;IAClC,aAAa,EAAE,SAAoB;IAgBI,KAAK,EDkN9B,IAAI;;EC9KlB,QAAgB;IA/ChB,KAAK,EAzFE,QAAwC;;EAwI/C,QAAgB;IA/ChB,KAAK,EAzFE,SAAwC;;EAwI/C,QAAgB;IA/ChB,KAAK,EAzFE,GAAwC;;EAwI/C,QAAgB;IA/ChB,KAAK,EAzFE,SAAwC;;EAwI/C,QAAgB;IA/ChB,KAAK,EAzFE,SAAwC;;EAwI/C,QAAgB;IA/ChB,KAAK,EAzFE,GAAwC;;EAwI/C,QAAgB;IA/ChB,KAAK,EAzFE,SAAwC;;EAwI/C,QAAgB;IA/ChB,KAAK,EAzFE,SAAwC;;EAwI/C,QAAgB;IA/ChB,KAAK,EAzFE,GAAwC;;EAwI/C,SAAgB;IA/ChB,KAAK,EAzFE,SAAwC;;EAwI/C,SAAgB;IA/ChB,KAAK,EAzFE,SAAwC;;EAwI/C,SAAgB;IA/ChB,KAAK,EAzFE,IAAwC;;EA4I/C,eAAuB;IA3BX,WAAwB,EAAE,YAA6C;;EA2BnF,eAAuB;IA3BX,WAAwB,EAAE,mBAA6C;;EA2BnF,eAAuB;IA3BX,WAAwB,EAAE,oBAA6C;;EA2BnF,eAAuB;IA3BX,WAAwB,EAAE,cAA6C;;EA2BnF,eAAuB;IA3BX,WAAwB,EAAE,oBAA6C;;EA2BnF,eAAuB;IA3BX,WAAwB,EAAE,oBAA6C;;EA2BnF,eAAuB;IA3BX,WAAwB,EAAE,cAA6C;;EA2BnF,eAAuB;IA3BX,WAAwB,EAAE,oBAA6C;;EA2BnF,eAAuB;IA3BX,WAAwB,EAAE,oBAA6C;;EA2BnF,eAAuB;IA3BX,WAAwB,EAAE,cAA6C;;EA2BnF,gBAAuB;IA3BX,WAAwB,EAAE,oBAA6C;;EA2BnF,gBAAuB;IA3BX,WAAwB,EAAE,oBAA6C;;EA8BrF,kBAAsB;IACpB,KAAK,EDsKS,IAAI;ICrKlB,IAAI,EAAE,IAAI;IACV,WAAwB,EAAE,CAAC;IAC3B,YAA6B,EAAE,CAAC;IAChC,KAAK,EAAE,IAAI;;EAGb;yBAC2B;IA7CzB,WAAwB,EAAE,IAAI;IAC9B,YAA6B,EAAE,IAAI;IACnC,KAAK,EAAE,IAAI;;EA6Cb;2BAC6B;IAC3B,KAAK,ED0JS,IAAI;ICzJlB,WAAwB,EAAE,CAAC;IAC3B,YAA6B,EAAE,CAAC;;EAIlC;oCACqC;IACnC,KAAK,EAAE,IAAI;;EAIb;sCACwC;IACtC,KAAK,ED4IS,IAAI;;ECzIpB;oCACsC;IACpC,KAAK,EA/LU,KAAmB;;EAoMhC;gCACW;IAzGb,YAAY,EAAE,CAAC;IACf,aAAa,EAAE,CAAC;EA0Gd,wBAAK;IAAC,WAAW,EAAC,CAAC;IAAE,YAAY,EAAC,CAAC;EAGnC;kCACW;IAxGb,YAAY,EAAE,SAAoB;IAClC,aAAa,EAAE,SAAoB;IAgBI,KAAK,EDkN9B,IAAI;;ECnEd,OAAY;IA5KhB,QAAQ,EAAE,QAAQ;IAyBR,IAAiB,EA/FA,CAAC;IA+FmC,KAAsB,EAAE,IAAI;;EAsJvF,OAAY;IA/KhB,QAAQ,EAAE,QAAQ;IA0BR,KAAsB,EAhGL,CAAC;IAgGwC,IAAiB,EAAE,IAAI;;EAkJvF,OAAY;IA5KhB,QAAQ,EAAE,QAAQ;IAyBR,IAAiB,EAhGpB,QAAwC;IAgGgB,KAAsB,EAAE,IAAI;;EAsJvF,OAAY;IA/KhB,QAAQ,EAAE,QAAQ;IA0BR,KAAsB,EAjGzB,QAAwC;IAiGqB,IAAiB,EAAE,IAAI;;EAkJvF,OAAY;IA5KhB,QAAQ,EAAE,QAAQ;IAyBR,IAAiB,EAhGpB,SAAwC;IAgGgB,KAAsB,EAAE,IAAI;;EAsJvF,OAAY;IA/KhB,QAAQ,EAAE,QAAQ;IA0BR,KAAsB,EAjGzB,SAAwC;IAiGqB,IAAiB,EAAE,IAAI;;EAkJvF,OAAY;IA5KhB,QAAQ,EAAE,QAAQ;IAyBR,IAAiB,EAhGpB,GAAwC;IAgGgB,KAAsB,EAAE,IAAI;;EAsJvF,OAAY;IA/KhB,QAAQ,EAAE,QAAQ;IA0BR,KAAsB,EAjGzB,GAAwC;IAiGqB,IAAiB,EAAE,IAAI;;EAkJvF,OAAY;IA5KhB,QAAQ,EAAE,QAAQ;IAyBR,IAAiB,EAhGpB,SAAwC;IAgGgB,KAAsB,EAAE,IAAI;;EAsJvF,OAAY;IA/KhB,QAAQ,EAAE,QAAQ;IA0BR,KAAsB,EAjGzB,SAAwC;IAiGqB,IAAiB,EAAE,IAAI;;EAkJvF,OAAY;IA5KhB,QAAQ,EAAE,QAAQ;IAyBR,IAAiB,EAhGpB,SAAwC;IAgGgB,KAAsB,EAAE,IAAI;;EAsJvF,OAAY;IA/KhB,QAAQ,EAAE,QAAQ;IA0BR,KAAsB,EAjGzB,SAAwC;IAiGqB,IAAiB,EAAE,IAAI;;EAkJvF,OAAY;IA5KhB,QAAQ,EAAE,QAAQ;IAyBR,IAAiB,EAhGpB,GAAwC;IAgGgB,KAAsB,EAAE,IAAI;;EAsJvF,OAAY;IA/KhB,QAAQ,EAAE,QAAQ;IA0BR,KAAsB,EAjGzB,GAAwC;IAiGqB,IAAiB,EAAE,IAAI;;EAkJvF,OAAY;IA5KhB,QAAQ,EAAE,QAAQ;IAyBR,IAAiB,EAhGpB,SAAwC;IAgGgB,KAAsB,EAAE,IAAI;;EAsJvF,OAAY;IA/KhB,QAAQ,EAAE,QAAQ;IA0BR,KAAsB,EAjGzB,SAAwC;IAiGqB,IAAiB,EAAE,IAAI;;EAkJvF,OAAY;IA5KhB,QAAQ,EAAE,QAAQ;IAyBR,IAAiB,EAhGpB,SAAwC;IAgGgB,KAAsB,EAAE,IAAI;;EAsJvF,OAAY;IA/KhB,QAAQ,EAAE,QAAQ;IA0BR,KAAsB,EAjGzB,SAAwC;IAiGqB,IAAiB,EAAE,IAAI;;EAkJvF,OAAY;IA5KhB,QAAQ,EAAE,QAAQ;IAyBR,IAAiB,EAhGpB,GAAwC;IAgGgB,KAAsB,EAAE,IAAI;;EAsJvF,OAAY;IA/KhB,QAAQ,EAAE,QAAQ;IA0BR,KAAsB,EAjGzB,GAAwC;IAiGqB,IAAiB,EAAE,IAAI;;EAkJvF,QAAY;IA5KhB,QAAQ,EAAE,QAAQ;IAyBR,IAAiB,EAhGpB,SAAwC;IAgGgB,KAAsB,EAAE,IAAI;;EAsJvF,QAAY;IA/KhB,QAAQ,EAAE,QAAQ;IA0BR,KAAsB,EAjGzB,SAAwC;IAiGqB,IAAiB,EAAE,IAAI;;EAkJvF,QAAY;IA5KhB,QAAQ,EAAE,QAAQ;IAyBR,IAAiB,EAhGpB,SAAwC;IAgGgB,KAAsB,EAAE,IAAI;;EAsJvF,QAAY;IA/KhB,QAAQ,EAAE,QAAQ;IA0BR,KAAsB,EAjGzB,SAAwC;IAiGqB,IAAiB,EAAE,IAAI;ACG3F,UAAW;EAET,aAAa,EAAE,CAAC;EAChB,WAAW,EAAE,CAAC;EFwGlB,mCAAkB;IAAE,OAAO,EAAE,GAAG;IAAE,OAAO,EAAE,KAAK;EAChD,gBAAQ;IAAE,KAAK,EAAE,IAAI;EExGjB,+CAA0B;IACxB,OAAO,EAAE,KAAK;IACd,aAAa,EAAE,YAAY;IAC3B,qEAAa;MAAE,UAAU,EA3HM,OAA4D;MA2HzB,KAAK,EAzH7C,OAAI;IA0H9B,uDAAI;MACF,UAAU,EA/HY,OAAO;MAgI7B,KAAK,EA5HmB,OAAI;MA6H5B,OAAO,EAAE,KAAK;MACd,WAAW,EA5Hc,sDAAiB;MA6H1C,SAAS,EA9Hc,IAAY;MA+HnC,OAAO,EArIc,IAAY;MAsIjC,mEAAQ;QAAE,UAAU,EApIQ,OAA4D;IAuI1F,qEAAW;MACT,OAAO,EAAE,IAAI;MACb,OAAO,EAlIY,SAAgB;MAmInC,mFAAS;QACP,UAAU,EAnIc,OAAM;QAoI9B,OAAO,EAAE,KAAK;;AC3CtB,UAAW;EAzDb,YAAY,EA3BO,KAAK;EA4BxB,YAAY,EA3BO,GAAG;EA4BtB,OAAO,EAAE,KAAK;EACd,SAAS,EAtCO,SAAY;EAuC5B,WAAW,EAxCO,MAAmB;EAyCrC,aAAa,EA7BO,OAAY;EA8BhC,OAAO,EAAE,iCAAuG;EAChH,QAAQ,EAAE,QAAQ;EHgFlB,UAAU,EAPS,sBAAyB;EG5D5C,gBAAgB,EH4OF,OAAO;EG3OrB,YAAY,EAAE,OAAoD;EAIxC,KAAK,EA3Dd,OAAM;EA8FnB,iBAAY;IA7BhB,KAAsB,EAlDD,OAAW;IAmDhC,UAAU,EA9Ca,OAAO;IA+C9B,KAAK,EAtDa,OAAI;IAuDtB,SAAS,EApDa,QAAY;IAqDlC,WAAW,EAAE,EAAE;IACf,UAAU,EAAE,UAA6B;IACzC,OAAO,EAtDa,GAAE;IAuDtB,OAAO,EArDa,SAAU;IAsD9B,QAAQ,EAAE,QAAQ;IAClB,GAAG,EA5Da,GAAG;IA6DnB,gDACQ;MAAE,OAAO,EA1DS,GAAE;EA8ExB,iBAAY;IHlFd,aAAa,EGSF,GAAc;EA0EvB,gBAAY;IHnFd,aAAa,EA4TA,MAAM;EGvOjB,kBAAY;IA7ChB,gBAAgB,EH+OF,OAAO;IG9OrB,YAAY,EAAE,OAAoD;IAIxC,KAAK,EA3Dd,OAAM;EAoGnB,gBAAY;IA9ChB,gBAAgB,EH8OJ,OAAO;IG7OnB,YAAY,EAAE,OAAoD;IAIxC,KAAK,EA3Dd,OAAM;EAqGnB,oBAAY;IA/ChB,gBAAgB,EH6OA,OAAO;IG5OvB,YAAY,EAAE,OAAoD;IAGxC,KAAK,EAzDV,OAA+C;EAqGhE,kBAAU;IAhDd,gBAAgB,EHgPF,OAAO;IG/OrB,YAAY,EAAE,OAAoD;IAIxC,KAAK,EA3Dd,OAAM;EAuGnB,eAAO;IAjDX,gBAAgB,EHiPL,OAAO;IGhPlB,YAAY,EAAE,OAAoD;IAGxC,KAAK,EAzDV,OAA+C;EAuGhE,sBAAc;IAAE,OAAO,EAAE,CAAC;;AClB5B,sBAAuB;EAjEvB,OAAO,EAAE,KAAK;EACd,OAAO,EAAE,CAAC;EAIR,MAAM,EAAE,WAAe;EJgM3B,2DAAkB;IAAE,OAAO,EAAE,GAAG;IAAE,OAAO,EAAE,KAAK;EAChD,4BAAQ;IAAE,KAAK,EAAE,IAAI;EI7LnB,2BAAK;IACH,OAAO,EAAE,KAAK;IACd,KAAK,EJiSO,IAAI;IIhShB,MAAM,EAAE,IAAI;IAEV,OAAO,EAAE,kBAAuB;;AAsDlC,kBAAoB;EAhDtB,wBAAK;IACH,UAAU,EAAE,IAAI;IAIhB,KAAK,EAAE,IAAa;IAEpB,wCAAkB;MAAE,KAAK,EAAE,IAAI;IAC/B,0CAA8B;MAAE,KAAK,EAAE,IAAI;;EAR7C,wBAAK;IACH,UAAU,EAAE,IAAI;IAIhB,KAAK,EAAE,GAAa;IAEpB,wCAAkB;MAAE,KAAK,EAAE,IAAI;IAC/B,0CAA8B;MAAE,KAAK,EAAE,IAAI;;EAR7C,wBAAK;IACH,UAAU,EAAE,IAAI;IAIhB,KAAK,EAAE,SAAa;IAEpB,wCAAkB;MAAE,KAAK,EAAE,IAAI;IAC/B,0CAA8B;MAAE,KAAK,EAAE,IAAI;;EAR7C,wBAAK;IACH,UAAU,EAAE,IAAI;IAIhB,KAAK,EAAE,GAAa;IAEpB,wCAAkB;MAAE,KAAK,EAAE,IAAI;IAC/B,0CAA8B;MAAE,KAAK,EAAE,IAAI;;EAR7C,wBAAK;IACH,UAAU,EAAE,IAAI;IAIhB,KAAK,EAAE,GAAa;IAEpB,wCAAkB;MAAE,KAAK,EAAE,IAAI;IAC/B,0CAA8B;MAAE,KAAK,EAAE,IAAI;;EAR7C,wBAAK;IACH,UAAU,EAAE,IAAI;IAIhB,KAAK,EAAE,SAAa;IAEpB,wCAAkB;MAAE,KAAK,EAAE,IAAI;IAC/B,0CAA8B;MAAE,KAAK,EAAE,IAAI;;EAR7C,wBAAK;IACH,UAAU,EAAE,IAAI;IAIhB,KAAK,EAAE,SAAa;IAEpB,wCAAkB;MAAE,KAAK,EAAE,IAAI;IAC/B,0CAA8B;MAAE,KAAK,EAAE,IAAI;;EAR7C,wBAAK;IACH,UAAU,EAAE,IAAI;IAIhB,KAAK,EAAE,KAAa;IAEpB,wCAAkB;MAAE,KAAK,EAAE,IAAI;IAC/B,0CAA8B;MAAE,KAAK,EAAE,IAAI;;EAR7C,wBAAK;IACH,UAAU,EAAE,IAAI;IAIhB,KAAK,EAAE,SAAa;IAEpB,wCAAkB;MAAE,KAAK,EAAE,IAAI;IAC/B,0CAA8B;MAAE,KAAK,EAAE,IAAI;;EAR7C,yBAAK;IACH,UAAU,EAAE,IAAI;IAIhB,KAAK,EAAE,GAAa;IAEpB,yCAAkB;MAAE,KAAK,EAAE,IAAI;IAC/B,4CAA8B;MAAE,KAAK,EAAE,IAAI;;EAR7C,yBAAK;IACH,UAAU,EAAE,IAAI;IAIhB,KAAK,EAAE,QAAa;IAEpB,yCAAkB;MAAE,KAAK,EAAE,IAAI;IAC/B,4CAA8B;MAAE,KAAK,EAAE,IAAI;;EAR7C,yBAAK;IACH,UAAU,EAAE,IAAI;IAIhB,KAAK,EAAE,QAAa;IAEpB,yCAAkB;MAAE,KAAK,EAAE,IAAI;IAC/B,4CAA8B;MAAE,KAAK,EAAE,IAAI;AA4C3C,6CAAqB;EApDvB,yBAAK;IACH,UAAU,EAAE,IAAI;IAIhB,KAAK,EAAE,IAAa;IAEpB,yCAAkB;MAAE,KAAK,EAAE,IAAI;IAC/B,2CAA8B;MAAE,KAAK,EAAE,IAAI;;EAR7C,yBAAK;IACH,UAAU,EAAE,IAAI;IAIhB,KAAK,EAAE,GAAa;IAEpB,yCAAkB;MAAE,KAAK,EAAE,IAAI;IAC/B,2CAA8B;MAAE,KAAK,EAAE,IAAI;;EAR7C,yBAAK;IACH,UAAU,EAAE,IAAI;IAIhB,KAAK,EAAE,SAAa;IAEpB,yCAAkB;MAAE,KAAK,EAAE,IAAI;IAC/B,2CAA8B;MAAE,KAAK,EAAE,IAAI;;EAR7C,yBAAK;IACH,UAAU,EAAE,IAAI;IAIhB,KAAK,EAAE,GAAa;IAEpB,yCAAkB;MAAE,KAAK,EAAE,IAAI;IAC/B,2CAA8B;MAAE,KAAK,EAAE,IAAI;;EAR7C,yBAAK;IACH,UAAU,EAAE,IAAI;IAIhB,KAAK,EAAE,GAAa;IAEpB,yCAAkB;MAAE,KAAK,EAAE,IAAI;IAC/B,2CAA8B;MAAE,KAAK,EAAE,IAAI;;EAR7C,yBAAK;IACH,UAAU,EAAE,IAAI;IAIhB,KAAK,EAAE,SAAa;IAEpB,yCAAkB;MAAE,KAAK,EAAE,IAAI;IAC/B,2CAA8B;MAAE,KAAK,EAAE,IAAI;;EAR7C,yBAAK;IACH,UAAU,EAAE,IAAI;IAIhB,KAAK,EAAE,SAAa;IAEpB,yCAAkB;MAAE,KAAK,EAAE,IAAI;IAC/B,2CAA8B;MAAE,KAAK,EAAE,IAAI;;EAR7C,yBAAK;IACH,UAAU,EAAE,IAAI;IAIhB,KAAK,EAAE,KAAa;IAEpB,yCAAkB;MAAE,KAAK,EAAE,IAAI;IAC/B,2CAA8B;MAAE,KAAK,EAAE,IAAI;;EAR7C,yBAAK;IACH,UAAU,EAAE,IAAI;IAIhB,KAAK,EAAE,SAAa;IAEpB,yCAAkB;MAAE,KAAK,EAAE,IAAI;IAC/B,2CAA8B;MAAE,KAAK,EAAE,IAAI;;EAR7C,0BAAK;IACH,UAAU,EAAE,IAAI;IAIhB,KAAK,EAAE,GAAa;IAEpB,0CAAkB;MAAE,KAAK,EAAE,IAAI;IAC/B,6CAA8B;MAAE,KAAK,EAAE,IAAI;;EAR7C,0BAAK;IACH,UAAU,EAAE,IAAI;IAIhB,KAAK,EAAE,QAAa;IAEpB,0CAAkB;MAAE,KAAK,EAAE,IAAI;IAC/B,6CAA8B;MAAE,KAAK,EAAE,IAAI;;EAR7C,0BAAK;IACH,UAAU,EAAE,IAAI;IAIhB,KAAK,EAAE,QAAa;IAEpB,0CAAkB;MAAE,KAAK,EAAE,IAAI;IAC/B,6CAA8B;MAAE,KAAK,EAAE,IAAI;AAgD3C,6CAAoB;EAxDtB,wBAAK;IACH,UAAU,EAAE,IAAI;IAIhB,KAAK,EAAE,IAAa;IAEpB,wCAAkB;MAAE,KAAK,EAAE,IAAI;IAC/B,0CAA8B;MAAE,KAAK,EAAE,IAAI;;EAR7C,wBAAK;IACH,UAAU,EAAE,IAAI;IAIhB,KAAK,EAAE,GAAa;IAEpB,wCAAkB;MAAE,KAAK,EAAE,IAAI;IAC/B,0CAA8B;MAAE,KAAK,EAAE,IAAI;;EAR7C,wBAAK;IACH,UAAU,EAAE,IAAI;IAIhB,KAAK,EAAE,SAAa;IAEpB,wCAAkB;MAAE,KAAK,EAAE,IAAI;IAC/B,0CAA8B;MAAE,KAAK,EAAE,IAAI;;EAR7C,wBAAK;IACH,UAAU,EAAE,IAAI;IAIhB,KAAK,EAAE,GAAa;IAEpB,wCAAkB;MAAE,KAAK,EAAE,IAAI;IAC/B,0CAA8B;MAAE,KAAK,EAAE,IAAI;;EAR7C,wBAAK;IACH,UAAU,EAAE,IAAI;IAIhB,KAAK,EAAE,GAAa;IAEpB,wCAAkB;MAAE,KAAK,EAAE,IAAI;IAC/B,0CAA8B;MAAE,KAAK,EAAE,IAAI;;EAR7C,wBAAK;IACH,UAAU,EAAE,IAAI;IAIhB,KAAK,EAAE,SAAa;IAEpB,wCAAkB;MAAE,KAAK,EAAE,IAAI;IAC/B,0CAA8B;MAAE,KAAK,EAAE,IAAI;;EAR7C,wBAAK;IACH,UAAU,EAAE,IAAI;IAIhB,KAAK,EAAE,SAAa;IAEpB,wCAAkB;MAAE,KAAK,EAAE,IAAI;IAC/B,0CAA8B;MAAE,KAAK,EAAE,IAAI;;EAR7C,wBAAK;IACH,UAAU,EAAE,IAAI;IAIhB,KAAK,EAAE,KAAa;IAEpB,wCAAkB;MAAE,KAAK,EAAE,IAAI;IAC/B,0CAA8B;MAAE,KAAK,EAAE,IAAI;;EAR7C,wBAAK;IACH,UAAU,EAAE,IAAI;IAIhB,KAAK,EAAE,SAAa;IAEpB,wCAAkB;MAAE,KAAK,EAAE,IAAI;IAC/B,0CAA8B;MAAE,KAAK,EAAE,IAAI;;EAR7C,yBAAK;IACH,UAAU,EAAE,IAAI;IAIhB,KAAK,EAAE,GAAa;IAEpB,yCAAkB;MAAE,KAAK,EAAE,IAAI;IAC/B,4CAA8B;MAAE,KAAK,EAAE,IAAI;;EAR7C,yBAAK;IACH,UAAU,EAAE,IAAI;IAIhB,KAAK,EAAE,QAAa;IAEpB,yCAAkB;MAAE,KAAK,EAAE,IAAI;IAC/B,4CAA8B;MAAE,KAAK,EAAE,IAAI;;EAR7C,yBAAK;IACH,UAAU,EAAE,IAAI;IAIhB,KAAK,EAAE,QAAa;IAEpB,yCAAkB;MAAE,KAAK,EAAE,IAAI;IAC/B,4CAA8B;MAAE,KAAK,EAAE,IAAI;ACiD7C,YAAa;EA1Ef,YAAY,EAvBO,KAAK;EAwBxB,YAAY,EAzBM,GAAG;EA0BrB,OAAO,EAAE,KAAK;EACd,UAAU,EAAE,IAAI;EAChB,WAAwB,EAAE,CAAC;EAC3B,QAAQ,EAAE,MAAM;EAChB,OAAO,EAnCO,4BAAgB;EAsC9B,gBAAgB,EAzCP,OAA8C;EA0CvD,YAAY,EAhCO,SAA0D;ELY3E,aAAa,EKXF,GAAc;EAmGvB,gBAAI;IA7DR,KAAK,EAlCY,OAAc;IAmC/B,KAAK,ELuRW,IAAI;IKtRpB,SAAS,EArCO,SAAY;IAsC5B,WAAW,EAtCK,SAAY;IAuC5B,MAAM,EAAE,CAAC;IACT,cAAc,EApCO,SAAS;IAsC9B,kDAAqB;MAAE,eAAe,EArCrB,SAAS;IAuC1B,kBAAE;MACA,KAAK,EA5CU,OAAc;IAgD/B,wBAAU;MACR,KAAK,EAhDkB,OAAI;MAiD3B,MAAM,ELkVa,OAAO;MKjV1B,0BAAE;QACA,KAAK,EAnDgB,OAAI;QAoDzB,MAAM,EL+UW,OAAO;MK5U1B,kIACmB;QAAE,eAAe,EAAE,IAAI;IAI5C,4BAAc;MACZ,KAAK,EA5DsB,OAAS;MA6DpC,8BAAE;QAAE,KAAK,EA7DkB,OAAS;MA+DpC;0CAGQ;QACN,KAAK,EAnEoB,OAAS;QAoElC,MAAM,EL+TY,WAAW;QK9T7B,eAAe,EAAE,IAAI;IAIzB,uBAAS;MACP,KAAK,EArEW,OAAK;MAsErB,OAAO,EAAE,GAAiB;MAC1B,MAAM,EAAE,SAAqB;MAC7B,QAAQ,EAAE,QAAQ;MAClB,GAAG,EAvEgB,GAAG;IA0ExB,mCAAqB;MACnB,OAAO,EAAE,GAAG;MACZ,MAAM,EAAE,CAAC;;;AAeT,qDAAsD;EACpD,OAAO,EAAE,GAAG;;ACyFd,eAAgB;EA7IhB,kBAAkB,EAAE,IAAI;EACxB,eAAe,EAAE,IAAI;EACrB,aAAa,EAAC,CAAC;EACf,YAAY,EA1CM,KAAK;EA2CvB,YAAY,EA5CM,CAAC;EA6CnB,MAAM,ENgVa,OAAO;EM/U1B,WAAW,EA5DM,sDAAiB;EA6DlC,WAAW,EAtDM,MAAmB;EAuDpC,WAAW,EAAE,MAAM;EACnB,MAAM,EAAE,WAAyB;EACjC,QAAQ,EAAE,QAAQ;EAClB,UAAU,EAzDM,MAAM;EA0DtB,eAAe,EAAE,IAAI;EAER,OAAO,EAxEP,YAAY;EAuFzB,OAAO,EAAE,wBAA+D;EAErC,SAAS,EAhF9B,IAAY;EAqI1B,gBAAgB,EA1HF,OAAc;EA2H5B,YAAY,EARK,OAAwG;EAazH,KAAK,EA/IW,OAAM;ENsHxB,UAAU,EAPS,+BAAyB;EM4B1C,wDACQ;IAAE,gBAAgB,EAVT,OAAwG;EAezH,wDACQ;IACN,KAAK,EAnJS,OAAM;EAyMpB,mCAAY;IAhEd,gBAAgB,EAvHQ,OAAgB;IAwHxC,YAAY,EAtHgB,OAA0B;IA2HtD,KAAK,EA9Ie,OAAI;IA0IxB,gGACQ;MAAE,gBAAgB,EAxHE,OAA0B;IA6HtD,gGACQ;MACN,KAAK,EAlJa,OAAI;EAyMtB,+BAAY;IAjEd,gBAAgB,EApHM,OAAc;IAqHpC,YAAY,EAnHc,OAAwB;IAwHlD,KAAK,EA/IW,OAAM;IA2ItB,wFACQ;MAAE,gBAAgB,EArHA,OAAwB;IA0HlD,wFACQ;MACN,KAAK,EAnJS,OAAM;EA2MpB,2BAAY;IAlEd,gBAAgB,EAjHI,OAAY;IAkHhC,YAAY,EAhHY,OAAsB;IAqH9C,KAAK,EA/IW,OAAM;IA2ItB,gFACQ;MAAE,gBAAgB,EAlHF,OAAsB;IAuH9C,gFACQ;MACN,KAAK,EAnJS,OAAM;EA4MpB,+BAAY;IAnEd,gBAAgB,EA9GM,OAAc;IA+GpC,YAAY,EA7Gc,OAAwB;IAkHlD,KAAK,EA/IW,OAAM;IA2ItB,wFACQ;MAAE,gBAAgB,EA/GA,OAAwB;IAoHlD,wFACQ;MACN,KAAK,EAnJS,OAAM;EA6MpB,yBAAY;IApEd,gBAAgB,EA3GG,OAAW;IA4G9B,YAAY,EA1GW,OAAqB;IA+G5C,KAAK,EA9Ie,OAAI;IA0IxB,4EACQ;MAAE,gBAAgB,EA5GH,OAAqB;IAiH5C,4EACQ;MACN,KAAK,EAnJS,OAAM;EA+MpB,2BAAS;IA7HX,OAAO,EAAE,kCAA+D;IAKrC,SAAS,EAlF9B,OAAY;EA2MxB,2BAAS;IA9HX,OAAO,EAAE,kCAA+D;IAIrC,SAAS,EAnF9B,SAAY;EA8MxB,yBAAS;IA/HX,OAAO,EAAE,kCAA+D;IAGrC,SAAS,EAnF9B,SAAY;EAgNxB,6BAAS;IAhIX,OAAO,EAAE,wBAA+D;IAErC,SAAS,EAhF9B,IAAY;IA0FxB,cAAc,EAAE,SAAsB;IACtC,WAAW,EAxGJ,IAAY;IA6GrB,YAAY,EA7GH,IAAY;IA8GrB,aAAa,EA9GJ,IAAY;IA+GrB,KAAK,EAAE,IAAI;EA8GT,qCAAc;IAAE,UAAU,EAAE,IAAI;IAAE,WAAW,EC/IzC,OAAmD;EDgJvD,uCAAc;IAAE,UAAU,EAAE,KAAK;IAAE,aAAa,EChJ5C,OAAmD;EDkJvD,6BAAS;IN5MX,aAAa,EMwBD,GAAc;EAqLxB,2BAAS;IN7MX,aAAa,EMyBF,MAAe;EAsLxB,sEAAwB;IAjF1B,gBAAgB,EA1HF,OAAc;IA2H5B,YAAY,EARK,OAAwG;IAazH,KAAK,EA/IW,OAAM;IAyJtB,UAAU,EAAE,IAAI;IAChB,MAAM,EAlHe,OAAqB;IAmH1C,OAAO,EApHe,GAAE;IAoGxB,8LACQ;MAAE,gBAAgB,EAVT,OAAwG;IAezH,8LACQ;MACN,KAAK,EAnJS,OAAM;IA4JtB,8LACQ;MAAE,gBAAgB,EA9IZ,OAAc;IA4MxB,8GAAY;MAlFhB,gBAAgB,EAvHQ,OAAgB;MAwHxC,YAAY,EAtHgB,OAA0B;MA2HtD,KAAK,EA9Ie,OAAI;MAwJxB,UAAU,EAAE,IAAI;MAChB,MAAM,EAlHe,OAAqB;MAmH1C,OAAO,EApHe,GAAE;MAoGxB,8QACQ;QAAE,gBAAgB,EAxHE,OAA0B;MA6HtD,8QACQ;QACN,KAAK,EAlJa,OAAI;MA2JxB,8QACQ;QAAE,gBAAgB,EA3IF,OAAgB;IA0MpC,sGAAU;MAnFd,gBAAgB,EApHM,OAAc;MAqHpC,YAAY,EAnHc,OAAwB;MAwHlD,KAAK,EA/IW,OAAM;MAyJtB,UAAU,EAAE,IAAI;MAChB,MAAM,EAlHe,OAAqB;MAmH1C,OAAO,EApHe,GAAE;MAoGxB,8PACQ;QAAE,gBAAgB,EArHA,OAAwB;MA0HlD,8PACQ;QACN,KAAK,EAnJS,OAAM;MA4JtB,8PACQ;QAAE,gBAAgB,EAxIJ,OAAc;IAwMhC,8FAAQ;MApFZ,gBAAgB,EAjHI,OAAY;MAkHhC,YAAY,EAhHY,OAAsB;MAqH9C,KAAK,EA/IW,OAAM;MAyJtB,UAAU,EAAE,IAAI;MAChB,MAAM,EAlHe,OAAqB;MAmH1C,OAAO,EApHe,GAAE;MAoGxB,8OACQ;QAAE,gBAAgB,EAlHF,OAAsB;MAuH9C,8OACQ;QACN,KAAK,EAnJS,OAAM;MA4JtB,8OACQ;QAAE,gBAAgB,EArIN,OAAY;IAsM5B,sGAAU;MArFd,gBAAgB,EA9GM,OAAc;MA+GpC,YAAY,EA7Gc,OAAwB;MAkHlD,KAAK,EA/IW,OAAM;MAyJtB,UAAU,EAAE,IAAI;MAChB,MAAM,EAlHe,OAAqB;MAmH1C,OAAO,EApHe,GAAE;MAoGxB,8PACQ;QAAE,gBAAgB,EA/GA,OAAwB;MAoHlD,8PACQ;QACN,KAAK,EAnJS,OAAM;MA4JtB,8PACQ;QAAE,gBAAgB,EAlIJ,OAAc;IAoMhC,0FAAO;MAtFX,gBAAgB,EA3GG,OAAW;MA4G9B,YAAY,EA1GW,OAAqB;MA+G5C,KAAK,EA9Ie,OAAI;MAwJxB,UAAU,EAAE,IAAI;MAChB,MAAM,EAlHe,OAAqB;MAmH1C,OAAO,EApHe,GAAE;MAoGxB,sOACQ;QAAE,gBAAgB,EA5GH,OAAqB;MAiH5C,sOACQ;QACN,KAAK,EAnJS,OAAM;MA4JtB,sOACQ;QAAE,gBAAgB,EA/HP,OAAW;;AAsM9B,wBAAyB;EAAC,MAAM,EAAC,CAAC;EAAE,OAAO,EAAC,CAAC;;AAE7C,6CAAqB;EACnB,eAAgB;IApKL,OAAO,EAqK4B,YAAY;AElG5D,aAAc;EAtId,UAAU,EAAE,IAAI;EAChB,MAAM,EAAE,CAAC;EACT,IAAiB,EAAE,CAAC;ERqNtB,yCAAkB;IAAE,OAAO,EAAE,GAAG;IAAE,OAAO,EAAE,KAAK;EAChD,mBAAQ;IAAE,KAAK,EAAE,IAAI;EQ/Ef,uBAAgB;IA1EtB,OAAO,EAzBkB,YAAY;IA0BrC,MAAM,EAzBkB,MAAM;IAwF5B,KAAK,EAAE,GAA6B;IAhHtC,iEAAkB;MAChB,WAAwB,EAAE,SAAgC;MAC1D,YAAY,EAAE,wBAAuB;IAIrC,uFAAgB;MACd,WAAwB,EAAE,CAAC;IA0G7B,+DAAgB;MAAE,KAAK,EAAE,IAAI;EASzB,uBAAgB;IA1EtB,OAAO,EAzBkB,YAAY;IA0BrC,MAAM,EAzBkB,MAAM;IAwF5B,KAAK,EAAE,SAA6B;IAhHtC,iEAAkB;MAChB,WAAwB,EAAE,SAAgC;MAC1D,YAAY,EAAE,wBAAuB;IAIrC,uFAAgB;MACd,WAAwB,EAAE,CAAC;IA0G7B,+DAAgB;MAAE,KAAK,EAAE,IAAI;EASzB,uBAAgB;IA1EtB,OAAO,EAzBkB,YAAY;IA0BrC,MAAM,EAzBkB,MAAM;IAwF5B,KAAK,EAAE,GAA6B;IAhHtC,iEAAkB;MAChB,WAAwB,EAAE,SAAgC;MAC1D,YAAY,EAAE,wBAAuB;IAIrC,uFAAgB;MACd,WAAwB,EAAE,CAAC;IA0G7B,+DAAgB;MAAE,KAAK,EAAE,IAAI;EASzB,uBAAgB;IA1EtB,OAAO,EAzBkB,YAAY;IA0BrC,MAAM,EAzBkB,MAAM;IAwF5B,KAAK,EAAE,GAA6B;IAhHtC,iEAAkB;MAChB,WAAwB,EAAE,SAAgC;MAC1D,YAAY,EAAE,wBAAuB;IAIrC,uFAAgB;MACd,WAAwB,EAAE,CAAC;IA0G7B,+DAAgB;MAAE,KAAK,EAAE,IAAI;EASzB,uBAAgB;IA1EtB,OAAO,EAzBkB,YAAY;IA0BrC,MAAM,EAzBkB,MAAM;IAwF5B,KAAK,EAAE,SAA6B;IAhHtC,iEAAkB;MAChB,WAAwB,EAAE,SAAgC;MAC1D,YAAY,EAAE,wBAAuB;IAIrC,uFAAgB;MACd,WAAwB,EAAE,CAAC;IA0G7B,+DAAgB;MAAE,KAAK,EAAE,IAAI;EASzB,uBAAgB;IA1EtB,OAAO,EAzBkB,YAAY;IA0BrC,MAAM,EAzBkB,MAAM;IAwF5B,KAAK,EAAE,SAA6B;IAhHtC,iEAAkB;MAChB,WAAwB,EAAE,SAAgC;MAC1D,YAAY,EAAE,wBAAuB;IAIrC,uFAAgB;MACd,WAAwB,EAAE,CAAC;IA0G7B,+DAAgB;MAAE,KAAK,EAAE,IAAI;EASzB,uBAAgB;IA1EtB,OAAO,EAzBkB,YAAY;IA0BrC,MAAM,EAzBkB,MAAM;IAwF5B,KAAK,EAAE,KAA6B;IAhHtC,iEAAkB;MAChB,WAAwB,EAAE,SAAgC;MAC1D,YAAY,EAAE,wBAAuB;IAIrC,uFAAgB;MACd,WAAwB,EAAE,CAAC;IA0G7B,+DAAgB;MAAE,KAAK,EAAE,IAAI;EAY3B,kBAAK;IA7ET,OAAO,EAzBkB,YAAY;IA0BrC,MAAM,EAzBkB,MAAM;IAxB9B,uDAAkB;MAChB,WAAwB,EAAE,SAAgC;MAC1D,YAAY,EAAE,wBAAuB;IAIrC,6EAAgB;MACd,WAAwB,EAAE,CAAC;EAyHzB,wBAAK;IAhFX,OAAO,EApBkB,KAAK;IAqB9B,MAAM,EApBkB,CAAC;IAmGwC,KAAK,EAAE,IAAI;IAhI5E,mEAAkB;MAChB,WAAwB,EAAE,SAAgC;MAC1D,YAAY,EAAE,wBAAuB;IAIrC,yFAAgB;MACd,WAAwB,EAAE,CAAC;IAuB7B,mEAAkB;MAChB,YAAY,EAAE,wBAAuB;MACrC,iBAAiB,EAAE,CAAC;MACpB,UAAU,EAAE,SAAgC;MAC5C,OAAO,EAAE,KAAK;MACd,MAAM,EAAC,CAAC;IAEV,iCAAS;MACL,KAAK,EAAE,IAAI;IAIb,yFAAgB;MACd,UAAU,EAAE,CAAC;EAyFb,kCAAK;IApFX,OAAO,EAzBkB,YAAY;IA0BrC,MAAM,EAzBkB,MAAM;IAxB9B,uFAAkB;MAChB,WAAwB,EAAE,SAAgC;MAC1D,YAAY,EAAE,wBAAuB;IAIrC,6GAAgB;MACd,WAAwB,EAAE,CAAC;IA+HvB,wCAAsB;MAFxB,kCAAK;QApFX,OAAO,EApBkB,KAAK;QAqB9B,MAAM,EApBkB,CAAC;QA2Gf,KAAK,EAAE,IAAI;QAxIrB,uFAAkB;UAChB,WAAwB,EAAE,SAAgC;UAC1D,YAAY,EAAE,wBAAuB;QAIrC,6GAAgB;UACd,WAAwB,EAAE,CAAC;QAuB7B,uFAAkB;UAChB,YAAY,EAAE,wBAAuB;UACrC,iBAAiB,EAAE,CAAC;UACpB,UAAU,EAAE,SAAgC;UAC5C,OAAO,EAAE,KAAK;UACd,MAAM,EAAC,CAAC;QAEV,2CAAS;UACL,KAAK,EAAE,IAAI;QAIb,6GAAgB;UACd,UAAU,EAAE,CAAC;EAkGf,wBAAa;IA7FjB,OAAO,EAzBkB,YAAY;IA0BrC,MAAM,EAzBkB,MAAM;IAxB9B,mEAAkB;MAChB,WAAwB,EAAE,SAAgC;MAC1D,YAAY,EAAE,wBAAuB;IAIrC,yFAAgB;MACd,WAAwB,EAAE,CAAC;IA2E7B;;;sCAGU;MRzFV,aAAa,EQyFe,CAAC;IAC7B,6KAGwB;MRnFxB,iCAAqC,EMczB,GAAc;MNb1B,8BAAkC,EMatB,GAAc;MNZ1B,yBAA6B,EMYjB,GAAc;MNX1B,sBAA0B,EMWd,GAAc;IE6E1B,yKAGuB;MR9FvB,kCAAqC,EMczB,GAAc;MNb1B,+BAAkC,EMatB,GAAc;MNZ1B,0BAA6B,EMYjB,GAAc;MNX1B,uBAA0B,EMWd,GAAc;EE0HxB,8BAAmB;IA9FvB,OAAO,EApBkB,KAAK;IAqB9B,MAAM,EApBkB,CAAC;IA7BzB,+EAAkB;MAChB,WAAwB,EAAE,SAAgC;MAC1D,YAAY,EAAE,wBAAuB;IAIrC,qGAAgB;MACd,WAAwB,EAAE,CAAC;IAuB7B,+EAAkB;MAChB,YAAY,EAAE,wBAAuB;MACrC,iBAAiB,EAAE,CAAC;MACpB,UAAU,EAAE,SAAgC;MAC5C,OAAO,EAAE,KAAK;MACd,MAAM,EAAC,CAAC;IAEV,uCAAS;MACL,KAAK,EAAE,IAAI;IAIb,qGAAgB;MACd,UAAU,EAAE,CAAC;IAuCjB;;;4CAGU;MRzFV,aAAa,EQyFe,CAAC;IAC7B,qMAGwB;MR9ExB,uBAA4B,EMShB,GAAc;MNR1B,wBAA6B,EMQjB,GAAc;MNP1B,sBAA2B,EMOf,GAAc;MNN1B,uBAA4B,EMMhB,GAAc;IE6E1B,iMAGuB;MRzFvB,0BAA4B,EMShB,GAAc;MNR1B,2BAA6B,EMQjB,GAAc;MNP1B,yBAA2B,EMOf,GAAc;MNN1B,0BAA4B,EMMhB,GAAc;EE4HtB,6CAAqB;IADvB,wCAA6B;MA/FjC,OAAO,EAzBkB,YAAY;MA0BrC,MAAM,EAzBkB,MAAM;MAxB9B,mGAAkB;QAChB,WAAwB,EAAE,SAAgC;QAC1D,YAAY,EAAE,wBAAuB;MAIrC,yHAAgB;QACd,WAAwB,EAAE,CAAC;MA2E7B;;;wDAGU;QRzFV,aAAa,EQyFe,CAAC;MAC7B,6OAGwB;QRnFxB,iCAAqC,EMczB,GAAc;QNb1B,8BAAkC,EMatB,GAAc;QNZ1B,yBAA6B,EMYjB,GAAc;QNX1B,sBAA0B,EMWd,GAAc;ME6E1B,yOAGuB;QR9FvB,kCAAqC,EMczB,GAAc;QNb1B,+BAAkC,EMatB,GAAc;QNZ1B,0BAA6B,EMYjB,GAAc;QNX1B,uBAA0B,EMWd,GAAc;EE+HtB,wCAAsB;IAJxB,wCAA6B;MA/FjC,OAAO,EApBkB,KAAK;MAqB9B,MAAM,EApBkB,CAAC;MA7BzB,mGAAkB;QAChB,WAAwB,EAAE,SAAgC;QAC1D,YAAY,EAAE,wBAAuB;MAIrC,yHAAgB;QACd,WAAwB,EAAE,CAAC;MAuB7B,mGAAkB;QAChB,YAAY,EAAE,wBAAuB;QACrC,iBAAiB,EAAE,CAAC;QACpB,UAAU,EAAE,SAAgC;QAC5C,OAAO,EAAE,KAAK;QACd,MAAM,EAAC,CAAC;MAEV,iDAAS;QACL,KAAK,EAAE,IAAI;MAIb,yHAAgB;QACd,UAAU,EAAE,CAAC;MAuCjB;;;wDAGU;QRzFV,aAAa,EQyFe,CAAC;MAC7B,6OAGwB;QR9ExB,uBAA4B,EMShB,GAAc;QNR1B,wBAA6B,EMQjB,GAAc;QNP1B,sBAA2B,EMOf,GAAc;QNN1B,uBAA4B,EMMhB,GAAc;ME6E1B,yOAGuB;QRzFvB,0BAA4B,EMShB,GAAc;QNR1B,2BAA6B,EMQjB,GAAc;QNP1B,yBAA2B,EMOf,GAAc;QNN1B,0BAA4B,EMMhB,GAAc;EEoIxB,uBAAY;IAxGhB,OAAO,EAzBkB,YAAY;IA0BrC,MAAM,EAzBkB,MAAM;IAxB9B,iEAAkB;MAChB,WAAwB,EAAE,SAAgC;MAC1D,YAAY,EAAE,wBAAuB;IAIrC,uFAAgB;MACd,WAAwB,EAAE,CAAC;IA2E7B;;;qCAGU;MRzFV,aAAa,EQyFe,CAAC;IAC7B,yKAGwB;MRnFxB,iCAAqC,EMe1B,MAAe;MNd1B,8BAAkC,EMcvB,MAAe;MNb1B,yBAA6B,EMalB,MAAe;MNZ1B,sBAA0B,EMYf,MAAe;IE4E1B,qKAGuB;MR9FvB,kCAAqC,EMe1B,MAAe;MNd1B,+BAAkC,EMcvB,MAAe;MNb1B,0BAA6B,EMalB,MAAe;MNZ1B,uBAA0B,EMYf,MAAe;EEoIxB,6BAAkB;IAzGtB,OAAO,EApBkB,KAAK;IAqB9B,MAAM,EApBkB,CAAC;IA7BzB,6EAAkB;MAChB,WAAwB,EAAE,SAAgC;MAC1D,YAAY,EAAE,wBAAuB;IAIrC,mGAAgB;MACd,WAAwB,EAAE,CAAC;IAuB7B,6EAAkB;MAChB,YAAY,EAAE,wBAAuB;MACrC,iBAAiB,EAAE,CAAC;MACpB,UAAU,EAAE,SAAgC;MAC5C,OAAO,EAAE,KAAK;MACd,MAAM,EAAC,CAAC;IAEV,sCAAS;MACL,KAAK,EAAE,IAAI;IAIb,mGAAgB;MACd,UAAU,EAAE,CAAC;IAuCjB;;;2CAGU;MRzFV,aAAa,EQyFe,CAAC;IAC7B,iMAGwB;MR9ExB,uBAA4B,EMnCnB,IAAY;MNoCrB,wBAA6B,EMpCpB,IAAY;MNqCrB,sBAA2B,EMrClB,IAAY;MNsCrB,uBAA4B,EMtCnB,IAAY;IEyHrB,6LAGuB;MRzFvB,0BAA4B,EMnCnB,IAAY;MNoCrB,2BAA6B,EMpCpB,IAAY;MNqCrB,yBAA2B,EMrClB,IAAY;MNsCrB,0BAA4B,EMtCnB,IAAY;EEmLjB,6CAAqB;IADvB,uCAA4B;MA1GhC,OAAO,EAzBkB,YAAY;MA0BrC,MAAM,EAzBkB,MAAM;MAxB9B,iGAAkB;QAChB,WAAwB,EAAE,SAAgC;QAC1D,YAAY,EAAE,wBAAuB;MAIrC,uHAAgB;QACd,WAAwB,EAAE,CAAC;MA2E7B;;;uDAGU;QRzFV,aAAa,EQyFe,CAAC;MAC7B,yOAGwB;QRnFxB,iCAAqC,EMe1B,MAAe;QNd1B,8BAAkC,EMcvB,MAAe;QNb1B,yBAA6B,EMalB,MAAe;QNZ1B,sBAA0B,EMYf,MAAe;ME4E1B,qOAGuB;QR9FvB,kCAAqC,EMe1B,MAAe;QNd1B,+BAAkC,EMcvB,MAAe;QNb1B,0BAA6B,EMalB,MAAe;QNZ1B,uBAA0B,EMYf,MAAe;EEyItB,wCAAsB;IAJxB,uCAA4B;MA1GhC,OAAO,EApBkB,KAAK;MAqB9B,MAAM,EApBkB,CAAC;MA7BzB,iGAAkB;QAChB,WAAwB,EAAE,SAAgC;QAC1D,YAAY,EAAE,wBAAuB;MAIrC,uHAAgB;QACd,WAAwB,EAAE,CAAC;MAuB7B,iGAAkB;QAChB,YAAY,EAAE,wBAAuB;QACrC,iBAAiB,EAAE,CAAC;QACpB,UAAU,EAAE,SAAgC;QAC5C,OAAO,EAAE,KAAK;QACd,MAAM,EAAC,CAAC;MAEV,gDAAS;QACL,KAAK,EAAE,IAAI;MAIb,uHAAgB;QACd,UAAU,EAAE,CAAC;MAuCjB;;;uDAGU;QRzFV,aAAa,EQyFe,CAAC;MAC7B,yOAGwB;QR9ExB,uBAA4B,EMnCnB,IAAY;QNoCrB,wBAA6B,EMpCpB,IAAY;QNqCrB,sBAA2B,EMrClB,IAAY;QNsCrB,uBAA4B,EMtCnB,IAAY;MEyHrB,qOAGuB;QRzFvB,0BAA4B,EMnCnB,IAAY;QNoCrB,2BAA6B,EMpCpB,IAAY;QNqCrB,yBAA2B,EMrClB,IAAY;QNsCrB,0BAA4B,EMtCnB,IAAY;;ANgOvB,qCAAkB;EAAE,OAAO,EAAE,GAAG;EAAE,OAAO,EAAE,KAAK;AAChD,iBAAQ;EAAE,KAAK,EAAE,IAAI;AQnCjB,yBAAc;EA/KhB,KAAK,EAAE,IAAiB;EACxB,YAA6B,EAjBJ,QAAY;EAkBrC,6BAAM;IAAE,QAAQ,EAAE,MAAM;;;ACYxB,iCAAsC;EAEpC,UAAU,EAAE,IAAI;EAChB,WAAwB,EAAE,CAAC;EAC3B,aAAa,EAAE,CAAC;ET+LpB,8FAAkB;IAAE,OAAO,EAAE,GAAG;IAAE,OAAO,EAAE,KAAK;EAChD,6CAAQ;IAAE,KAAK,EAAE,IAAI;ES9LjB,uCAAG;IACD,KAAK,ETmSK,IAAI;ISlSd,YAA6B,EAAE,IAAI;EAGrC,mFAA2B;IACzB,YAA6B,EAAE,CAAC;;AAIpC,kBAAmB;EACjB,UAAU,EA7CE,OAAY;EA8CxB,MAAM,EAAE,IAAI;EACZ,QAAQ,EAAE,KAAK;EACf,GAAG,EAAE,CAAC;EACN,KAAK,EAAE,IAAI;EACX,OAAO,EAAE,GAAG;EACZ,IAAiB,EAAE,CAAC;EAEpB,kCAAgB;IAAE,OAAO,EAAE,KAAK;;AAGlC,mBAAoB;EAClB,MAAM,EAAE,IAAI;EACZ,MAAM,EAAE,CAAC;EACT,QAAQ,EAAE,MAAM;EAChB,QAAQ,EAAE,QAAQ;EAClB,OAAO,EAAE,GAAG;;AAGd,qBAAsB;EACpB,KAAK,EJ9CS,OAAK;EI+CnB,SAAS,EAAE,IAAI;EACf,IAAI,EAAE,GAAG;EACT,QAAQ,EAAE,QAAQ;EAClB,GAAG,EAAE,GAAG;;AAGV,YAAa;EACX,MAAM,EAAE,GAAG;EACX,QAAQ,EAAE,QAAQ;EAElB,gBAAI;IACF,QAAQ,EAAE,QAAQ;IAClB,IAAiB,EAAE,GAAG;IACtB,GAAG,EAAE,GAAG;IAEN,iBAAiB,EAAE,iCAAiC;IACpD,cAAc,EAAE,iCAAiC;IACjD,aAAa,EAAE,iCAAiC;IAChD,YAAY,EAAE,iCAAiC;IAC/C,SAAS,EAAE,iCAAiC;IAS9C,UAAU,EAAE,IAAI;IAChB,SAAS,EAAE,IAAI;;AAInB,iBAAkB;EAChB,UAAU,EApGE,OAAY;EAqGxB,MAAM,EAAE,CAAC;EACT,KAAK,EA3FmB,OAAK;EA4F7B,SAAS,EA3Fc,OAAM;EA4F7B,WAAW,EAAE,GAAG;EAChB,aAAa,EAAE,CAAC;EAChB,OAAO,EA7Fc,cAAe;EA8FpC,QAAQ,EAAE,QAAQ;EAClB,UAAU,EAAE,MAAM;EAClB,KAAK,EAAE,IAAI;EACX,IAAiB,EAAE,CAAC;;AAGtB,eAAgB;EACd,KAAK,EAvGmB,OAAK;EAwG7B,OAAO,EAAE,IAAI;EACb,SAAS,EAhHO,IAAI;EAiHpB,WAAW,EAAE,CAAC;EACd,YAAyB,EAAE,IAAI;EAC/B,WAAW,EAAE,IAAI;EACjB,OAAO,EAAE,GAAG;EAEZ,4CACQ;IAAE,KAAK,EAhHS,OAAK;;AAmH/B,uCAAwC;EAAE,MAAM,EAAE,IAAI;EACpD,sDAAe;IAAE,OAAO,EAAE,IAAI;;AAIhC,oBAAqB;EACnB,OAAO,EAAE,IAAI;EACb,0CAAwB;IACtB,OAAO,EAAE,KAAK;;AAKlB,6CAAqB;EACnB;qBACoB;IAClB,MAAM,EAAE,IAAI;IACZ,QAAQ,EAAE,QAAQ;IAClB,GAAG,EAAE,CAAC;IACN,KAAK,EAAE,IAAI;IACX;8BAAO;MACL,MAAM,EAAE,UAA0B;MAClC,OAAO,EAAE,KAAK;MACd,MAAM,EAAE,CAAC;MACT,QAAQ,EAAE,QAAQ;MAClB,GAAG,EAAE,GAAG;MACR,KAAK,EAAE,CAAC;MACR;sCAAQ;QAAE,OAAO,EAAE,EAAE;;EAGzB,mBAAoB;IAClB,IAAiB,EAAE,CAAC;IACpB,0BAAO;MACL,IAAiB,EAAE,GAAG;MACtB,YAAY,EAAE,WAAW;MACzB,kBAAmC,EAtJf,OAAK;;EAyJ7B,mBAAoB;IAClB,KAAsB,EAAE,CAAC;IACzB,0BAAO;MACL,YAAY,EAAE,WAAW;MACzB,iBAA8B,EA7JV,OAAK;;EAiK7B;8BAC6B;IAAE,OAAO,EAAE,EAAE;;EAIxC,iDAAU;IACR,UAAU,EAnLG,qBAAkB;IAoL/B,MAAM,EAlKW,KAAK;IAmKtB,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,MAAM;IAElB,sDAAK;MACH,OAAO,EAAE,YAAY;MACrB,OAAO,EAAE,GAAG;MACZ,MAAM,EAAE,IAAI;MACZ,QAAQ,EAAE,QAAQ;MAClB,KAAK,EAAE,IAAI;MAEX,yDAAG;QACD,KAAK,EAAE,IAAI;QACX,MAAM,ETkNG,OAAO;QSjNhB,OAAO,EAAE,KAAK;QACd,KAAK,EToID,IAAI;QSnIR,YAA6B,EAAE,CAAC;QAChC,UAAU,EAAE,OAAO;QACnB,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,MAAM;QAChB,OAAO,EAAE,CAAC;QACV,QAAQ,EAAE,QAAQ;QAClB,KAAK,EAvLa,KAAK;QA0LrB,wEAAI;UACF,MAAM,EAAE,IAAI;UACZ,SAAS,EAAE,IAAI;QAInB,8DAAK;UACH,MAAM,EAAE,IAAI;UACZ,UAAU,EAAE,IAAI;UAChB,OAAO,EAAE,KAAK;QAGhB,6DAAI;UACF,MAAM,EAAE,kBAAgC;UACxC,KAAK,EAAE,eAAe;QAGxB,iEAAU;UAAE,OAAO,EAAE,CAAC;QACtB,+DAAQ;UAAE,OAAO,EAAE,EAAE;EAK3B,oDAAa;IACX,UAAU,EApOF,OAAY;IAqOpB,MAAM,EArNa,GAAG;IAsNtB,QAAQ,EAAE,MAAM;;EAIpB,eAAgB;IACd,YAAyB,EAAE,CAAC;IAC5B,WAAW,EAAE,CAAC;IACd,QAAQ,EAAE,QAAQ;IAClB,GAAG,EAAE,IAAI;IACT,KAAsB,EAAE,IAAI;;AC1BhC,WAAY;EAlKd,OAAO,EAAE,IAAI;EACb,IAAI,EAAE,OAAO;EACb,UAAU,EA1BY,IAAI;EA2B1B,WAAwB,EAAE,CAAC;EAC3B,QAAQ,EAAE,QAAQ;EAUhB,UAAU,EA1Cc,OAAM;EA2C9B,MAAM,EAAE,iBAA0E;EAClF,SAAS,EAtCU,QAAY;EAuC/B,MAAM,EAtEU,IAAI;EAuEpB,UAAU,EAtEU,IAAI;EAuExB,KAAK,EAAE,IAAI;EACX,OAAO,EAAE,EAAE;EAcX,UAAU,EAnFU,GAAG;EAsLR,SAAS,EA3LL,KAAK;EA4D1B,gBAAO;IACL,OAAO,EAAE,KAAK;EAGhB,2BAAgB;IAAE,UAAU,EAAE,CAAC;EAC/B,0BAAe;IAAE,aAAa,EAAE,CAAC;EA2B7B,kBAAS;IVwDb,MAAM,EAAE,SAAoB;IAC5B,OAAO,EAAE,EAAE;IACX,OAAO,EAAE,KAAK;IACd,MAAM,EAAE,CAAC;IACT,KAAK,EAAE,CAAC;IAMN,YAAY,EAAE,2CAAmD;IACjE,mBAAmB,EAAE,KAAK;IUjEtB,QAAQ,EAAE,QAAQ;IAClB,GAAG,EAAE,KAAgC;IACrC,IAAiB,EArES,IAAI;IAsE9B,OAAO,EAAE,EAAE;EAEb,iBAAQ;IViDZ,MAAM,EAAE,SAAoB;IAC5B,OAAO,EAAE,EAAE;IACX,OAAO,EAAE,KAAK;IACd,MAAM,EAAE,CAAC;IACT,KAAK,EAAE,CAAC;IAMN,YAAY,EAAE,2CAAmD;IACjE,mBAAmB,EAAE,KAAK;IU1DtB,QAAQ,EAAE,QAAQ;IAClB,GAAG,EAAE,KAAsC;IAC3C,IAAiB,EAAE,GAAoC;IACvD,OAAO,EAAE,EAAE;EAGb,wBAAe;IACb,IAAiB,EAAE,IAAI;IACvB,KAAsB,EAlFI,IAAI;EAoFhC,uBAAc;IACZ,IAAiB,EAAE,IAAI;IACvB,KAAsB,EAAE,GAAoC;EA0G9D,sBAA8B;IArKlC,OAAO,EAAE,IAAI;IACb,IAAI,EAAE,OAAO;IACb,UAAU,EA1BY,IAAI;IA2B1B,WAAwB,EAAE,CAAC;IAC3B,QAAQ,EAAE,QAAQ;IAUhB,UAAU,EA1Cc,OAAM;IA2C9B,MAAM,EAAE,iBAA0E;IAClF,SAAS,EAtCU,QAAY;IAuC/B,MAAM,EAtEU,IAAI;IAuEpB,UAAU,EAtEU,IAAI;IAuExB,KAAK,EAAE,IAAI;IACX,OAAO,EAAE,EAAE;IA6CX,UAAU,EAAE,CAAC;IACb,WAAwB,EA7GF,GAAsB;IAgL7B,SAAS,EA3LL,KAAK;IA4D1B,2BAAO;MACL,OAAO,EAAE,KAAK;IAGhB,sCAAgB;MAAE,UAAU,EAAE,CAAC;IAC/B,qCAAe;MAAE,aAAa,EAAE,CAAC;IAyD/B,6BAAS;MV0BX,MAAM,EAAE,SAAoB;MAC5B,OAAO,EAAE,EAAE;MACX,OAAO,EAAE,KAAK;MACd,MAAM,EAAE,CAAC;MACT,KAAK,EAAE,CAAC;MAcN,YAAY,EAAE,2CAAmD;MACjE,kBAAkB,EAAE,KAAK;MU3CvB,QAAQ,EAAE,QAAQ;MAClB,GAAG,EAlGyB,IAAI;MAmGhC,IAAiB,EAAE,KAAgC;MACnD,OAAO,EAAE,EAAE;IAEb,4BAAQ;MVmBV,MAAM,EAAE,SAAoB;MAC5B,OAAO,EAAE,EAAE;MACX,OAAO,EAAE,KAAK;MACd,MAAM,EAAE,CAAC;MACT,KAAK,EAAE,CAAC;MAcN,YAAY,EAAE,2CAAmD;MACjE,kBAAkB,EAAE,KAAK;MUpCvB,QAAQ,EAAE,QAAQ;MAClB,GAAG,EAAE,GAAoC;MACzC,IAAiB,EAAE,KAAoC;MACvD,OAAO,EAAE,EAAE;EAyFX,qBAAyB;IAzK7B,OAAO,EAAE,IAAI;IACb,IAAI,EAAE,OAAO;IACb,UAAU,EA1BY,IAAI;IA2B1B,WAAwB,EAAE,CAAC;IAC3B,QAAQ,EAAE,QAAQ;IAUhB,UAAU,EA1Cc,OAAM;IA2C9B,MAAM,EAAE,iBAA0E;IAClF,SAAS,EAtCU,QAAY;IAuC/B,MAAM,EAtEU,IAAI;IAuEpB,UAAU,EAtEU,IAAI;IAuExB,KAAK,EAAE,IAAI;IACX,OAAO,EAAE,EAAE;IAkEX,UAAU,EAAE,CAAC;IACb,WAAwB,EAAE,IAAyB;IA8CpC,SAAS,EA3LL,KAAK;IA4D1B,0BAAO;MACL,OAAO,EAAE,KAAK;IAGhB,qCAAgB;MAAE,UAAU,EAAE,CAAC;IAC/B,oCAAe;MAAE,aAAa,EAAE,CAAC;IA8E/B,4BAAS;MVKX,MAAM,EAAE,SAAoB;MAC5B,OAAO,EAAE,EAAE;MACX,OAAO,EAAE,KAAK;MACd,MAAM,EAAE,CAAC;MACT,KAAK,EAAE,CAAC;MAUN,YAAY,EAAE,2CAAmD;MACjE,iBAAiB,EAAE,KAAK;MUlBtB,QAAQ,EAAE,QAAQ;MAClB,GAAG,EAvHyB,IAAI;MAwHhC,KAAsB,EAAE,KAAgC;MACxD,IAAiB,EAAE,IAAI;MACvB,OAAO,EAAE,EAAE;IAEb,2BAAQ;MVHV,MAAM,EAAE,SAAoB;MAC5B,OAAO,EAAE,EAAE;MACX,OAAO,EAAE,KAAK;MACd,MAAM,EAAE,CAAC;MACT,KAAK,EAAE,CAAC;MAUN,YAAY,EAAE,2CAAmD;MACjE,iBAAiB,EAAE,KAAK;MUVtB,QAAQ,EAAE,QAAQ;MAClB,GAAG,EAAE,GAAoC;MACzC,KAAsB,EAAE,KAAoC;MAC5D,IAAiB,EAAE,IAAI;MACvB,OAAO,EAAE,EAAE;EAsEX,oBAAW;IA7Kf,OAAO,EAAE,IAAI;IACb,IAAI,EAAE,OAAO;IACb,UAAU,EA1BY,IAAI;IA2B1B,WAAwB,EAAE,CAAC;IAC3B,QAAQ,EAAE,QAAQ;IAUhB,UAAU,EA1Cc,OAAM;IA2C9B,MAAM,EAAE,iBAA0E;IAClF,SAAS,EAtCU,QAAY;IAuC/B,MAAM,EAtEU,IAAI;IAuEpB,UAAU,EAtEU,IAAI;IAuExB,KAAK,EAAE,IAAI;IACX,OAAO,EAAE,EAAE;IAyFX,WAAW,EAAE,CAAC;IACd,UAAU,EAAE,IAA0B;IAuBvB,SAAS,EA3LL,KAAK;IA4D1B,yBAAO;MACL,OAAO,EAAE,KAAK;IAGhB,oCAAgB;MAAE,UAAU,EAAE,CAAC;IAC/B,mCAAe;MAAE,aAAa,EAAE,CAAC;IAqG/B,2BAAS;MVlBX,MAAM,EAAE,SAAoB;MAC5B,OAAO,EAAE,EAAE;MACX,OAAO,EAAE,KAAK;MACd,MAAM,EAAE,CAAC;MACT,KAAK,EAAE,CAAC;MAEN,YAAY,EAAE,2CAAmD;MACjE,gBAAgB,EAAE,KAAK;MUarB,MAAM,EAAE,KAAgC;MACxC,QAAQ,EAAE,QAAQ;MAClB,GAAG,EAAE,IAAI;MACT,IAAiB,EAhJW,IAAI;MAiJhC,KAAsB,EAAE,IAAI;MAC5B,OAAO,EAAE,EAAE;IAEb,0BAAQ;MV3BV,MAAM,EAAE,SAAoB;MAC5B,OAAO,EAAE,EAAE;MACX,OAAO,EAAE,KAAK;MACd,MAAM,EAAE,CAAC;MACT,KAAK,EAAE,CAAC;MAEN,YAAY,EAAE,2CAAmD;MACjE,gBAAgB,EAAE,KAAK;MUsBrB,MAAM,EAAE,KAAoC;MAC5C,QAAQ,EAAE,QAAQ;MAClB,GAAG,EAAE,IAAI;MACT,IAAiB,EAAE,GAAoC;MACvD,KAAsB,EAAE,IAAI;MAC5B,OAAO,EAAE,EAAE;EAkDX,cAAG;IAnCP,MAAM,EVgNe,OAAO;IU/M5B,SAAS,EAtKY,QAAY;IAuKjC,WAAW,EArKY,QAAY;IAsKnC,MAAM,EAAE,CAAC;IAET,0CACQ;MAAE,UAAU,EAxKK,OAAM;IA0K/B,gBAAE;MACA,OAAO,EAAE,KAAK;MACd,OAAO,EA9Ke,MAAe;MA+KrC,KAAK,EAjLe,OAAS;EA4M3B,mBAAU;IArLd,OAAO,EAAE,IAAI;IACb,IAAI,EAAE,OAAO;IACb,UAAU,EA1BY,IAAI;IA2B1B,WAAwB,EAAE,CAAC;IAC3B,QAAQ,EAAE,QAAQ;IAmBhB,UAAU,EAnDc,OAAM;IAoD9B,MAAM,EAAE,iBAA0E;IAClF,SAAS,EA/CU,QAAY;IAgD/B,MAAM,EA/EU,IAAI;IAgFpB,UAAU,EA/EU,IAAI;IAgFxB,OAAO,EA3CkB,OAAY;IA4CrC,KAAK,EAAE,IAAI;IACX,OAAO,EAAE,EAAE;IAuGI,SAAS,EA3LL,KAAK;IA4D1B,wBAAO;MACL,OAAO,EAAE,KAAK;IAGhB,mCAAgB;MAAE,UAAU,EAAE,CAAC;IAC/B,kCAAe;MAAE,aAAa,EAAE,CAAC;EA6K7B,kBAAS;IVxNX,aAAa,EUoBG,GAAc;EAuM5B,gBAAU;IAAE,SAAS,EAAE,KAAK;EAC5B,iBAAU;IAAE,SAAS,EAAE,KAAK;EAC5B,kBAAU;IAAE,SAAS,EAAE,KAAK;EAC5B,iBAAU;IAAE,SAAS,EAAE,KAAK;EAC5B,gBAAU;IACR,KAAK,EAAC,eAAc;IACpB,SAAS,EAAC,eAAc;IAExB,qBAAM;MACJ,IAAI,EAAC,YAAW;;AC5ItB,iCAAkC;EA/DlC,QAAQ,EAAE,QAAQ;EAqClB,aAA8B,EA9DJ,SAAkC;EA4B5D,+CAAS;IACP,YAAY,EAAE,2CAA8D;IAC5E,YAAY,EAAE,KAAK;IACnB,OAAO,EAAE,EAAE;IACX,OAAO,EAAE,KAAK;IACd,MAAM,EAAE,CAAC;IACT,QAAQ,EAAE,QAAQ;IAClB,GAAG,EAAE,GAAG;IACR,KAAK,EAAE,CAAC;EA2BV,+CAAS;IACP,YAAY,EA/Da,QAA8B;IAgEvD,KAAsB,EA/DO,UAAqB;IAgElD,UAAU,EA/DgB,WAAmC;EA+E/D,+CAAS;IAAE,YAAY,EAAE,2CAA8C;EAOrE,2CAAO;IA/CT,aAA8B,EAtDJ,QAAmB;IAuD7C,uDAAQ;MACN,YAAY,EAvDa,QAAe;MAwDxC,KAAsB,EAvDO,QAAmB;MAwDhD,UAAU,EAvDgB,SAAmC;IA2F/D,yDAAS;MAAE,YAAY,EAAE,2CAA8C;EAQrE,6CAAQ;IAtCV,aAA8B,EA1DJ,SAAmB;IA2D7C,2DAAS;MACP,YAAY,EA3Da,SAAe;MA4DxC,KAAsB,EA3DO,SAAmB;MA4DhD,UAAU,EA3DgB,WAAmC;IAqF/D,2DAAS;MAAE,YAAY,EAAE,2CAA8C;EASrE,6CAAQ;IAnBV,aAA8B,EAlEJ,QAAkC;IAmE5D,2DAAS;MACP,YAAY,EAnEa,SAA8B;MAoEvD,KAAsB,EAnEO,UAAqB;MAoElD,UAAU,EAnEgB,WAAmC;IAyE/D,2DAAS;MAAE,YAAY,EAAE,2CAA8C;EAUrE,iEAAkB;IAAE,YAAY,EAAE,2CAAkE;;AC9EtG,WAAY;EAxBd,MAAM,EAAE,CAAC;EACT,aAAa,EAXY,IAAY;EAYrC,QAAQ,EAAE,MAAM;EAChB,cAAc,EAdY,KAAK;EAe/B,WAAW,EAhBY,SAAY;EAiBnC,QAAQ,EAAE,QAAQ;EAElB,sBAAa;IAAE,cAAc,EAdQ,MAAM;EAe3C,iBAAQ;IAAE,WAAW,EAAE,CAAC;EAExB;;;mBAGM;IACJ,MAAM,EAAE,IAAI;IACZ,QAAQ,EAAE,QAAQ;IAClB,GAAG,EAAE,CAAC;IACN,KAAK,EAAE,IAAI;IACX,IAAiB,EAAE,CAAC;;;ACsVpB,IAAK;EAAE,MAAM,EAAE,QAAiB;;;AAtSlC,cAAK;EAAE,MAAM,EAAE,SAAwB;EAErC;yBACS;IAAE,OAAO,EAAE,QAAqB;EAGzC,uBAAW;IAAE,MAAM,EAAE,CAAC;IAEpB;oCACS;MAAE,OAAO,EAAE,CAAC;IACrB,6BAAM;MbxDR,kCAAqC,EayDS,CAAC;MbxD/C,+BAAkC,EawDY,CAAC;MbvD/C,0BAA6B,EauDiB,CAAC;MbtD/C,uBAA0B,EasDoB,CAAC;AAKjD;;;0BAGiB;EAAE,YAAyB,EAAE,MAAmB;;;AAyR/D,KAAM;EAhON,KAAK,EAlJe,OAAoC;EAmJxD,MAAM,EAvJW,OAAO;EAwJxB,OAAO,EAAE,KAAK;EACd,SAAS,EAxJU,QAAY;EAyJ/B,WAAW,EAxGmB,MAAmB;EAyGjD,WAAW,EAxJU,GAAG;EAyJxB,aAAa,EAtJU,CAAC;;EAiXtB,WAAQ;IAtNV,KAAK,EAAE,eAAe;IACtB,UAAU,EAAE,KAAK;EAsNf,YAAS;IAnNX,MAAM,EAAE,UAAmB;IAC3B,OAAO,EAAE,WAAmD;EAoN1D,WAAM;IACJ,cAAc,EAtXO,UAAU;IAuX/B,KAAK,EAAE,OAAoD;;;AAK/D;QACS;EAtNX,YAAY,EAtIa,KAAK;EAuI9B,YAAY,EAxIa,GAAG;EAyI5B,OAAO,EAAE,KAAK;EACd,SAAS,EA9KY,QAAY;EA+KjC,MAAM,EAAE,SAAwD;EAChE,WAAW,EAAE,SAAwD;EACrE,QAAQ,EA3Ic,OAAO;EA4I7B,cAAc,EAAE,CAAC;EACjB,WAAW,EAAE,CAAC;EACd,QAAQ,EAAE,QAAQ;EAClB,UAAU,EAAE,MAAM;EAClB,KAAK,EAAE,IAAI;EACX,OAAO,EAAE,CAAC;;;AA6MR,eAAgB;EAjJhB,MAAM,EAAE,IAAI;EACZ,YAAyB,EAAE,CAAC;EAC5B,aAA8B,EAAE,CAAC;EACjC,cAAc,EAAE,CAAC;EACjB,WAAW,EAAE,CAAC;EACd,UAAU,EAAE,MAAM;;AA6IlB,cAAe;EApLf,MAAM,EAAE,IAAI;EACZ,YAAyB,EAAE,CAAC;EAC5B,aAA8B,EAAE,CAAC;EACjC,cAAc,EAAE,CAAC;EACjB,WAAW,EAAE,CAAC;EACd,UAAU,EAAE,MAAM;;AAiLlB,qBAAsB;EbtXtB,aAAa,EasX2B,CAAC;Eb5WzC,iCAAqC,EMczB,GAAc;ENb1B,8BAAkC,EMatB,GAAc;ENZ1B,yBAA6B,EMYjB,GAAc;ENX1B,sBAA0B,EMWd,GAAc;;AO+V1B,sBAAuB;EbvXvB,aAAa,EauX4B,CAAC;Eb7W1C,kCAAqC,EMczB,GAAc;ENb1B,+BAAkC,EMatB,GAAc;ENZ1B,0BAA6B,EMYjB,GAAc;ENX1B,uBAA0B,EMWd,GAAc;;AOgW1B,oBAAqB;EbxXrB,aAAa,EawX0B,CAAC;Eb9WxC,iCAAqC,EMe1B,MAAe;ENd1B,8BAAkC,EMcvB,MAAe;ENb1B,yBAA6B,EMalB,MAAe;ENZ1B,sBAA0B,EMYf,MAAe;;AOgW1B,qBAAsB;EbzXtB,aAAa,EayX2B,CAAC;Eb/WzC,kCAAqC,EMe1B,MAAe;ENd1B,+BAAkC,EMcvB,MAAe;ENb1B,0BAA6B,EMalB,MAAe;ENZ1B,uBAA0B,EMYf,MAAe;;;AOmW1B,yBAA0B;EAzM1B,UAAU,EAlKI,OAAoC;EAmKlD,YAA6B,EAAE,IAAI;EAGQ,KAAK,EAnJf,OAAI;EAwJrC,YAAY,EA1KY,OAAqC;;AA2W7D,2BAA4B;EA1K5B,UAAU,EAlMI,OAAoC;EAoMhD,WAAwB,EAAE,IAAI;EAIY,KAAK,EArLhB,OAAI;EA0LrC,YAAY,EA5MY,OAAqC;;;AA8W7D,0UAAgD;EAC9C,kBAAkB,EAAE,IAAI;EACxB,eAAe,EAAE,IAAI;EACrB,aAAa,EAAE,CAAC;EAjTpB,gBAAgB,EAhDe,OAAM;EAkDnC,YAAK,EAvFY,KAAK;EAwFtB,YAAK,EAvFY,GAAG;EAwFpB,YAAK,EA3FY,OAAqC;EA6FxD,UAAU,EAtFO,kCAAgC;EAuFjD,KAAK,EAnGY,mBAAgB;EAoGjC,OAAO,EAAE,KAAK;EACd,WAAW,EAtGO,OAAO;EAuGzB,SAAS,EApGO,QAAY;EAqG5B,MAAM,EAAE,SAAwD;EAChE,MAAM,EAAE,UAAmB;EAC3B,OAAO,EAAE,MAAiB;EAC1B,KAAK,EAAE,IAAI;EbkBX,kBAAkB,EajBE,UAAU;EbkB3B,eAAe,EalBE,UAAU;EbmBtB,UAAU,EanBE,UAAU;EAqSxB,kBAAkB,EAAE,kDAA+E;EACnG,eAAe,EAAE,kDAA+E;EAChG,cAAc,EAAE,kDAA+E;EAC/F,aAAa,EAAE,kDAA+E;EAC9F,UAAU,EAAE,kDAA+E;EApSjG,0aAAQ;IACN,UAAU,EA7GS,OAAoC;IA8GvD,YAAY,EAhEO,OAAyB;IAiE5C,OAAO,EAAE,IAAI;EAGf,0dAAW;IACT,gBAAgB,EArGI,OAAU;IAsG9B,MAAM,EA7Gc,OAAqB;EAiH3C,klDAEqB;IACnB,gBAAgB,EA7GI,OAAU;IA8G9B,MAAM,EArHc,OAAqB;EA2YvC,0bAAS;Ib5YX,aAAa,EaDK,GAAc;;AAqZ1B;;;4CAGO;EbvZb,aAAa,EauZkB,CAAC;Eb7YhC,kCAAqC,EMczB,GAAc;ENb1B,+BAAkC,EMatB,GAAc;ENZ1B,0BAA6B,EMYjB,GAAc;ENX1B,uBAA0B,EMWd,GAAc;AOgYpB,6CAAQ;EbxZd,aAAa,EawZmB,CAAC;Eb9YjC,iCAAqC,EMczB,GAAc;ENb1B,8BAAkC,EMatB,GAAc;ENZ1B,yBAA6B,EMYjB,GAAc;ENX1B,sBAA0B,EMWd,GAAc;AOmYpB;;;6CAGO;Eb9Zb,aAAa,Ea8ZkB,CAAC;EbpZhC,iCAAqC,EMczB,GAAc;ENb1B,8BAAkC,EMatB,GAAc;ENZ1B,yBAA6B,EMYjB,GAAc;ENX1B,sBAA0B,EMWd,GAAc;AOuYpB,+CAAS;Eb/Zf,aAAa,Ea+ZoB,CAAC;EbrZlC,kCAAqC,EMczB,GAAc;ENb1B,+BAAkC,EMatB,GAAc;ENZ1B,0BAA6B,EMYjB,GAAc;ENX1B,uBAA0B,EMWd,GAAc;AO0YpB;;;2CAGO;Ebrab,aAAa,EaqakB,CAAC;Eb3ZhC,kCAAqC,EMe1B,MAAe;ENd1B,+BAAkC,EMcvB,MAAe;ENb1B,0BAA6B,EMalB,MAAe;ENZ1B,uBAA0B,EMYf,MAAe;AO6YpB,4CAAQ;Ebtad,aAAa,EasamB,CAAC;Eb5ZjC,iCAAqC,EMe1B,MAAe;ENd1B,8BAAkC,EMcvB,MAAe;ENb1B,yBAA6B,EMalB,MAAe;ENZ1B,sBAA0B,EMYf,MAAe;AOgZpB;;;4CAGO;Eb5ab,aAAa,Ea4akB,CAAC;EblahC,iCAAqC,EMe1B,MAAe;ENd1B,8BAAkC,EMcvB,MAAe;ENb1B,yBAA6B,EMalB,MAAe;ENZ1B,sBAA0B,EMYf,MAAe;AOoZpB,8CAAS;Eb7af,aAAa,Ea6aoB,CAAC;EbnalC,kCAAqC,EMe1B,MAAe;ENd1B,+BAAkC,EMcvB,MAAe;ENb1B,0BAA6B,EMalB,MAAe;ENZ1B,uBAA0B,EMYf,MAAe;;AOyZ1B,oBAAqB;EACnB,kBAAkB,EAAE,IAAI;EACxB,eAAe,EAAE,IAAI;EACrB,aAAa,EAAE,CAAC;;;AAIlB,cAAe;EACb,MAAM,EAAE,IAAI;;;AAId,QAAS;EACP,SAAS,EAAE,IAAI;;AAIjB,2BAA4B;EAC1B,KAAK,EA7coB,OAAM;;AAgdjC,iBAAkB;;EACf,KAAK,EAjdmB,OAAM;;AAodjC,kBAAmB;;EAChB,KAAK,EArdmB,OAAM;;AAwdjC,sBAAuB;EACpB,KAAK,EAzdmB,OAAM;;;AA8djC,MAAO;EA/KT,kBAAkB,EAAE,eAAe;EACnC,eAAe,EAAE,eAAe;EAChC,gBAAgB,EAzPA,OAAM;EA0PtB,aAAa,EAAE,CAAC;EAShB,gBAAgB,EAAE,qUAAqU;EAGvV,mBAAmB,EAAE,WAA6C;EAElE,iBAAiB,EAAE,SAAS;EAE1B,YAAK,EA5TY,KAAK;EA6TtB,YAAK,EA5TY,GAAG;EA6TpB,YAAK,EAhUY,OAAqC;EAkUxD,KAAK,EAvUY,mBAAgB;EAwUjC,WAAW,EAzUO,OAAO;EA0UzB,SAAS,EAvUO,QAAY;EAwU5B,WAAW,EAAE,MAAM;EACnB,OAAO,EAAE,MAAmB;EbjU1B,aAAa,EakUC,CAAC;EAqJb,MAAM,EAAE,SAAwD;EA3KpE,kBAAc;IACZ,OAAO,EAAE,IAAI;EAsBf,aAAS;IbnUP,aAAa,EA2TD,GAAG;EaSjB,YAAQ;IACN,gBAAgB,EArRI,OAA8C;IAsRlE,YAAY,EA9RO,OAAyB;EAiS9C,eAAW;IACT,gBAAgB,EAlUI,OAAU;IAmU9B,MAAM,EA1Uc,OAAqB;EAudvC,gBAAY;IACV,MAAM,EAAE,IAAI;;;AAKhB;;;MAGO;EACL,MAAM,EAAE,UAAmB;;AAG7B;2BAC4B;EAC1B,OAAO,EAAE,YAAY;EACrB,WAAwB,EAAE,MAAkB;EAC5C,YAA6B,EA9fpB,IAAY;EA+frB,aAAa,EAAE,CAAC;EAChB,cAAc,EAAE,QAAQ;;;AAI1B,kBAAmB;EACjB,KAAK,EAAC,IAAI;;;;AAaZ,QAAS;EA/QX,MAAM,EAAE,iBAAoE;EAC5E,MAAM,EArOU,UAAc;EAsO9B,OAAO,EAvOU,OAAY;EA0O7B,eAAO;IACL,WAAW,EAvOM,IAAiB;IAwOlC,MAAM,EAAE,CAAC;IACT,WAAwB,EN5LlB,UAAmD;IM6LzD,OAAO,EAzOM,WAAa;;;AAsfxB,kHAA+D;EA/OnE,OAAO,EAAE,KAAK;EACd,SAAS,EAvPqB,OAAY;EAwP1C,UAAU,EAtPqB,MAAM;EAuPrC,WAAW,EAxPqB,MAAmB;EAyPnD,aAAa,EA9SA,IAAY;EA+SzB,UAAU,EA5Pc,IAAI;EA6P5B,OAAO,EA9PqB,4BAAe;EAkQ3C,UAAU,EA5PmB,OAAY;EA6PE,KAAK,EA9PjB,OAAM;AAqejC,iDAAwB;EAAE,OAAO,EAAE,IAAI;;AAGzC,uBAAwB;EArP1B,OAAO,EAAE,KAAK;EACd,SAAS,EAvPqB,OAAY;EAwP1C,UAAU,EAtPqB,MAAM;EAuPrC,WAAW,EAxPqB,MAAmB;EAyPnD,aAAa,EA9SA,IAAY;EA+SzB,UAAU,EA5Pc,IAAI;EA6P5B,OAAO,EA9PqB,4BAAe;EAkQ3C,UAAU,EA5PmB,OAAY;EA6PE,KAAK,EA9PjB,OAAM;;AA6ejC;;aAEO;EACL,aAAa,EAAE,CAAC;AAGlB;0BACoB;EAClB,aAAa,EA5iBN,IAAY;AA+iBrB;kBACY;EA7QmC,KAAK,EA3O3B,OAAY;AA4frC,kBAAY;EA1QhB,OAAO,EAAE,KAAK;EACd,SAAS,EAvPqB,OAAY;EAwP1C,UAAU,EAtPqB,MAAM;EAuPrC,WAAW,EAxPqB,MAAmB;EAyPnD,aAAa,EA9SA,IAAY;EA+SzB,UAAU,EA5Pc,IAAI;EA6P5B,OAAO,EA9PqB,4BAAe;EAkQ3C,UAAU,EA5PmB,OAAY;EA6PE,KAAK,EA9PjB,OAAM;AAkgB/B,sBAAQ;EACN,UAAU,EAAE,WAAW;EACvB,KAAK,EAAE,OAAoD;EAC3D,OAAO,EAAE,MAAM;EACf,SAAS,EAAE,GAAG;EACd,UAAU,EAAE,MAAM;EAClB,MAAM,EAAE,CAAC;EACT,OAAO,EAAE,CAAC;EACV,cAAc,EAzjBK,UAAU;AA6jBjC,yBAAmB;EACjB,OAAO,EAAE,KAAK;;AAIlB;;YAEa;EACX,aAAa,EAAE,CAAC;;AAElB,WAAY;EA5SqC,KAAK,EA3O3B,OAAY;;ACqRvC,SAAU;EAlTZ,OAAO,EAAE,YAAY;EACrB,SAAS,EAAE,CAAC;EACZ,KAAK,EAAE,IAAI;EAmIT,UAAU,EA9JA,OAAI;EA6BhB,aAAI;IACF,OAAO,EAAE,KAAK;IACd,KAAK,EAAE,IAAI;IACX,SAAS,EA7BQ,IAAI;IA8BrB,MAAM,EAAE,MAAM;IACd,OAAO,EAvBa,OAAO;IAwB3B,UAAU,EAAE,MAAM;IAClB,KAAK,EAAE,GAAG;IAEV,kCAAO;MACL,OAAO,EAAE,KAAK;MACd,MAAM,EAAE,MAAM;MAEd,kDAAU;QACR,UAAU,EAAE,QAAQ;IAIxB,eAAE;MACA,SAAS,EAzCM,QAAQ;MA0CvB,cAAc,EAAE,MAAM;IAGxB,iBAAI;MACF,MAAM,EA5CY,QAAQ;MA6C1B,KAAK,EA9CY,QAAQ;EAoD3B,0DAAO;IACL,OAAO,EAAE,YAAY;IACrB,MAAM,EAAE,cAAc;IAEtB,0EAAU;MACR,UAAU,EAAE,CAAC;EAIjB,+BAAM;IAAE,OAAO,EAAE,YAAY;EAG/B,kCAA2B;IACzB,UAAU,EAAE,IAAI;EAGlB,4CAA4B;IAC1B,MAAM,EAAE,IAAI;IACZ,KAAK,EAAE,IAAI;IAEX,wDAAM;MACJ,KAAK,EAAE,IAAI;MACX,MAAM,EAAE,IAAI;MACZ,KAAK,EAAE,IAAI;EAKb,6CAAqB;IADvB,yBAAkB;MAEd,MAAM,EAAE,IAAI;MACZ,KAAK,EAAE,IAAI;MAEX,+BAAM;QACJ,KAAK,EAAE,IAAI;QACX,MAAM,EAAE,IAAI;QACZ,KAAK,EAAE,IAAI;EAKf,6CAAoB;IADtB,wBAAiB;MAEb,MAAM,EAAE,IAAI;MACZ,KAAK,EAAE,IAAI;MAEX,8BAAM;QACJ,KAAK,EAAE,IAAI;QACX,MAAM,EAAE,IAAI;QACZ,KAAK,EAAE,IAAI;EAcjB,aAAI;IACF,SAAS,EAvHQ,IAAI;IAwHrB,OAAO,EAhHa,OAAO;IAoHzB,kDAAU;MACR,UAAU,EAAE,QAAQ;MACpB,SAAS,EA9HI,IAAI;IAkIrB,eAAE;MACA,SAAS,EA/HM,QAAQ;IAkIzB,iBAAI;MACF,MAAM,EAjIY,QAAQ;MAkI1B,KAAK,EAnIY,QAAQ;EAyJzB,mBAAM;IAAE,KAAK,EA3JS,OAAoB;EA6J1C,eAAE;IAAE,KAAK,EA7Ja,OAAoB;EAgK5C,mBAAU;IAER,UAAU,EA9JQ,OAAc;IAgKhC,yBAAM;MAAE,KAAK,EApKS,OAAoB;IAsK1C,qBAAE;MAAE,KAAK,EAtKa,OAAoB;EAyKxC,oBAAW;IAEb,UAAU,EAvKQ,OAAc;IAyKhC,0BAAM;MAAE,KAAK,EA7KS,OAAoB;IA+K1C,sBAAE;MAAE,KAAK,EA/Ka,OAAoB;EAmL5C,wBAAe;IACb,MAAM,EA3Ke,WAAsB;IA4K3C,OAAO,EA7Ke,GAAE;IA8KxB,cAAc,EAAE,IAAI;IACpB,4BAAG;MACD,OAAO,EAhLa,GAAE;MAiLtB,MAAM,EAhLa,WAAsB;EAuN7C,sBAAM;IAAE,KAAK,EAAE,GAAG;EAClB,sEAAyC;IAAE,KAAK,EAAE,IAAI;EAEpD,6CAAqB;IADvB,sCAAwB;MAEpB,KAAK,EAAE,IAAI;EAIb,6CAAoB;IADtB,qCAAuB;MAEnB,KAAK,EAAE,IAAI;EAKf,wBAAM;IAAE,KAAK,EAAE,QAAQ;EACvB,0EAAyC;IAAE,KAAK,EAAE,IAAI;EAEpD,6CAAqB;IADvB,wCAAwB;MAEpB,KAAK,EAAE,IAAI;EAIb,6CAAoB;IADtB,uCAAuB;MAEnB,KAAK,EAAE,IAAI;EAKf,uBAAM;IAAE,KAAK,EAAE,GAAG;EAClB,wEAAyC;IAAE,KAAK,EAAE,IAAI;EAEpD,6CAAqB;IADvB,uCAAwB;MAEpB,KAAK,EAAE,IAAI;EAIb,6CAAoB;IADtB,sCAAuB;MAEnB,KAAK,EAAE,IAAI;EAKf,uBAAM;IAAE,KAAK,EAAE,GAAG;EAClB,wEAAyC;IAAE,KAAK,EAAE,IAAI;EAEpD,6CAAqB;IADvB,uCAAwB;MAEpB,KAAK,EAAE,IAAI;EAIb,6CAAoB;IADtB,sCAAuB;MAEnB,KAAK,EAAE,IAAI;EAKf,sBAAM;IAAE,KAAK,EAAE,SAAS;EACxB,sEAAyC;IAAE,KAAK,EAAE,IAAI;EAEpD,6CAAqB;IADvB,sCAAwB;MAEpB,KAAK,EAAE,IAAI;EAIb,6CAAoB;IADtB,qCAAuB;MAEnB,KAAK,EAAE,IAAI;EAKf,wBAAM;IAAE,KAAK,EAAE,SAAS;EACxB,0EAAyC;IAAE,KAAK,EAAE,IAAI;EAEpD,6CAAqB;IADvB,wCAAwB;MAEhB,KAAK,EAAE,IAAI;EAIjB,6CAAoB;IADtB,uCAAuB;MAElB,KAAK,EAAE,IAAI;EAKhB,wBAAM;IAAE,KAAK,EAAE,KAAK;EACpB,0EAAyC;IAAE,KAAK,EAAE,IAAI;EAEpD,6CAAqB;IADvB,wCAAwB;MAEhB,KAAK,EAAE,IAAI;EAIjB,6CAAoB;IADtB,uCAAuB;MAElB,KAAK,EAAE,IAAI;;AAuBd,sBAAM;EAAE,KAAK,EAAE,GAAG;AAClB,sEAAyC;EAAE,KAAK,EAAE,IAAI;AAEpD,6CAAqB;EADvB,sCAAwB;IAEpB,KAAK,EAAE,IAAI;AAIb,6CAAoB;EADtB,qCAAuB;IAEnB,KAAK,EAAE,IAAI;AAKf,wBAAM;EAAE,KAAK,EAAE,QAAQ;AACvB,0EAAyC;EAAE,KAAK,EAAE,IAAI;AAEpD,6CAAqB;EADvB,wCAAwB;IAEpB,KAAK,EAAE,IAAI;AAIb,6CAAoB;EADtB,uCAAuB;IAEnB,KAAK,EAAE,IAAI;AAKf,uBAAM;EAAE,KAAK,EAAE,GAAG;AAClB,wEAAyC;EAAE,KAAK,EAAE,IAAI;AAEpD,6CAAqB;EADvB,uCAAwB;IAEpB,KAAK,EAAE,IAAI;AAIb,6CAAoB;EADtB,sCAAuB;IAEnB,KAAK,EAAE,IAAI;AAKf,uBAAM;EAAE,KAAK,EAAE,GAAG;AAClB,wEAAyC;EAAE,KAAK,EAAE,IAAI;AAEpD,6CAAqB;EADvB,uCAAwB;IAEpB,KAAK,EAAE,IAAI;AAIb,6CAAoB;EADtB,sCAAuB;IAEnB,KAAK,EAAE,IAAI;AAKf,sBAAM;EAAE,KAAK,EAAE,SAAS;AACxB,sEAAyC;EAAE,KAAK,EAAE,IAAI;AAEpD,6CAAqB;EADvB,sCAAwB;IAEpB,KAAK,EAAE,IAAI;AAIb,6CAAoB;EADtB,qCAAuB;IAEnB,KAAK,EAAE,IAAI;AAKf,wBAAM;EAAE,KAAK,EAAE,SAAS;AACxB,0EAAyC;EAAE,KAAK,EAAE,IAAI;AAEpD,6CAAqB;EADvB,wCAAwB;IAEhB,KAAK,EAAE,IAAI;AAIjB,6CAAoB;EADtB,uCAAuB;IAElB,KAAK,EAAE,IAAI;AAKhB,wBAAM;EAAE,KAAK,EAAE,KAAK;AACpB,0EAAyC;EAAE,KAAK,EAAE,IAAI;AAEpD,6CAAqB;EADvB,wCAAwB;IAEhB,KAAK,EAAE,IAAI;AAIjB,6CAAoB;EADtB,uCAAuB;IAElB,KAAK,EAAE,IAAI;;ACjZlB,YAAa;EAnBf,UAAU,EAAE,IAAI;EAChB,UAAU,EAvBa,CAAC;EAwBxB,aAAa,EAtBa,SAAY;EAuBtC,WAAwB,EAtBS,SAAa;EAuB9C,YAA6B,EAzBD,CAAC;EA0B7B,QAAQ,EAlBa,MAAM;EAmB3B,OAAO,EAtBa,CAAC;EAwBrB,iBAAK;IACH,OAAO,EAnBW,KAAK;IAoBvB,KAAK,EfySS,IAAI;IexSlB,UAAU,EAAE,IAAI;IAChB,WAAwB,EA9BY,QAAY;IA+BhD,qBAAI;MAAE,OAAO,EApBc,KAAK;;;ACoBhC,aAAc;EAAE,OAAO,EAAE,IAAI;;;AAG7B,kBAAmB;EACjB,UAAU,EAvCC,OAAI;EAwCf,KAAK,EAhCc,OAAM;EAiCzB,OAAO,EAAE,IAAI;EACb,WAAW,EAAE,OAAO;EACpB,WAAW,EApBU,MAAmB;EAqBxC,QAAQ,EAAE,QAAQ;EAClB,GAAG,EAAE,CAAC;EACN,KAAK,EAAE,GAAG;EACV,OAAO,EAAE,GAAG;EACZ,IAAiB,EAAE,IAAI;;AAGzB,0BAA2B;EACzB,WAAwB,EAAE,MAAM;EAChC,SAAS,EAAE,KAAK;EAChB,IAAiB,EAAE,GAAG;;AAGxB,wBAAyB;EACvB,OAAO,EAxDS,uBAAkB;EAyDlC,KAAK,EAAE,IAAI;EAEX,gCAAQ;IAAE,aAAa,EAAE,YAAY;EAErC,0CAAkB;IAAE,YAAY,EAAE,IAAI;;;AAKtC,+BAAa;EACX,MAAM,EAAE,kBAA2C;EACnD,OAAO,EAAE,KAAK;EACd,MAAM,EAAE,CAAC;EACT,QAAQ,EAAE,QAAQ;EAClB,KAAK,EAAE,CAAC;EACR,IAAiB,EArEK,IAAI;EAuE1B,mCAAM;IACJ,YAAY,EA7EL,OAAI;IA8EX,gBAAgB,EAAE,sBAAsB;IACxC,gBAAgB,EAAE,KAAK;IACvB,iBAA8B,EAAE,sBAAsB;IACtD,kBAAmC,EAAE,sBAAsB;IAC3D,GAAG,EAAE,KAA0B;EAEjC,sCAAS;IACP,YAAY,EAAE,kBAA0B;IACxC,mBAAmB,EAAE,sBAAsB;IAC3C,mBAAmB,EAAE,KAAK;IAC1B,iBAA8B,EAAE,sBAAsB;IACtD,kBAAmC,EAAE,sBAAsB;IAC3D,MAAM,EAAE,KAA0B;EAGpC,qCAAQ;IAAE,KAAK,EAAE,KAA0B;EAC3C,oCAAO;IAAE,IAAI,EAAE,KAA0B;;;AAK7C;;;;;qBAKsB;EACpB,KAAK,EAjGc,OAAM;EAkGzB,WAAW,EAhGW,IAAiB;EAiGvC,WAAW,EAAE,IAAI;EACjB,MAAM,EAAE,CAAC;;AAEX,oBAAqB;EACnB,SAAS,EAtGS,QAAY;EAuG9B,WAAW,EAAE,GAAG;EAChB,MAAM,ETMI,cAAiE;;ASH7E,6BAA8B;EAC5B,MAAM,EAlHS,iBAAoB;EAmHnC,MAAM,ETtCF,IAAmD;ESuCvD,MAAM,EAtGe,GAAG;EAuGxB,QAAQ,EAAE,QAAQ;EAClB,KAAK,EAzGe,IAAI;EA0GxB,KAAsB,ET1ClB,SAAmD;;AS4CzD,wBAAyB;EACvB,UAAU,EA3GU,OAAM;EA4G1B,OAAO,EAAE,KAAK;EACd,MAAM,EAAE,OAAO;EACf,KAAK,EAAE,CAAC;;AAGV,kBAAmB;EACjB,KAAK,EAAE,kBAAmC;EAC1C,SAAS,EA/GU,IAAI;EAgHvB,WAAW,EA/GU,MAAmB;EAgHxC,WAAW,EAAE,aAAa;EAC1B,QAAQ,EAAE,QAAQ;EAClB,eAAe,EAAE,IAAI;EACrB,GAAG,EAAE,IAAI;EACT,KAAsB,EAAE,IAAI;EAE5B,kDACQ;IAAE,KAAK,EAAE,kBAAiB;;AAGpC,iBAAkB;EAChB,UAAU,EAxHK,kBAAe;EAyH9B,MAAM,EhBkQW,OAAO;EgBjQxB,OAAO,EAAE,IAAI;EACb,MAAM,EAAE,IAAI;EACZ,QAAQ,EAAE,KAAK;EACf,GAAG,EAAE,CAAC;EACN,KAAK,EAAE,IAAI;EACX,OAAO,EAAE,GAAG;EACZ,IAAiB,EAAE,CAAC;;AAGtB,uBAAwB;EACtB,gBAAgB,EAtJG,OAAM;EAuJzB,aAAa,EAAE,GAAG;EAClB,UAAU,EAAE,gBAAe;EAC3B,QAAQ,EAAE,QAAQ;EAClB,OAAO,EAAE,GAAG;;AAGd,qBAAsB;EACpB,UAAU,EAAE,WAAW;EACvB,aAAa,EAAE,GAAG;EAClB,IAAI,EAAE,CAAC;EACP,QAAQ,EAAE,QAAQ;EAClB,GAAG,EAAE,CAAC;EACN,OAAO,EAAE,IAAI;;;AAKf,kBAAiB;EACf,kBAAmB;IAAE,KAAK,EAhLJ,KAAK;IAgL6B,IAAiB,EAAE,OAAO;IAE9E,sCAAS;MACP,YAAY,EAAE,kBAA0B;MACxC,mBAAmB,EAAE,sBAAsB;MAC3C,iBAA8B,EAAE,sBAAsB;MACtD,kBAAmC,EAAE,sBAAsB;MAC3D,MAAM,EAAE,KAA0B;IAEpC,qCAAQ;MACN,YAAY,EAAE,kBAA0B;MACxC,kBAAkB,EAAE,sBAAsB;MAAE,mBAAmB,EAAE,sBAAsB;MACvF,gBAAgB,EAAE,sBAAsB;MACxC,IAAI,EAAE,IAAI;MACV,KAAK,EAAE,KAA0B;MACjC,GAAG,EA3Le,IAAI;IA6LxB,oCAAO;MACL,YAAY,EAAE,kBAA0B;MACxC,mBAAmB,EAAE,sBAAsB;MAC3C,iBAAiB,EAAE,sBAAsB;MACzC,gBAAgB,EAAE,sBAAsB;MACxC,IAAI,EAAE,KAA0B;MAChC,KAAK,EAAE,IAAI;MACX,GAAG,EApMe,IAAI;ACoC9B;GACI;EAlBN,gBAAgB,EAdH,OAA2D;EAexE,YAAY,EAAE,OAAwD;EAG5C,KAAK,EA1BV,OAAI;EA6BzB,YAAY,EApBW,KAAK;EAqB5B,YAAY,EApBW,GAAG;EAqB1B,WAAW,EAjCI,yCAAU;EAkCzB,SAAS,EAjCW,OAAO;EAkC3B,MAAM,EAAE,CAAC;EACT,OAAO,EA7BW,kBAAe;EjBe/B,aAAa,EiBRE,GAAc;;ACgE7B,MAAO;EA/DT,OAAO,EAAE,YAAY;EACrB,WAAW,EARO,sDAAiB;EASnC,WAAW,EAZO,MAAmB;EAarC,WAAW,EAAE,CAAC;EACd,aAAa,EAAE,IAAI;EACnB,QAAQ,EAAE,QAAQ;EAClB,UAAU,EAAE,MAAM;EAClB,eAAe,EAAE,IAAI;EACrB,WAAW,EAAE,MAAM;EASJ,OAAO,EAhCR,sBAAe;EAiCZ,SAAS,EA7BR,SAAY;EA6C5B,gBAAgB,EJpCI,OAAc;EIuCR,KAAK,EA7CZ,OAAM;EA4EvB,aAAS;IlB7DX,aAAa,EkBrBF,GAAc;EAmFvB,YAAQ;IlB9DV,aAAa,EkB8DmC,MAAM;EAEpD,YAAY;IArCd,gBAAgB,ELQW,OAAY;IKLb,KAAK,EA7CZ,OAAM;EAgFvB,cAAY;IAtCd,gBAAgB,EZXM,OAAc;IYcV,KAAK,EA7CZ,OAAM;EAiFvB,cAAY;IAvCd,gBAAgB,EZjBM,OAAc;IYoBV,KAAK,EA7CZ,OAAM;EAkFvB,gBAAY;IAxCd,gBAAgB,EZpBQ,OAAgB;IYwBhC,KAAK,EA/CE,OAAI;EAoFjB,WAAY;IAzCd,gBAAgB,EZRG,OAAW;IYYtB,KAAK,EA/CE,OAAI;;ACDnB,4DAAqE;EACnE,UAAU,EAPF,OAAM;EAQd,SAAS,EAAE,IAAI;EACf,OAAO,EARM,IAAI;EASjB,OAAO,EAAE,EAAE;EAEX,8EAAS;IACP,aAAa,EAAE,CAAC;IAChB,oFAAG;MAAE,aAAa,EAAE,CAAC;IACrB,kFAAE;MACA,WAAW,EAAE,KAAK;;ACyBxB,yBASC;EARC,IAAK;IACH,iBAAiB,EAAE,YAAY;IAC/B,SAAS,EAAE,YAAY;EAEzB,EAAG;IACC,iBAAiB,EAAE,cAAc;IACjC,SAAS,EAAE,cAAc;AAK/B,iBAaC;EAZC,IAAK;IACD,iBAAiB,EAAE,YAAY;IAC/B,cAAc,EAAE,YAAY;IAC5B,aAAa,EAAE,YAAY;IAC3B,SAAS,EAAE,YAAY;EAE3B,EAAG;IACC,iBAAiB,EAAE,cAAc;IACjC,cAAc,EAAE,cAAc;IAC9B,aAAa,EAAE,cAAc;IAC7B,SAAS,EAAE,cAAc;;AAK/B,kBAAmB;EACjB,QAAQ,EAAE,QAAQ;EAElB,qBAAG;IAED,eAAe,EAAE,IAAI;IACrB,MAAM,EAAE,CAAC;IAGT;2CACkB;MAAE,OAAO,EAAE,IAAI;IAGjC,oCAAe;MAAE,OAAO,EAAE,KAAK;EAGjC,mCAAiB;IAAE,gBAAgB,EAAE,WAAW;IAG9C,sCAAG;MAAE,OAAO,EAAE,KAAK;MAEjB,qDAAe;QAAE,OAAO,EAAE,KAAK;IAEjC,qDAAkB;MAChB,OAAO,EAAE,YAAY;EAKzB,6BAAqB;IpB3EvB,aAAa,EoB4EO,MAAM;IACtB,kBAAkB,EAAE,IAAI;IACxB,yBAAyB,EAAE,QAAQ;IACnC,cAAc,EAAE,MAAM;IACtB,yBAAyB,EAAE,MAAM;IACjC,YAAY,EAAE,eAAgB;IAC9B,MAAM,EAAE,SAAS;IACjB,OAAO,EAAE,KAAK;IACd,MAAM,EAAE,IAAI;IACZ,IAAI,EAAE,GAAG;IACT,WAAW,EAAE,KAAK;IAClB,UAAU,EAAE,KAAK;IACjB,QAAQ,EAAE,QAAQ;IAClB,GAAG,EAAE,GAAG;IACR,KAAK,EAAE,IAAI;;AAKf,gBAAiB;EACf,UAAU,EAvHK,IAAI;EAwHnB,QAAQ,EAAE,MAAM;EAChB,QAAQ,EAAE,QAAQ;EAClB,KAAK,EAAE,IAAI;EAEX,wCAAwB;IACtB,UAAU,EAAE,IAAI;IAChB,MAAM,EAAE,CAAC;IACT,OAAO,EAAE,CAAC;IACV,QAAQ,EAAE,QAAQ;IAGlB,iBAAiB,EAAE,aAAa;IAChC,cAAc,EAAE,aAAa;IAC7B,aAAa,EAAE,aAAa;IAC5B,YAAY,EAAE,aAAa;IAC3B,SAAS,EAAE,aAAa;IAExB,4CAAI;MAAE,OAAO,EAAE,KAAK;MAAE,SAAS,EAAE,IAAI;IAErC,4CAAI;MACF,QAAQ,EAAE,QAAQ;MAClB,GAAG,EAAE,CAAC;MACN,KAAK,EAAE,IAAI;MAKT,WAAW,EAAE,IAAI;MAGnB,wDAAc;QAKV,WAAW,EAAE,CAAC;MAIlB,2DAAe;QAEX,MAAM,EAAE,CAAC;QACT,QAAQ,EAAE,QAAQ;QAKpB,gBAAgB,EAtKT,qBAAkB;QAuKzB,KAAK,EA/Ie,OAAM;QAgJ1B,SAAS,EAtKK,QAAY;QAuK1B,OAAO,EArKK,iBAAe;QAsK3B,KAAK,EAAE,IAAI;EAKjB,oCAAoB;IAClB,IAAiB,EAAE,IAAI;IACvB,UAAU,EA1JM,WAAa;IA2J7B,KAAK,EA1JmB,OAAM;IA2J9B,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,QAAQ;IAElB,GAAG,EAAE,IAAI;IACT,OAAO,EAAE,EAAE;IAFX,yCAAK;MAAE,WAAW,EAAE,GAAG;MAAE,OAAO,EA5JX,SAAW;EAiKlC,6BAAa;IAEX,QAAQ,EAAE,QAAQ;IAClB,GAAG,EAAE,IAAI;IACT,KAAsB,EAAE,IAAI;IAC5B,MAAM,EAAE,GAAG;IACX,KAAK,EAAE,KAAK;IACZ,OAAO,EAAE,EAAE;IAGX,6CAAgB;MAEZ,MAAM,EAAE,GAAG;MACX,gBAAgB,EAzLX,wBAAqB;MA0L1B,OAAO,EAAE,KAAK;MACd,KAAK,EAAE,CAAC;MACR,QAAQ,EAAE,QAAQ;MAClB,KAAK,EAAE,IAAI;MACX,GAAG,EAAE,GAAG;IAMZ,oCAAS;MACP,MAAM,EAAE,iBAAgB;MACxB,aAAa,EAAE,IAAI;MACnB,UAAU,EAAE,IAAI;MAChB,OAAO,EAAE,IAAI;MACb,MAAM,EAAE,IAAI;MACZ,QAAQ,EAAE,QAAQ;MAClB,GAAG,EAAE,CAAC;MACN,KAAK,EAAE,IAAI;MACX,KAAsB,EAAE,CAAC;IAKzB,2CAAS;MACP,GAAG,EAAE,CAAC;MACN,KAAK,EAAE,IAAI;MACX,MAAM,EAAE,IAAI;MACZ,MAAM,EAAE,SAAS;MACjB,iBAAiB,EAAE,KAAK;MACxB,YAAY,EAAE,WAAW;MACzB,iBAAiB,EA/MG,OAAM;MAgN1B,KAAsB,EAAE,IAAI;MAE5B,gDAAO;QACL,iBAAiB,EFrOZ,OAAI;EE6OjB,0CAA4B;IAAE,OAAO,EAAE,KAAK;EAG5C;8BACY;IACV,gBAAgB,EAhPT,WAAW;IAiPlB,KAAK,EAAE,KAAK;IACZ,MAAM,EAAE,IAAI;IACZ,WAAW,EAAE,IAAI;IACjB,UAAU,EAAE,KAAK;IACjB,QAAQ,EAAE,QAAQ;IAClB,WAAW,EAAE,kBAAkB;IAC/B,GAAG,EAAE,GAAG;IACR,KAAK,EAAE,IAAI;IACX,OAAO,EAAE,EAAE;IAEX;sCAAQ;MACN,gBAAgB,EA3PL,kBAAe;IA8P5B;uCAAS;MACP,MAAM,EAAE,UAAU;MAClB,OAAO,EAAE,KAAK;MACd,MAAM,EAAE,CAAC;MACT,UAAU,EAAE,KAAK;MACjB,QAAQ,EAAE,QAAQ;MAClB,GAAG,EAAE,GAAG;MACR,KAAK,EAAE,CAAC;EAGZ,4BAAY;IAAE,IAAiB,EAAE,CAAC;IAChC,mCAAS;MACP,kBAAmC,EAAE,KAAK;MAC1C,YAAY,EAAE,WAAW;MACzB,kBAAmC,EA7Pb,OAAM;IA+P9B,yCAAe;MACb,kBAAmC,EAhQb,OAAM;EAmQhC,4BAAY;IAAE,KAAsB,EAAE,CAAC;IACrC,mCAAS;MACP,YAAY,EAAE,WAAW;MACzB,iBAA8B,EAAE,KAAK;MACrC,iBAA8B,EAvQR,OAAM;MAwQ5B,IAAiB,EAAE,GAAG;MACtB,WAAwB,EAAE,IAAI;IAEhC,yCAAe;MACb,iBAA8B,EA5QR,OAAM;;AAiRlC,wBAAyB;EAAE,UAAU,EAAE,MAAM;;AAC7C,cAAe;EACb,OAAO,EAAE,KAAK;EACd,KAAK,EAAE,IAAI;EACX,MAAM,EAAE,gBAAgB;EACxB,QAAQ,EAAE,MAAM;EAChB,QAAQ,EAAE,QAAQ;EAClB,UAAU,EAAE,MAAM;EAClB,GAAG,EAAE,IAAI;EAET,iBAAG;IACD,UAAU,EAlSO,OAAK;IAmStB,MAAM,EAAE,OAAO;IACf,OAAO,EAAE,YAAY;IAErB,KAAK,EAAE,IAAI;IACX,MAAM,EArSQ,SAAW;IAsSzB,YAA6B,EAAE,GAAG;IAClC,KAAK,EAvSS,SAAW;IpBE7B,aAAa,EoBuSO,MAAM;IAEtB,wBAAS;MACP,UAAU,EA7SY,OAAS;IAgTjC,4BAAa;MAAE,YAA6B,EAAE,CAAC;;AAM/C;mCACY;EAAE,OAAO,EAAE,IAAI;AAG7B,qBAAe;EAAE,OAAO,EAAE,IAAI;;AAIhC,6CAAqB;EAIf;qCACY;IAAE,OAAO,EAAE,OAAO;EAGhC,qBAAe;IAAE,OAAO,EAAE,KAAK;AAKnC,wCAAsB;EAElB,6CAAwB;IAAC,MAAM,EAAE,eAAe;EAChD,iDAA4B;IAC1B,MAAM,EAAC,aAAa;IACpB,OAAO,EAAE,YAAY;IACrB,QAAQ,EAAE,QAAQ;EAGpB,yCAAoB;IAClB,OAAO,EAAE,IAAI;;EAKd,YAAY;IAAC,OAAO,EAAE,IAAI;;EAG1B,wBAAuB;IAAC,OAAO,EAAE,IAAI;;EAGrC,cAAc;IAAC,OAAO,EAAE,IAAI;AC1OjC,aAAc;EAjDd,OAAO,EAAE,KAAK;EACd,WAAwB,EAxFR,UAAY;EAyF5B,UAAU,EA1FM,MAAY;EA4F5B,gBAAG;IACD,KAAK,EAvFgB,OAAI;IAwFzB,SAAS,EAvFW,QAAY;IAwFhC,MAAM,EA1FW,MAAY;IA2F7B,WAAwB,EAxFP,SAAW;IA0F5B,2CAAU;MrB5EZ,aAAa,EA2TD,GAAG;MAhNjB,UAAU,EAPS,+BAAyB;MqBrBtC,UAAU,EAAE,IAAI;MAChB,KAAK,EArF4B,OAAS;MAsF1C,OAAO,EAAE,KAAK;MACd,SAAS,EAAE,GAAG;MACd,WAAW,EAAE,MAAM;MACnB,WAAW,EAAE,OAAO;MACpB,OAAO,EAhGO,4BAAgB;IAmGhC;;iCAIA;MAAE,UAAU,EArGU,OAAqC;IAyB/D,mEAAU;MACR,MAAM,EAvB2B,OAAO;MAwBxC,KAAK,EAvBgC,OAAS;MAwB9C,cAAc,EAAE,IAAI;IAEtB,gKAKA;MAAE,UAAU,EA9B0B,WAAW;IAsC/C,2DAAU;MACR,UAAU,EAhCoB,OAAc;MAiC5C,KAAK,EApC0B,OAAM;MAqCrC,MAAM,EAnCqB,OAAO;MAoClC,WAAW,EArCqB,IAAiB;MAuCjD,gJACQ;QAAE,UAAU,EAtCU,OAAc;EAmGhD,gBAAG;IAKC,OAAO,EAAE,KAAK;IACd,KAAK,EA9HW,IAAc;;;AA0IhC,oBAAqB;EA9GT,UAAU,EAAE,MAAM;EA4FhC,qCAAG;IAEC,OAAO,EAAE,YAAY;IACrB,KAAK,EAAE,IAAI;;;ACtDb,MAAO;EAzCL,YAAY,EA/BG,KAAK;EAgCpB,YAAY,EA/BE,GAAG;EAgCjB,YAAY,EA5BG,OAAwC;EAkCzD,aAAa,EA/BK,OAAY;EAgC9B,OAAO,EA/BK,OAAY;EAiCxB,UAAU,EA3CH,OAAoC;EA4ChB,KAAK,EA/BjB,OAAI;EAmCnB,qBAAe;IAAE,UAAU,EAAE,CAAC;EAC9B,oBAAc;IAAE,aAAa,EAAE,CAAC;EAK5B,gGAAkC;IAAE,KAAK,EAzC9B,OAAI;EAgDjB,gEAAuB;IACrB,WAAW,EAAE,CAAC;IAAE,aAAa,EAAE,QAAgB;IAC/C,4HAAY;MAAE,WAAW,EAAE,GAAG;EAYhC,cAAU;IA3CV,YAAY,EA/BG,KAAK;IAgCpB,YAAY,EA/BE,GAAG;IAgCjB,YAAY,EA5BG,OAAwC;IAkCzD,aAAa,EA/BK,OAAY;IAgC9B,OAAO,EA/BK,OAAY;IAiCxB,UAAU,EAxCK,OAA4C;IAyChC,KAAK,EA/BjB,OAAI;IAmCnB,6BAAe;MAAE,UAAU,EAAE,CAAC;IAC9B,4BAAc;MAAE,aAAa,EAAE,CAAC;IAK5B,wKAAkC;MAAE,KAAK,EAzC9B,OAAI;IAgDjB,gHAAuB;MACrB,WAAW,EAAE,CAAC;MAAE,aAAa,EAAE,QAAgB;MAC/C,4KAAY;QAAE,WAAW,EAAE,GAAG;IAc9B,6BAAe;MACb,KAAK,EA7DY,OAAc;MA+D/B,wEACQ;QACN,KAAK,EAhEgB,OAAwD;EAqEnF,aAAS;ItBjEX,aAAa,EA2TD,GAAG;;;AuBnNf,cAAe;EA3EjB,MAAM,EAnDa,iBAAqB;EAoDxC,WAAwB,EAAE,CAAC;EAC3B,aAAa,EAlDa,OAAY;EAoDtC,gBAAI;IACF,UAAU,EAAE,IAAI;IAChB,WAAW,EAAE,CAAC;EAwEZ,qBAAO;IAjEX,gBAAgB,EA7BC,OAAI;IA8BrB,KAAK,EAxDa,OAAM;IAyDxB,WAAW,EA7Ca,sDAAiB;IA8CzC,SAAS,EAxDQ,IAAY;IAyD7B,WAAW,EA7BO,MAAmB;IA8BrC,OAAO,EA9Da,iBAAe;IA+DnC,UAAU,EA9DQ,MAAM;EA0HpB,qBAAO;IArDX,gBAAgB,EA9DD,OAAM;IA+DrB,KAAK,EA3CY,OAAI;IA4CrB,WAAW,EA1Da,sDAAiB;IA2DzC,SAAS,EA5DQ,IAAY;IA6D7B,WAAW,EA1CO,MAAmB;IA2CrC,OAAO,EAlEa,iBAAe;IAmEnC,UAAU,EAlEQ,MAAM;EAkHpB,2BAAa;IAzCjB,gBAAgB,EA/CH,OAAM;IAgDnB,aAAa,EA3DY,kBAAsB;IA4D/C,KAAK,EAlEY,OAAQ;IAmEzB,SAAS,EAhEY,OAAY;IAiEjC,WAAW,EAvDO,MAAmB;IAwDrC,WAAW,EAhEY,GAAG;IAiE1B,OAAO,EArEY,SAAY;IAsE/B,UAAU,EArEO,MAAM;EAwGnB,2BAAa;IA5BjB,gBAAgB,EA7DH,OAAM;IA8DnB,aAAa,EAjEY,kBAAsB;IAkE/C,KAAK,EAvEY,OAAI;IAwErB,SAAS,EArEY,QAAY;IAsEjC,WAAW,EArEO,MAAmB;IAsErC,OAAO,EAzEY,SAAY;IA0E/B,UAAU,EAzEO,MAAM;EAgGnB,0BAAY;IAhBhB,gBAAgB,EA1EH,OAAM;IA2EnB,OAAO,EAzEW,iBAAiB;IA0EnC,UAAU,EA3EM,MAAM;;;ACEpB,SAAU;EAvBZ,gBAAgB,EAtBG,OAAM;EAuBzB,MAAM,EAAE,eAA+E;EACvF,MAAM,EAzBc,SAAY;EA0BhC,aAAa,EAfc,QAAY;EAgBvC,OAAO,EAjBU,QAAW;EAwCxB,gBAAO;IAhBX,UAAU,EApBW,OAAc;IAqBnC,OAAO,EAAE,KAAK;IACd,MAAM,EAAE,IAAI;IACZ,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,EAAE;IAeH,0BAAY;MAnBlB,UAAU,EAnBqB,OAAgB;MAoB/C,OAAO,EAAE,KAAK;MACd,MAAM,EAAE,IAAI;MACZ,KAAK,EAAE,IAAI;MACX,KAAK,EAAE,EAAE;IAgBH,wBAAU;MApBhB,UAAU,EAlBmB,OAAc;MAmB3C,OAAO,EAAE,KAAK;MACd,MAAM,EAAE,IAAI;MACZ,KAAK,EAAE,IAAI;MACX,KAAK,EAAE,EAAE;IAiBH,sBAAQ;MArBd,UAAU,EAjBiB,OAAY;MAkBvC,OAAO,EAAE,KAAK;MACd,MAAM,EAAE,IAAI;MACZ,KAAK,EAAE,IAAI;MACX,KAAK,EAAE,EAAE;EAmBL,0BAAmB;IAvBvB,UAAU,EAnBqB,OAAgB;IAoB/C,OAAO,EAAE,KAAK;IACd,MAAM,EAAE,IAAI;IACZ,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,EAAE;EAoBL,wBAAiB;IAxBrB,UAAU,EAlBmB,OAAc;IAmB3C,OAAO,EAAE,KAAK;IACd,MAAM,EAAE,IAAI;IACZ,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,EAAE;EAqBL,sBAAe;IAzBnB,UAAU,EAjBiB,OAAY;IAkBvC,OAAO,EAAE,KAAK;IACd,MAAM,EAAE,IAAI;IACZ,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,EAAE;EAuBL,gBAAS;IxBvCX,aAAa,EwBfY,GAAc;IAuDnC,uBAAO;MxBxCX,aAAa,EAAE,GAAO;EwB2CpB,eAAQ;IxB3CV,aAAa,EwB2Ce,MAAM;IAC9B,sBAAO;MxB5CX,aAAa,EwB4CgB,KAAK;;ACoDlC,aAAc;EA5EhB,MAAM,EAAE,iBAA4F;EACpG,MAAM,ElB4EQ,SAAiE;EkB3E/E,QAAQ,EAAE,QAAQ;EAClB,gBAAgB,EAAE,IAAI;EACtB,YAAY,EAAE,IAAI;EAMhB,OAAO,EAAE,KAAK;EACd,MAAM,EA9CgB,IAAY;EA+ClC,KAAK,EAhDgB,IAAI;EAwDT,UAAU,EAhDF,OAAM;EA2G5B,4BAAiB;IA/ErB,MAAM,EAAE,iBAA4F;IACpG,MAAM,ElB4EQ,SAAiE;IkB3E/E,QAAQ,EAAE,QAAQ;IAClB,gBAAgB,EAAE,IAAI;IACtB,YAAY,EAAE,IAAI;IAEhB,OAAO,EAAE,YAAY;IACrB,MAAM,EA9ByB,OAAa;IA+B5C,KAAK,EAhCyB,IAAY;IAyGtC,iDAAqB;MACnB,MAAM,EAAE,QAAiE;MACzE,WAAwB,EAAE,OAAiC;MAC3D,UAAU,EAAE,CAAC;MACb,QAAQ,EAAE,QAAQ;IAEpB,yDAA6B;MAC3B,yBAAyB,EAAE,OAAO;MAClC,0BAA0B,EAAE,OAAO;MACnC,sBAAsB,EAAE,OAAO;MAC/B,MAAM,EAAE,CAAC;MACT,MAAM,EAAE,IAAI;MACZ,KAAK,EAAE,QAAqF;EAGhG,oBAAS;IA5EK,UAAU,EAhDF,OAAM;IzBQ9B,aAAa,EyBVK,GAAc;IAgI5B,yCAAqB;MA1CT,UAAU,EAzEC,OAAc;MzBHzC,aAAa,EyBVK,GAAc;MA6FlC,+CAAQ;QACN,UAAU,EA3EuB,OAA6C;EA+G5E,mBAAQ;IAhFM,UAAU,EAhDF,OAAM;IzBQ9B,aAAa,EyBTI,MAAe;IAmI5B,wCAAqB;MA9CT,UAAU,EAzEC,OAAc;MzBHzC,aAAa,EyBTI,MAAe;MA4FlC,8CAAQ;QACN,UAAU,EA3EuB,OAA6C;EAmH5E,+CAAwB;IApFV,UAAU,EAhDF,OAAM;IAoD9B,MAAM,EA/BqB,WAAsB;IAgCjD,OAAO,EAjCqB,GAAE;IAkH1B,yFAAqB;MAlDT,UAAU,EAzEC,OAAc;MA6EzC,MAAM,EZ/Ec,OAAqB;MYgFzC,OAAO,EArEqB,GAAE;MAuEhC,qGAAQ;QACN,UAAU,EA3EuB,OAA6C;;AAwH9E,4BAA6B;EAC3B,UAAU,EAzIuB,OAA8C;EA0I/E,yBAAyB,EAAE,OAAO;EAClC,sBAAsB,EAAE,OAAO;EAC/B,OAAO,EAAE,YAAY;EACrB,MAAM,EAAE,QAAqF;EAC7F,QAAQ,EAAE,QAAQ;;AAEpB,oBAAqB;EAhFvB,MAAM,EAAE,cAAqG;EAC7G,MAAM,EAhDqB,OAAO;EAiDlC,OAAO,EAAE,YAAY;EACrB,MAAM,EA3DqB,QAAY;EA4DvC,QAAQ,EAAE,QAAQ;EAClB,GAAG,EA5D8B,UAAY;EA6D7C,KAAK,EA/DqB,IAAY;EAgEtC,OAAO,EAAE,CAAC;EAGV,gBAAgB,EAAE,YAAY;EAC9B,YAAY,EAAE,YAAY;EAQR,UAAU,EAzEC,OAAc;EAgF3C,0BAAQ;IACN,UAAU,EA3EuB,OAA6C;;ACgI9E,gBAAiB;EApHnB,UAAU,EAvCY,OAAM;EAwC5B,UAAU,EAzCQ,mBAAiB;EA0CnC,MAAM,EAAE,CAAC;EACT,OAAO,EAAE,IAAI;EACb,IAAI,EAAE,CAAC;EACP,QAAQ,EAAE,KAAK;EACf,KAAK,EAAE,CAAC;EACR,GAAG,EAAE,CAAC;EACN,OAAO,EAAE,IAAqD;EAC9D,IAAiB,EAAE,CAAC;;AA6GlB,aAAwB;EAnGxB,aAAa,EAxCD,GAAc;EAyC1B,OAAO,EAAE,IAAI;EACb,QAAQ,EAAE,QAAQ;EAClB,GAAG,EAAC,CAAC;EACL,UAAU,EAAE,MAAM;EAClB,KAAK,EAAE,IAAI;EACX,OAAO,EAlCI,IAAI;EAmCf,IAAiB,EAAE,CAAC;EAgDZ,gBAAgB,EA9GV,OAAM;EA+GE,OAAO,EA3GV,QAAY;EA6GnB,MAAM,EAAE,iBAAyC;EAI7D,UAAU,EAhHM,2BAAyB;EA2DzC,wCAAsB;IA0FtB,aAAwB;MAzFtB,UAAU,EAAC,KAAK;EAIlB,6CAAkB;IAAE,SAAS,EAAE,CAAC;EAGhC,4BAAe;IAAE,UAAU,EAAE,CAAC;EAE9B,2BAAc;IAAE,aAAa,EAAE,CAAC;EAIhC,6CAAqB;IA4ErB,aAAwB;MA3EtB,IAAI,EAAE,CAAC;MACP,MAAM,EAAE,MAAM;MACd,SAAS,EA9EI,OAAU;MA+EvB,KAAK,EAAE,CAAC;MACR,KAAK,EAjFY,GAAG;EA8HtB,6CAAqB;IA0BrB,aAAwB;MAzBtB,GAAG,EAhIa,OAAa;EAoK7B,oBAAS;IA7CR,UAAU,EAAE,IAAI;I1BzGnB,aAAa,E0BAD,GAAc;EAuJxB,mBAAS;IA9CR,UAAU,EAAE,IAAI;I1BzGnB,aAAa,E0BCF,MAAe;EAuJxB,sBAAW;IAxDS,OAAO,EAwDuB,CAAC;IA/ClD,UAAU,EAAE,IAAI;EA1CnB,6CAAqB;IA0FnB,kBAAQ;MAzFR,IAAI,EAAE,CAAC;MACP,MAAM,EAAE,MAAM;MACd,SAAS,EA9EI,OAAU;MA+EvB,KAAK,EAAE,CAAC;MACR,KAAK,EAqFuC,GAAG;EA1FjD,6CAAqB;IA2FnB,mBAAQ;MA1FR,IAAI,EAAE,CAAC;MACP,MAAM,EAAE,MAAM;MACd,SAAS,EA9EI,OAAU;MA+EvB,KAAK,EAAE,CAAC;MACR,KAAK,EAsFuC,GAAG;EA3FjD,6CAAqB;IA4FnB,oBAAU;MA3FV,IAAI,EAAE,CAAC;MACP,MAAM,EAAE,MAAM;MACd,SAAS,EA9EI,OAAU;MA+EvB,KAAK,EAAE,CAAC;MACR,KAAK,EAuFyC,GAAG;EA5FnD,6CAAqB;IA6FnB,mBAAQ;MA5FR,IAAI,EAAE,CAAC;MACP,MAAM,EAAE,MAAM;MACd,SAAS,EA9EI,OAAU;MA+EvB,KAAK,EAAE,CAAC;MACR,KAAK,EAwFuC,GAAG;EA7FjD,6CAAqB;IA8FnB,oBAAS;MA7FT,IAAI,EAAE,CAAC;MACP,MAAM,EAAE,MAAM;MACd,SAAS,EA9EI,OAAU;MA+EvB,KAAK,EAAE,CAAC;MACR,KAAK,EAyFwC,GAAG;EAChD,kBAAO;IAEL,MAAM,EAAE,KAAK;IACb,MAAM,EAAC,IAAI;IACX,IAAI,EAAC,CAAC;IACN,WAAW,EAAE,YAAY;IACzB,SAAS,EAAE,eAAe;IAC1B,UAAU,EAAC,KAAK;IAChB,GAAG,EAAC,CAAC;IAvGT,6CAAqB;MA+FnB,kBAAO;QA9FP,IAAI,EAAE,CAAC;QACP,MAAM,EAAE,MAAM;QACd,SAAS,EA9EI,OAAU;QA+EvB,KAAK,EAAE,CAAC;QACR,KAAK,EA2F+B,IAAI;EAWxC,oBAAS;IACP,OAAO,EAAE,IAAiB;EAG5B,iCAA8B;IAnDlC,KAAK,EA/Hc,OAAK;IAgIxB,MAAM,E1BmQe,OAAO;I0BlQ5B,SAAS,EApIc,MAAY;IAqInC,WAAW,EAjIS,IAAiB;IAkIrC,WAAW,EAAE,CAAC;IACd,QAAQ,EAAE,QAAQ;IAClB,GAAG,EAvIc,QAAY;IAwI7B,KAAsB,EAvIJ,QAAY;;ACwF5B,SAAU;EAtDZ,OAAO,EAAE,KAAK;EACd,WAAW,EAjCiB,sDAAqB;EAkCjD,mBAAmB,EAhDI,OAAO;EAiD9B,eAAe,EAlDI,IAAI;EAmDvB,MAAM,EAAE,CAAC;EACT,OAAO,EAvDU,UAAc;EAyD/B,YAAG;IACD,SAAS,EApCgB,QAAmB;IAqC5C,WAAW,EA3Ce,MAAqB;IA4C/C,MAAM,EAvDa,eAAiB;IAyDpC,2BAAe;MACb,KAAK,EA1Cc,OAAoB;MA2CvC,OAAO,EAAE,KAAK;MACd,MAAM,EArDW,CAAC;MAsDlB,OAAO,EArDW,kBAAc;MAsDhC,oEACQ;QACN,UAAU,EA1DO,oBAAmB;QA2DpC,KAAK,EA5De,OAAkD;MA8DxE,kCAAS;QACP,KAAK,EAhEgB,OAAkD;IAoE3E,gDAAsC;MACpC,KAAK,EArEkB,OAAkD;MAsEzE,WAAW,EA7Da,sDAAqB;MA8D7C,WAAW,EAhEa,MAAqB;IAmE/C,oBAAU;MACR,UAAU,EAAE,SAA8C;MAC1D,MAAM,EAAE,CAAC;MACT,UAAU,EAAE,IAAI;MAChB,OAAO,EAAE,CAAC;MACV,gBAAgB,EA3DG,OAAqC;IA8D1D,oBAAU;MACR,KAAK,EAvEc,OAAoB;MAyErC,SAAI,EAxEiB,QAAmB;MAyExC,WAAM,EAxEiB,IAAI;MA0E7B,cAAc,EAzEc,SAAS;;ACuIvC,aAAc;EAnGd,QAAQ,EAAE,QAAQ;EAgElB,aAA8B,EAhGP,SAAmB;EAmC1C,kBAAK;IACH,OAAO,EAAE,KAAK;IACd,MAAM,EAAE,IAAI;IACZ,QAAQ,EAAE,QAAQ;IAClB,KAAsB,EAAE,CAAC;IACzB,GAAG,EAAE,CAAC;IACN,WAAwB,EAAE,SAAS;IAGnC,wBAAQ;MACN,QAAQ,EAAE,QAAQ;MAClB,OAAO,EAAE,EAAE;MACX,KAAK,EAAE,CAAC;MACR,MAAM,EAAE,CAAC;MACT,OAAO,EAAE,KAAK;MACd,YAAY,EAAE,KAAK;MACnB,GAAG,EAAE,GAAG;MACR,IAAiB,EAAE,GAAG;IAGxB,yBAAS;MAAE,gBAAgB,EAzEH,kBAAe;EA+EzC,kBAAK;IACH,iBAA8B,EA/EH,wBAAqB;EAmHlD,kBAAK;IAAE,KAAK,EAjGc,UAAqB;IAkG7C,wBAAQ;MACN,gBAAgB,EAAE,KAAK;MACvB,YAAY,EAnGQ,QAA8B;MAoGlD,WAAwB,EAlGK,SAAY;MAmGzC,GAAG,EAAE,GAAG;EAqBZ,wBAAW;IAAE,YAAY,EAAE,2CAA8C;EA/DzE,4BAAK;IACH,iBAA8B,EA/EH,wBAAqB;EA6IlD,kCAAW;IAAE,YAAY,EAAE,2CAA8C;EA/DzE,wBAAK;IACH,iBAA8B,EA/EH,wBAAqB;EA8ElD,0BAAK;IACH,iBAA8B,EA/EH,wBAAqB;EA0JhD,kBAAO;IArET,aAA8B,EAlFP,OAAoB;IAoF3C,uBAAK;MAAE,KAAK,EAnFc,OAAmB;MAoF3C,6BAAQ;QACN,gBAAgB,EAAE,KAAK;QACvB,YAAY,EArFQ,QAAe;QAsFnC,WAAwB,EApFK,SAAY;QAqFzC,GAAG,EAAE,GAAG;EA+DV,mBAAQ;IAxDV,aAA8B,EAzFP,QAAoB;IA2F3C,wBAAK;MAAE,KAAK,EA1Fc,QAAmB;MA2F3C,8BAAQ;QACN,gBAAgB,EAAE,KAAK;QACvB,YAAY,EA5FQ,SAAe;QA6FnC,WAAwB,EA3FK,SAAY;QA4FzC,GAAG,EAAE,GAAG;EAkDV,mBAAQ;IA7BV,aAA8B,EAvGP,MAAmB;IAyG1C,wBAAK;MAAE,KAAK,EAxGc,SAAmB;MAyG3C,8BAAQ;QACN,gBAAgB,EAAE,KAAK;QACvB,YAAY,EA1GQ,SAA8B;QA2GlD,WAAwB,EAzGK,SAAY;QA0GzC,GAAG,EAAE,GAAG;EAuBV,oBAAS;IAAE,YAAY,EAAE,IAAI;EAhB/B,kCAAW;IAAE,YAAY,EAAE,2CAA8C;EAoBvE,yBAAc;I5B7IhB,kCAAqC,EAiTzB,GAAG;IAhTf,+BAAkC,EAgTtB,GAAG;IA/Sf,0BAA6B,EA+SjB,GAAG;IA9Sf,uBAA0B,EA8Sd,GAAG;E4BnKb,wBAAa;I5B9If,kCAAqC,E4B8IsB,MAAM;I5B7IjE,+BAAkC,E4B6IyB,MAAM;I5B5IjE,0BAA6B,E4B4I8B,MAAM;I5B3IjE,uBAA0B,E4B2IiC,MAAM;EAE7D,gCAAW;IAAE,YAAY,EAAC,IAAI;EAC9B,+BAAU;IAAE,YAAY,EAAC,IAAI;EAC7B,6BAAM;IACJ,OAAO,EAAE,KAAK;IACd,IAAI,EAAE,GAAG;IACT,WAAW,EAAE,UAAU;IACvB,UAAU,EAAE,UAAU;IACtB,QAAQ,EAAE,QAAQ;IAClB,GAAG,EAAE,GAAG;;AC1Ed,QAAS;EA9DX,OAAO,EAAE,KAAK;EACd,MAAM,EA3Cc,mBAAiB;EA4CrC,QAAQ,EAAE,MAAM;EAChB,WAAW,EA5Cc,OAAW;EA6CpC,KAAK,EAAE,IAAI;EAEX,WAAG;IACD,cAAc,EAAE,SAAS;EAG3B;;aAEG;IACD,KAAK,EAjDY,OAAS;IAkD1B,KAAK,E7B2QS,IAAI;I6B1QlB,WAAW,EArDO,sDAAiB;IAsDnC,SAAS,EArDO,QAAY;IAsD5B,WAAW,EA3Cc,MAAmB;IA4C5C,WAAwB,EtBclB,IAAmD;IsBbzD,aAAa,EAAE,CAAC;IAEhB;;iBAAE;MACA,KAAK,EA1DU,OAAS;MA2DxB,OAAO,EA7CY,cAAgB;MA8CnC,eAAe,EA1DK,IAAI;MA4DxB;;yBAAQ;QACN,KAAK,EA1Dc,OAAkD;IA8DzE;;wBAAW;M7BzDX,aAAa,E6BNO,GAAG;MAiErB,UAAU,EA1DI,OAAc;MA2D5B,KAAK,EAzDY,OAAM;MA0DvB,MAAM,EAxDY,OAAO;MAyDzB,WAAW,EA9DY,MAAmB;MA+D1C,OAAO,EA3DY,cAAgB;MA6DnC;;gCAAQ;QACN,UAAU,EAhEQ,OAAiD;;ACkLrE,OAAQ;EAxKZ,MAAM,EAAE,IAAI;EACZ,aAAa,EAtBQ,MAAM;EAuB3B,OAAO,EAAE,CAAC;EACV,OAAO,EAAE,CAAC;EACV,QAAQ,EAAE,QAAQ;EAClB,mBAAmB,EAAE,IAAI;EACzB,gBAAgB,EAAE,IAAI;EACtB,eAAe,EAAE,IAAI;EACrB,WAAW,EAAE,IAAI;EAGjB,aAAM;IACJ,UAAU,EAxCF,OAAU;IAyClB,KAAK,EAAE,WAAW;IAClB,MAAM,EAAE,OAAO;IACf,OAAO,EAAE,KAAK;IACd,aAAa,EAAE,IAAwB;IACvC,QAAQ,EAAE,QAAQ;IAClB,WAAW,EAAE,IAAI;IACjB,KAAK,EAAE,IAAsB;IAAE,MAAM,EA1CrB,IAAI;I9BsHtB,UAAU,EAPS,mBAAyB;E8B7D5C,aAAM;IACJ,IAAI,EAAE,IAAI;IACV,OAAO,EAAE,CAAC;IACV,OAAO,EAAC,CAAC;IACT,QAAQ,EAAE,QAAQ;IAClB,GAAG,EAAE,GAAG;IAER,qBAAU;MAAE,WAAW,EAAE,CAAC;MAAE,YAAY,EAAE,CAAC;EAO7C,mBAAY;IACV,UAAU,EA5DK,OAAM;IA6DrB,OAAO,EAAE,EAAE;IACX,OAAO,EAAE,KAAK;IACd,MAAM,EAAE,MAA0B;IAClC,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,QAAQ;IAClB,GAAG,EAAE,MAAM;IACX,KAAK,EAAE,MAA0B;IAEjC,kBAAkB,EAAE,mBAAuC;IAC3D,eAAe,EAAE,mBAAuC;IACxD,aAAa,EAAE,oBAAkB;IACjC,UAAU,EAAE,mBAAuC;IAEnD,iBAAiB,EAAE,oBAAkB;IACrC,cAAc,EAAE,oBAAkB;IAClC,aAAa,EAAE,oBAAkB;IACjC,YAAY,EAAE,oBAAkB;IAChC,SAAS,EAAE,oBAAkB;EAG/B,6BAAsB;IACpB,UAAU,EA/EQ,OAAc;EAkFlC,mCAA4B;IAC1B,IAAI,EAAE,OAA2B;EAWnC,aAAM;IACJ,MAAM,EAvGU,IAAI;IAwGpB,KAAK,EAAE,IAAW;EAGpB,mBAAY;IACV,MAAM,EAAE,MAAe;IACvB,KAAK,EAAE,MAAe;EAGxB,mCAA4B;IAC1B,IAAI,EAAE,OAAgB;EAoBtB,aAAM;IACJ,KAAK,EAAE,WAAW;IAClB,UAAU,EA5IJ,OAAU;EA+IlB,mBAAY;IACV,UAAU,EAtIG,OAAM;EAyIrB,6BAAsB;IACpB,UAAU,EAvIM,OAAc;EA8FlC,mBAAM;IACJ,MAAM,EAtGU,MAAM;IAuGtB,KAAK,EAAE,IAAW;EAGpB,yBAAY;IACV,MAAM,EAAE,IAAe;IACvB,KAAK,EAAE,IAAe;EAGxB,yCAA4B;IAC1B,IAAI,EAAE,OAAgB;EAXxB,mBAAM;IACJ,MAAM,EAxGU,OAAO;IAyGvB,KAAK,EAAE,MAAW;EAGpB,yBAAY;IACV,MAAM,EAAE,OAAe;IACvB,KAAK,EAAE,OAAe;EAGxB,yCAA4B;IAC1B,IAAI,EAAE,IAAgB;EAXxB,kBAAM;IACJ,MAAM,EAzGU,MAAM;IA0GtB,KAAK,EAAE,IAAW;EAGpB,wBAAY;IACV,MAAM,EAAE,IAAe;IACvB,KAAK,EAAE,IAAe;EAGxB,wCAA4B;IAC1B,IAAI,EAAE,OAAgB;EA4FhB,oBAAM;I9BlMZ,aAAa,E8BkMiB,GAAG;EAC3B,0BAAY;I9BnMlB,aAAa,E8BmMuB,GAAG;EAInC,aAAQ;I9BvMZ,aAAa,E8BuMiB,MAAM;IAC9B,mBAAM;M9BxMZ,aAAa,E8BwMiB,IAAI;IAC5B,yBAAY;M9BzMlB,aAAa,E8ByMuB,IAAI;;ACzGxC,KAAM;EAnER,UAAU,EA7CD,OAAM;EA8Cf,MAAM,EAAE,iBAA0D;EAClE,aAAa,EAVO,OAAY;EAWhC,YAAY,EAbC,IAAI;EAejB,aAAQ;IACN,UAAU,EA5BK,WAAW;IA6B1B,KAAK,EArBc,OAAI;IAuBrB,SAAI,EA7BgB,IAAY;IA8BhC,WAAM,EA7BgB,IAAI;EAiC9B,WAAM;IACJ,UAAU,EA5CE,OAAc;IA+CxB;qBACG;MACD,KAAK,EAlCU,OAAI;MAmCnB,SAAS,EAjDM,QAAqB;MAkDpC,WAAW,EAhDM,IAAuB;MAiDxC,OAAO,EAhDM,wBAAmB;EAqDtC,WAAM;IACJ,UAAU,EA1DE,OAAc;IA6DxB;qBACG;MACD,KAAK,EAhDU,OAAI;MAiDnB,SAAS,EA/DM,QAAqB;MAgEpC,WAAW,EA9DM,IAAuB;MA+DxC,OAAO,EA9DM,wBAAmB;EAoEpC;aACG;IACD,KAAK,EA3DY,OAAI;IA4DrB,SAAS,EA7DO,QAAY;IA8D5B,OAAO,EA/DO,kBAAc;IAgE5B,UAAU,E/BsOE,IAAI;E+BnOlB,uDAEoB;IAAE,UAAU,EAjGhB,OAAK;EAoGvB;;;;;aAKM;IAAE,OAAO,EAtED,UAAU;IAsES,WAAW,EA1E1B,QAAY;;ACrB5B,KAAM;EAEJ,aAAa,EAAE,YAAY;EAC3B,WAAW,EAAE,CAAC;EhC8MlB,yBAAkB;IAAE,OAAO,EAAE,GAAG;IAAE,OAAO,EAAE,KAAK;EAChD,WAAQ;IAAE,KAAK,EAAE,IAAI;EgC7MjB;kBACW;IACT,KAAK,EhCiTK,IAAI;IgChTd,UAAU,EAAE,IAAI;IAChB,aAAa,EAAE,YAAY;IAC3B,QAAQ,EAAE,QAAQ;IAElB;wBAAI;MACF,OAAO,EAAE,KAAK;MACd,gBAAgB,EA7BC,OAAO;MA8BxB,KAAK,EA1BqB,OAA2B;MA2BrD,WAAW,EAzBS,sDAAiB;MA0BrC,SAAS,EA3BS,IAAY;MA4B9B,OAAO,EAAE,SAAqD;MAE9D;gCAAQ;QACN,gBAAgB,EAlCK,OAAuD;IAsChF;+BAAa;MACX,gBAAgB,EAxCQ,OAAM;MAyC9B,KAAK,EAtCqB,OAA2B;EA6CrD;iCAAE;IhCnBR,iCAAqC,EAiTzB,GAAG;IAhTf,8BAAkC,EAgTtB,GAAG;IA/Sf,yBAA6B,EA+SjB,GAAG;IA9Sf,sBAA0B,EA8Sd,GAAG;EgCzRT;gCAAE;IhCxBR,kCAAqC,EAiTzB,GAAG;IAhTf,+BAAkC,EAgTtB,GAAG;IA/Sf,0BAA6B,EA+SjB,GAAG;IA9Sf,uBAA0B,EA8Sd,GAAG;EgCpRX;2BACW;IACT,QAAQ,EAAE,OAAO;IACjB,KAAK,EAAE,IAAI;IACX,OAAO,EAAE,KAAK;IACd,GAAG,EAAE,IAAI;;AAKf,aAAc;EAEZ,aAAa,EA/DU,MAAY;EAgEnC,KAAK,EAAE,IAAI;EhCwJf,yCAAkB;IAAE,OAAO,EAAE,GAAG;IAAE,OAAO,EAAE,KAAK;EAChD,mBAAQ;IAAE,KAAK,EAAE,IAAI;EgCvJjB,wBAAW;IACT,OAAO,EAAE,IAAI;IACb,KAAK,EhC2PK,IAAI;IgC1Pd,OAAO,EAAE,WAAuB;IAChC,KAAK,EAAE,IAAI;IAEX,+BAAS;MACP,OAAO,EAAE,KAAK;MACd,KAAK,EAAE,IAAI;IAEb,kCAAY;MACV,OAAO,EA5EO,SAAgB;EAgFlC,sBAAW;IACT,OAAO,EAAE,KAAK;IAEd,iCAAW;MACT,OAAO,EAAE,WAAuB;;AAKtC,6CAAqB;EAEjB,cAAW;IACT,KAAK,EhCkOG,IAAI;IgCjOZ,MAAM,EAAE,CAAC;IACT,aAAa,EAAE,kBAAkD;IACjE,SAAS,EAAE,GAAG;IACd,KAAK,EAAE,GAAG;;EAKZ,sBAAW;IACT,KAAK,EhCwNG,IAAI;IgCvNZ,WAAwB,EAAE,IAAI;IAC9B,SAAS,EAAE,GAAG;IACd,YAAyB,EAAE,IAAI;IAC/B,KAAK,EAAE,GAAG;AAMd,+BAAyB;EACvB,OAAO,EAAE,KAAK;EACd,KAAK,EAAE,IAAI;;;AC/Ef,GAAI;EAjBN,MAAM,EAAE,iBAAqD;EAC7D,UAAU,EArBO,4BAA0B;EAsB3C,OAAO,EAAE,YAAY;EACrB,WAAW,EAAE,CAAC;EACd,SAAS,EAAE,IAAI;EjCgGf,UAAU,EAPS,kBAAyB;EiCvF5C,oBACQ;IACN,UAAU,EA3BW,kCAAqC;EAwCxD,UAAS;IjC5BX,aAAa,EiCTF,GAAc;;;ACYzB,QAAS;EACP,aAAa,EA3BK,kBAAiB;EA4BnC,KAAK,EApBE,OAAI;EAqBX,MAAM,EAxBU,IAAI;EAyBpB,WAAW,EA7BK,IAAiB;EA+BjC,8BACQ;IACN,aAAa,EA/BS,kBAAyD;IAgC/E,KAAK,EA/Bc,OAAc;EAkCnC,qCACY;IAAE,KAAK,EAAE,eAAe;;AAGtC,QAAS;EACP,UAAU,EAnCH,OAAI;EAoCX,KAAK,EAjCU,OAAM;EAkCrB,OAAO,EAAE,IAAI;EACb,SAAS,EArCK,QAAY;EAsC1B,WAAW,EAjCW,MAAmB;EAkCzC,WAAW,EApCK,GAAG;EAqCnB,SAAS,EA7BK,KAAK;EA8BnB,OAAO,EA3CK,OAAY;EA4CxB,QAAQ,EAAE,QAAQ;EAClB,KAAK,EAAE,IAAI;EACX,OAAO,EAAE,IAAI;EACb,IAAiB,EAAE,GAAG;EAEtB,eAAO;IACL,MAAM,EAAE,SAAuB;IAC/B,YAAY,EAAE,2CAA+C;IAC7D,OAAO,EAAE,KAAK;IACd,MAAM,EAAE,CAAC;IACT,cAAc,EAAE,IAAI;IACpB,QAAQ,EAAE,QAAQ;IAClB,GAAG,EAAE,KAAwB;IAC7B,KAAK,EAAE,CAAC;IACR,IAAiB,EA9CN,GAAG;IAgDd,mBAAM;MACJ,IAAI,EAAE,IAAI;MACV,KAAsB,EAlDb,GAAG;EAsDhB,eAAS;IlClDX,aAAa,EkCNA,GAAc;EA2DzB,cAAQ;IlCrDV,aAAa,EkCLC,MAAe;IA4DzB,qBAAO;MACL,IAAI,EAAE,IAAI;EAId,eAAS;IACP,aAAa,EAAE,6BAAuC;IACtD,KAAK,EAAE,kBAAoC;;AAI/C,aAAc;EACZ,KAAK,EA3EgB,OAAQ;EA4E7B,OAAO,EAAE,KAAK;EACd,SAAS,EA/EW,QAAY;EAgFhC,WAAW,EA/EW,MAAmB;;AAkF3C,kBAAiB;EAEb,eAAO;IACL,YAAY,EAAE,2CAA+C;IAC7D,GAAG,EAAE,KAAwB;EAE/B,uBAAe;IACb,YAAY,EAAE,2CAA+C;IAC7D,MAAM,EAAE,KAAwB;IAChC,GAAG,EAAE,IAAI;EAGX,qCACY;IAAE,KAAK,EAAE,eAAe;EAEpC,wBAAgB;IACd,YAAY,EAAE,2CAA+C;IAC7D,IAAI,EAAE,IAAI;IACV,UAAU,EAAE,IAAkB;IAC9B,KAAK,EAAE,KAAwB;IAC/B,GAAG,EAAE,GAAG;EAEV,yBAAiB;IACf,YAAY,EAAE,2CAA+C;IAC7D,IAAI,EAAE,KAAwB;IAC9B,UAAU,EAAE,IAAkB;IAC9B,KAAK,EAAE,IAAI;IACX,GAAG,EAAE,GAAG;ACtBd,yBAA0B;EACxB,WAAW,EAAE,yCAAwC;EACrD,KAAK,EArCW,SAA4B;;;AAyC9C,gBAAiB;EACf,KAAK,EAAE,IAAI;EACX,UAAU,EA1DW,OAAI;EA4DzB,yBAAS;IACP,aAAa,EAvGE,CAAC;;AA4GpB,MAAO;EACL,QAAQ,EAAE,KAAK;EACf,GAAG,EAAE,CAAC;EACN,KAAK,EAAE,IAAI;EACX,OAAO,EAAE,EAAE;EACX,IAAiB,EAAE,CAAC;EAEpB,6BAAyB;IACvB,MAAM,EAAE,IAAI;IACZ,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,IAAI;IAChB,KAAK,EAAE,IAAI;IAEX,yCAAY;MACV,QAAQ,EAAE,KAAK;MACf,KAAK,EAAE,IAAI;MACX,OAAO,EAAE,EAAE;IAIb,8CAAiB;MACf,UAAU,EAlIJ,SAAY;MAmIlB,OAAO,EAAE,EAAE;;AAKjB,QAAS;EACP,UAAU,EA9FW,OAAI;EA+FzB,MAAM,EA1II,SAAY;EA2ItB,WAAW,EA3ID,SAAY;EA4ItB,aAAa,EA3II,CAAC;EA4IlB,QAAQ,EAAE,MAAM;EAChB,QAAQ,EAAE,QAAQ;EAGlB,WAAG;IACD,UAAU,EAAE,IAAI;IAChB,aAAa,EAAE,CAAC;EAGlB,aAAK;IACH,SAAS,EAAE,IAAI;EAGjB;;iBAEO;IACL,aAAa,EAAE,CAAC;EAGlB;iBACO;IACL,SAAS,EAzIS,OAAM;IA0IxB,MAAM,EArGQ,OAAY;IAsG1B,cAAc,EAAE,MAAM;IACtB,WAAW,EAAE,MAAM;EAGrB,iCAAgB;IACd,SAAS,EAhJS,OAAM;IAiJxB,aAAa,EAAE,CAAC;IAChB,cAAc,EAAE,SAAoB;IACpC,WAAW,EAAE,SAAoB;IAKjC,wCAAsB;MATxB,iCAAgB;QAUZ,QAAQ,EAAE,QAAQ;QAClB,GAAG,EAAE,IAAI;EAKb,oBAAY;IACV,MAAM,EAAE,CAAC;IACT,QAAQ,EAAE,QAAQ;EAGpB,cAAM;IACJ,SAAS,E5B5MN,IAAI;I4B6MP,MAAM,EA/LE,SAAY;IAgMpB,MAAM,EAAE,CAAC;IAET,iHAAwB;MACtB,SAAS,EA9LM,SAAY;MA+L3B,WAAW,EApML,SAAY;MAqMlB,MAAM,EAAE,CAAC;MAET,6HAAE;QACA,KAAK,EAtJQ,OAAM;QAuJnB,OAAO,EAAE,KAAK;QACd,WAAW,EAxKO,MAAmB;QAyKrC,OAAO,EAAE,WAAsB;QAC/B,KAAK,EAAE,GAAG;EAMhB,uBAAe;IACb,QAAQ,EAAE,QAAQ;IAClB,KAA6B,EAAE,CAAC;IAChC,GAAG,EAAE,CAAC;IAEN,yBAAE;MACA,KAAK,EAtKU,OAAM;MAuKrB,OAAO,EAAE,KAAK;MACd,SAAS,EA3KU,SAAY;MA4K/B,WAAW,EA3KK,IAAiB;MA4KjC,MAAM,EA5NA,SAAY;MA6NlB,WAAW,EA7NL,SAAY;MA8NlB,OAAO,EAAE,WAAsB;MAC/B,QAAQ,EAAE,QAAQ;MAClB,cAAc,EAlLK,SAAS;IAsL9B,iCAAY;MACV,UAAU,EAAE,KAAK;MACjB,GAAG,EAAE,GAAG;MAER,mCAAE;QAMA,KAAK,EA5LQ,OAAM;QA6LnB,MAAM,EAAE,IAAI;QACZ,WAAW,EAAE,IAAI;QACjB,OAAO,EAAE,oBAA0D;QACnE,QAAQ,EAAE,QAAQ;QnClE5B,+CAAY;UACV,OAAO,EAAE,EAAE;UACX,OAAO,EAAE,KAAK;UACd,MAAM,EAAE,CAAC;UACT,QAAQ,EAAE,QAAQ;UAkBhB,UAAU,EAAE,IAAW;UACvB,GAAG,EAAE,GAAG;UACR,KAAsB,EmClLL,SAAkB;UnCqLrC,UAAU,EACR,4DAAuB;UAGzB,KAAK,EmC0BsB,IAAI;QnCxBjC,oDAAiB;UACf,UAAU,EACR,6CAA6B;EmCqC7B,iBAAW;IACT,UAAU,EAAE,WAAW;IACvB,MAAM,EAAE,IAAI;IAEZ,6BAAY;MACV,UAAU,EAlNO,OAAI;IAsNrB,kCAAE;MACA,KAAK,EA9MgB,OAAM;MAgN3B,8CAAY;QAGV,UAAU,EAAE,4DAAyC;IAQ3D,qDAAqD;MAEjD;kDACU;QACR,IAAI,EAAE,OAAO;MAIf,iEAA+B;QAC7B,OAAO,EAAE,CAAC;;AAQpB,gBAAiB;EACf,IAAiB,EAAE,CAAC;EACpB,QAAQ,EAAE,QAAQ;EAClB,KAAK,EAAE,IAAI;EnCzKf,UAAU,EAPS,mBAAyB;EmCmLxC,mBAAG;IACD,OAAO,EAAE,KAAK;IACd,SAAS,E5BtTN,IAAI;I4BuTP,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,CAAC;IACT,OAAO,EAAE,CAAC;IACV,KAAK,EAAE,IAAI;EAGb;qCACmB;IACjB,UAAU,EA/OU,iBAA0D;IAgP9E,KAAK,EAAE,IAAI;IACX,MAAM,EAAE,GAAG;IACX,KAAK,EAAE,IAAI;EAGb,sBAAM;IACN,UAAU,EA7QW,OAAI;IA+QvB,0BAAI;MACF,KAAK,EAzQU,OAAM;MA0QrB,OAAO,EAAE,KAAK;MACd,WAAW,EAzSK,sDAAiB;MA0SjC,SAAS,EAjTK,SAAY;MAkT1B,WAAW,EA7RS,MAAmB;MA8RvC,YAAyB,EA1SZ,SAAkB;MA2S/B,OAAO,EAAE,qBAAgC;MACzC,cAAc,EA7SK,IAAI;MA8SvB,KAAK,EAAE,IAAI;MAEX,iCAAS;QACP,SAAS,EAzTG,SAAY;QA0TxB,YAAyB,EAjTd,SAAkB;QAkT7B,aAA8B,EAlTnB,SAAkB;Q7BuHrC,gBAAgB,E6B3HI,OAAc;Q7B4HlC,YAAY,EARK,OAAwG;QAazH,KAAK,E6BjGgB,OAAM;Q7B6F3B,gFACQ;UAAE,gBAAgB,EAVT,OAAwG;QAezH,gFACQ;UACN,KAAK,E6BrGc,OAAM;MA0RrB,2CAAmB;Q7B/LzB,gBAAgB,EkBrIa,OAAgB;QlBsI7C,YAAY,EARK,OAAwG;QAazH,KAAK,E6BxGkB,OAAI;Q7BoG3B,oGACQ;UAAE,gBAAgB,EAdb,OAAoG;QAmBjH,oGACQ;UACN,KAAK,E6B5GgB,OAAI;MAkSrB,yCAAiB;Q7BhMvB,gBAAgB,EkBpIW,OAAc;QlBqIzC,YAAY,EARK,OAAwG;QAazH,KAAK,E6BjGgB,OAAM;Q7B6F3B,gGACQ;UAAE,gBAAgB,EAdb,OAAoG;QAmBjH,gGACQ;UACN,KAAK,E6BrGc,OAAM;MA4RrB,uCAAe;Q7BjMrB,gBAAgB,EkBnIS,OAAY;QlBoIrC,YAAY,EARK,OAAwG;QAazH,KAAK,E6BjGgB,OAAM;Q7B6F3B,4FACQ;UAAE,gBAAgB,EAdb,OAAoG;QAmBjH,4FACQ;UACN,KAAK,E6BrGc,OAAM;MA6RrB,yCAAiB;Q7BlMvB,gBAAgB,EA9GM,OAAc;QA+GpC,YAAY,EARK,OAAwG;QAazH,KAAK,E6BjGgB,OAAM;Q7B6F3B,gGACQ;UAAE,gBAAgB,EAdb,OAAoG;QAmBjH,gGACQ;UACN,KAAK,E6BrGc,OAAM;MA8RrB,sCAAc;Q7BnMpB,gBAAgB,EA3GG,OAAW;QA4G9B,YAAY,EARK,OAAwG;QAazH,KAAK,E6BxGkB,OAAI;Q7BoG3B,0FACQ;UAAE,gBAAgB,EAdb,OAAoG;QAmBjH,0FACQ;UACN,KAAK,E6BrGc,OAAM;IAiSvB,+BAAS;MACP,SAAS,EAvUK,SAAY;MAwU1B,YAAyB,EA/TZ,SAAkB;MAgU/B,aAA8B,EAhUjB,SAAkB;M7BuHrC,gBAAgB,E6B3HI,OAAc;M7B4HlC,YAAY,EARK,OAAwG;MAazH,KAAK,E6BjGgB,OAAM;M7B6F3B,4EACQ;QAAE,gBAAgB,EAVT,OAAwG;MAezH,4EACQ;QACN,KAAK,E6BrGc,OAAM;MAuSrB,yCAAY;Q7B5MlB,gBAAgB,EkBrIa,OAAgB;QlBsI7C,YAAY,EARK,OAAwG;QAazH,KAAK,E6BxGkB,OAAI;Q7BoG3B,gGACQ;UAAE,gBAAgB,EAdb,OAAoG;QAmBjH,gGACQ;UACN,KAAK,E6B5GgB,OAAI;MA+SrB,uCAAU;Q7B7MhB,gBAAgB,EkBpIW,OAAc;QlBqIzC,YAAY,EARK,OAAwG;QAazH,KAAK,E6BjGgB,OAAM;Q7B6F3B,4FACQ;UAAE,gBAAgB,EAdb,OAAoG;QAmBjH,4FACQ;UACN,KAAK,E6BrGc,OAAM;MAySrB,qCAAQ;Q7B9Md,gBAAgB,EkBnIS,OAAY;QlBoIrC,YAAY,EARK,OAAwG;QAazH,KAAK,E6BjGgB,OAAM;Q7B6F3B,wFACQ;UAAE,gBAAgB,EAdb,OAAoG;QAmBjH,wFACQ;UACN,KAAK,E6BrGc,OAAM;MA0SrB,uCAAU;Q7B/MhB,gBAAgB,EA9GM,OAAc;QA+GpC,YAAY,EARK,OAAwG;QAazH,KAAK,E6BjGgB,OAAM;Q7B6F3B,4FACQ;UAAE,gBAAgB,EAdb,OAAoG;QAmBjH,4FACQ;UACN,KAAK,E6BrGc,OAAM;MA2SrB,oCAAO;Q7BhNb,gBAAgB,EA3GG,OAAW;QA4G9B,YAAY,EARK,OAAwG;QAazH,KAAK,E6BxGkB,OAAI;Q7BoG3B,sFACQ;UAAE,gBAAgB,EAdb,OAAoG;QAmBjH,sFACQ;UACN,KAAK,E6BrGc,OAAM;IA+SvB,+CAA2B;MACzB,gBAAgB,EAjVG,OAAS;MAkV5B,KAAK,EAjTU,OAAM;MAoTnB,UAAU,EArUU,OAAI;IA0U5B,iCAAa;MACX,UAAU,EA1VI,OAAc;MA2V5B,KAAK,EA3TU,OAAM;MA6TrB,uCAAQ;QACN,UAAU,EA7VQ,OAA6C;QA8V/D,KAAK,EA/TQ,OAAM;EAqUzB,0BAAU;IACR,OAAO,EAlWQ,SAAkB;EAsWnC,8BAAc;IACZ,QAAQ,EAAE,QAAQ;IAGhB,wCAAQ;MnCnPhB,MAAM,EAAE,SAAoB;MAC5B,OAAO,EAAE,EAAE;MACX,OAAO,EAAE,KAAK;MACd,MAAM,EAAE,CAAC;MACT,KAAK,EAAE,CAAC;MAUN,YAAY,EAAE,4DAAmD;MACjE,iBAAiB,EAAE,KAAK;MmCyOhB,YAA6B,EA/WlB,SAAkB;MAgX7B,UAAU,EAAE,MAAuC;MACnD,QAAQ,EAAE,QAAQ;MAClB,GAAG,EAAE,GAAG;MACR,KAAsB,EAAE,CAAC;IAI7B,oCAAQ;MACN,QAAQ,EAAE,MAAM;MAEhB,gDAAY;QnCzIpB,QAAQ,EAAE,iBAAiB;QAC3B,MAAM,EAAE,IAAI;QACZ,KAAK,EAAE,IAAI;QACX,QAAQ,EAAE,OAAO;QACjB,IAAI,EAAE,IAAI;QmCzLV,OAAO,EAAE,KAAK;QACd,QAAQ,EAAE,mBAAmB;QA+TnB,KAAK,EAAE,IAAI;MAGb,8CAAU;QACR,OAAO,EAAE,IAAI;EAMnB,0BAAU;InChKd,IAAI,EAAE,wBAAwB;IAC9B,MAAM,EAAE,GAAG;IACX,QAAQ,EAAE,MAAM;IAChB,QAAQ,EAAE,mBAAmB;IAC7B,KAAK,EAAE,GAAG;ImCnLV,OAAO,EAAE,KAAK;IAiVR,OAAO,EAAE,CAAC;IACV,QAAQ,EAAE,QAAQ;IAClB,GAAG,EAAE,CAAC;IACN,OAAO,EAAE,EAAE;IACX,IAAiB,EAAE,IAAI;IAEvB,6BAAG;MACD,MAAM,EAAE,IAAI;MACZ,KAAK,EAAE,IAAI;MAEX,+BAAE;QACA,WAAW,EAvYO,MAAmB;QAwYrC,OAAO,EAAE,aAAwB;QACjC,2CAAc;UACZ,WAAW,EA1YK,MAAmB;MA8YvC,iFACc;QAEZ,aAAa,EAAE,CAAC;QAChB,UAAU,EAAE,CAAC;QACb,SAAS,EA9ZG,QAAY;QA+ZxB,qFAAE;UACA,KAAK,EArYM,OAAM;UAuYjB,OAAO,EAAE,KAAK;UACd,iGAAQ;YAAE,UAAU,EAAC,IAAI;MAI7B,sCAAW;QACT,OAAO,EAAE,aAAwB;MAGnC;0CACO;QACL,GAAG,EAAE,IAAI;IAIb,gCAAM;MACJ,KAAK,EAlae,OAAQ;MAma5B,SAAS,EAhae,QAAY;MAiapC,WAAW,EA3ZK,IAAiB;MA4ZjC,aAAa,EAAE,CAAC;MAChB,OAAO,EAAE,iBAA4B;MACrC,cAAc,EAtae,SAAS;;AA2a5C,aAAc;EAAE,OAAO,EAAE,KAAK;;AAI9B,6CAA8B;EAC5B,QAAS;IAEP,UAAU,EA/aS,OAAI;IAgbvB,QAAQ,EAAE,OAAO;InChQvB,+BAAkB;MAAE,OAAO,EAAE,GAAG;MAAE,OAAO,EAAE,KAAK;IAChD,cAAQ;MAAE,KAAK,EAAE,IAAI;ImCiQf,uBAAe;MAAE,OAAO,EAAE,IAAI;IAE9B,oBAAY;MAAE,KAAK,EnC7JT,IAAI;ImC8Jd;;;;;uBAKW;MAAE,KAAK,EAAE,IAAI;IAExB;;;mBAGO;MACL,SAAS,E5BlaT,QAAmD;M4BmanD,MAAM,EA9aM,OAAY;MA+axB,QAAQ,EAAE,QAAQ;MAClB,GAAG,EAAE,UAA6C;IAGpD;+BACmB;MACjB,SAAS,E5B1aT,QAAmD;M4B2anD,MAAM,EAtbM,OAAY;MAubxB,QAAQ,EAAE,QAAQ;MAClB,GAAG,EAAE,UAA6C;IAGpD,iBAAW;MACT,UAAU,EA/cO,OAAI;;EAmdzB,yBAA0B;IACxB,MAAM,EAAE,MAAM;IACd,aAAa,EA/fE,CAAC;IAggBhB,SAAS,ET9fE,OAAU;;ESigBvB,gBAAiB;InC1YrB,UAAU,EAPS,QAAyB;ImCmZtC,IAAiB,EAAE,YAAY;IAE/B,mBAAG;MACD,OAAO,EAAE,MAAM;MACf,MAAM,EAAE,eAAe;MACvB,KAAK,EAAE,IAAI;MAEX,sBAAG;QACD,KAAK,EnC5MC,IAAI;QmC6MV,oCAAc;UAAE,OAAO,EAAE,IAAI;IAM7B,0CAAiB;MACf,gBAAgB,EArgBD,OAAS;MAugBtB,UAAU,EAvfM,OAAI;MAyftB,KAAK,EAxeM,OAAM;IA6enB,iDAAe;MACb,UAAU,EArfG,OAAI;MAsfjB,WAAW,EAjiBT,SAAY;MAkiBd,OAAO,EAAE,WAAsB;MAC/B,uDAAQ;QACN,gBAAgB,EAnhBH,OAAS;QAqhBpB,UAAU,EArgBI,OAAI;IA4gBxB,wDAAe;MACb,UAAU,EA5hBA,OAAc;MA6hBxB,KAAK,EA7fM,OAAM;MA8fjB,WAAW,EAhjBT,SAAY;MAijBd,OAAO,EAAE,WAAsB;MAC/B,8DAAQ;QACN,UAAU,EAhiBI,OAA6C;QAiiB3D,KAAK,EAlgBI,OAAM;IA0gBnB,kCAAI;MACF,aAA8B,EAAE,oBAA+D;MAC/F,wCAAQ;QnCjbpB,MAAM,EAAE,SAAoB;QAC5B,OAAO,EAAE,EAAE;QACX,OAAO,EAAE,KAAK;QACd,MAAM,EAAE,CAAC;QACT,KAAK,EAAE,CAAC;QAEN,YAAY,EAAE,4DAAmD;QACjE,gBAAgB,EAAE,KAAK;QmC4aX,UAAU,EAAE,MAAmC;QAC/C,GAAG,EAAE,UAAoB;IAK/B,oCAAQ;MAAE,QAAQ,EAAE,QAAQ;MAC1B,gDAAY;QnC3UtB,IAAI,EAAE,wBAAwB;QAC9B,MAAM,EAAE,GAAG;QACX,QAAQ,EAAE,MAAM;QAChB,QAAQ,EAAE,mBAAmB;QAC7B,KAAK,EAAE,GAAG;QmCnLV,OAAO,EAAE,KAAK;IAggBJ,4GAAY;MnCtUtB,QAAQ,EAAE,iBAAiB;MAC3B,MAAM,EAAE,IAAI;MACZ,KAAK,EAAE,IAAI;MACX,QAAQ,EAAE,OAAO;MACjB,IAAI,EAAE,IAAI;MmCzLV,OAAO,EAAE,KAAK;MACd,QAAQ,EAAE,mBAAmB;IA+frB,oDAAsB;MnC3U9B,QAAQ,EAAE,iBAAiB;MAC3B,MAAM,EAAE,IAAI;MACZ,KAAK,EAAE,IAAI;MACX,QAAQ,EAAE,OAAO;MACjB,IAAI,EAAE,IAAI;MmCzLV,OAAO,EAAE,KAAK;MACd,QAAQ,EAAE,mBAAmB;IAsgBf,kEAAQ;MACN,MAAM,EAAE,IAAI;MACZ,OAAO,EAAE,OAAO;MAChB,GAAG,E5BnhBX,SAAmD;M4BqhB3C,KAAsB,EAAE,GAAG;IAOrC,0BAAU;MACR,IAAiB,EAAE,CAAC;MACpB,UAAU,EAAE,WAAW;MACvB,SAAS,EAAE,IAAI;MACf,GAAG,EAAE,IAAI;MAGP,+BAAE;QACA,UAAU,EAlkBG,OAAI;QAmkBjB,KAAK,EA5jBM,OAAM;QA6jBjB,WAAW,EA/mBT,SAAY;QAgnBd,OAAO,EAAE,cAAyB;QAClC,WAAW,EAAE,MAAM;MAInB,0EAAiB;QACf,UAAU,EA3kBC,OAAI;QA4kBf,KAAK,EArkBI,OAAM;MAwkBjB,gFAAyB;QACvB,gBAAgB,EA1mBH,OAAS;QA2mBtB,KAAK,EA1kBI,OAAM;QA4kBb,UAAU,EA7lBI,OAAI;MAkmBxB,mCAAM;QACJ,UAAU,EAzlBG,OAAI;QA0lBjB,WAAW,EAAE,MAAM;MAIrB,uCAAU;QACR,IAAiB,EAAE,IAAI;QACvB,GAAG,EAAE,CAAC;IAKZ;8CAC0B;MACxB,YAA6B,EAjlBR,iBAAyD;MAklB9E,aAAa,EAAE,IAAI;MACnB,UAAU,EAAE,IAAI;MAChB,KAAK,EAAE,IAAI;MACX,MAAM,EAtpBA,SAAY;MAupBlB,KAAK,EAAE,CAAC;IAGV,0BAAU;MACR,UAAU,EAhnBO,OAAI;MAinBrB,MAAM,EA5pBA,SAAY;MA6pBlB,OAAO,EAAE,WAAsB;IAK/B,oCAAa;MACX,IAAiB,EAAE,IAAI;MACvB,KAAsB,EAAE,CAAC;MAEzB,iDAAa;QAAE,KAAsB,EAAE,IAAI;IAI7C,mCAAa;MACX,KAAsB,EAAE,IAAI;MAC5B,IAAiB,EAAE,CAAC;MAEpB,gDAAa;QAAE,IAAiB,EAAE,IAAI;;EAUxC,uCAAY;IACV,gBAAgB,EAxqBC,OAAS;IA0qBxB,UAAU,EA1pBQ,OAAI;IA4pBxB,KAAK,EA3oBQ,OAAM;EA+oBrB,wCAAa;IACX,UAAU,EAhrBE,OAAc;IAirB1B,KAAK,EAjpBQ,OAAM;EAupBnB,uDAAY;InClctB,QAAQ,EAAE,iBAAiB;IAC3B,MAAM,EAAE,IAAI;IACZ,KAAK,EAAE,IAAI;IACX,QAAQ,EAAE,OAAO;IACjB,IAAI,EAAE,IAAI;ImCzLV,OAAO,EAAE,KAAK;IACd,QAAQ,EAAE,mBAAmB;EA2nBrB,2DAAsB;InCvc9B,QAAQ,EAAE,iBAAiB;IAC3B,MAAM,EAAE,IAAI;IACZ,KAAK,EAAE,IAAI;IACX,QAAQ,EAAE,OAAO;IACjB,IAAI,EAAE,IAAI;ImCzLV,OAAO,EAAE,KAAK;IACd,QAAQ,EAAE,mBAAmB;ACuD7B,UAAc;EAAE,UAAU,EAAE,eAAe;;AAC3C,WAAc;EAAE,UAAU,EAAE,gBAAgB;;AAC5C,YAAc;EAAE,UAAU,EAAE,iBAAiB;;AAC7C,aAAc;EAAE,UAAU,EAAE,kBAAkB;;AAG5C,wCAA8C;EAC5C,qBAA4C;IAAE,UAAU,EAAE,eAAe;;EACzE,sBAA+C;IAAE,UAAU,EAAE,gBAAgB;;EAC7E,uBAA+C;IAAE,UAAU,EAAE,iBAAiB;;EAC9E,wBAA+C;IAAE,UAAU,EAAE,kBAAkB;AAJjF,kBAA8C;EAC5C,gBAA4C;IAAE,UAAU,EAAE,eAAe;;EACzE,iBAA+C;IAAE,UAAU,EAAE,gBAAgB;;EAC7E,kBAA+C;IAAE,UAAU,EAAE,iBAAiB;;EAC9E,mBAA+C;IAAE,UAAU,EAAE,kBAAkB;AAJjF,mEAA8C;EAC5C,sBAA4C;IAAE,UAAU,EAAE,eAAe;;EACzE,uBAA+C;IAAE,UAAU,EAAE,gBAAgB;;EAC7E,wBAA+C;IAAE,UAAU,EAAE,iBAAiB;;EAC9E,yBAA+C;IAAE,UAAU,EAAE,kBAAkB;AAJjF,6CAA8C;EAC5C,iBAA4C;IAAE,UAAU,EAAE,eAAe;;EACzE,kBAA+C;IAAE,UAAU,EAAE,gBAAgB;;EAC7E,mBAA+C;IAAE,UAAU,EAAE,iBAAiB;;EAC9E,oBAA+C;IAAE,UAAU,EAAE,kBAAkB;AAJjF,mEAA8C;EAC5C,qBAA4C;IAAE,UAAU,EAAE,eAAe;;EACzE,sBAA+C;IAAE,UAAU,EAAE,gBAAgB;;EAC7E,uBAA+C;IAAE,UAAU,EAAE,iBAAiB;;EAC9E,wBAA+C;IAAE,UAAU,EAAE,kBAAkB;AAJjF,6CAA8C;EAC5C,gBAA4C;IAAE,UAAU,EAAE,eAAe;;EACzE,iBAA+C;IAAE,UAAU,EAAE,gBAAgB;;EAC7E,kBAA+C;IAAE,UAAU,EAAE,iBAAiB;;EAC9E,mBAA+C;IAAE,UAAU,EAAE,kBAAkB;AAJjF,oEAA8C;EAC5C,sBAA4C;IAAE,UAAU,EAAE,eAAe;;EACzE,uBAA+C;IAAE,UAAU,EAAE,gBAAgB;;EAC7E,wBAA+C;IAAE,UAAU,EAAE,iBAAiB;;EAC9E,yBAA+C;IAAE,UAAU,EAAE,kBAAkB;AAJjF,6CAA8C;EAC5C,iBAA4C;IAAE,UAAU,EAAE,eAAe;;EACzE,kBAA+C;IAAE,UAAU,EAAE,gBAAgB;;EAC7E,mBAA+C;IAAE,UAAU,EAAE,iBAAiB;;EAC9E,oBAA+C;IAAE,UAAU,EAAE,kBAAkB;AAJjF,8EAA8C;EAC5C,uBAA4C;IAAE,UAAU,EAAE,eAAe;;EACzE,wBAA+C;IAAE,UAAU,EAAE,gBAAgB;;EAC7E,yBAA+C;IAAE,UAAU,EAAE,iBAAiB;;EAC9E,0BAA+C;IAAE,UAAU,EAAE,kBAAkB;AAJjF,8CAA8C;EAC5C,kBAA4C;IAAE,UAAU,EAAE,eAAe;;EACzE,mBAA+C;IAAE,UAAU,EAAE,gBAAgB;;EAC7E,oBAA+C;IAAE,UAAU,EAAE,iBAAiB;;EAC9E,qBAA+C;IAAE,UAAU,EAAE,kBAAkB;;AA4BjF;;;;;;;;;;;;;;;;;;EAkBG;EACD,MAAM,EAAC,CAAC;EACR,OAAO,EAAC,CAAC;;;AAIX,CAAE;EACA,KAAK,EAvJS,OAAc;EAwJ5B,WAAW,EAAE,OAAO;EACpB,eAAe,EA3JI,IAAI;EA6JvB,gBACQ;IACN,KAAK,EA5Ja,OAAiD;EAkKrE,KAAI;IAAE,MAAM,EAAC,IAAI;;;AAInB,CAAE;EACA,WAAW,EA9JE,OAAsB;EA+JnC,SAAS,EA9LO,IAAI;EA+LpB,WAAW,EApLE,MAAmB;EAqLhC,WAAW,EA/LO,GAAG;EAgMrB,aAAa,EA/JE,OAAwB;EAgKvC,cAAc,EA5LO,kBAAkB;EA8LvC,MAAO;IAlEX,SAAS,EAAE,UAAoC;IAC/C,WAAW,EAAE,GAAG;EAmEZ,OAAQ;IACN,SAAS,EApMW,QAAY;IAqMhC,UAAU,EAnMW,MAAM;IAoM3B,WAAW,EArMW,IAAI;;;AA0M9B,sBAAuB;EACrB,KAAK,EAnPS,OAAI;EAoPlB,WAAW,EAvPI,sDAAiB;EAwPhC,UAAU,EAtPI,MAAM;EAuPpB,WAAW,EAvME,MAAmB;EAwMhC,WAAW,EAtPI,GAAG;EAuPlB,aAAa,EArPI,MAAK;EAsPtB,UAAU,EAvPI,MAAK;EAwPnB,cAAc,EAtPI,kBAAkB;EAwPpC,0DAAM;IACJ,KAAK,EA9NM,OAAgD;IA+N3D,SAAS,EAhOC,GAAG;IAiOb,WAAW,EAAE,CAAC;;AAIlB,EAAG;EAAE,SAAS,EAAE,QAAkC;;AAClD,EAAG;EAAE,SAAS,EAAE,SAAkC;;AAClD,EAAG;EAAE,SAAS,EAAE,QAAkC;;AAClD,EAAG;EAAE,SAAS,EAAE,QAAkC;;AAClD,EAAG;EAAE,SAAS,EAAE,QAAkC;;AAClD,EAAG;EAAE,SAAS,EAAE,IAAkC;;AAElD,UAAW;EA/Fb,WAAW,EApJW,GAAG;EAqJzB,KAAK,EApJgB,OAAgD;EAqJrE,WAAW,EA9HM,MAAmB;EA+HpC,UAAU,EApJW,MAAK;EAqJ1B,aAAa,EApJW,MAAK;;AAiP3B,EAAG;EACD,MAAM,EAAE,aAAiC;EACzC,YAAY,EAAE,OAAoB;EAClC,KAAK,EAAE,IAAI;EACX,MAAM,EAAE,CAAC;EACT,MAAM,EAAE,mBAAsD;;;AAIhE;CACE;EACA,UAAU,EAAE,MAAM;EAClB,WAAW,EAAE,OAAO;;AAGtB;CACE;EACA,WAAW,EA9Kc,IAAiB;EA+K1C,WAAW,EAAE,OAAO;;AAGtB,KAAM;EACJ,SAAS,EApQG,GAAG;EAqQf,WAAW,EAAE,OAAO;;AAGtB,IAAK;EACH,gBAAgB,EAvPE,OAA8C;EAwPhE,YAAY,EArPE,OAAqD;EAsPnE,YAAY,EAvPE,KAAK;EAwPnB,YAAY,EAzPC,GAAG;EA0PhB,KAAK,EA9PE,OAAI;EA+PX,WAAW,EA9PE,+CAAsB;EA+PnC,WAAW,EA9PE,MAAmB;EA+PhC,OAAO,EA1PE,4BAAoC;;;AA8P/C;;EAEG;EACD,WAAW,EAlPE,OAAsB;EAmPnC,SAAS,EAlPE,IAAoB;EAmP/B,WAAW,EAlPE,GAAsB;EAmPnC,mBAAmB,EAjPH,OAAO;EAkPvB,aAAa,EAnPE,OAAwB;;AAsPzC,EAAG;EACD,WAAwB,EArPX,MAAM;;;AA2PjB;QACG;EACD,WAAwB,EA1Pb,OAAY;EA2PvB,aAAa,EAAE,CAAC;AAMlB,+CAAM;EAAE,UAAU,EAAE,OAAO;AAG7B,SAAS;EAAE,eAAe,EAAE,MAAM;EAAE,WAAwB,EAvQ/C,MAAM;AAwQnB,SAAS;EAAE,eAAe,EAAE,MAAM;EAAE,WAAwB,EAxQ/C,MAAM;AAyQnB,OAAO;EAAE,eAAe,EAAE,IAAI;EAAE,WAAwB,EAzQ3C,MAAM;;;AA6QrB,EAAG;EACD,WAAwB,EA7QH,MAAM;EA+QzB;UACG;IACD,WAAwB,EA/Qb,OAAY;IAgRvB,aAAa,EAAE,CAAC;;AAMtB,UAAW;EACT,eAAe,EAAE,IAAI;EACrB,WAAwB,EAzRD,CAAC;EA4RtB;kBACG;IACD,WAAwB,EA7Rb,OAAY;IA8RvB,aAAa,EAAE,CAAC;IAChB,UAAU,EAAE,IAAI;;;AAOpB,KAAG;EACD,aAAa,EArSkB,MAAK;EAsSpC,WAAW,EApQY,IAAiB;AAsQ1C,KAAG;EAAE,aAAa,EAvSQ,OAAY;;;AA2SxC;OACQ;EACN,cAAc,EAAE,SAAS;EACzB,SAAS,EAAE,GAAG;EACd,KAAK,EpCjEO,IAAI;EoCkEhB,MAAM,EpCwBQ,IAAI;;AoCtBpB,IAAK;EACH,cAAc,EAAE,IAAI;EACpB,WAAS;IACP,aAAa,EA1SD,kBAAsB;;;AA+StC,UAAW;EACT,MAAM,EAAE,WAA4B;EACpC,OAAO,EAxTQ,6BAAmB;EAyTlC,WAAwB,EAxTV,iBAAqB;EA0TnC,eAAK;IACH,OAAO,EAAE,KAAK;IACd,SAAS,EA3TW,SAAY;IA4ThC,KAAK,EA1TgB,OAA2B;IA2ThD,sBAAS;MACP,OAAO,EAAE,aAAa;IAGxB;6BACU;MACR,KAAK,EAjUc,OAA2B;;AAqUpD;YACa;EACX,WAAW,EAxXO,GAAG;EAyXrB,KAAK,EA7Ua,OAAgD;;;AAiVpE,MAAO;EACL,OAAO,EAAE,YAAY;EACrB,MAAM,EAvUS,aAAkB;EAwUjC,MAAM,EAAE,iBAA6E;EACrF,OAAO,EA1US,gBAAe;EA4U/B,SAAG;IACD,MAAM,EAAE,CAAC;IACT,OAAO,EAAE,KAAK;EAEhB,UAAI;IACF,WAAW,EA9TY,IAAiB;IA+TxC,SAAS,EAxUgB,SAAY;;AA6UvC,gBAAS;EAAE,WAAW,EApUG,IAAiB;AAsU1C,YAAK;EACH,MAAM,EvB/ZU,OAAqB;EuBgarC,eAAe,EAvUY,IAAI;EAwU/B,WAAW,EAzUY,IAAiB;EA0UxC,MAAM,EAAE,IAAI;EACZ,OAAO,EA9UY,WAAa;;AAmVpC,6CAAqB;EACnB,sBAAuB;IAAE,WAAW,EA/brB,GAAG;;EAgclB,EAAG;IAAE,SAAS,EA1bL,OAAY;;EA2brB,EAAG;IAAE,SAAS,EA1bL,SAAY;;EA2brB,EAAG;IAAE,SAAS,EA1bL,SAAY;;EA2brB,EAAG;IAAE,SAAS,EA1bL,SAAY;;EA2brB,EAAG;IAAE,SAAS,EA1bL,QAAY;;EA2brB,EAAG;IAAE,SAAS,EA1bL,IAAI;;;;;;;AAqcb,YAAa;EACX,CAAE;IACA,UAAU,EAAE,sBAAsB;IAClC,KAAK,EAAE,kBAAiB;;IACxB,UAAU,EAAE,eAAe;IAC3B,WAAW,EAAE,eAAe;;EAG9B;WACU;IAAE,eAAe,EAAE,SAAS;;EACtC,aAAc;IAAE,OAAO,EAAE,mBAAmB;;EAE5C,iBAAkB;IAAE,OAAO,EAAE,oBAAoB;;EAGjD;;oBAEmB;IAAE,OAAO,EAAE,EAAE;;EAEhC;YACW;IACT,MAAM,EAAE,iBAAmB;IAC3B,iBAAiB,EAAE,KAAK;;EAG1B,KAAM;IAAE,OAAO,EAAE,kBAAkB;;;EAEnC;KACI;IAAE,iBAAiB,EAAE,KAAK;;EAE9B,GAAI;IAAE,SAAS,EAAE,eAAe;;EAEhC,KAAgC;IAAxB,MAAM,EA9XP,MAAM;EAgYb;;IAEG;IACD,OAAO,EAAE,CAAC;IACV,MAAM,EAAE,CAAC;;EAGX;IACG;IAAE,gBAAgB,EAAE,KAAK;AC5GhC,gBAAiB;EAtUnB,2BAA2B,EAAE,MAAM;EAKnC,QAAQ,EAAE,QAAQ;EAClB,KAAK,EAAE,IAAI;EAwDX,QAAQ,EAAE,MAAM;EAChB,gHAGW;IAAE,UAAU,EAAE,IAAI;IAAE,0BAA0B,EAAE,KAAK;;AAqQ9D,WAAY;EAlUd,QAAQ,EAAE,QAAQ;EAClB,KAAK,EAAE,IAAI;EAsEX,kBAAkB,EAAE,4BAAsB;EAC1C,eAAe,EAAE,yBAAmB;EACpC,cAAc,EAAE,wBAAkB;EAClC,aAAa,EAAE,uBAAiB;EAChC,UAAU,EAAE,oBAAc;ErCyE1B,qCAAkB;IAAE,OAAO,EAAE,GAAG;IAAE,OAAO,EAAE,KAAK;EAChD,iBAAQ;IAAE,KAAK,EAAE,IAAI;;AqC+KnB,QAAS;EAzUX,2BAA2B,EAAE,MAAM;EAyFnC,UAAU,EA/II,OAAI;EAgJlB,KAAK,EAvHkB,OAAM;EAwH7B,MAAM,EAnHkB,SAAc;EAoHtC,WAAW,EApHa,SAAc;EAuHtC,QAAQ,EAAE,QAAQ;EAIlB,4EAAuB;IACrB,KAAK,EAjIgB,OAAM;IAkI3B,WAAW,EAlJgB,IAAiB;IAmJ5C,WAAW,EA9HW,SAAc;IA+HpC,MAAM,EAlKa,CAAC;EAoKtB,kDAAe;IAAE,SAAS,EDvKb,QAAY;;ACyYvB,WAAY;EA5Nd,MAAM,EAvIkB,SAAc;EAwItC,QAAQ,EAAE,QAAQ;EAClB,GAAG,EAAE,CAAC;EACN,KAAK,EA1ImB,SAAc;EA4IpC,YAAY,EAtLc,iBAA2B;EAwLrD,IAAI,EAAE,CAAC;;AAsNP,YAAa;EA7Nf,MAAM,EAvIkB,SAAc;EAwItC,QAAQ,EAAE,QAAQ;EAClB,GAAG,EAAE,CAAC;EACN,KAAK,EA1ImB,SAAc;EAiJpC,WAAW,EA3Le,iBAA2B;EA6LrD,KAAK,EAAC,CAAC;;AAmNP,gBAAiB;EA9MnB,MAAM,EAxJkB,SAAc;EAyJtC,OAAO,EAvMe,UAAe;EAwMrC,QAAQ,EAAE,QAAQ;EAClB,UAAU,EAAE,MAAM;EAClB,GAAG,EAAE,CAAC;EACJ,qBAAO;IAAE,UAAU,EAAE,IAAI;EACzB,sBAAQ;IAAE,UAAU,EAAE,KAAK;EAI7B,qBAAO;IACL,IAAI,EAAE,CAAC;IACP,KAAK,EApKiB,SAAc;EAsKtC,sBAAQ;IACN,IAAI,EAvKkB,SAAc;IAwKpC,KAAK,EAAE,CAAC;EAEV,uBAAS;IACP,IAAI,EA3KkB,SAAc;IA4KpC,KAAK,EA5KiB,SAAc;;AA0WpC,mBAAoB;EAClB,KAAK,EAhXc,OAAM;EAiXzB,OAAO,EAAE,KAAK;EACd,MAAM,EA7Wc,SAAc;EA8WlC,OAAO,EA7Wc,CAAC;EA8WtB,QAAQ,EAAE,QAAQ;EAClB,WAAW,EAlXc,SAAY;EAmXrC,SAAS,EAAE,oBAAkB;EAC7B,KAAK,EAlXe,SAAc;ErCsItC,+BAAY;IACV,OAAO,EAAE,EAAE;IACX,OAAO,EAAE,KAAK;IACd,MAAM,EAAE,CAAC;IACT,QAAQ,EAAE,QAAQ;IAOd,GAAG,EAAE,GAAG;IACR,UAAU,EAAE,OAAW;IAMvB,IAAI,EAAE,UAAoC;IAS9C,UAAU,EACR,4DAAuB;IAGzB,KAAK,EqClKqB,IAAY;ErCoKxC,oCAAiB;IACf,UAAU,EACR,4DAA6B;;AqCyN/B,qBAAsB;EA1WxB,2BAA2B,EAAE,MAAM;EAqBnC,UAAU,EA3EI,OAAI;EA4ElB,MAAM,EAAE,CAAC;EACT,UAAU,EAAE,WAAW;EACvB,0BAA0B,EAAE,KAAK;EACjC,kBAAkB,EAAE,wBAAwB;EAC5C,UAAU,EAAE,MAAM;EAClB,UAAU,EAAE,IAAI;EAChB,QAAQ,EAAE,QAAQ;EAClB,UAAU,EAAE,uBAAuB;EACnC,KAAK,EAtFY,SAAa;EAuF9B,OAAO,EAAE,IAAI;EArBb,iBAAiB,EAAE,wBAA0B;EAC1C,cAAc,EAAE,wBAA0B;EACzC,aAAa,EAAE,mBAAmB;EACjC,YAAY,EAAE,wBAA0B;EACrC,SAAS,EAAE,wBACrB;EAoBI,IAAI,EAAE,CAAC;EACP,GAAG,EAAE,CAAC;EAhBR,uBAAE;IApBF,2BAA2B,EAAE,MAAM;;AA2WjC,sBAAuB;EA3WzB,2BAA2B,EAAE,MAAM;EAqBnC,UAAU,EA3EI,OAAI;EA4ElB,MAAM,EAAE,CAAC;EACT,UAAU,EAAE,WAAW;EACvB,0BAA0B,EAAE,KAAK;EACjC,kBAAkB,EAAE,wBAAwB;EAC5C,UAAU,EAAE,MAAM;EAClB,UAAU,EAAE,IAAI;EAChB,QAAQ,EAAE,QAAQ;EAClB,UAAU,EAAE,uBAAuB;EACnC,KAAK,EAtFY,SAAa;EAuF9B,OAAO,EAAE,IAAI;EArBb,iBAAiB,EAAE,uBAA0B;EAC1C,cAAc,EAAE,uBAA0B;EACzC,aAAa,EAAE,kBAAmB;EACjC,YAAY,EAAE,uBAA0B;EACrC,SAAS,EAAE,uBACrB;EAyBI,KAAK,EAAE,CAAC;EACR,GAAG,EAAE,CAAC;EArBR,wBAAE;IApBF,2BAA2B,EAAE,MAAM;;AA4WjC,oBAAqB;EA5WvB,2BAA2B,EAAE,MAAM;EAqBnC,UAAU,EA3EI,OAAI;EA4ElB,MAAM,EAAE,CAAC;EACT,UAAU,EAAE,WAAW;EACvB,0BAA0B,EAAE,KAAK;EACjC,kBAAkB,EAAE,wBAAwB;EAC5C,UAAU,EAAE,MAAM;EAClB,UAAU,EAAE,IAAI;EAChB,QAAQ,EAAE,QAAQ;EAClB,UAAU,EAAE,uBAAuB;EACnC,KAAK,EAtFY,SAAa;EAuF9B,OAAO,EAAE,IAAI;EArBb,iBAAiB,EAAE,wBAA0B;EAC1C,cAAc,EAAE,wBAA0B;EACzC,aAAa,EAAE,mBAAmB;EACjC,YAAY,EAAE,wBAA0B;EACrC,SAAS,EAAE,wBACrB;EA8BI,GAAG,EAAE,CAAC;EACN,KAAK,EAAE,IAAI;EACX,MAAM,EAtGU,QAAa;EA2E/B,sBAAE;IApBF,2BAA2B,EAAE,MAAM;;AA6WjC,uBAAwB;EA7W1B,2BAA2B,EAAE,MAAM;EAqBnC,UAAU,EA3EI,OAAI;EA4ElB,MAAM,EAAE,CAAC;EACT,UAAU,EAAE,WAAW;EACvB,0BAA0B,EAAE,KAAK;EACjC,kBAAkB,EAAE,wBAAwB;EAC5C,UAAU,EAAE,MAAM;EAClB,UAAU,EAAE,IAAI;EAChB,QAAQ,EAAE,QAAQ;EAClB,UAAU,EAAE,uBAAuB;EACnC,KAAK,EAtFY,SAAa;EAuF9B,OAAO,EAAE,IAAI;EArBb,iBAAiB,EAAE,uBAA0B;EAC1C,cAAc,EAAE,uBAA0B;EACzC,aAAa,EAAE,kBAAmB;EACjC,YAAY,EAAE,uBAA0B;EACrC,SAAS,EAAE,uBACrB;EAoCI,MAAM,EAAE,CAAC;EACT,KAAK,EAAE,IAAI;EACX,MAAM,EA5GU,QAAa;EA2E/B,yBAAE;IApBF,2BAA2B,EAAE,MAAM;;AA+WjC,kBAAmB;EApNrB,eAAe,EAAE,IAAI;EACrB,MAAM,EAAC,CAAC;EACR,OAAO,EAAC,CAAC;EAGP,2BAAM;IACJ,UAAU,EA7MM,OAAQ;IA8MxB,aAAa,EArMa,IAA+B;IAsMzD,UAAU,EAvMa,iBAA4B;IAwMnD,KAAK,EApNc,OAAS;IAqN5B,OAAO,EAAE,KAAK;IACd,SAAS,EApNc,OAAY;IAqNnC,WAAW,EApNc,IAAiB;IAqN1C,MAAM,EAjNa,CAAC;IAkNpB,OAAO,EA1Nc,gBAAmB;IA2NxC,cAAc,EAzNc,SAAS;EA2NvC,uBAAE;IACA,aAAa,EAnNa,iBAAwD;IAoNlF,KAAK,EArNa,wBAAgB;IAsNlC,OAAO,EAAE,KAAK;IACd,OAAO,EAxNa,UAAgB;IAyNpC,UAAU,EAAE,qBAAqB;IACjC,6BAAQ;MACN,UAAU,EAxOI,OAAyC;IA0OzD,8BAAS;MACP,UAAU,EA1OK,OAAyC;;AAya1D,yBAAc;EA3WlB,iBAAiB,EAAE,4BAA0B;EAC1C,cAAc,EAAE,4BAA0B;EACzC,aAAa,EAAE,uBAAmB;EACjC,YAAY,EAAE,4BAA0B;EACrC,SAAS,EAAE,4BACrB;AAyWM,4BAAiB;EAxXrB,2BAA2B,EAAE,MAAM;EAkMnC,UAAU,EA9MoB,2DAA2B;EA+MzD,MAAM,EAhNoB,OAAO;EAiNjC,UAAU,EAlNoB,qBAAsB;EAqNpD,2BAA2B,EAAE,WAAa;EAC1C,UAAU,EAnNoB,wBAAgB;EAoN9C,MAAM,EAAE,CAAC;EACT,OAAO,EAAE,KAAK;EACd,IAAI,EAAE,CAAC;EACP,QAAQ,EAAE,QAAQ;EAClB,KAAK,EAAE,CAAC;EACR,GAAG,EAAE,CAAC;EACN,OAAO,EAAE,IAAI;EAEb,6CAAqB;IACnB,kCAAQ;MACN,UAAU,EA7NsB,yBAAiB;;AAsYjD,wBAAc;EAlXlB,iBAAiB,EAAE,6BAA0B;EAC1C,cAAc,EAAE,6BAA0B;EACzC,aAAa,EAAE,wBAAmB;EACjC,YAAY,EAAE,6BAA0B;EACrC,SAAS,EAAE,6BACrB;AAiXM,2BAAiB;EAhYrB,2BAA2B,EAAE,MAAM;EAkMnC,UAAU,EA9MoB,2DAA2B;EA+MzD,MAAM,EAhNoB,OAAO;EAiNjC,UAAU,EAlNoB,qBAAsB;EAqNpD,2BAA2B,EAAE,WAAa;EAC1C,UAAU,EAnNoB,wBAAgB;EAoN9C,MAAM,EAAE,CAAC;EACT,OAAO,EAAE,KAAK;EACd,IAAI,EAAE,CAAC;EACP,QAAQ,EAAE,QAAQ;EAClB,KAAK,EAAE,CAAC;EACR,GAAG,EAAE,CAAC;EACN,OAAO,EAAE,IAAI;EAEb,6CAAqB;IACnB,iCAAQ;MACN,UAAU,EA7NsB,yBAAiB;;AA6YjD,uBAAc;EAzXlB,iBAAiB,EAAE,4BAA0B;EAC1C,cAAc,EAAE,4BAA0B;EACzC,aAAa,EAAE,uBAAmB;EACjC,YAAY,EAAE,4BAA0B;EACrC,SAAS,EAAE,4BACrB;AAwXM,0BAAiB;EAvYrB,2BAA2B,EAAE,MAAM;EAkMnC,UAAU,EA9MoB,2DAA2B;EA+MzD,MAAM,EAhNoB,OAAO;EAiNjC,UAAU,EAlNoB,qBAAsB;EAqNpD,2BAA2B,EAAE,WAAa;EAC1C,UAAU,EAnNoB,wBAAgB;EAoN9C,MAAM,EAAE,CAAC;EACT,OAAO,EAAE,KAAK;EACd,IAAI,EAAE,CAAC;EACP,QAAQ,EAAE,QAAQ;EAClB,KAAK,EAAE,CAAC;EACR,GAAG,EAAE,CAAC;EACN,OAAO,EAAE,IAAI;EAEb,6CAAqB;IACnB,gCAAQ;MACN,UAAU,EA7NsB,yBAAiB;;AAoZjD,0BAAc;EAhYlB,iBAAiB,EAAE,2BAA0B;EAC1C,cAAc,EAAE,2BAA0B;EACzC,aAAa,EAAE,sBAAmB;EACjC,YAAY,EAAE,2BAA0B;EACrC,SAAS,EAAE,2BACrB;AA+XM,6BAAiB;EA9YrB,2BAA2B,EAAE,MAAM;EAkMnC,UAAU,EA9MoB,2DAA2B;EA+MzD,MAAM,EAhNoB,OAAO;EAiNjC,UAAU,EAlNoB,qBAAsB;EAqNpD,2BAA2B,EAAE,WAAa;EAC1C,UAAU,EAnNoB,wBAAgB;EAoN9C,MAAM,EAAE,CAAC;EACT,OAAO,EAAE,KAAK;EACd,IAAI,EAAE,CAAC;EACP,QAAQ,EAAE,QAAQ;EAClB,KAAK,EAAE,CAAC;EACR,GAAG,EAAE,CAAC;EACN,OAAO,EAAE,IAAI;EAEb,6CAAqB;IACnB,mCAAQ;MACN,UAAU,EA7NsB,yBAAiB;;AA2ZjD;mFAC8C;EAC5C,aAAa,EAAE,IAAI;EACnB,iBAAiB,EAAE,IAAI;EACvB,cAAc,EAAE,IAAI;EACpB,YAAY,EAAE,IAAI;EAClB,SAAS,EAAE,IAAI;EACf,OAAO,EAAE,IAAI;AAEf,mCAAiB;EA1ZrB,2BAA2B,EAAE,MAAM;EAkMnC,UAAU,EA9MoB,2DAA2B;EA+MzD,MAAM,EAhNoB,OAAO;EAiNjC,UAAU,EAlNoB,qBAAsB;EAqNpD,2BAA2B,EAAE,WAAa;EAC1C,UAAU,EAnNoB,wBAAgB;EAoN9C,MAAM,EAAE,CAAC;EACT,OAAO,EAAE,KAAK;EACd,IAAI,EAAE,CAAC;EACP,QAAQ,EAAE,QAAQ;EAClB,KAAK,EAAE,CAAC;EACR,GAAG,EAAE,CAAC;EACN,OAAO,EAAE,IAAI;EAEb,6CAAqB;IACnB,yCAAQ;MACN,UAAU,EA7NsB,yBAAiB;;AAuajD,8CAAuB;EACrB,aAAa,EAAE,IAAI;EACnB,iBAAiB,EAAE,IAAI;EACvB,cAAc,EAAE,IAAI;EACpB,YAAY,EAAE,IAAI;EAClB,SAAS,EAAE,IAAI;EACf,OAAO,EAAE,IAAI;AAEf,wCAAiB;EArarB,2BAA2B,EAAE,MAAM;EAkMnC,UAAU,EA9MoB,2DAA2B;EA+MzD,MAAM,EAhNoB,OAAO;EAiNjC,UAAU,EAlNoB,qBAAsB;EAqNpD,2BAA2B,EAAE,WAAa;EAC1C,UAAU,EAnNoB,wBAAgB;EAoN9C,MAAM,EAAE,CAAC;EACT,OAAO,EAAE,KAAK;EACd,IAAI,EAAE,CAAC;EACP,QAAQ,EAAE,QAAQ;EAClB,KAAK,EAAE,CAAC;EACR,GAAG,EAAE,CAAC;EACN,OAAO,EAAE,IAAI;EAEb,6CAAqB;IACnB,8CAAQ;MACN,UAAU,EA7NsB,yBAAiB;;AAkbjD,8CAAsB;EACpB,aAAa,EAAE,IAAI;EACnB,iBAAiB,EAAE,IAAI;EACvB,cAAc,EAAE,IAAI;EACpB,YAAY,EAAE,IAAI;EAClB,SAAS,EAAE,IAAI;EACf,OAAO,EAAE,IAAI;AAEf,yCAAiB;EAhbrB,2BAA2B,EAAE,MAAM;EAkMnC,UAAU,EA9MoB,2DAA2B;EA+MzD,MAAM,EAhNoB,OAAO;EAiNjC,UAAU,EAlNoB,qBAAsB;EAqNpD,2BAA2B,EAAE,WAAa;EAC1C,UAAU,EAnNoB,wBAAgB;EAoN9C,MAAM,EAAE,CAAC;EACT,OAAO,EAAE,KAAK;EACd,IAAI,EAAE,CAAC;EACP,QAAQ,EAAE,QAAQ;EAClB,KAAK,EAAE,CAAC;EACR,GAAG,EAAE,CAAC;EACN,OAAO,EAAE,IAAI;EAEb,6CAAqB;IACnB,+CAAQ;MACN,UAAU,EA7NsB,yBAAiB;;AA6bjD,8CAAwB;EACtB,aAAa,EAAE,IAAI;EACnB,iBAAiB,EAAE,IAAI;EACvB,cAAc,EAAE,IAAI;EACpB,YAAY,EAAE,IAAI;EAClB,SAAS,EAAE,IAAI;EACf,OAAO,EAAE,IAAI;AAEf,uCAAiB;EA3brB,2BAA2B,EAAE,MAAM;EAkMnC,UAAU,EA9MoB,2DAA2B;EA+MzD,MAAM,EAhNoB,OAAO;EAiNjC,UAAU,EAlNoB,qBAAsB;EAqNpD,2BAA2B,EAAE,WAAa;EAC1C,UAAU,EAnNoB,wBAAgB;EAoN9C,MAAM,EAAE,CAAC;EACT,OAAO,EAAE,KAAK;EACd,IAAI,EAAE,CAAC;EACP,QAAQ,EAAE,QAAQ;EAClB,KAAK,EAAE,CAAC;EACR,GAAG,EAAE,CAAC;EACN,OAAO,EAAE,IAAI;EAEb,6CAAqB;IACnB,6CAAQ;MACN,UAAU,EA7NsB,yBAAiB;;AAwcjD,8CAAqB;EACnB,aAAa,EAAE,IAAI;EACnB,iBAAiB,EAAE,IAAI;EACvB,cAAc,EAAE,IAAI;EACpB,YAAY,EAAE,IAAI;EAClB,SAAS,EAAE,IAAI;EACf,OAAO,EAAE,IAAI;AAEf,0CAAiB;EAtcrB,2BAA2B,EAAE,MAAM;EAkMnC,UAAU,EA9MoB,2DAA2B;EA+MzD,MAAM,EAhNoB,OAAO;EAiNjC,UAAU,EAlNoB,qBAAsB;EAqNpD,2BAA2B,EAAE,WAAa;EAC1C,UAAU,EAnNoB,wBAAgB;EAoN9C,MAAM,EAAE,CAAC;EACT,OAAO,EAAE,KAAK;EACd,IAAI,EAAE,CAAC;EACP,QAAQ,EAAE,QAAQ;EAClB,KAAK,EAAE,CAAC;EACR,GAAG,EAAE,CAAC;EACN,OAAO,EAAE,IAAI;EAEb,6CAAqB;IACnB,gDAAQ;MACN,UAAU,EA7NsB,yBAAiB;;AAqdjD,uCAAsB;EAAE,IAAI,EAAE,UAAoB;AAClD,wCAAuB;EAAE,KAAK,EAAE,UAAoB;AACpD,sCAAqB;EAAE,GAAG,EAAE,SAAqB;AACjD,yCAAwB;EAAE,MAAM,EAAE,SAAqB;AAEvD,0CAAyB;EAAE,KAAK,EAxgBnB,SAAa;AAygB1B,2CAA0B;EAAE,IAAI,EAzgBnB,SAAa;AA0gB1B,yCAAwB;EAAE,KAAK,EAzgBjB,QAAa;AA0gB3B,4CAA2B;EAAE,IAAI,EA1gBnB,QAAa;;AA+gB7B,aAAc;EAxdhB,2BAA2B,EAAE,MAAM;EA8NnC,0BAA0B,EAAE,KAAK;EACjC,UAAU,EArRI,OAAI;EAsRlB,MAAM,EAAE,CAAC;EACT,UAAU,EAAE,WAAW;EACvB,MAAM,EAAE,CAAC;EACT,UAAU,EAAE,MAAM;EAClB,UAAU,EAAE,IAAI;EAChB,QAAQ,EAAE,QAAQ;EAClB,GAAG,EAAE,CAAC;EACN,KAAK,EA/RY,SAAa;EAgS9B,MAAM,EA/RY,QAAa;EAgS/B,OAAO,EAAE,IAAI;EA/Nb,iBAAiB,EAAE,wBAA0B;EAC1C,cAAc,EAAE,wBAA0B;EACzC,aAAa,EAAE,mBAAmB;EACjC,YAAY,EAAE,wBAA0B;EACrC,SAAS,EAAE,wBACrB;EA6NI,IAAI,EAAE,CAAC;EAgBT,kBAAkB,EAAE,4BAAsB;EAC1C,eAAe,EAAE,yBAAmB;EACpC,cAAc,EAAE,wBAAkB;EAClC,aAAa,EAAE,uBAAiB;EAChC,UAAU,EAAE,oBAAc;EAnC1B,eAAE;IA7NF,2BAA2B,EAAE,MAAM;EAmQnC,uBAAU;IACR,UAAU,EAzSO,IAAI;IA0SrB,aAAa,EAxSe,IAA+B;IAyS3D,UAAU,EA1Se,iBAA4B;IA2SrD,KAAK,EAvTgB,OAAS;IAwT9B,WAAW,EArTgB,IAAiB;IAsT5C,OAAO,EA1TgB,gBAAmB;IA2T1C,cAAc,EAzTgB,SAAS;IAiUvC,MAAM,EA3Te,CAAC;IAqTtB,6BAAQ;MACN,UAAU,EA/SW,OAAkD;MAgTvE,aAAa,EA9SmB,IAAI;MA+SpC,UAAU,EAhTmB,iBAA6D;IAqUxF,8BAAS;MAUb,OAAO,EAAE,KAAK;MAIZ,YAAY,EAAE,KAAK;MAWvB,OAAO,EAAE,MAAM;EA6JX,gGAA6D;IAhdjE,iBAAiB,EAAE,qBAA0B;IAC1C,cAAc,EAAE,qBAA0B;IACzC,aAAa,EAAE,gBAAmB;IACjC,YAAY,EAAE,qBAA0B;IACrC,SAAS,EAAE,qBACrB;;AAgdI,cAAe;EA/djB,2BAA2B,EAAE,MAAM;EA8NnC,0BAA0B,EAAE,KAAK;EACjC,UAAU,EArRI,OAAI;EAsRlB,MAAM,EAAE,CAAC;EACT,UAAU,EAAE,WAAW;EACvB,MAAM,EAAE,CAAC;EACT,UAAU,EAAE,MAAM;EAClB,UAAU,EAAE,IAAI;EAChB,QAAQ,EAAE,QAAQ;EAClB,GAAG,EAAE,CAAC;EACN,KAAK,EA/RY,SAAa;EAgS9B,MAAM,EA/RY,QAAa;EAgS/B,OAAO,EAAE,IAAI;EA/Nb,iBAAiB,EAAE,uBAA0B;EAC1C,cAAc,EAAE,uBAA0B;EACzC,aAAa,EAAE,kBAAmB;EACjC,YAAY,EAAE,uBAA0B;EACrC,SAAS,EAAE,uBACrB;EAiOI,KAAK,EAAE,CAAC;EAYV,kBAAkB,EAAE,4BAAsB;EAC1C,eAAe,EAAE,yBAAmB;EACpC,cAAc,EAAE,wBAAkB;EAClC,aAAa,EAAE,uBAAiB;EAChC,UAAU,EAAE,oBAAc;EAnC1B,gBAAE;IA7NF,2BAA2B,EAAE,MAAM;EAmQnC,wBAAU;IACR,UAAU,EAzSO,IAAI;IA0SrB,aAAa,EAxSe,IAA+B;IAyS3D,UAAU,EA1Se,iBAA4B;IA2SrD,KAAK,EAvTgB,OAAS;IAwT9B,WAAW,EArTgB,IAAiB;IAsT5C,OAAO,EA1TgB,gBAAmB;IA2T1C,cAAc,EAzTgB,SAAS;IAiUvC,MAAM,EA3Te,CAAC;IAqTtB,8BAAQ;MACN,UAAU,EA/SW,OAAkD;MAgTvE,aAAa,EA9SmB,IAAI;MA+SpC,UAAU,EAhTmB,iBAA6D;IA0TxF,8BAAQ;MA6BZ,OAAO,EAAE,KAAK;MAIZ,WAAW,EAAE,KAAK;MAGtB,OAAO,EAAE,MAAM;EAoKX,iGAA2D;IAvd/D,iBAAiB,EAAE,qBAA0B;IAC1C,cAAc,EAAE,qBAA0B;IACzC,aAAa,EAAE,gBAAmB;IACjC,YAAY,EAAE,qBAA0B;IACrC,SAAS,EAAE,qBACrB;;AAudI,YAAa;EAtef,2BAA2B,EAAE,MAAM;EA8NnC,0BAA0B,EAAE,KAAK;EACjC,UAAU,EArRI,OAAI;EAsRlB,MAAM,EAAE,CAAC;EACT,UAAU,EAAE,WAAW;EACvB,MAAM,EAAE,CAAC;EACT,UAAU,EAAE,MAAM;EAClB,UAAU,EAAE,IAAI;EAChB,QAAQ,EAAE,QAAQ;EAClB,GAAG,EAAE,CAAC;EACN,KAAK,EA/RY,SAAa;EAgS9B,MAAM,EA/RY,QAAa;EAgS/B,OAAO,EAAE,IAAI;EA/Nb,iBAAiB,EAAE,wBAA0B;EAC1C,cAAc,EAAE,wBAA0B;EACzC,aAAa,EAAE,mBAAmB;EACjC,YAAY,EAAE,wBAA0B;EACrC,SAAS,EAAE,wBACrB;EAqOI,GAAG,EAAE,CAAC;EACN,KAAK,EAAE,IAAI;EAOb,kBAAkB,EAAE,4BAAsB;EAC1C,eAAe,EAAE,yBAAmB;EACpC,cAAc,EAAE,wBAAkB;EAClC,aAAa,EAAE,uBAAiB;EAChC,UAAU,EAAE,oBAAc;EAnC1B,cAAE;IA7NF,2BAA2B,EAAE,MAAM;EAmQnC,sBAAU;IACR,UAAU,EAzSO,IAAI;IA0SrB,aAAa,EAxSe,IAA+B;IAyS3D,UAAU,EA1Se,iBAA4B;IA2SrD,KAAK,EAvTgB,OAAS;IAwT9B,WAAW,EArTgB,IAAiB;IAsT5C,OAAO,EA1TgB,gBAAmB;IA2T1C,cAAc,EAzTgB,SAAS;IAiUvC,MAAM,EA3Te,CAAC;IAqTtB,4BAAQ;MACN,UAAU,EA/SW,OAAkD;MAgTvE,aAAa,EA9SmB,IAAI;MA+SpC,UAAU,EAhTmB,iBAA6D;EAygB1F,+FAA+D;IA9dnE,iBAAiB,EAAE,qBAA0B;IAC1C,cAAc,EAAE,qBAA0B;IACzC,aAAa,EAAE,gBAAmB;IACjC,YAAY,EAAE,qBAA0B;IACrC,SAAS,EAAE,qBACrB;;AA8dI,eAAgB;EA7elB,2BAA2B,EAAE,MAAM;EA8NnC,0BAA0B,EAAE,KAAK;EACjC,UAAU,EArRI,OAAI;EAsRlB,MAAM,EAAE,CAAC;EACT,UAAU,EAAE,WAAW;EACvB,MAAM,EAAE,CAAC;EACT,UAAU,EAAE,MAAM;EAClB,UAAU,EAAE,IAAI;EAChB,QAAQ,EAAE,QAAQ;EAClB,GAAG,EAAE,CAAC;EACN,KAAK,EA/RY,SAAa;EAgS9B,MAAM,EA/RY,QAAa;EAgS/B,OAAO,EAAE,IAAI;EA/Nb,iBAAiB,EAAE,uBAA0B;EAC1C,cAAc,EAAE,uBAA0B;EACzC,aAAa,EAAE,kBAAmB;EACjC,YAAY,EAAE,uBAA0B;EACrC,SAAS,EAAE,uBACrB;EA0OI,MAAM,EAAE,CAAC;EACT,KAAK,EAAE,IAAI;EAEb,kBAAkB,EAAE,4BAAsB;EAC1C,eAAe,EAAE,yBAAmB;EACpC,cAAc,EAAE,wBAAkB;EAClC,aAAa,EAAE,uBAAiB;EAChC,UAAU,EAAE,oBAAc;EAnC1B,iBAAE;IA7NF,2BAA2B,EAAE,MAAM;EAmQnC,yBAAU;IACR,UAAU,EAzSO,IAAI;IA0SrB,aAAa,EAxSe,IAA+B;IAyS3D,UAAU,EA1Se,iBAA4B;IA2SrD,KAAK,EAvTgB,OAAS;IAwT9B,WAAW,EArTgB,IAAiB;IAsT5C,OAAO,EA1TgB,gBAAmB;IA2T1C,cAAc,EAzTgB,SAAS;IAiUvC,MAAM,EA3Te,CAAC;IAqTtB,+BAAQ;MACN,UAAU,EA/SW,OAAkD;MAgTvE,aAAa,EA9SmB,IAAI;MA+SpC,UAAU,EAhTmB,iBAA6D;EAghB1F,kGAAyD;IAre7D,iBAAiB,EAAE,qBAA0B;IAC1C,cAAc,EAAE,qBAA0B;IACzC,aAAa,EAAE,gBAAmB;IACjC,YAAY,EAAE,qBAA0B;IACrC,SAAS,EAAE,qBACrB;;AA6eM,iEAAkE;EAtMpE,OAAO,EAAE,KAAK;EAIZ,WAAW,EAAE,KAAK;EAGtB,OAAO,EAAE,MAAM;;AAkMX,mEAAoE;EAjNtE,OAAO,EAAE,KAAK;EAIZ,YAAY,EAAE,KAAK;EAWvB,OAAO,EAAE,MAAM;;;AChKb,kBAAmH;EACjH,maAA4B;IAC1B,OAAO,EAAE,kBAAkB;;EAE7B,maAAyB;IACvB,OAAO,EAAE,eAAe;;EAGxB,mdAA4B;ItCgClC,QAAQ,EAAE,iBAAiB;IAC3B,MAAM,EAAE,IAAI;IACZ,KAAK,EAAE,IAAI;IACX,QAAQ,EAAE,OAAO;IACjB,IAAI,EAAE,IAAI;;EsCjCJ,udAA2B;ItCkBjC,IAAI,EAAE,wBAAwB;IAC9B,MAAM,EAAE,GAAG;IACX,QAAQ,EAAE,MAAM;IAChB,QAAQ,EAAE,mBAAmB;IAC7B,KAAK,EAAE,GAAG;;EsCjBJ,ugBAA0B;IACxB,OAAO,EAAE,gBAAgB;;EAE3B,ugBAAuC;IACrC,OAAO,EAAE,6BAA6B;;EAExC,ugBAAoC;IAClC,OAAO,EAAE,0BAA0B;;EAErC,2cAA8B;IAC5B,OAAO,EAAE,SAAS;;EAEpB,w5BAA+B;IAC7B,OAAO,EAAE,qBAAqB;;AA7BpC,6CAAmH;EACjH,maAA4B;IAC1B,OAAO,EAAE,kBAAkB;;EAE7B,maAAyB;IACvB,OAAO,EAAE,eAAe;;EAGxB,mdAA4B;ItCgClC,QAAQ,EAAE,iBAAiB;IAC3B,MAAM,EAAE,IAAI;IACZ,KAAK,EAAE,IAAI;IACX,QAAQ,EAAE,OAAO;IACjB,IAAI,EAAE,IAAI;;EsCjCJ,udAA2B;ItCkBjC,IAAI,EAAE,wBAAwB;IAC9B,MAAM,EAAE,GAAG;IACX,QAAQ,EAAE,MAAM;IAChB,QAAQ,EAAE,mBAAmB;IAC7B,KAAK,EAAE,GAAG;;EsCjBJ,ugBAA0B;IACxB,OAAO,EAAE,gBAAgB;;EAE3B,ugBAAuC;IACrC,OAAO,EAAE,6BAA6B;;EAExC,ugBAAoC;IAClC,OAAO,EAAE,0BAA0B;;EAErC,2cAA8B;IAC5B,OAAO,EAAE,SAAS;;EAEpB,w5BAA+B;IAC7B,OAAO,EAAE,qBAAqB;;AA7BpC,6CAAmH;EACjH,maAA4B;IAC1B,OAAO,EAAE,kBAAkB;;EAE7B,maAAyB;IACvB,OAAO,EAAE,eAAe;;EAGxB,mdAA4B;ItCgClC,QAAQ,EAAE,iBAAiB;IAC3B,MAAM,EAAE,IAAI;IACZ,KAAK,EAAE,IAAI;IACX,QAAQ,EAAE,OAAO;IACjB,IAAI,EAAE,IAAI;;EsCjCJ,udAA2B;ItCkBjC,IAAI,EAAE,wBAAwB;IAC9B,MAAM,EAAE,GAAG;IACX,QAAQ,EAAE,MAAM;IAChB,QAAQ,EAAE,mBAAmB;IAC7B,KAAK,EAAE,GAAG;;EsCjBJ,ugBAA0B;IACxB,OAAO,EAAE,gBAAgB;;EAE3B,ugBAAuC;IACrC,OAAO,EAAE,6BAA6B;;EAExC,ugBAAoC;IAClC,OAAO,EAAE,0BAA0B;;EAErC,2cAA8B;IAC5B,OAAO,EAAE,SAAS;;EAEpB,w5BAA+B;IAC7B,OAAO,EAAE,qBAAqB;;AA7BpC,6CAAmH;EACjH,maAA4B;IAC1B,OAAO,EAAE,kBAAkB;;EAE7B,maAAyB;IACvB,OAAO,EAAE,eAAe;;EAGxB,mdAA4B;ItCgClC,QAAQ,EAAE,iBAAiB;IAC3B,MAAM,EAAE,IAAI;IACZ,KAAK,EAAE,IAAI;IACX,QAAQ,EAAE,OAAO;IACjB,IAAI,EAAE,IAAI;;EsCjCJ,udAA2B;ItCkBjC,IAAI,EAAE,wBAAwB;IAC9B,MAAM,EAAE,GAAG;IACX,QAAQ,EAAE,MAAM;IAChB,QAAQ,EAAE,mBAAmB;IAC7B,KAAK,EAAE,GAAG;;EsCjBJ,ugBAA0B;IACxB,OAAO,EAAE,gBAAgB;;EAE3B,ugBAAuC;IACrC,OAAO,EAAE,6BAA6B;;EAExC,ugBAAoC;IAClC,OAAO,EAAE,0BAA0B;;EAErC,2cAA8B;IAC5B,OAAO,EAAE,SAAS;;EAEpB,w5BAA+B;IAC7B,OAAO,EAAE,qBAAqB;;AA7BpC,8CAAmH;EACjH,maAA4B;IAC1B,OAAO,EAAE,kBAAkB;;EAE7B,maAAyB;IACvB,OAAO,EAAE,eAAe;;EAGxB,mdAA4B;ItCgClC,QAAQ,EAAE,iBAAiB;IAC3B,MAAM,EAAE,IAAI;IACZ,KAAK,EAAE,IAAI;IACX,QAAQ,EAAE,OAAO;IACjB,IAAI,EAAE,IAAI;;EsCjCJ,udAA2B;ItCkBjC,IAAI,EAAE,wBAAwB;IAC9B,MAAM,EAAE,GAAG;IACX,QAAQ,EAAE,MAAM;IAChB,QAAQ,EAAE,mBAAmB;IAC7B,KAAK,EAAE,GAAG;;EsCjBJ,ugBAA0B;IACxB,OAAO,EAAE,gBAAgB;;EAE3B,ugBAAuC;IACrC,OAAO,EAAE,6BAA6B;;EAExC,ugBAAoC;IAClC,OAAO,EAAE,0BAA0B;;EAErC,2cAA8B;IAC5B,OAAO,EAAE,SAAS;;EAEpB,w5BAA+B;IAC7B,OAAO,EAAE,qBAAqB;;AAatC;kBACmB;EAAE,OAAO,EAAE,kBAAkB;;AAChD;kBACmB;EAAE,OAAO,EAAE,eAAe;;;AAI3C,iDACoB;EAAE,OAAO,EAAE,gBAAgB;;AAG/C,iDACoB;EAAE,OAAO,EAAE,6BAA6B;;AAG5D,iDACoB;EAAE,OAAO,EAAE,0BAA0B;;AAGzD,2CACoB;EAAE,OAAO,EAAE,oBAAoB;;AAInD;;oBACoB;EAAE,OAAO,EAAE,qBAAqB;;AAGtD,+CAAqB;EACnB;oBACmB;IAAE,OAAO,EAAE,kBAAkB;;EAChD;oBACmB;IAAE,OAAO,EAAE,eAAe;;;EAI3C,iDACoB;IAAE,OAAO,EAAE,gBAAgB;;EAG/C,iDACoB;IAAE,OAAO,EAAE,6BAA6B;;EAG5D,iDACoB;IAAE,OAAO,EAAE,0BAA0B;;EAGzD,2CACoB;IAAE,OAAO,EAAE,oBAAoB;;EAInD;;sBACoB;IAAE,OAAO,EAAE,qBAAqB;AAIxD,8CAAoB;EAClB;qBACoB;IAAE,OAAO,EAAE,kBAAkB;;EACjD;qBACoB;IAAE,OAAO,EAAE,eAAe;;;EAI5C,iDACqB;IAAE,OAAO,EAAE,gBAAgB;;EAGhD,iDACqB;IAAE,OAAO,EAAE,6BAA6B;;EAG7D,iDACqB;IAAE,OAAO,EAAE,0BAA0B;;EAG1D,2CACqB;IAAE,OAAO,EAAE,oBAAoB;;EAIpD;;uBACqB;IAAE,OAAO,EAAE,qBAAqB;;AAKzD,eAAgB;EAAE,OAAO,EAAE,eAAe;;AAC1C,eAAgB;EAAE,OAAO,EAAE,kBAAkB;;AAC7C,sBAAuB;EAAE,OAAO,EAAE,kBAAkB;;AACpD,sBAAuB;EAAE,OAAO,EAAE,eAAe;;;AAGjD,oBAAqB;EAAE,OAAO,EAAE,gBAAgB;;AAChD,2BAA4B;EAAE,OAAO,EAAE,gBAAgB;;AACvD,oBAAqB;EAAE,OAAO,EAAE,6BAA6B;;AAC7D,2BAA4B;EAAE,OAAO,EAAE,6BAA6B;;AACpE,oBAAqB;EAAE,OAAO,EAAE,0BAA0B;;AAC1D,2BAA4B;EAAE,OAAO,EAAE,0BAA0B;;AACjE,iBAAkB;EAAE,OAAO,EAAE,oBAAoB;;AACjD,wBAAyB;EAAE,OAAO,EAAE,oBAAoB;;AACxD,iBAAkB;EAAE,OAAO,EAAE,qBAAqB;;AAClD,wBAAyB;EAAE,OAAO,EAAE,qBAAqB;;AACzD,iBAAkB;EAAE,OAAO,EAAE,qBAAqB;;AAClD,wBAAyB;EAAE,OAAO,EAAE,qBAAqB;;;AAGzD,YAAa;EtC1Hb,IAAI,EAAE,wBAAwB;EAC9B,MAAM,EAAE,GAAG;EACX,QAAQ,EAAE,MAAM;EAChB,QAAQ,EAAE,mBAAmB;EAC7B,KAAK,EAAE,GAAG;;AsCyHV,cAAe;EtC7Hf,IAAI,EAAE,wBAAwB;EAC9B,MAAM,EAAE,GAAG;EACX,QAAQ,EAAE,MAAM;EAChB,QAAQ,EAAE,mBAAmB;EAC7B,KAAK,EAAE,GAAG;EsC4HR,2CACS;ItCtHX,QAAQ,EAAE,iBAAiB;IAC3B,MAAM,EAAE,IAAI;IACZ,KAAK,EAAE,IAAI;IACX,QAAQ,EAAE,OAAO;IACjB,IAAI,EAAE,IAAI;;;AsCyHR;eACgB;EAAE,OAAO,EAAE,eAAe;;AAC1C,YAAa;EACX;iBACgB;IAAE,OAAO,EAAE,gBAAgB;;EAC3C;iBACgB;IAAE,OAAO,EAAE,eAAe;;EAE1C,oBAAqB;IAAE,OAAO,EAAE,gBAAgB;;EAChD,oBAAqB;IAAE,OAAO,EAAE,6BAA6B;;EAC7D,oBAAqB;IAAE,OAAO,EAAE,0BAA0B;;EAC1D,iBAAkB;IAAE,OAAO,EAAE,oBAAoB;;EACjD,iBAAkB;IAAE,OAAO,EAAE,qBAAqB;;EAClD,iBAAkB;IAAE,OAAO,EAAE,qBAAqB",
+"sources": ["../../../scss/foundation/components/_global.scss","../../../scss/foundation/components/_grid.scss","../../../scss/foundation/components/_accordion.scss","../../../scss/foundation/components/_alert-boxes.scss","../../../scss/foundation/components/_block-grid.scss","../../../scss/foundation/components/_breadcrumbs.scss","../../../scss/foundation/components/_buttons.scss","../../../scss/foundation/_functions.scss","../../../scss/foundation/components/_button-groups.scss","../../../scss/foundation/components/_clearing.scss","../../../scss/foundation/components/_dropdown.scss","../../../scss/foundation/components/_dropdown-buttons.scss","../../../scss/foundation/components/_flex-video.scss","../../../scss/foundation/components/_forms.scss","../../../scss/foundation/components/_icon-bar.scss","../../../scss/foundation/components/_inline-lists.scss","../../../scss/foundation/components/_joyride.scss","../../../scss/foundation/components/_keystrokes.scss","../../../scss/foundation/components/_labels.scss","../../../scss/foundation/components/_magellan.scss","../../../scss/foundation/components/_orbit.scss","../../../scss/foundation/components/_pagination.scss","../../../scss/foundation/components/_panels.scss","../../../scss/foundation/components/_pricing-tables.scss","../../../scss/foundation/components/_progress-bars.scss","../../../scss/foundation/components/_range-slider.scss","../../../scss/foundation/components/_reveal.scss","../../../scss/foundation/components/_side-nav.scss","../../../scss/foundation/components/_split-buttons.scss","../../../scss/foundation/components/_sub-nav.scss","../../../scss/foundation/components/_switches.scss","../../../scss/foundation/components/_tables.scss","../../../scss/foundation/components/_tabs.scss","../../../scss/foundation/components/_thumbs.scss","../../../scss/foundation/components/_tooltips.scss","../../../scss/foundation/components/_top-bar.scss","../../../scss/foundation/components/_type.scss","../../../scss/foundation/components/_offcanvas.scss","../../../scss/foundation/components/_visibility.scss"],
+"names": [],
+"file": "foundation.css"
+}
diff --git a/js/foundation/css/normalize.css.map b/js/foundation/css/normalize.css.map
new file mode 100644 (file)
index 0000000..8fc7c41
--- /dev/null
@@ -0,0 +1,7 @@
+{
+"version": 3,
+"mappings": ";;;;;;AAQA,IAAK;EACH,WAAW,EAAE,UAAU;;EACvB,oBAAoB,EAAE,IAAI;;EAC1B,wBAAwB,EAAE,IAAI;;;;;;AAOhC,IAAK;EACH,MAAM,EAAE,CAAC;;;;;;;;;;AAaX;;;;;;;;;;;;OAYQ;EACN,OAAO,EAAE,KAAK;;;;;;AAQhB;;;KAGM;EACJ,OAAO,EAAE,YAAY;;EACrB,cAAc,EAAE,QAAQ;;;;;;;AAQ1B,qBAAsB;EACpB,OAAO,EAAE,IAAI;EACb,MAAM,EAAE,CAAC;;;;;;AAQX;QACS;EACP,OAAO,EAAE,IAAI;;;;;;;AAUf,CAAE;EACA,gBAAgB,EAAE,WAAW;;;;;;AAQ/B;OACQ;EACN,OAAO,EAAE,CAAC;;;;;;;AAUZ,WAAY;EACV,aAAa,EAAE,UAAU;;;;;AAO3B;MACO;EACL,WAAW,EAAE,IAAI;;;;;AAOnB,GAAI;EACF,UAAU,EAAE,MAAM;;;;;;AAQpB,EAAG;EACD,SAAS,EAAE,GAAG;EACd,MAAM,EAAE,QAAQ;;;;;AAOlB,IAAK;EACH,UAAU,EAAE,IAAI;EAChB,KAAK,EAAE,IAAI;;;;;AAOb,KAAM;EACJ,SAAS,EAAE,GAAG;;;;;AAOhB;GACI;EACF,SAAS,EAAE,GAAG;EACd,WAAW,EAAE,CAAC;EACd,QAAQ,EAAE,QAAQ;EAClB,cAAc,EAAE,QAAQ;;AAG1B,GAAI;EACF,GAAG,EAAE,MAAM;;AAGb,GAAI;EACF,MAAM,EAAE,OAAO;;;;;;;AAUjB,GAAI;EACF,MAAM,EAAE,CAAC;;;;;AAOX,cAAe;EACb,QAAQ,EAAE,MAAM;;;;;;;AAUlB,MAAO;EACL,MAAM,EAAE,QAAQ;;;;;AAOlB,EAAG;EACD,UAAU,EAAE,WAAW;EACvB,MAAM,EAAE,CAAC;;;;;AAOX,GAAI;EACF,QAAQ,EAAE,IAAI;;;;;AAOhB;;;IAGK;EACH,WAAW,EAAE,oBAAoB;EACjC,SAAS,EAAE,GAAG;;;;;;;;;;;;;;AAkBhB;;;;QAIS;EACP,KAAK,EAAE,OAAO;;EACd,IAAI,EAAE,OAAO;;EACb,MAAM,EAAE,CAAC;;;;;;AAOX,MAAO;EACL,QAAQ,EAAE,OAAO;;;;;;;;AAUnB;MACO;EACL,cAAc,EAAE,IAAI;;;;;;;;;AAWtB;;;oBAGqB;EACnB,kBAAkB,EAAE,MAAM;;EAC1B,MAAM,EAAE,OAAO;;;;;;AAOjB;oBACqB;EACnB,MAAM,EAAE,OAAO;;;;;AAOjB;uBACwB;EACtB,MAAM,EAAE,CAAC;EACT,OAAO,EAAE,CAAC;;;;;;AAQZ,KAAM;EACJ,WAAW,EAAE,MAAM;;;;;;;;;AAWrB;mBACoB;EAClB,UAAU,EAAE,UAAU;;EACtB,OAAO,EAAE,CAAC;;;;;;;;AASZ;+CACgD;EAC9C,MAAM,EAAE,IAAI;;;;;;AAQd,oBAAqB;EACnB,kBAAkB,EAAE,SAAS;;EAC7B,UAAU,EAAE,WAAW;;;;;;;;AASzB;+CACgD;EAC9C,kBAAkB,EAAE,IAAI;;;;;AAO1B,QAAS;EACP,MAAM,EAAE,iBAAiB;EACzB,MAAM,EAAE,KAAK;EACb,OAAO,EAAE,qBAAqB;;;;;;AAQhC,MAAO;EACL,MAAM,EAAE,CAAC;;EACT,OAAO,EAAE,CAAC;;;;;;AAOZ,QAAS;EACP,QAAQ,EAAE,IAAI;;;;;;AAQhB,QAAS;EACP,WAAW,EAAE,IAAI;;;;;;;AAUnB,KAAM;EACJ,eAAe,EAAE,QAAQ;EACzB,cAAc,EAAE,CAAC;;AAGnB;EACG;EACD,OAAO,EAAE,CAAC",
+"sources": ["../../../scss/normalize.scss"],
+"names": [],
+"file": "normalize.css"
+}
diff --git a/js/foundation/js/foundation.js b/js/foundation/js/foundation.js
new file mode 100644 (file)
index 0000000..13a76a2
--- /dev/null
@@ -0,0 +1,6581 @@
+/*
+ * Foundation Responsive Library
+ * http://foundation.zurb.com
+ * Copyright 2015, ZURB
+ * Free to use under the MIT license.
+ * http://www.opensource.org/licenses/mit-license.php
+*/
+
+(function ($, window, document, undefined) {
+  'use strict';
+
+  var header_helpers = function (class_array) {
+    var head = $('head');
+    head.prepend($.map(class_array, function (class_name) {
+      if (head.has('.' + class_name).length === 0) {
+        return '<meta class="' + class_name + '" />';
+      }
+    }));
+  };
+
+  header_helpers([
+    'foundation-mq-small',
+    'foundation-mq-small-only',
+    'foundation-mq-medium',
+    'foundation-mq-medium-only',
+    'foundation-mq-large',
+    'foundation-mq-large-only',
+    'foundation-mq-xlarge',
+    'foundation-mq-xlarge-only',
+    'foundation-mq-xxlarge',
+    'foundation-data-attribute-namespace']);
+
+  // Enable FastClick if present
+
+  $(function () {
+    if (typeof FastClick !== 'undefined') {
+      // Don't attach to body if undefined
+      if (typeof document.body !== 'undefined') {
+        FastClick.attach(document.body);
+      }
+    }
+  });
+
+  // private Fast Selector wrapper,
+  // returns jQuery object. Only use where
+  // getElementById is not available.
+  var S = function (selector, context) {
+    if (typeof selector === 'string') {
+      if (context) {
+        var cont;
+        if (context.jquery) {
+          cont = context[0];
+          if (!cont) {
+            return context;
+          }
+        } else {
+          cont = context;
+        }
+        return $(cont.querySelectorAll(selector));
+      }
+
+      return $(document.querySelectorAll(selector));
+    }
+
+    return $(selector, context);
+  };
+
+  // Namespace functions.
+
+  var attr_name = function (init) {
+    var arr = [];
+    if (!init) {
+      arr.push('data');
+    }
+    if (this.namespace.length > 0) {
+      arr.push(this.namespace);
+    }
+    arr.push(this.name);
+
+    return arr.join('-');
+  };
+
+  var add_namespace = function (str) {
+    var parts = str.split('-'),
+        i = parts.length,
+        arr = [];
+
+    while (i--) {
+      if (i !== 0) {
+        arr.push(parts[i]);
+      } else {
+        if (this.namespace.length > 0) {
+          arr.push(this.namespace, parts[i]);
+        } else {
+          arr.push(parts[i]);
+        }
+      }
+    }
+
+    return arr.reverse().join('-');
+  };
+
+  // Event binding and data-options updating.
+
+  var bindings = function (method, options) {
+    var self = this,
+        bind = function(){
+          var $this = S(this),
+              should_bind_events = !$this.data(self.attr_name(true) + '-init');
+          $this.data(self.attr_name(true) + '-init', $.extend({}, self.settings, (options || method), self.data_options($this)));
+
+          if (should_bind_events) {
+            self.events(this);
+          }
+        };
+
+    if (S(this.scope).is('[' + this.attr_name() +']')) {
+      bind.call(this.scope);
+    } else {
+      S('[' + this.attr_name() +']', this.scope).each(bind);
+    }
+    // # Patch to fix #5043 to move this *after* the if/else clause in order for Backbone and similar frameworks to have improved control over event binding and data-options updating.
+    if (typeof method === 'string') {
+      return this[method].call(this, options);
+    }
+
+  };
+
+  var single_image_loaded = function (image, callback) {
+    function loaded () {
+      callback(image[0]);
+    }
+
+    function bindLoad () {
+      this.one('load', loaded);
+
+      if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)) {
+        var src = this.attr( 'src' ),
+            param = src.match( /\?/ ) ? '&' : '?';
+
+        param += 'random=' + (new Date()).getTime();
+        this.attr('src', src + param);
+      }
+    }
+
+    if (!image.attr('src')) {
+      loaded();
+      return;
+    }
+
+    if (image[0].complete || image[0].readyState === 4) {
+      loaded();
+    } else {
+      bindLoad.call(image);
+    }
+  };
+
+  /*! matchMedia() polyfill - Test a CSS media type/query in JS. Authors & copyright (c) 2012: Scott Jehl, Paul Irish, Nicholas Zakas, David Knight. Dual MIT/BSD license */
+
+  window.matchMedia || (window.matchMedia = function() {
+      "use strict";
+
+      // For browsers that support matchMedium api such as IE 9 and webkit
+      var styleMedia = (window.styleMedia || window.media);
+
+      // For those that don't support matchMedium
+      if (!styleMedia) {
+          var style       = document.createElement('style'),
+              script      = document.getElementsByTagName('script')[0],
+              info        = null;
+
+          style.type  = 'text/css';
+          style.id    = 'matchmediajs-test';
+
+          script.parentNode.insertBefore(style, script);
+
+          // 'style.currentStyle' is used by IE <= 8 and 'window.getComputedStyle' for all other browsers
+          info = ('getComputedStyle' in window) && window.getComputedStyle(style, null) || style.currentStyle;
+
+          styleMedia = {
+              matchMedium: function(media) {
+                  var text = '@media ' + media + '{ #matchmediajs-test { width: 1px; } }';
+
+                  // 'style.styleSheet' is used by IE <= 8 and 'style.textContent' for all other browsers
+                  if (style.styleSheet) {
+                      style.styleSheet.cssText = text;
+                  } else {
+                      style.textContent = text;
+                  }
+
+                  // Test if media query is true or false
+                  return info.width === '1px';
+              }
+          };
+      }
+
+      return function(media) {
+          return {
+              matches: styleMedia.matchMedium(media || 'all'),
+              media: media || 'all'
+          };
+      };
+  }());
+
+  /*
+   * jquery.requestAnimationFrame
+   * https://github.com/gnarf37/jquery-requestAnimationFrame
+   * Requires jQuery 1.8+
+   *
+   * Copyright (c) 2012 Corey Frang
+   * Licensed under the MIT license.
+   */
+
+  (function(jQuery) {
+
+
+  // requestAnimationFrame polyfill adapted from Erik Möller
+  // fixes from Paul Irish and Tino Zijdel
+  // http://paulirish.com/2011/requestanimationframe-for-smart-animating/
+  // http://my.opera.com/emoller/blog/2011/12/20/requestanimationframe-for-smart-er-animating
+
+  var animating,
+      lastTime = 0,
+      vendors = ['webkit', 'moz'],
+      requestAnimationFrame = window.requestAnimationFrame,
+      cancelAnimationFrame = window.cancelAnimationFrame,
+      jqueryFxAvailable = 'undefined' !== typeof jQuery.fx;
+
+  for (; lastTime < vendors.length && !requestAnimationFrame; lastTime++) {
+    requestAnimationFrame = window[ vendors[lastTime] + 'RequestAnimationFrame' ];
+    cancelAnimationFrame = cancelAnimationFrame ||
+      window[ vendors[lastTime] + 'CancelAnimationFrame' ] ||
+      window[ vendors[lastTime] + 'CancelRequestAnimationFrame' ];
+  }
+
+  function raf() {
+    if (animating) {
+      requestAnimationFrame(raf);
+
+      if (jqueryFxAvailable) {
+        jQuery.fx.tick();
+      }
+    }
+  }
+
+  if (requestAnimationFrame) {
+    // use rAF
+    window.requestAnimationFrame = requestAnimationFrame;
+    window.cancelAnimationFrame = cancelAnimationFrame;
+
+    if (jqueryFxAvailable) {
+      jQuery.fx.timer = function (timer) {
+        if (timer() && jQuery.timers.push(timer) && !animating) {
+          animating = true;
+          raf();
+        }
+      };
+
+      jQuery.fx.stop = function () {
+        animating = false;
+      };
+    }
+  } else {
+    // polyfill
+    window.requestAnimationFrame = function (callback) {
+      var currTime = new Date().getTime(),
+        timeToCall = Math.max(0, 16 - (currTime - lastTime)),
+        id = window.setTimeout(function () {
+          callback(currTime + timeToCall);
+        }, timeToCall);
+      lastTime = currTime + timeToCall;
+      return id;
+    };
+
+    window.cancelAnimationFrame = function (id) {
+      clearTimeout(id);
+    };
+
+  }
+
+  }( $ ));
+
+  function removeQuotes (string) {
+    if (typeof string === 'string' || string instanceof String) {
+      string = string.replace(/^['\\/"]+|(;\s?})+|['\\/"]+$/g, '');
+    }
+
+    return string;
+  }
+
+  function MediaQuery(selector) {
+    this.selector = selector;
+    this.query = '';
+  }
+
+  MediaQuery.prototype.toString = function () {
+    return this.query || (this.query = S(this.selector).css('font-family').replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, ''));
+  };
+
+  window.Foundation = {
+    name : 'Foundation',
+
+    version : '5.5.3',
+
+    media_queries : {
+      'small'       : new MediaQuery('.foundation-mq-small'),
+      'small-only'  : new MediaQuery('.foundation-mq-small-only'),
+      'medium'      : new MediaQuery('.foundation-mq-medium'),
+      'medium-only' : new MediaQuery('.foundation-mq-medium-only'),
+      'large'       : new MediaQuery('.foundation-mq-large'),
+      'large-only'  : new MediaQuery('.foundation-mq-large-only'),
+      'xlarge'      : new MediaQuery('.foundation-mq-xlarge'),
+      'xlarge-only' : new MediaQuery('.foundation-mq-xlarge-only'),
+      'xxlarge'     : new MediaQuery('.foundation-mq-xxlarge')
+    },
+
+    stylesheet : $('<style></style>').appendTo('head')[0].sheet,
+
+    global : {
+      namespace : undefined
+    },
+
+    init : function (scope, libraries, method, options, response) {
+      var args = [scope, method, options, response],
+          responses = [];
+
+      // check RTL
+      this.rtl = /rtl/i.test(S('html').attr('dir'));
+
+      // set foundation global scope
+      this.scope = scope || this.scope;
+
+      this.set_namespace();
+
+      if (libraries && typeof libraries === 'string' && !/reflow/i.test(libraries)) {
+        if (this.libs.hasOwnProperty(libraries)) {
+          responses.push(this.init_lib(libraries, args));
+        }
+      } else {
+        for (var lib in this.libs) {
+          responses.push(this.init_lib(lib, libraries));
+        }
+      }
+
+      S(window).load(function () {
+        S(window)
+          .trigger('resize.fndtn.clearing')
+          .trigger('resize.fndtn.dropdown')
+          .trigger('resize.fndtn.equalizer')
+          .trigger('resize.fndtn.interchange')
+          .trigger('resize.fndtn.joyride')
+          .trigger('resize.fndtn.magellan')
+          .trigger('resize.fndtn.topbar')
+          .trigger('resize.fndtn.slider');
+      });
+
+      return scope;
+    },
+
+    init_lib : function (lib, args) {
+      if (this.libs.hasOwnProperty(lib)) {
+        this.patch(this.libs[lib]);
+
+        if (args && args.hasOwnProperty(lib)) {
+            if (typeof this.libs[lib].settings !== 'undefined') {
+              $.extend(true, this.libs[lib].settings, args[lib]);
+            } else if (typeof this.libs[lib].defaults !== 'undefined') {
+              $.extend(true, this.libs[lib].defaults, args[lib]);
+            }
+          return this.libs[lib].init.apply(this.libs[lib], [this.scope, args[lib]]);
+        }
+
+        args = args instanceof Array ? args : new Array(args);
+        return this.libs[lib].init.apply(this.libs[lib], args);
+      }
+
+      return function () {};
+    },
+
+    patch : function (lib) {
+      lib.scope = this.scope;
+      lib.namespace = this.global.namespace;
+      lib.rtl = this.rtl;
+      lib['data_options'] = this.utils.data_options;
+      lib['attr_name'] = attr_name;
+      lib['add_namespace'] = add_namespace;
+      lib['bindings'] = bindings;
+      lib['S'] = this.utils.S;
+    },
+
+    inherit : function (scope, methods) {
+      var methods_arr = methods.split(' '),
+          i = methods_arr.length;
+
+      while (i--) {
+        if (this.utils.hasOwnProperty(methods_arr[i])) {
+          scope[methods_arr[i]] = this.utils[methods_arr[i]];
+        }
+      }
+    },
+
+    set_namespace : function () {
+
+      // Description:
+      //    Don't bother reading the namespace out of the meta tag
+      //    if the namespace has been set globally in javascript
+      //
+      // Example:
+      //    Foundation.global.namespace = 'my-namespace';
+      // or make it an empty string:
+      //    Foundation.global.namespace = '';
+      //
+      //
+
+      // If the namespace has not been set (is undefined), try to read it out of the meta element.
+      // Otherwise use the globally defined namespace, even if it's empty ('')
+      var namespace = ( this.global.namespace === undefined ) ? $('.foundation-data-attribute-namespace').css('font-family') : this.global.namespace;
+
+      // Finally, if the namsepace is either undefined or false, set it to an empty string.
+      // Otherwise use the namespace value.
+      this.global.namespace = ( namespace === undefined || /false/i.test(namespace) ) ? '' : namespace;
+    },
+
+    libs : {},
+
+    // methods that can be inherited in libraries
+    utils : {
+
+      // Description:
+      //    Fast Selector wrapper returns jQuery object. Only use where getElementById
+      //    is not available.
+      //
+      // Arguments:
+      //    Selector (String): CSS selector describing the element(s) to be
+      //    returned as a jQuery object.
+      //
+      //    Scope (String): CSS selector describing the area to be searched. Default
+      //    is document.
+      //
+      // Returns:
+      //    Element (jQuery Object): jQuery object containing elements matching the
+      //    selector within the scope.
+      S : S,
+
+      // Description:
+      //    Executes a function a max of once every n milliseconds
+      //
+      // Arguments:
+      //    Func (Function): Function to be throttled.
+      //
+      //    Delay (Integer): Function execution threshold in milliseconds.
+      //
+      // Returns:
+      //    Lazy_function (Function): Function with throttling applied.
+      throttle : function (func, delay) {
+        var timer = null;
+
+        return function () {
+          var context = this, args = arguments;
+
+          if (timer == null) {
+            timer = setTimeout(function () {
+              func.apply(context, args);
+              timer = null;
+            }, delay);
+          }
+        };
+      },
+
+      // Description:
+      //    Executes a function when it stops being invoked for n seconds
+      //    Modified version of _.debounce() http://underscorejs.org
+      //
+      // Arguments:
+      //    Func (Function): Function to be debounced.
+      //
+      //    Delay (Integer): Function execution threshold in milliseconds.
+      //
+      //    Immediate (Bool): Whether the function should be called at the beginning
+      //    of the delay instead of the end. Default is false.
+      //
+      // Returns:
+      //    Lazy_function (Function): Function with debouncing applied.
+      debounce : function (func, delay, immediate) {
+        var timeout, result;
+        return function () {
+          var context = this, args = arguments;
+          var later = function () {
+            timeout = null;
+            if (!immediate) {
+              result = func.apply(context, args);
+            }
+          };
+          var callNow = immediate && !timeout;
+          clearTimeout(timeout);
+          timeout = setTimeout(later, delay);
+          if (callNow) {
+            result = func.apply(context, args);
+          }
+          return result;
+        };
+      },
+
+      // Description:
+      //    Parses data-options attribute
+      //
+      // Arguments:
+      //    El (jQuery Object): Element to be parsed.
+      //
+      // Returns:
+      //    Options (Javascript Object): Contents of the element's data-options
+      //    attribute.
+      data_options : function (el, data_attr_name) {
+        data_attr_name = data_attr_name || 'options';
+        var opts = {}, ii, p, opts_arr,
+            data_options = function (el) {
+              var namespace = Foundation.global.namespace;
+
+              if (namespace.length > 0) {
+                return el.data(namespace + '-' + data_attr_name);
+              }
+
+              return el.data(data_attr_name);
+            };
+
+        var cached_options = data_options(el);
+
+        if (typeof cached_options === 'object') {
+          return cached_options;
+        }
+
+        opts_arr = (cached_options || ':').split(';');
+        ii = opts_arr.length;
+
+        function isNumber (o) {
+          return !isNaN (o - 0) && o !== null && o !== '' && o !== false && o !== true;
+        }
+
+        function trim (str) {
+          if (typeof str === 'string') {
+            return $.trim(str);
+          }
+          return str;
+        }
+
+        while (ii--) {
+          p = opts_arr[ii].split(':');
+          p = [p[0], p.slice(1).join(':')];
+
+          if (/true/i.test(p[1])) {
+            p[1] = true;
+          }
+          if (/false/i.test(p[1])) {
+            p[1] = false;
+          }
+          if (isNumber(p[1])) {
+            if (p[1].indexOf('.') === -1) {
+              p[1] = parseInt(p[1], 10);
+            } else {
+              p[1] = parseFloat(p[1]);
+            }
+          }
+
+          if (p.length === 2 && p[0].length > 0) {
+            opts[trim(p[0])] = trim(p[1]);
+          }
+        }
+
+        return opts;
+      },
+
+      // Description:
+      //    Adds JS-recognizable media queries
+      //
+      // Arguments:
+      //    Media (String): Key string for the media query to be stored as in
+      //    Foundation.media_queries
+      //
+      //    Class (String): Class name for the generated <meta> tag
+      register_media : function (media, media_class) {
+        if (Foundation.media_queries[media] === undefined) {
+          $('head').append('<meta class="' + media_class + '"/>');
+          Foundation.media_queries[media] = removeQuotes($('.' + media_class).css('font-family'));
+        }
+      },
+
+      // Description:
+      //    Add custom CSS within a JS-defined media query
+      //
+      // Arguments:
+      //    Rule (String): CSS rule to be appended to the document.
+      //
+      //    Media (String): Optional media query string for the CSS rule to be
+      //    nested under.
+      add_custom_rule : function (rule, media) {
+        if (media === undefined && Foundation.stylesheet) {
+          Foundation.stylesheet.insertRule(rule, Foundation.stylesheet.cssRules.length);
+        } else {
+          var query = Foundation.media_queries[media];
+
+          if (query !== undefined) {
+            Foundation.stylesheet.insertRule('@media ' +
+              Foundation.media_queries[media] + '{ ' + rule + ' }', Foundation.stylesheet.cssRules.length);
+          }
+        }
+      },
+
+      // Description:
+      //    Performs a callback function when an image is fully loaded
+      //
+      // Arguments:
+      //    Image (jQuery Object): Image(s) to check if loaded.
+      //
+      //    Callback (Function): Function to execute when image is fully loaded.
+      image_loaded : function (images, callback) {
+        var self = this,
+            unloaded = images.length;
+
+        function pictures_has_height(images) {
+          var pictures_number = images.length;
+
+          for (var i = pictures_number - 1; i >= 0; i--) {
+            if(images.attr('height') === undefined) {
+              return false;
+            };
+          };
+
+          return true;
+        }
+
+        if (unloaded === 0 || pictures_has_height(images)) {
+          callback(images);
+        }
+
+        images.each(function () {
+          single_image_loaded(self.S(this), function () {
+            unloaded -= 1;
+            if (unloaded === 0) {
+              callback(images);
+            }
+          });
+        });
+      },
+
+      // Description:
+      //    Returns a random, alphanumeric string
+      //
+      // Arguments:
+      //    Length (Integer): Length of string to be generated. Defaults to random
+      //    integer.
+      //
+      // Returns:
+      //    Rand (String): Pseudo-random, alphanumeric string.
+      random_str : function () {
+        if (!this.fidx) {
+          this.fidx = 0;
+        }
+        this.prefix = this.prefix || [(this.name || 'F'), (+new Date).toString(36)].join('-');
+
+        return this.prefix + (this.fidx++).toString(36);
+      },
+
+      // Description:
+      //    Helper for window.matchMedia
+      //
+      // Arguments:
+      //    mq (String): Media query
+      //
+      // Returns:
+      //    (Boolean): Whether the media query passes or not
+      match : function (mq) {
+        return window.matchMedia(mq).matches;
+      },
+
+      // Description:
+      //    Helpers for checking Foundation default media queries with JS
+      //
+      // Returns:
+      //    (Boolean): Whether the media query passes or not
+
+      is_small_up : function () {
+        return this.match(Foundation.media_queries.small);
+      },
+
+      is_medium_up : function () {
+        return this.match(Foundation.media_queries.medium);
+      },
+
+      is_large_up : function () {
+        return this.match(Foundation.media_queries.large);
+      },
+
+      is_xlarge_up : function () {
+        return this.match(Foundation.media_queries.xlarge);
+      },
+
+      is_xxlarge_up : function () {
+        return this.match(Foundation.media_queries.xxlarge);
+      },
+
+      is_small_only : function () {
+        return !this.is_medium_up() && !this.is_large_up() && !this.is_xlarge_up() && !this.is_xxlarge_up();
+      },
+
+      is_medium_only : function () {
+        return this.is_medium_up() && !this.is_large_up() && !this.is_xlarge_up() && !this.is_xxlarge_up();
+      },
+
+      is_large_only : function () {
+        return this.is_medium_up() && this.is_large_up() && !this.is_xlarge_up() && !this.is_xxlarge_up();
+      },
+
+      is_xlarge_only : function () {
+        return this.is_medium_up() && this.is_large_up() && this.is_xlarge_up() && !this.is_xxlarge_up();
+      },
+
+      is_xxlarge_only : function () {
+        return this.is_medium_up() && this.is_large_up() && this.is_xlarge_up() && this.is_xxlarge_up();
+      }
+    }
+  };
+
+  $.fn.foundation = function () {
+    var args = Array.prototype.slice.call(arguments, 0);
+
+    return this.each(function () {
+      Foundation.init.apply(Foundation, [this].concat(args));
+      return this;
+    });
+  };
+
+}(jQuery, window, window.document));
+
+;(function ($, window, document, undefined) {
+  'use strict';
+
+  Foundation.libs.abide = {
+    name : 'abide',
+
+    version : '5.5.3',
+
+    settings : {
+      live_validate : true, // validate the form as you go
+      validate_on_blur : true, // validate whenever you focus/blur on an input field
+      // validate_on: 'tab', // tab (when user tabs between fields), change (input changes), manual (call custom events)
+
+      focus_on_invalid : true, // automatically bring the focus to an invalid input field
+      error_labels : true, // labels with a for="inputId" will receive an `error` class
+      error_class : 'error', // labels with a for="inputId" will receive an `error` class
+      // the amount of time Abide will take before it validates the form (in ms).
+      // smaller time will result in faster validation
+      timeout : 1000,
+      patterns : {
+        alpha : /^[a-zA-Z]+$/,
+        alpha_numeric : /^[a-zA-Z0-9]+$/,
+        integer : /^[-+]?\d+$/,
+        number : /^[-+]?\d*(?:[\.\,]\d+)?$/,
+
+        // amex, visa, diners
+        card : /^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$/,
+        cvv : /^([0-9]){3,4}$/,
+
+        // http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#valid-e-mail-address
+        email : /^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+$/,
+
+        // http://blogs.lse.ac.uk/lti/2008/04/23/a-regular-expression-to-match-any-url/
+        url: /^(https?|ftp|file|ssh):\/\/([-;:&=\+\$,\w]+@{1})?([-A-Za-z0-9\.]+)+:?(\d+)?((\/[-\+~%\/\.\w]+)?\??([-\+=&;%@\.\w]+)?#?([\w]+)?)?/,
+        // abc.de
+        domain : /^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,8}$/,
+
+        datetime : /^([0-2][0-9]{3})\-([0-1][0-9])\-([0-3][0-9])T([0-5][0-9])\:([0-5][0-9])\:([0-5][0-9])(Z|([\-\+]([0-1][0-9])\:00))$/,
+        // YYYY-MM-DD
+        date : /(?:19|20)[0-9]{2}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-9])|(?:(?!02)(?:0[1-9]|1[0-2])-(?:30))|(?:(?:0[13578]|1[02])-31))$/,
+        // HH:MM:SS
+        time : /^(0[0-9]|1[0-9]|2[0-3])(:[0-5][0-9]){2}$/,
+        dateISO : /^\d{4}[\/\-]\d{1,2}[\/\-]\d{1,2}$/,
+        // MM/DD/YYYY
+        month_day_year : /^(0[1-9]|1[012])[- \/.](0[1-9]|[12][0-9]|3[01])[- \/.]\d{4}$/,
+        // DD/MM/YYYY
+        day_month_year : /^(0[1-9]|[12][0-9]|3[01])[- \/.](0[1-9]|1[012])[- \/.]\d{4}$/,
+
+        // #FFF or #FFFFFF
+        color : /^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/
+      },
+      validators : {
+        equalTo : function (el, required, parent) {
+          var from  = document.getElementById(el.getAttribute(this.add_namespace('data-equalto'))).value,
+              to    = el.value,
+              valid = (from === to);
+
+          return valid;
+        }
+      }
+    },
+
+    timer : null,
+
+    init : function (scope, method, options) {
+      this.bindings(method, options);
+    },
+
+    events : function (scope) {
+      var self = this,
+          form = self.S(scope).attr('novalidate', 'novalidate'),
+          settings = form.data(this.attr_name(true) + '-init') || {};
+
+      this.invalid_attr = this.add_namespace('data-invalid');
+
+      function validate(originalSelf, e) {
+        clearTimeout(self.timer);
+        self.timer = setTimeout(function () {
+          self.validate([originalSelf], e);
+        }.bind(originalSelf), settings.timeout);
+      }
+
+      form
+        .off('.abide')
+        .on('submit.fndtn.abide', function (e) {
+          var is_ajax = /ajax/i.test(self.S(this).attr(self.attr_name()));
+          return self.validate(self.S(this).find('input, textarea, select').not(":hidden, [data-abide-ignore]").get(), e, is_ajax);
+        })
+        .on('validate.fndtn.abide', function (e) {
+          if (settings.validate_on === 'manual') {
+            self.validate([e.target], e);
+          }
+        })
+        .on('reset', function (e) {
+          return self.reset($(this), e);
+        })
+        .find('input, textarea, select').not(":hidden, [data-abide-ignore]")
+          .off('.abide')
+          .on('blur.fndtn.abide change.fndtn.abide', function (e) {
+              var id = this.getAttribute('id'),
+                  eqTo = form.find('[data-equalto="'+ id +'"]');
+            // old settings fallback
+            // will be deprecated with F6 release
+            if (settings.validate_on_blur && settings.validate_on_blur === true) {
+              validate(this, e);
+            }
+            // checks if there is an equalTo equivalent related by id
+            if(typeof eqTo.get(0) !== "undefined" && eqTo.val().length){
+              validate(eqTo.get(0),e);
+            }
+            // new settings combining validate options into one setting
+            if (settings.validate_on === 'change') {
+              validate(this, e);
+            }
+          })
+          .on('keydown.fndtn.abide', function (e) {
+            var id = this.getAttribute('id'),
+                eqTo = form.find('[data-equalto="'+ id +'"]');
+            // old settings fallback
+            // will be deprecated with F6 release
+            if (settings.live_validate && settings.live_validate === true && e.which != 9) {
+              validate(this, e);
+            }
+            // checks if there is an equalTo equivalent related by id
+            if(typeof eqTo.get(0) !== "undefined" && eqTo.val().length){
+              validate(eqTo.get(0),e);
+            }
+            // new settings combining validate options into one setting
+            if (settings.validate_on === 'tab' && e.which === 9) {
+              validate(this, e);
+            }
+            else if (settings.validate_on === 'change') {
+              validate(this, e);
+            }
+          })
+          .on('focus', function (e) {
+            if (navigator.userAgent.match(/iPad|iPhone|Android|BlackBerry|Windows Phone|webOS/i)) {
+              $('html, body').animate({
+                  scrollTop: $(e.target).offset().top
+              }, 100);
+            }
+          });
+    },
+
+    reset : function (form, e) {
+      var self = this;
+      form.removeAttr(self.invalid_attr);
+
+      $('[' + self.invalid_attr + ']', form).removeAttr(self.invalid_attr);
+      $('.' + self.settings.error_class, form).not('small').removeClass(self.settings.error_class);
+      $(':input', form).not(':button, :submit, :reset, :hidden, [data-abide-ignore]').val('').removeAttr(self.invalid_attr);
+    },
+
+    validate : function (els, e, is_ajax) {
+      var validations = this.parse_patterns(els),
+          validation_count = validations.length,
+          form = this.S(els[0]).closest('form'),
+          submit_event = /submit/.test(e.type);
+
+      // Has to count up to make sure the focus gets applied to the top error
+      for (var i = 0; i < validation_count; i++) {
+        if (!validations[i] && (submit_event || is_ajax)) {
+          if (this.settings.focus_on_invalid) {
+            els[i].focus();
+          }
+          form.trigger('invalid.fndtn.abide');
+          this.S(els[i]).closest('form').attr(this.invalid_attr, '');
+          return false;
+        }
+      }
+
+      if (submit_event || is_ajax) {
+        form.trigger('valid.fndtn.abide');
+      }
+
+      form.removeAttr(this.invalid_attr);
+
+      if (is_ajax) {
+        return false;
+      }
+
+      return true;
+    },
+
+    parse_patterns : function (els) {
+      var i = els.length,
+          el_patterns = [];
+
+      while (i--) {
+        el_patterns.push(this.pattern(els[i]));
+      }
+
+      return this.check_validation_and_apply_styles(el_patterns);
+    },
+
+    pattern : function (el) {
+      var type = el.getAttribute('type'),
+          required = typeof el.getAttribute('required') === 'string';
+
+      var pattern = el.getAttribute('pattern') || '';
+
+      if (this.settings.patterns.hasOwnProperty(pattern) && pattern.length > 0) {
+        return [el, this.settings.patterns[pattern], required];
+      } else if (pattern.length > 0) {
+        return [el, new RegExp(pattern), required];
+      }
+
+      if (this.settings.patterns.hasOwnProperty(type)) {
+        return [el, this.settings.patterns[type], required];
+      }
+
+      pattern = /.*/;
+
+      return [el, pattern, required];
+    },
+
+    // TODO: Break this up into smaller methods, getting hard to read.
+    check_validation_and_apply_styles : function (el_patterns) {
+      var i = el_patterns.length,
+          validations = [];
+      if (i == 0) {
+        return validations;
+      }
+      var form = this.S(el_patterns[0][0]).closest('[data-' + this.attr_name(true) + ']'),
+          settings = form.data(this.attr_name(true) + '-init') || {};
+      while (i--) {
+        var el = el_patterns[i][0],
+            required = el_patterns[i][2],
+            value = el.value.trim(),
+            direct_parent = this.S(el).parent(),
+            validator = el.getAttribute(this.add_namespace('data-abide-validator')),
+            is_radio = el.type === 'radio',
+            is_checkbox = el.type === 'checkbox',
+            label = this.S('label[for="' + el.getAttribute('id') + '"]'),
+            valid_length = (required) ? (el.value.length > 0) : true,
+            el_validations = [];
+
+        var parent, valid;
+
+        // support old way to do equalTo validations
+        if (el.getAttribute(this.add_namespace('data-equalto'))) { validator = 'equalTo' }
+
+        if (!direct_parent.is('label')) {
+          parent = direct_parent;
+        } else {
+          parent = direct_parent.parent();
+        }
+
+        if (is_radio && required) {
+          el_validations.push(this.valid_radio(el, required));
+        } else if (is_checkbox && required) {
+          el_validations.push(this.valid_checkbox(el, required));
+
+        } else if (validator) {
+          // Validate using each of the specified (space-delimited) validators.
+          var validators = validator.split(' ');
+          var last_valid = true, all_valid = true;
+          for (var iv = 0; iv < validators.length; iv++) {
+              valid = this.settings.validators[validators[iv]].apply(this, [el, required, parent])
+              el_validations.push(valid);
+              all_valid = valid && last_valid;
+              last_valid = valid;
+          }
+          if (all_valid) {
+              this.S(el).removeAttr(this.invalid_attr);
+              parent.removeClass('error');
+              if (label.length > 0 && this.settings.error_labels) {
+                label.removeClass(this.settings.error_class).removeAttr('role');
+              }
+              $(el).triggerHandler('valid');
+          } else {
+              this.S(el).attr(this.invalid_attr, '');
+              parent.addClass('error');
+              if (label.length > 0 && this.settings.error_labels) {
+                label.addClass(this.settings.error_class).attr('role', 'alert');
+              }
+              $(el).triggerHandler('invalid');
+          }
+        } else {
+
+          if (el_patterns[i][1].test(value) && valid_length ||
+            !required && el.value.length < 1 || $(el).attr('disabled')) {
+            el_validations.push(true);
+          } else {
+            el_validations.push(false);
+          }
+
+          el_validations = [el_validations.every(function (valid) {return valid;})];
+          if (el_validations[0]) {
+            this.S(el).removeAttr(this.invalid_attr);
+            el.setAttribute('aria-invalid', 'false');
+            el.removeAttribute('aria-describedby');
+            parent.removeClass(this.settings.error_class);
+            if (label.length > 0 && this.settings.error_labels) {
+              label.removeClass(this.settings.error_class).removeAttr('role');
+            }
+            $(el).triggerHandler('valid');
+          } else {
+            this.S(el).attr(this.invalid_attr, '');
+            el.setAttribute('aria-invalid', 'true');
+
+            // Try to find the error associated with the input
+            var errorElem = parent.find('small.' + this.settings.error_class, 'span.' + this.settings.error_class);
+            var errorID = errorElem.length > 0 ? errorElem[0].id : '';
+            if (errorID.length > 0) {
+              el.setAttribute('aria-describedby', errorID);
+            }
+
+            // el.setAttribute('aria-describedby', $(el).find('.error')[0].id);
+            parent.addClass(this.settings.error_class);
+            if (label.length > 0 && this.settings.error_labels) {
+              label.addClass(this.settings.error_class).attr('role', 'alert');
+            }
+            $(el).triggerHandler('invalid');
+          }
+        }
+        validations = validations.concat(el_validations);
+      }
+
+      return validations;
+    },
+
+    valid_checkbox : function (el, required) {
+      var el = this.S(el),
+          valid = (el.is(':checked') || !required || el.get(0).getAttribute('disabled'));
+
+      if (valid) {
+        el.removeAttr(this.invalid_attr).parent().removeClass(this.settings.error_class);
+        $(el).triggerHandler('valid');
+      } else {
+        el.attr(this.invalid_attr, '').parent().addClass(this.settings.error_class);
+        $(el).triggerHandler('invalid');
+      }
+
+      return valid;
+    },
+
+    valid_radio : function (el, required) {
+      var name = el.getAttribute('name'),
+          group = this.S(el).closest('[data-' + this.attr_name(true) + ']').find("[name='" + name + "']"),
+          count = group.length,
+          valid = false,
+          disabled = false;
+
+      // Has to count up to make sure the focus gets applied to the top error
+      for (var i=0; i < count; i++) {
+        if( group[i].getAttribute('disabled') ){
+          disabled=true;
+          valid=true;
+        } else {
+          if (group[i].checked){
+            valid = true;
+          } else {
+            if( disabled ){
+              valid = false;
+            }
+          }
+        }
+      }
+
+      // Has to count up to make sure the focus gets applied to the top error
+      for (var i = 0; i < count; i++) {
+        if (valid) {
+          this.S(group[i]).removeAttr(this.invalid_attr).parent().removeClass(this.settings.error_class);
+          $(group[i]).triggerHandler('valid');
+        } else {
+          this.S(group[i]).attr(this.invalid_attr, '').parent().addClass(this.settings.error_class);
+          $(group[i]).triggerHandler('invalid');
+        }
+      }
+
+      return valid;
+    },
+
+    valid_equal : function (el, required, parent) {
+      var from  = document.getElementById(el.getAttribute(this.add_namespace('data-equalto'))).value,
+          to    = el.value,
+          valid = (from === to);
+
+      if (valid) {
+        this.S(el).removeAttr(this.invalid_attr);
+        parent.removeClass(this.settings.error_class);
+        if (label.length > 0 && settings.error_labels) {
+          label.removeClass(this.settings.error_class);
+        }
+      } else {
+        this.S(el).attr(this.invalid_attr, '');
+        parent.addClass(this.settings.error_class);
+        if (label.length > 0 && settings.error_labels) {
+          label.addClass(this.settings.error_class);
+        }
+      }
+
+      return valid;
+    },
+
+    valid_oneof : function (el, required, parent, doNotValidateOthers) {
+      var el = this.S(el),
+        others = this.S('[' + this.add_namespace('data-oneof') + ']'),
+        valid = others.filter(':checked').length > 0;
+
+      if (valid) {
+        el.removeAttr(this.invalid_attr).parent().removeClass(this.settings.error_class);
+      } else {
+        el.attr(this.invalid_attr, '').parent().addClass(this.settings.error_class);
+      }
+
+      if (!doNotValidateOthers) {
+        var _this = this;
+        others.each(function () {
+          _this.valid_oneof.call(_this, this, null, null, true);
+        });
+      }
+
+      return valid;
+    },
+
+    reflow : function(scope, options) {
+      var self = this,
+          form = self.S('[' + this.attr_name() + ']').attr('novalidate', 'novalidate');
+          self.S(form).each(function (idx, el) {
+            self.events(el);
+          });
+    }
+  };
+}(jQuery, window, window.document));
+
+;(function ($, window, document, undefined) {
+  'use strict';
+
+  Foundation.libs.accordion = {
+    name : 'accordion',
+
+    version : '5.5.3',
+
+    settings : {
+      content_class : 'content',
+      active_class : 'active',
+      multi_expand : false,
+      toggleable : true,
+      callback : function () {}
+    },
+
+    init : function (scope, method, options) {
+      this.bindings(method, options);
+    },
+
+    events : function (instance) {
+      var self = this;
+      var S = this.S;
+      self.create(this.S(instance));
+
+      S(this.scope)
+      .off('.fndtn.accordion')
+      .on('click.fndtn.accordion', '[' + this.attr_name() + '] > dd > a, [' + this.attr_name() + '] > li > a', function (e) {
+        var accordion = S(this).closest('[' + self.attr_name() + ']'),
+            groupSelector = self.attr_name() + '=' + accordion.attr(self.attr_name()),
+            settings = accordion.data(self.attr_name(true) + '-init') || self.settings,
+            target = S('#' + this.href.split('#')[1]),
+            aunts = $('> dd, > li', accordion),
+            siblings = aunts.children('.' + settings.content_class),
+            active_content = siblings.filter('.' + settings.active_class);
+
+        e.preventDefault();
+
+        if (accordion.attr(self.attr_name())) {
+          siblings = siblings.add('[' + groupSelector + '] dd > ' + '.' + settings.content_class + ', [' + groupSelector + '] li > ' + '.' + settings.content_class);
+          aunts = aunts.add('[' + groupSelector + '] dd, [' + groupSelector + '] li');
+        }
+
+        if (settings.toggleable && target.is(active_content)) {
+          target.parent('dd, li').toggleClass(settings.active_class, false);
+          target.toggleClass(settings.active_class, false);
+          S(this).attr('aria-expanded', function(i, attr){
+              return attr === 'true' ? 'false' : 'true';
+          });
+          settings.callback(target);
+          target.triggerHandler('toggled', [accordion]);
+          accordion.triggerHandler('toggled', [target]);
+          return;
+        }
+
+        if (!settings.multi_expand) {
+          siblings.removeClass(settings.active_class);
+          aunts.removeClass(settings.active_class);
+          aunts.children('a').attr('aria-expanded','false');
+        }
+
+        target.addClass(settings.active_class).parent().addClass(settings.active_class);
+        settings.callback(target);
+        target.triggerHandler('toggled', [accordion]);
+        accordion.triggerHandler('toggled', [target]);
+        S(this).attr('aria-expanded','true');
+      });
+    },
+
+    create: function($instance) {
+      var self = this,
+          accordion = $instance,
+          aunts = $('> .accordion-navigation', accordion),
+          settings = accordion.data(self.attr_name(true) + '-init') || self.settings;
+
+      aunts.children('a').attr('aria-expanded','false');
+      aunts.has('.' + settings.content_class + '.' + settings.active_class).addClass(settings.active_class).children('a').attr('aria-expanded','true');
+
+      if (settings.multi_expand) {
+        $instance.attr('aria-multiselectable','true');
+      }
+    },
+       
+       toggle : function(options) {
+               var options = typeof options !== 'undefined' ? options : {};
+               var selector = typeof options.selector !== 'undefined' ? options.selector : '';
+               var toggle_state = typeof options.toggle_state !== 'undefined' ? options.toggle_state : '';
+               var $accordion = typeof options.$accordion !== 'undefined' ? options.$accordion : this.S(this.scope).closest('[' + this.attr_name() + ']');
+  
+               var $items = $accordion.find('> dd' + selector + ', > li' + selector);
+               if ( $items.length < 1 ) {
+                       if ( window.console ) {
+                               console.error('Selection not found.', selector);
+                       }
+                       return false;
+               }
+  
+               var S = this.S;
+               var active_class = this.settings.active_class;
+               $items.each(function() {
+                       var $item = S(this);
+                       var is_active = $item.hasClass(active_class);
+                       if ( ( is_active && toggle_state === 'close' ) || ( !is_active && toggle_state === 'open' ) || toggle_state === '' ) {
+                               $item.find('> a').trigger('click.fndtn.accordion');
+                       }
+               });
+       },
+  
+       open : function(options) {
+               var options = typeof options !== 'undefined' ? options : {};
+               options.toggle_state = 'open';
+               this.toggle(options);
+       },
+  
+       close : function(options) {
+               var options = typeof options !== 'undefined' ? options : {};
+               options.toggle_state = 'close';
+               this.toggle(options);
+       },      
+
+    off : function () {},
+
+    reflow : function () {}
+  };
+}(jQuery, window, window.document));
+
+;(function ($, window, document, undefined) {
+  'use strict';
+
+  Foundation.libs.alert = {
+    name : 'alert',
+
+    version : '5.5.3',
+
+    settings : {
+      callback : function () {}
+    },
+
+    init : function (scope, method, options) {
+      this.bindings(method, options);
+    },
+
+    events : function () {
+      var self = this,
+          S = this.S;
+
+      $(this.scope).off('.alert').on('click.fndtn.alert', '[' + this.attr_name() + '] .close', function (e) {
+        var alertBox = S(this).closest('[' + self.attr_name() + ']'),
+            settings = alertBox.data(self.attr_name(true) + '-init') || self.settings;
+
+        e.preventDefault();
+        if (Modernizr.csstransitions) {
+          alertBox.addClass('alert-close');
+          alertBox.on('transitionend webkitTransitionEnd oTransitionEnd', function (e) {
+            S(this).trigger('close.fndtn.alert').remove();
+            settings.callback();
+          });
+        } else {
+          alertBox.fadeOut(300, function () {
+            S(this).trigger('close.fndtn.alert').remove();
+            settings.callback();
+          });
+        }
+      });
+    },
+
+    reflow : function () {}
+  };
+}(jQuery, window, window.document));
+
+;(function ($, window, document, undefined) {
+  'use strict';
+
+  Foundation.libs.clearing = {
+    name : 'clearing',
+
+    version : '5.5.3',
+
+    settings : {
+      templates : {
+        viewing : '<a href="#" class="clearing-close">&times;</a>' +
+          '<div class="visible-img" style="display: none"><div class="clearing-touch-label"></div><img src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs%3D" alt="" />' +
+          '<p class="clearing-caption"></p><a href="#" class="clearing-main-prev"><span></span></a>' +
+          '<a href="#" class="clearing-main-next"><span></span></a></div>' +
+          '<img class="clearing-preload-next" style="display: none" src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs%3D" alt="" />' +
+          '<img class="clearing-preload-prev" style="display: none" src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs%3D" alt="" />'
+      },
+
+      // comma delimited list of selectors that, on click, will close clearing,
+      // add 'div.clearing-blackout, div.visible-img' to close on background click
+      close_selectors : '.clearing-close, div.clearing-blackout',
+
+      // Default to the entire li element.
+      open_selectors : '',
+
+      // Image will be skipped in carousel.
+      skip_selector : '',
+
+      touch_label : '',
+
+      // event initializer and locks
+      init : false,
+      locked : false
+    },
+
+    init : function (scope, method, options) {
+      var self = this;
+      Foundation.inherit(this, 'throttle image_loaded');
+
+      this.bindings(method, options);
+
+      if (self.S(this.scope).is('[' + this.attr_name() + ']')) {
+        this.assemble(self.S('li', this.scope));
+      } else {
+        self.S('[' + this.attr_name() + ']', this.scope).each(function () {
+          self.assemble(self.S('li', this));
+        });
+      }
+    },
+
+    events : function (scope) {
+      var self = this,
+          S = self.S,
+          $scroll_container = $('.scroll-container');
+
+      if ($scroll_container.length > 0) {
+        this.scope = $scroll_container;
+      }
+
+      S(this.scope)
+        .off('.clearing')
+        .on('click.fndtn.clearing', 'ul[' + this.attr_name() + '] li ' + this.settings.open_selectors,
+          function (e, current, target) {
+            var current = current || S(this),
+                target = target || current,
+                next = current.next('li'),
+                settings = current.closest('[' + self.attr_name() + ']').data(self.attr_name(true) + '-init'),
+                image = S(e.target);
+
+            e.preventDefault();
+
+            if (!settings) {
+              self.init();
+              settings = current.closest('[' + self.attr_name() + ']').data(self.attr_name(true) + '-init');
+            }
+
+            // if clearing is open and the current image is
+            // clicked, go to the next image in sequence
+            if (target.hasClass('visible') &&
+              current[0] === target[0] &&
+              next.length > 0 && self.is_open(current)) {
+              target = next;
+              image = S('img', target);
+            }
+
+            // set current and target to the clicked li if not otherwise defined.
+            self.open(image, current, target);
+            self.update_paddles(target);
+          })
+
+        .on('click.fndtn.clearing', '.clearing-main-next',
+          function (e) { self.nav(e, 'next') })
+        .on('click.fndtn.clearing', '.clearing-main-prev',
+          function (e) { self.nav(e, 'prev') })
+        .on('click.fndtn.clearing', this.settings.close_selectors,
+          function (e) { Foundation.libs.clearing.close(e, this) });
+
+      $(document).on('keydown.fndtn.clearing',
+          function (e) { self.keydown(e) });
+
+      S(window).off('.clearing').on('resize.fndtn.clearing',
+        function () { self.resize() });
+
+      this.swipe_events(scope);
+    },
+
+    swipe_events : function (scope) {
+      var self = this,
+      S = self.S;
+
+      S(this.scope)
+        .on('touchstart.fndtn.clearing', '.visible-img', function (e) {
+          if (!e.touches) { e = e.originalEvent; }
+          var data = {
+                start_page_x : e.touches[0].pageX,
+                start_page_y : e.touches[0].pageY,
+                start_time : (new Date()).getTime(),
+                delta_x : 0,
+                is_scrolling : undefined
+              };
+
+          S(this).data('swipe-transition', data);
+          e.stopPropagation();
+        })
+        .on('touchmove.fndtn.clearing', '.visible-img', function (e) {
+          if (!e.touches) {
+            e = e.originalEvent;
+          }
+          // Ignore pinch/zoom events
+          if (e.touches.length > 1 || e.scale && e.scale !== 1) {
+            return;
+          }
+
+          var data = S(this).data('swipe-transition');
+
+          if (typeof data === 'undefined') {
+            data = {};
+          }
+
+          data.delta_x = e.touches[0].pageX - data.start_page_x;
+
+          if (Foundation.rtl) {
+            data.delta_x = -data.delta_x;
+          }
+
+          if (typeof data.is_scrolling === 'undefined') {
+            data.is_scrolling = !!( data.is_scrolling || Math.abs(data.delta_x) < Math.abs(e.touches[0].pageY - data.start_page_y) );
+          }
+
+          if (!data.is_scrolling && !data.active) {
+            e.preventDefault();
+            var direction = (data.delta_x < 0) ? 'next' : 'prev';
+            data.active = true;
+            self.nav(e, direction);
+          }
+        })
+        .on('touchend.fndtn.clearing', '.visible-img', function (e) {
+          S(this).data('swipe-transition', {});
+          e.stopPropagation();
+        });
+    },
+
+    assemble : function ($li) {
+      var $el = $li.parent();
+
+      if ($el.parent().hasClass('carousel')) {
+        return;
+      }
+
+      $el.after('<div id="foundationClearingHolder"></div>');
+
+      var grid = $el.detach(),
+          grid_outerHTML = '';
+
+      if (grid[0] == null) {
+        return;
+      } else {
+        grid_outerHTML = grid[0].outerHTML;
+      }
+
+      var holder = this.S('#foundationClearingHolder'),
+          settings = $el.data(this.attr_name(true) + '-init'),
+          data = {
+            grid : '<div class="carousel">' + grid_outerHTML + '</div>',
+            viewing : settings.templates.viewing
+          },
+          wrapper = '<div class="clearing-assembled"><div>' + data.viewing +
+            data.grid + '</div></div>',
+          touch_label = this.settings.touch_label;
+
+      if (Modernizr.touch) {
+        wrapper = $(wrapper).find('.clearing-touch-label').html(touch_label).end();
+      }
+
+      holder.after(wrapper).remove();
+    },
+
+    open : function ($image, current, target) {
+      var self = this,
+          body = $(document.body),
+          root = target.closest('.clearing-assembled'),
+          container = self.S('div', root).first(),
+          visible_image = self.S('.visible-img', container),
+          image = self.S('img', visible_image).not($image),
+          label = self.S('.clearing-touch-label', container),
+          error = false,
+          loaded = {};
+
+      // Event to disable scrolling on touch devices when Clearing is activated
+      $('body').on('touchmove', function (e) {
+        e.preventDefault();
+      });
+
+      image.error(function () {
+        error = true;
+      });
+
+      function startLoad() {
+        setTimeout(function () {
+          this.image_loaded(image, function () {
+            if (image.outerWidth() === 1 && !error) {
+              startLoad.call(this);
+            } else {
+              cb.call(this, image);
+            }
+          }.bind(this));
+        }.bind(this), 100);
+      }
+
+      function cb (image) {
+        var $image = $(image);
+        $image.css('visibility', 'visible');
+        $image.trigger('imageVisible');
+        // toggle the gallery
+        body.css('overflow', 'hidden');
+        root.addClass('clearing-blackout');
+        container.addClass('clearing-container');
+        visible_image.show();
+        this.fix_height(target)
+          .caption(self.S('.clearing-caption', visible_image), self.S('img', target))
+          .center_and_label(image, label)
+          .shift(current, target, function () {
+            target.closest('li').siblings().removeClass('visible');
+            target.closest('li').addClass('visible');
+          });
+        visible_image.trigger('opened.fndtn.clearing')
+      }
+
+      if (!this.locked()) {
+        visible_image.trigger('open.fndtn.clearing');
+        // set the image to the selected thumbnail
+        loaded = this.load($image);
+        if (loaded.interchange) {
+          image
+            .attr('data-interchange', loaded.interchange)
+            .foundation('interchange', 'reflow');
+        } else {
+          image
+            .attr('src', loaded.src)
+            .attr('data-interchange', '');
+        }
+        image.css('visibility', 'hidden');
+
+        startLoad.call(this);
+      }
+    },
+
+    close : function (e, el) {
+      e.preventDefault();
+
+      var root = (function (target) {
+            if (/blackout/.test(target.selector)) {
+              return target;
+            } else {
+              return target.closest('.clearing-blackout');
+            }
+          }($(el))),
+          body = $(document.body), container, visible_image;
+
+      if (el === e.target && root) {
+        body.css('overflow', '');
+        container = $('div', root).first();
+        visible_image = $('.visible-img', container);
+        visible_image.trigger('close.fndtn.clearing');
+        this.settings.prev_index = 0;
+        $('ul[' + this.attr_name() + ']', root)
+          .attr('style', '').closest('.clearing-blackout')
+          .removeClass('clearing-blackout');
+        container.removeClass('clearing-container');
+        visible_image.hide();
+        visible_image.trigger('closed.fndtn.clearing');
+      }
+
+      // Event to re-enable scrolling on touch devices
+      $('body').off('touchmove');
+
+      return false;
+    },
+
+    is_open : function (current) {
+      return current.parent().prop('style').length > 0;
+    },
+
+    keydown : function (e) {
+      var clearing = $('.clearing-blackout ul[' + this.attr_name() + ']'),
+          NEXT_KEY = this.rtl ? 37 : 39,
+          PREV_KEY = this.rtl ? 39 : 37,
+          ESC_KEY = 27;
+
+      if (e.which === NEXT_KEY) {
+        this.go(clearing, 'next');
+      }
+      if (e.which === PREV_KEY) {
+        this.go(clearing, 'prev');
+      }
+      if (e.which === ESC_KEY) {
+        this.S('a.clearing-close').trigger('click.fndtn.clearing');
+      }
+    },
+
+    nav : function (e, direction) {
+      var clearing = $('ul[' + this.attr_name() + ']', '.clearing-blackout');
+
+      e.preventDefault();
+      this.go(clearing, direction);
+    },
+
+    resize : function () {
+      var image = $('img', '.clearing-blackout .visible-img'),
+          label = $('.clearing-touch-label', '.clearing-blackout');
+
+      if (image.length) {
+        this.center_and_label(image, label);
+        image.trigger('resized.fndtn.clearing')
+      }
+    },
+
+    // visual adjustments
+    fix_height : function (target) {
+      var lis = target.parent().children(),
+          self = this;
+
+      lis.each(function () {
+        var li = self.S(this),
+            image = li.find('img');
+
+        if (li.height() > image.outerHeight()) {
+          li.addClass('fix-height');
+        }
+      })
+      .closest('ul')
+      .width(lis.length * 100 + '%');
+
+      return this;
+    },
+
+    update_paddles : function (target) {
+      target = target.closest('li');
+      var visible_image = target
+        .closest('.carousel')
+        .siblings('.visible-img');
+
+      if (target.next().length > 0) {
+        this.S('.clearing-main-next', visible_image).removeClass('disabled');
+      } else {
+        this.S('.clearing-main-next', visible_image).addClass('disabled');
+      }
+
+      if (target.prev().length > 0) {
+        this.S('.clearing-main-prev', visible_image).removeClass('disabled');
+      } else {
+        this.S('.clearing-main-prev', visible_image).addClass('disabled');
+      }
+    },
+
+    center_and_label : function (target, label) {
+      if (!this.rtl && label.length > 0) {
+        label.css({
+          marginLeft : -(label.outerWidth() / 2),
+          marginTop : -(target.outerHeight() / 2)-label.outerHeight()-10
+        });
+      } else {
+        label.css({
+          marginRight : -(label.outerWidth() / 2),
+          marginTop : -(target.outerHeight() / 2)-label.outerHeight()-10,
+          left: 'auto',
+          right: '50%'
+        });
+      }
+      return this;
+    },
+
+    // image loading and preloading
+
+    load : function ($image) {
+      var href,
+          interchange,
+          closest_a;
+
+      if ($image[0].nodeName === 'A') {
+        href = $image.attr('href');
+        interchange = $image.data('clearing-interchange');
+      } else {
+        closest_a = $image.closest('a');
+        href = closest_a.attr('href');
+        interchange = closest_a.data('clearing-interchange');
+      }
+
+      this.preload($image);
+
+      return {
+        'src': href ? href : $image.attr('src'),
+        'interchange': href ? interchange : $image.data('clearing-interchange')
+      }
+    },
+
+    preload : function ($image) {
+      this
+        .img($image.closest('li').next(), 'next')
+        .img($image.closest('li').prev(), 'prev');
+    },
+
+    img : function (img, sibling_type) {
+      if (img.length) {
+        var preload_img = $('.clearing-preload-' + sibling_type),
+            new_a = this.S('a', img),
+            src,
+            interchange,
+            image;
+
+        if (new_a.length) {
+          src = new_a.attr('href');
+          interchange = new_a.data('clearing-interchange');
+        } else {
+          image = this.S('img', img);
+          src = image.attr('src');
+          interchange = image.data('clearing-interchange');
+        }
+
+        if (interchange) {
+          preload_img.attr('data-interchange', interchange);
+        } else {
+          preload_img.attr('src', src);
+          preload_img.attr('data-interchange', '');
+        }
+      }
+      return this;
+    },
+
+    // image caption
+
+    caption : function (container, $image) {
+      var caption = $image.attr('data-caption');
+
+      if (caption) {
+       var containerPlain = container.get(0);
+       containerPlain.innerHTML = caption;
+        container.show();
+      } else {
+        container
+          .text('')
+          .hide();
+      }
+      return this;
+    },
+
+    // directional methods
+
+    go : function ($ul, direction) {
+      var current = this.S('.visible', $ul),
+          target = current[direction]();
+
+      // Check for skip selector.
+      if (this.settings.skip_selector && target.find(this.settings.skip_selector).length != 0) {
+        target = target[direction]();
+      }
+
+      if (target.length) {
+        this.S('img', target)
+          .trigger('click.fndtn.clearing', [current, target])
+          .trigger('change.fndtn.clearing');
+      }
+    },
+
+    shift : function (current, target, callback) {
+      var clearing = target.parent(),
+          old_index = this.settings.prev_index || target.index(),
+          direction = this.direction(clearing, current, target),
+          dir = this.rtl ? 'right' : 'left',
+          left = parseInt(clearing.css('left'), 10),
+          width = target.outerWidth(),
+          skip_shift;
+
+      var dir_obj = {};
+
+      // we use jQuery animate instead of CSS transitions because we
+      // need a callback to unlock the next animation
+      // needs support for RTL **
+      if (target.index() !== old_index && !/skip/.test(direction)) {
+        if (/left/.test(direction)) {
+          this.lock();
+          dir_obj[dir] = left + width;
+          clearing.animate(dir_obj, 300, this.unlock());
+        } else if (/right/.test(direction)) {
+          this.lock();
+          dir_obj[dir] = left - width;
+          clearing.animate(dir_obj, 300, this.unlock());
+        }
+      } else if (/skip/.test(direction)) {
+        // the target image is not adjacent to the current image, so
+        // do we scroll right or not
+        skip_shift = target.index() - this.settings.up_count;
+        this.lock();
+
+        if (skip_shift > 0) {
+          dir_obj[dir] = -(skip_shift * width);
+          clearing.animate(dir_obj, 300, this.unlock());
+        } else {
+          dir_obj[dir] = 0;
+          clearing.animate(dir_obj, 300, this.unlock());
+        }
+      }
+
+      callback();
+    },
+
+    direction : function ($el, current, target) {
+      var lis = this.S('li', $el),
+          li_width = lis.outerWidth() + (lis.outerWidth() / 4),
+          up_count = Math.floor(this.S('.clearing-container').outerWidth() / li_width) - 1,
+          target_index = lis.index(target),
+          response;
+
+      this.settings.up_count = up_count;
+
+      if (this.adjacent(this.settings.prev_index, target_index)) {
+        if ((target_index > up_count) && target_index > this.settings.prev_index) {
+          response = 'right';
+        } else if ((target_index > up_count - 1) && target_index <= this.settings.prev_index) {
+          response = 'left';
+        } else {
+          response = false;
+        }
+      } else {
+        response = 'skip';
+      }
+
+      this.settings.prev_index = target_index;
+
+      return response;
+    },
+
+    adjacent : function (current_index, target_index) {
+      for (var i = target_index + 1; i >= target_index - 1; i--) {
+        if (i === current_index) {
+          return true;
+        }
+      }
+      return false;
+    },
+
+    // lock management
+
+    lock : function () {
+      this.settings.locked = true;
+    },
+
+    unlock : function () {
+      this.settings.locked = false;
+    },
+
+    locked : function () {
+      return this.settings.locked;
+    },
+
+    off : function () {
+      this.S(this.scope).off('.fndtn.clearing');
+      this.S(window).off('.fndtn.clearing');
+    },
+
+    reflow : function () {
+      this.init();
+    }
+  };
+
+}(jQuery, window, window.document));
+
+;(function ($, window, document, undefined) {
+  'use strict';
+
+  Foundation.libs.dropdown = {
+    name : 'dropdown',
+
+    version : '5.5.3',
+
+    settings : {
+      active_class : 'open',
+      disabled_class : 'disabled',
+      mega_class : 'mega',
+      align : 'bottom',
+      is_hover : false,
+      hover_timeout : 150,
+      opened : function () {},
+      closed : function () {}
+    },
+
+    init : function (scope, method, options) {
+      Foundation.inherit(this, 'throttle');
+
+      $.extend(true, this.settings, method, options);
+      this.bindings(method, options);
+    },
+
+    events : function (scope) {
+      var self = this,
+          S = self.S;
+
+      S(this.scope)
+        .off('.dropdown')
+        .on('click.fndtn.dropdown', '[' + this.attr_name() + ']', function (e) {
+          var settings = S(this).data(self.attr_name(true) + '-init') || self.settings;
+          if (!settings.is_hover || Modernizr.touch) {
+            e.preventDefault();
+            if (S(this).parent('[data-reveal-id]').length) {
+              e.stopPropagation();
+            }
+            self.toggle($(this));
+          }
+        })
+        .on('mouseenter.fndtn.dropdown', '[' + this.attr_name() + '], [' + this.attr_name() + '-content]', function (e) {
+          var $this = S(this),
+              dropdown,
+              target;
+
+          clearTimeout(self.timeout);
+
+          if ($this.data(self.data_attr())) {
+            dropdown = S('#' + $this.data(self.data_attr()));
+            target = $this;
+          } else {
+            dropdown = $this;
+            target = S('[' + self.attr_name() + '="' + dropdown.attr('id') + '"]');
+          }
+
+          var settings = target.data(self.attr_name(true) + '-init') || self.settings;
+
+          if (S(e.currentTarget).data(self.data_attr()) && settings.is_hover) {
+            self.closeall.call(self);
+          }
+
+          if (settings.is_hover) {
+            self.open.apply(self, [dropdown, target]);
+          }
+        })
+        .on('mouseleave.fndtn.dropdown', '[' + this.attr_name() + '], [' + this.attr_name() + '-content]', function (e) {
+          var $this = S(this);
+          var settings;
+
+          if ($this.data(self.data_attr())) {
+              settings = $this.data(self.data_attr(true) + '-init') || self.settings;
+          } else {
+              var target   = S('[' + self.attr_name() + '="' + S(this).attr('id') + '"]'),
+                  settings = target.data(self.attr_name(true) + '-init') || self.settings;
+          }
+
+          self.timeout = setTimeout(function () {
+            if ($this.data(self.data_attr())) {
+              if (settings.is_hover) {
+                self.close.call(self, S('#' + $this.data(self.data_attr())));
+              }
+            } else {
+              if (settings.is_hover) {
+                self.close.call(self, $this);
+              }
+            }
+          }.bind(this), settings.hover_timeout);
+        })
+        .on('click.fndtn.dropdown', function (e) {
+          var parent = S(e.target).closest('[' + self.attr_name() + '-content]');
+          var links  = parent.find('a');
+
+          if (links.length > 0 && parent.attr('aria-autoclose') !== 'false') {
+              self.close.call(self, S('[' + self.attr_name() + '-content]'));
+          }
+
+          if (e.target !== document && !$.contains(document.documentElement, e.target)) {
+            return;
+          }
+
+          if (S(e.target).closest('[' + self.attr_name() + ']').length > 0) {
+            return;
+          }
+
+          if (!(S(e.target).data('revealId')) &&
+            (parent.length > 0 && (S(e.target).is('[' + self.attr_name() + '-content]') ||
+              $.contains(parent.first()[0], e.target)))) {
+            e.stopPropagation();
+            return;
+          }
+
+          self.close.call(self, S('[' + self.attr_name() + '-content]'));
+        })
+        .on('opened.fndtn.dropdown', '[' + self.attr_name() + '-content]', function () {
+          self.settings.opened.call(this);
+        })
+        .on('closed.fndtn.dropdown', '[' + self.attr_name() + '-content]', function () {
+          self.settings.closed.call(this);
+        });
+
+      S(window)
+        .off('.dropdown')
+        .on('resize.fndtn.dropdown', self.throttle(function () {
+          self.resize.call(self);
+        }, 50));
+
+      this.resize();
+    },
+
+    close : function (dropdown) {
+      var self = this;
+      dropdown.each(function (idx) {
+        var original_target = $('[' + self.attr_name() + '=' + dropdown[idx].id + ']') || $('aria-controls=' + dropdown[idx].id + ']');
+        original_target.attr('aria-expanded', 'false');
+        if (self.S(this).hasClass(self.settings.active_class)) {
+          self.S(this)
+            .css(Foundation.rtl ? 'right' : 'left', '-99999px')
+            .attr('aria-hidden', 'true')
+            .removeClass(self.settings.active_class)
+            .prev('[' + self.attr_name() + ']')
+            .removeClass(self.settings.active_class)
+            .removeData('target');
+
+          self.S(this).trigger('closed.fndtn.dropdown', [dropdown]);
+        }
+      });
+      dropdown.removeClass('f-open-' + this.attr_name(true));
+    },
+
+    closeall : function () {
+      var self = this;
+      $.each(self.S('.f-open-' + this.attr_name(true)), function () {
+        self.close.call(self, self.S(this));
+      });
+    },
+
+    open : function (dropdown, target) {
+      this
+        .css(dropdown
+        .addClass(this.settings.active_class), target);
+      dropdown.prev('[' + this.attr_name() + ']').addClass(this.settings.active_class);
+      dropdown.data('target', target.get(0)).trigger('opened.fndtn.dropdown', [dropdown, target]);
+      dropdown.attr('aria-hidden', 'false');
+      target.attr('aria-expanded', 'true');
+      dropdown.focus();
+      dropdown.addClass('f-open-' + this.attr_name(true));
+    },
+
+    data_attr : function () {
+      if (this.namespace.length > 0) {
+        return this.namespace + '-' + this.name;
+      }
+
+      return this.name;
+    },
+
+    toggle : function (target) {
+      if (target.hasClass(this.settings.disabled_class)) {
+        return;
+      }
+      var dropdown = this.S('#' + target.data(this.data_attr()));
+      if (dropdown.length === 0) {
+        // No dropdown found, not continuing
+        return;
+      }
+
+      this.close.call(this, this.S('[' + this.attr_name() + '-content]').not(dropdown));
+
+      if (dropdown.hasClass(this.settings.active_class)) {
+        this.close.call(this, dropdown);
+        if (dropdown.data('target') !== target.get(0)) {
+          this.open.call(this, dropdown, target);
+        }
+      } else {
+        this.open.call(this, dropdown, target);
+      }
+    },
+
+    resize : function () {
+      var dropdown = this.S('[' + this.attr_name() + '-content].open');
+      var target = $(dropdown.data("target"));
+
+      if (dropdown.length && target.length) {
+        this.css(dropdown, target);
+      }
+    },
+
+    css : function (dropdown, target) {
+      var left_offset = Math.max((target.width() - dropdown.width()) / 2, 8),
+          settings = target.data(this.attr_name(true) + '-init') || this.settings,
+          parentOverflow = dropdown.parent().css('overflow-y') || dropdown.parent().css('overflow');
+
+      this.clear_idx();
+
+
+
+      if (this.small()) {
+        var p = this.dirs.bottom.call(dropdown, target, settings);
+
+        dropdown.attr('style', '').removeClass('drop-left drop-right drop-top').css({
+          position : 'absolute',
+          width : '95%',
+          'max-width' : 'none',
+          top : p.top
+        });
+
+        dropdown.css(Foundation.rtl ? 'right' : 'left', left_offset);
+      }
+      // detect if dropdown is in an overflow container
+      else if (parentOverflow !== 'visible') {
+        var offset = target[0].offsetTop + target[0].offsetHeight;
+
+        dropdown.attr('style', '').css({
+          position : 'absolute',
+          top : offset
+        });
+
+        dropdown.css(Foundation.rtl ? 'right' : 'left', left_offset);
+      }
+      else {
+
+        this.style(dropdown, target, settings);
+      }
+
+      return dropdown;
+    },
+
+    style : function (dropdown, target, settings) {
+      var css = $.extend({position : 'absolute'},
+        this.dirs[settings.align].call(dropdown, target, settings));
+
+      dropdown.attr('style', '').css(css);
+    },
+
+    // return CSS property object
+    // `this` is the dropdown
+    dirs : {
+      // Calculate target offset
+      _base : function (t, s) {
+        var o_p = this.offsetParent(),
+            o = o_p.offset(),
+            p = t.offset();
+
+        p.top -= o.top;
+        p.left -= o.left;
+
+        //set some flags on the p object to pass along
+        p.missRight = false;
+        p.missTop = false;
+        p.missLeft = false;
+        p.leftRightFlag = false;
+
+        //lets see if the panel will be off the screen
+        //get the actual width of the page and store it
+        var actualBodyWidth;
+        var windowWidth = window.innerWidth;
+        
+        if (document.getElementsByClassName('row')[0]) {
+          actualBodyWidth = document.getElementsByClassName('row')[0].clientWidth;
+        } else {
+          actualBodyWidth = windowWidth;
+        }
+
+        var actualMarginWidth = (windowWidth - actualBodyWidth) / 2;
+        var actualBoundary = actualBodyWidth;
+
+        if (!this.hasClass('mega') && !s.ignore_repositioning) {
+          var outerWidth = this.outerWidth();
+          var o_left = t.offset().left;
+                 
+          //miss top
+          if (t.offset().top <= this.outerHeight()) {
+            p.missTop = true;
+            actualBoundary = windowWidth - actualMarginWidth;
+            p.leftRightFlag = true;
+          }
+
+          //miss right
+          if (o_left + outerWidth > o_left + actualMarginWidth && o_left - actualMarginWidth > outerWidth) {
+            p.missRight = true;
+            p.missLeft = false;
+          }
+
+          //miss left
+          if (o_left - outerWidth <= 0) {
+            p.missLeft = true;
+            p.missRight = false;
+          }
+        }
+
+        return p;
+      },
+
+      top : function (t, s) {
+        var self = Foundation.libs.dropdown,
+            p = self.dirs._base.call(this, t, s);
+
+        this.addClass('drop-top');
+
+        if (p.missTop == true) {
+          p.top = p.top + t.outerHeight() + this.outerHeight();
+          this.removeClass('drop-top');
+        }
+
+        if (p.missRight == true) {
+          p.left = p.left - this.outerWidth() + t.outerWidth();
+        }
+
+        if (t.outerWidth() < this.outerWidth() || self.small() || this.hasClass(s.mega_menu)) {
+          self.adjust_pip(this, t, s, p);
+        }
+
+        if (Foundation.rtl) {
+          return {left : p.left - this.outerWidth() + t.outerWidth(),
+            top : p.top - this.outerHeight()};
+        }
+
+        return {left : p.left, top : p.top - this.outerHeight()};
+      },
+
+      bottom : function (t, s) {
+        var self = Foundation.libs.dropdown,
+            p = self.dirs._base.call(this, t, s);
+
+        if (p.missRight == true) {
+          p.left = p.left - this.outerWidth() + t.outerWidth();
+        }
+
+        if (t.outerWidth() < this.outerWidth() || self.small() || this.hasClass(s.mega_menu)) {
+          self.adjust_pip(this, t, s, p);
+        }
+
+        if (self.rtl) {
+          return {left : p.left - this.outerWidth() + t.outerWidth(), top : p.top + t.outerHeight()};
+        }
+
+        return {left : p.left, top : p.top + t.outerHeight()};
+      },
+
+      left : function (t, s) {
+        var p = Foundation.libs.dropdown.dirs._base.call(this, t, s);
+
+        this.addClass('drop-left');
+
+        if (p.missLeft == true) {
+          p.left =  p.left + this.outerWidth();
+          p.top = p.top + t.outerHeight();
+          this.removeClass('drop-left');
+        }
+
+        return {left : p.left - this.outerWidth(), top : p.top};
+      },
+
+      right : function (t, s) {
+        var p = Foundation.libs.dropdown.dirs._base.call(this, t, s);
+
+        this.addClass('drop-right');
+
+        if (p.missRight == true) {
+          p.left = p.left - this.outerWidth();
+          p.top = p.top + t.outerHeight();
+          this.removeClass('drop-right');
+        } else {
+          p.triggeredRight = true;
+        }
+
+        var self = Foundation.libs.dropdown;
+
+        if (t.outerWidth() < this.outerWidth() || self.small() || this.hasClass(s.mega_menu)) {
+          self.adjust_pip(this, t, s, p);
+        }
+
+        return {left : p.left + t.outerWidth(), top : p.top};
+      }
+    },
+
+    // Insert rule to style psuedo elements
+    adjust_pip : function (dropdown, target, settings, position) {
+      var sheet = Foundation.stylesheet,
+          pip_offset_base = 8;
+
+      if (dropdown.hasClass(settings.mega_class)) {
+        pip_offset_base = position.left + (target.outerWidth() / 2) - 8;
+      } else if (this.small()) {
+        pip_offset_base += position.left - 8;
+      }
+
+      this.rule_idx = sheet.cssRules.length;
+
+      //default
+      var sel_before = '.f-dropdown.open:before',
+          sel_after  = '.f-dropdown.open:after',
+          css_before = 'left: ' + pip_offset_base + 'px;',
+          css_after  = 'left: ' + (pip_offset_base - 1) + 'px;';
+
+      if (position.missRight == true) {
+        pip_offset_base = dropdown.outerWidth() - 23;
+        sel_before = '.f-dropdown.open:before',
+        sel_after  = '.f-dropdown.open:after',
+        css_before = 'left: ' + pip_offset_base + 'px;',
+        css_after  = 'left: ' + (pip_offset_base - 1) + 'px;';
+      }
+
+      //just a case where right is fired, but its not missing right
+      if (position.triggeredRight == true) {
+        sel_before = '.f-dropdown.open:before',
+        sel_after  = '.f-dropdown.open:after',
+        css_before = 'left:-12px;',
+        css_after  = 'left:-14px;';
+      }
+
+      if (sheet.insertRule) {
+        sheet.insertRule([sel_before, '{', css_before, '}'].join(' '), this.rule_idx);
+        sheet.insertRule([sel_after, '{', css_after, '}'].join(' '), this.rule_idx + 1);
+      } else {
+        sheet.addRule(sel_before, css_before, this.rule_idx);
+        sheet.addRule(sel_after, css_after, this.rule_idx + 1);
+      }
+    },
+
+    // Remove old dropdown rule index
+    clear_idx : function () {
+      var sheet = Foundation.stylesheet;
+
+      if (typeof this.rule_idx !== 'undefined') {
+        sheet.deleteRule(this.rule_idx);
+        sheet.deleteRule(this.rule_idx);
+        delete this.rule_idx;
+      }
+    },
+
+    small : function () {
+      return matchMedia(Foundation.media_queries.small).matches &&
+        !matchMedia(Foundation.media_queries.medium).matches;
+    },
+
+    off : function () {
+      this.S(this.scope).off('.fndtn.dropdown');
+      this.S('html, body').off('.fndtn.dropdown');
+      this.S(window).off('.fndtn.dropdown');
+      this.S('[data-dropdown-content]').off('.fndtn.dropdown');
+    },
+
+    reflow : function () {}
+  };
+}(jQuery, window, window.document));
+
+;(function ($, window, document, undefined) {
+  'use strict';
+
+  Foundation.libs.equalizer = {
+    name : 'equalizer',
+
+    version : '5.5.3',
+
+    settings : {
+      use_tallest : true,
+      before_height_change : $.noop,
+      after_height_change : $.noop,
+      equalize_on_stack : false,
+      act_on_hidden_el: false
+    },
+
+    init : function (scope, method, options) {
+      Foundation.inherit(this, 'image_loaded');
+      this.bindings(method, options);
+      this.reflow();
+    },
+
+    events : function () {
+      this.S(window).off('.equalizer').on('resize.fndtn.equalizer', function (e) {
+        this.reflow();
+      }.bind(this));
+    },
+
+    equalize : function (equalizer) {
+      var isStacked = false,
+          group = equalizer.data('equalizer'),
+          settings = equalizer.data(this.attr_name(true)+'-init') || this.settings,
+          vals,
+          firstTopOffset;
+
+      if (settings.act_on_hidden_el) {
+        vals = group ? equalizer.find('['+this.attr_name()+'-watch="'+group+'"]') : equalizer.find('['+this.attr_name()+'-watch]');
+      }
+      else {
+        vals = group ? equalizer.find('['+this.attr_name()+'-watch="'+group+'"]:visible') : equalizer.find('['+this.attr_name()+'-watch]:visible');
+      }
+      
+      if (vals.length === 0) {
+        return;
+      }
+
+      settings.before_height_change();
+      equalizer.trigger('before-height-change.fndth.equalizer');
+      vals.height('inherit');
+
+      if (settings.equalize_on_stack === false) {
+        firstTopOffset = vals.first().offset().top;
+        vals.each(function () {
+          if ($(this).offset().top !== firstTopOffset) {
+            isStacked = true;
+            return false;
+          }
+        });
+        if (isStacked) {
+          return;
+        }
+      }
+
+      var heights = vals.map(function () { return $(this).outerHeight(false) }).get();
+
+      if (settings.use_tallest) {
+        var max = Math.max.apply(null, heights);
+        vals.css('height', max);
+      } else {
+        var min = Math.min.apply(null, heights);
+        vals.css('height', min);
+      }
+
+      settings.after_height_change();
+      equalizer.trigger('after-height-change.fndtn.equalizer');
+    },
+
+    reflow : function () {
+      var self = this;
+
+      this.S('[' + this.attr_name() + ']', this.scope).each(function () {
+        var $eq_target = $(this),
+            media_query = $eq_target.data('equalizer-mq'),
+            ignore_media_query = true;
+
+        if (media_query) {
+          media_query = 'is_' + media_query.replace(/-/g, '_');
+          if (Foundation.utils.hasOwnProperty(media_query)) {
+            ignore_media_query = false;
+          }
+        }
+
+        self.image_loaded(self.S('img', this), function () {
+          if (ignore_media_query || Foundation.utils[media_query]()) {
+            self.equalize($eq_target)
+          } else {
+            var vals = $eq_target.find('[' + self.attr_name() + '-watch]:visible');
+            vals.css('height', 'auto');
+          }
+        });
+      });
+    }
+  };
+})(jQuery, window, window.document);
+
+;(function ($, window, document, undefined) {
+  'use strict';
+
+  Foundation.libs.interchange = {
+    name : 'interchange',
+
+    version : '5.5.3',
+
+    cache : {},
+
+    images_loaded : false,
+    nodes_loaded : false,
+
+    settings : {
+      load_attr : 'interchange',
+
+      named_queries : {
+        'default'     : 'only screen',
+        'small'       : Foundation.media_queries['small'],
+        'small-only'  : Foundation.media_queries['small-only'],
+        'medium'      : Foundation.media_queries['medium'],
+        'medium-only' : Foundation.media_queries['medium-only'],
+        'large'       : Foundation.media_queries['large'],
+        'large-only'  : Foundation.media_queries['large-only'],
+        'xlarge'      : Foundation.media_queries['xlarge'],
+        'xlarge-only' : Foundation.media_queries['xlarge-only'],
+        'xxlarge'     : Foundation.media_queries['xxlarge'],
+        'landscape'   : 'only screen and (orientation: landscape)',
+        'portrait'    : 'only screen and (orientation: portrait)',
+        'retina'      : 'only screen and (-webkit-min-device-pixel-ratio: 2),' +
+          'only screen and (min--moz-device-pixel-ratio: 2),' +
+          'only screen and (-o-min-device-pixel-ratio: 2/1),' +
+          'only screen and (min-device-pixel-ratio: 2),' +
+          'only screen and (min-resolution: 192dpi),' +
+          'only screen and (min-resolution: 2dppx)'
+      },
+
+      directives : {
+        replace : function (el, path, trigger) {
+          // The trigger argument, if called within the directive, fires
+          // an event named after the directive on the element, passing
+          // any parameters along to the event that you pass to trigger.
+          //
+          // ex. trigger(), trigger([a, b, c]), or trigger(a, b, c)
+          //
+          // This allows you to bind a callback like so:
+          // $('#interchangeContainer').on('replace', function (e, a, b, c) {
+          //   console.log($(this).html(), a, b, c);
+          // });
+
+          if (el !== null && /IMG/.test(el[0].nodeName)) {
+            var orig_path = $.each(el, function(){this.src = path;});
+            // var orig_path = el[0].src;
+
+            if (new RegExp(path, 'i').test(orig_path)) {
+              return;
+            }
+
+            el.attr("src", path);
+
+            return trigger(el[0].src);
+          }
+          var last_path = el.data(this.data_attr + '-last-path'),
+              self = this;
+
+          if (last_path == path) {
+            return;
+          }
+
+          if (/\.(gif|jpg|jpeg|tiff|png)([?#].*)?/i.test(path)) {
+            $(el).css('background-image', 'url(' + path + ')');
+            el.data('interchange-last-path', path);
+            return trigger(path);
+          }
+
+          return $.get(path, function (response) {
+            el.html(response);
+            el.data(self.data_attr + '-last-path', path);
+            trigger();
+          });
+
+        }
+      }
+    },
+
+    init : function (scope, method, options) {
+      Foundation.inherit(this, 'throttle random_str');
+
+      this.data_attr = this.set_data_attr();
+      $.extend(true, this.settings, method, options);
+      this.bindings(method, options);
+      this.reflow();
+    },
+
+    get_media_hash : function () {
+        var mediaHash = '';
+        for (var queryName in this.settings.named_queries ) {
+            mediaHash += matchMedia(this.settings.named_queries[queryName]).matches.toString();
+        }
+        return mediaHash;
+    },
+
+    events : function () {
+      var self = this, prevMediaHash;
+
+      $(window)
+        .off('.interchange')
+        .on('resize.fndtn.interchange', self.throttle(function () {
+            var currMediaHash = self.get_media_hash();
+            if (currMediaHash !== prevMediaHash) {
+                self.resize();
+            }
+            prevMediaHash = currMediaHash;
+        }, 50));
+
+      return this;
+    },
+
+    resize : function () {
+      var cache = this.cache;
+
+      if (!this.images_loaded || !this.nodes_loaded) {
+        setTimeout($.proxy(this.resize, this), 50);
+        return;
+      }
+
+      for (var uuid in cache) {
+        if (cache.hasOwnProperty(uuid)) {
+          var passed = this.results(uuid, cache[uuid]);
+          if (passed) {
+            this.settings.directives[passed
+              .scenario[1]].call(this, passed.el, passed.scenario[0], (function (passed) {
+                if (arguments[0] instanceof Array) {
+                  var args = arguments[0];
+                } else {
+                  var args = Array.prototype.slice.call(arguments, 0);
+                }
+
+                return function() {
+                  passed.el.trigger(passed.scenario[1], args);
+                }
+              }(passed)));
+          }
+        }
+      }
+
+    },
+
+    results : function (uuid, scenarios) {
+      var count = scenarios.length;
+
+      if (count > 0) {
+        var el = this.S('[' + this.add_namespace('data-uuid') + '="' + uuid + '"]');
+
+        while (count--) {
+          var mq, rule = scenarios[count][2];
+          if (this.settings.named_queries.hasOwnProperty(rule)) {
+            mq = matchMedia(this.settings.named_queries[rule]);
+          } else {
+            mq = matchMedia(rule);
+          }
+          if (mq.matches) {
+            return {el : el, scenario : scenarios[count]};
+          }
+        }
+      }
+
+      return false;
+    },
+
+    load : function (type, force_update) {
+      if (typeof this['cached_' + type] === 'undefined' || force_update) {
+        this['update_' + type]();
+      }
+
+      return this['cached_' + type];
+    },
+
+    update_images : function () {
+      var images = this.S('img[' + this.data_attr + ']'),
+          count = images.length,
+          i = count,
+          loaded_count = 0,
+          data_attr = this.data_attr;
+
+      this.cache = {};
+      this.cached_images = [];
+      this.images_loaded = (count === 0);
+
+      while (i--) {
+        loaded_count++;
+        if (images[i]) {
+          var str = images[i].getAttribute(data_attr) || '';
+
+          if (str.length > 0) {
+            this.cached_images.push(images[i]);
+          }
+        }
+
+        if (loaded_count === count) {
+          this.images_loaded = true;
+          this.enhance('images');
+        }
+      }
+
+      return this;
+    },
+
+    update_nodes : function () {
+      var nodes = this.S('[' + this.data_attr + ']').not('img'),
+          count = nodes.length,
+          i = count,
+          loaded_count = 0,
+          data_attr = this.data_attr;
+
+      this.cached_nodes = [];
+      this.nodes_loaded = (count === 0);
+
+      while (i--) {
+        loaded_count++;
+        var str = nodes[i].getAttribute(data_attr) || '';
+
+        if (str.length > 0) {
+          this.cached_nodes.push(nodes[i]);
+        }
+
+        if (loaded_count === count) {
+          this.nodes_loaded = true;
+          this.enhance('nodes');
+        }
+      }
+
+      return this;
+    },
+
+    enhance : function (type) {
+      var i = this['cached_' + type].length;
+
+      while (i--) {
+        this.object($(this['cached_' + type][i]));
+      }
+
+      return $(window).trigger('resize.fndtn.interchange');
+    },
+
+    convert_directive : function (directive) {
+
+      var trimmed = this.trim(directive);
+
+      if (trimmed.length > 0) {
+        return trimmed;
+      }
+
+      return 'replace';
+    },
+
+    parse_scenario : function (scenario) {
+      // This logic had to be made more complex since some users were using commas in the url path
+      // So we cannot simply just split on a comma
+
+      var directive_match = scenario[0].match(/(.+),\s*(\w+)\s*$/),
+      // getting the mq has gotten a bit complicated since we started accounting for several use cases
+      // of URLs. For now we'll continue to match these scenarios, but we may consider having these scenarios
+      // as nested objects or arrays in F6.
+      // regex: match everything before close parenthesis for mq
+      media_query         = scenario[1].match(/(.*)\)/);
+
+      if (directive_match) {
+        var path  = directive_match[1],
+        directive = directive_match[2];
+
+      } else {
+        var cached_split = scenario[0].split(/,\s*$/),
+        path             = cached_split[0],
+        directive        = '';
+      }
+
+      return [this.trim(path), this.convert_directive(directive), this.trim(media_query[1])];
+    },
+
+    object : function (el) {
+      var raw_arr = this.parse_data_attr(el),
+          scenarios = [],
+          i = raw_arr.length;
+
+      if (i > 0) {
+        while (i--) {
+          // split array between comma delimited content and mq
+          // regex: comma, optional space, open parenthesis
+          var scenario = raw_arr[i].split(/,\s?\(/);
+
+          if (scenario.length > 1) {
+            var params = this.parse_scenario(scenario);
+            scenarios.push(params);
+          }
+        }
+      }
+
+      return this.store(el, scenarios);
+    },
+
+    store : function (el, scenarios) {
+      var uuid = this.random_str(),
+          current_uuid = el.data(this.add_namespace('uuid', true));
+
+      if (this.cache[current_uuid]) {
+        return this.cache[current_uuid];
+      }
+
+      el.attr(this.add_namespace('data-uuid'), uuid);
+      return this.cache[uuid] = scenarios;
+    },
+
+    trim : function (str) {
+
+      if (typeof str === 'string') {
+        return $.trim(str);
+      }
+
+      return str;
+    },
+
+    set_data_attr : function (init) {
+      if (init) {
+        if (this.namespace.length > 0) {
+          return this.namespace + '-' + this.settings.load_attr;
+        }
+
+        return this.settings.load_attr;
+      }
+
+      if (this.namespace.length > 0) {
+        return 'data-' + this.namespace + '-' + this.settings.load_attr;
+      }
+
+      return 'data-' + this.settings.load_attr;
+    },
+
+    parse_data_attr : function (el) {
+      var raw = el.attr(this.attr_name()).split(/\[(.*?)\]/),
+          i = raw.length,
+          output = [];
+
+      while (i--) {
+        if (raw[i].replace(/[\W\d]+/, '').length > 4) {
+          output.push(raw[i]);
+        }
+      }
+
+      return output;
+    },
+
+    reflow : function () {
+      this.load('images', true);
+      this.load('nodes', true);
+    }
+
+  };
+
+}(jQuery, window, window.document));
+
+;(function ($, window, document, undefined) {
+  'use strict';
+
+  var Modernizr = Modernizr || false;
+
+  Foundation.libs.joyride = {
+    name : 'joyride',
+
+    version : '5.5.3',
+
+    defaults : {
+      expose                   : false,     // turn on or off the expose feature
+      modal                    : true,      // Whether to cover page with modal during the tour
+      keyboard                 : true,      // enable left, right and esc keystrokes
+      tip_location             : 'bottom',  // 'top', 'bottom', 'left' or 'right' in relation to parent
+      nub_position             : 'auto',    // override on a per tooltip bases
+      scroll_speed             : 1500,      // Page scrolling speed in milliseconds, 0 = no scroll animation
+      scroll_animation         : 'linear',  // supports 'swing' and 'linear', extend with jQuery UI.
+      timer                    : 0,         // 0 = no timer , all other numbers = timer in milliseconds
+      start_timer_on_click     : true,      // true or false - true requires clicking the first button start the timer
+      start_offset             : 0,         // the index of the tooltip you want to start on (index of the li)
+      next_button              : true,      // true or false to control whether a next button is used
+      prev_button              : true,      // true or false to control whether a prev button is used
+      tip_animation            : 'fade',    // 'pop' or 'fade' in each tip
+      pause_after              : [],        // array of indexes where to pause the tour after
+      exposed                  : [],        // array of expose elements
+      tip_animation_fade_speed : 300,       // when tipAnimation = 'fade' this is speed in milliseconds for the transition
+      cookie_monster           : false,     // true or false to control whether cookies are used
+      cookie_name              : 'joyride', // Name the cookie you'll use
+      cookie_domain            : false,     // Will this cookie be attached to a domain, ie. '.notableapp.com'
+      cookie_expires           : 365,       // set when you would like the cookie to expire.
+      tip_container            : 'body',    // Where will the tip be attached
+      abort_on_close           : true,      // When true, the close event will not fire any callback
+      tip_location_patterns    : {
+        top : ['bottom'],
+        bottom : [], // bottom should not need to be repositioned
+        left : ['right', 'top', 'bottom'],
+        right : ['left', 'top', 'bottom']
+      },
+      post_ride_callback     : function () {},    // A method to call once the tour closes (canceled or complete)
+      post_step_callback     : function () {},    // A method to call after each step
+      pre_step_callback      : function () {},    // A method to call before each step
+      pre_ride_callback      : function () {},    // A method to call before the tour starts (passed index, tip, and cloned exposed element)
+      post_expose_callback   : function () {},    // A method to call after an element has been exposed
+      template : { // HTML segments for tip layout
+        link          : '<a href="#close" class="joyride-close-tip">&times;</a>',
+        timer         : '<div class="joyride-timer-indicator-wrap"><span class="joyride-timer-indicator"></span></div>',
+        tip           : '<div class="joyride-tip-guide"><span class="joyride-nub"></span></div>',
+        wrapper       : '<div class="joyride-content-wrapper"></div>',
+        button        : '<a href="#" class="small button joyride-next-tip"></a>',
+        prev_button   : '<a href="#" class="small button joyride-prev-tip"></a>',
+        modal         : '<div class="joyride-modal-bg"></div>',
+        expose        : '<div class="joyride-expose-wrapper"></div>',
+        expose_cover  : '<div class="joyride-expose-cover"></div>'
+      },
+      expose_add_class : '' // One or more space-separated class names to be added to exposed element
+    },
+
+    init : function (scope, method, options) {
+      Foundation.inherit(this, 'throttle random_str');
+
+      this.settings = this.settings || $.extend({}, this.defaults, (options || method));
+
+      this.bindings(method, options)
+    },
+
+    go_next : function () {
+      if (this.settings.$li.next().length < 1) {
+        this.end();
+      } else if (this.settings.timer > 0) {
+        clearTimeout(this.settings.automate);
+        this.hide();
+        this.show();
+        this.startTimer();
+      } else {
+        this.hide();
+        this.show();
+      }
+    },
+
+    go_prev : function () {
+      if (this.settings.$li.prev().length < 1) {
+        // Do nothing if there are no prev element
+      } else if (this.settings.timer > 0) {
+        clearTimeout(this.settings.automate);
+        this.hide();
+        this.show(null, true);
+        this.startTimer();
+      } else {
+        this.hide();
+        this.show(null, true);
+      }
+    },
+
+    events : function () {
+      var self = this;
+
+      $(this.scope)
+        .off('.joyride')
+        .on('click.fndtn.joyride', '.joyride-next-tip, .joyride-modal-bg', function (e) {
+          e.preventDefault();
+          this.go_next()
+        }.bind(this))
+        .on('click.fndtn.joyride', '.joyride-prev-tip', function (e) {
+          e.preventDefault();
+          this.go_prev();
+        }.bind(this))
+
+        .on('click.fndtn.joyride', '.joyride-close-tip', function (e) {
+          e.preventDefault();
+          this.end(this.settings.abort_on_close);
+        }.bind(this))
+
+        .on('keyup.fndtn.joyride', function (e) {
+          // Don't do anything if keystrokes are disabled
+          // or if the joyride is not being shown
+          if (!this.settings.keyboard || !this.settings.riding) {
+            return;
+          }
+
+          switch (e.which) {
+            case 39: // right arrow
+              e.preventDefault();
+              this.go_next();
+              break;
+            case 37: // left arrow
+              e.preventDefault();
+              this.go_prev();
+              break;
+            case 27: // escape
+              e.preventDefault();
+              this.end(this.settings.abort_on_close);
+          }
+        }.bind(this));
+
+      $(window)
+        .off('.joyride')
+        .on('resize.fndtn.joyride', self.throttle(function () {
+          if ($('[' + self.attr_name() + ']').length > 0 && self.settings.$next_tip && self.settings.riding) {
+            if (self.settings.exposed.length > 0) {
+              var $els = $(self.settings.exposed);
+
+              $els.each(function () {
+                var $this = $(this);
+                self.un_expose($this);
+                self.expose($this);
+              });
+            }
+
+            if (self.is_phone()) {
+              self.pos_phone();
+            } else {
+              self.pos_default(false);
+            }
+          }
+        }, 100));
+    },
+
+    start : function () {
+      var self = this,
+          $this = $('[' + this.attr_name() + ']', this.scope),
+          integer_settings = ['timer', 'scrollSpeed', 'startOffset', 'tipAnimationFadeSpeed', 'cookieExpires'],
+          int_settings_count = integer_settings.length;
+
+      if (!$this.length > 0) {
+        return;
+      }
+
+      if (!this.settings.init) {
+        this.events();
+      }
+
+      this.settings = $this.data(this.attr_name(true) + '-init');
+
+      // non configureable settings
+      this.settings.$content_el = $this;
+      this.settings.$body = $(this.settings.tip_container);
+      this.settings.body_offset = $(this.settings.tip_container).position();
+      this.settings.$tip_content = this.settings.$content_el.find('> li');
+      this.settings.paused = false;
+      this.settings.attempts = 0;
+      this.settings.riding = true;
+
+      // can we create cookies?
+      if (typeof $.cookie !== 'function') {
+        this.settings.cookie_monster = false;
+      }
+
+      // generate the tips and insert into dom.
+      if (!this.settings.cookie_monster || this.settings.cookie_monster && !$.cookie(this.settings.cookie_name)) {
+        this.settings.$tip_content.each(function (index) {
+          var $this = $(this);
+          this.settings = $.extend({}, self.defaults, self.data_options($this));
+
+          // Make sure that settings parsed from data_options are integers where necessary
+          var i = int_settings_count;
+          while (i--) {
+            self.settings[integer_settings[i]] = parseInt(self.settings[integer_settings[i]], 10);
+          }
+          self.create({$li : $this, index : index});
+        });
+
+        // show first tip
+        if (!this.settings.start_timer_on_click && this.settings.timer > 0) {
+          this.show('init');
+          this.startTimer();
+        } else {
+          this.show('init');
+        }
+
+      }
+    },
+
+    resume : function () {
+      this.set_li();
+      this.show();
+    },
+
+    tip_template : function (opts) {
+      var $blank, content;
+
+      opts.tip_class = opts.tip_class || '';
+
+      $blank = $(this.settings.template.tip).addClass(opts.tip_class);
+      content = $.trim($(opts.li).html()) +
+        this.prev_button_text(opts.prev_button_text, opts.index) +
+        this.button_text(opts.button_text) +
+        this.settings.template.link +
+        this.timer_instance(opts.index);
+
+      $blank.append($(this.settings.template.wrapper));
+      $blank.first().attr(this.add_namespace('data-index'), opts.index);
+      $('.joyride-content-wrapper', $blank).append(content);
+
+      return $blank[0];
+    },
+
+    timer_instance : function (index) {
+      var txt;
+
+      if ((index === 0 && this.settings.start_timer_on_click && this.settings.timer > 0) || this.settings.timer === 0) {
+        txt = '';
+      } else {
+        txt = $(this.settings.template.timer)[0].outerHTML;
+      }
+      return txt;
+    },
+
+    button_text : function (txt) {
+      if (this.settings.tip_settings.next_button) {
+        txt = $.trim(txt) || 'Next';
+        txt = $(this.settings.template.button).append(txt)[0].outerHTML;
+      } else {
+        txt = '';
+      }
+      return txt;
+    },
+
+    prev_button_text : function (txt, idx) {
+      if (this.settings.tip_settings.prev_button) {
+        txt = $.trim(txt) || 'Previous';
+
+        // Add the disabled class to the button if it's the first element
+        if (idx == 0) {
+          txt = $(this.settings.template.prev_button).append(txt).addClass('disabled')[0].outerHTML;
+        } else {
+          txt = $(this.settings.template.prev_button).append(txt)[0].outerHTML;
+        }
+      } else {
+        txt = '';
+      }
+      return txt;
+    },
+
+    create : function (opts) {
+      this.settings.tip_settings = $.extend({}, this.settings, this.data_options(opts.$li));
+      var buttonText = opts.$li.attr(this.add_namespace('data-button')) || opts.$li.attr(this.add_namespace('data-text')),
+          prevButtonText = opts.$li.attr(this.add_namespace('data-button-prev')) || opts.$li.attr(this.add_namespace('data-prev-text')),
+        tipClass = opts.$li.attr('class'),
+        $tip_content = $(this.tip_template({
+          tip_class : tipClass,
+          index : opts.index,
+          button_text : buttonText,
+          prev_button_text : prevButtonText,
+          li : opts.$li
+        }));
+
+      $(this.settings.tip_container).append($tip_content);
+    },
+
+    show : function (init, is_prev) {
+      var $timer = null;
+
+      // are we paused?
+      if (this.settings.$li === undefined || ($.inArray(this.settings.$li.index(), this.settings.pause_after) === -1)) {
+
+        // don't go to the next li if the tour was paused
+        if (this.settings.paused) {
+          this.settings.paused = false;
+        } else {
+          this.set_li(init, is_prev);
+        }
+
+        this.settings.attempts = 0;
+
+        if (this.settings.$li.length && this.settings.$target.length > 0) {
+          if (init) { //run when we first start
+            this.settings.pre_ride_callback(this.settings.$li.index(), this.settings.$next_tip);
+            if (this.settings.modal) {
+              this.show_modal();
+            }
+          }
+
+          this.settings.pre_step_callback(this.settings.$li.index(), this.settings.$next_tip);
+
+          if (this.settings.modal && this.settings.expose) {
+            this.expose();
+          }
+
+          this.settings.tip_settings = $.extend({}, this.settings, this.data_options(this.settings.$li));
+
+          this.settings.timer = parseInt(this.settings.timer, 10);
+
+          this.settings.tip_settings.tip_location_pattern = this.settings.tip_location_patterns[this.settings.tip_settings.tip_location];
+
+          // scroll and hide bg if not modal and not expose
+          if (!/body/i.test(this.settings.$target.selector) && !this.settings.expose) {
+            var joyridemodalbg = $('.joyride-modal-bg');
+            if (/pop/i.test(this.settings.tipAnimation)) {
+                joyridemodalbg.hide();
+            } else {
+                joyridemodalbg.fadeOut(this.settings.tipAnimationFadeSpeed);
+            }
+            this.scroll_to();
+          }
+
+          if (this.is_phone()) {
+            this.pos_phone(true);
+          } else {
+            this.pos_default(true);
+          }
+
+          $timer = this.settings.$next_tip.find('.joyride-timer-indicator');
+
+          if (/pop/i.test(this.settings.tip_animation)) {
+
+            $timer.width(0);
+
+            if (this.settings.timer > 0) {
+
+              this.settings.$next_tip.show();
+
+              setTimeout(function () {
+                $timer.animate({
+                  width : $timer.parent().width()
+                }, this.settings.timer, 'linear');
+              }.bind(this), this.settings.tip_animation_fade_speed);
+
+            } else {
+              this.settings.$next_tip.show();
+
+            }
+
+          } else if (/fade/i.test(this.settings.tip_animation)) {
+
+            $timer.width(0);
+
+            if (this.settings.timer > 0) {
+
+              this.settings.$next_tip
+                .fadeIn(this.settings.tip_animation_fade_speed)
+                .show();
+
+              setTimeout(function () {
+                $timer.animate({
+                  width : $timer.parent().width()
+                }, this.settings.timer, 'linear');
+              }.bind(this), this.settings.tip_animation_fade_speed);
+
+            } else {
+              this.settings.$next_tip.fadeIn(this.settings.tip_animation_fade_speed);
+            }
+          }
+
+          this.settings.$current_tip = this.settings.$next_tip;
+
+        // skip non-existant targets
+        } else if (this.settings.$li && this.settings.$target.length < 1) {
+
+          this.show(init, is_prev);
+
+        } else {
+
+          this.end();
+
+        }
+      } else {
+
+        this.settings.paused = true;
+
+      }
+
+    },
+
+    is_phone : function () {
+      return matchMedia(Foundation.media_queries.small).matches &&
+        !matchMedia(Foundation.media_queries.medium).matches;
+    },
+
+    hide : function () {
+      if (this.settings.modal && this.settings.expose) {
+        this.un_expose();
+      }
+
+      if (!this.settings.modal) {
+        $('.joyride-modal-bg').hide();
+      }
+
+      // Prevent scroll bouncing...wait to remove from layout
+      this.settings.$current_tip.css('visibility', 'hidden');
+      setTimeout($.proxy(function () {
+        this.hide();
+        this.css('visibility', 'visible');
+      }, this.settings.$current_tip), 0);
+      this.settings.post_step_callback(this.settings.$li.index(),
+        this.settings.$current_tip);
+    },
+
+    set_li : function (init, is_prev) {
+      if (init) {
+        this.settings.$li = this.settings.$tip_content.eq(this.settings.start_offset);
+        this.set_next_tip();
+        this.settings.$current_tip = this.settings.$next_tip;
+      } else {
+        if (is_prev) {
+          this.settings.$li = this.settings.$li.prev();
+        } else {
+          this.settings.$li = this.settings.$li.next();
+        }
+        this.set_next_tip();
+      }
+
+      this.set_target();
+    },
+
+    set_next_tip : function () {
+      this.settings.$next_tip = $('.joyride-tip-guide').eq(this.settings.$li.index());
+      this.settings.$next_tip.data('closed', '');
+    },
+
+    set_target : function () {
+      var cl = this.settings.$li.attr(this.add_namespace('data-class')),
+          id = this.settings.$li.attr(this.add_namespace('data-id')),
+          $sel = function () {
+            if (id) {
+              return $(document.getElementById(id));
+            } else if (cl) {
+              return $('.' + cl).first();
+            } else {
+              return $('body');
+            }
+          };
+
+      this.settings.$target = $sel();
+    },
+
+    scroll_to : function () {
+      var window_half, tipOffset;
+
+      window_half = $(window).height() / 2;
+      tipOffset = Math.ceil(this.settings.$target.offset().top - window_half + this.settings.$next_tip.outerHeight());
+
+      if (tipOffset != 0) {
+        $('html, body').stop().animate({
+          scrollTop : tipOffset
+        }, this.settings.scroll_speed, 'swing');
+      }
+    },
+
+    paused : function () {
+      return ($.inArray((this.settings.$li.index() + 1), this.settings.pause_after) === -1);
+    },
+
+    restart : function () {
+      this.hide();
+      this.settings.$li = undefined;
+      this.show('init');
+    },
+
+    pos_default : function (init) {
+      var $nub = this.settings.$next_tip.find('.joyride-nub'),
+          nub_width = Math.ceil($nub.outerWidth() / 2),
+          nub_height = Math.ceil($nub.outerHeight() / 2),
+          toggle = init || false;
+
+      // tip must not be "display: none" to calculate position
+      if (toggle) {
+        this.settings.$next_tip.css('visibility', 'hidden');
+        this.settings.$next_tip.show();
+      }
+
+      if (!/body/i.test(this.settings.$target.selector)) {
+        var topAdjustment = this.settings.tip_settings.tipAdjustmentY ? parseInt(this.settings.tip_settings.tipAdjustmentY) : 0,
+            leftAdjustment = this.settings.tip_settings.tipAdjustmentX ? parseInt(this.settings.tip_settings.tipAdjustmentX) : 0;
+
+        if (this.bottom()) {
+          if (this.rtl) {
+            this.settings.$next_tip.css({
+              top : (this.settings.$target.offset().top + nub_height + this.settings.$target.outerHeight() + topAdjustment),
+              left : this.settings.$target.offset().left + this.settings.$target.outerWidth() - this.settings.$next_tip.outerWidth() + leftAdjustment});
+          } else {
+            this.settings.$next_tip.css({
+              top : (this.settings.$target.offset().top + nub_height + this.settings.$target.outerHeight() + topAdjustment),
+              left : this.settings.$target.offset().left + leftAdjustment});
+          }
+
+          this.nub_position($nub, this.settings.tip_settings.nub_position, 'top');
+
+        } else if (this.top()) {
+          if (this.rtl) {
+            this.settings.$next_tip.css({
+              top : (this.settings.$target.offset().top - this.settings.$next_tip.outerHeight() - nub_height + topAdjustment),
+              left : this.settings.$target.offset().left + this.settings.$target.outerWidth() - this.settings.$next_tip.outerWidth()});
+          } else {
+            this.settings.$next_tip.css({
+              top : (this.settings.$target.offset().top - this.settings.$next_tip.outerHeight() - nub_height + topAdjustment),
+              left : this.settings.$target.offset().left + leftAdjustment});
+          }
+
+          this.nub_position($nub, this.settings.tip_settings.nub_position, 'bottom');
+
+        } else if (this.right()) {
+
+          this.settings.$next_tip.css({
+            top : this.settings.$target.offset().top + topAdjustment,
+            left : (this.settings.$target.outerWidth() + this.settings.$target.offset().left + nub_width + leftAdjustment)});
+
+          this.nub_position($nub, this.settings.tip_settings.nub_position, 'left');
+
+        } else if (this.left()) {
+
+          this.settings.$next_tip.css({
+            top : this.settings.$target.offset().top + topAdjustment,
+            left : (this.settings.$target.offset().left - this.settings.$next_tip.outerWidth() - nub_width + leftAdjustment)});
+
+          this.nub_position($nub, this.settings.tip_settings.nub_position, 'right');
+
+        }
+
+        if (!this.visible(this.corners(this.settings.$next_tip)) && this.settings.attempts < this.settings.tip_settings.tip_location_pattern.length) {
+
+          $nub.removeClass('bottom')
+            .removeClass('top')
+            .removeClass('right')
+            .removeClass('left');
+
+          this.settings.tip_settings.tip_location = this.settings.tip_settings.tip_location_pattern[this.settings.attempts];
+
+          this.settings.attempts++;
+
+          this.pos_default();
+
+        }
+
+      } else if (this.settings.$li.length) {
+
+        this.pos_modal($nub);
+
+      }
+
+      if (toggle) {
+        this.settings.$next_tip.hide();
+        this.settings.$next_tip.css('visibility', 'visible');
+      }
+
+    },
+
+    pos_phone : function (init) {
+      var tip_height = this.settings.$next_tip.outerHeight(),
+          tip_offset = this.settings.$next_tip.offset(),
+          target_height = this.settings.$target.outerHeight(),
+          $nub = $('.joyride-nub', this.settings.$next_tip),
+          nub_height = Math.ceil($nub.outerHeight() / 2),
+          toggle = init || false;
+
+      $nub.removeClass('bottom')
+        .removeClass('top')
+        .removeClass('right')
+        .removeClass('left');
+
+      if (toggle) {
+        this.settings.$next_tip.css('visibility', 'hidden');
+        this.settings.$next_tip.show();
+      }
+
+      if (!/body/i.test(this.settings.$target.selector)) {
+
+        if (this.top()) {
+
+            this.settings.$next_tip.offset({top : this.settings.$target.offset().top - tip_height - nub_height});
+            $nub.addClass('bottom');
+
+        } else {
+
+          this.settings.$next_tip.offset({top : this.settings.$target.offset().top + target_height + nub_height});
+          $nub.addClass('top');
+
+        }
+
+      } else if (this.settings.$li.length) {
+        this.pos_modal($nub);
+      }
+
+      if (toggle) {
+        this.settings.$next_tip.hide();
+        this.settings.$next_tip.css('visibility', 'visible');
+      }
+    },
+
+    pos_modal : function ($nub) {
+      this.center();
+      $nub.hide();
+
+      this.show_modal();
+    },
+
+    show_modal : function () {
+      if (!this.settings.$next_tip.data('closed')) {
+        var joyridemodalbg =  $('.joyride-modal-bg');
+        if (joyridemodalbg.length < 1) {
+          var joyridemodalbg = $(this.settings.template.modal);
+          joyridemodalbg.appendTo('body');
+        }
+
+        if (/pop/i.test(this.settings.tip_animation)) {
+            joyridemodalbg.show();
+        } else {
+            joyridemodalbg.fadeIn(this.settings.tip_animation_fade_speed);
+        }
+      }
+    },
+
+    expose : function () {
+      var expose,
+          exposeCover,
+          el,
+          origCSS,
+          origClasses,
+          randId = 'expose-' + this.random_str(6);
+
+      if (arguments.length > 0 && arguments[0] instanceof $) {
+        el = arguments[0];
+      } else if (this.settings.$target && !/body/i.test(this.settings.$target.selector)) {
+        el = this.settings.$target;
+      } else {
+        return false;
+      }
+
+      if (el.length < 1) {
+        if (window.console) {
+          console.error('element not valid', el);
+        }
+        return false;
+      }
+
+      expose = $(this.settings.template.expose);
+      this.settings.$body.append(expose);
+      expose.css({
+        top : el.offset().top,
+        left : el.offset().left,
+        width : el.outerWidth(true),
+        height : el.outerHeight(true)
+      });
+
+      exposeCover = $(this.settings.template.expose_cover);
+
+      origCSS = {
+        zIndex : el.css('z-index'),
+        position : el.css('position')
+      };
+
+      origClasses = el.attr('class') == null ? '' : el.attr('class');
+
+      el.css('z-index', parseInt(expose.css('z-index')) + 1);
+
+      if (origCSS.position == 'static') {
+        el.css('position', 'relative');
+      }
+
+      el.data('expose-css', origCSS);
+      el.data('orig-class', origClasses);
+      el.attr('class', origClasses + ' ' + this.settings.expose_add_class);
+
+      exposeCover.css({
+        top : el.offset().top,
+        left : el.offset().left,
+        width : el.outerWidth(true),
+        height : el.outerHeight(true)
+      });
+
+      if (this.settings.modal) {
+        this.show_modal();
+      }
+
+      this.settings.$body.append(exposeCover);
+      expose.addClass(randId);
+      exposeCover.addClass(randId);
+      el.data('expose', randId);
+      this.settings.post_expose_callback(this.settings.$li.index(), this.settings.$next_tip, el);
+      this.add_exposed(el);
+    },
+
+    un_expose : function () {
+      var exposeId,
+          el,
+          expose,
+          origCSS,
+          origClasses,
+          clearAll = false;
+
+      if (arguments.length > 0 && arguments[0] instanceof $) {
+        el = arguments[0];
+      } else if (this.settings.$target && !/body/i.test(this.settings.$target.selector)) {
+        el = this.settings.$target;
+      } else {
+        return false;
+      }
+
+      if (el.length < 1) {
+        if (window.console) {
+          console.error('element not valid', el);
+        }
+        return false;
+      }
+
+      exposeId = el.data('expose');
+      expose = $('.' + exposeId);
+
+      if (arguments.length > 1) {
+        clearAll = arguments[1];
+      }
+
+      if (clearAll === true) {
+        $('.joyride-expose-wrapper,.joyride-expose-cover').remove();
+      } else {
+        expose.remove();
+      }
+
+      origCSS = el.data('expose-css');
+
+      if (origCSS.zIndex == 'auto') {
+        el.css('z-index', '');
+      } else {
+        el.css('z-index', origCSS.zIndex);
+      }
+
+      if (origCSS.position != el.css('position')) {
+        if (origCSS.position == 'static') {// this is default, no need to set it.
+          el.css('position', '');
+        } else {
+          el.css('position', origCSS.position);
+        }
+      }
+
+      origClasses = el.data('orig-class');
+      el.attr('class', origClasses);
+      el.removeData('orig-classes');
+
+      el.removeData('expose');
+      el.removeData('expose-z-index');
+      this.remove_exposed(el);
+    },
+
+    add_exposed : function (el) {
+      this.settings.exposed = this.settings.exposed || [];
+      if (el instanceof $ || typeof el === 'object') {
+        this.settings.exposed.push(el[0]);
+      } else if (typeof el == 'string') {
+        this.settings.exposed.push(el);
+      }
+    },
+
+    remove_exposed : function (el) {
+      var search, i;
+      if (el instanceof $) {
+        search = el[0]
+      } else if (typeof el == 'string') {
+        search = el;
+      }
+
+      this.settings.exposed = this.settings.exposed || [];
+      i = this.settings.exposed.length;
+
+      while (i--) {
+        if (this.settings.exposed[i] == search) {
+          this.settings.exposed.splice(i, 1);
+          return;
+        }
+      }
+    },
+
+    center : function () {
+      var $w = $(window);
+
+      this.settings.$next_tip.css({
+        top : ((($w.height() - this.settings.$next_tip.outerHeight()) / 2) + $w.scrollTop()),
+        left : ((($w.width() - this.settings.$next_tip.outerWidth()) / 2) + $w.scrollLeft())
+      });
+
+      return true;
+    },
+
+    bottom : function () {
+      return /bottom/i.test(this.settings.tip_settings.tip_location);
+    },
+
+    top : function () {
+      return /top/i.test(this.settings.tip_settings.tip_location);
+    },
+
+    right : function () {
+      return /right/i.test(this.settings.tip_settings.tip_location);
+    },
+
+    left : function () {
+      return /left/i.test(this.settings.tip_settings.tip_location);
+    },
+
+    corners : function (el) {
+      if (el.length === 0) {
+         return [false, false, false, false];   
+      }
+      
+      var w = $(window),
+          window_half = w.height() / 2,
+          //using this to calculate since scroll may not have finished yet.
+          tipOffset = Math.ceil(this.settings.$target.offset().top - window_half + this.settings.$next_tip.outerHeight()),
+          right = w.width() + w.scrollLeft(),
+          offsetBottom =  w.height() + tipOffset,
+          bottom = w.height() + w.scrollTop(),
+          top = w.scrollTop();
+
+      if (tipOffset < top) {
+        if (tipOffset < 0) {
+          top = 0;
+        } else {
+          top = tipOffset;
+        }
+      }
+
+      if (offsetBottom > bottom) {
+        bottom = offsetBottom;
+      }
+
+      return [
+        el.offset().top < top,
+        right < el.offset().left + el.outerWidth(),
+        bottom < el.offset().top + el.outerHeight(),
+        w.scrollLeft() > el.offset().left
+      ];
+    },
+
+    visible : function (hidden_corners) {
+      var i = hidden_corners.length;
+
+      while (i--) {
+        if (hidden_corners[i]) {
+          return false;
+        }
+      }
+
+      return true;
+    },
+
+    nub_position : function (nub, pos, def) {
+      if (pos === 'auto') {
+        nub.addClass(def);
+      } else {
+        nub.addClass(pos);
+      }
+    },
+
+    startTimer : function () {
+      if (this.settings.$li.length) {
+        this.settings.automate = setTimeout(function () {
+          this.hide();
+          this.show();
+          this.startTimer();
+        }.bind(this), this.settings.timer);
+      } else {
+        clearTimeout(this.settings.automate);
+      }
+    },
+
+    end : function (abort) {
+      if (this.settings.cookie_monster) {
+        $.cookie(this.settings.cookie_name, 'ridden', {expires : this.settings.cookie_expires, domain : this.settings.cookie_domain});
+      }
+
+      if (this.settings.timer > 0) {
+        clearTimeout(this.settings.automate);
+      }
+
+      if (this.settings.modal && this.settings.expose) {
+        this.un_expose();
+      }
+
+      // Unplug keystrokes listener
+      $(this.scope).off('keyup.joyride')
+
+      this.settings.$next_tip.data('closed', true);
+      this.settings.riding = false;
+
+      $('.joyride-modal-bg').hide();
+      this.settings.$current_tip.hide();
+
+      if (typeof abort === 'undefined' || abort === false) {
+        this.settings.post_step_callback(this.settings.$li.index(), this.settings.$current_tip);
+        this.settings.post_ride_callback(this.settings.$li.index(), this.settings.$current_tip);
+      }
+
+      $('.joyride-tip-guide').remove();
+    },
+
+    off : function () {
+      $(this.scope).off('.joyride');
+      $(window).off('.joyride');
+      $('.joyride-close-tip, .joyride-next-tip, .joyride-modal-bg').off('.joyride');
+      $('.joyride-tip-guide, .joyride-modal-bg').remove();
+      clearTimeout(this.settings.automate);
+    },
+
+    reflow : function () {}
+  };
+}(jQuery, window, window.document));
+
+;(function ($, window, document, undefined) {
+  'use strict';
+
+  Foundation.libs['magellan-expedition'] = {
+    name : 'magellan-expedition',
+
+    version : '5.5.3',
+
+    settings : {
+      active_class : 'active',
+      threshold : 0, // pixels from the top of the expedition for it to become fixes
+      destination_threshold : 20, // pixels from the top of destination for it to be considered active
+      throttle_delay : 30, // calculation throttling to increase framerate
+      fixed_top : 0, // top distance in pixels assigend to the fixed element on scroll
+      offset_by_height : true,  // whether to offset the destination by the expedition height. Usually you want this to be true, unless your expedition is on the side.
+      duration : 700, // animation duration time
+      easing : 'swing' // animation easing
+    },
+
+    init : function (scope, method, options) {
+      Foundation.inherit(this, 'throttle');
+      this.bindings(method, options);
+    },
+
+    events : function () {
+      var self = this,
+          S = self.S,
+          settings = self.settings;
+
+      // initialize expedition offset
+      self.set_expedition_position();
+
+      S(self.scope)
+        .off('.magellan')
+        .on('click.fndtn.magellan', '[' + self.add_namespace('data-magellan-arrival') + '] a[href*=#]', function (e) {
+          var sameHost = ((this.hostname === location.hostname) || !this.hostname),
+              samePath = self.filterPathname(location.pathname) === self.filterPathname(this.pathname),
+              testHash = this.hash.replace(/(:|\.|\/)/g, '\\$1'),
+              anchor = this;
+
+          if (sameHost && samePath && testHash) {
+            e.preventDefault();
+            var expedition = $(this).closest('[' + self.attr_name() + ']'),
+                settings = expedition.data('magellan-expedition-init'),
+                hash = this.hash.split('#').join(''),
+                target = $('a[name="' + hash + '"]');
+
+            if (target.length === 0) {
+              target = $('#' + hash);
+
+            }
+
+            // Account for expedition height if fixed position
+            var scroll_top = target.offset().top - settings.destination_threshold + 1;
+            if (settings.offset_by_height) {
+              scroll_top = scroll_top - expedition.outerHeight();
+            }
+            $('html, body').stop().animate({
+              'scrollTop' : scroll_top
+            }, settings.duration, settings.easing, function () {
+              if (history.pushState) {
+                history.pushState(null, null, anchor.pathname + anchor.search + '#' + hash);
+              } else {
+                location.hash = anchor.pathname + anchor.search + '#' + hash;
+              }
+            });
+          }
+        })
+        .on('scroll.fndtn.magellan', self.throttle(this.check_for_arrivals.bind(this), settings.throttle_delay));
+    },
+
+    check_for_arrivals : function () {
+      var self = this;
+      self.update_arrivals();
+      self.update_expedition_positions();
+    },
+
+    set_expedition_position : function () {
+      var self = this;
+      $('[' + this.attr_name() + '=fixed]', self.scope).each(function (idx, el) {
+        var expedition = $(this),
+            settings = expedition.data('magellan-expedition-init'),
+            styles = expedition.attr('styles'), // save styles
+            top_offset, fixed_top;
+
+        expedition.attr('style', '');
+        top_offset = expedition.offset().top + settings.threshold;
+
+        //set fixed-top by attribute
+        fixed_top = parseInt(expedition.data('magellan-fixed-top'));
+        if (!isNaN(fixed_top)) {
+          self.settings.fixed_top = fixed_top;
+        }
+
+        expedition.data(self.data_attr('magellan-top-offset'), top_offset);
+        expedition.attr('style', styles);
+      });
+    },
+
+    update_expedition_positions : function () {
+      var self = this,
+          window_top_offset = $(window).scrollTop();
+
+      $('[' + this.attr_name() + '=fixed]', self.scope).each(function () {
+        var expedition = $(this),
+            settings = expedition.data('magellan-expedition-init'),
+            styles = expedition.attr('style'), // save styles
+            top_offset = expedition.data('magellan-top-offset');
+
+        //scroll to the top distance
+        if (window_top_offset + self.settings.fixed_top >= top_offset) {
+          // Placeholder allows height calculations to be consistent even when
+          // appearing to switch between fixed/non-fixed placement
+          var placeholder = expedition.prev('[' + self.add_namespace('data-magellan-expedition-clone') + ']');
+          if (placeholder.length === 0) {
+            placeholder = expedition.clone();
+            placeholder.removeAttr(self.attr_name());
+            placeholder.attr(self.add_namespace('data-magellan-expedition-clone'), '');
+            expedition.before(placeholder);
+          }
+          expedition.css({position :'fixed', top : settings.fixed_top}).addClass('fixed');
+        } else {
+          expedition.prev('[' + self.add_namespace('data-magellan-expedition-clone') + ']').remove();
+          expedition.attr('style', styles).css('position', '').css('top', '').removeClass('fixed');
+        }
+      });
+    },
+
+    update_arrivals : function () {
+      var self = this,
+          window_top_offset = $(window).scrollTop();
+
+      $('[' + this.attr_name() + ']', self.scope).each(function () {
+        var expedition = $(this),
+            settings = expedition.data(self.attr_name(true) + '-init'),
+            offsets = self.offsets(expedition, window_top_offset),
+            arrivals = expedition.find('[' + self.add_namespace('data-magellan-arrival') + ']'),
+            active_item = false;
+        offsets.each(function (idx, item) {
+          if (item.viewport_offset >= item.top_offset) {
+            var arrivals = expedition.find('[' + self.add_namespace('data-magellan-arrival') + ']');
+            arrivals.not(item.arrival).removeClass(settings.active_class);
+            item.arrival.addClass(settings.active_class);
+            active_item = true;
+            return true;
+          }
+        });
+
+        if (!active_item) {
+          arrivals.removeClass(settings.active_class);
+        }
+      });
+    },
+
+    offsets : function (expedition, window_offset) {
+      var self = this,
+          settings = expedition.data(self.attr_name(true) + '-init'),
+          viewport_offset = window_offset;
+
+      return expedition.find('[' + self.add_namespace('data-magellan-arrival') + ']').map(function (idx, el) {
+        var name = $(this).data(self.data_attr('magellan-arrival')),
+            dest = $('[' + self.add_namespace('data-magellan-destination') + '=' + name + ']');
+        if (dest.length > 0) {
+          var top_offset = dest.offset().top - settings.destination_threshold;
+          if (settings.offset_by_height) {
+            top_offset = top_offset - expedition.outerHeight();
+          }
+          top_offset = Math.floor(top_offset);
+          return {
+            destination : dest,
+            arrival : $(this),
+            top_offset : top_offset,
+            viewport_offset : viewport_offset
+          }
+        }
+      }).sort(function (a, b) {
+        if (a.top_offset < b.top_offset) {
+          return -1;
+        }
+        if (a.top_offset > b.top_offset) {
+          return 1;
+        }
+        return 0;
+      });
+    },
+
+    data_attr : function (str) {
+      if (this.namespace.length > 0) {
+        return this.namespace + '-' + str;
+      }
+
+      return str;
+    },
+
+    off : function () {
+      this.S(this.scope).off('.magellan');
+      this.S(window).off('.magellan');
+    },
+
+    filterPathname : function (pathname) {
+      pathname = pathname || '';
+      return pathname
+          .replace(/^\//,'')
+          .replace(/(?:index|default).[a-zA-Z]{3,4}$/,'')
+          .replace(/\/$/,'');
+    },
+
+    reflow : function () {
+      var self = this;
+      // remove placeholder expeditions used for height calculation purposes
+      $('[' + self.add_namespace('data-magellan-expedition-clone') + ']', self.scope).remove();
+    }
+  };
+}(jQuery, window, window.document));
+
+;(function ($, window, document, undefined) {
+  'use strict';
+
+  Foundation.libs.offcanvas = {
+    name : 'offcanvas',
+
+    version : '5.5.3',
+
+    settings : {
+      open_method : 'move',
+      close_on_click : false
+    },
+
+    init : function (scope, method, options) {
+      this.bindings(method, options);
+    },
+
+    events : function () {
+      var self = this,
+          S = self.S,
+          move_class = '',
+          right_postfix = '',
+          left_postfix = '',
+          top_postfix = '',
+          bottom_postfix = '';
+
+      if (this.settings.open_method === 'move') {
+        move_class = 'move-';
+        right_postfix = 'right';
+        left_postfix = 'left';
+        top_postfix = 'top';
+        bottom_postfix = 'bottom';
+      } else if (this.settings.open_method === 'overlap_single') {
+        move_class = 'offcanvas-overlap-';
+        right_postfix = 'right';
+        left_postfix = 'left';
+        top_postfix = 'top';
+        bottom_postfix = 'bottom';
+      } else if (this.settings.open_method === 'overlap') {
+        move_class = 'offcanvas-overlap';
+      }
+
+      S(this.scope).off('.offcanvas')
+        .on('click.fndtn.offcanvas', '.left-off-canvas-toggle', function (e) {
+          self.click_toggle_class(e, move_class + right_postfix);
+          if (self.settings.open_method !== 'overlap') {
+            S('.left-submenu').removeClass(move_class + right_postfix);
+          }
+          $('.left-off-canvas-toggle').attr('aria-expanded', 'true');
+        })
+        .on('click.fndtn.offcanvas', '.left-off-canvas-menu a', function (e) {
+          var settings = self.get_settings(e);
+          var parent = S(this).parent();
+
+          if (settings.close_on_click && !parent.hasClass('has-submenu') && !parent.hasClass('back')) {
+            self.hide.call(self, move_class + right_postfix, self.get_wrapper(e));
+            parent.parent().removeClass(move_class + right_postfix);
+          } else if (S(this).parent().hasClass('has-submenu')) {
+            e.preventDefault();
+            S(this).siblings('.left-submenu').toggleClass(move_class + right_postfix);
+          } else if (parent.hasClass('back')) {
+            e.preventDefault();
+            parent.parent().removeClass(move_class + right_postfix);
+          }
+          $('.left-off-canvas-toggle').attr('aria-expanded', 'true');
+        })
+        //end of left canvas
+        .on('click.fndtn.offcanvas', '.right-off-canvas-toggle', function (e) {
+          self.click_toggle_class(e, move_class + left_postfix);
+          if (self.settings.open_method !== 'overlap') {
+            S('.right-submenu').removeClass(move_class + left_postfix);
+          }
+          $('.right-off-canvas-toggle').attr('aria-expanded', 'true');
+        })
+        .on('click.fndtn.offcanvas', '.right-off-canvas-menu a', function (e) {
+          var settings = self.get_settings(e);
+          var parent = S(this).parent();
+
+          if (settings.close_on_click && !parent.hasClass('has-submenu') && !parent.hasClass('back')) {
+            self.hide.call(self, move_class + left_postfix, self.get_wrapper(e));
+            parent.parent().removeClass(move_class + left_postfix);
+          } else if (S(this).parent().hasClass('has-submenu')) {
+            e.preventDefault();
+            S(this).siblings('.right-submenu').toggleClass(move_class + left_postfix);
+          } else if (parent.hasClass('back')) {
+            e.preventDefault();
+            parent.parent().removeClass(move_class + left_postfix);
+          }
+          $('.right-off-canvas-toggle').attr('aria-expanded', 'true');
+        })
+        //end of right canvas
+        .on('click.fndtn.offcanvas', '.top-off-canvas-toggle', function (e) {
+          self.click_toggle_class(e, move_class + bottom_postfix);
+          if (self.settings.open_method !== 'overlap') {
+            S('.top-submenu').removeClass(move_class + bottom_postfix);
+          }
+          $('.top-off-canvas-toggle').attr('aria-expanded', 'true');
+        })
+        .on('click.fndtn.offcanvas', '.top-off-canvas-menu a', function (e) {
+          var settings = self.get_settings(e);
+          var parent = S(this).parent();
+
+          if (settings.close_on_click && !parent.hasClass('has-submenu') && !parent.hasClass('back')) {
+            self.hide.call(self, move_class + bottom_postfix, self.get_wrapper(e));
+            parent.parent().removeClass(move_class + bottom_postfix);
+          } else if (S(this).parent().hasClass('has-submenu')) {
+            e.preventDefault();
+            S(this).siblings('.top-submenu').toggleClass(move_class + bottom_postfix);
+          } else if (parent.hasClass('back')) {
+            e.preventDefault();
+            parent.parent().removeClass(move_class + bottom_postfix);
+          }
+          $('.top-off-canvas-toggle').attr('aria-expanded', 'true');
+        })
+        //end of top canvas
+        .on('click.fndtn.offcanvas', '.bottom-off-canvas-toggle', function (e) {
+          self.click_toggle_class(e, move_class + top_postfix);
+          if (self.settings.open_method !== 'overlap') {
+            S('.bottom-submenu').removeClass(move_class + top_postfix);
+          }
+          $('.bottom-off-canvas-toggle').attr('aria-expanded', 'true');
+        })
+        .on('click.fndtn.offcanvas', '.bottom-off-canvas-menu a', function (e) {
+          var settings = self.get_settings(e);
+          var parent = S(this).parent();
+
+          if (settings.close_on_click && !parent.hasClass('has-submenu') && !parent.hasClass('back')) {
+            self.hide.call(self, move_class + top_postfix, self.get_wrapper(e));
+            parent.parent().removeClass(move_class + top_postfix);
+          } else if (S(this).parent().hasClass('has-submenu')) {
+            e.preventDefault();
+            S(this).siblings('.bottom-submenu').toggleClass(move_class + top_postfix);
+          } else if (parent.hasClass('back')) {
+            e.preventDefault();
+            parent.parent().removeClass(move_class + top_postfix);
+          }
+          $('.bottom-off-canvas-toggle').attr('aria-expanded', 'true');
+        })
+        //end of bottom
+        .on('click.fndtn.offcanvas', '.exit-off-canvas', function (e) {
+          self.click_remove_class(e, move_class + left_postfix);
+          S('.right-submenu').removeClass(move_class + left_postfix);
+          if (right_postfix) {
+            self.click_remove_class(e, move_class + right_postfix);
+            S('.left-submenu').removeClass(move_class + left_postfix);
+          }
+          $('.right-off-canvas-toggle').attr('aria-expanded', 'true');
+        })
+        .on('click.fndtn.offcanvas', '.exit-off-canvas', function (e) {
+          self.click_remove_class(e, move_class + left_postfix);
+          $('.left-off-canvas-toggle').attr('aria-expanded', 'false');
+          if (right_postfix) {
+            self.click_remove_class(e, move_class + right_postfix);
+            $('.right-off-canvas-toggle').attr('aria-expanded', 'false');
+          }
+        })
+        .on('click.fndtn.offcanvas', '.exit-off-canvas', function (e) {
+          self.click_remove_class(e, move_class + top_postfix);
+          S('.bottom-submenu').removeClass(move_class + top_postfix);
+          if (bottom_postfix) {
+            self.click_remove_class(e, move_class + bottom_postfix);
+            S('.top-submenu').removeClass(move_class + top_postfix);
+          }
+          $('.bottom-off-canvas-toggle').attr('aria-expanded', 'true');
+        })
+        .on('click.fndtn.offcanvas', '.exit-off-canvas', function (e) {
+          self.click_remove_class(e, move_class + top_postfix);
+          $('.top-off-canvas-toggle').attr('aria-expanded', 'false');
+          if (bottom_postfix) {
+            self.click_remove_class(e, move_class + bottom_postfix);
+            $('.bottom-off-canvas-toggle').attr('aria-expanded', 'false');
+          }
+        });
+    },
+
+    toggle : function (class_name, $off_canvas) {
+      $off_canvas = $off_canvas || this.get_wrapper();
+      if ($off_canvas.is('.' + class_name)) {
+        this.hide(class_name, $off_canvas);
+      } else {
+        this.show(class_name, $off_canvas);
+      }
+    },
+
+    show : function (class_name, $off_canvas) {
+      $off_canvas = $off_canvas || this.get_wrapper();
+      $off_canvas.trigger('open.fndtn.offcanvas');
+      $off_canvas.addClass(class_name);
+    },
+
+    hide : function (class_name, $off_canvas) {
+      $off_canvas = $off_canvas || this.get_wrapper();
+      $off_canvas.trigger('close.fndtn.offcanvas');
+      $off_canvas.removeClass(class_name);
+    },
+
+    click_toggle_class : function (e, class_name) {
+      e.preventDefault();
+      var $off_canvas = this.get_wrapper(e);
+      this.toggle(class_name, $off_canvas);
+    },
+
+    click_remove_class : function (e, class_name) {
+      e.preventDefault();
+      var $off_canvas = this.get_wrapper(e);
+      this.hide(class_name, $off_canvas);
+    },
+
+    get_settings : function (e) {
+      var offcanvas  = this.S(e.target).closest('[' + this.attr_name() + ']');
+      return offcanvas.data(this.attr_name(true) + '-init') || this.settings;
+    },
+
+    get_wrapper : function (e) {
+      var $off_canvas = this.S(e ? e.target : this.scope).closest('.off-canvas-wrap');
+
+      if ($off_canvas.length === 0) {
+        $off_canvas = this.S('.off-canvas-wrap');
+      }
+      return $off_canvas;
+    },
+
+    reflow : function () {}
+  };
+}(jQuery, window, window.document));
+
+;(function ($, window, document, undefined) {
+  'use strict';
+
+  var noop = function () {};
+
+  var Orbit = function (el, settings) {
+    // Don't reinitialize plugin
+    if (el.hasClass(settings.slides_container_class)) {
+      return this;
+    }
+
+    var self = this,
+        container,
+        slides_container = el,
+        number_container,
+        bullets_container,
+        timer_container,
+        idx = 0,
+        animate,
+        timer,
+        locked = false,
+        adjust_height_after = false;
+
+    self.slides = function () {
+      return slides_container.children(settings.slide_selector);
+    };
+
+    self.slides().first().addClass(settings.active_slide_class);
+
+    self.update_slide_number = function (index) {
+      if (settings.slide_number) {
+        number_container.find('span:first').text(parseInt(index) + 1);
+        number_container.find('span:last').text(self.slides().length);
+      }
+      if (settings.bullets) {
+        bullets_container.children().removeClass(settings.bullets_active_class);
+        $(bullets_container.children().get(index)).addClass(settings.bullets_active_class);
+      }
+    };
+
+    self.update_active_link = function (index) {
+      var link = $('[data-orbit-link="' + self.slides().eq(index).attr('data-orbit-slide') + '"]');
+      link.siblings().removeClass(settings.bullets_active_class);
+      link.addClass(settings.bullets_active_class);
+    };
+
+    self.build_markup = function () {
+      slides_container.wrap('<div class="' + settings.container_class + '"></div>');
+      container = slides_container.parent();
+      slides_container.addClass(settings.slides_container_class);
+
+      if (settings.stack_on_small) {
+        container.addClass(settings.stack_on_small_class);
+      }
+
+      if (settings.navigation_arrows) {
+        container.append($('<a href="#"><span></span></a>').addClass(settings.prev_class));
+        container.append($('<a href="#"><span></span></a>').addClass(settings.next_class));
+      }
+
+      if (settings.timer) {
+        timer_container = $('<div>').addClass(settings.timer_container_class);
+        timer_container.append('<span>');
+        timer_container.append($('<div>').addClass(settings.timer_progress_class));
+        timer_container.addClass(settings.timer_paused_class);
+        container.append(timer_container);
+      }
+
+      if (settings.slide_number) {
+        number_container = $('<div>').addClass(settings.slide_number_class);
+        number_container.append('<span></span> ' + settings.slide_number_text + ' <span></span>');
+        container.append(number_container);
+      }
+
+      if (settings.bullets) {
+        bullets_container = $('<ol>').addClass(settings.bullets_container_class);
+        container.append(bullets_container);
+        bullets_container.wrap('<div class="orbit-bullets-container"></div>');
+        self.slides().each(function (idx, el) {
+          var bullet = $('<li>').attr('data-orbit-slide', idx).on('click', self.link_bullet);;
+          bullets_container.append(bullet);
+        });
+      }
+
+    };
+
+    self._goto = function (next_idx, start_timer) {
+      // if (locked) {return false;}
+      if (next_idx === idx) {return false;}
+      if (typeof timer === 'object') {timer.restart();}
+      var slides = self.slides();
+
+      var dir = 'next';
+      locked = true;
+      if (next_idx < idx) {dir = 'prev';}
+      if (next_idx >= slides.length) {
+        if (!settings.circular) {
+          return false;
+        }
+        next_idx = 0;
+      } else if (next_idx < 0) {
+        if (!settings.circular) {
+          return false;
+        }
+        next_idx = slides.length - 1;
+      }
+
+      var current = $(slides.get(idx));
+      var next = $(slides.get(next_idx));
+
+      current.css('zIndex', 2);
+      current.removeClass(settings.active_slide_class);
+      next.css('zIndex', 4).addClass(settings.active_slide_class);
+
+      slides_container.trigger('before-slide-change.fndtn.orbit');
+      settings.before_slide_change();
+      self.update_active_link(next_idx);
+
+      var callback = function () {
+        var unlock = function () {
+          idx = next_idx;
+          locked = false;
+          if (start_timer === true) {timer = self.create_timer(); timer.start();}
+          self.update_slide_number(idx);
+          slides_container.trigger('after-slide-change.fndtn.orbit', [{slide_number : idx, total_slides : slides.length}]);
+          settings.after_slide_change(idx, slides.length);
+        };
+        if (slides_container.outerHeight() != next.outerHeight() && settings.variable_height) {
+          slides_container.animate({'height': next.outerHeight()}, 250, 'linear', unlock);
+        } else {
+          unlock();
+        }
+      };
+
+      if (slides.length === 1) {callback(); return false;}
+
+      var start_animation = function () {
+        if (dir === 'next') {animate.next(current, next, callback);}
+        if (dir === 'prev') {animate.prev(current, next, callback);}
+      };
+
+      if (next.outerHeight() > slides_container.outerHeight() && settings.variable_height) {
+        slides_container.animate({'height': next.outerHeight()}, 250, 'linear', start_animation);
+      } else {
+        start_animation();
+      }
+    };
+
+    self.next = function (e) {
+      e.stopImmediatePropagation();
+      e.preventDefault();
+      self._goto(idx + 1);
+    };
+
+    self.prev = function (e) {
+      e.stopImmediatePropagation();
+      e.preventDefault();
+      self._goto(idx - 1);
+    };
+
+    self.link_custom = function (e) {
+      e.preventDefault();
+      var link = $(this).attr('data-orbit-link');
+      if ((typeof link === 'string') && (link = $.trim(link)) != '') {
+        var slide = container.find('[data-orbit-slide=' + link + ']');
+        if (slide.index() != -1) {self._goto(slide.index());}
+      }
+    };
+
+    self.link_bullet = function (e) {
+      var index = $(this).attr('data-orbit-slide');
+      if ((typeof index === 'string') && (index = $.trim(index)) != '') {
+        if (isNaN(parseInt(index))) {
+          var slide = container.find('[data-orbit-slide=' + index + ']');
+          if (slide.index() != -1) {self._goto(slide.index() + 1);}
+        } else {
+          self._goto(parseInt(index));
+        }
+      }
+
+    }
+
+    self.timer_callback = function () {
+      self._goto(idx + 1, true);
+    }
+
+    self.compute_dimensions = function () {
+      var current = $(self.slides().get(idx));
+      var h = current.outerHeight();
+      if (!settings.variable_height) {
+        self.slides().each(function(){
+          if ($(this).outerHeight() > h) { h = $(this).outerHeight(); }
+        });
+      }
+      slides_container.height(h);
+    };
+
+    self.create_timer = function () {
+      var t = new Timer(
+        container.find('.' + settings.timer_container_class),
+        settings,
+        self.timer_callback
+      );
+      return t;
+    };
+
+    self.stop_timer = function () {
+      if (typeof timer === 'object') {
+        timer.stop();
+      }
+    };
+
+    self.toggle_timer = function () {
+      var t = container.find('.' + settings.timer_container_class);
+      if (t.hasClass(settings.timer_paused_class)) {
+        if (typeof timer === 'undefined') {timer = self.create_timer();}
+        timer.start();
+      } else {
+        if (typeof timer === 'object') {timer.stop();}
+      }
+    };
+
+    self.init = function () {
+      self.build_markup();
+      if (settings.timer) {
+        timer = self.create_timer();
+        Foundation.utils.image_loaded(this.slides().children('img'), timer.start);
+      }
+      animate = new FadeAnimation(settings, slides_container);
+      if (settings.animation === 'slide') {
+        animate = new SlideAnimation(settings, slides_container);
+      }
+
+      container.on('click', '.' + settings.next_class, self.next);
+      container.on('click', '.' + settings.prev_class, self.prev);
+
+      if (settings.next_on_click) {
+        container.on('click', '.' + settings.slides_container_class + ' [data-orbit-slide]', self.link_bullet);
+      }
+
+      container.on('click', self.toggle_timer);
+      if (settings.swipe) {
+        container.on('touchstart.fndtn.orbit', function (e) {
+          if (!e.touches) {e = e.originalEvent;}
+          var data = {
+            start_page_x : e.touches[0].pageX,
+            start_page_y : e.touches[0].pageY,
+            start_time : (new Date()).getTime(),
+            delta_x : 0,
+            is_scrolling : undefined
+          };
+          container.data('swipe-transition', data);
+          e.stopPropagation();
+        })
+        .on('touchmove.fndtn.orbit', function (e) {
+          if (!e.touches) {
+            e = e.originalEvent;
+          }
+          // Ignore pinch/zoom events
+          if (e.touches.length > 1 || e.scale && e.scale !== 1) {
+            return;
+          }
+
+          var data = container.data('swipe-transition');
+          if (typeof data === 'undefined') {data = {};}
+
+          data.delta_x = e.touches[0].pageX - data.start_page_x;
+
+          if ( typeof data.is_scrolling === 'undefined') {
+            data.is_scrolling = !!( data.is_scrolling || Math.abs(data.delta_x) < Math.abs(e.touches[0].pageY - data.start_page_y) );
+          }
+
+          if (!data.is_scrolling && !data.active) {
+            e.preventDefault();
+            var direction = (data.delta_x < 0) ? (idx + 1) : (idx - 1);
+            data.active = true;
+            self._goto(direction);
+          }
+        })
+        .on('touchend.fndtn.orbit', function (e) {
+          container.data('swipe-transition', {});
+          e.stopPropagation();
+        })
+      }
+      container.on('mouseenter.fndtn.orbit', function (e) {
+        if (settings.timer && settings.pause_on_hover) {
+          self.stop_timer();
+        }
+      })
+      .on('mouseleave.fndtn.orbit', function (e) {
+        if (settings.timer && settings.resume_on_mouseout) {
+          timer.start();
+        }
+      });
+
+      $(document).on('click', '[data-orbit-link]', self.link_custom);
+      $(window).on('load resize', self.compute_dimensions);
+      Foundation.utils.image_loaded(this.slides().children('img'), self.compute_dimensions);
+      Foundation.utils.image_loaded(this.slides().children('img'), function () {
+        container.prev('.' + settings.preloader_class).css('display', 'none');
+        self.update_slide_number(0);
+        self.update_active_link(0);
+        slides_container.trigger('ready.fndtn.orbit');
+      });
+    };
+
+    self.init();
+  };
+
+  var Timer = function (el, settings, callback) {
+    var self = this,
+        duration = settings.timer_speed,
+        progress = el.find('.' + settings.timer_progress_class),
+        start,
+        timeout,
+        left = -1;
+
+    this.update_progress = function (w) {
+      var new_progress = progress.clone();
+      new_progress.attr('style', '');
+      new_progress.css('width', w + '%');
+      progress.replaceWith(new_progress);
+      progress = new_progress;
+    };
+
+    this.restart = function () {
+      clearTimeout(timeout);
+      el.addClass(settings.timer_paused_class);
+      left = -1;
+      self.update_progress(0);
+    };
+
+    this.start = function () {
+      if (!el.hasClass(settings.timer_paused_class)) {return true;}
+      left = (left === -1) ? duration : left;
+      el.removeClass(settings.timer_paused_class);
+      start = new Date().getTime();
+      progress.animate({'width' : '100%'}, left, 'linear');
+      timeout = setTimeout(function () {
+        self.restart();
+        callback();
+      }, left);
+      el.trigger('timer-started.fndtn.orbit')
+    };
+
+    this.stop = function () {
+      if (el.hasClass(settings.timer_paused_class)) {return true;}
+      clearTimeout(timeout);
+      el.addClass(settings.timer_paused_class);
+      var end = new Date().getTime();
+      left = left - (end - start);
+      var w = 100 - ((left / duration) * 100);
+      self.update_progress(w);
+      el.trigger('timer-stopped.fndtn.orbit');
+    };
+  };
+
+  var SlideAnimation = function (settings, container) {
+    var duration = settings.animation_speed;
+    var is_rtl = ($('html[dir=rtl]').length === 1);
+    var margin = is_rtl ? 'marginRight' : 'marginLeft';
+    var animMargin = {};
+    animMargin[margin] = '0%';
+
+    this.next = function (current, next, callback) {
+      current.animate({marginLeft : '-100%'}, duration);
+      next.animate(animMargin, duration, function () {
+        current.css(margin, '100%');
+        callback();
+      });
+    };
+
+    this.prev = function (current, prev, callback) {
+      current.animate({marginLeft : '100%'}, duration);
+      prev.css(margin, '-100%');
+      prev.animate(animMargin, duration, function () {
+        current.css(margin, '100%');
+        callback();
+      });
+    };
+  };
+
+  var FadeAnimation = function (settings, container) {
+    var duration = settings.animation_speed;
+    var is_rtl = ($('html[dir=rtl]').length === 1);
+    var margin = is_rtl ? 'marginRight' : 'marginLeft';
+
+    this.next = function (current, next, callback) {
+      next.css({'margin' : '0%', 'opacity' : '0.01'});
+      next.animate({'opacity' :'1'}, duration, 'linear', function () {
+        current.css('margin', '100%');
+        callback();
+      });
+    };
+
+    this.prev = function (current, prev, callback) {
+      prev.css({'margin' : '0%', 'opacity' : '0.01'});
+      prev.animate({'opacity' : '1'}, duration, 'linear', function () {
+        current.css('margin', '100%');
+        callback();
+      });
+    };
+  };
+
+  Foundation.libs = Foundation.libs || {};
+
+  Foundation.libs.orbit = {
+    name : 'orbit',
+
+    version : '5.5.3',
+
+    settings : {
+      animation : 'slide',
+      timer_speed : 10000,
+      pause_on_hover : true,
+      resume_on_mouseout : false,
+      next_on_click : true,
+      animation_speed : 500,
+      stack_on_small : false,
+      navigation_arrows : true,
+      slide_number : true,
+      slide_number_text : 'of',
+      container_class : 'orbit-container',
+      stack_on_small_class : 'orbit-stack-on-small',
+      next_class : 'orbit-next',
+      prev_class : 'orbit-prev',
+      timer_container_class : 'orbit-timer',
+      timer_paused_class : 'paused',
+      timer_progress_class : 'orbit-progress',
+      slides_container_class : 'orbit-slides-container',
+      preloader_class : 'preloader',
+      slide_selector : '*',
+      bullets_container_class : 'orbit-bullets',
+      bullets_active_class : 'active',
+      slide_number_class : 'orbit-slide-number',
+      caption_class : 'orbit-caption',
+      active_slide_class : 'active',
+      orbit_transition_class : 'orbit-transitioning',
+      bullets : true,
+      circular : true,
+      timer : true,
+      variable_height : false,
+      swipe : true,
+      before_slide_change : noop,
+      after_slide_change : noop
+    },
+
+    init : function (scope, method, options) {
+      var self = this;
+      this.bindings(method, options);
+    },
+
+    events : function (instance) {
+      var orbit_instance = new Orbit(this.S(instance), this.S(instance).data('orbit-init'));
+      this.S(instance).data(this.name + '-instance', orbit_instance);
+    },
+
+    reflow : function () {
+      var self = this;
+
+      if (self.S(self.scope).is('[data-orbit]')) {
+        var $el = self.S(self.scope);
+        var instance = $el.data(self.name + '-instance');
+        instance.compute_dimensions();
+      } else {
+        self.S('[data-orbit]', self.scope).each(function (idx, el) {
+          var $el = self.S(el);
+          var opts = self.data_options($el);
+          var instance = $el.data(self.name + '-instance');
+          instance.compute_dimensions();
+        });
+      }
+    }
+  };
+
+}(jQuery, window, window.document));
+
+;(function ($, window, document, undefined) {
+  'use strict';
+
+  var openModals = [];
+
+  Foundation.libs.reveal = {
+    name : 'reveal',
+
+    version : '5.5.3',
+
+    locked : false,
+
+    settings : {
+      animation : 'fadeAndPop',
+      animation_speed : 250,
+      close_on_background_click : true,
+      close_on_esc : true,
+      dismiss_modal_class : 'close-reveal-modal',
+      multiple_opened : false,
+      bg_class : 'reveal-modal-bg',
+      root_element : 'body',
+      open : function(){},
+      opened : function(){},
+      close : function(){},
+      closed : function(){},
+      on_ajax_error: $.noop,
+      bg : $('.reveal-modal-bg'),
+      css : {
+        open : {
+          'opacity' : 0,
+          'visibility' : 'visible',
+          'display' : 'block'
+        },
+        close : {
+          'opacity' : 1,
+          'visibility' : 'hidden',
+          'display' : 'none'
+        }
+      }
+    },
+
+    init : function (scope, method, options) {
+      $.extend(true, this.settings, method, options);
+      this.bindings(method, options);
+    },
+
+    events : function (scope) {
+      var self = this,
+          S = self.S;
+
+      S(this.scope)
+        .off('.reveal')
+        .on('click.fndtn.reveal', '[' + this.add_namespace('data-reveal-id') + ']:not([disabled])', function (e) {
+          e.preventDefault();
+
+          if (!self.locked) {
+            var element = S(this),
+                ajax = element.data(self.data_attr('reveal-ajax')),
+                replaceContentSel = element.data(self.data_attr('reveal-replace-content'));
+
+            self.locked = true;
+
+            if (typeof ajax === 'undefined') {
+              self.open.call(self, element);
+            } else {
+              var url = ajax === true ? element.attr('href') : ajax;
+              self.open.call(self, element, {url : url}, { replaceContentSel : replaceContentSel });
+            }
+          }
+        });
+
+      S(document)
+        .on('click.fndtn.reveal', this.close_targets(), function (e) {
+          e.preventDefault();
+          if (!self.locked) {
+            var settings = S('[' + self.attr_name() + '].open').data(self.attr_name(true) + '-init') || self.settings,
+                bg_clicked = S(e.target)[0] === S('.' + settings.bg_class)[0];
+
+            if (bg_clicked) {
+              if (settings.close_on_background_click) {
+                e.stopPropagation();
+              } else {
+                return;
+              }
+            }
+
+            self.locked = true;
+            self.close.call(self, bg_clicked ? S('[' + self.attr_name() + '].open:not(.toback)') : S(this).closest('[' + self.attr_name() + ']'));
+          }
+        });
+
+      if (S('[' + self.attr_name() + ']', this.scope).length > 0) {
+        S(this.scope)
+          // .off('.reveal')
+          .on('open.fndtn.reveal', this.settings.open)
+          .on('opened.fndtn.reveal', this.settings.opened)
+          .on('opened.fndtn.reveal', this.open_video)
+          .on('close.fndtn.reveal', this.settings.close)
+          .on('closed.fndtn.reveal', this.settings.closed)
+          .on('closed.fndtn.reveal', this.close_video);
+      } else {
+        S(this.scope)
+          // .off('.reveal')
+          .on('open.fndtn.reveal', '[' + self.attr_name() + ']', this.settings.open)
+          .on('opened.fndtn.reveal', '[' + self.attr_name() + ']', this.settings.opened)
+          .on('opened.fndtn.reveal', '[' + self.attr_name() + ']', this.open_video)
+          .on('close.fndtn.reveal', '[' + self.attr_name() + ']', this.settings.close)
+          .on('closed.fndtn.reveal', '[' + self.attr_name() + ']', this.settings.closed)
+          .on('closed.fndtn.reveal', '[' + self.attr_name() + ']', this.close_video);
+      }
+
+      return true;
+    },
+
+    // PATCH #3: turning on key up capture only when a reveal window is open
+    key_up_on : function (scope) {
+      var self = this;
+
+      // PATCH #1: fixing multiple keyup event trigger from single key press
+      self.S('body').off('keyup.fndtn.reveal').on('keyup.fndtn.reveal', function ( event ) {
+        var open_modal = self.S('[' + self.attr_name() + '].open'),
+            settings = open_modal.data(self.attr_name(true) + '-init') || self.settings ;
+        // PATCH #2: making sure that the close event can be called only while unlocked,
+        //           so that multiple keyup.fndtn.reveal events don't prevent clean closing of the reveal window.
+        if ( settings && event.which === 27  && settings.close_on_esc && !self.locked) { // 27 is the keycode for the Escape key
+          self.close.call(self, open_modal);
+        }
+      });
+
+      return true;
+    },
+
+    // PATCH #3: turning on key up capture only when a reveal window is open
+    key_up_off : function (scope) {
+      this.S('body').off('keyup.fndtn.reveal');
+      return true;
+    },
+
+    open : function (target, ajax_settings) {
+      var self = this,
+          modal;
+
+      if (target) {
+        if (typeof target.selector !== 'undefined') {
+          // Find the named node; only use the first one found, since the rest of the code assumes there's only one node
+          modal = self.S('#' + target.data(self.data_attr('reveal-id'))).first();
+        } else {
+          modal = self.S(this.scope);
+
+          ajax_settings = target;
+        }
+      } else {
+        modal = self.S(this.scope);
+      }
+
+      var settings = modal.data(self.attr_name(true) + '-init');
+      settings = settings || this.settings;
+
+
+      if (modal.hasClass('open') && target !== undefined && target.attr('data-reveal-id') == modal.attr('id')) {
+        return self.close(modal);
+      }
+
+      if (!modal.hasClass('open')) {
+        var open_modal = self.S('[' + self.attr_name() + '].open');
+
+        if (typeof modal.data('css-top') === 'undefined') {
+          modal.data('css-top', parseInt(modal.css('top'), 10))
+            .data('offset', this.cache_offset(modal));
+        }
+
+        modal.attr('tabindex','0').attr('aria-hidden','false');
+
+        this.key_up_on(modal);    // PATCH #3: turning on key up capture only when a reveal window is open
+
+        // Prevent namespace event from triggering twice
+        modal.on('open.fndtn.reveal', function(e) {
+          if (e.namespace !== 'fndtn.reveal') return;
+        });
+
+        modal.on('open.fndtn.reveal').trigger('open.fndtn.reveal');
+
+        if (open_modal.length < 1) {
+          this.toggle_bg(modal, true);
+        }
+
+        if (typeof ajax_settings === 'string') {
+          ajax_settings = {
+            url : ajax_settings
+          };
+        }
+
+        var openModal = function() {
+          if(open_modal.length > 0) {
+            if(settings.multiple_opened) {
+              self.to_back(open_modal);
+            } else {
+              self.hide(open_modal, settings.css.close);
+            }
+          }
+
+          // bl: add the open_modal that isn't already in the background to the openModals array
+          if(settings.multiple_opened) {
+            openModals.push(modal);
+          }
+
+          self.show(modal, settings.css.open);
+        };
+
+        if (typeof ajax_settings === 'undefined' || !ajax_settings.url) {
+          openModal();
+        } else {
+          var old_success = typeof ajax_settings.success !== 'undefined' ? ajax_settings.success : null;
+          $.extend(ajax_settings, {
+            success : function (data, textStatus, jqXHR) {
+              if ( $.isFunction(old_success) ) {
+                var result = old_success(data, textStatus, jqXHR);
+                if (typeof result == 'string') {
+                  data = result;
+                }
+              }
+
+              if (typeof options !== 'undefined' && typeof options.replaceContentSel !== 'undefined') {
+                modal.find(options.replaceContentSel).html(data);
+              } else {
+                modal.html(data);
+              }
+
+              self.S(modal).foundation('section', 'reflow');
+              self.S(modal).children().foundation();
+
+              openModal();
+            }
+          });
+
+          // check for if user initalized with error callback
+          if (settings.on_ajax_error !== $.noop) {
+            $.extend(ajax_settings, {
+              error : settings.on_ajax_error
+            });
+          }
+
+          $.ajax(ajax_settings);
+        }
+      }
+      self.S(window).trigger('resize');
+    },
+
+    close : function (modal) {
+      var modal = modal && modal.length ? modal : this.S(this.scope),
+          open_modals = this.S('[' + this.attr_name() + '].open'),
+          settings = modal.data(this.attr_name(true) + '-init') || this.settings,
+          self = this;
+
+      if (open_modals.length > 0) {
+
+        modal.removeAttr('tabindex','0').attr('aria-hidden','true');
+
+        this.locked = true;
+        this.key_up_off(modal);   // PATCH #3: turning on key up capture only when a reveal window is open
+
+        modal.trigger('close.fndtn.reveal');
+
+        if ((settings.multiple_opened && open_modals.length === 1) || !settings.multiple_opened || modal.length > 1) {
+          self.toggle_bg(modal, false);
+          self.to_front(modal);
+        }
+
+        if (settings.multiple_opened) {
+          var isCurrent = modal.is(':not(.toback)');
+          self.hide(modal, settings.css.close, settings);
+          if(isCurrent) {
+            // remove the last modal since it is now closed
+            openModals.pop();
+          } else {
+            // if this isn't the current modal, then find it in the array and remove it
+            openModals = $.grep(openModals, function(elt) {
+              var isThis = elt[0]===modal[0];
+              if(isThis) {
+                // since it's not currently in the front, put it in the front now that it is hidden
+                // so that if it's re-opened, it won't be .toback
+                self.to_front(modal);
+              }
+              return !isThis;
+            });
+          }
+          // finally, show the next modal in the stack, if there is one
+          if(openModals.length>0) {
+            self.to_front(openModals[openModals.length - 1]);
+          }
+        } else {
+          self.hide(open_modals, settings.css.close, settings);
+        }
+      }
+    },
+
+    close_targets : function () {
+      var base = '.' + this.settings.dismiss_modal_class;
+
+      if (this.settings.close_on_background_click) {
+        return base + ', .' + this.settings.bg_class;
+      }
+
+      return base;
+    },
+
+    toggle_bg : function (modal, state) {
+      if (this.S('.' + this.settings.bg_class).length === 0) {
+        this.settings.bg = $('<div />', {'class': this.settings.bg_class})
+          .appendTo('body').hide();
+      }
+
+      var visible = this.settings.bg.filter(':visible').length > 0;
+      if ( state != visible ) {
+        if ( state == undefined ? visible : !state ) {
+          this.hide(this.settings.bg);
+        } else {
+          this.show(this.settings.bg);
+        }
+      }
+    },
+
+    show : function (el, css) {
+      // is modal
+      if (css) {
+        var settings = el.data(this.attr_name(true) + '-init') || this.settings,
+            root_element = settings.root_element,
+            context = this;
+
+        if (el.parent(root_element).length === 0) {
+          var placeholder = el.wrap('<div style="display: none;" />').parent();
+
+          el.on('closed.fndtn.reveal.wrapped', function () {
+            el.detach().appendTo(placeholder);
+            el.unwrap().unbind('closed.fndtn.reveal.wrapped');
+          });
+
+          el.detach().appendTo(root_element);
+        }
+
+        var animData = getAnimationData(settings.animation);
+        if (!animData.animate) {
+          this.locked = false;
+        }
+        if (animData.pop) {
+          css.top = $(window).scrollTop() - el.data('offset') + 'px';
+          var end_css = {
+            top: $(window).scrollTop() + el.data('css-top') + 'px',
+            opacity: 1
+          };
+
+          return setTimeout(function () {
+            return el
+              .css(css)
+              .animate(end_css, settings.animation_speed, 'linear', function () {
+                context.locked = false;
+                el.trigger('opened.fndtn.reveal');
+              })
+              .addClass('open');
+          }, settings.animation_speed / 2);
+        }
+
+        css.top = $(window).scrollTop() + el.data('css-top') + 'px';
+
+        if (animData.fade) {
+          var end_css = {opacity: 1};
+
+          return setTimeout(function () {
+            return el
+              .css(css)
+              .animate(end_css, settings.animation_speed, 'linear', function () {
+                context.locked = false;
+                el.trigger('opened.fndtn.reveal');
+              })
+              .addClass('open');
+          }, settings.animation_speed / 2);
+        }
+
+        return el.css(css).show().css({opacity : 1}).addClass('open').trigger('opened.fndtn.reveal');
+      }
+
+      var settings = this.settings;
+
+      // should we animate the background?
+      if (getAnimationData(settings.animation).fade) {
+        return el.fadeIn(settings.animation_speed / 2);
+      }
+
+      this.locked = false;
+
+      return el.show();
+    },
+
+    to_back : function(el) {
+      el.addClass('toback');
+    },
+
+    to_front : function(el) {
+      el.removeClass('toback');
+    },
+
+    hide : function (el, css) {
+      // is modal
+      if (css) {
+        var settings = el.data(this.attr_name(true) + '-init'),
+            context = this;
+        settings = settings || this.settings;
+
+        var animData = getAnimationData(settings.animation);
+        if (!animData.animate) {
+          this.locked = false;
+        }
+        if (animData.pop) {
+          var end_css = {
+            top: - $(window).scrollTop() - el.data('offset') + 'px',
+            opacity: 0
+          };
+
+          return setTimeout(function () {
+            return el
+              .animate(end_css, settings.animation_speed, 'linear', function () {
+                context.locked = false;
+                el.css(css).trigger('closed.fndtn.reveal');
+              })
+              .removeClass('open');
+          }, settings.animation_speed / 2);
+        }
+
+        if (animData.fade) {
+          var end_css = {opacity : 0};
+
+          return setTimeout(function () {
+            return el
+              .animate(end_css, settings.animation_speed, 'linear', function () {
+                context.locked = false;
+                el.css(css).trigger('closed.fndtn.reveal');
+              })
+              .removeClass('open');
+          }, settings.animation_speed / 2);
+        }
+
+        return el.hide().css(css).removeClass('open').trigger('closed.fndtn.reveal');
+      }
+
+      var settings = this.settings;
+
+      // should we animate the background?
+      if (getAnimationData(settings.animation).fade) {
+        return el.fadeOut(settings.animation_speed / 2);
+      }
+
+      return el.hide();
+    },
+
+    close_video : function (e) {
+      var video = $('.flex-video', e.target),
+          iframe = $('iframe', video);
+
+      if (iframe.length > 0) {
+        iframe.attr('data-src', iframe[0].src);
+        iframe.attr('src', iframe.attr('src'));
+        video.hide();
+      }
+    },
+
+    open_video : function (e) {
+      var video = $('.flex-video', e.target),
+          iframe = video.find('iframe');
+
+      if (iframe.length > 0) {
+        var data_src = iframe.attr('data-src');
+        if (typeof data_src === 'string') {
+          iframe[0].src = iframe.attr('data-src');
+        } else {
+          var src = iframe[0].src;
+          iframe[0].src = undefined;
+          iframe[0].src = src;
+        }
+        video.show();
+      }
+    },
+
+    data_attr : function (str) {
+      if (this.namespace.length > 0) {
+        return this.namespace + '-' + str;
+      }
+
+      return str;
+    },
+
+    cache_offset : function (modal) {
+      var offset = modal.show().height() + parseInt(modal.css('top'), 10) + modal.scrollY;
+
+      modal.hide();
+
+      return offset;
+    },
+
+    off : function () {
+      $(this.scope).off('.fndtn.reveal');
+    },
+
+    reflow : function () {}
+  };
+
+  /*
+   * getAnimationData('popAndFade') // {animate: true,  pop: true,  fade: true}
+   * getAnimationData('fade')       // {animate: true,  pop: false, fade: true}
+   * getAnimationData('pop')        // {animate: true,  pop: true,  fade: false}
+   * getAnimationData('foo')        // {animate: false, pop: false, fade: false}
+   * getAnimationData(null)         // {animate: false, pop: false, fade: false}
+   */
+  function getAnimationData(str) {
+    var fade = /fade/i.test(str);
+    var pop = /pop/i.test(str);
+    return {
+      animate : fade || pop,
+      pop : pop,
+      fade : fade
+    };
+  }
+}(jQuery, window, window.document));
+
+;(function ($, window, document, undefined) {
+  'use strict';
+
+  Foundation.libs.slider = {
+    name : 'slider',
+
+    version : '5.5.3',
+
+    settings : {
+      start : 0,
+      end : 100,
+      step : 1,
+      precision : 2,
+      initial : null,
+      display_selector : '',
+      vertical : false,
+      trigger_input_change : false,
+      on_change : function () {}
+    },
+
+    cache : {},
+
+    init : function (scope, method, options) {
+      Foundation.inherit(this, 'throttle');
+      this.bindings(method, options);
+      this.reflow();
+    },
+
+    events : function () {
+      var self = this;
+      $(this.scope)
+        .off('.slider')
+        .on('mousedown.fndtn.slider touchstart.fndtn.slider pointerdown.fndtn.slider',
+        '[' + self.attr_name() + ']:not(.disabled, [disabled]) .range-slider-handle', function (e) {
+          if (!self.cache.active) {
+            e.preventDefault();
+            self.set_active_slider($(e.target));
+          }
+        })
+        .on('mousemove.fndtn.slider touchmove.fndtn.slider pointermove.fndtn.slider', function (e) {
+          if (!!self.cache.active) {
+            e.preventDefault();
+            if ($.data(self.cache.active[0], 'settings').vertical) {
+              var scroll_offset = 0;
+              if (!e.pageY) {
+                scroll_offset = window.scrollY;
+              }
+              self.calculate_position(self.cache.active, self.get_cursor_position(e, 'y') + scroll_offset);
+            } else {
+              self.calculate_position(self.cache.active, self.get_cursor_position(e, 'x'));
+            }
+          }
+        })
+        .on('mouseup.fndtn.slider touchend.fndtn.slider pointerup.fndtn.slider', function (e) {
+          if(!self.cache.active) {
+            // if the user has just clicked into the slider without starting to drag the handle
+            var slider = $(e.target).attr('role') === 'slider' ? $(e.target) : $(e.target).closest('.range-slider').find("[role='slider']");
+
+            if (slider.length && (!slider.parent().hasClass('disabled') && !slider.parent().attr('disabled'))) {
+              self.set_active_slider(slider);
+              if ($.data(self.cache.active[0], 'settings').vertical) {
+                var scroll_offset = 0;
+                if (!e.pageY) {
+                  scroll_offset = window.scrollY;
+                }
+                self.calculate_position(self.cache.active, self.get_cursor_position(e, 'y') + scroll_offset);
+              } else {
+                self.calculate_position(self.cache.active, self.get_cursor_position(e, 'x'));
+              }
+            }
+          }
+          self.remove_active_slider();
+        })
+        .on('change.fndtn.slider', function (e) {
+          self.settings.on_change();
+        });
+
+      self.S(window)
+        .on('resize.fndtn.slider', self.throttle(function (e) {
+          self.reflow();
+        }, 300));
+
+      // update slider value as users change input value
+      this.S('[' + this.attr_name() + ']').each(function () {
+        var slider = $(this),
+            handle = slider.children('.range-slider-handle')[0],
+            settings = self.initialize_settings(handle);
+
+        if (settings.display_selector != '') {
+          $(settings.display_selector).each(function(){
+            if ($(this).attr('value')) {
+              $(this).off('change').on('change', function () {
+                slider.foundation("slider", "set_value", $(this).val());
+              });
+            }
+          });
+        }
+      });
+    },
+
+    get_cursor_position : function (e, xy) {
+      var pageXY = 'page' + xy.toUpperCase(),
+          clientXY = 'client' + xy.toUpperCase(),
+          position;
+
+      if (typeof e[pageXY] !== 'undefined') {
+        position = e[pageXY];
+      } else if (typeof e.originalEvent[clientXY] !== 'undefined') {
+        position = e.originalEvent[clientXY];
+      } else if (e.originalEvent.touches && e.originalEvent.touches[0] && typeof e.originalEvent.touches[0][clientXY] !== 'undefined') {
+        position = e.originalEvent.touches[0][clientXY];
+      } else if (e.currentPoint && typeof e.currentPoint[xy] !== 'undefined') {
+        position = e.currentPoint[xy];
+      }
+
+      return position;
+    },
+
+    set_active_slider : function ($handle) {
+      this.cache.active = $handle;
+    },
+
+    remove_active_slider : function () {
+      this.cache.active = null;
+    },
+
+    calculate_position : function ($handle, cursor_x) {
+      var self = this,
+          settings = $.data($handle[0], 'settings'),
+          handle_l = $.data($handle[0], 'handle_l'),
+          handle_o = $.data($handle[0], 'handle_o'),
+          bar_l = $.data($handle[0], 'bar_l'),
+          bar_o = $.data($handle[0], 'bar_o');
+
+      requestAnimationFrame(function () {
+        var pct;
+
+        if (Foundation.rtl && !settings.vertical) {
+          pct = self.limit_to(((bar_o + bar_l - cursor_x) / bar_l), 0, 1);
+        } else {
+          pct = self.limit_to(((cursor_x - bar_o) / bar_l), 0, 1);
+        }
+
+        pct = settings.vertical ? 1 - pct : pct;
+
+        var norm = self.normalized_value(pct, settings.start, settings.end, settings.step, settings.precision);
+
+        self.set_ui($handle, norm);
+      });
+    },
+
+    set_ui : function ($handle, value) {
+      var settings = $.data($handle[0], 'settings'),
+          handle_l = $.data($handle[0], 'handle_l'),
+          bar_l = $.data($handle[0], 'bar_l'),
+          norm_pct = this.normalized_percentage(value, settings.start, settings.end),
+          handle_offset = norm_pct * (bar_l - handle_l) - 1,
+          progress_bar_length = norm_pct * 100,
+          $handle_parent = $handle.parent(),
+          $hidden_inputs = $handle.parent().children('input[type=hidden]');
+
+      if (Foundation.rtl && !settings.vertical) {
+        handle_offset = -handle_offset;
+      }
+
+      handle_offset = settings.vertical ? -handle_offset + bar_l - handle_l + 1 : handle_offset;
+      this.set_translate($handle, handle_offset, settings.vertical);
+
+      if (settings.vertical) {
+        $handle.siblings('.range-slider-active-segment').css('height', progress_bar_length + '%');
+      } else {
+        $handle.siblings('.range-slider-active-segment').css('width', progress_bar_length + '%');
+      }
+
+      $handle_parent.attr(this.attr_name(), value).trigger('change.fndtn.slider');
+
+      $hidden_inputs.val(value);
+      if (settings.trigger_input_change) {
+          $hidden_inputs.trigger('change.fndtn.slider');
+      }
+
+      if (!$handle[0].hasAttribute('aria-valuemin')) {
+        $handle.attr({
+          'aria-valuemin' : settings.start,
+          'aria-valuemax' : settings.end
+        });
+      }
+      $handle.attr('aria-valuenow', value);
+
+      if (settings.display_selector != '') {
+        $(settings.display_selector).each(function () {
+          if (this.hasAttribute('value')) {
+            $(this).val(value);
+          } else {
+            $(this).text(value);
+          }
+        });
+      }
+
+    },
+
+    normalized_percentage : function (val, start, end) {
+      return Math.min(1, (val - start) / (end - start));
+    },
+
+    normalized_value : function (val, start, end, step, precision) {
+      var range = end - start,
+          point = val * range,
+          mod = (point - (point % step)) / step,
+          rem = point % step,
+          round = ( rem >= step * 0.5 ? step : 0);
+      return ((mod * step + round) + start).toFixed(precision);
+    },
+
+    set_translate : function (ele, offset, vertical) {
+      if (vertical) {
+        $(ele)
+          .css('-webkit-transform', 'translateY(' + offset + 'px)')
+          .css('-moz-transform', 'translateY(' + offset + 'px)')
+          .css('-ms-transform', 'translateY(' + offset + 'px)')
+          .css('-o-transform', 'translateY(' + offset + 'px)')
+          .css('transform', 'translateY(' + offset + 'px)');
+      } else {
+        $(ele)
+          .css('-webkit-transform', 'translateX(' + offset + 'px)')
+          .css('-moz-transform', 'translateX(' + offset + 'px)')
+          .css('-ms-transform', 'translateX(' + offset + 'px)')
+          .css('-o-transform', 'translateX(' + offset + 'px)')
+          .css('transform', 'translateX(' + offset + 'px)');
+      }
+    },
+
+    limit_to : function (val, min, max) {
+      return Math.min(Math.max(val, min), max);
+    },
+
+    initialize_settings : function (handle) {
+      var settings = $.extend({}, this.settings, this.data_options($(handle).parent())),
+          decimal_places_match_result;
+
+      if (settings.precision === null) {
+        decimal_places_match_result = ('' + settings.step).match(/\.([\d]*)/);
+        settings.precision = decimal_places_match_result && decimal_places_match_result[1] ? decimal_places_match_result[1].length : 0;
+      }
+
+      if (settings.vertical) {
+        $.data(handle, 'bar_o', $(handle).parent().offset().top);
+        $.data(handle, 'bar_l', $(handle).parent().outerHeight());
+        $.data(handle, 'handle_o', $(handle).offset().top);
+        $.data(handle, 'handle_l', $(handle).outerHeight());
+      } else {
+        $.data(handle, 'bar_o', $(handle).parent().offset().left);
+        $.data(handle, 'bar_l', $(handle).parent().outerWidth());
+        $.data(handle, 'handle_o', $(handle).offset().left);
+        $.data(handle, 'handle_l', $(handle).outerWidth());
+      }
+
+      $.data(handle, 'bar', $(handle).parent());
+      return $.data(handle, 'settings', settings);
+    },
+
+    set_initial_position : function ($ele) {
+      var settings = $.data($ele.children('.range-slider-handle')[0], 'settings'),
+          initial = ((typeof settings.initial == 'number' && !isNaN(settings.initial)) ? settings.initial : Math.floor((settings.end - settings.start) * 0.5 / settings.step) * settings.step + settings.start),
+          $handle = $ele.children('.range-slider-handle');
+      this.set_ui($handle, initial);
+    },
+
+    set_value : function (value) {
+      var self = this;
+      $('[' + self.attr_name() + ']', this.scope).each(function () {
+        $(this).attr(self.attr_name(), value);
+      });
+      if (!!$(this.scope).attr(self.attr_name())) {
+        $(this.scope).attr(self.attr_name(), value);
+      }
+      self.reflow();
+    },
+
+    reflow : function () {
+      var self = this;
+      self.S('[' + this.attr_name() + ']').each(function () {
+        var handle = $(this).children('.range-slider-handle')[0],
+            val = $(this).attr(self.attr_name());
+        self.initialize_settings(handle);
+
+        if (val) {
+          self.set_ui($(handle), parseFloat(val));
+        } else {
+          self.set_initial_position($(this));
+        }
+      });
+    }
+  };
+
+}(jQuery, window, window.document));
+
+;(function ($, window, document, undefined) {
+  'use strict';
+
+  Foundation.libs.tab = {
+    name : 'tab',
+
+    version : '5.5.3',
+
+    settings : {
+      active_class : 'active',
+      callback : function () {},
+      deep_linking : false,
+      scroll_to_content : true,
+      is_hover : false
+    },
+
+    default_tab_hashes : [],
+
+    init : function (scope, method, options) {
+      var self = this,
+          S = this.S;
+
+         // Store the default active tabs which will be referenced when the
+         // location hash is absent, as in the case of navigating the tabs and
+         // returning to the first viewing via the browser Back button.
+         S('[' + this.attr_name() + '] > .active > a', this.scope).each(function () {
+           self.default_tab_hashes.push(this.hash);
+         });
+
+      this.bindings(method, options);
+      this.handle_location_hash_change();
+    },
+
+    events : function () {
+      var self = this,
+          S = this.S;
+
+      var usual_tab_behavior =  function (e, target) {
+        var settings = S(target).closest('[' + self.attr_name() + ']').data(self.attr_name(true) + '-init');
+        if (!settings.is_hover || Modernizr.touch) {
+          // if user did not pressed tab key, prevent default action
+          var keyCode = e.keyCode || e.which;
+          if (keyCode !== 9) { 
+            e.preventDefault();
+            e.stopPropagation();
+          }
+          self.toggle_active_tab(S(target).parent());
+          
+        }
+      };
+
+      S(this.scope)
+        .off('.tab')
+        // Key event: focus/tab key
+        .on('keydown.fndtn.tab', '[' + this.attr_name() + '] > * > a', function(e) {
+          var keyCode = e.keyCode || e.which;
+          // if user pressed tab key
+          if (keyCode === 13 || keyCode === 32) { // enter or space
+            var el = this;
+            usual_tab_behavior(e, el);
+          } 
+        })
+        // Click event: tab title
+        .on('click.fndtn.tab', '[' + this.attr_name() + '] > * > a', function(e) {
+          var el = this;
+          usual_tab_behavior(e, el);
+        })
+        // Hover event: tab title
+        .on('mouseenter.fndtn.tab', '[' + this.attr_name() + '] > * > a', function (e) {
+          var settings = S(this).closest('[' + self.attr_name() + ']').data(self.attr_name(true) + '-init');
+          if (settings.is_hover) {
+            self.toggle_active_tab(S(this).parent());
+          }
+        });
+
+      // Location hash change event
+      S(window).on('hashchange.fndtn.tab', function (e) {
+        e.preventDefault();
+        self.handle_location_hash_change();
+      });
+    },
+
+    handle_location_hash_change : function () {
+
+      var self = this,
+          S = this.S;
+
+      S('[' + this.attr_name() + ']', this.scope).each(function () {
+        var settings = S(this).data(self.attr_name(true) + '-init');
+        if (settings.deep_linking) {
+          // Match the location hash to a label
+          var hash;
+          if (settings.scroll_to_content) {
+            hash = self.scope.location.hash;
+          } else {
+            // prefix the hash to prevent anchor scrolling
+            hash = self.scope.location.hash.replace('fndtn-', '');
+          }
+          if (hash != '') {
+            // Check whether the location hash references a tab content div or
+            // another element on the page (inside or outside the tab content div)
+            var hash_element = S(hash);
+            if (hash_element.hasClass('content') && hash_element.parent().hasClass('tabs-content')) {
+              // Tab content div
+              self.toggle_active_tab($('[' + self.attr_name() + '] > * > a[href=' + hash + ']').parent());
+            } else {
+              // Not the tab content div. If inside the tab content, find the
+              // containing tab and toggle it as active.
+              var hash_tab_container_id = hash_element.closest('.content').attr('id');
+              if (hash_tab_container_id != undefined) {
+                self.toggle_active_tab($('[' + self.attr_name() + '] > * > a[href=#' + hash_tab_container_id + ']').parent(), hash);
+              }
+            }
+          } else {
+            // Reference the default tab hashes which were initialized in the init function
+            for (var ind = 0; ind < self.default_tab_hashes.length; ind++) {
+              self.toggle_active_tab($('[' + self.attr_name() + '] > * > a[href=' + self.default_tab_hashes[ind] + ']').parent());
+            }
+          }
+        }
+       });
+     },
+
+    toggle_active_tab : function (tab, location_hash) {
+      var self = this,
+          S = self.S,
+          tabs = tab.closest('[' + this.attr_name() + ']'),
+          tab_link = tab.find('a'),
+          anchor = tab.children('a').first(),
+          target_hash = '#' + anchor.attr('href').split('#')[1],
+          target = S(target_hash),
+          siblings = tab.siblings(),
+          settings = tabs.data(this.attr_name(true) + '-init'),
+          interpret_keyup_action = function (e) {
+            // Light modification of Heydon Pickering's Practical ARIA Examples: http://heydonworks.com/practical_aria_examples/js/a11y.js
+
+            // define current, previous and next (possible) tabs
+
+            var $original = $(this);
+            var $prev = $(this).parents('li').prev().children('[role="tab"]');
+            var $next = $(this).parents('li').next().children('[role="tab"]');
+            var $target;
+
+            // find the direction (prev or next)
+
+            switch (e.keyCode) {
+              case 37:
+                $target = $prev;
+                break;
+              case 39:
+                $target = $next;
+                break;
+              default:
+                $target = false
+                  break;
+            }
+
+            if ($target.length) {
+              $original.attr({
+                'tabindex' : '-1',
+                'aria-selected' : null
+              });
+              $target.attr({
+                'tabindex' : '0',
+                'aria-selected' : true
+              }).focus();
+            }
+
+            // Hide panels
+
+            $('[role="tabpanel"]')
+              .attr('aria-hidden', 'true');
+
+            // Show panel which corresponds to target
+
+            $('#' + $(document.activeElement).attr('href').substring(1))
+              .attr('aria-hidden', null);
+
+          },
+          go_to_hash = function(hash) {
+            // This function allows correct behaviour of the browser's back button when deep linking is enabled. Without it
+            // the user would get continually redirected to the default hash.
+            var default_hash = settings.scroll_to_content ? self.default_tab_hashes[0] : 'fndtn-' + self.default_tab_hashes[0].replace('#', '');
+
+            if (hash !== default_hash || window.location.hash) {
+              window.location.hash = hash;
+            }
+          };
+
+      // allow usage of data-tab-content attribute instead of href
+      if (anchor.data('tab-content')) {
+        target_hash = '#' + anchor.data('tab-content').split('#')[1];
+        target = S(target_hash);
+      }
+
+      if (settings.deep_linking) {
+
+        if (settings.scroll_to_content) {
+
+          // retain current hash to scroll to content
+          go_to_hash(location_hash || target_hash);
+
+          if (location_hash == undefined || location_hash == target_hash) {
+            tab.parent()[0].scrollIntoView();
+          } else {
+            S(target_hash)[0].scrollIntoView();
+          }
+        } else {
+          // prefix the hashes so that the browser doesn't scroll down
+          if (location_hash != undefined) {
+            go_to_hash('fndtn-' + location_hash.replace('#', ''));
+          } else {
+            go_to_hash('fndtn-' + target_hash.replace('#', ''));
+          }
+        }
+      }
+
+      // WARNING: The activation and deactivation of the tab content must
+      // occur after the deep linking in order to properly refresh the browser
+      // window (notably in Chrome).
+      // Clean up multiple attr instances to done once
+      tab.addClass(settings.active_class).triggerHandler('opened');
+      tab_link.attr({'aria-selected' : 'true',  tabindex : 0});
+      siblings.removeClass(settings.active_class)
+      siblings.find('a').attr({'aria-selected' : 'false'/*,  tabindex : -1*/});
+      target.siblings().removeClass(settings.active_class).attr({'aria-hidden' : 'true'/*,  tabindex : -1*/});
+      target.addClass(settings.active_class).attr('aria-hidden', 'false').removeAttr('tabindex');
+      settings.callback(tab);
+      target.triggerHandler('toggled', [target]);
+      tabs.triggerHandler('toggled', [tab]);
+
+      tab_link.off('keydown').on('keydown', interpret_keyup_action );
+    },
+
+    data_attr : function (str) {
+      if (this.namespace.length > 0) {
+        return this.namespace + '-' + str;
+      }
+
+      return str;
+    },
+
+    off : function () {},
+
+    reflow : function () {}
+  };
+}(jQuery, window, window.document));
+
+;(function ($, window, document, undefined) {
+  'use strict';
+
+  Foundation.libs.tooltip = {
+    name : 'tooltip',
+
+    version : '5.5.3',
+
+    settings : {
+      additional_inheritable_classes : [],
+      tooltip_class : '.tooltip',
+      append_to : 'body',
+      touch_close_text : 'Tap To Close',
+      disable_for_touch : false,
+      hover_delay : 200,
+      fade_in_duration : 150,
+      fade_out_duration : 150,
+      show_on : 'all',
+      tip_template : function (selector, content) {
+        return '<span data-selector="' + selector + '" id="' + selector + '" class="'
+          + Foundation.libs.tooltip.settings.tooltip_class.substring(1)
+          + '" role="tooltip">' + content + '<span class="nub"></span></span>';
+      }
+    },
+
+    cache : {},
+
+    init : function (scope, method, options) {
+      Foundation.inherit(this, 'random_str');
+      this.bindings(method, options);
+    },
+
+    should_show : function (target, tip) {
+      var settings = $.extend({}, this.settings, this.data_options(target));
+
+      if (settings.show_on === 'all') {
+        return true;
+      } else if (this.small() && settings.show_on === 'small') {
+        return true;
+      } else if (this.medium() && settings.show_on === 'medium') {
+        return true;
+      } else if (this.large() && settings.show_on === 'large') {
+        return true;
+      }
+      return false;
+    },
+
+    medium : function () {
+      return matchMedia(Foundation.media_queries['medium']).matches;
+    },
+
+    large : function () {
+      return matchMedia(Foundation.media_queries['large']).matches;
+    },
+
+    events : function (instance) {
+      var self = this,
+          S = self.S;
+
+      self.create(this.S(instance));
+
+      function _startShow(elt, $this, immediate) {
+        if (elt.timer) {
+          return;
+        }
+
+        if (immediate) {
+          elt.timer = null;
+          self.showTip($this);
+        } else {
+          elt.timer = setTimeout(function () {
+            elt.timer = null;
+            self.showTip($this);
+          }.bind(elt), self.settings.hover_delay);
+        }
+      }
+
+      function _startHide(elt, $this) {
+        if (elt.timer) {
+          clearTimeout(elt.timer);
+          elt.timer = null;
+        }
+
+        self.hide($this);
+      }
+
+      $(this.scope)
+        .off('.tooltip')
+        .on('mouseenter.fndtn.tooltip mouseleave.fndtn.tooltip touchstart.fndtn.tooltip MSPointerDown.fndtn.tooltip',
+          '[' + this.attr_name() + ']', function (e) {
+          var $this = S(this),
+              settings = $.extend({}, self.settings, self.data_options($this)),
+              is_touch = false;
+
+          if (Modernizr.touch && /touchstart|MSPointerDown/i.test(e.type) && S(e.target).is('a')) {
+            return false;
+          }
+
+          if (/mouse/i.test(e.type) && self.ie_touch(e)) {
+            return false;
+          }
+          
+          if ($this.hasClass('open')) {
+            if (Modernizr.touch && /touchstart|MSPointerDown/i.test(e.type)) {
+              e.preventDefault();
+            }
+            self.hide($this);
+          } else {
+            if (settings.disable_for_touch && Modernizr.touch && /touchstart|MSPointerDown/i.test(e.type)) {
+              return;
+            } else if (!settings.disable_for_touch && Modernizr.touch && /touchstart|MSPointerDown/i.test(e.type)) {
+              e.preventDefault();
+              S(settings.tooltip_class + '.open').hide();
+              is_touch = true;
+              // close other open tooltips on touch
+              if ($('.open[' + self.attr_name() + ']').length > 0) {
+               var prevOpen = S($('.open[' + self.attr_name() + ']')[0]);
+               self.hide(prevOpen);
+              }
+            }
+
+            if (/enter|over/i.test(e.type)) {
+              _startShow(this, $this);
+
+            } else if (e.type === 'mouseout' || e.type === 'mouseleave') {
+              _startHide(this, $this);
+            } else {
+              _startShow(this, $this, true);
+            }
+          }
+        })
+        .on('mouseleave.fndtn.tooltip touchstart.fndtn.tooltip MSPointerDown.fndtn.tooltip', '[' + this.attr_name() + '].open', function (e) {
+          if (/mouse/i.test(e.type) && self.ie_touch(e)) {
+            return false;
+          }
+
+          if ($(this).data('tooltip-open-event-type') == 'touch' && e.type == 'mouseleave') {
+            return;
+          } else if ($(this).data('tooltip-open-event-type') == 'mouse' && /MSPointerDown|touchstart/i.test(e.type)) {
+            self.convert_to_touch($(this));
+          } else {
+            _startHide(this, $(this));
+          }
+        })
+        .on('DOMNodeRemoved DOMAttrModified', '[' + this.attr_name() + ']:not(a)', function (e) {
+          _startHide(this, S(this));
+        });
+    },
+
+    ie_touch : function (e) {
+      // How do I distinguish between IE11 and Windows Phone 8?????
+      return false;
+    },
+
+    showTip : function ($target) {
+      var $tip = this.getTip($target);
+      if (this.should_show($target, $tip)) {
+        return this.show($target);
+      }
+      return;
+    },
+
+    getTip : function ($target) {
+      var selector = this.selector($target),
+          settings = $.extend({}, this.settings, this.data_options($target)),
+          tip = null;
+
+      if (selector) {
+        tip = this.S('span[data-selector="' + selector + '"]' + settings.tooltip_class);
+      }
+
+      return (typeof tip === 'object') ? tip : false;
+    },
+
+    selector : function ($target) {
+      var dataSelector = $target.attr(this.attr_name()) || $target.attr('data-selector');
+
+      if (typeof dataSelector != 'string') {
+        dataSelector = this.random_str(6);
+        $target
+          .attr('data-selector', dataSelector)
+          .attr('aria-describedby', dataSelector);
+      }
+
+      return dataSelector;
+    },
+
+    create : function ($target) {
+      var self = this,
+          settings = $.extend({}, this.settings, this.data_options($target)),
+          tip_template = this.settings.tip_template;
+
+      if (typeof settings.tip_template === 'string' && window.hasOwnProperty(settings.tip_template)) {
+        tip_template = window[settings.tip_template];
+      }
+
+      var $tip = $(tip_template(this.selector($target), $('<div></div>').html($target.attr('title')).html())),
+          classes = this.inheritable_classes($target);
+
+      $tip.addClass(classes).appendTo(settings.append_to);
+
+      if (Modernizr.touch) {
+        $tip.append('<span class="tap-to-close">' + settings.touch_close_text + '</span>');
+        $tip.on('touchstart.fndtn.tooltip MSPointerDown.fndtn.tooltip', function (e) {
+          self.hide($target);
+        });
+      }
+
+      $target.removeAttr('title').attr('title', '');
+    },
+
+    reposition : function (target, tip, classes) {
+      var width, nub, nubHeight, nubWidth, objPos;
+
+      tip.css('visibility', 'hidden').show();
+
+      width = target.data('width');
+      nub = tip.children('.nub');
+      nubHeight = nub.outerHeight();
+      nubWidth = nub.outerWidth();
+
+      if (this.small()) {
+        tip.css({'width' : '100%'});
+      } else {
+        tip.css({'width' : (width) ? width : 'auto'});
+      }
+
+      objPos = function (obj, top, right, bottom, left, width) {
+        return obj.css({
+          'top' : (top) ? top : 'auto',
+          'bottom' : (bottom) ? bottom : 'auto',
+          'left' : (left) ? left : 'auto',
+          'right' : (right) ? right : 'auto'
+        }).end();
+      };
+      
+      var o_top = target.offset().top;
+      var o_left = target.offset().left;
+      var outerHeight = target.outerHeight();
+
+      objPos(tip, (o_top + outerHeight + 10), 'auto', 'auto', o_left);
+
+      if (this.small()) {
+        objPos(tip, (o_top + outerHeight + 10), 'auto', 'auto', 12.5, $(this.scope).width());
+        tip.addClass('tip-override');
+        objPos(nub, -nubHeight, 'auto', 'auto', o_left);
+      } else {
+        
+        if (Foundation.rtl) {
+          nub.addClass('rtl');
+          o_left = o_left + target.outerWidth() - tip.outerWidth();
+        }
+
+        objPos(tip, (o_top + outerHeight + 10), 'auto', 'auto', o_left);
+        // reset nub from small styles, if they've been applied
+        if (nub.attr('style')) {
+          nub.removeAttr('style');
+        }
+        
+        tip.removeClass('tip-override');
+        
+        var tip_outerHeight = tip.outerHeight();
+        
+        if (classes && classes.indexOf('tip-top') > -1) {
+          if (Foundation.rtl) {
+            nub.addClass('rtl');
+          }
+          objPos(tip, (o_top - tip_outerHeight), 'auto', 'auto', o_left)
+            .removeClass('tip-override');
+        } else if (classes && classes.indexOf('tip-left') > -1) {
+          objPos(tip, (o_top + (outerHeight / 2) - (tip_outerHeight / 2)), 'auto', 'auto', (o_left - tip.outerWidth() - nubHeight))
+            .removeClass('tip-override');
+          nub.removeClass('rtl');
+        } else if (classes && classes.indexOf('tip-right') > -1) {
+          objPos(tip, (o_top + (outerHeight / 2) - (tip_outerHeight / 2)), 'auto', 'auto', (o_left + target.outerWidth() + nubHeight))
+            .removeClass('tip-override');
+          nub.removeClass('rtl');
+        }
+      }
+
+      tip.css('visibility', 'visible').hide();
+    },
+
+    small : function () {
+      return matchMedia(Foundation.media_queries.small).matches &&
+        !matchMedia(Foundation.media_queries.medium).matches;
+    },
+
+    inheritable_classes : function ($target) {
+      var settings = $.extend({}, this.settings, this.data_options($target)),
+          inheritables = ['tip-top', 'tip-left', 'tip-bottom', 'tip-right', 'radius', 'round'].concat(settings.additional_inheritable_classes),
+          classes = $target.attr('class'),
+          filtered = classes ? $.map(classes.split(' '), function (el, i) {
+            if ($.inArray(el, inheritables) !== -1) {
+              return el;
+            }
+          }).join(' ') : '';
+
+      return $.trim(filtered);
+    },
+
+    convert_to_touch : function ($target) {
+      var self = this,
+          $tip = self.getTip($target),
+          settings = $.extend({}, self.settings, self.data_options($target));
+
+      if ($tip.find('.tap-to-close').length === 0) {
+        $tip.append('<span class="tap-to-close">' + settings.touch_close_text + '</span>');
+        $tip.on('click.fndtn.tooltip.tapclose touchstart.fndtn.tooltip.tapclose MSPointerDown.fndtn.tooltip.tapclose', function (e) {
+          self.hide($target);
+        });
+      }
+
+      $target.data('tooltip-open-event-type', 'touch');
+    },
+
+    show : function ($target) {
+      var $tip = this.getTip($target);
+      if ($target.data('tooltip-open-event-type') == 'touch') {
+        this.convert_to_touch($target);
+      }
+
+      this.reposition($target, $tip, $target.attr('class'));
+      $target.addClass('open');
+      $tip.fadeIn(this.settings.fade_in_duration);
+    },
+
+    hide : function ($target) {
+      var $tip = this.getTip($target);
+
+      $tip.fadeOut(this.settings.fade_out_duration, function () {
+        $tip.find('.tap-to-close').remove();
+        $tip.off('click.fndtn.tooltip.tapclose MSPointerDown.fndtn.tapclose');
+        $target.removeClass('open');
+      });
+    },
+
+    off : function () {
+      var self = this;
+      this.S(this.scope).off('.fndtn.tooltip');
+      this.S(this.settings.tooltip_class).each(function (i) {
+        $('[' + self.attr_name() + ']').eq(i).attr('title', $(this).text());
+      }).remove();
+    },
+
+    reflow : function () {}
+  };
+}(jQuery, window, window.document));
+
+;(function ($, window, document, undefined) {
+  'use strict';
+
+  Foundation.libs.topbar = {
+    name : 'topbar',
+
+    version : '5.5.3',
+
+    settings : {
+      index : 0,
+      start_offset : 0,
+      sticky_class : 'sticky',
+      custom_back_text : true,
+      back_text : 'Back',
+      mobile_show_parent_link : true,
+      is_hover : true,
+      scrolltop : true, // jump to top when sticky nav menu toggle is clicked
+      sticky_on : 'all',
+      dropdown_autoclose: true
+    },
+
+    init : function (section, method, options) {
+      Foundation.inherit(this, 'add_custom_rule register_media throttle');
+      var self = this;
+
+      self.register_media('topbar', 'foundation-mq-topbar');
+
+      this.bindings(method, options);
+
+      self.S('[' + this.attr_name() + ']', this.scope).each(function () {
+        var topbar = $(this),
+            settings = topbar.data(self.attr_name(true) + '-init'),
+            section = self.S('section, .top-bar-section', this);
+        topbar.data('index', 0);
+        var topbarContainer = topbar.parent();
+        if (topbarContainer.hasClass('fixed') || self.is_sticky(topbar, topbarContainer, settings) ) {
+          self.settings.sticky_class = settings.sticky_class;
+          self.settings.sticky_topbar = topbar;
+          topbar.data('height', topbarContainer.outerHeight());
+          topbar.data('stickyoffset', topbarContainer.offset().top);
+        } else {
+          topbar.data('height', topbar.outerHeight());
+        }
+
+        if (!settings.assembled) {
+          self.assemble(topbar);
+        }
+
+        if (settings.is_hover) {
+          self.S('.has-dropdown', topbar).addClass('not-click');
+        } else {
+          self.S('.has-dropdown', topbar).removeClass('not-click');
+        }
+
+        // Pad body when sticky (scrolled) or fixed.
+        self.add_custom_rule('.f-topbar-fixed { padding-top: ' + topbar.data('height') + 'px }');
+
+        if (topbarContainer.hasClass('fixed')) {
+          self.S('body').addClass('f-topbar-fixed');
+        }
+      });
+
+    },
+
+    is_sticky : function (topbar, topbarContainer, settings) {
+      var sticky     = topbarContainer.hasClass(settings.sticky_class);
+      var smallMatch = matchMedia(Foundation.media_queries.small).matches;
+      var medMatch   = matchMedia(Foundation.media_queries.medium).matches;
+      var lrgMatch   = matchMedia(Foundation.media_queries.large).matches;
+
+      if (sticky && settings.sticky_on === 'all') {
+        return true;
+      }
+      if (sticky && this.small() && settings.sticky_on.indexOf('small') !== -1) {
+        if (smallMatch && !medMatch && !lrgMatch) { return true; }
+      }
+      if (sticky && this.medium() && settings.sticky_on.indexOf('medium') !== -1) {
+        if (smallMatch && medMatch && !lrgMatch) { return true; }
+      }
+      if (sticky && this.large() && settings.sticky_on.indexOf('large') !== -1) {
+        if (smallMatch && medMatch && lrgMatch) { return true; }
+      }
+
+       return false;
+    },
+
+    toggle : function (toggleEl) {
+      var self = this,
+          topbar;
+
+      if (toggleEl) {
+        topbar = self.S(toggleEl).closest('[' + this.attr_name() + ']');
+      } else {
+        topbar = self.S('[' + this.attr_name() + ']');
+      }
+
+      var settings = topbar.data(this.attr_name(true) + '-init');
+
+      var section = self.S('section, .top-bar-section', topbar);
+
+      if (self.breakpoint()) {
+        if (!self.rtl) {
+          section.css({left : '0%'});
+          $('>.name', section).css({left : '100%'});
+        } else {
+          section.css({right : '0%'});
+          $('>.name', section).css({right : '100%'});
+        }
+
+        self.S('li.moved', section).removeClass('moved');
+        topbar.data('index', 0);
+
+        topbar
+          .toggleClass('expanded')
+          .css('height', '');
+      }
+
+      if (settings.scrolltop) {
+        if (!topbar.hasClass('expanded')) {
+          if (topbar.hasClass('fixed')) {
+            topbar.parent().addClass('fixed');
+            topbar.removeClass('fixed');
+            self.S('body').addClass('f-topbar-fixed');
+          }
+        } else if (topbar.parent().hasClass('fixed')) {
+          if (settings.scrolltop) {
+            topbar.parent().removeClass('fixed');
+            topbar.addClass('fixed');
+            self.S('body').removeClass('f-topbar-fixed');
+
+            window.scrollTo(0, 0);
+          } else {
+            topbar.parent().removeClass('expanded');
+          }
+        }
+      } else {
+        if (self.is_sticky(topbar, topbar.parent(), settings)) {
+          topbar.parent().addClass('fixed');
+        }
+
+        if (topbar.parent().hasClass('fixed')) {
+          if (!topbar.hasClass('expanded')) {
+            topbar.removeClass('fixed');
+            topbar.parent().removeClass('expanded');
+            self.update_sticky_positioning();
+          } else {
+            topbar.addClass('fixed');
+            topbar.parent().addClass('expanded');
+            self.S('body').addClass('f-topbar-fixed');
+          }
+        }
+      }
+    },
+
+    timer : null,
+
+    events : function (bar) {
+      var self = this,
+          S = this.S;
+
+      S(this.scope)
+        .off('.topbar')
+        .on('click.fndtn.topbar', '[' + this.attr_name() + '] .toggle-topbar', function (e) {
+          e.preventDefault();
+          self.toggle(this);
+        })
+        .on('click.fndtn.topbar contextmenu.fndtn.topbar', '.top-bar .top-bar-section li a[href^="#"],[' + this.attr_name() + '] .top-bar-section li a[href^="#"]', function (e) {
+          var li = $(this).closest('li'),
+              topbar = li.closest('[' + self.attr_name() + ']'),
+              settings = topbar.data(self.attr_name(true) + '-init');
+
+          if (settings.dropdown_autoclose && settings.is_hover) {
+            var hoverLi = $(this).closest('.hover');
+            hoverLi.removeClass('hover');
+          }
+          if (self.breakpoint() && !li.hasClass('back') && !li.hasClass('has-dropdown')) {
+            self.toggle();
+          }
+
+        })
+        .on('click.fndtn.topbar', '[' + this.attr_name() + '] li.has-dropdown', function (e) {
+          var li = S(this),
+              target = S(e.target),
+              topbar = li.closest('[' + self.attr_name() + ']'),
+              settings = topbar.data(self.attr_name(true) + '-init');
+
+          if (target.data('revealId')) {
+            self.toggle();
+            return;
+          }
+
+          if (self.breakpoint()) {
+            return;
+          }
+
+          if (settings.is_hover && !Modernizr.touch) {
+            return;
+          }
+
+          e.stopImmediatePropagation();
+
+          if (li.hasClass('hover')) {
+            li
+              .removeClass('hover')
+              .find('li')
+              .removeClass('hover');
+
+            li.parents('li.hover')
+              .removeClass('hover');
+          } else {
+            li.addClass('hover');
+
+            $(li).siblings().removeClass('hover');
+
+            if (target[0].nodeName === 'A' && target.parent().hasClass('has-dropdown')) {
+              e.preventDefault();
+            }
+          }
+        })
+        .on('click.fndtn.topbar', '[' + this.attr_name() + '] .has-dropdown>a', function (e) {
+          if (self.breakpoint()) {
+
+            e.preventDefault();
+
+            var $this = S(this),
+                topbar = $this.closest('[' + self.attr_name() + ']'),
+                section = topbar.find('section, .top-bar-section'),
+                dropdownHeight = $this.next('.dropdown').outerHeight(),
+                $selectedLi = $this.closest('li');
+
+            topbar.data('index', topbar.data('index') + 1);
+            $selectedLi.addClass('moved');
+
+            if (!self.rtl) {
+              section.css({left : -(100 * topbar.data('index')) + '%'});
+              section.find('>.name').css({left : 100 * topbar.data('index') + '%'});
+            } else {
+              section.css({right : -(100 * topbar.data('index')) + '%'});
+              section.find('>.name').css({right : 100 * topbar.data('index') + '%'});
+            }
+
+            topbar.css('height', $this.siblings('ul').outerHeight(true) + topbar.data('height'));
+          }
+        });
+
+      S(window).off('.topbar').on('resize.fndtn.topbar', self.throttle(function () {
+          self.resize.call(self);
+      }, 50)).trigger('resize.fndtn.topbar').load(function () {
+          // Ensure that the offset is calculated after all of the pages resources have loaded
+          S(this).trigger('resize.fndtn.topbar');
+      });
+
+      S('body').off('.topbar').on('click.fndtn.topbar', function (e) {
+        var parent = S(e.target).closest('li').closest('li.hover');
+
+        if (parent.length > 0) {
+          return;
+        }
+
+        S('[' + self.attr_name() + '] li.hover').removeClass('hover');
+      });
+
+      // Go up a level on Click
+      S(this.scope).on('click.fndtn.topbar', '[' + this.attr_name() + '] .has-dropdown .back', function (e) {
+        e.preventDefault();
+
+        var $this = S(this),
+            topbar = $this.closest('[' + self.attr_name() + ']'),
+            section = topbar.find('section, .top-bar-section'),
+            settings = topbar.data(self.attr_name(true) + '-init'),
+            $movedLi = $this.closest('li.moved'),
+            $previousLevelUl = $movedLi.parent();
+
+        topbar.data('index', topbar.data('index') - 1);
+
+        if (!self.rtl) {
+          section.css({left : -(100 * topbar.data('index')) + '%'});
+          section.find('>.name').css({left : 100 * topbar.data('index') + '%'});
+        } else {
+          section.css({right : -(100 * topbar.data('index')) + '%'});
+          section.find('>.name').css({right : 100 * topbar.data('index') + '%'});
+        }
+
+        if (topbar.data('index') === 0) {
+          topbar.css('height', '');
+        } else {
+          topbar.css('height', $previousLevelUl.outerHeight(true) + topbar.data('height'));
+        }
+
+        setTimeout(function () {
+          $movedLi.removeClass('moved');
+        }, 300);
+      });
+
+      // Show dropdown menus when their items are focused
+      S(this.scope).find('.dropdown a')
+        .focus(function () {
+          $(this).parents('.has-dropdown').addClass('hover');
+        })
+        .blur(function () {
+          $(this).parents('.has-dropdown').removeClass('hover');
+        });
+    },
+
+    resize : function () {
+      var self = this;
+      self.S('[' + this.attr_name() + ']').each(function () {
+        var topbar = self.S(this),
+            settings = topbar.data(self.attr_name(true) + '-init');
+
+        var stickyContainer = topbar.parent('.' + self.settings.sticky_class);
+        var stickyOffset;
+
+        if (!self.breakpoint()) {
+          var doToggle = topbar.hasClass('expanded');
+          topbar
+            .css('height', '')
+            .removeClass('expanded')
+            .find('li')
+            .removeClass('hover');
+
+            if (doToggle) {
+              self.toggle(topbar);
+            }
+        }
+
+        if (self.is_sticky(topbar, stickyContainer, settings)) {
+          if (stickyContainer.hasClass('fixed')) {
+            // Remove the fixed to allow for correct calculation of the offset.
+            stickyContainer.removeClass('fixed');
+
+            stickyOffset = stickyContainer.offset().top;
+            if (self.S(document.body).hasClass('f-topbar-fixed')) {
+              stickyOffset -= topbar.data('height');
+            }
+
+            topbar.data('stickyoffset', stickyOffset);
+            stickyContainer.addClass('fixed');
+          } else {
+            stickyOffset = stickyContainer.offset().top;
+            topbar.data('stickyoffset', stickyOffset);
+          }
+        }
+
+      });
+    },
+
+    breakpoint : function () {
+      return !matchMedia(Foundation.media_queries['topbar']).matches;
+    },
+
+    small : function () {
+      return matchMedia(Foundation.media_queries['small']).matches;
+    },
+
+    medium : function () {
+      return matchMedia(Foundation.media_queries['medium']).matches;
+    },
+
+    large : function () {
+      return matchMedia(Foundation.media_queries['large']).matches;
+    },
+
+    assemble : function (topbar) {
+      var self = this,
+          settings = topbar.data(this.attr_name(true) + '-init'),
+          section = self.S('section, .top-bar-section', topbar);
+
+      // Pull element out of the DOM for manipulation
+      section.detach();
+
+      self.S('.has-dropdown>a', section).each(function () {
+        var $link = self.S(this),
+            $dropdown = $link.siblings('.dropdown'),
+            url = $link.attr('href'),
+            $titleLi;
+
+        if (!$dropdown.find('.title.back').length) {
+
+          if (settings.mobile_show_parent_link == true && url) {
+            $titleLi = $('<li class="title back js-generated"><h5><a href="javascript:void(0)"></a></h5></li><li class="parent-link hide-for-medium-up"><a class="parent-link js-generated" href="' + url + '">' + $link.html() +'</a></li>');
+          } else {
+            $titleLi = $('<li class="title back js-generated"><h5><a href="javascript:void(0)"></a></h5>');
+          }
+
+          // Copy link to subnav
+          if (settings.custom_back_text == true) {
+            $('h5>a', $titleLi).html(settings.back_text);
+          } else {
+            $('h5>a', $titleLi).html('&laquo; ' + $link.html());
+          }
+          $dropdown.prepend($titleLi);
+        }
+      });
+
+      // Put element back in the DOM
+      section.appendTo(topbar);
+
+      // check for sticky
+      this.sticky();
+
+      this.assembled(topbar);
+    },
+
+    assembled : function (topbar) {
+      topbar.data(this.attr_name(true), $.extend({}, topbar.data(this.attr_name(true)), {assembled : true}));
+    },
+
+    height : function (ul) {
+      var total = 0,
+          self = this;
+
+      $('> li', ul).each(function () {
+        total += self.S(this).outerHeight(true);
+      });
+
+      return total;
+    },
+
+    sticky : function () {
+      var self = this;
+
+      this.S(window).on('scroll', function () {
+        self.update_sticky_positioning();
+      });
+    },
+
+    update_sticky_positioning : function () {
+      var klass = '.' + this.settings.sticky_class,
+          $window = this.S(window),
+          self = this;
+
+      if (self.settings.sticky_topbar && self.is_sticky(this.settings.sticky_topbar,this.settings.sticky_topbar.parent(), this.settings)) {
+        var distance = this.settings.sticky_topbar.data('stickyoffset') + this.settings.start_offset;
+        if (!self.S(klass).hasClass('expanded')) {
+          if ($window.scrollTop() > (distance)) {
+            if (!self.S(klass).hasClass('fixed')) {
+              self.S(klass).addClass('fixed');
+              self.S('body').addClass('f-topbar-fixed');
+            }
+          } else if ($window.scrollTop() <= distance) {
+            if (self.S(klass).hasClass('fixed')) {
+              self.S(klass).removeClass('fixed');
+              self.S('body').removeClass('f-topbar-fixed');
+            }
+          }
+        }
+      }
+    },
+
+    off : function () {
+      this.S(this.scope).off('.fndtn.topbar');
+      this.S(window).off('.fndtn.topbar');
+    },
+
+    reflow : function () {}
+  };
+}(jQuery, window, window.document));
diff --git a/js/foundation/js/foundation.min.js b/js/foundation/js/foundation.min.js
new file mode 100644 (file)
index 0000000..558dcfa
--- /dev/null
@@ -0,0 +1,5 @@
+!function(a,b,c,d){"use strict";function e(a){return("string"==typeof a||a instanceof String)&&(a=a.replace(/^['\\/"]+|(;\s?})+|['\\/"]+$/g,"")),a}function f(a){this.selector=a,this.query=""}var g=function(b){var c=a("head");c.prepend(a.map(b,function(a){return 0===c.has("."+a).length?'<meta class="'+a+'" />':void 0}))};g(["foundation-mq-small","foundation-mq-small-only","foundation-mq-medium","foundation-mq-medium-only","foundation-mq-large","foundation-mq-large-only","foundation-mq-xlarge","foundation-mq-xlarge-only","foundation-mq-xxlarge","foundation-data-attribute-namespace"]),a(function(){"undefined"!=typeof FastClick&&"undefined"!=typeof c.body&&FastClick.attach(c.body)});var h=function(b,d){if("string"==typeof b){if(d){var e;if(d.jquery){if(e=d[0],!e)return d}else e=d;return a(e.querySelectorAll(b))}return a(c.querySelectorAll(b))}return a(b,d)},i=function(a){var b=[];return a||b.push("data"),this.namespace.length>0&&b.push(this.namespace),b.push(this.name),b.join("-")},j=function(a){for(var b=a.split("-"),c=b.length,d=[];c--;)0!==c?d.push(b[c]):this.namespace.length>0?d.push(this.namespace,b[c]):d.push(b[c]);return d.reverse().join("-")},k=function(b,c){var d=this,e=function(){var e=h(this),f=!e.data(d.attr_name(!0)+"-init");e.data(d.attr_name(!0)+"-init",a.extend({},d.settings,c||b,d.data_options(e))),f&&d.events(this)};return h(this.scope).is("["+this.attr_name()+"]")?e.call(this.scope):h("["+this.attr_name()+"]",this.scope).each(e),"string"==typeof b?this[b].call(this,c):void 0},l=function(a,b){function c(){b(a[0])}function d(){if(this.one("load",c),/MSIE (\d+\.\d+);/.test(navigator.userAgent)){var a=this.attr("src"),b=a.match(/\?/)?"&":"?";b+="random="+(new Date).getTime(),this.attr("src",a+b)}}return a.attr("src")?void(a[0].complete||4===a[0].readyState?c():d.call(a)):void c()};/*! matchMedia() polyfill - Test a CSS media type/query in JS. Authors & copyright (c) 2012: Scott Jehl, Paul Irish, Nicholas Zakas, David Knight. Dual MIT/BSD license */
+b.matchMedia||(b.matchMedia=function(){var a=b.styleMedia||b.media;if(!a){var d=c.createElement("style"),e=c.getElementsByTagName("script")[0],f=null;d.type="text/css",d.id="matchmediajs-test",e.parentNode.insertBefore(d,e),f="getComputedStyle"in b&&b.getComputedStyle(d,null)||d.currentStyle,a={matchMedium:function(a){var b="@media "+a+"{ #matchmediajs-test { width: 1px; } }";return d.styleSheet?d.styleSheet.cssText=b:d.textContent=b,"1px"===f.width}}}return function(b){return{matches:a.matchMedium(b||"all"),media:b||"all"}}}()),function(a){function c(){d&&(g(c),i&&a.fx.tick())}for(var d,e=0,f=["webkit","moz"],g=b.requestAnimationFrame,h=b.cancelAnimationFrame,i="undefined"!=typeof a.fx;e<f.length&&!g;e++)g=b[f[e]+"RequestAnimationFrame"],h=h||b[f[e]+"CancelAnimationFrame"]||b[f[e]+"CancelRequestAnimationFrame"];g?(b.requestAnimationFrame=g,b.cancelAnimationFrame=h,i&&(a.fx.timer=function(b){b()&&a.timers.push(b)&&!d&&(d=!0,c())},a.fx.stop=function(){d=!1})):(b.requestAnimationFrame=function(a){var c=(new Date).getTime(),d=Math.max(0,16-(c-e)),f=b.setTimeout(function(){a(c+d)},d);return e=c+d,f},b.cancelAnimationFrame=function(a){clearTimeout(a)})}(a),f.prototype.toString=function(){return this.query||(this.query=h(this.selector).css("font-family").replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g,""))},b.Foundation={name:"Foundation",version:"5.5.3",media_queries:{small:new f(".foundation-mq-small"),"small-only":new f(".foundation-mq-small-only"),medium:new f(".foundation-mq-medium"),"medium-only":new f(".foundation-mq-medium-only"),large:new f(".foundation-mq-large"),"large-only":new f(".foundation-mq-large-only"),xlarge:new f(".foundation-mq-xlarge"),"xlarge-only":new f(".foundation-mq-xlarge-only"),xxlarge:new f(".foundation-mq-xxlarge")},stylesheet:a("<style></style>").appendTo("head")[0].sheet,global:{namespace:d},init:function(a,c,d,e,f){var g=[a,d,e,f],i=[];if(this.rtl=/rtl/i.test(h("html").attr("dir")),this.scope=a||this.scope,this.set_namespace(),c&&"string"==typeof c&&!/reflow/i.test(c))this.libs.hasOwnProperty(c)&&i.push(this.init_lib(c,g));else for(var j in this.libs)i.push(this.init_lib(j,c));return h(b).load(function(){h(b).trigger("resize.fndtn.clearing").trigger("resize.fndtn.dropdown").trigger("resize.fndtn.equalizer").trigger("resize.fndtn.interchange").trigger("resize.fndtn.joyride").trigger("resize.fndtn.magellan").trigger("resize.fndtn.topbar").trigger("resize.fndtn.slider")}),a},init_lib:function(b,c){return this.libs.hasOwnProperty(b)?(this.patch(this.libs[b]),c&&c.hasOwnProperty(b)?("undefined"!=typeof this.libs[b].settings?a.extend(!0,this.libs[b].settings,c[b]):"undefined"!=typeof this.libs[b].defaults&&a.extend(!0,this.libs[b].defaults,c[b]),this.libs[b].init.apply(this.libs[b],[this.scope,c[b]])):(c=c instanceof Array?c:new Array(c),this.libs[b].init.apply(this.libs[b],c))):function(){}},patch:function(a){a.scope=this.scope,a.namespace=this.global.namespace,a.rtl=this.rtl,a.data_options=this.utils.data_options,a.attr_name=i,a.add_namespace=j,a.bindings=k,a.S=this.utils.S},inherit:function(a,b){for(var c=b.split(" "),d=c.length;d--;)this.utils.hasOwnProperty(c[d])&&(a[c[d]]=this.utils[c[d]])},set_namespace:function(){var b=this.global.namespace===d?a(".foundation-data-attribute-namespace").css("font-family"):this.global.namespace;this.global.namespace=b===d||/false/i.test(b)?"":b},libs:{},utils:{S:h,throttle:function(a,b){var c=null;return function(){var d=this,e=arguments;null==c&&(c=setTimeout(function(){a.apply(d,e),c=null},b))}},debounce:function(a,b,c){var d,e;return function(){var f=this,g=arguments,h=function(){d=null,c||(e=a.apply(f,g))},i=c&&!d;return clearTimeout(d),d=setTimeout(h,b),i&&(e=a.apply(f,g)),e}},data_options:function(b,c){function d(a){return!isNaN(a-0)&&null!==a&&""!==a&&a!==!1&&a!==!0}function e(b){return"string"==typeof b?a.trim(b):b}c=c||"options";var f,g,h,i={},j=function(a){var b=Foundation.global.namespace;return b.length>0?a.data(b+"-"+c):a.data(c)},k=j(b);if("object"==typeof k)return k;for(h=(k||":").split(";"),f=h.length;f--;)g=h[f].split(":"),g=[g[0],g.slice(1).join(":")],/true/i.test(g[1])&&(g[1]=!0),/false/i.test(g[1])&&(g[1]=!1),d(g[1])&&(-1===g[1].indexOf(".")?g[1]=parseInt(g[1],10):g[1]=parseFloat(g[1])),2===g.length&&g[0].length>0&&(i[e(g[0])]=e(g[1]));return i},register_media:function(b,c){Foundation.media_queries[b]===d&&(a("head").append('<meta class="'+c+'"/>'),Foundation.media_queries[b]=e(a("."+c).css("font-family")))},add_custom_rule:function(a,b){if(b===d&&Foundation.stylesheet)Foundation.stylesheet.insertRule(a,Foundation.stylesheet.cssRules.length);else{var c=Foundation.media_queries[b];c!==d&&Foundation.stylesheet.insertRule("@media "+Foundation.media_queries[b]+"{ "+a+" }",Foundation.stylesheet.cssRules.length)}},image_loaded:function(a,b){function c(a){for(var b=a.length,c=b-1;c>=0;c--)if(a.attr("height")===d)return!1;return!0}var e=this,f=a.length;(0===f||c(a))&&b(a),a.each(function(){l(e.S(this),function(){f-=1,0===f&&b(a)})})},random_str:function(){return this.fidx||(this.fidx=0),this.prefix=this.prefix||[this.name||"F",(+new Date).toString(36)].join("-"),this.prefix+(this.fidx++).toString(36)},match:function(a){return b.matchMedia(a).matches},is_small_up:function(){return this.match(Foundation.media_queries.small)},is_medium_up:function(){return this.match(Foundation.media_queries.medium)},is_large_up:function(){return this.match(Foundation.media_queries.large)},is_xlarge_up:function(){return this.match(Foundation.media_queries.xlarge)},is_xxlarge_up:function(){return this.match(Foundation.media_queries.xxlarge)},is_small_only:function(){return!(this.is_medium_up()||this.is_large_up()||this.is_xlarge_up()||this.is_xxlarge_up())},is_medium_only:function(){return this.is_medium_up()&&!this.is_large_up()&&!this.is_xlarge_up()&&!this.is_xxlarge_up()},is_large_only:function(){return this.is_medium_up()&&this.is_large_up()&&!this.is_xlarge_up()&&!this.is_xxlarge_up()},is_xlarge_only:function(){return this.is_medium_up()&&this.is_large_up()&&this.is_xlarge_up()&&!this.is_xxlarge_up()},is_xxlarge_only:function(){return this.is_medium_up()&&this.is_large_up()&&this.is_xlarge_up()&&this.is_xxlarge_up()}}},a.fn.foundation=function(){var a=Array.prototype.slice.call(arguments,0);return this.each(function(){return Foundation.init.apply(Foundation,[this].concat(a)),this})}}(jQuery,window,window.document),function(a,b,c,d){"use strict";Foundation.libs.abide={name:"abide",version:"5.5.3",settings:{live_validate:!0,validate_on_blur:!0,focus_on_invalid:!0,error_labels:!0,error_class:"error",timeout:1e3,patterns:{alpha:/^[a-zA-Z]+$/,alpha_numeric:/^[a-zA-Z0-9]+$/,integer:/^[-+]?\d+$/,number:/^[-+]?\d*(?:[\.\,]\d+)?$/,card:/^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$/,cvv:/^([0-9]){3,4}$/,email:/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+$/,url:/^(https?|ftp|file|ssh):\/\/([-;:&=\+\$,\w]+@{1})?([-A-Za-z0-9\.]+)+:?(\d+)?((\/[-\+~%\/\.\w]+)?\??([-\+=&;%@\.\w]+)?#?([\w]+)?)?/,domain:/^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,8}$/,datetime:/^([0-2][0-9]{3})\-([0-1][0-9])\-([0-3][0-9])T([0-5][0-9])\:([0-5][0-9])\:([0-5][0-9])(Z|([\-\+]([0-1][0-9])\:00))$/,date:/(?:19|20)[0-9]{2}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-9])|(?:(?!02)(?:0[1-9]|1[0-2])-(?:30))|(?:(?:0[13578]|1[02])-31))$/,time:/^(0[0-9]|1[0-9]|2[0-3])(:[0-5][0-9]){2}$/,dateISO:/^\d{4}[\/\-]\d{1,2}[\/\-]\d{1,2}$/,month_day_year:/^(0[1-9]|1[012])[- \/.](0[1-9]|[12][0-9]|3[01])[- \/.]\d{4}$/,day_month_year:/^(0[1-9]|[12][0-9]|3[01])[- \/.](0[1-9]|1[012])[- \/.]\d{4}$/,color:/^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/},validators:{equalTo:function(a,b,d){var e=c.getElementById(a.getAttribute(this.add_namespace("data-equalto"))).value,f=a.value,g=e===f;return g}}},timer:null,init:function(a,b,c){this.bindings(b,c)},events:function(b){function c(a,b){clearTimeout(d.timer),d.timer=setTimeout(function(){d.validate([a],b)}.bind(a),f.timeout)}var d=this,e=d.S(b).attr("novalidate","novalidate"),f=e.data(this.attr_name(!0)+"-init")||{};this.invalid_attr=this.add_namespace("data-invalid"),e.off(".abide").on("submit.fndtn.abide",function(a){var b=/ajax/i.test(d.S(this).attr(d.attr_name()));return d.validate(d.S(this).find("input, textarea, select").not(":hidden, [data-abide-ignore]").get(),a,b)}).on("validate.fndtn.abide",function(a){"manual"===f.validate_on&&d.validate([a.target],a)}).on("reset",function(b){return d.reset(a(this),b)}).find("input, textarea, select").not(":hidden, [data-abide-ignore]").off(".abide").on("blur.fndtn.abide change.fndtn.abide",function(a){var b=this.getAttribute("id"),d=e.find('[data-equalto="'+b+'"]');f.validate_on_blur&&f.validate_on_blur===!0&&c(this,a),"undefined"!=typeof d.get(0)&&d.val().length&&c(d.get(0),a),"change"===f.validate_on&&c(this,a)}).on("keydown.fndtn.abide",function(a){var b=this.getAttribute("id"),d=e.find('[data-equalto="'+b+'"]');f.live_validate&&f.live_validate===!0&&9!=a.which&&c(this,a),"undefined"!=typeof d.get(0)&&d.val().length&&c(d.get(0),a),"tab"===f.validate_on&&9===a.which?c(this,a):"change"===f.validate_on&&c(this,a)}).on("focus",function(b){navigator.userAgent.match(/iPad|iPhone|Android|BlackBerry|Windows Phone|webOS/i)&&a("html, body").animate({scrollTop:a(b.target).offset().top},100)})},reset:function(b,c){var d=this;b.removeAttr(d.invalid_attr),a("["+d.invalid_attr+"]",b).removeAttr(d.invalid_attr),a("."+d.settings.error_class,b).not("small").removeClass(d.settings.error_class),a(":input",b).not(":button, :submit, :reset, :hidden, [data-abide-ignore]").val("").removeAttr(d.invalid_attr)},validate:function(a,b,c){for(var d=this.parse_patterns(a),e=d.length,f=this.S(a[0]).closest("form"),g=/submit/.test(b.type),h=0;e>h;h++)if(!d[h]&&(g||c))return this.settings.focus_on_invalid&&a[h].focus(),f.trigger("invalid.fndtn.abide"),this.S(a[h]).closest("form").attr(this.invalid_attr,""),!1;return(g||c)&&f.trigger("valid.fndtn.abide"),f.removeAttr(this.invalid_attr),c?!1:!0},parse_patterns:function(a){for(var b=a.length,c=[];b--;)c.push(this.pattern(a[b]));return this.check_validation_and_apply_styles(c)},pattern:function(a){var b=a.getAttribute("type"),c="string"==typeof a.getAttribute("required"),d=a.getAttribute("pattern")||"";return this.settings.patterns.hasOwnProperty(d)&&d.length>0?[a,this.settings.patterns[d],c]:d.length>0?[a,new RegExp(d),c]:this.settings.patterns.hasOwnProperty(b)?[a,this.settings.patterns[b],c]:(d=/.*/,[a,d,c])},check_validation_and_apply_styles:function(b){var c=b.length,d=[];if(0==c)return d;var e=this.S(b[0][0]).closest("[data-"+this.attr_name(!0)+"]");for(e.data(this.attr_name(!0)+"-init")||{};c--;){var f,g,h=b[c][0],i=b[c][2],j=h.value.trim(),k=this.S(h).parent(),l=h.getAttribute(this.add_namespace("data-abide-validator")),m="radio"===h.type,n="checkbox"===h.type,o=this.S('label[for="'+h.getAttribute("id")+'"]'),p=i?h.value.length>0:!0,q=[];if(h.getAttribute(this.add_namespace("data-equalto"))&&(l="equalTo"),f=k.is("label")?k.parent():k,m&&i)q.push(this.valid_radio(h,i));else if(n&&i)q.push(this.valid_checkbox(h,i));else if(l){for(var r=l.split(" "),s=!0,t=!0,u=0;u<r.length;u++)g=this.settings.validators[r[u]].apply(this,[h,i,f]),q.push(g),t=g&&s,s=g;t?(this.S(h).removeAttr(this.invalid_attr),f.removeClass("error"),o.length>0&&this.settings.error_labels&&o.removeClass(this.settings.error_class).removeAttr("role"),a(h).triggerHandler("valid")):(this.S(h).attr(this.invalid_attr,""),f.addClass("error"),o.length>0&&this.settings.error_labels&&o.addClass(this.settings.error_class).attr("role","alert"),a(h).triggerHandler("invalid"))}else if(b[c][1].test(j)&&p||!i&&h.value.length<1||a(h).attr("disabled")?q.push(!0):q.push(!1),q=[q.every(function(a){return a})],q[0])this.S(h).removeAttr(this.invalid_attr),h.setAttribute("aria-invalid","false"),h.removeAttribute("aria-describedby"),f.removeClass(this.settings.error_class),o.length>0&&this.settings.error_labels&&o.removeClass(this.settings.error_class).removeAttr("role"),a(h).triggerHandler("valid");else{this.S(h).attr(this.invalid_attr,""),h.setAttribute("aria-invalid","true");var v=f.find("small."+this.settings.error_class,"span."+this.settings.error_class),w=v.length>0?v[0].id:"";w.length>0&&h.setAttribute("aria-describedby",w),f.addClass(this.settings.error_class),o.length>0&&this.settings.error_labels&&o.addClass(this.settings.error_class).attr("role","alert"),a(h).triggerHandler("invalid")}d=d.concat(q)}return d},valid_checkbox:function(b,c){var b=this.S(b),d=b.is(":checked")||!c||b.get(0).getAttribute("disabled");return d?(b.removeAttr(this.invalid_attr).parent().removeClass(this.settings.error_class),a(b).triggerHandler("valid")):(b.attr(this.invalid_attr,"").parent().addClass(this.settings.error_class),a(b).triggerHandler("invalid")),d},valid_radio:function(b,c){for(var d=b.getAttribute("name"),e=this.S(b).closest("[data-"+this.attr_name(!0)+"]").find("[name='"+d+"']"),f=e.length,g=!1,h=!1,i=0;f>i;i++)e[i].getAttribute("disabled")?(h=!0,g=!0):e[i].checked?g=!0:h&&(g=!1);for(var i=0;f>i;i++)g?(this.S(e[i]).removeAttr(this.invalid_attr).parent().removeClass(this.settings.error_class),a(e[i]).triggerHandler("valid")):(this.S(e[i]).attr(this.invalid_attr,"").parent().addClass(this.settings.error_class),a(e[i]).triggerHandler("invalid"));return g},valid_equal:function(a,b,d){var e=c.getElementById(a.getAttribute(this.add_namespace("data-equalto"))).value,f=a.value,g=e===f;return g?(this.S(a).removeAttr(this.invalid_attr),d.removeClass(this.settings.error_class),label.length>0&&settings.error_labels&&label.removeClass(this.settings.error_class)):(this.S(a).attr(this.invalid_attr,""),d.addClass(this.settings.error_class),label.length>0&&settings.error_labels&&label.addClass(this.settings.error_class)),g},valid_oneof:function(a,b,c,d){var a=this.S(a),e=this.S("["+this.add_namespace("data-oneof")+"]"),f=e.filter(":checked").length>0;if(f?a.removeAttr(this.invalid_attr).parent().removeClass(this.settings.error_class):a.attr(this.invalid_attr,"").parent().addClass(this.settings.error_class),!d){var g=this;e.each(function(){g.valid_oneof.call(g,this,null,null,!0)})}return f},reflow:function(a,b){var c=this,d=c.S("["+this.attr_name()+"]").attr("novalidate","novalidate");c.S(d).each(function(a,b){c.events(b)})}}}(jQuery,window,window.document),function(a,b,c,d){"use strict";Foundation.libs.accordion={name:"accordion",version:"5.5.3",settings:{content_class:"content",active_class:"active",multi_expand:!1,toggleable:!0,callback:function(){}},init:function(a,b,c){this.bindings(b,c)},events:function(b){var c=this,d=this.S;c.create(this.S(b)),d(this.scope).off(".fndtn.accordion").on("click.fndtn.accordion","["+this.attr_name()+"] > dd > a, ["+this.attr_name()+"] > li > a",function(b){var e=d(this).closest("["+c.attr_name()+"]"),f=c.attr_name()+"="+e.attr(c.attr_name()),g=e.data(c.attr_name(!0)+"-init")||c.settings,h=d("#"+this.href.split("#")[1]),i=a("> dd, > li",e),j=i.children("."+g.content_class),k=j.filter("."+g.active_class);return b.preventDefault(),e.attr(c.attr_name())&&(j=j.add("["+f+"] dd > ."+g.content_class+", ["+f+"] li > ."+g.content_class),i=i.add("["+f+"] dd, ["+f+"] li")),g.toggleable&&h.is(k)?(h.parent("dd, li").toggleClass(g.active_class,!1),h.toggleClass(g.active_class,!1),d(this).attr("aria-expanded",function(a,b){return"true"===b?"false":"true"}),g.callback(h),h.triggerHandler("toggled",[e]),void e.triggerHandler("toggled",[h])):(g.multi_expand||(j.removeClass(g.active_class),i.removeClass(g.active_class),i.children("a").attr("aria-expanded","false")),h.addClass(g.active_class).parent().addClass(g.active_class),g.callback(h),h.triggerHandler("toggled",[e]),e.triggerHandler("toggled",[h]),void d(this).attr("aria-expanded","true"))})},create:function(b){var c=this,d=b,e=a("> .accordion-navigation",d),f=d.data(c.attr_name(!0)+"-init")||c.settings;e.children("a").attr("aria-expanded","false"),e.has("."+f.content_class+"."+f.active_class).addClass(f.active_class).children("a").attr("aria-expanded","true"),f.multi_expand&&b.attr("aria-multiselectable","true")},toggle:function(a){var a="undefined"!=typeof a?a:{},c="undefined"!=typeof a.selector?a.selector:"",d="undefined"!=typeof a.toggle_state?a.toggle_state:"",e="undefined"!=typeof a.$accordion?a.$accordion:this.S(this.scope).closest("["+this.attr_name()+"]"),f=e.find("> dd"+c+", > li"+c);if(f.length<1)return b.console&&console.error("Selection not found.",c),!1;var g=this.S,h=this.settings.active_class;f.each(function(){var a=g(this),b=a.hasClass(h);(b&&"close"===d||!b&&"open"===d||""===d)&&a.find("> a").trigger("click.fndtn.accordion")})},open:function(a){var a="undefined"!=typeof a?a:{};a.toggle_state="open",this.toggle(a)},close:function(a){var a="undefined"!=typeof a?a:{};a.toggle_state="close",this.toggle(a)},off:function(){},reflow:function(){}}}(jQuery,window,window.document),function(a,b,c,d){"use strict";Foundation.libs.alert={name:"alert",version:"5.5.3",settings:{callback:function(){}},init:function(a,b,c){this.bindings(b,c)},events:function(){var b=this,c=this.S;a(this.scope).off(".alert").on("click.fndtn.alert","["+this.attr_name()+"] .close",function(a){var d=c(this).closest("["+b.attr_name()+"]"),e=d.data(b.attr_name(!0)+"-init")||b.settings;a.preventDefault(),Modernizr.csstransitions?(d.addClass("alert-close"),d.on("transitionend webkitTransitionEnd oTransitionEnd",function(a){c(this).trigger("close.fndtn.alert").remove(),e.callback()})):d.fadeOut(300,function(){c(this).trigger("close.fndtn.alert").remove(),e.callback()})})},reflow:function(){}}}(jQuery,window,window.document),function(a,b,c,d){"use strict";Foundation.libs.clearing={name:"clearing",version:"5.5.3",settings:{templates:{viewing:'<a href="#" class="clearing-close">&times;</a><div class="visible-img" style="display: none"><div class="clearing-touch-label"></div><img src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs%3D" alt="" /><p class="clearing-caption"></p><a href="#" class="clearing-main-prev"><span></span></a><a href="#" class="clearing-main-next"><span></span></a></div><img class="clearing-preload-next" style="display: none" src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs%3D" alt="" /><img class="clearing-preload-prev" style="display: none" src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs%3D" alt="" />'},close_selectors:".clearing-close, div.clearing-blackout",open_selectors:"",skip_selector:"",touch_label:"",init:!1,locked:!1},init:function(a,b,c){var d=this;Foundation.inherit(this,"throttle image_loaded"),this.bindings(b,c),d.S(this.scope).is("["+this.attr_name()+"]")?this.assemble(d.S("li",this.scope)):d.S("["+this.attr_name()+"]",this.scope).each(function(){d.assemble(d.S("li",this))})},events:function(d){var e=this,f=e.S,g=a(".scroll-container");g.length>0&&(this.scope=g),f(this.scope).off(".clearing").on("click.fndtn.clearing","ul["+this.attr_name()+"] li "+this.settings.open_selectors,function(a,b,c){var b=b||f(this),c=c||b,d=b.next("li"),g=b.closest("["+e.attr_name()+"]").data(e.attr_name(!0)+"-init"),h=f(a.target);a.preventDefault(),g||(e.init(),g=b.closest("["+e.attr_name()+"]").data(e.attr_name(!0)+"-init")),c.hasClass("visible")&&b[0]===c[0]&&d.length>0&&e.is_open(b)&&(c=d,h=f("img",c)),e.open(h,b,c),e.update_paddles(c)}).on("click.fndtn.clearing",".clearing-main-next",function(a){e.nav(a,"next")}).on("click.fndtn.clearing",".clearing-main-prev",function(a){e.nav(a,"prev")}).on("click.fndtn.clearing",this.settings.close_selectors,function(a){Foundation.libs.clearing.close(a,this)}),a(c).on("keydown.fndtn.clearing",function(a){e.keydown(a)}),f(b).off(".clearing").on("resize.fndtn.clearing",function(){e.resize()}),this.swipe_events(d)},swipe_events:function(a){var b=this,c=b.S;c(this.scope).on("touchstart.fndtn.clearing",".visible-img",function(a){a.touches||(a=a.originalEvent);var b={start_page_x:a.touches[0].pageX,start_page_y:a.touches[0].pageY,start_time:(new Date).getTime(),delta_x:0,is_scrolling:d};c(this).data("swipe-transition",b),a.stopPropagation()}).on("touchmove.fndtn.clearing",".visible-img",function(a){if(a.touches||(a=a.originalEvent),!(a.touches.length>1||a.scale&&1!==a.scale)){var d=c(this).data("swipe-transition");if("undefined"==typeof d&&(d={}),d.delta_x=a.touches[0].pageX-d.start_page_x,Foundation.rtl&&(d.delta_x=-d.delta_x),"undefined"==typeof d.is_scrolling&&(d.is_scrolling=!!(d.is_scrolling||Math.abs(d.delta_x)<Math.abs(a.touches[0].pageY-d.start_page_y))),!d.is_scrolling&&!d.active){a.preventDefault();var e=d.delta_x<0?"next":"prev";d.active=!0,b.nav(a,e)}}}).on("touchend.fndtn.clearing",".visible-img",function(a){c(this).data("swipe-transition",{}),a.stopPropagation()})},assemble:function(b){var c=b.parent();if(!c.parent().hasClass("carousel")){c.after('<div id="foundationClearingHolder"></div>');var d=c.detach(),e="";if(null!=d[0]){e=d[0].outerHTML;var f=this.S("#foundationClearingHolder"),g=c.data(this.attr_name(!0)+"-init"),h={grid:'<div class="carousel">'+e+"</div>",viewing:g.templates.viewing},i='<div class="clearing-assembled"><div>'+h.viewing+h.grid+"</div></div>",j=this.settings.touch_label;Modernizr.touch&&(i=a(i).find(".clearing-touch-label").html(j).end()),f.after(i).remove()}}},open:function(b,d,e){function f(){setTimeout(function(){this.image_loaded(m,function(){1!==m.outerWidth()||o?g.call(this,m):f.call(this)}.bind(this))}.bind(this),100)}function g(b){var c=a(b);c.css("visibility","visible"),c.trigger("imageVisible"),i.css("overflow","hidden"),j.addClass("clearing-blackout"),k.addClass("clearing-container"),l.show(),this.fix_height(e).caption(h.S(".clearing-caption",l),h.S("img",e)).center_and_label(b,n).shift(d,e,function(){e.closest("li").siblings().removeClass("visible"),e.closest("li").addClass("visible")}),l.trigger("opened.fndtn.clearing")}var h=this,i=a(c.body),j=e.closest(".clearing-assembled"),k=h.S("div",j).first(),l=h.S(".visible-img",k),m=h.S("img",l).not(b),n=h.S(".clearing-touch-label",k),o=!1,p={};a("body").on("touchmove",function(a){a.preventDefault()}),m.error(function(){o=!0}),this.locked()||(l.trigger("open.fndtn.clearing"),p=this.load(b),p.interchange?m.attr("data-interchange",p.interchange).foundation("interchange","reflow"):m.attr("src",p.src).attr("data-interchange",""),m.css("visibility","hidden"),f.call(this))},close:function(b,d){b.preventDefault();var e,f,g=function(a){return/blackout/.test(a.selector)?a:a.closest(".clearing-blackout")}(a(d)),h=a(c.body);return d===b.target&&g&&(h.css("overflow",""),e=a("div",g).first(),f=a(".visible-img",e),f.trigger("close.fndtn.clearing"),this.settings.prev_index=0,a("ul["+this.attr_name()+"]",g).attr("style","").closest(".clearing-blackout").removeClass("clearing-blackout"),e.removeClass("clearing-container"),f.hide(),f.trigger("closed.fndtn.clearing")),a("body").off("touchmove"),!1},is_open:function(a){return a.parent().prop("style").length>0},keydown:function(b){var c=a(".clearing-blackout ul["+this.attr_name()+"]"),d=this.rtl?37:39,e=this.rtl?39:37,f=27;b.which===d&&this.go(c,"next"),b.which===e&&this.go(c,"prev"),b.which===f&&this.S("a.clearing-close").trigger("click.fndtn.clearing")},nav:function(b,c){var d=a("ul["+this.attr_name()+"]",".clearing-blackout");b.preventDefault(),this.go(d,c)},resize:function(){var b=a("img",".clearing-blackout .visible-img"),c=a(".clearing-touch-label",".clearing-blackout");b.length&&(this.center_and_label(b,c),b.trigger("resized.fndtn.clearing"))},fix_height:function(a){var b=a.parent().children(),c=this;return b.each(function(){var a=c.S(this),b=a.find("img");a.height()>b.outerHeight()&&a.addClass("fix-height")}).closest("ul").width(100*b.length+"%"),this},update_paddles:function(a){a=a.closest("li");var b=a.closest(".carousel").siblings(".visible-img");a.next().length>0?this.S(".clearing-main-next",b).removeClass("disabled"):this.S(".clearing-main-next",b).addClass("disabled"),a.prev().length>0?this.S(".clearing-main-prev",b).removeClass("disabled"):this.S(".clearing-main-prev",b).addClass("disabled")},center_and_label:function(a,b){return!this.rtl&&b.length>0?b.css({marginLeft:-(b.outerWidth()/2),marginTop:-(a.outerHeight()/2)-b.outerHeight()-10}):b.css({marginRight:-(b.outerWidth()/2),marginTop:-(a.outerHeight()/2)-b.outerHeight()-10,left:"auto",right:"50%"}),this},load:function(a){var b,c,d;return"A"===a[0].nodeName?(b=a.attr("href"),c=a.data("clearing-interchange")):(d=a.closest("a"),b=d.attr("href"),c=d.data("clearing-interchange")),this.preload(a),{src:b?b:a.attr("src"),interchange:b?c:a.data("clearing-interchange")}},preload:function(a){this.img(a.closest("li").next(),"next").img(a.closest("li").prev(),"prev")},img:function(b,c){if(b.length){var d,e,f,g=a(".clearing-preload-"+c),h=this.S("a",b);h.length?(d=h.attr("href"),e=h.data("clearing-interchange")):(f=this.S("img",b),d=f.attr("src"),e=f.data("clearing-interchange")),e?g.attr("data-interchange",e):(g.attr("src",d),g.attr("data-interchange",""))}return this},caption:function(a,b){var c=b.attr("data-caption");if(c){var d=a.get(0);d.innerHTML=c,a.show()}else a.text("").hide();return this},go:function(a,b){var c=this.S(".visible",a),d=c[b]();this.settings.skip_selector&&0!=d.find(this.settings.skip_selector).length&&(d=d[b]()),d.length&&this.S("img",d).trigger("click.fndtn.clearing",[c,d]).trigger("change.fndtn.clearing")},shift:function(a,b,c){var d,e=b.parent(),f=this.settings.prev_index||b.index(),g=this.direction(e,a,b),h=this.rtl?"right":"left",i=parseInt(e.css("left"),10),j=b.outerWidth(),k={};b.index()===f||/skip/.test(g)?/skip/.test(g)&&(d=b.index()-this.settings.up_count,this.lock(),d>0?(k[h]=-(d*j),e.animate(k,300,this.unlock())):(k[h]=0,e.animate(k,300,this.unlock()))):/left/.test(g)?(this.lock(),k[h]=i+j,e.animate(k,300,this.unlock())):/right/.test(g)&&(this.lock(),k[h]=i-j,e.animate(k,300,this.unlock())),c()},direction:function(a,b,c){var d,e=this.S("li",a),f=e.outerWidth()+e.outerWidth()/4,g=Math.floor(this.S(".clearing-container").outerWidth()/f)-1,h=e.index(c);return this.settings.up_count=g,d=this.adjacent(this.settings.prev_index,h)?h>g&&h>this.settings.prev_index?"right":h>g-1&&h<=this.settings.prev_index?"left":!1:"skip",this.settings.prev_index=h,d},adjacent:function(a,b){for(var c=b+1;c>=b-1;c--)if(c===a)return!0;return!1},lock:function(){this.settings.locked=!0},unlock:function(){this.settings.locked=!1},locked:function(){return this.settings.locked},off:function(){this.S(this.scope).off(".fndtn.clearing"),this.S(b).off(".fndtn.clearing")},reflow:function(){this.init()}}}(jQuery,window,window.document),function(a,b,c,d){"use strict";Foundation.libs.dropdown={name:"dropdown",version:"5.5.3",settings:{active_class:"open",disabled_class:"disabled",mega_class:"mega",align:"bottom",is_hover:!1,hover_timeout:150,opened:function(){},closed:function(){}},init:function(b,c,d){Foundation.inherit(this,"throttle"),a.extend(!0,this.settings,c,d),this.bindings(c,d)},events:function(d){var e=this,f=e.S;f(this.scope).off(".dropdown").on("click.fndtn.dropdown","["+this.attr_name()+"]",function(b){var c=f(this).data(e.attr_name(!0)+"-init")||e.settings;(!c.is_hover||Modernizr.touch)&&(b.preventDefault(),f(this).parent("[data-reveal-id]").length&&b.stopPropagation(),e.toggle(a(this)))}).on("mouseenter.fndtn.dropdown","["+this.attr_name()+"], ["+this.attr_name()+"-content]",function(a){var b,c,d=f(this);clearTimeout(e.timeout),d.data(e.data_attr())?(b=f("#"+d.data(e.data_attr())),c=d):(b=d,c=f("["+e.attr_name()+'="'+b.attr("id")+'"]'));var g=c.data(e.attr_name(!0)+"-init")||e.settings;f(a.currentTarget).data(e.data_attr())&&g.is_hover&&e.closeall.call(e),g.is_hover&&e.open.apply(e,[b,c])}).on("mouseleave.fndtn.dropdown","["+this.attr_name()+"], ["+this.attr_name()+"-content]",function(a){var b,c=f(this);if(c.data(e.data_attr()))b=c.data(e.data_attr(!0)+"-init")||e.settings;else var d=f("["+e.attr_name()+'="'+f(this).attr("id")+'"]'),b=d.data(e.attr_name(!0)+"-init")||e.settings;e.timeout=setTimeout(function(){c.data(e.data_attr())?b.is_hover&&e.close.call(e,f("#"+c.data(e.data_attr()))):b.is_hover&&e.close.call(e,c)}.bind(this),b.hover_timeout)}).on("click.fndtn.dropdown",function(b){var d=f(b.target).closest("["+e.attr_name()+"-content]"),g=d.find("a");return g.length>0&&"false"!==d.attr("aria-autoclose")&&e.close.call(e,f("["+e.attr_name()+"-content]")),b.target!==c&&!a.contains(c.documentElement,b.target)||f(b.target).closest("["+e.attr_name()+"]").length>0?void 0:!f(b.target).data("revealId")&&d.length>0&&(f(b.target).is("["+e.attr_name()+"-content]")||a.contains(d.first()[0],b.target))?void b.stopPropagation():void e.close.call(e,f("["+e.attr_name()+"-content]"))}).on("opened.fndtn.dropdown","["+e.attr_name()+"-content]",function(){e.settings.opened.call(this)}).on("closed.fndtn.dropdown","["+e.attr_name()+"-content]",function(){e.settings.closed.call(this)}),f(b).off(".dropdown").on("resize.fndtn.dropdown",e.throttle(function(){e.resize.call(e)},50)),this.resize()},close:function(b){var c=this;b.each(function(d){var e=a("["+c.attr_name()+"="+b[d].id+"]")||a("aria-controls="+b[d].id+"]");e.attr("aria-expanded","false"),c.S(this).hasClass(c.settings.active_class)&&(c.S(this).css(Foundation.rtl?"right":"left","-99999px").attr("aria-hidden","true").removeClass(c.settings.active_class).prev("["+c.attr_name()+"]").removeClass(c.settings.active_class).removeData("target"),c.S(this).trigger("closed.fndtn.dropdown",[b]))}),b.removeClass("f-open-"+this.attr_name(!0))},closeall:function(){var b=this;a.each(b.S(".f-open-"+this.attr_name(!0)),function(){b.close.call(b,b.S(this))})},open:function(a,b){this.css(a.addClass(this.settings.active_class),b),a.prev("["+this.attr_name()+"]").addClass(this.settings.active_class),a.data("target",b.get(0)).trigger("opened.fndtn.dropdown",[a,b]),a.attr("aria-hidden","false"),b.attr("aria-expanded","true"),a.focus(),a.addClass("f-open-"+this.attr_name(!0))},data_attr:function(){return this.namespace.length>0?this.namespace+"-"+this.name:this.name},toggle:function(a){if(!a.hasClass(this.settings.disabled_class)){var b=this.S("#"+a.data(this.data_attr()));0!==b.length&&(this.close.call(this,this.S("["+this.attr_name()+"-content]").not(b)),b.hasClass(this.settings.active_class)?(this.close.call(this,b),b.data("target")!==a.get(0)&&this.open.call(this,b,a)):this.open.call(this,b,a))}},resize:function(){var b=this.S("["+this.attr_name()+"-content].open"),c=a(b.data("target"));b.length&&c.length&&this.css(b,c)},css:function(a,b){var c=Math.max((b.width()-a.width())/2,8),d=b.data(this.attr_name(!0)+"-init")||this.settings,e=a.parent().css("overflow-y")||a.parent().css("overflow");if(this.clear_idx(),this.small()){var f=this.dirs.bottom.call(a,b,d);a.attr("style","").removeClass("drop-left drop-right drop-top").css({position:"absolute",width:"95%","max-width":"none",top:f.top}),a.css(Foundation.rtl?"right":"left",c)}else if("visible"!==e){var g=b[0].offsetTop+b[0].offsetHeight;a.attr("style","").css({position:"absolute",top:g}),a.css(Foundation.rtl?"right":"left",c)}else this.style(a,b,d);return a},style:function(b,c,d){var e=a.extend({position:"absolute"},this.dirs[d.align].call(b,c,d));b.attr("style","").css(e)},dirs:{_base:function(a,d){var e=this.offsetParent(),f=e.offset(),g=a.offset();g.top-=f.top,g.left-=f.left,g.missRight=!1,g.missTop=!1,g.missLeft=!1,g.leftRightFlag=!1;var h,i=b.innerWidth;h=c.getElementsByClassName("row")[0]?c.getElementsByClassName("row")[0].clientWidth:i;var j=(i-h)/2,k=h;if(!this.hasClass("mega")&&!d.ignore_repositioning){var l=this.outerWidth(),m=a.offset().left;a.offset().top<=this.outerHeight()&&(g.missTop=!0,k=i-j,g.leftRightFlag=!0),m+l>m+j&&m-j>l&&(g.missRight=!0,g.missLeft=!1),0>=m-l&&(g.missLeft=!0,g.missRight=!1)}return g},top:function(a,b){var c=Foundation.libs.dropdown,d=c.dirs._base.call(this,a,b);return this.addClass("drop-top"),1==d.missTop&&(d.top=d.top+a.outerHeight()+this.outerHeight(),
+this.removeClass("drop-top")),1==d.missRight&&(d.left=d.left-this.outerWidth()+a.outerWidth()),(a.outerWidth()<this.outerWidth()||c.small()||this.hasClass(b.mega_menu))&&c.adjust_pip(this,a,b,d),Foundation.rtl?{left:d.left-this.outerWidth()+a.outerWidth(),top:d.top-this.outerHeight()}:{left:d.left,top:d.top-this.outerHeight()}},bottom:function(a,b){var c=Foundation.libs.dropdown,d=c.dirs._base.call(this,a,b);return 1==d.missRight&&(d.left=d.left-this.outerWidth()+a.outerWidth()),(a.outerWidth()<this.outerWidth()||c.small()||this.hasClass(b.mega_menu))&&c.adjust_pip(this,a,b,d),c.rtl?{left:d.left-this.outerWidth()+a.outerWidth(),top:d.top+a.outerHeight()}:{left:d.left,top:d.top+a.outerHeight()}},left:function(a,b){var c=Foundation.libs.dropdown.dirs._base.call(this,a,b);return this.addClass("drop-left"),1==c.missLeft&&(c.left=c.left+this.outerWidth(),c.top=c.top+a.outerHeight(),this.removeClass("drop-left")),{left:c.left-this.outerWidth(),top:c.top}},right:function(a,b){var c=Foundation.libs.dropdown.dirs._base.call(this,a,b);this.addClass("drop-right"),1==c.missRight?(c.left=c.left-this.outerWidth(),c.top=c.top+a.outerHeight(),this.removeClass("drop-right")):c.triggeredRight=!0;var d=Foundation.libs.dropdown;return(a.outerWidth()<this.outerWidth()||d.small()||this.hasClass(b.mega_menu))&&d.adjust_pip(this,a,b,c),{left:c.left+a.outerWidth(),top:c.top}}},adjust_pip:function(a,b,c,d){var e=Foundation.stylesheet,f=8;a.hasClass(c.mega_class)?f=d.left+b.outerWidth()/2-8:this.small()&&(f+=d.left-8),this.rule_idx=e.cssRules.length;var g=".f-dropdown.open:before",h=".f-dropdown.open:after",i="left: "+f+"px;",j="left: "+(f-1)+"px;";1==d.missRight&&(f=a.outerWidth()-23,g=".f-dropdown.open:before",h=".f-dropdown.open:after",i="left: "+f+"px;",j="left: "+(f-1)+"px;"),1==d.triggeredRight&&(g=".f-dropdown.open:before",h=".f-dropdown.open:after",i="left:-12px;",j="left:-14px;"),e.insertRule?(e.insertRule([g,"{",i,"}"].join(" "),this.rule_idx),e.insertRule([h,"{",j,"}"].join(" "),this.rule_idx+1)):(e.addRule(g,i,this.rule_idx),e.addRule(h,j,this.rule_idx+1))},clear_idx:function(){var a=Foundation.stylesheet;"undefined"!=typeof this.rule_idx&&(a.deleteRule(this.rule_idx),a.deleteRule(this.rule_idx),delete this.rule_idx)},small:function(){return matchMedia(Foundation.media_queries.small).matches&&!matchMedia(Foundation.media_queries.medium).matches},off:function(){this.S(this.scope).off(".fndtn.dropdown"),this.S("html, body").off(".fndtn.dropdown"),this.S(b).off(".fndtn.dropdown"),this.S("[data-dropdown-content]").off(".fndtn.dropdown")},reflow:function(){}}}(jQuery,window,window.document),function(a,b,c,d){"use strict";Foundation.libs.equalizer={name:"equalizer",version:"5.5.3",settings:{use_tallest:!0,before_height_change:a.noop,after_height_change:a.noop,equalize_on_stack:!1,act_on_hidden_el:!1},init:function(a,b,c){Foundation.inherit(this,"image_loaded"),this.bindings(b,c),this.reflow()},events:function(){this.S(b).off(".equalizer").on("resize.fndtn.equalizer",function(a){this.reflow()}.bind(this))},equalize:function(b){var c,d,e=!1,f=b.data("equalizer"),g=b.data(this.attr_name(!0)+"-init")||this.settings;if(c=g.act_on_hidden_el?f?b.find("["+this.attr_name()+'-watch="'+f+'"]'):b.find("["+this.attr_name()+"-watch]"):f?b.find("["+this.attr_name()+'-watch="'+f+'"]:visible'):b.find("["+this.attr_name()+"-watch]:visible"),0!==c.length&&(g.before_height_change(),b.trigger("before-height-change.fndth.equalizer"),c.height("inherit"),g.equalize_on_stack!==!1||(d=c.first().offset().top,c.each(function(){return a(this).offset().top!==d?(e=!0,!1):void 0}),!e))){var h=c.map(function(){return a(this).outerHeight(!1)}).get();if(g.use_tallest){var i=Math.max.apply(null,h);c.css("height",i)}else{var j=Math.min.apply(null,h);c.css("height",j)}g.after_height_change(),b.trigger("after-height-change.fndtn.equalizer")}},reflow:function(){var b=this;this.S("["+this.attr_name()+"]",this.scope).each(function(){var c=a(this),d=c.data("equalizer-mq"),e=!0;d&&(d="is_"+d.replace(/-/g,"_"),Foundation.utils.hasOwnProperty(d)&&(e=!1)),b.image_loaded(b.S("img",this),function(){if(e||Foundation.utils[d]())b.equalize(c);else{var a=c.find("["+b.attr_name()+"-watch]:visible");a.css("height","auto")}})})}}}(jQuery,window,window.document),function(a,b,c,d){"use strict";Foundation.libs.interchange={name:"interchange",version:"5.5.3",cache:{},images_loaded:!1,nodes_loaded:!1,settings:{load_attr:"interchange",named_queries:{"default":"only screen",small:Foundation.media_queries.small,"small-only":Foundation.media_queries["small-only"],medium:Foundation.media_queries.medium,"medium-only":Foundation.media_queries["medium-only"],large:Foundation.media_queries.large,"large-only":Foundation.media_queries["large-only"],xlarge:Foundation.media_queries.xlarge,"xlarge-only":Foundation.media_queries["xlarge-only"],xxlarge:Foundation.media_queries.xxlarge,landscape:"only screen and (orientation: landscape)",portrait:"only screen and (orientation: portrait)",retina:"only screen and (-webkit-min-device-pixel-ratio: 2),only screen and (min--moz-device-pixel-ratio: 2),only screen and (-o-min-device-pixel-ratio: 2/1),only screen and (min-device-pixel-ratio: 2),only screen and (min-resolution: 192dpi),only screen and (min-resolution: 2dppx)"},directives:{replace:function(b,c,d){if(null!==b&&/IMG/.test(b[0].nodeName)){var e=a.each(b,function(){this.src=c});if(new RegExp(c,"i").test(e))return;return b.attr("src",c),d(b[0].src)}var f=b.data(this.data_attr+"-last-path"),g=this;if(f!=c)return/\.(gif|jpg|jpeg|tiff|png)([?#].*)?/i.test(c)?(a(b).css("background-image","url("+c+")"),b.data("interchange-last-path",c),d(c)):a.get(c,function(a){b.html(a),b.data(g.data_attr+"-last-path",c),d()})}}},init:function(b,c,d){Foundation.inherit(this,"throttle random_str"),this.data_attr=this.set_data_attr(),a.extend(!0,this.settings,c,d),this.bindings(c,d),this.reflow()},get_media_hash:function(){var a="";for(var b in this.settings.named_queries)a+=matchMedia(this.settings.named_queries[b]).matches.toString();return a},events:function(){var c,d=this;return a(b).off(".interchange").on("resize.fndtn.interchange",d.throttle(function(){var a=d.get_media_hash();a!==c&&d.resize(),c=a},50)),this},resize:function(){var b=this.cache;if(!this.images_loaded||!this.nodes_loaded)return void setTimeout(a.proxy(this.resize,this),50);for(var c in b)if(b.hasOwnProperty(c)){var d=this.results(c,b[c]);d&&this.settings.directives[d.scenario[1]].call(this,d.el,d.scenario[0],function(a){if(arguments[0]instanceof Array)var b=arguments[0];else var b=Array.prototype.slice.call(arguments,0);return function(){a.el.trigger(a.scenario[1],b)}}(d))}},results:function(a,b){var c=b.length;if(c>0)for(var d=this.S("["+this.add_namespace("data-uuid")+'="'+a+'"]');c--;){var e,f=b[c][2];if(e=this.settings.named_queries.hasOwnProperty(f)?matchMedia(this.settings.named_queries[f]):matchMedia(f),e.matches)return{el:d,scenario:b[c]}}return!1},load:function(a,b){return("undefined"==typeof this["cached_"+a]||b)&&this["update_"+a](),this["cached_"+a]},update_images:function(){var a=this.S("img["+this.data_attr+"]"),b=a.length,c=b,d=0,e=this.data_attr;for(this.cache={},this.cached_images=[],this.images_loaded=0===b;c--;){if(d++,a[c]){var f=a[c].getAttribute(e)||"";f.length>0&&this.cached_images.push(a[c])}d===b&&(this.images_loaded=!0,this.enhance("images"))}return this},update_nodes:function(){var a=this.S("["+this.data_attr+"]").not("img"),b=a.length,c=b,d=0,e=this.data_attr;for(this.cached_nodes=[],this.nodes_loaded=0===b;c--;){d++;var f=a[c].getAttribute(e)||"";f.length>0&&this.cached_nodes.push(a[c]),d===b&&(this.nodes_loaded=!0,this.enhance("nodes"))}return this},enhance:function(c){for(var d=this["cached_"+c].length;d--;)this.object(a(this["cached_"+c][d]));return a(b).trigger("resize.fndtn.interchange")},convert_directive:function(a){var b=this.trim(a);return b.length>0?b:"replace"},parse_scenario:function(a){var b=a[0].match(/(.+),\s*(\w+)\s*$/),c=a[1].match(/(.*)\)/);if(b)var d=b[1],e=b[2];else var f=a[0].split(/,\s*$/),d=f[0],e="";return[this.trim(d),this.convert_directive(e),this.trim(c[1])]},object:function(a){var b=this.parse_data_attr(a),c=[],d=b.length;if(d>0)for(;d--;){var e=b[d].split(/,\s?\(/);if(e.length>1){var f=this.parse_scenario(e);c.push(f)}}return this.store(a,c)},store:function(a,b){var c=this.random_str(),d=a.data(this.add_namespace("uuid",!0));return this.cache[d]?this.cache[d]:(a.attr(this.add_namespace("data-uuid"),c),this.cache[c]=b)},trim:function(b){return"string"==typeof b?a.trim(b):b},set_data_attr:function(a){return a?this.namespace.length>0?this.namespace+"-"+this.settings.load_attr:this.settings.load_attr:this.namespace.length>0?"data-"+this.namespace+"-"+this.settings.load_attr:"data-"+this.settings.load_attr},parse_data_attr:function(a){for(var b=a.attr(this.attr_name()).split(/\[(.*?)\]/),c=b.length,d=[];c--;)b[c].replace(/[\W\d]+/,"").length>4&&d.push(b[c]);return d},reflow:function(){this.load("images",!0),this.load("nodes",!0)}}}(jQuery,window,window.document),function(a,b,c,d){"use strict";Foundation.libs.joyride={name:"joyride",version:"5.5.3",defaults:{expose:!1,modal:!0,keyboard:!0,tip_location:"bottom",nub_position:"auto",scroll_speed:1500,scroll_animation:"linear",timer:0,start_timer_on_click:!0,start_offset:0,next_button:!0,prev_button:!0,tip_animation:"fade",pause_after:[],exposed:[],tip_animation_fade_speed:300,cookie_monster:!1,cookie_name:"joyride",cookie_domain:!1,cookie_expires:365,tip_container:"body",abort_on_close:!0,tip_location_patterns:{top:["bottom"],bottom:[],left:["right","top","bottom"],right:["left","top","bottom"]},post_ride_callback:function(){},post_step_callback:function(){},pre_step_callback:function(){},pre_ride_callback:function(){},post_expose_callback:function(){},template:{link:'<a href="#close" class="joyride-close-tip">&times;</a>',timer:'<div class="joyride-timer-indicator-wrap"><span class="joyride-timer-indicator"></span></div>',tip:'<div class="joyride-tip-guide"><span class="joyride-nub"></span></div>',wrapper:'<div class="joyride-content-wrapper"></div>',button:'<a href="#" class="small button joyride-next-tip"></a>',prev_button:'<a href="#" class="small button joyride-prev-tip"></a>',modal:'<div class="joyride-modal-bg"></div>',expose:'<div class="joyride-expose-wrapper"></div>',expose_cover:'<div class="joyride-expose-cover"></div>'},expose_add_class:""},init:function(b,c,d){Foundation.inherit(this,"throttle random_str"),this.settings=this.settings||a.extend({},this.defaults,d||c),this.bindings(c,d)},go_next:function(){this.settings.$li.next().length<1?this.end():this.settings.timer>0?(clearTimeout(this.settings.automate),this.hide(),this.show(),this.startTimer()):(this.hide(),this.show())},go_prev:function(){this.settings.$li.prev().length<1||(this.settings.timer>0?(clearTimeout(this.settings.automate),this.hide(),this.show(null,!0),this.startTimer()):(this.hide(),this.show(null,!0)))},events:function(){var c=this;a(this.scope).off(".joyride").on("click.fndtn.joyride",".joyride-next-tip, .joyride-modal-bg",function(a){a.preventDefault(),this.go_next()}.bind(this)).on("click.fndtn.joyride",".joyride-prev-tip",function(a){a.preventDefault(),this.go_prev()}.bind(this)).on("click.fndtn.joyride",".joyride-close-tip",function(a){a.preventDefault(),this.end(this.settings.abort_on_close)}.bind(this)).on("keyup.fndtn.joyride",function(a){if(this.settings.keyboard&&this.settings.riding)switch(a.which){case 39:a.preventDefault(),this.go_next();break;case 37:a.preventDefault(),this.go_prev();break;case 27:a.preventDefault(),this.end(this.settings.abort_on_close)}}.bind(this)),a(b).off(".joyride").on("resize.fndtn.joyride",c.throttle(function(){if(a("["+c.attr_name()+"]").length>0&&c.settings.$next_tip&&c.settings.riding){if(c.settings.exposed.length>0){var b=a(c.settings.exposed);b.each(function(){var b=a(this);c.un_expose(b),c.expose(b)})}c.is_phone()?c.pos_phone():c.pos_default(!1)}},100))},start:function(){var b=this,c=a("["+this.attr_name()+"]",this.scope),d=["timer","scrollSpeed","startOffset","tipAnimationFadeSpeed","cookieExpires"],e=d.length;!c.length>0||(this.settings.init||this.events(),this.settings=c.data(this.attr_name(!0)+"-init"),this.settings.$content_el=c,this.settings.$body=a(this.settings.tip_container),this.settings.body_offset=a(this.settings.tip_container).position(),this.settings.$tip_content=this.settings.$content_el.find("> li"),this.settings.paused=!1,this.settings.attempts=0,this.settings.riding=!0,"function"!=typeof a.cookie&&(this.settings.cookie_monster=!1),(!this.settings.cookie_monster||this.settings.cookie_monster&&!a.cookie(this.settings.cookie_name))&&(this.settings.$tip_content.each(function(c){var f=a(this);this.settings=a.extend({},b.defaults,b.data_options(f));for(var g=e;g--;)b.settings[d[g]]=parseInt(b.settings[d[g]],10);b.create({$li:f,index:c})}),!this.settings.start_timer_on_click&&this.settings.timer>0?(this.show("init"),this.startTimer()):this.show("init")))},resume:function(){this.set_li(),this.show()},tip_template:function(b){var c,d;return b.tip_class=b.tip_class||"",c=a(this.settings.template.tip).addClass(b.tip_class),d=a.trim(a(b.li).html())+this.prev_button_text(b.prev_button_text,b.index)+this.button_text(b.button_text)+this.settings.template.link+this.timer_instance(b.index),c.append(a(this.settings.template.wrapper)),c.first().attr(this.add_namespace("data-index"),b.index),a(".joyride-content-wrapper",c).append(d),c[0]},timer_instance:function(b){var c;return c=0===b&&this.settings.start_timer_on_click&&this.settings.timer>0||0===this.settings.timer?"":a(this.settings.template.timer)[0].outerHTML},button_text:function(b){return this.settings.tip_settings.next_button?(b=a.trim(b)||"Next",b=a(this.settings.template.button).append(b)[0].outerHTML):b="",b},prev_button_text:function(b,c){return this.settings.tip_settings.prev_button?(b=a.trim(b)||"Previous",b=0==c?a(this.settings.template.prev_button).append(b).addClass("disabled")[0].outerHTML:a(this.settings.template.prev_button).append(b)[0].outerHTML):b="",b},create:function(b){this.settings.tip_settings=a.extend({},this.settings,this.data_options(b.$li));var c=b.$li.attr(this.add_namespace("data-button"))||b.$li.attr(this.add_namespace("data-text")),d=b.$li.attr(this.add_namespace("data-button-prev"))||b.$li.attr(this.add_namespace("data-prev-text")),e=b.$li.attr("class"),f=a(this.tip_template({tip_class:e,index:b.index,button_text:c,prev_button_text:d,li:b.$li}));a(this.settings.tip_container).append(f)},show:function(b,c){var e=null;if(this.settings.$li===d||-1===a.inArray(this.settings.$li.index(),this.settings.pause_after))if(this.settings.paused?this.settings.paused=!1:this.set_li(b,c),this.settings.attempts=0,this.settings.$li.length&&this.settings.$target.length>0){if(b&&(this.settings.pre_ride_callback(this.settings.$li.index(),this.settings.$next_tip),this.settings.modal&&this.show_modal()),this.settings.pre_step_callback(this.settings.$li.index(),this.settings.$next_tip),this.settings.modal&&this.settings.expose&&this.expose(),this.settings.tip_settings=a.extend({},this.settings,this.data_options(this.settings.$li)),this.settings.timer=parseInt(this.settings.timer,10),this.settings.tip_settings.tip_location_pattern=this.settings.tip_location_patterns[this.settings.tip_settings.tip_location],!/body/i.test(this.settings.$target.selector)&&!this.settings.expose){var f=a(".joyride-modal-bg");/pop/i.test(this.settings.tipAnimation)?f.hide():f.fadeOut(this.settings.tipAnimationFadeSpeed),this.scroll_to()}this.is_phone()?this.pos_phone(!0):this.pos_default(!0),e=this.settings.$next_tip.find(".joyride-timer-indicator"),/pop/i.test(this.settings.tip_animation)?(e.width(0),this.settings.timer>0?(this.settings.$next_tip.show(),setTimeout(function(){e.animate({width:e.parent().width()},this.settings.timer,"linear")}.bind(this),this.settings.tip_animation_fade_speed)):this.settings.$next_tip.show()):/fade/i.test(this.settings.tip_animation)&&(e.width(0),this.settings.timer>0?(this.settings.$next_tip.fadeIn(this.settings.tip_animation_fade_speed).show(),setTimeout(function(){e.animate({width:e.parent().width()},this.settings.timer,"linear")}.bind(this),this.settings.tip_animation_fade_speed)):this.settings.$next_tip.fadeIn(this.settings.tip_animation_fade_speed)),this.settings.$current_tip=this.settings.$next_tip}else this.settings.$li&&this.settings.$target.length<1?this.show(b,c):this.end();else this.settings.paused=!0},is_phone:function(){return matchMedia(Foundation.media_queries.small).matches&&!matchMedia(Foundation.media_queries.medium).matches},hide:function(){this.settings.modal&&this.settings.expose&&this.un_expose(),this.settings.modal||a(".joyride-modal-bg").hide(),this.settings.$current_tip.css("visibility","hidden"),setTimeout(a.proxy(function(){this.hide(),this.css("visibility","visible")},this.settings.$current_tip),0),this.settings.post_step_callback(this.settings.$li.index(),this.settings.$current_tip)},set_li:function(a,b){a?(this.settings.$li=this.settings.$tip_content.eq(this.settings.start_offset),this.set_next_tip(),this.settings.$current_tip=this.settings.$next_tip):(b?this.settings.$li=this.settings.$li.prev():this.settings.$li=this.settings.$li.next(),this.set_next_tip()),this.set_target()},set_next_tip:function(){this.settings.$next_tip=a(".joyride-tip-guide").eq(this.settings.$li.index()),this.settings.$next_tip.data("closed","")},set_target:function(){var b=this.settings.$li.attr(this.add_namespace("data-class")),d=this.settings.$li.attr(this.add_namespace("data-id")),e=function(){return d?a(c.getElementById(d)):b?a("."+b).first():a("body")};this.settings.$target=e()},scroll_to:function(){var c,d;c=a(b).height()/2,d=Math.ceil(this.settings.$target.offset().top-c+this.settings.$next_tip.outerHeight()),0!=d&&a("html, body").stop().animate({scrollTop:d},this.settings.scroll_speed,"swing")},paused:function(){return-1===a.inArray(this.settings.$li.index()+1,this.settings.pause_after)},restart:function(){this.hide(),this.settings.$li=d,this.show("init")},pos_default:function(a){var b=this.settings.$next_tip.find(".joyride-nub"),c=Math.ceil(b.outerWidth()/2),d=Math.ceil(b.outerHeight()/2),e=a||!1;if(e&&(this.settings.$next_tip.css("visibility","hidden"),this.settings.$next_tip.show()),/body/i.test(this.settings.$target.selector))this.settings.$li.length&&this.pos_modal(b);else{var f=this.settings.tip_settings.tipAdjustmentY?parseInt(this.settings.tip_settings.tipAdjustmentY):0,g=this.settings.tip_settings.tipAdjustmentX?parseInt(this.settings.tip_settings.tipAdjustmentX):0;this.bottom()?(this.rtl?this.settings.$next_tip.css({top:this.settings.$target.offset().top+d+this.settings.$target.outerHeight()+f,left:this.settings.$target.offset().left+this.settings.$target.outerWidth()-this.settings.$next_tip.outerWidth()+g}):this.settings.$next_tip.css({top:this.settings.$target.offset().top+d+this.settings.$target.outerHeight()+f,left:this.settings.$target.offset().left+g}),this.nub_position(b,this.settings.tip_settings.nub_position,"top")):this.top()?(this.rtl?this.settings.$next_tip.css({top:this.settings.$target.offset().top-this.settings.$next_tip.outerHeight()-d+f,left:this.settings.$target.offset().left+this.settings.$target.outerWidth()-this.settings.$next_tip.outerWidth()}):this.settings.$next_tip.css({top:this.settings.$target.offset().top-this.settings.$next_tip.outerHeight()-d+f,left:this.settings.$target.offset().left+g}),this.nub_position(b,this.settings.tip_settings.nub_position,"bottom")):this.right()?(this.settings.$next_tip.css({top:this.settings.$target.offset().top+f,left:this.settings.$target.outerWidth()+this.settings.$target.offset().left+c+g}),this.nub_position(b,this.settings.tip_settings.nub_position,"left")):this.left()&&(this.settings.$next_tip.css({top:this.settings.$target.offset().top+f,left:this.settings.$target.offset().left-this.settings.$next_tip.outerWidth()-c+g}),this.nub_position(b,this.settings.tip_settings.nub_position,"right")),!this.visible(this.corners(this.settings.$next_tip))&&this.settings.attempts<this.settings.tip_settings.tip_location_pattern.length&&(b.removeClass("bottom").removeClass("top").removeClass("right").removeClass("left"),this.settings.tip_settings.tip_location=this.settings.tip_settings.tip_location_pattern[this.settings.attempts],this.settings.attempts++,this.pos_default())}e&&(this.settings.$next_tip.hide(),this.settings.$next_tip.css("visibility","visible"))},pos_phone:function(b){var c=this.settings.$next_tip.outerHeight(),d=(this.settings.$next_tip.offset(),this.settings.$target.outerHeight()),e=a(".joyride-nub",this.settings.$next_tip),f=Math.ceil(e.outerHeight()/2),g=b||!1;e.removeClass("bottom").removeClass("top").removeClass("right").removeClass("left"),g&&(this.settings.$next_tip.css("visibility","hidden"),this.settings.$next_tip.show()),/body/i.test(this.settings.$target.selector)?this.settings.$li.length&&this.pos_modal(e):this.top()?(this.settings.$next_tip.offset({top:this.settings.$target.offset().top-c-f}),e.addClass("bottom")):(this.settings.$next_tip.offset({top:this.settings.$target.offset().top+d+f}),e.addClass("top")),g&&(this.settings.$next_tip.hide(),this.settings.$next_tip.css("visibility","visible"))},pos_modal:function(a){this.center(),a.hide(),this.show_modal()},show_modal:function(){if(!this.settings.$next_tip.data("closed")){var b=a(".joyride-modal-bg");if(b.length<1){var b=a(this.settings.template.modal);b.appendTo("body")}/pop/i.test(this.settings.tip_animation)?b.show():b.fadeIn(this.settings.tip_animation_fade_speed)}},expose:function(){var c,d,e,f,g,h="expose-"+this.random_str(6);if(arguments.length>0&&arguments[0]instanceof a)e=arguments[0];else{if(!this.settings.$target||/body/i.test(this.settings.$target.selector))return!1;e=this.settings.$target}return e.length<1?(b.console&&console.error("element not valid",e),!1):(c=a(this.settings.template.expose),this.settings.$body.append(c),c.css({top:e.offset().top,left:e.offset().left,width:e.outerWidth(!0),height:e.outerHeight(!0)}),d=a(this.settings.template.expose_cover),f={zIndex:e.css("z-index"),position:e.css("position")},g=null==e.attr("class")?"":e.attr("class"),e.css("z-index",parseInt(c.css("z-index"))+1),"static"==f.position&&e.css("position","relative"),e.data("expose-css",f),e.data("orig-class",g),e.attr("class",g+" "+this.settings.expose_add_class),d.css({top:e.offset().top,left:e.offset().left,width:e.outerWidth(!0),height:e.outerHeight(!0)}),this.settings.modal&&this.show_modal(),this.settings.$body.append(d),c.addClass(h),d.addClass(h),e.data("expose",h),this.settings.post_expose_callback(this.settings.$li.index(),this.settings.$next_tip,e),void this.add_exposed(e))},un_expose:function(){var c,d,e,f,g,h=!1;if(arguments.length>0&&arguments[0]instanceof a)d=arguments[0];else{if(!this.settings.$target||/body/i.test(this.settings.$target.selector))return!1;d=this.settings.$target}return d.length<1?(b.console&&console.error("element not valid",d),!1):(c=d.data("expose"),e=a("."+c),arguments.length>1&&(h=arguments[1]),h===!0?a(".joyride-expose-wrapper,.joyride-expose-cover").remove():e.remove(),f=d.data("expose-css"),"auto"==f.zIndex?d.css("z-index",""):d.css("z-index",f.zIndex),f.position!=d.css("position")&&("static"==f.position?d.css("position",""):d.css("position",f.position)),g=d.data("orig-class"),d.attr("class",g),d.removeData("orig-classes"),d.removeData("expose"),d.removeData("expose-z-index"),void this.remove_exposed(d))},add_exposed:function(b){this.settings.exposed=this.settings.exposed||[],b instanceof a||"object"==typeof b?this.settings.exposed.push(b[0]):"string"==typeof b&&this.settings.exposed.push(b)},remove_exposed:function(b){var c,d;for(b instanceof a?c=b[0]:"string"==typeof b&&(c=b),this.settings.exposed=this.settings.exposed||[],d=this.settings.exposed.length;d--;)if(this.settings.exposed[d]==c)return void this.settings.exposed.splice(d,1)},center:function(){var c=a(b);return this.settings.$next_tip.css({top:(c.height()-this.settings.$next_tip.outerHeight())/2+c.scrollTop(),left:(c.width()-this.settings.$next_tip.outerWidth())/2+c.scrollLeft()}),!0},bottom:function(){return/bottom/i.test(this.settings.tip_settings.tip_location)},top:function(){return/top/i.test(this.settings.tip_settings.tip_location)},right:function(){return/right/i.test(this.settings.tip_settings.tip_location)},left:function(){return/left/i.test(this.settings.tip_settings.tip_location)},corners:function(c){if(0===c.length)return[!1,!1,!1,!1];var d=a(b),e=d.height()/2,f=Math.ceil(this.settings.$target.offset().top-e+this.settings.$next_tip.outerHeight()),g=d.width()+d.scrollLeft(),h=d.height()+f,i=d.height()+d.scrollTop(),j=d.scrollTop();return j>f&&(j=0>f?0:f),h>i&&(i=h),[c.offset().top<j,g<c.offset().left+c.outerWidth(),i<c.offset().top+c.outerHeight(),d.scrollLeft()>c.offset().left]},visible:function(a){for(var b=a.length;b--;)if(a[b])return!1;return!0},nub_position:function(a,b,c){"auto"===b?a.addClass(c):a.addClass(b)},startTimer:function(){this.settings.$li.length?this.settings.automate=setTimeout(function(){this.hide(),this.show(),this.startTimer()}.bind(this),this.settings.timer):clearTimeout(this.settings.automate)},end:function(b){this.settings.cookie_monster&&a.cookie(this.settings.cookie_name,"ridden",{expires:this.settings.cookie_expires,domain:this.settings.cookie_domain}),this.settings.timer>0&&clearTimeout(this.settings.automate),this.settings.modal&&this.settings.expose&&this.un_expose(),a(this.scope).off("keyup.joyride"),this.settings.$next_tip.data("closed",!0),this.settings.riding=!1,a(".joyride-modal-bg").hide(),this.settings.$current_tip.hide(),("undefined"==typeof b||b===!1)&&(this.settings.post_step_callback(this.settings.$li.index(),this.settings.$current_tip),this.settings.post_ride_callback(this.settings.$li.index(),this.settings.$current_tip)),a(".joyride-tip-guide").remove()},off:function(){a(this.scope).off(".joyride"),a(b).off(".joyride"),a(".joyride-close-tip, .joyride-next-tip, .joyride-modal-bg").off(".joyride"),a(".joyride-tip-guide, .joyride-modal-bg").remove(),clearTimeout(this.settings.automate)},reflow:function(){}}}(jQuery,window,window.document),function(a,b,c,d){"use strict";Foundation.libs["magellan-expedition"]={name:"magellan-expedition",version:"5.5.3",settings:{active_class:"active",threshold:0,destination_threshold:20,throttle_delay:30,fixed_top:0,offset_by_height:!0,duration:700,easing:"swing"},init:function(a,b,c){Foundation.inherit(this,"throttle"),this.bindings(b,c)},events:function(){var b=this,c=b.S,d=b.settings;b.set_expedition_position(),c(b.scope).off(".magellan").on("click.fndtn.magellan","["+b.add_namespace("data-magellan-arrival")+"] a[href*=#]",function(c){var d=this.hostname===location.hostname||!this.hostname,e=b.filterPathname(location.pathname)===b.filterPathname(this.pathname),f=this.hash.replace(/(:|\.|\/)/g,"\\$1"),g=this;if(d&&e&&f){c.preventDefault();var h=a(this).closest("["+b.attr_name()+"]"),i=h.data("magellan-expedition-init"),j=this.hash.split("#").join(""),k=a('a[name="'+j+'"]');0===k.length&&(k=a("#"+j));var l=k.offset().top-i.destination_threshold+1;i.offset_by_height&&(l-=h.outerHeight()),a("html, body").stop().animate({scrollTop:l},i.duration,i.easing,function(){history.pushState?history.pushState(null,null,g.pathname+g.search+"#"+j):location.hash=g.pathname+g.search+"#"+j})}}).on("scroll.fndtn.magellan",b.throttle(this.check_for_arrivals.bind(this),d.throttle_delay))},check_for_arrivals:function(){var a=this;a.update_arrivals(),a.update_expedition_positions()},set_expedition_position:function(){var b=this;a("["+this.attr_name()+"=fixed]",b.scope).each(function(c,d){var e,f,g=a(this),h=g.data("magellan-expedition-init"),i=g.attr("styles");g.attr("style",""),e=g.offset().top+h.threshold,f=parseInt(g.data("magellan-fixed-top")),isNaN(f)||(b.settings.fixed_top=f),g.data(b.data_attr("magellan-top-offset"),e),g.attr("style",i)})},update_expedition_positions:function(){var c=this,d=a(b).scrollTop();a("["+this.attr_name()+"=fixed]",c.scope).each(function(){var b=a(this),e=b.data("magellan-expedition-init"),f=b.attr("style"),g=b.data("magellan-top-offset");if(d+c.settings.fixed_top>=g){var h=b.prev("["+c.add_namespace("data-magellan-expedition-clone")+"]");0===h.length&&(h=b.clone(),h.removeAttr(c.attr_name()),h.attr(c.add_namespace("data-magellan-expedition-clone"),""),b.before(h)),b.css({position:"fixed",top:e.fixed_top}).addClass("fixed")}else b.prev("["+c.add_namespace("data-magellan-expedition-clone")+"]").remove(),b.attr("style",f).css("position","").css("top","").removeClass("fixed")})},update_arrivals:function(){var c=this,d=a(b).scrollTop();a("["+this.attr_name()+"]",c.scope).each(function(){var b=a(this),e=b.data(c.attr_name(!0)+"-init"),f=c.offsets(b,d),g=b.find("["+c.add_namespace("data-magellan-arrival")+"]"),h=!1;f.each(function(a,d){if(d.viewport_offset>=d.top_offset){var f=b.find("["+c.add_namespace("data-magellan-arrival")+"]");return f.not(d.arrival).removeClass(e.active_class),d.arrival.addClass(e.active_class),h=!0,!0}}),h||g.removeClass(e.active_class)})},offsets:function(b,c){var d=this,e=b.data(d.attr_name(!0)+"-init"),f=c;return b.find("["+d.add_namespace("data-magellan-arrival")+"]").map(function(c,g){var h=a(this).data(d.data_attr("magellan-arrival")),i=a("["+d.add_namespace("data-magellan-destination")+"="+h+"]");if(i.length>0){var j=i.offset().top-e.destination_threshold;return e.offset_by_height&&(j-=b.outerHeight()),j=Math.floor(j),{destination:i,arrival:a(this),top_offset:j,viewport_offset:f}}}).sort(function(a,b){return a.top_offset<b.top_offset?-1:a.top_offset>b.top_offset?1:0})},data_attr:function(a){return this.namespace.length>0?this.namespace+"-"+a:a},off:function(){this.S(this.scope).off(".magellan"),this.S(b).off(".magellan")},filterPathname:function(a){return a=a||"",a.replace(/^\//,"").replace(/(?:index|default).[a-zA-Z]{3,4}$/,"").replace(/\/$/,"")},reflow:function(){var b=this;a("["+b.add_namespace("data-magellan-expedition-clone")+"]",b.scope).remove()}}}(jQuery,window,window.document),function(a,b,c,d){"use strict";Foundation.libs.offcanvas={name:"offcanvas",version:"5.5.3",settings:{open_method:"move",close_on_click:!1},init:function(a,b,c){this.bindings(b,c)},events:function(){var b=this,c=b.S,d="",e="",f="",g="",h="";"move"===this.settings.open_method?(d="move-",e="right",f="left",g="top",h="bottom"):"overlap_single"===this.settings.open_method?(d="offcanvas-overlap-",e="right",f="left",g="top",h="bottom"):"overlap"===this.settings.open_method&&(d="offcanvas-overlap"),c(this.scope).off(".offcanvas").on("click.fndtn.offcanvas",".left-off-canvas-toggle",function(f){b.click_toggle_class(f,d+e),"overlap"!==b.settings.open_method&&c(".left-submenu").removeClass(d+e),a(".left-off-canvas-toggle").attr("aria-expanded","true")}).on("click.fndtn.offcanvas",".left-off-canvas-menu a",function(f){var g=b.get_settings(f),h=c(this).parent();!g.close_on_click||h.hasClass("has-submenu")||h.hasClass("back")?c(this).parent().hasClass("has-submenu")?(f.preventDefault(),c(this).siblings(".left-submenu").toggleClass(d+e)):h.hasClass("back")&&(f.preventDefault(),h.parent().removeClass(d+e)):(b.hide.call(b,d+e,b.get_wrapper(f)),h.parent().removeClass(d+e)),a(".left-off-canvas-toggle").attr("aria-expanded","true")}).on("click.fndtn.offcanvas",".right-off-canvas-toggle",function(e){b.click_toggle_class(e,d+f),"overlap"!==b.settings.open_method&&c(".right-submenu").removeClass(d+f),a(".right-off-canvas-toggle").attr("aria-expanded","true")}).on("click.fndtn.offcanvas",".right-off-canvas-menu a",function(e){var g=b.get_settings(e),h=c(this).parent();!g.close_on_click||h.hasClass("has-submenu")||h.hasClass("back")?c(this).parent().hasClass("has-submenu")?(e.preventDefault(),c(this).siblings(".right-submenu").toggleClass(d+f)):h.hasClass("back")&&(e.preventDefault(),h.parent().removeClass(d+f)):(b.hide.call(b,d+f,b.get_wrapper(e)),h.parent().removeClass(d+f)),a(".right-off-canvas-toggle").attr("aria-expanded","true");
+}).on("click.fndtn.offcanvas",".top-off-canvas-toggle",function(e){b.click_toggle_class(e,d+h),"overlap"!==b.settings.open_method&&c(".top-submenu").removeClass(d+h),a(".top-off-canvas-toggle").attr("aria-expanded","true")}).on("click.fndtn.offcanvas",".top-off-canvas-menu a",function(e){var f=b.get_settings(e),g=c(this).parent();!f.close_on_click||g.hasClass("has-submenu")||g.hasClass("back")?c(this).parent().hasClass("has-submenu")?(e.preventDefault(),c(this).siblings(".top-submenu").toggleClass(d+h)):g.hasClass("back")&&(e.preventDefault(),g.parent().removeClass(d+h)):(b.hide.call(b,d+h,b.get_wrapper(e)),g.parent().removeClass(d+h)),a(".top-off-canvas-toggle").attr("aria-expanded","true")}).on("click.fndtn.offcanvas",".bottom-off-canvas-toggle",function(e){b.click_toggle_class(e,d+g),"overlap"!==b.settings.open_method&&c(".bottom-submenu").removeClass(d+g),a(".bottom-off-canvas-toggle").attr("aria-expanded","true")}).on("click.fndtn.offcanvas",".bottom-off-canvas-menu a",function(e){var f=b.get_settings(e),h=c(this).parent();!f.close_on_click||h.hasClass("has-submenu")||h.hasClass("back")?c(this).parent().hasClass("has-submenu")?(e.preventDefault(),c(this).siblings(".bottom-submenu").toggleClass(d+g)):h.hasClass("back")&&(e.preventDefault(),h.parent().removeClass(d+g)):(b.hide.call(b,d+g,b.get_wrapper(e)),h.parent().removeClass(d+g)),a(".bottom-off-canvas-toggle").attr("aria-expanded","true")}).on("click.fndtn.offcanvas",".exit-off-canvas",function(g){b.click_remove_class(g,d+f),c(".right-submenu").removeClass(d+f),e&&(b.click_remove_class(g,d+e),c(".left-submenu").removeClass(d+f)),a(".right-off-canvas-toggle").attr("aria-expanded","true")}).on("click.fndtn.offcanvas",".exit-off-canvas",function(c){b.click_remove_class(c,d+f),a(".left-off-canvas-toggle").attr("aria-expanded","false"),e&&(b.click_remove_class(c,d+e),a(".right-off-canvas-toggle").attr("aria-expanded","false"))}).on("click.fndtn.offcanvas",".exit-off-canvas",function(e){b.click_remove_class(e,d+g),c(".bottom-submenu").removeClass(d+g),h&&(b.click_remove_class(e,d+h),c(".top-submenu").removeClass(d+g)),a(".bottom-off-canvas-toggle").attr("aria-expanded","true")}).on("click.fndtn.offcanvas",".exit-off-canvas",function(c){b.click_remove_class(c,d+g),a(".top-off-canvas-toggle").attr("aria-expanded","false"),h&&(b.click_remove_class(c,d+h),a(".bottom-off-canvas-toggle").attr("aria-expanded","false"))})},toggle:function(a,b){b=b||this.get_wrapper(),b.is("."+a)?this.hide(a,b):this.show(a,b)},show:function(a,b){b=b||this.get_wrapper(),b.trigger("open.fndtn.offcanvas"),b.addClass(a)},hide:function(a,b){b=b||this.get_wrapper(),b.trigger("close.fndtn.offcanvas"),b.removeClass(a)},click_toggle_class:function(a,b){a.preventDefault();var c=this.get_wrapper(a);this.toggle(b,c)},click_remove_class:function(a,b){a.preventDefault();var c=this.get_wrapper(a);this.hide(b,c)},get_settings:function(a){var b=this.S(a.target).closest("["+this.attr_name()+"]");return b.data(this.attr_name(!0)+"-init")||this.settings},get_wrapper:function(a){var b=this.S(a?a.target:this.scope).closest(".off-canvas-wrap");return 0===b.length&&(b=this.S(".off-canvas-wrap")),b},reflow:function(){}}}(jQuery,window,window.document),function(a,b,c,d){"use strict";var e=function(){},f=function(e,f){if(e.hasClass(f.slides_container_class))return this;var j,k,l,m,n,o,p=this,q=e,r=0,s=!1;p.slides=function(){return q.children(f.slide_selector)},p.slides().first().addClass(f.active_slide_class),p.update_slide_number=function(b){f.slide_number&&(k.find("span:first").text(parseInt(b)+1),k.find("span:last").text(p.slides().length)),f.bullets&&(l.children().removeClass(f.bullets_active_class),a(l.children().get(b)).addClass(f.bullets_active_class))},p.update_active_link=function(b){var c=a('[data-orbit-link="'+p.slides().eq(b).attr("data-orbit-slide")+'"]');c.siblings().removeClass(f.bullets_active_class),c.addClass(f.bullets_active_class)},p.build_markup=function(){q.wrap('<div class="'+f.container_class+'"></div>'),j=q.parent(),q.addClass(f.slides_container_class),f.stack_on_small&&j.addClass(f.stack_on_small_class),f.navigation_arrows&&(j.append(a('<a href="#"><span></span></a>').addClass(f.prev_class)),j.append(a('<a href="#"><span></span></a>').addClass(f.next_class))),f.timer&&(m=a("<div>").addClass(f.timer_container_class),m.append("<span>"),m.append(a("<div>").addClass(f.timer_progress_class)),m.addClass(f.timer_paused_class),j.append(m)),f.slide_number&&(k=a("<div>").addClass(f.slide_number_class),k.append("<span></span> "+f.slide_number_text+" <span></span>"),j.append(k)),f.bullets&&(l=a("<ol>").addClass(f.bullets_container_class),j.append(l),l.wrap('<div class="orbit-bullets-container"></div>'),p.slides().each(function(b,c){var d=a("<li>").attr("data-orbit-slide",b).on("click",p.link_bullet);l.append(d)}))},p._goto=function(b,c){if(b===r)return!1;"object"==typeof o&&o.restart();var d=p.slides(),e="next";if(s=!0,r>b&&(e="prev"),b>=d.length){if(!f.circular)return!1;b=0}else if(0>b){if(!f.circular)return!1;b=d.length-1}var g=a(d.get(r)),h=a(d.get(b));g.css("zIndex",2),g.removeClass(f.active_slide_class),h.css("zIndex",4).addClass(f.active_slide_class),q.trigger("before-slide-change.fndtn.orbit"),f.before_slide_change(),p.update_active_link(b);var i=function(){var a=function(){r=b,s=!1,c===!0&&(o=p.create_timer(),o.start()),p.update_slide_number(r),q.trigger("after-slide-change.fndtn.orbit",[{slide_number:r,total_slides:d.length}]),f.after_slide_change(r,d.length)};q.outerHeight()!=h.outerHeight()&&f.variable_height?q.animate({height:h.outerHeight()},250,"linear",a):a()};if(1===d.length)return i(),!1;var j=function(){"next"===e&&n.next(g,h,i),"prev"===e&&n.prev(g,h,i)};h.outerHeight()>q.outerHeight()&&f.variable_height?q.animate({height:h.outerHeight()},250,"linear",j):j()},p.next=function(a){a.stopImmediatePropagation(),a.preventDefault(),p._goto(r+1)},p.prev=function(a){a.stopImmediatePropagation(),a.preventDefault(),p._goto(r-1)},p.link_custom=function(b){b.preventDefault();var c=a(this).attr("data-orbit-link");if("string"==typeof c&&""!=(c=a.trim(c))){var d=j.find("[data-orbit-slide="+c+"]");-1!=d.index()&&p._goto(d.index())}},p.link_bullet=function(b){var c=a(this).attr("data-orbit-slide");if("string"==typeof c&&""!=(c=a.trim(c)))if(isNaN(parseInt(c))){var d=j.find("[data-orbit-slide="+c+"]");-1!=d.index()&&p._goto(d.index()+1)}else p._goto(parseInt(c))},p.timer_callback=function(){p._goto(r+1,!0)},p.compute_dimensions=function(){var b=a(p.slides().get(r)),c=b.outerHeight();f.variable_height||p.slides().each(function(){a(this).outerHeight()>c&&(c=a(this).outerHeight())}),q.height(c)},p.create_timer=function(){var a=new g(j.find("."+f.timer_container_class),f,p.timer_callback);return a},p.stop_timer=function(){"object"==typeof o&&o.stop()},p.toggle_timer=function(){var a=j.find("."+f.timer_container_class);a.hasClass(f.timer_paused_class)?("undefined"==typeof o&&(o=p.create_timer()),o.start()):"object"==typeof o&&o.stop()},p.init=function(){p.build_markup(),f.timer&&(o=p.create_timer(),Foundation.utils.image_loaded(this.slides().children("img"),o.start)),n=new i(f,q),"slide"===f.animation&&(n=new h(f,q)),j.on("click","."+f.next_class,p.next),j.on("click","."+f.prev_class,p.prev),f.next_on_click&&j.on("click","."+f.slides_container_class+" [data-orbit-slide]",p.link_bullet),j.on("click",p.toggle_timer),f.swipe&&j.on("touchstart.fndtn.orbit",function(a){a.touches||(a=a.originalEvent);var b={start_page_x:a.touches[0].pageX,start_page_y:a.touches[0].pageY,start_time:(new Date).getTime(),delta_x:0,is_scrolling:d};j.data("swipe-transition",b),a.stopPropagation()}).on("touchmove.fndtn.orbit",function(a){if(a.touches||(a=a.originalEvent),!(a.touches.length>1||a.scale&&1!==a.scale)){var b=j.data("swipe-transition");if("undefined"==typeof b&&(b={}),b.delta_x=a.touches[0].pageX-b.start_page_x,"undefined"==typeof b.is_scrolling&&(b.is_scrolling=!!(b.is_scrolling||Math.abs(b.delta_x)<Math.abs(a.touches[0].pageY-b.start_page_y))),!b.is_scrolling&&!b.active){a.preventDefault();var c=b.delta_x<0?r+1:r-1;b.active=!0,p._goto(c)}}}).on("touchend.fndtn.orbit",function(a){j.data("swipe-transition",{}),a.stopPropagation()}),j.on("mouseenter.fndtn.orbit",function(a){f.timer&&f.pause_on_hover&&p.stop_timer()}).on("mouseleave.fndtn.orbit",function(a){f.timer&&f.resume_on_mouseout&&o.start()}),a(c).on("click","[data-orbit-link]",p.link_custom),a(b).on("load resize",p.compute_dimensions),Foundation.utils.image_loaded(this.slides().children("img"),p.compute_dimensions),Foundation.utils.image_loaded(this.slides().children("img"),function(){j.prev("."+f.preloader_class).css("display","none"),p.update_slide_number(0),p.update_active_link(0),q.trigger("ready.fndtn.orbit")})},p.init()},g=function(a,b,c){var d,e,f=this,g=b.timer_speed,h=a.find("."+b.timer_progress_class),i=-1;this.update_progress=function(a){var b=h.clone();b.attr("style",""),b.css("width",a+"%"),h.replaceWith(b),h=b},this.restart=function(){clearTimeout(e),a.addClass(b.timer_paused_class),i=-1,f.update_progress(0)},this.start=function(){return a.hasClass(b.timer_paused_class)?(i=-1===i?g:i,a.removeClass(b.timer_paused_class),d=(new Date).getTime(),h.animate({width:"100%"},i,"linear"),e=setTimeout(function(){f.restart(),c()},i),void a.trigger("timer-started.fndtn.orbit")):!0},this.stop=function(){if(a.hasClass(b.timer_paused_class))return!0;clearTimeout(e),a.addClass(b.timer_paused_class);var c=(new Date).getTime();i-=c-d;var h=100-i/g*100;f.update_progress(h),a.trigger("timer-stopped.fndtn.orbit")}},h=function(b,c){var d=b.animation_speed,e=1===a("html[dir=rtl]").length,f=e?"marginRight":"marginLeft",g={};g[f]="0%",this.next=function(a,b,c){a.animate({marginLeft:"-100%"},d),b.animate(g,d,function(){a.css(f,"100%"),c()})},this.prev=function(a,b,c){a.animate({marginLeft:"100%"},d),b.css(f,"-100%"),b.animate(g,d,function(){a.css(f,"100%"),c()})}},i=function(b,c){var d=b.animation_speed;1===a("html[dir=rtl]").length;this.next=function(a,b,c){b.css({margin:"0%",opacity:"0.01"}),b.animate({opacity:"1"},d,"linear",function(){a.css("margin","100%"),c()})},this.prev=function(a,b,c){b.css({margin:"0%",opacity:"0.01"}),b.animate({opacity:"1"},d,"linear",function(){a.css("margin","100%"),c()})}};Foundation.libs=Foundation.libs||{},Foundation.libs.orbit={name:"orbit",version:"5.5.3",settings:{animation:"slide",timer_speed:1e4,pause_on_hover:!0,resume_on_mouseout:!1,next_on_click:!0,animation_speed:500,stack_on_small:!1,navigation_arrows:!0,slide_number:!0,slide_number_text:"of",container_class:"orbit-container",stack_on_small_class:"orbit-stack-on-small",next_class:"orbit-next",prev_class:"orbit-prev",timer_container_class:"orbit-timer",timer_paused_class:"paused",timer_progress_class:"orbit-progress",slides_container_class:"orbit-slides-container",preloader_class:"preloader",slide_selector:"*",bullets_container_class:"orbit-bullets",bullets_active_class:"active",slide_number_class:"orbit-slide-number",caption_class:"orbit-caption",active_slide_class:"active",orbit_transition_class:"orbit-transitioning",bullets:!0,circular:!0,timer:!0,variable_height:!1,swipe:!0,before_slide_change:e,after_slide_change:e},init:function(a,b,c){this.bindings(b,c)},events:function(a){var b=new f(this.S(a),this.S(a).data("orbit-init"));this.S(a).data(this.name+"-instance",b)},reflow:function(){var a=this;if(a.S(a.scope).is("[data-orbit]")){var b=a.S(a.scope),c=b.data(a.name+"-instance");c.compute_dimensions()}else a.S("[data-orbit]",a.scope).each(function(b,c){var d=a.S(c),e=(a.data_options(d),d.data(a.name+"-instance"));e.compute_dimensions()})}}}(jQuery,window,window.document),function(a,b,c,d){"use strict";function e(a){var b=/fade/i.test(a),c=/pop/i.test(a);return{animate:b||c,pop:c,fade:b}}var f=[];Foundation.libs.reveal={name:"reveal",version:"5.5.3",locked:!1,settings:{animation:"fadeAndPop",animation_speed:250,close_on_background_click:!0,close_on_esc:!0,dismiss_modal_class:"close-reveal-modal",multiple_opened:!1,bg_class:"reveal-modal-bg",root_element:"body",open:function(){},opened:function(){},close:function(){},closed:function(){},on_ajax_error:a.noop,bg:a(".reveal-modal-bg"),css:{open:{opacity:0,visibility:"visible",display:"block"},close:{opacity:1,visibility:"hidden",display:"none"}}},init:function(b,c,d){a.extend(!0,this.settings,c,d),this.bindings(c,d)},events:function(a){var b=this,d=b.S;return d(this.scope).off(".reveal").on("click.fndtn.reveal","["+this.add_namespace("data-reveal-id")+"]:not([disabled])",function(a){if(a.preventDefault(),!b.locked){var c=d(this),e=c.data(b.data_attr("reveal-ajax")),f=c.data(b.data_attr("reveal-replace-content"));if(b.locked=!0,"undefined"==typeof e)b.open.call(b,c);else{var g=e===!0?c.attr("href"):e;b.open.call(b,c,{url:g},{replaceContentSel:f})}}}),d(c).on("click.fndtn.reveal",this.close_targets(),function(a){if(a.preventDefault(),!b.locked){var c=d("["+b.attr_name()+"].open").data(b.attr_name(!0)+"-init")||b.settings,e=d(a.target)[0]===d("."+c.bg_class)[0];if(e){if(!c.close_on_background_click)return;a.stopPropagation()}b.locked=!0,b.close.call(b,e?d("["+b.attr_name()+"].open:not(.toback)"):d(this).closest("["+b.attr_name()+"]"))}}),d("["+b.attr_name()+"]",this.scope).length>0?d(this.scope).on("open.fndtn.reveal",this.settings.open).on("opened.fndtn.reveal",this.settings.opened).on("opened.fndtn.reveal",this.open_video).on("close.fndtn.reveal",this.settings.close).on("closed.fndtn.reveal",this.settings.closed).on("closed.fndtn.reveal",this.close_video):d(this.scope).on("open.fndtn.reveal","["+b.attr_name()+"]",this.settings.open).on("opened.fndtn.reveal","["+b.attr_name()+"]",this.settings.opened).on("opened.fndtn.reveal","["+b.attr_name()+"]",this.open_video).on("close.fndtn.reveal","["+b.attr_name()+"]",this.settings.close).on("closed.fndtn.reveal","["+b.attr_name()+"]",this.settings.closed).on("closed.fndtn.reveal","["+b.attr_name()+"]",this.close_video),!0},key_up_on:function(a){var b=this;return b.S("body").off("keyup.fndtn.reveal").on("keyup.fndtn.reveal",function(a){var c=b.S("["+b.attr_name()+"].open"),d=c.data(b.attr_name(!0)+"-init")||b.settings;d&&27===a.which&&d.close_on_esc&&!b.locked&&b.close.call(b,c)}),!0},key_up_off:function(a){return this.S("body").off("keyup.fndtn.reveal"),!0},open:function(c,e){var g,h=this;c?"undefined"!=typeof c.selector?g=h.S("#"+c.data(h.data_attr("reveal-id"))).first():(g=h.S(this.scope),e=c):g=h.S(this.scope);var i=g.data(h.attr_name(!0)+"-init");if(i=i||this.settings,g.hasClass("open")&&c!==d&&c.attr("data-reveal-id")==g.attr("id"))return h.close(g);if(!g.hasClass("open")){var j=h.S("["+h.attr_name()+"].open");"undefined"==typeof g.data("css-top")&&g.data("css-top",parseInt(g.css("top"),10)).data("offset",this.cache_offset(g)),g.attr("tabindex","0").attr("aria-hidden","false"),this.key_up_on(g),g.on("open.fndtn.reveal",function(a){"fndtn.reveal"!==a.namespace}),g.on("open.fndtn.reveal").trigger("open.fndtn.reveal"),j.length<1&&this.toggle_bg(g,!0),"string"==typeof e&&(e={url:e});var k=function(){j.length>0&&(i.multiple_opened?h.to_back(j):h.hide(j,i.css.close)),i.multiple_opened&&f.push(g),h.show(g,i.css.open)};if("undefined"!=typeof e&&e.url){var l="undefined"!=typeof e.success?e.success:null;a.extend(e,{success:function(b,c,d){if(a.isFunction(l)){var e=l(b,c,d);"string"==typeof e&&(b=e)}"undefined"!=typeof options&&"undefined"!=typeof options.replaceContentSel?g.find(options.replaceContentSel).html(b):g.html(b),h.S(g).foundation("section","reflow"),h.S(g).children().foundation(),k()}}),i.on_ajax_error!==a.noop&&a.extend(e,{error:i.on_ajax_error}),a.ajax(e)}else k()}h.S(b).trigger("resize")},close:function(b){var b=b&&b.length?b:this.S(this.scope),c=this.S("["+this.attr_name()+"].open"),d=b.data(this.attr_name(!0)+"-init")||this.settings,e=this;if(c.length>0)if(b.removeAttr("tabindex","0").attr("aria-hidden","true"),this.locked=!0,this.key_up_off(b),b.trigger("close.fndtn.reveal"),(d.multiple_opened&&1===c.length||!d.multiple_opened||b.length>1)&&(e.toggle_bg(b,!1),e.to_front(b)),d.multiple_opened){var g=b.is(":not(.toback)");e.hide(b,d.css.close,d),g?f.pop():f=a.grep(f,function(a){var c=a[0]===b[0];return c&&e.to_front(b),!c}),f.length>0&&e.to_front(f[f.length-1])}else e.hide(c,d.css.close,d)},close_targets:function(){var a="."+this.settings.dismiss_modal_class;return this.settings.close_on_background_click?a+", ."+this.settings.bg_class:a},toggle_bg:function(b,c){0===this.S("."+this.settings.bg_class).length&&(this.settings.bg=a("<div />",{"class":this.settings.bg_class}).appendTo("body").hide());var e=this.settings.bg.filter(":visible").length>0;c!=e&&((c==d?e:!c)?this.hide(this.settings.bg):this.show(this.settings.bg))},show:function(c,d){if(d){var f=c.data(this.attr_name(!0)+"-init")||this.settings,g=f.root_element,h=this;if(0===c.parent(g).length){var i=c.wrap('<div style="display: none;" />').parent();c.on("closed.fndtn.reveal.wrapped",function(){c.detach().appendTo(i),c.unwrap().unbind("closed.fndtn.reveal.wrapped")}),c.detach().appendTo(g)}var j=e(f.animation);if(j.animate||(this.locked=!1),j.pop){d.top=a(b).scrollTop()-c.data("offset")+"px";var k={top:a(b).scrollTop()+c.data("css-top")+"px",opacity:1};return setTimeout(function(){return c.css(d).animate(k,f.animation_speed,"linear",function(){h.locked=!1,c.trigger("opened.fndtn.reveal")}).addClass("open")},f.animation_speed/2)}if(d.top=a(b).scrollTop()+c.data("css-top")+"px",j.fade){var k={opacity:1};return setTimeout(function(){return c.css(d).animate(k,f.animation_speed,"linear",function(){h.locked=!1,c.trigger("opened.fndtn.reveal")}).addClass("open")},f.animation_speed/2)}return c.css(d).show().css({opacity:1}).addClass("open").trigger("opened.fndtn.reveal")}var f=this.settings;return e(f.animation).fade?c.fadeIn(f.animation_speed/2):(this.locked=!1,c.show())},to_back:function(a){a.addClass("toback")},to_front:function(a){a.removeClass("toback")},hide:function(c,d){if(d){var f=c.data(this.attr_name(!0)+"-init"),g=this;f=f||this.settings;var h=e(f.animation);if(h.animate||(this.locked=!1),h.pop){var i={top:-a(b).scrollTop()-c.data("offset")+"px",opacity:0};return setTimeout(function(){return c.animate(i,f.animation_speed,"linear",function(){g.locked=!1,c.css(d).trigger("closed.fndtn.reveal")}).removeClass("open")},f.animation_speed/2)}if(h.fade){var i={opacity:0};return setTimeout(function(){return c.animate(i,f.animation_speed,"linear",function(){g.locked=!1,c.css(d).trigger("closed.fndtn.reveal")}).removeClass("open")},f.animation_speed/2)}return c.hide().css(d).removeClass("open").trigger("closed.fndtn.reveal")}var f=this.settings;return e(f.animation).fade?c.fadeOut(f.animation_speed/2):c.hide()},close_video:function(b){var c=a(".flex-video",b.target),d=a("iframe",c);d.length>0&&(d.attr("data-src",d[0].src),d.attr("src",d.attr("src")),c.hide())},open_video:function(b){var c=a(".flex-video",b.target),e=c.find("iframe");if(e.length>0){var f=e.attr("data-src");if("string"==typeof f)e[0].src=e.attr("data-src");else{var g=e[0].src;e[0].src=d,e[0].src=g}c.show()}},data_attr:function(a){return this.namespace.length>0?this.namespace+"-"+a:a},cache_offset:function(a){var b=a.show().height()+parseInt(a.css("top"),10)+a.scrollY;return a.hide(),b},off:function(){a(this.scope).off(".fndtn.reveal")},reflow:function(){}}}(jQuery,window,window.document),function(a,b,c,d){"use strict";Foundation.libs.slider={name:"slider",version:"5.5.3",settings:{start:0,end:100,step:1,precision:2,initial:null,display_selector:"",vertical:!1,trigger_input_change:!1,on_change:function(){}},cache:{},init:function(a,b,c){Foundation.inherit(this,"throttle"),this.bindings(b,c),this.reflow()},events:function(){var c=this;a(this.scope).off(".slider").on("mousedown.fndtn.slider touchstart.fndtn.slider pointerdown.fndtn.slider","["+c.attr_name()+"]:not(.disabled, [disabled]) .range-slider-handle",function(b){c.cache.active||(b.preventDefault(),c.set_active_slider(a(b.target)))}).on("mousemove.fndtn.slider touchmove.fndtn.slider pointermove.fndtn.slider",function(d){if(c.cache.active)if(d.preventDefault(),a.data(c.cache.active[0],"settings").vertical){var e=0;d.pageY||(e=b.scrollY),c.calculate_position(c.cache.active,c.get_cursor_position(d,"y")+e)}else c.calculate_position(c.cache.active,c.get_cursor_position(d,"x"))}).on("mouseup.fndtn.slider touchend.fndtn.slider pointerup.fndtn.slider",function(d){if(!c.cache.active){var e="slider"===a(d.target).attr("role")?a(d.target):a(d.target).closest(".range-slider").find("[role='slider']");if(e.length&&!e.parent().hasClass("disabled")&&!e.parent().attr("disabled"))if(c.set_active_slider(e),a.data(c.cache.active[0],"settings").vertical){var f=0;d.pageY||(f=b.scrollY),c.calculate_position(c.cache.active,c.get_cursor_position(d,"y")+f)}else c.calculate_position(c.cache.active,c.get_cursor_position(d,"x"))}c.remove_active_slider()}).on("change.fndtn.slider",function(a){c.settings.on_change()}),c.S(b).on("resize.fndtn.slider",c.throttle(function(a){c.reflow()},300)),this.S("["+this.attr_name()+"]").each(function(){var b=a(this),d=b.children(".range-slider-handle")[0],e=c.initialize_settings(d);""!=e.display_selector&&a(e.display_selector).each(function(){a(this).attr("value")&&a(this).off("change").on("change",function(){b.foundation("slider","set_value",a(this).val())})})})},get_cursor_position:function(a,b){var c,d="page"+b.toUpperCase(),e="client"+b.toUpperCase();return"undefined"!=typeof a[d]?c=a[d]:"undefined"!=typeof a.originalEvent[e]?c=a.originalEvent[e]:a.originalEvent.touches&&a.originalEvent.touches[0]&&"undefined"!=typeof a.originalEvent.touches[0][e]?c=a.originalEvent.touches[0][e]:a.currentPoint&&"undefined"!=typeof a.currentPoint[b]&&(c=a.currentPoint[b]),c},set_active_slider:function(a){this.cache.active=a},remove_active_slider:function(){this.cache.active=null},calculate_position:function(b,c){var d=this,e=a.data(b[0],"settings"),f=(a.data(b[0],"handle_l"),a.data(b[0],"handle_o"),a.data(b[0],"bar_l")),g=a.data(b[0],"bar_o");requestAnimationFrame(function(){var a;a=Foundation.rtl&&!e.vertical?d.limit_to((g+f-c)/f,0,1):d.limit_to((c-g)/f,0,1),a=e.vertical?1-a:a;var h=d.normalized_value(a,e.start,e.end,e.step,e.precision);d.set_ui(b,h)})},set_ui:function(b,c){var d=a.data(b[0],"settings"),e=a.data(b[0],"handle_l"),f=a.data(b[0],"bar_l"),g=this.normalized_percentage(c,d.start,d.end),h=g*(f-e)-1,i=100*g,j=b.parent(),k=b.parent().children("input[type=hidden]");Foundation.rtl&&!d.vertical&&(h=-h),h=d.vertical?-h+f-e+1:h,this.set_translate(b,h,d.vertical),d.vertical?b.siblings(".range-slider-active-segment").css("height",i+"%"):b.siblings(".range-slider-active-segment").css("width",i+"%"),j.attr(this.attr_name(),c).trigger("change.fndtn.slider"),k.val(c),d.trigger_input_change&&k.trigger("change.fndtn.slider"),b[0].hasAttribute("aria-valuemin")||b.attr({"aria-valuemin":d.start,"aria-valuemax":d.end}),b.attr("aria-valuenow",c),""!=d.display_selector&&a(d.display_selector).each(function(){this.hasAttribute("value")?a(this).val(c):a(this).text(c)})},normalized_percentage:function(a,b,c){return Math.min(1,(a-b)/(c-b))},normalized_value:function(a,b,c,d,e){var f=c-b,g=a*f,h=(g-g%d)/d,i=g%d,j=i>=.5*d?d:0;return(h*d+j+b).toFixed(e)},set_translate:function(b,c,d){d?a(b).css("-webkit-transform","translateY("+c+"px)").css("-moz-transform","translateY("+c+"px)").css("-ms-transform","translateY("+c+"px)").css("-o-transform","translateY("+c+"px)").css("transform","translateY("+c+"px)"):a(b).css("-webkit-transform","translateX("+c+"px)").css("-moz-transform","translateX("+c+"px)").css("-ms-transform","translateX("+c+"px)").css("-o-transform","translateX("+c+"px)").css("transform","translateX("+c+"px)")},limit_to:function(a,b,c){return Math.min(Math.max(a,b),c)},initialize_settings:function(b){var c,d=a.extend({},this.settings,this.data_options(a(b).parent()));return null===d.precision&&(c=(""+d.step).match(/\.([\d]*)/),d.precision=c&&c[1]?c[1].length:0),d.vertical?(a.data(b,"bar_o",a(b).parent().offset().top),a.data(b,"bar_l",a(b).parent().outerHeight()),a.data(b,"handle_o",a(b).offset().top),a.data(b,"handle_l",a(b).outerHeight())):(a.data(b,"bar_o",a(b).parent().offset().left),a.data(b,"bar_l",a(b).parent().outerWidth()),a.data(b,"handle_o",a(b).offset().left),a.data(b,"handle_l",a(b).outerWidth())),a.data(b,"bar",a(b).parent()),a.data(b,"settings",d)},set_initial_position:function(b){var c=a.data(b.children(".range-slider-handle")[0],"settings"),d="number"!=typeof c.initial||isNaN(c.initial)?Math.floor(.5*(c.end-c.start)/c.step)*c.step+c.start:c.initial,e=b.children(".range-slider-handle");this.set_ui(e,d)},set_value:function(b){var c=this;a("["+c.attr_name()+"]",this.scope).each(function(){a(this).attr(c.attr_name(),b)}),a(this.scope).attr(c.attr_name())&&a(this.scope).attr(c.attr_name(),b),c.reflow()},reflow:function(){var b=this;b.S("["+this.attr_name()+"]").each(function(){var c=a(this).children(".range-slider-handle")[0],d=a(this).attr(b.attr_name());b.initialize_settings(c),d?b.set_ui(a(c),parseFloat(d)):b.set_initial_position(a(this))})}}}(jQuery,window,window.document),function(a,b,c,d){"use strict";Foundation.libs.tab={name:"tab",version:"5.5.3",settings:{active_class:"active",callback:function(){},deep_linking:!1,scroll_to_content:!0,is_hover:!1},default_tab_hashes:[],init:function(a,b,c){var d=this,e=this.S;e("["+this.attr_name()+"] > .active > a",this.scope).each(function(){d.default_tab_hashes.push(this.hash)}),this.bindings(b,c),this.handle_location_hash_change()},events:function(){var a=this,c=this.S,d=function(b,d){var e=c(d).closest("["+a.attr_name()+"]").data(a.attr_name(!0)+"-init");if(!e.is_hover||Modernizr.touch){var f=b.keyCode||b.which;9!==f&&(b.preventDefault(),b.stopPropagation()),a.toggle_active_tab(c(d).parent())}};c(this.scope).off(".tab").on("keydown.fndtn.tab","["+this.attr_name()+"] > * > a",function(a){var b=a.keyCode||a.which;if(13===b||32===b){var c=this;d(a,c)}}).on("click.fndtn.tab","["+this.attr_name()+"] > * > a",function(a){var b=this;d(a,b)}).on("mouseenter.fndtn.tab","["+this.attr_name()+"] > * > a",function(b){var d=c(this).closest("["+a.attr_name()+"]").data(a.attr_name(!0)+"-init");d.is_hover&&a.toggle_active_tab(c(this).parent())}),c(b).on("hashchange.fndtn.tab",function(b){b.preventDefault(),a.handle_location_hash_change()})},handle_location_hash_change:function(){var b=this,c=this.S;c("["+this.attr_name()+"]",this.scope).each(function(){var e=c(this).data(b.attr_name(!0)+"-init");if(e.deep_linking){var f;if(f=e.scroll_to_content?b.scope.location.hash:b.scope.location.hash.replace("fndtn-",""),""!=f){var g=c(f);if(g.hasClass("content")&&g.parent().hasClass("tabs-content"))b.toggle_active_tab(a("["+b.attr_name()+"] > * > a[href="+f+"]").parent());else{var h=g.closest(".content").attr("id");h!=d&&b.toggle_active_tab(a("["+b.attr_name()+"] > * > a[href=#"+h+"]").parent(),f)}}else for(var i=0;i<b.default_tab_hashes.length;i++)b.toggle_active_tab(a("["+b.attr_name()+"] > * > a[href="+b.default_tab_hashes[i]+"]").parent())}})},toggle_active_tab:function(e,f){var g=this,h=g.S,i=e.closest("["+this.attr_name()+"]"),j=e.find("a"),k=e.children("a").first(),l="#"+k.attr("href").split("#")[1],m=h(l),n=e.siblings(),o=i.data(this.attr_name(!0)+"-init"),p=function(b){var d,e=a(this),f=a(this).parents("li").prev().children('[role="tab"]'),g=a(this).parents("li").next().children('[role="tab"]');switch(b.keyCode){case 37:d=f;break;case 39:d=g;break;default:d=!1}d.length&&(e.attr({tabindex:"-1","aria-selected":null}),d.attr({tabindex:"0","aria-selected":!0}).focus()),a('[role="tabpanel"]').attr("aria-hidden","true"),a("#"+a(c.activeElement).attr("href").substring(1)).attr("aria-hidden",null)},q=function(a){var c=o.scroll_to_content?g.default_tab_hashes[0]:"fndtn-"+g.default_tab_hashes[0].replace("#","");(a!==c||b.location.hash)&&(b.location.hash=a)};k.data("tab-content")&&(l="#"+k.data("tab-content").split("#")[1],m=h(l)),o.deep_linking&&(o.scroll_to_content?(q(f||l),f==d||f==l?e.parent()[0].scrollIntoView():h(l)[0].scrollIntoView()):q(f!=d?"fndtn-"+f.replace("#",""):"fndtn-"+l.replace("#",""))),e.addClass(o.active_class).triggerHandler("opened"),j.attr({"aria-selected":"true",tabindex:0}),n.removeClass(o.active_class),n.find("a").attr({"aria-selected":"false"}),m.siblings().removeClass(o.active_class).attr({"aria-hidden":"true"}),m.addClass(o.active_class).attr("aria-hidden","false").removeAttr("tabindex"),o.callback(e),m.triggerHandler("toggled",[m]),i.triggerHandler("toggled",[e]),j.off("keydown").on("keydown",p)},data_attr:function(a){return this.namespace.length>0?this.namespace+"-"+a:a},off:function(){},reflow:function(){}}}(jQuery,window,window.document),function(a,b,c,d){"use strict";Foundation.libs.tooltip={name:"tooltip",version:"5.5.3",settings:{additional_inheritable_classes:[],tooltip_class:".tooltip",append_to:"body",touch_close_text:"Tap To Close",disable_for_touch:!1,hover_delay:200,fade_in_duration:150,fade_out_duration:150,show_on:"all",tip_template:function(a,b){return'<span data-selector="'+a+'" id="'+a+'" class="'+Foundation.libs.tooltip.settings.tooltip_class.substring(1)+'" role="tooltip">'+b+'<span class="nub"></span></span>'}},cache:{},init:function(a,b,c){Foundation.inherit(this,"random_str"),this.bindings(b,c)},should_show:function(b,c){var d=a.extend({},this.settings,this.data_options(b));return"all"===d.show_on?!0:this.small()&&"small"===d.show_on?!0:this.medium()&&"medium"===d.show_on?!0:this.large()&&"large"===d.show_on?!0:!1},medium:function(){return matchMedia(Foundation.media_queries.medium).matches},large:function(){return matchMedia(Foundation.media_queries.large).matches},events:function(b){function c(a,b,c){a.timer||(c?(a.timer=null,e.showTip(b)):a.timer=setTimeout(function(){a.timer=null,e.showTip(b)}.bind(a),e.settings.hover_delay))}function d(a,b){a.timer&&(clearTimeout(a.timer),a.timer=null),e.hide(b)}var e=this,f=e.S;e.create(this.S(b)),a(this.scope).off(".tooltip").on("mouseenter.fndtn.tooltip mouseleave.fndtn.tooltip touchstart.fndtn.tooltip MSPointerDown.fndtn.tooltip","["+this.attr_name()+"]",function(b){var g=f(this),h=a.extend({},e.settings,e.data_options(g)),i=!1;if(Modernizr.touch&&/touchstart|MSPointerDown/i.test(b.type)&&f(b.target).is("a"))return!1;if(/mouse/i.test(b.type)&&e.ie_touch(b))return!1;if(g.hasClass("open"))Modernizr.touch&&/touchstart|MSPointerDown/i.test(b.type)&&b.preventDefault(),e.hide(g);else{if(h.disable_for_touch&&Modernizr.touch&&/touchstart|MSPointerDown/i.test(b.type))return;if(!h.disable_for_touch&&Modernizr.touch&&/touchstart|MSPointerDown/i.test(b.type)&&(b.preventDefault(),f(h.tooltip_class+".open").hide(),i=!0,a(".open["+e.attr_name()+"]").length>0)){var j=f(a(".open["+e.attr_name()+"]")[0]);e.hide(j)}/enter|over/i.test(b.type)?c(this,g):"mouseout"===b.type||"mouseleave"===b.type?d(this,g):c(this,g,!0)}}).on("mouseleave.fndtn.tooltip touchstart.fndtn.tooltip MSPointerDown.fndtn.tooltip","["+this.attr_name()+"].open",function(b){return/mouse/i.test(b.type)&&e.ie_touch(b)?!1:void(("touch"!=a(this).data("tooltip-open-event-type")||"mouseleave"!=b.type)&&("mouse"==a(this).data("tooltip-open-event-type")&&/MSPointerDown|touchstart/i.test(b.type)?e.convert_to_touch(a(this)):d(this,a(this))))}).on("DOMNodeRemoved DOMAttrModified","["+this.attr_name()+"]:not(a)",function(a){d(this,f(this))})},ie_touch:function(a){return!1},showTip:function(a){var b=this.getTip(a);return this.should_show(a,b)?this.show(a):void 0},getTip:function(b){var c=this.selector(b),d=a.extend({},this.settings,this.data_options(b)),e=null;return c&&(e=this.S('span[data-selector="'+c+'"]'+d.tooltip_class)),"object"==typeof e?e:!1},selector:function(a){var b=a.attr(this.attr_name())||a.attr("data-selector");return"string"!=typeof b&&(b=this.random_str(6),a.attr("data-selector",b).attr("aria-describedby",b)),b},create:function(c){var d=this,e=a.extend({},this.settings,this.data_options(c)),f=this.settings.tip_template;"string"==typeof e.tip_template&&b.hasOwnProperty(e.tip_template)&&(f=b[e.tip_template]);
+var g=a(f(this.selector(c),a("<div></div>").html(c.attr("title")).html())),h=this.inheritable_classes(c);g.addClass(h).appendTo(e.append_to),Modernizr.touch&&(g.append('<span class="tap-to-close">'+e.touch_close_text+"</span>"),g.on("touchstart.fndtn.tooltip MSPointerDown.fndtn.tooltip",function(a){d.hide(c)})),c.removeAttr("title").attr("title","")},reposition:function(b,c,d){var e,f,g,h,i;c.css("visibility","hidden").show(),e=b.data("width"),f=c.children(".nub"),g=f.outerHeight(),h=f.outerWidth(),this.small()?c.css({width:"100%"}):c.css({width:e?e:"auto"}),i=function(a,b,c,d,e,f){return a.css({top:b?b:"auto",bottom:d?d:"auto",left:e?e:"auto",right:c?c:"auto"}).end()};var j=b.offset().top,k=b.offset().left,l=b.outerHeight();if(i(c,j+l+10,"auto","auto",k),this.small())i(c,j+l+10,"auto","auto",12.5,a(this.scope).width()),c.addClass("tip-override"),i(f,-g,"auto","auto",k);else{Foundation.rtl&&(f.addClass("rtl"),k=k+b.outerWidth()-c.outerWidth()),i(c,j+l+10,"auto","auto",k),f.attr("style")&&f.removeAttr("style"),c.removeClass("tip-override");var m=c.outerHeight();d&&d.indexOf("tip-top")>-1?(Foundation.rtl&&f.addClass("rtl"),i(c,j-m,"auto","auto",k).removeClass("tip-override")):d&&d.indexOf("tip-left")>-1?(i(c,j+l/2-m/2,"auto","auto",k-c.outerWidth()-g).removeClass("tip-override"),f.removeClass("rtl")):d&&d.indexOf("tip-right")>-1&&(i(c,j+l/2-m/2,"auto","auto",k+b.outerWidth()+g).removeClass("tip-override"),f.removeClass("rtl"))}c.css("visibility","visible").hide()},small:function(){return matchMedia(Foundation.media_queries.small).matches&&!matchMedia(Foundation.media_queries.medium).matches},inheritable_classes:function(b){var c=a.extend({},this.settings,this.data_options(b)),d=["tip-top","tip-left","tip-bottom","tip-right","radius","round"].concat(c.additional_inheritable_classes),e=b.attr("class"),f=e?a.map(e.split(" "),function(b,c){return-1!==a.inArray(b,d)?b:void 0}).join(" "):"";return a.trim(f)},convert_to_touch:function(b){var c=this,d=c.getTip(b),e=a.extend({},c.settings,c.data_options(b));0===d.find(".tap-to-close").length&&(d.append('<span class="tap-to-close">'+e.touch_close_text+"</span>"),d.on("click.fndtn.tooltip.tapclose touchstart.fndtn.tooltip.tapclose MSPointerDown.fndtn.tooltip.tapclose",function(a){c.hide(b)})),b.data("tooltip-open-event-type","touch")},show:function(a){var b=this.getTip(a);"touch"==a.data("tooltip-open-event-type")&&this.convert_to_touch(a),this.reposition(a,b,a.attr("class")),a.addClass("open"),b.fadeIn(this.settings.fade_in_duration)},hide:function(a){var b=this.getTip(a);b.fadeOut(this.settings.fade_out_duration,function(){b.find(".tap-to-close").remove(),b.off("click.fndtn.tooltip.tapclose MSPointerDown.fndtn.tapclose"),a.removeClass("open")})},off:function(){var b=this;this.S(this.scope).off(".fndtn.tooltip"),this.S(this.settings.tooltip_class).each(function(c){a("["+b.attr_name()+"]").eq(c).attr("title",a(this).text())}).remove()},reflow:function(){}}}(jQuery,window,window.document),function(a,b,c,d){"use strict";Foundation.libs.topbar={name:"topbar",version:"5.5.3",settings:{index:0,start_offset:0,sticky_class:"sticky",custom_back_text:!0,back_text:"Back",mobile_show_parent_link:!0,is_hover:!0,scrolltop:!0,sticky_on:"all",dropdown_autoclose:!0},init:function(b,c,d){Foundation.inherit(this,"add_custom_rule register_media throttle");var e=this;e.register_media("topbar","foundation-mq-topbar"),this.bindings(c,d),e.S("["+this.attr_name()+"]",this.scope).each(function(){var b=a(this),c=b.data(e.attr_name(!0)+"-init");e.S("section, .top-bar-section",this);b.data("index",0);var d=b.parent();d.hasClass("fixed")||e.is_sticky(b,d,c)?(e.settings.sticky_class=c.sticky_class,e.settings.sticky_topbar=b,b.data("height",d.outerHeight()),b.data("stickyoffset",d.offset().top)):b.data("height",b.outerHeight()),c.assembled||e.assemble(b),c.is_hover?e.S(".has-dropdown",b).addClass("not-click"):e.S(".has-dropdown",b).removeClass("not-click"),e.add_custom_rule(".f-topbar-fixed { padding-top: "+b.data("height")+"px }"),d.hasClass("fixed")&&e.S("body").addClass("f-topbar-fixed")})},is_sticky:function(a,b,c){var d=b.hasClass(c.sticky_class),e=matchMedia(Foundation.media_queries.small).matches,f=matchMedia(Foundation.media_queries.medium).matches,g=matchMedia(Foundation.media_queries.large).matches;return d&&"all"===c.sticky_on?!0:d&&this.small()&&-1!==c.sticky_on.indexOf("small")&&e&&!f&&!g?!0:d&&this.medium()&&-1!==c.sticky_on.indexOf("medium")&&e&&f&&!g?!0:d&&this.large()&&-1!==c.sticky_on.indexOf("large")&&e&&f&&g?!0:!1},toggle:function(c){var d,e=this;d=c?e.S(c).closest("["+this.attr_name()+"]"):e.S("["+this.attr_name()+"]");var f=d.data(this.attr_name(!0)+"-init"),g=e.S("section, .top-bar-section",d);e.breakpoint()&&(e.rtl?(g.css({right:"0%"}),a(">.name",g).css({right:"100%"})):(g.css({left:"0%"}),a(">.name",g).css({left:"100%"})),e.S("li.moved",g).removeClass("moved"),d.data("index",0),d.toggleClass("expanded").css("height","")),f.scrolltop?d.hasClass("expanded")?d.parent().hasClass("fixed")&&(f.scrolltop?(d.parent().removeClass("fixed"),d.addClass("fixed"),e.S("body").removeClass("f-topbar-fixed"),b.scrollTo(0,0)):d.parent().removeClass("expanded")):d.hasClass("fixed")&&(d.parent().addClass("fixed"),d.removeClass("fixed"),e.S("body").addClass("f-topbar-fixed")):(e.is_sticky(d,d.parent(),f)&&d.parent().addClass("fixed"),d.parent().hasClass("fixed")&&(d.hasClass("expanded")?(d.addClass("fixed"),d.parent().addClass("expanded"),e.S("body").addClass("f-topbar-fixed")):(d.removeClass("fixed"),d.parent().removeClass("expanded"),e.update_sticky_positioning())))},timer:null,events:function(c){var d=this,e=this.S;e(this.scope).off(".topbar").on("click.fndtn.topbar","["+this.attr_name()+"] .toggle-topbar",function(a){a.preventDefault(),d.toggle(this)}).on("click.fndtn.topbar contextmenu.fndtn.topbar",'.top-bar .top-bar-section li a[href^="#"],['+this.attr_name()+'] .top-bar-section li a[href^="#"]',function(b){var c=a(this).closest("li"),e=c.closest("["+d.attr_name()+"]"),f=e.data(d.attr_name(!0)+"-init");if(f.dropdown_autoclose&&f.is_hover){var g=a(this).closest(".hover");g.removeClass("hover")}!d.breakpoint()||c.hasClass("back")||c.hasClass("has-dropdown")||d.toggle()}).on("click.fndtn.topbar","["+this.attr_name()+"] li.has-dropdown",function(b){var c=e(this),f=e(b.target),g=c.closest("["+d.attr_name()+"]"),h=g.data(d.attr_name(!0)+"-init");return f.data("revealId")?void d.toggle():void(d.breakpoint()||(!h.is_hover||Modernizr.touch)&&(b.stopImmediatePropagation(),c.hasClass("hover")?(c.removeClass("hover").find("li").removeClass("hover"),c.parents("li.hover").removeClass("hover")):(c.addClass("hover"),a(c).siblings().removeClass("hover"),"A"===f[0].nodeName&&f.parent().hasClass("has-dropdown")&&b.preventDefault())))}).on("click.fndtn.topbar","["+this.attr_name()+"] .has-dropdown>a",function(a){if(d.breakpoint()){a.preventDefault();var b=e(this),c=b.closest("["+d.attr_name()+"]"),f=c.find("section, .top-bar-section"),g=(b.next(".dropdown").outerHeight(),b.closest("li"));c.data("index",c.data("index")+1),g.addClass("moved"),d.rtl?(f.css({right:-(100*c.data("index"))+"%"}),f.find(">.name").css({right:100*c.data("index")+"%"})):(f.css({left:-(100*c.data("index"))+"%"}),f.find(">.name").css({left:100*c.data("index")+"%"})),c.css("height",b.siblings("ul").outerHeight(!0)+c.data("height"))}}),e(b).off(".topbar").on("resize.fndtn.topbar",d.throttle(function(){d.resize.call(d)},50)).trigger("resize.fndtn.topbar").load(function(){e(this).trigger("resize.fndtn.topbar")}),e("body").off(".topbar").on("click.fndtn.topbar",function(a){var b=e(a.target).closest("li").closest("li.hover");b.length>0||e("["+d.attr_name()+"] li.hover").removeClass("hover")}),e(this.scope).on("click.fndtn.topbar","["+this.attr_name()+"] .has-dropdown .back",function(a){a.preventDefault();var b=e(this),c=b.closest("["+d.attr_name()+"]"),f=c.find("section, .top-bar-section"),g=(c.data(d.attr_name(!0)+"-init"),b.closest("li.moved")),h=g.parent();c.data("index",c.data("index")-1),d.rtl?(f.css({right:-(100*c.data("index"))+"%"}),f.find(">.name").css({right:100*c.data("index")+"%"})):(f.css({left:-(100*c.data("index"))+"%"}),f.find(">.name").css({left:100*c.data("index")+"%"})),0===c.data("index")?c.css("height",""):c.css("height",h.outerHeight(!0)+c.data("height")),setTimeout(function(){g.removeClass("moved")},300)}),e(this.scope).find(".dropdown a").focus(function(){a(this).parents(".has-dropdown").addClass("hover")}).blur(function(){a(this).parents(".has-dropdown").removeClass("hover")})},resize:function(){var a=this;a.S("["+this.attr_name()+"]").each(function(){var b,d=a.S(this),e=d.data(a.attr_name(!0)+"-init"),f=d.parent("."+a.settings.sticky_class);if(!a.breakpoint()){var g=d.hasClass("expanded");d.css("height","").removeClass("expanded").find("li").removeClass("hover"),g&&a.toggle(d)}a.is_sticky(d,f,e)&&(f.hasClass("fixed")?(f.removeClass("fixed"),b=f.offset().top,a.S(c.body).hasClass("f-topbar-fixed")&&(b-=d.data("height")),d.data("stickyoffset",b),f.addClass("fixed")):(b=f.offset().top,d.data("stickyoffset",b)))})},breakpoint:function(){return!matchMedia(Foundation.media_queries.topbar).matches},small:function(){return matchMedia(Foundation.media_queries.small).matches},medium:function(){return matchMedia(Foundation.media_queries.medium).matches},large:function(){return matchMedia(Foundation.media_queries.large).matches},assemble:function(b){var c=this,d=b.data(this.attr_name(!0)+"-init"),e=c.S("section, .top-bar-section",b);e.detach(),c.S(".has-dropdown>a",e).each(function(){var b,e=c.S(this),f=e.siblings(".dropdown"),g=e.attr("href");f.find(".title.back").length||(b=a(1==d.mobile_show_parent_link&&g?'<li class="title back js-generated"><h5><a href="javascript:void(0)"></a></h5></li><li class="parent-link hide-for-medium-up"><a class="parent-link js-generated" href="'+g+'">'+e.html()+"</a></li>":'<li class="title back js-generated"><h5><a href="javascript:void(0)"></a></h5>'),1==d.custom_back_text?a("h5>a",b).html(d.back_text):a("h5>a",b).html("&laquo; "+e.html()),f.prepend(b))}),e.appendTo(b),this.sticky(),this.assembled(b)},assembled:function(b){b.data(this.attr_name(!0),a.extend({},b.data(this.attr_name(!0)),{assembled:!0}))},height:function(b){var c=0,d=this;return a("> li",b).each(function(){c+=d.S(this).outerHeight(!0)}),c},sticky:function(){var a=this;this.S(b).on("scroll",function(){a.update_sticky_positioning()})},update_sticky_positioning:function(){var a="."+this.settings.sticky_class,c=this.S(b),d=this;if(d.settings.sticky_topbar&&d.is_sticky(this.settings.sticky_topbar,this.settings.sticky_topbar.parent(),this.settings)){var e=this.settings.sticky_topbar.data("stickyoffset")+this.settings.start_offset;d.S(a).hasClass("expanded")||(c.scrollTop()>e?d.S(a).hasClass("fixed")||(d.S(a).addClass("fixed"),d.S("body").addClass("f-topbar-fixed")):c.scrollTop()<=e&&d.S(a).hasClass("fixed")&&(d.S(a).removeClass("fixed"),d.S("body").removeClass("f-topbar-fixed")))}},off:function(){this.S(this.scope).off(".fndtn.topbar"),this.S(b).off(".fndtn.topbar")},reflow:function(){}}}(jQuery,window,window.document);
\ No newline at end of file
diff --git a/js/foundation/js/foundation/foundation.abide.js b/js/foundation/js/foundation/foundation.abide.js
new file mode 100644 (file)
index 0000000..82ea787
--- /dev/null
@@ -0,0 +1,426 @@
+;(function ($, window, document, undefined) {
+  'use strict';
+
+  Foundation.libs.abide = {
+    name : 'abide',
+
+    version : '5.5.3',
+
+    settings : {
+      live_validate : true, // validate the form as you go
+      validate_on_blur : true, // validate whenever you focus/blur on an input field
+      // validate_on: 'tab', // tab (when user tabs between fields), change (input changes), manual (call custom events)
+
+      focus_on_invalid : true, // automatically bring the focus to an invalid input field
+      error_labels : true, // labels with a for="inputId" will receive an `error` class
+      error_class : 'error', // labels with a for="inputId" will receive an `error` class
+      // the amount of time Abide will take before it validates the form (in ms).
+      // smaller time will result in faster validation
+      timeout : 1000,
+      patterns : {
+        alpha : /^[a-zA-Z]+$/,
+        alpha_numeric : /^[a-zA-Z0-9]+$/,
+        integer : /^[-+]?\d+$/,
+        number : /^[-+]?\d*(?:[\.\,]\d+)?$/,
+
+        // amex, visa, diners
+        card : /^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$/,
+        cvv : /^([0-9]){3,4}$/,
+
+        // http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#valid-e-mail-address
+        email : /^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+$/,
+
+        // http://blogs.lse.ac.uk/lti/2008/04/23/a-regular-expression-to-match-any-url/
+        url: /^(https?|ftp|file|ssh):\/\/([-;:&=\+\$,\w]+@{1})?([-A-Za-z0-9\.]+)+:?(\d+)?((\/[-\+~%\/\.\w]+)?\??([-\+=&;%@\.\w]+)?#?([\w]+)?)?/,
+        // abc.de
+        domain : /^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,8}$/,
+
+        datetime : /^([0-2][0-9]{3})\-([0-1][0-9])\-([0-3][0-9])T([0-5][0-9])\:([0-5][0-9])\:([0-5][0-9])(Z|([\-\+]([0-1][0-9])\:00))$/,
+        // YYYY-MM-DD
+        date : /(?:19|20)[0-9]{2}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-9])|(?:(?!02)(?:0[1-9]|1[0-2])-(?:30))|(?:(?:0[13578]|1[02])-31))$/,
+        // HH:MM:SS
+        time : /^(0[0-9]|1[0-9]|2[0-3])(:[0-5][0-9]){2}$/,
+        dateISO : /^\d{4}[\/\-]\d{1,2}[\/\-]\d{1,2}$/,
+        // MM/DD/YYYY
+        month_day_year : /^(0[1-9]|1[012])[- \/.](0[1-9]|[12][0-9]|3[01])[- \/.]\d{4}$/,
+        // DD/MM/YYYY
+        day_month_year : /^(0[1-9]|[12][0-9]|3[01])[- \/.](0[1-9]|1[012])[- \/.]\d{4}$/,
+
+        // #FFF or #FFFFFF
+        color : /^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/
+      },
+      validators : {
+        equalTo : function (el, required, parent) {
+          var from  = document.getElementById(el.getAttribute(this.add_namespace('data-equalto'))).value,
+              to    = el.value,
+              valid = (from === to);
+
+          return valid;
+        }
+      }
+    },
+
+    timer : null,
+
+    init : function (scope, method, options) {
+      this.bindings(method, options);
+    },
+
+    events : function (scope) {
+      var self = this,
+          form = self.S(scope).attr('novalidate', 'novalidate'),
+          settings = form.data(this.attr_name(true) + '-init') || {};
+
+      this.invalid_attr = this.add_namespace('data-invalid');
+
+      function validate(originalSelf, e) {
+        clearTimeout(self.timer);
+        self.timer = setTimeout(function () {
+          self.validate([originalSelf], e);
+        }.bind(originalSelf), settings.timeout);
+      }
+
+      form
+        .off('.abide')
+        .on('submit.fndtn.abide', function (e) {
+          var is_ajax = /ajax/i.test(self.S(this).attr(self.attr_name()));
+          return self.validate(self.S(this).find('input, textarea, select').not(":hidden, [data-abide-ignore]").get(), e, is_ajax);
+        })
+        .on('validate.fndtn.abide', function (e) {
+          if (settings.validate_on === 'manual') {
+            self.validate([e.target], e);
+          }
+        })
+        .on('reset', function (e) {
+          return self.reset($(this), e);
+        })
+        .find('input, textarea, select').not(":hidden, [data-abide-ignore]")
+          .off('.abide')
+          .on('blur.fndtn.abide change.fndtn.abide', function (e) {
+              var id = this.getAttribute('id'),
+                  eqTo = form.find('[data-equalto="'+ id +'"]');
+            // old settings fallback
+            // will be deprecated with F6 release
+            if (settings.validate_on_blur && settings.validate_on_blur === true) {
+              validate(this, e);
+            }
+            // checks if there is an equalTo equivalent related by id
+            if(typeof eqTo.get(0) !== "undefined" && eqTo.val().length){
+              validate(eqTo.get(0),e);
+            }
+            // new settings combining validate options into one setting
+            if (settings.validate_on === 'change') {
+              validate(this, e);
+            }
+          })
+          .on('keydown.fndtn.abide', function (e) {
+            var id = this.getAttribute('id'),
+                eqTo = form.find('[data-equalto="'+ id +'"]');
+            // old settings fallback
+            // will be deprecated with F6 release
+            if (settings.live_validate && settings.live_validate === true && e.which != 9) {
+              validate(this, e);
+            }
+            // checks if there is an equalTo equivalent related by id
+            if(typeof eqTo.get(0) !== "undefined" && eqTo.val().length){
+              validate(eqTo.get(0),e);
+            }
+            // new settings combining validate options into one setting
+            if (settings.validate_on === 'tab' && e.which === 9) {
+              validate(this, e);
+            }
+            else if (settings.validate_on === 'change') {
+              validate(this, e);
+            }
+          })
+          .on('focus', function (e) {
+            if (navigator.userAgent.match(/iPad|iPhone|Android|BlackBerry|Windows Phone|webOS/i)) {
+              $('html, body').animate({
+                  scrollTop: $(e.target).offset().top
+              }, 100);
+            }
+          });
+    },
+
+    reset : function (form, e) {
+      var self = this;
+      form.removeAttr(self.invalid_attr);
+
+      $('[' + self.invalid_attr + ']', form).removeAttr(self.invalid_attr);
+      $('.' + self.settings.error_class, form).not('small').removeClass(self.settings.error_class);
+      $(':input', form).not(':button, :submit, :reset, :hidden, [data-abide-ignore]').val('').removeAttr(self.invalid_attr);
+    },
+
+    validate : function (els, e, is_ajax) {
+      var validations = this.parse_patterns(els),
+          validation_count = validations.length,
+          form = this.S(els[0]).closest('form'),
+          submit_event = /submit/.test(e.type);
+
+      // Has to count up to make sure the focus gets applied to the top error
+      for (var i = 0; i < validation_count; i++) {
+        if (!validations[i] && (submit_event || is_ajax)) {
+          if (this.settings.focus_on_invalid) {
+            els[i].focus();
+          }
+          form.trigger('invalid.fndtn.abide');
+          this.S(els[i]).closest('form').attr(this.invalid_attr, '');
+          return false;
+        }
+      }
+
+      if (submit_event || is_ajax) {
+        form.trigger('valid.fndtn.abide');
+      }
+
+      form.removeAttr(this.invalid_attr);
+
+      if (is_ajax) {
+        return false;
+      }
+
+      return true;
+    },
+
+    parse_patterns : function (els) {
+      var i = els.length,
+          el_patterns = [];
+
+      while (i--) {
+        el_patterns.push(this.pattern(els[i]));
+      }
+
+      return this.check_validation_and_apply_styles(el_patterns);
+    },
+
+    pattern : function (el) {
+      var type = el.getAttribute('type'),
+          required = typeof el.getAttribute('required') === 'string';
+
+      var pattern = el.getAttribute('pattern') || '';
+
+      if (this.settings.patterns.hasOwnProperty(pattern) && pattern.length > 0) {
+        return [el, this.settings.patterns[pattern], required];
+      } else if (pattern.length > 0) {
+        return [el, new RegExp(pattern), required];
+      }
+
+      if (this.settings.patterns.hasOwnProperty(type)) {
+        return [el, this.settings.patterns[type], required];
+      }
+
+      pattern = /.*/;
+
+      return [el, pattern, required];
+    },
+
+    // TODO: Break this up into smaller methods, getting hard to read.
+    check_validation_and_apply_styles : function (el_patterns) {
+      var i = el_patterns.length,
+          validations = [];
+      if (i == 0) {
+        return validations;
+      }
+      var form = this.S(el_patterns[0][0]).closest('[data-' + this.attr_name(true) + ']'),
+          settings = form.data(this.attr_name(true) + '-init') || {};
+      while (i--) {
+        var el = el_patterns[i][0],
+            required = el_patterns[i][2],
+            value = el.value.trim(),
+            direct_parent = this.S(el).parent(),
+            validator = el.getAttribute(this.add_namespace('data-abide-validator')),
+            is_radio = el.type === 'radio',
+            is_checkbox = el.type === 'checkbox',
+            label = this.S('label[for="' + el.getAttribute('id') + '"]'),
+            valid_length = (required) ? (el.value.length > 0) : true,
+            el_validations = [];
+
+        var parent, valid;
+
+        // support old way to do equalTo validations
+        if (el.getAttribute(this.add_namespace('data-equalto'))) { validator = 'equalTo' }
+
+        if (!direct_parent.is('label')) {
+          parent = direct_parent;
+        } else {
+          parent = direct_parent.parent();
+        }
+
+        if (is_radio && required) {
+          el_validations.push(this.valid_radio(el, required));
+        } else if (is_checkbox && required) {
+          el_validations.push(this.valid_checkbox(el, required));
+
+        } else if (validator) {
+          // Validate using each of the specified (space-delimited) validators.
+          var validators = validator.split(' ');
+          var last_valid = true, all_valid = true;
+          for (var iv = 0; iv < validators.length; iv++) {
+              valid = this.settings.validators[validators[iv]].apply(this, [el, required, parent])
+              el_validations.push(valid);
+              all_valid = valid && last_valid;
+              last_valid = valid;
+          }
+          if (all_valid) {
+              this.S(el).removeAttr(this.invalid_attr);
+              parent.removeClass('error');
+              if (label.length > 0 && this.settings.error_labels) {
+                label.removeClass(this.settings.error_class).removeAttr('role');
+              }
+              $(el).triggerHandler('valid');
+          } else {
+              this.S(el).attr(this.invalid_attr, '');
+              parent.addClass('error');
+              if (label.length > 0 && this.settings.error_labels) {
+                label.addClass(this.settings.error_class).attr('role', 'alert');
+              }
+              $(el).triggerHandler('invalid');
+          }
+        } else {
+
+          if (el_patterns[i][1].test(value) && valid_length ||
+            !required && el.value.length < 1 || $(el).attr('disabled')) {
+            el_validations.push(true);
+          } else {
+            el_validations.push(false);
+          }
+
+          el_validations = [el_validations.every(function (valid) {return valid;})];
+          if (el_validations[0]) {
+            this.S(el).removeAttr(this.invalid_attr);
+            el.setAttribute('aria-invalid', 'false');
+            el.removeAttribute('aria-describedby');
+            parent.removeClass(this.settings.error_class);
+            if (label.length > 0 && this.settings.error_labels) {
+              label.removeClass(this.settings.error_class).removeAttr('role');
+            }
+            $(el).triggerHandler('valid');
+          } else {
+            this.S(el).attr(this.invalid_attr, '');
+            el.setAttribute('aria-invalid', 'true');
+
+            // Try to find the error associated with the input
+            var errorElem = parent.find('small.' + this.settings.error_class, 'span.' + this.settings.error_class);
+            var errorID = errorElem.length > 0 ? errorElem[0].id : '';
+            if (errorID.length > 0) {
+              el.setAttribute('aria-describedby', errorID);
+            }
+
+            // el.setAttribute('aria-describedby', $(el).find('.error')[0].id);
+            parent.addClass(this.settings.error_class);
+            if (label.length > 0 && this.settings.error_labels) {
+              label.addClass(this.settings.error_class).attr('role', 'alert');
+            }
+            $(el).triggerHandler('invalid');
+          }
+        }
+        validations = validations.concat(el_validations);
+      }
+
+      return validations;
+    },
+
+    valid_checkbox : function (el, required) {
+      var el = this.S(el),
+          valid = (el.is(':checked') || !required || el.get(0).getAttribute('disabled'));
+
+      if (valid) {
+        el.removeAttr(this.invalid_attr).parent().removeClass(this.settings.error_class);
+        $(el).triggerHandler('valid');
+      } else {
+        el.attr(this.invalid_attr, '').parent().addClass(this.settings.error_class);
+        $(el).triggerHandler('invalid');
+      }
+
+      return valid;
+    },
+
+    valid_radio : function (el, required) {
+      var name = el.getAttribute('name'),
+          group = this.S(el).closest('[data-' + this.attr_name(true) + ']').find("[name='" + name + "']"),
+          count = group.length,
+          valid = false,
+          disabled = false;
+
+      // Has to count up to make sure the focus gets applied to the top error
+      for (var i=0; i < count; i++) {
+        if( group[i].getAttribute('disabled') ){
+          disabled=true;
+          valid=true;
+        } else {
+          if (group[i].checked){
+            valid = true;
+          } else {
+            if( disabled ){
+              valid = false;
+            }
+          }
+        }
+      }
+
+      // Has to count up to make sure the focus gets applied to the top error
+      for (var i = 0; i < count; i++) {
+        if (valid) {
+          this.S(group[i]).removeAttr(this.invalid_attr).parent().removeClass(this.settings.error_class);
+          $(group[i]).triggerHandler('valid');
+        } else {
+          this.S(group[i]).attr(this.invalid_attr, '').parent().addClass(this.settings.error_class);
+          $(group[i]).triggerHandler('invalid');
+        }
+      }
+
+      return valid;
+    },
+
+    valid_equal : function (el, required, parent) {
+      var from  = document.getElementById(el.getAttribute(this.add_namespace('data-equalto'))).value,
+          to    = el.value,
+          valid = (from === to);
+
+      if (valid) {
+        this.S(el).removeAttr(this.invalid_attr);
+        parent.removeClass(this.settings.error_class);
+        if (label.length > 0 && settings.error_labels) {
+          label.removeClass(this.settings.error_class);
+        }
+      } else {
+        this.S(el).attr(this.invalid_attr, '');
+        parent.addClass(this.settings.error_class);
+        if (label.length > 0 && settings.error_labels) {
+          label.addClass(this.settings.error_class);
+        }
+      }
+
+      return valid;
+    },
+
+    valid_oneof : function (el, required, parent, doNotValidateOthers) {
+      var el = this.S(el),
+        others = this.S('[' + this.add_namespace('data-oneof') + ']'),
+        valid = others.filter(':checked').length > 0;
+
+      if (valid) {
+        el.removeAttr(this.invalid_attr).parent().removeClass(this.settings.error_class);
+      } else {
+        el.attr(this.invalid_attr, '').parent().addClass(this.settings.error_class);
+      }
+
+      if (!doNotValidateOthers) {
+        var _this = this;
+        others.each(function () {
+          _this.valid_oneof.call(_this, this, null, null, true);
+        });
+      }
+
+      return valid;
+    },
+
+    reflow : function(scope, options) {
+      var self = this,
+          form = self.S('[' + this.attr_name() + ']').attr('novalidate', 'novalidate');
+          self.S(form).each(function (idx, el) {
+            self.events(el);
+          });
+    }
+  };
+}(jQuery, window, window.document));
diff --git a/js/foundation/js/foundation/foundation.accordion.js b/js/foundation/js/foundation/foundation.accordion.js
new file mode 100644 (file)
index 0000000..be329ae
--- /dev/null
@@ -0,0 +1,125 @@
+;(function ($, window, document, undefined) {
+  'use strict';
+
+  Foundation.libs.accordion = {
+    name : 'accordion',
+
+    version : '5.5.3',
+
+    settings : {
+      content_class : 'content',
+      active_class : 'active',
+      multi_expand : false,
+      toggleable : true,
+      callback : function () {}
+    },
+
+    init : function (scope, method, options) {
+      this.bindings(method, options);
+    },
+
+    events : function (instance) {
+      var self = this;
+      var S = this.S;
+      self.create(this.S(instance));
+
+      S(this.scope)
+      .off('.fndtn.accordion')
+      .on('click.fndtn.accordion', '[' + this.attr_name() + '] > dd > a, [' + this.attr_name() + '] > li > a', function (e) {
+        var accordion = S(this).closest('[' + self.attr_name() + ']'),
+            groupSelector = self.attr_name() + '=' + accordion.attr(self.attr_name()),
+            settings = accordion.data(self.attr_name(true) + '-init') || self.settings,
+            target = S('#' + this.href.split('#')[1]),
+            aunts = $('> dd, > li', accordion),
+            siblings = aunts.children('.' + settings.content_class),
+            active_content = siblings.filter('.' + settings.active_class);
+
+        e.preventDefault();
+
+        if (accordion.attr(self.attr_name())) {
+          siblings = siblings.add('[' + groupSelector + '] dd > ' + '.' + settings.content_class + ', [' + groupSelector + '] li > ' + '.' + settings.content_class);
+          aunts = aunts.add('[' + groupSelector + '] dd, [' + groupSelector + '] li');
+        }
+
+        if (settings.toggleable && target.is(active_content)) {
+          target.parent('dd, li').toggleClass(settings.active_class, false);
+          target.toggleClass(settings.active_class, false);
+          S(this).attr('aria-expanded', function(i, attr){
+              return attr === 'true' ? 'false' : 'true';
+          });
+          settings.callback(target);
+          target.triggerHandler('toggled', [accordion]);
+          accordion.triggerHandler('toggled', [target]);
+          return;
+        }
+
+        if (!settings.multi_expand) {
+          siblings.removeClass(settings.active_class);
+          aunts.removeClass(settings.active_class);
+          aunts.children('a').attr('aria-expanded','false');
+        }
+
+        target.addClass(settings.active_class).parent().addClass(settings.active_class);
+        settings.callback(target);
+        target.triggerHandler('toggled', [accordion]);
+        accordion.triggerHandler('toggled', [target]);
+        S(this).attr('aria-expanded','true');
+      });
+    },
+
+    create: function($instance) {
+      var self = this,
+          accordion = $instance,
+          aunts = $('> .accordion-navigation', accordion),
+          settings = accordion.data(self.attr_name(true) + '-init') || self.settings;
+
+      aunts.children('a').attr('aria-expanded','false');
+      aunts.has('.' + settings.content_class + '.' + settings.active_class).addClass(settings.active_class).children('a').attr('aria-expanded','true');
+
+      if (settings.multi_expand) {
+        $instance.attr('aria-multiselectable','true');
+      }
+    },
+       
+       toggle : function(options) {
+               var options = typeof options !== 'undefined' ? options : {};
+               var selector = typeof options.selector !== 'undefined' ? options.selector : '';
+               var toggle_state = typeof options.toggle_state !== 'undefined' ? options.toggle_state : '';
+               var $accordion = typeof options.$accordion !== 'undefined' ? options.$accordion : this.S(this.scope).closest('[' + this.attr_name() + ']');
+  
+               var $items = $accordion.find('> dd' + selector + ', > li' + selector);
+               if ( $items.length < 1 ) {
+                       if ( window.console ) {
+                               console.error('Selection not found.', selector);
+                       }
+                       return false;
+               }
+  
+               var S = this.S;
+               var active_class = this.settings.active_class;
+               $items.each(function() {
+                       var $item = S(this);
+                       var is_active = $item.hasClass(active_class);
+                       if ( ( is_active && toggle_state === 'close' ) || ( !is_active && toggle_state === 'open' ) || toggle_state === '' ) {
+                               $item.find('> a').trigger('click.fndtn.accordion');
+                       }
+               });
+       },
+  
+       open : function(options) {
+               var options = typeof options !== 'undefined' ? options : {};
+               options.toggle_state = 'open';
+               this.toggle(options);
+       },
+  
+       close : function(options) {
+               var options = typeof options !== 'undefined' ? options : {};
+               options.toggle_state = 'close';
+               this.toggle(options);
+       },      
+
+    off : function () {},
+
+    reflow : function () {}
+  };
+}(jQuery, window, window.document));
diff --git a/js/foundation/js/foundation/foundation.alert.js b/js/foundation/js/foundation/foundation.alert.js
new file mode 100644 (file)
index 0000000..0ab934c
--- /dev/null
@@ -0,0 +1,43 @@
+;(function ($, window, document, undefined) {
+  'use strict';
+
+  Foundation.libs.alert = {
+    name : 'alert',
+
+    version : '5.5.3',
+
+    settings : {
+      callback : function () {}
+    },
+
+    init : function (scope, method, options) {
+      this.bindings(method, options);
+    },
+
+    events : function () {
+      var self = this,
+          S = this.S;
+
+      $(this.scope).off('.alert').on('click.fndtn.alert', '[' + this.attr_name() + '] .close', function (e) {
+        var alertBox = S(this).closest('[' + self.attr_name() + ']'),
+            settings = alertBox.data(self.attr_name(true) + '-init') || self.settings;
+
+        e.preventDefault();
+        if (Modernizr.csstransitions) {
+          alertBox.addClass('alert-close');
+          alertBox.on('transitionend webkitTransitionEnd oTransitionEnd', function (e) {
+            S(this).trigger('close.fndtn.alert').remove();
+            settings.callback();
+          });
+        } else {
+          alertBox.fadeOut(300, function () {
+            S(this).trigger('close.fndtn.alert').remove();
+            settings.callback();
+          });
+        }
+      });
+    },
+
+    reflow : function () {}
+  };
+}(jQuery, window, window.document));
diff --git a/js/foundation/js/foundation/foundation.clearing.js b/js/foundation/js/foundation/foundation.clearing.js
new file mode 100644 (file)
index 0000000..f63ff91
--- /dev/null
@@ -0,0 +1,586 @@
+;(function ($, window, document, undefined) {
+  'use strict';
+
+  Foundation.libs.clearing = {
+    name : 'clearing',
+
+    version : '5.5.3',
+
+    settings : {
+      templates : {
+        viewing : '<a href="#" class="clearing-close">&times;</a>' +
+          '<div class="visible-img" style="display: none"><div class="clearing-touch-label"></div><img src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs%3D" alt="" />' +
+          '<p class="clearing-caption"></p><a href="#" class="clearing-main-prev"><span></span></a>' +
+          '<a href="#" class="clearing-main-next"><span></span></a></div>' +
+          '<img class="clearing-preload-next" style="display: none" src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs%3D" alt="" />' +
+          '<img class="clearing-preload-prev" style="display: none" src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs%3D" alt="" />'
+      },
+
+      // comma delimited list of selectors that, on click, will close clearing,
+      // add 'div.clearing-blackout, div.visible-img' to close on background click
+      close_selectors : '.clearing-close, div.clearing-blackout',
+
+      // Default to the entire li element.
+      open_selectors : '',
+
+      // Image will be skipped in carousel.
+      skip_selector : '',
+
+      touch_label : '',
+
+      // event initializer and locks
+      init : false,
+      locked : false
+    },
+
+    init : function (scope, method, options) {
+      var self = this;
+      Foundation.inherit(this, 'throttle image_loaded');
+
+      this.bindings(method, options);
+
+      if (self.S(this.scope).is('[' + this.attr_name() + ']')) {
+        this.assemble(self.S('li', this.scope));
+      } else {
+        self.S('[' + this.attr_name() + ']', this.scope).each(function () {
+          self.assemble(self.S('li', this));
+        });
+      }
+    },
+
+    events : function (scope) {
+      var self = this,
+          S = self.S,
+          $scroll_container = $('.scroll-container');
+
+      if ($scroll_container.length > 0) {
+        this.scope = $scroll_container;
+      }
+
+      S(this.scope)
+        .off('.clearing')
+        .on('click.fndtn.clearing', 'ul[' + this.attr_name() + '] li ' + this.settings.open_selectors,
+          function (e, current, target) {
+            var current = current || S(this),
+                target = target || current,
+                next = current.next('li'),
+                settings = current.closest('[' + self.attr_name() + ']').data(self.attr_name(true) + '-init'),
+                image = S(e.target);
+
+            e.preventDefault();
+
+            if (!settings) {
+              self.init();
+              settings = current.closest('[' + self.attr_name() + ']').data(self.attr_name(true) + '-init');
+            }
+
+            // if clearing is open and the current image is
+            // clicked, go to the next image in sequence
+            if (target.hasClass('visible') &&
+              current[0] === target[0] &&
+              next.length > 0 && self.is_open(current)) {
+              target = next;
+              image = S('img', target);
+            }
+
+            // set current and target to the clicked li if not otherwise defined.
+            self.open(image, current, target);
+            self.update_paddles(target);
+          })
+
+        .on('click.fndtn.clearing', '.clearing-main-next',
+          function (e) { self.nav(e, 'next') })
+        .on('click.fndtn.clearing', '.clearing-main-prev',
+          function (e) { self.nav(e, 'prev') })
+        .on('click.fndtn.clearing', this.settings.close_selectors,
+          function (e) { Foundation.libs.clearing.close(e, this) });
+
+      $(document).on('keydown.fndtn.clearing',
+          function (e) { self.keydown(e) });
+
+      S(window).off('.clearing').on('resize.fndtn.clearing',
+        function () { self.resize() });
+
+      this.swipe_events(scope);
+    },
+
+    swipe_events : function (scope) {
+      var self = this,
+      S = self.S;
+
+      S(this.scope)
+        .on('touchstart.fndtn.clearing', '.visible-img', function (e) {
+          if (!e.touches) { e = e.originalEvent; }
+          var data = {
+                start_page_x : e.touches[0].pageX,
+                start_page_y : e.touches[0].pageY,
+                start_time : (new Date()).getTime(),
+                delta_x : 0,
+                is_scrolling : undefined
+              };
+
+          S(this).data('swipe-transition', data);
+          e.stopPropagation();
+        })
+        .on('touchmove.fndtn.clearing', '.visible-img', function (e) {
+          if (!e.touches) {
+            e = e.originalEvent;
+          }
+          // Ignore pinch/zoom events
+          if (e.touches.length > 1 || e.scale && e.scale !== 1) {
+            return;
+          }
+
+          var data = S(this).data('swipe-transition');
+
+          if (typeof data === 'undefined') {
+            data = {};
+          }
+
+          data.delta_x = e.touches[0].pageX - data.start_page_x;
+
+          if (Foundation.rtl) {
+            data.delta_x = -data.delta_x;
+          }
+
+          if (typeof data.is_scrolling === 'undefined') {
+            data.is_scrolling = !!( data.is_scrolling || Math.abs(data.delta_x) < Math.abs(e.touches[0].pageY - data.start_page_y) );
+          }
+
+          if (!data.is_scrolling && !data.active) {
+            e.preventDefault();
+            var direction = (data.delta_x < 0) ? 'next' : 'prev';
+            data.active = true;
+            self.nav(e, direction);
+          }
+        })
+        .on('touchend.fndtn.clearing', '.visible-img', function (e) {
+          S(this).data('swipe-transition', {});
+          e.stopPropagation();
+        });
+    },
+
+    assemble : function ($li) {
+      var $el = $li.parent();
+
+      if ($el.parent().hasClass('carousel')) {
+        return;
+      }
+
+      $el.after('<div id="foundationClearingHolder"></div>');
+
+      var grid = $el.detach(),
+          grid_outerHTML = '';
+
+      if (grid[0] == null) {
+        return;
+      } else {
+        grid_outerHTML = grid[0].outerHTML;
+      }
+
+      var holder = this.S('#foundationClearingHolder'),
+          settings = $el.data(this.attr_name(true) + '-init'),
+          data = {
+            grid : '<div class="carousel">' + grid_outerHTML + '</div>',
+            viewing : settings.templates.viewing
+          },
+          wrapper = '<div class="clearing-assembled"><div>' + data.viewing +
+            data.grid + '</div></div>',
+          touch_label = this.settings.touch_label;
+
+      if (Modernizr.touch) {
+        wrapper = $(wrapper).find('.clearing-touch-label').html(touch_label).end();
+      }
+
+      holder.after(wrapper).remove();
+    },
+
+    open : function ($image, current, target) {
+      var self = this,
+          body = $(document.body),
+          root = target.closest('.clearing-assembled'),
+          container = self.S('div', root).first(),
+          visible_image = self.S('.visible-img', container),
+          image = self.S('img', visible_image).not($image),
+          label = self.S('.clearing-touch-label', container),
+          error = false,
+          loaded = {};
+
+      // Event to disable scrolling on touch devices when Clearing is activated
+      $('body').on('touchmove', function (e) {
+        e.preventDefault();
+      });
+
+      image.error(function () {
+        error = true;
+      });
+
+      function startLoad() {
+        setTimeout(function () {
+          this.image_loaded(image, function () {
+            if (image.outerWidth() === 1 && !error) {
+              startLoad.call(this);
+            } else {
+              cb.call(this, image);
+            }
+          }.bind(this));
+        }.bind(this), 100);
+      }
+
+      function cb (image) {
+        var $image = $(image);
+        $image.css('visibility', 'visible');
+        $image.trigger('imageVisible');
+        // toggle the gallery
+        body.css('overflow', 'hidden');
+        root.addClass('clearing-blackout');
+        container.addClass('clearing-container');
+        visible_image.show();
+        this.fix_height(target)
+          .caption(self.S('.clearing-caption', visible_image), self.S('img', target))
+          .center_and_label(image, label)
+          .shift(current, target, function () {
+            target.closest('li').siblings().removeClass('visible');
+            target.closest('li').addClass('visible');
+          });
+        visible_image.trigger('opened.fndtn.clearing')
+      }
+
+      if (!this.locked()) {
+        visible_image.trigger('open.fndtn.clearing');
+        // set the image to the selected thumbnail
+        loaded = this.load($image);
+        if (loaded.interchange) {
+          image
+            .attr('data-interchange', loaded.interchange)
+            .foundation('interchange', 'reflow');
+        } else {
+          image
+            .attr('src', loaded.src)
+            .attr('data-interchange', '');
+        }
+        image.css('visibility', 'hidden');
+
+        startLoad.call(this);
+      }
+    },
+
+    close : function (e, el) {
+      e.preventDefault();
+
+      var root = (function (target) {
+            if (/blackout/.test(target.selector)) {
+              return target;
+            } else {
+              return target.closest('.clearing-blackout');
+            }
+          }($(el))),
+          body = $(document.body), container, visible_image;
+
+      if (el === e.target && root) {
+        body.css('overflow', '');
+        container = $('div', root).first();
+        visible_image = $('.visible-img', container);
+        visible_image.trigger('close.fndtn.clearing');
+        this.settings.prev_index = 0;
+        $('ul[' + this.attr_name() + ']', root)
+          .attr('style', '').closest('.clearing-blackout')
+          .removeClass('clearing-blackout');
+        container.removeClass('clearing-container');
+        visible_image.hide();
+        visible_image.trigger('closed.fndtn.clearing');
+      }
+
+      // Event to re-enable scrolling on touch devices
+      $('body').off('touchmove');
+
+      return false;
+    },
+
+    is_open : function (current) {
+      return current.parent().prop('style').length > 0;
+    },
+
+    keydown : function (e) {
+      var clearing = $('.clearing-blackout ul[' + this.attr_name() + ']'),
+          NEXT_KEY = this.rtl ? 37 : 39,
+          PREV_KEY = this.rtl ? 39 : 37,
+          ESC_KEY = 27;
+
+      if (e.which === NEXT_KEY) {
+        this.go(clearing, 'next');
+      }
+      if (e.which === PREV_KEY) {
+        this.go(clearing, 'prev');
+      }
+      if (e.which === ESC_KEY) {
+        this.S('a.clearing-close').trigger('click.fndtn.clearing');
+      }
+    },
+
+    nav : function (e, direction) {
+      var clearing = $('ul[' + this.attr_name() + ']', '.clearing-blackout');
+
+      e.preventDefault();
+      this.go(clearing, direction);
+    },
+
+    resize : function () {
+      var image = $('img', '.clearing-blackout .visible-img'),
+          label = $('.clearing-touch-label', '.clearing-blackout');
+
+      if (image.length) {
+        this.center_and_label(image, label);
+        image.trigger('resized.fndtn.clearing')
+      }
+    },
+
+    // visual adjustments
+    fix_height : function (target) {
+      var lis = target.parent().children(),
+          self = this;
+
+      lis.each(function () {
+        var li = self.S(this),
+            image = li.find('img');
+
+        if (li.height() > image.outerHeight()) {
+          li.addClass('fix-height');
+        }
+      })
+      .closest('ul')
+      .width(lis.length * 100 + '%');
+
+      return this;
+    },
+
+    update_paddles : function (target) {
+      target = target.closest('li');
+      var visible_image = target
+        .closest('.carousel')
+        .siblings('.visible-img');
+
+      if (target.next().length > 0) {
+        this.S('.clearing-main-next', visible_image).removeClass('disabled');
+      } else {
+        this.S('.clearing-main-next', visible_image).addClass('disabled');
+      }
+
+      if (target.prev().length > 0) {
+        this.S('.clearing-main-prev', visible_image).removeClass('disabled');
+      } else {
+        this.S('.clearing-main-prev', visible_image).addClass('disabled');
+      }
+    },
+
+    center_and_label : function (target, label) {
+      if (!this.rtl && label.length > 0) {
+        label.css({
+          marginLeft : -(label.outerWidth() / 2),
+          marginTop : -(target.outerHeight() / 2)-label.outerHeight()-10
+        });
+      } else {
+        label.css({
+          marginRight : -(label.outerWidth() / 2),
+          marginTop : -(target.outerHeight() / 2)-label.outerHeight()-10,
+          left: 'auto',
+          right: '50%'
+        });
+      }
+      return this;
+    },
+
+    // image loading and preloading
+
+    load : function ($image) {
+      var href,
+          interchange,
+          closest_a;
+
+      if ($image[0].nodeName === 'A') {
+        href = $image.attr('href');
+        interchange = $image.data('clearing-interchange');
+      } else {
+        closest_a = $image.closest('a');
+        href = closest_a.attr('href');
+        interchange = closest_a.data('clearing-interchange');
+      }
+
+      this.preload($image);
+
+      return {
+        'src': href ? href : $image.attr('src'),
+        'interchange': href ? interchange : $image.data('clearing-interchange')
+      }
+    },
+
+    preload : function ($image) {
+      this
+        .img($image.closest('li').next(), 'next')
+        .img($image.closest('li').prev(), 'prev');
+    },
+
+    img : function (img, sibling_type) {
+      if (img.length) {
+        var preload_img = $('.clearing-preload-' + sibling_type),
+            new_a = this.S('a', img),
+            src,
+            interchange,
+            image;
+
+        if (new_a.length) {
+          src = new_a.attr('href');
+          interchange = new_a.data('clearing-interchange');
+        } else {
+          image = this.S('img', img);
+          src = image.attr('src');
+          interchange = image.data('clearing-interchange');
+        }
+
+        if (interchange) {
+          preload_img.attr('data-interchange', interchange);
+        } else {
+          preload_img.attr('src', src);
+          preload_img.attr('data-interchange', '');
+        }
+      }
+      return this;
+    },
+
+    // image caption
+
+    caption : function (container, $image) {
+      var caption = $image.attr('data-caption');
+
+      if (caption) {
+       var containerPlain = container.get(0);
+       containerPlain.innerHTML = caption;
+        container.show();
+      } else {
+        container
+          .text('')
+          .hide();
+      }
+      return this;
+    },
+
+    // directional methods
+
+    go : function ($ul, direction) {
+      var current = this.S('.visible', $ul),
+          target = current[direction]();
+
+      // Check for skip selector.
+      if (this.settings.skip_selector && target.find(this.settings.skip_selector).length != 0) {
+        target = target[direction]();
+      }
+
+      if (target.length) {
+        this.S('img', target)
+          .trigger('click.fndtn.clearing', [current, target])
+          .trigger('change.fndtn.clearing');
+      }
+    },
+
+    shift : function (current, target, callback) {
+      var clearing = target.parent(),
+          old_index = this.settings.prev_index || target.index(),
+          direction = this.direction(clearing, current, target),
+          dir = this.rtl ? 'right' : 'left',
+          left = parseInt(clearing.css('left'), 10),
+          width = target.outerWidth(),
+          skip_shift;
+
+      var dir_obj = {};
+
+      // we use jQuery animate instead of CSS transitions because we
+      // need a callback to unlock the next animation
+      // needs support for RTL **
+      if (target.index() !== old_index && !/skip/.test(direction)) {
+        if (/left/.test(direction)) {
+          this.lock();
+          dir_obj[dir] = left + width;
+          clearing.animate(dir_obj, 300, this.unlock());
+        } else if (/right/.test(direction)) {
+          this.lock();
+          dir_obj[dir] = left - width;
+          clearing.animate(dir_obj, 300, this.unlock());
+        }
+      } else if (/skip/.test(direction)) {
+        // the target image is not adjacent to the current image, so
+        // do we scroll right or not
+        skip_shift = target.index() - this.settings.up_count;
+        this.lock();
+
+        if (skip_shift > 0) {
+          dir_obj[dir] = -(skip_shift * width);
+          clearing.animate(dir_obj, 300, this.unlock());
+        } else {
+          dir_obj[dir] = 0;
+          clearing.animate(dir_obj, 300, this.unlock());
+        }
+      }
+
+      callback();
+    },
+
+    direction : function ($el, current, target) {
+      var lis = this.S('li', $el),
+          li_width = lis.outerWidth() + (lis.outerWidth() / 4),
+          up_count = Math.floor(this.S('.clearing-container').outerWidth() / li_width) - 1,
+          target_index = lis.index(target),
+          response;
+
+      this.settings.up_count = up_count;
+
+      if (this.adjacent(this.settings.prev_index, target_index)) {
+        if ((target_index > up_count) && target_index > this.settings.prev_index) {
+          response = 'right';
+        } else if ((target_index > up_count - 1) && target_index <= this.settings.prev_index) {
+          response = 'left';
+        } else {
+          response = false;
+        }
+      } else {
+        response = 'skip';
+      }
+
+      this.settings.prev_index = target_index;
+
+      return response;
+    },
+
+    adjacent : function (current_index, target_index) {
+      for (var i = target_index + 1; i >= target_index - 1; i--) {
+        if (i === current_index) {
+          return true;
+        }
+      }
+      return false;
+    },
+
+    // lock management
+
+    lock : function () {
+      this.settings.locked = true;
+    },
+
+    unlock : function () {
+      this.settings.locked = false;
+    },
+
+    locked : function () {
+      return this.settings.locked;
+    },
+
+    off : function () {
+      this.S(this.scope).off('.fndtn.clearing');
+      this.S(window).off('.fndtn.clearing');
+    },
+
+    reflow : function () {
+      this.init();
+    }
+  };
+
+}(jQuery, window, window.document));
diff --git a/js/foundation/js/foundation/foundation.dropdown.js b/js/foundation/js/foundation/foundation.dropdown.js
new file mode 100644 (file)
index 0000000..5db3dea
--- /dev/null
@@ -0,0 +1,468 @@
+;(function ($, window, document, undefined) {
+  'use strict';
+
+  Foundation.libs.dropdown = {
+    name : 'dropdown',
+
+    version : '5.5.3',
+
+    settings : {
+      active_class : 'open',
+      disabled_class : 'disabled',
+      mega_class : 'mega',
+      align : 'bottom',
+      is_hover : false,
+      hover_timeout : 150,
+      opened : function () {},
+      closed : function () {}
+    },
+
+    init : function (scope, method, options) {
+      Foundation.inherit(this, 'throttle');
+
+      $.extend(true, this.settings, method, options);
+      this.bindings(method, options);
+    },
+
+    events : function (scope) {
+      var self = this,
+          S = self.S;
+
+      S(this.scope)
+        .off('.dropdown')
+        .on('click.fndtn.dropdown', '[' + this.attr_name() + ']', function (e) {
+          var settings = S(this).data(self.attr_name(true) + '-init') || self.settings;
+          if (!settings.is_hover || Modernizr.touch) {
+            e.preventDefault();
+            if (S(this).parent('[data-reveal-id]').length) {
+              e.stopPropagation();
+            }
+            self.toggle($(this));
+          }
+        })
+        .on('mouseenter.fndtn.dropdown', '[' + this.attr_name() + '], [' + this.attr_name() + '-content]', function (e) {
+          var $this = S(this),
+              dropdown,
+              target;
+
+          clearTimeout(self.timeout);
+
+          if ($this.data(self.data_attr())) {
+            dropdown = S('#' + $this.data(self.data_attr()));
+            target = $this;
+          } else {
+            dropdown = $this;
+            target = S('[' + self.attr_name() + '="' + dropdown.attr('id') + '"]');
+          }
+
+          var settings = target.data(self.attr_name(true) + '-init') || self.settings;
+
+          if (S(e.currentTarget).data(self.data_attr()) && settings.is_hover) {
+            self.closeall.call(self);
+          }
+
+          if (settings.is_hover) {
+            self.open.apply(self, [dropdown, target]);
+          }
+        })
+        .on('mouseleave.fndtn.dropdown', '[' + this.attr_name() + '], [' + this.attr_name() + '-content]', function (e) {
+          var $this = S(this);
+          var settings;
+
+          if ($this.data(self.data_attr())) {
+              settings = $this.data(self.data_attr(true) + '-init') || self.settings;
+          } else {
+              var target   = S('[' + self.attr_name() + '="' + S(this).attr('id') + '"]'),
+                  settings = target.data(self.attr_name(true) + '-init') || self.settings;
+          }
+
+          self.timeout = setTimeout(function () {
+            if ($this.data(self.data_attr())) {
+              if (settings.is_hover) {
+                self.close.call(self, S('#' + $this.data(self.data_attr())));
+              }
+            } else {
+              if (settings.is_hover) {
+                self.close.call(self, $this);
+              }
+            }
+          }.bind(this), settings.hover_timeout);
+        })
+        .on('click.fndtn.dropdown', function (e) {
+          var parent = S(e.target).closest('[' + self.attr_name() + '-content]');
+          var links  = parent.find('a');
+
+          if (links.length > 0 && parent.attr('aria-autoclose') !== 'false') {
+              self.close.call(self, S('[' + self.attr_name() + '-content]'));
+          }
+
+          if (e.target !== document && !$.contains(document.documentElement, e.target)) {
+            return;
+          }
+
+          if (S(e.target).closest('[' + self.attr_name() + ']').length > 0) {
+            return;
+          }
+
+          if (!(S(e.target).data('revealId')) &&
+            (parent.length > 0 && (S(e.target).is('[' + self.attr_name() + '-content]') ||
+              $.contains(parent.first()[0], e.target)))) {
+            e.stopPropagation();
+            return;
+          }
+
+          self.close.call(self, S('[' + self.attr_name() + '-content]'));
+        })
+        .on('opened.fndtn.dropdown', '[' + self.attr_name() + '-content]', function () {
+          self.settings.opened.call(this);
+        })
+        .on('closed.fndtn.dropdown', '[' + self.attr_name() + '-content]', function () {
+          self.settings.closed.call(this);
+        });
+
+      S(window)
+        .off('.dropdown')
+        .on('resize.fndtn.dropdown', self.throttle(function () {
+          self.resize.call(self);
+        }, 50));
+
+      this.resize();
+    },
+
+    close : function (dropdown) {
+      var self = this;
+      dropdown.each(function (idx) {
+        var original_target = $('[' + self.attr_name() + '=' + dropdown[idx].id + ']') || $('aria-controls=' + dropdown[idx].id + ']');
+        original_target.attr('aria-expanded', 'false');
+        if (self.S(this).hasClass(self.settings.active_class)) {
+          self.S(this)
+            .css(Foundation.rtl ? 'right' : 'left', '-99999px')
+            .attr('aria-hidden', 'true')
+            .removeClass(self.settings.active_class)
+            .prev('[' + self.attr_name() + ']')
+            .removeClass(self.settings.active_class)
+            .removeData('target');
+
+          self.S(this).trigger('closed.fndtn.dropdown', [dropdown]);
+        }
+      });
+      dropdown.removeClass('f-open-' + this.attr_name(true));
+    },
+
+    closeall : function () {
+      var self = this;
+      $.each(self.S('.f-open-' + this.attr_name(true)), function () {
+        self.close.call(self, self.S(this));
+      });
+    },
+
+    open : function (dropdown, target) {
+      this
+        .css(dropdown
+        .addClass(this.settings.active_class), target);
+      dropdown.prev('[' + this.attr_name() + ']').addClass(this.settings.active_class);
+      dropdown.data('target', target.get(0)).trigger('opened.fndtn.dropdown', [dropdown, target]);
+      dropdown.attr('aria-hidden', 'false');
+      target.attr('aria-expanded', 'true');
+      dropdown.focus();
+      dropdown.addClass('f-open-' + this.attr_name(true));
+    },
+
+    data_attr : function () {
+      if (this.namespace.length > 0) {
+        return this.namespace + '-' + this.name;
+      }
+
+      return this.name;
+    },
+
+    toggle : function (target) {
+      if (target.hasClass(this.settings.disabled_class)) {
+        return;
+      }
+      var dropdown = this.S('#' + target.data(this.data_attr()));
+      if (dropdown.length === 0) {
+        // No dropdown found, not continuing
+        return;
+      }
+
+      this.close.call(this, this.S('[' + this.attr_name() + '-content]').not(dropdown));
+
+      if (dropdown.hasClass(this.settings.active_class)) {
+        this.close.call(this, dropdown);
+        if (dropdown.data('target') !== target.get(0)) {
+          this.open.call(this, dropdown, target);
+        }
+      } else {
+        this.open.call(this, dropdown, target);
+      }
+    },
+
+    resize : function () {
+      var dropdown = this.S('[' + this.attr_name() + '-content].open');
+      var target = $(dropdown.data("target"));
+
+      if (dropdown.length && target.length) {
+        this.css(dropdown, target);
+      }
+    },
+
+    css : function (dropdown, target) {
+      var left_offset = Math.max((target.width() - dropdown.width()) / 2, 8),
+          settings = target.data(this.attr_name(true) + '-init') || this.settings,
+          parentOverflow = dropdown.parent().css('overflow-y') || dropdown.parent().css('overflow');
+
+      this.clear_idx();
+
+
+
+      if (this.small()) {
+        var p = this.dirs.bottom.call(dropdown, target, settings);
+
+        dropdown.attr('style', '').removeClass('drop-left drop-right drop-top').css({
+          position : 'absolute',
+          width : '95%',
+          'max-width' : 'none',
+          top : p.top
+        });
+
+        dropdown.css(Foundation.rtl ? 'right' : 'left', left_offset);
+      }
+      // detect if dropdown is in an overflow container
+      else if (parentOverflow !== 'visible') {
+        var offset = target[0].offsetTop + target[0].offsetHeight;
+
+        dropdown.attr('style', '').css({
+          position : 'absolute',
+          top : offset
+        });
+
+        dropdown.css(Foundation.rtl ? 'right' : 'left', left_offset);
+      }
+      else {
+
+        this.style(dropdown, target, settings);
+      }
+
+      return dropdown;
+    },
+
+    style : function (dropdown, target, settings) {
+      var css = $.extend({position : 'absolute'},
+        this.dirs[settings.align].call(dropdown, target, settings));
+
+      dropdown.attr('style', '').css(css);
+    },
+
+    // return CSS property object
+    // `this` is the dropdown
+    dirs : {
+      // Calculate target offset
+      _base : function (t, s) {
+        var o_p = this.offsetParent(),
+            o = o_p.offset(),
+            p = t.offset();
+
+        p.top -= o.top;
+        p.left -= o.left;
+
+        //set some flags on the p object to pass along
+        p.missRight = false;
+        p.missTop = false;
+        p.missLeft = false;
+        p.leftRightFlag = false;
+
+        //lets see if the panel will be off the screen
+        //get the actual width of the page and store it
+        var actualBodyWidth;
+        var windowWidth = window.innerWidth;
+        
+        if (document.getElementsByClassName('row')[0]) {
+          actualBodyWidth = document.getElementsByClassName('row')[0].clientWidth;
+        } else {
+          actualBodyWidth = windowWidth;
+        }
+
+        var actualMarginWidth = (windowWidth - actualBodyWidth) / 2;
+        var actualBoundary = actualBodyWidth;
+
+        if (!this.hasClass('mega') && !s.ignore_repositioning) {
+          var outerWidth = this.outerWidth();
+          var o_left = t.offset().left;
+                 
+          //miss top
+          if (t.offset().top <= this.outerHeight()) {
+            p.missTop = true;
+            actualBoundary = windowWidth - actualMarginWidth;
+            p.leftRightFlag = true;
+          }
+
+          //miss right
+          if (o_left + outerWidth > o_left + actualMarginWidth && o_left - actualMarginWidth > outerWidth) {
+            p.missRight = true;
+            p.missLeft = false;
+          }
+
+          //miss left
+          if (o_left - outerWidth <= 0) {
+            p.missLeft = true;
+            p.missRight = false;
+          }
+        }
+
+        return p;
+      },
+
+      top : function (t, s) {
+        var self = Foundation.libs.dropdown,
+            p = self.dirs._base.call(this, t, s);
+
+        this.addClass('drop-top');
+
+        if (p.missTop == true) {
+          p.top = p.top + t.outerHeight() + this.outerHeight();
+          this.removeClass('drop-top');
+        }
+
+        if (p.missRight == true) {
+          p.left = p.left - this.outerWidth() + t.outerWidth();
+        }
+
+        if (t.outerWidth() < this.outerWidth() || self.small() || this.hasClass(s.mega_menu)) {
+          self.adjust_pip(this, t, s, p);
+        }
+
+        if (Foundation.rtl) {
+          return {left : p.left - this.outerWidth() + t.outerWidth(),
+            top : p.top - this.outerHeight()};
+        }
+
+        return {left : p.left, top : p.top - this.outerHeight()};
+      },
+
+      bottom : function (t, s) {
+        var self = Foundation.libs.dropdown,
+            p = self.dirs._base.call(this, t, s);
+
+        if (p.missRight == true) {
+          p.left = p.left - this.outerWidth() + t.outerWidth();
+        }
+
+        if (t.outerWidth() < this.outerWidth() || self.small() || this.hasClass(s.mega_menu)) {
+          self.adjust_pip(this, t, s, p);
+        }
+
+        if (self.rtl) {
+          return {left : p.left - this.outerWidth() + t.outerWidth(), top : p.top + t.outerHeight()};
+        }
+
+        return {left : p.left, top : p.top + t.outerHeight()};
+      },
+
+      left : function (t, s) {
+        var p = Foundation.libs.dropdown.dirs._base.call(this, t, s);
+
+        this.addClass('drop-left');
+
+        if (p.missLeft == true) {
+          p.left =  p.left + this.outerWidth();
+          p.top = p.top + t.outerHeight();
+          this.removeClass('drop-left');
+        }
+
+        return {left : p.left - this.outerWidth(), top : p.top};
+      },
+
+      right : function (t, s) {
+        var p = Foundation.libs.dropdown.dirs._base.call(this, t, s);
+
+        this.addClass('drop-right');
+
+        if (p.missRight == true) {
+          p.left = p.left - this.outerWidth();
+          p.top = p.top + t.outerHeight();
+          this.removeClass('drop-right');
+        } else {
+          p.triggeredRight = true;
+        }
+
+        var self = Foundation.libs.dropdown;
+
+        if (t.outerWidth() < this.outerWidth() || self.small() || this.hasClass(s.mega_menu)) {
+          self.adjust_pip(this, t, s, p);
+        }
+
+        return {left : p.left + t.outerWidth(), top : p.top};
+      }
+    },
+
+    // Insert rule to style psuedo elements
+    adjust_pip : function (dropdown, target, settings, position) {
+      var sheet = Foundation.stylesheet,
+          pip_offset_base = 8;
+
+      if (dropdown.hasClass(settings.mega_class)) {
+        pip_offset_base = position.left + (target.outerWidth() / 2) - 8;
+      } else if (this.small()) {
+        pip_offset_base += position.left - 8;
+      }
+
+      this.rule_idx = sheet.cssRules.length;
+
+      //default
+      var sel_before = '.f-dropdown.open:before',
+          sel_after  = '.f-dropdown.open:after',
+          css_before = 'left: ' + pip_offset_base + 'px;',
+          css_after  = 'left: ' + (pip_offset_base - 1) + 'px;';
+
+      if (position.missRight == true) {
+        pip_offset_base = dropdown.outerWidth() - 23;
+        sel_before = '.f-dropdown.open:before',
+        sel_after  = '.f-dropdown.open:after',
+        css_before = 'left: ' + pip_offset_base + 'px;',
+        css_after  = 'left: ' + (pip_offset_base - 1) + 'px;';
+      }
+
+      //just a case where right is fired, but its not missing right
+      if (position.triggeredRight == true) {
+        sel_before = '.f-dropdown.open:before',
+        sel_after  = '.f-dropdown.open:after',
+        css_before = 'left:-12px;',
+        css_after  = 'left:-14px;';
+      }
+
+      if (sheet.insertRule) {
+        sheet.insertRule([sel_before, '{', css_before, '}'].join(' '), this.rule_idx);
+        sheet.insertRule([sel_after, '{', css_after, '}'].join(' '), this.rule_idx + 1);
+      } else {
+        sheet.addRule(sel_before, css_before, this.rule_idx);
+        sheet.addRule(sel_after, css_after, this.rule_idx + 1);
+      }
+    },
+
+    // Remove old dropdown rule index
+    clear_idx : function () {
+      var sheet = Foundation.stylesheet;
+
+      if (typeof this.rule_idx !== 'undefined') {
+        sheet.deleteRule(this.rule_idx);
+        sheet.deleteRule(this.rule_idx);
+        delete this.rule_idx;
+      }
+    },
+
+    small : function () {
+      return matchMedia(Foundation.media_queries.small).matches &&
+        !matchMedia(Foundation.media_queries.medium).matches;
+    },
+
+    off : function () {
+      this.S(this.scope).off('.fndtn.dropdown');
+      this.S('html, body').off('.fndtn.dropdown');
+      this.S(window).off('.fndtn.dropdown');
+      this.S('[data-dropdown-content]').off('.fndtn.dropdown');
+    },
+
+    reflow : function () {}
+  };
+}(jQuery, window, window.document));
diff --git a/js/foundation/js/foundation/foundation.equalizer.js b/js/foundation/js/foundation/foundation.equalizer.js
new file mode 100644 (file)
index 0000000..a61a330
--- /dev/null
@@ -0,0 +1,104 @@
+;(function ($, window, document, undefined) {
+  'use strict';
+
+  Foundation.libs.equalizer = {
+    name : 'equalizer',
+
+    version : '5.5.3',
+
+    settings : {
+      use_tallest : true,
+      before_height_change : $.noop,
+      after_height_change : $.noop,
+      equalize_on_stack : false,
+      act_on_hidden_el: false
+    },
+
+    init : function (scope, method, options) {
+      Foundation.inherit(this, 'image_loaded');
+      this.bindings(method, options);
+      this.reflow();
+    },
+
+    events : function () {
+      this.S(window).off('.equalizer').on('resize.fndtn.equalizer', function (e) {
+        this.reflow();
+      }.bind(this));
+    },
+
+    equalize : function (equalizer) {
+      var isStacked = false,
+          group = equalizer.data('equalizer'),
+          settings = equalizer.data(this.attr_name(true)+'-init') || this.settings,
+          vals,
+          firstTopOffset;
+
+      if (settings.act_on_hidden_el) {
+        vals = group ? equalizer.find('['+this.attr_name()+'-watch="'+group+'"]') : equalizer.find('['+this.attr_name()+'-watch]');
+      }
+      else {
+        vals = group ? equalizer.find('['+this.attr_name()+'-watch="'+group+'"]:visible') : equalizer.find('['+this.attr_name()+'-watch]:visible');
+      }
+      
+      if (vals.length === 0) {
+        return;
+      }
+
+      settings.before_height_change();
+      equalizer.trigger('before-height-change.fndth.equalizer');
+      vals.height('inherit');
+
+      if (settings.equalize_on_stack === false) {
+        firstTopOffset = vals.first().offset().top;
+        vals.each(function () {
+          if ($(this).offset().top !== firstTopOffset) {
+            isStacked = true;
+            return false;
+          }
+        });
+        if (isStacked) {
+          return;
+        }
+      }
+
+      var heights = vals.map(function () { return $(this).outerHeight(false) }).get();
+
+      if (settings.use_tallest) {
+        var max = Math.max.apply(null, heights);
+        vals.css('height', max);
+      } else {
+        var min = Math.min.apply(null, heights);
+        vals.css('height', min);
+      }
+
+      settings.after_height_change();
+      equalizer.trigger('after-height-change.fndtn.equalizer');
+    },
+
+    reflow : function () {
+      var self = this;
+
+      this.S('[' + this.attr_name() + ']', this.scope).each(function () {
+        var $eq_target = $(this),
+            media_query = $eq_target.data('equalizer-mq'),
+            ignore_media_query = true;
+
+        if (media_query) {
+          media_query = 'is_' + media_query.replace(/-/g, '_');
+          if (Foundation.utils.hasOwnProperty(media_query)) {
+            ignore_media_query = false;
+          }
+        }
+
+        self.image_loaded(self.S('img', this), function () {
+          if (ignore_media_query || Foundation.utils[media_query]()) {
+            self.equalize($eq_target)
+          } else {
+            var vals = $eq_target.find('[' + self.attr_name() + '-watch]:visible');
+            vals.css('height', 'auto');
+          }
+        });
+      });
+    }
+  };
+})(jQuery, window, window.document);
diff --git a/js/foundation/js/foundation/foundation.interchange.js b/js/foundation/js/foundation/foundation.interchange.js
new file mode 100644 (file)
index 0000000..1096fad
--- /dev/null
@@ -0,0 +1,360 @@
+;(function ($, window, document, undefined) {
+  'use strict';
+
+  Foundation.libs.interchange = {
+    name : 'interchange',
+
+    version : '5.5.3',
+
+    cache : {},
+
+    images_loaded : false,
+    nodes_loaded : false,
+
+    settings : {
+      load_attr : 'interchange',
+
+      named_queries : {
+        'default'     : 'only screen',
+        'small'       : Foundation.media_queries['small'],
+        'small-only'  : Foundation.media_queries['small-only'],
+        'medium'      : Foundation.media_queries['medium'],
+        'medium-only' : Foundation.media_queries['medium-only'],
+        'large'       : Foundation.media_queries['large'],
+        'large-only'  : Foundation.media_queries['large-only'],
+        'xlarge'      : Foundation.media_queries['xlarge'],
+        'xlarge-only' : Foundation.media_queries['xlarge-only'],
+        'xxlarge'     : Foundation.media_queries['xxlarge'],
+        'landscape'   : 'only screen and (orientation: landscape)',
+        'portrait'    : 'only screen and (orientation: portrait)',
+        'retina'      : 'only screen and (-webkit-min-device-pixel-ratio: 2),' +
+          'only screen and (min--moz-device-pixel-ratio: 2),' +
+          'only screen and (-o-min-device-pixel-ratio: 2/1),' +
+          'only screen and (min-device-pixel-ratio: 2),' +
+          'only screen and (min-resolution: 192dpi),' +
+          'only screen and (min-resolution: 2dppx)'
+      },
+
+      directives : {
+        replace : function (el, path, trigger) {
+          // The trigger argument, if called within the directive, fires
+          // an event named after the directive on the element, passing
+          // any parameters along to the event that you pass to trigger.
+          //
+          // ex. trigger(), trigger([a, b, c]), or trigger(a, b, c)
+          //
+          // This allows you to bind a callback like so:
+          // $('#interchangeContainer').on('replace', function (e, a, b, c) {
+          //   console.log($(this).html(), a, b, c);
+          // });
+
+          if (el !== null && /IMG/.test(el[0].nodeName)) {
+            var orig_path = $.each(el, function(){this.src = path;});
+            // var orig_path = el[0].src;
+
+            if (new RegExp(path, 'i').test(orig_path)) {
+              return;
+            }
+
+            el.attr("src", path);
+
+            return trigger(el[0].src);
+          }
+          var last_path = el.data(this.data_attr + '-last-path'),
+              self = this;
+
+          if (last_path == path) {
+            return;
+          }
+
+          if (/\.(gif|jpg|jpeg|tiff|png)([?#].*)?/i.test(path)) {
+            $(el).css('background-image', 'url(' + path + ')');
+            el.data('interchange-last-path', path);
+            return trigger(path);
+          }
+
+          return $.get(path, function (response) {
+            el.html(response);
+            el.data(self.data_attr + '-last-path', path);
+            trigger();
+          });
+
+        }
+      }
+    },
+
+    init : function (scope, method, options) {
+      Foundation.inherit(this, 'throttle random_str');
+
+      this.data_attr = this.set_data_attr();
+      $.extend(true, this.settings, method, options);
+      this.bindings(method, options);
+      this.reflow();
+    },
+
+    get_media_hash : function () {
+        var mediaHash = '';
+        for (var queryName in this.settings.named_queries ) {
+            mediaHash += matchMedia(this.settings.named_queries[queryName]).matches.toString();
+        }
+        return mediaHash;
+    },
+
+    events : function () {
+      var self = this, prevMediaHash;
+
+      $(window)
+        .off('.interchange')
+        .on('resize.fndtn.interchange', self.throttle(function () {
+            var currMediaHash = self.get_media_hash();
+            if (currMediaHash !== prevMediaHash) {
+                self.resize();
+            }
+            prevMediaHash = currMediaHash;
+        }, 50));
+
+      return this;
+    },
+
+    resize : function () {
+      var cache = this.cache;
+
+      if (!this.images_loaded || !this.nodes_loaded) {
+        setTimeout($.proxy(this.resize, this), 50);
+        return;
+      }
+
+      for (var uuid in cache) {
+        if (cache.hasOwnProperty(uuid)) {
+          var passed = this.results(uuid, cache[uuid]);
+          if (passed) {
+            this.settings.directives[passed
+              .scenario[1]].call(this, passed.el, passed.scenario[0], (function (passed) {
+                if (arguments[0] instanceof Array) {
+                  var args = arguments[0];
+                } else {
+                  var args = Array.prototype.slice.call(arguments, 0);
+                }
+
+                return function() {
+                  passed.el.trigger(passed.scenario[1], args);
+                }
+              }(passed)));
+          }
+        }
+      }
+
+    },
+
+    results : function (uuid, scenarios) {
+      var count = scenarios.length;
+
+      if (count > 0) {
+        var el = this.S('[' + this.add_namespace('data-uuid') + '="' + uuid + '"]');
+
+        while (count--) {
+          var mq, rule = scenarios[count][2];
+          if (this.settings.named_queries.hasOwnProperty(rule)) {
+            mq = matchMedia(this.settings.named_queries[rule]);
+          } else {
+            mq = matchMedia(rule);
+          }
+          if (mq.matches) {
+            return {el : el, scenario : scenarios[count]};
+          }
+        }
+      }
+
+      return false;
+    },
+
+    load : function (type, force_update) {
+      if (typeof this['cached_' + type] === 'undefined' || force_update) {
+        this['update_' + type]();
+      }
+
+      return this['cached_' + type];
+    },
+
+    update_images : function () {
+      var images = this.S('img[' + this.data_attr + ']'),
+          count = images.length,
+          i = count,
+          loaded_count = 0,
+          data_attr = this.data_attr;
+
+      this.cache = {};
+      this.cached_images = [];
+      this.images_loaded = (count === 0);
+
+      while (i--) {
+        loaded_count++;
+        if (images[i]) {
+          var str = images[i].getAttribute(data_attr) || '';
+
+          if (str.length > 0) {
+            this.cached_images.push(images[i]);
+          }
+        }
+
+        if (loaded_count === count) {
+          this.images_loaded = true;
+          this.enhance('images');
+        }
+      }
+
+      return this;
+    },
+
+    update_nodes : function () {
+      var nodes = this.S('[' + this.data_attr + ']').not('img'),
+          count = nodes.length,
+          i = count,
+          loaded_count = 0,
+          data_attr = this.data_attr;
+
+      this.cached_nodes = [];
+      this.nodes_loaded = (count === 0);
+
+      while (i--) {
+        loaded_count++;
+        var str = nodes[i].getAttribute(data_attr) || '';
+
+        if (str.length > 0) {
+          this.cached_nodes.push(nodes[i]);
+        }
+
+        if (loaded_count === count) {
+          this.nodes_loaded = true;
+          this.enhance('nodes');
+        }
+      }
+
+      return this;
+    },
+
+    enhance : function (type) {
+      var i = this['cached_' + type].length;
+
+      while (i--) {
+        this.object($(this['cached_' + type][i]));
+      }
+
+      return $(window).trigger('resize.fndtn.interchange');
+    },
+
+    convert_directive : function (directive) {
+
+      var trimmed = this.trim(directive);
+
+      if (trimmed.length > 0) {
+        return trimmed;
+      }
+
+      return 'replace';
+    },
+
+    parse_scenario : function (scenario) {
+      // This logic had to be made more complex since some users were using commas in the url path
+      // So we cannot simply just split on a comma
+
+      var directive_match = scenario[0].match(/(.+),\s*(\w+)\s*$/),
+      // getting the mq has gotten a bit complicated since we started accounting for several use cases
+      // of URLs. For now we'll continue to match these scenarios, but we may consider having these scenarios
+      // as nested objects or arrays in F6.
+      // regex: match everything before close parenthesis for mq
+      media_query         = scenario[1].match(/(.*)\)/);
+
+      if (directive_match) {
+        var path  = directive_match[1],
+        directive = directive_match[2];
+
+      } else {
+        var cached_split = scenario[0].split(/,\s*$/),
+        path             = cached_split[0],
+        directive        = '';
+      }
+
+      return [this.trim(path), this.convert_directive(directive), this.trim(media_query[1])];
+    },
+
+    object : function (el) {
+      var raw_arr = this.parse_data_attr(el),
+          scenarios = [],
+          i = raw_arr.length;
+
+      if (i > 0) {
+        while (i--) {
+          // split array between comma delimited content and mq
+          // regex: comma, optional space, open parenthesis
+          var scenario = raw_arr[i].split(/,\s?\(/);
+
+          if (scenario.length > 1) {
+            var params = this.parse_scenario(scenario);
+            scenarios.push(params);
+          }
+        }
+      }
+
+      return this.store(el, scenarios);
+    },
+
+    store : function (el, scenarios) {
+      var uuid = this.random_str(),
+          current_uuid = el.data(this.add_namespace('uuid', true));
+
+      if (this.cache[current_uuid]) {
+        return this.cache[current_uuid];
+      }
+
+      el.attr(this.add_namespace('data-uuid'), uuid);
+      return this.cache[uuid] = scenarios;
+    },
+
+    trim : function (str) {
+
+      if (typeof str === 'string') {
+        return $.trim(str);
+      }
+
+      return str;
+    },
+
+    set_data_attr : function (init) {
+      if (init) {
+        if (this.namespace.length > 0) {
+          return this.namespace + '-' + this.settings.load_attr;
+        }
+
+        return this.settings.load_attr;
+      }
+
+      if (this.namespace.length > 0) {
+        return 'data-' + this.namespace + '-' + this.settings.load_attr;
+      }
+
+      return 'data-' + this.settings.load_attr;
+    },
+
+    parse_data_attr : function (el) {
+      var raw = el.attr(this.attr_name()).split(/\[(.*?)\]/),
+          i = raw.length,
+          output = [];
+
+      while (i--) {
+        if (raw[i].replace(/[\W\d]+/, '').length > 4) {
+          output.push(raw[i]);
+        }
+      }
+
+      return output;
+    },
+
+    reflow : function () {
+      this.load('images', true);
+      this.load('nodes', true);
+    }
+
+  };
+
+}(jQuery, window, window.document));
diff --git a/js/foundation/js/foundation/foundation.joyride.js b/js/foundation/js/foundation/foundation.joyride.js
new file mode 100644 (file)
index 0000000..f251119
--- /dev/null
@@ -0,0 +1,935 @@
+;(function ($, window, document, undefined) {
+  'use strict';
+
+  var Modernizr = Modernizr || false;
+
+  Foundation.libs.joyride = {
+    name : 'joyride',
+
+    version : '5.5.3',
+
+    defaults : {
+      expose                   : false,     // turn on or off the expose feature
+      modal                    : true,      // Whether to cover page with modal during the tour
+      keyboard                 : true,      // enable left, right and esc keystrokes
+      tip_location             : 'bottom',  // 'top', 'bottom', 'left' or 'right' in relation to parent
+      nub_position             : 'auto',    // override on a per tooltip bases
+      scroll_speed             : 1500,      // Page scrolling speed in milliseconds, 0 = no scroll animation
+      scroll_animation         : 'linear',  // supports 'swing' and 'linear', extend with jQuery UI.
+      timer                    : 0,         // 0 = no timer , all other numbers = timer in milliseconds
+      start_timer_on_click     : true,      // true or false - true requires clicking the first button start the timer
+      start_offset             : 0,         // the index of the tooltip you want to start on (index of the li)
+      next_button              : true,      // true or false to control whether a next button is used
+      prev_button              : true,      // true or false to control whether a prev button is used
+      tip_animation            : 'fade',    // 'pop' or 'fade' in each tip
+      pause_after              : [],        // array of indexes where to pause the tour after
+      exposed                  : [],        // array of expose elements
+      tip_animation_fade_speed : 300,       // when tipAnimation = 'fade' this is speed in milliseconds for the transition
+      cookie_monster           : false,     // true or false to control whether cookies are used
+      cookie_name              : 'joyride', // Name the cookie you'll use
+      cookie_domain            : false,     // Will this cookie be attached to a domain, ie. '.notableapp.com'
+      cookie_expires           : 365,       // set when you would like the cookie to expire.
+      tip_container            : 'body',    // Where will the tip be attached
+      abort_on_close           : true,      // When true, the close event will not fire any callback
+      tip_location_patterns    : {
+        top : ['bottom'],
+        bottom : [], // bottom should not need to be repositioned
+        left : ['right', 'top', 'bottom'],
+        right : ['left', 'top', 'bottom']
+      },
+      post_ride_callback     : function () {},    // A method to call once the tour closes (canceled or complete)
+      post_step_callback     : function () {},    // A method to call after each step
+      pre_step_callback      : function () {},    // A method to call before each step
+      pre_ride_callback      : function () {},    // A method to call before the tour starts (passed index, tip, and cloned exposed element)
+      post_expose_callback   : function () {},    // A method to call after an element has been exposed
+      template : { // HTML segments for tip layout
+        link          : '<a href="#close" class="joyride-close-tip">&times;</a>',
+        timer         : '<div class="joyride-timer-indicator-wrap"><span class="joyride-timer-indicator"></span></div>',
+        tip           : '<div class="joyride-tip-guide"><span class="joyride-nub"></span></div>',
+        wrapper       : '<div class="joyride-content-wrapper"></div>',
+        button        : '<a href="#" class="small button joyride-next-tip"></a>',
+        prev_button   : '<a href="#" class="small button joyride-prev-tip"></a>',
+        modal         : '<div class="joyride-modal-bg"></div>',
+        expose        : '<div class="joyride-expose-wrapper"></div>',
+        expose_cover  : '<div class="joyride-expose-cover"></div>'
+      },
+      expose_add_class : '' // One or more space-separated class names to be added to exposed element
+    },
+
+    init : function (scope, method, options) {
+      Foundation.inherit(this, 'throttle random_str');
+
+      this.settings = this.settings || $.extend({}, this.defaults, (options || method));
+
+      this.bindings(method, options)
+    },
+
+    go_next : function () {
+      if (this.settings.$li.next().length < 1) {
+        this.end();
+      } else if (this.settings.timer > 0) {
+        clearTimeout(this.settings.automate);
+        this.hide();
+        this.show();
+        this.startTimer();
+      } else {
+        this.hide();
+        this.show();
+      }
+    },
+
+    go_prev : function () {
+      if (this.settings.$li.prev().length < 1) {
+        // Do nothing if there are no prev element
+      } else if (this.settings.timer > 0) {
+        clearTimeout(this.settings.automate);
+        this.hide();
+        this.show(null, true);
+        this.startTimer();
+      } else {
+        this.hide();
+        this.show(null, true);
+      }
+    },
+
+    events : function () {
+      var self = this;
+
+      $(this.scope)
+        .off('.joyride')
+        .on('click.fndtn.joyride', '.joyride-next-tip, .joyride-modal-bg', function (e) {
+          e.preventDefault();
+          this.go_next()
+        }.bind(this))
+        .on('click.fndtn.joyride', '.joyride-prev-tip', function (e) {
+          e.preventDefault();
+          this.go_prev();
+        }.bind(this))
+
+        .on('click.fndtn.joyride', '.joyride-close-tip', function (e) {
+          e.preventDefault();
+          this.end(this.settings.abort_on_close);
+        }.bind(this))
+
+        .on('keyup.fndtn.joyride', function (e) {
+          // Don't do anything if keystrokes are disabled
+          // or if the joyride is not being shown
+          if (!this.settings.keyboard || !this.settings.riding) {
+            return;
+          }
+
+          switch (e.which) {
+            case 39: // right arrow
+              e.preventDefault();
+              this.go_next();
+              break;
+            case 37: // left arrow
+              e.preventDefault();
+              this.go_prev();
+              break;
+            case 27: // escape
+              e.preventDefault();
+              this.end(this.settings.abort_on_close);
+          }
+        }.bind(this));
+
+      $(window)
+        .off('.joyride')
+        .on('resize.fndtn.joyride', self.throttle(function () {
+          if ($('[' + self.attr_name() + ']').length > 0 && self.settings.$next_tip && self.settings.riding) {
+            if (self.settings.exposed.length > 0) {
+              var $els = $(self.settings.exposed);
+
+              $els.each(function () {
+                var $this = $(this);
+                self.un_expose($this);
+                self.expose($this);
+              });
+            }
+
+            if (self.is_phone()) {
+              self.pos_phone();
+            } else {
+              self.pos_default(false);
+            }
+          }
+        }, 100));
+    },
+
+    start : function () {
+      var self = this,
+          $this = $('[' + this.attr_name() + ']', this.scope),
+          integer_settings = ['timer', 'scrollSpeed', 'startOffset', 'tipAnimationFadeSpeed', 'cookieExpires'],
+          int_settings_count = integer_settings.length;
+
+      if (!$this.length > 0) {
+        return;
+      }
+
+      if (!this.settings.init) {
+        this.events();
+      }
+
+      this.settings = $this.data(this.attr_name(true) + '-init');
+
+      // non configureable settings
+      this.settings.$content_el = $this;
+      this.settings.$body = $(this.settings.tip_container);
+      this.settings.body_offset = $(this.settings.tip_container).position();
+      this.settings.$tip_content = this.settings.$content_el.find('> li');
+      this.settings.paused = false;
+      this.settings.attempts = 0;
+      this.settings.riding = true;
+
+      // can we create cookies?
+      if (typeof $.cookie !== 'function') {
+        this.settings.cookie_monster = false;
+      }
+
+      // generate the tips and insert into dom.
+      if (!this.settings.cookie_monster || this.settings.cookie_monster && !$.cookie(this.settings.cookie_name)) {
+        this.settings.$tip_content.each(function (index) {
+          var $this = $(this);
+          this.settings = $.extend({}, self.defaults, self.data_options($this));
+
+          // Make sure that settings parsed from data_options are integers where necessary
+          var i = int_settings_count;
+          while (i--) {
+            self.settings[integer_settings[i]] = parseInt(self.settings[integer_settings[i]], 10);
+          }
+          self.create({$li : $this, index : index});
+        });
+
+        // show first tip
+        if (!this.settings.start_timer_on_click && this.settings.timer > 0) {
+          this.show('init');
+          this.startTimer();
+        } else {
+          this.show('init');
+        }
+
+      }
+    },
+
+    resume : function () {
+      this.set_li();
+      this.show();
+    },
+
+    tip_template : function (opts) {
+      var $blank, content;
+
+      opts.tip_class = opts.tip_class || '';
+
+      $blank = $(this.settings.template.tip).addClass(opts.tip_class);
+      content = $.trim($(opts.li).html()) +
+        this.prev_button_text(opts.prev_button_text, opts.index) +
+        this.button_text(opts.button_text) +
+        this.settings.template.link +
+        this.timer_instance(opts.index);
+
+      $blank.append($(this.settings.template.wrapper));
+      $blank.first().attr(this.add_namespace('data-index'), opts.index);
+      $('.joyride-content-wrapper', $blank).append(content);
+
+      return $blank[0];
+    },
+
+    timer_instance : function (index) {
+      var txt;
+
+      if ((index === 0 && this.settings.start_timer_on_click && this.settings.timer > 0) || this.settings.timer === 0) {
+        txt = '';
+      } else {
+        txt = $(this.settings.template.timer)[0].outerHTML;
+      }
+      return txt;
+    },
+
+    button_text : function (txt) {
+      if (this.settings.tip_settings.next_button) {
+        txt = $.trim(txt) || 'Next';
+        txt = $(this.settings.template.button).append(txt)[0].outerHTML;
+      } else {
+        txt = '';
+      }
+      return txt;
+    },
+
+    prev_button_text : function (txt, idx) {
+      if (this.settings.tip_settings.prev_button) {
+        txt = $.trim(txt) || 'Previous';
+
+        // Add the disabled class to the button if it's the first element
+        if (idx == 0) {
+          txt = $(this.settings.template.prev_button).append(txt).addClass('disabled')[0].outerHTML;
+        } else {
+          txt = $(this.settings.template.prev_button).append(txt)[0].outerHTML;
+        }
+      } else {
+        txt = '';
+      }
+      return txt;
+    },
+
+    create : function (opts) {
+      this.settings.tip_settings = $.extend({}, this.settings, this.data_options(opts.$li));
+      var buttonText = opts.$li.attr(this.add_namespace('data-button')) || opts.$li.attr(this.add_namespace('data-text')),
+          prevButtonText = opts.$li.attr(this.add_namespace('data-button-prev')) || opts.$li.attr(this.add_namespace('data-prev-text')),
+        tipClass = opts.$li.attr('class'),
+        $tip_content = $(this.tip_template({
+          tip_class : tipClass,
+          index : opts.index,
+          button_text : buttonText,
+          prev_button_text : prevButtonText,
+          li : opts.$li
+        }));
+
+      $(this.settings.tip_container).append($tip_content);
+    },
+
+    show : function (init, is_prev) {
+      var $timer = null;
+
+      // are we paused?
+      if (this.settings.$li === undefined || ($.inArray(this.settings.$li.index(), this.settings.pause_after) === -1)) {
+
+        // don't go to the next li if the tour was paused
+        if (this.settings.paused) {
+          this.settings.paused = false;
+        } else {
+          this.set_li(init, is_prev);
+        }
+
+        this.settings.attempts = 0;
+
+        if (this.settings.$li.length && this.settings.$target.length > 0) {
+          if (init) { //run when we first start
+            this.settings.pre_ride_callback(this.settings.$li.index(), this.settings.$next_tip);
+            if (this.settings.modal) {
+              this.show_modal();
+            }
+          }
+
+          this.settings.pre_step_callback(this.settings.$li.index(), this.settings.$next_tip);
+
+          if (this.settings.modal && this.settings.expose) {
+            this.expose();
+          }
+
+          this.settings.tip_settings = $.extend({}, this.settings, this.data_options(this.settings.$li));
+
+          this.settings.timer = parseInt(this.settings.timer, 10);
+
+          this.settings.tip_settings.tip_location_pattern = this.settings.tip_location_patterns[this.settings.tip_settings.tip_location];
+
+          // scroll and hide bg if not modal and not expose
+          if (!/body/i.test(this.settings.$target.selector) && !this.settings.expose) {
+            var joyridemodalbg = $('.joyride-modal-bg');
+            if (/pop/i.test(this.settings.tipAnimation)) {
+                joyridemodalbg.hide();
+            } else {
+                joyridemodalbg.fadeOut(this.settings.tipAnimationFadeSpeed);
+            }
+            this.scroll_to();
+          }
+
+          if (this.is_phone()) {
+            this.pos_phone(true);
+          } else {
+            this.pos_default(true);
+          }
+
+          $timer = this.settings.$next_tip.find('.joyride-timer-indicator');
+
+          if (/pop/i.test(this.settings.tip_animation)) {
+
+            $timer.width(0);
+
+            if (this.settings.timer > 0) {
+
+              this.settings.$next_tip.show();
+
+              setTimeout(function () {
+                $timer.animate({
+                  width : $timer.parent().width()
+                }, this.settings.timer, 'linear');
+              }.bind(this), this.settings.tip_animation_fade_speed);
+
+            } else {
+              this.settings.$next_tip.show();
+
+            }
+
+          } else if (/fade/i.test(this.settings.tip_animation)) {
+
+            $timer.width(0);
+
+            if (this.settings.timer > 0) {
+
+              this.settings.$next_tip
+                .fadeIn(this.settings.tip_animation_fade_speed)
+                .show();
+
+              setTimeout(function () {
+                $timer.animate({
+                  width : $timer.parent().width()
+                }, this.settings.timer, 'linear');
+              }.bind(this), this.settings.tip_animation_fade_speed);
+
+            } else {
+              this.settings.$next_tip.fadeIn(this.settings.tip_animation_fade_speed);
+            }
+          }
+
+          this.settings.$current_tip = this.settings.$next_tip;
+
+        // skip non-existant targets
+        } else if (this.settings.$li && this.settings.$target.length < 1) {
+
+          this.show(init, is_prev);
+
+        } else {
+
+          this.end();
+
+        }
+      } else {
+
+        this.settings.paused = true;
+
+      }
+
+    },
+
+    is_phone : function () {
+      return matchMedia(Foundation.media_queries.small).matches &&
+        !matchMedia(Foundation.media_queries.medium).matches;
+    },
+
+    hide : function () {
+      if (this.settings.modal && this.settings.expose) {
+        this.un_expose();
+      }
+
+      if (!this.settings.modal) {
+        $('.joyride-modal-bg').hide();
+      }
+
+      // Prevent scroll bouncing...wait to remove from layout
+      this.settings.$current_tip.css('visibility', 'hidden');
+      setTimeout($.proxy(function () {
+        this.hide();
+        this.css('visibility', 'visible');
+      }, this.settings.$current_tip), 0);
+      this.settings.post_step_callback(this.settings.$li.index(),
+        this.settings.$current_tip);
+    },
+
+    set_li : function (init, is_prev) {
+      if (init) {
+        this.settings.$li = this.settings.$tip_content.eq(this.settings.start_offset);
+        this.set_next_tip();
+        this.settings.$current_tip = this.settings.$next_tip;
+      } else {
+        if (is_prev) {
+          this.settings.$li = this.settings.$li.prev();
+        } else {
+          this.settings.$li = this.settings.$li.next();
+        }
+        this.set_next_tip();
+      }
+
+      this.set_target();
+    },
+
+    set_next_tip : function () {
+      this.settings.$next_tip = $('.joyride-tip-guide').eq(this.settings.$li.index());
+      this.settings.$next_tip.data('closed', '');
+    },
+
+    set_target : function () {
+      var cl = this.settings.$li.attr(this.add_namespace('data-class')),
+          id = this.settings.$li.attr(this.add_namespace('data-id')),
+          $sel = function () {
+            if (id) {
+              return $(document.getElementById(id));
+            } else if (cl) {
+              return $('.' + cl).first();
+            } else {
+              return $('body');
+            }
+          };
+
+      this.settings.$target = $sel();
+    },
+
+    scroll_to : function () {
+      var window_half, tipOffset;
+
+      window_half = $(window).height() / 2;
+      tipOffset = Math.ceil(this.settings.$target.offset().top - window_half + this.settings.$next_tip.outerHeight());
+
+      if (tipOffset != 0) {
+        $('html, body').stop().animate({
+          scrollTop : tipOffset
+        }, this.settings.scroll_speed, 'swing');
+      }
+    },
+
+    paused : function () {
+      return ($.inArray((this.settings.$li.index() + 1), this.settings.pause_after) === -1);
+    },
+
+    restart : function () {
+      this.hide();
+      this.settings.$li = undefined;
+      this.show('init');
+    },
+
+    pos_default : function (init) {
+      var $nub = this.settings.$next_tip.find('.joyride-nub'),
+          nub_width = Math.ceil($nub.outerWidth() / 2),
+          nub_height = Math.ceil($nub.outerHeight() / 2),
+          toggle = init || false;
+
+      // tip must not be "display: none" to calculate position
+      if (toggle) {
+        this.settings.$next_tip.css('visibility', 'hidden');
+        this.settings.$next_tip.show();
+      }
+
+      if (!/body/i.test(this.settings.$target.selector)) {
+        var topAdjustment = this.settings.tip_settings.tipAdjustmentY ? parseInt(this.settings.tip_settings.tipAdjustmentY) : 0,
+            leftAdjustment = this.settings.tip_settings.tipAdjustmentX ? parseInt(this.settings.tip_settings.tipAdjustmentX) : 0;
+
+        if (this.bottom()) {
+          if (this.rtl) {
+            this.settings.$next_tip.css({
+              top : (this.settings.$target.offset().top + nub_height + this.settings.$target.outerHeight() + topAdjustment),
+              left : this.settings.$target.offset().left + this.settings.$target.outerWidth() - this.settings.$next_tip.outerWidth() + leftAdjustment});
+          } else {
+            this.settings.$next_tip.css({
+              top : (this.settings.$target.offset().top + nub_height + this.settings.$target.outerHeight() + topAdjustment),
+              left : this.settings.$target.offset().left + leftAdjustment});
+          }
+
+          this.nub_position($nub, this.settings.tip_settings.nub_position, 'top');
+
+        } else if (this.top()) {
+          if (this.rtl) {
+            this.settings.$next_tip.css({
+              top : (this.settings.$target.offset().top - this.settings.$next_tip.outerHeight() - nub_height + topAdjustment),
+              left : this.settings.$target.offset().left + this.settings.$target.outerWidth() - this.settings.$next_tip.outerWidth()});
+          } else {
+            this.settings.$next_tip.css({
+              top : (this.settings.$target.offset().top - this.settings.$next_tip.outerHeight() - nub_height + topAdjustment),
+              left : this.settings.$target.offset().left + leftAdjustment});
+          }
+
+          this.nub_position($nub, this.settings.tip_settings.nub_position, 'bottom');
+
+        } else if (this.right()) {
+
+          this.settings.$next_tip.css({
+            top : this.settings.$target.offset().top + topAdjustment,
+            left : (this.settings.$target.outerWidth() + this.settings.$target.offset().left + nub_width + leftAdjustment)});
+
+          this.nub_position($nub, this.settings.tip_settings.nub_position, 'left');
+
+        } else if (this.left()) {
+
+          this.settings.$next_tip.css({
+            top : this.settings.$target.offset().top + topAdjustment,
+            left : (this.settings.$target.offset().left - this.settings.$next_tip.outerWidth() - nub_width + leftAdjustment)});
+
+          this.nub_position($nub, this.settings.tip_settings.nub_position, 'right');
+
+        }
+
+        if (!this.visible(this.corners(this.settings.$next_tip)) && this.settings.attempts < this.settings.tip_settings.tip_location_pattern.length) {
+
+          $nub.removeClass('bottom')
+            .removeClass('top')
+            .removeClass('right')
+            .removeClass('left');
+
+          this.settings.tip_settings.tip_location = this.settings.tip_settings.tip_location_pattern[this.settings.attempts];
+
+          this.settings.attempts++;
+
+          this.pos_default();
+
+        }
+
+      } else if (this.settings.$li.length) {
+
+        this.pos_modal($nub);
+
+      }
+
+      if (toggle) {
+        this.settings.$next_tip.hide();
+        this.settings.$next_tip.css('visibility', 'visible');
+      }
+
+    },
+
+    pos_phone : function (init) {
+      var tip_height = this.settings.$next_tip.outerHeight(),
+          tip_offset = this.settings.$next_tip.offset(),
+          target_height = this.settings.$target.outerHeight(),
+          $nub = $('.joyride-nub', this.settings.$next_tip),
+          nub_height = Math.ceil($nub.outerHeight() / 2),
+          toggle = init || false;
+
+      $nub.removeClass('bottom')
+        .removeClass('top')
+        .removeClass('right')
+        .removeClass('left');
+
+      if (toggle) {
+        this.settings.$next_tip.css('visibility', 'hidden');
+        this.settings.$next_tip.show();
+      }
+
+      if (!/body/i.test(this.settings.$target.selector)) {
+
+        if (this.top()) {
+
+            this.settings.$next_tip.offset({top : this.settings.$target.offset().top - tip_height - nub_height});
+            $nub.addClass('bottom');
+
+        } else {
+
+          this.settings.$next_tip.offset({top : this.settings.$target.offset().top + target_height + nub_height});
+          $nub.addClass('top');
+
+        }
+
+      } else if (this.settings.$li.length) {
+        this.pos_modal($nub);
+      }
+
+      if (toggle) {
+        this.settings.$next_tip.hide();
+        this.settings.$next_tip.css('visibility', 'visible');
+      }
+    },
+
+    pos_modal : function ($nub) {
+      this.center();
+      $nub.hide();
+
+      this.show_modal();
+    },
+
+    show_modal : function () {
+      if (!this.settings.$next_tip.data('closed')) {
+        var joyridemodalbg =  $('.joyride-modal-bg');
+        if (joyridemodalbg.length < 1) {
+          var joyridemodalbg = $(this.settings.template.modal);
+          joyridemodalbg.appendTo('body');
+        }
+
+        if (/pop/i.test(this.settings.tip_animation)) {
+            joyridemodalbg.show();
+        } else {
+            joyridemodalbg.fadeIn(this.settings.tip_animation_fade_speed);
+        }
+      }
+    },
+
+    expose : function () {
+      var expose,
+          exposeCover,
+          el,
+          origCSS,
+          origClasses,
+          randId = 'expose-' + this.random_str(6);
+
+      if (arguments.length > 0 && arguments[0] instanceof $) {
+        el = arguments[0];
+      } else if (this.settings.$target && !/body/i.test(this.settings.$target.selector)) {
+        el = this.settings.$target;
+      } else {
+        return false;
+      }
+
+      if (el.length < 1) {
+        if (window.console) {
+          console.error('element not valid', el);
+        }
+        return false;
+      }
+
+      expose = $(this.settings.template.expose);
+      this.settings.$body.append(expose);
+      expose.css({
+        top : el.offset().top,
+        left : el.offset().left,
+        width : el.outerWidth(true),
+        height : el.outerHeight(true)
+      });
+
+      exposeCover = $(this.settings.template.expose_cover);
+
+      origCSS = {
+        zIndex : el.css('z-index'),
+        position : el.css('position')
+      };
+
+      origClasses = el.attr('class') == null ? '' : el.attr('class');
+
+      el.css('z-index', parseInt(expose.css('z-index')) + 1);
+
+      if (origCSS.position == 'static') {
+        el.css('position', 'relative');
+      }
+
+      el.data('expose-css', origCSS);
+      el.data('orig-class', origClasses);
+      el.attr('class', origClasses + ' ' + this.settings.expose_add_class);
+
+      exposeCover.css({
+        top : el.offset().top,
+        left : el.offset().left,
+        width : el.outerWidth(true),
+        height : el.outerHeight(true)
+      });
+
+      if (this.settings.modal) {
+        this.show_modal();
+      }
+
+      this.settings.$body.append(exposeCover);
+      expose.addClass(randId);
+      exposeCover.addClass(randId);
+      el.data('expose', randId);
+      this.settings.post_expose_callback(this.settings.$li.index(), this.settings.$next_tip, el);
+      this.add_exposed(el);
+    },
+
+    un_expose : function () {
+      var exposeId,
+          el,
+          expose,
+          origCSS,
+          origClasses,
+          clearAll = false;
+
+      if (arguments.length > 0 && arguments[0] instanceof $) {
+        el = arguments[0];
+      } else if (this.settings.$target && !/body/i.test(this.settings.$target.selector)) {
+        el = this.settings.$target;
+      } else {
+        return false;
+      }
+
+      if (el.length < 1) {
+        if (window.console) {
+          console.error('element not valid', el);
+        }
+        return false;
+      }
+
+      exposeId = el.data('expose');
+      expose = $('.' + exposeId);
+
+      if (arguments.length > 1) {
+        clearAll = arguments[1];
+      }
+
+      if (clearAll === true) {
+        $('.joyride-expose-wrapper,.joyride-expose-cover').remove();
+      } else {
+        expose.remove();
+      }
+
+      origCSS = el.data('expose-css');
+
+      if (origCSS.zIndex == 'auto') {
+        el.css('z-index', '');
+      } else {
+        el.css('z-index', origCSS.zIndex);
+      }
+
+      if (origCSS.position != el.css('position')) {
+        if (origCSS.position == 'static') {// this is default, no need to set it.
+          el.css('position', '');
+        } else {
+          el.css('position', origCSS.position);
+        }
+      }
+
+      origClasses = el.data('orig-class');
+      el.attr('class', origClasses);
+      el.removeData('orig-classes');
+
+      el.removeData('expose');
+      el.removeData('expose-z-index');
+      this.remove_exposed(el);
+    },
+
+    add_exposed : function (el) {
+      this.settings.exposed = this.settings.exposed || [];
+      if (el instanceof $ || typeof el === 'object') {
+        this.settings.exposed.push(el[0]);
+      } else if (typeof el == 'string') {
+        this.settings.exposed.push(el);
+      }
+    },
+
+    remove_exposed : function (el) {
+      var search, i;
+      if (el instanceof $) {
+        search = el[0]
+      } else if (typeof el == 'string') {
+        search = el;
+      }
+
+      this.settings.exposed = this.settings.exposed || [];
+      i = this.settings.exposed.length;
+
+      while (i--) {
+        if (this.settings.exposed[i] == search) {
+          this.settings.exposed.splice(i, 1);
+          return;
+        }
+      }
+    },
+
+    center : function () {
+      var $w = $(window);
+
+      this.settings.$next_tip.css({
+        top : ((($w.height() - this.settings.$next_tip.outerHeight()) / 2) + $w.scrollTop()),
+        left : ((($w.width() - this.settings.$next_tip.outerWidth()) / 2) + $w.scrollLeft())
+      });
+
+      return true;
+    },
+
+    bottom : function () {
+      return /bottom/i.test(this.settings.tip_settings.tip_location);
+    },
+
+    top : function () {
+      return /top/i.test(this.settings.tip_settings.tip_location);
+    },
+
+    right : function () {
+      return /right/i.test(this.settings.tip_settings.tip_location);
+    },
+
+    left : function () {
+      return /left/i.test(this.settings.tip_settings.tip_location);
+    },
+
+    corners : function (el) {
+      if (el.length === 0) {
+         return [false, false, false, false];   
+      }
+      
+      var w = $(window),
+          window_half = w.height() / 2,
+          //using this to calculate since scroll may not have finished yet.
+          tipOffset = Math.ceil(this.settings.$target.offset().top - window_half + this.settings.$next_tip.outerHeight()),
+          right = w.width() + w.scrollLeft(),
+          offsetBottom =  w.height() + tipOffset,
+          bottom = w.height() + w.scrollTop(),
+          top = w.scrollTop();
+
+      if (tipOffset < top) {
+        if (tipOffset < 0) {
+          top = 0;
+        } else {
+          top = tipOffset;
+        }
+      }
+
+      if (offsetBottom > bottom) {
+        bottom = offsetBottom;
+      }
+
+      return [
+        el.offset().top < top,
+        right < el.offset().left + el.outerWidth(),
+        bottom < el.offset().top + el.outerHeight(),
+        w.scrollLeft() > el.offset().left
+      ];
+    },
+
+    visible : function (hidden_corners) {
+      var i = hidden_corners.length;
+
+      while (i--) {
+        if (hidden_corners[i]) {
+          return false;
+        }
+      }
+
+      return true;
+    },
+
+    nub_position : function (nub, pos, def) {
+      if (pos === 'auto') {
+        nub.addClass(def);
+      } else {
+        nub.addClass(pos);
+      }
+    },
+
+    startTimer : function () {
+      if (this.settings.$li.length) {
+        this.settings.automate = setTimeout(function () {
+          this.hide();
+          this.show();
+          this.startTimer();
+        }.bind(this), this.settings.timer);
+      } else {
+        clearTimeout(this.settings.automate);
+      }
+    },
+
+    end : function (abort) {
+      if (this.settings.cookie_monster) {
+        $.cookie(this.settings.cookie_name, 'ridden', {expires : this.settings.cookie_expires, domain : this.settings.cookie_domain});
+      }
+
+      if (this.settings.timer > 0) {
+        clearTimeout(this.settings.automate);
+      }
+
+      if (this.settings.modal && this.settings.expose) {
+        this.un_expose();
+      }
+
+      // Unplug keystrokes listener
+      $(this.scope).off('keyup.joyride')
+
+      this.settings.$next_tip.data('closed', true);
+      this.settings.riding = false;
+
+      $('.joyride-modal-bg').hide();
+      this.settings.$current_tip.hide();
+
+      if (typeof abort === 'undefined' || abort === false) {
+        this.settings.post_step_callback(this.settings.$li.index(), this.settings.$current_tip);
+        this.settings.post_ride_callback(this.settings.$li.index(), this.settings.$current_tip);
+      }
+
+      $('.joyride-tip-guide').remove();
+    },
+
+    off : function () {
+      $(this.scope).off('.joyride');
+      $(window).off('.joyride');
+      $('.joyride-close-tip, .joyride-next-tip, .joyride-modal-bg').off('.joyride');
+      $('.joyride-tip-guide, .joyride-modal-bg').remove();
+      clearTimeout(this.settings.automate);
+    },
+
+    reflow : function () {}
+  };
+}(jQuery, window, window.document));
diff --git a/js/foundation/js/foundation/foundation.js b/js/foundation/js/foundation/foundation.js
new file mode 100644 (file)
index 0000000..c5a359d
--- /dev/null
@@ -0,0 +1,732 @@
+/*
+ * Foundation Responsive Library
+ * http://foundation.zurb.com
+ * Copyright 2015, ZURB
+ * Free to use under the MIT license.
+ * http://www.opensource.org/licenses/mit-license.php
+*/
+
+(function ($, window, document, undefined) {
+  'use strict';
+
+  var header_helpers = function (class_array) {
+    var head = $('head');
+    head.prepend($.map(class_array, function (class_name) {
+      if (head.has('.' + class_name).length === 0) {
+        return '<meta class="' + class_name + '" />';
+      }
+    }));
+  };
+
+  header_helpers([
+    'foundation-mq-small',
+    'foundation-mq-small-only',
+    'foundation-mq-medium',
+    'foundation-mq-medium-only',
+    'foundation-mq-large',
+    'foundation-mq-large-only',
+    'foundation-mq-xlarge',
+    'foundation-mq-xlarge-only',
+    'foundation-mq-xxlarge',
+    'foundation-data-attribute-namespace']);
+
+  // Enable FastClick if present
+
+  $(function () {
+    if (typeof FastClick !== 'undefined') {
+      // Don't attach to body if undefined
+      if (typeof document.body !== 'undefined') {
+        FastClick.attach(document.body);
+      }
+    }
+  });
+
+  // private Fast Selector wrapper,
+  // returns jQuery object. Only use where
+  // getElementById is not available.
+  var S = function (selector, context) {
+    if (typeof selector === 'string') {
+      if (context) {
+        var cont;
+        if (context.jquery) {
+          cont = context[0];
+          if (!cont) {
+            return context;
+          }
+        } else {
+          cont = context;
+        }
+        return $(cont.querySelectorAll(selector));
+      }
+
+      return $(document.querySelectorAll(selector));
+    }
+
+    return $(selector, context);
+  };
+
+  // Namespace functions.
+
+  var attr_name = function (init) {
+    var arr = [];
+    if (!init) {
+      arr.push('data');
+    }
+    if (this.namespace.length > 0) {
+      arr.push(this.namespace);
+    }
+    arr.push(this.name);
+
+    return arr.join('-');
+  };
+
+  var add_namespace = function (str) {
+    var parts = str.split('-'),
+        i = parts.length,
+        arr = [];
+
+    while (i--) {
+      if (i !== 0) {
+        arr.push(parts[i]);
+      } else {
+        if (this.namespace.length > 0) {
+          arr.push(this.namespace, parts[i]);
+        } else {
+          arr.push(parts[i]);
+        }
+      }
+    }
+
+    return arr.reverse().join('-');
+  };
+
+  // Event binding and data-options updating.
+
+  var bindings = function (method, options) {
+    var self = this,
+        bind = function(){
+          var $this = S(this),
+              should_bind_events = !$this.data(self.attr_name(true) + '-init');
+          $this.data(self.attr_name(true) + '-init', $.extend({}, self.settings, (options || method), self.data_options($this)));
+
+          if (should_bind_events) {
+            self.events(this);
+          }
+        };
+
+    if (S(this.scope).is('[' + this.attr_name() +']')) {
+      bind.call(this.scope);
+    } else {
+      S('[' + this.attr_name() +']', this.scope).each(bind);
+    }
+    // # Patch to fix #5043 to move this *after* the if/else clause in order for Backbone and similar frameworks to have improved control over event binding and data-options updating.
+    if (typeof method === 'string') {
+      return this[method].call(this, options);
+    }
+
+  };
+
+  var single_image_loaded = function (image, callback) {
+    function loaded () {
+      callback(image[0]);
+    }
+
+    function bindLoad () {
+      this.one('load', loaded);
+
+      if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)) {
+        var src = this.attr( 'src' ),
+            param = src.match( /\?/ ) ? '&' : '?';
+
+        param += 'random=' + (new Date()).getTime();
+        this.attr('src', src + param);
+      }
+    }
+
+    if (!image.attr('src')) {
+      loaded();
+      return;
+    }
+
+    if (image[0].complete || image[0].readyState === 4) {
+      loaded();
+    } else {
+      bindLoad.call(image);
+    }
+  };
+
+  /*! matchMedia() polyfill - Test a CSS media type/query in JS. Authors & copyright (c) 2012: Scott Jehl, Paul Irish, Nicholas Zakas, David Knight. Dual MIT/BSD license */
+
+  window.matchMedia || (window.matchMedia = function() {
+      "use strict";
+
+      // For browsers that support matchMedium api such as IE 9 and webkit
+      var styleMedia = (window.styleMedia || window.media);
+
+      // For those that don't support matchMedium
+      if (!styleMedia) {
+          var style       = document.createElement('style'),
+              script      = document.getElementsByTagName('script')[0],
+              info        = null;
+
+          style.type  = 'text/css';
+          style.id    = 'matchmediajs-test';
+
+          script.parentNode.insertBefore(style, script);
+
+          // 'style.currentStyle' is used by IE <= 8 and 'window.getComputedStyle' for all other browsers
+          info = ('getComputedStyle' in window) && window.getComputedStyle(style, null) || style.currentStyle;
+
+          styleMedia = {
+              matchMedium: function(media) {
+                  var text = '@media ' + media + '{ #matchmediajs-test { width: 1px; } }';
+
+                  // 'style.styleSheet' is used by IE <= 8 and 'style.textContent' for all other browsers
+                  if (style.styleSheet) {
+                      style.styleSheet.cssText = text;
+                  } else {
+                      style.textContent = text;
+                  }
+
+                  // Test if media query is true or false
+                  return info.width === '1px';
+              }
+          };
+      }
+
+      return function(media) {
+          return {
+              matches: styleMedia.matchMedium(media || 'all'),
+              media: media || 'all'
+          };
+      };
+  }());
+
+  /*
+   * jquery.requestAnimationFrame
+   * https://github.com/gnarf37/jquery-requestAnimationFrame
+   * Requires jQuery 1.8+
+   *
+   * Copyright (c) 2012 Corey Frang
+   * Licensed under the MIT license.
+   */
+
+  (function(jQuery) {
+
+
+  // requestAnimationFrame polyfill adapted from Erik Möller
+  // fixes from Paul Irish and Tino Zijdel
+  // http://paulirish.com/2011/requestanimationframe-for-smart-animating/
+  // http://my.opera.com/emoller/blog/2011/12/20/requestanimationframe-for-smart-er-animating
+
+  var animating,
+      lastTime = 0,
+      vendors = ['webkit', 'moz'],
+      requestAnimationFrame = window.requestAnimationFrame,
+      cancelAnimationFrame = window.cancelAnimationFrame,
+      jqueryFxAvailable = 'undefined' !== typeof jQuery.fx;
+
+  for (; lastTime < vendors.length && !requestAnimationFrame; lastTime++) {
+    requestAnimationFrame = window[ vendors[lastTime] + 'RequestAnimationFrame' ];
+    cancelAnimationFrame = cancelAnimationFrame ||
+      window[ vendors[lastTime] + 'CancelAnimationFrame' ] ||
+      window[ vendors[lastTime] + 'CancelRequestAnimationFrame' ];
+  }
+
+  function raf() {
+    if (animating) {
+      requestAnimationFrame(raf);
+
+      if (jqueryFxAvailable) {
+        jQuery.fx.tick();
+      }
+    }
+  }
+
+  if (requestAnimationFrame) {
+    // use rAF
+    window.requestAnimationFrame = requestAnimationFrame;
+    window.cancelAnimationFrame = cancelAnimationFrame;
+
+    if (jqueryFxAvailable) {
+      jQuery.fx.timer = function (timer) {
+        if (timer() && jQuery.timers.push(timer) && !animating) {
+          animating = true;
+          raf();
+        }
+      };
+
+      jQuery.fx.stop = function () {
+        animating = false;
+      };
+    }
+  } else {
+    // polyfill
+    window.requestAnimationFrame = function (callback) {
+      var currTime = new Date().getTime(),
+        timeToCall = Math.max(0, 16 - (currTime - lastTime)),
+        id = window.setTimeout(function () {
+          callback(currTime + timeToCall);
+        }, timeToCall);
+      lastTime = currTime + timeToCall;
+      return id;
+    };
+
+    window.cancelAnimationFrame = function (id) {
+      clearTimeout(id);
+    };
+
+  }
+
+  }( $ ));
+
+  function removeQuotes (string) {
+    if (typeof string === 'string' || string instanceof String) {
+      string = string.replace(/^['\\/"]+|(;\s?})+|['\\/"]+$/g, '');
+    }
+
+    return string;
+  }
+
+  function MediaQuery(selector) {
+    this.selector = selector;
+    this.query = '';
+  }
+
+  MediaQuery.prototype.toString = function () {
+    return this.query || (this.query = S(this.selector).css('font-family').replace(/^[\/\\'"]+|(;\s?})+|[\/\\'"]+$/g, ''));
+  };
+
+  window.Foundation = {
+    name : 'Foundation',
+
+    version : '5.5.3',
+
+    media_queries : {
+      'small'       : new MediaQuery('.foundation-mq-small'),
+      'small-only'  : new MediaQuery('.foundation-mq-small-only'),
+      'medium'      : new MediaQuery('.foundation-mq-medium'),
+      'medium-only' : new MediaQuery('.foundation-mq-medium-only'),
+      'large'       : new MediaQuery('.foundation-mq-large'),
+      'large-only'  : new MediaQuery('.foundation-mq-large-only'),
+      'xlarge'      : new MediaQuery('.foundation-mq-xlarge'),
+      'xlarge-only' : new MediaQuery('.foundation-mq-xlarge-only'),
+      'xxlarge'     : new MediaQuery('.foundation-mq-xxlarge')
+    },
+
+    stylesheet : $('<style></style>').appendTo('head')[0].sheet,
+
+    global : {
+      namespace : undefined
+    },
+
+    init : function (scope, libraries, method, options, response) {
+      var args = [scope, method, options, response],
+          responses = [];
+
+      // check RTL
+      this.rtl = /rtl/i.test(S('html').attr('dir'));
+
+      // set foundation global scope
+      this.scope = scope || this.scope;
+
+      this.set_namespace();
+
+      if (libraries && typeof libraries === 'string' && !/reflow/i.test(libraries)) {
+        if (this.libs.hasOwnProperty(libraries)) {
+          responses.push(this.init_lib(libraries, args));
+        }
+      } else {
+        for (var lib in this.libs) {
+          responses.push(this.init_lib(lib, libraries));
+        }
+      }
+
+      S(window).load(function () {
+        S(window)
+          .trigger('resize.fndtn.clearing')
+          .trigger('resize.fndtn.dropdown')
+          .trigger('resize.fndtn.equalizer')
+          .trigger('resize.fndtn.interchange')
+          .trigger('resize.fndtn.joyride')
+          .trigger('resize.fndtn.magellan')
+          .trigger('resize.fndtn.topbar')
+          .trigger('resize.fndtn.slider');
+      });
+
+      return scope;
+    },
+
+    init_lib : function (lib, args) {
+      if (this.libs.hasOwnProperty(lib)) {
+        this.patch(this.libs[lib]);
+
+        if (args && args.hasOwnProperty(lib)) {
+            if (typeof this.libs[lib].settings !== 'undefined') {
+              $.extend(true, this.libs[lib].settings, args[lib]);
+            } else if (typeof this.libs[lib].defaults !== 'undefined') {
+              $.extend(true, this.libs[lib].defaults, args[lib]);
+            }
+          return this.libs[lib].init.apply(this.libs[lib], [this.scope, args[lib]]);
+        }
+
+        args = args instanceof Array ? args : new Array(args);
+        return this.libs[lib].init.apply(this.libs[lib], args);
+      }
+
+      return function () {};
+    },
+
+    patch : function (lib) {
+      lib.scope = this.scope;
+      lib.namespace = this.global.namespace;
+      lib.rtl = this.rtl;
+      lib['data_options'] = this.utils.data_options;
+      lib['attr_name'] = attr_name;
+      lib['add_namespace'] = add_namespace;
+      lib['bindings'] = bindings;
+      lib['S'] = this.utils.S;
+    },
+
+    inherit : function (scope, methods) {
+      var methods_arr = methods.split(' '),
+          i = methods_arr.length;
+
+      while (i--) {
+        if (this.utils.hasOwnProperty(methods_arr[i])) {
+          scope[methods_arr[i]] = this.utils[methods_arr[i]];
+        }
+      }
+    },
+
+    set_namespace : function () {
+
+      // Description:
+      //    Don't bother reading the namespace out of the meta tag
+      //    if the namespace has been set globally in javascript
+      //
+      // Example:
+      //    Foundation.global.namespace = 'my-namespace';
+      // or make it an empty string:
+      //    Foundation.global.namespace = '';
+      //
+      //
+
+      // If the namespace has not been set (is undefined), try to read it out of the meta element.
+      // Otherwise use the globally defined namespace, even if it's empty ('')
+      var namespace = ( this.global.namespace === undefined ) ? $('.foundation-data-attribute-namespace').css('font-family') : this.global.namespace;
+
+      // Finally, if the namsepace is either undefined or false, set it to an empty string.
+      // Otherwise use the namespace value.
+      this.global.namespace = ( namespace === undefined || /false/i.test(namespace) ) ? '' : namespace;
+    },
+
+    libs : {},
+
+    // methods that can be inherited in libraries
+    utils : {
+
+      // Description:
+      //    Fast Selector wrapper returns jQuery object. Only use where getElementById
+      //    is not available.
+      //
+      // Arguments:
+      //    Selector (String): CSS selector describing the element(s) to be
+      //    returned as a jQuery object.
+      //
+      //    Scope (String): CSS selector describing the area to be searched. Default
+      //    is document.
+      //
+      // Returns:
+      //    Element (jQuery Object): jQuery object containing elements matching the
+      //    selector within the scope.
+      S : S,
+
+      // Description:
+      //    Executes a function a max of once every n milliseconds
+      //
+      // Arguments:
+      //    Func (Function): Function to be throttled.
+      //
+      //    Delay (Integer): Function execution threshold in milliseconds.
+      //
+      // Returns:
+      //    Lazy_function (Function): Function with throttling applied.
+      throttle : function (func, delay) {
+        var timer = null;
+
+        return function () {
+          var context = this, args = arguments;
+
+          if (timer == null) {
+            timer = setTimeout(function () {
+              func.apply(context, args);
+              timer = null;
+            }, delay);
+          }
+        };
+      },
+
+      // Description:
+      //    Executes a function when it stops being invoked for n seconds
+      //    Modified version of _.debounce() http://underscorejs.org
+      //
+      // Arguments:
+      //    Func (Function): Function to be debounced.
+      //
+      //    Delay (Integer): Function execution threshold in milliseconds.
+      //
+      //    Immediate (Bool): Whether the function should be called at the beginning
+      //    of the delay instead of the end. Default is false.
+      //
+      // Returns:
+      //    Lazy_function (Function): Function with debouncing applied.
+      debounce : function (func, delay, immediate) {
+        var timeout, result;
+        return function () {
+          var context = this, args = arguments;
+          var later = function () {
+            timeout = null;
+            if (!immediate) {
+              result = func.apply(context, args);
+            }
+          };
+          var callNow = immediate && !timeout;
+          clearTimeout(timeout);
+          timeout = setTimeout(later, delay);
+          if (callNow) {
+            result = func.apply(context, args);
+          }
+          return result;
+        };
+      },
+
+      // Description:
+      //    Parses data-options attribute
+      //
+      // Arguments:
+      //    El (jQuery Object): Element to be parsed.
+      //
+      // Returns:
+      //    Options (Javascript Object): Contents of the element's data-options
+      //    attribute.
+      data_options : function (el, data_attr_name) {
+        data_attr_name = data_attr_name || 'options';
+        var opts = {}, ii, p, opts_arr,
+            data_options = function (el) {
+              var namespace = Foundation.global.namespace;
+
+              if (namespace.length > 0) {
+                return el.data(namespace + '-' + data_attr_name);
+              }
+
+              return el.data(data_attr_name);
+            };
+
+        var cached_options = data_options(el);
+
+        if (typeof cached_options === 'object') {
+          return cached_options;
+        }
+
+        opts_arr = (cached_options || ':').split(';');
+        ii = opts_arr.length;
+
+        function isNumber (o) {
+          return !isNaN (o - 0) && o !== null && o !== '' && o !== false && o !== true;
+        }
+
+        function trim (str) {
+          if (typeof str === 'string') {
+            return $.trim(str);
+          }
+          return str;
+        }
+
+        while (ii--) {
+          p = opts_arr[ii].split(':');
+          p = [p[0], p.slice(1).join(':')];
+
+          if (/true/i.test(p[1])) {
+            p[1] = true;
+          }
+          if (/false/i.test(p[1])) {
+            p[1] = false;
+          }
+          if (isNumber(p[1])) {
+            if (p[1].indexOf('.') === -1) {
+              p[1] = parseInt(p[1], 10);
+            } else {
+              p[1] = parseFloat(p[1]);
+            }
+          }
+
+          if (p.length === 2 && p[0].length > 0) {
+            opts[trim(p[0])] = trim(p[1]);
+          }
+        }
+
+        return opts;
+      },
+
+      // Description:
+      //    Adds JS-recognizable media queries
+      //
+      // Arguments:
+      //    Media (String): Key string for the media query to be stored as in
+      //    Foundation.media_queries
+      //
+      //    Class (String): Class name for the generated <meta> tag
+      register_media : function (media, media_class) {
+        if (Foundation.media_queries[media] === undefined) {
+          $('head').append('<meta class="' + media_class + '"/>');
+          Foundation.media_queries[media] = removeQuotes($('.' + media_class).css('font-family'));
+        }
+      },
+
+      // Description:
+      //    Add custom CSS within a JS-defined media query
+      //
+      // Arguments:
+      //    Rule (String): CSS rule to be appended to the document.
+      //
+      //    Media (String): Optional media query string for the CSS rule to be
+      //    nested under.
+      add_custom_rule : function (rule, media) {
+        if (media === undefined && Foundation.stylesheet) {
+          Foundation.stylesheet.insertRule(rule, Foundation.stylesheet.cssRules.length);
+        } else {
+          var query = Foundation.media_queries[media];
+
+          if (query !== undefined) {
+            Foundation.stylesheet.insertRule('@media ' +
+              Foundation.media_queries[media] + '{ ' + rule + ' }', Foundation.stylesheet.cssRules.length);
+          }
+        }
+      },
+
+      // Description:
+      //    Performs a callback function when an image is fully loaded
+      //
+      // Arguments:
+      //    Image (jQuery Object): Image(s) to check if loaded.
+      //
+      //    Callback (Function): Function to execute when image is fully loaded.
+      image_loaded : function (images, callback) {
+        var self = this,
+            unloaded = images.length;
+
+        function pictures_has_height(images) {
+          var pictures_number = images.length;
+
+          for (var i = pictures_number - 1; i >= 0; i--) {
+            if(images.attr('height') === undefined) {
+              return false;
+            };
+          };
+
+          return true;
+        }
+
+        if (unloaded === 0 || pictures_has_height(images)) {
+          callback(images);
+        }
+
+        images.each(function () {
+          single_image_loaded(self.S(this), function () {
+            unloaded -= 1;
+            if (unloaded === 0) {
+              callback(images);
+            }
+          });
+        });
+      },
+
+      // Description:
+      //    Returns a random, alphanumeric string
+      //
+      // Arguments:
+      //    Length (Integer): Length of string to be generated. Defaults to random
+      //    integer.
+      //
+      // Returns:
+      //    Rand (String): Pseudo-random, alphanumeric string.
+      random_str : function () {
+        if (!this.fidx) {
+          this.fidx = 0;
+        }
+        this.prefix = this.prefix || [(this.name || 'F'), (+new Date).toString(36)].join('-');
+
+        return this.prefix + (this.fidx++).toString(36);
+      },
+
+      // Description:
+      //    Helper for window.matchMedia
+      //
+      // Arguments:
+      //    mq (String): Media query
+      //
+      // Returns:
+      //    (Boolean): Whether the media query passes or not
+      match : function (mq) {
+        return window.matchMedia(mq).matches;
+      },
+
+      // Description:
+      //    Helpers for checking Foundation default media queries with JS
+      //
+      // Returns:
+      //    (Boolean): Whether the media query passes or not
+
+      is_small_up : function () {
+        return this.match(Foundation.media_queries.small);
+      },
+
+      is_medium_up : function () {
+        return this.match(Foundation.media_queries.medium);
+      },
+
+      is_large_up : function () {
+        return this.match(Foundation.media_queries.large);
+      },
+
+      is_xlarge_up : function () {
+        return this.match(Foundation.media_queries.xlarge);
+      },
+
+      is_xxlarge_up : function () {
+        return this.match(Foundation.media_queries.xxlarge);
+      },
+
+      is_small_only : function () {
+        return !this.is_medium_up() && !this.is_large_up() && !this.is_xlarge_up() && !this.is_xxlarge_up();
+      },
+
+      is_medium_only : function () {
+        return this.is_medium_up() && !this.is_large_up() && !this.is_xlarge_up() && !this.is_xxlarge_up();
+      },
+
+      is_large_only : function () {
+        return this.is_medium_up() && this.is_large_up() && !this.is_xlarge_up() && !this.is_xxlarge_up();
+      },
+
+      is_xlarge_only : function () {
+        return this.is_medium_up() && this.is_large_up() && this.is_xlarge_up() && !this.is_xxlarge_up();
+      },
+
+      is_xxlarge_only : function () {
+        return this.is_medium_up() && this.is_large_up() && this.is_xlarge_up() && this.is_xxlarge_up();
+      }
+    }
+  };
+
+  $.fn.foundation = function () {
+    var args = Array.prototype.slice.call(arguments, 0);
+
+    return this.each(function () {
+      Foundation.init.apply(Foundation, [this].concat(args));
+      return this;
+    });
+  };
+
+}(jQuery, window, window.document));
diff --git a/js/foundation/js/foundation/foundation.magellan.js b/js/foundation/js/foundation/foundation.magellan.js
new file mode 100644 (file)
index 0000000..aac36a7
--- /dev/null
@@ -0,0 +1,214 @@
+;(function ($, window, document, undefined) {
+  'use strict';
+
+  Foundation.libs['magellan-expedition'] = {
+    name : 'magellan-expedition',
+
+    version : '5.5.3',
+
+    settings : {
+      active_class : 'active',
+      threshold : 0, // pixels from the top of the expedition for it to become fixes
+      destination_threshold : 20, // pixels from the top of destination for it to be considered active
+      throttle_delay : 30, // calculation throttling to increase framerate
+      fixed_top : 0, // top distance in pixels assigend to the fixed element on scroll
+      offset_by_height : true,  // whether to offset the destination by the expedition height. Usually you want this to be true, unless your expedition is on the side.
+      duration : 700, // animation duration time
+      easing : 'swing' // animation easing
+    },
+
+    init : function (scope, method, options) {
+      Foundation.inherit(this, 'throttle');
+      this.bindings(method, options);
+    },
+
+    events : function () {
+      var self = this,
+          S = self.S,
+          settings = self.settings;
+
+      // initialize expedition offset
+      self.set_expedition_position();
+
+      S(self.scope)
+        .off('.magellan')
+        .on('click.fndtn.magellan', '[' + self.add_namespace('data-magellan-arrival') + '] a[href*=#]', function (e) {
+          var sameHost = ((this.hostname === location.hostname) || !this.hostname),
+              samePath = self.filterPathname(location.pathname) === self.filterPathname(this.pathname),
+              testHash = this.hash.replace(/(:|\.|\/)/g, '\\$1'),
+              anchor = this;
+
+          if (sameHost && samePath && testHash) {
+            e.preventDefault();
+            var expedition = $(this).closest('[' + self.attr_name() + ']'),
+                settings = expedition.data('magellan-expedition-init'),
+                hash = this.hash.split('#').join(''),
+                target = $('a[name="' + hash + '"]');
+
+            if (target.length === 0) {
+              target = $('#' + hash);
+
+            }
+
+            // Account for expedition height if fixed position
+            var scroll_top = target.offset().top - settings.destination_threshold + 1;
+            if (settings.offset_by_height) {
+              scroll_top = scroll_top - expedition.outerHeight();
+            }
+            $('html, body').stop().animate({
+              'scrollTop' : scroll_top
+            }, settings.duration, settings.easing, function () {
+              if (history.pushState) {
+                history.pushState(null, null, anchor.pathname + anchor.search + '#' + hash);
+              } else {
+                location.hash = anchor.pathname + anchor.search + '#' + hash;
+              }
+            });
+          }
+        })
+        .on('scroll.fndtn.magellan', self.throttle(this.check_for_arrivals.bind(this), settings.throttle_delay));
+    },
+
+    check_for_arrivals : function () {
+      var self = this;
+      self.update_arrivals();
+      self.update_expedition_positions();
+    },
+
+    set_expedition_position : function () {
+      var self = this;
+      $('[' + this.attr_name() + '=fixed]', self.scope).each(function (idx, el) {
+        var expedition = $(this),
+            settings = expedition.data('magellan-expedition-init'),
+            styles = expedition.attr('styles'), // save styles
+            top_offset, fixed_top;
+
+        expedition.attr('style', '');
+        top_offset = expedition.offset().top + settings.threshold;
+
+        //set fixed-top by attribute
+        fixed_top = parseInt(expedition.data('magellan-fixed-top'));
+        if (!isNaN(fixed_top)) {
+          self.settings.fixed_top = fixed_top;
+        }
+
+        expedition.data(self.data_attr('magellan-top-offset'), top_offset);
+        expedition.attr('style', styles);
+      });
+    },
+
+    update_expedition_positions : function () {
+      var self = this,
+          window_top_offset = $(window).scrollTop();
+
+      $('[' + this.attr_name() + '=fixed]', self.scope).each(function () {
+        var expedition = $(this),
+            settings = expedition.data('magellan-expedition-init'),
+            styles = expedition.attr('style'), // save styles
+            top_offset = expedition.data('magellan-top-offset');
+
+        //scroll to the top distance
+        if (window_top_offset + self.settings.fixed_top >= top_offset) {
+          // Placeholder allows height calculations to be consistent even when
+          // appearing to switch between fixed/non-fixed placement
+          var placeholder = expedition.prev('[' + self.add_namespace('data-magellan-expedition-clone') + ']');
+          if (placeholder.length === 0) {
+            placeholder = expedition.clone();
+            placeholder.removeAttr(self.attr_name());
+            placeholder.attr(self.add_namespace('data-magellan-expedition-clone'), '');
+            expedition.before(placeholder);
+          }
+          expedition.css({position :'fixed', top : settings.fixed_top}).addClass('fixed');
+        } else {
+          expedition.prev('[' + self.add_namespace('data-magellan-expedition-clone') + ']').remove();
+          expedition.attr('style', styles).css('position', '').css('top', '').removeClass('fixed');
+        }
+      });
+    },
+
+    update_arrivals : function () {
+      var self = this,
+          window_top_offset = $(window).scrollTop();
+
+      $('[' + this.attr_name() + ']', self.scope).each(function () {
+        var expedition = $(this),
+            settings = expedition.data(self.attr_name(true) + '-init'),
+            offsets = self.offsets(expedition, window_top_offset),
+            arrivals = expedition.find('[' + self.add_namespace('data-magellan-arrival') + ']'),
+            active_item = false;
+        offsets.each(function (idx, item) {
+          if (item.viewport_offset >= item.top_offset) {
+            var arrivals = expedition.find('[' + self.add_namespace('data-magellan-arrival') + ']');
+            arrivals.not(item.arrival).removeClass(settings.active_class);
+            item.arrival.addClass(settings.active_class);
+            active_item = true;
+            return true;
+          }
+        });
+
+        if (!active_item) {
+          arrivals.removeClass(settings.active_class);
+        }
+      });
+    },
+
+    offsets : function (expedition, window_offset) {
+      var self = this,
+          settings = expedition.data(self.attr_name(true) + '-init'),
+          viewport_offset = window_offset;
+
+      return expedition.find('[' + self.add_namespace('data-magellan-arrival') + ']').map(function (idx, el) {
+        var name = $(this).data(self.data_attr('magellan-arrival')),
+            dest = $('[' + self.add_namespace('data-magellan-destination') + '=' + name + ']');
+        if (dest.length > 0) {
+          var top_offset = dest.offset().top - settings.destination_threshold;
+          if (settings.offset_by_height) {
+            top_offset = top_offset - expedition.outerHeight();
+          }
+          top_offset = Math.floor(top_offset);
+          return {
+            destination : dest,
+            arrival : $(this),
+            top_offset : top_offset,
+            viewport_offset : viewport_offset
+          }
+        }
+      }).sort(function (a, b) {
+        if (a.top_offset < b.top_offset) {
+          return -1;
+        }
+        if (a.top_offset > b.top_offset) {
+          return 1;
+        }
+        return 0;
+      });
+    },
+
+    data_attr : function (str) {
+      if (this.namespace.length > 0) {
+        return this.namespace + '-' + str;
+      }
+
+      return str;
+    },
+
+    off : function () {
+      this.S(this.scope).off('.magellan');
+      this.S(window).off('.magellan');
+    },
+
+    filterPathname : function (pathname) {
+      pathname = pathname || '';
+      return pathname
+          .replace(/^\//,'')
+          .replace(/(?:index|default).[a-zA-Z]{3,4}$/,'')
+          .replace(/\/$/,'');
+    },
+
+    reflow : function () {
+      var self = this;
+      // remove placeholder expeditions used for height calculation purposes
+      $('[' + self.add_namespace('data-magellan-expedition-clone') + ']', self.scope).remove();
+    }
+  };
+}(jQuery, window, window.document));
diff --git a/js/foundation/js/foundation/foundation.offcanvas.js b/js/foundation/js/foundation/foundation.offcanvas.js
new file mode 100644 (file)
index 0000000..685e9a0
--- /dev/null
@@ -0,0 +1,225 @@
+;(function ($, window, document, undefined) {
+  'use strict';
+
+  Foundation.libs.offcanvas = {
+    name : 'offcanvas',
+
+    version : '5.5.3',
+
+    settings : {
+      open_method : 'move',
+      close_on_click : false
+    },
+
+    init : function (scope, method, options) {
+      this.bindings(method, options);
+    },
+
+    events : function () {
+      var self = this,
+          S = self.S,
+          move_class = '',
+          right_postfix = '',
+          left_postfix = '',
+          top_postfix = '',
+          bottom_postfix = '';
+
+      if (this.settings.open_method === 'move') {
+        move_class = 'move-';
+        right_postfix = 'right';
+        left_postfix = 'left';
+        top_postfix = 'top';
+        bottom_postfix = 'bottom';
+      } else if (this.settings.open_method === 'overlap_single') {
+        move_class = 'offcanvas-overlap-';
+        right_postfix = 'right';
+        left_postfix = 'left';
+        top_postfix = 'top';
+        bottom_postfix = 'bottom';
+      } else if (this.settings.open_method === 'overlap') {
+        move_class = 'offcanvas-overlap';
+      }
+
+      S(this.scope).off('.offcanvas')
+        .on('click.fndtn.offcanvas', '.left-off-canvas-toggle', function (e) {
+          self.click_toggle_class(e, move_class + right_postfix);
+          if (self.settings.open_method !== 'overlap') {
+            S('.left-submenu').removeClass(move_class + right_postfix);
+          }
+          $('.left-off-canvas-toggle').attr('aria-expanded', 'true');
+        })
+        .on('click.fndtn.offcanvas', '.left-off-canvas-menu a', function (e) {
+          var settings = self.get_settings(e);
+          var parent = S(this).parent();
+
+          if (settings.close_on_click && !parent.hasClass('has-submenu') && !parent.hasClass('back')) {
+            self.hide.call(self, move_class + right_postfix, self.get_wrapper(e));
+            parent.parent().removeClass(move_class + right_postfix);
+          } else if (S(this).parent().hasClass('has-submenu')) {
+            e.preventDefault();
+            S(this).siblings('.left-submenu').toggleClass(move_class + right_postfix);
+          } else if (parent.hasClass('back')) {
+            e.preventDefault();
+            parent.parent().removeClass(move_class + right_postfix);
+          }
+          $('.left-off-canvas-toggle').attr('aria-expanded', 'true');
+        })
+        //end of left canvas
+        .on('click.fndtn.offcanvas', '.right-off-canvas-toggle', function (e) {
+          self.click_toggle_class(e, move_class + left_postfix);
+          if (self.settings.open_method !== 'overlap') {
+            S('.right-submenu').removeClass(move_class + left_postfix);
+          }
+          $('.right-off-canvas-toggle').attr('aria-expanded', 'true');
+        })
+        .on('click.fndtn.offcanvas', '.right-off-canvas-menu a', function (e) {
+          var settings = self.get_settings(e);
+          var parent = S(this).parent();
+
+          if (settings.close_on_click && !parent.hasClass('has-submenu') && !parent.hasClass('back')) {
+            self.hide.call(self, move_class + left_postfix, self.get_wrapper(e));
+            parent.parent().removeClass(move_class + left_postfix);
+          } else if (S(this).parent().hasClass('has-submenu')) {
+            e.preventDefault();
+            S(this).siblings('.right-submenu').toggleClass(move_class + left_postfix);
+          } else if (parent.hasClass('back')) {
+            e.preventDefault();
+            parent.parent().removeClass(move_class + left_postfix);
+          }
+          $('.right-off-canvas-toggle').attr('aria-expanded', 'true');
+        })
+        //end of right canvas
+        .on('click.fndtn.offcanvas', '.top-off-canvas-toggle', function (e) {
+          self.click_toggle_class(e, move_class + bottom_postfix);
+          if (self.settings.open_method !== 'overlap') {
+            S('.top-submenu').removeClass(move_class + bottom_postfix);
+          }
+          $('.top-off-canvas-toggle').attr('aria-expanded', 'true');
+        })
+        .on('click.fndtn.offcanvas', '.top-off-canvas-menu a', function (e) {
+          var settings = self.get_settings(e);
+          var parent = S(this).parent();
+
+          if (settings.close_on_click && !parent.hasClass('has-submenu') && !parent.hasClass('back')) {
+            self.hide.call(self, move_class + bottom_postfix, self.get_wrapper(e));
+            parent.parent().removeClass(move_class + bottom_postfix);
+          } else if (S(this).parent().hasClass('has-submenu')) {
+            e.preventDefault();
+            S(this).siblings('.top-submenu').toggleClass(move_class + bottom_postfix);
+          } else if (parent.hasClass('back')) {
+            e.preventDefault();
+            parent.parent().removeClass(move_class + bottom_postfix);
+          }
+          $('.top-off-canvas-toggle').attr('aria-expanded', 'true');
+        })
+        //end of top canvas
+        .on('click.fndtn.offcanvas', '.bottom-off-canvas-toggle', function (e) {
+          self.click_toggle_class(e, move_class + top_postfix);
+          if (self.settings.open_method !== 'overlap') {
+            S('.bottom-submenu').removeClass(move_class + top_postfix);
+          }
+          $('.bottom-off-canvas-toggle').attr('aria-expanded', 'true');
+        })
+        .on('click.fndtn.offcanvas', '.bottom-off-canvas-menu a', function (e) {
+          var settings = self.get_settings(e);
+          var parent = S(this).parent();
+
+          if (settings.close_on_click && !parent.hasClass('has-submenu') && !parent.hasClass('back')) {
+            self.hide.call(self, move_class + top_postfix, self.get_wrapper(e));
+            parent.parent().removeClass(move_class + top_postfix);
+          } else if (S(this).parent().hasClass('has-submenu')) {
+            e.preventDefault();
+            S(this).siblings('.bottom-submenu').toggleClass(move_class + top_postfix);
+          } else if (parent.hasClass('back')) {
+            e.preventDefault();
+            parent.parent().removeClass(move_class + top_postfix);
+          }
+          $('.bottom-off-canvas-toggle').attr('aria-expanded', 'true');
+        })
+        //end of bottom
+        .on('click.fndtn.offcanvas', '.exit-off-canvas', function (e) {
+          self.click_remove_class(e, move_class + left_postfix);
+          S('.right-submenu').removeClass(move_class + left_postfix);
+          if (right_postfix) {
+            self.click_remove_class(e, move_class + right_postfix);
+            S('.left-submenu').removeClass(move_class + left_postfix);
+          }
+          $('.right-off-canvas-toggle').attr('aria-expanded', 'true');
+        })
+        .on('click.fndtn.offcanvas', '.exit-off-canvas', function (e) {
+          self.click_remove_class(e, move_class + left_postfix);
+          $('.left-off-canvas-toggle').attr('aria-expanded', 'false');
+          if (right_postfix) {
+            self.click_remove_class(e, move_class + right_postfix);
+            $('.right-off-canvas-toggle').attr('aria-expanded', 'false');
+          }
+        })
+        .on('click.fndtn.offcanvas', '.exit-off-canvas', function (e) {
+          self.click_remove_class(e, move_class + top_postfix);
+          S('.bottom-submenu').removeClass(move_class + top_postfix);
+          if (bottom_postfix) {
+            self.click_remove_class(e, move_class + bottom_postfix);
+            S('.top-submenu').removeClass(move_class + top_postfix);
+          }
+          $('.bottom-off-canvas-toggle').attr('aria-expanded', 'true');
+        })
+        .on('click.fndtn.offcanvas', '.exit-off-canvas', function (e) {
+          self.click_remove_class(e, move_class + top_postfix);
+          $('.top-off-canvas-toggle').attr('aria-expanded', 'false');
+          if (bottom_postfix) {
+            self.click_remove_class(e, move_class + bottom_postfix);
+            $('.bottom-off-canvas-toggle').attr('aria-expanded', 'false');
+          }
+        });
+    },
+
+    toggle : function (class_name, $off_canvas) {
+      $off_canvas = $off_canvas || this.get_wrapper();
+      if ($off_canvas.is('.' + class_name)) {
+        this.hide(class_name, $off_canvas);
+      } else {
+        this.show(class_name, $off_canvas);
+      }
+    },
+
+    show : function (class_name, $off_canvas) {
+      $off_canvas = $off_canvas || this.get_wrapper();
+      $off_canvas.trigger('open.fndtn.offcanvas');
+      $off_canvas.addClass(class_name);
+    },
+
+    hide : function (class_name, $off_canvas) {
+      $off_canvas = $off_canvas || this.get_wrapper();
+      $off_canvas.trigger('close.fndtn.offcanvas');
+      $off_canvas.removeClass(class_name);
+    },
+
+    click_toggle_class : function (e, class_name) {
+      e.preventDefault();
+      var $off_canvas = this.get_wrapper(e);
+      this.toggle(class_name, $off_canvas);
+    },
+
+    click_remove_class : function (e, class_name) {
+      e.preventDefault();
+      var $off_canvas = this.get_wrapper(e);
+      this.hide(class_name, $off_canvas);
+    },
+
+    get_settings : function (e) {
+      var offcanvas  = this.S(e.target).closest('[' + this.attr_name() + ']');
+      return offcanvas.data(this.attr_name(true) + '-init') || this.settings;
+    },
+
+    get_wrapper : function (e) {
+      var $off_canvas = this.S(e ? e.target : this.scope).closest('.off-canvas-wrap');
+
+      if ($off_canvas.length === 0) {
+        $off_canvas = this.S('.off-canvas-wrap');
+      }
+      return $off_canvas;
+    },
+
+    reflow : function () {}
+  };
+}(jQuery, window, window.document));
diff --git a/js/foundation/js/foundation/foundation.orbit.js b/js/foundation/js/foundation/foundation.orbit.js
new file mode 100644 (file)
index 0000000..d88bb46
--- /dev/null
@@ -0,0 +1,476 @@
+;(function ($, window, document, undefined) {
+  'use strict';
+
+  var noop = function () {};
+
+  var Orbit = function (el, settings) {
+    // Don't reinitialize plugin
+    if (el.hasClass(settings.slides_container_class)) {
+      return this;
+    }
+
+    var self = this,
+        container,
+        slides_container = el,
+        number_container,
+        bullets_container,
+        timer_container,
+        idx = 0,
+        animate,
+        timer,
+        locked = false,
+        adjust_height_after = false;
+
+    self.slides = function () {
+      return slides_container.children(settings.slide_selector);
+    };
+
+    self.slides().first().addClass(settings.active_slide_class);
+
+    self.update_slide_number = function (index) {
+      if (settings.slide_number) {
+        number_container.find('span:first').text(parseInt(index) + 1);
+        number_container.find('span:last').text(self.slides().length);
+      }
+      if (settings.bullets) {
+        bullets_container.children().removeClass(settings.bullets_active_class);
+        $(bullets_container.children().get(index)).addClass(settings.bullets_active_class);
+      }
+    };
+
+    self.update_active_link = function (index) {
+      var link = $('[data-orbit-link="' + self.slides().eq(index).attr('data-orbit-slide') + '"]');
+      link.siblings().removeClass(settings.bullets_active_class);
+      link.addClass(settings.bullets_active_class);
+    };
+
+    self.build_markup = function () {
+      slides_container.wrap('<div class="' + settings.container_class + '"></div>');
+      container = slides_container.parent();
+      slides_container.addClass(settings.slides_container_class);
+
+      if (settings.stack_on_small) {
+        container.addClass(settings.stack_on_small_class);
+      }
+
+      if (settings.navigation_arrows) {
+        container.append($('<a href="#"><span></span></a>').addClass(settings.prev_class));
+        container.append($('<a href="#"><span></span></a>').addClass(settings.next_class));
+      }
+
+      if (settings.timer) {
+        timer_container = $('<div>').addClass(settings.timer_container_class);
+        timer_container.append('<span>');
+        timer_container.append($('<div>').addClass(settings.timer_progress_class));
+        timer_container.addClass(settings.timer_paused_class);
+        container.append(timer_container);
+      }
+
+      if (settings.slide_number) {
+        number_container = $('<div>').addClass(settings.slide_number_class);
+        number_container.append('<span></span> ' + settings.slide_number_text + ' <span></span>');
+        container.append(number_container);
+      }
+
+      if (settings.bullets) {
+        bullets_container = $('<ol>').addClass(settings.bullets_container_class);
+        container.append(bullets_container);
+        bullets_container.wrap('<div class="orbit-bullets-container"></div>');
+        self.slides().each(function (idx, el) {
+          var bullet = $('<li>').attr('data-orbit-slide', idx).on('click', self.link_bullet);;
+          bullets_container.append(bullet);
+        });
+      }
+
+    };
+
+    self._goto = function (next_idx, start_timer) {
+      // if (locked) {return false;}
+      if (next_idx === idx) {return false;}
+      if (typeof timer === 'object') {timer.restart();}
+      var slides = self.slides();
+
+      var dir = 'next';
+      locked = true;
+      if (next_idx < idx) {dir = 'prev';}
+      if (next_idx >= slides.length) {
+        if (!settings.circular) {
+          return false;
+        }
+        next_idx = 0;
+      } else if (next_idx < 0) {
+        if (!settings.circular) {
+          return false;
+        }
+        next_idx = slides.length - 1;
+      }
+
+      var current = $(slides.get(idx));
+      var next = $(slides.get(next_idx));
+
+      current.css('zIndex', 2);
+      current.removeClass(settings.active_slide_class);
+      next.css('zIndex', 4).addClass(settings.active_slide_class);
+
+      slides_container.trigger('before-slide-change.fndtn.orbit');
+      settings.before_slide_change();
+      self.update_active_link(next_idx);
+
+      var callback = function () {
+        var unlock = function () {
+          idx = next_idx;
+          locked = false;
+          if (start_timer === true) {timer = self.create_timer(); timer.start();}
+          self.update_slide_number(idx);
+          slides_container.trigger('after-slide-change.fndtn.orbit', [{slide_number : idx, total_slides : slides.length}]);
+          settings.after_slide_change(idx, slides.length);
+        };
+        if (slides_container.outerHeight() != next.outerHeight() && settings.variable_height) {
+          slides_container.animate({'height': next.outerHeight()}, 250, 'linear', unlock);
+        } else {
+          unlock();
+        }
+      };
+
+      if (slides.length === 1) {callback(); return false;}
+
+      var start_animation = function () {
+        if (dir === 'next') {animate.next(current, next, callback);}
+        if (dir === 'prev') {animate.prev(current, next, callback);}
+      };
+
+      if (next.outerHeight() > slides_container.outerHeight() && settings.variable_height) {
+        slides_container.animate({'height': next.outerHeight()}, 250, 'linear', start_animation);
+      } else {
+        start_animation();
+      }
+    };
+
+    self.next = function (e) {
+      e.stopImmediatePropagation();
+      e.preventDefault();
+      self._goto(idx + 1);
+    };
+
+    self.prev = function (e) {
+      e.stopImmediatePropagation();
+      e.preventDefault();
+      self._goto(idx - 1);
+    };
+
+    self.link_custom = function (e) {
+      e.preventDefault();
+      var link = $(this).attr('data-orbit-link');
+      if ((typeof link === 'string') && (link = $.trim(link)) != '') {
+        var slide = container.find('[data-orbit-slide=' + link + ']');
+        if (slide.index() != -1) {self._goto(slide.index());}
+      }
+    };
+
+    self.link_bullet = function (e) {
+      var index = $(this).attr('data-orbit-slide');
+      if ((typeof index === 'string') && (index = $.trim(index)) != '') {
+        if (isNaN(parseInt(index))) {
+          var slide = container.find('[data-orbit-slide=' + index + ']');
+          if (slide.index() != -1) {self._goto(slide.index() + 1);}
+        } else {
+          self._goto(parseInt(index));
+        }
+      }
+
+    }
+
+    self.timer_callback = function () {
+      self._goto(idx + 1, true);
+    }
+
+    self.compute_dimensions = function () {
+      var current = $(self.slides().get(idx));
+      var h = current.outerHeight();
+      if (!settings.variable_height) {
+        self.slides().each(function(){
+          if ($(this).outerHeight() > h) { h = $(this).outerHeight(); }
+        });
+      }
+      slides_container.height(h);
+    };
+
+    self.create_timer = function () {
+      var t = new Timer(
+        container.find('.' + settings.timer_container_class),
+        settings,
+        self.timer_callback
+      );
+      return t;
+    };
+
+    self.stop_timer = function () {
+      if (typeof timer === 'object') {
+        timer.stop();
+      }
+    };
+
+    self.toggle_timer = function () {
+      var t = container.find('.' + settings.timer_container_class);
+      if (t.hasClass(settings.timer_paused_class)) {
+        if (typeof timer === 'undefined') {timer = self.create_timer();}
+        timer.start();
+      } else {
+        if (typeof timer === 'object') {timer.stop();}
+      }
+    };
+
+    self.init = function () {
+      self.build_markup();
+      if (settings.timer) {
+        timer = self.create_timer();
+        Foundation.utils.image_loaded(this.slides().children('img'), timer.start);
+      }
+      animate = new FadeAnimation(settings, slides_container);
+      if (settings.animation === 'slide') {
+        animate = new SlideAnimation(settings, slides_container);
+      }
+
+      container.on('click', '.' + settings.next_class, self.next);
+      container.on('click', '.' + settings.prev_class, self.prev);
+
+      if (settings.next_on_click) {
+        container.on('click', '.' + settings.slides_container_class + ' [data-orbit-slide]', self.link_bullet);
+      }
+
+      container.on('click', self.toggle_timer);
+      if (settings.swipe) {
+        container.on('touchstart.fndtn.orbit', function (e) {
+          if (!e.touches) {e = e.originalEvent;}
+          var data = {
+            start_page_x : e.touches[0].pageX,
+            start_page_y : e.touches[0].pageY,
+            start_time : (new Date()).getTime(),
+            delta_x : 0,
+            is_scrolling : undefined
+          };
+          container.data('swipe-transition', data);
+          e.stopPropagation();
+        })
+        .on('touchmove.fndtn.orbit', function (e) {
+          if (!e.touches) {
+            e = e.originalEvent;
+          }
+          // Ignore pinch/zoom events
+          if (e.touches.length > 1 || e.scale && e.scale !== 1) {
+            return;
+          }
+
+          var data = container.data('swipe-transition');
+          if (typeof data === 'undefined') {data = {};}
+
+          data.delta_x = e.touches[0].pageX - data.start_page_x;
+
+          if ( typeof data.is_scrolling === 'undefined') {
+            data.is_scrolling = !!( data.is_scrolling || Math.abs(data.delta_x) < Math.abs(e.touches[0].pageY - data.start_page_y) );
+          }
+
+          if (!data.is_scrolling && !data.active) {
+            e.preventDefault();
+            var direction = (data.delta_x < 0) ? (idx + 1) : (idx - 1);
+            data.active = true;
+            self._goto(direction);
+          }
+        })
+        .on('touchend.fndtn.orbit', function (e) {
+          container.data('swipe-transition', {});
+          e.stopPropagation();
+        })
+      }
+      container.on('mouseenter.fndtn.orbit', function (e) {
+        if (settings.timer && settings.pause_on_hover) {
+          self.stop_timer();
+        }
+      })
+      .on('mouseleave.fndtn.orbit', function (e) {
+        if (settings.timer && settings.resume_on_mouseout) {
+          timer.start();
+        }
+      });
+
+      $(document).on('click', '[data-orbit-link]', self.link_custom);
+      $(window).on('load resize', self.compute_dimensions);
+      Foundation.utils.image_loaded(this.slides().children('img'), self.compute_dimensions);
+      Foundation.utils.image_loaded(this.slides().children('img'), function () {
+        container.prev('.' + settings.preloader_class).css('display', 'none');
+        self.update_slide_number(0);
+        self.update_active_link(0);
+        slides_container.trigger('ready.fndtn.orbit');
+      });
+    };
+
+    self.init();
+  };
+
+  var Timer = function (el, settings, callback) {
+    var self = this,
+        duration = settings.timer_speed,
+        progress = el.find('.' + settings.timer_progress_class),
+        start,
+        timeout,
+        left = -1;
+
+    this.update_progress = function (w) {
+      var new_progress = progress.clone();
+      new_progress.attr('style', '');
+      new_progress.css('width', w + '%');
+      progress.replaceWith(new_progress);
+      progress = new_progress;
+    };
+
+    this.restart = function () {
+      clearTimeout(timeout);
+      el.addClass(settings.timer_paused_class);
+      left = -1;
+      self.update_progress(0);
+    };
+
+    this.start = function () {
+      if (!el.hasClass(settings.timer_paused_class)) {return true;}
+      left = (left === -1) ? duration : left;
+      el.removeClass(settings.timer_paused_class);
+      start = new Date().getTime();
+      progress.animate({'width' : '100%'}, left, 'linear');
+      timeout = setTimeout(function () {
+        self.restart();
+        callback();
+      }, left);
+      el.trigger('timer-started.fndtn.orbit')
+    };
+
+    this.stop = function () {
+      if (el.hasClass(settings.timer_paused_class)) {return true;}
+      clearTimeout(timeout);
+      el.addClass(settings.timer_paused_class);
+      var end = new Date().getTime();
+      left = left - (end - start);
+      var w = 100 - ((left / duration) * 100);
+      self.update_progress(w);
+      el.trigger('timer-stopped.fndtn.orbit');
+    };
+  };
+
+  var SlideAnimation = function (settings, container) {
+    var duration = settings.animation_speed;
+    var is_rtl = ($('html[dir=rtl]').length === 1);
+    var margin = is_rtl ? 'marginRight' : 'marginLeft';
+    var animMargin = {};
+    animMargin[margin] = '0%';
+
+    this.next = function (current, next, callback) {
+      current.animate({marginLeft : '-100%'}, duration);
+      next.animate(animMargin, duration, function () {
+        current.css(margin, '100%');
+        callback();
+      });
+    };
+
+    this.prev = function (current, prev, callback) {
+      current.animate({marginLeft : '100%'}, duration);
+      prev.css(margin, '-100%');
+      prev.animate(animMargin, duration, function () {
+        current.css(margin, '100%');
+        callback();
+      });
+    };
+  };
+
+  var FadeAnimation = function (settings, container) {
+    var duration = settings.animation_speed;
+    var is_rtl = ($('html[dir=rtl]').length === 1);
+    var margin = is_rtl ? 'marginRight' : 'marginLeft';
+
+    this.next = function (current, next, callback) {
+      next.css({'margin' : '0%', 'opacity' : '0.01'});
+      next.animate({'opacity' :'1'}, duration, 'linear', function () {
+        current.css('margin', '100%');
+        callback();
+      });
+    };
+
+    this.prev = function (current, prev, callback) {
+      prev.css({'margin' : '0%', 'opacity' : '0.01'});
+      prev.animate({'opacity' : '1'}, duration, 'linear', function () {
+        current.css('margin', '100%');
+        callback();
+      });
+    };
+  };
+
+  Foundation.libs = Foundation.libs || {};
+
+  Foundation.libs.orbit = {
+    name : 'orbit',
+
+    version : '5.5.3',
+
+    settings : {
+      animation : 'slide',
+      timer_speed : 10000,
+      pause_on_hover : true,
+      resume_on_mouseout : false,
+      next_on_click : true,
+      animation_speed : 500,
+      stack_on_small : false,
+      navigation_arrows : true,
+      slide_number : true,
+      slide_number_text : 'of',
+      container_class : 'orbit-container',
+      stack_on_small_class : 'orbit-stack-on-small',
+      next_class : 'orbit-next',
+      prev_class : 'orbit-prev',
+      timer_container_class : 'orbit-timer',
+      timer_paused_class : 'paused',
+      timer_progress_class : 'orbit-progress',
+      slides_container_class : 'orbit-slides-container',
+      preloader_class : 'preloader',
+      slide_selector : '*',
+      bullets_container_class : 'orbit-bullets',
+      bullets_active_class : 'active',
+      slide_number_class : 'orbit-slide-number',
+      caption_class : 'orbit-caption',
+      active_slide_class : 'active',
+      orbit_transition_class : 'orbit-transitioning',
+      bullets : true,
+      circular : true,
+      timer : true,
+      variable_height : false,
+      swipe : true,
+      before_slide_change : noop,
+      after_slide_change : noop
+    },
+
+    init : function (scope, method, options) {
+      var self = this;
+      this.bindings(method, options);
+    },
+
+    events : function (instance) {
+      var orbit_instance = new Orbit(this.S(instance), this.S(instance).data('orbit-init'));
+      this.S(instance).data(this.name + '-instance', orbit_instance);
+    },
+
+    reflow : function () {
+      var self = this;
+
+      if (self.S(self.scope).is('[data-orbit]')) {
+        var $el = self.S(self.scope);
+        var instance = $el.data(self.name + '-instance');
+        instance.compute_dimensions();
+      } else {
+        self.S('[data-orbit]', self.scope).each(function (idx, el) {
+          var $el = self.S(el);
+          var opts = self.data_options($el);
+          var instance = $el.data(self.name + '-instance');
+          instance.compute_dimensions();
+        });
+      }
+    }
+  };
+
+}(jQuery, window, window.document));
diff --git a/js/foundation/js/foundation/foundation.reveal.js b/js/foundation/js/foundation/foundation.reveal.js
new file mode 100644 (file)
index 0000000..08ad413
--- /dev/null
@@ -0,0 +1,522 @@
+;(function ($, window, document, undefined) {
+  'use strict';
+
+  var openModals = [];
+
+  Foundation.libs.reveal = {
+    name : 'reveal',
+
+    version : '5.5.3',
+
+    locked : false,
+
+    settings : {
+      animation : 'fadeAndPop',
+      animation_speed : 250,
+      close_on_background_click : true,
+      close_on_esc : true,
+      dismiss_modal_class : 'close-reveal-modal',
+      multiple_opened : false,
+      bg_class : 'reveal-modal-bg',
+      root_element : 'body',
+      open : function(){},
+      opened : function(){},
+      close : function(){},
+      closed : function(){},
+      on_ajax_error: $.noop,
+      bg : $('.reveal-modal-bg'),
+      css : {
+        open : {
+          'opacity' : 0,
+          'visibility' : 'visible',
+          'display' : 'block'
+        },
+        close : {
+          'opacity' : 1,
+          'visibility' : 'hidden',
+          'display' : 'none'
+        }
+      }
+    },
+
+    init : function (scope, method, options) {
+      $.extend(true, this.settings, method, options);
+      this.bindings(method, options);
+    },
+
+    events : function (scope) {
+      var self = this,
+          S = self.S;
+
+      S(this.scope)
+        .off('.reveal')
+        .on('click.fndtn.reveal', '[' + this.add_namespace('data-reveal-id') + ']:not([disabled])', function (e) {
+          e.preventDefault();
+
+          if (!self.locked) {
+            var element = S(this),
+                ajax = element.data(self.data_attr('reveal-ajax')),
+                replaceContentSel = element.data(self.data_attr('reveal-replace-content'));
+
+            self.locked = true;
+
+            if (typeof ajax === 'undefined') {
+              self.open.call(self, element);
+            } else {
+              var url = ajax === true ? element.attr('href') : ajax;
+              self.open.call(self, element, {url : url}, { replaceContentSel : replaceContentSel });
+            }
+          }
+        });
+
+      S(document)
+        .on('click.fndtn.reveal', this.close_targets(), function (e) {
+          e.preventDefault();
+          if (!self.locked) {
+            var settings = S('[' + self.attr_name() + '].open').data(self.attr_name(true) + '-init') || self.settings,
+                bg_clicked = S(e.target)[0] === S('.' + settings.bg_class)[0];
+
+            if (bg_clicked) {
+              if (settings.close_on_background_click) {
+                e.stopPropagation();
+              } else {
+                return;
+              }
+            }
+
+            self.locked = true;
+            self.close.call(self, bg_clicked ? S('[' + self.attr_name() + '].open:not(.toback)') : S(this).closest('[' + self.attr_name() + ']'));
+          }
+        });
+
+      if (S('[' + self.attr_name() + ']', this.scope).length > 0) {
+        S(this.scope)
+          // .off('.reveal')
+          .on('open.fndtn.reveal', this.settings.open)
+          .on('opened.fndtn.reveal', this.settings.opened)
+          .on('opened.fndtn.reveal', this.open_video)
+          .on('close.fndtn.reveal', this.settings.close)
+          .on('closed.fndtn.reveal', this.settings.closed)
+          .on('closed.fndtn.reveal', this.close_video);
+      } else {
+        S(this.scope)
+          // .off('.reveal')
+          .on('open.fndtn.reveal', '[' + self.attr_name() + ']', this.settings.open)
+          .on('opened.fndtn.reveal', '[' + self.attr_name() + ']', this.settings.opened)
+          .on('opened.fndtn.reveal', '[' + self.attr_name() + ']', this.open_video)
+          .on('close.fndtn.reveal', '[' + self.attr_name() + ']', this.settings.close)
+          .on('closed.fndtn.reveal', '[' + self.attr_name() + ']', this.settings.closed)
+          .on('closed.fndtn.reveal', '[' + self.attr_name() + ']', this.close_video);
+      }
+
+      return true;
+    },
+
+    // PATCH #3: turning on key up capture only when a reveal window is open
+    key_up_on : function (scope) {
+      var self = this;
+
+      // PATCH #1: fixing multiple keyup event trigger from single key press
+      self.S('body').off('keyup.fndtn.reveal').on('keyup.fndtn.reveal', function ( event ) {
+        var open_modal = self.S('[' + self.attr_name() + '].open'),
+            settings = open_modal.data(self.attr_name(true) + '-init') || self.settings ;
+        // PATCH #2: making sure that the close event can be called only while unlocked,
+        //           so that multiple keyup.fndtn.reveal events don't prevent clean closing of the reveal window.
+        if ( settings && event.which === 27  && settings.close_on_esc && !self.locked) { // 27 is the keycode for the Escape key
+          self.close.call(self, open_modal);
+        }
+      });
+
+      return true;
+    },
+
+    // PATCH #3: turning on key up capture only when a reveal window is open
+    key_up_off : function (scope) {
+      this.S('body').off('keyup.fndtn.reveal');
+      return true;
+    },
+
+    open : function (target, ajax_settings) {
+      var self = this,
+          modal;
+
+      if (target) {
+        if (typeof target.selector !== 'undefined') {
+          // Find the named node; only use the first one found, since the rest of the code assumes there's only one node
+          modal = self.S('#' + target.data(self.data_attr('reveal-id'))).first();
+        } else {
+          modal = self.S(this.scope);
+
+          ajax_settings = target;
+        }
+      } else {
+        modal = self.S(this.scope);
+      }
+
+      var settings = modal.data(self.attr_name(true) + '-init');
+      settings = settings || this.settings;
+
+
+      if (modal.hasClass('open') && target !== undefined && target.attr('data-reveal-id') == modal.attr('id')) {
+        return self.close(modal);
+      }
+
+      if (!modal.hasClass('open')) {
+        var open_modal = self.S('[' + self.attr_name() + '].open');
+
+        if (typeof modal.data('css-top') === 'undefined') {
+          modal.data('css-top', parseInt(modal.css('top'), 10))
+            .data('offset', this.cache_offset(modal));
+        }
+
+        modal.attr('tabindex','0').attr('aria-hidden','false');
+
+        this.key_up_on(modal);    // PATCH #3: turning on key up capture only when a reveal window is open
+
+        // Prevent namespace event from triggering twice
+        modal.on('open.fndtn.reveal', function(e) {
+          if (e.namespace !== 'fndtn.reveal') return;
+        });
+
+        modal.on('open.fndtn.reveal').trigger('open.fndtn.reveal');
+
+        if (open_modal.length < 1) {
+          this.toggle_bg(modal, true);
+        }
+
+        if (typeof ajax_settings === 'string') {
+          ajax_settings = {
+            url : ajax_settings
+          };
+        }
+
+        var openModal = function() {
+          if(open_modal.length > 0) {
+            if(settings.multiple_opened) {
+              self.to_back(open_modal);
+            } else {
+              self.hide(open_modal, settings.css.close);
+            }
+          }
+
+          // bl: add the open_modal that isn't already in the background to the openModals array
+          if(settings.multiple_opened) {
+            openModals.push(modal);
+          }
+
+          self.show(modal, settings.css.open);
+        };
+
+        if (typeof ajax_settings === 'undefined' || !ajax_settings.url) {
+          openModal();
+        } else {
+          var old_success = typeof ajax_settings.success !== 'undefined' ? ajax_settings.success : null;
+          $.extend(ajax_settings, {
+            success : function (data, textStatus, jqXHR) {
+              if ( $.isFunction(old_success) ) {
+                var result = old_success(data, textStatus, jqXHR);
+                if (typeof result == 'string') {
+                  data = result;
+                }
+              }
+
+              if (typeof options !== 'undefined' && typeof options.replaceContentSel !== 'undefined') {
+                modal.find(options.replaceContentSel).html(data);
+              } else {
+                modal.html(data);
+              }
+
+              self.S(modal).foundation('section', 'reflow');
+              self.S(modal).children().foundation();
+
+              openModal();
+            }
+          });
+
+          // check for if user initalized with error callback
+          if (settings.on_ajax_error !== $.noop) {
+            $.extend(ajax_settings, {
+              error : settings.on_ajax_error
+            });
+          }
+
+          $.ajax(ajax_settings);
+        }
+      }
+      self.S(window).trigger('resize');
+    },
+
+    close : function (modal) {
+      var modal = modal && modal.length ? modal : this.S(this.scope),
+          open_modals = this.S('[' + this.attr_name() + '].open'),
+          settings = modal.data(this.attr_name(true) + '-init') || this.settings,
+          self = this;
+
+      if (open_modals.length > 0) {
+
+        modal.removeAttr('tabindex','0').attr('aria-hidden','true');
+
+        this.locked = true;
+        this.key_up_off(modal);   // PATCH #3: turning on key up capture only when a reveal window is open
+
+        modal.trigger('close.fndtn.reveal');
+
+        if ((settings.multiple_opened && open_modals.length === 1) || !settings.multiple_opened || modal.length > 1) {
+          self.toggle_bg(modal, false);
+          self.to_front(modal);
+        }
+
+        if (settings.multiple_opened) {
+          var isCurrent = modal.is(':not(.toback)');
+          self.hide(modal, settings.css.close, settings);
+          if(isCurrent) {
+            // remove the last modal since it is now closed
+            openModals.pop();
+          } else {
+            // if this isn't the current modal, then find it in the array and remove it
+            openModals = $.grep(openModals, function(elt) {
+              var isThis = elt[0]===modal[0];
+              if(isThis) {
+                // since it's not currently in the front, put it in the front now that it is hidden
+                // so that if it's re-opened, it won't be .toback
+                self.to_front(modal);
+              }
+              return !isThis;
+            });
+          }
+          // finally, show the next modal in the stack, if there is one
+          if(openModals.length>0) {
+            self.to_front(openModals[openModals.length - 1]);
+          }
+        } else {
+          self.hide(open_modals, settings.css.close, settings);
+        }
+      }
+    },
+
+    close_targets : function () {
+      var base = '.' + this.settings.dismiss_modal_class;
+
+      if (this.settings.close_on_background_click) {
+        return base + ', .' + this.settings.bg_class;
+      }
+
+      return base;
+    },
+
+    toggle_bg : function (modal, state) {
+      if (this.S('.' + this.settings.bg_class).length === 0) {
+        this.settings.bg = $('<div />', {'class': this.settings.bg_class})
+          .appendTo('body').hide();
+      }
+
+      var visible = this.settings.bg.filter(':visible').length > 0;
+      if ( state != visible ) {
+        if ( state == undefined ? visible : !state ) {
+          this.hide(this.settings.bg);
+        } else {
+          this.show(this.settings.bg);
+        }
+      }
+    },
+
+    show : function (el, css) {
+      // is modal
+      if (css) {
+        var settings = el.data(this.attr_name(true) + '-init') || this.settings,
+            root_element = settings.root_element,
+            context = this;
+
+        if (el.parent(root_element).length === 0) {
+          var placeholder = el.wrap('<div style="display: none;" />').parent();
+
+          el.on('closed.fndtn.reveal.wrapped', function () {
+            el.detach().appendTo(placeholder);
+            el.unwrap().unbind('closed.fndtn.reveal.wrapped');
+          });
+
+          el.detach().appendTo(root_element);
+        }
+
+        var animData = getAnimationData(settings.animation);
+        if (!animData.animate) {
+          this.locked = false;
+        }
+        if (animData.pop) {
+          css.top = $(window).scrollTop() - el.data('offset') + 'px';
+          var end_css = {
+            top: $(window).scrollTop() + el.data('css-top') + 'px',
+            opacity: 1
+          };
+
+          return setTimeout(function () {
+            return el
+              .css(css)
+              .animate(end_css, settings.animation_speed, 'linear', function () {
+                context.locked = false;
+                el.trigger('opened.fndtn.reveal');
+              })
+              .addClass('open');
+          }, settings.animation_speed / 2);
+        }
+
+        css.top = $(window).scrollTop() + el.data('css-top') + 'px';
+
+        if (animData.fade) {
+          var end_css = {opacity: 1};
+
+          return setTimeout(function () {
+            return el
+              .css(css)
+              .animate(end_css, settings.animation_speed, 'linear', function () {
+                context.locked = false;
+                el.trigger('opened.fndtn.reveal');
+              })
+              .addClass('open');
+          }, settings.animation_speed / 2);
+        }
+
+        return el.css(css).show().css({opacity : 1}).addClass('open').trigger('opened.fndtn.reveal');
+      }
+
+      var settings = this.settings;
+
+      // should we animate the background?
+      if (getAnimationData(settings.animation).fade) {
+        return el.fadeIn(settings.animation_speed / 2);
+      }
+
+      this.locked = false;
+
+      return el.show();
+    },
+
+    to_back : function(el) {
+      el.addClass('toback');
+    },
+
+    to_front : function(el) {
+      el.removeClass('toback');
+    },
+
+    hide : function (el, css) {
+      // is modal
+      if (css) {
+        var settings = el.data(this.attr_name(true) + '-init'),
+            context = this;
+        settings = settings || this.settings;
+
+        var animData = getAnimationData(settings.animation);
+        if (!animData.animate) {
+          this.locked = false;
+        }
+        if (animData.pop) {
+          var end_css = {
+            top: - $(window).scrollTop() - el.data('offset') + 'px',
+            opacity: 0
+          };
+
+          return setTimeout(function () {
+            return el
+              .animate(end_css, settings.animation_speed, 'linear', function () {
+                context.locked = false;
+                el.css(css).trigger('closed.fndtn.reveal');
+              })
+              .removeClass('open');
+          }, settings.animation_speed / 2);
+        }
+
+        if (animData.fade) {
+          var end_css = {opacity : 0};
+
+          return setTimeout(function () {
+            return el
+              .animate(end_css, settings.animation_speed, 'linear', function () {
+                context.locked = false;
+                el.css(css).trigger('closed.fndtn.reveal');
+              })
+              .removeClass('open');
+          }, settings.animation_speed / 2);
+        }
+
+        return el.hide().css(css).removeClass('open').trigger('closed.fndtn.reveal');
+      }
+
+      var settings = this.settings;
+
+      // should we animate the background?
+      if (getAnimationData(settings.animation).fade) {
+        return el.fadeOut(settings.animation_speed / 2);
+      }
+
+      return el.hide();
+    },
+
+    close_video : function (e) {
+      var video = $('.flex-video', e.target),
+          iframe = $('iframe', video);
+
+      if (iframe.length > 0) {
+        iframe.attr('data-src', iframe[0].src);
+        iframe.attr('src', iframe.attr('src'));
+        video.hide();
+      }
+    },
+
+    open_video : function (e) {
+      var video = $('.flex-video', e.target),
+          iframe = video.find('iframe');
+
+      if (iframe.length > 0) {
+        var data_src = iframe.attr('data-src');
+        if (typeof data_src === 'string') {
+          iframe[0].src = iframe.attr('data-src');
+        } else {
+          var src = iframe[0].src;
+          iframe[0].src = undefined;
+          iframe[0].src = src;
+        }
+        video.show();
+      }
+    },
+
+    data_attr : function (str) {
+      if (this.namespace.length > 0) {
+        return this.namespace + '-' + str;
+      }
+
+      return str;
+    },
+
+    cache_offset : function (modal) {
+      var offset = modal.show().height() + parseInt(modal.css('top'), 10) + modal.scrollY;
+
+      modal.hide();
+
+      return offset;
+    },
+
+    off : function () {
+      $(this.scope).off('.fndtn.reveal');
+    },
+
+    reflow : function () {}
+  };
+
+  /*
+   * getAnimationData('popAndFade') // {animate: true,  pop: true,  fade: true}
+   * getAnimationData('fade')       // {animate: true,  pop: false, fade: true}
+   * getAnimationData('pop')        // {animate: true,  pop: true,  fade: false}
+   * getAnimationData('foo')        // {animate: false, pop: false, fade: false}
+   * getAnimationData(null)         // {animate: false, pop: false, fade: false}
+   */
+  function getAnimationData(str) {
+    var fade = /fade/i.test(str);
+    var pop = /pop/i.test(str);
+    return {
+      animate : fade || pop,
+      pop : pop,
+      fade : fade
+    };
+  }
+}(jQuery, window, window.document));
diff --git a/js/foundation/js/foundation/foundation.slider.js b/js/foundation/js/foundation/foundation.slider.js
new file mode 100644 (file)
index 0000000..0d71d56
--- /dev/null
@@ -0,0 +1,296 @@
+;(function ($, window, document, undefined) {
+  'use strict';
+
+  Foundation.libs.slider = {
+    name : 'slider',
+
+    version : '5.5.3',
+
+    settings : {
+      start : 0,
+      end : 100,
+      step : 1,
+      precision : 2,
+      initial : null,
+      display_selector : '',
+      vertical : false,
+      trigger_input_change : false,
+      on_change : function () {}
+    },
+
+    cache : {},
+
+    init : function (scope, method, options) {
+      Foundation.inherit(this, 'throttle');
+      this.bindings(method, options);
+      this.reflow();
+    },
+
+    events : function () {
+      var self = this;
+      $(this.scope)
+        .off('.slider')
+        .on('mousedown.fndtn.slider touchstart.fndtn.slider pointerdown.fndtn.slider',
+        '[' + self.attr_name() + ']:not(.disabled, [disabled]) .range-slider-handle', function (e) {
+          if (!self.cache.active) {
+            e.preventDefault();
+            self.set_active_slider($(e.target));
+          }
+        })
+        .on('mousemove.fndtn.slider touchmove.fndtn.slider pointermove.fndtn.slider', function (e) {
+          if (!!self.cache.active) {
+            e.preventDefault();
+            if ($.data(self.cache.active[0], 'settings').vertical) {
+              var scroll_offset = 0;
+              if (!e.pageY) {
+                scroll_offset = window.scrollY;
+              }
+              self.calculate_position(self.cache.active, self.get_cursor_position(e, 'y') + scroll_offset);
+            } else {
+              self.calculate_position(self.cache.active, self.get_cursor_position(e, 'x'));
+            }
+          }
+        })
+        .on('mouseup.fndtn.slider touchend.fndtn.slider pointerup.fndtn.slider', function (e) {
+          if(!self.cache.active) {
+            // if the user has just clicked into the slider without starting to drag the handle
+            var slider = $(e.target).attr('role') === 'slider' ? $(e.target) : $(e.target).closest('.range-slider').find("[role='slider']");
+
+            if (slider.length && (!slider.parent().hasClass('disabled') && !slider.parent().attr('disabled'))) {
+              self.set_active_slider(slider);
+              if ($.data(self.cache.active[0], 'settings').vertical) {
+                var scroll_offset = 0;
+                if (!e.pageY) {
+                  scroll_offset = window.scrollY;
+                }
+                self.calculate_position(self.cache.active, self.get_cursor_position(e, 'y') + scroll_offset);
+              } else {
+                self.calculate_position(self.cache.active, self.get_cursor_position(e, 'x'));
+              }
+            }
+          }
+          self.remove_active_slider();
+        })
+        .on('change.fndtn.slider', function (e) {
+          self.settings.on_change();
+        });
+
+      self.S(window)
+        .on('resize.fndtn.slider', self.throttle(function (e) {
+          self.reflow();
+        }, 300));
+
+      // update slider value as users change input value
+      this.S('[' + this.attr_name() + ']').each(function () {
+        var slider = $(this),
+            handle = slider.children('.range-slider-handle')[0],
+            settings = self.initialize_settings(handle);
+
+        if (settings.display_selector != '') {
+          $(settings.display_selector).each(function(){
+            if ($(this).attr('value')) {
+              $(this).off('change').on('change', function () {
+                slider.foundation("slider", "set_value", $(this).val());
+              });
+            }
+          });
+        }
+      });
+    },
+
+    get_cursor_position : function (e, xy) {
+      var pageXY = 'page' + xy.toUpperCase(),
+          clientXY = 'client' + xy.toUpperCase(),
+          position;
+
+      if (typeof e[pageXY] !== 'undefined') {
+        position = e[pageXY];
+      } else if (typeof e.originalEvent[clientXY] !== 'undefined') {
+        position = e.originalEvent[clientXY];
+      } else if (e.originalEvent.touches && e.originalEvent.touches[0] && typeof e.originalEvent.touches[0][clientXY] !== 'undefined') {
+        position = e.originalEvent.touches[0][clientXY];
+      } else if (e.currentPoint && typeof e.currentPoint[xy] !== 'undefined') {
+        position = e.currentPoint[xy];
+      }
+
+      return position;
+    },
+
+    set_active_slider : function ($handle) {
+      this.cache.active = $handle;
+    },
+
+    remove_active_slider : function () {
+      this.cache.active = null;
+    },
+
+    calculate_position : function ($handle, cursor_x) {
+      var self = this,
+          settings = $.data($handle[0], 'settings'),
+          handle_l = $.data($handle[0], 'handle_l'),
+          handle_o = $.data($handle[0], 'handle_o'),
+          bar_l = $.data($handle[0], 'bar_l'),
+          bar_o = $.data($handle[0], 'bar_o');
+
+      requestAnimationFrame(function () {
+        var pct;
+
+        if (Foundation.rtl && !settings.vertical) {
+          pct = self.limit_to(((bar_o + bar_l - cursor_x) / bar_l), 0, 1);
+        } else {
+          pct = self.limit_to(((cursor_x - bar_o) / bar_l), 0, 1);
+        }
+
+        pct = settings.vertical ? 1 - pct : pct;
+
+        var norm = self.normalized_value(pct, settings.start, settings.end, settings.step, settings.precision);
+
+        self.set_ui($handle, norm);
+      });
+    },
+
+    set_ui : function ($handle, value) {
+      var settings = $.data($handle[0], 'settings'),
+          handle_l = $.data($handle[0], 'handle_l'),
+          bar_l = $.data($handle[0], 'bar_l'),
+          norm_pct = this.normalized_percentage(value, settings.start, settings.end),
+          handle_offset = norm_pct * (bar_l - handle_l) - 1,
+          progress_bar_length = norm_pct * 100,
+          $handle_parent = $handle.parent(),
+          $hidden_inputs = $handle.parent().children('input[type=hidden]');
+
+      if (Foundation.rtl && !settings.vertical) {
+        handle_offset = -handle_offset;
+      }
+
+      handle_offset = settings.vertical ? -handle_offset + bar_l - handle_l + 1 : handle_offset;
+      this.set_translate($handle, handle_offset, settings.vertical);
+
+      if (settings.vertical) {
+        $handle.siblings('.range-slider-active-segment').css('height', progress_bar_length + '%');
+      } else {
+        $handle.siblings('.range-slider-active-segment').css('width', progress_bar_length + '%');
+      }
+
+      $handle_parent.attr(this.attr_name(), value).trigger('change.fndtn.slider');
+
+      $hidden_inputs.val(value);
+      if (settings.trigger_input_change) {
+          $hidden_inputs.trigger('change.fndtn.slider');
+      }
+
+      if (!$handle[0].hasAttribute('aria-valuemin')) {
+        $handle.attr({
+          'aria-valuemin' : settings.start,
+          'aria-valuemax' : settings.end
+        });
+      }
+      $handle.attr('aria-valuenow', value);
+
+      if (settings.display_selector != '') {
+        $(settings.display_selector).each(function () {
+          if (this.hasAttribute('value')) {
+            $(this).val(value);
+          } else {
+            $(this).text(value);
+          }
+        });
+      }
+
+    },
+
+    normalized_percentage : function (val, start, end) {
+      return Math.min(1, (val - start) / (end - start));
+    },
+
+    normalized_value : function (val, start, end, step, precision) {
+      var range = end - start,
+          point = val * range,
+          mod = (point - (point % step)) / step,
+          rem = point % step,
+          round = ( rem >= step * 0.5 ? step : 0);
+      return ((mod * step + round) + start).toFixed(precision);
+    },
+
+    set_translate : function (ele, offset, vertical) {
+      if (vertical) {
+        $(ele)
+          .css('-webkit-transform', 'translateY(' + offset + 'px)')
+          .css('-moz-transform', 'translateY(' + offset + 'px)')
+          .css('-ms-transform', 'translateY(' + offset + 'px)')
+          .css('-o-transform', 'translateY(' + offset + 'px)')
+          .css('transform', 'translateY(' + offset + 'px)');
+      } else {
+        $(ele)
+          .css('-webkit-transform', 'translateX(' + offset + 'px)')
+          .css('-moz-transform', 'translateX(' + offset + 'px)')
+          .css('-ms-transform', 'translateX(' + offset + 'px)')
+          .css('-o-transform', 'translateX(' + offset + 'px)')
+          .css('transform', 'translateX(' + offset + 'px)');
+      }
+    },
+
+    limit_to : function (val, min, max) {
+      return Math.min(Math.max(val, min), max);
+    },
+
+    initialize_settings : function (handle) {
+      var settings = $.extend({}, this.settings, this.data_options($(handle).parent())),
+          decimal_places_match_result;
+
+      if (settings.precision === null) {
+        decimal_places_match_result = ('' + settings.step).match(/\.([\d]*)/);
+        settings.precision = decimal_places_match_result && decimal_places_match_result[1] ? decimal_places_match_result[1].length : 0;
+      }
+
+      if (settings.vertical) {
+        $.data(handle, 'bar_o', $(handle).parent().offset().top);
+        $.data(handle, 'bar_l', $(handle).parent().outerHeight());
+        $.data(handle, 'handle_o', $(handle).offset().top);
+        $.data(handle, 'handle_l', $(handle).outerHeight());
+      } else {
+        $.data(handle, 'bar_o', $(handle).parent().offset().left);
+        $.data(handle, 'bar_l', $(handle).parent().outerWidth());
+        $.data(handle, 'handle_o', $(handle).offset().left);
+        $.data(handle, 'handle_l', $(handle).outerWidth());
+      }
+
+      $.data(handle, 'bar', $(handle).parent());
+      return $.data(handle, 'settings', settings);
+    },
+
+    set_initial_position : function ($ele) {
+      var settings = $.data($ele.children('.range-slider-handle')[0], 'settings'),
+          initial = ((typeof settings.initial == 'number' && !isNaN(settings.initial)) ? settings.initial : Math.floor((settings.end - settings.start) * 0.5 / settings.step) * settings.step + settings.start),
+          $handle = $ele.children('.range-slider-handle');
+      this.set_ui($handle, initial);
+    },
+
+    set_value : function (value) {
+      var self = this;
+      $('[' + self.attr_name() + ']', this.scope).each(function () {
+        $(this).attr(self.attr_name(), value);
+      });
+      if (!!$(this.scope).attr(self.attr_name())) {
+        $(this.scope).attr(self.attr_name(), value);
+      }
+      self.reflow();
+    },
+
+    reflow : function () {
+      var self = this;
+      self.S('[' + this.attr_name() + ']').each(function () {
+        var handle = $(this).children('.range-slider-handle')[0],
+            val = $(this).attr(self.attr_name());
+        self.initialize_settings(handle);
+
+        if (val) {
+          self.set_ui($(handle), parseFloat(val));
+        } else {
+          self.set_initial_position($(this));
+        }
+      });
+    }
+  };
+
+}(jQuery, window, window.document));
diff --git a/js/foundation/js/foundation/foundation.tab.js b/js/foundation/js/foundation/foundation.tab.js
new file mode 100644 (file)
index 0000000..4b375c1
--- /dev/null
@@ -0,0 +1,247 @@
+;(function ($, window, document, undefined) {
+  'use strict';
+
+  Foundation.libs.tab = {
+    name : 'tab',
+
+    version : '5.5.3',
+
+    settings : {
+      active_class : 'active',
+      callback : function () {},
+      deep_linking : false,
+      scroll_to_content : true,
+      is_hover : false
+    },
+
+    default_tab_hashes : [],
+
+    init : function (scope, method, options) {
+      var self = this,
+          S = this.S;
+
+         // Store the default active tabs which will be referenced when the
+         // location hash is absent, as in the case of navigating the tabs and
+         // returning to the first viewing via the browser Back button.
+         S('[' + this.attr_name() + '] > .active > a', this.scope).each(function () {
+           self.default_tab_hashes.push(this.hash);
+         });
+
+      this.bindings(method, options);
+      this.handle_location_hash_change();
+    },
+
+    events : function () {
+      var self = this,
+          S = this.S;
+
+      var usual_tab_behavior =  function (e, target) {
+        var settings = S(target).closest('[' + self.attr_name() + ']').data(self.attr_name(true) + '-init');
+        if (!settings.is_hover || Modernizr.touch) {
+          // if user did not pressed tab key, prevent default action
+          var keyCode = e.keyCode || e.which;
+          if (keyCode !== 9) { 
+            e.preventDefault();
+            e.stopPropagation();
+          }
+          self.toggle_active_tab(S(target).parent());
+          
+        }
+      };
+
+      S(this.scope)
+        .off('.tab')
+        // Key event: focus/tab key
+        .on('keydown.fndtn.tab', '[' + this.attr_name() + '] > * > a', function(e) {
+          var keyCode = e.keyCode || e.which;
+          // if user pressed tab key
+          if (keyCode === 13 || keyCode === 32) { // enter or space
+            var el = this;
+            usual_tab_behavior(e, el);
+          } 
+        })
+        // Click event: tab title
+        .on('click.fndtn.tab', '[' + this.attr_name() + '] > * > a', function(e) {
+          var el = this;
+          usual_tab_behavior(e, el);
+        })
+        // Hover event: tab title
+        .on('mouseenter.fndtn.tab', '[' + this.attr_name() + '] > * > a', function (e) {
+          var settings = S(this).closest('[' + self.attr_name() + ']').data(self.attr_name(true) + '-init');
+          if (settings.is_hover) {
+            self.toggle_active_tab(S(this).parent());
+          }
+        });
+
+      // Location hash change event
+      S(window).on('hashchange.fndtn.tab', function (e) {
+        e.preventDefault();
+        self.handle_location_hash_change();
+      });
+    },
+
+    handle_location_hash_change : function () {
+
+      var self = this,
+          S = this.S;
+
+      S('[' + this.attr_name() + ']', this.scope).each(function () {
+        var settings = S(this).data(self.attr_name(true) + '-init');
+        if (settings.deep_linking) {
+          // Match the location hash to a label
+          var hash;
+          if (settings.scroll_to_content) {
+            hash = self.scope.location.hash;
+          } else {
+            // prefix the hash to prevent anchor scrolling
+            hash = self.scope.location.hash.replace('fndtn-', '');
+          }
+          if (hash != '') {
+            // Check whether the location hash references a tab content div or
+            // another element on the page (inside or outside the tab content div)
+            var hash_element = S(hash);
+            if (hash_element.hasClass('content') && hash_element.parent().hasClass('tabs-content')) {
+              // Tab content div
+              self.toggle_active_tab($('[' + self.attr_name() + '] > * > a[href=' + hash + ']').parent());
+            } else {
+              // Not the tab content div. If inside the tab content, find the
+              // containing tab and toggle it as active.
+              var hash_tab_container_id = hash_element.closest('.content').attr('id');
+              if (hash_tab_container_id != undefined) {
+                self.toggle_active_tab($('[' + self.attr_name() + '] > * > a[href=#' + hash_tab_container_id + ']').parent(), hash);
+              }
+            }
+          } else {
+            // Reference the default tab hashes which were initialized in the init function
+            for (var ind = 0; ind < self.default_tab_hashes.length; ind++) {
+              self.toggle_active_tab($('[' + self.attr_name() + '] > * > a[href=' + self.default_tab_hashes[ind] + ']').parent());
+            }
+          }
+        }
+       });
+     },
+
+    toggle_active_tab : function (tab, location_hash) {
+      var self = this,
+          S = self.S,
+          tabs = tab.closest('[' + this.attr_name() + ']'),
+          tab_link = tab.find('a'),
+          anchor = tab.children('a').first(),
+          target_hash = '#' + anchor.attr('href').split('#')[1],
+          target = S(target_hash),
+          siblings = tab.siblings(),
+          settings = tabs.data(this.attr_name(true) + '-init'),
+          interpret_keyup_action = function (e) {
+            // Light modification of Heydon Pickering's Practical ARIA Examples: http://heydonworks.com/practical_aria_examples/js/a11y.js
+
+            // define current, previous and next (possible) tabs
+
+            var $original = $(this);
+            var $prev = $(this).parents('li').prev().children('[role="tab"]');
+            var $next = $(this).parents('li').next().children('[role="tab"]');
+            var $target;
+
+            // find the direction (prev or next)
+
+            switch (e.keyCode) {
+              case 37:
+                $target = $prev;
+                break;
+              case 39:
+                $target = $next;
+                break;
+              default:
+                $target = false
+                  break;
+            }
+
+            if ($target.length) {
+              $original.attr({
+                'tabindex' : '-1',
+                'aria-selected' : null
+              });
+              $target.attr({
+                'tabindex' : '0',
+                'aria-selected' : true
+              }).focus();
+            }
+
+            // Hide panels
+
+            $('[role="tabpanel"]')
+              .attr('aria-hidden', 'true');
+
+            // Show panel which corresponds to target
+
+            $('#' + $(document.activeElement).attr('href').substring(1))
+              .attr('aria-hidden', null);
+
+          },
+          go_to_hash = function(hash) {
+            // This function allows correct behaviour of the browser's back button when deep linking is enabled. Without it
+            // the user would get continually redirected to the default hash.
+            var default_hash = settings.scroll_to_content ? self.default_tab_hashes[0] : 'fndtn-' + self.default_tab_hashes[0].replace('#', '');
+
+            if (hash !== default_hash || window.location.hash) {
+              window.location.hash = hash;
+            }
+          };
+
+      // allow usage of data-tab-content attribute instead of href
+      if (anchor.data('tab-content')) {
+        target_hash = '#' + anchor.data('tab-content').split('#')[1];
+        target = S(target_hash);
+      }
+
+      if (settings.deep_linking) {
+
+        if (settings.scroll_to_content) {
+
+          // retain current hash to scroll to content
+          go_to_hash(location_hash || target_hash);
+
+          if (location_hash == undefined || location_hash == target_hash) {
+            tab.parent()[0].scrollIntoView();
+          } else {
+            S(target_hash)[0].scrollIntoView();
+          }
+        } else {
+          // prefix the hashes so that the browser doesn't scroll down
+          if (location_hash != undefined) {
+            go_to_hash('fndtn-' + location_hash.replace('#', ''));
+          } else {
+            go_to_hash('fndtn-' + target_hash.replace('#', ''));
+          }
+        }
+      }
+
+      // WARNING: The activation and deactivation of the tab content must
+      // occur after the deep linking in order to properly refresh the browser
+      // window (notably in Chrome).
+      // Clean up multiple attr instances to done once
+      tab.addClass(settings.active_class).triggerHandler('opened');
+      tab_link.attr({'aria-selected' : 'true',  tabindex : 0});
+      siblings.removeClass(settings.active_class)
+      siblings.find('a').attr({'aria-selected' : 'false'/*,  tabindex : -1*/});
+      target.siblings().removeClass(settings.active_class).attr({'aria-hidden' : 'true'/*,  tabindex : -1*/});
+      target.addClass(settings.active_class).attr('aria-hidden', 'false').removeAttr('tabindex');
+      settings.callback(tab);
+      target.triggerHandler('toggled', [target]);
+      tabs.triggerHandler('toggled', [tab]);
+
+      tab_link.off('keydown').on('keydown', interpret_keyup_action );
+    },
+
+    data_attr : function (str) {
+      if (this.namespace.length > 0) {
+        return this.namespace + '-' + str;
+      }
+
+      return str;
+    },
+
+    off : function () {},
+
+    reflow : function () {}
+  };
+}(jQuery, window, window.document));
diff --git a/js/foundation/js/foundation/foundation.tooltip.js b/js/foundation/js/foundation/foundation.tooltip.js
new file mode 100644 (file)
index 0000000..0690e25
--- /dev/null
@@ -0,0 +1,348 @@
+;(function ($, window, document, undefined) {
+  'use strict';
+
+  Foundation.libs.tooltip = {
+    name : 'tooltip',
+
+    version : '5.5.3',
+
+    settings : {
+      additional_inheritable_classes : [],
+      tooltip_class : '.tooltip',
+      append_to : 'body',
+      touch_close_text : 'Tap To Close',
+      disable_for_touch : false,
+      hover_delay : 200,
+      fade_in_duration : 150,
+      fade_out_duration : 150,
+      show_on : 'all',
+      tip_template : function (selector, content) {
+        return '<span data-selector="' + selector + '" id="' + selector + '" class="'
+          + Foundation.libs.tooltip.settings.tooltip_class.substring(1)
+          + '" role="tooltip">' + content + '<span class="nub"></span></span>';
+      }
+    },
+
+    cache : {},
+
+    init : function (scope, method, options) {
+      Foundation.inherit(this, 'random_str');
+      this.bindings(method, options);
+    },
+
+    should_show : function (target, tip) {
+      var settings = $.extend({}, this.settings, this.data_options(target));
+
+      if (settings.show_on === 'all') {
+        return true;
+      } else if (this.small() && settings.show_on === 'small') {
+        return true;
+      } else if (this.medium() && settings.show_on === 'medium') {
+        return true;
+      } else if (this.large() && settings.show_on === 'large') {
+        return true;
+      }
+      return false;
+    },
+
+    medium : function () {
+      return matchMedia(Foundation.media_queries['medium']).matches;
+    },
+
+    large : function () {
+      return matchMedia(Foundation.media_queries['large']).matches;
+    },
+
+    events : function (instance) {
+      var self = this,
+          S = self.S;
+
+      self.create(this.S(instance));
+
+      function _startShow(elt, $this, immediate) {
+        if (elt.timer) {
+          return;
+        }
+
+        if (immediate) {
+          elt.timer = null;
+          self.showTip($this);
+        } else {
+          elt.timer = setTimeout(function () {
+            elt.timer = null;
+            self.showTip($this);
+          }.bind(elt), self.settings.hover_delay);
+        }
+      }
+
+      function _startHide(elt, $this) {
+        if (elt.timer) {
+          clearTimeout(elt.timer);
+          elt.timer = null;
+        }
+
+        self.hide($this);
+      }
+
+      $(this.scope)
+        .off('.tooltip')
+        .on('mouseenter.fndtn.tooltip mouseleave.fndtn.tooltip touchstart.fndtn.tooltip MSPointerDown.fndtn.tooltip',
+          '[' + this.attr_name() + ']', function (e) {
+          var $this = S(this),
+              settings = $.extend({}, self.settings, self.data_options($this)),
+              is_touch = false;
+
+          if (Modernizr.touch && /touchstart|MSPointerDown/i.test(e.type) && S(e.target).is('a')) {
+            return false;
+          }
+
+          if (/mouse/i.test(e.type) && self.ie_touch(e)) {
+            return false;
+          }
+          
+          if ($this.hasClass('open')) {
+            if (Modernizr.touch && /touchstart|MSPointerDown/i.test(e.type)) {
+              e.preventDefault();
+            }
+            self.hide($this);
+          } else {
+            if (settings.disable_for_touch && Modernizr.touch && /touchstart|MSPointerDown/i.test(e.type)) {
+              return;
+            } else if (!settings.disable_for_touch && Modernizr.touch && /touchstart|MSPointerDown/i.test(e.type)) {
+              e.preventDefault();
+              S(settings.tooltip_class + '.open').hide();
+              is_touch = true;
+              // close other open tooltips on touch
+              if ($('.open[' + self.attr_name() + ']').length > 0) {
+               var prevOpen = S($('.open[' + self.attr_name() + ']')[0]);
+               self.hide(prevOpen);
+              }
+            }
+
+            if (/enter|over/i.test(e.type)) {
+              _startShow(this, $this);
+
+            } else if (e.type === 'mouseout' || e.type === 'mouseleave') {
+              _startHide(this, $this);
+            } else {
+              _startShow(this, $this, true);
+            }
+          }
+        })
+        .on('mouseleave.fndtn.tooltip touchstart.fndtn.tooltip MSPointerDown.fndtn.tooltip', '[' + this.attr_name() + '].open', function (e) {
+          if (/mouse/i.test(e.type) && self.ie_touch(e)) {
+            return false;
+          }
+
+          if ($(this).data('tooltip-open-event-type') == 'touch' && e.type == 'mouseleave') {
+            return;
+          } else if ($(this).data('tooltip-open-event-type') == 'mouse' && /MSPointerDown|touchstart/i.test(e.type)) {
+            self.convert_to_touch($(this));
+          } else {
+            _startHide(this, $(this));
+          }
+        })
+        .on('DOMNodeRemoved DOMAttrModified', '[' + this.attr_name() + ']:not(a)', function (e) {
+          _startHide(this, S(this));
+        });
+    },
+
+    ie_touch : function (e) {
+      // How do I distinguish between IE11 and Windows Phone 8?????
+      return false;
+    },
+
+    showTip : function ($target) {
+      var $tip = this.getTip($target);
+      if (this.should_show($target, $tip)) {
+        return this.show($target);
+      }
+      return;
+    },
+
+    getTip : function ($target) {
+      var selector = this.selector($target),
+          settings = $.extend({}, this.settings, this.data_options($target)),
+          tip = null;
+
+      if (selector) {
+        tip = this.S('span[data-selector="' + selector + '"]' + settings.tooltip_class);
+      }
+
+      return (typeof tip === 'object') ? tip : false;
+    },
+
+    selector : function ($target) {
+      var dataSelector = $target.attr(this.attr_name()) || $target.attr('data-selector');
+
+      if (typeof dataSelector != 'string') {
+        dataSelector = this.random_str(6);
+        $target
+          .attr('data-selector', dataSelector)
+          .attr('aria-describedby', dataSelector);
+      }
+
+      return dataSelector;
+    },
+
+    create : function ($target) {
+      var self = this,
+          settings = $.extend({}, this.settings, this.data_options($target)),
+          tip_template = this.settings.tip_template;
+
+      if (typeof settings.tip_template === 'string' && window.hasOwnProperty(settings.tip_template)) {
+        tip_template = window[settings.tip_template];
+      }
+
+      var $tip = $(tip_template(this.selector($target), $('<div></div>').html($target.attr('title')).html())),
+          classes = this.inheritable_classes($target);
+
+      $tip.addClass(classes).appendTo(settings.append_to);
+
+      if (Modernizr.touch) {
+        $tip.append('<span class="tap-to-close">' + settings.touch_close_text + '</span>');
+        $tip.on('touchstart.fndtn.tooltip MSPointerDown.fndtn.tooltip', function (e) {
+          self.hide($target);
+        });
+      }
+
+      $target.removeAttr('title').attr('title', '');
+    },
+
+    reposition : function (target, tip, classes) {
+      var width, nub, nubHeight, nubWidth, objPos;
+
+      tip.css('visibility', 'hidden').show();
+
+      width = target.data('width');
+      nub = tip.children('.nub');
+      nubHeight = nub.outerHeight();
+      nubWidth = nub.outerWidth();
+
+      if (this.small()) {
+        tip.css({'width' : '100%'});
+      } else {
+        tip.css({'width' : (width) ? width : 'auto'});
+      }
+
+      objPos = function (obj, top, right, bottom, left, width) {
+        return obj.css({
+          'top' : (top) ? top : 'auto',
+          'bottom' : (bottom) ? bottom : 'auto',
+          'left' : (left) ? left : 'auto',
+          'right' : (right) ? right : 'auto'
+        }).end();
+      };
+      
+      var o_top = target.offset().top;
+      var o_left = target.offset().left;
+      var outerHeight = target.outerHeight();
+
+      objPos(tip, (o_top + outerHeight + 10), 'auto', 'auto', o_left);
+
+      if (this.small()) {
+        objPos(tip, (o_top + outerHeight + 10), 'auto', 'auto', 12.5, $(this.scope).width());
+        tip.addClass('tip-override');
+        objPos(nub, -nubHeight, 'auto', 'auto', o_left);
+      } else {
+        
+        if (Foundation.rtl) {
+          nub.addClass('rtl');
+          o_left = o_left + target.outerWidth() - tip.outerWidth();
+        }
+
+        objPos(tip, (o_top + outerHeight + 10), 'auto', 'auto', o_left);
+        // reset nub from small styles, if they've been applied
+        if (nub.attr('style')) {
+          nub.removeAttr('style');
+        }
+        
+        tip.removeClass('tip-override');
+        
+        var tip_outerHeight = tip.outerHeight();
+        
+        if (classes && classes.indexOf('tip-top') > -1) {
+          if (Foundation.rtl) {
+            nub.addClass('rtl');
+          }
+          objPos(tip, (o_top - tip_outerHeight), 'auto', 'auto', o_left)
+            .removeClass('tip-override');
+        } else if (classes && classes.indexOf('tip-left') > -1) {
+          objPos(tip, (o_top + (outerHeight / 2) - (tip_outerHeight / 2)), 'auto', 'auto', (o_left - tip.outerWidth() - nubHeight))
+            .removeClass('tip-override');
+          nub.removeClass('rtl');
+        } else if (classes && classes.indexOf('tip-right') > -1) {
+          objPos(tip, (o_top + (outerHeight / 2) - (tip_outerHeight / 2)), 'auto', 'auto', (o_left + target.outerWidth() + nubHeight))
+            .removeClass('tip-override');
+          nub.removeClass('rtl');
+        }
+      }
+
+      tip.css('visibility', 'visible').hide();
+    },
+
+    small : function () {
+      return matchMedia(Foundation.media_queries.small).matches &&
+        !matchMedia(Foundation.media_queries.medium).matches;
+    },
+
+    inheritable_classes : function ($target) {
+      var settings = $.extend({}, this.settings, this.data_options($target)),
+          inheritables = ['tip-top', 'tip-left', 'tip-bottom', 'tip-right', 'radius', 'round'].concat(settings.additional_inheritable_classes),
+          classes = $target.attr('class'),
+          filtered = classes ? $.map(classes.split(' '), function (el, i) {
+            if ($.inArray(el, inheritables) !== -1) {
+              return el;
+            }
+          }).join(' ') : '';
+
+      return $.trim(filtered);
+    },
+
+    convert_to_touch : function ($target) {
+      var self = this,
+          $tip = self.getTip($target),
+          settings = $.extend({}, self.settings, self.data_options($target));
+
+      if ($tip.find('.tap-to-close').length === 0) {
+        $tip.append('<span class="tap-to-close">' + settings.touch_close_text + '</span>');
+        $tip.on('click.fndtn.tooltip.tapclose touchstart.fndtn.tooltip.tapclose MSPointerDown.fndtn.tooltip.tapclose', function (e) {
+          self.hide($target);
+        });
+      }
+
+      $target.data('tooltip-open-event-type', 'touch');
+    },
+
+    show : function ($target) {
+      var $tip = this.getTip($target);
+      if ($target.data('tooltip-open-event-type') == 'touch') {
+        this.convert_to_touch($target);
+      }
+
+      this.reposition($target, $tip, $target.attr('class'));
+      $target.addClass('open');
+      $tip.fadeIn(this.settings.fade_in_duration);
+    },
+
+    hide : function ($target) {
+      var $tip = this.getTip($target);
+
+      $tip.fadeOut(this.settings.fade_out_duration, function () {
+        $tip.find('.tap-to-close').remove();
+        $tip.off('click.fndtn.tooltip.tapclose MSPointerDown.fndtn.tapclose');
+        $target.removeClass('open');
+      });
+    },
+
+    off : function () {
+      var self = this;
+      this.S(this.scope).off('.fndtn.tooltip');
+      this.S(this.settings.tooltip_class).each(function (i) {
+        $('[' + self.attr_name() + ']').eq(i).attr('title', $(this).text());
+      }).remove();
+    },
+
+    reflow : function () {}
+  };
+}(jQuery, window, window.document));
diff --git a/js/foundation/js/foundation/foundation.topbar.js b/js/foundation/js/foundation/foundation.topbar.js
new file mode 100644 (file)
index 0000000..23b7c7f
--- /dev/null
@@ -0,0 +1,458 @@
+;(function ($, window, document, undefined) {
+  'use strict';
+
+  Foundation.libs.topbar = {
+    name : 'topbar',
+
+    version : '5.5.3',
+
+    settings : {
+      index : 0,
+      start_offset : 0,
+      sticky_class : 'sticky',
+      custom_back_text : true,
+      back_text : 'Back',
+      mobile_show_parent_link : true,
+      is_hover : true,
+      scrolltop : true, // jump to top when sticky nav menu toggle is clicked
+      sticky_on : 'all',
+      dropdown_autoclose: true
+    },
+
+    init : function (section, method, options) {
+      Foundation.inherit(this, 'add_custom_rule register_media throttle');
+      var self = this;
+
+      self.register_media('topbar', 'foundation-mq-topbar');
+
+      this.bindings(method, options);
+
+      self.S('[' + this.attr_name() + ']', this.scope).each(function () {
+        var topbar = $(this),
+            settings = topbar.data(self.attr_name(true) + '-init'),
+            section = self.S('section, .top-bar-section', this);
+        topbar.data('index', 0);
+        var topbarContainer = topbar.parent();
+        if (topbarContainer.hasClass('fixed') || self.is_sticky(topbar, topbarContainer, settings) ) {
+          self.settings.sticky_class = settings.sticky_class;
+          self.settings.sticky_topbar = topbar;
+          topbar.data('height', topbarContainer.outerHeight());
+          topbar.data('stickyoffset', topbarContainer.offset().top);
+        } else {
+          topbar.data('height', topbar.outerHeight());
+        }
+
+        if (!settings.assembled) {
+          self.assemble(topbar);
+        }
+
+        if (settings.is_hover) {
+          self.S('.has-dropdown', topbar).addClass('not-click');
+        } else {
+          self.S('.has-dropdown', topbar).removeClass('not-click');
+        }
+
+        // Pad body when sticky (scrolled) or fixed.
+        self.add_custom_rule('.f-topbar-fixed { padding-top: ' + topbar.data('height') + 'px }');
+
+        if (topbarContainer.hasClass('fixed')) {
+          self.S('body').addClass('f-topbar-fixed');
+        }
+      });
+
+    },
+
+    is_sticky : function (topbar, topbarContainer, settings) {
+      var sticky     = topbarContainer.hasClass(settings.sticky_class);
+      var smallMatch = matchMedia(Foundation.media_queries.small).matches;
+      var medMatch   = matchMedia(Foundation.media_queries.medium).matches;
+      var lrgMatch   = matchMedia(Foundation.media_queries.large).matches;
+
+      if (sticky && settings.sticky_on === 'all') {
+        return true;
+      }
+      if (sticky && this.small() && settings.sticky_on.indexOf('small') !== -1) {
+        if (smallMatch && !medMatch && !lrgMatch) { return true; }
+      }
+      if (sticky && this.medium() && settings.sticky_on.indexOf('medium') !== -1) {
+        if (smallMatch && medMatch && !lrgMatch) { return true; }
+      }
+      if (sticky && this.large() && settings.sticky_on.indexOf('large') !== -1) {
+        if (smallMatch && medMatch && lrgMatch) { return true; }
+      }
+
+       return false;
+    },
+
+    toggle : function (toggleEl) {
+      var self = this,
+          topbar;
+
+      if (toggleEl) {
+        topbar = self.S(toggleEl).closest('[' + this.attr_name() + ']');
+      } else {
+        topbar = self.S('[' + this.attr_name() + ']');
+      }
+
+      var settings = topbar.data(this.attr_name(true) + '-init');
+
+      var section = self.S('section, .top-bar-section', topbar);
+
+      if (self.breakpoint()) {
+        if (!self.rtl) {
+          section.css({left : '0%'});
+          $('>.name', section).css({left : '100%'});
+        } else {
+          section.css({right : '0%'});
+          $('>.name', section).css({right : '100%'});
+        }
+
+        self.S('li.moved', section).removeClass('moved');
+        topbar.data('index', 0);
+
+        topbar
+          .toggleClass('expanded')
+          .css('height', '');
+      }
+
+      if (settings.scrolltop) {
+        if (!topbar.hasClass('expanded')) {
+          if (topbar.hasClass('fixed')) {
+            topbar.parent().addClass('fixed');
+            topbar.removeClass('fixed');
+            self.S('body').addClass('f-topbar-fixed');
+          }
+        } else if (topbar.parent().hasClass('fixed')) {
+          if (settings.scrolltop) {
+            topbar.parent().removeClass('fixed');
+            topbar.addClass('fixed');
+            self.S('body').removeClass('f-topbar-fixed');
+
+            window.scrollTo(0, 0);
+          } else {
+            topbar.parent().removeClass('expanded');
+          }
+        }
+      } else {
+        if (self.is_sticky(topbar, topbar.parent(), settings)) {
+          topbar.parent().addClass('fixed');
+        }
+
+        if (topbar.parent().hasClass('fixed')) {
+          if (!topbar.hasClass('expanded')) {
+            topbar.removeClass('fixed');
+            topbar.parent().removeClass('expanded');
+            self.update_sticky_positioning();
+          } else {
+            topbar.addClass('fixed');
+            topbar.parent().addClass('expanded');
+            self.S('body').addClass('f-topbar-fixed');
+          }
+        }
+      }
+    },
+
+    timer : null,
+
+    events : function (bar) {
+      var self = this,
+          S = this.S;
+
+      S(this.scope)
+        .off('.topbar')
+        .on('click.fndtn.topbar', '[' + this.attr_name() + '] .toggle-topbar', function (e) {
+          e.preventDefault();
+          self.toggle(this);
+        })
+        .on('click.fndtn.topbar contextmenu.fndtn.topbar', '.top-bar .top-bar-section li a[href^="#"],[' + this.attr_name() + '] .top-bar-section li a[href^="#"]', function (e) {
+          var li = $(this).closest('li'),
+              topbar = li.closest('[' + self.attr_name() + ']'),
+              settings = topbar.data(self.attr_name(true) + '-init');
+
+          if (settings.dropdown_autoclose && settings.is_hover) {
+            var hoverLi = $(this).closest('.hover');
+            hoverLi.removeClass('hover');
+          }
+          if (self.breakpoint() && !li.hasClass('back') && !li.hasClass('has-dropdown')) {
+            self.toggle();
+          }
+
+        })
+        .on('click.fndtn.topbar', '[' + this.attr_name() + '] li.has-dropdown', function (e) {
+          var li = S(this),
+              target = S(e.target),
+              topbar = li.closest('[' + self.attr_name() + ']'),
+              settings = topbar.data(self.attr_name(true) + '-init');
+
+          if (target.data('revealId')) {
+            self.toggle();
+            return;
+          }
+
+          if (self.breakpoint()) {
+            return;
+          }
+
+          if (settings.is_hover && !Modernizr.touch) {
+            return;
+          }
+
+          e.stopImmediatePropagation();
+
+          if (li.hasClass('hover')) {
+            li
+              .removeClass('hover')
+              .find('li')
+              .removeClass('hover');
+
+            li.parents('li.hover')
+              .removeClass('hover');
+          } else {
+            li.addClass('hover');
+
+            $(li).siblings().removeClass('hover');
+
+            if (target[0].nodeName === 'A' && target.parent().hasClass('has-dropdown')) {
+              e.preventDefault();
+            }
+          }
+        })
+        .on('click.fndtn.topbar', '[' + this.attr_name() + '] .has-dropdown>a', function (e) {
+          if (self.breakpoint()) {
+
+            e.preventDefault();
+
+            var $this = S(this),
+                topbar = $this.closest('[' + self.attr_name() + ']'),
+                section = topbar.find('section, .top-bar-section'),
+                dropdownHeight = $this.next('.dropdown').outerHeight(),
+                $selectedLi = $this.closest('li');
+
+            topbar.data('index', topbar.data('index') + 1);
+            $selectedLi.addClass('moved');
+
+            if (!self.rtl) {
+              section.css({left : -(100 * topbar.data('index')) + '%'});
+              section.find('>.name').css({left : 100 * topbar.data('index') + '%'});
+            } else {
+              section.css({right : -(100 * topbar.data('index')) + '%'});
+              section.find('>.name').css({right : 100 * topbar.data('index') + '%'});
+            }
+
+            topbar.css('height', $this.siblings('ul').outerHeight(true) + topbar.data('height'));
+          }
+        });
+
+      S(window).off('.topbar').on('resize.fndtn.topbar', self.throttle(function () {
+          self.resize.call(self);
+      }, 50)).trigger('resize.fndtn.topbar').load(function () {
+          // Ensure that the offset is calculated after all of the pages resources have loaded
+          S(this).trigger('resize.fndtn.topbar');
+      });
+
+      S('body').off('.topbar').on('click.fndtn.topbar', function (e) {
+        var parent = S(e.target).closest('li').closest('li.hover');
+
+        if (parent.length > 0) {
+          return;
+        }
+
+        S('[' + self.attr_name() + '] li.hover').removeClass('hover');
+      });
+
+      // Go up a level on Click
+      S(this.scope).on('click.fndtn.topbar', '[' + this.attr_name() + '] .has-dropdown .back', function (e) {
+        e.preventDefault();
+
+        var $this = S(this),
+            topbar = $this.closest('[' + self.attr_name() + ']'),
+            section = topbar.find('section, .top-bar-section'),
+            settings = topbar.data(self.attr_name(true) + '-init'),
+            $movedLi = $this.closest('li.moved'),
+            $previousLevelUl = $movedLi.parent();
+
+        topbar.data('index', topbar.data('index') - 1);
+
+        if (!self.rtl) {
+          section.css({left : -(100 * topbar.data('index')) + '%'});
+          section.find('>.name').css({left : 100 * topbar.data('index') + '%'});
+        } else {
+          section.css({right : -(100 * topbar.data('index')) + '%'});
+          section.find('>.name').css({right : 100 * topbar.data('index') + '%'});
+        }
+
+        if (topbar.data('index') === 0) {
+          topbar.css('height', '');
+        } else {
+          topbar.css('height', $previousLevelUl.outerHeight(true) + topbar.data('height'));
+        }
+
+        setTimeout(function () {
+          $movedLi.removeClass('moved');
+        }, 300);
+      });
+
+      // Show dropdown menus when their items are focused
+      S(this.scope).find('.dropdown a')
+        .focus(function () {
+          $(this).parents('.has-dropdown').addClass('hover');
+        })
+        .blur(function () {
+          $(this).parents('.has-dropdown').removeClass('hover');
+        });
+    },
+
+    resize : function () {
+      var self = this;
+      self.S('[' + this.attr_name() + ']').each(function () {
+        var topbar = self.S(this),
+            settings = topbar.data(self.attr_name(true) + '-init');
+
+        var stickyContainer = topbar.parent('.' + self.settings.sticky_class);
+        var stickyOffset;
+
+        if (!self.breakpoint()) {
+          var doToggle = topbar.hasClass('expanded');
+          topbar
+            .css('height', '')
+            .removeClass('expanded')
+            .find('li')
+            .removeClass('hover');
+
+            if (doToggle) {
+              self.toggle(topbar);
+            }
+        }
+
+        if (self.is_sticky(topbar, stickyContainer, settings)) {
+          if (stickyContainer.hasClass('fixed')) {
+            // Remove the fixed to allow for correct calculation of the offset.
+            stickyContainer.removeClass('fixed');
+
+            stickyOffset = stickyContainer.offset().top;
+            if (self.S(document.body).hasClass('f-topbar-fixed')) {
+              stickyOffset -= topbar.data('height');
+            }
+
+            topbar.data('stickyoffset', stickyOffset);
+            stickyContainer.addClass('fixed');
+          } else {
+            stickyOffset = stickyContainer.offset().top;
+            topbar.data('stickyoffset', stickyOffset);
+          }
+        }
+
+      });
+    },
+
+    breakpoint : function () {
+      return !matchMedia(Foundation.media_queries['topbar']).matches;
+    },
+
+    small : function () {
+      return matchMedia(Foundation.media_queries['small']).matches;
+    },
+
+    medium : function () {
+      return matchMedia(Foundation.media_queries['medium']).matches;
+    },
+
+    large : function () {
+      return matchMedia(Foundation.media_queries['large']).matches;
+    },
+
+    assemble : function (topbar) {
+      var self = this,
+          settings = topbar.data(this.attr_name(true) + '-init'),
+          section = self.S('section, .top-bar-section', topbar);
+
+      // Pull element out of the DOM for manipulation
+      section.detach();
+
+      self.S('.has-dropdown>a', section).each(function () {
+        var $link = self.S(this),
+            $dropdown = $link.siblings('.dropdown'),
+            url = $link.attr('href'),
+            $titleLi;
+
+        if (!$dropdown.find('.title.back').length) {
+
+          if (settings.mobile_show_parent_link == true && url) {
+            $titleLi = $('<li class="title back js-generated"><h5><a href="javascript:void(0)"></a></h5></li><li class="parent-link hide-for-medium-up"><a class="parent-link js-generated" href="' + url + '">' + $link.html() +'</a></li>');
+          } else {
+            $titleLi = $('<li class="title back js-generated"><h5><a href="javascript:void(0)"></a></h5>');
+          }
+
+          // Copy link to subnav
+          if (settings.custom_back_text == true) {
+            $('h5>a', $titleLi).html(settings.back_text);
+          } else {
+            $('h5>a', $titleLi).html('&laquo; ' + $link.html());
+          }
+          $dropdown.prepend($titleLi);
+        }
+      });
+
+      // Put element back in the DOM
+      section.appendTo(topbar);
+
+      // check for sticky
+      this.sticky();
+
+      this.assembled(topbar);
+    },
+
+    assembled : function (topbar) {
+      topbar.data(this.attr_name(true), $.extend({}, topbar.data(this.attr_name(true)), {assembled : true}));
+    },
+
+    height : function (ul) {
+      var total = 0,
+          self = this;
+
+      $('> li', ul).each(function () {
+        total += self.S(this).outerHeight(true);
+      });
+
+      return total;
+    },
+
+    sticky : function () {
+      var self = this;
+
+      this.S(window).on('scroll', function () {
+        self.update_sticky_positioning();
+      });
+    },
+
+    update_sticky_positioning : function () {
+      var klass = '.' + this.settings.sticky_class,
+          $window = this.S(window),
+          self = this;
+
+      if (self.settings.sticky_topbar && self.is_sticky(this.settings.sticky_topbar,this.settings.sticky_topbar.parent(), this.settings)) {
+        var distance = this.settings.sticky_topbar.data('stickyoffset') + this.settings.start_offset;
+        if (!self.S(klass).hasClass('expanded')) {
+          if ($window.scrollTop() > (distance)) {
+            if (!self.S(klass).hasClass('fixed')) {
+              self.S(klass).addClass('fixed');
+              self.S('body').addClass('f-topbar-fixed');
+            }
+          } else if ($window.scrollTop() <= distance) {
+            if (self.S(klass).hasClass('fixed')) {
+              self.S(klass).removeClass('fixed');
+              self.S('body').removeClass('f-topbar-fixed');
+            }
+          }
+        }
+      }
+    },
+
+    off : function () {
+      this.S(this.scope).off('.fndtn.topbar');
+      this.S(window).off('.fndtn.topbar');
+    },
+
+    reflow : function () {}
+  };
+}(jQuery, window, window.document));
diff --git a/js/foundation/js/vendor/fastclick.js b/js/foundation/js/vendor/fastclick.js
new file mode 100644 (file)
index 0000000..add0130
--- /dev/null
@@ -0,0 +1,8 @@
+!function(){"use strict";/**
+        * @preserve FastClick: polyfill to remove click delays on browsers with touch UIs.
+        *
+        * @codingstandard ftlabs-jsv2
+        * @copyright The Financial Times Limited [All Rights Reserved]
+        * @license MIT License (see LICENSE.txt)
+        */
+function a(b,d){function e(a,b){return function(){return a.apply(b,arguments)}}var f;if(d=d||{},this.trackingClick=!1,this.trackingClickStart=0,this.targetElement=null,this.touchStartX=0,this.touchStartY=0,this.lastTouchIdentifier=0,this.touchBoundary=d.touchBoundary||10,this.layer=b,this.tapDelay=d.tapDelay||200,this.tapTimeout=d.tapTimeout||700,!a.notNeeded(b)){for(var g=["onMouse","onClick","onTouchStart","onTouchMove","onTouchEnd","onTouchCancel"],h=this,i=0,j=g.length;j>i;i++)h[g[i]]=e(h[g[i]],h);c&&(b.addEventListener("mouseover",this.onMouse,!0),b.addEventListener("mousedown",this.onMouse,!0),b.addEventListener("mouseup",this.onMouse,!0)),b.addEventListener("click",this.onClick,!0),b.addEventListener("touchstart",this.onTouchStart,!1),b.addEventListener("touchmove",this.onTouchMove,!1),b.addEventListener("touchend",this.onTouchEnd,!1),b.addEventListener("touchcancel",this.onTouchCancel,!1),Event.prototype.stopImmediatePropagation||(b.removeEventListener=function(a,c,d){var e=Node.prototype.removeEventListener;"click"===a?e.call(b,a,c.hijacked||c,d):e.call(b,a,c,d)},b.addEventListener=function(a,c,d){var e=Node.prototype.addEventListener;"click"===a?e.call(b,a,c.hijacked||(c.hijacked=function(a){a.propagationStopped||c(a)}),d):e.call(b,a,c,d)}),"function"==typeof b.onclick&&(f=b.onclick,b.addEventListener("click",function(a){f(a)},!1),b.onclick=null)}}var b=navigator.userAgent.indexOf("Windows Phone")>=0,c=navigator.userAgent.indexOf("Android")>0&&!b,d=/iP(ad|hone|od)/.test(navigator.userAgent)&&!b,e=d&&/OS 4_\d(_\d)?/.test(navigator.userAgent),f=d&&/OS [6-7]_\d/.test(navigator.userAgent),g=navigator.userAgent.indexOf("BB10")>0;a.prototype.needsClick=function(a){switch(a.nodeName.toLowerCase()){case"button":case"select":case"textarea":if(a.disabled)return!0;break;case"input":if(d&&"file"===a.type||a.disabled)return!0;break;case"label":case"iframe":case"video":return!0}return/\bneedsclick\b/.test(a.className)},a.prototype.needsFocus=function(a){switch(a.nodeName.toLowerCase()){case"textarea":return!0;case"select":return!c;case"input":switch(a.type){case"button":case"checkbox":case"file":case"image":case"radio":case"submit":return!1}return!a.disabled&&!a.readOnly;default:return/\bneedsfocus\b/.test(a.className)}},a.prototype.sendClick=function(a,b){var c,d;document.activeElement&&document.activeElement!==a&&document.activeElement.blur(),d=b.changedTouches[0],c=document.createEvent("MouseEvents"),c.initMouseEvent(this.determineEventType(a),!0,!0,window,1,d.screenX,d.screenY,d.clientX,d.clientY,!1,!1,!1,!1,0,null),c.forwardedTouchEvent=!0,a.dispatchEvent(c)},a.prototype.determineEventType=function(a){return c&&"select"===a.tagName.toLowerCase()?"mousedown":"click"},a.prototype.focus=function(a){var b;d&&a.setSelectionRange&&0!==a.type.indexOf("date")&&"time"!==a.type&&"month"!==a.type?(b=a.value.length,a.setSelectionRange(b,b)):a.focus()},a.prototype.updateScrollParent=function(a){var b,c;if(b=a.fastClickScrollParent,!b||!b.contains(a)){c=a;do{if(c.scrollHeight>c.offsetHeight){b=c,a.fastClickScrollParent=c;break}c=c.parentElement}while(c)}b&&(b.fastClickLastScrollTop=b.scrollTop)},a.prototype.getTargetElementFromEventTarget=function(a){return a.nodeType===Node.TEXT_NODE?a.parentNode:a},a.prototype.onTouchStart=function(a){var b,c,f;if(a.targetTouches.length>1)return!0;if(b=this.getTargetElementFromEventTarget(a.target),c=a.targetTouches[0],d){if(f=window.getSelection(),f.rangeCount&&!f.isCollapsed)return!0;if(!e){if(c.identifier&&c.identifier===this.lastTouchIdentifier)return a.preventDefault(),!1;this.lastTouchIdentifier=c.identifier,this.updateScrollParent(b)}}return this.trackingClick=!0,this.trackingClickStart=a.timeStamp,this.targetElement=b,this.touchStartX=c.pageX,this.touchStartY=c.pageY,a.timeStamp-this.lastClickTime<this.tapDelay&&a.preventDefault(),!0},a.prototype.touchHasMoved=function(a){var b=a.changedTouches[0],c=this.touchBoundary;return Math.abs(b.pageX-this.touchStartX)>c||Math.abs(b.pageY-this.touchStartY)>c?!0:!1},a.prototype.onTouchMove=function(a){return this.trackingClick?((this.targetElement!==this.getTargetElementFromEventTarget(a.target)||this.touchHasMoved(a))&&(this.trackingClick=!1,this.targetElement=null),!0):!0},a.prototype.findControl=function(a){return void 0!==a.control?a.control:a.htmlFor?document.getElementById(a.htmlFor):a.querySelector("button, input:not([type=hidden]), keygen, meter, output, progress, select, textarea")},a.prototype.onTouchEnd=function(a){var b,g,h,i,j,k=this.targetElement;if(!this.trackingClick)return!0;if(a.timeStamp-this.lastClickTime<this.tapDelay)return this.cancelNextClick=!0,!0;if(a.timeStamp-this.trackingClickStart>this.tapTimeout)return!0;if(this.cancelNextClick=!1,this.lastClickTime=a.timeStamp,g=this.trackingClickStart,this.trackingClick=!1,this.trackingClickStart=0,f&&(j=a.changedTouches[0],k=document.elementFromPoint(j.pageX-window.pageXOffset,j.pageY-window.pageYOffset)||k,k.fastClickScrollParent=this.targetElement.fastClickScrollParent),h=k.tagName.toLowerCase(),"label"===h){if(b=this.findControl(k)){if(this.focus(k),c)return!1;k=b}}else if(this.needsFocus(k))return a.timeStamp-g>100||d&&window.top!==window&&"input"===h?(this.targetElement=null,!1):(this.focus(k),this.sendClick(k,a),d&&"select"===h||(this.targetElement=null,a.preventDefault()),!1);return d&&!e&&(i=k.fastClickScrollParent,i&&i.fastClickLastScrollTop!==i.scrollTop)?!0:(this.needsClick(k)||(a.preventDefault(),this.sendClick(k,a)),!1)},a.prototype.onTouchCancel=function(){this.trackingClick=!1,this.targetElement=null},a.prototype.onMouse=function(a){return this.targetElement?a.forwardedTouchEvent?!0:a.cancelable&&(!this.needsClick(this.targetElement)||this.cancelNextClick)?(a.stopImmediatePropagation?a.stopImmediatePropagation():a.propagationStopped=!0,a.stopPropagation(),a.preventDefault(),!1):!0:!0},a.prototype.onClick=function(a){var b;return this.trackingClick?(this.targetElement=null,this.trackingClick=!1,!0):"submit"===a.target.type&&0===a.detail?!0:(b=this.onMouse(a),b||(this.targetElement=null),b)},a.prototype.destroy=function(){var a=this.layer;c&&(a.removeEventListener("mouseover",this.onMouse,!0),a.removeEventListener("mousedown",this.onMouse,!0),a.removeEventListener("mouseup",this.onMouse,!0)),a.removeEventListener("click",this.onClick,!0),a.removeEventListener("touchstart",this.onTouchStart,!1),a.removeEventListener("touchmove",this.onTouchMove,!1),a.removeEventListener("touchend",this.onTouchEnd,!1),a.removeEventListener("touchcancel",this.onTouchCancel,!1)},a.notNeeded=function(a){var b,d,e,f;if("undefined"==typeof window.ontouchstart)return!0;if(d=+(/Chrome\/([0-9]+)/.exec(navigator.userAgent)||[,0])[1]){if(!c)return!0;if(b=document.querySelector("meta[name=viewport]")){if(-1!==b.content.indexOf("user-scalable=no"))return!0;if(d>31&&document.documentElement.scrollWidth<=window.outerWidth)return!0}}if(g&&(e=navigator.userAgent.match(/Version\/([0-9]*)\.([0-9]*)/),e[1]>=10&&e[2]>=3&&(b=document.querySelector("meta[name=viewport]")))){if(-1!==b.content.indexOf("user-scalable=no"))return!0;if(document.documentElement.scrollWidth<=window.outerWidth)return!0}return"none"===a.style.msTouchAction||"manipulation"===a.style.touchAction?!0:(f=+(/Firefox\/([0-9]+)/.exec(navigator.userAgent)||[,0])[1],f>=27&&(b=document.querySelector("meta[name=viewport]"),b&&(-1!==b.content.indexOf("user-scalable=no")||document.documentElement.scrollWidth<=window.outerWidth))?!0:"none"===a.style.touchAction||"manipulation"===a.style.touchAction?!0:!1)},a.attach=function(b,c){return new a(b,c)},"function"==typeof define&&"object"==typeof define.amd&&define.amd?define(function(){return a}):"undefined"!=typeof module&&module.exports?(module.exports=a.attach,module.exports.FastClick=a):window.FastClick=a}();
\ No newline at end of file
diff --git a/js/foundation/js/vendor/jquery.cookie.js b/js/foundation/js/vendor/jquery.cookie.js
new file mode 100644 (file)
index 0000000..5be813a
--- /dev/null
@@ -0,0 +1,8 @@
+/*!
+ * jQuery Cookie Plugin v1.4.1
+ * https://github.com/carhartl/jquery-cookie
+ *
+ * Copyright 2013 Klaus Hartl
+ * Released under the MIT license
+ */
+!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a("object"==typeof exports?require("jquery"):jQuery)}(function(a){function b(a){return h.raw?a:encodeURIComponent(a)}function c(a){return h.raw?a:decodeURIComponent(a)}function d(a){return b(h.json?JSON.stringify(a):String(a))}function e(a){0===a.indexOf('"')&&(a=a.slice(1,-1).replace(/\\"/g,'"').replace(/\\\\/g,"\\"));try{return a=decodeURIComponent(a.replace(g," ")),h.json?JSON.parse(a):a}catch(b){}}function f(b,c){var d=h.raw?b:e(b);return a.isFunction(c)?c(d):d}var g=/\+/g,h=a.cookie=function(e,g,i){if(void 0!==g&&!a.isFunction(g)){if(i=a.extend({},h.defaults,i),"number"==typeof i.expires){var j=i.expires,k=i.expires=new Date;k.setTime(+k+864e5*j)}return document.cookie=[b(e),"=",d(g),i.expires?"; expires="+i.expires.toUTCString():"",i.path?"; path="+i.path:"",i.domain?"; domain="+i.domain:"",i.secure?"; secure":""].join("")}for(var l=e?void 0:{},m=document.cookie?document.cookie.split("; "):[],n=0,o=m.length;o>n;n++){var p=m[n].split("="),q=c(p.shift()),r=p.join("=");if(e&&e===q){l=f(r,g);break}e||void 0===(r=f(r))||(l[q]=r)}return l};h.defaults={},a.removeCookie=function(b,c){return void 0===a.cookie(b)?!1:(a.cookie(b,"",a.extend({},c,{expires:-1})),!a.cookie(b))}});
\ No newline at end of file
diff --git a/js/foundation/js/vendor/jquery.js b/js/foundation/js/vendor/jquery.js
new file mode 100644 (file)
index 0000000..34b90c8
--- /dev/null
@@ -0,0 +1,26 @@
+/*!
+ * jQuery JavaScript Library v2.1.4
+ * http://jquery.com/
+ *
+ * Includes Sizzle.js
+ * http://sizzlejs.com/
+ *
+ * Copyright 2005, 2014 jQuery Foundation, Inc. and other contributors
+ * Released under the MIT license
+ * http://jquery.org/license
+ *
+ * Date: 2015-04-28T16:01Z
+ */
+!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){function c(a){var b="length"in a&&a.length,c=_.type(a);return"function"===c||_.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}function d(a,b,c){if(_.isFunction(b))return _.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return _.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(ha.test(b))return _.filter(b,a,c);b=_.filter(b,a)}return _.grep(a,function(a){return U.call(b,a)>=0!==c})}function e(a,b){for(;(a=a[b])&&1!==a.nodeType;);return a}function f(a){var b=oa[a]={};return _.each(a.match(na)||[],function(a,c){b[c]=!0}),b}function g(){Z.removeEventListener("DOMContentLoaded",g,!1),a.removeEventListener("load",g,!1),_.ready()}function h(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=_.expando+h.uid++}function i(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(ua,"-$1").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:ta.test(c)?_.parseJSON(c):c}catch(e){}sa.set(a,b,c)}else c=void 0;return c}function j(){return!0}function k(){return!1}function l(){try{return Z.activeElement}catch(a){}}function m(a,b){return _.nodeName(a,"table")&&_.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function n(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function o(a){var b=Ka.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function p(a,b){for(var c=0,d=a.length;d>c;c++)ra.set(a[c],"globalEval",!b||ra.get(b[c],"globalEval"))}function q(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(ra.hasData(a)&&(f=ra.access(a),g=ra.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;d>c;c++)_.event.add(b,e,j[e][c])}sa.hasData(a)&&(h=sa.access(a),i=_.extend({},h),sa.set(b,i))}}function r(a,b){var c=a.getElementsByTagName?a.getElementsByTagName(b||"*"):a.querySelectorAll?a.querySelectorAll(b||"*"):[];return void 0===b||b&&_.nodeName(a,b)?_.merge([a],c):c}function s(a,b){var c=b.nodeName.toLowerCase();"input"===c&&ya.test(a.type)?b.checked=a.checked:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}function t(b,c){var d,e=_(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:_.css(e[0],"display");return e.detach(),f}function u(a){var b=Z,c=Oa[a];return c||(c=t(a,b),"none"!==c&&c||(Na=(Na||_("<iframe frameborder='0' width='0' height='0'/>")).appendTo(b.documentElement),b=Na[0].contentDocument,b.write(),b.close(),c=t(a,b),Na.detach()),Oa[a]=c),c}function v(a,b,c){var d,e,f,g,h=a.style;return c=c||Ra(a),c&&(g=c.getPropertyValue(b)||c[b]),c&&(""!==g||_.contains(a.ownerDocument,a)||(g=_.style(a,b)),Qa.test(g)&&Pa.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0!==g?g+"":g}function w(a,b){return{get:function(){return a()?void delete this.get:(this.get=b).apply(this,arguments)}}}function x(a,b){if(b in a)return b;for(var c=b[0].toUpperCase()+b.slice(1),d=b,e=Xa.length;e--;)if(b=Xa[e]+c,b in a)return b;return d}function y(a,b,c){var d=Ta.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function z(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;4>f;f+=2)"margin"===c&&(g+=_.css(a,c+wa[f],!0,e)),d?("content"===c&&(g-=_.css(a,"padding"+wa[f],!0,e)),"margin"!==c&&(g-=_.css(a,"border"+wa[f]+"Width",!0,e))):(g+=_.css(a,"padding"+wa[f],!0,e),"padding"!==c&&(g+=_.css(a,"border"+wa[f]+"Width",!0,e)));return g}function A(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=Ra(a),g="border-box"===_.css(a,"boxSizing",!1,f);if(0>=e||null==e){if(e=v(a,b,f),(0>e||null==e)&&(e=a.style[b]),Qa.test(e))return e;d=g&&(Y.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||0}return e+z(a,b,c||(g?"border":"content"),d,f)+"px"}function B(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=ra.get(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&xa(d)&&(f[g]=ra.access(d,"olddisplay",u(d.nodeName)))):(e=xa(d),"none"===c&&e||ra.set(d,"olddisplay",e?c:_.css(d,"display"))));for(g=0;h>g;g++)d=a[g],d.style&&(b&&"none"!==d.style.display&&""!==d.style.display||(d.style.display=b?f[g]||"":"none"));return a}function C(a,b,c,d,e){return new C.prototype.init(a,b,c,d,e)}function D(){return setTimeout(function(){Ya=void 0}),Ya=_.now()}function E(a,b){var c,d=0,e={height:a};for(b=b?1:0;4>d;d+=2-b)c=wa[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function F(a,b,c){for(var d,e=(cb[b]||[]).concat(cb["*"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function G(a,b,c){var d,e,f,g,h,i,j,k,l=this,m={},n=a.style,o=a.nodeType&&xa(a),p=ra.get(a,"fxshow");c.queue||(h=_._queueHooks(a,"fx"),null==h.unqueued&&(h.unqueued=0,i=h.empty.fire,h.empty.fire=function(){h.unqueued||i()}),h.unqueued++,l.always(function(){l.always(function(){h.unqueued--,_.queue(a,"fx").length||h.empty.fire()})})),1===a.nodeType&&("height"in b||"width"in b)&&(c.overflow=[n.overflow,n.overflowX,n.overflowY],j=_.css(a,"display"),k="none"===j?ra.get(a,"olddisplay")||u(a.nodeName):j,"inline"===k&&"none"===_.css(a,"float")&&(n.display="inline-block")),c.overflow&&(n.overflow="hidden",l.always(function(){n.overflow=c.overflow[0],n.overflowX=c.overflow[1],n.overflowY=c.overflow[2]}));for(d in b)if(e=b[d],$a.exec(e)){if(delete b[d],f=f||"toggle"===e,e===(o?"hide":"show")){if("show"!==e||!p||void 0===p[d])continue;o=!0}m[d]=p&&p[d]||_.style(a,d)}else j=void 0;if(_.isEmptyObject(m))"inline"===("none"===j?u(a.nodeName):j)&&(n.display=j);else{p?"hidden"in p&&(o=p.hidden):p=ra.access(a,"fxshow",{}),f&&(p.hidden=!o),o?_(a).show():l.done(function(){_(a).hide()}),l.done(function(){var b;ra.remove(a,"fxshow");for(b in m)_.style(a,b,m[b])});for(d in m)g=F(o?p[d]:0,d,l),d in p||(p[d]=g.start,o&&(g.end=g.start,g.start="width"===d||"height"===d?1:0))}}function H(a,b){var c,d,e,f,g;for(c in a)if(d=_.camelCase(c),e=b[d],f=a[c],_.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=_.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function I(a,b,c){var d,e,f=0,g=bb.length,h=_.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=Ya||D(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;i>g;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),1>f&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:_.extend({},b),opts:_.extend(!0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:Ya||D(),duration:c.duration,tweens:[],createTween:function(b,c){var d=_.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;d>c;c++)j.tweens[c].run(1);return b?h.resolveWith(a,[j,b]):h.rejectWith(a,[j,b]),this}}),k=j.props;for(H(k,j.opts.specialEasing);g>f;f++)if(d=bb[f].call(j,a,k,j.opts))return d;return _.map(k,F,j),_.isFunction(j.opts.start)&&j.opts.start.call(a,j),_.fx.timer(_.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}function J(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(na)||[];if(_.isFunction(c))for(;d=f[e++];)"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function K(a,b,c,d){function e(h){var i;return f[h]=!0,_.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||g||f[j]?g?!(i=j):void 0:(b.dataTypes.unshift(j),e(j),!1)}),i}var f={},g=a===tb;return e(b.dataTypes[0])||!f["*"]&&e("*")}function L(a,b){var c,d,e=_.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&_.extend(!0,a,d),a}function M(a,b,c){for(var d,e,f,g,h=a.contents,i=a.dataTypes;"*"===i[0];)i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}return f?(f!==i[0]&&i.unshift(f),c[f]):void 0}function N(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];for(f=k.shift();f;)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}function O(a,b,c,d){var e;if(_.isArray(b))_.each(b,function(b,e){c||yb.test(a)?d(a,e):O(a+"["+("object"==typeof e?b:"")+"]",e,c,d)});else if(c||"object"!==_.type(b))d(a,b);else for(e in b)O(a+"["+e+"]",b[e],c,d)}function P(a){return _.isWindow(a)?a:9===a.nodeType&&a.defaultView}var Q=[],R=Q.slice,S=Q.concat,T=Q.push,U=Q.indexOf,V={},W=V.toString,X=V.hasOwnProperty,Y={},Z=a.document,$="2.1.4",_=function(a,b){return new _.fn.init(a,b)},aa=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,ba=/^-ms-/,ca=/-([\da-z])/gi,da=function(a,b){return b.toUpperCase()};_.fn=_.prototype={jquery:$,constructor:_,selector:"",length:0,toArray:function(){return R.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:R.call(this)},pushStack:function(a){var b=_.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return _.each(this,a,b)},map:function(a){return this.pushStack(_.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(R.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:T,sort:Q.sort,splice:Q.splice},_.extend=_.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||_.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(_.isPlainObject(d)||(e=_.isArray(d)))?(e?(e=!1,f=c&&_.isArray(c)?c:[]):f=c&&_.isPlainObject(c)?c:{},g[b]=_.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},_.extend({expando:"jQuery"+($+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===_.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){return!_.isArray(a)&&a-parseFloat(a)+1>=0},isPlainObject:function(a){return"object"!==_.type(a)||a.nodeType||_.isWindow(a)?!1:a.constructor&&!X.call(a.constructor.prototype,"isPrototypeOf")?!1:!0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?V[W.call(a)]||"object":typeof a},globalEval:function(a){var b,c=eval;a=_.trim(a),a&&(1===a.indexOf("use strict")?(b=Z.createElement("script"),b.text=a,Z.head.appendChild(b).parentNode.removeChild(b)):c(a))},camelCase:function(a){return a.replace(ba,"ms-").replace(ca,da)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,d){var e,f=0,g=a.length,h=c(a);if(d){if(h)for(;g>f&&(e=b.apply(a[f],d),e!==!1);f++);else for(f in a)if(e=b.apply(a[f],d),e===!1)break}else if(h)for(;g>f&&(e=b.call(a[f],f,a[f]),e!==!1);f++);else for(f in a)if(e=b.call(a[f],f,a[f]),e===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(aa,"")},makeArray:function(a,b){var d=b||[];return null!=a&&(c(Object(a))?_.merge(d,"string"==typeof a?[a]:a):T.call(d,a)),d},inArray:function(a,b,c){return null==b?-1:U.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;c>d;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,d){var e,f=0,g=a.length,h=c(a),i=[];if(h)for(;g>f;f++)e=b(a[f],f,d),null!=e&&i.push(e);else for(f in a)e=b(a[f],f,d),null!=e&&i.push(e);return S.apply([],i)},guid:1,proxy:function(a,b){var c,d,e;return"string"==typeof b&&(c=a[b],b=a,a=c),_.isFunction(a)?(d=R.call(arguments,2),e=function(){return a.apply(b||this,d.concat(R.call(arguments)))},e.guid=a.guid=a.guid||_.guid++,e):void 0},now:Date.now,support:Y}),_.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){V["[object "+b+"]"]=b.toLowerCase()});var ea=/*!
+ * Sizzle CSS Selector Engine v2.2.0-pre
+ * http://sizzlejs.com/
+ *
+ * Copyright 2008, 2014 jQuery Foundation, Inc. and other contributors
+ * Released under the MIT license
+ * http://jquery.org/license
+ *
+ * Date: 2014-12-16
+ */
+function(a){function b(a,b,c,d){var e,f,g,h,i,j,l,n,o,p;if((b?b.ownerDocument||b:O)!==G&&F(b),b=b||G,c=c||[],h=b.nodeType,"string"!=typeof a||!a||1!==h&&9!==h&&11!==h)return c;if(!d&&I){if(11!==h&&(e=sa.exec(a)))if(g=e[1]){if(9===h){if(f=b.getElementById(g),!f||!f.parentNode)return c;if(f.id===g)return c.push(f),c}else if(b.ownerDocument&&(f=b.ownerDocument.getElementById(g))&&M(b,f)&&f.id===g)return c.push(f),c}else{if(e[2])return $.apply(c,b.getElementsByTagName(a)),c;if((g=e[3])&&v.getElementsByClassName)return $.apply(c,b.getElementsByClassName(g)),c}if(v.qsa&&(!J||!J.test(a))){if(n=l=N,o=b,p=1!==h&&a,1===h&&"object"!==b.nodeName.toLowerCase()){for(j=z(a),(l=b.getAttribute("id"))?n=l.replace(ua,"\\$&"):b.setAttribute("id",n),n="[id='"+n+"'] ",i=j.length;i--;)j[i]=n+m(j[i]);o=ta.test(a)&&k(b.parentNode)||b,p=j.join(",")}if(p)try{return $.apply(c,o.querySelectorAll(p)),c}catch(q){}finally{l||b.removeAttribute("id")}}}return B(a.replace(ia,"$1"),b,c,d)}function c(){function a(c,d){return b.push(c+" ")>w.cacheLength&&delete a[b.shift()],a[c+" "]=d}var b=[];return a}function d(a){return a[N]=!0,a}function e(a){var b=G.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function f(a,b){for(var c=a.split("|"),d=a.length;d--;)w.attrHandle[c[d]]=b}function g(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||V)-(~a.sourceIndex||V);if(d)return d;if(c)for(;c=c.nextSibling;)if(c===b)return-1;return a?1:-1}function h(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function i(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function j(a){return d(function(b){return b=+b,d(function(c,d){for(var e,f=a([],c.length,b),g=f.length;g--;)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function k(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}function l(){}function m(a){for(var b=0,c=a.length,d="";c>b;b++)d+=a[b].value;return d}function n(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=Q++;return b.first?function(b,c,f){for(;b=b[d];)if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[P,f];if(g){for(;b=b[d];)if((1===b.nodeType||e)&&a(b,c,g))return!0}else for(;b=b[d];)if(1===b.nodeType||e){if(i=b[N]||(b[N]={}),(h=i[d])&&h[0]===P&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function o(a){return a.length>1?function(b,c,d){for(var e=a.length;e--;)if(!a[e](b,c,d))return!1;return!0}:a[0]}function p(a,c,d){for(var e=0,f=c.length;f>e;e++)b(a,c[e],d);return d}function q(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function r(a,b,c,e,f,g){return e&&!e[N]&&(e=r(e)),f&&!f[N]&&(f=r(f,g)),d(function(d,g,h,i){var j,k,l,m=[],n=[],o=g.length,r=d||p(b||"*",h.nodeType?[h]:h,[]),s=!a||!d&&b?r:q(r,m,a,h,i),t=c?f||(d?a:o||e)?[]:g:s;if(c&&c(s,t,h,i),e)for(j=q(t,n),e(j,[],h,i),k=j.length;k--;)(l=j[k])&&(t[n[k]]=!(s[n[k]]=l));if(d){if(f||a){if(f){for(j=[],k=t.length;k--;)(l=t[k])&&j.push(s[k]=l);f(null,t=[],j,i)}for(k=t.length;k--;)(l=t[k])&&(j=f?aa(d,l):m[k])>-1&&(d[j]=!(g[j]=l))}}else t=q(t===g?t.splice(o,t.length):t),f?f(null,g,t,i):$.apply(g,t)})}function s(a){for(var b,c,d,e=a.length,f=w.relative[a[0].type],g=f||w.relative[" "],h=f?1:0,i=n(function(a){return a===b},g,!0),j=n(function(a){return aa(b,a)>-1},g,!0),k=[function(a,c,d){var e=!f&&(d||c!==C)||((b=c).nodeType?i(a,c,d):j(a,c,d));return b=null,e}];e>h;h++)if(c=w.relative[a[h].type])k=[n(o(k),c)];else{if(c=w.filter[a[h].type].apply(null,a[h].matches),c[N]){for(d=++h;e>d&&!w.relative[a[d].type];d++);return r(h>1&&o(k),h>1&&m(a.slice(0,h-1).concat({value:" "===a[h-2].type?"*":""})).replace(ia,"$1"),c,d>h&&s(a.slice(h,d)),e>d&&s(a=a.slice(d)),e>d&&m(a))}k.push(c)}return o(k)}function t(a,c){var e=c.length>0,f=a.length>0,g=function(d,g,h,i,j){var k,l,m,n=0,o="0",p=d&&[],r=[],s=C,t=d||f&&w.find.TAG("*",j),u=P+=null==s?1:Math.random()||.1,v=t.length;for(j&&(C=g!==G&&g);o!==v&&null!=(k=t[o]);o++){if(f&&k){for(l=0;m=a[l++];)if(m(k,g,h)){i.push(k);break}j&&(P=u)}e&&((k=!m&&k)&&n--,d&&p.push(k))}if(n+=o,e&&o!==n){for(l=0;m=c[l++];)m(p,r,g,h);if(d){if(n>0)for(;o--;)p[o]||r[o]||(r[o]=Y.call(i));r=q(r)}$.apply(i,r),j&&!d&&r.length>0&&n+c.length>1&&b.uniqueSort(i)}return j&&(P=u,C=s),p};return e?d(g):g}var u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N="sizzle"+1*new Date,O=a.document,P=0,Q=0,R=c(),S=c(),T=c(),U=function(a,b){return a===b&&(E=!0),0},V=1<<31,W={}.hasOwnProperty,X=[],Y=X.pop,Z=X.push,$=X.push,_=X.slice,aa=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},ba="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",ca="[\\x20\\t\\r\\n\\f]",da="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",ea=da.replace("w","w#"),fa="\\["+ca+"*("+da+")(?:"+ca+"*([*^$|!~]?=)"+ca+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+ea+"))|)"+ca+"*\\]",ga=":("+da+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+fa+")*)|.*)\\)|)",ha=new RegExp(ca+"+","g"),ia=new RegExp("^"+ca+"+|((?:^|[^\\\\])(?:\\\\.)*)"+ca+"+$","g"),ja=new RegExp("^"+ca+"*,"+ca+"*"),ka=new RegExp("^"+ca+"*([>+~]|"+ca+")"+ca+"*"),la=new RegExp("="+ca+"*([^\\]'\"]*?)"+ca+"*\\]","g"),ma=new RegExp(ga),na=new RegExp("^"+ea+"$"),oa={ID:new RegExp("^#("+da+")"),CLASS:new RegExp("^\\.("+da+")"),TAG:new RegExp("^("+da.replace("w","w*")+")"),ATTR:new RegExp("^"+fa),PSEUDO:new RegExp("^"+ga),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ca+"*(even|odd|(([+-]|)(\\d*)n|)"+ca+"*(?:([+-]|)"+ca+"*(\\d+)|))"+ca+"*\\)|)","i"),bool:new RegExp("^(?:"+ba+")$","i"),needsContext:new RegExp("^"+ca+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ca+"*((?:-\\d)?\\d*)"+ca+"*\\)|)(?=[^-]|$)","i")},pa=/^(?:input|select|textarea|button)$/i,qa=/^h\d$/i,ra=/^[^{]+\{\s*\[native \w/,sa=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ta=/[+~]/,ua=/'|\\/g,va=new RegExp("\\\\([\\da-f]{1,6}"+ca+"?|("+ca+")|.)","ig"),wa=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},xa=function(){F()};try{$.apply(X=_.call(O.childNodes),O.childNodes),X[O.childNodes.length].nodeType}catch(ya){$={apply:X.length?function(a,b){Z.apply(a,_.call(b))}:function(a,b){for(var c=a.length,d=0;a[c++]=b[d++];);a.length=c-1}}}v=b.support={},y=b.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},F=b.setDocument=function(a){var b,c,d=a?a.ownerDocument||a:O;return d!==G&&9===d.nodeType&&d.documentElement?(G=d,H=d.documentElement,c=d.defaultView,c&&c!==c.top&&(c.addEventListener?c.addEventListener("unload",xa,!1):c.attachEvent&&c.attachEvent("onunload",xa)),I=!y(d),v.attributes=e(function(a){return a.className="i",!a.getAttribute("className")}),v.getElementsByTagName=e(function(a){return a.appendChild(d.createComment("")),!a.getElementsByTagName("*").length}),v.getElementsByClassName=ra.test(d.getElementsByClassName),v.getById=e(function(a){return H.appendChild(a).id=N,!d.getElementsByName||!d.getElementsByName(N).length}),v.getById?(w.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&I){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},w.filter.ID=function(a){var b=a.replace(va,wa);return function(a){return a.getAttribute("id")===b}}):(delete w.find.ID,w.filter.ID=function(a){var b=a.replace(va,wa);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),w.find.TAG=v.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):v.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){for(;c=f[e++];)1===c.nodeType&&d.push(c);return d}return f},w.find.CLASS=v.getElementsByClassName&&function(a,b){return I?b.getElementsByClassName(a):void 0},K=[],J=[],(v.qsa=ra.test(d.querySelectorAll))&&(e(function(a){H.appendChild(a).innerHTML="<a id='"+N+"'></a><select id='"+N+"-\f]' msallowcapture=''><option selected=''></option></select>",a.querySelectorAll("[msallowcapture^='']").length&&J.push("[*^$]="+ca+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||J.push("\\["+ca+"*(?:value|"+ba+")"),a.querySelectorAll("[id~="+N+"-]").length||J.push("~="),a.querySelectorAll(":checked").length||J.push(":checked"),a.querySelectorAll("a#"+N+"+*").length||J.push(".#.+[+~]")}),e(function(a){var b=d.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&J.push("name"+ca+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||J.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),J.push(",.*:")})),(v.matchesSelector=ra.test(L=H.matches||H.webkitMatchesSelector||H.mozMatchesSelector||H.oMatchesSelector||H.msMatchesSelector))&&e(function(a){v.disconnectedMatch=L.call(a,"div"),L.call(a,"[s!='']:x"),K.push("!=",ga)}),J=J.length&&new RegExp(J.join("|")),K=K.length&&new RegExp(K.join("|")),b=ra.test(H.compareDocumentPosition),M=b||ra.test(H.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)for(;b=b.parentNode;)if(b===a)return!0;return!1},U=b?function(a,b){if(a===b)return E=!0,0;var c=!a.compareDocumentPosition-!b.compareDocumentPosition;return c?c:(c=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&c||!v.sortDetached&&b.compareDocumentPosition(a)===c?a===d||a.ownerDocument===O&&M(O,a)?-1:b===d||b.ownerDocument===O&&M(O,b)?1:D?aa(D,a)-aa(D,b):0:4&c?-1:1)}:function(a,b){if(a===b)return E=!0,0;var c,e=0,f=a.parentNode,h=b.parentNode,i=[a],j=[b];if(!f||!h)return a===d?-1:b===d?1:f?-1:h?1:D?aa(D,a)-aa(D,b):0;if(f===h)return g(a,b);for(c=a;c=c.parentNode;)i.unshift(c);for(c=b;c=c.parentNode;)j.unshift(c);for(;i[e]===j[e];)e++;return e?g(i[e],j[e]):i[e]===O?-1:j[e]===O?1:0},d):G},b.matches=function(a,c){return b(a,null,null,c)},b.matchesSelector=function(a,c){if((a.ownerDocument||a)!==G&&F(a),c=c.replace(la,"='$1']"),v.matchesSelector&&I&&(!K||!K.test(c))&&(!J||!J.test(c)))try{var d=L.call(a,c);if(d||v.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return b(c,G,null,[a]).length>0},b.contains=function(a,b){return(a.ownerDocument||a)!==G&&F(a),M(a,b)},b.attr=function(a,b){(a.ownerDocument||a)!==G&&F(a);var c=w.attrHandle[b.toLowerCase()],d=c&&W.call(w.attrHandle,b.toLowerCase())?c(a,b,!I):void 0;return void 0!==d?d:v.attributes||!I?a.getAttribute(b):(d=a.getAttributeNode(b))&&d.specified?d.value:null},b.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},b.uniqueSort=function(a){var b,c=[],d=0,e=0;if(E=!v.detectDuplicates,D=!v.sortStable&&a.slice(0),a.sort(U),E){for(;b=a[e++];)b===a[e]&&(d=c.push(e));for(;d--;)a.splice(c[d],1)}return D=null,a},x=b.getText=function(a){var b,c="",d=0,e=a.nodeType;if(e){if(1===e||9===e||11===e){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=x(a)}else if(3===e||4===e)return a.nodeValue}else for(;b=a[d++];)c+=x(b);return c},w=b.selectors={cacheLength:50,createPseudo:d,match:oa,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(va,wa),a[3]=(a[3]||a[4]||a[5]||"").replace(va,wa),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||b.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&b.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return oa.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&ma.test(c)&&(b=z(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(va,wa).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=R[a+" "];return b||(b=new RegExp("(^|"+ca+")"+a+"("+ca+"|$)"))&&R(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,c,d){return function(e){var f=b.attr(e,a);return null==f?"!="===c:c?(f+="","="===c?f===d:"!="===c?f!==d:"^="===c?d&&0===f.indexOf(d):"*="===c?d&&f.indexOf(d)>-1:"$="===c?d&&f.slice(-d.length)===d:"~="===c?(" "+f.replace(ha," ")+" ").indexOf(d)>-1:"|="===c?f===d||f.slice(0,d.length+1)===d+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){for(;p;){for(l=b;l=l[p];)if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){for(k=q[N]||(q[N]={}),j=k[a]||[],n=j[0]===P&&j[1],m=j[0]===P&&j[2],l=n&&q.childNodes[n];l=++n&&l&&l[p]||(m=n=0)||o.pop();)if(1===l.nodeType&&++m&&l===b){k[a]=[P,n,m];break}}else if(s&&(j=(b[N]||(b[N]={}))[a])&&j[0]===P)m=j[1];else for(;(l=++n&&l&&l[p]||(m=n=0)||o.pop())&&((h?l.nodeName.toLowerCase()!==r:1!==l.nodeType)||!++m||(s&&((l[N]||(l[N]={}))[a]=[P,m]),l!==b)););return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,c){var e,f=w.pseudos[a]||w.setFilters[a.toLowerCase()]||b.error("unsupported pseudo: "+a);return f[N]?f(c):f.length>1?(e=[a,a,"",c],w.setFilters.hasOwnProperty(a.toLowerCase())?d(function(a,b){for(var d,e=f(a,c),g=e.length;g--;)d=aa(a,e[g]),a[d]=!(b[d]=e[g])}):function(a){return f(a,0,e)}):f}},pseudos:{not:d(function(a){var b=[],c=[],e=A(a.replace(ia,"$1"));return e[N]?d(function(a,b,c,d){for(var f,g=e(a,null,d,[]),h=a.length;h--;)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,d,f){return b[0]=a,e(b,null,f,c),b[0]=null,!c.pop()}}),has:d(function(a){return function(c){return b(a,c).length>0}}),contains:d(function(a){return a=a.replace(va,wa),function(b){return(b.textContent||b.innerText||x(b)).indexOf(a)>-1}}),lang:d(function(a){return na.test(a||"")||b.error("unsupported lang: "+a),a=a.replace(va,wa).toLowerCase(),function(b){var c;do if(c=I?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===H},focus:function(a){return a===G.activeElement&&(!G.hasFocus||G.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!w.pseudos.empty(a)},header:function(a){return qa.test(a.nodeName)},input:function(a){return pa.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:j(function(){return[0]}),last:j(function(a,b){return[b-1]}),eq:j(function(a,b,c){return[0>c?c+b:c]}),even:j(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:j(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:j(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:j(function(a,b,c){for(var d=0>c?c+b:c;++d<b;)a.push(d);return a})}},w.pseudos.nth=w.pseudos.eq;for(u in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})w.pseudos[u]=h(u);for(u in{submit:!0,reset:!0})w.pseudos[u]=i(u);return l.prototype=w.filters=w.pseudos,w.setFilters=new l,z=b.tokenize=function(a,c){var d,e,f,g,h,i,j,k=S[a+" "];if(k)return c?0:k.slice(0);for(h=a,i=[],j=w.preFilter;h;){(!d||(e=ja.exec(h)))&&(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),d=!1,(e=ka.exec(h))&&(d=e.shift(),f.push({value:d,type:e[0].replace(ia," ")}),h=h.slice(d.length));for(g in w.filter)!(e=oa[g].exec(h))||j[g]&&!(e=j[g](e))||(d=e.shift(),f.push({value:d,type:g,matches:e}),h=h.slice(d.length));if(!d)break}return c?h.length:h?b.error(a):S(a,i).slice(0)},A=b.compile=function(a,b){var c,d=[],e=[],f=T[a+" "];if(!f){for(b||(b=z(a)),c=b.length;c--;)f=s(b[c]),f[N]?d.push(f):e.push(f);f=T(a,t(e,d)),f.selector=a}return f},B=b.select=function(a,b,c,d){var e,f,g,h,i,j="function"==typeof a&&a,l=!d&&z(a=j.selector||a);if(c=c||[],1===l.length){if(f=l[0]=l[0].slice(0),f.length>2&&"ID"===(g=f[0]).type&&v.getById&&9===b.nodeType&&I&&w.relative[f[1].type]){if(b=(w.find.ID(g.matches[0].replace(va,wa),b)||[])[0],!b)return c;j&&(b=b.parentNode),a=a.slice(f.shift().value.length)}for(e=oa.needsContext.test(a)?0:f.length;e--&&(g=f[e],!w.relative[h=g.type]);)if((i=w.find[h])&&(d=i(g.matches[0].replace(va,wa),ta.test(f[0].type)&&k(b.parentNode)||b))){if(f.splice(e,1),a=d.length&&m(f),!a)return $.apply(c,d),c;break}}return(j||A(a,l))(d,b,!I,c,ta.test(a)&&k(b.parentNode)||b),c},v.sortStable=N.split("").sort(U).join("")===N,v.detectDuplicates=!!E,F(),v.sortDetached=e(function(a){return 1&a.compareDocumentPosition(G.createElement("div"))}),e(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||f("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),v.attributes&&e(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||f("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),e(function(a){return null==a.getAttribute("disabled")})||f(ba,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),b}(a);_.find=ea,_.expr=ea.selectors,_.expr[":"]=_.expr.pseudos,_.unique=ea.uniqueSort,_.text=ea.getText,_.isXMLDoc=ea.isXML,_.contains=ea.contains;var fa=_.expr.match.needsContext,ga=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,ha=/^.[^:#\[\.,]*$/;_.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?_.find.matchesSelector(d,a)?[d]:[]:_.find.matches(a,_.grep(b,function(a){return 1===a.nodeType}))},_.fn.extend({find:function(a){var b,c=this.length,d=[],e=this;if("string"!=typeof a)return this.pushStack(_(a).filter(function(){for(b=0;c>b;b++)if(_.contains(e[b],this))return!0}));for(b=0;c>b;b++)_.find(a,e[b],d);return d=this.pushStack(c>1?_.unique(d):d),d.selector=this.selector?this.selector+" "+a:a,d},filter:function(a){return this.pushStack(d(this,a||[],!1))},not:function(a){return this.pushStack(d(this,a||[],!0))},is:function(a){return!!d(this,"string"==typeof a&&fa.test(a)?_(a):a||[],!1).length}});var ia,ja=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,ka=_.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:ja.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||ia).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof _?b[0]:b,_.merge(this,_.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:Z,!0)),ga.test(c[1])&&_.isPlainObject(b))for(c in b)_.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}return d=Z.getElementById(c[2]),d&&d.parentNode&&(this.length=1,this[0]=d),this.context=Z,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):_.isFunction(a)?"undefined"!=typeof ia.ready?ia.ready(a):a(_):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),_.makeArray(a,this))};ka.prototype=_.fn,ia=_(Z);var la=/^(?:parents|prev(?:Until|All))/,ma={children:!0,contents:!0,next:!0,prev:!0};_.extend({dir:function(a,b,c){for(var d=[],e=void 0!==c;(a=a[b])&&9!==a.nodeType;)if(1===a.nodeType){if(e&&_(a).is(c))break;d.push(a)}return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),_.fn.extend({has:function(a){var b=_(a,this),c=b.length;return this.filter(function(){for(var a=0;c>a;a++)if(_.contains(this,b[a]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=fa.test(a)||"string"!=typeof a?_(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&_.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?_.unique(f):f)},index:function(a){return a?"string"==typeof a?U.call(_(a),this[0]):U.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(_.unique(_.merge(this.get(),_(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}}),_.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return _.dir(a,"parentNode")},parentsUntil:function(a,b,c){return _.dir(a,"parentNode",c)},next:function(a){return e(a,"nextSibling")},prev:function(a){return e(a,"previousSibling")},nextAll:function(a){return _.dir(a,"nextSibling")},prevAll:function(a){return _.dir(a,"previousSibling")},nextUntil:function(a,b,c){return _.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return _.dir(a,"previousSibling",c)},siblings:function(a){return _.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return _.sibling(a.firstChild)},contents:function(a){return a.contentDocument||_.merge([],a.childNodes)}},function(a,b){_.fn[a]=function(c,d){var e=_.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=_.filter(d,e)),this.length>1&&(ma[a]||_.unique(e),la.test(a)&&e.reverse()),this.pushStack(e)}});var na=/\S+/g,oa={};_.Callbacks=function(a){a="string"==typeof a?oa[a]||f(a):_.extend({},a);var b,c,d,e,g,h,i=[],j=!a.once&&[],k=function(f){for(b=a.memory&&f,c=!0,h=e||0,e=0,g=i.length,d=!0;i&&g>h;h++)if(i[h].apply(f[0],f[1])===!1&&a.stopOnFalse){b=!1;break}d=!1,i&&(j?j.length&&k(j.shift()):b?i=[]:l.disable())},l={add:function(){if(i){var c=i.length;!function f(b){_.each(b,function(b,c){var d=_.type(c);"function"===d?a.unique&&l.has(c)||i.push(c):c&&c.length&&"string"!==d&&f(c)})}(arguments),d?g=i.length:b&&(e=c,k(b))}return this},remove:function(){return i&&_.each(arguments,function(a,b){for(var c;(c=_.inArray(b,i,c))>-1;)i.splice(c,1),d&&(g>=c&&g--,h>=c&&h--)}),this},has:function(a){return a?_.inArray(a,i)>-1:!(!i||!i.length)},empty:function(){return i=[],g=0,this},disable:function(){return i=j=b=void 0,this},disabled:function(){return!i},lock:function(){return j=void 0,b||l.disable(),this},locked:function(){return!j},fireWith:function(a,b){return!i||c&&!j||(b=b||[],b=[a,b.slice?b.slice():b],d?j.push(b):k(b)),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!c}};return l},_.extend({Deferred:function(a){var b=[["resolve","done",_.Callbacks("once memory"),"resolved"],["reject","fail",_.Callbacks("once memory"),"rejected"],["notify","progress",_.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return _.Deferred(function(c){_.each(b,function(b,f){var g=_.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&_.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?_.extend(a,d):d}},e={};return d.pipe=d.then,_.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b,c,d,e=0,f=R.call(arguments),g=f.length,h=1!==g||a&&_.isFunction(a.promise)?g:0,i=1===h?a:_.Deferred(),j=function(a,c,d){return function(e){c[a]=this,d[a]=arguments.length>1?R.call(arguments):e,d===b?i.notifyWith(c,d):--h||i.resolveWith(c,d)}};if(g>1)for(b=new Array(g),c=new Array(g),d=new Array(g);g>e;e++)f[e]&&_.isFunction(f[e].promise)?f[e].promise().done(j(e,d,f)).fail(i.reject).progress(j(e,c,b)):--h;return h||i.resolveWith(d,f),i.promise()}});var pa;_.fn.ready=function(a){return _.ready.promise().done(a),this},_.extend({isReady:!1,readyWait:1,holdReady:function(a){a?_.readyWait++:_.ready(!0)},ready:function(a){(a===!0?--_.readyWait:_.isReady)||(_.isReady=!0,a!==!0&&--_.readyWait>0||(pa.resolveWith(Z,[_]),_.fn.triggerHandler&&(_(Z).triggerHandler("ready"),_(Z).off("ready"))))}}),_.ready.promise=function(b){return pa||(pa=_.Deferred(),"complete"===Z.readyState?setTimeout(_.ready):(Z.addEventListener("DOMContentLoaded",g,!1),a.addEventListener("load",g,!1))),pa.promise(b)},_.ready.promise();var qa=_.access=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===_.type(c)){e=!0;for(h in c)_.access(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,_.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(_(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f};_.acceptData=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType},h.uid=1,h.accepts=_.acceptData,h.prototype={key:function(a){if(!h.accepts(a))return 0;var b={},c=a[this.expando];if(!c){c=h.uid++;try{b[this.expando]={value:c},Object.defineProperties(a,b)}catch(d){b[this.expando]=c,_.extend(a,b)}}return this.cache[c]||(this.cache[c]={}),c},set:function(a,b,c){var d,e=this.key(a),f=this.cache[e];if("string"==typeof b)f[b]=c;else if(_.isEmptyObject(f))_.extend(this.cache[e],b);else for(d in b)f[d]=b[d];return f},get:function(a,b){var c=this.cache[this.key(a)];return void 0===b?c:c[b]},access:function(a,b,c){var d;return void 0===b||b&&"string"==typeof b&&void 0===c?(d=this.get(a,b),void 0!==d?d:this.get(a,_.camelCase(b))):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d,e,f=this.key(a),g=this.cache[f];if(void 0===b)this.cache[f]={};else{_.isArray(b)?d=b.concat(b.map(_.camelCase)):(e=_.camelCase(b),b in g?d=[b,e]:(d=e,d=d in g?[d]:d.match(na)||[])),c=d.length;for(;c--;)delete g[d[c]]}},hasData:function(a){return!_.isEmptyObject(this.cache[a[this.expando]]||{})},discard:function(a){a[this.expando]&&delete this.cache[a[this.expando]]}};var ra=new h,sa=new h,ta=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,ua=/([A-Z])/g;_.extend({hasData:function(a){return sa.hasData(a)||ra.hasData(a)},data:function(a,b,c){return sa.access(a,b,c)},removeData:function(a,b){sa.remove(a,b)},_data:function(a,b,c){return ra.access(a,b,c)},_removeData:function(a,b){ra.remove(a,b)}}),_.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=sa.get(f),1===f.nodeType&&!ra.get(f,"hasDataAttrs"))){for(c=g.length;c--;)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=_.camelCase(d.slice(5)),i(f,d,e[d])));ra.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){sa.set(this,a)}):qa(this,function(b){var c,d=_.camelCase(a);if(f&&void 0===b){if(c=sa.get(f,a),void 0!==c)return c;if(c=sa.get(f,d),void 0!==c)return c;if(c=i(f,d,void 0),void 0!==c)return c}else this.each(function(){var c=sa.get(this,d);sa.set(this,d,b),-1!==a.indexOf("-")&&void 0!==c&&sa.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){sa.remove(this,a)})}}),_.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=ra.get(a,b),c&&(!d||_.isArray(c)?d=ra.access(a,b,_.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=_.queue(a,b),d=c.length,e=c.shift(),f=_._queueHooks(a,b),g=function(){_.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return ra.get(a,c)||ra.access(a,c,{empty:_.Callbacks("once memory").add(function(){ra.remove(a,[b+"queue",c])})})}}),_.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?_.queue(this[0],a):void 0===b?this:this.each(function(){var c=_.queue(this,a,b);_._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&_.dequeue(this,a)})},dequeue:function(a){return this.each(function(){_.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=_.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};for("string"!=typeof a&&(b=a,a=void 0),a=a||"fx";g--;)c=ra.get(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var va=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,wa=["Top","Right","Bottom","Left"],xa=function(a,b){return a=b||a,"none"===_.css(a,"display")||!_.contains(a.ownerDocument,a)},ya=/^(?:checkbox|radio)$/i;!function(){var a=Z.createDocumentFragment(),b=a.appendChild(Z.createElement("div")),c=Z.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),Y.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="<textarea>x</textarea>",Y.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var za="undefined";Y.focusinBubbles="onfocusin"in a;var Aa=/^key/,Ba=/^(?:mouse|pointer|contextmenu)|click/,Ca=/^(?:focusinfocus|focusoutblur)$/,Da=/^([^.]*)(?:\.(.+)|)$/;_.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=ra.get(a);if(q)for(c.handler&&(f=c,c=f.handler,e=f.selector),c.guid||(c.guid=_.guid++),(i=q.events)||(i=q.events={}),(g=q.handle)||(g=q.handle=function(b){return typeof _!==za&&_.event.triggered!==b.type?_.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(na)||[""],j=b.length;j--;)h=Da.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n&&(l=_.event.special[n]||{},n=(e?l.delegateType:l.bindType)||n,l=_.event.special[n]||{},k=_.extend({type:n,origType:p,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&_.expr.match.needsContext.test(e),namespace:o.join(".")},f),(m=i[n])||(m=i[n]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,o,g)!==!1||a.addEventListener&&a.addEventListener(n,g,!1)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),_.event.global[n]=!0)},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=ra.hasData(a)&&ra.get(a);if(q&&(i=q.events)){for(b=(b||"").match(na)||[""],j=b.length;j--;)if(h=Da.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n){for(l=_.event.special[n]||{},n=(d?l.delegateType:l.bindType)||n,m=i[n]||[],h=h[2]&&new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;f--;)k=m[f],!e&&p!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,o,q.handle)!==!1||_.removeEvent(a,n,q.handle),delete i[n])}else for(n in i)_.event.remove(a,n+b[j],c,d,!0);_.isEmptyObject(i)&&(delete q.handle,ra.remove(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,j,k,l,m=[d||Z],n=X.call(b,"type")?b.type:b,o=X.call(b,"namespace")?b.namespace.split("."):[];if(g=h=d=d||Z,3!==d.nodeType&&8!==d.nodeType&&!Ca.test(n+_.event.triggered)&&(n.indexOf(".")>=0&&(o=n.split("."),n=o.shift(),o.sort()),j=n.indexOf(":")<0&&"on"+n,b=b[_.expando]?b:new _.Event(n,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=o.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),
+c=null==c?[b]:_.makeArray(c,[b]),l=_.event.special[n]||{},e||!l.trigger||l.trigger.apply(d,c)!==!1)){if(!e&&!l.noBubble&&!_.isWindow(d)){for(i=l.delegateType||n,Ca.test(i+n)||(g=g.parentNode);g;g=g.parentNode)m.push(g),h=g;h===(d.ownerDocument||Z)&&m.push(h.defaultView||h.parentWindow||a)}for(f=0;(g=m[f++])&&!b.isPropagationStopped();)b.type=f>1?i:l.bindType||n,k=(ra.get(g,"events")||{})[b.type]&&ra.get(g,"handle"),k&&k.apply(g,c),k=j&&g[j],k&&k.apply&&_.acceptData(g)&&(b.result=k.apply(g,c),b.result===!1&&b.preventDefault());return b.type=n,e||b.isDefaultPrevented()||l._default&&l._default.apply(m.pop(),c)!==!1||!_.acceptData(d)||j&&_.isFunction(d[n])&&!_.isWindow(d)&&(h=d[j],h&&(d[j]=null),_.event.triggered=n,d[n](),_.event.triggered=void 0,h&&(d[j]=h)),b.result}},dispatch:function(a){a=_.event.fix(a);var b,c,d,e,f,g=[],h=R.call(arguments),i=(ra.get(this,"events")||{})[a.type]||[],j=_.event.special[a.type]||{};if(h[0]=a,a.delegateTarget=this,!j.preDispatch||j.preDispatch.call(this,a)!==!1){for(g=_.event.handlers.call(this,a,i),b=0;(e=g[b++])&&!a.isPropagationStopped();)for(a.currentTarget=e.elem,c=0;(f=e.handlers[c++])&&!a.isImmediatePropagationStopped();)(!a.namespace_re||a.namespace_re.test(f.namespace))&&(a.handleObj=f,a.data=f.data,d=((_.event.special[f.origType]||{}).handle||f.handler).apply(e.elem,h),void 0!==d&&(a.result=d)===!1&&(a.preventDefault(),a.stopPropagation()));return j.postDispatch&&j.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!==this;i=i.parentNode||this)if(i.disabled!==!0||"click"!==a.type){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?_(e,this).index(i)>=0:_.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},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(a,b){return null==a.which&&(a.which=null!=b.charCode?b.charCode:b.keyCode),a}},mouseHooks:{props:"button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,b){var c,d,e,f=b.button;return null==a.pageX&&null!=b.clientX&&(c=a.target.ownerDocument||Z,d=c.documentElement,e=c.body,a.pageX=b.clientX+(d&&d.scrollLeft||e&&e.scrollLeft||0)-(d&&d.clientLeft||e&&e.clientLeft||0),a.pageY=b.clientY+(d&&d.scrollTop||e&&e.scrollTop||0)-(d&&d.clientTop||e&&e.clientTop||0)),a.which||void 0===f||(a.which=1&f?1:2&f?3:4&f?2:0),a}},fix:function(a){if(a[_.expando])return a;var b,c,d,e=a.type,f=a,g=this.fixHooks[e];for(g||(this.fixHooks[e]=g=Ba.test(e)?this.mouseHooks:Aa.test(e)?this.keyHooks:{}),d=g.props?this.props.concat(g.props):this.props,a=new _.Event(f),b=d.length;b--;)c=d[b],a[c]=f[c];return a.target||(a.target=Z),3===a.target.nodeType&&(a.target=a.target.parentNode),g.filter?g.filter(a,f):a},special:{load:{noBubble:!0},focus:{trigger:function(){return this!==l()&&this.focus?(this.focus(),!1):void 0},delegateType:"focusin"},blur:{trigger:function(){return this===l()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return"checkbox"===this.type&&this.click&&_.nodeName(this,"input")?(this.click(),!1):void 0},_default:function(a){return _.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}},simulate:function(a,b,c,d){var e=_.extend(new _.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?_.event.trigger(e,null,b):_.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},_.removeEvent=function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)},_.Event=function(a,b){return this instanceof _.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?j:k):this.type=a,b&&_.extend(this,b),this.timeStamp=a&&a.timeStamp||_.now(),void(this[_.expando]=!0)):new _.Event(a,b)},_.Event.prototype={isDefaultPrevented:k,isPropagationStopped:k,isImmediatePropagationStopped:k,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=j,a&&a.preventDefault&&a.preventDefault()},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=j,a&&a.stopPropagation&&a.stopPropagation()},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=j,a&&a.stopImmediatePropagation&&a.stopImmediatePropagation(),this.stopPropagation()}},_.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){_.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return(!e||e!==d&&!_.contains(d,e))&&(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),Y.focusinBubbles||_.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){_.event.simulate(b,a.target,_.event.fix(a),!0)};_.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=ra.access(d,b);e||d.addEventListener(a,c,!0),ra.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=ra.access(d,b)-1;e?ra.access(d,b,e):(d.removeEventListener(a,c,!0),ra.remove(d,b))}}}),_.fn.extend({on:function(a,b,c,d,e){var f,g;if("object"==typeof a){"string"!=typeof b&&(c=c||b,b=void 0);for(g in a)this.on(g,b,c,a[g],e);return this}if(null==c&&null==d?(d=b,c=b=void 0):null==d&&("string"==typeof b?(d=c,c=void 0):(d=c,c=b,b=void 0)),d===!1)d=k;else if(!d)return this;return 1===e&&(f=d,d=function(a){return _().off(a),f.apply(this,arguments)},d.guid=f.guid||(f.guid=_.guid++)),this.each(function(){_.event.add(this,a,d,c,b)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,_(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return(b===!1||"function"==typeof b)&&(c=b,b=void 0),c===!1&&(c=k),this.each(function(){_.event.remove(this,a,c,b)})},trigger:function(a,b){return this.each(function(){_.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];return c?_.event.trigger(a,b,c,!0):void 0}});var Ea=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,Fa=/<([\w:]+)/,Ga=/<|&#?\w+;/,Ha=/<(?:script|style|link)/i,Ia=/checked\s*(?:[^=]|=\s*.checked.)/i,Ja=/^$|\/(?:java|ecma)script/i,Ka=/^true\/(.*)/,La=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,Ma={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};Ma.optgroup=Ma.option,Ma.tbody=Ma.tfoot=Ma.colgroup=Ma.caption=Ma.thead,Ma.th=Ma.td,_.extend({clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=_.contains(a.ownerDocument,a);if(!(Y.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||_.isXMLDoc(a)))for(g=r(h),f=r(a),d=0,e=f.length;e>d;d++)s(f[d],g[d]);if(b)if(c)for(f=f||r(a),g=g||r(h),d=0,e=f.length;e>d;d++)q(f[d],g[d]);else q(a,h);return g=r(h,"script"),g.length>0&&p(g,!i&&r(a,"script")),h},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,k=b.createDocumentFragment(),l=[],m=0,n=a.length;n>m;m++)if(e=a[m],e||0===e)if("object"===_.type(e))_.merge(l,e.nodeType?[e]:e);else if(Ga.test(e)){for(f=f||k.appendChild(b.createElement("div")),g=(Fa.exec(e)||["",""])[1].toLowerCase(),h=Ma[g]||Ma._default,f.innerHTML=h[1]+e.replace(Ea,"<$1></$2>")+h[2],j=h[0];j--;)f=f.lastChild;_.merge(l,f.childNodes),f=k.firstChild,f.textContent=""}else l.push(b.createTextNode(e));for(k.textContent="",m=0;e=l[m++];)if((!d||-1===_.inArray(e,d))&&(i=_.contains(e.ownerDocument,e),f=r(k.appendChild(e),"script"),i&&p(f),c))for(j=0;e=f[j++];)Ja.test(e.type||"")&&c.push(e);return k},cleanData:function(a){for(var b,c,d,e,f=_.event.special,g=0;void 0!==(c=a[g]);g++){if(_.acceptData(c)&&(e=c[ra.expando],e&&(b=ra.cache[e]))){if(b.events)for(d in b.events)f[d]?_.event.remove(c,d):_.removeEvent(c,d,b.handle);ra.cache[e]&&delete ra.cache[e]}delete sa.cache[c[sa.expando]]}}}),_.fn.extend({text:function(a){return qa(this,function(a){return void 0===a?_.text(this):this.empty().each(function(){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&(this.textContent=a)})},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=m(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=m(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?_.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||_.cleanData(r(c)),c.parentNode&&(b&&_.contains(c.ownerDocument,c)&&p(r(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(_.cleanData(r(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return _.clone(this,a,b)})},html:function(a){return qa(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!Ha.test(a)&&!Ma[(Fa.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Ea,"<$1></$2>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(_.cleanData(r(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,_.cleanData(r(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=S.apply([],a);var c,d,e,f,g,h,i=0,j=this.length,k=this,l=j-1,m=a[0],p=_.isFunction(m);if(p||j>1&&"string"==typeof m&&!Y.checkClone&&Ia.test(m))return this.each(function(c){var d=k.eq(c);p&&(a[0]=m.call(this,c,d.html())),d.domManip(a,b)});if(j&&(c=_.buildFragment(a,this[0].ownerDocument,!1,this),d=c.firstChild,1===c.childNodes.length&&(c=d),d)){for(e=_.map(r(c,"script"),n),f=e.length;j>i;i++)g=c,i!==l&&(g=_.clone(g,!0,!0),f&&_.merge(e,r(g,"script"))),b.call(this[i],g,i);if(f)for(h=e[e.length-1].ownerDocument,_.map(e,o),i=0;f>i;i++)g=e[i],Ja.test(g.type||"")&&!ra.access(g,"globalEval")&&_.contains(h,g)&&(g.src?_._evalUrl&&_._evalUrl(g.src):_.globalEval(g.textContent.replace(La,"")))}return this}}),_.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){_.fn[a]=function(a){for(var c,d=[],e=_(a),f=e.length-1,g=0;f>=g;g++)c=g===f?this:this.clone(!0),_(e[g])[b](c),T.apply(d,c.get());return this.pushStack(d)}});var Na,Oa={},Pa=/^margin/,Qa=new RegExp("^("+va+")(?!px)[a-z%]+$","i"),Ra=function(b){return b.ownerDocument.defaultView.opener?b.ownerDocument.defaultView.getComputedStyle(b,null):a.getComputedStyle(b,null)};!function(){function b(){g.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute",g.innerHTML="",e.appendChild(f);var b=a.getComputedStyle(g,null);c="1%"!==b.top,d="4px"===b.width,e.removeChild(f)}var c,d,e=Z.documentElement,f=Z.createElement("div"),g=Z.createElement("div");g.style&&(g.style.backgroundClip="content-box",g.cloneNode(!0).style.backgroundClip="",Y.clearCloneStyle="content-box"===g.style.backgroundClip,f.style.cssText="border:0;width:0;height:0;top:0;left:-9999px;margin-top:1px;position:absolute",f.appendChild(g),a.getComputedStyle&&_.extend(Y,{pixelPosition:function(){return b(),c},boxSizingReliable:function(){return null==d&&b(),d},reliableMarginRight:function(){var b,c=g.appendChild(Z.createElement("div"));return c.style.cssText=g.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",c.style.marginRight=c.style.width="0",g.style.width="1px",e.appendChild(f),b=!parseFloat(a.getComputedStyle(c,null).marginRight),e.removeChild(f),g.removeChild(c),b}}))}(),_.swap=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};var Sa=/^(none|table(?!-c[ea]).+)/,Ta=new RegExp("^("+va+")(.*)$","i"),Ua=new RegExp("^([+-])=("+va+")","i"),Va={position:"absolute",visibility:"hidden",display:"block"},Wa={letterSpacing:"0",fontWeight:"400"},Xa=["Webkit","O","Moz","ms"];_.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=v(a,"opacity");return""===c?"1":c}}}},cssNumber:{columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":"cssFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=_.camelCase(b),i=a.style;return b=_.cssProps[h]||(_.cssProps[h]=x(i,h)),g=_.cssHooks[b]||_.cssHooks[h],void 0===c?g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b]:(f=typeof c,"string"===f&&(e=Ua.exec(c))&&(c=(e[1]+1)*e[2]+parseFloat(_.css(a,b)),f="number"),null!=c&&c===c&&("number"!==f||_.cssNumber[h]||(c+="px"),Y.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),g&&"set"in g&&void 0===(c=g.set(a,c,d))||(i[b]=c)),void 0)}},css:function(a,b,c,d){var e,f,g,h=_.camelCase(b);return b=_.cssProps[h]||(_.cssProps[h]=x(a.style,h)),g=_.cssHooks[b]||_.cssHooks[h],g&&"get"in g&&(e=g.get(a,!0,c)),void 0===e&&(e=v(a,b,d)),"normal"===e&&b in Wa&&(e=Wa[b]),""===c||c?(f=parseFloat(e),c===!0||_.isNumeric(f)?f||0:e):e}}),_.each(["height","width"],function(a,b){_.cssHooks[b]={get:function(a,c,d){return c?Sa.test(_.css(a,"display"))&&0===a.offsetWidth?_.swap(a,Va,function(){return A(a,b,d)}):A(a,b,d):void 0},set:function(a,c,d){var e=d&&Ra(a);return y(a,c,d?z(a,b,d,"border-box"===_.css(a,"boxSizing",!1,e),e):0)}}}),_.cssHooks.marginRight=w(Y.reliableMarginRight,function(a,b){return b?_.swap(a,{display:"inline-block"},v,[a,"marginRight"]):void 0}),_.each({margin:"",padding:"",border:"Width"},function(a,b){_.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];4>d;d++)e[a+wa[d]+b]=f[d]||f[d-2]||f[0];return e}},Pa.test(a)||(_.cssHooks[a+b].set=y)}),_.fn.extend({css:function(a,b){return qa(this,function(a,b,c){var d,e,f={},g=0;if(_.isArray(b)){for(d=Ra(a),e=b.length;e>g;g++)f[b[g]]=_.css(a,b[g],!1,d);return f}return void 0!==c?_.style(a,b,c):_.css(a,b)},a,b,arguments.length>1)},show:function(){return B(this,!0)},hide:function(){return B(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){xa(this)?_(this).show():_(this).hide()})}}),_.Tween=C,C.prototype={constructor:C,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||"swing",this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(_.cssNumber[c]?"":"px")},cur:function(){var a=C.propHooks[this.prop];return a&&a.get?a.get(this):C.propHooks._default.get(this)},run:function(a){var b,c=C.propHooks[this.prop];return this.options.duration?this.pos=b=_.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):C.propHooks._default.set(this),this}},C.prototype.init.prototype=C.prototype,C.propHooks={_default:{get:function(a){var b;return null==a.elem[a.prop]||a.elem.style&&null!=a.elem.style[a.prop]?(b=_.css(a.elem,a.prop,""),b&&"auto"!==b?b:0):a.elem[a.prop]},set:function(a){_.fx.step[a.prop]?_.fx.step[a.prop](a):a.elem.style&&(null!=a.elem.style[_.cssProps[a.prop]]||_.cssHooks[a.prop])?_.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},C.propHooks.scrollTop=C.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},_.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}},_.fx=C.prototype.init,_.fx.step={};var Ya,Za,$a=/^(?:toggle|show|hide)$/,_a=new RegExp("^(?:([+-])=|)("+va+")([a-z%]*)$","i"),ab=/queueHooks$/,bb=[G],cb={"*":[function(a,b){var c=this.createTween(a,b),d=c.cur(),e=_a.exec(b),f=e&&e[3]||(_.cssNumber[a]?"":"px"),g=(_.cssNumber[a]||"px"!==f&&+d)&&_a.exec(_.css(c.elem,a)),h=1,i=20;if(g&&g[3]!==f){f=f||g[3],e=e||[],g=+d||1;do h=h||".5",g/=h,_.style(c.elem,a,g+f);while(h!==(h=c.cur()/d)&&1!==h&&--i)}return e&&(g=c.start=+g||+d||0,c.unit=f,c.end=e[1]?g+(e[1]+1)*e[2]:+e[2]),c}]};_.Animation=_.extend(I,{tweener:function(a,b){_.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");for(var c,d=0,e=a.length;e>d;d++)c=a[d],cb[c]=cb[c]||[],cb[c].unshift(b)},prefilter:function(a,b){b?bb.unshift(a):bb.push(a)}}),_.speed=function(a,b,c){var d=a&&"object"==typeof a?_.extend({},a):{complete:c||!c&&b||_.isFunction(a)&&a,duration:a,easing:c&&b||b&&!_.isFunction(b)&&b};return d.duration=_.fx.off?0:"number"==typeof d.duration?d.duration:d.duration in _.fx.speeds?_.fx.speeds[d.duration]:_.fx.speeds._default,(null==d.queue||d.queue===!0)&&(d.queue="fx"),d.old=d.complete,d.complete=function(){_.isFunction(d.old)&&d.old.call(this),d.queue&&_.dequeue(this,d.queue)},d},_.fn.extend({fadeTo:function(a,b,c,d){return this.filter(xa).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=_.isEmptyObject(a),f=_.speed(b,c,d),g=function(){var b=I(this,_.extend({},a),f);(e||ra.get(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=_.timers,g=ra.get(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&ab.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));(b||!c)&&_.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=ra.get(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=_.timers,g=d?d.length:0;for(c.finish=!0,_.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;g>b;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),_.each(["toggle","show","hide"],function(a,b){var c=_.fn[b];_.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(E(b,!0),a,d,e)}}),_.each({slideDown:E("show"),slideUp:E("hide"),slideToggle:E("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){_.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),_.timers=[],_.fx.tick=function(){var a,b=0,c=_.timers;for(Ya=_.now();b<c.length;b++)a=c[b],a()||c[b]!==a||c.splice(b--,1);c.length||_.fx.stop(),Ya=void 0},_.fx.timer=function(a){_.timers.push(a),a()?_.fx.start():_.timers.pop()},_.fx.interval=13,_.fx.start=function(){Za||(Za=setInterval(_.fx.tick,_.fx.interval))},_.fx.stop=function(){clearInterval(Za),Za=null},_.fx.speeds={slow:600,fast:200,_default:400},_.fn.delay=function(a,b){return a=_.fx?_.fx.speeds[a]||a:a,b=b||"fx",this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},function(){var a=Z.createElement("input"),b=Z.createElement("select"),c=b.appendChild(Z.createElement("option"));a.type="checkbox",Y.checkOn=""!==a.value,Y.optSelected=c.selected,b.disabled=!0,Y.optDisabled=!c.disabled,a=Z.createElement("input"),a.value="t",a.type="radio",Y.radioValue="t"===a.value}();var db,eb,fb=_.expr.attrHandle;_.fn.extend({attr:function(a,b){return qa(this,_.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){_.removeAttr(this,a)})}}),_.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(a&&3!==f&&8!==f&&2!==f)return typeof a.getAttribute===za?_.prop(a,b,c):(1===f&&_.isXMLDoc(a)||(b=b.toLowerCase(),d=_.attrHooks[b]||(_.expr.match.bool.test(b)?eb:db)),void 0===c?d&&"get"in d&&null!==(e=d.get(a,b))?e:(e=_.find.attr(a,b),null==e?void 0:e):null!==c?d&&"set"in d&&void 0!==(e=d.set(a,c,b))?e:(a.setAttribute(b,c+""),c):void _.removeAttr(a,b))},removeAttr:function(a,b){var c,d,e=0,f=b&&b.match(na);if(f&&1===a.nodeType)for(;c=f[e++];)d=_.propFix[c]||c,_.expr.match.bool.test(c)&&(a[d]=!1),a.removeAttribute(c)},attrHooks:{type:{set:function(a,b){if(!Y.radioValue&&"radio"===b&&_.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}}}),eb={set:function(a,b,c){return b===!1?_.removeAttr(a,c):a.setAttribute(c,c),c}},_.each(_.expr.match.bool.source.match(/\w+/g),function(a,b){var c=fb[b]||_.find.attr;fb[b]=function(a,b,d){var e,f;return d||(f=fb[b],fb[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,fb[b]=f),e}});var gb=/^(?:input|select|textarea|button)$/i;_.fn.extend({prop:function(a,b){return qa(this,_.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[_.propFix[a]||a]})}}),_.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(a,b,c){var d,e,f,g=a.nodeType;if(a&&3!==g&&8!==g&&2!==g)return f=1!==g||!_.isXMLDoc(a),f&&(b=_.propFix[b]||b,e=_.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){return a.hasAttribute("tabindex")||gb.test(a.nodeName)||a.href?a.tabIndex:-1}}}}),Y.optSelected||(_.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null}}),_.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){_.propFix[this.toLowerCase()]=this});var hb=/[\t\r\n\f]/g;_.fn.extend({addClass:function(a){var b,c,d,e,f,g,h="string"==typeof a&&a,i=0,j=this.length;if(_.isFunction(a))return this.each(function(b){_(this).addClass(a.call(this,b,this.className))});if(h)for(b=(a||"").match(na)||[];j>i;i++)if(c=this[i],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(hb," "):" ")){for(f=0;e=b[f++];)d.indexOf(" "+e+" ")<0&&(d+=e+" ");g=_.trim(d),c.className!==g&&(c.className=g)}return this},removeClass:function(a){var b,c,d,e,f,g,h=0===arguments.length||"string"==typeof a&&a,i=0,j=this.length;if(_.isFunction(a))return this.each(function(b){_(this).removeClass(a.call(this,b,this.className))});if(h)for(b=(a||"").match(na)||[];j>i;i++)if(c=this[i],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(hb," "):"")){for(f=0;e=b[f++];)for(;d.indexOf(" "+e+" ")>=0;)d=d.replace(" "+e+" "," ");g=a?_.trim(d):"",c.className!==g&&(c.className=g)}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):_.isFunction(a)?this.each(function(c){_(this).toggleClass(a.call(this,c,this.className,b),b)}):this.each(function(){if("string"===c)for(var b,d=0,e=_(this),f=a.match(na)||[];b=f[d++];)e.hasClass(b)?e.removeClass(b):e.addClass(b);else(c===za||"boolean"===c)&&(this.className&&ra.set(this,"__className__",this.className),this.className=this.className||a===!1?"":ra.get(this,"__className__")||"")})},hasClass:function(a){for(var b=" "+a+" ",c=0,d=this.length;d>c;c++)if(1===this[c].nodeType&&(" "+this[c].className+" ").replace(hb," ").indexOf(b)>=0)return!0;return!1}});var ib=/\r/g;_.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=_.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,_(this).val()):a,null==e?e="":"number"==typeof e?e+="":_.isArray(e)&&(e=_.map(e,function(a){return null==a?"":a+""})),b=_.valHooks[this.type]||_.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=_.valHooks[e.type]||_.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(ib,""):null==c?"":c)}}}),_.extend({valHooks:{option:{get:function(a){var b=_.find.attr(a,"value");return null!=b?b:_.trim(_.text(a))}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type||0>e,g=f?null:[],h=f?e+1:d.length,i=0>e?h:f?e:0;h>i;i++)if(c=d[i],(c.selected||i===e)&&(Y.optDisabled?!c.disabled:null===c.getAttribute("disabled"))&&(!c.parentNode.disabled||!_.nodeName(c.parentNode,"optgroup"))){if(b=_(c).val(),f)return b;g.push(b)}return g},set:function(a,b){for(var c,d,e=a.options,f=_.makeArray(b),g=e.length;g--;)d=e[g],(d.selected=_.inArray(d.value,f)>=0)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),_.each(["radio","checkbox"],function(){_.valHooks[this]={set:function(a,b){return _.isArray(b)?a.checked=_.inArray(_(a).val(),b)>=0:void 0}},Y.checkOn||(_.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})}),_.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(a,b){_.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),_.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}});var jb=_.now(),kb=/\?/;_.parseJSON=function(a){return JSON.parse(a+"")},_.parseXML=function(a){var b,c;if(!a||"string"!=typeof a)return null;try{c=new DOMParser,b=c.parseFromString(a,"text/xml")}catch(d){b=void 0}return(!b||b.getElementsByTagName("parsererror").length)&&_.error("Invalid XML: "+a),b};var lb=/#.*$/,mb=/([?&])_=[^&]*/,nb=/^(.*?):[ \t]*([^\r\n]*)$/gm,ob=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,pb=/^(?:GET|HEAD)$/,qb=/^\/\//,rb=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,sb={},tb={},ub="*/".concat("*"),vb=a.location.href,wb=rb.exec(vb.toLowerCase())||[];_.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:vb,type:"GET",isLocal:ob.test(wb[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":ub,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",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":_.parseJSON,"text xml":_.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?L(L(a,_.ajaxSettings),b):L(_.ajaxSettings,a)},ajaxPrefilter:J(sb),ajaxTransport:J(tb),ajax:function(a,b){function c(a,b,c,g){var i,k,r,s,u,w=b;2!==t&&(t=2,h&&clearTimeout(h),d=void 0,f=g||"",v.readyState=a>0?4:0,i=a>=200&&300>a||304===a,c&&(s=M(l,v,c)),s=N(l,s,v,i),i?(l.ifModified&&(u=v.getResponseHeader("Last-Modified"),u&&(_.lastModified[e]=u),u=v.getResponseHeader("etag"),u&&(_.etag[e]=u)),204===a||"HEAD"===l.type?w="nocontent":304===a?w="notmodified":(w=s.state,k=s.data,r=s.error,i=!r)):(r=w,(a||!w)&&(w="error",0>a&&(a=0))),v.status=a,v.statusText=(b||w)+"",i?o.resolveWith(m,[k,w,v]):o.rejectWith(m,[v,w,r]),v.statusCode(q),q=void 0,j&&n.trigger(i?"ajaxSuccess":"ajaxError",[v,l,i?k:r]),p.fireWith(m,[v,w]),j&&(n.trigger("ajaxComplete",[v,l]),--_.active||_.event.trigger("ajaxStop")))}"object"==typeof a&&(b=a,a=void 0),b=b||{};var d,e,f,g,h,i,j,k,l=_.ajaxSetup({},b),m=l.context||l,n=l.context&&(m.nodeType||m.jquery)?_(m):_.event,o=_.Deferred(),p=_.Callbacks("once memory"),q=l.statusCode||{},r={},s={},t=0,u="canceled",v={readyState:0,getResponseHeader:function(a){var b;if(2===t){if(!g)for(g={};b=nb.exec(f);)g[b[1].toLowerCase()]=b[2];b=g[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===t?f:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return t||(a=s[c]=s[c]||a,r[a]=b),this},overrideMimeType:function(a){return t||(l.mimeType=a),this},statusCode:function(a){var b;if(a)if(2>t)for(b in a)q[b]=[q[b],a[b]];else v.always(a[v.status]);return this},abort:function(a){var b=a||u;return d&&d.abort(b),c(0,b),this}};if(o.promise(v).complete=p.add,v.success=v.done,v.error=v.fail,l.url=((a||l.url||vb)+"").replace(lb,"").replace(qb,wb[1]+"//"),l.type=b.method||b.type||l.method||l.type,l.dataTypes=_.trim(l.dataType||"*").toLowerCase().match(na)||[""],null==l.crossDomain&&(i=rb.exec(l.url.toLowerCase()),l.crossDomain=!(!i||i[1]===wb[1]&&i[2]===wb[2]&&(i[3]||("http:"===i[1]?"80":"443"))===(wb[3]||("http:"===wb[1]?"80":"443")))),l.data&&l.processData&&"string"!=typeof l.data&&(l.data=_.param(l.data,l.traditional)),K(sb,l,b,v),2===t)return v;j=_.event&&l.global,j&&0===_.active++&&_.event.trigger("ajaxStart"),l.type=l.type.toUpperCase(),l.hasContent=!pb.test(l.type),e=l.url,l.hasContent||(l.data&&(e=l.url+=(kb.test(e)?"&":"?")+l.data,delete l.data),l.cache===!1&&(l.url=mb.test(e)?e.replace(mb,"$1_="+jb++):e+(kb.test(e)?"&":"?")+"_="+jb++)),l.ifModified&&(_.lastModified[e]&&v.setRequestHeader("If-Modified-Since",_.lastModified[e]),_.etag[e]&&v.setRequestHeader("If-None-Match",_.etag[e])),(l.data&&l.hasContent&&l.contentType!==!1||b.contentType)&&v.setRequestHeader("Content-Type",l.contentType),v.setRequestHeader("Accept",l.dataTypes[0]&&l.accepts[l.dataTypes[0]]?l.accepts[l.dataTypes[0]]+("*"!==l.dataTypes[0]?", "+ub+"; q=0.01":""):l.accepts["*"]);for(k in l.headers)v.setRequestHeader(k,l.headers[k]);if(l.beforeSend&&(l.beforeSend.call(m,v,l)===!1||2===t))return v.abort();u="abort";for(k in{success:1,error:1,complete:1})v[k](l[k]);if(d=K(tb,l,b,v)){v.readyState=1,j&&n.trigger("ajaxSend",[v,l]),l.async&&l.timeout>0&&(h=setTimeout(function(){v.abort("timeout")},l.timeout));try{t=1,d.send(r,c)}catch(w){if(!(2>t))throw w;c(-1,w)}}else c(-1,"No Transport");return v},getJSON:function(a,b,c){return _.get(a,b,c,"json")},getScript:function(a,b){return _.get(a,void 0,b,"script")}}),_.each(["get","post"],function(a,b){_[b]=function(a,c,d,e){return _.isFunction(c)&&(e=e||d,d=c,c=void 0),_.ajax({url:a,type:b,dataType:e,data:c,success:d})}}),_._evalUrl=function(a){return _.ajax({url:a,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},_.fn.extend({wrapAll:function(a){var b;return _.isFunction(a)?this.each(function(b){_(this).wrapAll(a.call(this,b))}):(this[0]&&(b=_(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){for(var a=this;a.firstElementChild;)a=a.firstElementChild;return a}).append(this)),this)},wrapInner:function(a){return _.isFunction(a)?this.each(function(b){_(this).wrapInner(a.call(this,b))}):this.each(function(){var b=_(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=_.isFunction(a);return this.each(function(c){_(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){_.nodeName(this,"body")||_(this).replaceWith(this.childNodes)}).end()}}),_.expr.filters.hidden=function(a){return a.offsetWidth<=0&&a.offsetHeight<=0},_.expr.filters.visible=function(a){return!_.expr.filters.hidden(a)};var xb=/%20/g,yb=/\[\]$/,zb=/\r?\n/g,Ab=/^(?:submit|button|image|reset|file)$/i,Bb=/^(?:input|select|textarea|keygen)/i;_.param=function(a,b){var c,d=[],e=function(a,b){b=_.isFunction(b)?b():null==b?"":b,
+d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(void 0===b&&(b=_.ajaxSettings&&_.ajaxSettings.traditional),_.isArray(a)||a.jquery&&!_.isPlainObject(a))_.each(a,function(){e(this.name,this.value)});else for(c in a)O(c,a[c],b,e);return d.join("&").replace(xb,"+")},_.fn.extend({serialize:function(){return _.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=_.prop(this,"elements");return a?_.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!_(this).is(":disabled")&&Bb.test(this.nodeName)&&!Ab.test(a)&&(this.checked||!ya.test(a))}).map(function(a,b){var c=_(this).val();return null==c?null:_.isArray(c)?_.map(c,function(a){return{name:b.name,value:a.replace(zb,"\r\n")}}):{name:b.name,value:c.replace(zb,"\r\n")}}).get()}}),_.ajaxSettings.xhr=function(){try{return new XMLHttpRequest}catch(a){}};var Cb=0,Db={},Eb={0:200,1223:204},Fb=_.ajaxSettings.xhr();a.attachEvent&&a.attachEvent("onunload",function(){for(var a in Db)Db[a]()}),Y.cors=!!Fb&&"withCredentials"in Fb,Y.ajax=Fb=!!Fb,_.ajaxTransport(function(a){var b;return Y.cors||Fb&&!a.crossDomain?{send:function(c,d){var e,f=a.xhr(),g=++Cb;if(f.open(a.type,a.url,a.async,a.username,a.password),a.xhrFields)for(e in a.xhrFields)f[e]=a.xhrFields[e];a.mimeType&&f.overrideMimeType&&f.overrideMimeType(a.mimeType),a.crossDomain||c["X-Requested-With"]||(c["X-Requested-With"]="XMLHttpRequest");for(e in c)f.setRequestHeader(e,c[e]);b=function(a){return function(){b&&(delete Db[g],b=f.onload=f.onerror=null,"abort"===a?f.abort():"error"===a?d(f.status,f.statusText):d(Eb[f.status]||f.status,f.statusText,"string"==typeof f.responseText?{text:f.responseText}:void 0,f.getAllResponseHeaders()))}},f.onload=b(),f.onerror=b("error"),b=Db[g]=b("abort");try{f.send(a.hasContent&&a.data||null)}catch(h){if(b)throw h}},abort:function(){b&&b()}}:void 0}),_.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(a){return _.globalEval(a),a}}}),_.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),_.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(d,e){b=_("<script>").prop({async:!0,charset:a.scriptCharset,src:a.url}).on("load error",c=function(a){b.remove(),c=null,a&&e("error"===a.type?404:200,a.type)}),Z.head.appendChild(b[0])},abort:function(){c&&c()}}}});var Gb=[],Hb=/(=)\?(?=&|$)|\?\?/;_.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=Gb.pop()||_.expando+"_"+jb++;return this[a]=!0,a}}),_.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(Hb.test(b.url)?"url":"string"==typeof b.data&&!(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&Hb.test(b.data)&&"data");return h||"jsonp"===b.dataTypes[0]?(e=b.jsonpCallback=_.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(Hb,"$1"+e):b.jsonp!==!1&&(b.url+=(kb.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||_.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,Gb.push(e)),g&&_.isFunction(f)&&f(g[0]),g=f=void 0}),"script"):void 0}),_.parseHTML=function(a,b,c){if(!a||"string"!=typeof a)return null;"boolean"==typeof b&&(c=b,b=!1),b=b||Z;var d=ga.exec(a),e=!c&&[];return d?[b.createElement(d[1])]:(d=_.buildFragment([a],b,e),e&&e.length&&_(e).remove(),_.merge([],d.childNodes))};var Ib=_.fn.load;_.fn.load=function(a,b,c){if("string"!=typeof a&&Ib)return Ib.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(" ");return h>=0&&(d=_.trim(a.slice(h)),a=a.slice(0,h)),_.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(e="POST"),g.length>0&&_.ajax({url:a,type:e,dataType:"html",data:b}).done(function(a){f=arguments,g.html(d?_("<div>").append(_.parseHTML(a)).find(d):a)}).complete(c&&function(a,b){g.each(c,f||[a.responseText,b,a])}),this},_.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){_.fn[b]=function(a){return this.on(b,a)}}),_.expr.filters.animated=function(a){return _.grep(_.timers,function(b){return a===b.elem}).length};var Jb=a.document.documentElement;_.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=_.css(a,"position"),l=_(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=_.css(a,"top"),i=_.css(a,"left"),j=("absolute"===k||"fixed"===k)&&(f+i).indexOf("auto")>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),_.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},_.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){_.offset.setOffset(this,a,b)});var b,c,d=this[0],e={top:0,left:0},f=d&&d.ownerDocument;if(f)return b=f.documentElement,_.contains(b,d)?(typeof d.getBoundingClientRect!==za&&(e=d.getBoundingClientRect()),c=P(f),{top:e.top+c.pageYOffset-b.clientTop,left:e.left+c.pageXOffset-b.clientLeft}):e},position:function(){if(this[0]){var a,b,c=this[0],d={top:0,left:0};return"fixed"===_.css(c,"position")?b=c.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),_.nodeName(a[0],"html")||(d=a.offset()),d.top+=_.css(a[0],"borderTopWidth",!0),d.left+=_.css(a[0],"borderLeftWidth",!0)),{top:b.top-d.top-_.css(c,"marginTop",!0),left:b.left-d.left-_.css(c,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||Jb;a&&!_.nodeName(a,"html")&&"static"===_.css(a,"position");)a=a.offsetParent;return a||Jb})}}),_.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(b,c){var d="pageYOffset"===c;_.fn[b]=function(e){return qa(this,function(b,e,f){var g=P(b);return void 0===f?g?g[c]:b[e]:void(g?g.scrollTo(d?a.pageXOffset:f,d?f:a.pageYOffset):b[e]=f)},b,e,arguments.length,null)}}),_.each(["top","left"],function(a,b){_.cssHooks[b]=w(Y.pixelPosition,function(a,c){return c?(c=v(a,b),Qa.test(c)?_(a).position()[b]+"px":c):void 0})}),_.each({Height:"height",Width:"width"},function(a,b){_.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){_.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return qa(this,function(b,c,d){var e;return _.isWindow(b)?b.document.documentElement["client"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body["scroll"+a],e["scroll"+a],b.body["offset"+a],e["offset"+a],e["client"+a])):void 0===d?_.css(b,c,g):_.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),_.fn.size=function(){return this.length},_.fn.andSelf=_.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return _});var Kb=a.jQuery,Lb=a.$;return _.noConflict=function(b){return a.$===_&&(a.$=Lb),b&&a.jQuery===_&&(a.jQuery=Kb),_},typeof b===za&&(a.jQuery=a.$=_),_});
\ No newline at end of file
diff --git a/js/foundation/js/vendor/modernizr.js b/js/foundation/js/vendor/modernizr.js
new file mode 100644 (file)
index 0000000..04508b5
--- /dev/null
@@ -0,0 +1,8 @@
+/*!
+ * Modernizr v2.8.3
+ * www.modernizr.com
+ *
+ * Copyright (c) Faruk Ates, Paul Irish, Alex Sexton
+ * Available under the BSD and MIT licenses: www.modernizr.com/license/
+ */
+window.Modernizr=function(a,b,c){function d(a){t.cssText=a}function e(a,b){return d(x.join(a+";")+(b||""))}function f(a,b){return typeof a===b}function g(a,b){return!!~(""+a).indexOf(b)}function h(a,b){for(var d in a){var e=a[d];if(!g(e,"-")&&t[e]!==c)return"pfx"==b?e:!0}return!1}function i(a,b,d){for(var e in a){var g=b[a[e]];if(g!==c)return d===!1?a[e]:f(g,"function")?g.bind(d||b):g}return!1}function j(a,b,c){var d=a.charAt(0).toUpperCase()+a.slice(1),e=(a+" "+z.join(d+" ")+d).split(" ");return f(b,"string")||f(b,"undefined")?h(e,b):(e=(a+" "+A.join(d+" ")+d).split(" "),i(e,b,c))}function k(){o.input=function(c){for(var d=0,e=c.length;e>d;d++)E[c[d]]=!!(c[d]in u);return E.list&&(E.list=!(!b.createElement("datalist")||!a.HTMLDataListElement)),E}("autocomplete autofocus list placeholder max min multiple pattern required step".split(" ")),o.inputtypes=function(a){for(var d,e,f,g=0,h=a.length;h>g;g++)u.setAttribute("type",e=a[g]),d="text"!==u.type,d&&(u.value=v,u.style.cssText="position:absolute;visibility:hidden;",/^range$/.test(e)&&u.style.WebkitAppearance!==c?(q.appendChild(u),f=b.defaultView,d=f.getComputedStyle&&"textfield"!==f.getComputedStyle(u,null).WebkitAppearance&&0!==u.offsetHeight,q.removeChild(u)):/^(search|tel)$/.test(e)||(d=/^(url|email)$/.test(e)?u.checkValidity&&u.checkValidity()===!1:u.value!=v)),D[a[g]]=!!d;return D}("search tel url email datetime date month week time datetime-local number range color".split(" "))}var l,m,n="2.8.3",o={},p=!0,q=b.documentElement,r="modernizr",s=b.createElement(r),t=s.style,u=b.createElement("input"),v=":)",w={}.toString,x=" -webkit- -moz- -o- -ms- ".split(" "),y="Webkit Moz O ms",z=y.split(" "),A=y.toLowerCase().split(" "),B={svg:"http://www.w3.org/2000/svg"},C={},D={},E={},F=[],G=F.slice,H=function(a,c,d,e){var f,g,h,i,j=b.createElement("div"),k=b.body,l=k||b.createElement("body");if(parseInt(d,10))for(;d--;)h=b.createElement("div"),h.id=e?e[d]:r+(d+1),j.appendChild(h);return f=["&#173;",'<style id="s',r,'">',a,"</style>"].join(""),j.id=r,(k?j:l).innerHTML+=f,l.appendChild(j),k||(l.style.background="",l.style.overflow="hidden",i=q.style.overflow,q.style.overflow="hidden",q.appendChild(l)),g=c(j,a),k?j.parentNode.removeChild(j):(l.parentNode.removeChild(l),q.style.overflow=i),!!g},I=function(b){var c=a.matchMedia||a.msMatchMedia;if(c)return c(b)&&c(b).matches||!1;var d;return H("@media "+b+" { #"+r+" { position: absolute; } }",function(b){d="absolute"==(a.getComputedStyle?getComputedStyle(b,null):b.currentStyle).position}),d},J=function(){function a(a,e){e=e||b.createElement(d[a]||"div"),a="on"+a;var g=a in e;return g||(e.setAttribute||(e=b.createElement("div")),e.setAttribute&&e.removeAttribute&&(e.setAttribute(a,""),g=f(e[a],"function"),f(e[a],"undefined")||(e[a]=c),e.removeAttribute(a))),e=null,g}var d={select:"input",change:"input",submit:"form",reset:"form",error:"img",load:"img",abort:"img"};return a}(),K={}.hasOwnProperty;m=f(K,"undefined")||f(K.call,"undefined")?function(a,b){return b in a&&f(a.constructor.prototype[b],"undefined")}:function(a,b){return K.call(a,b)},Function.prototype.bind||(Function.prototype.bind=function(a){var b=this;if("function"!=typeof b)throw new TypeError;var c=G.call(arguments,1),d=function(){if(this instanceof d){var e=function(){};e.prototype=b.prototype;var f=new e,g=b.apply(f,c.concat(G.call(arguments)));return Object(g)===g?g:f}return b.apply(a,c.concat(G.call(arguments)))};return d}),C.flexbox=function(){return j("flexWrap")},C.flexboxlegacy=function(){return j("boxDirection")},C.canvas=function(){var a=b.createElement("canvas");return!(!a.getContext||!a.getContext("2d"))},C.canvastext=function(){return!(!o.canvas||!f(b.createElement("canvas").getContext("2d").fillText,"function"))},C.webgl=function(){return!!a.WebGLRenderingContext},C.touch=function(){var c;return"ontouchstart"in a||a.DocumentTouch&&b instanceof DocumentTouch?c=!0:H(["@media (",x.join("touch-enabled),("),r,")","{#modernizr{top:9px;position:absolute}}"].join(""),function(a){c=9===a.offsetTop}),c},C.geolocation=function(){return"geolocation"in navigator},C.postmessage=function(){return!!a.postMessage},C.websqldatabase=function(){return!!a.openDatabase},C.indexedDB=function(){return!!j("indexedDB",a)},C.hashchange=function(){return J("hashchange",a)&&(b.documentMode===c||b.documentMode>7)},C.history=function(){return!(!a.history||!history.pushState)},C.draganddrop=function(){var a=b.createElement("div");return"draggable"in a||"ondragstart"in a&&"ondrop"in a},C.websockets=function(){return"WebSocket"in a||"MozWebSocket"in a},C.rgba=function(){return d("background-color:rgba(150,255,150,.5)"),g(t.backgroundColor,"rgba")},C.hsla=function(){return d("background-color:hsla(120,40%,100%,.5)"),g(t.backgroundColor,"rgba")||g(t.backgroundColor,"hsla")},C.multiplebgs=function(){return d("background:url(https://),url(https://),red url(https://)"),/(url\s*\(.*?){3}/.test(t.background)},C.backgroundsize=function(){return j("backgroundSize")},C.borderimage=function(){return j("borderImage")},C.borderradius=function(){return j("borderRadius")},C.boxshadow=function(){return j("boxShadow")},C.textshadow=function(){return""===b.createElement("div").style.textShadow},C.opacity=function(){return e("opacity:.55"),/^0.55$/.test(t.opacity)},C.cssanimations=function(){return j("animationName")},C.csscolumns=function(){return j("columnCount")},C.cssgradients=function(){var a="background-image:",b="gradient(linear,left top,right bottom,from(#9f9),to(white));",c="linear-gradient(left top,#9f9, white);";return d((a+"-webkit- ".split(" ").join(b+a)+x.join(c+a)).slice(0,-a.length)),g(t.backgroundImage,"gradient")},C.cssreflections=function(){return j("boxReflect")},C.csstransforms=function(){return!!j("transform")},C.csstransforms3d=function(){var a=!!j("perspective");return a&&"webkitPerspective"in q.style&&H("@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}",function(b,c){a=9===b.offsetLeft&&3===b.offsetHeight}),a},C.csstransitions=function(){return j("transition")},C.fontface=function(){var a;return H('@font-face {font-family:"font";src:url("https://")}',function(c,d){var e=b.getElementById("smodernizr"),f=e.sheet||e.styleSheet,g=f?f.cssRules&&f.cssRules[0]?f.cssRules[0].cssText:f.cssText||"":"";a=/src/i.test(g)&&0===g.indexOf(d.split(" ")[0])}),a},C.generatedcontent=function(){var a;return H(["#",r,"{font:0/0 a}#",r,':after{content:"',v,'";visibility:hidden;font:3px/1 a}'].join(""),function(b){a=b.offsetHeight>=3}),a},C.video=function(){var a=b.createElement("video"),c=!1;try{(c=!!a.canPlayType)&&(c=new Boolean(c),c.ogg=a.canPlayType('video/ogg; codecs="theora"').replace(/^no$/,""),c.h264=a.canPlayType('video/mp4; codecs="avc1.42E01E"').replace(/^no$/,""),c.webm=a.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/,""))}catch(d){}return c},C.audio=function(){var a=b.createElement("audio"),c=!1;try{(c=!!a.canPlayType)&&(c=new Boolean(c),c.ogg=a.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),c.mp3=a.canPlayType("audio/mpeg;").replace(/^no$/,""),c.wav=a.canPlayType('audio/wav; codecs="1"').replace(/^no$/,""),c.m4a=(a.canPlayType("audio/x-m4a;")||a.canPlayType("audio/aac;")).replace(/^no$/,""))}catch(d){}return c},C.localstorage=function(){try{return localStorage.setItem(r,r),localStorage.removeItem(r),!0}catch(a){return!1}},C.sessionstorage=function(){try{return sessionStorage.setItem(r,r),sessionStorage.removeItem(r),!0}catch(a){return!1}},C.webworkers=function(){return!!a.Worker},C.applicationcache=function(){return!!a.applicationCache},C.svg=function(){return!!b.createElementNS&&!!b.createElementNS(B.svg,"svg").createSVGRect},C.inlinesvg=function(){var a=b.createElement("div");return a.innerHTML="<svg/>",(a.firstChild&&a.firstChild.namespaceURI)==B.svg},C.smil=function(){return!!b.createElementNS&&/SVGAnimate/.test(w.call(b.createElementNS(B.svg,"animate")))},C.svgclippaths=function(){return!!b.createElementNS&&/SVGClipPath/.test(w.call(b.createElementNS(B.svg,"clipPath")))};for(var L in C)m(C,L)&&(l=L.toLowerCase(),o[l]=C[L](),F.push((o[l]?"":"no-")+l));return o.input||k(),o.addTest=function(a,b){if("object"==typeof a)for(var d in a)m(a,d)&&o.addTest(d,a[d]);else{if(a=a.toLowerCase(),o[a]!==c)return o;b="function"==typeof b?b():b,"undefined"!=typeof p&&p&&(q.className+=" "+(b?"":"no-")+a),o[a]=b}return o},d(""),s=u=null,function(a,b){function c(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x<style>"+b+"</style>",d.insertBefore(c.lastChild,d.firstChild)}function d(){var a=s.elements;return"string"==typeof a?a.split(" "):a}function e(a){var b=r[a[p]];return b||(b={},q++,a[p]=q,r[q]=b),b}function f(a,c,d){if(c||(c=b),k)return c.createElement(a);d||(d=e(c));var f;return f=d.cache[a]?d.cache[a].cloneNode():o.test(a)?(d.cache[a]=d.createElem(a)).cloneNode():d.createElem(a),!f.canHaveChildren||n.test(a)||f.tagUrn?f:d.frag.appendChild(f)}function g(a,c){if(a||(a=b),k)return a.createDocumentFragment();c=c||e(a);for(var f=c.frag.cloneNode(),g=0,h=d(),i=h.length;i>g;g++)f.createElement(h[g]);return f}function h(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return s.shivMethods?f(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+d().join().replace(/[\w\-]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(s,b.frag)}function i(a){a||(a=b);var d=e(a);return!s.shivCSS||j||d.hasCSS||(d.hasCSS=!!c(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),k||h(a,d),a}var j,k,l="3.7.0",m=a.html5||{},n=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,o=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,p="_html5shiv",q=0,r={};!function(){try{var a=b.createElement("a");a.innerHTML="<xyz></xyz>",j="hidden"in a,k=1==a.childNodes.length||function(){b.createElement("a");var a=b.createDocumentFragment();return"undefined"==typeof a.cloneNode||"undefined"==typeof a.createDocumentFragment||"undefined"==typeof a.createElement}()}catch(c){j=!0,k=!0}}();var s={elements:m.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output progress section summary template time video",version:l,shivCSS:m.shivCSS!==!1,supportsUnknownElements:k,shivMethods:m.shivMethods!==!1,type:"default",shivDocument:i,createElement:f,createDocumentFragment:g};a.html5=s,i(b)}(this,b),o._version=n,o._prefixes=x,o._domPrefixes=A,o._cssomPrefixes=z,o.mq=I,o.hasEvent=J,o.testProp=function(a){return h([a])},o.testAllProps=j,o.testStyles=H,o.prefixed=function(a,b,c){return b?j(a,b,c):j(a,"pfx")},q.className=q.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+(p?" js "+F.join(" "):""),o}(this,this.document);
\ No newline at end of file
diff --git a/js/foundation/js/vendor/placeholder.js b/js/foundation/js/vendor/placeholder.js
new file mode 100644 (file)
index 0000000..caa5495
--- /dev/null
@@ -0,0 +1,2 @@
+/*! http://mths.be/placeholder v2.0.9 by @mathias */
+!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a(jQuery)}(function(a){function b(b){var c={},d=/^jQuery\d+$/;return a.each(b.attributes,function(a,b){b.specified&&!d.test(b.name)&&(c[b.name]=b.value)}),c}function c(b,c){var d=this,f=a(d);if(d.value==f.attr("placeholder")&&f.hasClass("placeholder"))if(f.data("placeholder-password")){if(f=f.hide().nextAll('input[type="password"]:first').show().attr("id",f.removeAttr("id").data("placeholder-id")),b===!0)return f[0].value=c;f.focus()}else d.value="",f.removeClass("placeholder"),d==e()&&d.select()}function d(){var d,e=this,f=a(e),g=this.id;if(""===e.value){if("password"===e.type){if(!f.data("placeholder-textinput")){try{d=f.clone().attr({type:"text"})}catch(h){d=a("<input>").attr(a.extend(b(this),{type:"text"}))}d.removeAttr("name").data({"placeholder-password":f,"placeholder-id":g}).bind("focus.placeholder",c),f.data({"placeholder-textinput":d,"placeholder-id":g}).before(d)}f=f.removeAttr("id").hide().prevAll('input[type="text"]:first').attr("id",g).show()}f.addClass("placeholder"),f[0].value=f.attr("placeholder")}else f.removeClass("placeholder")}function e(){try{return document.activeElement}catch(a){}}var f,g,h="[object OperaMini]"==Object.prototype.toString.call(window.operamini),i="placeholder"in document.createElement("input")&&!h,j="placeholder"in document.createElement("textarea")&&!h,k=a.valHooks,l=a.propHooks;i&&j?(g=a.fn.placeholder=function(){return this},g.input=g.textarea=!0):(g=a.fn.placeholder=function(){var a=this;return a.filter((i?"textarea":":input")+"[placeholder]").not(".placeholder").bind({"focus.placeholder":c,"blur.placeholder":d}).data("placeholder-enabled",!0).trigger("blur.placeholder"),a},g.input=i,g.textarea=j,f={get:function(b){var c=a(b),d=c.data("placeholder-password");return d?d[0].value:c.data("placeholder-enabled")&&c.hasClass("placeholder")?"":b.value},set:function(b,f){var g=a(b),h=g.data("placeholder-password");return h?h[0].value=f:g.data("placeholder-enabled")?(""===f?(b.value=f,b!=e()&&d.call(b)):g.hasClass("placeholder")?c.call(b,!0,f)||(b.value=f):b.value=f,g):b.value=f}},i||(k.input=f,l.value=f),j||(k.textarea=f,l.value=f),a(function(){a(document).delegate("form","submit.placeholder",function(){var b=a(".placeholder",this).each(c);setTimeout(function(){b.each(d)},10)})}),a(window).bind("beforeunload.placeholder",function(){a(".placeholder").each(function(){this.value=""})}))});
\ No newline at end of file
diff --git a/js/jquery-placeholder/jquery.placeholder.js b/js/jquery-placeholder/jquery.placeholder.js
new file mode 100644 (file)
index 0000000..94e5e2c
--- /dev/null
@@ -0,0 +1,192 @@
+/*! http://mths.be/placeholder v2.0.9 by @mathias */
+(function(factory) {
+       if (typeof define === 'function' && define.amd) {
+               // AMD
+               define(['jquery'], factory);
+       } else {
+               // Browser globals
+               factory(jQuery);
+       }
+}(function($) {
+
+       // Opera Mini v7 doesn’t support placeholder although its DOM seems to indicate so
+       var isOperaMini = Object.prototype.toString.call(window.operamini) == '[object OperaMini]';
+       var isInputSupported = 'placeholder' in document.createElement('input') && !isOperaMini;
+       var isTextareaSupported = 'placeholder' in document.createElement('textarea') && !isOperaMini;
+       var valHooks = $.valHooks;
+       var propHooks = $.propHooks;
+       var hooks;
+       var placeholder;
+
+       if (isInputSupported && isTextareaSupported) {
+
+               placeholder = $.fn.placeholder = function() {
+                       return this;
+               };
+
+               placeholder.input = placeholder.textarea = true;
+
+       } else {
+
+               placeholder = $.fn.placeholder = function() {
+                       var $this = this;
+                       $this
+                               .filter((isInputSupported ? 'textarea' : ':input') + '[placeholder]')
+                               .not('.placeholder')
+                               .bind({
+                                       'focus.placeholder': clearPlaceholder,
+                                       'blur.placeholder': setPlaceholder
+                               })
+                               .data('placeholder-enabled', true)
+                               .trigger('blur.placeholder');
+                       return $this;
+               };
+
+               placeholder.input = isInputSupported;
+               placeholder.textarea = isTextareaSupported;
+
+               hooks = {
+                       'get': function(element) {
+                               var $element = $(element);
+
+                               var $passwordInput = $element.data('placeholder-password');
+                               if ($passwordInput) {
+                                       return $passwordInput[0].value;
+                               }
+
+                               return $element.data('placeholder-enabled') && $element.hasClass('placeholder') ? '' : element.value;
+                       },
+                       'set': function(element, value) {
+                               var $element = $(element);
+
+                               var $passwordInput = $element.data('placeholder-password');
+                               if ($passwordInput) {
+                                       return $passwordInput[0].value = value;
+                               }
+
+                               if (!$element.data('placeholder-enabled')) {
+                                       return element.value = value;
+                               }
+                               if (value === '') {
+                                       element.value = value;
+                                       // Issue #56: Setting the placeholder causes problems if the element continues to have focus.
+                                       if (element != safeActiveElement()) {
+                                               // We can't use `triggerHandler` here because of dummy text/password inputs :(
+                                               setPlaceholder.call(element);
+                                       }
+                               } else if ($element.hasClass('placeholder')) {
+                                       clearPlaceholder.call(element, true, value) || (element.value = value);
+                               } else {
+                                       element.value = value;
+                               }
+                               // `set` can not return `undefined`; see http://jsapi.info/jquery/1.7.1/val#L2363
+                               return $element;
+                       }
+               };
+
+               if (!isInputSupported) {
+                       valHooks.input = hooks;
+                       propHooks.value = hooks;
+               }
+               if (!isTextareaSupported) {
+                       valHooks.textarea = hooks;
+                       propHooks.value = hooks;
+               }
+
+               $(function() {
+                       // Look for forms
+                       $(document).delegate('form', 'submit.placeholder', function() {
+                               // Clear the placeholder values so they don't get submitted
+                               var $inputs = $('.placeholder', this).each(clearPlaceholder);
+                               setTimeout(function() {
+                                       $inputs.each(setPlaceholder);
+                               }, 10);
+                       });
+               });
+
+               // Clear placeholder values upon page reload
+               $(window).bind('beforeunload.placeholder', function() {
+                       $('.placeholder').each(function() {
+                               this.value = '';
+                       });
+               });
+
+       }
+
+       function args(elem) {
+               // Return an object of element attributes
+               var newAttrs = {};
+               var rinlinejQuery = /^jQuery\d+$/;
+               $.each(elem.attributes, function(i, attr) {
+                       if (attr.specified && !rinlinejQuery.test(attr.name)) {
+                               newAttrs[attr.name] = attr.value;
+                       }
+               });
+               return newAttrs;
+       }
+
+       function clearPlaceholder(event, value) {
+               var input = this;
+               var $input = $(input);
+               if (input.value == $input.attr('placeholder') && $input.hasClass('placeholder')) {
+                       if ($input.data('placeholder-password')) {
+                               $input = $input.hide().nextAll('input[type="password"]:first').show().attr('id', $input.removeAttr('id').data('placeholder-id'));
+                               // If `clearPlaceholder` was called from `$.valHooks.input.set`
+                               if (event === true) {
+                                       return $input[0].value = value;
+                               }
+                               $input.focus();
+                       } else {
+                               input.value = '';
+                               $input.removeClass('placeholder');
+                               input == safeActiveElement() && input.select();
+                       }
+               }
+       }
+
+       function setPlaceholder() {
+               var $replacement;
+               var input = this;
+               var $input = $(input);
+               var id = this.id;
+               if (input.value === '') {
+                       if (input.type === 'password') {
+                               if (!$input.data('placeholder-textinput')) {
+                                       try {
+                                               $replacement = $input.clone().attr({ 'type': 'text' });
+                                       } catch(e) {
+                                               $replacement = $('<input>').attr($.extend(args(this), { 'type': 'text' }));
+                                       }
+                                       $replacement
+                                               .removeAttr('name')
+                                               .data({
+                                                       'placeholder-password': $input,
+                                                       'placeholder-id': id
+                                               })
+                                               .bind('focus.placeholder', clearPlaceholder);
+                                       $input
+                                               .data({
+                                                       'placeholder-textinput': $replacement,
+                                                       'placeholder-id': id
+                                               })
+                                               .before($replacement);
+                               }
+                               $input = $input.removeAttr('id').hide().prevAll('input[type="text"]:first').attr('id', id).show();
+                               // Note: `$input[0] != input` now!
+                       }
+                       $input.addClass('placeholder');
+                       $input[0].value = $input.attr('placeholder');
+               } else {
+                       $input.removeClass('placeholder');
+               }
+       }
+
+       function safeActiveElement() {
+               // Avoid IE9 `document.activeElement` of death
+               // https://github.com/mathiasbynens/jquery-placeholder/pull/99
+               try {
+                       return document.activeElement;
+               } catch (exception) {}
+       }
+
+}));
diff --git a/js/jquery.cookie/jquery.cookie.js b/js/jquery.cookie/jquery.cookie.js
new file mode 100644 (file)
index 0000000..c7f3a59
--- /dev/null
@@ -0,0 +1,117 @@
+/*!
+ * jQuery Cookie Plugin v1.4.1
+ * https://github.com/carhartl/jquery-cookie
+ *
+ * Copyright 2013 Klaus Hartl
+ * Released under the MIT license
+ */
+(function (factory) {
+       if (typeof define === 'function' && define.amd) {
+               // AMD
+               define(['jquery'], factory);
+       } else if (typeof exports === 'object') {
+               // CommonJS
+               factory(require('jquery'));
+       } else {
+               // Browser globals
+               factory(jQuery);
+       }
+}(function ($) {
+
+       var pluses = /\+/g;
+
+       function encode(s) {
+               return config.raw ? s : encodeURIComponent(s);
+       }
+
+       function decode(s) {
+               return config.raw ? s : decodeURIComponent(s);
+       }
+
+       function stringifyCookieValue(value) {
+               return encode(config.json ? JSON.stringify(value) : String(value));
+       }
+
+       function parseCookieValue(s) {
+               if (s.indexOf('"') === 0) {
+                       // This is a quoted cookie as according to RFC2068, unescape...
+                       s = s.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, '\\');
+               }
+
+               try {
+                       // Replace server-side written pluses with spaces.
+                       // If we can't decode the cookie, ignore it, it's unusable.
+                       // If we can't parse the cookie, ignore it, it's unusable.
+                       s = decodeURIComponent(s.replace(pluses, ' '));
+                       return config.json ? JSON.parse(s) : s;
+               } catch(e) {}
+       }
+
+       function read(s, converter) {
+               var value = config.raw ? s : parseCookieValue(s);
+               return $.isFunction(converter) ? converter(value) : value;
+       }
+
+       var config = $.cookie = function (key, value, options) {
+
+               // Write
+
+               if (value !== undefined && !$.isFunction(value)) {
+                       options = $.extend({}, config.defaults, options);
+
+                       if (typeof options.expires === 'number') {
+                               var days = options.expires, t = options.expires = new Date();
+                               t.setTime(+t + days * 864e+5);
+                       }
+
+                       return (document.cookie = [
+                               encode(key), '=', stringifyCookieValue(value),
+                               options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE
+                               options.path    ? '; path=' + options.path : '',
+                               options.domain  ? '; domain=' + options.domain : '',
+                               options.secure  ? '; secure' : ''
+                       ].join(''));
+               }
+
+               // Read
+
+               var result = key ? undefined : {};
+
+               // To prevent the for loop in the first place assign an empty array
+               // in case there are no cookies at all. Also prevents odd result when
+               // calling $.cookie().
+               var cookies = document.cookie ? document.cookie.split('; ') : [];
+
+               for (var i = 0, l = cookies.length; i < l; i++) {
+                       var parts = cookies[i].split('=');
+                       var name = decode(parts.shift());
+                       var cookie = parts.join('=');
+
+                       if (key && key === name) {
+                               // If second argument (value) is a function it's a converter...
+                               result = read(cookie, value);
+                               break;
+                       }
+
+                       // Prevent storing a cookie that we couldn't decode.
+                       if (!key && (cookie = read(cookie)) !== undefined) {
+                               result[name] = cookie;
+                       }
+               }
+
+               return result;
+       };
+
+       config.defaults = {};
+
+       $.removeCookie = function (key, options) {
+               if ($.cookie(key) === undefined) {
+                       return false;
+               }
+
+               // Must not alter options, thus extending a fresh object...
+               $.cookie(key, '', $.extend({}, options, { expires: -1 }));
+               return !$.cookie(key);
+       };
+
+}));
diff --git a/js/jquery/dist/core.js b/js/jquery/dist/core.js
new file mode 100644 (file)
index 0000000..0e95274
--- /dev/null
@@ -0,0 +1,476 @@
+/* global Symbol */
+// Defining this global in .eslintrc.json would create a danger of using the global
+// unguarded in another place, it seems safer to define global only for this module
+
+define( [
+       "./var/arr",
+       "./var/document",
+       "./var/getProto",
+       "./var/slice",
+       "./var/concat",
+       "./var/push",
+       "./var/indexOf",
+       "./var/class2type",
+       "./var/toString",
+       "./var/hasOwn",
+       "./var/fnToString",
+       "./var/ObjectFunctionString",
+       "./var/support",
+       "./core/DOMEval"
+], function( arr, document, getProto, slice, concat, push, indexOf,
+       class2type, toString, hasOwn, fnToString, ObjectFunctionString,
+       support, DOMEval ) {
+
+"use strict";
+
+var
+       version = "3.2.1",
+
+       // Define a local copy of jQuery
+       jQuery = function( selector, context ) {
+
+               // The jQuery object is actually just the init constructor 'enhanced'
+               // Need init if jQuery is called (just allow error to be thrown if not included)
+               return new jQuery.fn.init( selector, context );
+       },
+
+       // Support: Android <=4.0 only
+       // Make sure we trim BOM and NBSP
+       rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
+
+       // Matches dashed string for camelizing
+       rmsPrefix = /^-ms-/,
+       rdashAlpha = /-([a-z])/g,
+
+       // Used by jQuery.camelCase as callback to replace()
+       fcamelCase = function( all, letter ) {
+               return letter.toUpperCase();
+       };
+
+jQuery.fn = jQuery.prototype = {
+
+       // The current version of jQuery being used
+       jquery: version,
+
+       constructor: jQuery,
+
+       // The default length of a jQuery object is 0
+       length: 0,
+
+       toArray: function() {
+               return slice.call( this );
+       },
+
+       // Get the Nth element in the matched element set OR
+       // Get the whole matched element set as a clean array
+       get: function( num ) {
+
+               // Return all the elements in a clean array
+               if ( num == null ) {
+                       return slice.call( this );
+               }
+
+               // Return just the one element from the set
+               return num < 0 ? this[ num + this.length ] : this[ num ];
+       },
+
+       // Take an array of elements and push it onto the stack
+       // (returning the new matched element set)
+       pushStack: function( elems ) {
+
+               // Build a new jQuery matched element set
+               var ret = jQuery.merge( this.constructor(), elems );
+
+               // Add the old object onto the stack (as a reference)
+               ret.prevObject = this;
+
+               // Return the newly-formed element set
+               return ret;
+       },
+
+       // Execute a callback for every element in the matched set.
+       each: function( callback ) {
+               return jQuery.each( this, callback );
+       },
+
+       map: function( callback ) {
+               return this.pushStack( jQuery.map( this, function( elem, i ) {
+                       return callback.call( elem, i, elem );
+               } ) );
+       },
+
+       slice: function() {
+               return this.pushStack( slice.apply( this, arguments ) );
+       },
+
+       first: function() {
+               return this.eq( 0 );
+       },
+
+       last: function() {
+               return this.eq( -1 );
+       },
+
+       eq: function( i ) {
+               var len = this.length,
+                       j = +i + ( i < 0 ? len : 0 );
+               return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );
+       },
+
+       end: function() {
+               return this.prevObject || this.constructor();
+       },
+
+       // For internal use only.
+       // Behaves like an Array's method, not like a jQuery method.
+       push: push,
+       sort: arr.sort,
+       splice: arr.splice
+};
+
+jQuery.extend = jQuery.fn.extend = function() {
+       var options, name, src, copy, copyIsArray, clone,
+               target = arguments[ 0 ] || {},
+               i = 1,
+               length = arguments.length,
+               deep = false;
+
+       // Handle a deep copy situation
+       if ( typeof target === "boolean" ) {
+               deep = target;
+
+               // Skip the boolean and the target
+               target = arguments[ i ] || {};
+               i++;
+       }
+
+       // Handle case when target is a string or something (possible in deep copy)
+       if ( typeof target !== "object" && !jQuery.isFunction( target ) ) {
+               target = {};
+       }
+
+       // Extend jQuery itself if only one argument is passed
+       if ( i === length ) {
+               target = this;
+               i--;
+       }
+
+       for ( ; i < length; i++ ) {
+
+               // Only deal with non-null/undefined values
+               if ( ( options = arguments[ i ] ) != null ) {
+
+                       // Extend the base object
+                       for ( name in options ) {
+                               src = target[ name ];
+                               copy = options[ name ];
+
+                               // Prevent never-ending loop
+                               if ( target === copy ) {
+                                       continue;
+                               }
+
+                               // Recurse if we're merging plain objects or arrays
+                               if ( deep && copy && ( jQuery.isPlainObject( copy ) ||
+                                       ( copyIsArray = Array.isArray( copy ) ) ) ) {
+
+                                       if ( copyIsArray ) {
+                                               copyIsArray = false;
+                                               clone = src && Array.isArray( src ) ? src : [];
+
+                                       } else {
+                                               clone = src && jQuery.isPlainObject( src ) ? src : {};
+                                       }
+
+                                       // Never move original objects, clone them
+                                       target[ name ] = jQuery.extend( deep, clone, copy );
+
+                               // Don't bring in undefined values
+                               } else if ( copy !== undefined ) {
+                                       target[ name ] = copy;
+                               }
+                       }
+               }
+       }
+
+       // Return the modified object
+       return target;
+};
+
+jQuery.extend( {
+
+       // Unique for each copy of jQuery on the page
+       expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ),
+
+       // Assume jQuery is ready without the ready module
+       isReady: true,
+
+       error: function( msg ) {
+               throw new Error( msg );
+       },
+
+       noop: function() {},
+
+       isFunction: function( obj ) {
+               return jQuery.type( obj ) === "function";
+       },
+
+       isWindow: function( obj ) {
+               return obj != null && obj === obj.window;
+       },
+
+       isNumeric: function( obj ) {
+
+               // As of jQuery 3.0, isNumeric is limited to
+               // strings and numbers (primitives or objects)
+               // that can be coerced to finite numbers (gh-2662)
+               var type = jQuery.type( obj );
+               return ( type === "number" || type === "string" ) &&
+
+                       // parseFloat NaNs numeric-cast false positives ("")
+                       // ...but misinterprets leading-number strings, particularly hex literals ("0x...")
+                       // subtraction forces infinities to NaN
+                       !isNaN( obj - parseFloat( obj ) );
+       },
+
+       isPlainObject: function( obj ) {
+               var proto, Ctor;
+
+               // Detect obvious negatives
+               // Use toString instead of jQuery.type to catch host objects
+               if ( !obj || toString.call( obj ) !== "[object Object]" ) {
+                       return false;
+               }
+
+               proto = getProto( obj );
+
+               // Objects with no prototype (e.g., `Object.create( null )`) are plain
+               if ( !proto ) {
+                       return true;
+               }
+
+               // Objects with prototype are plain iff they were constructed by a global Object function
+               Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor;
+               return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString;
+       },
+
+       isEmptyObject: function( obj ) {
+
+               /* eslint-disable no-unused-vars */
+               // See https://github.com/eslint/eslint/issues/6125
+               var name;
+
+               for ( name in obj ) {
+                       return false;
+               }
+               return true;
+       },
+
+       type: function( obj ) {
+               if ( obj == null ) {
+                       return obj + "";
+               }
+
+               // Support: Android <=2.3 only (functionish RegExp)
+               return typeof obj === "object" || typeof obj === "function" ?
+                       class2type[ toString.call( obj ) ] || "object" :
+                       typeof obj;
+       },
+
+       // Evaluates a script in a global context
+       globalEval: function( code ) {
+               DOMEval( code );
+       },
+
+       // Convert dashed to camelCase; used by the css and data modules
+       // Support: IE <=9 - 11, Edge 12 - 13
+       // Microsoft forgot to hump their vendor prefix (#9572)
+       camelCase: function( string ) {
+               return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
+       },
+
+       each: function( obj, callback ) {
+               var length, i = 0;
+
+               if ( isArrayLike( obj ) ) {
+                       length = obj.length;
+                       for ( ; i < length; i++ ) {
+                               if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
+                                       break;
+                               }
+                       }
+               } else {
+                       for ( i in obj ) {
+                               if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
+                                       break;
+                               }
+                       }
+               }
+
+               return obj;
+       },
+
+       // Support: Android <=4.0 only
+       trim: function( text ) {
+               return text == null ?
+                       "" :
+                       ( text + "" ).replace( rtrim, "" );
+       },
+
+       // results is for internal usage only
+       makeArray: function( arr, results ) {
+               var ret = results || [];
+
+               if ( arr != null ) {
+                       if ( isArrayLike( Object( arr ) ) ) {
+                               jQuery.merge( ret,
+                                       typeof arr === "string" ?
+                                       [ arr ] : arr
+                               );
+                       } else {
+                               push.call( ret, arr );
+                       }
+               }
+
+               return ret;
+       },
+
+       inArray: function( elem, arr, i ) {
+               return arr == null ? -1 : indexOf.call( arr, elem, i );
+       },
+
+       // Support: Android <=4.0 only, PhantomJS 1 only
+       // push.apply(_, arraylike) throws on ancient WebKit
+       merge: function( first, second ) {
+               var len = +second.length,
+                       j = 0,
+                       i = first.length;
+
+               for ( ; j < len; j++ ) {
+                       first[ i++ ] = second[ j ];
+               }
+
+               first.length = i;
+
+               return first;
+       },
+
+       grep: function( elems, callback, invert ) {
+               var callbackInverse,
+                       matches = [],
+                       i = 0,
+                       length = elems.length,
+                       callbackExpect = !invert;
+
+               // Go through the array, only saving the items
+               // that pass the validator function
+               for ( ; i < length; i++ ) {
+                       callbackInverse = !callback( elems[ i ], i );
+                       if ( callbackInverse !== callbackExpect ) {
+                               matches.push( elems[ i ] );
+                       }
+               }
+
+               return matches;
+       },
+
+       // arg is for internal usage only
+       map: function( elems, callback, arg ) {
+               var length, value,
+                       i = 0,
+                       ret = [];
+
+               // Go through the array, translating each of the items to their new values
+               if ( isArrayLike( elems ) ) {
+                       length = elems.length;
+                       for ( ; i < length; i++ ) {
+                               value = callback( elems[ i ], i, arg );
+
+                               if ( value != null ) {
+                                       ret.push( value );
+                               }
+                       }
+
+               // Go through every key on the object,
+               } else {
+                       for ( i in elems ) {
+                               value = callback( elems[ i ], i, arg );
+
+                               if ( value != null ) {
+                                       ret.push( value );
+                               }
+                       }
+               }
+
+               // Flatten any nested arrays
+               return concat.apply( [], ret );
+       },
+
+       // A global GUID counter for objects
+       guid: 1,
+
+       // Bind a function to a context, optionally partially applying any
+       // arguments.
+       proxy: function( fn, context ) {
+               var tmp, args, proxy;
+
+               if ( typeof context === "string" ) {
+                       tmp = fn[ context ];
+                       context = fn;
+                       fn = tmp;
+               }
+
+               // Quick check to determine if target is callable, in the spec
+               // this throws a TypeError, but we will just return undefined.
+               if ( !jQuery.isFunction( fn ) ) {
+                       return undefined;
+               }
+
+               // Simulated bind
+               args = slice.call( arguments, 2 );
+               proxy = function() {
+                       return fn.apply( context || this, args.concat( slice.call( arguments ) ) );
+               };
+
+               // Set the guid of unique handler to the same of original handler, so it can be removed
+               proxy.guid = fn.guid = fn.guid || jQuery.guid++;
+
+               return proxy;
+       },
+
+       now: Date.now,
+
+       // jQuery.support is not used in Core but other projects attach their
+       // properties to it so it needs to exist.
+       support: support
+} );
+
+if ( typeof Symbol === "function" ) {
+       jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];
+}
+
+// Populate the class2type map
+jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ),
+function( i, name ) {
+       class2type[ "[object " + name + "]" ] = name.toLowerCase();
+} );
+
+function isArrayLike( obj ) {
+
+       // Support: real iOS 8.2 only (not reproducible in simulator)
+       // `in` check used to prevent JIT error (gh-2145)
+       // hasOwn isn't used here due to false negatives
+       // regarding Nodelist length in IE
+       var length = !!obj && "length" in obj && obj.length,
+               type = jQuery.type( obj );
+
+       if ( type === "function" || jQuery.isWindow( obj ) ) {
+               return false;
+       }
+
+       return type === "array" || length === 0 ||
+               typeof length === "number" && length > 0 && ( length - 1 ) in obj;
+}
+
+return jQuery;
+} );
diff --git a/js/jquery/dist/jquery.js b/js/jquery/dist/jquery.js
new file mode 100644 (file)
index 0000000..d2d8ca4
--- /dev/null
@@ -0,0 +1,10253 @@
+/*!
+ * jQuery JavaScript Library v3.2.1
+ * https://jquery.com/
+ *
+ * Includes Sizzle.js
+ * https://sizzlejs.com/
+ *
+ * Copyright JS Foundation and other contributors
+ * Released under the MIT license
+ * https://jquery.org/license
+ *
+ * Date: 2017-03-20T18:59Z
+ */
+( function( global, factory ) {
+
+       "use strict";
+
+       if ( typeof module === "object" && typeof module.exports === "object" ) {
+
+               // For CommonJS and CommonJS-like environments where a proper `window`
+               // is present, execute the factory and get jQuery.
+               // For environments that do not have a `window` with a `document`
+               // (such as Node.js), expose a factory as module.exports.
+               // This accentuates the need for the creation of a real `window`.
+               // e.g. var jQuery = require("jquery")(window);
+               // See ticket #14549 for more info.
+               module.exports = global.document ?
+                       factory( global, true ) :
+                       function( w ) {
+                               if ( !w.document ) {
+                                       throw new Error( "jQuery requires a window with a document" );
+                               }
+                               return factory( w );
+                       };
+       } else {
+               factory( global );
+       }
+
+// Pass this if window is not defined yet
+} )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) {
+
+// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1
+// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode
+// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common
+// enough that all such attempts are guarded in a try block.
+"use strict";
+
+var arr = [];
+
+var document = window.document;
+
+var getProto = Object.getPrototypeOf;
+
+var slice = arr.slice;
+
+var concat = arr.concat;
+
+var push = arr.push;
+
+var indexOf = arr.indexOf;
+
+var class2type = {};
+
+var toString = class2type.toString;
+
+var hasOwn = class2type.hasOwnProperty;
+
+var fnToString = hasOwn.toString;
+
+var ObjectFunctionString = fnToString.call( Object );
+
+var support = {};
+
+
+
+       function DOMEval( code, doc ) {
+               doc = doc || document;
+
+               var script = doc.createElement( "script" );
+
+               script.text = code;
+               doc.head.appendChild( script ).parentNode.removeChild( script );
+       }
+/* global Symbol */
+// Defining this global in .eslintrc.json would create a danger of using the global
+// unguarded in another place, it seems safer to define global only for this module
+
+
+
+var
+       version = "3.2.1",
+
+       // Define a local copy of jQuery
+       jQuery = function( selector, context ) {
+
+               // The jQuery object is actually just the init constructor 'enhanced'
+               // Need init if jQuery is called (just allow error to be thrown if not included)
+               return new jQuery.fn.init( selector, context );
+       },
+
+       // Support: Android <=4.0 only
+       // Make sure we trim BOM and NBSP
+       rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
+
+       // Matches dashed string for camelizing
+       rmsPrefix = /^-ms-/,
+       rdashAlpha = /-([a-z])/g,
+
+       // Used by jQuery.camelCase as callback to replace()
+       fcamelCase = function( all, letter ) {
+               return letter.toUpperCase();
+       };
+
+jQuery.fn = jQuery.prototype = {
+
+       // The current version of jQuery being used
+       jquery: version,
+
+       constructor: jQuery,
+
+       // The default length of a jQuery object is 0
+       length: 0,
+
+       toArray: function() {
+               return slice.call( this );
+       },
+
+       // Get the Nth element in the matched element set OR
+       // Get the whole matched element set as a clean array
+       get: function( num ) {
+
+               // Return all the elements in a clean array
+               if ( num == null ) {
+                       return slice.call( this );
+               }
+
+               // Return just the one element from the set
+               return num < 0 ? this[ num + this.length ] : this[ num ];
+       },
+
+       // Take an array of elements and push it onto the stack
+       // (returning the new matched element set)
+       pushStack: function( elems ) {
+
+               // Build a new jQuery matched element set
+               var ret = jQuery.merge( this.constructor(), elems );
+
+               // Add the old object onto the stack (as a reference)
+               ret.prevObject = this;
+
+               // Return the newly-formed element set
+               return ret;
+       },
+
+       // Execute a callback for every element in the matched set.
+       each: function( callback ) {
+               return jQuery.each( this, callback );
+       },
+
+       map: function( callback ) {
+               return this.pushStack( jQuery.map( this, function( elem, i ) {
+                       return callback.call( elem, i, elem );
+               } ) );
+       },
+
+       slice: function() {
+               return this.pushStack( slice.apply( this, arguments ) );
+       },
+
+       first: function() {
+               return this.eq( 0 );
+       },
+
+       last: function() {
+               return this.eq( -1 );
+       },
+
+       eq: function( i ) {
+               var len = this.length,
+                       j = +i + ( i < 0 ? len : 0 );
+               return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );
+       },
+
+       end: function() {
+               return this.prevObject || this.constructor();
+       },
+
+       // For internal use only.
+       // Behaves like an Array's method, not like a jQuery method.
+       push: push,
+       sort: arr.sort,
+       splice: arr.splice
+};
+
+jQuery.extend = jQuery.fn.extend = function() {
+       var options, name, src, copy, copyIsArray, clone,
+               target = arguments[ 0 ] || {},
+               i = 1,
+               length = arguments.length,
+               deep = false;
+
+       // Handle a deep copy situation
+       if ( typeof target === "boolean" ) {
+               deep = target;
+
+               // Skip the boolean and the target
+               target = arguments[ i ] || {};
+               i++;
+       }
+
+       // Handle case when target is a string or something (possible in deep copy)
+       if ( typeof target !== "object" && !jQuery.isFunction( target ) ) {
+               target = {};
+       }
+
+       // Extend jQuery itself if only one argument is passed
+       if ( i === length ) {
+               target = this;
+               i--;
+       }
+
+       for ( ; i < length; i++ ) {
+
+               // Only deal with non-null/undefined values
+               if ( ( options = arguments[ i ] ) != null ) {
+
+                       // Extend the base object
+                       for ( name in options ) {
+                               src = target[ name ];
+                               copy = options[ name ];
+
+                               // Prevent never-ending loop
+                               if ( target === copy ) {
+                                       continue;
+                               }
+
+                               // Recurse if we're merging plain objects or arrays
+                               if ( deep && copy && ( jQuery.isPlainObject( copy ) ||
+                                       ( copyIsArray = Array.isArray( copy ) ) ) ) {
+
+                                       if ( copyIsArray ) {
+                                               copyIsArray = false;
+                                               clone = src && Array.isArray( src ) ? src : [];
+
+                                       } else {
+                                               clone = src && jQuery.isPlainObject( src ) ? src : {};
+                                       }
+
+                                       // Never move original objects, clone them
+                                       target[ name ] = jQuery.extend( deep, clone, copy );
+
+                               // Don't bring in undefined values
+                               } else if ( copy !== undefined ) {
+                                       target[ name ] = copy;
+                               }
+                       }
+               }
+       }
+
+       // Return the modified object
+       return target;
+};
+
+jQuery.extend( {
+
+       // Unique for each copy of jQuery on the page
+       expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ),
+
+       // Assume jQuery is ready without the ready module
+       isReady: true,
+
+       error: function( msg ) {
+               throw new Error( msg );
+       },
+
+       noop: function() {},
+
+       isFunction: function( obj ) {
+               return jQuery.type( obj ) === "function";
+       },
+
+       isWindow: function( obj ) {
+               return obj != null && obj === obj.window;
+       },
+
+       isNumeric: function( obj ) {
+
+               // As of jQuery 3.0, isNumeric is limited to
+               // strings and numbers (primitives or objects)
+               // that can be coerced to finite numbers (gh-2662)
+               var type = jQuery.type( obj );
+               return ( type === "number" || type === "string" ) &&
+
+                       // parseFloat NaNs numeric-cast false positives ("")
+                       // ...but misinterprets leading-number strings, particularly hex literals ("0x...")
+                       // subtraction forces infinities to NaN
+                       !isNaN( obj - parseFloat( obj ) );
+       },
+
+       isPlainObject: function( obj ) {
+               var proto, Ctor;
+
+               // Detect obvious negatives
+               // Use toString instead of jQuery.type to catch host objects
+               if ( !obj || toString.call( obj ) !== "[object Object]" ) {
+                       return false;
+               }
+
+               proto = getProto( obj );
+
+               // Objects with no prototype (e.g., `Object.create( null )`) are plain
+               if ( !proto ) {
+                       return true;
+               }
+
+               // Objects with prototype are plain iff they were constructed by a global Object function
+               Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor;
+               return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString;
+       },
+
+       isEmptyObject: function( obj ) {
+
+               /* eslint-disable no-unused-vars */
+               // See https://github.com/eslint/eslint/issues/6125
+               var name;
+
+               for ( name in obj ) {
+                       return false;
+               }
+               return true;
+       },
+
+       type: function( obj ) {
+               if ( obj == null ) {
+                       return obj + "";
+               }
+
+               // Support: Android <=2.3 only (functionish RegExp)
+               return typeof obj === "object" || typeof obj === "function" ?
+                       class2type[ toString.call( obj ) ] || "object" :
+                       typeof obj;
+       },
+
+       // Evaluates a script in a global context
+       globalEval: function( code ) {
+               DOMEval( code );
+       },
+
+       // Convert dashed to camelCase; used by the css and data modules
+       // Support: IE <=9 - 11, Edge 12 - 13
+       // Microsoft forgot to hump their vendor prefix (#9572)
+       camelCase: function( string ) {
+               return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
+       },
+
+       each: function( obj, callback ) {
+               var length, i = 0;
+
+               if ( isArrayLike( obj ) ) {
+                       length = obj.length;
+                       for ( ; i < length; i++ ) {
+                               if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
+                                       break;
+                               }
+                       }
+               } else {
+                       for ( i in obj ) {
+                               if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
+                                       break;
+                               }
+                       }
+               }
+
+               return obj;
+       },
+
+       // Support: Android <=4.0 only
+       trim: function( text ) {
+               return text == null ?
+                       "" :
+                       ( text + "" ).replace( rtrim, "" );
+       },
+
+       // results is for internal usage only
+       makeArray: function( arr, results ) {
+               var ret = results || [];
+
+               if ( arr != null ) {
+                       if ( isArrayLike( Object( arr ) ) ) {
+                               jQuery.merge( ret,
+                                       typeof arr === "string" ?
+                                       [ arr ] : arr
+                               );
+                       } else {
+                               push.call( ret, arr );
+                       }
+               }
+
+               return ret;
+       },
+
+       inArray: function( elem, arr, i ) {
+               return arr == null ? -1 : indexOf.call( arr, elem, i );
+       },
+
+       // Support: Android <=4.0 only, PhantomJS 1 only
+       // push.apply(_, arraylike) throws on ancient WebKit
+       merge: function( first, second ) {
+               var len = +second.length,
+                       j = 0,
+                       i = first.length;
+
+               for ( ; j < len; j++ ) {
+                       first[ i++ ] = second[ j ];
+               }
+
+               first.length = i;
+
+               return first;
+       },
+
+       grep: function( elems, callback, invert ) {
+               var callbackInverse,
+                       matches = [],
+                       i = 0,
+                       length = elems.length,
+                       callbackExpect = !invert;
+
+               // Go through the array, only saving the items
+               // that pass the validator function
+               for ( ; i < length; i++ ) {
+                       callbackInverse = !callback( elems[ i ], i );
+                       if ( callbackInverse !== callbackExpect ) {
+                               matches.push( elems[ i ] );
+                       }
+               }
+
+               return matches;
+       },
+
+       // arg is for internal usage only
+       map: function( elems, callback, arg ) {
+               var length, value,
+                       i = 0,
+                       ret = [];
+
+               // Go through the array, translating each of the items to their new values
+               if ( isArrayLike( elems ) ) {
+                       length = elems.length;
+                       for ( ; i < length; i++ ) {
+                               value = callback( elems[ i ], i, arg );
+
+                               if ( value != null ) {
+                                       ret.push( value );
+                               }
+                       }
+
+               // Go through every key on the object,
+               } else {
+                       for ( i in elems ) {
+                               value = callback( elems[ i ], i, arg );
+
+                               if ( value != null ) {
+                                       ret.push( value );
+                               }
+                       }
+               }
+
+               // Flatten any nested arrays
+               return concat.apply( [], ret );
+       },
+
+       // A global GUID counter for objects
+       guid: 1,
+
+       // Bind a function to a context, optionally partially applying any
+       // arguments.
+       proxy: function( fn, context ) {
+               var tmp, args, proxy;
+
+               if ( typeof context === "string" ) {
+                       tmp = fn[ context ];
+                       context = fn;
+                       fn = tmp;
+               }
+
+               // Quick check to determine if target is callable, in the spec
+               // this throws a TypeError, but we will just return undefined.
+               if ( !jQuery.isFunction( fn ) ) {
+                       return undefined;
+               }
+
+               // Simulated bind
+               args = slice.call( arguments, 2 );
+               proxy = function() {
+                       return fn.apply( context || this, args.concat( slice.call( arguments ) ) );
+               };
+
+               // Set the guid of unique handler to the same of original handler, so it can be removed
+               proxy.guid = fn.guid = fn.guid || jQuery.guid++;
+
+               return proxy;
+       },
+
+       now: Date.now,
+
+       // jQuery.support is not used in Core but other projects attach their
+       // properties to it so it needs to exist.
+       support: support
+} );
+
+if ( typeof Symbol === "function" ) {
+       jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];
+}
+
+// Populate the class2type map
+jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ),
+function( i, name ) {
+       class2type[ "[object " + name + "]" ] = name.toLowerCase();
+} );
+
+function isArrayLike( obj ) {
+
+       // Support: real iOS 8.2 only (not reproducible in simulator)
+       // `in` check used to prevent JIT error (gh-2145)
+       // hasOwn isn't used here due to false negatives
+       // regarding Nodelist length in IE
+       var length = !!obj && "length" in obj && obj.length,
+               type = jQuery.type( obj );
+
+       if ( type === "function" || jQuery.isWindow( obj ) ) {
+               return false;
+       }
+
+       return type === "array" || length === 0 ||
+               typeof length === "number" && length > 0 && ( length - 1 ) in obj;
+}
+var Sizzle =
+/*!
+ * Sizzle CSS Selector Engine v2.3.3
+ * https://sizzlejs.com/
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license
+ * http://jquery.org/license
+ *
+ * Date: 2016-08-08
+ */
+(function( window ) {
+
+var i,
+       support,
+       Expr,
+       getText,
+       isXML,
+       tokenize,
+       compile,
+       select,
+       outermostContext,
+       sortInput,
+       hasDuplicate,
+
+       // Local document vars
+       setDocument,
+       document,
+       docElem,
+       documentIsHTML,
+       rbuggyQSA,
+       rbuggyMatches,
+       matches,
+       contains,
+
+       // Instance-specific data
+       expando = "sizzle" + 1 * new Date(),
+       preferredDoc = window.document,
+       dirruns = 0,
+       done = 0,
+       classCache = createCache(),
+       tokenCache = createCache(),
+       compilerCache = createCache(),
+       sortOrder = function( a, b ) {
+               if ( a === b ) {
+                       hasDuplicate = true;
+               }
+               return 0;
+       },
+
+       // Instance methods
+       hasOwn = ({}).hasOwnProperty,
+       arr = [],
+       pop = arr.pop,
+       push_native = arr.push,
+       push = arr.push,
+       slice = arr.slice,
+       // Use a stripped-down indexOf as it's faster than native
+       // https://jsperf.com/thor-indexof-vs-for/5
+       indexOf = function( list, elem ) {
+               var i = 0,
+                       len = list.length;
+               for ( ; i < len; i++ ) {
+                       if ( list[i] === elem ) {
+                               return i;
+                       }
+               }
+               return -1;
+       },
+
+       booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
+
+       // Regular expressions
+
+       // http://www.w3.org/TR/css3-selectors/#whitespace
+       whitespace = "[\\x20\\t\\r\\n\\f]",
+
+       // http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier
+       identifier = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+",
+
+       // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors
+       attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace +
+               // Operator (capture 2)
+               "*([*^$|!~]?=)" + whitespace +
+               // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]"
+               "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace +
+               "*\\]",
+
+       pseudos = ":(" + identifier + ")(?:\\((" +
+               // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:
+               // 1. quoted (capture 3; capture 4 or capture 5)
+               "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" +
+               // 2. simple (capture 6)
+               "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" +
+               // 3. anything else (capture 2)
+               ".*" +
+               ")\\)|)",
+
+       // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter
+       rwhitespace = new RegExp( whitespace + "+", "g" ),
+       rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ),
+
+       rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ),
+       rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ),
+
+       rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ),
+
+       rpseudo = new RegExp( pseudos ),
+       ridentifier = new RegExp( "^" + identifier + "$" ),
+
+       matchExpr = {
+               "ID": new RegExp( "^#(" + identifier + ")" ),
+               "CLASS": new RegExp( "^\\.(" + identifier + ")" ),
+               "TAG": new RegExp( "^(" + identifier + "|[*])" ),
+               "ATTR": new RegExp( "^" + attributes ),
+               "PSEUDO": new RegExp( "^" + pseudos ),
+               "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace +
+                       "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace +
+                       "*(\\d+)|))" + whitespace + "*\\)|)", "i" ),
+               "bool": new RegExp( "^(?:" + booleans + ")$", "i" ),
+               // For use in libraries implementing .is()
+               // We use this for POS matching in `select`
+               "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" +
+                       whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" )
+       },
+
+       rinputs = /^(?:input|select|textarea|button)$/i,
+       rheader = /^h\d$/i,
+
+       rnative = /^[^{]+\{\s*\[native \w/,
+
+       // Easily-parseable/retrievable ID or TAG or CLASS selectors
+       rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
+
+       rsibling = /[+~]/,
+
+       // CSS escapes
+       // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters
+       runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ),
+       funescape = function( _, escaped, escapedWhitespace ) {
+               var high = "0x" + escaped - 0x10000;
+               // NaN means non-codepoint
+               // Support: Firefox<24
+               // Workaround erroneous numeric interpretation of +"0x"
+               return high !== high || escapedWhitespace ?
+                       escaped :
+                       high < 0 ?
+                               // BMP codepoint
+                               String.fromCharCode( high + 0x10000 ) :
+                               // Supplemental Plane codepoint (surrogate pair)
+                               String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );
+       },
+
+       // CSS string/identifier serialization
+       // https://drafts.csswg.org/cssom/#common-serializing-idioms
+       rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,
+       fcssescape = function( ch, asCodePoint ) {
+               if ( asCodePoint ) {
+
+                       // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER
+                       if ( ch === "\0" ) {
+                               return "\uFFFD";
+                       }
+
+                       // Control characters and (dependent upon position) numbers get escaped as code points
+                       return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " ";
+               }
+
+               // Other potentially-special ASCII characters get backslash-escaped
+               return "\\" + ch;
+       },
+
+       // Used for iframes
+       // See setDocument()
+       // Removing the function wrapper causes a "Permission Denied"
+       // error in IE
+       unloadHandler = function() {
+               setDocument();
+       },
+
+       disabledAncestor = addCombinator(
+               function( elem ) {
+                       return elem.disabled === true && ("form" in elem || "label" in elem);
+               },
+               { dir: "parentNode", next: "legend" }
+       );
+
+// Optimize for push.apply( _, NodeList )
+try {
+       push.apply(
+               (arr = slice.call( preferredDoc.childNodes )),
+               preferredDoc.childNodes
+       );
+       // Support: Android<4.0
+       // Detect silently failing push.apply
+       arr[ preferredDoc.childNodes.length ].nodeType;
+} catch ( e ) {
+       push = { apply: arr.length ?
+
+               // Leverage slice if possible
+               function( target, els ) {
+                       push_native.apply( target, slice.call(els) );
+               } :
+
+               // Support: IE<9
+               // Otherwise append directly
+               function( target, els ) {
+                       var j = target.length,
+                               i = 0;
+                       // Can't trust NodeList.length
+                       while ( (target[j++] = els[i++]) ) {}
+                       target.length = j - 1;
+               }
+       };
+}
+
+function Sizzle( selector, context, results, seed ) {
+       var m, i, elem, nid, match, groups, newSelector,
+               newContext = context && context.ownerDocument,
+
+               // nodeType defaults to 9, since context defaults to document
+               nodeType = context ? context.nodeType : 9;
+
+       results = results || [];
+
+       // Return early from calls with invalid selector or context
+       if ( typeof selector !== "string" || !selector ||
+               nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {
+
+               return results;
+       }
+
+       // Try to shortcut find operations (as opposed to filters) in HTML documents
+       if ( !seed ) {
+
+               if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {
+                       setDocument( context );
+               }
+               context = context || document;
+
+               if ( documentIsHTML ) {
+
+                       // If the selector is sufficiently simple, try using a "get*By*" DOM method
+                       // (excepting DocumentFragment context, where the methods don't exist)
+                       if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) {
+
+                               // ID selector
+                               if ( (m = match[1]) ) {
+
+                                       // Document context
+                                       if ( nodeType === 9 ) {
+                                               if ( (elem = context.getElementById( m )) ) {
+
+                                                       // Support: IE, Opera, Webkit
+                                                       // TODO: identify versions
+                                                       // getElementById can match elements by name instead of ID
+                                                       if ( elem.id === m ) {
+                                                               results.push( elem );
+                                                               return results;
+                                                       }
+                                               } else {
+                                                       return results;
+                                               }
+
+                                       // Element context
+                                       } else {
+
+                                               // Support: IE, Opera, Webkit
+                                               // TODO: identify versions
+                                               // getElementById can match elements by name instead of ID
+                                               if ( newContext && (elem = newContext.getElementById( m )) &&
+                                                       contains( context, elem ) &&
+                                                       elem.id === m ) {
+
+                                                       results.push( elem );
+                                                       return results;
+                                               }
+                                       }
+
+                               // Type selector
+                               } else if ( match[2] ) {
+                                       push.apply( results, context.getElementsByTagName( selector ) );
+                                       return results;
+
+                               // Class selector
+                               } else if ( (m = match[3]) && support.getElementsByClassName &&
+                                       context.getElementsByClassName ) {
+
+                                       push.apply( results, context.getElementsByClassName( m ) );
+                                       return results;
+                               }
+                       }
+
+                       // Take advantage of querySelectorAll
+                       if ( support.qsa &&
+                               !compilerCache[ selector + " " ] &&
+                               (!rbuggyQSA || !rbuggyQSA.test( selector )) ) {
+
+                               if ( nodeType !== 1 ) {
+                                       newContext = context;
+                                       newSelector = selector;
+
+                               // qSA looks outside Element context, which is not what we want
+                               // Thanks to Andrew Dupont for this workaround technique
+                               // Support: IE <=8
+                               // Exclude object elements
+                               } else if ( context.nodeName.toLowerCase() !== "object" ) {
+
+                                       // Capture the context ID, setting it first if necessary
+                                       if ( (nid = context.getAttribute( "id" )) ) {
+                                               nid = nid.replace( rcssescape, fcssescape );
+                                       } else {
+                                               context.setAttribute( "id", (nid = expando) );
+                                       }
+
+                                       // Prefix every selector in the list
+                                       groups = tokenize( selector );
+                                       i = groups.length;
+                                       while ( i-- ) {
+                                               groups[i] = "#" + nid + " " + toSelector( groups[i] );
+                                       }
+                                       newSelector = groups.join( "," );
+
+                                       // Expand context for sibling selectors
+                                       newContext = rsibling.test( selector ) && testContext( context.parentNode ) ||
+                                               context;
+                               }
+
+                               if ( newSelector ) {
+                                       try {
+                                               push.apply( results,
+                                                       newContext.querySelectorAll( newSelector )
+                                               );
+                                               return results;
+                                       } catch ( qsaError ) {
+                                       } finally {
+                                               if ( nid === expando ) {
+                                                       context.removeAttribute( "id" );
+                                               }
+                                       }
+                               }
+                       }
+               }
+       }
+
+       // All others
+       return select( selector.replace( rtrim, "$1" ), context, results, seed );
+}
+
+/**
+ * Create key-value caches of limited size
+ * @returns {function(string, object)} Returns the Object data after storing it on itself with
+ *     property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)
+ *     deleting the oldest entry
+ */
+function createCache() {
+       var keys = [];
+
+       function cache( key, value ) {
+               // Use (key + " ") to avoid collision with native prototype properties (see Issue #157)
+               if ( keys.push( key + " " ) > Expr.cacheLength ) {
+                       // Only keep the most recent entries
+                       delete cache[ keys.shift() ];
+               }
+               return (cache[ key + " " ] = value);
+       }
+       return cache;
+}
+
+/**
+ * Mark a function for special use by Sizzle
+ * @param {Function} fn The function to mark
+ */
+function markFunction( fn ) {
+       fn[ expando ] = true;
+       return fn;
+}
+
+/**
+ * Support testing using an element
+ * @param {Function} fn Passed the created element and returns a boolean result
+ */
+function assert( fn ) {
+       var el = document.createElement("fieldset");
+
+       try {
+               return !!fn( el );
+       } catch (e) {
+               return false;
+       } finally {
+               // Remove from its parent by default
+               if ( el.parentNode ) {
+                       el.parentNode.removeChild( el );
+               }
+               // release memory in IE
+               el = null;
+       }
+}
+
+/**
+ * Adds the same handler for all of the specified attrs
+ * @param {String} attrs Pipe-separated list of attributes
+ * @param {Function} handler The method that will be applied
+ */
+function addHandle( attrs, handler ) {
+       var arr = attrs.split("|"),
+               i = arr.length;
+
+       while ( i-- ) {
+               Expr.attrHandle[ arr[i] ] = handler;
+       }
+}
+
+/**
+ * Checks document order of two siblings
+ * @param {Element} a
+ * @param {Element} b
+ * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b
+ */
+function siblingCheck( a, b ) {
+       var cur = b && a,
+               diff = cur && a.nodeType === 1 && b.nodeType === 1 &&
+                       a.sourceIndex - b.sourceIndex;
+
+       // Use IE sourceIndex if available on both nodes
+       if ( diff ) {
+               return diff;
+       }
+
+       // Check if b follows a
+       if ( cur ) {
+               while ( (cur = cur.nextSibling) ) {
+                       if ( cur === b ) {
+                               return -1;
+                       }
+               }
+       }
+
+       return a ? 1 : -1;
+}
+
+/**
+ * Returns a function to use in pseudos for input types
+ * @param {String} type
+ */
+function createInputPseudo( type ) {
+       return function( elem ) {
+               var name = elem.nodeName.toLowerCase();
+               return name === "input" && elem.type === type;
+       };
+}
+
+/**
+ * Returns a function to use in pseudos for buttons
+ * @param {String} type
+ */
+function createButtonPseudo( type ) {
+       return function( elem ) {
+               var name = elem.nodeName.toLowerCase();
+               return (name === "input" || name === "button") && elem.type === type;
+       };
+}
+
+/**
+ * Returns a function to use in pseudos for :enabled/:disabled
+ * @param {Boolean} disabled true for :disabled; false for :enabled
+ */
+function createDisabledPseudo( disabled ) {
+
+       // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable
+       return function( elem ) {
+
+               // Only certain elements can match :enabled or :disabled
+               // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled
+               // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled
+               if ( "form" in elem ) {
+
+                       // Check for inherited disabledness on relevant non-disabled elements:
+                       // * listed form-associated elements in a disabled fieldset
+                       //   https://html.spec.whatwg.org/multipage/forms.html#category-listed
+                       //   https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled
+                       // * option elements in a disabled optgroup
+                       //   https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled
+                       // All such elements have a "form" property.
+                       if ( elem.parentNode && elem.disabled === false ) {
+
+                               // Option elements defer to a parent optgroup if present
+                               if ( "label" in elem ) {
+                                       if ( "label" in elem.parentNode ) {
+                                               return elem.parentNode.disabled === disabled;
+                                       } else {
+                                               return elem.disabled === disabled;
+                                       }
+                               }
+
+                               // Support: IE 6 - 11
+                               // Use the isDisabled shortcut property to check for disabled fieldset ancestors
+                               return elem.isDisabled === disabled ||
+
+                                       // Where there is no isDisabled, check manually
+                                       /* jshint -W018 */
+                                       elem.isDisabled !== !disabled &&
+                                               disabledAncestor( elem ) === disabled;
+                       }
+
+                       return elem.disabled === disabled;
+
+               // Try to winnow out elements that can't be disabled before trusting the disabled property.
+               // Some victims get caught in our net (label, legend, menu, track), but it shouldn't
+               // even exist on them, let alone have a boolean value.
+               } else if ( "label" in elem ) {
+                       return elem.disabled === disabled;
+               }
+
+               // Remaining elements are neither :enabled nor :disabled
+               return false;
+       };
+}
+
+/**
+ * Returns a function to use in pseudos for positionals
+ * @param {Function} fn
+ */
+function createPositionalPseudo( fn ) {
+       return markFunction(function( argument ) {
+               argument = +argument;
+               return markFunction(function( seed, matches ) {
+                       var j,
+                               matchIndexes = fn( [], seed.length, argument ),
+                               i = matchIndexes.length;
+
+                       // Match elements found at the specified indexes
+                       while ( i-- ) {
+                               if ( seed[ (j = matchIndexes[i]) ] ) {
+                                       seed[j] = !(matches[j] = seed[j]);
+                               }
+                       }
+               });
+       });
+}
+
+/**
+ * Checks a node for validity as a Sizzle context
+ * @param {Element|Object=} context
+ * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value
+ */
+function testContext( context ) {
+       return context && typeof context.getElementsByTagName !== "undefined" && context;
+}
+
+// Expose support vars for convenience
+support = Sizzle.support = {};
+
+/**
+ * Detects XML nodes
+ * @param {Element|Object} elem An element or a document
+ * @returns {Boolean} True iff elem is a non-HTML XML node
+ */
+isXML = Sizzle.isXML = function( elem ) {
+       // documentElement is verified for cases where it doesn't yet exist
+       // (such as loading iframes in IE - #4833)
+       var documentElement = elem && (elem.ownerDocument || elem).documentElement;
+       return documentElement ? documentElement.nodeName !== "HTML" : false;
+};
+
+/**
+ * Sets document-related variables once based on the current document
+ * @param {Element|Object} [doc] An element or document object to use to set the document
+ * @returns {Object} Returns the current document
+ */
+setDocument = Sizzle.setDocument = function( node ) {
+       var hasCompare, subWindow,
+               doc = node ? node.ownerDocument || node : preferredDoc;
+
+       // Return early if doc is invalid or already selected
+       if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {
+               return document;
+       }
+
+       // Update global variables
+       document = doc;
+       docElem = document.documentElement;
+       documentIsHTML = !isXML( document );
+
+       // Support: IE 9-11, Edge
+       // Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936)
+       if ( preferredDoc !== document &&
+               (subWindow = document.defaultView) && subWindow.top !== subWindow ) {
+
+               // Support: IE 11, Edge
+               if ( subWindow.addEventListener ) {
+                       subWindow.addEventListener( "unload", unloadHandler, false );
+
+               // Support: IE 9 - 10 only
+               } else if ( subWindow.attachEvent ) {
+                       subWindow.attachEvent( "onunload", unloadHandler );
+               }
+       }
+
+       /* Attributes
+       ---------------------------------------------------------------------- */
+
+       // Support: IE<8
+       // Verify that getAttribute really returns attributes and not properties
+       // (excepting IE8 booleans)
+       support.attributes = assert(function( el ) {
+               el.className = "i";
+               return !el.getAttribute("className");
+       });
+
+       /* getElement(s)By*
+       ---------------------------------------------------------------------- */
+
+       // Check if getElementsByTagName("*") returns only elements
+       support.getElementsByTagName = assert(function( el ) {
+               el.appendChild( document.createComment("") );
+               return !el.getElementsByTagName("*").length;
+       });
+
+       // Support: IE<9
+       support.getElementsByClassName = rnative.test( document.getElementsByClassName );
+
+       // Support: IE<10
+       // Check if getElementById returns elements by name
+       // The broken getElementById methods don't pick up programmatically-set names,
+       // so use a roundabout getElementsByName test
+       support.getById = assert(function( el ) {
+               docElem.appendChild( el ).id = expando;
+               return !document.getElementsByName || !document.getElementsByName( expando ).length;
+       });
+
+       // ID filter and find
+       if ( support.getById ) {
+               Expr.filter["ID"] = function( id ) {
+                       var attrId = id.replace( runescape, funescape );
+                       return function( elem ) {
+                               return elem.getAttribute("id") === attrId;
+                       };
+               };
+               Expr.find["ID"] = function( id, context ) {
+                       if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
+                               var elem = context.getElementById( id );
+                               return elem ? [ elem ] : [];
+                       }
+               };
+       } else {
+               Expr.filter["ID"] =  function( id ) {
+                       var attrId = id.replace( runescape, funescape );
+                       return function( elem ) {
+                               var node = typeof elem.getAttributeNode !== "undefined" &&
+                                       elem.getAttributeNode("id");
+                               return node && node.value === attrId;
+                       };
+               };
+
+               // Support: IE 6 - 7 only
+               // getElementById is not reliable as a find shortcut
+               Expr.find["ID"] = function( id, context ) {
+                       if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
+                               var node, i, elems,
+                                       elem = context.getElementById( id );
+
+                               if ( elem ) {
+
+                                       // Verify the id attribute
+                                       node = elem.getAttributeNode("id");
+                                       if ( node && node.value === id ) {
+                                               return [ elem ];
+                                       }
+
+                                       // Fall back on getElementsByName
+                                       elems = context.getElementsByName( id );
+                                       i = 0;
+                                       while ( (elem = elems[i++]) ) {
+                                               node = elem.getAttributeNode("id");
+                                               if ( node && node.value === id ) {
+                                                       return [ elem ];
+                                               }
+                                       }
+                               }
+
+                               return [];
+                       }
+               };
+       }
+
+       // Tag
+       Expr.find["TAG"] = support.getElementsByTagName ?
+               function( tag, context ) {
+                       if ( typeof context.getElementsByTagName !== "undefined" ) {
+                               return context.getElementsByTagName( tag );
+
+                       // DocumentFragment nodes don't have gEBTN
+                       } else if ( support.qsa ) {
+                               return context.querySelectorAll( tag );
+                       }
+               } :
+
+               function( tag, context ) {
+                       var elem,
+                               tmp = [],
+                               i = 0,
+                               // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too
+                               results = context.getElementsByTagName( tag );
+
+                       // Filter out possible comments
+                       if ( tag === "*" ) {
+                               while ( (elem = results[i++]) ) {
+                                       if ( elem.nodeType === 1 ) {
+                                               tmp.push( elem );
+                                       }
+                               }
+
+                               return tmp;
+                       }
+                       return results;
+               };
+
+       // Class
+       Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) {
+               if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) {
+                       return context.getElementsByClassName( className );
+               }
+       };
+
+       /* QSA/matchesSelector
+       ---------------------------------------------------------------------- */
+
+       // QSA and matchesSelector support
+
+       // matchesSelector(:active) reports false when true (IE9/Opera 11.5)
+       rbuggyMatches = [];
+
+       // qSa(:focus) reports false when true (Chrome 21)
+       // We allow this because of a bug in IE8/9 that throws an error
+       // whenever `document.activeElement` is accessed on an iframe
+       // So, we allow :focus to pass through QSA all the time to avoid the IE error
+       // See https://bugs.jquery.com/ticket/13378
+       rbuggyQSA = [];
+
+       if ( (support.qsa = rnative.test( document.querySelectorAll )) ) {
+               // Build QSA regex
+               // Regex strategy adopted from Diego Perini
+               assert(function( el ) {
+                       // Select is set to empty string on purpose
+                       // This is to test IE's treatment of not explicitly
+                       // setting a boolean content attribute,
+                       // since its presence should be enough
+                       // https://bugs.jquery.com/ticket/12359
+                       docElem.appendChild( el ).innerHTML = "<a id='" + expando + "'></a>" +
+                               "<select id='" + expando + "-\r\\' msallowcapture=''>" +
+                               "<option selected=''></option></select>";
+
+                       // Support: IE8, Opera 11-12.16
+                       // Nothing should be selected when empty strings follow ^= or $= or *=
+                       // The test attribute must be unknown in Opera but "safe" for WinRT
+                       // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section
+                       if ( el.querySelectorAll("[msallowcapture^='']").length ) {
+                               rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" );
+                       }
+
+                       // Support: IE8
+                       // Boolean attributes and "value" are not treated correctly
+                       if ( !el.querySelectorAll("[selected]").length ) {
+                               rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" );
+                       }
+
+                       // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+
+                       if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) {
+                               rbuggyQSA.push("~=");
+                       }
+
+                       // Webkit/Opera - :checked should return selected option elements
+                       // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
+                       // IE8 throws error here and will not see later tests
+                       if ( !el.querySelectorAll(":checked").length ) {
+                               rbuggyQSA.push(":checked");
+                       }
+
+                       // Support: Safari 8+, iOS 8+
+                       // https://bugs.webkit.org/show_bug.cgi?id=136851
+                       // In-page `selector#id sibling-combinator selector` fails
+                       if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) {
+                               rbuggyQSA.push(".#.+[+~]");
+                       }
+               });
+
+               assert(function( el ) {
+                       el.innerHTML = "<a href='' disabled='disabled'></a>" +
+                               "<select disabled='disabled'><option/></select>";
+
+                       // Support: Windows 8 Native Apps
+                       // The type and name attributes are restricted during .innerHTML assignment
+                       var input = document.createElement("input");
+                       input.setAttribute( "type", "hidden" );
+                       el.appendChild( input ).setAttribute( "name", "D" );
+
+                       // Support: IE8
+                       // Enforce case-sensitivity of name attribute
+                       if ( el.querySelectorAll("[name=d]").length ) {
+                               rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" );
+                       }
+
+                       // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)
+                       // IE8 throws error here and will not see later tests
+                       if ( el.querySelectorAll(":enabled").length !== 2 ) {
+                               rbuggyQSA.push( ":enabled", ":disabled" );
+                       }
+
+                       // Support: IE9-11+
+                       // IE's :disabled selector does not pick up the children of disabled fieldsets
+                       docElem.appendChild( el ).disabled = true;
+                       if ( el.querySelectorAll(":disabled").length !== 2 ) {
+                               rbuggyQSA.push( ":enabled", ":disabled" );
+                       }
+
+                       // Opera 10-11 does not throw on post-comma invalid pseudos
+                       el.querySelectorAll("*,:x");
+                       rbuggyQSA.push(",.*:");
+               });
+       }
+
+       if ( (support.matchesSelector = rnative.test( (matches = docElem.matches ||
+               docElem.webkitMatchesSelector ||
+               docElem.mozMatchesSelector ||
+               docElem.oMatchesSelector ||
+               docElem.msMatchesSelector) )) ) {
+
+               assert(function( el ) {
+                       // Check to see if it's possible to do matchesSelector
+                       // on a disconnected node (IE 9)
+                       support.disconnectedMatch = matches.call( el, "*" );
+
+                       // This should fail with an exception
+                       // Gecko does not error, returns false instead
+                       matches.call( el, "[s!='']:x" );
+                       rbuggyMatches.push( "!=", pseudos );
+               });
+       }
+
+       rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") );
+       rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") );
+
+       /* Contains
+       ---------------------------------------------------------------------- */
+       hasCompare = rnative.test( docElem.compareDocumentPosition );
+
+       // Element contains another
+       // Purposefully self-exclusive
+       // As in, an element does not contain itself
+       contains = hasCompare || rnative.test( docElem.contains ) ?
+               function( a, b ) {
+                       var adown = a.nodeType === 9 ? a.documentElement : a,
+                               bup = b && b.parentNode;
+                       return a === bup || !!( bup && bup.nodeType === 1 && (
+                               adown.contains ?
+                                       adown.contains( bup ) :
+                                       a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16
+                       ));
+               } :
+               function( a, b ) {
+                       if ( b ) {
+                               while ( (b = b.parentNode) ) {
+                                       if ( b === a ) {
+                                               return true;
+                                       }
+                               }
+                       }
+                       return false;
+               };
+
+       /* Sorting
+       ---------------------------------------------------------------------- */
+
+       // Document order sorting
+       sortOrder = hasCompare ?
+       function( a, b ) {
+
+               // Flag for duplicate removal
+               if ( a === b ) {
+                       hasDuplicate = true;
+                       return 0;
+               }
+
+               // Sort on method existence if only one input has compareDocumentPosition
+               var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;
+               if ( compare ) {
+                       return compare;
+               }
+
+               // Calculate position if both inputs belong to the same document
+               compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?
+                       a.compareDocumentPosition( b ) :
+
+                       // Otherwise we know they are disconnected
+                       1;
+
+               // Disconnected nodes
+               if ( compare & 1 ||
+                       (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {
+
+                       // Choose the first element that is related to our preferred document
+                       if ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) {
+                               return -1;
+                       }
+                       if ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) {
+                               return 1;
+                       }
+
+                       // Maintain original order
+                       return sortInput ?
+                               ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
+                               0;
+               }
+
+               return compare & 4 ? -1 : 1;
+       } :
+       function( a, b ) {
+               // Exit early if the nodes are identical
+               if ( a === b ) {
+                       hasDuplicate = true;
+                       return 0;
+               }
+
+               var cur,
+                       i = 0,
+                       aup = a.parentNode,
+                       bup = b.parentNode,
+                       ap = [ a ],
+                       bp = [ b ];
+
+               // Parentless nodes are either documents or disconnected
+               if ( !aup || !bup ) {
+                       return a === document ? -1 :
+                               b === document ? 1 :
+                               aup ? -1 :
+                               bup ? 1 :
+                               sortInput ?
+                               ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
+                               0;
+
+               // If the nodes are siblings, we can do a quick check
+               } else if ( aup === bup ) {
+                       return siblingCheck( a, b );
+               }
+
+               // Otherwise we need full lists of their ancestors for comparison
+               cur = a;
+               while ( (cur = cur.parentNode) ) {
+                       ap.unshift( cur );
+               }
+               cur = b;
+               while ( (cur = cur.parentNode) ) {
+                       bp.unshift( cur );
+               }
+
+               // Walk down the tree looking for a discrepancy
+               while ( ap[i] === bp[i] ) {
+                       i++;
+               }
+
+               return i ?
+                       // Do a sibling check if the nodes have a common ancestor
+                       siblingCheck( ap[i], bp[i] ) :
+
+                       // Otherwise nodes in our document sort first
+                       ap[i] === preferredDoc ? -1 :
+                       bp[i] === preferredDoc ? 1 :
+                       0;
+       };
+
+       return document;
+};
+
+Sizzle.matches = function( expr, elements ) {
+       return Sizzle( expr, null, null, elements );
+};
+
+Sizzle.matchesSelector = function( elem, expr ) {
+       // Set document vars if needed
+       if ( ( elem.ownerDocument || elem ) !== document ) {
+               setDocument( elem );
+       }
+
+       // Make sure that attribute selectors are quoted
+       expr = expr.replace( rattributeQuotes, "='$1']" );
+
+       if ( support.matchesSelector && documentIsHTML &&
+               !compilerCache[ expr + " " ] &&
+               ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&
+               ( !rbuggyQSA     || !rbuggyQSA.test( expr ) ) ) {
+
+               try {
+                       var ret = matches.call( elem, expr );
+
+                       // IE 9's matchesSelector returns false on disconnected nodes
+                       if ( ret || support.disconnectedMatch ||
+                                       // As well, disconnected nodes are said to be in a document
+                                       // fragment in IE 9
+                                       elem.document && elem.document.nodeType !== 11 ) {
+                               return ret;
+                       }
+               } catch (e) {}
+       }
+
+       return Sizzle( expr, document, null, [ elem ] ).length > 0;
+};
+
+Sizzle.contains = function( context, elem ) {
+       // Set document vars if needed
+       if ( ( context.ownerDocument || context ) !== document ) {
+               setDocument( context );
+       }
+       return contains( context, elem );
+};
+
+Sizzle.attr = function( elem, name ) {
+       // Set document vars if needed
+       if ( ( elem.ownerDocument || elem ) !== document ) {
+               setDocument( elem );
+       }
+
+       var fn = Expr.attrHandle[ name.toLowerCase() ],
+               // Don't get fooled by Object.prototype properties (jQuery #13807)
+               val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?
+                       fn( elem, name, !documentIsHTML ) :
+                       undefined;
+
+       return val !== undefined ?
+               val :
+               support.attributes || !documentIsHTML ?
+                       elem.getAttribute( name ) :
+                       (val = elem.getAttributeNode(name)) && val.specified ?
+                               val.value :
+                               null;
+};
+
+Sizzle.escape = function( sel ) {
+       return (sel + "").replace( rcssescape, fcssescape );
+};
+
+Sizzle.error = function( msg ) {
+       throw new Error( "Syntax error, unrecognized expression: " + msg );
+};
+
+/**
+ * Document sorting and removing duplicates
+ * @param {ArrayLike} results
+ */
+Sizzle.uniqueSort = function( results ) {
+       var elem,
+               duplicates = [],
+               j = 0,
+               i = 0;
+
+       // Unless we *know* we can detect duplicates, assume their presence
+       hasDuplicate = !support.detectDuplicates;
+       sortInput = !support.sortStable && results.slice( 0 );
+       results.sort( sortOrder );
+
+       if ( hasDuplicate ) {
+               while ( (elem = results[i++]) ) {
+                       if ( elem === results[ i ] ) {
+                               j = duplicates.push( i );
+                       }
+               }
+               while ( j-- ) {
+                       results.splice( duplicates[ j ], 1 );
+               }
+       }
+
+       // Clear input after sorting to release objects
+       // See https://github.com/jquery/sizzle/pull/225
+       sortInput = null;
+
+       return results;
+};
+
+/**
+ * Utility function for retrieving the text value of an array of DOM nodes
+ * @param {Array|Element} elem
+ */
+getText = Sizzle.getText = function( elem ) {
+       var node,
+               ret = "",
+               i = 0,
+               nodeType = elem.nodeType;
+
+       if ( !nodeType ) {
+               // If no nodeType, this is expected to be an array
+               while ( (node = elem[i++]) ) {
+                       // Do not traverse comment nodes
+                       ret += getText( node );
+               }
+       } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {
+               // Use textContent for elements
+               // innerText usage removed for consistency of new lines (jQuery #11153)
+               if ( typeof elem.textContent === "string" ) {
+                       return elem.textContent;
+               } else {
+                       // Traverse its children
+                       for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
+                               ret += getText( elem );
+                       }
+               }
+       } else if ( nodeType === 3 || nodeType === 4 ) {
+               return elem.nodeValue;
+       }
+       // Do not include comment or processing instruction nodes
+
+       return ret;
+};
+
+Expr = Sizzle.selectors = {
+
+       // Can be adjusted by the user
+       cacheLength: 50,
+
+       createPseudo: markFunction,
+
+       match: matchExpr,
+
+       attrHandle: {},
+
+       find: {},
+
+       relative: {
+               ">": { dir: "parentNode", first: true },
+               " ": { dir: "parentNode" },
+               "+": { dir: "previousSibling", first: true },
+               "~": { dir: "previousSibling" }
+       },
+
+       preFilter: {
+               "ATTR": function( match ) {
+                       match[1] = match[1].replace( runescape, funescape );
+
+                       // Move the given value to match[3] whether quoted or unquoted
+                       match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape );
+
+                       if ( match[2] === "~=" ) {
+                               match[3] = " " + match[3] + " ";
+                       }
+
+                       return match.slice( 0, 4 );
+               },
+
+               "CHILD": function( match ) {
+                       /* matches from matchExpr["CHILD"]
+                               1 type (only|nth|...)
+                               2 what (child|of-type)
+                               3 argument (even|odd|\d*|\d*n([+-]\d+)?|...)
+                               4 xn-component of xn+y argument ([+-]?\d*n|)
+                               5 sign of xn-component
+                               6 x of xn-component
+                               7 sign of y-component
+                               8 y of y-component
+                       */
+                       match[1] = match[1].toLowerCase();
+
+                       if ( match[1].slice( 0, 3 ) === "nth" ) {
+                               // nth-* requires argument
+                               if ( !match[3] ) {
+                                       Sizzle.error( match[0] );
+                               }
+
+                               // numeric x and y parameters for Expr.filter.CHILD
+                               // remember that false/true cast respectively to 0/1
+                               match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) );
+                               match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" );
+
+                       // other types prohibit arguments
+                       } else if ( match[3] ) {
+                               Sizzle.error( match[0] );
+                       }
+
+                       return match;
+               },
+
+               "PSEUDO": function( match ) {
+                       var excess,
+                               unquoted = !match[6] && match[2];
+
+                       if ( matchExpr["CHILD"].test( match[0] ) ) {
+                               return null;
+                       }
+
+                       // Accept quoted arguments as-is
+                       if ( match[3] ) {
+                               match[2] = match[4] || match[5] || "";
+
+                       // Strip excess characters from unquoted arguments
+                       } else if ( unquoted && rpseudo.test( unquoted ) &&
+                               // Get excess from tokenize (recursively)
+                               (excess = tokenize( unquoted, true )) &&
+                               // advance to the next closing parenthesis
+                               (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) {
+
+                               // excess is a negative index
+                               match[0] = match[0].slice( 0, excess );
+                               match[2] = unquoted.slice( 0, excess );
+                       }
+
+                       // Return only captures needed by the pseudo filter method (type and argument)
+                       return match.slice( 0, 3 );
+               }
+       },
+
+       filter: {
+
+               "TAG": function( nodeNameSelector ) {
+                       var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();
+                       return nodeNameSelector === "*" ?
+                               function() { return true; } :
+                               function( elem ) {
+                                       return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;
+                               };
+               },
+
+               "CLASS": function( className ) {
+                       var pattern = classCache[ className + " " ];
+
+                       return pattern ||
+                               (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) &&
+                               classCache( className, function( elem ) {
+                                       return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" );
+                               });
+               },
+
+               "ATTR": function( name, operator, check ) {
+                       return function( elem ) {
+                               var result = Sizzle.attr( elem, name );
+
+                               if ( result == null ) {
+                                       return operator === "!=";
+                               }
+                               if ( !operator ) {
+                                       return true;
+                               }
+
+                               result += "";
+
+                               return operator === "=" ? result === check :
+                                       operator === "!=" ? result !== check :
+                                       operator === "^=" ? check && result.indexOf( check ) === 0 :
+                                       operator === "*=" ? check && result.indexOf( check ) > -1 :
+                                       operator === "$=" ? check && result.slice( -check.length ) === check :
+                                       operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 :
+                                       operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" :
+                                       false;
+                       };
+               },
+
+               "CHILD": function( type, what, argument, first, last ) {
+                       var simple = type.slice( 0, 3 ) !== "nth",
+                               forward = type.slice( -4 ) !== "last",
+                               ofType = what === "of-type";
+
+                       return first === 1 && last === 0 ?
+
+                               // Shortcut for :nth-*(n)
+                               function( elem ) {
+                                       return !!elem.parentNode;
+                               } :
+
+                               function( elem, context, xml ) {
+                                       var cache, uniqueCache, outerCache, node, nodeIndex, start,
+                                               dir = simple !== forward ? "nextSibling" : "previousSibling",
+                                               parent = elem.parentNode,
+                                               name = ofType && elem.nodeName.toLowerCase(),
+                                               useCache = !xml && !ofType,
+                                               diff = false;
+
+                                       if ( parent ) {
+
+                                               // :(first|last|only)-(child|of-type)
+                                               if ( simple ) {
+                                                       while ( dir ) {
+                                                               node = elem;
+                                                               while ( (node = node[ dir ]) ) {
+                                                                       if ( ofType ?
+                                                                               node.nodeName.toLowerCase() === name :
+                                                                               node.nodeType === 1 ) {
+
+                                                                               return false;
+                                                                       }
+                                                               }
+                                                               // Reverse direction for :only-* (if we haven't yet done so)
+                                                               start = dir = type === "only" && !start && "nextSibling";
+                                                       }
+                                                       return true;
+                                               }
+
+                                               start = [ forward ? parent.firstChild : parent.lastChild ];
+
+                                               // non-xml :nth-child(...) stores cache data on `parent`
+                                               if ( forward && useCache ) {
+
+                                                       // Seek `elem` from a previously-cached index
+
+                                                       // ...in a gzip-friendly way
+                                                       node = parent;
+                                                       outerCache = node[ expando ] || (node[ expando ] = {});
+
+                                                       // Support: IE <9 only
+                                                       // Defend against cloned attroperties (jQuery gh-1709)
+                                                       uniqueCache = outerCache[ node.uniqueID ] ||
+                                                               (outerCache[ node.uniqueID ] = {});
+
+                                                       cache = uniqueCache[ type ] || [];
+                                                       nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
+                                                       diff = nodeIndex && cache[ 2 ];
+                                                       node = nodeIndex && parent.childNodes[ nodeIndex ];
+
+                                                       while ( (node = ++nodeIndex && node && node[ dir ] ||
+
+                                                               // Fallback to seeking `elem` from the start
+                                                               (diff = nodeIndex = 0) || start.pop()) ) {
+
+                                                               // When found, cache indexes on `parent` and break
+                                                               if ( node.nodeType === 1 && ++diff && node === elem ) {
+                                                                       uniqueCache[ type ] = [ dirruns, nodeIndex, diff ];
+                                                                       break;
+                                                               }
+                                                       }
+
+                                               } else {
+                                                       // Use previously-cached element index if available
+                                                       if ( useCache ) {
+                                                               // ...in a gzip-friendly way
+                                                               node = elem;
+                                                               outerCache = node[ expando ] || (node[ expando ] = {});
+
+                                                               // Support: IE <9 only
+                                                               // Defend against cloned attroperties (jQuery gh-1709)
+                                                               uniqueCache = outerCache[ node.uniqueID ] ||
+                                                                       (outerCache[ node.uniqueID ] = {});
+
+                                                               cache = uniqueCache[ type ] || [];
+                                                               nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
+                                                               diff = nodeIndex;
+                                                       }
+
+                                                       // xml :nth-child(...)
+                                                       // or :nth-last-child(...) or :nth(-last)?-of-type(...)
+                                                       if ( diff === false ) {
+                                                               // Use the same loop as above to seek `elem` from the start
+                                                               while ( (node = ++nodeIndex && node && node[ dir ] ||
+                                                                       (diff = nodeIndex = 0) || start.pop()) ) {
+
+                                                                       if ( ( ofType ?
+                                                                               node.nodeName.toLowerCase() === name :
+                                                                               node.nodeType === 1 ) &&
+                                                                               ++diff ) {
+
+                                                                               // Cache the index of each encountered element
+                                                                               if ( useCache ) {
+                                                                                       outerCache = node[ expando ] || (node[ expando ] = {});
+
+                                                                                       // Support: IE <9 only
+                                                                                       // Defend against cloned attroperties (jQuery gh-1709)
+                                                                                       uniqueCache = outerCache[ node.uniqueID ] ||
+                                                                                               (outerCache[ node.uniqueID ] = {});
+
+                                                                                       uniqueCache[ type ] = [ dirruns, diff ];
+                                                                               }
+
+                                                                               if ( node === elem ) {
+                                                                                       break;
+                                                                               }
+                                                                       }
+                                                               }
+                                                       }
+                                               }
+
+                                               // Incorporate the offset, then check against cycle size
+                                               diff -= last;
+                                               return diff === first || ( diff % first === 0 && diff / first >= 0 );
+                                       }
+                               };
+               },
+
+               "PSEUDO": function( pseudo, argument ) {
+                       // pseudo-class names are case-insensitive
+                       // http://www.w3.org/TR/selectors/#pseudo-classes
+                       // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters
+                       // Remember that setFilters inherits from pseudos
+                       var args,
+                               fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||
+                                       Sizzle.error( "unsupported pseudo: " + pseudo );
+
+                       // The user may use createPseudo to indicate that
+                       // arguments are needed to create the filter function
+                       // just as Sizzle does
+                       if ( fn[ expando ] ) {
+                               return fn( argument );
+                       }
+
+                       // But maintain support for old signatures
+                       if ( fn.length > 1 ) {
+                               args = [ pseudo, pseudo, "", argument ];
+                               return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?
+                                       markFunction(function( seed, matches ) {
+                                               var idx,
+                                                       matched = fn( seed, argument ),
+                                                       i = matched.length;
+                                               while ( i-- ) {
+                                                       idx = indexOf( seed, matched[i] );
+                                                       seed[ idx ] = !( matches[ idx ] = matched[i] );
+                                               }
+                                       }) :
+                                       function( elem ) {
+                                               return fn( elem, 0, args );
+                                       };
+                       }
+
+                       return fn;
+               }
+       },
+
+       pseudos: {
+               // Potentially complex pseudos
+               "not": markFunction(function( selector ) {
+                       // Trim the selector passed to compile
+                       // to avoid treating leading and trailing
+                       // spaces as combinators
+                       var input = [],
+                               results = [],
+                               matcher = compile( selector.replace( rtrim, "$1" ) );
+
+                       return matcher[ expando ] ?
+                               markFunction(function( seed, matches, context, xml ) {
+                                       var elem,
+                                               unmatched = matcher( seed, null, xml, [] ),
+                                               i = seed.length;
+
+                                       // Match elements unmatched by `matcher`
+                                       while ( i-- ) {
+                                               if ( (elem = unmatched[i]) ) {
+                                                       seed[i] = !(matches[i] = elem);
+                                               }
+                                       }
+                               }) :
+                               function( elem, context, xml ) {
+                                       input[0] = elem;
+                                       matcher( input, null, xml, results );
+                                       // Don't keep the element (issue #299)
+                                       input[0] = null;
+                                       return !results.pop();
+                               };
+               }),
+
+               "has": markFunction(function( selector ) {
+                       return function( elem ) {
+                               return Sizzle( selector, elem ).length > 0;
+                       };
+               }),
+
+               "contains": markFunction(function( text ) {
+                       text = text.replace( runescape, funescape );
+                       return function( elem ) {
+                               return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;
+                       };
+               }),
+
+               // "Whether an element is represented by a :lang() selector
+               // is based solely on the element's language value
+               // being equal to the identifier C,
+               // or beginning with the identifier C immediately followed by "-".
+               // The matching of C against the element's language value is performed case-insensitively.
+               // The identifier C does not have to be a valid language name."
+               // http://www.w3.org/TR/selectors/#lang-pseudo
+               "lang": markFunction( function( lang ) {
+                       // lang value must be a valid identifier
+                       if ( !ridentifier.test(lang || "") ) {
+                               Sizzle.error( "unsupported lang: " + lang );
+                       }
+                       lang = lang.replace( runescape, funescape ).toLowerCase();
+                       return function( elem ) {
+                               var elemLang;
+                               do {
+                                       if ( (elemLang = documentIsHTML ?
+                                               elem.lang :
+                                               elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) {
+
+                                               elemLang = elemLang.toLowerCase();
+                                               return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0;
+                                       }
+                               } while ( (elem = elem.parentNode) && elem.nodeType === 1 );
+                               return false;
+                       };
+               }),
+
+               // Miscellaneous
+               "target": function( elem ) {
+                       var hash = window.location && window.location.hash;
+                       return hash && hash.slice( 1 ) === elem.id;
+               },
+
+               "root": function( elem ) {
+                       return elem === docElem;
+               },
+
+               "focus": function( elem ) {
+                       return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);
+               },
+
+               // Boolean properties
+               "enabled": createDisabledPseudo( false ),
+               "disabled": createDisabledPseudo( true ),
+
+               "checked": function( elem ) {
+                       // In CSS3, :checked should return both checked and selected elements
+                       // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
+                       var nodeName = elem.nodeName.toLowerCase();
+                       return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected);
+               },
+
+               "selected": function( elem ) {
+                       // Accessing this property makes selected-by-default
+                       // options in Safari work properly
+                       if ( elem.parentNode ) {
+                               elem.parentNode.selectedIndex;
+                       }
+
+                       return elem.selected === true;
+               },
+
+               // Contents
+               "empty": function( elem ) {
+                       // http://www.w3.org/TR/selectors/#empty-pseudo
+                       // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),
+                       //   but not by others (comment: 8; processing instruction: 7; etc.)
+                       // nodeType < 6 works because attributes (2) do not appear as children
+                       for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
+                               if ( elem.nodeType < 6 ) {
+                                       return false;
+                               }
+                       }
+                       return true;
+               },
+
+               "parent": function( elem ) {
+                       return !Expr.pseudos["empty"]( elem );
+               },
+
+               // Element/input types
+               "header": function( elem ) {
+                       return rheader.test( elem.nodeName );
+               },
+
+               "input": function( elem ) {
+                       return rinputs.test( elem.nodeName );
+               },
+
+               "button": function( elem ) {
+                       var name = elem.nodeName.toLowerCase();
+                       return name === "input" && elem.type === "button" || name === "button";
+               },
+
+               "text": function( elem ) {
+                       var attr;
+                       return elem.nodeName.toLowerCase() === "input" &&
+                               elem.type === "text" &&
+
+                               // Support: IE<8
+                               // New HTML5 attribute values (e.g., "search") appear with elem.type === "text"
+                               ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" );
+               },
+
+               // Position-in-collection
+               "first": createPositionalPseudo(function() {
+                       return [ 0 ];
+               }),
+
+               "last": createPositionalPseudo(function( matchIndexes, length ) {
+                       return [ length - 1 ];
+               }),
+
+               "eq": createPositionalPseudo(function( matchIndexes, length, argument ) {
+                       return [ argument < 0 ? argument + length : argument ];
+               }),
+
+               "even": createPositionalPseudo(function( matchIndexes, length ) {
+                       var i = 0;
+                       for ( ; i < length; i += 2 ) {
+                               matchIndexes.push( i );
+                       }
+                       return matchIndexes;
+               }),
+
+               "odd": createPositionalPseudo(function( matchIndexes, length ) {
+                       var i = 1;
+                       for ( ; i < length; i += 2 ) {
+                               matchIndexes.push( i );
+                       }
+                       return matchIndexes;
+               }),
+
+               "lt": createPositionalPseudo(function( matchIndexes, length, argument ) {
+                       var i = argument < 0 ? argument + length : argument;
+                       for ( ; --i >= 0; ) {
+                               matchIndexes.push( i );
+                       }
+                       return matchIndexes;
+               }),
+
+               "gt": createPositionalPseudo(function( matchIndexes, length, argument ) {
+                       var i = argument < 0 ? argument + length : argument;
+                       for ( ; ++i < length; ) {
+                               matchIndexes.push( i );
+                       }
+                       return matchIndexes;
+               })
+       }
+};
+
+Expr.pseudos["nth"] = Expr.pseudos["eq"];
+
+// Add button/input type pseudos
+for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {
+       Expr.pseudos[ i ] = createInputPseudo( i );
+}
+for ( i in { submit: true, reset: true } ) {
+       Expr.pseudos[ i ] = createButtonPseudo( i );
+}
+
+// Easy API for creating new setFilters
+function setFilters() {}
+setFilters.prototype = Expr.filters = Expr.pseudos;
+Expr.setFilters = new setFilters();
+
+tokenize = Sizzle.tokenize = function( selector, parseOnly ) {
+       var matched, match, tokens, type,
+               soFar, groups, preFilters,
+               cached = tokenCache[ selector + " " ];
+
+       if ( cached ) {
+               return parseOnly ? 0 : cached.slice( 0 );
+       }
+
+       soFar = selector;
+       groups = [];
+       preFilters = Expr.preFilter;
+
+       while ( soFar ) {
+
+               // Comma and first run
+               if ( !matched || (match = rcomma.exec( soFar )) ) {
+                       if ( match ) {
+                               // Don't consume trailing commas as valid
+                               soFar = soFar.slice( match[0].length ) || soFar;
+                       }
+                       groups.push( (tokens = []) );
+               }
+
+               matched = false;
+
+               // Combinators
+               if ( (match = rcombinators.exec( soFar )) ) {
+                       matched = match.shift();
+                       tokens.push({
+                               value: matched,
+                               // Cast descendant combinators to space
+                               type: match[0].replace( rtrim, " " )
+                       });
+                       soFar = soFar.slice( matched.length );
+               }
+
+               // Filters
+               for ( type in Expr.filter ) {
+                       if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||
+                               (match = preFilters[ type ]( match ))) ) {
+                               matched = match.shift();
+                               tokens.push({
+                                       value: matched,
+                                       type: type,
+                                       matches: match
+                               });
+                               soFar = soFar.slice( matched.length );
+                       }
+               }
+
+               if ( !matched ) {
+                       break;
+               }
+       }
+
+       // Return the length of the invalid excess
+       // if we're just parsing
+       // Otherwise, throw an error or return tokens
+       return parseOnly ?
+               soFar.length :
+               soFar ?
+                       Sizzle.error( selector ) :
+                       // Cache the tokens
+                       tokenCache( selector, groups ).slice( 0 );
+};
+
+function toSelector( tokens ) {
+       var i = 0,
+               len = tokens.length,
+               selector = "";
+       for ( ; i < len; i++ ) {
+               selector += tokens[i].value;
+       }
+       return selector;
+}
+
+function addCombinator( matcher, combinator, base ) {
+       var dir = combinator.dir,
+               skip = combinator.next,
+               key = skip || dir,
+               checkNonElements = base && key === "parentNode",
+               doneName = done++;
+
+       return combinator.first ?
+               // Check against closest ancestor/preceding element
+               function( elem, context, xml ) {
+                       while ( (elem = elem[ dir ]) ) {
+                               if ( elem.nodeType === 1 || checkNonElements ) {
+                                       return matcher( elem, context, xml );
+                               }
+                       }
+                       return false;
+               } :
+
+               // Check against all ancestor/preceding elements
+               function( elem, context, xml ) {
+                       var oldCache, uniqueCache, outerCache,
+                               newCache = [ dirruns, doneName ];
+
+                       // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching
+                       if ( xml ) {
+                               while ( (elem = elem[ dir ]) ) {
+                                       if ( elem.nodeType === 1 || checkNonElements ) {
+                                               if ( matcher( elem, context, xml ) ) {
+                                                       return true;
+                                               }
+                                       }
+                               }
+                       } else {
+                               while ( (elem = elem[ dir ]) ) {
+                                       if ( elem.nodeType === 1 || checkNonElements ) {
+                                               outerCache = elem[ expando ] || (elem[ expando ] = {});
+
+                                               // Support: IE <9 only
+                                               // Defend against cloned attroperties (jQuery gh-1709)
+                                               uniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {});
+
+                                               if ( skip && skip === elem.nodeName.toLowerCase() ) {
+                                                       elem = elem[ dir ] || elem;
+                                               } else if ( (oldCache = uniqueCache[ key ]) &&
+                                                       oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {
+
+                                                       // Assign to newCache so results back-propagate to previous elements
+                                                       return (newCache[ 2 ] = oldCache[ 2 ]);
+                                               } else {
+                                                       // Reuse newcache so results back-propagate to previous elements
+                                                       uniqueCache[ key ] = newCache;
+
+                                                       // A match means we're done; a fail means we have to keep checking
+                                                       if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) {
+                                                               return true;
+                                                       }
+                                               }
+                                       }
+                               }
+                       }
+                       return false;
+               };
+}
+
+function elementMatcher( matchers ) {
+       return matchers.length > 1 ?
+               function( elem, context, xml ) {
+                       var i = matchers.length;
+                       while ( i-- ) {
+                               if ( !matchers[i]( elem, context, xml ) ) {
+                                       return false;
+                               }
+                       }
+                       return true;
+               } :
+               matchers[0];
+}
+
+function multipleContexts( selector, contexts, results ) {
+       var i = 0,
+               len = contexts.length;
+       for ( ; i < len; i++ ) {
+               Sizzle( selector, contexts[i], results );
+       }
+       return results;
+}
+
+function condense( unmatched, map, filter, context, xml ) {
+       var elem,
+               newUnmatched = [],
+               i = 0,
+               len = unmatched.length,
+               mapped = map != null;
+
+       for ( ; i < len; i++ ) {
+               if ( (elem = unmatched[i]) ) {
+                       if ( !filter || filter( elem, context, xml ) ) {
+                               newUnmatched.push( elem );
+                               if ( mapped ) {
+                                       map.push( i );
+                               }
+                       }
+               }
+       }
+
+       return newUnmatched;
+}
+
+function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {
+       if ( postFilter && !postFilter[ expando ] ) {
+               postFilter = setMatcher( postFilter );
+       }
+       if ( postFinder && !postFinder[ expando ] ) {
+               postFinder = setMatcher( postFinder, postSelector );
+       }
+       return markFunction(function( seed, results, context, xml ) {
+               var temp, i, elem,
+                       preMap = [],
+                       postMap = [],
+                       preexisting = results.length,
+
+                       // Get initial elements from seed or context
+                       elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ),
+
+                       // Prefilter to get matcher input, preserving a map for seed-results synchronization
+                       matcherIn = preFilter && ( seed || !selector ) ?
+                               condense( elems, preMap, preFilter, context, xml ) :
+                               elems,
+
+                       matcherOut = matcher ?
+                               // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,
+                               postFinder || ( seed ? preFilter : preexisting || postFilter ) ?
+
+                                       // ...intermediate processing is necessary
+                                       [] :
+
+                                       // ...otherwise use results directly
+                                       results :
+                               matcherIn;
+
+               // Find primary matches
+               if ( matcher ) {
+                       matcher( matcherIn, matcherOut, context, xml );
+               }
+
+               // Apply postFilter
+               if ( postFilter ) {
+                       temp = condense( matcherOut, postMap );
+                       postFilter( temp, [], context, xml );
+
+                       // Un-match failing elements by moving them back to matcherIn
+                       i = temp.length;
+                       while ( i-- ) {
+                               if ( (elem = temp[i]) ) {
+                                       matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);
+                               }
+                       }
+               }
+
+               if ( seed ) {
+                       if ( postFinder || preFilter ) {
+                               if ( postFinder ) {
+                                       // Get the final matcherOut by condensing this intermediate into postFinder contexts
+                                       temp = [];
+                                       i = matcherOut.length;
+                                       while ( i-- ) {
+                                               if ( (elem = matcherOut[i]) ) {
+                                                       // Restore matcherIn since elem is not yet a final match
+                                                       temp.push( (matcherIn[i] = elem) );
+                                               }
+                                       }
+                                       postFinder( null, (matcherOut = []), temp, xml );
+                               }
+
+                               // Move matched elements from seed to results to keep them synchronized
+                               i = matcherOut.length;
+                               while ( i-- ) {
+                                       if ( (elem = matcherOut[i]) &&
+                                               (temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) {
+
+                                               seed[temp] = !(results[temp] = elem);
+                                       }
+                               }
+                       }
+
+               // Add elements to results, through postFinder if defined
+               } else {
+                       matcherOut = condense(
+                               matcherOut === results ?
+                                       matcherOut.splice( preexisting, matcherOut.length ) :
+                                       matcherOut
+                       );
+                       if ( postFinder ) {
+                               postFinder( null, results, matcherOut, xml );
+                       } else {
+                               push.apply( results, matcherOut );
+                       }
+               }
+       });
+}
+
+function matcherFromTokens( tokens ) {
+       var checkContext, matcher, j,
+               len = tokens.length,
+               leadingRelative = Expr.relative[ tokens[0].type ],
+               implicitRelative = leadingRelative || Expr.relative[" "],
+               i = leadingRelative ? 1 : 0,
+
+               // The foundational matcher ensures that elements are reachable from top-level context(s)
+               matchContext = addCombinator( function( elem ) {
+                       return elem === checkContext;
+               }, implicitRelative, true ),
+               matchAnyContext = addCombinator( function( elem ) {
+                       return indexOf( checkContext, elem ) > -1;
+               }, implicitRelative, true ),
+               matchers = [ function( elem, context, xml ) {
+                       var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (
+                               (checkContext = context).nodeType ?
+                                       matchContext( elem, context, xml ) :
+                                       matchAnyContext( elem, context, xml ) );
+                       // Avoid hanging onto element (issue #299)
+                       checkContext = null;
+                       return ret;
+               } ];
+
+       for ( ; i < len; i++ ) {
+               if ( (matcher = Expr.relative[ tokens[i].type ]) ) {
+                       matchers = [ addCombinator(elementMatcher( matchers ), matcher) ];
+               } else {
+                       matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );
+
+                       // Return special upon seeing a positional matcher
+                       if ( matcher[ expando ] ) {
+                               // Find the next relative operator (if any) for proper handling
+                               j = ++i;
+                               for ( ; j < len; j++ ) {
+                                       if ( Expr.relative[ tokens[j].type ] ) {
+                                               break;
+                                       }
+                               }
+                               return setMatcher(
+                                       i > 1 && elementMatcher( matchers ),
+                                       i > 1 && toSelector(
+                                               // If the preceding token was a descendant combinator, insert an implicit any-element `*`
+                                               tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" })
+                                       ).replace( rtrim, "$1" ),
+                                       matcher,
+                                       i < j && matcherFromTokens( tokens.slice( i, j ) ),
+                                       j < len && matcherFromTokens( (tokens = tokens.slice( j )) ),
+                                       j < len && toSelector( tokens )
+                               );
+                       }
+                       matchers.push( matcher );
+               }
+       }
+
+       return elementMatcher( matchers );
+}
+
+function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
+       var bySet = setMatchers.length > 0,
+               byElement = elementMatchers.length > 0,
+               superMatcher = function( seed, context, xml, results, outermost ) {
+                       var elem, j, matcher,
+                               matchedCount = 0,
+                               i = "0",
+                               unmatched = seed && [],
+                               setMatched = [],
+                               contextBackup = outermostContext,
+                               // We must always have either seed elements or outermost context
+                               elems = seed || byElement && Expr.find["TAG"]( "*", outermost ),
+                               // Use integer dirruns iff this is the outermost matcher
+                               dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1),
+                               len = elems.length;
+
+                       if ( outermost ) {
+                               outermostContext = context === document || context || outermost;
+                       }
+
+                       // Add elements passing elementMatchers directly to results
+                       // Support: IE<9, Safari
+                       // Tolerate NodeList properties (IE: "length"; Safari: <number>) matching elements by id
+                       for ( ; i !== len && (elem = elems[i]) != null; i++ ) {
+                               if ( byElement && elem ) {
+                                       j = 0;
+                                       if ( !context && elem.ownerDocument !== document ) {
+                                               setDocument( elem );
+                                               xml = !documentIsHTML;
+                                       }
+                                       while ( (matcher = elementMatchers[j++]) ) {
+                                               if ( matcher( elem, context || document, xml) ) {
+                                                       results.push( elem );
+                                                       break;
+                                               }
+                                       }
+                                       if ( outermost ) {
+                                               dirruns = dirrunsUnique;
+                                       }
+                               }
+
+                               // Track unmatched elements for set filters
+                               if ( bySet ) {
+                                       // They will have gone through all possible matchers
+                                       if ( (elem = !matcher && elem) ) {
+                                               matchedCount--;
+                                       }
+
+                                       // Lengthen the array for every element, matched or not
+                                       if ( seed ) {
+                                               unmatched.push( elem );
+                                       }
+                               }
+                       }
+
+                       // `i` is now the count of elements visited above, and adding it to `matchedCount`
+                       // makes the latter nonnegative.
+                       matchedCount += i;
+
+                       // Apply set filters to unmatched elements
+                       // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`
+                       // equals `i`), unless we didn't visit _any_ elements in the above loop because we have
+                       // no element matchers and no seed.
+                       // Incrementing an initially-string "0" `i` allows `i` to remain a string only in that
+                       // case, which will result in a "00" `matchedCount` that differs from `i` but is also
+                       // numerically zero.
+                       if ( bySet && i !== matchedCount ) {
+                               j = 0;
+                               while ( (matcher = setMatchers[j++]) ) {
+                                       matcher( unmatched, setMatched, context, xml );
+                               }
+
+                               if ( seed ) {
+                                       // Reintegrate element matches to eliminate the need for sorting
+                                       if ( matchedCount > 0 ) {
+                                               while ( i-- ) {
+                                                       if ( !(unmatched[i] || setMatched[i]) ) {
+                                                               setMatched[i] = pop.call( results );
+                                                       }
+                                               }
+                                       }
+
+                                       // Discard index placeholder values to get only actual matches
+                                       setMatched = condense( setMatched );
+                               }
+
+                               // Add matches to results
+                               push.apply( results, setMatched );
+
+                               // Seedless set matches succeeding multiple successful matchers stipulate sorting
+                               if ( outermost && !seed && setMatched.length > 0 &&
+                                       ( matchedCount + setMatchers.length ) > 1 ) {
+
+                                       Sizzle.uniqueSort( results );
+                               }
+                       }
+
+                       // Override manipulation of globals by nested matchers
+                       if ( outermost ) {
+                               dirruns = dirrunsUnique;
+                               outermostContext = contextBackup;
+                       }
+
+                       return unmatched;
+               };
+
+       return bySet ?
+               markFunction( superMatcher ) :
+               superMatcher;
+}
+
+compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {
+       var i,
+               setMatchers = [],
+               elementMatchers = [],
+               cached = compilerCache[ selector + " " ];
+
+       if ( !cached ) {
+               // Generate a function of recursive functions that can be used to check each element
+               if ( !match ) {
+                       match = tokenize( selector );
+               }
+               i = match.length;
+               while ( i-- ) {
+                       cached = matcherFromTokens( match[i] );
+                       if ( cached[ expando ] ) {
+                               setMatchers.push( cached );
+                       } else {
+                               elementMatchers.push( cached );
+                       }
+               }
+
+               // Cache the compiled function
+               cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );
+
+               // Save selector and tokenization
+               cached.selector = selector;
+       }
+       return cached;
+};
+
+/**
+ * A low-level selection function that works with Sizzle's compiled
+ *  selector functions
+ * @param {String|Function} selector A selector or a pre-compiled
+ *  selector function built with Sizzle.compile
+ * @param {Element} context
+ * @param {Array} [results]
+ * @param {Array} [seed] A set of elements to match against
+ */
+select = Sizzle.select = function( selector, context, results, seed ) {
+       var i, tokens, token, type, find,
+               compiled = typeof selector === "function" && selector,
+               match = !seed && tokenize( (selector = compiled.selector || selector) );
+
+       results = results || [];
+
+       // Try to minimize operations if there is only one selector in the list and no seed
+       // (the latter of which guarantees us context)
+       if ( match.length === 1 ) {
+
+               // Reduce context if the leading compound selector is an ID
+               tokens = match[0] = match[0].slice( 0 );
+               if ( tokens.length > 2 && (token = tokens[0]).type === "ID" &&
+                               context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[1].type ] ) {
+
+                       context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];
+                       if ( !context ) {
+                               return results;
+
+                       // Precompiled matchers will still verify ancestry, so step up a level
+                       } else if ( compiled ) {
+                               context = context.parentNode;
+                       }
+
+                       selector = selector.slice( tokens.shift().value.length );
+               }
+
+               // Fetch a seed set for right-to-left matching
+               i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length;
+               while ( i-- ) {
+                       token = tokens[i];
+
+                       // Abort if we hit a combinator
+                       if ( Expr.relative[ (type = token.type) ] ) {
+                               break;
+                       }
+                       if ( (find = Expr.find[ type ]) ) {
+                               // Search, expanding context for leading sibling combinators
+                               if ( (seed = find(
+                                       token.matches[0].replace( runescape, funescape ),
+                                       rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context
+                               )) ) {
+
+                                       // If seed is empty or no tokens remain, we can return early
+                                       tokens.splice( i, 1 );
+                                       selector = seed.length && toSelector( tokens );
+                                       if ( !selector ) {
+                                               push.apply( results, seed );
+                                               return results;
+                                       }
+
+                                       break;
+                               }
+                       }
+               }
+       }
+
+       // Compile and execute a filtering function if one is not provided
+       // Provide `match` to avoid retokenization if we modified the selector above
+       ( compiled || compile( selector, match ) )(
+               seed,
+               context,
+               !documentIsHTML,
+               results,
+               !context || rsibling.test( selector ) && testContext( context.parentNode ) || context
+       );
+       return results;
+};
+
+// One-time assignments
+
+// Sort stability
+support.sortStable = expando.split("").sort( sortOrder ).join("") === expando;
+
+// Support: Chrome 14-35+
+// Always assume duplicates if they aren't passed to the comparison function
+support.detectDuplicates = !!hasDuplicate;
+
+// Initialize against the default document
+setDocument();
+
+// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)
+// Detached nodes confoundingly follow *each other*
+support.sortDetached = assert(function( el ) {
+       // Should return 1, but returns 4 (following)
+       return el.compareDocumentPosition( document.createElement("fieldset") ) & 1;
+});
+
+// Support: IE<8
+// Prevent attribute/property "interpolation"
+// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx
+if ( !assert(function( el ) {
+       el.innerHTML = "<a href='#'></a>";
+       return el.firstChild.getAttribute("href") === "#" ;
+}) ) {
+       addHandle( "type|href|height|width", function( elem, name, isXML ) {
+               if ( !isXML ) {
+                       return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 );
+               }
+       });
+}
+
+// Support: IE<9
+// Use defaultValue in place of getAttribute("value")
+if ( !support.attributes || !assert(function( el ) {
+       el.innerHTML = "<input/>";
+       el.firstChild.setAttribute( "value", "" );
+       return el.firstChild.getAttribute( "value" ) === "";
+}) ) {
+       addHandle( "value", function( elem, name, isXML ) {
+               if ( !isXML && elem.nodeName.toLowerCase() === "input" ) {
+                       return elem.defaultValue;
+               }
+       });
+}
+
+// Support: IE<9
+// Use getAttributeNode to fetch booleans when getAttribute lies
+if ( !assert(function( el ) {
+       return el.getAttribute("disabled") == null;
+}) ) {
+       addHandle( booleans, function( elem, name, isXML ) {
+               var val;
+               if ( !isXML ) {
+                       return elem[ name ] === true ? name.toLowerCase() :
+                                       (val = elem.getAttributeNode( name )) && val.specified ?
+                                       val.value :
+                               null;
+               }
+       });
+}
+
+return Sizzle;
+
+})( window );
+
+
+
+jQuery.find = Sizzle;
+jQuery.expr = Sizzle.selectors;
+
+// Deprecated
+jQuery.expr[ ":" ] = jQuery.expr.pseudos;
+jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;
+jQuery.text = Sizzle.getText;
+jQuery.isXMLDoc = Sizzle.isXML;
+jQuery.contains = Sizzle.contains;
+jQuery.escapeSelector = Sizzle.escape;
+
+
+
+
+var dir = function( elem, dir, until ) {
+       var matched = [],
+               truncate = until !== undefined;
+
+       while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {
+               if ( elem.nodeType === 1 ) {
+                       if ( truncate && jQuery( elem ).is( until ) ) {
+                               break;
+                       }
+                       matched.push( elem );
+               }
+       }
+       return matched;
+};
+
+
+var siblings = function( n, elem ) {
+       var matched = [];
+
+       for ( ; n; n = n.nextSibling ) {
+               if ( n.nodeType === 1 && n !== elem ) {
+                       matched.push( n );
+               }
+       }
+
+       return matched;
+};
+
+
+var rneedsContext = jQuery.expr.match.needsContext;
+
+
+
+function nodeName( elem, name ) {
+
+  return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();
+
+};
+var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i );
+
+
+
+var risSimple = /^.[^:#\[\.,]*$/;
+
+// Implement the identical functionality for filter and not
+function winnow( elements, qualifier, not ) {
+       if ( jQuery.isFunction( qualifier ) ) {
+               return jQuery.grep( elements, function( elem, i ) {
+                       return !!qualifier.call( elem, i, elem ) !== not;
+               } );
+       }
+
+       // Single element
+       if ( qualifier.nodeType ) {
+               return jQuery.grep( elements, function( elem ) {
+                       return ( elem === qualifier ) !== not;
+               } );
+       }
+
+       // Arraylike of elements (jQuery, arguments, Array)
+       if ( typeof qualifier !== "string" ) {
+               return jQuery.grep( elements, function( elem ) {
+                       return ( indexOf.call( qualifier, elem ) > -1 ) !== not;
+               } );
+       }
+
+       // Simple selector that can be filtered directly, removing non-Elements
+       if ( risSimple.test( qualifier ) ) {
+               return jQuery.filter( qualifier, elements, not );
+       }
+
+       // Complex selector, compare the two sets, removing non-Elements
+       qualifier = jQuery.filter( qualifier, elements );
+       return jQuery.grep( elements, function( elem ) {
+               return ( indexOf.call( qualifier, elem ) > -1 ) !== not && elem.nodeType === 1;
+       } );
+}
+
+jQuery.filter = function( expr, elems, not ) {
+       var elem = elems[ 0 ];
+
+       if ( not ) {
+               expr = ":not(" + expr + ")";
+       }
+
+       if ( elems.length === 1 && elem.nodeType === 1 ) {
+               return jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];
+       }
+
+       return jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {
+               return elem.nodeType === 1;
+       } ) );
+};
+
+jQuery.fn.extend( {
+       find: function( selector ) {
+               var i, ret,
+                       len = this.length,
+                       self = this;
+
+               if ( typeof selector !== "string" ) {
+                       return this.pushStack( jQuery( selector ).filter( function() {
+                               for ( i = 0; i < len; i++ ) {
+                                       if ( jQuery.contains( self[ i ], this ) ) {
+                                               return true;
+                                       }
+                               }
+                       } ) );
+               }
+
+               ret = this.pushStack( [] );
+
+               for ( i = 0; i < len; i++ ) {
+                       jQuery.find( selector, self[ i ], ret );
+               }
+
+               return len > 1 ? jQuery.uniqueSort( ret ) : ret;
+       },
+       filter: function( selector ) {
+               return this.pushStack( winnow( this, selector || [], false ) );
+       },
+       not: function( selector ) {
+               return this.pushStack( winnow( this, selector || [], true ) );
+       },
+       is: function( selector ) {
+               return !!winnow(
+                       this,
+
+                       // If this is a positional/relative selector, check membership in the returned set
+                       // so $("p:first").is("p:last") won't return true for a doc with two "p".
+                       typeof selector === "string" && rneedsContext.test( selector ) ?
+                               jQuery( selector ) :
+                               selector || [],
+                       false
+               ).length;
+       }
+} );
+
+
+// Initialize a jQuery object
+
+
+// A central reference to the root jQuery(document)
+var rootjQuery,
+
+       // A simple way to check for HTML strings
+       // Prioritize #id over <tag> to avoid XSS via location.hash (#9521)
+       // Strict HTML recognition (#11290: must start with <)
+       // Shortcut simple #id case for speed
+       rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,
+
+       init = jQuery.fn.init = function( selector, context, root ) {
+               var match, elem;
+
+               // HANDLE: $(""), $(null), $(undefined), $(false)
+               if ( !selector ) {
+                       return this;
+               }
+
+               // Method init() accepts an alternate rootjQuery
+               // so migrate can support jQuery.sub (gh-2101)
+               root = root || rootjQuery;
+
+               // Handle HTML strings
+               if ( typeof selector === "string" ) {
+                       if ( selector[ 0 ] === "<" &&
+                               selector[ selector.length - 1 ] === ">" &&
+                               selector.length >= 3 ) {
+
+                               // Assume that strings that start and end with <> are HTML and skip the regex check
+                               match = [ null, selector, null ];
+
+                       } else {
+                               match = rquickExpr.exec( selector );
+                       }
+
+                       // Match html or make sure no context is specified for #id
+                       if ( match && ( match[ 1 ] || !context ) ) {
+
+                               // HANDLE: $(html) -> $(array)
+                               if ( match[ 1 ] ) {
+                                       context = context instanceof jQuery ? context[ 0 ] : context;
+
+                                       // Option to run scripts is true for back-compat
+                                       // Intentionally let the error be thrown if parseHTML is not present
+                                       jQuery.merge( this, jQuery.parseHTML(
+                                               match[ 1 ],
+                                               context && context.nodeType ? context.ownerDocument || context : document,
+                                               true
+                                       ) );
+
+                                       // HANDLE: $(html, props)
+                                       if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {
+                                               for ( match in context ) {
+
+                                                       // Properties of context are called as methods if possible
+                                                       if ( jQuery.isFunction( this[ match ] ) ) {
+                                                               this[ match ]( context[ match ] );
+
+                                                       // ...and otherwise set as attributes
+                                                       } else {
+                                                               this.attr( match, context[ match ] );
+                                                       }
+                                               }
+                                       }
+
+                                       return this;
+
+                               // HANDLE: $(#id)
+                               } else {
+                                       elem = document.getElementById( match[ 2 ] );
+
+                                       if ( elem ) {
+
+                                               // Inject the element directly into the jQuery object
+                                               this[ 0 ] = elem;
+                                               this.length = 1;
+                                       }
+                                       return this;
+                               }
+
+                       // HANDLE: $(expr, $(...))
+                       } else if ( !context || context.jquery ) {
+                               return ( context || root ).find( selector );
+
+                       // HANDLE: $(expr, context)
+                       // (which is just equivalent to: $(context).find(expr)
+                       } else {
+                               return this.constructor( context ).find( selector );
+                       }
+
+               // HANDLE: $(DOMElement)
+               } else if ( selector.nodeType ) {
+                       this[ 0 ] = selector;
+                       this.length = 1;
+                       return this;
+
+               // HANDLE: $(function)
+               // Shortcut for document ready
+               } else if ( jQuery.isFunction( selector ) ) {
+                       return root.ready !== undefined ?
+                               root.ready( selector ) :
+
+                               // Execute immediately if ready is not present
+                               selector( jQuery );
+               }
+
+               return jQuery.makeArray( selector, this );
+       };
+
+// Give the init function the jQuery prototype for later instantiation
+init.prototype = jQuery.fn;
+
+// Initialize central reference
+rootjQuery = jQuery( document );
+
+
+var rparentsprev = /^(?:parents|prev(?:Until|All))/,
+
+       // Methods guaranteed to produce a unique set when starting from a unique set
+       guaranteedUnique = {
+               children: true,
+               contents: true,
+               next: true,
+               prev: true
+       };
+
+jQuery.fn.extend( {
+       has: function( target ) {
+               var targets = jQuery( target, this ),
+                       l = targets.length;
+
+               return this.filter( function() {
+                       var i = 0;
+                       for ( ; i < l; i++ ) {
+                               if ( jQuery.contains( this, targets[ i ] ) ) {
+                                       return true;
+                               }
+                       }
+               } );
+       },
+
+       closest: function( selectors, context ) {
+               var cur,
+                       i = 0,
+                       l = this.length,
+                       matched = [],
+                       targets = typeof selectors !== "string" && jQuery( selectors );
+
+               // Positional selectors never match, since there's no _selection_ context
+               if ( !rneedsContext.test( selectors ) ) {
+                       for ( ; i < l; i++ ) {
+                               for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {
+
+                                       // Always skip document fragments
+                                       if ( cur.nodeType < 11 && ( targets ?
+                                               targets.index( cur ) > -1 :
+
+                                               // Don't pass non-elements to Sizzle
+                                               cur.nodeType === 1 &&
+                                                       jQuery.find.matchesSelector( cur, selectors ) ) ) {
+
+                                               matched.push( cur );
+                                               break;
+                                       }
+                               }
+                       }
+               }
+
+               return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );
+       },
+
+       // Determine the position of an element within the set
+       index: function( elem ) {
+
+               // No argument, return index in parent
+               if ( !elem ) {
+                       return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;
+               }
+
+               // Index in selector
+               if ( typeof elem === "string" ) {
+                       return indexOf.call( jQuery( elem ), this[ 0 ] );
+               }
+
+               // Locate the position of the desired element
+               return indexOf.call( this,
+
+                       // If it receives a jQuery object, the first element is used
+                       elem.jquery ? elem[ 0 ] : elem
+               );
+       },
+
+       add: function( selector, context ) {
+               return this.pushStack(
+                       jQuery.uniqueSort(
+                               jQuery.merge( this.get(), jQuery( selector, context ) )
+                       )
+               );
+       },
+
+       addBack: function( selector ) {
+               return this.add( selector == null ?
+                       this.prevObject : this.prevObject.filter( selector )
+               );
+       }
+} );
+
+function sibling( cur, dir ) {
+       while ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}
+       return cur;
+}
+
+jQuery.each( {
+       parent: function( elem ) {
+               var parent = elem.parentNode;
+               return parent && parent.nodeType !== 11 ? parent : null;
+       },
+       parents: function( elem ) {
+               return dir( elem, "parentNode" );
+       },
+       parentsUntil: function( elem, i, until ) {
+               return dir( elem, "parentNode", until );
+       },
+       next: function( elem ) {
+               return sibling( elem, "nextSibling" );
+       },
+       prev: function( elem ) {
+               return sibling( elem, "previousSibling" );
+       },
+       nextAll: function( elem ) {
+               return dir( elem, "nextSibling" );
+       },
+       prevAll: function( elem ) {
+               return dir( elem, "previousSibling" );
+       },
+       nextUntil: function( elem, i, until ) {
+               return dir( elem, "nextSibling", until );
+       },
+       prevUntil: function( elem, i, until ) {
+               return dir( elem, "previousSibling", until );
+       },
+       siblings: function( elem ) {
+               return siblings( ( elem.parentNode || {} ).firstChild, elem );
+       },
+       children: function( elem ) {
+               return siblings( elem.firstChild );
+       },
+       contents: function( elem ) {
+        if ( nodeName( elem, "iframe" ) ) {
+            return elem.contentDocument;
+        }
+
+        // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only
+        // Treat the template element as a regular one in browsers that
+        // don't support it.
+        if ( nodeName( elem, "template" ) ) {
+            elem = elem.content || elem;
+        }
+
+        return jQuery.merge( [], elem.childNodes );
+       }
+}, function( name, fn ) {
+       jQuery.fn[ name ] = function( until, selector ) {
+               var matched = jQuery.map( this, fn, until );
+
+               if ( name.slice( -5 ) !== "Until" ) {
+                       selector = until;
+               }
+
+               if ( selector && typeof selector === "string" ) {
+                       matched = jQuery.filter( selector, matched );
+               }
+
+               if ( this.length > 1 ) {
+
+                       // Remove duplicates
+                       if ( !guaranteedUnique[ name ] ) {
+                               jQuery.uniqueSort( matched );
+                       }
+
+                       // Reverse order for parents* and prev-derivatives
+                       if ( rparentsprev.test( name ) ) {
+                               matched.reverse();
+                       }
+               }
+
+               return this.pushStack( matched );
+       };
+} );
+var rnothtmlwhite = ( /[^\x20\t\r\n\f]+/g );
+
+
+
+// Convert String-formatted options into Object-formatted ones
+function createOptions( options ) {
+       var object = {};
+       jQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {
+               object[ flag ] = true;
+       } );
+       return object;
+}
+
+/*
+ * Create a callback list using the following parameters:
+ *
+ *     options: an optional list of space-separated options that will change how
+ *                     the callback list behaves or a more traditional option object
+ *
+ * By default a callback list will act like an event callback list and can be
+ * "fired" multiple times.
+ *
+ * Possible options:
+ *
+ *     once:                   will ensure the callback list can only be fired once (like a Deferred)
+ *
+ *     memory:                 will keep track of previous values and will call any callback added
+ *                                     after the list has been fired right away with the latest "memorized"
+ *                                     values (like a Deferred)
+ *
+ *     unique:                 will ensure a callback can only be added once (no duplicate in the list)
+ *
+ *     stopOnFalse:    interrupt callings when a callback returns false
+ *
+ */
+jQuery.Callbacks = function( options ) {
+
+       // Convert options from String-formatted to Object-formatted if needed
+       // (we check in cache first)
+       options = typeof options === "string" ?
+               createOptions( options ) :
+               jQuery.extend( {}, options );
+
+       var // Flag to know if list is currently firing
+               firing,
+
+               // Last fire value for non-forgettable lists
+               memory,
+
+               // Flag to know if list was already fired
+               fired,
+
+               // Flag to prevent firing
+               locked,
+
+               // Actual callback list
+               list = [],
+
+               // Queue of execution data for repeatable lists
+               queue = [],
+
+               // Index of currently firing callback (modified by add/remove as needed)
+               firingIndex = -1,
+
+               // Fire callbacks
+               fire = function() {
+
+                       // Enforce single-firing
+                       locked = locked || options.once;
+
+                       // Execute callbacks for all pending executions,
+                       // respecting firingIndex overrides and runtime changes
+                       fired = firing = true;
+                       for ( ; queue.length; firingIndex = -1 ) {
+                               memory = queue.shift();
+                               while ( ++firingIndex < list.length ) {
+
+                                       // Run callback and check for early termination
+                                       if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&
+                                               options.stopOnFalse ) {
+
+                                               // Jump to end and forget the data so .add doesn't re-fire
+                                               firingIndex = list.length;
+                                               memory = false;
+                                       }
+                               }
+                       }
+
+                       // Forget the data if we're done with it
+                       if ( !options.memory ) {
+                               memory = false;
+                       }
+
+                       firing = false;
+
+                       // Clean up if we're done firing for good
+                       if ( locked ) {
+
+                               // Keep an empty list if we have data for future add calls
+                               if ( memory ) {
+                                       list = [];
+
+                               // Otherwise, this object is spent
+                               } else {
+                                       list = "";
+                               }
+                       }
+               },
+
+               // Actual Callbacks object
+               self = {
+
+                       // Add a callback or a collection of callbacks to the list
+                       add: function() {
+                               if ( list ) {
+
+                                       // If we have memory from a past run, we should fire after adding
+                                       if ( memory && !firing ) {
+                                               firingIndex = list.length - 1;
+                                               queue.push( memory );
+                                       }
+
+                                       ( function add( args ) {
+                                               jQuery.each( args, function( _, arg ) {
+                                                       if ( jQuery.isFunction( arg ) ) {
+                                                               if ( !options.unique || !self.has( arg ) ) {
+                                                                       list.push( arg );
+                                                               }
+                                                       } else if ( arg && arg.length && jQuery.type( arg ) !== "string" ) {
+
+                                                               // Inspect recursively
+                                                               add( arg );
+                                                       }
+                                               } );
+                                       } )( arguments );
+
+                                       if ( memory && !firing ) {
+                                               fire();
+                                       }
+                               }
+                               return this;
+                       },
+
+                       // Remove a callback from the list
+                       remove: function() {
+                               jQuery.each( arguments, function( _, arg ) {
+                                       var index;
+                                       while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {
+                                               list.splice( index, 1 );
+
+                                               // Handle firing indexes
+                                               if ( index <= firingIndex ) {
+                                                       firingIndex--;
+                                               }
+                                       }
+                               } );
+                               return this;
+                       },
+
+                       // Check if a given callback is in the list.
+                       // If no argument is given, return whether or not list has callbacks attached.
+                       has: function( fn ) {
+                               return fn ?
+                                       jQuery.inArray( fn, list ) > -1 :
+                                       list.length > 0;
+                       },
+
+                       // Remove all callbacks from the list
+                       empty: function() {
+                               if ( list ) {
+                                       list = [];
+                               }
+                               return this;
+                       },
+
+                       // Disable .fire and .add
+                       // Abort any current/pending executions
+                       // Clear all callbacks and values
+                       disable: function() {
+                               locked = queue = [];
+                               list = memory = "";
+                               return this;
+                       },
+                       disabled: function() {
+                               return !list;
+                       },
+
+                       // Disable .fire
+                       // Also disable .add unless we have memory (since it would have no effect)
+                       // Abort any pending executions
+                       lock: function() {
+                               locked = queue = [];
+                               if ( !memory && !firing ) {
+                                       list = memory = "";
+                               }
+                               return this;
+                       },
+                       locked: function() {
+                               return !!locked;
+                       },
+
+                       // Call all callbacks with the given context and arguments
+                       fireWith: function( context, args ) {
+                               if ( !locked ) {
+                                       args = args || [];
+                                       args = [ context, args.slice ? args.slice() : args ];
+                                       queue.push( args );
+                                       if ( !firing ) {
+                                               fire();
+                                       }
+                               }
+                               return this;
+                       },
+
+                       // Call all the callbacks with the given arguments
+                       fire: function() {
+                               self.fireWith( this, arguments );
+                               return this;
+                       },
+
+                       // To know if the callbacks have already been called at least once
+                       fired: function() {
+                               return !!fired;
+                       }
+               };
+
+       return self;
+};
+
+
+function Identity( v ) {
+       return v;
+}
+function Thrower( ex ) {
+       throw ex;
+}
+
+function adoptValue( value, resolve, reject, noValue ) {
+       var method;
+
+       try {
+
+               // Check for promise aspect first to privilege synchronous behavior
+               if ( value && jQuery.isFunction( ( method = value.promise ) ) ) {
+                       method.call( value ).done( resolve ).fail( reject );
+
+               // Other thenables
+               } else if ( value && jQuery.isFunction( ( method = value.then ) ) ) {
+                       method.call( value, resolve, reject );
+
+               // Other non-thenables
+               } else {
+
+                       // Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:
+                       // * false: [ value ].slice( 0 ) => resolve( value )
+                       // * true: [ value ].slice( 1 ) => resolve()
+                       resolve.apply( undefined, [ value ].slice( noValue ) );
+               }
+
+       // For Promises/A+, convert exceptions into rejections
+       // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in
+       // Deferred#then to conditionally suppress rejection.
+       } catch ( value ) {
+
+               // Support: Android 4.0 only
+               // Strict mode functions invoked without .call/.apply get global-object context
+               reject.apply( undefined, [ value ] );
+       }
+}
+
+jQuery.extend( {
+
+       Deferred: function( func ) {
+               var tuples = [
+
+                               // action, add listener, callbacks,
+                               // ... .then handlers, argument index, [final state]
+                               [ "notify", "progress", jQuery.Callbacks( "memory" ),
+                                       jQuery.Callbacks( "memory" ), 2 ],
+                               [ "resolve", "done", jQuery.Callbacks( "once memory" ),
+                                       jQuery.Callbacks( "once memory" ), 0, "resolved" ],
+                               [ "reject", "fail", jQuery.Callbacks( "once memory" ),
+                                       jQuery.Callbacks( "once memory" ), 1, "rejected" ]
+                       ],
+                       state = "pending",
+                       promise = {
+                               state: function() {
+                                       return state;
+                               },
+                               always: function() {
+                                       deferred.done( arguments ).fail( arguments );
+                                       return this;
+                               },
+                               "catch": function( fn ) {
+                                       return promise.then( null, fn );
+                               },
+
+                               // Keep pipe for back-compat
+                               pipe: function( /* fnDone, fnFail, fnProgress */ ) {
+                                       var fns = arguments;
+
+                                       return jQuery.Deferred( function( newDefer ) {
+                                               jQuery.each( tuples, function( i, tuple ) {
+
+                                                       // Map tuples (progress, done, fail) to arguments (done, fail, progress)
+                                                       var fn = jQuery.isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];
+
+                                                       // deferred.progress(function() { bind to newDefer or newDefer.notify })
+                                                       // deferred.done(function() { bind to newDefer or newDefer.resolve })
+                                                       // deferred.fail(function() { bind to newDefer or newDefer.reject })
+                                                       deferred[ tuple[ 1 ] ]( function() {
+                                                               var returned = fn && fn.apply( this, arguments );
+                                                               if ( returned && jQuery.isFunction( returned.promise ) ) {
+                                                                       returned.promise()
+                                                                               .progress( newDefer.notify )
+                                                                               .done( newDefer.resolve )
+                                                                               .fail( newDefer.reject );
+                                                               } else {
+                                                                       newDefer[ tuple[ 0 ] + "With" ](
+                                                                               this,
+                                                                               fn ? [ returned ] : arguments
+                                                                       );
+                                                               }
+                                                       } );
+                                               } );
+                                               fns = null;
+                                       } ).promise();
+                               },
+                               then: function( onFulfilled, onRejected, onProgress ) {
+                                       var maxDepth = 0;
+                                       function resolve( depth, deferred, handler, special ) {
+                                               return function() {
+                                                       var that = this,
+                                                               args = arguments,
+                                                               mightThrow = function() {
+                                                                       var returned, then;
+
+                                                                       // Support: Promises/A+ section 2.3.3.3.3
+                                                                       // https://promisesaplus.com/#point-59
+                                                                       // Ignore double-resolution attempts
+                                                                       if ( depth < maxDepth ) {
+                                                                               return;
+                                                                       }
+
+                                                                       returned = handler.apply( that, args );
+
+                                                                       // Support: Promises/A+ section 2.3.1
+                                                                       // https://promisesaplus.com/#point-48
+                                                                       if ( returned === deferred.promise() ) {
+                                                                               throw new TypeError( "Thenable self-resolution" );
+                                                                       }
+
+                                                                       // Support: Promises/A+ sections 2.3.3.1, 3.5
+                                                                       // https://promisesaplus.com/#point-54
+                                                                       // https://promisesaplus.com/#point-75
+                                                                       // Retrieve `then` only once
+                                                                       then = returned &&
+
+                                                                               // Support: Promises/A+ section 2.3.4
+                                                                               // https://promisesaplus.com/#point-64
+                                                                               // Only check objects and functions for thenability
+                                                                               ( typeof returned === "object" ||
+                                                                                       typeof returned === "function" ) &&
+                                                                               returned.then;
+
+                                                                       // Handle a returned thenable
+                                                                       if ( jQuery.isFunction( then ) ) {
+
+                                                                               // Special processors (notify) just wait for resolution
+                                                                               if ( special ) {
+                                                                                       then.call(
+                                                                                               returned,
+                                                                                               resolve( maxDepth, deferred, Identity, special ),
+                                                                                               resolve( maxDepth, deferred, Thrower, special )
+                                                                                       );
+
+                                                                               // Normal processors (resolve) also hook into progress
+                                                                               } else {
+
+                                                                                       // ...and disregard older resolution values
+                                                                                       maxDepth++;
+
+                                                                                       then.call(
+                                                                                               returned,
+                                                                                               resolve( maxDepth, deferred, Identity, special ),
+                                                                                               resolve( maxDepth, deferred, Thrower, special ),
+                                                                                               resolve( maxDepth, deferred, Identity,
+                                                                                                       deferred.notifyWith )
+                                                                                       );
+                                                                               }
+
+                                                                       // Handle all other returned values
+                                                                       } else {
+
+                                                                               // Only substitute handlers pass on context
+                                                                               // and multiple values (non-spec behavior)
+                                                                               if ( handler !== Identity ) {
+                                                                                       that = undefined;
+                                                                                       args = [ returned ];
+                                                                               }
+
+                                                                               // Process the value(s)
+                                                                               // Default process is resolve
+                                                                               ( special || deferred.resolveWith )( that, args );
+                                                                       }
+                                                               },
+
+                                                               // Only normal processors (resolve) catch and reject exceptions
+                                                               process = special ?
+                                                                       mightThrow :
+                                                                       function() {
+                                                                               try {
+                                                                                       mightThrow();
+                                                                               } catch ( e ) {
+
+                                                                                       if ( jQuery.Deferred.exceptionHook ) {
+                                                                                               jQuery.Deferred.exceptionHook( e,
+                                                                                                       process.stackTrace );
+                                                                                       }
+
+                                                                                       // Support: Promises/A+ section 2.3.3.3.4.1
+                                                                                       // https://promisesaplus.com/#point-61
+                                                                                       // Ignore post-resolution exceptions
+                                                                                       if ( depth + 1 >= maxDepth ) {
+
+                                                                                               // Only substitute handlers pass on context
+                                                                                               // and multiple values (non-spec behavior)
+                                                                                               if ( handler !== Thrower ) {
+                                                                                                       that = undefined;
+                                                                                                       args = [ e ];
+                                                                                               }
+
+                                                                                               deferred.rejectWith( that, args );
+                                                                                       }
+                                                                               }
+                                                                       };
+
+                                                       // Support: Promises/A+ section 2.3.3.3.1
+                                                       // https://promisesaplus.com/#point-57
+                                                       // Re-resolve promises immediately to dodge false rejection from
+                                                       // subsequent errors
+                                                       if ( depth ) {
+                                                               process();
+                                                       } else {
+
+                                                               // Call an optional hook to record the stack, in case of exception
+                                                               // since it's otherwise lost when execution goes async
+                                                               if ( jQuery.Deferred.getStackHook ) {
+                                                                       process.stackTrace = jQuery.Deferred.getStackHook();
+                                                               }
+                                                               window.setTimeout( process );
+                                                       }
+                                               };
+                                       }
+
+                                       return jQuery.Deferred( function( newDefer ) {
+
+                                               // progress_handlers.add( ... )
+                                               tuples[ 0 ][ 3 ].add(
+                                                       resolve(
+                                                               0,
+                                                               newDefer,
+                                                               jQuery.isFunction( onProgress ) ?
+                                                                       onProgress :
+                                                                       Identity,
+                                                               newDefer.notifyWith
+                                                       )
+                                               );
+
+                                               // fulfilled_handlers.add( ... )
+                                               tuples[ 1 ][ 3 ].add(
+                                                       resolve(
+                                                               0,
+                                                               newDefer,
+                                                               jQuery.isFunction( onFulfilled ) ?
+                                                                       onFulfilled :
+                                                                       Identity
+                                                       )
+                                               );
+
+                                               // rejected_handlers.add( ... )
+                                               tuples[ 2 ][ 3 ].add(
+                                                       resolve(
+                                                               0,
+                                                               newDefer,
+                                                               jQuery.isFunction( onRejected ) ?
+                                                                       onRejected :
+                                                                       Thrower
+                                                       )
+                                               );
+                                       } ).promise();
+                               },
+
+                               // Get a promise for this deferred
+                               // If obj is provided, the promise aspect is added to the object
+                               promise: function( obj ) {
+                                       return obj != null ? jQuery.extend( obj, promise ) : promise;
+                               }
+                       },
+                       deferred = {};
+
+               // Add list-specific methods
+               jQuery.each( tuples, function( i, tuple ) {
+                       var list = tuple[ 2 ],
+                               stateString = tuple[ 5 ];
+
+                       // promise.progress = list.add
+                       // promise.done = list.add
+                       // promise.fail = list.add
+                       promise[ tuple[ 1 ] ] = list.add;
+
+                       // Handle state
+                       if ( stateString ) {
+                               list.add(
+                                       function() {
+
+                                               // state = "resolved" (i.e., fulfilled)
+                                               // state = "rejected"
+                                               state = stateString;
+                                       },
+
+                                       // rejected_callbacks.disable
+                                       // fulfilled_callbacks.disable
+                                       tuples[ 3 - i ][ 2 ].disable,
+
+                                       // progress_callbacks.lock
+                                       tuples[ 0 ][ 2 ].lock
+                               );
+                       }
+
+                       // progress_handlers.fire
+                       // fulfilled_handlers.fire
+                       // rejected_handlers.fire
+                       list.add( tuple[ 3 ].fire );
+
+                       // deferred.notify = function() { deferred.notifyWith(...) }
+                       // deferred.resolve = function() { deferred.resolveWith(...) }
+                       // deferred.reject = function() { deferred.rejectWith(...) }
+                       deferred[ tuple[ 0 ] ] = function() {
+                               deferred[ tuple[ 0 ] + "With" ]( this === deferred ? undefined : this, arguments );
+                               return this;
+                       };
+
+                       // deferred.notifyWith = list.fireWith
+                       // deferred.resolveWith = list.fireWith
+                       // deferred.rejectWith = list.fireWith
+                       deferred[ tuple[ 0 ] + "With" ] = list.fireWith;
+               } );
+
+               // Make the deferred a promise
+               promise.promise( deferred );
+
+               // Call given func if any
+               if ( func ) {
+                       func.call( deferred, deferred );
+               }
+
+               // All done!
+               return deferred;
+       },
+
+       // Deferred helper
+       when: function( singleValue ) {
+               var
+
+                       // count of uncompleted subordinates
+                       remaining = arguments.length,
+
+                       // count of unprocessed arguments
+                       i = remaining,
+
+                       // subordinate fulfillment data
+                       resolveContexts = Array( i ),
+                       resolveValues = slice.call( arguments ),
+
+                       // the master Deferred
+                       master = jQuery.Deferred(),
+
+                       // subordinate callback factory
+                       updateFunc = function( i ) {
+                               return function( value ) {
+                                       resolveContexts[ i ] = this;
+                                       resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;
+                                       if ( !( --remaining ) ) {
+                                               master.resolveWith( resolveContexts, resolveValues );
+                                       }
+                               };
+                       };
+
+               // Single- and empty arguments are adopted like Promise.resolve
+               if ( remaining <= 1 ) {
+                       adoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject,
+                               !remaining );
+
+                       // Use .then() to unwrap secondary thenables (cf. gh-3000)
+                       if ( master.state() === "pending" ||
+                               jQuery.isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {
+
+                               return master.then();
+                       }
+               }
+
+               // Multiple arguments are aggregated like Promise.all array elements
+               while ( i-- ) {
+                       adoptValue( resolveValues[ i ], updateFunc( i ), master.reject );
+               }
+
+               return master.promise();
+       }
+} );
+
+
+// These usually indicate a programmer mistake during development,
+// warn about them ASAP rather than swallowing them by default.
+var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;
+
+jQuery.Deferred.exceptionHook = function( error, stack ) {
+
+       // Support: IE 8 - 9 only
+       // Console exists when dev tools are open, which can happen at any time
+       if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {
+               window.console.warn( "jQuery.Deferred exception: " + error.message, error.stack, stack );
+       }
+};
+
+
+
+
+jQuery.readyException = function( error ) {
+       window.setTimeout( function() {
+               throw error;
+       } );
+};
+
+
+
+
+// The deferred used on DOM ready
+var readyList = jQuery.Deferred();
+
+jQuery.fn.ready = function( fn ) {
+
+       readyList
+               .then( fn )
+
+               // Wrap jQuery.readyException in a function so that the lookup
+               // happens at the time of error handling instead of callback
+               // registration.
+               .catch( function( error ) {
+                       jQuery.readyException( error );
+               } );
+
+       return this;
+};
+
+jQuery.extend( {
+
+       // Is the DOM ready to be used? Set to true once it occurs.
+       isReady: false,
+
+       // A counter to track how many items to wait for before
+       // the ready event fires. See #6781
+       readyWait: 1,
+
+       // Handle when the DOM is ready
+       ready: function( wait ) {
+
+               // Abort if there are pending holds or we're already ready
+               if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {
+                       return;
+               }
+
+               // Remember that the DOM is ready
+               jQuery.isReady = true;
+
+               // If a normal DOM Ready event fired, decrement, and wait if need be
+               if ( wait !== true && --jQuery.readyWait > 0 ) {
+                       return;
+               }
+
+               // If there are functions bound, to execute
+               readyList.resolveWith( document, [ jQuery ] );
+       }
+} );
+
+jQuery.ready.then = readyList.then;
+
+// The ready event handler and self cleanup method
+function completed() {
+       document.removeEventListener( "DOMContentLoaded", completed );
+       window.removeEventListener( "load", completed );
+       jQuery.ready();
+}
+
+// Catch cases where $(document).ready() is called
+// after the browser event has already occurred.
+// Support: IE <=9 - 10 only
+// Older IE sometimes signals "interactive" too soon
+if ( document.readyState === "complete" ||
+       ( document.readyState !== "loading" && !document.documentElement.doScroll ) ) {
+
+       // Handle it asynchronously to allow scripts the opportunity to delay ready
+       window.setTimeout( jQuery.ready );
+
+} else {
+
+       // Use the handy event callback
+       document.addEventListener( "DOMContentLoaded", completed );
+
+       // A fallback to window.onload, that will always work
+       window.addEventListener( "load", completed );
+}
+
+
+
+
+// Multifunctional method to get and set values of a collection
+// The value/s can optionally be executed if it's a function
+var access = function( elems, fn, key, value, chainable, emptyGet, raw ) {
+       var i = 0,
+               len = elems.length,
+               bulk = key == null;
+
+       // Sets many values
+       if ( jQuery.type( key ) === "object" ) {
+               chainable = true;
+               for ( i in key ) {
+                       access( elems, fn, i, key[ i ], true, emptyGet, raw );
+               }
+
+       // Sets one value
+       } else if ( value !== undefined ) {
+               chainable = true;
+
+               if ( !jQuery.isFunction( value ) ) {
+                       raw = true;
+               }
+
+               if ( bulk ) {
+
+                       // Bulk operations run against the entire set
+                       if ( raw ) {
+                               fn.call( elems, value );
+                               fn = null;
+
+                       // ...except when executing function values
+                       } else {
+                               bulk = fn;
+                               fn = function( elem, key, value ) {
+                                       return bulk.call( jQuery( elem ), value );
+                               };
+                       }
+               }
+
+               if ( fn ) {
+                       for ( ; i < len; i++ ) {
+                               fn(
+                                       elems[ i ], key, raw ?
+                                       value :
+                                       value.call( elems[ i ], i, fn( elems[ i ], key ) )
+                               );
+                       }
+               }
+       }
+
+       if ( chainable ) {
+               return elems;
+       }
+
+       // Gets
+       if ( bulk ) {
+               return fn.call( elems );
+       }
+
+       return len ? fn( elems[ 0 ], key ) : emptyGet;
+};
+var acceptData = function( owner ) {
+
+       // Accepts only:
+       //  - Node
+       //    - Node.ELEMENT_NODE
+       //    - Node.DOCUMENT_NODE
+       //  - Object
+       //    - Any
+       return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );
+};
+
+
+
+
+function Data() {
+       this.expando = jQuery.expando + Data.uid++;
+}
+
+Data.uid = 1;
+
+Data.prototype = {
+
+       cache: function( owner ) {
+
+               // Check if the owner object already has a cache
+               var value = owner[ this.expando ];
+
+               // If not, create one
+               if ( !value ) {
+                       value = {};
+
+                       // We can accept data for non-element nodes in modern browsers,
+                       // but we should not, see #8335.
+                       // Always return an empty object.
+                       if ( acceptData( owner ) ) {
+
+                               // If it is a node unlikely to be stringify-ed or looped over
+                               // use plain assignment
+                               if ( owner.nodeType ) {
+                                       owner[ this.expando ] = value;
+
+                               // Otherwise secure it in a non-enumerable property
+                               // configurable must be true to allow the property to be
+                               // deleted when data is removed
+                               } else {
+                                       Object.defineProperty( owner, this.expando, {
+                                               value: value,
+                                               configurable: true
+                                       } );
+                               }
+                       }
+               }
+
+               return value;
+       },
+       set: function( owner, data, value ) {
+               var prop,
+                       cache = this.cache( owner );
+
+               // Handle: [ owner, key, value ] args
+               // Always use camelCase key (gh-2257)
+               if ( typeof data === "string" ) {
+                       cache[ jQuery.camelCase( data ) ] = value;
+
+               // Handle: [ owner, { properties } ] args
+               } else {
+
+                       // Copy the properties one-by-one to the cache object
+                       for ( prop in data ) {
+                               cache[ jQuery.camelCase( prop ) ] = data[ prop ];
+                       }
+               }
+               return cache;
+       },
+       get: function( owner, key ) {
+               return key === undefined ?
+                       this.cache( owner ) :
+
+                       // Always use camelCase key (gh-2257)
+                       owner[ this.expando ] && owner[ this.expando ][ jQuery.camelCase( key ) ];
+       },
+       access: function( owner, key, value ) {
+
+               // In cases where either:
+               //
+               //   1. No key was specified
+               //   2. A string key was specified, but no value provided
+               //
+               // Take the "read" path and allow the get method to determine
+               // which value to return, respectively either:
+               //
+               //   1. The entire cache object
+               //   2. The data stored at the key
+               //
+               if ( key === undefined ||
+                               ( ( key && typeof key === "string" ) && value === undefined ) ) {
+
+                       return this.get( owner, key );
+               }
+
+               // When the key is not a string, or both a key and value
+               // are specified, set or extend (existing objects) with either:
+               //
+               //   1. An object of properties
+               //   2. A key and value
+               //
+               this.set( owner, key, value );
+
+               // Since the "set" path can have two possible entry points
+               // return the expected data based on which path was taken[*]
+               return value !== undefined ? value : key;
+       },
+       remove: function( owner, key ) {
+               var i,
+                       cache = owner[ this.expando ];
+
+               if ( cache === undefined ) {
+                       return;
+               }
+
+               if ( key !== undefined ) {
+
+                       // Support array or space separated string of keys
+                       if ( Array.isArray( key ) ) {
+
+                               // If key is an array of keys...
+                               // We always set camelCase keys, so remove that.
+                               key = key.map( jQuery.camelCase );
+                       } else {
+                               key = jQuery.camelCase( key );
+
+                               // If a key with the spaces exists, use it.
+                               // Otherwise, create an array by matching non-whitespace
+                               key = key in cache ?
+                                       [ key ] :
+                                       ( key.match( rnothtmlwhite ) || [] );
+                       }
+
+                       i = key.length;
+
+                       while ( i-- ) {
+                               delete cache[ key[ i ] ];
+                       }
+               }
+
+               // Remove the expando if there's no more data
+               if ( key === undefined || jQuery.isEmptyObject( cache ) ) {
+
+                       // Support: Chrome <=35 - 45
+                       // Webkit & Blink performance suffers when deleting properties
+                       // from DOM nodes, so set to undefined instead
+                       // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)
+                       if ( owner.nodeType ) {
+                               owner[ this.expando ] = undefined;
+                       } else {
+                               delete owner[ this.expando ];
+                       }
+               }
+       },
+       hasData: function( owner ) {
+               var cache = owner[ this.expando ];
+               return cache !== undefined && !jQuery.isEmptyObject( cache );
+       }
+};
+var dataPriv = new Data();
+
+var dataUser = new Data();
+
+
+
+//     Implementation Summary
+//
+//     1. Enforce API surface and semantic compatibility with 1.9.x branch
+//     2. Improve the module's maintainability by reducing the storage
+//             paths to a single mechanism.
+//     3. Use the same single mechanism to support "private" and "user" data.
+//     4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData)
+//     5. Avoid exposing implementation details on user objects (eg. expando properties)
+//     6. Provide a clear path for implementation upgrade to WeakMap in 2014
+
+var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
+       rmultiDash = /[A-Z]/g;
+
+function getData( data ) {
+       if ( data === "true" ) {
+               return true;
+       }
+
+       if ( data === "false" ) {
+               return false;
+       }
+
+       if ( data === "null" ) {
+               return null;
+       }
+
+       // Only convert to a number if it doesn't change the string
+       if ( data === +data + "" ) {
+               return +data;
+       }
+
+       if ( rbrace.test( data ) ) {
+               return JSON.parse( data );
+       }
+
+       return data;
+}
+
+function dataAttr( elem, key, data ) {
+       var name;
+
+       // If nothing was found internally, try to fetch any
+       // data from the HTML5 data-* attribute
+       if ( data === undefined && elem.nodeType === 1 ) {
+               name = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase();
+               data = elem.getAttribute( name );
+
+               if ( typeof data === "string" ) {
+                       try {
+                               data = getData( data );
+                       } catch ( e ) {}
+
+                       // Make sure we set the data so it isn't changed later
+                       dataUser.set( elem, key, data );
+               } else {
+                       data = undefined;
+               }
+       }
+       return data;
+}
+
+jQuery.extend( {
+       hasData: function( elem ) {
+               return dataUser.hasData( elem ) || dataPriv.hasData( elem );
+       },
+
+       data: function( elem, name, data ) {
+               return dataUser.access( elem, name, data );
+       },
+
+       removeData: function( elem, name ) {
+               dataUser.remove( elem, name );
+       },
+
+       // TODO: Now that all calls to _data and _removeData have been replaced
+       // with direct calls to dataPriv methods, these can be deprecated.
+       _data: function( elem, name, data ) {
+               return dataPriv.access( elem, name, data );
+       },
+
+       _removeData: function( elem, name ) {
+               dataPriv.remove( elem, name );
+       }
+} );
+
+jQuery.fn.extend( {
+       data: function( key, value ) {
+               var i, name, data,
+                       elem = this[ 0 ],
+                       attrs = elem && elem.attributes;
+
+               // Gets all values
+               if ( key === undefined ) {
+                       if ( this.length ) {
+                               data = dataUser.get( elem );
+
+                               if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) {
+                                       i = attrs.length;
+                                       while ( i-- ) {
+
+                                               // Support: IE 11 only
+                                               // The attrs elements can be null (#14894)
+                                               if ( attrs[ i ] ) {
+                                                       name = attrs[ i ].name;
+                                                       if ( name.indexOf( "data-" ) === 0 ) {
+                                                               name = jQuery.camelCase( name.slice( 5 ) );
+                                                               dataAttr( elem, name, data[ name ] );
+                                                       }
+                                               }
+                                       }
+                                       dataPriv.set( elem, "hasDataAttrs", true );
+                               }
+                       }
+
+                       return data;
+               }
+
+               // Sets multiple values
+               if ( typeof key === "object" ) {
+                       return this.each( function() {
+                               dataUser.set( this, key );
+                       } );
+               }
+
+               return access( this, function( value ) {
+                       var data;
+
+                       // The calling jQuery object (element matches) is not empty
+                       // (and therefore has an element appears at this[ 0 ]) and the
+                       // `value` parameter was not undefined. An empty jQuery object
+                       // will result in `undefined` for elem = this[ 0 ] which will
+                       // throw an exception if an attempt to read a data cache is made.
+                       if ( elem && value === undefined ) {
+
+                               // Attempt to get data from the cache
+                               // The key will always be camelCased in Data
+                               data = dataUser.get( elem, key );
+                               if ( data !== undefined ) {
+                                       return data;
+                               }
+
+                               // Attempt to "discover" the data in
+                               // HTML5 custom data-* attrs
+                               data = dataAttr( elem, key );
+                               if ( data !== undefined ) {
+                                       return data;
+                               }
+
+                               // We tried really hard, but the data doesn't exist.
+                               return;
+                       }
+
+                       // Set the data...
+                       this.each( function() {
+
+                               // We always store the camelCased key
+                               dataUser.set( this, key, value );
+                       } );
+               }, null, value, arguments.length > 1, null, true );
+       },
+
+       removeData: function( key ) {
+               return this.each( function() {
+                       dataUser.remove( this, key );
+               } );
+       }
+} );
+
+
+jQuery.extend( {
+       queue: function( elem, type, data ) {
+               var queue;
+
+               if ( elem ) {
+                       type = ( type || "fx" ) + "queue";
+                       queue = dataPriv.get( elem, type );
+
+                       // Speed up dequeue by getting out quickly if this is just a lookup
+                       if ( data ) {
+                               if ( !queue || Array.isArray( data ) ) {
+                                       queue = dataPriv.access( elem, type, jQuery.makeArray( data ) );
+                               } else {
+                                       queue.push( data );
+                               }
+                       }
+                       return queue || [];
+               }
+       },
+
+       dequeue: function( elem, type ) {
+               type = type || "fx";
+
+               var queue = jQuery.queue( elem, type ),
+                       startLength = queue.length,
+                       fn = queue.shift(),
+                       hooks = jQuery._queueHooks( elem, type ),
+                       next = function() {
+                               jQuery.dequeue( elem, type );
+                       };
+
+               // If the fx queue is dequeued, always remove the progress sentinel
+               if ( fn === "inprogress" ) {
+                       fn = queue.shift();
+                       startLength--;
+               }
+
+               if ( fn ) {
+
+                       // Add a progress sentinel to prevent the fx queue from being
+                       // automatically dequeued
+                       if ( type === "fx" ) {
+                               queue.unshift( "inprogress" );
+                       }
+
+                       // Clear up the last queue stop function
+                       delete hooks.stop;
+                       fn.call( elem, next, hooks );
+               }
+
+               if ( !startLength && hooks ) {
+                       hooks.empty.fire();
+               }
+       },
+
+       // Not public - generate a queueHooks object, or return the current one
+       _queueHooks: function( elem, type ) {
+               var key = type + "queueHooks";
+               return dataPriv.get( elem, key ) || dataPriv.access( elem, key, {
+                       empty: jQuery.Callbacks( "once memory" ).add( function() {
+                               dataPriv.remove( elem, [ type + "queue", key ] );
+                       } )
+               } );
+       }
+} );
+
+jQuery.fn.extend( {
+       queue: function( type, data ) {
+               var setter = 2;
+
+               if ( typeof type !== "string" ) {
+                       data = type;
+                       type = "fx";
+                       setter--;
+               }
+
+               if ( arguments.length < setter ) {
+                       return jQuery.queue( this[ 0 ], type );
+               }
+
+               return data === undefined ?
+                       this :
+                       this.each( function() {
+                               var queue = jQuery.queue( this, type, data );
+
+                               // Ensure a hooks for this queue
+                               jQuery._queueHooks( this, type );
+
+                               if ( type === "fx" && queue[ 0 ] !== "inprogress" ) {
+                                       jQuery.dequeue( this, type );
+                               }
+                       } );
+       },
+       dequeue: function( type ) {
+               return this.each( function() {
+                       jQuery.dequeue( this, type );
+               } );
+       },
+       clearQueue: function( type ) {
+               return this.queue( type || "fx", [] );
+       },
+
+       // Get a promise resolved when queues of a certain type
+       // are emptied (fx is the type by default)
+       promise: function( type, obj ) {
+               var tmp,
+                       count = 1,
+                       defer = jQuery.Deferred(),
+                       elements = this,
+                       i = this.length,
+                       resolve = function() {
+                               if ( !( --count ) ) {
+                                       defer.resolveWith( elements, [ elements ] );
+                               }
+                       };
+
+               if ( typeof type !== "string" ) {
+                       obj = type;
+                       type = undefined;
+               }
+               type = type || "fx";
+
+               while ( i-- ) {
+                       tmp = dataPriv.get( elements[ i ], type + "queueHooks" );
+                       if ( tmp && tmp.empty ) {
+                               count++;
+                               tmp.empty.add( resolve );
+                       }
+               }
+               resolve();
+               return defer.promise( obj );
+       }
+} );
+var pnum = ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source;
+
+var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" );
+
+
+var cssExpand = [ "Top", "Right", "Bottom", "Left" ];
+
+var isHiddenWithinTree = function( elem, el ) {
+
+               // isHiddenWithinTree might be called from jQuery#filter function;
+               // in that case, element will be second argument
+               elem = el || elem;
+
+               // Inline style trumps all
+               return elem.style.display === "none" ||
+                       elem.style.display === "" &&
+
+                       // Otherwise, check computed style
+                       // Support: Firefox <=43 - 45
+                       // Disconnected elements can have computed display: none, so first confirm that elem is
+                       // in the document.
+                       jQuery.contains( elem.ownerDocument, elem ) &&
+
+                       jQuery.css( elem, "display" ) === "none";
+       };
+
+var swap = function( elem, options, callback, args ) {
+       var ret, name,
+               old = {};
+
+       // Remember the old values, and insert the new ones
+       for ( name in options ) {
+               old[ name ] = elem.style[ name ];
+               elem.style[ name ] = options[ name ];
+       }
+
+       ret = callback.apply( elem, args || [] );
+
+       // Revert the old values
+       for ( name in options ) {
+               elem.style[ name ] = old[ name ];
+       }
+
+       return ret;
+};
+
+
+
+
+function adjustCSS( elem, prop, valueParts, tween ) {
+       var adjusted,
+               scale = 1,
+               maxIterations = 20,
+               currentValue = tween ?
+                       function() {
+                               return tween.cur();
+                       } :
+                       function() {
+                               return jQuery.css( elem, prop, "" );
+                       },
+               initial = currentValue(),
+               unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ),
+
+               // Starting value computation is required for potential unit mismatches
+               initialInUnit = ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) &&
+                       rcssNum.exec( jQuery.css( elem, prop ) );
+
+       if ( initialInUnit && initialInUnit[ 3 ] !== unit ) {
+
+               // Trust units reported by jQuery.css
+               unit = unit || initialInUnit[ 3 ];
+
+               // Make sure we update the tween properties later on
+               valueParts = valueParts || [];
+
+               // Iteratively approximate from a nonzero starting point
+               initialInUnit = +initial || 1;
+
+               do {
+
+                       // If previous iteration zeroed out, double until we get *something*.
+                       // Use string for doubling so we don't accidentally see scale as unchanged below
+                       scale = scale || ".5";
+
+                       // Adjust and apply
+                       initialInUnit = initialInUnit / scale;
+                       jQuery.style( elem, prop, initialInUnit + unit );
+
+               // Update scale, tolerating zero or NaN from tween.cur()
+               // Break the loop if scale is unchanged or perfect, or if we've just had enough.
+               } while (
+                       scale !== ( scale = currentValue() / initial ) && scale !== 1 && --maxIterations
+               );
+       }
+
+       if ( valueParts ) {
+               initialInUnit = +initialInUnit || +initial || 0;
+
+               // Apply relative offset (+=/-=) if specified
+               adjusted = valueParts[ 1 ] ?
+                       initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :
+                       +valueParts[ 2 ];
+               if ( tween ) {
+                       tween.unit = unit;
+                       tween.start = initialInUnit;
+                       tween.end = adjusted;
+               }
+       }
+       return adjusted;
+}
+
+
+var defaultDisplayMap = {};
+
+function getDefaultDisplay( elem ) {
+       var temp,
+               doc = elem.ownerDocument,
+               nodeName = elem.nodeName,
+               display = defaultDisplayMap[ nodeName ];
+
+       if ( display ) {
+               return display;
+       }
+
+       temp = doc.body.appendChild( doc.createElement( nodeName ) );
+       display = jQuery.css( temp, "display" );
+
+       temp.parentNode.removeChild( temp );
+
+       if ( display === "none" ) {
+               display = "block";
+       }
+       defaultDisplayMap[ nodeName ] = display;
+
+       return display;
+}
+
+function showHide( elements, show ) {
+       var display, elem,
+               values = [],
+               index = 0,
+               length = elements.length;
+
+       // Determine new display value for elements that need to change
+       for ( ; index < length; index++ ) {
+               elem = elements[ index ];
+               if ( !elem.style ) {
+                       continue;
+               }
+
+               display = elem.style.display;
+               if ( show ) {
+
+                       // Since we force visibility upon cascade-hidden elements, an immediate (and slow)
+                       // check is required in this first loop unless we have a nonempty display value (either
+                       // inline or about-to-be-restored)
+                       if ( display === "none" ) {
+                               values[ index ] = dataPriv.get( elem, "display" ) || null;
+                               if ( !values[ index ] ) {
+                                       elem.style.display = "";
+                               }
+                       }
+                       if ( elem.style.display === "" && isHiddenWithinTree( elem ) ) {
+                               values[ index ] = getDefaultDisplay( elem );
+                       }
+               } else {
+                       if ( display !== "none" ) {
+                               values[ index ] = "none";
+
+                               // Remember what we're overwriting
+                               dataPriv.set( elem, "display", display );
+                       }
+               }
+       }
+
+       // Set the display of the elements in a second loop to avoid constant reflow
+       for ( index = 0; index < length; index++ ) {
+               if ( values[ index ] != null ) {
+                       elements[ index ].style.display = values[ index ];
+               }
+       }
+
+       return elements;
+}
+
+jQuery.fn.extend( {
+       show: function() {
+               return showHide( this, true );
+       },
+       hide: function() {
+               return showHide( this );
+       },
+       toggle: function( state ) {
+               if ( typeof state === "boolean" ) {
+                       return state ? this.show() : this.hide();
+               }
+
+               return this.each( function() {
+                       if ( isHiddenWithinTree( this ) ) {
+                               jQuery( this ).show();
+                       } else {
+                               jQuery( this ).hide();
+                       }
+               } );
+       }
+} );
+var rcheckableType = ( /^(?:checkbox|radio)$/i );
+
+var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]+)/i );
+
+var rscriptType = ( /^$|\/(?:java|ecma)script/i );
+
+
+
+// We have to close these tags to support XHTML (#13200)
+var wrapMap = {
+
+       // Support: IE <=9 only
+       option: [ 1, "<select multiple='multiple'>", "</select>" ],
+
+       // XHTML parsers do not magically insert elements in the
+       // same way that tag soup parsers do. So we cannot shorten
+       // this by omitting <tbody> or other required elements.
+       thead: [ 1, "<table>", "</table>" ],
+       col: [ 2, "<table><colgroup>", "</colgroup></table>" ],
+       tr: [ 2, "<table><tbody>", "</tbody></table>" ],
+       td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ],
+
+       _default: [ 0, "", "" ]
+};
+
+// Support: IE <=9 only
+wrapMap.optgroup = wrapMap.option;
+
+wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;
+wrapMap.th = wrapMap.td;
+
+
+function getAll( context, tag ) {
+
+       // Support: IE <=9 - 11 only
+       // Use typeof to avoid zero-argument method invocation on host objects (#15151)
+       var ret;
+
+       if ( typeof context.getElementsByTagName !== "undefined" ) {
+               ret = context.getElementsByTagName( tag || "*" );
+
+       } else if ( typeof context.querySelectorAll !== "undefined" ) {
+               ret = context.querySelectorAll( tag || "*" );
+
+       } else {
+               ret = [];
+       }
+
+       if ( tag === undefined || tag && nodeName( context, tag ) ) {
+               return jQuery.merge( [ context ], ret );
+       }
+
+       return ret;
+}
+
+
+// Mark scripts as having already been evaluated
+function setGlobalEval( elems, refElements ) {
+       var i = 0,
+               l = elems.length;
+
+       for ( ; i < l; i++ ) {
+               dataPriv.set(
+                       elems[ i ],
+                       "globalEval",
+                       !refElements || dataPriv.get( refElements[ i ], "globalEval" )
+               );
+       }
+}
+
+
+var rhtml = /<|&#?\w+;/;
+
+function buildFragment( elems, context, scripts, selection, ignored ) {
+       var elem, tmp, tag, wrap, contains, j,
+               fragment = context.createDocumentFragment(),
+               nodes = [],
+               i = 0,
+               l = elems.length;
+
+       for ( ; i < l; i++ ) {
+               elem = elems[ i ];
+
+               if ( elem || elem === 0 ) {
+
+                       // Add nodes directly
+                       if ( jQuery.type( elem ) === "object" ) {
+
+                               // Support: Android <=4.0 only, PhantomJS 1 only
+                               // push.apply(_, arraylike) throws on ancient WebKit
+                               jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );
+
+                       // Convert non-html into a text node
+                       } else if ( !rhtml.test( elem ) ) {
+                               nodes.push( context.createTextNode( elem ) );
+
+                       // Convert html into DOM nodes
+                       } else {
+                               tmp = tmp || fragment.appendChild( context.createElement( "div" ) );
+
+                               // Deserialize a standard representation
+                               tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase();
+                               wrap = wrapMap[ tag ] || wrapMap._default;
+                               tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];
+
+                               // Descend through wrappers to the right content
+                               j = wrap[ 0 ];
+                               while ( j-- ) {
+                                       tmp = tmp.lastChild;
+                               }
+
+                               // Support: Android <=4.0 only, PhantomJS 1 only
+                               // push.apply(_, arraylike) throws on ancient WebKit
+                               jQuery.merge( nodes, tmp.childNodes );
+
+                               // Remember the top-level container
+                               tmp = fragment.firstChild;
+
+                               // Ensure the created nodes are orphaned (#12392)
+                               tmp.textContent = "";
+                       }
+               }
+       }
+
+       // Remove wrapper from fragment
+       fragment.textContent = "";
+
+       i = 0;
+       while ( ( elem = nodes[ i++ ] ) ) {
+
+               // Skip elements already in the context collection (trac-4087)
+               if ( selection && jQuery.inArray( elem, selection ) > -1 ) {
+                       if ( ignored ) {
+                               ignored.push( elem );
+                       }
+                       continue;
+               }
+
+               contains = jQuery.contains( elem.ownerDocument, elem );
+
+               // Append to fragment
+               tmp = getAll( fragment.appendChild( elem ), "script" );
+
+               // Preserve script evaluation history
+               if ( contains ) {
+                       setGlobalEval( tmp );
+               }
+
+               // Capture executables
+               if ( scripts ) {
+                       j = 0;
+                       while ( ( elem = tmp[ j++ ] ) ) {
+                               if ( rscriptType.test( elem.type || "" ) ) {
+                                       scripts.push( elem );
+                               }
+                       }
+               }
+       }
+
+       return fragment;
+}
+
+
+( function() {
+       var fragment = document.createDocumentFragment(),
+               div = fragment.appendChild( document.createElement( "div" ) ),
+               input = document.createElement( "input" );
+
+       // Support: Android 4.0 - 4.3 only
+       // Check state lost if the name is set (#11217)
+       // Support: Windows Web Apps (WWA)
+       // `name` and `type` must use .setAttribute for WWA (#14901)
+       input.setAttribute( "type", "radio" );
+       input.setAttribute( "checked", "checked" );
+       input.setAttribute( "name", "t" );
+
+       div.appendChild( input );
+
+       // Support: Android <=4.1 only
+       // Older WebKit doesn't clone checked state correctly in fragments
+       support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;
+
+       // Support: IE <=11 only
+       // Make sure textarea (and checkbox) defaultValue is properly cloned
+       div.innerHTML = "<textarea>x</textarea>";
+       support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;
+} )();
+var documentElement = document.documentElement;
+
+
+
+var
+       rkeyEvent = /^key/,
+       rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,
+       rtypenamespace = /^([^.]*)(?:\.(.+)|)/;
+
+function returnTrue() {
+       return true;
+}
+
+function returnFalse() {
+       return false;
+}
+
+// Support: IE <=9 only
+// See #13393 for more info
+function safeActiveElement() {
+       try {
+               return document.activeElement;
+       } catch ( err ) { }
+}
+
+function on( elem, types, selector, data, fn, one ) {
+       var origFn, type;
+
+       // Types can be a map of types/handlers
+       if ( typeof types === "object" ) {
+
+               // ( types-Object, selector, data )
+               if ( typeof selector !== "string" ) {
+
+                       // ( types-Object, data )
+                       data = data || selector;
+                       selector = undefined;
+               }
+               for ( type in types ) {
+                       on( elem, type, selector, data, types[ type ], one );
+               }
+               return elem;
+       }
+
+       if ( data == null && fn == null ) {
+
+               // ( types, fn )
+               fn = selector;
+               data = selector = undefined;
+       } else if ( fn == null ) {
+               if ( typeof selector === "string" ) {
+
+                       // ( types, selector, fn )
+                       fn = data;
+                       data = undefined;
+               } else {
+
+                       // ( types, data, fn )
+                       fn = data;
+                       data = selector;
+                       selector = undefined;
+               }
+       }
+       if ( fn === false ) {
+               fn = returnFalse;
+       } else if ( !fn ) {
+               return elem;
+       }
+
+       if ( one === 1 ) {
+               origFn = fn;
+               fn = function( event ) {
+
+                       // Can use an empty set, since event contains the info
+                       jQuery().off( event );
+                       return origFn.apply( this, arguments );
+               };
+
+               // Use same guid so caller can remove using origFn
+               fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );
+       }
+       return elem.each( function() {
+               jQuery.event.add( this, types, fn, data, selector );
+       } );
+}
+
+/*
+ * Helper functions for managing events -- not part of the public interface.
+ * Props to Dean Edwards' addEvent library for many of the ideas.
+ */
+jQuery.event = {
+
+       global: {},
+
+       add: function( elem, types, handler, data, selector ) {
+
+               var handleObjIn, eventHandle, tmp,
+                       events, t, handleObj,
+                       special, handlers, type, namespaces, origType,
+                       elemData = dataPriv.get( elem );
+
+               // Don't attach events to noData or text/comment nodes (but allow plain objects)
+               if ( !elemData ) {
+                       return;
+               }
+
+               // Caller can pass in an object of custom data in lieu of the handler
+               if ( handler.handler ) {
+                       handleObjIn = handler;
+                       handler = handleObjIn.handler;
+                       selector = handleObjIn.selector;
+               }
+
+               // Ensure that invalid selectors throw exceptions at attach time
+               // Evaluate against documentElement in case elem is a non-element node (e.g., document)
+               if ( selector ) {
+                       jQuery.find.matchesSelector( documentElement, selector );
+               }
+
+               // Make sure that the handler has a unique ID, used to find/remove it later
+               if ( !handler.guid ) {
+                       handler.guid = jQuery.guid++;
+               }
+
+               // Init the element's event structure and main handler, if this is the first
+               if ( !( events = elemData.events ) ) {
+                       events = elemData.events = {};
+               }
+               if ( !( eventHandle = elemData.handle ) ) {
+                       eventHandle = elemData.handle = function( e ) {
+
+                               // Discard the second event of a jQuery.event.trigger() and
+                               // when an event is called after a page has unloaded
+                               return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ?
+                                       jQuery.event.dispatch.apply( elem, arguments ) : undefined;
+                       };
+               }
+
+               // Handle multiple events separated by a space
+               types = ( types || "" ).match( rnothtmlwhite ) || [ "" ];
+               t = types.length;
+               while ( t-- ) {
+                       tmp = rtypenamespace.exec( types[ t ] ) || [];
+                       type = origType = tmp[ 1 ];
+                       namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort();
+
+                       // There *must* be a type, no attaching namespace-only handlers
+                       if ( !type ) {
+                               continue;
+                       }
+
+                       // If event changes its type, use the special event handlers for the changed type
+                       special = jQuery.event.special[ type ] || {};
+
+                       // If selector defined, determine special event api type, otherwise given type
+                       type = ( selector ? special.delegateType : special.bindType ) || type;
+
+                       // Update special based on newly reset type
+                       special = jQuery.event.special[ type ] || {};
+
+                       // handleObj is passed to all event handlers
+                       handleObj = jQuery.extend( {
+                               type: type,
+                               origType: origType,
+                               data: data,
+                               handler: handler,
+                               guid: handler.guid,
+                               selector: selector,
+                               needsContext: selector && jQuery.expr.match.needsContext.test( selector ),
+                               namespace: namespaces.join( "." )
+                       }, handleObjIn );
+
+                       // Init the event handler queue if we're the first
+                       if ( !( handlers = events[ type ] ) ) {
+                               handlers = events[ type ] = [];
+                               handlers.delegateCount = 0;
+
+                               // Only use addEventListener if the special events handler returns false
+                               if ( !special.setup ||
+                                       special.setup.call( elem, data, namespaces, eventHandle ) === false ) {
+
+                                       if ( elem.addEventListener ) {
+                                               elem.addEventListener( type, eventHandle );
+                                       }
+                               }
+                       }
+
+                       if ( special.add ) {
+                               special.add.call( elem, handleObj );
+
+                               if ( !handleObj.handler.guid ) {
+                                       handleObj.handler.guid = handler.guid;
+                               }
+                       }
+
+                       // Add to the element's handler list, delegates in front
+                       if ( selector ) {
+                               handlers.splice( handlers.delegateCount++, 0, handleObj );
+                       } else {
+                               handlers.push( handleObj );
+                       }
+
+                       // Keep track of which events have ever been used, for event optimization
+                       jQuery.event.global[ type ] = true;
+               }
+
+       },
+
+       // Detach an event or set of events from an element
+       remove: function( elem, types, handler, selector, mappedTypes ) {
+
+               var j, origCount, tmp,
+                       events, t, handleObj,
+                       special, handlers, type, namespaces, origType,
+                       elemData = dataPriv.hasData( elem ) && dataPriv.get( elem );
+
+               if ( !elemData || !( events = elemData.events ) ) {
+                       return;
+               }
+
+               // Once for each type.namespace in types; type may be omitted
+               types = ( types || "" ).match( rnothtmlwhite ) || [ "" ];
+               t = types.length;
+               while ( t-- ) {
+                       tmp = rtypenamespace.exec( types[ t ] ) || [];
+                       type = origType = tmp[ 1 ];
+                       namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort();
+
+                       // Unbind all events (on this namespace, if provided) for the element
+                       if ( !type ) {
+                               for ( type in events ) {
+                                       jQuery.event.remove( elem, type + types[ t ], handler, selector, true );
+                               }
+                               continue;
+                       }
+
+                       special = jQuery.event.special[ type ] || {};
+                       type = ( selector ? special.delegateType : special.bindType ) || type;
+                       handlers = events[ type ] || [];
+                       tmp = tmp[ 2 ] &&
+                               new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" );
+
+                       // Remove matching events
+                       origCount = j = handlers.length;
+                       while ( j-- ) {
+                               handleObj = handlers[ j ];
+
+                               if ( ( mappedTypes || origType === handleObj.origType ) &&
+                                       ( !handler || handler.guid === handleObj.guid ) &&
+                                       ( !tmp || tmp.test( handleObj.namespace ) ) &&
+                                       ( !selector || selector === handleObj.selector ||
+                                               selector === "**" && handleObj.selector ) ) {
+                                       handlers.splice( j, 1 );
+
+                                       if ( handleObj.selector ) {
+                                               handlers.delegateCount--;
+                                       }
+                                       if ( special.remove ) {
+                                               special.remove.call( elem, handleObj );
+                                       }
+                               }
+                       }
+
+                       // Remove generic event handler if we removed something and no more handlers exist
+                       // (avoids potential for endless recursion during removal of special event handlers)
+                       if ( origCount && !handlers.length ) {
+                               if ( !special.teardown ||
+                                       special.teardown.call( elem, namespaces, elemData.handle ) === false ) {
+
+                                       jQuery.removeEvent( elem, type, elemData.handle );
+                               }
+
+                               delete events[ type ];
+                       }
+               }
+
+               // Remove data and the expando if it's no longer used
+               if ( jQuery.isEmptyObject( events ) ) {
+                       dataPriv.remove( elem, "handle events" );
+               }
+       },
+
+       dispatch: function( nativeEvent ) {
+
+               // Make a writable jQuery.Event from the native event object
+               var event = jQuery.event.fix( nativeEvent );
+
+               var i, j, ret, matched, handleObj, handlerQueue,
+                       args = new Array( arguments.length ),
+                       handlers = ( dataPriv.get( this, "events" ) || {} )[ event.type ] || [],
+                       special = jQuery.event.special[ event.type ] || {};
+
+               // Use the fix-ed jQuery.Event rather than the (read-only) native event
+               args[ 0 ] = event;
+
+               for ( i = 1; i < arguments.length; i++ ) {
+                       args[ i ] = arguments[ i ];
+               }
+
+               event.delegateTarget = this;
+
+               // Call the preDispatch hook for the mapped type, and let it bail if desired
+               if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {
+                       return;
+               }
+
+               // Determine handlers
+               handlerQueue = jQuery.event.handlers.call( this, event, handlers );
+
+               // Run delegates first; they may want to stop propagation beneath us
+               i = 0;
+               while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {
+                       event.currentTarget = matched.elem;
+
+                       j = 0;
+                       while ( ( handleObj = matched.handlers[ j++ ] ) &&
+                               !event.isImmediatePropagationStopped() ) {
+
+                               // Triggered event must either 1) have no namespace, or 2) have namespace(s)
+                               // a subset or equal to those in the bound event (both can have no namespace).
+                               if ( !event.rnamespace || event.rnamespace.test( handleObj.namespace ) ) {
+
+                                       event.handleObj = handleObj;
+                                       event.data = handleObj.data;
+
+                                       ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||
+                                               handleObj.handler ).apply( matched.elem, args );
+
+                                       if ( ret !== undefined ) {
+                                               if ( ( event.result = ret ) === false ) {
+                                                       event.preventDefault();
+                                                       event.stopPropagation();
+                                               }
+                                       }
+                               }
+                       }
+               }
+
+               // Call the postDispatch hook for the mapped type
+               if ( special.postDispatch ) {
+                       special.postDispatch.call( this, event );
+               }
+
+               return event.result;
+       },
+
+       handlers: function( event, handlers ) {
+               var i, handleObj, sel, matchedHandlers, matchedSelectors,
+                       handlerQueue = [],
+                       delegateCount = handlers.delegateCount,
+                       cur = event.target;
+
+               // Find delegate handlers
+               if ( delegateCount &&
+
+                       // Support: IE <=9
+                       // Black-hole SVG <use> instance trees (trac-13180)
+                       cur.nodeType &&
+
+                       // Support: Firefox <=42
+                       // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)
+                       // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click
+                       // Support: IE 11 only
+                       // ...but not arrow key "clicks" of radio inputs, which can have `button` -1 (gh-2343)
+                       !( event.type === "click" && event.button >= 1 ) ) {
+
+                       for ( ; cur !== this; cur = cur.parentNode || this ) {
+
+                               // Don't check non-elements (#13208)
+                               // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)
+                               if ( cur.nodeType === 1 && !( event.type === "click" && cur.disabled === true ) ) {
+                                       matchedHandlers = [];
+                                       matchedSelectors = {};
+                                       for ( i = 0; i < delegateCount; i++ ) {
+                                               handleObj = handlers[ i ];
+
+                                               // Don't conflict with Object.prototype properties (#13203)
+                                               sel = handleObj.selector + " ";
+
+                                               if ( matchedSelectors[ sel ] === undefined ) {
+                                                       matchedSelectors[ sel ] = handleObj.needsContext ?
+                                                               jQuery( sel, this ).index( cur ) > -1 :
+                                                               jQuery.find( sel, this, null, [ cur ] ).length;
+                                               }
+                                               if ( matchedSelectors[ sel ] ) {
+                                                       matchedHandlers.push( handleObj );
+                                               }
+                                       }
+                                       if ( matchedHandlers.length ) {
+                                               handlerQueue.push( { elem: cur, handlers: matchedHandlers } );
+                                       }
+                               }
+                       }
+               }
+
+               // Add the remaining (directly-bound) handlers
+               cur = this;
+               if ( delegateCount < handlers.length ) {
+                       handlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );
+               }
+
+               return handlerQueue;
+       },
+
+       addProp: function( name, hook ) {
+               Object.defineProperty( jQuery.Event.prototype, name, {
+                       enumerable: true,
+                       configurable: true,
+
+                       get: jQuery.isFunction( hook ) ?
+                               function() {
+                                       if ( this.originalEvent ) {
+                                                       return hook( this.originalEvent );
+                                       }
+                               } :
+                               function() {
+                                       if ( this.originalEvent ) {
+                                                       return this.originalEvent[ name ];
+                                       }
+                               },
+
+                       set: function( value ) {
+                               Object.defineProperty( this, name, {
+                                       enumerable: true,
+                                       configurable: true,
+                                       writable: true,
+                                       value: value
+                               } );
+                       }
+               } );
+       },
+
+       fix: function( originalEvent ) {
+               return originalEvent[ jQuery.expando ] ?
+                       originalEvent :
+                       new jQuery.Event( originalEvent );
+       },
+
+       special: {
+               load: {
+
+                       // Prevent triggered image.load events from bubbling to window.load
+                       noBubble: true
+               },
+               focus: {
+
+                       // Fire native event if possible so blur/focus sequence is correct
+                       trigger: function() {
+                               if ( this !== safeActiveElement() && this.focus ) {
+                                       this.focus();
+                                       return false;
+                               }
+                       },
+                       delegateType: "focusin"
+               },
+               blur: {
+                       trigger: function() {
+                               if ( this === safeActiveElement() && this.blur ) {
+                                       this.blur();
+                                       return false;
+                               }
+                       },
+                       delegateType: "focusout"
+               },
+               click: {
+
+                       // For checkbox, fire native event so checked state will be right
+                       trigger: function() {
+                               if ( this.type === "checkbox" && this.click && nodeName( this, "input" ) ) {
+                                       this.click();
+                                       return false;
+                               }
+                       },
+
+                       // For cross-browser consistency, don't fire native .click() on links
+                       _default: function( event ) {
+                               return nodeName( event.target, "a" );
+                       }
+               },
+
+               beforeunload: {
+                       postDispatch: function( event ) {
+
+                               // Support: Firefox 20+
+                               // Firefox doesn't alert if the returnValue field is not set.
+                               if ( event.result !== undefined && event.originalEvent ) {
+                                       event.originalEvent.returnValue = event.result;
+                               }
+                       }
+               }
+       }
+};
+
+jQuery.removeEvent = function( elem, type, handle ) {
+
+       // This "if" is needed for plain objects
+       if ( elem.removeEventListener ) {
+               elem.removeEventListener( type, handle );
+       }
+};
+
+jQuery.Event = function( src, props ) {
+
+       // Allow instantiation without the 'new' keyword
+       if ( !( this instanceof jQuery.Event ) ) {
+               return new jQuery.Event( src, props );
+       }
+
+       // Event object
+       if ( src && src.type ) {
+               this.originalEvent = src;
+               this.type = src.type;
+
+               // Events bubbling up the document may have been marked as prevented
+               // by a handler lower down the tree; reflect the correct value.
+               this.isDefaultPrevented = src.defaultPrevented ||
+                               src.defaultPrevented === undefined &&
+
+                               // Support: Android <=2.3 only
+                               src.returnValue === false ?
+                       returnTrue :
+                       returnFalse;
+
+               // Create target properties
+               // Support: Safari <=6 - 7 only
+               // Target should not be a text node (#504, #13143)
+               this.target = ( src.target && src.target.nodeType === 3 ) ?
+                       src.target.parentNode :
+                       src.target;
+
+               this.currentTarget = src.currentTarget;
+               this.relatedTarget = src.relatedTarget;
+
+       // Event type
+       } else {
+               this.type = src;
+       }
+
+       // Put explicitly provided properties onto the event object
+       if ( props ) {
+               jQuery.extend( this, props );
+       }
+
+       // Create a timestamp if incoming event doesn't have one
+       this.timeStamp = src && src.timeStamp || jQuery.now();
+
+       // Mark it as fixed
+       this[ jQuery.expando ] = true;
+};
+
+// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding
+// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html
+jQuery.Event.prototype = {
+       constructor: jQuery.Event,
+       isDefaultPrevented: returnFalse,
+       isPropagationStopped: returnFalse,
+       isImmediatePropagationStopped: returnFalse,
+       isSimulated: false,
+
+       preventDefault: function() {
+               var e = this.originalEvent;
+
+               this.isDefaultPrevented = returnTrue;
+
+               if ( e && !this.isSimulated ) {
+                       e.preventDefault();
+               }
+       },
+       stopPropagation: function() {
+               var e = this.originalEvent;
+
+               this.isPropagationStopped = returnTrue;
+
+               if ( e && !this.isSimulated ) {
+                       e.stopPropagation();
+               }
+       },
+       stopImmediatePropagation: function() {
+               var e = this.originalEvent;
+
+               this.isImmediatePropagationStopped = returnTrue;
+
+               if ( e && !this.isSimulated ) {
+                       e.stopImmediatePropagation();
+               }
+
+               this.stopPropagation();
+       }
+};
+
+// Includes all common event props including KeyEvent and MouseEvent specific props
+jQuery.each( {
+       altKey: true,
+       bubbles: true,
+       cancelable: true,
+       changedTouches: true,
+       ctrlKey: true,
+       detail: true,
+       eventPhase: true,
+       metaKey: true,
+       pageX: true,
+       pageY: true,
+       shiftKey: true,
+       view: true,
+       "char": true,
+       charCode: true,
+       key: true,
+       keyCode: true,
+       button: true,
+       buttons: true,
+       clientX: true,
+       clientY: true,
+       offsetX: true,
+       offsetY: true,
+       pointerId: true,
+       pointerType: true,
+       screenX: true,
+       screenY: true,
+       targetTouches: true,
+       toElement: true,
+       touches: true,
+
+       which: function( event ) {
+               var button = event.button;
+
+               // Add which for key events
+               if ( event.which == null && rkeyEvent.test( event.type ) ) {
+                       return event.charCode != null ? event.charCode : event.keyCode;
+               }
+
+               // Add which for click: 1 === left; 2 === middle; 3 === right
+               if ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) {
+                       if ( button & 1 ) {
+                               return 1;
+                       }
+
+                       if ( button & 2 ) {
+                               return 3;
+                       }
+
+                       if ( button & 4 ) {
+                               return 2;
+                       }
+
+                       return 0;
+               }
+
+               return event.which;
+       }
+}, jQuery.event.addProp );
+
+// Create mouseenter/leave events using mouseover/out and event-time checks
+// so that event delegation works in jQuery.
+// Do the same for pointerenter/pointerleave and pointerover/pointerout
+//
+// Support: Safari 7 only
+// Safari sends mouseenter too often; see:
+// https://bugs.chromium.org/p/chromium/issues/detail?id=470258
+// for the description of the bug (it existed in older Chrome versions as well).
+jQuery.each( {
+       mouseenter: "mouseover",
+       mouseleave: "mouseout",
+       pointerenter: "pointerover",
+       pointerleave: "pointerout"
+}, function( orig, fix ) {
+       jQuery.event.special[ orig ] = {
+               delegateType: fix,
+               bindType: fix,
+
+               handle: function( event ) {
+                       var ret,
+                               target = this,
+                               related = event.relatedTarget,
+                               handleObj = event.handleObj;
+
+                       // For mouseenter/leave call the handler if related is outside the target.
+                       // NB: No relatedTarget if the mouse left/entered the browser window
+                       if ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {
+                               event.type = handleObj.origType;
+                               ret = handleObj.handler.apply( this, arguments );
+                               event.type = fix;
+                       }
+                       return ret;
+               }
+       };
+} );
+
+jQuery.fn.extend( {
+
+       on: function( types, selector, data, fn ) {
+               return on( this, types, selector, data, fn );
+       },
+       one: function( types, selector, data, fn ) {
+               return on( this, types, selector, data, fn, 1 );
+       },
+       off: function( types, selector, fn ) {
+               var handleObj, type;
+               if ( types && types.preventDefault && types.handleObj ) {
+
+                       // ( event )  dispatched jQuery.Event
+                       handleObj = types.handleObj;
+                       jQuery( types.delegateTarget ).off(
+                               handleObj.namespace ?
+                                       handleObj.origType + "." + handleObj.namespace :
+                                       handleObj.origType,
+                               handleObj.selector,
+                               handleObj.handler
+                       );
+                       return this;
+               }
+               if ( typeof types === "object" ) {
+
+                       // ( types-object [, selector] )
+                       for ( type in types ) {
+                               this.off( type, selector, types[ type ] );
+                       }
+                       return this;
+               }
+               if ( selector === false || typeof selector === "function" ) {
+
+                       // ( types [, fn] )
+                       fn = selector;
+                       selector = undefined;
+               }
+               if ( fn === false ) {
+                       fn = returnFalse;
+               }
+               return this.each( function() {
+                       jQuery.event.remove( this, types, fn, selector );
+               } );
+       }
+} );
+
+
+var
+
+       /* eslint-disable max-len */
+
+       // See https://github.com/eslint/eslint/issues/3229
+       rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,
+
+       /* eslint-enable */
+
+       // Support: IE <=10 - 11, Edge 12 - 13
+       // In IE/Edge using regex groups here causes severe slowdowns.
+       // See https://connect.microsoft.com/IE/feedback/details/1736512/
+       rnoInnerhtml = /<script|<style|<link/i,
+
+       // checked="checked" or checked
+       rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i,
+       rscriptTypeMasked = /^true\/(.*)/,
+       rcleanScript = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;
+
+// Prefer a tbody over its parent table for containing new rows
+function manipulationTarget( elem, content ) {
+       if ( nodeName( elem, "table" ) &&
+               nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ) {
+
+               return jQuery( ">tbody", elem )[ 0 ] || elem;
+       }
+
+       return elem;
+}
+
+// Replace/restore the type attribute of script elements for safe DOM manipulation
+function disableScript( elem ) {
+       elem.type = ( elem.getAttribute( "type" ) !== null ) + "/" + elem.type;
+       return elem;
+}
+function restoreScript( elem ) {
+       var match = rscriptTypeMasked.exec( elem.type );
+
+       if ( match ) {
+               elem.type = match[ 1 ];
+       } else {
+               elem.removeAttribute( "type" );
+       }
+
+       return elem;
+}
+
+function cloneCopyEvent( src, dest ) {
+       var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events;
+
+       if ( dest.nodeType !== 1 ) {
+               return;
+       }
+
+       // 1. Copy private data: events, handlers, etc.
+       if ( dataPriv.hasData( src ) ) {
+               pdataOld = dataPriv.access( src );
+               pdataCur = dataPriv.set( dest, pdataOld );
+               events = pdataOld.events;
+
+               if ( events ) {
+                       delete pdataCur.handle;
+                       pdataCur.events = {};
+
+                       for ( type in events ) {
+                               for ( i = 0, l = events[ type ].length; i < l; i++ ) {
+                                       jQuery.event.add( dest, type, events[ type ][ i ] );
+                               }
+                       }
+               }
+       }
+
+       // 2. Copy user data
+       if ( dataUser.hasData( src ) ) {
+               udataOld = dataUser.access( src );
+               udataCur = jQuery.extend( {}, udataOld );
+
+               dataUser.set( dest, udataCur );
+       }
+}
+
+// Fix IE bugs, see support tests
+function fixInput( src, dest ) {
+       var nodeName = dest.nodeName.toLowerCase();
+
+       // Fails to persist the checked state of a cloned checkbox or radio button.
+       if ( nodeName === "input" && rcheckableType.test( src.type ) ) {
+               dest.checked = src.checked;
+
+       // Fails to return the selected option to the default selected state when cloning options
+       } else if ( nodeName === "input" || nodeName === "textarea" ) {
+               dest.defaultValue = src.defaultValue;
+       }
+}
+
+function domManip( collection, args, callback, ignored ) {
+
+       // Flatten any nested arrays
+       args = concat.apply( [], args );
+
+       var fragment, first, scripts, hasScripts, node, doc,
+               i = 0,
+               l = collection.length,
+               iNoClone = l - 1,
+               value = args[ 0 ],
+               isFunction = jQuery.isFunction( value );
+
+       // We can't cloneNode fragments that contain checked, in WebKit
+       if ( isFunction ||
+                       ( l > 1 && typeof value === "string" &&
+                               !support.checkClone && rchecked.test( value ) ) ) {
+               return collection.each( function( index ) {
+                       var self = collection.eq( index );
+                       if ( isFunction ) {
+                               args[ 0 ] = value.call( this, index, self.html() );
+                       }
+                       domManip( self, args, callback, ignored );
+               } );
+       }
+
+       if ( l ) {
+               fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );
+               first = fragment.firstChild;
+
+               if ( fragment.childNodes.length === 1 ) {
+                       fragment = first;
+               }
+
+               // Require either new content or an interest in ignored elements to invoke the callback
+               if ( first || ignored ) {
+                       scripts = jQuery.map( getAll( fragment, "script" ), disableScript );
+                       hasScripts = scripts.length;
+
+                       // Use the original fragment for the last item
+                       // instead of the first because it can end up
+                       // being emptied incorrectly in certain situations (#8070).
+                       for ( ; i < l; i++ ) {
+                               node = fragment;
+
+                               if ( i !== iNoClone ) {
+                                       node = jQuery.clone( node, true, true );
+
+                                       // Keep references to cloned scripts for later restoration
+                                       if ( hasScripts ) {
+
+                                               // Support: Android <=4.0 only, PhantomJS 1 only
+                                               // push.apply(_, arraylike) throws on ancient WebKit
+                                               jQuery.merge( scripts, getAll( node, "script" ) );
+                                       }
+                               }
+
+                               callback.call( collection[ i ], node, i );
+                       }
+
+                       if ( hasScripts ) {
+                               doc = scripts[ scripts.length - 1 ].ownerDocument;
+
+                               // Reenable scripts
+                               jQuery.map( scripts, restoreScript );
+
+                               // Evaluate executable scripts on first document insertion
+                               for ( i = 0; i < hasScripts; i++ ) {
+                                       node = scripts[ i ];
+                                       if ( rscriptType.test( node.type || "" ) &&
+                                               !dataPriv.access( node, "globalEval" ) &&
+                                               jQuery.contains( doc, node ) ) {
+
+                                               if ( node.src ) {
+
+                                                       // Optional AJAX dependency, but won't run scripts if not present
+                                                       if ( jQuery._evalUrl ) {
+                                                               jQuery._evalUrl( node.src );
+                                                       }
+                                               } else {
+                                                       DOMEval( node.textContent.replace( rcleanScript, "" ), doc );
+                                               }
+                                       }
+                               }
+                       }
+               }
+       }
+
+       return collection;
+}
+
+function remove( elem, selector, keepData ) {
+       var node,
+               nodes = selector ? jQuery.filter( selector, elem ) : elem,
+               i = 0;
+
+       for ( ; ( node = nodes[ i ] ) != null; i++ ) {
+               if ( !keepData && node.nodeType === 1 ) {
+                       jQuery.cleanData( getAll( node ) );
+               }
+
+               if ( node.parentNode ) {
+                       if ( keepData && jQuery.contains( node.ownerDocument, node ) ) {
+                               setGlobalEval( getAll( node, "script" ) );
+                       }
+                       node.parentNode.removeChild( node );
+               }
+       }
+
+       return elem;
+}
+
+jQuery.extend( {
+       htmlPrefilter: function( html ) {
+               return html.replace( rxhtmlTag, "<$1></$2>" );
+       },
+
+       clone: function( elem, dataAndEvents, deepDataAndEvents ) {
+               var i, l, srcElements, destElements,
+                       clone = elem.cloneNode( true ),
+                       inPage = jQuery.contains( elem.ownerDocument, elem );
+
+               // Fix IE cloning issues
+               if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&
+                               !jQuery.isXMLDoc( elem ) ) {
+
+                       // We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2
+                       destElements = getAll( clone );
+                       srcElements = getAll( elem );
+
+                       for ( i = 0, l = srcElements.length; i < l; i++ ) {
+                               fixInput( srcElements[ i ], destElements[ i ] );
+                       }
+               }
+
+               // Copy the events from the original to the clone
+               if ( dataAndEvents ) {
+                       if ( deepDataAndEvents ) {
+                               srcElements = srcElements || getAll( elem );
+                               destElements = destElements || getAll( clone );
+
+                               for ( i = 0, l = srcElements.length; i < l; i++ ) {
+                                       cloneCopyEvent( srcElements[ i ], destElements[ i ] );
+                               }
+                       } else {
+                               cloneCopyEvent( elem, clone );
+                       }
+               }
+
+               // Preserve script evaluation history
+               destElements = getAll( clone, "script" );
+               if ( destElements.length > 0 ) {
+                       setGlobalEval( destElements, !inPage && getAll( elem, "script" ) );
+               }
+
+               // Return the cloned set
+               return clone;
+       },
+
+       cleanData: function( elems ) {
+               var data, elem, type,
+                       special = jQuery.event.special,
+                       i = 0;
+
+               for ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {
+                       if ( acceptData( elem ) ) {
+                               if ( ( data = elem[ dataPriv.expando ] ) ) {
+                                       if ( data.events ) {
+                                               for ( type in data.events ) {
+                                                       if ( special[ type ] ) {
+                                                               jQuery.event.remove( elem, type );
+
+                                                       // This is a shortcut to avoid jQuery.event.remove's overhead
+                                                       } else {
+                                                               jQuery.removeEvent( elem, type, data.handle );
+                                                       }
+                                               }
+                                       }
+
+                                       // Support: Chrome <=35 - 45+
+                                       // Assign undefined instead of using delete, see Data#remove
+                                       elem[ dataPriv.expando ] = undefined;
+                               }
+                               if ( elem[ dataUser.expando ] ) {
+
+                                       // Support: Chrome <=35 - 45+
+                                       // Assign undefined instead of using delete, see Data#remove
+                                       elem[ dataUser.expando ] = undefined;
+                               }
+                       }
+               }
+       }
+} );
+
+jQuery.fn.extend( {
+       detach: function( selector ) {
+               return remove( this, selector, true );
+       },
+
+       remove: function( selector ) {
+               return remove( this, selector );
+       },
+
+       text: function( value ) {
+               return access( this, function( value ) {
+                       return value === undefined ?
+                               jQuery.text( this ) :
+                               this.empty().each( function() {
+                                       if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
+                                               this.textContent = value;
+                                       }
+                               } );
+               }, null, value, arguments.length );
+       },
+
+       append: function() {
+               return domManip( this, arguments, function( elem ) {
+                       if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
+                               var target = manipulationTarget( this, elem );
+                               target.appendChild( elem );
+                       }
+               } );
+       },
+
+       prepend: function() {
+               return domManip( this, arguments, function( elem ) {
+                       if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
+                               var target = manipulationTarget( this, elem );
+                               target.insertBefore( elem, target.firstChild );
+                       }
+               } );
+       },
+
+       before: function() {
+               return domManip( this, arguments, function( elem ) {
+                       if ( this.parentNode ) {
+                               this.parentNode.insertBefore( elem, this );
+                       }
+               } );
+       },
+
+       after: function() {
+               return domManip( this, arguments, function( elem ) {
+                       if ( this.parentNode ) {
+                               this.parentNode.insertBefore( elem, this.nextSibling );
+                       }
+               } );
+       },
+
+       empty: function() {
+               var elem,
+                       i = 0;
+
+               for ( ; ( elem = this[ i ] ) != null; i++ ) {
+                       if ( elem.nodeType === 1 ) {
+
+                               // Prevent memory leaks
+                               jQuery.cleanData( getAll( elem, false ) );
+
+                               // Remove any remaining nodes
+                               elem.textContent = "";
+                       }
+               }
+
+               return this;
+       },
+
+       clone: function( dataAndEvents, deepDataAndEvents ) {
+               dataAndEvents = dataAndEvents == null ? false : dataAndEvents;
+               deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;
+
+               return this.map( function() {
+                       return jQuery.clone( this, dataAndEvents, deepDataAndEvents );
+               } );
+       },
+
+       html: function( value ) {
+               return access( this, function( value ) {
+                       var elem = this[ 0 ] || {},
+                               i = 0,
+                               l = this.length;
+
+                       if ( value === undefined && elem.nodeType === 1 ) {
+                               return elem.innerHTML;
+                       }
+
+                       // See if we can take a shortcut and just use innerHTML
+                       if ( typeof value === "string" && !rnoInnerhtml.test( value ) &&
+                               !wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) {
+
+                               value = jQuery.htmlPrefilter( value );
+
+                               try {
+                                       for ( ; i < l; i++ ) {
+                                               elem = this[ i ] || {};
+
+                                               // Remove element nodes and prevent memory leaks
+                                               if ( elem.nodeType === 1 ) {
+                                                       jQuery.cleanData( getAll( elem, false ) );
+                                                       elem.innerHTML = value;
+                                               }
+                                       }
+
+                                       elem = 0;
+
+                               // If using innerHTML throws an exception, use the fallback method
+                               } catch ( e ) {}
+                       }
+
+                       if ( elem ) {
+                               this.empty().append( value );
+                       }
+               }, null, value, arguments.length );
+       },
+
+       replaceWith: function() {
+               var ignored = [];
+
+               // Make the changes, replacing each non-ignored context element with the new content
+               return domManip( this, arguments, function( elem ) {
+                       var parent = this.parentNode;
+
+                       if ( jQuery.inArray( this, ignored ) < 0 ) {
+                               jQuery.cleanData( getAll( this ) );
+                               if ( parent ) {
+                                       parent.replaceChild( elem, this );
+                               }
+                       }
+
+               // Force callback invocation
+               }, ignored );
+       }
+} );
+
+jQuery.each( {
+       appendTo: "append",
+       prependTo: "prepend",
+       insertBefore: "before",
+       insertAfter: "after",
+       replaceAll: "replaceWith"
+}, function( name, original ) {
+       jQuery.fn[ name ] = function( selector ) {
+               var elems,
+                       ret = [],
+                       insert = jQuery( selector ),
+                       last = insert.length - 1,
+                       i = 0;
+
+               for ( ; i <= last; i++ ) {
+                       elems = i === last ? this : this.clone( true );
+                       jQuery( insert[ i ] )[ original ]( elems );
+
+                       // Support: Android <=4.0 only, PhantomJS 1 only
+                       // .get() because push.apply(_, arraylike) throws on ancient WebKit
+                       push.apply( ret, elems.get() );
+               }
+
+               return this.pushStack( ret );
+       };
+} );
+var rmargin = ( /^margin/ );
+
+var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" );
+
+var getStyles = function( elem ) {
+
+               // Support: IE <=11 only, Firefox <=30 (#15098, #14150)
+               // IE throws on elements created in popups
+               // FF meanwhile throws on frame elements through "defaultView.getComputedStyle"
+               var view = elem.ownerDocument.defaultView;
+
+               if ( !view || !view.opener ) {
+                       view = window;
+               }
+
+               return view.getComputedStyle( elem );
+       };
+
+
+
+( function() {
+
+       // Executing both pixelPosition & boxSizingReliable tests require only one layout
+       // so they're executed at the same time to save the second computation.
+       function computeStyleTests() {
+
+               // This is a singleton, we need to execute it only once
+               if ( !div ) {
+                       return;
+               }
+
+               div.style.cssText =
+                       "box-sizing:border-box;" +
+                       "position:relative;display:block;" +
+                       "margin:auto;border:1px;padding:1px;" +
+                       "top:1%;width:50%";
+               div.innerHTML = "";
+               documentElement.appendChild( container );
+
+               var divStyle = window.getComputedStyle( div );
+               pixelPositionVal = divStyle.top !== "1%";
+
+               // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44
+               reliableMarginLeftVal = divStyle.marginLeft === "2px";
+               boxSizingReliableVal = divStyle.width === "4px";
+
+               // Support: Android 4.0 - 4.3 only
+               // Some styles come back with percentage values, even though they shouldn't
+               div.style.marginRight = "50%";
+               pixelMarginRightVal = divStyle.marginRight === "4px";
+
+               documentElement.removeChild( container );
+
+               // Nullify the div so it wouldn't be stored in the memory and
+               // it will also be a sign that checks already performed
+               div = null;
+       }
+
+       var pixelPositionVal, boxSizingReliableVal, pixelMarginRightVal, reliableMarginLeftVal,
+               container = document.createElement( "div" ),
+               div = document.createElement( "div" );
+
+       // Finish early in limited (non-browser) environments
+       if ( !div.style ) {
+               return;
+       }
+
+       // Support: IE <=9 - 11 only
+       // Style of cloned element affects source element cloned (#8908)
+       div.style.backgroundClip = "content-box";
+       div.cloneNode( true ).style.backgroundClip = "";
+       support.clearCloneStyle = div.style.backgroundClip === "content-box";
+
+       container.style.cssText = "border:0;width:8px;height:0;top:0;left:-9999px;" +
+               "padding:0;margin-top:1px;position:absolute";
+       container.appendChild( div );
+
+       jQuery.extend( support, {
+               pixelPosition: function() {
+                       computeStyleTests();
+                       return pixelPositionVal;
+               },
+               boxSizingReliable: function() {
+                       computeStyleTests();
+                       return boxSizingReliableVal;
+               },
+               pixelMarginRight: function() {
+                       computeStyleTests();
+                       return pixelMarginRightVal;
+               },
+               reliableMarginLeft: function() {
+                       computeStyleTests();
+                       return reliableMarginLeftVal;
+               }
+       } );
+} )();
+
+
+function curCSS( elem, name, computed ) {
+       var width, minWidth, maxWidth, ret,
+
+               // Support: Firefox 51+
+               // Retrieving style before computed somehow
+               // fixes an issue with getting wrong values
+               // on detached elements
+               style = elem.style;
+
+       computed = computed || getStyles( elem );
+
+       // getPropertyValue is needed for:
+       //   .css('filter') (IE 9 only, #12537)
+       //   .css('--customProperty) (#3144)
+       if ( computed ) {
+               ret = computed.getPropertyValue( name ) || computed[ name ];
+
+               if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) {
+                       ret = jQuery.style( elem, name );
+               }
+
+               // A tribute to the "awesome hack by Dean Edwards"
+               // Android Browser returns percentage for some values,
+               // but width seems to be reliably pixels.
+               // This is against the CSSOM draft spec:
+               // https://drafts.csswg.org/cssom/#resolved-values
+               if ( !support.pixelMarginRight() && rnumnonpx.test( ret ) && rmargin.test( name ) ) {
+
+                       // Remember the original values
+                       width = style.width;
+                       minWidth = style.minWidth;
+                       maxWidth = style.maxWidth;
+
+                       // Put in the new values to get a computed value out
+                       style.minWidth = style.maxWidth = style.width = ret;
+                       ret = computed.width;
+
+                       // Revert the changed values
+                       style.width = width;
+                       style.minWidth = minWidth;
+                       style.maxWidth = maxWidth;
+               }
+       }
+
+       return ret !== undefined ?
+
+               // Support: IE <=9 - 11 only
+               // IE returns zIndex value as an integer.
+               ret + "" :
+               ret;
+}
+
+
+function addGetHookIf( conditionFn, hookFn ) {
+
+       // Define the hook, we'll check on the first run if it's really needed.
+       return {
+               get: function() {
+                       if ( conditionFn() ) {
+
+                               // Hook not needed (or it's not possible to use it due
+                               // to missing dependency), remove it.
+                               delete this.get;
+                               return;
+                       }
+
+                       // Hook needed; redefine it so that the support test is not executed again.
+                       return ( this.get = hookFn ).apply( this, arguments );
+               }
+       };
+}
+
+
+var
+
+       // Swappable if display is none or starts with table
+       // except "table", "table-cell", or "table-caption"
+       // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display
+       rdisplayswap = /^(none|table(?!-c[ea]).+)/,
+       rcustomProp = /^--/,
+       cssShow = { position: "absolute", visibility: "hidden", display: "block" },
+       cssNormalTransform = {
+               letterSpacing: "0",
+               fontWeight: "400"
+       },
+
+       cssPrefixes = [ "Webkit", "Moz", "ms" ],
+       emptyStyle = document.createElement( "div" ).style;
+
+// Return a css property mapped to a potentially vendor prefixed property
+function vendorPropName( name ) {
+
+       // Shortcut for names that are not vendor prefixed
+       if ( name in emptyStyle ) {
+               return name;
+       }
+
+       // Check for vendor prefixed names
+       var capName = name[ 0 ].toUpperCase() + name.slice( 1 ),
+               i = cssPrefixes.length;
+
+       while ( i-- ) {
+               name = cssPrefixes[ i ] + capName;
+               if ( name in emptyStyle ) {
+                       return name;
+               }
+       }
+}
+
+// Return a property mapped along what jQuery.cssProps suggests or to
+// a vendor prefixed property.
+function finalPropName( name ) {
+       var ret = jQuery.cssProps[ name ];
+       if ( !ret ) {
+               ret = jQuery.cssProps[ name ] = vendorPropName( name ) || name;
+       }
+       return ret;
+}
+
+function setPositiveNumber( elem, value, subtract ) {
+
+       // Any relative (+/-) values have already been
+       // normalized at this point
+       var matches = rcssNum.exec( value );
+       return matches ?
+
+               // Guard against undefined "subtract", e.g., when used as in cssHooks
+               Math.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || "px" ) :
+               value;
+}
+
+function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) {
+       var i,
+               val = 0;
+
+       // If we already have the right measurement, avoid augmentation
+       if ( extra === ( isBorderBox ? "border" : "content" ) ) {
+               i = 4;
+
+       // Otherwise initialize for horizontal or vertical properties
+       } else {
+               i = name === "width" ? 1 : 0;
+       }
+
+       for ( ; i < 4; i += 2 ) {
+
+               // Both box models exclude margin, so add it if we want it
+               if ( extra === "margin" ) {
+                       val += jQuery.css( elem, extra + cssExpand[ i ], true, styles );
+               }
+
+               if ( isBorderBox ) {
+
+                       // border-box includes padding, so remove it if we want content
+                       if ( extra === "content" ) {
+                               val -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
+                       }
+
+                       // At this point, extra isn't border nor margin, so remove border
+                       if ( extra !== "margin" ) {
+                               val -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
+                       }
+               } else {
+
+                       // At this point, extra isn't content, so add padding
+                       val += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
+
+                       // At this point, extra isn't content nor padding, so add border
+                       if ( extra !== "padding" ) {
+                               val += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
+                       }
+               }
+       }
+
+       return val;
+}
+
+function getWidthOrHeight( elem, name, extra ) {
+
+       // Start with computed style
+       var valueIsBorderBox,
+               styles = getStyles( elem ),
+               val = curCSS( elem, name, styles ),
+               isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box";
+
+       // Computed unit is not pixels. Stop here and return.
+       if ( rnumnonpx.test( val ) ) {
+               return val;
+       }
+
+       // Check for style in case a browser which returns unreliable values
+       // for getComputedStyle silently falls back to the reliable elem.style
+       valueIsBorderBox = isBorderBox &&
+               ( support.boxSizingReliable() || val === elem.style[ name ] );
+
+       // Fall back to offsetWidth/Height when value is "auto"
+       // This happens for inline elements with no explicit setting (gh-3571)
+       if ( val === "auto" ) {
+               val = elem[ "offset" + name[ 0 ].toUpperCase() + name.slice( 1 ) ];
+       }
+
+       // Normalize "", auto, and prepare for extra
+       val = parseFloat( val ) || 0;
+
+       // Use the active box-sizing model to add/subtract irrelevant styles
+       return ( val +
+               augmentWidthOrHeight(
+                       elem,
+                       name,
+                       extra || ( isBorderBox ? "border" : "content" ),
+                       valueIsBorderBox,
+                       styles
+               )
+       ) + "px";
+}
+
+jQuery.extend( {
+
+       // Add in style property hooks for overriding the default
+       // behavior of getting and setting a style property
+       cssHooks: {
+               opacity: {
+                       get: function( elem, computed ) {
+                               if ( computed ) {
+
+                                       // We should always get a number back from opacity
+                                       var ret = curCSS( elem, "opacity" );
+                                       return ret === "" ? "1" : ret;
+                               }
+                       }
+               }
+       },
+
+       // Don't automatically add "px" to these possibly-unitless properties
+       cssNumber: {
+               "animationIterationCount": true,
+               "columnCount": true,
+               "fillOpacity": true,
+               "flexGrow": true,
+               "flexShrink": true,
+               "fontWeight": true,
+               "lineHeight": true,
+               "opacity": true,
+               "order": true,
+               "orphans": true,
+               "widows": true,
+               "zIndex": true,
+               "zoom": true
+       },
+
+       // Add in properties whose names you wish to fix before
+       // setting or getting the value
+       cssProps: {
+               "float": "cssFloat"
+       },
+
+       // Get and set the style property on a DOM Node
+       style: function( elem, name, value, extra ) {
+
+               // Don't set styles on text and comment nodes
+               if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {
+                       return;
+               }
+
+               // Make sure that we're working with the right name
+               var ret, type, hooks,
+                       origName = jQuery.camelCase( name ),
+                       isCustomProp = rcustomProp.test( name ),
+                       style = elem.style;
+
+               // Make sure that we're working with the right name. We don't
+               // want to query the value if it is a CSS custom property
+               // since they are user-defined.
+               if ( !isCustomProp ) {
+                       name = finalPropName( origName );
+               }
+
+               // Gets hook for the prefixed version, then unprefixed version
+               hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
+
+               // Check if we're setting a value
+               if ( value !== undefined ) {
+                       type = typeof value;
+
+                       // Convert "+=" or "-=" to relative numbers (#7345)
+                       if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {
+                               value = adjustCSS( elem, name, ret );
+
+                               // Fixes bug #9237
+                               type = "number";
+                       }
+
+                       // Make sure that null and NaN values aren't set (#7116)
+                       if ( value == null || value !== value ) {
+                               return;
+                       }
+
+                       // If a number was passed in, add the unit (except for certain CSS properties)
+                       if ( type === "number" ) {
+                               value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" );
+                       }
+
+                       // background-* props affect original clone's values
+                       if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) {
+                               style[ name ] = "inherit";
+                       }
+
+                       // If a hook was provided, use that value, otherwise just set the specified value
+                       if ( !hooks || !( "set" in hooks ) ||
+                               ( value = hooks.set( elem, value, extra ) ) !== undefined ) {
+
+                               if ( isCustomProp ) {
+                                       style.setProperty( name, value );
+                               } else {
+                                       style[ name ] = value;
+                               }
+                       }
+
+               } else {
+
+                       // If a hook was provided get the non-computed value from there
+                       if ( hooks && "get" in hooks &&
+                               ( ret = hooks.get( elem, false, extra ) ) !== undefined ) {
+
+                               return ret;
+                       }
+
+                       // Otherwise just get the value from the style object
+                       return style[ name ];
+               }
+       },
+
+       css: function( elem, name, extra, styles ) {
+               var val, num, hooks,
+                       origName = jQuery.camelCase( name ),
+                       isCustomProp = rcustomProp.test( name );
+
+               // Make sure that we're working with the right name. We don't
+               // want to modify the value if it is a CSS custom property
+               // since they are user-defined.
+               if ( !isCustomProp ) {
+                       name = finalPropName( origName );
+               }
+
+               // Try prefixed name followed by the unprefixed name
+               hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
+
+               // If a hook was provided get the computed value from there
+               if ( hooks && "get" in hooks ) {
+                       val = hooks.get( elem, true, extra );
+               }
+
+               // Otherwise, if a way to get the computed value exists, use that
+               if ( val === undefined ) {
+                       val = curCSS( elem, name, styles );
+               }
+
+               // Convert "normal" to computed value
+               if ( val === "normal" && name in cssNormalTransform ) {
+                       val = cssNormalTransform[ name ];
+               }
+
+               // Make numeric if forced or a qualifier was provided and val looks numeric
+               if ( extra === "" || extra ) {
+                       num = parseFloat( val );
+                       return extra === true || isFinite( num ) ? num || 0 : val;
+               }
+
+               return val;
+       }
+} );
+
+jQuery.each( [ "height", "width" ], function( i, name ) {
+       jQuery.cssHooks[ name ] = {
+               get: function( elem, computed, extra ) {
+                       if ( computed ) {
+
+                               // Certain elements can have dimension info if we invisibly show them
+                               // but it must have a current display style that would benefit
+                               return rdisplayswap.test( jQuery.css( elem, "display" ) ) &&
+
+                                       // Support: Safari 8+
+                                       // Table columns in Safari have non-zero offsetWidth & zero
+                                       // getBoundingClientRect().width unless display is changed.
+                                       // Support: IE <=11 only
+                                       // Running getBoundingClientRect on a disconnected node
+                                       // in IE throws an error.
+                                       ( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?
+                                               swap( elem, cssShow, function() {
+                                                       return getWidthOrHeight( elem, name, extra );
+                                               } ) :
+                                               getWidthOrHeight( elem, name, extra );
+                       }
+               },
+
+               set: function( elem, value, extra ) {
+                       var matches,
+                               styles = extra && getStyles( elem ),
+                               subtract = extra && augmentWidthOrHeight(
+                                       elem,
+                                       name,
+                                       extra,
+                                       jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
+                                       styles
+                               );
+
+                       // Convert to pixels if value adjustment is needed
+                       if ( subtract && ( matches = rcssNum.exec( value ) ) &&
+                               ( matches[ 3 ] || "px" ) !== "px" ) {
+
+                               elem.style[ name ] = value;
+                               value = jQuery.css( elem, name );
+                       }
+
+                       return setPositiveNumber( elem, value, subtract );
+               }
+       };
+} );
+
+jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,
+       function( elem, computed ) {
+               if ( computed ) {
+                       return ( parseFloat( curCSS( elem, "marginLeft" ) ) ||
+                               elem.getBoundingClientRect().left -
+                                       swap( elem, { marginLeft: 0 }, function() {
+                                               return elem.getBoundingClientRect().left;
+                                       } )
+                               ) + "px";
+               }
+       }
+);
+
+// These hooks are used by animate to expand properties
+jQuery.each( {
+       margin: "",
+       padding: "",
+       border: "Width"
+}, function( prefix, suffix ) {
+       jQuery.cssHooks[ prefix + suffix ] = {
+               expand: function( value ) {
+                       var i = 0,
+                               expanded = {},
+
+                               // Assumes a single number if not a string
+                               parts = typeof value === "string" ? value.split( " " ) : [ value ];
+
+                       for ( ; i < 4; i++ ) {
+                               expanded[ prefix + cssExpand[ i ] + suffix ] =
+                                       parts[ i ] || parts[ i - 2 ] || parts[ 0 ];
+                       }
+
+                       return expanded;
+               }
+       };
+
+       if ( !rmargin.test( prefix ) ) {
+               jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;
+       }
+} );
+
+jQuery.fn.extend( {
+       css: function( name, value ) {
+               return access( this, function( elem, name, value ) {
+                       var styles, len,
+                               map = {},
+                               i = 0;
+
+                       if ( Array.isArray( name ) ) {
+                               styles = getStyles( elem );
+                               len = name.length;
+
+                               for ( ; i < len; i++ ) {
+                                       map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );
+                               }
+
+                               return map;
+                       }
+
+                       return value !== undefined ?
+                               jQuery.style( elem, name, value ) :
+                               jQuery.css( elem, name );
+               }, name, value, arguments.length > 1 );
+       }
+} );
+
+
+function Tween( elem, options, prop, end, easing ) {
+       return new Tween.prototype.init( elem, options, prop, end, easing );
+}
+jQuery.Tween = Tween;
+
+Tween.prototype = {
+       constructor: Tween,
+       init: function( elem, options, prop, end, easing, unit ) {
+               this.elem = elem;
+               this.prop = prop;
+               this.easing = easing || jQuery.easing._default;
+               this.options = options;
+               this.start = this.now = this.cur();
+               this.end = end;
+               this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" );
+       },
+       cur: function() {
+               var hooks = Tween.propHooks[ this.prop ];
+
+               return hooks && hooks.get ?
+                       hooks.get( this ) :
+                       Tween.propHooks._default.get( this );
+       },
+       run: function( percent ) {
+               var eased,
+                       hooks = Tween.propHooks[ this.prop ];
+
+               if ( this.options.duration ) {
+                       this.pos = eased = jQuery.easing[ this.easing ](
+                               percent, this.options.duration * percent, 0, 1, this.options.duration
+                       );
+               } else {
+                       this.pos = eased = percent;
+               }
+               this.now = ( this.end - this.start ) * eased + this.start;
+
+               if ( this.options.step ) {
+                       this.options.step.call( this.elem, this.now, this );
+               }
+
+               if ( hooks && hooks.set ) {
+                       hooks.set( this );
+               } else {
+                       Tween.propHooks._default.set( this );
+               }
+               return this;
+       }
+};
+
+Tween.prototype.init.prototype = Tween.prototype;
+
+Tween.propHooks = {
+       _default: {
+               get: function( tween ) {
+                       var result;
+
+                       // Use a property on the element directly when it is not a DOM element,
+                       // or when there is no matching style property that exists.
+                       if ( tween.elem.nodeType !== 1 ||
+                               tween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {
+                               return tween.elem[ tween.prop ];
+                       }
+
+                       // Passing an empty string as a 3rd parameter to .css will automatically
+                       // attempt a parseFloat and fallback to a string if the parse fails.
+                       // Simple values such as "10px" are parsed to Float;
+                       // complex values such as "rotate(1rad)" are returned as-is.
+                       result = jQuery.css( tween.elem, tween.prop, "" );
+
+                       // Empty strings, null, undefined and "auto" are converted to 0.
+                       return !result || result === "auto" ? 0 : result;
+               },
+               set: function( tween ) {
+
+                       // Use step hook for back compat.
+                       // Use cssHook if its there.
+                       // Use .style if available and use plain properties where available.
+                       if ( jQuery.fx.step[ tween.prop ] ) {
+                               jQuery.fx.step[ tween.prop ]( tween );
+                       } else if ( tween.elem.nodeType === 1 &&
+                               ( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null ||
+                                       jQuery.cssHooks[ tween.prop ] ) ) {
+                               jQuery.style( tween.elem, tween.prop, tween.now + tween.unit );
+                       } else {
+                               tween.elem[ tween.prop ] = tween.now;
+                       }
+               }
+       }
+};
+
+// Support: IE <=9 only
+// Panic based approach to setting things on disconnected nodes
+Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {
+       set: function( tween ) {
+               if ( tween.elem.nodeType && tween.elem.parentNode ) {
+                       tween.elem[ tween.prop ] = tween.now;
+               }
+       }
+};
+
+jQuery.easing = {
+       linear: function( p ) {
+               return p;
+       },
+       swing: function( p ) {
+               return 0.5 - Math.cos( p * Math.PI ) / 2;
+       },
+       _default: "swing"
+};
+
+jQuery.fx = Tween.prototype.init;
+
+// Back compat <1.8 extension point
+jQuery.fx.step = {};
+
+
+
+
+var
+       fxNow, inProgress,
+       rfxtypes = /^(?:toggle|show|hide)$/,
+       rrun = /queueHooks$/;
+
+function schedule() {
+       if ( inProgress ) {
+               if ( document.hidden === false && window.requestAnimationFrame ) {
+                       window.requestAnimationFrame( schedule );
+               } else {
+                       window.setTimeout( schedule, jQuery.fx.interval );
+               }
+
+               jQuery.fx.tick();
+       }
+}
+
+// Animations created synchronously will run synchronously
+function createFxNow() {
+       window.setTimeout( function() {
+               fxNow = undefined;
+       } );
+       return ( fxNow = jQuery.now() );
+}
+
+// Generate parameters to create a standard animation
+function genFx( type, includeWidth ) {
+       var which,
+               i = 0,
+               attrs = { height: type };
+
+       // If we include width, step value is 1 to do all cssExpand values,
+       // otherwise step value is 2 to skip over Left and Right
+       includeWidth = includeWidth ? 1 : 0;
+       for ( ; i < 4; i += 2 - includeWidth ) {
+               which = cssExpand[ i ];
+               attrs[ "margin" + which ] = attrs[ "padding" + which ] = type;
+       }
+
+       if ( includeWidth ) {
+               attrs.opacity = attrs.width = type;
+       }
+
+       return attrs;
+}
+
+function createTween( value, prop, animation ) {
+       var tween,
+               collection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ "*" ] ),
+               index = 0,
+               length = collection.length;
+       for ( ; index < length; index++ ) {
+               if ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {
+
+                       // We're done with this property
+                       return tween;
+               }
+       }
+}
+
+function defaultPrefilter( elem, props, opts ) {
+       var prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display,
+               isBox = "width" in props || "height" in props,
+               anim = this,
+               orig = {},
+               style = elem.style,
+               hidden = elem.nodeType && isHiddenWithinTree( elem ),
+               dataShow = dataPriv.get( elem, "fxshow" );
+
+       // Queue-skipping animations hijack the fx hooks
+       if ( !opts.queue ) {
+               hooks = jQuery._queueHooks( elem, "fx" );
+               if ( hooks.unqueued == null ) {
+                       hooks.unqueued = 0;
+                       oldfire = hooks.empty.fire;
+                       hooks.empty.fire = function() {
+                               if ( !hooks.unqueued ) {
+                                       oldfire();
+                               }
+                       };
+               }
+               hooks.unqueued++;
+
+               anim.always( function() {
+
+                       // Ensure the complete handler is called before this completes
+                       anim.always( function() {
+                               hooks.unqueued--;
+                               if ( !jQuery.queue( elem, "fx" ).length ) {
+                                       hooks.empty.fire();
+                               }
+                       } );
+               } );
+       }
+
+       // Detect show/hide animations
+       for ( prop in props ) {
+               value = props[ prop ];
+               if ( rfxtypes.test( value ) ) {
+                       delete props[ prop ];
+                       toggle = toggle || value === "toggle";
+                       if ( value === ( hidden ? "hide" : "show" ) ) {
+
+                               // Pretend to be hidden if this is a "show" and
+                               // there is still data from a stopped show/hide
+                               if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) {
+                                       hidden = true;
+
+                               // Ignore all other no-op show/hide data
+                               } else {
+                                       continue;
+                               }
+                       }
+                       orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );
+               }
+       }
+
+       // Bail out if this is a no-op like .hide().hide()
+       propTween = !jQuery.isEmptyObject( props );
+       if ( !propTween && jQuery.isEmptyObject( orig ) ) {
+               return;
+       }
+
+       // Restrict "overflow" and "display" styles during box animations
+       if ( isBox && elem.nodeType === 1 ) {
+
+               // Support: IE <=9 - 11, Edge 12 - 13
+               // Record all 3 overflow attributes because IE does not infer the shorthand
+               // from identically-valued overflowX and overflowY
+               opts.overflow = [ style.overflow, style.overflowX, style.overflowY ];
+
+               // Identify a display type, preferring old show/hide data over the CSS cascade
+               restoreDisplay = dataShow && dataShow.display;
+               if ( restoreDisplay == null ) {
+                       restoreDisplay = dataPriv.get( elem, "display" );
+               }
+               display = jQuery.css( elem, "display" );
+               if ( display === "none" ) {
+                       if ( restoreDisplay ) {
+                               display = restoreDisplay;
+                       } else {
+
+                               // Get nonempty value(s) by temporarily forcing visibility
+                               showHide( [ elem ], true );
+                               restoreDisplay = elem.style.display || restoreDisplay;
+                               display = jQuery.css( elem, "display" );
+                               showHide( [ elem ] );
+                       }
+               }
+
+               // Animate inline elements as inline-block
+               if ( display === "inline" || display === "inline-block" && restoreDisplay != null ) {
+                       if ( jQuery.css( elem, "float" ) === "none" ) {
+
+                               // Restore the original display value at the end of pure show/hide animations
+                               if ( !propTween ) {
+                                       anim.done( function() {
+                                               style.display = restoreDisplay;
+                                       } );
+                                       if ( restoreDisplay == null ) {
+                                               display = style.display;
+                                               restoreDisplay = display === "none" ? "" : display;
+                                       }
+                               }
+                               style.display = "inline-block";
+                       }
+               }
+       }
+
+       if ( opts.overflow ) {
+               style.overflow = "hidden";
+               anim.always( function() {
+                       style.overflow = opts.overflow[ 0 ];
+                       style.overflowX = opts.overflow[ 1 ];
+                       style.overflowY = opts.overflow[ 2 ];
+               } );
+       }
+
+       // Implement show/hide animations
+       propTween = false;
+       for ( prop in orig ) {
+
+               // General show/hide setup for this element animation
+               if ( !propTween ) {
+                       if ( dataShow ) {
+                               if ( "hidden" in dataShow ) {
+                                       hidden = dataShow.hidden;
+                               }
+                       } else {
+                               dataShow = dataPriv.access( elem, "fxshow", { display: restoreDisplay } );
+                       }
+
+                       // Store hidden/visible for toggle so `.stop().toggle()` "reverses"
+                       if ( toggle ) {
+                               dataShow.hidden = !hidden;
+                       }
+
+                       // Show elements before animating them
+                       if ( hidden ) {
+                               showHide( [ elem ], true );
+                       }
+
+                       /* eslint-disable no-loop-func */
+
+                       anim.done( function() {
+
+                       /* eslint-enable no-loop-func */
+
+                               // The final step of a "hide" animation is actually hiding the element
+                               if ( !hidden ) {
+                                       showHide( [ elem ] );
+                               }
+                               dataPriv.remove( elem, "fxshow" );
+                               for ( prop in orig ) {
+                                       jQuery.style( elem, prop, orig[ prop ] );
+                               }
+                       } );
+               }
+
+               // Per-property setup
+               propTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );
+               if ( !( prop in dataShow ) ) {
+                       dataShow[ prop ] = propTween.start;
+                       if ( hidden ) {
+                               propTween.end = propTween.start;
+                               propTween.start = 0;
+                       }
+               }
+       }
+}
+
+function propFilter( props, specialEasing ) {
+       var index, name, easing, value, hooks;
+
+       // camelCase, specialEasing and expand cssHook pass
+       for ( index in props ) {
+               name = jQuery.camelCase( index );
+               easing = specialEasing[ name ];
+               value = props[ index ];
+               if ( Array.isArray( value ) ) {
+                       easing = value[ 1 ];
+                       value = props[ index ] = value[ 0 ];
+               }
+
+               if ( index !== name ) {
+                       props[ name ] = value;
+                       delete props[ index ];
+               }
+
+               hooks = jQuery.cssHooks[ name ];
+               if ( hooks && "expand" in hooks ) {
+                       value = hooks.expand( value );
+                       delete props[ name ];
+
+                       // Not quite $.extend, this won't overwrite existing keys.
+                       // Reusing 'index' because we have the correct "name"
+                       for ( index in value ) {
+                               if ( !( index in props ) ) {
+                                       props[ index ] = value[ index ];
+                                       specialEasing[ index ] = easing;
+                               }
+                       }
+               } else {
+                       specialEasing[ name ] = easing;
+               }
+       }
+}
+
+function Animation( elem, properties, options ) {
+       var result,
+               stopped,
+               index = 0,
+               length = Animation.prefilters.length,
+               deferred = jQuery.Deferred().always( function() {
+
+                       // Don't match elem in the :animated selector
+                       delete tick.elem;
+               } ),
+               tick = function() {
+                       if ( stopped ) {
+                               return false;
+                       }
+                       var currentTime = fxNow || createFxNow(),
+                               remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),
+
+                               // Support: Android 2.3 only
+                               // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)
+                               temp = remaining / animation.duration || 0,
+                               percent = 1 - temp,
+                               index = 0,
+                               length = animation.tweens.length;
+
+                       for ( ; index < length; index++ ) {
+                               animation.tweens[ index ].run( percent );
+                       }
+
+                       deferred.notifyWith( elem, [ animation, percent, remaining ] );
+
+                       // If there's more to do, yield
+                       if ( percent < 1 && length ) {
+                               return remaining;
+                       }
+
+                       // If this was an empty animation, synthesize a final progress notification
+                       if ( !length ) {
+                               deferred.notifyWith( elem, [ animation, 1, 0 ] );
+                       }
+
+                       // Resolve the animation and report its conclusion
+                       deferred.resolveWith( elem, [ animation ] );
+                       return false;
+               },
+               animation = deferred.promise( {
+                       elem: elem,
+                       props: jQuery.extend( {}, properties ),
+                       opts: jQuery.extend( true, {
+                               specialEasing: {},
+                               easing: jQuery.easing._default
+                       }, options ),
+                       originalProperties: properties,
+                       originalOptions: options,
+                       startTime: fxNow || createFxNow(),
+                       duration: options.duration,
+                       tweens: [],
+                       createTween: function( prop, end ) {
+                               var tween = jQuery.Tween( elem, animation.opts, prop, end,
+                                               animation.opts.specialEasing[ prop ] || animation.opts.easing );
+                               animation.tweens.push( tween );
+                               return tween;
+                       },
+                       stop: function( gotoEnd ) {
+                               var index = 0,
+
+                                       // If we are going to the end, we want to run all the tweens
+                                       // otherwise we skip this part
+                                       length = gotoEnd ? animation.tweens.length : 0;
+                               if ( stopped ) {
+                                       return this;
+                               }
+                               stopped = true;
+                               for ( ; index < length; index++ ) {
+                                       animation.tweens[ index ].run( 1 );
+                               }
+
+                               // Resolve when we played the last frame; otherwise, reject
+                               if ( gotoEnd ) {
+                                       deferred.notifyWith( elem, [ animation, 1, 0 ] );
+                                       deferred.resolveWith( elem, [ animation, gotoEnd ] );
+                               } else {
+                                       deferred.rejectWith( elem, [ animation, gotoEnd ] );
+                               }
+                               return this;
+                       }
+               } ),
+               props = animation.props;
+
+       propFilter( props, animation.opts.specialEasing );
+
+       for ( ; index < length; index++ ) {
+               result = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );
+               if ( result ) {
+                       if ( jQuery.isFunction( result.stop ) ) {
+                               jQuery._queueHooks( animation.elem, animation.opts.queue ).stop =
+                                       jQuery.proxy( result.stop, result );
+                       }
+                       return result;
+               }
+       }
+
+       jQuery.map( props, createTween, animation );
+
+       if ( jQuery.isFunction( animation.opts.start ) ) {
+               animation.opts.start.call( elem, animation );
+       }
+
+       // Attach callbacks from options
+       animation
+               .progress( animation.opts.progress )
+               .done( animation.opts.done, animation.opts.complete )
+               .fail( animation.opts.fail )
+               .always( animation.opts.always );
+
+       jQuery.fx.timer(
+               jQuery.extend( tick, {
+                       elem: elem,
+                       anim: animation,
+                       queue: animation.opts.queue
+               } )
+       );
+
+       return animation;
+}
+
+jQuery.Animation = jQuery.extend( Animation, {
+
+       tweeners: {
+               "*": [ function( prop, value ) {
+                       var tween = this.createTween( prop, value );
+                       adjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );
+                       return tween;
+               } ]
+       },
+
+       tweener: function( props, callback ) {
+               if ( jQuery.isFunction( props ) ) {
+                       callback = props;
+                       props = [ "*" ];
+               } else {
+                       props = props.match( rnothtmlwhite );
+               }
+
+               var prop,
+                       index = 0,
+                       length = props.length;
+
+               for ( ; index < length; index++ ) {
+                       prop = props[ index ];
+                       Animation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];
+                       Animation.tweeners[ prop ].unshift( callback );
+               }
+       },
+
+       prefilters: [ defaultPrefilter ],
+
+       prefilter: function( callback, prepend ) {
+               if ( prepend ) {
+                       Animation.prefilters.unshift( callback );
+               } else {
+                       Animation.prefilters.push( callback );
+               }
+       }
+} );
+
+jQuery.speed = function( speed, easing, fn ) {
+       var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : {
+               complete: fn || !fn && easing ||
+                       jQuery.isFunction( speed ) && speed,
+               duration: speed,
+               easing: fn && easing || easing && !jQuery.isFunction( easing ) && easing
+       };
+
+       // Go to the end state if fx are off
+       if ( jQuery.fx.off ) {
+               opt.duration = 0;
+
+       } else {
+               if ( typeof opt.duration !== "number" ) {
+                       if ( opt.duration in jQuery.fx.speeds ) {
+                               opt.duration = jQuery.fx.speeds[ opt.duration ];
+
+                       } else {
+                               opt.duration = jQuery.fx.speeds._default;
+                       }
+               }
+       }
+
+       // Normalize opt.queue - true/undefined/null -> "fx"
+       if ( opt.queue == null || opt.queue === true ) {
+               opt.queue = "fx";
+       }
+
+       // Queueing
+       opt.old = opt.complete;
+
+       opt.complete = function() {
+               if ( jQuery.isFunction( opt.old ) ) {
+                       opt.old.call( this );
+               }
+
+               if ( opt.queue ) {
+                       jQuery.dequeue( this, opt.queue );
+               }
+       };
+
+       return opt;
+};
+
+jQuery.fn.extend( {
+       fadeTo: function( speed, to, easing, callback ) {
+
+               // Show any hidden elements after setting opacity to 0
+               return this.filter( isHiddenWithinTree ).css( "opacity", 0 ).show()
+
+                       // Animate to the value specified
+                       .end().animate( { opacity: to }, speed, easing, callback );
+       },
+       animate: function( prop, speed, easing, callback ) {
+               var empty = jQuery.isEmptyObject( prop ),
+                       optall = jQuery.speed( speed, easing, callback ),
+                       doAnimation = function() {
+
+                               // Operate on a copy of prop so per-property easing won't be lost
+                               var anim = Animation( this, jQuery.extend( {}, prop ), optall );
+
+                               // Empty animations, or finishing resolves immediately
+                               if ( empty || dataPriv.get( this, "finish" ) ) {
+                                       anim.stop( true );
+                               }
+                       };
+                       doAnimation.finish = doAnimation;
+
+               return empty || optall.queue === false ?
+                       this.each( doAnimation ) :
+                       this.queue( optall.queue, doAnimation );
+       },
+       stop: function( type, clearQueue, gotoEnd ) {
+               var stopQueue = function( hooks ) {
+                       var stop = hooks.stop;
+                       delete hooks.stop;
+                       stop( gotoEnd );
+               };
+
+               if ( typeof type !== "string" ) {
+                       gotoEnd = clearQueue;
+                       clearQueue = type;
+                       type = undefined;
+               }
+               if ( clearQueue && type !== false ) {
+                       this.queue( type || "fx", [] );
+               }
+
+               return this.each( function() {
+                       var dequeue = true,
+                               index = type != null && type + "queueHooks",
+                               timers = jQuery.timers,
+                               data = dataPriv.get( this );
+
+                       if ( index ) {
+                               if ( data[ index ] && data[ index ].stop ) {
+                                       stopQueue( data[ index ] );
+                               }
+                       } else {
+                               for ( index in data ) {
+                                       if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {
+                                               stopQueue( data[ index ] );
+                                       }
+                               }
+                       }
+
+                       for ( index = timers.length; index--; ) {
+                               if ( timers[ index ].elem === this &&
+                                       ( type == null || timers[ index ].queue === type ) ) {
+
+                                       timers[ index ].anim.stop( gotoEnd );
+                                       dequeue = false;
+                                       timers.splice( index, 1 );
+                               }
+                       }
+
+                       // Start the next in the queue if the last step wasn't forced.
+                       // Timers currently will call their complete callbacks, which
+                       // will dequeue but only if they were gotoEnd.
+                       if ( dequeue || !gotoEnd ) {
+                               jQuery.dequeue( this, type );
+                       }
+               } );
+       },
+       finish: function( type ) {
+               if ( type !== false ) {
+                       type = type || "fx";
+               }
+               return this.each( function() {
+                       var index,
+                               data = dataPriv.get( this ),
+                               queue = data[ type + "queue" ],
+                               hooks = data[ type + "queueHooks" ],
+                               timers = jQuery.timers,
+                               length = queue ? queue.length : 0;
+
+                       // Enable finishing flag on private data
+                       data.finish = true;
+
+                       // Empty the queue first
+                       jQuery.queue( this, type, [] );
+
+                       if ( hooks && hooks.stop ) {
+                               hooks.stop.call( this, true );
+                       }
+
+                       // Look for any active animations, and finish them
+                       for ( index = timers.length; index--; ) {
+                               if ( timers[ index ].elem === this && timers[ index ].queue === type ) {
+                                       timers[ index ].anim.stop( true );
+                                       timers.splice( index, 1 );
+                               }
+                       }
+
+                       // Look for any animations in the old queue and finish them
+                       for ( index = 0; index < length; index++ ) {
+                               if ( queue[ index ] && queue[ index ].finish ) {
+                                       queue[ index ].finish.call( this );
+                               }
+                       }
+
+                       // Turn off finishing flag
+                       delete data.finish;
+               } );
+       }
+} );
+
+jQuery.each( [ "toggle", "show", "hide" ], function( i, name ) {
+       var cssFn = jQuery.fn[ name ];
+       jQuery.fn[ name ] = function( speed, easing, callback ) {
+               return speed == null || typeof speed === "boolean" ?
+                       cssFn.apply( this, arguments ) :
+                       this.animate( genFx( name, true ), speed, easing, callback );
+       };
+} );
+
+// Generate shortcuts for custom animations
+jQuery.each( {
+       slideDown: genFx( "show" ),
+       slideUp: genFx( "hide" ),
+       slideToggle: genFx( "toggle" ),
+       fadeIn: { opacity: "show" },
+       fadeOut: { opacity: "hide" },
+       fadeToggle: { opacity: "toggle" }
+}, function( name, props ) {
+       jQuery.fn[ name ] = function( speed, easing, callback ) {
+               return this.animate( props, speed, easing, callback );
+       };
+} );
+
+jQuery.timers = [];
+jQuery.fx.tick = function() {
+       var timer,
+               i = 0,
+               timers = jQuery.timers;
+
+       fxNow = jQuery.now();
+
+       for ( ; i < timers.length; i++ ) {
+               timer = timers[ i ];
+
+               // Run the timer and safely remove it when done (allowing for external removal)
+               if ( !timer() && timers[ i ] === timer ) {
+                       timers.splice( i--, 1 );
+               }
+       }
+
+       if ( !timers.length ) {
+               jQuery.fx.stop();
+       }
+       fxNow = undefined;
+};
+
+jQuery.fx.timer = function( timer ) {
+       jQuery.timers.push( timer );
+       jQuery.fx.start();
+};
+
+jQuery.fx.interval = 13;
+jQuery.fx.start = function() {
+       if ( inProgress ) {
+               return;
+       }
+
+       inProgress = true;
+       schedule();
+};
+
+jQuery.fx.stop = function() {
+       inProgress = null;
+};
+
+jQuery.fx.speeds = {
+       slow: 600,
+       fast: 200,
+
+       // Default speed
+       _default: 400
+};
+
+
+// Based off of the plugin by Clint Helfers, with permission.
+// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/
+jQuery.fn.delay = function( time, type ) {
+       time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;
+       type = type || "fx";
+
+       return this.queue( type, function( next, hooks ) {
+               var timeout = window.setTimeout( next, time );
+               hooks.stop = function() {
+                       window.clearTimeout( timeout );
+               };
+       } );
+};
+
+
+( function() {
+       var input = document.createElement( "input" ),
+               select = document.createElement( "select" ),
+               opt = select.appendChild( document.createElement( "option" ) );
+
+       input.type = "checkbox";
+
+       // Support: Android <=4.3 only
+       // Default value for a checkbox should be "on"
+       support.checkOn = input.value !== "";
+
+       // Support: IE <=11 only
+       // Must access selectedIndex to make default options select
+       support.optSelected = opt.selected;
+
+       // Support: IE <=11 only
+       // An input loses its value after becoming a radio
+       input = document.createElement( "input" );
+       input.value = "t";
+       input.type = "radio";
+       support.radioValue = input.value === "t";
+} )();
+
+
+var boolHook,
+       attrHandle = jQuery.expr.attrHandle;
+
+jQuery.fn.extend( {
+       attr: function( name, value ) {
+               return access( this, jQuery.attr, name, value, arguments.length > 1 );
+       },
+
+       removeAttr: function( name ) {
+               return this.each( function() {
+                       jQuery.removeAttr( this, name );
+               } );
+       }
+} );
+
+jQuery.extend( {
+       attr: function( elem, name, value ) {
+               var ret, hooks,
+                       nType = elem.nodeType;
+
+               // Don't get/set attributes on text, comment and attribute nodes
+               if ( nType === 3 || nType === 8 || nType === 2 ) {
+                       return;
+               }
+
+               // Fallback to prop when attributes are not supported
+               if ( typeof elem.getAttribute === "undefined" ) {
+                       return jQuery.prop( elem, name, value );
+               }
+
+               // Attribute hooks are determined by the lowercase version
+               // Grab necessary hook if one is defined
+               if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {
+                       hooks = jQuery.attrHooks[ name.toLowerCase() ] ||
+                               ( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );
+               }
+
+               if ( value !== undefined ) {
+                       if ( value === null ) {
+                               jQuery.removeAttr( elem, name );
+                               return;
+                       }
+
+                       if ( hooks && "set" in hooks &&
+                               ( ret = hooks.set( elem, value, name ) ) !== undefined ) {
+                               return ret;
+                       }
+
+                       elem.setAttribute( name, value + "" );
+                       return value;
+               }
+
+               if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {
+                       return ret;
+               }
+
+               ret = jQuery.find.attr( elem, name );
+
+               // Non-existent attributes return null, we normalize to undefined
+               return ret == null ? undefined : ret;
+       },
+
+       attrHooks: {
+               type: {
+                       set: function( elem, value ) {
+                               if ( !support.radioValue && value === "radio" &&
+                                       nodeName( elem, "input" ) ) {
+                                       var val = elem.value;
+                                       elem.setAttribute( "type", value );
+                                       if ( val ) {
+                                               elem.value = val;
+                                       }
+                                       return value;
+                               }
+                       }
+               }
+       },
+
+       removeAttr: function( elem, value ) {
+               var name,
+                       i = 0,
+
+                       // Attribute names can contain non-HTML whitespace characters
+                       // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2
+                       attrNames = value && value.match( rnothtmlwhite );
+
+               if ( attrNames && elem.nodeType === 1 ) {
+                       while ( ( name = attrNames[ i++ ] ) ) {
+                               elem.removeAttribute( name );
+                       }
+               }
+       }
+} );
+
+// Hooks for boolean attributes
+boolHook = {
+       set: function( elem, value, name ) {
+               if ( value === false ) {
+
+                       // Remove boolean attributes when set to false
+                       jQuery.removeAttr( elem, name );
+               } else {
+                       elem.setAttribute( name, name );
+               }
+               return name;
+       }
+};
+
+jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) {
+       var getter = attrHandle[ name ] || jQuery.find.attr;
+
+       attrHandle[ name ] = function( elem, name, isXML ) {
+               var ret, handle,
+                       lowercaseName = name.toLowerCase();
+
+               if ( !isXML ) {
+
+                       // Avoid an infinite loop by temporarily removing this function from the getter
+                       handle = attrHandle[ lowercaseName ];
+                       attrHandle[ lowercaseName ] = ret;
+                       ret = getter( elem, name, isXML ) != null ?
+                               lowercaseName :
+                               null;
+                       attrHandle[ lowercaseName ] = handle;
+               }
+               return ret;
+       };
+} );
+
+
+
+
+var rfocusable = /^(?:input|select|textarea|button)$/i,
+       rclickable = /^(?:a|area)$/i;
+
+jQuery.fn.extend( {
+       prop: function( name, value ) {
+               return access( this, jQuery.prop, name, value, arguments.length > 1 );
+       },
+
+       removeProp: function( name ) {
+               return this.each( function() {
+                       delete this[ jQuery.propFix[ name ] || name ];
+               } );
+       }
+} );
+
+jQuery.extend( {
+       prop: function( elem, name, value ) {
+               var ret, hooks,
+                       nType = elem.nodeType;
+
+               // Don't get/set properties on text, comment and attribute nodes
+               if ( nType === 3 || nType === 8 || nType === 2 ) {
+                       return;
+               }
+
+               if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {
+
+                       // Fix name and attach hooks
+                       name = jQuery.propFix[ name ] || name;
+                       hooks = jQuery.propHooks[ name ];
+               }
+
+               if ( value !== undefined ) {
+                       if ( hooks && "set" in hooks &&
+                               ( ret = hooks.set( elem, value, name ) ) !== undefined ) {
+                               return ret;
+                       }
+
+                       return ( elem[ name ] = value );
+               }
+
+               if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {
+                       return ret;
+               }
+
+               return elem[ name ];
+       },
+
+       propHooks: {
+               tabIndex: {
+                       get: function( elem ) {
+
+                               // Support: IE <=9 - 11 only
+                               // elem.tabIndex doesn't always return the
+                               // correct value when it hasn't been explicitly set
+                               // https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/
+                               // Use proper attribute retrieval(#12072)
+                               var tabindex = jQuery.find.attr( elem, "tabindex" );
+
+                               if ( tabindex ) {
+                                       return parseInt( tabindex, 10 );
+                               }
+
+                               if (
+                                       rfocusable.test( elem.nodeName ) ||
+                                       rclickable.test( elem.nodeName ) &&
+                                       elem.href
+                               ) {
+                                       return 0;
+                               }
+
+                               return -1;
+                       }
+               }
+       },
+
+       propFix: {
+               "for": "htmlFor",
+               "class": "className"
+       }
+} );
+
+// Support: IE <=11 only
+// Accessing the selectedIndex property
+// forces the browser to respect setting selected
+// on the option
+// The getter ensures a default option is selected
+// when in an optgroup
+// eslint rule "no-unused-expressions" is disabled for this code
+// since it considers such accessions noop
+if ( !support.optSelected ) {
+       jQuery.propHooks.selected = {
+               get: function( elem ) {
+
+                       /* eslint no-unused-expressions: "off" */
+
+                       var parent = elem.parentNode;
+                       if ( parent && parent.parentNode ) {
+                               parent.parentNode.selectedIndex;
+                       }
+                       return null;
+               },
+               set: function( elem ) {
+
+                       /* eslint no-unused-expressions: "off" */
+
+                       var parent = elem.parentNode;
+                       if ( parent ) {
+                               parent.selectedIndex;
+
+                               if ( parent.parentNode ) {
+                                       parent.parentNode.selectedIndex;
+                               }
+                       }
+               }
+       };
+}
+
+jQuery.each( [
+       "tabIndex",
+       "readOnly",
+       "maxLength",
+       "cellSpacing",
+       "cellPadding",
+       "rowSpan",
+       "colSpan",
+       "useMap",
+       "frameBorder",
+       "contentEditable"
+], function() {
+       jQuery.propFix[ this.toLowerCase() ] = this;
+} );
+
+
+
+
+       // Strip and collapse whitespace according to HTML spec
+       // https://html.spec.whatwg.org/multipage/infrastructure.html#strip-and-collapse-whitespace
+       function stripAndCollapse( value ) {
+               var tokens = value.match( rnothtmlwhite ) || [];
+               return tokens.join( " " );
+       }
+
+
+function getClass( elem ) {
+       return elem.getAttribute && elem.getAttribute( "class" ) || "";
+}
+
+jQuery.fn.extend( {
+       addClass: function( value ) {
+               var classes, elem, cur, curValue, clazz, j, finalValue,
+                       i = 0;
+
+               if ( jQuery.isFunction( value ) ) {
+                       return this.each( function( j ) {
+                               jQuery( this ).addClass( value.call( this, j, getClass( this ) ) );
+                       } );
+               }
+
+               if ( typeof value === "string" && value ) {
+                       classes = value.match( rnothtmlwhite ) || [];
+
+                       while ( ( elem = this[ i++ ] ) ) {
+                               curValue = getClass( elem );
+                               cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " );
+
+                               if ( cur ) {
+                                       j = 0;
+                                       while ( ( clazz = classes[ j++ ] ) ) {
+                                               if ( cur.indexOf( " " + clazz + " " ) < 0 ) {
+                                                       cur += clazz + " ";
+                                               }
+                                       }
+
+                                       // Only assign if different to avoid unneeded rendering.
+                                       finalValue = stripAndCollapse( cur );
+                                       if ( curValue !== finalValue ) {
+                                               elem.setAttribute( "class", finalValue );
+                                       }
+                               }
+                       }
+               }
+
+               return this;
+       },
+
+       removeClass: function( value ) {
+               var classes, elem, cur, curValue, clazz, j, finalValue,
+                       i = 0;
+
+               if ( jQuery.isFunction( value ) ) {
+                       return this.each( function( j ) {
+                               jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );
+                       } );
+               }
+
+               if ( !arguments.length ) {
+                       return this.attr( "class", "" );
+               }
+
+               if ( typeof value === "string" && value ) {
+                       classes = value.match( rnothtmlwhite ) || [];
+
+                       while ( ( elem = this[ i++ ] ) ) {
+                               curValue = getClass( elem );
+
+                               // This expression is here for better compressibility (see addClass)
+                               cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " );
+
+                               if ( cur ) {
+                                       j = 0;
+                                       while ( ( clazz = classes[ j++ ] ) ) {
+
+                                               // Remove *all* instances
+                                               while ( cur.indexOf( " " + clazz + " " ) > -1 ) {
+                                                       cur = cur.replace( " " + clazz + " ", " " );
+                                               }
+                                       }
+
+                                       // Only assign if different to avoid unneeded rendering.
+                                       finalValue = stripAndCollapse( cur );
+                                       if ( curValue !== finalValue ) {
+                                               elem.setAttribute( "class", finalValue );
+                                       }
+                               }
+                       }
+               }
+
+               return this;
+       },
+
+       toggleClass: function( value, stateVal ) {
+               var type = typeof value;
+
+               if ( typeof stateVal === "boolean" && type === "string" ) {
+                       return stateVal ? this.addClass( value ) : this.removeClass( value );
+               }
+
+               if ( jQuery.isFunction( value ) ) {
+                       return this.each( function( i ) {
+                               jQuery( this ).toggleClass(
+                                       value.call( this, i, getClass( this ), stateVal ),
+                                       stateVal
+                               );
+                       } );
+               }
+
+               return this.each( function() {
+                       var className, i, self, classNames;
+
+                       if ( type === "string" ) {
+
+                               // Toggle individual class names
+                               i = 0;
+                               self = jQuery( this );
+                               classNames = value.match( rnothtmlwhite ) || [];
+
+                               while ( ( className = classNames[ i++ ] ) ) {
+
+                                       // Check each className given, space separated list
+                                       if ( self.hasClass( className ) ) {
+                                               self.removeClass( className );
+                                       } else {
+                                               self.addClass( className );
+                                       }
+                               }
+
+                       // Toggle whole class name
+                       } else if ( value === undefined || type === "boolean" ) {
+                               className = getClass( this );
+                               if ( className ) {
+
+                                       // Store className if set
+                                       dataPriv.set( this, "__className__", className );
+                               }
+
+                               // If the element has a class name or if we're passed `false`,
+                               // then remove the whole classname (if there was one, the above saved it).
+                               // Otherwise bring back whatever was previously saved (if anything),
+                               // falling back to the empty string if nothing was stored.
+                               if ( this.setAttribute ) {
+                                       this.setAttribute( "class",
+                                               className || value === false ?
+                                               "" :
+                                               dataPriv.get( this, "__className__" ) || ""
+                                       );
+                               }
+                       }
+               } );
+       },
+
+       hasClass: function( selector ) {
+               var className, elem,
+                       i = 0;
+
+               className = " " + selector + " ";
+               while ( ( elem = this[ i++ ] ) ) {
+                       if ( elem.nodeType === 1 &&
+                               ( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) {
+                                       return true;
+                       }
+               }
+
+               return false;
+       }
+} );
+
+
+
+
+var rreturn = /\r/g;
+
+jQuery.fn.extend( {
+       val: function( value ) {
+               var hooks, ret, isFunction,
+                       elem = this[ 0 ];
+
+               if ( !arguments.length ) {
+                       if ( elem ) {
+                               hooks = jQuery.valHooks[ elem.type ] ||
+                                       jQuery.valHooks[ elem.nodeName.toLowerCase() ];
+
+                               if ( hooks &&
+                                       "get" in hooks &&
+                                       ( ret = hooks.get( elem, "value" ) ) !== undefined
+                               ) {
+                                       return ret;
+                               }
+
+                               ret = elem.value;
+
+                               // Handle most common string cases
+                               if ( typeof ret === "string" ) {
+                                       return ret.replace( rreturn, "" );
+                               }
+
+                               // Handle cases where value is null/undef or number
+                               return ret == null ? "" : ret;
+                       }
+
+                       return;
+               }
+
+               isFunction = jQuery.isFunction( value );
+
+               return this.each( function( i ) {
+                       var val;
+
+                       if ( this.nodeType !== 1 ) {
+                               return;
+                       }
+
+                       if ( isFunction ) {
+                               val = value.call( this, i, jQuery( this ).val() );
+                       } else {
+                               val = value;
+                       }
+
+                       // Treat null/undefined as ""; convert numbers to string
+                       if ( val == null ) {
+                               val = "";
+
+                       } else if ( typeof val === "number" ) {
+                               val += "";
+
+                       } else if ( Array.isArray( val ) ) {
+                               val = jQuery.map( val, function( value ) {
+                                       return value == null ? "" : value + "";
+                               } );
+                       }
+
+                       hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];
+
+                       // If set returns undefined, fall back to normal setting
+                       if ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) {
+                               this.value = val;
+                       }
+               } );
+       }
+} );
+
+jQuery.extend( {
+       valHooks: {
+               option: {
+                       get: function( elem ) {
+
+                               var val = jQuery.find.attr( elem, "value" );
+                               return val != null ?
+                                       val :
+
+                                       // Support: IE <=10 - 11 only
+                                       // option.text throws exceptions (#14686, #14858)
+                                       // Strip and collapse whitespace
+                                       // https://html.spec.whatwg.org/#strip-and-collapse-whitespace
+                                       stripAndCollapse( jQuery.text( elem ) );
+                       }
+               },
+               select: {
+                       get: function( elem ) {
+                               var value, option, i,
+                                       options = elem.options,
+                                       index = elem.selectedIndex,
+                                       one = elem.type === "select-one",
+                                       values = one ? null : [],
+                                       max = one ? index + 1 : options.length;
+
+                               if ( index < 0 ) {
+                                       i = max;
+
+                               } else {
+                                       i = one ? index : 0;
+                               }
+
+                               // Loop through all the selected options
+                               for ( ; i < max; i++ ) {
+                                       option = options[ i ];
+
+                                       // Support: IE <=9 only
+                                       // IE8-9 doesn't update selected after form reset (#2551)
+                                       if ( ( option.selected || i === index ) &&
+
+                                                       // Don't return options that are disabled or in a disabled optgroup
+                                                       !option.disabled &&
+                                                       ( !option.parentNode.disabled ||
+                                                               !nodeName( option.parentNode, "optgroup" ) ) ) {
+
+                                               // Get the specific value for the option
+                                               value = jQuery( option ).val();
+
+                                               // We don't need an array for one selects
+                                               if ( one ) {
+                                                       return value;
+                                               }
+
+                                               // Multi-Selects return an array
+                                               values.push( value );
+                                       }
+                               }
+
+                               return values;
+                       },
+
+                       set: function( elem, value ) {
+                               var optionSet, option,
+                                       options = elem.options,
+                                       values = jQuery.makeArray( value ),
+                                       i = options.length;
+
+                               while ( i-- ) {
+                                       option = options[ i ];
+
+                                       /* eslint-disable no-cond-assign */
+
+                                       if ( option.selected =
+                                               jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1
+                                       ) {
+                                               optionSet = true;
+                                       }
+
+                                       /* eslint-enable no-cond-assign */
+                               }
+
+                               // Force browsers to behave consistently when non-matching value is set
+                               if ( !optionSet ) {
+                                       elem.selectedIndex = -1;
+                               }
+                               return values;
+                       }
+               }
+       }
+} );
+
+// Radios and checkboxes getter/setter
+jQuery.each( [ "radio", "checkbox" ], function() {
+       jQuery.valHooks[ this ] = {
+               set: function( elem, value ) {
+                       if ( Array.isArray( value ) ) {
+                               return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );
+                       }
+               }
+       };
+       if ( !support.checkOn ) {
+               jQuery.valHooks[ this ].get = function( elem ) {
+                       return elem.getAttribute( "value" ) === null ? "on" : elem.value;
+               };
+       }
+} );
+
+
+
+
+// Return jQuery for attributes-only inclusion
+
+
+var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/;
+
+jQuery.extend( jQuery.event, {
+
+       trigger: function( event, data, elem, onlyHandlers ) {
+
+               var i, cur, tmp, bubbleType, ontype, handle, special,
+                       eventPath = [ elem || document ],
+                       type = hasOwn.call( event, "type" ) ? event.type : event,
+                       namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : [];
+
+               cur = tmp = elem = elem || document;
+
+               // Don't do events on text and comment nodes
+               if ( elem.nodeType === 3 || elem.nodeType === 8 ) {
+                       return;
+               }
+
+               // focus/blur morphs to focusin/out; ensure we're not firing them right now
+               if ( rfocusMorph.test( type + jQuery.event.triggered ) ) {
+                       return;
+               }
+
+               if ( type.indexOf( "." ) > -1 ) {
+
+                       // Namespaced trigger; create a regexp to match event type in handle()
+                       namespaces = type.split( "." );
+                       type = namespaces.shift();
+                       namespaces.sort();
+               }
+               ontype = type.indexOf( ":" ) < 0 && "on" + type;
+
+               // Caller can pass in a jQuery.Event object, Object, or just an event type string
+               event = event[ jQuery.expando ] ?
+                       event :
+                       new jQuery.Event( type, typeof event === "object" && event );
+
+               // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)
+               event.isTrigger = onlyHandlers ? 2 : 3;
+               event.namespace = namespaces.join( "." );
+               event.rnamespace = event.namespace ?
+                       new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) :
+                       null;
+
+               // Clean up the event in case it is being reused
+               event.result = undefined;
+               if ( !event.target ) {
+                       event.target = elem;
+               }
+
+               // Clone any incoming data and prepend the event, creating the handler arg list
+               data = data == null ?
+                       [ event ] :
+                       jQuery.makeArray( data, [ event ] );
+
+               // Allow special events to draw outside the lines
+               special = jQuery.event.special[ type ] || {};
+               if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {
+                       return;
+               }
+
+               // Determine event propagation path in advance, per W3C events spec (#9951)
+               // Bubble up to document, then to window; watch for a global ownerDocument var (#9724)
+               if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) {
+
+                       bubbleType = special.delegateType || type;
+                       if ( !rfocusMorph.test( bubbleType + type ) ) {
+                               cur = cur.parentNode;
+                       }
+                       for ( ; cur; cur = cur.parentNode ) {
+                               eventPath.push( cur );
+                               tmp = cur;
+                       }
+
+                       // Only add window if we got to document (e.g., not plain obj or detached DOM)
+                       if ( tmp === ( elem.ownerDocument || document ) ) {
+                               eventPath.push( tmp.defaultView || tmp.parentWindow || window );
+                       }
+               }
+
+               // Fire handlers on the event path
+               i = 0;
+               while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {
+
+                       event.type = i > 1 ?
+                               bubbleType :
+                               special.bindType || type;
+
+                       // jQuery handler
+                       handle = ( dataPriv.get( cur, "events" ) || {} )[ event.type ] &&
+                               dataPriv.get( cur, "handle" );
+                       if ( handle ) {
+                               handle.apply( cur, data );
+                       }
+
+                       // Native handler
+                       handle = ontype && cur[ ontype ];
+                       if ( handle && handle.apply && acceptData( cur ) ) {
+                               event.result = handle.apply( cur, data );
+                               if ( event.result === false ) {
+                                       event.preventDefault();
+                               }
+                       }
+               }
+               event.type = type;
+
+               // If nobody prevented the default action, do it now
+               if ( !onlyHandlers && !event.isDefaultPrevented() ) {
+
+                       if ( ( !special._default ||
+                               special._default.apply( eventPath.pop(), data ) === false ) &&
+                               acceptData( elem ) ) {
+
+                               // Call a native DOM method on the target with the same name as the event.
+                               // Don't do default actions on window, that's where global variables be (#6170)
+                               if ( ontype && jQuery.isFunction( elem[ type ] ) && !jQuery.isWindow( elem ) ) {
+
+                                       // Don't re-trigger an onFOO event when we call its FOO() method
+                                       tmp = elem[ ontype ];
+
+                                       if ( tmp ) {
+                                               elem[ ontype ] = null;
+                                       }
+
+                                       // Prevent re-triggering of the same event, since we already bubbled it above
+                                       jQuery.event.triggered = type;
+                                       elem[ type ]();
+                                       jQuery.event.triggered = undefined;
+
+                                       if ( tmp ) {
+                                               elem[ ontype ] = tmp;
+                                       }
+                               }
+                       }
+               }
+
+               return event.result;
+       },
+
+       // Piggyback on a donor event to simulate a different one
+       // Used only for `focus(in | out)` events
+       simulate: function( type, elem, event ) {
+               var e = jQuery.extend(
+                       new jQuery.Event(),
+                       event,
+                       {
+                               type: type,
+                               isSimulated: true
+                       }
+               );
+
+               jQuery.event.trigger( e, null, elem );
+       }
+
+} );
+
+jQuery.fn.extend( {
+
+       trigger: function( type, data ) {
+               return this.each( function() {
+                       jQuery.event.trigger( type, data, this );
+               } );
+       },
+       triggerHandler: function( type, data ) {
+               var elem = this[ 0 ];
+               if ( elem ) {
+                       return jQuery.event.trigger( type, data, elem, true );
+               }
+       }
+} );
+
+
+jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " +
+       "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
+       "change select submit keydown keypress keyup contextmenu" ).split( " " ),
+       function( i, name ) {
+
+       // Handle event binding
+       jQuery.fn[ name ] = function( data, fn ) {
+               return arguments.length > 0 ?
+                       this.on( name, null, data, fn ) :
+                       this.trigger( name );
+       };
+} );
+
+jQuery.fn.extend( {
+       hover: function( fnOver, fnOut ) {
+               return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
+       }
+} );
+
+
+
+
+support.focusin = "onfocusin" in window;
+
+
+// Support: Firefox <=44
+// Firefox doesn't have focus(in | out) events
+// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787
+//
+// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1
+// focus(in | out) events fire after focus & blur events,
+// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order
+// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857
+if ( !support.focusin ) {
+       jQuery.each( { focus: "focusin", blur: "focusout" }, function( orig, fix ) {
+
+               // Attach a single capturing handler on the document while someone wants focusin/focusout
+               var handler = function( event ) {
+                       jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );
+               };
+
+               jQuery.event.special[ fix ] = {
+                       setup: function() {
+                               var doc = this.ownerDocument || this,
+                                       attaches = dataPriv.access( doc, fix );
+
+                               if ( !attaches ) {
+                                       doc.addEventListener( orig, handler, true );
+                               }
+                               dataPriv.access( doc, fix, ( attaches || 0 ) + 1 );
+                       },
+                       teardown: function() {
+                               var doc = this.ownerDocument || this,
+                                       attaches = dataPriv.access( doc, fix ) - 1;
+
+                               if ( !attaches ) {
+                                       doc.removeEventListener( orig, handler, true );
+                                       dataPriv.remove( doc, fix );
+
+                               } else {
+                                       dataPriv.access( doc, fix, attaches );
+                               }
+                       }
+               };
+       } );
+}
+var location = window.location;
+
+var nonce = jQuery.now();
+
+var rquery = ( /\?/ );
+
+
+
+// Cross-browser xml parsing
+jQuery.parseXML = function( data ) {
+       var xml;
+       if ( !data || typeof data !== "string" ) {
+               return null;
+       }
+
+       // Support: IE 9 - 11 only
+       // IE throws on parseFromString with invalid input.
+       try {
+               xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" );
+       } catch ( e ) {
+               xml = undefined;
+       }
+
+       if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) {
+               jQuery.error( "Invalid XML: " + data );
+       }
+       return xml;
+};
+
+
+var
+       rbracket = /\[\]$/,
+       rCRLF = /\r?\n/g,
+       rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,
+       rsubmittable = /^(?:input|select|textarea|keygen)/i;
+
+function buildParams( prefix, obj, traditional, add ) {
+       var name;
+
+       if ( Array.isArray( obj ) ) {
+
+               // Serialize array item.
+               jQuery.each( obj, function( i, v ) {
+                       if ( traditional || rbracket.test( prefix ) ) {
+
+                               // Treat each array item as a scalar.
+                               add( prefix, v );
+
+                       } else {
+
+                               // Item is non-scalar (array or object), encode its numeric index.
+                               buildParams(
+                                       prefix + "[" + ( typeof v === "object" && v != null ? i : "" ) + "]",
+                                       v,
+                                       traditional,
+                                       add
+                               );
+                       }
+               } );
+
+       } else if ( !traditional && jQuery.type( obj ) === "object" ) {
+
+               // Serialize object item.
+               for ( name in obj ) {
+                       buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add );
+               }
+
+       } else {
+
+               // Serialize scalar item.
+               add( prefix, obj );
+       }
+}
+
+// Serialize an array of form elements or a set of
+// key/values into a query string
+jQuery.param = function( a, traditional ) {
+       var prefix,
+               s = [],
+               add = function( key, valueOrFunction ) {
+
+                       // If value is a function, invoke it and use its return value
+                       var value = jQuery.isFunction( valueOrFunction ) ?
+                               valueOrFunction() :
+                               valueOrFunction;
+
+                       s[ s.length ] = encodeURIComponent( key ) + "=" +
+                               encodeURIComponent( value == null ? "" : value );
+               };
+
+       // If an array was passed in, assume that it is an array of form elements.
+       if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {
+
+               // Serialize the form elements
+               jQuery.each( a, function() {
+                       add( this.name, this.value );
+               } );
+
+       } else {
+
+               // If traditional, encode the "old" way (the way 1.3.2 or older
+               // did it), otherwise encode params recursively.
+               for ( prefix in a ) {
+                       buildParams( prefix, a[ prefix ], traditional, add );
+               }
+       }
+
+       // Return the resulting serialization
+       return s.join( "&" );
+};
+
+jQuery.fn.extend( {
+       serialize: function() {
+               return jQuery.param( this.serializeArray() );
+       },
+       serializeArray: function() {
+               return this.map( function() {
+
+                       // Can add propHook for "elements" to filter or add form elements
+                       var elements = jQuery.prop( this, "elements" );
+                       return elements ? jQuery.makeArray( elements ) : this;
+               } )
+               .filter( function() {
+                       var type = this.type;
+
+                       // Use .is( ":disabled" ) so that fieldset[disabled] works
+                       return this.name && !jQuery( this ).is( ":disabled" ) &&
+                               rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&
+                               ( this.checked || !rcheckableType.test( type ) );
+               } )
+               .map( function( i, elem ) {
+                       var val = jQuery( this ).val();
+
+                       if ( val == null ) {
+                               return null;
+                       }
+
+                       if ( Array.isArray( val ) ) {
+                               return jQuery.map( val, function( val ) {
+                                       return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
+                               } );
+                       }
+
+                       return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
+               } ).get();
+       }
+} );
+
+
+var
+       r20 = /%20/g,
+       rhash = /#.*$/,
+       rantiCache = /([?&])_=[^&]*/,
+       rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg,
+
+       // #7653, #8125, #8152: local protocol detection
+       rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,
+       rnoContent = /^(?:GET|HEAD)$/,
+       rprotocol = /^\/\//,
+
+       /* Prefilters
+        * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)
+        * 2) These are called:
+        *    - BEFORE asking for a transport
+        *    - AFTER param serialization (s.data is a string if s.processData is true)
+        * 3) key is the dataType
+        * 4) the catchall symbol "*" can be used
+        * 5) execution will start with transport dataType and THEN continue down to "*" if needed
+        */
+       prefilters = {},
+
+       /* Transports bindings
+        * 1) key is the dataType
+        * 2) the catchall symbol "*" can be used
+        * 3) selection will start with transport dataType and THEN go to "*" if needed
+        */
+       transports = {},
+
+       // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression
+       allTypes = "*/".concat( "*" ),
+
+       // Anchor tag for parsing the document origin
+       originAnchor = document.createElement( "a" );
+       originAnchor.href = location.href;
+
+// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport
+function addToPrefiltersOrTransports( structure ) {
+
+       // dataTypeExpression is optional and defaults to "*"
+       return function( dataTypeExpression, func ) {
+
+               if ( typeof dataTypeExpression !== "string" ) {
+                       func = dataTypeExpression;
+                       dataTypeExpression = "*";
+               }
+
+               var dataType,
+                       i = 0,
+                       dataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || [];
+
+               if ( jQuery.isFunction( func ) ) {
+
+                       // For each dataType in the dataTypeExpression
+                       while ( ( dataType = dataTypes[ i++ ] ) ) {
+
+                               // Prepend if requested
+                               if ( dataType[ 0 ] === "+" ) {
+                                       dataType = dataType.slice( 1 ) || "*";
+                                       ( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );
+
+                               // Otherwise append
+                               } else {
+                                       ( structure[ dataType ] = structure[ dataType ] || [] ).push( func );
+                               }
+                       }
+               }
+       };
+}
+
+// Base inspection function for prefilters and transports
+function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {
+
+       var inspected = {},
+               seekingTransport = ( structure === transports );
+
+       function inspect( dataType ) {
+               var selected;
+               inspected[ dataType ] = true;
+               jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {
+                       var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );
+                       if ( typeof dataTypeOrTransport === "string" &&
+                               !seekingTransport && !inspected[ dataTypeOrTransport ] ) {
+
+                               options.dataTypes.unshift( dataTypeOrTransport );
+                               inspect( dataTypeOrTransport );
+                               return false;
+                       } else if ( seekingTransport ) {
+                               return !( selected = dataTypeOrTransport );
+                       }
+               } );
+               return selected;
+       }
+
+       return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" );
+}
+
+// A special extend for ajax options
+// that takes "flat" options (not to be deep extended)
+// Fixes #9887
+function ajaxExtend( target, src ) {
+       var key, deep,
+               flatOptions = jQuery.ajaxSettings.flatOptions || {};
+
+       for ( key in src ) {
+               if ( src[ key ] !== undefined ) {
+                       ( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];
+               }
+       }
+       if ( deep ) {
+               jQuery.extend( true, target, deep );
+       }
+
+       return target;
+}
+
+/* Handles responses to an ajax request:
+ * - finds the right dataType (mediates between content-type and expected dataType)
+ * - returns the corresponding response
+ */
+function ajaxHandleResponses( s, jqXHR, responses ) {
+
+       var ct, type, finalDataType, firstDataType,
+               contents = s.contents,
+               dataTypes = s.dataTypes;
+
+       // Remove auto dataType and get content-type in the process
+       while ( dataTypes[ 0 ] === "*" ) {
+               dataTypes.shift();
+               if ( ct === undefined ) {
+                       ct = s.mimeType || jqXHR.getResponseHeader( "Content-Type" );
+               }
+       }
+
+       // Check if we're dealing with a known content-type
+       if ( ct ) {
+               for ( type in contents ) {
+                       if ( contents[ type ] && contents[ type ].test( ct ) ) {
+                               dataTypes.unshift( type );
+                               break;
+                       }
+               }
+       }
+
+       // Check to see if we have a response for the expected dataType
+       if ( dataTypes[ 0 ] in responses ) {
+               finalDataType = dataTypes[ 0 ];
+       } else {
+
+               // Try convertible dataTypes
+               for ( type in responses ) {
+                       if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[ 0 ] ] ) {
+                               finalDataType = type;
+                               break;
+                       }
+                       if ( !firstDataType ) {
+                               firstDataType = type;
+                       }
+               }
+
+               // Or just use first one
+               finalDataType = finalDataType || firstDataType;
+       }
+
+       // If we found a dataType
+       // We add the dataType to the list if needed
+       // and return the corresponding response
+       if ( finalDataType ) {
+               if ( finalDataType !== dataTypes[ 0 ] ) {
+                       dataTypes.unshift( finalDataType );
+               }
+               return responses[ finalDataType ];
+       }
+}
+
+/* Chain conversions given the request and the original response
+ * Also sets the responseXXX fields on the jqXHR instance
+ */
+function ajaxConvert( s, response, jqXHR, isSuccess ) {
+       var conv2, current, conv, tmp, prev,
+               converters = {},
+
+               // Work with a copy of dataTypes in case we need to modify it for conversion
+               dataTypes = s.dataTypes.slice();
+
+       // Create converters map with lowercased keys
+       if ( dataTypes[ 1 ] ) {
+               for ( conv in s.converters ) {
+                       converters[ conv.toLowerCase() ] = s.converters[ conv ];
+               }
+       }
+
+       current = dataTypes.shift();
+
+       // Convert to each sequential dataType
+       while ( current ) {
+
+               if ( s.responseFields[ current ] ) {
+                       jqXHR[ s.responseFields[ current ] ] = response;
+               }
+
+               // Apply the dataFilter if provided
+               if ( !prev && isSuccess && s.dataFilter ) {
+                       response = s.dataFilter( response, s.dataType );
+               }
+
+               prev = current;
+               current = dataTypes.shift();
+
+               if ( current ) {
+
+                       // There's only work to do if current dataType is non-auto
+                       if ( current === "*" ) {
+
+                               current = prev;
+
+                       // Convert response if prev dataType is non-auto and differs from current
+                       } else if ( prev !== "*" && prev !== current ) {
+
+                               // Seek a direct converter
+                               conv = converters[ prev + " " + current ] || converters[ "* " + current ];
+
+                               // If none found, seek a pair
+                               if ( !conv ) {
+                                       for ( conv2 in converters ) {
+
+                                               // If conv2 outputs current
+                                               tmp = conv2.split( " " );
+                                               if ( tmp[ 1 ] === current ) {
+
+                                                       // If prev can be converted to accepted input
+                                                       conv = converters[ prev + " " + tmp[ 0 ] ] ||
+                                                               converters[ "* " + tmp[ 0 ] ];
+                                                       if ( conv ) {
+
+                                                               // Condense equivalence converters
+                                                               if ( conv === true ) {
+                                                                       conv = converters[ conv2 ];
+
+                                                               // Otherwise, insert the intermediate dataType
+                                                               } else if ( converters[ conv2 ] !== true ) {
+                                                                       current = tmp[ 0 ];
+                                                                       dataTypes.unshift( tmp[ 1 ] );
+                                                               }
+                                                               break;
+                                                       }
+                                               }
+                                       }
+                               }
+
+                               // Apply converter (if not an equivalence)
+                               if ( conv !== true ) {
+
+                                       // Unless errors are allowed to bubble, catch and return them
+                                       if ( conv && s.throws ) {
+                                               response = conv( response );
+                                       } else {
+                                               try {
+                                                       response = conv( response );
+                                               } catch ( e ) {
+                                                       return {
+                                                               state: "parsererror",
+                                                               error: conv ? e : "No conversion from " + prev + " to " + current
+                                                       };
+                                               }
+                                       }
+                               }
+                       }
+               }
+       }
+
+       return { state: "success", data: response };
+}
+
+jQuery.extend( {
+
+       // Counter for holding the number of active queries
+       active: 0,
+
+       // Last-Modified header cache for next request
+       lastModified: {},
+       etag: {},
+
+       ajaxSettings: {
+               url: location.href,
+               type: "GET",
+               isLocal: rlocalProtocol.test( location.protocol ),
+               global: true,
+               processData: true,
+               async: true,
+               contentType: "application/x-www-form-urlencoded; charset=UTF-8",
+
+               /*
+               timeout: 0,
+               data: null,
+               dataType: null,
+               username: null,
+               password: null,
+               cache: null,
+               throws: false,
+               traditional: false,
+               headers: {},
+               */
+
+               accepts: {
+                       "*": allTypes,
+                       text: "text/plain",
+                       html: "text/html",
+                       xml: "application/xml, text/xml",
+                       json: "application/json, text/javascript"
+               },
+
+               contents: {
+                       xml: /\bxml\b/,
+                       html: /\bhtml/,
+                       json: /\bjson\b/
+               },
+
+               responseFields: {
+                       xml: "responseXML",
+                       text: "responseText",
+                       json: "responseJSON"
+               },
+
+               // Data converters
+               // Keys separate source (or catchall "*") and destination types with a single space
+               converters: {
+
+                       // Convert anything to text
+                       "* text": String,
+
+                       // Text to html (true = no transformation)
+                       "text html": true,
+
+                       // Evaluate text as a json expression
+                       "text json": JSON.parse,
+
+                       // Parse text as xml
+                       "text xml": jQuery.parseXML
+               },
+
+               // For options that shouldn't be deep extended:
+               // you can add your own custom options here if
+               // and when you create one that shouldn't be
+               // deep extended (see ajaxExtend)
+               flatOptions: {
+                       url: true,
+                       context: true
+               }
+       },
+
+       // Creates a full fledged settings object into target
+       // with both ajaxSettings and settings fields.
+       // If target is omitted, writes into ajaxSettings.
+       ajaxSetup: function( target, settings ) {
+               return settings ?
+
+                       // Building a settings object
+                       ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :
+
+                       // Extending ajaxSettings
+                       ajaxExtend( jQuery.ajaxSettings, target );
+       },
+
+       ajaxPrefilter: addToPrefiltersOrTransports( prefilters ),
+       ajaxTransport: addToPrefiltersOrTransports( transports ),
+
+       // Main method
+       ajax: function( url, options ) {
+
+               // If url is an object, simulate pre-1.5 signature
+               if ( typeof url === "object" ) {
+                       options = url;
+                       url = undefined;
+               }
+
+               // Force options to be an object
+               options = options || {};
+
+               var transport,
+
+                       // URL without anti-cache param
+                       cacheURL,
+
+                       // Response headers
+                       responseHeadersString,
+                       responseHeaders,
+
+                       // timeout handle
+                       timeoutTimer,
+
+                       // Url cleanup var
+                       urlAnchor,
+
+                       // Request state (becomes false upon send and true upon completion)
+                       completed,
+
+                       // To know if global events are to be dispatched
+                       fireGlobals,
+
+                       // Loop variable
+                       i,
+
+                       // uncached part of the url
+                       uncached,
+
+                       // Create the final options object
+                       s = jQuery.ajaxSetup( {}, options ),
+
+                       // Callbacks context
+                       callbackContext = s.context || s,
+
+                       // Context for global events is callbackContext if it is a DOM node or jQuery collection
+                       globalEventContext = s.context &&
+                               ( callbackContext.nodeType || callbackContext.jquery ) ?
+                                       jQuery( callbackContext ) :
+                                       jQuery.event,
+
+                       // Deferreds
+                       deferred = jQuery.Deferred(),
+                       completeDeferred = jQuery.Callbacks( "once memory" ),
+
+                       // Status-dependent callbacks
+                       statusCode = s.statusCode || {},
+
+                       // Headers (they are sent all at once)
+                       requestHeaders = {},
+                       requestHeadersNames = {},
+
+                       // Default abort message
+                       strAbort = "canceled",
+
+                       // Fake xhr
+                       jqXHR = {
+                               readyState: 0,
+
+                               // Builds headers hashtable if needed
+                               getResponseHeader: function( key ) {
+                                       var match;
+                                       if ( completed ) {
+                                               if ( !responseHeaders ) {
+                                                       responseHeaders = {};
+                                                       while ( ( match = rheaders.exec( responseHeadersString ) ) ) {
+                                                               responseHeaders[ match[ 1 ].toLowerCase() ] = match[ 2 ];
+                                                       }
+                                               }
+                                               match = responseHeaders[ key.toLowerCase() ];
+                                       }
+                                       return match == null ? null : match;
+                               },
+
+                               // Raw string
+                               getAllResponseHeaders: function() {
+                                       return completed ? responseHeadersString : null;
+                               },
+
+                               // Caches the header
+                               setRequestHeader: function( name, value ) {
+                                       if ( completed == null ) {
+                                               name = requestHeadersNames[ name.toLowerCase() ] =
+                                                       requestHeadersNames[ name.toLowerCase() ] || name;
+                                               requestHeaders[ name ] = value;
+                                       }
+                                       return this;
+                               },
+
+                               // Overrides response content-type header
+                               overrideMimeType: function( type ) {
+                                       if ( completed == null ) {
+                                               s.mimeType = type;
+                                       }
+                                       return this;
+                               },
+
+                               // Status-dependent callbacks
+                               statusCode: function( map ) {
+                                       var code;
+                                       if ( map ) {
+                                               if ( completed ) {
+
+                                                       // Execute the appropriate callbacks
+                                                       jqXHR.always( map[ jqXHR.status ] );
+                                               } else {
+
+                                                       // Lazy-add the new callbacks in a way that preserves old ones
+                                                       for ( code in map ) {
+                                                               statusCode[ code ] = [ statusCode[ code ], map[ code ] ];
+                                                       }
+                                               }
+                                       }
+                                       return this;
+                               },
+
+                               // Cancel the request
+                               abort: function( statusText ) {
+                                       var finalText = statusText || strAbort;
+                                       if ( transport ) {
+                                               transport.abort( finalText );
+                                       }
+                                       done( 0, finalText );
+                                       return this;
+                               }
+                       };
+
+               // Attach deferreds
+               deferred.promise( jqXHR );
+
+               // Add protocol if not provided (prefilters might expect it)
+               // Handle falsy url in the settings object (#10093: consistency with old signature)
+               // We also use the url parameter if available
+               s.url = ( ( url || s.url || location.href ) + "" )
+                       .replace( rprotocol, location.protocol + "//" );
+
+               // Alias method option to type as per ticket #12004
+               s.type = options.method || options.type || s.method || s.type;
+
+               // Extract dataTypes list
+               s.dataTypes = ( s.dataType || "*" ).toLowerCase().match( rnothtmlwhite ) || [ "" ];
+
+               // A cross-domain request is in order when the origin doesn't match the current origin.
+               if ( s.crossDomain == null ) {
+                       urlAnchor = document.createElement( "a" );
+
+                       // Support: IE <=8 - 11, Edge 12 - 13
+                       // IE throws exception on accessing the href property if url is malformed,
+                       // e.g. http://example.com:80x/
+                       try {
+                               urlAnchor.href = s.url;
+
+                               // Support: IE <=8 - 11 only
+                               // Anchor's host property isn't correctly set when s.url is relative
+                               urlAnchor.href = urlAnchor.href;
+                               s.crossDomain = originAnchor.protocol + "//" + originAnchor.host !==
+                                       urlAnchor.protocol + "//" + urlAnchor.host;
+                       } catch ( e ) {
+
+                               // If there is an error parsing the URL, assume it is crossDomain,
+                               // it can be rejected by the transport if it is invalid
+                               s.crossDomain = true;
+                       }
+               }
+
+               // Convert data if not already a string
+               if ( s.data && s.processData && typeof s.data !== "string" ) {
+                       s.data = jQuery.param( s.data, s.traditional );
+               }
+
+               // Apply prefilters
+               inspectPrefiltersOrTransports( prefilters, s, options, jqXHR );
+
+               // If request was aborted inside a prefilter, stop there
+               if ( completed ) {
+                       return jqXHR;
+               }
+
+               // We can fire global events as of now if asked to
+               // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)
+               fireGlobals = jQuery.event && s.global;
+
+               // Watch for a new set of requests
+               if ( fireGlobals && jQuery.active++ === 0 ) {
+                       jQuery.event.trigger( "ajaxStart" );
+               }
+
+               // Uppercase the type
+               s.type = s.type.toUpperCase();
+
+               // Determine if request has content
+               s.hasContent = !rnoContent.test( s.type );
+
+               // Save the URL in case we're toying with the If-Modified-Since
+               // and/or If-None-Match header later on
+               // Remove hash to simplify url manipulation
+               cacheURL = s.url.replace( rhash, "" );
+
+               // More options handling for requests with no content
+               if ( !s.hasContent ) {
+
+                       // Remember the hash so we can put it back
+                       uncached = s.url.slice( cacheURL.length );
+
+                       // If data is available, append data to url
+                       if ( s.data ) {
+                               cacheURL += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data;
+
+                               // #9682: remove data so that it's not used in an eventual retry
+                               delete s.data;
+                       }
+
+                       // Add or update anti-cache param if needed
+                       if ( s.cache === false ) {
+                               cacheURL = cacheURL.replace( rantiCache, "$1" );
+                               uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce++ ) + uncached;
+                       }
+
+                       // Put hash and anti-cache on the URL that will be requested (gh-1732)
+                       s.url = cacheURL + uncached;
+
+               // Change '%20' to '+' if this is encoded form body content (gh-2658)
+               } else if ( s.data && s.processData &&
+                       ( s.contentType || "" ).indexOf( "application/x-www-form-urlencoded" ) === 0 ) {
+                       s.data = s.data.replace( r20, "+" );
+               }
+
+               // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
+               if ( s.ifModified ) {
+                       if ( jQuery.lastModified[ cacheURL ] ) {
+                               jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] );
+                       }
+                       if ( jQuery.etag[ cacheURL ] ) {
+                               jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] );
+                       }
+               }
+
+               // Set the correct header, if data is being sent
+               if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {
+                       jqXHR.setRequestHeader( "Content-Type", s.contentType );
+               }
+
+               // Set the Accepts header for the server, depending on the dataType
+               jqXHR.setRequestHeader(
+                       "Accept",
+                       s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?
+                               s.accepts[ s.dataTypes[ 0 ] ] +
+                                       ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) :
+                               s.accepts[ "*" ]
+               );
+
+               // Check for headers option
+               for ( i in s.headers ) {
+                       jqXHR.setRequestHeader( i, s.headers[ i ] );
+               }
+
+               // Allow custom headers/mimetypes and early abort
+               if ( s.beforeSend &&
+                       ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) {
+
+                       // Abort if not done already and return
+                       return jqXHR.abort();
+               }
+
+               // Aborting is no longer a cancellation
+               strAbort = "abort";
+
+               // Install callbacks on deferreds
+               completeDeferred.add( s.complete );
+               jqXHR.done( s.success );
+               jqXHR.fail( s.error );
+
+               // Get transport
+               transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );
+
+               // If no transport, we auto-abort
+               if ( !transport ) {
+                       done( -1, "No Transport" );
+               } else {
+                       jqXHR.readyState = 1;
+
+                       // Send global event
+                       if ( fireGlobals ) {
+                               globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] );
+                       }
+
+                       // If request was aborted inside ajaxSend, stop there
+                       if ( completed ) {
+                               return jqXHR;
+                       }
+
+                       // Timeout
+                       if ( s.async && s.timeout > 0 ) {
+                               timeoutTimer = window.setTimeout( function() {
+                                       jqXHR.abort( "timeout" );
+                               }, s.timeout );
+                       }
+
+                       try {
+                               completed = false;
+                               transport.send( requestHeaders, done );
+                       } catch ( e ) {
+
+                               // Rethrow post-completion exceptions
+                               if ( completed ) {
+                                       throw e;
+                               }
+
+                               // Propagate others as results
+                               done( -1, e );
+                       }
+               }
+
+               // Callback for when everything is done
+               function done( status, nativeStatusText, responses, headers ) {
+                       var isSuccess, success, error, response, modified,
+                               statusText = nativeStatusText;
+
+                       // Ignore repeat invocations
+                       if ( completed ) {
+                               return;
+                       }
+
+                       completed = true;
+
+                       // Clear timeout if it exists
+                       if ( timeoutTimer ) {
+                               window.clearTimeout( timeoutTimer );
+                       }
+
+                       // Dereference transport for early garbage collection
+                       // (no matter how long the jqXHR object will be used)
+                       transport = undefined;
+
+                       // Cache response headers
+                       responseHeadersString = headers || "";
+
+                       // Set readyState
+                       jqXHR.readyState = status > 0 ? 4 : 0;
+
+                       // Determine if successful
+                       isSuccess = status >= 200 && status < 300 || status === 304;
+
+                       // Get response data
+                       if ( responses ) {
+                               response = ajaxHandleResponses( s, jqXHR, responses );
+                       }
+
+                       // Convert no matter what (that way responseXXX fields are always set)
+                       response = ajaxConvert( s, response, jqXHR, isSuccess );
+
+                       // If successful, handle type chaining
+                       if ( isSuccess ) {
+
+                               // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
+                               if ( s.ifModified ) {
+                                       modified = jqXHR.getResponseHeader( "Last-Modified" );
+                                       if ( modified ) {
+                                               jQuery.lastModified[ cacheURL ] = modified;
+                                       }
+                                       modified = jqXHR.getResponseHeader( "etag" );
+                                       if ( modified ) {
+                                               jQuery.etag[ cacheURL ] = modified;
+                                       }
+                               }
+
+                               // if no content
+                               if ( status === 204 || s.type === "HEAD" ) {
+                                       statusText = "nocontent";
+
+                               // if not modified
+                               } else if ( status === 304 ) {
+                                       statusText = "notmodified";
+
+                               // If we have data, let's convert it
+                               } else {
+                                       statusText = response.state;
+                                       success = response.data;
+                                       error = response.error;
+                                       isSuccess = !error;
+                               }
+                       } else {
+
+                               // Extract error from statusText and normalize for non-aborts
+                               error = statusText;
+                               if ( status || !statusText ) {
+                                       statusText = "error";
+                                       if ( status < 0 ) {
+                                               status = 0;
+                                       }
+                               }
+                       }
+
+                       // Set data for the fake xhr object
+                       jqXHR.status = status;
+                       jqXHR.statusText = ( nativeStatusText || statusText ) + "";
+
+                       // Success/Error
+                       if ( isSuccess ) {
+                               deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );
+                       } else {
+                               deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );
+                       }
+
+                       // Status-dependent callbacks
+                       jqXHR.statusCode( statusCode );
+                       statusCode = undefined;
+
+                       if ( fireGlobals ) {
+                               globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError",
+                                       [ jqXHR, s, isSuccess ? success : error ] );
+                       }
+
+                       // Complete
+                       completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );
+
+                       if ( fireGlobals ) {
+                               globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] );
+
+                               // Handle the global AJAX counter
+                               if ( !( --jQuery.active ) ) {
+                                       jQuery.event.trigger( "ajaxStop" );
+                               }
+                       }
+               }
+
+               return jqXHR;
+       },
+
+       getJSON: function( url, data, callback ) {
+               return jQuery.get( url, data, callback, "json" );
+       },
+
+       getScript: function( url, callback ) {
+               return jQuery.get( url, undefined, callback, "script" );
+       }
+} );
+
+jQuery.each( [ "get", "post" ], function( i, method ) {
+       jQuery[ method ] = function( url, data, callback, type ) {
+
+               // Shift arguments if data argument was omitted
+               if ( jQuery.isFunction( data ) ) {
+                       type = type || callback;
+                       callback = data;
+                       data = undefined;
+               }
+
+               // The url can be an options object (which then must have .url)
+               return jQuery.ajax( jQuery.extend( {
+                       url: url,
+                       type: method,
+                       dataType: type,
+                       data: data,
+                       success: callback
+               }, jQuery.isPlainObject( url ) && url ) );
+       };
+} );
+
+
+jQuery._evalUrl = function( url ) {
+       return jQuery.ajax( {
+               url: url,
+
+               // Make this explicit, since user can override this through ajaxSetup (#11264)
+               type: "GET",
+               dataType: "script",
+               cache: true,
+               async: false,
+               global: false,
+               "throws": true
+       } );
+};
+
+
+jQuery.fn.extend( {
+       wrapAll: function( html ) {
+               var wrap;
+
+               if ( this[ 0 ] ) {
+                       if ( jQuery.isFunction( html ) ) {
+                               html = html.call( this[ 0 ] );
+                       }
+
+                       // The elements to wrap the target around
+                       wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );
+
+                       if ( this[ 0 ].parentNode ) {
+                               wrap.insertBefore( this[ 0 ] );
+                       }
+
+                       wrap.map( function() {
+                               var elem = this;
+
+                               while ( elem.firstElementChild ) {
+                                       elem = elem.firstElementChild;
+                               }
+
+                               return elem;
+                       } ).append( this );
+               }
+
+               return this;
+       },
+
+       wrapInner: function( html ) {
+               if ( jQuery.isFunction( html ) ) {
+                       return this.each( function( i ) {
+                               jQuery( this ).wrapInner( html.call( this, i ) );
+                       } );
+               }
+
+               return this.each( function() {
+                       var self = jQuery( this ),
+                               contents = self.contents();
+
+                       if ( contents.length ) {
+                               contents.wrapAll( html );
+
+                       } else {
+                               self.append( html );
+                       }
+               } );
+       },
+
+       wrap: function( html ) {
+               var isFunction = jQuery.isFunction( html );
+
+               return this.each( function( i ) {
+                       jQuery( this ).wrapAll( isFunction ? html.call( this, i ) : html );
+               } );
+       },
+
+       unwrap: function( selector ) {
+               this.parent( selector ).not( "body" ).each( function() {
+                       jQuery( this ).replaceWith( this.childNodes );
+               } );
+               return this;
+       }
+} );
+
+
+jQuery.expr.pseudos.hidden = function( elem ) {
+       return !jQuery.expr.pseudos.visible( elem );
+};
+jQuery.expr.pseudos.visible = function( elem ) {
+       return !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );
+};
+
+
+
+
+jQuery.ajaxSettings.xhr = function() {
+       try {
+               return new window.XMLHttpRequest();
+       } catch ( e ) {}
+};
+
+var xhrSuccessStatus = {
+
+               // File protocol always yields status code 0, assume 200
+               0: 200,
+
+               // Support: IE <=9 only
+               // #1450: sometimes IE returns 1223 when it should be 204
+               1223: 204
+       },
+       xhrSupported = jQuery.ajaxSettings.xhr();
+
+support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported );
+support.ajax = xhrSupported = !!xhrSupported;
+
+jQuery.ajaxTransport( function( options ) {
+       var callback, errorCallback;
+
+       // Cross domain only allowed if supported through XMLHttpRequest
+       if ( support.cors || xhrSupported && !options.crossDomain ) {
+               return {
+                       send: function( headers, complete ) {
+                               var i,
+                                       xhr = options.xhr();
+
+                               xhr.open(
+                                       options.type,
+                                       options.url,
+                                       options.async,
+                                       options.username,
+                                       options.password
+                               );
+
+                               // Apply custom fields if provided
+                               if ( options.xhrFields ) {
+                                       for ( i in options.xhrFields ) {
+                                               xhr[ i ] = options.xhrFields[ i ];
+                                       }
+                               }
+
+                               // Override mime type if needed
+                               if ( options.mimeType && xhr.overrideMimeType ) {
+                                       xhr.overrideMimeType( options.mimeType );
+                               }
+
+                               // X-Requested-With header
+                               // For cross-domain requests, seeing as conditions for a preflight are
+                               // akin to a jigsaw puzzle, we simply never set it to be sure.
+                               // (it can always be set on a per-request basis or even using ajaxSetup)
+                               // For same-domain requests, won't change header if already provided.
+                               if ( !options.crossDomain && !headers[ "X-Requested-With" ] ) {
+                                       headers[ "X-Requested-With" ] = "XMLHttpRequest";
+                               }
+
+                               // Set headers
+                               for ( i in headers ) {
+                                       xhr.setRequestHeader( i, headers[ i ] );
+                               }
+
+                               // Callback
+                               callback = function( type ) {
+                                       return function() {
+                                               if ( callback ) {
+                                                       callback = errorCallback = xhr.onload =
+                                                               xhr.onerror = xhr.onabort = xhr.onreadystatechange = null;
+
+                                                       if ( type === "abort" ) {
+                                                               xhr.abort();
+                                                       } else if ( type === "error" ) {
+
+                                                               // Support: IE <=9 only
+                                                               // On a manual native abort, IE9 throws
+                                                               // errors on any property access that is not readyState
+                                                               if ( typeof xhr.status !== "number" ) {
+                                                                       complete( 0, "error" );
+                                                               } else {
+                                                                       complete(
+
+                                                                               // File: protocol always yields status 0; see #8605, #14207
+                                                                               xhr.status,
+                                                                               xhr.statusText
+                                                                       );
+                                                               }
+                                                       } else {
+                                                               complete(
+                                                                       xhrSuccessStatus[ xhr.status ] || xhr.status,
+                                                                       xhr.statusText,
+
+                                                                       // Support: IE <=9 only
+                                                                       // IE9 has no XHR2 but throws on binary (trac-11426)
+                                                                       // For XHR2 non-text, let the caller handle it (gh-2498)
+                                                                       ( xhr.responseType || "text" ) !== "text"  ||
+                                                                       typeof xhr.responseText !== "string" ?
+                                                                               { binary: xhr.response } :
+                                                                               { text: xhr.responseText },
+                                                                       xhr.getAllResponseHeaders()
+                                                               );
+                                                       }
+                                               }
+                                       };
+                               };
+
+                               // Listen to events
+                               xhr.onload = callback();
+                               errorCallback = xhr.onerror = callback( "error" );
+
+                               // Support: IE 9 only
+                               // Use onreadystatechange to replace onabort
+                               // to handle uncaught aborts
+                               if ( xhr.onabort !== undefined ) {
+                                       xhr.onabort = errorCallback;
+                               } else {
+                                       xhr.onreadystatechange = function() {
+
+                                               // Check readyState before timeout as it changes
+                                               if ( xhr.readyState === 4 ) {
+
+                                                       // Allow onerror to be called first,
+                                                       // but that will not handle a native abort
+                                                       // Also, save errorCallback to a variable
+                                                       // as xhr.onerror cannot be accessed
+                                                       window.setTimeout( function() {
+                                                               if ( callback ) {
+                                                                       errorCallback();
+                                                               }
+                                                       } );
+                                               }
+                                       };
+                               }
+
+                               // Create the abort callback
+                               callback = callback( "abort" );
+
+                               try {
+
+                                       // Do send the request (this may raise an exception)
+                                       xhr.send( options.hasContent && options.data || null );
+                               } catch ( e ) {
+
+                                       // #14683: Only rethrow if this hasn't been notified as an error yet
+                                       if ( callback ) {
+                                               throw e;
+                                       }
+                               }
+                       },
+
+                       abort: function() {
+                               if ( callback ) {
+                                       callback();
+                               }
+                       }
+               };
+       }
+} );
+
+
+
+
+// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)
+jQuery.ajaxPrefilter( function( s ) {
+       if ( s.crossDomain ) {
+               s.contents.script = false;
+       }
+} );
+
+// Install script dataType
+jQuery.ajaxSetup( {
+       accepts: {
+               script: "text/javascript, application/javascript, " +
+                       "application/ecmascript, application/x-ecmascript"
+       },
+       contents: {
+               script: /\b(?:java|ecma)script\b/
+       },
+       converters: {
+               "text script": function( text ) {
+                       jQuery.globalEval( text );
+                       return text;
+               }
+       }
+} );
+
+// Handle cache's special case and crossDomain
+jQuery.ajaxPrefilter( "script", function( s ) {
+       if ( s.cache === undefined ) {
+               s.cache = false;
+       }
+       if ( s.crossDomain ) {
+               s.type = "GET";
+       }
+} );
+
+// Bind script tag hack transport
+jQuery.ajaxTransport( "script", function( s ) {
+
+       // This transport only deals with cross domain requests
+       if ( s.crossDomain ) {
+               var script, callback;
+               return {
+                       send: function( _, complete ) {
+                               script = jQuery( "<script>" ).prop( {
+                                       charset: s.scriptCharset,
+                                       src: s.url
+                               } ).on(
+                                       "load error",
+                                       callback = function( evt ) {
+                                               script.remove();
+                                               callback = null;
+                                               if ( evt ) {
+                                                       complete( evt.type === "error" ? 404 : 200, evt.type );
+                                               }
+                                       }
+                               );
+
+                               // Use native DOM manipulation to avoid our domManip AJAX trickery
+                               document.head.appendChild( script[ 0 ] );
+                       },
+                       abort: function() {
+                               if ( callback ) {
+                                       callback();
+                               }
+                       }
+               };
+       }
+} );
+
+
+
+
+var oldCallbacks = [],
+       rjsonp = /(=)\?(?=&|$)|\?\?/;
+
+// Default jsonp settings
+jQuery.ajaxSetup( {
+       jsonp: "callback",
+       jsonpCallback: function() {
+               var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce++ ) );
+               this[ callback ] = true;
+               return callback;
+       }
+} );
+
+// Detect, normalize options and install callbacks for jsonp requests
+jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) {
+
+       var callbackName, overwritten, responseContainer,
+               jsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ?
+                       "url" :
+                       typeof s.data === "string" &&
+                               ( s.contentType || "" )
+                                       .indexOf( "application/x-www-form-urlencoded" ) === 0 &&
+                               rjsonp.test( s.data ) && "data"
+               );
+
+       // Handle iff the expected data type is "jsonp" or we have a parameter to set
+       if ( jsonProp || s.dataTypes[ 0 ] === "jsonp" ) {
+
+               // Get callback name, remembering preexisting value associated with it
+               callbackName = s.jsonpCallback = jQuery.isFunction( s.jsonpCallback ) ?
+                       s.jsonpCallback() :
+                       s.jsonpCallback;
+
+               // Insert callback into url or form data
+               if ( jsonProp ) {
+                       s[ jsonProp ] = s[ jsonProp ].replace( rjsonp, "$1" + callbackName );
+               } else if ( s.jsonp !== false ) {
+                       s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.jsonp + "=" + callbackName;
+               }
+
+               // Use data converter to retrieve json after script execution
+               s.converters[ "script json" ] = function() {
+                       if ( !responseContainer ) {
+                               jQuery.error( callbackName + " was not called" );
+                       }
+                       return responseContainer[ 0 ];
+               };
+
+               // Force json dataType
+               s.dataTypes[ 0 ] = "json";
+
+               // Install callback
+               overwritten = window[ callbackName ];
+               window[ callbackName ] = function() {
+                       responseContainer = arguments;
+               };
+
+               // Clean-up function (fires after converters)
+               jqXHR.always( function() {
+
+                       // If previous value didn't exist - remove it
+                       if ( overwritten === undefined ) {
+                               jQuery( window ).removeProp( callbackName );
+
+                       // Otherwise restore preexisting value
+                       } else {
+                               window[ callbackName ] = overwritten;
+                       }
+
+                       // Save back as free
+                       if ( s[ callbackName ] ) {
+
+                               // Make sure that re-using the options doesn't screw things around
+                               s.jsonpCallback = originalSettings.jsonpCallback;
+
+                               // Save the callback name for future use
+                               oldCallbacks.push( callbackName );
+                       }
+
+                       // Call if it was a function and we have a response
+                       if ( responseContainer && jQuery.isFunction( overwritten ) ) {
+                               overwritten( responseContainer[ 0 ] );
+                       }
+
+                       responseContainer = overwritten = undefined;
+               } );
+
+               // Delegate to script
+               return "script";
+       }
+} );
+
+
+
+
+// Support: Safari 8 only
+// In Safari 8 documents created via document.implementation.createHTMLDocument
+// collapse sibling forms: the second one becomes a child of the first one.
+// Because of that, this security measure has to be disabled in Safari 8.
+// https://bugs.webkit.org/show_bug.cgi?id=137337
+support.createHTMLDocument = ( function() {
+       var body = document.implementation.createHTMLDocument( "" ).body;
+       body.innerHTML = "<form></form><form></form>";
+       return body.childNodes.length === 2;
+} )();
+
+
+// Argument "data" should be string of html
+// context (optional): If specified, the fragment will be created in this context,
+// defaults to document
+// keepScripts (optional): If true, will include scripts passed in the html string
+jQuery.parseHTML = function( data, context, keepScripts ) {
+       if ( typeof data !== "string" ) {
+               return [];
+       }
+       if ( typeof context === "boolean" ) {
+               keepScripts = context;
+               context = false;
+       }
+
+       var base, parsed, scripts;
+
+       if ( !context ) {
+
+               // Stop scripts or inline event handlers from being executed immediately
+               // by using document.implementation
+               if ( support.createHTMLDocument ) {
+                       context = document.implementation.createHTMLDocument( "" );
+
+                       // Set the base href for the created document
+                       // so any parsed elements with URLs
+                       // are based on the document's URL (gh-2965)
+                       base = context.createElement( "base" );
+                       base.href = document.location.href;
+                       context.head.appendChild( base );
+               } else {
+                       context = document;
+               }
+       }
+
+       parsed = rsingleTag.exec( data );
+       scripts = !keepScripts && [];
+
+       // Single tag
+       if ( parsed ) {
+               return [ context.createElement( parsed[ 1 ] ) ];
+       }
+
+       parsed = buildFragment( [ data ], context, scripts );
+
+       if ( scripts && scripts.length ) {
+               jQuery( scripts ).remove();
+       }
+
+       return jQuery.merge( [], parsed.childNodes );
+};
+
+
+/**
+ * Load a url into a page
+ */
+jQuery.fn.load = function( url, params, callback ) {
+       var selector, type, response,
+               self = this,
+               off = url.indexOf( " " );
+
+       if ( off > -1 ) {
+               selector = stripAndCollapse( url.slice( off ) );
+               url = url.slice( 0, off );
+       }
+
+       // If it's a function
+       if ( jQuery.isFunction( params ) ) {
+
+               // We assume that it's the callback
+               callback = params;
+               params = undefined;
+
+       // Otherwise, build a param string
+       } else if ( params && typeof params === "object" ) {
+               type = "POST";
+       }
+
+       // If we have elements to modify, make the request
+       if ( self.length > 0 ) {
+               jQuery.ajax( {
+                       url: url,
+
+                       // If "type" variable is undefined, then "GET" method will be used.
+                       // Make value of this field explicit since
+                       // user can override it through ajaxSetup method
+                       type: type || "GET",
+                       dataType: "html",
+                       data: params
+               } ).done( function( responseText ) {
+
+                       // Save response for use in complete callback
+                       response = arguments;
+
+                       self.html( selector ?
+
+                               // If a selector was specified, locate the right elements in a dummy div
+                               // Exclude scripts to avoid IE 'Permission Denied' errors
+                               jQuery( "<div>" ).append( jQuery.parseHTML( responseText ) ).find( selector ) :
+
+                               // Otherwise use the full result
+                               responseText );
+
+               // If the request succeeds, this function gets "data", "status", "jqXHR"
+               // but they are ignored because response was set above.
+               // If it fails, this function gets "jqXHR", "status", "error"
+               } ).always( callback && function( jqXHR, status ) {
+                       self.each( function() {
+                               callback.apply( this, response || [ jqXHR.responseText, status, jqXHR ] );
+                       } );
+               } );
+       }
+
+       return this;
+};
+
+
+
+
+// Attach a bunch of functions for handling common AJAX events
+jQuery.each( [
+       "ajaxStart",
+       "ajaxStop",
+       "ajaxComplete",
+       "ajaxError",
+       "ajaxSuccess",
+       "ajaxSend"
+], function( i, type ) {
+       jQuery.fn[ type ] = function( fn ) {
+               return this.on( type, fn );
+       };
+} );
+
+
+
+
+jQuery.expr.pseudos.animated = function( elem ) {
+       return jQuery.grep( jQuery.timers, function( fn ) {
+               return elem === fn.elem;
+       } ).length;
+};
+
+
+
+
+jQuery.offset = {
+       setOffset: function( elem, options, i ) {
+               var curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition,
+                       position = jQuery.css( elem, "position" ),
+                       curElem = jQuery( elem ),
+                       props = {};
+
+               // Set position first, in-case top/left are set even on static elem
+               if ( position === "static" ) {
+                       elem.style.position = "relative";
+               }
+
+               curOffset = curElem.offset();
+               curCSSTop = jQuery.css( elem, "top" );
+               curCSSLeft = jQuery.css( elem, "left" );
+               calculatePosition = ( position === "absolute" || position === "fixed" ) &&
+                       ( curCSSTop + curCSSLeft ).indexOf( "auto" ) > -1;
+
+               // Need to be able to calculate position if either
+               // top or left is auto and position is either absolute or fixed
+               if ( calculatePosition ) {
+                       curPosition = curElem.position();
+                       curTop = curPosition.top;
+                       curLeft = curPosition.left;
+
+               } else {
+                       curTop = parseFloat( curCSSTop ) || 0;
+                       curLeft = parseFloat( curCSSLeft ) || 0;
+               }
+
+               if ( jQuery.isFunction( options ) ) {
+
+                       // Use jQuery.extend here to allow modification of coordinates argument (gh-1848)
+                       options = options.call( elem, i, jQuery.extend( {}, curOffset ) );
+               }
+
+               if ( options.top != null ) {
+                       props.top = ( options.top - curOffset.top ) + curTop;
+               }
+               if ( options.left != null ) {
+                       props.left = ( options.left - curOffset.left ) + curLeft;
+               }
+
+               if ( "using" in options ) {
+                       options.using.call( elem, props );
+
+               } else {
+                       curElem.css( props );
+               }
+       }
+};
+
+jQuery.fn.extend( {
+       offset: function( options ) {
+
+               // Preserve chaining for setter
+               if ( arguments.length ) {
+                       return options === undefined ?
+                               this :
+                               this.each( function( i ) {
+                                       jQuery.offset.setOffset( this, options, i );
+                               } );
+               }
+
+               var doc, docElem, rect, win,
+                       elem = this[ 0 ];
+
+               if ( !elem ) {
+                       return;
+               }
+
+               // Return zeros for disconnected and hidden (display: none) elements (gh-2310)
+               // Support: IE <=11 only
+               // Running getBoundingClientRect on a
+               // disconnected node in IE throws an error
+               if ( !elem.getClientRects().length ) {
+                       return { top: 0, left: 0 };
+               }
+
+               rect = elem.getBoundingClientRect();
+
+               doc = elem.ownerDocument;
+               docElem = doc.documentElement;
+               win = doc.defaultView;
+
+               return {
+                       top: rect.top + win.pageYOffset - docElem.clientTop,
+                       left: rect.left + win.pageXOffset - docElem.clientLeft
+               };
+       },
+
+       position: function() {
+               if ( !this[ 0 ] ) {
+                       return;
+               }
+
+               var offsetParent, offset,
+                       elem = this[ 0 ],
+                       parentOffset = { top: 0, left: 0 };
+
+               // Fixed elements are offset from window (parentOffset = {top:0, left: 0},
+               // because it is its only offset parent
+               if ( jQuery.css( elem, "position" ) === "fixed" ) {
+
+                       // Assume getBoundingClientRect is there when computed position is fixed
+                       offset = elem.getBoundingClientRect();
+
+               } else {
+
+                       // Get *real* offsetParent
+                       offsetParent = this.offsetParent();
+
+                       // Get correct offsets
+                       offset = this.offset();
+                       if ( !nodeName( offsetParent[ 0 ], "html" ) ) {
+                               parentOffset = offsetParent.offset();
+                       }
+
+                       // Add offsetParent borders
+                       parentOffset = {
+                               top: parentOffset.top + jQuery.css( offsetParent[ 0 ], "borderTopWidth", true ),
+                               left: parentOffset.left + jQuery.css( offsetParent[ 0 ], "borderLeftWidth", true )
+                       };
+               }
+
+               // Subtract parent offsets and element margins
+               return {
+                       top: offset.top - parentOffset.top - jQuery.css( elem, "marginTop", true ),
+                       left: offset.left - parentOffset.left - jQuery.css( elem, "marginLeft", true )
+               };
+       },
+
+       // This method will return documentElement in the following cases:
+       // 1) For the element inside the iframe without offsetParent, this method will return
+       //    documentElement of the parent window
+       // 2) For the hidden or detached element
+       // 3) For body or html element, i.e. in case of the html node - it will return itself
+       //
+       // but those exceptions were never presented as a real life use-cases
+       // and might be considered as more preferable results.
+       //
+       // This logic, however, is not guaranteed and can change at any point in the future
+       offsetParent: function() {
+               return this.map( function() {
+                       var offsetParent = this.offsetParent;
+
+                       while ( offsetParent && jQuery.css( offsetParent, "position" ) === "static" ) {
+                               offsetParent = offsetParent.offsetParent;
+                       }
+
+                       return offsetParent || documentElement;
+               } );
+       }
+} );
+
+// Create scrollLeft and scrollTop methods
+jQuery.each( { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function( method, prop ) {
+       var top = "pageYOffset" === prop;
+
+       jQuery.fn[ method ] = function( val ) {
+               return access( this, function( elem, method, val ) {
+
+                       // Coalesce documents and windows
+                       var win;
+                       if ( jQuery.isWindow( elem ) ) {
+                               win = elem;
+                       } else if ( elem.nodeType === 9 ) {
+                               win = elem.defaultView;
+                       }
+
+                       if ( val === undefined ) {
+                               return win ? win[ prop ] : elem[ method ];
+                       }
+
+                       if ( win ) {
+                               win.scrollTo(
+                                       !top ? val : win.pageXOffset,
+                                       top ? val : win.pageYOffset
+                               );
+
+                       } else {
+                               elem[ method ] = val;
+                       }
+               }, method, val, arguments.length );
+       };
+} );
+
+// Support: Safari <=7 - 9.1, Chrome <=37 - 49
+// Add the top/left cssHooks using jQuery.fn.position
+// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084
+// Blink bug: https://bugs.chromium.org/p/chromium/issues/detail?id=589347
+// getComputedStyle returns percent when specified for top/left/bottom/right;
+// rather than make the css module depend on the offset module, just check for it here
+jQuery.each( [ "top", "left" ], function( i, prop ) {
+       jQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,
+               function( elem, computed ) {
+                       if ( computed ) {
+                               computed = curCSS( elem, prop );
+
+                               // If curCSS returns percentage, fallback to offset
+                               return rnumnonpx.test( computed ) ?
+                                       jQuery( elem ).position()[ prop ] + "px" :
+                                       computed;
+                       }
+               }
+       );
+} );
+
+
+// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods
+jQuery.each( { Height: "height", Width: "width" }, function( name, type ) {
+       jQuery.each( { padding: "inner" + name, content: type, "": "outer" + name },
+               function( defaultExtra, funcName ) {
+
+               // Margin is only for outerHeight, outerWidth
+               jQuery.fn[ funcName ] = function( margin, value ) {
+                       var chainable = arguments.length && ( defaultExtra || typeof margin !== "boolean" ),
+                               extra = defaultExtra || ( margin === true || value === true ? "margin" : "border" );
+
+                       return access( this, function( elem, type, value ) {
+                               var doc;
+
+                               if ( jQuery.isWindow( elem ) ) {
+
+                                       // $( window ).outerWidth/Height return w/h including scrollbars (gh-1729)
+                                       return funcName.indexOf( "outer" ) === 0 ?
+                                               elem[ "inner" + name ] :
+                                               elem.document.documentElement[ "client" + name ];
+                               }
+
+                               // Get document width or height
+                               if ( elem.nodeType === 9 ) {
+                                       doc = elem.documentElement;
+
+                                       // Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height],
+                                       // whichever is greatest
+                                       return Math.max(
+                                               elem.body[ "scroll" + name ], doc[ "scroll" + name ],
+                                               elem.body[ "offset" + name ], doc[ "offset" + name ],
+                                               doc[ "client" + name ]
+                                       );
+                               }
+
+                               return value === undefined ?
+
+                                       // Get width or height on the element, requesting but not forcing parseFloat
+                                       jQuery.css( elem, type, extra ) :
+
+                                       // Set width or height on the element
+                                       jQuery.style( elem, type, value, extra );
+                       }, type, chainable ? margin : undefined, chainable );
+               };
+       } );
+} );
+
+
+jQuery.fn.extend( {
+
+       bind: function( types, data, fn ) {
+               return this.on( types, null, data, fn );
+       },
+       unbind: function( types, fn ) {
+               return this.off( types, null, fn );
+       },
+
+       delegate: function( selector, types, data, fn ) {
+               return this.on( types, selector, data, fn );
+       },
+       undelegate: function( selector, types, fn ) {
+
+               // ( namespace ) or ( selector, types [, fn] )
+               return arguments.length === 1 ?
+                       this.off( selector, "**" ) :
+                       this.off( types, selector || "**", fn );
+       }
+} );
+
+jQuery.holdReady = function( hold ) {
+       if ( hold ) {
+               jQuery.readyWait++;
+       } else {
+               jQuery.ready( true );
+       }
+};
+jQuery.isArray = Array.isArray;
+jQuery.parseJSON = JSON.parse;
+jQuery.nodeName = nodeName;
+
+
+
+
+// Register as a named AMD module, since jQuery can be concatenated with other
+// files that may use define, but not via a proper concatenation script that
+// understands anonymous AMD modules. A named AMD is safest and most robust
+// way to register. Lowercase jquery is used because AMD module names are
+// derived from file names, and jQuery is normally delivered in a lowercase
+// file name. Do this after creating the global so that if an AMD module wants
+// to call noConflict to hide this version of jQuery, it will work.
+
+// Note that for maximum portability, libraries that are not jQuery should
+// declare themselves as anonymous modules, and avoid setting a global if an
+// AMD loader is present. jQuery is a special case. For more information, see
+// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon
+
+if ( typeof define === "function" && define.amd ) {
+       define( "jquery", [], function() {
+               return jQuery;
+       } );
+}
+
+
+
+
+var
+
+       // Map over jQuery in case of overwrite
+       _jQuery = window.jQuery,
+
+       // Map over the $ in case of overwrite
+       _$ = window.$;
+
+jQuery.noConflict = function( deep ) {
+       if ( window.$ === jQuery ) {
+               window.$ = _$;
+       }
+
+       if ( deep && window.jQuery === jQuery ) {
+               window.jQuery = _jQuery;
+       }
+
+       return jQuery;
+};
+
+// Expose jQuery and $ identifiers, even in AMD
+// (#7102#comment:10, https://github.com/jquery/jquery/pull/557)
+// and CommonJS for browser emulators (#13566)
+if ( !noGlobal ) {
+       window.jQuery = window.$ = jQuery;
+}
+
+
+
+
+return jQuery;
+} );
diff --git a/js/jquery/dist/jquery.min.js b/js/jquery/dist/jquery.min.js
new file mode 100644 (file)
index 0000000..644d35e
--- /dev/null
@@ -0,0 +1,4 @@
+/*! jQuery v3.2.1 | (c) JS Foundation and other contributors | jquery.org/license */
+!function(a,b){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){"use strict";var c=[],d=a.document,e=Object.getPrototypeOf,f=c.slice,g=c.concat,h=c.push,i=c.indexOf,j={},k=j.toString,l=j.hasOwnProperty,m=l.toString,n=m.call(Object),o={};function p(a,b){b=b||d;var c=b.createElement("script");c.text=a,b.head.appendChild(c).parentNode.removeChild(c)}var q="3.2.1",r=function(a,b){return new r.fn.init(a,b)},s=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,t=/^-ms-/,u=/-([a-z])/g,v=function(a,b){return b.toUpperCase()};r.fn=r.prototype={jquery:q,constructor:r,length:0,toArray:function(){return f.call(this)},get:function(a){return null==a?f.call(this):a<0?this[a+this.length]:this[a]},pushStack:function(a){var b=r.merge(this.constructor(),a);return b.prevObject=this,b},each:function(a){return r.each(this,a)},map:function(a){return this.pushStack(r.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(f.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(a<0?b:0);return this.pushStack(c>=0&&c<b?[this[c]]:[])},end:function(){return this.prevObject||this.constructor()},push:h,sort:c.sort,splice:c.splice},r.extend=r.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||r.isFunction(g)||(g={}),h===i&&(g=this,h--);h<i;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(r.isPlainObject(d)||(e=Array.isArray(d)))?(e?(e=!1,f=c&&Array.isArray(c)?c:[]):f=c&&r.isPlainObject(c)?c:{},g[b]=r.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},r.extend({expando:"jQuery"+(q+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===r.type(a)},isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){var b=r.type(a);return("number"===b||"string"===b)&&!isNaN(a-parseFloat(a))},isPlainObject:function(a){var b,c;return!(!a||"[object Object]"!==k.call(a))&&(!(b=e(a))||(c=l.call(b,"constructor")&&b.constructor,"function"==typeof c&&m.call(c)===n))},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?j[k.call(a)]||"object":typeof a},globalEval:function(a){p(a)},camelCase:function(a){return a.replace(t,"ms-").replace(u,v)},each:function(a,b){var c,d=0;if(w(a)){for(c=a.length;d<c;d++)if(b.call(a[d],d,a[d])===!1)break}else for(d in a)if(b.call(a[d],d,a[d])===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(s,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(w(Object(a))?r.merge(c,"string"==typeof a?[a]:a):h.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:i.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;d<c;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;f<g;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,e,f=0,h=[];if(w(a))for(d=a.length;f<d;f++)e=b(a[f],f,c),null!=e&&h.push(e);else for(f in a)e=b(a[f],f,c),null!=e&&h.push(e);return g.apply([],h)},guid:1,proxy:function(a,b){var c,d,e;if("string"==typeof b&&(c=a[b],b=a,a=c),r.isFunction(a))return d=f.call(arguments,2),e=function(){return a.apply(b||this,d.concat(f.call(arguments)))},e.guid=a.guid=a.guid||r.guid++,e},now:Date.now,support:o}),"function"==typeof Symbol&&(r.fn[Symbol.iterator]=c[Symbol.iterator]),r.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(a,b){j["[object "+b+"]"]=b.toLowerCase()});function w(a){var b=!!a&&"length"in a&&a.length,c=r.type(a);return"function"!==c&&!r.isWindow(a)&&("array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a)}var x=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=function(a,b){for(var c=0,d=a.length;c<d;c++)if(a[c]===b)return c;return-1},J="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",K="[\\x20\\t\\r\\n\\f]",L="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",M="\\["+K+"*("+L+")(?:"+K+"*([*^$|!~]?=)"+K+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+L+"))|)"+K+"*\\]",N=":("+L+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+M+")*)|.*)\\)|)",O=new RegExp(K+"+","g"),P=new RegExp("^"+K+"+|((?:^|[^\\\\])(?:\\\\.)*)"+K+"+$","g"),Q=new RegExp("^"+K+"*,"+K+"*"),R=new RegExp("^"+K+"*([>+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(N),U=new RegExp("^"+L+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L+"|[*])"),ATTR:new RegExp("^"+M),PSEUDO:new RegExp("^"+N),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),aa=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:d<0?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ba=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ca=function(a,b){return b?"\0"===a?"\ufffd":a.slice(0,-1)+"\\"+a.charCodeAt(a.length-1).toString(16)+" ":"\\"+a},da=function(){m()},ea=ta(function(a){return a.disabled===!0&&("form"in a||"label"in a)},{dir:"parentNode",next:"legend"});try{G.apply(D=H.call(v.childNodes),v.childNodes),D[v.childNodes.length].nodeType}catch(fa){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s=b&&b.ownerDocument,w=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==w&&9!==w&&11!==w)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==w&&(l=Z.exec(a)))if(f=l[1]){if(9===w){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(s&&(j=s.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(l[2])return G.apply(d,b.getElementsByTagName(a)),d;if((f=l[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==w)s=b,r=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(ba,ca):b.setAttribute("id",k=u),o=g(a),h=o.length;while(h--)o[h]="#"+k+" "+sa(o[h]);r=o.join(","),s=$.test(a)&&qa(b.parentNode)||b}if(r)try{return G.apply(d,s.querySelectorAll(r)),d}catch(x){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(P,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("fieldset");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&a.sourceIndex-b.sourceIndex;if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return function(b){return"form"in b?b.parentNode&&b.disabled===!1?"label"in b?"label"in b.parentNode?b.parentNode.disabled===a:b.disabled===a:b.isDisabled===a||b.isDisabled!==!a&&ea(b)===a:b.disabled===a:"label"in b&&b.disabled===a}}function pa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function qa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return!!b&&"HTML"!==b.nodeName},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),v!==n&&(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(n.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){return a.getAttribute("id")===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}}):(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c,d,e,f=b.getElementById(a);if(f){if(c=f.getAttributeNode("id"),c&&c.value===a)return[f];e=b.getElementsByName(a),d=0;while(f=e[d++])if(c=f.getAttributeNode("id"),c&&c.value===a)return[f]}return[]}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){if("undefined"!=typeof b.getElementsByClassName&&p)return b.getElementsByClassName(a)},r=[],q=[],(c.qsa=Y.test(n.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="<a id='"+u+"'></a><select id='"+u+"-\r\\' msallowcapture=''><option selected=''></option></select>",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){a.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+K+"*[*^$|!~]?="),2!==a.querySelectorAll(":enabled").length&&q.push(":enabled",":disabled"),o.appendChild(a).disabled=!0,2!==a.querySelectorAll(":disabled").length&&q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Y.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"*"),s.call(a,"[s!='']:x"),r.push("!=",N)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Y.test(o.compareDocumentPosition),t=b||Y.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?I(k,a)-I(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?I(k,a)-I(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?la(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(S,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.escape=function(a){return(a+"").replace(ba,ca)},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(_,aa),a[3]=(a[3]||a[4]||a[5]||"").replace(_,aa),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return V.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&T.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(_,aa).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+K+")"+a+"("+K+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:!b||(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(O," ")+" ").indexOf(c)>-1:"|="===b&&(e===c||e.slice(0,c.length+1)===c+"-"))}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(P,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(_,aa),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return U.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(_,aa).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:oa(!1),disabled:oa(!0),checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return X.test(a.nodeName)},input:function(a){return W.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:pa(function(){return[0]}),last:pa(function(a,b){return[b-1]}),eq:pa(function(a,b,c){return[c<0?c+b:c]}),even:pa(function(a,b){for(var c=0;c<b;c+=2)a.push(c);return a}),odd:pa(function(a,b){for(var c=1;c<b;c+=2)a.push(c);return a}),lt:pa(function(a,b,c){for(var d=c<0?c+b:c;--d>=0;)a.push(d);return a}),gt:pa(function(a,b,c){for(var d=c<0?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=ma(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=na(b);function ra(){}ra.prototype=d.filters=d.pseudos,d.setFilters=new ra,g=ga.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){c&&!(e=Q.exec(h))||(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=R.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(P," ")}),h=h.slice(c.length));for(g in d.filter)!(e=V[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?ga.error(a):z(a,i).slice(0)};function sa(a){for(var b=0,c=a.length,d="";b<c;b++)d+=a[b].value;return d}function ta(a,b,c){var d=b.dir,e=b.next,f=e||d,g=c&&"parentNode"===f,h=x++;return b.first?function(b,c,e){while(b=b[d])if(1===b.nodeType||g)return a(b,c,e);return!1}:function(b,c,i){var j,k,l,m=[w,h];if(i){while(b=b[d])if((1===b.nodeType||g)&&a(b,c,i))return!0}else while(b=b[d])if(1===b.nodeType||g)if(l=b[u]||(b[u]={}),k=l[b.uniqueID]||(l[b.uniqueID]={}),e&&e===b.nodeName.toLowerCase())b=b[d]||b;else{if((j=k[f])&&j[0]===w&&j[1]===h)return m[2]=j[2];if(k[f]=m,m[2]=a(b,c,i))return!0}return!1}}function ua(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function va(a,b,c){for(var d=0,e=b.length;d<e;d++)ga(a,b[d],c);return c}function wa(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;h<i;h++)(f=a[h])&&(c&&!c(f,d,e)||(g.push(f),j&&b.push(h)));return g}function xa(a,b,c,d,e,f){return d&&!d[u]&&(d=xa(d)),e&&!e[u]&&(e=xa(e,f)),ia(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||va(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:wa(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=wa(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?I(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=wa(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ya(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ta(function(a){return a===b},h,!0),l=ta(function(a){return I(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];i<f;i++)if(c=d.relative[a[i].type])m=[ta(ua(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;e<f;e++)if(d.relative[a[e].type])break;return xa(i>1&&ua(m),i>1&&sa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(P,"$1"),c,i<e&&ya(a.slice(i,e)),e<f&&ya(a=a.slice(e)),e<f&&sa(a))}m.push(c)}return ua(m)}function za(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=E.call(i));u=wa(u)}G.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&ga.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=ya(b[c]),f[u]?d.push(f):e.push(f);f=A(a,za(e,d)),f.selector=a}return f},i=ga.select=function(a,b,c,e){var f,i,j,k,l,m="function"==typeof a&&a,n=!e&&g(a=m.selector||a);if(c=c||[],1===n.length){if(i=n[0]=n[0].slice(0),i.length>2&&"ID"===(j=i[0]).type&&9===b.nodeType&&p&&d.relative[i[1].type]){if(b=(d.find.ID(j.matches[0].replace(_,aa),b)||[])[0],!b)return c;m&&(b=b.parentNode),a=a.slice(i.shift().value.length)}f=V.needsContext.test(a)?0:i.length;while(f--){if(j=i[f],d.relative[k=j.type])break;if((l=d.find[k])&&(e=l(j.matches[0].replace(_,aa),$.test(i[0].type)&&qa(b.parentNode)||b))){if(i.splice(f,1),a=e.length&&sa(i),!a)return G.apply(c,e),c;break}}}return(m||h(a,n))(e,b,!p,c,!b||$.test(a)&&qa(b.parentNode)||b),c},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("fieldset"))}),ja(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){if(!c)return a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){if(!c&&"input"===a.nodeName.toLowerCase())return a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(J,function(a,b,c){var d;if(!c)return a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);r.find=x,r.expr=x.selectors,r.expr[":"]=r.expr.pseudos,r.uniqueSort=r.unique=x.uniqueSort,r.text=x.getText,r.isXMLDoc=x.isXML,r.contains=x.contains,r.escapeSelector=x.escape;var y=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&r(a).is(c))break;d.push(a)}return d},z=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},A=r.expr.match.needsContext;function B(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()}var C=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,D=/^.[^:#\[\.,]*$/;function E(a,b,c){return r.isFunction(b)?r.grep(a,function(a,d){return!!b.call(a,d,a)!==c}):b.nodeType?r.grep(a,function(a){return a===b!==c}):"string"!=typeof b?r.grep(a,function(a){return i.call(b,a)>-1!==c}):D.test(b)?r.filter(b,a,c):(b=r.filter(b,a),r.grep(a,function(a){return i.call(b,a)>-1!==c&&1===a.nodeType}))}r.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?r.find.matchesSelector(d,a)?[d]:[]:r.find.matches(a,r.grep(b,function(a){return 1===a.nodeType}))},r.fn.extend({find:function(a){var b,c,d=this.length,e=this;if("string"!=typeof a)return this.pushStack(r(a).filter(function(){for(b=0;b<d;b++)if(r.contains(e[b],this))return!0}));for(c=this.pushStack([]),b=0;b<d;b++)r.find(a,e[b],c);return d>1?r.uniqueSort(c):c},filter:function(a){return this.pushStack(E(this,a||[],!1))},not:function(a){return this.pushStack(E(this,a||[],!0))},is:function(a){return!!E(this,"string"==typeof a&&A.test(a)?r(a):a||[],!1).length}});var F,G=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,H=r.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||F,"string"==typeof a){if(e="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:G.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof r?b[0]:b,r.merge(this,r.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),C.test(e[1])&&r.isPlainObject(b))for(e in b)r.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}return f=d.getElementById(e[2]),f&&(this[0]=f,this.length=1),this}return a.nodeType?(this[0]=a,this.length=1,this):r.isFunction(a)?void 0!==c.ready?c.ready(a):a(r):r.makeArray(a,this)};H.prototype=r.fn,F=r(d);var I=/^(?:parents|prev(?:Until|All))/,J={children:!0,contents:!0,next:!0,prev:!0};r.fn.extend({has:function(a){var b=r(a,this),c=b.length;return this.filter(function(){for(var a=0;a<c;a++)if(r.contains(this,b[a]))return!0})},closest:function(a,b){var c,d=0,e=this.length,f=[],g="string"!=typeof a&&r(a);if(!A.test(a))for(;d<e;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&r.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?r.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?i.call(r(a),this[0]):i.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(r.uniqueSort(r.merge(this.get(),r(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function K(a,b){while((a=a[b])&&1!==a.nodeType);return a}r.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return y(a,"parentNode")},parentsUntil:function(a,b,c){return y(a,"parentNode",c)},next:function(a){return K(a,"nextSibling")},prev:function(a){return K(a,"previousSibling")},nextAll:function(a){return y(a,"nextSibling")},prevAll:function(a){return y(a,"previousSibling")},nextUntil:function(a,b,c){return y(a,"nextSibling",c)},prevUntil:function(a,b,c){return y(a,"previousSibling",c)},siblings:function(a){return z((a.parentNode||{}).firstChild,a)},children:function(a){return z(a.firstChild)},contents:function(a){return B(a,"iframe")?a.contentDocument:(B(a,"template")&&(a=a.content||a),r.merge([],a.childNodes))}},function(a,b){r.fn[a]=function(c,d){var e=r.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=r.filter(d,e)),this.length>1&&(J[a]||r.uniqueSort(e),I.test(a)&&e.reverse()),this.pushStack(e)}});var L=/[^\x20\t\r\n\f]+/g;function M(a){var b={};return r.each(a.match(L)||[],function(a,c){b[c]=!0}),b}r.Callbacks=function(a){a="string"==typeof a?M(a):r.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=e||a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h<f.length)f[h].apply(c[0],c[1])===!1&&a.stopOnFalse&&(h=f.length,c=!1)}a.memory||(c=!1),b=!1,e&&(f=c?[]:"")},j={add:function(){return f&&(c&&!b&&(h=f.length-1,g.push(c)),function d(b){r.each(b,function(b,c){r.isFunction(c)?a.unique&&j.has(c)||f.push(c):c&&c.length&&"string"!==r.type(c)&&d(c)})}(arguments),c&&!b&&i()),this},remove:function(){return r.each(arguments,function(a,b){var c;while((c=r.inArray(b,f,c))>-1)f.splice(c,1),c<=h&&h--}),this},has:function(a){return a?r.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=g=[],c||b||(f=c=""),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j};function N(a){return a}function O(a){throw a}function P(a,b,c,d){var e;try{a&&r.isFunction(e=a.promise)?e.call(a).done(b).fail(c):a&&r.isFunction(e=a.then)?e.call(a,b,c):b.apply(void 0,[a].slice(d))}catch(a){c.apply(void 0,[a])}}r.extend({Deferred:function(b){var c=[["notify","progress",r.Callbacks("memory"),r.Callbacks("memory"),2],["resolve","done",r.Callbacks("once memory"),r.Callbacks("once memory"),0,"resolved"],["reject","fail",r.Callbacks("once memory"),r.Callbacks("once memory"),1,"rejected"]],d="pending",e={state:function(){return d},always:function(){return f.done(arguments).fail(arguments),this},"catch":function(a){return e.then(null,a)},pipe:function(){var a=arguments;return r.Deferred(function(b){r.each(c,function(c,d){var e=r.isFunction(a[d[4]])&&a[d[4]];f[d[1]](function(){var a=e&&e.apply(this,arguments);a&&r.isFunction(a.promise)?a.promise().progress(b.notify).done(b.resolve).fail(b.reject):b[d[0]+"With"](this,e?[a]:arguments)})}),a=null}).promise()},then:function(b,d,e){var f=0;function g(b,c,d,e){return function(){var h=this,i=arguments,j=function(){var a,j;if(!(b<f)){if(a=d.apply(h,i),a===c.promise())throw new TypeError("Thenable self-resolution");j=a&&("object"==typeof a||"function"==typeof a)&&a.then,r.isFunction(j)?e?j.call(a,g(f,c,N,e),g(f,c,O,e)):(f++,j.call(a,g(f,c,N,e),g(f,c,O,e),g(f,c,N,c.notifyWith))):(d!==N&&(h=void 0,i=[a]),(e||c.resolveWith)(h,i))}},k=e?j:function(){try{j()}catch(a){r.Deferred.exceptionHook&&r.Deferred.exceptionHook(a,k.stackTrace),b+1>=f&&(d!==O&&(h=void 0,i=[a]),c.rejectWith(h,i))}};b?k():(r.Deferred.getStackHook&&(k.stackTrace=r.Deferred.getStackHook()),a.setTimeout(k))}}return r.Deferred(function(a){c[0][3].add(g(0,a,r.isFunction(e)?e:N,a.notifyWith)),c[1][3].add(g(0,a,r.isFunction(b)?b:N)),c[2][3].add(g(0,a,r.isFunction(d)?d:O))}).promise()},promise:function(a){return null!=a?r.extend(a,e):e}},f={};return r.each(c,function(a,b){var g=b[2],h=b[5];e[b[1]]=g.add,h&&g.add(function(){d=h},c[3-a][2].disable,c[0][2].lock),g.add(b[3].fire),f[b[0]]=function(){return f[b[0]+"With"](this===f?void 0:this,arguments),this},f[b[0]+"With"]=g.fireWith}),e.promise(f),b&&b.call(f,f),f},when:function(a){var b=arguments.length,c=b,d=Array(c),e=f.call(arguments),g=r.Deferred(),h=function(a){return function(c){d[a]=this,e[a]=arguments.length>1?f.call(arguments):c,--b||g.resolveWith(d,e)}};if(b<=1&&(P(a,g.done(h(c)).resolve,g.reject,!b),"pending"===g.state()||r.isFunction(e[c]&&e[c].then)))return g.then();while(c--)P(e[c],h(c),g.reject);return g.promise()}});var Q=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;r.Deferred.exceptionHook=function(b,c){a.console&&a.console.warn&&b&&Q.test(b.name)&&a.console.warn("jQuery.Deferred exception: "+b.message,b.stack,c)},r.readyException=function(b){a.setTimeout(function(){throw b})};var R=r.Deferred();r.fn.ready=function(a){return R.then(a)["catch"](function(a){r.readyException(a)}),this},r.extend({isReady:!1,readyWait:1,ready:function(a){(a===!0?--r.readyWait:r.isReady)||(r.isReady=!0,a!==!0&&--r.readyWait>0||R.resolveWith(d,[r]))}}),r.ready.then=R.then;function S(){d.removeEventListener("DOMContentLoaded",S),
+a.removeEventListener("load",S),r.ready()}"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll?a.setTimeout(r.ready):(d.addEventListener("DOMContentLoaded",S),a.addEventListener("load",S));var T=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===r.type(c)){e=!0;for(h in c)T(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,r.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(r(a),c)})),b))for(;h<i;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},U=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function V(){this.expando=r.expando+V.uid++}V.uid=1,V.prototype={cache:function(a){var b=a[this.expando];return b||(b={},U(a)&&(a.nodeType?a[this.expando]=b:Object.defineProperty(a,this.expando,{value:b,configurable:!0}))),b},set:function(a,b,c){var d,e=this.cache(a);if("string"==typeof b)e[r.camelCase(b)]=c;else for(d in b)e[r.camelCase(d)]=b[d];return e},get:function(a,b){return void 0===b?this.cache(a):a[this.expando]&&a[this.expando][r.camelCase(b)]},access:function(a,b,c){return void 0===b||b&&"string"==typeof b&&void 0===c?this.get(a,b):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d=a[this.expando];if(void 0!==d){if(void 0!==b){Array.isArray(b)?b=b.map(r.camelCase):(b=r.camelCase(b),b=b in d?[b]:b.match(L)||[]),c=b.length;while(c--)delete d[b[c]]}(void 0===b||r.isEmptyObject(d))&&(a.nodeType?a[this.expando]=void 0:delete a[this.expando])}},hasData:function(a){var b=a[this.expando];return void 0!==b&&!r.isEmptyObject(b)}};var W=new V,X=new V,Y=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Z=/[A-Z]/g;function $(a){return"true"===a||"false"!==a&&("null"===a?null:a===+a+""?+a:Y.test(a)?JSON.parse(a):a)}function _(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(Z,"-$&").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c=$(c)}catch(e){}X.set(a,b,c)}else c=void 0;return c}r.extend({hasData:function(a){return X.hasData(a)||W.hasData(a)},data:function(a,b,c){return X.access(a,b,c)},removeData:function(a,b){X.remove(a,b)},_data:function(a,b,c){return W.access(a,b,c)},_removeData:function(a,b){W.remove(a,b)}}),r.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=X.get(f),1===f.nodeType&&!W.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=r.camelCase(d.slice(5)),_(f,d,e[d])));W.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){X.set(this,a)}):T(this,function(b){var c;if(f&&void 0===b){if(c=X.get(f,a),void 0!==c)return c;if(c=_(f,a),void 0!==c)return c}else this.each(function(){X.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){X.remove(this,a)})}}),r.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=W.get(a,b),c&&(!d||Array.isArray(c)?d=W.access(a,b,r.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=r.queue(a,b),d=c.length,e=c.shift(),f=r._queueHooks(a,b),g=function(){r.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return W.get(a,c)||W.access(a,c,{empty:r.Callbacks("once memory").add(function(){W.remove(a,[b+"queue",c])})})}}),r.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?r.queue(this[0],a):void 0===b?this:this.each(function(){var c=r.queue(this,a,b);r._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&r.dequeue(this,a)})},dequeue:function(a){return this.each(function(){r.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=r.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=W.get(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var aa=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ba=new RegExp("^(?:([+-])=|)("+aa+")([a-z%]*)$","i"),ca=["Top","Right","Bottom","Left"],da=function(a,b){return a=b||a,"none"===a.style.display||""===a.style.display&&r.contains(a.ownerDocument,a)&&"none"===r.css(a,"display")},ea=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};function fa(a,b,c,d){var e,f=1,g=20,h=d?function(){return d.cur()}:function(){return r.css(a,b,"")},i=h(),j=c&&c[3]||(r.cssNumber[b]?"":"px"),k=(r.cssNumber[b]||"px"!==j&&+i)&&ba.exec(r.css(a,b));if(k&&k[3]!==j){j=j||k[3],c=c||[],k=+i||1;do f=f||".5",k/=f,r.style(a,b,k+j);while(f!==(f=h()/i)&&1!==f&&--g)}return c&&(k=+k||+i||0,e=c[1]?k+(c[1]+1)*c[2]:+c[2],d&&(d.unit=j,d.start=k,d.end=e)),e}var ga={};function ha(a){var b,c=a.ownerDocument,d=a.nodeName,e=ga[d];return e?e:(b=c.body.appendChild(c.createElement(d)),e=r.css(b,"display"),b.parentNode.removeChild(b),"none"===e&&(e="block"),ga[d]=e,e)}function ia(a,b){for(var c,d,e=[],f=0,g=a.length;f<g;f++)d=a[f],d.style&&(c=d.style.display,b?("none"===c&&(e[f]=W.get(d,"display")||null,e[f]||(d.style.display="")),""===d.style.display&&da(d)&&(e[f]=ha(d))):"none"!==c&&(e[f]="none",W.set(d,"display",c)));for(f=0;f<g;f++)null!=e[f]&&(a[f].style.display=e[f]);return a}r.fn.extend({show:function(){return ia(this,!0)},hide:function(){return ia(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){da(this)?r(this).show():r(this).hide()})}});var ja=/^(?:checkbox|radio)$/i,ka=/<([a-z][^\/\0>\x20\t\r\n\f]+)/i,la=/^$|\/(?:java|ecma)script/i,ma={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};ma.optgroup=ma.option,ma.tbody=ma.tfoot=ma.colgroup=ma.caption=ma.thead,ma.th=ma.td;function na(a,b){var c;return c="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):[],void 0===b||b&&B(a,b)?r.merge([a],c):c}function oa(a,b){for(var c=0,d=a.length;c<d;c++)W.set(a[c],"globalEval",!b||W.get(b[c],"globalEval"))}var pa=/<|&#?\w+;/;function qa(a,b,c,d,e){for(var f,g,h,i,j,k,l=b.createDocumentFragment(),m=[],n=0,o=a.length;n<o;n++)if(f=a[n],f||0===f)if("object"===r.type(f))r.merge(m,f.nodeType?[f]:f);else if(pa.test(f)){g=g||l.appendChild(b.createElement("div")),h=(ka.exec(f)||["",""])[1].toLowerCase(),i=ma[h]||ma._default,g.innerHTML=i[1]+r.htmlPrefilter(f)+i[2],k=i[0];while(k--)g=g.lastChild;r.merge(m,g.childNodes),g=l.firstChild,g.textContent=""}else m.push(b.createTextNode(f));l.textContent="",n=0;while(f=m[n++])if(d&&r.inArray(f,d)>-1)e&&e.push(f);else if(j=r.contains(f.ownerDocument,f),g=na(l.appendChild(f),"script"),j&&oa(g),c){k=0;while(f=g[k++])la.test(f.type||"")&&c.push(f)}return l}!function(){var a=d.createDocumentFragment(),b=a.appendChild(d.createElement("div")),c=d.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),o.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="<textarea>x</textarea>",o.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var ra=d.documentElement,sa=/^key/,ta=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,ua=/^([^.]*)(?:\.(.+)|)/;function va(){return!0}function wa(){return!1}function xa(){try{return d.activeElement}catch(a){}}function ya(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)ya(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=wa;else if(!e)return a;return 1===f&&(g=e,e=function(a){return r().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=r.guid++)),a.each(function(){r.event.add(this,b,e,d,c)})}r.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=W.get(a);if(q){c.handler&&(f=c,c=f.handler,e=f.selector),e&&r.find.matchesSelector(ra,e),c.guid||(c.guid=r.guid++),(i=q.events)||(i=q.events={}),(g=q.handle)||(g=q.handle=function(b){return"undefined"!=typeof r&&r.event.triggered!==b.type?r.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(L)||[""],j=b.length;while(j--)h=ua.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n&&(l=r.event.special[n]||{},n=(e?l.delegateType:l.bindType)||n,l=r.event.special[n]||{},k=r.extend({type:n,origType:p,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&r.expr.match.needsContext.test(e),namespace:o.join(".")},f),(m=i[n])||(m=i[n]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,o,g)!==!1||a.addEventListener&&a.addEventListener(n,g)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),r.event.global[n]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=W.hasData(a)&&W.get(a);if(q&&(i=q.events)){b=(b||"").match(L)||[""],j=b.length;while(j--)if(h=ua.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n){l=r.event.special[n]||{},n=(d?l.delegateType:l.bindType)||n,m=i[n]||[],h=h[2]&&new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&p!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,o,q.handle)!==!1||r.removeEvent(a,n,q.handle),delete i[n])}else for(n in i)r.event.remove(a,n+b[j],c,d,!0);r.isEmptyObject(i)&&W.remove(a,"handle events")}},dispatch:function(a){var b=r.event.fix(a),c,d,e,f,g,h,i=new Array(arguments.length),j=(W.get(this,"events")||{})[b.type]||[],k=r.event.special[b.type]||{};for(i[0]=b,c=1;c<arguments.length;c++)i[c]=arguments[c];if(b.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,b)!==!1){h=r.event.handlers.call(this,b,j),c=0;while((f=h[c++])&&!b.isPropagationStopped()){b.currentTarget=f.elem,d=0;while((g=f.handlers[d++])&&!b.isImmediatePropagationStopped())b.rnamespace&&!b.rnamespace.test(g.namespace)||(b.handleObj=g,b.data=g.data,e=((r.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==e&&(b.result=e)===!1&&(b.preventDefault(),b.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,b),b.result}},handlers:function(a,b){var c,d,e,f,g,h=[],i=b.delegateCount,j=a.target;if(i&&j.nodeType&&!("click"===a.type&&a.button>=1))for(;j!==this;j=j.parentNode||this)if(1===j.nodeType&&("click"!==a.type||j.disabled!==!0)){for(f=[],g={},c=0;c<i;c++)d=b[c],e=d.selector+" ",void 0===g[e]&&(g[e]=d.needsContext?r(e,this).index(j)>-1:r.find(e,this,null,[j]).length),g[e]&&f.push(d);f.length&&h.push({elem:j,handlers:f})}return j=this,i<b.length&&h.push({elem:j,handlers:b.slice(i)}),h},addProp:function(a,b){Object.defineProperty(r.Event.prototype,a,{enumerable:!0,configurable:!0,get:r.isFunction(b)?function(){if(this.originalEvent)return b(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[a]},set:function(b){Object.defineProperty(this,a,{enumerable:!0,configurable:!0,writable:!0,value:b})}})},fix:function(a){return a[r.expando]?a:new r.Event(a)},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==xa()&&this.focus)return this.focus(),!1},delegateType:"focusin"},blur:{trigger:function(){if(this===xa()&&this.blur)return this.blur(),!1},delegateType:"focusout"},click:{trigger:function(){if("checkbox"===this.type&&this.click&&B(this,"input"))return this.click(),!1},_default:function(a){return B(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}}},r.removeEvent=function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c)},r.Event=function(a,b){return this instanceof r.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?va:wa,this.target=a.target&&3===a.target.nodeType?a.target.parentNode:a.target,this.currentTarget=a.currentTarget,this.relatedTarget=a.relatedTarget):this.type=a,b&&r.extend(this,b),this.timeStamp=a&&a.timeStamp||r.now(),void(this[r.expando]=!0)):new r.Event(a,b)},r.Event.prototype={constructor:r.Event,isDefaultPrevented:wa,isPropagationStopped:wa,isImmediatePropagationStopped:wa,isSimulated:!1,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=va,a&&!this.isSimulated&&a.preventDefault()},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=va,a&&!this.isSimulated&&a.stopPropagation()},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=va,a&&!this.isSimulated&&a.stopImmediatePropagation(),this.stopPropagation()}},r.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(a){var b=a.button;return null==a.which&&sa.test(a.type)?null!=a.charCode?a.charCode:a.keyCode:!a.which&&void 0!==b&&ta.test(a.type)?1&b?1:2&b?3:4&b?2:0:a.which}},r.event.addProp),r.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){r.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return e&&(e===d||r.contains(d,e))||(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),r.fn.extend({on:function(a,b,c,d){return ya(this,a,b,c,d)},one:function(a,b,c,d){return ya(this,a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,r(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return b!==!1&&"function"!=typeof b||(c=b,b=void 0),c===!1&&(c=wa),this.each(function(){r.event.remove(this,a,c,b)})}});var za=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,Aa=/<script|<style|<link/i,Ba=/checked\s*(?:[^=]|=\s*.checked.)/i,Ca=/^true\/(.*)/,Da=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Ea(a,b){return B(a,"table")&&B(11!==b.nodeType?b:b.firstChild,"tr")?r(">tbody",a)[0]||a:a}function Fa(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function Ga(a){var b=Ca.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Ha(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(W.hasData(a)&&(f=W.access(a),g=W.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;c<d;c++)r.event.add(b,e,j[e][c])}X.hasData(a)&&(h=X.access(a),i=r.extend({},h),X.set(b,i))}}function Ia(a,b){var c=b.nodeName.toLowerCase();"input"===c&&ja.test(a.type)?b.checked=a.checked:"input"!==c&&"textarea"!==c||(b.defaultValue=a.defaultValue)}function Ja(a,b,c,d){b=g.apply([],b);var e,f,h,i,j,k,l=0,m=a.length,n=m-1,q=b[0],s=r.isFunction(q);if(s||m>1&&"string"==typeof q&&!o.checkClone&&Ba.test(q))return a.each(function(e){var f=a.eq(e);s&&(b[0]=q.call(this,e,f.html())),Ja(f,b,c,d)});if(m&&(e=qa(b,a[0].ownerDocument,!1,a,d),f=e.firstChild,1===e.childNodes.length&&(e=f),f||d)){for(h=r.map(na(e,"script"),Fa),i=h.length;l<m;l++)j=e,l!==n&&(j=r.clone(j,!0,!0),i&&r.merge(h,na(j,"script"))),c.call(a[l],j,l);if(i)for(k=h[h.length-1].ownerDocument,r.map(h,Ga),l=0;l<i;l++)j=h[l],la.test(j.type||"")&&!W.access(j,"globalEval")&&r.contains(k,j)&&(j.src?r._evalUrl&&r._evalUrl(j.src):p(j.textContent.replace(Da,""),k))}return a}function Ka(a,b,c){for(var d,e=b?r.filter(b,a):a,f=0;null!=(d=e[f]);f++)c||1!==d.nodeType||r.cleanData(na(d)),d.parentNode&&(c&&r.contains(d.ownerDocument,d)&&oa(na(d,"script")),d.parentNode.removeChild(d));return a}r.extend({htmlPrefilter:function(a){return a.replace(za,"<$1></$2>")},clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=r.contains(a.ownerDocument,a);if(!(o.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||r.isXMLDoc(a)))for(g=na(h),f=na(a),d=0,e=f.length;d<e;d++)Ia(f[d],g[d]);if(b)if(c)for(f=f||na(a),g=g||na(h),d=0,e=f.length;d<e;d++)Ha(f[d],g[d]);else Ha(a,h);return g=na(h,"script"),g.length>0&&oa(g,!i&&na(a,"script")),h},cleanData:function(a){for(var b,c,d,e=r.event.special,f=0;void 0!==(c=a[f]);f++)if(U(c)){if(b=c[W.expando]){if(b.events)for(d in b.events)e[d]?r.event.remove(c,d):r.removeEvent(c,d,b.handle);c[W.expando]=void 0}c[X.expando]&&(c[X.expando]=void 0)}}}),r.fn.extend({detach:function(a){return Ka(this,a,!0)},remove:function(a){return Ka(this,a)},text:function(a){return T(this,function(a){return void 0===a?r.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=a)})},null,a,arguments.length)},append:function(){return Ja(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ea(this,a);b.appendChild(a)}})},prepend:function(){return Ja(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ea(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return Ja(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return Ja(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(r.cleanData(na(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null!=a&&a,b=null==b?a:b,this.map(function(){return r.clone(this,a,b)})},html:function(a){return T(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!Aa.test(a)&&!ma[(ka.exec(a)||["",""])[1].toLowerCase()]){a=r.htmlPrefilter(a);try{for(;c<d;c++)b=this[c]||{},1===b.nodeType&&(r.cleanData(na(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=[];return Ja(this,arguments,function(b){var c=this.parentNode;r.inArray(this,a)<0&&(r.cleanData(na(this)),c&&c.replaceChild(b,this))},a)}}),r.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){r.fn[a]=function(a){for(var c,d=[],e=r(a),f=e.length-1,g=0;g<=f;g++)c=g===f?this:this.clone(!0),r(e[g])[b](c),h.apply(d,c.get());return this.pushStack(d)}});var La=/^margin/,Ma=new RegExp("^("+aa+")(?!px)[a-z%]+$","i"),Na=function(b){var c=b.ownerDocument.defaultView;return c&&c.opener||(c=a),c.getComputedStyle(b)};!function(){function b(){if(i){i.style.cssText="box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%",i.innerHTML="",ra.appendChild(h);var b=a.getComputedStyle(i);c="1%"!==b.top,g="2px"===b.marginLeft,e="4px"===b.width,i.style.marginRight="50%",f="4px"===b.marginRight,ra.removeChild(h),i=null}}var c,e,f,g,h=d.createElement("div"),i=d.createElement("div");i.style&&(i.style.backgroundClip="content-box",i.cloneNode(!0).style.backgroundClip="",o.clearCloneStyle="content-box"===i.style.backgroundClip,h.style.cssText="border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",h.appendChild(i),r.extend(o,{pixelPosition:function(){return b(),c},boxSizingReliable:function(){return b(),e},pixelMarginRight:function(){return b(),f},reliableMarginLeft:function(){return b(),g}}))}();function Oa(a,b,c){var d,e,f,g,h=a.style;return c=c||Na(a),c&&(g=c.getPropertyValue(b)||c[b],""!==g||r.contains(a.ownerDocument,a)||(g=r.style(a,b)),!o.pixelMarginRight()&&Ma.test(g)&&La.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0!==g?g+"":g}function Pa(a,b){return{get:function(){return a()?void delete this.get:(this.get=b).apply(this,arguments)}}}var Qa=/^(none|table(?!-c[ea]).+)/,Ra=/^--/,Sa={position:"absolute",visibility:"hidden",display:"block"},Ta={letterSpacing:"0",fontWeight:"400"},Ua=["Webkit","Moz","ms"],Va=d.createElement("div").style;function Wa(a){if(a in Va)return a;var b=a[0].toUpperCase()+a.slice(1),c=Ua.length;while(c--)if(a=Ua[c]+b,a in Va)return a}function Xa(a){var b=r.cssProps[a];return b||(b=r.cssProps[a]=Wa(a)||a),b}function Ya(a,b,c){var d=ba.exec(b);return d?Math.max(0,d[2]-(c||0))+(d[3]||"px"):b}function Za(a,b,c,d,e){var f,g=0;for(f=c===(d?"border":"content")?4:"width"===b?1:0;f<4;f+=2)"margin"===c&&(g+=r.css(a,c+ca[f],!0,e)),d?("content"===c&&(g-=r.css(a,"padding"+ca[f],!0,e)),"margin"!==c&&(g-=r.css(a,"border"+ca[f]+"Width",!0,e))):(g+=r.css(a,"padding"+ca[f],!0,e),"padding"!==c&&(g+=r.css(a,"border"+ca[f]+"Width",!0,e)));return g}function $a(a,b,c){var d,e=Na(a),f=Oa(a,b,e),g="border-box"===r.css(a,"boxSizing",!1,e);return Ma.test(f)?f:(d=g&&(o.boxSizingReliable()||f===a.style[b]),"auto"===f&&(f=a["offset"+b[0].toUpperCase()+b.slice(1)]),f=parseFloat(f)||0,f+Za(a,b,c||(g?"border":"content"),d,e)+"px")}r.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Oa(a,"opacity");return""===c?"1":c}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":"cssFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=r.camelCase(b),i=Ra.test(b),j=a.style;return i||(b=Xa(h)),g=r.cssHooks[b]||r.cssHooks[h],void 0===c?g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:j[b]:(f=typeof c,"string"===f&&(e=ba.exec(c))&&e[1]&&(c=fa(a,b,e),f="number"),null!=c&&c===c&&("number"===f&&(c+=e&&e[3]||(r.cssNumber[h]?"":"px")),o.clearCloneStyle||""!==c||0!==b.indexOf("background")||(j[b]="inherit"),g&&"set"in g&&void 0===(c=g.set(a,c,d))||(i?j.setProperty(b,c):j[b]=c)),void 0)}},css:function(a,b,c,d){var e,f,g,h=r.camelCase(b),i=Ra.test(b);return i||(b=Xa(h)),g=r.cssHooks[b]||r.cssHooks[h],g&&"get"in g&&(e=g.get(a,!0,c)),void 0===e&&(e=Oa(a,b,d)),"normal"===e&&b in Ta&&(e=Ta[b]),""===c||c?(f=parseFloat(e),c===!0||isFinite(f)?f||0:e):e}}),r.each(["height","width"],function(a,b){r.cssHooks[b]={get:function(a,c,d){if(c)return!Qa.test(r.css(a,"display"))||a.getClientRects().length&&a.getBoundingClientRect().width?$a(a,b,d):ea(a,Sa,function(){return $a(a,b,d)})},set:function(a,c,d){var e,f=d&&Na(a),g=d&&Za(a,b,d,"border-box"===r.css(a,"boxSizing",!1,f),f);return g&&(e=ba.exec(c))&&"px"!==(e[3]||"px")&&(a.style[b]=c,c=r.css(a,b)),Ya(a,c,g)}}}),r.cssHooks.marginLeft=Pa(o.reliableMarginLeft,function(a,b){if(b)return(parseFloat(Oa(a,"marginLeft"))||a.getBoundingClientRect().left-ea(a,{marginLeft:0},function(){return a.getBoundingClientRect().left}))+"px"}),r.each({margin:"",padding:"",border:"Width"},function(a,b){r.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];d<4;d++)e[a+ca[d]+b]=f[d]||f[d-2]||f[0];return e}},La.test(a)||(r.cssHooks[a+b].set=Ya)}),r.fn.extend({css:function(a,b){return T(this,function(a,b,c){var d,e,f={},g=0;if(Array.isArray(b)){for(d=Na(a),e=b.length;g<e;g++)f[b[g]]=r.css(a,b[g],!1,d);return f}return void 0!==c?r.style(a,b,c):r.css(a,b)},a,b,arguments.length>1)}});function _a(a,b,c,d,e){return new _a.prototype.init(a,b,c,d,e)}r.Tween=_a,_a.prototype={constructor:_a,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||r.easing._default,this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(r.cssNumber[c]?"":"px")},cur:function(){var a=_a.propHooks[this.prop];return a&&a.get?a.get(this):_a.propHooks._default.get(this)},run:function(a){var b,c=_a.propHooks[this.prop];return this.options.duration?this.pos=b=r.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):_a.propHooks._default.set(this),this}},_a.prototype.init.prototype=_a.prototype,_a.propHooks={_default:{get:function(a){var b;return 1!==a.elem.nodeType||null!=a.elem[a.prop]&&null==a.elem.style[a.prop]?a.elem[a.prop]:(b=r.css(a.elem,a.prop,""),b&&"auto"!==b?b:0)},set:function(a){r.fx.step[a.prop]?r.fx.step[a.prop](a):1!==a.elem.nodeType||null==a.elem.style[r.cssProps[a.prop]]&&!r.cssHooks[a.prop]?a.elem[a.prop]=a.now:r.style(a.elem,a.prop,a.now+a.unit)}}},_a.propHooks.scrollTop=_a.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},r.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2},_default:"swing"},r.fx=_a.prototype.init,r.fx.step={};var ab,bb,cb=/^(?:toggle|show|hide)$/,db=/queueHooks$/;function eb(){bb&&(d.hidden===!1&&a.requestAnimationFrame?a.requestAnimationFrame(eb):a.setTimeout(eb,r.fx.interval),r.fx.tick())}function fb(){return a.setTimeout(function(){ab=void 0}),ab=r.now()}function gb(a,b){var c,d=0,e={height:a};for(b=b?1:0;d<4;d+=2-b)c=ca[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function hb(a,b,c){for(var d,e=(kb.tweeners[b]||[]).concat(kb.tweeners["*"]),f=0,g=e.length;f<g;f++)if(d=e[f].call(c,b,a))return d}function ib(a,b,c){var d,e,f,g,h,i,j,k,l="width"in b||"height"in b,m=this,n={},o=a.style,p=a.nodeType&&da(a),q=W.get(a,"fxshow");c.queue||(g=r._queueHooks(a,"fx"),null==g.unqueued&&(g.unqueued=0,h=g.empty.fire,g.empty.fire=function(){g.unqueued||h()}),g.unqueued++,m.always(function(){m.always(function(){g.unqueued--,r.queue(a,"fx").length||g.empty.fire()})}));for(d in b)if(e=b[d],cb.test(e)){if(delete b[d],f=f||"toggle"===e,e===(p?"hide":"show")){if("show"!==e||!q||void 0===q[d])continue;p=!0}n[d]=q&&q[d]||r.style(a,d)}if(i=!r.isEmptyObject(b),i||!r.isEmptyObject(n)){l&&1===a.nodeType&&(c.overflow=[o.overflow,o.overflowX,o.overflowY],j=q&&q.display,null==j&&(j=W.get(a,"display")),k=r.css(a,"display"),"none"===k&&(j?k=j:(ia([a],!0),j=a.style.display||j,k=r.css(a,"display"),ia([a]))),("inline"===k||"inline-block"===k&&null!=j)&&"none"===r.css(a,"float")&&(i||(m.done(function(){o.display=j}),null==j&&(k=o.display,j="none"===k?"":k)),o.display="inline-block")),c.overflow&&(o.overflow="hidden",m.always(function(){o.overflow=c.overflow[0],o.overflowX=c.overflow[1],o.overflowY=c.overflow[2]})),i=!1;for(d in n)i||(q?"hidden"in q&&(p=q.hidden):q=W.access(a,"fxshow",{display:j}),f&&(q.hidden=!p),p&&ia([a],!0),m.done(function(){p||ia([a]),W.remove(a,"fxshow");for(d in n)r.style(a,d,n[d])})),i=hb(p?q[d]:0,d,m),d in q||(q[d]=i.start,p&&(i.end=i.start,i.start=0))}}function jb(a,b){var c,d,e,f,g;for(c in a)if(d=r.camelCase(c),e=b[d],f=a[c],Array.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=r.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function kb(a,b,c){var d,e,f=0,g=kb.prefilters.length,h=r.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=ab||fb(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;g<i;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),f<1&&i?c:(i||h.notifyWith(a,[j,1,0]),h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:r.extend({},b),opts:r.extend(!0,{specialEasing:{},easing:r.easing._default},c),originalProperties:b,originalOptions:c,startTime:ab||fb(),duration:c.duration,tweens:[],createTween:function(b,c){var d=r.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;c<d;c++)j.tweens[c].run(1);return b?(h.notifyWith(a,[j,1,0]),h.resolveWith(a,[j,b])):h.rejectWith(a,[j,b]),this}}),k=j.props;for(jb(k,j.opts.specialEasing);f<g;f++)if(d=kb.prefilters[f].call(j,a,k,j.opts))return r.isFunction(d.stop)&&(r._queueHooks(j.elem,j.opts.queue).stop=r.proxy(d.stop,d)),d;return r.map(k,hb,j),r.isFunction(j.opts.start)&&j.opts.start.call(a,j),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always),r.fx.timer(r.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j}r.Animation=r.extend(kb,{tweeners:{"*":[function(a,b){var c=this.createTween(a,b);return fa(c.elem,a,ba.exec(b),c),c}]},tweener:function(a,b){r.isFunction(a)?(b=a,a=["*"]):a=a.match(L);for(var c,d=0,e=a.length;d<e;d++)c=a[d],kb.tweeners[c]=kb.tweeners[c]||[],kb.tweeners[c].unshift(b)},prefilters:[ib],prefilter:function(a,b){b?kb.prefilters.unshift(a):kb.prefilters.push(a)}}),r.speed=function(a,b,c){var d=a&&"object"==typeof a?r.extend({},a):{complete:c||!c&&b||r.isFunction(a)&&a,duration:a,easing:c&&b||b&&!r.isFunction(b)&&b};return r.fx.off?d.duration=0:"number"!=typeof d.duration&&(d.duration in r.fx.speeds?d.duration=r.fx.speeds[d.duration]:d.duration=r.fx.speeds._default),null!=d.queue&&d.queue!==!0||(d.queue="fx"),d.old=d.complete,d.complete=function(){r.isFunction(d.old)&&d.old.call(this),d.queue&&r.dequeue(this,d.queue)},d},r.fn.extend({fadeTo:function(a,b,c,d){return this.filter(da).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=r.isEmptyObject(a),f=r.speed(b,c,d),g=function(){var b=kb(this,r.extend({},a),f);(e||W.get(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=r.timers,g=W.get(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&db.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));!b&&c||r.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=W.get(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=r.timers,g=d?d.length:0;for(c.finish=!0,r.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;b<g;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),r.each(["toggle","show","hide"],function(a,b){var c=r.fn[b];r.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(gb(b,!0),a,d,e)}}),r.each({slideDown:gb("show"),slideUp:gb("hide"),slideToggle:gb("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){r.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),r.timers=[],r.fx.tick=function(){var a,b=0,c=r.timers;for(ab=r.now();b<c.length;b++)a=c[b],a()||c[b]!==a||c.splice(b--,1);c.length||r.fx.stop(),ab=void 0},r.fx.timer=function(a){r.timers.push(a),r.fx.start()},r.fx.interval=13,r.fx.start=function(){bb||(bb=!0,eb())},r.fx.stop=function(){bb=null},r.fx.speeds={slow:600,fast:200,_default:400},r.fn.delay=function(b,c){return b=r.fx?r.fx.speeds[b]||b:b,c=c||"fx",this.queue(c,function(c,d){var e=a.setTimeout(c,b);d.stop=function(){a.clearTimeout(e)}})},function(){var a=d.createElement("input"),b=d.createElement("select"),c=b.appendChild(d.createElement("option"));a.type="checkbox",o.checkOn=""!==a.value,o.optSelected=c.selected,a=d.createElement("input"),a.value="t",a.type="radio",o.radioValue="t"===a.value}();var lb,mb=r.expr.attrHandle;r.fn.extend({attr:function(a,b){return T(this,r.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){r.removeAttr(this,a)})}}),r.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return"undefined"==typeof a.getAttribute?r.prop(a,b,c):(1===f&&r.isXMLDoc(a)||(e=r.attrHooks[b.toLowerCase()]||(r.expr.match.bool.test(b)?lb:void 0)),void 0!==c?null===c?void r.removeAttr(a,b):e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:(a.setAttribute(b,c+""),c):e&&"get"in e&&null!==(d=e.get(a,b))?d:(d=r.find.attr(a,b),
+null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!o.radioValue&&"radio"===b&&B(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}},removeAttr:function(a,b){var c,d=0,e=b&&b.match(L);if(e&&1===a.nodeType)while(c=e[d++])a.removeAttribute(c)}}),lb={set:function(a,b,c){return b===!1?r.removeAttr(a,c):a.setAttribute(c,c),c}},r.each(r.expr.match.bool.source.match(/\w+/g),function(a,b){var c=mb[b]||r.find.attr;mb[b]=function(a,b,d){var e,f,g=b.toLowerCase();return d||(f=mb[g],mb[g]=e,e=null!=c(a,b,d)?g:null,mb[g]=f),e}});var nb=/^(?:input|select|textarea|button)$/i,ob=/^(?:a|area)$/i;r.fn.extend({prop:function(a,b){return T(this,r.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[r.propFix[a]||a]})}}),r.extend({prop:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return 1===f&&r.isXMLDoc(a)||(b=r.propFix[b]||b,e=r.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=r.find.attr(a,"tabindex");return b?parseInt(b,10):nb.test(a.nodeName)||ob.test(a.nodeName)&&a.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),o.optSelected||(r.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null},set:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}}),r.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){r.propFix[this.toLowerCase()]=this});function pb(a){var b=a.match(L)||[];return b.join(" ")}function qb(a){return a.getAttribute&&a.getAttribute("class")||""}r.fn.extend({addClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).addClass(a.call(this,b,qb(this)))});if("string"==typeof a&&a){b=a.match(L)||[];while(c=this[i++])if(e=qb(c),d=1===c.nodeType&&" "+pb(e)+" "){g=0;while(f=b[g++])d.indexOf(" "+f+" ")<0&&(d+=f+" ");h=pb(d),e!==h&&c.setAttribute("class",h)}}return this},removeClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).removeClass(a.call(this,b,qb(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof a&&a){b=a.match(L)||[];while(c=this[i++])if(e=qb(c),d=1===c.nodeType&&" "+pb(e)+" "){g=0;while(f=b[g++])while(d.indexOf(" "+f+" ")>-1)d=d.replace(" "+f+" "," ");h=pb(d),e!==h&&c.setAttribute("class",h)}}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):r.isFunction(a)?this.each(function(c){r(this).toggleClass(a.call(this,c,qb(this),b),b)}):this.each(function(){var b,d,e,f;if("string"===c){d=0,e=r(this),f=a.match(L)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else void 0!==a&&"boolean"!==c||(b=qb(this),b&&W.set(this,"__className__",b),this.setAttribute&&this.setAttribute("class",b||a===!1?"":W.get(this,"__className__")||""))})},hasClass:function(a){var b,c,d=0;b=" "+a+" ";while(c=this[d++])if(1===c.nodeType&&(" "+pb(qb(c))+" ").indexOf(b)>-1)return!0;return!1}});var rb=/\r/g;r.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=r.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,r(this).val()):a,null==e?e="":"number"==typeof e?e+="":Array.isArray(e)&&(e=r.map(e,function(a){return null==a?"":a+""})),b=r.valHooks[this.type]||r.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=r.valHooks[e.type]||r.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(rb,""):null==c?"":c)}}}),r.extend({valHooks:{option:{get:function(a){var b=r.find.attr(a,"value");return null!=b?b:pb(r.text(a))}},select:{get:function(a){var b,c,d,e=a.options,f=a.selectedIndex,g="select-one"===a.type,h=g?null:[],i=g?f+1:e.length;for(d=f<0?i:g?f:0;d<i;d++)if(c=e[d],(c.selected||d===f)&&!c.disabled&&(!c.parentNode.disabled||!B(c.parentNode,"optgroup"))){if(b=r(c).val(),g)return b;h.push(b)}return h},set:function(a,b){var c,d,e=a.options,f=r.makeArray(b),g=e.length;while(g--)d=e[g],(d.selected=r.inArray(r.valHooks.option.get(d),f)>-1)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),r.each(["radio","checkbox"],function(){r.valHooks[this]={set:function(a,b){if(Array.isArray(b))return a.checked=r.inArray(r(a).val(),b)>-1}},o.checkOn||(r.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var sb=/^(?:focusinfocus|focusoutblur)$/;r.extend(r.event,{trigger:function(b,c,e,f){var g,h,i,j,k,m,n,o=[e||d],p=l.call(b,"type")?b.type:b,q=l.call(b,"namespace")?b.namespace.split("."):[];if(h=i=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!sb.test(p+r.event.triggered)&&(p.indexOf(".")>-1&&(q=p.split("."),p=q.shift(),q.sort()),k=p.indexOf(":")<0&&"on"+p,b=b[r.expando]?b:new r.Event(p,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=q.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:r.makeArray(c,[b]),n=r.event.special[p]||{},f||!n.trigger||n.trigger.apply(e,c)!==!1)){if(!f&&!n.noBubble&&!r.isWindow(e)){for(j=n.delegateType||p,sb.test(j+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),i=h;i===(e.ownerDocument||d)&&o.push(i.defaultView||i.parentWindow||a)}g=0;while((h=o[g++])&&!b.isPropagationStopped())b.type=g>1?j:n.bindType||p,m=(W.get(h,"events")||{})[b.type]&&W.get(h,"handle"),m&&m.apply(h,c),m=k&&h[k],m&&m.apply&&U(h)&&(b.result=m.apply(h,c),b.result===!1&&b.preventDefault());return b.type=p,f||b.isDefaultPrevented()||n._default&&n._default.apply(o.pop(),c)!==!1||!U(e)||k&&r.isFunction(e[p])&&!r.isWindow(e)&&(i=e[k],i&&(e[k]=null),r.event.triggered=p,e[p](),r.event.triggered=void 0,i&&(e[k]=i)),b.result}},simulate:function(a,b,c){var d=r.extend(new r.Event,c,{type:a,isSimulated:!0});r.event.trigger(d,null,b)}}),r.fn.extend({trigger:function(a,b){return this.each(function(){r.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];if(c)return r.event.trigger(a,b,c,!0)}}),r.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(a,b){r.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),r.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),o.focusin="onfocusin"in a,o.focusin||r.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){r.event.simulate(b,a.target,r.event.fix(a))};r.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=W.access(d,b);e||d.addEventListener(a,c,!0),W.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=W.access(d,b)-1;e?W.access(d,b,e):(d.removeEventListener(a,c,!0),W.remove(d,b))}}});var tb=a.location,ub=r.now(),vb=/\?/;r.parseXML=function(b){var c;if(!b||"string"!=typeof b)return null;try{c=(new a.DOMParser).parseFromString(b,"text/xml")}catch(d){c=void 0}return c&&!c.getElementsByTagName("parsererror").length||r.error("Invalid XML: "+b),c};var wb=/\[\]$/,xb=/\r?\n/g,yb=/^(?:submit|button|image|reset|file)$/i,zb=/^(?:input|select|textarea|keygen)/i;function Ab(a,b,c,d){var e;if(Array.isArray(b))r.each(b,function(b,e){c||wb.test(a)?d(a,e):Ab(a+"["+("object"==typeof e&&null!=e?b:"")+"]",e,c,d)});else if(c||"object"!==r.type(b))d(a,b);else for(e in b)Ab(a+"["+e+"]",b[e],c,d)}r.param=function(a,b){var c,d=[],e=function(a,b){var c=r.isFunction(b)?b():b;d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(null==c?"":c)};if(Array.isArray(a)||a.jquery&&!r.isPlainObject(a))r.each(a,function(){e(this.name,this.value)});else for(c in a)Ab(c,a[c],b,e);return d.join("&")},r.fn.extend({serialize:function(){return r.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=r.prop(this,"elements");return a?r.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!r(this).is(":disabled")&&zb.test(this.nodeName)&&!yb.test(a)&&(this.checked||!ja.test(a))}).map(function(a,b){var c=r(this).val();return null==c?null:Array.isArray(c)?r.map(c,function(a){return{name:b.name,value:a.replace(xb,"\r\n")}}):{name:b.name,value:c.replace(xb,"\r\n")}}).get()}});var Bb=/%20/g,Cb=/#.*$/,Db=/([?&])_=[^&]*/,Eb=/^(.*?):[ \t]*([^\r\n]*)$/gm,Fb=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Gb=/^(?:GET|HEAD)$/,Hb=/^\/\//,Ib={},Jb={},Kb="*/".concat("*"),Lb=d.createElement("a");Lb.href=tb.href;function Mb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(L)||[];if(r.isFunction(c))while(d=f[e++])"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Nb(a,b,c,d){var e={},f=a===Jb;function g(h){var i;return e[h]=!0,r.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Ob(a,b){var c,d,e=r.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&r.extend(!0,a,d),a}function Pb(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}if(f)return f!==i[0]&&i.unshift(f),c[f]}function Qb(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}r.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:tb.href,type:"GET",isLocal:Fb.test(tb.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Kb,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":r.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Ob(Ob(a,r.ajaxSettings),b):Ob(r.ajaxSettings,a)},ajaxPrefilter:Mb(Ib),ajaxTransport:Mb(Jb),ajax:function(b,c){"object"==typeof b&&(c=b,b=void 0),c=c||{};var e,f,g,h,i,j,k,l,m,n,o=r.ajaxSetup({},c),p=o.context||o,q=o.context&&(p.nodeType||p.jquery)?r(p):r.event,s=r.Deferred(),t=r.Callbacks("once memory"),u=o.statusCode||{},v={},w={},x="canceled",y={readyState:0,getResponseHeader:function(a){var b;if(k){if(!h){h={};while(b=Eb.exec(g))h[b[1].toLowerCase()]=b[2]}b=h[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return k?g:null},setRequestHeader:function(a,b){return null==k&&(a=w[a.toLowerCase()]=w[a.toLowerCase()]||a,v[a]=b),this},overrideMimeType:function(a){return null==k&&(o.mimeType=a),this},statusCode:function(a){var b;if(a)if(k)y.always(a[y.status]);else for(b in a)u[b]=[u[b],a[b]];return this},abort:function(a){var b=a||x;return e&&e.abort(b),A(0,b),this}};if(s.promise(y),o.url=((b||o.url||tb.href)+"").replace(Hb,tb.protocol+"//"),o.type=c.method||c.type||o.method||o.type,o.dataTypes=(o.dataType||"*").toLowerCase().match(L)||[""],null==o.crossDomain){j=d.createElement("a");try{j.href=o.url,j.href=j.href,o.crossDomain=Lb.protocol+"//"+Lb.host!=j.protocol+"//"+j.host}catch(z){o.crossDomain=!0}}if(o.data&&o.processData&&"string"!=typeof o.data&&(o.data=r.param(o.data,o.traditional)),Nb(Ib,o,c,y),k)return y;l=r.event&&o.global,l&&0===r.active++&&r.event.trigger("ajaxStart"),o.type=o.type.toUpperCase(),o.hasContent=!Gb.test(o.type),f=o.url.replace(Cb,""),o.hasContent?o.data&&o.processData&&0===(o.contentType||"").indexOf("application/x-www-form-urlencoded")&&(o.data=o.data.replace(Bb,"+")):(n=o.url.slice(f.length),o.data&&(f+=(vb.test(f)?"&":"?")+o.data,delete o.data),o.cache===!1&&(f=f.replace(Db,"$1"),n=(vb.test(f)?"&":"?")+"_="+ub++ +n),o.url=f+n),o.ifModified&&(r.lastModified[f]&&y.setRequestHeader("If-Modified-Since",r.lastModified[f]),r.etag[f]&&y.setRequestHeader("If-None-Match",r.etag[f])),(o.data&&o.hasContent&&o.contentType!==!1||c.contentType)&&y.setRequestHeader("Content-Type",o.contentType),y.setRequestHeader("Accept",o.dataTypes[0]&&o.accepts[o.dataTypes[0]]?o.accepts[o.dataTypes[0]]+("*"!==o.dataTypes[0]?", "+Kb+"; q=0.01":""):o.accepts["*"]);for(m in o.headers)y.setRequestHeader(m,o.headers[m]);if(o.beforeSend&&(o.beforeSend.call(p,y,o)===!1||k))return y.abort();if(x="abort",t.add(o.complete),y.done(o.success),y.fail(o.error),e=Nb(Jb,o,c,y)){if(y.readyState=1,l&&q.trigger("ajaxSend",[y,o]),k)return y;o.async&&o.timeout>0&&(i=a.setTimeout(function(){y.abort("timeout")},o.timeout));try{k=!1,e.send(v,A)}catch(z){if(k)throw z;A(-1,z)}}else A(-1,"No Transport");function A(b,c,d,h){var j,m,n,v,w,x=c;k||(k=!0,i&&a.clearTimeout(i),e=void 0,g=h||"",y.readyState=b>0?4:0,j=b>=200&&b<300||304===b,d&&(v=Pb(o,y,d)),v=Qb(o,v,y,j),j?(o.ifModified&&(w=y.getResponseHeader("Last-Modified"),w&&(r.lastModified[f]=w),w=y.getResponseHeader("etag"),w&&(r.etag[f]=w)),204===b||"HEAD"===o.type?x="nocontent":304===b?x="notmodified":(x=v.state,m=v.data,n=v.error,j=!n)):(n=x,!b&&x||(x="error",b<0&&(b=0))),y.status=b,y.statusText=(c||x)+"",j?s.resolveWith(p,[m,x,y]):s.rejectWith(p,[y,x,n]),y.statusCode(u),u=void 0,l&&q.trigger(j?"ajaxSuccess":"ajaxError",[y,o,j?m:n]),t.fireWith(p,[y,x]),l&&(q.trigger("ajaxComplete",[y,o]),--r.active||r.event.trigger("ajaxStop")))}return y},getJSON:function(a,b,c){return r.get(a,b,c,"json")},getScript:function(a,b){return r.get(a,void 0,b,"script")}}),r.each(["get","post"],function(a,b){r[b]=function(a,c,d,e){return r.isFunction(c)&&(e=e||d,d=c,c=void 0),r.ajax(r.extend({url:a,type:b,dataType:e,data:c,success:d},r.isPlainObject(a)&&a))}}),r._evalUrl=function(a){return r.ajax({url:a,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},r.fn.extend({wrapAll:function(a){var b;return this[0]&&(r.isFunction(a)&&(a=a.call(this[0])),b=r(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this},wrapInner:function(a){return r.isFunction(a)?this.each(function(b){r(this).wrapInner(a.call(this,b))}):this.each(function(){var b=r(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=r.isFunction(a);return this.each(function(c){r(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(a){return this.parent(a).not("body").each(function(){r(this).replaceWith(this.childNodes)}),this}}),r.expr.pseudos.hidden=function(a){return!r.expr.pseudos.visible(a)},r.expr.pseudos.visible=function(a){return!!(a.offsetWidth||a.offsetHeight||a.getClientRects().length)},r.ajaxSettings.xhr=function(){try{return new a.XMLHttpRequest}catch(b){}};var Rb={0:200,1223:204},Sb=r.ajaxSettings.xhr();o.cors=!!Sb&&"withCredentials"in Sb,o.ajax=Sb=!!Sb,r.ajaxTransport(function(b){var c,d;if(o.cors||Sb&&!b.crossDomain)return{send:function(e,f){var g,h=b.xhr();if(h.open(b.type,b.url,b.async,b.username,b.password),b.xhrFields)for(g in b.xhrFields)h[g]=b.xhrFields[g];b.mimeType&&h.overrideMimeType&&h.overrideMimeType(b.mimeType),b.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest");for(g in e)h.setRequestHeader(g,e[g]);c=function(a){return function(){c&&(c=d=h.onload=h.onerror=h.onabort=h.onreadystatechange=null,"abort"===a?h.abort():"error"===a?"number"!=typeof h.status?f(0,"error"):f(h.status,h.statusText):f(Rb[h.status]||h.status,h.statusText,"text"!==(h.responseType||"text")||"string"!=typeof h.responseText?{binary:h.response}:{text:h.responseText},h.getAllResponseHeaders()))}},h.onload=c(),d=h.onerror=c("error"),void 0!==h.onabort?h.onabort=d:h.onreadystatechange=function(){4===h.readyState&&a.setTimeout(function(){c&&d()})},c=c("abort");try{h.send(b.hasContent&&b.data||null)}catch(i){if(c)throw i}},abort:function(){c&&c()}}}),r.ajaxPrefilter(function(a){a.crossDomain&&(a.contents.script=!1)}),r.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(a){return r.globalEval(a),a}}}),r.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),r.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(e,f){b=r("<script>").prop({charset:a.scriptCharset,src:a.url}).on("load error",c=function(a){b.remove(),c=null,a&&f("error"===a.type?404:200,a.type)}),d.head.appendChild(b[0])},abort:function(){c&&c()}}}});var Tb=[],Ub=/(=)\?(?=&|$)|\?\?/;r.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=Tb.pop()||r.expando+"_"+ub++;return this[a]=!0,a}}),r.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(Ub.test(b.url)?"url":"string"==typeof b.data&&0===(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ub.test(b.data)&&"data");if(h||"jsonp"===b.dataTypes[0])return e=b.jsonpCallback=r.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(Ub,"$1"+e):b.jsonp!==!1&&(b.url+=(vb.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||r.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){void 0===f?r(a).removeProp(e):a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,Tb.push(e)),g&&r.isFunction(f)&&f(g[0]),g=f=void 0}),"script"}),o.createHTMLDocument=function(){var a=d.implementation.createHTMLDocument("").body;return a.innerHTML="<form></form><form></form>",2===a.childNodes.length}(),r.parseHTML=function(a,b,c){if("string"!=typeof a)return[];"boolean"==typeof b&&(c=b,b=!1);var e,f,g;return b||(o.createHTMLDocument?(b=d.implementation.createHTMLDocument(""),e=b.createElement("base"),e.href=d.location.href,b.head.appendChild(e)):b=d),f=C.exec(a),g=!c&&[],f?[b.createElement(f[1])]:(f=qa([a],b,g),g&&g.length&&r(g).remove(),r.merge([],f.childNodes))},r.fn.load=function(a,b,c){var d,e,f,g=this,h=a.indexOf(" ");return h>-1&&(d=pb(a.slice(h)),a=a.slice(0,h)),r.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(e="POST"),g.length>0&&r.ajax({url:a,type:e||"GET",dataType:"html",data:b}).done(function(a){f=arguments,g.html(d?r("<div>").append(r.parseHTML(a)).find(d):a)}).always(c&&function(a,b){g.each(function(){c.apply(this,f||[a.responseText,b,a])})}),this},r.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){r.fn[b]=function(a){return this.on(b,a)}}),r.expr.pseudos.animated=function(a){return r.grep(r.timers,function(b){return a===b.elem}).length},r.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=r.css(a,"position"),l=r(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=r.css(a,"top"),i=r.css(a,"left"),j=("absolute"===k||"fixed"===k)&&(f+i).indexOf("auto")>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),r.isFunction(b)&&(b=b.call(a,c,r.extend({},h))),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},r.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){r.offset.setOffset(this,a,b)});var b,c,d,e,f=this[0];if(f)return f.getClientRects().length?(d=f.getBoundingClientRect(),b=f.ownerDocument,c=b.documentElement,e=b.defaultView,{top:d.top+e.pageYOffset-c.clientTop,left:d.left+e.pageXOffset-c.clientLeft}):{top:0,left:0}},position:function(){if(this[0]){var a,b,c=this[0],d={top:0,left:0};return"fixed"===r.css(c,"position")?b=c.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),B(a[0],"html")||(d=a.offset()),d={top:d.top+r.css(a[0],"borderTopWidth",!0),left:d.left+r.css(a[0],"borderLeftWidth",!0)}),{top:b.top-d.top-r.css(c,"marginTop",!0),left:b.left-d.left-r.css(c,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent;while(a&&"static"===r.css(a,"position"))a=a.offsetParent;return a||ra})}}),r.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c="pageYOffset"===b;r.fn[a]=function(d){return T(this,function(a,d,e){var f;return r.isWindow(a)?f=a:9===a.nodeType&&(f=a.defaultView),void 0===e?f?f[b]:a[d]:void(f?f.scrollTo(c?f.pageXOffset:e,c?e:f.pageYOffset):a[d]=e)},a,d,arguments.length)}}),r.each(["top","left"],function(a,b){r.cssHooks[b]=Pa(o.pixelPosition,function(a,c){if(c)return c=Oa(a,b),Ma.test(c)?r(a).position()[b]+"px":c})}),r.each({Height:"height",Width:"width"},function(a,b){r.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){r.fn[d]=function(e,f){var g=arguments.length&&(c||"boolean"!=typeof e),h=c||(e===!0||f===!0?"margin":"border");return T(this,function(b,c,e){var f;return r.isWindow(b)?0===d.indexOf("outer")?b["inner"+a]:b.document.documentElement["client"+a]:9===b.nodeType?(f=b.documentElement,Math.max(b.body["scroll"+a],f["scroll"+a],b.body["offset"+a],f["offset"+a],f["client"+a])):void 0===e?r.css(b,c,h):r.style(b,c,e,h)},b,g?e:void 0,g)}})}),r.fn.extend({bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}}),r.holdReady=function(a){a?r.readyWait++:r.ready(!0)},r.isArray=Array.isArray,r.parseJSON=JSON.parse,r.nodeName=B,"function"==typeof define&&define.amd&&define("jquery",[],function(){return r});var Vb=a.jQuery,Wb=a.$;return r.noConflict=function(b){return a.$===r&&(a.$=Wb),b&&a.jQuery===r&&(a.jQuery=Vb),r},b||(a.jQuery=a.$=r),r});
diff --git a/js/jquery/dist/jquery.min.map b/js/jquery/dist/jquery.min.map
new file mode 100644 (file)
index 0000000..e8f55ef
--- /dev/null
@@ -0,0 +1 @@
+{"version":3,"sources":["jquery.js"],"names":["global","factory","module","exports","document","w","Error","window","this","noGlobal","arr","getProto","Object","getPrototypeOf","slice","concat","push","indexOf","class2type","toString","hasOwn","hasOwnProperty","fnToString","ObjectFunctionString","call","support","DOMEval","code","doc","script","createElement","text","head","appendChild","parentNode","removeChild","version","jQuery","selector","context","fn","init","rtrim","rmsPrefix","rdashAlpha","fcamelCase","all","letter","toUpperCase","prototype","jquery","constructor","length","toArray","get","num","pushStack","elems","ret","merge","prevObject","each","callback","map","elem","i","apply","arguments","first","eq","last","len","j","end","sort","splice","extend","options","name","src","copy","copyIsArray","clone","target","deep","isFunction","isPlainObject","Array","isArray","undefined","expando","Math","random","replace","isReady","error","msg","noop","obj","type","isWindow","isNumeric","isNaN","parseFloat","proto","Ctor","isEmptyObject","globalEval","camelCase","string","isArrayLike","trim","makeArray","results","inArray","second","grep","invert","callbackInverse","matches","callbackExpect","arg","value","guid","proxy","tmp","args","now","Date","Symbol","iterator","split","toLowerCase","Sizzle","Expr","getText","isXML","tokenize","compile","select","outermostContext","sortInput","hasDuplicate","setDocument","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","contains","preferredDoc","dirruns","done","classCache","createCache","tokenCache","compilerCache","sortOrder","a","b","pop","push_native","list","booleans","whitespace","identifier","attributes","pseudos","rwhitespace","RegExp","rcomma","rcombinators","rattributeQuotes","rpseudo","ridentifier","matchExpr","ID","CLASS","TAG","ATTR","PSEUDO","CHILD","bool","needsContext","rinputs","rheader","rnative","rquickExpr","rsibling","runescape","funescape","_","escaped","escapedWhitespace","high","String","fromCharCode","rcssescape","fcssescape","ch","asCodePoint","charCodeAt","unloadHandler","disabledAncestor","addCombinator","disabled","dir","next","childNodes","nodeType","e","els","seed","m","nid","match","groups","newSelector","newContext","ownerDocument","exec","getElementById","id","getElementsByTagName","getElementsByClassName","qsa","test","nodeName","getAttribute","setAttribute","toSelector","join","testContext","querySelectorAll","qsaError","removeAttribute","keys","cache","key","cacheLength","shift","markFunction","assert","el","addHandle","attrs","handler","attrHandle","siblingCheck","cur","diff","sourceIndex","nextSibling","createInputPseudo","createButtonPseudo","createDisabledPseudo","isDisabled","createPositionalPseudo","argument","matchIndexes","documentElement","node","hasCompare","subWindow","defaultView","top","addEventListener","attachEvent","className","createComment","getById","getElementsByName","filter","attrId","find","getAttributeNode","tag","innerHTML","input","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","unshift","expr","elements","attr","val","specified","escape","sel","uniqueSort","duplicates","detectDuplicates","sortStable","textContent","firstChild","nodeValue","selectors","createPseudo","relative",">"," ","+","~","preFilter","excess","unquoted","nodeNameSelector","pattern","operator","check","result","what","simple","forward","ofType","xml","uniqueCache","outerCache","nodeIndex","start","parent","useCache","lastChild","uniqueID","pseudo","setFilters","idx","matched","not","matcher","unmatched","has","innerText","lang","elemLang","hash","location","root","focus","activeElement","hasFocus","href","tabIndex","enabled","checked","selected","selectedIndex","empty","header","button","even","odd","lt","gt","radio","checkbox","file","password","image","submit","reset","filters","parseOnly","tokens","soFar","preFilters","cached","combinator","base","skip","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","multipleContexts","contexts","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","temp","preMap","postMap","preexisting","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","matcherFromGroupMatchers","elementMatchers","setMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","token","compiled","defaultValue","unique","isXMLDoc","escapeSelector","until","truncate","is","siblings","n","rneedsContext","rsingleTag","risSimple","winnow","qualifier","self","rootjQuery","parseHTML","ready","rparentsprev","guaranteedUnique","children","contents","prev","targets","l","closest","index","prevAll","add","addBack","sibling","parents","parentsUntil","nextAll","nextUntil","prevUntil","contentDocument","content","reverse","rnothtmlwhite","createOptions","object","flag","Callbacks","firing","memory","fired","locked","queue","firingIndex","fire","once","stopOnFalse","remove","disable","lock","fireWith","Identity","v","Thrower","ex","adoptValue","resolve","reject","noValue","method","promise","fail","then","Deferred","func","tuples","state","always","deferred","catch","pipe","fns","newDefer","tuple","returned","progress","notify","onFulfilled","onRejected","onProgress","maxDepth","depth","special","that","mightThrow","TypeError","notifyWith","resolveWith","process","exceptionHook","stackTrace","rejectWith","getStackHook","setTimeout","stateString","when","singleValue","remaining","resolveContexts","resolveValues","master","updateFunc","rerrorNames","stack","console","warn","message","readyException","readyList","readyWait","wait","completed","removeEventListener","readyState","doScroll","access","chainable","emptyGet","raw","bulk","acceptData","owner","Data","uid","defineProperty","configurable","set","data","prop","hasData","dataPriv","dataUser","rbrace","rmultiDash","getData","JSON","parse","dataAttr","removeData","_data","_removeData","dequeue","startLength","hooks","_queueHooks","stop","setter","clearQueue","count","defer","pnum","source","rcssNum","cssExpand","isHiddenWithinTree","style","display","css","swap","old","adjustCSS","valueParts","tween","adjusted","scale","maxIterations","currentValue","initial","unit","cssNumber","initialInUnit","defaultDisplayMap","getDefaultDisplay","body","showHide","show","values","hide","toggle","rcheckableType","rtagName","rscriptType","wrapMap","option","thead","col","tr","td","_default","optgroup","tbody","tfoot","colgroup","caption","th","getAll","setGlobalEval","refElements","rhtml","buildFragment","scripts","selection","ignored","wrap","fragment","createDocumentFragment","nodes","htmlPrefilter","createTextNode","div","checkClone","cloneNode","noCloneChecked","rkeyEvent","rmouseEvent","rtypenamespace","returnTrue","returnFalse","safeActiveElement","err","on","types","one","origFn","event","off","handleObjIn","eventHandle","events","t","handleObj","handlers","namespaces","origType","elemData","handle","triggered","dispatch","delegateType","bindType","namespace","delegateCount","setup","mappedTypes","origCount","teardown","removeEvent","nativeEvent","fix","handlerQueue","delegateTarget","preDispatch","isPropagationStopped","currentTarget","isImmediatePropagationStopped","rnamespace","preventDefault","stopPropagation","postDispatch","matchedHandlers","matchedSelectors","addProp","hook","Event","enumerable","originalEvent","writable","load","noBubble","trigger","blur","click","beforeunload","returnValue","props","isDefaultPrevented","defaultPrevented","relatedTarget","timeStamp","isSimulated","stopImmediatePropagation","altKey","bubbles","cancelable","changedTouches","ctrlKey","detail","eventPhase","metaKey","pageX","pageY","shiftKey","view","char","charCode","keyCode","buttons","clientX","clientY","offsetX","offsetY","pointerId","pointerType","screenX","screenY","targetTouches","toElement","touches","which","mouseenter","mouseleave","pointerenter","pointerleave","orig","related","rxhtmlTag","rnoInnerhtml","rchecked","rscriptTypeMasked","rcleanScript","manipulationTarget","disableScript","restoreScript","cloneCopyEvent","dest","pdataOld","pdataCur","udataOld","udataCur","fixInput","domManip","collection","hasScripts","iNoClone","html","_evalUrl","keepData","cleanData","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","detach","append","prepend","insertBefore","before","after","replaceWith","replaceChild","appendTo","prependTo","insertAfter","replaceAll","original","insert","rmargin","rnumnonpx","getStyles","opener","getComputedStyle","computeStyleTests","cssText","container","divStyle","pixelPositionVal","reliableMarginLeftVal","marginLeft","boxSizingReliableVal","width","marginRight","pixelMarginRightVal","backgroundClip","clearCloneStyle","pixelPosition","boxSizingReliable","pixelMarginRight","reliableMarginLeft","curCSS","computed","minWidth","maxWidth","getPropertyValue","addGetHookIf","conditionFn","hookFn","rdisplayswap","rcustomProp","cssShow","position","visibility","cssNormalTransform","letterSpacing","fontWeight","cssPrefixes","emptyStyle","vendorPropName","capName","finalPropName","cssProps","setPositiveNumber","subtract","max","augmentWidthOrHeight","extra","isBorderBox","styles","getWidthOrHeight","valueIsBorderBox","cssHooks","opacity","animationIterationCount","columnCount","fillOpacity","flexGrow","flexShrink","lineHeight","order","orphans","widows","zIndex","zoom","float","origName","isCustomProp","setProperty","isFinite","getClientRects","getBoundingClientRect","left","margin","padding","border","prefix","suffix","expand","expanded","parts","Tween","easing","propHooks","run","percent","eased","duration","pos","step","fx","scrollTop","scrollLeft","linear","p","swing","cos","PI","fxNow","inProgress","rfxtypes","rrun","schedule","hidden","requestAnimationFrame","interval","tick","createFxNow","genFx","includeWidth","height","createTween","animation","Animation","tweeners","defaultPrefilter","opts","oldfire","propTween","restoreDisplay","isBox","anim","dataShow","unqueued","overflow","overflowX","overflowY","propFilter","specialEasing","properties","stopped","prefilters","currentTime","startTime","tweens","originalProperties","originalOptions","gotoEnd","complete","timer","*","tweener","prefilter","speed","opt","speeds","fadeTo","to","animate","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","slow","fast","delay","time","timeout","clearTimeout","checkOn","optSelected","radioValue","boolHook","removeAttr","nType","attrHooks","attrNames","getter","lowercaseName","rfocusable","rclickable","removeProp","propFix","tabindex","parseInt","for","class","stripAndCollapse","getClass","addClass","classes","curValue","clazz","finalValue","removeClass","toggleClass","stateVal","classNames","hasClass","rreturn","valHooks","optionSet","rfocusMorph","onlyHandlers","bubbleType","ontype","eventPath","isTrigger","parentWindow","simulate","triggerHandler","hover","fnOver","fnOut","focusin","attaches","nonce","rquery","parseXML","DOMParser","parseFromString","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","traditional","param","s","valueOrFunction","encodeURIComponent","serialize","serializeArray","r20","rhash","rantiCache","rheaders","rlocalProtocol","rnoContent","rprotocol","transports","allTypes","originAnchor","addToPrefiltersOrTransports","structure","dataTypeExpression","dataType","dataTypes","inspectPrefiltersOrTransports","jqXHR","inspected","seekingTransport","inspect","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","ajaxSettings","ajaxHandleResponses","responses","ct","finalDataType","firstDataType","mimeType","getResponseHeader","converters","ajaxConvert","response","isSuccess","conv2","current","conv","responseFields","dataFilter","active","lastModified","etag","url","isLocal","protocol","processData","async","contentType","accepts","json","* text","text html","text json","text xml","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","ajax","transport","cacheURL","responseHeadersString","responseHeaders","timeoutTimer","urlAnchor","fireGlobals","uncached","callbackContext","globalEventContext","completeDeferred","statusCode","requestHeaders","requestHeadersNames","strAbort","getAllResponseHeaders","setRequestHeader","overrideMimeType","status","abort","statusText","finalText","crossDomain","host","hasContent","ifModified","headers","beforeSend","success","send","nativeStatusText","modified","getJSON","getScript","throws","wrapAll","firstElementChild","wrapInner","unwrap","visible","offsetWidth","offsetHeight","xhr","XMLHttpRequest","xhrSuccessStatus","0","1223","xhrSupported","cors","errorCallback","open","username","xhrFields","onload","onerror","onabort","onreadystatechange","responseType","responseText","binary","text script","charset","scriptCharset","evt","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","createHTMLDocument","implementation","keepScripts","parsed","params","animated","offset","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","calculatePosition","curElem","using","rect","win","pageYOffset","clientTop","pageXOffset","clientLeft","offsetParent","parentOffset","scrollTo","Height","Width","","defaultExtra","funcName","bind","unbind","delegate","undelegate","holdReady","hold","parseJSON","define","amd","_jQuery","_$","$","noConflict"],"mappings":"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","file":"jquery.min.js"}
\ No newline at end of file
diff --git a/js/jquery/dist/jquery.slim.js b/js/jquery/dist/jquery.slim.js
new file mode 100644 (file)
index 0000000..6cdf1ee
--- /dev/null
@@ -0,0 +1,8160 @@
+/*!
+ * jQuery JavaScript Library v3.2.1 -ajax,-ajax/jsonp,-ajax/load,-ajax/parseXML,-ajax/script,-ajax/var/location,-ajax/var/nonce,-ajax/var/rquery,-ajax/xhr,-manipulation/_evalUrl,-event/ajax,-effects,-effects/Tween,-effects/animatedSelector
+ * https://jquery.com/
+ *
+ * Includes Sizzle.js
+ * https://sizzlejs.com/
+ *
+ * Copyright JS Foundation and other contributors
+ * Released under the MIT license
+ * https://jquery.org/license
+ *
+ * Date: 2017-03-20T19:00Z
+ */
+( function( global, factory ) {
+
+       "use strict";
+
+       if ( typeof module === "object" && typeof module.exports === "object" ) {
+
+               // For CommonJS and CommonJS-like environments where a proper `window`
+               // is present, execute the factory and get jQuery.
+               // For environments that do not have a `window` with a `document`
+               // (such as Node.js), expose a factory as module.exports.
+               // This accentuates the need for the creation of a real `window`.
+               // e.g. var jQuery = require("jquery")(window);
+               // See ticket #14549 for more info.
+               module.exports = global.document ?
+                       factory( global, true ) :
+                       function( w ) {
+                               if ( !w.document ) {
+                                       throw new Error( "jQuery requires a window with a document" );
+                               }
+                               return factory( w );
+                       };
+       } else {
+               factory( global );
+       }
+
+// Pass this if window is not defined yet
+} )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) {
+
+// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1
+// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode
+// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common
+// enough that all such attempts are guarded in a try block.
+"use strict";
+
+var arr = [];
+
+var document = window.document;
+
+var getProto = Object.getPrototypeOf;
+
+var slice = arr.slice;
+
+var concat = arr.concat;
+
+var push = arr.push;
+
+var indexOf = arr.indexOf;
+
+var class2type = {};
+
+var toString = class2type.toString;
+
+var hasOwn = class2type.hasOwnProperty;
+
+var fnToString = hasOwn.toString;
+
+var ObjectFunctionString = fnToString.call( Object );
+
+var support = {};
+
+
+
+       function DOMEval( code, doc ) {
+               doc = doc || document;
+
+               var script = doc.createElement( "script" );
+
+               script.text = code;
+               doc.head.appendChild( script ).parentNode.removeChild( script );
+       }
+/* global Symbol */
+// Defining this global in .eslintrc.json would create a danger of using the global
+// unguarded in another place, it seems safer to define global only for this module
+
+
+
+var
+       version = "3.2.1 -ajax,-ajax/jsonp,-ajax/load,-ajax/parseXML,-ajax/script,-ajax/var/location,-ajax/var/nonce,-ajax/var/rquery,-ajax/xhr,-manipulation/_evalUrl,-event/ajax,-effects,-effects/Tween,-effects/animatedSelector",
+
+       // Define a local copy of jQuery
+       jQuery = function( selector, context ) {
+
+               // The jQuery object is actually just the init constructor 'enhanced'
+               // Need init if jQuery is called (just allow error to be thrown if not included)
+               return new jQuery.fn.init( selector, context );
+       },
+
+       // Support: Android <=4.0 only
+       // Make sure we trim BOM and NBSP
+       rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
+
+       // Matches dashed string for camelizing
+       rmsPrefix = /^-ms-/,
+       rdashAlpha = /-([a-z])/g,
+
+       // Used by jQuery.camelCase as callback to replace()
+       fcamelCase = function( all, letter ) {
+               return letter.toUpperCase();
+       };
+
+jQuery.fn = jQuery.prototype = {
+
+       // The current version of jQuery being used
+       jquery: version,
+
+       constructor: jQuery,
+
+       // The default length of a jQuery object is 0
+       length: 0,
+
+       toArray: function() {
+               return slice.call( this );
+       },
+
+       // Get the Nth element in the matched element set OR
+       // Get the whole matched element set as a clean array
+       get: function( num ) {
+
+               // Return all the elements in a clean array
+               if ( num == null ) {
+                       return slice.call( this );
+               }
+
+               // Return just the one element from the set
+               return num < 0 ? this[ num + this.length ] : this[ num ];
+       },
+
+       // Take an array of elements and push it onto the stack
+       // (returning the new matched element set)
+       pushStack: function( elems ) {
+
+               // Build a new jQuery matched element set
+               var ret = jQuery.merge( this.constructor(), elems );
+
+               // Add the old object onto the stack (as a reference)
+               ret.prevObject = this;
+
+               // Return the newly-formed element set
+               return ret;
+       },
+
+       // Execute a callback for every element in the matched set.
+       each: function( callback ) {
+               return jQuery.each( this, callback );
+       },
+
+       map: function( callback ) {
+               return this.pushStack( jQuery.map( this, function( elem, i ) {
+                       return callback.call( elem, i, elem );
+               } ) );
+       },
+
+       slice: function() {
+               return this.pushStack( slice.apply( this, arguments ) );
+       },
+
+       first: function() {
+               return this.eq( 0 );
+       },
+
+       last: function() {
+               return this.eq( -1 );
+       },
+
+       eq: function( i ) {
+               var len = this.length,
+                       j = +i + ( i < 0 ? len : 0 );
+               return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );
+       },
+
+       end: function() {
+               return this.prevObject || this.constructor();
+       },
+
+       // For internal use only.
+       // Behaves like an Array's method, not like a jQuery method.
+       push: push,
+       sort: arr.sort,
+       splice: arr.splice
+};
+
+jQuery.extend = jQuery.fn.extend = function() {
+       var options, name, src, copy, copyIsArray, clone,
+               target = arguments[ 0 ] || {},
+               i = 1,
+               length = arguments.length,
+               deep = false;
+
+       // Handle a deep copy situation
+       if ( typeof target === "boolean" ) {
+               deep = target;
+
+               // Skip the boolean and the target
+               target = arguments[ i ] || {};
+               i++;
+       }
+
+       // Handle case when target is a string or something (possible in deep copy)
+       if ( typeof target !== "object" && !jQuery.isFunction( target ) ) {
+               target = {};
+       }
+
+       // Extend jQuery itself if only one argument is passed
+       if ( i === length ) {
+               target = this;
+               i--;
+       }
+
+       for ( ; i < length; i++ ) {
+
+               // Only deal with non-null/undefined values
+               if ( ( options = arguments[ i ] ) != null ) {
+
+                       // Extend the base object
+                       for ( name in options ) {
+                               src = target[ name ];
+                               copy = options[ name ];
+
+                               // Prevent never-ending loop
+                               if ( target === copy ) {
+                                       continue;
+                               }
+
+                               // Recurse if we're merging plain objects or arrays
+                               if ( deep && copy && ( jQuery.isPlainObject( copy ) ||
+                                       ( copyIsArray = Array.isArray( copy ) ) ) ) {
+
+                                       if ( copyIsArray ) {
+                                               copyIsArray = false;
+                                               clone = src && Array.isArray( src ) ? src : [];
+
+                                       } else {
+                                               clone = src && jQuery.isPlainObject( src ) ? src : {};
+                                       }
+
+                                       // Never move original objects, clone them
+                                       target[ name ] = jQuery.extend( deep, clone, copy );
+
+                               // Don't bring in undefined values
+                               } else if ( copy !== undefined ) {
+                                       target[ name ] = copy;
+                               }
+                       }
+               }
+       }
+
+       // Return the modified object
+       return target;
+};
+
+jQuery.extend( {
+
+       // Unique for each copy of jQuery on the page
+       expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ),
+
+       // Assume jQuery is ready without the ready module
+       isReady: true,
+
+       error: function( msg ) {
+               throw new Error( msg );
+       },
+
+       noop: function() {},
+
+       isFunction: function( obj ) {
+               return jQuery.type( obj ) === "function";
+       },
+
+       isWindow: function( obj ) {
+               return obj != null && obj === obj.window;
+       },
+
+       isNumeric: function( obj ) {
+
+               // As of jQuery 3.0, isNumeric is limited to
+               // strings and numbers (primitives or objects)
+               // that can be coerced to finite numbers (gh-2662)
+               var type = jQuery.type( obj );
+               return ( type === "number" || type === "string" ) &&
+
+                       // parseFloat NaNs numeric-cast false positives ("")
+                       // ...but misinterprets leading-number strings, particularly hex literals ("0x...")
+                       // subtraction forces infinities to NaN
+                       !isNaN( obj - parseFloat( obj ) );
+       },
+
+       isPlainObject: function( obj ) {
+               var proto, Ctor;
+
+               // Detect obvious negatives
+               // Use toString instead of jQuery.type to catch host objects
+               if ( !obj || toString.call( obj ) !== "[object Object]" ) {
+                       return false;
+               }
+
+               proto = getProto( obj );
+
+               // Objects with no prototype (e.g., `Object.create( null )`) are plain
+               if ( !proto ) {
+                       return true;
+               }
+
+               // Objects with prototype are plain iff they were constructed by a global Object function
+               Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor;
+               return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString;
+       },
+
+       isEmptyObject: function( obj ) {
+
+               /* eslint-disable no-unused-vars */
+               // See https://github.com/eslint/eslint/issues/6125
+               var name;
+
+               for ( name in obj ) {
+                       return false;
+               }
+               return true;
+       },
+
+       type: function( obj ) {
+               if ( obj == null ) {
+                       return obj + "";
+               }
+
+               // Support: Android <=2.3 only (functionish RegExp)
+               return typeof obj === "object" || typeof obj === "function" ?
+                       class2type[ toString.call( obj ) ] || "object" :
+                       typeof obj;
+       },
+
+       // Evaluates a script in a global context
+       globalEval: function( code ) {
+               DOMEval( code );
+       },
+
+       // Convert dashed to camelCase; used by the css and data modules
+       // Support: IE <=9 - 11, Edge 12 - 13
+       // Microsoft forgot to hump their vendor prefix (#9572)
+       camelCase: function( string ) {
+               return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
+       },
+
+       each: function( obj, callback ) {
+               var length, i = 0;
+
+               if ( isArrayLike( obj ) ) {
+                       length = obj.length;
+                       for ( ; i < length; i++ ) {
+                               if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
+                                       break;
+                               }
+                       }
+               } else {
+                       for ( i in obj ) {
+                               if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
+                                       break;
+                               }
+                       }
+               }
+
+               return obj;
+       },
+
+       // Support: Android <=4.0 only
+       trim: function( text ) {
+               return text == null ?
+                       "" :
+                       ( text + "" ).replace( rtrim, "" );
+       },
+
+       // results is for internal usage only
+       makeArray: function( arr, results ) {
+               var ret = results || [];
+
+               if ( arr != null ) {
+                       if ( isArrayLike( Object( arr ) ) ) {
+                               jQuery.merge( ret,
+                                       typeof arr === "string" ?
+                                       [ arr ] : arr
+                               );
+                       } else {
+                               push.call( ret, arr );
+                       }
+               }
+
+               return ret;
+       },
+
+       inArray: function( elem, arr, i ) {
+               return arr == null ? -1 : indexOf.call( arr, elem, i );
+       },
+
+       // Support: Android <=4.0 only, PhantomJS 1 only
+       // push.apply(_, arraylike) throws on ancient WebKit
+       merge: function( first, second ) {
+               var len = +second.length,
+                       j = 0,
+                       i = first.length;
+
+               for ( ; j < len; j++ ) {
+                       first[ i++ ] = second[ j ];
+               }
+
+               first.length = i;
+
+               return first;
+       },
+
+       grep: function( elems, callback, invert ) {
+               var callbackInverse,
+                       matches = [],
+                       i = 0,
+                       length = elems.length,
+                       callbackExpect = !invert;
+
+               // Go through the array, only saving the items
+               // that pass the validator function
+               for ( ; i < length; i++ ) {
+                       callbackInverse = !callback( elems[ i ], i );
+                       if ( callbackInverse !== callbackExpect ) {
+                               matches.push( elems[ i ] );
+                       }
+               }
+
+               return matches;
+       },
+
+       // arg is for internal usage only
+       map: function( elems, callback, arg ) {
+               var length, value,
+                       i = 0,
+                       ret = [];
+
+               // Go through the array, translating each of the items to their new values
+               if ( isArrayLike( elems ) ) {
+                       length = elems.length;
+                       for ( ; i < length; i++ ) {
+                               value = callback( elems[ i ], i, arg );
+
+                               if ( value != null ) {
+                                       ret.push( value );
+                               }
+                       }
+
+               // Go through every key on the object,
+               } else {
+                       for ( i in elems ) {
+                               value = callback( elems[ i ], i, arg );
+
+                               if ( value != null ) {
+                                       ret.push( value );
+                               }
+                       }
+               }
+
+               // Flatten any nested arrays
+               return concat.apply( [], ret );
+       },
+
+       // A global GUID counter for objects
+       guid: 1,
+
+       // Bind a function to a context, optionally partially applying any
+       // arguments.
+       proxy: function( fn, context ) {
+               var tmp, args, proxy;
+
+               if ( typeof context === "string" ) {
+                       tmp = fn[ context ];
+                       context = fn;
+                       fn = tmp;
+               }
+
+               // Quick check to determine if target is callable, in the spec
+               // this throws a TypeError, but we will just return undefined.
+               if ( !jQuery.isFunction( fn ) ) {
+                       return undefined;
+               }
+
+               // Simulated bind
+               args = slice.call( arguments, 2 );
+               proxy = function() {
+                       return fn.apply( context || this, args.concat( slice.call( arguments ) ) );
+               };
+
+               // Set the guid of unique handler to the same of original handler, so it can be removed
+               proxy.guid = fn.guid = fn.guid || jQuery.guid++;
+
+               return proxy;
+       },
+
+       now: Date.now,
+
+       // jQuery.support is not used in Core but other projects attach their
+       // properties to it so it needs to exist.
+       support: support
+} );
+
+if ( typeof Symbol === "function" ) {
+       jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];
+}
+
+// Populate the class2type map
+jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ),
+function( i, name ) {
+       class2type[ "[object " + name + "]" ] = name.toLowerCase();
+} );
+
+function isArrayLike( obj ) {
+
+       // Support: real iOS 8.2 only (not reproducible in simulator)
+       // `in` check used to prevent JIT error (gh-2145)
+       // hasOwn isn't used here due to false negatives
+       // regarding Nodelist length in IE
+       var length = !!obj && "length" in obj && obj.length,
+               type = jQuery.type( obj );
+
+       if ( type === "function" || jQuery.isWindow( obj ) ) {
+               return false;
+       }
+
+       return type === "array" || length === 0 ||
+               typeof length === "number" && length > 0 && ( length - 1 ) in obj;
+}
+var Sizzle =
+/*!
+ * Sizzle CSS Selector Engine v2.3.3
+ * https://sizzlejs.com/
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license
+ * http://jquery.org/license
+ *
+ * Date: 2016-08-08
+ */
+(function( window ) {
+
+var i,
+       support,
+       Expr,
+       getText,
+       isXML,
+       tokenize,
+       compile,
+       select,
+       outermostContext,
+       sortInput,
+       hasDuplicate,
+
+       // Local document vars
+       setDocument,
+       document,
+       docElem,
+       documentIsHTML,
+       rbuggyQSA,
+       rbuggyMatches,
+       matches,
+       contains,
+
+       // Instance-specific data
+       expando = "sizzle" + 1 * new Date(),
+       preferredDoc = window.document,
+       dirruns = 0,
+       done = 0,
+       classCache = createCache(),
+       tokenCache = createCache(),
+       compilerCache = createCache(),
+       sortOrder = function( a, b ) {
+               if ( a === b ) {
+                       hasDuplicate = true;
+               }
+               return 0;
+       },
+
+       // Instance methods
+       hasOwn = ({}).hasOwnProperty,
+       arr = [],
+       pop = arr.pop,
+       push_native = arr.push,
+       push = arr.push,
+       slice = arr.slice,
+       // Use a stripped-down indexOf as it's faster than native
+       // https://jsperf.com/thor-indexof-vs-for/5
+       indexOf = function( list, elem ) {
+               var i = 0,
+                       len = list.length;
+               for ( ; i < len; i++ ) {
+                       if ( list[i] === elem ) {
+                               return i;
+                       }
+               }
+               return -1;
+       },
+
+       booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
+
+       // Regular expressions
+
+       // http://www.w3.org/TR/css3-selectors/#whitespace
+       whitespace = "[\\x20\\t\\r\\n\\f]",
+
+       // http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier
+       identifier = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+",
+
+       // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors
+       attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace +
+               // Operator (capture 2)
+               "*([*^$|!~]?=)" + whitespace +
+               // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]"
+               "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace +
+               "*\\]",
+
+       pseudos = ":(" + identifier + ")(?:\\((" +
+               // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:
+               // 1. quoted (capture 3; capture 4 or capture 5)
+               "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" +
+               // 2. simple (capture 6)
+               "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" +
+               // 3. anything else (capture 2)
+               ".*" +
+               ")\\)|)",
+
+       // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter
+       rwhitespace = new RegExp( whitespace + "+", "g" ),
+       rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ),
+
+       rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ),
+       rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ),
+
+       rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ),
+
+       rpseudo = new RegExp( pseudos ),
+       ridentifier = new RegExp( "^" + identifier + "$" ),
+
+       matchExpr = {
+               "ID": new RegExp( "^#(" + identifier + ")" ),
+               "CLASS": new RegExp( "^\\.(" + identifier + ")" ),
+               "TAG": new RegExp( "^(" + identifier + "|[*])" ),
+               "ATTR": new RegExp( "^" + attributes ),
+               "PSEUDO": new RegExp( "^" + pseudos ),
+               "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace +
+                       "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace +
+                       "*(\\d+)|))" + whitespace + "*\\)|)", "i" ),
+               "bool": new RegExp( "^(?:" + booleans + ")$", "i" ),
+               // For use in libraries implementing .is()
+               // We use this for POS matching in `select`
+               "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" +
+                       whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" )
+       },
+
+       rinputs = /^(?:input|select|textarea|button)$/i,
+       rheader = /^h\d$/i,
+
+       rnative = /^[^{]+\{\s*\[native \w/,
+
+       // Easily-parseable/retrievable ID or TAG or CLASS selectors
+       rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
+
+       rsibling = /[+~]/,
+
+       // CSS escapes
+       // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters
+       runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ),
+       funescape = function( _, escaped, escapedWhitespace ) {
+               var high = "0x" + escaped - 0x10000;
+               // NaN means non-codepoint
+               // Support: Firefox<24
+               // Workaround erroneous numeric interpretation of +"0x"
+               return high !== high || escapedWhitespace ?
+                       escaped :
+                       high < 0 ?
+                               // BMP codepoint
+                               String.fromCharCode( high + 0x10000 ) :
+                               // Supplemental Plane codepoint (surrogate pair)
+                               String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );
+       },
+
+       // CSS string/identifier serialization
+       // https://drafts.csswg.org/cssom/#common-serializing-idioms
+       rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,
+       fcssescape = function( ch, asCodePoint ) {
+               if ( asCodePoint ) {
+
+                       // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER
+                       if ( ch === "\0" ) {
+                               return "\uFFFD";
+                       }
+
+                       // Control characters and (dependent upon position) numbers get escaped as code points
+                       return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " ";
+               }
+
+               // Other potentially-special ASCII characters get backslash-escaped
+               return "\\" + ch;
+       },
+
+       // Used for iframes
+       // See setDocument()
+       // Removing the function wrapper causes a "Permission Denied"
+       // error in IE
+       unloadHandler = function() {
+               setDocument();
+       },
+
+       disabledAncestor = addCombinator(
+               function( elem ) {
+                       return elem.disabled === true && ("form" in elem || "label" in elem);
+               },
+               { dir: "parentNode", next: "legend" }
+       );
+
+// Optimize for push.apply( _, NodeList )
+try {
+       push.apply(
+               (arr = slice.call( preferredDoc.childNodes )),
+               preferredDoc.childNodes
+       );
+       // Support: Android<4.0
+       // Detect silently failing push.apply
+       arr[ preferredDoc.childNodes.length ].nodeType;
+} catch ( e ) {
+       push = { apply: arr.length ?
+
+               // Leverage slice if possible
+               function( target, els ) {
+                       push_native.apply( target, slice.call(els) );
+               } :
+
+               // Support: IE<9
+               // Otherwise append directly
+               function( target, els ) {
+                       var j = target.length,
+                               i = 0;
+                       // Can't trust NodeList.length
+                       while ( (target[j++] = els[i++]) ) {}
+                       target.length = j - 1;
+               }
+       };
+}
+
+function Sizzle( selector, context, results, seed ) {
+       var m, i, elem, nid, match, groups, newSelector,
+               newContext = context && context.ownerDocument,
+
+               // nodeType defaults to 9, since context defaults to document
+               nodeType = context ? context.nodeType : 9;
+
+       results = results || [];
+
+       // Return early from calls with invalid selector or context
+       if ( typeof selector !== "string" || !selector ||
+               nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {
+
+               return results;
+       }
+
+       // Try to shortcut find operations (as opposed to filters) in HTML documents
+       if ( !seed ) {
+
+               if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {
+                       setDocument( context );
+               }
+               context = context || document;
+
+               if ( documentIsHTML ) {
+
+                       // If the selector is sufficiently simple, try using a "get*By*" DOM method
+                       // (excepting DocumentFragment context, where the methods don't exist)
+                       if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) {
+
+                               // ID selector
+                               if ( (m = match[1]) ) {
+
+                                       // Document context
+                                       if ( nodeType === 9 ) {
+                                               if ( (elem = context.getElementById( m )) ) {
+
+                                                       // Support: IE, Opera, Webkit
+                                                       // TODO: identify versions
+                                                       // getElementById can match elements by name instead of ID
+                                                       if ( elem.id === m ) {
+                                                               results.push( elem );
+                                                               return results;
+                                                       }
+                                               } else {
+                                                       return results;
+                                               }
+
+                                       // Element context
+                                       } else {
+
+                                               // Support: IE, Opera, Webkit
+                                               // TODO: identify versions
+                                               // getElementById can match elements by name instead of ID
+                                               if ( newContext && (elem = newContext.getElementById( m )) &&
+                                                       contains( context, elem ) &&
+                                                       elem.id === m ) {
+
+                                                       results.push( elem );
+                                                       return results;
+                                               }
+                                       }
+
+                               // Type selector
+                               } else if ( match[2] ) {
+                                       push.apply( results, context.getElementsByTagName( selector ) );
+                                       return results;
+
+                               // Class selector
+                               } else if ( (m = match[3]) && support.getElementsByClassName &&
+                                       context.getElementsByClassName ) {
+
+                                       push.apply( results, context.getElementsByClassName( m ) );
+                                       return results;
+                               }
+                       }
+
+                       // Take advantage of querySelectorAll
+                       if ( support.qsa &&
+                               !compilerCache[ selector + " " ] &&
+                               (!rbuggyQSA || !rbuggyQSA.test( selector )) ) {
+
+                               if ( nodeType !== 1 ) {
+                                       newContext = context;
+                                       newSelector = selector;
+
+                               // qSA looks outside Element context, which is not what we want
+                               // Thanks to Andrew Dupont for this workaround technique
+                               // Support: IE <=8
+                               // Exclude object elements
+                               } else if ( context.nodeName.toLowerCase() !== "object" ) {
+
+                                       // Capture the context ID, setting it first if necessary
+                                       if ( (nid = context.getAttribute( "id" )) ) {
+                                               nid = nid.replace( rcssescape, fcssescape );
+                                       } else {
+                                               context.setAttribute( "id", (nid = expando) );
+                                       }
+
+                                       // Prefix every selector in the list
+                                       groups = tokenize( selector );
+                                       i = groups.length;
+                                       while ( i-- ) {
+                                               groups[i] = "#" + nid + " " + toSelector( groups[i] );
+                                       }
+                                       newSelector = groups.join( "," );
+
+                                       // Expand context for sibling selectors
+                                       newContext = rsibling.test( selector ) && testContext( context.parentNode ) ||
+                                               context;
+                               }
+
+                               if ( newSelector ) {
+                                       try {
+                                               push.apply( results,
+                                                       newContext.querySelectorAll( newSelector )
+                                               );
+                                               return results;
+                                       } catch ( qsaError ) {
+                                       } finally {
+                                               if ( nid === expando ) {
+                                                       context.removeAttribute( "id" );
+                                               }
+                                       }
+                               }
+                       }
+               }
+       }
+
+       // All others
+       return select( selector.replace( rtrim, "$1" ), context, results, seed );
+}
+
+/**
+ * Create key-value caches of limited size
+ * @returns {function(string, object)} Returns the Object data after storing it on itself with
+ *     property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)
+ *     deleting the oldest entry
+ */
+function createCache() {
+       var keys = [];
+
+       function cache( key, value ) {
+               // Use (key + " ") to avoid collision with native prototype properties (see Issue #157)
+               if ( keys.push( key + " " ) > Expr.cacheLength ) {
+                       // Only keep the most recent entries
+                       delete cache[ keys.shift() ];
+               }
+               return (cache[ key + " " ] = value);
+       }
+       return cache;
+}
+
+/**
+ * Mark a function for special use by Sizzle
+ * @param {Function} fn The function to mark
+ */
+function markFunction( fn ) {
+       fn[ expando ] = true;
+       return fn;
+}
+
+/**
+ * Support testing using an element
+ * @param {Function} fn Passed the created element and returns a boolean result
+ */
+function assert( fn ) {
+       var el = document.createElement("fieldset");
+
+       try {
+               return !!fn( el );
+       } catch (e) {
+               return false;
+       } finally {
+               // Remove from its parent by default
+               if ( el.parentNode ) {
+                       el.parentNode.removeChild( el );
+               }
+               // release memory in IE
+               el = null;
+       }
+}
+
+/**
+ * Adds the same handler for all of the specified attrs
+ * @param {String} attrs Pipe-separated list of attributes
+ * @param {Function} handler The method that will be applied
+ */
+function addHandle( attrs, handler ) {
+       var arr = attrs.split("|"),
+               i = arr.length;
+
+       while ( i-- ) {
+               Expr.attrHandle[ arr[i] ] = handler;
+       }
+}
+
+/**
+ * Checks document order of two siblings
+ * @param {Element} a
+ * @param {Element} b
+ * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b
+ */
+function siblingCheck( a, b ) {
+       var cur = b && a,
+               diff = cur && a.nodeType === 1 && b.nodeType === 1 &&
+                       a.sourceIndex - b.sourceIndex;
+
+       // Use IE sourceIndex if available on both nodes
+       if ( diff ) {
+               return diff;
+       }
+
+       // Check if b follows a
+       if ( cur ) {
+               while ( (cur = cur.nextSibling) ) {
+                       if ( cur === b ) {
+                               return -1;
+                       }
+               }
+       }
+
+       return a ? 1 : -1;
+}
+
+/**
+ * Returns a function to use in pseudos for input types
+ * @param {String} type
+ */
+function createInputPseudo( type ) {
+       return function( elem ) {
+               var name = elem.nodeName.toLowerCase();
+               return name === "input" && elem.type === type;
+       };
+}
+
+/**
+ * Returns a function to use in pseudos for buttons
+ * @param {String} type
+ */
+function createButtonPseudo( type ) {
+       return function( elem ) {
+               var name = elem.nodeName.toLowerCase();
+               return (name === "input" || name === "button") && elem.type === type;
+       };
+}
+
+/**
+ * Returns a function to use in pseudos for :enabled/:disabled
+ * @param {Boolean} disabled true for :disabled; false for :enabled
+ */
+function createDisabledPseudo( disabled ) {
+
+       // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable
+       return function( elem ) {
+
+               // Only certain elements can match :enabled or :disabled
+               // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled
+               // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled
+               if ( "form" in elem ) {
+
+                       // Check for inherited disabledness on relevant non-disabled elements:
+                       // * listed form-associated elements in a disabled fieldset
+                       //   https://html.spec.whatwg.org/multipage/forms.html#category-listed
+                       //   https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled
+                       // * option elements in a disabled optgroup
+                       //   https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled
+                       // All such elements have a "form" property.
+                       if ( elem.parentNode && elem.disabled === false ) {
+
+                               // Option elements defer to a parent optgroup if present
+                               if ( "label" in elem ) {
+                                       if ( "label" in elem.parentNode ) {
+                                               return elem.parentNode.disabled === disabled;
+                                       } else {
+                                               return elem.disabled === disabled;
+                                       }
+                               }
+
+                               // Support: IE 6 - 11
+                               // Use the isDisabled shortcut property to check for disabled fieldset ancestors
+                               return elem.isDisabled === disabled ||
+
+                                       // Where there is no isDisabled, check manually
+                                       /* jshint -W018 */
+                                       elem.isDisabled !== !disabled &&
+                                               disabledAncestor( elem ) === disabled;
+                       }
+
+                       return elem.disabled === disabled;
+
+               // Try to winnow out elements that can't be disabled before trusting the disabled property.
+               // Some victims get caught in our net (label, legend, menu, track), but it shouldn't
+               // even exist on them, let alone have a boolean value.
+               } else if ( "label" in elem ) {
+                       return elem.disabled === disabled;
+               }
+
+               // Remaining elements are neither :enabled nor :disabled
+               return false;
+       };
+}
+
+/**
+ * Returns a function to use in pseudos for positionals
+ * @param {Function} fn
+ */
+function createPositionalPseudo( fn ) {
+       return markFunction(function( argument ) {
+               argument = +argument;
+               return markFunction(function( seed, matches ) {
+                       var j,
+                               matchIndexes = fn( [], seed.length, argument ),
+                               i = matchIndexes.length;
+
+                       // Match elements found at the specified indexes
+                       while ( i-- ) {
+                               if ( seed[ (j = matchIndexes[i]) ] ) {
+                                       seed[j] = !(matches[j] = seed[j]);
+                               }
+                       }
+               });
+       });
+}
+
+/**
+ * Checks a node for validity as a Sizzle context
+ * @param {Element|Object=} context
+ * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value
+ */
+function testContext( context ) {
+       return context && typeof context.getElementsByTagName !== "undefined" && context;
+}
+
+// Expose support vars for convenience
+support = Sizzle.support = {};
+
+/**
+ * Detects XML nodes
+ * @param {Element|Object} elem An element or a document
+ * @returns {Boolean} True iff elem is a non-HTML XML node
+ */
+isXML = Sizzle.isXML = function( elem ) {
+       // documentElement is verified for cases where it doesn't yet exist
+       // (such as loading iframes in IE - #4833)
+       var documentElement = elem && (elem.ownerDocument || elem).documentElement;
+       return documentElement ? documentElement.nodeName !== "HTML" : false;
+};
+
+/**
+ * Sets document-related variables once based on the current document
+ * @param {Element|Object} [doc] An element or document object to use to set the document
+ * @returns {Object} Returns the current document
+ */
+setDocument = Sizzle.setDocument = function( node ) {
+       var hasCompare, subWindow,
+               doc = node ? node.ownerDocument || node : preferredDoc;
+
+       // Return early if doc is invalid or already selected
+       if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {
+               return document;
+       }
+
+       // Update global variables
+       document = doc;
+       docElem = document.documentElement;
+       documentIsHTML = !isXML( document );
+
+       // Support: IE 9-11, Edge
+       // Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936)
+       if ( preferredDoc !== document &&
+               (subWindow = document.defaultView) && subWindow.top !== subWindow ) {
+
+               // Support: IE 11, Edge
+               if ( subWindow.addEventListener ) {
+                       subWindow.addEventListener( "unload", unloadHandler, false );
+
+               // Support: IE 9 - 10 only
+               } else if ( subWindow.attachEvent ) {
+                       subWindow.attachEvent( "onunload", unloadHandler );
+               }
+       }
+
+       /* Attributes
+       ---------------------------------------------------------------------- */
+
+       // Support: IE<8
+       // Verify that getAttribute really returns attributes and not properties
+       // (excepting IE8 booleans)
+       support.attributes = assert(function( el ) {
+               el.className = "i";
+               return !el.getAttribute("className");
+       });
+
+       /* getElement(s)By*
+       ---------------------------------------------------------------------- */
+
+       // Check if getElementsByTagName("*") returns only elements
+       support.getElementsByTagName = assert(function( el ) {
+               el.appendChild( document.createComment("") );
+               return !el.getElementsByTagName("*").length;
+       });
+
+       // Support: IE<9
+       support.getElementsByClassName = rnative.test( document.getElementsByClassName );
+
+       // Support: IE<10
+       // Check if getElementById returns elements by name
+       // The broken getElementById methods don't pick up programmatically-set names,
+       // so use a roundabout getElementsByName test
+       support.getById = assert(function( el ) {
+               docElem.appendChild( el ).id = expando;
+               return !document.getElementsByName || !document.getElementsByName( expando ).length;
+       });
+
+       // ID filter and find
+       if ( support.getById ) {
+               Expr.filter["ID"] = function( id ) {
+                       var attrId = id.replace( runescape, funescape );
+                       return function( elem ) {
+                               return elem.getAttribute("id") === attrId;
+                       };
+               };
+               Expr.find["ID"] = function( id, context ) {
+                       if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
+                               var elem = context.getElementById( id );
+                               return elem ? [ elem ] : [];
+                       }
+               };
+       } else {
+               Expr.filter["ID"] =  function( id ) {
+                       var attrId = id.replace( runescape, funescape );
+                       return function( elem ) {
+                               var node = typeof elem.getAttributeNode !== "undefined" &&
+                                       elem.getAttributeNode("id");
+                               return node && node.value === attrId;
+                       };
+               };
+
+               // Support: IE 6 - 7 only
+               // getElementById is not reliable as a find shortcut
+               Expr.find["ID"] = function( id, context ) {
+                       if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
+                               var node, i, elems,
+                                       elem = context.getElementById( id );
+
+                               if ( elem ) {
+
+                                       // Verify the id attribute
+                                       node = elem.getAttributeNode("id");
+                                       if ( node && node.value === id ) {
+                                               return [ elem ];
+                                       }
+
+                                       // Fall back on getElementsByName
+                                       elems = context.getElementsByName( id );
+                                       i = 0;
+                                       while ( (elem = elems[i++]) ) {
+                                               node = elem.getAttributeNode("id");
+                                               if ( node && node.value === id ) {
+                                                       return [ elem ];
+                                               }
+                                       }
+                               }
+
+                               return [];
+                       }
+               };
+       }
+
+       // Tag
+       Expr.find["TAG"] = support.getElementsByTagName ?
+               function( tag, context ) {
+                       if ( typeof context.getElementsByTagName !== "undefined" ) {
+                               return context.getElementsByTagName( tag );
+
+                       // DocumentFragment nodes don't have gEBTN
+                       } else if ( support.qsa ) {
+                               return context.querySelectorAll( tag );
+                       }
+               } :
+
+               function( tag, context ) {
+                       var elem,
+                               tmp = [],
+                               i = 0,
+                               // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too
+                               results = context.getElementsByTagName( tag );
+
+                       // Filter out possible comments
+                       if ( tag === "*" ) {
+                               while ( (elem = results[i++]) ) {
+                                       if ( elem.nodeType === 1 ) {
+                                               tmp.push( elem );
+                                       }
+                               }
+
+                               return tmp;
+                       }
+                       return results;
+               };
+
+       // Class
+       Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) {
+               if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) {
+                       return context.getElementsByClassName( className );
+               }
+       };
+
+       /* QSA/matchesSelector
+       ---------------------------------------------------------------------- */
+
+       // QSA and matchesSelector support
+
+       // matchesSelector(:active) reports false when true (IE9/Opera 11.5)
+       rbuggyMatches = [];
+
+       // qSa(:focus) reports false when true (Chrome 21)
+       // We allow this because of a bug in IE8/9 that throws an error
+       // whenever `document.activeElement` is accessed on an iframe
+       // So, we allow :focus to pass through QSA all the time to avoid the IE error
+       // See https://bugs.jquery.com/ticket/13378
+       rbuggyQSA = [];
+
+       if ( (support.qsa = rnative.test( document.querySelectorAll )) ) {
+               // Build QSA regex
+               // Regex strategy adopted from Diego Perini
+               assert(function( el ) {
+                       // Select is set to empty string on purpose
+                       // This is to test IE's treatment of not explicitly
+                       // setting a boolean content attribute,
+                       // since its presence should be enough
+                       // https://bugs.jquery.com/ticket/12359
+                       docElem.appendChild( el ).innerHTML = "<a id='" + expando + "'></a>" +
+                               "<select id='" + expando + "-\r\\' msallowcapture=''>" +
+                               "<option selected=''></option></select>";
+
+                       // Support: IE8, Opera 11-12.16
+                       // Nothing should be selected when empty strings follow ^= or $= or *=
+                       // The test attribute must be unknown in Opera but "safe" for WinRT
+                       // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section
+                       if ( el.querySelectorAll("[msallowcapture^='']").length ) {
+                               rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" );
+                       }
+
+                       // Support: IE8
+                       // Boolean attributes and "value" are not treated correctly
+                       if ( !el.querySelectorAll("[selected]").length ) {
+                               rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" );
+                       }
+
+                       // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+
+                       if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) {
+                               rbuggyQSA.push("~=");
+                       }
+
+                       // Webkit/Opera - :checked should return selected option elements
+                       // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
+                       // IE8 throws error here and will not see later tests
+                       if ( !el.querySelectorAll(":checked").length ) {
+                               rbuggyQSA.push(":checked");
+                       }
+
+                       // Support: Safari 8+, iOS 8+
+                       // https://bugs.webkit.org/show_bug.cgi?id=136851
+                       // In-page `selector#id sibling-combinator selector` fails
+                       if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) {
+                               rbuggyQSA.push(".#.+[+~]");
+                       }
+               });
+
+               assert(function( el ) {
+                       el.innerHTML = "<a href='' disabled='disabled'></a>" +
+                               "<select disabled='disabled'><option/></select>";
+
+                       // Support: Windows 8 Native Apps
+                       // The type and name attributes are restricted during .innerHTML assignment
+                       var input = document.createElement("input");
+                       input.setAttribute( "type", "hidden" );
+                       el.appendChild( input ).setAttribute( "name", "D" );
+
+                       // Support: IE8
+                       // Enforce case-sensitivity of name attribute
+                       if ( el.querySelectorAll("[name=d]").length ) {
+                               rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" );
+                       }
+
+                       // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)
+                       // IE8 throws error here and will not see later tests
+                       if ( el.querySelectorAll(":enabled").length !== 2 ) {
+                               rbuggyQSA.push( ":enabled", ":disabled" );
+                       }
+
+                       // Support: IE9-11+
+                       // IE's :disabled selector does not pick up the children of disabled fieldsets
+                       docElem.appendChild( el ).disabled = true;
+                       if ( el.querySelectorAll(":disabled").length !== 2 ) {
+                               rbuggyQSA.push( ":enabled", ":disabled" );
+                       }
+
+                       // Opera 10-11 does not throw on post-comma invalid pseudos
+                       el.querySelectorAll("*,:x");
+                       rbuggyQSA.push(",.*:");
+               });
+       }
+
+       if ( (support.matchesSelector = rnative.test( (matches = docElem.matches ||
+               docElem.webkitMatchesSelector ||
+               docElem.mozMatchesSelector ||
+               docElem.oMatchesSelector ||
+               docElem.msMatchesSelector) )) ) {
+
+               assert(function( el ) {
+                       // Check to see if it's possible to do matchesSelector
+                       // on a disconnected node (IE 9)
+                       support.disconnectedMatch = matches.call( el, "*" );
+
+                       // This should fail with an exception
+                       // Gecko does not error, returns false instead
+                       matches.call( el, "[s!='']:x" );
+                       rbuggyMatches.push( "!=", pseudos );
+               });
+       }
+
+       rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") );
+       rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") );
+
+       /* Contains
+       ---------------------------------------------------------------------- */
+       hasCompare = rnative.test( docElem.compareDocumentPosition );
+
+       // Element contains another
+       // Purposefully self-exclusive
+       // As in, an element does not contain itself
+       contains = hasCompare || rnative.test( docElem.contains ) ?
+               function( a, b ) {
+                       var adown = a.nodeType === 9 ? a.documentElement : a,
+                               bup = b && b.parentNode;
+                       return a === bup || !!( bup && bup.nodeType === 1 && (
+                               adown.contains ?
+                                       adown.contains( bup ) :
+                                       a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16
+                       ));
+               } :
+               function( a, b ) {
+                       if ( b ) {
+                               while ( (b = b.parentNode) ) {
+                                       if ( b === a ) {
+                                               return true;
+                                       }
+                               }
+                       }
+                       return false;
+               };
+
+       /* Sorting
+       ---------------------------------------------------------------------- */
+
+       // Document order sorting
+       sortOrder = hasCompare ?
+       function( a, b ) {
+
+               // Flag for duplicate removal
+               if ( a === b ) {
+                       hasDuplicate = true;
+                       return 0;
+               }
+
+               // Sort on method existence if only one input has compareDocumentPosition
+               var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;
+               if ( compare ) {
+                       return compare;
+               }
+
+               // Calculate position if both inputs belong to the same document
+               compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?
+                       a.compareDocumentPosition( b ) :
+
+                       // Otherwise we know they are disconnected
+                       1;
+
+               // Disconnected nodes
+               if ( compare & 1 ||
+                       (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {
+
+                       // Choose the first element that is related to our preferred document
+                       if ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) {
+                               return -1;
+                       }
+                       if ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) {
+                               return 1;
+                       }
+
+                       // Maintain original order
+                       return sortInput ?
+                               ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
+                               0;
+               }
+
+               return compare & 4 ? -1 : 1;
+       } :
+       function( a, b ) {
+               // Exit early if the nodes are identical
+               if ( a === b ) {
+                       hasDuplicate = true;
+                       return 0;
+               }
+
+               var cur,
+                       i = 0,
+                       aup = a.parentNode,
+                       bup = b.parentNode,
+                       ap = [ a ],
+                       bp = [ b ];
+
+               // Parentless nodes are either documents or disconnected
+               if ( !aup || !bup ) {
+                       return a === document ? -1 :
+                               b === document ? 1 :
+                               aup ? -1 :
+                               bup ? 1 :
+                               sortInput ?
+                               ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
+                               0;
+
+               // If the nodes are siblings, we can do a quick check
+               } else if ( aup === bup ) {
+                       return siblingCheck( a, b );
+               }
+
+               // Otherwise we need full lists of their ancestors for comparison
+               cur = a;
+               while ( (cur = cur.parentNode) ) {
+                       ap.unshift( cur );
+               }
+               cur = b;
+               while ( (cur = cur.parentNode) ) {
+                       bp.unshift( cur );
+               }
+
+               // Walk down the tree looking for a discrepancy
+               while ( ap[i] === bp[i] ) {
+                       i++;
+               }
+
+               return i ?
+                       // Do a sibling check if the nodes have a common ancestor
+                       siblingCheck( ap[i], bp[i] ) :
+
+                       // Otherwise nodes in our document sort first
+                       ap[i] === preferredDoc ? -1 :
+                       bp[i] === preferredDoc ? 1 :
+                       0;
+       };
+
+       return document;
+};
+
+Sizzle.matches = function( expr, elements ) {
+       return Sizzle( expr, null, null, elements );
+};
+
+Sizzle.matchesSelector = function( elem, expr ) {
+       // Set document vars if needed
+       if ( ( elem.ownerDocument || elem ) !== document ) {
+               setDocument( elem );
+       }
+
+       // Make sure that attribute selectors are quoted
+       expr = expr.replace( rattributeQuotes, "='$1']" );
+
+       if ( support.matchesSelector && documentIsHTML &&
+               !compilerCache[ expr + " " ] &&
+               ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&
+               ( !rbuggyQSA     || !rbuggyQSA.test( expr ) ) ) {
+
+               try {
+                       var ret = matches.call( elem, expr );
+
+                       // IE 9's matchesSelector returns false on disconnected nodes
+                       if ( ret || support.disconnectedMatch ||
+                                       // As well, disconnected nodes are said to be in a document
+                                       // fragment in IE 9
+                                       elem.document && elem.document.nodeType !== 11 ) {
+                               return ret;
+                       }
+               } catch (e) {}
+       }
+
+       return Sizzle( expr, document, null, [ elem ] ).length > 0;
+};
+
+Sizzle.contains = function( context, elem ) {
+       // Set document vars if needed
+       if ( ( context.ownerDocument || context ) !== document ) {
+               setDocument( context );
+       }
+       return contains( context, elem );
+};
+
+Sizzle.attr = function( elem, name ) {
+       // Set document vars if needed
+       if ( ( elem.ownerDocument || elem ) !== document ) {
+               setDocument( elem );
+       }
+
+       var fn = Expr.attrHandle[ name.toLowerCase() ],
+               // Don't get fooled by Object.prototype properties (jQuery #13807)
+               val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?
+                       fn( elem, name, !documentIsHTML ) :
+                       undefined;
+
+       return val !== undefined ?
+               val :
+               support.attributes || !documentIsHTML ?
+                       elem.getAttribute( name ) :
+                       (val = elem.getAttributeNode(name)) && val.specified ?
+                               val.value :
+                               null;
+};
+
+Sizzle.escape = function( sel ) {
+       return (sel + "").replace( rcssescape, fcssescape );
+};
+
+Sizzle.error = function( msg ) {
+       throw new Error( "Syntax error, unrecognized expression: " + msg );
+};
+
+/**
+ * Document sorting and removing duplicates
+ * @param {ArrayLike} results
+ */
+Sizzle.uniqueSort = function( results ) {
+       var elem,
+               duplicates = [],
+               j = 0,
+               i = 0;
+
+       // Unless we *know* we can detect duplicates, assume their presence
+       hasDuplicate = !support.detectDuplicates;
+       sortInput = !support.sortStable && results.slice( 0 );
+       results.sort( sortOrder );
+
+       if ( hasDuplicate ) {
+               while ( (elem = results[i++]) ) {
+                       if ( elem === results[ i ] ) {
+                               j = duplicates.push( i );
+                       }
+               }
+               while ( j-- ) {
+                       results.splice( duplicates[ j ], 1 );
+               }
+       }
+
+       // Clear input after sorting to release objects
+       // See https://github.com/jquery/sizzle/pull/225
+       sortInput = null;
+
+       return results;
+};
+
+/**
+ * Utility function for retrieving the text value of an array of DOM nodes
+ * @param {Array|Element} elem
+ */
+getText = Sizzle.getText = function( elem ) {
+       var node,
+               ret = "",
+               i = 0,
+               nodeType = elem.nodeType;
+
+       if ( !nodeType ) {
+               // If no nodeType, this is expected to be an array
+               while ( (node = elem[i++]) ) {
+                       // Do not traverse comment nodes
+                       ret += getText( node );
+               }
+       } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {
+               // Use textContent for elements
+               // innerText usage removed for consistency of new lines (jQuery #11153)
+               if ( typeof elem.textContent === "string" ) {
+                       return elem.textContent;
+               } else {
+                       // Traverse its children
+                       for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
+                               ret += getText( elem );
+                       }
+               }
+       } else if ( nodeType === 3 || nodeType === 4 ) {
+               return elem.nodeValue;
+       }
+       // Do not include comment or processing instruction nodes
+
+       return ret;
+};
+
+Expr = Sizzle.selectors = {
+
+       // Can be adjusted by the user
+       cacheLength: 50,
+
+       createPseudo: markFunction,
+
+       match: matchExpr,
+
+       attrHandle: {},
+
+       find: {},
+
+       relative: {
+               ">": { dir: "parentNode", first: true },
+               " ": { dir: "parentNode" },
+               "+": { dir: "previousSibling", first: true },
+               "~": { dir: "previousSibling" }
+       },
+
+       preFilter: {
+               "ATTR": function( match ) {
+                       match[1] = match[1].replace( runescape, funescape );
+
+                       // Move the given value to match[3] whether quoted or unquoted
+                       match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape );
+
+                       if ( match[2] === "~=" ) {
+                               match[3] = " " + match[3] + " ";
+                       }
+
+                       return match.slice( 0, 4 );
+               },
+
+               "CHILD": function( match ) {
+                       /* matches from matchExpr["CHILD"]
+                               1 type (only|nth|...)
+                               2 what (child|of-type)
+                               3 argument (even|odd|\d*|\d*n([+-]\d+)?|...)
+                               4 xn-component of xn+y argument ([+-]?\d*n|)
+                               5 sign of xn-component
+                               6 x of xn-component
+                               7 sign of y-component
+                               8 y of y-component
+                       */
+                       match[1] = match[1].toLowerCase();
+
+                       if ( match[1].slice( 0, 3 ) === "nth" ) {
+                               // nth-* requires argument
+                               if ( !match[3] ) {
+                                       Sizzle.error( match[0] );
+                               }
+
+                               // numeric x and y parameters for Expr.filter.CHILD
+                               // remember that false/true cast respectively to 0/1
+                               match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) );
+                               match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" );
+
+                       // other types prohibit arguments
+                       } else if ( match[3] ) {
+                               Sizzle.error( match[0] );
+                       }
+
+                       return match;
+               },
+
+               "PSEUDO": function( match ) {
+                       var excess,
+                               unquoted = !match[6] && match[2];
+
+                       if ( matchExpr["CHILD"].test( match[0] ) ) {
+                               return null;
+                       }
+
+                       // Accept quoted arguments as-is
+                       if ( match[3] ) {
+                               match[2] = match[4] || match[5] || "";
+
+                       // Strip excess characters from unquoted arguments
+                       } else if ( unquoted && rpseudo.test( unquoted ) &&
+                               // Get excess from tokenize (recursively)
+                               (excess = tokenize( unquoted, true )) &&
+                               // advance to the next closing parenthesis
+                               (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) {
+
+                               // excess is a negative index
+                               match[0] = match[0].slice( 0, excess );
+                               match[2] = unquoted.slice( 0, excess );
+                       }
+
+                       // Return only captures needed by the pseudo filter method (type and argument)
+                       return match.slice( 0, 3 );
+               }
+       },
+
+       filter: {
+
+               "TAG": function( nodeNameSelector ) {
+                       var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();
+                       return nodeNameSelector === "*" ?
+                               function() { return true; } :
+                               function( elem ) {
+                                       return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;
+                               };
+               },
+
+               "CLASS": function( className ) {
+                       var pattern = classCache[ className + " " ];
+
+                       return pattern ||
+                               (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) &&
+                               classCache( className, function( elem ) {
+                                       return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" );
+                               });
+               },
+
+               "ATTR": function( name, operator, check ) {
+                       return function( elem ) {
+                               var result = Sizzle.attr( elem, name );
+
+                               if ( result == null ) {
+                                       return operator === "!=";
+                               }
+                               if ( !operator ) {
+                                       return true;
+                               }
+
+                               result += "";
+
+                               return operator === "=" ? result === check :
+                                       operator === "!=" ? result !== check :
+                                       operator === "^=" ? check && result.indexOf( check ) === 0 :
+                                       operator === "*=" ? check && result.indexOf( check ) > -1 :
+                                       operator === "$=" ? check && result.slice( -check.length ) === check :
+                                       operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 :
+                                       operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" :
+                                       false;
+                       };
+               },
+
+               "CHILD": function( type, what, argument, first, last ) {
+                       var simple = type.slice( 0, 3 ) !== "nth",
+                               forward = type.slice( -4 ) !== "last",
+                               ofType = what === "of-type";
+
+                       return first === 1 && last === 0 ?
+
+                               // Shortcut for :nth-*(n)
+                               function( elem ) {
+                                       return !!elem.parentNode;
+                               } :
+
+                               function( elem, context, xml ) {
+                                       var cache, uniqueCache, outerCache, node, nodeIndex, start,
+                                               dir = simple !== forward ? "nextSibling" : "previousSibling",
+                                               parent = elem.parentNode,
+                                               name = ofType && elem.nodeName.toLowerCase(),
+                                               useCache = !xml && !ofType,
+                                               diff = false;
+
+                                       if ( parent ) {
+
+                                               // :(first|last|only)-(child|of-type)
+                                               if ( simple ) {
+                                                       while ( dir ) {
+                                                               node = elem;
+                                                               while ( (node = node[ dir ]) ) {
+                                                                       if ( ofType ?
+                                                                               node.nodeName.toLowerCase() === name :
+                                                                               node.nodeType === 1 ) {
+
+                                                                               return false;
+                                                                       }
+                                                               }
+                                                               // Reverse direction for :only-* (if we haven't yet done so)
+                                                               start = dir = type === "only" && !start && "nextSibling";
+                                                       }
+                                                       return true;
+                                               }
+
+                                               start = [ forward ? parent.firstChild : parent.lastChild ];
+
+                                               // non-xml :nth-child(...) stores cache data on `parent`
+                                               if ( forward && useCache ) {
+
+                                                       // Seek `elem` from a previously-cached index
+
+                                                       // ...in a gzip-friendly way
+                                                       node = parent;
+                                                       outerCache = node[ expando ] || (node[ expando ] = {});
+
+                                                       // Support: IE <9 only
+                                                       // Defend against cloned attroperties (jQuery gh-1709)
+                                                       uniqueCache = outerCache[ node.uniqueID ] ||
+                                                               (outerCache[ node.uniqueID ] = {});
+
+                                                       cache = uniqueCache[ type ] || [];
+                                                       nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
+                                                       diff = nodeIndex && cache[ 2 ];
+                                                       node = nodeIndex && parent.childNodes[ nodeIndex ];
+
+                                                       while ( (node = ++nodeIndex && node && node[ dir ] ||
+
+                                                               // Fallback to seeking `elem` from the start
+                                                               (diff = nodeIndex = 0) || start.pop()) ) {
+
+                                                               // When found, cache indexes on `parent` and break
+                                                               if ( node.nodeType === 1 && ++diff && node === elem ) {
+                                                                       uniqueCache[ type ] = [ dirruns, nodeIndex, diff ];
+                                                                       break;
+                                                               }
+                                                       }
+
+                                               } else {
+                                                       // Use previously-cached element index if available
+                                                       if ( useCache ) {
+                                                               // ...in a gzip-friendly way
+                                                               node = elem;
+                                                               outerCache = node[ expando ] || (node[ expando ] = {});
+
+                                                               // Support: IE <9 only
+                                                               // Defend against cloned attroperties (jQuery gh-1709)
+                                                               uniqueCache = outerCache[ node.uniqueID ] ||
+                                                                       (outerCache[ node.uniqueID ] = {});
+
+                                                               cache = uniqueCache[ type ] || [];
+                                                               nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
+                                                               diff = nodeIndex;
+                                                       }
+
+                                                       // xml :nth-child(...)
+                                                       // or :nth-last-child(...) or :nth(-last)?-of-type(...)
+                                                       if ( diff === false ) {
+                                                               // Use the same loop as above to seek `elem` from the start
+                                                               while ( (node = ++nodeIndex && node && node[ dir ] ||
+                                                                       (diff = nodeIndex = 0) || start.pop()) ) {
+
+                                                                       if ( ( ofType ?
+                                                                               node.nodeName.toLowerCase() === name :
+                                                                               node.nodeType === 1 ) &&
+                                                                               ++diff ) {
+
+                                                                               // Cache the index of each encountered element
+                                                                               if ( useCache ) {
+                                                                                       outerCache = node[ expando ] || (node[ expando ] = {});
+
+                                                                                       // Support: IE <9 only
+                                                                                       // Defend against cloned attroperties (jQuery gh-1709)
+                                                                                       uniqueCache = outerCache[ node.uniqueID ] ||
+                                                                                               (outerCache[ node.uniqueID ] = {});
+
+                                                                                       uniqueCache[ type ] = [ dirruns, diff ];
+                                                                               }
+
+                                                                               if ( node === elem ) {
+                                                                                       break;
+                                                                               }
+                                                                       }
+                                                               }
+                                                       }
+                                               }
+
+                                               // Incorporate the offset, then check against cycle size
+                                               diff -= last;
+                                               return diff === first || ( diff % first === 0 && diff / first >= 0 );
+                                       }
+                               };
+               },
+
+               "PSEUDO": function( pseudo, argument ) {
+                       // pseudo-class names are case-insensitive
+                       // http://www.w3.org/TR/selectors/#pseudo-classes
+                       // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters
+                       // Remember that setFilters inherits from pseudos
+                       var args,
+                               fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||
+                                       Sizzle.error( "unsupported pseudo: " + pseudo );
+
+                       // The user may use createPseudo to indicate that
+                       // arguments are needed to create the filter function
+                       // just as Sizzle does
+                       if ( fn[ expando ] ) {
+                               return fn( argument );
+                       }
+
+                       // But maintain support for old signatures
+                       if ( fn.length > 1 ) {
+                               args = [ pseudo, pseudo, "", argument ];
+                               return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?
+                                       markFunction(function( seed, matches ) {
+                                               var idx,
+                                                       matched = fn( seed, argument ),
+                                                       i = matched.length;
+                                               while ( i-- ) {
+                                                       idx = indexOf( seed, matched[i] );
+                                                       seed[ idx ] = !( matches[ idx ] = matched[i] );
+                                               }
+                                       }) :
+                                       function( elem ) {
+                                               return fn( elem, 0, args );
+                                       };
+                       }
+
+                       return fn;
+               }
+       },
+
+       pseudos: {
+               // Potentially complex pseudos
+               "not": markFunction(function( selector ) {
+                       // Trim the selector passed to compile
+                       // to avoid treating leading and trailing
+                       // spaces as combinators
+                       var input = [],
+                               results = [],
+                               matcher = compile( selector.replace( rtrim, "$1" ) );
+
+                       return matcher[ expando ] ?
+                               markFunction(function( seed, matches, context, xml ) {
+                                       var elem,
+                                               unmatched = matcher( seed, null, xml, [] ),
+                                               i = seed.length;
+
+                                       // Match elements unmatched by `matcher`
+                                       while ( i-- ) {
+                                               if ( (elem = unmatched[i]) ) {
+                                                       seed[i] = !(matches[i] = elem);
+                                               }
+                                       }
+                               }) :
+                               function( elem, context, xml ) {
+                                       input[0] = elem;
+                                       matcher( input, null, xml, results );
+                                       // Don't keep the element (issue #299)
+                                       input[0] = null;
+                                       return !results.pop();
+                               };
+               }),
+
+               "has": markFunction(function( selector ) {
+                       return function( elem ) {
+                               return Sizzle( selector, elem ).length > 0;
+                       };
+               }),
+
+               "contains": markFunction(function( text ) {
+                       text = text.replace( runescape, funescape );
+                       return function( elem ) {
+                               return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;
+                       };
+               }),
+
+               // "Whether an element is represented by a :lang() selector
+               // is based solely on the element's language value
+               // being equal to the identifier C,
+               // or beginning with the identifier C immediately followed by "-".
+               // The matching of C against the element's language value is performed case-insensitively.
+               // The identifier C does not have to be a valid language name."
+               // http://www.w3.org/TR/selectors/#lang-pseudo
+               "lang": markFunction( function( lang ) {
+                       // lang value must be a valid identifier
+                       if ( !ridentifier.test(lang || "") ) {
+                               Sizzle.error( "unsupported lang: " + lang );
+                       }
+                       lang = lang.replace( runescape, funescape ).toLowerCase();
+                       return function( elem ) {
+                               var elemLang;
+                               do {
+                                       if ( (elemLang = documentIsHTML ?
+                                               elem.lang :
+                                               elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) {
+
+                                               elemLang = elemLang.toLowerCase();
+                                               return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0;
+                                       }
+                               } while ( (elem = elem.parentNode) && elem.nodeType === 1 );
+                               return false;
+                       };
+               }),
+
+               // Miscellaneous
+               "target": function( elem ) {
+                       var hash = window.location && window.location.hash;
+                       return hash && hash.slice( 1 ) === elem.id;
+               },
+
+               "root": function( elem ) {
+                       return elem === docElem;
+               },
+
+               "focus": function( elem ) {
+                       return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);
+               },
+
+               // Boolean properties
+               "enabled": createDisabledPseudo( false ),
+               "disabled": createDisabledPseudo( true ),
+
+               "checked": function( elem ) {
+                       // In CSS3, :checked should return both checked and selected elements
+                       // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
+                       var nodeName = elem.nodeName.toLowerCase();
+                       return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected);
+               },
+
+               "selected": function( elem ) {
+                       // Accessing this property makes selected-by-default
+                       // options in Safari work properly
+                       if ( elem.parentNode ) {
+                               elem.parentNode.selectedIndex;
+                       }
+
+                       return elem.selected === true;
+               },
+
+               // Contents
+               "empty": function( elem ) {
+                       // http://www.w3.org/TR/selectors/#empty-pseudo
+                       // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),
+                       //   but not by others (comment: 8; processing instruction: 7; etc.)
+                       // nodeType < 6 works because attributes (2) do not appear as children
+                       for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
+                               if ( elem.nodeType < 6 ) {
+                                       return false;
+                               }
+                       }
+                       return true;
+               },
+
+               "parent": function( elem ) {
+                       return !Expr.pseudos["empty"]( elem );
+               },
+
+               // Element/input types
+               "header": function( elem ) {
+                       return rheader.test( elem.nodeName );
+               },
+
+               "input": function( elem ) {
+                       return rinputs.test( elem.nodeName );
+               },
+
+               "button": function( elem ) {
+                       var name = elem.nodeName.toLowerCase();
+                       return name === "input" && elem.type === "button" || name === "button";
+               },
+
+               "text": function( elem ) {
+                       var attr;
+                       return elem.nodeName.toLowerCase() === "input" &&
+                               elem.type === "text" &&
+
+                               // Support: IE<8
+                               // New HTML5 attribute values (e.g., "search") appear with elem.type === "text"
+                               ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" );
+               },
+
+               // Position-in-collection
+               "first": createPositionalPseudo(function() {
+                       return [ 0 ];
+               }),
+
+               "last": createPositionalPseudo(function( matchIndexes, length ) {
+                       return [ length - 1 ];
+               }),
+
+               "eq": createPositionalPseudo(function( matchIndexes, length, argument ) {
+                       return [ argument < 0 ? argument + length : argument ];
+               }),
+
+               "even": createPositionalPseudo(function( matchIndexes, length ) {
+                       var i = 0;
+                       for ( ; i < length; i += 2 ) {
+                               matchIndexes.push( i );
+                       }
+                       return matchIndexes;
+               }),
+
+               "odd": createPositionalPseudo(function( matchIndexes, length ) {
+                       var i = 1;
+                       for ( ; i < length; i += 2 ) {
+                               matchIndexes.push( i );
+                       }
+                       return matchIndexes;
+               }),
+
+               "lt": createPositionalPseudo(function( matchIndexes, length, argument ) {
+                       var i = argument < 0 ? argument + length : argument;
+                       for ( ; --i >= 0; ) {
+                               matchIndexes.push( i );
+                       }
+                       return matchIndexes;
+               }),
+
+               "gt": createPositionalPseudo(function( matchIndexes, length, argument ) {
+                       var i = argument < 0 ? argument + length : argument;
+                       for ( ; ++i < length; ) {
+                               matchIndexes.push( i );
+                       }
+                       return matchIndexes;
+               })
+       }
+};
+
+Expr.pseudos["nth"] = Expr.pseudos["eq"];
+
+// Add button/input type pseudos
+for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {
+       Expr.pseudos[ i ] = createInputPseudo( i );
+}
+for ( i in { submit: true, reset: true } ) {
+       Expr.pseudos[ i ] = createButtonPseudo( i );
+}
+
+// Easy API for creating new setFilters
+function setFilters() {}
+setFilters.prototype = Expr.filters = Expr.pseudos;
+Expr.setFilters = new setFilters();
+
+tokenize = Sizzle.tokenize = function( selector, parseOnly ) {
+       var matched, match, tokens, type,
+               soFar, groups, preFilters,
+               cached = tokenCache[ selector + " " ];
+
+       if ( cached ) {
+               return parseOnly ? 0 : cached.slice( 0 );
+       }
+
+       soFar = selector;
+       groups = [];
+       preFilters = Expr.preFilter;
+
+       while ( soFar ) {
+
+               // Comma and first run
+               if ( !matched || (match = rcomma.exec( soFar )) ) {
+                       if ( match ) {
+                               // Don't consume trailing commas as valid
+                               soFar = soFar.slice( match[0].length ) || soFar;
+                       }
+                       groups.push( (tokens = []) );
+               }
+
+               matched = false;
+
+               // Combinators
+               if ( (match = rcombinators.exec( soFar )) ) {
+                       matched = match.shift();
+                       tokens.push({
+                               value: matched,
+                               // Cast descendant combinators to space
+                               type: match[0].replace( rtrim, " " )
+                       });
+                       soFar = soFar.slice( matched.length );
+               }
+
+               // Filters
+               for ( type in Expr.filter ) {
+                       if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||
+                               (match = preFilters[ type ]( match ))) ) {
+                               matched = match.shift();
+                               tokens.push({
+                                       value: matched,
+                                       type: type,
+                                       matches: match
+                               });
+                               soFar = soFar.slice( matched.length );
+                       }
+               }
+
+               if ( !matched ) {
+                       break;
+               }
+       }
+
+       // Return the length of the invalid excess
+       // if we're just parsing
+       // Otherwise, throw an error or return tokens
+       return parseOnly ?
+               soFar.length :
+               soFar ?
+                       Sizzle.error( selector ) :
+                       // Cache the tokens
+                       tokenCache( selector, groups ).slice( 0 );
+};
+
+function toSelector( tokens ) {
+       var i = 0,
+               len = tokens.length,
+               selector = "";
+       for ( ; i < len; i++ ) {
+               selector += tokens[i].value;
+       }
+       return selector;
+}
+
+function addCombinator( matcher, combinator, base ) {
+       var dir = combinator.dir,
+               skip = combinator.next,
+               key = skip || dir,
+               checkNonElements = base && key === "parentNode",
+               doneName = done++;
+
+       return combinator.first ?
+               // Check against closest ancestor/preceding element
+               function( elem, context, xml ) {
+                       while ( (elem = elem[ dir ]) ) {
+                               if ( elem.nodeType === 1 || checkNonElements ) {
+                                       return matcher( elem, context, xml );
+                               }
+                       }
+                       return false;
+               } :
+
+               // Check against all ancestor/preceding elements
+               function( elem, context, xml ) {
+                       var oldCache, uniqueCache, outerCache,
+                               newCache = [ dirruns, doneName ];
+
+                       // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching
+                       if ( xml ) {
+                               while ( (elem = elem[ dir ]) ) {
+                                       if ( elem.nodeType === 1 || checkNonElements ) {
+                                               if ( matcher( elem, context, xml ) ) {
+                                                       return true;
+                                               }
+                                       }
+                               }
+                       } else {
+                               while ( (elem = elem[ dir ]) ) {
+                                       if ( elem.nodeType === 1 || checkNonElements ) {
+                                               outerCache = elem[ expando ] || (elem[ expando ] = {});
+
+                                               // Support: IE <9 only
+                                               // Defend against cloned attroperties (jQuery gh-1709)
+                                               uniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {});
+
+                                               if ( skip && skip === elem.nodeName.toLowerCase() ) {
+                                                       elem = elem[ dir ] || elem;
+                                               } else if ( (oldCache = uniqueCache[ key ]) &&
+                                                       oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {
+
+                                                       // Assign to newCache so results back-propagate to previous elements
+                                                       return (newCache[ 2 ] = oldCache[ 2 ]);
+                                               } else {
+                                                       // Reuse newcache so results back-propagate to previous elements
+                                                       uniqueCache[ key ] = newCache;
+
+                                                       // A match means we're done; a fail means we have to keep checking
+                                                       if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) {
+                                                               return true;
+                                                       }
+                                               }
+                                       }
+                               }
+                       }
+                       return false;
+               };
+}
+
+function elementMatcher( matchers ) {
+       return matchers.length > 1 ?
+               function( elem, context, xml ) {
+                       var i = matchers.length;
+                       while ( i-- ) {
+                               if ( !matchers[i]( elem, context, xml ) ) {
+                                       return false;
+                               }
+                       }
+                       return true;
+               } :
+               matchers[0];
+}
+
+function multipleContexts( selector, contexts, results ) {
+       var i = 0,
+               len = contexts.length;
+       for ( ; i < len; i++ ) {
+               Sizzle( selector, contexts[i], results );
+       }
+       return results;
+}
+
+function condense( unmatched, map, filter, context, xml ) {
+       var elem,
+               newUnmatched = [],
+               i = 0,
+               len = unmatched.length,
+               mapped = map != null;
+
+       for ( ; i < len; i++ ) {
+               if ( (elem = unmatched[i]) ) {
+                       if ( !filter || filter( elem, context, xml ) ) {
+                               newUnmatched.push( elem );
+                               if ( mapped ) {
+                                       map.push( i );
+                               }
+                       }
+               }
+       }
+
+       return newUnmatched;
+}
+
+function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {
+       if ( postFilter && !postFilter[ expando ] ) {
+               postFilter = setMatcher( postFilter );
+       }
+       if ( postFinder && !postFinder[ expando ] ) {
+               postFinder = setMatcher( postFinder, postSelector );
+       }
+       return markFunction(function( seed, results, context, xml ) {
+               var temp, i, elem,
+                       preMap = [],
+                       postMap = [],
+                       preexisting = results.length,
+
+                       // Get initial elements from seed or context
+                       elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ),
+
+                       // Prefilter to get matcher input, preserving a map for seed-results synchronization
+                       matcherIn = preFilter && ( seed || !selector ) ?
+                               condense( elems, preMap, preFilter, context, xml ) :
+                               elems,
+
+                       matcherOut = matcher ?
+                               // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,
+                               postFinder || ( seed ? preFilter : preexisting || postFilter ) ?
+
+                                       // ...intermediate processing is necessary
+                                       [] :
+
+                                       // ...otherwise use results directly
+                                       results :
+                               matcherIn;
+
+               // Find primary matches
+               if ( matcher ) {
+                       matcher( matcherIn, matcherOut, context, xml );
+               }
+
+               // Apply postFilter
+               if ( postFilter ) {
+                       temp = condense( matcherOut, postMap );
+                       postFilter( temp, [], context, xml );
+
+                       // Un-match failing elements by moving them back to matcherIn
+                       i = temp.length;
+                       while ( i-- ) {
+                               if ( (elem = temp[i]) ) {
+                                       matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);
+                               }
+                       }
+               }
+
+               if ( seed ) {
+                       if ( postFinder || preFilter ) {
+                               if ( postFinder ) {
+                                       // Get the final matcherOut by condensing this intermediate into postFinder contexts
+                                       temp = [];
+                                       i = matcherOut.length;
+                                       while ( i-- ) {
+                                               if ( (elem = matcherOut[i]) ) {
+                                                       // Restore matcherIn since elem is not yet a final match
+                                                       temp.push( (matcherIn[i] = elem) );
+                                               }
+                                       }
+                                       postFinder( null, (matcherOut = []), temp, xml );
+                               }
+
+                               // Move matched elements from seed to results to keep them synchronized
+                               i = matcherOut.length;
+                               while ( i-- ) {
+                                       if ( (elem = matcherOut[i]) &&
+                                               (temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) {
+
+                                               seed[temp] = !(results[temp] = elem);
+                                       }
+                               }
+                       }
+
+               // Add elements to results, through postFinder if defined
+               } else {
+                       matcherOut = condense(
+                               matcherOut === results ?
+                                       matcherOut.splice( preexisting, matcherOut.length ) :
+                                       matcherOut
+                       );
+                       if ( postFinder ) {
+                               postFinder( null, results, matcherOut, xml );
+                       } else {
+                               push.apply( results, matcherOut );
+                       }
+               }
+       });
+}
+
+function matcherFromTokens( tokens ) {
+       var checkContext, matcher, j,
+               len = tokens.length,
+               leadingRelative = Expr.relative[ tokens[0].type ],
+               implicitRelative = leadingRelative || Expr.relative[" "],
+               i = leadingRelative ? 1 : 0,
+
+               // The foundational matcher ensures that elements are reachable from top-level context(s)
+               matchContext = addCombinator( function( elem ) {
+                       return elem === checkContext;
+               }, implicitRelative, true ),
+               matchAnyContext = addCombinator( function( elem ) {
+                       return indexOf( checkContext, elem ) > -1;
+               }, implicitRelative, true ),
+               matchers = [ function( elem, context, xml ) {
+                       var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (
+                               (checkContext = context).nodeType ?
+                                       matchContext( elem, context, xml ) :
+                                       matchAnyContext( elem, context, xml ) );
+                       // Avoid hanging onto element (issue #299)
+                       checkContext = null;
+                       return ret;
+               } ];
+
+       for ( ; i < len; i++ ) {
+               if ( (matcher = Expr.relative[ tokens[i].type ]) ) {
+                       matchers = [ addCombinator(elementMatcher( matchers ), matcher) ];
+               } else {
+                       matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );
+
+                       // Return special upon seeing a positional matcher
+                       if ( matcher[ expando ] ) {
+                               // Find the next relative operator (if any) for proper handling
+                               j = ++i;
+                               for ( ; j < len; j++ ) {
+                                       if ( Expr.relative[ tokens[j].type ] ) {
+                                               break;
+                                       }
+                               }
+                               return setMatcher(
+                                       i > 1 && elementMatcher( matchers ),
+                                       i > 1 && toSelector(
+                                               // If the preceding token was a descendant combinator, insert an implicit any-element `*`
+                                               tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" })
+                                       ).replace( rtrim, "$1" ),
+                                       matcher,
+                                       i < j && matcherFromTokens( tokens.slice( i, j ) ),
+                                       j < len && matcherFromTokens( (tokens = tokens.slice( j )) ),
+                                       j < len && toSelector( tokens )
+                               );
+                       }
+                       matchers.push( matcher );
+               }
+       }
+
+       return elementMatcher( matchers );
+}
+
+function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
+       var bySet = setMatchers.length > 0,
+               byElement = elementMatchers.length > 0,
+               superMatcher = function( seed, context, xml, results, outermost ) {
+                       var elem, j, matcher,
+                               matchedCount = 0,
+                               i = "0",
+                               unmatched = seed && [],
+                               setMatched = [],
+                               contextBackup = outermostContext,
+                               // We must always have either seed elements or outermost context
+                               elems = seed || byElement && Expr.find["TAG"]( "*", outermost ),
+                               // Use integer dirruns iff this is the outermost matcher
+                               dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1),
+                               len = elems.length;
+
+                       if ( outermost ) {
+                               outermostContext = context === document || context || outermost;
+                       }
+
+                       // Add elements passing elementMatchers directly to results
+                       // Support: IE<9, Safari
+                       // Tolerate NodeList properties (IE: "length"; Safari: <number>) matching elements by id
+                       for ( ; i !== len && (elem = elems[i]) != null; i++ ) {
+                               if ( byElement && elem ) {
+                                       j = 0;
+                                       if ( !context && elem.ownerDocument !== document ) {
+                                               setDocument( elem );
+                                               xml = !documentIsHTML;
+                                       }
+                                       while ( (matcher = elementMatchers[j++]) ) {
+                                               if ( matcher( elem, context || document, xml) ) {
+                                                       results.push( elem );
+                                                       break;
+                                               }
+                                       }
+                                       if ( outermost ) {
+                                               dirruns = dirrunsUnique;
+                                       }
+                               }
+
+                               // Track unmatched elements for set filters
+                               if ( bySet ) {
+                                       // They will have gone through all possible matchers
+                                       if ( (elem = !matcher && elem) ) {
+                                               matchedCount--;
+                                       }
+
+                                       // Lengthen the array for every element, matched or not
+                                       if ( seed ) {
+                                               unmatched.push( elem );
+                                       }
+                               }
+                       }
+
+                       // `i` is now the count of elements visited above, and adding it to `matchedCount`
+                       // makes the latter nonnegative.
+                       matchedCount += i;
+
+                       // Apply set filters to unmatched elements
+                       // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`
+                       // equals `i`), unless we didn't visit _any_ elements in the above loop because we have
+                       // no element matchers and no seed.
+                       // Incrementing an initially-string "0" `i` allows `i` to remain a string only in that
+                       // case, which will result in a "00" `matchedCount` that differs from `i` but is also
+                       // numerically zero.
+                       if ( bySet && i !== matchedCount ) {
+                               j = 0;
+                               while ( (matcher = setMatchers[j++]) ) {
+                                       matcher( unmatched, setMatched, context, xml );
+                               }
+
+                               if ( seed ) {
+                                       // Reintegrate element matches to eliminate the need for sorting
+                                       if ( matchedCount > 0 ) {
+                                               while ( i-- ) {
+                                                       if ( !(unmatched[i] || setMatched[i]) ) {
+                                                               setMatched[i] = pop.call( results );
+                                                       }
+                                               }
+                                       }
+
+                                       // Discard index placeholder values to get only actual matches
+                                       setMatched = condense( setMatched );
+                               }
+
+                               // Add matches to results
+                               push.apply( results, setMatched );
+
+                               // Seedless set matches succeeding multiple successful matchers stipulate sorting
+                               if ( outermost && !seed && setMatched.length > 0 &&
+                                       ( matchedCount + setMatchers.length ) > 1 ) {
+
+                                       Sizzle.uniqueSort( results );
+                               }
+                       }
+
+                       // Override manipulation of globals by nested matchers
+                       if ( outermost ) {
+                               dirruns = dirrunsUnique;
+                               outermostContext = contextBackup;
+                       }
+
+                       return unmatched;
+               };
+
+       return bySet ?
+               markFunction( superMatcher ) :
+               superMatcher;
+}
+
+compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {
+       var i,
+               setMatchers = [],
+               elementMatchers = [],
+               cached = compilerCache[ selector + " " ];
+
+       if ( !cached ) {
+               // Generate a function of recursive functions that can be used to check each element
+               if ( !match ) {
+                       match = tokenize( selector );
+               }
+               i = match.length;
+               while ( i-- ) {
+                       cached = matcherFromTokens( match[i] );
+                       if ( cached[ expando ] ) {
+                               setMatchers.push( cached );
+                       } else {
+                               elementMatchers.push( cached );
+                       }
+               }
+
+               // Cache the compiled function
+               cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );
+
+               // Save selector and tokenization
+               cached.selector = selector;
+       }
+       return cached;
+};
+
+/**
+ * A low-level selection function that works with Sizzle's compiled
+ *  selector functions
+ * @param {String|Function} selector A selector or a pre-compiled
+ *  selector function built with Sizzle.compile
+ * @param {Element} context
+ * @param {Array} [results]
+ * @param {Array} [seed] A set of elements to match against
+ */
+select = Sizzle.select = function( selector, context, results, seed ) {
+       var i, tokens, token, type, find,
+               compiled = typeof selector === "function" && selector,
+               match = !seed && tokenize( (selector = compiled.selector || selector) );
+
+       results = results || [];
+
+       // Try to minimize operations if there is only one selector in the list and no seed
+       // (the latter of which guarantees us context)
+       if ( match.length === 1 ) {
+
+               // Reduce context if the leading compound selector is an ID
+               tokens = match[0] = match[0].slice( 0 );
+               if ( tokens.length > 2 && (token = tokens[0]).type === "ID" &&
+                               context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[1].type ] ) {
+
+                       context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];
+                       if ( !context ) {
+                               return results;
+
+                       // Precompiled matchers will still verify ancestry, so step up a level
+                       } else if ( compiled ) {
+                               context = context.parentNode;
+                       }
+
+                       selector = selector.slice( tokens.shift().value.length );
+               }
+
+               // Fetch a seed set for right-to-left matching
+               i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length;
+               while ( i-- ) {
+                       token = tokens[i];
+
+                       // Abort if we hit a combinator
+                       if ( Expr.relative[ (type = token.type) ] ) {
+                               break;
+                       }
+                       if ( (find = Expr.find[ type ]) ) {
+                               // Search, expanding context for leading sibling combinators
+                               if ( (seed = find(
+                                       token.matches[0].replace( runescape, funescape ),
+                                       rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context
+                               )) ) {
+
+                                       // If seed is empty or no tokens remain, we can return early
+                                       tokens.splice( i, 1 );
+                                       selector = seed.length && toSelector( tokens );
+                                       if ( !selector ) {
+                                               push.apply( results, seed );
+                                               return results;
+                                       }
+
+                                       break;
+                               }
+                       }
+               }
+       }
+
+       // Compile and execute a filtering function if one is not provided
+       // Provide `match` to avoid retokenization if we modified the selector above
+       ( compiled || compile( selector, match ) )(
+               seed,
+               context,
+               !documentIsHTML,
+               results,
+               !context || rsibling.test( selector ) && testContext( context.parentNode ) || context
+       );
+       return results;
+};
+
+// One-time assignments
+
+// Sort stability
+support.sortStable = expando.split("").sort( sortOrder ).join("") === expando;
+
+// Support: Chrome 14-35+
+// Always assume duplicates if they aren't passed to the comparison function
+support.detectDuplicates = !!hasDuplicate;
+
+// Initialize against the default document
+setDocument();
+
+// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)
+// Detached nodes confoundingly follow *each other*
+support.sortDetached = assert(function( el ) {
+       // Should return 1, but returns 4 (following)
+       return el.compareDocumentPosition( document.createElement("fieldset") ) & 1;
+});
+
+// Support: IE<8
+// Prevent attribute/property "interpolation"
+// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx
+if ( !assert(function( el ) {
+       el.innerHTML = "<a href='#'></a>";
+       return el.firstChild.getAttribute("href") === "#" ;
+}) ) {
+       addHandle( "type|href|height|width", function( elem, name, isXML ) {
+               if ( !isXML ) {
+                       return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 );
+               }
+       });
+}
+
+// Support: IE<9
+// Use defaultValue in place of getAttribute("value")
+if ( !support.attributes || !assert(function( el ) {
+       el.innerHTML = "<input/>";
+       el.firstChild.setAttribute( "value", "" );
+       return el.firstChild.getAttribute( "value" ) === "";
+}) ) {
+       addHandle( "value", function( elem, name, isXML ) {
+               if ( !isXML && elem.nodeName.toLowerCase() === "input" ) {
+                       return elem.defaultValue;
+               }
+       });
+}
+
+// Support: IE<9
+// Use getAttributeNode to fetch booleans when getAttribute lies
+if ( !assert(function( el ) {
+       return el.getAttribute("disabled") == null;
+}) ) {
+       addHandle( booleans, function( elem, name, isXML ) {
+               var val;
+               if ( !isXML ) {
+                       return elem[ name ] === true ? name.toLowerCase() :
+                                       (val = elem.getAttributeNode( name )) && val.specified ?
+                                       val.value :
+                               null;
+               }
+       });
+}
+
+return Sizzle;
+
+})( window );
+
+
+
+jQuery.find = Sizzle;
+jQuery.expr = Sizzle.selectors;
+
+// Deprecated
+jQuery.expr[ ":" ] = jQuery.expr.pseudos;
+jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;
+jQuery.text = Sizzle.getText;
+jQuery.isXMLDoc = Sizzle.isXML;
+jQuery.contains = Sizzle.contains;
+jQuery.escapeSelector = Sizzle.escape;
+
+
+
+
+var dir = function( elem, dir, until ) {
+       var matched = [],
+               truncate = until !== undefined;
+
+       while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {
+               if ( elem.nodeType === 1 ) {
+                       if ( truncate && jQuery( elem ).is( until ) ) {
+                               break;
+                       }
+                       matched.push( elem );
+               }
+       }
+       return matched;
+};
+
+
+var siblings = function( n, elem ) {
+       var matched = [];
+
+       for ( ; n; n = n.nextSibling ) {
+               if ( n.nodeType === 1 && n !== elem ) {
+                       matched.push( n );
+               }
+       }
+
+       return matched;
+};
+
+
+var rneedsContext = jQuery.expr.match.needsContext;
+
+
+
+function nodeName( elem, name ) {
+
+  return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();
+
+};
+var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i );
+
+
+
+var risSimple = /^.[^:#\[\.,]*$/;
+
+// Implement the identical functionality for filter and not
+function winnow( elements, qualifier, not ) {
+       if ( jQuery.isFunction( qualifier ) ) {
+               return jQuery.grep( elements, function( elem, i ) {
+                       return !!qualifier.call( elem, i, elem ) !== not;
+               } );
+       }
+
+       // Single element
+       if ( qualifier.nodeType ) {
+               return jQuery.grep( elements, function( elem ) {
+                       return ( elem === qualifier ) !== not;
+               } );
+       }
+
+       // Arraylike of elements (jQuery, arguments, Array)
+       if ( typeof qualifier !== "string" ) {
+               return jQuery.grep( elements, function( elem ) {
+                       return ( indexOf.call( qualifier, elem ) > -1 ) !== not;
+               } );
+       }
+
+       // Simple selector that can be filtered directly, removing non-Elements
+       if ( risSimple.test( qualifier ) ) {
+               return jQuery.filter( qualifier, elements, not );
+       }
+
+       // Complex selector, compare the two sets, removing non-Elements
+       qualifier = jQuery.filter( qualifier, elements );
+       return jQuery.grep( elements, function( elem ) {
+               return ( indexOf.call( qualifier, elem ) > -1 ) !== not && elem.nodeType === 1;
+       } );
+}
+
+jQuery.filter = function( expr, elems, not ) {
+       var elem = elems[ 0 ];
+
+       if ( not ) {
+               expr = ":not(" + expr + ")";
+       }
+
+       if ( elems.length === 1 && elem.nodeType === 1 ) {
+               return jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];
+       }
+
+       return jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {
+               return elem.nodeType === 1;
+       } ) );
+};
+
+jQuery.fn.extend( {
+       find: function( selector ) {
+               var i, ret,
+                       len = this.length,
+                       self = this;
+
+               if ( typeof selector !== "string" ) {
+                       return this.pushStack( jQuery( selector ).filter( function() {
+                               for ( i = 0; i < len; i++ ) {
+                                       if ( jQuery.contains( self[ i ], this ) ) {
+                                               return true;
+                                       }
+                               }
+                       } ) );
+               }
+
+               ret = this.pushStack( [] );
+
+               for ( i = 0; i < len; i++ ) {
+                       jQuery.find( selector, self[ i ], ret );
+               }
+
+               return len > 1 ? jQuery.uniqueSort( ret ) : ret;
+       },
+       filter: function( selector ) {
+               return this.pushStack( winnow( this, selector || [], false ) );
+       },
+       not: function( selector ) {
+               return this.pushStack( winnow( this, selector || [], true ) );
+       },
+       is: function( selector ) {
+               return !!winnow(
+                       this,
+
+                       // If this is a positional/relative selector, check membership in the returned set
+                       // so $("p:first").is("p:last") won't return true for a doc with two "p".
+                       typeof selector === "string" && rneedsContext.test( selector ) ?
+                               jQuery( selector ) :
+                               selector || [],
+                       false
+               ).length;
+       }
+} );
+
+
+// Initialize a jQuery object
+
+
+// A central reference to the root jQuery(document)
+var rootjQuery,
+
+       // A simple way to check for HTML strings
+       // Prioritize #id over <tag> to avoid XSS via location.hash (#9521)
+       // Strict HTML recognition (#11290: must start with <)
+       // Shortcut simple #id case for speed
+       rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,
+
+       init = jQuery.fn.init = function( selector, context, root ) {
+               var match, elem;
+
+               // HANDLE: $(""), $(null), $(undefined), $(false)
+               if ( !selector ) {
+                       return this;
+               }
+
+               // Method init() accepts an alternate rootjQuery
+               // so migrate can support jQuery.sub (gh-2101)
+               root = root || rootjQuery;
+
+               // Handle HTML strings
+               if ( typeof selector === "string" ) {
+                       if ( selector[ 0 ] === "<" &&
+                               selector[ selector.length - 1 ] === ">" &&
+                               selector.length >= 3 ) {
+
+                               // Assume that strings that start and end with <> are HTML and skip the regex check
+                               match = [ null, selector, null ];
+
+                       } else {
+                               match = rquickExpr.exec( selector );
+                       }
+
+                       // Match html or make sure no context is specified for #id
+                       if ( match && ( match[ 1 ] || !context ) ) {
+
+                               // HANDLE: $(html) -> $(array)
+                               if ( match[ 1 ] ) {
+                                       context = context instanceof jQuery ? context[ 0 ] : context;
+
+                                       // Option to run scripts is true for back-compat
+                                       // Intentionally let the error be thrown if parseHTML is not present
+                                       jQuery.merge( this, jQuery.parseHTML(
+                                               match[ 1 ],
+                                               context && context.nodeType ? context.ownerDocument || context : document,
+                                               true
+                                       ) );
+
+                                       // HANDLE: $(html, props)
+                                       if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {
+                                               for ( match in context ) {
+
+                                                       // Properties of context are called as methods if possible
+                                                       if ( jQuery.isFunction( this[ match ] ) ) {
+                                                               this[ match ]( context[ match ] );
+
+                                                       // ...and otherwise set as attributes
+                                                       } else {
+                                                               this.attr( match, context[ match ] );
+                                                       }
+                                               }
+                                       }
+
+                                       return this;
+
+                               // HANDLE: $(#id)
+                               } else {
+                                       elem = document.getElementById( match[ 2 ] );
+
+                                       if ( elem ) {
+
+                                               // Inject the element directly into the jQuery object
+                                               this[ 0 ] = elem;
+                                               this.length = 1;
+                                       }
+                                       return this;
+                               }
+
+                       // HANDLE: $(expr, $(...))
+                       } else if ( !context || context.jquery ) {
+                               return ( context || root ).find( selector );
+
+                       // HANDLE: $(expr, context)
+                       // (which is just equivalent to: $(context).find(expr)
+                       } else {
+                               return this.constructor( context ).find( selector );
+                       }
+
+               // HANDLE: $(DOMElement)
+               } else if ( selector.nodeType ) {
+                       this[ 0 ] = selector;
+                       this.length = 1;
+                       return this;
+
+               // HANDLE: $(function)
+               // Shortcut for document ready
+               } else if ( jQuery.isFunction( selector ) ) {
+                       return root.ready !== undefined ?
+                               root.ready( selector ) :
+
+                               // Execute immediately if ready is not present
+                               selector( jQuery );
+               }
+
+               return jQuery.makeArray( selector, this );
+       };
+
+// Give the init function the jQuery prototype for later instantiation
+init.prototype = jQuery.fn;
+
+// Initialize central reference
+rootjQuery = jQuery( document );
+
+
+var rparentsprev = /^(?:parents|prev(?:Until|All))/,
+
+       // Methods guaranteed to produce a unique set when starting from a unique set
+       guaranteedUnique = {
+               children: true,
+               contents: true,
+               next: true,
+               prev: true
+       };
+
+jQuery.fn.extend( {
+       has: function( target ) {
+               var targets = jQuery( target, this ),
+                       l = targets.length;
+
+               return this.filter( function() {
+                       var i = 0;
+                       for ( ; i < l; i++ ) {
+                               if ( jQuery.contains( this, targets[ i ] ) ) {
+                                       return true;
+                               }
+                       }
+               } );
+       },
+
+       closest: function( selectors, context ) {
+               var cur,
+                       i = 0,
+                       l = this.length,
+                       matched = [],
+                       targets = typeof selectors !== "string" && jQuery( selectors );
+
+               // Positional selectors never match, since there's no _selection_ context
+               if ( !rneedsContext.test( selectors ) ) {
+                       for ( ; i < l; i++ ) {
+                               for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {
+
+                                       // Always skip document fragments
+                                       if ( cur.nodeType < 11 && ( targets ?
+                                               targets.index( cur ) > -1 :
+
+                                               // Don't pass non-elements to Sizzle
+                                               cur.nodeType === 1 &&
+                                                       jQuery.find.matchesSelector( cur, selectors ) ) ) {
+
+                                               matched.push( cur );
+                                               break;
+                                       }
+                               }
+                       }
+               }
+
+               return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );
+       },
+
+       // Determine the position of an element within the set
+       index: function( elem ) {
+
+               // No argument, return index in parent
+               if ( !elem ) {
+                       return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;
+               }
+
+               // Index in selector
+               if ( typeof elem === "string" ) {
+                       return indexOf.call( jQuery( elem ), this[ 0 ] );
+               }
+
+               // Locate the position of the desired element
+               return indexOf.call( this,
+
+                       // If it receives a jQuery object, the first element is used
+                       elem.jquery ? elem[ 0 ] : elem
+               );
+       },
+
+       add: function( selector, context ) {
+               return this.pushStack(
+                       jQuery.uniqueSort(
+                               jQuery.merge( this.get(), jQuery( selector, context ) )
+                       )
+               );
+       },
+
+       addBack: function( selector ) {
+               return this.add( selector == null ?
+                       this.prevObject : this.prevObject.filter( selector )
+               );
+       }
+} );
+
+function sibling( cur, dir ) {
+       while ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}
+       return cur;
+}
+
+jQuery.each( {
+       parent: function( elem ) {
+               var parent = elem.parentNode;
+               return parent && parent.nodeType !== 11 ? parent : null;
+       },
+       parents: function( elem ) {
+               return dir( elem, "parentNode" );
+       },
+       parentsUntil: function( elem, i, until ) {
+               return dir( elem, "parentNode", until );
+       },
+       next: function( elem ) {
+               return sibling( elem, "nextSibling" );
+       },
+       prev: function( elem ) {
+               return sibling( elem, "previousSibling" );
+       },
+       nextAll: function( elem ) {
+               return dir( elem, "nextSibling" );
+       },
+       prevAll: function( elem ) {
+               return dir( elem, "previousSibling" );
+       },
+       nextUntil: function( elem, i, until ) {
+               return dir( elem, "nextSibling", until );
+       },
+       prevUntil: function( elem, i, until ) {
+               return dir( elem, "previousSibling", until );
+       },
+       siblings: function( elem ) {
+               return siblings( ( elem.parentNode || {} ).firstChild, elem );
+       },
+       children: function( elem ) {
+               return siblings( elem.firstChild );
+       },
+       contents: function( elem ) {
+        if ( nodeName( elem, "iframe" ) ) {
+            return elem.contentDocument;
+        }
+
+        // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only
+        // Treat the template element as a regular one in browsers that
+        // don't support it.
+        if ( nodeName( elem, "template" ) ) {
+            elem = elem.content || elem;
+        }
+
+        return jQuery.merge( [], elem.childNodes );
+       }
+}, function( name, fn ) {
+       jQuery.fn[ name ] = function( until, selector ) {
+               var matched = jQuery.map( this, fn, until );
+
+               if ( name.slice( -5 ) !== "Until" ) {
+                       selector = until;
+               }
+
+               if ( selector && typeof selector === "string" ) {
+                       matched = jQuery.filter( selector, matched );
+               }
+
+               if ( this.length > 1 ) {
+
+                       // Remove duplicates
+                       if ( !guaranteedUnique[ name ] ) {
+                               jQuery.uniqueSort( matched );
+                       }
+
+                       // Reverse order for parents* and prev-derivatives
+                       if ( rparentsprev.test( name ) ) {
+                               matched.reverse();
+                       }
+               }
+
+               return this.pushStack( matched );
+       };
+} );
+var rnothtmlwhite = ( /[^\x20\t\r\n\f]+/g );
+
+
+
+// Convert String-formatted options into Object-formatted ones
+function createOptions( options ) {
+       var object = {};
+       jQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {
+               object[ flag ] = true;
+       } );
+       return object;
+}
+
+/*
+ * Create a callback list using the following parameters:
+ *
+ *     options: an optional list of space-separated options that will change how
+ *                     the callback list behaves or a more traditional option object
+ *
+ * By default a callback list will act like an event callback list and can be
+ * "fired" multiple times.
+ *
+ * Possible options:
+ *
+ *     once:                   will ensure the callback list can only be fired once (like a Deferred)
+ *
+ *     memory:                 will keep track of previous values and will call any callback added
+ *                                     after the list has been fired right away with the latest "memorized"
+ *                                     values (like a Deferred)
+ *
+ *     unique:                 will ensure a callback can only be added once (no duplicate in the list)
+ *
+ *     stopOnFalse:    interrupt callings when a callback returns false
+ *
+ */
+jQuery.Callbacks = function( options ) {
+
+       // Convert options from String-formatted to Object-formatted if needed
+       // (we check in cache first)
+       options = typeof options === "string" ?
+               createOptions( options ) :
+               jQuery.extend( {}, options );
+
+       var // Flag to know if list is currently firing
+               firing,
+
+               // Last fire value for non-forgettable lists
+               memory,
+
+               // Flag to know if list was already fired
+               fired,
+
+               // Flag to prevent firing
+               locked,
+
+               // Actual callback list
+               list = [],
+
+               // Queue of execution data for repeatable lists
+               queue = [],
+
+               // Index of currently firing callback (modified by add/remove as needed)
+               firingIndex = -1,
+
+               // Fire callbacks
+               fire = function() {
+
+                       // Enforce single-firing
+                       locked = locked || options.once;
+
+                       // Execute callbacks for all pending executions,
+                       // respecting firingIndex overrides and runtime changes
+                       fired = firing = true;
+                       for ( ; queue.length; firingIndex = -1 ) {
+                               memory = queue.shift();
+                               while ( ++firingIndex < list.length ) {
+
+                                       // Run callback and check for early termination
+                                       if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&
+                                               options.stopOnFalse ) {
+
+                                               // Jump to end and forget the data so .add doesn't re-fire
+                                               firingIndex = list.length;
+                                               memory = false;
+                                       }
+                               }
+                       }
+
+                       // Forget the data if we're done with it
+                       if ( !options.memory ) {
+                               memory = false;
+                       }
+
+                       firing = false;
+
+                       // Clean up if we're done firing for good
+                       if ( locked ) {
+
+                               // Keep an empty list if we have data for future add calls
+                               if ( memory ) {
+                                       list = [];
+
+                               // Otherwise, this object is spent
+                               } else {
+                                       list = "";
+                               }
+                       }
+               },
+
+               // Actual Callbacks object
+               self = {
+
+                       // Add a callback or a collection of callbacks to the list
+                       add: function() {
+                               if ( list ) {
+
+                                       // If we have memory from a past run, we should fire after adding
+                                       if ( memory && !firing ) {
+                                               firingIndex = list.length - 1;
+                                               queue.push( memory );
+                                       }
+
+                                       ( function add( args ) {
+                                               jQuery.each( args, function( _, arg ) {
+                                                       if ( jQuery.isFunction( arg ) ) {
+                                                               if ( !options.unique || !self.has( arg ) ) {
+                                                                       list.push( arg );
+                                                               }
+                                                       } else if ( arg && arg.length && jQuery.type( arg ) !== "string" ) {
+
+                                                               // Inspect recursively
+                                                               add( arg );
+                                                       }
+                                               } );
+                                       } )( arguments );
+
+                                       if ( memory && !firing ) {
+                                               fire();
+                                       }
+                               }
+                               return this;
+                       },
+
+                       // Remove a callback from the list
+                       remove: function() {
+                               jQuery.each( arguments, function( _, arg ) {
+                                       var index;
+                                       while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {
+                                               list.splice( index, 1 );
+
+                                               // Handle firing indexes
+                                               if ( index <= firingIndex ) {
+                                                       firingIndex--;
+                                               }
+                                       }
+                               } );
+                               return this;
+                       },
+
+                       // Check if a given callback is in the list.
+                       // If no argument is given, return whether or not list has callbacks attached.
+                       has: function( fn ) {
+                               return fn ?
+                                       jQuery.inArray( fn, list ) > -1 :
+                                       list.length > 0;
+                       },
+
+                       // Remove all callbacks from the list
+                       empty: function() {
+                               if ( list ) {
+                                       list = [];
+                               }
+                               return this;
+                       },
+
+                       // Disable .fire and .add
+                       // Abort any current/pending executions
+                       // Clear all callbacks and values
+                       disable: function() {
+                               locked = queue = [];
+                               list = memory = "";
+                               return this;
+                       },
+                       disabled: function() {
+                               return !list;
+                       },
+
+                       // Disable .fire
+                       // Also disable .add unless we have memory (since it would have no effect)
+                       // Abort any pending executions
+                       lock: function() {
+                               locked = queue = [];
+                               if ( !memory && !firing ) {
+                                       list = memory = "";
+                               }
+                               return this;
+                       },
+                       locked: function() {
+                               return !!locked;
+                       },
+
+                       // Call all callbacks with the given context and arguments
+                       fireWith: function( context, args ) {
+                               if ( !locked ) {
+                                       args = args || [];
+                                       args = [ context, args.slice ? args.slice() : args ];
+                                       queue.push( args );
+                                       if ( !firing ) {
+                                               fire();
+                                       }
+                               }
+                               return this;
+                       },
+
+                       // Call all the callbacks with the given arguments
+                       fire: function() {
+                               self.fireWith( this, arguments );
+                               return this;
+                       },
+
+                       // To know if the callbacks have already been called at least once
+                       fired: function() {
+                               return !!fired;
+                       }
+               };
+
+       return self;
+};
+
+
+function Identity( v ) {
+       return v;
+}
+function Thrower( ex ) {
+       throw ex;
+}
+
+function adoptValue( value, resolve, reject, noValue ) {
+       var method;
+
+       try {
+
+               // Check for promise aspect first to privilege synchronous behavior
+               if ( value && jQuery.isFunction( ( method = value.promise ) ) ) {
+                       method.call( value ).done( resolve ).fail( reject );
+
+               // Other thenables
+               } else if ( value && jQuery.isFunction( ( method = value.then ) ) ) {
+                       method.call( value, resolve, reject );
+
+               // Other non-thenables
+               } else {
+
+                       // Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:
+                       // * false: [ value ].slice( 0 ) => resolve( value )
+                       // * true: [ value ].slice( 1 ) => resolve()
+                       resolve.apply( undefined, [ value ].slice( noValue ) );
+               }
+
+       // For Promises/A+, convert exceptions into rejections
+       // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in
+       // Deferred#then to conditionally suppress rejection.
+       } catch ( value ) {
+
+               // Support: Android 4.0 only
+               // Strict mode functions invoked without .call/.apply get global-object context
+               reject.apply( undefined, [ value ] );
+       }
+}
+
+jQuery.extend( {
+
+       Deferred: function( func ) {
+               var tuples = [
+
+                               // action, add listener, callbacks,
+                               // ... .then handlers, argument index, [final state]
+                               [ "notify", "progress", jQuery.Callbacks( "memory" ),
+                                       jQuery.Callbacks( "memory" ), 2 ],
+                               [ "resolve", "done", jQuery.Callbacks( "once memory" ),
+                                       jQuery.Callbacks( "once memory" ), 0, "resolved" ],
+                               [ "reject", "fail", jQuery.Callbacks( "once memory" ),
+                                       jQuery.Callbacks( "once memory" ), 1, "rejected" ]
+                       ],
+                       state = "pending",
+                       promise = {
+                               state: function() {
+                                       return state;
+                               },
+                               always: function() {
+                                       deferred.done( arguments ).fail( arguments );
+                                       return this;
+                               },
+                               "catch": function( fn ) {
+                                       return promise.then( null, fn );
+                               },
+
+                               // Keep pipe for back-compat
+                               pipe: function( /* fnDone, fnFail, fnProgress */ ) {
+                                       var fns = arguments;
+
+                                       return jQuery.Deferred( function( newDefer ) {
+                                               jQuery.each( tuples, function( i, tuple ) {
+
+                                                       // Map tuples (progress, done, fail) to arguments (done, fail, progress)
+                                                       var fn = jQuery.isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];
+
+                                                       // deferred.progress(function() { bind to newDefer or newDefer.notify })
+                                                       // deferred.done(function() { bind to newDefer or newDefer.resolve })
+                                                       // deferred.fail(function() { bind to newDefer or newDefer.reject })
+                                                       deferred[ tuple[ 1 ] ]( function() {
+                                                               var returned = fn && fn.apply( this, arguments );
+                                                               if ( returned && jQuery.isFunction( returned.promise ) ) {
+                                                                       returned.promise()
+                                                                               .progress( newDefer.notify )
+                                                                               .done( newDefer.resolve )
+                                                                               .fail( newDefer.reject );
+                                                               } else {
+                                                                       newDefer[ tuple[ 0 ] + "With" ](
+                                                                               this,
+                                                                               fn ? [ returned ] : arguments
+                                                                       );
+                                                               }
+                                                       } );
+                                               } );
+                                               fns = null;
+                                       } ).promise();
+                               },
+                               then: function( onFulfilled, onRejected, onProgress ) {
+                                       var maxDepth = 0;
+                                       function resolve( depth, deferred, handler, special ) {
+                                               return function() {
+                                                       var that = this,
+                                                               args = arguments,
+                                                               mightThrow = function() {
+                                                                       var returned, then;
+
+                                                                       // Support: Promises/A+ section 2.3.3.3.3
+                                                                       // https://promisesaplus.com/#point-59
+                                                                       // Ignore double-resolution attempts
+                                                                       if ( depth < maxDepth ) {
+                                                                               return;
+                                                                       }
+
+                                                                       returned = handler.apply( that, args );
+
+                                                                       // Support: Promises/A+ section 2.3.1
+                                                                       // https://promisesaplus.com/#point-48
+                                                                       if ( returned === deferred.promise() ) {
+                                                                               throw new TypeError( "Thenable self-resolution" );
+                                                                       }
+
+                                                                       // Support: Promises/A+ sections 2.3.3.1, 3.5
+                                                                       // https://promisesaplus.com/#point-54
+                                                                       // https://promisesaplus.com/#point-75
+                                                                       // Retrieve `then` only once
+                                                                       then = returned &&
+
+                                                                               // Support: Promises/A+ section 2.3.4
+                                                                               // https://promisesaplus.com/#point-64
+                                                                               // Only check objects and functions for thenability
+                                                                               ( typeof returned === "object" ||
+                                                                                       typeof returned === "function" ) &&
+                                                                               returned.then;
+
+                                                                       // Handle a returned thenable
+                                                                       if ( jQuery.isFunction( then ) ) {
+
+                                                                               // Special processors (notify) just wait for resolution
+                                                                               if ( special ) {
+                                                                                       then.call(
+                                                                                               returned,
+                                                                                               resolve( maxDepth, deferred, Identity, special ),
+                                                                                               resolve( maxDepth, deferred, Thrower, special )
+                                                                                       );
+
+                                                                               // Normal processors (resolve) also hook into progress
+                                                                               } else {
+
+                                                                                       // ...and disregard older resolution values
+                                                                                       maxDepth++;
+
+                                                                                       then.call(
+                                                                                               returned,
+                                                                                               resolve( maxDepth, deferred, Identity, special ),
+                                                                                               resolve( maxDepth, deferred, Thrower, special ),
+                                                                                               resolve( maxDepth, deferred, Identity,
+                                                                                                       deferred.notifyWith )
+                                                                                       );
+                                                                               }
+
+                                                                       // Handle all other returned values
+                                                                       } else {
+
+                                                                               // Only substitute handlers pass on context
+                                                                               // and multiple values (non-spec behavior)
+                                                                               if ( handler !== Identity ) {
+                                                                                       that = undefined;
+                                                                                       args = [ returned ];
+                                                                               }
+
+                                                                               // Process the value(s)
+                                                                               // Default process is resolve
+                                                                               ( special || deferred.resolveWith )( that, args );
+                                                                       }
+                                                               },
+
+                                                               // Only normal processors (resolve) catch and reject exceptions
+                                                               process = special ?
+                                                                       mightThrow :
+                                                                       function() {
+                                                                               try {
+                                                                                       mightThrow();
+                                                                               } catch ( e ) {
+
+                                                                                       if ( jQuery.Deferred.exceptionHook ) {
+                                                                                               jQuery.Deferred.exceptionHook( e,
+                                                                                                       process.stackTrace );
+                                                                                       }
+
+                                                                                       // Support: Promises/A+ section 2.3.3.3.4.1
+                                                                                       // https://promisesaplus.com/#point-61
+                                                                                       // Ignore post-resolution exceptions
+                                                                                       if ( depth + 1 >= maxDepth ) {
+
+                                                                                               // Only substitute handlers pass on context
+                                                                                               // and multiple values (non-spec behavior)
+                                                                                               if ( handler !== Thrower ) {
+                                                                                                       that = undefined;
+                                                                                                       args = [ e ];
+                                                                                               }
+
+                                                                                               deferred.rejectWith( that, args );
+                                                                                       }
+                                                                               }
+                                                                       };
+
+                                                       // Support: Promises/A+ section 2.3.3.3.1
+                                                       // https://promisesaplus.com/#point-57
+                                                       // Re-resolve promises immediately to dodge false rejection from
+                                                       // subsequent errors
+                                                       if ( depth ) {
+                                                               process();
+                                                       } else {
+
+                                                               // Call an optional hook to record the stack, in case of exception
+                                                               // since it's otherwise lost when execution goes async
+                                                               if ( jQuery.Deferred.getStackHook ) {
+                                                                       process.stackTrace = jQuery.Deferred.getStackHook();
+                                                               }
+                                                               window.setTimeout( process );
+                                                       }
+                                               };
+                                       }
+
+                                       return jQuery.Deferred( function( newDefer ) {
+
+                                               // progress_handlers.add( ... )
+                                               tuples[ 0 ][ 3 ].add(
+                                                       resolve(
+                                                               0,
+                                                               newDefer,
+                                                               jQuery.isFunction( onProgress ) ?
+                                                                       onProgress :
+                                                                       Identity,
+                                                               newDefer.notifyWith
+                                                       )
+                                               );
+
+                                               // fulfilled_handlers.add( ... )
+                                               tuples[ 1 ][ 3 ].add(
+                                                       resolve(
+                                                               0,
+                                                               newDefer,
+                                                               jQuery.isFunction( onFulfilled ) ?
+                                                                       onFulfilled :
+                                                                       Identity
+                                                       )
+                                               );
+
+                                               // rejected_handlers.add( ... )
+                                               tuples[ 2 ][ 3 ].add(
+                                                       resolve(
+                                                               0,
+                                                               newDefer,
+                                                               jQuery.isFunction( onRejected ) ?
+                                                                       onRejected :
+                                                                       Thrower
+                                                       )
+                                               );
+                                       } ).promise();
+                               },
+
+                               // Get a promise for this deferred
+                               // If obj is provided, the promise aspect is added to the object
+                               promise: function( obj ) {
+                                       return obj != null ? jQuery.extend( obj, promise ) : promise;
+                               }
+                       },
+                       deferred = {};
+
+               // Add list-specific methods
+               jQuery.each( tuples, function( i, tuple ) {
+                       var list = tuple[ 2 ],
+                               stateString = tuple[ 5 ];
+
+                       // promise.progress = list.add
+                       // promise.done = list.add
+                       // promise.fail = list.add
+                       promise[ tuple[ 1 ] ] = list.add;
+
+                       // Handle state
+                       if ( stateString ) {
+                               list.add(
+                                       function() {
+
+                                               // state = "resolved" (i.e., fulfilled)
+                                               // state = "rejected"
+                                               state = stateString;
+                                       },
+
+                                       // rejected_callbacks.disable
+                                       // fulfilled_callbacks.disable
+                                       tuples[ 3 - i ][ 2 ].disable,
+
+                                       // progress_callbacks.lock
+                                       tuples[ 0 ][ 2 ].lock
+                               );
+                       }
+
+                       // progress_handlers.fire
+                       // fulfilled_handlers.fire
+                       // rejected_handlers.fire
+                       list.add( tuple[ 3 ].fire );
+
+                       // deferred.notify = function() { deferred.notifyWith(...) }
+                       // deferred.resolve = function() { deferred.resolveWith(...) }
+                       // deferred.reject = function() { deferred.rejectWith(...) }
+                       deferred[ tuple[ 0 ] ] = function() {
+                               deferred[ tuple[ 0 ] + "With" ]( this === deferred ? undefined : this, arguments );
+                               return this;
+                       };
+
+                       // deferred.notifyWith = list.fireWith
+                       // deferred.resolveWith = list.fireWith
+                       // deferred.rejectWith = list.fireWith
+                       deferred[ tuple[ 0 ] + "With" ] = list.fireWith;
+               } );
+
+               // Make the deferred a promise
+               promise.promise( deferred );
+
+               // Call given func if any
+               if ( func ) {
+                       func.call( deferred, deferred );
+               }
+
+               // All done!
+               return deferred;
+       },
+
+       // Deferred helper
+       when: function( singleValue ) {
+               var
+
+                       // count of uncompleted subordinates
+                       remaining = arguments.length,
+
+                       // count of unprocessed arguments
+                       i = remaining,
+
+                       // subordinate fulfillment data
+                       resolveContexts = Array( i ),
+                       resolveValues = slice.call( arguments ),
+
+                       // the master Deferred
+                       master = jQuery.Deferred(),
+
+                       // subordinate callback factory
+                       updateFunc = function( i ) {
+                               return function( value ) {
+                                       resolveContexts[ i ] = this;
+                                       resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;
+                                       if ( !( --remaining ) ) {
+                                               master.resolveWith( resolveContexts, resolveValues );
+                                       }
+                               };
+                       };
+
+               // Single- and empty arguments are adopted like Promise.resolve
+               if ( remaining <= 1 ) {
+                       adoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject,
+                               !remaining );
+
+                       // Use .then() to unwrap secondary thenables (cf. gh-3000)
+                       if ( master.state() === "pending" ||
+                               jQuery.isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {
+
+                               return master.then();
+                       }
+               }
+
+               // Multiple arguments are aggregated like Promise.all array elements
+               while ( i-- ) {
+                       adoptValue( resolveValues[ i ], updateFunc( i ), master.reject );
+               }
+
+               return master.promise();
+       }
+} );
+
+
+// These usually indicate a programmer mistake during development,
+// warn about them ASAP rather than swallowing them by default.
+var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;
+
+jQuery.Deferred.exceptionHook = function( error, stack ) {
+
+       // Support: IE 8 - 9 only
+       // Console exists when dev tools are open, which can happen at any time
+       if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {
+               window.console.warn( "jQuery.Deferred exception: " + error.message, error.stack, stack );
+       }
+};
+
+
+
+
+jQuery.readyException = function( error ) {
+       window.setTimeout( function() {
+               throw error;
+       } );
+};
+
+
+
+
+// The deferred used on DOM ready
+var readyList = jQuery.Deferred();
+
+jQuery.fn.ready = function( fn ) {
+
+       readyList
+               .then( fn )
+
+               // Wrap jQuery.readyException in a function so that the lookup
+               // happens at the time of error handling instead of callback
+               // registration.
+               .catch( function( error ) {
+                       jQuery.readyException( error );
+               } );
+
+       return this;
+};
+
+jQuery.extend( {
+
+       // Is the DOM ready to be used? Set to true once it occurs.
+       isReady: false,
+
+       // A counter to track how many items to wait for before
+       // the ready event fires. See #6781
+       readyWait: 1,
+
+       // Handle when the DOM is ready
+       ready: function( wait ) {
+
+               // Abort if there are pending holds or we're already ready
+               if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {
+                       return;
+               }
+
+               // Remember that the DOM is ready
+               jQuery.isReady = true;
+
+               // If a normal DOM Ready event fired, decrement, and wait if need be
+               if ( wait !== true && --jQuery.readyWait > 0 ) {
+                       return;
+               }
+
+               // If there are functions bound, to execute
+               readyList.resolveWith( document, [ jQuery ] );
+       }
+} );
+
+jQuery.ready.then = readyList.then;
+
+// The ready event handler and self cleanup method
+function completed() {
+       document.removeEventListener( "DOMContentLoaded", completed );
+       window.removeEventListener( "load", completed );
+       jQuery.ready();
+}
+
+// Catch cases where $(document).ready() is called
+// after the browser event has already occurred.
+// Support: IE <=9 - 10 only
+// Older IE sometimes signals "interactive" too soon
+if ( document.readyState === "complete" ||
+       ( document.readyState !== "loading" && !document.documentElement.doScroll ) ) {
+
+       // Handle it asynchronously to allow scripts the opportunity to delay ready
+       window.setTimeout( jQuery.ready );
+
+} else {
+
+       // Use the handy event callback
+       document.addEventListener( "DOMContentLoaded", completed );
+
+       // A fallback to window.onload, that will always work
+       window.addEventListener( "load", completed );
+}
+
+
+
+
+// Multifunctional method to get and set values of a collection
+// The value/s can optionally be executed if it's a function
+var access = function( elems, fn, key, value, chainable, emptyGet, raw ) {
+       var i = 0,
+               len = elems.length,
+               bulk = key == null;
+
+       // Sets many values
+       if ( jQuery.type( key ) === "object" ) {
+               chainable = true;
+               for ( i in key ) {
+                       access( elems, fn, i, key[ i ], true, emptyGet, raw );
+               }
+
+       // Sets one value
+       } else if ( value !== undefined ) {
+               chainable = true;
+
+               if ( !jQuery.isFunction( value ) ) {
+                       raw = true;
+               }
+
+               if ( bulk ) {
+
+                       // Bulk operations run against the entire set
+                       if ( raw ) {
+                               fn.call( elems, value );
+                               fn = null;
+
+                       // ...except when executing function values
+                       } else {
+                               bulk = fn;
+                               fn = function( elem, key, value ) {
+                                       return bulk.call( jQuery( elem ), value );
+                               };
+                       }
+               }
+
+               if ( fn ) {
+                       for ( ; i < len; i++ ) {
+                               fn(
+                                       elems[ i ], key, raw ?
+                                       value :
+                                       value.call( elems[ i ], i, fn( elems[ i ], key ) )
+                               );
+                       }
+               }
+       }
+
+       if ( chainable ) {
+               return elems;
+       }
+
+       // Gets
+       if ( bulk ) {
+               return fn.call( elems );
+       }
+
+       return len ? fn( elems[ 0 ], key ) : emptyGet;
+};
+var acceptData = function( owner ) {
+
+       // Accepts only:
+       //  - Node
+       //    - Node.ELEMENT_NODE
+       //    - Node.DOCUMENT_NODE
+       //  - Object
+       //    - Any
+       return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );
+};
+
+
+
+
+function Data() {
+       this.expando = jQuery.expando + Data.uid++;
+}
+
+Data.uid = 1;
+
+Data.prototype = {
+
+       cache: function( owner ) {
+
+               // Check if the owner object already has a cache
+               var value = owner[ this.expando ];
+
+               // If not, create one
+               if ( !value ) {
+                       value = {};
+
+                       // We can accept data for non-element nodes in modern browsers,
+                       // but we should not, see #8335.
+                       // Always return an empty object.
+                       if ( acceptData( owner ) ) {
+
+                               // If it is a node unlikely to be stringify-ed or looped over
+                               // use plain assignment
+                               if ( owner.nodeType ) {
+                                       owner[ this.expando ] = value;
+
+                               // Otherwise secure it in a non-enumerable property
+                               // configurable must be true to allow the property to be
+                               // deleted when data is removed
+                               } else {
+                                       Object.defineProperty( owner, this.expando, {
+                                               value: value,
+                                               configurable: true
+                                       } );
+                               }
+                       }
+               }
+
+               return value;
+       },
+       set: function( owner, data, value ) {
+               var prop,
+                       cache = this.cache( owner );
+
+               // Handle: [ owner, key, value ] args
+               // Always use camelCase key (gh-2257)
+               if ( typeof data === "string" ) {
+                       cache[ jQuery.camelCase( data ) ] = value;
+
+               // Handle: [ owner, { properties } ] args
+               } else {
+
+                       // Copy the properties one-by-one to the cache object
+                       for ( prop in data ) {
+                               cache[ jQuery.camelCase( prop ) ] = data[ prop ];
+                       }
+               }
+               return cache;
+       },
+       get: function( owner, key ) {
+               return key === undefined ?
+                       this.cache( owner ) :
+
+                       // Always use camelCase key (gh-2257)
+                       owner[ this.expando ] && owner[ this.expando ][ jQuery.camelCase( key ) ];
+       },
+       access: function( owner, key, value ) {
+
+               // In cases where either:
+               //
+               //   1. No key was specified
+               //   2. A string key was specified, but no value provided
+               //
+               // Take the "read" path and allow the get method to determine
+               // which value to return, respectively either:
+               //
+               //   1. The entire cache object
+               //   2. The data stored at the key
+               //
+               if ( key === undefined ||
+                               ( ( key && typeof key === "string" ) && value === undefined ) ) {
+
+                       return this.get( owner, key );
+               }
+
+               // When the key is not a string, or both a key and value
+               // are specified, set or extend (existing objects) with either:
+               //
+               //   1. An object of properties
+               //   2. A key and value
+               //
+               this.set( owner, key, value );
+
+               // Since the "set" path can have two possible entry points
+               // return the expected data based on which path was taken[*]
+               return value !== undefined ? value : key;
+       },
+       remove: function( owner, key ) {
+               var i,
+                       cache = owner[ this.expando ];
+
+               if ( cache === undefined ) {
+                       return;
+               }
+
+               if ( key !== undefined ) {
+
+                       // Support array or space separated string of keys
+                       if ( Array.isArray( key ) ) {
+
+                               // If key is an array of keys...
+                               // We always set camelCase keys, so remove that.
+                               key = key.map( jQuery.camelCase );
+                       } else {
+                               key = jQuery.camelCase( key );
+
+                               // If a key with the spaces exists, use it.
+                               // Otherwise, create an array by matching non-whitespace
+                               key = key in cache ?
+                                       [ key ] :
+                                       ( key.match( rnothtmlwhite ) || [] );
+                       }
+
+                       i = key.length;
+
+                       while ( i-- ) {
+                               delete cache[ key[ i ] ];
+                       }
+               }
+
+               // Remove the expando if there's no more data
+               if ( key === undefined || jQuery.isEmptyObject( cache ) ) {
+
+                       // Support: Chrome <=35 - 45
+                       // Webkit & Blink performance suffers when deleting properties
+                       // from DOM nodes, so set to undefined instead
+                       // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)
+                       if ( owner.nodeType ) {
+                               owner[ this.expando ] = undefined;
+                       } else {
+                               delete owner[ this.expando ];
+                       }
+               }
+       },
+       hasData: function( owner ) {
+               var cache = owner[ this.expando ];
+               return cache !== undefined && !jQuery.isEmptyObject( cache );
+       }
+};
+var dataPriv = new Data();
+
+var dataUser = new Data();
+
+
+
+//     Implementation Summary
+//
+//     1. Enforce API surface and semantic compatibility with 1.9.x branch
+//     2. Improve the module's maintainability by reducing the storage
+//             paths to a single mechanism.
+//     3. Use the same single mechanism to support "private" and "user" data.
+//     4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData)
+//     5. Avoid exposing implementation details on user objects (eg. expando properties)
+//     6. Provide a clear path for implementation upgrade to WeakMap in 2014
+
+var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
+       rmultiDash = /[A-Z]/g;
+
+function getData( data ) {
+       if ( data === "true" ) {
+               return true;
+       }
+
+       if ( data === "false" ) {
+               return false;
+       }
+
+       if ( data === "null" ) {
+               return null;
+       }
+
+       // Only convert to a number if it doesn't change the string
+       if ( data === +data + "" ) {
+               return +data;
+       }
+
+       if ( rbrace.test( data ) ) {
+               return JSON.parse( data );
+       }
+
+       return data;
+}
+
+function dataAttr( elem, key, data ) {
+       var name;
+
+       // If nothing was found internally, try to fetch any
+       // data from the HTML5 data-* attribute
+       if ( data === undefined && elem.nodeType === 1 ) {
+               name = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase();
+               data = elem.getAttribute( name );
+
+               if ( typeof data === "string" ) {
+                       try {
+                               data = getData( data );
+                       } catch ( e ) {}
+
+                       // Make sure we set the data so it isn't changed later
+                       dataUser.set( elem, key, data );
+               } else {
+                       data = undefined;
+               }
+       }
+       return data;
+}
+
+jQuery.extend( {
+       hasData: function( elem ) {
+               return dataUser.hasData( elem ) || dataPriv.hasData( elem );
+       },
+
+       data: function( elem, name, data ) {
+               return dataUser.access( elem, name, data );
+       },
+
+       removeData: function( elem, name ) {
+               dataUser.remove( elem, name );
+       },
+
+       // TODO: Now that all calls to _data and _removeData have been replaced
+       // with direct calls to dataPriv methods, these can be deprecated.
+       _data: function( elem, name, data ) {
+               return dataPriv.access( elem, name, data );
+       },
+
+       _removeData: function( elem, name ) {
+               dataPriv.remove( elem, name );
+       }
+} );
+
+jQuery.fn.extend( {
+       data: function( key, value ) {
+               var i, name, data,
+                       elem = this[ 0 ],
+                       attrs = elem && elem.attributes;
+
+               // Gets all values
+               if ( key === undefined ) {
+                       if ( this.length ) {
+                               data = dataUser.get( elem );
+
+                               if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) {
+                                       i = attrs.length;
+                                       while ( i-- ) {
+
+                                               // Support: IE 11 only
+                                               // The attrs elements can be null (#14894)
+                                               if ( attrs[ i ] ) {
+                                                       name = attrs[ i ].name;
+                                                       if ( name.indexOf( "data-" ) === 0 ) {
+                                                               name = jQuery.camelCase( name.slice( 5 ) );
+                                                               dataAttr( elem, name, data[ name ] );
+                                                       }
+                                               }
+                                       }
+                                       dataPriv.set( elem, "hasDataAttrs", true );
+                               }
+                       }
+
+                       return data;
+               }
+
+               // Sets multiple values
+               if ( typeof key === "object" ) {
+                       return this.each( function() {
+                               dataUser.set( this, key );
+                       } );
+               }
+
+               return access( this, function( value ) {
+                       var data;
+
+                       // The calling jQuery object (element matches) is not empty
+                       // (and therefore has an element appears at this[ 0 ]) and the
+                       // `value` parameter was not undefined. An empty jQuery object
+                       // will result in `undefined` for elem = this[ 0 ] which will
+                       // throw an exception if an attempt to read a data cache is made.
+                       if ( elem && value === undefined ) {
+
+                               // Attempt to get data from the cache
+                               // The key will always be camelCased in Data
+                               data = dataUser.get( elem, key );
+                               if ( data !== undefined ) {
+                                       return data;
+                               }
+
+                               // Attempt to "discover" the data in
+                               // HTML5 custom data-* attrs
+                               data = dataAttr( elem, key );
+                               if ( data !== undefined ) {
+                                       return data;
+                               }
+
+                               // We tried really hard, but the data doesn't exist.
+                               return;
+                       }
+
+                       // Set the data...
+                       this.each( function() {
+
+                               // We always store the camelCased key
+                               dataUser.set( this, key, value );
+                       } );
+               }, null, value, arguments.length > 1, null, true );
+       },
+
+       removeData: function( key ) {
+               return this.each( function() {
+                       dataUser.remove( this, key );
+               } );
+       }
+} );
+
+
+jQuery.extend( {
+       queue: function( elem, type, data ) {
+               var queue;
+
+               if ( elem ) {
+                       type = ( type || "fx" ) + "queue";
+                       queue = dataPriv.get( elem, type );
+
+                       // Speed up dequeue by getting out quickly if this is just a lookup
+                       if ( data ) {
+                               if ( !queue || Array.isArray( data ) ) {
+                                       queue = dataPriv.access( elem, type, jQuery.makeArray( data ) );
+                               } else {
+                                       queue.push( data );
+                               }
+                       }
+                       return queue || [];
+               }
+       },
+
+       dequeue: function( elem, type ) {
+               type = type || "fx";
+
+               var queue = jQuery.queue( elem, type ),
+                       startLength = queue.length,
+                       fn = queue.shift(),
+                       hooks = jQuery._queueHooks( elem, type ),
+                       next = function() {
+                               jQuery.dequeue( elem, type );
+                       };
+
+               // If the fx queue is dequeued, always remove the progress sentinel
+               if ( fn === "inprogress" ) {
+                       fn = queue.shift();
+                       startLength--;
+               }
+
+               if ( fn ) {
+
+                       // Add a progress sentinel to prevent the fx queue from being
+                       // automatically dequeued
+                       if ( type === "fx" ) {
+                               queue.unshift( "inprogress" );
+                       }
+
+                       // Clear up the last queue stop function
+                       delete hooks.stop;
+                       fn.call( elem, next, hooks );
+               }
+
+               if ( !startLength && hooks ) {
+                       hooks.empty.fire();
+               }
+       },
+
+       // Not public - generate a queueHooks object, or return the current one
+       _queueHooks: function( elem, type ) {
+               var key = type + "queueHooks";
+               return dataPriv.get( elem, key ) || dataPriv.access( elem, key, {
+                       empty: jQuery.Callbacks( "once memory" ).add( function() {
+                               dataPriv.remove( elem, [ type + "queue", key ] );
+                       } )
+               } );
+       }
+} );
+
+jQuery.fn.extend( {
+       queue: function( type, data ) {
+               var setter = 2;
+
+               if ( typeof type !== "string" ) {
+                       data = type;
+                       type = "fx";
+                       setter--;
+               }
+
+               if ( arguments.length < setter ) {
+                       return jQuery.queue( this[ 0 ], type );
+               }
+
+               return data === undefined ?
+                       this :
+                       this.each( function() {
+                               var queue = jQuery.queue( this, type, data );
+
+                               // Ensure a hooks for this queue
+                               jQuery._queueHooks( this, type );
+
+                               if ( type === "fx" && queue[ 0 ] !== "inprogress" ) {
+                                       jQuery.dequeue( this, type );
+                               }
+                       } );
+       },
+       dequeue: function( type ) {
+               return this.each( function() {
+                       jQuery.dequeue( this, type );
+               } );
+       },
+       clearQueue: function( type ) {
+               return this.queue( type || "fx", [] );
+       },
+
+       // Get a promise resolved when queues of a certain type
+       // are emptied (fx is the type by default)
+       promise: function( type, obj ) {
+               var tmp,
+                       count = 1,
+                       defer = jQuery.Deferred(),
+                       elements = this,
+                       i = this.length,
+                       resolve = function() {
+                               if ( !( --count ) ) {
+                                       defer.resolveWith( elements, [ elements ] );
+                               }
+                       };
+
+               if ( typeof type !== "string" ) {
+                       obj = type;
+                       type = undefined;
+               }
+               type = type || "fx";
+
+               while ( i-- ) {
+                       tmp = dataPriv.get( elements[ i ], type + "queueHooks" );
+                       if ( tmp && tmp.empty ) {
+                               count++;
+                               tmp.empty.add( resolve );
+                       }
+               }
+               resolve();
+               return defer.promise( obj );
+       }
+} );
+var pnum = ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source;
+
+var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" );
+
+
+var cssExpand = [ "Top", "Right", "Bottom", "Left" ];
+
+var isHiddenWithinTree = function( elem, el ) {
+
+               // isHiddenWithinTree might be called from jQuery#filter function;
+               // in that case, element will be second argument
+               elem = el || elem;
+
+               // Inline style trumps all
+               return elem.style.display === "none" ||
+                       elem.style.display === "" &&
+
+                       // Otherwise, check computed style
+                       // Support: Firefox <=43 - 45
+                       // Disconnected elements can have computed display: none, so first confirm that elem is
+                       // in the document.
+                       jQuery.contains( elem.ownerDocument, elem ) &&
+
+                       jQuery.css( elem, "display" ) === "none";
+       };
+
+var swap = function( elem, options, callback, args ) {
+       var ret, name,
+               old = {};
+
+       // Remember the old values, and insert the new ones
+       for ( name in options ) {
+               old[ name ] = elem.style[ name ];
+               elem.style[ name ] = options[ name ];
+       }
+
+       ret = callback.apply( elem, args || [] );
+
+       // Revert the old values
+       for ( name in options ) {
+               elem.style[ name ] = old[ name ];
+       }
+
+       return ret;
+};
+
+
+
+
+function adjustCSS( elem, prop, valueParts, tween ) {
+       var adjusted,
+               scale = 1,
+               maxIterations = 20,
+               currentValue = tween ?
+                       function() {
+                               return tween.cur();
+                       } :
+                       function() {
+                               return jQuery.css( elem, prop, "" );
+                       },
+               initial = currentValue(),
+               unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ),
+
+               // Starting value computation is required for potential unit mismatches
+               initialInUnit = ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) &&
+                       rcssNum.exec( jQuery.css( elem, prop ) );
+
+       if ( initialInUnit && initialInUnit[ 3 ] !== unit ) {
+
+               // Trust units reported by jQuery.css
+               unit = unit || initialInUnit[ 3 ];
+
+               // Make sure we update the tween properties later on
+               valueParts = valueParts || [];
+
+               // Iteratively approximate from a nonzero starting point
+               initialInUnit = +initial || 1;
+
+               do {
+
+                       // If previous iteration zeroed out, double until we get *something*.
+                       // Use string for doubling so we don't accidentally see scale as unchanged below
+                       scale = scale || ".5";
+
+                       // Adjust and apply
+                       initialInUnit = initialInUnit / scale;
+                       jQuery.style( elem, prop, initialInUnit + unit );
+
+               // Update scale, tolerating zero or NaN from tween.cur()
+               // Break the loop if scale is unchanged or perfect, or if we've just had enough.
+               } while (
+                       scale !== ( scale = currentValue() / initial ) && scale !== 1 && --maxIterations
+               );
+       }
+
+       if ( valueParts ) {
+               initialInUnit = +initialInUnit || +initial || 0;
+
+               // Apply relative offset (+=/-=) if specified
+               adjusted = valueParts[ 1 ] ?
+                       initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :
+                       +valueParts[ 2 ];
+               if ( tween ) {
+                       tween.unit = unit;
+                       tween.start = initialInUnit;
+                       tween.end = adjusted;
+               }
+       }
+       return adjusted;
+}
+
+
+var defaultDisplayMap = {};
+
+function getDefaultDisplay( elem ) {
+       var temp,
+               doc = elem.ownerDocument,
+               nodeName = elem.nodeName,
+               display = defaultDisplayMap[ nodeName ];
+
+       if ( display ) {
+               return display;
+       }
+
+       temp = doc.body.appendChild( doc.createElement( nodeName ) );
+       display = jQuery.css( temp, "display" );
+
+       temp.parentNode.removeChild( temp );
+
+       if ( display === "none" ) {
+               display = "block";
+       }
+       defaultDisplayMap[ nodeName ] = display;
+
+       return display;
+}
+
+function showHide( elements, show ) {
+       var display, elem,
+               values = [],
+               index = 0,
+               length = elements.length;
+
+       // Determine new display value for elements that need to change
+       for ( ; index < length; index++ ) {
+               elem = elements[ index ];
+               if ( !elem.style ) {
+                       continue;
+               }
+
+               display = elem.style.display;
+               if ( show ) {
+
+                       // Since we force visibility upon cascade-hidden elements, an immediate (and slow)
+                       // check is required in this first loop unless we have a nonempty display value (either
+                       // inline or about-to-be-restored)
+                       if ( display === "none" ) {
+                               values[ index ] = dataPriv.get( elem, "display" ) || null;
+                               if ( !values[ index ] ) {
+                                       elem.style.display = "";
+                               }
+                       }
+                       if ( elem.style.display === "" && isHiddenWithinTree( elem ) ) {
+                               values[ index ] = getDefaultDisplay( elem );
+                       }
+               } else {
+                       if ( display !== "none" ) {
+                               values[ index ] = "none";
+
+                               // Remember what we're overwriting
+                               dataPriv.set( elem, "display", display );
+                       }
+               }
+       }
+
+       // Set the display of the elements in a second loop to avoid constant reflow
+       for ( index = 0; index < length; index++ ) {
+               if ( values[ index ] != null ) {
+                       elements[ index ].style.display = values[ index ];
+               }
+       }
+
+       return elements;
+}
+
+jQuery.fn.extend( {
+       show: function() {
+               return showHide( this, true );
+       },
+       hide: function() {
+               return showHide( this );
+       },
+       toggle: function( state ) {
+               if ( typeof state === "boolean" ) {
+                       return state ? this.show() : this.hide();
+               }
+
+               return this.each( function() {
+                       if ( isHiddenWithinTree( this ) ) {
+                               jQuery( this ).show();
+                       } else {
+                               jQuery( this ).hide();
+                       }
+               } );
+       }
+} );
+var rcheckableType = ( /^(?:checkbox|radio)$/i );
+
+var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]+)/i );
+
+var rscriptType = ( /^$|\/(?:java|ecma)script/i );
+
+
+
+// We have to close these tags to support XHTML (#13200)
+var wrapMap = {
+
+       // Support: IE <=9 only
+       option: [ 1, "<select multiple='multiple'>", "</select>" ],
+
+       // XHTML parsers do not magically insert elements in the
+       // same way that tag soup parsers do. So we cannot shorten
+       // this by omitting <tbody> or other required elements.
+       thead: [ 1, "<table>", "</table>" ],
+       col: [ 2, "<table><colgroup>", "</colgroup></table>" ],
+       tr: [ 2, "<table><tbody>", "</tbody></table>" ],
+       td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ],
+
+       _default: [ 0, "", "" ]
+};
+
+// Support: IE <=9 only
+wrapMap.optgroup = wrapMap.option;
+
+wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;
+wrapMap.th = wrapMap.td;
+
+
+function getAll( context, tag ) {
+
+       // Support: IE <=9 - 11 only
+       // Use typeof to avoid zero-argument method invocation on host objects (#15151)
+       var ret;
+
+       if ( typeof context.getElementsByTagName !== "undefined" ) {
+               ret = context.getElementsByTagName( tag || "*" );
+
+       } else if ( typeof context.querySelectorAll !== "undefined" ) {
+               ret = context.querySelectorAll( tag || "*" );
+
+       } else {
+               ret = [];
+       }
+
+       if ( tag === undefined || tag && nodeName( context, tag ) ) {
+               return jQuery.merge( [ context ], ret );
+       }
+
+       return ret;
+}
+
+
+// Mark scripts as having already been evaluated
+function setGlobalEval( elems, refElements ) {
+       var i = 0,
+               l = elems.length;
+
+       for ( ; i < l; i++ ) {
+               dataPriv.set(
+                       elems[ i ],
+                       "globalEval",
+                       !refElements || dataPriv.get( refElements[ i ], "globalEval" )
+               );
+       }
+}
+
+
+var rhtml = /<|&#?\w+;/;
+
+function buildFragment( elems, context, scripts, selection, ignored ) {
+       var elem, tmp, tag, wrap, contains, j,
+               fragment = context.createDocumentFragment(),
+               nodes = [],
+               i = 0,
+               l = elems.length;
+
+       for ( ; i < l; i++ ) {
+               elem = elems[ i ];
+
+               if ( elem || elem === 0 ) {
+
+                       // Add nodes directly
+                       if ( jQuery.type( elem ) === "object" ) {
+
+                               // Support: Android <=4.0 only, PhantomJS 1 only
+                               // push.apply(_, arraylike) throws on ancient WebKit
+                               jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );
+
+                       // Convert non-html into a text node
+                       } else if ( !rhtml.test( elem ) ) {
+                               nodes.push( context.createTextNode( elem ) );
+
+                       // Convert html into DOM nodes
+                       } else {
+                               tmp = tmp || fragment.appendChild( context.createElement( "div" ) );
+
+                               // Deserialize a standard representation
+                               tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase();
+                               wrap = wrapMap[ tag ] || wrapMap._default;
+                               tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];
+
+                               // Descend through wrappers to the right content
+                               j = wrap[ 0 ];
+                               while ( j-- ) {
+                                       tmp = tmp.lastChild;
+                               }
+
+                               // Support: Android <=4.0 only, PhantomJS 1 only
+                               // push.apply(_, arraylike) throws on ancient WebKit
+                               jQuery.merge( nodes, tmp.childNodes );
+
+                               // Remember the top-level container
+                               tmp = fragment.firstChild;
+
+                               // Ensure the created nodes are orphaned (#12392)
+                               tmp.textContent = "";
+                       }
+               }
+       }
+
+       // Remove wrapper from fragment
+       fragment.textContent = "";
+
+       i = 0;
+       while ( ( elem = nodes[ i++ ] ) ) {
+
+               // Skip elements already in the context collection (trac-4087)
+               if ( selection && jQuery.inArray( elem, selection ) > -1 ) {
+                       if ( ignored ) {
+                               ignored.push( elem );
+                       }
+                       continue;
+               }
+
+               contains = jQuery.contains( elem.ownerDocument, elem );
+
+               // Append to fragment
+               tmp = getAll( fragment.appendChild( elem ), "script" );
+
+               // Preserve script evaluation history
+               if ( contains ) {
+                       setGlobalEval( tmp );
+               }
+
+               // Capture executables
+               if ( scripts ) {
+                       j = 0;
+                       while ( ( elem = tmp[ j++ ] ) ) {
+                               if ( rscriptType.test( elem.type || "" ) ) {
+                                       scripts.push( elem );
+                               }
+                       }
+               }
+       }
+
+       return fragment;
+}
+
+
+( function() {
+       var fragment = document.createDocumentFragment(),
+               div = fragment.appendChild( document.createElement( "div" ) ),
+               input = document.createElement( "input" );
+
+       // Support: Android 4.0 - 4.3 only
+       // Check state lost if the name is set (#11217)
+       // Support: Windows Web Apps (WWA)
+       // `name` and `type` must use .setAttribute for WWA (#14901)
+       input.setAttribute( "type", "radio" );
+       input.setAttribute( "checked", "checked" );
+       input.setAttribute( "name", "t" );
+
+       div.appendChild( input );
+
+       // Support: Android <=4.1 only
+       // Older WebKit doesn't clone checked state correctly in fragments
+       support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;
+
+       // Support: IE <=11 only
+       // Make sure textarea (and checkbox) defaultValue is properly cloned
+       div.innerHTML = "<textarea>x</textarea>";
+       support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;
+} )();
+var documentElement = document.documentElement;
+
+
+
+var
+       rkeyEvent = /^key/,
+       rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,
+       rtypenamespace = /^([^.]*)(?:\.(.+)|)/;
+
+function returnTrue() {
+       return true;
+}
+
+function returnFalse() {
+       return false;
+}
+
+// Support: IE <=9 only
+// See #13393 for more info
+function safeActiveElement() {
+       try {
+               return document.activeElement;
+       } catch ( err ) { }
+}
+
+function on( elem, types, selector, data, fn, one ) {
+       var origFn, type;
+
+       // Types can be a map of types/handlers
+       if ( typeof types === "object" ) {
+
+               // ( types-Object, selector, data )
+               if ( typeof selector !== "string" ) {
+
+                       // ( types-Object, data )
+                       data = data || selector;
+                       selector = undefined;
+               }
+               for ( type in types ) {
+                       on( elem, type, selector, data, types[ type ], one );
+               }
+               return elem;
+       }
+
+       if ( data == null && fn == null ) {
+
+               // ( types, fn )
+               fn = selector;
+               data = selector = undefined;
+       } else if ( fn == null ) {
+               if ( typeof selector === "string" ) {
+
+                       // ( types, selector, fn )
+                       fn = data;
+                       data = undefined;
+               } else {
+
+                       // ( types, data, fn )
+                       fn = data;
+                       data = selector;
+                       selector = undefined;
+               }
+       }
+       if ( fn === false ) {
+               fn = returnFalse;
+       } else if ( !fn ) {
+               return elem;
+       }
+
+       if ( one === 1 ) {
+               origFn = fn;
+               fn = function( event ) {
+
+                       // Can use an empty set, since event contains the info
+                       jQuery().off( event );
+                       return origFn.apply( this, arguments );
+               };
+
+               // Use same guid so caller can remove using origFn
+               fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );
+       }
+       return elem.each( function() {
+               jQuery.event.add( this, types, fn, data, selector );
+       } );
+}
+
+/*
+ * Helper functions for managing events -- not part of the public interface.
+ * Props to Dean Edwards' addEvent library for many of the ideas.
+ */
+jQuery.event = {
+
+       global: {},
+
+       add: function( elem, types, handler, data, selector ) {
+
+               var handleObjIn, eventHandle, tmp,
+                       events, t, handleObj,
+                       special, handlers, type, namespaces, origType,
+                       elemData = dataPriv.get( elem );
+
+               // Don't attach events to noData or text/comment nodes (but allow plain objects)
+               if ( !elemData ) {
+                       return;
+               }
+
+               // Caller can pass in an object of custom data in lieu of the handler
+               if ( handler.handler ) {
+                       handleObjIn = handler;
+                       handler = handleObjIn.handler;
+                       selector = handleObjIn.selector;
+               }
+
+               // Ensure that invalid selectors throw exceptions at attach time
+               // Evaluate against documentElement in case elem is a non-element node (e.g., document)
+               if ( selector ) {
+                       jQuery.find.matchesSelector( documentElement, selector );
+               }
+
+               // Make sure that the handler has a unique ID, used to find/remove it later
+               if ( !handler.guid ) {
+                       handler.guid = jQuery.guid++;
+               }
+
+               // Init the element's event structure and main handler, if this is the first
+               if ( !( events = elemData.events ) ) {
+                       events = elemData.events = {};
+               }
+               if ( !( eventHandle = elemData.handle ) ) {
+                       eventHandle = elemData.handle = function( e ) {
+
+                               // Discard the second event of a jQuery.event.trigger() and
+                               // when an event is called after a page has unloaded
+                               return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ?
+                                       jQuery.event.dispatch.apply( elem, arguments ) : undefined;
+                       };
+               }
+
+               // Handle multiple events separated by a space
+               types = ( types || "" ).match( rnothtmlwhite ) || [ "" ];
+               t = types.length;
+               while ( t-- ) {
+                       tmp = rtypenamespace.exec( types[ t ] ) || [];
+                       type = origType = tmp[ 1 ];
+                       namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort();
+
+                       // There *must* be a type, no attaching namespace-only handlers
+                       if ( !type ) {
+                               continue;
+                       }
+
+                       // If event changes its type, use the special event handlers for the changed type
+                       special = jQuery.event.special[ type ] || {};
+
+                       // If selector defined, determine special event api type, otherwise given type
+                       type = ( selector ? special.delegateType : special.bindType ) || type;
+
+                       // Update special based on newly reset type
+                       special = jQuery.event.special[ type ] || {};
+
+                       // handleObj is passed to all event handlers
+                       handleObj = jQuery.extend( {
+                               type: type,
+                               origType: origType,
+                               data: data,
+                               handler: handler,
+                               guid: handler.guid,
+                               selector: selector,
+                               needsContext: selector && jQuery.expr.match.needsContext.test( selector ),
+                               namespace: namespaces.join( "." )
+                       }, handleObjIn );
+
+                       // Init the event handler queue if we're the first
+                       if ( !( handlers = events[ type ] ) ) {
+                               handlers = events[ type ] = [];
+                               handlers.delegateCount = 0;
+
+                               // Only use addEventListener if the special events handler returns false
+                               if ( !special.setup ||
+                                       special.setup.call( elem, data, namespaces, eventHandle ) === false ) {
+
+                                       if ( elem.addEventListener ) {
+                                               elem.addEventListener( type, eventHandle );
+                                       }
+                               }
+                       }
+
+                       if ( special.add ) {
+                               special.add.call( elem, handleObj );
+
+                               if ( !handleObj.handler.guid ) {
+                                       handleObj.handler.guid = handler.guid;
+                               }
+                       }
+
+                       // Add to the element's handler list, delegates in front
+                       if ( selector ) {
+                               handlers.splice( handlers.delegateCount++, 0, handleObj );
+                       } else {
+                               handlers.push( handleObj );
+                       }
+
+                       // Keep track of which events have ever been used, for event optimization
+                       jQuery.event.global[ type ] = true;
+               }
+
+       },
+
+       // Detach an event or set of events from an element
+       remove: function( elem, types, handler, selector, mappedTypes ) {
+
+               var j, origCount, tmp,
+                       events, t, handleObj,
+                       special, handlers, type, namespaces, origType,
+                       elemData = dataPriv.hasData( elem ) && dataPriv.get( elem );
+
+               if ( !elemData || !( events = elemData.events ) ) {
+                       return;
+               }
+
+               // Once for each type.namespace in types; type may be omitted
+               types = ( types || "" ).match( rnothtmlwhite ) || [ "" ];
+               t = types.length;
+               while ( t-- ) {
+                       tmp = rtypenamespace.exec( types[ t ] ) || [];
+                       type = origType = tmp[ 1 ];
+                       namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort();
+
+                       // Unbind all events (on this namespace, if provided) for the element
+                       if ( !type ) {
+                               for ( type in events ) {
+                                       jQuery.event.remove( elem, type + types[ t ], handler, selector, true );
+                               }
+                               continue;
+                       }
+
+                       special = jQuery.event.special[ type ] || {};
+                       type = ( selector ? special.delegateType : special.bindType ) || type;
+                       handlers = events[ type ] || [];
+                       tmp = tmp[ 2 ] &&
+                               new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" );
+
+                       // Remove matching events
+                       origCount = j = handlers.length;
+                       while ( j-- ) {
+                               handleObj = handlers[ j ];
+
+                               if ( ( mappedTypes || origType === handleObj.origType ) &&
+                                       ( !handler || handler.guid === handleObj.guid ) &&
+                                       ( !tmp || tmp.test( handleObj.namespace ) ) &&
+                                       ( !selector || selector === handleObj.selector ||
+                                               selector === "**" && handleObj.selector ) ) {
+                                       handlers.splice( j, 1 );
+
+                                       if ( handleObj.selector ) {
+                                               handlers.delegateCount--;
+                                       }
+                                       if ( special.remove ) {
+                                               special.remove.call( elem, handleObj );
+                                       }
+                               }
+                       }
+
+                       // Remove generic event handler if we removed something and no more handlers exist
+                       // (avoids potential for endless recursion during removal of special event handlers)
+                       if ( origCount && !handlers.length ) {
+                               if ( !special.teardown ||
+                                       special.teardown.call( elem, namespaces, elemData.handle ) === false ) {
+
+                                       jQuery.removeEvent( elem, type, elemData.handle );
+                               }
+
+                               delete events[ type ];
+                       }
+               }
+
+               // Remove data and the expando if it's no longer used
+               if ( jQuery.isEmptyObject( events ) ) {
+                       dataPriv.remove( elem, "handle events" );
+               }
+       },
+
+       dispatch: function( nativeEvent ) {
+
+               // Make a writable jQuery.Event from the native event object
+               var event = jQuery.event.fix( nativeEvent );
+
+               var i, j, ret, matched, handleObj, handlerQueue,
+                       args = new Array( arguments.length ),
+                       handlers = ( dataPriv.get( this, "events" ) || {} )[ event.type ] || [],
+                       special = jQuery.event.special[ event.type ] || {};
+
+               // Use the fix-ed jQuery.Event rather than the (read-only) native event
+               args[ 0 ] = event;
+
+               for ( i = 1; i < arguments.length; i++ ) {
+                       args[ i ] = arguments[ i ];
+               }
+
+               event.delegateTarget = this;
+
+               // Call the preDispatch hook for the mapped type, and let it bail if desired
+               if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {
+                       return;
+               }
+
+               // Determine handlers
+               handlerQueue = jQuery.event.handlers.call( this, event, handlers );
+
+               // Run delegates first; they may want to stop propagation beneath us
+               i = 0;
+               while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {
+                       event.currentTarget = matched.elem;
+
+                       j = 0;
+                       while ( ( handleObj = matched.handlers[ j++ ] ) &&
+                               !event.isImmediatePropagationStopped() ) {
+
+                               // Triggered event must either 1) have no namespace, or 2) have namespace(s)
+                               // a subset or equal to those in the bound event (both can have no namespace).
+                               if ( !event.rnamespace || event.rnamespace.test( handleObj.namespace ) ) {
+
+                                       event.handleObj = handleObj;
+                                       event.data = handleObj.data;
+
+                                       ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||
+                                               handleObj.handler ).apply( matched.elem, args );
+
+                                       if ( ret !== undefined ) {
+                                               if ( ( event.result = ret ) === false ) {
+                                                       event.preventDefault();
+                                                       event.stopPropagation();
+                                               }
+                                       }
+                               }
+                       }
+               }
+
+               // Call the postDispatch hook for the mapped type
+               if ( special.postDispatch ) {
+                       special.postDispatch.call( this, event );
+               }
+
+               return event.result;
+       },
+
+       handlers: function( event, handlers ) {
+               var i, handleObj, sel, matchedHandlers, matchedSelectors,
+                       handlerQueue = [],
+                       delegateCount = handlers.delegateCount,
+                       cur = event.target;
+
+               // Find delegate handlers
+               if ( delegateCount &&
+
+                       // Support: IE <=9
+                       // Black-hole SVG <use> instance trees (trac-13180)
+                       cur.nodeType &&
+
+                       // Support: Firefox <=42
+                       // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)
+                       // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click
+                       // Support: IE 11 only
+                       // ...but not arrow key "clicks" of radio inputs, which can have `button` -1 (gh-2343)
+                       !( event.type === "click" && event.button >= 1 ) ) {
+
+                       for ( ; cur !== this; cur = cur.parentNode || this ) {
+
+                               // Don't check non-elements (#13208)
+                               // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)
+                               if ( cur.nodeType === 1 && !( event.type === "click" && cur.disabled === true ) ) {
+                                       matchedHandlers = [];
+                                       matchedSelectors = {};
+                                       for ( i = 0; i < delegateCount; i++ ) {
+                                               handleObj = handlers[ i ];
+
+                                               // Don't conflict with Object.prototype properties (#13203)
+                                               sel = handleObj.selector + " ";
+
+                                               if ( matchedSelectors[ sel ] === undefined ) {
+                                                       matchedSelectors[ sel ] = handleObj.needsContext ?
+                                                               jQuery( sel, this ).index( cur ) > -1 :
+                                                               jQuery.find( sel, this, null, [ cur ] ).length;
+                                               }
+                                               if ( matchedSelectors[ sel ] ) {
+                                                       matchedHandlers.push( handleObj );
+                                               }
+                                       }
+                                       if ( matchedHandlers.length ) {
+                                               handlerQueue.push( { elem: cur, handlers: matchedHandlers } );
+                                       }
+                               }
+                       }
+               }
+
+               // Add the remaining (directly-bound) handlers
+               cur = this;
+               if ( delegateCount < handlers.length ) {
+                       handlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );
+               }
+
+               return handlerQueue;
+       },
+
+       addProp: function( name, hook ) {
+               Object.defineProperty( jQuery.Event.prototype, name, {
+                       enumerable: true,
+                       configurable: true,
+
+                       get: jQuery.isFunction( hook ) ?
+                               function() {
+                                       if ( this.originalEvent ) {
+                                                       return hook( this.originalEvent );
+                                       }
+                               } :
+                               function() {
+                                       if ( this.originalEvent ) {
+                                                       return this.originalEvent[ name ];
+                                       }
+                               },
+
+                       set: function( value ) {
+                               Object.defineProperty( this, name, {
+                                       enumerable: true,
+                                       configurable: true,
+                                       writable: true,
+                                       value: value
+                               } );
+                       }
+               } );
+       },
+
+       fix: function( originalEvent ) {
+               return originalEvent[ jQuery.expando ] ?
+                       originalEvent :
+                       new jQuery.Event( originalEvent );
+       },
+
+       special: {
+               load: {
+
+                       // Prevent triggered image.load events from bubbling to window.load
+                       noBubble: true
+               },
+               focus: {
+
+                       // Fire native event if possible so blur/focus sequence is correct
+                       trigger: function() {
+                               if ( this !== safeActiveElement() && this.focus ) {
+                                       this.focus();
+                                       return false;
+                               }
+                       },
+                       delegateType: "focusin"
+               },
+               blur: {
+                       trigger: function() {
+                               if ( this === safeActiveElement() && this.blur ) {
+                                       this.blur();
+                                       return false;
+                               }
+                       },
+                       delegateType: "focusout"
+               },
+               click: {
+
+                       // For checkbox, fire native event so checked state will be right
+                       trigger: function() {
+                               if ( this.type === "checkbox" && this.click && nodeName( this, "input" ) ) {
+                                       this.click();
+                                       return false;
+                               }
+                       },
+
+                       // For cross-browser consistency, don't fire native .click() on links
+                       _default: function( event ) {
+                               return nodeName( event.target, "a" );
+                       }
+               },
+
+               beforeunload: {
+                       postDispatch: function( event ) {
+
+                               // Support: Firefox 20+
+                               // Firefox doesn't alert if the returnValue field is not set.
+                               if ( event.result !== undefined && event.originalEvent ) {
+                                       event.originalEvent.returnValue = event.result;
+                               }
+                       }
+               }
+       }
+};
+
+jQuery.removeEvent = function( elem, type, handle ) {
+
+       // This "if" is needed for plain objects
+       if ( elem.removeEventListener ) {
+               elem.removeEventListener( type, handle );
+       }
+};
+
+jQuery.Event = function( src, props ) {
+
+       // Allow instantiation without the 'new' keyword
+       if ( !( this instanceof jQuery.Event ) ) {
+               return new jQuery.Event( src, props );
+       }
+
+       // Event object
+       if ( src && src.type ) {
+               this.originalEvent = src;
+               this.type = src.type;
+
+               // Events bubbling up the document may have been marked as prevented
+               // by a handler lower down the tree; reflect the correct value.
+               this.isDefaultPrevented = src.defaultPrevented ||
+                               src.defaultPrevented === undefined &&
+
+                               // Support: Android <=2.3 only
+                               src.returnValue === false ?
+                       returnTrue :
+                       returnFalse;
+
+               // Create target properties
+               // Support: Safari <=6 - 7 only
+               // Target should not be a text node (#504, #13143)
+               this.target = ( src.target && src.target.nodeType === 3 ) ?
+                       src.target.parentNode :
+                       src.target;
+
+               this.currentTarget = src.currentTarget;
+               this.relatedTarget = src.relatedTarget;
+
+       // Event type
+       } else {
+               this.type = src;
+       }
+
+       // Put explicitly provided properties onto the event object
+       if ( props ) {
+               jQuery.extend( this, props );
+       }
+
+       // Create a timestamp if incoming event doesn't have one
+       this.timeStamp = src && src.timeStamp || jQuery.now();
+
+       // Mark it as fixed
+       this[ jQuery.expando ] = true;
+};
+
+// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding
+// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html
+jQuery.Event.prototype = {
+       constructor: jQuery.Event,
+       isDefaultPrevented: returnFalse,
+       isPropagationStopped: returnFalse,
+       isImmediatePropagationStopped: returnFalse,
+       isSimulated: false,
+
+       preventDefault: function() {
+               var e = this.originalEvent;
+
+               this.isDefaultPrevented = returnTrue;
+
+               if ( e && !this.isSimulated ) {
+                       e.preventDefault();
+               }
+       },
+       stopPropagation: function() {
+               var e = this.originalEvent;
+
+               this.isPropagationStopped = returnTrue;
+
+               if ( e && !this.isSimulated ) {
+                       e.stopPropagation();
+               }
+       },
+       stopImmediatePropagation: function() {
+               var e = this.originalEvent;
+
+               this.isImmediatePropagationStopped = returnTrue;
+
+               if ( e && !this.isSimulated ) {
+                       e.stopImmediatePropagation();
+               }
+
+               this.stopPropagation();
+       }
+};
+
+// Includes all common event props including KeyEvent and MouseEvent specific props
+jQuery.each( {
+       altKey: true,
+       bubbles: true,
+       cancelable: true,
+       changedTouches: true,
+       ctrlKey: true,
+       detail: true,
+       eventPhase: true,
+       metaKey: true,
+       pageX: true,
+       pageY: true,
+       shiftKey: true,
+       view: true,
+       "char": true,
+       charCode: true,
+       key: true,
+       keyCode: true,
+       button: true,
+       buttons: true,
+       clientX: true,
+       clientY: true,
+       offsetX: true,
+       offsetY: true,
+       pointerId: true,
+       pointerType: true,
+       screenX: true,
+       screenY: true,
+       targetTouches: true,
+       toElement: true,
+       touches: true,
+
+       which: function( event ) {
+               var button = event.button;
+
+               // Add which for key events
+               if ( event.which == null && rkeyEvent.test( event.type ) ) {
+                       return event.charCode != null ? event.charCode : event.keyCode;
+               }
+
+               // Add which for click: 1 === left; 2 === middle; 3 === right
+               if ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) {
+                       if ( button & 1 ) {
+                               return 1;
+                       }
+
+                       if ( button & 2 ) {
+                               return 3;
+                       }
+
+                       if ( button & 4 ) {
+                               return 2;
+                       }
+
+                       return 0;
+               }
+
+               return event.which;
+       }
+}, jQuery.event.addProp );
+
+// Create mouseenter/leave events using mouseover/out and event-time checks
+// so that event delegation works in jQuery.
+// Do the same for pointerenter/pointerleave and pointerover/pointerout
+//
+// Support: Safari 7 only
+// Safari sends mouseenter too often; see:
+// https://bugs.chromium.org/p/chromium/issues/detail?id=470258
+// for the description of the bug (it existed in older Chrome versions as well).
+jQuery.each( {
+       mouseenter: "mouseover",
+       mouseleave: "mouseout",
+       pointerenter: "pointerover",
+       pointerleave: "pointerout"
+}, function( orig, fix ) {
+       jQuery.event.special[ orig ] = {
+               delegateType: fix,
+               bindType: fix,
+
+               handle: function( event ) {
+                       var ret,
+                               target = this,
+                               related = event.relatedTarget,
+                               handleObj = event.handleObj;
+
+                       // For mouseenter/leave call the handler if related is outside the target.
+                       // NB: No relatedTarget if the mouse left/entered the browser window
+                       if ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {
+                               event.type = handleObj.origType;
+                               ret = handleObj.handler.apply( this, arguments );
+                               event.type = fix;
+                       }
+                       return ret;
+               }
+       };
+} );
+
+jQuery.fn.extend( {
+
+       on: function( types, selector, data, fn ) {
+               return on( this, types, selector, data, fn );
+       },
+       one: function( types, selector, data, fn ) {
+               return on( this, types, selector, data, fn, 1 );
+       },
+       off: function( types, selector, fn ) {
+               var handleObj, type;
+               if ( types && types.preventDefault && types.handleObj ) {
+
+                       // ( event )  dispatched jQuery.Event
+                       handleObj = types.handleObj;
+                       jQuery( types.delegateTarget ).off(
+                               handleObj.namespace ?
+                                       handleObj.origType + "." + handleObj.namespace :
+                                       handleObj.origType,
+                               handleObj.selector,
+                               handleObj.handler
+                       );
+                       return this;
+               }
+               if ( typeof types === "object" ) {
+
+                       // ( types-object [, selector] )
+                       for ( type in types ) {
+                               this.off( type, selector, types[ type ] );
+                       }
+                       return this;
+               }
+               if ( selector === false || typeof selector === "function" ) {
+
+                       // ( types [, fn] )
+                       fn = selector;
+                       selector = undefined;
+               }
+               if ( fn === false ) {
+                       fn = returnFalse;
+               }
+               return this.each( function() {
+                       jQuery.event.remove( this, types, fn, selector );
+               } );
+       }
+} );
+
+
+var
+
+       /* eslint-disable max-len */
+
+       // See https://github.com/eslint/eslint/issues/3229
+       rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,
+
+       /* eslint-enable */
+
+       // Support: IE <=10 - 11, Edge 12 - 13
+       // In IE/Edge using regex groups here causes severe slowdowns.
+       // See https://connect.microsoft.com/IE/feedback/details/1736512/
+       rnoInnerhtml = /<script|<style|<link/i,
+
+       // checked="checked" or checked
+       rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i,
+       rscriptTypeMasked = /^true\/(.*)/,
+       rcleanScript = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;
+
+// Prefer a tbody over its parent table for containing new rows
+function manipulationTarget( elem, content ) {
+       if ( nodeName( elem, "table" ) &&
+               nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ) {
+
+               return jQuery( ">tbody", elem )[ 0 ] || elem;
+       }
+
+       return elem;
+}
+
+// Replace/restore the type attribute of script elements for safe DOM manipulation
+function disableScript( elem ) {
+       elem.type = ( elem.getAttribute( "type" ) !== null ) + "/" + elem.type;
+       return elem;
+}
+function restoreScript( elem ) {
+       var match = rscriptTypeMasked.exec( elem.type );
+
+       if ( match ) {
+               elem.type = match[ 1 ];
+       } else {
+               elem.removeAttribute( "type" );
+       }
+
+       return elem;
+}
+
+function cloneCopyEvent( src, dest ) {
+       var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events;
+
+       if ( dest.nodeType !== 1 ) {
+               return;
+       }
+
+       // 1. Copy private data: events, handlers, etc.
+       if ( dataPriv.hasData( src ) ) {
+               pdataOld = dataPriv.access( src );
+               pdataCur = dataPriv.set( dest, pdataOld );
+               events = pdataOld.events;
+
+               if ( events ) {
+                       delete pdataCur.handle;
+                       pdataCur.events = {};
+
+                       for ( type in events ) {
+                               for ( i = 0, l = events[ type ].length; i < l; i++ ) {
+                                       jQuery.event.add( dest, type, events[ type ][ i ] );
+                               }
+                       }
+               }
+       }
+
+       // 2. Copy user data
+       if ( dataUser.hasData( src ) ) {
+               udataOld = dataUser.access( src );
+               udataCur = jQuery.extend( {}, udataOld );
+
+               dataUser.set( dest, udataCur );
+       }
+}
+
+// Fix IE bugs, see support tests
+function fixInput( src, dest ) {
+       var nodeName = dest.nodeName.toLowerCase();
+
+       // Fails to persist the checked state of a cloned checkbox or radio button.
+       if ( nodeName === "input" && rcheckableType.test( src.type ) ) {
+               dest.checked = src.checked;
+
+       // Fails to return the selected option to the default selected state when cloning options
+       } else if ( nodeName === "input" || nodeName === "textarea" ) {
+               dest.defaultValue = src.defaultValue;
+       }
+}
+
+function domManip( collection, args, callback, ignored ) {
+
+       // Flatten any nested arrays
+       args = concat.apply( [], args );
+
+       var fragment, first, scripts, hasScripts, node, doc,
+               i = 0,
+               l = collection.length,
+               iNoClone = l - 1,
+               value = args[ 0 ],
+               isFunction = jQuery.isFunction( value );
+
+       // We can't cloneNode fragments that contain checked, in WebKit
+       if ( isFunction ||
+                       ( l > 1 && typeof value === "string" &&
+                               !support.checkClone && rchecked.test( value ) ) ) {
+               return collection.each( function( index ) {
+                       var self = collection.eq( index );
+                       if ( isFunction ) {
+                               args[ 0 ] = value.call( this, index, self.html() );
+                       }
+                       domManip( self, args, callback, ignored );
+               } );
+       }
+
+       if ( l ) {
+               fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );
+               first = fragment.firstChild;
+
+               if ( fragment.childNodes.length === 1 ) {
+                       fragment = first;
+               }
+
+               // Require either new content or an interest in ignored elements to invoke the callback
+               if ( first || ignored ) {
+                       scripts = jQuery.map( getAll( fragment, "script" ), disableScript );
+                       hasScripts = scripts.length;
+
+                       // Use the original fragment for the last item
+                       // instead of the first because it can end up
+                       // being emptied incorrectly in certain situations (#8070).
+                       for ( ; i < l; i++ ) {
+                               node = fragment;
+
+                               if ( i !== iNoClone ) {
+                                       node = jQuery.clone( node, true, true );
+
+                                       // Keep references to cloned scripts for later restoration
+                                       if ( hasScripts ) {
+
+                                               // Support: Android <=4.0 only, PhantomJS 1 only
+                                               // push.apply(_, arraylike) throws on ancient WebKit
+                                               jQuery.merge( scripts, getAll( node, "script" ) );
+                                       }
+                               }
+
+                               callback.call( collection[ i ], node, i );
+                       }
+
+                       if ( hasScripts ) {
+                               doc = scripts[ scripts.length - 1 ].ownerDocument;
+
+                               // Reenable scripts
+                               jQuery.map( scripts, restoreScript );
+
+                               // Evaluate executable scripts on first document insertion
+                               for ( i = 0; i < hasScripts; i++ ) {
+                                       node = scripts[ i ];
+                                       if ( rscriptType.test( node.type || "" ) &&
+                                               !dataPriv.access( node, "globalEval" ) &&
+                                               jQuery.contains( doc, node ) ) {
+
+                                               if ( node.src ) {
+
+                                                       // Optional AJAX dependency, but won't run scripts if not present
+                                                       if ( jQuery._evalUrl ) {
+                                                               jQuery._evalUrl( node.src );
+                                                       }
+                                               } else {
+                                                       DOMEval( node.textContent.replace( rcleanScript, "" ), doc );
+                                               }
+                                       }
+                               }
+                       }
+               }
+       }
+
+       return collection;
+}
+
+function remove( elem, selector, keepData ) {
+       var node,
+               nodes = selector ? jQuery.filter( selector, elem ) : elem,
+               i = 0;
+
+       for ( ; ( node = nodes[ i ] ) != null; i++ ) {
+               if ( !keepData && node.nodeType === 1 ) {
+                       jQuery.cleanData( getAll( node ) );
+               }
+
+               if ( node.parentNode ) {
+                       if ( keepData && jQuery.contains( node.ownerDocument, node ) ) {
+                               setGlobalEval( getAll( node, "script" ) );
+                       }
+                       node.parentNode.removeChild( node );
+               }
+       }
+
+       return elem;
+}
+
+jQuery.extend( {
+       htmlPrefilter: function( html ) {
+               return html.replace( rxhtmlTag, "<$1></$2>" );
+       },
+
+       clone: function( elem, dataAndEvents, deepDataAndEvents ) {
+               var i, l, srcElements, destElements,
+                       clone = elem.cloneNode( true ),
+                       inPage = jQuery.contains( elem.ownerDocument, elem );
+
+               // Fix IE cloning issues
+               if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&
+                               !jQuery.isXMLDoc( elem ) ) {
+
+                       // We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2
+                       destElements = getAll( clone );
+                       srcElements = getAll( elem );
+
+                       for ( i = 0, l = srcElements.length; i < l; i++ ) {
+                               fixInput( srcElements[ i ], destElements[ i ] );
+                       }
+               }
+
+               // Copy the events from the original to the clone
+               if ( dataAndEvents ) {
+                       if ( deepDataAndEvents ) {
+                               srcElements = srcElements || getAll( elem );
+                               destElements = destElements || getAll( clone );
+
+                               for ( i = 0, l = srcElements.length; i < l; i++ ) {
+                                       cloneCopyEvent( srcElements[ i ], destElements[ i ] );
+                               }
+                       } else {
+                               cloneCopyEvent( elem, clone );
+                       }
+               }
+
+               // Preserve script evaluation history
+               destElements = getAll( clone, "script" );
+               if ( destElements.length > 0 ) {
+                       setGlobalEval( destElements, !inPage && getAll( elem, "script" ) );
+               }
+
+               // Return the cloned set
+               return clone;
+       },
+
+       cleanData: function( elems ) {
+               var data, elem, type,
+                       special = jQuery.event.special,
+                       i = 0;
+
+               for ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {
+                       if ( acceptData( elem ) ) {
+                               if ( ( data = elem[ dataPriv.expando ] ) ) {
+                                       if ( data.events ) {
+                                               for ( type in data.events ) {
+                                                       if ( special[ type ] ) {
+                                                               jQuery.event.remove( elem, type );
+
+                                                       // This is a shortcut to avoid jQuery.event.remove's overhead
+                                                       } else {
+                                                               jQuery.removeEvent( elem, type, data.handle );
+                                                       }
+                                               }
+                                       }
+
+                                       // Support: Chrome <=35 - 45+
+                                       // Assign undefined instead of using delete, see Data#remove
+                                       elem[ dataPriv.expando ] = undefined;
+                               }
+                               if ( elem[ dataUser.expando ] ) {
+
+                                       // Support: Chrome <=35 - 45+
+                                       // Assign undefined instead of using delete, see Data#remove
+                                       elem[ dataUser.expando ] = undefined;
+                               }
+                       }
+               }
+       }
+} );
+
+jQuery.fn.extend( {
+       detach: function( selector ) {
+               return remove( this, selector, true );
+       },
+
+       remove: function( selector ) {
+               return remove( this, selector );
+       },
+
+       text: function( value ) {
+               return access( this, function( value ) {
+                       return value === undefined ?
+                               jQuery.text( this ) :
+                               this.empty().each( function() {
+                                       if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
+                                               this.textContent = value;
+                                       }
+                               } );
+               }, null, value, arguments.length );
+       },
+
+       append: function() {
+               return domManip( this, arguments, function( elem ) {
+                       if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
+                               var target = manipulationTarget( this, elem );
+                               target.appendChild( elem );
+                       }
+               } );
+       },
+
+       prepend: function() {
+               return domManip( this, arguments, function( elem ) {
+                       if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
+                               var target = manipulationTarget( this, elem );
+                               target.insertBefore( elem, target.firstChild );
+                       }
+               } );
+       },
+
+       before: function() {
+               return domManip( this, arguments, function( elem ) {
+                       if ( this.parentNode ) {
+                               this.parentNode.insertBefore( elem, this );
+                       }
+               } );
+       },
+
+       after: function() {
+               return domManip( this, arguments, function( elem ) {
+                       if ( this.parentNode ) {
+                               this.parentNode.insertBefore( elem, this.nextSibling );
+                       }
+               } );
+       },
+
+       empty: function() {
+               var elem,
+                       i = 0;
+
+               for ( ; ( elem = this[ i ] ) != null; i++ ) {
+                       if ( elem.nodeType === 1 ) {
+
+                               // Prevent memory leaks
+                               jQuery.cleanData( getAll( elem, false ) );
+
+                               // Remove any remaining nodes
+                               elem.textContent = "";
+                       }
+               }
+
+               return this;
+       },
+
+       clone: function( dataAndEvents, deepDataAndEvents ) {
+               dataAndEvents = dataAndEvents == null ? false : dataAndEvents;
+               deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;
+
+               return this.map( function() {
+                       return jQuery.clone( this, dataAndEvents, deepDataAndEvents );
+               } );
+       },
+
+       html: function( value ) {
+               return access( this, function( value ) {
+                       var elem = this[ 0 ] || {},
+                               i = 0,
+                               l = this.length;
+
+                       if ( value === undefined && elem.nodeType === 1 ) {
+                               return elem.innerHTML;
+                       }
+
+                       // See if we can take a shortcut and just use innerHTML
+                       if ( typeof value === "string" && !rnoInnerhtml.test( value ) &&
+                               !wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) {
+
+                               value = jQuery.htmlPrefilter( value );
+
+                               try {
+                                       for ( ; i < l; i++ ) {
+                                               elem = this[ i ] || {};
+
+                                               // Remove element nodes and prevent memory leaks
+                                               if ( elem.nodeType === 1 ) {
+                                                       jQuery.cleanData( getAll( elem, false ) );
+                                                       elem.innerHTML = value;
+                                               }
+                                       }
+
+                                       elem = 0;
+
+                               // If using innerHTML throws an exception, use the fallback method
+                               } catch ( e ) {}
+                       }
+
+                       if ( elem ) {
+                               this.empty().append( value );
+                       }
+               }, null, value, arguments.length );
+       },
+
+       replaceWith: function() {
+               var ignored = [];
+
+               // Make the changes, replacing each non-ignored context element with the new content
+               return domManip( this, arguments, function( elem ) {
+                       var parent = this.parentNode;
+
+                       if ( jQuery.inArray( this, ignored ) < 0 ) {
+                               jQuery.cleanData( getAll( this ) );
+                               if ( parent ) {
+                                       parent.replaceChild( elem, this );
+                               }
+                       }
+
+               // Force callback invocation
+               }, ignored );
+       }
+} );
+
+jQuery.each( {
+       appendTo: "append",
+       prependTo: "prepend",
+       insertBefore: "before",
+       insertAfter: "after",
+       replaceAll: "replaceWith"
+}, function( name, original ) {
+       jQuery.fn[ name ] = function( selector ) {
+               var elems,
+                       ret = [],
+                       insert = jQuery( selector ),
+                       last = insert.length - 1,
+                       i = 0;
+
+               for ( ; i <= last; i++ ) {
+                       elems = i === last ? this : this.clone( true );
+                       jQuery( insert[ i ] )[ original ]( elems );
+
+                       // Support: Android <=4.0 only, PhantomJS 1 only
+                       // .get() because push.apply(_, arraylike) throws on ancient WebKit
+                       push.apply( ret, elems.get() );
+               }
+
+               return this.pushStack( ret );
+       };
+} );
+var rmargin = ( /^margin/ );
+
+var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" );
+
+var getStyles = function( elem ) {
+
+               // Support: IE <=11 only, Firefox <=30 (#15098, #14150)
+               // IE throws on elements created in popups
+               // FF meanwhile throws on frame elements through "defaultView.getComputedStyle"
+               var view = elem.ownerDocument.defaultView;
+
+               if ( !view || !view.opener ) {
+                       view = window;
+               }
+
+               return view.getComputedStyle( elem );
+       };
+
+
+
+( function() {
+
+       // Executing both pixelPosition & boxSizingReliable tests require only one layout
+       // so they're executed at the same time to save the second computation.
+       function computeStyleTests() {
+
+               // This is a singleton, we need to execute it only once
+               if ( !div ) {
+                       return;
+               }
+
+               div.style.cssText =
+                       "box-sizing:border-box;" +
+                       "position:relative;display:block;" +
+                       "margin:auto;border:1px;padding:1px;" +
+                       "top:1%;width:50%";
+               div.innerHTML = "";
+               documentElement.appendChild( container );
+
+               var divStyle = window.getComputedStyle( div );
+               pixelPositionVal = divStyle.top !== "1%";
+
+               // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44
+               reliableMarginLeftVal = divStyle.marginLeft === "2px";
+               boxSizingReliableVal = divStyle.width === "4px";
+
+               // Support: Android 4.0 - 4.3 only
+               // Some styles come back with percentage values, even though they shouldn't
+               div.style.marginRight = "50%";
+               pixelMarginRightVal = divStyle.marginRight === "4px";
+
+               documentElement.removeChild( container );
+
+               // Nullify the div so it wouldn't be stored in the memory and
+               // it will also be a sign that checks already performed
+               div = null;
+       }
+
+       var pixelPositionVal, boxSizingReliableVal, pixelMarginRightVal, reliableMarginLeftVal,
+               container = document.createElement( "div" ),
+               div = document.createElement( "div" );
+
+       // Finish early in limited (non-browser) environments
+       if ( !div.style ) {
+               return;
+       }
+
+       // Support: IE <=9 - 11 only
+       // Style of cloned element affects source element cloned (#8908)
+       div.style.backgroundClip = "content-box";
+       div.cloneNode( true ).style.backgroundClip = "";
+       support.clearCloneStyle = div.style.backgroundClip === "content-box";
+
+       container.style.cssText = "border:0;width:8px;height:0;top:0;left:-9999px;" +
+               "padding:0;margin-top:1px;position:absolute";
+       container.appendChild( div );
+
+       jQuery.extend( support, {
+               pixelPosition: function() {
+                       computeStyleTests();
+                       return pixelPositionVal;
+               },
+               boxSizingReliable: function() {
+                       computeStyleTests();
+                       return boxSizingReliableVal;
+               },
+               pixelMarginRight: function() {
+                       computeStyleTests();
+                       return pixelMarginRightVal;
+               },
+               reliableMarginLeft: function() {
+                       computeStyleTests();
+                       return reliableMarginLeftVal;
+               }
+       } );
+} )();
+
+
+function curCSS( elem, name, computed ) {
+       var width, minWidth, maxWidth, ret,
+
+               // Support: Firefox 51+
+               // Retrieving style before computed somehow
+               // fixes an issue with getting wrong values
+               // on detached elements
+               style = elem.style;
+
+       computed = computed || getStyles( elem );
+
+       // getPropertyValue is needed for:
+       //   .css('filter') (IE 9 only, #12537)
+       //   .css('--customProperty) (#3144)
+       if ( computed ) {
+               ret = computed.getPropertyValue( name ) || computed[ name ];
+
+               if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) {
+                       ret = jQuery.style( elem, name );
+               }
+
+               // A tribute to the "awesome hack by Dean Edwards"
+               // Android Browser returns percentage for some values,
+               // but width seems to be reliably pixels.
+               // This is against the CSSOM draft spec:
+               // https://drafts.csswg.org/cssom/#resolved-values
+               if ( !support.pixelMarginRight() && rnumnonpx.test( ret ) && rmargin.test( name ) ) {
+
+                       // Remember the original values
+                       width = style.width;
+                       minWidth = style.minWidth;
+                       maxWidth = style.maxWidth;
+
+                       // Put in the new values to get a computed value out
+                       style.minWidth = style.maxWidth = style.width = ret;
+                       ret = computed.width;
+
+                       // Revert the changed values
+                       style.width = width;
+                       style.minWidth = minWidth;
+                       style.maxWidth = maxWidth;
+               }
+       }
+
+       return ret !== undefined ?
+
+               // Support: IE <=9 - 11 only
+               // IE returns zIndex value as an integer.
+               ret + "" :
+               ret;
+}
+
+
+function addGetHookIf( conditionFn, hookFn ) {
+
+       // Define the hook, we'll check on the first run if it's really needed.
+       return {
+               get: function() {
+                       if ( conditionFn() ) {
+
+                               // Hook not needed (or it's not possible to use it due
+                               // to missing dependency), remove it.
+                               delete this.get;
+                               return;
+                       }
+
+                       // Hook needed; redefine it so that the support test is not executed again.
+                       return ( this.get = hookFn ).apply( this, arguments );
+               }
+       };
+}
+
+
+var
+
+       // Swappable if display is none or starts with table
+       // except "table", "table-cell", or "table-caption"
+       // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display
+       rdisplayswap = /^(none|table(?!-c[ea]).+)/,
+       rcustomProp = /^--/,
+       cssShow = { position: "absolute", visibility: "hidden", display: "block" },
+       cssNormalTransform = {
+               letterSpacing: "0",
+               fontWeight: "400"
+       },
+
+       cssPrefixes = [ "Webkit", "Moz", "ms" ],
+       emptyStyle = document.createElement( "div" ).style;
+
+// Return a css property mapped to a potentially vendor prefixed property
+function vendorPropName( name ) {
+
+       // Shortcut for names that are not vendor prefixed
+       if ( name in emptyStyle ) {
+               return name;
+       }
+
+       // Check for vendor prefixed names
+       var capName = name[ 0 ].toUpperCase() + name.slice( 1 ),
+               i = cssPrefixes.length;
+
+       while ( i-- ) {
+               name = cssPrefixes[ i ] + capName;
+               if ( name in emptyStyle ) {
+                       return name;
+               }
+       }
+}
+
+// Return a property mapped along what jQuery.cssProps suggests or to
+// a vendor prefixed property.
+function finalPropName( name ) {
+       var ret = jQuery.cssProps[ name ];
+       if ( !ret ) {
+               ret = jQuery.cssProps[ name ] = vendorPropName( name ) || name;
+       }
+       return ret;
+}
+
+function setPositiveNumber( elem, value, subtract ) {
+
+       // Any relative (+/-) values have already been
+       // normalized at this point
+       var matches = rcssNum.exec( value );
+       return matches ?
+
+               // Guard against undefined "subtract", e.g., when used as in cssHooks
+               Math.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || "px" ) :
+               value;
+}
+
+function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) {
+       var i,
+               val = 0;
+
+       // If we already have the right measurement, avoid augmentation
+       if ( extra === ( isBorderBox ? "border" : "content" ) ) {
+               i = 4;
+
+       // Otherwise initialize for horizontal or vertical properties
+       } else {
+               i = name === "width" ? 1 : 0;
+       }
+
+       for ( ; i < 4; i += 2 ) {
+
+               // Both box models exclude margin, so add it if we want it
+               if ( extra === "margin" ) {
+                       val += jQuery.css( elem, extra + cssExpand[ i ], true, styles );
+               }
+
+               if ( isBorderBox ) {
+
+                       // border-box includes padding, so remove it if we want content
+                       if ( extra === "content" ) {
+                               val -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
+                       }
+
+                       // At this point, extra isn't border nor margin, so remove border
+                       if ( extra !== "margin" ) {
+                               val -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
+                       }
+               } else {
+
+                       // At this point, extra isn't content, so add padding
+                       val += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
+
+                       // At this point, extra isn't content nor padding, so add border
+                       if ( extra !== "padding" ) {
+                               val += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
+                       }
+               }
+       }
+
+       return val;
+}
+
+function getWidthOrHeight( elem, name, extra ) {
+
+       // Start with computed style
+       var valueIsBorderBox,
+               styles = getStyles( elem ),
+               val = curCSS( elem, name, styles ),
+               isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box";
+
+       // Computed unit is not pixels. Stop here and return.
+       if ( rnumnonpx.test( val ) ) {
+               return val;
+       }
+
+       // Check for style in case a browser which returns unreliable values
+       // for getComputedStyle silently falls back to the reliable elem.style
+       valueIsBorderBox = isBorderBox &&
+               ( support.boxSizingReliable() || val === elem.style[ name ] );
+
+       // Fall back to offsetWidth/Height when value is "auto"
+       // This happens for inline elements with no explicit setting (gh-3571)
+       if ( val === "auto" ) {
+               val = elem[ "offset" + name[ 0 ].toUpperCase() + name.slice( 1 ) ];
+       }
+
+       // Normalize "", auto, and prepare for extra
+       val = parseFloat( val ) || 0;
+
+       // Use the active box-sizing model to add/subtract irrelevant styles
+       return ( val +
+               augmentWidthOrHeight(
+                       elem,
+                       name,
+                       extra || ( isBorderBox ? "border" : "content" ),
+                       valueIsBorderBox,
+                       styles
+               )
+       ) + "px";
+}
+
+jQuery.extend( {
+
+       // Add in style property hooks for overriding the default
+       // behavior of getting and setting a style property
+       cssHooks: {
+               opacity: {
+                       get: function( elem, computed ) {
+                               if ( computed ) {
+
+                                       // We should always get a number back from opacity
+                                       var ret = curCSS( elem, "opacity" );
+                                       return ret === "" ? "1" : ret;
+                               }
+                       }
+               }
+       },
+
+       // Don't automatically add "px" to these possibly-unitless properties
+       cssNumber: {
+               "animationIterationCount": true,
+               "columnCount": true,
+               "fillOpacity": true,
+               "flexGrow": true,
+               "flexShrink": true,
+               "fontWeight": true,
+               "lineHeight": true,
+               "opacity": true,
+               "order": true,
+               "orphans": true,
+               "widows": true,
+               "zIndex": true,
+               "zoom": true
+       },
+
+       // Add in properties whose names you wish to fix before
+       // setting or getting the value
+       cssProps: {
+               "float": "cssFloat"
+       },
+
+       // Get and set the style property on a DOM Node
+       style: function( elem, name, value, extra ) {
+
+               // Don't set styles on text and comment nodes
+               if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {
+                       return;
+               }
+
+               // Make sure that we're working with the right name
+               var ret, type, hooks,
+                       origName = jQuery.camelCase( name ),
+                       isCustomProp = rcustomProp.test( name ),
+                       style = elem.style;
+
+               // Make sure that we're working with the right name. We don't
+               // want to query the value if it is a CSS custom property
+               // since they are user-defined.
+               if ( !isCustomProp ) {
+                       name = finalPropName( origName );
+               }
+
+               // Gets hook for the prefixed version, then unprefixed version
+               hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
+
+               // Check if we're setting a value
+               if ( value !== undefined ) {
+                       type = typeof value;
+
+                       // Convert "+=" or "-=" to relative numbers (#7345)
+                       if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {
+                               value = adjustCSS( elem, name, ret );
+
+                               // Fixes bug #9237
+                               type = "number";
+                       }
+
+                       // Make sure that null and NaN values aren't set (#7116)
+                       if ( value == null || value !== value ) {
+                               return;
+                       }
+
+                       // If a number was passed in, add the unit (except for certain CSS properties)
+                       if ( type === "number" ) {
+                               value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" );
+                       }
+
+                       // background-* props affect original clone's values
+                       if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) {
+                               style[ name ] = "inherit";
+                       }
+
+                       // If a hook was provided, use that value, otherwise just set the specified value
+                       if ( !hooks || !( "set" in hooks ) ||
+                               ( value = hooks.set( elem, value, extra ) ) !== undefined ) {
+
+                               if ( isCustomProp ) {
+                                       style.setProperty( name, value );
+                               } else {
+                                       style[ name ] = value;
+                               }
+                       }
+
+               } else {
+
+                       // If a hook was provided get the non-computed value from there
+                       if ( hooks && "get" in hooks &&
+                               ( ret = hooks.get( elem, false, extra ) ) !== undefined ) {
+
+                               return ret;
+                       }
+
+                       // Otherwise just get the value from the style object
+                       return style[ name ];
+               }
+       },
+
+       css: function( elem, name, extra, styles ) {
+               var val, num, hooks,
+                       origName = jQuery.camelCase( name ),
+                       isCustomProp = rcustomProp.test( name );
+
+               // Make sure that we're working with the right name. We don't
+               // want to modify the value if it is a CSS custom property
+               // since they are user-defined.
+               if ( !isCustomProp ) {
+                       name = finalPropName( origName );
+               }
+
+               // Try prefixed name followed by the unprefixed name
+               hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
+
+               // If a hook was provided get the computed value from there
+               if ( hooks && "get" in hooks ) {
+                       val = hooks.get( elem, true, extra );
+               }
+
+               // Otherwise, if a way to get the computed value exists, use that
+               if ( val === undefined ) {
+                       val = curCSS( elem, name, styles );
+               }
+
+               // Convert "normal" to computed value
+               if ( val === "normal" && name in cssNormalTransform ) {
+                       val = cssNormalTransform[ name ];
+               }
+
+               // Make numeric if forced or a qualifier was provided and val looks numeric
+               if ( extra === "" || extra ) {
+                       num = parseFloat( val );
+                       return extra === true || isFinite( num ) ? num || 0 : val;
+               }
+
+               return val;
+       }
+} );
+
+jQuery.each( [ "height", "width" ], function( i, name ) {
+       jQuery.cssHooks[ name ] = {
+               get: function( elem, computed, extra ) {
+                       if ( computed ) {
+
+                               // Certain elements can have dimension info if we invisibly show them
+                               // but it must have a current display style that would benefit
+                               return rdisplayswap.test( jQuery.css( elem, "display" ) ) &&
+
+                                       // Support: Safari 8+
+                                       // Table columns in Safari have non-zero offsetWidth & zero
+                                       // getBoundingClientRect().width unless display is changed.
+                                       // Support: IE <=11 only
+                                       // Running getBoundingClientRect on a disconnected node
+                                       // in IE throws an error.
+                                       ( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?
+                                               swap( elem, cssShow, function() {
+                                                       return getWidthOrHeight( elem, name, extra );
+                                               } ) :
+                                               getWidthOrHeight( elem, name, extra );
+                       }
+               },
+
+               set: function( elem, value, extra ) {
+                       var matches,
+                               styles = extra && getStyles( elem ),
+                               subtract = extra && augmentWidthOrHeight(
+                                       elem,
+                                       name,
+                                       extra,
+                                       jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
+                                       styles
+                               );
+
+                       // Convert to pixels if value adjustment is needed
+                       if ( subtract && ( matches = rcssNum.exec( value ) ) &&
+                               ( matches[ 3 ] || "px" ) !== "px" ) {
+
+                               elem.style[ name ] = value;
+                               value = jQuery.css( elem, name );
+                       }
+
+                       return setPositiveNumber( elem, value, subtract );
+               }
+       };
+} );
+
+jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,
+       function( elem, computed ) {
+               if ( computed ) {
+                       return ( parseFloat( curCSS( elem, "marginLeft" ) ) ||
+                               elem.getBoundingClientRect().left -
+                                       swap( elem, { marginLeft: 0 }, function() {
+                                               return elem.getBoundingClientRect().left;
+                                       } )
+                               ) + "px";
+               }
+       }
+);
+
+// These hooks are used by animate to expand properties
+jQuery.each( {
+       margin: "",
+       padding: "",
+       border: "Width"
+}, function( prefix, suffix ) {
+       jQuery.cssHooks[ prefix + suffix ] = {
+               expand: function( value ) {
+                       var i = 0,
+                               expanded = {},
+
+                               // Assumes a single number if not a string
+                               parts = typeof value === "string" ? value.split( " " ) : [ value ];
+
+                       for ( ; i < 4; i++ ) {
+                               expanded[ prefix + cssExpand[ i ] + suffix ] =
+                                       parts[ i ] || parts[ i - 2 ] || parts[ 0 ];
+                       }
+
+                       return expanded;
+               }
+       };
+
+       if ( !rmargin.test( prefix ) ) {
+               jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;
+       }
+} );
+
+jQuery.fn.extend( {
+       css: function( name, value ) {
+               return access( this, function( elem, name, value ) {
+                       var styles, len,
+                               map = {},
+                               i = 0;
+
+                       if ( Array.isArray( name ) ) {
+                               styles = getStyles( elem );
+                               len = name.length;
+
+                               for ( ; i < len; i++ ) {
+                                       map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );
+                               }
+
+                               return map;
+                       }
+
+                       return value !== undefined ?
+                               jQuery.style( elem, name, value ) :
+                               jQuery.css( elem, name );
+               }, name, value, arguments.length > 1 );
+       }
+} );
+
+
+// Based off of the plugin by Clint Helfers, with permission.
+// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/
+jQuery.fn.delay = function( time, type ) {
+       time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;
+       type = type || "fx";
+
+       return this.queue( type, function( next, hooks ) {
+               var timeout = window.setTimeout( next, time );
+               hooks.stop = function() {
+                       window.clearTimeout( timeout );
+               };
+       } );
+};
+
+
+( function() {
+       var input = document.createElement( "input" ),
+               select = document.createElement( "select" ),
+               opt = select.appendChild( document.createElement( "option" ) );
+
+       input.type = "checkbox";
+
+       // Support: Android <=4.3 only
+       // Default value for a checkbox should be "on"
+       support.checkOn = input.value !== "";
+
+       // Support: IE <=11 only
+       // Must access selectedIndex to make default options select
+       support.optSelected = opt.selected;
+
+       // Support: IE <=11 only
+       // An input loses its value after becoming a radio
+       input = document.createElement( "input" );
+       input.value = "t";
+       input.type = "radio";
+       support.radioValue = input.value === "t";
+} )();
+
+
+var boolHook,
+       attrHandle = jQuery.expr.attrHandle;
+
+jQuery.fn.extend( {
+       attr: function( name, value ) {
+               return access( this, jQuery.attr, name, value, arguments.length > 1 );
+       },
+
+       removeAttr: function( name ) {
+               return this.each( function() {
+                       jQuery.removeAttr( this, name );
+               } );
+       }
+} );
+
+jQuery.extend( {
+       attr: function( elem, name, value ) {
+               var ret, hooks,
+                       nType = elem.nodeType;
+
+               // Don't get/set attributes on text, comment and attribute nodes
+               if ( nType === 3 || nType === 8 || nType === 2 ) {
+                       return;
+               }
+
+               // Fallback to prop when attributes are not supported
+               if ( typeof elem.getAttribute === "undefined" ) {
+                       return jQuery.prop( elem, name, value );
+               }
+
+               // Attribute hooks are determined by the lowercase version
+               // Grab necessary hook if one is defined
+               if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {
+                       hooks = jQuery.attrHooks[ name.toLowerCase() ] ||
+                               ( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );
+               }
+
+               if ( value !== undefined ) {
+                       if ( value === null ) {
+                               jQuery.removeAttr( elem, name );
+                               return;
+                       }
+
+                       if ( hooks && "set" in hooks &&
+                               ( ret = hooks.set( elem, value, name ) ) !== undefined ) {
+                               return ret;
+                       }
+
+                       elem.setAttribute( name, value + "" );
+                       return value;
+               }
+
+               if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {
+                       return ret;
+               }
+
+               ret = jQuery.find.attr( elem, name );
+
+               // Non-existent attributes return null, we normalize to undefined
+               return ret == null ? undefined : ret;
+       },
+
+       attrHooks: {
+               type: {
+                       set: function( elem, value ) {
+                               if ( !support.radioValue && value === "radio" &&
+                                       nodeName( elem, "input" ) ) {
+                                       var val = elem.value;
+                                       elem.setAttribute( "type", value );
+                                       if ( val ) {
+                                               elem.value = val;
+                                       }
+                                       return value;
+                               }
+                       }
+               }
+       },
+
+       removeAttr: function( elem, value ) {
+               var name,
+                       i = 0,
+
+                       // Attribute names can contain non-HTML whitespace characters
+                       // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2
+                       attrNames = value && value.match( rnothtmlwhite );
+
+               if ( attrNames && elem.nodeType === 1 ) {
+                       while ( ( name = attrNames[ i++ ] ) ) {
+                               elem.removeAttribute( name );
+                       }
+               }
+       }
+} );
+
+// Hooks for boolean attributes
+boolHook = {
+       set: function( elem, value, name ) {
+               if ( value === false ) {
+
+                       // Remove boolean attributes when set to false
+                       jQuery.removeAttr( elem, name );
+               } else {
+                       elem.setAttribute( name, name );
+               }
+               return name;
+       }
+};
+
+jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) {
+       var getter = attrHandle[ name ] || jQuery.find.attr;
+
+       attrHandle[ name ] = function( elem, name, isXML ) {
+               var ret, handle,
+                       lowercaseName = name.toLowerCase();
+
+               if ( !isXML ) {
+
+                       // Avoid an infinite loop by temporarily removing this function from the getter
+                       handle = attrHandle[ lowercaseName ];
+                       attrHandle[ lowercaseName ] = ret;
+                       ret = getter( elem, name, isXML ) != null ?
+                               lowercaseName :
+                               null;
+                       attrHandle[ lowercaseName ] = handle;
+               }
+               return ret;
+       };
+} );
+
+
+
+
+var rfocusable = /^(?:input|select|textarea|button)$/i,
+       rclickable = /^(?:a|area)$/i;
+
+jQuery.fn.extend( {
+       prop: function( name, value ) {
+               return access( this, jQuery.prop, name, value, arguments.length > 1 );
+       },
+
+       removeProp: function( name ) {
+               return this.each( function() {
+                       delete this[ jQuery.propFix[ name ] || name ];
+               } );
+       }
+} );
+
+jQuery.extend( {
+       prop: function( elem, name, value ) {
+               var ret, hooks,
+                       nType = elem.nodeType;
+
+               // Don't get/set properties on text, comment and attribute nodes
+               if ( nType === 3 || nType === 8 || nType === 2 ) {
+                       return;
+               }
+
+               if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {
+
+                       // Fix name and attach hooks
+                       name = jQuery.propFix[ name ] || name;
+                       hooks = jQuery.propHooks[ name ];
+               }
+
+               if ( value !== undefined ) {
+                       if ( hooks && "set" in hooks &&
+                               ( ret = hooks.set( elem, value, name ) ) !== undefined ) {
+                               return ret;
+                       }
+
+                       return ( elem[ name ] = value );
+               }
+
+               if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {
+                       return ret;
+               }
+
+               return elem[ name ];
+       },
+
+       propHooks: {
+               tabIndex: {
+                       get: function( elem ) {
+
+                               // Support: IE <=9 - 11 only
+                               // elem.tabIndex doesn't always return the
+                               // correct value when it hasn't been explicitly set
+                               // https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/
+                               // Use proper attribute retrieval(#12072)
+                               var tabindex = jQuery.find.attr( elem, "tabindex" );
+
+                               if ( tabindex ) {
+                                       return parseInt( tabindex, 10 );
+                               }
+
+                               if (
+                                       rfocusable.test( elem.nodeName ) ||
+                                       rclickable.test( elem.nodeName ) &&
+                                       elem.href
+                               ) {
+                                       return 0;
+                               }
+
+                               return -1;
+                       }
+               }
+       },
+
+       propFix: {
+               "for": "htmlFor",
+               "class": "className"
+       }
+} );
+
+// Support: IE <=11 only
+// Accessing the selectedIndex property
+// forces the browser to respect setting selected
+// on the option
+// The getter ensures a default option is selected
+// when in an optgroup
+// eslint rule "no-unused-expressions" is disabled for this code
+// since it considers such accessions noop
+if ( !support.optSelected ) {
+       jQuery.propHooks.selected = {
+               get: function( elem ) {
+
+                       /* eslint no-unused-expressions: "off" */
+
+                       var parent = elem.parentNode;
+                       if ( parent && parent.parentNode ) {
+                               parent.parentNode.selectedIndex;
+                       }
+                       return null;
+               },
+               set: function( elem ) {
+
+                       /* eslint no-unused-expressions: "off" */
+
+                       var parent = elem.parentNode;
+                       if ( parent ) {
+                               parent.selectedIndex;
+
+                               if ( parent.parentNode ) {
+                                       parent.parentNode.selectedIndex;
+                               }
+                       }
+               }
+       };
+}
+
+jQuery.each( [
+       "tabIndex",
+       "readOnly",
+       "maxLength",
+       "cellSpacing",
+       "cellPadding",
+       "rowSpan",
+       "colSpan",
+       "useMap",
+       "frameBorder",
+       "contentEditable"
+], function() {
+       jQuery.propFix[ this.toLowerCase() ] = this;
+} );
+
+
+
+
+       // Strip and collapse whitespace according to HTML spec
+       // https://html.spec.whatwg.org/multipage/infrastructure.html#strip-and-collapse-whitespace
+       function stripAndCollapse( value ) {
+               var tokens = value.match( rnothtmlwhite ) || [];
+               return tokens.join( " " );
+       }
+
+
+function getClass( elem ) {
+       return elem.getAttribute && elem.getAttribute( "class" ) || "";
+}
+
+jQuery.fn.extend( {
+       addClass: function( value ) {
+               var classes, elem, cur, curValue, clazz, j, finalValue,
+                       i = 0;
+
+               if ( jQuery.isFunction( value ) ) {
+                       return this.each( function( j ) {
+                               jQuery( this ).addClass( value.call( this, j, getClass( this ) ) );
+                       } );
+               }
+
+               if ( typeof value === "string" && value ) {
+                       classes = value.match( rnothtmlwhite ) || [];
+
+                       while ( ( elem = this[ i++ ] ) ) {
+                               curValue = getClass( elem );
+                               cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " );
+
+                               if ( cur ) {
+                                       j = 0;
+                                       while ( ( clazz = classes[ j++ ] ) ) {
+                                               if ( cur.indexOf( " " + clazz + " " ) < 0 ) {
+                                                       cur += clazz + " ";
+                                               }
+                                       }
+
+                                       // Only assign if different to avoid unneeded rendering.
+                                       finalValue = stripAndCollapse( cur );
+                                       if ( curValue !== finalValue ) {
+                                               elem.setAttribute( "class", finalValue );
+                                       }
+                               }
+                       }
+               }
+
+               return this;
+       },
+
+       removeClass: function( value ) {
+               var classes, elem, cur, curValue, clazz, j, finalValue,
+                       i = 0;
+
+               if ( jQuery.isFunction( value ) ) {
+                       return this.each( function( j ) {
+                               jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );
+                       } );
+               }
+
+               if ( !arguments.length ) {
+                       return this.attr( "class", "" );
+               }
+
+               if ( typeof value === "string" && value ) {
+                       classes = value.match( rnothtmlwhite ) || [];
+
+                       while ( ( elem = this[ i++ ] ) ) {
+                               curValue = getClass( elem );
+
+                               // This expression is here for better compressibility (see addClass)
+                               cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " );
+
+                               if ( cur ) {
+                                       j = 0;
+                                       while ( ( clazz = classes[ j++ ] ) ) {
+
+                                               // Remove *all* instances
+                                               while ( cur.indexOf( " " + clazz + " " ) > -1 ) {
+                                                       cur = cur.replace( " " + clazz + " ", " " );
+                                               }
+                                       }
+
+                                       // Only assign if different to avoid unneeded rendering.
+                                       finalValue = stripAndCollapse( cur );
+                                       if ( curValue !== finalValue ) {
+                                               elem.setAttribute( "class", finalValue );
+                                       }
+                               }
+                       }
+               }
+
+               return this;
+       },
+
+       toggleClass: function( value, stateVal ) {
+               var type = typeof value;
+
+               if ( typeof stateVal === "boolean" && type === "string" ) {
+                       return stateVal ? this.addClass( value ) : this.removeClass( value );
+               }
+
+               if ( jQuery.isFunction( value ) ) {
+                       return this.each( function( i ) {
+                               jQuery( this ).toggleClass(
+                                       value.call( this, i, getClass( this ), stateVal ),
+                                       stateVal
+                               );
+                       } );
+               }
+
+               return this.each( function() {
+                       var className, i, self, classNames;
+
+                       if ( type === "string" ) {
+
+                               // Toggle individual class names
+                               i = 0;
+                               self = jQuery( this );
+                               classNames = value.match( rnothtmlwhite ) || [];
+
+                               while ( ( className = classNames[ i++ ] ) ) {
+
+                                       // Check each className given, space separated list
+                                       if ( self.hasClass( className ) ) {
+                                               self.removeClass( className );
+                                       } else {
+                                               self.addClass( className );
+                                       }
+                               }
+
+                       // Toggle whole class name
+                       } else if ( value === undefined || type === "boolean" ) {
+                               className = getClass( this );
+                               if ( className ) {
+
+                                       // Store className if set
+                                       dataPriv.set( this, "__className__", className );
+                               }
+
+                               // If the element has a class name or if we're passed `false`,
+                               // then remove the whole classname (if there was one, the above saved it).
+                               // Otherwise bring back whatever was previously saved (if anything),
+                               // falling back to the empty string if nothing was stored.
+                               if ( this.setAttribute ) {
+                                       this.setAttribute( "class",
+                                               className || value === false ?
+                                               "" :
+                                               dataPriv.get( this, "__className__" ) || ""
+                                       );
+                               }
+                       }
+               } );
+       },
+
+       hasClass: function( selector ) {
+               var className, elem,
+                       i = 0;
+
+               className = " " + selector + " ";
+               while ( ( elem = this[ i++ ] ) ) {
+                       if ( elem.nodeType === 1 &&
+                               ( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) {
+                                       return true;
+                       }
+               }
+
+               return false;
+       }
+} );
+
+
+
+
+var rreturn = /\r/g;
+
+jQuery.fn.extend( {
+       val: function( value ) {
+               var hooks, ret, isFunction,
+                       elem = this[ 0 ];
+
+               if ( !arguments.length ) {
+                       if ( elem ) {
+                               hooks = jQuery.valHooks[ elem.type ] ||
+                                       jQuery.valHooks[ elem.nodeName.toLowerCase() ];
+
+                               if ( hooks &&
+                                       "get" in hooks &&
+                                       ( ret = hooks.get( elem, "value" ) ) !== undefined
+                               ) {
+                                       return ret;
+                               }
+
+                               ret = elem.value;
+
+                               // Handle most common string cases
+                               if ( typeof ret === "string" ) {
+                                       return ret.replace( rreturn, "" );
+                               }
+
+                               // Handle cases where value is null/undef or number
+                               return ret == null ? "" : ret;
+                       }
+
+                       return;
+               }
+
+               isFunction = jQuery.isFunction( value );
+
+               return this.each( function( i ) {
+                       var val;
+
+                       if ( this.nodeType !== 1 ) {
+                               return;
+                       }
+
+                       if ( isFunction ) {
+                               val = value.call( this, i, jQuery( this ).val() );
+                       } else {
+                               val = value;
+                       }
+
+                       // Treat null/undefined as ""; convert numbers to string
+                       if ( val == null ) {
+                               val = "";
+
+                       } else if ( typeof val === "number" ) {
+                               val += "";
+
+                       } else if ( Array.isArray( val ) ) {
+                               val = jQuery.map( val, function( value ) {
+                                       return value == null ? "" : value + "";
+                               } );
+                       }
+
+                       hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];
+
+                       // If set returns undefined, fall back to normal setting
+                       if ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) {
+                               this.value = val;
+                       }
+               } );
+       }
+} );
+
+jQuery.extend( {
+       valHooks: {
+               option: {
+                       get: function( elem ) {
+
+                               var val = jQuery.find.attr( elem, "value" );
+                               return val != null ?
+                                       val :
+
+                                       // Support: IE <=10 - 11 only
+                                       // option.text throws exceptions (#14686, #14858)
+                                       // Strip and collapse whitespace
+                                       // https://html.spec.whatwg.org/#strip-and-collapse-whitespace
+                                       stripAndCollapse( jQuery.text( elem ) );
+                       }
+               },
+               select: {
+                       get: function( elem ) {
+                               var value, option, i,
+                                       options = elem.options,
+                                       index = elem.selectedIndex,
+                                       one = elem.type === "select-one",
+                                       values = one ? null : [],
+                                       max = one ? index + 1 : options.length;
+
+                               if ( index < 0 ) {
+                                       i = max;
+
+                               } else {
+                                       i = one ? index : 0;
+                               }
+
+                               // Loop through all the selected options
+                               for ( ; i < max; i++ ) {
+                                       option = options[ i ];
+
+                                       // Support: IE <=9 only
+                                       // IE8-9 doesn't update selected after form reset (#2551)
+                                       if ( ( option.selected || i === index ) &&
+
+                                                       // Don't return options that are disabled or in a disabled optgroup
+                                                       !option.disabled &&
+                                                       ( !option.parentNode.disabled ||
+                                                               !nodeName( option.parentNode, "optgroup" ) ) ) {
+
+                                               // Get the specific value for the option
+                                               value = jQuery( option ).val();
+
+                                               // We don't need an array for one selects
+                                               if ( one ) {
+                                                       return value;
+                                               }
+
+                                               // Multi-Selects return an array
+                                               values.push( value );
+                                       }
+                               }
+
+                               return values;
+                       },
+
+                       set: function( elem, value ) {
+                               var optionSet, option,
+                                       options = elem.options,
+                                       values = jQuery.makeArray( value ),
+                                       i = options.length;
+
+                               while ( i-- ) {
+                                       option = options[ i ];
+
+                                       /* eslint-disable no-cond-assign */
+
+                                       if ( option.selected =
+                                               jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1
+                                       ) {
+                                               optionSet = true;
+                                       }
+
+                                       /* eslint-enable no-cond-assign */
+                               }
+
+                               // Force browsers to behave consistently when non-matching value is set
+                               if ( !optionSet ) {
+                                       elem.selectedIndex = -1;
+                               }
+                               return values;
+                       }
+               }
+       }
+} );
+
+// Radios and checkboxes getter/setter
+jQuery.each( [ "radio", "checkbox" ], function() {
+       jQuery.valHooks[ this ] = {
+               set: function( elem, value ) {
+                       if ( Array.isArray( value ) ) {
+                               return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );
+                       }
+               }
+       };
+       if ( !support.checkOn ) {
+               jQuery.valHooks[ this ].get = function( elem ) {
+                       return elem.getAttribute( "value" ) === null ? "on" : elem.value;
+               };
+       }
+} );
+
+
+
+
+// Return jQuery for attributes-only inclusion
+
+
+var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/;
+
+jQuery.extend( jQuery.event, {
+
+       trigger: function( event, data, elem, onlyHandlers ) {
+
+               var i, cur, tmp, bubbleType, ontype, handle, special,
+                       eventPath = [ elem || document ],
+                       type = hasOwn.call( event, "type" ) ? event.type : event,
+                       namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : [];
+
+               cur = tmp = elem = elem || document;
+
+               // Don't do events on text and comment nodes
+               if ( elem.nodeType === 3 || elem.nodeType === 8 ) {
+                       return;
+               }
+
+               // focus/blur morphs to focusin/out; ensure we're not firing them right now
+               if ( rfocusMorph.test( type + jQuery.event.triggered ) ) {
+                       return;
+               }
+
+               if ( type.indexOf( "." ) > -1 ) {
+
+                       // Namespaced trigger; create a regexp to match event type in handle()
+                       namespaces = type.split( "." );
+                       type = namespaces.shift();
+                       namespaces.sort();
+               }
+               ontype = type.indexOf( ":" ) < 0 && "on" + type;
+
+               // Caller can pass in a jQuery.Event object, Object, or just an event type string
+               event = event[ jQuery.expando ] ?
+                       event :
+                       new jQuery.Event( type, typeof event === "object" && event );
+
+               // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)
+               event.isTrigger = onlyHandlers ? 2 : 3;
+               event.namespace = namespaces.join( "." );
+               event.rnamespace = event.namespace ?
+                       new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) :
+                       null;
+
+               // Clean up the event in case it is being reused
+               event.result = undefined;
+               if ( !event.target ) {
+                       event.target = elem;
+               }
+
+               // Clone any incoming data and prepend the event, creating the handler arg list
+               data = data == null ?
+                       [ event ] :
+                       jQuery.makeArray( data, [ event ] );
+
+               // Allow special events to draw outside the lines
+               special = jQuery.event.special[ type ] || {};
+               if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {
+                       return;
+               }
+
+               // Determine event propagation path in advance, per W3C events spec (#9951)
+               // Bubble up to document, then to window; watch for a global ownerDocument var (#9724)
+               if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) {
+
+                       bubbleType = special.delegateType || type;
+                       if ( !rfocusMorph.test( bubbleType + type ) ) {
+                               cur = cur.parentNode;
+                       }
+                       for ( ; cur; cur = cur.parentNode ) {
+                               eventPath.push( cur );
+                               tmp = cur;
+                       }
+
+                       // Only add window if we got to document (e.g., not plain obj or detached DOM)
+                       if ( tmp === ( elem.ownerDocument || document ) ) {
+                               eventPath.push( tmp.defaultView || tmp.parentWindow || window );
+                       }
+               }
+
+               // Fire handlers on the event path
+               i = 0;
+               while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {
+
+                       event.type = i > 1 ?
+                               bubbleType :
+                               special.bindType || type;
+
+                       // jQuery handler
+                       handle = ( dataPriv.get( cur, "events" ) || {} )[ event.type ] &&
+                               dataPriv.get( cur, "handle" );
+                       if ( handle ) {
+                               handle.apply( cur, data );
+                       }
+
+                       // Native handler
+                       handle = ontype && cur[ ontype ];
+                       if ( handle && handle.apply && acceptData( cur ) ) {
+                               event.result = handle.apply( cur, data );
+                               if ( event.result === false ) {
+                                       event.preventDefault();
+                               }
+                       }
+               }
+               event.type = type;
+
+               // If nobody prevented the default action, do it now
+               if ( !onlyHandlers && !event.isDefaultPrevented() ) {
+
+                       if ( ( !special._default ||
+                               special._default.apply( eventPath.pop(), data ) === false ) &&
+                               acceptData( elem ) ) {
+
+                               // Call a native DOM method on the target with the same name as the event.
+                               // Don't do default actions on window, that's where global variables be (#6170)
+                               if ( ontype && jQuery.isFunction( elem[ type ] ) && !jQuery.isWindow( elem ) ) {
+
+                                       // Don't re-trigger an onFOO event when we call its FOO() method
+                                       tmp = elem[ ontype ];
+
+                                       if ( tmp ) {
+                                               elem[ ontype ] = null;
+                                       }
+
+                                       // Prevent re-triggering of the same event, since we already bubbled it above
+                                       jQuery.event.triggered = type;
+                                       elem[ type ]();
+                                       jQuery.event.triggered = undefined;
+
+                                       if ( tmp ) {
+                                               elem[ ontype ] = tmp;
+                                       }
+                               }
+                       }
+               }
+
+               return event.result;
+       },
+
+       // Piggyback on a donor event to simulate a different one
+       // Used only for `focus(in | out)` events
+       simulate: function( type, elem, event ) {
+               var e = jQuery.extend(
+                       new jQuery.Event(),
+                       event,
+                       {
+                               type: type,
+                               isSimulated: true
+                       }
+               );
+
+               jQuery.event.trigger( e, null, elem );
+       }
+
+} );
+
+jQuery.fn.extend( {
+
+       trigger: function( type, data ) {
+               return this.each( function() {
+                       jQuery.event.trigger( type, data, this );
+               } );
+       },
+       triggerHandler: function( type, data ) {
+               var elem = this[ 0 ];
+               if ( elem ) {
+                       return jQuery.event.trigger( type, data, elem, true );
+               }
+       }
+} );
+
+
+jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " +
+       "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
+       "change select submit keydown keypress keyup contextmenu" ).split( " " ),
+       function( i, name ) {
+
+       // Handle event binding
+       jQuery.fn[ name ] = function( data, fn ) {
+               return arguments.length > 0 ?
+                       this.on( name, null, data, fn ) :
+                       this.trigger( name );
+       };
+} );
+
+jQuery.fn.extend( {
+       hover: function( fnOver, fnOut ) {
+               return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
+       }
+} );
+
+
+
+
+support.focusin = "onfocusin" in window;
+
+
+// Support: Firefox <=44
+// Firefox doesn't have focus(in | out) events
+// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787
+//
+// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1
+// focus(in | out) events fire after focus & blur events,
+// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order
+// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857
+if ( !support.focusin ) {
+       jQuery.each( { focus: "focusin", blur: "focusout" }, function( orig, fix ) {
+
+               // Attach a single capturing handler on the document while someone wants focusin/focusout
+               var handler = function( event ) {
+                       jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );
+               };
+
+               jQuery.event.special[ fix ] = {
+                       setup: function() {
+                               var doc = this.ownerDocument || this,
+                                       attaches = dataPriv.access( doc, fix );
+
+                               if ( !attaches ) {
+                                       doc.addEventListener( orig, handler, true );
+                               }
+                               dataPriv.access( doc, fix, ( attaches || 0 ) + 1 );
+                       },
+                       teardown: function() {
+                               var doc = this.ownerDocument || this,
+                                       attaches = dataPriv.access( doc, fix ) - 1;
+
+                               if ( !attaches ) {
+                                       doc.removeEventListener( orig, handler, true );
+                                       dataPriv.remove( doc, fix );
+
+                               } else {
+                                       dataPriv.access( doc, fix, attaches );
+                               }
+                       }
+               };
+       } );
+}
+
+
+var
+       rbracket = /\[\]$/,
+       rCRLF = /\r?\n/g,
+       rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,
+       rsubmittable = /^(?:input|select|textarea|keygen)/i;
+
+function buildParams( prefix, obj, traditional, add ) {
+       var name;
+
+       if ( Array.isArray( obj ) ) {
+
+               // Serialize array item.
+               jQuery.each( obj, function( i, v ) {
+                       if ( traditional || rbracket.test( prefix ) ) {
+
+                               // Treat each array item as a scalar.
+                               add( prefix, v );
+
+                       } else {
+
+                               // Item is non-scalar (array or object), encode its numeric index.
+                               buildParams(
+                                       prefix + "[" + ( typeof v === "object" && v != null ? i : "" ) + "]",
+                                       v,
+                                       traditional,
+                                       add
+                               );
+                       }
+               } );
+
+       } else if ( !traditional && jQuery.type( obj ) === "object" ) {
+
+               // Serialize object item.
+               for ( name in obj ) {
+                       buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add );
+               }
+
+       } else {
+
+               // Serialize scalar item.
+               add( prefix, obj );
+       }
+}
+
+// Serialize an array of form elements or a set of
+// key/values into a query string
+jQuery.param = function( a, traditional ) {
+       var prefix,
+               s = [],
+               add = function( key, valueOrFunction ) {
+
+                       // If value is a function, invoke it and use its return value
+                       var value = jQuery.isFunction( valueOrFunction ) ?
+                               valueOrFunction() :
+                               valueOrFunction;
+
+                       s[ s.length ] = encodeURIComponent( key ) + "=" +
+                               encodeURIComponent( value == null ? "" : value );
+               };
+
+       // If an array was passed in, assume that it is an array of form elements.
+       if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {
+
+               // Serialize the form elements
+               jQuery.each( a, function() {
+                       add( this.name, this.value );
+               } );
+
+       } else {
+
+               // If traditional, encode the "old" way (the way 1.3.2 or older
+               // did it), otherwise encode params recursively.
+               for ( prefix in a ) {
+                       buildParams( prefix, a[ prefix ], traditional, add );
+               }
+       }
+
+       // Return the resulting serialization
+       return s.join( "&" );
+};
+
+jQuery.fn.extend( {
+       serialize: function() {
+               return jQuery.param( this.serializeArray() );
+       },
+       serializeArray: function() {
+               return this.map( function() {
+
+                       // Can add propHook for "elements" to filter or add form elements
+                       var elements = jQuery.prop( this, "elements" );
+                       return elements ? jQuery.makeArray( elements ) : this;
+               } )
+               .filter( function() {
+                       var type = this.type;
+
+                       // Use .is( ":disabled" ) so that fieldset[disabled] works
+                       return this.name && !jQuery( this ).is( ":disabled" ) &&
+                               rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&
+                               ( this.checked || !rcheckableType.test( type ) );
+               } )
+               .map( function( i, elem ) {
+                       var val = jQuery( this ).val();
+
+                       if ( val == null ) {
+                               return null;
+                       }
+
+                       if ( Array.isArray( val ) ) {
+                               return jQuery.map( val, function( val ) {
+                                       return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
+                               } );
+                       }
+
+                       return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
+               } ).get();
+       }
+} );
+
+
+jQuery.fn.extend( {
+       wrapAll: function( html ) {
+               var wrap;
+
+               if ( this[ 0 ] ) {
+                       if ( jQuery.isFunction( html ) ) {
+                               html = html.call( this[ 0 ] );
+                       }
+
+                       // The elements to wrap the target around
+                       wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );
+
+                       if ( this[ 0 ].parentNode ) {
+                               wrap.insertBefore( this[ 0 ] );
+                       }
+
+                       wrap.map( function() {
+                               var elem = this;
+
+                               while ( elem.firstElementChild ) {
+                                       elem = elem.firstElementChild;
+                               }
+
+                               return elem;
+                       } ).append( this );
+               }
+
+               return this;
+       },
+
+       wrapInner: function( html ) {
+               if ( jQuery.isFunction( html ) ) {
+                       return this.each( function( i ) {
+                               jQuery( this ).wrapInner( html.call( this, i ) );
+                       } );
+               }
+
+               return this.each( function() {
+                       var self = jQuery( this ),
+                               contents = self.contents();
+
+                       if ( contents.length ) {
+                               contents.wrapAll( html );
+
+                       } else {
+                               self.append( html );
+                       }
+               } );
+       },
+
+       wrap: function( html ) {
+               var isFunction = jQuery.isFunction( html );
+
+               return this.each( function( i ) {
+                       jQuery( this ).wrapAll( isFunction ? html.call( this, i ) : html );
+               } );
+       },
+
+       unwrap: function( selector ) {
+               this.parent( selector ).not( "body" ).each( function() {
+                       jQuery( this ).replaceWith( this.childNodes );
+               } );
+               return this;
+       }
+} );
+
+
+jQuery.expr.pseudos.hidden = function( elem ) {
+       return !jQuery.expr.pseudos.visible( elem );
+};
+jQuery.expr.pseudos.visible = function( elem ) {
+       return !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );
+};
+
+
+
+
+// Support: Safari 8 only
+// In Safari 8 documents created via document.implementation.createHTMLDocument
+// collapse sibling forms: the second one becomes a child of the first one.
+// Because of that, this security measure has to be disabled in Safari 8.
+// https://bugs.webkit.org/show_bug.cgi?id=137337
+support.createHTMLDocument = ( function() {
+       var body = document.implementation.createHTMLDocument( "" ).body;
+       body.innerHTML = "<form></form><form></form>";
+       return body.childNodes.length === 2;
+} )();
+
+
+// Argument "data" should be string of html
+// context (optional): If specified, the fragment will be created in this context,
+// defaults to document
+// keepScripts (optional): If true, will include scripts passed in the html string
+jQuery.parseHTML = function( data, context, keepScripts ) {
+       if ( typeof data !== "string" ) {
+               return [];
+       }
+       if ( typeof context === "boolean" ) {
+               keepScripts = context;
+               context = false;
+       }
+
+       var base, parsed, scripts;
+
+       if ( !context ) {
+
+               // Stop scripts or inline event handlers from being executed immediately
+               // by using document.implementation
+               if ( support.createHTMLDocument ) {
+                       context = document.implementation.createHTMLDocument( "" );
+
+                       // Set the base href for the created document
+                       // so any parsed elements with URLs
+                       // are based on the document's URL (gh-2965)
+                       base = context.createElement( "base" );
+                       base.href = document.location.href;
+                       context.head.appendChild( base );
+               } else {
+                       context = document;
+               }
+       }
+
+       parsed = rsingleTag.exec( data );
+       scripts = !keepScripts && [];
+
+       // Single tag
+       if ( parsed ) {
+               return [ context.createElement( parsed[ 1 ] ) ];
+       }
+
+       parsed = buildFragment( [ data ], context, scripts );
+
+       if ( scripts && scripts.length ) {
+               jQuery( scripts ).remove();
+       }
+
+       return jQuery.merge( [], parsed.childNodes );
+};
+
+
+jQuery.offset = {
+       setOffset: function( elem, options, i ) {
+               var curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition,
+                       position = jQuery.css( elem, "position" ),
+                       curElem = jQuery( elem ),
+                       props = {};
+
+               // Set position first, in-case top/left are set even on static elem
+               if ( position === "static" ) {
+                       elem.style.position = "relative";
+               }
+
+               curOffset = curElem.offset();
+               curCSSTop = jQuery.css( elem, "top" );
+               curCSSLeft = jQuery.css( elem, "left" );
+               calculatePosition = ( position === "absolute" || position === "fixed" ) &&
+                       ( curCSSTop + curCSSLeft ).indexOf( "auto" ) > -1;
+
+               // Need to be able to calculate position if either
+               // top or left is auto and position is either absolute or fixed
+               if ( calculatePosition ) {
+                       curPosition = curElem.position();
+                       curTop = curPosition.top;
+                       curLeft = curPosition.left;
+
+               } else {
+                       curTop = parseFloat( curCSSTop ) || 0;
+                       curLeft = parseFloat( curCSSLeft ) || 0;
+               }
+
+               if ( jQuery.isFunction( options ) ) {
+
+                       // Use jQuery.extend here to allow modification of coordinates argument (gh-1848)
+                       options = options.call( elem, i, jQuery.extend( {}, curOffset ) );
+               }
+
+               if ( options.top != null ) {
+                       props.top = ( options.top - curOffset.top ) + curTop;
+               }
+               if ( options.left != null ) {
+                       props.left = ( options.left - curOffset.left ) + curLeft;
+               }
+
+               if ( "using" in options ) {
+                       options.using.call( elem, props );
+
+               } else {
+                       curElem.css( props );
+               }
+       }
+};
+
+jQuery.fn.extend( {
+       offset: function( options ) {
+
+               // Preserve chaining for setter
+               if ( arguments.length ) {
+                       return options === undefined ?
+                               this :
+                               this.each( function( i ) {
+                                       jQuery.offset.setOffset( this, options, i );
+                               } );
+               }
+
+               var doc, docElem, rect, win,
+                       elem = this[ 0 ];
+
+               if ( !elem ) {
+                       return;
+               }
+
+               // Return zeros for disconnected and hidden (display: none) elements (gh-2310)
+               // Support: IE <=11 only
+               // Running getBoundingClientRect on a
+               // disconnected node in IE throws an error
+               if ( !elem.getClientRects().length ) {
+                       return { top: 0, left: 0 };
+               }
+
+               rect = elem.getBoundingClientRect();
+
+               doc = elem.ownerDocument;
+               docElem = doc.documentElement;
+               win = doc.defaultView;
+
+               return {
+                       top: rect.top + win.pageYOffset - docElem.clientTop,
+                       left: rect.left + win.pageXOffset - docElem.clientLeft
+               };
+       },
+
+       position: function() {
+               if ( !this[ 0 ] ) {
+                       return;
+               }
+
+               var offsetParent, offset,
+                       elem = this[ 0 ],
+                       parentOffset = { top: 0, left: 0 };
+
+               // Fixed elements are offset from window (parentOffset = {top:0, left: 0},
+               // because it is its only offset parent
+               if ( jQuery.css( elem, "position" ) === "fixed" ) {
+
+                       // Assume getBoundingClientRect is there when computed position is fixed
+                       offset = elem.getBoundingClientRect();
+
+               } else {
+
+                       // Get *real* offsetParent
+                       offsetParent = this.offsetParent();
+
+                       // Get correct offsets
+                       offset = this.offset();
+                       if ( !nodeName( offsetParent[ 0 ], "html" ) ) {
+                               parentOffset = offsetParent.offset();
+                       }
+
+                       // Add offsetParent borders
+                       parentOffset = {
+                               top: parentOffset.top + jQuery.css( offsetParent[ 0 ], "borderTopWidth", true ),
+                               left: parentOffset.left + jQuery.css( offsetParent[ 0 ], "borderLeftWidth", true )
+                       };
+               }
+
+               // Subtract parent offsets and element margins
+               return {
+                       top: offset.top - parentOffset.top - jQuery.css( elem, "marginTop", true ),
+                       left: offset.left - parentOffset.left - jQuery.css( elem, "marginLeft", true )
+               };
+       },
+
+       // This method will return documentElement in the following cases:
+       // 1) For the element inside the iframe without offsetParent, this method will return
+       //    documentElement of the parent window
+       // 2) For the hidden or detached element
+       // 3) For body or html element, i.e. in case of the html node - it will return itself
+       //
+       // but those exceptions were never presented as a real life use-cases
+       // and might be considered as more preferable results.
+       //
+       // This logic, however, is not guaranteed and can change at any point in the future
+       offsetParent: function() {
+               return this.map( function() {
+                       var offsetParent = this.offsetParent;
+
+                       while ( offsetParent && jQuery.css( offsetParent, "position" ) === "static" ) {
+                               offsetParent = offsetParent.offsetParent;
+                       }
+
+                       return offsetParent || documentElement;
+               } );
+       }
+} );
+
+// Create scrollLeft and scrollTop methods
+jQuery.each( { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function( method, prop ) {
+       var top = "pageYOffset" === prop;
+
+       jQuery.fn[ method ] = function( val ) {
+               return access( this, function( elem, method, val ) {
+
+                       // Coalesce documents and windows
+                       var win;
+                       if ( jQuery.isWindow( elem ) ) {
+                               win = elem;
+                       } else if ( elem.nodeType === 9 ) {
+                               win = elem.defaultView;
+                       }
+
+                       if ( val === undefined ) {
+                               return win ? win[ prop ] : elem[ method ];
+                       }
+
+                       if ( win ) {
+                               win.scrollTo(
+                                       !top ? val : win.pageXOffset,
+                                       top ? val : win.pageYOffset
+                               );
+
+                       } else {
+                               elem[ method ] = val;
+                       }
+               }, method, val, arguments.length );
+       };
+} );
+
+// Support: Safari <=7 - 9.1, Chrome <=37 - 49
+// Add the top/left cssHooks using jQuery.fn.position
+// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084
+// Blink bug: https://bugs.chromium.org/p/chromium/issues/detail?id=589347
+// getComputedStyle returns percent when specified for top/left/bottom/right;
+// rather than make the css module depend on the offset module, just check for it here
+jQuery.each( [ "top", "left" ], function( i, prop ) {
+       jQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,
+               function( elem, computed ) {
+                       if ( computed ) {
+                               computed = curCSS( elem, prop );
+
+                               // If curCSS returns percentage, fallback to offset
+                               return rnumnonpx.test( computed ) ?
+                                       jQuery( elem ).position()[ prop ] + "px" :
+                                       computed;
+                       }
+               }
+       );
+} );
+
+
+// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods
+jQuery.each( { Height: "height", Width: "width" }, function( name, type ) {
+       jQuery.each( { padding: "inner" + name, content: type, "": "outer" + name },
+               function( defaultExtra, funcName ) {
+
+               // Margin is only for outerHeight, outerWidth
+               jQuery.fn[ funcName ] = function( margin, value ) {
+                       var chainable = arguments.length && ( defaultExtra || typeof margin !== "boolean" ),
+                               extra = defaultExtra || ( margin === true || value === true ? "margin" : "border" );
+
+                       return access( this, function( elem, type, value ) {
+                               var doc;
+
+                               if ( jQuery.isWindow( elem ) ) {
+
+                                       // $( window ).outerWidth/Height return w/h including scrollbars (gh-1729)
+                                       return funcName.indexOf( "outer" ) === 0 ?
+                                               elem[ "inner" + name ] :
+                                               elem.document.documentElement[ "client" + name ];
+                               }
+
+                               // Get document width or height
+                               if ( elem.nodeType === 9 ) {
+                                       doc = elem.documentElement;
+
+                                       // Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height],
+                                       // whichever is greatest
+                                       return Math.max(
+                                               elem.body[ "scroll" + name ], doc[ "scroll" + name ],
+                                               elem.body[ "offset" + name ], doc[ "offset" + name ],
+                                               doc[ "client" + name ]
+                                       );
+                               }
+
+                               return value === undefined ?
+
+                                       // Get width or height on the element, requesting but not forcing parseFloat
+                                       jQuery.css( elem, type, extra ) :
+
+                                       // Set width or height on the element
+                                       jQuery.style( elem, type, value, extra );
+                       }, type, chainable ? margin : undefined, chainable );
+               };
+       } );
+} );
+
+
+jQuery.fn.extend( {
+
+       bind: function( types, data, fn ) {
+               return this.on( types, null, data, fn );
+       },
+       unbind: function( types, fn ) {
+               return this.off( types, null, fn );
+       },
+
+       delegate: function( selector, types, data, fn ) {
+               return this.on( types, selector, data, fn );
+       },
+       undelegate: function( selector, types, fn ) {
+
+               // ( namespace ) or ( selector, types [, fn] )
+               return arguments.length === 1 ?
+                       this.off( selector, "**" ) :
+                       this.off( types, selector || "**", fn );
+       }
+} );
+
+jQuery.holdReady = function( hold ) {
+       if ( hold ) {
+               jQuery.readyWait++;
+       } else {
+               jQuery.ready( true );
+       }
+};
+jQuery.isArray = Array.isArray;
+jQuery.parseJSON = JSON.parse;
+jQuery.nodeName = nodeName;
+
+
+
+
+// Register as a named AMD module, since jQuery can be concatenated with other
+// files that may use define, but not via a proper concatenation script that
+// understands anonymous AMD modules. A named AMD is safest and most robust
+// way to register. Lowercase jquery is used because AMD module names are
+// derived from file names, and jQuery is normally delivered in a lowercase
+// file name. Do this after creating the global so that if an AMD module wants
+// to call noConflict to hide this version of jQuery, it will work.
+
+// Note that for maximum portability, libraries that are not jQuery should
+// declare themselves as anonymous modules, and avoid setting a global if an
+// AMD loader is present. jQuery is a special case. For more information, see
+// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon
+
+if ( typeof define === "function" && define.amd ) {
+       define( "jquery", [], function() {
+               return jQuery;
+       } );
+}
+
+
+
+
+var
+
+       // Map over jQuery in case of overwrite
+       _jQuery = window.jQuery,
+
+       // Map over the $ in case of overwrite
+       _$ = window.$;
+
+jQuery.noConflict = function( deep ) {
+       if ( window.$ === jQuery ) {
+               window.$ = _$;
+       }
+
+       if ( deep && window.jQuery === jQuery ) {
+               window.jQuery = _jQuery;
+       }
+
+       return jQuery;
+};
+
+// Expose jQuery and $ identifiers, even in AMD
+// (#7102#comment:10, https://github.com/jquery/jquery/pull/557)
+// and CommonJS for browser emulators (#13566)
+if ( !noGlobal ) {
+       window.jQuery = window.$ = jQuery;
+}
+
+
+
+
+return jQuery;
+} );
diff --git a/js/jquery/dist/jquery.slim.min.js b/js/jquery/dist/jquery.slim.min.js
new file mode 100644 (file)
index 0000000..105d00e
--- /dev/null
@@ -0,0 +1,4 @@
+/*! jQuery v3.2.1 -ajax,-ajax/jsonp,-ajax/load,-ajax/parseXML,-ajax/script,-ajax/var/location,-ajax/var/nonce,-ajax/var/rquery,-ajax/xhr,-manipulation/_evalUrl,-event/ajax,-effects,-effects/Tween,-effects/animatedSelector | (c) JS Foundation and other contributors | jquery.org/license */
+!function(a,b){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){"use strict";var c=[],d=a.document,e=Object.getPrototypeOf,f=c.slice,g=c.concat,h=c.push,i=c.indexOf,j={},k=j.toString,l=j.hasOwnProperty,m=l.toString,n=m.call(Object),o={};function p(a,b){b=b||d;var c=b.createElement("script");c.text=a,b.head.appendChild(c).parentNode.removeChild(c)}var q="3.2.1 -ajax,-ajax/jsonp,-ajax/load,-ajax/parseXML,-ajax/script,-ajax/var/location,-ajax/var/nonce,-ajax/var/rquery,-ajax/xhr,-manipulation/_evalUrl,-event/ajax,-effects,-effects/Tween,-effects/animatedSelector",r=function(a,b){return new r.fn.init(a,b)},s=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,t=/^-ms-/,u=/-([a-z])/g,v=function(a,b){return b.toUpperCase()};r.fn=r.prototype={jquery:q,constructor:r,length:0,toArray:function(){return f.call(this)},get:function(a){return null==a?f.call(this):a<0?this[a+this.length]:this[a]},pushStack:function(a){var b=r.merge(this.constructor(),a);return b.prevObject=this,b},each:function(a){return r.each(this,a)},map:function(a){return this.pushStack(r.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(f.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(a<0?b:0);return this.pushStack(c>=0&&c<b?[this[c]]:[])},end:function(){return this.prevObject||this.constructor()},push:h,sort:c.sort,splice:c.splice},r.extend=r.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||r.isFunction(g)||(g={}),h===i&&(g=this,h--);h<i;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(r.isPlainObject(d)||(e=Array.isArray(d)))?(e?(e=!1,f=c&&Array.isArray(c)?c:[]):f=c&&r.isPlainObject(c)?c:{},g[b]=r.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},r.extend({expando:"jQuery"+(q+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===r.type(a)},isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){var b=r.type(a);return("number"===b||"string"===b)&&!isNaN(a-parseFloat(a))},isPlainObject:function(a){var b,c;return!(!a||"[object Object]"!==k.call(a))&&(!(b=e(a))||(c=l.call(b,"constructor")&&b.constructor,"function"==typeof c&&m.call(c)===n))},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?j[k.call(a)]||"object":typeof a},globalEval:function(a){p(a)},camelCase:function(a){return a.replace(t,"ms-").replace(u,v)},each:function(a,b){var c,d=0;if(w(a)){for(c=a.length;d<c;d++)if(b.call(a[d],d,a[d])===!1)break}else for(d in a)if(b.call(a[d],d,a[d])===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(s,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(w(Object(a))?r.merge(c,"string"==typeof a?[a]:a):h.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:i.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;d<c;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;f<g;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,e,f=0,h=[];if(w(a))for(d=a.length;f<d;f++)e=b(a[f],f,c),null!=e&&h.push(e);else for(f in a)e=b(a[f],f,c),null!=e&&h.push(e);return g.apply([],h)},guid:1,proxy:function(a,b){var c,d,e;if("string"==typeof b&&(c=a[b],b=a,a=c),r.isFunction(a))return d=f.call(arguments,2),e=function(){return a.apply(b||this,d.concat(f.call(arguments)))},e.guid=a.guid=a.guid||r.guid++,e},now:Date.now,support:o}),"function"==typeof Symbol&&(r.fn[Symbol.iterator]=c[Symbol.iterator]),r.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(a,b){j["[object "+b+"]"]=b.toLowerCase()});function w(a){var b=!!a&&"length"in a&&a.length,c=r.type(a);return"function"!==c&&!r.isWindow(a)&&("array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a)}var x=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=function(a,b){for(var c=0,d=a.length;c<d;c++)if(a[c]===b)return c;return-1},J="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",K="[\\x20\\t\\r\\n\\f]",L="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",M="\\["+K+"*("+L+")(?:"+K+"*([*^$|!~]?=)"+K+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+L+"))|)"+K+"*\\]",N=":("+L+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+M+")*)|.*)\\)|)",O=new RegExp(K+"+","g"),P=new RegExp("^"+K+"+|((?:^|[^\\\\])(?:\\\\.)*)"+K+"+$","g"),Q=new RegExp("^"+K+"*,"+K+"*"),R=new RegExp("^"+K+"*([>+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(N),U=new RegExp("^"+L+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L+"|[*])"),ATTR:new RegExp("^"+M),PSEUDO:new RegExp("^"+N),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),aa=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:d<0?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ba=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ca=function(a,b){return b?"\0"===a?"\ufffd":a.slice(0,-1)+"\\"+a.charCodeAt(a.length-1).toString(16)+" ":"\\"+a},da=function(){m()},ea=ta(function(a){return a.disabled===!0&&("form"in a||"label"in a)},{dir:"parentNode",next:"legend"});try{G.apply(D=H.call(v.childNodes),v.childNodes),D[v.childNodes.length].nodeType}catch(fa){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s=b&&b.ownerDocument,w=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==w&&9!==w&&11!==w)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==w&&(l=Z.exec(a)))if(f=l[1]){if(9===w){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(s&&(j=s.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(l[2])return G.apply(d,b.getElementsByTagName(a)),d;if((f=l[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==w)s=b,r=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(ba,ca):b.setAttribute("id",k=u),o=g(a),h=o.length;while(h--)o[h]="#"+k+" "+sa(o[h]);r=o.join(","),s=$.test(a)&&qa(b.parentNode)||b}if(r)try{return G.apply(d,s.querySelectorAll(r)),d}catch(x){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(P,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("fieldset");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&a.sourceIndex-b.sourceIndex;if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return function(b){return"form"in b?b.parentNode&&b.disabled===!1?"label"in b?"label"in b.parentNode?b.parentNode.disabled===a:b.disabled===a:b.isDisabled===a||b.isDisabled!==!a&&ea(b)===a:b.disabled===a:"label"in b&&b.disabled===a}}function pa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function qa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return!!b&&"HTML"!==b.nodeName},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),v!==n&&(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(n.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){return a.getAttribute("id")===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}}):(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c,d,e,f=b.getElementById(a);if(f){if(c=f.getAttributeNode("id"),c&&c.value===a)return[f];e=b.getElementsByName(a),d=0;while(f=e[d++])if(c=f.getAttributeNode("id"),c&&c.value===a)return[f]}return[]}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){if("undefined"!=typeof b.getElementsByClassName&&p)return b.getElementsByClassName(a)},r=[],q=[],(c.qsa=Y.test(n.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="<a id='"+u+"'></a><select id='"+u+"-\r\\' msallowcapture=''><option selected=''></option></select>",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){a.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+K+"*[*^$|!~]?="),2!==a.querySelectorAll(":enabled").length&&q.push(":enabled",":disabled"),o.appendChild(a).disabled=!0,2!==a.querySelectorAll(":disabled").length&&q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Y.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"*"),s.call(a,"[s!='']:x"),r.push("!=",N)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Y.test(o.compareDocumentPosition),t=b||Y.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?I(k,a)-I(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?I(k,a)-I(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?la(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(S,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.escape=function(a){return(a+"").replace(ba,ca)},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(_,aa),a[3]=(a[3]||a[4]||a[5]||"").replace(_,aa),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return V.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&T.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(_,aa).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+K+")"+a+"("+K+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:!b||(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(O," ")+" ").indexOf(c)>-1:"|="===b&&(e===c||e.slice(0,c.length+1)===c+"-"))}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(P,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(_,aa),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return U.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(_,aa).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:oa(!1),disabled:oa(!0),checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return X.test(a.nodeName)},input:function(a){return W.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:pa(function(){return[0]}),last:pa(function(a,b){return[b-1]}),eq:pa(function(a,b,c){return[c<0?c+b:c]}),even:pa(function(a,b){for(var c=0;c<b;c+=2)a.push(c);return a}),odd:pa(function(a,b){for(var c=1;c<b;c+=2)a.push(c);return a}),lt:pa(function(a,b,c){for(var d=c<0?c+b:c;--d>=0;)a.push(d);return a}),gt:pa(function(a,b,c){for(var d=c<0?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=ma(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=na(b);function ra(){}ra.prototype=d.filters=d.pseudos,d.setFilters=new ra,g=ga.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){c&&!(e=Q.exec(h))||(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=R.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(P," ")}),h=h.slice(c.length));for(g in d.filter)!(e=V[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?ga.error(a):z(a,i).slice(0)};function sa(a){for(var b=0,c=a.length,d="";b<c;b++)d+=a[b].value;return d}function ta(a,b,c){var d=b.dir,e=b.next,f=e||d,g=c&&"parentNode"===f,h=x++;return b.first?function(b,c,e){while(b=b[d])if(1===b.nodeType||g)return a(b,c,e);return!1}:function(b,c,i){var j,k,l,m=[w,h];if(i){while(b=b[d])if((1===b.nodeType||g)&&a(b,c,i))return!0}else while(b=b[d])if(1===b.nodeType||g)if(l=b[u]||(b[u]={}),k=l[b.uniqueID]||(l[b.uniqueID]={}),e&&e===b.nodeName.toLowerCase())b=b[d]||b;else{if((j=k[f])&&j[0]===w&&j[1]===h)return m[2]=j[2];if(k[f]=m,m[2]=a(b,c,i))return!0}return!1}}function ua(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function va(a,b,c){for(var d=0,e=b.length;d<e;d++)ga(a,b[d],c);return c}function wa(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;h<i;h++)(f=a[h])&&(c&&!c(f,d,e)||(g.push(f),j&&b.push(h)));return g}function xa(a,b,c,d,e,f){return d&&!d[u]&&(d=xa(d)),e&&!e[u]&&(e=xa(e,f)),ia(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||va(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:wa(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=wa(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?I(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=wa(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ya(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ta(function(a){return a===b},h,!0),l=ta(function(a){return I(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];i<f;i++)if(c=d.relative[a[i].type])m=[ta(ua(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;e<f;e++)if(d.relative[a[e].type])break;return xa(i>1&&ua(m),i>1&&sa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(P,"$1"),c,i<e&&ya(a.slice(i,e)),e<f&&ya(a=a.slice(e)),e<f&&sa(a))}m.push(c)}return ua(m)}function za(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=E.call(i));u=wa(u)}G.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&ga.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=ya(b[c]),f[u]?d.push(f):e.push(f);f=A(a,za(e,d)),f.selector=a}return f},i=ga.select=function(a,b,c,e){var f,i,j,k,l,m="function"==typeof a&&a,n=!e&&g(a=m.selector||a);if(c=c||[],1===n.length){if(i=n[0]=n[0].slice(0),i.length>2&&"ID"===(j=i[0]).type&&9===b.nodeType&&p&&d.relative[i[1].type]){if(b=(d.find.ID(j.matches[0].replace(_,aa),b)||[])[0],!b)return c;m&&(b=b.parentNode),a=a.slice(i.shift().value.length)}f=V.needsContext.test(a)?0:i.length;while(f--){if(j=i[f],d.relative[k=j.type])break;if((l=d.find[k])&&(e=l(j.matches[0].replace(_,aa),$.test(i[0].type)&&qa(b.parentNode)||b))){if(i.splice(f,1),a=e.length&&sa(i),!a)return G.apply(c,e),c;break}}}return(m||h(a,n))(e,b,!p,c,!b||$.test(a)&&qa(b.parentNode)||b),c},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("fieldset"))}),ja(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){if(!c)return a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){if(!c&&"input"===a.nodeName.toLowerCase())return a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(J,function(a,b,c){var d;if(!c)return a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);r.find=x,r.expr=x.selectors,r.expr[":"]=r.expr.pseudos,r.uniqueSort=r.unique=x.uniqueSort,r.text=x.getText,r.isXMLDoc=x.isXML,r.contains=x.contains,r.escapeSelector=x.escape;var y=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&r(a).is(c))break;d.push(a)}return d},z=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},A=r.expr.match.needsContext;function B(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()}var C=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,D=/^.[^:#\[\.,]*$/;function E(a,b,c){return r.isFunction(b)?r.grep(a,function(a,d){return!!b.call(a,d,a)!==c}):b.nodeType?r.grep(a,function(a){return a===b!==c}):"string"!=typeof b?r.grep(a,function(a){return i.call(b,a)>-1!==c}):D.test(b)?r.filter(b,a,c):(b=r.filter(b,a),r.grep(a,function(a){return i.call(b,a)>-1!==c&&1===a.nodeType}))}r.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?r.find.matchesSelector(d,a)?[d]:[]:r.find.matches(a,r.grep(b,function(a){return 1===a.nodeType}))},r.fn.extend({find:function(a){var b,c,d=this.length,e=this;if("string"!=typeof a)return this.pushStack(r(a).filter(function(){for(b=0;b<d;b++)if(r.contains(e[b],this))return!0}));for(c=this.pushStack([]),b=0;b<d;b++)r.find(a,e[b],c);return d>1?r.uniqueSort(c):c},filter:function(a){return this.pushStack(E(this,a||[],!1))},not:function(a){return this.pushStack(E(this,a||[],!0))},is:function(a){return!!E(this,"string"==typeof a&&A.test(a)?r(a):a||[],!1).length}});var F,G=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,H=r.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||F,"string"==typeof a){if(e="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:G.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof r?b[0]:b,r.merge(this,r.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),C.test(e[1])&&r.isPlainObject(b))for(e in b)r.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}return f=d.getElementById(e[2]),f&&(this[0]=f,this.length=1),this}return a.nodeType?(this[0]=a,this.length=1,this):r.isFunction(a)?void 0!==c.ready?c.ready(a):a(r):r.makeArray(a,this)};H.prototype=r.fn,F=r(d);var I=/^(?:parents|prev(?:Until|All))/,J={children:!0,contents:!0,next:!0,prev:!0};r.fn.extend({has:function(a){var b=r(a,this),c=b.length;return this.filter(function(){for(var a=0;a<c;a++)if(r.contains(this,b[a]))return!0})},closest:function(a,b){var c,d=0,e=this.length,f=[],g="string"!=typeof a&&r(a);if(!A.test(a))for(;d<e;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&r.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?r.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?i.call(r(a),this[0]):i.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(r.uniqueSort(r.merge(this.get(),r(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function K(a,b){while((a=a[b])&&1!==a.nodeType);return a}r.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return y(a,"parentNode")},parentsUntil:function(a,b,c){return y(a,"parentNode",c)},next:function(a){return K(a,"nextSibling")},prev:function(a){return K(a,"previousSibling")},nextAll:function(a){return y(a,"nextSibling")},prevAll:function(a){return y(a,"previousSibling")},nextUntil:function(a,b,c){return y(a,"nextSibling",c)},prevUntil:function(a,b,c){return y(a,"previousSibling",c)},siblings:function(a){return z((a.parentNode||{}).firstChild,a)},children:function(a){return z(a.firstChild)},contents:function(a){return B(a,"iframe")?a.contentDocument:(B(a,"template")&&(a=a.content||a),r.merge([],a.childNodes))}},function(a,b){r.fn[a]=function(c,d){var e=r.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=r.filter(d,e)),this.length>1&&(J[a]||r.uniqueSort(e),I.test(a)&&e.reverse()),this.pushStack(e)}});var L=/[^\x20\t\r\n\f]+/g;function M(a){var b={};return r.each(a.match(L)||[],function(a,c){b[c]=!0}),b}r.Callbacks=function(a){a="string"==typeof a?M(a):r.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=e||a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h<f.length)f[h].apply(c[0],c[1])===!1&&a.stopOnFalse&&(h=f.length,c=!1)}a.memory||(c=!1),b=!1,e&&(f=c?[]:"")},j={add:function(){return f&&(c&&!b&&(h=f.length-1,g.push(c)),function d(b){r.each(b,function(b,c){r.isFunction(c)?a.unique&&j.has(c)||f.push(c):c&&c.length&&"string"!==r.type(c)&&d(c)})}(arguments),c&&!b&&i()),this},remove:function(){return r.each(arguments,function(a,b){var c;while((c=r.inArray(b,f,c))>-1)f.splice(c,1),c<=h&&h--}),this},has:function(a){return a?r.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=g=[],c||b||(f=c=""),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j};function N(a){return a}function O(a){throw a}function P(a,b,c,d){var e;try{a&&r.isFunction(e=a.promise)?e.call(a).done(b).fail(c):a&&r.isFunction(e=a.then)?e.call(a,b,c):b.apply(void 0,[a].slice(d))}catch(a){c.apply(void 0,[a])}}r.extend({Deferred:function(b){var c=[["notify","progress",r.Callbacks("memory"),r.Callbacks("memory"),2],["resolve","done",r.Callbacks("once memory"),r.Callbacks("once memory"),0,"resolved"],["reject","fail",r.Callbacks("once memory"),r.Callbacks("once memory"),1,"rejected"]],d="pending",e={state:function(){return d},always:function(){return f.done(arguments).fail(arguments),this},"catch":function(a){return e.then(null,a)},pipe:function(){var a=arguments;return r.Deferred(function(b){r.each(c,function(c,d){var e=r.isFunction(a[d[4]])&&a[d[4]];f[d[1]](function(){var a=e&&e.apply(this,arguments);a&&r.isFunction(a.promise)?a.promise().progress(b.notify).done(b.resolve).fail(b.reject):b[d[0]+"With"](this,e?[a]:arguments)})}),a=null}).promise()},then:function(b,d,e){var f=0;function g(b,c,d,e){return function(){var h=this,i=arguments,j=function(){var a,j;if(!(b<f)){if(a=d.apply(h,i),a===c.promise())throw new TypeError("Thenable self-resolution");j=a&&("object"==typeof a||"function"==typeof a)&&a.then,r.isFunction(j)?e?j.call(a,g(f,c,N,e),g(f,c,O,e)):(f++,j.call(a,g(f,c,N,e),g(f,c,O,e),g(f,c,N,c.notifyWith))):(d!==N&&(h=void 0,i=[a]),(e||c.resolveWith)(h,i))}},k=e?j:function(){try{j()}catch(a){r.Deferred.exceptionHook&&r.Deferred.exceptionHook(a,k.stackTrace),b+1>=f&&(d!==O&&(h=void 0,i=[a]),c.rejectWith(h,i))}};b?k():(r.Deferred.getStackHook&&(k.stackTrace=r.Deferred.getStackHook()),a.setTimeout(k))}}return r.Deferred(function(a){c[0][3].add(g(0,a,r.isFunction(e)?e:N,a.notifyWith)),c[1][3].add(g(0,a,r.isFunction(b)?b:N)),c[2][3].add(g(0,a,r.isFunction(d)?d:O))}).promise()},promise:function(a){return null!=a?r.extend(a,e):e}},f={};return r.each(c,function(a,b){var g=b[2],h=b[5];e[b[1]]=g.add,h&&g.add(function(){d=h},c[3-a][2].disable,c[0][2].lock),g.add(b[3].fire),f[b[0]]=function(){return f[b[0]+"With"](this===f?void 0:this,arguments),this},f[b[0]+"With"]=g.fireWith}),e.promise(f),b&&b.call(f,f),f},when:function(a){var b=arguments.length,c=b,d=Array(c),e=f.call(arguments),g=r.Deferred(),h=function(a){return function(c){d[a]=this,e[a]=arguments.length>1?f.call(arguments):c,--b||g.resolveWith(d,e)}};if(b<=1&&(P(a,g.done(h(c)).resolve,g.reject,!b),"pending"===g.state()||r.isFunction(e[c]&&e[c].then)))return g.then();while(c--)P(e[c],h(c),g.reject);return g.promise()}});var Q=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;r.Deferred.exceptionHook=function(b,c){a.console&&a.console.warn&&b&&Q.test(b.name)&&a.console.warn("jQuery.Deferred exception: "+b.message,b.stack,c)},r.readyException=function(b){a.setTimeout(function(){throw b})};var R=r.Deferred();r.fn.ready=function(a){return R.then(a)["catch"](function(a){r.readyException(a);
+}),this},r.extend({isReady:!1,readyWait:1,ready:function(a){(a===!0?--r.readyWait:r.isReady)||(r.isReady=!0,a!==!0&&--r.readyWait>0||R.resolveWith(d,[r]))}}),r.ready.then=R.then;function S(){d.removeEventListener("DOMContentLoaded",S),a.removeEventListener("load",S),r.ready()}"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll?a.setTimeout(r.ready):(d.addEventListener("DOMContentLoaded",S),a.addEventListener("load",S));var T=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===r.type(c)){e=!0;for(h in c)T(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,r.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(r(a),c)})),b))for(;h<i;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},U=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function V(){this.expando=r.expando+V.uid++}V.uid=1,V.prototype={cache:function(a){var b=a[this.expando];return b||(b={},U(a)&&(a.nodeType?a[this.expando]=b:Object.defineProperty(a,this.expando,{value:b,configurable:!0}))),b},set:function(a,b,c){var d,e=this.cache(a);if("string"==typeof b)e[r.camelCase(b)]=c;else for(d in b)e[r.camelCase(d)]=b[d];return e},get:function(a,b){return void 0===b?this.cache(a):a[this.expando]&&a[this.expando][r.camelCase(b)]},access:function(a,b,c){return void 0===b||b&&"string"==typeof b&&void 0===c?this.get(a,b):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d=a[this.expando];if(void 0!==d){if(void 0!==b){Array.isArray(b)?b=b.map(r.camelCase):(b=r.camelCase(b),b=b in d?[b]:b.match(L)||[]),c=b.length;while(c--)delete d[b[c]]}(void 0===b||r.isEmptyObject(d))&&(a.nodeType?a[this.expando]=void 0:delete a[this.expando])}},hasData:function(a){var b=a[this.expando];return void 0!==b&&!r.isEmptyObject(b)}};var W=new V,X=new V,Y=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Z=/[A-Z]/g;function $(a){return"true"===a||"false"!==a&&("null"===a?null:a===+a+""?+a:Y.test(a)?JSON.parse(a):a)}function _(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(Z,"-$&").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c=$(c)}catch(e){}X.set(a,b,c)}else c=void 0;return c}r.extend({hasData:function(a){return X.hasData(a)||W.hasData(a)},data:function(a,b,c){return X.access(a,b,c)},removeData:function(a,b){X.remove(a,b)},_data:function(a,b,c){return W.access(a,b,c)},_removeData:function(a,b){W.remove(a,b)}}),r.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=X.get(f),1===f.nodeType&&!W.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=r.camelCase(d.slice(5)),_(f,d,e[d])));W.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){X.set(this,a)}):T(this,function(b){var c;if(f&&void 0===b){if(c=X.get(f,a),void 0!==c)return c;if(c=_(f,a),void 0!==c)return c}else this.each(function(){X.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){X.remove(this,a)})}}),r.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=W.get(a,b),c&&(!d||Array.isArray(c)?d=W.access(a,b,r.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=r.queue(a,b),d=c.length,e=c.shift(),f=r._queueHooks(a,b),g=function(){r.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return W.get(a,c)||W.access(a,c,{empty:r.Callbacks("once memory").add(function(){W.remove(a,[b+"queue",c])})})}}),r.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?r.queue(this[0],a):void 0===b?this:this.each(function(){var c=r.queue(this,a,b);r._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&r.dequeue(this,a)})},dequeue:function(a){return this.each(function(){r.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=r.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=W.get(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var aa=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ba=new RegExp("^(?:([+-])=|)("+aa+")([a-z%]*)$","i"),ca=["Top","Right","Bottom","Left"],da=function(a,b){return a=b||a,"none"===a.style.display||""===a.style.display&&r.contains(a.ownerDocument,a)&&"none"===r.css(a,"display")},ea=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};function fa(a,b,c,d){var e,f=1,g=20,h=d?function(){return d.cur()}:function(){return r.css(a,b,"")},i=h(),j=c&&c[3]||(r.cssNumber[b]?"":"px"),k=(r.cssNumber[b]||"px"!==j&&+i)&&ba.exec(r.css(a,b));if(k&&k[3]!==j){j=j||k[3],c=c||[],k=+i||1;do f=f||".5",k/=f,r.style(a,b,k+j);while(f!==(f=h()/i)&&1!==f&&--g)}return c&&(k=+k||+i||0,e=c[1]?k+(c[1]+1)*c[2]:+c[2],d&&(d.unit=j,d.start=k,d.end=e)),e}var ga={};function ha(a){var b,c=a.ownerDocument,d=a.nodeName,e=ga[d];return e?e:(b=c.body.appendChild(c.createElement(d)),e=r.css(b,"display"),b.parentNode.removeChild(b),"none"===e&&(e="block"),ga[d]=e,e)}function ia(a,b){for(var c,d,e=[],f=0,g=a.length;f<g;f++)d=a[f],d.style&&(c=d.style.display,b?("none"===c&&(e[f]=W.get(d,"display")||null,e[f]||(d.style.display="")),""===d.style.display&&da(d)&&(e[f]=ha(d))):"none"!==c&&(e[f]="none",W.set(d,"display",c)));for(f=0;f<g;f++)null!=e[f]&&(a[f].style.display=e[f]);return a}r.fn.extend({show:function(){return ia(this,!0)},hide:function(){return ia(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){da(this)?r(this).show():r(this).hide()})}});var ja=/^(?:checkbox|radio)$/i,ka=/<([a-z][^\/\0>\x20\t\r\n\f]+)/i,la=/^$|\/(?:java|ecma)script/i,ma={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};ma.optgroup=ma.option,ma.tbody=ma.tfoot=ma.colgroup=ma.caption=ma.thead,ma.th=ma.td;function na(a,b){var c;return c="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):[],void 0===b||b&&B(a,b)?r.merge([a],c):c}function oa(a,b){for(var c=0,d=a.length;c<d;c++)W.set(a[c],"globalEval",!b||W.get(b[c],"globalEval"))}var pa=/<|&#?\w+;/;function qa(a,b,c,d,e){for(var f,g,h,i,j,k,l=b.createDocumentFragment(),m=[],n=0,o=a.length;n<o;n++)if(f=a[n],f||0===f)if("object"===r.type(f))r.merge(m,f.nodeType?[f]:f);else if(pa.test(f)){g=g||l.appendChild(b.createElement("div")),h=(ka.exec(f)||["",""])[1].toLowerCase(),i=ma[h]||ma._default,g.innerHTML=i[1]+r.htmlPrefilter(f)+i[2],k=i[0];while(k--)g=g.lastChild;r.merge(m,g.childNodes),g=l.firstChild,g.textContent=""}else m.push(b.createTextNode(f));l.textContent="",n=0;while(f=m[n++])if(d&&r.inArray(f,d)>-1)e&&e.push(f);else if(j=r.contains(f.ownerDocument,f),g=na(l.appendChild(f),"script"),j&&oa(g),c){k=0;while(f=g[k++])la.test(f.type||"")&&c.push(f)}return l}!function(){var a=d.createDocumentFragment(),b=a.appendChild(d.createElement("div")),c=d.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),o.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="<textarea>x</textarea>",o.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var ra=d.documentElement,sa=/^key/,ta=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,ua=/^([^.]*)(?:\.(.+)|)/;function va(){return!0}function wa(){return!1}function xa(){try{return d.activeElement}catch(a){}}function ya(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)ya(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=wa;else if(!e)return a;return 1===f&&(g=e,e=function(a){return r().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=r.guid++)),a.each(function(){r.event.add(this,b,e,d,c)})}r.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=W.get(a);if(q){c.handler&&(f=c,c=f.handler,e=f.selector),e&&r.find.matchesSelector(ra,e),c.guid||(c.guid=r.guid++),(i=q.events)||(i=q.events={}),(g=q.handle)||(g=q.handle=function(b){return"undefined"!=typeof r&&r.event.triggered!==b.type?r.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(L)||[""],j=b.length;while(j--)h=ua.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n&&(l=r.event.special[n]||{},n=(e?l.delegateType:l.bindType)||n,l=r.event.special[n]||{},k=r.extend({type:n,origType:p,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&r.expr.match.needsContext.test(e),namespace:o.join(".")},f),(m=i[n])||(m=i[n]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,o,g)!==!1||a.addEventListener&&a.addEventListener(n,g)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),r.event.global[n]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=W.hasData(a)&&W.get(a);if(q&&(i=q.events)){b=(b||"").match(L)||[""],j=b.length;while(j--)if(h=ua.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n){l=r.event.special[n]||{},n=(d?l.delegateType:l.bindType)||n,m=i[n]||[],h=h[2]&&new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&p!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,o,q.handle)!==!1||r.removeEvent(a,n,q.handle),delete i[n])}else for(n in i)r.event.remove(a,n+b[j],c,d,!0);r.isEmptyObject(i)&&W.remove(a,"handle events")}},dispatch:function(a){var b=r.event.fix(a),c,d,e,f,g,h,i=new Array(arguments.length),j=(W.get(this,"events")||{})[b.type]||[],k=r.event.special[b.type]||{};for(i[0]=b,c=1;c<arguments.length;c++)i[c]=arguments[c];if(b.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,b)!==!1){h=r.event.handlers.call(this,b,j),c=0;while((f=h[c++])&&!b.isPropagationStopped()){b.currentTarget=f.elem,d=0;while((g=f.handlers[d++])&&!b.isImmediatePropagationStopped())b.rnamespace&&!b.rnamespace.test(g.namespace)||(b.handleObj=g,b.data=g.data,e=((r.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==e&&(b.result=e)===!1&&(b.preventDefault(),b.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,b),b.result}},handlers:function(a,b){var c,d,e,f,g,h=[],i=b.delegateCount,j=a.target;if(i&&j.nodeType&&!("click"===a.type&&a.button>=1))for(;j!==this;j=j.parentNode||this)if(1===j.nodeType&&("click"!==a.type||j.disabled!==!0)){for(f=[],g={},c=0;c<i;c++)d=b[c],e=d.selector+" ",void 0===g[e]&&(g[e]=d.needsContext?r(e,this).index(j)>-1:r.find(e,this,null,[j]).length),g[e]&&f.push(d);f.length&&h.push({elem:j,handlers:f})}return j=this,i<b.length&&h.push({elem:j,handlers:b.slice(i)}),h},addProp:function(a,b){Object.defineProperty(r.Event.prototype,a,{enumerable:!0,configurable:!0,get:r.isFunction(b)?function(){if(this.originalEvent)return b(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[a]},set:function(b){Object.defineProperty(this,a,{enumerable:!0,configurable:!0,writable:!0,value:b})}})},fix:function(a){return a[r.expando]?a:new r.Event(a)},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==xa()&&this.focus)return this.focus(),!1},delegateType:"focusin"},blur:{trigger:function(){if(this===xa()&&this.blur)return this.blur(),!1},delegateType:"focusout"},click:{trigger:function(){if("checkbox"===this.type&&this.click&&B(this,"input"))return this.click(),!1},_default:function(a){return B(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}}},r.removeEvent=function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c)},r.Event=function(a,b){return this instanceof r.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?va:wa,this.target=a.target&&3===a.target.nodeType?a.target.parentNode:a.target,this.currentTarget=a.currentTarget,this.relatedTarget=a.relatedTarget):this.type=a,b&&r.extend(this,b),this.timeStamp=a&&a.timeStamp||r.now(),void(this[r.expando]=!0)):new r.Event(a,b)},r.Event.prototype={constructor:r.Event,isDefaultPrevented:wa,isPropagationStopped:wa,isImmediatePropagationStopped:wa,isSimulated:!1,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=va,a&&!this.isSimulated&&a.preventDefault()},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=va,a&&!this.isSimulated&&a.stopPropagation()},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=va,a&&!this.isSimulated&&a.stopImmediatePropagation(),this.stopPropagation()}},r.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(a){var b=a.button;return null==a.which&&sa.test(a.type)?null!=a.charCode?a.charCode:a.keyCode:!a.which&&void 0!==b&&ta.test(a.type)?1&b?1:2&b?3:4&b?2:0:a.which}},r.event.addProp),r.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){r.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return e&&(e===d||r.contains(d,e))||(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),r.fn.extend({on:function(a,b,c,d){return ya(this,a,b,c,d)},one:function(a,b,c,d){return ya(this,a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,r(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return b!==!1&&"function"!=typeof b||(c=b,b=void 0),c===!1&&(c=wa),this.each(function(){r.event.remove(this,a,c,b)})}});var za=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,Aa=/<script|<style|<link/i,Ba=/checked\s*(?:[^=]|=\s*.checked.)/i,Ca=/^true\/(.*)/,Da=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Ea(a,b){return B(a,"table")&&B(11!==b.nodeType?b:b.firstChild,"tr")?r(">tbody",a)[0]||a:a}function Fa(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function Ga(a){var b=Ca.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Ha(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(W.hasData(a)&&(f=W.access(a),g=W.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;c<d;c++)r.event.add(b,e,j[e][c])}X.hasData(a)&&(h=X.access(a),i=r.extend({},h),X.set(b,i))}}function Ia(a,b){var c=b.nodeName.toLowerCase();"input"===c&&ja.test(a.type)?b.checked=a.checked:"input"!==c&&"textarea"!==c||(b.defaultValue=a.defaultValue)}function Ja(a,b,c,d){b=g.apply([],b);var e,f,h,i,j,k,l=0,m=a.length,n=m-1,q=b[0],s=r.isFunction(q);if(s||m>1&&"string"==typeof q&&!o.checkClone&&Ba.test(q))return a.each(function(e){var f=a.eq(e);s&&(b[0]=q.call(this,e,f.html())),Ja(f,b,c,d)});if(m&&(e=qa(b,a[0].ownerDocument,!1,a,d),f=e.firstChild,1===e.childNodes.length&&(e=f),f||d)){for(h=r.map(na(e,"script"),Fa),i=h.length;l<m;l++)j=e,l!==n&&(j=r.clone(j,!0,!0),i&&r.merge(h,na(j,"script"))),c.call(a[l],j,l);if(i)for(k=h[h.length-1].ownerDocument,r.map(h,Ga),l=0;l<i;l++)j=h[l],la.test(j.type||"")&&!W.access(j,"globalEval")&&r.contains(k,j)&&(j.src?r._evalUrl&&r._evalUrl(j.src):p(j.textContent.replace(Da,""),k))}return a}function Ka(a,b,c){for(var d,e=b?r.filter(b,a):a,f=0;null!=(d=e[f]);f++)c||1!==d.nodeType||r.cleanData(na(d)),d.parentNode&&(c&&r.contains(d.ownerDocument,d)&&oa(na(d,"script")),d.parentNode.removeChild(d));return a}r.extend({htmlPrefilter:function(a){return a.replace(za,"<$1></$2>")},clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=r.contains(a.ownerDocument,a);if(!(o.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||r.isXMLDoc(a)))for(g=na(h),f=na(a),d=0,e=f.length;d<e;d++)Ia(f[d],g[d]);if(b)if(c)for(f=f||na(a),g=g||na(h),d=0,e=f.length;d<e;d++)Ha(f[d],g[d]);else Ha(a,h);return g=na(h,"script"),g.length>0&&oa(g,!i&&na(a,"script")),h},cleanData:function(a){for(var b,c,d,e=r.event.special,f=0;void 0!==(c=a[f]);f++)if(U(c)){if(b=c[W.expando]){if(b.events)for(d in b.events)e[d]?r.event.remove(c,d):r.removeEvent(c,d,b.handle);c[W.expando]=void 0}c[X.expando]&&(c[X.expando]=void 0)}}}),r.fn.extend({detach:function(a){return Ka(this,a,!0)},remove:function(a){return Ka(this,a)},text:function(a){return T(this,function(a){return void 0===a?r.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=a)})},null,a,arguments.length)},append:function(){return Ja(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ea(this,a);b.appendChild(a)}})},prepend:function(){return Ja(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ea(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return Ja(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return Ja(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(r.cleanData(na(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null!=a&&a,b=null==b?a:b,this.map(function(){return r.clone(this,a,b)})},html:function(a){return T(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!Aa.test(a)&&!ma[(ka.exec(a)||["",""])[1].toLowerCase()]){a=r.htmlPrefilter(a);try{for(;c<d;c++)b=this[c]||{},1===b.nodeType&&(r.cleanData(na(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=[];return Ja(this,arguments,function(b){var c=this.parentNode;r.inArray(this,a)<0&&(r.cleanData(na(this)),c&&c.replaceChild(b,this))},a)}}),r.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){r.fn[a]=function(a){for(var c,d=[],e=r(a),f=e.length-1,g=0;g<=f;g++)c=g===f?this:this.clone(!0),r(e[g])[b](c),h.apply(d,c.get());return this.pushStack(d)}});var La=/^margin/,Ma=new RegExp("^("+aa+")(?!px)[a-z%]+$","i"),Na=function(b){var c=b.ownerDocument.defaultView;return c&&c.opener||(c=a),c.getComputedStyle(b)};!function(){function b(){if(i){i.style.cssText="box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%",i.innerHTML="",ra.appendChild(h);var b=a.getComputedStyle(i);c="1%"!==b.top,g="2px"===b.marginLeft,e="4px"===b.width,i.style.marginRight="50%",f="4px"===b.marginRight,ra.removeChild(h),i=null}}var c,e,f,g,h=d.createElement("div"),i=d.createElement("div");i.style&&(i.style.backgroundClip="content-box",i.cloneNode(!0).style.backgroundClip="",o.clearCloneStyle="content-box"===i.style.backgroundClip,h.style.cssText="border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",h.appendChild(i),r.extend(o,{pixelPosition:function(){return b(),c},boxSizingReliable:function(){return b(),e},pixelMarginRight:function(){return b(),f},reliableMarginLeft:function(){return b(),g}}))}();function Oa(a,b,c){var d,e,f,g,h=a.style;return c=c||Na(a),c&&(g=c.getPropertyValue(b)||c[b],""!==g||r.contains(a.ownerDocument,a)||(g=r.style(a,b)),!o.pixelMarginRight()&&Ma.test(g)&&La.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0!==g?g+"":g}function Pa(a,b){return{get:function(){return a()?void delete this.get:(this.get=b).apply(this,arguments)}}}var Qa=/^(none|table(?!-c[ea]).+)/,Ra=/^--/,Sa={position:"absolute",visibility:"hidden",display:"block"},Ta={letterSpacing:"0",fontWeight:"400"},Ua=["Webkit","Moz","ms"],Va=d.createElement("div").style;function Wa(a){if(a in Va)return a;var b=a[0].toUpperCase()+a.slice(1),c=Ua.length;while(c--)if(a=Ua[c]+b,a in Va)return a}function Xa(a){var b=r.cssProps[a];return b||(b=r.cssProps[a]=Wa(a)||a),b}function Ya(a,b,c){var d=ba.exec(b);return d?Math.max(0,d[2]-(c||0))+(d[3]||"px"):b}function Za(a,b,c,d,e){var f,g=0;for(f=c===(d?"border":"content")?4:"width"===b?1:0;f<4;f+=2)"margin"===c&&(g+=r.css(a,c+ca[f],!0,e)),d?("content"===c&&(g-=r.css(a,"padding"+ca[f],!0,e)),"margin"!==c&&(g-=r.css(a,"border"+ca[f]+"Width",!0,e))):(g+=r.css(a,"padding"+ca[f],!0,e),"padding"!==c&&(g+=r.css(a,"border"+ca[f]+"Width",!0,e)));return g}function $a(a,b,c){var d,e=Na(a),f=Oa(a,b,e),g="border-box"===r.css(a,"boxSizing",!1,e);return Ma.test(f)?f:(d=g&&(o.boxSizingReliable()||f===a.style[b]),"auto"===f&&(f=a["offset"+b[0].toUpperCase()+b.slice(1)]),f=parseFloat(f)||0,f+Za(a,b,c||(g?"border":"content"),d,e)+"px")}r.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Oa(a,"opacity");return""===c?"1":c}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":"cssFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=r.camelCase(b),i=Ra.test(b),j=a.style;return i||(b=Xa(h)),g=r.cssHooks[b]||r.cssHooks[h],void 0===c?g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:j[b]:(f=typeof c,"string"===f&&(e=ba.exec(c))&&e[1]&&(c=fa(a,b,e),f="number"),null!=c&&c===c&&("number"===f&&(c+=e&&e[3]||(r.cssNumber[h]?"":"px")),o.clearCloneStyle||""!==c||0!==b.indexOf("background")||(j[b]="inherit"),g&&"set"in g&&void 0===(c=g.set(a,c,d))||(i?j.setProperty(b,c):j[b]=c)),void 0)}},css:function(a,b,c,d){var e,f,g,h=r.camelCase(b),i=Ra.test(b);return i||(b=Xa(h)),g=r.cssHooks[b]||r.cssHooks[h],g&&"get"in g&&(e=g.get(a,!0,c)),void 0===e&&(e=Oa(a,b,d)),"normal"===e&&b in Ta&&(e=Ta[b]),""===c||c?(f=parseFloat(e),c===!0||isFinite(f)?f||0:e):e}}),r.each(["height","width"],function(a,b){r.cssHooks[b]={get:function(a,c,d){if(c)return!Qa.test(r.css(a,"display"))||a.getClientRects().length&&a.getBoundingClientRect().width?$a(a,b,d):ea(a,Sa,function(){return $a(a,b,d)})},set:function(a,c,d){var e,f=d&&Na(a),g=d&&Za(a,b,d,"border-box"===r.css(a,"boxSizing",!1,f),f);return g&&(e=ba.exec(c))&&"px"!==(e[3]||"px")&&(a.style[b]=c,c=r.css(a,b)),Ya(a,c,g)}}}),r.cssHooks.marginLeft=Pa(o.reliableMarginLeft,function(a,b){if(b)return(parseFloat(Oa(a,"marginLeft"))||a.getBoundingClientRect().left-ea(a,{marginLeft:0},function(){return a.getBoundingClientRect().left}))+"px"}),r.each({margin:"",padding:"",border:"Width"},function(a,b){r.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];d<4;d++)e[a+ca[d]+b]=f[d]||f[d-2]||f[0];return e}},La.test(a)||(r.cssHooks[a+b].set=Ya)}),r.fn.extend({css:function(a,b){return T(this,function(a,b,c){var d,e,f={},g=0;if(Array.isArray(b)){for(d=Na(a),e=b.length;g<e;g++)f[b[g]]=r.css(a,b[g],!1,d);return f}return void 0!==c?r.style(a,b,c):r.css(a,b)},a,b,arguments.length>1)}}),r.fn.delay=function(b,c){return b=r.fx?r.fx.speeds[b]||b:b,c=c||"fx",this.queue(c,function(c,d){var e=a.setTimeout(c,b);d.stop=function(){a.clearTimeout(e)}})},function(){var a=d.createElement("input"),b=d.createElement("select"),c=b.appendChild(d.createElement("option"));a.type="checkbox",o.checkOn=""!==a.value,o.optSelected=c.selected,a=d.createElement("input"),a.value="t",a.type="radio",o.radioValue="t"===a.value}();var _a,ab=r.expr.attrHandle;r.fn.extend({attr:function(a,b){return T(this,r.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){r.removeAttr(this,a)})}}),r.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return"undefined"==typeof a.getAttribute?r.prop(a,b,c):(1===f&&r.isXMLDoc(a)||(e=r.attrHooks[b.toLowerCase()]||(r.expr.match.bool.test(b)?_a:void 0)),void 0!==c?null===c?void r.removeAttr(a,b):e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:(a.setAttribute(b,c+""),c):e&&"get"in e&&null!==(d=e.get(a,b))?d:(d=r.find.attr(a,b),null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!o.radioValue&&"radio"===b&&B(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}},removeAttr:function(a,b){var c,d=0,e=b&&b.match(L);if(e&&1===a.nodeType)while(c=e[d++])a.removeAttribute(c)}}),_a={set:function(a,b,c){return b===!1?r.removeAttr(a,c):a.setAttribute(c,c),c}},r.each(r.expr.match.bool.source.match(/\w+/g),function(a,b){var c=ab[b]||r.find.attr;ab[b]=function(a,b,d){var e,f,g=b.toLowerCase();return d||(f=ab[g],ab[g]=e,e=null!=c(a,b,d)?g:null,ab[g]=f),e}});var bb=/^(?:input|select|textarea|button)$/i,cb=/^(?:a|area)$/i;r.fn.extend({prop:function(a,b){return T(this,r.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[r.propFix[a]||a]})}}),r.extend({prop:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return 1===f&&r.isXMLDoc(a)||(b=r.propFix[b]||b,e=r.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=r.find.attr(a,"tabindex");return b?parseInt(b,10):bb.test(a.nodeName)||cb.test(a.nodeName)&&a.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),o.optSelected||(r.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null},set:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}}),r.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){r.propFix[this.toLowerCase()]=this});function db(a){var b=a.match(L)||[];return b.join(" ")}function eb(a){return a.getAttribute&&a.getAttribute("class")||""}r.fn.extend({addClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).addClass(a.call(this,b,eb(this)))});if("string"==typeof a&&a){b=a.match(L)||[];while(c=this[i++])if(e=eb(c),d=1===c.nodeType&&" "+db(e)+" "){g=0;while(f=b[g++])d.indexOf(" "+f+" ")<0&&(d+=f+" ");h=db(d),e!==h&&c.setAttribute("class",h)}}return this},removeClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).removeClass(a.call(this,b,eb(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof a&&a){b=a.match(L)||[];while(c=this[i++])if(e=eb(c),d=1===c.nodeType&&" "+db(e)+" "){g=0;while(f=b[g++])while(d.indexOf(" "+f+" ")>-1)d=d.replace(" "+f+" "," ");h=db(d),e!==h&&c.setAttribute("class",h)}}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):r.isFunction(a)?this.each(function(c){r(this).toggleClass(a.call(this,c,eb(this),b),b)}):this.each(function(){var b,d,e,f;if("string"===c){d=0,e=r(this),f=a.match(L)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else void 0!==a&&"boolean"!==c||(b=eb(this),b&&W.set(this,"__className__",b),this.setAttribute&&this.setAttribute("class",b||a===!1?"":W.get(this,"__className__")||""))})},hasClass:function(a){var b,c,d=0;b=" "+a+" ";while(c=this[d++])if(1===c.nodeType&&(" "+db(eb(c))+" ").indexOf(b)>-1)return!0;return!1}});var fb=/\r/g;r.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=r.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,r(this).val()):a,null==e?e="":"number"==typeof e?e+="":Array.isArray(e)&&(e=r.map(e,function(a){return null==a?"":a+""})),b=r.valHooks[this.type]||r.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=r.valHooks[e.type]||r.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(fb,""):null==c?"":c)}}}),r.extend({valHooks:{option:{get:function(a){var b=r.find.attr(a,"value");return null!=b?b:db(r.text(a))}},select:{get:function(a){var b,c,d,e=a.options,f=a.selectedIndex,g="select-one"===a.type,h=g?null:[],i=g?f+1:e.length;for(d=f<0?i:g?f:0;d<i;d++)if(c=e[d],(c.selected||d===f)&&!c.disabled&&(!c.parentNode.disabled||!B(c.parentNode,"optgroup"))){if(b=r(c).val(),g)return b;h.push(b)}return h},set:function(a,b){var c,d,e=a.options,f=r.makeArray(b),g=e.length;while(g--)d=e[g],(d.selected=r.inArray(r.valHooks.option.get(d),f)>-1)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),r.each(["radio","checkbox"],function(){r.valHooks[this]={set:function(a,b){if(Array.isArray(b))return a.checked=r.inArray(r(a).val(),b)>-1}},o.checkOn||(r.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var gb=/^(?:focusinfocus|focusoutblur)$/;r.extend(r.event,{trigger:function(b,c,e,f){var g,h,i,j,k,m,n,o=[e||d],p=l.call(b,"type")?b.type:b,q=l.call(b,"namespace")?b.namespace.split("."):[];if(h=i=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!gb.test(p+r.event.triggered)&&(p.indexOf(".")>-1&&(q=p.split("."),p=q.shift(),q.sort()),k=p.indexOf(":")<0&&"on"+p,b=b[r.expando]?b:new r.Event(p,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=q.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:r.makeArray(c,[b]),n=r.event.special[p]||{},f||!n.trigger||n.trigger.apply(e,c)!==!1)){if(!f&&!n.noBubble&&!r.isWindow(e)){for(j=n.delegateType||p,gb.test(j+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),i=h;i===(e.ownerDocument||d)&&o.push(i.defaultView||i.parentWindow||a)}g=0;while((h=o[g++])&&!b.isPropagationStopped())b.type=g>1?j:n.bindType||p,m=(W.get(h,"events")||{})[b.type]&&W.get(h,"handle"),m&&m.apply(h,c),m=k&&h[k],m&&m.apply&&U(h)&&(b.result=m.apply(h,c),b.result===!1&&b.preventDefault());return b.type=p,f||b.isDefaultPrevented()||n._default&&n._default.apply(o.pop(),c)!==!1||!U(e)||k&&r.isFunction(e[p])&&!r.isWindow(e)&&(i=e[k],i&&(e[k]=null),r.event.triggered=p,e[p](),r.event.triggered=void 0,i&&(e[k]=i)),b.result}},simulate:function(a,b,c){var d=r.extend(new r.Event,c,{type:a,isSimulated:!0});r.event.trigger(d,null,b)}}),r.fn.extend({trigger:function(a,b){return this.each(function(){r.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];if(c)return r.event.trigger(a,b,c,!0)}}),r.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(a,b){r.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),r.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),o.focusin="onfocusin"in a,o.focusin||r.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){r.event.simulate(b,a.target,r.event.fix(a))};r.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=W.access(d,b);e||d.addEventListener(a,c,!0),W.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=W.access(d,b)-1;e?W.access(d,b,e):(d.removeEventListener(a,c,!0),W.remove(d,b))}}});var hb=/\[\]$/,ib=/\r?\n/g,jb=/^(?:submit|button|image|reset|file)$/i,kb=/^(?:input|select|textarea|keygen)/i;function lb(a,b,c,d){var e;if(Array.isArray(b))r.each(b,function(b,e){c||hb.test(a)?d(a,e):lb(a+"["+("object"==typeof e&&null!=e?b:"")+"]",e,c,d);
+});else if(c||"object"!==r.type(b))d(a,b);else for(e in b)lb(a+"["+e+"]",b[e],c,d)}r.param=function(a,b){var c,d=[],e=function(a,b){var c=r.isFunction(b)?b():b;d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(null==c?"":c)};if(Array.isArray(a)||a.jquery&&!r.isPlainObject(a))r.each(a,function(){e(this.name,this.value)});else for(c in a)lb(c,a[c],b,e);return d.join("&")},r.fn.extend({serialize:function(){return r.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=r.prop(this,"elements");return a?r.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!r(this).is(":disabled")&&kb.test(this.nodeName)&&!jb.test(a)&&(this.checked||!ja.test(a))}).map(function(a,b){var c=r(this).val();return null==c?null:Array.isArray(c)?r.map(c,function(a){return{name:b.name,value:a.replace(ib,"\r\n")}}):{name:b.name,value:c.replace(ib,"\r\n")}}).get()}}),r.fn.extend({wrapAll:function(a){var b;return this[0]&&(r.isFunction(a)&&(a=a.call(this[0])),b=r(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this},wrapInner:function(a){return r.isFunction(a)?this.each(function(b){r(this).wrapInner(a.call(this,b))}):this.each(function(){var b=r(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=r.isFunction(a);return this.each(function(c){r(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(a){return this.parent(a).not("body").each(function(){r(this).replaceWith(this.childNodes)}),this}}),r.expr.pseudos.hidden=function(a){return!r.expr.pseudos.visible(a)},r.expr.pseudos.visible=function(a){return!!(a.offsetWidth||a.offsetHeight||a.getClientRects().length)},o.createHTMLDocument=function(){var a=d.implementation.createHTMLDocument("").body;return a.innerHTML="<form></form><form></form>",2===a.childNodes.length}(),r.parseHTML=function(a,b,c){if("string"!=typeof a)return[];"boolean"==typeof b&&(c=b,b=!1);var e,f,g;return b||(o.createHTMLDocument?(b=d.implementation.createHTMLDocument(""),e=b.createElement("base"),e.href=d.location.href,b.head.appendChild(e)):b=d),f=C.exec(a),g=!c&&[],f?[b.createElement(f[1])]:(f=qa([a],b,g),g&&g.length&&r(g).remove(),r.merge([],f.childNodes))},r.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=r.css(a,"position"),l=r(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=r.css(a,"top"),i=r.css(a,"left"),j=("absolute"===k||"fixed"===k)&&(f+i).indexOf("auto")>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),r.isFunction(b)&&(b=b.call(a,c,r.extend({},h))),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},r.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){r.offset.setOffset(this,a,b)});var b,c,d,e,f=this[0];if(f)return f.getClientRects().length?(d=f.getBoundingClientRect(),b=f.ownerDocument,c=b.documentElement,e=b.defaultView,{top:d.top+e.pageYOffset-c.clientTop,left:d.left+e.pageXOffset-c.clientLeft}):{top:0,left:0}},position:function(){if(this[0]){var a,b,c=this[0],d={top:0,left:0};return"fixed"===r.css(c,"position")?b=c.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),B(a[0],"html")||(d=a.offset()),d={top:d.top+r.css(a[0],"borderTopWidth",!0),left:d.left+r.css(a[0],"borderLeftWidth",!0)}),{top:b.top-d.top-r.css(c,"marginTop",!0),left:b.left-d.left-r.css(c,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent;while(a&&"static"===r.css(a,"position"))a=a.offsetParent;return a||ra})}}),r.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c="pageYOffset"===b;r.fn[a]=function(d){return T(this,function(a,d,e){var f;return r.isWindow(a)?f=a:9===a.nodeType&&(f=a.defaultView),void 0===e?f?f[b]:a[d]:void(f?f.scrollTo(c?f.pageXOffset:e,c?e:f.pageYOffset):a[d]=e)},a,d,arguments.length)}}),r.each(["top","left"],function(a,b){r.cssHooks[b]=Pa(o.pixelPosition,function(a,c){if(c)return c=Oa(a,b),Ma.test(c)?r(a).position()[b]+"px":c})}),r.each({Height:"height",Width:"width"},function(a,b){r.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){r.fn[d]=function(e,f){var g=arguments.length&&(c||"boolean"!=typeof e),h=c||(e===!0||f===!0?"margin":"border");return T(this,function(b,c,e){var f;return r.isWindow(b)?0===d.indexOf("outer")?b["inner"+a]:b.document.documentElement["client"+a]:9===b.nodeType?(f=b.documentElement,Math.max(b.body["scroll"+a],f["scroll"+a],b.body["offset"+a],f["offset"+a],f["client"+a])):void 0===e?r.css(b,c,h):r.style(b,c,e,h)},b,g?e:void 0,g)}})}),r.fn.extend({bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}}),r.holdReady=function(a){a?r.readyWait++:r.ready(!0)},r.isArray=Array.isArray,r.parseJSON=JSON.parse,r.nodeName=B,"function"==typeof define&&define.amd&&define("jquery",[],function(){return r});var mb=a.jQuery,nb=a.$;return r.noConflict=function(b){return a.$===r&&(a.$=nb),b&&a.jQuery===r&&(a.jQuery=mb),r},b||(a.jQuery=a.$=r),r});
diff --git a/js/jquery/dist/jquery.slim.min.map b/js/jquery/dist/jquery.slim.min.map
new file mode 100644 (file)
index 0000000..a44b7b4
--- /dev/null
@@ -0,0 +1 @@
+{"version":3,"sources":["jquery.slim.js"],"names":["global","factory","module","exports","document","w","Error","window","this","noGlobal","arr","getProto","Object","getPrototypeOf","slice","concat","push","indexOf","class2type","toString","hasOwn","hasOwnProperty","fnToString","ObjectFunctionString","call","support","DOMEval","code","doc","script","createElement","text","head","appendChild","parentNode","removeChild","version","jQuery","selector","context","fn","init","rtrim","rmsPrefix","rdashAlpha","fcamelCase","all","letter","toUpperCase","prototype","jquery","constructor","length","toArray","get","num","pushStack","elems","ret","merge","prevObject","each","callback","map","elem","i","apply","arguments","first","eq","last","len","j","end","sort","splice","extend","options","name","src","copy","copyIsArray","clone","target","deep","isFunction","isPlainObject","Array","isArray","undefined","expando","Math","random","replace","isReady","error","msg","noop","obj","type","isWindow","isNumeric","isNaN","parseFloat","proto","Ctor","isEmptyObject","globalEval","camelCase","string","isArrayLike","trim","makeArray","results","inArray","second","grep","invert","callbackInverse","matches","callbackExpect","arg","value","guid","proxy","tmp","args","now","Date","Symbol","iterator","split","toLowerCase","Sizzle","Expr","getText","isXML","tokenize","compile","select","outermostContext","sortInput","hasDuplicate","setDocument","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","contains","preferredDoc","dirruns","done","classCache","createCache","tokenCache","compilerCache","sortOrder","a","b","pop","push_native","list","booleans","whitespace","identifier","attributes","pseudos","rwhitespace","RegExp","rcomma","rcombinators","rattributeQuotes","rpseudo","ridentifier","matchExpr","ID","CLASS","TAG","ATTR","PSEUDO","CHILD","bool","needsContext","rinputs","rheader","rnative","rquickExpr","rsibling","runescape","funescape","_","escaped","escapedWhitespace","high","String","fromCharCode","rcssescape","fcssescape","ch","asCodePoint","charCodeAt","unloadHandler","disabledAncestor","addCombinator","disabled","dir","next","childNodes","nodeType","e","els","seed","m","nid","match","groups","newSelector","newContext","ownerDocument","exec","getElementById","id","getElementsByTagName","getElementsByClassName","qsa","test","nodeName","getAttribute","setAttribute","toSelector","join","testContext","querySelectorAll","qsaError","removeAttribute","keys","cache","key","cacheLength","shift","markFunction","assert","el","addHandle","attrs","handler","attrHandle","siblingCheck","cur","diff","sourceIndex","nextSibling","createInputPseudo","createButtonPseudo","createDisabledPseudo","isDisabled","createPositionalPseudo","argument","matchIndexes","documentElement","node","hasCompare","subWindow","defaultView","top","addEventListener","attachEvent","className","createComment","getById","getElementsByName","filter","attrId","find","getAttributeNode","tag","innerHTML","input","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","unshift","expr","elements","attr","val","specified","escape","sel","uniqueSort","duplicates","detectDuplicates","sortStable","textContent","firstChild","nodeValue","selectors","createPseudo","relative",">"," ","+","~","preFilter","excess","unquoted","nodeNameSelector","pattern","operator","check","result","what","simple","forward","ofType","xml","uniqueCache","outerCache","nodeIndex","start","parent","useCache","lastChild","uniqueID","pseudo","setFilters","idx","matched","not","matcher","unmatched","has","innerText","lang","elemLang","hash","location","root","focus","activeElement","hasFocus","href","tabIndex","enabled","checked","selected","selectedIndex","empty","header","button","even","odd","lt","gt","radio","checkbox","file","password","image","submit","reset","filters","parseOnly","tokens","soFar","preFilters","cached","combinator","base","skip","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","multipleContexts","contexts","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","temp","preMap","postMap","preexisting","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","matcherFromGroupMatchers","elementMatchers","setMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","token","compiled","defaultValue","unique","isXMLDoc","escapeSelector","until","truncate","is","siblings","n","rneedsContext","rsingleTag","risSimple","winnow","qualifier","self","rootjQuery","parseHTML","ready","rparentsprev","guaranteedUnique","children","contents","prev","targets","l","closest","index","prevAll","add","addBack","sibling","parents","parentsUntil","nextAll","nextUntil","prevUntil","contentDocument","content","reverse","rnothtmlwhite","createOptions","object","flag","Callbacks","firing","memory","fired","locked","queue","firingIndex","fire","once","stopOnFalse","remove","disable","lock","fireWith","Identity","v","Thrower","ex","adoptValue","resolve","reject","noValue","method","promise","fail","then","Deferred","func","tuples","state","always","deferred","catch","pipe","fns","newDefer","tuple","returned","progress","notify","onFulfilled","onRejected","onProgress","maxDepth","depth","special","that","mightThrow","TypeError","notifyWith","resolveWith","process","exceptionHook","stackTrace","rejectWith","getStackHook","setTimeout","stateString","when","singleValue","remaining","resolveContexts","resolveValues","master","updateFunc","rerrorNames","stack","console","warn","message","readyException","readyList","readyWait","wait","completed","removeEventListener","readyState","doScroll","access","chainable","emptyGet","raw","bulk","acceptData","owner","Data","uid","defineProperty","configurable","set","data","prop","hasData","dataPriv","dataUser","rbrace","rmultiDash","getData","JSON","parse","dataAttr","removeData","_data","_removeData","dequeue","startLength","hooks","_queueHooks","stop","setter","clearQueue","count","defer","pnum","source","rcssNum","cssExpand","isHiddenWithinTree","style","display","css","swap","old","adjustCSS","valueParts","tween","adjusted","scale","maxIterations","currentValue","initial","unit","cssNumber","initialInUnit","defaultDisplayMap","getDefaultDisplay","body","showHide","show","values","hide","toggle","rcheckableType","rtagName","rscriptType","wrapMap","option","thead","col","tr","td","_default","optgroup","tbody","tfoot","colgroup","caption","th","getAll","setGlobalEval","refElements","rhtml","buildFragment","scripts","selection","ignored","wrap","fragment","createDocumentFragment","nodes","htmlPrefilter","createTextNode","div","checkClone","cloneNode","noCloneChecked","rkeyEvent","rmouseEvent","rtypenamespace","returnTrue","returnFalse","safeActiveElement","err","on","types","one","origFn","event","off","handleObjIn","eventHandle","events","t","handleObj","handlers","namespaces","origType","elemData","handle","triggered","dispatch","delegateType","bindType","namespace","delegateCount","setup","mappedTypes","origCount","teardown","removeEvent","nativeEvent","fix","handlerQueue","delegateTarget","preDispatch","isPropagationStopped","currentTarget","isImmediatePropagationStopped","rnamespace","preventDefault","stopPropagation","postDispatch","matchedHandlers","matchedSelectors","addProp","hook","Event","enumerable","originalEvent","writable","load","noBubble","trigger","blur","click","beforeunload","returnValue","props","isDefaultPrevented","defaultPrevented","relatedTarget","timeStamp","isSimulated","stopImmediatePropagation","altKey","bubbles","cancelable","changedTouches","ctrlKey","detail","eventPhase","metaKey","pageX","pageY","shiftKey","view","char","charCode","keyCode","buttons","clientX","clientY","offsetX","offsetY","pointerId","pointerType","screenX","screenY","targetTouches","toElement","touches","which","mouseenter","mouseleave","pointerenter","pointerleave","orig","related","rxhtmlTag","rnoInnerhtml","rchecked","rscriptTypeMasked","rcleanScript","manipulationTarget","disableScript","restoreScript","cloneCopyEvent","dest","pdataOld","pdataCur","udataOld","udataCur","fixInput","domManip","collection","hasScripts","iNoClone","html","_evalUrl","keepData","cleanData","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","detach","append","prepend","insertBefore","before","after","replaceWith","replaceChild","appendTo","prependTo","insertAfter","replaceAll","original","insert","rmargin","rnumnonpx","getStyles","opener","getComputedStyle","computeStyleTests","cssText","container","divStyle","pixelPositionVal","reliableMarginLeftVal","marginLeft","boxSizingReliableVal","width","marginRight","pixelMarginRightVal","backgroundClip","clearCloneStyle","pixelPosition","boxSizingReliable","pixelMarginRight","reliableMarginLeft","curCSS","computed","minWidth","maxWidth","getPropertyValue","addGetHookIf","conditionFn","hookFn","rdisplayswap","rcustomProp","cssShow","position","visibility","cssNormalTransform","letterSpacing","fontWeight","cssPrefixes","emptyStyle","vendorPropName","capName","finalPropName","cssProps","setPositiveNumber","subtract","max","augmentWidthOrHeight","extra","isBorderBox","styles","getWidthOrHeight","valueIsBorderBox","cssHooks","opacity","animationIterationCount","columnCount","fillOpacity","flexGrow","flexShrink","lineHeight","order","orphans","widows","zIndex","zoom","float","origName","isCustomProp","setProperty","isFinite","getClientRects","getBoundingClientRect","left","margin","padding","border","prefix","suffix","expand","expanded","parts","delay","time","fx","speeds","timeout","clearTimeout","opt","checkOn","optSelected","radioValue","boolHook","removeAttr","nType","attrHooks","attrNames","getter","lowercaseName","rfocusable","rclickable","removeProp","propFix","propHooks","tabindex","parseInt","for","class","stripAndCollapse","getClass","addClass","classes","curValue","clazz","finalValue","removeClass","toggleClass","stateVal","classNames","hasClass","rreturn","valHooks","optionSet","rfocusMorph","onlyHandlers","bubbleType","ontype","eventPath","isTrigger","parentWindow","simulate","triggerHandler","hover","fnOver","fnOut","focusin","attaches","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","traditional","param","s","valueOrFunction","encodeURIComponent","serialize","serializeArray","wrapAll","firstElementChild","wrapInner","unwrap","hidden","visible","offsetWidth","offsetHeight","createHTMLDocument","implementation","keepScripts","parsed","offset","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","calculatePosition","curElem","using","rect","win","pageYOffset","clientTop","pageXOffset","clientLeft","offsetParent","parentOffset","scrollLeft","scrollTop","scrollTo","Height","Width","","defaultExtra","funcName","bind","unbind","delegate","undelegate","holdReady","hold","parseJSON","define","amd","_jQuery","_$","$","noConflict"],"mappings":"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","file":"jquery.slim.min.js"}
\ No newline at end of file
diff --git a/js/jquery/external/sizzle/dist/sizzle.js b/js/jquery/external/sizzle/dist/sizzle.js
new file mode 100644 (file)
index 0000000..bfa0793
--- /dev/null
@@ -0,0 +1,2272 @@
+/*!
+ * Sizzle CSS Selector Engine v2.3.3
+ * https://sizzlejs.com/
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license
+ * http://jquery.org/license
+ *
+ * Date: 2016-08-08
+ */
+(function( window ) {
+
+var i,
+       support,
+       Expr,
+       getText,
+       isXML,
+       tokenize,
+       compile,
+       select,
+       outermostContext,
+       sortInput,
+       hasDuplicate,
+
+       // Local document vars
+       setDocument,
+       document,
+       docElem,
+       documentIsHTML,
+       rbuggyQSA,
+       rbuggyMatches,
+       matches,
+       contains,
+
+       // Instance-specific data
+       expando = "sizzle" + 1 * new Date(),
+       preferredDoc = window.document,
+       dirruns = 0,
+       done = 0,
+       classCache = createCache(),
+       tokenCache = createCache(),
+       compilerCache = createCache(),
+       sortOrder = function( a, b ) {
+               if ( a === b ) {
+                       hasDuplicate = true;
+               }
+               return 0;
+       },
+
+       // Instance methods
+       hasOwn = ({}).hasOwnProperty,
+       arr = [],
+       pop = arr.pop,
+       push_native = arr.push,
+       push = arr.push,
+       slice = arr.slice,
+       // Use a stripped-down indexOf as it's faster than native
+       // https://jsperf.com/thor-indexof-vs-for/5
+       indexOf = function( list, elem ) {
+               var i = 0,
+                       len = list.length;
+               for ( ; i < len; i++ ) {
+                       if ( list[i] === elem ) {
+                               return i;
+                       }
+               }
+               return -1;
+       },
+
+       booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
+
+       // Regular expressions
+
+       // http://www.w3.org/TR/css3-selectors/#whitespace
+       whitespace = "[\\x20\\t\\r\\n\\f]",
+
+       // http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier
+       identifier = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+",
+
+       // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors
+       attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace +
+               // Operator (capture 2)
+               "*([*^$|!~]?=)" + whitespace +
+               // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]"
+               "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace +
+               "*\\]",
+
+       pseudos = ":(" + identifier + ")(?:\\((" +
+               // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:
+               // 1. quoted (capture 3; capture 4 or capture 5)
+               "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" +
+               // 2. simple (capture 6)
+               "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" +
+               // 3. anything else (capture 2)
+               ".*" +
+               ")\\)|)",
+
+       // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter
+       rwhitespace = new RegExp( whitespace + "+", "g" ),
+       rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ),
+
+       rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ),
+       rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ),
+
+       rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ),
+
+       rpseudo = new RegExp( pseudos ),
+       ridentifier = new RegExp( "^" + identifier + "$" ),
+
+       matchExpr = {
+               "ID": new RegExp( "^#(" + identifier + ")" ),
+               "CLASS": new RegExp( "^\\.(" + identifier + ")" ),
+               "TAG": new RegExp( "^(" + identifier + "|[*])" ),
+               "ATTR": new RegExp( "^" + attributes ),
+               "PSEUDO": new RegExp( "^" + pseudos ),
+               "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace +
+                       "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace +
+                       "*(\\d+)|))" + whitespace + "*\\)|)", "i" ),
+               "bool": new RegExp( "^(?:" + booleans + ")$", "i" ),
+               // For use in libraries implementing .is()
+               // We use this for POS matching in `select`
+               "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" +
+                       whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" )
+       },
+
+       rinputs = /^(?:input|select|textarea|button)$/i,
+       rheader = /^h\d$/i,
+
+       rnative = /^[^{]+\{\s*\[native \w/,
+
+       // Easily-parseable/retrievable ID or TAG or CLASS selectors
+       rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
+
+       rsibling = /[+~]/,
+
+       // CSS escapes
+       // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters
+       runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ),
+       funescape = function( _, escaped, escapedWhitespace ) {
+               var high = "0x" + escaped - 0x10000;
+               // NaN means non-codepoint
+               // Support: Firefox<24
+               // Workaround erroneous numeric interpretation of +"0x"
+               return high !== high || escapedWhitespace ?
+                       escaped :
+                       high < 0 ?
+                               // BMP codepoint
+                               String.fromCharCode( high + 0x10000 ) :
+                               // Supplemental Plane codepoint (surrogate pair)
+                               String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );
+       },
+
+       // CSS string/identifier serialization
+       // https://drafts.csswg.org/cssom/#common-serializing-idioms
+       rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,
+       fcssescape = function( ch, asCodePoint ) {
+               if ( asCodePoint ) {
+
+                       // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER
+                       if ( ch === "\0" ) {
+                               return "\uFFFD";
+                       }
+
+                       // Control characters and (dependent upon position) numbers get escaped as code points
+                       return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " ";
+               }
+
+               // Other potentially-special ASCII characters get backslash-escaped
+               return "\\" + ch;
+       },
+
+       // Used for iframes
+       // See setDocument()
+       // Removing the function wrapper causes a "Permission Denied"
+       // error in IE
+       unloadHandler = function() {
+               setDocument();
+       },
+
+       disabledAncestor = addCombinator(
+               function( elem ) {
+                       return elem.disabled === true && ("form" in elem || "label" in elem);
+               },
+               { dir: "parentNode", next: "legend" }
+       );
+
+// Optimize for push.apply( _, NodeList )
+try {
+       push.apply(
+               (arr = slice.call( preferredDoc.childNodes )),
+               preferredDoc.childNodes
+       );
+       // Support: Android<4.0
+       // Detect silently failing push.apply
+       arr[ preferredDoc.childNodes.length ].nodeType;
+} catch ( e ) {
+       push = { apply: arr.length ?
+
+               // Leverage slice if possible
+               function( target, els ) {
+                       push_native.apply( target, slice.call(els) );
+               } :
+
+               // Support: IE<9
+               // Otherwise append directly
+               function( target, els ) {
+                       var j = target.length,
+                               i = 0;
+                       // Can't trust NodeList.length
+                       while ( (target[j++] = els[i++]) ) {}
+                       target.length = j - 1;
+               }
+       };
+}
+
+function Sizzle( selector, context, results, seed ) {
+       var m, i, elem, nid, match, groups, newSelector,
+               newContext = context && context.ownerDocument,
+
+               // nodeType defaults to 9, since context defaults to document
+               nodeType = context ? context.nodeType : 9;
+
+       results = results || [];
+
+       // Return early from calls with invalid selector or context
+       if ( typeof selector !== "string" || !selector ||
+               nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {
+
+               return results;
+       }
+
+       // Try to shortcut find operations (as opposed to filters) in HTML documents
+       if ( !seed ) {
+
+               if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {
+                       setDocument( context );
+               }
+               context = context || document;
+
+               if ( documentIsHTML ) {
+
+                       // If the selector is sufficiently simple, try using a "get*By*" DOM method
+                       // (excepting DocumentFragment context, where the methods don't exist)
+                       if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) {
+
+                               // ID selector
+                               if ( (m = match[1]) ) {
+
+                                       // Document context
+                                       if ( nodeType === 9 ) {
+                                               if ( (elem = context.getElementById( m )) ) {
+
+                                                       // Support: IE, Opera, Webkit
+                                                       // TODO: identify versions
+                                                       // getElementById can match elements by name instead of ID
+                                                       if ( elem.id === m ) {
+                                                               results.push( elem );
+                                                               return results;
+                                                       }
+                                               } else {
+                                                       return results;
+                                               }
+
+                                       // Element context
+                                       } else {
+
+                                               // Support: IE, Opera, Webkit
+                                               // TODO: identify versions
+                                               // getElementById can match elements by name instead of ID
+                                               if ( newContext && (elem = newContext.getElementById( m )) &&
+                                                       contains( context, elem ) &&
+                                                       elem.id === m ) {
+
+                                                       results.push( elem );
+                                                       return results;
+                                               }
+                                       }
+
+                               // Type selector
+                               } else if ( match[2] ) {
+                                       push.apply( results, context.getElementsByTagName( selector ) );
+                                       return results;
+
+                               // Class selector
+                               } else if ( (m = match[3]) && support.getElementsByClassName &&
+                                       context.getElementsByClassName ) {
+
+                                       push.apply( results, context.getElementsByClassName( m ) );
+                                       return results;
+                               }
+                       }
+
+                       // Take advantage of querySelectorAll
+                       if ( support.qsa &&
+                               !compilerCache[ selector + " " ] &&
+                               (!rbuggyQSA || !rbuggyQSA.test( selector )) ) {
+
+                               if ( nodeType !== 1 ) {
+                                       newContext = context;
+                                       newSelector = selector;
+
+                               // qSA looks outside Element context, which is not what we want
+                               // Thanks to Andrew Dupont for this workaround technique
+                               // Support: IE <=8
+                               // Exclude object elements
+                               } else if ( context.nodeName.toLowerCase() !== "object" ) {
+
+                                       // Capture the context ID, setting it first if necessary
+                                       if ( (nid = context.getAttribute( "id" )) ) {
+                                               nid = nid.replace( rcssescape, fcssescape );
+                                       } else {
+                                               context.setAttribute( "id", (nid = expando) );
+                                       }
+
+                                       // Prefix every selector in the list
+                                       groups = tokenize( selector );
+                                       i = groups.length;
+                                       while ( i-- ) {
+                                               groups[i] = "#" + nid + " " + toSelector( groups[i] );
+                                       }
+                                       newSelector = groups.join( "," );
+
+                                       // Expand context for sibling selectors
+                                       newContext = rsibling.test( selector ) && testContext( context.parentNode ) ||
+                                               context;
+                               }
+
+                               if ( newSelector ) {
+                                       try {
+                                               push.apply( results,
+                                                       newContext.querySelectorAll( newSelector )
+                                               );
+                                               return results;
+                                       } catch ( qsaError ) {
+                                       } finally {
+                                               if ( nid === expando ) {
+                                                       context.removeAttribute( "id" );
+                                               }
+                                       }
+                               }
+                       }
+               }
+       }
+
+       // All others
+       return select( selector.replace( rtrim, "$1" ), context, results, seed );
+}
+
+/**
+ * Create key-value caches of limited size
+ * @returns {function(string, object)} Returns the Object data after storing it on itself with
+ *     property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)
+ *     deleting the oldest entry
+ */
+function createCache() {
+       var keys = [];
+
+       function cache( key, value ) {
+               // Use (key + " ") to avoid collision with native prototype properties (see Issue #157)
+               if ( keys.push( key + " " ) > Expr.cacheLength ) {
+                       // Only keep the most recent entries
+                       delete cache[ keys.shift() ];
+               }
+               return (cache[ key + " " ] = value);
+       }
+       return cache;
+}
+
+/**
+ * Mark a function for special use by Sizzle
+ * @param {Function} fn The function to mark
+ */
+function markFunction( fn ) {
+       fn[ expando ] = true;
+       return fn;
+}
+
+/**
+ * Support testing using an element
+ * @param {Function} fn Passed the created element and returns a boolean result
+ */
+function assert( fn ) {
+       var el = document.createElement("fieldset");
+
+       try {
+               return !!fn( el );
+       } catch (e) {
+               return false;
+       } finally {
+               // Remove from its parent by default
+               if ( el.parentNode ) {
+                       el.parentNode.removeChild( el );
+               }
+               // release memory in IE
+               el = null;
+       }
+}
+
+/**
+ * Adds the same handler for all of the specified attrs
+ * @param {String} attrs Pipe-separated list of attributes
+ * @param {Function} handler The method that will be applied
+ */
+function addHandle( attrs, handler ) {
+       var arr = attrs.split("|"),
+               i = arr.length;
+
+       while ( i-- ) {
+               Expr.attrHandle[ arr[i] ] = handler;
+       }
+}
+
+/**
+ * Checks document order of two siblings
+ * @param {Element} a
+ * @param {Element} b
+ * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b
+ */
+function siblingCheck( a, b ) {
+       var cur = b && a,
+               diff = cur && a.nodeType === 1 && b.nodeType === 1 &&
+                       a.sourceIndex - b.sourceIndex;
+
+       // Use IE sourceIndex if available on both nodes
+       if ( diff ) {
+               return diff;
+       }
+
+       // Check if b follows a
+       if ( cur ) {
+               while ( (cur = cur.nextSibling) ) {
+                       if ( cur === b ) {
+                               return -1;
+                       }
+               }
+       }
+
+       return a ? 1 : -1;
+}
+
+/**
+ * Returns a function to use in pseudos for input types
+ * @param {String} type
+ */
+function createInputPseudo( type ) {
+       return function( elem ) {
+               var name = elem.nodeName.toLowerCase();
+               return name === "input" && elem.type === type;
+       };
+}
+
+/**
+ * Returns a function to use in pseudos for buttons
+ * @param {String} type
+ */
+function createButtonPseudo( type ) {
+       return function( elem ) {
+               var name = elem.nodeName.toLowerCase();
+               return (name === "input" || name === "button") && elem.type === type;
+       };
+}
+
+/**
+ * Returns a function to use in pseudos for :enabled/:disabled
+ * @param {Boolean} disabled true for :disabled; false for :enabled
+ */
+function createDisabledPseudo( disabled ) {
+
+       // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable
+       return function( elem ) {
+
+               // Only certain elements can match :enabled or :disabled
+               // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled
+               // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled
+               if ( "form" in elem ) {
+
+                       // Check for inherited disabledness on relevant non-disabled elements:
+                       // * listed form-associated elements in a disabled fieldset
+                       //   https://html.spec.whatwg.org/multipage/forms.html#category-listed
+                       //   https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled
+                       // * option elements in a disabled optgroup
+                       //   https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled
+                       // All such elements have a "form" property.
+                       if ( elem.parentNode && elem.disabled === false ) {
+
+                               // Option elements defer to a parent optgroup if present
+                               if ( "label" in elem ) {
+                                       if ( "label" in elem.parentNode ) {
+                                               return elem.parentNode.disabled === disabled;
+                                       } else {
+                                               return elem.disabled === disabled;
+                                       }
+                               }
+
+                               // Support: IE 6 - 11
+                               // Use the isDisabled shortcut property to check for disabled fieldset ancestors
+                               return elem.isDisabled === disabled ||
+
+                                       // Where there is no isDisabled, check manually
+                                       /* jshint -W018 */
+                                       elem.isDisabled !== !disabled &&
+                                               disabledAncestor( elem ) === disabled;
+                       }
+
+                       return elem.disabled === disabled;
+
+               // Try to winnow out elements that can't be disabled before trusting the disabled property.
+               // Some victims get caught in our net (label, legend, menu, track), but it shouldn't
+               // even exist on them, let alone have a boolean value.
+               } else if ( "label" in elem ) {
+                       return elem.disabled === disabled;
+               }
+
+               // Remaining elements are neither :enabled nor :disabled
+               return false;
+       };
+}
+
+/**
+ * Returns a function to use in pseudos for positionals
+ * @param {Function} fn
+ */
+function createPositionalPseudo( fn ) {
+       return markFunction(function( argument ) {
+               argument = +argument;
+               return markFunction(function( seed, matches ) {
+                       var j,
+                               matchIndexes = fn( [], seed.length, argument ),
+                               i = matchIndexes.length;
+
+                       // Match elements found at the specified indexes
+                       while ( i-- ) {
+                               if ( seed[ (j = matchIndexes[i]) ] ) {
+                                       seed[j] = !(matches[j] = seed[j]);
+                               }
+                       }
+               });
+       });
+}
+
+/**
+ * Checks a node for validity as a Sizzle context
+ * @param {Element|Object=} context
+ * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value
+ */
+function testContext( context ) {
+       return context && typeof context.getElementsByTagName !== "undefined" && context;
+}
+
+// Expose support vars for convenience
+support = Sizzle.support = {};
+
+/**
+ * Detects XML nodes
+ * @param {Element|Object} elem An element or a document
+ * @returns {Boolean} True iff elem is a non-HTML XML node
+ */
+isXML = Sizzle.isXML = function( elem ) {
+       // documentElement is verified for cases where it doesn't yet exist
+       // (such as loading iframes in IE - #4833)
+       var documentElement = elem && (elem.ownerDocument || elem).documentElement;
+       return documentElement ? documentElement.nodeName !== "HTML" : false;
+};
+
+/**
+ * Sets document-related variables once based on the current document
+ * @param {Element|Object} [doc] An element or document object to use to set the document
+ * @returns {Object} Returns the current document
+ */
+setDocument = Sizzle.setDocument = function( node ) {
+       var hasCompare, subWindow,
+               doc = node ? node.ownerDocument || node : preferredDoc;
+
+       // Return early if doc is invalid or already selected
+       if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {
+               return document;
+       }
+
+       // Update global variables
+       document = doc;
+       docElem = document.documentElement;
+       documentIsHTML = !isXML( document );
+
+       // Support: IE 9-11, Edge
+       // Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936)
+       if ( preferredDoc !== document &&
+               (subWindow = document.defaultView) && subWindow.top !== subWindow ) {
+
+               // Support: IE 11, Edge
+               if ( subWindow.addEventListener ) {
+                       subWindow.addEventListener( "unload", unloadHandler, false );
+
+               // Support: IE 9 - 10 only
+               } else if ( subWindow.attachEvent ) {
+                       subWindow.attachEvent( "onunload", unloadHandler );
+               }
+       }
+
+       /* Attributes
+       ---------------------------------------------------------------------- */
+
+       // Support: IE<8
+       // Verify that getAttribute really returns attributes and not properties
+       // (excepting IE8 booleans)
+       support.attributes = assert(function( el ) {
+               el.className = "i";
+               return !el.getAttribute("className");
+       });
+
+       /* getElement(s)By*
+       ---------------------------------------------------------------------- */
+
+       // Check if getElementsByTagName("*") returns only elements
+       support.getElementsByTagName = assert(function( el ) {
+               el.appendChild( document.createComment("") );
+               return !el.getElementsByTagName("*").length;
+       });
+
+       // Support: IE<9
+       support.getElementsByClassName = rnative.test( document.getElementsByClassName );
+
+       // Support: IE<10
+       // Check if getElementById returns elements by name
+       // The broken getElementById methods don't pick up programmatically-set names,
+       // so use a roundabout getElementsByName test
+       support.getById = assert(function( el ) {
+               docElem.appendChild( el ).id = expando;
+               return !document.getElementsByName || !document.getElementsByName( expando ).length;
+       });
+
+       // ID filter and find
+       if ( support.getById ) {
+               Expr.filter["ID"] = function( id ) {
+                       var attrId = id.replace( runescape, funescape );
+                       return function( elem ) {
+                               return elem.getAttribute("id") === attrId;
+                       };
+               };
+               Expr.find["ID"] = function( id, context ) {
+                       if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
+                               var elem = context.getElementById( id );
+                               return elem ? [ elem ] : [];
+                       }
+               };
+       } else {
+               Expr.filter["ID"] =  function( id ) {
+                       var attrId = id.replace( runescape, funescape );
+                       return function( elem ) {
+                               var node = typeof elem.getAttributeNode !== "undefined" &&
+                                       elem.getAttributeNode("id");
+                               return node && node.value === attrId;
+                       };
+               };
+
+               // Support: IE 6 - 7 only
+               // getElementById is not reliable as a find shortcut
+               Expr.find["ID"] = function( id, context ) {
+                       if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
+                               var node, i, elems,
+                                       elem = context.getElementById( id );
+
+                               if ( elem ) {
+
+                                       // Verify the id attribute
+                                       node = elem.getAttributeNode("id");
+                                       if ( node && node.value === id ) {
+                                               return [ elem ];
+                                       }
+
+                                       // Fall back on getElementsByName
+                                       elems = context.getElementsByName( id );
+                                       i = 0;
+                                       while ( (elem = elems[i++]) ) {
+                                               node = elem.getAttributeNode("id");
+                                               if ( node && node.value === id ) {
+                                                       return [ elem ];
+                                               }
+                                       }
+                               }
+
+                               return [];
+                       }
+               };
+       }
+
+       // Tag
+       Expr.find["TAG"] = support.getElementsByTagName ?
+               function( tag, context ) {
+                       if ( typeof context.getElementsByTagName !== "undefined" ) {
+                               return context.getElementsByTagName( tag );
+
+                       // DocumentFragment nodes don't have gEBTN
+                       } else if ( support.qsa ) {
+                               return context.querySelectorAll( tag );
+                       }
+               } :
+
+               function( tag, context ) {
+                       var elem,
+                               tmp = [],
+                               i = 0,
+                               // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too
+                               results = context.getElementsByTagName( tag );
+
+                       // Filter out possible comments
+                       if ( tag === "*" ) {
+                               while ( (elem = results[i++]) ) {
+                                       if ( elem.nodeType === 1 ) {
+                                               tmp.push( elem );
+                                       }
+                               }
+
+                               return tmp;
+                       }
+                       return results;
+               };
+
+       // Class
+       Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) {
+               if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) {
+                       return context.getElementsByClassName( className );
+               }
+       };
+
+       /* QSA/matchesSelector
+       ---------------------------------------------------------------------- */
+
+       // QSA and matchesSelector support
+
+       // matchesSelector(:active) reports false when true (IE9/Opera 11.5)
+       rbuggyMatches = [];
+
+       // qSa(:focus) reports false when true (Chrome 21)
+       // We allow this because of a bug in IE8/9 that throws an error
+       // whenever `document.activeElement` is accessed on an iframe
+       // So, we allow :focus to pass through QSA all the time to avoid the IE error
+       // See https://bugs.jquery.com/ticket/13378
+       rbuggyQSA = [];
+
+       if ( (support.qsa = rnative.test( document.querySelectorAll )) ) {
+               // Build QSA regex
+               // Regex strategy adopted from Diego Perini
+               assert(function( el ) {
+                       // Select is set to empty string on purpose
+                       // This is to test IE's treatment of not explicitly
+                       // setting a boolean content attribute,
+                       // since its presence should be enough
+                       // https://bugs.jquery.com/ticket/12359
+                       docElem.appendChild( el ).innerHTML = "<a id='" + expando + "'></a>" +
+                               "<select id='" + expando + "-\r\\' msallowcapture=''>" +
+                               "<option selected=''></option></select>";
+
+                       // Support: IE8, Opera 11-12.16
+                       // Nothing should be selected when empty strings follow ^= or $= or *=
+                       // The test attribute must be unknown in Opera but "safe" for WinRT
+                       // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section
+                       if ( el.querySelectorAll("[msallowcapture^='']").length ) {
+                               rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" );
+                       }
+
+                       // Support: IE8
+                       // Boolean attributes and "value" are not treated correctly
+                       if ( !el.querySelectorAll("[selected]").length ) {
+                               rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" );
+                       }
+
+                       // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+
+                       if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) {
+                               rbuggyQSA.push("~=");
+                       }
+
+                       // Webkit/Opera - :checked should return selected option elements
+                       // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
+                       // IE8 throws error here and will not see later tests
+                       if ( !el.querySelectorAll(":checked").length ) {
+                               rbuggyQSA.push(":checked");
+                       }
+
+                       // Support: Safari 8+, iOS 8+
+                       // https://bugs.webkit.org/show_bug.cgi?id=136851
+                       // In-page `selector#id sibling-combinator selector` fails
+                       if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) {
+                               rbuggyQSA.push(".#.+[+~]");
+                       }
+               });
+
+               assert(function( el ) {
+                       el.innerHTML = "<a href='' disabled='disabled'></a>" +
+                               "<select disabled='disabled'><option/></select>";
+
+                       // Support: Windows 8 Native Apps
+                       // The type and name attributes are restricted during .innerHTML assignment
+                       var input = document.createElement("input");
+                       input.setAttribute( "type", "hidden" );
+                       el.appendChild( input ).setAttribute( "name", "D" );
+
+                       // Support: IE8
+                       // Enforce case-sensitivity of name attribute
+                       if ( el.querySelectorAll("[name=d]").length ) {
+                               rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" );
+                       }
+
+                       // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)
+                       // IE8 throws error here and will not see later tests
+                       if ( el.querySelectorAll(":enabled").length !== 2 ) {
+                               rbuggyQSA.push( ":enabled", ":disabled" );
+                       }
+
+                       // Support: IE9-11+
+                       // IE's :disabled selector does not pick up the children of disabled fieldsets
+                       docElem.appendChild( el ).disabled = true;
+                       if ( el.querySelectorAll(":disabled").length !== 2 ) {
+                               rbuggyQSA.push( ":enabled", ":disabled" );
+                       }
+
+                       // Opera 10-11 does not throw on post-comma invalid pseudos
+                       el.querySelectorAll("*,:x");
+                       rbuggyQSA.push(",.*:");
+               });
+       }
+
+       if ( (support.matchesSelector = rnative.test( (matches = docElem.matches ||
+               docElem.webkitMatchesSelector ||
+               docElem.mozMatchesSelector ||
+               docElem.oMatchesSelector ||
+               docElem.msMatchesSelector) )) ) {
+
+               assert(function( el ) {
+                       // Check to see if it's possible to do matchesSelector
+                       // on a disconnected node (IE 9)
+                       support.disconnectedMatch = matches.call( el, "*" );
+
+                       // This should fail with an exception
+                       // Gecko does not error, returns false instead
+                       matches.call( el, "[s!='']:x" );
+                       rbuggyMatches.push( "!=", pseudos );
+               });
+       }
+
+       rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") );
+       rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") );
+
+       /* Contains
+       ---------------------------------------------------------------------- */
+       hasCompare = rnative.test( docElem.compareDocumentPosition );
+
+       // Element contains another
+       // Purposefully self-exclusive
+       // As in, an element does not contain itself
+       contains = hasCompare || rnative.test( docElem.contains ) ?
+               function( a, b ) {
+                       var adown = a.nodeType === 9 ? a.documentElement : a,
+                               bup = b && b.parentNode;
+                       return a === bup || !!( bup && bup.nodeType === 1 && (
+                               adown.contains ?
+                                       adown.contains( bup ) :
+                                       a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16
+                       ));
+               } :
+               function( a, b ) {
+                       if ( b ) {
+                               while ( (b = b.parentNode) ) {
+                                       if ( b === a ) {
+                                               return true;
+                                       }
+                               }
+                       }
+                       return false;
+               };
+
+       /* Sorting
+       ---------------------------------------------------------------------- */
+
+       // Document order sorting
+       sortOrder = hasCompare ?
+       function( a, b ) {
+
+               // Flag for duplicate removal
+               if ( a === b ) {
+                       hasDuplicate = true;
+                       return 0;
+               }
+
+               // Sort on method existence if only one input has compareDocumentPosition
+               var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;
+               if ( compare ) {
+                       return compare;
+               }
+
+               // Calculate position if both inputs belong to the same document
+               compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?
+                       a.compareDocumentPosition( b ) :
+
+                       // Otherwise we know they are disconnected
+                       1;
+
+               // Disconnected nodes
+               if ( compare & 1 ||
+                       (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {
+
+                       // Choose the first element that is related to our preferred document
+                       if ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) {
+                               return -1;
+                       }
+                       if ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) {
+                               return 1;
+                       }
+
+                       // Maintain original order
+                       return sortInput ?
+                               ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
+                               0;
+               }
+
+               return compare & 4 ? -1 : 1;
+       } :
+       function( a, b ) {
+               // Exit early if the nodes are identical
+               if ( a === b ) {
+                       hasDuplicate = true;
+                       return 0;
+               }
+
+               var cur,
+                       i = 0,
+                       aup = a.parentNode,
+                       bup = b.parentNode,
+                       ap = [ a ],
+                       bp = [ b ];
+
+               // Parentless nodes are either documents or disconnected
+               if ( !aup || !bup ) {
+                       return a === document ? -1 :
+                               b === document ? 1 :
+                               aup ? -1 :
+                               bup ? 1 :
+                               sortInput ?
+                               ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
+                               0;
+
+               // If the nodes are siblings, we can do a quick check
+               } else if ( aup === bup ) {
+                       return siblingCheck( a, b );
+               }
+
+               // Otherwise we need full lists of their ancestors for comparison
+               cur = a;
+               while ( (cur = cur.parentNode) ) {
+                       ap.unshift( cur );
+               }
+               cur = b;
+               while ( (cur = cur.parentNode) ) {
+                       bp.unshift( cur );
+               }
+
+               // Walk down the tree looking for a discrepancy
+               while ( ap[i] === bp[i] ) {
+                       i++;
+               }
+
+               return i ?
+                       // Do a sibling check if the nodes have a common ancestor
+                       siblingCheck( ap[i], bp[i] ) :
+
+                       // Otherwise nodes in our document sort first
+                       ap[i] === preferredDoc ? -1 :
+                       bp[i] === preferredDoc ? 1 :
+                       0;
+       };
+
+       return document;
+};
+
+Sizzle.matches = function( expr, elements ) {
+       return Sizzle( expr, null, null, elements );
+};
+
+Sizzle.matchesSelector = function( elem, expr ) {
+       // Set document vars if needed
+       if ( ( elem.ownerDocument || elem ) !== document ) {
+               setDocument( elem );
+       }
+
+       // Make sure that attribute selectors are quoted
+       expr = expr.replace( rattributeQuotes, "='$1']" );
+
+       if ( support.matchesSelector && documentIsHTML &&
+               !compilerCache[ expr + " " ] &&
+               ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&
+               ( !rbuggyQSA     || !rbuggyQSA.test( expr ) ) ) {
+
+               try {
+                       var ret = matches.call( elem, expr );
+
+                       // IE 9's matchesSelector returns false on disconnected nodes
+                       if ( ret || support.disconnectedMatch ||
+                                       // As well, disconnected nodes are said to be in a document
+                                       // fragment in IE 9
+                                       elem.document && elem.document.nodeType !== 11 ) {
+                               return ret;
+                       }
+               } catch (e) {}
+       }
+
+       return Sizzle( expr, document, null, [ elem ] ).length > 0;
+};
+
+Sizzle.contains = function( context, elem ) {
+       // Set document vars if needed
+       if ( ( context.ownerDocument || context ) !== document ) {
+               setDocument( context );
+       }
+       return contains( context, elem );
+};
+
+Sizzle.attr = function( elem, name ) {
+       // Set document vars if needed
+       if ( ( elem.ownerDocument || elem ) !== document ) {
+               setDocument( elem );
+       }
+
+       var fn = Expr.attrHandle[ name.toLowerCase() ],
+               // Don't get fooled by Object.prototype properties (jQuery #13807)
+               val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?
+                       fn( elem, name, !documentIsHTML ) :
+                       undefined;
+
+       return val !== undefined ?
+               val :
+               support.attributes || !documentIsHTML ?
+                       elem.getAttribute( name ) :
+                       (val = elem.getAttributeNode(name)) && val.specified ?
+                               val.value :
+                               null;
+};
+
+Sizzle.escape = function( sel ) {
+       return (sel + "").replace( rcssescape, fcssescape );
+};
+
+Sizzle.error = function( msg ) {
+       throw new Error( "Syntax error, unrecognized expression: " + msg );
+};
+
+/**
+ * Document sorting and removing duplicates
+ * @param {ArrayLike} results
+ */
+Sizzle.uniqueSort = function( results ) {
+       var elem,
+               duplicates = [],
+               j = 0,
+               i = 0;
+
+       // Unless we *know* we can detect duplicates, assume their presence
+       hasDuplicate = !support.detectDuplicates;
+       sortInput = !support.sortStable && results.slice( 0 );
+       results.sort( sortOrder );
+
+       if ( hasDuplicate ) {
+               while ( (elem = results[i++]) ) {
+                       if ( elem === results[ i ] ) {
+                               j = duplicates.push( i );
+                       }
+               }
+               while ( j-- ) {
+                       results.splice( duplicates[ j ], 1 );
+               }
+       }
+
+       // Clear input after sorting to release objects
+       // See https://github.com/jquery/sizzle/pull/225
+       sortInput = null;
+
+       return results;
+};
+
+/**
+ * Utility function for retrieving the text value of an array of DOM nodes
+ * @param {Array|Element} elem
+ */
+getText = Sizzle.getText = function( elem ) {
+       var node,
+               ret = "",
+               i = 0,
+               nodeType = elem.nodeType;
+
+       if ( !nodeType ) {
+               // If no nodeType, this is expected to be an array
+               while ( (node = elem[i++]) ) {
+                       // Do not traverse comment nodes
+                       ret += getText( node );
+               }
+       } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {
+               // Use textContent for elements
+               // innerText usage removed for consistency of new lines (jQuery #11153)
+               if ( typeof elem.textContent === "string" ) {
+                       return elem.textContent;
+               } else {
+                       // Traverse its children
+                       for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
+                               ret += getText( elem );
+                       }
+               }
+       } else if ( nodeType === 3 || nodeType === 4 ) {
+               return elem.nodeValue;
+       }
+       // Do not include comment or processing instruction nodes
+
+       return ret;
+};
+
+Expr = Sizzle.selectors = {
+
+       // Can be adjusted by the user
+       cacheLength: 50,
+
+       createPseudo: markFunction,
+
+       match: matchExpr,
+
+       attrHandle: {},
+
+       find: {},
+
+       relative: {
+               ">": { dir: "parentNode", first: true },
+               " ": { dir: "parentNode" },
+               "+": { dir: "previousSibling", first: true },
+               "~": { dir: "previousSibling" }
+       },
+
+       preFilter: {
+               "ATTR": function( match ) {
+                       match[1] = match[1].replace( runescape, funescape );
+
+                       // Move the given value to match[3] whether quoted or unquoted
+                       match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape );
+
+                       if ( match[2] === "~=" ) {
+                               match[3] = " " + match[3] + " ";
+                       }
+
+                       return match.slice( 0, 4 );
+               },
+
+               "CHILD": function( match ) {
+                       /* matches from matchExpr["CHILD"]
+                               1 type (only|nth|...)
+                               2 what (child|of-type)
+                               3 argument (even|odd|\d*|\d*n([+-]\d+)?|...)
+                               4 xn-component of xn+y argument ([+-]?\d*n|)
+                               5 sign of xn-component
+                               6 x of xn-component
+                               7 sign of y-component
+                               8 y of y-component
+                       */
+                       match[1] = match[1].toLowerCase();
+
+                       if ( match[1].slice( 0, 3 ) === "nth" ) {
+                               // nth-* requires argument
+                               if ( !match[3] ) {
+                                       Sizzle.error( match[0] );
+                               }
+
+                               // numeric x and y parameters for Expr.filter.CHILD
+                               // remember that false/true cast respectively to 0/1
+                               match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) );
+                               match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" );
+
+                       // other types prohibit arguments
+                       } else if ( match[3] ) {
+                               Sizzle.error( match[0] );
+                       }
+
+                       return match;
+               },
+
+               "PSEUDO": function( match ) {
+                       var excess,
+                               unquoted = !match[6] && match[2];
+
+                       if ( matchExpr["CHILD"].test( match[0] ) ) {
+                               return null;
+                       }
+
+                       // Accept quoted arguments as-is
+                       if ( match[3] ) {
+                               match[2] = match[4] || match[5] || "";
+
+                       // Strip excess characters from unquoted arguments
+                       } else if ( unquoted && rpseudo.test( unquoted ) &&
+                               // Get excess from tokenize (recursively)
+                               (excess = tokenize( unquoted, true )) &&
+                               // advance to the next closing parenthesis
+                               (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) {
+
+                               // excess is a negative index
+                               match[0] = match[0].slice( 0, excess );
+                               match[2] = unquoted.slice( 0, excess );
+                       }
+
+                       // Return only captures needed by the pseudo filter method (type and argument)
+                       return match.slice( 0, 3 );
+               }
+       },
+
+       filter: {
+
+               "TAG": function( nodeNameSelector ) {
+                       var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();
+                       return nodeNameSelector === "*" ?
+                               function() { return true; } :
+                               function( elem ) {
+                                       return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;
+                               };
+               },
+
+               "CLASS": function( className ) {
+                       var pattern = classCache[ className + " " ];
+
+                       return pattern ||
+                               (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) &&
+                               classCache( className, function( elem ) {
+                                       return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" );
+                               });
+               },
+
+               "ATTR": function( name, operator, check ) {
+                       return function( elem ) {
+                               var result = Sizzle.attr( elem, name );
+
+                               if ( result == null ) {
+                                       return operator === "!=";
+                               }
+                               if ( !operator ) {
+                                       return true;
+                               }
+
+                               result += "";
+
+                               return operator === "=" ? result === check :
+                                       operator === "!=" ? result !== check :
+                                       operator === "^=" ? check && result.indexOf( check ) === 0 :
+                                       operator === "*=" ? check && result.indexOf( check ) > -1 :
+                                       operator === "$=" ? check && result.slice( -check.length ) === check :
+                                       operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 :
+                                       operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" :
+                                       false;
+                       };
+               },
+
+               "CHILD": function( type, what, argument, first, last ) {
+                       var simple = type.slice( 0, 3 ) !== "nth",
+                               forward = type.slice( -4 ) !== "last",
+                               ofType = what === "of-type";
+
+                       return first === 1 && last === 0 ?
+
+                               // Shortcut for :nth-*(n)
+                               function( elem ) {
+                                       return !!elem.parentNode;
+                               } :
+
+                               function( elem, context, xml ) {
+                                       var cache, uniqueCache, outerCache, node, nodeIndex, start,
+                                               dir = simple !== forward ? "nextSibling" : "previousSibling",
+                                               parent = elem.parentNode,
+                                               name = ofType && elem.nodeName.toLowerCase(),
+                                               useCache = !xml && !ofType,
+                                               diff = false;
+
+                                       if ( parent ) {
+
+                                               // :(first|last|only)-(child|of-type)
+                                               if ( simple ) {
+                                                       while ( dir ) {
+                                                               node = elem;
+                                                               while ( (node = node[ dir ]) ) {
+                                                                       if ( ofType ?
+                                                                               node.nodeName.toLowerCase() === name :
+                                                                               node.nodeType === 1 ) {
+
+                                                                               return false;
+                                                                       }
+                                                               }
+                                                               // Reverse direction for :only-* (if we haven't yet done so)
+                                                               start = dir = type === "only" && !start && "nextSibling";
+                                                       }
+                                                       return true;
+                                               }
+
+                                               start = [ forward ? parent.firstChild : parent.lastChild ];
+
+                                               // non-xml :nth-child(...) stores cache data on `parent`
+                                               if ( forward && useCache ) {
+
+                                                       // Seek `elem` from a previously-cached index
+
+                                                       // ...in a gzip-friendly way
+                                                       node = parent;
+                                                       outerCache = node[ expando ] || (node[ expando ] = {});
+
+                                                       // Support: IE <9 only
+                                                       // Defend against cloned attroperties (jQuery gh-1709)
+                                                       uniqueCache = outerCache[ node.uniqueID ] ||
+                                                               (outerCache[ node.uniqueID ] = {});
+
+                                                       cache = uniqueCache[ type ] || [];
+                                                       nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
+                                                       diff = nodeIndex && cache[ 2 ];
+                                                       node = nodeIndex && parent.childNodes[ nodeIndex ];
+
+                                                       while ( (node = ++nodeIndex && node && node[ dir ] ||
+
+                                                               // Fallback to seeking `elem` from the start
+                                                               (diff = nodeIndex = 0) || start.pop()) ) {
+
+                                                               // When found, cache indexes on `parent` and break
+                                                               if ( node.nodeType === 1 && ++diff && node === elem ) {
+                                                                       uniqueCache[ type ] = [ dirruns, nodeIndex, diff ];
+                                                                       break;
+                                                               }
+                                                       }
+
+                                               } else {
+                                                       // Use previously-cached element index if available
+                                                       if ( useCache ) {
+                                                               // ...in a gzip-friendly way
+                                                               node = elem;
+                                                               outerCache = node[ expando ] || (node[ expando ] = {});
+
+                                                               // Support: IE <9 only
+                                                               // Defend against cloned attroperties (jQuery gh-1709)
+                                                               uniqueCache = outerCache[ node.uniqueID ] ||
+                                                                       (outerCache[ node.uniqueID ] = {});
+
+                                                               cache = uniqueCache[ type ] || [];
+                                                               nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
+                                                               diff = nodeIndex;
+                                                       }
+
+                                                       // xml :nth-child(...)
+                                                       // or :nth-last-child(...) or :nth(-last)?-of-type(...)
+                                                       if ( diff === false ) {
+                                                               // Use the same loop as above to seek `elem` from the start
+                                                               while ( (node = ++nodeIndex && node && node[ dir ] ||
+                                                                       (diff = nodeIndex = 0) || start.pop()) ) {
+
+                                                                       if ( ( ofType ?
+                                                                               node.nodeName.toLowerCase() === name :
+                                                                               node.nodeType === 1 ) &&
+                                                                               ++diff ) {
+
+                                                                               // Cache the index of each encountered element
+                                                                               if ( useCache ) {
+                                                                                       outerCache = node[ expando ] || (node[ expando ] = {});
+
+                                                                                       // Support: IE <9 only
+                                                                                       // Defend against cloned attroperties (jQuery gh-1709)
+                                                                                       uniqueCache = outerCache[ node.uniqueID ] ||
+                                                                                               (outerCache[ node.uniqueID ] = {});
+
+                                                                                       uniqueCache[ type ] = [ dirruns, diff ];
+                                                                               }
+
+                                                                               if ( node === elem ) {
+                                                                                       break;
+                                                                               }
+                                                                       }
+                                                               }
+                                                       }
+                                               }
+
+                                               // Incorporate the offset, then check against cycle size
+                                               diff -= last;
+                                               return diff === first || ( diff % first === 0 && diff / first >= 0 );
+                                       }
+                               };
+               },
+
+               "PSEUDO": function( pseudo, argument ) {
+                       // pseudo-class names are case-insensitive
+                       // http://www.w3.org/TR/selectors/#pseudo-classes
+                       // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters
+                       // Remember that setFilters inherits from pseudos
+                       var args,
+                               fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||
+                                       Sizzle.error( "unsupported pseudo: " + pseudo );
+
+                       // The user may use createPseudo to indicate that
+                       // arguments are needed to create the filter function
+                       // just as Sizzle does
+                       if ( fn[ expando ] ) {
+                               return fn( argument );
+                       }
+
+                       // But maintain support for old signatures
+                       if ( fn.length > 1 ) {
+                               args = [ pseudo, pseudo, "", argument ];
+                               return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?
+                                       markFunction(function( seed, matches ) {
+                                               var idx,
+                                                       matched = fn( seed, argument ),
+                                                       i = matched.length;
+                                               while ( i-- ) {
+                                                       idx = indexOf( seed, matched[i] );
+                                                       seed[ idx ] = !( matches[ idx ] = matched[i] );
+                                               }
+                                       }) :
+                                       function( elem ) {
+                                               return fn( elem, 0, args );
+                                       };
+                       }
+
+                       return fn;
+               }
+       },
+
+       pseudos: {
+               // Potentially complex pseudos
+               "not": markFunction(function( selector ) {
+                       // Trim the selector passed to compile
+                       // to avoid treating leading and trailing
+                       // spaces as combinators
+                       var input = [],
+                               results = [],
+                               matcher = compile( selector.replace( rtrim, "$1" ) );
+
+                       return matcher[ expando ] ?
+                               markFunction(function( seed, matches, context, xml ) {
+                                       var elem,
+                                               unmatched = matcher( seed, null, xml, [] ),
+                                               i = seed.length;
+
+                                       // Match elements unmatched by `matcher`
+                                       while ( i-- ) {
+                                               if ( (elem = unmatched[i]) ) {
+                                                       seed[i] = !(matches[i] = elem);
+                                               }
+                                       }
+                               }) :
+                               function( elem, context, xml ) {
+                                       input[0] = elem;
+                                       matcher( input, null, xml, results );
+                                       // Don't keep the element (issue #299)
+                                       input[0] = null;
+                                       return !results.pop();
+                               };
+               }),
+
+               "has": markFunction(function( selector ) {
+                       return function( elem ) {
+                               return Sizzle( selector, elem ).length > 0;
+                       };
+               }),
+
+               "contains": markFunction(function( text ) {
+                       text = text.replace( runescape, funescape );
+                       return function( elem ) {
+                               return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;
+                       };
+               }),
+
+               // "Whether an element is represented by a :lang() selector
+               // is based solely on the element's language value
+               // being equal to the identifier C,
+               // or beginning with the identifier C immediately followed by "-".
+               // The matching of C against the element's language value is performed case-insensitively.
+               // The identifier C does not have to be a valid language name."
+               // http://www.w3.org/TR/selectors/#lang-pseudo
+               "lang": markFunction( function( lang ) {
+                       // lang value must be a valid identifier
+                       if ( !ridentifier.test(lang || "") ) {
+                               Sizzle.error( "unsupported lang: " + lang );
+                       }
+                       lang = lang.replace( runescape, funescape ).toLowerCase();
+                       return function( elem ) {
+                               var elemLang;
+                               do {
+                                       if ( (elemLang = documentIsHTML ?
+                                               elem.lang :
+                                               elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) {
+
+                                               elemLang = elemLang.toLowerCase();
+                                               return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0;
+                                       }
+                               } while ( (elem = elem.parentNode) && elem.nodeType === 1 );
+                               return false;
+                       };
+               }),
+
+               // Miscellaneous
+               "target": function( elem ) {
+                       var hash = window.location && window.location.hash;
+                       return hash && hash.slice( 1 ) === elem.id;
+               },
+
+               "root": function( elem ) {
+                       return elem === docElem;
+               },
+
+               "focus": function( elem ) {
+                       return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);
+               },
+
+               // Boolean properties
+               "enabled": createDisabledPseudo( false ),
+               "disabled": createDisabledPseudo( true ),
+
+               "checked": function( elem ) {
+                       // In CSS3, :checked should return both checked and selected elements
+                       // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
+                       var nodeName = elem.nodeName.toLowerCase();
+                       return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected);
+               },
+
+               "selected": function( elem ) {
+                       // Accessing this property makes selected-by-default
+                       // options in Safari work properly
+                       if ( elem.parentNode ) {
+                               elem.parentNode.selectedIndex;
+                       }
+
+                       return elem.selected === true;
+               },
+
+               // Contents
+               "empty": function( elem ) {
+                       // http://www.w3.org/TR/selectors/#empty-pseudo
+                       // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),
+                       //   but not by others (comment: 8; processing instruction: 7; etc.)
+                       // nodeType < 6 works because attributes (2) do not appear as children
+                       for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
+                               if ( elem.nodeType < 6 ) {
+                                       return false;
+                               }
+                       }
+                       return true;
+               },
+
+               "parent": function( elem ) {
+                       return !Expr.pseudos["empty"]( elem );
+               },
+
+               // Element/input types
+               "header": function( elem ) {
+                       return rheader.test( elem.nodeName );
+               },
+
+               "input": function( elem ) {
+                       return rinputs.test( elem.nodeName );
+               },
+
+               "button": function( elem ) {
+                       var name = elem.nodeName.toLowerCase();
+                       return name === "input" && elem.type === "button" || name === "button";
+               },
+
+               "text": function( elem ) {
+                       var attr;
+                       return elem.nodeName.toLowerCase() === "input" &&
+                               elem.type === "text" &&
+
+                               // Support: IE<8
+                               // New HTML5 attribute values (e.g., "search") appear with elem.type === "text"
+                               ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" );
+               },
+
+               // Position-in-collection
+               "first": createPositionalPseudo(function() {
+                       return [ 0 ];
+               }),
+
+               "last": createPositionalPseudo(function( matchIndexes, length ) {
+                       return [ length - 1 ];
+               }),
+
+               "eq": createPositionalPseudo(function( matchIndexes, length, argument ) {
+                       return [ argument < 0 ? argument + length : argument ];
+               }),
+
+               "even": createPositionalPseudo(function( matchIndexes, length ) {
+                       var i = 0;
+                       for ( ; i < length; i += 2 ) {
+                               matchIndexes.push( i );
+                       }
+                       return matchIndexes;
+               }),
+
+               "odd": createPositionalPseudo(function( matchIndexes, length ) {
+                       var i = 1;
+                       for ( ; i < length; i += 2 ) {
+                               matchIndexes.push( i );
+                       }
+                       return matchIndexes;
+               }),
+
+               "lt": createPositionalPseudo(function( matchIndexes, length, argument ) {
+                       var i = argument < 0 ? argument + length : argument;
+                       for ( ; --i >= 0; ) {
+                               matchIndexes.push( i );
+                       }
+                       return matchIndexes;
+               }),
+
+               "gt": createPositionalPseudo(function( matchIndexes, length, argument ) {
+                       var i = argument < 0 ? argument + length : argument;
+                       for ( ; ++i < length; ) {
+                               matchIndexes.push( i );
+                       }
+                       return matchIndexes;
+               })
+       }
+};
+
+Expr.pseudos["nth"] = Expr.pseudos["eq"];
+
+// Add button/input type pseudos
+for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {
+       Expr.pseudos[ i ] = createInputPseudo( i );
+}
+for ( i in { submit: true, reset: true } ) {
+       Expr.pseudos[ i ] = createButtonPseudo( i );
+}
+
+// Easy API for creating new setFilters
+function setFilters() {}
+setFilters.prototype = Expr.filters = Expr.pseudos;
+Expr.setFilters = new setFilters();
+
+tokenize = Sizzle.tokenize = function( selector, parseOnly ) {
+       var matched, match, tokens, type,
+               soFar, groups, preFilters,
+               cached = tokenCache[ selector + " " ];
+
+       if ( cached ) {
+               return parseOnly ? 0 : cached.slice( 0 );
+       }
+
+       soFar = selector;
+       groups = [];
+       preFilters = Expr.preFilter;
+
+       while ( soFar ) {
+
+               // Comma and first run
+               if ( !matched || (match = rcomma.exec( soFar )) ) {
+                       if ( match ) {
+                               // Don't consume trailing commas as valid
+                               soFar = soFar.slice( match[0].length ) || soFar;
+                       }
+                       groups.push( (tokens = []) );
+               }
+
+               matched = false;
+
+               // Combinators
+               if ( (match = rcombinators.exec( soFar )) ) {
+                       matched = match.shift();
+                       tokens.push({
+                               value: matched,
+                               // Cast descendant combinators to space
+                               type: match[0].replace( rtrim, " " )
+                       });
+                       soFar = soFar.slice( matched.length );
+               }
+
+               // Filters
+               for ( type in Expr.filter ) {
+                       if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||
+                               (match = preFilters[ type ]( match ))) ) {
+                               matched = match.shift();
+                               tokens.push({
+                                       value: matched,
+                                       type: type,
+                                       matches: match
+                               });
+                               soFar = soFar.slice( matched.length );
+                       }
+               }
+
+               if ( !matched ) {
+                       break;
+               }
+       }
+
+       // Return the length of the invalid excess
+       // if we're just parsing
+       // Otherwise, throw an error or return tokens
+       return parseOnly ?
+               soFar.length :
+               soFar ?
+                       Sizzle.error( selector ) :
+                       // Cache the tokens
+                       tokenCache( selector, groups ).slice( 0 );
+};
+
+function toSelector( tokens ) {
+       var i = 0,
+               len = tokens.length,
+               selector = "";
+       for ( ; i < len; i++ ) {
+               selector += tokens[i].value;
+       }
+       return selector;
+}
+
+function addCombinator( matcher, combinator, base ) {
+       var dir = combinator.dir,
+               skip = combinator.next,
+               key = skip || dir,
+               checkNonElements = base && key === "parentNode",
+               doneName = done++;
+
+       return combinator.first ?
+               // Check against closest ancestor/preceding element
+               function( elem, context, xml ) {
+                       while ( (elem = elem[ dir ]) ) {
+                               if ( elem.nodeType === 1 || checkNonElements ) {
+                                       return matcher( elem, context, xml );
+                               }
+                       }
+                       return false;
+               } :
+
+               // Check against all ancestor/preceding elements
+               function( elem, context, xml ) {
+                       var oldCache, uniqueCache, outerCache,
+                               newCache = [ dirruns, doneName ];
+
+                       // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching
+                       if ( xml ) {
+                               while ( (elem = elem[ dir ]) ) {
+                                       if ( elem.nodeType === 1 || checkNonElements ) {
+                                               if ( matcher( elem, context, xml ) ) {
+                                                       return true;
+                                               }
+                                       }
+                               }
+                       } else {
+                               while ( (elem = elem[ dir ]) ) {
+                                       if ( elem.nodeType === 1 || checkNonElements ) {
+                                               outerCache = elem[ expando ] || (elem[ expando ] = {});
+
+                                               // Support: IE <9 only
+                                               // Defend against cloned attroperties (jQuery gh-1709)
+                                               uniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {});
+
+                                               if ( skip && skip === elem.nodeName.toLowerCase() ) {
+                                                       elem = elem[ dir ] || elem;
+                                               } else if ( (oldCache = uniqueCache[ key ]) &&
+                                                       oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {
+
+                                                       // Assign to newCache so results back-propagate to previous elements
+                                                       return (newCache[ 2 ] = oldCache[ 2 ]);
+                                               } else {
+                                                       // Reuse newcache so results back-propagate to previous elements
+                                                       uniqueCache[ key ] = newCache;
+
+                                                       // A match means we're done; a fail means we have to keep checking
+                                                       if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) {
+                                                               return true;
+                                                       }
+                                               }
+                                       }
+                               }
+                       }
+                       return false;
+               };
+}
+
+function elementMatcher( matchers ) {
+       return matchers.length > 1 ?
+               function( elem, context, xml ) {
+                       var i = matchers.length;
+                       while ( i-- ) {
+                               if ( !matchers[i]( elem, context, xml ) ) {
+                                       return false;
+                               }
+                       }
+                       return true;
+               } :
+               matchers[0];
+}
+
+function multipleContexts( selector, contexts, results ) {
+       var i = 0,
+               len = contexts.length;
+       for ( ; i < len; i++ ) {
+               Sizzle( selector, contexts[i], results );
+       }
+       return results;
+}
+
+function condense( unmatched, map, filter, context, xml ) {
+       var elem,
+               newUnmatched = [],
+               i = 0,
+               len = unmatched.length,
+               mapped = map != null;
+
+       for ( ; i < len; i++ ) {
+               if ( (elem = unmatched[i]) ) {
+                       if ( !filter || filter( elem, context, xml ) ) {
+                               newUnmatched.push( elem );
+                               if ( mapped ) {
+                                       map.push( i );
+                               }
+                       }
+               }
+       }
+
+       return newUnmatched;
+}
+
+function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {
+       if ( postFilter && !postFilter[ expando ] ) {
+               postFilter = setMatcher( postFilter );
+       }
+       if ( postFinder && !postFinder[ expando ] ) {
+               postFinder = setMatcher( postFinder, postSelector );
+       }
+       return markFunction(function( seed, results, context, xml ) {
+               var temp, i, elem,
+                       preMap = [],
+                       postMap = [],
+                       preexisting = results.length,
+
+                       // Get initial elements from seed or context
+                       elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ),
+
+                       // Prefilter to get matcher input, preserving a map for seed-results synchronization
+                       matcherIn = preFilter && ( seed || !selector ) ?
+                               condense( elems, preMap, preFilter, context, xml ) :
+                               elems,
+
+                       matcherOut = matcher ?
+                               // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,
+                               postFinder || ( seed ? preFilter : preexisting || postFilter ) ?
+
+                                       // ...intermediate processing is necessary
+                                       [] :
+
+                                       // ...otherwise use results directly
+                                       results :
+                               matcherIn;
+
+               // Find primary matches
+               if ( matcher ) {
+                       matcher( matcherIn, matcherOut, context, xml );
+               }
+
+               // Apply postFilter
+               if ( postFilter ) {
+                       temp = condense( matcherOut, postMap );
+                       postFilter( temp, [], context, xml );
+
+                       // Un-match failing elements by moving them back to matcherIn
+                       i = temp.length;
+                       while ( i-- ) {
+                               if ( (elem = temp[i]) ) {
+                                       matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);
+                               }
+                       }
+               }
+
+               if ( seed ) {
+                       if ( postFinder || preFilter ) {
+                               if ( postFinder ) {
+                                       // Get the final matcherOut by condensing this intermediate into postFinder contexts
+                                       temp = [];
+                                       i = matcherOut.length;
+                                       while ( i-- ) {
+                                               if ( (elem = matcherOut[i]) ) {
+                                                       // Restore matcherIn since elem is not yet a final match
+                                                       temp.push( (matcherIn[i] = elem) );
+                                               }
+                                       }
+                                       postFinder( null, (matcherOut = []), temp, xml );
+                               }
+
+                               // Move matched elements from seed to results to keep them synchronized
+                               i = matcherOut.length;
+                               while ( i-- ) {
+                                       if ( (elem = matcherOut[i]) &&
+                                               (temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) {
+
+                                               seed[temp] = !(results[temp] = elem);
+                                       }
+                               }
+                       }
+
+               // Add elements to results, through postFinder if defined
+               } else {
+                       matcherOut = condense(
+                               matcherOut === results ?
+                                       matcherOut.splice( preexisting, matcherOut.length ) :
+                                       matcherOut
+                       );
+                       if ( postFinder ) {
+                               postFinder( null, results, matcherOut, xml );
+                       } else {
+                               push.apply( results, matcherOut );
+                       }
+               }
+       });
+}
+
+function matcherFromTokens( tokens ) {
+       var checkContext, matcher, j,
+               len = tokens.length,
+               leadingRelative = Expr.relative[ tokens[0].type ],
+               implicitRelative = leadingRelative || Expr.relative[" "],
+               i = leadingRelative ? 1 : 0,
+
+               // The foundational matcher ensures that elements are reachable from top-level context(s)
+               matchContext = addCombinator( function( elem ) {
+                       return elem === checkContext;
+               }, implicitRelative, true ),
+               matchAnyContext = addCombinator( function( elem ) {
+                       return indexOf( checkContext, elem ) > -1;
+               }, implicitRelative, true ),
+               matchers = [ function( elem, context, xml ) {
+                       var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (
+                               (checkContext = context).nodeType ?
+                                       matchContext( elem, context, xml ) :
+                                       matchAnyContext( elem, context, xml ) );
+                       // Avoid hanging onto element (issue #299)
+                       checkContext = null;
+                       return ret;
+               } ];
+
+       for ( ; i < len; i++ ) {
+               if ( (matcher = Expr.relative[ tokens[i].type ]) ) {
+                       matchers = [ addCombinator(elementMatcher( matchers ), matcher) ];
+               } else {
+                       matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );
+
+                       // Return special upon seeing a positional matcher
+                       if ( matcher[ expando ] ) {
+                               // Find the next relative operator (if any) for proper handling
+                               j = ++i;
+                               for ( ; j < len; j++ ) {
+                                       if ( Expr.relative[ tokens[j].type ] ) {
+                                               break;
+                                       }
+                               }
+                               return setMatcher(
+                                       i > 1 && elementMatcher( matchers ),
+                                       i > 1 && toSelector(
+                                               // If the preceding token was a descendant combinator, insert an implicit any-element `*`
+                                               tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" })
+                                       ).replace( rtrim, "$1" ),
+                                       matcher,
+                                       i < j && matcherFromTokens( tokens.slice( i, j ) ),
+                                       j < len && matcherFromTokens( (tokens = tokens.slice( j )) ),
+                                       j < len && toSelector( tokens )
+                               );
+                       }
+                       matchers.push( matcher );
+               }
+       }
+
+       return elementMatcher( matchers );
+}
+
+function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
+       var bySet = setMatchers.length > 0,
+               byElement = elementMatchers.length > 0,
+               superMatcher = function( seed, context, xml, results, outermost ) {
+                       var elem, j, matcher,
+                               matchedCount = 0,
+                               i = "0",
+                               unmatched = seed && [],
+                               setMatched = [],
+                               contextBackup = outermostContext,
+                               // We must always have either seed elements or outermost context
+                               elems = seed || byElement && Expr.find["TAG"]( "*", outermost ),
+                               // Use integer dirruns iff this is the outermost matcher
+                               dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1),
+                               len = elems.length;
+
+                       if ( outermost ) {
+                               outermostContext = context === document || context || outermost;
+                       }
+
+                       // Add elements passing elementMatchers directly to results
+                       // Support: IE<9, Safari
+                       // Tolerate NodeList properties (IE: "length"; Safari: <number>) matching elements by id
+                       for ( ; i !== len && (elem = elems[i]) != null; i++ ) {
+                               if ( byElement && elem ) {
+                                       j = 0;
+                                       if ( !context && elem.ownerDocument !== document ) {
+                                               setDocument( elem );
+                                               xml = !documentIsHTML;
+                                       }
+                                       while ( (matcher = elementMatchers[j++]) ) {
+                                               if ( matcher( elem, context || document, xml) ) {
+                                                       results.push( elem );
+                                                       break;
+                                               }
+                                       }
+                                       if ( outermost ) {
+                                               dirruns = dirrunsUnique;
+                                       }
+                               }
+
+                               // Track unmatched elements for set filters
+                               if ( bySet ) {
+                                       // They will have gone through all possible matchers
+                                       if ( (elem = !matcher && elem) ) {
+                                               matchedCount--;
+                                       }
+
+                                       // Lengthen the array for every element, matched or not
+                                       if ( seed ) {
+                                               unmatched.push( elem );
+                                       }
+                               }
+                       }
+
+                       // `i` is now the count of elements visited above, and adding it to `matchedCount`
+                       // makes the latter nonnegative.
+                       matchedCount += i;
+
+                       // Apply set filters to unmatched elements
+                       // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`
+                       // equals `i`), unless we didn't visit _any_ elements in the above loop because we have
+                       // no element matchers and no seed.
+                       // Incrementing an initially-string "0" `i` allows `i` to remain a string only in that
+                       // case, which will result in a "00" `matchedCount` that differs from `i` but is also
+                       // numerically zero.
+                       if ( bySet && i !== matchedCount ) {
+                               j = 0;
+                               while ( (matcher = setMatchers[j++]) ) {
+                                       matcher( unmatched, setMatched, context, xml );
+                               }
+
+                               if ( seed ) {
+                                       // Reintegrate element matches to eliminate the need for sorting
+                                       if ( matchedCount > 0 ) {
+                                               while ( i-- ) {
+                                                       if ( !(unmatched[i] || setMatched[i]) ) {
+                                                               setMatched[i] = pop.call( results );
+                                                       }
+                                               }
+                                       }
+
+                                       // Discard index placeholder values to get only actual matches
+                                       setMatched = condense( setMatched );
+                               }
+
+                               // Add matches to results
+                               push.apply( results, setMatched );
+
+                               // Seedless set matches succeeding multiple successful matchers stipulate sorting
+                               if ( outermost && !seed && setMatched.length > 0 &&
+                                       ( matchedCount + setMatchers.length ) > 1 ) {
+
+                                       Sizzle.uniqueSort( results );
+                               }
+                       }
+
+                       // Override manipulation of globals by nested matchers
+                       if ( outermost ) {
+                               dirruns = dirrunsUnique;
+                               outermostContext = contextBackup;
+                       }
+
+                       return unmatched;
+               };
+
+       return bySet ?
+               markFunction( superMatcher ) :
+               superMatcher;
+}
+
+compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {
+       var i,
+               setMatchers = [],
+               elementMatchers = [],
+               cached = compilerCache[ selector + " " ];
+
+       if ( !cached ) {
+               // Generate a function of recursive functions that can be used to check each element
+               if ( !match ) {
+                       match = tokenize( selector );
+               }
+               i = match.length;
+               while ( i-- ) {
+                       cached = matcherFromTokens( match[i] );
+                       if ( cached[ expando ] ) {
+                               setMatchers.push( cached );
+                       } else {
+                               elementMatchers.push( cached );
+                       }
+               }
+
+               // Cache the compiled function
+               cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );
+
+               // Save selector and tokenization
+               cached.selector = selector;
+       }
+       return cached;
+};
+
+/**
+ * A low-level selection function that works with Sizzle's compiled
+ *  selector functions
+ * @param {String|Function} selector A selector or a pre-compiled
+ *  selector function built with Sizzle.compile
+ * @param {Element} context
+ * @param {Array} [results]
+ * @param {Array} [seed] A set of elements to match against
+ */
+select = Sizzle.select = function( selector, context, results, seed ) {
+       var i, tokens, token, type, find,
+               compiled = typeof selector === "function" && selector,
+               match = !seed && tokenize( (selector = compiled.selector || selector) );
+
+       results = results || [];
+
+       // Try to minimize operations if there is only one selector in the list and no seed
+       // (the latter of which guarantees us context)
+       if ( match.length === 1 ) {
+
+               // Reduce context if the leading compound selector is an ID
+               tokens = match[0] = match[0].slice( 0 );
+               if ( tokens.length > 2 && (token = tokens[0]).type === "ID" &&
+                               context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[1].type ] ) {
+
+                       context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];
+                       if ( !context ) {
+                               return results;
+
+                       // Precompiled matchers will still verify ancestry, so step up a level
+                       } else if ( compiled ) {
+                               context = context.parentNode;
+                       }
+
+                       selector = selector.slice( tokens.shift().value.length );
+               }
+
+               // Fetch a seed set for right-to-left matching
+               i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length;
+               while ( i-- ) {
+                       token = tokens[i];
+
+                       // Abort if we hit a combinator
+                       if ( Expr.relative[ (type = token.type) ] ) {
+                               break;
+                       }
+                       if ( (find = Expr.find[ type ]) ) {
+                               // Search, expanding context for leading sibling combinators
+                               if ( (seed = find(
+                                       token.matches[0].replace( runescape, funescape ),
+                                       rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context
+                               )) ) {
+
+                                       // If seed is empty or no tokens remain, we can return early
+                                       tokens.splice( i, 1 );
+                                       selector = seed.length && toSelector( tokens );
+                                       if ( !selector ) {
+                                               push.apply( results, seed );
+                                               return results;
+                                       }
+
+                                       break;
+                               }
+                       }
+               }
+       }
+
+       // Compile and execute a filtering function if one is not provided
+       // Provide `match` to avoid retokenization if we modified the selector above
+       ( compiled || compile( selector, match ) )(
+               seed,
+               context,
+               !documentIsHTML,
+               results,
+               !context || rsibling.test( selector ) && testContext( context.parentNode ) || context
+       );
+       return results;
+};
+
+// One-time assignments
+
+// Sort stability
+support.sortStable = expando.split("").sort( sortOrder ).join("") === expando;
+
+// Support: Chrome 14-35+
+// Always assume duplicates if they aren't passed to the comparison function
+support.detectDuplicates = !!hasDuplicate;
+
+// Initialize against the default document
+setDocument();
+
+// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)
+// Detached nodes confoundingly follow *each other*
+support.sortDetached = assert(function( el ) {
+       // Should return 1, but returns 4 (following)
+       return el.compareDocumentPosition( document.createElement("fieldset") ) & 1;
+});
+
+// Support: IE<8
+// Prevent attribute/property "interpolation"
+// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx
+if ( !assert(function( el ) {
+       el.innerHTML = "<a href='#'></a>";
+       return el.firstChild.getAttribute("href") === "#" ;
+}) ) {
+       addHandle( "type|href|height|width", function( elem, name, isXML ) {
+               if ( !isXML ) {
+                       return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 );
+               }
+       });
+}
+
+// Support: IE<9
+// Use defaultValue in place of getAttribute("value")
+if ( !support.attributes || !assert(function( el ) {
+       el.innerHTML = "<input/>";
+       el.firstChild.setAttribute( "value", "" );
+       return el.firstChild.getAttribute( "value" ) === "";
+}) ) {
+       addHandle( "value", function( elem, name, isXML ) {
+               if ( !isXML && elem.nodeName.toLowerCase() === "input" ) {
+                       return elem.defaultValue;
+               }
+       });
+}
+
+// Support: IE<9
+// Use getAttributeNode to fetch booleans when getAttribute lies
+if ( !assert(function( el ) {
+       return el.getAttribute("disabled") == null;
+}) ) {
+       addHandle( booleans, function( elem, name, isXML ) {
+               var val;
+               if ( !isXML ) {
+                       return elem[ name ] === true ? name.toLowerCase() :
+                                       (val = elem.getAttributeNode( name )) && val.specified ?
+                                       val.value :
+                               null;
+               }
+       });
+}
+
+// EXPOSE
+var _sizzle = window.Sizzle;
+
+Sizzle.noConflict = function() {
+       if ( window.Sizzle === Sizzle ) {
+               window.Sizzle = _sizzle;
+       }
+
+       return Sizzle;
+};
+
+if ( typeof define === "function" && define.amd ) {
+       define(function() { return Sizzle; });
+// Sizzle requires that there be a global window in Common-JS like environments
+} else if ( typeof module !== "undefined" && module.exports ) {
+       module.exports = Sizzle;
+} else {
+       window.Sizzle = Sizzle;
+}
+// EXPOSE
+
+})( window );
diff --git a/js/jquery/external/sizzle/dist/sizzle.min.js b/js/jquery/external/sizzle/dist/sizzle.min.js
new file mode 100644 (file)
index 0000000..be03278
--- /dev/null
@@ -0,0 +1,3 @@
+/*! Sizzle v2.3.3 | (c) jQuery Foundation, Inc. | jquery.org/license */
+!function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=function(a,b){for(var c=0,d=a.length;c<d;c++)if(a[c]===b)return c;return-1},J="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",K="[\\x20\\t\\r\\n\\f]",L="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",M="\\["+K+"*("+L+")(?:"+K+"*([*^$|!~]?=)"+K+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+L+"))|)"+K+"*\\]",N=":("+L+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+M+")*)|.*)\\)|)",O=new RegExp(K+"+","g"),P=new RegExp("^"+K+"+|((?:^|[^\\\\])(?:\\\\.)*)"+K+"+$","g"),Q=new RegExp("^"+K+"*,"+K+"*"),R=new RegExp("^"+K+"*([>+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(N),U=new RegExp("^"+L+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L+"|[*])"),ATTR:new RegExp("^"+M),PSEUDO:new RegExp("^"+N),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),aa=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:d<0?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ba=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ca=function(a,b){return b?"\0"===a?"\ufffd":a.slice(0,-1)+"\\"+a.charCodeAt(a.length-1).toString(16)+" ":"\\"+a},da=function(){m()},ea=ta(function(a){return a.disabled===!0&&("form"in a||"label"in a)},{dir:"parentNode",next:"legend"});try{G.apply(D=H.call(v.childNodes),v.childNodes),D[v.childNodes.length].nodeType}catch(fa){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s=b&&b.ownerDocument,w=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==w&&9!==w&&11!==w)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==w&&(l=Z.exec(a)))if(f=l[1]){if(9===w){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(s&&(j=s.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(l[2])return G.apply(d,b.getElementsByTagName(a)),d;if((f=l[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==w)s=b,r=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(ba,ca):b.setAttribute("id",k=u),o=g(a),h=o.length;while(h--)o[h]="#"+k+" "+sa(o[h]);r=o.join(","),s=$.test(a)&&qa(b.parentNode)||b}if(r)try{return G.apply(d,s.querySelectorAll(r)),d}catch(x){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(P,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("fieldset");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&a.sourceIndex-b.sourceIndex;if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return function(b){return"form"in b?b.parentNode&&b.disabled===!1?"label"in b?"label"in b.parentNode?b.parentNode.disabled===a:b.disabled===a:b.isDisabled===a||b.isDisabled!==!a&&ea(b)===a:b.disabled===a:"label"in b&&b.disabled===a}}function pa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function qa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return!!b&&"HTML"!==b.nodeName},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),v!==n&&(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(n.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){return a.getAttribute("id")===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}}):(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c,d,e,f=b.getElementById(a);if(f){if(c=f.getAttributeNode("id"),c&&c.value===a)return[f];e=b.getElementsByName(a),d=0;while(f=e[d++])if(c=f.getAttributeNode("id"),c&&c.value===a)return[f]}return[]}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){if("undefined"!=typeof b.getElementsByClassName&&p)return b.getElementsByClassName(a)},r=[],q=[],(c.qsa=Y.test(n.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="<a id='"+u+"'></a><select id='"+u+"-\r\\' msallowcapture=''><option selected=''></option></select>",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){a.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+K+"*[*^$|!~]?="),2!==a.querySelectorAll(":enabled").length&&q.push(":enabled",":disabled"),o.appendChild(a).disabled=!0,2!==a.querySelectorAll(":disabled").length&&q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Y.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"*"),s.call(a,"[s!='']:x"),r.push("!=",N)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Y.test(o.compareDocumentPosition),t=b||Y.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?I(k,a)-I(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?I(k,a)-I(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?la(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(S,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.escape=function(a){return(a+"").replace(ba,ca)},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(_,aa),a[3]=(a[3]||a[4]||a[5]||"").replace(_,aa),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return V.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&T.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(_,aa).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+K+")"+a+"("+K+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:!b||(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(O," ")+" ").indexOf(c)>-1:"|="===b&&(e===c||e.slice(0,c.length+1)===c+"-"))}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(P,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(_,aa),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return U.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(_,aa).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:oa(!1),disabled:oa(!0),checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return X.test(a.nodeName)},input:function(a){return W.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:pa(function(){return[0]}),last:pa(function(a,b){return[b-1]}),eq:pa(function(a,b,c){return[c<0?c+b:c]}),even:pa(function(a,b){for(var c=0;c<b;c+=2)a.push(c);return a}),odd:pa(function(a,b){for(var c=1;c<b;c+=2)a.push(c);return a}),lt:pa(function(a,b,c){for(var d=c<0?c+b:c;--d>=0;)a.push(d);return a}),gt:pa(function(a,b,c){for(var d=c<0?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=ma(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=na(b);function ra(){}ra.prototype=d.filters=d.pseudos,d.setFilters=new ra,g=ga.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){c&&!(e=Q.exec(h))||(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=R.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(P," ")}),h=h.slice(c.length));for(g in d.filter)!(e=V[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?ga.error(a):z(a,i).slice(0)};function sa(a){for(var b=0,c=a.length,d="";b<c;b++)d+=a[b].value;return d}function ta(a,b,c){var d=b.dir,e=b.next,f=e||d,g=c&&"parentNode"===f,h=x++;return b.first?function(b,c,e){while(b=b[d])if(1===b.nodeType||g)return a(b,c,e);return!1}:function(b,c,i){var j,k,l,m=[w,h];if(i){while(b=b[d])if((1===b.nodeType||g)&&a(b,c,i))return!0}else while(b=b[d])if(1===b.nodeType||g)if(l=b[u]||(b[u]={}),k=l[b.uniqueID]||(l[b.uniqueID]={}),e&&e===b.nodeName.toLowerCase())b=b[d]||b;else{if((j=k[f])&&j[0]===w&&j[1]===h)return m[2]=j[2];if(k[f]=m,m[2]=a(b,c,i))return!0}return!1}}function ua(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function va(a,b,c){for(var d=0,e=b.length;d<e;d++)ga(a,b[d],c);return c}function wa(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;h<i;h++)(f=a[h])&&(c&&!c(f,d,e)||(g.push(f),j&&b.push(h)));return g}function xa(a,b,c,d,e,f){return d&&!d[u]&&(d=xa(d)),e&&!e[u]&&(e=xa(e,f)),ia(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||va(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:wa(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=wa(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?I(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=wa(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ya(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ta(function(a){return a===b},h,!0),l=ta(function(a){return I(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];i<f;i++)if(c=d.relative[a[i].type])m=[ta(ua(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;e<f;e++)if(d.relative[a[e].type])break;return xa(i>1&&ua(m),i>1&&sa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(P,"$1"),c,i<e&&ya(a.slice(i,e)),e<f&&ya(a=a.slice(e)),e<f&&sa(a))}m.push(c)}return ua(m)}function za(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=E.call(i));u=wa(u)}G.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&ga.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ia(f):f}h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=ya(b[c]),f[u]?d.push(f):e.push(f);f=A(a,za(e,d)),f.selector=a}return f},i=ga.select=function(a,b,c,e){var f,i,j,k,l,m="function"==typeof a&&a,n=!e&&g(a=m.selector||a);if(c=c||[],1===n.length){if(i=n[0]=n[0].slice(0),i.length>2&&"ID"===(j=i[0]).type&&9===b.nodeType&&p&&d.relative[i[1].type]){if(b=(d.find.ID(j.matches[0].replace(_,aa),b)||[])[0],!b)return c;m&&(b=b.parentNode),a=a.slice(i.shift().value.length)}f=V.needsContext.test(a)?0:i.length;while(f--){if(j=i[f],d.relative[k=j.type])break;if((l=d.find[k])&&(e=l(j.matches[0].replace(_,aa),$.test(i[0].type)&&qa(b.parentNode)||b))){if(i.splice(f,1),a=e.length&&sa(i),!a)return G.apply(c,e),c;break}}}return(m||h(a,n))(e,b,!p,c,!b||$.test(a)&&qa(b.parentNode)||b),c},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("fieldset"))}),ja(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){if(!c)return a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){if(!c&&"input"===a.nodeName.toLowerCase())return a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(J,function(a,b,c){var d;if(!c)return a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null});var Aa=a.Sizzle;ga.noConflict=function(){return a.Sizzle===ga&&(a.Sizzle=Aa),ga},"function"==typeof define&&define.amd?define(function(){return ga}):"undefined"!=typeof module&&module.exports?module.exports=ga:a.Sizzle=ga}(window);
+//# sourceMappingURL=sizzle.min.map
\ No newline at end of file
diff --git a/js/jquery/external/sizzle/dist/sizzle.min.map b/js/jquery/external/sizzle/dist/sizzle.min.map
new file mode 100644 (file)
index 0000000..031c1b7
--- /dev/null
@@ -0,0 +1 @@
+{"version":3,"sources":["sizzle.js"],"names":["window","i","support","Expr","getText","isXML","tokenize","compile","select","outermostContext","sortInput","hasDuplicate","setDocument","document","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","matches","contains","expando","Date","preferredDoc","dirruns","done","classCache","createCache","tokenCache","compilerCache","sortOrder","a","b","hasOwn","hasOwnProperty","arr","pop","push_native","push","slice","indexOf","list","elem","len","length","booleans","whitespace","identifier","attributes","pseudos","rwhitespace","RegExp","rtrim","rcomma","rcombinators","rattributeQuotes","rpseudo","ridentifier","matchExpr","ID","CLASS","TAG","ATTR","PSEUDO","CHILD","bool","needsContext","rinputs","rheader","rnative","rquickExpr","rsibling","runescape","funescape","_","escaped","escapedWhitespace","high","String","fromCharCode","rcssescape","fcssescape","ch","asCodePoint","charCodeAt","toString","unloadHandler","disabledAncestor","addCombinator","disabled","dir","next","apply","call","childNodes","nodeType","e","target","els","j","Sizzle","selector","context","results","seed","m","nid","match","groups","newSelector","newContext","ownerDocument","exec","getElementById","id","getElementsByTagName","getElementsByClassName","qsa","test","nodeName","toLowerCase","getAttribute","replace","setAttribute","toSelector","join","testContext","parentNode","querySelectorAll","qsaError","removeAttribute","keys","cache","key","value","cacheLength","shift","markFunction","fn","assert","el","createElement","removeChild","addHandle","attrs","handler","split","attrHandle","siblingCheck","cur","diff","sourceIndex","nextSibling","createInputPseudo","type","name","createButtonPseudo","createDisabledPseudo","isDisabled","createPositionalPseudo","argument","matchIndexes","documentElement","node","hasCompare","subWindow","doc","defaultView","top","addEventListener","attachEvent","className","appendChild","createComment","getById","getElementsByName","filter","attrId","find","getAttributeNode","elems","tag","tmp","innerHTML","input","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","unshift","expr","elements","ret","attr","val","undefined","specified","escape","sel","error","msg","Error","uniqueSort","duplicates","detectDuplicates","sortStable","sort","splice","textContent","firstChild","nodeValue","selectors","createPseudo","relative",">","first"," ","+","~","preFilter","excess","unquoted","nodeNameSelector","pattern","operator","check","result","what","last","simple","forward","ofType","xml","uniqueCache","outerCache","nodeIndex","start","parent","useCache","lastChild","uniqueID","pseudo","args","setFilters","idx","matched","not","matcher","unmatched","has","text","innerText","lang","elemLang","hash","location","root","focus","activeElement","hasFocus","href","tabIndex","enabled","checked","selected","selectedIndex","empty","header","button","eq","even","odd","lt","gt","radio","checkbox","file","password","image","submit","reset","prototype","filters","parseOnly","tokens","soFar","preFilters","cached","combinator","base","skip","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","multipleContexts","contexts","condense","map","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","temp","preMap","postMap","preexisting","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","concat","matcherFromGroupMatchers","elementMatchers","setMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","Math","random","token","compiled","defaultValue","_sizzle","noConflict","define","amd","module","exports"],"mappings":"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","file":"sizzle.min.js"}
\ No newline at end of file
diff --git a/js/jquery/src/ajax.js b/js/jquery/src/ajax.js
new file mode 100644 (file)
index 0000000..36f707d
--- /dev/null
@@ -0,0 +1,855 @@
+define( [
+       "./core",
+       "./var/document",
+       "./var/rnothtmlwhite",
+       "./ajax/var/location",
+       "./ajax/var/nonce",
+       "./ajax/var/rquery",
+
+       "./core/init",
+       "./ajax/parseXML",
+       "./event/trigger",
+       "./deferred",
+       "./serialize" // jQuery.param
+], function( jQuery, document, rnothtmlwhite, location, nonce, rquery ) {
+
+"use strict";
+
+var
+       r20 = /%20/g,
+       rhash = /#.*$/,
+       rantiCache = /([?&])_=[^&]*/,
+       rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg,
+
+       // #7653, #8125, #8152: local protocol detection
+       rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,
+       rnoContent = /^(?:GET|HEAD)$/,
+       rprotocol = /^\/\//,
+
+       /* Prefilters
+        * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)
+        * 2) These are called:
+        *    - BEFORE asking for a transport
+        *    - AFTER param serialization (s.data is a string if s.processData is true)
+        * 3) key is the dataType
+        * 4) the catchall symbol "*" can be used
+        * 5) execution will start with transport dataType and THEN continue down to "*" if needed
+        */
+       prefilters = {},
+
+       /* Transports bindings
+        * 1) key is the dataType
+        * 2) the catchall symbol "*" can be used
+        * 3) selection will start with transport dataType and THEN go to "*" if needed
+        */
+       transports = {},
+
+       // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression
+       allTypes = "*/".concat( "*" ),
+
+       // Anchor tag for parsing the document origin
+       originAnchor = document.createElement( "a" );
+       originAnchor.href = location.href;
+
+// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport
+function addToPrefiltersOrTransports( structure ) {
+
+       // dataTypeExpression is optional and defaults to "*"
+       return function( dataTypeExpression, func ) {
+
+               if ( typeof dataTypeExpression !== "string" ) {
+                       func = dataTypeExpression;
+                       dataTypeExpression = "*";
+               }
+
+               var dataType,
+                       i = 0,
+                       dataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || [];
+
+               if ( jQuery.isFunction( func ) ) {
+
+                       // For each dataType in the dataTypeExpression
+                       while ( ( dataType = dataTypes[ i++ ] ) ) {
+
+                               // Prepend if requested
+                               if ( dataType[ 0 ] === "+" ) {
+                                       dataType = dataType.slice( 1 ) || "*";
+                                       ( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );
+
+                               // Otherwise append
+                               } else {
+                                       ( structure[ dataType ] = structure[ dataType ] || [] ).push( func );
+                               }
+                       }
+               }
+       };
+}
+
+// Base inspection function for prefilters and transports
+function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {
+
+       var inspected = {},
+               seekingTransport = ( structure === transports );
+
+       function inspect( dataType ) {
+               var selected;
+               inspected[ dataType ] = true;
+               jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {
+                       var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );
+                       if ( typeof dataTypeOrTransport === "string" &&
+                               !seekingTransport && !inspected[ dataTypeOrTransport ] ) {
+
+                               options.dataTypes.unshift( dataTypeOrTransport );
+                               inspect( dataTypeOrTransport );
+                               return false;
+                       } else if ( seekingTransport ) {
+                               return !( selected = dataTypeOrTransport );
+                       }
+               } );
+               return selected;
+       }
+
+       return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" );
+}
+
+// A special extend for ajax options
+// that takes "flat" options (not to be deep extended)
+// Fixes #9887
+function ajaxExtend( target, src ) {
+       var key, deep,
+               flatOptions = jQuery.ajaxSettings.flatOptions || {};
+
+       for ( key in src ) {
+               if ( src[ key ] !== undefined ) {
+                       ( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];
+               }
+       }
+       if ( deep ) {
+               jQuery.extend( true, target, deep );
+       }
+
+       return target;
+}
+
+/* Handles responses to an ajax request:
+ * - finds the right dataType (mediates between content-type and expected dataType)
+ * - returns the corresponding response
+ */
+function ajaxHandleResponses( s, jqXHR, responses ) {
+
+       var ct, type, finalDataType, firstDataType,
+               contents = s.contents,
+               dataTypes = s.dataTypes;
+
+       // Remove auto dataType and get content-type in the process
+       while ( dataTypes[ 0 ] === "*" ) {
+               dataTypes.shift();
+               if ( ct === undefined ) {
+                       ct = s.mimeType || jqXHR.getResponseHeader( "Content-Type" );
+               }
+       }
+
+       // Check if we're dealing with a known content-type
+       if ( ct ) {
+               for ( type in contents ) {
+                       if ( contents[ type ] && contents[ type ].test( ct ) ) {
+                               dataTypes.unshift( type );
+                               break;
+                       }
+               }
+       }
+
+       // Check to see if we have a response for the expected dataType
+       if ( dataTypes[ 0 ] in responses ) {
+               finalDataType = dataTypes[ 0 ];
+       } else {
+
+               // Try convertible dataTypes
+               for ( type in responses ) {
+                       if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[ 0 ] ] ) {
+                               finalDataType = type;
+                               break;
+                       }
+                       if ( !firstDataType ) {
+                               firstDataType = type;
+                       }
+               }
+
+               // Or just use first one
+               finalDataType = finalDataType || firstDataType;
+       }
+
+       // If we found a dataType
+       // We add the dataType to the list if needed
+       // and return the corresponding response
+       if ( finalDataType ) {
+               if ( finalDataType !== dataTypes[ 0 ] ) {
+                       dataTypes.unshift( finalDataType );
+               }
+               return responses[ finalDataType ];
+       }
+}
+
+/* Chain conversions given the request and the original response
+ * Also sets the responseXXX fields on the jqXHR instance
+ */
+function ajaxConvert( s, response, jqXHR, isSuccess ) {
+       var conv2, current, conv, tmp, prev,
+               converters = {},
+
+               // Work with a copy of dataTypes in case we need to modify it for conversion
+               dataTypes = s.dataTypes.slice();
+
+       // Create converters map with lowercased keys
+       if ( dataTypes[ 1 ] ) {
+               for ( conv in s.converters ) {
+                       converters[ conv.toLowerCase() ] = s.converters[ conv ];
+               }
+       }
+
+       current = dataTypes.shift();
+
+       // Convert to each sequential dataType
+       while ( current ) {
+
+               if ( s.responseFields[ current ] ) {
+                       jqXHR[ s.responseFields[ current ] ] = response;
+               }
+
+               // Apply the dataFilter if provided
+               if ( !prev && isSuccess && s.dataFilter ) {
+                       response = s.dataFilter( response, s.dataType );
+               }
+
+               prev = current;
+               current = dataTypes.shift();
+
+               if ( current ) {
+
+                       // There's only work to do if current dataType is non-auto
+                       if ( current === "*" ) {
+
+                               current = prev;
+
+                       // Convert response if prev dataType is non-auto and differs from current
+                       } else if ( prev !== "*" && prev !== current ) {
+
+                               // Seek a direct converter
+                               conv = converters[ prev + " " + current ] || converters[ "* " + current ];
+
+                               // If none found, seek a pair
+                               if ( !conv ) {
+                                       for ( conv2 in converters ) {
+
+                                               // If conv2 outputs current
+                                               tmp = conv2.split( " " );
+                                               if ( tmp[ 1 ] === current ) {
+
+                                                       // If prev can be converted to accepted input
+                                                       conv = converters[ prev + " " + tmp[ 0 ] ] ||
+                                                               converters[ "* " + tmp[ 0 ] ];
+                                                       if ( conv ) {
+
+                                                               // Condense equivalence converters
+                                                               if ( conv === true ) {
+                                                                       conv = converters[ conv2 ];
+
+                                                               // Otherwise, insert the intermediate dataType
+                                                               } else if ( converters[ conv2 ] !== true ) {
+                                                                       current = tmp[ 0 ];
+                                                                       dataTypes.unshift( tmp[ 1 ] );
+                                                               }
+                                                               break;
+                                                       }
+                                               }
+                                       }
+                               }
+
+                               // Apply converter (if not an equivalence)
+                               if ( conv !== true ) {
+
+                                       // Unless errors are allowed to bubble, catch and return them
+                                       if ( conv && s.throws ) {
+                                               response = conv( response );
+                                       } else {
+                                               try {
+                                                       response = conv( response );
+                                               } catch ( e ) {
+                                                       return {
+                                                               state: "parsererror",
+                                                               error: conv ? e : "No conversion from " + prev + " to " + current
+                                                       };
+                                               }
+                                       }
+                               }
+                       }
+               }
+       }
+
+       return { state: "success", data: response };
+}
+
+jQuery.extend( {
+
+       // Counter for holding the number of active queries
+       active: 0,
+
+       // Last-Modified header cache for next request
+       lastModified: {},
+       etag: {},
+
+       ajaxSettings: {
+               url: location.href,
+               type: "GET",
+               isLocal: rlocalProtocol.test( location.protocol ),
+               global: true,
+               processData: true,
+               async: true,
+               contentType: "application/x-www-form-urlencoded; charset=UTF-8",
+
+               /*
+               timeout: 0,
+               data: null,
+               dataType: null,
+               username: null,
+               password: null,
+               cache: null,
+               throws: false,
+               traditional: false,
+               headers: {},
+               */
+
+               accepts: {
+                       "*": allTypes,
+                       text: "text/plain",
+                       html: "text/html",
+                       xml: "application/xml, text/xml",
+                       json: "application/json, text/javascript"
+               },
+
+               contents: {
+                       xml: /\bxml\b/,
+                       html: /\bhtml/,
+                       json: /\bjson\b/
+               },
+
+               responseFields: {
+                       xml: "responseXML",
+                       text: "responseText",
+                       json: "responseJSON"
+               },
+
+               // Data converters
+               // Keys separate source (or catchall "*") and destination types with a single space
+               converters: {
+
+                       // Convert anything to text
+                       "* text": String,
+
+                       // Text to html (true = no transformation)
+                       "text html": true,
+
+                       // Evaluate text as a json expression
+                       "text json": JSON.parse,
+
+                       // Parse text as xml
+                       "text xml": jQuery.parseXML
+               },
+
+               // For options that shouldn't be deep extended:
+               // you can add your own custom options here if
+               // and when you create one that shouldn't be
+               // deep extended (see ajaxExtend)
+               flatOptions: {
+                       url: true,
+                       context: true
+               }
+       },
+
+       // Creates a full fledged settings object into target
+       // with both ajaxSettings and settings fields.
+       // If target is omitted, writes into ajaxSettings.
+       ajaxSetup: function( target, settings ) {
+               return settings ?
+
+                       // Building a settings object
+                       ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :
+
+                       // Extending ajaxSettings
+                       ajaxExtend( jQuery.ajaxSettings, target );
+       },
+
+       ajaxPrefilter: addToPrefiltersOrTransports( prefilters ),
+       ajaxTransport: addToPrefiltersOrTransports( transports ),
+
+       // Main method
+       ajax: function( url, options ) {
+
+               // If url is an object, simulate pre-1.5 signature
+               if ( typeof url === "object" ) {
+                       options = url;
+                       url = undefined;
+               }
+
+               // Force options to be an object
+               options = options || {};
+
+               var transport,
+
+                       // URL without anti-cache param
+                       cacheURL,
+
+                       // Response headers
+                       responseHeadersString,
+                       responseHeaders,
+
+                       // timeout handle
+                       timeoutTimer,
+
+                       // Url cleanup var
+                       urlAnchor,
+
+                       // Request state (becomes false upon send and true upon completion)
+                       completed,
+
+                       // To know if global events are to be dispatched
+                       fireGlobals,
+
+                       // Loop variable
+                       i,
+
+                       // uncached part of the url
+                       uncached,
+
+                       // Create the final options object
+                       s = jQuery.ajaxSetup( {}, options ),
+
+                       // Callbacks context
+                       callbackContext = s.context || s,
+
+                       // Context for global events is callbackContext if it is a DOM node or jQuery collection
+                       globalEventContext = s.context &&
+                               ( callbackContext.nodeType || callbackContext.jquery ) ?
+                                       jQuery( callbackContext ) :
+                                       jQuery.event,
+
+                       // Deferreds
+                       deferred = jQuery.Deferred(),
+                       completeDeferred = jQuery.Callbacks( "once memory" ),
+
+                       // Status-dependent callbacks
+                       statusCode = s.statusCode || {},
+
+                       // Headers (they are sent all at once)
+                       requestHeaders = {},
+                       requestHeadersNames = {},
+
+                       // Default abort message
+                       strAbort = "canceled",
+
+                       // Fake xhr
+                       jqXHR = {
+                               readyState: 0,
+
+                               // Builds headers hashtable if needed
+                               getResponseHeader: function( key ) {
+                                       var match;
+                                       if ( completed ) {
+                                               if ( !responseHeaders ) {
+                                                       responseHeaders = {};
+                                                       while ( ( match = rheaders.exec( responseHeadersString ) ) ) {
+                                                               responseHeaders[ match[ 1 ].toLowerCase() ] = match[ 2 ];
+                                                       }
+                                               }
+                                               match = responseHeaders[ key.toLowerCase() ];
+                                       }
+                                       return match == null ? null : match;
+                               },
+
+                               // Raw string
+                               getAllResponseHeaders: function() {
+                                       return completed ? responseHeadersString : null;
+                               },
+
+                               // Caches the header
+                               setRequestHeader: function( name, value ) {
+                                       if ( completed == null ) {
+                                               name = requestHeadersNames[ name.toLowerCase() ] =
+                                                       requestHeadersNames[ name.toLowerCase() ] || name;
+                                               requestHeaders[ name ] = value;
+                                       }
+                                       return this;
+                               },
+
+                               // Overrides response content-type header
+                               overrideMimeType: function( type ) {
+                                       if ( completed == null ) {
+                                               s.mimeType = type;
+                                       }
+                                       return this;
+                               },
+
+                               // Status-dependent callbacks
+                               statusCode: function( map ) {
+                                       var code;
+                                       if ( map ) {
+                                               if ( completed ) {
+
+                                                       // Execute the appropriate callbacks
+                                                       jqXHR.always( map[ jqXHR.status ] );
+                                               } else {
+
+                                                       // Lazy-add the new callbacks in a way that preserves old ones
+                                                       for ( code in map ) {
+                                                               statusCode[ code ] = [ statusCode[ code ], map[ code ] ];
+                                                       }
+                                               }
+                                       }
+                                       return this;
+                               },
+
+                               // Cancel the request
+                               abort: function( statusText ) {
+                                       var finalText = statusText || strAbort;
+                                       if ( transport ) {
+                                               transport.abort( finalText );
+                                       }
+                                       done( 0, finalText );
+                                       return this;
+                               }
+                       };
+
+               // Attach deferreds
+               deferred.promise( jqXHR );
+
+               // Add protocol if not provided (prefilters might expect it)
+               // Handle falsy url in the settings object (#10093: consistency with old signature)
+               // We also use the url parameter if available
+               s.url = ( ( url || s.url || location.href ) + "" )
+                       .replace( rprotocol, location.protocol + "//" );
+
+               // Alias method option to type as per ticket #12004
+               s.type = options.method || options.type || s.method || s.type;
+
+               // Extract dataTypes list
+               s.dataTypes = ( s.dataType || "*" ).toLowerCase().match( rnothtmlwhite ) || [ "" ];
+
+               // A cross-domain request is in order when the origin doesn't match the current origin.
+               if ( s.crossDomain == null ) {
+                       urlAnchor = document.createElement( "a" );
+
+                       // Support: IE <=8 - 11, Edge 12 - 13
+                       // IE throws exception on accessing the href property if url is malformed,
+                       // e.g. http://example.com:80x/
+                       try {
+                               urlAnchor.href = s.url;
+
+                               // Support: IE <=8 - 11 only
+                               // Anchor's host property isn't correctly set when s.url is relative
+                               urlAnchor.href = urlAnchor.href;
+                               s.crossDomain = originAnchor.protocol + "//" + originAnchor.host !==
+                                       urlAnchor.protocol + "//" + urlAnchor.host;
+                       } catch ( e ) {
+
+                               // If there is an error parsing the URL, assume it is crossDomain,
+                               // it can be rejected by the transport if it is invalid
+                               s.crossDomain = true;
+                       }
+               }
+
+               // Convert data if not already a string
+               if ( s.data && s.processData && typeof s.data !== "string" ) {
+                       s.data = jQuery.param( s.data, s.traditional );
+               }
+
+               // Apply prefilters
+               inspectPrefiltersOrTransports( prefilters, s, options, jqXHR );
+
+               // If request was aborted inside a prefilter, stop there
+               if ( completed ) {
+                       return jqXHR;
+               }
+
+               // We can fire global events as of now if asked to
+               // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)
+               fireGlobals = jQuery.event && s.global;
+
+               // Watch for a new set of requests
+               if ( fireGlobals && jQuery.active++ === 0 ) {
+                       jQuery.event.trigger( "ajaxStart" );
+               }
+
+               // Uppercase the type
+               s.type = s.type.toUpperCase();
+
+               // Determine if request has content
+               s.hasContent = !rnoContent.test( s.type );
+
+               // Save the URL in case we're toying with the If-Modified-Since
+               // and/or If-None-Match header later on
+               // Remove hash to simplify url manipulation
+               cacheURL = s.url.replace( rhash, "" );
+
+               // More options handling for requests with no content
+               if ( !s.hasContent ) {
+
+                       // Remember the hash so we can put it back
+                       uncached = s.url.slice( cacheURL.length );
+
+                       // If data is available, append data to url
+                       if ( s.data ) {
+                               cacheURL += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data;
+
+                               // #9682: remove data so that it's not used in an eventual retry
+                               delete s.data;
+                       }
+
+                       // Add or update anti-cache param if needed
+                       if ( s.cache === false ) {
+                               cacheURL = cacheURL.replace( rantiCache, "$1" );
+                               uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce++ ) + uncached;
+                       }
+
+                       // Put hash and anti-cache on the URL that will be requested (gh-1732)
+                       s.url = cacheURL + uncached;
+
+               // Change '%20' to '+' if this is encoded form body content (gh-2658)
+               } else if ( s.data && s.processData &&
+                       ( s.contentType || "" ).indexOf( "application/x-www-form-urlencoded" ) === 0 ) {
+                       s.data = s.data.replace( r20, "+" );
+               }
+
+               // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
+               if ( s.ifModified ) {
+                       if ( jQuery.lastModified[ cacheURL ] ) {
+                               jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] );
+                       }
+                       if ( jQuery.etag[ cacheURL ] ) {
+                               jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] );
+                       }
+               }
+
+               // Set the correct header, if data is being sent
+               if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {
+                       jqXHR.setRequestHeader( "Content-Type", s.contentType );
+               }
+
+               // Set the Accepts header for the server, depending on the dataType
+               jqXHR.setRequestHeader(
+                       "Accept",
+                       s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?
+                               s.accepts[ s.dataTypes[ 0 ] ] +
+                                       ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) :
+                               s.accepts[ "*" ]
+               );
+
+               // Check for headers option
+               for ( i in s.headers ) {
+                       jqXHR.setRequestHeader( i, s.headers[ i ] );
+               }
+
+               // Allow custom headers/mimetypes and early abort
+               if ( s.beforeSend &&
+                       ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) {
+
+                       // Abort if not done already and return
+                       return jqXHR.abort();
+               }
+
+               // Aborting is no longer a cancellation
+               strAbort = "abort";
+
+               // Install callbacks on deferreds
+               completeDeferred.add( s.complete );
+               jqXHR.done( s.success );
+               jqXHR.fail( s.error );
+
+               // Get transport
+               transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );
+
+               // If no transport, we auto-abort
+               if ( !transport ) {
+                       done( -1, "No Transport" );
+               } else {
+                       jqXHR.readyState = 1;
+
+                       // Send global event
+                       if ( fireGlobals ) {
+                               globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] );
+                       }
+
+                       // If request was aborted inside ajaxSend, stop there
+                       if ( completed ) {
+                               return jqXHR;
+                       }
+
+                       // Timeout
+                       if ( s.async && s.timeout > 0 ) {
+                               timeoutTimer = window.setTimeout( function() {
+                                       jqXHR.abort( "timeout" );
+                               }, s.timeout );
+                       }
+
+                       try {
+                               completed = false;
+                               transport.send( requestHeaders, done );
+                       } catch ( e ) {
+
+                               // Rethrow post-completion exceptions
+                               if ( completed ) {
+                                       throw e;
+                               }
+
+                               // Propagate others as results
+                               done( -1, e );
+                       }
+               }
+
+               // Callback for when everything is done
+               function done( status, nativeStatusText, responses, headers ) {
+                       var isSuccess, success, error, response, modified,
+                               statusText = nativeStatusText;
+
+                       // Ignore repeat invocations
+                       if ( completed ) {
+                               return;
+                       }
+
+                       completed = true;
+
+                       // Clear timeout if it exists
+                       if ( timeoutTimer ) {
+                               window.clearTimeout( timeoutTimer );
+                       }
+
+                       // Dereference transport for early garbage collection
+                       // (no matter how long the jqXHR object will be used)
+                       transport = undefined;
+
+                       // Cache response headers
+                       responseHeadersString = headers || "";
+
+                       // Set readyState
+                       jqXHR.readyState = status > 0 ? 4 : 0;
+
+                       // Determine if successful
+                       isSuccess = status >= 200 && status < 300 || status === 304;
+
+                       // Get response data
+                       if ( responses ) {
+                               response = ajaxHandleResponses( s, jqXHR, responses );
+                       }
+
+                       // Convert no matter what (that way responseXXX fields are always set)
+                       response = ajaxConvert( s, response, jqXHR, isSuccess );
+
+                       // If successful, handle type chaining
+                       if ( isSuccess ) {
+
+                               // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
+                               if ( s.ifModified ) {
+                                       modified = jqXHR.getResponseHeader( "Last-Modified" );
+                                       if ( modified ) {
+                                               jQuery.lastModified[ cacheURL ] = modified;
+                                       }
+                                       modified = jqXHR.getResponseHeader( "etag" );
+                                       if ( modified ) {
+                                               jQuery.etag[ cacheURL ] = modified;
+                                       }
+                               }
+
+                               // if no content
+                               if ( status === 204 || s.type === "HEAD" ) {
+                                       statusText = "nocontent";
+
+                               // if not modified
+                               } else if ( status === 304 ) {
+                                       statusText = "notmodified";
+
+                               // If we have data, let's convert it
+                               } else {
+                                       statusText = response.state;
+                                       success = response.data;
+                                       error = response.error;
+                                       isSuccess = !error;
+                               }
+                       } else {
+
+                               // Extract error from statusText and normalize for non-aborts
+                               error = statusText;
+                               if ( status || !statusText ) {
+                                       statusText = "error";
+                                       if ( status < 0 ) {
+                                               status = 0;
+                                       }
+                               }
+                       }
+
+                       // Set data for the fake xhr object
+                       jqXHR.status = status;
+                       jqXHR.statusText = ( nativeStatusText || statusText ) + "";
+
+                       // Success/Error
+                       if ( isSuccess ) {
+                               deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );
+                       } else {
+                               deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );
+                       }
+
+                       // Status-dependent callbacks
+                       jqXHR.statusCode( statusCode );
+                       statusCode = undefined;
+
+                       if ( fireGlobals ) {
+                               globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError",
+                                       [ jqXHR, s, isSuccess ? success : error ] );
+                       }
+
+                       // Complete
+                       completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );
+
+                       if ( fireGlobals ) {
+                               globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] );
+
+                               // Handle the global AJAX counter
+                               if ( !( --jQuery.active ) ) {
+                                       jQuery.event.trigger( "ajaxStop" );
+                               }
+                       }
+               }
+
+               return jqXHR;
+       },
+
+       getJSON: function( url, data, callback ) {
+               return jQuery.get( url, data, callback, "json" );
+       },
+
+       getScript: function( url, callback ) {
+               return jQuery.get( url, undefined, callback, "script" );
+       }
+} );
+
+jQuery.each( [ "get", "post" ], function( i, method ) {
+       jQuery[ method ] = function( url, data, callback, type ) {
+
+               // Shift arguments if data argument was omitted
+               if ( jQuery.isFunction( data ) ) {
+                       type = type || callback;
+                       callback = data;
+                       data = undefined;
+               }
+
+               // The url can be an options object (which then must have .url)
+               return jQuery.ajax( jQuery.extend( {
+                       url: url,
+                       type: method,
+                       dataType: type,
+                       data: data,
+                       success: callback
+               }, jQuery.isPlainObject( url ) && url ) );
+       };
+} );
+
+return jQuery;
+} );
diff --git a/js/jquery/src/ajax/jsonp.js b/js/jquery/src/ajax/jsonp.js
new file mode 100644 (file)
index 0000000..8c406e7
--- /dev/null
@@ -0,0 +1,102 @@
+define( [
+       "../core",
+       "./var/nonce",
+       "./var/rquery",
+       "../ajax"
+], function( jQuery, nonce, rquery ) {
+
+"use strict";
+
+var oldCallbacks = [],
+       rjsonp = /(=)\?(?=&|$)|\?\?/;
+
+// Default jsonp settings
+jQuery.ajaxSetup( {
+       jsonp: "callback",
+       jsonpCallback: function() {
+               var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce++ ) );
+               this[ callback ] = true;
+               return callback;
+       }
+} );
+
+// Detect, normalize options and install callbacks for jsonp requests
+jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) {
+
+       var callbackName, overwritten, responseContainer,
+               jsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ?
+                       "url" :
+                       typeof s.data === "string" &&
+                               ( s.contentType || "" )
+                                       .indexOf( "application/x-www-form-urlencoded" ) === 0 &&
+                               rjsonp.test( s.data ) && "data"
+               );
+
+       // Handle iff the expected data type is "jsonp" or we have a parameter to set
+       if ( jsonProp || s.dataTypes[ 0 ] === "jsonp" ) {
+
+               // Get callback name, remembering preexisting value associated with it
+               callbackName = s.jsonpCallback = jQuery.isFunction( s.jsonpCallback ) ?
+                       s.jsonpCallback() :
+                       s.jsonpCallback;
+
+               // Insert callback into url or form data
+               if ( jsonProp ) {
+                       s[ jsonProp ] = s[ jsonProp ].replace( rjsonp, "$1" + callbackName );
+               } else if ( s.jsonp !== false ) {
+                       s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.jsonp + "=" + callbackName;
+               }
+
+               // Use data converter to retrieve json after script execution
+               s.converters[ "script json" ] = function() {
+                       if ( !responseContainer ) {
+                               jQuery.error( callbackName + " was not called" );
+                       }
+                       return responseContainer[ 0 ];
+               };
+
+               // Force json dataType
+               s.dataTypes[ 0 ] = "json";
+
+               // Install callback
+               overwritten = window[ callbackName ];
+               window[ callbackName ] = function() {
+                       responseContainer = arguments;
+               };
+
+               // Clean-up function (fires after converters)
+               jqXHR.always( function() {
+
+                       // If previous value didn't exist - remove it
+                       if ( overwritten === undefined ) {
+                               jQuery( window ).removeProp( callbackName );
+
+                       // Otherwise restore preexisting value
+                       } else {
+                               window[ callbackName ] = overwritten;
+                       }
+
+                       // Save back as free
+                       if ( s[ callbackName ] ) {
+
+                               // Make sure that re-using the options doesn't screw things around
+                               s.jsonpCallback = originalSettings.jsonpCallback;
+
+                               // Save the callback name for future use
+                               oldCallbacks.push( callbackName );
+                       }
+
+                       // Call if it was a function and we have a response
+                       if ( responseContainer && jQuery.isFunction( overwritten ) ) {
+                               overwritten( responseContainer[ 0 ] );
+                       }
+
+                       responseContainer = overwritten = undefined;
+               } );
+
+               // Delegate to script
+               return "script";
+       }
+} );
+
+} );
diff --git a/js/jquery/src/ajax/load.js b/js/jquery/src/ajax/load.js
new file mode 100644 (file)
index 0000000..3ce3a5a
--- /dev/null
@@ -0,0 +1,76 @@
+define( [
+       "../core",
+       "../core/stripAndCollapse",
+       "../core/parseHTML",
+       "../ajax",
+       "../traversing",
+       "../manipulation",
+       "../selector"
+], function( jQuery, stripAndCollapse ) {
+
+"use strict";
+
+/**
+ * Load a url into a page
+ */
+jQuery.fn.load = function( url, params, callback ) {
+       var selector, type, response,
+               self = this,
+               off = url.indexOf( " " );
+
+       if ( off > -1 ) {
+               selector = stripAndCollapse( url.slice( off ) );
+               url = url.slice( 0, off );
+       }
+
+       // If it's a function
+       if ( jQuery.isFunction( params ) ) {
+
+               // We assume that it's the callback
+               callback = params;
+               params = undefined;
+
+       // Otherwise, build a param string
+       } else if ( params && typeof params === "object" ) {
+               type = "POST";
+       }
+
+       // If we have elements to modify, make the request
+       if ( self.length > 0 ) {
+               jQuery.ajax( {
+                       url: url,
+
+                       // If "type" variable is undefined, then "GET" method will be used.
+                       // Make value of this field explicit since
+                       // user can override it through ajaxSetup method
+                       type: type || "GET",
+                       dataType: "html",
+                       data: params
+               } ).done( function( responseText ) {
+
+                       // Save response for use in complete callback
+                       response = arguments;
+
+                       self.html( selector ?
+
+                               // If a selector was specified, locate the right elements in a dummy div
+                               // Exclude scripts to avoid IE 'Permission Denied' errors
+                               jQuery( "<div>" ).append( jQuery.parseHTML( responseText ) ).find( selector ) :
+
+                               // Otherwise use the full result
+                               responseText );
+
+               // If the request succeeds, this function gets "data", "status", "jqXHR"
+               // but they are ignored because response was set above.
+               // If it fails, this function gets "jqXHR", "status", "error"
+               } ).always( callback && function( jqXHR, status ) {
+                       self.each( function() {
+                               callback.apply( this, response || [ jqXHR.responseText, status, jqXHR ] );
+                       } );
+               } );
+       }
+
+       return this;
+};
+
+} );
diff --git a/js/jquery/src/ajax/parseXML.js b/js/jquery/src/ajax/parseXML.js
new file mode 100644 (file)
index 0000000..acf7ab2
--- /dev/null
@@ -0,0 +1,30 @@
+define( [
+       "../core"
+], function( jQuery ) {
+
+"use strict";
+
+// Cross-browser xml parsing
+jQuery.parseXML = function( data ) {
+       var xml;
+       if ( !data || typeof data !== "string" ) {
+               return null;
+       }
+
+       // Support: IE 9 - 11 only
+       // IE throws on parseFromString with invalid input.
+       try {
+               xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" );
+       } catch ( e ) {
+               xml = undefined;
+       }
+
+       if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) {
+               jQuery.error( "Invalid XML: " + data );
+       }
+       return xml;
+};
+
+return jQuery.parseXML;
+
+} );
diff --git a/js/jquery/src/ajax/script.js b/js/jquery/src/ajax/script.js
new file mode 100644 (file)
index 0000000..6e0d21e
--- /dev/null
@@ -0,0 +1,77 @@
+define( [
+       "../core",
+       "../var/document",
+       "../ajax"
+], function( jQuery, document ) {
+
+"use strict";
+
+// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)
+jQuery.ajaxPrefilter( function( s ) {
+       if ( s.crossDomain ) {
+               s.contents.script = false;
+       }
+} );
+
+// Install script dataType
+jQuery.ajaxSetup( {
+       accepts: {
+               script: "text/javascript, application/javascript, " +
+                       "application/ecmascript, application/x-ecmascript"
+       },
+       contents: {
+               script: /\b(?:java|ecma)script\b/
+       },
+       converters: {
+               "text script": function( text ) {
+                       jQuery.globalEval( text );
+                       return text;
+               }
+       }
+} );
+
+// Handle cache's special case and crossDomain
+jQuery.ajaxPrefilter( "script", function( s ) {
+       if ( s.cache === undefined ) {
+               s.cache = false;
+       }
+       if ( s.crossDomain ) {
+               s.type = "GET";
+       }
+} );
+
+// Bind script tag hack transport
+jQuery.ajaxTransport( "script", function( s ) {
+
+       // This transport only deals with cross domain requests
+       if ( s.crossDomain ) {
+               var script, callback;
+               return {
+                       send: function( _, complete ) {
+                               script = jQuery( "<script>" ).prop( {
+                                       charset: s.scriptCharset,
+                                       src: s.url
+                               } ).on(
+                                       "load error",
+                                       callback = function( evt ) {
+                                               script.remove();
+                                               callback = null;
+                                               if ( evt ) {
+                                                       complete( evt.type === "error" ? 404 : 200, evt.type );
+                                               }
+                                       }
+                               );
+
+                               // Use native DOM manipulation to avoid our domManip AJAX trickery
+                               document.head.appendChild( script[ 0 ] );
+                       },
+                       abort: function() {
+                               if ( callback ) {
+                                       callback();
+                               }
+                       }
+               };
+       }
+} );
+
+} );
diff --git a/js/jquery/src/ajax/var/location.js b/js/jquery/src/ajax/var/location.js
new file mode 100644 (file)
index 0000000..4171d18
--- /dev/null
@@ -0,0 +1,5 @@
+define( function() {
+       "use strict";
+
+       return window.location;
+} );
diff --git a/js/jquery/src/ajax/var/nonce.js b/js/jquery/src/ajax/var/nonce.js
new file mode 100644 (file)
index 0000000..6e23708
--- /dev/null
@@ -0,0 +1,7 @@
+define( [
+       "../../core"
+], function( jQuery ) {
+       "use strict";
+
+       return jQuery.now();
+} );
diff --git a/js/jquery/src/ajax/var/rquery.js b/js/jquery/src/ajax/var/rquery.js
new file mode 100644 (file)
index 0000000..06fc374
--- /dev/null
@@ -0,0 +1,5 @@
+define( function() {
+       "use strict";
+
+       return ( /\?/ );
+} );
diff --git a/js/jquery/src/ajax/xhr.js b/js/jquery/src/ajax/xhr.js
new file mode 100644 (file)
index 0000000..33dafb0
--- /dev/null
@@ -0,0 +1,169 @@
+define( [
+       "../core",
+       "../var/support",
+       "../ajax"
+], function( jQuery, support ) {
+
+"use strict";
+
+jQuery.ajaxSettings.xhr = function() {
+       try {
+               return new window.XMLHttpRequest();
+       } catch ( e ) {}
+};
+
+var xhrSuccessStatus = {
+
+               // File protocol always yields status code 0, assume 200
+               0: 200,
+
+               // Support: IE <=9 only
+               // #1450: sometimes IE returns 1223 when it should be 204
+               1223: 204
+       },
+       xhrSupported = jQuery.ajaxSettings.xhr();
+
+support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported );
+support.ajax = xhrSupported = !!xhrSupported;
+
+jQuery.ajaxTransport( function( options ) {
+       var callback, errorCallback;
+
+       // Cross domain only allowed if supported through XMLHttpRequest
+       if ( support.cors || xhrSupported && !options.crossDomain ) {
+               return {
+                       send: function( headers, complete ) {
+                               var i,
+                                       xhr = options.xhr();
+
+                               xhr.open(
+                                       options.type,
+                                       options.url,
+                                       options.async,
+                                       options.username,
+                                       options.password
+                               );
+
+                               // Apply custom fields if provided
+                               if ( options.xhrFields ) {
+                                       for ( i in options.xhrFields ) {
+                                               xhr[ i ] = options.xhrFields[ i ];
+                                       }
+                               }
+
+                               // Override mime type if needed
+                               if ( options.mimeType && xhr.overrideMimeType ) {
+                                       xhr.overrideMimeType( options.mimeType );
+                               }
+
+                               // X-Requested-With header
+                               // For cross-domain requests, seeing as conditions for a preflight are
+                               // akin to a jigsaw puzzle, we simply never set it to be sure.
+                               // (it can always be set on a per-request basis or even using ajaxSetup)
+                               // For same-domain requests, won't change header if already provided.
+                               if ( !options.crossDomain && !headers[ "X-Requested-With" ] ) {
+                                       headers[ "X-Requested-With" ] = "XMLHttpRequest";
+                               }
+
+                               // Set headers
+                               for ( i in headers ) {
+                                       xhr.setRequestHeader( i, headers[ i ] );
+                               }
+
+                               // Callback
+                               callback = function( type ) {
+                                       return function() {
+                                               if ( callback ) {
+                                                       callback = errorCallback = xhr.onload =
+                                                               xhr.onerror = xhr.onabort = xhr.onreadystatechange = null;
+
+                                                       if ( type === "abort" ) {
+                                                               xhr.abort();
+                                                       } else if ( type === "error" ) {
+
+                                                               // Support: IE <=9 only
+                                                               // On a manual native abort, IE9 throws
+                                                               // errors on any property access that is not readyState
+                                                               if ( typeof xhr.status !== "number" ) {
+                                                                       complete( 0, "error" );
+                                                               } else {
+                                                                       complete(
+
+                                                                               // File: protocol always yields status 0; see #8605, #14207
+                                                                               xhr.status,
+                                                                               xhr.statusText
+                                                                       );
+                                                               }
+                                                       } else {
+                                                               complete(
+                                                                       xhrSuccessStatus[ xhr.status ] || xhr.status,
+                                                                       xhr.statusText,
+
+                                                                       // Support: IE <=9 only
+                                                                       // IE9 has no XHR2 but throws on binary (trac-11426)
+                                                                       // For XHR2 non-text, let the caller handle it (gh-2498)
+                                                                       ( xhr.responseType || "text" ) !== "text"  ||
+                                                                       typeof xhr.responseText !== "string" ?
+                                                                               { binary: xhr.response } :
+                                                                               { text: xhr.responseText },
+                                                                       xhr.getAllResponseHeaders()
+                                                               );
+                                                       }
+                                               }
+                                       };
+                               };
+
+                               // Listen to events
+                               xhr.onload = callback();
+                               errorCallback = xhr.onerror = callback( "error" );
+
+                               // Support: IE 9 only
+                               // Use onreadystatechange to replace onabort
+                               // to handle uncaught aborts
+                               if ( xhr.onabort !== undefined ) {
+                                       xhr.onabort = errorCallback;
+                               } else {
+                                       xhr.onreadystatechange = function() {
+
+                                               // Check readyState before timeout as it changes
+                                               if ( xhr.readyState === 4 ) {
+
+                                                       // Allow onerror to be called first,
+                                                       // but that will not handle a native abort
+                                                       // Also, save errorCallback to a variable
+                                                       // as xhr.onerror cannot be accessed
+                                                       window.setTimeout( function() {
+                                                               if ( callback ) {
+                                                                       errorCallback();
+                                                               }
+                                                       } );
+                                               }
+                                       };
+                               }
+
+                               // Create the abort callback
+                               callback = callback( "abort" );
+
+                               try {
+
+                                       // Do send the request (this may raise an exception)
+                                       xhr.send( options.hasContent && options.data || null );
+                               } catch ( e ) {
+
+                                       // #14683: Only rethrow if this hasn't been notified as an error yet
+                                       if ( callback ) {
+                                               throw e;
+                                       }
+                               }
+                       },
+
+                       abort: function() {
+                               if ( callback ) {
+                                       callback();
+                               }
+                       }
+               };
+       }
+} );
+
+} );
diff --git a/js/jquery/src/attributes.js b/js/jquery/src/attributes.js
new file mode 100644 (file)
index 0000000..2d801e5
--- /dev/null
@@ -0,0 +1,13 @@
+define( [
+       "./core",
+       "./attributes/attr",
+       "./attributes/prop",
+       "./attributes/classes",
+       "./attributes/val"
+], function( jQuery ) {
+
+"use strict";
+
+// Return jQuery for attributes-only inclusion
+return jQuery;
+} );
diff --git a/js/jquery/src/attributes/attr.js b/js/jquery/src/attributes/attr.js
new file mode 100644 (file)
index 0000000..6b5cbd2
--- /dev/null
@@ -0,0 +1,141 @@
+define( [
+       "../core",
+       "../core/access",
+       "../core/nodeName",
+       "./support",
+       "../var/rnothtmlwhite",
+       "../selector"
+], function( jQuery, access, nodeName, support, rnothtmlwhite ) {
+
+"use strict";
+
+var boolHook,
+       attrHandle = jQuery.expr.attrHandle;
+
+jQuery.fn.extend( {
+       attr: function( name, value ) {
+               return access( this, jQuery.attr, name, value, arguments.length > 1 );
+       },
+
+       removeAttr: function( name ) {
+               return this.each( function() {
+                       jQuery.removeAttr( this, name );
+               } );
+       }
+} );
+
+jQuery.extend( {
+       attr: function( elem, name, value ) {
+               var ret, hooks,
+                       nType = elem.nodeType;
+
+               // Don't get/set attributes on text, comment and attribute nodes
+               if ( nType === 3 || nType === 8 || nType === 2 ) {
+                       return;
+               }
+
+               // Fallback to prop when attributes are not supported
+               if ( typeof elem.getAttribute === "undefined" ) {
+                       return jQuery.prop( elem, name, value );
+               }
+
+               // Attribute hooks are determined by the lowercase version
+               // Grab necessary hook if one is defined
+               if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {
+                       hooks = jQuery.attrHooks[ name.toLowerCase() ] ||
+                               ( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );
+               }
+
+               if ( value !== undefined ) {
+                       if ( value === null ) {
+                               jQuery.removeAttr( elem, name );
+                               return;
+                       }
+
+                       if ( hooks && "set" in hooks &&
+                               ( ret = hooks.set( elem, value, name ) ) !== undefined ) {
+                               return ret;
+                       }
+
+                       elem.setAttribute( name, value + "" );
+                       return value;
+               }
+
+               if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {
+                       return ret;
+               }
+
+               ret = jQuery.find.attr( elem, name );
+
+               // Non-existent attributes return null, we normalize to undefined
+               return ret == null ? undefined : ret;
+       },
+
+       attrHooks: {
+               type: {
+                       set: function( elem, value ) {
+                               if ( !support.radioValue && value === "radio" &&
+                                       nodeName( elem, "input" ) ) {
+                                       var val = elem.value;
+                                       elem.setAttribute( "type", value );
+                                       if ( val ) {
+                                               elem.value = val;
+                                       }
+                                       return value;
+                               }
+                       }
+               }
+       },
+
+       removeAttr: function( elem, value ) {
+               var name,
+                       i = 0,
+
+                       // Attribute names can contain non-HTML whitespace characters
+                       // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2
+                       attrNames = value && value.match( rnothtmlwhite );
+
+               if ( attrNames && elem.nodeType === 1 ) {
+                       while ( ( name = attrNames[ i++ ] ) ) {
+                               elem.removeAttribute( name );
+                       }
+               }
+       }
+} );
+
+// Hooks for boolean attributes
+boolHook = {
+       set: function( elem, value, name ) {
+               if ( value === false ) {
+
+                       // Remove boolean attributes when set to false
+                       jQuery.removeAttr( elem, name );
+               } else {
+                       elem.setAttribute( name, name );
+               }
+               return name;
+       }
+};
+
+jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) {
+       var getter = attrHandle[ name ] || jQuery.find.attr;
+
+       attrHandle[ name ] = function( elem, name, isXML ) {
+               var ret, handle,
+                       lowercaseName = name.toLowerCase();
+
+               if ( !isXML ) {
+
+                       // Avoid an infinite loop by temporarily removing this function from the getter
+                       handle = attrHandle[ lowercaseName ];
+                       attrHandle[ lowercaseName ] = ret;
+                       ret = getter( elem, name, isXML ) != null ?
+                               lowercaseName :
+                               null;
+                       attrHandle[ lowercaseName ] = handle;
+               }
+               return ret;
+       };
+} );
+
+} );
diff --git a/js/jquery/src/attributes/classes.js b/js/jquery/src/attributes/classes.js
new file mode 100644 (file)
index 0000000..23b4cd6
--- /dev/null
@@ -0,0 +1,174 @@
+define( [
+       "../core",
+       "../core/stripAndCollapse",
+       "../var/rnothtmlwhite",
+       "../data/var/dataPriv",
+       "../core/init"
+], function( jQuery, stripAndCollapse, rnothtmlwhite, dataPriv ) {
+
+"use strict";
+
+function getClass( elem ) {
+       return elem.getAttribute && elem.getAttribute( "class" ) || "";
+}
+
+jQuery.fn.extend( {
+       addClass: function( value ) {
+               var classes, elem, cur, curValue, clazz, j, finalValue,
+                       i = 0;
+
+               if ( jQuery.isFunction( value ) ) {
+                       return this.each( function( j ) {
+                               jQuery( this ).addClass( value.call( this, j, getClass( this ) ) );
+                       } );
+               }
+
+               if ( typeof value === "string" && value ) {
+                       classes = value.match( rnothtmlwhite ) || [];
+
+                       while ( ( elem = this[ i++ ] ) ) {
+                               curValue = getClass( elem );
+                               cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " );
+
+                               if ( cur ) {
+                                       j = 0;
+                                       while ( ( clazz = classes[ j++ ] ) ) {
+                                               if ( cur.indexOf( " " + clazz + " " ) < 0 ) {
+                                                       cur += clazz + " ";
+                                               }
+                                       }
+
+                                       // Only assign if different to avoid unneeded rendering.
+                                       finalValue = stripAndCollapse( cur );
+                                       if ( curValue !== finalValue ) {
+                                               elem.setAttribute( "class", finalValue );
+                                       }
+                               }
+                       }
+               }
+
+               return this;
+       },
+
+       removeClass: function( value ) {
+               var classes, elem, cur, curValue, clazz, j, finalValue,
+                       i = 0;
+
+               if ( jQuery.isFunction( value ) ) {
+                       return this.each( function( j ) {
+                               jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );
+                       } );
+               }
+
+               if ( !arguments.length ) {
+                       return this.attr( "class", "" );
+               }
+
+               if ( typeof value === "string" && value ) {
+                       classes = value.match( rnothtmlwhite ) || [];
+
+                       while ( ( elem = this[ i++ ] ) ) {
+                               curValue = getClass( elem );
+
+                               // This expression is here for better compressibility (see addClass)
+                               cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " );
+
+                               if ( cur ) {
+                                       j = 0;
+                                       while ( ( clazz = classes[ j++ ] ) ) {
+
+                                               // Remove *all* instances
+                                               while ( cur.indexOf( " " + clazz + " " ) > -1 ) {
+                                                       cur = cur.replace( " " + clazz + " ", " " );
+                                               }
+                                       }
+
+                                       // Only assign if different to avoid unneeded rendering.
+                                       finalValue = stripAndCollapse( cur );
+                                       if ( curValue !== finalValue ) {
+                                               elem.setAttribute( "class", finalValue );
+                                       }
+                               }
+                       }
+               }
+
+               return this;
+       },
+
+       toggleClass: function( value, stateVal ) {
+               var type = typeof value;
+
+               if ( typeof stateVal === "boolean" && type === "string" ) {
+                       return stateVal ? this.addClass( value ) : this.removeClass( value );
+               }
+
+               if ( jQuery.isFunction( value ) ) {
+                       return this.each( function( i ) {
+                               jQuery( this ).toggleClass(
+                                       value.call( this, i, getClass( this ), stateVal ),
+                                       stateVal
+                               );
+                       } );
+               }
+
+               return this.each( function() {
+                       var className, i, self, classNames;
+
+                       if ( type === "string" ) {
+
+                               // Toggle individual class names
+                               i = 0;
+                               self = jQuery( this );
+                               classNames = value.match( rnothtmlwhite ) || [];
+
+                               while ( ( className = classNames[ i++ ] ) ) {
+
+                                       // Check each className given, space separated list
+                                       if ( self.hasClass( className ) ) {
+                                               self.removeClass( className );
+                                       } else {
+                                               self.addClass( className );
+                                       }
+                               }
+
+                       // Toggle whole class name
+                       } else if ( value === undefined || type === "boolean" ) {
+                               className = getClass( this );
+                               if ( className ) {
+
+                                       // Store className if set
+                                       dataPriv.set( this, "__className__", className );
+                               }
+
+                               // If the element has a class name or if we're passed `false`,
+                               // then remove the whole classname (if there was one, the above saved it).
+                               // Otherwise bring back whatever was previously saved (if anything),
+                               // falling back to the empty string if nothing was stored.
+                               if ( this.setAttribute ) {
+                                       this.setAttribute( "class",
+                                               className || value === false ?
+                                               "" :
+                                               dataPriv.get( this, "__className__" ) || ""
+                                       );
+                               }
+                       }
+               } );
+       },
+
+       hasClass: function( selector ) {
+               var className, elem,
+                       i = 0;
+
+               className = " " + selector + " ";
+               while ( ( elem = this[ i++ ] ) ) {
+                       if ( elem.nodeType === 1 &&
+                               ( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) {
+                                       return true;
+                       }
+               }
+
+               return false;
+       }
+} );
+
+} );
diff --git a/js/jquery/src/attributes/prop.js b/js/jquery/src/attributes/prop.js
new file mode 100644 (file)
index 0000000..49ac244
--- /dev/null
@@ -0,0 +1,143 @@
+define( [
+       "../core",
+       "../core/access",
+       "./support",
+       "../selector"
+], function( jQuery, access, support ) {
+
+"use strict";
+
+var rfocusable = /^(?:input|select|textarea|button)$/i,
+       rclickable = /^(?:a|area)$/i;
+
+jQuery.fn.extend( {
+       prop: function( name, value ) {
+               return access( this, jQuery.prop, name, value, arguments.length > 1 );
+       },
+
+       removeProp: function( name ) {
+               return this.each( function() {
+                       delete this[ jQuery.propFix[ name ] || name ];
+               } );
+       }
+} );
+
+jQuery.extend( {
+       prop: function( elem, name, value ) {
+               var ret, hooks,
+                       nType = elem.nodeType;
+
+               // Don't get/set properties on text, comment and attribute nodes
+               if ( nType === 3 || nType === 8 || nType === 2 ) {
+                       return;
+               }
+
+               if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {
+
+                       // Fix name and attach hooks
+                       name = jQuery.propFix[ name ] || name;
+                       hooks = jQuery.propHooks[ name ];
+               }
+
+               if ( value !== undefined ) {
+                       if ( hooks && "set" in hooks &&
+                               ( ret = hooks.set( elem, value, name ) ) !== undefined ) {
+                               return ret;
+                       }
+
+                       return ( elem[ name ] = value );
+               }
+
+               if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {
+                       return ret;
+               }
+
+               return elem[ name ];
+       },
+
+       propHooks: {
+               tabIndex: {
+                       get: function( elem ) {
+
+                               // Support: IE <=9 - 11 only
+                               // elem.tabIndex doesn't always return the
+                               // correct value when it hasn't been explicitly set
+                               // https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/
+                               // Use proper attribute retrieval(#12072)
+                               var tabindex = jQuery.find.attr( elem, "tabindex" );
+
+                               if ( tabindex ) {
+                                       return parseInt( tabindex, 10 );
+                               }
+
+                               if (
+                                       rfocusable.test( elem.nodeName ) ||
+                                       rclickable.test( elem.nodeName ) &&
+                                       elem.href
+                               ) {
+                                       return 0;
+                               }
+
+                               return -1;
+                       }
+               }
+       },
+
+       propFix: {
+               "for": "htmlFor",
+               "class": "className"
+       }
+} );
+
+// Support: IE <=11 only
+// Accessing the selectedIndex property
+// forces the browser to respect setting selected
+// on the option
+// The getter ensures a default option is selected
+// when in an optgroup
+// eslint rule "no-unused-expressions" is disabled for this code
+// since it considers such accessions noop
+if ( !support.optSelected ) {
+       jQuery.propHooks.selected = {
+               get: function( elem ) {
+
+                       /* eslint no-unused-expressions: "off" */
+
+                       var parent = elem.parentNode;
+                       if ( parent && parent.parentNode ) {
+                               parent.parentNode.selectedIndex;
+                       }
+                       return null;
+               },
+               set: function( elem ) {
+
+                       /* eslint no-unused-expressions: "off" */
+
+                       var parent = elem.parentNode;
+                       if ( parent ) {
+                               parent.selectedIndex;
+
+                               if ( parent.parentNode ) {
+                                       parent.parentNode.selectedIndex;
+                               }
+                       }
+               }
+       };
+}
+
+jQuery.each( [
+       "tabIndex",
+       "readOnly",
+       "maxLength",
+       "cellSpacing",
+       "cellPadding",
+       "rowSpan",
+       "colSpan",
+       "useMap",
+       "frameBorder",
+       "contentEditable"
+], function() {
+       jQuery.propFix[ this.toLowerCase() ] = this;
+} );
+
+} );
diff --git a/js/jquery/src/attributes/support.js b/js/jquery/src/attributes/support.js
new file mode 100644 (file)
index 0000000..af60e96
--- /dev/null
@@ -0,0 +1,33 @@
+define( [
+       "../var/document",
+       "../var/support"
+], function( document, support ) {
+
+"use strict";
+
+( function() {
+       var input = document.createElement( "input" ),
+               select = document.createElement( "select" ),
+               opt = select.appendChild( document.createElement( "option" ) );
+
+       input.type = "checkbox";
+
+       // Support: Android <=4.3 only
+       // Default value for a checkbox should be "on"
+       support.checkOn = input.value !== "";
+
+       // Support: IE <=11 only
+       // Must access selectedIndex to make default options select
+       support.optSelected = opt.selected;
+
+       // Support: IE <=11 only
+       // An input loses its value after becoming a radio
+       input = document.createElement( "input" );
+       input.value = "t";
+       input.type = "radio";
+       support.radioValue = input.value === "t";
+} )();
+
+return support;
+
+} );
diff --git a/js/jquery/src/attributes/val.js b/js/jquery/src/attributes/val.js
new file mode 100644 (file)
index 0000000..d764ec6
--- /dev/null
@@ -0,0 +1,190 @@
+define( [
+       "../core",
+       "../core/stripAndCollapse",
+       "./support",
+       "../core/nodeName",
+
+       "../core/init"
+], function( jQuery, stripAndCollapse, support, nodeName ) {
+
+"use strict";
+
+var rreturn = /\r/g;
+
+jQuery.fn.extend( {
+       val: function( value ) {
+               var hooks, ret, isFunction,
+                       elem = this[ 0 ];
+
+               if ( !arguments.length ) {
+                       if ( elem ) {
+                               hooks = jQuery.valHooks[ elem.type ] ||
+                                       jQuery.valHooks[ elem.nodeName.toLowerCase() ];
+
+                               if ( hooks &&
+                                       "get" in hooks &&
+                                       ( ret = hooks.get( elem, "value" ) ) !== undefined
+                               ) {
+                                       return ret;
+                               }
+
+                               ret = elem.value;
+
+                               // Handle most common string cases
+                               if ( typeof ret === "string" ) {
+                                       return ret.replace( rreturn, "" );
+                               }
+
+                               // Handle cases where value is null/undef or number
+                               return ret == null ? "" : ret;
+                       }
+
+                       return;
+               }
+
+               isFunction = jQuery.isFunction( value );
+
+               return this.each( function( i ) {
+                       var val;
+
+                       if ( this.nodeType !== 1 ) {
+                               return;
+                       }
+
+                       if ( isFunction ) {
+                               val = value.call( this, i, jQuery( this ).val() );
+                       } else {
+                               val = value;
+                       }
+
+                       // Treat null/undefined as ""; convert numbers to string
+                       if ( val == null ) {
+                               val = "";
+
+                       } else if ( typeof val === "number" ) {
+                               val += "";
+
+                       } else if ( Array.isArray( val ) ) {
+                               val = jQuery.map( val, function( value ) {
+                                       return value == null ? "" : value + "";
+                               } );
+                       }
+
+                       hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];
+
+                       // If set returns undefined, fall back to normal setting
+                       if ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) {
+                               this.value = val;
+                       }
+               } );
+       }
+} );
+
+jQuery.extend( {
+       valHooks: {
+               option: {
+                       get: function( elem ) {
+
+                               var val = jQuery.find.attr( elem, "value" );
+                               return val != null ?
+                                       val :
+
+                                       // Support: IE <=10 - 11 only
+                                       // option.text throws exceptions (#14686, #14858)
+                                       // Strip and collapse whitespace
+                                       // https://html.spec.whatwg.org/#strip-and-collapse-whitespace
+                                       stripAndCollapse( jQuery.text( elem ) );
+                       }
+               },
+               select: {
+                       get: function( elem ) {
+                               var value, option, i,
+                                       options = elem.options,
+                                       index = elem.selectedIndex,
+                                       one = elem.type === "select-one",
+                                       values = one ? null : [],
+                                       max = one ? index + 1 : options.length;
+
+                               if ( index < 0 ) {
+                                       i = max;
+
+                               } else {
+                                       i = one ? index : 0;
+                               }
+
+                               // Loop through all the selected options
+                               for ( ; i < max; i++ ) {
+                                       option = options[ i ];
+
+                                       // Support: IE <=9 only
+                                       // IE8-9 doesn't update selected after form reset (#2551)
+                                       if ( ( option.selected || i === index ) &&
+
+                                                       // Don't return options that are disabled or in a disabled optgroup
+                                                       !option.disabled &&
+                                                       ( !option.parentNode.disabled ||
+                                                               !nodeName( option.parentNode, "optgroup" ) ) ) {
+
+                                               // Get the specific value for the option
+                                               value = jQuery( option ).val();
+
+                                               // We don't need an array for one selects
+                                               if ( one ) {
+                                                       return value;
+                                               }
+
+                                               // Multi-Selects return an array
+                                               values.push( value );
+                                       }
+                               }
+
+                               return values;
+                       },
+
+                       set: function( elem, value ) {
+                               var optionSet, option,
+                                       options = elem.options,
+                                       values = jQuery.makeArray( value ),
+                                       i = options.length;
+
+                               while ( i-- ) {
+                                       option = options[ i ];
+
+                                       /* eslint-disable no-cond-assign */
+
+                                       if ( option.selected =
+                                               jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1
+                                       ) {
+                                               optionSet = true;
+                                       }
+
+                                       /* eslint-enable no-cond-assign */
+                               }
+
+                               // Force browsers to behave consistently when non-matching value is set
+                               if ( !optionSet ) {
+                                       elem.selectedIndex = -1;
+                               }
+                               return values;
+                       }
+               }
+       }
+} );
+
+// Radios and checkboxes getter/setter
+jQuery.each( [ "radio", "checkbox" ], function() {
+       jQuery.valHooks[ this ] = {
+               set: function( elem, value ) {
+                       if ( Array.isArray( value ) ) {
+                               return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );
+                       }
+               }
+       };
+       if ( !support.checkOn ) {
+               jQuery.valHooks[ this ].get = function( elem ) {
+                       return elem.getAttribute( "value" ) === null ? "on" : elem.value;
+               };
+       }
+} );
+
+} );
diff --git a/js/jquery/src/callbacks.js b/js/jquery/src/callbacks.js
new file mode 100644 (file)
index 0000000..8831e53
--- /dev/null
@@ -0,0 +1,234 @@
+define( [
+       "./core",
+       "./var/rnothtmlwhite"
+], function( jQuery, rnothtmlwhite ) {
+
+"use strict";
+
+// Convert String-formatted options into Object-formatted ones
+function createOptions( options ) {
+       var object = {};
+       jQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {
+               object[ flag ] = true;
+       } );
+       return object;
+}
+
+/*
+ * Create a callback list using the following parameters:
+ *
+ *     options: an optional list of space-separated options that will change how
+ *                     the callback list behaves or a more traditional option object
+ *
+ * By default a callback list will act like an event callback list and can be
+ * "fired" multiple times.
+ *
+ * Possible options:
+ *
+ *     once:                   will ensure the callback list can only be fired once (like a Deferred)
+ *
+ *     memory:                 will keep track of previous values and will call any callback added
+ *                                     after the list has been fired right away with the latest "memorized"
+ *                                     values (like a Deferred)
+ *
+ *     unique:                 will ensure a callback can only be added once (no duplicate in the list)
+ *
+ *     stopOnFalse:    interrupt callings when a callback returns false
+ *
+ */
+jQuery.Callbacks = function( options ) {
+
+       // Convert options from String-formatted to Object-formatted if needed
+       // (we check in cache first)
+       options = typeof options === "string" ?
+               createOptions( options ) :
+               jQuery.extend( {}, options );
+
+       var // Flag to know if list is currently firing
+               firing,
+
+               // Last fire value for non-forgettable lists
+               memory,
+
+               // Flag to know if list was already fired
+               fired,
+
+               // Flag to prevent firing
+               locked,
+
+               // Actual callback list
+               list = [],
+
+               // Queue of execution data for repeatable lists
+               queue = [],
+
+               // Index of currently firing callback (modified by add/remove as needed)
+               firingIndex = -1,
+
+               // Fire callbacks
+               fire = function() {
+
+                       // Enforce single-firing
+                       locked = locked || options.once;
+
+                       // Execute callbacks for all pending executions,
+                       // respecting firingIndex overrides and runtime changes
+                       fired = firing = true;
+                       for ( ; queue.length; firingIndex = -1 ) {
+                               memory = queue.shift();
+                               while ( ++firingIndex < list.length ) {
+
+                                       // Run callback and check for early termination
+                                       if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&
+                                               options.stopOnFalse ) {
+
+                                               // Jump to end and forget the data so .add doesn't re-fire
+                                               firingIndex = list.length;
+                                               memory = false;
+                                       }
+                               }
+                       }
+
+                       // Forget the data if we're done with it
+                       if ( !options.memory ) {
+                               memory = false;
+                       }
+
+                       firing = false;
+
+                       // Clean up if we're done firing for good
+                       if ( locked ) {
+
+                               // Keep an empty list if we have data for future add calls
+                               if ( memory ) {
+                                       list = [];
+
+                               // Otherwise, this object is spent
+                               } else {
+                                       list = "";
+                               }
+                       }
+               },
+
+               // Actual Callbacks object
+               self = {
+
+                       // Add a callback or a collection of callbacks to the list
+                       add: function() {
+                               if ( list ) {
+
+                                       // If we have memory from a past run, we should fire after adding
+                                       if ( memory && !firing ) {
+                                               firingIndex = list.length - 1;
+                                               queue.push( memory );
+                                       }
+
+                                       ( function add( args ) {
+                                               jQuery.each( args, function( _, arg ) {
+                                                       if ( jQuery.isFunction( arg ) ) {
+                                                               if ( !options.unique || !self.has( arg ) ) {
+                                                                       list.push( arg );
+                                                               }
+                                                       } else if ( arg && arg.length && jQuery.type( arg ) !== "string" ) {
+
+                                                               // Inspect recursively
+                                                               add( arg );
+                                                       }
+                                               } );
+                                       } )( arguments );
+
+                                       if ( memory && !firing ) {
+                                               fire();
+                                       }
+                               }
+                               return this;
+                       },
+
+                       // Remove a callback from the list
+                       remove: function() {
+                               jQuery.each( arguments, function( _, arg ) {
+                                       var index;
+                                       while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {
+                                               list.splice( index, 1 );
+
+                                               // Handle firing indexes
+                                               if ( index <= firingIndex ) {
+                                                       firingIndex--;
+                                               }
+                                       }
+                               } );
+                               return this;
+                       },
+
+                       // Check if a given callback is in the list.
+                       // If no argument is given, return whether or not list has callbacks attached.
+                       has: function( fn ) {
+                               return fn ?
+                                       jQuery.inArray( fn, list ) > -1 :
+                                       list.length > 0;
+                       },
+
+                       // Remove all callbacks from the list
+                       empty: function() {
+                               if ( list ) {
+                                       list = [];
+                               }
+                               return this;
+                       },
+
+                       // Disable .fire and .add
+                       // Abort any current/pending executions
+                       // Clear all callbacks and values
+                       disable: function() {
+                               locked = queue = [];
+                               list = memory = "";
+                               return this;
+                       },
+                       disabled: function() {
+                               return !list;
+                       },
+
+                       // Disable .fire
+                       // Also disable .add unless we have memory (since it would have no effect)
+                       // Abort any pending executions
+                       lock: function() {
+                               locked = queue = [];
+                               if ( !memory && !firing ) {
+                                       list = memory = "";
+                               }
+                               return this;
+                       },
+                       locked: function() {
+                               return !!locked;
+                       },
+
+                       // Call all callbacks with the given context and arguments
+                       fireWith: function( context, args ) {
+                               if ( !locked ) {
+                                       args = args || [];
+                                       args = [ context, args.slice ? args.slice() : args ];
+                                       queue.push( args );
+                                       if ( !firing ) {
+                                               fire();
+                                       }
+                               }
+                               return this;
+                       },
+
+                       // Call all the callbacks with the given arguments
+                       fire: function() {
+                               self.fireWith( this, arguments );
+                               return this;
+                       },
+
+                       // To know if the callbacks have already been called at least once
+                       fired: function() {
+                               return !!fired;
+                       }
+               };
+
+       return self;
+};
+
+return jQuery;
+} );
diff --git a/js/jquery/src/core.js b/js/jquery/src/core.js
new file mode 100644 (file)
index 0000000..0e95274
--- /dev/null
@@ -0,0 +1,476 @@
+/* global Symbol */
+// Defining this global in .eslintrc.json would create a danger of using the global
+// unguarded in another place, it seems safer to define global only for this module
+
+define( [
+       "./var/arr",
+       "./var/document",
+       "./var/getProto",
+       "./var/slice",
+       "./var/concat",
+       "./var/push",
+       "./var/indexOf",
+       "./var/class2type",
+       "./var/toString",
+       "./var/hasOwn",
+       "./var/fnToString",
+       "./var/ObjectFunctionString",
+       "./var/support",
+       "./core/DOMEval"
+], function( arr, document, getProto, slice, concat, push, indexOf,
+       class2type, toString, hasOwn, fnToString, ObjectFunctionString,
+       support, DOMEval ) {
+
+"use strict";
+
+var
+       version = "3.2.1",
+
+       // Define a local copy of jQuery
+       jQuery = function( selector, context ) {
+
+               // The jQuery object is actually just the init constructor 'enhanced'
+               // Need init if jQuery is called (just allow error to be thrown if not included)
+               return new jQuery.fn.init( selector, context );
+       },
+
+       // Support: Android <=4.0 only
+       // Make sure we trim BOM and NBSP
+       rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
+
+       // Matches dashed string for camelizing
+       rmsPrefix = /^-ms-/,
+       rdashAlpha = /-([a-z])/g,
+
+       // Used by jQuery.camelCase as callback to replace()
+       fcamelCase = function( all, letter ) {
+               return letter.toUpperCase();
+       };
+
+jQuery.fn = jQuery.prototype = {
+
+       // The current version of jQuery being used
+       jquery: version,
+
+       constructor: jQuery,
+
+       // The default length of a jQuery object is 0
+       length: 0,
+
+       toArray: function() {
+               return slice.call( this );
+       },
+
+       // Get the Nth element in the matched element set OR
+       // Get the whole matched element set as a clean array
+       get: function( num ) {
+
+               // Return all the elements in a clean array
+               if ( num == null ) {
+                       return slice.call( this );
+               }
+
+               // Return just the one element from the set
+               return num < 0 ? this[ num + this.length ] : this[ num ];
+       },
+
+       // Take an array of elements and push it onto the stack
+       // (returning the new matched element set)
+       pushStack: function( elems ) {
+
+               // Build a new jQuery matched element set
+               var ret = jQuery.merge( this.constructor(), elems );
+
+               // Add the old object onto the stack (as a reference)
+               ret.prevObject = this;
+
+               // Return the newly-formed element set
+               return ret;
+       },
+
+       // Execute a callback for every element in the matched set.
+       each: function( callback ) {
+               return jQuery.each( this, callback );
+       },
+
+       map: function( callback ) {
+               return this.pushStack( jQuery.map( this, function( elem, i ) {
+                       return callback.call( elem, i, elem );
+               } ) );
+       },
+
+       slice: function() {
+               return this.pushStack( slice.apply( this, arguments ) );
+       },
+
+       first: function() {
+               return this.eq( 0 );
+       },
+
+       last: function() {
+               return this.eq( -1 );
+       },
+
+       eq: function( i ) {
+               var len = this.length,
+                       j = +i + ( i < 0 ? len : 0 );
+               return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );
+       },
+
+       end: function() {
+               return this.prevObject || this.constructor();
+       },
+
+       // For internal use only.
+       // Behaves like an Array's method, not like a jQuery method.
+       push: push,
+       sort: arr.sort,
+       splice: arr.splice
+};
+
+jQuery.extend = jQuery.fn.extend = function() {
+       var options, name, src, copy, copyIsArray, clone,
+               target = arguments[ 0 ] || {},
+               i = 1,
+               length = arguments.length,
+               deep = false;
+
+       // Handle a deep copy situation
+       if ( typeof target === "boolean" ) {
+               deep = target;
+
+               // Skip the boolean and the target
+               target = arguments[ i ] || {};
+               i++;
+       }
+
+       // Handle case when target is a string or something (possible in deep copy)
+       if ( typeof target !== "object" && !jQuery.isFunction( target ) ) {
+               target = {};
+       }
+
+       // Extend jQuery itself if only one argument is passed
+       if ( i === length ) {
+               target = this;
+               i--;
+       }
+
+       for ( ; i < length; i++ ) {
+
+               // Only deal with non-null/undefined values
+               if ( ( options = arguments[ i ] ) != null ) {
+
+                       // Extend the base object
+                       for ( name in options ) {
+                               src = target[ name ];
+                               copy = options[ name ];
+
+                               // Prevent never-ending loop
+                               if ( target === copy ) {
+                                       continue;
+                               }
+
+                               // Recurse if we're merging plain objects or arrays
+                               if ( deep && copy && ( jQuery.isPlainObject( copy ) ||
+                                       ( copyIsArray = Array.isArray( copy ) ) ) ) {
+
+                                       if ( copyIsArray ) {
+                                               copyIsArray = false;
+                                               clone = src && Array.isArray( src ) ? src : [];
+
+                                       } else {
+                                               clone = src && jQuery.isPlainObject( src ) ? src : {};
+                                       }
+
+                                       // Never move original objects, clone them
+                                       target[ name ] = jQuery.extend( deep, clone, copy );
+
+                               // Don't bring in undefined values
+                               } else if ( copy !== undefined ) {
+                                       target[ name ] = copy;
+                               }
+                       }
+               }
+       }
+
+       // Return the modified object
+       return target;
+};
+
+jQuery.extend( {
+
+       // Unique for each copy of jQuery on the page
+       expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ),
+
+       // Assume jQuery is ready without the ready module
+       isReady: true,
+
+       error: function( msg ) {
+               throw new Error( msg );
+       },
+
+       noop: function() {},
+
+       isFunction: function( obj ) {
+               return jQuery.type( obj ) === "function";
+       },
+
+       isWindow: function( obj ) {
+               return obj != null && obj === obj.window;
+       },
+
+       isNumeric: function( obj ) {
+
+               // As of jQuery 3.0, isNumeric is limited to
+               // strings and numbers (primitives or objects)
+               // that can be coerced to finite numbers (gh-2662)
+               var type = jQuery.type( obj );
+               return ( type === "number" || type === "string" ) &&
+
+                       // parseFloat NaNs numeric-cast false positives ("")
+                       // ...but misinterprets leading-number strings, particularly hex literals ("0x...")
+                       // subtraction forces infinities to NaN
+                       !isNaN( obj - parseFloat( obj ) );
+       },
+
+       isPlainObject: function( obj ) {
+               var proto, Ctor;
+
+               // Detect obvious negatives
+               // Use toString instead of jQuery.type to catch host objects
+               if ( !obj || toString.call( obj ) !== "[object Object]" ) {
+                       return false;
+               }
+
+               proto = getProto( obj );
+
+               // Objects with no prototype (e.g., `Object.create( null )`) are plain
+               if ( !proto ) {
+                       return true;
+               }
+
+               // Objects with prototype are plain iff they were constructed by a global Object function
+               Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor;
+               return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString;
+       },
+
+       isEmptyObject: function( obj ) {
+
+               /* eslint-disable no-unused-vars */
+               // See https://github.com/eslint/eslint/issues/6125
+               var name;
+
+               for ( name in obj ) {
+                       return false;
+               }
+               return true;
+       },
+
+       type: function( obj ) {
+               if ( obj == null ) {
+                       return obj + "";
+               }
+
+               // Support: Android <=2.3 only (functionish RegExp)
+               return typeof obj === "object" || typeof obj === "function" ?
+                       class2type[ toString.call( obj ) ] || "object" :
+                       typeof obj;
+       },
+
+       // Evaluates a script in a global context
+       globalEval: function( code ) {
+               DOMEval( code );
+       },
+
+       // Convert dashed to camelCase; used by the css and data modules
+       // Support: IE <=9 - 11, Edge 12 - 13
+       // Microsoft forgot to hump their vendor prefix (#9572)
+       camelCase: function( string ) {
+               return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
+       },
+
+       each: function( obj, callback ) {
+               var length, i = 0;
+
+               if ( isArrayLike( obj ) ) {
+                       length = obj.length;
+                       for ( ; i < length; i++ ) {
+                               if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
+                                       break;
+                               }
+                       }
+               } else {
+                       for ( i in obj ) {
+                               if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
+                                       break;
+                               }
+                       }
+               }
+
+               return obj;
+       },
+
+       // Support: Android <=4.0 only
+       trim: function( text ) {
+               return text == null ?
+                       "" :
+                       ( text + "" ).replace( rtrim, "" );
+       },
+
+       // results is for internal usage only
+       makeArray: function( arr, results ) {
+               var ret = results || [];
+
+               if ( arr != null ) {
+                       if ( isArrayLike( Object( arr ) ) ) {
+                               jQuery.merge( ret,
+                                       typeof arr === "string" ?
+                                       [ arr ] : arr
+                               );
+                       } else {
+                               push.call( ret, arr );
+                       }
+               }
+
+               return ret;
+       },
+
+       inArray: function( elem, arr, i ) {
+               return arr == null ? -1 : indexOf.call( arr, elem, i );
+       },
+
+       // Support: Android <=4.0 only, PhantomJS 1 only
+       // push.apply(_, arraylike) throws on ancient WebKit
+       merge: function( first, second ) {
+               var len = +second.length,
+                       j = 0,
+                       i = first.length;
+
+               for ( ; j < len; j++ ) {
+                       first[ i++ ] = second[ j ];
+               }
+
+               first.length = i;
+
+               return first;
+       },
+
+       grep: function( elems, callback, invert ) {
+               var callbackInverse,
+                       matches = [],
+                       i = 0,
+                       length = elems.length,
+                       callbackExpect = !invert;
+
+               // Go through the array, only saving the items
+               // that pass the validator function
+               for ( ; i < length; i++ ) {
+                       callbackInverse = !callback( elems[ i ], i );
+                       if ( callbackInverse !== callbackExpect ) {
+                               matches.push( elems[ i ] );
+                       }
+               }
+
+               return matches;
+       },
+
+       // arg is for internal usage only
+       map: function( elems, callback, arg ) {
+               var length, value,
+                       i = 0,
+                       ret = [];
+
+               // Go through the array, translating each of the items to their new values
+               if ( isArrayLike( elems ) ) {
+                       length = elems.length;
+                       for ( ; i < length; i++ ) {
+                               value = callback( elems[ i ], i, arg );
+
+                               if ( value != null ) {
+                                       ret.push( value );
+                               }
+                       }
+
+               // Go through every key on the object,
+               } else {
+                       for ( i in elems ) {
+                               value = callback( elems[ i ], i, arg );
+
+                               if ( value != null ) {
+                                       ret.push( value );
+                               }
+                       }
+               }
+
+               // Flatten any nested arrays
+               return concat.apply( [], ret );
+       },
+
+       // A global GUID counter for objects
+       guid: 1,
+
+       // Bind a function to a context, optionally partially applying any
+       // arguments.
+       proxy: function( fn, context ) {
+               var tmp, args, proxy;
+
+               if ( typeof context === "string" ) {
+                       tmp = fn[ context ];
+                       context = fn;
+                       fn = tmp;
+               }
+
+               // Quick check to determine if target is callable, in the spec
+               // this throws a TypeError, but we will just return undefined.
+               if ( !jQuery.isFunction( fn ) ) {
+                       return undefined;
+               }
+
+               // Simulated bind
+               args = slice.call( arguments, 2 );
+               proxy = function() {
+                       return fn.apply( context || this, args.concat( slice.call( arguments ) ) );
+               };
+
+               // Set the guid of unique handler to the same of original handler, so it can be removed
+               proxy.guid = fn.guid = fn.guid || jQuery.guid++;
+
+               return proxy;
+       },
+
+       now: Date.now,
+
+       // jQuery.support is not used in Core but other projects attach their
+       // properties to it so it needs to exist.
+       support: support
+} );
+
+if ( typeof Symbol === "function" ) {
+       jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];
+}
+
+// Populate the class2type map
+jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ),
+function( i, name ) {
+       class2type[ "[object " + name + "]" ] = name.toLowerCase();
+} );
+
+function isArrayLike( obj ) {
+
+       // Support: real iOS 8.2 only (not reproducible in simulator)
+       // `in` check used to prevent JIT error (gh-2145)
+       // hasOwn isn't used here due to false negatives
+       // regarding Nodelist length in IE
+       var length = !!obj && "length" in obj && obj.length,
+               type = jQuery.type( obj );
+
+       if ( type === "function" || jQuery.isWindow( obj ) ) {
+               return false;
+       }
+
+       return type === "array" || length === 0 ||
+               typeof length === "number" && length > 0 && ( length - 1 ) in obj;
+}
+
+return jQuery;
+} );
diff --git a/js/jquery/src/core/DOMEval.js b/js/jquery/src/core/DOMEval.js
new file mode 100644 (file)
index 0000000..c49c12e
--- /dev/null
@@ -0,0 +1,16 @@
+define( [
+       "../var/document"
+], function( document ) {
+       "use strict";
+
+       function DOMEval( code, doc ) {
+               doc = doc || document;
+
+               var script = doc.createElement( "script" );
+
+               script.text = code;
+               doc.head.appendChild( script ).parentNode.removeChild( script );
+       }
+
+       return DOMEval;
+} );
diff --git a/js/jquery/src/core/access.js b/js/jquery/src/core/access.js
new file mode 100644 (file)
index 0000000..86cdbc7
--- /dev/null
@@ -0,0 +1,70 @@
+define( [
+       "../core"
+], function( jQuery ) {
+
+"use strict";
+
+// Multifunctional method to get and set values of a collection
+// The value/s can optionally be executed if it's a function
+var access = function( elems, fn, key, value, chainable, emptyGet, raw ) {
+       var i = 0,
+               len = elems.length,
+               bulk = key == null;
+
+       // Sets many values
+       if ( jQuery.type( key ) === "object" ) {
+               chainable = true;
+               for ( i in key ) {
+                       access( elems, fn, i, key[ i ], true, emptyGet, raw );
+               }
+
+       // Sets one value
+       } else if ( value !== undefined ) {
+               chainable = true;
+
+               if ( !jQuery.isFunction( value ) ) {
+                       raw = true;
+               }
+
+               if ( bulk ) {
+
+                       // Bulk operations run against the entire set
+                       if ( raw ) {
+                               fn.call( elems, value );
+                               fn = null;
+
+                       // ...except when executing function values
+                       } else {
+                               bulk = fn;
+                               fn = function( elem, key, value ) {
+                                       return bulk.call( jQuery( elem ), value );
+                               };
+                       }
+               }
+
+               if ( fn ) {
+                       for ( ; i < len; i++ ) {
+                               fn(
+                                       elems[ i ], key, raw ?
+                                       value :
+                                       value.call( elems[ i ], i, fn( elems[ i ], key ) )
+                               );
+                       }
+               }
+       }
+
+       if ( chainable ) {
+               return elems;
+       }
+
+       // Gets
+       if ( bulk ) {
+               return fn.call( elems );
+       }
+
+       return len ? fn( elems[ 0 ], key ) : emptyGet;
+};
+
+return access;
+
+} );
diff --git a/js/jquery/src/core/init.js b/js/jquery/src/core/init.js
new file mode 100644 (file)
index 0000000..8841264
--- /dev/null
@@ -0,0 +1,128 @@
+// Initialize a jQuery object
+define( [
+       "../core",
+       "../var/document",
+       "./var/rsingleTag",
+
+       "../traversing/findFilter"
+], function( jQuery, document, rsingleTag ) {
+
+"use strict";
+
+// A central reference to the root jQuery(document)
+var rootjQuery,
+
+       // A simple way to check for HTML strings
+       // Prioritize #id over <tag> to avoid XSS via location.hash (#9521)
+       // Strict HTML recognition (#11290: must start with <)
+       // Shortcut simple #id case for speed
+       rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,
+
+       init = jQuery.fn.init = function( selector, context, root ) {
+               var match, elem;
+
+               // HANDLE: $(""), $(null), $(undefined), $(false)
+               if ( !selector ) {
+                       return this;
+               }
+
+               // Method init() accepts an alternate rootjQuery
+               // so migrate can support jQuery.sub (gh-2101)
+               root = root || rootjQuery;
+
+               // Handle HTML strings
+               if ( typeof selector === "string" ) {
+                       if ( selector[ 0 ] === "<" &&
+                               selector[ selector.length - 1 ] === ">" &&
+                               selector.length >= 3 ) {
+
+                               // Assume that strings that start and end with <> are HTML and skip the regex check
+                               match = [ null, selector, null ];
+
+                       } else {
+                               match = rquickExpr.exec( selector );
+                       }
+
+                       // Match html or make sure no context is specified for #id
+                       if ( match && ( match[ 1 ] || !context ) ) {
+
+                               // HANDLE: $(html) -> $(array)
+                               if ( match[ 1 ] ) {
+                                       context = context instanceof jQuery ? context[ 0 ] : context;
+
+                                       // Option to run scripts is true for back-compat
+                                       // Intentionally let the error be thrown if parseHTML is not present
+                                       jQuery.merge( this, jQuery.parseHTML(
+                                               match[ 1 ],
+                                               context && context.nodeType ? context.ownerDocument || context : document,
+                                               true
+                                       ) );
+
+                                       // HANDLE: $(html, props)
+                                       if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {
+                                               for ( match in context ) {
+
+                                                       // Properties of context are called as methods if possible
+                                                       if ( jQuery.isFunction( this[ match ] ) ) {
+                                                               this[ match ]( context[ match ] );
+
+                                                       // ...and otherwise set as attributes
+                                                       } else {
+                                                               this.attr( match, context[ match ] );
+                                                       }
+                                               }
+                                       }
+
+                                       return this;
+
+                               // HANDLE: $(#id)
+                               } else {
+                                       elem = document.getElementById( match[ 2 ] );
+
+                                       if ( elem ) {
+
+                                               // Inject the element directly into the jQuery object
+                                               this[ 0 ] = elem;
+                                               this.length = 1;
+                                       }
+                                       return this;
+                               }
+
+                       // HANDLE: $(expr, $(...))
+                       } else if ( !context || context.jquery ) {
+                               return ( context || root ).find( selector );
+
+                       // HANDLE: $(expr, context)
+                       // (which is just equivalent to: $(context).find(expr)
+                       } else {
+                               return this.constructor( context ).find( selector );
+                       }
+
+               // HANDLE: $(DOMElement)
+               } else if ( selector.nodeType ) {
+                       this[ 0 ] = selector;
+                       this.length = 1;
+                       return this;
+
+               // HANDLE: $(function)
+               // Shortcut for document ready
+               } else if ( jQuery.isFunction( selector ) ) {
+                       return root.ready !== undefined ?
+                               root.ready( selector ) :
+
+                               // Execute immediately if ready is not present
+                               selector( jQuery );
+               }
+
+               return jQuery.makeArray( selector, this );
+       };
+
+// Give the init function the jQuery prototype for later instantiation
+init.prototype = jQuery.fn;
+
+// Initialize central reference
+rootjQuery = jQuery( document );
+
+return init;
+
+} );
diff --git a/js/jquery/src/core/nodeName.js b/js/jquery/src/core/nodeName.js
new file mode 100644 (file)
index 0000000..8a5f5f0
--- /dev/null
@@ -0,0 +1,13 @@
+define( function() {
+
+"use strict";
+
+function nodeName( elem, name ) {
+
+  return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();
+
+};
+
+return nodeName;
+
+} );
diff --git a/js/jquery/src/core/parseHTML.js b/js/jquery/src/core/parseHTML.js
new file mode 100644 (file)
index 0000000..21ff6bf
--- /dev/null
@@ -0,0 +1,65 @@
+define( [
+       "../core",
+       "../var/document",
+       "./var/rsingleTag",
+       "../manipulation/buildFragment",
+
+       // This is the only module that needs core/support
+       "./support"
+], function( jQuery, document, rsingleTag, buildFragment, support ) {
+
+"use strict";
+
+// Argument "data" should be string of html
+// context (optional): If specified, the fragment will be created in this context,
+// defaults to document
+// keepScripts (optional): If true, will include scripts passed in the html string
+jQuery.parseHTML = function( data, context, keepScripts ) {
+       if ( typeof data !== "string" ) {
+               return [];
+       }
+       if ( typeof context === "boolean" ) {
+               keepScripts = context;
+               context = false;
+       }
+
+       var base, parsed, scripts;
+
+       if ( !context ) {
+
+               // Stop scripts or inline event handlers from being executed immediately
+               // by using document.implementation
+               if ( support.createHTMLDocument ) {
+                       context = document.implementation.createHTMLDocument( "" );
+
+                       // Set the base href for the created document
+                       // so any parsed elements with URLs
+                       // are based on the document's URL (gh-2965)
+                       base = context.createElement( "base" );
+                       base.href = document.location.href;
+                       context.head.appendChild( base );
+               } else {
+                       context = document;
+               }
+       }
+
+       parsed = rsingleTag.exec( data );
+       scripts = !keepScripts && [];
+
+       // Single tag
+       if ( parsed ) {
+               return [ context.createElement( parsed[ 1 ] ) ];
+       }
+
+       parsed = buildFragment( [ data ], context, scripts );
+
+       if ( scripts && scripts.length ) {
+               jQuery( scripts ).remove();
+       }
+
+       return jQuery.merge( [], parsed.childNodes );
+};
+
+return jQuery.parseHTML;
+
+} );
diff --git a/js/jquery/src/core/ready-no-deferred.js b/js/jquery/src/core/ready-no-deferred.js
new file mode 100644 (file)
index 0000000..a7722ae
--- /dev/null
@@ -0,0 +1,96 @@
+define( [
+       "../core",
+       "../var/document"
+], function( jQuery, document ) {
+
+"use strict";
+
+var readyCallbacks = [],
+       whenReady = function( fn ) {
+               readyCallbacks.push( fn );
+       },
+       executeReady = function( fn ) {
+
+               // Prevent errors from freezing future callback execution (gh-1823)
+               // Not backwards-compatible as this does not execute sync
+               window.setTimeout( function() {
+                       fn.call( document, jQuery );
+               } );
+       };
+
+jQuery.fn.ready = function( fn ) {
+       whenReady( fn );
+       return this;
+};
+
+jQuery.extend( {
+
+       // Is the DOM ready to be used? Set to true once it occurs.
+       isReady: false,
+
+       // A counter to track how many items to wait for before
+       // the ready event fires. See #6781
+       readyWait: 1,
+
+       ready: function( wait ) {
+
+               // Abort if there are pending holds or we're already ready
+               if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {
+                       return;
+               }
+
+               // Remember that the DOM is ready
+               jQuery.isReady = true;
+
+               // If a normal DOM Ready event fired, decrement, and wait if need be
+               if ( wait !== true && --jQuery.readyWait > 0 ) {
+                       return;
+               }
+
+               whenReady = function( fn ) {
+                       readyCallbacks.push( fn );
+
+                       while ( readyCallbacks.length ) {
+                               fn = readyCallbacks.shift();
+                               if ( jQuery.isFunction( fn ) ) {
+                                       executeReady( fn );
+                               }
+                       }
+               };
+
+               whenReady();
+       }
+} );
+
+// Make jQuery.ready Promise consumable (gh-1778)
+jQuery.ready.then = jQuery.fn.ready;
+
+/**
+ * The ready event handler and self cleanup method
+ */
+function completed() {
+       document.removeEventListener( "DOMContentLoaded", completed );
+       window.removeEventListener( "load", completed );
+       jQuery.ready();
+}
+
+// Catch cases where $(document).ready() is called
+// after the browser event has already occurred.
+// Support: IE9-10 only
+// Older IE sometimes signals "interactive" too soon
+if ( document.readyState === "complete" ||
+       ( document.readyState !== "loading" && !document.documentElement.doScroll ) ) {
+
+       // Handle it asynchronously to allow scripts the opportunity to delay ready
+       window.setTimeout( jQuery.ready );
+
+} else {
+
+       // Use the handy event callback
+       document.addEventListener( "DOMContentLoaded", completed );
+
+       // A fallback to window.onload, that will always work
+       window.addEventListener( "load", completed );
+}
+
+} );
diff --git a/js/jquery/src/core/ready.js b/js/jquery/src/core/ready.js
new file mode 100644 (file)
index 0000000..794feee
--- /dev/null
@@ -0,0 +1,86 @@
+define( [
+       "../core",
+       "../var/document",
+       "../core/readyException",
+       "../deferred"
+], function( jQuery, document ) {
+
+"use strict";
+
+// The deferred used on DOM ready
+var readyList = jQuery.Deferred();
+
+jQuery.fn.ready = function( fn ) {
+
+       readyList
+               .then( fn )
+
+               // Wrap jQuery.readyException in a function so that the lookup
+               // happens at the time of error handling instead of callback
+               // registration.
+               .catch( function( error ) {
+                       jQuery.readyException( error );
+               } );
+
+       return this;
+};
+
+jQuery.extend( {
+
+       // Is the DOM ready to be used? Set to true once it occurs.
+       isReady: false,
+
+       // A counter to track how many items to wait for before
+       // the ready event fires. See #6781
+       readyWait: 1,
+
+       // Handle when the DOM is ready
+       ready: function( wait ) {
+
+               // Abort if there are pending holds or we're already ready
+               if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {
+                       return;
+               }
+
+               // Remember that the DOM is ready
+               jQuery.isReady = true;
+
+               // If a normal DOM Ready event fired, decrement, and wait if need be
+               if ( wait !== true && --jQuery.readyWait > 0 ) {
+                       return;
+               }
+
+               // If there are functions bound, to execute
+               readyList.resolveWith( document, [ jQuery ] );
+       }
+} );
+
+jQuery.ready.then = readyList.then;
+
+// The ready event handler and self cleanup method
+function completed() {
+       document.removeEventListener( "DOMContentLoaded", completed );
+       window.removeEventListener( "load", completed );
+       jQuery.ready();
+}
+
+// Catch cases where $(document).ready() is called
+// after the browser event has already occurred.
+// Support: IE <=9 - 10 only
+// Older IE sometimes signals "interactive" too soon
+if ( document.readyState === "complete" ||
+       ( document.readyState !== "loading" && !document.documentElement.doScroll ) ) {
+
+       // Handle it asynchronously to allow scripts the opportunity to delay ready
+       window.setTimeout( jQuery.ready );
+
+} else {
+
+       // Use the handy event callback
+       document.addEventListener( "DOMContentLoaded", completed );
+
+       // A fallback to window.onload, that will always work
+       window.addEventListener( "load", completed );
+}
+
+} );
diff --git a/js/jquery/src/core/readyException.js b/js/jquery/src/core/readyException.js
new file mode 100644 (file)
index 0000000..72bdd90
--- /dev/null
@@ -0,0 +1,13 @@
+define( [
+       "../core"
+], function( jQuery ) {
+
+"use strict";
+
+jQuery.readyException = function( error ) {
+       window.setTimeout( function() {
+               throw error;
+       } );
+};
+
+} );
diff --git a/js/jquery/src/core/stripAndCollapse.js b/js/jquery/src/core/stripAndCollapse.js
new file mode 100644 (file)
index 0000000..ccad660
--- /dev/null
@@ -0,0 +1,14 @@
+define( [
+       "../var/rnothtmlwhite"
+], function( rnothtmlwhite ) {
+       "use strict";
+
+       // Strip and collapse whitespace according to HTML spec
+       // https://html.spec.whatwg.org/multipage/infrastructure.html#strip-and-collapse-whitespace
+       function stripAndCollapse( value ) {
+               var tokens = value.match( rnothtmlwhite ) || [];
+               return tokens.join( " " );
+       }
+
+       return stripAndCollapse;
+} );
diff --git a/js/jquery/src/core/support.js b/js/jquery/src/core/support.js
new file mode 100644 (file)
index 0000000..13ae02f
--- /dev/null
@@ -0,0 +1,20 @@
+define( [
+       "../var/document",
+       "../var/support"
+], function( document, support ) {
+
+"use strict";
+
+// Support: Safari 8 only
+// In Safari 8 documents created via document.implementation.createHTMLDocument
+// collapse sibling forms: the second one becomes a child of the first one.
+// Because of that, this security measure has to be disabled in Safari 8.
+// https://bugs.webkit.org/show_bug.cgi?id=137337
+support.createHTMLDocument = ( function() {
+       var body = document.implementation.createHTMLDocument( "" ).body;
+       body.innerHTML = "<form></form><form></form>";
+       return body.childNodes.length === 2;
+} )();
+
+return support;
+} );
diff --git a/js/jquery/src/core/var/rsingleTag.js b/js/jquery/src/core/var/rsingleTag.js
new file mode 100644 (file)
index 0000000..4d6e8a0
--- /dev/null
@@ -0,0 +1,6 @@
+define( function() {
+       "use strict";
+
+       // Match a standalone tag
+       return ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i );
+} );
diff --git a/js/jquery/src/css.js b/js/jquery/src/css.js
new file mode 100644 (file)
index 0000000..48a8340
--- /dev/null
@@ -0,0 +1,438 @@
+define( [
+       "./core",
+       "./var/pnum",
+       "./core/access",
+       "./css/var/rmargin",
+       "./var/document",
+       "./var/rcssNum",
+       "./css/var/rnumnonpx",
+       "./css/var/cssExpand",
+       "./css/var/getStyles",
+       "./css/var/swap",
+       "./css/curCSS",
+       "./css/adjustCSS",
+       "./css/addGetHookIf",
+       "./css/support",
+
+       "./core/init",
+       "./core/ready",
+       "./selector" // contains
+], function( jQuery, pnum, access, rmargin, document, rcssNum, rnumnonpx, cssExpand,
+       getStyles, swap, curCSS, adjustCSS, addGetHookIf, support ) {
+
+"use strict";
+
+var
+
+       // Swappable if display is none or starts with table
+       // except "table", "table-cell", or "table-caption"
+       // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display
+       rdisplayswap = /^(none|table(?!-c[ea]).+)/,
+       rcustomProp = /^--/,
+       cssShow = { position: "absolute", visibility: "hidden", display: "block" },
+       cssNormalTransform = {
+               letterSpacing: "0",
+               fontWeight: "400"
+       },
+
+       cssPrefixes = [ "Webkit", "Moz", "ms" ],
+       emptyStyle = document.createElement( "div" ).style;
+
+// Return a css property mapped to a potentially vendor prefixed property
+function vendorPropName( name ) {
+
+       // Shortcut for names that are not vendor prefixed
+       if ( name in emptyStyle ) {
+               return name;
+       }
+
+       // Check for vendor prefixed names
+       var capName = name[ 0 ].toUpperCase() + name.slice( 1 ),
+               i = cssPrefixes.length;
+
+       while ( i-- ) {
+               name = cssPrefixes[ i ] + capName;
+               if ( name in emptyStyle ) {
+                       return name;
+               }
+       }
+}
+
+// Return a property mapped along what jQuery.cssProps suggests or to
+// a vendor prefixed property.
+function finalPropName( name ) {
+       var ret = jQuery.cssProps[ name ];
+       if ( !ret ) {
+               ret = jQuery.cssProps[ name ] = vendorPropName( name ) || name;
+       }
+       return ret;
+}
+
+function setPositiveNumber( elem, value, subtract ) {
+
+       // Any relative (+/-) values have already been
+       // normalized at this point
+       var matches = rcssNum.exec( value );
+       return matches ?
+
+               // Guard against undefined "subtract", e.g., when used as in cssHooks
+               Math.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || "px" ) :
+               value;
+}
+
+function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) {
+       var i,
+               val = 0;
+
+       // If we already have the right measurement, avoid augmentation
+       if ( extra === ( isBorderBox ? "border" : "content" ) ) {
+               i = 4;
+
+       // Otherwise initialize for horizontal or vertical properties
+       } else {
+               i = name === "width" ? 1 : 0;
+       }
+
+       for ( ; i < 4; i += 2 ) {
+
+               // Both box models exclude margin, so add it if we want it
+               if ( extra === "margin" ) {
+                       val += jQuery.css( elem, extra + cssExpand[ i ], true, styles );
+               }
+
+               if ( isBorderBox ) {
+
+                       // border-box includes padding, so remove it if we want content
+                       if ( extra === "content" ) {
+                               val -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
+                       }
+
+                       // At this point, extra isn't border nor margin, so remove border
+                       if ( extra !== "margin" ) {
+                               val -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
+                       }
+               } else {
+
+                       // At this point, extra isn't content, so add padding
+                       val += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
+
+                       // At this point, extra isn't content nor padding, so add border
+                       if ( extra !== "padding" ) {
+                               val += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
+                       }
+               }
+       }
+
+       return val;
+}
+
+function getWidthOrHeight( elem, name, extra ) {
+
+       // Start with computed style
+       var valueIsBorderBox,
+               styles = getStyles( elem ),
+               val = curCSS( elem, name, styles ),
+               isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box";
+
+       // Computed unit is not pixels. Stop here and return.
+       if ( rnumnonpx.test( val ) ) {
+               return val;
+       }
+
+       // Check for style in case a browser which returns unreliable values
+       // for getComputedStyle silently falls back to the reliable elem.style
+       valueIsBorderBox = isBorderBox &&
+               ( support.boxSizingReliable() || val === elem.style[ name ] );
+
+       // Fall back to offsetWidth/Height when value is "auto"
+       // This happens for inline elements with no explicit setting (gh-3571)
+       if ( val === "auto" ) {
+               val = elem[ "offset" + name[ 0 ].toUpperCase() + name.slice( 1 ) ];
+       }
+
+       // Normalize "", auto, and prepare for extra
+       val = parseFloat( val ) || 0;
+
+       // Use the active box-sizing model to add/subtract irrelevant styles
+       return ( val +
+               augmentWidthOrHeight(
+                       elem,
+                       name,
+                       extra || ( isBorderBox ? "border" : "content" ),
+                       valueIsBorderBox,
+                       styles
+               )
+       ) + "px";
+}
+
+jQuery.extend( {
+
+       // Add in style property hooks for overriding the default
+       // behavior of getting and setting a style property
+       cssHooks: {
+               opacity: {
+                       get: function( elem, computed ) {
+                               if ( computed ) {
+
+                                       // We should always get a number back from opacity
+                                       var ret = curCSS( elem, "opacity" );
+                                       return ret === "" ? "1" : ret;
+                               }
+                       }
+               }
+       },
+
+       // Don't automatically add "px" to these possibly-unitless properties
+       cssNumber: {
+               "animationIterationCount": true,
+               "columnCount": true,
+               "fillOpacity": true,
+               "flexGrow": true,
+               "flexShrink": true,
+               "fontWeight": true,
+               "lineHeight": true,
+               "opacity": true,
+               "order": true,
+               "orphans": true,
+               "widows": true,
+               "zIndex": true,
+               "zoom": true
+       },
+
+       // Add in properties whose names you wish to fix before
+       // setting or getting the value
+       cssProps: {
+               "float": "cssFloat"
+       },
+
+       // Get and set the style property on a DOM Node
+       style: function( elem, name, value, extra ) {
+
+               // Don't set styles on text and comment nodes
+               if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {
+                       return;
+               }
+
+               // Make sure that we're working with the right name
+               var ret, type, hooks,
+                       origName = jQuery.camelCase( name ),
+                       isCustomProp = rcustomProp.test( name ),
+                       style = elem.style;
+
+               // Make sure that we're working with the right name. We don't
+               // want to query the value if it is a CSS custom property
+               // since they are user-defined.
+               if ( !isCustomProp ) {
+                       name = finalPropName( origName );
+               }
+
+               // Gets hook for the prefixed version, then unprefixed version
+               hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
+
+               // Check if we're setting a value
+               if ( value !== undefined ) {
+                       type = typeof value;
+
+                       // Convert "+=" or "-=" to relative numbers (#7345)
+                       if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {
+                               value = adjustCSS( elem, name, ret );
+
+                               // Fixes bug #9237
+                               type = "number";
+                       }
+
+                       // Make sure that null and NaN values aren't set (#7116)
+                       if ( value == null || value !== value ) {
+                               return;
+                       }
+
+                       // If a number was passed in, add the unit (except for certain CSS properties)
+                       if ( type === "number" ) {
+                               value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" );
+                       }
+
+                       // background-* props affect original clone's values
+                       if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) {
+                               style[ name ] = "inherit";
+                       }
+
+                       // If a hook was provided, use that value, otherwise just set the specified value
+                       if ( !hooks || !( "set" in hooks ) ||
+                               ( value = hooks.set( elem, value, extra ) ) !== undefined ) {
+
+                               if ( isCustomProp ) {
+                                       style.setProperty( name, value );
+                               } else {
+                                       style[ name ] = value;
+                               }
+                       }
+
+               } else {
+
+                       // If a hook was provided get the non-computed value from there
+                       if ( hooks && "get" in hooks &&
+                               ( ret = hooks.get( elem, false, extra ) ) !== undefined ) {
+
+                               return ret;
+                       }
+
+                       // Otherwise just get the value from the style object
+                       return style[ name ];
+               }
+       },
+
+       css: function( elem, name, extra, styles ) {
+               var val, num, hooks,
+                       origName = jQuery.camelCase( name ),
+                       isCustomProp = rcustomProp.test( name );
+
+               // Make sure that we're working with the right name. We don't
+               // want to modify the value if it is a CSS custom property
+               // since they are user-defined.
+               if ( !isCustomProp ) {
+                       name = finalPropName( origName );
+               }
+
+               // Try prefixed name followed by the unprefixed name
+               hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
+
+               // If a hook was provided get the computed value from there
+               if ( hooks && "get" in hooks ) {
+                       val = hooks.get( elem, true, extra );
+               }
+
+               // Otherwise, if a way to get the computed value exists, use that
+               if ( val === undefined ) {
+                       val = curCSS( elem, name, styles );
+               }
+
+               // Convert "normal" to computed value
+               if ( val === "normal" && name in cssNormalTransform ) {
+                       val = cssNormalTransform[ name ];
+               }
+
+               // Make numeric if forced or a qualifier was provided and val looks numeric
+               if ( extra === "" || extra ) {
+                       num = parseFloat( val );
+                       return extra === true || isFinite( num ) ? num || 0 : val;
+               }
+
+               return val;
+       }
+} );
+
+jQuery.each( [ "height", "width" ], function( i, name ) {
+       jQuery.cssHooks[ name ] = {
+               get: function( elem, computed, extra ) {
+                       if ( computed ) {
+
+                               // Certain elements can have dimension info if we invisibly show them
+                               // but it must have a current display style that would benefit
+                               return rdisplayswap.test( jQuery.css( elem, "display" ) ) &&
+
+                                       // Support: Safari 8+
+                                       // Table columns in Safari have non-zero offsetWidth & zero
+                                       // getBoundingClientRect().width unless display is changed.
+                                       // Support: IE <=11 only
+                                       // Running getBoundingClientRect on a disconnected node
+                                       // in IE throws an error.
+                                       ( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?
+                                               swap( elem, cssShow, function() {
+                                                       return getWidthOrHeight( elem, name, extra );
+                                               } ) :
+                                               getWidthOrHeight( elem, name, extra );
+                       }
+               },
+
+               set: function( elem, value, extra ) {
+                       var matches,
+                               styles = extra && getStyles( elem ),
+                               subtract = extra && augmentWidthOrHeight(
+                                       elem,
+                                       name,
+                                       extra,
+                                       jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
+                                       styles
+                               );
+
+                       // Convert to pixels if value adjustment is needed
+                       if ( subtract && ( matches = rcssNum.exec( value ) ) &&
+                               ( matches[ 3 ] || "px" ) !== "px" ) {
+
+                               elem.style[ name ] = value;
+                               value = jQuery.css( elem, name );
+                       }
+
+                       return setPositiveNumber( elem, value, subtract );
+               }
+       };
+} );
+
+jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,
+       function( elem, computed ) {
+               if ( computed ) {
+                       return ( parseFloat( curCSS( elem, "marginLeft" ) ) ||
+                               elem.getBoundingClientRect().left -
+                                       swap( elem, { marginLeft: 0 }, function() {
+                                               return elem.getBoundingClientRect().left;
+                                       } )
+                               ) + "px";
+               }
+       }
+);
+
+// These hooks are used by animate to expand properties
+jQuery.each( {
+       margin: "",
+       padding: "",
+       border: "Width"
+}, function( prefix, suffix ) {
+       jQuery.cssHooks[ prefix + suffix ] = {
+               expand: function( value ) {
+                       var i = 0,
+                               expanded = {},
+
+                               // Assumes a single number if not a string
+                               parts = typeof value === "string" ? value.split( " " ) : [ value ];
+
+                       for ( ; i < 4; i++ ) {
+                               expanded[ prefix + cssExpand[ i ] + suffix ] =
+                                       parts[ i ] || parts[ i - 2 ] || parts[ 0 ];
+                       }
+
+                       return expanded;
+               }
+       };
+
+       if ( !rmargin.test( prefix ) ) {
+               jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;
+       }
+} );
+
+jQuery.fn.extend( {
+       css: function( name, value ) {
+               return access( this, function( elem, name, value ) {
+                       var styles, len,
+                               map = {},
+                               i = 0;
+
+                       if ( Array.isArray( name ) ) {
+                               styles = getStyles( elem );
+                               len = name.length;
+
+                               for ( ; i < len; i++ ) {
+                                       map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );
+                               }
+
+                               return map;
+                       }
+
+                       return value !== undefined ?
+                               jQuery.style( elem, name, value ) :
+                               jQuery.css( elem, name );
+               }, name, value, arguments.length > 1 );
+       }
+} );
+
+return jQuery;
+} );
diff --git a/js/jquery/src/css/addGetHookIf.js b/js/jquery/src/css/addGetHookIf.js
new file mode 100644 (file)
index 0000000..e4bb49a
--- /dev/null
@@ -0,0 +1,26 @@
+define( function() {
+
+"use strict";
+
+function addGetHookIf( conditionFn, hookFn ) {
+
+       // Define the hook, we'll check on the first run if it's really needed.
+       return {
+               get: function() {
+                       if ( conditionFn() ) {
+
+                               // Hook not needed (or it's not possible to use it due
+                               // to missing dependency), remove it.
+                               delete this.get;
+                               return;
+                       }
+
+                       // Hook needed; redefine it so that the support test is not executed again.
+                       return ( this.get = hookFn ).apply( this, arguments );
+               }
+       };
+}
+
+return addGetHookIf;
+
+} );
diff --git a/js/jquery/src/css/adjustCSS.js b/js/jquery/src/css/adjustCSS.js
new file mode 100644 (file)
index 0000000..ded3a16
--- /dev/null
@@ -0,0 +1,71 @@
+define( [
+       "../core",
+       "../var/rcssNum"
+], function( jQuery, rcssNum ) {
+
+"use strict";
+
+function adjustCSS( elem, prop, valueParts, tween ) {
+       var adjusted,
+               scale = 1,
+               maxIterations = 20,
+               currentValue = tween ?
+                       function() {
+                               return tween.cur();
+                       } :
+                       function() {
+                               return jQuery.css( elem, prop, "" );
+                       },
+               initial = currentValue(),
+               unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ),
+
+               // Starting value computation is required for potential unit mismatches
+               initialInUnit = ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) &&
+                       rcssNum.exec( jQuery.css( elem, prop ) );
+
+       if ( initialInUnit && initialInUnit[ 3 ] !== unit ) {
+
+               // Trust units reported by jQuery.css
+               unit = unit || initialInUnit[ 3 ];
+
+               // Make sure we update the tween properties later on
+               valueParts = valueParts || [];
+
+               // Iteratively approximate from a nonzero starting point
+               initialInUnit = +initial || 1;
+
+               do {
+
+                       // If previous iteration zeroed out, double until we get *something*.
+                       // Use string for doubling so we don't accidentally see scale as unchanged below
+                       scale = scale || ".5";
+
+                       // Adjust and apply
+                       initialInUnit = initialInUnit / scale;
+                       jQuery.style( elem, prop, initialInUnit + unit );
+
+               // Update scale, tolerating zero or NaN from tween.cur()
+               // Break the loop if scale is unchanged or perfect, or if we've just had enough.
+               } while (
+                       scale !== ( scale = currentValue() / initial ) && scale !== 1 && --maxIterations
+               );
+       }
+
+       if ( valueParts ) {
+               initialInUnit = +initialInUnit || +initial || 0;
+
+               // Apply relative offset (+=/-=) if specified
+               adjusted = valueParts[ 1 ] ?
+                       initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :
+                       +valueParts[ 2 ];
+               if ( tween ) {
+                       tween.unit = unit;
+                       tween.start = initialInUnit;
+                       tween.end = adjusted;
+               }
+       }
+       return adjusted;
+}
+
+return adjustCSS;
+} );
diff --git a/js/jquery/src/css/curCSS.js b/js/jquery/src/css/curCSS.js
new file mode 100644 (file)
index 0000000..01ccad3
--- /dev/null
@@ -0,0 +1,65 @@
+define( [
+       "../core",
+       "./var/rnumnonpx",
+       "./var/rmargin",
+       "./var/getStyles",
+       "./support",
+       "../selector" // Get jQuery.contains
+], function( jQuery, rnumnonpx, rmargin, getStyles, support ) {
+
+"use strict";
+
+function curCSS( elem, name, computed ) {
+       var width, minWidth, maxWidth, ret,
+
+               // Support: Firefox 51+
+               // Retrieving style before computed somehow
+               // fixes an issue with getting wrong values
+               // on detached elements
+               style = elem.style;
+
+       computed = computed || getStyles( elem );
+
+       // getPropertyValue is needed for:
+       //   .css('filter') (IE 9 only, #12537)
+       //   .css('--customProperty) (#3144)
+       if ( computed ) {
+               ret = computed.getPropertyValue( name ) || computed[ name ];
+
+               if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) {
+                       ret = jQuery.style( elem, name );
+               }
+
+               // A tribute to the "awesome hack by Dean Edwards"
+               // Android Browser returns percentage for some values,
+               // but width seems to be reliably pixels.
+               // This is against the CSSOM draft spec:
+               // https://drafts.csswg.org/cssom/#resolved-values
+               if ( !support.pixelMarginRight() && rnumnonpx.test( ret ) && rmargin.test( name ) ) {
+
+                       // Remember the original values
+                       width = style.width;
+                       minWidth = style.minWidth;
+                       maxWidth = style.maxWidth;
+
+                       // Put in the new values to get a computed value out
+                       style.minWidth = style.maxWidth = style.width = ret;
+                       ret = computed.width;
+
+                       // Revert the changed values
+                       style.width = width;
+                       style.minWidth = minWidth;
+                       style.maxWidth = maxWidth;
+               }
+       }
+
+       return ret !== undefined ?
+
+               // Support: IE <=9 - 11 only
+               // IE returns zIndex value as an integer.
+               ret + "" :
+               ret;
+}
+
+return curCSS;
+} );
diff --git a/js/jquery/src/css/hiddenVisibleSelectors.js b/js/jquery/src/css/hiddenVisibleSelectors.js
new file mode 100644 (file)
index 0000000..d7a9339
--- /dev/null
@@ -0,0 +1,15 @@
+define( [
+       "../core",
+       "../selector"
+], function( jQuery ) {
+
+"use strict";
+
+jQuery.expr.pseudos.hidden = function( elem ) {
+       return !jQuery.expr.pseudos.visible( elem );
+};
+jQuery.expr.pseudos.visible = function( elem ) {
+       return !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );
+};
+
+} );
diff --git a/js/jquery/src/css/showHide.js b/js/jquery/src/css/showHide.js
new file mode 100644 (file)
index 0000000..3eeafef
--- /dev/null
@@ -0,0 +1,105 @@
+define( [
+       "../core",
+       "../data/var/dataPriv",
+       "../css/var/isHiddenWithinTree"
+], function( jQuery, dataPriv, isHiddenWithinTree ) {
+
+"use strict";
+
+var defaultDisplayMap = {};
+
+function getDefaultDisplay( elem ) {
+       var temp,
+               doc = elem.ownerDocument,
+               nodeName = elem.nodeName,
+               display = defaultDisplayMap[ nodeName ];
+
+       if ( display ) {
+               return display;
+       }
+
+       temp = doc.body.appendChild( doc.createElement( nodeName ) );
+       display = jQuery.css( temp, "display" );
+
+       temp.parentNode.removeChild( temp );
+
+       if ( display === "none" ) {
+               display = "block";
+       }
+       defaultDisplayMap[ nodeName ] = display;
+
+       return display;
+}
+
+function showHide( elements, show ) {
+       var display, elem,
+               values = [],
+               index = 0,
+               length = elements.length;
+
+       // Determine new display value for elements that need to change
+       for ( ; index < length; index++ ) {
+               elem = elements[ index ];
+               if ( !elem.style ) {
+                       continue;
+               }
+
+               display = elem.style.display;
+               if ( show ) {
+
+                       // Since we force visibility upon cascade-hidden elements, an immediate (and slow)
+                       // check is required in this first loop unless we have a nonempty display value (either
+                       // inline or about-to-be-restored)
+                       if ( display === "none" ) {
+                               values[ index ] = dataPriv.get( elem, "display" ) || null;
+                               if ( !values[ index ] ) {
+                                       elem.style.display = "";
+                               }
+                       }
+                       if ( elem.style.display === "" && isHiddenWithinTree( elem ) ) {
+                               values[ index ] = getDefaultDisplay( elem );
+                       }
+               } else {
+                       if ( display !== "none" ) {
+                               values[ index ] = "none";
+
+                               // Remember what we're overwriting
+                               dataPriv.set( elem, "display", display );
+                       }
+               }
+       }
+
+       // Set the display of the elements in a second loop to avoid constant reflow
+       for ( index = 0; index < length; index++ ) {
+               if ( values[ index ] != null ) {
+                       elements[ index ].style.display = values[ index ];
+               }
+       }
+
+       return elements;
+}
+
+jQuery.fn.extend( {
+       show: function() {
+               return showHide( this, true );
+       },
+       hide: function() {
+               return showHide( this );
+       },
+       toggle: function( state ) {
+               if ( typeof state === "boolean" ) {
+                       return state ? this.show() : this.hide();
+               }
+
+               return this.each( function() {
+                       if ( isHiddenWithinTree( this ) ) {
+                               jQuery( this ).show();
+                       } else {
+                               jQuery( this ).hide();
+                       }
+               } );
+       }
+} );
+
+return showHide;
+} );
diff --git a/js/jquery/src/css/support.js b/js/jquery/src/css/support.js
new file mode 100644 (file)
index 0000000..883d0e5
--- /dev/null
@@ -0,0 +1,89 @@
+define( [
+       "../core",
+       "../var/document",
+       "../var/documentElement",
+       "../var/support"
+], function( jQuery, document, documentElement, support ) {
+
+"use strict";
+
+( function() {
+
+       // Executing both pixelPosition & boxSizingReliable tests require only one layout
+       // so they're executed at the same time to save the second computation.
+       function computeStyleTests() {
+
+               // This is a singleton, we need to execute it only once
+               if ( !div ) {
+                       return;
+               }
+
+               div.style.cssText =
+                       "box-sizing:border-box;" +
+                       "position:relative;display:block;" +
+                       "margin:auto;border:1px;padding:1px;" +
+                       "top:1%;width:50%";
+               div.innerHTML = "";
+               documentElement.appendChild( container );
+
+               var divStyle = window.getComputedStyle( div );
+               pixelPositionVal = divStyle.top !== "1%";
+
+               // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44
+               reliableMarginLeftVal = divStyle.marginLeft === "2px";
+               boxSizingReliableVal = divStyle.width === "4px";
+
+               // Support: Android 4.0 - 4.3 only
+               // Some styles come back with percentage values, even though they shouldn't
+               div.style.marginRight = "50%";
+               pixelMarginRightVal = divStyle.marginRight === "4px";
+
+               documentElement.removeChild( container );
+
+               // Nullify the div so it wouldn't be stored in the memory and
+               // it will also be a sign that checks already performed
+               div = null;
+       }
+
+       var pixelPositionVal, boxSizingReliableVal, pixelMarginRightVal, reliableMarginLeftVal,
+               container = document.createElement( "div" ),
+               div = document.createElement( "div" );
+
+       // Finish early in limited (non-browser) environments
+       if ( !div.style ) {
+               return;
+       }
+
+       // Support: IE <=9 - 11 only
+       // Style of cloned element affects source element cloned (#8908)
+       div.style.backgroundClip = "content-box";
+       div.cloneNode( true ).style.backgroundClip = "";
+       support.clearCloneStyle = div.style.backgroundClip === "content-box";
+
+       container.style.cssText = "border:0;width:8px;height:0;top:0;left:-9999px;" +
+               "padding:0;margin-top:1px;position:absolute";
+       container.appendChild( div );
+
+       jQuery.extend( support, {
+               pixelPosition: function() {
+                       computeStyleTests();
+                       return pixelPositionVal;
+               },
+               boxSizingReliable: function() {
+                       computeStyleTests();
+                       return boxSizingReliableVal;
+               },
+               pixelMarginRight: function() {
+                       computeStyleTests();
+                       return pixelMarginRightVal;
+               },
+               reliableMarginLeft: function() {
+                       computeStyleTests();
+                       return reliableMarginLeftVal;
+               }
+       } );
+} )();
+
+return support;
+
+} );
diff --git a/js/jquery/src/css/var/cssExpand.js b/js/jquery/src/css/var/cssExpand.js
new file mode 100644 (file)
index 0000000..dd2007c
--- /dev/null
@@ -0,0 +1,5 @@
+define( function() {
+       "use strict";
+
+       return [ "Top", "Right", "Bottom", "Left" ];
+} );
diff --git a/js/jquery/src/css/var/getStyles.js b/js/jquery/src/css/var/getStyles.js
new file mode 100644 (file)
index 0000000..0b893ac
--- /dev/null
@@ -0,0 +1,17 @@
+define( function() {
+       "use strict";
+
+       return function( elem ) {
+
+               // Support: IE <=11 only, Firefox <=30 (#15098, #14150)
+               // IE throws on elements created in popups
+               // FF meanwhile throws on frame elements through "defaultView.getComputedStyle"
+               var view = elem.ownerDocument.defaultView;
+
+               if ( !view || !view.opener ) {
+                       view = window;
+               }
+
+               return view.getComputedStyle( elem );
+       };
+} );
diff --git a/js/jquery/src/css/var/isHiddenWithinTree.js b/js/jquery/src/css/var/isHiddenWithinTree.js
new file mode 100644 (file)
index 0000000..3cfb93e
--- /dev/null
@@ -0,0 +1,34 @@
+define( [
+       "../../core",
+       "../../selector"
+
+       // css is assumed
+], function( jQuery ) {
+       "use strict";
+
+       // isHiddenWithinTree reports if an element has a non-"none" display style (inline and/or
+       // through the CSS cascade), which is useful in deciding whether or not to make it visible.
+       // It differs from the :hidden selector (jQuery.expr.pseudos.hidden) in two important ways:
+       // * A hidden ancestor does not force an element to be classified as hidden.
+       // * Being disconnected from the document does not force an element to be classified as hidden.
+       // These differences improve the behavior of .toggle() et al. when applied to elements that are
+       // detached or contained within hidden ancestors (gh-2404, gh-2863).
+       return function( elem, el ) {
+
+               // isHiddenWithinTree might be called from jQuery#filter function;
+               // in that case, element will be second argument
+               elem = el || elem;
+
+               // Inline style trumps all
+               return elem.style.display === "none" ||
+                       elem.style.display === "" &&
+
+                       // Otherwise, check computed style
+                       // Support: Firefox <=43 - 45
+                       // Disconnected elements can have computed display: none, so first confirm that elem is
+                       // in the document.
+                       jQuery.contains( elem.ownerDocument, elem ) &&
+
+                       jQuery.css( elem, "display" ) === "none";
+       };
+} );
diff --git a/js/jquery/src/css/var/rmargin.js b/js/jquery/src/css/var/rmargin.js
new file mode 100644 (file)
index 0000000..0fbfbd8
--- /dev/null
@@ -0,0 +1,5 @@
+define( function() {
+       "use strict";
+
+       return ( /^margin/ );
+} );
diff --git a/js/jquery/src/css/var/rnumnonpx.js b/js/jquery/src/css/var/rnumnonpx.js
new file mode 100644 (file)
index 0000000..056cda7
--- /dev/null
@@ -0,0 +1,7 @@
+define( [
+       "../../var/pnum"
+], function( pnum ) {
+       "use strict";
+
+       return new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" );
+} );
diff --git a/js/jquery/src/css/var/swap.js b/js/jquery/src/css/var/swap.js
new file mode 100644 (file)
index 0000000..1a9556b
--- /dev/null
@@ -0,0 +1,26 @@
+define( function() {
+
+"use strict";
+
+// A method for quickly swapping in/out CSS properties to get correct calculations.
+return function( elem, options, callback, args ) {
+       var ret, name,
+               old = {};
+
+       // Remember the old values, and insert the new ones
+       for ( name in options ) {
+               old[ name ] = elem.style[ name ];
+               elem.style[ name ] = options[ name ];
+       }
+
+       ret = callback.apply( elem, args || [] );
+
+       // Revert the old values
+       for ( name in options ) {
+               elem.style[ name ] = old[ name ];
+       }
+
+       return ret;
+};
+
+} );
diff --git a/js/jquery/src/data.js b/js/jquery/src/data.js
new file mode 100644 (file)
index 0000000..087ce4e
--- /dev/null
@@ -0,0 +1,179 @@
+define( [
+       "./core",
+       "./core/access",
+       "./data/var/dataPriv",
+       "./data/var/dataUser"
+], function( jQuery, access, dataPriv, dataUser ) {
+
+"use strict";
+
+//     Implementation Summary
+//
+//     1. Enforce API surface and semantic compatibility with 1.9.x branch
+//     2. Improve the module's maintainability by reducing the storage
+//             paths to a single mechanism.
+//     3. Use the same single mechanism to support "private" and "user" data.
+//     4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData)
+//     5. Avoid exposing implementation details on user objects (eg. expando properties)
+//     6. Provide a clear path for implementation upgrade to WeakMap in 2014
+
+var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
+       rmultiDash = /[A-Z]/g;
+
+function getData( data ) {
+       if ( data === "true" ) {
+               return true;
+       }
+
+       if ( data === "false" ) {
+               return false;
+       }
+
+       if ( data === "null" ) {
+               return null;
+       }
+
+       // Only convert to a number if it doesn't change the string
+       if ( data === +data + "" ) {
+               return +data;
+       }
+
+       if ( rbrace.test( data ) ) {
+               return JSON.parse( data );
+       }
+
+       return data;
+}
+
+function dataAttr( elem, key, data ) {
+       var name;
+
+       // If nothing was found internally, try to fetch any
+       // data from the HTML5 data-* attribute
+       if ( data === undefined && elem.nodeType === 1 ) {
+               name = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase();
+               data = elem.getAttribute( name );
+
+               if ( typeof data === "string" ) {
+                       try {
+                               data = getData( data );
+                       } catch ( e ) {}
+
+                       // Make sure we set the data so it isn't changed later
+                       dataUser.set( elem, key, data );
+               } else {
+                       data = undefined;
+               }
+       }
+       return data;
+}
+
+jQuery.extend( {
+       hasData: function( elem ) {
+               return dataUser.hasData( elem ) || dataPriv.hasData( elem );
+       },
+
+       data: function( elem, name, data ) {
+               return dataUser.access( elem, name, data );
+       },
+
+       removeData: function( elem, name ) {
+               dataUser.remove( elem, name );
+       },
+
+       // TODO: Now that all calls to _data and _removeData have been replaced
+       // with direct calls to dataPriv methods, these can be deprecated.
+       _data: function( elem, name, data ) {
+               return dataPriv.access( elem, name, data );
+       },
+
+       _removeData: function( elem, name ) {
+               dataPriv.remove( elem, name );
+       }
+} );
+
+jQuery.fn.extend( {
+       data: function( key, value ) {
+               var i, name, data,
+                       elem = this[ 0 ],
+                       attrs = elem && elem.attributes;
+
+               // Gets all values
+               if ( key === undefined ) {
+                       if ( this.length ) {
+                               data = dataUser.get( elem );
+
+                               if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) {
+                                       i = attrs.length;
+                                       while ( i-- ) {
+
+                                               // Support: IE 11 only
+                                               // The attrs elements can be null (#14894)
+                                               if ( attrs[ i ] ) {
+                                                       name = attrs[ i ].name;
+                                                       if ( name.indexOf( "data-" ) === 0 ) {
+                                                               name = jQuery.camelCase( name.slice( 5 ) );
+                                                               dataAttr( elem, name, data[ name ] );
+                                                       }
+                                               }
+                                       }
+                                       dataPriv.set( elem, "hasDataAttrs", true );
+                               }
+                       }
+
+                       return data;
+               }
+
+               // Sets multiple values
+               if ( typeof key === "object" ) {
+                       return this.each( function() {
+                               dataUser.set( this, key );
+                       } );
+               }
+
+               return access( this, function( value ) {
+                       var data;
+
+                       // The calling jQuery object (element matches) is not empty
+                       // (and therefore has an element appears at this[ 0 ]) and the
+                       // `value` parameter was not undefined. An empty jQuery object
+                       // will result in `undefined` for elem = this[ 0 ] which will
+                       // throw an exception if an attempt to read a data cache is made.
+                       if ( elem && value === undefined ) {
+
+                               // Attempt to get data from the cache
+                               // The key will always be camelCased in Data
+                               data = dataUser.get( elem, key );
+                               if ( data !== undefined ) {
+                                       return data;
+                               }
+
+                               // Attempt to "discover" the data in
+                               // HTML5 custom data-* attrs
+                               data = dataAttr( elem, key );
+                               if ( data !== undefined ) {
+                                       return data;
+                               }
+
+                               // We tried really hard, but the data doesn't exist.
+                               return;
+                       }
+
+                       // Set the data...
+                       this.each( function() {
+
+                               // We always store the camelCased key
+                               dataUser.set( this, key, value );
+                       } );
+               }, null, value, arguments.length > 1, null, true );
+       },
+
+       removeData: function( key ) {
+               return this.each( function() {
+                       dataUser.remove( this, key );
+               } );
+       }
+} );
+
+return jQuery;
+} );
diff --git a/js/jquery/src/data/Data.js b/js/jquery/src/data/Data.js
new file mode 100644 (file)
index 0000000..8c856c0
--- /dev/null
@@ -0,0 +1,161 @@
+define( [
+       "../core",
+       "../var/rnothtmlwhite",
+       "./var/acceptData"
+], function( jQuery, rnothtmlwhite, acceptData ) {
+
+"use strict";
+
+function Data() {
+       this.expando = jQuery.expando + Data.uid++;
+}
+
+Data.uid = 1;
+
+Data.prototype = {
+
+       cache: function( owner ) {
+
+               // Check if the owner object already has a cache
+               var value = owner[ this.expando ];
+
+               // If not, create one
+               if ( !value ) {
+                       value = {};
+
+                       // We can accept data for non-element nodes in modern browsers,
+                       // but we should not, see #8335.
+                       // Always return an empty object.
+                       if ( acceptData( owner ) ) {
+
+                               // If it is a node unlikely to be stringify-ed or looped over
+                               // use plain assignment
+                               if ( owner.nodeType ) {
+                                       owner[ this.expando ] = value;
+
+                               // Otherwise secure it in a non-enumerable property
+                               // configurable must be true to allow the property to be
+                               // deleted when data is removed
+                               } else {
+                                       Object.defineProperty( owner, this.expando, {
+                                               value: value,
+                                               configurable: true
+                                       } );
+                               }
+                       }
+               }
+
+               return value;
+       },
+       set: function( owner, data, value ) {
+               var prop,
+                       cache = this.cache( owner );
+
+               // Handle: [ owner, key, value ] args
+               // Always use camelCase key (gh-2257)
+               if ( typeof data === "string" ) {
+                       cache[ jQuery.camelCase( data ) ] = value;
+
+               // Handle: [ owner, { properties } ] args
+               } else {
+
+                       // Copy the properties one-by-one to the cache object
+                       for ( prop in data ) {
+                               cache[ jQuery.camelCase( prop ) ] = data[ prop ];
+                       }
+               }
+               return cache;
+       },
+       get: function( owner, key ) {
+               return key === undefined ?
+                       this.cache( owner ) :
+
+                       // Always use camelCase key (gh-2257)
+                       owner[ this.expando ] && owner[ this.expando ][ jQuery.camelCase( key ) ];
+       },
+       access: function( owner, key, value ) {
+
+               // In cases where either:
+               //
+               //   1. No key was specified
+               //   2. A string key was specified, but no value provided
+               //
+               // Take the "read" path and allow the get method to determine
+               // which value to return, respectively either:
+               //
+               //   1. The entire cache object
+               //   2. The data stored at the key
+               //
+               if ( key === undefined ||
+                               ( ( key && typeof key === "string" ) && value === undefined ) ) {
+
+                       return this.get( owner, key );
+               }
+
+               // When the key is not a string, or both a key and value
+               // are specified, set or extend (existing objects) with either:
+               //
+               //   1. An object of properties
+               //   2. A key and value
+               //
+               this.set( owner, key, value );
+
+               // Since the "set" path can have two possible entry points
+               // return the expected data based on which path was taken[*]
+               return value !== undefined ? value : key;
+       },
+       remove: function( owner, key ) {
+               var i,
+                       cache = owner[ this.expando ];
+
+               if ( cache === undefined ) {
+                       return;
+               }
+
+               if ( key !== undefined ) {
+
+                       // Support array or space separated string of keys
+                       if ( Array.isArray( key ) ) {
+
+                               // If key is an array of keys...
+                               // We always set camelCase keys, so remove that.
+                               key = key.map( jQuery.camelCase );
+                       } else {
+                               key = jQuery.camelCase( key );
+
+                               // If a key with the spaces exists, use it.
+                               // Otherwise, create an array by matching non-whitespace
+                               key = key in cache ?
+                                       [ key ] :
+                                       ( key.match( rnothtmlwhite ) || [] );
+                       }
+
+                       i = key.length;
+
+                       while ( i-- ) {
+                               delete cache[ key[ i ] ];
+                       }
+               }
+
+               // Remove the expando if there's no more data
+               if ( key === undefined || jQuery.isEmptyObject( cache ) ) {
+
+                       // Support: Chrome <=35 - 45
+                       // Webkit & Blink performance suffers when deleting properties
+                       // from DOM nodes, so set to undefined instead
+                       // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)
+                       if ( owner.nodeType ) {
+                               owner[ this.expando ] = undefined;
+                       } else {
+                               delete owner[ this.expando ];
+                       }
+               }
+       },
+       hasData: function( owner ) {
+               var cache = owner[ this.expando ];
+               return cache !== undefined && !jQuery.isEmptyObject( cache );
+       }
+};
+
+return Data;
+} );
diff --git a/js/jquery/src/data/var/acceptData.js b/js/jquery/src/data/var/acceptData.js
new file mode 100644 (file)
index 0000000..e00f753
--- /dev/null
@@ -0,0 +1,19 @@
+define( function() {
+
+"use strict";
+
+/**
+ * Determines whether an object can have data
+ */
+return function( owner ) {
+
+       // Accepts only:
+       //  - Node
+       //    - Node.ELEMENT_NODE
+       //    - Node.DOCUMENT_NODE
+       //  - Object
+       //    - Any
+       return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );
+};
+
+} );
diff --git a/js/jquery/src/data/var/dataPriv.js b/js/jquery/src/data/var/dataPriv.js
new file mode 100644 (file)
index 0000000..72713c8
--- /dev/null
@@ -0,0 +1,7 @@
+define( [
+       "../Data"
+], function( Data ) {
+       "use strict";
+
+       return new Data();
+} );
diff --git a/js/jquery/src/data/var/dataUser.js b/js/jquery/src/data/var/dataUser.js
new file mode 100644 (file)
index 0000000..72713c8
--- /dev/null
@@ -0,0 +1,7 @@
+define( [
+       "../Data"
+], function( Data ) {
+       "use strict";
+
+       return new Data();
+} );
diff --git a/js/jquery/src/deferred.js b/js/jquery/src/deferred.js
new file mode 100644 (file)
index 0000000..7e2ced2
--- /dev/null
@@ -0,0 +1,391 @@
+define( [
+       "./core",
+       "./var/slice",
+       "./callbacks"
+], function( jQuery, slice ) {
+
+"use strict";
+
+function Identity( v ) {
+       return v;
+}
+function Thrower( ex ) {
+       throw ex;
+}
+
+function adoptValue( value, resolve, reject, noValue ) {
+       var method;
+
+       try {
+
+               // Check for promise aspect first to privilege synchronous behavior
+               if ( value && jQuery.isFunction( ( method = value.promise ) ) ) {
+                       method.call( value ).done( resolve ).fail( reject );
+
+               // Other thenables
+               } else if ( value && jQuery.isFunction( ( method = value.then ) ) ) {
+                       method.call( value, resolve, reject );
+
+               // Other non-thenables
+               } else {
+
+                       // Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:
+                       // * false: [ value ].slice( 0 ) => resolve( value )
+                       // * true: [ value ].slice( 1 ) => resolve()
+                       resolve.apply( undefined, [ value ].slice( noValue ) );
+               }
+
+       // For Promises/A+, convert exceptions into rejections
+       // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in
+       // Deferred#then to conditionally suppress rejection.
+       } catch ( value ) {
+
+               // Support: Android 4.0 only
+               // Strict mode functions invoked without .call/.apply get global-object context
+               reject.apply( undefined, [ value ] );
+       }
+}
+
+jQuery.extend( {
+
+       Deferred: function( func ) {
+               var tuples = [
+
+                               // action, add listener, callbacks,
+                               // ... .then handlers, argument index, [final state]
+                               [ "notify", "progress", jQuery.Callbacks( "memory" ),
+                                       jQuery.Callbacks( "memory" ), 2 ],
+                               [ "resolve", "done", jQuery.Callbacks( "once memory" ),
+                                       jQuery.Callbacks( "once memory" ), 0, "resolved" ],
+                               [ "reject", "fail", jQuery.Callbacks( "once memory" ),
+                                       jQuery.Callbacks( "once memory" ), 1, "rejected" ]
+                       ],
+                       state = "pending",
+                       promise = {
+                               state: function() {
+                                       return state;
+                               },
+                               always: function() {
+                                       deferred.done( arguments ).fail( arguments );
+                                       return this;
+                               },
+                               "catch": function( fn ) {
+                                       return promise.then( null, fn );
+                               },
+
+                               // Keep pipe for back-compat
+                               pipe: function( /* fnDone, fnFail, fnProgress */ ) {
+                                       var fns = arguments;
+
+                                       return jQuery.Deferred( function( newDefer ) {
+                                               jQuery.each( tuples, function( i, tuple ) {
+
+                                                       // Map tuples (progress, done, fail) to arguments (done, fail, progress)
+                                                       var fn = jQuery.isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];
+
+                                                       // deferred.progress(function() { bind to newDefer or newDefer.notify })
+                                                       // deferred.done(function() { bind to newDefer or newDefer.resolve })
+                                                       // deferred.fail(function() { bind to newDefer or newDefer.reject })
+                                                       deferred[ tuple[ 1 ] ]( function() {
+                                                               var returned = fn && fn.apply( this, arguments );
+                                                               if ( returned && jQuery.isFunction( returned.promise ) ) {
+                                                                       returned.promise()
+                                                                               .progress( newDefer.notify )
+                                                                               .done( newDefer.resolve )
+                                                                               .fail( newDefer.reject );
+                                                               } else {
+                                                                       newDefer[ tuple[ 0 ] + "With" ](
+                                                                               this,
+                                                                               fn ? [ returned ] : arguments
+                                                                       );
+                                                               }
+                                                       } );
+                                               } );
+                                               fns = null;
+                                       } ).promise();
+                               },
+                               then: function( onFulfilled, onRejected, onProgress ) {
+                                       var maxDepth = 0;
+                                       function resolve( depth, deferred, handler, special ) {
+                                               return function() {
+                                                       var that = this,
+                                                               args = arguments,
+                                                               mightThrow = function() {
+                                                                       var returned, then;
+
+                                                                       // Support: Promises/A+ section 2.3.3.3.3
+                                                                       // https://promisesaplus.com/#point-59
+                                                                       // Ignore double-resolution attempts
+                                                                       if ( depth < maxDepth ) {
+                                                                               return;
+                                                                       }
+
+                                                                       returned = handler.apply( that, args );
+
+                                                                       // Support: Promises/A+ section 2.3.1
+                                                                       // https://promisesaplus.com/#point-48
+                                                                       if ( returned === deferred.promise() ) {
+                                                                               throw new TypeError( "Thenable self-resolution" );
+                                                                       }
+
+                                                                       // Support: Promises/A+ sections 2.3.3.1, 3.5
+                                                                       // https://promisesaplus.com/#point-54
+                                                                       // https://promisesaplus.com/#point-75
+                                                                       // Retrieve `then` only once
+                                                                       then = returned &&
+
+                                                                               // Support: Promises/A+ section 2.3.4
+                                                                               // https://promisesaplus.com/#point-64
+                                                                               // Only check objects and functions for thenability
+                                                                               ( typeof returned === "object" ||
+                                                                                       typeof returned === "function" ) &&
+                                                                               returned.then;
+
+                                                                       // Handle a returned thenable
+                                                                       if ( jQuery.isFunction( then ) ) {
+
+                                                                               // Special processors (notify) just wait for resolution
+                                                                               if ( special ) {
+                                                                                       then.call(
+                                                                                               returned,
+                                                                                               resolve( maxDepth, deferred, Identity, special ),
+                                                                                               resolve( maxDepth, deferred, Thrower, special )
+                                                                                       );
+
+                                                                               // Normal processors (resolve) also hook into progress
+                                                                               } else {
+
+                                                                                       // ...and disregard older resolution values
+                                                                                       maxDepth++;
+
+                                                                                       then.call(
+                                                                                               returned,
+                                                                                               resolve( maxDepth, deferred, Identity, special ),
+                                                                                               resolve( maxDepth, deferred, Thrower, special ),
+                                                                                               resolve( maxDepth, deferred, Identity,
+                                                                                                       deferred.notifyWith )
+                                                                                       );
+                                                                               }
+
+                                                                       // Handle all other returned values
+                                                                       } else {
+
+                                                                               // Only substitute handlers pass on context
+                                                                               // and multiple values (non-spec behavior)
+                                                                               if ( handler !== Identity ) {
+                                                                                       that = undefined;
+                                                                                       args = [ returned ];
+                                                                               }
+
+                                                                               // Process the value(s)
+                                                                               // Default process is resolve
+                                                                               ( special || deferred.resolveWith )( that, args );
+                                                                       }
+                                                               },
+
+                                                               // Only normal processors (resolve) catch and reject exceptions
+                                                               process = special ?
+                                                                       mightThrow :
+                                                                       function() {
+                                                                               try {
+                                                                                       mightThrow();
+                                                                               } catch ( e ) {
+
+                                                                                       if ( jQuery.Deferred.exceptionHook ) {
+                                                                                               jQuery.Deferred.exceptionHook( e,
+                                                                                                       process.stackTrace );
+                                                                                       }
+
+                                                                                       // Support: Promises/A+ section 2.3.3.3.4.1
+                                                                                       // https://promisesaplus.com/#point-61
+                                                                                       // Ignore post-resolution exceptions
+                                                                                       if ( depth + 1 >= maxDepth ) {
+
+                                                                                               // Only substitute handlers pass on context
+                                                                                               // and multiple values (non-spec behavior)
+                                                                                               if ( handler !== Thrower ) {
+                                                                                                       that = undefined;
+                                                                                                       args = [ e ];
+                                                                                               }
+
+                                                                                               deferred.rejectWith( that, args );
+                                                                                       }
+                                                                               }
+                                                                       };
+
+                                                       // Support: Promises/A+ section 2.3.3.3.1
+                                                       // https://promisesaplus.com/#point-57
+                                                       // Re-resolve promises immediately to dodge false rejection from
+                                                       // subsequent errors
+                                                       if ( depth ) {
+                                                               process();
+                                                       } else {
+
+                                                               // Call an optional hook to record the stack, in case of exception
+                                                               // since it's otherwise lost when execution goes async
+                                                               if ( jQuery.Deferred.getStackHook ) {
+                                                                       process.stackTrace = jQuery.Deferred.getStackHook();
+                                                               }
+                                                               window.setTimeout( process );
+                                                       }
+                                               };
+                                       }
+
+                                       return jQuery.Deferred( function( newDefer ) {
+
+                                               // progress_handlers.add( ... )
+                                               tuples[ 0 ][ 3 ].add(
+                                                       resolve(
+                                                               0,
+                                                               newDefer,
+                                                               jQuery.isFunction( onProgress ) ?
+                                                                       onProgress :
+                                                                       Identity,
+                                                               newDefer.notifyWith
+                                                       )
+                                               );
+
+                                               // fulfilled_handlers.add( ... )
+                                               tuples[ 1 ][ 3 ].add(
+                                                       resolve(
+                                                               0,
+                                                               newDefer,
+                                                               jQuery.isFunction( onFulfilled ) ?
+                                                                       onFulfilled :
+                                                                       Identity
+                                                       )
+                                               );
+
+                                               // rejected_handlers.add( ... )
+                                               tuples[ 2 ][ 3 ].add(
+                                                       resolve(
+                                                               0,
+                                                               newDefer,
+                                                               jQuery.isFunction( onRejected ) ?
+                                                                       onRejected :
+                                                                       Thrower
+                                                       )
+                                               );
+                                       } ).promise();
+                               },
+
+                               // Get a promise for this deferred
+                               // If obj is provided, the promise aspect is added to the object
+                               promise: function( obj ) {
+                                       return obj != null ? jQuery.extend( obj, promise ) : promise;
+                               }
+                       },
+                       deferred = {};
+
+               // Add list-specific methods
+               jQuery.each( tuples, function( i, tuple ) {
+                       var list = tuple[ 2 ],
+                               stateString = tuple[ 5 ];
+
+                       // promise.progress = list.add
+                       // promise.done = list.add
+                       // promise.fail = list.add
+                       promise[ tuple[ 1 ] ] = list.add;
+
+                       // Handle state
+                       if ( stateString ) {
+                               list.add(
+                                       function() {
+
+                                               // state = "resolved" (i.e., fulfilled)
+                                               // state = "rejected"
+                                               state = stateString;
+                                       },
+
+                                       // rejected_callbacks.disable
+                                       // fulfilled_callbacks.disable
+                                       tuples[ 3 - i ][ 2 ].disable,
+
+                                       // progress_callbacks.lock
+                                       tuples[ 0 ][ 2 ].lock
+                               );
+                       }
+
+                       // progress_handlers.fire
+                       // fulfilled_handlers.fire
+                       // rejected_handlers.fire
+                       list.add( tuple[ 3 ].fire );
+
+                       // deferred.notify = function() { deferred.notifyWith(...) }
+                       // deferred.resolve = function() { deferred.resolveWith(...) }
+                       // deferred.reject = function() { deferred.rejectWith(...) }
+                       deferred[ tuple[ 0 ] ] = function() {
+                               deferred[ tuple[ 0 ] + "With" ]( this === deferred ? undefined : this, arguments );
+                               return this;
+                       };
+
+                       // deferred.notifyWith = list.fireWith
+                       // deferred.resolveWith = list.fireWith
+                       // deferred.rejectWith = list.fireWith
+                       deferred[ tuple[ 0 ] + "With" ] = list.fireWith;
+               } );
+
+               // Make the deferred a promise
+               promise.promise( deferred );
+
+               // Call given func if any
+               if ( func ) {
+                       func.call( deferred, deferred );
+               }
+
+               // All done!
+               return deferred;
+       },
+
+       // Deferred helper
+       when: function( singleValue ) {
+               var
+
+                       // count of uncompleted subordinates
+                       remaining = arguments.length,
+
+                       // count of unprocessed arguments
+                       i = remaining,
+
+                       // subordinate fulfillment data
+                       resolveContexts = Array( i ),
+                       resolveValues = slice.call( arguments ),
+
+                       // the master Deferred
+                       master = jQuery.Deferred(),
+
+                       // subordinate callback factory
+                       updateFunc = function( i ) {
+                               return function( value ) {
+                                       resolveContexts[ i ] = this;
+                                       resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;
+                                       if ( !( --remaining ) ) {
+                                               master.resolveWith( resolveContexts, resolveValues );
+                                       }
+                               };
+                       };
+
+               // Single- and empty arguments are adopted like Promise.resolve
+               if ( remaining <= 1 ) {
+                       adoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject,
+                               !remaining );
+
+                       // Use .then() to unwrap secondary thenables (cf. gh-3000)
+                       if ( master.state() === "pending" ||
+                               jQuery.isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {
+
+                               return master.then();
+                       }
+               }
+
+               // Multiple arguments are aggregated like Promise.all array elements
+               while ( i-- ) {
+                       adoptValue( resolveValues[ i ], updateFunc( i ), master.reject );
+               }
+
+               return master.promise();
+       }
+} );
+
+return jQuery;
+} );
diff --git a/js/jquery/src/deferred/exceptionHook.js b/js/jquery/src/deferred/exceptionHook.js
new file mode 100644 (file)
index 0000000..6dbdc85
--- /dev/null
@@ -0,0 +1,21 @@
+define( [
+       "../core",
+       "../deferred"
+], function( jQuery ) {
+
+"use strict";
+
+// These usually indicate a programmer mistake during development,
+// warn about them ASAP rather than swallowing them by default.
+var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;
+
+jQuery.Deferred.exceptionHook = function( error, stack ) {
+
+       // Support: IE 8 - 9 only
+       // Console exists when dev tools are open, which can happen at any time
+       if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {
+               window.console.warn( "jQuery.Deferred exception: " + error.message, error.stack, stack );
+       }
+};
+
+} );
diff --git a/js/jquery/src/deprecated.js b/js/jquery/src/deprecated.js
new file mode 100644 (file)
index 0000000..9589ec8
--- /dev/null
@@ -0,0 +1,40 @@
+define( [
+       "./core",
+       "./core/nodeName"
+], function( jQuery, nodeName ) {
+
+"use strict";
+
+jQuery.fn.extend( {
+
+       bind: function( types, data, fn ) {
+               return this.on( types, null, data, fn );
+       },
+       unbind: function( types, fn ) {
+               return this.off( types, null, fn );
+       },
+
+       delegate: function( selector, types, data, fn ) {
+               return this.on( types, selector, data, fn );
+       },
+       undelegate: function( selector, types, fn ) {
+
+               // ( namespace ) or ( selector, types [, fn] )
+               return arguments.length === 1 ?
+                       this.off( selector, "**" ) :
+                       this.off( types, selector || "**", fn );
+       }
+} );
+
+jQuery.holdReady = function( hold ) {
+       if ( hold ) {
+               jQuery.readyWait++;
+       } else {
+               jQuery.ready( true );
+       }
+};
+jQuery.isArray = Array.isArray;
+jQuery.parseJSON = JSON.parse;
+jQuery.nodeName = nodeName;
+
+} );
diff --git a/js/jquery/src/dimensions.js b/js/jquery/src/dimensions.js
new file mode 100644 (file)
index 0000000..46e7b1c
--- /dev/null
@@ -0,0 +1,56 @@
+define( [
+       "./core",
+       "./core/access",
+       "./css"
+], function( jQuery, access ) {
+
+"use strict";
+
+// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods
+jQuery.each( { Height: "height", Width: "width" }, function( name, type ) {
+       jQuery.each( { padding: "inner" + name, content: type, "": "outer" + name },
+               function( defaultExtra, funcName ) {
+
+               // Margin is only for outerHeight, outerWidth
+               jQuery.fn[ funcName ] = function( margin, value ) {
+                       var chainable = arguments.length && ( defaultExtra || typeof margin !== "boolean" ),
+                               extra = defaultExtra || ( margin === true || value === true ? "margin" : "border" );
+
+                       return access( this, function( elem, type, value ) {
+                               var doc;
+
+                               if ( jQuery.isWindow( elem ) ) {
+
+                                       // $( window ).outerWidth/Height return w/h including scrollbars (gh-1729)
+                                       return funcName.indexOf( "outer" ) === 0 ?
+                                               elem[ "inner" + name ] :
+                                               elem.document.documentElement[ "client" + name ];
+                               }
+
+                               // Get document width or height
+                               if ( elem.nodeType === 9 ) {
+                                       doc = elem.documentElement;
+
+                                       // Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height],
+                                       // whichever is greatest
+                                       return Math.max(
+                                               elem.body[ "scroll" + name ], doc[ "scroll" + name ],
+                                               elem.body[ "offset" + name ], doc[ "offset" + name ],
+                                               doc[ "client" + name ]
+                                       );
+                               }
+
+                               return value === undefined ?
+
+                                       // Get width or height on the element, requesting but not forcing parseFloat
+                                       jQuery.css( elem, type, extra ) :
+
+                                       // Set width or height on the element
+                                       jQuery.style( elem, type, value, extra );
+                       }, type, chainable ? margin : undefined, chainable );
+               };
+       } );
+} );
+
+return jQuery;
+} );
diff --git a/js/jquery/src/effects.js b/js/jquery/src/effects.js
new file mode 100644 (file)
index 0000000..879b361
--- /dev/null
@@ -0,0 +1,699 @@
+define( [
+       "./core",
+       "./var/document",
+       "./var/rcssNum",
+       "./var/rnothtmlwhite",
+       "./css/var/cssExpand",
+       "./css/var/isHiddenWithinTree",
+       "./css/var/swap",
+       "./css/adjustCSS",
+       "./data/var/dataPriv",
+       "./css/showHide",
+
+       "./core/init",
+       "./queue",
+       "./deferred",
+       "./traversing",
+       "./manipulation",
+       "./css",
+       "./effects/Tween"
+], function( jQuery, document, rcssNum, rnothtmlwhite, cssExpand, isHiddenWithinTree, swap,
+       adjustCSS, dataPriv, showHide ) {
+
+"use strict";
+
+var
+       fxNow, inProgress,
+       rfxtypes = /^(?:toggle|show|hide)$/,
+       rrun = /queueHooks$/;
+
+function schedule() {
+       if ( inProgress ) {
+               if ( document.hidden === false && window.requestAnimationFrame ) {
+                       window.requestAnimationFrame( schedule );
+               } else {
+                       window.setTimeout( schedule, jQuery.fx.interval );
+               }
+
+               jQuery.fx.tick();
+       }
+}
+
+// Animations created synchronously will run synchronously
+function createFxNow() {
+       window.setTimeout( function() {
+               fxNow = undefined;
+       } );
+       return ( fxNow = jQuery.now() );
+}
+
+// Generate parameters to create a standard animation
+function genFx( type, includeWidth ) {
+       var which,
+               i = 0,
+               attrs = { height: type };
+
+       // If we include width, step value is 1 to do all cssExpand values,
+       // otherwise step value is 2 to skip over Left and Right
+       includeWidth = includeWidth ? 1 : 0;
+       for ( ; i < 4; i += 2 - includeWidth ) {
+               which = cssExpand[ i ];
+               attrs[ "margin" + which ] = attrs[ "padding" + which ] = type;
+       }
+
+       if ( includeWidth ) {
+               attrs.opacity = attrs.width = type;
+       }
+
+       return attrs;
+}
+
+function createTween( value, prop, animation ) {
+       var tween,
+               collection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ "*" ] ),
+               index = 0,
+               length = collection.length;
+       for ( ; index < length; index++ ) {
+               if ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {
+
+                       // We're done with this property
+                       return tween;
+               }
+       }
+}
+
+function defaultPrefilter( elem, props, opts ) {
+       var prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display,
+               isBox = "width" in props || "height" in props,
+               anim = this,
+               orig = {},
+               style = elem.style,
+               hidden = elem.nodeType && isHiddenWithinTree( elem ),
+               dataShow = dataPriv.get( elem, "fxshow" );
+
+       // Queue-skipping animations hijack the fx hooks
+       if ( !opts.queue ) {
+               hooks = jQuery._queueHooks( elem, "fx" );
+               if ( hooks.unqueued == null ) {
+                       hooks.unqueued = 0;
+                       oldfire = hooks.empty.fire;
+                       hooks.empty.fire = function() {
+                               if ( !hooks.unqueued ) {
+                                       oldfire();
+                               }
+                       };
+               }
+               hooks.unqueued++;
+
+               anim.always( function() {
+
+                       // Ensure the complete handler is called before this completes
+                       anim.always( function() {
+                               hooks.unqueued--;
+                               if ( !jQuery.queue( elem, "fx" ).length ) {
+                                       hooks.empty.fire();
+                               }
+                       } );
+               } );
+       }
+
+       // Detect show/hide animations
+       for ( prop in props ) {
+               value = props[ prop ];
+               if ( rfxtypes.test( value ) ) {
+                       delete props[ prop ];
+                       toggle = toggle || value === "toggle";
+                       if ( value === ( hidden ? "hide" : "show" ) ) {
+
+                               // Pretend to be hidden if this is a "show" and
+                               // there is still data from a stopped show/hide
+                               if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) {
+                                       hidden = true;
+
+                               // Ignore all other no-op show/hide data
+                               } else {
+                                       continue;
+                               }
+                       }
+                       orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );
+               }
+       }
+
+       // Bail out if this is a no-op like .hide().hide()
+       propTween = !jQuery.isEmptyObject( props );
+       if ( !propTween && jQuery.isEmptyObject( orig ) ) {
+               return;
+       }
+
+       // Restrict "overflow" and "display" styles during box animations
+       if ( isBox && elem.nodeType === 1 ) {
+
+               // Support: IE <=9 - 11, Edge 12 - 13
+               // Record all 3 overflow attributes because IE does not infer the shorthand
+               // from identically-valued overflowX and overflowY
+               opts.overflow = [ style.overflow, style.overflowX, style.overflowY ];
+
+               // Identify a display type, preferring old show/hide data over the CSS cascade
+               restoreDisplay = dataShow && dataShow.display;
+               if ( restoreDisplay == null ) {
+                       restoreDisplay = dataPriv.get( elem, "display" );
+               }
+               display = jQuery.css( elem, "display" );
+               if ( display === "none" ) {
+                       if ( restoreDisplay ) {
+                               display = restoreDisplay;
+                       } else {
+
+                               // Get nonempty value(s) by temporarily forcing visibility
+                               showHide( [ elem ], true );
+                               restoreDisplay = elem.style.display || restoreDisplay;
+                               display = jQuery.css( elem, "display" );
+                               showHide( [ elem ] );
+                       }
+               }
+
+               // Animate inline elements as inline-block
+               if ( display === "inline" || display === "inline-block" && restoreDisplay != null ) {
+                       if ( jQuery.css( elem, "float" ) === "none" ) {
+
+                               // Restore the original display value at the end of pure show/hide animations
+                               if ( !propTween ) {
+                                       anim.done( function() {
+                                               style.display = restoreDisplay;
+                                       } );
+                                       if ( restoreDisplay == null ) {
+                                               display = style.display;
+                                               restoreDisplay = display === "none" ? "" : display;
+                                       }
+                               }
+                               style.display = "inline-block";
+                       }
+               }
+       }
+
+       if ( opts.overflow ) {
+               style.overflow = "hidden";
+               anim.always( function() {
+                       style.overflow = opts.overflow[ 0 ];
+                       style.overflowX = opts.overflow[ 1 ];
+                       style.overflowY = opts.overflow[ 2 ];
+               } );
+       }
+
+       // Implement show/hide animations
+       propTween = false;
+       for ( prop in orig ) {
+
+               // General show/hide setup for this element animation
+               if ( !propTween ) {
+                       if ( dataShow ) {
+                               if ( "hidden" in dataShow ) {
+                                       hidden = dataShow.hidden;
+                               }
+                       } else {
+                               dataShow = dataPriv.access( elem, "fxshow", { display: restoreDisplay } );
+                       }
+
+                       // Store hidden/visible for toggle so `.stop().toggle()` "reverses"
+                       if ( toggle ) {
+                               dataShow.hidden = !hidden;
+                       }
+
+                       // Show elements before animating them
+                       if ( hidden ) {
+                               showHide( [ elem ], true );
+                       }
+
+                       /* eslint-disable no-loop-func */
+
+                       anim.done( function() {
+
+                       /* eslint-enable no-loop-func */
+
+                               // The final step of a "hide" animation is actually hiding the element
+                               if ( !hidden ) {
+                                       showHide( [ elem ] );
+                               }
+                               dataPriv.remove( elem, "fxshow" );
+                               for ( prop in orig ) {
+                                       jQuery.style( elem, prop, orig[ prop ] );
+                               }
+                       } );
+               }
+
+               // Per-property setup
+               propTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );
+               if ( !( prop in dataShow ) ) {
+                       dataShow[ prop ] = propTween.start;
+                       if ( hidden ) {
+                               propTween.end = propTween.start;
+                               propTween.start = 0;
+                       }
+               }
+       }
+}
+
+function propFilter( props, specialEasing ) {
+       var index, name, easing, value, hooks;
+
+       // camelCase, specialEasing and expand cssHook pass
+       for ( index in props ) {
+               name = jQuery.camelCase( index );
+               easing = specialEasing[ name ];
+               value = props[ index ];
+               if ( Array.isArray( value ) ) {
+                       easing = value[ 1 ];
+                       value = props[ index ] = value[ 0 ];
+               }
+
+               if ( index !== name ) {
+                       props[ name ] = value;
+                       delete props[ index ];
+               }
+
+               hooks = jQuery.cssHooks[ name ];
+               if ( hooks && "expand" in hooks ) {
+                       value = hooks.expand( value );
+                       delete props[ name ];
+
+                       // Not quite $.extend, this won't overwrite existing keys.
+                       // Reusing 'index' because we have the correct "name"
+                       for ( index in value ) {
+                               if ( !( index in props ) ) {
+                                       props[ index ] = value[ index ];
+                                       specialEasing[ index ] = easing;
+                               }
+                       }
+               } else {
+                       specialEasing[ name ] = easing;
+               }
+       }
+}
+
+function Animation( elem, properties, options ) {
+       var result,
+               stopped,
+               index = 0,
+               length = Animation.prefilters.length,
+               deferred = jQuery.Deferred().always( function() {
+
+                       // Don't match elem in the :animated selector
+                       delete tick.elem;
+               } ),
+               tick = function() {
+                       if ( stopped ) {
+                               return false;
+                       }
+                       var currentTime = fxNow || createFxNow(),
+                               remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),
+
+                               // Support: Android 2.3 only
+                               // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)
+                               temp = remaining / animation.duration || 0,
+                               percent = 1 - temp,
+                               index = 0,
+                               length = animation.tweens.length;
+
+                       for ( ; index < length; index++ ) {
+                               animation.tweens[ index ].run( percent );
+                       }
+
+                       deferred.notifyWith( elem, [ animation, percent, remaining ] );
+
+                       // If there's more to do, yield
+                       if ( percent < 1 && length ) {
+                               return remaining;
+                       }
+
+                       // If this was an empty animation, synthesize a final progress notification
+                       if ( !length ) {
+                               deferred.notifyWith( elem, [ animation, 1, 0 ] );
+                       }
+
+                       // Resolve the animation and report its conclusion
+                       deferred.resolveWith( elem, [ animation ] );
+                       return false;
+               },
+               animation = deferred.promise( {
+                       elem: elem,
+                       props: jQuery.extend( {}, properties ),
+                       opts: jQuery.extend( true, {
+                               specialEasing: {},
+                               easing: jQuery.easing._default
+                       }, options ),
+                       originalProperties: properties,
+                       originalOptions: options,
+                       startTime: fxNow || createFxNow(),
+                       duration: options.duration,
+                       tweens: [],
+                       createTween: function( prop, end ) {
+                               var tween = jQuery.Tween( elem, animation.opts, prop, end,
+                                               animation.opts.specialEasing[ prop ] || animation.opts.easing );
+                               animation.tweens.push( tween );
+                               return tween;
+                       },
+                       stop: function( gotoEnd ) {
+                               var index = 0,
+
+                                       // If we are going to the end, we want to run all the tweens
+                                       // otherwise we skip this part
+                                       length = gotoEnd ? animation.tweens.length : 0;
+                               if ( stopped ) {
+                                       return this;
+                               }
+                               stopped = true;
+                               for ( ; index < length; index++ ) {
+                                       animation.tweens[ index ].run( 1 );
+                               }
+
+                               // Resolve when we played the last frame; otherwise, reject
+                               if ( gotoEnd ) {
+                                       deferred.notifyWith( elem, [ animation, 1, 0 ] );
+                                       deferred.resolveWith( elem, [ animation, gotoEnd ] );
+                               } else {
+                                       deferred.rejectWith( elem, [ animation, gotoEnd ] );
+                               }
+                               return this;
+                       }
+               } ),
+               props = animation.props;
+
+       propFilter( props, animation.opts.specialEasing );
+
+       for ( ; index < length; index++ ) {
+               result = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );
+               if ( result ) {
+                       if ( jQuery.isFunction( result.stop ) ) {
+                               jQuery._queueHooks( animation.elem, animation.opts.queue ).stop =
+                                       jQuery.proxy( result.stop, result );
+                       }
+                       return result;
+               }
+       }
+
+       jQuery.map( props, createTween, animation );
+
+       if ( jQuery.isFunction( animation.opts.start ) ) {
+               animation.opts.start.call( elem, animation );
+       }
+
+       // Attach callbacks from options
+       animation
+               .progress( animation.opts.progress )
+               .done( animation.opts.done, animation.opts.complete )
+               .fail( animation.opts.fail )
+               .always( animation.opts.always );
+
+       jQuery.fx.timer(
+               jQuery.extend( tick, {
+                       elem: elem,
+                       anim: animation,
+                       queue: animation.opts.queue
+               } )
+       );
+
+       return animation;
+}
+
+jQuery.Animation = jQuery.extend( Animation, {
+
+       tweeners: {
+               "*": [ function( prop, value ) {
+                       var tween = this.createTween( prop, value );
+                       adjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );
+                       return tween;
+               } ]
+       },
+
+       tweener: function( props, callback ) {
+               if ( jQuery.isFunction( props ) ) {
+                       callback = props;
+                       props = [ "*" ];
+               } else {
+                       props = props.match( rnothtmlwhite );
+               }
+
+               var prop,
+                       index = 0,
+                       length = props.length;
+
+               for ( ; index < length; index++ ) {
+                       prop = props[ index ];
+                       Animation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];
+                       Animation.tweeners[ prop ].unshift( callback );
+               }
+       },
+
+       prefilters: [ defaultPrefilter ],
+
+       prefilter: function( callback, prepend ) {
+               if ( prepend ) {
+                       Animation.prefilters.unshift( callback );
+               } else {
+                       Animation.prefilters.push( callback );
+               }
+       }
+} );
+
+jQuery.speed = function( speed, easing, fn ) {
+       var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : {
+               complete: fn || !fn && easing ||
+                       jQuery.isFunction( speed ) && speed,
+               duration: speed,
+               easing: fn && easing || easing && !jQuery.isFunction( easing ) && easing
+       };
+
+       // Go to the end state if fx are off
+       if ( jQuery.fx.off ) {
+               opt.duration = 0;
+
+       } else {
+               if ( typeof opt.duration !== "number" ) {
+                       if ( opt.duration in jQuery.fx.speeds ) {
+                               opt.duration = jQuery.fx.speeds[ opt.duration ];
+
+                       } else {
+                               opt.duration = jQuery.fx.speeds._default;
+                       }
+               }
+       }
+
+       // Normalize opt.queue - true/undefined/null -> "fx"
+       if ( opt.queue == null || opt.queue === true ) {
+               opt.queue = "fx";
+       }
+
+       // Queueing
+       opt.old = opt.complete;
+
+       opt.complete = function() {
+               if ( jQuery.isFunction( opt.old ) ) {
+                       opt.old.call( this );
+               }
+
+               if ( opt.queue ) {
+                       jQuery.dequeue( this, opt.queue );
+               }
+       };
+
+       return opt;
+};
+
+jQuery.fn.extend( {
+       fadeTo: function( speed, to, easing, callback ) {
+
+               // Show any hidden elements after setting opacity to 0
+               return this.filter( isHiddenWithinTree ).css( "opacity", 0 ).show()
+
+                       // Animate to the value specified
+                       .end().animate( { opacity: to }, speed, easing, callback );
+       },
+       animate: function( prop, speed, easing, callback ) {
+               var empty = jQuery.isEmptyObject( prop ),
+                       optall = jQuery.speed( speed, easing, callback ),
+                       doAnimation = function() {
+
+                               // Operate on a copy of prop so per-property easing won't be lost
+                               var anim = Animation( this, jQuery.extend( {}, prop ), optall );
+
+                               // Empty animations, or finishing resolves immediately
+                               if ( empty || dataPriv.get( this, "finish" ) ) {
+                                       anim.stop( true );
+                               }
+                       };
+                       doAnimation.finish = doAnimation;
+
+               return empty || optall.queue === false ?
+                       this.each( doAnimation ) :
+                       this.queue( optall.queue, doAnimation );
+       },
+       stop: function( type, clearQueue, gotoEnd ) {
+               var stopQueue = function( hooks ) {
+                       var stop = hooks.stop;
+                       delete hooks.stop;
+                       stop( gotoEnd );
+               };
+
+               if ( typeof type !== "string" ) {
+                       gotoEnd = clearQueue;
+                       clearQueue = type;
+                       type = undefined;
+               }
+               if ( clearQueue && type !== false ) {
+                       this.queue( type || "fx", [] );
+               }
+
+               return this.each( function() {
+                       var dequeue = true,
+                               index = type != null && type + "queueHooks",
+                               timers = jQuery.timers,
+                               data = dataPriv.get( this );
+
+                       if ( index ) {
+                               if ( data[ index ] && data[ index ].stop ) {
+                                       stopQueue( data[ index ] );
+                               }
+                       } else {
+                               for ( index in data ) {
+                                       if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {
+                                               stopQueue( data[ index ] );
+                                       }
+                               }
+                       }
+
+                       for ( index = timers.length; index--; ) {
+                               if ( timers[ index ].elem === this &&
+                                       ( type == null || timers[ index ].queue === type ) ) {
+
+                                       timers[ index ].anim.stop( gotoEnd );
+                                       dequeue = false;
+                                       timers.splice( index, 1 );
+                               }
+                       }
+
+                       // Start the next in the queue if the last step wasn't forced.
+                       // Timers currently will call their complete callbacks, which
+                       // will dequeue but only if they were gotoEnd.
+                       if ( dequeue || !gotoEnd ) {
+                               jQuery.dequeue( this, type );
+                       }
+               } );
+       },
+       finish: function( type ) {
+               if ( type !== false ) {
+                       type = type || "fx";
+               }
+               return this.each( function() {
+                       var index,
+                               data = dataPriv.get( this ),
+                               queue = data[ type + "queue" ],
+                               hooks = data[ type + "queueHooks" ],
+                               timers = jQuery.timers,
+                               length = queue ? queue.length : 0;
+
+                       // Enable finishing flag on private data
+                       data.finish = true;
+
+                       // Empty the queue first
+                       jQuery.queue( this, type, [] );
+
+                       if ( hooks && hooks.stop ) {
+                               hooks.stop.call( this, true );
+                       }
+
+                       // Look for any active animations, and finish them
+                       for ( index = timers.length; index--; ) {
+                               if ( timers[ index ].elem === this && timers[ index ].queue === type ) {
+                                       timers[ index ].anim.stop( true );
+                                       timers.splice( index, 1 );
+                               }
+                       }
+
+                       // Look for any animations in the old queue and finish them
+                       for ( index = 0; index < length; index++ ) {
+                               if ( queue[ index ] && queue[ index ].finish ) {
+                                       queue[ index ].finish.call( this );
+                               }
+                       }
+
+                       // Turn off finishing flag
+                       delete data.finish;
+               } );
+       }
+} );
+
+jQuery.each( [ "toggle", "show", "hide" ], function( i, name ) {
+       var cssFn = jQuery.fn[ name ];
+       jQuery.fn[ name ] = function( speed, easing, callback ) {
+               return speed == null || typeof speed === "boolean" ?
+                       cssFn.apply( this, arguments ) :
+                       this.animate( genFx( name, true ), speed, easing, callback );
+       };
+} );
+
+// Generate shortcuts for custom animations
+jQuery.each( {
+       slideDown: genFx( "show" ),
+       slideUp: genFx( "hide" ),
+       slideToggle: genFx( "toggle" ),
+       fadeIn: { opacity: "show" },
+       fadeOut: { opacity: "hide" },
+       fadeToggle: { opacity: "toggle" }
+}, function( name, props ) {
+       jQuery.fn[ name ] = function( speed, easing, callback ) {
+               return this.animate( props, speed, easing, callback );
+       };
+} );
+
+jQuery.timers = [];
+jQuery.fx.tick = function() {
+       var timer,
+               i = 0,
+               timers = jQuery.timers;
+
+       fxNow = jQuery.now();
+
+       for ( ; i < timers.length; i++ ) {
+               timer = timers[ i ];
+
+               // Run the timer and safely remove it when done (allowing for external removal)
+               if ( !timer() && timers[ i ] === timer ) {
+                       timers.splice( i--, 1 );
+               }
+       }
+
+       if ( !timers.length ) {
+               jQuery.fx.stop();
+       }
+       fxNow = undefined;
+};
+
+jQuery.fx.timer = function( timer ) {
+       jQuery.timers.push( timer );
+       jQuery.fx.start();
+};
+
+jQuery.fx.interval = 13;
+jQuery.fx.start = function() {
+       if ( inProgress ) {
+               return;
+       }
+
+       inProgress = true;
+       schedule();
+};
+
+jQuery.fx.stop = function() {
+       inProgress = null;
+};
+
+jQuery.fx.speeds = {
+       slow: 600,
+       fast: 200,
+
+       // Default speed
+       _default: 400
+};
+
+return jQuery;
+} );
diff --git a/js/jquery/src/effects/Tween.js b/js/jquery/src/effects/Tween.js
new file mode 100644 (file)
index 0000000..43eb8fa
--- /dev/null
@@ -0,0 +1,123 @@
+define( [
+       "../core",
+       "../css"
+], function( jQuery ) {
+
+"use strict";
+
+function Tween( elem, options, prop, end, easing ) {
+       return new Tween.prototype.init( elem, options, prop, end, easing );
+}
+jQuery.Tween = Tween;
+
+Tween.prototype = {
+       constructor: Tween,
+       init: function( elem, options, prop, end, easing, unit ) {
+               this.elem = elem;
+               this.prop = prop;
+               this.easing = easing || jQuery.easing._default;
+               this.options = options;
+               this.start = this.now = this.cur();
+               this.end = end;
+               this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" );
+       },
+       cur: function() {
+               var hooks = Tween.propHooks[ this.prop ];
+
+               return hooks && hooks.get ?
+                       hooks.get( this ) :
+                       Tween.propHooks._default.get( this );
+       },
+       run: function( percent ) {
+               var eased,
+                       hooks = Tween.propHooks[ this.prop ];
+
+               if ( this.options.duration ) {
+                       this.pos = eased = jQuery.easing[ this.easing ](
+                               percent, this.options.duration * percent, 0, 1, this.options.duration
+                       );
+               } else {
+                       this.pos = eased = percent;
+               }
+               this.now = ( this.end - this.start ) * eased + this.start;
+
+               if ( this.options.step ) {
+                       this.options.step.call( this.elem, this.now, this );
+               }
+
+               if ( hooks && hooks.set ) {
+                       hooks.set( this );
+               } else {
+                       Tween.propHooks._default.set( this );
+               }
+               return this;
+       }
+};
+
+Tween.prototype.init.prototype = Tween.prototype;
+
+Tween.propHooks = {
+       _default: {
+               get: function( tween ) {
+                       var result;
+
+                       // Use a property on the element directly when it is not a DOM element,
+                       // or when there is no matching style property that exists.
+                       if ( tween.elem.nodeType !== 1 ||
+                               tween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {
+                               return tween.elem[ tween.prop ];
+                       }
+
+                       // Passing an empty string as a 3rd parameter to .css will automatically
+                       // attempt a parseFloat and fallback to a string if the parse fails.
+                       // Simple values such as "10px" are parsed to Float;
+                       // complex values such as "rotate(1rad)" are returned as-is.
+                       result = jQuery.css( tween.elem, tween.prop, "" );
+
+                       // Empty strings, null, undefined and "auto" are converted to 0.
+                       return !result || result === "auto" ? 0 : result;
+               },
+               set: function( tween ) {
+
+                       // Use step hook for back compat.
+                       // Use cssHook if its there.
+                       // Use .style if available and use plain properties where available.
+                       if ( jQuery.fx.step[ tween.prop ] ) {
+                               jQuery.fx.step[ tween.prop ]( tween );
+                       } else if ( tween.elem.nodeType === 1 &&
+                               ( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null ||
+                                       jQuery.cssHooks[ tween.prop ] ) ) {
+                               jQuery.style( tween.elem, tween.prop, tween.now + tween.unit );
+                       } else {
+                               tween.elem[ tween.prop ] = tween.now;
+                       }
+               }
+       }
+};
+
+// Support: IE <=9 only
+// Panic based approach to setting things on disconnected nodes
+Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {
+       set: function( tween ) {
+               if ( tween.elem.nodeType && tween.elem.parentNode ) {
+                       tween.elem[ tween.prop ] = tween.now;
+               }
+       }
+};
+
+jQuery.easing = {
+       linear: function( p ) {
+               return p;
+       },
+       swing: function( p ) {
+               return 0.5 - Math.cos( p * Math.PI ) / 2;
+       },
+       _default: "swing"
+};
+
+jQuery.fx = Tween.prototype.init;
+
+// Back compat <1.8 extension point
+jQuery.fx.step = {};
+
+} );
diff --git a/js/jquery/src/effects/animatedSelector.js b/js/jquery/src/effects/animatedSelector.js
new file mode 100644 (file)
index 0000000..24c1bfb
--- /dev/null
@@ -0,0 +1,15 @@
+define( [
+       "../core",
+       "../selector",
+       "../effects"
+], function( jQuery ) {
+
+"use strict";
+
+jQuery.expr.pseudos.animated = function( elem ) {
+       return jQuery.grep( jQuery.timers, function( fn ) {
+               return elem === fn.elem;
+       } ).length;
+};
+
+} );
diff --git a/js/jquery/src/event.js b/js/jquery/src/event.js
new file mode 100644 (file)
index 0000000..071deb6
--- /dev/null
@@ -0,0 +1,746 @@
+define( [
+       "./core",
+       "./var/document",
+       "./var/documentElement",
+       "./var/rnothtmlwhite",
+       "./var/slice",
+       "./data/var/dataPriv",
+       "./core/nodeName",
+
+       "./core/init",
+       "./selector"
+], function( jQuery, document, documentElement, rnothtmlwhite, slice, dataPriv, nodeName ) {
+
+"use strict";
+
+var
+       rkeyEvent = /^key/,
+       rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,
+       rtypenamespace = /^([^.]*)(?:\.(.+)|)/;
+
+function returnTrue() {
+       return true;
+}
+
+function returnFalse() {
+       return false;
+}
+
+// Support: IE <=9 only
+// See #13393 for more info
+function safeActiveElement() {
+       try {
+               return document.activeElement;
+       } catch ( err ) { }
+}
+
+function on( elem, types, selector, data, fn, one ) {
+       var origFn, type;
+
+       // Types can be a map of types/handlers
+       if ( typeof types === "object" ) {
+
+               // ( types-Object, selector, data )
+               if ( typeof selector !== "string" ) {
+
+                       // ( types-Object, data )
+                       data = data || selector;
+                       selector = undefined;
+               }
+               for ( type in types ) {
+                       on( elem, type, selector, data, types[ type ], one );
+               }
+               return elem;
+       }
+
+       if ( data == null && fn == null ) {
+
+               // ( types, fn )
+               fn = selector;
+               data = selector = undefined;
+       } else if ( fn == null ) {
+               if ( typeof selector === "string" ) {
+
+                       // ( types, selector, fn )
+                       fn = data;
+                       data = undefined;
+               } else {
+
+                       // ( types, data, fn )
+                       fn = data;
+                       data = selector;
+                       selector = undefined;
+               }
+       }
+       if ( fn === false ) {
+               fn = returnFalse;
+       } else if ( !fn ) {
+               return elem;
+       }
+
+       if ( one === 1 ) {
+               origFn = fn;
+               fn = function( event ) {
+
+                       // Can use an empty set, since event contains the info
+                       jQuery().off( event );
+                       return origFn.apply( this, arguments );
+               };
+
+               // Use same guid so caller can remove using origFn
+               fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );
+       }
+       return elem.each( function() {
+               jQuery.event.add( this, types, fn, data, selector );
+       } );
+}
+
+/*
+ * Helper functions for managing events -- not part of the public interface.
+ * Props to Dean Edwards' addEvent library for many of the ideas.
+ */
+jQuery.event = {
+
+       global: {},
+
+       add: function( elem, types, handler, data, selector ) {
+
+               var handleObjIn, eventHandle, tmp,
+                       events, t, handleObj,
+                       special, handlers, type, namespaces, origType,
+                       elemData = dataPriv.get( elem );
+
+               // Don't attach events to noData or text/comment nodes (but allow plain objects)
+               if ( !elemData ) {
+                       return;
+               }
+
+               // Caller can pass in an object of custom data in lieu of the handler
+               if ( handler.handler ) {
+                       handleObjIn = handler;
+                       handler = handleObjIn.handler;
+                       selector = handleObjIn.selector;
+               }
+
+               // Ensure that invalid selectors throw exceptions at attach time
+               // Evaluate against documentElement in case elem is a non-element node (e.g., document)
+               if ( selector ) {
+                       jQuery.find.matchesSelector( documentElement, selector );
+               }
+
+               // Make sure that the handler has a unique ID, used to find/remove it later
+               if ( !handler.guid ) {
+                       handler.guid = jQuery.guid++;
+               }
+
+               // Init the element's event structure and main handler, if this is the first
+               if ( !( events = elemData.events ) ) {
+                       events = elemData.events = {};
+               }
+               if ( !( eventHandle = elemData.handle ) ) {
+                       eventHandle = elemData.handle = function( e ) {
+
+                               // Discard the second event of a jQuery.event.trigger() and
+                               // when an event is called after a page has unloaded
+                               return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ?
+                                       jQuery.event.dispatch.apply( elem, arguments ) : undefined;
+                       };
+               }
+
+               // Handle multiple events separated by a space
+               types = ( types || "" ).match( rnothtmlwhite ) || [ "" ];
+               t = types.length;
+               while ( t-- ) {
+                       tmp = rtypenamespace.exec( types[ t ] ) || [];
+                       type = origType = tmp[ 1 ];
+                       namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort();
+
+                       // There *must* be a type, no attaching namespace-only handlers
+                       if ( !type ) {
+                               continue;
+                       }
+
+                       // If event changes its type, use the special event handlers for the changed type
+                       special = jQuery.event.special[ type ] || {};
+
+                       // If selector defined, determine special event api type, otherwise given type
+                       type = ( selector ? special.delegateType : special.bindType ) || type;
+
+                       // Update special based on newly reset type
+                       special = jQuery.event.special[ type ] || {};
+
+                       // handleObj is passed to all event handlers
+                       handleObj = jQuery.extend( {
+                               type: type,
+                               origType: origType,
+                               data: data,
+                               handler: handler,
+                               guid: handler.guid,
+                               selector: selector,
+                               needsContext: selector && jQuery.expr.match.needsContext.test( selector ),
+                               namespace: namespaces.join( "." )
+                       }, handleObjIn );
+
+                       // Init the event handler queue if we're the first
+                       if ( !( handlers = events[ type ] ) ) {
+                               handlers = events[ type ] = [];
+                               handlers.delegateCount = 0;
+
+                               // Only use addEventListener if the special events handler returns false
+                               if ( !special.setup ||
+                                       special.setup.call( elem, data, namespaces, eventHandle ) === false ) {
+
+                                       if ( elem.addEventListener ) {
+                                               elem.addEventListener( type, eventHandle );
+                                       }
+                               }
+                       }
+
+                       if ( special.add ) {
+                               special.add.call( elem, handleObj );
+
+                               if ( !handleObj.handler.guid ) {
+                                       handleObj.handler.guid = handler.guid;
+                               }
+                       }
+
+                       // Add to the element's handler list, delegates in front
+                       if ( selector ) {
+                               handlers.splice( handlers.delegateCount++, 0, handleObj );
+                       } else {
+                               handlers.push( handleObj );
+                       }
+
+                       // Keep track of which events have ever been used, for event optimization
+                       jQuery.event.global[ type ] = true;
+               }
+
+       },
+
+       // Detach an event or set of events from an element
+       remove: function( elem, types, handler, selector, mappedTypes ) {
+
+               var j, origCount, tmp,
+                       events, t, handleObj,
+                       special, handlers, type, namespaces, origType,
+                       elemData = dataPriv.hasData( elem ) && dataPriv.get( elem );
+
+               if ( !elemData || !( events = elemData.events ) ) {
+                       return;
+               }
+
+               // Once for each type.namespace in types; type may be omitted
+               types = ( types || "" ).match( rnothtmlwhite ) || [ "" ];
+               t = types.length;
+               while ( t-- ) {
+                       tmp = rtypenamespace.exec( types[ t ] ) || [];
+                       type = origType = tmp[ 1 ];
+                       namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort();
+
+                       // Unbind all events (on this namespace, if provided) for the element
+                       if ( !type ) {
+                               for ( type in events ) {
+                                       jQuery.event.remove( elem, type + types[ t ], handler, selector, true );
+                               }
+                               continue;
+                       }
+
+                       special = jQuery.event.special[ type ] || {};
+                       type = ( selector ? special.delegateType : special.bindType ) || type;
+                       handlers = events[ type ] || [];
+                       tmp = tmp[ 2 ] &&
+                               new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" );
+
+                       // Remove matching events
+                       origCount = j = handlers.length;
+                       while ( j-- ) {
+                               handleObj = handlers[ j ];
+
+                               if ( ( mappedTypes || origType === handleObj.origType ) &&
+                                       ( !handler || handler.guid === handleObj.guid ) &&
+                                       ( !tmp || tmp.test( handleObj.namespace ) ) &&
+                                       ( !selector || selector === handleObj.selector ||
+                                               selector === "**" && handleObj.selector ) ) {
+                                       handlers.splice( j, 1 );
+
+                                       if ( handleObj.selector ) {
+                                               handlers.delegateCount--;
+                                       }
+                                       if ( special.remove ) {
+                                               special.remove.call( elem, handleObj );
+                                       }
+                               }
+                       }
+
+                       // Remove generic event handler if we removed something and no more handlers exist
+                       // (avoids potential for endless recursion during removal of special event handlers)
+                       if ( origCount && !handlers.length ) {
+                               if ( !special.teardown ||
+                                       special.teardown.call( elem, namespaces, elemData.handle ) === false ) {
+
+                                       jQuery.removeEvent( elem, type, elemData.handle );
+                               }
+
+                               delete events[ type ];
+                       }
+               }
+
+               // Remove data and the expando if it's no longer used
+               if ( jQuery.isEmptyObject( events ) ) {
+                       dataPriv.remove( elem, "handle events" );
+               }
+       },
+
+       dispatch: function( nativeEvent ) {
+
+               // Make a writable jQuery.Event from the native event object
+               var event = jQuery.event.fix( nativeEvent );
+
+               var i, j, ret, matched, handleObj, handlerQueue,
+                       args = new Array( arguments.length ),
+                       handlers = ( dataPriv.get( this, "events" ) || {} )[ event.type ] || [],
+                       special = jQuery.event.special[ event.type ] || {};
+
+               // Use the fix-ed jQuery.Event rather than the (read-only) native event
+               args[ 0 ] = event;
+
+               for ( i = 1; i < arguments.length; i++ ) {
+                       args[ i ] = arguments[ i ];
+               }
+
+               event.delegateTarget = this;
+
+               // Call the preDispatch hook for the mapped type, and let it bail if desired
+               if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {
+                       return;
+               }
+
+               // Determine handlers
+               handlerQueue = jQuery.event.handlers.call( this, event, handlers );
+
+               // Run delegates first; they may want to stop propagation beneath us
+               i = 0;
+               while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {
+                       event.currentTarget = matched.elem;
+
+                       j = 0;
+                       while ( ( handleObj = matched.handlers[ j++ ] ) &&
+                               !event.isImmediatePropagationStopped() ) {
+
+                               // Triggered event must either 1) have no namespace, or 2) have namespace(s)
+                               // a subset or equal to those in the bound event (both can have no namespace).
+                               if ( !event.rnamespace || event.rnamespace.test( handleObj.namespace ) ) {
+
+                                       event.handleObj = handleObj;
+                                       event.data = handleObj.data;
+
+                                       ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||
+                                               handleObj.handler ).apply( matched.elem, args );
+
+                                       if ( ret !== undefined ) {
+                                               if ( ( event.result = ret ) === false ) {
+                                                       event.preventDefault();
+                                                       event.stopPropagation();
+                                               }
+                                       }
+                               }
+                       }
+               }
+
+               // Call the postDispatch hook for the mapped type
+               if ( special.postDispatch ) {
+                       special.postDispatch.call( this, event );
+               }
+
+               return event.result;
+       },
+
+       handlers: function( event, handlers ) {
+               var i, handleObj, sel, matchedHandlers, matchedSelectors,
+                       handlerQueue = [],
+                       delegateCount = handlers.delegateCount,
+                       cur = event.target;
+
+               // Find delegate handlers
+               if ( delegateCount &&
+
+                       // Support: IE <=9
+                       // Black-hole SVG <use> instance trees (trac-13180)
+                       cur.nodeType &&
+
+                       // Support: Firefox <=42
+                       // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)
+                       // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click
+                       // Support: IE 11 only
+                       // ...but not arrow key "clicks" of radio inputs, which can have `button` -1 (gh-2343)
+                       !( event.type === "click" && event.button >= 1 ) ) {
+
+                       for ( ; cur !== this; cur = cur.parentNode || this ) {
+
+                               // Don't check non-elements (#13208)
+                               // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)
+                               if ( cur.nodeType === 1 && !( event.type === "click" && cur.disabled === true ) ) {
+                                       matchedHandlers = [];
+                                       matchedSelectors = {};
+                                       for ( i = 0; i < delegateCount; i++ ) {
+                                               handleObj = handlers[ i ];
+
+                                               // Don't conflict with Object.prototype properties (#13203)
+                                               sel = handleObj.selector + " ";
+
+                                               if ( matchedSelectors[ sel ] === undefined ) {
+                                                       matchedSelectors[ sel ] = handleObj.needsContext ?
+                                                               jQuery( sel, this ).index( cur ) > -1 :
+                                                               jQuery.find( sel, this, null, [ cur ] ).length;
+                                               }
+                                               if ( matchedSelectors[ sel ] ) {
+                                                       matchedHandlers.push( handleObj );
+                                               }
+                                       }
+                                       if ( matchedHandlers.length ) {
+                                               handlerQueue.push( { elem: cur, handlers: matchedHandlers } );
+                                       }
+                               }
+                       }
+               }
+
+               // Add the remaining (directly-bound) handlers
+               cur = this;
+               if ( delegateCount < handlers.length ) {
+                       handlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );
+               }
+
+               return handlerQueue;
+       },
+
+       addProp: function( name, hook ) {
+               Object.defineProperty( jQuery.Event.prototype, name, {
+                       enumerable: true,
+                       configurable: true,
+
+                       get: jQuery.isFunction( hook ) ?
+                               function() {
+                                       if ( this.originalEvent ) {
+                                                       return hook( this.originalEvent );
+                                       }
+                               } :
+                               function() {
+                                       if ( this.originalEvent ) {
+                                                       return this.originalEvent[ name ];
+                                       }
+                               },
+
+                       set: function( value ) {
+                               Object.defineProperty( this, name, {
+                                       enumerable: true,
+                                       configurable: true,
+                                       writable: true,
+                                       value: value
+                               } );
+                       }
+               } );
+       },
+
+       fix: function( originalEvent ) {
+               return originalEvent[ jQuery.expando ] ?
+                       originalEvent :
+                       new jQuery.Event( originalEvent );
+       },
+
+       special: {
+               load: {
+
+                       // Prevent triggered image.load events from bubbling to window.load
+                       noBubble: true
+               },
+               focus: {
+
+                       // Fire native event if possible so blur/focus sequence is correct
+                       trigger: function() {
+                               if ( this !== safeActiveElement() && this.focus ) {
+                                       this.focus();
+                                       return false;
+                               }
+                       },
+                       delegateType: "focusin"
+               },
+               blur: {
+                       trigger: function() {
+                               if ( this === safeActiveElement() && this.blur ) {
+                                       this.blur();
+                                       return false;
+                               }
+                       },
+                       delegateType: "focusout"
+               },
+               click: {
+
+                       // For checkbox, fire native event so checked state will be right
+                       trigger: function() {
+                               if ( this.type === "checkbox" && this.click && nodeName( this, "input" ) ) {
+                                       this.click();
+                                       return false;
+                               }
+                       },
+
+                       // For cross-browser consistency, don't fire native .click() on links
+                       _default: function( event ) {
+                               return nodeName( event.target, "a" );
+                       }
+               },
+
+               beforeunload: {
+                       postDispatch: function( event ) {
+
+                               // Support: Firefox 20+
+                               // Firefox doesn't alert if the returnValue field is not set.
+                               if ( event.result !== undefined && event.originalEvent ) {
+                                       event.originalEvent.returnValue = event.result;
+                               }
+                       }
+               }
+       }
+};
+
+jQuery.removeEvent = function( elem, type, handle ) {
+
+       // This "if" is needed for plain objects
+       if ( elem.removeEventListener ) {
+               elem.removeEventListener( type, handle );
+       }
+};
+
+jQuery.Event = function( src, props ) {
+
+       // Allow instantiation without the 'new' keyword
+       if ( !( this instanceof jQuery.Event ) ) {
+               return new jQuery.Event( src, props );
+       }
+
+       // Event object
+       if ( src && src.type ) {
+               this.originalEvent = src;
+               this.type = src.type;
+
+               // Events bubbling up the document may have been marked as prevented
+               // by a handler lower down the tree; reflect the correct value.
+               this.isDefaultPrevented = src.defaultPrevented ||
+                               src.defaultPrevented === undefined &&
+
+                               // Support: Android <=2.3 only
+                               src.returnValue === false ?
+                       returnTrue :
+                       returnFalse;
+
+               // Create target properties
+               // Support: Safari <=6 - 7 only
+               // Target should not be a text node (#504, #13143)
+               this.target = ( src.target && src.target.nodeType === 3 ) ?
+                       src.target.parentNode :
+                       src.target;
+
+               this.currentTarget = src.currentTarget;
+               this.relatedTarget = src.relatedTarget;
+
+       // Event type
+       } else {
+               this.type = src;
+       }
+
+       // Put explicitly provided properties onto the event object
+       if ( props ) {
+               jQuery.extend( this, props );
+       }
+
+       // Create a timestamp if incoming event doesn't have one
+       this.timeStamp = src && src.timeStamp || jQuery.now();
+
+       // Mark it as fixed
+       this[ jQuery.expando ] = true;
+};
+
+// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding
+// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html
+jQuery.Event.prototype = {
+       constructor: jQuery.Event,
+       isDefaultPrevented: returnFalse,
+       isPropagationStopped: returnFalse,
+       isImmediatePropagationStopped: returnFalse,
+       isSimulated: false,
+
+       preventDefault: function() {
+               var e = this.originalEvent;
+
+               this.isDefaultPrevented = returnTrue;
+
+               if ( e && !this.isSimulated ) {
+                       e.preventDefault();
+               }
+       },
+       stopPropagation: function() {
+               var e = this.originalEvent;
+
+               this.isPropagationStopped = returnTrue;
+
+               if ( e && !this.isSimulated ) {
+                       e.stopPropagation();
+               }
+       },
+       stopImmediatePropagation: function() {
+               var e = this.originalEvent;
+
+               this.isImmediatePropagationStopped = returnTrue;
+
+               if ( e && !this.isSimulated ) {
+                       e.stopImmediatePropagation();
+               }
+
+               this.stopPropagation();
+       }
+};
+
+// Includes all common event props including KeyEvent and MouseEvent specific props
+jQuery.each( {
+       altKey: true,
+       bubbles: true,
+       cancelable: true,
+       changedTouches: true,
+       ctrlKey: true,
+       detail: true,
+       eventPhase: true,
+       metaKey: true,
+       pageX: true,
+       pageY: true,
+       shiftKey: true,
+       view: true,
+       "char": true,
+       charCode: true,
+       key: true,
+       keyCode: true,
+       button: true,
+       buttons: true,
+       clientX: true,
+       clientY: true,
+       offsetX: true,
+       offsetY: true,
+       pointerId: true,
+       pointerType: true,
+       screenX: true,
+       screenY: true,
+       targetTouches: true,
+       toElement: true,
+       touches: true,
+
+       which: function( event ) {
+               var button = event.button;
+
+               // Add which for key events
+               if ( event.which == null && rkeyEvent.test( event.type ) ) {
+                       return event.charCode != null ? event.charCode : event.keyCode;
+               }
+
+               // Add which for click: 1 === left; 2 === middle; 3 === right
+               if ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) {
+                       if ( button & 1 ) {
+                               return 1;
+                       }
+
+                       if ( button & 2 ) {
+                               return 3;
+                       }
+
+                       if ( button & 4 ) {
+                               return 2;
+                       }
+
+                       return 0;
+               }
+
+               return event.which;
+       }
+}, jQuery.event.addProp );
+
+// Create mouseenter/leave events using mouseover/out and event-time checks
+// so that event delegation works in jQuery.
+// Do the same for pointerenter/pointerleave and pointerover/pointerout
+//
+// Support: Safari 7 only
+// Safari sends mouseenter too often; see:
+// https://bugs.chromium.org/p/chromium/issues/detail?id=470258
+// for the description of the bug (it existed in older Chrome versions as well).
+jQuery.each( {
+       mouseenter: "mouseover",
+       mouseleave: "mouseout",
+       pointerenter: "pointerover",
+       pointerleave: "pointerout"
+}, function( orig, fix ) {
+       jQuery.event.special[ orig ] = {
+               delegateType: fix,
+               bindType: fix,
+
+               handle: function( event ) {
+                       var ret,
+                               target = this,
+                               related = event.relatedTarget,
+                               handleObj = event.handleObj;
+
+                       // For mouseenter/leave call the handler if related is outside the target.
+                       // NB: No relatedTarget if the mouse left/entered the browser window
+                       if ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {
+                               event.type = handleObj.origType;
+                               ret = handleObj.handler.apply( this, arguments );
+                               event.type = fix;
+                       }
+                       return ret;
+               }
+       };
+} );
+
+jQuery.fn.extend( {
+
+       on: function( types, selector, data, fn ) {
+               return on( this, types, selector, data, fn );
+       },
+       one: function( types, selector, data, fn ) {
+               return on( this, types, selector, data, fn, 1 );
+       },
+       off: function( types, selector, fn ) {
+               var handleObj, type;
+               if ( types && types.preventDefault && types.handleObj ) {
+
+                       // ( event )  dispatched jQuery.Event
+                       handleObj = types.handleObj;
+                       jQuery( types.delegateTarget ).off(
+                               handleObj.namespace ?
+                                       handleObj.origType + "." + handleObj.namespace :
+                                       handleObj.origType,
+                               handleObj.selector,
+                               handleObj.handler
+                       );
+                       return this;
+               }
+               if ( typeof types === "object" ) {
+
+                       // ( types-object [, selector] )
+                       for ( type in types ) {
+                               this.off( type, selector, types[ type ] );
+                       }
+                       return this;
+               }
+               if ( selector === false || typeof selector === "function" ) {
+
+                       // ( types [, fn] )
+                       fn = selector;
+                       selector = undefined;
+               }
+               if ( fn === false ) {
+                       fn = returnFalse;
+               }
+               return this.each( function() {
+                       jQuery.event.remove( this, types, fn, selector );
+               } );
+       }
+} );
+
+return jQuery;
+} );
diff --git a/js/jquery/src/event/ajax.js b/js/jquery/src/event/ajax.js
new file mode 100644 (file)
index 0000000..500b36c
--- /dev/null
@@ -0,0 +1,22 @@
+define( [
+       "../core",
+       "../event"
+], function( jQuery ) {
+
+"use strict";
+
+// Attach a bunch of functions for handling common AJAX events
+jQuery.each( [
+       "ajaxStart",
+       "ajaxStop",
+       "ajaxComplete",
+       "ajaxError",
+       "ajaxSuccess",
+       "ajaxSend"
+], function( i, type ) {
+       jQuery.fn[ type ] = function( fn ) {
+               return this.on( type, fn );
+       };
+} );
+
+} );
diff --git a/js/jquery/src/event/alias.js b/js/jquery/src/event/alias.js
new file mode 100644 (file)
index 0000000..863c94a
--- /dev/null
@@ -0,0 +1,29 @@
+define( [
+       "../core",
+
+       "../event",
+       "./trigger"
+], function( jQuery ) {
+
+"use strict";
+
+jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " +
+       "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
+       "change select submit keydown keypress keyup contextmenu" ).split( " " ),
+       function( i, name ) {
+
+       // Handle event binding
+       jQuery.fn[ name ] = function( data, fn ) {
+               return arguments.length > 0 ?
+                       this.on( name, null, data, fn ) :
+                       this.trigger( name );
+       };
+} );
+
+jQuery.fn.extend( {
+       hover: function( fnOver, fnOut ) {
+               return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
+       }
+} );
+
+} );
diff --git a/js/jquery/src/event/focusin.js b/js/jquery/src/event/focusin.js
new file mode 100644 (file)
index 0000000..7faef29
--- /dev/null
@@ -0,0 +1,55 @@
+define( [
+       "../core",
+       "../data/var/dataPriv",
+       "./support",
+
+       "../event",
+       "./trigger"
+], function( jQuery, dataPriv, support ) {
+
+"use strict";
+
+// Support: Firefox <=44
+// Firefox doesn't have focus(in | out) events
+// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787
+//
+// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1
+// focus(in | out) events fire after focus & blur events,
+// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order
+// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857
+if ( !support.focusin ) {
+       jQuery.each( { focus: "focusin", blur: "focusout" }, function( orig, fix ) {
+
+               // Attach a single capturing handler on the document while someone wants focusin/focusout
+               var handler = function( event ) {
+                       jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );
+               };
+
+               jQuery.event.special[ fix ] = {
+                       setup: function() {
+                               var doc = this.ownerDocument || this,
+                                       attaches = dataPriv.access( doc, fix );
+
+                               if ( !attaches ) {
+                                       doc.addEventListener( orig, handler, true );
+                               }
+                               dataPriv.access( doc, fix, ( attaches || 0 ) + 1 );
+                       },
+                       teardown: function() {
+                               var doc = this.ownerDocument || this,
+                                       attaches = dataPriv.access( doc, fix ) - 1;
+
+                               if ( !attaches ) {
+                                       doc.removeEventListener( orig, handler, true );
+                                       dataPriv.remove( doc, fix );
+
+                               } else {
+                                       dataPriv.access( doc, fix, attaches );
+                               }
+                       }
+               };
+       } );
+}
+
+return jQuery;
+} );
diff --git a/js/jquery/src/event/support.js b/js/jquery/src/event/support.js
new file mode 100644 (file)
index 0000000..e3db9ad
--- /dev/null
@@ -0,0 +1,11 @@
+define( [
+       "../var/support"
+], function( support ) {
+
+"use strict";
+
+support.focusin = "onfocusin" in window;
+
+return support;
+
+} );
diff --git a/js/jquery/src/event/trigger.js b/js/jquery/src/event/trigger.js
new file mode 100644 (file)
index 0000000..ef39137
--- /dev/null
@@ -0,0 +1,185 @@
+define( [
+       "../core",
+       "../var/document",
+       "../data/var/dataPriv",
+       "../data/var/acceptData",
+       "../var/hasOwn",
+
+       "../event"
+], function( jQuery, document, dataPriv, acceptData, hasOwn ) {
+
+"use strict";
+
+var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/;
+
+jQuery.extend( jQuery.event, {
+
+       trigger: function( event, data, elem, onlyHandlers ) {
+
+               var i, cur, tmp, bubbleType, ontype, handle, special,
+                       eventPath = [ elem || document ],
+                       type = hasOwn.call( event, "type" ) ? event.type : event,
+                       namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : [];
+
+               cur = tmp = elem = elem || document;
+
+               // Don't do events on text and comment nodes
+               if ( elem.nodeType === 3 || elem.nodeType === 8 ) {
+                       return;
+               }
+
+               // focus/blur morphs to focusin/out; ensure we're not firing them right now
+               if ( rfocusMorph.test( type + jQuery.event.triggered ) ) {
+                       return;
+               }
+
+               if ( type.indexOf( "." ) > -1 ) {
+
+                       // Namespaced trigger; create a regexp to match event type in handle()
+                       namespaces = type.split( "." );
+                       type = namespaces.shift();
+                       namespaces.sort();
+               }
+               ontype = type.indexOf( ":" ) < 0 && "on" + type;
+
+               // Caller can pass in a jQuery.Event object, Object, or just an event type string
+               event = event[ jQuery.expando ] ?
+                       event :
+                       new jQuery.Event( type, typeof event === "object" && event );
+
+               // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)
+               event.isTrigger = onlyHandlers ? 2 : 3;
+               event.namespace = namespaces.join( "." );
+               event.rnamespace = event.namespace ?
+                       new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) :
+                       null;
+
+               // Clean up the event in case it is being reused
+               event.result = undefined;
+               if ( !event.target ) {
+                       event.target = elem;
+               }
+
+               // Clone any incoming data and prepend the event, creating the handler arg list
+               data = data == null ?
+                       [ event ] :
+                       jQuery.makeArray( data, [ event ] );
+
+               // Allow special events to draw outside the lines
+               special = jQuery.event.special[ type ] || {};
+               if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {
+                       return;
+               }
+
+               // Determine event propagation path in advance, per W3C events spec (#9951)
+               // Bubble up to document, then to window; watch for a global ownerDocument var (#9724)
+               if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) {
+
+                       bubbleType = special.delegateType || type;
+                       if ( !rfocusMorph.test( bubbleType + type ) ) {
+                               cur = cur.parentNode;
+                       }
+                       for ( ; cur; cur = cur.parentNode ) {
+                               eventPath.push( cur );
+                               tmp = cur;
+                       }
+
+                       // Only add window if we got to document (e.g., not plain obj or detached DOM)
+                       if ( tmp === ( elem.ownerDocument || document ) ) {
+                               eventPath.push( tmp.defaultView || tmp.parentWindow || window );
+                       }
+               }
+
+               // Fire handlers on the event path
+               i = 0;
+               while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {
+
+                       event.type = i > 1 ?
+                               bubbleType :
+                               special.bindType || type;
+
+                       // jQuery handler
+                       handle = ( dataPriv.get( cur, "events" ) || {} )[ event.type ] &&
+                               dataPriv.get( cur, "handle" );
+                       if ( handle ) {
+                               handle.apply( cur, data );
+                       }
+
+                       // Native handler
+                       handle = ontype && cur[ ontype ];
+                       if ( handle && handle.apply && acceptData( cur ) ) {
+                               event.result = handle.apply( cur, data );
+                               if ( event.result === false ) {
+                                       event.preventDefault();
+                               }
+                       }
+               }
+               event.type = type;
+
+               // If nobody prevented the default action, do it now
+               if ( !onlyHandlers && !event.isDefaultPrevented() ) {
+
+                       if ( ( !special._default ||
+                               special._default.apply( eventPath.pop(), data ) === false ) &&
+                               acceptData( elem ) ) {
+
+                               // Call a native DOM method on the target with the same name as the event.
+                               // Don't do default actions on window, that's where global variables be (#6170)
+                               if ( ontype && jQuery.isFunction( elem[ type ] ) && !jQuery.isWindow( elem ) ) {
+
+                                       // Don't re-trigger an onFOO event when we call its FOO() method
+                                       tmp = elem[ ontype ];
+
+                                       if ( tmp ) {
+                                               elem[ ontype ] = null;
+                                       }
+
+                                       // Prevent re-triggering of the same event, since we already bubbled it above
+                                       jQuery.event.triggered = type;
+                                       elem[ type ]();
+                                       jQuery.event.triggered = undefined;
+
+                                       if ( tmp ) {
+                                               elem[ ontype ] = tmp;
+                                       }
+                               }
+                       }
+               }
+
+               return event.result;
+       },
+
+       // Piggyback on a donor event to simulate a different one
+       // Used only for `focus(in | out)` events
+       simulate: function( type, elem, event ) {
+               var e = jQuery.extend(
+                       new jQuery.Event(),
+                       event,
+                       {
+                               type: type,
+                               isSimulated: true
+                       }
+               );
+
+               jQuery.event.trigger( e, null, elem );
+       }
+
+} );
+
+jQuery.fn.extend( {
+
+       trigger: function( type, data ) {
+               return this.each( function() {
+                       jQuery.event.trigger( type, data, this );
+               } );
+       },
+       triggerHandler: function( type, data ) {
+               var elem = this[ 0 ];
+               if ( elem ) {
+                       return jQuery.event.trigger( type, data, elem, true );
+               }
+       }
+} );
+
+return jQuery;
+} );
diff --git a/js/jquery/src/exports/amd.js b/js/jquery/src/exports/amd.js
new file mode 100644 (file)
index 0000000..cbb1ef5
--- /dev/null
@@ -0,0 +1,26 @@
+define( [
+       "../core"
+], function( jQuery ) {
+
+"use strict";
+
+// Register as a named AMD module, since jQuery can be concatenated with other
+// files that may use define, but not via a proper concatenation script that
+// understands anonymous AMD modules. A named AMD is safest and most robust
+// way to register. Lowercase jquery is used because AMD module names are
+// derived from file names, and jQuery is normally delivered in a lowercase
+// file name. Do this after creating the global so that if an AMD module wants
+// to call noConflict to hide this version of jQuery, it will work.
+
+// Note that for maximum portability, libraries that are not jQuery should
+// declare themselves as anonymous modules, and avoid setting a global if an
+// AMD loader is present. jQuery is a special case. For more information, see
+// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon
+
+if ( typeof define === "function" && define.amd ) {
+       define( "jquery", [], function() {
+               return jQuery;
+       } );
+}
+
+} );
diff --git a/js/jquery/src/exports/global.js b/js/jquery/src/exports/global.js
new file mode 100644 (file)
index 0000000..460b56e
--- /dev/null
@@ -0,0 +1,34 @@
+define( [
+       "../core"
+], function( jQuery, noGlobal ) {
+
+"use strict";
+
+var
+
+       // Map over jQuery in case of overwrite
+       _jQuery = window.jQuery,
+
+       // Map over the $ in case of overwrite
+       _$ = window.$;
+
+jQuery.noConflict = function( deep ) {
+       if ( window.$ === jQuery ) {
+               window.$ = _$;
+       }
+
+       if ( deep && window.jQuery === jQuery ) {
+               window.jQuery = _jQuery;
+       }
+
+       return jQuery;
+};
+
+// Expose jQuery and $ identifiers, even in AMD
+// (#7102#comment:10, https://github.com/jquery/jquery/pull/557)
+// and CommonJS for browser emulators (#13566)
+if ( !noGlobal ) {
+       window.jQuery = window.$ = jQuery;
+}
+
+} );
diff --git a/js/jquery/src/jquery.js b/js/jquery/src/jquery.js
new file mode 100644 (file)
index 0000000..52fc87d
--- /dev/null
@@ -0,0 +1,41 @@
+define( [
+       "./core",
+       "./selector",
+       "./traversing",
+       "./callbacks",
+       "./deferred",
+       "./deferred/exceptionHook",
+       "./core/ready",
+       "./data",
+       "./queue",
+       "./queue/delay",
+       "./attributes",
+       "./event",
+       "./event/alias",
+       "./event/focusin",
+       "./manipulation",
+       "./manipulation/_evalUrl",
+       "./wrap",
+       "./css",
+       "./css/hiddenVisibleSelectors",
+       "./serialize",
+       "./ajax",
+       "./ajax/xhr",
+       "./ajax/script",
+       "./ajax/jsonp",
+       "./ajax/load",
+       "./event/ajax",
+       "./effects",
+       "./effects/animatedSelector",
+       "./offset",
+       "./dimensions",
+       "./deprecated",
+       "./exports/amd",
+       "./exports/global"
+], function( jQuery ) {
+
+"use strict";
+
+return jQuery;
+
+} );
diff --git a/js/jquery/src/manipulation.js b/js/jquery/src/manipulation.js
new file mode 100644 (file)
index 0000000..cd225a6
--- /dev/null
@@ -0,0 +1,488 @@
+define( [
+       "./core",
+       "./var/concat",
+       "./var/push",
+       "./core/access",
+       "./manipulation/var/rcheckableType",
+       "./manipulation/var/rtagName",
+       "./manipulation/var/rscriptType",
+       "./manipulation/wrapMap",
+       "./manipulation/getAll",
+       "./manipulation/setGlobalEval",
+       "./manipulation/buildFragment",
+       "./manipulation/support",
+
+       "./data/var/dataPriv",
+       "./data/var/dataUser",
+       "./data/var/acceptData",
+       "./core/DOMEval",
+       "./core/nodeName",
+
+       "./core/init",
+       "./traversing",
+       "./selector",
+       "./event"
+], function( jQuery, concat, push, access,
+       rcheckableType, rtagName, rscriptType,
+       wrapMap, getAll, setGlobalEval, buildFragment, support,
+       dataPriv, dataUser, acceptData, DOMEval, nodeName ) {
+
+"use strict";
+
+var
+
+       /* eslint-disable max-len */
+
+       // See https://github.com/eslint/eslint/issues/3229
+       rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,
+
+       /* eslint-enable */
+
+       // Support: IE <=10 - 11, Edge 12 - 13
+       // In IE/Edge using regex groups here causes severe slowdowns.
+       // See https://connect.microsoft.com/IE/feedback/details/1736512/
+       rnoInnerhtml = /<script|<style|<link/i,
+
+       // checked="checked" or checked
+       rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i,
+       rscriptTypeMasked = /^true\/(.*)/,
+       rcleanScript = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;
+
+// Prefer a tbody over its parent table for containing new rows
+function manipulationTarget( elem, content ) {
+       if ( nodeName( elem, "table" ) &&
+               nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ) {
+
+               return jQuery( ">tbody", elem )[ 0 ] || elem;
+       }
+
+       return elem;
+}
+
+// Replace/restore the type attribute of script elements for safe DOM manipulation
+function disableScript( elem ) {
+       elem.type = ( elem.getAttribute( "type" ) !== null ) + "/" + elem.type;
+       return elem;
+}
+function restoreScript( elem ) {
+       var match = rscriptTypeMasked.exec( elem.type );
+
+       if ( match ) {
+               elem.type = match[ 1 ];
+       } else {
+               elem.removeAttribute( "type" );
+       }
+
+       return elem;
+}
+
+function cloneCopyEvent( src, dest ) {
+       var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events;
+
+       if ( dest.nodeType !== 1 ) {
+               return;
+       }
+
+       // 1. Copy private data: events, handlers, etc.
+       if ( dataPriv.hasData( src ) ) {
+               pdataOld = dataPriv.access( src );
+               pdataCur = dataPriv.set( dest, pdataOld );
+               events = pdataOld.events;
+
+               if ( events ) {
+                       delete pdataCur.handle;
+                       pdataCur.events = {};
+
+                       for ( type in events ) {
+                               for ( i = 0, l = events[ type ].length; i < l; i++ ) {
+                                       jQuery.event.add( dest, type, events[ type ][ i ] );
+                               }
+                       }
+               }
+       }
+
+       // 2. Copy user data
+       if ( dataUser.hasData( src ) ) {
+               udataOld = dataUser.access( src );
+               udataCur = jQuery.extend( {}, udataOld );
+
+               dataUser.set( dest, udataCur );
+       }
+}
+
+// Fix IE bugs, see support tests
+function fixInput( src, dest ) {
+       var nodeName = dest.nodeName.toLowerCase();
+
+       // Fails to persist the checked state of a cloned checkbox or radio button.
+       if ( nodeName === "input" && rcheckableType.test( src.type ) ) {
+               dest.checked = src.checked;
+
+       // Fails to return the selected option to the default selected state when cloning options
+       } else if ( nodeName === "input" || nodeName === "textarea" ) {
+               dest.defaultValue = src.defaultValue;
+       }
+}
+
+function domManip( collection, args, callback, ignored ) {
+
+       // Flatten any nested arrays
+       args = concat.apply( [], args );
+
+       var fragment, first, scripts, hasScripts, node, doc,
+               i = 0,
+               l = collection.length,
+               iNoClone = l - 1,
+               value = args[ 0 ],
+               isFunction = jQuery.isFunction( value );
+
+       // We can't cloneNode fragments that contain checked, in WebKit
+       if ( isFunction ||
+                       ( l > 1 && typeof value === "string" &&
+                               !support.checkClone && rchecked.test( value ) ) ) {
+               return collection.each( function( index ) {
+                       var self = collection.eq( index );
+                       if ( isFunction ) {
+                               args[ 0 ] = value.call( this, index, self.html() );
+                       }
+                       domManip( self, args, callback, ignored );
+               } );
+       }
+
+       if ( l ) {
+               fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );
+               first = fragment.firstChild;
+
+               if ( fragment.childNodes.length === 1 ) {
+                       fragment = first;
+               }
+
+               // Require either new content or an interest in ignored elements to invoke the callback
+               if ( first || ignored ) {
+                       scripts = jQuery.map( getAll( fragment, "script" ), disableScript );
+                       hasScripts = scripts.length;
+
+                       // Use the original fragment for the last item
+                       // instead of the first because it can end up
+                       // being emptied incorrectly in certain situations (#8070).
+                       for ( ; i < l; i++ ) {
+                               node = fragment;
+
+                               if ( i !== iNoClone ) {
+                                       node = jQuery.clone( node, true, true );
+
+                                       // Keep references to cloned scripts for later restoration
+                                       if ( hasScripts ) {
+
+                                               // Support: Android <=4.0 only, PhantomJS 1 only
+                                               // push.apply(_, arraylike) throws on ancient WebKit
+                                               jQuery.merge( scripts, getAll( node, "script" ) );
+                                       }
+                               }
+
+                               callback.call( collection[ i ], node, i );
+                       }
+
+                       if ( hasScripts ) {
+                               doc = scripts[ scripts.length - 1 ].ownerDocument;
+
+                               // Reenable scripts
+                               jQuery.map( scripts, restoreScript );
+
+                               // Evaluate executable scripts on first document insertion
+                               for ( i = 0; i < hasScripts; i++ ) {
+                                       node = scripts[ i ];
+                                       if ( rscriptType.test( node.type || "" ) &&
+                                               !dataPriv.access( node, "globalEval" ) &&
+                                               jQuery.contains( doc, node ) ) {
+
+                                               if ( node.src ) {
+
+                                                       // Optional AJAX dependency, but won't run scripts if not present
+                                                       if ( jQuery._evalUrl ) {
+                                                               jQuery._evalUrl( node.src );
+                                                       }
+                                               } else {
+                                                       DOMEval( node.textContent.replace( rcleanScript, "" ), doc );
+                                               }
+                                       }
+                               }
+                       }
+               }
+       }
+
+       return collection;
+}
+
+function remove( elem, selector, keepData ) {
+       var node,
+               nodes = selector ? jQuery.filter( selector, elem ) : elem,
+               i = 0;
+
+       for ( ; ( node = nodes[ i ] ) != null; i++ ) {
+               if ( !keepData && node.nodeType === 1 ) {
+                       jQuery.cleanData( getAll( node ) );
+               }
+
+               if ( node.parentNode ) {
+                       if ( keepData && jQuery.contains( node.ownerDocument, node ) ) {
+                               setGlobalEval( getAll( node, "script" ) );
+                       }
+                       node.parentNode.removeChild( node );
+               }
+       }
+
+       return elem;
+}
+
+jQuery.extend( {
+       htmlPrefilter: function( html ) {
+               return html.replace( rxhtmlTag, "<$1></$2>" );
+       },
+
+       clone: function( elem, dataAndEvents, deepDataAndEvents ) {
+               var i, l, srcElements, destElements,
+                       clone = elem.cloneNode( true ),
+                       inPage = jQuery.contains( elem.ownerDocument, elem );
+
+               // Fix IE cloning issues
+               if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&
+                               !jQuery.isXMLDoc( elem ) ) {
+
+                       // We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2
+                       destElements = getAll( clone );
+                       srcElements = getAll( elem );
+
+                       for ( i = 0, l = srcElements.length; i < l; i++ ) {
+                               fixInput( srcElements[ i ], destElements[ i ] );
+                       }
+               }
+
+               // Copy the events from the original to the clone
+               if ( dataAndEvents ) {
+                       if ( deepDataAndEvents ) {
+                               srcElements = srcElements || getAll( elem );
+                               destElements = destElements || getAll( clone );
+
+                               for ( i = 0, l = srcElements.length; i < l; i++ ) {
+                                       cloneCopyEvent( srcElements[ i ], destElements[ i ] );
+                               }
+                       } else {
+                               cloneCopyEvent( elem, clone );
+                       }
+               }
+
+               // Preserve script evaluation history
+               destElements = getAll( clone, "script" );
+               if ( destElements.length > 0 ) {
+                       setGlobalEval( destElements, !inPage && getAll( elem, "script" ) );
+               }
+
+               // Return the cloned set
+               return clone;
+       },
+
+       cleanData: function( elems ) {
+               var data, elem, type,
+                       special = jQuery.event.special,
+                       i = 0;
+
+               for ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {
+                       if ( acceptData( elem ) ) {
+                               if ( ( data = elem[ dataPriv.expando ] ) ) {
+                                       if ( data.events ) {
+                                               for ( type in data.events ) {
+                                                       if ( special[ type ] ) {
+                                                               jQuery.event.remove( elem, type );
+
+                                                       // This is a shortcut to avoid jQuery.event.remove's overhead
+                                                       } else {
+                                                               jQuery.removeEvent( elem, type, data.handle );
+                                                       }
+                                               }
+                                       }
+
+                                       // Support: Chrome <=35 - 45+
+                                       // Assign undefined instead of using delete, see Data#remove
+                                       elem[ dataPriv.expando ] = undefined;
+                               }
+                               if ( elem[ dataUser.expando ] ) {
+
+                                       // Support: Chrome <=35 - 45+
+                                       // Assign undefined instead of using delete, see Data#remove
+                                       elem[ dataUser.expando ] = undefined;
+                               }
+                       }
+               }
+       }
+} );
+
+jQuery.fn.extend( {
+       detach: function( selector ) {
+               return remove( this, selector, true );
+       },
+
+       remove: function( selector ) {
+               return remove( this, selector );
+       },
+
+       text: function( value ) {
+               return access( this, function( value ) {
+                       return value === undefined ?
+                               jQuery.text( this ) :
+                               this.empty().each( function() {
+                                       if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
+                                               this.textContent = value;
+                                       }
+                               } );
+               }, null, value, arguments.length );
+       },
+
+       append: function() {
+               return domManip( this, arguments, function( elem ) {
+                       if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
+                               var target = manipulationTarget( this, elem );
+                               target.appendChild( elem );
+                       }
+               } );
+       },
+
+       prepend: function() {
+               return domManip( this, arguments, function( elem ) {
+                       if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
+                               var target = manipulationTarget( this, elem );
+                               target.insertBefore( elem, target.firstChild );
+                       }
+               } );
+       },
+
+       before: function() {
+               return domManip( this, arguments, function( elem ) {
+                       if ( this.parentNode ) {
+                               this.parentNode.insertBefore( elem, this );
+                       }
+               } );
+       },
+
+       after: function() {
+               return domManip( this, arguments, function( elem ) {
+                       if ( this.parentNode ) {
+                               this.parentNode.insertBefore( elem, this.nextSibling );
+                       }
+               } );
+       },
+
+       empty: function() {
+               var elem,
+                       i = 0;
+
+               for ( ; ( elem = this[ i ] ) != null; i++ ) {
+                       if ( elem.nodeType === 1 ) {
+
+                               // Prevent memory leaks
+                               jQuery.cleanData( getAll( elem, false ) );
+
+                               // Remove any remaining nodes
+                               elem.textContent = "";
+                       }
+               }
+
+               return this;
+       },
+
+       clone: function( dataAndEvents, deepDataAndEvents ) {
+               dataAndEvents = dataAndEvents == null ? false : dataAndEvents;
+               deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;
+
+               return this.map( function() {
+                       return jQuery.clone( this, dataAndEvents, deepDataAndEvents );
+               } );
+       },
+
+       html: function( value ) {
+               return access( this, function( value ) {
+                       var elem = this[ 0 ] || {},
+                               i = 0,
+                               l = this.length;
+
+                       if ( value === undefined && elem.nodeType === 1 ) {
+                               return elem.innerHTML;
+                       }
+
+                       // See if we can take a shortcut and just use innerHTML
+                       if ( typeof value === "string" && !rnoInnerhtml.test( value ) &&
+                               !wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) {
+
+                               value = jQuery.htmlPrefilter( value );
+
+                               try {
+                                       for ( ; i < l; i++ ) {
+                                               elem = this[ i ] || {};
+
+                                               // Remove element nodes and prevent memory leaks
+                                               if ( elem.nodeType === 1 ) {
+                                                       jQuery.cleanData( getAll( elem, false ) );
+                                                       elem.innerHTML = value;
+                                               }
+                                       }
+
+                                       elem = 0;
+
+                               // If using innerHTML throws an exception, use the fallback method
+                               } catch ( e ) {}
+                       }
+
+                       if ( elem ) {
+                               this.empty().append( value );
+                       }
+               }, null, value, arguments.length );
+       },
+
+       replaceWith: function() {
+               var ignored = [];
+
+               // Make the changes, replacing each non-ignored context element with the new content
+               return domManip( this, arguments, function( elem ) {
+                       var parent = this.parentNode;
+
+                       if ( jQuery.inArray( this, ignored ) < 0 ) {
+                               jQuery.cleanData( getAll( this ) );
+                               if ( parent ) {
+                                       parent.replaceChild( elem, this );
+                               }
+                       }
+
+               // Force callback invocation
+               }, ignored );
+       }
+} );
+
+jQuery.each( {
+       appendTo: "append",
+       prependTo: "prepend",
+       insertBefore: "before",
+       insertAfter: "after",
+       replaceAll: "replaceWith"
+}, function( name, original ) {
+       jQuery.fn[ name ] = function( selector ) {
+               var elems,
+                       ret = [],
+                       insert = jQuery( selector ),
+                       last = insert.length - 1,
+                       i = 0;
+
+               for ( ; i <= last; i++ ) {
+                       elems = i === last ? this : this.clone( true );
+                       jQuery( insert[ i ] )[ original ]( elems );
+
+                       // Support: Android <=4.0 only, PhantomJS 1 only
+                       // .get() because push.apply(_, arraylike) throws on ancient WebKit
+                       push.apply( ret, elems.get() );
+               }
+
+               return this.pushStack( ret );
+       };
+} );
+
+return jQuery;
+} );
diff --git a/js/jquery/src/manipulation/_evalUrl.js b/js/jquery/src/manipulation/_evalUrl.js
new file mode 100644 (file)
index 0000000..f9ec702
--- /dev/null
@@ -0,0 +1,23 @@
+define( [
+       "../ajax"
+], function( jQuery ) {
+
+"use strict";
+
+jQuery._evalUrl = function( url ) {
+       return jQuery.ajax( {
+               url: url,
+
+               // Make this explicit, since user can override this through ajaxSetup (#11264)
+               type: "GET",
+               dataType: "script",
+               cache: true,
+               async: false,
+               global: false,
+               "throws": true
+       } );
+};
+
+return jQuery._evalUrl;
+
+} );
diff --git a/js/jquery/src/manipulation/buildFragment.js b/js/jquery/src/manipulation/buildFragment.js
new file mode 100644 (file)
index 0000000..bcb5085
--- /dev/null
@@ -0,0 +1,104 @@
+define( [
+       "../core",
+       "./var/rtagName",
+       "./var/rscriptType",
+       "./wrapMap",
+       "./getAll",
+       "./setGlobalEval"
+], function( jQuery, rtagName, rscriptType, wrapMap, getAll, setGlobalEval ) {
+
+"use strict";
+
+var rhtml = /<|&#?\w+;/;
+
+function buildFragment( elems, context, scripts, selection, ignored ) {
+       var elem, tmp, tag, wrap, contains, j,
+               fragment = context.createDocumentFragment(),
+               nodes = [],
+               i = 0,
+               l = elems.length;
+
+       for ( ; i < l; i++ ) {
+               elem = elems[ i ];
+
+               if ( elem || elem === 0 ) {
+
+                       // Add nodes directly
+                       if ( jQuery.type( elem ) === "object" ) {
+
+                               // Support: Android <=4.0 only, PhantomJS 1 only
+                               // push.apply(_, arraylike) throws on ancient WebKit
+                               jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );
+
+                       // Convert non-html into a text node
+                       } else if ( !rhtml.test( elem ) ) {
+                               nodes.push( context.createTextNode( elem ) );
+
+                       // Convert html into DOM nodes
+                       } else {
+                               tmp = tmp || fragment.appendChild( context.createElement( "div" ) );
+
+                               // Deserialize a standard representation
+                               tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase();
+                               wrap = wrapMap[ tag ] || wrapMap._default;
+                               tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];
+
+                               // Descend through wrappers to the right content
+                               j = wrap[ 0 ];
+                               while ( j-- ) {
+                                       tmp = tmp.lastChild;
+                               }
+
+                               // Support: Android <=4.0 only, PhantomJS 1 only
+                               // push.apply(_, arraylike) throws on ancient WebKit
+                               jQuery.merge( nodes, tmp.childNodes );
+
+                               // Remember the top-level container
+                               tmp = fragment.firstChild;
+
+                               // Ensure the created nodes are orphaned (#12392)
+                               tmp.textContent = "";
+                       }
+               }
+       }
+
+       // Remove wrapper from fragment
+       fragment.textContent = "";
+
+       i = 0;
+       while ( ( elem = nodes[ i++ ] ) ) {
+
+               // Skip elements already in the context collection (trac-4087)
+               if ( selection && jQuery.inArray( elem, selection ) > -1 ) {
+                       if ( ignored ) {
+                               ignored.push( elem );
+                       }
+                       continue;
+               }
+
+               contains = jQuery.contains( elem.ownerDocument, elem );
+
+               // Append to fragment
+               tmp = getAll( fragment.appendChild( elem ), "script" );
+
+               // Preserve script evaluation history
+               if ( contains ) {
+                       setGlobalEval( tmp );
+               }
+
+               // Capture executables
+               if ( scripts ) {
+                       j = 0;
+                       while ( ( elem = tmp[ j++ ] ) ) {
+                               if ( rscriptType.test( elem.type || "" ) ) {
+                                       scripts.push( elem );
+                               }
+                       }
+               }
+       }
+
+       return fragment;
+}
+
+return buildFragment;
+} );
diff --git a/js/jquery/src/manipulation/getAll.js b/js/jquery/src/manipulation/getAll.js
new file mode 100644 (file)
index 0000000..fede6c7
--- /dev/null
@@ -0,0 +1,32 @@
+define( [
+       "../core",
+       "../core/nodeName"
+], function( jQuery, nodeName ) {
+
+"use strict";
+
+function getAll( context, tag ) {
+
+       // Support: IE <=9 - 11 only
+       // Use typeof to avoid zero-argument method invocation on host objects (#15151)
+       var ret;
+
+       if ( typeof context.getElementsByTagName !== "undefined" ) {
+               ret = context.getElementsByTagName( tag || "*" );
+
+       } else if ( typeof context.querySelectorAll !== "undefined" ) {
+               ret = context.querySelectorAll( tag || "*" );
+
+       } else {
+               ret = [];
+       }
+
+       if ( tag === undefined || tag && nodeName( context, tag ) ) {
+               return jQuery.merge( [ context ], ret );
+       }
+
+       return ret;
+}
+
+return getAll;
+} );
diff --git a/js/jquery/src/manipulation/setGlobalEval.js b/js/jquery/src/manipulation/setGlobalEval.js
new file mode 100644 (file)
index 0000000..cf95240
--- /dev/null
@@ -0,0 +1,22 @@
+define( [
+       "../data/var/dataPriv"
+], function( dataPriv ) {
+
+"use strict";
+
+// Mark scripts as having already been evaluated
+function setGlobalEval( elems, refElements ) {
+       var i = 0,
+               l = elems.length;
+
+       for ( ; i < l; i++ ) {
+               dataPriv.set(
+                       elems[ i ],
+                       "globalEval",
+                       !refElements || dataPriv.get( refElements[ i ], "globalEval" )
+               );
+       }
+}
+
+return setGlobalEval;
+} );
diff --git a/js/jquery/src/manipulation/support.js b/js/jquery/src/manipulation/support.js
new file mode 100644 (file)
index 0000000..4a5d9af
--- /dev/null
@@ -0,0 +1,35 @@
+define( [
+       "../var/document",
+       "../var/support"
+], function( document, support ) {
+
+"use strict";
+
+( function() {
+       var fragment = document.createDocumentFragment(),
+               div = fragment.appendChild( document.createElement( "div" ) ),
+               input = document.createElement( "input" );
+
+       // Support: Android 4.0 - 4.3 only
+       // Check state lost if the name is set (#11217)
+       // Support: Windows Web Apps (WWA)
+       // `name` and `type` must use .setAttribute for WWA (#14901)
+       input.setAttribute( "type", "radio" );
+       input.setAttribute( "checked", "checked" );
+       input.setAttribute( "name", "t" );
+
+       div.appendChild( input );
+
+       // Support: Android <=4.1 only
+       // Older WebKit doesn't clone checked state correctly in fragments
+       support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;
+
+       // Support: IE <=11 only
+       // Make sure textarea (and checkbox) defaultValue is properly cloned
+       div.innerHTML = "<textarea>x</textarea>";
+       support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;
+} )();
+
+return support;
+
+} );
diff --git a/js/jquery/src/manipulation/var/rcheckableType.js b/js/jquery/src/manipulation/var/rcheckableType.js
new file mode 100644 (file)
index 0000000..25bbcb4
--- /dev/null
@@ -0,0 +1,5 @@
+define( function() {
+       "use strict";
+
+       return ( /^(?:checkbox|radio)$/i );
+} );
diff --git a/js/jquery/src/manipulation/var/rscriptType.js b/js/jquery/src/manipulation/var/rscriptType.js
new file mode 100644 (file)
index 0000000..7237c8a
--- /dev/null
@@ -0,0 +1,5 @@
+define( function() {
+       "use strict";
+
+       return ( /^$|\/(?:java|ecma)script/i );
+} );
diff --git a/js/jquery/src/manipulation/var/rtagName.js b/js/jquery/src/manipulation/var/rtagName.js
new file mode 100644 (file)
index 0000000..d565dd3
--- /dev/null
@@ -0,0 +1,5 @@
+define( function() {
+       "use strict";
+
+       return ( /<([a-z][^\/\0>\x20\t\r\n\f]+)/i );
+} );
diff --git a/js/jquery/src/manipulation/wrapMap.js b/js/jquery/src/manipulation/wrapMap.js
new file mode 100644 (file)
index 0000000..1f446f7
--- /dev/null
@@ -0,0 +1,29 @@
+define( function() {
+
+"use strict";
+
+// We have to close these tags to support XHTML (#13200)
+var wrapMap = {
+
+       // Support: IE <=9 only
+       option: [ 1, "<select multiple='multiple'>", "</select>" ],
+
+       // XHTML parsers do not magically insert elements in the
+       // same way that tag soup parsers do. So we cannot shorten
+       // this by omitting <tbody> or other required elements.
+       thead: [ 1, "<table>", "</table>" ],
+       col: [ 2, "<table><colgroup>", "</colgroup></table>" ],
+       tr: [ 2, "<table><tbody>", "</tbody></table>" ],
+       td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ],
+
+       _default: [ 0, "", "" ]
+};
+
+// Support: IE <=9 only
+wrapMap.optgroup = wrapMap.option;
+
+wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;
+wrapMap.th = wrapMap.td;
+
+return wrapMap;
+} );
diff --git a/js/jquery/src/offset.js b/js/jquery/src/offset.js
new file mode 100644 (file)
index 0000000..c1ab857
--- /dev/null
@@ -0,0 +1,229 @@
+define( [
+       "./core",
+       "./core/access",
+       "./var/document",
+       "./var/documentElement",
+       "./css/var/rnumnonpx",
+       "./css/curCSS",
+       "./css/addGetHookIf",
+       "./css/support",
+       "./core/nodeName",
+
+       "./core/init",
+       "./css",
+       "./selector" // contains
+], function( jQuery, access, document, documentElement, rnumnonpx,
+             curCSS, addGetHookIf, support, nodeName ) {
+
+"use strict";
+
+jQuery.offset = {
+       setOffset: function( elem, options, i ) {
+               var curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition,
+                       position = jQuery.css( elem, "position" ),
+                       curElem = jQuery( elem ),
+                       props = {};
+
+               // Set position first, in-case top/left are set even on static elem
+               if ( position === "static" ) {
+                       elem.style.position = "relative";
+               }
+
+               curOffset = curElem.offset();
+               curCSSTop = jQuery.css( elem, "top" );
+               curCSSLeft = jQuery.css( elem, "left" );
+               calculatePosition = ( position === "absolute" || position === "fixed" ) &&
+                       ( curCSSTop + curCSSLeft ).indexOf( "auto" ) > -1;
+
+               // Need to be able to calculate position if either
+               // top or left is auto and position is either absolute or fixed
+               if ( calculatePosition ) {
+                       curPosition = curElem.position();
+                       curTop = curPosition.top;
+                       curLeft = curPosition.left;
+
+               } else {
+                       curTop = parseFloat( curCSSTop ) || 0;
+                       curLeft = parseFloat( curCSSLeft ) || 0;
+               }
+
+               if ( jQuery.isFunction( options ) ) {
+
+                       // Use jQuery.extend here to allow modification of coordinates argument (gh-1848)
+                       options = options.call( elem, i, jQuery.extend( {}, curOffset ) );
+               }
+
+               if ( options.top != null ) {
+                       props.top = ( options.top - curOffset.top ) + curTop;
+               }
+               if ( options.left != null ) {
+                       props.left = ( options.left - curOffset.left ) + curLeft;
+               }
+
+               if ( "using" in options ) {
+                       options.using.call( elem, props );
+
+               } else {
+                       curElem.css( props );
+               }
+       }
+};
+
+jQuery.fn.extend( {
+       offset: function( options ) {
+
+               // Preserve chaining for setter
+               if ( arguments.length ) {
+                       return options === undefined ?
+                               this :
+                               this.each( function( i ) {
+                                       jQuery.offset.setOffset( this, options, i );
+                               } );
+               }
+
+               var doc, docElem, rect, win,
+                       elem = this[ 0 ];
+
+               if ( !elem ) {
+                       return;
+               }
+
+               // Return zeros for disconnected and hidden (display: none) elements (gh-2310)
+               // Support: IE <=11 only
+               // Running getBoundingClientRect on a
+               // disconnected node in IE throws an error
+               if ( !elem.getClientRects().length ) {
+                       return { top: 0, left: 0 };
+               }
+
+               rect = elem.getBoundingClientRect();
+
+               doc = elem.ownerDocument;
+               docElem = doc.documentElement;
+               win = doc.defaultView;
+
+               return {
+                       top: rect.top + win.pageYOffset - docElem.clientTop,
+                       left: rect.left + win.pageXOffset - docElem.clientLeft
+               };
+       },
+
+       position: function() {
+               if ( !this[ 0 ] ) {
+                       return;
+               }
+
+               var offsetParent, offset,
+                       elem = this[ 0 ],
+                       parentOffset = { top: 0, left: 0 };
+
+               // Fixed elements are offset from window (parentOffset = {top:0, left: 0},
+               // because it is its only offset parent
+               if ( jQuery.css( elem, "position" ) === "fixed" ) {
+
+                       // Assume getBoundingClientRect is there when computed position is fixed
+                       offset = elem.getBoundingClientRect();
+
+               } else {
+
+                       // Get *real* offsetParent
+                       offsetParent = this.offsetParent();
+
+                       // Get correct offsets
+                       offset = this.offset();
+                       if ( !nodeName( offsetParent[ 0 ], "html" ) ) {
+                               parentOffset = offsetParent.offset();
+                       }
+
+                       // Add offsetParent borders
+                       parentOffset = {
+                               top: parentOffset.top + jQuery.css( offsetParent[ 0 ], "borderTopWidth", true ),
+                               left: parentOffset.left + jQuery.css( offsetParent[ 0 ], "borderLeftWidth", true )
+                       };
+               }
+
+               // Subtract parent offsets and element margins
+               return {
+                       top: offset.top - parentOffset.top - jQuery.css( elem, "marginTop", true ),
+                       left: offset.left - parentOffset.left - jQuery.css( elem, "marginLeft", true )
+               };
+       },
+
+       // This method will return documentElement in the following cases:
+       // 1) For the element inside the iframe without offsetParent, this method will return
+       //    documentElement of the parent window
+       // 2) For the hidden or detached element
+       // 3) For body or html element, i.e. in case of the html node - it will return itself
+       //
+       // but those exceptions were never presented as a real life use-cases
+       // and might be considered as more preferable results.
+       //
+       // This logic, however, is not guaranteed and can change at any point in the future
+       offsetParent: function() {
+               return this.map( function() {
+                       var offsetParent = this.offsetParent;
+
+                       while ( offsetParent && jQuery.css( offsetParent, "position" ) === "static" ) {
+                               offsetParent = offsetParent.offsetParent;
+                       }
+
+                       return offsetParent || documentElement;
+               } );
+       }
+} );
+
+// Create scrollLeft and scrollTop methods
+jQuery.each( { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function( method, prop ) {
+       var top = "pageYOffset" === prop;
+
+       jQuery.fn[ method ] = function( val ) {
+               return access( this, function( elem, method, val ) {
+
+                       // Coalesce documents and windows
+                       var win;
+                       if ( jQuery.isWindow( elem ) ) {
+                               win = elem;
+                       } else if ( elem.nodeType === 9 ) {
+                               win = elem.defaultView;
+                       }
+
+                       if ( val === undefined ) {
+                               return win ? win[ prop ] : elem[ method ];
+                       }
+
+                       if ( win ) {
+                               win.scrollTo(
+                                       !top ? val : win.pageXOffset,
+                                       top ? val : win.pageYOffset
+                               );
+
+                       } else {
+                               elem[ method ] = val;
+                       }
+               }, method, val, arguments.length );
+       };
+} );
+
+// Support: Safari <=7 - 9.1, Chrome <=37 - 49
+// Add the top/left cssHooks using jQuery.fn.position
+// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084
+// Blink bug: https://bugs.chromium.org/p/chromium/issues/detail?id=589347
+// getComputedStyle returns percent when specified for top/left/bottom/right;
+// rather than make the css module depend on the offset module, just check for it here
+jQuery.each( [ "top", "left" ], function( i, prop ) {
+       jQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,
+               function( elem, computed ) {
+                       if ( computed ) {
+                               computed = curCSS( elem, prop );
+
+                               // If curCSS returns percentage, fallback to offset
+                               return rnumnonpx.test( computed ) ?
+                                       jQuery( elem ).position()[ prop ] + "px" :
+                                       computed;
+                       }
+               }
+       );
+} );
+
+return jQuery;
+} );
diff --git a/js/jquery/src/queue.js b/js/jquery/src/queue.js
new file mode 100644 (file)
index 0000000..fbbbeab
--- /dev/null
@@ -0,0 +1,145 @@
+define( [
+       "./core",
+       "./data/var/dataPriv",
+       "./deferred",
+       "./callbacks"
+], function( jQuery, dataPriv ) {
+
+"use strict";
+
+jQuery.extend( {
+       queue: function( elem, type, data ) {
+               var queue;
+
+               if ( elem ) {
+                       type = ( type || "fx" ) + "queue";
+                       queue = dataPriv.get( elem, type );
+
+                       // Speed up dequeue by getting out quickly if this is just a lookup
+                       if ( data ) {
+                               if ( !queue || Array.isArray( data ) ) {
+                                       queue = dataPriv.access( elem, type, jQuery.makeArray( data ) );
+                               } else {
+                                       queue.push( data );
+                               }
+                       }
+                       return queue || [];
+               }
+       },
+
+       dequeue: function( elem, type ) {
+               type = type || "fx";
+
+               var queue = jQuery.queue( elem, type ),
+                       startLength = queue.length,
+                       fn = queue.shift(),
+                       hooks = jQuery._queueHooks( elem, type ),
+                       next = function() {
+                               jQuery.dequeue( elem, type );
+                       };
+
+               // If the fx queue is dequeued, always remove the progress sentinel
+               if ( fn === "inprogress" ) {
+                       fn = queue.shift();
+                       startLength--;
+               }
+
+               if ( fn ) {
+
+                       // Add a progress sentinel to prevent the fx queue from being
+                       // automatically dequeued
+                       if ( type === "fx" ) {
+                               queue.unshift( "inprogress" );
+                       }
+
+                       // Clear up the last queue stop function
+                       delete hooks.stop;
+                       fn.call( elem, next, hooks );
+               }
+
+               if ( !startLength && hooks ) {
+                       hooks.empty.fire();
+               }
+       },
+
+       // Not public - generate a queueHooks object, or return the current one
+       _queueHooks: function( elem, type ) {
+               var key = type + "queueHooks";
+               return dataPriv.get( elem, key ) || dataPriv.access( elem, key, {
+                       empty: jQuery.Callbacks( "once memory" ).add( function() {
+                               dataPriv.remove( elem, [ type + "queue", key ] );
+                       } )
+               } );
+       }
+} );
+
+jQuery.fn.extend( {
+       queue: function( type, data ) {
+               var setter = 2;
+
+               if ( typeof type !== "string" ) {
+                       data = type;
+                       type = "fx";
+                       setter--;
+               }
+
+               if ( arguments.length < setter ) {
+                       return jQuery.queue( this[ 0 ], type );
+               }
+
+               return data === undefined ?
+                       this :
+                       this.each( function() {
+                               var queue = jQuery.queue( this, type, data );
+
+                               // Ensure a hooks for this queue
+                               jQuery._queueHooks( this, type );
+
+                               if ( type === "fx" && queue[ 0 ] !== "inprogress" ) {
+                                       jQuery.dequeue( this, type );
+                               }
+                       } );
+       },
+       dequeue: function( type ) {
+               return this.each( function() {
+                       jQuery.dequeue( this, type );
+               } );
+       },
+       clearQueue: function( type ) {
+               return this.queue( type || "fx", [] );
+       },
+
+       // Get a promise resolved when queues of a certain type
+       // are emptied (fx is the type by default)
+       promise: function( type, obj ) {
+               var tmp,
+                       count = 1,
+                       defer = jQuery.Deferred(),
+                       elements = this,
+                       i = this.length,
+                       resolve = function() {
+                               if ( !( --count ) ) {
+                                       defer.resolveWith( elements, [ elements ] );
+                               }
+                       };
+
+               if ( typeof type !== "string" ) {
+                       obj = type;
+                       type = undefined;
+               }
+               type = type || "fx";
+
+               while ( i-- ) {
+                       tmp = dataPriv.get( elements[ i ], type + "queueHooks" );
+                       if ( tmp && tmp.empty ) {
+                               count++;
+                               tmp.empty.add( resolve );
+                       }
+               }
+               resolve();
+               return defer.promise( obj );
+       }
+} );
+
+return jQuery;
+} );
diff --git a/js/jquery/src/queue/delay.js b/js/jquery/src/queue/delay.js
new file mode 100644 (file)
index 0000000..d471eed
--- /dev/null
@@ -0,0 +1,24 @@
+define( [
+       "../core",
+       "../queue",
+       "../effects" // Delay is optional because of this dependency
+], function( jQuery ) {
+
+"use strict";
+
+// Based off of the plugin by Clint Helfers, with permission.
+// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/
+jQuery.fn.delay = function( time, type ) {
+       time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;
+       type = type || "fx";
+
+       return this.queue( type, function( next, hooks ) {
+               var timeout = window.setTimeout( next, time );
+               hooks.stop = function() {
+                       window.clearTimeout( timeout );
+               };
+       } );
+};
+
+return jQuery.fn.delay;
+} );
diff --git a/js/jquery/src/selector-native.js b/js/jquery/src/selector-native.js
new file mode 100644 (file)
index 0000000..da837a0
--- /dev/null
@@ -0,0 +1,237 @@
+define( [
+       "./core",
+       "./var/document",
+       "./var/documentElement",
+       "./var/hasOwn",
+       "./var/indexOf"
+], function( jQuery, document, documentElement, hasOwn, indexOf ) {
+
+"use strict";
+
+/*
+ * Optional (non-Sizzle) selector module for custom builds.
+ *
+ * Note that this DOES NOT SUPPORT many documented jQuery
+ * features in exchange for its smaller size:
+ *
+ * Attribute not equal selector
+ * Positional selectors (:first; :eq(n); :odd; etc.)
+ * Type selectors (:input; :checkbox; :button; etc.)
+ * State-based selectors (:animated; :visible; :hidden; etc.)
+ * :has(selector)
+ * :not(complex selector)
+ * custom selectors via Sizzle extensions
+ * Leading combinators (e.g., $collection.find("> *"))
+ * Reliable functionality on XML fragments
+ * Requiring all parts of a selector to match elements under context
+ *   (e.g., $div.find("div > *") now matches children of $div)
+ * Matching against non-elements
+ * Reliable sorting of disconnected nodes
+ * querySelectorAll bug fixes (e.g., unreliable :focus on WebKit)
+ *
+ * If any of these are unacceptable tradeoffs, either use Sizzle or
+ * customize this stub for the project's specific needs.
+ */
+
+var hasDuplicate, sortInput,
+       sortStable = jQuery.expando.split( "" ).sort( sortOrder ).join( "" ) === jQuery.expando,
+       matches = documentElement.matches ||
+               documentElement.webkitMatchesSelector ||
+               documentElement.mozMatchesSelector ||
+               documentElement.oMatchesSelector ||
+               documentElement.msMatchesSelector,
+
+       // CSS string/identifier serialization
+       // https://drafts.csswg.org/cssom/#common-serializing-idioms
+       rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g,
+       fcssescape = function( ch, asCodePoint ) {
+               if ( asCodePoint ) {
+
+                       // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER
+                       if ( ch === "\0" ) {
+                               return "\uFFFD";
+                       }
+
+                       // Control characters and (dependent upon position) numbers get escaped as code points
+                       return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " ";
+               }
+
+               // Other potentially-special ASCII characters get backslash-escaped
+               return "\\" + ch;
+       };
+
+function sortOrder( a, b ) {
+
+       // Flag for duplicate removal
+       if ( a === b ) {
+               hasDuplicate = true;
+               return 0;
+       }
+
+       // Sort on method existence if only one input has compareDocumentPosition
+       var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;
+       if ( compare ) {
+               return compare;
+       }
+
+       // Calculate position if both inputs belong to the same document
+       compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?
+               a.compareDocumentPosition( b ) :
+
+               // Otherwise we know they are disconnected
+               1;
+
+       // Disconnected nodes
+       if ( compare & 1 ) {
+
+               // Choose the first element that is related to our preferred document
+               if ( a === document || a.ownerDocument === document &&
+                       jQuery.contains( document, a ) ) {
+                       return -1;
+               }
+               if ( b === document || b.ownerDocument === document &&
+                       jQuery.contains( document, b ) ) {
+                       return 1;
+               }
+
+               // Maintain original order
+               return sortInput ?
+                       ( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) :
+                       0;
+       }
+
+       return compare & 4 ? -1 : 1;
+}
+
+function uniqueSort( results ) {
+       var elem,
+               duplicates = [],
+               j = 0,
+               i = 0;
+
+       hasDuplicate = false;
+       sortInput = !sortStable && results.slice( 0 );
+       results.sort( sortOrder );
+
+       if ( hasDuplicate ) {
+               while ( ( elem = results[ i++ ] ) ) {
+                       if ( elem === results[ i ] ) {
+                               j = duplicates.push( i );
+                       }
+               }
+               while ( j-- ) {
+                       results.splice( duplicates[ j ], 1 );
+               }
+       }
+
+       // Clear input after sorting to release objects
+       // See https://github.com/jquery/sizzle/pull/225
+       sortInput = null;
+
+       return results;
+}
+
+function escape( sel ) {
+       return ( sel + "" ).replace( rcssescape, fcssescape );
+}
+
+jQuery.extend( {
+       uniqueSort: uniqueSort,
+       unique: uniqueSort,
+       escapeSelector: escape,
+       find: function( selector, context, results, seed ) {
+               var elem, nodeType,
+                       i = 0;
+
+               results = results || [];
+               context = context || document;
+
+               // Same basic safeguard as Sizzle
+               if ( !selector || typeof selector !== "string" ) {
+                       return results;
+               }
+
+               // Early return if context is not an element or document
+               if ( ( nodeType = context.nodeType ) !== 1 && nodeType !== 9 ) {
+                       return [];
+               }
+
+               if ( seed ) {
+                       while ( ( elem = seed[ i++ ] ) ) {
+                               if ( jQuery.find.matchesSelector( elem, selector ) ) {
+                                       results.push( elem );
+                               }
+                       }
+               } else {
+                       jQuery.merge( results, context.querySelectorAll( selector ) );
+               }
+
+               return results;
+       },
+       text: function( elem ) {
+               var node,
+                       ret = "",
+                       i = 0,
+                       nodeType = elem.nodeType;
+
+               if ( !nodeType ) {
+
+                       // If no nodeType, this is expected to be an array
+                       while ( ( node = elem[ i++ ] ) ) {
+
+                               // Do not traverse comment nodes
+                               ret += jQuery.text( node );
+                       }
+               } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {
+
+                       // Use textContent for elements
+                       return elem.textContent;
+               } else if ( nodeType === 3 || nodeType === 4 ) {
+                       return elem.nodeValue;
+               }
+
+               // Do not include comment or processing instruction nodes
+
+               return ret;
+       },
+       contains: function( a, b ) {
+               var adown = a.nodeType === 9 ? a.documentElement : a,
+                       bup = b && b.parentNode;
+               return a === bup || !!( bup && bup.nodeType === 1 && adown.contains( bup ) );
+       },
+       isXMLDoc: function( elem ) {
+
+               // documentElement is verified for cases where it doesn't yet exist
+               // (such as loading iframes in IE - #4833)
+               var documentElement = elem && ( elem.ownerDocument || elem ).documentElement;
+               return documentElement ? documentElement.nodeName !== "HTML" : false;
+       },
+       expr: {
+               attrHandle: {},
+               match: {
+                       bool: new RegExp( "^(?:checked|selected|async|autofocus|autoplay|controls|defer" +
+                               "|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped)$", "i" ),
+                       needsContext: /^[\x20\t\r\n\f]*[>+~]/
+               }
+       }
+} );
+
+jQuery.extend( jQuery.find, {
+       matches: function( expr, elements ) {
+               return jQuery.find( expr, null, null, elements );
+       },
+       matchesSelector: function( elem, expr ) {
+               return matches.call( elem, expr );
+       },
+       attr: function( elem, name ) {
+               var fn = jQuery.expr.attrHandle[ name.toLowerCase() ],
+
+                       // Don't get fooled by Object.prototype properties (jQuery #13807)
+                       value = fn && hasOwn.call( jQuery.expr.attrHandle, name.toLowerCase() ) ?
+                               fn( elem, name, jQuery.isXMLDoc( elem ) ) :
+                               undefined;
+               return value !== undefined ? value : elem.getAttribute( name );
+       }
+} );
+
+} );
diff --git a/js/jquery/src/selector-sizzle.js b/js/jquery/src/selector-sizzle.js
new file mode 100644 (file)
index 0000000..ff7bc70
--- /dev/null
@@ -0,0 +1,19 @@
+define( [
+       "./core",
+       "../external/sizzle/dist/sizzle"
+], function( jQuery, Sizzle ) {
+
+"use strict";
+
+jQuery.find = Sizzle;
+jQuery.expr = Sizzle.selectors;
+
+// Deprecated
+jQuery.expr[ ":" ] = jQuery.expr.pseudos;
+jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;
+jQuery.text = Sizzle.getText;
+jQuery.isXMLDoc = Sizzle.isXML;
+jQuery.contains = Sizzle.contains;
+jQuery.escapeSelector = Sizzle.escape;
+
+} );
diff --git a/js/jquery/src/selector.js b/js/jquery/src/selector.js
new file mode 100644 (file)
index 0000000..2e0c17e
--- /dev/null
@@ -0,0 +1,3 @@
+define( [ "./selector-sizzle" ], function() {
+       "use strict";
+} );
diff --git a/js/jquery/src/serialize.js b/js/jquery/src/serialize.js
new file mode 100644 (file)
index 0000000..2e28ce1
--- /dev/null
@@ -0,0 +1,130 @@
+define( [
+       "./core",
+       "./manipulation/var/rcheckableType",
+       "./core/init",
+       "./traversing", // filter
+       "./attributes/prop"
+], function( jQuery, rcheckableType ) {
+
+"use strict";
+
+var
+       rbracket = /\[\]$/,
+       rCRLF = /\r?\n/g,
+       rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,
+       rsubmittable = /^(?:input|select|textarea|keygen)/i;
+
+function buildParams( prefix, obj, traditional, add ) {
+       var name;
+
+       if ( Array.isArray( obj ) ) {
+
+               // Serialize array item.
+               jQuery.each( obj, function( i, v ) {
+                       if ( traditional || rbracket.test( prefix ) ) {
+
+                               // Treat each array item as a scalar.
+                               add( prefix, v );
+
+                       } else {
+
+                               // Item is non-scalar (array or object), encode its numeric index.
+                               buildParams(
+                                       prefix + "[" + ( typeof v === "object" && v != null ? i : "" ) + "]",
+                                       v,
+                                       traditional,
+                                       add
+                               );
+                       }
+               } );
+
+       } else if ( !traditional && jQuery.type( obj ) === "object" ) {
+
+               // Serialize object item.
+               for ( name in obj ) {
+                       buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add );
+               }
+
+       } else {
+
+               // Serialize scalar item.
+               add( prefix, obj );
+       }
+}
+
+// Serialize an array of form elements or a set of
+// key/values into a query string
+jQuery.param = function( a, traditional ) {
+       var prefix,
+               s = [],
+               add = function( key, valueOrFunction ) {
+
+                       // If value is a function, invoke it and use its return value
+                       var value = jQuery.isFunction( valueOrFunction ) ?
+                               valueOrFunction() :
+                               valueOrFunction;
+
+                       s[ s.length ] = encodeURIComponent( key ) + "=" +
+                               encodeURIComponent( value == null ? "" : value );
+               };
+
+       // If an array was passed in, assume that it is an array of form elements.
+       if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {
+
+               // Serialize the form elements
+               jQuery.each( a, function() {
+                       add( this.name, this.value );
+               } );
+
+       } else {
+
+               // If traditional, encode the "old" way (the way 1.3.2 or older
+               // did it), otherwise encode params recursively.
+               for ( prefix in a ) {
+                       buildParams( prefix, a[ prefix ], traditional, add );
+               }
+       }
+
+       // Return the resulting serialization
+       return s.join( "&" );
+};
+
+jQuery.fn.extend( {
+       serialize: function() {
+               return jQuery.param( this.serializeArray() );
+       },
+       serializeArray: function() {
+               return this.map( function() {
+
+                       // Can add propHook for "elements" to filter or add form elements
+                       var elements = jQuery.prop( this, "elements" );
+                       return elements ? jQuery.makeArray( elements ) : this;
+               } )
+               .filter( function() {
+                       var type = this.type;
+
+                       // Use .is( ":disabled" ) so that fieldset[disabled] works
+                       return this.name && !jQuery( this ).is( ":disabled" ) &&
+                               rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&
+                               ( this.checked || !rcheckableType.test( type ) );
+               } )
+               .map( function( i, elem ) {
+                       var val = jQuery( this ).val();
+
+                       if ( val == null ) {
+                               return null;
+                       }
+
+                       if ( Array.isArray( val ) ) {
+                               return jQuery.map( val, function( val ) {
+                                       return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
+                               } );
+                       }
+
+                       return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
+               } ).get();
+       }
+} );
+
+return jQuery;
+} );
diff --git a/js/jquery/src/traversing.js b/js/jquery/src/traversing.js
new file mode 100644 (file)
index 0000000..64c7252
--- /dev/null
@@ -0,0 +1,191 @@
+define( [
+       "./core",
+       "./var/indexOf",
+       "./traversing/var/dir",
+       "./traversing/var/siblings",
+       "./traversing/var/rneedsContext",
+       "./core/nodeName",
+
+       "./core/init",
+       "./traversing/findFilter",
+       "./selector"
+], function( jQuery, indexOf, dir, siblings, rneedsContext, nodeName ) {
+
+"use strict";
+
+var rparentsprev = /^(?:parents|prev(?:Until|All))/,
+
+       // Methods guaranteed to produce a unique set when starting from a unique set
+       guaranteedUnique = {
+               children: true,
+               contents: true,
+               next: true,
+               prev: true
+       };
+
+jQuery.fn.extend( {
+       has: function( target ) {
+               var targets = jQuery( target, this ),
+                       l = targets.length;
+
+               return this.filter( function() {
+                       var i = 0;
+                       for ( ; i < l; i++ ) {
+                               if ( jQuery.contains( this, targets[ i ] ) ) {
+                                       return true;
+                               }
+                       }
+               } );
+       },
+
+       closest: function( selectors, context ) {
+               var cur,
+                       i = 0,
+                       l = this.length,
+                       matched = [],
+                       targets = typeof selectors !== "string" && jQuery( selectors );
+
+               // Positional selectors never match, since there's no _selection_ context
+               if ( !rneedsContext.test( selectors ) ) {
+                       for ( ; i < l; i++ ) {
+                               for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {
+
+                                       // Always skip document fragments
+                                       if ( cur.nodeType < 11 && ( targets ?
+                                               targets.index( cur ) > -1 :
+
+                                               // Don't pass non-elements to Sizzle
+                                               cur.nodeType === 1 &&
+                                                       jQuery.find.matchesSelector( cur, selectors ) ) ) {
+
+                                               matched.push( cur );
+                                               break;
+                                       }
+                               }
+                       }
+               }
+
+               return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );
+       },
+
+       // Determine the position of an element within the set
+       index: function( elem ) {
+
+               // No argument, return index in parent
+               if ( !elem ) {
+                       return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;
+               }
+
+               // Index in selector
+               if ( typeof elem === "string" ) {
+                       return indexOf.call( jQuery( elem ), this[ 0 ] );
+               }
+
+               // Locate the position of the desired element
+               return indexOf.call( this,
+
+                       // If it receives a jQuery object, the first element is used
+                       elem.jquery ? elem[ 0 ] : elem
+               );
+       },
+
+       add: function( selector, context ) {
+               return this.pushStack(
+                       jQuery.uniqueSort(
+                               jQuery.merge( this.get(), jQuery( selector, context ) )
+                       )
+               );
+       },
+
+       addBack: function( selector ) {
+               return this.add( selector == null ?
+                       this.prevObject : this.prevObject.filter( selector )
+               );
+       }
+} );
+
+function sibling( cur, dir ) {
+       while ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}
+       return cur;
+}
+
+jQuery.each( {
+       parent: function( elem ) {
+               var parent = elem.parentNode;
+               return parent && parent.nodeType !== 11 ? parent : null;
+       },
+       parents: function( elem ) {
+               return dir( elem, "parentNode" );
+       },
+       parentsUntil: function( elem, i, until ) {
+               return dir( elem, "parentNode", until );
+       },
+       next: function( elem ) {
+               return sibling( elem, "nextSibling" );
+       },
+       prev: function( elem ) {
+               return sibling( elem, "previousSibling" );
+       },
+       nextAll: function( elem ) {
+               return dir( elem, "nextSibling" );
+       },
+       prevAll: function( elem ) {
+               return dir( elem, "previousSibling" );
+       },
+       nextUntil: function( elem, i, until ) {
+               return dir( elem, "nextSibling", until );
+       },
+       prevUntil: function( elem, i, until ) {
+               return dir( elem, "previousSibling", until );
+       },
+       siblings: function( elem ) {
+               return siblings( ( elem.parentNode || {} ).firstChild, elem );
+       },
+       children: function( elem ) {
+               return siblings( elem.firstChild );
+       },
+       contents: function( elem ) {
+        if ( nodeName( elem, "iframe" ) ) {
+            return elem.contentDocument;
+        }
+
+        // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only
+        // Treat the template element as a regular one in browsers that
+        // don't support it.
+        if ( nodeName( elem, "template" ) ) {
+            elem = elem.content || elem;
+        }
+
+        return jQuery.merge( [], elem.childNodes );
+       }
+}, function( name, fn ) {
+       jQuery.fn[ name ] = function( until, selector ) {
+               var matched = jQuery.map( this, fn, until );
+
+               if ( name.slice( -5 ) !== "Until" ) {
+                       selector = until;
+               }
+
+               if ( selector && typeof selector === "string" ) {
+                       matched = jQuery.filter( selector, matched );
+               }
+
+               if ( this.length > 1 ) {
+
+                       // Remove duplicates
+                       if ( !guaranteedUnique[ name ] ) {
+                               jQuery.uniqueSort( matched );
+                       }
+
+                       // Reverse order for parents* and prev-derivatives
+                       if ( rparentsprev.test( name ) ) {
+                               matched.reverse();
+                       }
+               }
+
+               return this.pushStack( matched );
+       };
+} );
+
+return jQuery;
+} );
diff --git a/js/jquery/src/traversing/findFilter.js b/js/jquery/src/traversing/findFilter.js
new file mode 100644 (file)
index 0000000..3bd036a
--- /dev/null
@@ -0,0 +1,106 @@
+define( [
+       "../core",
+       "../var/indexOf",
+       "./var/rneedsContext",
+       "../selector"
+], function( jQuery, indexOf, rneedsContext ) {
+
+"use strict";
+
+var risSimple = /^.[^:#\[\.,]*$/;
+
+// Implement the identical functionality for filter and not
+function winnow( elements, qualifier, not ) {
+       if ( jQuery.isFunction( qualifier ) ) {
+               return jQuery.grep( elements, function( elem, i ) {
+                       return !!qualifier.call( elem, i, elem ) !== not;
+               } );
+       }
+
+       // Single element
+       if ( qualifier.nodeType ) {
+               return jQuery.grep( elements, function( elem ) {
+                       return ( elem === qualifier ) !== not;
+               } );
+       }
+
+       // Arraylike of elements (jQuery, arguments, Array)
+       if ( typeof qualifier !== "string" ) {
+               return jQuery.grep( elements, function( elem ) {
+                       return ( indexOf.call( qualifier, elem ) > -1 ) !== not;
+               } );
+       }
+
+       // Simple selector that can be filtered directly, removing non-Elements
+       if ( risSimple.test( qualifier ) ) {
+               return jQuery.filter( qualifier, elements, not );
+       }
+
+       // Complex selector, compare the two sets, removing non-Elements
+       qualifier = jQuery.filter( qualifier, elements );
+       return jQuery.grep( elements, function( elem ) {
+               return ( indexOf.call( qualifier, elem ) > -1 ) !== not && elem.nodeType === 1;
+       } );
+}
+
+jQuery.filter = function( expr, elems, not ) {
+       var elem = elems[ 0 ];
+
+       if ( not ) {
+               expr = ":not(" + expr + ")";
+       }
+
+       if ( elems.length === 1 && elem.nodeType === 1 ) {
+               return jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];
+       }
+
+       return jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {
+               return elem.nodeType === 1;
+       } ) );
+};
+
+jQuery.fn.extend( {
+       find: function( selector ) {
+               var i, ret,
+                       len = this.length,
+                       self = this;
+
+               if ( typeof selector !== "string" ) {
+                       return this.pushStack( jQuery( selector ).filter( function() {
+                               for ( i = 0; i < len; i++ ) {
+                                       if ( jQuery.contains( self[ i ], this ) ) {
+                                               return true;
+                                       }
+                               }
+                       } ) );
+               }
+
+               ret = this.pushStack( [] );
+
+               for ( i = 0; i < len; i++ ) {
+                       jQuery.find( selector, self[ i ], ret );
+               }
+
+               return len > 1 ? jQuery.uniqueSort( ret ) : ret;
+       },
+       filter: function( selector ) {
+               return this.pushStack( winnow( this, selector || [], false ) );
+       },
+       not: function( selector ) {
+               return this.pushStack( winnow( this, selector || [], true ) );
+       },
+       is: function( selector ) {
+               return !!winnow(
+                       this,
+
+                       // If this is a positional/relative selector, check membership in the returned set
+                       // so $("p:first").is("p:last") won't return true for a doc with two "p".
+                       typeof selector === "string" && rneedsContext.test( selector ) ?
+                               jQuery( selector ) :
+                               selector || [],
+                       false
+               ).length;
+       }
+} );
+
+} );
diff --git a/js/jquery/src/traversing/var/dir.js b/js/jquery/src/traversing/var/dir.js
new file mode 100644 (file)
index 0000000..366a823
--- /dev/null
@@ -0,0 +1,22 @@
+define( [
+       "../../core"
+], function( jQuery ) {
+
+"use strict";
+
+return function( elem, dir, until ) {
+       var matched = [],
+               truncate = until !== undefined;
+
+       while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {
+               if ( elem.nodeType === 1 ) {
+                       if ( truncate && jQuery( elem ).is( until ) ) {
+                               break;
+                       }
+                       matched.push( elem );
+               }
+       }
+       return matched;
+};
+
+} );
diff --git a/js/jquery/src/traversing/var/rneedsContext.js b/js/jquery/src/traversing/var/rneedsContext.js
new file mode 100644 (file)
index 0000000..d0663ce
--- /dev/null
@@ -0,0 +1,8 @@
+define( [
+       "../../core",
+       "../../selector"
+], function( jQuery ) {
+       "use strict";
+
+       return jQuery.expr.match.needsContext;
+} );
diff --git a/js/jquery/src/traversing/var/siblings.js b/js/jquery/src/traversing/var/siblings.js
new file mode 100644 (file)
index 0000000..952629d
--- /dev/null
@@ -0,0 +1,17 @@
+define( function() {
+
+"use strict";
+
+return function( n, elem ) {
+       var matched = [];
+
+       for ( ; n; n = n.nextSibling ) {
+               if ( n.nodeType === 1 && n !== elem ) {
+                       matched.push( n );
+               }
+       }
+
+       return matched;
+};
+
+} );
diff --git a/js/jquery/src/var/ObjectFunctionString.js b/js/jquery/src/var/ObjectFunctionString.js
new file mode 100644 (file)
index 0000000..f9e850f
--- /dev/null
@@ -0,0 +1,7 @@
+define( [
+       "./fnToString"
+], function( fnToString ) {
+       "use strict";
+
+       return fnToString.call( Object );
+} );
diff --git a/js/jquery/src/var/arr.js b/js/jquery/src/var/arr.js
new file mode 100644 (file)
index 0000000..84713d8
--- /dev/null
@@ -0,0 +1,5 @@
+define( function() {
+       "use strict";
+
+       return [];
+} );
diff --git a/js/jquery/src/var/class2type.js b/js/jquery/src/var/class2type.js
new file mode 100644 (file)
index 0000000..4365d46
--- /dev/null
@@ -0,0 +1,6 @@
+define( function() {
+       "use strict";
+
+       // [[Class]] -> type pairs
+       return {};
+} );
diff --git a/js/jquery/src/var/concat.js b/js/jquery/src/var/concat.js
new file mode 100644 (file)
index 0000000..e47c19d
--- /dev/null
@@ -0,0 +1,7 @@
+define( [
+       "./arr"
+], function( arr ) {
+       "use strict";
+
+       return arr.concat;
+} );
diff --git a/js/jquery/src/var/document.js b/js/jquery/src/var/document.js
new file mode 100644 (file)
index 0000000..dd3939d
--- /dev/null
@@ -0,0 +1,5 @@
+define( function() {
+       "use strict";
+
+       return window.document;
+} );
diff --git a/js/jquery/src/var/documentElement.js b/js/jquery/src/var/documentElement.js
new file mode 100644 (file)
index 0000000..0e3f8b4
--- /dev/null
@@ -0,0 +1,7 @@
+define( [
+       "./document"
+], function( document ) {
+       "use strict";
+
+       return document.documentElement;
+} );
diff --git a/js/jquery/src/var/fnToString.js b/js/jquery/src/var/fnToString.js
new file mode 100644 (file)
index 0000000..18c43ff
--- /dev/null
@@ -0,0 +1,7 @@
+define( [
+       "./hasOwn"
+], function( hasOwn ) {
+       "use strict";
+
+       return hasOwn.toString;
+} );
diff --git a/js/jquery/src/var/getProto.js b/js/jquery/src/var/getProto.js
new file mode 100644 (file)
index 0000000..965fab8
--- /dev/null
@@ -0,0 +1,5 @@
+define( function() {
+       "use strict";
+
+       return Object.getPrototypeOf;
+} );
diff --git a/js/jquery/src/var/hasOwn.js b/js/jquery/src/var/hasOwn.js
new file mode 100644 (file)
index 0000000..44ab680
--- /dev/null
@@ -0,0 +1,7 @@
+define( [
+       "./class2type"
+], function( class2type ) {
+       "use strict";
+
+       return class2type.hasOwnProperty;
+} );
diff --git a/js/jquery/src/var/indexOf.js b/js/jquery/src/var/indexOf.js
new file mode 100644 (file)
index 0000000..8320b98
--- /dev/null
@@ -0,0 +1,7 @@
+define( [
+       "./arr"
+], function( arr ) {
+       "use strict";
+
+       return arr.indexOf;
+} );
diff --git a/js/jquery/src/var/pnum.js b/js/jquery/src/var/pnum.js
new file mode 100644 (file)
index 0000000..6f06d73
--- /dev/null
@@ -0,0 +1,5 @@
+define( function() {
+       "use strict";
+
+       return ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source;
+} );
diff --git a/js/jquery/src/var/push.js b/js/jquery/src/var/push.js
new file mode 100644 (file)
index 0000000..9465620
--- /dev/null
@@ -0,0 +1,7 @@
+define( [
+       "./arr"
+], function( arr ) {
+       "use strict";
+
+       return arr.push;
+} );
diff --git a/js/jquery/src/var/rcssNum.js b/js/jquery/src/var/rcssNum.js
new file mode 100644 (file)
index 0000000..4214b14
--- /dev/null
@@ -0,0 +1,9 @@
+define( [
+       "../var/pnum"
+], function( pnum ) {
+
+"use strict";
+
+return new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" );
+
+} );
diff --git a/js/jquery/src/var/rnothtmlwhite.js b/js/jquery/src/var/rnothtmlwhite.js
new file mode 100644 (file)
index 0000000..30604db
--- /dev/null
@@ -0,0 +1,8 @@
+define( function() {
+       "use strict";
+
+       // Only count HTML whitespace
+       // Other whitespace should count in values
+       // https://html.spec.whatwg.org/multipage/infrastructure.html#space-character
+       return ( /[^\x20\t\r\n\f]+/g );
+} );
diff --git a/js/jquery/src/var/slice.js b/js/jquery/src/var/slice.js
new file mode 100644 (file)
index 0000000..915f837
--- /dev/null
@@ -0,0 +1,7 @@
+define( [
+       "./arr"
+], function( arr ) {
+       "use strict";
+
+       return arr.slice;
+} );
diff --git a/js/jquery/src/var/support.js b/js/jquery/src/var/support.js
new file mode 100644 (file)
index 0000000..094d0ae
--- /dev/null
@@ -0,0 +1,6 @@
+define( function() {
+       "use strict";
+
+       // All support tests are defined in their respective modules.
+       return {};
+} );
diff --git a/js/jquery/src/var/toString.js b/js/jquery/src/var/toString.js
new file mode 100644 (file)
index 0000000..ff4ecdc
--- /dev/null
@@ -0,0 +1,7 @@
+define( [
+       "./class2type"
+], function( class2type ) {
+       "use strict";
+
+       return class2type.toString;
+} );
diff --git a/js/jquery/src/wrap.js b/js/jquery/src/wrap.js
new file mode 100644 (file)
index 0000000..88b9bb5
--- /dev/null
@@ -0,0 +1,77 @@
+define( [
+       "./core",
+       "./core/init",
+       "./manipulation", // clone
+       "./traversing" // parent, contents
+], function( jQuery ) {
+
+"use strict";
+
+jQuery.fn.extend( {
+       wrapAll: function( html ) {
+               var wrap;
+
+               if ( this[ 0 ] ) {
+                       if ( jQuery.isFunction( html ) ) {
+                               html = html.call( this[ 0 ] );
+                       }
+
+                       // The elements to wrap the target around
+                       wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );
+
+                       if ( this[ 0 ].parentNode ) {
+                               wrap.insertBefore( this[ 0 ] );
+                       }
+
+                       wrap.map( function() {
+                               var elem = this;
+
+                               while ( elem.firstElementChild ) {
+                                       elem = elem.firstElementChild;
+                               }
+
+                               return elem;
+                       } ).append( this );
+               }
+
+               return this;
+       },
+
+       wrapInner: function( html ) {
+               if ( jQuery.isFunction( html ) ) {
+                       return this.each( function( i ) {
+                               jQuery( this ).wrapInner( html.call( this, i ) );
+                       } );
+               }
+
+               return this.each( function() {
+                       var self = jQuery( this ),
+                               contents = self.contents();
+
+                       if ( contents.length ) {
+                               contents.wrapAll( html );
+
+                       } else {
+                               self.append( html );
+                       }
+               } );
+       },
+
+       wrap: function( html ) {
+               var isFunction = jQuery.isFunction( html );
+
+               return this.each( function( i ) {
+                       jQuery( this ).wrapAll( isFunction ? html.call( this, i ) : html );
+               } );
+       },
+
+       unwrap: function( selector ) {
+               this.parent( selector ).not( "body" ).each( function() {
+                       jQuery( this ).replaceWith( this.childNodes );
+               } );
+               return this;
+       }
+} );
+
+return jQuery;
+} );
diff --git a/js/modernizr/feature-detects/a-download.js b/js/modernizr/feature-detects/a-download.js
new file mode 100644 (file)
index 0000000..559fadd
--- /dev/null
@@ -0,0 +1,8 @@
+
+// a[download] attribute
+// When used on an <a>, this attribute signifies that the resource it
+// points to should be downloaded by the browser rather than navigating to it.
+// http://developers.whatwg.org/links.html#downloading-resources
+// By Addy Osmani
+
+Modernizr.addTest('adownload', 'download' in document.createElement('a'));
diff --git a/js/modernizr/feature-detects/audio-audiodata-api.js b/js/modernizr/feature-detects/audio-audiodata-api.js
new file mode 100644 (file)
index 0000000..bfcd9fe
--- /dev/null
@@ -0,0 +1,4 @@
+// Mozilla Audio Data API
+// https://wiki.mozilla.org/Audio_Data_API
+// by Addy Osmani
+Modernizr.addTest('audiodata', !!(window.Audio));
diff --git a/js/modernizr/feature-detects/audio-webaudio-api.js b/js/modernizr/feature-detects/audio-webaudio-api.js
new file mode 100644 (file)
index 0000000..46d3c63
--- /dev/null
@@ -0,0 +1,4 @@
+// Web Audio API
+// https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html
+// By Addy Osmani
+Modernizr.addTest('webaudio', !!(window.webkitAudioContext || window.AudioContext));
diff --git a/js/modernizr/feature-detects/battery-api.js b/js/modernizr/feature-detects/battery-api.js
new file mode 100644 (file)
index 0000000..4177e8f
--- /dev/null
@@ -0,0 +1,8 @@
+
+// Battery API
+// https://developer.mozilla.org/en/DOM/window.navigator.mozBattery
+// By: Paul Sayre
+
+Modernizr.addTest('battery',
+       !!Modernizr.prefixed('battery', navigator)
+);
\ No newline at end of file
diff --git a/js/modernizr/feature-detects/battery-level.js b/js/modernizr/feature-detects/battery-level.js
new file mode 100644 (file)
index 0000000..07f9575
--- /dev/null
@@ -0,0 +1,11 @@
+
+// Low Battery Level
+// Enable a developer to remove CPU intensive CSS/JS when battery is low
+// developer.mozilla.org/en/DOM/window.navigator.mozBattery
+// By: Paul Sayre
+
+Modernizr.addTest('lowbattery', function () {
+       var minLevel = 0.20,
+               battery = Modernizr.prefixed('battery', navigator);
+       return !!(battery && !battery.charging && battery.level <= minLevel);
+});
diff --git a/js/modernizr/feature-detects/blob-constructor.js b/js/modernizr/feature-detects/blob-constructor.js
new file mode 100644 (file)
index 0000000..f10bd7b
--- /dev/null
@@ -0,0 +1,10 @@
+// Blob constructor
+// http://dev.w3.org/2006/webapi/FileAPI/#constructorBlob
+
+Modernizr.addTest('blobconstructor', function () {
+    try {
+        return !!new Blob();
+    } catch (e) {
+        return false;
+    }
+});
diff --git a/js/modernizr/feature-detects/canvas-todataurl-type.js b/js/modernizr/feature-detects/canvas-todataurl-type.js
new file mode 100644 (file)
index 0000000..bf8f2e3
--- /dev/null
@@ -0,0 +1,28 @@
+// canvas.toDataURL type support
+// http://www.w3.org/TR/html5/the-canvas-element.html#dom-canvas-todataurl
+
+// This test is asynchronous. Watch out.
+
+(function () {
+
+    if (!Modernizr.canvas) {
+        return false;
+    }
+
+    var image = new Image(),
+        canvas = document.createElement('canvas'),
+        ctx = canvas.getContext('2d');
+
+    image.onload = function() {
+        ctx.drawImage(image, 0, 0);
+
+        Modernizr.addTest('todataurljpeg', function() {
+            return canvas.toDataURL('image/jpeg').indexOf('data:image/jpeg') === 0;
+        });
+        Modernizr.addTest('todataurlwebp', function() {
+            return canvas.toDataURL('image/webp').indexOf('data:image/webp') === 0;
+        });
+    };
+
+    image.src = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAACklEQVR4nGMAAQAABQABDQottAAAAABJRU5ErkJggg==';
+}());
diff --git a/js/modernizr/feature-detects/contenteditable.js b/js/modernizr/feature-detects/contenteditable.js
new file mode 100644 (file)
index 0000000..6543666
--- /dev/null
@@ -0,0 +1,9 @@
+// contentEditable
+// http://www.whatwg.org/specs/web-apps/current-work/multipage/editing.html#contenteditable
+
+// this is known to false positive in some mobile browsers
+// here is a whitelist of verified working browsers:
+// https://github.com/NielsLeenheer/html5test/blob/549f6eac866aa861d9649a0707ff2c0157895706/scripts/engine.js#L2083
+
+Modernizr.addTest('contenteditable',
+        'contentEditable' in document.documentElement);
diff --git a/js/modernizr/feature-detects/contentsecuritypolicy.js b/js/modernizr/feature-detects/contentsecuritypolicy.js
new file mode 100644 (file)
index 0000000..a95e45a
--- /dev/null
@@ -0,0 +1,10 @@
+// Test for (experimental) Content Security Policy 1.1 support.
+//
+// This feature is still quite experimental, but is available now in Chrome 22.
+// If the `SecurityPolicy` property is available, you can be sure the browser
+// supports CSP. If it's not available, the browser still might support an
+// earlier version of the CSP spec.
+//
+// Editor's Draft: https://dvcs.w3.org/hg/content-security-policy/raw-file/tip/csp-specification.dev.html
+
+Modernizr.addTest('contentsecuritypolicy', ('securityPolicy' in document || 'SecurityPolicy' in document));
diff --git a/js/modernizr/feature-detects/contextmenu.js b/js/modernizr/feature-detects/contextmenu.js
new file mode 100644 (file)
index 0000000..dd8182f
--- /dev/null
@@ -0,0 +1,11 @@
+// http://www.w3.org/TR/html5/interactive-elements.html#context-menus
+// Demo at http://thewebrocks.com/demos/context-menu/
+Modernizr.addTest(
+  'contextmenu', 
+  ('contextMenu' in document.documentElement && 'HTMLMenuItemElement' in window) 
+);
+
+
+
+
+
diff --git a/js/modernizr/feature-detects/cookies.js b/js/modernizr/feature-detects/cookies.js
new file mode 100644 (file)
index 0000000..6a2f9d4
--- /dev/null
@@ -0,0 +1,15 @@
+
+// by tauren
+// https://github.com/Modernizr/Modernizr/issues/191
+
+Modernizr.addTest('cookies', function () {
+  // Quick test if browser has cookieEnabled host property
+  if (navigator.cookieEnabled) return true;
+  // Create cookie
+  document.cookie = "cookietest=1";
+  var ret = document.cookie.indexOf("cookietest=") != -1;
+  // Delete cookie
+  document.cookie = "cookietest=1; expires=Thu, 01-Jan-1970 00:00:01 GMT";
+  return ret;
+});
+
diff --git a/js/modernizr/feature-detects/cors.js b/js/modernizr/feature-detects/cors.js
new file mode 100644 (file)
index 0000000..286d717
--- /dev/null
@@ -0,0 +1,3 @@
+// cors
+// By Theodoor van Donge
+Modernizr.addTest('cors', !!(window.XMLHttpRequest && 'withCredentials' in new XMLHttpRequest()));
\ No newline at end of file
diff --git a/js/modernizr/feature-detects/css-backgroundposition-shorthand.js b/js/modernizr/feature-detects/css-backgroundposition-shorthand.js
new file mode 100644 (file)
index 0000000..ce016e1
--- /dev/null
@@ -0,0 +1,19 @@
+/*
+    https://developer.mozilla.org/en/CSS/background-position
+    http://www.w3.org/TR/css3-background/#background-position
+
+    Example: http://jsfiddle.net/Blink/bBXvt/
+*/
+
+(function() {
+
+    var elem = document.createElement('a'),
+        eStyle = elem.style,
+        val = "right 10px bottom 10px";
+
+    Modernizr.addTest('bgpositionshorthand', function(){
+        eStyle.cssText = "background-position: " + val + ";";
+        return (eStyle.backgroundPosition === val);
+    });
+
+}());
diff --git a/js/modernizr/feature-detects/css-backgroundposition-xy.js b/js/modernizr/feature-detects/css-backgroundposition-xy.js
new file mode 100644 (file)
index 0000000..d52d600
--- /dev/null
@@ -0,0 +1,15 @@
+/*
+       Allan Lei https://github.com/allanlei
+       
+       Check adapted from https://github.com/brandonaaron/jquery-cssHooks/blob/master/bgpos.js
+       
+       Test: http://jsfiddle.net/allanlei/R8AYS/
+*/
+Modernizr.addTest('bgpositionxy', function() {
+    return Modernizr.testStyles('#modernizr {background-position: 3px 5px;}', function(elem) {
+        var cssStyleDeclaration = window.getComputedStyle ? getComputedStyle(elem, null) : elem.currentStyle;
+        var xSupport = (cssStyleDeclaration.backgroundPositionX == '3px') || (cssStyleDeclaration['background-position-x'] == '3px');
+        var ySupport = (cssStyleDeclaration.backgroundPositionY == '5px') || (cssStyleDeclaration['background-position-y'] == '5px');
+        return xSupport && ySupport;
+    });
+});
\ No newline at end of file
diff --git a/js/modernizr/feature-detects/css-backgroundrepeat.js b/js/modernizr/feature-detects/css-backgroundrepeat.js
new file mode 100644 (file)
index 0000000..365447c
--- /dev/null
@@ -0,0 +1,31 @@
+// developer.mozilla.org/en/CSS/background-repeat
+
+// test page: jsbin.com/uzesun/
+// http://jsfiddle.net/ryanseddon/yMLTQ/6/    
+
+(function(){
+
+
+function getBgRepeatValue(elem){
+    return (window.getComputedStyle ?
+             getComputedStyle(elem, null).getPropertyValue('background') :
+             elem.currentStyle['background']);
+}
+  
+
+Modernizr.testStyles(' #modernizr { background-repeat: round; } ', function(elem, rule){ 
+
+  Modernizr.addTest('bgrepeatround', getBgRepeatValue(elem) == 'round');
+
+});
+
+
+
+Modernizr.testStyles(' #modernizr { background-repeat: space; } ', function(elem, rule){ 
+
+  Modernizr.addTest('bgrepeatspace', getBgRepeatValue(elem) == 'space');
+
+});
+
+
+})();
diff --git a/js/modernizr/feature-detects/css-backgroundsizecover.js b/js/modernizr/feature-detects/css-backgroundsizecover.js
new file mode 100644 (file)
index 0000000..dd7e51b
--- /dev/null
@@ -0,0 +1,10 @@
+
+// developer.mozilla.org/en/CSS/background-size
+
+Modernizr.testStyles( '#modernizr{background-size:cover}', function( elem ) {
+       var style = window.getComputedStyle ?
+               window.getComputedStyle( elem, null )
+               : elem.currentStyle;
+               
+       Modernizr.addTest( 'bgsizecover', style.backgroundSize == 'cover' );
+});
\ No newline at end of file
diff --git a/js/modernizr/feature-detects/css-boxsizing.js b/js/modernizr/feature-detects/css-boxsizing.js
new file mode 100644 (file)
index 0000000..ab90913
--- /dev/null
@@ -0,0 +1,9 @@
+
+// developer.mozilla.org/en/CSS/box-sizing
+// github.com/Modernizr/Modernizr/issues/248
+
+Modernizr.addTest("boxsizing",function(){
+    return Modernizr.testAllProps("boxSizing") && (document.documentMode === undefined || document.documentMode > 7);
+});
+
+
diff --git a/js/modernizr/feature-detects/css-calc.js b/js/modernizr/feature-detects/css-calc.js
new file mode 100644 (file)
index 0000000..bb5b7e9
--- /dev/null
@@ -0,0 +1,12 @@
+// Method of allowing calculated values for length units, i.e. width: calc(100%-3em) http://caniuse.com/#search=calc
+// By @calvein
+
+Modernizr.addTest('csscalc', function() {
+    var prop = 'width:';
+    var value = 'calc(10px);';
+    var el = document.createElement('div');
+
+    el.style.cssText = prop + Modernizr._prefixes.join(value + prop);
+
+    return !!el.style.length;
+});
diff --git a/js/modernizr/feature-detects/css-cubicbezierrange.js b/js/modernizr/feature-detects/css-cubicbezierrange.js
new file mode 100644 (file)
index 0000000..28e72aa
--- /dev/null
@@ -0,0 +1,8 @@
+// cubic-bezier values can't be > 1 for Webkit until bug #45761 (https://bugs.webkit.org/show_bug.cgi?id=45761) is fixed
+// By @calvein
+
+Modernizr.addTest('cubicbezierrange', function() {
+    var el = document.createElement('div');
+    el.style.cssText = Modernizr._prefixes.join('transition-timing-function' + ':cubic-bezier(1,0,0,1.1); ');
+    return !!el.style.length;
+});
diff --git a/js/modernizr/feature-detects/css-displayrunin.js b/js/modernizr/feature-detects/css-displayrunin.js
new file mode 100644 (file)
index 0000000..01eddb7
--- /dev/null
@@ -0,0 +1,18 @@
+
+// by alanhogan
+
+// https://github.com/Modernizr/Modernizr/issues/198
+// http://css-tricks.com/596-run-in/
+
+
+
+Modernizr.testStyles(' #modernizr { display: run-in; } ', function(elem, rule){ 
+
+  var ret = (window.getComputedStyle ?
+         getComputedStyle(elem, null).getPropertyValue('display') :
+         elem.currentStyle['display']);
+
+  Modernizr.addTest('display-runin', ret == 'run-in');
+
+});
+
diff --git a/js/modernizr/feature-detects/css-displaytable.js b/js/modernizr/feature-detects/css-displaytable.js
new file mode 100644 (file)
index 0000000..bc0a67c
--- /dev/null
@@ -0,0 +1,27 @@
+// display: table and table-cell test. (both are tested under one name "table-cell" )
+// By @scottjehl
+
+// all additional table display values are here: http://pastebin.com/Gk9PeVaQ though Scott has seen some IE false positives with that sort of weak detection.
+// more testing neccessary perhaps.
+
+Modernizr.addTest( "display-table",function(){
+  
+  var doc   = window.document,
+      docElem = doc.documentElement,   
+      parent  = doc.createElement( "div" ),
+      child = doc.createElement( "div" ),
+      childb  = doc.createElement( "div" ),
+      ret;
+  
+  parent.style.cssText = "display: table";
+  child.style.cssText = childb.style.cssText = "display: table-cell; padding: 10px";    
+          
+  parent.appendChild( child );
+  parent.appendChild( childb );
+  docElem.insertBefore( parent, docElem.firstChild );
+  
+  ret = child.offsetLeft < childb.offsetLeft;
+  docElem.removeChild(parent);
+  return ret; 
+});
+
diff --git a/js/modernizr/feature-detects/css-filters.js b/js/modernizr/feature-detects/css-filters.js
new file mode 100644 (file)
index 0000000..aec4fad
--- /dev/null
@@ -0,0 +1,7 @@
+// https://github.com/Modernizr/Modernizr/issues/615
+// documentMode is needed for false positives in oldIE, please see issue above
+Modernizr.addTest('cssfilters', function() {
+    var el = document.createElement('div');
+    el.style.cssText = Modernizr._prefixes.join('filter' + ':blur(2px); ');
+    return !!el.style.length && ((document.documentMode === undefined || document.documentMode > 9));
+});
\ No newline at end of file
diff --git a/js/modernizr/feature-detects/css-hyphens.js b/js/modernizr/feature-detects/css-hyphens.js
new file mode 100644 (file)
index 0000000..8215dd5
--- /dev/null
@@ -0,0 +1,205 @@
+/* see http://davidnewton.ca/the-current-state-of-hyphenation-on-the-web
+   http://davidnewton.ca/demos/hyphenation/test.html
+
+
+There are three tests:
+   1. csshyphens      - tests hyphens:auto actually adds hyphens to text
+   2. softhyphens     - tests that &shy; does its job
+   3. softhyphensfind - tests that in-browser Find functionality still works correctly with &shy;
+
+These tests currently require document.body to be present
+
+Hyphenation is language specific, sometimes.
+  See for more details: http://code.google.com/p/hyphenator/source/diff?spec=svn975&r=975&format=side&path=/trunk/Hyphenator.js#sc_svn975_313
+
+If loading Hyphenator.js via Modernizr.load, be cautious of issue 158: http://code.google.com/p/hyphenator/issues/detail?id=158
+
+More details at https://github.com/Modernizr/Modernizr/issues/312
+
+*/
+
+(function() {
+
+       if (!document.body){
+               window.console && console.warn('document.body doesn\'t exist. Modernizr hyphens test needs it.');
+               return;
+       }
+
+       // functional test of adding hyphens:auto
+       function test_hyphens_css() {
+               try {
+                       /* create a div container and a span within that
+                        * these have to be appended to document.body, otherwise some browsers can give false negative */
+                       var div = document.createElement('div'),
+                               span = document.createElement('span'),
+                               divStyle = div.style,
+                               spanHeight = 0,
+                               spanWidth = 0,
+                               result = false,
+                               firstChild = document.body.firstElementChild || document.body.firstChild;
+
+                       div.appendChild(span);
+                       span.innerHTML = 'Bacon ipsum dolor sit amet jerky velit in culpa hamburger et. Laborum dolor proident, enim dolore duis commodo et strip steak. Salami anim et, veniam consectetur dolore qui tenderloin jowl velit sirloin. Et ad culpa, fatback cillum jowl ball tip ham hock nulla short ribs pariatur aute. Pig pancetta ham bresaola, ut boudin nostrud commodo flank esse cow tongue culpa. Pork belly bresaola enim pig, ea consectetur nisi. Fugiat officia turkey, ea cow jowl pariatur ullamco proident do laborum velit sausage. Magna biltong sint tri-tip commodo sed bacon, esse proident aliquip. Ullamco ham sint fugiat, velit in enim sed mollit nulla cow ut adipisicing nostrud consectetur. Proident dolore beef ribs, laborum nostrud meatball ea laboris rump cupidatat labore culpa. Shankle minim beef, velit sint cupidatat fugiat tenderloin pig et ball tip. Ut cow fatback salami, bacon ball tip et in shank strip steak bresaola. In ut pork belly sed mollit tri-tip magna culpa veniam, short ribs qui in andouille ham consequat. Dolore bacon t-bone, velit short ribs enim strip steak nulla. Voluptate labore ut, biltong swine irure jerky. Cupidatat excepteur aliquip salami dolore. Ball tip strip steak in pork dolor. Ad in esse biltong. Dolore tenderloin exercitation ad pork loin t-bone, dolore in chicken ball tip qui pig. Ut culpa tongue, sint ribeye dolore ex shank voluptate hamburger. Jowl et tempor, boudin pork chop labore ham hock drumstick consectetur tri-tip elit swine meatball chicken ground round. Proident shankle mollit dolore. Shoulder ut duis t-bone quis reprehenderit. Meatloaf dolore minim strip steak, laboris ea aute bacon beef ribs elit shank in veniam drumstick qui. Ex laboris meatball cow tongue pork belly. Ea ball tip reprehenderit pig, sed fatback boudin dolore flank aliquip laboris eu quis. Beef ribs duis beef, cow corned beef adipisicing commodo nisi deserunt exercitation. Cillum dolor t-bone spare ribs, ham hock est sirloin. Brisket irure meatloaf in, boudin pork belly sirloin ball tip. Sirloin sint irure nisi nostrud aliqua. Nostrud nulla aute, enim officia culpa ham hock. Aliqua reprehenderit dolore sunt nostrud sausage, ea boudin pork loin ut t-bone ham tempor. Tri-tip et pancetta drumstick laborum. Ham hock magna do nostrud in proident. Ex ground round fatback, venison non ribeye in.';
+
+                       document.body.insertBefore(div, firstChild);
+
+                       /* get size of unhyphenated text */
+                       divStyle.cssText = 'position:absolute;top:0;left:0;width:5em;text-align:justify;text-justification:newspaper;';
+                       spanHeight = span.offsetHeight;
+                       spanWidth = span.offsetWidth;
+
+                       /* compare size with hyphenated text */
+                       divStyle.cssText = 'position:absolute;top:0;left:0;width:5em;text-align:justify;'+
+                                                                                                'text-justification:newspaper;'+
+                                                                                                Modernizr._prefixes.join('hyphens:auto; ');
+
+                       result = (span.offsetHeight != spanHeight || span.offsetWidth != spanWidth);
+
+                       /* results and cleanup */
+                       document.body.removeChild(div);
+                       div.removeChild(span);
+
+                       return result;
+               } catch(e) {
+                       return false;
+               }
+       }
+
+       // for the softhyphens test
+       function test_hyphens(delimiter, testWidth) {
+               try {
+                       /* create a div container and a span within that
+                        * these have to be appended to document.body, otherwise some browsers can give false negative */
+                       var div = document.createElement('div'),
+                               span = document.createElement('span'),
+                               divStyle = div.style,
+                               spanSize = 0,
+                               result = false,
+                               result1 = false,
+                               result2 = false,
+                               firstChild = document.body.firstElementChild || document.body.firstChild;
+
+                       divStyle.cssText = 'position:absolute;top:0;left:0;overflow:visible;width:1.25em;';
+                       div.appendChild(span);
+                       document.body.insertBefore(div, firstChild);
+
+
+                       /* get height of unwrapped text */
+                       span.innerHTML = 'mm';
+                       spanSize = span.offsetHeight;
+
+                       /* compare height w/ delimiter, to see if it wraps to new line */
+                       span.innerHTML = 'm' + delimiter + 'm';
+                       result1 = (span.offsetHeight > spanSize);
+
+                       /* if we're testing the width too (i.e. for soft-hyphen, not zws),
+                        * this is because tested Blackberry devices will wrap the text but not display the hyphen */
+                       if (testWidth) {
+                               /* get width of wrapped, non-hyphenated text */
+                               span.innerHTML = 'm<br />m';
+                               spanSize = span.offsetWidth;
+
+                               /* compare width w/ wrapped w/ delimiter to see if hyphen is present */
+                               span.innerHTML = 'm' + delimiter + 'm';
+                               result2 = (span.offsetWidth > spanSize);
+                       } else {
+                               result2 = true;
+                       }
+
+                       /* results and cleanup */
+                       if (result1 === true && result2 === true) { result = true; }
+                       document.body.removeChild(div);
+                       div.removeChild(span);
+
+                       return result;
+               } catch(e) {
+                       return false;
+               }
+       }
+
+       // testing if in-browser Find functionality will work on hyphenated text
+       function test_hyphens_find(delimiter) {
+               try {
+                       /* create a dummy input for resetting selection location, and a div container
+                        * these have to be appended to document.body, otherwise some browsers can give false negative
+                        * div container gets the doubled testword, separated by the delimiter
+                        * Note: giving a width to div gives false positive in iOS Safari */
+                       var dummy = document.createElement('input'),
+                               div = document.createElement('div'),
+                               testword = 'lebowski',
+                               result = false,
+                               textrange,
+                               firstChild = document.body.firstElementChild || document.body.firstChild;
+
+                       div.innerHTML = testword + delimiter + testword;
+
+                       document.body.insertBefore(div, firstChild);
+                       document.body.insertBefore(dummy, div);
+
+
+                       /* reset the selection to the dummy input element, i.e. BEFORE the div container
+                        *   stackoverflow.com/questions/499126/jquery-set-cursor-position-in-text-area */
+                       if (dummy.setSelectionRange) {
+                               dummy.focus();
+                               dummy.setSelectionRange(0,0);
+                       } else if (dummy.createTextRange) {
+                               textrange = dummy.createTextRange();
+                               textrange.collapse(true);
+                               textrange.moveEnd('character', 0);
+                               textrange.moveStart('character', 0);
+                               textrange.select();
+                       }
+
+                       /* try to find the doubled testword, without the delimiter */
+                       if (window.find) {
+                               result = window.find(testword + testword);
+                       } else {
+                               try {
+                                       textrange = window.self.document.body.createTextRange();
+                                       result = textrange.findText(testword + testword);
+                               } catch(e) {
+                                       result = false;
+                               }
+                       }
+
+                       document.body.removeChild(div);
+                       document.body.removeChild(dummy);
+
+                       return result;
+               } catch(e) {
+                       return false;
+               }
+       }
+
+       Modernizr.addTest("csshyphens", function() {
+
+               if (!Modernizr.testAllProps('hyphens')) return false;
+
+               /* Chrome lies about its hyphens support so we need a more robust test
+                               crbug.com/107111
+               */
+               try {
+                       return test_hyphens_css();
+               } catch(e) {
+                       return false;
+               }
+       });
+
+       Modernizr.addTest("softhyphens", function() {
+               try {
+                       // use numeric entity instead of &shy; in case it's XHTML
+                       return test_hyphens('&#173;', true) && test_hyphens('&#8203;', false);
+               } catch(e) {
+                       return false;
+               }
+       });
+
+       Modernizr.addTest("softhyphensfind", function() {
+               try {
+                       return test_hyphens_find('&#173;') && test_hyphens_find('&#8203;');
+               } catch(e) {
+                       return false;
+               }
+       });
+
+})();
diff --git a/js/modernizr/feature-detects/css-lastchild.js b/js/modernizr/feature-detects/css-lastchild.js
new file mode 100644 (file)
index 0000000..3e51516
--- /dev/null
@@ -0,0 +1,11 @@
+// last-child pseudo selector
+// https://github.com/Modernizr/Modernizr/pull/304
+
+
+Modernizr.addTest('lastchild', function(){
+
+  return Modernizr.testStyles("#modernizr div {width:100px} #modernizr :last-child{width:200px;display:block}", function (elem) {
+    return elem.lastChild.offsetWidth > elem.firstChild.offsetWidth;
+  }, 2);
+
+});
diff --git a/js/modernizr/feature-detects/css-mask.js b/js/modernizr/feature-detects/css-mask.js
new file mode 100644 (file)
index 0000000..2f6f28a
--- /dev/null
@@ -0,0 +1,12 @@
+// this tests passes for webkit's proprietary `-webkit-mask` feature
+//   www.webkit.org/blog/181/css-masks/
+//   developer.apple.com/library/safari/#documentation/InternetWeb/Conceptual/SafariVisualEffectsProgGuide/Masks/Masks.html
+
+// it does not pass mozilla's implementation of `mask` for SVG
+
+//   developer.mozilla.org/en/CSS/mask
+//   developer.mozilla.org/En/Applying_SVG_effects_to_HTML_content
+
+// Can combine with clippaths for awesomeness: http://generic.cx/for/webkit/test.html
+
+Modernizr.addTest('cssmask', Modernizr.testAllProps('maskRepeat'));
diff --git a/js/modernizr/feature-detects/css-mediaqueries.js b/js/modernizr/feature-detects/css-mediaqueries.js
new file mode 100644 (file)
index 0000000..e0e2c50
--- /dev/null
@@ -0,0 +1,3 @@
+
+
+Modernizr.addTest('mediaqueries', Modernizr.mq('only all'));
\ No newline at end of file
diff --git a/js/modernizr/feature-detects/css-objectfit.js b/js/modernizr/feature-detects/css-objectfit.js
new file mode 100644 (file)
index 0000000..3daecde
--- /dev/null
@@ -0,0 +1,6 @@
+
+// dev.opera.com/articles/view/css3-object-fit-object-position/
+
+Modernizr.addTest('object-fit',
+       !!Modernizr.prefixed('objectFit')
+);
\ No newline at end of file
diff --git a/js/modernizr/feature-detects/css-overflow-scrolling.js b/js/modernizr/feature-detects/css-overflow-scrolling.js
new file mode 100644 (file)
index 0000000..364e71d
--- /dev/null
@@ -0,0 +1,9 @@
+
+// johanbrook.com/browsers/native-momentum-scrolling-ios-5/
+// introduced in iOS5b2. Possible API may change...
+
+Modernizr.addTest("overflowscrolling",function(){
+    return Modernizr.testAllProps("overflowScrolling");
+});
+
+
diff --git a/js/modernizr/feature-detects/css-pointerevents.js b/js/modernizr/feature-detects/css-pointerevents.js
new file mode 100644 (file)
index 0000000..f18a5c1
--- /dev/null
@@ -0,0 +1,25 @@
+
+// developer.mozilla.org/en/CSS/pointer-events
+
+// Test and project pages:
+// ausi.github.com/Feature-detection-technique-for-pointer-events/
+// github.com/ausi/Feature-detection-technique-for-pointer-events/wiki
+// github.com/Modernizr/Modernizr/issues/80
+
+
+Modernizr.addTest('pointerevents', function(){
+    var element = document.createElement('x'),
+        documentElement = document.documentElement,
+        getComputedStyle = window.getComputedStyle,
+        supports;
+    if(!('pointerEvents' in element.style)){
+        return false;
+    }
+    element.style.pointerEvents = 'auto';
+    element.style.pointerEvents = 'x';
+    documentElement.appendChild(element);
+    supports = getComputedStyle &&
+        getComputedStyle(element, '').pointerEvents === 'auto';
+    documentElement.removeChild(element);
+    return !!supports;
+});
diff --git a/js/modernizr/feature-detects/css-positionsticky.js b/js/modernizr/feature-detects/css-positionsticky.js
new file mode 100644 (file)
index 0000000..43a19ec
--- /dev/null
@@ -0,0 +1,13 @@
+// Sticky positioning - constrains an element to be positioned inside the
+// intersection of its container box, and the viewport.
+Modernizr.addTest('csspositionsticky', function () {
+
+    var prop = 'position:';
+    var value = 'sticky';
+    var el = document.createElement('modernizr');
+    var mStyle = el.style;
+
+    mStyle.cssText = prop + Modernizr._prefixes.join(value + ';' + prop).slice(0, -prop.length);
+
+    return mStyle.position.indexOf(value) !== -1;
+});
diff --git a/js/modernizr/feature-detects/css-regions.js b/js/modernizr/feature-detects/css-regions.js
new file mode 100644 (file)
index 0000000..c8995c3
--- /dev/null
@@ -0,0 +1,55 @@
+// CSS Regions
+// http://www.w3.org/TR/css3-regions/
+// By: Mihai Balan
+
+// We start with a CSS parser test then we check page geometry to see if it's affected by regions
+// Later we might be able to retire the second part, as WebKit builds with the false positives die out
+
+Modernizr.addTest('regions', function() {
+
+       /* Get the 'flowFrom' property name available in the browser. Either default or vendor prefixed.
+       If the property name can't be found we'll get Boolean 'false' and fail quickly */
+       var flowFromProperty = Modernizr.prefixed("flowFrom"),
+               flowIntoProperty = Modernizr.prefixed("flowInto");
+
+       if (!flowFromProperty || !flowIntoProperty){
+               return false;
+       }
+
+       /* If CSS parsing is there, try to determine if regions actually work. */
+       var container           = document.createElement('div'),
+               content                 = document.createElement('div'),
+               region                  = document.createElement('div'),
+
+       /* we create a random, unlikely to be generated flow number to make sure we don't
+       clash with anything more vanilla, like 'flow', or 'article', or 'f1' */
+       flowName = 'modernizr_flow_for_regions_check';
+
+       /* First create a div with two adjacent divs inside it. The first will be the
+       content, the second will be the region. To be able to distinguish between the two,
+       we'll give the region a particular padding */
+       content.innerText               = 'M';
+       container.style.cssText = 'top: 150px; left: 150px; padding: 0px;';
+       region.style.cssText    = 'width: 50px; height: 50px; padding: 42px;';
+
+       region.style[flowFromProperty] = flowName;
+       container.appendChild(content);
+       container.appendChild(region);
+       document.documentElement.appendChild(container);
+
+       /* Now compute the bounding client rect, before and after attempting to flow the
+       content div in the region div. If regions are enabled, the after bounding rect
+       should reflect the padding of the region div.*/
+       var flowedRect, delta,
+               plainRect = content.getBoundingClientRect();
+
+
+       content.style[flowIntoProperty] = flowName;
+       flowedRect = content.getBoundingClientRect();
+
+       delta = flowedRect.left - plainRect.left;
+       document.documentElement.removeChild(container);
+       content = region = container = undefined;
+
+       return (delta == 42);
+});
diff --git a/js/modernizr/feature-detects/css-remunit.js b/js/modernizr/feature-detects/css-remunit.js
new file mode 100644 (file)
index 0000000..38e15b8
--- /dev/null
@@ -0,0 +1,19 @@
+
+// test by github.com/nsfmc
+
+// "The 'rem' unit ('root em') is relative to the computed
+// value of the 'font-size' value of the root element."
+// http://www.w3.org/TR/css3-values/#relative0
+// you can test by checking if the prop was ditched
+
+// http://snook.ca/archives/html_and_css/font-size-with-rem
+
+Modernizr.addTest('cssremunit', function(){
+
+  var div = document.createElement('div');
+  try {
+    div.style.fontSize = '3rem';
+  } catch(er){}
+  return (/rem/).test(div.style.fontSize);
+
+});
diff --git a/js/modernizr/feature-detects/css-resize.js b/js/modernizr/feature-detects/css-resize.js
new file mode 100644 (file)
index 0000000..fff99ba
--- /dev/null
@@ -0,0 +1,8 @@
+
+// Test for CSS 3 UI "resize" property
+// http://www.w3.org/TR/css3-ui/#resize
+// https://developer.mozilla.org/en/CSS/resize
+
+Modernizr.addTest('cssresize', Modernizr.testAllProps('resize'));
+
+
diff --git a/js/modernizr/feature-detects/css-scrollbars.js b/js/modernizr/feature-detects/css-scrollbars.js
new file mode 100644 (file)
index 0000000..f26de9f
--- /dev/null
@@ -0,0 +1,19 @@
+// Stylable scrollbars detection
+Modernizr.addTest('cssscrollbar', function() {
+
+       var bool,
+
+               styles = "#modernizr{overflow: scroll; width: 40px }#" +
+                       Modernizr._prefixes
+                               .join("scrollbar{width:0px}"+' #modernizr::')
+                               .split('#')
+                               .slice(1)
+                               .join('#') + "scrollbar{width:0px}";
+
+       Modernizr.testStyles(styles, function(node) {
+               bool = 'scrollWidth' in node && node.scrollWidth == 40;
+       });
+
+       return bool;
+
+});
diff --git a/js/modernizr/feature-detects/css-shapes.js b/js/modernizr/feature-detects/css-shapes.js
new file mode 100644 (file)
index 0000000..2801165
--- /dev/null
@@ -0,0 +1,4 @@
+
+// http://html.adobe.com/webplatform/layout/shapes
+
+Modernizr.addTest('shapes', Modernizr.testAllProps('shapeOutside', 'content-box', true));
diff --git a/js/modernizr/feature-detects/css-subpixelfont.js b/js/modernizr/feature-detects/css-subpixelfont.js
new file mode 100644 (file)
index 0000000..57a11b0
--- /dev/null
@@ -0,0 +1,23 @@
+/*
+ * Test for SubPixel Font Rendering
+ * (to infer if GDI or DirectWrite is used on Windows)
+ * Authors: @derSchepp, @gerritvanaaken, @rodneyrehm, @yatil, @ryanseddon
+ * Web: https://github.com/gerritvanaaken/subpixeldetect
+ */
+Modernizr.addTest('subpixelfont', function() {
+    var bool,
+        styles = "#modernizr{position: absolute; top: -10em; visibility:hidden; font: normal 10px arial;}#subpixel{float: left; font-size: 33.3333%;}";
+    
+    // see https://github.com/Modernizr/Modernizr/blob/master/modernizr.js#L97
+    Modernizr.testStyles(styles, function(elem) {
+        var subpixel = elem.firstChild;
+
+        subpixel.innerHTML = 'This is a text written in Arial';
+
+        bool = window.getComputedStyle ?
+            window.getComputedStyle(subpixel, null).getPropertyValue("width") !== '44px'
+            : false;
+    }, 1, ['subpixel']);
+
+    return bool;
+});
diff --git a/js/modernizr/feature-detects/css-supports.js b/js/modernizr/feature-detects/css-supports.js
new file mode 100644 (file)
index 0000000..24d26d4
--- /dev/null
@@ -0,0 +1,6 @@
+// http://dev.w3.org/csswg/css3-conditional/#at-supports
+// github.com/Modernizr/Modernizr/issues/648
+// Relies on the fact that a browser vendor should expose the CSSSupportsRule interface
+// http://dev.w3.org/csswg/css3-conditional/#the-csssupportsrule-interface
+
+Modernizr.addTest("supports","CSSSupportsRule" in window);
\ No newline at end of file
diff --git a/js/modernizr/feature-detects/css-userselect.js b/js/modernizr/feature-detects/css-userselect.js
new file mode 100644 (file)
index 0000000..062ee90
--- /dev/null
@@ -0,0 +1,10 @@
+// -moz-user-select:none test.
+
+// by ryan seddon
+//https://github.com/Modernizr/Modernizr/issues/250
+
+
+Modernizr.addTest("userselect",function(){
+    return Modernizr.testAllProps("user-select");
+});
+
diff --git a/js/modernizr/feature-detects/css-vhunit.js b/js/modernizr/feature-detects/css-vhunit.js
new file mode 100644 (file)
index 0000000..9de2b64
--- /dev/null
@@ -0,0 +1,14 @@
+// https://github.com/Modernizr/Modernizr/issues/572
+// Similar to http://jsfiddle.net/FWeinb/etnYC/
+Modernizr.addTest('cssvhunit', function() {
+    var bool;
+    Modernizr.testStyles("#modernizr { height: 50vh; }", function(elem, rule) {   
+        var height = parseInt(window.innerHeight/2,10),
+            compStyle = parseInt((window.getComputedStyle ?
+                      getComputedStyle(elem, null) :
+                      elem.currentStyle)["height"],10);
+        
+        bool= (compStyle == height);
+    });
+    return bool;
+});
\ No newline at end of file
diff --git a/js/modernizr/feature-detects/css-vmaxunit.js b/js/modernizr/feature-detects/css-vmaxunit.js
new file mode 100644 (file)
index 0000000..142346b
--- /dev/null
@@ -0,0 +1,14 @@
+// https://github.com/Modernizr/Modernizr/issues/572
+// http://jsfiddle.net/glsee/JDsWQ/4/
+Modernizr.addTest('cssvmaxunit', function(){
+    var bool;
+    Modernizr.testStyles("#modernizr { width: 50vmax; }", function(elem, rule) {
+        var one_vw = window.innerWidth/100,
+            one_vh = window.innerHeight/100,
+            compWidth = parseInt((window.getComputedStyle ?
+                                  getComputedStyle(elem, null) :
+                                  elem.currentStyle)['width'],10);
+        bool = ( parseInt(Math.max(one_vw, one_vh)*50,10) == compWidth );
+    });
+    return bool;
+});
\ No newline at end of file
diff --git a/js/modernizr/feature-detects/css-vminunit.js b/js/modernizr/feature-detects/css-vminunit.js
new file mode 100644 (file)
index 0000000..e6b9881
--- /dev/null
@@ -0,0 +1,14 @@
+// https://github.com/Modernizr/Modernizr/issues/572
+// http://jsfiddle.net/glsee/JRmdq/8/
+Modernizr.addTest('cssvminunit', function(){
+    var bool;
+    Modernizr.testStyles("#modernizr { width: 50vmin; }", function(elem, rule) {
+        var one_vw = window.innerWidth/100,
+            one_vh = window.innerHeight/100,
+            compWidth = parseInt((window.getComputedStyle ?
+                                  getComputedStyle(elem, null) :
+                                  elem.currentStyle)['width'],10);
+        bool = ( parseInt(Math.min(one_vw, one_vh)*50,10) == compWidth );
+    });
+    return bool;
+});
diff --git a/js/modernizr/feature-detects/css-vwunit.js b/js/modernizr/feature-detects/css-vwunit.js
new file mode 100644 (file)
index 0000000..28f8ca2
--- /dev/null
@@ -0,0 +1,14 @@
+// https://github.com/Modernizr/Modernizr/issues/572
+// http://jsfiddle.net/FWeinb/etnYC/
+Modernizr.addTest('cssvwunit', function(){
+    var bool;
+    Modernizr.testStyles("#modernizr { width: 50vw; }", function(elem, rule) {
+        var width = parseInt(window.innerWidth/2,10),
+            compStyle = parseInt((window.getComputedStyle ?
+                      getComputedStyle(elem, null) :
+                      elem.currentStyle)["width"],10);
+        
+        bool= (compStyle == width);
+    });
+    return bool;
+});
diff --git a/js/modernizr/feature-detects/custom-protocol-handler.js b/js/modernizr/feature-detects/custom-protocol-handler.js
new file mode 100644 (file)
index 0000000..2534189
--- /dev/null
@@ -0,0 +1,10 @@
+/*
+       Custom protocol handler support
+       http://developers.whatwg.org/timers.html#custom-handlers
+       
+       Added by @benschwarz
+*/
+
+Modernizr.addTest('customprotocolhandler', function () {
+    return !!navigator.registerProtocolHandler;
+});
diff --git a/js/modernizr/feature-detects/dart.js b/js/modernizr/feature-detects/dart.js
new file mode 100644 (file)
index 0000000..9a8bc82
--- /dev/null
@@ -0,0 +1,6 @@
+// Dart
+// By Theodoor van Donge
+
+// https://chromiumcodereview.appspot.com/9232049/
+
+Modernizr.addTest('dart', !!Modernizr.prefixed('startDart', navigator));
diff --git a/js/modernizr/feature-detects/dataview-api.js b/js/modernizr/feature-detects/dataview-api.js
new file mode 100644 (file)
index 0000000..249bfff
--- /dev/null
@@ -0,0 +1,4 @@
+// DataView 
+// https://developer.mozilla.org/en/JavaScript_typed_arrays/DataView
+// By Addy Osmani
+Modernizr.addTest('dataview', (typeof DataView !== 'undefined' && 'getFloat64' in DataView.prototype));
\ No newline at end of file
diff --git a/js/modernizr/feature-detects/dom-classlist.js b/js/modernizr/feature-detects/dom-classlist.js
new file mode 100644 (file)
index 0000000..c227057
--- /dev/null
@@ -0,0 +1,4 @@
+// classList
+// https://developer.mozilla.org/en/DOM/element.classList
+// By Addy Osmani
+Modernizr.addTest('classlist', 'classList' in document.documentElement);
diff --git a/js/modernizr/feature-detects/dom-createElement-attrs.js b/js/modernizr/feature-detects/dom-createElement-attrs.js
new file mode 100644 (file)
index 0000000..d9a3b11
--- /dev/null
@@ -0,0 +1,11 @@
+// by james a rosen.
+// https://github.com/Modernizr/Modernizr/issues/258
+
+Modernizr.addTest('createelement-attrs', function() {
+  try {
+    return document.createElement("<input name='test' />").getAttribute('name') == 'test';
+  } catch(e) {
+    return false;
+  }
+});
+
diff --git a/js/modernizr/feature-detects/dom-dataset.js b/js/modernizr/feature-detects/dom-dataset.js
new file mode 100644 (file)
index 0000000..810ff50
--- /dev/null
@@ -0,0 +1,9 @@
+
+// dataset API for data-* attributes
+// test by @phiggins42
+
+Modernizr.addTest('dataset', function(){
+  var n = document.createElement("div");
+  n.setAttribute("data-a-b", "c");
+  return !!(n.dataset && n.dataset.aB === "c");
+});
diff --git a/js/modernizr/feature-detects/dom-microdata.js b/js/modernizr/feature-detects/dom-microdata.js
new file mode 100644 (file)
index 0000000..ab0a5d6
--- /dev/null
@@ -0,0 +1,4 @@
+// Microdata support
+// http://www.w3.org/TR/html5/microdata.html
+// By Addy Osmani
+Modernizr.addTest('microdata', !!(document['getItems']));
\ No newline at end of file
diff --git a/js/modernizr/feature-detects/elem-datalist.js b/js/modernizr/feature-detects/elem-datalist.js
new file mode 100644 (file)
index 0000000..4bcdc1f
--- /dev/null
@@ -0,0 +1,12 @@
+
+
+// lol. we already have a test for datalist built in! silly you.
+
+
+// Helpful links while you're here, though..
+
+// http://css-tricks.com/15346-relevant-dropdowns-polyfill-for-datalist/
+// http://miketaylr.com/test/datalist.html
+// http://miketaylr.com/code/datalist.html
+
+Modernizr.addTest('datalistelem', Modernizr.input.list );
diff --git a/js/modernizr/feature-detects/elem-details.js b/js/modernizr/feature-detects/elem-details.js
new file mode 100644 (file)
index 0000000..90501f1
--- /dev/null
@@ -0,0 +1,25 @@
+// By @mathias, based on http://mths.be/axh
+Modernizr.addTest('details', function() {
+    var doc = document,
+        el = doc.createElement('details'),
+        fake,
+        root,
+        diff;
+    if (!('open' in el)) { // return early if possible; thanks @aFarkas!
+        return false;
+    }
+    root = doc.body || (function() {
+        var de = doc.documentElement;
+        fake = true;
+        return de.insertBefore(doc.createElement('body'), de.firstElementChild || de.firstChild);
+    }());
+    el.innerHTML = '<summary>a</summary>b';
+    el.style.display = 'block';
+    root.appendChild(el);
+    diff = el.offsetHeight;
+    el.open = true;
+    diff = diff != el.offsetHeight;
+    root.removeChild(el);
+    fake && root.parentNode.removeChild(root);
+    return diff;
+});
\ No newline at end of file
diff --git a/js/modernizr/feature-detects/elem-output.js b/js/modernizr/feature-detects/elem-output.js
new file mode 100644 (file)
index 0000000..54276b2
--- /dev/null
@@ -0,0 +1,4 @@
+// <output>
+// http://www.whatwg.org/specs/web-apps/current-work/multipage/the-button-element.html#the-output-element
+// by Addy Osmani
+Modernizr.addTest('outputelem', 'value' in document.createElement('output'));
diff --git a/js/modernizr/feature-detects/elem-progress-meter.js b/js/modernizr/feature-detects/elem-progress-meter.js
new file mode 100644 (file)
index 0000000..cfa4bdf
--- /dev/null
@@ -0,0 +1,11 @@
+//By Stefan Wallin
+
+//tests for progressbar-support. All browsers that don't support progressbar returns undefined =)
+Modernizr.addTest("progressbar",function(){
+    return document.createElement('progress').max !== undefined;
+});
+
+//tests for meter-support. All browsers that don't support meters returns undefined =)
+Modernizr.addTest("meter",function(){
+    return document.createElement('meter').max !== undefined;
+});
diff --git a/js/modernizr/feature-detects/elem-ruby.js b/js/modernizr/feature-detects/elem-ruby.js
new file mode 100644 (file)
index 0000000..dbb978f
--- /dev/null
@@ -0,0 +1,53 @@
+// Browser support test for the HTML5 <ruby>, <rt> and <rp> elements
+// http://www.whatwg.org/specs/web-apps/current-work/multipage/text-level-semantics.html#the-ruby-element
+//
+// by @alrra
+
+Modernizr.addTest('ruby', function () {
+
+    var ruby = document.createElement('ruby'),
+        rt = document.createElement('rt'),
+        rp = document.createElement('rp'),
+        docElement = document.documentElement,
+        displayStyleProperty = 'display',
+        fontSizeStyleProperty = 'fontSize'; // 'fontSize' - because it`s only used for IE6 and IE7
+
+    ruby.appendChild(rp);
+    ruby.appendChild(rt);
+    docElement.appendChild(ruby);
+
+    // browsers that support <ruby> hide the <rp> via "display:none"
+    if ( getStyle(rp, displayStyleProperty) == 'none' ||                                                       // for non-IE browsers
+    // but in IE browsers <rp> has "display:inline" so, the test needs other conditions:
+        getStyle(ruby, displayStyleProperty) == 'ruby' && getStyle(rt, displayStyleProperty) == 'ruby-text' || // for IE8 & IE9
+        getStyle(rp, fontSizeStyleProperty) == '6pt' && getStyle(rt, fontSizeStyleProperty) == '6pt' ) {       // for IE6 & IE7
+
+        cleanUp();
+        return true;
+
+    } else {
+        cleanUp();
+        return false;
+    }
+
+    function getStyle( element, styleProperty ) {
+        var result;
+
+        if ( window.getComputedStyle ) {     // for non-IE browsers
+            result = document.defaultView.getComputedStyle(element,null).getPropertyValue(styleProperty);
+        } else if ( element.currentStyle ) { // for IE
+            result = element.currentStyle[styleProperty];
+        }
+
+        return result;
+    }
+
+    function cleanUp() {
+        docElement.removeChild(ruby);
+        // the removed child node still exists in memory, so ...
+        ruby = null;
+        rt = null;
+        rp = null;
+    }
+
+});
diff --git a/js/modernizr/feature-detects/elem-time.js b/js/modernizr/feature-detects/elem-time.js
new file mode 100644 (file)
index 0000000..fc88606
--- /dev/null
@@ -0,0 +1,4 @@
+// <time> element
+// http://www.whatwg.org/specs/web-apps/current-work/multipage/rendering.html#the-time-element-0
+// by Addy Osmani
+Modernizr.addTest('time', 'valueAsDate' in document.createElement('time'));
diff --git a/js/modernizr/feature-detects/elem-track.js b/js/modernizr/feature-detects/elem-track.js
new file mode 100644 (file)
index 0000000..7d8e495
--- /dev/null
@@ -0,0 +1,11 @@
+// Track element + Timed Text Track API
+// http://www.w3.org/TR/html5/video.html#the-track-element
+// http://www.w3.org/TR/html5/media-elements.html#text-track-api
+//
+// While IE10 has implemented the track element, IE10 does not expose the underlying APIs to create timed text tracks by JS (really sad)
+// By Addy Osmani
+Modernizr.addTest({
+       texttrackapi: (typeof (document.createElement('video').addTextTrack) === 'function'),
+       // a more strict test for track including UI support: document.createElement('track').kind === 'subtitles'
+       track: ('kind' in document.createElement('track'))
+});
diff --git a/js/modernizr/feature-detects/emoji.js b/js/modernizr/feature-detects/emoji.js
new file mode 100644 (file)
index 0000000..271db65
--- /dev/null
@@ -0,0 +1,11 @@
+// Requires a Modernizr build with `canvastext` included
+// http://www.modernizr.com/download/#-canvas-canvastext
+Modernizr.addTest('emoji', function() {
+  if (!Modernizr.canvastext) return false;
+  var node = document.createElement('canvas'),
+      ctx = node.getContext('2d');
+  ctx.textBaseline = 'top';
+  ctx.font = '32px Arial';
+  ctx.fillText('\ud83d\ude03', 0, 0); // "smiling face with open mouth" emoji
+  return ctx.getImageData(16, 16, 1, 1).data[0] !== 0;
+});
\ No newline at end of file
diff --git a/js/modernizr/feature-detects/es5-strictmode.js b/js/modernizr/feature-detects/es5-strictmode.js
new file mode 100644 (file)
index 0000000..bffbe95
--- /dev/null
@@ -0,0 +1,7 @@
+// strict mode
+
+// test by @kangax
+
+Modernizr.addTest('strictmode', function(){
+       return (function(){ "use strict"; return !this; })(); 
+});
\ No newline at end of file
diff --git a/js/modernizr/feature-detects/event-deviceorientation-motion.js b/js/modernizr/feature-detects/event-deviceorientation-motion.js
new file mode 100644 (file)
index 0000000..644e671
--- /dev/null
@@ -0,0 +1,11 @@
+//By Shi Chuan
+//Part of Device Access aspect of HTML5, same category as geolocation
+//W3C Editor's Draft at http://dev.w3.org/geo/api/spec-source-orientation.html
+//Implementation by iOS Safari at http://goo.gl/fhce3 and http://goo.gl/rLKz8
+
+
+//test for Device Motion Event support, returns boolean value true/false
+Modernizr.addTest('devicemotion', ('DeviceMotionEvent' in window) );
+
+//test for Device Orientation Event support, returns boolean value true/false
+Modernizr.addTest('deviceorientation', ('DeviceOrientationEvent' in window) );
diff --git a/js/modernizr/feature-detects/exif-orientation.js b/js/modernizr/feature-detects/exif-orientation.js
new file mode 100644 (file)
index 0000000..994c13d
--- /dev/null
@@ -0,0 +1,32 @@
+// EXIF Orientation test
+
+// iOS looks at the EXIF Orientation flag in jpgs and rotates the image
+// accordingly. Looks like most desktop browsers just ignore this data.
+
+// description: www.impulseadventure.com/photo/exif-orientation.html
+
+// Bug trackers:
+//    bugzil.la/298619 (unimplemented)
+//    crbug.com/56845 (looks incomplete)
+//    webk.it/19688 (available upstream but its up all ports to turn on individually)
+//
+
+// detect by Paul Sayre
+
+
+(function(){
+
+  var img = new Image();
+
+  img.onerror = function() {
+      Modernizr.addTest('exif-orientation', function () { return false; });
+  };
+
+  img.onload = function() {
+      Modernizr.addTest('exif-orientation', function () { return img.width !== 2; });
+  };
+
+  // There may be a way to shrink this more, it's a 1x2 white jpg with the orientation flag set to 6
+  img.src = "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/4QAiRXhpZgAASUkqAAgAAAABABIBAwABAAAABgASAAAAAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/2wBDAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/wAARCAABAAIDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD+/iiiigD/2Q==";
+
+})();
diff --git a/js/modernizr/feature-detects/file-api.js b/js/modernizr/feature-detects/file-api.js
new file mode 100644 (file)
index 0000000..7c31e8c
--- /dev/null
@@ -0,0 +1,12 @@
+/**
+ * file tests for the File API specification
+ *   Tests for objects specific to the File API W3C specification without
+ *   being redundant (don't bother testing for Blob since it is assumed
+ *   to be the File object's prototype.
+ *
+ *   Will fail in Safari 5 due to its lack of support for the standards
+ *   defined FileReader object
+ */
+Modernizr.addTest('filereader', function () {
+    return !!(window.File && window.FileList && window.FileReader);
+});
diff --git a/js/modernizr/feature-detects/file-filesystem.js b/js/modernizr/feature-detects/file-filesystem.js
new file mode 100644 (file)
index 0000000..ced6761
--- /dev/null
@@ -0,0 +1,9 @@
+// Filesystem API
+// dev.w3.org/2009/dap/file-system/file-dir-sys.html
+
+// The API will be present in Chrome incognito, but will throw an exception.
+// See crbug.com/93417
+//
+// By Eric Bidelman (@ebidel)
+
+Modernizr.addTest('filesystem', !!Modernizr.prefixed('requestFileSystem', window));
\ No newline at end of file
diff --git a/js/modernizr/feature-detects/forms-fileinput.js b/js/modernizr/feature-detects/forms-fileinput.js
new file mode 100644 (file)
index 0000000..b33eb97
--- /dev/null
@@ -0,0 +1,13 @@
+
+
+// Detects whether input type="file" is available on the platform
+// E.g. iOS < 6 and some android version don't support this
+
+//  It's useful if you want to hide the upload feature of your app on devices that
+//  don't support it (iphone, ipad, etc).
+
+Modernizr.addTest('fileinput', function() {
+    var elem = document.createElement('input');
+    elem.type = 'file';
+    return !elem.disabled;
+});
diff --git a/js/modernizr/feature-detects/forms-formattribute.js b/js/modernizr/feature-detects/forms-formattribute.js
new file mode 100644 (file)
index 0000000..6b8e114
--- /dev/null
@@ -0,0 +1,29 @@
+// Detects whether input form="form_id" is available on the platform
+// E.g. IE 10 (and below), don't support this
+Modernizr.addTest("formattribute", function() {
+       var form = document.createElement("form"),
+               input = document.createElement("input"),
+               div = document.createElement("div"),
+               id = "formtest"+(new Date().getTime()),
+               attr,
+               bool = false;
+
+               form.id = id;
+
+       //IE6/7 confuses the form idl attribute and the form content attribute
+       if(document.createAttribute){
+               attr = document.createAttribute("form");
+               attr.nodeValue = id;
+               input.setAttributeNode(attr);
+               div.appendChild(form);
+               div.appendChild(input);
+
+               document.documentElement.appendChild(div);
+
+               bool = form.elements.length === 1 && input.form == form;
+
+               div.parentNode.removeChild(div);
+       }
+
+       return bool;
+});
\ No newline at end of file
diff --git a/js/modernizr/feature-detects/forms-inputnumber-l10n.js b/js/modernizr/feature-detects/forms-inputnumber-l10n.js
new file mode 100644 (file)
index 0000000..8746b42
--- /dev/null
@@ -0,0 +1,32 @@
+// input[type="number"] localized input/output
+// // Detects whether input type="number" is capable of receiving and
+// // displaying localized numbers, e.g. with comma separator
+// // https://bugs.webkit.org/show_bug.cgi?id=42484
+// // Based on http://trac.webkit.org/browser/trunk/LayoutTests/fast/forms/script-tests/input-number-keyoperation.js?rev=80096#L9
+// // By Peter Janes
+
+Modernizr.addTest('localizedNumber', function() {
+    var doc = document,
+        el = document.createElement('div'),
+        fake,
+        root,
+        input,
+        diff;
+    root = doc.body || (function() {
+        var de = doc.documentElement;
+        fake = true;
+        return de.insertBefore(doc.createElement('body'), de.firstElementChild || de.firstChild);
+    }());
+    el.innerHTML = '<input type="number" value="1.0" step="0.1"/>';
+    input = el.childNodes[0];
+    root.appendChild(el);
+    input.focus();
+    try {
+        doc.execCommand('InsertText', false, '1,1');
+    } catch(e) { // prevent warnings in IE
+    }
+    diff = input.type === 'number' && input.valueAsNumber === 1.1 && input.checkValidity();
+    root.removeChild(el);
+    fake && root.parentNode.removeChild(root);
+    return diff;
+});
diff --git a/js/modernizr/feature-detects/forms-placeholder.js b/js/modernizr/feature-detects/forms-placeholder.js
new file mode 100644 (file)
index 0000000..e68014b
--- /dev/null
@@ -0,0 +1,10 @@
+// testing for placeholder attribute in inputs and textareas
+// re-using Modernizr.input if available
+
+Modernizr.addTest('placeholder', function(){
+
+  return !!( 'placeholder' in ( Modernizr.input    || document.createElement('input')    ) && 
+             'placeholder' in ( Modernizr.textarea || document.createElement('textarea') )
+           );
+
+});
diff --git a/js/modernizr/feature-detects/forms-speechinput.js b/js/modernizr/feature-detects/forms-speechinput.js
new file mode 100644 (file)
index 0000000..48c9021
--- /dev/null
@@ -0,0 +1,19 @@
+// speech input for inputs
+// by @alrra
+
+
+// `webkitSpeech` in elem 
+// doesn`t work correctly in all versions of Chromium based browsers.
+//   It can return false even if they have support for speech i.imgur.com/2Y40n.png
+//  Testing with 'onwebkitspeechchange' seems to fix this problem
+
+// this detect only checks the webkit version because
+// the speech attribute is likely to be deprecated in favor of a JavaScript API.
+// http://lists.w3.org/Archives/Public/public-webapps/2011OctDec/att-1696/speechapi.html
+
+// FIXME: add support for detecting the new spec'd behavior
+
+Modernizr.addTest('speechinput', function(){
+    var elem = document.createElement('input'); 
+    return 'speech' in elem || 'onwebkitspeechchange' in elem; 
+});
\ No newline at end of file
diff --git a/js/modernizr/feature-detects/forms-validation.js b/js/modernizr/feature-detects/forms-validation.js
new file mode 100644 (file)
index 0000000..d52921a
--- /dev/null
@@ -0,0 +1,62 @@
+// This implementation only tests support for interactive form validation.
+// To check validation for a specific type or a specific other constraint,
+// the test can be combined: 
+//    - Modernizr.inputtypes.numer && Modernizr.formvalidation (browser supports rangeOverflow, typeMismatch etc. for type=number)
+//    - Modernizr.input.required && Modernizr.formvalidation (browser supports valueMissing)
+//
+(function(document, Modernizr){
+
+
+  Modernizr.formvalidationapi = false;
+  Modernizr.formvalidationmessage = false;
+
+  Modernizr.addTest('formvalidation', function() {
+    var form = document.createElement('form');
+    if ( !('checkValidity' in form) || !('addEventListener' in form) ) {
+      return false;
+    }
+    if ('reportValidity' in form) {
+      return true;
+    }
+    var invalidFired = false;
+    var input;
+
+    Modernizr.formvalidationapi =  true;
+
+    // Prevent form from being submitted
+    form.addEventListener('submit', function(e) {
+      //Opera does not validate form, if submit is prevented
+      if ( !window.opera ) {
+        e.preventDefault();
+      }
+      e.stopPropagation();
+    }, false);
+
+    // Calling form.submit() doesn't trigger interactive validation,
+    // use a submit button instead
+    //older opera browsers need a name attribute
+    form.innerHTML = '<input name="modTest" required><button></button>';
+
+    Modernizr.testStyles('#modernizr form{position:absolute;top:-99999em}', function( node ) {
+      node.appendChild(form);
+
+      input = form.getElementsByTagName('input')[0];
+
+      // Record whether "invalid" event is fired
+      input.addEventListener('invalid', function(e) {
+        invalidFired = true;
+        e.preventDefault();
+        e.stopPropagation();
+      }, false);
+
+      //Opera does not fully support the validationMessage property
+      Modernizr.formvalidationmessage = !!input.validationMessage;
+
+      // Submit form by clicking submit button
+      form.getElementsByTagName('button')[0].click();
+    });
+
+    return invalidFired;
+  });
+
+})(document, window.Modernizr);
diff --git a/js/modernizr/feature-detects/fullscreen-api.js b/js/modernizr/feature-detects/fullscreen-api.js
new file mode 100644 (file)
index 0000000..7432571
--- /dev/null
@@ -0,0 +1,10 @@
+Modernizr.addTest('fullscreen',function(){
+     for(var i = 0; i < Modernizr._domPrefixes.length; i++) {
+        if( document[Modernizr._domPrefixes[i].toLowerCase() + 'CancelFullScreen'])
+            return true;
+     }
+     return !!document['cancelFullScreen'] || false;
+});
+
+// http://developer.apple.com/library/safari/documentation/AudioVideo/Conceptual/Using_HTML5_Audio_Video/ControllingMediaWithJavaScript/ControllingMediaWithJavaScript.html#//apple_ref/doc/uid/TP40009523-CH3-SW20
+// https://developer.mozilla.org/en/API/Fullscreen
diff --git a/js/modernizr/feature-detects/gamepad.js b/js/modernizr/feature-detects/gamepad.js
new file mode 100644 (file)
index 0000000..0756289
--- /dev/null
@@ -0,0 +1,12 @@
+// GamePad API
+// https://dvcs.w3.org/hg/gamepad/raw-file/default/gamepad.html
+// By Eric Bidelman
+
+// FF has Gamepad API support only in special builds, but not in any release (even behind a flag)
+// Their current implementation has no way to feature detect, only events to bind to.
+//   http://www.html5rocks.com/en/tutorials/doodles/gamepad/#toc-featuredetect
+
+// but a patch will bring them up to date with the spec when it lands (and they'll pass this test)
+//   https://bugzilla.mozilla.org/show_bug.cgi?id=690935
+
+Modernizr.addTest('gamepads', !!Modernizr.prefixed('getGamepads', navigator));
diff --git a/js/modernizr/feature-detects/getusermedia.js b/js/modernizr/feature-detects/getusermedia.js
new file mode 100644 (file)
index 0000000..4c38bec
--- /dev/null
@@ -0,0 +1,5 @@
+// getUserMedia
+// http://www.whatwg.org/specs/web-apps/current-work/multipage/video-conferencing-and-peer-to-peer-communication.html
+// By Eric Bidelman
+
+Modernizr.addTest('getusermedia', !!Modernizr.prefixed('getUserMedia', navigator));
\ No newline at end of file
diff --git a/js/modernizr/feature-detects/ie8compat.js b/js/modernizr/feature-detects/ie8compat.js
new file mode 100644 (file)
index 0000000..c95e56a
--- /dev/null
@@ -0,0 +1,12 @@
+
+// IE8 compat mode aka Fake IE7
+// by Erich Ocean
+
+// In this case, IE8 will be acting as IE7. You may choose to remove features in this case.
+
+// related:
+// james.padolsey.com/javascript/detect-ie-in-js-using-conditional-comments/
+
+Modernizr.addTest('ie8compat',function(){
+    return (!window.addEventListener && document.documentMode && document.documentMode === 7);
+});
diff --git a/js/modernizr/feature-detects/iframe-sandbox.js b/js/modernizr/feature-detects/iframe-sandbox.js
new file mode 100644 (file)
index 0000000..869c94a
--- /dev/null
@@ -0,0 +1,5 @@
+// Test for `sandbox` attribute in iframes.
+//
+// Spec: http://www.whatwg.org/specs/web-apps/current-work/multipage/the-iframe-element.html#attr-iframe-sandbox
+
+Modernizr.addTest('sandbox', 'sandbox' in document.createElement('iframe'));
diff --git a/js/modernizr/feature-detects/iframe-seamless.js b/js/modernizr/feature-detects/iframe-seamless.js
new file mode 100644 (file)
index 0000000..247b9e6
--- /dev/null
@@ -0,0 +1,5 @@
+// Test for `seamless` attribute in iframes.
+//
+// Spec: http://www.whatwg.org/specs/web-apps/current-work/multipage/the-iframe-element.html#attr-iframe-seamless
+
+Modernizr.addTest('seamless', 'seamless' in document.createElement('iframe'));
diff --git a/js/modernizr/feature-detects/iframe-srcdoc.js b/js/modernizr/feature-detects/iframe-srcdoc.js
new file mode 100644 (file)
index 0000000..1769858
--- /dev/null
@@ -0,0 +1,5 @@
+// Test for `srcdoc` attribute in iframes.
+//
+// Spec: http://www.whatwg.org/specs/web-apps/current-work/multipage/the-iframe-element.html#attr-iframe-srcdoc
+
+Modernizr.addTest('srcdoc', 'srcdoc' in document.createElement('iframe'));
diff --git a/js/modernizr/feature-detects/img-apng.js b/js/modernizr/feature-detects/img-apng.js
new file mode 100644 (file)
index 0000000..069ac93
--- /dev/null
@@ -0,0 +1,26 @@
+// Animated PNG
+// http://en.wikipedia.org/wiki/APNG
+// By Addy Osmani
+(function () {
+
+    if (!Modernizr.canvas) return false;
+    
+    var image = new Image(),
+        canvas = document.createElement('canvas'),
+        ctx = canvas.getContext('2d');
+
+
+    image.onload = function () {
+        Modernizr.addTest('apng', function () {
+            if (typeof canvas.getContext == 'undefined') {
+                return false;
+            } else {
+                ctx.drawImage(image, 0, 0);
+                return ctx.getImageData(0, 0, 1, 1).data[3] === 0;
+            }
+        });
+    };
+
+    image.src = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAACGFjVEwAAAABAAAAAcMq2TYAAAANSURBVAiZY2BgYPgPAAEEAQB9ssjfAAAAGmZjVEwAAAAAAAAAAQAAAAEAAAAAAAAAAAD6A+gBAbNU+2sAAAARZmRBVAAAAAEImWNgYGBgAAAABQAB6MzFdgAAAABJRU5ErkJggg==";
+
+}());
diff --git a/js/modernizr/feature-detects/img-webp.js b/js/modernizr/feature-detects/img-webp.js
new file mode 100644 (file)
index 0000000..360cdf8
--- /dev/null
@@ -0,0 +1,20 @@
+// code.google.com/speed/webp/
+// by rich bradshaw, ryan seddon, and paul irish
+
+
+// This test is asynchronous. Watch out.
+
+(function(){
+
+  var image = new Image();
+
+  image.onerror = function() {
+      Modernizr.addTest('webp', false);
+  };  
+  image.onload = function() {
+      Modernizr.addTest('webp', function() { return image.width == 1; });
+  };
+
+  image.src = 'data:image/webp;base64,UklGRiwAAABXRUJQVlA4ICAAAAAUAgCdASoBAAEAL/3+/3+CAB/AAAFzrNsAAP5QAAAAAA==';
+
+}());
\ No newline at end of file
diff --git a/js/modernizr/feature-detects/json.js b/js/modernizr/feature-detects/json.js
new file mode 100644 (file)
index 0000000..af58064
--- /dev/null
@@ -0,0 +1,7 @@
+// native JSON support.
+// developer.mozilla.org/en/JSON
+
+// this will also succeed if you've loaded the JSON2.js polyfill ahead of time
+//   ... but that should be obvious. :)
+
+Modernizr.addTest('json', !!window.JSON && !!JSON.parse);
diff --git a/js/modernizr/feature-detects/lists-reversed.js b/js/modernizr/feature-detects/lists-reversed.js
new file mode 100644 (file)
index 0000000..22fd92c
--- /dev/null
@@ -0,0 +1,6 @@
+
+// impressivewebs.com/reverse-ordered-lists-html5
+// polyfill: github.com/impressivewebs/HTML5-Reverse-Ordered-Lists
+
+
+Modernizr.addTest('olreversed', 'reversed' in document.createElement('ol'));
diff --git a/js/modernizr/feature-detects/mathml.js b/js/modernizr/feature-detects/mathml.js
new file mode 100644 (file)
index 0000000..e1c907a
--- /dev/null
@@ -0,0 +1,23 @@
+// MathML
+// http://www.w3.org/Math/ 
+// By Addy Osmani
+// Based on work by Davide (@dpvc) and David (@davidcarlisle)
+// in https://github.com/mathjax/MathJax/issues/182
+
+Modernizr.addTest('mathml', function(){
+       var hasMathML = false;
+       if ( document.createElementNS ) {
+       var ns = "http://www.w3.org/1998/Math/MathML",
+           div = document.createElement("div");
+           div.style.position = "absolute"; 
+       var mfrac = div.appendChild(document.createElementNS(ns,"math"))
+                      .appendChild(document.createElementNS(ns,"mfrac"));
+       mfrac.appendChild(document.createElementNS(ns,"mi"))
+            .appendChild(document.createTextNode("xx"));
+       mfrac.appendChild(document.createElementNS(ns,"mi"))
+            .appendChild(document.createTextNode("yy"));
+       document.body.appendChild(div);
+       hasMathML = div.offsetHeight > div.offsetWidth;
+       }
+       return hasMathML;
+});
\ No newline at end of file
diff --git a/js/modernizr/feature-detects/network-connection.js b/js/modernizr/feature-detects/network-connection.js
new file mode 100644 (file)
index 0000000..242cdfe
--- /dev/null
@@ -0,0 +1,22 @@
+// determining low-bandwidth via navigator.connection
+
+// There are two iterations of the navigator.connection interface:
+
+// The first is present in Android 2.2+ and only in the Browser (not WebView)
+// : docs.phonegap.com/en/1.2.0/phonegap_connection_connection.md.html#connection.type
+// : davidbcalhoun.com/2010/using-navigator-connection-android
+
+// The second is specced at dev.w3.org/2009/dap/netinfo/ and perhaps landing in WebKit
+// : bugs.webkit.org/show_bug.cgi?id=73528
+
+// unknown devices are assumed as fast
+// for more rigorous network testing, consider boomerang.js: github.com/bluesmoon/boomerang/
+
+Modernizr.addTest('lowbandwidth', function() {
+
+  var connection = navigator.connection || { type: 0 }; // polyfill
+
+  return connection.type == 3 || // connection.CELL_2G
+      connection.type == 4 || // connection.CELL_3G
+      /^[23]g$/.test(connection.type); // string value in new spec
+});
diff --git a/js/modernizr/feature-detects/network-eventsource.js b/js/modernizr/feature-detects/network-eventsource.js
new file mode 100644 (file)
index 0000000..ac94065
--- /dev/null
@@ -0,0 +1,5 @@
+
+// server sent events aka eventsource
+// dev.w3.org/html5/eventsource/
+
+Modernizr.addTest('eventsource', !!window.EventSource);
diff --git a/js/modernizr/feature-detects/network-xhr2.js b/js/modernizr/feature-detects/network-xhr2.js
new file mode 100644 (file)
index 0000000..8d3fb51
--- /dev/null
@@ -0,0 +1,13 @@
+
+
+// XML HTTP Request Level 2
+// www.w3.org/TR/XMLHttpRequest2/
+
+// Much more details at github.com/Modernizr/Modernizr/issues/385
+
+// all three of these details report consistently across all target browsers:
+//   !!(window.ProgressEvent);
+//   !!(window.FormData);
+//   window.XMLHttpRequest && "withCredentials" in new XMLHttpRequest;
+
+Modernizr.addTest('xhr2', 'FormData' in window);
diff --git a/js/modernizr/feature-detects/notification.js b/js/modernizr/feature-detects/notification.js
new file mode 100644 (file)
index 0000000..92d1eef
--- /dev/null
@@ -0,0 +1,10 @@
+// Notifications
+// By Theodoor van Donge
+
+// window.webkitNotifications is only used by Chrome 
+//     http://www.html5rocks.com/en/tutorials/notifications/quick/
+
+// window.Notification only exist in the draft specs 
+//     http://dev.w3.org/2006/webapi/WebNotifications/publish/Notifications.html#idl-if-Notification
+
+Modernizr.addTest('notification', 'Notification' in window && 'permission' in window.Notification && 'requestPermission' in window.Notification);
diff --git a/js/modernizr/feature-detects/performance.js b/js/modernizr/feature-detects/performance.js
new file mode 100644 (file)
index 0000000..903c5c9
--- /dev/null
@@ -0,0 +1,5 @@
+// Navigation Timing (Performance)
+// https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/NavigationTiming/
+// http://www.html5rocks.com/en/tutorials/webperformance/basics/
+// By Scott Murphy (uxder)
+Modernizr.addTest('performance', !!Modernizr.prefixed('performance', window));
\ No newline at end of file
diff --git a/js/modernizr/feature-detects/pointerlock-api.js b/js/modernizr/feature-detects/pointerlock-api.js
new file mode 100644 (file)
index 0000000..07eb07e
--- /dev/null
@@ -0,0 +1,4 @@
+// https://developer.mozilla.org/en-US/docs/API/Pointer_Lock_API
+
+Modernizr.addTest('pointerlock',!!Modernizr.prefixed('pointerLockElement', document));
+
diff --git a/js/modernizr/feature-detects/quota-management-api.js b/js/modernizr/feature-detects/quota-management-api.js
new file mode 100644 (file)
index 0000000..5ce2b02
--- /dev/null
@@ -0,0 +1,11 @@
+// Quota Storage Management API
+// This API can be used to check how much quota an origin is using and request more
+
+// Currently only implemented in Chrome.
+// https://developers.google.com/chrome/whitepapers/storage
+// By Addy Osmani
+
+Modernizr.addTest('quotamanagement', function(){
+  var storage = Modernizr.prefixed('StorageInfo', window);
+  return !!(storage && 'TEMPORARY' in storage && 'PERSISTENT' in storage);
+});
diff --git a/js/modernizr/feature-detects/requestanimationframe.js b/js/modernizr/feature-detects/requestanimationframe.js
new file mode 100644 (file)
index 0000000..5ac4bcf
--- /dev/null
@@ -0,0 +1,7 @@
+
+// requestAnimationFrame
+// Offload animation repainting to browser for optimized performance. 
+// http://dvcs.w3.org/hg/webperf/raw-file/tip/specs/RequestAnimationFrame/Overview.html
+// By Addy Osmani
+
+Modernizr.addTest('raf', !!Modernizr.prefixed('requestAnimationFrame', window));
\ No newline at end of file
diff --git a/js/modernizr/feature-detects/script-async.js b/js/modernizr/feature-detects/script-async.js
new file mode 100644 (file)
index 0000000..d80d04b
--- /dev/null
@@ -0,0 +1,3 @@
+// async script
+// By Theodoor van Donge
+Modernizr.addTest('scriptasync', 'async' in document.createElement('script'));
\ No newline at end of file
diff --git a/js/modernizr/feature-detects/script-defer.js b/js/modernizr/feature-detects/script-defer.js
new file mode 100644 (file)
index 0000000..782f14a
--- /dev/null
@@ -0,0 +1,3 @@
+// defer script
+// By Theodoor van Donge
+Modernizr.addTest('scriptdefer', 'defer' in document.createElement('script'));
\ No newline at end of file
diff --git a/js/modernizr/feature-detects/style-scoped.js b/js/modernizr/feature-detects/style-scoped.js
new file mode 100644 (file)
index 0000000..3add1b0
--- /dev/null
@@ -0,0 +1,6 @@
+// Browser support test for <style scoped>
+// http://www.w3.org/TR/html5/the-style-element.html#attr-style-scoped
+//
+// by @alrra
+
+Modernizr.addTest( 'stylescoped', 'scoped' in document.createElement('style') );
diff --git a/js/modernizr/feature-detects/svg-filters.js b/js/modernizr/feature-detects/svg-filters.js
new file mode 100644 (file)
index 0000000..d289b9d
--- /dev/null
@@ -0,0 +1,13 @@
+// Detect support for svg filters - http://www.w3.org/TR/SVG11/filters.html.
+// Should fail in Safari: http://stackoverflow.com/questions/9739955/feature-detecting-support-for-svg-filters.
+// detect by erik dahlstrom
+
+Modernizr.addTest('svgfilters', function(){
+       var result = false;
+    try {
+      result = typeof SVGFEColorMatrixElement !== undefined &&
+               SVGFEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_SATURATE == 2;
+    }
+    catch(e) {}
+    return result;
+});
diff --git a/js/modernizr/feature-detects/unicode.js b/js/modernizr/feature-detects/unicode.js
new file mode 100644 (file)
index 0000000..39908bf
--- /dev/null
@@ -0,0 +1,32 @@
+/**
+ * Unicode special character support
+ * 
+ * Detection is made by testing missing glyph box rendering against star character
+ * If widths are the same, this "probably" means the browser didn't support the star character and rendered a glyph box instead
+ * Just need to ensure the font characters have different widths
+ * 
+ * Warning : positive Unicode support doesn't mean you can use it inside <title>, this seams more related to OS & Language packs
+ */
+Modernizr.addTest('unicode', function() {
+       
+       
+       var bool,
+
+               missingGlyph = document.createElement('span'),
+               
+               star = document.createElement('span');
+
+       Modernizr.testStyles('#modernizr{font-family:Arial,sans;font-size:300em;}', function(node) {
+
+               missingGlyph.innerHTML = '&#5987';
+               star.innerHTML = '&#9734';              
+               
+               node.appendChild(missingGlyph);
+               node.appendChild(star);
+               
+               bool = 'offsetWidth' in missingGlyph && missingGlyph.offsetWidth !== star.offsetWidth;
+       });
+
+       return bool;
+
+});
\ No newline at end of file
diff --git a/js/modernizr/feature-detects/url-data-uri.js b/js/modernizr/feature-detects/url-data-uri.js
new file mode 100644 (file)
index 0000000..e6479a2
--- /dev/null
@@ -0,0 +1,26 @@
+// data uri test.
+// https://github.com/Modernizr/Modernizr/issues/14
+
+// This test is asynchronous. Watch out.
+
+
+// in IE7 in HTTPS this can cause a Mixed Content security popup. 
+//  github.com/Modernizr/Modernizr/issues/362
+// To avoid that you can create a new iframe and inject this.. perhaps..
+
+
+(function(){
+
+  var datauri = new Image();
+
+
+  datauri.onerror = function() {
+      Modernizr.addTest('datauri', function () { return false; });
+  };  
+  datauri.onload = function() {
+      Modernizr.addTest('datauri', function () { return (datauri.width == 1 && datauri.height == 1); });
+  };
+
+  datauri.src = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==";
+
+})();
diff --git a/js/modernizr/feature-detects/userdata.js b/js/modernizr/feature-detects/userdata.js
new file mode 100644 (file)
index 0000000..79d921e
--- /dev/null
@@ -0,0 +1,7 @@
+// test if IE userdata supported
+// msdn.microsoft.com/en-us/library/ms531424(v=vs.85).aspx
+// test by @stereobooster
+
+Modernizr.addTest('userdata', function(){
+  return !!document.createElement('div').addBehavior;
+});
diff --git a/js/modernizr/feature-detects/vibration.js b/js/modernizr/feature-detects/vibration.js
new file mode 100644 (file)
index 0000000..034c25d
--- /dev/null
@@ -0,0 +1,4 @@
+// Vibration API
+// http://www.w3.org/TR/vibration/
+// https://developer.mozilla.org/en/DOM/window.navigator.mozVibrate
+Modernizr.addTest('vibrate', !!Modernizr.prefixed('vibrate', navigator));
\ No newline at end of file
diff --git a/js/modernizr/feature-detects/web-intents.js b/js/modernizr/feature-detects/web-intents.js
new file mode 100644 (file)
index 0000000..d0557fe
--- /dev/null
@@ -0,0 +1,6 @@
+// Tests for the ability to use Web Intents (http://webintents.org).
+// By Eric Bidelman
+
+Modernizr.addTest('webintents', function() {
+  return !!Modernizr.prefixed('startActivity', navigator);
+});
diff --git a/js/modernizr/feature-detects/webgl-extensions.js b/js/modernizr/feature-detects/webgl-extensions.js
new file mode 100644 (file)
index 0000000..c005c00
--- /dev/null
@@ -0,0 +1,42 @@
+
+// Grab the WebGL extensions currently supported and add to the Modernizr.webgl object
+// spec: www.khronos.org/registry/webgl/specs/latest/#5.13.14
+
+// based on code from ilmari heikkinen
+// code.google.com/p/graphics-detect/source/browse/js/detect.js
+
+
+(function(){
+
+    if (!Modernizr.webgl) return;
+
+    var canvas, ctx, exts;
+
+    try {
+        canvas  = document.createElement('canvas');
+        ctx     = canvas.getContext('webgl') || canvas.getContext('experimental-webgl');
+        exts    = ctx.getSupportedExtensions();
+    }
+    catch (e) {
+        return;
+    }
+
+    if (ctx === undefined) {
+        Modernizr.webgl = new Boolean(false);
+    }
+    else {
+        Modernizr.webgl = new Boolean(true);
+    }
+
+
+    for (var i = -1, len = exts.length; ++i < len; ){
+        Modernizr.webgl[exts[i]] = true;
+    }
+
+    // hack for addressing modernizr testsuite failures. sorry.
+    if (window.TEST && TEST.audvid){
+        TEST.audvid.push('webgl');
+    }
+
+    canvas = undefined;
+})();
\ No newline at end of file
diff --git a/js/modernizr/feature-detects/websockets-binary.js b/js/modernizr/feature-detects/websockets-binary.js
new file mode 100644 (file)
index 0000000..8f549ce
--- /dev/null
@@ -0,0 +1,20 @@
+
+// binaryType is truthy if there is support.. returns "blob" in new-ish chrome.
+// plus.google.com/115535723976198353696/posts/ERN6zYozENV
+// github.com/Modernizr/Modernizr/issues/370
+
+Modernizr.addTest('websocketsbinary', function() {
+  var protocol = 'https:'==location.protocol?'wss':'ws',
+  protoBin;
+
+  if('WebSocket' in window) {
+    if( protoBin = 'binaryType' in WebSocket.prototype ) {
+      return protoBin;
+    }
+    try {
+      return !!(new WebSocket(protocol+'://.').binaryType);
+    } catch (e){}
+  }
+
+  return false;
+});
diff --git a/js/modernizr/feature-detects/window-framed.js b/js/modernizr/feature-detects/window-framed.js
new file mode 100644 (file)
index 0000000..f8a6704
--- /dev/null
@@ -0,0 +1,8 @@
+
+// tests if page is iframed
+
+// github.com/Modernizr/Modernizr/issues/242
+
+Modernizr.addTest('framed', function(){
+  return window.location != top.location;
+});
diff --git a/js/modernizr/feature-detects/workers-blobworkers.js b/js/modernizr/feature-detects/workers-blobworkers.js
new file mode 100644 (file)
index 0000000..33e82eb
--- /dev/null
@@ -0,0 +1,66 @@
+// by jussi-kalliokoski
+
+
+// This test is asynchronous. Watch out.
+
+// The test will potentially add garbage to console.
+
+(function(){
+  try {
+    // we're avoiding using Modernizr._domPrefixes as the prefix capitalization on
+    // these guys are notoriously peculiar.
+    var BlobBuilder = window.MozBlobBuilder || window.WebKitBlobBuilder || window.MSBlobBuilder || window.OBlobBuilder || window.BlobBuilder;
+    var URL         = window.MozURL || window.webkitURL || window.MSURL || window.OURL || window.URL;
+    var data    = 'Modernizr',
+        blob,
+        bb,
+        worker,
+        url,
+        timeout,
+        scriptText = 'this.onmessage=function(e){postMessage(e.data)}';
+
+    try {
+      blob = new Blob([scriptText], {type:'text/javascript'});
+    } catch(e) {
+      // we'll fall back to the deprecated BlobBuilder
+    }
+    if (!blob) {
+      bb = new BlobBuilder();
+      bb.append(scriptText);
+      blob = bb.getBlob();
+    }
+
+    url = URL.createObjectURL(blob);
+    worker = new Worker(url);
+
+    worker.onmessage = function(e) {
+      Modernizr.addTest('blobworkers', data === e.data);
+      cleanup();
+    };
+
+    // Just in case...
+    worker.onerror = fail;
+    timeout = setTimeout(fail, 200);
+
+    worker.postMessage(data);
+  } catch (e) {
+    fail();
+  }
+
+  function fail() {
+    Modernizr.addTest('blobworkers', false);
+    cleanup();
+  }
+
+  function cleanup() {
+    if (url) {
+      URL.revokeObjectURL(url);
+    }
+    if (worker) {
+      worker.terminate();
+    }
+    if (timeout) {
+      clearTimeout(timeout);
+    }
+  }
+}());
diff --git a/js/modernizr/feature-detects/workers-dataworkers.js b/js/modernizr/feature-detects/workers-dataworkers.js
new file mode 100644 (file)
index 0000000..efa95a5
--- /dev/null
@@ -0,0 +1,34 @@
+// by jussi-kalliokoski
+
+
+// This test is asynchronous. Watch out.
+
+// The test will potentially add garbage to console.
+
+(function(){
+  try {
+    var data    = 'Modernizr',
+        worker  = new Worker('data:text/javascript;base64,dGhpcy5vbm1lc3NhZ2U9ZnVuY3Rpb24oZSl7cG9zdE1lc3NhZ2UoZS5kYXRhKX0=');
+
+    worker.onmessage = function(e) {
+      worker.terminate();
+      Modernizr.addTest('dataworkers', data === e.data);
+      worker = null;
+    };
+
+    // Just in case...
+    worker.onerror = function() {
+      Modernizr.addTest('dataworkers', false);
+      worker = null;
+    };
+
+    setTimeout(function() {
+        Modernizr.addTest('dataworkers', false);
+    }, 200);
+
+    worker.postMessage(data);
+
+  } catch (e) {
+    Modernizr.addTest('dataworkers', false);
+  }
+}());
diff --git a/js/modernizr/feature-detects/workers-sharedworkers.js b/js/modernizr/feature-detects/workers-sharedworkers.js
new file mode 100644 (file)
index 0000000..a9d78eb
--- /dev/null
@@ -0,0 +1,3 @@
+Modernizr.addTest('sharedworkers', function(){
+  return !!window.SharedWorker;
+});
\ No newline at end of file
diff --git a/js/modernizr/grunt.js b/js/modernizr/grunt.js
new file mode 100644 (file)
index 0000000..ed591da
--- /dev/null
@@ -0,0 +1,69 @@
+/*global module */
+module.exports = function( grunt ) {
+    'use strict';
+
+    grunt.initConfig({
+        meta: {
+          version: '2.8.3',
+          banner: '/*!\n' +
+            ' * Modernizr v<%= meta.version %>\n' +
+            ' * www.modernizr.com\n *\n' +
+            ' * Copyright (c) Faruk Ates, Paul Irish, Alex Sexton\n' +
+            ' * Available under the BSD and MIT licenses: www.modernizr.com/license/\n */'
+        },
+        qunit: {
+            files: ['test/index.html']
+        },
+        lint: {
+            files: [
+                'grunt.js',
+                'modernizr.js',
+                'feature-detects/*.js'
+            ]
+        },
+        min: {
+            dist: {
+                src: [
+                    '<banner:meta.banner>',
+                    'modernizr.js'
+                ],
+                dest: 'modernizr.min.js'
+            }
+        },
+        watch: {
+            files: '<config:lint.files>',
+            tasks: 'lint'
+        },
+        jshint: {
+            options: {
+                boss: true,
+                browser: true,
+                curly: false,
+                devel: true,
+                eqeqeq: false,
+                eqnull: true,
+                expr: true,
+                evil: true,
+                immed: false,
+                laxcomma: true,
+                newcap: false,
+                noarg: true,
+                smarttabs: true,
+                sub: true,
+                undef: true
+            },
+            globals: {
+                Modernizr: true,
+                DocumentTouch: true,
+                TEST: true,
+                SVGFEColorMatrixElement : true,
+                Blob: true
+            }
+        }
+    });
+
+    grunt.registerTask('default', 'min');
+
+    // Travis CI task.
+    grunt.registerTask('travis', 'qunit');
+};
diff --git a/js/modernizr/modernizr.js b/js/modernizr/modernizr.js
new file mode 100644 (file)
index 0000000..3365339
--- /dev/null
@@ -0,0 +1,1406 @@
+/*!
+ * Modernizr v2.8.3
+ * www.modernizr.com
+ *
+ * Copyright (c) Faruk Ates, Paul Irish, Alex Sexton
+ * Available under the BSD and MIT licenses: www.modernizr.com/license/
+ */
+
+/*
+ * Modernizr tests which native CSS3 and HTML5 features are available in
+ * the current UA and makes the results available to you in two ways:
+ * as properties on a global Modernizr object, and as classes on the
+ * <html> element. This information allows you to progressively enhance
+ * your pages with a granular level of control over the experience.
+ *
+ * Modernizr has an optional (not included) conditional resource loader
+ * called Modernizr.load(), based on Yepnope.js (yepnopejs.com).
+ * To get a build that includes Modernizr.load(), as well as choosing
+ * which tests to include, go to www.modernizr.com/download/
+ *
+ * Authors        Faruk Ates, Paul Irish, Alex Sexton
+ * Contributors   Ryan Seddon, Ben Alman
+ */
+
+window.Modernizr = (function( window, document, undefined ) {
+
+    var version = '2.8.3',
+
+    Modernizr = {},
+
+    /*>>cssclasses*/
+    // option for enabling the HTML classes to be added
+    enableClasses = true,
+    /*>>cssclasses*/
+
+    docElement = document.documentElement,
+
+    /**
+     * Create our "modernizr" element that we do most feature tests on.
+     */
+    mod = 'modernizr',
+    modElem = document.createElement(mod),
+    mStyle = modElem.style,
+
+    /**
+     * Create the input element for various Web Forms feature tests.
+     */
+    inputElem /*>>inputelem*/ = document.createElement('input') /*>>inputelem*/ ,
+
+    /*>>smile*/
+    smile = ':)',
+    /*>>smile*/
+
+    toString = {}.toString,
+
+    // TODO :: make the prefixes more granular
+    /*>>prefixes*/
+    // List of property values to set for css tests. See ticket #21
+    prefixes = ' -webkit- -moz- -o- -ms- '.split(' '),
+    /*>>prefixes*/
+
+    /*>>domprefixes*/
+    // Following spec is to expose vendor-specific style properties as:
+    //   elem.style.WebkitBorderRadius
+    // and the following would be incorrect:
+    //   elem.style.webkitBorderRadius
+
+    // Webkit ghosts their properties in lowercase but Opera & Moz do not.
+    // Microsoft uses a lowercase `ms` instead of the correct `Ms` in IE8+
+    //   erik.eae.net/archives/2008/03/10/21.48.10/
+
+    // More here: github.com/Modernizr/Modernizr/issues/issue/21
+    omPrefixes = 'Webkit Moz O ms',
+
+    cssomPrefixes = omPrefixes.split(' '),
+
+    domPrefixes = omPrefixes.toLowerCase().split(' '),
+    /*>>domprefixes*/
+
+    /*>>ns*/
+    ns = {'svg': 'http://www.w3.org/2000/svg'},
+    /*>>ns*/
+
+    tests = {},
+    inputs = {},
+    attrs = {},
+
+    classes = [],
+
+    slice = classes.slice,
+
+    featureName, // used in testing loop
+
+
+    /*>>teststyles*/
+    // Inject element with style element and some CSS rules
+    injectElementWithStyles = function( rule, callback, nodes, testnames ) {
+
+      var style, ret, node, docOverflow,
+          div = document.createElement('div'),
+          // After page load injecting a fake body doesn't work so check if body exists
+          body = document.body,
+          // IE6 and 7 won't return offsetWidth or offsetHeight unless it's in the body element, so we fake it.
+          fakeBody = body || document.createElement('body');
+
+      if ( parseInt(nodes, 10) ) {
+          // In order not to give false positives we create a node for each test
+          // This also allows the method to scale for unspecified uses
+          while ( nodes-- ) {
+              node = document.createElement('div');
+              node.id = testnames ? testnames[nodes] : mod + (nodes + 1);
+              div.appendChild(node);
+          }
+      }
+
+      // <style> elements in IE6-9 are considered 'NoScope' elements and therefore will be removed
+      // when injected with innerHTML. To get around this you need to prepend the 'NoScope' element
+      // with a 'scoped' element, in our case the soft-hyphen entity as it won't mess with our measurements.
+      // msdn.microsoft.com/en-us/library/ms533897%28VS.85%29.aspx
+      // Documents served as xml will throw if using &shy; so use xml friendly encoded version. See issue #277
+      style = ['&#173;','<style id="s', mod, '">', rule, '</style>'].join('');
+      div.id = mod;
+      // IE6 will false positive on some tests due to the style element inside the test div somehow interfering offsetHeight, so insert it into body or fakebody.
+      // Opera will act all quirky when injecting elements in documentElement when page is served as xml, needs fakebody too. #270
+      (body ? div : fakeBody).innerHTML += style;
+      fakeBody.appendChild(div);
+      if ( !body ) {
+          //avoid crashing IE8, if background image is used
+          fakeBody.style.background = '';
+          //Safari 5.13/5.1.4 OSX stops loading if ::-webkit-scrollbar is used and scrollbars are visible
+          fakeBody.style.overflow = 'hidden';
+          docOverflow = docElement.style.overflow;
+          docElement.style.overflow = 'hidden';
+          docElement.appendChild(fakeBody);
+      }
+
+      ret = callback(div, rule);
+      // If this is done after page load we don't want to remove the body so check if body exists
+      if ( !body ) {
+          fakeBody.parentNode.removeChild(fakeBody);
+          docElement.style.overflow = docOverflow;
+      } else {
+          div.parentNode.removeChild(div);
+      }
+
+      return !!ret;
+
+    },
+    /*>>teststyles*/
+
+    /*>>mq*/
+    // adapted from matchMedia polyfill
+    // by Scott Jehl and Paul Irish
+    // gist.github.com/786768
+    testMediaQuery = function( mq ) {
+
+      var matchMedia = window.matchMedia || window.msMatchMedia;
+      if ( matchMedia ) {
+        return matchMedia(mq) && matchMedia(mq).matches || false;
+      }
+
+      var bool;
+
+      injectElementWithStyles('@media ' + mq + ' { #' + mod + ' { position: absolute; } }', function( node ) {
+        bool = (window.getComputedStyle ?
+                  getComputedStyle(node, null) :
+                  node.currentStyle)['position'] == 'absolute';
+      });
+
+      return bool;
+
+     },
+     /*>>mq*/
+
+
+    /*>>hasevent*/
+    //
+    // isEventSupported determines if a given element supports the given event
+    // kangax.github.com/iseventsupported/
+    //
+    // The following results are known incorrects:
+    //   Modernizr.hasEvent("webkitTransitionEnd", elem) // false negative
+    //   Modernizr.hasEvent("textInput") // in Webkit. github.com/Modernizr/Modernizr/issues/333
+    //   ...
+    isEventSupported = (function() {
+
+      var TAGNAMES = {
+        'select': 'input', 'change': 'input',
+        'submit': 'form', 'reset': 'form',
+        'error': 'img', 'load': 'img', 'abort': 'img'
+      };
+
+      function isEventSupported( eventName, element ) {
+
+        element = element || document.createElement(TAGNAMES[eventName] || 'div');
+        eventName = 'on' + eventName;
+
+        // When using `setAttribute`, IE skips "unload", WebKit skips "unload" and "resize", whereas `in` "catches" those
+        var isSupported = eventName in element;
+
+        if ( !isSupported ) {
+          // If it has no `setAttribute` (i.e. doesn't implement Node interface), try generic element
+          if ( !element.setAttribute ) {
+            element = document.createElement('div');
+          }
+          if ( element.setAttribute && element.removeAttribute ) {
+            element.setAttribute(eventName, '');
+            isSupported = is(element[eventName], 'function');
+
+            // If property was created, "remove it" (by setting value to `undefined`)
+            if ( !is(element[eventName], 'undefined') ) {
+              element[eventName] = undefined;
+            }
+            element.removeAttribute(eventName);
+          }
+        }
+
+        element = null;
+        return isSupported;
+      }
+      return isEventSupported;
+    })(),
+    /*>>hasevent*/
+
+    // TODO :: Add flag for hasownprop ? didn't last time
+
+    // hasOwnProperty shim by kangax needed for Safari 2.0 support
+    _hasOwnProperty = ({}).hasOwnProperty, hasOwnProp;
+
+    if ( !is(_hasOwnProperty, 'undefined') && !is(_hasOwnProperty.call, 'undefined') ) {
+      hasOwnProp = function (object, property) {
+        return _hasOwnProperty.call(object, property);
+      };
+    }
+    else {
+      hasOwnProp = function (object, property) { /* yes, this can give false positives/negatives, but most of the time we don't care about those */
+        return ((property in object) && is(object.constructor.prototype[property], 'undefined'));
+      };
+    }
+
+    // Adapted from ES5-shim https://github.com/kriskowal/es5-shim/blob/master/es5-shim.js
+    // es5.github.com/#x15.3.4.5
+
+    if (!Function.prototype.bind) {
+      Function.prototype.bind = function bind(that) {
+
+        var target = this;
+
+        if (typeof target != "function") {
+            throw new TypeError();
+        }
+
+        var args = slice.call(arguments, 1),
+            bound = function () {
+
+            if (this instanceof bound) {
+
+              var F = function(){};
+              F.prototype = target.prototype;
+              var self = new F();
+
+              var result = target.apply(
+                  self,
+                  args.concat(slice.call(arguments))
+              );
+              if (Object(result) === result) {
+                  return result;
+              }
+              return self;
+
+            } else {
+
+              return target.apply(
+                  that,
+                  args.concat(slice.call(arguments))
+              );
+
+            }
+
+        };
+
+        return bound;
+      };
+    }
+
+    /**
+     * setCss applies given styles to the Modernizr DOM node.
+     */
+    function setCss( str ) {
+        mStyle.cssText = str;
+    }
+
+    /**
+     * setCssAll extrapolates all vendor-specific css strings.
+     */
+    function setCssAll( str1, str2 ) {
+        return setCss(prefixes.join(str1 + ';') + ( str2 || '' ));
+    }
+
+    /**
+     * is returns a boolean for if typeof obj is exactly type.
+     */
+    function is( obj, type ) {
+        return typeof obj === type;
+    }
+
+    /**
+     * contains returns a boolean for if substr is found within str.
+     */
+    function contains( str, substr ) {
+        return !!~('' + str).indexOf(substr);
+    }
+
+    /*>>testprop*/
+
+    // testProps is a generic CSS / DOM property test.
+
+    // In testing support for a given CSS property, it's legit to test:
+    //    `elem.style[styleName] !== undefined`
+    // If the property is supported it will return an empty string,
+    // if unsupported it will return undefined.
+
+    // We'll take advantage of this quick test and skip setting a style
+    // on our modernizr element, but instead just testing undefined vs
+    // empty string.
+
+    // Because the testing of the CSS property names (with "-", as
+    // opposed to the camelCase DOM properties) is non-portable and
+    // non-standard but works in WebKit and IE (but not Gecko or Opera),
+    // we explicitly reject properties with dashes so that authors
+    // developing in WebKit or IE first don't end up with
+    // browser-specific content by accident.
+
+    function testProps( props, prefixed ) {
+        for ( var i in props ) {
+            var prop = props[i];
+            if ( !contains(prop, "-") && mStyle[prop] !== undefined ) {
+                return prefixed == 'pfx' ? prop : true;
+            }
+        }
+        return false;
+    }
+    /*>>testprop*/
+
+    // TODO :: add testDOMProps
+    /**
+     * testDOMProps is a generic DOM property test; if a browser supports
+     *   a certain property, it won't return undefined for it.
+     */
+    function testDOMProps( props, obj, elem ) {
+        for ( var i in props ) {
+            var item = obj[props[i]];
+            if ( item !== undefined) {
+
+                // return the property name as a string
+                if (elem === false) return props[i];
+
+                // let's bind a function
+                if (is(item, 'function')){
+                  // default to autobind unless override
+                  return item.bind(elem || obj);
+                }
+
+                // return the unbound function or obj or value
+                return item;
+            }
+        }
+        return false;
+    }
+
+    /*>>testallprops*/
+    /**
+     * testPropsAll tests a list of DOM properties we want to check against.
+     *   We specify literally ALL possible (known and/or likely) properties on
+     *   the element including the non-vendor prefixed one, for forward-
+     *   compatibility.
+     */
+    function testPropsAll( prop, prefixed, elem ) {
+
+        var ucProp  = prop.charAt(0).toUpperCase() + prop.slice(1),
+            props   = (prop + ' ' + cssomPrefixes.join(ucProp + ' ') + ucProp).split(' ');
+
+        // did they call .prefixed('boxSizing') or are we just testing a prop?
+        if(is(prefixed, "string") || is(prefixed, "undefined")) {
+          return testProps(props, prefixed);
+
+        // otherwise, they called .prefixed('requestAnimationFrame', window[, elem])
+        } else {
+          props = (prop + ' ' + (domPrefixes).join(ucProp + ' ') + ucProp).split(' ');
+          return testDOMProps(props, prefixed, elem);
+        }
+    }
+    /*>>testallprops*/
+
+
+    /**
+     * Tests
+     * -----
+     */
+
+    // The *new* flexbox
+    // dev.w3.org/csswg/css3-flexbox
+
+    tests['flexbox'] = function() {
+      return testPropsAll('flexWrap');
+    };
+
+    // The *old* flexbox
+    // www.w3.org/TR/2009/WD-css3-flexbox-20090723/
+
+    tests['flexboxlegacy'] = function() {
+        return testPropsAll('boxDirection');
+    };
+
+    // On the S60 and BB Storm, getContext exists, but always returns undefined
+    // so we actually have to call getContext() to verify
+    // github.com/Modernizr/Modernizr/issues/issue/97/
+
+    tests['canvas'] = function() {
+        var elem = document.createElement('canvas');
+        return !!(elem.getContext && elem.getContext('2d'));
+    };
+
+    tests['canvastext'] = function() {
+        return !!(Modernizr['canvas'] && is(document.createElement('canvas').getContext('2d').fillText, 'function'));
+    };
+
+    // webk.it/70117 is tracking a legit WebGL feature detect proposal
+
+    // We do a soft detect which may false positive in order to avoid
+    // an expensive context creation: bugzil.la/732441
+
+    tests['webgl'] = function() {
+        return !!window.WebGLRenderingContext;
+    };
+
+    /*
+     * The Modernizr.touch test only indicates if the browser supports
+     *    touch events, which does not necessarily reflect a touchscreen
+     *    device, as evidenced by tablets running Windows 7 or, alas,
+     *    the Palm Pre / WebOS (touch) phones.
+     *
+     * Additionally, Chrome (desktop) used to lie about its support on this,
+     *    but that has since been rectified: crbug.com/36415
+     *
+     * We also test for Firefox 4 Multitouch Support.
+     *
+     * For more info, see: modernizr.github.com/Modernizr/touch.html
+     */
+
+    tests['touch'] = function() {
+        var bool;
+
+        if(('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch) {
+          bool = true;
+        } else {
+          injectElementWithStyles(['@media (',prefixes.join('touch-enabled),('),mod,')','{#modernizr{top:9px;position:absolute}}'].join(''), function( node ) {
+            bool = node.offsetTop === 9;
+          });
+        }
+
+        return bool;
+    };
+
+
+    // geolocation is often considered a trivial feature detect...
+    // Turns out, it's quite tricky to get right:
+    //
+    // Using !!navigator.geolocation does two things we don't want. It:
+    //   1. Leaks memory in IE9: github.com/Modernizr/Modernizr/issues/513
+    //   2. Disables page caching in WebKit: webk.it/43956
+    //
+    // Meanwhile, in Firefox < 8, an about:config setting could expose
+    // a false positive that would throw an exception: bugzil.la/688158
+
+    tests['geolocation'] = function() {
+        return 'geolocation' in navigator;
+    };
+
+
+    tests['postmessage'] = function() {
+      return !!window.postMessage;
+    };
+
+
+    // Chrome incognito mode used to throw an exception when using openDatabase
+    // It doesn't anymore.
+    tests['websqldatabase'] = function() {
+      return !!window.openDatabase;
+    };
+
+    // Vendors had inconsistent prefixing with the experimental Indexed DB:
+    // - Webkit's implementation is accessible through webkitIndexedDB
+    // - Firefox shipped moz_indexedDB before FF4b9, but since then has been mozIndexedDB
+    // For speed, we don't test the legacy (and beta-only) indexedDB
+    tests['indexedDB'] = function() {
+      return !!testPropsAll("indexedDB", window);
+    };
+
+    // documentMode logic from YUI to filter out IE8 Compat Mode
+    //   which false positives.
+    tests['hashchange'] = function() {
+      return isEventSupported('hashchange', window) && (document.documentMode === undefined || document.documentMode > 7);
+    };
+
+    // Per 1.6:
+    // This used to be Modernizr.historymanagement but the longer
+    // name has been deprecated in favor of a shorter and property-matching one.
+    // The old API is still available in 1.6, but as of 2.0 will throw a warning,
+    // and in the first release thereafter disappear entirely.
+    tests['history'] = function() {
+      return !!(window.history && history.pushState);
+    };
+
+    tests['draganddrop'] = function() {
+        var div = document.createElement('div');
+        return ('draggable' in div) || ('ondragstart' in div && 'ondrop' in div);
+    };
+
+    // FF3.6 was EOL'ed on 4/24/12, but the ESR version of FF10
+    // will be supported until FF19 (2/12/13), at which time, ESR becomes FF17.
+    // FF10 still uses prefixes, so check for it until then.
+    // for more ESR info, see: mozilla.org/en-US/firefox/organizations/faq/
+    tests['websockets'] = function() {
+        return 'WebSocket' in window || 'MozWebSocket' in window;
+    };
+
+
+    // css-tricks.com/rgba-browser-support/
+    tests['rgba'] = function() {
+        // Set an rgba() color and check the returned value
+
+        setCss('background-color:rgba(150,255,150,.5)');
+
+        return contains(mStyle.backgroundColor, 'rgba');
+    };
+
+    tests['hsla'] = function() {
+        // Same as rgba(), in fact, browsers re-map hsla() to rgba() internally,
+        //   except IE9 who retains it as hsla
+
+        setCss('background-color:hsla(120,40%,100%,.5)');
+
+        return contains(mStyle.backgroundColor, 'rgba') || contains(mStyle.backgroundColor, 'hsla');
+    };
+
+    tests['multiplebgs'] = function() {
+        // Setting multiple images AND a color on the background shorthand property
+        //  and then querying the style.background property value for the number of
+        //  occurrences of "url(" is a reliable method for detecting ACTUAL support for this!
+
+        setCss('background:url(https://),url(https://),red url(https://)');
+
+        // If the UA supports multiple backgrounds, there should be three occurrences
+        //   of the string "url(" in the return value for elemStyle.background
+
+        return (/(url\s*\(.*?){3}/).test(mStyle.background);
+    };
+
+
+
+    // this will false positive in Opera Mini
+    //   github.com/Modernizr/Modernizr/issues/396
+
+    tests['backgroundsize'] = function() {
+        return testPropsAll('backgroundSize');
+    };
+
+    tests['borderimage'] = function() {
+        return testPropsAll('borderImage');
+    };
+
+
+    // Super comprehensive table about all the unique implementations of
+    // border-radius: muddledramblings.com/table-of-css3-border-radius-compliance
+
+    tests['borderradius'] = function() {
+        return testPropsAll('borderRadius');
+    };
+
+    // WebOS unfortunately false positives on this test.
+    tests['boxshadow'] = function() {
+        return testPropsAll('boxShadow');
+    };
+
+    // FF3.0 will false positive on this test
+    tests['textshadow'] = function() {
+        return document.createElement('div').style.textShadow === '';
+    };
+
+
+    tests['opacity'] = function() {
+        // Browsers that actually have CSS Opacity implemented have done so
+        //  according to spec, which means their return values are within the
+        //  range of [0.0,1.0] - including the leading zero.
+
+        setCssAll('opacity:.55');
+
+        // The non-literal . in this regex is intentional:
+        //   German Chrome returns this value as 0,55
+        // github.com/Modernizr/Modernizr/issues/#issue/59/comment/516632
+        return (/^0.55$/).test(mStyle.opacity);
+    };
+
+
+    // Note, Android < 4 will pass this test, but can only animate
+    //   a single property at a time
+    //   goo.gl/v3V4Gp
+    tests['cssanimations'] = function() {
+        return testPropsAll('animationName');
+    };
+
+
+    tests['csscolumns'] = function() {
+        return testPropsAll('columnCount');
+    };
+
+
+    tests['cssgradients'] = function() {
+        /**
+         * For CSS Gradients syntax, please see:
+         * webkit.org/blog/175/introducing-css-gradients/
+         * developer.mozilla.org/en/CSS/-moz-linear-gradient
+         * developer.mozilla.org/en/CSS/-moz-radial-gradient
+         * dev.w3.org/csswg/css3-images/#gradients-
+         */
+
+        var str1 = 'background-image:',
+            str2 = 'gradient(linear,left top,right bottom,from(#9f9),to(white));',
+            str3 = 'linear-gradient(left top,#9f9, white);';
+
+        setCss(
+             // legacy webkit syntax (FIXME: remove when syntax not in use anymore)
+              (str1 + '-webkit- '.split(' ').join(str2 + str1) +
+             // standard syntax             // trailing 'background-image:'
+              prefixes.join(str3 + str1)).slice(0, -str1.length)
+        );
+
+        return contains(mStyle.backgroundImage, 'gradient');
+    };
+
+
+    tests['cssreflections'] = function() {
+        return testPropsAll('boxReflect');
+    };
+
+
+    tests['csstransforms'] = function() {
+        return !!testPropsAll('transform');
+    };
+
+
+    tests['csstransforms3d'] = function() {
+
+        var ret = !!testPropsAll('perspective');
+
+        // Webkit's 3D transforms are passed off to the browser's own graphics renderer.
+        //   It works fine in Safari on Leopard and Snow Leopard, but not in Chrome in
+        //   some conditions. As a result, Webkit typically recognizes the syntax but
+        //   will sometimes throw a false positive, thus we must do a more thorough check:
+        if ( ret && 'webkitPerspective' in docElement.style ) {
+
+          // Webkit allows this media query to succeed only if the feature is enabled.
+          // `@media (transform-3d),(-webkit-transform-3d){ ... }`
+          injectElementWithStyles('@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}', function( node, rule ) {
+            ret = node.offsetLeft === 9 && node.offsetHeight === 3;
+          });
+        }
+        return ret;
+    };
+
+
+    tests['csstransitions'] = function() {
+        return testPropsAll('transition');
+    };
+
+
+    /*>>fontface*/
+    // @font-face detection routine by Diego Perini
+    // javascript.nwbox.com/CSSSupport/
+
+    // false positives:
+    //   WebOS github.com/Modernizr/Modernizr/issues/342
+    //   WP7   github.com/Modernizr/Modernizr/issues/538
+    tests['fontface'] = function() {
+        var bool;
+
+        injectElementWithStyles('@font-face {font-family:"font";src:url("https://")}', function( node, rule ) {
+          var style = document.getElementById('smodernizr'),
+              sheet = style.sheet || style.styleSheet,
+              cssText = sheet ? (sheet.cssRules && sheet.cssRules[0] ? sheet.cssRules[0].cssText : sheet.cssText || '') : '';
+
+          bool = /src/i.test(cssText) && cssText.indexOf(rule.split(' ')[0]) === 0;
+        });
+
+        return bool;
+    };
+    /*>>fontface*/
+
+    // CSS generated content detection
+    tests['generatedcontent'] = function() {
+        var bool;
+
+        injectElementWithStyles(['#',mod,'{font:0/0 a}#',mod,':after{content:"',smile,'";visibility:hidden;font:3px/1 a}'].join(''), function( node ) {
+          bool = node.offsetHeight >= 3;
+        });
+
+        return bool;
+    };
+
+
+
+    // These tests evaluate support of the video/audio elements, as well as
+    // testing what types of content they support.
+    //
+    // We're using the Boolean constructor here, so that we can extend the value
+    // e.g.  Modernizr.video     // true
+    //       Modernizr.video.ogg // 'probably'
+    //
+    // Codec values from : github.com/NielsLeenheer/html5test/blob/9106a8/index.html#L845
+    //                     thx to NielsLeenheer and zcorpan
+
+    // Note: in some older browsers, "no" was a return value instead of empty string.
+    //   It was live in FF3.5.0 and 3.5.1, but fixed in 3.5.2
+    //   It was also live in Safari 4.0.0 - 4.0.4, but fixed in 4.0.5
+
+    tests['video'] = function() {
+        var elem = document.createElement('video'),
+            bool = false;
+
+        // IE9 Running on Windows Server SKU can cause an exception to be thrown, bug #224
+        try {
+            if ( bool = !!elem.canPlayType ) {
+                bool      = new Boolean(bool);
+                bool.ogg  = elem.canPlayType('video/ogg; codecs="theora"')      .replace(/^no$/,'');
+
+                // Without QuickTime, this value will be `undefined`. github.com/Modernizr/Modernizr/issues/546
+                bool.h264 = elem.canPlayType('video/mp4; codecs="avc1.42E01E"') .replace(/^no$/,'');
+
+                bool.webm = elem.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/,'');
+            }
+
+        } catch(e) { }
+
+        return bool;
+    };
+
+    tests['audio'] = function() {
+        var elem = document.createElement('audio'),
+            bool = false;
+
+        try {
+            if ( bool = !!elem.canPlayType ) {
+                bool      = new Boolean(bool);
+                bool.ogg  = elem.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,'');
+                bool.mp3  = elem.canPlayType('audio/mpeg;')               .replace(/^no$/,'');
+
+                // Mimetypes accepted:
+                //   developer.mozilla.org/En/Media_formats_supported_by_the_audio_and_video_elements
+                //   bit.ly/iphoneoscodecs
+                bool.wav  = elem.canPlayType('audio/wav; codecs="1"')     .replace(/^no$/,'');
+                bool.m4a  = ( elem.canPlayType('audio/x-m4a;')            ||
+                              elem.canPlayType('audio/aac;'))             .replace(/^no$/,'');
+            }
+        } catch(e) { }
+
+        return bool;
+    };
+
+
+    // In FF4, if disabled, window.localStorage should === null.
+
+    // Normally, we could not test that directly and need to do a
+    //   `('localStorage' in window) && ` test first because otherwise Firefox will
+    //   throw bugzil.la/365772 if cookies are disabled
+
+    // Also in iOS5 Private Browsing mode, attempting to use localStorage.setItem
+    // will throw the exception:
+    //   QUOTA_EXCEEDED_ERRROR DOM Exception 22.
+    // Peculiarly, getItem and removeItem calls do not throw.
+
+    // Because we are forced to try/catch this, we'll go aggressive.
+
+    // Just FWIW: IE8 Compat mode supports these features completely:
+    //   www.quirksmode.org/dom/html5.html
+    // But IE8 doesn't support either with local files
+
+    tests['localstorage'] = function() {
+        try {
+            localStorage.setItem(mod, mod);
+            localStorage.removeItem(mod);
+            return true;
+        } catch(e) {
+            return false;
+        }
+    };
+
+    tests['sessionstorage'] = function() {
+        try {
+            sessionStorage.setItem(mod, mod);
+            sessionStorage.removeItem(mod);
+            return true;
+        } catch(e) {
+            return false;
+        }
+    };
+
+
+    tests['webworkers'] = function() {
+        return !!window.Worker;
+    };
+
+
+    tests['applicationcache'] = function() {
+        return !!window.applicationCache;
+    };
+
+
+    // Thanks to Erik Dahlstrom
+    tests['svg'] = function() {
+        return !!document.createElementNS && !!document.createElementNS(ns.svg, 'svg').createSVGRect;
+    };
+
+    // specifically for SVG inline in HTML, not within XHTML
+    // test page: paulirish.com/demo/inline-svg
+    tests['inlinesvg'] = function() {
+      var div = document.createElement('div');
+      div.innerHTML = '<svg/>';
+      return (div.firstChild && div.firstChild.namespaceURI) == ns.svg;
+    };
+
+    // SVG SMIL animation
+    tests['smil'] = function() {
+        return !!document.createElementNS && /SVGAnimate/.test(toString.call(document.createElementNS(ns.svg, 'animate')));
+    };
+
+    // This test is only for clip paths in SVG proper, not clip paths on HTML content
+    // demo: srufaculty.sru.edu/david.dailey/svg/newstuff/clipPath4.svg
+
+    // However read the comments to dig into applying SVG clippaths to HTML content here:
+    //   github.com/Modernizr/Modernizr/issues/213#issuecomment-1149491
+    tests['svgclippaths'] = function() {
+        return !!document.createElementNS && /SVGClipPath/.test(toString.call(document.createElementNS(ns.svg, 'clipPath')));
+    };
+
+    /*>>webforms*/
+    // input features and input types go directly onto the ret object, bypassing the tests loop.
+    // Hold this guy to execute in a moment.
+    function webforms() {
+        /*>>input*/
+        // Run through HTML5's new input attributes to see if the UA understands any.
+        // We're using f which is the <input> element created early on
+        // Mike Taylr has created a comprehensive resource for testing these attributes
+        //   when applied to all input types:
+        //   miketaylr.com/code/input-type-attr.html
+        // spec: www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#input-type-attr-summary
+
+        // Only input placeholder is tested while textarea's placeholder is not.
+        // Currently Safari 4 and Opera 11 have support only for the input placeholder
+        // Both tests are available in feature-detects/forms-placeholder.js
+        Modernizr['input'] = (function( props ) {
+            for ( var i = 0, len = props.length; i < len; i++ ) {
+                attrs[ props[i] ] = !!(props[i] in inputElem);
+            }
+            if (attrs.list){
+              // safari false positive's on datalist: webk.it/74252
+              // see also github.com/Modernizr/Modernizr/issues/146
+              attrs.list = !!(document.createElement('datalist') && window.HTMLDataListElement);
+            }
+            return attrs;
+        })('autocomplete autofocus list placeholder max min multiple pattern required step'.split(' '));
+        /*>>input*/
+
+        /*>>inputtypes*/
+        // Run through HTML5's new input types to see if the UA understands any.
+        //   This is put behind the tests runloop because it doesn't return a
+        //   true/false like all the other tests; instead, it returns an object
+        //   containing each input type with its corresponding true/false value
+
+        // Big thanks to @miketaylr for the html5 forms expertise. miketaylr.com/
+        Modernizr['inputtypes'] = (function(props) {
+
+            for ( var i = 0, bool, inputElemType, defaultView, len = props.length; i < len; i++ ) {
+
+                inputElem.setAttribute('type', inputElemType = props[i]);
+                bool = inputElem.type !== 'text';
+
+                // We first check to see if the type we give it sticks..
+                // If the type does, we feed it a textual value, which shouldn't be valid.
+                // If the value doesn't stick, we know there's input sanitization which infers a custom UI
+                if ( bool ) {
+
+                    inputElem.value         = smile;
+                    inputElem.style.cssText = 'position:absolute;visibility:hidden;';
+
+                    if ( /^range$/.test(inputElemType) && inputElem.style.WebkitAppearance !== undefined ) {
+
+                      docElement.appendChild(inputElem);
+                      defaultView = document.defaultView;
+
+                      // Safari 2-4 allows the smiley as a value, despite making a slider
+                      bool =  defaultView.getComputedStyle &&
+                              defaultView.getComputedStyle(inputElem, null).WebkitAppearance !== 'textfield' &&
+                              // Mobile android web browser has false positive, so must
+                              // check the height to see if the widget is actually there.
+                              (inputElem.offsetHeight !== 0);
+
+                      docElement.removeChild(inputElem);
+
+                    } else if ( /^(search|tel)$/.test(inputElemType) ){
+                      // Spec doesn't define any special parsing or detectable UI
+                      //   behaviors so we pass these through as true
+
+                      // Interestingly, opera fails the earlier test, so it doesn't
+                      //  even make it here.
+
+                    } else if ( /^(url|email)$/.test(inputElemType) ) {
+                      // Real url and email support comes with prebaked validation.
+                      bool = inputElem.checkValidity && inputElem.checkValidity() === false;
+
+                    } else {
+                      // If the upgraded input compontent rejects the :) text, we got a winner
+                      bool = inputElem.value != smile;
+                    }
+                }
+
+                inputs[ props[i] ] = !!bool;
+            }
+            return inputs;
+        })('search tel url email datetime date month week time datetime-local number range color'.split(' '));
+        /*>>inputtypes*/
+    }
+    /*>>webforms*/
+
+
+    // End of test definitions
+    // -----------------------
+
+
+
+    // Run through all tests and detect their support in the current UA.
+    // todo: hypothetically we could be doing an array of tests and use a basic loop here.
+    for ( var feature in tests ) {
+        if ( hasOwnProp(tests, feature) ) {
+            // run the test, throw the return value into the Modernizr,
+            //   then based on that boolean, define an appropriate className
+            //   and push it into an array of classes we'll join later.
+            featureName  = feature.toLowerCase();
+            Modernizr[featureName] = tests[feature]();
+
+            classes.push((Modernizr[featureName] ? '' : 'no-') + featureName);
+        }
+    }
+
+    /*>>webforms*/
+    // input tests need to run.
+    Modernizr.input || webforms();
+    /*>>webforms*/
+
+
+    /**
+     * addTest allows the user to define their own feature tests
+     * the result will be added onto the Modernizr object,
+     * as well as an appropriate className set on the html element
+     *
+     * @param feature - String naming the feature
+     * @param test - Function returning true if feature is supported, false if not
+     */
+     Modernizr.addTest = function ( feature, test ) {
+       if ( typeof feature == 'object' ) {
+         for ( var key in feature ) {
+           if ( hasOwnProp( feature, key ) ) {
+             Modernizr.addTest( key, feature[ key ] );
+           }
+         }
+       } else {
+
+         feature = feature.toLowerCase();
+
+         if ( Modernizr[feature] !== undefined ) {
+           // we're going to quit if you're trying to overwrite an existing test
+           // if we were to allow it, we'd do this:
+           //   var re = new RegExp("\\b(no-)?" + feature + "\\b");
+           //   docElement.className = docElement.className.replace( re, '' );
+           // but, no rly, stuff 'em.
+           return Modernizr;
+         }
+
+         test = typeof test == 'function' ? test() : test;
+
+         if (typeof enableClasses !== "undefined" && enableClasses) {
+           docElement.className += ' ' + (test ? '' : 'no-') + feature;
+         }
+         Modernizr[feature] = test;
+
+       }
+
+       return Modernizr; // allow chaining.
+     };
+
+
+    // Reset modElem.cssText to nothing to reduce memory footprint.
+    setCss('');
+    modElem = inputElem = null;
+
+    /*>>shiv*/
+    /**
+     * @preserve HTML5 Shiv prev3.7.1 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
+     */
+    ;(function(window, document) {
+        /*jshint evil:true */
+        /** version */
+        var version = '3.7.0';
+
+        /** Preset options */
+        var options = window.html5 || {};
+
+        /** Used to skip problem elements */
+        var reSkip = /^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i;
+
+        /** Not all elements can be cloned in IE **/
+        var saveClones = /^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i;
+
+        /** Detect whether the browser supports default html5 styles */
+        var supportsHtml5Styles;
+
+        /** Name of the expando, to work with multiple documents or to re-shiv one document */
+        var expando = '_html5shiv';
+
+        /** The id for the the documents expando */
+        var expanID = 0;
+
+        /** Cached data for each document */
+        var expandoData = {};
+
+        /** Detect whether the browser supports unknown elements */
+        var supportsUnknownElements;
+
+        (function() {
+          try {
+            var a = document.createElement('a');
+            a.innerHTML = '<xyz></xyz>';
+            //if the hidden property is implemented we can assume, that the browser supports basic HTML5 Styles
+            supportsHtml5Styles = ('hidden' in a);
+
+            supportsUnknownElements = a.childNodes.length == 1 || (function() {
+              // assign a false positive if unable to shiv
+              (document.createElement)('a');
+              var frag = document.createDocumentFragment();
+              return (
+                typeof frag.cloneNode == 'undefined' ||
+                typeof frag.createDocumentFragment == 'undefined' ||
+                typeof frag.createElement == 'undefined'
+              );
+            }());
+          } catch(e) {
+            // assign a false positive if detection fails => unable to shiv
+            supportsHtml5Styles = true;
+            supportsUnknownElements = true;
+          }
+
+        }());
+
+        /*--------------------------------------------------------------------------*/
+
+        /**
+         * Creates a style sheet with the given CSS text and adds it to the document.
+         * @private
+         * @param {Document} ownerDocument The document.
+         * @param {String} cssText The CSS text.
+         * @returns {StyleSheet} The style element.
+         */
+        function addStyleSheet(ownerDocument, cssText) {
+          var p = ownerDocument.createElement('p'),
+          parent = ownerDocument.getElementsByTagName('head')[0] || ownerDocument.documentElement;
+
+          p.innerHTML = 'x<style>' + cssText + '</style>';
+          return parent.insertBefore(p.lastChild, parent.firstChild);
+        }
+
+        /**
+         * Returns the value of `html5.elements` as an array.
+         * @private
+         * @returns {Array} An array of shived element node names.
+         */
+        function getElements() {
+          var elements = html5.elements;
+          return typeof elements == 'string' ? elements.split(' ') : elements;
+        }
+
+        /**
+         * Returns the data associated to the given document
+         * @private
+         * @param {Document} ownerDocument The document.
+         * @returns {Object} An object of data.
+         */
+        function getExpandoData(ownerDocument) {
+          var data = expandoData[ownerDocument[expando]];
+          if (!data) {
+            data = {};
+            expanID++;
+            ownerDocument[expando] = expanID;
+            expandoData[expanID] = data;
+          }
+          return data;
+        }
+
+        /**
+         * returns a shived element for the given nodeName and document
+         * @memberOf html5
+         * @param {String} nodeName name of the element
+         * @param {Document} ownerDocument The context document.
+         * @returns {Object} The shived element.
+         */
+        function createElement(nodeName, ownerDocument, data){
+          if (!ownerDocument) {
+            ownerDocument = document;
+          }
+          if(supportsUnknownElements){
+            return ownerDocument.createElement(nodeName);
+          }
+          if (!data) {
+            data = getExpandoData(ownerDocument);
+          }
+          var node;
+
+          if (data.cache[nodeName]) {
+            node = data.cache[nodeName].cloneNode();
+          } else if (saveClones.test(nodeName)) {
+            node = (data.cache[nodeName] = data.createElem(nodeName)).cloneNode();
+          } else {
+            node = data.createElem(nodeName);
+          }
+
+          // Avoid adding some elements to fragments in IE < 9 because
+          // * Attributes like `name` or `type` cannot be set/changed once an element
+          //   is inserted into a document/fragment
+          // * Link elements with `src` attributes that are inaccessible, as with
+          //   a 403 response, will cause the tab/window to crash
+          // * Script elements appended to fragments will execute when their `src`
+          //   or `text` property is set
+          return node.canHaveChildren && !reSkip.test(nodeName) && !node.tagUrn ? data.frag.appendChild(node) : node;
+        }
+
+        /**
+         * returns a shived DocumentFragment for the given document
+         * @memberOf html5
+         * @param {Document} ownerDocument The context document.
+         * @returns {Object} The shived DocumentFragment.
+         */
+        function createDocumentFragment(ownerDocument, data){
+          if (!ownerDocument) {
+            ownerDocument = document;
+          }
+          if(supportsUnknownElements){
+            return ownerDocument.createDocumentFragment();
+          }
+          data = data || getExpandoData(ownerDocument);
+          var clone = data.frag.cloneNode(),
+          i = 0,
+          elems = getElements(),
+          l = elems.length;
+          for(;i<l;i++){
+            clone.createElement(elems[i]);
+          }
+          return clone;
+        }
+
+        /**
+         * Shivs the `createElement` and `createDocumentFragment` methods of the document.
+         * @private
+         * @param {Document|DocumentFragment} ownerDocument The document.
+         * @param {Object} data of the document.
+         */
+        function shivMethods(ownerDocument, data) {
+          if (!data.cache) {
+            data.cache = {};
+            data.createElem = ownerDocument.createElement;
+            data.createFrag = ownerDocument.createDocumentFragment;
+            data.frag = data.createFrag();
+          }
+
+
+          ownerDocument.createElement = function(nodeName) {
+            //abort shiv
+            if (!html5.shivMethods) {
+              return data.createElem(nodeName);
+            }
+            return createElement(nodeName, ownerDocument, data);
+          };
+
+          ownerDocument.createDocumentFragment = Function('h,f', 'return function(){' +
+                                                          'var n=f.cloneNode(),c=n.createElement;' +
+                                                          'h.shivMethods&&(' +
+                                                          // unroll the `createElement` calls
+                                                          getElements().join().replace(/[\w\-]+/g, function(nodeName) {
+            data.createElem(nodeName);
+            data.frag.createElement(nodeName);
+            return 'c("' + nodeName + '")';
+          }) +
+            ');return n}'
+                                                         )(html5, data.frag);
+        }
+
+        /*--------------------------------------------------------------------------*/
+
+        /**
+         * Shivs the given document.
+         * @memberOf html5
+         * @param {Document} ownerDocument The document to shiv.
+         * @returns {Document} The shived document.
+         */
+        function shivDocument(ownerDocument) {
+          if (!ownerDocument) {
+            ownerDocument = document;
+          }
+          var data = getExpandoData(ownerDocument);
+
+          if (html5.shivCSS && !supportsHtml5Styles && !data.hasCSS) {
+            data.hasCSS = !!addStyleSheet(ownerDocument,
+                                          // corrects block display not defined in IE6/7/8/9
+                                          'article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}' +
+                                            // adds styling not present in IE6/7/8/9
+                                            'mark{background:#FF0;color:#000}' +
+                                            // hides non-rendered elements
+                                            'template{display:none}'
+                                         );
+          }
+          if (!supportsUnknownElements) {
+            shivMethods(ownerDocument, data);
+          }
+          return ownerDocument;
+        }
+
+        /*--------------------------------------------------------------------------*/
+
+        /**
+         * The `html5` object is exposed so that more elements can be shived and
+         * existing shiving can be detected on iframes.
+         * @type Object
+         * @example
+         *
+         * // options can be changed before the script is included
+         * html5 = { 'elements': 'mark section', 'shivCSS': false, 'shivMethods': false };
+         */
+        var html5 = {
+
+          /**
+           * An array or space separated string of node names of the elements to shiv.
+           * @memberOf html5
+           * @type Array|String
+           */
+          'elements': options.elements || 'abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output progress section summary template time video',
+
+          /**
+           * current version of html5shiv
+           */
+          'version': version,
+
+          /**
+           * A flag to indicate that the HTML5 style sheet should be inserted.
+           * @memberOf html5
+           * @type Boolean
+           */
+          'shivCSS': (options.shivCSS !== false),
+
+          /**
+           * Is equal to true if a browser supports creating unknown/HTML5 elements
+           * @memberOf html5
+           * @type boolean
+           */
+          'supportsUnknownElements': supportsUnknownElements,
+
+          /**
+           * A flag to indicate that the document's `createElement` and `createDocumentFragment`
+           * methods should be overwritten.
+           * @memberOf html5
+           * @type Boolean
+           */
+          'shivMethods': (options.shivMethods !== false),
+
+          /**
+           * A string to describe the type of `html5` object ("default" or "default print").
+           * @memberOf html5
+           * @type String
+           */
+          'type': 'default',
+
+          // shivs the document according to the specified `html5` object options
+          'shivDocument': shivDocument,
+
+          //creates a shived element
+          createElement: createElement,
+
+          //creates a shived documentFragment
+          createDocumentFragment: createDocumentFragment
+        };
+
+        /*--------------------------------------------------------------------------*/
+
+        // expose html5
+        window.html5 = html5;
+
+        // shiv the document
+        shivDocument(document);
+
+    }(this, document));
+    /*>>shiv*/
+
+    // Assign private properties to the return object with prefix
+    Modernizr._version      = version;
+
+    // expose these for the plugin API. Look in the source for how to join() them against your input
+    /*>>prefixes*/
+    Modernizr._prefixes     = prefixes;
+    /*>>prefixes*/
+    /*>>domprefixes*/
+    Modernizr._domPrefixes  = domPrefixes;
+    Modernizr._cssomPrefixes  = cssomPrefixes;
+    /*>>domprefixes*/
+
+    /*>>mq*/
+    // Modernizr.mq tests a given media query, live against the current state of the window
+    // A few important notes:
+    //   * If a browser does not support media queries at all (eg. oldIE) the mq() will always return false
+    //   * A max-width or orientation query will be evaluated against the current state, which may change later.
+    //   * You must specify values. Eg. If you are testing support for the min-width media query use:
+    //       Modernizr.mq('(min-width:0)')
+    // usage:
+    // Modernizr.mq('only screen and (max-width:768)')
+    Modernizr.mq            = testMediaQuery;
+    /*>>mq*/
+
+    /*>>hasevent*/
+    // Modernizr.hasEvent() detects support for a given event, with an optional element to test on
+    // Modernizr.hasEvent('gesturestart', elem)
+    Modernizr.hasEvent      = isEventSupported;
+    /*>>hasevent*/
+
+    /*>>testprop*/
+    // Modernizr.testProp() investigates whether a given style property is recognized
+    // Note that the property names must be provided in the camelCase variant.
+    // Modernizr.testProp('pointerEvents')
+    Modernizr.testProp      = function(prop){
+        return testProps([prop]);
+    };
+    /*>>testprop*/
+
+    /*>>testallprops*/
+    // Modernizr.testAllProps() investigates whether a given style property,
+    //   or any of its vendor-prefixed variants, is recognized
+    // Note that the property names must be provided in the camelCase variant.
+    // Modernizr.testAllProps('boxSizing')
+    Modernizr.testAllProps  = testPropsAll;
+    /*>>testallprops*/
+
+
+    /*>>teststyles*/
+    // Modernizr.testStyles() allows you to add custom styles to the document and test an element afterwards
+    // Modernizr.testStyles('#modernizr { position:absolute }', function(elem, rule){ ... })
+    Modernizr.testStyles    = injectElementWithStyles;
+    /*>>teststyles*/
+
+
+    /*>>prefixed*/
+    // Modernizr.prefixed() returns the prefixed or nonprefixed property name variant of your input
+    // Modernizr.prefixed('boxSizing') // 'MozBoxSizing'
+
+    // Properties must be passed as dom-style camelcase, rather than `box-sizing` hypentated style.
+    // Return values will also be the camelCase variant, if you need to translate that to hypenated style use:
+    //
+    //     str.replace(/([A-Z])/g, function(str,m1){ return '-' + m1.toLowerCase(); }).replace(/^ms-/,'-ms-');
+
+    // If you're trying to ascertain which transition end event to bind to, you might do something like...
+    //
+    //     var transEndEventNames = {
+    //       'WebkitTransition' : 'webkitTransitionEnd',
+    //       'MozTransition'    : 'transitionend',
+    //       'OTransition'      : 'oTransitionEnd',
+    //       'msTransition'     : 'MSTransitionEnd',
+    //       'transition'       : 'transitionend'
+    //     },
+    //     transEndEventName = transEndEventNames[ Modernizr.prefixed('transition') ];
+
+    Modernizr.prefixed      = function(prop, obj, elem){
+      if(!obj) {
+        return testPropsAll(prop, 'pfx');
+      } else {
+        // Testing DOM property e.g. Modernizr.prefixed('requestAnimationFrame', window) // 'mozRequestAnimationFrame'
+        return testPropsAll(prop, obj, elem);
+      }
+    };
+    /*>>prefixed*/
+
+
+    /*>>cssclasses*/
+    // Remove "no-js" class from <html> element, if it exists:
+    docElement.className = docElement.className.replace(/(^|\s)no-js(\s|$)/, '$1$2') +
+
+                            // Add the new classes to the <html> element.
+                            (enableClasses ? ' js ' + classes.join(' ') : '');
+    /*>>cssclasses*/
+
+    return Modernizr;
+
+})(this, this.document);
diff --git a/js/modernizr/modernizr.min.js b/js/modernizr/modernizr.min.js
new file mode 100644 (file)
index 0000000..6d551f1
--- /dev/null
@@ -0,0 +1 @@
+window.Modernizr=function(a,b,c){function d(a){t.cssText=a}function e(a,b){return d(x.join(a+";")+(b||""))}function f(a,b){return typeof a===b}function g(a,b){return!!~(""+a).indexOf(b)}function h(a,b){for(var d in a){var e=a[d];if(!g(e,"-")&&t[e]!==c)return"pfx"!=b||e}return!1}function i(a,b,d){for(var e in a){var g=b[a[e]];if(g!==c)return!1===d?a[e]:f(g,"function")?g.bind(d||b):g}return!1}function j(a,b,c){var d=a.charAt(0).toUpperCase()+a.slice(1),e=(a+" "+z.join(d+" ")+d).split(" ");return f(b,"string")||f(b,"undefined")?h(e,b):(e=(a+" "+A.join(d+" ")+d).split(" "),i(e,b,c))}function k(){o.input=function(c){for(var d=0,e=c.length;d<e;d++)E[c[d]]=!!(c[d]in u);return E.list&&(E.list=!(!b.createElement("datalist")||!a.HTMLDataListElement)),E}("autocomplete autofocus list placeholder max min multiple pattern required step".split(" ")),o.inputtypes=function(a){for(var d,e,f,g=0,h=a.length;g<h;g++)u.setAttribute("type",e=a[g]),d="text"!==u.type,d&&(u.value=v,u.style.cssText="position:absolute;visibility:hidden;",/^range$/.test(e)&&u.style.WebkitAppearance!==c?(q.appendChild(u),f=b.defaultView,d=f.getComputedStyle&&"textfield"!==f.getComputedStyle(u,null).WebkitAppearance&&0!==u.offsetHeight,q.removeChild(u)):/^(search|tel)$/.test(e)||(d=/^(url|email)$/.test(e)?u.checkValidity&&!1===u.checkValidity():u.value!=v)),D[a[g]]=!!d;return D}("search tel url email datetime date month week time datetime-local number range color".split(" "))}var l,m,n="2.8.3",o={},p=!0,q=b.documentElement,r="modernizr",s=b.createElement(r),t=s.style,u=b.createElement("input"),v=":)",w={}.toString,x=" -webkit- -moz- -o- -ms- ".split(" "),y="Webkit Moz O ms",z=y.split(" "),A=y.toLowerCase().split(" "),B={svg:"http://www.w3.org/2000/svg"},C={},D={},E={},F=[],G=F.slice,H=function(a,c,d,e){var f,g,h,i,j=b.createElement("div"),k=b.body,l=k||b.createElement("body");if(parseInt(d,10))for(;d--;)h=b.createElement("div"),h.id=e?e[d]:r+(d+1),j.appendChild(h);return f=["&#173;",'<style id="s',r,'">',a,"</style>"].join(""),j.id=r,(k?j:l).innerHTML+=f,l.appendChild(j),k||(l.style.background="",l.style.overflow="hidden",i=q.style.overflow,q.style.overflow="hidden",q.appendChild(l)),g=c(j,a),k?j.parentNode.removeChild(j):(l.parentNode.removeChild(l),q.style.overflow=i),!!g},I=function(b){var c=a.matchMedia||a.msMatchMedia;if(c)return c(b)&&c(b).matches||!1;var d;return H("@media "+b+" { #"+r+" { position: absolute; } }",function(b){d="absolute"==(a.getComputedStyle?getComputedStyle(b,null):b.currentStyle).position}),d},J=function(){function a(a,e){e=e||b.createElement(d[a]||"div"),a="on"+a;var g=a in e;return g||(e.setAttribute||(e=b.createElement("div")),e.setAttribute&&e.removeAttribute&&(e.setAttribute(a,""),g=f(e[a],"function"),f(e[a],"undefined")||(e[a]=c),e.removeAttribute(a))),e=null,g}var d={select:"input",change:"input",submit:"form",reset:"form",error:"img",load:"img",abort:"img"};return a}(),K={}.hasOwnProperty;m=f(K,"undefined")||f(K.call,"undefined")?function(a,b){return b in a&&f(a.constructor.prototype[b],"undefined")}:function(a,b){return K.call(a,b)},Function.prototype.bind||(Function.prototype.bind=function(a){var b=this;if("function"!=typeof b)throw new TypeError;var c=G.call(arguments,1),d=function(){if(this instanceof d){var e=function(){};e.prototype=b.prototype;var f=new e,g=b.apply(f,c.concat(G.call(arguments)));return Object(g)===g?g:f}return b.apply(a,c.concat(G.call(arguments)))};return d}),C.flexbox=function(){return j("flexWrap")},C.flexboxlegacy=function(){return j("boxDirection")},C.canvas=function(){var a=b.createElement("canvas");return!(!a.getContext||!a.getContext("2d"))},C.canvastext=function(){return!(!o.canvas||!f(b.createElement("canvas").getContext("2d").fillText,"function"))},C.webgl=function(){return!!a.WebGLRenderingContext},C.touch=function(){var c;return"ontouchstart"in a||a.DocumentTouch&&b instanceof DocumentTouch?c=!0:H(["@media (",x.join("touch-enabled),("),r,")","{#modernizr{top:9px;position:absolute}}"].join(""),function(a){c=9===a.offsetTop}),c},C.geolocation=function(){return"geolocation"in navigator},C.postmessage=function(){return!!a.postMessage},C.websqldatabase=function(){return!!a.openDatabase},C.indexedDB=function(){return!!j("indexedDB",a)},C.hashchange=function(){return J("hashchange",a)&&(b.documentMode===c||b.documentMode>7)},C.history=function(){return!(!a.history||!history.pushState)},C.draganddrop=function(){var a=b.createElement("div");return"draggable"in a||"ondragstart"in a&&"ondrop"in a},C.websockets=function(){return"WebSocket"in a||"MozWebSocket"in a},C.rgba=function(){return d("background-color:rgba(150,255,150,.5)"),g(t.backgroundColor,"rgba")},C.hsla=function(){return d("background-color:hsla(120,40%,100%,.5)"),g(t.backgroundColor,"rgba")||g(t.backgroundColor,"hsla")},C.multiplebgs=function(){return d("background:url(https://),url(https://),red url(https://)"),/(url\s*\(.*?){3}/.test(t.background)},C.backgroundsize=function(){return j("backgroundSize")},C.borderimage=function(){return j("borderImage")},C.borderradius=function(){return j("borderRadius")},C.boxshadow=function(){return j("boxShadow")},C.textshadow=function(){return""===b.createElement("div").style.textShadow},C.opacity=function(){return e("opacity:.55"),/^0.55$/.test(t.opacity)},C.cssanimations=function(){return j("animationName")},C.csscolumns=function(){return j("columnCount")},C.cssgradients=function(){var a="background-image:";return d((a+"-webkit- ".split(" ").join("gradient(linear,left top,right bottom,from(#9f9),to(white));"+a)+x.join("linear-gradient(left top,#9f9, white);"+a)).slice(0,-a.length)),g(t.backgroundImage,"gradient")},C.cssreflections=function(){return j("boxReflect")},C.csstransforms=function(){return!!j("transform")},C.csstransforms3d=function(){var a=!!j("perspective");return a&&"webkitPerspective"in q.style&&H("@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}",function(b,c){a=9===b.offsetLeft&&3===b.offsetHeight}),a},C.csstransitions=function(){return j("transition")},C.fontface=function(){var a;return H('@font-face {font-family:"font";src:url("https://")}',function(c,d){var e=b.getElementById("smodernizr"),f=e.sheet||e.styleSheet,g=f?f.cssRules&&f.cssRules[0]?f.cssRules[0].cssText:f.cssText||"":"";a=/src/i.test(g)&&0===g.indexOf(d.split(" ")[0])}),a},C.generatedcontent=function(){var a;return H(["#",r,"{font:0/0 a}#",r,':after{content:"',v,'";visibility:hidden;font:3px/1 a}'].join(""),function(b){a=b.offsetHeight>=3}),a},C.video=function(){var a=b.createElement("video"),c=!1;try{(c=!!a.canPlayType)&&(c=new Boolean(c),c.ogg=a.canPlayType('video/ogg; codecs="theora"').replace(/^no$/,""),c.h264=a.canPlayType('video/mp4; codecs="avc1.42E01E"').replace(/^no$/,""),c.webm=a.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/,""))}catch(a){}return c},C.audio=function(){var a=b.createElement("audio"),c=!1;try{(c=!!a.canPlayType)&&(c=new Boolean(c),c.ogg=a.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),c.mp3=a.canPlayType("audio/mpeg;").replace(/^no$/,""),c.wav=a.canPlayType('audio/wav; codecs="1"').replace(/^no$/,""),c.m4a=(a.canPlayType("audio/x-m4a;")||a.canPlayType("audio/aac;")).replace(/^no$/,""))}catch(a){}return c},C.localstorage=function(){try{return localStorage.setItem(r,r),localStorage.removeItem(r),!0}catch(a){return!1}},C.sessionstorage=function(){try{return sessionStorage.setItem(r,r),sessionStorage.removeItem(r),!0}catch(a){return!1}},C.webworkers=function(){return!!a.Worker},C.applicationcache=function(){return!!a.applicationCache},C.svg=function(){return!!b.createElementNS&&!!b.createElementNS(B.svg,"svg").createSVGRect},C.inlinesvg=function(){var a=b.createElement("div");return a.innerHTML="<svg/>",(a.firstChild&&a.firstChild.namespaceURI)==B.svg},C.smil=function(){return!!b.createElementNS&&/SVGAnimate/.test(w.call(b.createElementNS(B.svg,"animate")))},C.svgclippaths=function(){return!!b.createElementNS&&/SVGClipPath/.test(w.call(b.createElementNS(B.svg,"clipPath")))};for(var L in C)m(C,L)&&(l=L.toLowerCase(),o[l]=C[L](),F.push((o[l]?"":"no-")+l));return o.input||k(),o.addTest=function(a,b){if("object"==typeof a)for(var d in a)m(a,d)&&o.addTest(d,a[d]);else{if(a=a.toLowerCase(),o[a]!==c)return o;b="function"==typeof b?b():b,void 0!==p&&p&&(q.className+=" "+(b?"":"no-")+a),o[a]=b}return o},d(""),s=u=null,function(a,b){function c(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x<style>"+b+"</style>",d.insertBefore(c.lastChild,d.firstChild)}function d(){var a=s.elements;return"string"==typeof a?a.split(" "):a}function e(a){var b=r[a[p]];return b||(b={},q++,a[p]=q,r[q]=b),b}function f(a,c,d){if(c||(c=b),k)return c.createElement(a);d||(d=e(c));var f;return f=d.cache[a]?d.cache[a].cloneNode():o.test(a)?(d.cache[a]=d.createElem(a)).cloneNode():d.createElem(a),!f.canHaveChildren||n.test(a)||f.tagUrn?f:d.frag.appendChild(f)}function g(a,c){if(a||(a=b),k)return a.createDocumentFragment();c=c||e(a);for(var f=c.frag.cloneNode(),g=0,h=d(),i=h.length;g<i;g++)f.createElement(h[g]);return f}function h(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return s.shivMethods?f(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+d().join().replace(/[\w\-]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(s,b.frag)}function i(a){a||(a=b);var d=e(a);return!s.shivCSS||j||d.hasCSS||(d.hasCSS=!!c(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),k||h(a,d),a}var j,k,l="3.7.0",m=a.html5||{},n=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,o=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,p="_html5shiv",q=0,r={};!function(){try{var a=b.createElement("a");a.innerHTML="<xyz></xyz>",j="hidden"in a,k=1==a.childNodes.length||function(){b.createElement("a");var a=b.createDocumentFragment();return void 0===a.cloneNode||void 0===a.createDocumentFragment||void 0===a.createElement}()}catch(a){j=!0,k=!0}}();var s={elements:m.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output progress section summary template time video",version:l,shivCSS:!1!==m.shivCSS,supportsUnknownElements:k,shivMethods:!1!==m.shivMethods,type:"default",shivDocument:i,createElement:f,createDocumentFragment:g};a.html5=s,i(b)}(this,b),o._version=n,o._prefixes=x,o._domPrefixes=A,o._cssomPrefixes=z,o.mq=I,o.hasEvent=J,o.testProp=function(a){return h([a])},o.testAllProps=j,o.testStyles=H,o.prefixed=function(a,b,c){return b?j(a,b,c):j(a,"pfx")},q.className=q.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+(p?" js "+F.join(" "):""),o}(this,this.document);
\ No newline at end of file
diff --git a/js/modernizr/test/caniuse_files/ga.js b/js/modernizr/test/caniuse_files/ga.js
new file mode 100644 (file)
index 0000000..76a01b0
--- /dev/null
@@ -0,0 +1,43 @@
+(function(){var k=void 0,aa=encodeURIComponent,l=String,o=Math,ba="push",ca="cookie",p="charAt",q="indexOf",da="getTime",r="toString",t="window",v="length",w="document",x="split",y="location",ea="protocol",fa="href",z="substring",A="join",C="toLowerCase";var ga="_gat",ha="_gaq",ia="4.9.4",ja="_gaUserPrefs",ka="ioo",D="&",E="=",F="__utma=",H="__utmb=",la="__utmc=",ma="__utmk=",I="__utmv=",J="__utmz=",na="__utmx=",oa="GASO=";var pa=function(){var d=this,f=[],b="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_";d.set=function(b){f[b]=!0};d.Sc=function(){for(var d=[],e=0;e<f[v];e++)f[e]&&(d[o.floor(e/6)]^=1<<e%6);for(e=0;e<d[v];e++)d[e]=b[p](d[e]||0);return d[A]("")+"~"}},qa=new pa;function K(d){qa.set(d)};var ra=function(d,f){var b=this;b.window=d;b.document=f;b.setTimeout=function(b,e){setTimeout(b,e)};b.Jb=function(b){return navigator.userAgent[q](b)>=0};b.Xc=function(){return b.Jb("Firefox")&&![].reduce};b.Vc=function(){return L[t][ja]};b.Gc=function(){return L[t].external};b.Hc=function(){return L[t].performance||L[t].webkitPerformance};b.Ic=function(){return L[t].top==L[t]};b.Ya=function(b){var e=L[t]&&L[t].gaGlobal;if(b&&!e)e={},L[t].gaGlobal=e;return e};b.ec=function(b){L[w][y].href=b};b.qb=
+function(d){if(!d||!b.Jb("Firefox"))return d;for(var d=d.replace(/\n|\r/g," "),e=0,f=d[v];e<f;++e){var g=d.charCodeAt(e)&255;if(g==10||g==13)d=d[z](0,e)+"?"+d[z](e+1)}return d}},L=new ra(window,document);var sa=function(d){return function(f,b,h){d[f]=function(){K(b);return h.apply(d,arguments)};return h}},ta=function(d,f,b,h){d.addEventListener?d.addEventListener(f,b,!!h):d.attachEvent&&d.attachEvent("on"+f,b)},ua=function(d){return Object.prototype[r].call(Object(d))=="[object Array]"},M=function(d){return k==d||"-"==d||""==d},N=function(d,f,b){var h="-",e;!M(d)&&!M(f)&&!M(b)&&(e=d[q](f),e>-1&&(b=d[q](b,e),b<0&&(b=d[v]),h=d[z](e+f[q](E)+1,b)));return h},xa=function(d){var f=!1,b=0,h,e;if(!M(d)){f=
+!0;for(h=0;h<d[v];h++)e=d[p](h),b+="."==e?1:0,f=f&&b<=1&&(0==h&&"-"==e||".0123456789"[q](e)>-1)}return f},P=function(d,f){var b=aa;return b instanceof Function?f?encodeURI(d):b(d):(K(68),escape(d))},Q=function(d,f){var b=decodeURIComponent,h,d=d[x]("+")[A](" ");if(b instanceof Function)try{h=f?decodeURI(d):b(d)}catch(e){K(17),h=unescape(d)}else K(68),h=unescape(d);return h},R=function(d,f){return d[q](f)>-1};
+function ya(d){if(!d||""==d)return"";for(;d[p](0)[v]>0&&" \n\r\t"[q](d[p](0))>-1;)d=d[z](1);for(;d[p](d[v]-1)[v]>0&&" \n\r\t"[q](d[p](d[v]-1))>-1;)d=d[z](0,d[v]-1);return d}var T=function(d,f){d[ba]||K(94);d[d[v]]=f},za=function(d){var f=1,b=0,h;if(!M(d)){f=0;for(h=d[v]-1;h>=0;h--)b=d.charCodeAt(h),f=(f<<6&268435455)+b+(b<<14),b=f&266338304,f=b!=0?f^b>>21:f}return f},Aa=function(){return o.round(o.random()*2147483647)},Ba=function(){};var Ca=function(d,f){this.ib=d;this.jb=f},Da=function(){function d(b){for(var d=[],b=b[x](","),e,f=0;f<b[v];f++)e=b[f][x](":"),d[ba](new Ca(e[0],e[1]));return d}var f=this;f.Ca="utm_campaign";f.Da="utm_content";f.Ea="utm_id";f.Fa="utm_medium";f.Ga="utm_nooverride";f.Ha="utm_source";f.Ia="utm_term";f.Ja="gclid";f.vc="dclid";f.U=0;f.w=0;f.La=15768E6;f.Ma=18E5;f.s=63072E6;f.V=[];f.W=[];f.wc="cse";f.xc="q";f.Ta=50;f.J=d("daum:q,eniro:search_word,naver:query,pchome:q,images.google:q,google:q,yahoo:p,yahoo:q,msn:q,bing:q,aol:query,aol:encquery,aol:q,lycos:query,ask:q,altavista:q,netscape:query,cnn:query,about:terms,mamma:q,alltheweb:q,voila:rdata,virgilio:qs,live:q,baidu:wd,alice:qs,yandex:text,najdi:q,mama:query,seznam:q,search:q,wp:szukaj,onet:qt,szukacz:q,yam:k,kvasir:q,sesam:q,ozu:q,terra:query,mynet:q,ekolay:q,rambler:query,rambler:words");
+f.f="/";f.L=100;f.ga="/__utm.gif";f.la=1;f.ma=1;f.u="|";f.ka=1;f.Ka=1;f.Ua=1;f.b="auto";f.B=1;f.Wb=10;f.zc=10;f.Ac=0.2;f.o=k};var Ea=function(d){function f(a,c,b,j){var i="",d=0,i=N(a,"2"+c,";");if(!M(i)){a=i[q]("^"+b+".");if(a<0)return["",0];i=i[z](a+b[v]+2);i[q]("^")>0&&(i=i[x]("^")[0]);b=i[x](":");i=b[1];d=parseInt(b[0],10);!j&&d<e.m&&(i="")}M(i)&&(i="");return[i,d]}function b(a,c){return"^"+[[c,a[1]][A]("."),a[0]][A](":")}function h(a){var c=new Date,a=new Date(c[da]()+a);return"expires="+a.toGMTString()+"; "}var e=this,m=d;e.m=(new Date)[da]();var g=[F,H,la,J,I,na,oa];e.g=function(){var a=L[w][ca];return m.o?e.Nc(a,
+m.o):a};e.Nc=function(a,c){for(var b=[],j,i=0;i<g[v];i++)j=f(a,g[i],c)[0],M(j)||(b[b[v]]=g[i]+j+";");return b[A]("")};e.l=function(a,c,b){var j=b>0?h(b):"";m.o&&(c=e.Oc(L[w][ca],a,m.o,c,b),a="2"+a,j=b>0?h(m.s):"");a+=c;a=L.qb(a);a[v]>2E3&&(K(69),a=a[z](0,2E3));j=a+"; path="+m.f+"; "+j+e.hb();if(!V.pb())L[w].cookie=j};e.Oc=function(a,c,d,j,i){var g="",i=i||m.s,j=b([j,e.m+i*1],d),g=N(a,"2"+c,";");if(!M(g))return a=b(f(a,c,d,!0),d),g=g[x](a)[A](""),g=j+g;return j};e.hb=function(){return M(m.b)?"":"domain="+
+m.b+";"}};var Fa=function(d){function f(a){a=ua(a)?a[A]("."):"";return M(a)?"-":a}function b(a,c){var n=[],b;if(!M(a)&&(n=a[x]("."),c))for(b=0;b<n[v];b++)xa(n[b])||(n[b]="-");return n}function h(a,c,n){var b=i.I,j,d;for(j=0;j<b[v];j++)d=b[j][0],d+=M(c)?c:c+b[j][4],b[j][2](N(a,d,n))}var e,m,g,a,c,u,j,i=this,s,n=d;i.i=new Ea(d);i.Ba=function(){return k==s||s==i.K()};i.g=function(){return i.i.g()};i.ea=function(){return c?c:"-"};i.Pa=function(a){c=a};i.fa=function(a){s=xa(a)?a*1:"-"};i.da=function(){return f(u)};
+i.X=function(a){u=b(a)};i.yc=function(){i.i.l(I,"",-1)};i.Rb=function(){return s?s:"-"};i.hb=function(){return M(n.b)?"":"domain="+n.b+";"};i.ba=function(){return f(e)};i.Na=function(a){e=b(a,1)};i.z=function(){return f(m)};i.$=function(a){m=b(a,1)};i.ca=function(){return f(g)};i.Oa=function(a){g=b(a,1)};i.qa=function(){return f(a)};i.ra=function(c){a=b(c);for(c=0;c<a[v];c++)c<4&&!xa(a[c])&&(a[c]="-")};i.Fc=function(){return j};i.Dc=function(a){j=a};i.Qb=function(){e=[];m=[];g=[];a=[];c=k;u=[];s=
+k};i.K=function(){for(var a="",c=0;c<i.I[v];c++)a+=i.I[c][1]();return za(a)};i.Z=function(a){var c=i.g(),n=!1;c&&(h(c,a,";"),i.fa(l(i.K())),n=!0);return n};i.Sb=function(a){h(a,"",D);i.fa(N(a,ma,D))};i.Tb=function(){var a=i.I,c=[],n;for(n=0;n<a[v];n++)T(c,a[n][0]+a[n][1]());T(c,ma+i.K());return c[A](D)};i.Ub=function(a,c){var b=i.I,j=n.f;i.Z(a);n.f=c;for(var d=0;d<b[v];d++)if(!M(b[d][1]()))b[d][3]();n.f=j};i.Qa=function(){i.i.l(F,i.ba(),n.s)};i.aa=function(){i.i.l(H,i.z(),n.Ma)};i.Ra=function(){i.i.l(la,
+i.ca(),0)};i.sa=function(){i.i.l(J,i.qa(),n.La)};i.Sa=function(){i.i.l(na,i.ea(),n.s)};i.Y=function(){i.i.l(I,i.da(),n.s)};i.Ec=function(){i.i.l(oa,i.Fc(),0)};i.I=[[F,i.ba,i.Na,i.Qa,"."],[H,i.z,i.$,i.aa,""],[la,i.ca,i.Oa,i.Ra,""],[na,i.ea,i.Pa,i.Sa,""],[J,i.qa,i.ra,i.sa,"."],[I,i.da,i.X,i.Y,"."]]};var Ga="https:"==L[w][y][ea]?"https://ssl.google-analytics.com/":"http://www.google-analytics.com/",Ha=Ga+"p/__utm.gif",Ja=function(){var d=this;d.Bb=function(f,b,h,e,m){b[v]<=2036||m?d.Aa(f+"?"+b,e):b[v]<=8192?L.Xc()?d.Aa(f+"?"+h+"&err=ff2post&len="+b[v],e):d.fd(b,e):d.Aa(f+"?"+h+"&err=len&max=8192&len="+b[v],e)};d.Aa=function(d,b){var h=new Image(1,1);h.src=d;h.onload=function(){h.onload=null;(b||Ba)()}};d.fd=function(f,b){d.ed(f,b)||d.Ob(f,b)};d.ed=function(d,b){var h,e=L[t].XDomainRequest;if(e)h=
+new e,h.open("POST",Ha);else if(e=L[t].XMLHttpRequest)e=new e,"withCredentials"in e&&(h=e,h.open("POST",Ha,!0),h.setRequestHeader("Content-Type","text/plain"));if(h)return h.onreadystatechange=function(){h.readyState==4&&(b&&b(),h=null)},h.send(d),!0;return!1};d.Ob=function(f,b){var h=L[w];if(h.body){f=aa(f);try{var e=h.createElement('<iframe name="'+f+'"></iframe>')}catch(m){e=h.createElement("iframe"),e.name=f}e.height="0";e.width="0";e.style.display="none";e.style.visibility="hidden";var g=h[y],
+g=g[ea]+"//"+g.host+"/favicon.ico",g=Ga+"u/post_iframe.html#"+aa(g),a=function(){e.src="";e.parentNode&&e.parentNode.removeChild(e)};ta(L[t],"beforeunload",a);var c=!1,u=0,j=function(){if(!c){try{if(u>9||e.contentWindow[y].host==h[y].host){c=!0;a();var d=L[t],g="beforeunload",n=a;d.removeEventListener?d.removeEventListener(g,n,!1):d.detachEvent&&d.detachEvent("on"+g,n);b&&b();return}}catch(f){}u++;L.setTimeout(j,200)}};ta(e,"load",j);h.body.appendChild(e);e.src=g}else L.setTimeout(function(){d.Ob(f,
+b)},100)}};var Ka=function(d){var f=this,b=d,h=new Fa(b),e=null,m=!V.pb(),g=function(){};f.Uc=function(){return"https:"==L[w][y][ea]?"https://ssl.google-analytics.com/__utm.gif":"http://www.google-analytics.com/__utm.gif"};f.A=function(a,c,d,j,i,s){e||(e=new Ja);var n=b.B,O=L[w][y];h.Z(d);var B=h.z()[x](".");if(B[1]<500||j){if(i){var S=(new Date)[da](),X;X=(S-B[3])*(b.Ac/1E3);X>=1&&(B[2]=o.min(o.floor(B[2]*1+X),b.zc),B[3]=S)}if(j||!i||B[2]>=1){!j&&i&&(B[2]=B[2]*1-1);j=B[1]*1+1;B[1]=j;i="utmwv="+ia;S="&utms="+
+j;X="&utmn="+Aa();j=i+"e"+S+X;a=i+S+X+(M(O.hostname)?"":"&utmhn="+P(O.hostname))+(b.L==100?"":"&utmsp="+P(b.L))+a;if(0==n||2==n)O=2==n?g:s||g,m&&e.Bb(b.ga,a,j,O,!0);if(1==n||2==n)c="&utmac="+c,j+=c,a+=c+"&utmcc="+f.Tc(d),V.Ab&&(d="&aip=1",j+=d,a+=d),a+="&utmu="+qa.Sc(),m&&e.Bb(f.Uc(),a,j,s)}}h.$(B[A]("."));h.aa()};f.Tc=function(a){for(var c=[],b=[F,J,I,na],d=h.g(),i,g=0;g<b[v];g++)if(i=N(d,b[g]+a,";"),!M(i)){if(b[g]==I){i=i[x](a+".")[1][x]("|")[0];if(M(i))continue;i=a+"."+i}T(c,b[g]+i+";")}return P(c[A]("+"))}};var W=function(){var d=this;d.N=[];d.Va=function(f){for(var b,h=d.N,e=0;e<h[v];e++)b=f==h[e].q?h[e]:b;return b};d.Xb=function(f,b,h,e,m,g,a,c){var u=d.Va(f);k==u?(u=new W.Wc(f,b,h,e,m,g,a,c),T(d.N,u)):(u.tb=b,u.zb=h,u.yb=e,u.wb=m,u.ub=g,u.xb=a,u.vb=c);return u}};W.Qc=function(d,f,b,h,e,m){var g=this;g.Fb=d;g.va=f;g.n=b;g.Cb=h;g.Db=e;g.Eb=m;g.ha=function(){return"&"+["utmt=item","tid="+P(g.Fb),"ipc="+P(g.va),"ipn="+P(g.n),"iva="+P(g.Cb),"ipr="+P(g.Db),"iqt="+P(g.Eb)][A]("&utm")}};
+W.Wc=function(d,f,b,h,e,m,g,a){var c=this;c.q=d;c.tb=f;c.zb=b;c.yb=h;c.wb=e;c.ub=m;c.xb=g;c.vb=a;c.M=[];c.Vb=function(a,b,d,g,n){var e=c.Rc(a),f=c.q;k==e?T(c.M,new W.Qc(f,a,b,d,g,n)):(e.Fb=f,e.va=a,e.n=b,e.Cb=d,e.Db=g,e.Eb=n)};c.Rc=function(a){for(var b,d=c.M,g=0;g<d[v];g++)b=a==d[g].va?d[g]:b;return b};c.ha=function(){return"&"+["utmt=tran","id="+P(c.q),"st="+P(c.tb),"to="+P(c.zb),"tx="+P(c.yb),"sp="+P(c.wb),"ci="+P(c.ub),"rg="+P(c.xb),"co="+P(c.vb)][A]("&utmt")}};var La=function(d){function f(){var b,a,c;a="ShockwaveFlash";var d="$version",j=L[t].navigator;if((j=j?j.plugins:k)&&j[v]>0)for(b=0;b<j[v]&&!c;b++)a=j[b],R(a.name,"Shockwave Flash")&&(c=a.description[x]("Shockwave Flash ")[1]);else{a=a+"."+a;try{b=new ActiveXObject(a+".7"),c=b.GetVariable(d)}catch(e){}if(!c)try{b=new ActiveXObject(a+".6"),c="WIN 6,0,21,0",b.we="always",c=b.GetVariable(d)}catch(f){}if(!c)try{b=new ActiveXObject(a),c=b.GetVariable(d)}catch(n){}c&&(c=c[x](" ")[1][x](","),c=c[0]+"."+
+c[1]+" r"+c[2])}return c?c:h}var b=this,h="-",e=L[t].screen,m=L[t].navigator;b.Nb=e?e.width+"x"+e.height:h;b.Mb=e?e.colorDepth+"-bit":h;b.cd=P(L[w].characterSet?L[w].characterSet:L[w].charset?L[w].charset:h);b.Lb=(m&&m.language?m.language:m&&m.browserLanguage?m.browserLanguage:h)[C]();b.Kb=m&&m.javaEnabled()?1:0;b.dd=d?f():h;b.dc=function(){return D+"utm"+["cs="+P(b.cd),"sr="+b.Nb,"sc="+b.Mb,"ul="+b.Lb,"je="+b.Kb,"fl="+P(b.dd)][A]("&utm")};b.cc=function(){for(var d=L[t].navigator,a=L[t].history[v],
+d=d.appName+d.version+b.Lb+d.platform+d.userAgent+b.Kb+b.Nb+b.Mb+(L[w][ca]?L[w][ca]:"")+(L[w].referrer?L[w].referrer:""),c=d[v];a>0;)d+=a--^c++;return za(d)}};var Z=function(d,f,b,h){function e(a){var c="",c=a[x]("://")[1][C]();R(c,"/")&&(c=c[x]("/")[0]);return c}var m=h,g=this;g.a=d;g.ob=f;g.m=b;g.mb=function(a){var c=g.ua();return new Z.v(N(a,m.Ea+E,D),N(a,m.Ha+E,D),N(a,m.Ja+E,D),g.R(a,m.Ca,"(not set)"),g.R(a,m.Fa,"(not set)"),g.R(a,m.Ia,c&&!M(c.G)?Q(c.G):k),g.R(a,m.Da,k),N(a,m.vc+E,D))};g.nb=function(a){var c=e(a),b;b=a;var d="";b=b[x]("://")[1][C]();R(b,"/")&&(b=b[x]("/")[1],R(b,"?")&&(d=b[x]("?")[0]));b=d;if(R(c,"google")&&(a=a[x]("?")[A](D),R(a,D+
+m.xc+E)&&b==m.wc))return!0;return!1};g.ua=function(){var a,c=g.ob,b,d=m.J;if(!M(c)&&"0"!=c&&R(c,"://")&&!g.nb(c)){a=e(c);for(var i=0;i<d[v];i++)if(b=d[i],R(a,b.ib[C]())&&(c=c[x]("?")[A](D),R(c,D+b.jb+E)))return a=c[x](D+b.jb+E)[1],R(a,D)&&(a=a[x](D)[0]),new Z.v(k,b.ib,k,"(organic)","organic",a,k,k)}};g.R=function(a,c,b){a=N(a,c+E,D);return b=!M(a)?Q(a):!M(b)?b:"-"};g.Bc=function(a){var c=m.V,b=!1;if(a&&"organic"==a.P)for(var a=Q(a.G)[C](),d=0;d<c[v];d++)b=b||c[d][C]()==a;return b};g.lb=function(){var a=
+"",c="",a=g.ob;if(!M(a)&&"0"!=a&&R(a,"://")&&!g.nb(a))return a=a[x]("://")[1],R(a,"/")&&(c=a[z](a[q]("/")),c=c[x]("?")[0],a=a[x]("/")[0][C]()),0==a[q]("www.")&&(a=a[z](4)),new Z.v(k,a,k,"(referral)","referral",k,c,k)};g.kb=function(a){var c="";m.U&&(c=a&&a.hash?a[fa][z](a[fa][q]("#")):"",c=""!=c?c+D:c);c+=a.search;return c};g.ta=function(){return new Z.v(k,"(direct)",k,"(direct)","(none)",k,k,k)};g.Cc=function(a){var c=!1,b=m.W;if(a&&"referral"==a.P)for(var a=P(a.Q)[C](),d=0;d<b[v];d++)c=c||R(a,b[d][C]());
+return c};g.h=function(a){return k!=a&&a.fb()};g.te=function(a){var a=N(a,J+g.a+".",";"),c=a[x]("."),a=new Z.v;a.gb(c.slice(4)[A]("."));if(!g.h(a))return!0;c=L[w][y];c=g.kb(c);c=g.mb(c);g.h(c)||(c=g.ua(),g.h(c)||(c=g.lb()));return g.h(c)&&a.H()[C]()!=c.H()[C]()};g.Pb=function(a,c){if(m.Ka){var b="",d="-",e,f=0,n,h,B=g.a;if(a){h=a.g();b=g.kb(L[w][y]);if(m.w&&a.Ba()&&(d=Q(a.qa()),!M(d)&&!R(d,";"))){a.ra(d);a.sa();return}d=N(h,J+B+".",";");e=g.mb(b);if(g.h(e)&&(b=N(b,m.Ga+E,D),"1"==b&&!M(d)))return;
+if(!g.h(e)){e=g.ua();b=g.Bc(e);if(!M(d)&&b)return;b&&(e=g.ta())}if(!g.h(e)&&c){e=g.lb();b=g.Cc(e);if(!M(d)&&b)return;b&&(e=g.ta())}g.h(e)||M(d)&&c&&(e=g.ta());if(g.h(e)&&(M(d)||(f=d[x]("."),n=new Z.v,n.gb(f.slice(4)[A](".")),n=n.H()[C]()==e.H()[C](),f=f[3]*1),!n||c))h=N(h,F+B+".",";"),n=h.lastIndexOf("."),h=n>9?h[z](n+1)*1:0,f++,h=0==h?1:h,a.ra([B,g.m,h,f,e.H()][A](".")),a.sa()}}}};
+Z.v=function(d,f,b,h,e,m,g,a){var c=this;c.q=d;c.Q=f;c.ya=b;c.n=h;c.P=e;c.G=m;c.Gb=g;c.xa=a;c.H=function(){var a=[],b=[["cid",c.q],["csr",c.Q],["gclid",c.ya],["ccn",c.n],["cmd",c.P],["ctr",c.G],["cct",c.Gb],["dclid",c.xa]],d,e;if(c.fb())for(d=0;d<b[v];d++)M(b[d][1])||(e=b[d][1][x]("+")[A]("%20"),e=e[x](" ")[A]("%20"),T(a,"utm"+b[d][0]+E+e));return L.qb(a[A]("|"))};c.fb=function(){return!(M(c.q)&&M(c.Q)&&M(c.ya)&&M(c.xa))};c.gb=function(a){var b=function(b){return Q(N(a,"utm"+b+E,"|"))};c.q=b("cid");
+c.Q=b("csr");c.ya=b("gclid");c.n=b("ccn");c.P=b("cmd");c.G=b("ctr");c.Gb=b("cct");c.xa=b("dclid")}};var Ma=function(d,f,b,h){var e=this,m=f,g=E,a=d,c=h;e.S=b;e.wa="";e.r={};e.$b=function(){var a;a=N(e.S.g(),I+m+".",";")[x](m+".")[1];if(!M(a)){a=a[x]("|");var b=e.r,c=a[1],d;if(!M(c))for(var c=c[x](","),n=0;n<c[v];n++)d=c[n],M(d)||(d=d[x](g),d[v]==4&&(b[d[0]]=[Q(d[1]),Q(d[2]),1]));e.wa=Q(a[0]);e.T()}};e.T=function(){e.Pc();var a=P(e.wa),b,c,d="";for(b in e.r)(c=e.r[b])&&1===c[2]&&(d+=b+g+P(c[0])+g+P(c[1])+g+1+",");M(d)||(a+="|"+d);M(a)?e.S.yc():(e.S.X(m+"."+a),e.S.Y())};e.bc=function(a){e.wa=a;e.T()};
+e.ac=function(b,c,d,g){1!=g&&2!=g&&3!=g&&(g=3);var n=!1;if(c&&d&&b>0&&b<=a.Ta){var f=P(c),h=P(d);f[v]+h[v]<=64&&(e.r[b]=[c,d,g],e.T(),n=!0)}return n};e.Zb=function(a){if((a=e.r[a])&&1===a[2])return a[1]};e.Yb=function(a){var b=e.r;b[a]&&(delete b[a],e.T())};e.Pc=function(){c.t(8);c.t(9);c.t(11);var a=e.r,b,d;for(d in a)if(b=a[d])c.j(8,d,b[0]),c.j(9,d,b[1]),(b=b[2])&&3!=b&&c.j(11,d,""+b)}};var Na=function(){function d(a,b,c,d){k==g[a]&&(g[a]={});k==g[a][b]&&(g[a][b]=[]);g[a][b][c]=d}function f(a,b,c){if(k!=g[a]&&k!=g[a][b])return g[a][b][c]}function b(a,b){if(k!=g[a]&&k!=g[a][b]){g[a][b]=k;var c=!0,d;for(d=0;d<u[v];d++)if(k!=g[a][u[d]]){c=!1;break}c&&(g[a]=k)}}function h(a){var b="",c=!1,d,e;for(d=0;d<u[v];d++)if(e=a[u[d]],k!=e){c&&(b+=u[d]);for(var c=[],g=k,f=k,f=0;f<e[v];f++)if(k!=e[f]){g="";f!=S&&k==e[f-1]&&(g+=f[r]()+n);var h;h=e[f];for(var O="",m=k,U=k,wa=k,m=0;m<h[v];m++)U=h[p](m),
+wa=B[U],O+=k!=wa?wa:U;h=O;g+=h;T(c,g)}e=j+c[A](s)+i;b+=e;c=!1}else c=!0;return b}var e=this,m=sa(e),g={},a="k",c="v",u=[a,c],j="(",i=")",s="*",n="!",O="'",B={};B[O]="'0";B[i]="'1";B[s]="'2";B[n]="'3";var S=1;e.Yc=function(a){return k!=g[a]};e.C=function(){var a="",b;for(b in g)k!=g[b]&&(a+=b[r]()+h(g[b]));return a};e.hc=function(a){if(a==k)return e.C();var b=a.C(),c;for(c in g)k!=g[c]&&!a.Yc(c)&&(b+=c[r]()+h(g[c]));return b};e.j=m("_setKey",89,function(b,c,n){if(typeof n!="string")return!1;d(b,a,
+c,n);return!0});e.ja=m("_setValue",90,function(a,b,n){if(typeof n!="number"&&(k==Number||!(n instanceof Number))||o.round(n)!=n||n==NaN||n==Infinity)return!1;d(a,c,b,n[r]());return!0});e.fc=m("_getKey",87,function(b,c){return f(b,a,c)});e.gc=m("_getValue",88,function(a,b){return f(a,c,b)});e.t=m("_clearKey",85,function(c){b(c,a)});e.ia=m("_clearValue",86,function(a){b(a,c)})};var Oa=function(d,f){var b=this,h=sa(b);b.ze=f;b.gd=d;b.Za=h("_trackEvent",91,function(d,h,g){return f.Za(b.gd,d,h,g)})};var Pa=function(d,f){var b=this,h=L.Gc(),e=L.Hc(),m=10;b.rb=new Na;b.Kc=function(){var b,a="timing",c="onloadT";h&&h[c]!=k&&h.isValidLoadTime?b=h[c]:e&&e[a]&&(b=e[a].loadEventStart-e[a].fetchStart);return b};b.Mc=function(){return d.D()&&d.Xa()%100<m};b.Lc=function(){var e="&utmt=event&utme="+P(b.rb.C())+d.na();f.A(e,d.p,d.a,!1,!0)};b.Jc=function(b){b=o.min(o.floor(b/100),5E3);return b>0?b+"00":"0"};b.sb=function(){var d=b.Kc();if(d==k||isNaN(d))return!1;if(d<=0)return!0;if(d>2147483648)return!1;
+var a=b.rb;a.t(14);a.ia(14);var c=b.Jc(d);a.j(14,1,c)&&a.ja(14,1,d)&&b.Lc();h&&h.isValidLoadTime!=k&&h.setPageReadyTime();return!1};b.Wa=function(){if(!b.Mc())return!1;if(!L.Ic())return!1;b.sb()&&ta(L[t],"load",b.sb,!1);return!0}};var $=function(){};$.Zc=function(d){var f="gaso=",b=L[w][y].hash;d=b&&1==b[q](f)?N(b,f,D):(b=L[t].name)&&0<=b[q](f)?N(b,f,D):N(d.g(),oa,";");return d};$.ad=function(d,f){var b=(f||"www")+".google.com",b="https://"+b+"/analytics/reporting/overlay_js?gaso="+d+D+Aa(),h="_gasojs",e=L[w].createElement("script");e.type="text/javascript";e.src=b;if(h)e.id=h;(L[w].getElementsByTagName("head")[0]||L[w].getElementsByTagName("body")[0]).appendChild(e)};
+$.load=function(d,f){if(!$.$c){var b=$.Zc(f),h=b&&b.match(/^(?:\|([-0-9a-z.]{1,30})\|)?([-.\w]{10,1200})$/i);if(h)f.Dc(b),f.Ec(),V._gasoDomain=d.b,V._gasoCPath=d.f,$.ad(h[2],h[1]);$.$c=!0}};var Qa=function(d,f,b){function h(){if("auto"==j.b){var a=L[w].domain;"www."==a[z](0,4)&&(a=a[z](4));j.b=a}j.b=j.b[C]()}function e(){h();var a=j.b,b=a[q]("www.google.")*a[q](".google.")*a[q]("google.");return b||"/"!=j.f||a[q]("google.org")>-1}function m(b,c,d){if(M(b)||M(c)||M(d))return"-";b=N(b,F+a.a+".",c);M(b)||(b=b[x]("."),b[5]=""+(b[5]?b[5]*1+1:1),b[3]=b[4],b[4]=d,b=b[A]("."));return b}function g(){return"file:"!=L[w][y][ea]&&e()}var a=this,c=sa(a),u=k,j=new Da,i=!1,s=k;a.n=d;a.m=o.round((new Date)[da]()/
+1E3);a.p=f||"UA-XXXXX-X";a.ab=L[w].referrer;a.oa=k;a.d=k;a.F=!1;a.O=k;a.e=k;a.bb=k;a.pa=k;a.a=k;a.k=k;j.o=b?P(b):k;a.eb=!1;a.mc=function(){return Aa()^a.O.cc()&2147483647};a.lc=function(){if(!j.b||""==j.b||"none"==j.b)return j.b="",1;h();return j.Ua?za(j.b):1};a.kc=function(a,b){if(M(a))a="-";else{b+=j.f&&"/"!=j.f?j.f:"";var c=a[q](b),a=c>=0&&c<=8?"0":"["==a[p](0)&&"]"==a[p](a[v]-1)?"-":a}return a};a.na=function(b){var c="";c+=j.ka?a.O.dc():"";c+=j.la&&!M(L[w].title)?"&utmdt="+P(L[w].title):"";var d;
+d=L.Ya(!0);if(!d.hid)d.hid=Aa();d=d.hid;c+="&utmhid="+d+"&utmr="+P(l(a.oa))+"&utmp="+P(a.pc(b));return c};a.pc=function(a){var b=L[w][y];a&&K(13);return a=k!=a&&""!=a?P(a,!0):P(b.pathname+b.search,!0)};a.uc=function(b){if(a.D()){var c="";a.e!=k&&a.e.C()[v]>0&&(c+="&utme="+P(a.e.C()));c+=a.na(b);u.A(c,a.p,a.a)}};a.jc=function(){var b=new Fa(j);return b.Z(a.a)?b.Tb():k};a.cb=c("_getLinkerUrl",52,function(b,c){var d=b[x]("#"),e=b,f=a.jc();if(f)if(c&&1>=d[v])e+="#"+f;else if(!c||1>=d[v])1>=d[v]?e+=(R(b,
+"?")?D:"?")+f:e=d[0]+(R(b,"?")?D:"?")+f+"#"+d[1];return e});a.nc=function(){var b=a.m,c=a.k,d=c.g(),e=a.a+"",f=L.Ya(),g,h=R(d,F+e+"."),i=R(d,H+e),u=R(d,la+e),s,G=[],Y="",Ia=!1,d=M(d)?"":d;if(j.w&&!a.eb){g=L[w][y]&&L[w][y].hash?L[w][y][fa][z](L[w][y][fa][q]("#")):"";j.U&&!M(g)&&(Y=g+D);Y+=L[w][y].search;if(!M(Y)&&R(Y,F))c.Sb(Y),c.Ba()||c.Qb(),s=c.ba(),a.eb=!0;g=c.ea;var va=c.Pa,U=c.Sa;M(g())||(va(Q(g())),R(g(),";")||U());g=c.da;va=c.X;U=c.Y;M(g())||(va(g()),R(g(),";")||U())}M(s)?h?(s=!i||!u)?(s=m(d,
+";",l(b)),a.F=!0):(s=N(d,F+e+".",";"),G=N(d,H+e,";")[x](".")):(s=[e,a.mc(),b,b,b,1][A]("."),Ia=a.F=!0):M(c.z())||M(c.ca())?(s=m(Y,D,l(b)),a.F=!0):(G=c.z()[x]("."),e=G[0]);s=s[x](".");L[t]&&f&&f.dh==e&&!j.o&&(s[4]=f.sid?f.sid:s[4],Ia&&(s[3]=f.sid?f.sid:s[4],f.vid&&(b=f.vid[x]("."),s[1]=b[0],s[2]=b[1])));c.Na(s[A]("."));G[0]=e;G[1]=G[1]?G[1]:0;G[2]=k!=G[2]?G[2]:j.Wb;G[3]=G[3]?G[3]:s[4];c.$(G[A]("."));c.Oa(e);M(c.Rb())||c.fa(c.K());c.Qa();c.aa();c.Ra()};a.oc=function(){u=new Ka(j)};a.getName=c("_getName",
+58,function(){return a.n});a.c=c("_initData",2,function(){var b;if(!i){if(!a.O)a.O=new La(j.ma);a.a=a.lc();a.k=new Fa(j);a.e=new Na;s=new Ma(j,l(a.a),a.k,a.e);a.oc()}if(g()){if(!i)a.oa=a.kc(a.ab,L[w].domain),b=new Z(l(a.a),a.oa,a.m,j);a.nc(b);s.$b()}if(!i)g()&&b.Pb(a.k,a.F),a.bb=new Na,$.load(j,a.k),i=!0});a.Xa=c("_visitCode",54,function(){a.c();var b=N(a.k.g(),F+a.a+".",";"),b=b[x](".");return b[v]<4?"":b[1]});a.qd=c("_cookiePathCopy",30,function(b){a.c();a.k&&a.k.Ub(a.a,b)});a.D=function(){return a.Xa()%
+1E4<j.L*100};a.re=c("_trackPageview",1,function(b){if(g())a.c(),a.uc(b),a.F=!1});a.se=c("_trackTrans",18,function(){var b=a.a,c=[],d,e,f;a.c();if(a.d&&a.D()){for(d=0;d<a.d.N[v];d++){e=a.d.N[d];T(c,e.ha());for(f=0;f<e.M[v];f++)T(c,e.M[f].ha())}for(d=0;d<c[v];d++)u.A(c[d],a.p,b,!0)}});a.me=c("_setTrans",20,function(){var b,c,d,e;b=L[w].getElementById?L[w].getElementById("utmtrans"):L[w].utmform&&L[w].utmform.utmtrans?L[w].utmform.utmtrans:k;a.c();if(b&&b.value){a.d=new W;e=b.value[x]("UTM:");j.u=!j.u||
+""==j.u?"|":j.u;for(b=0;b<e[v];b++){e[b]=ya(e[b]);c=e[b][x](j.u);for(d=0;d<c[v];d++)c[d]=ya(c[d]);"T"==c[0]?a.$a(c[1],c[2],c[3],c[4],c[5],c[6],c[7],c[8]):"I"==c[0]&&a.ic(c[1],c[2],c[3],c[4],c[5],c[6])}}});a.$a=c("_addTrans",21,function(b,c,d,e,f,g,h,i){a.d=a.d?a.d:new W;return a.d.Xb(b,c,d,e,f,g,h,i)});a.ic=c("_addItem",19,function(b,c,d,e,f,g){var h;a.d=a.d?a.d:new W;(h=a.d.Va(b))||(h=a.$a(b,"","","","","","",""));h.Vb(c,d,e,f,g)});a.oe=c("_setVar",22,function(b){b&&""!=b&&e()&&(a.c(),s.bc(b),a.D()&&
+u.A("&utmt=var",a.p,a.a))});a.Yd=c("_setCustomVar",10,function(b,c,d,e){a.c();return s.ac(b,c,d,e)});a.td=c("_deleteCustomVar",35,function(b){a.c();s.Yb(b)});a.Cd=c("_getVisitorCustomVar",50,function(b){a.c();return s.Zb(b)});a.fe=c("_setMaxCustomVariables",71,function(a){j.Ta=a});a.link=c("_link",101,function(b,c){j.w&&b&&(a.c(),L.ec(a.cb(b,c)))});a.Fd=c("_linkByPost",102,function(b,c){if(j.w&&b&&b.action)a.c(),b.action=a.cb(b.action,c)});a.pe=c("_setXKey",83,function(b,c,d){a.e.j(b,c,d)});a.qe=
+c("_setXValue",84,function(b,c,d){a.e.ja(b,c,d)});a.Dd=c("_getXKey",76,function(b,c){return a.e.fc(b,c)});a.Ed=c("_getXValue",77,function(b,c){return a.e.gc(b,c)});a.od=c("_clearXKey",72,function(b){a.e.t(b)});a.pd=c("_clearXValue",73,function(b){a.e.ia(b)});a.sd=c("_createXObj",75,function(){a.c();return new Na});a.qc=c("_sendXEvent",78,function(b){var c="";a.c();a.D()&&(c+="&utmt=event&utme="+P(a.e.hc(b))+a.na(),u.A(c,a.p,a.a,!1,!0))});a.rd=c("_createEventTracker",74,function(b){a.c();return new Oa(b,
+a)});a.Za=c("_trackEvent",4,function(b,c,d,e){a.c();var f=a.bb;k!=b&&k!=c&&""!=b&&""!=c?(f.t(5),f.ia(5),(b=f.j(5,1,b)&&f.j(5,2,c)&&(k==d||f.j(5,3,d))&&(k==e||f.ja(5,1,e)))&&a.qc(f)):b=!1;return b});a.Wa=c("_trackPageLoadTime",100,function(){a.c();if(!a.pa)a.pa=new Pa(a,u);return a.pa.Wa()});a.wd=function(){return j};a.ae=c("_setDomainName",6,function(a){j.b=a});a.kd=c("_addOrganic",14,function(a,b,c){j.J.splice(c?0:j.J[v],0,new Ca(a,b))});a.nd=c("_clearOrganic",70,function(){j.J=[]});a.hd=c("_addIgnoredOrganic",
+15,function(a){T(j.V,a)});a.ld=c("_clearIgnoredOrganic",97,function(){j.V=[]});a.jd=c("_addIgnoredRef",31,function(a){T(j.W,a)});a.md=c("_clearIgnoredRef",32,function(){j.W=[]});a.Id=c("_setAllowHash",8,function(a){j.Ua=a?1:0});a.Td=c("_setCampaignTrack",36,function(a){j.Ka=a?1:0});a.Ud=c("_setClientInfo",66,function(a){j.ka=a?1:0});a.vd=c("_getClientInfo",53,function(){return j.ka});a.Vd=c("_setCookiePath",9,function(a){j.f=a});a.ne=c("_setTransactionDelim",82,function(a){j.u=a});a.Xd=c("_setCookieTimeout",
+25,function(b){a.rc(b*1E3)});a.rc=c("_setCampaignCookieTimeout",29,function(a){j.La=a});a.Zd=c("_setDetectFlash",61,function(a){j.ma=a?1:0});a.xd=c("_getDetectFlash",65,function(){return j.ma});a.$d=c("_setDetectTitle",62,function(a){j.la=a?1:0});a.yd=c("_getDetectTitle",56,function(){return j.la});a.ce=c("_setLocalGifPath",46,function(a){j.ga=a});a.zd=c("_getLocalGifPath",57,function(){return j.ga});a.ee=c("_setLocalServerMode",92,function(){j.B=0});a.ie=c("_setRemoteServerMode",63,function(){j.B=
+1});a.de=c("_setLocalRemoteServerMode",47,function(){j.B=2});a.Ad=c("_getServiceMode",59,function(){return j.B});a.je=c("_setSampleRate",45,function(a){j.L=a});a.ke=c("_setSessionTimeout",27,function(b){a.sc(b*1E3)});a.sc=c("_setSessionCookieTimeout",26,function(a){j.Ma=a});a.Jd=c("_setAllowLinker",11,function(a){j.w=a?1:0});a.Hd=c("_setAllowAnchor",7,function(a){j.U=a?1:0});a.Qd=c("_setCampNameKey",41,function(a){j.Ca=a});a.Md=c("_setCampContentKey",38,function(a){j.Da=a});a.Nd=c("_setCampIdKey",
+39,function(a){j.Ea=a});a.Od=c("_setCampMediumKey",40,function(a){j.Fa=a});a.Pd=c("_setCampNOKey",42,function(a){j.Ga=a});a.Rd=c("_setCampSourceKey",43,function(a){j.Ha=a});a.Sd=c("_setCampTermKey",44,function(a){j.Ia=a});a.Ld=c("_setCampCIdKey",37,function(a){j.Ja=a});a.ud=c("_getAccount",64,function(){return a.p});a.Gd=c("_setAccount",3,function(b){a.p=b});a.ge=c("_setNamespace",48,function(a){j.o=a?P(a):k});a.Bd=c("_getVersion",60,function(){return ia});a.Kd=c("_setAutoTrackOutbound",79,Ba);a.le=
+c("_setTrackOutboundSubdomains",81,Ba);a.be=c("_setHrefExamineLimit",80,Ba);a.he=c("_setReferrerOverride",49,function(b){a.ab=b});a.Wd=c("_setCookiePersistence",24,function(b){a.tc(b)});a.tc=c("_setVisitorCookieTimeout",28,function(a){j.s=a})};var Ra=function(){var d=this,f=sa(d);d.Ab=!1;d.Ib={};d.bd=0;d._gasoDomain=k;d._gasoCPath=k;d.ve=f("_getTracker",0,function(b,f){return d.za(b,k,f)});d.za=f("_createTracker",55,function(b,d,e){d&&K(23);e&&K(67);d==k&&(d="~"+V.bd++);return V.Ib[d]=new Qa(d,b,e)});d.Hb=f("_getTrackerByName",51,function(b){b=b||"";return V.Ib[b]||V.za(k,b)});d.pb=function(){var b=L.Vc();return b&&b[ka]&&b[ka]()};d.ue=f("_anonymizeIp",16,function(){d.Ab=!0})};var Ta=function(){var d=this,f=sa(d);d.xe=f("_createAsyncTracker",33,function(b,d){return V.za(b,d||"")});d.ye=f("_getAsyncTracker",34,function(b){return V.Hb(b)});d.push=function(){K(5);for(var b=arguments,d=0,e=0;e<b[v];e++)try{if(typeof b[e]==="function")b[e]();else{var f="",g=b[e][0],a=g.lastIndexOf(".");a>0&&(f=g[z](0,a),g=g[z](a+1));var c=f==ga?V:f==ha?Sa:V.Hb(f);c[g].apply(c,b[e].slice(1))}}catch(u){d++}return d}};var V=new Ra;var Ua=L[t][ga];Ua&&typeof Ua._getTracker=="function"?V=Ua:L[t][ga]=V;var Sa=new Ta;a:{var Va=L[t][ha],Wa=!1;if(Va&&typeof Va[ba]=="function"&&(Wa=ua(Va),!Wa))break a;L[t][ha]=Sa;Wa&&Sa[ba].apply(Sa,Va)};})();
diff --git a/js/modernizr/test/caniuse_files/jquery.min.js b/js/modernizr/test/caniuse_files/jquery.min.js
new file mode 100644 (file)
index 0000000..b2ac174
--- /dev/null
@@ -0,0 +1,18 @@
+/*!
+ * jQuery JavaScript Library v1.6.1
+ * http://jquery.com/
+ *
+ * Copyright 2011, John Resig
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * Includes Sizzle.js
+ * http://sizzlejs.com/
+ * Copyright 2011, The Dojo Foundation
+ * Released under the MIT, BSD, and GPL Licenses.
+ *
+ * Date: Thu May 12 15:04:36 2011 -0400
+ */
+(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cv(a){if(!cj[a]){var b=f("<"+a+">").appendTo("body"),d=b.css("display");b.remove();if(d==="none"||d===""){ck||(ck=c.createElement("iframe"),ck.frameBorder=ck.width=ck.height=0),c.body.appendChild(ck);if(!cl||!ck.createElement)cl=(ck.contentWindow||ck.contentDocument).document,cl.write("<!doctype><html><body></body></html>");b=cl.createElement(a),cl.body.appendChild(b),d=f.css(b,"display"),c.body.removeChild(ck)}cj[a]=d}return cj[a]}function cu(a,b){var c={};f.each(cp.concat.apply([],cp.slice(0,b)),function(){c[this]=a});return c}function ct(){cq=b}function cs(){setTimeout(ct,0);return cq=f.now()}function ci(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ch(){try{return new a.XMLHttpRequest}catch(b){}}function cb(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g<i;g++){if(g===1)for(h in a.converters)typeof h=="string"&&(e[h.toLowerCase()]=a.converters[h]);l=k,k=d[g];if(k==="*")k=l;else if(l!=="*"&&l!==k){m=l+" "+k,n=e[m]||e["* "+k];if(!n){p=b;for(o in e){j=o.split(" ");if(j[0]===l||j[0]==="*"){p=e[j[1]+" "+k];if(p){o=e[o],o===!0?n=p:p===!0&&(n=o);break}}}}!n&&!p&&f.error("No conversion from "+m.replace(" "," to ")),n!==!0&&(c=n?n(c):p(o(c)))}}return c}function ca(a,c,d){var e=a.contents,f=a.dataTypes,g=a.responseFields,h,i,j,k;for(i in g)i in d&&(c[g[i]]=d[i]);while(f[0]==="*")f.shift(),h===b&&(h=a.mimeType||c.getResponseHeader("content-type"));if(h)for(i in e)if(e[i]&&e[i].test(h)){f.unshift(i);break}if(f[0]in d)j=f[0];else{for(i in d){if(!f[0]||a.converters[i+" "+f[0]]){j=i;break}k||(k=i)}j=j||k}if(j){j!==f[0]&&f.unshift(j);return d[j]}}function b_(a,b,c,d){if(f.isArray(b))f.each(b,function(b,e){c||bF.test(a)?d(a,e):b_(a+"["+(typeof e=="object"||f.isArray(e)?b:"")+"]",e,c,d)});else if(!c&&b!=null&&typeof b=="object")for(var e in b)b_(a+"["+e+"]",b[e],c,d);else d(a,b)}function b$(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h=a[f],i=0,j=h?h.length:0,k=a===bU,l;for(;i<j&&(k||!l);i++)l=h[i](c,d,e),typeof l=="string"&&(!k||g[l]?l=b:(c.dataTypes.unshift(l),l=b$(a,c,d,e,l,g)));(k||!l)&&!g["*"]&&(l=b$(a,c,d,e,"*",g));return l}function bZ(a){return function(b,c){typeof b!="string"&&(c=b,b="*");if(f.isFunction(c)){var d=b.toLowerCase().split(bQ),e=0,g=d.length,h,i,j;for(;e<g;e++)h=d[e],j=/^\+/.test(h),j&&(h=h.substr(1)||"*"),i=a[h]=a[h]||[],i[j?"unshift":"push"](c)}}}function bD(a,b,c){var d=b==="width"?bx:by,e=b==="width"?a.offsetWidth:a.offsetHeight;if(c==="border")return e;f.each(d,function(){c||(e-=parseFloat(f.css(a,"padding"+this))||0),c==="margin"?e+=parseFloat(f.css(a,"margin"+this))||0:e-=parseFloat(f.css(a,"border"+this+"Width"))||0});return e}function bn(a,b){b.src?f.ajax({url:b.src,async:!1,dataType:"script"}):f.globalEval((b.text||b.textContent||b.innerHTML||"").replace(bf,"/*$0*/")),b.parentNode&&b.parentNode.removeChild(b)}function bm(a){f.nodeName(a,"input")?bl(a):a.getElementsByTagName&&f.grep(a.getElementsByTagName("input"),bl)}function bl(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bk(a){return"getElementsByTagName"in a?a.getElementsByTagName("*"):"querySelectorAll"in a?a.querySelectorAll("*"):[]}function bj(a,b){var c;if(b.nodeType===1){b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase();if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(f.expando)}}function bi(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c=f.expando,d=f.data(a),e=f.data(b,d);if(d=d[c]){var g=d.events;e=e[c]=f.extend({},d);if(g){delete e.handle,e.events={};for(var h in g)for(var i=0,j=g[h].length;i<j;i++)f.event.add(b,h+(g[h][i].namespace?".":"")+g[h][i].namespace,g[h][i],g[h][i].data)}}}}function bh(a,b){return f.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function X(a,b,c){b=b||0;if(f.isFunction(b))return f.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return f.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=f.grep(a,function(a){return a.nodeType===1});if(S.test(b))return f.filter(b,d,!c);b=f.filter(b,d)}return f.grep(a,function(a,d){return f.inArray(a,b)>=0===c})}function W(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function O(a,b){return(a&&a!=="*"?a+".":"")+b.replace(A,"`").replace(B,"&")}function N(a){var b,c,d,e,g,h,i,j,k,l,m,n,o,p=[],q=[],r=f._data(this,"events");if(!(a.liveFired===this||!r||!r.live||a.target.disabled||a.button&&a.type==="click")){a.namespace&&(n=new RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)")),a.liveFired=this;var s=r.live.slice(0);for(i=0;i<s.length;i++)g=s[i],g.origType.replace(y,"")===a.type?q.push(g.selector):s.splice(i--,1);e=f(a.target).closest(q,a.currentTarget);for(j=0,k=e.length;j<k;j++){m=e[j];for(i=0;i<s.length;i++){g=s[i];if(m.selector===g.selector&&(!n||n.test(g.namespace))&&!m.elem.disabled){h=m.elem,d=null;if(g.preType==="mouseenter"||g.preType==="mouseleave")a.type=g.preType,d=f(a.relatedTarget).closest(g.selector)[0],d&&f.contains(h,d)&&(d=h);(!d||d!==h)&&p.push({elem:h,handleObj:g,level:m.level})}}}for(j=0,k=p.length;j<k;j++){e=p[j];if(c&&e.level>c)break;a.currentTarget=e.elem,a.data=e.handleObj.data,a.handleObj=e.handleObj,o=e.handleObj.origHandler.apply(e.elem,arguments);if(o===!1||a.isPropagationStopped()){c=e.level,o===!1&&(b=!1);if(a.isImmediatePropagationStopped())break}}return b}}function L(a,c,d){var e=f.extend({},d[0]);e.type=a,e.originalEvent={},e.liveFired=b,f.event.handle.call(c,e),e.isDefaultPrevented()&&d[0].preventDefault()}function F(){return!0}function E(){return!1}function m(a,c,d){var e=c+"defer",g=c+"queue",h=c+"mark",i=f.data(a,e,b,!0);i&&(d==="queue"||!f.data(a,g,b,!0))&&(d==="mark"||!f.data(a,h,b,!0))&&setTimeout(function(){!f.data(a,g,b,!0)&&!f.data(a,h,b,!0)&&(f.removeData(a,e,!0),i.resolve())},0)}function l(a){for(var b in a)if(b!=="toJSON")return!1;return!0}function k(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(j,"$1-$2").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNaN(d)?i.test(d)?f.parseJSON(d):d:parseFloat(d)}catch(g){}f.data(a,c,d)}else d=b}return d}var c=a.document,d=a.navigator,e=a.location,f=function(){function H(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(H,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/\d/,n=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,o=/^[\],:{}\s]*$/,p=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,q=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,r=/(?:^|:|,)(?:\s*\[)+/g,s=/(webkit)[ \/]([\w.]+)/,t=/(opera)(?:.*version)?[ \/]([\w.]+)/,u=/(msie) ([\w.]+)/,v=/(mozilla)(?:.*? rv:([\w.]+))?/,w=d.userAgent,x,y,z,A=Object.prototype.toString,B=Object.prototype.hasOwnProperty,C=Array.prototype.push,D=Array.prototype.slice,E=String.prototype.trim,F=Array.prototype.indexOf,G={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=n.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.6.1",length:0,size:function(){return this.length},toArray:function(){return D.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?C.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),y.done(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(D.apply(this,arguments),"slice",D.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:C,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j<k;j++)if((a=arguments[j])!=null)for(c in a){d=i[c],f=a[c];if(i===f)continue;l&&f&&(e.isPlainObject(f)||(g=e.isArray(f)))?(g?(g=!1,h=d&&e.isArray(d)?d:[]):h=d&&e.isPlainObject(d)?d:{},i[c]=e.extend(l,h,f)):f!==b&&(i[c]=f)}return i},e.extend({noConflict:function(b){a.$===e&&(a.$=g),b&&a.jQuery===e&&(a.jQuery=f);return e},isReady:!1,readyWait:1,holdReady:function(a){a?e.readyWait++:e.ready(!0)},ready:function(a){if(a===!0&&!--e.readyWait||a!==!0&&!e.isReady){if(!c.body)return setTimeout(e.ready,1);e.isReady=!0;if(a!==!0&&--e.readyWait>0)return;y.resolveWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").unbind("ready")}},bindReady:function(){if(!y){y=e._Deferred();if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",z,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",z),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&H()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNaN:function(a){return a==null||!m.test(a)||isNaN(a)},type:function(a){return a==null?String(a):G[A.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;if(a.constructor&&!B.call(a,"constructor")&&!B.call(a.constructor.prototype,"isPrototypeOf"))return!1;var c;for(c in a);return c===b||B.call(a,c)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw a},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(o.test(b.replace(p,"@").replace(q,"]").replace(r,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(b,c,d){a.DOMParser?(d=new DOMParser,c=d.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b)),d=c.documentElement,(!d||!d.nodeName||d.nodeName==="parsererror")&&e.error("Invalid XML: "+b);return c},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g<h;)if(c.apply(a[g++],d)===!1)break}else if(i){for(f in a)if(c.call(a[f],f,a[f])===!1)break}else for(;g<h;)if(c.call(a[g],g,a[g++])===!1)break;return a},trim:E?function(a){return a==null?"":E.call(a)}:function(a){return a==null?"":(a+"").replace(k,"").replace(l,"")},makeArray:function(a,b){var c=b||[];if(a!=null){var d=e.type(a);a.length==null||d==="string"||d==="function"||d==="regexp"||e.isWindow(a)?C.call(c,a):e.merge(c,a)}return c},inArray:function(a,b){if(F)return F.call(b,a);for(var c=0,d=b.length;c<d;c++)if(b[c]===a)return c;return-1},merge:function(a,c){var d=a.length,e=0;if(typeof c.length=="number")for(var f=c.length;e<f;e++)a[d++]=c[e];else while(c[e]!==b)a[d++]=c[e++];a.length=d;return a},grep:function(a,b,c){var d=[],e;c=!!c;for(var f=0,g=a.length;f<g;f++)e=!!b(a[f],f),c!==e&&d.push(a[f]);return d},map:function(a,c,d){var f,g,h=[],i=0,j=a.length,k=a instanceof e||j!==b&&typeof j=="number"&&(j>0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i<j;i++)f=c(a[i],i,d),f!=null&&(h[h.length]=f);else for(g in a)f=c(a[g],g,d),f!=null&&(h[h.length]=f);return h.concat.apply([],h)},guid:1,proxy:function(a,c){if(typeof c=="string"){var d=a[c];c=a,a=d}if(!e.isFunction(a))return b;var f=D.call(arguments,2),g=function(){return a.apply(c,f.concat(D.call(arguments)))};g.guid=a.guid=a.guid||g.guid||e.guid++;return g},access:function(a,c,d,f,g,h){var i=a.length;if(typeof c=="object"){for(var j in c)e.access(a,j,c[j],f,g,d);return a}if(d!==b){f=!h&&f&&e.isFunction(d);for(var k=0;k<i;k++)g(a[k],c,f?d.call(a[k],k,g(a[k],c)):d,h);return a}return i?g(a[0],c):b},now:function(){return(new Date).getTime()},uaMatch:function(a){a=a.toLowerCase();var b=s.exec(a)||t.exec(a)||u.exec(a)||a.indexOf("compatible")<0&&v.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}e.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function(d,f){f&&f instanceof e&&!(f instanceof a)&&(f=a(f));return e.fn.init.call(this,d,f,b)},a.fn.init.prototype=a.fn;var b=a(c);return a},browser:{}}),e.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){G["[object "+b+"]"]=b.toLowerCase()}),x=e.uaMatch(w),x.browser&&(e.browser[x.browser]=!0,e.browser.version=x.version),e.browser.webkit&&(e.browser.safari=!0),j.test(" ")&&(k=/^[\s\xA0]+/,l=/[\s\xA0]+$/),h=e(c),c.addEventListener?z=function(){c.removeEventListener("DOMContentLoaded",z,!1),e.ready()}:c.attachEvent&&(z=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",z),e.ready())});return e}(),g="done fail isResolved isRejected promise then always pipe".split(" "),h=[].slice;f.extend({_Deferred:function(){var a=[],b,c,d,e={done:function(){if(!d){var c=arguments,g,h,i,j,k;b&&(k=b,b=0);for(g=0,h=c.length;g<h;g++)i=c[g],j=f.type(i),j==="array"?e.done.apply(e,i):j==="function"&&a.push(i);k&&e.resolveWith(k[0],k[1])}return this},resolveWith:function(e,f){if(!d&&!b&&!c){f=f||[],c=1;try{while(a[0])a.shift().apply(e,f)}finally{b=[e,f],c=0}}return this},resolve:function(){e.resolveWith(this,arguments);return this},isResolved:function(){return!!c||!!b},cancel:function(){d=1,a=[];return this}};return e},Deferred:function(a){var b=f._Deferred(),c=f._Deferred(),d;f.extend(b,{then:function(a,c){b.done(a).fail(c);return this},always:function(){return b.done.apply(b,arguments).fail.apply(this,arguments)},fail:c.done,rejectWith:c.resolveWith,reject:c.resolve,isRejected:c.isResolved,pipe:function(a,c){return f.Deferred(function(d){f.each({done:[a,"resolve"],fail:[c,"reject"]},function(a,c){var e=c[0],g=c[1],h;f.isFunction(e)?b[a](function(){h=e.apply(this,arguments),h&&f.isFunction(h.promise)?h.promise().then(d.resolve,d.reject):d[g](h)}):b[a](d[g])})}).promise()},promise:function(a){if(a==null){if(d)return d;d=a={}}var c=g.length;while(c--)a[g[c]]=b[g[c]];return a}}),b.done(c.cancel).fail(b.cancel),delete b.cancel,a&&a.call(b,b);return b},when:function(a){function i(a){return function(c){b[a]=arguments.length>1?h.call(arguments,0):c,--e||g.resolveWith(g,h.call(b,0))}}var b=arguments,c=0,d=b.length,e=d,g=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred();if(d>1){for(;c<d;c++)b[c]&&f.isFunction(b[c].promise)?b[c].promise().then(i(c),g.reject):--e;e||g.resolveWith(g,b)}else g!==a&&g.resolveWith(g,d?[a]:[]);return g.promise()}}),f.support=function(){var a=c.createElement("div"),b=c.documentElement,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;a.setAttribute("className","t"),a.innerHTML="   <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>",d=a.getElementsByTagName("*"),e=a.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};f=c.createElement("select"),g=f.appendChild(c.createElement("option")),h=a.getElementsByTagName("input")[0],j={leadingWhitespace:a.firstChild.nodeType===3,tbody:!a.getElementsByTagName("tbody").length,htmlSerialize:!!a.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55$/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:h.value==="on",optSelected:g.selected,getSetAttribute:a.className!=="t",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},h.checked=!0,j.noCloneChecked=h.cloneNode(!0).checked,f.disabled=!0,j.optDisabled=!g.disabled;try{delete a.test}catch(s){j.deleteExpando=!1}!a.addEventListener&&a.attachEvent&&a.fireEvent&&(a.attachEvent("onclick",function b(){j.noCloneEvent=!1,a.detachEvent("onclick",b)}),a.cloneNode(!0).fireEvent("onclick")),h=c.createElement("input"),h.value="t",h.setAttribute("type","radio"),j.radioValue=h.value==="t",h.setAttribute("checked","checked"),a.appendChild(h),k=c.createDocumentFragment(),k.appendChild(a.firstChild),j.checkClone=k.cloneNode(!0).cloneNode(!0).lastChild.checked,a.innerHTML="",a.style.width=a.style.paddingLeft="1px",l=c.createElement("body"),m={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"};for(q in m)l.style[q]=m[q];l.appendChild(a),b.insertBefore(l,b.firstChild),j.appendChecked=h.checked,j.boxModel=a.offsetWidth===2,"zoom"in a.style&&(a.style.display="inline",a.style.zoom=1,j.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display="",a.innerHTML="<div style='width:4px;'></div>",j.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>",n=a.getElementsByTagName("td"),r=n[0].offsetHeight===0,n[0].style.display="",n[1].style.display="none",j.reliableHiddenOffsets=r&&n[0].offsetHeight===0,a.innerHTML="",c.defaultView&&c.defaultView.getComputedStyle&&(i=c.createElement("div"),i.style.width="0",i.style.marginRight="0",a.appendChild(i),j.reliableMarginRight=(parseInt((c.defaultView.getComputedStyle(i,null)||{marginRight:0}).marginRight,10)||0)===0),l.innerHTML="",b.removeChild(l);if(a.attachEvent)for(q in{submit:1,change:1,focusin:1})p="on"+q,r=p in a,r||(a.setAttribute(p,"return;"),r=typeof a[p]=="function"),j[q+"Bubbles"]=r;return j}(),f.boxModel=f.support.boxModel;var i=/^(?:\{.*\}|\[.*\])$/,j=/([a-z])([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!l(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g=f.expando,h=typeof c=="string",i,j=a.nodeType,k=j?f.cache:a,l=j?a[f.expando]:a[f.expando]&&f.expando;if((!l||e&&l&&!k[l][g])&&h&&d===b)return;l||(j?a[f.expando]=l=++f.uuid:l=f.expando),k[l]||(k[l]={},j||(k[l].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?k[l][g]=f.extend(k[l][g],c):k[l]=f.extend(k[l],c);i=k[l],e&&(i[g]||(i[g]={}),i=i[g]),d!==b&&(i[f.camelCase(c)]=d);if(c==="events"&&!i[c])return i[g]&&i[g].events;return h?i[f.camelCase(c)]:i}},removeData:function(b,c,d){if(!!f.acceptData(b)){var e=f.expando,g=b.nodeType,h=g?f.cache:b,i=g?b[f.expando]:f.expando;if(!h[i])return;if(c){var j=d?h[i][e]:h[i];if(j){delete j[c];if(!l(j))return}}if(d){delete h[i][e];if(!l(h[i]))return}var k=h[i][e];f.support.deleteExpando||h!=a?delete h[i]:h[i]=null,k?(h[i]={},g||(h[i].toJSON=f.noop),h[i][e]=k):g&&(f.support.deleteExpando?delete b[f.expando]:b.removeAttribute?b.removeAttribute(f.expando):b[f.expando]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d=null;if(typeof a=="undefined"){if(this.length){d=f.data(this[0]);if(this[0].nodeType===1){var e=this[0].attributes,g;for(var h=0,i=e.length;h<i;h++)g=e[h].name,g.indexOf("data-")===0&&(g=f.camelCase(g.substring(5)),k(this[0],g,d[g]))}}return d}if(typeof a=="object")return this.each(function(){f.data(this,a)});var j=a.split(".");j[1]=j[1]?"."+j[1]:"";if(c===b){d=this.triggerHandler("getData"+j[1]+"!",[j[0]]),d===b&&this.length&&(d=f.data(this[0],a),d=k(this[0],a,d));return d===b&&j[1]?this.data(j[0]):d}return this.each(function(){var b=f(this),d=[j[0],c];b.triggerHandler("setData"+j[1]+"!",d),f.data(this,a,c),b.triggerHandler("changeData"+j[1]+"!",d)})},removeData:function(a){return this.each(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a,c){a&&(c=(c||"fx")+"mark",f.data(a,c,(f.data(a,c,b,!0)||0)+1,!0))},_unmark:function(a,c,d){a!==!0&&(d=c,c=a,a=!1);if(c){d=d||"fx";var e=d+"mark",g=a?0:(f.data(c,e,b,!0)||1)-1;g?f.data(c,e,g,!0):(f.removeData(c,e,!0),m(c,d,"mark"))}},queue:function(a,c,d){if(a){c=(c||"fx")+"queue";var e=f.data(a,c,b,!0);d&&(!e||f.isArray(d)?e=f.data(a,c,f.makeArray(d),!0):e.push(d));return e||[]}},dequeue:function(a,b){b=b||"fx";var c=f.queue(a,b),d=c.shift(),e;d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),d.call(a,function(){f.dequeue(a,b)})),c.length||(f.removeData(a,b+"queue",!0),m(a,b,"queue"))}}),f.fn.extend({queue:function(a,c){typeof a!="string"&&(c=a,a="fx");if(c===b)return f.queue(this[0],a);return this.each(function(){var b=f.queue(this,a,c);a==="fx"&&b[0]!=="inprogress"&&f.dequeue(this,a)})},dequeue:function(a){return this.each(function(){f.dequeue(this,a)})},delay:function(a,b){a=f.fx?f.fx.speeds[a]||a:a,b=b||"fx";return this.queue(b,function(){var c=this;setTimeout(function(){f.dequeue(c,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,c){function m(){--h||d.resolveWith(e,[e])}typeof a!="string"&&(c=a,a=b),a=a||"fx";var d=f.Deferred(),e=this,g=e.length,h=1,i=a+"defer",j=a+"queue",k=a+"mark",l;while(g--)if(l=f.data(e[g],i,b,!0)||(f.data(e[g],j,b,!0)||f.data(e[g],k,b,!0))&&f.data(e[g],i,f._Deferred(),!0))h++,l.done(m);m();return d.promise()}});var n=/[\n\t\r]/g,o=/\s+/,p=/\r/g,q=/^(?:button|input)$/i,r=/^(?:button|input|object|select|textarea)$/i,s=/^a(?:rea)?$/i,t=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,u=/\:/,v,w;f.fn.extend({attr:function(a,b){return f.access(this,a,b,!0,f.attr)},removeAttr:function(a){return this.each(function(){f.removeAttr(this,a)})},prop:function(a,b){return f.access(this,a,b,!0,f.prop)},removeProp:function(a){a=f.propFix[a]||a;return this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.addClass(a.call(this,b,c.attr("class")||""))});if(a&&typeof a=="string"){var b=(a||"").split(o);for(var c=0,d=this.length;c<d;c++){var e=this[c];if(e.nodeType===1)if(!e.className)e.className=a;else{var g=" "+e.className+" ",h=e.className;for(var i=0,j=b.length;i<j;i++)g.indexOf(" "+b[i]+" ")<0&&(h+=" "+b[i]);e.className=f.trim(h)}}}return this},removeClass:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.removeClass(a.call(this,b,c.attr("class")))});if(a&&typeof a=="string"||a===b){var c=(a||"").split(o);for(var d=0,e=this.length;d<e;d++){var g=this[d];if(g.nodeType===1&&g.className)if(a){var h=(" "+g.className+" ").replace(n," ");for(var i=0,j=c.length;i<j;i++)h=h.replace(" "+c[i]+" "," ");g.className=f.trim(h)}else g.className=""}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";if(f.isFunction(a))return this.each(function(c){var d=f(this);d.toggleClass(a.call(this,c,d.attr("class"),b),b)});return this.each(function(){if(c==="string"){var e,g=0,h=f(this),i=b,j=a.split(o);while(e=j[g++])i=d?i:!h.hasClass(e),h[i?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&f._data(this,"__className__",this.className),this.className=this.className||a===!1?"":f._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ";for(var c=0,d=this.length;c<d;c++)if((" "+this[c].className+" ").replace(n," ").indexOf(b)>-1)return!0;return!1},val:function(a){var c,d,e=this[0];if(!arguments.length){if(e){c=f.valHooks[e.nodeName.toLowerCase()]||f.valHooks[e.type];if(c&&"get"in c&&(d=c.get(e,"value"))!==b)return d;return(e.value||"").replace(p,"")}return b}var g=f.isFunction(a);return this.each(function(d){var e=f(this),h;if(this.nodeType===1){g?h=a.call(this,d,e.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c=a.selectedIndex,d=[],e=a.options,g=a.type==="select-one";if(c<0)return null;for(var h=g?c:0,i=g?c+1:e.length;h<i;h++){var j=e[h];if(j.selected&&(f.support.optDisabled?!j.disabled:j.getAttribute("disabled")===null)&&(!j.parentNode.disabled||!f.nodeName(j.parentNode,"optgroup"))){b=f(j).val();if(g)return b;d.push(b)}}if(g&&!d.length&&e.length)return f(e[c]).val();return d},set:function(a,b){var c=f.makeArray(b);f(a).find("option").each(function(){this.selected=f.inArray(f(this).val(),c)>=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attrFix:{tabindex:"tabIndex"},attr:function(a,c,d,e){var g=a.nodeType;if(!a||g===3||g===8||g===2)return b;if(e&&c in f.attrFn)return f(a)[c](d);if(!("getAttribute"in a))return f.prop(a,c,d);var h,i,j=g!==1||!f.isXMLDoc(a);c=j&&f.attrFix[c]||c,i=f.attrHooks[c],i||(!t.test(c)||typeof d!="boolean"&&d!==b&&d.toLowerCase()!==c.toLowerCase()?v&&(f.nodeName(a,"form")||u.test(c))&&(i=v):i=w);if(d!==b){if(d===null){f.removeAttr(a,c);return b}if(i&&"set"in i&&j&&(h=i.set(a,d,c))!==b)return h;a.setAttribute(c,""+d);return d}if(i&&"get"in i&&j)return i.get(a,c);h=a.getAttribute(c);return h===null?b:h},removeAttr:function(a,b){var c;a.nodeType===1&&(b=f.attrFix[b]||b,f.support.getSetAttribute?a.removeAttribute(b):(f.attr(a,b,""),a.removeAttributeNode(a.getAttributeNode(b))),t.test(b)&&(c=f.propFix[b]||b)in a&&(a[c]=!1))},attrHooks:{type:{set:function(a,b){if(q.test(a.nodeName)&&a.parentNode)f.error("type property can't be changed");else if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.value;a.setAttribute("type",b),c&&(a.value=c);return b}}},tabIndex:{get:function(a){var c=a.getAttributeNode("tabIndex");return c&&c.specified?parseInt(c.value,10):r.test(a.nodeName)||s.test(a.nodeName)&&a.href?0:b}}},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(a,c,d){var e=a.nodeType;if(!a||e===3||e===8||e===2)return b;var g,h,i=e!==1||!f.isXMLDoc(a);c=i&&f.propFix[c]||c,h=f.propHooks[c];return d!==b?h&&"set"in h&&(g=h.set(a,d,c))!==b?g:a[c]=d:h&&"get"in h&&(g=h.get(a,c))!==b?g:a[c]},propHooks:{}}),w={get:function(a,c){return a[f.propFix[c]||c]?c.toLowerCase():b},set:function(a,b,c){var d;b===!1?f.removeAttr(a,c):(d=f.propFix[c]||c,d in a&&(a[d]=b),a.setAttribute(c,c.toLowerCase()));return c}},f.attrHooks.value={get:function(a,b){if(v&&f.nodeName(a,"button"))return v.get(a,b);return a.value},set:function(a,b,c){if(v&&f.nodeName(a,"button"))return v.set(a,b,c);a.value=b}},f.support.getSetAttribute||(f.attrFix=f.propFix,v=f.attrHooks.name=f.valHooks.button={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&d.nodeValue!==""?d.nodeValue:b},set:function(a,b,c){var d=a.getAttributeNode(c);if(d){d.nodeValue=b;return b}}},f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return c}}})})),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}})),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(),b)>=0}})});var x=Object.prototype.hasOwnProperty,y=/\.(.*)$/,z=/^(?:textarea|input|select)$/i,A=/\./g,B=/ /g,C=/[^\w\s.|`]/g,D=function(a){return a.replace(C,"\\$&")};f.event={add:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){if(d===!1)d=E;else if(!d)return;var g,h;d.handler&&(g=d,d=g.handler),d.guid||(d.guid=f.guid++);var i=f._data(a);if(!i)return;var j=i.events,k=i.handle;j||(i.events=j={}),k||(i.handle=k=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.handle.apply(k.elem,arguments):b}),k.elem=a,c=c.split(" ");var l,m=0,n;while(l=c[m++]){h=g?f.extend({},g):{handler:d,data:e},l.indexOf(".")>-1?(n=l.split("."),l=n.shift(),h.namespace=n.slice(0).sort().join(".")):(n=[],h.namespace=""),h.type=l,h.guid||(h.guid=d.guid);var o=j[l],p=f.event.special[l]||{};if(!o){o=j[l]=[];if(!p.setup||p.setup.call(a,e,n,k)===!1)a.addEventListener?a.addEventListener(l,k,!1):a.attachEvent&&a.attachEvent("on"+l,k)}p.add&&(p.add.call(a,h),h.handler.guid||(h.handler.guid=d.guid)),o.push(h),f.event.global[l]=!0}a=null}},global:{},remove:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){d===!1&&(d=E);var g,h,i,j,k=0,l,m,n,o,p,q,r,s=f.hasData(a)&&f._data(a),t=s&&s.events;if(!s||!t)return;c&&c.type&&(d=c.handler,c=c.type);if(!c||typeof c=="string"&&c.charAt(0)==="."){c=c||"";for(h in t)f.event.remove(a,h+c);return}c=c.split(" ");while(h=c[k++]){r=h,q=null,l=h.indexOf(".")<0,m=[],l||(m=h.split("."),h=m.shift(),n=new RegExp("(^|\\.)"+f.map(m.slice(0).sort(),D).join("\\.(?:.*\\.)?")+"(\\.|$)")),p=t[h];if(!p)continue;if(!d){for(j=0;j<p.length;j++){q=p[j];if(l||n.test(q.namespace))f.event.remove(a,r,q.handler,j),p.splice(j--,1)}continue}o=f.event.special[h]||{};for(j=e||0;j<p.length;j++){q=p[j];if(d.guid===q.guid){if(l||n.test(q.namespace))e==null&&p.splice(j--,1),o.remove&&o.remove.call(a,q);if(e!=null)break}}if(p.length===0||e!=null&&p.length===1)(!o.teardown||o.teardown.call(a,m)===!1)&&f.removeEvent(a,h,s.handle),g=null,delete t[h]}if(f.isEmptyObject(t)){var u=s.handle;u&&(u.elem=null),delete s.events,delete s.handle,f.isEmptyObject(s)&&f.removeData(a,b,!0)}}},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(c,d,e,g){var h=c.type||c,i=[],j;h.indexOf("!")>=0&&(h=h.slice(0,-1),j=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if(!!e&&!f.event.customEvent[h]||!!f.event.global[h]){c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.exclusive=j,c.namespace=i.join("."),c.namespace_re=new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)");if(g||!e)c.preventDefault(),c.stopPropagation();if(!e){f.each(f.cache,function(){var a=f.expando,b=this[a];b&&b.events&&b.events[h]&&f.event.trigger(c,d,b.handle.elem
+)});return}if(e.nodeType===3||e.nodeType===8)return;c.result=b,c.target=e,d=d?f.makeArray(d):[],d.unshift(c);var k=e,l=h.indexOf(":")<0?"on"+h:"";do{var m=f._data(k,"handle");c.currentTarget=k,m&&m.apply(k,d),l&&f.acceptData(k)&&k[l]&&k[l].apply(k,d)===!1&&(c.result=!1,c.preventDefault()),k=k.parentNode||k.ownerDocument||k===c.target.ownerDocument&&a}while(k&&!c.isPropagationStopped());if(!c.isDefaultPrevented()){var n,o=f.event.special[h]||{};if((!o._default||o._default.call(e.ownerDocument,c)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)){try{l&&e[h]&&(n=e[l],n&&(e[l]=null),f.event.triggered=h,e[h]())}catch(p){}n&&(e[l]=n),f.event.triggered=b}}return c.result}},handle:function(c){c=f.event.fix(c||a.event);var d=((f._data(this,"events")||{})[c.type]||[]).slice(0),e=!c.exclusive&&!c.namespace,g=Array.prototype.slice.call(arguments,0);g[0]=c,c.currentTarget=this;for(var h=0,i=d.length;h<i;h++){var j=d[h];if(e||c.namespace_re.test(j.namespace)){c.handler=j.handler,c.data=j.data,c.handleObj=j;var k=j.handler.apply(this,g);k!==b&&(c.result=k,k===!1&&(c.preventDefault(),c.stopPropagation()));if(c.isImmediatePropagationStopped())break}}return c.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(a){if(a[f.expando])return a;var d=a;a=f.Event(d);for(var e=this.props.length,g;e;)g=this.props[--e],a[g]=d[g];a.target||(a.target=a.srcElement||c),a.target.nodeType===3&&(a.target=a.target.parentNode),!a.relatedTarget&&a.fromElement&&(a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement);if(a.pageX==null&&a.clientX!=null){var h=a.target.ownerDocument||c,i=h.documentElement,j=h.body;a.pageX=a.clientX+(i&&i.scrollLeft||j&&j.scrollLeft||0)-(i&&i.clientLeft||j&&j.clientLeft||0),a.pageY=a.clientY+(i&&i.scrollTop||j&&j.scrollTop||0)-(i&&i.clientTop||j&&j.clientTop||0)}a.which==null&&(a.charCode!=null||a.keyCode!=null)&&(a.which=a.charCode!=null?a.charCode:a.keyCode),!a.metaKey&&a.ctrlKey&&(a.metaKey=a.ctrlKey),!a.which&&a.button!==b&&(a.which=a.button&1?1:a.button&2?3:a.button&4?2:0);return a},guid:1e8,proxy:f.proxy,special:{ready:{setup:f.bindReady,teardown:f.noop},live:{add:function(a){f.event.add(this,O(a.origType,a.selector),f.extend({},a,{handler:N,guid:a.handler.guid}))},remove:function(a){f.event.remove(this,O(a.origType,a.selector),a)}},beforeunload:{setup:function(a,b,c){f.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}}},f.removeEvent=c.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){a.detachEvent&&a.detachEvent("on"+b,c)},f.Event=function(a,b){if(!this.preventDefault)return new f.Event(a,b);a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?F:E):this.type=a,b&&f.extend(this,b),this.timeStamp=f.now(),this[f.expando]=!0},f.Event.prototype={preventDefault:function(){this.isDefaultPrevented=F;var a=this.originalEvent;!a||(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=F;var a=this.originalEvent;!a||(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=F,this.stopPropagation()},isDefaultPrevented:E,isPropagationStopped:E,isImmediatePropagationStopped:E};var G=function(a){var b=a.relatedTarget;a.type=a.data;try{if(b&&b!==c&&!b.parentNode)return;while(b&&b!==this)b=b.parentNode;b!==this&&f.event.handle.apply(this,arguments)}catch(d){}},H=function(a){a.type=a.data,f.event.handle.apply(this,arguments)};f.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){f.event.special[a]={setup:function(c){f.event.add(this,b,c&&c.selector?H:G,a)},teardown:function(a){f.event.remove(this,b,a&&a.selector?H:G)}}}),f.support.submitBubbles||(f.event.special.submit={setup:function(a,b){if(!f.nodeName(this,"form"))f.event.add(this,"click.specialSubmit",function(a){var b=a.target,c=b.type;(c==="submit"||c==="image")&&f(b).closest("form").length&&L("submit",this,arguments)}),f.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,c=b.type;(c==="text"||c==="password")&&f(b).closest("form").length&&a.keyCode===13&&L("submit",this,arguments)});else return!1},teardown:function(a){f.event.remove(this,".specialSubmit")}});if(!f.support.changeBubbles){var I,J=function(a){var b=a.type,c=a.value;b==="radio"||b==="checkbox"?c=a.checked:b==="select-multiple"?c=a.selectedIndex>-1?f.map(a.options,function(a){return a.selected}).join("-"):"":f.nodeName(a,"select")&&(c=a.selectedIndex);return c},K=function(c){var d=c.target,e,g;if(!!z.test(d.nodeName)&&!d.readOnly){e=f._data(d,"_change_data"),g=J(d),(c.type!=="focusout"||d.type!=="radio")&&f._data(d,"_change_data",g);if(e===b||g===e)return;if(e!=null||g)c.type="change",c.liveFired=b,f.event.trigger(c,arguments[1],d)}};f.event.special.change={filters:{focusout:K,beforedeactivate:K,click:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(c==="radio"||c==="checkbox"||f.nodeName(b,"select"))&&K.call(this,a)},keydown:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(a.keyCode===13&&!f.nodeName(b,"textarea")||a.keyCode===32&&(c==="checkbox"||c==="radio")||c==="select-multiple")&&K.call(this,a)},beforeactivate:function(a){var b=a.target;f._data(b,"_change_data",J(b))}},setup:function(a,b){if(this.type==="file")return!1;for(var c in I)f.event.add(this,c+".specialChange",I[c]);return z.test(this.nodeName)},teardown:function(a){f.event.remove(this,".specialChange");return z.test(this.nodeName)}},I=f.event.special.change.filters,I.focus=I.beforeactivate}f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){function e(a){var c=f.event.fix(a);c.type=b,c.originalEvent={},f.event.trigger(c,null,c.target),c.isDefaultPrevented()&&a.preventDefault()}var d=0;f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.each(["bind","one"],function(a,c){f.fn[c]=function(a,d,e){var g;if(typeof a=="object"){for(var h in a)this[c](h,d,a[h],e);return this}if(arguments.length===2||d===!1)e=d,d=b;c==="one"?(g=function(a){f(this).unbind(a,g);return e.apply(this,arguments)},g.guid=e.guid||f.guid++):g=e;if(a==="unload"&&c!=="one")this.one(a,d,e);else for(var i=0,j=this.length;i<j;i++)f.event.add(this[i],a,g,d);return this}}),f.fn.extend({unbind:function(a,b){if(typeof a=="object"&&!a.preventDefault)for(var c in a)this.unbind(c,a[c]);else for(var d=0,e=this.length;d<e;d++)f.event.remove(this[d],a,b);return this},delegate:function(a,b,c,d){return this.live(b,c,d,a)},undelegate:function(a,b,c){return arguments.length===0?this.unbind("live"):this.die(b,null,c,a)},trigger:function(a,b){return this.each(function(){f.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0])return f.event.trigger(a,b,this[0],!0)},toggle:function(a){var b=arguments,c=a.guid||f.guid++,d=0,e=function(c){var e=(f.data(this,"lastToggle"+a.guid)||0)%d;f.data(this,"lastToggle"+a.guid,e+1),c.preventDefault();return b[e].apply(this,arguments)||!1};e.guid=c;while(d<b.length)b[d++].guid=c;return this.click(e)},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var M={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};f.each(["live","die"],function(a,c){f.fn[c]=function(a,d,e,g){var h,i=0,j,k,l,m=g||this.selector,n=g?this:f(this.context);if(typeof a=="object"&&!a.preventDefault){for(var o in a)n[c](o,d,a[o],m);return this}if(c==="die"&&!a&&g&&g.charAt(0)==="."){n.unbind(g);return this}if(d===!1||f.isFunction(d))e=d||E,d=b;a=(a||"").split(" ");while((h=a[i++])!=null){j=y.exec(h),k="",j&&(k=j[0],h=h.replace(y,""));if(h==="hover"){a.push("mouseenter"+k,"mouseleave"+k);continue}l=h,M[h]?(a.push(M[h]+k),h=h+k):h=(M[h]||h)+k;if(c==="live")for(var p=0,q=n.length;p<q;p++)f.event.add(n[p],"live."+O(h,m),{data:d,selector:m,handler:e,origType:h,origHandler:e,preType:l});else n.unbind("live."+O(h,m),e)}return this}}),f.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".split(" "),function(a,b){f.fn[b]=function(a,c){c==null&&(c=a,a=null);return arguments.length>0?this.bind(b,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0)}),function(){function u(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i){var j=!1;i=i[a];while(i){if(i.sizcache===c){j=d[i.sizset];break}if(i.nodeType===1){f||(i.sizcache=c,i.sizset=g);if(typeof b!="string"){if(i===b){j=!0;break}}else if(k.filter(b,[i]).length>0){j=i;break}}i=i[a]}d[g]=j}}}function t(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i){var j=!1;i=i[a];while(i){if(i.sizcache===c){j=d[i.sizset];break}i.nodeType===1&&!f&&(i.sizcache=c,i.sizset=g);if(i.nodeName.toLowerCase()===b){j=i;break}i=i[a]}d[g]=j}}}var a=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d=0,e=Object.prototype.toString,g=!1,h=!0,i=/\\/g,j=/\W/;[0,0].sort(function(){h=!1;return 0});var k=function(b,d,f,g){f=f||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return f;var i,j,n,o,q,r,s,t,u=!0,w=k.isXML(d),x=[],y=b;do{a.exec(""),i=a.exec(y);if(i){y=i[3],x.push(i[1]);if(i[2]){o=i[3];break}}}while(i);if(x.length>1&&m.exec(b))if(x.length===2&&l.relative[x[0]])j=v(x[0]+x[1],d);else{j=l.relative[x[0]]?[d]:k(x.shift(),d);while(x.length)b=x.shift(),l.relative[b]&&(b+=x.shift()),j=v(b,j)}else{!g&&x.length>1&&d.nodeType===9&&!w&&l.match.ID.test(x[0])&&!l.match.ID.test(x[x.length-1])&&(q=k.find(x.shift(),d,w),d=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]);if(d){q=g?{expr:x.pop(),set:p(g)}:k.find(x.pop(),x.length===1&&(x[0]==="~"||x[0]==="+")&&d.parentNode?d.parentNode:d,w),j=q.expr?k.filter(q.expr,q.set):q.set,x.length>0?n=p(j):u=!1;while(x.length)r=x.pop(),s=r,l.relative[r]?s=x.pop():r="",s==null&&(s=d),l.relative[r](n,s,w)}else n=x=[]}n||(n=j),n||k.error(r||b);if(e.call(n)==="[object Array]")if(!u)f.push.apply(f,n);else if(d&&d.nodeType===1)for(t=0;n[t]!=null;t++)n[t]&&(n[t]===!0||n[t].nodeType===1&&k.contains(d,n[t]))&&f.push(j[t]);else for(t=0;n[t]!=null;t++)n[t]&&n[t].nodeType===1&&f.push(j[t]);else p(n,f);o&&(k(o,h,f,g),k.uniqueSort(f));return f};k.uniqueSort=function(a){if(r){g=h,a.sort(r);if(g)for(var b=1;b<a.length;b++)a[b]===a[b-1]&&a.splice(b--,1)}return a},k.matches=function(a,b){return k(a,null,null,b)},k.matchesSelector=function(a,b){return k(b,null,null,[a]).length>0},k.find=function(a,b,c){var d;if(!a)return[];for(var e=0,f=l.order.length;e<f;e++){var g,h=l.order[e];if(g=l.leftMatch[h].exec(a)){var j=g[1];g.splice(1,1);if(j.substr(j.length-1)!=="\\"){g[1]=(g[1]||"").replace(i,""),d=l.find[h](g,b,c);if(d!=null){a=a.replace(l.match[h],"");break}}}}d||(d=typeof b.getElementsByTagName!="undefined"?b.getElementsByTagName("*"):[]);return{set:d,expr:a}},k.filter=function(a,c,d,e){var f,g,h=a,i=[],j=c,m=c&&c[0]&&k.isXML(c[0]);while(a&&c.length){for(var n in l.filter)if((f=l.leftMatch[n].exec(a))!=null&&f[2]){var o,p,q=l.filter[n],r=f[1];g=!1,f.splice(1,1);if(r.substr(r.length-1)==="\\")continue;j===i&&(i=[]);if(l.preFilter[n]){f=l.preFilter[n](f,j,d,i,e,m);if(!f)g=o=!0;else if(f===!0)continue}if(f)for(var s=0;(p=j[s])!=null;s++)if(p){o=q(p,f,s,j);var t=e^!!o;d&&o!=null?t?g=!0:j[s]=!1:t&&(i.push(p),g=!0)}if(o!==b){d||(j=i),a=a.replace(l.match[n],"");if(!g)return[];break}}if(a===h)if(g==null)k.error(a);else break;h=a}return j},k.error=function(a){throw"Syntax error, unrecognized expression: "+a};var l=k.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(a){return a.getAttribute("href")},type:function(a){return a.getAttribute("type")}},relative:{"+":function(a,b){var c=typeof b=="string",d=c&&!j.test(b),e=c&&!d;d&&(b=b.toLowerCase());for(var f=0,g=a.length,h;f<g;f++)if(h=a[f]){while((h=h.previousSibling)&&h.nodeType!==1);a[f]=e||h&&h.nodeName.toLowerCase()===b?h||!1:h===b}e&&k.filter(b,a,!0)},">":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!j.test(b)){b=b.toLowerCase();for(;e<f;e++){c=a[e];if(c){var g=c.parentNode;a[e]=g.nodeName.toLowerCase()===b?g:!1}}}else{for(;e<f;e++)c=a[e],c&&(a[e]=d?c.parentNode:c.parentNode===b);d&&k.filter(b,a,!0)}},"":function(a,b,c){var e,f=d++,g=u;typeof b=="string"&&!j.test(b)&&(b=b.toLowerCase(),e=b,g=t),g("parentNode",b,f,a,e,c)},"~":function(a,b,c){var e,f=d++,g=u;typeof b=="string"&&!j.test(b)&&(b=b.toLowerCase(),e=b,g=t),g("previousSibling",b,f,a,e,c)}},find:{ID:function(a,b,c){if(typeof b.getElementById!="undefined"&&!c){var d=b.getElementById(a[1]);return d&&d.parentNode?[d]:[]}},NAME:function(a,b){if(typeof b.getElementsByName!="undefined"){var c=[],d=b.getElementsByName(a[1]);for(var e=0,f=d.length;e<f;e++)d[e].getAttribute("name")===a[1]&&c.push(d[e]);return c.length===0?null:c}},TAG:function(a,b){if(typeof b.getElementsByTagName!="undefined")return b.getElementsByTagName(a[1])}},preFilter:{CLASS:function(a,b,c,d,e,f){a=" "+a[1].replace(i,"")+" ";if(f)return a;for(var g=0,h;(h=b[g])!=null;g++)h&&(e^(h.className&&(" "+h.className+" ").replace(/[\t\n\r]/g," ").indexOf(a)>=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(i,"")},TAG:function(a,b){return a[1].replace(i,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||k.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&k.error(a[0]);a[0]=d++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(i,"");!f&&l.attrMap[g]&&(a[1]=l.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(i,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=k(b[3],null,null,c);else{var g=k.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(l.match.POS.test(b[0])||l.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!k(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return b<c[3]-0},gt:function(a,b,c){return b>c[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=l.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||k.getText([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h<i;h++)if(g[h]===a)return!1;return!0}k.error(e)},CHILD:function(a,b){var c=b[1],d=a;switch(c){case"only":case"first":while(d=d.previousSibling)if(d.nodeType===1)return!1;if(c==="first")return!0;d=a;case"last":while(d=d.nextSibling)if(d.nodeType===1)return!1;return!0;case"nth":var e=b[2],f=b[3];if(e===1&&f===0)return!0;var g=b[0],h=a.parentNode;if(h&&(h.sizcache!==g||!a.nodeIndex)){var i=0;for(d=h.firstChild;d;d=d.nextSibling)d.nodeType===1&&(d.nodeIndex=++i);h.sizcache=g}var j=a.nodeIndex-f;return e===0?j===0:j%e===0&&j/e>=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=l.attrHandle[c]?l.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=l.setFilters[e];if(f)return f(a,c,b,d)}}},m=l.match.POS,n=function(a,b){return"\\"+(b-0+1)};for(var o in l.match)l.match[o]=new RegExp(l.match[o].source+/(?![^\[]*\])(?![^\(]*\))/.source),l.leftMatch[o]=new RegExp(/(^(?:.|\r|\n)*?)/.source+l.match[o].source.replace(/\\(\d+)/g,n));var p=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(q){p=function(a,b){var c=0,d=b||[];if(e.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var f=a.length;c<f;c++)d.push(a[c]);else for(;a[c];c++)d.push(a[c]);return d}}var r,s;c.documentElement.compareDocumentPosition?r=function(a,b){if(a===b){g=!0;return 0}if(!a.compareDocumentPosition||!b.compareDocumentPosition)return a.compareDocumentPosition?-1:1;return a.compareDocumentPosition(b)&4?-1:1}:(r=function(a,b){if(a===b){g=!0;return 0}if(a.sourceIndex&&b.sourceIndex)return a.sourceIndex-b.sourceIndex;var c,d,e=[],f=[],h=a.parentNode,i=b.parentNode,j=h;if(h===i)return s(a,b);if(!h)return-1;if(!i)return 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)f.unshift(j),j=j.parentNode;c=e.length,d=f.length;for(var k=0;k<c&&k<d;k++)if(e[k]!==f[k])return s(e[k],f[k]);return k===c?s(a,f[k],-1):s(e[k],b,1)},s=function(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),k.getText=function(a){var b="",c;for(var d=0;a[d];d++)c=a[d],c.nodeType===3||c.nodeType===4?b+=c.nodeValue:c.nodeType!==8&&(b+=k.getText(c.childNodes));return b},function(){var a=c.createElement("div"),d="script"+(new Date).getTime(),e=c.documentElement;a.innerHTML="<a name='"+d+"'/>",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(l.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},l.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(l.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="<a href='#'></a>",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(l.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=k,b=c.createElement("div"),d="__sizzle__";b.innerHTML="<p class='TEST'></p>";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){k=function(b,e,f,g){e=e||c;if(!g&&!k.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return p(e.getElementsByTagName(b),f);if(h[2]&&l.find.CLASS&&e.getElementsByClassName)return p(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return p([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return p([],f);if(i.id===h[3])return p([i],f)}try{return p(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var m=e,n=e.getAttribute("id"),o=n||d,q=e.parentNode,r=/^\s*[+~]/.test(b);n?o=o.replace(/'/g,"\\$&"):e.setAttribute("id",o),r&&q&&(e=e.parentNode);try{if(!r||q)return p(e.querySelectorAll("[id='"+o+"'] "+b),f)}catch(s){}finally{n||m.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)k[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}k.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(a))try{if(e||!l.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return k(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="<div class='test e'></div><div class='test'></div>";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;l.order.splice(1,0,"CLASS"),l.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?k.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?k.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:k.contains=function(){return!1},k.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var v=function(a,b){var c,d=[],e="",f=b.nodeType?[b]:b;while(c=l.match.PSEUDO.exec(a))e+=c[0],a=a.replace(l.match.PSEUDO,"");a=l.relative[a]?a+"*":a;for(var g=0,h=f.length;g<h;g++)k(a,f[g],d);return k.filter(e,d)};f.find=k,f.expr=k.selectors,f.expr[":"]=f.expr.filters,f.unique=k.uniqueSort,f.text=k.getText,f.isXMLDoc=k.isXML,f.contains=k.contains}();var P=/Until$/,Q=/^(?:parents|prevUntil|prevAll)/,R=/,/,S=/^.[^:#\[\.,]*$/,T=Array.prototype.slice,U=f.expr.match.POS,V={children:!0,contents:!0,next:!0,prev:!0};f.fn.extend({find:function(a){var b=this,c,d;if(typeof a!="string")return f(a).filter(function(){for(c=0,d=b.length;c<d;c++)if(f.contains(b[c],this))return!0});var e=this.pushStack("","find",a),g,h,i;for(c=0,d=this.length;c<d;c++){g=e.length,f.find(a,this[c],e);if(c>0)for(h=g;h<e.length;h++)for(i=0;i<g;i++)if(e[i]===e[h]){e.splice(h--,1);break}}return e},has:function(a){var b=f(a);return this.filter(function(){for(var a=0,c=b.length;a<c;a++)if(f.contains(this,b[a]))return!0})},not:function(a){return this.pushStack(X(this,a,!1),"not",a)},filter:function(a){return this.pushStack(X(this,a,!0),"filter",a)},is:function(a){return!!a&&(typeof a=="string"?f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h,i,j={},k=1;if(g&&a.length){for(d=0,e=a.length;d<e;d++)i=a[d],j[i]||(j[i]=U.test(i)?f(i,b||this.context):i);while(g&&g.ownerDocument&&g!==b){for(i in j)h=j[i],(h.jquery?h.index(g)>-1:f(g).is(h))&&c.push({selector:i,elem:g,level:k});g=g.parentNode,k++}}return c}var l=U.test(a)||typeof a!="string"?f(a,b||this.context):0;for(d=0,e=this.length;d<e;d++){g=this[d];while(g){if(l?l.index(g)>-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a||typeof a=="string")return f.inArray(this[0],a?f(a):this.parent().children());return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(W(c[0])||W(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c),g=T.call(arguments);P.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!V[a]?f.unique(e):e,(this.length>1||R.test(d))&&Q.test(a)&&(e=e.reverse());return this.pushStack(e,a,g.join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var Y=/ jQuery\d+="(?:\d+|null)"/g,Z=/^\s+/,$=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,_=/<([\w:]+)/,ba=/<tbody/i,bb=/<|&#?\w+;/,bc=/<(?:script|object|embed|option|style)/i,bd=/checked\s*(?:[^=]|=\s*.checked.)/i,be=/\/(java|ecma)script/i,bf=/^\s*<!(?:\[CDATA\[|\-\-)/,bg={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div<div>","</div>"]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){f(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f(arguments[0]).toArray());return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Y,""):null;if(typeof a=="string"&&!bc.test(a)&&(f.support.leadingWhitespace||!Z.test(a))&&!bg[(_.exec(a)||["",""])[1].toLowerCase()]){a=a.replace($,"<$1></$2>");try{for(var c=0,d=this.length;c<d;c++)this[c].nodeType===1&&(f.cleanData(this[c].getElementsByTagName("*")),this[c].innerHTML=a)}catch(e){this.empty().append(a)}}else f.isFunction(a)?this.each(function(b){var c=f(this);c.html(a.call(this,b,c.html()))}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(f.isFunction(a))return this.each(function(b){var c=f(this),d=c.html();c.replaceWith(a.call(this,b,d))});typeof a!="string"&&(a=f(a).detach());return this.each(function(){var b=this.nextSibling,c=this.parentNode;f(this).remove(),b?f(b).before(a):f(c).append(a)})}return this.length?this.pushStack(f(f.isFunction(a)?a():a),"replaceWith",a):this},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,d){var e,g,h,i,j=a[0],k=[];if(!f.support.checkClone&&arguments.length===3&&typeof j=="string"&&bd.test(j))return this.each(function(){f(this).domManip(a,c,d,!0)});if(f.isFunction(j))return this.each(function(e){var g=f(this);a[0]=j.call(this,e,c?g.html():b),g.domManip(a,c,d)});if(this[0]){i=j&&j.parentNode,f.support.parentNode&&i&&i.nodeType===11&&i.childNodes.length===this.length?e={fragment:i}:e=f.buildFragment(a,this,k),h=e.fragment,h.childNodes.length===1?g=h=h.firstChild:g=h.firstChild;if(g){c=c&&f.nodeName(g,"tr");for(var l=0,m=this.length,n=m-1;l<m;l++)d.call(c?bh(this[l],g):this[l],e.cacheable||m>1&&l<n?f.clone(h,!0,!0):h)}k.length&&f.each(k,bn)}return this}}),f.buildFragment=function(a,b,d){var e,g,h,i=b&&b[0]?b[0].ownerDocument||b[0]:c;a.length===1&&typeof a[0]=="string"&&a[0].length<512&&i===c&&a[0].charAt(0)==="<"&&!bc.test(a[0])&&(f.support.checkClone||!bd.test(a[0]))&&(g=!0,h=f.fragments[a[0]],h&&h!==1&&(e=h)),e||(e=i.createDocumentFragment(),f.clean(a,i,e,d)),g&&(f.fragments[a[0]]=h?e:1);return{fragment:e,cacheable:g}},f.fragments={},f.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){f.fn[a]=function(c){var d=[],e=f(c),g=this.length===1&&this[0].parentNode;if(g&&g.nodeType===11&&g.childNodes.length===1&&e.length===1){e[b](this[0]);return this}for(var h=0,i=e.length;h<i;h++){var j=(h>0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d=a.cloneNode(!0),e,g,h;if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bj(a,d),e=bk(a),g=bk(d);for(h=0;e[h];++h)bj(e[h],g[h])}if(b){bi(a,d);if(c){e=bk(a),g=bk(d);for(h=0;e[h];++h)bi(e[h],g[h])}}return d},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||
+b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!bb.test(k))k=b.createTextNode(k);else{k=k.replace($,"<$1></$2>");var l=(_.exec(k)||["",""])[1].toLowerCase(),m=bg[l]||bg._default,n=m[0],o=b.createElement("div");o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=ba.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]==="<table>"&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&Z.test(k)&&o.insertBefore(b.createTextNode(Z.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i<r;i++)bm(k[i]);else bm(k);k.nodeType?h.push(k):h=f.merge(h,k)}if(d){g=function(a){return!a.type||be.test(a.type)};for(j=0;h[j];j++)if(e&&f.nodeName(h[j],"script")&&(!h[j].type||h[j].type.toLowerCase()==="text/javascript"))e.push(h[j].parentNode?h[j].parentNode.removeChild(h[j]):h[j]);else{if(h[j].nodeType===1){var s=f.grep(h[j].getElementsByTagName("script"),g);h.splice.apply(h,[j+1,0].concat(s))}d.appendChild(h[j])}}return h},cleanData:function(a){var b,c,d=f.cache,e=f.expando,g=f.event.special,h=f.support.deleteExpando;for(var i=0,j;(j=a[i])!=null;i++){if(j.nodeName&&f.noData[j.nodeName.toLowerCase()])continue;c=j[f.expando];if(c){b=d[c]&&d[c][e];if(b&&b.events){for(var k in b.events)g[k]?f.event.remove(j,k):f.removeEvent(j,k,b.handle);b.handle&&(b.handle.elem=null)}h?delete j[f.expando]:j.removeAttribute&&j.removeAttribute(f.expando),delete d[c]}}}});var bo=/alpha\([^)]*\)/i,bp=/opacity=([^)]*)/,bq=/-([a-z])/ig,br=/([A-Z]|^ms)/g,bs=/^-?\d+(?:px)?$/i,bt=/^-?\d/,bu=/^[+\-]=/,bv=/[^+\-\.\de]+/g,bw={position:"absolute",visibility:"hidden",display:"block"},bx=["Left","Right"],by=["Top","Bottom"],bz,bA,bB,bC=function(a,b){return b.toUpperCase()};f.fn.css=function(a,c){if(arguments.length===2&&c===b)return this;return f.access(this,a,c,!0,function(a,c,d){return d!==b?f.style(a,c,d):f.css(a,c)})},f.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bz(a,"opacity","opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{zIndex:!0,fontWeight:!0,opacity:!0,zoom:!0,lineHeight:!0,widows:!0,orphans:!0},cssProps:{"float":f.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!!a&&a.nodeType!==3&&a.nodeType!==8&&!!a.style){var g,h,i=f.camelCase(c),j=a.style,k=f.cssHooks[i];c=f.cssProps[i]||i;if(d===b){if(k&&"get"in k&&(g=k.get(a,!1,e))!==b)return g;return j[c]}h=typeof d;if(h==="number"&&isNaN(d)||d==null)return;h==="string"&&bu.test(d)&&(d=+d.replace(bv,"")+parseFloat(f.css(a,c))),h==="number"&&!f.cssNumber[i]&&(d+="px");if(!k||!("set"in k)||(d=k.set(a,d))!==b)try{j[c]=d}catch(l){}}},css:function(a,c,d){var e,g;c=f.camelCase(c),g=f.cssHooks[c],c=f.cssProps[c]||c,c==="cssFloat"&&(c="float");if(g&&"get"in g&&(e=g.get(a,!0,d))!==b)return e;if(bz)return bz(a,c)},swap:function(a,b,c){var d={};for(var e in b)d[e]=a.style[e],a.style[e]=b[e];c.call(a);for(e in b)a.style[e]=d[e]},camelCase:function(a){return a.replace(bq,bC)}}),f.curCSS=f.css,f.each(["height","width"],function(a,b){f.cssHooks[b]={get:function(a,c,d){var e;if(c){a.offsetWidth!==0?e=bD(a,b,d):f.swap(a,bw,function(){e=bD(a,b,d)});if(e<=0){e=bz(a,b,b),e==="0px"&&bB&&(e=bB(a,b,b));if(e!=null)return e===""||e==="auto"?"0px":e}if(e<0||e==null){e=a.style[b];return e===""||e==="auto"?"0px":e}return typeof e=="string"?e:e+"px"}},set:function(a,b){if(!bs.test(b))return b;b=parseFloat(b);if(b>=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return bp.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle;c.zoom=1;var e=f.isNaN(b)?"":"alpha(opacity="+b*100+")",g=d&&d.filter||c.filter||"";c.filter=bo.test(g)?g.replace(bo,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bz(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bA=function(a,c){var d,e,g;c=c.replace(br,"-$1").toLowerCase();if(!(e=a.ownerDocument.defaultView))return b;if(g=e.getComputedStyle(a,null))d=g.getPropertyValue(c),d===""&&!f.contains(a.ownerDocument.documentElement,a)&&(d=f.style(a,c));return d}),c.documentElement.currentStyle&&(bB=function(a,b){var c,d=a.currentStyle&&a.currentStyle[b],e=a.runtimeStyle&&a.runtimeStyle[b],f=a.style;!bs.test(d)&&bt.test(d)&&(c=f.left,e&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":d||0,d=f.pixelLeft+"px",f.left=c,e&&(a.runtimeStyle.left=e));return d===""?"auto":d}),bz=bA||bB,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bE=/%20/g,bF=/\[\]$/,bG=/\r?\n/g,bH=/#.*$/,bI=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bJ=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bK=/^(?:about|app|app\-storage|.+\-extension|file|widget):$/,bL=/^(?:GET|HEAD)$/,bM=/^\/\//,bN=/\?/,bO=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bP=/^(?:select|textarea)/i,bQ=/\s+/,bR=/([?&])_=[^&]*/,bS=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bT=f.fn.load,bU={},bV={},bW,bX;try{bW=e.href}catch(bY){bW=c.createElement("a"),bW.href="",bW=bW.href}bX=bS.exec(bW.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bT)return bT.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("<div>").append(c.replace(bO,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bP.test(this.nodeName)||bJ.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bG,"\r\n")}}):{name:b.name,value:c.replace(bG,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.bind(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?f.extend(!0,a,f.ajaxSettings,b):(b=a,a=f.extend(!0,f.ajaxSettings,b));for(var c in{context:1,url:1})c in b?a[c]=b[c]:c in f.ajaxSettings&&(a[c]=f.ajaxSettings[c]);return a},ajaxSettings:{url:bW,isLocal:bK.test(bX[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":"*/*"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML}},ajaxPrefilter:bZ(bU),ajaxTransport:bZ(bV),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a?4:0;var o,r,u,w=l?ca(d,v,l):b,x,y;if(a>=200&&a<300||a===304){if(d.ifModified){if(x=v.getResponseHeader("Last-Modified"))f.lastModified[k]=x;if(y=v.getResponseHeader("Etag"))f.etag[k]=y}if(a===304)c="notmodified",o=!0;else try{r=cb(d,w),c="success",o=!0}catch(z){c="parsererror",u=z}}else{u=c;if(!c||a)c="error",a<0&&(a=0)}v.status=a,v.statusText=c,o?h.resolveWith(e,[r,c,v]):h.rejectWith(e,[v,c,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.resolveWith(e,[v,c]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f._Deferred(),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bI.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.done,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bH,"").replace(bM,bX[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bQ),d.crossDomain==null&&(r=bS.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bX[1]&&r[2]==bX[2]&&(r[3]||(r[1]==="http:"?80:443))==(bX[3]||(bX[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),b$(bU,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bL.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bN.test(d.url)?"&":"?")+d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bR,"$1_="+x);d.url=y+(y===d.url?(bN.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", */*; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=b$(bV,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){status<2?w(-1,z):f.error(z)}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)b_(g,a[g],c,e);return d.join("&").replace(bE,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cc=f.now(),cd=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cc++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(cd.test(b.url)||e&&cd.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(cd,l),b.url===j&&(e&&(k=k.replace(cd,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var ce=a.ActiveXObject?function(){for(var a in cg)cg[a](0,1)}:!1,cf=0,cg;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ch()||ci()}:ch,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,ce&&delete cg[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cf,ce&&(cg||(cg={},f(a).unload(ce)),cg[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var cj={},ck,cl,cm=/^(?:toggle|show|hide)$/,cn=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,co,cp=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cq,cr=a.webkitRequestAnimationFrame||a.mozRequestAnimationFrame||a.oRequestAnimationFrame;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cu("show",3),a,b,c);for(var g=0,h=this.length;g<h;g++)d=this[g],d.style&&(e=d.style.display,!f._data(d,"olddisplay")&&e==="none"&&(e=d.style.display=""),e===""&&f.css(d,"display")==="none"&&f._data(d,"olddisplay",cv(d.nodeName)));for(g=0;g<h;g++){d=this[g];if(d.style){e=d.style.display;if(e===""||e==="none")d.style.display=f._data(d,"olddisplay")||""}}return this},hide:function(a,b,c){if(a||a===0)return this.animate(cu("hide",3),a,b,c);for(var d=0,e=this.length;d<e;d++)if(this[d].style){var g=f.css(this[d],"display");g!=="none"&&!f._data(this[d],"olddisplay")&&f._data(this[d],"olddisplay",g)}for(d=0;d<e;d++)this[d].style&&(this[d].style.display="none");return this},_toggle:f.fn.toggle,toggle:function(a,b,c){var d=typeof a=="boolean";f.isFunction(a)&&f.isFunction(b)?this._toggle.apply(this,arguments):a==null||d?this.each(function(){var b=d?a:f(this).is(":hidden");f(this)[b?"show":"hide"]()}):this.animate(cu("toggle",3),a,b,c);return this},fadeTo:function(a,b,c,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=f.speed(b,c,d);if(f.isEmptyObject(a))return this.each(e.complete,[!1]);a=f.extend({},a);return this[e.queue===!1?"each":"queue"](function(){e.queue===!1&&f._mark(this);var b=f.extend({},e),c=this.nodeType===1,d=c&&f(this).is(":hidden"),g,h,i,j,k,l,m,n,o;b.animatedProperties={};for(i in a){g=f.camelCase(i),i!==g&&(a[g]=a[i],delete a[i]),h=a[g],f.isArray(h)?(b.animatedProperties[g]=h[1],h=a[g]=h[0]):b.animatedProperties[g]=b.specialEasing&&b.specialEasing[g]||b.easing||"swing";if(h==="hide"&&d||h==="show"&&!d)return b.complete.call(this);c&&(g==="height"||g==="width")&&(b.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY],f.css(this,"display")==="inline"&&f.css(this,"float")==="none"&&(f.support.inlineBlockNeedsLayout?(j=cv(this.nodeName),j==="inline"?this.style.display="inline-block":(this.style.display="inline",this.style.zoom=1)):this.style.display="inline-block"))}b.overflow!=null&&(this.style.overflow="hidden");for(i in a)k=new f.fx(this,b,i),h=a[i],cm.test(h)?k[h==="toggle"?d?"show":"hide":h]():(l=cn.exec(h),m=k.cur(),l?(n=parseFloat(l[2]),o=l[3]||(f.cssNumber[i]?"":"px"),o!=="px"&&(f.style(this,i,(n||1)+o),m=(n||1)/k.cur()*m,f.style(this,i,m+o)),l[1]&&(n=(l[1]==="-="?-1:1)*n+m),k.custom(m,n,o)):k.custom(m,h,""));return!0})},stop:function(a,b){a&&this.queue([]),this.each(function(){var a=f.timers,c=a.length;b||f._unmark(!0,this);while(c--)a[c].elem===this&&(b&&a[c](!0),a.splice(c,1))}),b||this.dequeue();return this}}),f.each({slideDown:cu("show",1),slideUp:cu("hide",1),slideToggle:cu("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){f.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),f.extend({speed:function(a,b,c){var d=a&&typeof a=="object"?f.extend({},a):{complete:c||!c&&b||f.isFunction(a)&&a,duration:a,easing:c&&b||b&&!f.isFunction(b)&&b};d.duration=f.fx.off?0:typeof d.duration=="number"?d.duration:d.duration in f.fx.speeds?f.fx.speeds[d.duration]:f.fx.speeds._default,d.old=d.complete,d.complete=function(a){d.queue!==!1?f.dequeue(this):a!==!1&&f._unmark(this),f.isFunction(d.old)&&d.old.call(this)};return d},easing:{linear:function(a,b,c,d){return c+d*a},swing:function(a,b,c,d){return(-Math.cos(a*Math.PI)/2+.5)*d+c}},timers:[],fx:function(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig=b.orig||{}}}),f.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(f.fx.step[this.prop]||f.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a,b=f.css(this.elem,this.prop);return isNaN(a=parseFloat(b))?!b||b==="auto"?0:b:a},custom:function(a,b,c){function h(a){return d.step(a)}var d=this,e=f.fx,g;this.startTime=cq||cs(),this.start=a,this.end=b,this.unit=c||this.unit||(f.cssNumber[this.prop]?"":"px"),this.now=this.start,this.pos=this.state=0,h.elem=this.elem,h()&&f.timers.push(h)&&!co&&(cr?(co=1,g=function(){co&&(cr(g),e.tick())},cr(g)):co=setInterval(e.tick,e.interval))},show:function(){this.options.orig[this.prop]=f.style(this.elem,this.prop),this.options.show=!0,this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur()),f(this.elem).show()},hide:function(){this.options.orig[this.prop]=f.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(a){var b=cq||cs(),c=!0,d=this.elem,e=this.options,g,h;if(a||b>=e.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),e.animatedProperties[this.prop]=!0;for(g in e.animatedProperties)e.animatedProperties[g]!==!0&&(c=!1);if(c){e.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){d.style["overflow"+b]=e.overflow[a]}),e.hide&&f(d).hide();if(e.hide||e.show)for(var i in e.animatedProperties)f.style(d,i,e.orig[i]);e.complete.call(d)}return!1}e.duration==Infinity?this.now=b:(h=b-this.startTime,this.state=h/e.duration,this.pos=f.easing[e.animatedProperties[this.prop]](this.state,h,0,1,e.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){for(var a=f.timers,b=0;b<a.length;++b)a[b]()||a.splice(b--,1);a.length||f.fx.stop()},interval:13,stop:function(){clearInterval(co),co=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){f.style(a.elem,"opacity",a.now)},_default:function(a){a.elem.style&&a.elem.style[a.prop]!=null?a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit:a.elem[a.prop]=a.now}}}),f.expr&&f.expr.filters&&(f.expr.filters.animated=function(a){return f.grep(f.timers,function(b){return a===b.elem}).length});var cw=/^t(?:able|d|h)$/i,cx=/^(?:body|html)$/i;"getBoundingClientRect"in c.documentElement?f.fn.offset=function(a){var b=this[0],c;if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);try{c=b.getBoundingClientRect()}catch(d){}var e=b.ownerDocument,g=e.documentElement;if(!c||!f.contains(g,b))return c?{top:c.top,left:c.left}:{top:0,left:0};var h=e.body,i=cy(e),j=g.clientTop||h.clientTop||0,k=g.clientLeft||h.clientLeft||0,l=i.pageYOffset||f.support.boxModel&&g.scrollTop||h.scrollTop,m=i.pageXOffset||f.support.boxModel&&g.scrollLeft||h.scrollLeft,n=c.top+l-j,o=c.left+m-k;return{top:n,left:o}}:f.fn.offset=function(a){var b=this[0];if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);f.offset.initialize();var c,d=b.offsetParent,e=b,g=b.ownerDocument,h=g.documentElement,i=g.body,j=g.defaultView,k=j?j.getComputedStyle(b,null):b.currentStyle,l=b.offsetTop,m=b.offsetLeft;while((b=b.parentNode)&&b!==i&&b!==h){if(f.offset.supportsFixedPosition&&k.position==="fixed")break;c=j?j.getComputedStyle(b,null):b.currentStyle,l-=b.scrollTop,m-=b.scrollLeft,b===d&&(l+=b.offsetTop,m+=b.offsetLeft,f.offset.doesNotAddBorder&&(!f.offset.doesAddBorderForTableAndCells||!cw.test(b.nodeName))&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),e=d,d=b.offsetParent),f.offset.subtractsBorderForOverflowNotVisible&&c.overflow!=="visible"&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),k=c}if(k.position==="relative"||k.position==="static")l+=i.offsetTop,m+=i.offsetLeft;f.offset.supportsFixedPosition&&k.position==="fixed"&&(l+=Math.max(h.scrollTop,i.scrollTop),m+=Math.max(h.scrollLeft,i.scrollLeft));return{top:l,left:m}},f.offset={initialize:function(){var a=c.body,b=c.createElement("div"),d,e,g,h,i=parseFloat(f.css(a,"marginTop"))||0,j="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";f.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"}),b.innerHTML=j,a.insertBefore(b,a.firstChild),d=b.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,this.doesNotAddBorder=e.offsetTop!==5,this.doesAddBorderForTableAndCells=h.offsetTop===5,e.style.position="fixed",e.style.top="20px",this.supportsFixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",this.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==i,a.removeChild(b),f.offset.initialize=f.noop},bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;f.offset.initialize(),f.offset.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(f.css(a,"marginTop"))||0,c+=parseFloat(f.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var d=f.css(a,"position");d==="static"&&(a.style.position="relative");var e=f(a),g=e.offset(),h=f.css(a,"top"),i=f.css(a,"left"),j=(d==="absolute"||d==="fixed")&&f.inArray("auto",[h,i])>-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cy(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cy(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){return this[0]?parseFloat(f.css(this[0],d,"padding")):null},f.fn["outer"+c]=function(a){return this[0]?parseFloat(f.css(this[0],d,a?"margin":"border")):null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c];return e.document.compatMode==="CSS1Compat"&&g||e.document.body["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var h=f.css(e,d),i=parseFloat(h);return f.isNaN(i)?h:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f})(window);
\ No newline at end of file
diff --git a/js/modernizr/test/caniuse_files/modernizr-1.7.min.js b/js/modernizr/test/caniuse_files/modernizr-1.7.min.js
new file mode 100644 (file)
index 0000000..6f54850
--- /dev/null
@@ -0,0 +1,2 @@
+// Modernizr v1.7  www.modernizr.com
+window.Modernizr=function(a,b,c){function G(){e.input=function(a){for(var b=0,c=a.length;b<c;b++)t[a[b]]=!!(a[b]in l);return t}("autocomplete autofocus list placeholder max min multiple pattern required step".split(" ")),e.inputtypes=function(a){for(var d=0,e,f,h,i=a.length;d<i;d++)l.setAttribute("type",f=a[d]),e=l.type!=="text",e&&(l.value=m,l.style.cssText="position:absolute;visibility:hidden;",/^range$/.test(f)&&l.style.WebkitAppearance!==c?(g.appendChild(l),h=b.defaultView,e=h.getComputedStyle&&h.getComputedStyle(l,null).WebkitAppearance!=="textfield"&&l.offsetHeight!==0,g.removeChild(l)):/^(search|tel)$/.test(f)||(/^(url|email)$/.test(f)?e=l.checkValidity&&l.checkValidity()===!1:/^color$/.test(f)?(g.appendChild(l),g.offsetWidth,e=l.value!=m,g.removeChild(l)):e=l.value!=m)),s[a[d]]=!!e;return s}("search tel url email datetime date month week time datetime-local number range color".split(" "))}function F(a,b){var c=a.charAt(0).toUpperCase()+a.substr(1),d=(a+" "+p.join(c+" ")+c).split(" ");return!!E(d,b)}function E(a,b){for(var d in a)if(k[a[d]]!==c&&(!b||b(a[d],j)))return!0}function D(a,b){return(""+a).indexOf(b)!==-1}function C(a,b){return typeof a===b}function B(a,b){return A(o.join(a+";")+(b||""))}function A(a){k.cssText=a}var d="1.7",e={},f=!0,g=b.documentElement,h=b.head||b.getElementsByTagName("head")[0],i="modernizr",j=b.createElement(i),k=j.style,l=b.createElement("input"),m=":)",n=Object.prototype.toString,o=" -webkit- -moz- -o- -ms- -khtml- ".split(" "),p="Webkit Moz O ms Khtml".split(" "),q={svg:"http://www.w3.org/2000/svg"},r={},s={},t={},u=[],v,w=function(a){var c=b.createElement("style"),d=b.createElement("div"),e;c.textContent=a+"{#modernizr{height:3px}}",h.appendChild(c),d.id="modernizr",g.appendChild(d),e=d.offsetHeight===3,c.parentNode.removeChild(c),d.parentNode.removeChild(d);return!!e},x=function(){function d(d,e){e=e||b.createElement(a[d]||"div");var f=(d="on"+d)in e;f||(e.setAttribute||(e=b.createElement("div")),e.setAttribute&&e.removeAttribute&&(e.setAttribute(d,""),f=C(e[d],"function"),C(e[d],c)||(e[d]=c),e.removeAttribute(d))),e=null;return f}var a={select:"input",change:"input",submit:"form",reset:"form",error:"img",load:"img",abort:"img"};return d}(),y=({}).hasOwnProperty,z;C(y,c)||C(y.call,c)?z=function(a,b){return b in a&&C(a.constructor.prototype[b],c)}:z=function(a,b){return y.call(a,b)},r.flexbox=function(){function c(a,b,c,d){a.style.cssText=o.join(b+":"+c+";")+(d||"")}function a(a,b,c,d){b+=":",a.style.cssText=(b+o.join(c+";"+b)).slice(0,-b.length)+(d||"")}var d=b.createElement("div"),e=b.createElement("div");a(d,"display","box","width:42px;padding:0;"),c(e,"box-flex","1","width:10px;"),d.appendChild(e),g.appendChild(d);var f=e.offsetWidth===42;d.removeChild(e),g.removeChild(d);return f},r.canvas=function(){var a=b.createElement("canvas");return a.getContext&&a.getContext("2d")},r.canvastext=function(){return e.canvas&&C(b.createElement("canvas").getContext("2d").fillText,"function")},r.webgl=function(){return!!a.WebGLRenderingContext},r.touch=function(){return"ontouchstart"in a||w("@media ("+o.join("touch-enabled),(")+"modernizr)")},r.geolocation=function(){return!!navigator.geolocation},r.postmessage=function(){return!!a.postMessage},r.websqldatabase=function(){var b=!!a.openDatabase;return b},r.indexedDB=function(){for(var b=-1,c=p.length;++b<c;){var d=p[b].toLowerCase();if(a[d+"_indexedDB"]||a[d+"IndexedDB"])return!0}return!1},r.hashchange=function(){return x("hashchange",a)&&(b.documentMode===c||b.documentMode>7)},r.history=function(){return !!(a.history&&history.pushState)},r.draganddrop=function(){return x("dragstart")&&x("drop")},r.websockets=function(){return"WebSocket"in a},r.rgba=function(){A("background-color:rgba(150,255,150,.5)");return D(k.backgroundColor,"rgba")},r.hsla=function(){A("background-color:hsla(120,40%,100%,.5)");return D(k.backgroundColor,"rgba")||D(k.backgroundColor,"hsla")},r.multiplebgs=function(){A("background:url(//:),url(//:),red url(//:)");return(new RegExp("(url\\s*\\(.*?){3}")).test(k.background)},r.backgroundsize=function(){return F("backgroundSize")},r.borderimage=function(){return F("borderImage")},r.borderradius=function(){return F("borderRadius","",function(a){return D(a,"orderRadius")})},r.boxshadow=function(){return F("boxShadow")},r.textshadow=function(){return b.createElement("div").style.textShadow===""},r.opacity=function(){B("opacity:.55");return/^0.55$/.test(k.opacity)},r.cssanimations=function(){return F("animationName")},r.csscolumns=function(){return F("columnCount")},r.cssgradients=function(){var a="background-image:",b="gradient(linear,left top,right bottom,from(#9f9),to(white));",c="linear-gradient(left top,#9f9, white);";A((a+o.join(b+a)+o.join(c+a)).slice(0,-a.length));return D(k.backgroundImage,"gradient")},r.cssreflections=function(){return F("boxReflect")},r.csstransforms=function(){return!!E(["transformProperty","WebkitTransform","MozTransform","OTransform","msTransform"])},r.csstransforms3d=function(){var a=!!E(["perspectiveProperty","WebkitPerspective","MozPerspective","OPerspective","msPerspective"]);a&&"webkitPerspective"in g.style&&(a=w("@media ("+o.join("transform-3d),(")+"modernizr)"));return a},r.csstransitions=function(){return F("transitionProperty")},r.fontface=function(){var a,c,d=h||g,e=b.createElement("style"),f=b.implementation||{hasFeature:function(){return!1}};e.type="text/css",d.insertBefore(e,d.firstChild),a=e.sheet||e.styleSheet;var i=f.hasFeature("CSS2","")?function(b){if(!a||!b)return!1;var c=!1;try{a.insertRule(b,0),c=/src/i.test(a.cssRules[0].cssText),a.deleteRule(a.cssRules.length-1)}catch(d){}return c}:function(b){if(!a||!b)return!1;a.cssText=b;return a.cssText.length!==0&&/src/i.test(a.cssText)&&a.cssText.replace(/\r+|\n+/g,"").indexOf(b.split(" ")[0])===0};c=i('@font-face { font-family: "font"; src: url(data:,); }'),d.removeChild(e);return c},r.video=function(){var a=b.createElement("video"),c=!!a.canPlayType;if(c){c=new Boolean(c),c.ogg=a.canPlayType('video/ogg; codecs="theora"');var d='video/mp4; codecs="avc1.42E01E';c.h264=a.canPlayType(d+'"')||a.canPlayType(d+', mp4a.40.2"'),c.webm=a.canPlayType('video/webm; codecs="vp8, vorbis"')}return c},r.audio=function(){var a=b.createElement("audio"),c=!!a.canPlayType;c&&(c=new Boolean(c),c.ogg=a.canPlayType('audio/ogg; codecs="vorbis"'),c.mp3=a.canPlayType("audio/mpeg;"),c.wav=a.canPlayType('audio/wav; codecs="1"'),c.m4a=a.canPlayType("audio/x-m4a;")||a.canPlayType("audio/aac;"));return c},r.localstorage=function(){try{return!!localStorage.getItem}catch(a){return!1}},r.sessionstorage=function(){try{return!!sessionStorage.getItem}catch(a){return!1}},r.webWorkers=function(){return!!a.Worker},r.applicationcache=function(){return!!a.applicationCache},r.svg=function(){return!!b.createElementNS&&!!b.createElementNS(q.svg,"svg").createSVGRect},r.inlinesvg=function(){var a=b.createElement("div");a.innerHTML="<svg/>";return(a.firstChild&&a.firstChild.namespaceURI)==q.svg},r.smil=function(){return!!b.createElementNS&&/SVG/.test(n.call(b.createElementNS(q.svg,"animate")))},r.svgclippaths=function(){return!!b.createElementNS&&/SVG/.test(n.call(b.createElementNS(q.svg,"clipPath")))};for(var H in r)z(r,H)&&(v=H.toLowerCase(),e[v]=r[H](),u.push((e[v]?"":"no-")+v));e.input||G(),e.crosswindowmessaging=e.postmessage,e.historymanagement=e.history,e.addTest=function(a,b){a=a.toLowerCase();if(!e[a]){b=!!b(),g.className+=" "+(b?"":"no-")+a,e[a]=b;return e}},A(""),j=l=null,f&&a.attachEvent&&function(){var a=b.createElement("div");a.innerHTML="<elem></elem>";return a.childNodes.length!==1}()&&function(a,b){function p(a,b){var c=-1,d=a.length,e,f=[];while(++c<d)e=a[c],(b=e.media||b)!="screen"&&f.push(p(e.imports,b),e.cssText);return f.join("")}function o(a){var b=-1;while(++b<e)a.createElement(d[b])}var c="abbr|article|aside|audio|canvas|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",d=c.split("|"),e=d.length,f=new RegExp("(^|\\s)("+c+")","gi"),g=new RegExp("<(/*)("+c+")","gi"),h=new RegExp("(^|[^\\n]*?\\s)("+c+")([^\\n]*)({[\\n\\w\\W]*?})","gi"),i=b.createDocumentFragment(),j=b.documentElement,k=j.firstChild,l=b.createElement("body"),m=b.createElement("style"),n;o(b),o(i),k.insertBefore(m,k.firstChild),m.media="print",a.attachEvent("onbeforeprint",function(){var a=-1,c=p(b.styleSheets,"all"),k=[],o;n=n||b.body;while((o=h.exec(c))!=null)k.push((o[1]+o[2]+o[3]).replace(f,"$1.iepp_$2")+o[4]);m.styleSheet.cssText=k.join("\n");while(++a<e){var q=b.getElementsByTagName(d[a]),r=q.length,s=-1;while(++s<r)q[s].className.indexOf("iepp_")<0&&(q[s].className+=" iepp_"+d[a])}i.appendChild(n),j.appendChild(l),l.className=n.className,l.innerHTML=n.innerHTML.replace(g,"<$1font")}),a.attachEvent("onafterprint",function(){l.innerHTML="",j.removeChild(l),j.appendChild(n),m.styleSheet.cssText=""})}(a,b),e._enableHTML5=f,e._version=d,g.className=g.className.replace(/\bno-js\b/,"")+" js "+u.join(" ");return e}(this,this.document)
\ No newline at end of file
diff --git a/js/modernizr/test/js/dumpdata.js b/js/modernizr/test/js/dumpdata.js
new file mode 100644 (file)
index 0000000..43c667b
--- /dev/null
@@ -0,0 +1,75 @@
+function dumpModernizr(){
+  var str = '';
+  dumpModernizr.old = dumpModernizr.old || {};
+
+    for (var prop in Modernizr) {
+
+      // skip previously done ones.
+      if (dumpModernizr.old[prop]) continue;
+      else dumpModernizr.old[prop] = true;
+
+      if (typeof Modernizr[prop] === 'function') continue;
+      // skip unit test items
+      if (/^test/.test(prop)) continue;
+
+      if (~TEST.inputs.indexOf(prop)) {
+        str += '<li><b>'+prop+'{}</b><ul>';
+        for (var field in Modernizr[prop]) {
+          str += '<li class="' + (Modernizr[prop][field] ? 'yes' : '') + '">' + field + ': ' + Modernizr[prop][field] + '</li>';
+        }
+        str += '</ul></li>';
+      } else {
+        str += '<li  id="'+prop+'" class="' + (Modernizr[prop] ? 'yes' : '') + '">' + prop + ': ' + Modernizr[prop] + '</li>';
+      }
+  }
+  return str;
+}
+
+
+function grabFeatDetects(){
+  // thx github.js
+  $.getScript('https://api.github.com/repos/Modernizr/Modernizr/git/trees/master?recursive=1&callback=processTree');
+}
+
+
+function processTree(data){
+  var filenames = [];
+
+  for (var i = 0; i < data.data.tree.length; i++){
+    var file = data.data.tree[i];
+    var match = file.path.match(/^feature-detects\/(.*)/);
+    if (!match) continue;
+
+    var relpath = location.host == "modernizr.github.com" ?
+                    '../modernizr-git/' : '../';
+
+    filenames.push(relpath + match[0]);
+  }
+
+  var jqxhrs = filenames.map(function(filename){
+    return jQuery.getScript(filename);
+  });
+
+  jQuery.when.apply(jQuery, jqxhrs).done(resultsToDOM);
+
+}
+
+function resultsToDOM(){
+
+  var modOutput = document.createElement('div'),
+      ref = document.getElementById('qunit-testresult') || document.getElementById('qunit-tests');
+
+  modOutput.className = 'output';
+  modOutput.innerHTML = dumpModernizr();
+
+  ref.parentNode.insertBefore(modOutput, ref);
+
+  // Modernizr object as text
+  document.getElementsByTagName('textarea')[0].innerHTML = JSON.stringify(Modernizr);
+
+}
+
+/* uno    */ resultsToDOM();
+/* dos    */ grabFeatDetects();
+/* tres   */ setTimeout(resultsToDOM,  5e3);
+/* quatro */ setTimeout(resultsToDOM, 15e3);
diff --git a/js/modernizr/test/js/lib/detect-global.js b/js/modernizr/test/js/lib/detect-global.js
new file mode 100644 (file)
index 0000000..48b4ac2
--- /dev/null
@@ -0,0 +1,153 @@
+// https://github.com/kangax/detect-global
+
+// tweaked to run without a UI.
+
+(function () {
+    function getPropertyDescriptors(object) {
+      var props = { };
+      for (var prop in object) {
+        
+        // nerfing for firefox who goes crazy over some objects like sessionStorage
+        try {
+          
+          props[prop] = {
+            type:  typeof object[prop],
+            value: object[prop]
+          };
+          
+        } catch(e){
+          props[prop] = {}; 
+        }
+      }
+      return props;
+    }
+    
+    function getCleanWindow() {
+      var elIframe = document.createElement('iframe');
+      elIframe.style.display = 'none';
+      
+      var ref = document.getElementsByTagName('script')[0];
+      ref.parentNode.insertBefore(elIframe, ref);
+      
+      elIframe.src = 'about:blank';
+      return elIframe.contentWindow;
+    }
+    
+    function appendControl(el, name) {
+      var elCheckbox = document.createElement('input');
+      elCheckbox.type = 'checkbox';
+      elCheckbox.checked = true;
+      elCheckbox.id = '__' + name;
+      
+      var elLabel = document.createElement('label');
+      elLabel.htmlFor = '__' + name;
+      elLabel.innerHTML = 'Exclude ' + name + ' properties?';
+      elLabel.style.marginLeft = '0.5em';
+      
+      var elWrapper = document.createElement('p');
+      elWrapper.style.marginBottom = '0.5em';
+      
+      elWrapper.appendChild(elCheckbox);
+      elWrapper.appendChild(elLabel);
+
+      el.appendChild(elWrapper);
+    }
+    
+    function appendAnalyze(el) {
+      var elAnalyze = document.createElement('button');
+      elAnalyze.id = '__analyze';
+      elAnalyze.innerHTML = 'Analyze';
+      elAnalyze.style.marginTop = '1em';
+      el.appendChild(elAnalyze);
+    }
+    
+    function appendCancel(el) {
+      var elCancel = document.createElement('a');
+      elCancel.href = '#';
+      elCancel.innerHTML = 'Cancel';
+      elCancel.style.cssText = 'color:#eee;margin-left:0.5em;';
+      elCancel.onclick = function() {
+        el.parentNode.removeChild(el);
+        return false; 
+      };
+      el.appendChild(elCancel);
+    }
+    
+    function initConfigPopup() {
+      var el = document.createElement('div');
+      
+      el.style.cssText =  'position:fixed; left:10px; top:10px; width:300px; background:rgba(50,50,50,0.9);' +
+                          '-moz-border-radius:10px; padding:1em; color: #eee; text-align: left;' +
+                          'font-family: "Helvetica Neue", Verdana, Arial, sans serif; z-index: 99999;';
+      
+      for (var prop in propSets) {
+        appendControl(el, prop);
+      }
+      
+      appendAnalyze(el);
+      appendCancel(el);
+      
+      var ref = document.getElementsByTagName('script')[0];
+      ref.parentNode.insertBefore(el, ref);
+    }
+    
+    function getPropsCount(object) {
+      var count = 0;
+      for (var prop in object) {
+        count++;
+      }
+      return count;
+    }
+    
+    function shouldDeleteProperty(propToCheck) {
+      for (var prop in propSets) {
+        var elCheckbox = document.getElementById('__' + prop);
+        var isPropInSet = propSets[prop].indexOf(propToCheck) > -1;
+        if (isPropInSet && (elCheckbox ? elCheckbox.checked : true) ) {
+          return true;
+        }
+      }
+    }
+    
+    function analyze() {
+      var global = (function(){ return this; })(),
+          globalProps = getPropertyDescriptors(global),
+          cleanWindow = getCleanWindow();
+          
+      for (var prop in cleanWindow) {
+        if (globalProps[prop]) {
+          delete globalProps[prop];
+        }
+      }
+      for (var prop in globalProps) {
+        if (shouldDeleteProperty(prop)) {
+          delete globalProps[prop];
+        }
+      }
+      
+      window.__globalsCount = getPropsCount(globalProps);
+      window.__globals      = globalProps;
+      
+      window.console && console.log('Total number of global properties: ' + __globalsCount);
+      window.console && console.dir(__globals);
+    }
+    
+    var propSets = {
+      'Prototype':        '$$ $A $F $H $R $break $continue $w Abstract Ajax Class Enumerable Element Field Form ' +
+                          'Hash Insertion ObjectRange PeriodicalExecuter Position Prototype Selector Template Toggle Try'.split(' '),
+                        
+      'Scriptaculous':    'Autocompleter Builder Control Draggable Draggables Droppables Effect Sortable SortableObserver Sound Scriptaculous'.split(' '),
+      'Firebug':          'loadFirebugConsole console _getFirebugConsoleElement _FirebugConsole _FirebugCommandLine _firebug'.split(' '),
+      'Mozilla':          'Components XPCNativeWrapper XPCSafeJSObjectWrapper getInterface netscape GetWeakReference GeckoActiveXObject'.split(' '),
+      'GoogleAnalytics':  'gaJsHost gaGlobal _gat _gaq pageTracker'.split(' '),
+      'lazyGlobals':      'onhashchange'.split(' ')
+    };
+    
+    // initConfigPopup(); // disable because we're going UI-less.
+    
+    var analyzeElem = document.getElementById('__analyze');
+    analyzeElem && (analyzeElem.onclick = analyze);
+    
+    analyze(); // and assign total added globals to window.__globalsCount
+    
+})();
\ No newline at end of file
diff --git a/js/modernizr/test/js/lib/jquery-1.7b2.js b/js/modernizr/test/js/lib/jquery-1.7b2.js
new file mode 100644 (file)
index 0000000..98c6d0d
--- /dev/null
@@ -0,0 +1,9279 @@
+/*!
+ * jQuery JavaScript Library v1.7b2
+ * http://jquery.com/
+ *
+ * Copyright 2011, John Resig
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * Includes Sizzle.js
+ * http://sizzlejs.com/
+ * Copyright 2011, The Dojo Foundation
+ * Released under the MIT, BSD, and GPL Licenses.
+ *
+ * Date: Thu Oct 13 21:12:55 2011 -0400
+ */
+(function( window, undefined ) {
+
+// Use the correct document accordingly with window argument (sandbox)
+var document = window.document,
+       navigator = window.navigator,
+       location = window.location;
+var jQuery = (function() {
+
+// Define a local copy of jQuery
+var jQuery = function( selector, context ) {
+               // The jQuery object is actually just the init constructor 'enhanced'
+               return new jQuery.fn.init( selector, context, rootjQuery );
+       },
+
+       // Map over jQuery in case of overwrite
+       _jQuery = window.jQuery,
+
+       // Map over the $ in case of overwrite
+       _$ = window.$,
+
+       // A central reference to the root jQuery(document)
+       rootjQuery,
+
+       // A simple way to check for HTML strings or ID strings
+       // Prioritize #id over <tag> to avoid XSS via location.hash (#9521)
+       quickExpr = /^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,
+
+       // Check if a string has a non-whitespace character in it
+       rnotwhite = /\S/,
+
+       // Used for trimming whitespace
+       trimLeft = /^\s+/,
+       trimRight = /\s+$/,
+
+       // Check for digits
+       rdigit = /\d/,
+
+       // Match a standalone tag
+       rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>)?$/,
+
+       // JSON RegExp
+       rvalidchars = /^[\],:{}\s]*$/,
+       rvalidescape = /\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,
+       rvalidtokens = /"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,
+       rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g,
+
+       // Useragent RegExp
+       rwebkit = /(webkit)[ \/]([\w.]+)/,
+       ropera = /(opera)(?:.*version)?[ \/]([\w.]+)/,
+       rmsie = /(msie) ([\w.]+)/,
+       rmozilla = /(mozilla)(?:.*? rv:([\w.]+))?/,
+
+       // Matches dashed string for camelizing
+       rdashAlpha = /-([a-z]|[0-9])/ig,
+       rmsPrefix = /^-ms-/,
+
+       // Used by jQuery.camelCase as callback to replace()
+       fcamelCase = function( all, letter ) {
+               return ( letter + "" ).toUpperCase();
+       },
+
+       // Keep a UserAgent string for use with jQuery.browser
+       userAgent = navigator.userAgent,
+
+       // For matching the engine and version of the browser
+       browserMatch,
+
+       // The deferred used on DOM ready
+       readyList,
+
+       // The ready event handler
+       DOMContentLoaded,
+
+       // Save a reference to some core methods
+       toString = Object.prototype.toString,
+       hasOwn = Object.prototype.hasOwnProperty,
+       push = Array.prototype.push,
+       slice = Array.prototype.slice,
+       trim = String.prototype.trim,
+       indexOf = Array.prototype.indexOf,
+
+       // [[Class]] -> type pairs
+       class2type = {};
+
+jQuery.fn = jQuery.prototype = {
+       constructor: jQuery,
+       init: function( selector, context, rootjQuery ) {
+               var match, elem, ret, doc;
+
+               // Handle $(""), $(null), or $(undefined)
+               if ( !selector ) {
+                       return this;
+               }
+
+               // Handle $(DOMElement)
+               if ( selector.nodeType ) {
+                       this.context = this[0] = selector;
+                       this.length = 1;
+                       return this;
+               }
+
+               // The body element only exists once, optimize finding it
+               if ( selector === "body" && !context && document.body ) {
+                       this.context = document;
+                       this[0] = document.body;
+                       this.selector = selector;
+                       this.length = 1;
+                       return this;
+               }
+
+               // Handle HTML strings
+               if ( typeof selector === "string" ) {
+                       // Are we dealing with HTML string or an ID?
+                       if ( selector.charAt(0) === "<" && selector.charAt( selector.length - 1 ) === ">" && selector.length >= 3 ) {
+                               // Assume that strings that start and end with <> are HTML and skip the regex check
+                               match = [ null, selector, null ];
+
+                       } else {
+                               match = quickExpr.exec( selector );
+                       }
+
+                       // Verify a match, and that no context was specified for #id
+                       if ( match && (match[1] || !context) ) {
+
+                               // HANDLE: $(html) -> $(array)
+                               if ( match[1] ) {
+                                       context = context instanceof jQuery ? context[0] : context;
+                                       doc = (context ? context.ownerDocument || context : document);
+
+                                       // If a single string is passed in and it's a single tag
+                                       // just do a createElement and skip the rest
+                                       ret = rsingleTag.exec( selector );
+
+                                       if ( ret ) {
+                                               if ( jQuery.isPlainObject( context ) ) {
+                                                       selector = [ document.createElement( ret[1] ) ];
+                                                       jQuery.fn.attr.call( selector, context, true );
+
+                                               } else {
+                                                       selector = [ doc.createElement( ret[1] ) ];
+                                               }
+
+                                       } else {
+                                               ret = jQuery.buildFragment( [ match[1] ], [ doc ] );
+                                               selector = (ret.cacheable ? jQuery.clone(ret.fragment) : ret.fragment).childNodes;
+                                       }
+
+                                       return jQuery.merge( this, selector );
+
+                               // HANDLE: $("#id")
+                               } else {
+                                       elem = document.getElementById( match[2] );
+
+                                       // Check parentNode to catch when Blackberry 4.6 returns
+                                       // nodes that are no longer in the document #6963
+                                       if ( elem && elem.parentNode ) {
+                                               // Handle the case where IE and Opera return items
+                                               // by name instead of ID
+                                               if ( elem.id !== match[2] ) {
+                                                       return rootjQuery.find( selector );
+                                               }
+
+                                               // Otherwise, we inject the element directly into the jQuery object
+                                               this.length = 1;
+                                               this[0] = elem;
+                                       }
+
+                                       this.context = document;
+                                       this.selector = selector;
+                                       return this;
+                               }
+
+                       // HANDLE: $(expr, $(...))
+                       } else if ( !context || context.jquery ) {
+                               return (context || rootjQuery).find( selector );
+
+                       // HANDLE: $(expr, context)
+                       // (which is just equivalent to: $(context).find(expr)
+                       } else {
+                               return this.constructor( context ).find( selector );
+                       }
+
+               // HANDLE: $(function)
+               // Shortcut for document ready
+               } else if ( jQuery.isFunction( selector ) ) {
+                       return rootjQuery.ready( selector );
+               }
+
+               if (selector.selector !== undefined) {
+                       this.selector = selector.selector;
+                       this.context = selector.context;
+               }
+
+               return jQuery.makeArray( selector, this );
+       },
+
+       // Start with an empty selector
+       selector: "",
+
+       // The current version of jQuery being used
+       jquery: "1.7b2",
+
+       // The default length of a jQuery object is 0
+       length: 0,
+
+       // The number of elements contained in the matched element set
+       size: function() {
+               return this.length;
+       },
+
+       toArray: function() {
+               return slice.call( this, 0 );
+       },
+
+       // Get the Nth element in the matched element set OR
+       // Get the whole matched element set as a clean array
+       get: function( num ) {
+               return num == null ?
+
+                       // Return a 'clean' array
+                       this.toArray() :
+
+                       // Return just the object
+                       ( num < 0 ? this[ this.length + num ] : this[ num ] );
+       },
+
+       // Take an array of elements and push it onto the stack
+       // (returning the new matched element set)
+       pushStack: function( elems, name, selector ) {
+               // Build a new jQuery matched element set
+               var ret = this.constructor();
+
+               if ( jQuery.isArray( elems ) ) {
+                       push.apply( ret, elems );
+
+               } else {
+                       jQuery.merge( ret, elems );
+               }
+
+               // Add the old object onto the stack (as a reference)
+               ret.prevObject = this;
+
+               ret.context = this.context;
+
+               if ( name === "find" ) {
+                       ret.selector = this.selector + (this.selector ? " " : "") + selector;
+               } else if ( name ) {
+                       ret.selector = this.selector + "." + name + "(" + selector + ")";
+               }
+
+               // Return the newly-formed element set
+               return ret;
+       },
+
+       // Execute a callback for every element in the matched set.
+       // (You can seed the arguments with an array of args, but this is
+       // only used internally.)
+       each: function( callback, args ) {
+               return jQuery.each( this, callback, args );
+       },
+
+       ready: function( fn ) {
+               // Attach the listeners
+               jQuery.bindReady();
+
+               // Add the callback
+               readyList.add( fn );
+
+               return this;
+       },
+
+       eq: function( i ) {
+               return i === -1 ?
+                       this.slice( i ) :
+                       this.slice( i, +i + 1 );
+       },
+
+       first: function() {
+               return this.eq( 0 );
+       },
+
+       last: function() {
+               return this.eq( -1 );
+       },
+
+       slice: function() {
+               return this.pushStack( slice.apply( this, arguments ),
+                       "slice", slice.call(arguments).join(",") );
+       },
+
+       map: function( callback ) {
+               return this.pushStack( jQuery.map(this, function( elem, i ) {
+                       return callback.call( elem, i, elem );
+               }));
+       },
+
+       end: function() {
+               return this.prevObject || this.constructor(null);
+       },
+
+       // For internal use only.
+       // Behaves like an Array's method, not like a jQuery method.
+       push: push,
+       sort: [].sort,
+       splice: [].splice
+};
+
+// Give the init function the jQuery prototype for later instantiation
+jQuery.fn.init.prototype = jQuery.fn;
+
+jQuery.extend = jQuery.fn.extend = function() {
+       var options, name, src, copy, copyIsArray, clone,
+               target = arguments[0] || {},
+               i = 1,
+               length = arguments.length,
+               deep = false;
+
+       // Handle a deep copy situation
+       if ( typeof target === "boolean" ) {
+               deep = target;
+               target = arguments[1] || {};
+               // skip the boolean and the target
+               i = 2;
+       }
+
+       // Handle case when target is a string or something (possible in deep copy)
+       if ( typeof target !== "object" && !jQuery.isFunction(target) ) {
+               target = {};
+       }
+
+       // extend jQuery itself if only one argument is passed
+       if ( length === i ) {
+               target = this;
+               --i;
+       }
+
+       for ( ; i < length; i++ ) {
+               // Only deal with non-null/undefined values
+               if ( (options = arguments[ i ]) != null ) {
+                       // Extend the base object
+                       for ( name in options ) {
+                               src = target[ name ];
+                               copy = options[ name ];
+
+                               // Prevent never-ending loop
+                               if ( target === copy ) {
+                                       continue;
+                               }
+
+                               // Recurse if we're merging plain objects or arrays
+                               if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) {
+                                       if ( copyIsArray ) {
+                                               copyIsArray = false;
+                                               clone = src && jQuery.isArray(src) ? src : [];
+
+                                       } else {
+                                               clone = src && jQuery.isPlainObject(src) ? src : {};
+                                       }
+
+                                       // Never move original objects, clone them
+                                       target[ name ] = jQuery.extend( deep, clone, copy );
+
+                               // Don't bring in undefined values
+                               } else if ( copy !== undefined ) {
+                                       target[ name ] = copy;
+                               }
+                       }
+               }
+       }
+
+       // Return the modified object
+       return target;
+};
+
+jQuery.extend({
+       noConflict: function( deep ) {
+               if ( window.$ === jQuery ) {
+                       window.$ = _$;
+               }
+
+               if ( deep && window.jQuery === jQuery ) {
+                       window.jQuery = _jQuery;
+               }
+
+               return jQuery;
+       },
+
+       // Is the DOM ready to be used? Set to true once it occurs.
+       isReady: false,
+
+       // A counter to track how many items to wait for before
+       // the ready event fires. See #6781
+       readyWait: 1,
+
+       // Hold (or release) the ready event
+       holdReady: function( hold ) {
+               if ( hold ) {
+                       jQuery.readyWait++;
+               } else {
+                       jQuery.ready( true );
+               }
+       },
+
+       // Handle when the DOM is ready
+       ready: function( wait ) {
+               // Either a released hold or an DOMready/load event and not yet ready
+               if ( (wait === true && !--jQuery.readyWait) || (wait !== true && !jQuery.isReady) ) {
+                       // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443).
+                       if ( !document.body ) {
+                               return setTimeout( jQuery.ready, 1 );
+                       }
+
+                       // Remember that the DOM is ready
+                       jQuery.isReady = true;
+
+                       // If a normal DOM Ready event fired, decrement, and wait if need be
+                       if ( wait !== true && --jQuery.readyWait > 0 ) {
+                               return;
+                       }
+
+                       // If there are functions bound, to execute
+                       readyList.fireWith( document, [ jQuery ] );
+
+                       // Trigger any bound ready events
+                       if ( jQuery.fn.trigger ) {
+                               jQuery( document ).trigger( "ready" ).unbind( "ready" );
+                       }
+               }
+       },
+
+       bindReady: function() {
+               if ( readyList ) {
+                       return;
+               }
+
+               readyList = jQuery.Callbacks( "once memory" );
+
+               // Catch cases where $(document).ready() is called after the
+               // browser event has already occurred.
+               if ( document.readyState === "complete" ) {
+                       // Handle it asynchronously to allow scripts the opportunity to delay ready
+                       return setTimeout( jQuery.ready, 1 );
+               }
+
+               // Mozilla, Opera and webkit nightlies currently support this event
+               if ( document.addEventListener ) {
+                       // Use the handy event callback
+                       document.addEventListener( "DOMContentLoaded", DOMContentLoaded, false );
+
+                       // A fallback to window.onload, that will always work
+                       window.addEventListener( "load", jQuery.ready, false );
+
+               // If IE event model is used
+               } else if ( document.attachEvent ) {
+                       // ensure firing before onload,
+                       // maybe late but safe also for iframes
+                       document.attachEvent( "onreadystatechange", DOMContentLoaded );
+
+                       // A fallback to window.onload, that will always work
+                       window.attachEvent( "onload", jQuery.ready );
+
+                       // If IE and not a frame
+                       // continually check to see if the document is ready
+                       var toplevel = false;
+
+                       try {
+                               toplevel = window.frameElement == null;
+                       } catch(e) {}
+
+                       if ( document.documentElement.doScroll && toplevel ) {
+                               doScrollCheck();
+                       }
+               }
+       },
+
+       // See test/unit/core.js for details concerning isFunction.
+       // Since version 1.3, DOM methods and functions like alert
+       // aren't supported. They return false on IE (#2968).
+       isFunction: function( obj ) {
+               return jQuery.type(obj) === "function";
+       },
+
+       isArray: Array.isArray || function( obj ) {
+               return jQuery.type(obj) === "array";
+       },
+
+       // A crude way of determining if an object is a window
+       isWindow: function( obj ) {
+               return obj && typeof obj === "object" && "setInterval" in obj;
+       },
+
+       isNumeric: function( obj ) {
+               return obj != null && rdigit.test( obj ) && !isNaN( obj );
+       },
+
+       type: function( obj ) {
+               return obj == null ?
+                       String( obj ) :
+                       class2type[ toString.call(obj) ] || "object";
+       },
+
+       isPlainObject: function( obj ) {
+               // Must be an Object.
+               // Because of IE, we also have to check the presence of the constructor property.
+               // Make sure that DOM nodes and window objects don't pass through, as well
+               if ( !obj || jQuery.type(obj) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) {
+                       return false;
+               }
+
+               try {
+                       // Not own constructor property must be Object
+                       if ( obj.constructor &&
+                               !hasOwn.call(obj, "constructor") &&
+                               !hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) {
+                               return false;
+                       }
+               } catch ( e ) {
+                       // IE8,9 Will throw exceptions on certain host objects #9897
+                       return false;
+               }
+
+               // Own properties are enumerated firstly, so to speed up,
+               // if last one is own, then all properties are own.
+
+               var key;
+               for ( key in obj ) {}
+
+               return key === undefined || hasOwn.call( obj, key );
+       },
+
+       isEmptyObject: function( obj ) {
+               for ( var name in obj ) {
+                       return false;
+               }
+               return true;
+       },
+
+       error: function( msg ) {
+               throw msg;
+       },
+
+       parseJSON: function( data ) {
+               if ( typeof data !== "string" || !data ) {
+                       return null;
+               }
+
+               // Make sure leading/trailing whitespace is removed (IE can't handle it)
+               data = jQuery.trim( data );
+
+               // Attempt to parse using the native JSON parser first
+               if ( window.JSON && window.JSON.parse ) {
+                       return window.JSON.parse( data );
+               }
+
+               // Make sure the incoming data is actual JSON
+               // Logic borrowed from http://json.org/json2.js
+               if ( rvalidchars.test( data.replace( rvalidescape, "@" )
+                       .replace( rvalidtokens, "]" )
+                       .replace( rvalidbraces, "")) ) {
+
+                       return (new Function( "return " + data ))();
+
+               }
+               jQuery.error( "Invalid JSON: " + data );
+       },
+
+       // Cross-browser xml parsing
+       parseXML: function( data ) {
+               var xml, tmp;
+               try {
+                       if ( window.DOMParser ) { // Standard
+                               tmp = new DOMParser();
+                               xml = tmp.parseFromString( data , "text/xml" );
+                       } else { // IE
+                               xml = new ActiveXObject( "Microsoft.XMLDOM" );
+                               xml.async = "false";
+                               xml.loadXML( data );
+                       }
+               } catch( e ) {
+                       xml = undefined;
+               }
+               if ( !xml || !xml.documentElement || xml.getElementsByTagName( "parsererror" ).length ) {
+                       jQuery.error( "Invalid XML: " + data );
+               }
+               return xml;
+       },
+
+       noop: function() {},
+
+       // Evaluates a script in a global context
+       // Workarounds based on findings by Jim Driscoll
+       // http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context
+       globalEval: function( data ) {
+               if ( data && rnotwhite.test( data ) ) {
+                       // We use execScript on Internet Explorer
+                       // We use an anonymous function so that context is window
+                       // rather than jQuery in Firefox
+                       ( window.execScript || function( data ) {
+                               window[ "eval" ].call( window, data );
+                       } )( data );
+               }
+       },
+
+       // Convert dashed to camelCase; used by the css and data modules
+       // Microsoft forgot to hump their vendor prefix (#9572)
+       camelCase: function( string ) {
+               return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
+       },
+
+       nodeName: function( elem, name ) {
+               return elem.nodeName && elem.nodeName.toUpperCase() === name.toUpperCase();
+       },
+
+       // args is for internal usage only
+       each: function( object, callback, args ) {
+               var name, i = 0,
+                       length = object.length,
+                       isObj = length === undefined || jQuery.isFunction( object );
+
+               if ( args ) {
+                       if ( isObj ) {
+                               for ( name in object ) {
+                                       if ( callback.apply( object[ name ], args ) === false ) {
+                                               break;
+                                       }
+                               }
+                       } else {
+                               for ( ; i < length; ) {
+                                       if ( callback.apply( object[ i++ ], args ) === false ) {
+                                               break;
+                                       }
+                               }
+                       }
+
+               // A special, fast, case for the most common use of each
+               } else {
+                       if ( isObj ) {
+                               for ( name in object ) {
+                                       if ( callback.call( object[ name ], name, object[ name ] ) === false ) {
+                                               break;
+                                       }
+                               }
+                       } else {
+                               for ( ; i < length; ) {
+                                       if ( callback.call( object[ i ], i, object[ i++ ] ) === false ) {
+                                               break;
+                                       }
+                               }
+                       }
+               }
+
+               return object;
+       },
+
+       // Use native String.trim function wherever possible
+       trim: trim ?
+               function( text ) {
+                       return text == null ?
+                               "" :
+                               trim.call( text );
+               } :
+
+               // Otherwise use our own trimming functionality
+               function( text ) {
+                       return text == null ?
+                               "" :
+                               text.toString().replace( trimLeft, "" ).replace( trimRight, "" );
+               },
+
+       // results is for internal usage only
+       makeArray: function( array, results ) {
+               var ret = results || [];
+
+               if ( array != null ) {
+                       // The window, strings (and functions) also have 'length'
+                       // The extra typeof function check is to prevent crashes
+                       // in Safari 2 (See: #3039)
+                       // Tweaked logic slightly to handle Blackberry 4.7 RegExp issues #6930
+                       var type = jQuery.type( array );
+
+                       if ( array.length == null || type === "string" || type === "function" || type === "regexp" || jQuery.isWindow( array ) ) {
+                               push.call( ret, array );
+                       } else {
+                               jQuery.merge( ret, array );
+                       }
+               }
+
+               return ret;
+       },
+
+       inArray: function( elem, array, i ) {
+               var len;
+
+               if ( array ) {
+                       if ( indexOf ) {
+                               return indexOf.call( array, elem, i );
+                       }
+
+                       len = array.length;
+                       i = i ? i < 0 ? Math.max( 0, len + i ) : i : 0;
+
+                       for ( ; i < len; i++ ) {
+                               // Skip accessing in sparse arrays
+                               if ( i in array && array[ i ] === elem ) {
+                                       return i;
+                               }
+                       }
+               }
+
+               return -1;
+       },
+
+       merge: function( first, second ) {
+               var i = first.length,
+                       j = 0;
+
+               if ( typeof second.length === "number" ) {
+                       for ( var l = second.length; j < l; j++ ) {
+                               first[ i++ ] = second[ j ];
+                       }
+
+               } else {
+                       while ( second[j] !== undefined ) {
+                               first[ i++ ] = second[ j++ ];
+                       }
+               }
+
+               first.length = i;
+
+               return first;
+       },
+
+       grep: function( elems, callback, inv ) {
+               var ret = [], retVal;
+               inv = !!inv;
+
+               // Go through the array, only saving the items
+               // that pass the validator function
+               for ( var i = 0, length = elems.length; i < length; i++ ) {
+                       retVal = !!callback( elems[ i ], i );
+                       if ( inv !== retVal ) {
+                               ret.push( elems[ i ] );
+                       }
+               }
+
+               return ret;
+       },
+
+       // arg is for internal usage only
+       map: function( elems, callback, arg ) {
+               var value, key, ret = [],
+                       i = 0,
+                       length = elems.length,
+                       // jquery objects are treated as arrays
+                       isArray = elems instanceof jQuery || length !== undefined && typeof length === "number" && ( ( length > 0 && elems[ 0 ] && elems[ length -1 ] ) || length === 0 || jQuery.isArray( elems ) ) ;
+
+               // Go through the array, translating each of the items to their
+               if ( isArray ) {
+                       for ( ; i < length; i++ ) {
+                               value = callback( elems[ i ], i, arg );
+
+                               if ( value != null ) {
+                                       ret[ ret.length ] = value;
+                               }
+                       }
+
+               // Go through every key on the object,
+               } else {
+                       for ( key in elems ) {
+                               value = callback( elems[ key ], key, arg );
+
+                               if ( value != null ) {
+                                       ret[ ret.length ] = value;
+                               }
+                       }
+               }
+
+               // Flatten any nested arrays
+               return ret.concat.apply( [], ret );
+       },
+
+       // A global GUID counter for objects
+       guid: 1,
+
+       // Bind a function to a context, optionally partially applying any
+       // arguments.
+       proxy: function( fn, context ) {
+               if ( typeof context === "string" ) {
+                       var tmp = fn[ context ];
+                       context = fn;
+                       fn = tmp;
+               }
+
+               // Quick check to determine if target is callable, in the spec
+               // this throws a TypeError, but we will just return undefined.
+               if ( !jQuery.isFunction( fn ) ) {
+                       return undefined;
+               }
+
+               // Simulated bind
+               var args = slice.call( arguments, 2 ),
+                       proxy = function() {
+                               return fn.apply( context, args.concat( slice.call( arguments ) ) );
+                       };
+
+               // Set the guid of unique handler to the same of original handler, so it can be removed
+               proxy.guid = fn.guid = fn.guid || proxy.guid || jQuery.guid++;
+
+               return proxy;
+       },
+
+       // Mutifunctional method to get and set values to a collection
+       // The value/s can optionally be executed if it's a function
+       access: function( elems, key, value, exec, fn, pass ) {
+               var length = elems.length;
+
+               // Setting many attributes
+               if ( typeof key === "object" ) {
+                       for ( var k in key ) {
+                               jQuery.access( elems, k, key[k], exec, fn, value );
+                       }
+                       return elems;
+               }
+
+               // Setting one attribute
+               if ( value !== undefined ) {
+                       // Optionally, function values get executed if exec is true
+                       exec = !pass && exec && jQuery.isFunction(value);
+
+                       for ( var i = 0; i < length; i++ ) {
+                               fn( elems[i], key, exec ? value.call( elems[i], i, fn( elems[i], key ) ) : value, pass );
+                       }
+
+                       return elems;
+               }
+
+               // Getting an attribute
+               return length ? fn( elems[0], key ) : undefined;
+       },
+
+       now: function() {
+               return (new Date()).getTime();
+       },
+
+       // Use of jQuery.browser is frowned upon.
+       // More details: http://docs.jquery.com/Utilities/jQuery.browser
+       uaMatch: function( ua ) {
+               ua = ua.toLowerCase();
+
+               var match = rwebkit.exec( ua ) ||
+                       ropera.exec( ua ) ||
+                       rmsie.exec( ua ) ||
+                       ua.indexOf("compatible") < 0 && rmozilla.exec( ua ) ||
+                       [];
+
+               return { browser: match[1] || "", version: match[2] || "0" };
+       },
+
+       sub: function() {
+               function jQuerySub( selector, context ) {
+                       return new jQuerySub.fn.init( selector, context );
+               }
+               jQuery.extend( true, jQuerySub, this );
+               jQuerySub.superclass = this;
+               jQuerySub.fn = jQuerySub.prototype = this();
+               jQuerySub.fn.constructor = jQuerySub;
+               jQuerySub.sub = this.sub;
+               jQuerySub.fn.init = function init( selector, context ) {
+                       if ( context && context instanceof jQuery && !(context instanceof jQuerySub) ) {
+                               context = jQuerySub( context );
+                       }
+
+                       return jQuery.fn.init.call( this, selector, context, rootjQuerySub );
+               };
+               jQuerySub.fn.init.prototype = jQuerySub.fn;
+               var rootjQuerySub = jQuerySub(document);
+               return jQuerySub;
+       },
+
+       browser: {}
+});
+
+// Populate the class2type map
+jQuery.each("Boolean Number String Function Array Date RegExp Object".split(" "), function(i, name) {
+       class2type[ "[object " + name + "]" ] = name.toLowerCase();
+});
+
+browserMatch = jQuery.uaMatch( userAgent );
+if ( browserMatch.browser ) {
+       jQuery.browser[ browserMatch.browser ] = true;
+       jQuery.browser.version = browserMatch.version;
+}
+
+// Deprecated, use jQuery.browser.webkit instead
+if ( jQuery.browser.webkit ) {
+       jQuery.browser.safari = true;
+}
+
+// IE doesn't match non-breaking spaces with \s
+if ( rnotwhite.test( "\xA0" ) ) {
+       trimLeft = /^[\s\xA0]+/;
+       trimRight = /[\s\xA0]+$/;
+}
+
+// All jQuery objects should point back to these
+rootjQuery = jQuery(document);
+
+// Cleanup functions for the document ready method
+if ( document.addEventListener ) {
+       DOMContentLoaded = function() {
+               document.removeEventListener( "DOMContentLoaded", DOMContentLoaded, false );
+               jQuery.ready();
+       };
+
+} else if ( document.attachEvent ) {
+       DOMContentLoaded = function() {
+               // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443).
+               if ( document.readyState === "complete" ) {
+                       document.detachEvent( "onreadystatechange", DOMContentLoaded );
+                       jQuery.ready();
+               }
+       };
+}
+
+// The DOM ready check for Internet Explorer
+function doScrollCheck() {
+       if ( jQuery.isReady ) {
+               return;
+       }
+
+       try {
+               // If IE is used, use the trick by Diego Perini
+               // http://javascript.nwbox.com/IEContentLoaded/
+               document.documentElement.doScroll("left");
+       } catch(e) {
+               setTimeout( doScrollCheck, 1 );
+               return;
+       }
+
+       // and execute any waiting functions
+       jQuery.ready();
+}
+
+// Expose jQuery as an AMD module, but only for AMD loaders that
+// understand the issues with loading multiple versions of jQuery
+// in a page that all might call define(). The loader will indicate
+// they have special allowances for multiple jQuery versions by
+// specifying define.amd.jQuery = true. Register as a named module,
+// since jQuery can be concatenated with other files that may use define,
+// but not use a proper concatenation script that understands anonymous
+// AMD modules. A named AMD is safest and most robust way to register.
+// Lowercase jquery is used because AMD module names are derived from
+// file names, and jQuery is normally delivered in a lowercase file name.
+if ( typeof define === "function" && define.amd && define.amd.jQuery ) {
+       define( "jquery", [], function () { return jQuery; } );
+}
+
+return jQuery;
+
+})();
+
+
+// String to Object flags format cache
+var flagsCache = {};
+
+// Convert String-formatted flags into Object-formatted ones and store in cache
+function createFlags( flags ) {
+       var object = flagsCache[ flags ] = {},
+               i, length;
+       flags = flags.split( /\s+/ );
+       for ( i = 0, length = flags.length; i < length; i++ ) {
+               object[ flags[i] ] = true;
+       }
+       return object;
+}
+
+/*
+ * Create a callback list using the following parameters:
+ *
+ *     flags:  an optional list of space-separated flags that will change how
+ *                     the callback list behaves
+ *
+ * By default a callback list will act like an event callback list and can be
+ * "fired" multiple times.
+ *
+ * Possible flags:
+ *
+ *     once:                   will ensure the callback list can only be fired once (like a Deferred)
+ *
+ *     memory:                 will keep track of previous values and will call any callback added
+ *                                     after the list has been fired right away with the latest "memorized"
+ *                                     values (like a Deferred)
+ *
+ *     unique:                 will ensure a callback can only be added once (no duplicate in the list)
+ *
+ *     stopOnFalse:    interrupt callings when a callback returns false
+ *
+ */
+jQuery.Callbacks = function( flags ) {
+
+       // Convert flags from String-formatted to Object-formatted
+       // (we check in cache first)
+       flags = flags ? ( flagsCache[ flags ] || createFlags( flags ) ) : {};
+
+       var // Actual callback list
+               list = [],
+               // Stack of fire calls for repeatable lists
+               stack = [],
+               // Last fire value (for non-forgettable lists)
+               memory,
+               // Flag to know if list is currently firing
+               firing,
+               // First callback to fire (used internally by add and fireWith)
+               firingStart,
+               // End of the loop when firing
+               firingLength,
+               // Index of currently firing callback (modified by remove if needed)
+               firingIndex,
+               // Add one or several callbacks to the list
+               add = function( args ) {
+                       var i,
+                               length,
+                               elem,
+                               type,
+                               actual;
+                       for ( i = 0, length = args.length; i < length; i++ ) {
+                               elem = args[ i ];
+                               type = jQuery.type( elem );
+                               if ( type === "array" ) {
+                                       // Inspect recursively
+                                       add( elem );
+                               } else if ( type === "function" ) {
+                                       // Add if not in unique mode and callback is not in
+                                       if ( !flags.unique || !self.has( elem ) ) {
+                                               list.push( elem );
+                                       }
+                               }
+                       }
+               },
+               // Fire callbacks
+               fire = function( context, args ) {
+                       args = args || [];
+                       memory = !flags.memory || [ context, args ];
+                       firing = true;
+                       firingIndex = firingStart || 0;
+                       firingStart = 0;
+                       firingLength = list.length;
+                       for ( ; list && firingIndex < firingLength; firingIndex++ ) {
+                               if ( list[ firingIndex ].apply( context, args ) === false && flags.stopOnFalse ) {
+                                       memory = true; // Mark as halted
+                                       break;
+                               }
+                       }
+                       firing = false;
+                       if ( list ) {
+                               if ( !flags.once ) {
+                                       if ( stack && stack.length ) {
+                                               memory = stack.shift();
+                                               self.fireWith( memory[ 0 ], memory[ 1 ] );
+                                       }
+                               } else if ( memory === true ) {
+                                       self.disable();
+                               } else {
+                                       list = [];
+                               }
+                       }
+               },
+               // Actual Callbacks object
+               self = {
+                       // Add a callback or a collection of callbacks to the list
+                       add: function() {
+                               if ( list ) {
+                                       var length = list.length;
+                                       add( arguments );
+                                       // Do we need to add the callbacks to the
+                                       // current firing batch?
+                                       if ( firing ) {
+                                               firingLength = list.length;
+                                       // With memory, if we're not firing then
+                                       // we should call right away, unless previous
+                                       // firing was halted (stopOnFalse)
+                                       } else if ( memory && memory !== true ) {
+                                               firingStart = length;
+                                               fire( memory[ 0 ], memory[ 1 ] );
+                                       }
+                               }
+                               return this;
+                       },
+                       // Remove a callback from the list
+                       remove: function() {
+                               if ( list ) {
+                                       var args = arguments,
+                                               argIndex = 0,
+                                               argLength = args.length;
+                                       for ( ; argIndex < argLength ; argIndex++ ) {
+                                               for ( var i = 0; i < list.length; i++ ) {
+                                                       if ( args[ argIndex ] === list[ i ] ) {
+                                                               // Handle firingIndex and firingLength
+                                                               if ( firing ) {
+                                                                       if ( i <= firingLength ) {
+                                                                               firingLength--;
+                                                                               if ( i <= firingIndex ) {
+                                                                                       firingIndex--;
+                                                                               }
+                                                                       }
+                                                               }
+                                                               // Remove the element
+                                                               list.splice( i--, 1 );
+                                                               // If we have some unicity property then
+                                                               // we only need to do this once
+                                                               if ( flags.unique ) {
+                                                                       break;
+                                                               }
+                                                       }
+                                               }
+                                       }
+                               }
+                               return this;
+                       },
+                       // Control if a given callback is in the list
+                       has: function( fn ) {
+                               if ( list ) {
+                                       var i = 0,
+                                               length = list.length;
+                                       for ( ; i < length; i++ ) {
+                                               if ( fn === list[ i ] ) {
+                                                       return true;
+                                               }
+                                       }
+                               }
+                               return false;
+                       },
+                       // Remove all callbacks from the list
+                       empty: function() {
+                               list = [];
+                               return this;
+                       },
+                       // Have the list do nothing anymore
+                       disable: function() {
+                               list = stack = memory = undefined;
+                               return this;
+                       },
+                       // Is it disabled?
+                       disabled: function() {
+                               return !list;
+                       },
+                       // Lock the list in its current state
+                       lock: function() {
+                               stack = undefined;
+                               if ( !memory || memory === true ) {
+                                       self.disable();
+                               }
+                               return this;
+                       },
+                       // Is it locked?
+                       locked: function() {
+                               return !stack;
+                       },
+                       // Call all callbacks with the given context and arguments
+                       fireWith: function( context, args ) {
+                               if ( stack ) {
+                                       if ( firing ) {
+                                               if ( !flags.once ) {
+                                                       stack.push( [ context, args ] );
+                                               }
+                                       } else if ( !( flags.once && memory ) ) {
+                                               fire( context, args );
+                                       }
+                               }
+                               return this;
+                       },
+                       // Call all the callbacks with the given arguments
+                       fire: function() {
+                               self.fireWith( this, arguments );
+                               return this;
+                       },
+                       // To know if the callbacks have already been called at least once
+                       fired: function() {
+                               return !!memory;
+                       }
+               };
+
+       return self;
+};
+
+
+
+
+var // Static reference to slice
+       sliceDeferred = [].slice;
+
+jQuery.extend({
+
+       Deferred: function( func ) {
+               var doneList = jQuery.Callbacks( "once memory" ),
+                       failList = jQuery.Callbacks( "once memory" ),
+                       progressList = jQuery.Callbacks( "memory" ),
+                       state = "pending",
+                       lists = {
+                               resolve: doneList,
+                               reject: failList,
+                               notify: progressList
+                       },
+                       promise = {
+                               done: doneList.add,
+                               fail: failList.add,
+                               progress: progressList.add,
+
+                               state: function() {
+                                       return state;
+                               },
+
+                               // Deprecated
+                               isResolved: doneList.fired,
+                               isRejected: failList.fired,
+
+                               then: function( doneCallbacks, failCallbacks, progressCallbacks ) {
+                                       deferred.done( doneCallbacks ).fail( failCallbacks ).progress( progressCallbacks );
+                                       return this;
+                               },
+                               always: function() {
+                                       return deferred.done.apply( deferred, arguments ).fail.apply( deferred, arguments );
+                               },
+                               pipe: function( fnDone, fnFail, fnProgress ) {
+                                       return jQuery.Deferred(function( newDefer ) {
+                                               jQuery.each( {
+                                                       done: [ fnDone, "resolve" ],
+                                                       fail: [ fnFail, "reject" ],
+                                                       progress: [ fnProgress, "notify" ]
+                                               }, function( handler, data ) {
+                                                       var fn = data[ 0 ],
+                                                               action = data[ 1 ],
+                                                               returned;
+                                                       if ( jQuery.isFunction( fn ) ) {
+                                                               deferred[ handler ](function() {
+                                                                       returned = fn.apply( this, arguments );
+                                                                       if ( returned && jQuery.isFunction( returned.promise ) ) {
+                                                                               returned.promise().then( newDefer.resolve, newDefer.reject, newDefer.notify );
+                                                                       } else {
+                                                                               newDefer[ action + "With" ]( this === deferred ? newDefer : this, [ returned ] );
+                                                                       }
+                                                               });
+                                                       } else {
+                                                               deferred[ handler ]( newDefer[ action ] );
+                                                       }
+                                               });
+                                       }).promise();
+                               },
+                               // Get a promise for this deferred
+                               // If obj is provided, the promise aspect is added to the object
+                               promise: function( obj ) {
+                                       if ( obj == null ) {
+                                               obj = promise;
+                                       } else {
+                                               for( var key in promise ) {
+                                                       obj[ key ] = promise[ key ];
+                                               }
+                                       }
+                                       return obj;
+                               }
+                       },
+                       deferred = promise.promise({}),
+                       key;
+
+               for ( key in lists ) {
+                       deferred[ key ] = lists[ key ].fire;
+                       deferred[ key + "With" ] = lists[ key ].fireWith;
+               }
+
+               // Handle state
+               deferred.done( function() {
+                       state = "resolved";
+               }, failList.disable, progressList.lock ).fail( function() {
+                       state = "rejected";
+               }, doneList.disable, progressList.lock );
+
+               // Call given func if any
+               if ( func ) {
+                       func.call( deferred, deferred );
+               }
+
+               // All done!
+               return deferred;
+       },
+
+       // Deferred helper
+       when: function( firstParam ) {
+               var args = sliceDeferred.call( arguments, 0 ),
+                       i = 0,
+                       length = args.length,
+                       pValues = new Array( length ),
+                       count = length,
+                       pCount = length,
+                       deferred = length <= 1 && firstParam && jQuery.isFunction( firstParam.promise ) ?
+                               firstParam :
+                               jQuery.Deferred(),
+                       promise = deferred.promise();
+               function resolveFunc( i ) {
+                       return function( value ) {
+                               args[ i ] = arguments.length > 1 ? sliceDeferred.call( arguments, 0 ) : value;
+                               if ( !( --count ) ) {
+                                       deferred.resolveWith( deferred, args );
+                               }
+                       };
+               }
+               function progressFunc( i ) {
+                       return function( value ) {
+                               pValues[ i ] = arguments.length > 1 ? sliceDeferred.call( arguments, 0 ) : value;
+                               deferred.notifyWith( promise, pValues );
+                       };
+               }
+               if ( length > 1 ) {
+                       for( ; i < length; i++ ) {
+                               if ( args[ i ] && args[ i ].promise && jQuery.isFunction( args[ i ].promise ) ) {
+                                       args[ i ].promise().then( resolveFunc(i), deferred.reject, progressFunc(i) );
+                               } else {
+                                       --count;
+                               }
+                       }
+                       if ( !count ) {
+                               deferred.resolveWith( deferred, args );
+                       }
+               } else if ( deferred !== firstParam ) {
+                       deferred.resolveWith( deferred, length ? [ firstParam ] : [] );
+               }
+               return promise;
+       }
+});
+
+
+
+
+jQuery.support = (function() {
+
+       var div = document.createElement( "div" ),
+               documentElement = document.documentElement,
+               all,
+               a,
+               select,
+               opt,
+               input,
+               marginDiv,
+               support,
+               fragment,
+               body,
+               testElementParent,
+               testElement,
+               testElementStyle,
+               tds,
+               events,
+               eventName,
+               i,
+               isSupported,
+               offsetSupport;
+
+       // Preliminary tests
+       div.setAttribute("className", "t");
+       div.innerHTML = "   <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/><nav></nav>";
+
+
+       all = div.getElementsByTagName( "*" );
+       a = div.getElementsByTagName( "a" )[ 0 ];
+
+       // Can't get basic test support
+       if ( !all || !all.length || !a ) {
+               return {};
+       }
+
+       // First batch of supports tests
+       select = document.createElement( "select" );
+       opt = select.appendChild( document.createElement("option") );
+       input = div.getElementsByTagName( "input" )[ 0 ];
+
+       support = {
+               // IE strips leading whitespace when .innerHTML is used
+               leadingWhitespace: ( div.firstChild.nodeType === 3 ),
+
+               // Make sure that tbody elements aren't automatically inserted
+               // IE will insert them into empty tables
+               tbody: !div.getElementsByTagName( "tbody" ).length,
+
+               // Make sure that link elements get serialized correctly by innerHTML
+               // This requires a wrapper element in IE
+               htmlSerialize: !!div.getElementsByTagName( "link" ).length,
+
+               // Get the style information from getAttribute
+               // (IE uses .cssText instead)
+               style: /top/.test( a.getAttribute("style") ),
+
+               // Make sure that URLs aren't manipulated
+               // (IE normalizes it by default)
+               hrefNormalized: ( a.getAttribute( "href" ) === "/a" ),
+
+               // Make sure that element opacity exists
+               // (IE uses filter instead)
+               // Use a regex to work around a WebKit issue. See #5145
+               opacity: /^0.55/.test( a.style.opacity ),
+
+               // Verify style float existence
+               // (IE uses styleFloat instead of cssFloat)
+               cssFloat: !!a.style.cssFloat,
+
+               // Make sure unknown elements (like HTML5 elems) are handled appropriately
+               unknownElems: !!div.getElementsByTagName( "nav" ).length,
+
+               // Make sure that if no value is specified for a checkbox
+               // that it defaults to "on".
+               // (WebKit defaults to "" instead)
+               checkOn: ( input.value === "on" ),
+
+               // Make sure that a selected-by-default option has a working selected property.
+               // (WebKit defaults to false instead of true, IE too, if it's in an optgroup)
+               optSelected: opt.selected,
+
+               // Test setAttribute on camelCase class. If it works, we need attrFixes when doing get/setAttribute (ie6/7)
+               getSetAttribute: div.className !== "t",
+
+               // Will be defined later
+               submitBubbles: true,
+               changeBubbles: true,
+               focusinBubbles: false,
+               deleteExpando: true,
+               noCloneEvent: true,
+               inlineBlockNeedsLayout: false,
+               shrinkWrapBlocks: false,
+               reliableMarginRight: true
+       };
+
+       // Make sure checked status is properly cloned
+       input.checked = true;
+       support.noCloneChecked = input.cloneNode( true ).checked;
+
+       // Make sure that the options inside disabled selects aren't marked as disabled
+       // (WebKit marks them as disabled)
+       select.disabled = true;
+       support.optDisabled = !opt.disabled;
+
+       // Test to see if it's possible to delete an expando from an element
+       // Fails in Internet Explorer
+       try {
+               delete div.test;
+       } catch( e ) {
+               support.deleteExpando = false;
+       }
+
+       if ( !div.addEventListener && div.attachEvent && div.fireEvent ) {
+               div.attachEvent( "onclick", function() {
+                       // Cloning a node shouldn't copy over any
+                       // bound event handlers (IE does this)
+                       support.noCloneEvent = false;
+               });
+               div.cloneNode( true ).fireEvent( "onclick" );
+       }
+
+       // Check if a radio maintains its value
+       // after being appended to the DOM
+       input = document.createElement("input");
+       input.value = "t";
+       input.setAttribute("type", "radio");
+       support.radioValue = input.value === "t";
+
+       input.setAttribute("checked", "checked");
+       div.appendChild( input );
+       fragment = document.createDocumentFragment();
+       fragment.appendChild( div.firstChild );
+
+       // WebKit doesn't clone checked state correctly in fragments
+       support.checkClone = fragment.cloneNode( true ).cloneNode( true ).lastChild.checked;
+
+       div.innerHTML = "";
+
+       // Figure out if the W3C box model works as expected
+       div.style.width = div.style.paddingLeft = "1px";
+
+       // We don't want to do body-related feature tests on frameset
+       // documents, which lack a body. So we use
+       // document.getElementsByTagName("body")[0], which is undefined in
+       // frameset documents, while document.body isn’t. (7398)
+       body = document.getElementsByTagName("body")[ 0 ];
+       // We use our own, invisible, body unless the body is already present
+       // in which case we use a div (#9239)
+       testElement = document.createElement( body ? "div" : "body" );
+       testElementStyle = {
+               visibility: "hidden",
+               width: 0,
+               height: 0,
+               border: 0,
+               margin: 0,
+               background: "none"
+       };
+       if ( body ) {
+               jQuery.extend( testElementStyle, {
+                       position: "absolute",
+                       left: "-999px",
+                       top: "-999px"
+               });
+       }
+       for ( i in testElementStyle ) {
+               testElement.style[ i ] = testElementStyle[ i ];
+       }
+       testElement.appendChild( div );
+       testElementParent = body || documentElement;
+       testElementParent.insertBefore( testElement, testElementParent.firstChild );
+
+       // Check if a disconnected checkbox will retain its checked
+       // value of true after appended to the DOM (IE6/7)
+       support.appendChecked = input.checked;
+
+       support.boxModel = div.offsetWidth === 2;
+
+       if ( "zoom" in div.style ) {
+               // Check if natively block-level elements act like inline-block
+               // elements when setting their display to 'inline' and giving
+               // them layout
+               // (IE < 8 does this)
+               div.style.display = "inline";
+               div.style.zoom = 1;
+               support.inlineBlockNeedsLayout = ( div.offsetWidth === 2 );
+
+               // Check if elements with layout shrink-wrap their children
+               // (IE 6 does this)
+               div.style.display = "";
+               div.innerHTML = "<div style='width:4px;'></div>";
+               support.shrinkWrapBlocks = ( div.offsetWidth !== 2 );
+       }
+
+       div.innerHTML = "<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>";
+       tds = div.getElementsByTagName( "td" );
+
+       // Check if table cells still have offsetWidth/Height when they are set
+       // to display:none and there are still other visible table cells in a
+       // table row; if so, offsetWidth/Height are not reliable for use when
+       // determining if an element has been hidden directly using
+       // display:none (it is still safe to use offsets if a parent element is
+       // hidden; don safety goggles and see bug #4512 for more information).
+       // (only IE 8 fails this test)
+       isSupported = ( tds[ 0 ].offsetHeight === 0 );
+
+       tds[ 0 ].style.display = "";
+       tds[ 1 ].style.display = "none";
+
+       // Check if empty table cells still have offsetWidth/Height
+       // (IE < 8 fail this test)
+       support.reliableHiddenOffsets = isSupported && ( tds[ 0 ].offsetHeight === 0 );
+       div.innerHTML = "";
+
+       // Check if div with explicit width and no margin-right incorrectly
+       // gets computed margin-right based on width of container. For more
+       // info see bug #3333
+       // Fails in WebKit before Feb 2011 nightlies
+       // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right
+       if ( document.defaultView && document.defaultView.getComputedStyle ) {
+               marginDiv = document.createElement( "div" );
+               marginDiv.style.width = "0";
+               marginDiv.style.marginRight = "0";
+               div.appendChild( marginDiv );
+               support.reliableMarginRight =
+                       ( parseInt( ( document.defaultView.getComputedStyle( marginDiv, null ) || { marginRight: 0 } ).marginRight, 10 ) || 0 ) === 0;
+       }
+
+       // Remove the body element we added
+       testElement.innerHTML = "";
+
+       // Technique from Juriy Zaytsev
+       // http://perfectionkills.com/detecting-event-support-without-browser-sniffing/
+       // We only care about the case where non-standard event systems
+       // are used, namely in IE. Short-circuiting here helps us to
+       // avoid an eval call (in setAttribute) which can cause CSP
+       // to go haywire. See: https://developer.mozilla.org/en/Security/CSP
+       if ( div.attachEvent ) {
+               for( i in {
+                       submit: 1,
+                       change: 1,
+                       focusin: 1
+               } ) {
+                       eventName = "on" + i;
+                       isSupported = ( eventName in div );
+                       if ( !isSupported ) {
+                               div.setAttribute( eventName, "return;" );
+                               isSupported = ( typeof div[ eventName ] === "function" );
+                       }
+                       support[ i + "Bubbles" ] = isSupported;
+               }
+       }
+
+       // Determine fixed-position support early
+       testElement.style.position = "static";
+       testElement.style.top = "0px";
+       testElement.style.marginTop = "1px";
+       offsetSupport = (function( body, container ) {
+
+               var outer, inner, table, td, supports,
+                       bodyMarginTop = parseFloat( body.style.marginTop ) || 0,
+                       ptlm = "position:absolute;top:0;left:0;width:1px;height:1px;margin:0;",
+                       style = "style='" + ptlm + "border:5px solid #000;padding:0;'",
+                       html = "<div " + style + "><div></div></div>" +
+                                                       "<table " + style + " cellpadding='0' cellspacing='0'>" +
+                                                       "<tr><td></td></tr></table>";
+
+               container.style.cssText = ptlm + "border:0;visibility:hidden";
+
+               container.innerHTML = html;
+               body.insertBefore( container, body.firstChild );
+               outer = container.firstChild;
+               inner = outer.firstChild;
+               td = outer.nextSibling.firstChild.firstChild;
+
+               supports = {
+                       doesNotAddBorder: (inner.offsetTop !== 5),
+                       doesAddBorderForTableAndCells: (td.offsetTop === 5)
+               };
+
+               inner.style.position = "fixed";
+               inner.style.top = "20px";
+
+               // safari subtracts parent border width here which is 5px
+               supports.supportsFixedPosition = (inner.offsetTop === 20 || inner.offsetTop === 15);
+               inner.style.position = inner.style.top = "";
+
+               outer.style.overflow = "hidden";
+               outer.style.position = "relative";
+
+               supports.subtractsBorderForOverflowNotVisible = (inner.offsetTop === -5);
+               supports.doesNotIncludeMarginInBodyOffset = (body.offsetTop !== bodyMarginTop);
+
+               return supports;
+
+       })( testElement, div );
+
+       jQuery.extend( support, offsetSupport );
+       testElementParent.removeChild( testElement );
+
+       // Null connected elements to avoid leaks in IE
+       testElement = fragment = select = opt = body = marginDiv = div = input = null;
+
+       return support;
+})();
+
+// Keep track of boxModel
+jQuery.boxModel = jQuery.support.boxModel;
+
+
+
+
+var rbrace = /^(?:\{.*\}|\[.*\])$/,
+       rmultiDash = /([A-Z])/g;
+
+jQuery.extend({
+       cache: {},
+
+       // Please use with caution
+       uuid: 0,
+
+       // Unique for each copy of jQuery on the page
+       // Non-digits removed to match rinlinejQuery
+       expando: "jQuery" + ( jQuery.fn.jquery + Math.random() ).replace( /\D/g, "" ),
+
+       // The following elements throw uncatchable exceptions if you
+       // attempt to add expando properties to them.
+       noData: {
+               "embed": true,
+               // Ban all objects except for Flash (which handle expandos)
+               "object": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",
+               "applet": true
+       },
+
+       hasData: function( elem ) {
+               elem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ];
+               return !!elem && !isEmptyDataObject( elem );
+       },
+
+       data: function( elem, name, data, pvt /* Internal Use Only */ ) {
+               if ( !jQuery.acceptData( elem ) ) {
+                       return;
+               }
+
+               var thisCache, ret,
+                       internalKey = jQuery.expando,
+                       getByName = typeof name === "string",
+
+                       // We have to handle DOM nodes and JS objects differently because IE6-7
+                       // can't GC object references properly across the DOM-JS boundary
+                       isNode = elem.nodeType,
+
+                       // Only DOM nodes need the global jQuery cache; JS object data is
+                       // attached directly to the object so GC can occur automatically
+                       cache = isNode ? jQuery.cache : elem,
+
+                       // Only defining an ID for JS objects if its cache already exists allows
+                       // the code to shortcut on the same path as a DOM node with no cache
+                       id = isNode ? elem[ jQuery.expando ] : elem[ jQuery.expando ] && jQuery.expando;
+
+               // Avoid doing any more work than we need to when trying to get data on an
+               // object that has no data at all
+               if ( (!id || !cache[id] || (!pvt && !cache[id].data)) && getByName && data === undefined ) {
+                       return;
+               }
+
+               if ( !id ) {
+                       // Only DOM nodes need a new unique ID for each element since their data
+                       // ends up in the global cache
+                       if ( isNode ) {
+                               elem[ jQuery.expando ] = id = ++jQuery.uuid;
+                       } else {
+                               id = jQuery.expando;
+                       }
+               }
+
+               if ( !cache[ id ] ) {
+                       cache[ id ] = {};
+
+                       // Avoids exposing jQuery metadata on plain JS objects when the object 
+                       // is serialized using JSON.stringify
+                       if ( !isNode ) {
+                               cache[ id ].toJSON = jQuery.noop;
+                       }
+               }
+
+               // An object can be passed to jQuery.data instead of a key/value pair; this gets
+               // shallow copied over onto the existing cache
+               if ( typeof name === "object" || typeof name === "function" ) {
+                       if ( pvt ) {
+                               cache[ id ] = jQuery.extend( cache[ id ], name );
+                       } else {
+                               cache[ id ].data = jQuery.extend( cache[ id ].data, name );
+                       }
+               }
+
+               thisCache = cache[ id ];
+
+               // jQuery data() is stored in a separate object inside the object's internal data
+               // cache in order to avoid key collisions between internal data and user-defined
+               // data.
+               if ( !pvt ) {
+                       if ( !thisCache.data ) {
+                               thisCache.data = {};
+                       }
+
+                       thisCache = thisCache.data;
+               }
+
+               if ( data !== undefined ) {
+                       thisCache[ jQuery.camelCase( name ) ] = data;
+               }
+
+               // TODO: This is a hack for 1.5 ONLY. It will be removed in 1.6. Users should
+               // not attempt to inspect the internal events object using jQuery.data, as this
+               // internal data object is undocumented and subject to change.
+               if ( name === "events" && !thisCache[name] ) {
+                       return thisCache[ internalKey ] && thisCache[ internalKey ].events;
+               }
+
+               // Check for both converted-to-camel and non-converted data property names
+               // If a data property was specified
+               if ( getByName ) {
+
+                       // First Try to find as-is property data
+                       ret = thisCache[ name ];
+
+                       // Test for null|undefined property data
+                       if ( ret == null ) {
+
+                               // Try to find the camelCased property
+                               ret = thisCache[ jQuery.camelCase( name ) ];
+                       }
+               } else {
+                       ret = thisCache;
+               }
+
+               return ret;
+       },
+
+       removeData: function( elem, name, pvt /* Internal Use Only */ ) {
+               if ( !jQuery.acceptData( elem ) ) {
+                       return;
+               }
+
+               var thisCache, i, l,
+
+                       // Reference to internal data cache key
+                       internalKey = jQuery.expando,
+
+                       isNode = elem.nodeType,
+
+                       // See jQuery.data for more information
+                       cache = isNode ? jQuery.cache : elem,
+
+                       // See jQuery.data for more information
+                       id = isNode ? elem[ jQuery.expando ] : jQuery.expando;
+
+               // If there is already no cache entry for this object, there is no
+               // purpose in continuing
+               if ( !cache[ id ] ) {
+                       return;
+               }
+
+               if ( name ) {
+
+                       thisCache = pvt ? cache[ id ] : cache[ id ].data;
+
+                       if ( thisCache ) {
+
+                               // Support space separated names
+                               if ( jQuery.isArray( name ) ) {
+                                       name = name;
+                               } else if ( name in thisCache ) {
+                                       name = [ name ];
+                               } else {
+
+                                       // split the camel cased version by spaces
+                                       name = jQuery.camelCase( name );
+                                       if ( name in thisCache ) {
+                                               name = [ name ];
+                                       } else {
+                                               name = name.split( " " );
+                                       }
+                               }
+
+                               for ( i = 0, l = name.length; i < l; i++ ) {
+                                       delete thisCache[ name[i] ];
+                               }
+
+                               // If there is no data left in the cache, we want to continue
+                               // and let the cache object itself get destroyed
+                               if ( !( pvt ? isEmptyDataObject : jQuery.isEmptyObject )( thisCache ) ) {
+                                       return;
+                               }
+                       }
+               }
+
+               // See jQuery.data for more information
+               if ( !pvt ) {
+                       delete cache[ id ].data;
+
+                       // Don't destroy the parent cache unless the internal data object
+                       // had been the only thing left in it
+                       if ( !isEmptyDataObject(cache[ id ]) ) {
+                               return;
+                       }
+               }
+
+               // Browsers that fail expando deletion also refuse to delete expandos on
+               // the window, but it will allow it on all other JS objects; other browsers
+               // don't care
+               // Ensure that `cache` is not a window object #10080
+               if ( jQuery.support.deleteExpando || !cache.setInterval ) {
+                       delete cache[ id ];
+               } else {
+                       cache[ id ] = null;
+               }
+
+               // We destroyed the cache and need to eliminate the expando on the node to avoid
+               // false lookups in the cache for entries that no longer exist
+               if ( isNode ) {
+                       // IE does not allow us to delete expando properties from nodes,
+                       // nor does it have a removeAttribute function on Document nodes;
+                       // we must handle all of these cases
+                       if ( jQuery.support.deleteExpando ) {
+                               delete elem[ jQuery.expando ];
+                       } else if ( elem.removeAttribute ) {
+                               elem.removeAttribute( jQuery.expando );
+                       } else {
+                               elem[ jQuery.expando ] = null;
+                       }
+               }
+       },
+
+       // For internal use only.
+       _data: function( elem, name, data ) {
+               return jQuery.data( elem, name, data, true );
+       },
+
+       // A method for determining if a DOM node can handle the data expando
+       acceptData: function( elem ) {
+               if ( elem.nodeName ) {
+                       var match = jQuery.noData[ elem.nodeName.toLowerCase() ];
+
+                       if ( match ) {
+                               return !(match === true || elem.getAttribute("classid") !== match);
+                       }
+               }
+
+               return true;
+       }
+});
+
+jQuery.fn.extend({
+       data: function( key, value ) {
+               var parts, attr, name,
+                       data = null;
+
+               if ( typeof key === "undefined" ) {
+                       if ( this.length ) {
+                               data = jQuery.data( this[0] );
+
+                               if ( this[0].nodeType === 1 && !jQuery._data( this[0], "parsedAttrs" ) ) {
+                                       attr = this[0].attributes;
+                                       for ( var i = 0, l = attr.length; i < l; i++ ) {
+                                               name = attr[i].name;
+
+                                               if ( name.indexOf( "data-" ) === 0 ) {
+                                                       name = jQuery.camelCase( name.substring(5) );
+
+                                                       dataAttr( this[0], name, data[ name ] );
+                                               }
+                                       }
+                                       jQuery._data( this[0], "parsedAttrs", true );
+                               }
+                       }
+
+                       return data;
+
+               } else if ( typeof key === "object" ) {
+                       return this.each(function() {
+                               jQuery.data( this, key );
+                       });
+               }
+
+               parts = key.split(".");
+               parts[1] = parts[1] ? "." + parts[1] : "";
+
+               if ( value === undefined ) {
+                       data = this.triggerHandler("getData" + parts[1] + "!", [parts[0]]);
+
+                       // Try to fetch any internally stored data first
+                       if ( data === undefined && this.length ) {
+                               data = jQuery.data( this[0], key );
+                               data = dataAttr( this[0], key, data );
+                       }
+
+                       return data === undefined && parts[1] ?
+                               this.data( parts[0] ) :
+                               data;
+
+               } else {
+                       return this.each(function() {
+                               var $this = jQuery( this ),
+                                       args = [ parts[0], value ];
+
+                               $this.triggerHandler( "setData" + parts[1] + "!", args );
+                               jQuery.data( this, key, value );
+                               $this.triggerHandler( "changeData" + parts[1] + "!", args );
+                       });
+               }
+       },
+
+       removeData: function( key ) {
+               return this.each(function() {
+                       jQuery.removeData( this, key );
+               });
+       }
+});
+
+function dataAttr( elem, key, data ) {
+       // If nothing was found internally, try to fetch any
+       // data from the HTML5 data-* attribute
+       if ( data === undefined && elem.nodeType === 1 ) {
+
+               var name = "data-" + key.replace( rmultiDash, "-$1" ).toLowerCase();
+
+               data = elem.getAttribute( name );
+
+               if ( typeof data === "string" ) {
+                       try {
+                               data = data === "true" ? true :
+                               data === "false" ? false :
+                               data === "null" ? null :
+                               jQuery.isNumeric( data ) ? parseFloat( data ) :
+                                       rbrace.test( data ) ? jQuery.parseJSON( data ) :
+                                       data;
+                       } catch( e ) {}
+
+                       // Make sure we set the data so it isn't changed later
+                       jQuery.data( elem, key, data );
+
+               } else {
+                       data = undefined;
+               }
+       }
+
+       return data;
+}
+
+// checks a cache object for emptiness
+function isEmptyDataObject( obj ) {
+       for ( var name in obj ) {
+
+               // if the public data object is empty, the private is still empty
+               if ( name === "data" && jQuery.isEmptyObject( obj[name] ) ) {
+                       continue;
+               }
+               if ( name !== "toJSON" ) {
+                       return false;
+               }
+       }
+
+       return true;
+}
+
+
+
+
+function handleQueueMarkDefer( elem, type, src ) {
+       var deferDataKey = type + "defer",
+               queueDataKey = type + "queue",
+               markDataKey = type + "mark",
+               defer = jQuery._data( elem, deferDataKey );
+       if ( defer &&
+               ( src === "queue" || !jQuery._data(elem, queueDataKey) ) &&
+               ( src === "mark" || !jQuery._data(elem, markDataKey) ) ) {
+               // Give room for hard-coded callbacks to fire first
+               // and eventually mark/queue something else on the element
+               setTimeout( function() {
+                       if ( !jQuery._data( elem, queueDataKey ) &&
+                               !jQuery._data( elem, markDataKey ) ) {
+                               jQuery.removeData( elem, deferDataKey, true );
+                               defer.fire();
+                       }
+               }, 0 );
+       }
+}
+
+jQuery.extend({
+
+       _mark: function( elem, type ) {
+               if ( elem ) {
+                       type = (type || "fx") + "mark";
+                       jQuery._data( elem, type, (jQuery._data( elem, type ) || 0) + 1 );
+               }
+       },
+
+       _unmark: function( force, elem, type ) {
+               if ( force !== true ) {
+                       type = elem;
+                       elem = force;
+                       force = false;
+               }
+               if ( elem ) {
+                       type = type || "fx";
+                       var key = type + "mark",
+                               count = force ? 0 : ( (jQuery._data( elem, key ) || 1) - 1 );
+                       if ( count ) {
+                               jQuery._data( elem, key, count );
+                       } else {
+                               jQuery.removeData( elem, key, true );
+                               handleQueueMarkDefer( elem, type, "mark" );
+                       }
+               }
+       },
+
+       queue: function( elem, type, data ) {
+               var q;
+               if ( elem ) {
+                       type = (type || "fx") + "queue";
+                       q = jQuery._data( elem, type );
+
+                       // Speed up dequeue by getting out quickly if this is just a lookup
+                       if ( data ) {
+                               if ( !q || jQuery.isArray(data) ) {
+                                       q = jQuery._data( elem, type, jQuery.makeArray(data) );
+                               } else {
+                                       q.push( data );
+                               }
+                       }
+                       return q || [];
+               }
+       },
+
+       dequeue: function( elem, type ) {
+               type = type || "fx";
+
+               var queue = jQuery.queue( elem, type ),
+                       fn = queue.shift(),
+                       runner = {};
+
+               // If the fx queue is dequeued, always remove the progress sentinel
+               if ( fn === "inprogress" ) {
+                       fn = queue.shift();
+               }
+
+               if ( fn ) {
+                       // Add a progress sentinel to prevent the fx queue from being
+                       // automatically dequeued
+                       if ( type === "fx" ) {
+                               queue.unshift( "inprogress" );
+                       }
+
+                       jQuery._data( elem, type + ".run", runner );
+                       fn.call( elem, function() {
+                               jQuery.dequeue( elem, type );
+                       }, runner );
+               }
+
+               if ( !queue.length ) {
+                       jQuery.removeData( elem, type + "queue " + type + ".run", true );
+                       handleQueueMarkDefer( elem, type, "queue" );
+               }
+       }
+});
+
+jQuery.fn.extend({
+       queue: function( type, data ) {
+               if ( typeof type !== "string" ) {
+                       data = type;
+                       type = "fx";
+               }
+
+               if ( data === undefined ) {
+                       return jQuery.queue( this[0], type );
+               }
+               return this.each(function() {
+                       var queue = jQuery.queue( this, type, data );
+
+                       if ( type === "fx" && queue[0] !== "inprogress" ) {
+                               jQuery.dequeue( this, type );
+                       }
+               });
+       },
+       dequeue: function( type ) {
+               return this.each(function() {
+                       jQuery.dequeue( this, type );
+               });
+       },
+       // Based off of the plugin by Clint Helfers, with permission.
+       // http://blindsignals.com/index.php/2009/07/jquery-delay/
+       delay: function( time, type ) {
+               time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;
+               type = type || "fx";
+
+               return this.queue( type, function( next, runner ) {
+                       var timeout = setTimeout( next, time );
+                       runner.stop = function() {
+                               clearTimeout( timeout );
+                       };
+               });
+       },
+       clearQueue: function( type ) {
+               return this.queue( type || "fx", [] );
+       },
+       // Get a promise resolved when queues of a certain type
+       // are emptied (fx is the type by default)
+       promise: function( type, object ) {
+               if ( typeof type !== "string" ) {
+                       object = type;
+                       type = undefined;
+               }
+               type = type || "fx";
+               var defer = jQuery.Deferred(),
+                       elements = this,
+                       i = elements.length,
+                       count = 1,
+                       deferDataKey = type + "defer",
+                       queueDataKey = type + "queue",
+                       markDataKey = type + "mark",
+                       tmp;
+               function resolve() {
+                       if ( !( --count ) ) {
+                               defer.resolveWith( elements, [ elements ] );
+                       }
+               }
+               while( i-- ) {
+                       if (( tmp = jQuery.data( elements[ i ], deferDataKey, undefined, true ) ||
+                                       ( jQuery.data( elements[ i ], queueDataKey, undefined, true ) ||
+                                               jQuery.data( elements[ i ], markDataKey, undefined, true ) ) &&
+                                       jQuery.data( elements[ i ], deferDataKey, jQuery.Callbacks( "once memory" ), true ) )) {
+                               count++;
+                               tmp.add( resolve );
+                       }
+               }
+               resolve();
+               return defer.promise();
+       }
+});
+
+
+
+
+var rclass = /[\n\t\r]/g,
+       rspace = /\s+/,
+       rreturn = /\r/g,
+       rtype = /^(?:button|input)$/i,
+       rfocusable = /^(?:button|input|object|select|textarea)$/i,
+       rclickable = /^a(?:rea)?$/i,
+       rboolean = /^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,
+       nodeHook, boolHook, fixSpecified;
+
+jQuery.fn.extend({
+       attr: function( name, value ) {
+               return jQuery.access( this, name, value, true, jQuery.attr );
+       },
+
+       removeAttr: function( name ) {
+               return this.each(function() {
+                       jQuery.removeAttr( this, name );
+               });
+       },
+
+       prop: function( name, value ) {
+               return jQuery.access( this, name, value, true, jQuery.prop );
+       },
+
+       removeProp: function( name ) {
+               name = jQuery.propFix[ name ] || name;
+               return this.each(function() {
+                       // try/catch handles cases where IE balks (such as removing a property on window)
+                       try {
+                               this[ name ] = undefined;
+                               delete this[ name ];
+                       } catch( e ) {}
+               });
+       },
+
+       addClass: function( value ) {
+               var classNames, i, l, elem,
+                       setClass, c, cl;
+
+               if ( jQuery.isFunction( value ) ) {
+                       return this.each(function( j ) {
+                               jQuery( this ).addClass( value.call(this, j, this.className) );
+                       });
+               }
+
+               if ( value && typeof value === "string" ) {
+                       classNames = value.split( rspace );
+
+                       for ( i = 0, l = this.length; i < l; i++ ) {
+                               elem = this[ i ];
+
+                               if ( elem.nodeType === 1 ) {
+                                       if ( !elem.className && classNames.length === 1 ) {
+                                               elem.className = value;
+
+                                       } else {
+                                               setClass = " " + elem.className + " ";
+
+                                               for ( c = 0, cl = classNames.length; c < cl; c++ ) {
+                                                       if ( !~setClass.indexOf( " " + classNames[ c ] + " " ) ) {
+                                                               setClass += classNames[ c ] + " ";
+                                                       }
+                                               }
+                                               elem.className = jQuery.trim( setClass );
+                                       }
+                               }
+                       }
+               }
+
+               return this;
+       },
+
+       removeClass: function( value ) {
+               var classNames, i, l, elem, className, c, cl;
+
+               if ( jQuery.isFunction( value ) ) {
+                       return this.each(function( j ) {
+                               jQuery( this ).removeClass( value.call(this, j, this.className) );
+                       });
+               }
+
+               if ( (value && typeof value === "string") || value === undefined ) {
+                       classNames = (value || "").split( rspace );
+
+                       for ( i = 0, l = this.length; i < l; i++ ) {
+                               elem = this[ i ];
+
+                               if ( elem.nodeType === 1 && elem.className ) {
+                                       if ( value ) {
+                                               className = (" " + elem.className + " ").replace( rclass, " " );
+                                               for ( c = 0, cl = classNames.length; c < cl; c++ ) {
+                                                       className = className.replace(" " + classNames[ c ] + " ", " ");
+                                               }
+                                               elem.className = jQuery.trim( className );
+
+                                       } else {
+                                               elem.className = "";
+                                       }
+                               }
+                       }
+               }
+
+               return this;
+       },
+
+       toggleClass: function( value, stateVal ) {
+               var type = typeof value,
+                       isBool = typeof stateVal === "boolean";
+
+               if ( jQuery.isFunction( value ) ) {
+                       return this.each(function( i ) {
+                               jQuery( this ).toggleClass( value.call(this, i, this.className, stateVal), stateVal );
+                       });
+               }
+
+               return this.each(function() {
+                       if ( type === "string" ) {
+                               // toggle individual class names
+                               var className,
+                                       i = 0,
+                                       self = jQuery( this ),
+                                       state = stateVal,
+                                       classNames = value.split( rspace );
+
+                               while ( (className = classNames[ i++ ]) ) {
+                                       // check each className given, space seperated list
+                                       state = isBool ? state : !self.hasClass( className );
+                                       self[ state ? "addClass" : "removeClass" ]( className );
+                               }
+
+                       } else if ( type === "undefined" || type === "boolean" ) {
+                               if ( this.className ) {
+                                       // store className if set
+                                       jQuery._data( this, "__className__", this.className );
+                               }
+
+                               // toggle whole className
+                               this.className = this.className || value === false ? "" : jQuery._data( this, "__className__" ) || "";
+                       }
+               });
+       },
+
+       hasClass: function( selector ) {
+               var className = " " + selector + " ";
+               for ( var i = 0, l = this.length; i < l; i++ ) {
+                       if ( this[i].nodeType === 1 && (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) > -1 ) {
+                               return true;
+                       }
+               }
+
+               return false;
+       },
+
+       val: function( value ) {
+               var hooks, ret,
+                       elem = this[0];
+
+               if ( !arguments.length ) {
+                       if ( elem ) {
+                               hooks = jQuery.valHooks[ elem.nodeName.toLowerCase() ] || jQuery.valHooks[ elem.type ];
+
+                               if ( hooks && "get" in hooks && (ret = hooks.get( elem, "value" )) !== undefined ) {
+                                       return ret;
+                               }
+
+                               ret = elem.value;
+
+                               return typeof ret === "string" ?
+                                       // handle most common string cases
+                                       ret.replace(rreturn, "") :
+                                       // handle cases where value is null/undef or number
+                                       ret == null ? "" : ret;
+                       }
+
+                       return undefined;
+               }
+
+               var isFunction = jQuery.isFunction( value );
+
+               return this.each(function( i ) {
+                       var self = jQuery(this), val;
+
+                       if ( this.nodeType !== 1 ) {
+                               return;
+                       }
+
+                       if ( isFunction ) {
+                               val = value.call( this, i, self.val() );
+                       } else {
+                               val = value;
+                       }
+
+                       // Treat null/undefined as ""; convert numbers to string
+                       if ( val == null ) {
+                               val = "";
+                       } else if ( typeof val === "number" ) {
+                               val += "";
+                       } else if ( jQuery.isArray( val ) ) {
+                               val = jQuery.map(val, function ( value ) {
+                                       return value == null ? "" : value + "";
+                               });
+                       }
+
+                       hooks = jQuery.valHooks[ this.nodeName.toLowerCase() ] || jQuery.valHooks[ this.type ];
+
+                       // If set returns undefined, fall back to normal setting
+                       if ( !hooks || !("set" in hooks) || hooks.set( this, val, "value" ) === undefined ) {
+                               this.value = val;
+                       }
+               });
+       }
+});
+
+jQuery.extend({
+       valHooks: {
+               option: {
+                       get: function( elem ) {
+                               // attributes.value is undefined in Blackberry 4.7 but
+                               // uses .value. See #6932
+                               var val = elem.attributes.value;
+                               return !val || val.specified ? elem.value : elem.text;
+                       }
+               },
+               select: {
+                       get: function( elem ) {
+                               var value,
+                                       index = elem.selectedIndex,
+                                       values = [],
+                                       options = elem.options,
+                                       one = elem.type === "select-one";
+
+                               // Nothing was selected
+                               if ( index < 0 ) {
+                                       return null;
+                               }
+
+                               // Loop through all the selected options
+                               for ( var i = one ? index : 0, max = one ? index + 1 : options.length; i < max; i++ ) {
+                                       var option = options[ i ];
+
+                                       // Don't return options that are disabled or in a disabled optgroup
+                                       if ( option.selected && (jQuery.support.optDisabled ? !option.disabled : option.getAttribute("disabled") === null) &&
+                                                       (!option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" )) ) {
+
+                                               // Get the specific value for the option
+                                               value = jQuery( option ).val();
+
+                                               // We don't need an array for one selects
+                                               if ( one ) {
+                                                       return value;
+                                               }
+
+                                               // Multi-Selects return an array
+                                               values.push( value );
+                                       }
+                               }
+
+                               // Fixes Bug #2551 -- select.val() broken in IE after form.reset()
+                               if ( one && !values.length && options.length ) {
+                                       return jQuery( options[ index ] ).val();
+                               }
+
+                               return values;
+                       },
+
+                       set: function( elem, value ) {
+                               var values = jQuery.makeArray( value );
+
+                               jQuery(elem).find("option").each(function() {
+                                       this.selected = jQuery.inArray( jQuery(this).val(), values ) >= 0;
+                               });
+
+                               if ( !values.length ) {
+                                       elem.selectedIndex = -1;
+                               }
+                               return values;
+                       }
+               }
+       },
+
+       attrFn: {
+               val: true,
+               css: true,
+               html: true,
+               text: true,
+               data: true,
+               width: true,
+               height: true,
+               offset: true
+       },
+
+       attr: function( elem, name, value, pass ) {
+               var nType = elem.nodeType;
+
+               // don't get/set attributes on text, comment and attribute nodes
+               if ( !elem || nType === 3 || nType === 8 || nType === 2 ) {
+                       return undefined;
+               }
+
+               if ( pass && name in jQuery.attrFn ) {
+                       return jQuery( elem )[ name ]( value );
+               }
+
+               // Fallback to prop when attributes are not supported
+               if ( !("getAttribute" in elem) ) {
+                       return jQuery.prop( elem, name, value );
+               }
+
+               var ret, hooks,
+                       notxml = nType !== 1 || !jQuery.isXMLDoc( elem );
+
+               // Normalize the name if needed
+               if ( notxml ) {
+                       name = name.toLowerCase();
+                       hooks = jQuery.attrHooks[ name ] || (rboolean.test( name ) ? boolHook : nodeHook);
+               }
+
+               if ( value !== undefined ) {
+
+                       if ( value === null ) {
+                               jQuery.removeAttr( elem, name );
+                               return undefined;
+
+                       } else if ( hooks && "set" in hooks && notxml && (ret = hooks.set( elem, value, name )) !== undefined ) {
+                               return ret;
+
+                       } else {
+                               elem.setAttribute( name, "" + value );
+                               return value;
+                       }
+
+               } else if ( hooks && "get" in hooks && notxml && (ret = hooks.get( elem, name )) !== null ) {
+                       return ret;
+
+               } else {
+
+                       ret = elem.getAttribute( name );
+
+                       // Non-existent attributes return null, we normalize to undefined
+                       return ret === null ?
+                               undefined :
+                               ret;
+               }
+       },
+
+       removeAttr: function( elem, value ) {
+               var propName, attrNames, name, l,
+                       i = 0;
+
+               if ( elem.nodeType === 1 ) {
+                       attrNames = (value || "").split( rspace );
+                       l = attrNames.length;
+
+                       for ( ; i < l; i++ ) {
+                               name = attrNames[ i ].toLowerCase();
+
+                               // See #9699 for explanation of this approach (setting first, then removal)
+                               jQuery.attr( elem, name, "" );
+                               elem.removeAttribute( name );
+
+                               // Set corresponding property to false for boolean attributes
+                               if ( rboolean.test( name ) && (propName = jQuery.propFix[ name ] || name) in elem ) {
+                                       elem[ propName ] = false;
+                               }
+                       }
+               }
+       },
+
+       attrHooks: {
+               type: {
+                       set: function( elem, value ) {
+                               // We can't allow the type property to be changed (since it causes problems in IE)
+                               if ( rtype.test( elem.nodeName ) && elem.parentNode ) {
+                                       jQuery.error( "type property can't be changed" );
+                               } else if ( !jQuery.support.radioValue && value === "radio" && jQuery.nodeName(elem, "input") ) {
+                                       // Setting the type on a radio button after the value resets the value in IE6-9
+                                       // Reset value to it's default in case type is set after value
+                                       // This is for element creation
+                                       var val = elem.value;
+                                       elem.setAttribute( "type", value );
+                                       if ( val ) {
+                                               elem.value = val;
+                                       }
+                                       return value;
+                               }
+                       }
+               },
+               // Use the value property for back compat
+               // Use the nodeHook for button elements in IE6/7 (#1954)
+               value: {
+                       get: function( elem, name ) {
+                               if ( nodeHook && jQuery.nodeName( elem, "button" ) ) {
+                                       return nodeHook.get( elem, name );
+                               }
+                               return name in elem ?
+                                       elem.value :
+                                       null;
+                       },
+                       set: function( elem, value, name ) {
+                               if ( nodeHook && jQuery.nodeName( elem, "button" ) ) {
+                                       return nodeHook.set( elem, value, name );
+                               }
+                               // Does not return so that setAttribute is also used
+                               elem.value = value;
+                       }
+               }
+       },
+
+       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( elem, name, value ) {
+               var nType = elem.nodeType;
+
+               // don't get/set properties on text, comment and attribute nodes
+               if ( !elem || nType === 3 || nType === 8 || nType === 2 ) {
+                       return undefined;
+               }
+
+               var ret, hooks,
+                       notxml = nType !== 1 || !jQuery.isXMLDoc( elem );
+
+               if ( notxml ) {
+                       // Fix name and attach hooks
+                       name = jQuery.propFix[ name ] || name;
+                       hooks = jQuery.propHooks[ name ];
+               }
+
+               if ( value !== undefined ) {
+                       if ( hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) {
+                               return ret;
+
+                       } else {
+                               return (elem[ name ] = value);
+                       }
+
+               } else {
+                       if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ) {
+                               return ret;
+
+                       } else {
+                               return elem[ name ];
+                       }
+               }
+       },
+
+       propHooks: {
+               tabIndex: {
+                       get: function( elem ) {
+                               // elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set
+                               // http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/
+                               var attributeNode = elem.getAttributeNode("tabindex");
+
+                               return attributeNode && attributeNode.specified ?
+                                       parseInt( attributeNode.value, 10 ) :
+                                       rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ?
+                                               0 :
+                                               undefined;
+                       }
+               }
+       }
+});
+
+// Add the tabIndex propHook to attrHooks for back-compat (different case is intentional)
+jQuery.attrHooks.tabindex = jQuery.propHooks.tabIndex;
+
+// Hook for boolean attributes
+boolHook = {
+       get: function( elem, name ) {
+               // Align boolean attributes with corresponding properties
+               // Fall back to attribute presence where some booleans are not supported
+               var attrNode,
+                       property = jQuery.prop( elem, name );
+               return property === true || typeof property !== "boolean" && ( attrNode = elem.getAttributeNode(name) ) && attrNode.nodeValue !== false ?
+                       name.toLowerCase() :
+                       undefined;
+       },
+       set: function( elem, value, name ) {
+               var propName;
+               if ( value === false ) {
+                       // Remove boolean attributes when set to false
+                       jQuery.removeAttr( elem, name );
+               } else {
+                       // value is true since we know at this point it's type boolean and not false
+                       // Set boolean attributes to the same name and set the DOM property
+                       propName = jQuery.propFix[ name ] || name;
+                       if ( propName in elem ) {
+                               // Only set the IDL specifically if it already exists on the element
+                               elem[ propName ] = true;
+                       }
+
+                       elem.setAttribute( name, name.toLowerCase() );
+               }
+               return name;
+       }
+};
+
+// IE6/7 do not support getting/setting some attributes with get/setAttribute
+if ( !jQuery.support.getSetAttribute ) {
+
+       fixSpecified = {
+               name: true,
+               id: true
+       };
+
+       // Use this for any attribute in IE6/7
+       // This fixes almost every IE6/7 issue
+       nodeHook = jQuery.valHooks.button = {
+               get: function( elem, name ) {
+                       var ret;
+                       ret = elem.getAttributeNode( name );
+                       return ret && (fixSpecified[ name ] ? ret.nodeValue !== "" : ret.specified) ?
+                               ret.nodeValue :
+                               undefined;
+               },
+               set: function( elem, value, name ) {
+                       // Set the existing or create a new attribute node
+                       var ret = elem.getAttributeNode( name );
+                       if ( !ret ) {
+                               ret = document.createAttribute( name );
+                               elem.setAttributeNode( ret );
+                       }
+                       return (ret.nodeValue = value + "");
+               }
+       };
+
+       // Apply the nodeHook to tabindex
+       jQuery.attrHooks.tabindex.set = nodeHook.set;
+
+       // Set width and height to auto instead of 0 on empty string( Bug #8150 )
+       // This is for removals
+       jQuery.each([ "width", "height" ], function( i, name ) {
+               jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], {
+                       set: function( elem, value ) {
+                               if ( value === "" ) {
+                                       elem.setAttribute( name, "auto" );
+                                       return value;
+                               }
+                       }
+               });
+       });
+
+       // Set contenteditable to false on removals(#10429)
+       // Setting to empty string throws an error as an invalid value
+       jQuery.attrHooks.contenteditable = {
+               get: nodeHook.get,
+               set: function( elem, value, name ) {
+                       if ( value === "" ) {
+                               value = "false";
+                       }
+                       nodeHook.set( elem, value, name );
+               }
+       };
+}
+
+
+// Some attributes require a special call on IE
+if ( !jQuery.support.hrefNormalized ) {
+       jQuery.each([ "href", "src", "width", "height" ], function( i, name ) {
+               jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], {
+                       get: function( elem ) {
+                               var ret = elem.getAttribute( name, 2 );
+                               return ret === null ? undefined : ret;
+                       }
+               });
+       });
+}
+
+if ( !jQuery.support.style ) {
+       jQuery.attrHooks.style = {
+               get: function( elem ) {
+                       // Return undefined in the case of empty string
+                       // Normalize to lowercase since IE uppercases css property names
+                       return elem.style.cssText.toLowerCase() || undefined;
+               },
+               set: function( elem, value ) {
+                       return (elem.style.cssText = "" + value);
+               }
+       };
+}
+
+// Safari mis-reports the default selected property of an option
+// Accessing the parent's selectedIndex property fixes it
+if ( !jQuery.support.optSelected ) {
+       jQuery.propHooks.selected = jQuery.extend( jQuery.propHooks.selected, {
+               get: function( elem ) {
+                       var parent = elem.parentNode;
+
+                       if ( parent ) {
+                               parent.selectedIndex;
+
+                               // Make sure that it also works with optgroups, see #5701
+                               if ( parent.parentNode ) {
+                                       parent.parentNode.selectedIndex;
+                               }
+                       }
+                       return null;
+               }
+       });
+}
+
+// Radios and checkboxes getter/setter
+if ( !jQuery.support.checkOn ) {
+       jQuery.each([ "radio", "checkbox" ], function() {
+               jQuery.valHooks[ this ] = {
+                       get: function( elem ) {
+                               // Handle the case where in Webkit "" is returned instead of "on" if a value isn't specified
+                               return elem.getAttribute("value") === null ? "on" : elem.value;
+                       }
+               };
+       });
+}
+jQuery.each([ "radio", "checkbox" ], function() {
+       jQuery.valHooks[ this ] = jQuery.extend( jQuery.valHooks[ this ], {
+               set: function( elem, value ) {
+                       if ( jQuery.isArray( value ) ) {
+                               return (elem.checked = jQuery.inArray( jQuery(elem).val(), value ) >= 0);
+                       }
+               }
+       });
+});
+
+
+
+
+var rnamespaces = /\.(.*)$/,
+       rformElems = /^(?:textarea|input|select)$/i,
+       rperiod = /\./g,
+       rspaces = / /g,
+       rescape = /[^\w\s.|`]/g,
+       rtypenamespace = /^([^\.]*)?(?:\.(.+))?$/,
+       rhoverHack = /\bhover(\.\S+)?/,
+       rkeyEvent = /^key/,
+       rmouseEvent = /^(?:mouse|contextmenu)|click/,
+       rquickIs = /^([\w\-]+)?(?:#([\w\-]+))?(?:\.([\w\-]+))?(?:\[([\w+\-]+)=["']?([\w\-]*)["']?\])?$/,
+       quickParse = function( selector ) {
+               var quick = rquickIs.exec( selector );
+               if ( quick ) {
+                       //   0  1    2   3      4         5
+                       // [ _, tag, id, class, attrName, attrValue ]
+                       quick[1] = ( quick[1] || "" ).toLowerCase();
+                       quick[3] = quick[3] && new RegExp( "\\b" + quick[3] + "\\b" );
+               }
+               return quick;
+       },
+       quickIs = function( elem, m ) {
+               return (
+                       (!m[1] || elem.nodeName.toLowerCase() === m[1]) &&
+                       (!m[2] || elem.id === m[2]) &&
+                       (!m[3] || m[3].test( elem.className )) &&
+                       (!m[4] || elem.getAttribute( m[4] ) == m[5])
+               );
+       };
+
+/*
+ * Helper functions for managing events -- not part of the public interface.
+ * Props to Dean Edwards' addEvent library for many of the ideas.
+ */
+jQuery.event = {
+
+       add: function( elem, types, handler, data, selector ) {
+
+               var elemData, eventHandle, events,
+                       t, tns, type, namespaces, handleObj,
+                       handleObjIn, quick, handlers, special;
+
+               // Don't attach events to noData or text/comment nodes (allow plain objects tho)
+               if ( elem.nodeType === 3 || elem.nodeType === 8 || !types || !handler || !(elemData = jQuery._data( elem )) ) {
+                       return;
+               }
+
+               // Caller can pass in an object of custom data in lieu of the handler
+               if ( handler.handler ) {
+                       handleObjIn = handler;
+                       handler = handleObjIn.handler;
+               }
+
+               // Make sure that the handler has a unique ID, used to find/remove it later
+               if ( !handler.guid ) {
+                       handler.guid = jQuery.guid++;
+               }
+
+               // Init the element's event structure and main handler, if this is the first
+               events = elemData.events;
+               if ( !events ) {
+                       elemData.events = events = {};
+               }
+               eventHandle = elemData.handle;
+               if ( !eventHandle ) {
+                       elemData.handle = eventHandle = function( e ) {
+                               // Discard the second event of a jQuery.event.trigger() and
+                               // when an event is called after a page has unloaded
+                               return typeof jQuery !== "undefined" && (!e || jQuery.event.triggered !== e.type) ?
+                                       jQuery.event.handle.apply( eventHandle.elem, arguments ) :
+                                       undefined;
+                       };
+                       // Add elem as a property of the handle fn to prevent a memory leak with IE non-native events
+                       eventHandle.elem = elem;
+               }
+
+               // Handle multiple events separated by a space
+               // jQuery(...).bind("mouseover mouseout", fn);
+               types = types.replace( rhoverHack, "mouseover$1 mouseout$1" ).split( " " );
+               for ( t = 0; t < types.length; t++ ) {
+
+                       tns = rtypenamespace.exec( types[t] ) || [];
+                       type = tns[1];
+                       namespaces = (tns[2] || "").split( "." ).sort();
+
+                       // If event changes its type, use the special event handlers for the changed type
+                       special = jQuery.event.special[ type ] || {};
+
+                       // If selector defined, determine special event api type, otherwise given type
+                       type = ( selector ? special.delegateType : special.bindType ) || type;
+
+                       // Update special based on newly reset type
+                       special = jQuery.event.special[ type ] || {};
+
+                       // handleObj is passed to all event handlers
+                       handleObj = jQuery.extend({
+                               type: type,
+                               origType: tns[1],
+                               data: data,
+                               handler: handler,
+                               guid: handler.guid,
+                               selector: selector,
+                               namespace: namespaces.join(".")
+                       }, handleObjIn );
+
+                       // Delegated event; pre-analyze selector so it's processed quickly on event dispatch
+                       if ( selector ) {
+                               handleObj.quick = quickParse( selector );
+                               if ( !handleObj.quick && jQuery.expr.match.POS.test( selector ) ) {
+                                       handleObj.isPositional = true;
+                               }
+                       }
+
+                       // Init the event handler queue if we're the first
+                       handlers = events[ type ];
+                       if ( !handlers ) {
+                               handlers = events[ type ] = [];
+                               handlers.delegateCount = 0;
+
+                               // Only use addEventListener/attachEvent if the special events handler returns false
+                               if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) {
+                                       // Bind the global event handler to the element
+                                       if ( elem.addEventListener ) {
+                                               elem.addEventListener( type, eventHandle, false );
+
+                                       } else if ( elem.attachEvent ) {
+                                               elem.attachEvent( "on" + type, eventHandle );
+                                       }
+                               }
+                       }
+
+                       if ( special.add ) {
+                               special.add.call( elem, handleObj );
+
+                               if ( !handleObj.handler.guid ) {
+                                       handleObj.handler.guid = handler.guid;
+                               }
+                       }
+
+                       // Add to the element's handler list, delegates in front
+                       if ( selector ) {
+                               handlers.splice( handlers.delegateCount++, 0, handleObj );
+                       } else {
+                               handlers.push( handleObj );
+                       }
+
+                       // Keep track of which events have ever been used, for event optimization
+                       jQuery.event.global[ type ] = true;
+               }
+
+               // Nullify elem to prevent memory leaks in IE
+               elem = null;
+       },
+
+       global: {},
+
+       // Detach an event or set of events from an element
+       remove: function( elem, types, handler, selector ) {
+
+               var elemData = jQuery.hasData( elem ) && jQuery._data( elem ),
+                       t, tns, type, namespaces, origCount,
+                       j, events, special, handle, eventType, handleObj;
+
+               if ( !elemData || !(events = elemData.events) ) {
+                       return;
+               }
+
+               // For removal, types can be an Event object
+               if ( types && types.type && types.handler ) {
+                       handler = types.handler;
+                       types = types.type;
+                       selector = types.selector;
+               }
+
+               // Once for each type.namespace in types; type may be omitted
+               types = (types || "").replace( rhoverHack, "mouseover$1 mouseout$1" ).split(" ");
+               for ( t = 0; t < types.length; t++ ) {
+                       tns = rtypenamespace.exec( types[t] ) || [];
+                       type = tns[1];
+                       namespaces = tns[2];
+
+                       // Unbind all events (on this namespace, if provided) for the element
+                       if ( !type ) {
+                               namespaces = namespaces? "." + namespaces : "";
+                               for ( j in events ) {
+                                       jQuery.event.remove( elem, j + namespaces, handler, selector );
+                               }
+                               return;
+                       }
+
+                       special = jQuery.event.special[ type ] || {};
+                       type = ( selector? special.delegateType : special.bindType ) || type;
+                       eventType = events[ type ] || [];
+                       origCount = eventType.length;
+                       namespaces = namespaces ? new RegExp("(^|\\.)" + namespaces.split(".").sort().join("\\.(?:.*\\.)?") + "(\\.|$)") : null;
+
+                       // Only need to loop for special events or selective removal
+                       if ( handler || namespaces || selector || special.remove ) {
+                               for ( j = 0; j < eventType.length; j++ ) {
+                                       handleObj = eventType[ j ];
+
+                                       if ( !handler || handler.guid === handleObj.guid ) {
+                                               if ( !namespaces || namespaces.test( handleObj.namespace ) ) {
+                                                       if ( !selector || selector === handleObj.selector || selector === "**" && handleObj.selector ) {
+                                                               eventType.splice( j--, 1 );
+
+                                                               if ( handleObj.selector ) {
+                                                                       eventType.delegateCount--;
+                                                               }
+                                                               if ( special.remove ) {
+                                                                       special.remove.call( elem, handleObj );
+                                                               }
+                                                       }
+                                               }
+                                       }
+                               }
+                       } else {
+                               // Removing all events
+                               eventType.length = 0;
+                       }
+
+                       // Remove generic event handler if we removed something and no more handlers exist
+                       // (avoids potential for endless recursion during removal of special event handlers)
+                       if ( eventType.length === 0 && origCount !== eventType.length ) {
+                               if ( !special.teardown || special.teardown.call( elem, namespaces ) === false ) {
+                                       jQuery.removeEvent( elem, type, elemData.handle );
+                               }
+
+                               delete events[ type ];
+                       }
+               }
+
+               // Remove the expando if it's no longer used
+               if ( jQuery.isEmptyObject( events ) ) {
+                       handle = elemData.handle;
+                       if ( handle ) {
+                               handle.elem = null;
+                       }
+
+                       // removeData also checks for emptiness and clears the expando if empty
+                       // so use it instead of delete
+                       jQuery.removeData( elem, [ "events", "handle" ], true );
+               }
+       },
+
+       // Events that are safe to short-circuit if no handlers are attached.
+       // Native DOM events should not be added, they may have inline handlers.
+       customEvent: {
+               "getData": true,
+               "setData": true,
+               "changeData": true
+       },
+
+       trigger: function( event, data, elem, onlyHandlers ) {
+               // Don't do events on text and comment nodes
+               if ( elem && (elem.nodeType === 3 || elem.nodeType === 8) ) {
+                       return;
+               }
+
+               // Event object or event type
+               var type = event.type || event,
+                       namespaces = [],
+                       cache, exclusive, i, cur, old, ontype, special, handle, eventPath, bubbleType;
+
+               if ( type.indexOf( "!" ) >= 0 ) {
+                       // Exclusive events trigger only for the exact event (no namespaces)
+                       type = type.slice(0, -1);
+                       exclusive = true;
+               }
+
+               if ( type.indexOf( "." ) >= 0 ) {
+                       // Namespaced trigger; create a regexp to match event type in handle()
+                       namespaces = type.split(".");
+                       type = namespaces.shift();
+                       namespaces.sort();
+               }
+
+               if ( (!elem || jQuery.event.customEvent[ type ]) && !jQuery.event.global[ type ] ) {
+                       // No jQuery handlers for this event type, and it can't have inline handlers
+                       return;
+               }
+
+               // Caller can pass in an Event, Object, or just an event type string
+               event = typeof event === "object" ?
+                       // jQuery.Event object
+                       event[ jQuery.expando ] ? event :
+                       // Object literal
+                       new jQuery.Event( type, event ) :
+                       // Just the event type (string)
+                       new jQuery.Event( type );
+
+               event.type = type;
+               event.isTrigger = true;
+               event.exclusive = exclusive;
+               event.namespace = namespaces.join( "." );
+               event.namespace_re = event.namespace? new RegExp("(^|\\.)" + namespaces.join("\\.(?:.*\\.)?") + "(\\.|$)") : null;
+               ontype = type.indexOf( ":" ) < 0 ? "on" + type : "";
+
+               // triggerHandler() and global events don't bubble or run the default action
+               if ( onlyHandlers || !elem ) {
+                       event.preventDefault();
+               }
+
+               // Handle a global trigger
+               if ( !elem ) {
+
+                       // TODO: Stop taunting the data cache; remove global events and always attach to document
+                       cache = jQuery.cache;
+                       event.stopPropagation();
+                       for ( i in cache ) {
+                               if ( cache[ i ].events && cache[ i ].events[ type ] ) {
+                                       jQuery.event.trigger( event, data, cache[ i ].handle.elem );
+                               }
+                       }
+                       return;
+               }
+
+               // Clean up the event in case it is being reused
+               event.result = undefined;
+               if ( !event.target ) {
+                       event.target = elem;
+               }
+
+               // Clone any incoming data and prepend the event, creating the handler arg list
+               data = data != null ? jQuery.makeArray( data ) : [];
+               data.unshift( event );
+
+               // Allow special events to draw outside the lines
+               special = jQuery.event.special[ type ] || {};
+               if ( special.trigger && special.trigger.apply( elem, data ) === false ) {
+                       return;
+               }
+
+               // Determine event propagation path in advance, per W3C events spec (#9951)
+               // Bubble up to document, then to window; watch for a global ownerDocument var (#9724)
+               eventPath = [[ elem, special.bindType || type ]];
+               if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) {
+
+                       bubbleType = special.delegateType || type;
+                       old = null;
+                       for ( cur = elem.parentNode; cur; cur = cur.parentNode ) {
+                               eventPath.push([ cur, bubbleType ]);
+                               old = cur;
+                       }
+
+                       // Only add window if we got to document (e.g., not plain obj or detached DOM)
+                       if ( old && old === elem.ownerDocument ) {
+                               eventPath.push([ old.defaultView || old.parentWindow || window, bubbleType ]);
+                       }
+               }
+
+               // Fire handlers on the event path
+               for ( i = 0; i < eventPath.length; i++ ) {
+
+                       cur = eventPath[i][0];
+                       event.type = eventPath[i][1];
+
+                       handle = (jQuery._data( cur, "events" ) || {})[ event.type ] && jQuery._data( cur, "handle" );
+                       if ( handle ) {
+                               handle.apply( cur, data );
+                       }
+                       handle = ontype && cur[ ontype ];
+                       if ( handle && jQuery.acceptData( cur ) ) {
+                               handle.apply( cur, data );
+                       }
+
+                       if ( event.isPropagationStopped() ) {
+                               break;
+                       }
+               }
+               event.type = type;
+
+               // If nobody prevented the default action, do it now
+               if ( !event.isDefaultPrevented() ) {
+
+                       if ( (!special._default || special._default.call( elem.ownerDocument, event, data ) === false) &&
+                               !(type === "click" && jQuery.nodeName( elem, "a" )) && jQuery.acceptData( elem ) ) {
+
+                               // Call a native DOM method on the target with the same name name as the event.
+                               // Can't use an .isFunction() check here because IE6/7 fails that test.
+                               // Don't do default actions on window, that's where global variables be (#6170)
+                               // IE<9 dies on focus/blur to hidden element (#1486)
+                               if ( ontype && elem[ type ] && ((type !== "focus" && type !== "blur") || event.target.offsetWidth !== 0) && !jQuery.isWindow( elem ) ) {
+
+                                       // Don't re-trigger an onFOO event when we call its FOO() method
+                                       old = elem[ ontype ];
+
+                                       if ( old ) {
+                                               elem[ ontype ] = null;
+                                       }
+
+                                       // Prevent re-triggering of the same event, since we already bubbled it above
+                                       jQuery.event.triggered = type;
+                                       elem[ type ]();
+                                       jQuery.event.triggered = undefined;
+
+                                       if ( old ) {
+                                               elem[ ontype ] = old;
+                                       }
+                               }
+                       }
+               }
+
+               return event.result;
+       },
+
+       handle: function( event ) {
+
+               // Make a writable jQuery.Event from the native event object
+               event = jQuery.event.fix( event || window.event );
+
+               var handlers = ((jQuery._data( this, "events" ) || {})[ event.type ] || []),
+                       delegateCount = handlers.delegateCount,
+                       args = [].slice.call( arguments, 0 ),
+                       handlerQueue = [],
+                       i, cur, selMatch, matches, handleObj, sel, hit, related;
+
+               // Use the fix-ed jQuery.Event rather than the (read-only) native event
+               args[0] = event;
+
+               // Determine handlers that should run if there are delegated events
+               // Avoid disabled elements in IE (#6911) and non-left-click bubbling in Firefox (#3861)
+               if ( delegateCount && !event.target.disabled && !(event.button && event.type === "click") ) {
+
+                       for ( cur = event.target; cur != this; cur = cur.parentNode || this ) {
+                               selMatch = {};
+                               matches = [];
+                               for ( i = 0; i < delegateCount; i++ ) {
+                                       handleObj = handlers[ i ];
+                                       sel = handleObj.selector;
+                                       hit = selMatch[ sel ];
+
+                                       if ( handleObj.isPositional ) {
+                                               // Since .is() does not work for positionals; see http://jsfiddle.net/eJ4yd/3/
+                                               hit = ( hit || (selMatch[ sel ] = jQuery( sel )) ).index( cur ) >= 0;
+                                       } else if ( hit === undefined ) {
+                                               hit = selMatch[ sel ] = ( handleObj.quick ? quickIs( cur, handleObj.quick ) : jQuery( cur ).is( sel ) );
+                                       }
+                                       if ( hit ) {
+                                               matches.push( handleObj );
+                                       }
+                               }
+                               if ( matches.length ) {
+                                       handlerQueue.push({ elem: cur, matches: matches });
+                               }
+                       }
+               }
+
+               // Copy the remaining (bound) handlers in case they're changed
+               handlers = handlers.slice( delegateCount );
+
+               // Run delegates first; they may want to stop propagation beneath us
+               event.delegateTarget = this;
+               for ( i = 0; i < handlerQueue.length && !event.isPropagationStopped(); i++ ) {
+                       matched = handlerQueue[ i ];
+                       dispatch( matched.elem, event, matched.matches, args );
+               }
+               delete event.delegateTarget;
+
+               // Run non-delegated handlers for this level
+               if ( handlers.length ) {
+                       dispatch( this, event, handlers, args );
+               }
+
+               return event.result;
+       },
+
+       // Includes some event props shared by KeyEvent and MouseEvent
+       // *** attrChange attrName relatedNode srcElement  are not normalized, non-W3C, deprecated, will be removed in 1.8 ***
+       props: "attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),
+
+       fixHooks: {},
+
+       keyHooks: {
+               props: "char charCode key keyCode".split(" "),
+               filter: function( event, original ) {
+
+                       // Add which for key events
+                       if ( event.which == null ) {
+                               event.which = original.charCode != null ? original.charCode : original.keyCode;
+                       }
+
+                       return event;
+               }
+       },
+
+       mouseHooks: {
+               props: "button buttons clientX clientY fromElement layerX layerY offsetX offsetY pageX pageY screenX screenY toElement wheelDelta".split(" "),
+               filter: function( event, original ) {
+                       var eventDoc, doc, body,
+                               button = original.button,
+                               fromElement = original.fromElement;
+
+                       // Calculate pageX/Y if missing and clientX/Y available
+                       if ( event.pageX == null && original.clientX != null ) {
+                               eventDoc = event.target.ownerDocument || document;
+                               doc = eventDoc.documentElement;
+                               body = eventDoc.body;
+
+                               event.pageX = original.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc && doc.clientLeft || body && body.clientLeft || 0);
+                               event.pageY = original.clientY + (doc && doc.scrollTop  || body && body.scrollTop  || 0) - (doc && doc.clientTop  || body && body.clientTop  || 0);
+                       }
+
+                       // Add relatedTarget, if necessary
+                       if ( !event.relatedTarget && fromElement ) {
+                               event.relatedTarget = fromElement === event.target ? original.toElement : fromElement;
+                       }
+
+                       // Add which for click: 1 === left; 2 === middle; 3 === right
+                       // Note: button is not normalized, so don't use it
+                       if ( !event.which && button !== undefined ) {
+                               event.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) );
+                       }
+
+                       return event;
+               }
+       },
+
+       fix: function( event ) {
+               if ( event[ jQuery.expando ] ) {
+                       return event;
+               }
+
+               // Create a writable copy of the event object and normalize some properties
+               var i, prop,
+                       originalEvent = event,
+                       fixHook = jQuery.event.fixHooks[ event.type ] || {},
+                       copy = fixHook.props ? this.props.concat( fixHook.props ) : this.props;
+
+               event = jQuery.Event( originalEvent );
+
+               for ( i = copy.length; i; ) {
+                       prop = copy[ --i ];
+                       event[ prop ] = originalEvent[ prop ];
+               }
+
+               // Fix target property, if necessary (#1925, IE 6/7/8 & Safari2)
+               if ( !event.target ) {
+                       event.target = originalEvent.srcElement || document;
+               }
+
+               // Target should not be a text node (#504, Safari)
+               if ( event.target.nodeType === 3 ) {
+                       event.target = event.target.parentNode;
+               }
+
+               // For mouse/key events; add metaKey if it's not there (#3368, IE6/7/8)
+               if ( event.metaKey === undefined ) {
+                       event.metaKey = event.ctrlKey;
+               }
+
+               return fixHook.filter? fixHook.filter( event, originalEvent ) : event;
+       },
+
+       special: {
+               ready: {
+                       // Make sure the ready event is setup
+                       setup: jQuery.bindReady
+               },
+
+               focus: {
+                       delegateType: "focusin",
+                       noBubble: true
+               },
+               blur: {
+                       delegateType: "focusout",
+                       noBubble: true
+               },
+
+               beforeunload: {
+                       setup: function( data, namespaces, eventHandle ) {
+                               // We only want to do this special case on windows
+                               if ( jQuery.isWindow( this ) ) {
+                                       this.onbeforeunload = eventHandle;
+                               }
+                       },
+
+                       teardown: function( namespaces, eventHandle ) {
+                               if ( this.onbeforeunload === eventHandle ) {
+                                       this.onbeforeunload = null;
+                               }
+                       }
+               }
+       },
+
+       simulate: function( type, elem, event, bubble ) {
+               // Piggyback on a donor event to simulate a different one.
+               // Fake originalEvent to avoid donor's stopPropagation, but if the
+               // simulated event prevents default then we do the same on the donor.
+               var e = jQuery.extend(
+                       new jQuery.Event(),
+                       event,
+                       { type: type,
+                               isSimulated: true,
+                               originalEvent: {}
+                       }
+               );
+               if ( bubble ) {
+                       jQuery.event.trigger( e, null, elem );
+               } else {
+                       jQuery.event.handle.call( elem, e );
+               }
+               if ( e.isDefaultPrevented() ) {
+                       event.preventDefault();
+               }
+       }
+};
+
+// Run jQuery handler functions; called from jQuery.event.handle
+function dispatch( target, event, handlers, args ) {
+       var run_all = !event.exclusive && !event.namespace,
+               specialHandle = ( jQuery.event.special[ event.type ] || {} ).handle,
+               j, handleObj, ret;
+
+       event.currentTarget = target;
+       for ( j = 0; j < handlers.length && !event.isImmediatePropagationStopped(); j++ ) {
+               handleObj = handlers[ j ];
+
+               // Triggered event must either 1) be non-exclusive and have no namespace, or
+               // 2) have namespace(s) a subset or equal to those in the bound event (both can have no namespace).
+               if ( run_all || (!event.namespace && !handleObj.namespace) || event.namespace_re && event.namespace_re.test( handleObj.namespace ) ) {
+
+                       // Pass in a reference to the handler function itself
+                       // So that we can later remove it
+                       event.handler = handleObj.handler;
+                       event.data = handleObj.data;
+                       event.handleObj = handleObj;
+
+                       ret = ( specialHandle || handleObj.handler ).apply( target, args );
+
+                       if ( ret !== undefined ) {
+                               event.result = ret;
+                               if ( ret === false ) {
+                                       event.preventDefault();
+                                       event.stopPropagation();
+                               }
+                       }
+               }
+       }
+}
+
+jQuery.removeEvent = document.removeEventListener ?
+       function( elem, type, handle ) {
+               if ( elem.removeEventListener ) {
+                       elem.removeEventListener( type, handle, false );
+               }
+       } :
+       function( elem, type, handle ) {
+               if ( elem.detachEvent ) {
+                       elem.detachEvent( "on" + type, handle );
+               }
+       };
+
+jQuery.Event = function( src, props ) {
+       // Allow instantiation without the 'new' keyword
+       if ( !(this instanceof jQuery.Event) ) {
+               return new jQuery.Event( src, props );
+       }
+
+       // Event object
+       if ( src && src.type ) {
+               this.originalEvent = src;
+               this.type = src.type;
+
+               // Events bubbling up the document may have been marked as prevented
+               // by a handler lower down the tree; reflect the correct value.
+               this.isDefaultPrevented = ( src.defaultPrevented || src.returnValue === false ||
+                       src.getPreventDefault && src.getPreventDefault() ) ? returnTrue : returnFalse;
+
+       // Event type
+       } else {
+               this.type = src;
+       }
+
+       // Put explicitly provided properties onto the event object
+       if ( props ) {
+               jQuery.extend( this, props );
+       }
+
+       // Create a timestamp if incoming event doesn't have one
+       this.timeStamp = src && src.timeStamp || jQuery.now();
+
+       // Mark it as fixed
+       this[ jQuery.expando ] = true;
+};
+
+function returnFalse() {
+       return false;
+}
+function returnTrue() {
+       return true;
+}
+
+// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding
+// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html
+jQuery.Event.prototype = {
+       preventDefault: function() {
+               this.isDefaultPrevented = returnTrue;
+
+               var e = this.originalEvent;
+               if ( !e ) {
+                       return;
+               }
+
+               // if preventDefault exists run it on the original event
+               if ( e.preventDefault ) {
+                       e.preventDefault();
+
+               // otherwise set the returnValue property of the original event to false (IE)
+               } else {
+                       e.returnValue = false;
+               }
+       },
+       stopPropagation: function() {
+               this.isPropagationStopped = returnTrue;
+
+               var e = this.originalEvent;
+               if ( !e ) {
+                       return;
+               }
+               // if stopPropagation exists run it on the original event
+               if ( e.stopPropagation ) {
+                       e.stopPropagation();
+               }
+               // otherwise set the cancelBubble property of the original event to true (IE)
+               e.cancelBubble = true;
+       },
+       stopImmediatePropagation: function() {
+               this.isImmediatePropagationStopped = returnTrue;
+               this.stopPropagation();
+       },
+       isDefaultPrevented: returnFalse,
+       isPropagationStopped: returnFalse,
+       isImmediatePropagationStopped: returnFalse
+};
+
+// Create mouseenter/leave events using mouseover/out and event-time checks
+jQuery.each({
+       mouseenter: "mouseover",
+       mouseleave: "mouseout"
+}, function( orig, fix ) {
+       jQuery.event.special[ orig ] = jQuery.event.special[ fix ] = {
+               delegateType: fix,
+               bindType: fix,
+
+               handle: function( event ) {
+                       var target = this,
+                               related = event.relatedTarget,
+                               handleObj = event.handleObj,
+                               selector = handleObj.selector,
+                               oldType, ret;
+
+                       // For a real mouseover/out, always call the handler; for
+                       // mousenter/leave call the handler if related is outside the target.
+                       // NB: No relatedTarget if the mouse left/entered the browser window
+                       if ( !related || handleObj.origType === event.type || (related !== target && !jQuery.contains( target, related )) ) {
+                               oldType = event.type;
+                               event.type = handleObj.origType;
+                               ret = handleObj.handler.apply( this, arguments );
+                               event.type = oldType;
+                       }
+                       return ret;
+               }
+       };
+});
+
+// IE submit delegation
+if ( !jQuery.support.submitBubbles ) {
+
+       jQuery.event.special.submit = {
+               setup: function() {
+                       // Only need this for delegated form submit events
+                       if ( jQuery.nodeName( this, "form" ) ) {
+                               return false;
+                       }
+
+                       // Lazy-add a submit handler when a descendant form may potentially be submitted
+                       jQuery.event.add( this, "click._submit keypress._submit", function( e ) {
+                               // Node name check avoids a VML-related crash in IE (#9807)
+                               var elem = e.target,
+                                       form = jQuery.nodeName( elem, "input" ) || jQuery.nodeName( elem, "button" ) ? elem.form : undefined;
+                               if ( form && !form._submit_attached ) {
+                                       jQuery.event.add( form, "submit._submit", function( event ) {
+                                               // Form was submitted, bubble the event up the tree
+                                               if ( this.parentNode ) {
+                                                       jQuery.event.simulate( "submit", this.parentNode, event, true );
+                                               }
+                                       });
+                                       form._submit_attached = true;
+                               }
+                       });
+                       // return undefined since we don't need an event listener
+               },
+
+               teardown: function() {
+                       // Only need this for delegated form submit events
+                       if ( jQuery.nodeName( this, "form" ) ) {
+                               return false;
+                       }
+
+                       // Remove delegated handlers; cleanData eventually reaps submit handlers attached above
+                       jQuery.event.remove( this, "._submit" );
+               }
+       };
+}
+
+// IE change delegation and checkbox/radio fix
+if ( !jQuery.support.changeBubbles ) {
+
+       jQuery.event.special.change = {
+
+               setup: function() {
+
+                       if ( rformElems.test( this.nodeName ) ) {
+                               // IE doesn't fire change on a check/radio until blur; trigger it on click
+                               // after a propertychange. Eat the blur-change in special.change.handle.
+                               // This still fires onchange a second time for check/radio after blur.
+                               if ( this.type === "checkbox" || this.type === "radio" ) {
+                                       jQuery.event.add( this, "propertychange._change", function( event ) {
+                                               if ( event.originalEvent.propertyName === "checked" ) {
+                                                       this._just_changed = true;
+                                               }
+                                       });
+                                       jQuery.event.add( this, "click._change", function( event ) {
+                                               if ( this._just_changed ) {
+                                                       this._just_changed = false;
+                                                       jQuery.event.simulate( "change", this, event, true );
+                                               }
+                                       });
+                               }
+                               return false;
+                       }
+                       // Delegated event; lazy-add a change handler on descendant inputs
+                       jQuery.event.add( this, "beforeactivate._change", function( e ) {
+                               var elem = e.target;
+
+                               if ( rformElems.test( elem.nodeName ) && !elem._change_attached ) {
+                                       jQuery.event.add( elem, "change._change", function( event ) {
+                                               if ( this.parentNode && !event.isSimulated ) {
+                                                       jQuery.event.simulate( "change", this.parentNode, event, true );
+                                               }
+                                       });
+                                       elem._change_attached = true;
+                               }
+                       });
+               },
+
+               handle: function( event ) {
+                       var elem = event.target;
+
+                       // Swallow native change events from checkbox/radio, we already triggered them above
+                       if ( this !== elem || event.isSimulated || event.isTrigger || (elem.type !== "radio" && elem.type !== "checkbox") ) {
+                               return event.handleObj.handler.apply( this, arguments );
+                       }
+               },
+
+               teardown: function() {
+                       jQuery.event.remove( this, "._change" );
+
+                       return rformElems.test( this.nodeName );
+               }
+       };
+}
+
+// Create "bubbling" focus and blur events
+if ( !jQuery.support.focusinBubbles ) {
+       jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) {
+
+               // Attach a single capturing handler while someone wants focusin/focusout
+               var attaches = 0,
+                       handler = function( event ) {
+                               jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true );
+                       };
+
+               jQuery.event.special[ fix ] = {
+                       setup: function() {
+                               if ( attaches++ === 0 ) {
+                                       document.addEventListener( orig, handler, true );
+                               }
+                       },
+                       teardown: function() {
+                               if ( --attaches === 0 ) {
+                                       document.removeEventListener( orig, handler, true );
+                               }
+                       }
+               };
+       });
+}
+
+jQuery.fn.extend({
+
+       on: function( types, selector, data, fn, /*INTERNAL*/ one ) {
+               var origFn, type;
+
+               // Types can be a map of types/handlers
+               if ( typeof types === "object" ) {
+                       // ( types-Object, selector, data )
+                       if ( typeof selector !== "string" ) {
+                               // ( types-Object, data )
+                               data = selector;
+                               selector = undefined;
+                       }
+                       for ( type in types ) {
+                               this.on( type, selector, data, types[ type ], one );
+                       }
+                       return this;
+               }
+
+               if ( data == null && fn == null ) {
+                       // ( types, fn )
+                       fn = selector;
+                       data = selector = undefined;
+               } else if ( fn == null ) {
+                       if ( typeof selector === "string" ) {
+                               // ( types, selector, fn )
+                               fn = data;
+                               data = undefined;
+                       } else {
+                               // ( types, data, fn )
+                               fn = data;
+                               data = selector;
+                               selector = undefined;
+                       }
+               }
+               if ( fn === false ) {
+                       fn = returnFalse;
+               } else if ( !fn ) {
+                       return this;
+               }
+
+               if ( one === 1 ) {
+                       origFn = fn;
+                       fn = function( event ) {
+                               jQuery.event.remove( event.delegateTarget || this, event );
+                               return origFn.apply( this, arguments );
+                       };
+                       // Use same guid so caller can remove using origFn
+                       fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );
+               }
+               return this.each( function() {
+                       jQuery.event.add( this, types, fn, data, selector );
+               });
+       },
+       one: function( types, selector, data, fn ) {
+               return this.on.call( this, types, selector, data, fn, 1 );
+       },
+       off: function( types, selector, fn ) {
+               if ( types && types.preventDefault ) {
+                       // ( event )  native or jQuery.Event
+                       return this.off( types.type, types.handler, types.selector );
+               }
+               if ( typeof types === "object" ) {
+                       // ( types-object [, selector] )
+                       for ( var type in types ) {
+                               this.off( type, selector, types[ type ] );
+                       }
+                       return this;
+               }
+               if ( selector === false || typeof selector === "function" ) {
+                       // ( types [, fn] )
+                       fn = selector;
+                       selector = undefined;
+               }
+               if ( fn === false ) {
+                       fn = returnFalse;
+               }
+               return this.each(function() {
+                       jQuery.event.remove( this, types, fn, selector );
+               });
+       },
+
+       bind: function( types, data, fn ) {
+               return this.on( types, null, data, fn );
+       },
+       unbind: function( types, fn ) {
+               return this.off( types, null, fn );
+       },
+
+       live: function( types, data, fn ) {
+               jQuery( this.context ).on( types, this.selector, data, fn );
+               return this;
+       },
+       die: function( types, fn ) {
+               jQuery( this.context ).off( types, this.selector || "**", fn );
+               return this;
+       },
+
+       delegate: function( selector, types, data, fn ) {
+               return this.on( types, selector, data, fn );
+       },
+       undelegate: function( selector, types, fn ) {
+               // ( namespace ) or ( selector, types [, fn] )
+               return arguments.length == 1? this.off( selector, "**" ) : this.off( types, selector, fn );
+       },
+
+       trigger: function( type, data ) {
+               return this.each(function() {
+                       jQuery.event.trigger( type, data, this );
+               });
+       },
+       triggerHandler: function( type, data ) {
+               if ( this[0] ) {
+                       return jQuery.event.trigger( type, data, this[0], true );
+               }
+       },
+
+       toggle: function( fn ) {
+               // Save reference to arguments for access in closure
+               var args = arguments,
+                       guid = fn.guid || jQuery.guid++,
+                       i = 0,
+                       toggler = function( event ) {
+                               // Figure out which function to execute
+                               var lastToggle = ( jQuery._data( this, "lastToggle" + fn.guid ) || 0 ) % i;
+                               jQuery._data( this, "lastToggle" + fn.guid, lastToggle + 1 );
+
+                               // Make sure that clicks stop
+                               event.preventDefault();
+
+                               // and execute the function
+                               return args[ lastToggle ].apply( this, arguments ) || false;
+                       };
+
+               // link all the functions, so any of them can unbind this click handler
+               toggler.guid = guid;
+               while ( i < args.length ) {
+                       args[ i++ ].guid = guid;
+               }
+
+               return this.click( toggler );
+       },
+
+       hover: function( fnOver, fnOut ) {
+               return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
+       }
+});
+
+jQuery.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( i, name ) {
+
+       // Handle event binding
+       jQuery.fn[ name ] = function( data, fn ) {
+               if ( fn == null ) {
+                       fn = data;
+                       data = null;
+               }
+
+               return arguments.length > 0 ?
+                       this.bind( name, data, fn ) :
+                       this.trigger( name );
+       };
+
+       if ( jQuery.attrFn ) {
+               jQuery.attrFn[ name ] = true;
+       }
+
+       if ( rkeyEvent.test( name ) ) {
+               jQuery.event.fixHooks[ name ] = jQuery.event.keyHooks;
+       }
+
+       if ( rmouseEvent.test( name ) ) {
+               jQuery.event.fixHooks[ name ] = jQuery.event.mouseHooks;
+       }
+});
+
+
+
+/*!
+ * Sizzle CSS Selector Engine
+ *  Copyright 2011, The Dojo Foundation
+ *  Released under the MIT, BSD, and GPL Licenses.
+ *  More information: http://sizzlejs.com/
+ */
+(function(){
+
+var chunker = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,
+       expando = "sizcache" + (Math.random() + '').replace('.', ''),
+       done = 0,
+       toString = Object.prototype.toString,
+       hasDuplicate = false,
+       baseHasDuplicate = true,
+       rBackslash = /\\/g,
+       rReturn = /\r\n/g,
+       rNonWord = /\W/;
+
+// Here we check if the JavaScript engine is using some sort of
+// optimization where it does not always call our comparision
+// function. If that is the case, discard the hasDuplicate value.
+//   Thus far that includes Google Chrome.
+[0, 0].sort(function() {
+       baseHasDuplicate = false;
+       return 0;
+});
+
+var Sizzle = function( selector, context, results, seed ) {
+       results = results || [];
+       context = context || document;
+
+       var origContext = context;
+
+       if ( context.nodeType !== 1 && context.nodeType !== 9 ) {
+               return [];
+       }
+       
+       if ( !selector || typeof selector !== "string" ) {
+               return results;
+       }
+
+       var m, set, checkSet, extra, ret, cur, pop, i,
+               prune = true,
+               contextXML = Sizzle.isXML( context ),
+               parts = [],
+               soFar = selector;
+       
+       // Reset the position of the chunker regexp (start from head)
+       do {
+               chunker.exec( "" );
+               m = chunker.exec( soFar );
+
+               if ( m ) {
+                       soFar = m[3];
+               
+                       parts.push( m[1] );
+               
+                       if ( m[2] ) {
+                               extra = m[3];
+                               break;
+                       }
+               }
+       } while ( m );
+
+       if ( parts.length > 1 && origPOS.exec( selector ) ) {
+
+               if ( parts.length === 2 && Expr.relative[ parts[0] ] ) {
+                       set = posProcess( parts[0] + parts[1], context, seed );
+
+               } else {
+                       set = Expr.relative[ parts[0] ] ?
+                               [ context ] :
+                               Sizzle( parts.shift(), context );
+
+                       while ( parts.length ) {
+                               selector = parts.shift();
+
+                               if ( Expr.relative[ selector ] ) {
+                                       selector += parts.shift();
+                               }
+                               
+                               set = posProcess( selector, set, seed );
+                       }
+               }
+
+       } else {
+               // Take a shortcut and set the context if the root selector is an ID
+               // (but not if it'll be faster if the inner selector is an ID)
+               if ( !seed && parts.length > 1 && context.nodeType === 9 && !contextXML &&
+                               Expr.match.ID.test(parts[0]) && !Expr.match.ID.test(parts[parts.length - 1]) ) {
+
+                       ret = Sizzle.find( parts.shift(), context, contextXML );
+                       context = ret.expr ?
+                               Sizzle.filter( ret.expr, ret.set )[0] :
+                               ret.set[0];
+               }
+
+               if ( context ) {
+                       ret = seed ?
+                               { expr: parts.pop(), set: makeArray(seed) } :
+                               Sizzle.find( parts.pop(), parts.length === 1 && (parts[0] === "~" || parts[0] === "+") && context.parentNode ? context.parentNode : context, contextXML );
+
+                       set = ret.expr ?
+                               Sizzle.filter( ret.expr, ret.set ) :
+                               ret.set;
+
+                       if ( parts.length > 0 ) {
+                               checkSet = makeArray( set );
+
+                       } else {
+                               prune = false;
+                       }
+
+                       while ( parts.length ) {
+                               cur = parts.pop();
+                               pop = cur;
+
+                               if ( !Expr.relative[ cur ] ) {
+                                       cur = "";
+                               } else {
+                                       pop = parts.pop();
+                               }
+
+                               if ( pop == null ) {
+                                       pop = context;
+                               }
+
+                               Expr.relative[ cur ]( checkSet, pop, contextXML );
+                       }
+
+               } else {
+                       checkSet = parts = [];
+               }
+       }
+
+       if ( !checkSet ) {
+               checkSet = set;
+       }
+
+       if ( !checkSet ) {
+               Sizzle.error( cur || selector );
+       }
+
+       if ( toString.call(checkSet) === "[object Array]" ) {
+               if ( !prune ) {
+                       results.push.apply( results, checkSet );
+
+               } else if ( context && context.nodeType === 1 ) {
+                       for ( i = 0; checkSet[i] != null; i++ ) {
+                               if ( checkSet[i] && (checkSet[i] === true || checkSet[i].nodeType === 1 && Sizzle.contains(context, checkSet[i])) ) {
+                                       results.push( set[i] );
+                               }
+                       }
+
+               } else {
+                       for ( i = 0; checkSet[i] != null; i++ ) {
+                               if ( checkSet[i] && checkSet[i].nodeType === 1 ) {
+                                       results.push( set[i] );
+                               }
+                       }
+               }
+
+       } else {
+               makeArray( checkSet, results );
+       }
+
+       if ( extra ) {
+               Sizzle( extra, origContext, results, seed );
+               Sizzle.uniqueSort( results );
+       }
+
+       return results;
+};
+
+Sizzle.uniqueSort = function( results ) {
+       if ( sortOrder ) {
+               hasDuplicate = baseHasDuplicate;
+               results.sort( sortOrder );
+
+               if ( hasDuplicate ) {
+                       for ( var i = 1; i < results.length; i++ ) {
+                               if ( results[i] === results[ i - 1 ] ) {
+                                       results.splice( i--, 1 );
+                               }
+                       }
+               }
+       }
+
+       return results;
+};
+
+Sizzle.matches = function( expr, set ) {
+       return Sizzle( expr, null, null, set );
+};
+
+Sizzle.matchesSelector = function( node, expr ) {
+       return Sizzle( expr, null, null, [node] ).length > 0;
+};
+
+Sizzle.find = function( expr, context, isXML ) {
+       var set, i, len, match, type, left;
+
+       if ( !expr ) {
+               return [];
+       }
+
+       for ( i = 0, len = Expr.order.length; i < len; i++ ) {
+               type = Expr.order[i];
+               
+               if ( (match = Expr.leftMatch[ type ].exec( expr )) ) {
+                       left = match[1];
+                       match.splice( 1, 1 );
+
+                       if ( left.substr( left.length - 1 ) !== "\\" ) {
+                               match[1] = (match[1] || "").replace( rBackslash, "" );
+                               set = Expr.find[ type ]( match, context, isXML );
+
+                               if ( set != null ) {
+                                       expr = expr.replace( Expr.match[ type ], "" );
+                                       break;
+                               }
+                       }
+               }
+       }
+
+       if ( !set ) {
+               set = typeof context.getElementsByTagName !== "undefined" ?
+                       context.getElementsByTagName( "*" ) :
+                       [];
+       }
+
+       return { set: set, expr: expr };
+};
+
+Sizzle.filter = function( expr, set, inplace, not ) {
+       var match, anyFound,
+               type, found, item, filter, left,
+               i, pass,
+               old = expr,
+               result = [],
+               curLoop = set,
+               isXMLFilter = set && set[0] && Sizzle.isXML( set[0] );
+
+       while ( expr && set.length ) {
+               for ( type in Expr.filter ) {
+                       if ( (match = Expr.leftMatch[ type ].exec( expr )) != null && match[2] ) {
+                               filter = Expr.filter[ type ];
+                               left = match[1];
+
+                               anyFound = false;
+
+                               match.splice(1,1);
+
+                               if ( left.substr( left.length - 1 ) === "\\" ) {
+                                       continue;
+                               }
+
+                               if ( curLoop === result ) {
+                                       result = [];
+                               }
+
+                               if ( Expr.preFilter[ type ] ) {
+                                       match = Expr.preFilter[ type ]( match, curLoop, inplace, result, not, isXMLFilter );
+
+                                       if ( !match ) {
+                                               anyFound = found = true;
+
+                                       } else if ( match === true ) {
+                                               continue;
+                                       }
+                               }
+
+                               if ( match ) {
+                                       for ( i = 0; (item = curLoop[i]) != null; i++ ) {
+                                               if ( item ) {
+                                                       found = filter( item, match, i, curLoop );
+                                                       pass = not ^ found;
+
+                                                       if ( inplace && found != null ) {
+                                                               if ( pass ) {
+                                                                       anyFound = true;
+
+                                                               } else {
+                                                                       curLoop[i] = false;
+                                                               }
+
+                                                       } else if ( pass ) {
+                                                               result.push( item );
+                                                               anyFound = true;
+                                                       }
+                                               }
+                                       }
+                               }
+
+                               if ( found !== undefined ) {
+                                       if ( !inplace ) {
+                                               curLoop = result;
+                                       }
+
+                                       expr = expr.replace( Expr.match[ type ], "" );
+
+                                       if ( !anyFound ) {
+                                               return [];
+                                       }
+
+                                       break;
+                               }
+                       }
+               }
+
+               // Improper expression
+               if ( expr === old ) {
+                       if ( anyFound == null ) {
+                               Sizzle.error( expr );
+
+                       } else {
+                               break;
+                       }
+               }
+
+               old = expr;
+       }
+
+       return curLoop;
+};
+
+Sizzle.error = function( msg ) {
+       throw "Syntax error, unrecognized expression: " + msg;
+};
+
+/**
+ * Utility function for retreiving the text value of an array of DOM nodes
+ * @param {Array|Element} elem
+ */
+var getText = Sizzle.getText = function( elem ) {
+    var i, node,
+               nodeType = elem.nodeType,
+               ret = "";
+
+       if ( nodeType ) {
+               if ( nodeType === 1 ) {
+                       // Use textContent || innerText for elements
+                       if ( typeof elem.textContent === 'string' ) {
+                               return elem.textContent;
+                       } else if ( typeof elem.innerText === 'string' ) {
+                               // Replace IE's carriage returns
+                               return elem.innerText.replace( rReturn, '' );
+                       } else {
+                               // Traverse it's children
+                               for ( elem = elem.firstChild; elem; elem = elem.nextSibling) {
+                                       ret += getText( elem );
+                               }
+                       }
+               } else if ( nodeType === 3 || nodeType === 4 ) {
+                       return elem.nodeValue;
+               }
+       } else {
+
+               // If no nodeType, this is expected to be an array
+               for ( i = 0; (node = elem[i]); i++ ) {
+                       // Do not traverse comment nodes
+                       if ( node.nodeType !== 8 ) {
+                               ret += getText( node );
+                       }
+               }
+       }
+       return ret;
+};
+
+var Expr = Sizzle.selectors = {
+       order: [ "ID", "NAME", "TAG" ],
+
+       match: {
+               ID: /#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,
+               CLASS: /\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,
+               NAME: /\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,
+               ATTR: /\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,
+               TAG: /^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,
+               CHILD: /:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,
+               POS: /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,
+               PSEUDO: /:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/
+       },
+
+       leftMatch: {},
+
+       attrMap: {
+               "class": "className",
+               "for": "htmlFor"
+       },
+
+       attrHandle: {
+               href: function( elem ) {
+                       return elem.getAttribute( "href" );
+               },
+               type: function( elem ) {
+                       return elem.getAttribute( "type" );
+               }
+       },
+
+       relative: {
+               "+": function(checkSet, part){
+                       var isPartStr = typeof part === "string",
+                               isTag = isPartStr && !rNonWord.test( part ),
+                               isPartStrNotTag = isPartStr && !isTag;
+
+                       if ( isTag ) {
+                               part = part.toLowerCase();
+                       }
+
+                       for ( var i = 0, l = checkSet.length, elem; i < l; i++ ) {
+                               if ( (elem = checkSet[i]) ) {
+                                       while ( (elem = elem.previousSibling) && elem.nodeType !== 1 ) {}
+
+                                       checkSet[i] = isPartStrNotTag || elem && elem.nodeName.toLowerCase() === part ?
+                                               elem || false :
+                                               elem === part;
+                               }
+                       }
+
+                       if ( isPartStrNotTag ) {
+                               Sizzle.filter( part, checkSet, true );
+                       }
+               },
+
+               ">": function( checkSet, part ) {
+                       var elem,
+                               isPartStr = typeof part === "string",
+                               i = 0,
+                               l = checkSet.length;
+
+                       if ( isPartStr && !rNonWord.test( part ) ) {
+                               part = part.toLowerCase();
+
+                               for ( ; i < l; i++ ) {
+                                       elem = checkSet[i];
+
+                                       if ( elem ) {
+                                               var parent = elem.parentNode;
+                                               checkSet[i] = parent.nodeName.toLowerCase() === part ? parent : false;
+                                       }
+                               }
+
+                       } else {
+                               for ( ; i < l; i++ ) {
+                                       elem = checkSet[i];
+
+                                       if ( elem ) {
+                                               checkSet[i] = isPartStr ?
+                                                       elem.parentNode :
+                                                       elem.parentNode === part;
+                                       }
+                               }
+
+                               if ( isPartStr ) {
+                                       Sizzle.filter( part, checkSet, true );
+                               }
+                       }
+               },
+
+               "": function(checkSet, part, isXML){
+                       var nodeCheck,
+                               doneName = done++,
+                               checkFn = dirCheck;
+
+                       if ( typeof part === "string" && !rNonWord.test( part ) ) {
+                               part = part.toLowerCase();
+                               nodeCheck = part;
+                               checkFn = dirNodeCheck;
+                       }
+
+                       checkFn( "parentNode", part, doneName, checkSet, nodeCheck, isXML );
+               },
+
+               "~": function( checkSet, part, isXML ) {
+                       var nodeCheck,
+                               doneName = done++,
+                               checkFn = dirCheck;
+
+                       if ( typeof part === "string" && !rNonWord.test( part ) ) {
+                               part = part.toLowerCase();
+                               nodeCheck = part;
+                               checkFn = dirNodeCheck;
+                       }
+
+                       checkFn( "previousSibling", part, doneName, checkSet, nodeCheck, isXML );
+               }
+       },
+
+       find: {
+               ID: function( match, context, isXML ) {
+                       if ( typeof context.getElementById !== "undefined" && !isXML ) {
+                               var m = context.getElementById(match[1]);
+                               // Check parentNode to catch when Blackberry 4.6 returns
+                               // nodes that are no longer in the document #6963
+                               return m && m.parentNode ? [m] : [];
+                       }
+               },
+
+               NAME: function( match, context ) {
+                       if ( typeof context.getElementsByName !== "undefined" ) {
+                               var ret = [],
+                                       results = context.getElementsByName( match[1] );
+
+                               for ( var i = 0, l = results.length; i < l; i++ ) {
+                                       if ( results[i].getAttribute("name") === match[1] ) {
+                                               ret.push( results[i] );
+                                       }
+                               }
+
+                               return ret.length === 0 ? null : ret;
+                       }
+               },
+
+               TAG: function( match, context ) {
+                       if ( typeof context.getElementsByTagName !== "undefined" ) {
+                               return context.getElementsByTagName( match[1] );
+                       }
+               }
+       },
+       preFilter: {
+               CLASS: function( match, curLoop, inplace, result, not, isXML ) {
+                       match = " " + match[1].replace( rBackslash, "" ) + " ";
+
+                       if ( isXML ) {
+                               return match;
+                       }
+
+                       for ( var i = 0, elem; (elem = curLoop[i]) != null; i++ ) {
+                               if ( elem ) {
+                                       if ( not ^ (elem.className && (" " + elem.className + " ").replace(/[\t\n\r]/g, " ").indexOf(match) >= 0) ) {
+                                               if ( !inplace ) {
+                                                       result.push( elem );
+                                               }
+
+                                       } else if ( inplace ) {
+                                               curLoop[i] = false;
+                                       }
+                               }
+                       }
+
+                       return false;
+               },
+
+               ID: function( match ) {
+                       return match[1].replace( rBackslash, "" );
+               },
+
+               TAG: function( match, curLoop ) {
+                       return match[1].replace( rBackslash, "" ).toLowerCase();
+               },
+
+               CHILD: function( match ) {
+                       if ( match[1] === "nth" ) {
+                               if ( !match[2] ) {
+                                       Sizzle.error( match[0] );
+                               }
+
+                               match[2] = match[2].replace(/^\+|\s*/g, '');
+
+                               // parse equations like 'even', 'odd', '5', '2n', '3n+2', '4n-1', '-n+6'
+                               var test = /(-?)(\d*)(?:n([+\-]?\d*))?/.exec(
+                                       match[2] === "even" && "2n" || match[2] === "odd" && "2n+1" ||
+                                       !/\D/.test( match[2] ) && "0n+" + match[2] || match[2]);
+
+                               // calculate the numbers (first)n+(last) including if they are negative
+                               match[2] = (test[1] + (test[2] || 1)) - 0;
+                               match[3] = test[3] - 0;
+                       }
+                       else if ( match[2] ) {
+                               Sizzle.error( match[0] );
+                       }
+
+                       // TODO: Move to normal caching system
+                       match[0] = done++;
+
+                       return match;
+               },
+
+               ATTR: function( match, curLoop, inplace, result, not, isXML ) {
+                       var name = match[1] = match[1].replace( rBackslash, "" );
+                       
+                       if ( !isXML && Expr.attrMap[name] ) {
+                               match[1] = Expr.attrMap[name];
+                       }
+
+                       // Handle if an un-quoted value was used
+                       match[4] = ( match[4] || match[5] || "" ).replace( rBackslash, "" );
+
+                       if ( match[2] === "~=" ) {
+                               match[4] = " " + match[4] + " ";
+                       }
+
+                       return match;
+               },
+
+               PSEUDO: function( match, curLoop, inplace, result, not ) {
+                       if ( match[1] === "not" ) {
+                               // If we're dealing with a complex expression, or a simple one
+                               if ( ( chunker.exec(match[3]) || "" ).length > 1 || /^\w/.test(match[3]) ) {
+                                       match[3] = Sizzle(match[3], null, null, curLoop);
+
+                               } else {
+                                       var ret = Sizzle.filter(match[3], curLoop, inplace, true ^ not);
+
+                                       if ( !inplace ) {
+                                               result.push.apply( result, ret );
+                                       }
+
+                                       return false;
+                               }
+
+                       } else if ( Expr.match.POS.test( match[0] ) || Expr.match.CHILD.test( match[0] ) ) {
+                               return true;
+                       }
+                       
+                       return match;
+               },
+
+               POS: function( match ) {
+                       match.unshift( true );
+
+                       return match;
+               }
+       },
+       
+       filters: {
+               enabled: function( elem ) {
+                       return elem.disabled === false && elem.type !== "hidden";
+               },
+
+               disabled: function( elem ) {
+                       return elem.disabled === true;
+               },
+
+               checked: function( elem ) {
+                       return elem.checked === true;
+               },
+               
+               selected: function( elem ) {
+                       // Accessing this property makes selected-by-default
+                       // options in Safari work properly
+                       if ( elem.parentNode ) {
+                               elem.parentNode.selectedIndex;
+                       }
+                       
+                       return elem.selected === true;
+               },
+
+               parent: function( elem ) {
+                       return !!elem.firstChild;
+               },
+
+               empty: function( elem ) {
+                       return !elem.firstChild;
+               },
+
+               has: function( elem, i, match ) {
+                       return !!Sizzle( match[3], elem ).length;
+               },
+
+               header: function( elem ) {
+                       return (/h\d/i).test( elem.nodeName );
+               },
+
+               text: function( elem ) {
+                       var attr = elem.getAttribute( "type" ), type = elem.type;
+                       // IE6 and 7 will map elem.type to 'text' for new HTML5 types (search, etc) 
+                       // use getAttribute instead to test this case
+                       return elem.nodeName.toLowerCase() === "input" && "text" === type && ( attr === type || attr === null );
+               },
+
+               radio: function( elem ) {
+                       return elem.nodeName.toLowerCase() === "input" && "radio" === elem.type;
+               },
+
+               checkbox: function( elem ) {
+                       return elem.nodeName.toLowerCase() === "input" && "checkbox" === elem.type;
+               },
+
+               file: function( elem ) {
+                       return elem.nodeName.toLowerCase() === "input" && "file" === elem.type;
+               },
+
+               password: function( elem ) {
+                       return elem.nodeName.toLowerCase() === "input" && "password" === elem.type;
+               },
+
+               submit: function( elem ) {
+                       var name = elem.nodeName.toLowerCase();
+                       return (name === "input" || name === "button") && "submit" === elem.type;
+               },
+
+               image: function( elem ) {
+                       return elem.nodeName.toLowerCase() === "input" && "image" === elem.type;
+               },
+
+               reset: function( elem ) {
+                       var name = elem.nodeName.toLowerCase();
+                       return (name === "input" || name === "button") && "reset" === elem.type;
+               },
+
+               button: function( elem ) {
+                       var name = elem.nodeName.toLowerCase();
+                       return name === "input" && "button" === elem.type || name === "button";
+               },
+
+               input: function( elem ) {
+                       return (/input|select|textarea|button/i).test( elem.nodeName );
+               },
+
+               focus: function( elem ) {
+                       return elem === elem.ownerDocument.activeElement;
+               }
+       },
+       setFilters: {
+               first: function( elem, i ) {
+                       return i === 0;
+               },
+
+               last: function( elem, i, match, array ) {
+                       return i === array.length - 1;
+               },
+
+               even: function( elem, i ) {
+                       return i % 2 === 0;
+               },
+
+               odd: function( elem, i ) {
+                       return i % 2 === 1;
+               },
+
+               lt: function( elem, i, match ) {
+                       return i < match[3] - 0;
+               },
+
+               gt: function( elem, i, match ) {
+                       return i > match[3] - 0;
+               },
+
+               nth: function( elem, i, match ) {
+                       return match[3] - 0 === i;
+               },
+
+               eq: function( elem, i, match ) {
+                       return match[3] - 0 === i;
+               }
+       },
+       filter: {
+               PSEUDO: function( elem, match, i, array ) {
+                       var name = match[1],
+                               filter = Expr.filters[ name ];
+
+                       if ( filter ) {
+                               return filter( elem, i, match, array );
+
+                       } else if ( name === "contains" ) {
+                               return (elem.textContent || elem.innerText || getText([ elem ]) || "").indexOf(match[3]) >= 0;
+
+                       } else if ( name === "not" ) {
+                               var not = match[3];
+
+                               for ( var j = 0, l = not.length; j < l; j++ ) {
+                                       if ( not[j] === elem ) {
+                                               return false;
+                                       }
+                               }
+
+                               return true;
+
+                       } else {
+                               Sizzle.error( name );
+                       }
+               },
+
+               CHILD: function( elem, match ) {
+                       var first, last,
+                               doneName, parent, cache,
+                               count, diff,
+                               type = match[1],
+                               node = elem;
+
+                       switch ( type ) {
+                               case "only":
+                               case "first":
+                                       while ( (node = node.previousSibling) )  {
+                                               if ( node.nodeType === 1 ) { 
+                                                       return false; 
+                                               }
+                                       }
+
+                                       if ( type === "first" ) { 
+                                               return true; 
+                                       }
+
+                                       node = elem;
+
+                               case "last":
+                                       while ( (node = node.nextSibling) )      {
+                                               if ( node.nodeType === 1 ) { 
+                                                       return false; 
+                                               }
+                                       }
+
+                                       return true;
+
+                               case "nth":
+                                       first = match[2];
+                                       last = match[3];
+
+                                       if ( first === 1 && last === 0 ) {
+                                               return true;
+                                       }
+                                       
+                                       doneName = match[0];
+                                       parent = elem.parentNode;
+       
+                                       if ( parent && (parent[ expando ] !== doneName || !elem.nodeIndex) ) {
+                                               count = 0;
+                                               
+                                               for ( node = parent.firstChild; node; node = node.nextSibling ) {
+                                                       if ( node.nodeType === 1 ) {
+                                                               node.nodeIndex = ++count;
+                                                       }
+                                               } 
+
+                                               parent[ expando ] = doneName;
+                                       }
+                                       
+                                       diff = elem.nodeIndex - last;
+
+                                       if ( first === 0 ) {
+                                               return diff === 0;
+
+                                       } else {
+                                               return ( diff % first === 0 && diff / first >= 0 );
+                                       }
+                       }
+               },
+
+               ID: function( elem, match ) {
+                       return elem.nodeType === 1 && elem.getAttribute("id") === match;
+               },
+
+               TAG: function( elem, match ) {
+                       return (match === "*" && elem.nodeType === 1) || !!elem.nodeName && elem.nodeName.toLowerCase() === match;
+               },
+               
+               CLASS: function( elem, match ) {
+                       return (" " + (elem.className || elem.getAttribute("class")) + " ")
+                               .indexOf( match ) > -1;
+               },
+
+               ATTR: function( elem, match ) {
+                       var name = match[1],
+                               result = Sizzle.attr ?
+                                       Sizzle.attr( elem, name ) :
+                                       Expr.attrHandle[ name ] ?
+                                       Expr.attrHandle[ name ]( elem ) :
+                                       elem[ name ] != null ?
+                                               elem[ name ] :
+                                               elem.getAttribute( name ),
+                               value = result + "",
+                               type = match[2],
+                               check = match[4];
+
+                       return result == null ?
+                               type === "!=" :
+                               !type && Sizzle.attr ?
+                               result != null :
+                               type === "=" ?
+                               value === check :
+                               type === "*=" ?
+                               value.indexOf(check) >= 0 :
+                               type === "~=" ?
+                               (" " + value + " ").indexOf(check) >= 0 :
+                               !check ?
+                               value && result !== false :
+                               type === "!=" ?
+                               value !== check :
+                               type === "^=" ?
+                               value.indexOf(check) === 0 :
+                               type === "$=" ?
+                               value.substr(value.length - check.length) === check :
+                               type === "|=" ?
+                               value === check || value.substr(0, check.length + 1) === check + "-" :
+                               false;
+               },
+
+               POS: function( elem, match, i, array ) {
+                       var name = match[2],
+                               filter = Expr.setFilters[ name ];
+
+                       if ( filter ) {
+                               return filter( elem, i, match, array );
+                       }
+               }
+       }
+};
+
+var origPOS = Expr.match.POS,
+       fescape = function(all, num){
+               return "\\" + (num - 0 + 1);
+       };
+
+for ( var type in Expr.match ) {
+       Expr.match[ type ] = new RegExp( Expr.match[ type ].source + (/(?![^\[]*\])(?![^\(]*\))/.source) );
+       Expr.leftMatch[ type ] = new RegExp( /(^(?:.|\r|\n)*?)/.source + Expr.match[ type ].source.replace(/\\(\d+)/g, fescape) );
+}
+
+var makeArray = function( array, results ) {
+       array = Array.prototype.slice.call( array, 0 );
+
+       if ( results ) {
+               results.push.apply( results, array );
+               return results;
+       }
+       
+       return array;
+};
+
+// Perform a simple check to determine if the browser is capable of
+// converting a NodeList to an array using builtin methods.
+// Also verifies that the returned array holds DOM nodes
+// (which is not the case in the Blackberry browser)
+try {
+       Array.prototype.slice.call( document.documentElement.childNodes, 0 )[0].nodeType;
+
+// Provide a fallback method if it does not work
+} catch( e ) {
+       makeArray = function( array, results ) {
+               var i = 0,
+                       ret = results || [];
+
+               if ( toString.call(array) === "[object Array]" ) {
+                       Array.prototype.push.apply( ret, array );
+
+               } else {
+                       if ( typeof array.length === "number" ) {
+                               for ( var l = array.length; i < l; i++ ) {
+                                       ret.push( array[i] );
+                               }
+
+                       } else {
+                               for ( ; array[i]; i++ ) {
+                                       ret.push( array[i] );
+                               }
+                       }
+               }
+
+               return ret;
+       };
+}
+
+var sortOrder, siblingCheck;
+
+if ( document.documentElement.compareDocumentPosition ) {
+       sortOrder = function( a, b ) {
+               if ( a === b ) {
+                       hasDuplicate = true;
+                       return 0;
+               }
+
+               if ( !a.compareDocumentPosition || !b.compareDocumentPosition ) {
+                       return a.compareDocumentPosition ? -1 : 1;
+               }
+
+               return a.compareDocumentPosition(b) & 4 ? -1 : 1;
+       };
+
+} else {
+       sortOrder = function( a, b ) {
+               // The nodes are identical, we can exit early
+               if ( a === b ) {
+                       hasDuplicate = true;
+                       return 0;
+
+               // Fallback to using sourceIndex (in IE) if it's available on both nodes
+               } else if ( a.sourceIndex && b.sourceIndex ) {
+                       return a.sourceIndex - b.sourceIndex;
+               }
+
+               var al, bl,
+                       ap = [],
+                       bp = [],
+                       aup = a.parentNode,
+                       bup = b.parentNode,
+                       cur = aup;
+
+               // If the nodes are siblings (or identical) we can do a quick check
+               if ( aup === bup ) {
+                       return siblingCheck( a, b );
+
+               // If no parents were found then the nodes are disconnected
+               } else if ( !aup ) {
+                       return -1;
+
+               } else if ( !bup ) {
+                       return 1;
+               }
+
+               // Otherwise they're somewhere else in the tree so we need
+               // to build up a full list of the parentNodes for comparison
+               while ( cur ) {
+                       ap.unshift( cur );
+                       cur = cur.parentNode;
+               }
+
+               cur = bup;
+
+               while ( cur ) {
+                       bp.unshift( cur );
+                       cur = cur.parentNode;
+               }
+
+               al = ap.length;
+               bl = bp.length;
+
+               // Start walking down the tree looking for a discrepancy
+               for ( var i = 0; i < al && i < bl; i++ ) {
+                       if ( ap[i] !== bp[i] ) {
+                               return siblingCheck( ap[i], bp[i] );
+                       }
+               }
+
+               // We ended someplace up the tree so do a sibling check
+               return i === al ?
+                       siblingCheck( a, bp[i], -1 ) :
+                       siblingCheck( ap[i], b, 1 );
+       };
+
+       siblingCheck = function( a, b, ret ) {
+               if ( a === b ) {
+                       return ret;
+               }
+
+               var cur = a.nextSibling;
+
+               while ( cur ) {
+                       if ( cur === b ) {
+                               return -1;
+                       }
+
+                       cur = cur.nextSibling;
+               }
+
+               return 1;
+       };
+}
+
+// Check to see if the browser returns elements by name when
+// querying by getElementById (and provide a workaround)
+(function(){
+       // We're going to inject a fake input element with a specified name
+       var form = document.createElement("div"),
+               id = "script" + (new Date()).getTime(),
+               root = document.documentElement;
+
+       form.innerHTML = "<a name='" + id + "'/>";
+
+       // Inject it into the root element, check its status, and remove it quickly
+       root.insertBefore( form, root.firstChild );
+
+       // The workaround has to do additional checks after a getElementById
+       // Which slows things down for other browsers (hence the branching)
+       if ( document.getElementById( id ) ) {
+               Expr.find.ID = function( match, context, isXML ) {
+                       if ( typeof context.getElementById !== "undefined" && !isXML ) {
+                               var m = context.getElementById(match[1]);
+
+                               return m ?
+                                       m.id === match[1] || typeof m.getAttributeNode !== "undefined" && m.getAttributeNode("id").nodeValue === match[1] ?
+                                               [m] :
+                                               undefined :
+                                       [];
+                       }
+               };
+
+               Expr.filter.ID = function( elem, match ) {
+                       var node = typeof elem.getAttributeNode !== "undefined" && elem.getAttributeNode("id");
+
+                       return elem.nodeType === 1 && node && node.nodeValue === match;
+               };
+       }
+
+       root.removeChild( form );
+
+       // release memory in IE
+       root = form = null;
+})();
+
+(function(){
+       // Check to see if the browser returns only elements
+       // when doing getElementsByTagName("*")
+
+       // Create a fake element
+       var div = document.createElement("div");
+       div.appendChild( document.createComment("") );
+
+       // Make sure no comments are found
+       if ( div.getElementsByTagName("*").length > 0 ) {
+               Expr.find.TAG = function( match, context ) {
+                       var results = context.getElementsByTagName( match[1] );
+
+                       // Filter out possible comments
+                       if ( match[1] === "*" ) {
+                               var tmp = [];
+
+                               for ( var i = 0; results[i]; i++ ) {
+                                       if ( results[i].nodeType === 1 ) {
+                                               tmp.push( results[i] );
+                                       }
+                               }
+
+                               results = tmp;
+                       }
+
+                       return results;
+               };
+       }
+
+       // Check to see if an attribute returns normalized href attributes
+       div.innerHTML = "<a href='#'></a>";
+
+       if ( div.firstChild && typeof div.firstChild.getAttribute !== "undefined" &&
+                       div.firstChild.getAttribute("href") !== "#" ) {
+
+               Expr.attrHandle.href = function( elem ) {
+                       return elem.getAttribute( "href", 2 );
+               };
+       }
+
+       // release memory in IE
+       div = null;
+})();
+
+if ( document.querySelectorAll ) {
+       (function(){
+               var oldSizzle = Sizzle,
+                       div = document.createElement("div"),
+                       id = "__sizzle__";
+
+               div.innerHTML = "<p class='TEST'></p>";
+
+               // Safari can't handle uppercase or unicode characters when
+               // in quirks mode.
+               if ( div.querySelectorAll && div.querySelectorAll(".TEST").length === 0 ) {
+                       return;
+               }
+       
+               Sizzle = function( query, context, extra, seed ) {
+                       context = context || document;
+
+                       // Only use querySelectorAll on non-XML documents
+                       // (ID selectors don't work in non-HTML documents)
+                       if ( !seed && !Sizzle.isXML(context) ) {
+                               // See if we find a selector to speed up
+                               var match = /^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec( query );
+                               
+                               if ( match && (context.nodeType === 1 || context.nodeType === 9) ) {
+                                       // Speed-up: Sizzle("TAG")
+                                       if ( match[1] ) {
+                                               return makeArray( context.getElementsByTagName( query ), extra );
+                                       
+                                       // Speed-up: Sizzle(".CLASS")
+                                       } else if ( match[2] && Expr.find.CLASS && context.getElementsByClassName ) {
+                                               return makeArray( context.getElementsByClassName( match[2] ), extra );
+                                       }
+                               }
+                               
+                               if ( context.nodeType === 9 ) {
+                                       // Speed-up: Sizzle("body")
+                                       // The body element only exists once, optimize finding it
+                                       if ( query === "body" && context.body ) {
+                                               return makeArray( [ context.body ], extra );
+                                               
+                                       // Speed-up: Sizzle("#ID")
+                                       } else if ( match && match[3] ) {
+                                               var elem = context.getElementById( match[3] );
+
+                                               // Check parentNode to catch when Blackberry 4.6 returns
+                                               // nodes that are no longer in the document #6963
+                                               if ( elem && elem.parentNode ) {
+                                                       // Handle the case where IE and Opera return items
+                                                       // by name instead of ID
+                                                       if ( elem.id === match[3] ) {
+                                                               return makeArray( [ elem ], extra );
+                                                       }
+                                                       
+                                               } else {
+                                                       return makeArray( [], extra );
+                                               }
+                                       }
+                                       
+                                       try {
+                                               return makeArray( context.querySelectorAll(query), extra );
+                                       } catch(qsaError) {}
+
+                               // qSA works strangely on Element-rooted queries
+                               // We can work around this by specifying an extra ID on the root
+                               // and working up from there (Thanks to Andrew Dupont for the technique)
+                               // IE 8 doesn't work on object elements
+                               } else if ( context.nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) {
+                                       var oldContext = context,
+                                               old = context.getAttribute( "id" ),
+                                               nid = old || id,
+                                               hasParent = context.parentNode,
+                                               relativeHierarchySelector = /^\s*[+~]/.test( query );
+
+                                       if ( !old ) {
+                                               context.setAttribute( "id", nid );
+                                       } else {
+                                               nid = nid.replace( /'/g, "\\$&" );
+                                       }
+                                       if ( relativeHierarchySelector && hasParent ) {
+                                               context = context.parentNode;
+                                       }
+
+                                       try {
+                                               if ( !relativeHierarchySelector || hasParent ) {
+                                                       return makeArray( context.querySelectorAll( "[id='" + nid + "'] " + query ), extra );
+                                               }
+
+                                       } catch(pseudoError) {
+                                       } finally {
+                                               if ( !old ) {
+                                                       oldContext.removeAttribute( "id" );
+                                               }
+                                       }
+                               }
+                       }
+               
+                       return oldSizzle(query, context, extra, seed);
+               };
+
+               for ( var prop in oldSizzle ) {
+                       Sizzle[ prop ] = oldSizzle[ prop ];
+               }
+
+               // release memory in IE
+               div = null;
+       })();
+}
+
+(function(){
+       var html = document.documentElement,
+               matches = html.matchesSelector || html.mozMatchesSelector || html.webkitMatchesSelector || html.msMatchesSelector;
+
+       if ( matches ) {
+               // Check to see if it's possible to do matchesSelector
+               // on a disconnected node (IE 9 fails this)
+               var disconnectedMatch = !matches.call( document.createElement( "div" ), "div" ),
+                       pseudoWorks = false;
+
+               try {
+                       // This should fail with an exception
+                       // Gecko does not error, returns false instead
+                       matches.call( document.documentElement, "[test!='']:sizzle" );
+       
+               } catch( pseudoError ) {
+                       pseudoWorks = true;
+               }
+
+               Sizzle.matchesSelector = function( node, expr ) {
+                       // Make sure that attribute selectors are quoted
+                       expr = expr.replace(/\=\s*([^'"\]]*)\s*\]/g, "='$1']");
+
+                       if ( !Sizzle.isXML( node ) ) {
+                               try { 
+                                       if ( pseudoWorks || !Expr.match.PSEUDO.test( expr ) && !/!=/.test( expr ) ) {
+                                               var ret = matches.call( node, expr );
+
+                                               // IE 9's matchesSelector returns false on disconnected nodes
+                                               if ( ret || !disconnectedMatch ||
+                                                               // As well, disconnected nodes are said to be in a document
+                                                               // fragment in IE 9, so check for that
+                                                               node.document && node.document.nodeType !== 11 ) {
+                                                       return ret;
+                                               }
+                                       }
+                               } catch(e) {}
+                       }
+
+                       return Sizzle(expr, null, null, [node]).length > 0;
+               };
+       }
+})();
+
+(function(){
+       var div = document.createElement("div");
+
+       div.innerHTML = "<div class='test e'></div><div class='test'></div>";
+
+       // Opera can't find a second classname (in 9.6)
+       // Also, make sure that getElementsByClassName actually exists
+       if ( !div.getElementsByClassName || div.getElementsByClassName("e").length === 0 ) {
+               return;
+       }
+
+       // Safari caches class attributes, doesn't catch changes (in 3.2)
+       div.lastChild.className = "e";
+
+       if ( div.getElementsByClassName("e").length === 1 ) {
+               return;
+       }
+       
+       Expr.order.splice(1, 0, "CLASS");
+       Expr.find.CLASS = function( match, context, isXML ) {
+               if ( typeof context.getElementsByClassName !== "undefined" && !isXML ) {
+                       return context.getElementsByClassName(match[1]);
+               }
+       };
+
+       // release memory in IE
+       div = null;
+})();
+
+function dirNodeCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) {
+       for ( var i = 0, l = checkSet.length; i < l; i++ ) {
+               var elem = checkSet[i];
+
+               if ( elem ) {
+                       var match = false;
+
+                       elem = elem[dir];
+
+                       while ( elem ) {
+                               if ( elem[ expando ] === doneName ) {
+                                       match = checkSet[elem.sizset];
+                                       break;
+                               }
+
+                               if ( elem.nodeType === 1 && !isXML ){
+                                       elem[ expando ] = doneName;
+                                       elem.sizset = i;
+                               }
+
+                               if ( elem.nodeName.toLowerCase() === cur ) {
+                                       match = elem;
+                                       break;
+                               }
+
+                               elem = elem[dir];
+                       }
+
+                       checkSet[i] = match;
+               }
+       }
+}
+
+function dirCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) {
+       for ( var i = 0, l = checkSet.length; i < l; i++ ) {
+               var elem = checkSet[i];
+
+               if ( elem ) {
+                       var match = false;
+                       
+                       elem = elem[dir];
+
+                       while ( elem ) {
+                               if ( elem[ expando ] === doneName ) {
+                                       match = checkSet[elem.sizset];
+                                       break;
+                               }
+
+                               if ( elem.nodeType === 1 ) {
+                                       if ( !isXML ) {
+                                               elem[ expando ] = doneName;
+                                               elem.sizset = i;
+                                       }
+
+                                       if ( typeof cur !== "string" ) {
+                                               if ( elem === cur ) {
+                                                       match = true;
+                                                       break;
+                                               }
+
+                                       } else if ( Sizzle.filter( cur, [elem] ).length > 0 ) {
+                                               match = elem;
+                                               break;
+                                       }
+                               }
+
+                               elem = elem[dir];
+                       }
+
+                       checkSet[i] = match;
+               }
+       }
+}
+
+if ( document.documentElement.contains ) {
+       Sizzle.contains = function( a, b ) {
+               return a !== b && (a.contains ? a.contains(b) : true);
+       };
+
+} else if ( document.documentElement.compareDocumentPosition ) {
+       Sizzle.contains = function( a, b ) {
+               return !!(a.compareDocumentPosition(b) & 16);
+       };
+
+} else {
+       Sizzle.contains = function() {
+               return false;
+       };
+}
+
+Sizzle.isXML = function( elem ) {
+       // documentElement is verified for cases where it doesn't yet exist
+       // (such as loading iframes in IE - #4833) 
+       var documentElement = (elem ? elem.ownerDocument || elem : 0).documentElement;
+
+       return documentElement ? documentElement.nodeName !== "HTML" : false;
+};
+
+var posProcess = function( selector, context, seed ) {
+       var match,
+               tmpSet = [],
+               later = "",
+               root = context.nodeType ? [context] : context;
+
+       // Position selectors must be done after the filter
+       // And so must :not(positional) so we move all PSEUDOs to the end
+       while ( (match = Expr.match.PSEUDO.exec( selector )) ) {
+               later += match[0];
+               selector = selector.replace( Expr.match.PSEUDO, "" );
+       }
+
+       selector = Expr.relative[selector] ? selector + "*" : selector;
+
+       for ( var i = 0, l = root.length; i < l; i++ ) {
+               Sizzle( selector, root[i], tmpSet, seed );
+       }
+
+       return Sizzle.filter( later, tmpSet );
+};
+
+// EXPOSE
+// Override sizzle attribute retrieval
+Sizzle.attr = jQuery.attr;
+Sizzle.selectors.attrMap = {};
+jQuery.find = Sizzle;
+jQuery.expr = Sizzle.selectors;
+jQuery.expr[":"] = jQuery.expr.filters;
+jQuery.unique = Sizzle.uniqueSort;
+jQuery.text = Sizzle.getText;
+jQuery.isXMLDoc = Sizzle.isXML;
+jQuery.contains = Sizzle.contains;
+
+
+})();
+
+
+var runtil = /Until$/,
+       rparentsprev = /^(?:parents|prevUntil|prevAll)/,
+       // Note: This RegExp should be improved, or likely pulled from Sizzle
+       rmultiselector = /,/,
+       isSimple = /^.[^:#\[\.,]*$/,
+       slice = Array.prototype.slice,
+       POS = jQuery.expr.match.POS,
+       // methods guaranteed to produce a unique set when starting from a unique set
+       guaranteedUnique = {
+               children: true,
+               contents: true,
+               next: true,
+               prev: true
+       };
+
+jQuery.fn.extend({
+       find: function( selector ) {
+               var self = this,
+                       i, l;
+
+               if ( typeof selector !== "string" ) {
+                       return jQuery( selector ).filter(function() {
+                               for ( i = 0, l = self.length; i < l; i++ ) {
+                                       if ( jQuery.contains( self[ i ], this ) ) {
+                                               return true;
+                                       }
+                               }
+                       });
+               }
+
+               var ret = this.pushStack( "", "find", selector ),
+                       length, n, r;
+
+               for ( i = 0, l = this.length; i < l; i++ ) {
+                       length = ret.length;
+                       jQuery.find( selector, this[i], ret );
+
+                       if ( i > 0 ) {
+                               // Make sure that the results are unique
+                               for ( n = length; n < ret.length; n++ ) {
+                                       for ( r = 0; r < length; r++ ) {
+                                               if ( ret[r] === ret[n] ) {
+                                                       ret.splice(n--, 1);
+                                                       break;
+                                               }
+                                       }
+                               }
+                       }
+               }
+
+               return ret;
+       },
+
+       has: function( target ) {
+               var targets = jQuery( target );
+               return this.filter(function() {
+                       for ( var i = 0, l = targets.length; i < l; i++ ) {
+                               if ( jQuery.contains( this, targets[i] ) ) {
+                                       return true;
+                               }
+                       }
+               });
+       },
+
+       not: function( selector ) {
+               return this.pushStack( winnow(this, selector, false), "not", selector);
+       },
+
+       filter: function( selector ) {
+               return this.pushStack( winnow(this, selector, true), "filter", selector );
+       },
+
+       is: function( selector ) {
+               return !!selector && ( 
+                       typeof selector === "string" ?
+                               // If this is a positional selector, check membership in the returned set
+                               // so $("p:first").is("p:last") won't return true for a doc with two "p".
+                               POS.test( selector ) ? 
+                                       jQuery( selector, this.context ).index( this[0] ) >= 0 :
+                                       jQuery.filter( selector, this ).length > 0 :
+                               this.filter( selector ).length > 0 );
+       },
+
+       closest: function( selectors, context ) {
+               var ret = [], i, l, cur = this[0];
+               
+               // Array (deprecated as of jQuery 1.7)
+               if ( jQuery.isArray( selectors ) ) {
+                       var level = 1;
+
+                       while ( cur && cur.ownerDocument && cur !== context ) {
+                               for ( i = 0; i < selectors.length; i++ ) {
+
+                                       if ( jQuery( cur ).is( selectors[ i ] ) ) {
+                                               ret.push({ selector: selectors[ i ], elem: cur, level: level });
+                                       }
+                               }
+
+                               cur = cur.parentNode;
+                               level++;
+                       }
+
+                       return ret;
+               }
+
+               // String
+               var pos = POS.test( selectors ) || typeof selectors !== "string" ?
+                               jQuery( selectors, context || this.context ) :
+                               0;
+
+               for ( i = 0, l = this.length; i < l; i++ ) {
+                       cur = this[i];
+
+                       while ( cur ) {
+                               if ( pos ? pos.index(cur) > -1 : jQuery.find.matchesSelector(cur, selectors) ) {
+                                       ret.push( cur );
+                                       break;
+
+                               } else {
+                                       cur = cur.parentNode;
+                                       if ( !cur || !cur.ownerDocument || cur === context || cur.nodeType === 11 ) {
+                                               break;
+                                       }
+                               }
+                       }
+               }
+
+               ret = ret.length > 1 ? jQuery.unique( ret ) : ret;
+
+               return this.pushStack( ret, "closest", selectors );
+       },
+
+       // Determine the position of an element within
+       // the matched set of elements
+       index: function( elem ) {
+
+               // No argument, return index in parent
+               if ( !elem ) {
+                       return ( this[0] && this[0].parentNode ) ? this.prevAll().length : -1;
+               }
+
+               // index in selector
+               if ( typeof elem === "string" ) {
+                       return jQuery.inArray( this[0], jQuery( elem ) );
+               }
+
+               // Locate the position of the desired element
+               return jQuery.inArray(
+                       // If it receives a jQuery object, the first element is used
+                       elem.jquery ? elem[0] : elem, this );
+       },
+
+       add: function( selector, context ) {
+               var set = typeof selector === "string" ?
+                               jQuery( selector, context ) :
+                               jQuery.makeArray( selector && selector.nodeType ? [ selector ] : selector ),
+                       all = jQuery.merge( this.get(), set );
+
+               return this.pushStack( isDisconnected( set[0] ) || isDisconnected( all[0] ) ?
+                       all :
+                       jQuery.unique( all ) );
+       },
+
+       andSelf: function() {
+               return this.add( this.prevObject );
+       }
+});
+
+// A painfully simple check to see if an element is disconnected
+// from a document (should be improved, where feasible).
+function isDisconnected( node ) {
+       return !node || !node.parentNode || node.parentNode.nodeType === 11;
+}
+
+jQuery.each({
+       parent: function( elem ) {
+               var parent = elem.parentNode;
+               return parent && parent.nodeType !== 11 ? parent : null;
+       },
+       parents: function( elem ) {
+               return jQuery.dir( elem, "parentNode" );
+       },
+       parentsUntil: function( elem, i, until ) {
+               return jQuery.dir( elem, "parentNode", until );
+       },
+       next: function( elem ) {
+               return jQuery.nth( elem, 2, "nextSibling" );
+       },
+       prev: function( elem ) {
+               return jQuery.nth( elem, 2, "previousSibling" );
+       },
+       nextAll: function( elem ) {
+               return jQuery.dir( elem, "nextSibling" );
+       },
+       prevAll: function( elem ) {
+               return jQuery.dir( elem, "previousSibling" );
+       },
+       nextUntil: function( elem, i, until ) {
+               return jQuery.dir( elem, "nextSibling", until );
+       },
+       prevUntil: function( elem, i, until ) {
+               return jQuery.dir( elem, "previousSibling", until );
+       },
+       siblings: function( elem ) {
+               return jQuery.sibling( elem.parentNode.firstChild, elem );
+       },
+       children: function( elem ) {
+               return jQuery.sibling( elem.firstChild );
+       },
+       contents: function( elem ) {
+               return jQuery.nodeName( elem, "iframe" ) ?
+                       elem.contentDocument || elem.contentWindow.document :
+                       jQuery.makeArray( elem.childNodes );
+       }
+}, function( name, fn ) {
+       jQuery.fn[ name ] = function( until, selector ) {
+               var ret = jQuery.map( this, fn, until ),
+                       // The variable 'args' was introduced in
+                       // https://github.com/jquery/jquery/commit/52a0238
+                       // to work around a bug in Chrome 10 (Dev) and should be removed when the bug is fixed.
+                       // http://code.google.com/p/v8/issues/detail?id=1050
+                       args = slice.call(arguments);
+
+               if ( !runtil.test( name ) ) {
+                       selector = until;
+               }
+
+               if ( selector && typeof selector === "string" ) {
+                       ret = jQuery.filter( selector, ret );
+               }
+
+               ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret;
+
+               if ( (this.length > 1 || rmultiselector.test( selector )) && rparentsprev.test( name ) ) {
+                       ret = ret.reverse();
+               }
+
+               return this.pushStack( ret, name, args.join(",") );
+       };
+});
+
+jQuery.extend({
+       filter: function( expr, elems, not ) {
+               if ( not ) {
+                       expr = ":not(" + expr + ")";
+               }
+
+               return elems.length === 1 ?
+                       jQuery.find.matchesSelector(elems[0], expr) ? [ elems[0] ] : [] :
+                       jQuery.find.matches(expr, elems);
+       },
+
+       dir: function( elem, dir, until ) {
+               var matched = [],
+                       cur = elem[ dir ];
+
+               while ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) {
+                       if ( cur.nodeType === 1 ) {
+                               matched.push( cur );
+                       }
+                       cur = cur[dir];
+               }
+               return matched;
+       },
+
+       nth: function( cur, result, dir, elem ) {
+               result = result || 1;
+               var num = 0;
+
+               for ( ; cur; cur = cur[dir] ) {
+                       if ( cur.nodeType === 1 && ++num === result ) {
+                               break;
+                       }
+               }
+
+               return cur;
+       },
+
+       sibling: function( n, elem ) {
+               var r = [];
+
+               for ( ; n; n = n.nextSibling ) {
+                       if ( n.nodeType === 1 && n !== elem ) {
+                               r.push( n );
+                       }
+               }
+
+               return r;
+       }
+});
+
+// Implement the identical functionality for filter and not
+function winnow( elements, qualifier, keep ) {
+
+       // Can't pass null or undefined to indexOf in Firefox 4
+       // Set to 0 to skip string check
+       qualifier = qualifier || 0;
+
+       if ( jQuery.isFunction( qualifier ) ) {
+               return jQuery.grep(elements, function( elem, i ) {
+                       var retVal = !!qualifier.call( elem, i, elem );
+                       return retVal === keep;
+               });
+
+       } else if ( qualifier.nodeType ) {
+               return jQuery.grep(elements, function( elem, i ) {
+                       return (elem === qualifier) === keep;
+               });
+
+       } else if ( typeof qualifier === "string" ) {
+               var filtered = jQuery.grep(elements, function( elem ) {
+                       return elem.nodeType === 1;
+               });
+
+               if ( isSimple.test( qualifier ) ) {
+                       return jQuery.filter(qualifier, filtered, !keep);
+               } else {
+                       qualifier = jQuery.filter( qualifier, filtered );
+               }
+       }
+
+       return jQuery.grep(elements, function( elem, i ) {
+               return (jQuery.inArray( elem, qualifier ) >= 0) === keep;
+       });
+}
+
+
+
+
+function createSafeFragment( document ) {
+       var nodeNames = (
+               "abbr article aside audio canvas datalist details figcaption figure footer " +
+               "header hgroup mark meter nav output progress section summary time video"
+       ).split( " " ),
+       safeFrag = document.createDocumentFragment();
+
+       if ( safeFrag.createElement ) {
+               while ( nodeNames.length ) {
+                       safeFrag.createElement(
+                               nodeNames.pop()
+                       );
+               }
+       }
+       return safeFrag;
+}
+
+var rinlinejQuery = / jQuery\d+="(?:\d+|null)"/g,
+       rleadingWhitespace = /^\s+/,
+       rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,
+       rtagName = /<([\w:]+)/,
+       rtbody = /<tbody/i,
+       rhtml = /<|&#?\w+;/,
+       rnoInnerhtml = /<(?:script|style)/i,
+       rnocache = /<(?:script|object|embed|option|style)/i,
+       // checked="checked" or checked
+       rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i,
+       rscriptType = /\/(java|ecma)script/i,
+       rcleanScript = /^\s*<!(?:\[CDATA\[|\-\-)/,
+       wrapMap = {
+               option: [ 1, "<select multiple='multiple'>", "</select>" ],
+               legend: [ 1, "<fieldset>", "</fieldset>" ],
+               thead: [ 1, "<table>", "</table>" ],
+               tr: [ 2, "<table><tbody>", "</tbody></table>" ],
+               td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ],
+               col: [ 2, "<table><tbody></tbody><colgroup>", "</colgroup></table>" ],
+               area: [ 1, "<map>", "</map>" ],
+               _default: [ 0, "", "" ]
+       },
+       safeFragment = createSafeFragment( document );
+
+wrapMap.optgroup = wrapMap.option;
+wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;
+wrapMap.th = wrapMap.td;
+
+// IE can't serialize <link> and <script> tags normally
+if ( !jQuery.support.htmlSerialize ) {
+       wrapMap._default = [ 1, "div<div>", "</div>" ];
+}
+
+jQuery.fn.extend({
+       text: function( text ) {
+               if ( jQuery.isFunction(text) ) {
+                       return this.each(function(i) {
+                               var self = jQuery( this );
+
+                               self.text( text.call(this, i, self.text()) );
+                       });
+               }
+
+               if ( typeof text !== "object" && text !== undefined ) {
+                       return this.empty().append( (this[0] && this[0].ownerDocument || document).createTextNode( text ) );
+               }
+
+               return jQuery.text( this );
+       },
+
+       wrapAll: function( html ) {
+               if ( jQuery.isFunction( html ) ) {
+                       return this.each(function(i) {
+                               jQuery(this).wrapAll( html.call(this, i) );
+                       });
+               }
+
+               if ( this[0] ) {
+                       // The elements to wrap the target around
+                       var wrap = jQuery( html, this[0].ownerDocument ).eq(0).clone(true);
+
+                       if ( this[0].parentNode ) {
+                               wrap.insertBefore( this[0] );
+                       }
+
+                       wrap.map(function() {
+                               var elem = this;
+
+                               while ( elem.firstChild && elem.firstChild.nodeType === 1 ) {
+                                       elem = elem.firstChild;
+                               }
+
+                               return elem;
+                       }).append( this );
+               }
+
+               return this;
+       },
+
+       wrapInner: function( html ) {
+               if ( jQuery.isFunction( html ) ) {
+                       return this.each(function(i) {
+                               jQuery(this).wrapInner( html.call(this, i) );
+                       });
+               }
+
+               return this.each(function() {
+                       var self = jQuery( this ),
+                               contents = self.contents();
+
+                       if ( contents.length ) {
+                               contents.wrapAll( html );
+
+                       } else {
+                               self.append( html );
+                       }
+               });
+       },
+
+       wrap: function( html ) {
+               return this.each(function() {
+                       jQuery( this ).wrapAll( html );
+               });
+       },
+
+       unwrap: function() {
+               return this.parent().each(function() {
+                       if ( !jQuery.nodeName( this, "body" ) ) {
+                               jQuery( this ).replaceWith( this.childNodes );
+                       }
+               }).end();
+       },
+
+       append: function() {
+               return this.domManip(arguments, true, function( elem ) {
+                       if ( this.nodeType === 1 ) {
+                               this.appendChild( elem );
+                       }
+               });
+       },
+
+       prepend: function() {
+               return this.domManip(arguments, true, function( elem ) {
+                       if ( this.nodeType === 1 ) {
+                               this.insertBefore( elem, this.firstChild );
+                       }
+               });
+       },
+
+       before: function() {
+               if ( this[0] && this[0].parentNode ) {
+                       return this.domManip(arguments, false, function( elem ) {
+                               this.parentNode.insertBefore( elem, this );
+                       });
+               } else if ( arguments.length ) {
+                       var set = jQuery(arguments[0]);
+                       set.push.apply( set, this.toArray() );
+                       return this.pushStack( set, "before", arguments );
+               }
+       },
+
+       after: function() {
+               if ( this[0] && this[0].parentNode ) {
+                       return this.domManip(arguments, false, function( elem ) {
+                               this.parentNode.insertBefore( elem, this.nextSibling );
+                       });
+               } else if ( arguments.length ) {
+                       var set = this.pushStack( this, "after", arguments );
+                       set.push.apply( set, jQuery(arguments[0]).toArray() );
+                       return set;
+               }
+       },
+
+       // keepData is for internal use only--do not document
+       remove: function( selector, keepData ) {
+               for ( var i = 0, elem; (elem = this[i]) != null; i++ ) {
+                       if ( !selector || jQuery.filter( selector, [ elem ] ).length ) {
+                               if ( !keepData && elem.nodeType === 1 ) {
+                                       jQuery.cleanData( elem.getElementsByTagName("*") );
+                                       jQuery.cleanData( [ elem ] );
+                               }
+
+                               if ( elem.parentNode ) {
+                                       elem.parentNode.removeChild( elem );
+                               }
+                       }
+               }
+
+               return this;
+       },
+
+       empty: function() {
+               for ( var i = 0, elem; (elem = this[i]) != null; i++ ) {
+                       // Remove element nodes and prevent memory leaks
+                       if ( elem.nodeType === 1 ) {
+                               jQuery.cleanData( elem.getElementsByTagName("*") );
+                       }
+
+                       // Remove any remaining nodes
+                       while ( elem.firstChild ) {
+                               elem.removeChild( elem.firstChild );
+                       }
+               }
+
+               return this;
+       },
+
+       clone: function( dataAndEvents, deepDataAndEvents ) {
+               dataAndEvents = dataAndEvents == null ? false : dataAndEvents;
+               deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;
+
+               return this.map( function () {
+                       return jQuery.clone( this, dataAndEvents, deepDataAndEvents );
+               });
+       },
+
+       html: function( value ) {
+               if ( value === undefined ) {
+                       return this[0] && this[0].nodeType === 1 ?
+                               this[0].innerHTML.replace(rinlinejQuery, "") :
+                               null;
+
+               // See if we can take a shortcut and just use innerHTML
+               } else if ( typeof value === "string" && !rnoInnerhtml.test( value ) &&
+                       (jQuery.support.leadingWhitespace || !rleadingWhitespace.test( value )) &&
+                       !wrapMap[ (rtagName.exec( value ) || ["", ""])[1].toLowerCase() ] ) {
+
+                       value = value.replace(rxhtmlTag, "<$1></$2>");
+
+                       try {
+                               for ( var i = 0, l = this.length; i < l; i++ ) {
+                                       // Remove element nodes and prevent memory leaks
+                                       if ( this[i].nodeType === 1 ) {
+                                               jQuery.cleanData( this[i].getElementsByTagName("*") );
+                                               this[i].innerHTML = value;
+                                       }
+                               }
+
+                       // If using innerHTML throws an exception, use the fallback method
+                       } catch(e) {
+                               this.empty().append( value );
+                       }
+
+               } else if ( jQuery.isFunction( value ) ) {
+                       this.each(function(i){
+                               var self = jQuery( this );
+
+                               self.html( value.call(this, i, self.html()) );
+                       });
+
+               } else {
+                       this.empty().append( value );
+               }
+
+               return this;
+       },
+
+       replaceWith: function( value ) {
+               if ( this[0] && this[0].parentNode ) {
+                       // Make sure that the elements are removed from the DOM before they are inserted
+                       // this can help fix replacing a parent with child elements
+                       if ( jQuery.isFunction( value ) ) {
+                               return this.each(function(i) {
+                                       var self = jQuery(this), old = self.html();
+                                       self.replaceWith( value.call( this, i, old ) );
+                               });
+                       }
+
+                       if ( typeof value !== "string" ) {
+                               value = jQuery( value ).detach();
+                       }
+
+                       return this.each(function() {
+                               var next = this.nextSibling,
+                                       parent = this.parentNode;
+
+                               jQuery( this ).remove();
+
+                               if ( next ) {
+                                       jQuery(next).before( value );
+                               } else {
+                                       jQuery(parent).append( value );
+                               }
+                       });
+               } else {
+                       return this.length ?
+                               this.pushStack( jQuery(jQuery.isFunction(value) ? value() : value), "replaceWith", value ) :
+                               this;
+               }
+       },
+
+       detach: function( selector ) {
+               return this.remove( selector, true );
+       },
+
+       domManip: function( args, table, callback ) {
+               var results, first, fragment, parent,
+                       value = args[0],
+                       scripts = [];
+
+               // We can't cloneNode fragments that contain checked, in WebKit
+               if ( !jQuery.support.checkClone && arguments.length === 3 && typeof value === "string" && rchecked.test( value ) ) {
+                       return this.each(function() {
+                               jQuery(this).domManip( args, table, callback, true );
+                       });
+               }
+
+               if ( jQuery.isFunction(value) ) {
+                       return this.each(function(i) {
+                               var self = jQuery(this);
+                               args[0] = value.call(this, i, table ? self.html() : undefined);
+                               self.domManip( args, table, callback );
+                       });
+               }
+
+               if ( this[0] ) {
+                       parent = value && value.parentNode;
+
+                       // If we're in a fragment, just use that instead of building a new one
+                       if ( jQuery.support.parentNode && parent && parent.nodeType === 11 && parent.childNodes.length === this.length ) {
+                               results = { fragment: parent };
+
+                       } else {
+                               results = jQuery.buildFragment( args, this, scripts );
+                       }
+
+                       fragment = results.fragment;
+
+                       if ( fragment.childNodes.length === 1 ) {
+                               first = fragment = fragment.firstChild;
+                       } else {
+                               first = fragment.firstChild;
+                       }
+
+                       if ( first ) {
+                               table = table && jQuery.nodeName( first, "tr" );
+
+                               for ( var i = 0, l = this.length, lastIndex = l - 1; i < l; i++ ) {
+                                       callback.call(
+                                               table ?
+                                                       root(this[i], first) :
+                                                       this[i],
+                                               // Make sure that we do not leak memory by inadvertently discarding
+                                               // the original fragment (which might have attached data) instead of
+                                               // using it; in addition, use the original fragment object for the last
+                                               // item instead of first because it can end up being emptied incorrectly
+                                               // in certain situations (Bug #8070).
+                                               // Fragments from the fragment cache must always be cloned and never used
+                                               // in place.
+                                               results.cacheable || (l > 1 && i < lastIndex) ?
+                                                       jQuery.clone( fragment, true, true ) :
+                                                       fragment
+                                       );
+                               }
+                       }
+
+                       if ( scripts.length ) {
+                               jQuery.each( scripts, evalScript );
+                       }
+               }
+
+               return this;
+       }
+});
+
+function root( elem, cur ) {
+       return jQuery.nodeName(elem, "table") ?
+               (elem.getElementsByTagName("tbody")[0] ||
+               elem.appendChild(elem.ownerDocument.createElement("tbody"))) :
+               elem;
+}
+
+function cloneCopyEvent( src, dest ) {
+
+       if ( dest.nodeType !== 1 || !jQuery.hasData( src ) ) {
+               return;
+       }
+
+       var type, i, l,
+               oldData = jQuery._data( src ),
+               curData = jQuery._data( dest, oldData ),
+               events = oldData.events;
+
+       if ( events ) {
+               delete curData.handle;
+               curData.events = {};
+
+               for ( type in events ) {
+                       for ( i = 0, l = events[ type ].length; i < l; i++ ) {
+                               jQuery.event.add( dest, type + ( events[ type ][ i ].namespace ? "." : "" ) + events[ type ][ i ].namespace, events[ type ][ i ], events[ type ][ i ].data );
+                       }
+               }
+       }
+
+       // make the cloned public data object a copy from the original
+       if ( curData.data ) {
+               curData.data = jQuery.extend( {}, curData.data );
+       }
+}
+
+function cloneFixAttributes( src, dest ) {
+       var nodeName;
+
+       // We do not need to do anything for non-Elements
+       if ( dest.nodeType !== 1 ) {
+               return;
+       }
+
+       // clearAttributes removes the attributes, which we don't want,
+       // but also removes the attachEvent events, which we *do* want
+       if ( dest.clearAttributes ) {
+               dest.clearAttributes();
+       }
+
+       // mergeAttributes, in contrast, only merges back on the
+       // original attributes, not the events
+       if ( dest.mergeAttributes ) {
+               dest.mergeAttributes( src );
+       }
+
+       nodeName = dest.nodeName.toLowerCase();
+
+       // IE6-8 fail to clone children inside object elements that use
+       // the proprietary classid attribute value (rather than the type
+       // attribute) to identify the type of content to display
+       if ( nodeName === "object" ) {
+               dest.outerHTML = src.outerHTML;
+
+       } else if ( nodeName === "input" && (src.type === "checkbox" || src.type === "radio") ) {
+               // IE6-8 fails to persist the checked state of a cloned checkbox
+               // or radio button. Worse, IE6-7 fail to give the cloned element
+               // a checked appearance if the defaultChecked value isn't also set
+               if ( src.checked ) {
+                       dest.defaultChecked = dest.checked = src.checked;
+               }
+
+               // IE6-7 get confused and end up setting the value of a cloned
+               // checkbox/radio button to an empty string instead of "on"
+               if ( dest.value !== src.value ) {
+                       dest.value = src.value;
+               }
+
+       // IE6-8 fails to return the selected option to the default selected
+       // state when cloning options
+       } else if ( nodeName === "option" ) {
+               dest.selected = src.defaultSelected;
+
+       // IE6-8 fails to set the defaultValue to the correct value when
+       // cloning other types of input fields
+       } else if ( nodeName === "input" || nodeName === "textarea" ) {
+               dest.defaultValue = src.defaultValue;
+       }
+
+       // Event data gets referenced instead of copied if the expando
+       // gets copied too
+       dest.removeAttribute( jQuery.expando );
+}
+
+jQuery.buildFragment = function( args, nodes, scripts ) {
+       var fragment, cacheable, cacheresults, doc;
+
+  // nodes may contain either an explicit document object,
+  // a jQuery collection or context object.
+  // If nodes[0] contains a valid object to assign to doc
+  if ( nodes && nodes[0] ) {
+    doc = nodes[0].ownerDocument || nodes[0];
+  }
+
+  // Ensure that an attr object doesn't incorrectly stand in as a document object
+       // Chrome and Firefox seem to allow this to occur and will throw exception
+       // Fixes #8950
+       if ( !doc.createDocumentFragment ) {
+               doc = document;
+       }
+
+       // Only cache "small" (1/2 KB) HTML strings that are associated with the main document
+       // Cloning options loses the selected state, so don't cache them
+       // IE 6 doesn't like it when you put <object> or <embed> elements in a fragment
+       // Also, WebKit does not clone 'checked' attributes on cloneNode, so don't cache
+       if ( args.length === 1 && typeof args[0] === "string" && args[0].length < 512 && doc === document &&
+               args[0].charAt(0) === "<" && !rnocache.test( args[0] ) && (jQuery.support.checkClone || !rchecked.test( args[0] )) ) {
+
+               cacheable = true;
+
+               cacheresults = jQuery.fragments[ args[0] ];
+               if ( cacheresults && cacheresults !== 1 ) {
+                       fragment = cacheresults;
+               }
+       }
+
+       if ( !fragment ) {
+               fragment = doc.createDocumentFragment();
+               jQuery.clean( args, doc, fragment, scripts );
+       }
+
+       if ( cacheable ) {
+               jQuery.fragments[ args[0] ] = cacheresults ? fragment : 1;
+       }
+
+       return { fragment: fragment, cacheable: cacheable };
+};
+
+jQuery.fragments = {};
+
+jQuery.each({
+       appendTo: "append",
+       prependTo: "prepend",
+       insertBefore: "before",
+       insertAfter: "after",
+       replaceAll: "replaceWith"
+}, function( name, original ) {
+       jQuery.fn[ name ] = function( selector ) {
+               var ret = [],
+                       insert = jQuery( selector ),
+                       parent = this.length === 1 && this[0].parentNode;
+
+               if ( parent && parent.nodeType === 11 && parent.childNodes.length === 1 && insert.length === 1 ) {
+                       insert[ original ]( this[0] );
+                       return this;
+
+               } else {
+                       for ( var i = 0, l = insert.length; i < l; i++ ) {
+                               var elems = (i > 0 ? this.clone(true) : this).get();
+                               jQuery( insert[i] )[ original ]( elems );
+                               ret = ret.concat( elems );
+                       }
+
+                       return this.pushStack( ret, name, insert.selector );
+               }
+       };
+});
+
+function getAll( elem ) {
+       if ( typeof elem.getElementsByTagName !== "undefined" ) {
+               return elem.getElementsByTagName( "*" );
+
+       } else if ( typeof elem.querySelectorAll !== "undefined" ) {
+               return elem.querySelectorAll( "*" );
+
+       } else {
+               return [];
+       }
+}
+
+// Used in clean, fixes the defaultChecked property
+function fixDefaultChecked( elem ) {
+       if ( elem.type === "checkbox" || elem.type === "radio" ) {
+               elem.defaultChecked = elem.checked;
+       }
+}
+// Finds all inputs and passes them to fixDefaultChecked
+function findInputs( elem ) {
+       var nodeName = (elem.nodeName || "").toLowerCase();
+       if ( nodeName === "input" ) {
+               fixDefaultChecked( elem );
+       // Skip scripts, get other children
+       } else if ( nodeName !== "script" && typeof elem.getElementsByTagName !== "undefined" ) {
+               jQuery.grep( elem.getElementsByTagName("input"), fixDefaultChecked );
+       }
+}
+
+jQuery.extend({
+       clone: function( elem, dataAndEvents, deepDataAndEvents ) {
+               var clone = elem.cloneNode(true),
+                               srcElements,
+                               destElements,
+                               i;
+
+               if ( (!jQuery.support.noCloneEvent || !jQuery.support.noCloneChecked) &&
+                               (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem) ) {
+                       // IE copies events bound via attachEvent when using cloneNode.
+                       // Calling detachEvent on the clone will also remove the events
+                       // from the original. In order to get around this, we use some
+                       // proprietary methods to clear the events. Thanks to MooTools
+                       // guys for this hotness.
+
+                       cloneFixAttributes( elem, clone );
+
+                       // Using Sizzle here is crazy slow, so we use getElementsByTagName
+                       // instead
+                       srcElements = getAll( elem );
+                       destElements = getAll( clone );
+
+                       // Weird iteration because IE will replace the length property
+                       // with an element if you are cloning the body and one of the
+                       // elements on the page has a name or id of "length"
+                       for ( i = 0; srcElements[i]; ++i ) {
+                               // Ensure that the destination node is not null; Fixes #9587
+                               if ( destElements[i] ) {
+                                       cloneFixAttributes( srcElements[i], destElements[i] );
+                               }
+                       }
+               }
+
+               // Copy the events from the original to the clone
+               if ( dataAndEvents ) {
+                       cloneCopyEvent( elem, clone );
+
+                       if ( deepDataAndEvents ) {
+                               srcElements = getAll( elem );
+                               destElements = getAll( clone );
+
+                               for ( i = 0; srcElements[i]; ++i ) {
+                                       cloneCopyEvent( srcElements[i], destElements[i] );
+                               }
+                       }
+               }
+
+               srcElements = destElements = null;
+
+               // Return the cloned set
+               return clone;
+       },
+
+       clean: function( elems, context, fragment, scripts ) {
+               var checkScriptType;
+
+               context = context || document;
+
+               // !context.createElement fails in IE with an error but returns typeof 'object'
+               if ( typeof context.createElement === "undefined" ) {
+                       context = context.ownerDocument || context[0] && context[0].ownerDocument || document;
+               }
+
+               var ret = [], j;
+
+               for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) {
+                       if ( typeof elem === "number" ) {
+                               elem += "";
+                       }
+
+                       if ( !elem ) {
+                               continue;
+                       }
+
+                       // Convert html string into DOM nodes
+                       if ( typeof elem === "string" ) {
+                               if ( !rhtml.test( elem ) ) {
+                                       elem = context.createTextNode( elem );
+                               } else {
+                                       // Fix "XHTML"-style tags in all browsers
+                                       elem = elem.replace(rxhtmlTag, "<$1></$2>");
+
+                                       // Trim whitespace, otherwise indexOf won't work as expected
+                                       var tag = (rtagName.exec( elem ) || ["", ""])[1].toLowerCase(),
+                                               wrap = wrapMap[ tag ] || wrapMap._default,
+                                               depth = wrap[0],
+                                               div = context.createElement("div");
+
+                                       // Append wrapper element to unknown element safe doc fragment
+                                       if ( context === document ) {
+                                               // Use the fragment we've already created for this document
+                                               safeFragment.appendChild( div );
+                                       } else {
+                                               // Use a fragment created with the owner document
+                                               createSafeFragment( context ).appendChild( div );
+                                       }
+
+                                       // Go to html and back, then peel off extra wrappers
+                                       div.innerHTML = wrap[1] + elem + wrap[2];
+
+                                       // Move to the right depth
+                                       while ( depth-- ) {
+                                               div = div.lastChild;
+                                       }
+
+                                       // Remove IE's autoinserted <tbody> from table fragments
+                                       if ( !jQuery.support.tbody ) {
+
+                                               // String was a <table>, *may* have spurious <tbody>
+                                               var hasBody = rtbody.test(elem),
+                                                       tbody = tag === "table" && !hasBody ?
+                                                               div.firstChild && div.firstChild.childNodes :
+
+                                                               // String was a bare <thead> or <tfoot>
+                                                               wrap[1] === "<table>" && !hasBody ?
+                                                                       div.childNodes :
+                                                                       [];
+
+                                               for ( j = tbody.length - 1; j >= 0 ; --j ) {
+                                                       if ( jQuery.nodeName( tbody[ j ], "tbody" ) && !tbody[ j ].childNodes.length ) {
+                                                               tbody[ j ].parentNode.removeChild( tbody[ j ] );
+                                                       }
+                                               }
+                                       }
+
+                                       // IE completely kills leading whitespace when innerHTML is used
+                                       if ( !jQuery.support.leadingWhitespace && rleadingWhitespace.test( elem ) ) {
+                                               div.insertBefore( context.createTextNode( rleadingWhitespace.exec(elem)[0] ), div.firstChild );
+                                       }
+
+                                       elem = div.childNodes;
+                               }
+                       }
+
+                       // Resets defaultChecked for any radios and checkboxes
+                       // about to be appended to the DOM in IE 6/7 (#8060)
+                       var len;
+                       if ( !jQuery.support.appendChecked ) {
+                               if ( elem[0] && typeof (len = elem.length) === "number" ) {
+                                       for ( j = 0; j < len; j++ ) {
+                                               findInputs( elem[j] );
+                                       }
+                               } else {
+                                       findInputs( elem );
+                               }
+                       }
+
+                       if ( elem.nodeType ) {
+                               ret.push( elem );
+                       } else {
+                               ret = jQuery.merge( ret, elem );
+                       }
+               }
+
+               if ( fragment ) {
+                       checkScriptType = function( elem ) {
+                               return !elem.type || rscriptType.test( elem.type );
+                       };
+                       for ( i = 0; ret[i]; i++ ) {
+                               if ( scripts && jQuery.nodeName( ret[i], "script" ) && (!ret[i].type || ret[i].type.toLowerCase() === "text/javascript") ) {
+                                       scripts.push( ret[i].parentNode ? ret[i].parentNode.removeChild( ret[i] ) : ret[i] );
+
+                               } else {
+                                       if ( ret[i].nodeType === 1 ) {
+                                               var jsTags = jQuery.grep( ret[i].getElementsByTagName( "script" ), checkScriptType );
+
+                                               ret.splice.apply( ret, [i + 1, 0].concat( jsTags ) );
+                                       }
+                                       fragment.appendChild( ret[i] );
+                               }
+                       }
+               }
+
+               return ret;
+       },
+
+       cleanData: function( elems ) {
+               var data, id, 
+                       cache = jQuery.cache,
+                       special = jQuery.event.special,
+                       deleteExpando = jQuery.support.deleteExpando;
+
+               for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) {
+                       if ( elem.nodeName && jQuery.noData[elem.nodeName.toLowerCase()] ) {
+                               continue;
+                       }
+
+                       id = elem[ jQuery.expando ];
+
+                       if ( id ) {
+                               data = cache[ id ];
+
+                               if ( data && data.events ) {
+                                       for ( var type in data.events ) {
+                                               if ( special[ type ] ) {
+                                                       jQuery.event.remove( elem, type );
+
+                                               // This is a shortcut to avoid jQuery.event.remove's overhead
+                                               } else {
+                                                       jQuery.removeEvent( elem, type, data.handle );
+                                               }
+                                       }
+
+                                       // Null the DOM reference to avoid IE6/7/8 leak (#7054)
+                                       if ( data.handle ) {
+                                               data.handle.elem = null;
+                                       }
+                               }
+
+                               if ( deleteExpando ) {
+                                       delete elem[ jQuery.expando ];
+
+                               } else if ( elem.removeAttribute ) {
+                                       elem.removeAttribute( jQuery.expando );
+                               }
+
+                               delete cache[ id ];
+                       }
+               }
+       }
+});
+
+function evalScript( i, elem ) {
+       if ( elem.src ) {
+               jQuery.ajax({
+                       url: elem.src,
+                       async: false,
+                       dataType: "script"
+               });
+       } else {
+               jQuery.globalEval( ( elem.text || elem.textContent || elem.innerHTML || "" ).replace( rcleanScript, "/*$0*/" ) );
+       }
+
+       if ( elem.parentNode ) {
+               elem.parentNode.removeChild( elem );
+       }
+}
+
+
+
+
+var ralpha = /alpha\([^)]*\)/i,
+       ropacity = /opacity=([^)]*)/,
+       // fixed for IE9, see #8346
+       rupper = /([A-Z]|^ms)/g,
+       rnumpx = /^-?\d+(?:px)?$/i,
+       rnum = /^-?\d/,
+       rrelNum = /^([\-+])=([\-+.\de]+)/,
+
+       cssShow = { position: "absolute", visibility: "hidden", display: "block" },
+       cssWidth = [ "Left", "Right" ],
+       cssHeight = [ "Top", "Bottom" ],
+       curCSS,
+
+       getComputedStyle,
+       currentStyle;
+
+jQuery.fn.css = function( name, value ) {
+       // Setting 'undefined' is a no-op
+       if ( arguments.length === 2 && value === undefined ) {
+               return this;
+       }
+
+       return jQuery.access( this, name, value, true, function( elem, name, value ) {
+               return value !== undefined ?
+                       jQuery.style( elem, name, value ) :
+                       jQuery.css( elem, name );
+       });
+};
+
+jQuery.extend({
+       // Add in style property hooks for overriding the default
+       // behavior of getting and setting a style property
+       cssHooks: {
+               opacity: {
+                       get: function( elem, computed ) {
+                               if ( computed ) {
+                                       // We should always get a number back from opacity
+                                       var ret = curCSS( elem, "opacity", "opacity" );
+                                       return ret === "" ? "1" : ret;
+
+                               } else {
+                                       return elem.style.opacity;
+                               }
+                       }
+               }
+       },
+
+       // Exclude the following css properties to add px
+       cssNumber: {
+               "fillOpacity": true,
+               "fontWeight": true,
+               "lineHeight": true,
+               "opacity": true,
+               "orphans": true,
+               "widows": true,
+               "zIndex": true,
+               "zoom": true
+       },
+
+       // Add in properties whose names you wish to fix before
+       // setting or getting the value
+       cssProps: {
+               // normalize float css property
+               "float": jQuery.support.cssFloat ? "cssFloat" : "styleFloat"
+       },
+
+       // Get and set the style property on a DOM Node
+       style: function( elem, name, value, extra ) {
+               // Don't set styles on text and comment nodes
+               if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {
+                       return;
+               }
+
+               // Make sure that we're working with the right name
+               var ret, type, origName = jQuery.camelCase( name ),
+                       style = elem.style, hooks = jQuery.cssHooks[ origName ];
+
+               name = jQuery.cssProps[ origName ] || origName;
+
+               // Check if we're setting a value
+               if ( value !== undefined ) {
+                       type = typeof value;
+
+                       // convert relative number strings (+= or -=) to relative numbers. #7345
+                       if ( type === "string" && (ret = rrelNum.exec( value )) ) {
+                               value = ( +( ret[1] + 1) * +ret[2] ) + parseFloat( jQuery.css( elem, name ) );
+                               // Fixes bug #9237
+                               type = "number";
+                       }
+
+                       // Make sure that NaN and null values aren't set. See: #7116
+                       if ( value == null || type === "number" && isNaN( value ) ) {
+                               return;
+                       }
+
+                       // If a number was passed in, add 'px' to the (except for certain CSS properties)
+                       if ( type === "number" && !jQuery.cssNumber[ origName ] ) {
+                               value += "px";
+                       }
+
+                       // If a hook was provided, use that value, otherwise just set the specified value
+                       if ( !hooks || !("set" in hooks) || (value = hooks.set( elem, value )) !== undefined ) {
+                               // Wrapped to prevent IE from throwing errors when 'invalid' values are provided
+                               // Fixes bug #5509
+                               try {
+                                       style[ name ] = value;
+                               } catch(e) {}
+                       }
+
+               } else {
+                       // If a hook was provided get the non-computed value from there
+                       if ( hooks && "get" in hooks && (ret = hooks.get( elem, false, extra )) !== undefined ) {
+                               return ret;
+                       }
+
+                       // Otherwise just get the value from the style object
+                       return style[ name ];
+               }
+       },
+
+       css: function( elem, name, extra ) {
+               var ret, hooks;
+
+               // Make sure that we're working with the right name
+               name = jQuery.camelCase( name );
+               hooks = jQuery.cssHooks[ name ];
+               name = jQuery.cssProps[ name ] || name;
+
+               // cssFloat needs a special treatment
+               if ( name === "cssFloat" ) {
+                       name = "float";
+               }
+
+               // If a hook was provided get the computed value from there
+               if ( hooks && "get" in hooks && (ret = hooks.get( elem, true, extra )) !== undefined ) {
+                       return ret;
+
+               // Otherwise, if a way to get the computed value exists, use that
+               } else if ( curCSS ) {
+                       return curCSS( elem, name );
+               }
+       },
+
+       // A method for quickly swapping in/out CSS properties to get correct calculations
+       swap: function( elem, options, callback ) {
+               var old = {};
+
+               // Remember the old values, and insert the new ones
+               for ( var name in options ) {
+                       old[ name ] = elem.style[ name ];
+                       elem.style[ name ] = options[ name ];
+               }
+
+               callback.call( elem );
+
+               // Revert the old values
+               for ( name in options ) {
+                       elem.style[ name ] = old[ name ];
+               }
+       }
+});
+
+// DEPRECATED, Use jQuery.css() instead
+jQuery.curCSS = jQuery.css;
+
+jQuery.each(["height", "width"], function( i, name ) {
+       jQuery.cssHooks[ name ] = {
+               get: function( elem, computed, extra ) {
+                       var val;
+
+                       if ( computed ) {
+                               if ( elem.offsetWidth !== 0 ) {
+                                       return getWH( elem, name, extra );
+                               } else {
+                                       jQuery.swap( elem, cssShow, function() {
+                                               val = getWH( elem, name, extra );
+                                       });
+                               }
+
+                               return val;
+                       }
+               },
+
+               set: function( elem, value ) {
+                       if ( rnumpx.test( value ) ) {
+                               // ignore negative width and height values #1599
+                               value = parseFloat( value );
+
+                               if ( value >= 0 ) {
+                                       return value + "px";
+                               }
+
+                       } else {
+                               return value;
+                       }
+               }
+       };
+});
+
+if ( !jQuery.support.opacity ) {
+       jQuery.cssHooks.opacity = {
+               get: function( elem, computed ) {
+                       // IE uses filters for opacity
+                       return ropacity.test( (computed && elem.currentStyle ? elem.currentStyle.filter : elem.style.filter) || "" ) ?
+                               ( parseFloat( RegExp.$1 ) / 100 ) + "" :
+                               computed ? "1" : "";
+               },
+
+               set: function( elem, value ) {
+                       var style = elem.style,
+                               currentStyle = elem.currentStyle,
+                               opacity = jQuery.isNumeric( value ) ? "alpha(opacity=" + value * 100 + ")" : "",
+                               filter = currentStyle && currentStyle.filter || style.filter || "";
+
+                       // IE has trouble with opacity if it does not have layout
+                       // Force it by setting the zoom level
+                       style.zoom = 1;
+
+                       // if setting opacity to 1, and no other filters exist - attempt to remove filter attribute #6652
+                       if ( value >= 1 && jQuery.trim( filter.replace( ralpha, "" ) ) === "" ) {
+
+                               // Setting style.filter to null, "" & " " still leave "filter:" in the cssText
+                               // if "filter:" is present at all, clearType is disabled, we want to avoid this
+                               // style.removeAttribute is IE Only, but so apparently is this code path...
+                               style.removeAttribute( "filter" );
+
+                               // if there there is no filter style applied in a css rule, we are done
+                               if ( currentStyle && !currentStyle.filter ) {
+                                       return;
+                               }
+                       }
+
+                       // otherwise, set new filter values
+                       style.filter = ralpha.test( filter ) ?
+                               filter.replace( ralpha, opacity ) :
+                               filter + " " + opacity;
+               }
+       };
+}
+
+jQuery(function() {
+       // This hook cannot be added until DOM ready because the support test
+       // for it is not run until after DOM ready
+       if ( !jQuery.support.reliableMarginRight ) {
+               jQuery.cssHooks.marginRight = {
+                       get: function( elem, computed ) {
+                               // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right
+                               // Work around by temporarily setting element display to inline-block
+                               var ret;
+                               jQuery.swap( elem, { "display": "inline-block" }, function() {
+                                       if ( computed ) {
+                                               ret = curCSS( elem, "margin-right", "marginRight" );
+                                       } else {
+                                               ret = elem.style.marginRight;
+                                       }
+                               });
+                               return ret;
+                       }
+               };
+       }
+});
+
+if ( document.defaultView && document.defaultView.getComputedStyle ) {
+       getComputedStyle = function( elem, name ) {
+               var ret, defaultView, computedStyle;
+
+               name = name.replace( rupper, "-$1" ).toLowerCase();
+
+               if ( !(defaultView = elem.ownerDocument.defaultView) ) {
+                       return undefined;
+               }
+
+               if ( (computedStyle = defaultView.getComputedStyle( elem, null )) ) {
+                       ret = computedStyle.getPropertyValue( name );
+                       if ( ret === "" && !jQuery.contains( elem.ownerDocument.documentElement, elem ) ) {
+                               ret = jQuery.style( elem, name );
+                       }
+               }
+
+               return ret;
+       };
+}
+
+if ( document.documentElement.currentStyle ) {
+       currentStyle = function( elem, name ) {
+               var left,
+                       ret = elem.currentStyle && elem.currentStyle[ name ],
+                       rsLeft = elem.runtimeStyle && elem.runtimeStyle[ name ],
+                       style = elem.style;
+
+               // From the awesome hack by Dean Edwards
+               // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291
+
+               // If we're not dealing with a regular pixel number
+               // but a number that has a weird ending, we need to convert it to pixels
+               if ( !rnumpx.test( ret ) && rnum.test( ret ) ) {
+                       // Remember the original values
+                       left = style.left;
+
+                       // Put in the new values to get a computed value out
+                       if ( rsLeft ) {
+                               elem.runtimeStyle.left = elem.currentStyle.left;
+                       }
+                       style.left = name === "fontSize" ? "1em" : (ret || 0);
+                       ret = style.pixelLeft + "px";
+
+                       // Revert the changed values
+                       style.left = left;
+                       if ( rsLeft ) {
+                               elem.runtimeStyle.left = rsLeft;
+                       }
+               }
+
+               return ret === "" ? "auto" : ret;
+       };
+}
+
+curCSS = getComputedStyle || currentStyle;
+
+function getWH( elem, name, extra ) {
+
+       // Start with offset property
+       var val = name === "width" ? elem.offsetWidth : elem.offsetHeight,
+               which = name === "width" ? cssWidth : cssHeight;
+
+       if ( val > 0 ) {
+               if ( extra !== "border" ) {
+                       jQuery.each( which, function() {
+                               if ( !extra ) {
+                                       val -= parseFloat( jQuery.css( elem, "padding" + this ) ) || 0;
+                               }
+                               if ( extra === "margin" ) {
+                                       val += parseFloat( jQuery.css( elem, extra + this ) ) || 0;
+                               } else {
+                                       val -= parseFloat( jQuery.css( elem, "border" + this + "Width" ) ) || 0;
+                               }
+                       });
+               }
+
+               return val + "px";
+       }
+
+       // Fall back to computed then uncomputed css if necessary
+       val = curCSS( elem, name, name );
+       if ( val < 0 || val == null ) {
+               val = elem.style[ name ] || 0;
+       }
+       // Normalize "", auto, and prepare for extra
+       val = parseFloat( val ) || 0;
+
+       // Add padding, border, margin
+       if ( extra ) {
+               jQuery.each( which, function() {
+                       val += parseFloat( jQuery.css( elem, "padding" + this ) ) || 0;
+                       if ( extra !== "padding" ) {
+                               val += parseFloat( jQuery.css( elem, "border" + this + "Width" ) ) || 0;
+                       }
+                       if ( extra === "margin" ) {
+                               val += parseFloat( jQuery.css( elem, extra + this ) ) || 0;
+                       }
+               });
+       }
+
+       return val + "px";
+}
+
+if ( jQuery.expr && jQuery.expr.filters ) {
+       jQuery.expr.filters.hidden = function( elem ) {
+               var width = elem.offsetWidth,
+                       height = elem.offsetHeight;
+
+               return (width === 0 && height === 0) || (!jQuery.support.reliableHiddenOffsets && ((elem.style && elem.style.display) || jQuery.css( elem, "display" )) === "none");
+       };
+
+       jQuery.expr.filters.visible = function( elem ) {
+               return !jQuery.expr.filters.hidden( elem );
+       };
+}
+
+
+
+
+var r20 = /%20/g,
+       rbracket = /\[\]$/,
+       rCRLF = /\r?\n/g,
+       rhash = /#.*$/,
+       rheaders = /^(.*?):[ \t]*([^\r\n]*)\r?$/mg, // IE leaves an \r character at EOL
+       rinput = /^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,
+       // #7653, #8125, #8152: local protocol detection
+       rlocalProtocol = /^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,
+       rnoContent = /^(?:GET|HEAD)$/,
+       rprotocol = /^\/\//,
+       rquery = /\?/,
+       rscript = /<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,
+       rselectTextarea = /^(?:select|textarea)/i,
+       rspacesAjax = /\s+/,
+       rts = /([?&])_=[^&]*/,
+       rurl = /^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,
+
+       // Keep a copy of the old load method
+       _load = jQuery.fn.load,
+
+       /* Prefilters
+        * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)
+        * 2) These are called:
+        *    - BEFORE asking for a transport
+        *    - AFTER param serialization (s.data is a string if s.processData is true)
+        * 3) key is the dataType
+        * 4) the catchall symbol "*" can be used
+        * 5) execution will start with transport dataType and THEN continue down to "*" if needed
+        */
+       prefilters = {},
+
+       /* Transports bindings
+        * 1) key is the dataType
+        * 2) the catchall symbol "*" can be used
+        * 3) selection will start with transport dataType and THEN go to "*" if needed
+        */
+       transports = {},
+
+       // Document location
+       ajaxLocation,
+
+       // Document location segments
+       ajaxLocParts,
+
+       // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression
+       allTypes = ["*/"] + ["*"];
+
+// #8138, IE may throw an exception when accessing
+// a field from window.location if document.domain has been set
+try {
+       ajaxLocation = location.href;
+} catch( e ) {
+       // Use the href attribute of an A element
+       // since IE will modify it given document.location
+       ajaxLocation = document.createElement( "a" );
+       ajaxLocation.href = "";
+       ajaxLocation = ajaxLocation.href;
+}
+
+// Segment location into parts
+ajaxLocParts = rurl.exec( ajaxLocation.toLowerCase() ) || [];
+
+// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport
+function addToPrefiltersOrTransports( structure ) {
+
+       // dataTypeExpression is optional and defaults to "*"
+       return function( dataTypeExpression, func ) {
+
+               if ( typeof dataTypeExpression !== "string" ) {
+                       func = dataTypeExpression;
+                       dataTypeExpression = "*";
+               }
+
+               if ( jQuery.isFunction( func ) ) {
+                       var dataTypes = dataTypeExpression.toLowerCase().split( rspacesAjax ),
+                               i = 0,
+                               length = dataTypes.length,
+                               dataType,
+                               list,
+                               placeBefore;
+
+                       // For each dataType in the dataTypeExpression
+                       for(; i < length; i++ ) {
+                               dataType = dataTypes[ i ];
+                               // We control if we're asked to add before
+                               // any existing element
+                               placeBefore = /^\+/.test( dataType );
+                               if ( placeBefore ) {
+                                       dataType = dataType.substr( 1 ) || "*";
+                               }
+                               list = structure[ dataType ] = structure[ dataType ] || [];
+                               // then we add to the structure accordingly
+                               list[ placeBefore ? "unshift" : "push" ]( func );
+                       }
+               }
+       };
+}
+
+// Base inspection function for prefilters and transports
+function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR,
+               dataType /* internal */, inspected /* internal */ ) {
+
+       dataType = dataType || options.dataTypes[ 0 ];
+       inspected = inspected || {};
+
+       inspected[ dataType ] = true;
+
+       var list = structure[ dataType ],
+               i = 0,
+               length = list ? list.length : 0,
+               executeOnly = ( structure === prefilters ),
+               selection;
+
+       for(; i < length && ( executeOnly || !selection ); i++ ) {
+               selection = list[ i ]( options, originalOptions, jqXHR );
+               // If we got redirected to another dataType
+               // we try there if executing only and not done already
+               if ( typeof selection === "string" ) {
+                       if ( !executeOnly || inspected[ selection ] ) {
+                               selection = undefined;
+                       } else {
+                               options.dataTypes.unshift( selection );
+                               selection = inspectPrefiltersOrTransports(
+                                               structure, options, originalOptions, jqXHR, selection, inspected );
+                       }
+               }
+       }
+       // If we're only executing or nothing was selected
+       // we try the catchall dataType if not done already
+       if ( ( executeOnly || !selection ) && !inspected[ "*" ] ) {
+               selection = inspectPrefiltersOrTransports(
+                               structure, options, originalOptions, jqXHR, "*", inspected );
+       }
+       // unnecessary when only executing (prefilters)
+       // but it'll be ignored by the caller in that case
+       return selection;
+}
+
+// A special extend for ajax options
+// that takes "flat" options (not to be deep extended)
+// Fixes #9887
+function ajaxExtend( target, src ) {
+       var key, deep,
+               flatOptions = jQuery.ajaxSettings.flatOptions || {};
+       for( key in src ) {
+               if ( src[ key ] !== undefined ) {
+                       ( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];
+               }
+       }
+       if ( deep ) {
+               jQuery.extend( true, target, deep );
+       }
+}
+
+jQuery.fn.extend({
+       load: function( url, params, callback ) {
+               if ( typeof url !== "string" && _load ) {
+                       return _load.apply( this, arguments );
+
+               // Don't do a request if no elements are being requested
+               } else if ( !this.length ) {
+                       return this;
+               }
+
+               var off = url.indexOf( " " );
+               if ( off >= 0 ) {
+                       var selector = url.slice( off, url.length );
+                       url = url.slice( 0, off );
+               }
+
+               // Default to a GET request
+               var type = "GET";
+
+               // If the second parameter was provided
+               if ( params ) {
+                       // If it's a function
+                       if ( jQuery.isFunction( params ) ) {
+                               // We assume that it's the callback
+                               callback = params;
+                               params = undefined;
+
+                       // Otherwise, build a param string
+                       } else if ( typeof params === "object" ) {
+                               params = jQuery.param( params, jQuery.ajaxSettings.traditional );
+                               type = "POST";
+                       }
+               }
+
+               var self = this;
+
+               // Request the remote document
+               jQuery.ajax({
+                       url: url,
+                       type: type,
+                       dataType: "html",
+                       data: params,
+                       // Complete callback (responseText is used internally)
+                       complete: function( jqXHR, status, responseText ) {
+                               // Store the response as specified by the jqXHR object
+                               responseText = jqXHR.responseText;
+                               // If successful, inject the HTML into all the matched elements
+                               if ( jqXHR.isResolved() ) {
+                                       // #4825: Get the actual response in case
+                                       // a dataFilter is present in ajaxSettings
+                                       jqXHR.done(function( r ) {
+                                               responseText = r;
+                                       });
+                                       // See if a selector was specified
+                                       self.html( selector ?
+                                               // Create a dummy div to hold the results
+                                               jQuery("<div>")
+                                                       // inject the contents of the document in, removing the scripts
+                                                       // to avoid any 'Permission Denied' errors in IE
+                                                       .append(responseText.replace(rscript, ""))
+
+                                                       // Locate the specified elements
+                                                       .find(selector) :
+
+                                               // If not, just inject the full result
+                                               responseText );
+                               }
+
+                               if ( callback ) {
+                                       self.each( callback, [ responseText, status, jqXHR ] );
+                               }
+                       }
+               });
+
+               return this;
+       },
+
+       serialize: function() {
+               return jQuery.param( this.serializeArray() );
+       },
+
+       serializeArray: function() {
+               return this.map(function(){
+                       return this.elements ? jQuery.makeArray( this.elements ) : this;
+               })
+               .filter(function(){
+                       return this.name && !this.disabled &&
+                               ( this.checked || rselectTextarea.test( this.nodeName ) ||
+                                       rinput.test( this.type ) );
+               })
+               .map(function( i, elem ){
+                       var val = jQuery( this ).val();
+
+                       return val == null ?
+                               null :
+                               jQuery.isArray( val ) ?
+                                       jQuery.map( val, function( val, i ){
+                                               return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
+                                       }) :
+                                       { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
+               }).get();
+       }
+});
+
+// Attach a bunch of functions for handling common AJAX events
+jQuery.each( "ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split( " " ), function( i, o ){
+       jQuery.fn[ o ] = function( f ){
+               return this.bind( o, f );
+       };
+});
+
+jQuery.each( [ "get", "post" ], function( i, method ) {
+       jQuery[ method ] = function( url, data, callback, type ) {
+               // shift arguments if data argument was omitted
+               if ( jQuery.isFunction( data ) ) {
+                       type = type || callback;
+                       callback = data;
+                       data = undefined;
+               }
+
+               return jQuery.ajax({
+                       type: method,
+                       url: url,
+                       data: data,
+                       success: callback,
+                       dataType: type
+               });
+       };
+});
+
+jQuery.extend({
+
+       getScript: function( url, callback ) {
+               return jQuery.get( url, undefined, callback, "script" );
+       },
+
+       getJSON: function( url, data, callback ) {
+               return jQuery.get( url, data, callback, "json" );
+       },
+
+       // Creates a full fledged settings object into target
+       // with both ajaxSettings and settings fields.
+       // If target is omitted, writes into ajaxSettings.
+       ajaxSetup: function( target, settings ) {
+               if ( settings ) {
+                       // Building a settings object
+                       ajaxExtend( target, jQuery.ajaxSettings );
+               } else {
+                       // Extending ajaxSettings
+                       settings = target;
+                       target = jQuery.ajaxSettings;
+               }
+               ajaxExtend( target, settings );
+               return target;
+       },
+
+       ajaxSettings: {
+               url: ajaxLocation,
+               isLocal: rlocalProtocol.test( ajaxLocParts[ 1 ] ),
+               global: true,
+               type: "GET",
+               contentType: "application/x-www-form-urlencoded",
+               processData: true,
+               async: true,
+               /*
+               timeout: 0,
+               data: null,
+               dataType: null,
+               username: null,
+               password: null,
+               cache: null,
+               traditional: false,
+               headers: {},
+               */
+
+               accepts: {
+                       xml: "application/xml, text/xml",
+                       html: "text/html",
+                       text: "text/plain",
+                       json: "application/json, text/javascript",
+                       "*": allTypes
+               },
+
+               contents: {
+                       xml: /xml/,
+                       html: /html/,
+                       json: /json/
+               },
+
+               responseFields: {
+                       xml: "responseXML",
+                       text: "responseText"
+               },
+
+               // List of data converters
+               // 1) key format is "source_type destination_type" (a single space in-between)
+               // 2) the catchall symbol "*" can be used for source_type
+               converters: {
+
+                       // Convert anything to text
+                       "* text": window.String,
+
+                       // Text to html (true = no transformation)
+                       "text html": true,
+
+                       // Evaluate text as a json expression
+                       "text json": jQuery.parseJSON,
+
+                       // Parse text as xml
+                       "text xml": jQuery.parseXML
+               },
+
+               // For options that shouldn't be deep extended:
+               // you can add your own custom options here if
+               // and when you create one that shouldn't be
+               // deep extended (see ajaxExtend)
+               flatOptions: {
+                       context: true,
+                       url: true
+               }
+       },
+
+       ajaxPrefilter: addToPrefiltersOrTransports( prefilters ),
+       ajaxTransport: addToPrefiltersOrTransports( transports ),
+
+       // Main method
+       ajax: function( url, options ) {
+
+               // If url is an object, simulate pre-1.5 signature
+               if ( typeof url === "object" ) {
+                       options = url;
+                       url = undefined;
+               }
+
+               // Force options to be an object
+               options = options || {};
+
+               var // Create the final options object
+                       s = jQuery.ajaxSetup( {}, options ),
+                       // Callbacks context
+                       callbackContext = s.context || s,
+                       // Context for global events
+                       // It's the callbackContext if one was provided in the options
+                       // and if it's a DOM node or a jQuery collection
+                       globalEventContext = callbackContext !== s &&
+                               ( callbackContext.nodeType || callbackContext instanceof jQuery ) ?
+                                               jQuery( callbackContext ) : jQuery.event,
+                       // Deferreds
+                       deferred = jQuery.Deferred(),
+                       completeDeferred = jQuery.Callbacks( "once memory" ),
+                       // Status-dependent callbacks
+                       statusCode = s.statusCode || {},
+                       // ifModified key
+                       ifModifiedKey,
+                       // Headers (they are sent all at once)
+                       requestHeaders = {},
+                       requestHeadersNames = {},
+                       // Response headers
+                       responseHeadersString,
+                       responseHeaders,
+                       // transport
+                       transport,
+                       // timeout handle
+                       timeoutTimer,
+                       // Cross-domain detection vars
+                       parts,
+                       // The jqXHR state
+                       state = 0,
+                       // To know if global events are to be dispatched
+                       fireGlobals,
+                       // Loop variable
+                       i,
+                       // Fake xhr
+                       jqXHR = {
+
+                               readyState: 0,
+
+                               // Caches the header
+                               setRequestHeader: function( name, value ) {
+                                       if ( !state ) {
+                                               var lname = name.toLowerCase();
+                                               name = requestHeadersNames[ lname ] = requestHeadersNames[ lname ] || name;
+                                               requestHeaders[ name ] = value;
+                                       }
+                                       return this;
+                               },
+
+                               // Raw string
+                               getAllResponseHeaders: function() {
+                                       return state === 2 ? responseHeadersString : null;
+                               },
+
+                               // Builds headers hashtable if needed
+                               getResponseHeader: function( key ) {
+                                       var match;
+                                       if ( state === 2 ) {
+                                               if ( !responseHeaders ) {
+                                                       responseHeaders = {};
+                                                       while( ( match = rheaders.exec( responseHeadersString ) ) ) {
+                                                               responseHeaders[ match[1].toLowerCase() ] = match[ 2 ];
+                                                       }
+                                               }
+                                               match = responseHeaders[ key.toLowerCase() ];
+                                       }
+                                       return match === undefined ? null : match;
+                               },
+
+                               // Overrides response content-type header
+                               overrideMimeType: function( type ) {
+                                       if ( !state ) {
+                                               s.mimeType = type;
+                                       }
+                                       return this;
+                               },
+
+                               // Cancel the request
+                               abort: function( statusText ) {
+                                       statusText = statusText || "abort";
+                                       if ( transport ) {
+                                               transport.abort( statusText );
+                                       }
+                                       done( 0, statusText );
+                                       return this;
+                               }
+                       };
+
+               // Callback for when everything is done
+               // It is defined here because jslint complains if it is declared
+               // at the end of the function (which would be more logical and readable)
+               function done( status, nativeStatusText, responses, headers ) {
+
+                       // Called once
+                       if ( state === 2 ) {
+                               return;
+                       }
+
+                       // State is "done" now
+                       state = 2;
+
+                       // Clear timeout if it exists
+                       if ( timeoutTimer ) {
+                               clearTimeout( timeoutTimer );
+                       }
+
+                       // Dereference transport for early garbage collection
+                       // (no matter how long the jqXHR object will be used)
+                       transport = undefined;
+
+                       // Cache response headers
+                       responseHeadersString = headers || "";
+
+                       // Set readyState
+                       jqXHR.readyState = status > 0 ? 4 : 0;
+
+                       var isSuccess,
+                               success,
+                               error,
+                               statusText = nativeStatusText,
+                               response = responses ? ajaxHandleResponses( s, jqXHR, responses ) : undefined,
+                               lastModified,
+                               etag;
+
+                       // If successful, handle type chaining
+                       if ( status >= 200 && status < 300 || status === 304 ) {
+
+                               // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
+                               if ( s.ifModified ) {
+
+                                       if ( ( lastModified = jqXHR.getResponseHeader( "Last-Modified" ) ) ) {
+                                               jQuery.lastModified[ ifModifiedKey ] = lastModified;
+                                       }
+                                       if ( ( etag = jqXHR.getResponseHeader( "Etag" ) ) ) {
+                                               jQuery.etag[ ifModifiedKey ] = etag;
+                                       }
+                               }
+
+                               // If not modified
+                               if ( status === 304 ) {
+
+                                       statusText = "notmodified";
+                                       isSuccess = true;
+
+                               // If we have data
+                               } else {
+
+                                       try {
+                                               success = ajaxConvert( s, response );
+                                               statusText = "success";
+                                               isSuccess = true;
+                                       } catch(e) {
+                                               // We have a parsererror
+                                               statusText = "parsererror";
+                                               error = e;
+                                       }
+                               }
+                       } else {
+                               // We extract error from statusText
+                               // then normalize statusText and status for non-aborts
+                               error = statusText;
+                               if( !statusText || status ) {
+                                       statusText = "error";
+                                       if ( status < 0 ) {
+                                               status = 0;
+                                       }
+                               }
+                       }
+
+                       // Set data for the fake xhr object
+                       jqXHR.status = status;
+                       jqXHR.statusText = "" + ( nativeStatusText || statusText );
+
+                       // Success/Error
+                       if ( isSuccess ) {
+                               deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );
+                       } else {
+                               deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );
+                       }
+
+                       // Status-dependent callbacks
+                       jqXHR.statusCode( statusCode );
+                       statusCode = undefined;
+
+                       if ( fireGlobals ) {
+                               globalEventContext.trigger( "ajax" + ( isSuccess ? "Success" : "Error" ),
+                                               [ jqXHR, s, isSuccess ? success : error ] );
+                       }
+
+                       // Complete
+                       completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );
+
+                       if ( fireGlobals ) {
+                               globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] );
+                               // Handle the global AJAX counter
+                               if ( !( --jQuery.active ) ) {
+                                       jQuery.event.trigger( "ajaxStop" );
+                               }
+                       }
+               }
+
+               // Attach deferreds
+               deferred.promise( jqXHR );
+               jqXHR.success = jqXHR.done;
+               jqXHR.error = jqXHR.fail;
+               jqXHR.complete = completeDeferred.add;
+
+               // Status-dependent callbacks
+               jqXHR.statusCode = function( map ) {
+                       if ( map ) {
+                               var tmp;
+                               if ( state < 2 ) {
+                                       for( tmp in map ) {
+                                               statusCode[ tmp ] = [ statusCode[tmp], map[tmp] ];
+                                       }
+                               } else {
+                                       tmp = map[ jqXHR.status ];
+                                       jqXHR.then( tmp, tmp );
+                               }
+                       }
+                       return this;
+               };
+
+               // Remove hash character (#7531: and string promotion)
+               // Add protocol if not provided (#5866: IE7 issue with protocol-less urls)
+               // We also use the url parameter if available
+               s.url = ( ( url || s.url ) + "" ).replace( rhash, "" ).replace( rprotocol, ajaxLocParts[ 1 ] + "//" );
+
+               // Extract dataTypes list
+               s.dataTypes = jQuery.trim( s.dataType || "*" ).toLowerCase().split( rspacesAjax );
+
+               // Determine if a cross-domain request is in order
+               if ( s.crossDomain == null ) {
+                       parts = rurl.exec( s.url.toLowerCase() );
+                       s.crossDomain = !!( parts &&
+                               ( parts[ 1 ] != ajaxLocParts[ 1 ] || parts[ 2 ] != ajaxLocParts[ 2 ] ||
+                                       ( parts[ 3 ] || ( parts[ 1 ] === "http:" ? 80 : 443 ) ) !=
+                                               ( ajaxLocParts[ 3 ] || ( ajaxLocParts[ 1 ] === "http:" ? 80 : 443 ) ) )
+                       );
+               }
+
+               // Convert data if not already a string
+               if ( s.data && s.processData && typeof s.data !== "string" ) {
+                       s.data = jQuery.param( s.data, s.traditional );
+               }
+
+               // Apply prefilters
+               inspectPrefiltersOrTransports( prefilters, s, options, jqXHR );
+
+               // If request was aborted inside a prefiler, stop there
+               if ( state === 2 ) {
+                       return false;
+               }
+
+               // We can fire global events as of now if asked to
+               fireGlobals = s.global;
+
+               // Uppercase the type
+               s.type = s.type.toUpperCase();
+
+               // Determine if request has content
+               s.hasContent = !rnoContent.test( s.type );
+
+               // Watch for a new set of requests
+               if ( fireGlobals && jQuery.active++ === 0 ) {
+                       jQuery.event.trigger( "ajaxStart" );
+               }
+
+               // More options handling for requests with no content
+               if ( !s.hasContent ) {
+
+                       // If data is available, append data to url
+                       if ( s.data ) {
+                               s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.data;
+                               // #9682: remove data so that it's not used in an eventual retry
+                               delete s.data;
+                       }
+
+                       // Get ifModifiedKey before adding the anti-cache parameter
+                       ifModifiedKey = s.url;
+
+                       // Add anti-cache in url if needed
+                       if ( s.cache === false ) {
+
+                               var ts = jQuery.now(),
+                                       // try replacing _= if it is there
+                                       ret = s.url.replace( rts, "$1_=" + ts );
+
+                               // if nothing was replaced, add timestamp to the end
+                               s.url = ret + ( (ret === s.url ) ? ( rquery.test( s.url ) ? "&" : "?" ) + "_=" + ts : "" );
+                       }
+               }
+
+               // Set the correct header, if data is being sent
+               if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {
+                       jqXHR.setRequestHeader( "Content-Type", s.contentType );
+               }
+
+               // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
+               if ( s.ifModified ) {
+                       ifModifiedKey = ifModifiedKey || s.url;
+                       if ( jQuery.lastModified[ ifModifiedKey ] ) {
+                               jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ ifModifiedKey ] );
+                       }
+                       if ( jQuery.etag[ ifModifiedKey ] ) {
+                               jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ ifModifiedKey ] );
+                       }
+               }
+
+               // Set the Accepts header for the server, depending on the dataType
+               jqXHR.setRequestHeader(
+                       "Accept",
+                       s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[0] ] ?
+                               s.accepts[ s.dataTypes[0] ] + ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) :
+                               s.accepts[ "*" ]
+               );
+
+               // Check for headers option
+               for ( i in s.headers ) {
+                       jqXHR.setRequestHeader( i, s.headers[ i ] );
+               }
+
+               // Allow custom headers/mimetypes and early abort
+               if ( s.beforeSend && ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || state === 2 ) ) {
+                               // Abort if not done already
+                               jqXHR.abort();
+                               return false;
+
+               }
+
+               // Install callbacks on deferreds
+               for ( i in { success: 1, error: 1, complete: 1 } ) {
+                       jqXHR[ i ]( s[ i ] );
+               }
+
+               // Get transport
+               transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );
+
+               // If no transport, we auto-abort
+               if ( !transport ) {
+                       done( -1, "No Transport" );
+               } else {
+                       jqXHR.readyState = 1;
+                       // Send global event
+                       if ( fireGlobals ) {
+                               globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] );
+                       }
+                       // Timeout
+                       if ( s.async && s.timeout > 0 ) {
+                               timeoutTimer = setTimeout( function(){
+                                       jqXHR.abort( "timeout" );
+                               }, s.timeout );
+                       }
+
+                       try {
+                               state = 1;
+                               transport.send( requestHeaders, done );
+                       } catch (e) {
+                               // Propagate exception as error if not done
+                               if ( state < 2 ) {
+                                       done( -1, e );
+                               // Simply rethrow otherwise
+                               } else {
+                                       jQuery.error( e );
+                               }
+                       }
+               }
+
+               return jqXHR;
+       },
+
+       // Serialize an array of form elements or a set of
+       // key/values into a query string
+       param: function( a, traditional ) {
+               var s = [],
+                       add = function( key, value ) {
+                               // If value is a function, invoke it and return its value
+                               value = jQuery.isFunction( value ) ? value() : value;
+                               s[ s.length ] = encodeURIComponent( key ) + "=" + encodeURIComponent( value );
+                       };
+
+               // Set traditional to true for jQuery <= 1.3.2 behavior.
+               if ( traditional === undefined ) {
+                       traditional = jQuery.ajaxSettings.traditional;
+               }
+
+               // If an array was passed in, assume that it is an array of form elements.
+               if ( jQuery.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {
+                       // Serialize the form elements
+                       jQuery.each( a, function() {
+                               add( this.name, this.value );
+                       });
+
+               } else {
+                       // If traditional, encode the "old" way (the way 1.3.2 or older
+                       // did it), otherwise encode params recursively.
+                       for ( var prefix in a ) {
+                               buildParams( prefix, a[ prefix ], traditional, add );
+                       }
+               }
+
+               // Return the resulting serialization
+               return s.join( "&" ).replace( r20, "+" );
+       }
+});
+
+function buildParams( prefix, obj, traditional, add ) {
+       if ( jQuery.isArray( obj ) ) {
+               // Serialize array item.
+               jQuery.each( obj, function( i, v ) {
+                       if ( traditional || rbracket.test( prefix ) ) {
+                               // Treat each array item as a scalar.
+                               add( prefix, v );
+
+                       } else {
+                               // If array item is non-scalar (array or object), encode its
+                               // numeric index to resolve deserialization ambiguity issues.
+                               // Note that rack (as of 1.0.0) can't currently deserialize
+                               // nested arrays properly, and attempting to do so may cause
+                               // a server error. Possible fixes are to modify rack's
+                               // deserialization algorithm or to provide an option or flag
+                               // to force array serialization to be shallow.
+                               buildParams( prefix + "[" + ( typeof v === "object" || jQuery.isArray(v) ? i : "" ) + "]", v, traditional, add );
+                       }
+               });
+
+       } else if ( !traditional && obj != null && typeof obj === "object" ) {
+               // Serialize object item.
+               for ( var name in obj ) {
+                       buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add );
+               }
+
+       } else {
+               // Serialize scalar item.
+               add( prefix, obj );
+       }
+}
+
+// This is still on the jQuery object... for now
+// Want to move this to jQuery.ajax some day
+jQuery.extend({
+
+       // Counter for holding the number of active queries
+       active: 0,
+
+       // Last-Modified header cache for next request
+       lastModified: {},
+       etag: {}
+
+});
+
+/* Handles responses to an ajax request:
+ * - sets all responseXXX fields accordingly
+ * - finds the right dataType (mediates between content-type and expected dataType)
+ * - returns the corresponding response
+ */
+function ajaxHandleResponses( s, jqXHR, responses ) {
+
+       var contents = s.contents,
+               dataTypes = s.dataTypes,
+               responseFields = s.responseFields,
+               ct,
+               type,
+               finalDataType,
+               firstDataType;
+
+       // Fill responseXXX fields
+       for( type in responseFields ) {
+               if ( type in responses ) {
+                       jqXHR[ responseFields[type] ] = responses[ type ];
+               }
+       }
+
+       // Remove auto dataType and get content-type in the process
+       while( dataTypes[ 0 ] === "*" ) {
+               dataTypes.shift();
+               if ( ct === undefined ) {
+                       ct = s.mimeType || jqXHR.getResponseHeader( "content-type" );
+               }
+       }
+
+       // Check if we're dealing with a known content-type
+       if ( ct ) {
+               for ( type in contents ) {
+                       if ( contents[ type ] && contents[ type ].test( ct ) ) {
+                               dataTypes.unshift( type );
+                               break;
+                       }
+               }
+       }
+
+       // Check to see if we have a response for the expected dataType
+       if ( dataTypes[ 0 ] in responses ) {
+               finalDataType = dataTypes[ 0 ];
+       } else {
+               // Try convertible dataTypes
+               for ( type in responses ) {
+                       if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[0] ] ) {
+                               finalDataType = type;
+                               break;
+                       }
+                       if ( !firstDataType ) {
+                               firstDataType = type;
+                       }
+               }
+               // Or just use first one
+               finalDataType = finalDataType || firstDataType;
+       }
+
+       // If we found a dataType
+       // We add the dataType to the list if needed
+       // and return the corresponding response
+       if ( finalDataType ) {
+               if ( finalDataType !== dataTypes[ 0 ] ) {
+                       dataTypes.unshift( finalDataType );
+               }
+               return responses[ finalDataType ];
+       }
+}
+
+// Chain conversions given the request and the original response
+function ajaxConvert( s, response ) {
+
+       // Apply the dataFilter if provided
+       if ( s.dataFilter ) {
+               response = s.dataFilter( response, s.dataType );
+       }
+
+       var dataTypes = s.dataTypes,
+               converters = {},
+               i,
+               key,
+               length = dataTypes.length,
+               tmp,
+               // Current and previous dataTypes
+               current = dataTypes[ 0 ],
+               prev,
+               // Conversion expression
+               conversion,
+               // Conversion function
+               conv,
+               // Conversion functions (transitive conversion)
+               conv1,
+               conv2;
+
+       // For each dataType in the chain
+       for( i = 1; i < length; i++ ) {
+
+               // Create converters map
+               // with lowercased keys
+               if ( i === 1 ) {
+                       for( key in s.converters ) {
+                               if( typeof key === "string" ) {
+                                       converters[ key.toLowerCase() ] = s.converters[ key ];
+                               }
+                       }
+               }
+
+               // Get the dataTypes
+               prev = current;
+               current = dataTypes[ i ];
+
+               // If current is auto dataType, update it to prev
+               if( current === "*" ) {
+                       current = prev;
+               // If no auto and dataTypes are actually different
+               } else if ( prev !== "*" && prev !== current ) {
+
+                       // Get the converter
+                       conversion = prev + " " + current;
+                       conv = converters[ conversion ] || converters[ "* " + current ];
+
+                       // If there is no direct converter, search transitively
+                       if ( !conv ) {
+                               conv2 = undefined;
+                               for( conv1 in converters ) {
+                                       tmp = conv1.split( " " );
+                                       if ( tmp[ 0 ] === prev || tmp[ 0 ] === "*" ) {
+                                               conv2 = converters[ tmp[1] + " " + current ];
+                                               if ( conv2 ) {
+                                                       conv1 = converters[ conv1 ];
+                                                       if ( conv1 === true ) {
+                                                               conv = conv2;
+                                                       } else if ( conv2 === true ) {
+                                                               conv = conv1;
+                                                       }
+                                                       break;
+                                               }
+                                       }
+                               }
+                       }
+                       // If we found no converter, dispatch an error
+                       if ( !( conv || conv2 ) ) {
+                               jQuery.error( "No conversion from " + conversion.replace(" "," to ") );
+                       }
+                       // If found converter is not an equivalence
+                       if ( conv !== true ) {
+                               // Convert with 1 or 2 converters accordingly
+                               response = conv ? conv( response ) : conv2( conv1(response) );
+                       }
+               }
+       }
+       return response;
+}
+
+
+
+
+var jsc = jQuery.now(),
+       jsre = /(\=)\?(&|$)|\?\?/i;
+
+// Default jsonp settings
+jQuery.ajaxSetup({
+       jsonp: "callback",
+       jsonpCallback: function() {
+               return jQuery.expando + "_" + ( jsc++ );
+       }
+});
+
+// Detect, normalize options and install callbacks for jsonp requests
+jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) {
+
+       var inspectData = s.contentType === "application/x-www-form-urlencoded" &&
+               ( typeof s.data === "string" );
+
+       if ( s.dataTypes[ 0 ] === "jsonp" ||
+               s.jsonp !== false && ( jsre.test( s.url ) ||
+                               inspectData && jsre.test( s.data ) ) ) {
+
+               var responseContainer,
+                       jsonpCallback = s.jsonpCallback =
+                               jQuery.isFunction( s.jsonpCallback ) ? s.jsonpCallback() : s.jsonpCallback,
+                       previous = window[ jsonpCallback ],
+                       url = s.url,
+                       data = s.data,
+                       replace = "$1" + jsonpCallback + "$2";
+
+               if ( s.jsonp !== false ) {
+                       url = url.replace( jsre, replace );
+                       if ( s.url === url ) {
+                               if ( inspectData ) {
+                                       data = data.replace( jsre, replace );
+                               }
+                               if ( s.data === data ) {
+                                       // Add callback manually
+                                       url += (/\?/.test( url ) ? "&" : "?") + s.jsonp + "=" + jsonpCallback;
+                               }
+                       }
+               }
+
+               s.url = url;
+               s.data = data;
+
+               // Install callback
+               window[ jsonpCallback ] = function( response ) {
+                       responseContainer = [ response ];
+               };
+
+               // Clean-up function
+               jqXHR.always(function() {
+                       // Set callback back to previous value
+                       window[ jsonpCallback ] = previous;
+                       // Call if it was a function and we have a response
+                       if ( responseContainer && jQuery.isFunction( previous ) ) {
+                               window[ jsonpCallback ]( responseContainer[ 0 ] );
+                       }
+               });
+
+               // Use data converter to retrieve json after script execution
+               s.converters["script json"] = function() {
+                       if ( !responseContainer ) {
+                               jQuery.error( jsonpCallback + " was not called" );
+                       }
+                       return responseContainer[ 0 ];
+               };
+
+               // force json dataType
+               s.dataTypes[ 0 ] = "json";
+
+               // Delegate to script
+               return "script";
+       }
+});
+
+
+
+
+// Install script dataType
+jQuery.ajaxSetup({
+       accepts: {
+               script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
+       },
+       contents: {
+               script: /javascript|ecmascript/
+       },
+       converters: {
+               "text script": function( text ) {
+                       jQuery.globalEval( text );
+                       return text;
+               }
+       }
+});
+
+// Handle cache's special case and global
+jQuery.ajaxPrefilter( "script", function( s ) {
+       if ( s.cache === undefined ) {
+               s.cache = false;
+       }
+       if ( s.crossDomain ) {
+               s.type = "GET";
+               s.global = false;
+       }
+});
+
+// Bind script tag hack transport
+jQuery.ajaxTransport( "script", function(s) {
+
+       // This transport only deals with cross domain requests
+       if ( s.crossDomain ) {
+
+               var script,
+                       head = document.head || document.getElementsByTagName( "head" )[0] || document.documentElement;
+
+               return {
+
+                       send: function( _, callback ) {
+
+                               script = document.createElement( "script" );
+
+                               script.async = "async";
+
+                               if ( s.scriptCharset ) {
+                                       script.charset = s.scriptCharset;
+                               }
+
+                               script.src = s.url;
+
+                               // Attach handlers for all browsers
+                               script.onload = script.onreadystatechange = function( _, isAbort ) {
+
+                                       if ( isAbort || !script.readyState || /loaded|complete/.test( script.readyState ) ) {
+
+                                               // Handle memory leak in IE
+                                               script.onload = script.onreadystatechange = null;
+
+                                               // Remove the script
+                                               if ( head && script.parentNode ) {
+                                                       head.removeChild( script );
+                                               }
+
+                                               // Dereference the script
+                                               script = undefined;
+
+                                               // Callback if not abort
+                                               if ( !isAbort ) {
+                                                       callback( 200, "success" );
+                                               }
+                                       }
+                               };
+                               // Use insertBefore instead of appendChild  to circumvent an IE6 bug.
+                               // This arises when a base node is used (#2709 and #4378).
+                               head.insertBefore( script, head.firstChild );
+                       },
+
+                       abort: function() {
+                               if ( script ) {
+                                       script.onload( 0, 1 );
+                               }
+                       }
+               };
+       }
+});
+
+
+
+
+var // #5280: Internet Explorer will keep connections alive if we don't abort on unload
+       xhrOnUnloadAbort = window.ActiveXObject ? function() {
+               // Abort all pending requests
+               for ( var key in xhrCallbacks ) {
+                       xhrCallbacks[ key ]( 0, 1 );
+               }
+       } : false,
+       xhrId = 0,
+       xhrCallbacks;
+
+// Functions to create xhrs
+function createStandardXHR() {
+       try {
+               return new window.XMLHttpRequest();
+       } catch( e ) {}
+}
+
+function createActiveXHR() {
+       try {
+               return new window.ActiveXObject( "Microsoft.XMLHTTP" );
+       } catch( e ) {}
+}
+
+// Create the request object
+// (This is still attached to ajaxSettings for backward compatibility)
+jQuery.ajaxSettings.xhr = window.ActiveXObject ?
+       /* Microsoft failed to properly
+        * implement the XMLHttpRequest in IE7 (can't request local files),
+        * so we use the ActiveXObject when it is available
+        * Additionally XMLHttpRequest can be disabled in IE7/IE8 so
+        * we need a fallback.
+        */
+       function() {
+               return !this.isLocal && createStandardXHR() || createActiveXHR();
+       } :
+       // For all other browsers, use the standard XMLHttpRequest object
+       createStandardXHR;
+
+// Determine support properties
+(function( xhr ) {
+       jQuery.extend( jQuery.support, {
+               ajax: !!xhr,
+               cors: !!xhr && ( "withCredentials" in xhr )
+       });
+})( jQuery.ajaxSettings.xhr() );
+
+// Create transport if the browser can provide an xhr
+if ( jQuery.support.ajax ) {
+
+       jQuery.ajaxTransport(function( s ) {
+               // Cross domain only allowed if supported through XMLHttpRequest
+               if ( !s.crossDomain || jQuery.support.cors ) {
+
+                       var callback;
+
+                       return {
+                               send: function( headers, complete ) {
+
+                                       // Get a new xhr
+                                       var xhr = s.xhr(),
+                                               handle,
+                                               i;
+
+                                       // Open the socket
+                                       // Passing null username, generates a login popup on Opera (#2865)
+                                       if ( s.username ) {
+                                               xhr.open( s.type, s.url, s.async, s.username, s.password );
+                                       } else {
+                                               xhr.open( s.type, s.url, s.async );
+                                       }
+
+                                       // Apply custom fields if provided
+                                       if ( s.xhrFields ) {
+                                               for ( i in s.xhrFields ) {
+                                                       xhr[ i ] = s.xhrFields[ i ];
+                                               }
+                                       }
+
+                                       // Override mime type if needed
+                                       if ( s.mimeType && xhr.overrideMimeType ) {
+                                               xhr.overrideMimeType( s.mimeType );
+                                       }
+
+                                       // X-Requested-With header
+                                       // For cross-domain requests, seeing as conditions for a preflight are
+                                       // akin to a jigsaw puzzle, we simply never set it to be sure.
+                                       // (it can always be set on a per-request basis or even using ajaxSetup)
+                                       // For same-domain requests, won't change header if already provided.
+                                       if ( !s.crossDomain && !headers["X-Requested-With"] ) {
+                                               headers[ "X-Requested-With" ] = "XMLHttpRequest";
+                                       }
+
+                                       // Need an extra try/catch for cross domain requests in Firefox 3
+                                       try {
+                                               for ( i in headers ) {
+                                                       xhr.setRequestHeader( i, headers[ i ] );
+                                               }
+                                       } catch( _ ) {}
+
+                                       // Do send the request
+                                       // This may raise an exception which is actually
+                                       // handled in jQuery.ajax (so no try/catch here)
+                                       xhr.send( ( s.hasContent && s.data ) || null );
+
+                                       // Listener
+                                       callback = function( _, isAbort ) {
+
+                                               var status,
+                                                       statusText,
+                                                       responseHeaders,
+                                                       responses,
+                                                       xml;
+
+                                               // Firefox throws exceptions when accessing properties
+                                               // of an xhr when a network error occured
+                                               // http://helpful.knobs-dials.com/index.php/Component_returned_failure_code:_0x80040111_(NS_ERROR_NOT_AVAILABLE)
+                                               try {
+
+                                                       // Was never called and is aborted or complete
+                                                       if ( callback && ( isAbort || xhr.readyState === 4 ) ) {
+
+                                                               // Only called once
+                                                               callback = undefined;
+
+                                                               // Do not keep as active anymore
+                                                               if ( handle ) {
+                                                                       xhr.onreadystatechange = jQuery.noop;
+                                                                       if ( xhrOnUnloadAbort ) {
+                                                                               delete xhrCallbacks[ handle ];
+                                                                       }
+                                                               }
+
+                                                               // If it's an abort
+                                                               if ( isAbort ) {
+                                                                       // Abort it manually if needed
+                                                                       if ( xhr.readyState !== 4 ) {
+                                                                               xhr.abort();
+                                                                       }
+                                                               } else {
+                                                                       status = xhr.status;
+                                                                       responseHeaders = xhr.getAllResponseHeaders();
+                                                                       responses = {};
+                                                                       xml = xhr.responseXML;
+
+                                                                       // Construct response list
+                                                                       if ( xml && xml.documentElement /* #4958 */ ) {
+                                                                               responses.xml = xml;
+                                                                       }
+                                                                       responses.text = xhr.responseText;
+
+                                                                       // Firefox throws an exception when accessing
+                                                                       // statusText for faulty cross-domain requests
+                                                                       try {
+                                                                               statusText = xhr.statusText;
+                                                                       } catch( e ) {
+                                                                               // We normalize with Webkit giving an empty statusText
+                                                                               statusText = "";
+                                                                       }
+
+                                                                       // Filter status for non standard behaviors
+
+                                                                       // If the request is local and we have data: assume a success
+                                                                       // (success with no data won't get notified, that's the best we
+                                                                       // can do given current implementations)
+                                                                       if ( !status && s.isLocal && !s.crossDomain ) {
+                                                                               status = responses.text ? 200 : 404;
+                                                                       // IE - #1450: sometimes returns 1223 when it should be 204
+                                                                       } else if ( status === 1223 ) {
+                                                                               status = 204;
+                                                                       }
+                                                               }
+                                                       }
+                                               } catch( firefoxAccessException ) {
+                                                       if ( !isAbort ) {
+                                                               complete( -1, firefoxAccessException );
+                                                       }
+                                               }
+
+                                               // Call complete if needed
+                                               if ( responses ) {
+                                                       complete( status, statusText, responses, responseHeaders );
+                                               }
+                                       };
+
+                                       // if we're in sync mode or it's in cache
+                                       // and has been retrieved directly (IE6 & IE7)
+                                       // we need to manually fire the callback
+                                       if ( !s.async || xhr.readyState === 4 ) {
+                                               callback();
+                                       } else {
+                                               handle = ++xhrId;
+                                               if ( xhrOnUnloadAbort ) {
+                                                       // Create the active xhrs callbacks list if needed
+                                                       // and attach the unload handler
+                                                       if ( !xhrCallbacks ) {
+                                                               xhrCallbacks = {};
+                                                               jQuery( window ).unload( xhrOnUnloadAbort );
+                                                       }
+                                                       // Add to list of active xhrs callbacks
+                                                       xhrCallbacks[ handle ] = callback;
+                                               }
+                                               xhr.onreadystatechange = callback;
+                                       }
+                               },
+
+                               abort: function() {
+                                       if ( callback ) {
+                                               callback(0,1);
+                                       }
+                               }
+                       };
+               }
+       });
+}
+
+
+
+
+var elemdisplay = {},
+       iframe, iframeDoc,
+       rfxtypes = /^(?:toggle|show|hide)$/,
+       rfxnum = /^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,
+       timerId,
+       fxAttrs = [
+               // height animations
+               [ "height", "marginTop", "marginBottom", "paddingTop", "paddingBottom" ],
+               // width animations
+               [ "width", "marginLeft", "marginRight", "paddingLeft", "paddingRight" ],
+               // opacity animations
+               [ "opacity" ]
+       ],
+       fxNow;
+
+jQuery.fn.extend({
+       show: function( speed, easing, callback ) {
+               var elem, display;
+
+               if ( speed || speed === 0 ) {
+                       return this.animate( genFx("show", 3), speed, easing, callback);
+
+               } else {
+                       for ( var i = 0, j = this.length; i < j; i++ ) {
+                               elem = this[i];
+
+                               if ( elem.style ) {
+                                       display = elem.style.display;
+
+                                       // Reset the inline display of this element to learn if it is
+                                       // being hidden by cascaded rules or not
+                                       if ( !jQuery._data(elem, "olddisplay") && display === "none" ) {
+                                               display = elem.style.display = "";
+                                       }
+
+                                       // Set elements which have been overridden with display: none
+                                       // in a stylesheet to whatever the default browser style is
+                                       // for such an element
+                                       if ( display === "none" || ( display === ""  && jQuery.css( elem, "display" ) === "none" ) ) {
+                                               jQuery._data(elem, "olddisplay", defaultDisplay(elem.nodeName));
+                                       }
+                               }
+                       }
+
+                       // Set the display of most of the elements in a second loop
+                       // to avoid the constant reflow
+                       for ( i = 0; i < j; i++ ) {
+                               elem = this[i];
+
+                               if ( elem.style ) {
+                                       display = elem.style.display;
+
+                                       if ( display === "" || display === "none" ) {
+                                               elem.style.display = jQuery._data(elem, "olddisplay") || "";
+                                       }
+                               }
+                       }
+
+                       return this;
+               }
+       },
+
+       hide: function( speed, easing, callback ) {
+               if ( speed || speed === 0 ) {
+                       return this.animate( genFx("hide", 3), speed, easing, callback);
+
+               } else {
+                       for ( var i = 0, j = this.length; i < j; i++ ) {
+                               if ( this[i].style ) {
+                                       var display = jQuery.css( this[i], "display" );
+
+                                       if ( display !== "none" && !jQuery._data( this[i], "olddisplay" ) ) {
+                                               jQuery._data( this[i], "olddisplay", display );
+                                       }
+                               }
+                       }
+
+                       // Set the display of the elements in a second loop
+                       // to avoid the constant reflow
+                       for ( i = 0; i < j; i++ ) {
+                               if ( this[i].style ) {
+                                       this[i].style.display = "none";
+                               }
+                       }
+
+                       return this;
+               }
+       },
+
+       // Save the old toggle function
+       _toggle: jQuery.fn.toggle,
+
+       toggle: function( fn, fn2, callback ) {
+               var bool = typeof fn === "boolean";
+
+               if ( jQuery.isFunction(fn) && jQuery.isFunction(fn2) ) {
+                       this._toggle.apply( this, arguments );
+
+               } else if ( fn == null || bool ) {
+                       this.each(function() {
+                               var state = bool ? fn : jQuery(this).is(":hidden");
+                               jQuery(this)[ state ? "show" : "hide" ]();
+                       });
+
+               } else {
+                       this.animate(genFx("toggle", 3), fn, fn2, callback);
+               }
+
+               return this;
+       },
+
+       fadeTo: function( speed, to, easing, callback ) {
+               return this.filter(":hidden").css("opacity", 0).show().end()
+                                       .animate({opacity: to}, speed, easing, callback);
+       },
+
+       animate: function( prop, speed, easing, callback ) {
+               var optall = jQuery.speed( speed, easing, callback );
+
+               if ( jQuery.isEmptyObject( prop ) ) {
+                       return this.each( optall.complete, [ false ] );
+               }
+
+               // Do not change referenced properties as per-property easing will be lost
+               prop = jQuery.extend( {}, prop );
+
+               function doAnimation() {
+                       // XXX 'this' does not always have a nodeName when running the
+                       // test suite
+
+                       if ( optall.queue === false ) {
+                               jQuery._mark( this );
+                       }
+
+                       var opt = jQuery.extend( {}, optall ),
+                               isElement = this.nodeType === 1,
+                               hidden = isElement && jQuery(this).is(":hidden"),
+                               name, val, p, e,
+                               parts, start, end, unit,
+                               method;
+
+                       // will store per property easing and be used to determine when an animation is complete
+                       opt.animatedProperties = {};
+
+                       for ( p in prop ) {
+
+                               // property name normalization
+                               name = jQuery.camelCase( p );
+                               if ( p !== name ) {
+                                       prop[ name ] = prop[ p ];
+                                       delete prop[ p ];
+                               }
+
+                               val = prop[ name ];
+
+                               // easing resolution: per property > opt.specialEasing > opt.easing > 'swing' (default)
+                               if ( jQuery.isArray( val ) ) {
+                                       opt.animatedProperties[ name ] = val[ 1 ];
+                                       val = prop[ name ] = val[ 0 ];
+                               } else {
+                                       opt.animatedProperties[ name ] = opt.specialEasing && opt.specialEasing[ name ] || opt.easing || 'swing';
+                               }
+
+                               if ( val === "hide" && hidden || val === "show" && !hidden ) {
+                                       return opt.complete.call( this );
+                               }
+
+                               if ( isElement && ( name === "height" || name === "width" ) ) {
+                                       // Make sure that nothing sneaks out
+                                       // Record all 3 overflow attributes because IE does not
+                                       // change the overflow attribute when overflowX and
+                                       // overflowY are set to the same value
+                                       opt.overflow = [ this.style.overflow, this.style.overflowX, this.style.overflowY ];
+
+                                       // Set display property to inline-block for height/width
+                                       // animations on inline elements that are having width/height animated
+                                       if ( jQuery.css( this, "display" ) === "inline" &&
+                                                       jQuery.css( this, "float" ) === "none" ) {
+
+                                               // inline-level elements accept inline-block;
+                                               // block-level elements need to be inline with layout
+                                               if ( !jQuery.support.inlineBlockNeedsLayout || defaultDisplay( this.nodeName ) === "inline" ) {
+                                                       this.style.display = "inline-block";
+
+                                               } else {
+                                                       this.style.zoom = 1;
+                                               }
+                                       }
+                               }
+                       }
+
+                       if ( opt.overflow != null ) {
+                               this.style.overflow = "hidden";
+                       }
+
+                       for ( p in prop ) {
+                               e = new jQuery.fx( this, opt, p );
+                               val = prop[ p ];
+
+                               if ( rfxtypes.test( val ) ) {
+
+                                       // Tracks whether to show or hide based on private
+                                       // data attached to the element
+                                       method = jQuery._data( this, "toggle" + p ) || (val === "toggle" ? hidden ? "show" : "hide" : 0);
+                                       if ( method ) {
+                                               jQuery._data( this, "toggle" + p, method === "show" ? "hide" : "show" );
+                                               e[ method ]();
+                                       } else {
+                                               e[ val ]();
+                                       }
+
+                               } else {
+                                       parts = rfxnum.exec( val );
+                                       start = e.cur();
+
+                                       if ( parts ) {
+                                               end = parseFloat( parts[2] );
+                                               unit = parts[3] || ( jQuery.cssNumber[ p ] ? "" : "px" );
+
+                                               // We need to compute starting value
+                                               if ( unit !== "px" ) {
+                                                       jQuery.style( this, p, (end || 1) + unit);
+                                                       start = ((end || 1) / e.cur()) * start;
+                                                       jQuery.style( this, p, start + unit);
+                                               }
+
+                                               // If a +=/-= token was provided, we're doing a relative animation
+                                               if ( parts[1] ) {
+                                                       end = ( (parts[ 1 ] === "-=" ? -1 : 1) * end ) + start;
+                                               }
+
+                                               e.custom( start, end, unit );
+
+                                       } else {
+                                               e.custom( start, val, "" );
+                                       }
+                               }
+                       }
+
+                       // For JS strict compliance
+                       return true;
+               }
+
+               return optall.queue === false ?
+                       this.each( doAnimation ) :
+                       this.queue( optall.queue, doAnimation );
+       },
+
+       stop: function( type, clearQueue, gotoEnd ) {
+               if ( typeof type !== "string" ) {
+                       gotoEnd = clearQueue;
+                       clearQueue = type;
+                       type = undefined;
+               }
+               if ( clearQueue && type !== false ) {
+                       this.queue( type || "fx", [] );
+               }
+
+               return this.each(function() {
+                       var i,
+                               hadTimers = false,
+                               timers = jQuery.timers,
+                               data = jQuery._data( this );
+
+                       // clear marker counters if we know they won't be
+                       if ( !gotoEnd ) {
+                               jQuery._unmark( true, this );
+                       }
+
+                       function stopQueue( elem, data, i ) {
+                               var runner = data[ i ];
+                               jQuery.removeData( elem, i, true );
+                               runner.stop( gotoEnd );
+                       }
+
+                       if ( type == null ) {
+                               for ( i in data ) {
+                                       if ( data[ i ].stop && i.indexOf(".run") === i.length - 4 ) {
+                                               stopQueue( this, data, i );
+                                       }
+                               }
+                       } else if ( data[ i = type + ".run" ] && data[ i ].stop ){
+                               stopQueue( this, data, i );
+                       }
+
+                       for ( i = timers.length; i--; ) {
+                               if ( timers[ i ].elem === this && (type == null || timers[ i ].queue === type) ) {
+                                       if ( gotoEnd ) {
+
+                                               // force the next step to be the last
+                                               timers[ i ]( true );
+                                       } else {
+                                               timers[ i ].saveState();
+                                       }
+                                       hadTimers = true;
+                                       timers.splice( i, 1 );
+                               }
+                       }
+
+                       // start the next in the queue if the last step wasn't forced
+                       // timers currently will call their complete callbacks, which will dequeue
+                       // but only if they were gotoEnd
+                       if ( !( gotoEnd && hadTimers ) ) {
+                               jQuery.dequeue( this, type );
+                       }
+               });
+       }
+
+});
+
+// Animations created synchronously will run synchronously
+function createFxNow() {
+       setTimeout( clearFxNow, 0 );
+       return ( fxNow = jQuery.now() );
+}
+
+function clearFxNow() {
+       fxNow = undefined;
+}
+
+// Generate parameters to create a standard animation
+function genFx( type, num ) {
+       var obj = {};
+
+       jQuery.each( fxAttrs.concat.apply([], fxAttrs.slice( 0, num )), function() {
+               obj[ this ] = type;
+       });
+
+       return obj;
+}
+
+// Generate shortcuts for custom animations
+jQuery.each({
+       slideDown: genFx( "show", 1 ),
+       slideUp: genFx( "hide", 1 ),
+       slideToggle: genFx( "toggle", 1 ),
+       fadeIn: { opacity: "show" },
+       fadeOut: { opacity: "hide" },
+       fadeToggle: { opacity: "toggle" }
+}, function( name, props ) {
+       jQuery.fn[ name ] = function( speed, easing, callback ) {
+               return this.animate( props, speed, easing, callback );
+       };
+});
+
+jQuery.extend({
+       speed: function( speed, easing, fn ) {
+               var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : {
+                       complete: fn || !fn && easing ||
+                               jQuery.isFunction( speed ) && speed,
+                       duration: speed,
+                       easing: fn && easing || easing && !jQuery.isFunction( easing ) && easing
+               };
+
+               opt.duration = jQuery.fx.off ? 0 : typeof opt.duration === "number" ? opt.duration :
+                       opt.duration in jQuery.fx.speeds ? jQuery.fx.speeds[ opt.duration ] : jQuery.fx.speeds._default;
+
+               // normalize opt.queue - true/undefined/null -> "fx"
+               if ( opt.queue == null || opt.queue === true ) {
+                       opt.queue = "fx";
+               }
+
+               // Queueing
+               opt.old = opt.complete;
+
+               opt.complete = function( noUnmark ) {
+                       if ( jQuery.isFunction( opt.old ) ) {
+                               opt.old.call( this );
+                       }
+
+                       if ( opt.queue ) {
+                               jQuery.dequeue( this, opt.queue );
+                       } else if ( noUnmark !== false ) {
+                               jQuery._unmark( this );
+                       }
+               };
+
+               return opt;
+       },
+
+       easing: {
+               linear: function( p, n, firstNum, diff ) {
+                       return firstNum + diff * p;
+               },
+               swing: function( p, n, firstNum, diff ) {
+                       return ((-Math.cos(p*Math.PI)/2) + 0.5) * diff + firstNum;
+               }
+       },
+
+       timers: [],
+
+       fx: function( elem, options, prop ) {
+               this.options = options;
+               this.elem = elem;
+               this.prop = prop;
+
+               options.orig = options.orig || {};
+       }
+
+});
+
+jQuery.fx.prototype = {
+       // Simple function for setting a style value
+       update: function() {
+               if ( this.options.step ) {
+                       this.options.step.call( this.elem, this.now, this );
+               }
+
+               (jQuery.fx.step[ this.prop ] || jQuery.fx.step._default)( this );
+       },
+
+       // Get the current size
+       cur: function() {
+               if ( this.elem[ this.prop ] != null && (!this.elem.style || this.elem.style[ this.prop ] == null) ) {
+                       return this.elem[ this.prop ];
+               }
+
+               var parsed,
+                       r = jQuery.css( this.elem, this.prop );
+               // Empty strings, null, undefined and "auto" are converted to 0,
+               // complex values such as "rotate(1rad)" are returned as is,
+               // simple values such as "10px" are parsed to Float.
+               return isNaN( parsed = parseFloat( r ) ) ? !r || r === "auto" ? 0 : r : parsed;
+       },
+
+       // Start an animation from one number to another
+       custom: function( from, to, unit ) {
+               var self = this,
+                       fx = jQuery.fx;
+
+               this.startTime = fxNow || createFxNow();
+               this.end = to;
+               this.now = this.start = from;
+               this.pos = this.state = 0;
+               this.unit = unit || this.unit || ( jQuery.cssNumber[ this.prop ] ? "" : "px" );
+
+               function t( gotoEnd ) {
+                       return self.step( gotoEnd );
+               }
+
+               t.queue = this.options.queue;
+               t.elem = this.elem;
+               t.saveState = function() {
+                       if ( self.options.hide && jQuery._data( self.elem, "fxshow" + self.prop ) === undefined ) {
+                               jQuery._data( self.elem, "fxshow" + self.prop, self.start );
+                       }
+               };
+
+               if ( t() && jQuery.timers.push(t) && !timerId ) {
+                       timerId = setInterval( fx.tick, fx.interval );
+               }
+       },
+
+       // Simple 'show' function
+       show: function() {
+               var dataShow = jQuery._data( this.elem, "fxshow" + this.prop );
+
+               // Remember where we started, so that we can go back to it later
+               this.options.orig[ this.prop ] = dataShow || jQuery.style( this.elem, this.prop );
+               this.options.show = true;
+
+               // Begin the animation
+               // Make sure that we start at a small width/height to avoid any flash of content
+               if ( dataShow !== undefined ) {
+                       // This show is picking up where a previous hide or show left off
+                       this.custom( this.cur(), dataShow );
+               } else {
+                       this.custom( this.prop === "width" || this.prop === "height" ? 1 : 0, this.cur() );
+               }
+
+               // Start by showing the element
+               jQuery( this.elem ).show();
+       },
+
+       // Simple 'hide' function
+       hide: function() {
+               // Remember where we started, so that we can go back to it later
+               this.options.orig[ this.prop ] = jQuery._data( this.elem, "fxshow" + this.prop ) || jQuery.style( this.elem, this.prop );
+               this.options.hide = true;
+
+               // Begin the animation
+               this.custom( this.cur(), 0 );
+       },
+
+       // Each step of an animation
+       step: function( gotoEnd ) {
+               var p, n, complete,
+                       t = fxNow || createFxNow(),
+                       done = true,
+                       elem = this.elem,
+                       options = this.options;
+
+               if ( gotoEnd || t >= options.duration + this.startTime ) {
+                       this.now = this.end;
+                       this.pos = this.state = 1;
+                       this.update();
+
+                       options.animatedProperties[ this.prop ] = true;
+
+                       for ( p in options.animatedProperties ) {
+                               if ( options.animatedProperties[ p ] !== true ) {
+                                       done = false;
+                               }
+                       }
+
+                       if ( done ) {
+                               // Reset the overflow
+                               if ( options.overflow != null && !jQuery.support.shrinkWrapBlocks ) {
+
+                                       jQuery.each( [ "", "X", "Y" ], function( index, value ) {
+                                               elem.style[ "overflow" + value ] = options.overflow[ index ];
+                                       });
+                               }
+
+                               // Hide the element if the "hide" operation was done
+                               if ( options.hide ) {
+                                       jQuery( elem ).hide();
+                               }
+
+                               // Reset the properties, if the item has been hidden or shown
+                               if ( options.hide || options.show ) {
+                                       for ( p in options.animatedProperties ) {
+                                               jQuery.style( elem, p, options.orig[ p ] );
+                                               jQuery.removeData( elem, "fxshow" + p, true );
+                                               // Toggle data is no longer needed
+                                               jQuery.removeData( elem, "toggle" + p, true );
+                                       }
+                               }
+
+                               // Execute the complete function
+                               // in the event that the complete function throws an exception
+                               // we must ensure it won't be called twice. #5684
+
+                               complete = options.complete;
+                               if ( complete ) {
+
+                                       options.complete = false;
+                                       complete.call( elem );
+                               }
+                       }
+
+                       return false;
+
+               } else {
+                       // classical easing cannot be used with an Infinity duration
+                       if ( options.duration == Infinity ) {
+                               this.now = t;
+                       } else {
+                               n = t - this.startTime;
+                               this.state = n / options.duration;
+
+                               // Perform the easing function, defaults to swing
+                               this.pos = jQuery.easing[ options.animatedProperties[this.prop] ]( this.state, n, 0, 1, options.duration );
+                               this.now = this.start + ( (this.end - this.start) * this.pos );
+                       }
+                       // Perform the next step of the animation
+                       this.update();
+               }
+
+               return true;
+       }
+};
+
+jQuery.extend( jQuery.fx, {
+       tick: function() {
+               var timer,
+                       timers = jQuery.timers,
+                       i = 0;
+
+               for ( ; i < timers.length; i++ ) {
+                       timer = timers[ i ];
+                       // Checks the timer has not already been removed
+                       if ( !timer() && timers[ i ] === timer ) {
+                               timers.splice( i--, 1 );
+                       }
+               }
+
+               if ( !timers.length ) {
+                       jQuery.fx.stop();
+               }
+       },
+
+       interval: 13,
+
+       stop: function() {
+               clearInterval( timerId );
+               timerId = null;
+       },
+
+       speeds: {
+               slow: 600,
+               fast: 200,
+               // Default speed
+               _default: 400
+       },
+
+       step: {
+               opacity: function( fx ) {
+                       jQuery.style( fx.elem, "opacity", fx.now );
+               },
+
+               _default: function( fx ) {
+                       if ( fx.elem.style && fx.elem.style[ fx.prop ] != null ) {
+                               fx.elem.style[ fx.prop ] = fx.now + fx.unit;
+                       } else {
+                               fx.elem[ fx.prop ] = fx.now;
+                       }
+               }
+       }
+});
+
+// Adds width/height step functions
+// Do not set anything below 0
+jQuery.each([ "width", "height" ], function( i, prop ) {
+       jQuery.fx.step[ prop ] = function( fx ) {
+               jQuery.style( fx.elem, prop, Math.max(0, fx.now) );
+       };
+});
+
+if ( jQuery.expr && jQuery.expr.filters ) {
+       jQuery.expr.filters.animated = function( elem ) {
+               return jQuery.grep(jQuery.timers, function( fn ) {
+                       return elem === fn.elem;
+               }).length;
+       };
+}
+
+// Try to restore the default display value of an element
+function defaultDisplay( nodeName ) {
+
+       if ( !elemdisplay[ nodeName ] ) {
+
+               var body = document.body,
+                       elem = jQuery( "<" + nodeName + ">" ).appendTo( body ),
+                       display = elem.css( "display" );
+
+               elem.remove();
+
+               // If the simple way fails,
+               // get element's real default display by attaching it to a temp iframe
+               if ( display === "none" || display === "" ) {
+                       // No iframe to use yet, so create it
+                       if ( !iframe ) {
+                               iframe = document.createElement( "iframe" );
+                               iframe.frameBorder = iframe.width = iframe.height = 0;
+                       }
+
+                       body.appendChild( iframe );
+
+                       // Create a cacheable copy of the iframe document on first call.
+                       // IE and Opera will allow us to reuse the iframeDoc without re-writing the fake HTML
+                       // document to it; WebKit & Firefox won't allow reusing the iframe document.
+                       if ( !iframeDoc || !iframe.createElement ) {
+                               iframeDoc = ( iframe.contentWindow || iframe.contentDocument ).document;
+                               iframeDoc.write( ( document.compatMode === "CSS1Compat" ? "<!doctype html>" : "" ) + "<html><body>" );
+                               iframeDoc.close();
+                       }
+
+                       elem = iframeDoc.createElement( nodeName );
+
+                       iframeDoc.body.appendChild( elem );
+
+                       display = jQuery.css( elem, "display" );
+
+                       body.removeChild( iframe );
+               }
+
+               // Store the correct default display
+               elemdisplay[ nodeName ] = display;
+       }
+
+       return elemdisplay[ nodeName ];
+}
+
+
+
+
+var rtable = /^t(?:able|d|h)$/i,
+       rroot = /^(?:body|html)$/i;
+
+if ( "getBoundingClientRect" in document.documentElement ) {
+       jQuery.fn.offset = function( options ) {
+               var elem = this[0], box;
+
+               if ( options ) {
+                       return this.each(function( i ) {
+                               jQuery.offset.setOffset( this, options, i );
+                       });
+               }
+
+               if ( !elem || !elem.ownerDocument ) {
+                       return null;
+               }
+
+               if ( elem === elem.ownerDocument.body ) {
+                       return jQuery.offset.bodyOffset( elem );
+               }
+
+               try {
+                       box = elem.getBoundingClientRect();
+               } catch(e) {}
+
+               var doc = elem.ownerDocument,
+                       docElem = doc.documentElement;
+
+               // Make sure we're not dealing with a disconnected DOM node
+               if ( !box || !jQuery.contains( docElem, elem ) ) {
+                       return box ? { top: box.top, left: box.left } : { top: 0, left: 0 };
+               }
+
+               var body = doc.body,
+                       win = getWindow(doc),
+                       clientTop  = docElem.clientTop  || body.clientTop  || 0,
+                       clientLeft = docElem.clientLeft || body.clientLeft || 0,
+                       scrollTop  = win.pageYOffset || jQuery.support.boxModel && docElem.scrollTop  || body.scrollTop,
+                       scrollLeft = win.pageXOffset || jQuery.support.boxModel && docElem.scrollLeft || body.scrollLeft,
+                       top  = box.top  + scrollTop  - clientTop,
+                       left = box.left + scrollLeft - clientLeft;
+
+               return { top: top, left: left };
+       };
+
+} else {
+       jQuery.fn.offset = function( options ) {
+               var elem = this[0];
+
+               if ( options ) {
+                       return this.each(function( i ) {
+                               jQuery.offset.setOffset( this, options, i );
+                       });
+               }
+
+               if ( !elem || !elem.ownerDocument ) {
+                       return null;
+               }
+
+               if ( elem === elem.ownerDocument.body ) {
+                       return jQuery.offset.bodyOffset( elem );
+               }
+
+               var computedStyle,
+                       offsetParent = elem.offsetParent,
+                       prevOffsetParent = elem,
+                       doc = elem.ownerDocument,
+                       docElem = doc.documentElement,
+                       body = doc.body,
+                       defaultView = doc.defaultView,
+                       prevComputedStyle = defaultView ? defaultView.getComputedStyle( elem, null ) : elem.currentStyle,
+                       top = elem.offsetTop,
+                       left = elem.offsetLeft;
+
+               while ( (elem = elem.parentNode) && elem !== body && elem !== docElem ) {
+                       if ( jQuery.offset.supportsFixedPosition && prevComputedStyle.position === "fixed" ) {
+                               break;
+                       }
+
+                       computedStyle = defaultView ? defaultView.getComputedStyle(elem, null) : elem.currentStyle;
+                       top  -= elem.scrollTop;
+                       left -= elem.scrollLeft;
+
+                       if ( elem === offsetParent ) {
+                               top  += elem.offsetTop;
+                               left += elem.offsetLeft;
+
+                               if ( jQuery.offset.doesNotAddBorder && !(jQuery.offset.doesAddBorderForTableAndCells && rtable.test(elem.nodeName)) ) {
+                                       top  += parseFloat( computedStyle.borderTopWidth  ) || 0;
+                                       left += parseFloat( computedStyle.borderLeftWidth ) || 0;
+                               }
+
+                               prevOffsetParent = offsetParent;
+                               offsetParent = elem.offsetParent;
+                       }
+
+                       if ( jQuery.offset.subtractsBorderForOverflowNotVisible && computedStyle.overflow !== "visible" ) {
+                               top  += parseFloat( computedStyle.borderTopWidth  ) || 0;
+                               left += parseFloat( computedStyle.borderLeftWidth ) || 0;
+                       }
+
+                       prevComputedStyle = computedStyle;
+               }
+
+               if ( prevComputedStyle.position === "relative" || prevComputedStyle.position === "static" ) {
+                       top  += body.offsetTop;
+                       left += body.offsetLeft;
+               }
+
+               if ( jQuery.offset.supportsFixedPosition && prevComputedStyle.position === "fixed" ) {
+                       top  += Math.max( docElem.scrollTop, body.scrollTop );
+                       left += Math.max( docElem.scrollLeft, body.scrollLeft );
+               }
+
+               return { top: top, left: left };
+       };
+}
+
+jQuery.offset = {};
+
+jQuery.each(
+       ( "doesAddBorderForTableAndCells doesNotAddBorder " +
+               "doesNotIncludeMarginInBodyOffset subtractsBorderForOverflowNotVisible " +
+               "supportsFixedPosition" ).split(" "), function( i, prop ) {
+
+       jQuery.offset[ prop ] = jQuery.support[ prop ];
+});
+
+jQuery.extend( jQuery.offset, {
+
+       bodyOffset: function( body ) {
+               var top = body.offsetTop,
+                       left = body.offsetLeft;
+
+               if ( jQuery.offset.doesNotIncludeMarginInBodyOffset ) {
+                       top  += parseFloat( jQuery.css(body, "marginTop") ) || 0;
+                       left += parseFloat( jQuery.css(body, "marginLeft") ) || 0;
+               }
+
+               return { top: top, left: left };
+       },
+
+       setOffset: function( elem, options, i ) {
+               var position = jQuery.css( elem, "position" );
+
+               // set position first, in-case top/left are set even on static elem
+               if ( position === "static" ) {
+                       elem.style.position = "relative";
+               }
+
+               var curElem = jQuery( elem ),
+                       curOffset = curElem.offset(),
+                       curCSSTop = jQuery.css( elem, "top" ),
+                       curCSSLeft = jQuery.css( elem, "left" ),
+                       calculatePosition = (position === "absolute" || position === "fixed") && jQuery.inArray("auto", [curCSSTop, curCSSLeft]) > -1,
+                       props = {}, curPosition = {}, curTop, curLeft;
+
+               // need to be able to calculate position if either top or left is auto and position is either absolute or fixed
+               if ( calculatePosition ) {
+                       curPosition = curElem.position();
+                       curTop = curPosition.top;
+                       curLeft = curPosition.left;
+               } else {
+                       curTop = parseFloat( curCSSTop ) || 0;
+                       curLeft = parseFloat( curCSSLeft ) || 0;
+               }
+
+               if ( jQuery.isFunction( options ) ) {
+                       options = options.call( elem, i, curOffset );
+               }
+
+               if (options.top != null) {
+                       props.top = (options.top - curOffset.top) + curTop;
+               }
+               if (options.left != null) {
+                       props.left = (options.left - curOffset.left) + curLeft;
+               }
+
+               if ( "using" in options ) {
+                       options.using.call( elem, props );
+               } else {
+                       curElem.css( props );
+               }
+       }
+});
+
+
+jQuery.fn.extend({
+
+       position: function() {
+               if ( !this[0] ) {
+                       return null;
+               }
+
+               var elem = this[0],
+
+               // Get *real* offsetParent
+               offsetParent = this.offsetParent(),
+
+               // Get correct offsets
+               offset       = this.offset(),
+               parentOffset = rroot.test(offsetParent[0].nodeName) ? { top: 0, left: 0 } : offsetParent.offset();
+
+               // Subtract element margins
+               // note: when an element has margin: auto the offsetLeft and marginLeft
+               // are the same in Safari causing offset.left to incorrectly be 0
+               offset.top  -= parseFloat( jQuery.css(elem, "marginTop") ) || 0;
+               offset.left -= parseFloat( jQuery.css(elem, "marginLeft") ) || 0;
+
+               // Add offsetParent borders
+               parentOffset.top  += parseFloat( jQuery.css(offsetParent[0], "borderTopWidth") ) || 0;
+               parentOffset.left += parseFloat( jQuery.css(offsetParent[0], "borderLeftWidth") ) || 0;
+
+               // Subtract the two offsets
+               return {
+                       top:  offset.top  - parentOffset.top,
+                       left: offset.left - parentOffset.left
+               };
+       },
+
+       offsetParent: function() {
+               return this.map(function() {
+                       var offsetParent = this.offsetParent || document.body;
+                       while ( offsetParent && (!rroot.test(offsetParent.nodeName) && jQuery.css(offsetParent, "position") === "static") ) {
+                               offsetParent = offsetParent.offsetParent;
+                       }
+                       return offsetParent;
+               });
+       }
+});
+
+
+// Create scrollLeft and scrollTop methods
+jQuery.each( ["Left", "Top"], function( i, name ) {
+       var method = "scroll" + name;
+
+       jQuery.fn[ method ] = function( val ) {
+               var elem, win;
+
+               if ( val === undefined ) {
+                       elem = this[ 0 ];
+
+                       if ( !elem ) {
+                               return null;
+                       }
+
+                       win = getWindow( elem );
+
+                       // Return the scroll offset
+                       return win ? ("pageXOffset" in win) ? win[ i ? "pageYOffset" : "pageXOffset" ] :
+                               jQuery.support.boxModel && win.document.documentElement[ method ] ||
+                                       win.document.body[ method ] :
+                               elem[ method ];
+               }
+
+               // Set the scroll offset
+               return this.each(function() {
+                       win = getWindow( this );
+
+                       if ( win ) {
+                               win.scrollTo(
+                                       !i ? val : jQuery( win ).scrollLeft(),
+                                        i ? val : jQuery( win ).scrollTop()
+                               );
+
+                       } else {
+                               this[ method ] = val;
+                       }
+               });
+       };
+});
+
+function getWindow( elem ) {
+       return jQuery.isWindow( elem ) ?
+               elem :
+               elem.nodeType === 9 ?
+                       elem.defaultView || elem.parentWindow :
+                       false;
+}
+
+
+
+
+// Create width, height, innerHeight, innerWidth, outerHeight and outerWidth methods
+jQuery.each([ "Height", "Width" ], function( i, name ) {
+
+       var type = name.toLowerCase();
+
+       // innerHeight and innerWidth
+       jQuery.fn[ "inner" + name ] = function() {
+               var elem = this[0];
+               return elem ?
+                       elem.style ?
+                       parseFloat( jQuery.css( elem, type, "padding" ) ) :
+                       this[ type ]() :
+                       null;
+       };
+
+       // outerHeight and outerWidth
+       jQuery.fn[ "outer" + name ] = function( margin ) {
+               var elem = this[0];
+               return elem ?
+                       elem.style ?
+                       parseFloat( jQuery.css( elem, type, margin ? "margin" : "border" ) ) :
+                       this[ type ]() :
+                       null;
+       };
+
+       jQuery.fn[ type ] = function( size ) {
+               // Get window width or height
+               var elem = this[0];
+               if ( !elem ) {
+                       return size == null ? null : this;
+               }
+
+               if ( jQuery.isFunction( size ) ) {
+                       return this.each(function( i ) {
+                               var self = jQuery( this );
+                               self[ type ]( size.call( this, i, self[ type ]() ) );
+                       });
+               }
+
+               if ( jQuery.isWindow( elem ) ) {
+                       // Everyone else use document.documentElement or document.body depending on Quirks vs Standards mode
+                       // 3rd condition allows Nokia support, as it supports the docElem prop but not CSS1Compat
+                       var docElemProp = elem.document.documentElement[ "client" + name ],
+                               body = elem.document.body;
+                       return elem.document.compatMode === "CSS1Compat" && docElemProp ||
+                               body && body[ "client" + name ] || docElemProp;
+
+               // Get document width or height
+               } else if ( elem.nodeType === 9 ) {
+                       // Either scroll[Width/Height] or offset[Width/Height], whichever is greater
+                       return Math.max(
+                               elem.documentElement["client" + name],
+                               elem.body["scroll" + name], elem.documentElement["scroll" + name],
+                               elem.body["offset" + name], elem.documentElement["offset" + name]
+                       );
+
+               // Get or set width or height on the element
+               } else if ( size === undefined ) {
+                       var orig = jQuery.css( elem, type ),
+                               ret = parseFloat( orig );
+
+                       return jQuery.isNumeric( ret ) ? ret : orig;
+
+               // Set the width or height on the element (default to pixels if value is unitless)
+               } else {
+                       return this.css( type, typeof size === "string" ? size : size + "px" );
+               }
+       };
+
+});
+
+
+// Expose jQuery to the global object
+window.jQuery = window.$ = jQuery;
+})(window);
diff --git a/js/modernizr/test/js/lib/jsonselect.js b/js/modernizr/test/js/lib/jsonselect.js
new file mode 100644 (file)
index 0000000..84913d0
--- /dev/null
@@ -0,0 +1,279 @@
+/*! Copyright (c) 2011, Lloyd Hilaiel, ISC License */
+/*
+ * This is the JSONSelect reference implementation, in javascript.
+ */
+(function(exports) {
+
+    var // localize references
+    toString = Object.prototype.toString;
+
+    function jsonParse(str) {
+      try {
+          if(JSON && JSON.parse){
+              return JSON.parse(str);
+          }
+          return (new Function("return " + str))();
+      } catch(e) {
+        te("ijs");
+      }
+    }
+
+    // emitted error codes.
+    var errorCodes = {
+        "ijs": "invalid json string",
+        "mpc": "multiple pseudo classes (:xxx) not allowed",
+        "mepf": "malformed expression in pseudo-function",
+        "nmi": "multiple ids not allowed",
+        "se": "selector expected",
+        "sra": "string required after '.'",
+        "uc": "unrecognized char",
+        "ujs": "unclosed json string",
+        "upc": "unrecognized pseudo class"
+    };
+
+    // throw an error message
+    function te(ec) {
+        throw new Error(errorCodes[ec]);
+    }
+
+    // THE LEXER
+    var toks = {
+        psc: 1, // pseudo class
+        psf: 2, // pseudo class function
+        typ: 3, // type
+        str: 4 // string
+    };
+
+    var pat = /^(?:([\r\n\t\ ]+)|([*.,>])|(string|boolean|null|array|object|number)|(:(?:root|first-child|last-child|only-child))|(:(?:nth-child|nth-last-child))|(:\w+)|(\"(?:[^\\]|\\[^\"])*\")|(\")|((?:[_a-zA-Z]|[^\0-\0177]|\\[^\r\n\f0-9a-fA-F])(?:[_a-zA-Z0-9\-]|[^\u0000-\u0177]|(?:\\[^\r\n\f0-9a-fA-F]))*))/;
+    var exprPat = /^\s*\(\s*(?:([+\-]?)([0-9]*)n\s*(?:([+\-])\s*([0-9]))?|(odd|even)|([+\-]?[0-9]+))\s*\)/;
+    var lex = function (str, off) {
+        if (!off) off = 0;
+        var m = pat.exec(str.substr(off));
+        if (!m) return undefined;
+        off+=m[0].length;
+        var a;
+        if (m[1]) a = [off, " "];
+        else if (m[2]) a = [off, m[0]];
+        else if (m[3]) a = [off, toks.typ, m[0]];
+        else if (m[4]) a = [off, toks.psc, m[0]];
+        else if (m[5]) a = [off, toks.psf, m[0]];
+        else if (m[6]) te("upc");
+        else if (m[7]) a = [off, toks.str, jsonParse(m[0])];
+        else if (m[8]) te("ujs");
+        else if (m[9]) a = [off, toks.str, m[0].replace(/\\([^\r\n\f0-9a-fA-F])/g,"$1")];
+        return a;
+    };
+
+    // THE PARSER
+
+    var parse = function (str) {
+        var a = [], off = 0, am;
+
+        while (true) {
+            var s = parse_selector(str, off);
+            a.push(s[1]);
+            s = lex(str, off = s[0]);
+            if (s && s[1] === " ") s = lex(str, off = s[0]);
+            if (!s) break;
+            // now we've parsed a selector, and have something else...
+            if (s[1] === ">") {
+                a.push(">");
+                off = s[0];
+            } else if (s[1] === ",") {
+                if (am === undefined) am = [ ",", a ];
+                else am.push(a);
+                a = [];
+                off = s[0];
+            }
+        }
+        if (am) am.push(a);
+        return am ? am : a;
+    };
+
+    var parse_selector = function(str, off) {
+        var soff = off;
+        var s = { };
+        var l = lex(str, off);
+        // skip space
+        if (l && l[1] === " ") { soff = off = l[0]; l = lex(str, off); }
+        if (l && l[1] === toks.typ) {
+            s.type = l[2];
+            l = lex(str, (off = l[0]));
+        } else if (l && l[1] === "*") {
+            // don't bother representing the universal sel, '*' in the
+            // parse tree, cause it's the default
+            l = lex(str, (off = l[0]));
+        }
+
+        // now support either an id or a pc
+        while (true) {
+            if (l === undefined) {
+                break;
+            } else if (l[1] === ".") {
+                l = lex(str, (off = l[0]));
+                if (!l || l[1] !== toks.str) te("sra");
+                if (s.id) te("nmi");
+                s.id = l[2];
+            } else if (l[1] === toks.psc) {
+                if (s.pc || s.pf) te("mpc");
+                // collapse first-child and last-child into nth-child expressions
+                if (l[2] === ":first-child") {
+                    s.pf = ":nth-child";
+                    s.a = 0;
+                    s.b = 1;
+                } else if (l[2] === ":last-child") {
+                    s.pf = ":nth-last-child";
+                    s.a = 0;
+                    s.b = 1;
+                } else {
+                    s.pc = l[2];
+                }
+            } else if (l[1] === toks.psf) {
+                if (s.pc || s.pf ) te("mpc");
+                s.pf = l[2];
+                var m = exprPat.exec(str.substr(l[0]));
+                if (!m) te("mepf");
+                if (m[5]) {
+                    s.a = 2;
+                    s.b = (m[5] === "odd") ? 1 : 0;
+                } else if (m[6]) {
+                    s.a = 0;
+                    s.b = parseInt(m[6], 10);
+                } else {
+                    s.a = parseInt((m[1] ? m[1] : "+") + (m[2] ? m[2] : "1"),10);
+                    s.b = m[3] ? parseInt(m[3] + m[4],10) : 0;
+                }
+                l[0] += m[0].length;
+            } else {
+                break;
+            }
+            l = lex(str, (off = l[0]));
+        }
+
+        // now if we didn't actually parse anything it's an error
+        if (soff === off) te("se");
+
+        return [off, s];
+    };
+
+    // THE EVALUATOR
+
+    function isArray(o) {
+        return Array.isArray ? Array.isArray(o) : 
+          toString.call(o) === "[object Array]";
+    }
+
+    function mytypeof(o) {
+        if (o === null) return "null";
+        var to = typeof o;
+        if (to === "object" && isArray(o)) to = "array";
+        return to;
+    }
+
+    function mn(node, sel, id, num, tot) {
+        var sels = [];
+        var cs = (sel[0] === ">") ? sel[1] : sel[0];
+        var m = true, mod;
+        if (cs.type) m = m && (cs.type === mytypeof(node));
+        if (cs.id)   m = m && (cs.id === id);
+        if (m && cs.pf) {
+            if (cs.pf === ":nth-last-child") num = tot - num;
+            else num++;
+            if (cs.a === 0) {
+                m = cs.b === num;
+            } else {
+                mod = ((num - cs.b) % cs.a);
+
+                m = (!mod && ((num*cs.a + cs.b) >= 0));
+            }
+        }
+
+        // should we repeat this selector for descendants?
+        if (sel[0] !== ">" && sel[0].pc !== ":root") sels.push(sel);
+
+        if (m) {
+            // is there a fragment that we should pass down?
+            if (sel[0] === ">") { if (sel.length > 2) { m = false; sels.push(sel.slice(2)); } }
+            else if (sel.length > 1) { m = false; sels.push(sel.slice(1)); }
+        }
+
+        return [m, sels];
+    }
+
+    function forEach(sel, obj, fun, id, num, tot) {
+        var a = (sel[0] === ",") ? sel.slice(1) : [sel],
+        a0 = [],
+        call = false,
+        i = 0, j = 0, l = 0, k, x;
+        for (i = 0; i < a.length; i++) {
+            x = mn(obj, a[i], id, num, tot);
+            if (x[0]) {
+                call = true;
+            }
+            for (j = 0; j < x[1].length; j++) {
+                a0.push(x[1][j]);
+            }
+        }
+        if (a0.length && typeof obj === "object") {
+            if (a0.length >= 1) {
+                a0.unshift(",");
+            }
+            if (isArray(obj)) {
+                for (i = 0; i < obj.length; i++) {
+                    forEach(a0, obj[i], fun, undefined, i, obj.length);
+                }
+            } else {
+                // it's a shame to do this for :last-child and other
+                // properties which count from the end when we don't
+                // even know if they're present.  Also, the stream
+                // parser is going to be pissed.
+                l = 0;
+                for (k in obj) {
+                    if (obj.hasOwnProperty(k)) {
+                        l++;
+                    }
+                }
+                i = 0;
+                for (k in obj) {
+                    if (obj.hasOwnProperty(k)) {
+                        forEach(a0, obj[k], fun, k, i++, l);
+                    }
+                }
+            }
+        }
+        if (call && fun) {
+            fun(obj);
+        }
+    }
+
+    function match(sel, obj) {
+        var a = [];
+        forEach(sel, obj, function(x) {
+            a.push(x);
+        });
+        return a;
+    }
+
+    function compile(sel) {
+        return {
+            sel: parse(sel),
+            match: function(obj){
+                return match(this.sel, obj);
+            },
+            forEach: function(obj, fun) {
+                return forEach(this.sel, obj, fun);
+            }
+        };
+    }
+
+    exports._lex = lex;
+    exports._parse = parse;
+    exports.match = function (sel, obj) {
+        return compile(sel).match(obj);
+    };
+    exports.forEach = function(sel, obj, fun) {
+        return compile(sel).forEach(obj, fun);
+    };
+    exports.compile = compile;
+})(typeof exports === "undefined" ? (window.JSONSelect = {}) : exports);
+
diff --git a/js/modernizr/test/js/lib/polyfills.js b/js/modernizr/test/js/lib/polyfills.js
new file mode 100644 (file)
index 0000000..4cbb1aa
--- /dev/null
@@ -0,0 +1,96 @@
+
+// Array.prototype.indexOf  polyfill
+if (!Array.prototype.indexOf){
+  Array.prototype.indexOf = function(searchElement /*, fromIndex */)
+  {
+    "use strict";
+
+    if (this === void 0 || this === null)
+      throw new TypeError();
+
+    var t = Object(this);
+    var len = t.length >>> 0;
+    if (len === 0)
+      return -1;
+
+    var n = 0;
+    if (arguments.length > 0)
+    {
+      n = Number(arguments[1]);
+      if (n !== n) // shortcut for verifying if it's NaN
+        n = 0;
+      else if (n !== 0 && n !== (1 / 0) && n !== -(1 / 0))
+        n = (n > 0 || -1) * Math.floor(Math.abs(n));
+    }
+
+    if (n >= len)
+      return -1;
+
+    var k = n >= 0
+          ? n
+          : Math.max(len - Math.abs(n), 0);
+
+    for (; k < len; k++)
+    {
+      if (k in t && t[k] === searchElement)
+        return k;
+    }
+    return -1;
+  };
+}
+
+
+// Object.keys()
+if (!Object.keys) Object.keys = function(o){
+  if (o !== Object(o)) throw new TypeError('Object.keys called on non-object');
+  var ret=[], p;
+  for (p in o) if(Object.prototype.hasOwnProperty.call(o,p)) ret.push(p);
+  return ret;
+};
+
+
+
+if (!Array.prototype.map)
+{
+  Array.prototype.map = function(fun /*, thisp */)
+  {
+    "use strict";
+
+    if (this === void 0 || this === null)
+      throw new TypeError();
+
+    var t = Object(this);
+    var len = t.length >>> 0;
+    if (typeof fun !== "function")
+      throw new TypeError();
+
+    var res = new Array(len);
+    var thisp = arguments[1];
+    for (var i = 0; i < len; i++)
+    {
+      if (i in t)
+        res[i] = fun.call(thisp, t[i], i, t);
+    }
+
+    return res;
+  };
+}
+
+
+
+
+/*!
+    http://www.JSON.org/json2.js
+    2011-10-19
+
+    Public Domain.
+
+    NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.
+
+    See http://www.JSON.org/js.html
+
+    This code should be minified before deployment.
+    See http://javascript.crockford.com/jsmin.html
+
+*/
+var JSON;if(!JSON){JSON={}}(function(){function f(n){return n<10?"0"+n:n}if(typeof Date.prototype.toJSON!=="function"){Date.prototype.toJSON=function(key){return isFinite(this.valueOf())?this.getUTCFullYear()+"-"+f(this.getUTCMonth()+1)+"-"+f(this.getUTCDate())+"T"+f(this.getUTCHours())+":"+f(this.getUTCMinutes())+":"+f(this.getUTCSeconds())+"Z":null};String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(key){return this.valueOf()}}var cx=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,escapable=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,gap,indent,meta={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},rep;function quote(string){escapable.lastIndex=0;return escapable.test(string)?'"'+string.replace(escapable,function(a){var c=meta[a];return typeof c==="string"?c:"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+string+'"'}function str(key,holder){var i,k,v,length,mind=gap,partial,value=holder[key];if(value&&typeof value==="object"&&typeof value.toJSON==="function"){value=value.toJSON(key)}if(typeof rep==="function"){value=rep.call(holder,key,value)}switch(typeof value){case"string":return quote(value);case"number":return isFinite(value)?String(value):"null";case"boolean":case"null":return String(value);case"object":if(!value){return"null"}gap+=indent;partial=[];if(Object.prototype.toString.apply(value)==="[object Array]"){length=value.length;for(i=0;i<length;i+=1){partial[i]=str(i,value)||"null"}v=partial.length===0?"[]":gap?"[\n"+gap+partial.join(",\n"+gap)+"\n"+mind+"]":"["+partial.join(",")+"]";gap=mind;return v}if(rep&&typeof rep==="object"){length=rep.length;for(i=0;i<length;i+=1){if(typeof rep[i]==="string"){k=rep[i];v=str(k,value);if(v){partial.push(quote(k)+(gap?": ":":")+v)}}}}else{for(k in value){if(Object.prototype.hasOwnProperty.call(value,k)){v=str(k,value);if(v){partial.push(quote(k)+(gap?": ":":")+v)}}}}v=partial.length===0?"{}":gap?"{\n"+gap+partial.join(",\n"+gap)+"\n"+mind+"}":"{"+partial.join(",")+"}";gap=mind;return v}}if(typeof JSON.stringify!=="function"){JSON.stringify=function(value,replacer,space){var i;gap="";indent="";if(typeof space==="number"){for(i=0;i<space;i+=1){indent+=" "}}else{if(typeof space==="string"){indent=space}}rep=replacer;if(replacer&&typeof replacer!=="function"&&(typeof replacer!=="object"||typeof replacer.length!=="number")){throw new Error("JSON.stringify")}return str("",{"":value})}}if(typeof JSON.parse!=="function"){JSON.parse=function(text,reviver){var j;function walk(holder,key){var k,v,value=holder[key];if(value&&typeof value==="object"){for(k in value){if(Object.prototype.hasOwnProperty.call(value,k)){v=walk(value,k);if(v!==undefined){value[k]=v}else{delete value[k]}}}}return reviver.call(holder,key,value)}text=String(text);cx.lastIndex=0;if(cx.test(text)){text=text.replace(cx,function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})}if(/^[\],:{}\s]*$/.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,""))){j=eval("("+text+")");return typeof reviver==="function"?walk({"":j},""):j}throw new SyntaxError("JSON.parse")}}}());
diff --git a/js/modernizr/test/js/lib/uaparser.js b/js/modernizr/test/js/lib/uaparser.js
new file mode 100644 (file)
index 0000000..eb70eb9
--- /dev/null
@@ -0,0 +1,215 @@
+// uaparser by lindsey simon,
+// ported to node by tobie
+// https://github.com/tobie/ua-parser/
+
+// browserized by paul irish
+
+(function(exports){
+
+  exports.uaparse = parse;
+  
+  function parse(ua) {
+    for (var i=0; i < parsers.length; i++) {
+      var result = parsers[i](ua);
+      if (result) { return result; }
+    }
+    return new UserAgent();
+  }
+
+  function UserAgent(family) {
+    this.family = family || 'Other';
+  }
+
+  UserAgent.prototype.toVersionString = function() {
+    var output = '';
+    if (this.major != null) {
+      output += this.major;
+      if (this.minor != null) {
+        output += '.' + this.minor;
+        if (this.patch != null) {
+          output += '.' + this.patch;
+        }
+      }
+    }
+    return output;
+  };
+
+  UserAgent.prototype.toString = function() {
+    var suffix = this.toVersionString();
+    if (suffix) { suffix = ' ' + suffix; }
+    return this.family + suffix;
+  };
+  
+  
+  var regexes = [
+      {"pattern":"^(Opera)/(\\d+)\\.(\\d+) \\(Nintendo Wii",
+       "v1_replacement":null,
+       "family_replacement":"Wii"},
+      {"pattern":"(Namoroka|Shiretoko|Minefield)/(\\d+)\\.(\\d+)\\.(\\d+(?:pre)?)",
+       "v1_replacement":null,
+       "family_replacement":"Firefox ($1)"},
+      {"pattern":"(Namoroka|Shiretoko|Minefield)/(\\d+)\\.(\\d+)([ab]\\d+[a-z]*)?",
+       "v1_replacement":null,
+       "family_replacement":"Firefox ($1)"},
+      {"pattern":"(SeaMonkey|Fennec|Camino)/(\\d+)\\.(\\d+)([ab]?\\d+[a-z]*)",
+       "v1_replacement":null,
+       "family_replacement":null},
+      {"pattern":"(Flock)/(\\d+)\\.(\\d+)(b\\d+?)",
+       "v1_replacement":null,
+       "family_replacement":null},
+      {"pattern":"(Fennec)/(\\d+)\\.(\\d+)(pre)",
+       "v1_replacement":null,
+       "family_replacement":null},
+      {"pattern":"(Navigator)/(\\d+)\\.(\\d+)\\.(\\d+)",
+       "v1_replacement":null,
+       "family_replacement":"Netscape"},
+      {"pattern":"(Navigator)/(\\d+)\\.(\\d+)([ab]\\d+)",
+       "v1_replacement":null,
+       "family_replacement":"Netscape"},
+      {"pattern":"(Netscape6)/(\\d+)\\.(\\d+)\\.(\\d+)",
+       "v1_replacement":null,
+       "family_replacement":"Netscape"},
+      {"pattern":"(MyIBrow)/(\\d+)\\.(\\d+)",
+       "v1_replacement":null,
+       "family_replacement":"My Internet Browser"},
+      {"pattern":"(Firefox).*Tablet browser (\\d+)\\.(\\d+)\\.(\\d+)",
+       "v1_replacement":null,
+       "family_replacement":"MicroB"},
+      {"pattern":"(Opera)/9.80.*Version\\/(\\d+)\\.(\\d+)(?:\\.(\\d+))?",
+       "v1_replacement":null,
+       "family_replacement":null},
+      {"pattern":"(Firefox)/(\\d+)\\.(\\d+)\\.(\\d+(?:pre)?) \\(Swiftfox\\)",
+       "v1_replacement":null,
+       "family_replacement":"Swiftfox"},
+      {"pattern":"(Firefox)/(\\d+)\\.(\\d+)([ab]\\d+[a-z]*)? \\(Swiftfox\\)",
+       "v1_replacement":null,
+       "family_replacement":"Swiftfox"},
+      {"pattern":"(konqueror)/(\\d+)\\.(\\d+)\\.(\\d+)",
+       "v1_replacement":null,
+       "family_replacement":"Konqueror"},
+      {"pattern":"(Jasmine|ANTGalio|Midori|Fresco|Lobo|Maxthon|Lynx|OmniWeb|Dillo|Camino|Demeter|Fluid|Fennec|Shiira|Sunrise|Chrome|Flock|Netscape|Lunascape|Epiphany|WebPilot|Vodafone|NetFront|Konqueror|SeaMonkey|Kazehakase|Vienna|Iceape|Iceweasel|IceWeasel|Iron|K-Meleon|Sleipnir|Galeon|GranParadiso|Opera Mini|iCab|NetNewsWire|Iron|Iris)/(\\d+)\\.(\\d+)\\.(\\d+)",
+       "v1_replacement":null,
+       "family_replacement":null},
+      {"pattern":"(Bolt|Jasmine|Maxthon|Lynx|Arora|IBrowse|Dillo|Camino|Shiira|Fennec|Phoenix|Chrome|Flock|Netscape|Lunascape|Epiphany|WebPilot|Opera Mini|Opera|Vodafone|NetFront|Konqueror|SeaMonkey|Kazehakase|Vienna|Iceape|Iceweasel|IceWeasel|Iron|K-Meleon|Sleipnir|Galeon|GranParadiso|iCab|NetNewsWire|Iron|Space Bison|Stainless|Orca)/(\\d+)\\.(\\d+)",
+       "v1_replacement":null,
+       "family_replacement":null},
+      {"pattern":"(iRider|Crazy Browser|SkipStone|iCab|Lunascape|Sleipnir|Maemo Browser) (\\d+)\\.(\\d+)\\.(\\d+)",
+       "v1_replacement":null,
+       "family_replacement":null},
+      {"pattern":"(iCab|Lunascape|Opera|Android) (\\d+)\\.(\\d+)",
+       "v1_replacement":null,
+       "family_replacement":null},
+      {"pattern":"(IEMobile) (\\d+)\\.(\\d+)",
+       "v1_replacement":null,
+       "family_replacement":"IE Mobile"},
+      {"pattern":"(Firefox)/(\\d+)\\.(\\d+)\\.(\\d+)",
+       "v1_replacement":null,
+       "family_replacement":null},
+      {"pattern":"(Firefox)/(\\d+)\\.(\\d+)(pre|[ab]\\d+[a-z]*)?",
+       "v1_replacement":null,
+       "family_replacement":null},
+      {"pattern":"(Obigo|OBIGO)[^\\d]*(\\d+)(?:.(\\d+))?",
+       "v1_replacement":null,
+       "family_replacement":"Obigo"},
+      {"pattern":"(MAXTHON|Maxthon) (\\d+)\\.(\\d+)",
+       "v1_replacement":null,
+       "family_replacement":"Maxthon"},
+      {"pattern":"(Maxthon|MyIE2|Uzbl|Shiira)",
+       "v1_replacement":"0",
+       "family_replacement":null},
+      {"pattern":"(PLAYSTATION) (\\d+)",
+       "v1_replacement":null,
+       "family_replacement":"PlayStation"},
+      {"pattern":"(PlayStation Portable)[^\\d]+(\\d+).(\\d+)",
+       "v1_replacement":null,
+       "family_replacement":null},
+      {"pattern":"(BrowseX) \\((\\d+)\\.(\\d+)\\.(\\d+)",
+       "v1_replacement":null,
+       "family_replacement":null},
+      {"pattern":"(Opera)/(\\d+)\\.(\\d+).*Opera Mobi",
+       "v1_replacement":null,
+       "family_replacement":"Opera Mobile"},
+      {"pattern":"(POLARIS)/(\\d+)\\.(\\d+)",
+       "v1_replacement":null,
+       "family_replacement":"Polaris"},
+      {"pattern":"(BonEcho)/(\\d+)\\.(\\d+)\\.(\\d+)",
+       "v1_replacement":null,
+       "family_replacement":"Bon Echo"},
+      {"pattern":"(iPhone) OS (\\d+)_(\\d+)(?:_(\\d+))?",
+       "v1_replacement":null,
+       "family_replacement":null},
+      {"pattern":"(Avant)",
+       "v1_replacement":"1",
+       "family_replacement":null},
+      {"pattern":"(Nokia)[EN]?(\\d+)",
+       "v1_replacement":null,
+       "family_replacement":null},
+      {"pattern":"(Black[bB]erry)(\\d+)",
+       "v1_replacement":null,
+       "family_replacement":"Blackberry"},
+      {"pattern":"(OmniWeb)/v(\\d+)\\.(\\d+)",
+       "v1_replacement":null,
+       "family_replacement":null},
+      {"pattern":"(Blazer)/(\\d+)\\.(\\d+)",
+       "v1_replacement":null,
+       "family_replacement":"Palm Blazer"},
+      {"pattern":"(Pre)/(\\d+)\\.(\\d+)",
+       "v1_replacement":null,
+       "family_replacement":"Palm Pre"},
+      {"pattern":"(Links) \\((\\d+)\\.(\\d+)",
+       "v1_replacement":null,
+       "family_replacement":null},
+      {"pattern":"(QtWeb) Internet Browser/(\\d+)\\.(\\d+)",
+       "v1_replacement":null,
+       "family_replacement":null},
+      {"pattern":"(Version)/(\\d+)\\.(\\d+)(?:\\.(\\d+))?.*Safari/",
+       "v1_replacement":null,
+       "family_replacement":"Safari"},
+      {"pattern":"(OLPC)/Update(\\d+)\\.(\\d+)",
+       "v1_replacement":null,
+       "family_replacement":null},
+      {"pattern":"(OLPC)/Update()\\.(\\d+)",
+       "v1_replacement":"0",
+       "family_replacement":null},
+      {"pattern":"(SamsungSGHi560)",
+       "v1_replacement":null,
+       "family_replacement":"Samsung SGHi560"},
+      {"pattern":"^(SonyEricssonK800i)",
+       "v1_replacement":null,
+       "family_replacement":"Sony Ericsson K800i"},
+      {"pattern":"(Teleca Q7)",
+       "v1_replacement":null,
+       "family_replacement":null},
+      {"pattern":"(MSIE) (\\d+)\\.(\\d+)",
+       "v1_replacement":null,
+       "family_replacement":"IE"}
+
+  ];
+  
+  var parsers = regexes.map(function(obj) {
+    var regexp = new RegExp(obj.pattern),
+        famRep = obj.family_replacement,
+        v1Rep = obj.v1_replacement;
+
+    function parser(ua) {
+      var m = ua.match(regexp);
+
+      if (!m) { return null; }
+
+      var familly = famRep ? famRep.replace('$1', m[1]) : m[1];
+
+      var obj = new UserAgent(familly);
+      obj.major = parseInt(v1Rep ? v1Rep : m[2]);
+      obj.minor = m[3] ? parseInt(m[3]) : null;
+      obj.patch = m[4] ? parseInt(m[4]) : null;
+
+      return obj;
+    }
+
+    return parser;
+  });
+  
+  
+})(window);
+
+
diff --git a/js/modernizr/test/js/setup.js b/js/modernizr/test/js/setup.js
new file mode 100644 (file)
index 0000000..b194dcd
--- /dev/null
@@ -0,0 +1,44 @@
+
+// Avoid `console` errors in browsers that lack a console
+if (!(window.console && console.log)) {
+    (function() {
+        var noop = function() {};
+        var methods = ['assert', 'clear', 'count', 'debug', 'dir', 'dirxml', 'error', 'exception', 'group', 'groupCollapsed', 'groupEnd', 'info', 'log', 'markTimeline', 'profile', 'profileEnd', 'markTimeline', 'table', 'time', 'timeEnd', 'timeStamp', 'trace', 'warn'];
+        var length = methods.length;
+        var console = window.console = {};
+        while (length--) {
+            console[methods[length]] = noop;
+        }
+    }());
+}
+
+// test helper object
+window.TEST = {
+  // note some unique members of the Modernizr object
+  inputs    : ['input','inputtypes', 'textarea'],
+  audvid    : ['video','audio'],
+  API       : ['addTest', 'mq', 'hasEvent', 'testProp', 'testAllProps', 'testStyles', '_prefixes', '_domPrefixes', '_cssomPrefixes', 'prefixed'],
+  extraclass: ['js'],
+  privates  : ['_enableHTML5','_version','_fontfaceready'],
+  deprecated : [
+                { oldish : 'crosswindowmessaging', newish : 'postmessage'},
+                { oldish : 'historymanagement', newish : 'history'},
+              ],
+
+  // utility methods
+  inArray: function(elem, array) {
+      if (array.indexOf) {
+          return array.indexOf(elem);
+      }
+      for (var i = 0, length = array.length; i < length; i++) {
+          if (array[i] === elem) {
+              return i;
+          }
+      }
+      return -1;
+  },
+  trim : function(str){
+    return str.replace(/^\s*/, "").replace(/\s*$/, "");
+  }
+};
+
diff --git a/js/modernizr/test/js/unit-caniuse.js b/js/modernizr/test/js/unit-caniuse.js
new file mode 100644 (file)
index 0000000..78bda30
--- /dev/null
@@ -0,0 +1,191 @@
+
+
+var myscript = document.createElement('script'),
+    ref = document.getElementsByTagName('script')[0];
+
+myscript.src = 'http://caniuse.com/jsonp.php?callback=caniusecb';
+
+setTimeout(function(){
+  ref.parentNode.insertBefore(myscript, ref);
+}, 100);
+
+// mapping Modernizr terms over to caniuse terms
+var map = {
+  audio : 'audio',
+  borderimage : 'border-image',
+  borderradius : 'border-radius',
+  canvas : 'canvas',
+  canvastext : 'canvas-text',
+  cssanimations : 'css-animation',
+  boxshadow : 'css-boxshadow',
+  cssgradients : 'css-gradients',
+  opacity : 'css-opacity',
+  cssreflections : 'css-reflections',
+  textshadow : 'css-textshadow',
+  csstransitions : 'css-transitions',
+  hsla : 'css3-colors',
+  rgba : 'css3-colors',
+  draganddrop : 'dragndrop',
+  flexbox : 'flexbox',
+  fontface : 'fontface',
+  geolocation : 'geolocation',
+  hashchange : 'hashchange',
+  history : 'history',
+  indexeddb : 'indexeddb',
+  multiplebgs : 'multibackgrounds',
+  csscolumns : 'multicolumn',
+  localstorage : 'namevalue-storage',
+  applicationcache : 'offline-apps',
+  websqldatabase : 'sql-storage',
+  svg : 'svg',
+  touch : 'touch',
+  csstransforms : 'transforms2d',
+  csstransforms3d : 'transforms3d',
+  video: 'video',
+  webgl: 'webgl',
+  websockets : 'websockets',
+  webworkers : 'webworkers',
+  postmessage : 'x-doc-messaging'
+};
+
+window.caniusecb = function(scriptdata) {
+
+  window.doo = scriptdata;
+
+  // quit if JSONSelect didn't make it.
+  if (!window.JSONSelect) return;
+
+  var testdata     = scriptdata.data,
+
+      // parse the current UA with uaparser
+      ua           = uaparse(navigator.userAgent),
+
+      // match the UA from uaparser into the browser used by caniuse
+      browserKey   = JSONSelect.match('.agents .browser', scriptdata).indexOf(ua.family),
+      currBrowser  = Object.keys(scriptdata.agents)[browserKey];
+
+  // So Phantom doesn't kill the caniuse.com matching exit out as it's useless anyway within PhantomJS
+  if(navigator.userAgent.indexOf("PhantomJS") != -1) {
+    return;
+  }
+
+  // translate 'y' 'n' or 'a' into a boolean that Modernizr uses
+  function bool(ciuresult){
+    if (ciuresult == 'y' || ciuresult == 'a') return true;
+    // 'p' is for polyfill
+    if (ciuresult == 'n' || ciuresult == 'p') return false;
+    throw 'unknown return value from can i use';
+  }
+
+  function testify(o){
+
+    var ciubool = bool(o.ciuresult);
+
+    // caniuse says audio/video are yes/no, Modernizr has more detail which we'll dumb down.
+    if (~TEST.audvid.indexOf(o.feature))
+      o.result = !!o.result;
+
+    // if caniuse gave us a 'partial', lets let it pass with a note.
+    if (o.ciuresult == 'a'){
+      return ok(true,
+        o.browser + o.version + ': Caniuse reported partial support for ' + o.ciufeature +
+        '. So.. Modernizr\'s ' + o.result + ' is good enough...'
+      );
+    }
+
+
+    // change the *documented* false positives
+    if ((o.feature == 'textshadow' && o.browser == 'firefox' && o.version == 3)
+        && ciubool == false
+    ) {
+      ciubool = o.fp = true;
+    }
+
+    // where we actually do most our assertions
+    equal(o.result, ciubool,
+      o.browser + o.version + ': Caniuse result for ' + o.ciufeature +
+      ' matches Modernizr\'s ' + (o.fp ? '*false positive*' : 'result') + ' for ' + o.feature
+    );
+  }
+
+
+  module('caniuse.com data matches', {
+      setup:function() {
+      },
+      teardown:function() {
+      }
+  });
+
+
+  test("we match caniuse data", function() {
+
+    for (var feature in Modernizr){
+
+      var ciufeatname = map[feature];
+
+      if (ciufeatname === undefined) continue;
+
+      var ciufeatdata = testdata[ciufeatname];
+
+      if (ciufeatdata === undefined) throw 'unknown key of caniusedata';
+
+      // get results for this feature for all versions of this browser
+      var browserResults = ciufeatdata.stats[currBrowser];
+
+      // let's get our versions in order..
+      var minorver   = ua.minor &&                                  // caniuse doesn't use two digit minors
+                       ua.minor.toString().replace(/(\d)\d$/,'$1'), // but opera does.
+
+          majorminor = (ua.major + '.' + minorver)
+                          // opera gets grouped in some cases by caniuse
+                          .replace(/(9\.(6|5))/ , ua.family == 'opera' ? '9.5-9.6'   : "$1")
+                          .replace(/(10\.(0|1))/, ua.family == 'opera' ? '10.0-10.1' : "$1"),
+
+          mmResult   = browserResults[majorminor],
+          mResult    = browserResults[ua.major];
+
+
+      // check it against the major.minor: eg. FF 3.6
+      if (mmResult && mmResult != 'u'){ // 'y' 'n' or 'a'
+
+        // data ends w/ ` x` if its still prefixed in the imp
+        mmResult = mmResult.replace(' x','');
+
+        // match it against our data.
+        testify({ feature     : feature
+                , ciufeature  : ciufeatname
+                , result      : Modernizr[feature]
+                , ciuresult   : mmResult
+                , browser     : currBrowser
+                , version     : majorminor
+        });
+
+        continue; // don't check the major version
+      }
+
+      // check it against just the major version: eg. FF 3
+      if (mResult){
+
+        // unknown support from caniuse... He would probably like to know our data, though!
+        if (mResult == 'u') continue;
+
+        // data ends w/ ` x` if its still prefixed in the imp
+        mResult = mResult.replace(' x','');
+
+        testify({ feature     : feature
+                , ciufeature  : ciufeatname
+                , result      : Modernizr[feature]
+                , ciuresult   : mResult
+                , browser     : currBrowser
+                , version     : ua.major
+        });
+
+
+      }
+
+    } // for in loop
+
+  }); // eo test()
+
+
+}; // eo caniusecallback()
diff --git a/js/modernizr/test/js/unit.js b/js/modernizr/test/js/unit.js
new file mode 100644 (file)
index 0000000..a907ba8
--- /dev/null
@@ -0,0 +1,669 @@
+QUnit.begin = function() {
+       console.log("Starting test suite");
+       console.log("================================================\n");
+};
+
+QUnit.moduleDone = function(opts) {
+       if(opts.failed === 0) {
+               console.log("\u2714 All tests passed in '"+opts.name+"' module");
+       } else {
+               console.log("\u2716 "+ opts.failed +" tests failed in '"+opts.name+"' module");
+       }
+};
+
+QUnit.done = function(opts) {
+       console.log("\n================================================");
+       console.log("Tests completed in "+opts.runtime+" milliseconds");
+       console.log(opts.passed + " tests of "+opts.total+" passed, "+opts.failed+" failed.");
+};
+
+module('Basics', {
+    setup:function() {
+    },
+    teardown:function() {
+    }
+});
+
+test("globals set up", function() {
+
+       ok(window.Modernizr, 'global modernizr object created');
+
+});
+
+test("bind is implemented", function() {
+
+  ok(Function.prototype.bind, 'bind is a member of Function.prototype');
+
+  var a = function(){
+      return this.modernizr;
+  };
+  a = a.bind({modernizr: 'just awsome'});
+
+  equal("just awsome", a(), 'bind works as expected');
+
+
+  // thank you webkit layoutTests
+
+
+  var result;
+
+  function F(x, y)
+  {
+      result = this + " -> x:" + x + ", y:" + y;
+  }
+
+  G = F.bind("'a'", "'b'");
+  H = G.bind("'Cannot rebind this!'", "'c'");
+
+  G(1,2);
+  equal(result, "\'a\' -> x:\'b\', y:1");
+  H(1,2);
+  equal(result, "\'a\' -> x:\'b\', y:\'c\'");
+
+  var f = new F(1,2);
+  equal(result, "[object Object] -> x:1, y:2");
+  var g = new G(1,2);
+  equal(result, "[object Object] -> x:\'b\', y:1");
+  var h = new H(1,2);
+  equal(result, "[object Object] -> x:\'b\', y:\'c\'");
+
+  ok(f instanceof F, "f instanceof F");
+  ok(g instanceof F, "g instanceof F");
+  ok(h instanceof F, "h instanceof F");
+
+  // Bound functions don't have a 'prototype' property.
+  ok("prototype" in F, '"prototype" in F');
+
+  // The object passed to bind as 'this' must be callable.
+  raises(function(){
+    Function.bind.call(undefined);
+  });
+
+  // Objects that allow call but not construct can be bound, but should throw if used with new.
+  var abcAt = String.prototype.charAt.bind("abc");
+  equal(abcAt(1), "b", 'Objects that allow call but not construct can be bound...');
+
+  equal(1, Function.bind.length, 'it exists');
+
+
+});
+
+
+
+test("document.documentElement is valid and correct",1, function() {
+       equal(document.documentElement,document.getElementsByTagName('html')[0]);
+});
+
+
+test("no-js class is gone.", function() {
+
+       ok(!/(?:^|\s)no-js(?:^|\s)/.test(document.documentElement.className),
+          'no-js class is gone');
+
+       ok(/(?:^|\s)js(?:^|\s)/.test(document.documentElement.className),
+          'html.js class is present');
+
+       ok(/(?:^|\s)\+no-js(?:\s|$)/.test(document.documentElement.className),
+          'html.+no-js class is still present');
+
+       ok(/(?:^|\s)no-js-(?:\s|$)/.test(document.documentElement.className),
+          'html.no-js- class is still present');
+
+       ok(/(?:^|\s)i-has-no-js(?:\s|$)/.test(document.documentElement.className),
+          'html.i-has-no-js class is still present');
+
+       if (document.querySelector){
+         ok(document.querySelector('html.js') == document.documentElement,
+            "document.querySelector('html.js') matches.");
+       }
+});
+
+test('html shim worked', function(){
+  expect(2);
+
+  // the exact test we use in the script
+  var elem = document.getElementsByTagName("section")[0];
+  elem.id = "html5section";
+
+  ok( elem.childNodes.length === 1 , 'unknown elements dont collapse');
+
+  elem.style.color = 'red';
+  ok( /red|#ff0000/i.test(elem.style.color), 'unknown elements are styleable')
+
+});
+
+
+module('Modernizr classes and bools', {
+    setup:function() {
+    },
+    teardown:function() {
+    }
+});
+
+
+test('html classes are looking good',function(){
+
+  var classes = TEST.trim(document.documentElement.className).split(/\s+/);
+
+  var modprops = Object.keys(Modernizr),
+      newprops = modprops;
+
+  // decrement for the properties that are private
+  for (var i = -1, len = TEST.privates.length; ++i < len; ){
+    var item = TEST.privates[i];
+    equal(-1, TEST.inArray(item, classes), 'private Modernizr object '+ item +'should not have matching classes');
+    equal(-1, TEST.inArray('no-' + item, classes), 'private Modernizr object no-'+item+' should not have matching classes');
+  }
+
+  // decrement for the non-boolean objects
+//  for (var i = -1, len = TEST.inputs.length; ++i < len; ){
+//    if (Modernizr[TEST.inputs[i]] != undefined) newprops--;
+//  }
+
+  // TODO decrement for the extraclasses
+
+  // decrement for deprecated ones.
+  $.each( TEST.deprecated, function(key, val){
+    newprops.splice(  TEST.inArray(item, newprops), 1);
+  });
+
+
+  //equal(classes,newprops,'equal number of classes and global object props');
+
+  if (classes.length !== newprops){
+    //window.console && console.log(classes, newprops);
+
+  }
+
+  for (var i = 0, len = classes.length, aclass; i <len; i++){
+    aclass = classes[i];
+
+    // Skip js related classes.
+    if (/^(?:js|\+no-js|no-js-|i-has-no-js)$/.test(aclass)) continue;
+
+    if (aclass.indexOf('no-') === 0){
+      aclass = aclass.replace('no-','');
+
+      equal(Modernizr[aclass], false,
+            aclass + ' is correctly false in the classes and object')
+
+    } else {
+      equal(Modernizr[aclass], true,
+             aclass + ' is correctly true in the classes and object')
+    }
+  }
+
+
+  for (var i = 0, len = classes.length, aclass; i <len; i++){
+    equal(classes[i],classes[i].toLowerCase(),'all classes are lowerCase.');
+  }
+
+  // Remove fake no-js classes before test.
+  var docElClass = document.documentElement.className;
+  $.each(['\\+no-js', 'no-js-', 'i-has-no-js'], function(i, fakeClass) {
+    docElClass = docElClass.replace(new RegExp('(^|\\s)' + fakeClass + '(\\s|$)', 'g'), '$1$2');
+  });
+  equal(/[^\s]no-/.test(docElClass), false, 'whitespace between all classes.');
+
+
+})
+
+
+test('Modernizr properties are looking good',function(){
+
+  var count  = 0,
+      nobool = TEST.API.concat(TEST.inputs)
+                       .concat(TEST.audvid)
+                       .concat(TEST.privates)
+                       .concat(['textarea']); // due to forms-placeholder.js test
+
+  for (var prop in window.Modernizr){
+    if (Modernizr.hasOwnProperty(prop)){
+
+      if (TEST.inArray(prop,nobool) >= 0) continue;
+
+      ok(Modernizr[prop] === true || Modernizr[prop] === false,
+        'Modernizr.'+prop+' is a straight up boolean');
+
+
+      equal(prop,prop.toLowerCase(),'all properties are lowerCase.')
+    }
+  }
+})
+
+
+
+test('Modernizr.audio and Modernizr.video',function(){
+
+  for (var i = -1, len = TEST.audvid.length; ++i < len;){
+    var prop = TEST.audvid[i];
+
+    if (Modernizr[prop].toString() == 'true'){
+
+      ok(Modernizr[prop],                             'Modernizr.'+prop+' is truthy.');
+      equal(Modernizr[prop] == true,true,            'Modernizr.'+prop+' is == true')
+      equal(typeof Modernizr[prop] === 'object',true,'Moderizr.'+prop+' is truly an object');
+      equal(Modernizr[prop] !== true,true,           'Modernizr.'+prop+' is !== true')
+
+    } else {
+
+      equal(Modernizr[prop] != true,true,            'Modernizr.'+prop+' is != true')
+    }
+  }
+
+
+});
+
+
+test('Modernizr results match expected values',function(){
+
+  // i'm bringing over a few tests from inside Modernizr.js
+  equal(!!document.createElement('canvas').getContext,Modernizr.canvas,'canvas test consistent');
+
+  equal(!!window.Worker,Modernizr.webworkers,'web workers test consistent')
+
+});
+
+
+
+module('Modernizr\'s API methods', {
+    setup:function() {
+    },
+    teardown:function() {
+    }
+});
+
+test('Modernizr.addTest()',22,function(){
+
+  var docEl = document.documentElement;
+
+
+  Modernizr.addTest('testtrue',function(){
+    return true;
+  });
+
+  Modernizr.addTest('testtruthy',function(){
+    return 100;
+  });
+
+  Modernizr.addTest('testfalse',function(){
+    return false;
+  });
+
+  Modernizr.addTest('testfalsy',function(){
+    return undefined;
+  });
+
+  ok(docEl.className.indexOf(' testtrue') >= 0,'positive class added');
+  equal(Modernizr.testtrue,true,'positive prop added');
+
+  ok(docEl.className.indexOf(' testtruthy') >= 0,'positive class added');
+  equal(Modernizr.testtruthy,100,'truthy value is not casted to straight boolean');
+
+  ok(docEl.className.indexOf(' no-testfalse') >= 0,'negative class added');
+  equal(Modernizr.testfalse,false,'negative prop added');
+
+  ok(docEl.className.indexOf(' no-testfalsy') >= 0,'negative class added');
+  equal(Modernizr.testfalsy,undefined,'falsy value is not casted to straight boolean');
+
+
+
+  Modernizr.addTest('testcamelCase',function(){
+     return true;
+   });
+
+  ok(docEl.className.indexOf(' testcamelCase') === -1,
+     'camelCase test name toLowerCase()\'d');
+
+
+  // okay new signature for this API! woo
+
+  Modernizr.addTest('testboolfalse', false);
+
+  ok(~docEl.className.indexOf(' no-testboolfalse'), 'Modernizr.addTest(feature, bool): negative class added');
+  equal(Modernizr.testboolfalse, false, 'Modernizr.addTest(feature, bool): negative prop added');
+
+
+
+  Modernizr.addTest('testbooltrue', true);
+
+  ok(~docEl.className.indexOf(' testbooltrue'), 'Modernizr.addTest(feature, bool): positive class added');
+  equal(Modernizr.testbooltrue, true, 'Modernizr.addTest(feature, bool): positive prop added');
+
+
+
+  Modernizr.addTest({'testobjboolfalse': false,
+                     'testobjbooltrue' : true   });
+
+  ok(~docEl.className.indexOf(' no-testobjboolfalse'), 'Modernizr.addTest({feature: bool}): negative class added');
+  equal(Modernizr.testobjboolfalse, false, 'Modernizr.addTest({feature: bool}): negative prop added');
+
+  ok(~docEl.className.indexOf(' testobjbooltrue'), 'Modernizr.addTest({feature: bool}): positive class added');
+  equal(Modernizr.testobjbooltrue, true, 'Modernizr.addTest({feature: bool}): positive prop added');
+
+
+
+
+  Modernizr.addTest({'testobjfnfalse': function(){ return false },
+                     'testobjfntrue' : function(){ return true }   });
+
+
+  ok(~docEl.className.indexOf(' no-testobjfnfalse'), 'Modernizr.addTest({feature: bool}): negative class added');
+  equal(Modernizr.testobjfnfalse, false, 'Modernizr.addTest({feature: bool}): negative prop added');
+
+  ok(~docEl.className.indexOf(' testobjfntrue'), 'Modernizr.addTest({feature: bool}): positive class added');
+  equal(Modernizr.testobjfntrue, true, 'Modernizr.addTest({feature: bool}): positive prop added');
+
+
+  Modernizr
+    .addTest('testchainone', true)
+    .addTest({ testchaintwo: true })
+    .addTest('testchainthree', function(){ return true; });
+
+  ok( Modernizr.testchainone == Modernizr.testchaintwo == Modernizr.testchainthree, 'addTest is chainable');
+
+
+}); // eo addTest
+
+
+
+
+
+test('Modernizr.mq: media query testing',function(){
+
+  var $html = $('html');
+  $.mobile = {};
+
+  // from jquery mobile
+
+  $.mobile.media = (function() {
+       // TODO: use window.matchMedia once at least one UA implements it
+       var cache = {},
+               testDiv = $( "<div id='jquery-mediatest'>" ),
+               fakeBody = $( "<body>" ).append( testDiv );
+
+       return function( query ) {
+               if ( !( query in cache ) ) {
+                       var styleBlock = document.createElement('style'),
+                       cssrule = "@media " + query + " { #jquery-mediatest { position:absolute; } }";
+               //must set type for IE!
+               styleBlock.type = "text/css";
+               if (styleBlock.styleSheet){
+                 styleBlock.styleSheet.cssText = cssrule;
+               }
+               else {
+                 styleBlock.appendChild(document.createTextNode(cssrule));
+               }
+
+                       $html.prepend( fakeBody ).prepend( styleBlock );
+                       cache[ query ] = testDiv.css( "position" ) === "absolute";
+                       fakeBody.add( styleBlock ).remove();
+               }
+               return cache[ query ];
+       };
+  })();
+
+
+  ok(Modernizr.mq,'Modernizr.mq() doesn\' freak out.');
+
+  equal($.mobile.media('only screen'), Modernizr.mq('only screen'),'screen media query matches jQuery mobile\'s result');
+
+  equal(Modernizr.mq('only all'), Modernizr.mq('only all'), 'Cache hit matches');
+
+
+});
+
+
+
+
+test('Modernizr.hasEvent()',function(){
+
+  ok(typeof Modernizr.hasEvent == 'function','Modernizr.hasEvent() is a function');
+
+
+  equal(Modernizr.hasEvent('click'), true,'click event is supported');
+
+  equal(Modernizr.hasEvent('modernizrcustomevent'), false,'random event is definitely not supported');
+
+  /* works fine in webkit but not gecko
+  equal(  Modernizr.hasEvent('resize', window),
+          !Modernizr.hasEvent('resize', document.createElement('div')),
+          'Resize is supported in window but not a div, typically...');
+  */
+
+});
+
+
+
+
+
+test('Modernizr.testStyles()',function(){
+
+  equal(typeof Modernizr.testStyles, 'function','Modernizr.testStyles() is a function');
+
+  var style = '#modernizr{ width: 9px; height: 4px; font-size: 0; color: papayawhip; }';
+
+  Modernizr.testStyles(style, function(elem, rule){
+      equal(style, rule, 'rule passsed back matches what i gave it.')
+      equal(elem.offsetWidth, 9, 'width was set through the style');
+      equal(elem.offsetHeight, 4, 'height was set through the style');
+      equal(elem.id, 'modernizr', 'element is indeed the modernizr element');
+  });
+
+});
+
+
+test('Modernizr._[properties]',function(){
+
+  equal(6, Modernizr._prefixes.length, 'Modernizr._prefixes has 6 items');
+
+  equal(4, Modernizr._domPrefixes.length, 'Modernizr.domPrefixes has 4 items');
+
+});
+
+test('Modernizr.testProp()',function(){
+
+  equal(true, Modernizr.testProp('margin'), 'Everyone supports margin');
+
+  equal(false, Modernizr.testProp('happiness'), 'Nobody supports the happiness style. :(');
+  equal(true, Modernizr.testProp('fontSize'), 'Everyone supports fontSize');
+  equal(false, Modernizr.testProp('font-size'), 'Nobody supports font-size');
+
+  equal('pointerEvents' in  document.createElement('div').style,
+         Modernizr.testProp('pointerEvents'),
+         'results for `pointer-events` are consistent with a homegrown feature test');
+
+});
+
+
+
+test('Modernizr.testAllProps()',function(){
+
+  equal(true, Modernizr.testAllProps('margin'), 'Everyone supports margin');
+
+  equal(false, Modernizr.testAllProps('happiness'), 'Nobody supports the happiness style. :(');
+  equal(true, Modernizr.testAllProps('fontSize'), 'Everyone supports fontSize');
+  equal(false, Modernizr.testAllProps('font-size'), 'Nobody supports font-size');
+
+  equal(Modernizr.csstransitions, Modernizr.testAllProps('transition'), 'Modernizr result matches API result: csstransitions');
+
+  equal(Modernizr.csscolumns, Modernizr.testAllProps('columnCount'), 'Modernizr result matches API result: csscolumns')
+
+});
+
+
+
+
+
+
+test('Modernizr.prefixed() - css and DOM resolving', function(){
+  // https://gist.github.com/523692
+
+  function gimmePrefix(prop, obj){
+    var prefixes = ['Moz','Khtml','Webkit','O','ms'],
+        domPrefixes = ['moz','khtml','webkit','o','ms'],
+        elem     = document.createElement('div'),
+        upper    = prop.charAt(0).toUpperCase() + prop.slice(1);
+
+    if(!obj) {
+      if (prop in elem.style)
+        return prop;
+
+      for (var len = prefixes.length; len--; ){
+        if ((prefixes[len] + upper)  in elem.style)
+          return (prefixes[len] + upper);
+      }
+    } else {
+      if (prop in obj)
+        return prop;
+
+      for (var len = domPrefixes.length; len--; ){
+        if ((domPrefixes[len] + upper)  in obj)
+          return (domPrefixes[len] + upper);
+      }
+    }
+
+
+    return false;
+  }
+
+  var propArr = ['transition', 'backgroundSize', 'boxSizing', 'borderImage',
+                 'borderRadius', 'boxShadow', 'columnCount'];
+
+  var domPropArr = [{ 'prop': 'requestAnimationFrame',  'obj': window },
+                    { 'prop': 'querySelectorAll',       'obj': document },
+                    { 'prop': 'matchesSelector',        'obj': document.createElement('div') }];
+
+  for (var i = -1, len = propArr.length; ++i < len; ){
+    var prop = propArr[i];
+    equal(Modernizr.prefixed(prop), gimmePrefix(prop), 'results for ' + prop + ' match the homebaked prefix finder');
+  }
+
+  for (var i = -1, len = domPropArr.length; ++i < len; ){
+    var prop = domPropArr[i];
+    ok(!!~Modernizr.prefixed(prop.prop, prop.obj, false).toString().indexOf(gimmePrefix(prop.prop, prop.obj)), 'results for ' + prop.prop + ' match the homebaked prefix finder');
+  }
+
+
+
+
+});
+
+
+// FIXME: so a few of these are whitelisting for webkit. i'd like to improve that.
+test('Modernizr.prefixed autobind', function(){
+
+  var rAFName;
+
+  // quick sniff to find the local rAF prefixed name.
+  var vendors = ['ms', 'moz', 'webkit', 'o'];
+  for(var x = 0; x < vendors.length && !rAFName; ++x) {
+    rAFName = window[vendors[x]+'RequestAnimationFrame'] && vendors[x]+'RequestAnimationFrame';
+  }
+
+  if (rAFName){
+    // rAF returns a function
+    equal(
+      'function',
+      typeof Modernizr.prefixed('requestAnimationFrame', window),
+      "Modernizr.prefixed('requestAnimationFrame', window) returns a function")
+
+    // unless we false it to a string
+    equal(
+      rAFName,
+      Modernizr.prefixed('requestAnimationFrame', window, false),
+      "Modernizr.prefixed('requestAnimationFrame', window, false) returns a string (the prop name)")
+
+  }
+
+  if (document.body.webkitMatchesSelector || document.body.mozMatchesSelector){
+
+    var fn = Modernizr.prefixed('matchesSelector', HTMLElement.prototype, document.body);
+
+    //returns function
+    equal(
+      'function',
+      typeof fn,
+      "Modernizr.prefixed('matchesSelector', HTMLElement.prototype, document.body) returns a function");
+
+      // fn scoping
+    equal(
+      true,
+      fn('body'),
+      "Modernizr.prefixed('matchesSelector', HTMLElement.prototype, document.body) is scoped to the body")
+
+  }
+
+  // Webkit only: are there other objects that are prefixed?
+  if (window.webkitNotifications){
+    // should be an object.
+
+    equal(
+      'object',
+      typeof Modernizr.prefixed('Notifications', window),
+      "Modernizr.prefixed('Notifications') returns an object");
+
+  }
+
+  // Webkit only:
+  if (typeof document.webkitIsFullScreen !== 'undefined'){
+    // boolean
+
+    equal(
+      'boolean',
+      typeof Modernizr.prefixed('isFullScreen', document),
+      "Modernizr.prefixed('isFullScreen') returns a boolean");
+  }
+
+
+
+  // Moz only:
+  if (typeof document.mozFullScreen !== 'undefined'){
+    // boolean
+
+    equal(
+      'boolean',
+      typeof Modernizr.prefixed('fullScreen', document),
+      "Modernizr.prefixed('fullScreen') returns a boolean");
+  }
+
+
+  // Webkit-only.. takes advantage of Webkit's mixed case of prefixes
+  if (document.body.style.WebkitAnimation){
+    // string
+
+    equal(
+      'string',
+      typeof Modernizr.prefixed('animation', document.body.style),
+      "Modernizr.prefixed('animation', document.body.style) returns value of that, as a string");
+
+    equal(
+      animationStyle.toLowerCase(),
+      Modernizr.prefixed('animation', document.body.style, false).toLowerCase(),
+      "Modernizr.prefixed('animation', document.body.style, false) returns the (case-normalized) name of the property: webkitanimation");
+
+  }
+
+  equal(
+    false,
+    Modernizr.prefixed('doSomethingAmazing$#$', window),
+    "Modernizr.prefixed('doSomethingAmazing$#$', window) : Gobbledygook with prefixed(str,obj) returns false");
+
+  equal(
+    false,
+    Modernizr.prefixed('doSomethingAmazing$#$', window, document.body),
+    "Modernizr.prefixed('doSomethingAmazing$#$', window) : Gobbledygook with prefixed(str,obj, scope) returns false");
+
+
+  equal(
+    false,
+    Modernizr.prefixed('doSomethingAmazing$#$', window, false),
+    "Modernizr.prefixed('doSomethingAmazing$#$', window) : Gobbledygook with prefixed(str,obj, false) returns false");
+
+
+});
+
+
+
+
+
diff --git a/js/modernizr/test/qunit/qunit.js b/js/modernizr/test/qunit/qunit.js
new file mode 100644 (file)
index 0000000..9efedcb
--- /dev/null
@@ -0,0 +1,1932 @@
+/**
+ * QUnit v1.9.0 - A JavaScript Unit Testing Framework
+ *
+ * http://docs.jquery.com/QUnit
+ *
+ * Copyright (c) 2012 John Resig, Jörn Zaefferer
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * or GPL (GPL-LICENSE.txt) licenses.
+ */
+
+(function( window ) {
+
+var QUnit,
+       config,
+       onErrorFnPrev,
+       testId = 0,
+       fileName = (sourceFromStacktrace( 0 ) || "" ).replace(/(:\d+)+\)?/, "").replace(/.+\//, ""),
+       toString = Object.prototype.toString,
+       hasOwn = Object.prototype.hasOwnProperty,
+       defined = {
+       setTimeout: typeof window.setTimeout !== "undefined",
+       sessionStorage: (function() {
+               var x = "qunit-test-string";
+               try {
+                       sessionStorage.setItem( x, x );
+                       sessionStorage.removeItem( x );
+                       return true;
+               } catch( e ) {
+                       return false;
+               }
+       }())
+};
+
+function Test( settings ) {
+       extend( this, settings );
+       this.assertions = [];
+       this.testNumber = ++Test.count;
+}
+
+Test.count = 0;
+
+Test.prototype = {
+       init: function() {
+               var a, b, li,
+        tests = id( "qunit-tests" );
+
+               if ( tests ) {
+                       b = document.createElement( "strong" );
+                       b.innerHTML = this.name;
+
+                       // `a` initialized at top of scope
+                       a = document.createElement( "a" );
+                       a.innerHTML = "Rerun";
+                       a.href = QUnit.url({ testNumber: this.testNumber });
+
+                       li = document.createElement( "li" );
+                       li.appendChild( b );
+                       li.appendChild( a );
+                       li.className = "running";
+                       li.id = this.id = "qunit-test-output" + testId++;
+
+                       tests.appendChild( li );
+               }
+       },
+       setup: function() {
+               if ( this.module !== config.previousModule ) {
+                       if ( config.previousModule ) {
+                               runLoggingCallbacks( "moduleDone", QUnit, {
+                                       name: config.previousModule,
+                                       failed: config.moduleStats.bad,
+                                       passed: config.moduleStats.all - config.moduleStats.bad,
+                                       total: config.moduleStats.all
+                               });
+                       }
+                       config.previousModule = this.module;
+                       config.moduleStats = { all: 0, bad: 0 };
+                       runLoggingCallbacks( "moduleStart", QUnit, {
+                               name: this.module
+                       });
+               } else if ( config.autorun ) {
+                       runLoggingCallbacks( "moduleStart", QUnit, {
+                               name: this.module
+                       });
+               }
+
+               config.current = this;
+
+               this.testEnvironment = extend({
+                       setup: function() {},
+                       teardown: function() {}
+               }, this.moduleTestEnvironment );
+
+               runLoggingCallbacks( "testStart", QUnit, {
+                       name: this.testName,
+                       module: this.module
+               });
+
+               // allow utility functions to access the current test environment
+               // TODO why??
+               QUnit.current_testEnvironment = this.testEnvironment;
+
+               if ( !config.pollution ) {
+                       saveGlobal();
+               }
+               if ( config.notrycatch ) {
+                       this.testEnvironment.setup.call( this.testEnvironment );
+                       return;
+               }
+               try {
+                       this.testEnvironment.setup.call( this.testEnvironment );
+               } catch( e ) {
+                       QUnit.pushFailure( "Setup failed on " + this.testName + ": " + e.message, extractStacktrace( e, 1 ) );
+               }
+       },
+       run: function() {
+               config.current = this;
+
+               var running = id( "qunit-testresult" );
+
+               if ( running ) {
+                       running.innerHTML = "Running: <br/>" + this.name;
+               }
+
+               if ( this.async ) {
+                       QUnit.stop();
+               }
+
+               if ( config.notrycatch ) {
+                       this.callback.call( this.testEnvironment, QUnit.assert );
+                       return;
+               }
+
+               try {
+                       this.callback.call( this.testEnvironment, QUnit.assert );
+               } catch( e ) {
+                       QUnit.pushFailure( "Died on test #" + (this.assertions.length + 1) + " " + this.stack + ": " + e.message, extractStacktrace( e, 0 ) );
+                       // else next test will carry the responsibility
+                       saveGlobal();
+
+                       // Restart the tests if they're blocking
+                       if ( config.blocking ) {
+                               QUnit.start();
+                       }
+               }
+       },
+       teardown: function() {
+               config.current = this;
+               if ( config.notrycatch ) {
+                       this.testEnvironment.teardown.call( this.testEnvironment );
+                       return;
+               } else {
+                       try {
+                               this.testEnvironment.teardown.call( this.testEnvironment );
+                       } catch( e ) {
+                               QUnit.pushFailure( "Teardown failed on " + this.testName + ": " + e.message, extractStacktrace( e, 1 ) );
+                       }
+               }
+               checkPollution();
+       },
+       finish: function() {
+               config.current = this;
+               if ( config.requireExpects && this.expected == null ) {
+                       QUnit.pushFailure( "Expected number of assertions to be defined, but expect() was not called.", this.stack );
+               } else if ( this.expected != null && this.expected != this.assertions.length ) {
+                       QUnit.pushFailure( "Expected " + this.expected + " assertions, but " + this.assertions.length + " were run", this.stack );
+               } else if ( this.expected == null && !this.assertions.length ) {
+                       QUnit.pushFailure( "Expected at least one assertion, but none were run - call expect(0) to accept zero assertions.", this.stack );
+               }
+
+               var assertion, a, b, i, li, ol,
+                       test = this,
+                       good = 0,
+                       bad = 0,
+                       tests = id( "qunit-tests" );
+
+               config.stats.all += this.assertions.length;
+               config.moduleStats.all += this.assertions.length;
+
+               if ( tests ) {
+                       ol = document.createElement( "ol" );
+
+                       for ( i = 0; i < this.assertions.length; i++ ) {
+                               assertion = this.assertions[i];
+
+                               li = document.createElement( "li" );
+                               li.className = assertion.result ? "pass" : "fail";
+                               li.innerHTML = assertion.message || ( assertion.result ? "okay" : "failed" );
+                               ol.appendChild( li );
+
+                               if ( assertion.result ) {
+                                       good++;
+                               } else {
+                                       bad++;
+                                       config.stats.bad++;
+                                       config.moduleStats.bad++;
+                               }
+                       }
+
+                       // store result when possible
+                       if ( QUnit.config.reorder && defined.sessionStorage ) {
+                               if ( bad ) {
+                                       sessionStorage.setItem( "qunit-test-" + this.module + "-" + this.testName, bad );
+                               } else {
+                                       sessionStorage.removeItem( "qunit-test-" + this.module + "-" + this.testName );
+                               }
+                       }
+
+                       if ( bad === 0 ) {
+                               ol.style.display = "none";
+                       }
+
+                       // `b` initialized at top of scope
+                       b = document.createElement( "strong" );
+                       b.innerHTML = this.name + " <b class='counts'>(<b class='failed'>" + bad + "</b>, <b class='passed'>" + good + "</b>, " + this.assertions.length + ")</b>";
+
+                       addEvent(b, "click", function() {
+                               var next = b.nextSibling.nextSibling,
+                                       display = next.style.display;
+                               next.style.display = display === "none" ? "block" : "none";
+                       });
+
+                       addEvent(b, "dblclick", function( e ) {
+                               var target = e && e.target ? e.target : window.event.srcElement;
+                               if ( target.nodeName.toLowerCase() == "span" || target.nodeName.toLowerCase() == "b" ) {
+                                       target = target.parentNode;
+                               }
+                               if ( window.location && target.nodeName.toLowerCase() === "strong" ) {
+                                       window.location = QUnit.url({ testNumber: test.testNumber });
+                               }
+                       });
+
+                       // `li` initialized at top of scope
+                       li = id( this.id );
+                       li.className = bad ? "fail" : "pass";
+                       li.removeChild( li.firstChild );
+                       a = li.firstChild;
+                       li.appendChild( b );
+                       li.appendChild ( a );
+                       li.appendChild( ol );
+
+               } else {
+                       for ( i = 0; i < this.assertions.length; i++ ) {
+                               if ( !this.assertions[i].result ) {
+                                       bad++;
+                                       config.stats.bad++;
+                                       config.moduleStats.bad++;
+                               }
+                       }
+               }
+
+               runLoggingCallbacks( "testDone", QUnit, {
+                       name: this.testName,
+                       module: this.module,
+                       failed: bad,
+                       passed: this.assertions.length - bad,
+                       total: this.assertions.length
+               });
+
+               QUnit.reset();
+
+               config.current = undefined;
+       },
+
+       queue: function() {
+               var bad,
+                       test = this;
+
+               synchronize(function() {
+                       test.init();
+               });
+               function run() {
+                       // each of these can by async
+                       synchronize(function() {
+                               test.setup();
+                       });
+                       synchronize(function() {
+                               test.run();
+                       });
+                       synchronize(function() {
+                               test.teardown();
+                       });
+                       synchronize(function() {
+                               test.finish();
+                       });
+               }
+
+               // `bad` initialized at top of scope
+               // defer when previous test run passed, if storage is available
+               bad = QUnit.config.reorder && defined.sessionStorage &&
+                                               +sessionStorage.getItem( "qunit-test-" + this.module + "-" + this.testName );
+
+               if ( bad ) {
+                       run();
+               } else {
+                       synchronize( run, true );
+               }
+       }
+};
+
+// Root QUnit object.
+// `QUnit` initialized at top of scope
+QUnit = {
+
+       // call on start of module test to prepend name to all tests
+       module: function( name, testEnvironment ) {
+               config.currentModule = name;
+               config.currentModuleTestEnviroment = testEnvironment;
+       },
+
+       asyncTest: function( testName, expected, callback ) {
+               if ( arguments.length === 2 ) {
+                       callback = expected;
+                       expected = null;
+               }
+
+               QUnit.test( testName, expected, callback, true );
+       },
+
+       test: function( testName, expected, callback, async ) {
+               var test,
+                       name = "<span class='test-name'>" + escapeInnerText( testName ) + "</span>";
+
+               if ( arguments.length === 2 ) {
+                       callback = expected;
+                       expected = null;
+               }
+
+               if ( config.currentModule ) {
+                       name = "<span class='module-name'>" + config.currentModule + "</span>: " + name;
+               }
+
+               test = new Test({
+                       name: name,
+                       testName: testName,
+                       expected: expected,
+                       async: async,
+                       callback: callback,
+                       module: config.currentModule,
+                       moduleTestEnvironment: config.currentModuleTestEnviroment,
+                       stack: sourceFromStacktrace( 2 )
+               });
+
+               if ( !validTest( test ) ) {
+                       return;
+               }
+
+               test.queue();
+       },
+
+       // Specify the number of expected assertions to gurantee that failed test (no assertions are run at all) don't slip through.
+       expect: function( asserts ) {
+               config.current.expected = asserts;
+       },
+
+       start: function( count ) {
+               config.semaphore -= count || 1;
+               // don't start until equal number of stop-calls
+               if ( config.semaphore > 0 ) {
+                       return;
+               }
+               // ignore if start is called more often then stop
+               if ( config.semaphore < 0 ) {
+                       config.semaphore = 0;
+               }
+               // A slight delay, to avoid any current callbacks
+               if ( defined.setTimeout ) {
+                       window.setTimeout(function() {
+                               if ( config.semaphore > 0 ) {
+                                       return;
+                               }
+                               if ( config.timeout ) {
+                                       clearTimeout( config.timeout );
+                               }
+
+                               config.blocking = false;
+                               process( true );
+                       }, 13);
+               } else {
+                       config.blocking = false;
+                       process( true );
+               }
+       },
+
+       stop: function( count ) {
+               config.semaphore += count || 1;
+               config.blocking = true;
+
+               if ( config.testTimeout && defined.setTimeout ) {
+                       clearTimeout( config.timeout );
+                       config.timeout = window.setTimeout(function() {
+                               QUnit.ok( false, "Test timed out" );
+                               config.semaphore = 1;
+                               QUnit.start();
+                       }, config.testTimeout );
+               }
+       }
+};
+
+// Asssert helpers
+// All of these must call either QUnit.push() or manually do:
+// - runLoggingCallbacks( "log", .. );
+// - config.current.assertions.push({ .. });
+QUnit.assert = {
+       /**
+        * Asserts rough true-ish result.
+        * @name ok
+        * @function
+        * @example ok( "asdfasdf".length > 5, "There must be at least 5 chars" );
+        */
+       ok: function( result, msg ) {
+               if ( !config.current ) {
+                       throw new Error( "ok() assertion outside test context, was " + sourceFromStacktrace(2) );
+               }
+               result = !!result;
+
+               var source,
+                       details = {
+                               result: result,
+                               message: msg
+                       };
+
+               msg = escapeInnerText( msg || (result ? "okay" : "failed" ) );
+               msg = "<span class='test-message'>" + msg + "</span>";
+
+               if ( !result ) {
+                       source = sourceFromStacktrace( 2 );
+                       if ( source ) {
+                               details.source = source;
+                               msg += "<table><tr class='test-source'><th>Source: </th><td><pre>" + escapeInnerText( source ) + "</pre></td></tr></table>";
+                       }
+               }
+               runLoggingCallbacks( "log", QUnit, details );
+               config.current.assertions.push({
+                       result: result,
+                       message: msg
+               });
+       },
+
+       /**
+        * Assert that the first two arguments are equal, with an optional message.
+        * Prints out both actual and expected values.
+        * @name equal
+        * @function
+        * @example equal( format( "Received {0} bytes.", 2), "Received 2 bytes.", "format() replaces {0} with next argument" );
+        */
+       equal: function( actual, expected, message ) {
+               QUnit.push( expected == actual, actual, expected, message );
+       },
+
+       /**
+        * @name notEqual
+        * @function
+        */
+       notEqual: function( actual, expected, message ) {
+               QUnit.push( expected != actual, actual, expected, message );
+       },
+
+       /**
+        * @name deepEqual
+        * @function
+        */
+       deepEqual: function( actual, expected, message ) {
+               QUnit.push( QUnit.equiv(actual, expected), actual, expected, message );
+       },
+
+       /**
+        * @name notDeepEqual
+        * @function
+        */
+       notDeepEqual: function( actual, expected, message ) {
+               QUnit.push( !QUnit.equiv(actual, expected), actual, expected, message );
+       },
+
+       /**
+        * @name strictEqual
+        * @function
+        */
+       strictEqual: function( actual, expected, message ) {
+               QUnit.push( expected === actual, actual, expected, message );
+       },
+
+       /**
+        * @name notStrictEqual
+        * @function
+        */
+       notStrictEqual: function( actual, expected, message ) {
+               QUnit.push( expected !== actual, actual, expected, message );
+       },
+
+       throws: function( block, expected, message ) {
+               var actual,
+                       ok = false;
+
+               // 'expected' is optional
+               if ( typeof expected === "string" ) {
+                       message = expected;
+                       expected = null;
+               }
+
+               config.current.ignoreGlobalErrors = true;
+               try {
+                       block.call( config.current.testEnvironment );
+               } catch (e) {
+                       actual = e;
+               }
+               config.current.ignoreGlobalErrors = false;
+
+               if ( actual ) {
+                       // we don't want to validate thrown error
+                       if ( !expected ) {
+                               ok = true;
+                       // expected is a regexp
+                       } else if ( QUnit.objectType( expected ) === "regexp" ) {
+                               ok = expected.test( actual );
+                       // expected is a constructor
+                       } else if ( actual instanceof expected ) {
+                               ok = true;
+                       // expected is a validation function which returns true is validation passed
+                       } else if ( expected.call( {}, actual ) === true ) {
+                               ok = true;
+                       }
+
+                       QUnit.push( ok, actual, null, message );
+               } else {
+                       QUnit.pushFailure( message, null, 'No exception was thrown.' );
+               }
+       }
+};
+
+/**
+ * @deprecate since 1.8.0
+ * Kept assertion helpers in root for backwards compatibility
+ */
+extend( QUnit, QUnit.assert );
+
+/**
+ * @deprecated since 1.9.0
+ * Kept global "raises()" for backwards compatibility
+ */
+QUnit.raises = QUnit.assert.throws;
+
+/**
+ * @deprecated since 1.0.0, replaced with error pushes since 1.3.0
+ * Kept to avoid TypeErrors for undefined methods.
+ */
+QUnit.equals = function() {
+       QUnit.push( false, false, false, "QUnit.equals has been deprecated since 2009 (e88049a0), use QUnit.equal instead" );
+};
+QUnit.same = function() {
+       QUnit.push( false, false, false, "QUnit.same has been deprecated since 2009 (e88049a0), use QUnit.deepEqual instead" );
+};
+
+// We want access to the constructor's prototype
+(function() {
+       function F() {}
+       F.prototype = QUnit;
+       QUnit = new F();
+       // Make F QUnit's constructor so that we can add to the prototype later
+       QUnit.constructor = F;
+}());
+
+/**
+ * Config object: Maintain internal state
+ * Later exposed as QUnit.config
+ * `config` initialized at top of scope
+ */
+config = {
+       // The queue of tests to run
+       queue: [],
+
+       // block until document ready
+       blocking: true,
+
+       // when enabled, show only failing tests
+       // gets persisted through sessionStorage and can be changed in UI via checkbox
+       hidepassed: false,
+
+       // by default, run previously failed tests first
+       // very useful in combination with "Hide passed tests" checked
+       reorder: true,
+
+       // by default, modify document.title when suite is done
+       altertitle: true,
+
+       // when enabled, all tests must call expect()
+       requireExpects: false,
+
+       // add checkboxes that are persisted in the query-string
+       // when enabled, the id is set to `true` as a `QUnit.config` property
+       urlConfig: [
+               {
+                       id: "noglobals",
+                       label: "Check for Globals",
+                       tooltip: "Enabling this will test if any test introduces new properties on the `window` object. Stored as query-strings."
+               },
+               {
+                       id: "notrycatch",
+                       label: "No try-catch",
+                       tooltip: "Enabling this will run tests outside of a try-catch block. Makes debugging exceptions in IE reasonable. Stored as query-strings."
+               }
+       ],
+
+       // logging callback queues
+       begin: [],
+       done: [],
+       log: [],
+       testStart: [],
+       testDone: [],
+       moduleStart: [],
+       moduleDone: []
+};
+
+// Initialize more QUnit.config and QUnit.urlParams
+(function() {
+       var i,
+               location = window.location || { search: "", protocol: "file:" },
+               params = location.search.slice( 1 ).split( "&" ),
+               length = params.length,
+               urlParams = {},
+               current;
+
+       if ( params[ 0 ] ) {
+               for ( i = 0; i < length; i++ ) {
+                       current = params[ i ].split( "=" );
+                       current[ 0 ] = decodeURIComponent( current[ 0 ] );
+                       // allow just a key to turn on a flag, e.g., test.html?noglobals
+                       current[ 1 ] = current[ 1 ] ? decodeURIComponent( current[ 1 ] ) : true;
+                       urlParams[ current[ 0 ] ] = current[ 1 ];
+               }
+       }
+
+       QUnit.urlParams = urlParams;
+
+       // String search anywhere in moduleName+testName
+       config.filter = urlParams.filter;
+
+       // Exact match of the module name
+       config.module = urlParams.module;
+
+       config.testNumber = parseInt( urlParams.testNumber, 10 ) || null;
+
+       // Figure out if we're running the tests from a server or not
+       QUnit.isLocal = location.protocol === "file:";
+}());
+
+// Export global variables, unless an 'exports' object exists,
+// in that case we assume we're in CommonJS (dealt with on the bottom of the script)
+if ( typeof exports === "undefined" ) {
+       extend( window, QUnit );
+
+       // Expose QUnit object
+       window.QUnit = QUnit;
+}
+
+// Extend QUnit object,
+// these after set here because they should not be exposed as global functions
+extend( QUnit, {
+       config: config,
+
+       // Initialize the configuration options
+       init: function() {
+               extend( config, {
+                       stats: { all: 0, bad: 0 },
+                       moduleStats: { all: 0, bad: 0 },
+                       started: +new Date(),
+                       updateRate: 1000,
+                       blocking: false,
+                       autostart: true,
+                       autorun: false,
+                       filter: "",
+                       queue: [],
+                       semaphore: 0
+               });
+
+               var tests, banner, result,
+                       qunit = id( "qunit" );
+
+               if ( qunit ) {
+                       qunit.innerHTML =
+                               "<h1 id='qunit-header'>" + escapeInnerText( document.title ) + "</h1>" +
+                               "<h2 id='qunit-banner'></h2>" +
+                               "<div id='qunit-testrunner-toolbar'></div>" +
+                               "<h2 id='qunit-userAgent'></h2>" +
+                               "<ol id='qunit-tests'></ol>";
+               }
+
+               tests = id( "qunit-tests" );
+               banner = id( "qunit-banner" );
+               result = id( "qunit-testresult" );
+
+               if ( tests ) {
+                       tests.innerHTML = "";
+               }
+
+               if ( banner ) {
+                       banner.className = "";
+               }
+
+               if ( result ) {
+                       result.parentNode.removeChild( result );
+               }
+
+               if ( tests ) {
+                       result = document.createElement( "p" );
+                       result.id = "qunit-testresult";
+                       result.className = "result";
+                       tests.parentNode.insertBefore( result, tests );
+                       result.innerHTML = "Running...<br/>&nbsp;";
+               }
+       },
+
+       // Resets the test setup. Useful for tests that modify the DOM.
+       // If jQuery is available, uses jQuery's html(), otherwise just innerHTML.
+       reset: function() {
+               var fixture;
+
+               if ( window.jQuery ) {
+                       jQuery( "#qunit-fixture" ).html( config.fixture );
+               } else {
+                       fixture = id( "qunit-fixture" );
+                       if ( fixture ) {
+                               fixture.innerHTML = config.fixture;
+                       }
+               }
+       },
+
+       // Trigger an event on an element.
+       // @example triggerEvent( document.body, "click" );
+       triggerEvent: function( elem, type, event ) {
+               if ( document.createEvent ) {
+                       event = document.createEvent( "MouseEvents" );
+                       event.initMouseEvent(type, true, true, elem.ownerDocument.defaultView,
+                               0, 0, 0, 0, 0, false, false, false, false, 0, null);
+
+                       elem.dispatchEvent( event );
+               } else if ( elem.fireEvent ) {
+                       elem.fireEvent( "on" + type );
+               }
+       },
+
+       // Safe object type checking
+       is: function( type, obj ) {
+               return QUnit.objectType( obj ) == type;
+       },
+
+       objectType: function( obj ) {
+               if ( typeof obj === "undefined" ) {
+                               return "undefined";
+               // consider: typeof null === object
+               }
+               if ( obj === null ) {
+                               return "null";
+               }
+
+               var type = toString.call( obj ).match(/^\[object\s(.*)\]$/)[1] || "";
+
+               switch ( type ) {
+                       case "Number":
+                               if ( isNaN(obj) ) {
+                                       return "nan";
+                               }
+                               return "number";
+                       case "String":
+                       case "Boolean":
+                       case "Array":
+                       case "Date":
+                       case "RegExp":
+                       case "Function":
+                               return type.toLowerCase();
+               }
+               if ( typeof obj === "object" ) {
+                       return "object";
+               }
+               return undefined;
+       },
+
+       push: function( result, actual, expected, message ) {
+               if ( !config.current ) {
+                       throw new Error( "assertion outside test context, was " + sourceFromStacktrace() );
+               }
+
+               var output, source,
+                       details = {
+                               result: result,
+                               message: message,
+                               actual: actual,
+                               expected: expected
+                       };
+
+               message = escapeInnerText( message ) || ( result ? "okay" : "failed" );
+               message = "<span class='test-message'>" + message + "</span>";
+               output = message;
+
+               if ( !result ) {
+                       expected = escapeInnerText( QUnit.jsDump.parse(expected) );
+                       actual = escapeInnerText( QUnit.jsDump.parse(actual) );
+                       output += "<table><tr class='test-expected'><th>Expected: </th><td><pre>" + expected + "</pre></td></tr>";
+
+                       if ( actual != expected ) {
+                               output += "<tr class='test-actual'><th>Result: </th><td><pre>" + actual + "</pre></td></tr>";
+                               output += "<tr class='test-diff'><th>Diff: </th><td><pre>" + QUnit.diff( expected, actual ) + "</pre></td></tr>";
+                       }
+
+                       source = sourceFromStacktrace();
+
+                       if ( source ) {
+                               details.source = source;
+                               output += "<tr class='test-source'><th>Source: </th><td><pre>" + escapeInnerText( source ) + "</pre></td></tr>";
+                       }
+
+                       output += "</table>";
+               }
+
+               runLoggingCallbacks( "log", QUnit, details );
+
+               config.current.assertions.push({
+                       result: !!result,
+                       message: output
+               });
+       },
+
+       pushFailure: function( message, source, actual ) {
+               if ( !config.current ) {
+                       throw new Error( "pushFailure() assertion outside test context, was " + sourceFromStacktrace(2) );
+               }
+
+               var output,
+                       details = {
+                               result: false,
+                               message: message
+                       };
+
+               message = escapeInnerText( message ) || "error";
+               message = "<span class='test-message'>" + message + "</span>";
+               output = message;
+
+               output += "<table>";
+
+               if ( actual ) {
+                       output += "<tr class='test-actual'><th>Result: </th><td><pre>" + escapeInnerText( actual ) + "</pre></td></tr>";
+               }
+
+               if ( source ) {
+                       details.source = source;
+                       output += "<tr class='test-source'><th>Source: </th><td><pre>" + escapeInnerText( source ) + "</pre></td></tr>";
+               }
+
+               output += "</table>";
+
+               runLoggingCallbacks( "log", QUnit, details );
+
+               config.current.assertions.push({
+                       result: false,
+                       message: output
+               });
+       },
+
+       url: function( params ) {
+               params = extend( extend( {}, QUnit.urlParams ), params );
+               var key,
+                       querystring = "?";
+
+               for ( key in params ) {
+                       if ( !hasOwn.call( params, key ) ) {
+                               continue;
+                       }
+                       querystring += encodeURIComponent( key ) + "=" +
+                               encodeURIComponent( params[ key ] ) + "&";
+               }
+               return window.location.pathname + querystring.slice( 0, -1 );
+       },
+
+       extend: extend,
+       id: id,
+       addEvent: addEvent
+       // load, equiv, jsDump, diff: Attached later
+});
+
+/**
+ * @deprecated: Created for backwards compatibility with test runner that set the hook function
+ * into QUnit.{hook}, instead of invoking it and passing the hook function.
+ * QUnit.constructor is set to the empty F() above so that we can add to it's prototype here.
+ * Doing this allows us to tell if the following methods have been overwritten on the actual
+ * QUnit object.
+ */
+extend( QUnit.constructor.prototype, {
+
+       // Logging callbacks; all receive a single argument with the listed properties
+       // run test/logs.html for any related changes
+       begin: registerLoggingCallback( "begin" ),
+
+       // done: { failed, passed, total, runtime }
+       done: registerLoggingCallback( "done" ),
+
+       // log: { result, actual, expected, message }
+       log: registerLoggingCallback( "log" ),
+
+       // testStart: { name }
+       testStart: registerLoggingCallback( "testStart" ),
+
+       // testDone: { name, failed, passed, total }
+       testDone: registerLoggingCallback( "testDone" ),
+
+       // moduleStart: { name }
+       moduleStart: registerLoggingCallback( "moduleStart" ),
+
+       // moduleDone: { name, failed, passed, total }
+       moduleDone: registerLoggingCallback( "moduleDone" )
+});
+
+if ( typeof document === "undefined" || document.readyState === "complete" ) {
+       config.autorun = true;
+}
+
+QUnit.load = function() {
+       runLoggingCallbacks( "begin", QUnit, {} );
+
+       // Initialize the config, saving the execution queue
+       var banner, filter, i, label, len, main, ol, toolbar, userAgent, val, urlConfigCheckboxes,
+               urlConfigHtml = "",
+               oldconfig = extend( {}, config );
+
+       QUnit.init();
+       extend(config, oldconfig);
+
+       config.blocking = false;
+
+       len = config.urlConfig.length;
+
+       for ( i = 0; i < len; i++ ) {
+               val = config.urlConfig[i];
+               if ( typeof val === "string" ) {
+                       val = {
+                               id: val,
+                               label: val,
+                               tooltip: "[no tooltip available]"
+                       };
+               }
+               config[ val.id ] = QUnit.urlParams[ val.id ];
+               urlConfigHtml += "<input id='qunit-urlconfig-" + val.id + "' name='" + val.id + "' type='checkbox'" + ( config[ val.id ] ? " checked='checked'" : "" ) + " title='" + val.tooltip + "'><label for='qunit-urlconfig-" + val.id + "' title='" + val.tooltip + "'>" + val.label + "</label>";
+       }
+
+       // `userAgent` initialized at top of scope
+       userAgent = id( "qunit-userAgent" );
+       if ( userAgent ) {
+               userAgent.innerHTML = navigator.userAgent;
+       }
+
+       // `banner` initialized at top of scope
+       banner = id( "qunit-header" );
+       if ( banner ) {
+               banner.innerHTML = "<a href='" + QUnit.url({ filter: undefined, module: undefined, testNumber: undefined }) + "'>" + banner.innerHTML + "</a> ";
+       }
+
+       // `toolbar` initialized at top of scope
+       toolbar = id( "qunit-testrunner-toolbar" );
+       if ( toolbar ) {
+               // `filter` initialized at top of scope
+               filter = document.createElement( "input" );
+               filter.type = "checkbox";
+               filter.id = "qunit-filter-pass";
+
+               addEvent( filter, "click", function() {
+                       var tmp,
+                               ol = document.getElementById( "qunit-tests" );
+
+                       if ( filter.checked ) {
+                               ol.className = ol.className + " hidepass";
+                       } else {
+                               tmp = " " + ol.className.replace( /[\n\t\r]/g, " " ) + " ";
+                               ol.className = tmp.replace( / hidepass /, " " );
+                       }
+                       if ( defined.sessionStorage ) {
+                               if (filter.checked) {
+                                       sessionStorage.setItem( "qunit-filter-passed-tests", "true" );
+                               } else {
+                                       sessionStorage.removeItem( "qunit-filter-passed-tests" );
+                               }
+                       }
+               });
+
+               if ( config.hidepassed || defined.sessionStorage && sessionStorage.getItem( "qunit-filter-passed-tests" ) ) {
+                       filter.checked = true;
+                       // `ol` initialized at top of scope
+                       ol = document.getElementById( "qunit-tests" );
+                       ol.className = ol.className + " hidepass";
+               }
+               toolbar.appendChild( filter );
+
+               // `label` initialized at top of scope
+               label = document.createElement( "label" );
+               label.setAttribute( "for", "qunit-filter-pass" );
+               label.setAttribute( "title", "Only show tests and assertons that fail. Stored in sessionStorage." );
+               label.innerHTML = "Hide passed tests";
+               toolbar.appendChild( label );
+
+               urlConfigCheckboxes = document.createElement( 'span' );
+               urlConfigCheckboxes.innerHTML = urlConfigHtml;
+               addEvent( urlConfigCheckboxes, "change", function( event ) {
+                       var params = {};
+                       params[ event.target.name ] = event.target.checked ? true : undefined;
+                       window.location = QUnit.url( params );
+               });
+               toolbar.appendChild( urlConfigCheckboxes );
+       }
+
+       // `main` initialized at top of scope
+       main = id( "qunit-fixture" );
+       if ( main ) {
+               config.fixture = main.innerHTML;
+       }
+
+       if ( config.autostart ) {
+               QUnit.start();
+       }
+};
+
+addEvent( window, "load", QUnit.load );
+
+// `onErrorFnPrev` initialized at top of scope
+// Preserve other handlers
+onErrorFnPrev = window.onerror;
+
+// Cover uncaught exceptions
+// Returning true will surpress the default browser handler,
+// returning false will let it run.
+window.onerror = function ( error, filePath, linerNr ) {
+       var ret = false;
+       if ( onErrorFnPrev ) {
+               ret = onErrorFnPrev( error, filePath, linerNr );
+       }
+
+       // Treat return value as window.onerror itself does,
+       // Only do our handling if not surpressed.
+       if ( ret !== true ) {
+               if ( QUnit.config.current ) {
+                       if ( QUnit.config.current.ignoreGlobalErrors ) {
+                               return true;
+                       }
+                       QUnit.pushFailure( error, filePath + ":" + linerNr );
+               } else {
+                       QUnit.test( "global failure", function() {
+                               QUnit.pushFailure( error, filePath + ":" + linerNr );
+                       });
+               }
+               return false;
+       }
+
+       return ret;
+};
+
+function done() {
+       config.autorun = true;
+
+       // Log the last module results
+       if ( config.currentModule ) {
+               runLoggingCallbacks( "moduleDone", QUnit, {
+                       name: config.currentModule,
+                       failed: config.moduleStats.bad,
+                       passed: config.moduleStats.all - config.moduleStats.bad,
+                       total: config.moduleStats.all
+               });
+       }
+
+       var i, key,
+               banner = id( "qunit-banner" ),
+               tests = id( "qunit-tests" ),
+               runtime = +new Date() - config.started,
+               passed = config.stats.all - config.stats.bad,
+               html = [
+                       "Tests completed in ",
+                       runtime,
+                       " milliseconds.<br/>",
+                       "<span class='passed'>",
+                       passed,
+                       "</span> tests of <span class='total'>",
+                       config.stats.all,
+                       "</span> passed, <span class='failed'>",
+                       config.stats.bad,
+                       "</span> failed."
+               ].join( "" );
+
+       if ( banner ) {
+               banner.className = ( config.stats.bad ? "qunit-fail" : "qunit-pass" );
+       }
+
+       if ( tests ) {
+               id( "qunit-testresult" ).innerHTML = html;
+       }
+
+       if ( config.altertitle && typeof document !== "undefined" && document.title ) {
+               // show âœ– for good, âœ” for bad suite result in title
+               // use escape sequences in case file gets loaded with non-utf-8-charset
+               document.title = [
+                       ( config.stats.bad ? "\u2716" : "\u2714" ),
+                       document.title.replace( /^[\u2714\u2716] /i, "" )
+               ].join( " " );
+       }
+
+       // clear own sessionStorage items if all tests passed
+       if ( config.reorder && defined.sessionStorage && config.stats.bad === 0 ) {
+               // `key` & `i` initialized at top of scope
+               for ( i = 0; i < sessionStorage.length; i++ ) {
+                       key = sessionStorage.key( i++ );
+                       if ( key.indexOf( "qunit-test-" ) === 0 ) {
+                               sessionStorage.removeItem( key );
+                       }
+               }
+       }
+
+       runLoggingCallbacks( "done", QUnit, {
+               failed: config.stats.bad,
+               passed: passed,
+               total: config.stats.all,
+               runtime: runtime
+       });
+}
+
+/** @return Boolean: true if this test should be ran */
+function validTest( test ) {
+       var include,
+               filter = config.filter && config.filter.toLowerCase(),
+               module = config.module && config.module.toLowerCase(),
+               fullName = (test.module + ": " + test.testName).toLowerCase();
+
+       if ( config.testNumber ) {
+               return test.testNumber === config.testNumber;
+       }
+
+       if ( module && ( !test.module || test.module.toLowerCase() !== module ) ) {
+               return false;
+       }
+
+       if ( !filter ) {
+               return true;
+       }
+
+       include = filter.charAt( 0 ) !== "!";
+       if ( !include ) {
+               filter = filter.slice( 1 );
+       }
+
+       // If the filter matches, we need to honour include
+       if ( fullName.indexOf( filter ) !== -1 ) {
+               return include;
+       }
+
+       // Otherwise, do the opposite
+       return !include;
+}
+
+// so far supports only Firefox, Chrome and Opera (buggy), Safari (for real exceptions)
+// Later Safari and IE10 are supposed to support error.stack as well
+// See also https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/Stack
+function extractStacktrace( e, offset ) {
+       offset = offset === undefined ? 3 : offset;
+
+       var stack, include, i, regex;
+
+       if ( e.stacktrace ) {
+               // Opera
+               return e.stacktrace.split( "\n" )[ offset + 3 ];
+       } else if ( e.stack ) {
+               // Firefox, Chrome
+               stack = e.stack.split( "\n" );
+               if (/^error$/i.test( stack[0] ) ) {
+                       stack.shift();
+               }
+               if ( fileName ) {
+                       include = [];
+                       for ( i = offset; i < stack.length; i++ ) {
+                               if ( stack[ i ].indexOf( fileName ) != -1 ) {
+                                       break;
+                               }
+                               include.push( stack[ i ] );
+                       }
+                       if ( include.length ) {
+                               return include.join( "\n" );
+                       }
+               }
+               return stack[ offset ];
+       } else if ( e.sourceURL ) {
+               // Safari, PhantomJS
+               // hopefully one day Safari provides actual stacktraces
+               // exclude useless self-reference for generated Error objects
+               if ( /qunit.js$/.test( e.sourceURL ) ) {
+                       return;
+               }
+               // for actual exceptions, this is useful
+               return e.sourceURL + ":" + e.line;
+       }
+}
+function sourceFromStacktrace( offset ) {
+       try {
+               throw new Error();
+       } catch ( e ) {
+               return extractStacktrace( e, offset );
+       }
+}
+
+function escapeInnerText( s ) {
+       if ( !s ) {
+               return "";
+       }
+       s = s + "";
+       return s.replace( /[\&<>]/g, function( s ) {
+               switch( s ) {
+                       case "&": return "&amp;";
+                       case "<": return "&lt;";
+                       case ">": return "&gt;";
+                       default: return s;
+               }
+       });
+}
+
+function synchronize( callback, last ) {
+       config.queue.push( callback );
+
+       if ( config.autorun && !config.blocking ) {
+               process( last );
+       }
+}
+
+function process( last ) {
+       function next() {
+               process( last );
+       }
+       var start = new Date().getTime();
+       config.depth = config.depth ? config.depth + 1 : 1;
+
+       while ( config.queue.length && !config.blocking ) {
+               if ( !defined.setTimeout || config.updateRate <= 0 || ( ( new Date().getTime() - start ) < config.updateRate ) ) {
+                       config.queue.shift()();
+               } else {
+                       window.setTimeout( next, 13 );
+                       break;
+               }
+       }
+       config.depth--;
+       if ( last && !config.blocking && !config.queue.length && config.depth === 0 ) {
+               done();
+       }
+}
+
+function saveGlobal() {
+       config.pollution = [];
+
+       if ( config.noglobals ) {
+               for ( var key in window ) {
+                       // in Opera sometimes DOM element ids show up here, ignore them
+                       if ( !hasOwn.call( window, key ) || /^qunit-test-output/.test( key ) ) {
+                               continue;
+                       }
+                       config.pollution.push( key );
+               }
+       }
+}
+
+function checkPollution( name ) {
+       var newGlobals,
+               deletedGlobals,
+               old = config.pollution;
+
+       saveGlobal();
+
+       newGlobals = diff( config.pollution, old );
+       if ( newGlobals.length > 0 ) {
+               QUnit.pushFailure( "Introduced global variable(s): " + newGlobals.join(", ") );
+       }
+
+       deletedGlobals = diff( old, config.pollution );
+       if ( deletedGlobals.length > 0 ) {
+               QUnit.pushFailure( "Deleted global variable(s): " + deletedGlobals.join(", ") );
+       }
+}
+
+// returns a new Array with the elements that are in a but not in b
+function diff( a, b ) {
+       var i, j,
+               result = a.slice();
+
+       for ( i = 0; i < result.length; i++ ) {
+               for ( j = 0; j < b.length; j++ ) {
+                       if ( result[i] === b[j] ) {
+                               result.splice( i, 1 );
+                               i--;
+                               break;
+                       }
+               }
+       }
+       return result;
+}
+
+function extend( a, b ) {
+       for ( var prop in b ) {
+               if ( b[ prop ] === undefined ) {
+                       delete a[ prop ];
+
+               // Avoid "Member not found" error in IE8 caused by setting window.constructor
+               } else if ( prop !== "constructor" || a !== window ) {
+                       a[ prop ] = b[ prop ];
+               }
+       }
+
+       return a;
+}
+
+function addEvent( elem, type, fn ) {
+       if ( elem.addEventListener ) {
+               elem.addEventListener( type, fn, false );
+       } else if ( elem.attachEvent ) {
+               elem.attachEvent( "on" + type, fn );
+       } else {
+               fn();
+       }
+}
+
+function id( name ) {
+       return !!( typeof document !== "undefined" && document && document.getElementById ) &&
+               document.getElementById( name );
+}
+
+function registerLoggingCallback( key ) {
+       return function( callback ) {
+               config[key].push( callback );
+       };
+}
+
+// Supports deprecated method of completely overwriting logging callbacks
+function runLoggingCallbacks( key, scope, args ) {
+       //debugger;
+       var i, callbacks;
+       if ( QUnit.hasOwnProperty( key ) ) {
+               QUnit[ key ].call(scope, args );
+       } else {
+               callbacks = config[ key ];
+               for ( i = 0; i < callbacks.length; i++ ) {
+                       callbacks[ i ].call( scope, args );
+               }
+       }
+}
+
+// Test for equality any JavaScript type.
+// Author: Philippe Rathé <prathe@gmail.com>
+QUnit.equiv = (function() {
+
+       // Call the o related callback with the given arguments.
+       function bindCallbacks( o, callbacks, args ) {
+               var prop = QUnit.objectType( o );
+               if ( prop ) {
+                       if ( QUnit.objectType( callbacks[ prop ] ) === "function" ) {
+                               return callbacks[ prop ].apply( callbacks, args );
+                       } else {
+                               return callbacks[ prop ]; // or undefined
+                       }
+               }
+       }
+
+       // the real equiv function
+       var innerEquiv,
+               // stack to decide between skip/abort functions
+               callers = [],
+               // stack to avoiding loops from circular referencing
+               parents = [],
+
+               getProto = Object.getPrototypeOf || function ( obj ) {
+                       return obj.__proto__;
+               },
+               callbacks = (function () {
+
+                       // for string, boolean, number and null
+                       function useStrictEquality( b, a ) {
+                               if ( b instanceof a.constructor || a instanceof b.constructor ) {
+                                       // to catch short annotaion VS 'new' annotation of a
+                                       // declaration
+                                       // e.g. var i = 1;
+                                       // var j = new Number(1);
+                                       return a == b;
+                               } else {
+                                       return a === b;
+                               }
+                       }
+
+                       return {
+                               "string": useStrictEquality,
+                               "boolean": useStrictEquality,
+                               "number": useStrictEquality,
+                               "null": useStrictEquality,
+                               "undefined": useStrictEquality,
+
+                               "nan": function( b ) {
+                                       return isNaN( b );
+                               },
+
+                               "date": function( b, a ) {
+                                       return QUnit.objectType( b ) === "date" && a.valueOf() === b.valueOf();
+                               },
+
+                               "regexp": function( b, a ) {
+                                       return QUnit.objectType( b ) === "regexp" &&
+                                               // the regex itself
+                                               a.source === b.source &&
+                                               // and its modifers
+                                               a.global === b.global &&
+                                               // (gmi) ...
+                                               a.ignoreCase === b.ignoreCase &&
+                                               a.multiline === b.multiline;
+                               },
+
+                               // - skip when the property is a method of an instance (OOP)
+                               // - abort otherwise,
+                               // initial === would have catch identical references anyway
+                               "function": function() {
+                                       var caller = callers[callers.length - 1];
+                                       return caller !== Object && typeof caller !== "undefined";
+                               },
+
+                               "array": function( b, a ) {
+                                       var i, j, len, loop;
+
+                                       // b could be an object literal here
+                                       if ( QUnit.objectType( b ) !== "array" ) {
+                                               return false;
+                                       }
+
+                                       len = a.length;
+                                       if ( len !== b.length ) {
+                                               // safe and faster
+                                               return false;
+                                       }
+
+                                       // track reference to avoid circular references
+                                       parents.push( a );
+                                       for ( i = 0; i < len; i++ ) {
+                                               loop = false;
+                                               for ( j = 0; j < parents.length; j++ ) {
+                                                       if ( parents[j] === a[i] ) {
+                                                               loop = true;// dont rewalk array
+                                                       }
+                                               }
+                                               if ( !loop && !innerEquiv(a[i], b[i]) ) {
+                                                       parents.pop();
+                                                       return false;
+                                               }
+                                       }
+                                       parents.pop();
+                                       return true;
+                               },
+
+                               "object": function( b, a ) {
+                                       var i, j, loop,
+                                               // Default to true
+                                               eq = true,
+                                               aProperties = [],
+                                               bProperties = [];
+
+                                       // comparing constructors is more strict than using
+                                       // instanceof
+                                       if ( a.constructor !== b.constructor ) {
+                                               // Allow objects with no prototype to be equivalent to
+                                               // objects with Object as their constructor.
+                                               if ( !(( getProto(a) === null && getProto(b) === Object.prototype ) ||
+                                                       ( getProto(b) === null && getProto(a) === Object.prototype ) ) ) {
+                                                               return false;
+                                               }
+                                       }
+
+                                       // stack constructor before traversing properties
+                                       callers.push( a.constructor );
+                                       // track reference to avoid circular references
+                                       parents.push( a );
+
+                                       for ( i in a ) { // be strict: don't ensures hasOwnProperty
+                                                                       // and go deep
+                                               loop = false;
+                                               for ( j = 0; j < parents.length; j++ ) {
+                                                       if ( parents[j] === a[i] ) {
+                                                               // don't go down the same path twice
+                                                               loop = true;
+                                                       }
+                                               }
+                                               aProperties.push(i); // collect a's properties
+
+                                               if (!loop && !innerEquiv( a[i], b[i] ) ) {
+                                                       eq = false;
+                                                       break;
+                                               }
+                                       }
+
+                                       callers.pop(); // unstack, we are done
+                                       parents.pop();
+
+                                       for ( i in b ) {
+                                               bProperties.push( i ); // collect b's properties
+                                       }
+
+                                       // Ensures identical properties name
+                                       return eq && innerEquiv( aProperties.sort(), bProperties.sort() );
+                               }
+                       };
+               }());
+
+       innerEquiv = function() { // can take multiple arguments
+               var args = [].slice.apply( arguments );
+               if ( args.length < 2 ) {
+                       return true; // end transition
+               }
+
+               return (function( a, b ) {
+                       if ( a === b ) {
+                               return true; // catch the most you can
+                       } else if ( a === null || b === null || typeof a === "undefined" ||
+                                       typeof b === "undefined" ||
+                                       QUnit.objectType(a) !== QUnit.objectType(b) ) {
+                               return false; // don't lose time with error prone cases
+                       } else {
+                               return bindCallbacks(a, callbacks, [ b, a ]);
+                       }
+
+                       // apply transition with (1..n) arguments
+               }( args[0], args[1] ) && arguments.callee.apply( this, args.splice(1, args.length - 1 )) );
+       };
+
+       return innerEquiv;
+}());
+
+/**
+ * jsDump Copyright (c) 2008 Ariel Flesler - aflesler(at)gmail(dot)com |
+ * http://flesler.blogspot.com Licensed under BSD
+ * (http://www.opensource.org/licenses/bsd-license.php) Date: 5/15/2008
+ *
+ * @projectDescription Advanced and extensible data dumping for Javascript.
+ * @version 1.0.0
+ * @author Ariel Flesler
+ * @link {http://flesler.blogspot.com/2008/05/jsdump-pretty-dump-of-any-javascript.html}
+ */
+QUnit.jsDump = (function() {
+       function quote( str ) {
+               return '"' + str.toString().replace( /"/g, '\\"' ) + '"';
+       }
+       function literal( o ) {
+               return o + "";
+       }
+       function join( pre, arr, post ) {
+               var s = jsDump.separator(),
+                       base = jsDump.indent(),
+                       inner = jsDump.indent(1);
+               if ( arr.join ) {
+                       arr = arr.join( "," + s + inner );
+               }
+               if ( !arr ) {
+                       return pre + post;
+               }
+               return [ pre, inner + arr, base + post ].join(s);
+       }
+       function array( arr, stack ) {
+               var i = arr.length, ret = new Array(i);
+               this.up();
+               while ( i-- ) {
+                       ret[i] = this.parse( arr[i] , undefined , stack);
+               }
+               this.down();
+               return join( "[", ret, "]" );
+       }
+
+       var reName = /^function (\w+)/,
+               jsDump = {
+                       parse: function( obj, type, stack ) { //type is used mostly internally, you can fix a (custom)type in advance
+                               stack = stack || [ ];
+                               var inStack, res,
+                                       parser = this.parsers[ type || this.typeOf(obj) ];
+
+                               type = typeof parser;
+                               inStack = inArray( obj, stack );
+
+                               if ( inStack != -1 ) {
+                                       return "recursion(" + (inStack - stack.length) + ")";
+                               }
+                               //else
+                               if ( type == "function" )  {
+                                       stack.push( obj );
+                                       res = parser.call( this, obj, stack );
+                                       stack.pop();
+                                       return res;
+                               }
+                               // else
+                               return ( type == "string" ) ? parser : this.parsers.error;
+                       },
+                       typeOf: function( obj ) {
+                               var type;
+                               if ( obj === null ) {
+                                       type = "null";
+                               } else if ( typeof obj === "undefined" ) {
+                                       type = "undefined";
+                               } else if ( QUnit.is( "regexp", obj) ) {
+                                       type = "regexp";
+                               } else if ( QUnit.is( "date", obj) ) {
+                                       type = "date";
+                               } else if ( QUnit.is( "function", obj) ) {
+                                       type = "function";
+                               } else if ( typeof obj.setInterval !== undefined && typeof obj.document !== "undefined" && typeof obj.nodeType === "undefined" ) {
+                                       type = "window";
+                               } else if ( obj.nodeType === 9 ) {
+                                       type = "document";
+                               } else if ( obj.nodeType ) {
+                                       type = "node";
+                               } else if (
+                                       // native arrays
+                                       toString.call( obj ) === "[object Array]" ||
+                                       // NodeList objects
+                                       ( typeof obj.length === "number" && typeof obj.item !== "undefined" && ( obj.length ? obj.item(0) === obj[0] : ( obj.item( 0 ) === null && typeof obj[0] === "undefined" ) ) )
+                               ) {
+                                       type = "array";
+                               } else {
+                                       type = typeof obj;
+                               }
+                               return type;
+                       },
+                       separator: function() {
+                               return this.multiline ? this.HTML ? "<br />" : "\n" : this.HTML ? "&nbsp;" : " ";
+                       },
+                       indent: function( extra ) {// extra can be a number, shortcut for increasing-calling-decreasing
+                               if ( !this.multiline ) {
+                                       return "";
+                               }
+                               var chr = this.indentChar;
+                               if ( this.HTML ) {
+                                       chr = chr.replace( /\t/g, "   " ).replace( / /g, "&nbsp;" );
+                               }
+                               return new Array( this._depth_ + (extra||0) ).join(chr);
+                       },
+                       up: function( a ) {
+                               this._depth_ += a || 1;
+                       },
+                       down: function( a ) {
+                               this._depth_ -= a || 1;
+                       },
+                       setParser: function( name, parser ) {
+                               this.parsers[name] = parser;
+                       },
+                       // The next 3 are exposed so you can use them
+                       quote: quote,
+                       literal: literal,
+                       join: join,
+                       //
+                       _depth_: 1,
+                       // This is the list of parsers, to modify them, use jsDump.setParser
+                       parsers: {
+                               window: "[Window]",
+                               document: "[Document]",
+                               error: "[ERROR]", //when no parser is found, shouldn"t happen
+                               unknown: "[Unknown]",
+                               "null": "null",
+                               "undefined": "undefined",
+                               "function": function( fn ) {
+                                       var ret = "function",
+                                               name = "name" in fn ? fn.name : (reName.exec(fn) || [])[1];//functions never have name in IE
+
+                                       if ( name ) {
+                                               ret += " " + name;
+                                       }
+                                       ret += "( ";
+
+                                       ret = [ ret, QUnit.jsDump.parse( fn, "functionArgs" ), "){" ].join( "" );
+                                       return join( ret, QUnit.jsDump.parse(fn,"functionCode" ), "}" );
+                               },
+                               array: array,
+                               nodelist: array,
+                               "arguments": array,
+                               object: function( map, stack ) {
+                                       var ret = [ ], keys, key, val, i;
+                                       QUnit.jsDump.up();
+                                       if ( Object.keys ) {
+                                               keys = Object.keys( map );
+                                       } else {
+                                               keys = [];
+                                               for ( key in map ) {
+                                                       keys.push( key );
+                                               }
+                                       }
+                                       keys.sort();
+                                       for ( i = 0; i < keys.length; i++ ) {
+                                               key = keys[ i ];
+                                               val = map[ key ];
+                                               ret.push( QUnit.jsDump.parse( key, "key" ) + ": " + QUnit.jsDump.parse( val, undefined, stack ) );
+                                       }
+                                       QUnit.jsDump.down();
+                                       return join( "{", ret, "}" );
+                               },
+                               node: function( node ) {
+                                       var a, val,
+                                               open = QUnit.jsDump.HTML ? "&lt;" : "<",
+                                               close = QUnit.jsDump.HTML ? "&gt;" : ">",
+                                               tag = node.nodeName.toLowerCase(),
+                                               ret = open + tag;
+
+                                       for ( a in QUnit.jsDump.DOMAttrs ) {
+                                               val = node[ QUnit.jsDump.DOMAttrs[a] ];
+                                               if ( val ) {
+                                                       ret += " " + a + "=" + QUnit.jsDump.parse( val, "attribute" );
+                                               }
+                                       }
+                                       return ret + close + open + "/" + tag + close;
+                               },
+                               functionArgs: function( fn ) {//function calls it internally, it's the arguments part of the function
+                                       var args,
+                                               l = fn.length;
+
+                                       if ( !l ) {
+                                               return "";
+                                       }
+
+                                       args = new Array(l);
+                                       while ( l-- ) {
+                                               args[l] = String.fromCharCode(97+l);//97 is 'a'
+                                       }
+                                       return " " + args.join( ", " ) + " ";
+                               },
+                               key: quote, //object calls it internally, the key part of an item in a map
+                               functionCode: "[code]", //function calls it internally, it's the content of the function
+                               attribute: quote, //node calls it internally, it's an html attribute value
+                               string: quote,
+                               date: quote,
+                               regexp: literal, //regex
+                               number: literal,
+                               "boolean": literal
+                       },
+                       DOMAttrs: {
+                               //attributes to dump from nodes, name=>realName
+                               id: "id",
+                               name: "name",
+                               "class": "className"
+                       },
+                       HTML: false,//if true, entities are escaped ( <, >, \t, space and \n )
+                       indentChar: "  ",//indentation unit
+                       multiline: true //if true, items in a collection, are separated by a \n, else just a space.
+               };
+
+       return jsDump;
+}());
+
+// from Sizzle.js
+function getText( elems ) {
+       var i, elem,
+               ret = "";
+
+       for ( i = 0; elems[i]; i++ ) {
+               elem = elems[i];
+
+               // Get the text from text nodes and CDATA nodes
+               if ( elem.nodeType === 3 || elem.nodeType === 4 ) {
+                       ret += elem.nodeValue;
+
+               // Traverse everything else, except comment nodes
+               } else if ( elem.nodeType !== 8 ) {
+                       ret += getText( elem.childNodes );
+               }
+       }
+
+       return ret;
+}
+
+// from jquery.js
+function inArray( elem, array ) {
+       if ( array.indexOf ) {
+               return array.indexOf( elem );
+       }
+
+       for ( var i = 0, length = array.length; i < length; i++ ) {
+               if ( array[ i ] === elem ) {
+                       return i;
+               }
+       }
+
+       return -1;
+}
+
+/*
+ * Javascript Diff Algorithm
+ *  By John Resig (http://ejohn.org/)
+ *  Modified by Chu Alan "sprite"
+ *
+ * Released under the MIT license.
+ *
+ * More Info:
+ *  http://ejohn.org/projects/javascript-diff-algorithm/
+ *
+ * Usage: QUnit.diff(expected, actual)
+ *
+ * QUnit.diff( "the quick brown fox jumped over", "the quick fox jumps over" ) == "the  quick <del>brown </del> fox <del>jumped </del><ins>jumps </ins> over"
+ */
+QUnit.diff = (function() {
+       function diff( o, n ) {
+               var i,
+                       ns = {},
+                       os = {};
+
+               for ( i = 0; i < n.length; i++ ) {
+                       if ( ns[ n[i] ] == null ) {
+                               ns[ n[i] ] = {
+                                       rows: [],
+                                       o: null
+                               };
+                       }
+                       ns[ n[i] ].rows.push( i );
+               }
+
+               for ( i = 0; i < o.length; i++ ) {
+                       if ( os[ o[i] ] == null ) {
+                               os[ o[i] ] = {
+                                       rows: [],
+                                       n: null
+                               };
+                       }
+                       os[ o[i] ].rows.push( i );
+               }
+
+               for ( i in ns ) {
+                       if ( !hasOwn.call( ns, i ) ) {
+                               continue;
+                       }
+                       if ( ns[i].rows.length == 1 && typeof os[i] != "undefined" && os[i].rows.length == 1 ) {
+                               n[ ns[i].rows[0] ] = {
+                                       text: n[ ns[i].rows[0] ],
+                                       row: os[i].rows[0]
+                               };
+                               o[ os[i].rows[0] ] = {
+                                       text: o[ os[i].rows[0] ],
+                                       row: ns[i].rows[0]
+                               };
+                       }
+               }
+
+               for ( i = 0; i < n.length - 1; i++ ) {
+                       if ( n[i].text != null && n[ i + 1 ].text == null && n[i].row + 1 < o.length && o[ n[i].row + 1 ].text == null &&
+                                               n[ i + 1 ] == o[ n[i].row + 1 ] ) {
+
+                               n[ i + 1 ] = {
+                                       text: n[ i + 1 ],
+                                       row: n[i].row + 1
+                               };
+                               o[ n[i].row + 1 ] = {
+                                       text: o[ n[i].row + 1 ],
+                                       row: i + 1
+                               };
+                       }
+               }
+
+               for ( i = n.length - 1; i > 0; i-- ) {
+                       if ( n[i].text != null && n[ i - 1 ].text == null && n[i].row > 0 && o[ n[i].row - 1 ].text == null &&
+                                               n[ i - 1 ] == o[ n[i].row - 1 ]) {
+
+                               n[ i - 1 ] = {
+                                       text: n[ i - 1 ],
+                                       row: n[i].row - 1
+                               };
+                               o[ n[i].row - 1 ] = {
+                                       text: o[ n[i].row - 1 ],
+                                       row: i - 1
+                               };
+                       }
+               }
+
+               return {
+                       o: o,
+                       n: n
+               };
+       }
+
+       return function( o, n ) {
+               o = o.replace( /\s+$/, "" );
+               n = n.replace( /\s+$/, "" );
+
+               var i, pre,
+                       str = "",
+                       out = diff( o === "" ? [] : o.split(/\s+/), n === "" ? [] : n.split(/\s+/) ),
+                       oSpace = o.match(/\s+/g),
+                       nSpace = n.match(/\s+/g);
+
+               if ( oSpace == null ) {
+                       oSpace = [ " " ];
+               }
+               else {
+                       oSpace.push( " " );
+               }
+
+               if ( nSpace == null ) {
+                       nSpace = [ " " ];
+               }
+               else {
+                       nSpace.push( " " );
+               }
+
+               if ( out.n.length === 0 ) {
+                       for ( i = 0; i < out.o.length; i++ ) {
+                               str += "<del>" + out.o[i] + oSpace[i] + "</del>";
+                       }
+               }
+               else {
+                       if ( out.n[0].text == null ) {
+                               for ( n = 0; n < out.o.length && out.o[n].text == null; n++ ) {
+                                       str += "<del>" + out.o[n] + oSpace[n] + "</del>";
+                               }
+                       }
+
+                       for ( i = 0; i < out.n.length; i++ ) {
+                               if (out.n[i].text == null) {
+                                       str += "<ins>" + out.n[i] + nSpace[i] + "</ins>";
+                               }
+                               else {
+                                       // `pre` initialized at top of scope
+                                       pre = "";
+
+                                       for ( n = out.n[i].row + 1; n < out.o.length && out.o[n].text == null; n++ ) {
+                                               pre += "<del>" + out.o[n] + oSpace[n] + "</del>";
+                                       }
+                                       str += " " + out.n[i].text + nSpace[i] + pre;
+                               }
+                       }
+               }
+
+               return str;
+       };
+}());
+
+// for CommonJS enviroments, export everything
+if ( typeof exports !== "undefined" ) {
+       extend(exports, QUnit);
+}
+
+// get at whatever the global object is, like window in browsers
+}( (function() {return this;}.call()) ));
diff --git a/js/modernizr/test/qunit/run-qunit.js b/js/modernizr/test/qunit/run-qunit.js
new file mode 100644 (file)
index 0000000..5617ee4
--- /dev/null
@@ -0,0 +1,72 @@
+/**
+* Wait until the test condition is true or a timeout occurs. Useful for waiting
+* on a server response or for a ui change (fadeIn, etc.) to occur.
+*
+* @param testFx javascript condition that evaluates to a boolean,
+* it can be passed in as a string (e.g.: "1 == 1" or "$('#bar').is(':visible')" or
+* as a callback function.
+* @param onReady what to do when testFx condition is fulfilled,
+* it can be passed in as a string (e.g.: "1 == 1" or "$('#bar').is(':visible')" or
+* as a callback function.
+* @param timeOutMillis the max amount of time to wait. If not specified, 3 sec is used.
+*/
+function waitFor(testFx, onReady, timeOutMillis) {
+    var maxtimeOutMillis = timeOutMillis ? timeOutMillis : 3001, //< Default Max Timout is 3s
+        start = new Date().getTime(),
+        condition = false,
+        interval = setInterval(function() {
+            if ( (new Date().getTime() - start < maxtimeOutMillis) && !condition ) {
+                // If not time-out yet and condition not yet fulfilled
+                condition = (typeof(testFx) === "string" ? eval(testFx) : testFx()); //< defensive code
+            } else {
+                if(!condition) {
+                    // If condition still not fulfilled (timeout but condition is 'false')
+                    console.log("'waitFor()' timeout");
+                    phantom.exit(1);
+                } else {
+                    // Condition fulfilled (timeout and/or condition is 'true')
+                    typeof(onReady) === "string" ? eval(onReady) : onReady(); //< Do what it's supposed to do once the condition is fulfilled
+                    clearInterval(interval); //< Stop this interval
+                }
+            }
+        }, 100); //< repeat check every 250ms
+};
+
+
+if (phantom.args.length === 0 || phantom.args.length > 2) {
+    console.log('Usage: run-qunit.js URL');
+    phantom.exit();
+}
+
+var page = new WebPage();
+
+// Route "console.log()" calls from within the Page context to the main Phantom context (i.e. current "this")
+page.onConsoleMessage = function(msg) {
+    console.log(msg);
+};
+
+page.open(phantom.args[0], function(status){
+    if (status !== "success") {
+        console.log("Unable to access network");
+        phantom.exit();
+    } else {
+        waitFor(function(){
+            return page.evaluate(function(){
+                var el = document.getElementById('qunit-testresult');
+                if (el && el.innerText.match('completed')) {
+                    return true;
+                }
+                return false;
+            });
+        }, function(){
+            var failedNum = page.evaluate(function(){
+                var el = document.getElementById('qunit-testresult');
+                try {
+                    return el.getElementsByClassName('failed')[0].innerHTML;
+                } catch (e) { }
+                return 10000;
+            });
+            phantom.exit((parseInt(failedNum, 10) > 0) ? 1 : 0);
+        });
+    }
+});
\ No newline at end of file
diff --git a/parts/city-map.php b/parts/city-map.php
new file mode 100644 (file)
index 0000000..065d6c5
--- /dev/null
@@ -0,0 +1,2103 @@
+<!-- Generator: Adobe Illustrator 21.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+        viewBox="0 0 645 400" enable-background="new 0 0 645 400" xml:space="preserve">
+<g id="water">
+       <rect fill="#BCD5E9" width="645" height="400"/>
+</g>
+<g id="Land">
+       <g>
+               <path fill="#CCE7D3" d="M643.387,400.005l-25.732-21.212c-7.998-13.214-35.121-23.646-35.121-23.646
+                       c-5.911,0.348-23.993-6.955-23.993-6.955c-18.893-23.53-38.25-23.646-38.25-23.646c-11.475,0.348-11.127-10.432-11.127-10.432
+                       c-9.389-14.025-29.905-1.043-29.905-1.043c-14.952,3.825-20.864-2.086-20.864-2.086c-5.911-11.127-27.471,1.739-27.471,1.739
+                       c-17.039-3.13-28.166,10.084-28.166,10.084c-15.3,30.253-14.952,21.559-14.952,21.559c3.155-20.745,19.821-31.644,19.821-31.644
+                       s51.464-39.294,14.605-27.123c-36.86,12.171-65.026,51.464-65.026,51.464s-5.42,5.852-2.29,0.636
+                       c3.13-5.216-1.272-5.174-1.272-5.174s-19.549,15.056-7.803,12.298c7.982-1.875,1.018,3.053,1.018,3.053
+                       c-12.552,8.651-19.558,26.741-19.558,26.741c-4.173,17.734-11.475,13.214-11.475,13.214c-6.955-6.607,3.13-14.257,3.13-14.257
+                       c6.912-3.05,3.483-9.902-0.557-15.068c-0.007-0.628-0.022-1.255-0.022-1.878c0-1.274,0.198-1.96,0.673-3.115
+                       c0.827-2.011,0.931-4.309,0.273-6.393c-0.523-1.659-0.951-3.743-0.423-5.476c0.494-1.624,1.717-2.991,2.083-4.652
+                       c0.254-1.153,0.225-2.447,0.554-3.553c0.336-1.129,1.41-1.95,2.037-2.909c0.763-1.169,1.054-2.498,1.765-3.705
+                       c1.502-2.547,2.732-4.78,3.789-7.422c0.115-0.286,0.221-0.569,0.325-0.852c1.753-3.432,2.246-9.504,1.347-12.615l0.001-0.024
+                       l0.065-1.042v-4.938l0.506-2.402l-0.126-2.787l0.633-2.276l1.139-1.9l1.771-2.277l0.381-3.291l-1.14-3.418l-2.531-2.656
+                       l-2.026-1.647l-2.278-3.036l-1.772-1.9l-1.9-1.644h-1.138l-1.392-0.128l-0.633-0.379l-0.759,0.253l-0.508,0.76l-1.391-0.381
+                       l-1.735-1.334l2.368-0.311l0.662-0.423l0.689-0.597l0.458-1.285l-0.55-1.102l-1.193-1.1l-1.699-1.332l-0.184-1.514l-1.146-0.415
+                       l-1.009-0.366l-0.918-1.148l-1.01-0.965l-0.46-0.549l-0.596,0.274l-0.687,0.918l-0.781,0.552l-0.917,0.642l0.229,0.414
+                       l0.919,0.412l0.826,0.873l0.184,1.239l-1.286,2.112l-0.962,1.605l-1.653,0.185l-1.331-0.459c0,0-0.918-0.552-1.056-0.688
+                       c-0.137-0.139-0.137-1.975-0.137-1.975l0.55-1.377l0.827-1.79l0.78-2.615l0.505-6.658l0.275-3.857l-0.414-3.35v-3.213
+                       l0.827-15.064l-0.369-0.367c0,0-0.733-0.275-0.78-0.458c-0.045-0.184-0.366-0.826-0.091-1.009c0.275-0.184,1.376-0.46,1.376-0.46
+                       l0.047-0.461l-1.194-0.319l-2.523-1.103l-2.434-0.779c0,0-2.016-1.378-2.2-1.515c-0.183-0.139-1.744-1.286-1.744-1.286
+                       l-2.157-1.148l-3.534-0.826l-2.065-0.413l-2.386-0.275l-2.938,0.139l-3.212,0.091l-6.133-0.081l-2.533-1.036l-1.841-1.036
+                       l-1.094-1.036l-1.036-1.381l-1.036-2.532l-0.921-2.187l-0.575-1.383l-0.345-1.381l-0.058-1.9l-0.23-1.439l-0.749-1.727
+                       l-1.726-1.899l-0.345-1.496l-0.23-1.381l0.23-2.36l0.287-1.727l1.209-0.805l1.612-1.381l1.093-1.093l0.287-1.67l0.461-2.13
+                       l0.806-1.209l1.036-1.323l0.633-1.095l0.172-1.669l-0.057-4.662l-0.23-3.166l-0.691-2.878l-1.036-1.958l-0.805-0.921l-0.691-0.575
+                       l-0.461-0.286l-0.922,0.172l-0.747,0.518l-1.957,0.287l-1.842,0.23l-1.381,0.345l-1.209,0.576l-1.67,1.439l-2.533,1.324
+                       l-1.381,0.69l-3.078,2.706l-3.694,3.167l-3.958,2.639l-1.847,1.584l-1.847,1.583l-2.375,2.375l-1.847,1.055l-1.584,1.32
+                       l-2.903,3.695l-1.847,2.638l-2.374,2.904l-2.904,2.902l-0.666,0.593c-0.423,0.094-0.983,0.3-1.732,0.659
+                       c-2.703,1.294-4.803,3.968-7.176,5.757c-3.89,2.932-8.563,3.474-12.479,6.405c-3.998,2.991-5.298,7.569-7.434,11.824
+                       c-2.399,4.777-6.569,5.051-11.065,6.486c-8.407,2.685-9.613,8.824-12.059,16.295c-1.369,4.18-5.032,6.802-5.483,11.393
+                       c-0.273,2.779-0.03,3.764-1.613,6.094c-1.046,1.541-2.633,3.033-3.788,4.372l-11.608,3.397
+                       c-9.041-4.868-14.605,1.391-14.605,1.391c-7.302,6.607-18.082,3.13-18.082,3.13l-13.214,3.13l-6.955,4.173
+                       c0,0-0.683-0.402-10.084,16.343c-11.127,19.821-84.151,44.162-84.151,44.162l0.348,56.68"/>
+               <path fill="#496B71" d="M641.815,400.004l-24.922-20.551l-0.088-0.145c-7.388-12.206-32.024-22.202-34.439-23.159
+                       c-6.252,0.145-23.459-6.737-24.198-7.035l-0.24-0.097l-0.162-0.202c-14.673-18.273-30.935-23.214-37.484-23.274
+                       c-3.753,0.119-6.757-0.907-8.884-3.039c-2.885-2.89-3.201-6.889-3.228-8.078c-8.818-12.659-28.186-0.636-28.382-0.512
+                       l-0.284,0.123c-15.324,3.921-21.555-2.088-21.813-2.346l-0.175-0.236c-0.982-1.849-2.466-3.029-4.536-3.607
+                       c-8.039-2.243-21.415,5.653-21.549,5.732l-0.321,0.192l-0.368-0.068c-15.594-2.866-26.196,8.583-27.156,9.666
+                       c-12.142,23.991-14.346,23.413-15.529,23.103c-0.974-0.253-1.281-1.312-1.247-2.143l0.011-0.11
+                       c3.185-20.943,19.563-31.871,20.259-32.325c14.27-10.9,28.841-24.407,27.393-27.15c-0.099-0.186-1.269-1.72-11.934,1.802
+                       c-36.134,11.931-64.25,50.709-64.53,51.1l-0.078,0.096c-3.216,3.473-3.863,3.414-4.546,2.901
+                       c-0.962-0.722-0.167-2.048,0.675-3.451c1.225-2.042,1.015-2.86,0.868-3.117c-0.188-0.329-0.661-0.47-0.985-0.524
+                       c-5.744,4.459-10.541,9.147-10.853,10.588c0.257,0.051,0.937,0.093,2.52-0.279c2.559-0.601,4.376-0.749,4.931,0.483
+                       c0.181,0.403,0.733,1.628-3.112,4.349c-11.812,8.141-18.722,25.079-19.181,26.229c-1.848,7.813-4.566,12.512-8.078,13.967
+                       c-2.687,1.113-4.781-0.152-4.87-0.207l-0.161-0.125c-1.949-1.852-2.872-3.964-2.744-6.278c0.285-5.131,5.726-9.315,5.958-9.491
+                       l0.199-0.117c1.816-0.801,2.872-1.882,3.229-3.302c0.611-2.435-0.83-5.978-4.168-10.245l-0.207-0.265l-0.013-1.001
+                       c-0.007-0.41-0.013-0.819-0.013-1.225c0-1.433,0.231-2.236,0.749-3.493c0.736-1.791,0.826-3.874,0.244-5.715
+                       c-0.778-2.467-0.918-4.451-0.426-6.065c0.258-0.847,0.672-1.598,1.072-2.325c0.424-0.769,0.825-1.496,0.991-2.251
+                       c0.1-0.455,0.153-0.948,0.208-1.471c0.076-0.711,0.154-1.447,0.364-2.153c0.276-0.927,0.895-1.641,1.441-2.272
+                       c0.271-0.312,0.527-0.608,0.717-0.897c0.354-0.543,0.602-1.152,0.865-1.796c0.249-0.612,0.507-1.245,0.876-1.871
+                       c1.552-2.633,2.716-4.77,3.722-7.286c0.111-0.276,0.211-0.544,0.311-0.813l0.052-0.122c1.695-3.319,2.078-9.116,1.277-11.887
+                       l-0.045-0.155l0.074-1.249l-0.002-4.979l0.501-2.38l-0.128-2.818l0.78-2.674l1.207-1.999l1.601-2.058l0.323-2.796l-0.999-2.997
+                       l-2.335-2.451l-2.145-1.781l-2.246-2.994l-1.699-1.822l-1.58-1.367h-0.768l-1.709-0.153l-0.435-0.261l-0.003,0.001l-0.716,1.072
+                       l-2.271-0.621l-3.789-2.913l4.523-0.595l0.415-0.265l0.437-0.378l0.228-0.641l-0.28-0.56l-1.059-0.977l-1.962-1.533l-0.159-1.316
+                       l-1.845-0.669l-1.051-1.314l-0.888-0.849l-0.558,0.665l-0.539,0.381l0.001,0l1.176,1.243l0.283,1.905l-2.685,4.441l-2.365,0.264
+                       l-1.731-0.62c-1.017-0.612-1.172-0.764-1.238-0.828c-0.258-0.262-0.436-0.442-0.436-2.685v-0.191l0.621-1.554l0.818-1.773
+                       l0.729-2.446l0.765-10.307l-0.409-3.376v-3.212l0.801-14.623c-0.819-0.361-1.015-0.717-1.092-1.022
+                       c-0.136-0.371-0.461-1.259,0.067-1.86l-1.84-0.804l-2.644-0.889c0,0-2.047-1.4-2.234-1.539c-0.166-0.126-1.397-1.031-1.68-1.239
+                       l-1.979-1.053l-3.408-0.797l-2.034-0.406l-2.223-0.253l-2.858,0.135l-3.232,0.092l-6.363-0.083l-2.818-1.162l-2.037-1.18
+                       l-1.206-1.162l-1.161-1.601l-2.577-6.237l-0.374-1.592l-0.056-1.836l-0.2-1.252l-0.634-1.461l-1.79-1.969l-0.403-1.75
+                       l-0.263-1.571l0.243-2.49l0.367-2.219l1.517-1.01l1.567-1.342l0.814-0.817l0.234-1.36l0.509-2.355l0.911-1.366l1.037-1.328
+                       l0.492-0.852l0.144-1.4l-0.056-4.605l-0.222-3.024l-0.643-2.678l-0.923-1.744l-0.677-0.775l-0.652-0.528l-0.334,0.062l-0.764,0.53
+                       l-3.991,0.547l-1.227,0.307l-0.998,0.476l-1.757,1.479l-3.815,1.965l-2.981,2.62l-3.799,3.247l-3.908,2.606l-3.649,3.127
+                       l-2.528,2.483l-1.771,1.011l-1.436,1.197l-2.838,3.613l-1.815,2.594l-2.419,2.963l-2.971,2.976l-0.9,0.804l-0.253,0.056
+                       c-0.368,0.081-0.878,0.278-1.517,0.585c-1.569,0.75-2.991,2.075-4.366,3.357c-0.848,0.789-1.724,1.605-2.641,2.298
+                       c-2.054,1.549-4.299,2.458-6.471,3.337c-2.14,0.867-4.161,1.685-6.012,3.07c-2.899,2.17-4.297,5.272-5.778,8.558
+                       c-0.431,0.957-0.877,1.946-1.364,2.916c-2.173,4.328-5.657,5.293-9.345,6.315c-0.753,0.209-1.524,0.422-2.306,0.672
+                       c-7.164,2.288-8.681,7.063-10.78,13.673c-0.206,0.65-0.417,1.312-0.637,1.985c-0.622,1.902-1.667,3.471-2.677,4.989
+                       c-1.299,1.952-2.526,3.795-2.761,6.192c-0.049,0.496-0.081,0.935-0.11,1.333c-0.136,1.864-0.226,3.096-1.67,5.222
+                       c-0.744,1.096-1.705,2.124-2.634,3.119c-0.431,0.462-0.851,0.91-1.224,1.343l-0.192,0.222l-12.281,3.594l-0.359-0.193
+                       c-8.255-4.444-13.341,1.12-13.391,1.177l-0.076,0.077c-7.069,6.396-16.97,3.943-18.78,3.421l-12.804,3.033l-6.861,4.116
+                       c-0.341,0.352-2.2,2.613-9.69,15.955c-10.736,19.122-76.114,41.714-84.02,44.388l0.343,55.962l-1.987,0.012v-57.401l0.332-0.228
+                       c0.727-0.242,72.785-24.445,83.599-43.706c8.461-15.071,9.986-16.535,10.544-16.772l7.131-4.224l13.483-3.193l0.264,0.085
+                       c0.102,0.033,10.305,3.204,17.084-2.896c0.591-0.617,6.444-6.332,15.404-1.745l10.945-3.203c0.338-0.382,0.705-0.775,1.081-1.178
+                       c0.878-0.939,1.784-1.911,2.442-2.879c1.145-1.685,1.204-2.489,1.332-4.25c0.03-0.414,0.063-0.868,0.114-1.383
+                       c0.284-2.89,1.707-5.03,3.085-7.098c0.979-1.472,1.904-2.862,2.443-4.506c0.219-0.667,0.427-1.324,0.632-1.968
+                       c2.108-6.635,3.927-12.364,12.07-14.964c0.806-0.258,1.602-0.478,2.379-0.694c3.532-0.979,6.322-1.752,8.1-5.292
+                       c0.471-0.938,0.9-1.891,1.328-2.84c1.519-3.371,3.089-6.856,6.399-9.333c2.056-1.539,4.293-2.444,6.456-3.32
+                       c2.147-0.87,4.175-1.691,6.02-3.082c0.835-0.63,1.636-1.376,2.483-2.166c1.485-1.383,3.02-2.813,4.861-3.694
+                       c0.658-0.316,1.212-0.536,1.682-0.667l0.484-0.431l2.863-2.863l2.307-2.83l1.803-2.579l3.08-3.889l1.727-1.42l1.731-0.989
+                       l2.281-2.281l3.846-3.29l3.908-2.606l3.649-3.127l3.281-2.84l1.381-0.69l2.415-1.263l1.804-1.508l1.395-0.643l1.499-0.367
+                       l3.547-0.481l0.731-0.507l1.51-0.281l0.899,0.57l0.803,0.685l0.935,1.111l1.124,2.19l0.716,3.038l0.23,3.165l0.061,4.779
+                       l-0.2,1.937l-0.817,1.395l-1.036,1.322l-0.657,0.989l-0.421,1.946l-0.333,1.94l-1.317,1.316l-1.764,1.505l-0.85,0.566
+                       l-0.217,1.302l-0.208,2.163l0.208,1.252l0.274,1.183l1.663,1.829l0.884,2.117l0.242,1.565l0.054,1.793l0.301,1.206l2.457,5.92
+                       l0.909,1.213l0.944,0.893l1.68,0.946l2.301,0.942l5.945,0.078l3.172-0.091l2.999-0.142l2.466,0.284l2.146,0.426l3.806,0.923
+                       l2.279,1.224c0,0,1.572,1.155,1.756,1.295c0.161,0.12,1.61,1.111,2.041,1.405l2.391,0.77l2.455,1.073l1.939,0.518l-0.205,1.996
+                       l-0.676,0.17c-0.094,0.024-0.19,0.049-0.285,0.075l0.087,0.033l0.836,0.831l-0.852,15.508l0.001,3.097l0.418,3.385l-0.826,10.825
+                       l-0.83,2.748l-0.827,1.79l-0.458,1.149c0.004,0.459,0.021,0.923,0.042,1.21c0.154,0.097,0.375,0.235,0.58,0.36l1.019,0.351
+                       l0.942-0.105l1.812-2.995l-0.085-0.574l-0.475-0.502l-1.041-0.466l-0.823-1.487l2.299-1.612l0.745-0.995l1.514-0.696l0.912,1.088
+                       l1.06,1.025l0.744,0.93l2.467,0.893l0.208,1.712l1.374,1.078l1.388,1.275l0.821,1.643l-0.688,1.93l-0.652,0.566l0.596-0.199
+                       l0.83,0.497l1.167,0.108l1.417-0.004l2.256,1.96l1.84,1.981l2.205,2.939l2.024,1.655l2.684,2.817l1.28,3.837l-0.438,3.787
+                       l-1.905,2.45l-1.039,1.733l-0.554,1.994l0.125,2.754l-0.51,2.425v4.835l-0.059,0.959c0.855,3.223,0.435,9.406-1.436,13.12
+                       c-0.105,0.283-0.206,0.552-0.316,0.826c-1.052,2.63-2.255,4.84-3.854,7.554c-0.295,0.501-0.515,1.04-0.748,1.611
+                       c-0.286,0.703-0.582,1.429-1.041,2.133c-0.263,0.403-0.576,0.763-0.879,1.112c-0.455,0.524-0.884,1.02-1.038,1.537
+                       c-0.158,0.531-0.223,1.145-0.292,1.796c-0.059,0.553-0.12,1.125-0.244,1.687c-0.228,1.036-0.718,1.924-1.191,2.784
+                       c-0.367,0.666-0.714,1.295-0.911,1.943c-0.366,1.201-0.224,2.845,0.42,4.888c0.729,2.311,0.622,4.821-0.302,7.069
+                       c-0.449,1.092-0.598,1.641-0.598,2.738c0,0.396,0.006,0.795,0.012,1.194l0.005,0.338c3.631,4.718,5.086,8.649,4.323,11.687
+                       c-0.5,1.993-1.925,3.535-4.237,4.584c-0.651,0.521-4.879,4.053-5.092,7.958c-0.093,1.693,0.575,3.211,2.039,4.636
+                       c0.301,0.15,1.507,0.656,3.037,0.003c1.979-0.846,4.779-3.724,6.876-12.638l0.041-0.131c0.29-0.75,7.261-18.477,19.921-27.201
+                       c0.74-0.524,1.49-1.168,1.952-1.652c-0.441,0.036-1.128,0.138-2.179,0.385c-1.869,0.439-4.104,0.752-4.809-0.728
+                       c-1.222-2.573,5.731-8.666,11.779-13.324l0.264-0.203l0.333-0.003c0.21-0.02,2.147,0.023,3.022,1.551
+                       c0.436,0.762,0.491,1.707,0.166,2.826c3.681-4.922,30.796-39.928,65.098-51.254c8.691-2.87,13.106-3.13,14.314-0.843
+                       c2.902,5.501-20.701,24.122-28.004,29.698c-0.221,0.148-16.257,10.87-19.402,30.749c1.133-0.937,4.464-4.937,13.045-21.903
+                       l0.127-0.192c0.114-0.135,11.535-13.431,28.74-10.486c2.204-1.266,14.559-8.042,22.778-5.751c2.527,0.705,4.434,2.196,5.671,4.431
+                       c0.775,0.657,6.614,5.082,19.682,1.783c1.876-1.131,21.729-12.613,31.12,1.417l0.178,0.265l-0.01,0.319
+                       c-0.001,0.04-0.084,4.224,2.661,6.963c1.723,1.719,4.223,2.541,7.443,2.444c0.843,0.004,19.973,0.387,38.891,23.813
+                       c2.144,0.853,18.071,7.09,23.324,6.789l0.214-0.013l0.201,0.077c1.116,0.429,27.34,10.633,35.525,23.913l26.493,21.87H641.815z"/>
+       </g>
+       <path fill="#CCE7D3" d="M342.431,289.381l1.826-1.143l2.398-1.825l1.599-2.17l0.913-1.941l1.256-2.17l1.598-2.168l1.598-2.626
+               l0.8-0.914l0.913-0.228l1.598-1.485l1.37-2.283l0.8-0.914l0.571-1.484l0.114-1.94l0.227-2.169l1.257-2.969l1.712-4.453l0.685-2.169
+               l0.913-1.942l-0.228-3.311v-3.311l0.228-2.511l1.37-2.284l2.17-1.712l2.168-1.599l1.941-0.799l2.283-0.912l2.169-1.257l1.827-1.255
+               l1.484-0.686l2.056-1.598l1.712-2.055l2.625-6.051l0.686-2.398l-0.343-2.855l0.457-3.311l1.255-2.625l2.398-2.626l1.598-0.799
+               l2.97-0.46h1.597l1.257,0.8l1.372,1.37l1.025,1.37l0.572,0.458l0.912-0.571l0.799-1.029l1.6-1.026l1.483-1.143
+               c0,0,0.685-0.798,0.914-1.141c0.229-0.343,0.57-2.282,0.57-2.282l0.228-1.486l-0.911-0.57l-0.571,0.227l-0.458,0.914l-1.255,0.114
+               l-0.685-0.801l-0.686-2.739l0.228-6.281l1.259-5.022l1.824-3.654l2.17-3.311l2.742-3.197l2.398-2.513l1.826-1.484l1.597-0.456
+               l0.916,0.684l0.913,0.456l2.057,0.342l1.37-0.457l2.283-1.371l1.484-0.569l1.029-0.115l1.026-0.572l1.713-1.712l1.94-0.686
+               l1.028-0.683l1.256-2.398l1.599-2.283l1.597-0.799l1.942-1.143l1.939-1.939l1.6-3.541l1.599-2.742l1.029-2.055l1.598-1.37
+               l1.827-0.685l2.056-0.456h1.827l0.798-1.257l1.715-2.511l1.37-1.712l1.254-1.485l1.259-1.027l1.026-2.055l1.712-2.397l2.286-2.057
+               l1.597-1.597c0,0,0.685-0.801,0.913-1.143c0.23-0.342,0.8-2.056,0.8-2.056l2.17-0.684l3.424-0.457l2.515-0.685l3.769-1.599
+               l3.081-1.598l2.398-2.513l1.94-1.599l1.487-1.027l1.367-1.483l1.829-0.913l1.825-0.57l2.055-1.942c0,0,1.829-2.169,2.17-2.283
+               c0.342-0.114,1.941-0.685,1.941-0.685l2.398-0.342l1.6,0.114l1.823-0.913l2.286-2.742l0.913-2.739l-0.913-2.056l-1.6-1.827
+               l-3.994-2.624l-2.286-2.171l-1.369-2.626l0.684-2.967l0.457-1.6l0.344-1.598c0,0,0.57-1.369,0.684-1.713
+               c0.114-0.342,0.684-1.483,0.684-1.483l2.169-0.914l3.427-0.57l3.995-0.913l3.316-0.229l2.852-1.027l2.056-0.342l1.484,0.571
+               l1.027,0.457l1.142-0.344l1.599-0.913l2.054-1.141h2.398l1.711,0.113l1.6,1.028l2.055,0.457l2.74-0.228h1.6l1.824,0.684l0.23,0.8
+               l1.143,0.342h1.254l1.598,0.342l1.598,1.029c0,0,0.572,0.799,0.914,0.913c0.343,0.114,1.827,0.685,1.827,0.685h1.827l1.598-1.141
+               c0,0,1.257-1.486,1.6-1.599c0.342-0.114,2.169-1.142,2.169-1.142l1.942-0.685l1.943-0.458l1.484,0.571l1.143,0.57l1.713,0.115
+               l1.483-0.571l1.255-1.713l1.257-2.169l1.256-1.37l1.598-0.684l1.371-0.228h1.713l0.684-0.229l1.256-0.227l2.169,0.798l2.168,0.686
+               l1.598,0.913h4.797l0.8-0.571l0.341-1.485l-0.228-1.94l-0.8-1.712l-1.824-1.599l-0.686-2.397l0.342-3.311l0.455-1.827l-0.571-3.653
+               l-0.226-3.311l-1.484-1.712l-8.45-5.596l-1.141-0.686l-1.37-0.114l-1.828-1.37l-0.684-0.913l-1.486-0.114l-1.482-0.571
+               l-2.968-1.941l-1.828-0.114l-1.484-1.028l-1.254-1.029l-1.485-0.57h-1.94l-2.513-0.343h-1.142l-1.142,0.228l-1.94-0.113
+               l-1.37-0.342h-2.856l-2.397-0.228l-2.511-0.229l-2.398-0.684l-2.397-0.228l-2.285,1.026l-1.369,0.686l6.051,0.685l0.799,0.684
+               l-0.113,0.8l-1.029,0.456l-1.37-0.913l-1.141-0.571l-0.686,0.228l-0.341,0.685l-1.143-0.457l-1.371-0.457l-5.25,0.685l-2.056-0.799
+               l-2.969,0.228l-1.369-0.57l0.57-0.457l-0.57-2.284l-3.539-0.341l-3.541,0.57l-2.17-0.457l-3.195-1.256c0,0-4.452,1.37-5.023,1.37
+               c-0.571,0-2.169-0.457-2.169-0.457l-4.457-0.456l-1.143,0.456l-4.681,0.914l-4.452-0.457l-2.627,0.457l-3.768,0.798l-5.708-0.114
+               l-2.055,1.37l5.478,0.572l-6.393,0.685l6.051,0.571l-8.219,0.685l-5.596,0.114l-3.196,0.228l-4.682,0.456l-0.911,0.572
+               l-5.253-0.228l0.344,1.369c0,0-0.344,0.8-0.688,0.8h-1.826l-1.141-0.228l-0.914-0.799l0.569-0.799l0.802-0.457l-6.851,0.228
+               l-0.912,1.028l-0.457,1.599l-4.339,0.913v-0.913l-5.371,1.94h-3.195l-3.198,2.625l-0.114-0.456l-4.452,1.142
+               c0,0-0.912,0.8-1.255,0.914c-0.343,0.113-1.941,0.913-1.941,0.913l-2.511,1.256l0.57,0.684l0.914,0.457l0.341,0.572l-0.571,2.51
+               l-3.996,3.768L406.6,64.11l-3.084,1.027l-3.308,0.457l-2.514,0.228l-2.283,0.686c0,0-1.712,0.113-2.056,0.227
+               c-0.343,0.115-2.511,0.342-2.511,0.342l-1.716,1.03l-2.968,1.825l-2.625,1.827l-2.397,1.37l-0.572,1.028
+               c0,0-0.343,0.571-0.914,0.686c-0.57,0.113-4.224,1.484-4.224,1.484l-1.598,0.914l-3.311,2.281l-3.311,1.257l-2.968,0.685h-2.17
+               l-3.541,1.828c0,0-1.254,1.141-1.597,1.255c-0.343,0.113-2.513,1.94-2.513,1.94l-1.599,0.685l-2.511,1.255l-0.686,0.914
+               l-1.941,1.712c0,0-1.484,1.141-2.284,1.255c-0.798,0.116-2.967,0.685-2.967,0.685l-3.196,1.94l-2.97,4.456l-1.484,2.284
+               l-1.941,2.512l-2.855,2.055l-1.598,1.141l-2.169,2.398l-1.828,2.512l-1.483,2.854l-0.913,3.425l-0.686,2.398l-3.196,2.626
+               l-1.255,2.967l-2.17,2.855l-1.941,1.713l-3.084,2.625l-1.827,1.712l-1.827,1.599l-2.284,2.967l-2.17,1.942l-3.31,2.625
+               c0,0-1.712-0.114-1.941,0.228c-0.229,0.342-2.513,2.512-2.855,2.856c-0.343,0.343-3.767,4.109-3.767,4.109l-2.854,1.94
+               l-2.968,2.284l-4.225,0.571l-3.539,1.371l-3.197,2.055l-1.826,2.397l-0.001,1.601l1.255,2.855l0.685,2.397v4.681l-0.228,8.336
+               l-1.028,2.054l-1.255,2.285l-1.485,1.711c0,0-1.598,1.598-1.94,1.827c-0.343,0.228-1.485,2.055-1.485,2.055l0.115,2.283
+               l1.027,1.712l1.599,1.713l0.458,3.197l1.027,4.909l1.369,3.426l1.257,2.511l2.054,2.169c0,0,1.714,0.571,2.056,0.686
+               c0.342,0.113,2.968,0.227,2.968,0.227l13.816-0.343l2.739,1.256l3.312,0.571l4.453,1.371l3.31,1.255l3.084,0.915l1.483,0.457
+               l0.914,0.343l0.457-0.686l0.799-1.141h1.029v1.256l-0.115,1.028l-0.457,1.141l-0.57,0.686l0.57,1.369l-0.456,1.599l-0.114,1.599
+               l0.456,0.912l1.257,1.484l0.113,1.941c0,0,0.685,1.255,0.8,1.599c0.114,0.343,1.484,1.257,1.484,1.257l0.799,0.341l0.571-0.456
+               h2.854l0.685-1.257l1.143-0.457l1.026-0.455l0.344-0.572h1.027h1.027c0,0,0.685-0.342,1.028-0.342c0.343,0,1.141-1.028,1.141-1.028
+               l4.682-0.113l1.712-0.343l1.599-0.459l0.228-1.027v-0.8l0.571-0.341l1.142-0.229l0.685-0.571l0.57-1.141l3.197-10.39l0.343-4.223
+               l-0.571-3.54l-0.572-2.625l-0.684-2.626l-3.311-1.255h-2.283l-1.599,0.569l-1.484,1.714l-1.6,2.853l-0.799,2.284l-2.056,3.654
+               l-1.827,1.599l-1.37,0.227l-0.342,1.257l-1.713,0.227l-1.484-0.684l-0.799-1.486l0.114-1.255l1.141-2.056l1.713-1.484l1.37-0.798
+               l1.827-0.801v-1.597l1.37-0.571l0.343-2.056l1.828-3.653l1.826-1.713l1.941-1.026l0.799-0.801h2.169l0.799-0.457l-0.799-1.599
+               l2.055-3.881l1.255-2.17l1.483-1.598l1.372-0.341l1.598,1.368l1.029,1.028l0.799-0.913l0.571-0.115l0.457,1.142l-0.114,1.257
+               l-0.456,1.141l-1.255,2.168l-0.114,1.257l0.57,1.484l-0.341,2.398l-1.371,1.827l-1.142,1.255l-0.114,2.284l0.571,3.196l0.799,2.398
+               l0.344,2.626v4.567l-0.344,4.795l-0.799,2.74l-1.142,2.284l-1.142,1.942l-1.369,1.598l-0.913,0.684l0.113,1.942l-3.082,3.426
+               l-2.626,1.94l-3.654,1.483l-4.11,2.284l-1.712,2.397l-1.941,3.198l-0.913,2.624l-0.57,3.198l-0.23,3.543v3.654l0.23,2.167
+               l0.798,2.626l1.029,2.626l1.255,1.599l1.598,0.799l2.169,0.572l1.371,0.456l1.141,0.455v0.687l-0.114,1.141l1.256,3.083
+               l1.941,2.284l1.484,2.168l1.141,2.056l0.115,1.484l1.254-1.598l0.114,5.138c0,0-0.342,1.143-0.685,1.255
+               c-0.342,0.114-0.913,1.599-0.913,1.599l0.686,0.8l1.712-0.228l1.143-0.343L342.431,289.381z"/>
+       <path fill="#81B9D9" d="M280.216,165.146c-0.071,0.453-0.594,0.896-1.02,1.135c0.044-1.282-0.457-4.628,1.202-5.164
+               c0.824-0.266,1.495,0.245,1.534,1.187c0.04,0.941-1.299,2.47-1.856,3.124"/>
+       <path fill="none" stroke="#007BB2" stroke-width="0.8763" d="M280.216,165.146c-0.071,0.453-0.594,0.896-1.02,1.135
+               c0.044-1.282-0.457-4.628,1.202-5.164c0.824-0.266,1.495,0.245,1.534,1.187c0.04,0.941-1.299,2.47-1.856,3.124"/>
+       <path fill="#81B9D9" d="M390.34,198.3c-0.366-0.365-0.887-0.322-1.239-0.7c-0.478-0.518-0.372-0.886,0.076-1.428
+               c0.441-0.532,1.004-0.816,1.501-1.301c0.514-0.503,0.537-1.128,0.341-1.759c-0.298-0.964-1.204-1.538-2.169-1.596
+               c-0.655-0.04-1.136,0.053-1.594,0.493c-0.487,0.471-0.729,1.067-1.162,1.556c-0.206,0.232-0.451,0.518-0.673,0.707
+               c-0.26,0.223-0.635,0.336-0.893,0.569c-0.541,0.484-0.604,1.177-0.636,1.854c-0.06,1.214,0.41,2.276,0.291,3.54
+               c-0.107,1.142-0.415,2.497,0.501,3.347c0.787,0.729,2.236,0.475,2.87-0.356c0.309-0.403,0.46-1,0.587-1.499
+               c0.158-0.606,0.542-1.044,1.034-1.388c0.418-0.294,0.94-0.463,1.175-0.923c0.252-0.485,0.28-1.021-0.272-1.267"/>
+       <path fill="none" stroke="#007BB2" stroke-width="0.8763" d="M390.34,198.3c-0.366-0.365-0.887-0.322-1.239-0.7
+               c-0.478-0.518-0.372-0.886,0.076-1.428c0.441-0.532,1.004-0.816,1.501-1.301c0.514-0.503,0.537-1.128,0.341-1.759
+               c-0.298-0.964-1.204-1.538-2.169-1.596c-0.655-0.04-1.136,0.053-1.594,0.493c-0.487,0.471-0.729,1.067-1.162,1.556
+               c-0.206,0.232-0.451,0.518-0.673,0.707c-0.26,0.223-0.635,0.336-0.893,0.569c-0.541,0.484-0.604,1.177-0.636,1.854
+               c-0.06,1.214,0.41,2.276,0.291,3.54c-0.107,1.142-0.415,2.497,0.501,3.347c0.787,0.729,2.236,0.475,2.87-0.356
+               c0.309-0.403,0.46-1,0.587-1.499c0.158-0.606,0.542-1.044,1.034-1.388c0.418-0.294,0.94-0.463,1.175-0.923
+               c0.252-0.485,0.28-1.021-0.272-1.267"/>
+       <path fill="#81B9D9" d="M377.877,212.084c-0.416,0-1.032-0.108-1.415,0.023c-0.201,0.067-0.322,0.258-0.518,0.345
+               c-0.209,0.091-0.446,0.092-0.656,0.172c-0.413,0.154-0.806,0.405-1.13,0.669c-0.412,0.334-0.863,0.576-1.224,0.979
+               c-0.255,0.281-0.563,0.697-0.67,1.066c-0.095,0.328-0.238,1.004,0.066,1.229c0.312,0.228,0.974,0.095,1.289-0.022
+               c0.345-0.129,0.639-0.371,1.004-0.49c0.463-0.148,0.736-0.223,1.134-0.539c0.305-0.245,0.638-0.447,0.969-0.675
+               c0.38-0.266,0.787-0.484,1.161-0.734c0.4-0.268,0.781-0.428,0.854-0.928c0.096-0.655-0.329-1.029-0.949-1.094"/>
+       <path fill="none" stroke="#007BB2" stroke-width="0.8763" d="M377.877,212.084c-0.416,0-1.032-0.108-1.415,0.023
+               c-0.201,0.067-0.322,0.258-0.518,0.345c-0.209,0.091-0.446,0.092-0.656,0.172c-0.413,0.154-0.806,0.405-1.13,0.669
+               c-0.412,0.334-0.863,0.576-1.224,0.979c-0.255,0.281-0.563,0.697-0.67,1.066c-0.095,0.328-0.238,1.004,0.066,1.229
+               c0.312,0.228,0.974,0.095,1.289-0.022c0.345-0.129,0.639-0.371,1.004-0.49c0.463-0.148,0.736-0.223,1.134-0.539
+               c0.305-0.245,0.638-0.447,0.969-0.675c0.38-0.266,0.787-0.484,1.161-0.734c0.4-0.268,0.781-0.428,0.854-0.928
+               c0.096-0.655-0.329-1.029-0.949-1.094"/>
+       <path fill="#81B9D9" d="M399.518,134.928c0.003,1.162-0.383,1.622-1.553,1.727c-0.548,0.048-0.794,0.125-1.225,0.446
+               c-0.41,0.306-0.456,0.433-0.833,0.056c-0.267-0.263-0.347-0.614-0.577-0.863c-0.242-0.262-0.647-0.364-0.836-0.66
+               c-0.693-1.09,0.903-1.366,1.587-1.497c0.476-0.091,0.413-0.111,0.832,0.171c0.347,0.233,0.4,0.359,0.879,0.388
+               c0.751,0.046,1.719-0.477,1.669,0.691"/>
+       <path fill="none" stroke="#007BB2" stroke-width="0.8763" d="M399.518,134.928c0.003,1.162-0.383,1.622-1.553,1.727
+               c-0.548,0.048-0.794,0.125-1.225,0.446c-0.41,0.306-0.456,0.433-0.833,0.056c-0.267-0.263-0.347-0.614-0.577-0.863
+               c-0.242-0.262-0.647-0.364-0.836-0.66c-0.693-1.09,0.903-1.366,1.587-1.497c0.476-0.091,0.413-0.111,0.832,0.171
+               c0.347,0.233,0.4,0.359,0.879,0.388c0.751,0.046,1.719-0.477,1.669,0.691"/>
+       <path fill="#81B9D9" d="M451.263,48.073c-0.653-0.046-1.136,0.312-1.727,0.461c-0.52,0.13-1.4-0.176-1.761,0.34
+               c-0.843,1.215,1.445,1.566,2.11,1.728c1.307,0.32,2.407-0.38,3.68-0.456c1.536-0.092,2.559,0.338,2.398-1.592
+               c-1.11-0.734-3.529-0.253-4.845-0.48"/>
+       <path fill="none" stroke="#007BB2" stroke-width="0.8763" d="M451.263,48.073c-0.653-0.046-1.136,0.312-1.727,0.461
+               c-0.52,0.13-1.4-0.176-1.761,0.34c-0.843,1.215,1.445,1.566,2.11,1.728c1.307,0.32,2.407-0.38,3.68-0.456
+               c1.536-0.092,2.559,0.338,2.398-1.592c-1.11-0.734-3.529-0.253-4.845-0.48"/>
+       <path fill="#81B9D9" d="M497.122,58.517c-1.19,0.309-0.851-0.856-0.849-1.543c-0.805-0.395-1.68-0.839-2.467-1.177
+               c0.105-1.165-1.116-3.158-2.513-3.109c-0.942,0.032-0.608,1.071-1.223,1.59c-0.707,0.596-1.587,0.258-2.419,0.391
+               c-1.935,0.305-1.305,2.053-0.127,2.935c0.314,0.236,1.482,0.667,1.614,0.988c0.407,0.982-1.235,0.739-1.793,1.1
+               c-1.64,1.06,0.811,1.556,1.638,1.864c1.18,0.438,2.142,1.222,3.583,0.731c0.76-0.261,0.962-1.005,1.64-1.375
+               c0.577-0.315,1.515-0.209,2.185-0.209c1.554,0,3.23-0.077,2.795-2.167c-0.85-0.5-2.472,0.363-3.001-0.226"/>
+       <path fill="none" stroke="#007BB2" stroke-width="0.8763" d="M497.122,58.517c-1.19,0.309-0.851-0.856-0.849-1.543
+               c-0.805-0.395-1.68-0.839-2.467-1.177c0.105-1.165-1.116-3.158-2.513-3.109c-0.942,0.032-0.608,1.071-1.223,1.59
+               c-0.707,0.596-1.587,0.258-2.419,0.391c-1.935,0.305-1.305,2.053-0.127,2.935c0.314,0.236,1.482,0.667,1.614,0.988
+               c0.407,0.982-1.235,0.739-1.793,1.1c-1.64,1.06,0.811,1.556,1.638,1.864c1.18,0.438,2.142,1.222,3.583,0.731
+               c0.76-0.261,0.962-1.005,1.64-1.375c0.577-0.315,1.515-0.209,2.185-0.209c1.554,0,3.23-0.077,2.795-2.167
+               c-0.85-0.5-2.472,0.363-3.001-0.226"/>
+       <path fill="#81B9D9" d="M469.958,46.863c-0.427-0.06-0.948-0.515-1.379-0.239c-0.561,0.358-0.246,1.006,0.05,1.36
+               c0.161,0.192,0.97,0.663,1.223,0.651c0.807-0.04,0.671-0.632,0.611-1.337c-0.383-0.062-0.467-0.414-0.561-0.461"/>
+       <path fill="none" stroke="#007BB2" stroke-width="0.8763" d="M469.958,46.863c-0.427-0.06-0.948-0.515-1.379-0.239
+               c-0.561,0.358-0.246,1.006,0.05,1.36c0.161,0.192,0.97,0.663,1.223,0.651c0.807-0.04,0.671-0.632,0.611-1.337
+               c-0.383-0.062-0.467-0.414-0.561-0.461"/>
+       <path fill="#81B9D9" d="M575.322,64.517c0.086-0.333,0.225-0.553-0.123-0.724c-0.24-0.117-0.612-0.049-0.879-0.085
+               c-0.515-0.072-1.03-0.352-1.155-0.887c-0.141-0.613-0.02-1.38,0.041-2.001c0.065-0.673,0.172-1.321,0.961-1.387
+               c0.631-0.052,1.193-0.081,1.551,0.414c0.329,0.457,0.544,0.663,1.068,0.895c0.519,0.232,1.083,0.484,1.551,0.837
+               c0.651,0.493,0.168,0.903-0.076,1.475c-0.257,0.588,0.14,1.381-0.234,1.925c-0.188,0.276-0.509,0.314-0.75,0.529
+               c-0.233,0.207-0.466,0.465-0.656,0.735c-0.183,0.259-0.227,0.518-0.299,0.814c-0.06,0.252-0.033,0.739-0.24,0.919
+               c-0.517,0.446-1.006-0.277-1.107-0.686c-0.116-0.474-0.054-1.142-0.01-1.625c0.064-0.62,0.333-1.001,0.511-1.571"/>
+       <path fill="none" stroke="#007BB2" stroke-width="0.8763" d="M575.322,64.517c0.086-0.333,0.225-0.553-0.123-0.724
+               c-0.24-0.117-0.612-0.049-0.879-0.085c-0.515-0.072-1.03-0.352-1.155-0.887c-0.141-0.613-0.02-1.38,0.041-2.001
+               c0.065-0.673,0.172-1.321,0.961-1.387c0.631-0.052,1.193-0.081,1.551,0.414c0.329,0.457,0.544,0.663,1.068,0.895
+               c0.519,0.232,1.083,0.484,1.551,0.837c0.651,0.493,0.168,0.903-0.076,1.475c-0.257,0.588,0.14,1.381-0.234,1.925
+               c-0.188,0.276-0.509,0.314-0.75,0.529c-0.233,0.207-0.466,0.465-0.656,0.735c-0.183,0.259-0.227,0.518-0.299,0.814
+               c-0.06,0.252-0.033,0.739-0.24,0.919c-0.517,0.446-1.006-0.277-1.107-0.686c-0.116-0.474-0.054-1.142-0.01-1.625
+               c0.064-0.62,0.333-1.001,0.511-1.571"/>
+       <path fill="#81B9D9" d="M551.133,73.337c-0.079,0.282,0.026,0.626-0.18,0.856c-0.251,0.28-0.515,0.127-0.817,0.143
+               c-0.799,0.04-0.366,0.841,0.034,1.118c0.772,0.536,1.165,1.736,2.236,1.733c0.353,0,0.585,0.038,0.808-0.27
+               c0.182-0.251,0.207-0.488,0.425-0.721c0.512-0.556,0.264-0.895-0.231-1.358c-0.372-0.347-0.788-0.733-1.071-1.126
+               c-0.221-0.312-0.987-1.074-1.281-0.26c-0.041,0.117-0.042,0.227,0,0.346"/>
+       <path fill="none" stroke="#007BB2" stroke-width="0.8763" d="M551.133,73.337c-0.079,0.282,0.026,0.626-0.18,0.856
+               c-0.251,0.28-0.515,0.127-0.817,0.143c-0.799,0.04-0.366,0.841,0.034,1.118c0.772,0.536,1.165,1.736,2.236,1.733
+               c0.353,0,0.585,0.038,0.808-0.27c0.182-0.251,0.207-0.488,0.425-0.721c0.512-0.556,0.264-0.895-0.231-1.358
+               c-0.372-0.347-0.788-0.733-1.071-1.126c-0.221-0.312-0.987-1.074-1.281-0.26c-0.041,0.117-0.042,0.227,0,0.346"/>
+       <path fill="#81B9D9" d="M566.457,76.216c0.141,0.113,0.277,0.163,0.546,0.151c0.569-0.027,1.251-0.685,1.3-1.272
+               c0.017-0.193,0.065-0.615-0.438-0.645c-0.957-0.055-1.406,0.811-1.493,1.001C566.152,75.94,566.392,76.164,566.457,76.216"/>
+       <path fill="none" stroke="#007BB2" stroke-width="0.8763" d="M566.457,76.216c0.141,0.113,0.277,0.163,0.546,0.151
+               c0.569-0.027,1.251-0.685,1.3-1.272c0.017-0.193,0.065-0.615-0.438-0.645c-0.957-0.055-1.406,0.811-1.493,1.001
+               C566.152,75.94,566.392,76.164,566.457,76.216z"/>
+       <path fill="#81B9D9" d="M517.835,70.441c-0.528-0.101-0.765-0.668-1.264-0.728c-0.502-0.059-0.971,0.482-1.388,0.681
+               c-0.562,0.266-1.126,0.927-0.706,1.609c0.114,0.188,0.436,0.364,0.649,0.421c0.379,0.102,0.548-0.111,0.787-0.347
+               c0.2-0.196,0.358-0.385,0.62-0.487c0.343-0.132,0.728-0.013,1.072-0.143c0.781-0.295,0.112-0.823-0.193-1.197"/>
+       <path fill="none" stroke="#007BB2" stroke-width="0.8763" d="M517.835,70.441c-0.528-0.101-0.765-0.668-1.264-0.728
+               c-0.502-0.059-0.971,0.482-1.388,0.681c-0.562,0.266-1.126,0.927-0.706,1.609c0.114,0.188,0.436,0.364,0.649,0.421
+               c0.379,0.102,0.548-0.111,0.787-0.347c0.2-0.196,0.358-0.385,0.62-0.487c0.343-0.132,0.728-0.013,1.072-0.143
+               c0.781-0.295,0.112-0.823-0.193-1.197"/>
+       <path fill="#81B9D9" d="M525.914,68.028c-0.656,0-1.184-0.013-1.733-0.183c-0.508-0.156-1.083-0.177-1.571-0.382
+               c-0.543-0.23-0.925-0.652-0.831-1.273c0.121-0.805,0.705-0.957,1.42-0.957c0.602-0.001,1.158,0.31,1.684,0.621
+               c0.584,0.344,1.109,0.529,1.838,0.489c0.706-0.038,1.408-0.102,2.105-0.19c0.57-0.074,1.575-0.389,1.904,0.238
+               c0.298,0.563,0.077,1.328-0.601,1.407c-0.609,0.07-1.245-0.032-1.81-0.106c-0.617-0.081-1.194,0.002-1.789,0.067
+               c-0.381,0.043-0.477,0.192-0.805,0.308c-0.248,0.089-0.686,0.065-0.957,0.037c-0.173-0.018-0.282,0-0.42-0.115"/>
+       <path fill="none" stroke="#007BB2" stroke-width="0.8763" d="M525.914,68.028c-0.656,0-1.184-0.013-1.733-0.183
+               c-0.508-0.156-1.083-0.177-1.571-0.382c-0.543-0.23-0.925-0.652-0.831-1.273c0.121-0.805,0.705-0.957,1.42-0.957
+               c0.602-0.001,1.158,0.31,1.684,0.621c0.584,0.344,1.109,0.529,1.838,0.489c0.706-0.038,1.408-0.102,2.105-0.19
+               c0.57-0.074,1.575-0.389,1.904,0.238c0.298,0.563,0.077,1.328-0.601,1.407c-0.609,0.07-1.245-0.032-1.81-0.106
+               c-0.617-0.081-1.194,0.002-1.789,0.067c-0.381,0.043-0.477,0.192-0.805,0.308c-0.248,0.089-0.686,0.065-0.957,0.037
+               c-0.173-0.018-0.282,0-0.42-0.115"/>
+       <path fill="#81B9D9" d="M441.537,96.228c-0.52,0.051-1.178-0.033-1.648,0.097c-0.577,0.156-0.958,0.675-1.074,1.228
+               c-0.127,0.59-0.267,1.168-0.454,1.745c-0.091,0.285-0.16,0.575-0.355,0.837c-0.192,0.257-0.457,0.382-0.691,0.59
+               c-0.425,0.378-0.891,0.724-1.181,1.188c-0.22,0.348-0.194,0.468-0.256,0.871c-0.033,0.215-0.161,0.579-0.348,0.726
+               c-0.27,0.21-0.544,0.027-0.69,0.425c-0.089,0.245-0.023,0.579,0.036,0.803c0.132,0.511,0.318,1.016,0.616,1.474
+               c0.326,0.496,0.836,0.935,1.343,1.247c0.545,0.334,1.081,0.395,1.702,0.489c0.551,0.083,1.255,0.118,1.709-0.245
+               c0.466-0.374,0.531-1.214,1.15-1.397c0.595-0.177,1.286,0.242,1.849,0.072c0.31-0.093,0.405-0.453,0.556-0.699
+               c0.174-0.279,0.301-0.434,0.596-0.602c0.569-0.321,1.259-0.335,1.821-0.644c0.702-0.385,0.962-0.931,1.171-1.648
+               c0.172-0.588,0.441-1.134,0.53-1.744c0.089-0.6,0.175-1.178,0.591-1.641c0.5-0.552,1.175-0.939,1.738-1.438
+               c0.431-0.383,0.546-1.049,0.416-1.621c-0.124-0.555-0.72-0.931-1.143-1.255c-0.468-0.363-0.747-0.803-1.177-1.161
+               c-1.139-0.943-2.336-0.295-3.322,0.49c-0.584,0.465-1.018,1.086-1.735,1.353c-0.306,0.112-0.665,0.187-0.982,0.25
+               c-0.346,0.067-0.661,0.182-0.945,0.245"/>
+       <path fill="none" stroke="#007BB2" stroke-width="0.8763" d="M441.537,96.228c-0.52,0.051-1.178-0.033-1.648,0.097
+               c-0.577,0.156-0.958,0.675-1.074,1.228c-0.127,0.59-0.267,1.168-0.454,1.745c-0.091,0.285-0.16,0.575-0.355,0.837
+               c-0.192,0.257-0.457,0.382-0.691,0.59c-0.425,0.378-0.891,0.724-1.181,1.188c-0.22,0.348-0.194,0.468-0.256,0.871
+               c-0.033,0.215-0.161,0.579-0.348,0.726c-0.27,0.21-0.544,0.027-0.69,0.425c-0.089,0.245-0.023,0.579,0.036,0.803
+               c0.132,0.511,0.318,1.016,0.616,1.474c0.326,0.496,0.836,0.935,1.343,1.247c0.545,0.334,1.081,0.395,1.702,0.489
+               c0.551,0.083,1.255,0.118,1.709-0.245c0.466-0.374,0.531-1.214,1.15-1.397c0.595-0.177,1.286,0.242,1.849,0.072
+               c0.31-0.093,0.405-0.453,0.556-0.699c0.174-0.279,0.301-0.434,0.596-0.602c0.569-0.321,1.259-0.335,1.821-0.644
+               c0.702-0.385,0.962-0.931,1.171-1.648c0.172-0.588,0.441-1.134,0.53-1.744c0.089-0.6,0.175-1.178,0.591-1.641
+               c0.5-0.552,1.175-0.939,1.738-1.438c0.431-0.383,0.546-1.049,0.416-1.621c-0.124-0.555-0.72-0.931-1.143-1.255
+               c-0.468-0.363-0.747-0.803-1.177-1.161c-1.139-0.943-2.336-0.295-3.322,0.49c-0.584,0.465-1.018,1.086-1.735,1.353
+               c-0.306,0.112-0.665,0.187-0.982,0.25c-0.346,0.067-0.661,0.182-0.945,0.245"/>
+       <path fill="#81B9D9" d="M472.329,96.883c-0.111,1.02-0.023,2.664,0.344,3.568"/>
+       <path fill="#81B9D9" d="M475.552,100.834c-0.901-0.171-1.575-1.132-2.38-1.534c-1.595-0.799-1.379,1.309-1.379,2.38
+               c0,0.651-0.009,1.281-0.073,1.917c-0.074,0.698-0.409,1.055-0.546,1.69c-0.26,1.215,1.482,1.637,2.382,1.534
+               c0.878-0.099,1.285-0.627,1.994-1.054c0.791-0.478,1.52-0.822,1.75-1.861c0.472-2.133-1.241-2.201-2.362-3.377"/>
+       <path fill="none" stroke="#007BB2" stroke-width="0.8763" d="M475.552,100.834c-0.901-0.171-1.575-1.132-2.38-1.534
+               c-1.595-0.799-1.379,1.309-1.379,2.38c0,0.651-0.009,1.281-0.073,1.917c-0.074,0.698-0.409,1.055-0.546,1.69
+               c-0.26,1.215,1.482,1.637,2.382,1.534c0.878-0.099,1.285-0.627,1.994-1.054c0.791-0.478,1.52-0.822,1.75-1.861
+               c0.472-2.133-1.241-2.201-2.362-3.377"/>
+       <path fill="#81B9D9" d="M480.253,88.504c-1.174,0.32-1.326,0.389-2.628,0.435c-1.278,0.045-1.856,1.262-2.359,2.321
+               c-0.556,1.179-0.541,2.266-0.173,3.435c0.291,0.929,0.364,2.057,1.534,2.304c1.618,0.343,1.706-1.684,2.836-2.249
+               c1.068-0.532,2.588-0.113,3.688-0.055c0.616,0.033,1.304,0.059,1.919,0c0.853-0.082,0.963-0.521,1.625-1.053
+               c0.446-0.356,1.136-0.873,1.695-0.732c0.408,0.102,0.722,0.699,1.074,0.922c1.023,0.648,2.318-0.019,3.416,0.344
+               c0.558,0.185,0.775,0.517,1.477,0.52c0.549,0.003,1.048-0.163,1.44-0.558c0.614-0.619,1.534-2.183,1.629-3.049
+               c0.146-1.358-1.855-1.352-2.688-0.863c-0.54,0.315-0.683,0.612-1.302,0.709c-0.448,0.071-0.916-0.03-1.306-0.154
+               c-0.823-0.26-2.047-0.539-2.302-1.38c-0.149-0.497,0.114-0.765-0.366-1.094c-0.292-0.201-0.944-0.179-1.321-0.135
+               c-0.886,0.103-1.697,0.944-2.598,0.831c-0.997-1.425-4.515-0.844-6.062-0.312"/>
+       <path fill="none" stroke="#007BB2" stroke-width="0.8763" d="M480.253,88.504c-1.174,0.32-1.326,0.389-2.628,0.435
+               c-1.278,0.045-1.856,1.262-2.359,2.321c-0.556,1.179-0.541,2.266-0.173,3.435c0.291,0.929,0.364,2.057,1.534,2.304
+               c1.618,0.343,1.706-1.684,2.836-2.249c1.068-0.532,2.588-0.113,3.688-0.055c0.616,0.033,1.304,0.059,1.919,0
+               c0.853-0.082,0.963-0.521,1.625-1.053c0.446-0.356,1.136-0.873,1.695-0.732c0.408,0.102,0.722,0.699,1.074,0.922
+               c1.023,0.648,2.318-0.019,3.416,0.344c0.558,0.185,0.775,0.517,1.477,0.52c0.549,0.003,1.048-0.163,1.44-0.558
+               c0.614-0.619,1.534-2.183,1.629-3.049c0.146-1.358-1.855-1.352-2.688-0.863c-0.54,0.315-0.683,0.612-1.302,0.709
+               c-0.448,0.071-0.916-0.03-1.306-0.154c-0.823-0.26-2.047-0.539-2.302-1.38c-0.149-0.497,0.114-0.765-0.366-1.094
+               c-0.292-0.201-0.944-0.179-1.321-0.135c-0.886,0.103-1.697,0.944-2.598,0.831c-0.997-1.425-4.515-0.844-6.062-0.312"/>
+       <path fill="#81B9D9" d="M526.348,49.352c-0.356-0.198-0.566-0.044-0.938-0.044c-0.368-0.001-0.539-0.195-0.714,0.267
+               c-0.235,0.627,0.387,1.096,0.816,1.462c1.253,1.072,2.842-1.092,1.605-1.739c-0.192-0.101-0.589-0.26-0.688,0.048
+               c-0.094,0.026-0.178,0.007-0.259-0.038"/>
+       <path fill="none" stroke="#007BB2" stroke-width="0.8763" d="M526.348,49.352c-0.356-0.198-0.566-0.044-0.938-0.044
+               c-0.368-0.001-0.539-0.195-0.714,0.267c-0.235,0.627,0.387,1.096,0.816,1.462c1.253,1.072,2.842-1.092,1.605-1.739
+               c-0.192-0.101-0.589-0.26-0.688,0.048c-0.094,0.026-0.178,0.007-0.259-0.038"/>
+       <path fill="#81B9D9" d="M542.5,46.23c-0.054-0.439-0.331-1.399-0.985-1.252c-0.594,0.135-0.669,1.529-0.412,1.934
+               c0.336,0.523,1.096,0.347,1.474,0.891c0.357,0.511,0.159,1.415,0.187,2.044c0.006,0.14,0.064,0.322,0.057,0.484
+               c0.124-0.378-0.086-0.776-0.144-1.157c-0.068-0.438-0.091-0.87-0.091-1.338c0-0.45,0.053-0.935,0-1.383
+               c-0.044-0.404-0.142-0.599-0.268-0.937"/>
+       <path fill="none" stroke="#007BB2" stroke-width="0.8763" d="M542.5,46.23c-0.054-0.439-0.331-1.399-0.985-1.252
+               c-0.594,0.135-0.669,1.529-0.412,1.934c0.336,0.523,1.096,0.347,1.474,0.891c0.357,0.511,0.159,1.415,0.187,2.044
+               c0.006,0.14,0.064,0.322,0.057,0.484c0.124-0.378-0.086-0.776-0.144-1.157c-0.068-0.438-0.091-0.87-0.091-1.338
+               c0-0.45,0.053-0.935,0-1.383c-0.044-0.404-0.142-0.599-0.268-0.937"/>
+       <path fill="#81B9D9" d="M538.037,41.857c0.316,0.002,0.589,0.047,0.892,0.045c0.432-0.002,0.549-0.128,0.891-0.305
+               c0.265-0.134,0.641-0.195,0.939-0.141c0.353,0.062,0.389,0.098,0.535,0.446c0.267,0.64,0.041,1.142-0.76,0.982
+               c-0.54-0.11-0.767-0.594-0.979-1.027"/>
+       <path fill="none" stroke="#007BB2" stroke-width="0.8763" d="M538.037,41.857c0.316,0.002,0.589,0.047,0.892,0.045
+               c0.432-0.002,0.549-0.128,0.891-0.305c0.265-0.134,0.641-0.195,0.939-0.141c0.353,0.062,0.389,0.098,0.535,0.446
+               c0.267,0.64,0.041,1.142-0.76,0.982c-0.54-0.11-0.767-0.594-0.979-1.027"/>
+       <path fill="#81B9D9" d="M525.188,43.508c-0.72,0.061-1.204-0.546-1.832,0.088c-0.78,0.79,0.157,1.169,0.764,1.42
+               c1.352,0.559,2.602,0.918,4.137,0.723c0.854-0.107,1.648-0.223,2.518-0.223c0.988,0,1.724,0.366,2.656,0.636
+               c0.954,0.276,1.853,0.398,2.868,0.346c0.461-0.023,0.848-0.162,1.292-0.267c0.335-0.078,0.763-0.044,1.071-0.166
+               c0.788-0.313,0.356-1.348-0.081-1.718c-0.717-0.609-1.532-0.748-2.463-0.705c-0.764,0.036-1.434,0.39-2.229,0.313
+               c-0.705-0.066-1.452-0.302-2.139-0.405c-0.681-0.103-1.044,0.092-1.654,0.305c-0.575,0.2-1.207,0.15-1.83,0.143
+               c-0.683-0.006-1.225-0.262-1.875-0.356c-0.39-0.057-1.09,0.035-1.427-0.179"/>
+       <path fill="none" stroke="#007BB2" stroke-width="0.8763" d="M525.188,43.508c-0.72,0.061-1.204-0.546-1.832,0.088
+               c-0.78,0.79,0.157,1.169,0.764,1.42c1.352,0.559,2.602,0.918,4.137,0.723c0.854-0.107,1.648-0.223,2.518-0.223
+               c0.988,0,1.724,0.366,2.656,0.636c0.954,0.276,1.853,0.398,2.868,0.346c0.461-0.023,0.848-0.162,1.292-0.267
+               c0.335-0.078,0.763-0.044,1.071-0.166c0.788-0.313,0.356-1.348-0.081-1.718c-0.717-0.609-1.532-0.748-2.463-0.705
+               c-0.764,0.036-1.434,0.39-2.229,0.313c-0.705-0.066-1.452-0.302-2.139-0.405c-0.681-0.103-1.044,0.092-1.654,0.305
+               c-0.575,0.2-1.207,0.15-1.83,0.143c-0.683-0.006-1.225-0.262-1.875-0.356c-0.39-0.057-1.09,0.035-1.427-0.179"/>
+       <path fill="#81B9D9" d="M288.158,329.07c-2.187,0.108-5.356,5.424-5.151,7.376c0.476-0.107,1.18,0.185,1.655,0.076
+               c-0.061,0.174,0.022,0.692,0.001,0.915c-0.221,0.118-0.442-0.035-0.668,0.072c-0.069,1.131-0.391,1.808-0.493,2.892
+               c2.177,0.622,2.415-2.013,2.989-3.422c0.776-1.906,1.118-2.515,3.108-3.503c0.252-1.01-0.384-1.976-0.914-2.626
+               c0.883-0.237,1.247-0.68,1.414-1.482C289.509,329.082,288.844,328.957,288.158,329.07"/>
+       <path fill="none" stroke="#007BB2" stroke-width="0.8763" d="M288.158,329.07c-2.187,0.108-5.356,5.424-5.151,7.376
+               c0.476-0.107,1.18,0.185,1.655,0.076c-0.061,0.174,0.022,0.692,0.001,0.915c-0.221,0.118-0.442-0.035-0.668,0.072
+               c-0.069,1.131-0.391,1.808-0.493,2.892c2.177,0.622,2.415-2.013,2.989-3.422c0.776-1.906,1.118-2.515,3.108-3.503
+               c0.252-1.01-0.384-1.976-0.914-2.626c0.883-0.237,1.247-0.68,1.414-1.482C289.509,329.082,288.844,328.957,288.158,329.07"/>
+       <g>
+               <g>
+                       <g>
+                               <path fill="#FFFFFF" d="M478.658,258.296l-8.661-10.322l2.079-1.744l7.145,8.515l3.977-3.338l1.516,1.808L478.658,258.296z"/>
+                               <path fill="#FFFFFF" d="M490.922,248.004l-1.295-0.74l-0.054,0.045c0.039,0.745-0.049,1.359-0.266,1.841
+                                       c-0.216,0.482-0.617,0.97-1.203,1.461c-0.72,0.604-1.469,0.864-2.245,0.777c-0.778-0.087-1.501-0.53-2.173-1.33
+                                       c-0.702-0.837-0.942-1.688-0.72-2.553c0.223-0.864,0.878-1.79,1.966-2.774l1.265-1.134l-0.291-0.346
+                                       c-0.67-0.799-1.396-0.873-2.174-0.22c-0.599,0.503-1.143,1.285-1.632,2.344l-1.898-0.886c0.463-1.199,1.221-2.24,2.271-3.122
+                                       c1.006-0.844,1.972-1.26,2.895-1.25c0.924,0.012,1.78,0.488,2.57,1.429l4.414,5.26L490.922,248.004z M487.25,244.852
+                                       l-0.767,0.693c-0.578,0.518-0.927,1.003-1.044,1.454c-0.116,0.451,0.003,0.887,0.358,1.312c0.51,0.607,1.095,0.633,1.758,0.078
+                                       c0.473-0.398,0.733-0.86,0.774-1.385c0.044-0.526-0.135-1.027-0.534-1.502L487.25,244.852z"/>
+                               <path fill="#FFFFFF" d="M492.821,239.096l-0.115-1.948l0.084-4.161l2.307-1.937l-0.105,5.923l6.909,1.818l-2.361,1.98
+                                       l-4.843-1.385l-0.257,1.479l2.062,2.457l-2.045,1.716l-9.218-10.986l2.045-1.716l4.112,4.901l1.397,1.882L492.821,239.096z"/>
+                               <path fill="#FFFFFF" d="M506.228,235.403c-1.208,1.013-2.446,1.453-3.714,1.323c-1.268-0.131-2.441-0.839-3.519-2.124
+                                       c-1.111-1.323-1.653-2.609-1.632-3.86c0.021-1.25,0.587-2.339,1.696-3.27c1.06-0.89,2.152-1.264,3.276-1.125
+                                       c1.124,0.141,2.155,0.771,3.095,1.891l0.876,1.045l-4.836,4.058c0.536,0.594,1.109,0.927,1.719,0.999
+                                       c0.61,0.075,1.206-0.132,1.787-0.62c0.452-0.379,0.837-0.787,1.156-1.223c0.32-0.437,0.607-0.947,0.864-1.531l1.398,1.666
+                                       c-0.2,0.489-0.465,0.949-0.795,1.383C507.271,234.449,506.813,234.911,506.228,235.403z M500.358,228.994
+                                       c-0.434,0.365-0.652,0.794-0.655,1.289c-0.003,0.496,0.201,1.026,0.611,1.588l2.871-2.409c-0.456-0.525-0.932-0.826-1.43-0.901
+                                       C501.257,228.486,500.792,228.63,500.358,228.994z"/>
+                               <path fill="#FFFFFF" d="M517.942,220.446c0.782,0.932,1.08,1.935,0.893,3.006c-0.186,1.071-0.848,2.083-1.983,3.037
+                                       c-1.047,0.878-2.146,1.447-3.299,1.708l-1.707-2.034c0.923-0.244,1.667-0.495,2.233-0.752c0.565-0.258,1.036-0.546,1.417-0.865
+                                       c0.456-0.382,0.73-0.768,0.819-1.156c0.09-0.388-0.017-0.764-0.321-1.126c-0.17-0.202-0.375-0.338-0.615-0.405
+                                       c-0.24-0.068-0.524-0.087-0.855-0.058c-0.33,0.027-0.949,0.151-1.857,0.367c-0.848,0.207-1.537,0.299-2.065,0.277
+                                       c-0.53-0.022-1.035-0.139-1.518-0.351c-0.482-0.212-0.928-0.561-1.334-1.047c-0.766-0.912-1.075-1.876-0.926-2.892
+                                       c0.15-1.016,0.743-1.959,1.781-2.829c0.509-0.428,1.049-0.772,1.618-1.034c0.57-0.261,1.204-0.487,1.903-0.681l0.757,2.265
+                                       c-0.713,0.212-1.278,0.417-1.695,0.615c-0.417,0.198-0.791,0.436-1.122,0.713c-0.394,0.331-0.615,0.68-0.663,1.049
+                                       c-0.048,0.371,0.057,0.709,0.319,1.021c0.161,0.193,0.344,0.325,0.55,0.398c0.206,0.072,0.457,0.097,0.756,0.077
+                                       c0.298-0.023,0.939-0.15,1.925-0.382c1.304-0.309,2.321-0.373,3.048-0.195C516.731,219.348,517.378,219.774,517.942,220.446z"/>
+                               <path fill="#FFFFFF" d="M527.153,217.603l-1.122-0.778l-0.108,0.089c0.089,0.551,0.016,1.095-0.218,1.633
+                                       c-0.235,0.538-0.609,1.023-1.123,1.454c-0.881,0.739-1.754,1.048-2.618,0.927c-0.864-0.122-1.686-0.648-2.468-1.58l-4.32-5.147
+                                       l2.045-1.717l3.869,4.611c0.477,0.569,0.932,0.916,1.363,1.039c0.432,0.124,0.858,0.01,1.278-0.343
+                                       c0.572-0.48,0.817-1.028,0.734-1.646c-0.083-0.616-0.515-1.39-1.297-2.322l-3.115-3.713l2.045-1.717l6.624,7.893
+                                       L527.153,217.603z"/>
+                               <path fill="#FFFFFF" d="M535.119,211.16c-0.881,0.738-1.854,0.982-2.919,0.729l-0.108,0.09c0.625,0.599,0.98,0.95,1.066,1.054
+                                       l2.685,3.199l-2.045,1.716l-9.539-11.367l1.664-1.395l1.148,0.781l0.093-0.079c-0.177-1.184,0.204-2.168,1.143-2.956
+                                       c0.885-0.743,1.881-0.964,2.986-0.665c1.104,0.301,2.194,1.09,3.269,2.37c0.707,0.843,1.203,1.673,1.49,2.492
+                                       c0.286,0.818,0.349,1.572,0.188,2.261C536.079,210.078,535.705,210.668,535.119,211.16z M529.094,205.206
+                                       c-0.505,0.424-0.736,0.897-0.695,1.419c0.043,0.523,0.375,1.163,0.997,1.924l0.196,0.233c0.711,0.848,1.34,1.354,1.887,1.521
+                                       c0.547,0.166,1.081,0.031,1.6-0.405c0.916-0.768,0.707-1.948-0.628-3.539c-0.652-0.777-1.255-1.264-1.806-1.463
+                                       C530.094,204.697,529.577,204.8,529.094,205.206z"/>
+                               <path fill="#FFFFFF" d="M543.033,204.52c-1.207,1.013-2.445,1.453-3.713,1.323c-1.268-0.131-2.441-0.84-3.519-2.125
+                                       c-1.111-1.323-1.654-2.608-1.633-3.86c0.022-1.249,0.587-2.338,1.697-3.269c1.06-0.89,2.152-1.264,3.276-1.124
+                                       c1.123,0.141,2.154,0.771,3.094,1.891l0.877,1.045l-4.836,4.058c0.536,0.594,1.109,0.927,1.718,0.999
+                                       c0.611,0.075,1.207-0.133,1.788-0.62c0.451-0.379,0.837-0.787,1.156-1.223s0.607-0.947,0.864-1.531l1.398,1.666
+                                       c-0.199,0.489-0.465,0.949-0.794,1.383C544.076,203.565,543.619,204.028,543.033,204.52z M537.164,198.11
+                                       c-0.434,0.364-0.653,0.794-0.655,1.289c-0.004,0.496,0.2,1.025,0.611,1.587l2.87-2.408c-0.455-0.526-0.931-0.827-1.429-0.901
+                                       C538.063,197.602,537.597,197.747,537.164,198.11z"/>
+                               <path fill="#FFFFFF" d="M545.073,188.862c0.277-0.232,0.526-0.404,0.745-0.516l1.54,2.149c-0.205,0.091-0.426,0.237-0.663,0.436
+                                       c-0.653,0.548-1.014,1.151-1.082,1.809c-0.068,0.659,0.164,1.307,0.698,1.942l3.371,4.017l-2.046,1.716l-6.623-7.893l1.549-1.3
+                                       l1.416,1.074l0.101-0.084c-0.14-0.638-0.124-1.258,0.045-1.86C544.291,189.749,544.608,189.253,545.073,188.862z"/>
+                               <path fill="#FFFFFF" d="M545.258,185.483c-0.588-0.701-0.511-1.364,0.231-1.987c0.742-0.623,1.408-0.583,1.996,0.118
+                                       c0.28,0.334,0.407,0.672,0.376,1.014s-0.23,0.668-0.602,0.979C546.518,186.23,545.851,186.188,545.258,185.483z
+                                        M555.727,193.627l-2.046,1.716l-6.623-7.893l2.045-1.716L555.727,193.627z"/>
+                               <path fill="#FFFFFF" d="M561.255,182.239c1.078,1.285,1.599,2.559,1.564,3.825c-0.036,1.265-0.628,2.38-1.777,3.344
+                                       c-0.72,0.604-1.494,0.971-2.323,1.1c-0.828,0.13-1.65,0.009-2.467-0.366c-0.816-0.374-1.572-0.974-2.267-1.803
+                                       c-1.082-1.289-1.604-2.561-1.564-3.813c0.039-1.252,0.636-2.363,1.795-3.336c0.72-0.603,1.493-0.972,2.32-1.104
+                                       c0.827-0.132,1.646-0.014,2.459,0.356C559.805,180.811,560.559,181.411,561.255,182.239z M556.07,186.59
+                                       c0.656,0.781,1.273,1.269,1.852,1.465c0.58,0.196,1.145,0.063,1.695-0.399c0.545-0.458,0.77-0.986,0.676-1.584
+                                       c-0.095-0.599-0.471-1.29-1.131-2.076c-0.656-0.781-1.268-1.267-1.837-1.454c-0.57-0.188-1.129-0.051-1.68,0.409
+                                       c-0.545,0.458-0.776,0.983-0.692,1.573C555.038,185.114,555.41,185.803,556.07,186.59z"/>
+                               <path fill="#FFFFFF" d="M563.65,173.274c0.277-0.233,0.526-0.405,0.745-0.517l1.54,2.15c-0.205,0.091-0.426,0.237-0.663,0.436
+                                       c-0.653,0.548-1.014,1.15-1.082,1.809c-0.068,0.659,0.165,1.306,0.698,1.942l3.371,4.017l-2.045,1.716l-6.624-7.892l1.549-1.3
+                                       l1.416,1.074l0.101-0.084c-0.14-0.638-0.124-1.258,0.046-1.86C562.868,174.16,563.185,173.664,563.65,173.274z"/>
+                       </g>
+               </g>
+       </g>
+       <g>
+               <path fill="#CCE7D3" d="M300.068,42.939c-0.711,0.076-1.017,0.417-1.584,0.795c-1.341,0.895-2.349,2.276-3.798,3.006
+                       c-0.965,0.486-1.894,0.596-2.796,1.087c-0.922,0.502-1.429,0.785-2.11,1.602c0.407-1.323,2.381-2.545,3.533-2.981
+                       c1.672-0.632,1.822-1.42,2.986-2.561c-1.372,0.33-2.629,0.777-3.683,1.719c-0.577,0.516-0.967,1.296-1.645,1.703
+                       c-0.284,0.17-1.481,0.315-1.565,0.403c0.136-0.142,0.636-0.982,0.766-0.999c-0.92,0.124-1.912,0.752-2.736,1.171
+                       c-0.983,0.5-2.068,0.734-3.149,1.117c-1.128,0.4-1.811,1.263-2.892,1.717c-0.799,0.334-4.691,1.915-4.78,1.013
+                       c-0.107-1.078,2.776-2.892,3.531-3.314c2.168-1.211,3.562-2.191,3.562-2.191l-2.298-0.157c-1.251,0.931-2.501,1.86-3.751,2.791
+                       c-0.436,0.324-0.866,0.663-1.312,0.975c-1.038,0.725-2.514,0.863-3.398,1.748c0.152,0.047,2.118,0.72,2.019,0.755
+                       c-0.904,0.318-2.293,0.419-3.087,0.941c-0.897,0.591-1.137,1.588-2.021,2.155c-2.244,1.442-5.093,1.399-7.461,2.574
+                       c-0.859,0.426-1.268,0.737-1.761,1.56c-0.279,0.465-0.136,1.04-0.674,1.36c-0.955,0.569-1.629,3.019-4.984,4.023
+                       c-3.359,1.005-1.651-1.757-5.733,0.589c-4.082,2.347-10.164,3.182-17.462,7.476c-3.014,1.773-6.336,2.955-9.634,4.08
+                       c-1.435,0.49-2.837,1.013-4.225,1.575c-0.522,0.21-1.206,0.264-1.621,0.694c-0.094,0.098-0.599,1.119-0.496,1.082
+                       c-0.866,0.306-1.713,0.43-2.384,1.009c-0.495,0.427-0.795,1.111-1.296,1.552c-0.633,0.557-1.689,0.879-2.154,1.606
+                       c-0.65,1.016,0.511,1.483-0.405,2.641c0.196-0.247,2.855-0.814,3.375-1.098c0.612-0.335,1.299-0.7,1.802-1.193
+                       c0.317-0.311,0.657-1.135,1.035-1.275c1.122-0.416,1.447,0.542,1.079,1.443c-0.335,0.818-1.16,1.142-1.94,1.364
+                       c-1.427,0.406-3.678-0.06-4.555,1.464c-0.355,0.615,0.276,0.972,0.223,1.532c-0.059,0.618-0.697,1.579-1.149,2.171
+                       c-0.515,0.675-1.601,1.21-1.541,2.16c0.129,2.034,2.92,0.344,3.755-0.152c2.556,0.08,0.464,0.142,0.593,1.512
+                       c0.128,1.368-0.053,1.704-0.053,1.704s2.168,1.602,5.214,2.38c3.046,0.777,3.461-1.599,6.819-2.603
+                       c3.358-1.005,3.874-1.16,8.523-2.55c4.649-1.391,7.104-3.532,11.417-5.104c4.314-1.572,2.377-2.4,2.377-2.4
+                       s-1.731,0.8-4.572,1.649c-2.841,0.85-2.738,0.256-2.738,0.256s-2.374-0.414-3.666-0.028s-2.117-0.492-2.349-1.267
+                       c-0.232-0.775,3.153-2.631,6.873-4.307c3.719-1.675,3.591-3.045,5.916-3.74c2.324-0.695,3.022-1.185,4.675-2.243
+                       c1.653-1.057,1.001-0.725,3.325-1.42c2.324-0.695,4.655-0.123,6.463-0.664c1.808-0.54,6.897-2.344,11.029-3.58
+                       c4.133-1.237,4.548-3.611,6.02-4.334c1.679-0.823,3.798-1.626,5.013-3.113c0.428-0.522,1.146-1.853,0.84-2.566
+                       c-0.248-0.578-2.15-0.819-2.149-0.807c-0.107-1.061,1.524-0.732,1.584-1.167c0.252-1.809-2.911,0.051-3.463,0.597
+                       c-0.806,0.797-1.251,2.111-2.207,2.729c-0.898,0.578-2.295,0.566-1.377-0.743c1.038-1.478,2.922-2.718,4.488-3.56
+                       c1.823-0.979,3.745-1.022,5.543-2.286c2.791-1.96,6.28-7.226,9.148-8.927c2.867-1.702,6.432-3.894,6.432-3.894
+                       C301.276,43.251,300.28,42.917,300.068,42.939 M262.578,71.542c-0.545,0.153-0.968,0.601-1.46,0.865
+                       c-1.281,0.688-2.788,1.542-4.298,1.529c-0.767-0.007-1.167-0.215-1.989-0.077c-0.722,0.12-1.502,0.414-2.196,0.656
+                       c-0.562,0.197-1.894,1.008-2.559,1.325c0.001,0.001,0.002,0.003,0.002,0.004c-0.001-0.001-0.001-0.003-0.002-0.004
+                       c-0.211,0.101-0.356,0.153-0.385,0.119c0.029,0.034,0.175-0.018,0.385-0.119c-0.67-1.203,1.521-1.555,2.118-2.212
+                       c1.821-2.006,4.798-3.386,7.319-4.403c1.571-0.634,3.072,0.384,4.543-0.215c0.42,0.729,0.724,1.659,0.863,2.516
+                       C264.126,71.697,263.409,71.308,262.578,71.542"/>
+               <path fill="none" stroke="#496B71" stroke-width="0.9816" d="M300.068,42.939c-0.711,0.076-1.017,0.417-1.584,0.795
+                       c-1.341,0.895-2.349,2.276-3.798,3.006c-0.965,0.486-1.894,0.596-2.796,1.087c-0.922,0.502-1.429,0.785-2.11,1.602
+                       c0.407-1.323,2.381-2.545,3.533-2.981c1.672-0.632,1.822-1.42,2.986-2.561c-1.372,0.33-2.629,0.777-3.683,1.719
+                       c-0.577,0.516-0.967,1.296-1.645,1.703c-0.284,0.17-1.481,0.315-1.565,0.403c0.136-0.142,0.636-0.982,0.766-0.999
+                       c-0.92,0.124-1.912,0.752-2.736,1.171c-0.983,0.5-2.068,0.734-3.149,1.117c-1.128,0.4-1.811,1.263-2.892,1.717
+                       c-0.799,0.334-4.691,1.915-4.78,1.013c-0.107-1.078,2.776-2.892,3.531-3.314c2.168-1.211,3.562-2.191,3.562-2.191l-2.298-0.157
+                       c-1.251,0.931-2.501,1.86-3.751,2.791c-0.436,0.324-0.866,0.663-1.312,0.975c-1.038,0.725-2.514,0.863-3.398,1.748
+                       c0.152,0.047,2.118,0.72,2.019,0.755c-0.904,0.318-2.293,0.419-3.087,0.941c-0.897,0.591-1.137,1.588-2.021,2.155
+                       c-2.244,1.442-5.093,1.399-7.461,2.574c-0.859,0.426-1.268,0.737-1.761,1.56c-0.279,0.465-0.136,1.04-0.674,1.36
+                       c-0.955,0.569-1.629,3.019-4.984,4.023c-3.359,1.005-1.651-1.757-5.733,0.589c-4.082,2.347-10.164,3.182-17.462,7.476
+                       c-3.014,1.773-6.336,2.955-9.634,4.08c-1.435,0.49-2.837,1.013-4.225,1.575c-0.522,0.21-1.206,0.264-1.621,0.694
+                       c-0.094,0.098-0.599,1.119-0.496,1.082c-0.866,0.306-1.713,0.43-2.384,1.009c-0.495,0.427-0.795,1.111-1.296,1.552
+                       c-0.633,0.557-1.689,0.879-2.154,1.606c-0.65,1.016,0.511,1.483-0.405,2.641c0.196-0.247,2.855-0.814,3.375-1.098
+                       c0.612-0.335,1.299-0.7,1.802-1.193c0.317-0.311,0.657-1.135,1.035-1.275c1.122-0.416,1.447,0.542,1.079,1.443
+                       c-0.335,0.818-1.16,1.142-1.94,1.364c-1.427,0.406-3.678-0.06-4.555,1.464c-0.355,0.615,0.276,0.972,0.223,1.532
+                       c-0.059,0.618-0.697,1.579-1.149,2.171c-0.515,0.675-1.601,1.21-1.541,2.16c0.129,2.034,2.92,0.344,3.755-0.152
+                       c2.556,0.08,0.464,0.142,0.593,1.512c0.128,1.368-0.053,1.704-0.053,1.704s2.168,1.602,5.214,2.38
+                       c3.046,0.777,3.461-1.599,6.819-2.603c3.358-1.005,3.874-1.16,8.523-2.55c4.649-1.391,7.104-3.532,11.417-5.104
+                       c4.314-1.572,2.377-2.4,2.377-2.4s-1.731,0.8-4.572,1.649c-2.841,0.85-2.738,0.256-2.738,0.256s-2.374-0.414-3.666-0.028
+                       s-2.117-0.492-2.349-1.267c-0.232-0.775,3.153-2.631,6.873-4.307c3.719-1.675,3.591-3.045,5.916-3.74
+                       c2.324-0.695,3.022-1.185,4.675-2.243c1.653-1.057,1.001-0.725,3.325-1.42c2.324-0.695,4.655-0.123,6.463-0.664
+                       c1.808-0.54,6.897-2.344,11.029-3.58c4.133-1.237,4.548-3.611,6.02-4.334c1.679-0.823,3.798-1.626,5.013-3.113
+                       c0.428-0.522,1.146-1.853,0.84-2.566c-0.248-0.578-2.15-0.819-2.149-0.807c-0.107-1.061,1.524-0.732,1.584-1.167
+                       c0.252-1.809-2.911,0.051-3.463,0.597c-0.806,0.797-1.251,2.111-2.207,2.729c-0.898,0.578-2.295,0.566-1.377-0.743
+                       c1.038-1.478,2.922-2.718,4.488-3.56c1.823-0.979,3.745-1.022,5.543-2.286c2.791-1.96,6.28-7.226,9.148-8.927
+                       c2.867-1.702,6.432-3.894,6.432-3.894C301.276,43.251,300.28,42.917,300.068,42.939z M262.578,71.542
+                       c-0.545,0.153-0.968,0.601-1.46,0.865c-1.281,0.688-2.788,1.542-4.298,1.529c-0.767-0.007-1.167-0.215-1.989-0.077
+                       c-0.722,0.12-1.502,0.414-2.196,0.656c-0.562,0.197-1.894,1.008-2.559,1.325c0.001,0.001,0.002,0.003,0.002,0.004
+                       c-0.001-0.001-0.001-0.003-0.002-0.004c-0.211,0.101-0.356,0.153-0.385,0.119c0.029,0.034,0.175-0.018,0.385-0.119
+                       c-0.67-1.203,1.521-1.555,2.118-2.212c1.821-2.006,4.798-3.386,7.319-4.403c1.571-0.634,3.072,0.384,4.543-0.215
+                       c0.42,0.729,0.724,1.659,0.863,2.516C264.126,71.697,263.409,71.308,262.578,71.542z"/>
+               <path fill="#F0ECE9" d="M208.312,89.787c-0.163,0.003-0.324-0.003-0.485-0.025c-0.3-0.041-0.643-0.281-0.904-0.303
+                       c-0.309-0.026-0.95-0.033-1.19,0.193c-0.225,0.211-0.508,0.963-0.453,1.174c0.224,0.877,1.484,0.495,2.032,0.274
+                       c0.15-0.06,0.418-0.06,0.537-0.172c0.121-0.113,0.051-0.426,0.141-0.514c0.306-0.302,0.857-0.51,1.285-0.69
+                       C208.957,89.739,208.633,89.78,208.312,89.787"/>
+               <path fill="none" stroke="#496B71" stroke-width="0.9816" d="M208.312,89.787c-0.163,0.003-0.324-0.003-0.485-0.025
+                       c-0.3-0.041-0.643-0.281-0.904-0.303c-0.309-0.026-0.95-0.033-1.19,0.193c-0.225,0.211-0.508,0.963-0.453,1.174
+                       c0.224,0.877,1.484,0.495,2.032,0.274c0.15-0.06,0.418-0.06,0.537-0.172c0.121-0.113,0.051-0.426,0.141-0.514
+                       c0.306-0.302,0.857-0.51,1.285-0.69C208.957,89.739,208.633,89.78,208.312,89.787z"/>
+       </g>
+       <g>
+               <path fill="#496B71" d="M131.841,48.232c-0.129-0.123-0.3-0.184-0.503-0.184c-0.673,0-1.475,0.654-2.453,1.998
+                       c-0.782,1.074-1.676,2.62-2.654,4.551c0.033-0.204,0.079-0.496,0.079-0.496l0.087-1.944l-0.011-1.619
+                       c0-0.711,0.097-1.353,0.289-1.91l0.076-0.301l-0.076-0.319l-0.164,0.04c-0.157,0-0.315,0.12-0.696,0.755l-1.596,2.933
+                       c-0.863,1.645-1.779,2.884-2.721,3.684c-0.924,0.786-1.919,1.186-2.952,1.186c-0.77,0-1.398-0.181-1.867-0.534
+                       c-0.461-0.345-0.681-0.777-0.681-1.319c0-0.683,0.267-1.25,0.826-1.731c0.556-0.483,1.246-0.728,2.051-0.728
+                       c0.538,0,0.968,0.123,1.276,0.365c0.298,0.234,0.446,0.538,0.446,0.931c0,0.446-0.196,0.815-0.596,1.129
+                       c-0.408,0.32-0.931,0.484-1.555,0.484l-0.579-0.08l-0.467-0.106l-0.083,0.06c-0.104,0.061-0.119,0.147-0.119,0.195
+                       c0,0.207,0.228,0.305,0.477,0.38l0.815,0.109c0.751,0,1.392-0.225,1.908-0.671c0.525-0.451,0.792-1.005,0.792-1.641
+                       c0-0.635-0.226-1.144-0.672-1.51c-0.432-0.36-1.03-0.54-1.781-0.54c-0.998,0-1.825,0.286-2.456,0.855
+                       c-0.638,0.574-0.961,1.321-0.961,2.222c0,0.811,0.303,1.471,0.898,1.961c0.585,0.484,1.363,0.729,2.313,0.729
+                       c0.962,0,1.911-0.315,2.82-0.938c0.898-0.615,1.727-1.506,2.462-2.658l1.148-2.068c0,0,0.164-0.307,0.354-0.672
+                       c-0.033,0.169-0.089,0.446-0.089,0.446l-0.114,1.452l0.102,1.348l0.101,1.298c0,0.515-0.07,0.957-0.213,1.317
+                       c-0.003,0.01-0.034,0.149-0.034,0.149l0.041,0.196c0.046,0.083,0.129,0.131,0.232,0.131c0.15,0,0.207,0,1.03-1.656l1.577-2.962
+                       c0.662-1.149,1.272-2.068,1.805-2.73c0.696-0.866,0.972-0.936,1.041-0.938c-0.003,0-0.004,0.003-0.004,0.004
+                       c0,0.029,0.074,0.15,0.074,0.15c0.109,0.247,0.303,0.387,0.547,0.387c0.172,0,0.33-0.075,0.454-0.215
+                       c0.123-0.136,0.181-0.298,0.181-0.483C132.044,48.525,131.974,48.356,131.841,48.232"/>
+               <g>
+                       <polygon fill="#FFFFFF" points="118.209,43.106 122.137,41.702 125.786,42.544 129.153,43.387 123.821,24.305                      "/>
+                       <polygon fill="#F17225" points="123.821,24.304 118.209,43.105 122.138,41.703 123.531,42.026                     "/>
+                       <polygon fill="none" stroke="#496B71" stroke-width="2.134" points="118.209,43.106 123.564,41.734 129.153,43.387
+                               123.821,24.305                  "/>
+               </g>
+       </g>
+       <path fill="#81B9D9" d="M187.992,327.717c0,0-0.505-0.757,1.261-2.019c1.767-1.261,2.019-1.261,2.523-2.27
+               c0.504-1.009,2.774-1.262,2.774-1.262s2.523-3.027,3.532-1.766c1.009,1.262,0.504,1.766,0.252,3.027
+               c-0.252,1.261-0.505,2.269-2.271,2.522c-1.766,0.252-2.018,1.009-2.774,0.252l-0.757-0.757c0,0,0.252-0.504-0.756,0
+               C190.766,325.951,188.749,328.222,187.992,327.717"/>
+       <path fill="#81B9D9" d="M186.731,327.212c0,0-1.766-0.505-2.019,0.757c-0.252,1.262-0.504,2.522-0.504,2.522
+               s-2.018,0.757-1.514,1.514c0.504,0.757,2.522-0.757,2.774,0.757c0.253,1.513,1.009,1.514,1.514,0.252
+               c0.505-1.262,0.505-3.28,0.505-3.28L186.731,327.212z"/>
+       <g>
+               <path fill="#496B71" d="M395.751,218.611v-4.232h0.862v3.513h2.142v0.719H395.751z"/>
+               <path fill="#496B71" d="M399.343,218.611v-4.267h0.862v4.267H399.343z"/>
+               <path fill="#496B71" d="M401.986,218.611v-3.545h-1.266v-0.722h3.391v0.722h-1.263v3.545H401.986z"/>
+               <path fill="#496B71" d="M405.627,218.611v-3.545h-1.266v-0.722h3.391v0.722h-1.263v3.545H405.627z"/>
+               <path fill="#496B71" d="M408.331,218.611v-4.232h0.862v3.513h2.142v0.719H408.331z"/>
+               <path fill="#496B71" d="M411.949,218.611v-4.267h3.164v0.722h-2.302v0.946h2.142v0.719h-2.142v1.161h2.384v0.719H411.949z"/>
+       </g>
+       <g>
+               <path fill="#496B71" d="M390.778,224.306v-3.545h-1.266v-0.722h3.391v0.722h-1.263v3.545H390.778z"/>
+               <path fill="#496B71" d="M393.461,224.306v-4.267h1.813c0.456,0,0.787,0.039,0.994,0.114c0.207,0.078,0.372,0.213,0.496,0.409
+                       c0.124,0.196,0.186,0.42,0.186,0.672c0,0.32-0.094,0.585-0.282,0.793c-0.188,0.21-0.47,0.341-0.844,0.395
+                       c0.186,0.109,0.34,0.228,0.461,0.358s0.285,0.361,0.49,0.693l0.521,0.832h-1.03l-0.623-0.929c-0.221-0.332-0.373-0.54-0.454-0.628
+                       c-0.082-0.085-0.168-0.146-0.259-0.177c-0.091-0.033-0.236-0.049-0.434-0.049h-0.175v1.781H393.461z M394.323,221.843h0.637
+                       c0.413,0,0.671-0.017,0.774-0.052s0.183-0.095,0.242-0.18c0.058-0.085,0.087-0.192,0.087-0.32c0-0.144-0.038-0.259-0.115-0.347
+                       c-0.077-0.088-0.185-0.145-0.325-0.168c-0.07-0.01-0.279-0.015-0.629-0.015h-0.672V221.843z"/>
+               <path fill="#496B71" d="M401.611,224.306h-0.937l-0.373-0.969h-1.706l-0.352,0.969h-0.914l1.662-4.267h0.911L401.611,224.306z
+                        M400.025,222.618l-0.588-1.583l-0.576,1.583H400.025z"/>
+               <path fill="#496B71" d="M402.716,224.306l-1.525-4.267h0.934l1.08,3.158l1.045-3.158h0.914l-1.528,4.267H402.716z"/>
+               <path fill="#496B71" d="M405.603,224.306v-4.267h3.164v0.722h-2.302v0.946h2.142v0.719h-2.142v1.161h2.384v0.719H405.603z"/>
+               <path fill="#496B71" d="M409.582,224.306v-4.267h1.812c0.456,0,0.788,0.039,0.995,0.114c0.206,0.078,0.371,0.213,0.495,0.409
+                       c0.124,0.196,0.186,0.42,0.186,0.672c0,0.32-0.093,0.585-0.281,0.793c-0.188,0.21-0.47,0.341-0.844,0.395
+                       c0.186,0.109,0.34,0.228,0.462,0.358c0.12,0.13,0.283,0.361,0.489,0.693l0.522,0.832h-1.03l-0.623-0.929
+                       c-0.221-0.332-0.373-0.54-0.454-0.628c-0.082-0.085-0.169-0.146-0.26-0.177c-0.091-0.033-0.235-0.049-0.433-0.049h-0.175v1.781
+                       H409.582z M410.443,221.843h0.636c0.413,0,0.671-0.017,0.774-0.052s0.184-0.095,0.243-0.18c0.058-0.085,0.087-0.192,0.087-0.32
+                       c0-0.144-0.039-0.259-0.114-0.347c-0.078-0.088-0.186-0.145-0.326-0.168c-0.07-0.01-0.279-0.015-0.629-0.015h-0.671V221.843z"/>
+               <path fill="#496B71" d="M413.665,222.917l0.838-0.081c0.05,0.281,0.153,0.488,0.307,0.62c0.155,0.132,0.363,0.198,0.625,0.198
+                       c0.277,0,0.486-0.058,0.627-0.177c0.141-0.116,0.212-0.254,0.212-0.411c0-0.101-0.03-0.186-0.089-0.258
+                       c-0.059-0.07-0.162-0.132-0.309-0.184c-0.101-0.035-0.331-0.097-0.69-0.186c-0.462-0.114-0.786-0.255-0.972-0.422
+                       c-0.262-0.235-0.393-0.521-0.393-0.859c0-0.217,0.061-0.421,0.185-0.609c0.122-0.19,0.3-0.334,0.532-0.433
+                       c0.232-0.099,0.512-0.148,0.84-0.148c0.536,0,0.939,0.117,1.209,0.352c0.272,0.235,0.413,0.548,0.427,0.94l-0.862,0.038
+                       c-0.037-0.219-0.116-0.376-0.237-0.473c-0.122-0.095-0.304-0.144-0.546-0.144c-0.25,0-0.446,0.051-0.588,0.154
+                       c-0.091,0.066-0.137,0.154-0.137,0.265c0,0.101,0.043,0.187,0.128,0.259c0.109,0.091,0.373,0.186,0.792,0.285
+                       c0.419,0.099,0.73,0.202,0.929,0.308c0.202,0.106,0.359,0.25,0.472,0.433c0.114,0.184,0.171,0.41,0.171,0.68
+                       c0,0.245-0.068,0.473-0.204,0.687c-0.136,0.213-0.328,0.373-0.576,0.476c-0.248,0.103-0.558,0.155-0.929,0.155
+                       c-0.539,0-0.954-0.124-1.243-0.375C413.894,223.759,413.721,223.395,413.665,222.917z"/>
+               <path fill="#496B71" d="M417.859,224.306v-4.267h3.164v0.722h-2.302v0.946h2.142v0.719h-2.142v1.161h2.384v0.719H417.859z"/>
+       </g>
+       <g>
+               <path fill="#496B71" d="M399.806,225.734h1.706c0.338,0,0.589,0.015,0.755,0.043c0.166,0.028,0.314,0.086,0.445,0.176
+                       s0.24,0.209,0.327,0.356c0.087,0.149,0.131,0.315,0.131,0.5c0,0.2-0.054,0.383-0.162,0.55s-0.254,0.292-0.438,0.375
+                       c0.26,0.076,0.46,0.205,0.6,0.387s0.21,0.397,0.21,0.643c0,0.194-0.045,0.383-0.135,0.566c-0.09,0.184-0.213,0.331-0.37,0.44
+                       s-0.349,0.177-0.578,0.202c-0.144,0.016-0.49,0.025-1.039,0.029h-1.452V225.734z M400.668,226.444v0.987h0.565
+                       c0.336,0,0.544-0.005,0.626-0.015c0.147-0.017,0.263-0.068,0.348-0.153c0.084-0.083,0.127-0.195,0.127-0.333
+                       c0-0.132-0.036-0.239-0.109-0.321c-0.073-0.082-0.181-0.133-0.325-0.15c-0.085-0.01-0.331-0.015-0.736-0.015H400.668z
+                        M400.668,228.141v1.141h0.798c0.31,0,0.507-0.009,0.591-0.026c0.128-0.023,0.232-0.08,0.313-0.171
+                       c0.081-0.089,0.121-0.211,0.121-0.362c0-0.128-0.031-0.237-0.093-0.326c-0.062-0.089-0.152-0.154-0.269-0.195
+                       s-0.372-0.061-0.764-0.061H400.668z"/>
+               <path fill="#496B71" d="M407.956,230.001h-0.937l-0.373-0.969h-1.706l-0.352,0.969h-0.914l1.662-4.267h0.911L407.956,230.001z
+                        M406.37,228.313l-0.588-1.583l-0.576,1.583H406.37z"/>
+               <path fill="#496B71" d="M408.986,230.001v-1.796l-1.563-2.471h1.01l1.005,1.688l0.984-1.688h0.993l-1.569,2.477v1.79H408.986z"/>
+       </g>
+       <g>
+               <path fill="#496B71" d="M419.509,182.151h1.706c0.338,0,0.59,0.014,0.755,0.043c0.167,0.027,0.314,0.086,0.446,0.176
+                       c0.13,0.089,0.24,0.209,0.327,0.356c0.087,0.149,0.131,0.315,0.131,0.5c0,0.2-0.054,0.383-0.161,0.55
+                       c-0.109,0.167-0.254,0.292-0.439,0.375c0.26,0.076,0.46,0.205,0.6,0.387s0.21,0.397,0.21,0.643c0,0.194-0.045,0.383-0.136,0.566
+                       c-0.089,0.184-0.213,0.331-0.369,0.44c-0.157,0.11-0.349,0.177-0.578,0.202c-0.144,0.016-0.49,0.025-1.039,0.029h-1.452V182.151z
+                        M420.371,182.861v0.987h0.565c0.336,0,0.544-0.005,0.626-0.015c0.147-0.017,0.263-0.068,0.348-0.153
+                       c0.083-0.083,0.126-0.195,0.126-0.333c0-0.132-0.037-0.239-0.109-0.321c-0.074-0.082-0.181-0.133-0.325-0.15
+                       c-0.085-0.01-0.331-0.015-0.736-0.015H420.371z M420.371,184.558v1.141h0.798c0.31,0,0.507-0.009,0.591-0.026
+                       c0.128-0.023,0.232-0.08,0.313-0.171c0.08-0.089,0.12-0.211,0.12-0.362c0-0.128-0.031-0.237-0.093-0.326
+                       c-0.062-0.089-0.152-0.154-0.27-0.195s-0.372-0.061-0.764-0.061H420.371z"/>
+               <path fill="#496B71" d="M423.785,186.418v-4.267h0.862v4.267H423.785z"/>
+               <path fill="#496B71" d="M427.453,184.849v-0.719h1.857v1.7c-0.18,0.175-0.442,0.329-0.785,0.462
+                       c-0.342,0.132-0.689,0.199-1.04,0.199c-0.446,0-0.835-0.093-1.167-0.28s-0.581-0.455-0.748-0.803s-0.25-0.728-0.25-1.137
+                       c0-0.444,0.093-0.839,0.279-1.185s0.459-0.61,0.818-0.795c0.274-0.142,0.614-0.212,1.022-0.212c0.53,0,0.943,0.112,1.242,0.333
+                       c0.297,0.223,0.489,0.53,0.574,0.922l-0.856,0.16c-0.06-0.21-0.173-0.375-0.34-0.496c-0.165-0.121-0.373-0.182-0.621-0.182
+                       c-0.376,0-0.676,0.119-0.898,0.358c-0.222,0.239-0.333,0.593-0.333,1.062c0,0.506,0.113,0.887,0.338,1.139
+                       c0.225,0.254,0.52,0.38,0.885,0.38c0.18,0,0.361-0.035,0.542-0.107c0.181-0.07,0.338-0.156,0.468-0.257v-0.541H427.453z"/>
+       </g>
+       <g>
+               <path fill="#496B71" d="M409.756,192.113v-3.545h-1.266v-0.722h3.391v0.722h-1.263v3.545H409.756z"/>
+               <path fill="#496B71" d="M412.44,192.113v-4.267h1.813c0.456,0,0.787,0.039,0.994,0.114c0.206,0.078,0.372,0.213,0.496,0.409
+                       c0.124,0.196,0.186,0.42,0.186,0.672c0,0.32-0.094,0.585-0.282,0.793c-0.188,0.21-0.47,0.341-0.844,0.395
+                       c0.186,0.109,0.34,0.228,0.462,0.358c0.12,0.13,0.284,0.361,0.49,0.693l0.521,0.832h-1.03l-0.623-0.929
+                       c-0.221-0.332-0.373-0.54-0.454-0.628c-0.082-0.085-0.168-0.146-0.259-0.177c-0.091-0.033-0.236-0.049-0.434-0.049h-0.175v1.781
+                       H412.44z M413.302,189.651h0.637c0.413,0,0.671-0.017,0.774-0.052s0.183-0.095,0.242-0.18c0.058-0.085,0.087-0.192,0.087-0.32
+                       c0-0.144-0.039-0.259-0.114-0.347c-0.078-0.088-0.185-0.145-0.325-0.168c-0.07-0.01-0.279-0.015-0.629-0.015h-0.672V189.651z"/>
+               <path fill="#496B71" d="M420.59,192.113h-0.937l-0.373-0.969h-1.706l-0.352,0.969h-0.914l1.662-4.267h0.911L420.59,192.113z
+                        M419.004,190.425l-0.588-1.583l-0.576,1.583H419.004z"/>
+               <path fill="#496B71" d="M421.694,192.113l-1.525-4.267h0.934l1.08,3.158l1.045-3.158h0.914l-1.528,4.267H421.694z"/>
+               <path fill="#496B71" d="M424.582,192.113v-4.267h3.164v0.722h-2.302v0.946h2.142v0.719h-2.142v1.161h2.384v0.719H424.582z"/>
+               <path fill="#496B71" d="M428.561,192.113v-4.267h1.813c0.456,0,0.787,0.039,0.994,0.114c0.206,0.078,0.372,0.213,0.496,0.409
+                       c0.124,0.196,0.186,0.42,0.186,0.672c0,0.32-0.094,0.585-0.282,0.793c-0.188,0.21-0.47,0.341-0.844,0.395
+                       c0.186,0.109,0.34,0.228,0.462,0.358c0.12,0.13,0.284,0.361,0.49,0.693l0.521,0.832h-1.03l-0.623-0.929
+                       c-0.221-0.332-0.373-0.54-0.454-0.628c-0.082-0.085-0.168-0.146-0.259-0.177c-0.091-0.033-0.236-0.049-0.434-0.049h-0.175v1.781
+                       H428.561z M429.422,189.651h0.637c0.413,0,0.671-0.017,0.774-0.052s0.183-0.095,0.242-0.18c0.058-0.085,0.087-0.192,0.087-0.32
+                       c0-0.144-0.039-0.259-0.114-0.347c-0.078-0.088-0.185-0.145-0.325-0.168c-0.07-0.01-0.279-0.015-0.629-0.015h-0.672V189.651z"/>
+               <path fill="#496B71" d="M432.644,190.725l0.838-0.081c0.05,0.281,0.153,0.488,0.307,0.62c0.155,0.132,0.363,0.198,0.625,0.198
+                       c0.277,0,0.486-0.058,0.627-0.177c0.141-0.116,0.212-0.254,0.212-0.411c0-0.101-0.03-0.186-0.089-0.258
+                       c-0.059-0.07-0.162-0.132-0.31-0.184c-0.101-0.035-0.331-0.097-0.69-0.186c-0.462-0.114-0.786-0.255-0.972-0.422
+                       c-0.262-0.235-0.393-0.521-0.393-0.859c0-0.217,0.061-0.421,0.185-0.609c0.122-0.19,0.3-0.334,0.532-0.433
+                       c0.232-0.099,0.512-0.148,0.84-0.148c0.536,0,0.939,0.117,1.209,0.352c0.272,0.235,0.413,0.548,0.427,0.94l-0.862,0.038
+                       c-0.037-0.219-0.116-0.376-0.237-0.473c-0.122-0.095-0.304-0.144-0.546-0.144c-0.25,0-0.446,0.051-0.588,0.154
+                       c-0.091,0.066-0.137,0.154-0.137,0.265c0,0.101,0.043,0.187,0.128,0.259c0.109,0.091,0.373,0.186,0.792,0.285
+                       c0.419,0.099,0.73,0.202,0.929,0.308c0.202,0.106,0.359,0.25,0.472,0.433c0.115,0.184,0.171,0.41,0.171,0.68
+                       c0,0.245-0.068,0.473-0.204,0.687s-0.328,0.373-0.576,0.476c-0.248,0.103-0.558,0.155-0.929,0.155
+                       c-0.539,0-0.954-0.124-1.243-0.375C432.873,191.566,432.701,191.202,432.644,190.725z"/>
+               <path fill="#496B71" d="M436.839,192.113v-4.267h3.164v0.722H437.7v0.946h2.142v0.719H437.7v1.161h2.384v0.719H436.839z"/>
+       </g>
+       <g>
+               <path fill="#496B71" d="M418.784,193.542h1.706c0.338,0,0.59,0.015,0.755,0.043c0.167,0.028,0.314,0.086,0.446,0.176
+                       c0.13,0.089,0.24,0.209,0.327,0.356c0.087,0.149,0.131,0.315,0.131,0.5c0,0.2-0.054,0.383-0.161,0.55
+                       c-0.109,0.167-0.254,0.292-0.439,0.375c0.26,0.076,0.46,0.205,0.6,0.387s0.21,0.397,0.21,0.643c0,0.194-0.045,0.383-0.136,0.566
+                       c-0.089,0.184-0.213,0.331-0.369,0.44c-0.157,0.11-0.349,0.177-0.578,0.202c-0.144,0.016-0.49,0.025-1.039,0.029h-1.452V193.542z
+                        M419.646,194.252v0.987h0.565c0.336,0,0.544-0.005,0.626-0.015c0.147-0.017,0.263-0.068,0.348-0.153
+                       c0.083-0.083,0.126-0.195,0.126-0.333c0-0.132-0.037-0.239-0.109-0.321c-0.074-0.082-0.181-0.133-0.325-0.15
+                       c-0.085-0.01-0.331-0.015-0.736-0.015H419.646z M419.646,195.949v1.141h0.798c0.31,0,0.507-0.009,0.591-0.026
+                       c0.128-0.023,0.232-0.08,0.313-0.171c0.08-0.089,0.12-0.211,0.12-0.362c0-0.128-0.031-0.237-0.093-0.326
+                       c-0.062-0.089-0.152-0.154-0.27-0.195c-0.117-0.041-0.372-0.061-0.764-0.061H419.646z"/>
+               <path fill="#496B71" d="M426.934,197.809h-0.937l-0.373-0.969h-1.706l-0.352,0.969h-0.914l1.662-4.267h0.911L426.934,197.809z
+                        M425.348,196.12l-0.588-1.583l-0.576,1.583H425.348z"/>
+               <path fill="#496B71" d="M427.964,197.809v-1.796l-1.563-2.471h1.01l1.004,1.688l0.984-1.688h0.993l-1.569,2.477v1.79H427.964z"/>
+       </g>
+       <g>
+               <path fill="#496B71" d="M335.749,315.625v-4.267h0.862v1.895l1.741-1.895h1.158l-1.607,1.662l1.694,2.605h-1.115l-1.173-2.003
+                       l-0.699,0.713v1.289H335.749z"/>
+               <path fill="#496B71" d="M340.042,315.625v-4.267h3.164v0.722h-2.302v0.946h2.142v0.719h-2.142v1.161h2.384v0.719H340.042z"/>
+               <path fill="#496B71" d="M344.624,315.625l-1.019-4.267h0.882l0.643,2.931l0.78-2.931h1.025l0.748,2.981l0.655-2.981h0.867
+                       l-1.036,4.267h-0.914l-0.85-3.19l-0.847,3.19H344.624z"/>
+               <path fill="#496B71" d="M349.645,315.625v-4.267h3.164v0.722h-2.302v0.946h2.142v0.719h-2.142v1.161h2.384v0.719H349.645z"/>
+               <path fill="#496B71" d="M353.621,315.625v-4.267h3.164v0.722h-2.302v0.946h2.142v0.719h-2.142v1.161h2.384v0.719H353.621z"/>
+               <path fill="#496B71" d="M357.605,315.625v-4.267h0.838l1.746,2.85v-2.85h0.8v4.267h-0.865l-1.72-2.783v2.783H357.605z"/>
+               <path fill="#496B71" d="M365.75,315.625h-0.937l-0.373-0.969h-1.706l-0.352,0.969h-0.914l1.662-4.267h0.911L365.75,315.625z
+                        M364.163,313.937l-0.588-1.583l-0.576,1.583H364.163z"/>
+               <path fill="#496B71" d="M366.812,315.625l-1.019-4.267h0.882l0.643,2.931l0.78-2.931h1.025l0.748,2.981l0.655-2.981h0.867
+                       l-1.036,4.267h-0.914l-0.85-3.19l-0.847,3.19H366.812z"/>
+       </g>
+       <g>
+               <path fill="#496B71" d="M347.491,317.053h1.706c0.338,0,0.589,0.015,0.755,0.043c0.166,0.028,0.314,0.086,0.445,0.176
+                       c0.131,0.089,0.24,0.209,0.327,0.356c0.087,0.149,0.131,0.315,0.131,0.5c0,0.2-0.054,0.383-0.162,0.55s-0.254,0.292-0.438,0.375
+                       c0.26,0.076,0.46,0.205,0.6,0.387s0.21,0.397,0.21,0.643c0,0.194-0.045,0.383-0.135,0.566c-0.09,0.184-0.213,0.331-0.37,0.44
+                       c-0.156,0.11-0.349,0.177-0.578,0.202c-0.144,0.016-0.49,0.025-1.039,0.029h-1.452V317.053z M348.352,317.763v0.987h0.565
+                       c0.336,0,0.544-0.005,0.626-0.015c0.147-0.017,0.263-0.068,0.348-0.153c0.084-0.083,0.127-0.195,0.127-0.333
+                       c0-0.132-0.036-0.239-0.109-0.321c-0.073-0.082-0.181-0.133-0.325-0.15c-0.085-0.01-0.331-0.015-0.736-0.015H348.352z
+                        M348.352,319.46v1.141h0.798c0.31,0,0.507-0.009,0.591-0.026c0.128-0.023,0.232-0.08,0.313-0.171
+                       c0.081-0.089,0.121-0.211,0.121-0.362c0-0.128-0.031-0.237-0.093-0.326c-0.062-0.089-0.152-0.154-0.269-0.195
+                       c-0.117-0.041-0.372-0.061-0.764-0.061H348.352z"/>
+               <path fill="#496B71" d="M355.641,321.32h-0.937l-0.373-0.969h-1.706l-0.352,0.969h-0.914l1.662-4.267h0.911L355.641,321.32z
+                        M354.054,319.632l-0.588-1.583l-0.576,1.583H354.054z"/>
+               <path fill="#496B71" d="M357.218,321.32v-1.796l-1.563-2.471h1.01l1.004,1.688l0.984-1.688h0.993l-1.569,2.477v1.79H357.218z"/>
+       </g>
+       <g>
+               <path fill="#496B71" d="M510.029,112.792v-4.267h1.383c0.524,0,0.865,0.021,1.025,0.064c0.245,0.064,0.449,0.203,0.614,0.418
+                       c0.165,0.214,0.247,0.491,0.247,0.831c0,0.262-0.048,0.482-0.143,0.661c-0.095,0.179-0.216,0.319-0.362,0.421
+                       c-0.147,0.102-0.296,0.169-0.447,0.202c-0.206,0.041-0.504,0.061-0.894,0.061h-0.562v1.61H510.029z M510.891,109.247v1.211h0.472
+                       c0.34,0,0.567-0.022,0.681-0.067c0.115-0.045,0.204-0.114,0.269-0.21c0.065-0.095,0.098-0.206,0.098-0.332
+                       c0-0.155-0.046-0.283-0.137-0.384c-0.091-0.101-0.207-0.164-0.346-0.189c-0.103-0.019-0.31-0.029-0.62-0.029H510.891z"/>
+               <path fill="#496B71" d="M513.83,110.685c0-0.435,0.065-0.799,0.195-1.094c0.097-0.217,0.229-0.412,0.398-0.585
+                       c0.167-0.173,0.351-0.301,0.551-0.384c0.266-0.113,0.572-0.169,0.92-0.169c0.629,0,1.131,0.195,1.51,0.585
+                       c0.376,0.39,0.566,0.932,0.566,1.627c0,0.689-0.187,1.228-0.562,1.617c-0.375,0.389-0.875,0.584-1.502,0.584
+                       c-0.635,0-1.139-0.194-1.514-0.581S513.83,111.364,513.83,110.685z M514.718,110.656c0,0.483,0.112,0.849,0.335,1.099
+                       s0.506,0.374,0.85,0.374s0.625-0.124,0.845-0.371c0.22-0.247,0.331-0.619,0.331-1.113c0-0.489-0.108-0.854-0.321-1.094
+                       c-0.215-0.241-0.5-0.361-0.855-0.361s-0.641,0.122-0.859,0.365C514.827,109.797,514.718,110.165,514.718,110.656z"/>
+               <path fill="#496B71" d="M518.616,112.792v-4.267h0.862v4.267H518.616z"/>
+               <path fill="#496B71" d="M520.307,112.792v-4.267h0.838l1.746,2.85v-2.85h0.8v4.267h-0.864l-1.72-2.783v2.783H520.307z"/>
+               <path fill="#496B71" d="M525.563,112.792v-3.545h-1.266v-0.722h3.391v0.722h-1.263v3.545H525.563z"/>
+               <path fill="#496B71" d="M529.767,112.792v-4.267h0.862v4.267H529.767z"/>
+               <path fill="#496B71" d="M531.231,111.404l0.838-0.081c0.05,0.281,0.153,0.488,0.307,0.62c0.155,0.132,0.363,0.198,0.625,0.198
+                       c0.278,0,0.486-0.059,0.627-0.176s0.212-0.255,0.212-0.412c0-0.101-0.03-0.187-0.089-0.258c-0.059-0.071-0.162-0.132-0.31-0.185
+                       c-0.101-0.035-0.331-0.097-0.69-0.186c-0.462-0.114-0.786-0.255-0.972-0.422c-0.262-0.235-0.393-0.521-0.393-0.859
+                       c0-0.217,0.061-0.421,0.185-0.61c0.122-0.189,0.3-0.333,0.532-0.432c0.232-0.099,0.512-0.148,0.84-0.148
+                       c0.536,0,0.939,0.117,1.209,0.352c0.272,0.235,0.413,0.548,0.427,0.94l-0.862,0.038c-0.037-0.219-0.116-0.377-0.237-0.473
+                       c-0.122-0.096-0.304-0.144-0.546-0.144c-0.25,0-0.446,0.051-0.588,0.154c-0.091,0.066-0.137,0.154-0.137,0.265
+                       c0,0.101,0.043,0.187,0.128,0.259c0.109,0.091,0.373,0.186,0.792,0.285c0.419,0.099,0.73,0.201,0.929,0.307
+                       c0.202,0.106,0.359,0.25,0.472,0.434c0.115,0.183,0.171,0.41,0.171,0.68c0,0.244-0.068,0.473-0.204,0.687
+                       c-0.136,0.213-0.328,0.372-0.576,0.476c-0.248,0.104-0.558,0.156-0.929,0.156c-0.539,0-0.954-0.125-1.243-0.374
+                       S531.287,111.881,531.231,111.404z"/>
+               <path fill="#496B71" d="M539.273,112.792h-0.937l-0.373-0.969h-1.706l-0.352,0.969h-0.914l1.662-4.267h0.911L539.273,112.792z
+                        M537.687,111.104l-0.588-1.583l-0.576,1.583H537.687z"/>
+               <path fill="#496B71" d="M539.733,108.525h1.706c0.338,0,0.59,0.014,0.755,0.042c0.167,0.028,0.314,0.087,0.446,0.176
+                       c0.13,0.089,0.24,0.208,0.327,0.357c0.087,0.148,0.131,0.315,0.131,0.499c0,0.2-0.054,0.383-0.161,0.55
+                       c-0.109,0.167-0.254,0.292-0.439,0.375c0.26,0.076,0.46,0.205,0.6,0.387s0.21,0.397,0.21,0.643c0,0.194-0.045,0.383-0.136,0.566
+                       c-0.089,0.183-0.213,0.33-0.369,0.44c-0.157,0.11-0.349,0.177-0.578,0.202c-0.144,0.016-0.49,0.025-1.039,0.029h-1.452V108.525z
+                        M540.594,109.235v0.987h0.565c0.336,0,0.544-0.005,0.626-0.015c0.147-0.017,0.263-0.068,0.348-0.153
+                       c0.083-0.084,0.126-0.196,0.126-0.333c0-0.132-0.037-0.239-0.109-0.322c-0.074-0.082-0.181-0.132-0.325-0.15
+                       c-0.085-0.01-0.331-0.015-0.736-0.015H540.594z M540.594,110.932v1.141h0.798c0.31,0,0.507-0.009,0.591-0.026
+                       c0.128-0.023,0.232-0.08,0.313-0.17c0.08-0.09,0.12-0.211,0.12-0.362c0-0.128-0.031-0.237-0.093-0.326
+                       c-0.062-0.089-0.152-0.154-0.27-0.195c-0.117-0.041-0.372-0.061-0.764-0.061H540.594z"/>
+               <path fill="#496B71" d="M544.035,112.792v-4.267h3.164v0.722h-2.302v0.946h2.142v0.719h-2.142v1.161h2.384v0.719H544.035z"/>
+               <path fill="#496B71" d="M548.034,112.792v-4.232h0.862v3.513h2.142v0.719H548.034z"/>
+               <path fill="#496B71" d="M551.675,112.792v-4.232h0.862v3.513h2.142v0.719H551.675z"/>
+               <path fill="#496B71" d="M555.293,112.792v-4.267h3.164v0.722h-2.302v0.946h2.142v0.719h-2.142v1.161h2.384v0.719H555.293z"/>
+       </g>
+       <g>
+               <path fill="#496B71" d="M570.996,85.528v-4.399h0.862v1.954l1.741-1.954h1.158l-1.607,1.713l1.694,2.686h-1.115l-1.173-2.065
+                       l-0.699,0.735v1.329H570.996z"/>
+               <path fill="#496B71" d="M575.236,85.528v-4.399h3.164v0.744h-2.302v0.975h2.142v0.741h-2.142v1.197h2.384v0.741H575.236z"/>
+               <path fill="#496B71" d="M579.763,85.528l-1.019-4.399h0.882l0.643,3.022l0.78-3.022h1.025l0.748,3.073l0.655-3.073h0.867
+                       l-1.036,4.399h-0.914l-0.85-3.289l-0.847,3.289H579.763z"/>
+               <path fill="#496B71" d="M584.73,85.528v-4.399h3.164v0.744h-2.302v0.975h2.142v0.741h-2.142v1.197h2.384v0.741H584.73z"/>
+               <path fill="#496B71" d="M588.653,85.528v-4.399h3.164v0.744h-2.302v0.975h2.142v0.741h-2.142v1.197h2.384v0.741H588.653z"/>
+               <path fill="#496B71" d="M592.584,85.528v-4.399h0.838l1.746,2.938v-2.938h0.8v4.399h-0.864l-1.72-2.868v2.868H592.584z"/>
+               <path fill="#496B71" d="M600.668,85.528h-0.937l-0.373-0.999h-1.706l-0.352,0.999h-0.914l1.662-4.399h0.911L600.668,85.528z
+                        M599.082,83.788l-0.588-1.632l-0.576,1.632H599.082z"/>
+               <path fill="#496B71" d="M601.456,85.528l-1.019-4.399h0.882l0.643,3.022l0.78-3.022h1.025l0.748,3.073l0.655-3.073h0.867
+                       l-1.036,4.399h-0.914l-0.85-3.289l-0.847,3.289H601.456z"/>
+               <path fill="#496B71" d="M608.026,85.528v-4.399h1.383c0.524,0,0.865,0.022,1.025,0.066c0.245,0.066,0.449,0.21,0.614,0.431
+                       c0.165,0.221,0.247,0.506,0.247,0.857c0,0.27-0.048,0.497-0.143,0.681c-0.095,0.184-0.216,0.328-0.362,0.434
+                       c-0.147,0.105-0.296,0.174-0.447,0.208c-0.206,0.042-0.504,0.063-0.894,0.063h-0.562v1.66H608.026z M608.888,81.874v1.248h0.472
+                       c0.34,0,0.567-0.023,0.681-0.069c0.115-0.046,0.204-0.118,0.269-0.216c0.065-0.098,0.098-0.212,0.098-0.342
+                       c0-0.16-0.046-0.292-0.137-0.396c-0.091-0.104-0.207-0.169-0.346-0.195c-0.103-0.02-0.31-0.03-0.62-0.03H608.888z"/>
+               <path fill="#496B71" d="M611.775,83.356c0-0.448,0.065-0.824,0.195-1.128c0.097-0.224,0.229-0.425,0.398-0.603
+                       c0.167-0.178,0.351-0.31,0.551-0.396c0.266-0.116,0.572-0.174,0.92-0.174c0.629,0,1.131,0.201,1.51,0.603
+                       c0.376,0.402,0.566,0.961,0.566,1.677c0,0.71-0.187,1.266-0.562,1.667c-0.375,0.401-0.875,0.602-1.502,0.602
+                       c-0.635,0-1.139-0.2-1.514-0.599C611.962,84.606,611.775,84.056,611.775,83.356z M612.662,83.326c0,0.498,0.112,0.876,0.335,1.133
+                       c0.223,0.257,0.506,0.386,0.85,0.386c0.344,0,0.625-0.128,0.845-0.383s0.331-0.637,0.331-1.148c0-0.504-0.108-0.88-0.321-1.128
+                       c-0.215-0.248-0.5-0.372-0.855-0.372s-0.641,0.126-0.859,0.376C612.771,82.441,612.662,82.82,612.662,83.326z"/>
+               <path fill="#496B71" d="M616.505,85.528v-4.399h0.862v4.399H616.505z"/>
+               <path fill="#496B71" d="M618.143,85.528v-4.399h0.838l1.746,2.938v-2.938h0.8v4.399h-0.864l-1.72-2.868v2.868H618.143z"/>
+               <path fill="#496B71" d="M623.341,85.528v-3.655h-1.266v-0.744h3.391v0.744h-1.263v3.655H623.341z"/>
+       </g>
+       <g>
+               <g>
+                       <path fill="#496B71" d="M446.834,32.871h-0.937l-0.373-0.969h-1.706l-0.352,0.969h-0.914l1.662-4.267h0.911L446.834,32.871z
+                                M445.248,31.183l-0.588-1.583l-0.576,1.583H445.248z"/>
+                       <path fill="#496B71" d="M449.276,31.302v-0.719h1.857v1.7c-0.18,0.175-0.442,0.328-0.785,0.461s-0.689,0.199-1.04,0.199
+                               c-0.446,0-0.835-0.094-1.167-0.281c-0.332-0.187-0.581-0.455-0.748-0.803s-0.25-0.727-0.25-1.137
+                               c0-0.444,0.093-0.839,0.279-1.185c0.186-0.345,0.459-0.61,0.818-0.795c0.274-0.142,0.614-0.212,1.022-0.212
+                               c0.53,0,0.943,0.111,1.242,0.333c0.297,0.222,0.489,0.529,0.574,0.921l-0.856,0.16c-0.06-0.21-0.173-0.375-0.34-0.496
+                               c-0.165-0.121-0.373-0.182-0.621-0.182c-0.376,0-0.676,0.119-0.898,0.358c-0.222,0.239-0.333,0.593-0.333,1.062
+                               c0,0.506,0.113,0.886,0.338,1.14c0.225,0.253,0.52,0.38,0.885,0.38c0.18,0,0.361-0.035,0.542-0.106
+                               c0.181-0.071,0.338-0.157,0.468-0.258v-0.541H449.276z"/>
+                       <path fill="#496B71" d="M455.776,32.871h-0.937l-0.373-0.969h-1.706l-0.352,0.969h-0.914l1.662-4.267h0.911L455.776,32.871z
+                                M454.189,31.183l-0.588-1.583l-0.576,1.583H454.189z"/>
+                       <path fill="#496B71" d="M456.752,32.871v-3.545h-1.266v-0.722h3.391v0.722h-1.263v3.545H456.752z"/>
+                       <path fill="#496B71" d="M459.432,32.871v-4.267h3.164v0.722h-2.302v0.946h2.142v0.719h-2.142v1.161h2.384v0.719H459.432z"/>
+                       <path fill="#496B71" d="M440.948,40.025v-4.267h0.862v1.679h1.688v-1.679h0.862v4.267h-0.862v-1.866h-1.688v1.866H440.948z"/>
+                       <path fill="#496B71" d="M449.097,40.025h-0.937l-0.373-0.969h-1.706l-0.352,0.969h-0.914l1.662-4.267h0.911L449.097,40.025z
+                                M447.511,38.336l-0.588-1.583l-0.576,1.583H447.511z"/>
+                       <path fill="#496B71" d="M449.557,40.025v-4.267h1.813c0.456,0,0.787,0.038,0.995,0.115c0.206,0.077,0.372,0.213,0.496,0.409
+                               c0.124,0.196,0.186,0.42,0.186,0.672c0,0.32-0.094,0.585-0.282,0.793c-0.188,0.209-0.47,0.34-0.844,0.394
+                               c0.186,0.109,0.34,0.228,0.462,0.358c0.12,0.13,0.284,0.361,0.49,0.693l0.521,0.832h-1.03l-0.623-0.929
+                               c-0.221-0.332-0.373-0.541-0.454-0.627c-0.082-0.086-0.168-0.146-0.259-0.178c-0.091-0.032-0.236-0.048-0.434-0.048h-0.175v1.781
+                               H449.557z M450.419,37.562h0.637c0.413,0,0.671-0.017,0.774-0.052s0.183-0.095,0.242-0.18c0.058-0.085,0.087-0.192,0.087-0.32
+                               c0-0.144-0.039-0.26-0.115-0.348c-0.078-0.088-0.185-0.144-0.325-0.167c-0.07-0.01-0.279-0.015-0.629-0.015h-0.672V37.562z"/>
+                       <path fill="#496B71" d="M453.862,35.757h1.706c0.338,0,0.59,0.014,0.755,0.042c0.167,0.028,0.314,0.087,0.446,0.176
+                               c0.13,0.089,0.24,0.208,0.327,0.357c0.087,0.148,0.131,0.315,0.131,0.499c0,0.2-0.054,0.383-0.161,0.55
+                               c-0.109,0.167-0.254,0.292-0.439,0.375c0.26,0.076,0.46,0.205,0.6,0.387c0.14,0.182,0.21,0.397,0.21,0.643
+                               c0,0.194-0.045,0.383-0.136,0.566c-0.089,0.183-0.213,0.33-0.369,0.44c-0.157,0.11-0.349,0.177-0.578,0.202
+                               c-0.144,0.016-0.49,0.025-1.039,0.029h-1.452V35.757z M454.724,36.468v0.987h0.565c0.336,0,0.544-0.005,0.626-0.015
+                               c0.147-0.017,0.263-0.068,0.348-0.153c0.083-0.084,0.126-0.196,0.126-0.333c0-0.132-0.037-0.239-0.109-0.322
+                               c-0.074-0.082-0.181-0.132-0.325-0.15c-0.085-0.01-0.331-0.015-0.736-0.015H454.724z M454.724,38.165v1.141h0.798
+                               c0.31,0,0.507-0.009,0.591-0.026c0.128-0.023,0.232-0.08,0.313-0.17c0.08-0.09,0.12-0.211,0.12-0.362
+                               c0-0.128-0.031-0.237-0.093-0.326s-0.152-0.154-0.27-0.195c-0.117-0.041-0.372-0.061-0.764-0.061H454.724z"/>
+                       <path fill="#496B71" d="M457.99,37.917c0-0.435,0.065-0.799,0.195-1.094c0.097-0.217,0.229-0.412,0.398-0.585
+                               c0.167-0.173,0.351-0.301,0.551-0.384c0.266-0.113,0.572-0.169,0.92-0.169c0.629,0,1.131,0.195,1.51,0.585
+                               c0.376,0.39,0.566,0.932,0.566,1.627c0,0.689-0.187,1.228-0.562,1.617c-0.375,0.389-0.875,0.584-1.502,0.584
+                               c-0.635,0-1.139-0.194-1.514-0.581C458.177,39.13,457.99,38.596,457.99,37.917z M458.877,37.888c0,0.483,0.112,0.849,0.335,1.099
+                               c0.223,0.249,0.506,0.374,0.85,0.374c0.343,0,0.625-0.124,0.845-0.371s0.331-0.619,0.331-1.113c0-0.489-0.108-0.854-0.321-1.094
+                               c-0.215-0.241-0.5-0.361-0.855-0.361c-0.355,0-0.641,0.122-0.859,0.365C458.986,37.03,458.877,37.397,458.877,37.888z"/>
+                       <path fill="#496B71" d="M462.804,40.025v-4.267h1.813c0.456,0,0.787,0.038,0.994,0.115c0.206,0.077,0.372,0.213,0.496,0.409
+                               c0.124,0.196,0.186,0.42,0.186,0.672c0,0.32-0.094,0.585-0.282,0.793s-0.47,0.34-0.844,0.394c0.186,0.109,0.34,0.228,0.462,0.358
+                               c0.12,0.13,0.284,0.361,0.49,0.693l0.521,0.832h-1.03l-0.623-0.929c-0.221-0.332-0.373-0.541-0.454-0.627
+                               c-0.082-0.086-0.168-0.146-0.259-0.178c-0.091-0.032-0.236-0.048-0.434-0.048h-0.175v1.781H462.804z M463.666,37.562h0.637
+                               c0.413,0,0.671-0.017,0.774-0.052c0.103-0.035,0.183-0.095,0.242-0.18c0.058-0.085,0.087-0.192,0.087-0.32
+                               c0-0.144-0.039-0.26-0.114-0.348c-0.078-0.088-0.185-0.144-0.325-0.167c-0.07-0.01-0.279-0.015-0.629-0.015h-0.672V37.562z"/>
+               </g>
+       </g>
+       <g>
+               <path fill="#496B71" d="M306.67,83.438v-4.267h2.925v0.722h-2.064v1.01h1.781v0.722h-1.781v1.813H306.67z"/>
+               <path fill="#496B71" d="M310.279,83.438v-4.267h0.862v4.267H310.279z"/>
+               <path fill="#496B71" d="M313.05,83.438l-1.525-4.267h0.934l1.08,3.158l1.045-3.158h0.914l-1.528,4.267H313.05z"/>
+               <path fill="#496B71" d="M315.938,83.438v-4.267h3.164v0.722h-2.302v0.946h2.142v0.719h-2.142v1.161h2.384v0.719H315.938z"/>
+               <path fill="#496B71" d="M321.558,83.438v-4.267h1.289l0.774,2.911l0.766-2.911h1.292v4.267h-0.8v-3.359l-0.847,3.359h-0.83
+                       l-0.844-3.359v3.359H321.558z"/>
+               <path fill="#496B71" d="M326.51,83.438v-4.267h0.862v4.267H326.51z"/>
+               <path fill="#496B71" d="M328.215,83.438v-4.232h0.862v3.513h2.142v0.719H328.215z"/>
+               <path fill="#496B71" d="M331.833,83.438v-4.267h3.164v0.722h-2.302v0.946h2.142v0.719h-2.142v1.161h2.384v0.719H331.833z"/>
+               <path fill="#496B71" d="M337.465,83.438v-4.267h1.383c0.524,0,0.865,0.021,1.025,0.064c0.245,0.064,0.449,0.203,0.614,0.418
+                       c0.165,0.214,0.247,0.491,0.247,0.831c0,0.262-0.048,0.482-0.143,0.661c-0.095,0.179-0.216,0.319-0.362,0.421
+                       c-0.147,0.102-0.295,0.169-0.447,0.202c-0.206,0.041-0.504,0.061-0.894,0.061h-0.562v1.61H337.465z M338.327,79.892v1.211h0.472
+                       c0.34,0,0.567-0.022,0.681-0.067c0.114-0.045,0.204-0.114,0.269-0.21c0.065-0.095,0.098-0.206,0.098-0.332
+                       c0-0.155-0.046-0.283-0.137-0.384c-0.091-0.101-0.207-0.164-0.346-0.189c-0.103-0.019-0.31-0.029-0.62-0.029H338.327z"/>
+               <path fill="#496B71" d="M341.267,81.33c0-0.435,0.065-0.799,0.195-1.094c0.097-0.217,0.229-0.412,0.397-0.585
+                       c0.168-0.173,0.352-0.301,0.552-0.384c0.266-0.113,0.572-0.169,0.92-0.169c0.629,0,1.132,0.195,1.509,0.585
+                       c0.377,0.39,0.566,0.932,0.566,1.627c0,0.689-0.187,1.228-0.562,1.617c-0.375,0.389-0.875,0.584-1.502,0.584
+                       c-0.635,0-1.139-0.194-1.514-0.581S341.267,82.009,341.267,81.33z M342.155,81.301c0,0.483,0.112,0.849,0.335,1.099
+                       c0.223,0.249,0.506,0.374,0.85,0.374c0.343,0,0.625-0.124,0.846-0.371c0.22-0.247,0.33-0.619,0.33-1.113
+                       c0-0.489-0.107-0.854-0.322-1.094c-0.214-0.241-0.499-0.361-0.854-0.361s-0.641,0.122-0.859,0.365
+                       C342.263,80.443,342.155,80.81,342.155,81.301z"/>
+               <path fill="#496B71" d="M346.052,83.438v-4.267h0.862v4.267H346.052z"/>
+               <path fill="#496B71" d="M347.743,83.438v-4.267h0.838l1.746,2.85v-2.85h0.8v4.267h-0.864l-1.72-2.783v2.783H347.743z"/>
+               <path fill="#496B71" d="M353,83.438v-3.545h-1.266v-0.722h3.391v0.722h-1.263v3.545H353z"/>
+       </g>
+       <g>
+               <g>
+                       <path fill="#496B71" d="M215.331,74.282l-2.539-5.092l1.028-0.513l2.539,5.092L215.331,74.282z"/>
+                       <path fill="#496B71" d="M216.252,71.755l0.952-0.597c0.228,0.307,0.473,0.492,0.735,0.557s0.55,0.02,0.863-0.136
+                               c0.331-0.165,0.545-0.359,0.644-0.583c0.098-0.223,0.1-0.429,0.007-0.618c-0.06-0.12-0.146-0.205-0.26-0.255
+                               c-0.113-0.048-0.273-0.06-0.48-0.036c-0.141,0.018-0.452,0.081-0.934,0.188c-0.619,0.139-1.09,0.163-1.411,0.075
+                               c-0.452-0.125-0.779-0.388-0.979-0.791c-0.13-0.26-0.177-0.538-0.143-0.838c0.034-0.299,0.161-0.577,0.378-0.832
+                               c0.218-0.257,0.522-0.482,0.914-0.677c0.639-0.319,1.19-0.419,1.652-0.299s0.819,0.408,1.068,0.867l-1.006,0.558
+                               c-0.174-0.24-0.362-0.381-0.564-0.424c-0.202-0.042-0.447,0.009-0.736,0.153c-0.299,0.148-0.503,0.327-0.61,0.534
+                               c-0.07,0.133-0.072,0.265-0.006,0.397c0.06,0.121,0.162,0.198,0.307,0.233c0.184,0.044,0.556,0,1.115-0.13
+                               c0.559-0.131,0.991-0.193,1.292-0.187c0.303,0.006,0.576,0.085,0.821,0.237c0.245,0.151,0.447,0.388,0.607,0.71
+                               c0.146,0.291,0.201,0.605,0.166,0.94c-0.036,0.336-0.17,0.64-0.405,0.912c-0.235,0.272-0.573,0.518-1.015,0.738
+                               c-0.644,0.321-1.213,0.419-1.706,0.293C217.025,72.62,216.603,72.291,216.252,71.755z"/>
+                       <path fill="#496B71" d="M222.11,70.901l-2.518-5.05l1.028-0.513l2.09,4.192l2.557-1.274l0.428,0.858L222.11,70.901z"/>
+                       <path fill="#496B71" d="M226.428,68.749l-2.539-5.092l3.775-1.883l0.43,0.862l-2.747,1.37l0.563,1.129l2.556-1.275l0.428,0.858
+                               l-2.556,1.275l0.691,1.385l2.844-1.418l0.428,0.858L226.428,68.749z"/>
+                       <path fill="#496B71" d="M233.151,65.396l-2.539-5.092l2.164-1.079c0.544-0.271,0.963-0.422,1.255-0.454
+                               c0.293-0.032,0.571,0.033,0.836,0.193c0.264,0.16,0.472,0.39,0.622,0.692c0.19,0.381,0.235,0.752,0.135,1.114
+                               c-0.1,0.361-0.358,0.685-0.772,0.973c0.287,0.019,0.541,0.069,0.764,0.152c0.222,0.084,0.554,0.261,0.997,0.535l1.117,0.684
+                               l-1.229,0.613l-1.296-0.737c-0.461-0.264-0.766-0.423-0.915-0.478c-0.149-0.055-0.287-0.074-0.415-0.057
+                               c-0.128,0.016-0.31,0.082-0.546,0.2l-0.209,0.104l1.06,2.126L233.151,65.396z M232.715,61.945l0.761-0.379
+                               c0.493-0.246,0.79-0.421,0.892-0.524c0.103-0.103,0.163-0.223,0.181-0.359c0.019-0.136-0.011-0.281-0.086-0.434
+                               c-0.085-0.172-0.2-0.287-0.344-0.347c-0.144-0.059-0.306-0.062-0.488-0.006c-0.088,0.03-0.342,0.148-0.758,0.356l-0.802,0.4
+                               L232.715,61.945z"/>
+                       <path fill="#496B71" d="M236.822,60.426c-0.259-0.519-0.398-0.994-0.418-1.422c-0.014-0.317,0.028-0.629,0.126-0.935
+                               c0.098-0.305,0.241-0.568,0.43-0.786c0.25-0.293,0.582-0.542,0.997-0.75c0.75-0.374,1.467-0.44,2.149-0.2
+                               c0.682,0.241,1.23,0.776,1.643,1.604c0.41,0.823,0.507,1.577,0.292,2.264c-0.215,0.688-0.697,1.218-1.445,1.59
+                               c-0.757,0.377-1.474,0.447-2.151,0.208C237.767,61.76,237.226,61.235,236.822,60.426z M237.864,59.863
+                               c0.288,0.576,0.638,0.946,1.053,1.111c0.414,0.165,0.827,0.145,1.237-0.059c0.409-0.205,0.672-0.52,0.788-0.945
+                               c0.115-0.427,0.026-0.935-0.268-1.526c-0.291-0.583-0.636-0.954-1.035-1.115c-0.4-0.16-0.811-0.133-1.234,0.079
+                               c-0.424,0.211-0.693,0.526-0.807,0.946C237.483,58.775,237.572,59.277,237.864,59.863z"/>
+                       <path fill="#496B71" d="M245.154,59.41l-1.069-2.142l-3.336-2.02l1.205-0.601l2.203,1.418l0.169-2.601l1.185-0.59l-0.398,3.89
+                               l1.065,2.135L245.154,59.41z"/>
+                       <path fill="#496B71" d="M252.505,55.745l-1.118,0.557l-1.021-0.935l-2.036,1.015l0.157,1.366l-1.091,0.544l-0.556-6.08
+                               l1.087-0.542L252.505,55.745z M249.608,54.674l-1.644-1.539l0.254,2.232L249.608,54.674z"/>
+                       <path fill="#496B71" d="M253.079,55.459l-2.519-5.05l1.028-0.512l2.09,4.192l2.556-1.275l0.428,0.858L253.079,55.459z"/>
+                       <path fill="#496B71" d="M257.395,53.306l-2.539-5.092l3.775-1.883l0.43,0.862l-2.747,1.37l0.563,1.129l2.556-1.274l0.428,0.858
+                               l-2.556,1.274l0.691,1.385l2.844-1.418l0.428,0.858L257.395,53.306z"/>
+               </g>
+       </g>
+       <g>
+               <path fill="#496B71" d="M292.9,54.912v-4.267h1.813c0.456,0,0.787,0.038,0.994,0.115s0.372,0.213,0.496,0.409
+                       c0.124,0.196,0.186,0.42,0.186,0.672c0,0.32-0.094,0.585-0.282,0.793c-0.188,0.209-0.47,0.34-0.844,0.394
+                       c0.186,0.109,0.34,0.228,0.461,0.358c0.121,0.13,0.285,0.361,0.49,0.693l0.521,0.832h-1.03l-0.623-0.929
+                       c-0.221-0.332-0.373-0.541-0.454-0.627c-0.082-0.086-0.168-0.146-0.259-0.178c-0.091-0.032-0.236-0.048-0.434-0.048h-0.175v1.781
+                       H292.9z M293.761,52.449h0.637c0.413,0,0.671-0.017,0.774-0.052s0.183-0.095,0.242-0.18c0.058-0.085,0.087-0.192,0.087-0.32
+                       c0-0.144-0.038-0.26-0.115-0.348c-0.077-0.088-0.185-0.144-0.325-0.167c-0.07-0.01-0.279-0.015-0.629-0.015h-0.672V52.449z"/>
+               <path fill="#496B71" d="M297.027,52.804c0-0.435,0.065-0.799,0.195-1.094c0.097-0.217,0.229-0.412,0.397-0.585
+                       s0.352-0.301,0.552-0.384c0.266-0.113,0.572-0.169,0.92-0.169c0.629,0,1.132,0.195,1.509,0.585s0.566,0.932,0.566,1.627
+                       c0,0.689-0.187,1.228-0.562,1.617c-0.375,0.389-0.875,0.584-1.502,0.584c-0.635,0-1.139-0.194-1.514-0.581
+                       S297.027,53.484,297.027,52.804z M297.915,52.775c0,0.483,0.112,0.849,0.335,1.099c0.223,0.249,0.506,0.374,0.85,0.374
+                       c0.343,0,0.625-0.124,0.846-0.371s0.33-0.619,0.33-1.113c0-0.489-0.107-0.854-0.322-1.094c-0.214-0.241-0.499-0.361-0.854-0.361
+                       s-0.641,0.122-0.859,0.365C298.023,51.917,297.915,52.284,297.915,52.775z"/>
+               <path fill="#496B71" d="M304.569,53.343l0.835,0.265c-0.128,0.466-0.341,0.812-0.639,1.038c-0.298,0.226-0.676,0.339-1.134,0.339
+                       c-0.567,0-1.032-0.194-1.397-0.581s-0.547-0.916-0.547-1.588c0-0.71,0.183-1.262,0.55-1.655s0.849-0.589,1.447-0.589
+                       c0.522,0,0.946,0.154,1.272,0.463c0.194,0.182,0.34,0.444,0.437,0.786l-0.853,0.204c-0.05-0.221-0.156-0.396-0.316-0.524
+                       c-0.16-0.128-0.355-0.192-0.584-0.192c-0.316,0-0.573,0.114-0.77,0.341s-0.295,0.595-0.295,1.103c0,0.539,0.097,0.924,0.291,1.153
+                       c0.194,0.229,0.446,0.343,0.757,0.343c0.229,0,0.426-0.073,0.591-0.218C304.378,53.884,304.497,53.655,304.569,53.343z"/>
+               <path fill="#496B71" d="M306.155,54.912v-4.267h0.862v1.895l1.741-1.895h1.158l-1.607,1.662l1.694,2.605h-1.115l-1.173-2.003
+                       l-0.699,0.713v1.289H306.155z"/>
+               <path fill="#496B71" d="M312.107,54.912v-4.267h0.862v1.679h1.688v-1.679h0.862v4.267h-0.862v-1.866h-1.688v1.866H312.107z"/>
+               <path fill="#496B71" d="M320.257,54.912h-0.937l-0.373-0.969h-1.706l-0.352,0.969h-0.914l1.662-4.267h0.911L320.257,54.912z
+                        M318.671,53.224l-0.588-1.583l-0.576,1.583H318.671z"/>
+               <path fill="#496B71" d="M320.717,54.912v-4.267h1.813c0.456,0,0.787,0.038,0.994,0.115c0.207,0.077,0.372,0.213,0.496,0.409
+                       c0.124,0.196,0.186,0.42,0.186,0.672c0,0.32-0.094,0.585-0.282,0.793s-0.47,0.34-0.844,0.394c0.186,0.109,0.34,0.228,0.461,0.358
+                       c0.121,0.13,0.285,0.361,0.49,0.693l0.521,0.832h-1.03l-0.623-0.929c-0.221-0.332-0.373-0.541-0.454-0.627
+                       c-0.081-0.086-0.168-0.146-0.259-0.178c-0.091-0.032-0.236-0.048-0.434-0.048h-0.175v1.781H320.717z M321.579,52.449h0.637
+                       c0.413,0,0.671-0.017,0.774-0.052s0.183-0.095,0.242-0.18c0.058-0.085,0.087-0.192,0.087-0.32c0-0.144-0.038-0.26-0.115-0.348
+                       s-0.185-0.144-0.325-0.167c-0.07-0.01-0.279-0.015-0.629-0.015h-0.672V52.449z"/>
+               <path fill="#496B71" d="M325.022,50.645h1.706c0.338,0,0.589,0.014,0.755,0.042c0.166,0.028,0.314,0.087,0.445,0.176
+                       c0.131,0.089,0.24,0.208,0.327,0.357c0.087,0.148,0.131,0.315,0.131,0.499c0,0.2-0.054,0.383-0.162,0.55
+                       c-0.108,0.167-0.254,0.292-0.438,0.375c0.26,0.076,0.46,0.205,0.6,0.387s0.21,0.397,0.21,0.643c0,0.194-0.045,0.383-0.135,0.566
+                       c-0.09,0.183-0.213,0.33-0.37,0.44c-0.156,0.11-0.349,0.177-0.578,0.202c-0.144,0.016-0.49,0.025-1.039,0.029h-1.452V50.645z
+                        M325.884,51.355v0.987h0.565c0.336,0,0.544-0.005,0.626-0.015c0.147-0.017,0.263-0.068,0.348-0.153
+                       c0.084-0.084,0.127-0.196,0.127-0.333c0-0.132-0.036-0.239-0.109-0.322c-0.073-0.082-0.181-0.132-0.325-0.15
+                       c-0.085-0.01-0.331-0.015-0.736-0.015H325.884z M325.884,53.052v1.141h0.798c0.31,0,0.507-0.009,0.591-0.026
+                       c0.128-0.023,0.232-0.08,0.313-0.17c0.081-0.09,0.121-0.211,0.121-0.362c0-0.128-0.031-0.237-0.093-0.326
+                       c-0.062-0.089-0.152-0.154-0.269-0.195c-0.117-0.041-0.372-0.061-0.764-0.061H325.884z"/>
+               <path fill="#496B71" d="M329.15,52.804c0-0.435,0.065-0.799,0.195-1.094c0.097-0.217,0.229-0.412,0.397-0.585
+                       c0.168-0.173,0.352-0.301,0.552-0.384c0.266-0.113,0.572-0.169,0.92-0.169c0.629,0,1.132,0.195,1.509,0.585
+                       c0.377,0.39,0.566,0.932,0.566,1.627c0,0.689-0.187,1.228-0.562,1.617c-0.374,0.389-0.875,0.584-1.502,0.584
+                       c-0.635,0-1.139-0.194-1.514-0.581S329.15,53.484,329.15,52.804z M330.037,52.775c0,0.483,0.112,0.849,0.335,1.099
+                       c0.223,0.249,0.506,0.374,0.85,0.374c0.343,0,0.625-0.124,0.846-0.371s0.33-0.619,0.33-1.113c0-0.489-0.107-0.854-0.322-1.094
+                       c-0.214-0.241-0.499-0.361-0.854-0.361s-0.641,0.122-0.859,0.365C330.146,51.917,330.037,52.284,330.037,52.775z"/>
+               <path fill="#496B71" d="M333.964,54.912v-4.267h1.813c0.456,0,0.787,0.038,0.994,0.115s0.372,0.213,0.496,0.409
+                       c0.124,0.196,0.186,0.42,0.186,0.672c0,0.32-0.094,0.585-0.282,0.793c-0.188,0.209-0.47,0.34-0.844,0.394
+                       c0.186,0.109,0.34,0.228,0.461,0.358c0.121,0.13,0.285,0.361,0.49,0.693l0.521,0.832h-1.03l-0.623-0.929
+                       c-0.221-0.332-0.373-0.541-0.454-0.627c-0.081-0.086-0.168-0.146-0.259-0.178c-0.091-0.032-0.236-0.048-0.434-0.048h-0.175v1.781
+                       H333.964z M334.825,52.449h0.637c0.413,0,0.671-0.017,0.774-0.052s0.183-0.095,0.242-0.18c0.058-0.085,0.087-0.192,0.087-0.32
+                       c0-0.144-0.038-0.26-0.115-0.348c-0.077-0.088-0.185-0.144-0.325-0.167c-0.07-0.01-0.279-0.015-0.629-0.015h-0.672V52.449z"/>
+       </g>
+       <path fill="none" stroke="#007BB2" stroke-width="0.8763" d="M187.992,327.717c0,0-0.505-0.757,1.261-2.019
+               c1.767-1.261,2.019-1.261,2.523-2.27c0.504-1.009,2.774-1.262,2.774-1.262s2.523-3.027,3.532-1.766
+               c1.009,1.262,0.504,1.766,0.252,3.027c-0.252,1.261-0.505,2.269-2.271,2.522c-1.766,0.252-2.018,1.009-2.774,0.252l-0.757-0.757
+               c0,0,0.252-0.504-0.756,0C190.766,325.951,188.749,328.222,187.992,327.717z"/>
+       <path fill="none" stroke="#007BB2" stroke-width="0.8763" d="M186.731,327.212c0,0-1.766-0.505-2.019,0.757
+               c-0.252,1.262-0.504,2.522-0.504,2.522s-2.018,0.757-1.514,1.514c0.504,0.757,2.522-0.757,2.774,0.757
+               c0.253,1.513,1.009,1.514,1.514,0.252c0.505-1.262,0.505-3.28,0.505-3.28L186.731,327.212z"/>
+       <path fill="none" stroke="#496B71" stroke-width="1.7546" d="M342.431,289.381l1.826-1.143l2.398-1.825l1.599-2.17l0.913-1.941
+               l1.256-2.17l1.598-2.168l1.598-2.626l0.8-0.914l0.913-0.228l1.598-1.485l1.37-2.283l0.8-0.914l0.571-1.484l0.114-1.94l0.227-2.169
+               l1.257-2.969l1.712-4.453l0.685-2.169l0.913-1.942l-0.228-3.311v-3.311l0.228-2.511l1.37-2.284l2.17-1.712l2.168-1.599l1.941-0.799
+               l2.283-0.912l2.169-1.257l1.827-1.255l1.484-0.686l2.056-1.598l1.712-2.055l2.625-6.051l0.686-2.398l-0.343-2.855l0.457-3.311
+               l1.255-2.625l2.398-2.626l1.598-0.799l2.97-0.46h1.597l1.257,0.8l1.372,1.37l1.025,1.37l0.572,0.458l0.912-0.571l0.799-1.029
+               l1.6-1.026l1.483-1.143c0,0,0.685-0.798,0.914-1.141c0.229-0.343,0.57-2.282,0.57-2.282l0.228-1.486l-0.911-0.57l-0.571,0.227
+               l-0.458,0.914l-1.255,0.114l-0.685-0.801l-0.686-2.739l0.228-6.281l1.259-5.022l1.824-3.654l2.17-3.311l2.742-3.197l2.398-2.513
+               l1.826-1.484l1.597-0.456l0.916,0.684l0.913,0.456l2.057,0.342l1.37-0.457l2.283-1.371l1.484-0.569l1.029-0.115l1.026-0.572
+               l1.713-1.712l1.94-0.686l1.028-0.683l1.256-2.398l1.599-2.283l1.597-0.799l1.942-1.143l1.939-1.939l1.6-3.541l1.599-2.742
+               l1.029-2.055l1.598-1.37l1.827-0.685l2.056-0.456h1.827l0.798-1.257l1.715-2.511l1.37-1.712l1.254-1.485l1.259-1.027l1.026-2.055
+               l1.712-2.397l2.286-2.057l1.597-1.597c0,0,0.685-0.801,0.913-1.143c0.23-0.342,0.8-2.056,0.8-2.056l2.17-0.684l3.424-0.457
+               l2.515-0.685l3.769-1.599l3.081-1.598l2.398-2.513l1.94-1.599l1.487-1.027l1.367-1.483l1.829-0.913l1.825-0.57l2.055-1.942
+               c0,0,1.829-2.169,2.17-2.283c0.342-0.114,1.941-0.685,1.941-0.685l2.398-0.342l1.6,0.114l1.823-0.913l2.286-2.742l0.913-2.739
+               l-0.913-2.056l-1.6-1.827l-3.994-2.624l-2.286-2.171l-1.369-2.626l0.684-2.967l0.457-1.6l0.344-1.598c0,0,0.57-1.369,0.684-1.713
+               c0.114-0.342,0.684-1.483,0.684-1.483l2.169-0.914l3.427-0.57l3.995-0.913l3.316-0.229l2.852-1.027l2.056-0.342l1.484,0.571
+               l1.027,0.457l1.142-0.344l1.599-0.913l2.054-1.141h2.398l1.711,0.113l1.6,1.028l2.055,0.457l2.74-0.228h1.6l1.824,0.684l0.23,0.8
+               l1.143,0.342h1.254l1.598,0.342l1.598,1.029c0,0,0.572,0.799,0.914,0.913c0.343,0.114,1.827,0.685,1.827,0.685h1.827l1.598-1.141
+               c0,0,1.257-1.486,1.6-1.599c0.342-0.114,2.169-1.142,2.169-1.142l1.942-0.685l1.943-0.458l1.484,0.571l1.143,0.57l1.713,0.115
+               l1.483-0.571l1.255-1.713l1.257-2.169l1.256-1.37l1.598-0.684l1.371-0.228h1.713l0.684-0.229l1.256-0.227l2.169,0.798l2.168,0.686
+               l1.598,0.913h4.797l0.8-0.571l0.341-1.485l-0.228-1.94l-0.8-1.712l-1.824-1.599l-0.686-2.397l0.342-3.311l0.455-1.827l-0.571-3.653
+               l-0.226-3.311l-1.484-1.712l-8.45-5.596l-1.141-0.686l-1.37-0.114l-1.828-1.37l-0.684-0.913l-1.486-0.114l-1.482-0.571
+               l-2.968-1.941l-1.828-0.114l-1.484-1.028l-1.254-1.029l-1.485-0.57h-1.94l-2.513-0.343h-1.142l-1.142,0.228l-1.94-0.113
+               l-1.37-0.342h-2.856l-2.397-0.228l-2.511-0.229l-2.398-0.684l-2.397-0.228l-2.285,1.026l-1.369,0.686l6.051,0.685l0.799,0.684
+               l-0.113,0.8l-1.029,0.456l-1.37-0.913l-1.141-0.571l-0.686,0.228l-0.341,0.685l-1.143-0.457l-1.371-0.457l-5.25,0.685l-2.056-0.799
+               l-2.969,0.228l-1.369-0.57l0.57-0.457l-0.57-2.284l-3.539-0.341l-3.541,0.57l-2.17-0.457l-3.195-1.256c0,0-4.452,1.37-5.023,1.37
+               c-0.571,0-2.169-0.457-2.169-0.457l-4.457-0.456l-1.143,0.456l-4.681,0.914l-4.452-0.457l-2.627,0.457l-3.768,0.798l-5.708-0.114
+               l-2.055,1.37l5.137,1.828l-8.219,0.685l-5.596,0.114l-3.196,0.228l-4.682,0.456l-0.911,0.572l-5.253-0.228l0.344,1.369
+               c0,0-0.344,0.8-0.688,0.8h-1.826l-1.141-0.228l-0.914-0.799l0.569-0.799l0.802-0.457l-6.851,0.228l-0.912,1.028l-0.457,1.599
+               l-4.339,0.913v-0.913l-5.371,1.94h-3.195l-3.198,2.625l-0.114-0.456l-4.452,1.142c0,0-0.912,0.8-1.255,0.914
+               c-0.343,0.113-1.941,0.913-1.941,0.913l-2.511,1.256l0.57,0.684l0.914,0.457l0.341,0.572l-0.571,2.51l-3.996,3.768L406.6,64.11
+               l-3.084,1.027l-3.308,0.457l-2.514,0.228l-2.283,0.686c0,0-1.712,0.113-2.056,0.227c-0.343,0.115-2.511,0.342-2.511,0.342
+               l-1.716,1.03l-2.968,1.825l-2.625,1.827l-2.397,1.37l-0.572,1.028c0,0-0.343,0.571-0.914,0.686
+               c-0.57,0.113-4.224,1.484-4.224,1.484l-1.598,0.914l-3.311,2.281l-3.311,1.257l-2.968,0.685h-2.17l-3.541,1.828
+               c0,0-1.254,1.141-1.597,1.255c-0.343,0.113-2.513,1.94-2.513,1.94l-1.599,0.685l-2.511,1.255l-0.686,0.914l-1.941,1.712
+               c0,0-1.484,1.141-2.284,1.255c-0.798,0.116-2.967,0.685-2.967,0.685l-3.196,1.94l-2.97,4.456l-1.484,2.284l-1.941,2.512
+               l-2.855,2.055l-1.598,1.141l-2.169,2.398l-1.828,2.512l-1.483,2.854l-0.913,3.425l-0.686,2.398l-3.196,2.626l-1.255,2.967
+               l-2.17,2.855l-1.941,1.713l-3.084,2.625l-1.827,1.712l-1.827,1.599l-2.284,2.967l-2.17,1.942l-3.31,2.625
+               c0,0-1.712-0.114-1.941,0.228c-0.229,0.342-2.513,2.512-2.855,2.856c-0.343,0.343-3.767,4.109-3.767,4.109l-2.854,1.94
+               l-2.968,2.284l-4.225,0.571l-3.539,1.371l-3.197,2.055l-1.826,2.397l-0.001,1.601l1.255,2.855l0.685,2.397v4.681l-0.228,8.336
+               l-1.028,2.054l-1.255,2.285l-1.485,1.711c0,0-1.598,1.598-1.94,1.827c-0.343,0.228-1.485,2.055-1.485,2.055l0.115,2.283
+               l1.027,1.712l1.599,1.713l0.458,3.197l1.027,4.909l1.369,3.426l1.257,2.511l2.054,2.169c0,0,1.714,0.571,2.056,0.686
+               c0.342,0.113,2.968,0.227,2.968,0.227l13.816-0.343l2.739,1.256l3.312,0.571l4.453,1.371l3.31,1.255l3.084,0.915l1.483,0.457
+               l0.914,0.343l0.457-0.686l0.799-1.141h1.029v1.256l-0.115,1.028l-0.457,1.141l-0.57,0.686l0.57,1.369l-0.456,1.599l-0.114,1.599
+               l0.456,0.912l1.257,1.484l0.113,1.941c0,0,0.685,1.255,0.8,1.599c0.114,0.343,1.484,1.257,1.484,1.257l0.799,0.341l0.571-0.456
+               h2.854l0.685-1.257l1.143-0.457l1.026-0.455l0.344-0.572h1.027h1.027c0,0,0.685-0.342,1.028-0.342c0.343,0,1.141-1.028,1.141-1.028
+               l4.682-0.113l1.712-0.343l1.599-0.459l0.228-1.027v-0.8l0.571-0.341l1.142-0.229l0.685-0.571l0.57-1.141l3.197-10.39l0.343-4.223
+               l-0.571-3.54l-0.572-2.625l-0.684-2.626l-3.311-1.255h-2.283l-1.599,0.569l-1.484,1.714l-1.6,2.853l-0.799,2.284l-2.056,3.654
+               l-1.827,1.599l-1.37,0.227l-0.342,1.257l-1.713,0.227l-1.484-0.684l-0.799-1.486l0.114-1.255l1.141-2.056l1.713-1.484l1.37-0.798
+               l1.827-0.801v-1.597l1.37-0.571l0.343-2.056l1.828-3.653l1.826-1.713l1.941-1.026l0.799-0.801h2.169l0.799-0.457l-0.799-1.599
+               l2.055-3.881l1.255-2.17l1.483-1.598l1.372-0.341l1.598,1.368l1.029,1.028l0.799-0.913l0.571-0.115l0.457,1.142l-0.114,1.257
+               l-0.456,1.141l-1.255,2.168l-0.114,1.257l0.57,1.484l-0.341,2.398l-1.371,1.827l-1.142,1.255l-0.114,2.284l0.571,3.196l0.799,2.398
+               l0.344,2.626v4.567l-0.344,4.795l-0.799,2.74l-1.142,2.284l-1.142,1.942l-1.369,1.598l-0.913,0.684l0.113,1.942l-3.082,3.426
+               l-2.626,1.94l-3.654,1.483l-4.11,2.284l-1.712,2.397l-1.941,3.198l-0.913,2.624l-0.57,3.198l-0.23,3.543v3.654l0.23,2.167
+               l0.798,2.626l1.029,2.626l1.255,1.599l1.598,0.799l2.169,0.572l1.371,0.456l1.141,0.455v0.687l-0.114,1.141l1.256,3.083
+               l1.941,2.284l1.484,2.168l1.141,2.056l0.115,1.484l1.254-1.598l0.114,5.138c0,0-0.342,1.143-0.685,1.255
+               c-0.342,0.114-0.913,1.599-0.913,1.599l0.686,0.8l1.712-0.228l1.143-0.343L342.431,289.381z"/>
+       <g>
+               <path fill="#496B71" d="M276.771,246.006v-4.267h1.383c0.524,0,0.865,0.021,1.025,0.064c0.245,0.064,0.449,0.204,0.614,0.417
+                       c0.165,0.215,0.247,0.492,0.247,0.831c0,0.262-0.048,0.482-0.143,0.661c-0.095,0.179-0.216,0.318-0.362,0.421
+                       c-0.146,0.101-0.295,0.169-0.447,0.202c-0.206,0.041-0.504,0.061-0.894,0.061h-0.562v1.61H276.771z M277.632,242.461v1.211h0.472
+                       c0.34,0,0.567-0.022,0.681-0.067c0.115-0.045,0.204-0.114,0.269-0.21c0.065-0.095,0.098-0.206,0.098-0.332
+                       c0-0.155-0.046-0.283-0.137-0.384c-0.091-0.101-0.207-0.164-0.346-0.189c-0.103-0.019-0.31-0.029-0.62-0.029H277.632z"/>
+               <path fill="#496B71" d="M280.572,243.899c0-0.435,0.065-0.799,0.195-1.094c0.097-0.217,0.229-0.412,0.397-0.585
+                       c0.168-0.173,0.352-0.301,0.552-0.384c0.266-0.113,0.572-0.169,0.92-0.169c0.629,0,1.132,0.195,1.509,0.585
+                       c0.377,0.39,0.566,0.932,0.566,1.627c0,0.689-0.187,1.228-0.562,1.617c-0.375,0.389-0.875,0.583-1.502,0.583
+                       c-0.635,0-1.139-0.193-1.514-0.581C280.759,245.111,280.572,244.578,280.572,243.899z M281.46,243.87
+                       c0,0.483,0.112,0.85,0.335,1.098c0.223,0.25,0.506,0.375,0.85,0.375c0.343,0,0.625-0.124,0.846-0.371
+                       c0.22-0.248,0.33-0.619,0.33-1.114c0-0.489-0.107-0.854-0.322-1.094s-0.499-0.361-0.854-0.361s-0.641,0.122-0.859,0.365
+                       C281.568,243.012,281.46,243.379,281.46,243.87z"/>
+               <path fill="#496B71" d="M285.386,246.006v-4.267h1.813c0.456,0,0.787,0.039,0.994,0.114c0.207,0.078,0.372,0.213,0.496,0.409
+                       c0.124,0.196,0.186,0.42,0.186,0.672c0,0.32-0.094,0.585-0.282,0.793c-0.188,0.21-0.47,0.341-0.844,0.395
+                       c0.186,0.109,0.34,0.228,0.461,0.358c0.121,0.13,0.285,0.361,0.49,0.693l0.521,0.832h-1.03l-0.623-0.929
+                       c-0.221-0.332-0.373-0.54-0.454-0.628c-0.082-0.085-0.168-0.146-0.259-0.177c-0.091-0.033-0.236-0.049-0.434-0.049h-0.175v1.781
+                       H285.386z M286.248,243.544h0.637c0.413,0,0.671-0.017,0.774-0.052c0.103-0.035,0.183-0.095,0.242-0.18
+                       c0.058-0.085,0.087-0.192,0.087-0.32c0-0.144-0.038-0.259-0.115-0.347c-0.077-0.088-0.185-0.145-0.325-0.168
+                       c-0.07-0.01-0.279-0.015-0.629-0.015h-0.672V243.544z"/>
+               <path fill="#496B71" d="M290.542,246.006v-3.545h-1.266v-0.722h3.391v0.722h-1.263v3.545H290.542z"/>
+               <path fill="#496B71" d="M296.629,246.006h-0.937l-0.373-0.969h-1.706l-0.352,0.969h-0.914l1.662-4.267h0.911L296.629,246.006z
+                        M295.043,244.318l-0.588-1.583l-0.576,1.583H295.043z"/>
+               <path fill="#496B71" d="M299.071,244.437v-0.719h1.857v1.7c-0.18,0.175-0.442,0.329-0.784,0.462
+                       c-0.342,0.132-0.689,0.199-1.041,0.199c-0.446,0-0.835-0.093-1.167-0.28c-0.332-0.187-0.581-0.455-0.748-0.803
+                       c-0.167-0.348-0.25-0.728-0.25-1.137c0-0.444,0.093-0.839,0.279-1.185c0.186-0.345,0.459-0.61,0.818-0.795
+                       c0.274-0.142,0.614-0.212,1.022-0.212c0.53,0,0.944,0.112,1.241,0.333c0.298,0.223,0.489,0.53,0.575,0.922l-0.856,0.16
+                       c-0.06-0.21-0.173-0.375-0.339-0.496c-0.166-0.121-0.373-0.182-0.621-0.182c-0.376,0-0.676,0.119-0.898,0.358
+                       c-0.222,0.239-0.333,0.593-0.333,1.062c0,0.506,0.113,0.887,0.338,1.139c0.225,0.254,0.52,0.38,0.885,0.38
+                       c0.18,0,0.361-0.035,0.543-0.107c0.181-0.07,0.337-0.156,0.467-0.257v-0.541H299.071z"/>
+               <path fill="#496B71" d="M301.723,246.006v-4.267h3.164v0.722h-2.302v0.946h2.142v0.719h-2.142v1.161h2.384v0.719H301.723z"/>
+       </g>
+       <g>
+               <path fill="#496B71" d="M289.495,252.247v-4.232h0.862v3.513h2.142v0.719H289.495z"/>
+               <path fill="#496B71" d="M296.961,252.247h-0.937l-0.373-0.969h-1.706l-0.352,0.969h-0.914l1.662-4.267h0.911L296.961,252.247z
+                        M295.375,250.558l-0.588-1.583l-0.576,1.583H295.375z"/>
+               <path fill="#496B71" d="M297.43,252.247v-4.267h0.862v1.895l1.741-1.895h1.158l-1.607,1.662l1.694,2.605h-1.115l-1.173-2.003
+                       l-0.699,0.713v1.289H297.43z"/>
+               <path fill="#496B71" d="M301.723,252.247v-4.267h3.164v0.722h-2.302v0.946h2.142v0.719h-2.142v1.161h2.384v0.719H301.723z"/>
+       </g>
+       <g>
+               <g opacity="0.7">
+                       <path fill-rule="evenodd" clip-rule="evenodd" fill="#FFFFFF" d="M107.085,142.346c0.055,0.102,0.035,0.281,0.073,0.4
+                               c0.12,0.074,0.29,0.098,0.436,0.146c0.455,0.539,0.588,1.503,1.019,2.183c2.326-0.291,3.628,0.318,4.55,1.493
+                               c0.422,0.136,0.826,0.222,1.383,0.145c0.548,0.775,1.624,1.021,3.021,0.946c0.539,0.517,1.164,0.947,1.747,1.419
+                               c-0.356,0.487-0.019,1.323,0.363,2.039c0.242,0.452,1.056,1.026,0.983,1.528c-0.097,0.662-1.623,0.613-1.892,1.237
+                               c0.183,0.585-0.461,0.943-0.401,1.419c0.028,0.227,0.258,0.246,0.328,0.437c0.139,0.39,0.012,0.612,0.254,0.838
+                               c0.13,0.12,0.365,0.093,0.51,0.219c0.107,0.093,0.131,0.317,0.255,0.437c0.268,0.261,0.746,0.247,0.946,0.509
+                               c0.382,0.503,0.376,1.778,0.473,2.475c0.117,0.843,0.47,2.164-0.255,2.874c-0.016,0.824,0.207,1.636-0.327,2.038
+                               c0.137,0.662,0.11,2.847-0.291,3.676c-0.289,0.595-1.186,0.661-1.638,1.019c-0.098-0.201-0.229-0.074-0.219,0.145
+                               c-0.696,0.336-1.051,1.012-1.31,1.784c-0.318,1.041-0.175,2.093-0.619,2.911c-0.215,0.397-0.71,0.578-1.019,0.874
+                               c-0.46,0.44-0.87,1.008-1.784,1.091c-0.34,0.031-0.55-0.074-0.8,0c-1.939,0.576-1.036,2.809-1.528,4.549
+                               c-0.138,0.484-0.354,1.084,0,1.82c0.16,0.335,0.535,0.497,0.945,0.654c0.054,0.251,0.194,0.413,0.401,0.51
+                               c0.232,0.037,0.309-0.079,0.51-0.073c0.104,0.055,0.038,0.277,0.145,0.328c1.055-0.346,1.574,0.362,1.966,0.91
+                               c1.045-0.52,1.398-1.732,2.219-2.475c0.722-0.019,1.42-0.382,1.238-1.309c0.546-0.17,0.455-0.977,1.055-1.093
+                               c0.137-1.051,1.031-1.346,1.201-2.365c0.493-0.224,0.815-0.617,0.91-1.237c0.461-0.111,0.905-0.5,1.383-0.182
+                               c0.699-0.684,2.445-0.321,2.548-1.602c0.645-0.143,0.879-0.698,1.819-0.547c0.149,0.505,1.063,0.248,1.128,0.837
+                               c0.327-0.677,0.706-0.092,0.873,0.365c0.08,0.066,0.298-0.007,0.364,0.072c0.737,0.464,1,1.402,1.346,2.256
+                               c1.015,1.405,1.385,3.482,1.492,5.423c0.127,2.299,0.808,4.665,1.056,6.915c0.098,0.889,0.299,1.839,0.437,2.693
+                               c0.058,0.357,0.372,0.779,0.437,1.237c0.031,0.221-0.057,0.461,0,0.655c0.06,0.209,0.328,0.245,0.437,0.436
+                               c0.208,0.368,0.554,1.259,0.546,1.674c-0.011,0.523-0.634,1.111-0.764,1.711c-0.09,0.414,0.044,0.843,0,1.237
+                               c-0.048,0.433-0.101,0.639-0.036,1.128c0.16,1.21-0.618,2.126-0.765,3.311c-0.224,0.003-0.817,0.251-1.201,0.146
+                               c-0.217-0.059-0.239-0.323-0.4-0.473c-0.727-0.682-1.805-0.424-2.438,0.037c-0.105,0.076-0.601,0.287-0.655,0.546
+                               c-0.032,0.15,0.113,0.353,0.109,0.509c-0.025,1.047-1.119,1.573-1.201,2.511c-0.033,0.378,0.139,0.707,0.109,1.02
+                               c-0.048,0.512-0.349,1.321-0.656,1.782c-0.562,0.847-2.086,0.778-2.802,1.675c-0.243,0.303-0.423,1.036-0.546,1.456
+                               c-0.213,0.725-0.576,1.836-0.618,2.439c-0.04,0.563,0.195,1.067,0.108,1.528c-0.105,0.563-0.641,1.132-1.055,1.491
+                               c-0.139,0.954-1.006,1.179-1.456,1.821c0.279,0.539-0.177,1.045-0.655,1.164c-0.028,0.149,0.056,0.187,0.037,0.327
+                               c-0.546,0.461-0.517,1.498-1.056,1.965c-6.284,0.244-13.32,0.368-19.652,0.437c-0.255-0.264,0.009-0.851-0.219-1.165
+                               c-10.049-0.361-20.921-0.043-30.897-0.364c0.64-0.816,1.813-1.098,2.183-2.184c0.138-0.117,0.315-0.194,0.474-0.291
+                               c0.544-1.227,0.927-2.615,1.528-3.784c-0.23-1.046,1.229-1.148,1.128-2.184c0.863-0.525,1.532-2.332,1.784-3.567
+                               c0.073-0.359,0.43-0.614,0.109-1.056c0.626-0.503,0.763-1.839,0.619-2.875c0.543-0.462,0.123-1.099,0.146-1.71
+                               c0.031-0.833,0.619-1.672,0.327-2.802c0.209-0.143,0.644-0.06,0.619-0.436c-0.096-0.111-0.35-0.062-0.546-0.073
+                               c-0.322-0.839-0.146-1.593-0.219-2.475c-0.124-1.507-0.691-3.434-1.201-4.84c-0.288-0.794-1.049-1.549-0.036-2.074
+                               c-0.113-0.317-0.575,0.01-0.909-0.073c-0.346-0.851-1.426-2.312-0.401-3.02c-0.186-0.261-0.446,0.095-0.764,0.036
+                               c-0.449-0.567-0.488-1.24-0.655-2.11c-0.221-1.151-1.433-2.239-1.128-3.494c0.222-0.916,1.002-1.729,1.602-2.511
+                               c-0.319-0.411-0.059-0.711,0.182-1.019c-0.024-0.194-0.254-0.184-0.291-0.364c0.081-1.558-0.4-2.976-0.947-4.185
+                               c0.273-0.076,0.649-0.171,0.51-0.546c-0.222-0.135-0.386,0.187-0.619,0.037c-0.158-0.591,0.338-0.605,0.655-0.837
+                               c0.808-0.592,1.281-1.98,1.674-3.02c0.139-0.368,0.553-0.645,0.692-1.128c0.145-0.505,0.331-0.79,0.51-1.237
+                               c0.206-0.098,0.667,0.059,0.765-0.146c0.016-0.296-0.421-0.138-0.51-0.328c0.065-0.686-0.016-1.211,0-1.819
+                               c0.019-0.732,0.457-1.42,0.51-2.112c0.063-0.843-0.691-1.502-0.365-2.292c0.484,0.001,0.596,0.438,0.874,0.655
+                               c0.29,0.226,0.844,0.118,0.91-0.073c0.229-0.657-1.38-1.04-1.892-1.128c0.41,0.018,0.726-0.585,1.456-0.728
+                               c0.572-0.112,1.071-0.152,1.165-0.763c0.027-0.181-0.127-0.382-0.109-0.583c0.014-0.163,0.199-0.335,0.218-0.51
+                               c0.049-0.441-0.186-0.975-0.182-1.419c0.085-0.218,0.243-0.363,0.437-0.473c1.242,0.938,1.13-1.184,1.965-1.128
+                               c0.334,0.023,0.434,0.403,0.801,0.474c1.038,0.017,0.936-1.103,1.784-1.274c0.03-0.304,0.138-0.729,0.073-0.91
+                               c0.903-0.698,1.01-2.192,1.747-3.057c0.245,0.01,0.465,0.045,0.546,0.218c-0.01,0.382-0.434,0.655-0.51,1.092
+                               c0.417,0.94-0.604,2.037-0.655,3.348c-0.041,1.043-0.038,2.166,0.037,2.985c0.049,0.543,0.374,1.293,1.092,1.019
+                               c0.228,0.554,0.928,0.479,1.201,0c-0.023-0.594,0.381-0.759,0.655-1.056c0.069-0.756,0.518-1.132,0.801-1.674
+                               c0.386-0.997,0.309-2.456,0.692-3.457c0.789,1.248,0.32,2.999,0.656,4.33c0.532-0.002,0.308-0.537,0.29-0.91
+                               c-0.021-0.443,0.192-0.977,0.182-1.383c-0.006-0.218-0.255-0.409-0.291-0.692c-0.025-0.199,0.106-0.396,0.073-0.508
+                               c-0.047-0.164-0.289-0.175-0.364-0.327c-0.17-0.345-0.016-0.711-0.219-0.909c-0.066-0.08-0.297,0.006-0.363-0.074
+                               c-0.348-1.782-0.655-4.665,1.638-4.804c0.172-0.082,0.06-0.45,0.182-0.582c0.787-0.204,1.196-0.928,2.036-0.883
+                               c0.235,0.012,0.694,0.154,0.949,0.138c0.698-0.044,1.263-0.277,1.892-0.384c0.034-0.338-0.092-0.515-0.182-0.728
+                               c-0.708-0.346-2.123-0.384-2.439-1.091c-0.675-1.51-0.253-3.269,1.347-3.603c0.021-0.659,0.509-0.85,0.91-1.128
+                               c0.175-0.589-0.319-0.701-0.364-0.947c0.994,1.042,2.37,0.628,2.998-0.55c0.107-0.249,0.72,0.095,0.823,0.295
+                               c0.851,0.687,2.117,0.75,2.911,1.493c0.197,0.183,0.664,0.828,1.092,0.837c0.221,0.004,0.348-0.286,0.546-0.328
+                               C105.084,141.37,106.048,142.076,107.085,142.346z"/>
+               </g>
+               <g>
+                       <path opacity="0.7" fill-rule="evenodd" clip-rule="evenodd" fill="#FFFFFF" d="M113.115,134.707
+                               c-0.402-0.055,0.049,0.442,0.029,0.089c0.152,0.053,0.227,0.184,0.294,0.323c-0.047,0.16-0.292,0.293-0.117,0.498
+                               c0.245,0.147,0.717,0.066,0.822,0.353c-0.078,0.274-0.109,0.595-0.322,0.734c-0.281-0.116-0.486,0.173-0.705,0.146
+                               c-0.204-0.024-0.387-0.442-0.646-0.498c-0.754-0.167-2.234,0.597-2.465-0.382c0.154,0.012,0.185,0.148,0.352,0.148
+                               c0.287-0.385,0.781-0.872,1.409-0.939c0.511-0.056-0.02-0.878-0.176-1.086C112.299,133.978,113.088,134.039,113.115,134.707z"/>
+                       <path opacity="0.7" fill-rule="evenodd" clip-rule="evenodd" fill="#FFFFFF" d="M64.365,111.667
+                               c-0.424,0.115-0.707,0.37-1.145,0.47c-0.549-0.351-2.307-0.103-1.614,0.587c-1.083,1.079-2.64,1.683-3.581,2.905
+                               c-0.13,0.085-0.094-0.208-0.294-0.146c0.121,0.749-0.444,1.194-0.791,1.761c-0.207,0.337-0.543,1.268-0.822,1.232
+                               c-0.251-0.032-0.612-1.425-0.029-1.409c-0.066-0.139-0.35-0.063-0.47-0.148c-0.167-0.541-0.927-0.634-1.526-0.645
+                               c0.006,0.277,0.369,0.199,0.588,0.265c0.448,0.284,0.138,0.866,0.264,1.379c0.366,0.191,0.593,0.521,0.821,0.852
+                               c-0.036,0.525-0.291,1.063-0.411,1.614c-0.042,0.197,0.047,0.505,0,0.763c-0.034,0.189-0.163,0.322-0.147,0.47
+                               c0.019,0.164,0.284,0.295,0.294,0.44c0.017,0.242-0.34,0.35-0.323,0.558c0.597,0.359,0.964-1.049,1.379-1.41
+                               c0.694-0.601,1.467-1.218,2.202-1.467c-0.1,0.586-0.881,0.489-0.764,1.292c-0.098,0.198-0.476,0.262-0.382,0.557
+                               c0.132,0.14,0.319-0.064,0.44-0.117c0.203-0.441,0.244-0.757,0.557-0.999c0.407-0.312,1.029-0.009,1.38-0.352
+                               c0.795,0.16,1.529,0.292,2.348,0.294c0.031,0.076,0.071,0.144,0.059,0.264c0.357-0.074,0.444,0.124,0.587,0.265
+                               c0.434-0.383,0.5-0.059,0.733,0.263c0.187,0.258,0.648,0.421,0.44,0.764c0.196,0.107,0.323,0.284,0.528,0.382
+                               c0.191,0.003,0.069-0.303,0.148-0.411c0.831,0.206,0.871,1.202,1.174,1.936c0.095,0.1,0.297,0.094,0.411,0.176
+                               c-0.004,0.709,0.677,0.732,0.703,1.409c0.293,0.3,0.647,0.642,0.764,1.056c0.056,0.198-0.023,0.335,0.088,0.499
+                               c0.43,0.632,1.565,0.306,2.201,0.763c0.164-0.143,0.32-0.402,0.646-0.293c0.105,0.062,0.01,0.322,0.146,0.352
+                               c0.299-0.675,1.738-1.409,2.084-0.352c-0.062,0.125-0.255,0.118-0.264,0.293c0.194,0.294,0.481,0.162,0.821,0.323
+                               c0.275,0.13,0.376,0.545,0.793,0.499c0.308-0.034,0.364-0.538,0.646-0.645c0.448-0.174,0.638,0.312,0.939,0.557
+                               c0.148-0.02,0.206,0.05,0.353,0.029c0.17,0.078,0.138,0.309,0.323,0.322c0.396,0.028,0.651-0.74,0.881-1.115
+                               c0.122-0.2,0.627-0.475,0.91-0.675c0.151-0.107,0.265-0.318,0.352-0.353c0.35-0.138,0.79-0.056,1.115-0.176
+                               c0.225-0.083,0.279-0.332,0.47-0.528c0.551-0.569,1.647-0.785,2.084-1.438c1.023,0.8,2.578-0.681,3.727-0.089
+                               c0.834,0.051,1.734-0.161,2.231,0.206c0.386-0.23,1.03-0.041,1.438-0.088c0.066,0.258,0.194,0.506,0.118,0.821
+                               c0.153-0.143,0.74-0.099,1.086-0.146c0.386-0.228,0.018-1.035,0.498-1.175c0.152,0.015,0.328,0.027,0.206-0.058
+                               c0.404-0.836,1.561-0.741,2.407-0.85c-0.33,0.263-0.189,0.881-0.44,1.173c0.326,0.192,0.516-0.084,0.586-0.323
+                               c0.323,0.011,0.593,0.074,0.646,0.353c-0.307,0.11-0.73,0.417-0.44,0.851c0.239,0.074,0.502-0.11,0.734,0.029
+                               c0.194,0.437,0.316,1.058-0.118,1.32c-0.133,1.29,1.036,1.569,2.231,1.526c0.739,0.853,1.83-0.084,2.495-0.41
+                               c0.111,0.088-0.02,0.194,0.029,0.352c0.052,0.168,0.783,0.832,0.851,0.851c0.379,0.104,0.571-0.346,0.998-0.382
+                               c0.597-0.05,0.469,0.103,0.733-0.412c0.242-0.468,0.86-0.861,1.556-0.704c-0.193,0.556,0.535,0.724,0.586,1.32
+                               c0.007,0.076-0.075,0.248-0.058,0.352c0.028,0.182,0.248,0.26,0.352,0.44c0.207,0.36,0.229,0.961,0.147,1.38
+                               c0.15,0.182,0.426,0.24,0.382,0.617c-0.255,0.361-0.829,0.404-0.91,0.938c0.238,0.213,0.425,0.475,0.529,0.821
+                               c0.206-0.342,0.743-0.352,1.174-0.469c0.208,0.418,0.706,0.546,1.057,0.821c-0.24,0.3-0.463,0.605,0,0.822
+                               c-0.027,0.242,0.05,0.381,0.088,0.558c0.294,0.105,0.646,0.155,0.704,0.499c0.318-0.152,0.65-0.049,0.851,0.147
+                               c0.019,0.159,0.069,0.3,0.029,0.441c-0.157,0.213-0.706,0.176-0.88,0c0.003-0.209,0.011-0.423-0.088-0.528
+                               c-0.17-0.004-0.29,0.043-0.382,0.118c-0.02,0.195,0.156,0.195,0.146,0.381c-1.182,0.153-2.759-0.423-4.226-0.322
+                               c-0.255,0.017-0.521,0.171-0.705,0.146c-0.228-0.03-0.333-0.244-0.587-0.177c-0.122,0.034-0.167,0.198-0.264,0.235
+                               c-0.391,0.15-0.526-0.213-0.704-0.528c-0.635,0.052-0.863-0.449-1.439-0.353c-0.473,0.08-0.255,0.801-0.47,1.233
+                               c-0.141,0.284-0.723,0.562-0.234,0.968c0.011,0.148-0.13,0.145-0.147,0.265c0.094,0.129,0.192,0.425,0.029,0.558
+                               c-0.847-0.093-1.522-0.356-1.819-0.997c-0.292-0.091-0.635-0.252-0.587-0.588c0.113-0.093,0.368-0.042,0.528-0.088
+                               c-0.017,0.184,0.228,0.625,0.469,0.352c0.053-0.167-0.215-0.248-0.322-0.352c0.093-0.281-0.069-0.451-0.206-0.587
+                               c-0.115-0.058-0.193,0.05-0.293,0.089c-0.188-0.167-0.63-0.339-0.88-0.176c-0.142,0.004-0.105-0.171-0.206-0.205
+                               c-1.249-0.095-2.968-1.152-4.285-1.35c-0.492-0.075-1.04-0.168-1.497-0.059c-0.619,0.148-0.66,1.056-1.291,1.321
+                               c-0.007,1.55-2.567,0.511-3.463,1.145c-0.142,0.099-0.245,0.44-0.44,0.469c-0.555,0.085-1.07-0.516-1.585-0.558
+                               c-1.108-0.089-2.585,0.201-2.935,1.087c-0.138,0.349-0.062,0.538-0.234,0.968c-0.14,0.347-1.008,1.181-1.438,1.38
+                               c-0.413,0.189-0.877,0.059-0.91,0.675c-0.739,0.151-0.705,1.075-1.115,1.556c-0.507-0.084-0.944-0.757-0.323-0.997
+                               c0.032-0.179-0.093-0.2-0.088-0.353c0.671-0.023,0.398-1.419,1.204-0.939c0.116-0.484,0.357-1.029,0.615-1.526
+                               c-0.074-0.714-0.837-0.632-1.232-0.235c-0.014,0.201-0.09,0.342-0.177,0.469c-0.232,0.061-0.571,0.014-0.851,0.029
+                               c-0.17-0.073-0.157-0.33-0.323-0.411c-0.246-0.012-0.412,0.058-0.558,0.147c0.085,0.757-0.79,1.934-1.379,2.26
+                               c-0.187,0.103-0.562,0.087-0.763,0.088c-0.324-0.4,0.08-1.25-0.264-1.761c0.065-0.527,0.993-0.968,0.411-1.497
+                               c-0.404,0.105-0.653,0.489-0.587,0.969c-0.182,0.403-0.799,0.552-0.763,1.057c0.037,0.517,0.44,1.056-0.235,1.409
+                               c-0.116,0.06-0.268,0.029-0.382,0.088c-0.768,0.397-0.79,1.607-1.614,1.966c-0.822,3.229-2.949,5.152-4.373,7.777
+                               c-0.601-0.383-1.438-0.589-1.409-1.291c0.012-0.316,0.287-0.707,0.381-1.027c0.161-0.546,0.749-1.341,0.735-1.732
+                               c-0.006-0.153-0.297-0.524-0.499-0.528c-0.293-0.006-0.511,0.489-0.851,0.558c-0.415,0.085-1.256,0.01-1.322-0.351
+                               c-0.04-0.218,0.233-0.357,0.264-0.617c0.027-0.22-0.087-0.385-0.058-0.528c0.07-0.364,0.713-0.526,0.793-0.939
+                               c0.088-0.458-0.173-0.735-0.264-1.204c1.11-0.225-0.049-1.248,0.03-1.615c0.071-0.335,0.724-0.375,0.146-0.88
+                               c-0.086-0.074-0.263-0.085-0.382-0.176c-0.21-0.161-0.295-0.456-0.499-0.559c-0.472-0.233-1.121-0.116-1.262-0.675
+                               c-0.685,0.153-1.591,0.03-1.556-0.645c0.018-0.348,0.585-0.453,0.617-0.733c0.006-0.049-0.179-0.582-0.265-0.764
+                               c-0.147-0.312-0.924-0.523-1.35-0.587c-0.197-0.03-0.353-0.264-0.557-0.294c-0.181-0.026-0.373,0.06-0.528,0.029
+                               c-0.279-0.055-0.418-0.411-0.705-0.469c-0.132-0.027-0.289,0.074-0.44,0.058c-0.874-0.087-1.265-0.752-2.142-0.5
+                               c-0.148,0.043-0.292,0.273-0.44,0.294c-0.381,0.052-0.713-0.564-1.232-0.616c-0.375-0.038-0.623,0.014-0.969-0.059
+                               c-1.236-0.479-2.16-1.555-3.434-2.055c-0.942-0.369-2.108-0.426-2.847-0.997c-0.17,0.071-0.424,0.08-0.557-0.029
+                               c-0.069-0.049-0.064-0.172-0.059-0.294c-0.821,0.275-2.301-0.391-3.141-0.645c-1.018-0.308-1.955-0.53-2.817-0.822
+                               c-0.053-0.075-0.101-0.154-0.088-0.293c-0.875,0.264-1.738-0.333-2.524-0.529c-0.534-1.277-0.699-2.922-2.231-3.2
+                               c-0.081-0.115-0.062-0.328-0.176-0.411c-1.489,0.314-0.897-0.584,0.176-0.704c0.599-0.067,1.422-0.54,1.673-0.763
+                               c2.121-0.082,2.948-1.454,4.021-2.583c1.188-0.779,2.464,0.045,3.786-0.499c0.647,0.057,1.708,0.022,2.172-0.294
+                               c0.707-0.481,1.573-0.889,2.084-1.409c0.089-1.097,1.596-0.623,2.524-0.851c0.438-0.108,0.558-0.655,0.676-1.116
+                               c0.529-0.743,1.284-1.26,2.143-1.673c0.124-0.535,0.556-0.908,1.144-0.88c0.222,0.41-0.238,1.25,0.353,1.379
+                               c0.164-0.424-0.041-1.214,0.117-1.643c1.237-0.432,1.445-2.035,2.642-2.524c0.966-0.396,1.827-1.046,2.876-1.204
+                               c0.681,0.177,1.438-0.228,2.231-0.116c0.401,0.057,0.802,0.315,1.174,0.058c0.429,0.071,0.863,0.058,1.145,0.324
+                               C64.142,111.363,64.35,111.419,64.365,111.667z"/>
+               </g>
+               <g>
+                       <path fill-rule="evenodd" clip-rule="evenodd" fill="#F17225" d="M64.13,111.111c-0.281-0.266-0.716-0.252-1.145-0.324
+                               c-0.372,0.257-0.772-0.002-1.174-0.058c-0.793-0.112-1.55,0.293-2.231,0.116c-1.049,0.158-1.91,0.808-2.876,1.204
+                               c-1.197,0.49-1.405,2.092-2.642,2.524c-0.159,0.429,0.046,1.219-0.117,1.643c-0.591-0.129-0.131-0.969-0.353-1.379
+                               c-0.588-0.028-1.02,0.346-1.144,0.88c-0.859,0.413-1.614,0.929-2.143,1.673c-0.117,0.461-0.237,1.008-0.676,1.116
+                               c-0.928,0.228-2.435-0.246-2.524,0.851c-0.32,0.326-0.779,0.608-1.252,0.891c0.661,1.1,5.355,0.946,6.405,1.667
+                               c0.093,0.02,1.35,0.544,2.15,0.559c0.061-0.083,0.704,0.22,0.776,0.144c-0.003-0.001-0.005-0.002-0.007-0.003
+                               c-0.017-0.208,0.34-0.316,0.323-0.558c-0.01-0.145-0.276-0.276-0.294-0.44c-0.016-0.147,0.113-0.281,0.147-0.47
+                               c0.047-0.258-0.042-0.566,0-0.763c0.12-0.551,0.375-1.089,0.411-1.614c-0.228-0.33-0.455-0.66-0.821-0.852
+                               c-0.127-0.512,0.184-1.095-0.264-1.379c-0.218-0.066-0.582,0.012-0.588-0.265c0.6,0.011,1.359,0.105,1.526,0.645
+                               c0.12,0.084,0.404,0.008,0.47,0.148c-0.582-0.017-0.222,1.376,0.029,1.409c0.28,0.036,0.615-0.896,0.822-1.232
+                               c0.348-0.567,0.913-1.012,0.791-1.761c0.2-0.061,0.164,0.232,0.294,0.146c0.94-1.222,2.498-1.826,3.581-2.905
+                               c-0.692-0.69,1.065-0.938,1.614-0.587c0.438-0.1,0.721-0.355,1.145-0.47C64.35,111.419,64.142,111.363,64.13,111.111z"/>
+               </g>
+       </g>
+       <g>
+               <path fill="#496B71" d="M483.716,41.546h1.383c0.274,0,0.477,0.012,0.612,0.034c0.134,0.023,0.254,0.07,0.361,0.143
+                       c0.106,0.072,0.194,0.169,0.265,0.289c0.071,0.12,0.107,0.255,0.107,0.405c0,0.162-0.044,0.31-0.131,0.446
+                       c-0.087,0.135-0.206,0.237-0.355,0.304c0.211,0.062,0.373,0.166,0.486,0.314c0.114,0.148,0.17,0.322,0.17,0.521
+                       c0,0.157-0.037,0.31-0.11,0.459c-0.074,0.148-0.174,0.267-0.3,0.356c-0.127,0.089-0.282,0.144-0.469,0.164
+                       c-0.116,0.013-0.397,0.021-0.842,0.024h-1.177V41.546z M484.415,42.122v0.8h0.457c0.273,0,0.441-0.004,0.507-0.012
+                       c0.119-0.014,0.213-0.055,0.282-0.124c0.068-0.068,0.102-0.159,0.102-0.27c0-0.107-0.029-0.194-0.088-0.261
+                       c-0.059-0.067-0.146-0.108-0.263-0.122c-0.069-0.008-0.268-0.012-0.597-0.012H484.415z M484.415,43.497v0.925h0.646
+                       c0.251,0,0.411-0.007,0.478-0.021c0.104-0.019,0.189-0.065,0.254-0.138c0.065-0.073,0.098-0.171,0.098-0.293
+                       c0-0.104-0.025-0.192-0.076-0.264c-0.05-0.072-0.123-0.125-0.218-0.158c-0.095-0.033-0.302-0.049-0.619-0.049H484.415z"/>
+               <path fill="#496B71" d="M487.205,45.005v-3.459h1.47c0.37,0,0.637,0.031,0.805,0.093c0.168,0.062,0.302,0.173,0.403,0.332
+                       c0.1,0.159,0.15,0.341,0.15,0.545c0,0.26-0.076,0.474-0.229,0.643c-0.152,0.169-0.38,0.276-0.684,0.32
+                       c0.151,0.088,0.276,0.185,0.375,0.291c0.098,0.105,0.231,0.293,0.397,0.561l0.423,0.675h-0.835l-0.505-0.752
+                       c-0.18-0.269-0.303-0.439-0.369-0.508c-0.066-0.07-0.136-0.118-0.21-0.144c-0.074-0.026-0.191-0.039-0.352-0.039h-0.141v1.444
+                       H487.205z M487.904,43.009h0.516c0.335,0,0.544-0.015,0.628-0.043c0.083-0.028,0.148-0.077,0.196-0.147
+                       c0.047-0.069,0.071-0.156,0.071-0.259c0-0.116-0.031-0.211-0.093-0.282c-0.062-0.071-0.15-0.116-0.263-0.135
+                       c-0.057-0.008-0.227-0.012-0.51-0.012h-0.544V43.009z"/>
+               <path fill="#496B71" d="M490.55,43.297c0-0.352,0.053-0.648,0.158-0.887c0.079-0.176,0.186-0.334,0.322-0.474
+                       c0.136-0.14,0.285-0.244,0.447-0.311c0.215-0.091,0.464-0.137,0.746-0.137c0.509,0,0.917,0.158,1.222,0.474
+                       c0.307,0.316,0.459,0.756,0.459,1.319c0,0.558-0.151,0.995-0.455,1.31c-0.304,0.316-0.709,0.473-1.218,0.473
+                       c-0.514,0-0.923-0.157-1.226-0.471C490.702,44.28,490.55,43.848,490.55,43.297z M491.27,43.273c0,0.392,0.09,0.689,0.272,0.891
+                       c0.18,0.202,0.41,0.303,0.689,0.303c0.278,0,0.506-0.1,0.685-0.301s0.268-0.501,0.268-0.902c0-0.396-0.086-0.692-0.26-0.887
+                       c-0.175-0.195-0.406-0.293-0.693-0.293c-0.288,0-0.52,0.099-0.697,0.296C491.358,42.578,491.27,42.876,491.27,43.273z"/>
+               <path fill="#496B71" d="M496.663,43.734l0.677,0.214c-0.104,0.377-0.277,0.658-0.518,0.841c-0.241,0.183-0.547,0.275-0.919,0.275
+                       c-0.459,0-0.836-0.157-1.132-0.471c-0.296-0.313-0.443-0.743-0.443-1.287c0-0.575,0.148-1.023,0.445-1.341
+                       c0.298-0.318,0.689-0.477,1.173-0.477c0.423,0,0.766,0.125,1.031,0.375c0.157,0.148,0.275,0.36,0.353,0.637l-0.691,0.165
+                       c-0.041-0.179-0.126-0.321-0.256-0.424c-0.13-0.104-0.287-0.156-0.473-0.156c-0.257,0-0.465,0.092-0.625,0.276
+                       c-0.159,0.184-0.239,0.482-0.239,0.894c0,0.438,0.079,0.749,0.236,0.934c0.157,0.186,0.362,0.278,0.613,0.278
+                       c0.185,0,0.345-0.059,0.479-0.177C496.509,44.172,496.605,43.987,496.663,43.734z"/>
+               <path fill="#496B71" d="M497.949,45.005v-3.459h0.699v1.536l1.411-1.536h0.939l-1.302,1.347l1.373,2.112h-0.904l-0.951-1.623
+                       l-0.566,0.578v1.045H497.949z"/>
+               <path fill="#496B71" d="M501.919,45.005l-0.826-3.459h0.715l0.521,2.376l0.633-2.376h0.831l0.606,2.416l0.531-2.416h0.703
+                       l-0.84,3.459h-0.741l-0.689-2.586l-0.686,2.586H501.919z"/>
+               <path fill="#496B71" d="M508.929,45.005h-0.76l-0.302-0.786h-1.383l-0.285,0.786h-0.741l1.348-3.459h0.738L508.929,45.005z
+                        M507.643,43.637l-0.476-1.283l-0.468,1.283H507.643z"/>
+               <path fill="#496B71" d="M509.85,45.005v-1.456l-1.267-2.003h0.819l0.813,1.369l0.798-1.369h0.805l-1.272,2.008v1.451H509.85z"/>
+               <path fill="#496B71" d="M484.602,50.803v-3.459h1.045l0.628,2.36l0.62-2.36h1.048v3.459h-0.649v-2.722l-0.686,2.722h-0.672
+                       l-0.685-2.722v2.722H484.602z"/>
+               <path fill="#496B71" d="M489.415,50.803V47.93h-1.027v-0.585h2.749v0.585h-1.024v2.874H489.415z"/>
+               <path fill="#496B71" d="M491.595,50.803v-3.459h0.679l1.416,2.31v-2.31h0.649v3.459h-0.701l-1.394-2.255v2.255H491.595z"/>
+               <path fill="#496B71" d="M495.071,50.803V50.14h0.664v0.663H495.071z"/>
+               <path fill="#496B71" d="M497.76,47.344h1.276c0.288,0,0.507,0.022,0.659,0.066c0.203,0.06,0.376,0.166,0.521,0.319
+                       c0.145,0.153,0.255,0.34,0.331,0.56c0.076,0.221,0.113,0.493,0.113,0.817c0,0.285-0.035,0.53-0.106,0.736
+                       c-0.086,0.251-0.21,0.455-0.371,0.611c-0.121,0.118-0.284,0.21-0.491,0.276c-0.153,0.049-0.36,0.073-0.618,0.073h-1.314V47.344z
+                        M498.458,47.93v2.291h0.521c0.195,0,0.336-0.011,0.422-0.033c0.114-0.029,0.208-0.077,0.282-0.144
+                       c0.075-0.067,0.136-0.179,0.182-0.334c0.048-0.155,0.071-0.366,0.071-0.634c0-0.267-0.023-0.473-0.071-0.616
+                       c-0.047-0.143-0.113-0.255-0.198-0.335c-0.084-0.08-0.192-0.134-0.323-0.163c-0.098-0.022-0.289-0.033-0.573-0.033H498.458z"/>
+               <path fill="#496B71" d="M501.253,50.803v-3.459h1.47c0.37,0,0.637,0.031,0.805,0.093s0.302,0.173,0.403,0.332
+                       c0.1,0.159,0.15,0.341,0.15,0.545c0,0.26-0.076,0.474-0.229,0.643c-0.152,0.169-0.38,0.276-0.684,0.32
+                       c0.151,0.088,0.276,0.185,0.375,0.291c0.098,0.105,0.231,0.293,0.397,0.561l0.423,0.675h-0.835l-0.505-0.752
+                       c-0.18-0.269-0.303-0.439-0.369-0.508c-0.066-0.07-0.136-0.118-0.21-0.144c-0.074-0.026-0.191-0.039-0.352-0.039h-0.141v1.444
+                       H501.253z M501.952,48.808h0.516c0.335,0,0.544-0.015,0.628-0.043c0.083-0.028,0.148-0.077,0.196-0.147
+                       c0.047-0.069,0.071-0.156,0.071-0.259c0-0.116-0.031-0.211-0.093-0.282c-0.062-0.071-0.15-0.116-0.263-0.135
+                       c-0.057-0.008-0.227-0.012-0.51-0.012h-0.544V48.808z"/>
+               <path fill="#496B71" d="M504.718,50.803v-3.459h0.699v3.459H504.718z"/>
+               <path fill="#496B71" d="M506.965,50.803l-1.236-3.459h0.757l0.875,2.56l0.847-2.56h0.741l-1.239,3.459H506.965z"/>
+               <path fill="#496B71" d="M509.305,50.803v-3.459h2.565v0.585h-1.867v0.767h1.737v0.583h-1.737v0.942h1.933v0.583H509.305z"/>
+       </g>
+</g>
+<g id="Main_Towns">
+       <g>
+               <path fill="#231F20" d="M504.279,88.812h2.559c0.506,0,0.884,0.021,1.133,0.063c0.248,0.043,0.472,0.13,0.668,0.264
+                       c0.197,0.134,0.361,0.312,0.491,0.535c0.132,0.222,0.197,0.472,0.197,0.749c0,0.3-0.081,0.575-0.243,0.825
+                       c-0.161,0.25-0.38,0.438-0.657,0.563c0.39,0.114,0.69,0.307,0.899,0.581s0.314,0.595,0.314,0.965c0,0.291-0.068,0.574-0.203,0.849
+                       c-0.136,0.275-0.32,0.495-0.555,0.659c-0.234,0.165-0.523,0.266-0.866,0.304c-0.215,0.023-0.735,0.038-1.559,0.044h-2.178V88.812z
+                        M505.571,89.877v1.48h0.847c0.504,0,0.817-0.007,0.939-0.022c0.22-0.026,0.395-0.103,0.521-0.229
+                       c0.127-0.127,0.19-0.293,0.19-0.5c0-0.198-0.054-0.358-0.164-0.483c-0.109-0.123-0.272-0.198-0.487-0.225
+                       c-0.128-0.015-0.496-0.022-1.104-0.022H505.571z M505.571,92.422v1.711h1.196c0.466,0,0.761-0.013,0.887-0.039
+                       c0.192-0.035,0.348-0.12,0.469-0.255c0.121-0.136,0.181-0.317,0.181-0.544c0-0.192-0.047-0.355-0.14-0.489
+                       c-0.093-0.134-0.228-0.231-0.404-0.293c-0.177-0.061-0.559-0.092-1.147-0.092H505.571z"/>
+               <path fill="#231F20" d="M510.731,95.212v-6.401h4.746v1.083h-3.454v1.419h3.213v1.078h-3.213v1.742h3.576v1.078H510.731z"/>
+               <path fill="#231F20" d="M518.136,95.212v-5.318h-1.9v-1.083h5.086v1.083h-1.894v5.318H518.136z"/>
+               <path fill="#231F20" d="M522.156,95.212v-6.401h4.746v1.083h-3.454v1.419h3.213v1.078h-3.213v1.742h3.576v1.078H522.156z"/>
+               <path fill="#231F20" d="M533.583,92.859v-1.078h2.785v2.55c-0.27,0.262-0.663,0.493-1.176,0.692
+                       c-0.514,0.199-1.034,0.299-1.561,0.299c-0.669,0-1.253-0.14-1.751-0.422c-0.497-0.28-0.871-0.682-1.122-1.205
+                       c-0.25-0.522-0.375-1.091-0.375-1.705c0-0.667,0.14-1.259,0.419-1.777c0.279-0.518,0.688-0.915,1.227-1.192
+                       c0.409-0.212,0.921-0.319,1.532-0.319c0.795,0,1.416,0.167,1.862,0.5c0.447,0.333,0.734,0.794,0.862,1.382l-1.284,0.24
+                       c-0.09-0.314-0.26-0.562-0.508-0.745c-0.249-0.181-0.56-0.273-0.932-0.273c-0.565,0-1.014,0.179-1.347,0.537
+                       c-0.334,0.358-0.5,0.889-0.5,1.594c0,0.76,0.168,1.329,0.506,1.71c0.337,0.379,0.779,0.57,1.327,0.57
+                       c0.27,0,0.541-0.053,0.814-0.159c0.272-0.106,0.505-0.235,0.701-0.387v-0.812H533.583z"/>
+               <path fill="#231F20" d="M537.564,95.212v-6.401h2.72c0.684,0,1.182,0.058,1.491,0.173c0.31,0.115,0.558,0.319,0.744,0.613
+                       c0.186,0.294,0.279,0.63,0.279,1.009c0,0.48-0.141,0.877-0.423,1.19c-0.282,0.313-0.704,0.51-1.266,0.591
+                       c0.279,0.163,0.51,0.342,0.692,0.537c0.182,0.195,0.427,0.541,0.735,1.039l0.782,1.249h-1.546l-0.934-1.393
+                       c-0.332-0.498-0.559-0.811-0.681-0.941c-0.122-0.13-0.252-0.218-0.388-0.267c-0.138-0.048-0.354-0.072-0.651-0.072h-0.262v2.672
+                       H537.564z M538.857,91.519h0.956c0.621,0,1.007-0.026,1.162-0.079c0.153-0.052,0.275-0.143,0.362-0.271
+                       c0.087-0.128,0.131-0.288,0.131-0.48c0-0.215-0.057-0.389-0.173-0.522c-0.115-0.132-0.277-0.216-0.487-0.251
+                       c-0.105-0.015-0.419-0.022-0.943-0.022h-1.008V91.519z"/>
+               <path fill="#231F20" d="M543.979,95.212v-6.401h1.292v6.401H543.979z"/>
+               <path fill="#231F20" d="M546.174,93.13l1.257-0.122c0.076,0.422,0.229,0.732,0.461,0.93c0.231,0.198,0.543,0.297,0.936,0.297
+                       c0.416,0,0.73-0.088,0.941-0.264c0.211-0.176,0.316-0.382,0.316-0.618c0-0.151-0.045-0.28-0.133-0.386
+                       c-0.089-0.106-0.244-0.199-0.466-0.277c-0.151-0.052-0.496-0.146-1.034-0.279c-0.693-0.172-1.179-0.383-1.458-0.633
+                       c-0.393-0.352-0.589-0.782-0.589-1.288c0-0.326,0.092-0.631,0.276-0.915c0.185-0.283,0.451-0.5,0.799-0.648
+                       c0.347-0.148,0.767-0.223,1.259-0.223c0.803,0,1.408,0.176,1.814,0.528c0.406,0.352,0.619,0.822,0.639,1.41l-1.292,0.057
+                       c-0.055-0.329-0.174-0.566-0.356-0.709c-0.181-0.145-0.455-0.216-0.818-0.216c-0.376,0-0.67,0.077-0.883,0.231
+                       c-0.137,0.099-0.205,0.231-0.205,0.397c0,0.151,0.064,0.281,0.192,0.389c0.163,0.137,0.559,0.279,1.188,0.428
+                       c0.629,0.148,1.093,0.302,1.395,0.46c0.301,0.159,0.537,0.375,0.707,0.651c0.17,0.275,0.255,0.615,0.255,1.019
+                       c0,0.367-0.102,0.71-0.306,1.03c-0.204,0.32-0.492,0.558-0.865,0.714c-0.373,0.156-0.837,0.234-1.392,0.234
+                       c-0.81,0-1.431-0.187-1.865-0.561C546.518,94.391,546.259,93.846,546.174,93.13z"/>
+               <path fill="#231F20" d="M552.465,95.212v-6.401h4.746v1.083h-3.454v1.419h3.213v1.078h-3.213v1.742h3.576v1.078H552.465z"/>
+       </g>
+       <g>
+               <path fill="#231F20" d="M413.102,86.004v-6.348h1.292v5.27h3.213v1.078H413.102z"/>
+               <path fill="#231F20" d="M424.301,86.004h-1.407l-0.559-1.454h-2.558l-0.529,1.454h-1.371l2.493-6.401h1.366L424.301,86.004z
+                        M421.921,83.472l-0.882-2.375l-0.864,2.375H421.921z"/>
+               <path fill="#231F20" d="M429.083,83.651l1.253,0.397c-0.192,0.699-0.511,1.218-0.959,1.556c-0.446,0.34-1.014,0.509-1.701,0.509
+                       c-0.85,0-1.548-0.291-2.096-0.871c-0.547-0.581-0.821-1.375-0.821-2.382c0-1.065,0.276-1.893,0.826-2.482
+                       c0.55-0.59,1.273-0.884,2.17-0.884c0.782,0,1.418,0.231,1.907,0.694c0.291,0.274,0.509,0.667,0.655,1.179l-1.28,0.306
+                       c-0.076-0.332-0.233-0.594-0.473-0.786c-0.24-0.192-0.532-0.288-0.875-0.288c-0.474,0-0.86,0.17-1.155,0.511
+                       c-0.296,0.341-0.443,0.892-0.443,1.655c0,0.809,0.146,1.385,0.437,1.729s0.669,0.515,1.135,0.515c0.343,0,0.638-0.109,0.886-0.327
+                       C428.796,84.463,428.974,84.119,429.083,83.651z"/>
+               <path fill="#231F20" d="M433.963,86.004v-6.348h1.292v5.27h3.213v1.078H433.963z"/>
+               <path fill="#231F20" d="M445.163,86.004h-1.407l-0.559-1.454h-2.558l-0.529,1.454h-1.371l2.493-6.401h1.366L445.163,86.004z
+                        M442.783,83.472l-0.882-2.375l-0.864,2.375H442.783z"/>
+               <path fill="#231F20" d="M448.006,79.603h2.559c0.506,0,0.884,0.021,1.133,0.063c0.248,0.043,0.472,0.131,0.668,0.264
+                       c0.197,0.134,0.361,0.312,0.491,0.535c0.132,0.222,0.197,0.472,0.197,0.749c0,0.3-0.081,0.575-0.243,0.825
+                       c-0.161,0.25-0.38,0.438-0.657,0.563c0.39,0.114,0.69,0.307,0.899,0.581s0.314,0.595,0.314,0.965c0,0.291-0.068,0.574-0.203,0.849
+                       c-0.136,0.275-0.32,0.495-0.555,0.659c-0.234,0.165-0.523,0.266-0.866,0.304c-0.215,0.023-0.735,0.038-1.559,0.044h-2.178V79.603z
+                        M449.298,80.669v1.48h0.847c0.504,0,0.817-0.007,0.939-0.022c0.22-0.026,0.395-0.103,0.521-0.229
+                       c0.127-0.127,0.19-0.293,0.19-0.5c0-0.198-0.054-0.358-0.164-0.483c-0.109-0.123-0.272-0.198-0.487-0.225
+                       c-0.128-0.015-0.496-0.022-1.104-0.022H449.298z M449.298,83.214v1.711h1.196c0.466,0,0.761-0.013,0.887-0.039
+                       c0.192-0.035,0.348-0.12,0.469-0.255c0.121-0.136,0.181-0.317,0.181-0.544c0-0.192-0.047-0.355-0.14-0.489
+                       c-0.093-0.134-0.228-0.231-0.404-0.293c-0.177-0.061-0.559-0.092-1.147-0.092H449.298z"/>
+               <path fill="#231F20" d="M454.459,86.004v-6.401h4.746v1.083h-3.454v1.419h3.213v1.078h-3.213v1.742h3.576v1.078H454.459z"/>
+               <path fill="#231F20" d="M460.458,86.004v-6.348h1.292v5.27h3.213v1.078H460.458z"/>
+               <path fill="#231F20" d="M465.919,86.004v-6.348h1.292v5.27h3.213v1.078H465.919z"/>
+               <path fill="#231F20" d="M471.347,86.004v-6.401h4.746v1.083h-3.454v1.419h3.213v1.078h-3.213v1.742h3.576v1.078H471.347z"/>
+       </g>
+       <g id="chassel-region" class="city-region">
+               <path fill="#231F20" d="M254.635,265.01l1.253,0.398c-0.192,0.699-0.512,1.218-0.959,1.556c-0.447,0.34-1.013,0.508-1.7,0.508
+                       c-0.85,0-1.548-0.29-2.096-0.87c-0.547-0.581-0.821-1.375-0.821-2.382c0-1.065,0.275-1.893,0.825-2.482
+                       c0.55-0.59,1.273-0.885,2.17-0.885c0.783,0,1.419,0.232,1.908,0.695c0.291,0.274,0.509,0.667,0.655,1.179l-1.279,0.306
+                       c-0.076-0.332-0.233-0.594-0.474-0.786c-0.24-0.192-0.532-0.288-0.875-0.288c-0.474,0-0.86,0.17-1.155,0.511
+                       c-0.296,0.34-0.443,0.892-0.443,1.654c0,0.809,0.146,1.385,0.437,1.729c0.291,0.343,0.669,0.515,1.135,0.515
+                       c0.343,0,0.639-0.109,0.886-0.328C254.349,265.823,254.527,265.48,254.635,265.01z"/>
+               <path fill="#231F20" d="M257.001,267.364v-6.401h1.292v2.52h2.532v-2.52h1.292v6.401h-1.292v-2.798h-2.532v2.798H257.001z"/>
+               <path fill="#231F20" d="M269.226,267.364h-1.406l-0.559-1.453h-2.559l-0.528,1.453h-1.371l2.493-6.401h1.367L269.226,267.364z
+                        M266.846,264.831l-0.882-2.375l-0.864,2.375H266.846z"/>
+               <path fill="#231F20" d="M269.584,265.282l1.257-0.122c0.076,0.422,0.229,0.732,0.461,0.93c0.231,0.198,0.543,0.297,0.936,0.297
+                       c0.416,0,0.73-0.088,0.941-0.264c0.211-0.177,0.316-0.382,0.316-0.618c0-0.151-0.045-0.28-0.133-0.386
+                       c-0.089-0.107-0.244-0.199-0.465-0.277c-0.151-0.052-0.496-0.146-1.035-0.279c-0.693-0.172-1.179-0.382-1.458-0.634
+                       c-0.393-0.351-0.589-0.781-0.589-1.288c0-0.326,0.092-0.631,0.277-0.915c0.185-0.283,0.451-0.5,0.799-0.648
+                       c0.347-0.148,0.767-0.223,1.259-0.223c0.803,0,1.408,0.177,1.814,0.529c0.406,0.352,0.619,0.823,0.639,1.41l-1.292,0.057
+                       c-0.055-0.329-0.174-0.566-0.356-0.709c-0.182-0.145-0.455-0.216-0.818-0.216c-0.375,0-0.669,0.078-0.882,0.232
+                       c-0.137,0.099-0.205,0.231-0.205,0.397c0,0.151,0.064,0.281,0.192,0.389c0.163,0.137,0.559,0.279,1.188,0.427
+                       c0.629,0.149,1.093,0.303,1.395,0.461c0.301,0.159,0.537,0.375,0.707,0.651c0.17,0.275,0.255,0.615,0.255,1.019
+                       c0,0.367-0.102,0.711-0.306,1.03c-0.204,0.321-0.492,0.559-0.864,0.714c-0.373,0.156-0.837,0.234-1.393,0.234
+                       c-0.809,0-1.431-0.187-1.864-0.561C269.927,266.542,269.668,265.998,269.584,265.282z"/>
+               <path fill="#231F20" d="M275.548,265.282l1.257-0.122c0.076,0.422,0.229,0.732,0.461,0.93c0.231,0.198,0.543,0.297,0.936,0.297
+                       c0.416,0,0.73-0.088,0.941-0.264c0.211-0.177,0.316-0.382,0.316-0.618c0-0.151-0.045-0.28-0.133-0.386
+                       c-0.089-0.107-0.244-0.199-0.465-0.277c-0.151-0.052-0.496-0.146-1.035-0.279c-0.693-0.172-1.179-0.382-1.458-0.634
+                       c-0.393-0.351-0.589-0.781-0.589-1.288c0-0.326,0.092-0.631,0.277-0.915c0.185-0.283,0.451-0.5,0.799-0.648
+                       c0.347-0.148,0.767-0.223,1.259-0.223c0.803,0,1.408,0.177,1.814,0.529c0.406,0.352,0.619,0.823,0.639,1.41l-1.292,0.057
+                       c-0.055-0.329-0.174-0.566-0.356-0.709c-0.182-0.145-0.455-0.216-0.818-0.216c-0.375,0-0.669,0.078-0.882,0.232
+                       c-0.137,0.099-0.205,0.231-0.205,0.397c0,0.151,0.064,0.281,0.192,0.389c0.163,0.137,0.559,0.279,1.188,0.427
+                       c0.629,0.149,1.093,0.303,1.395,0.461c0.301,0.159,0.537,0.375,0.707,0.651c0.17,0.275,0.255,0.615,0.255,1.019
+                       c0,0.367-0.102,0.711-0.306,1.03c-0.204,0.321-0.492,0.559-0.864,0.714c-0.373,0.156-0.837,0.234-1.393,0.234
+                       c-0.809,0-1.431-0.187-1.864-0.561C275.891,266.542,275.632,265.998,275.548,265.282z"/>
+               <path fill="#231F20" d="M281.839,267.364v-6.401h4.746v1.083h-3.454v1.419h3.213v1.078h-3.213v1.742h3.576v1.079H281.839z"/>
+               <path fill="#231F20" d="M287.838,267.364v-6.348h1.292v5.269h3.213v1.079H287.838z"/>
+               <path fill="#231F20" d="M293.3,267.364v-6.348h1.292v5.269h3.213v1.079H293.3z"/>
+       </g>
+       <g>
+               <path fill="#231F20" d="M193.953,291.091v-5.318h-1.899v-1.083h5.086v1.083h-1.895v5.318H193.953z"/>
+               <path fill="#231F20" d="M197.551,287.93c0-0.652,0.098-1.199,0.293-1.642c0.146-0.326,0.344-0.618,0.596-0.877
+                       c0.252-0.259,0.528-0.451,0.828-0.576c0.399-0.169,0.859-0.254,1.38-0.254c0.943,0,1.697,0.293,2.264,0.878
+                       s0.849,1.399,0.849,2.44c0,1.034-0.281,1.842-0.843,2.426c-0.562,0.584-1.313,0.875-2.253,0.875c-0.952,0-1.709-0.29-2.27-0.87
+                       C197.832,289.748,197.551,288.949,197.551,287.93z M198.883,287.886c0,0.725,0.167,1.274,0.502,1.648
+                       c0.335,0.374,0.76,0.561,1.275,0.561c0.515,0,0.938-0.185,1.269-0.557c0.33-0.371,0.495-0.928,0.495-1.67
+                       c0-0.733-0.161-1.281-0.483-1.642c-0.322-0.361-0.749-0.541-1.281-0.541c-0.533,0-0.962,0.182-1.288,0.548
+                       C199.046,286.599,198.883,287.15,198.883,287.886z"/>
+               <path fill="#231F20" d="M204.729,291.091v-6.401h1.292v6.401H204.729z"/>
+               <path fill="#231F20" d="M208.885,291.091l-2.288-6.401h1.402l1.62,4.738l1.567-4.738h1.371l-2.292,6.401H208.885z"/>
+               <path fill="#231F20" d="M212.954,287.93c0-0.652,0.098-1.199,0.293-1.642c0.146-0.326,0.344-0.618,0.596-0.877
+                       c0.252-0.259,0.528-0.451,0.828-0.576c0.399-0.169,0.859-0.254,1.38-0.254c0.943,0,1.697,0.293,2.264,0.878
+                       s0.849,1.399,0.849,2.44c0,1.034-0.281,1.842-0.843,2.426c-0.562,0.584-1.313,0.875-2.253,0.875c-0.952,0-1.709-0.29-2.27-0.87
+                       C213.235,289.748,212.954,288.949,212.954,287.93z M214.286,287.886c0,0.725,0.167,1.274,0.502,1.648
+                       c0.335,0.374,0.76,0.561,1.275,0.561c0.515,0,0.938-0.185,1.269-0.557c0.33-0.371,0.495-0.928,0.495-1.67
+                       c0-0.733-0.161-1.281-0.483-1.642c-0.322-0.361-0.749-0.541-1.281-0.541c-0.533,0-0.962,0.182-1.288,0.548
+                       C214.449,286.599,214.286,287.15,214.286,287.886z"/>
+               <path fill="#231F20" d="M220.206,291.091v-6.348h1.292v5.269h3.213v1.079H220.206z"/>
+               <path fill="#231F20" d="M231.405,291.091h-1.406l-0.559-1.453h-2.559l-0.528,1.453h-1.371l2.493-6.401h1.367L231.405,291.091z
+                        M229.026,288.558l-0.882-2.375l-0.864,2.375H229.026z"/>
+       </g>
+       <g>
+               <path fill="#231F20" d="M323.189,69.72v-6.401h4.746v1.083h-3.454v1.419h3.213v1.078h-3.213v1.742h3.576v1.078H323.189z"/>
+               <path fill="#231F20" d="M334.925,69.72h-1.406l-0.559-1.454h-2.559l-0.528,1.454h-1.371l2.493-6.401h1.367L334.925,69.72z
+                        M332.545,67.187l-0.882-2.375l-0.864,2.375H332.545z"/>
+               <path fill="#231F20" d="M338.588,67.366v-1.078h2.786v2.55c-0.271,0.262-0.663,0.493-1.176,0.692
+                       c-0.514,0.199-1.034,0.299-1.561,0.299c-0.669,0-1.253-0.14-1.751-0.422c-0.498-0.28-0.872-0.682-1.122-1.205
+                       c-0.25-0.522-0.375-1.091-0.375-1.705c0-0.667,0.14-1.259,0.419-1.777s0.688-0.915,1.227-1.192
+                       c0.41-0.212,0.921-0.319,1.532-0.319c0.795,0,1.415,0.167,1.862,0.5c0.447,0.333,0.734,0.794,0.863,1.382l-1.284,0.24
+                       c-0.09-0.314-0.26-0.562-0.508-0.745c-0.249-0.181-0.56-0.273-0.932-0.273c-0.565,0-1.014,0.179-1.347,0.537
+                       c-0.334,0.358-0.5,0.889-0.5,1.594c0,0.76,0.169,1.329,0.506,1.71c0.338,0.379,0.78,0.57,1.327,0.57
+                       c0.271,0,0.542-0.053,0.815-0.159c0.272-0.106,0.505-0.235,0.701-0.387v-0.812H338.588z"/>
+               <path fill="#231F20" d="M342.6,69.72v-6.348h1.292v5.27h3.213v1.078H342.6z"/>
+               <path fill="#231F20" d="M348.027,69.72v-6.401h4.746v1.083h-3.454v1.419h3.213v1.078h-3.213v1.742h3.576v1.078H348.027z"/>
+               <path fill="#231F20" d="M356.48,69.72v-6.401h2.72c0.684,0,1.181,0.058,1.491,0.173c0.31,0.115,0.558,0.319,0.745,0.613
+                       c0.186,0.294,0.279,0.63,0.279,1.009c0,0.48-0.141,0.877-0.424,1.19c-0.282,0.313-0.704,0.51-1.266,0.591
+                       c0.279,0.163,0.51,0.342,0.692,0.537s0.427,0.541,0.736,1.039l0.782,1.249h-1.546l-0.934-1.393
+                       c-0.332-0.498-0.559-0.811-0.681-0.941c-0.122-0.13-0.252-0.218-0.389-0.267c-0.137-0.048-0.354-0.072-0.651-0.072h-0.262v2.672
+                       H356.48z M357.772,66.026h0.956c0.62,0,1.007-0.026,1.161-0.079s0.275-0.143,0.362-0.271c0.087-0.128,0.131-0.288,0.131-0.48
+                       c0-0.215-0.058-0.389-0.173-0.522c-0.115-0.132-0.277-0.216-0.487-0.251c-0.105-0.015-0.419-0.022-0.943-0.022h-1.009V66.026z"/>
+               <path fill="#231F20" d="M362.894,69.72v-6.401h1.292v6.401H362.894z"/>
+               <path fill="#231F20" d="M367.05,69.72l-2.288-6.401h1.402l1.62,4.737l1.567-4.737h1.371l-2.292,6.401H367.05z"/>
+               <path fill="#231F20" d="M371.381,69.72v-6.401h4.746v1.083h-3.454v1.419h3.213v1.078h-3.213v1.742h3.576v1.078H371.381z"/>
+               <path fill="#231F20" d="M377.35,69.72v-6.401h2.719c0.685,0,1.182,0.058,1.492,0.173c0.31,0.115,0.557,0.319,0.743,0.613
+                       c0.186,0.294,0.279,0.63,0.279,1.009c0,0.48-0.14,0.877-0.423,1.19c-0.281,0.313-0.704,0.51-1.265,0.591
+                       c0.279,0.163,0.51,0.342,0.691,0.537c0.182,0.195,0.427,0.541,0.735,1.039l0.782,1.249h-1.545l-0.935-1.393
+                       c-0.332-0.498-0.559-0.811-0.681-0.941s-0.252-0.218-0.388-0.267c-0.138-0.048-0.353-0.072-0.65-0.072h-0.262v2.672H377.35z
+                        M378.643,66.026h0.955c0.621,0,1.007-0.026,1.162-0.079c0.153-0.052,0.276-0.143,0.363-0.271c0.087-0.128,0.13-0.288,0.13-0.48
+                       c0-0.215-0.056-0.389-0.173-0.522c-0.114-0.132-0.277-0.216-0.487-0.251c-0.105-0.015-0.419-0.022-0.943-0.022h-1.007V66.026z"/>
+       </g>
+       <g>
+               <path fill="#231F20" d="M358.959,45.537v-6.401h4.746v1.083h-3.454v1.419h3.213v1.078h-3.213v1.742h3.576v1.078H358.959z"/>
+               <path fill="#231F20" d="M370.695,45.537h-1.406l-0.559-1.454h-2.559l-0.528,1.454h-1.371l2.493-6.401h1.367L370.695,45.537z
+                        M368.316,43.005l-0.882-2.375l-0.864,2.375H368.316z"/>
+               <path fill="#231F20" d="M374.359,43.184v-1.078h2.785v2.55c-0.27,0.262-0.664,0.493-1.176,0.692
+                       c-0.514,0.199-1.034,0.299-1.562,0.299c-0.669,0-1.253-0.14-1.75-0.422c-0.498-0.28-0.872-0.682-1.122-1.205
+                       c-0.25-0.522-0.375-1.091-0.375-1.705c0-0.667,0.14-1.259,0.419-1.777c0.279-0.518,0.688-0.915,1.227-1.192
+                       c0.41-0.212,0.921-0.319,1.532-0.319c0.796,0,1.417,0.167,1.863,0.5c0.446,0.333,0.733,0.794,0.862,1.382l-1.283,0.24
+                       c-0.091-0.314-0.26-0.562-0.508-0.745c-0.25-0.181-0.561-0.273-0.933-0.273c-0.565,0-1.013,0.179-1.346,0.537
+                       c-0.334,0.358-0.5,0.889-0.5,1.594c0,0.76,0.169,1.329,0.506,1.71c0.338,0.379,0.779,0.57,1.328,0.57
+                       c0.27,0,0.541-0.053,0.813-0.159c0.272-0.106,0.506-0.235,0.701-0.387v-0.812H374.359z"/>
+               <path fill="#231F20" d="M378.37,45.537v-6.348h1.292v5.27h3.213v1.078H378.37z"/>
+               <path fill="#231F20" d="M383.798,45.537v-6.401h4.746v1.083h-3.454v1.419h3.213v1.078h-3.213v1.742h3.576v1.078H383.798z"/>
+               <path fill="#231F20" d="M392.252,45.537v-6.401h1.292v2.519h2.532v-2.519h1.292v6.401h-1.292v-2.799h-2.532v2.799H392.252z"/>
+               <path fill="#231F20" d="M404.477,45.537h-1.407l-0.559-1.454h-2.558l-0.529,1.454h-1.371l2.493-6.401h1.366L404.477,45.537z
+                        M402.097,43.005l-0.882-2.375l-0.864,2.375H402.097z"/>
+               <path fill="#231F20" d="M405.167,45.537v-6.401h2.72c0.684,0,1.182,0.058,1.491,0.173c0.31,0.115,0.558,0.319,0.744,0.613
+                       s0.279,0.63,0.279,1.009c0,0.48-0.141,0.877-0.423,1.19c-0.282,0.313-0.704,0.51-1.266,0.591c0.279,0.163,0.51,0.342,0.692,0.537
+                       c0.182,0.195,0.427,0.541,0.735,1.039l0.782,1.249h-1.546l-0.934-1.393c-0.332-0.498-0.559-0.811-0.681-0.941
+                       c-0.122-0.13-0.252-0.218-0.388-0.267c-0.138-0.048-0.354-0.072-0.651-0.072h-0.262v2.672H405.167z M406.46,41.843h0.956
+                       c0.621,0,1.007-0.026,1.162-0.079c0.153-0.052,0.275-0.143,0.362-0.271c0.087-0.128,0.131-0.288,0.131-0.48
+                       c0-0.215-0.057-0.389-0.173-0.522c-0.115-0.132-0.277-0.216-0.487-0.251c-0.105-0.015-0.419-0.022-0.943-0.022h-1.008V41.843z"/>
+               <path fill="#231F20" d="M411.625,39.136h2.559c0.506,0,0.884,0.021,1.133,0.063c0.248,0.043,0.472,0.13,0.668,0.264
+                       c0.197,0.134,0.361,0.312,0.491,0.535c0.132,0.222,0.197,0.472,0.197,0.749c0,0.3-0.081,0.575-0.243,0.825
+                       c-0.161,0.25-0.38,0.438-0.657,0.563c0.39,0.114,0.69,0.307,0.899,0.581s0.314,0.595,0.314,0.965c0,0.291-0.068,0.574-0.203,0.849
+                       c-0.136,0.275-0.32,0.495-0.555,0.659c-0.234,0.165-0.523,0.266-0.866,0.304c-0.215,0.023-0.735,0.038-1.559,0.044h-2.178V39.136z
+                        M412.917,40.202v1.48h0.847c0.504,0,0.817-0.007,0.939-0.022c0.22-0.026,0.395-0.103,0.521-0.229
+                       c0.127-0.127,0.19-0.293,0.19-0.5c0-0.198-0.054-0.358-0.164-0.483c-0.109-0.123-0.272-0.198-0.487-0.225
+                       c-0.128-0.015-0.496-0.022-1.104-0.022H412.917z M412.917,42.747v1.711h1.196c0.466,0,0.761-0.013,0.887-0.039
+                       c0.192-0.035,0.348-0.12,0.469-0.255c0.121-0.136,0.181-0.317,0.181-0.544c0-0.192-0.047-0.355-0.14-0.489
+                       s-0.228-0.231-0.404-0.293c-0.177-0.061-0.559-0.092-1.147-0.092H412.917z"/>
+               <path fill="#231F20" d="M417.816,42.376c0-0.652,0.098-1.199,0.293-1.642c0.146-0.326,0.344-0.619,0.596-0.878
+                       c0.252-0.259,0.528-0.451,0.828-0.576c0.399-0.169,0.859-0.253,1.38-0.253c0.943,0,1.698,0.293,2.264,0.878
+                       c0.567,0.585,0.85,1.399,0.85,2.441c0,1.033-0.281,1.842-0.843,2.425c-0.562,0.584-1.313,0.876-2.253,0.876
+                       c-0.952,0-1.709-0.291-2.27-0.871C418.098,44.194,417.816,43.395,417.816,42.376z M419.148,42.332
+                       c0,0.725,0.167,1.274,0.502,1.648c0.335,0.374,0.761,0.561,1.275,0.561c0.516,0,0.938-0.185,1.269-0.557
+                       c0.33-0.371,0.495-0.928,0.495-1.67c0-0.733-0.16-1.281-0.482-1.642c-0.321-0.361-0.748-0.541-1.282-0.541
+                       c-0.532,0-0.962,0.183-1.288,0.548C419.311,41.045,419.148,41.596,419.148,42.332z"/>
+               <path fill="#231F20" d="M425.038,45.537v-6.401h2.72c0.684,0,1.182,0.058,1.491,0.173c0.31,0.115,0.558,0.319,0.744,0.613
+                       c0.186,0.294,0.279,0.63,0.279,1.009c0,0.48-0.141,0.877-0.423,1.19c-0.282,0.313-0.704,0.51-1.266,0.591
+                       c0.279,0.163,0.51,0.342,0.692,0.537c0.182,0.195,0.427,0.541,0.735,1.039l0.782,1.249h-1.546l-0.934-1.393
+                       c-0.332-0.498-0.559-0.811-0.681-0.941c-0.122-0.13-0.252-0.218-0.388-0.267c-0.138-0.048-0.354-0.072-0.651-0.072h-0.262v2.672
+                       H425.038z M426.33,41.843h0.956c0.621,0,1.007-0.026,1.162-0.079c0.153-0.052,0.275-0.143,0.362-0.271
+                       c0.087-0.128,0.131-0.288,0.131-0.48c0-0.215-0.057-0.389-0.173-0.522c-0.114-0.132-0.277-0.216-0.487-0.251
+                       c-0.105-0.015-0.419-0.022-0.943-0.022h-1.008V41.843z"/>
+       </g>
+       <g>
+               <g>
+                       <path fill="#231F20" d="M526.919,34.508l1.253,0.397c-0.192,0.699-0.511,1.218-0.959,1.556c-0.446,0.34-1.014,0.509-1.701,0.509
+                               c-0.85,0-1.549-0.291-2.096-0.871c-0.547-0.581-0.821-1.375-0.821-2.382c0-1.065,0.276-1.893,0.826-2.482
+                               c0.55-0.59,1.273-0.884,2.17-0.884c0.782,0,1.419,0.231,1.907,0.694c0.291,0.274,0.509,0.667,0.655,1.179l-1.28,0.306
+                               c-0.076-0.332-0.233-0.594-0.473-0.786c-0.24-0.192-0.532-0.288-0.875-0.288c-0.474,0-0.86,0.17-1.155,0.511
+                               c-0.296,0.341-0.443,0.892-0.443,1.655c0,0.809,0.146,1.385,0.437,1.729c0.291,0.343,0.669,0.515,1.135,0.515
+                               c0.343,0,0.638-0.109,0.886-0.327C526.633,35.32,526.81,34.977,526.919,34.508z"/>
+                       <path fill="#231F20" d="M529.018,33.701c0-0.652,0.098-1.199,0.293-1.642c0.146-0.326,0.344-0.619,0.596-0.878
+                               c0.252-0.259,0.528-0.451,0.828-0.576c0.399-0.169,0.859-0.253,1.38-0.253c0.943,0,1.698,0.293,2.264,0.878
+                               c0.567,0.585,0.85,1.399,0.85,2.441c0,1.033-0.281,1.842-0.843,2.425c-0.562,0.584-1.313,0.876-2.253,0.876
+                               c-0.952,0-1.709-0.291-2.27-0.871C529.3,35.519,529.018,34.719,529.018,33.701z M530.351,33.657c0,0.725,0.167,1.274,0.502,1.648
+                               c0.335,0.374,0.761,0.561,1.275,0.561c0.516,0,0.938-0.185,1.269-0.557c0.33-0.371,0.495-0.928,0.495-1.67
+                               c0-0.733-0.16-1.281-0.482-1.642c-0.321-0.361-0.748-0.541-1.282-0.541c-0.532,0-0.961,0.183-1.288,0.548
+                               C530.514,32.37,530.351,32.921,530.351,33.657z"/>
+                       <path fill="#231F20" d="M536.235,36.862v-6.401h2.074c0.786,0,1.298,0.032,1.537,0.096c0.367,0.096,0.673,0.305,0.922,0.627
+                               c0.246,0.322,0.371,0.737,0.371,1.246c0,0.393-0.072,0.723-0.214,0.991c-0.144,0.268-0.324,0.478-0.544,0.631
+                               c-0.219,0.153-0.443,0.254-0.67,0.304c-0.309,0.061-0.755,0.092-1.34,0.092h-0.843v2.414H536.235z M537.527,31.544v1.816h0.708
+                               c0.508,0,0.849-0.033,1.021-0.1c0.172-0.067,0.307-0.172,0.405-0.314c0.097-0.143,0.146-0.309,0.146-0.498
+                               c0-0.233-0.069-0.425-0.206-0.576c-0.137-0.151-0.31-0.246-0.52-0.284c-0.154-0.029-0.464-0.044-0.929-0.044H537.527z"/>
+                       <path fill="#231F20" d="M542.199,36.862v-6.401h2.074c0.786,0,1.298,0.032,1.537,0.096c0.367,0.096,0.673,0.305,0.922,0.627
+                               c0.246,0.322,0.371,0.737,0.371,1.246c0,0.393-0.072,0.723-0.213,0.991c-0.144,0.268-0.324,0.478-0.544,0.631
+                               c-0.219,0.153-0.443,0.254-0.67,0.304c-0.309,0.061-0.755,0.092-1.34,0.092h-0.843v2.414H542.199z M543.491,31.544v1.816h0.708
+                               c0.508,0,0.849-0.033,1.021-0.1c0.172-0.067,0.307-0.172,0.405-0.314c0.097-0.143,0.146-0.309,0.146-0.498
+                               c0-0.233-0.069-0.425-0.206-0.576c-0.137-0.151-0.31-0.246-0.52-0.284c-0.154-0.029-0.464-0.044-0.93-0.044H543.491z"/>
+                       <path fill="#231F20" d="M548.163,36.862v-6.401h4.746v1.083h-3.454v1.419h3.213v1.078h-3.213v1.742h3.576v1.078H548.163z"/>
+                       <path fill="#231F20" d="M554.132,36.862v-6.401h2.72c0.684,0,1.182,0.058,1.491,0.173c0.31,0.115,0.558,0.319,0.744,0.613
+                               c0.186,0.294,0.279,0.63,0.279,1.009c0,0.48-0.141,0.877-0.423,1.19c-0.282,0.313-0.704,0.51-1.266,0.591
+                               c0.279,0.163,0.51,0.342,0.692,0.537c0.182,0.195,0.427,0.541,0.735,1.039l0.782,1.249h-1.546l-0.934-1.393
+                               c-0.332-0.498-0.559-0.811-0.681-0.941c-0.122-0.13-0.252-0.218-0.388-0.267c-0.138-0.048-0.354-0.072-0.651-0.072h-0.262v2.672
+                               H554.132z M555.424,33.168h0.956c0.621,0,1.007-0.026,1.162-0.079c0.153-0.052,0.275-0.143,0.362-0.271
+                               c0.087-0.128,0.131-0.288,0.131-0.48c0-0.215-0.057-0.389-0.173-0.522c-0.115-0.132-0.277-0.216-0.487-0.251
+                               c-0.105-0.015-0.419-0.022-0.943-0.022h-1.008V33.168z"/>
+                       <path fill="#231F20" d="M563.073,36.862v-6.401h1.292v2.519h2.532v-2.519h1.292v6.401h-1.292v-2.799h-2.532v2.799H563.073z"/>
+                       <path fill="#231F20" d="M575.299,36.862h-1.407l-0.559-1.454h-2.558l-0.529,1.454h-1.371l2.493-6.401h1.366L575.299,36.862z
+                                M572.919,34.329l-0.882-2.375l-0.864,2.375H572.919z"/>
+                       <path fill="#231F20" d="M575.988,36.862v-6.401h2.72c0.684,0,1.182,0.058,1.491,0.173c0.31,0.115,0.558,0.319,0.744,0.613
+                               c0.186,0.294,0.279,0.63,0.279,1.009c0,0.48-0.141,0.877-0.423,1.19c-0.282,0.313-0.704,0.51-1.266,0.591
+                               c0.279,0.163,0.51,0.342,0.692,0.537c0.182,0.195,0.427,0.541,0.735,1.039l0.782,1.249h-1.546l-0.934-1.393
+                               c-0.332-0.498-0.559-0.811-0.681-0.941c-0.122-0.13-0.252-0.218-0.388-0.267c-0.138-0.048-0.354-0.072-0.651-0.072h-0.262v2.672
+                               H575.988z M577.281,33.168h0.956c0.621,0,1.007-0.026,1.162-0.079c0.153-0.052,0.275-0.143,0.362-0.271
+                               c0.087-0.128,0.131-0.288,0.131-0.48c0-0.215-0.057-0.389-0.173-0.522c-0.115-0.132-0.277-0.216-0.487-0.251
+                               c-0.105-0.015-0.419-0.022-0.943-0.022h-1.008V33.168z"/>
+                       <path fill="#231F20" d="M582.446,30.461h2.558c0.506,0,0.884,0.021,1.133,0.063c0.248,0.043,0.472,0.13,0.668,0.264
+                               c0.197,0.134,0.361,0.312,0.491,0.535c0.132,0.222,0.197,0.472,0.197,0.749c0,0.3-0.081,0.575-0.243,0.825
+                               c-0.161,0.25-0.38,0.438-0.657,0.563c0.39,0.114,0.69,0.307,0.899,0.581c0.21,0.274,0.314,0.595,0.314,0.965
+                               c0,0.291-0.068,0.574-0.203,0.849c-0.136,0.275-0.32,0.495-0.555,0.659c-0.234,0.165-0.523,0.266-0.866,0.304
+                               c-0.215,0.023-0.735,0.038-1.559,0.044h-2.178V30.461z M583.739,31.526v1.48h0.847c0.504,0,0.817-0.007,0.939-0.022
+                               c0.22-0.026,0.395-0.103,0.521-0.229c0.127-0.127,0.19-0.293,0.19-0.5c0-0.198-0.054-0.358-0.164-0.483
+                               c-0.109-0.123-0.272-0.198-0.487-0.225c-0.128-0.015-0.496-0.022-1.104-0.022H583.739z M583.739,34.072v1.711h1.196
+                               c0.466,0,0.761-0.013,0.887-0.039c0.192-0.035,0.348-0.12,0.469-0.255c0.121-0.136,0.181-0.317,0.181-0.544
+                               c0-0.192-0.047-0.355-0.14-0.489s-0.228-0.231-0.404-0.293c-0.177-0.061-0.559-0.092-1.147-0.092H583.739z"/>
+                       <path fill="#231F20" d="M588.637,33.701c0-0.652,0.098-1.199,0.293-1.642c0.146-0.326,0.344-0.619,0.596-0.878
+                               c0.252-0.259,0.528-0.451,0.828-0.576c0.399-0.169,0.859-0.253,1.38-0.253c0.943,0,1.698,0.293,2.264,0.878
+                               c0.567,0.585,0.85,1.399,0.85,2.441c0,1.033-0.281,1.842-0.843,2.425c-0.562,0.584-1.313,0.876-2.253,0.876
+                               c-0.952,0-1.709-0.291-2.27-0.871C588.919,35.519,588.637,34.719,588.637,33.701z M589.969,33.657
+                               c0,0.725,0.167,1.274,0.502,1.648c0.335,0.374,0.761,0.561,1.275,0.561c0.516,0,0.938-0.185,1.269-0.557
+                               c0.33-0.371,0.495-0.928,0.495-1.67c0-0.733-0.16-1.281-0.482-1.642c-0.321-0.361-0.748-0.541-1.282-0.541
+                               c-0.532,0-0.962,0.183-1.288,0.548C590.133,32.37,589.969,32.921,589.969,33.657z"/>
+                       <path fill="#231F20" d="M595.859,36.862v-6.401h2.72c0.684,0,1.182,0.058,1.491,0.173c0.31,0.115,0.558,0.319,0.744,0.613
+                               c0.186,0.294,0.279,0.63,0.279,1.009c0,0.48-0.141,0.877-0.423,1.19s-0.704,0.51-1.266,0.591c0.279,0.163,0.51,0.342,0.692,0.537
+                               c0.182,0.195,0.427,0.541,0.735,1.039l0.782,1.249h-1.546l-0.934-1.393c-0.332-0.498-0.559-0.811-0.681-0.941
+                               c-0.122-0.13-0.252-0.218-0.388-0.267c-0.138-0.048-0.354-0.072-0.651-0.072h-0.262v2.672H595.859z M597.151,33.168h0.956
+                               c0.621,0,1.007-0.026,1.162-0.079c0.153-0.052,0.275-0.143,0.362-0.271c0.087-0.128,0.131-0.288,0.131-0.48
+                               c0-0.215-0.057-0.389-0.173-0.522c-0.115-0.132-0.277-0.216-0.487-0.251c-0.105-0.015-0.419-0.022-0.943-0.022h-1.008V33.168z"/>
+               </g>
+       </g>
+       <g>
+               <path fill="#231F20" d="M274.719,207.659v-6.401h1.292v2.52h2.532v-2.52h1.292v6.401h-1.292v-2.798h-2.532v2.798H274.719z"/>
+               <path fill="#231F20" d="M286.944,207.659h-1.406l-0.559-1.453h-2.559l-0.528,1.453h-1.371l2.493-6.401h1.367L286.944,207.659z
+                        M284.564,205.127l-0.882-2.375l-0.864,2.375H284.564z"/>
+               <path fill="#231F20" d="M287.642,207.659v-6.401h1.257l2.62,4.274v-4.274h1.201v6.401h-1.297l-2.58-4.174v4.174H287.642z"/>
+               <path fill="#231F20" d="M298.182,205.306l1.253,0.398c-0.192,0.699-0.512,1.218-0.959,1.556c-0.447,0.34-1.013,0.508-1.7,0.508
+                       c-0.85,0-1.548-0.29-2.096-0.87c-0.547-0.581-0.821-1.375-0.821-2.382c0-1.065,0.275-1.893,0.825-2.482
+                       c0.55-0.59,1.273-0.885,2.17-0.885c0.783,0,1.419,0.232,1.908,0.695c0.291,0.274,0.509,0.667,0.655,1.179l-1.279,0.306
+                       c-0.076-0.332-0.233-0.594-0.474-0.786c-0.24-0.192-0.532-0.288-0.875-0.288c-0.474,0-0.86,0.17-1.155,0.511
+                       c-0.296,0.34-0.443,0.892-0.443,1.654c0,0.809,0.146,1.385,0.437,1.729c0.291,0.343,0.669,0.515,1.135,0.515
+                       c0.343,0,0.639-0.109,0.886-0.328C297.897,206.119,298.074,205.775,298.182,205.306z"/>
+               <path fill="#231F20" d="M300.282,204.498c0-0.652,0.098-1.199,0.293-1.642c0.146-0.326,0.344-0.618,0.596-0.877
+                       s0.528-0.451,0.828-0.576c0.399-0.169,0.859-0.254,1.38-0.254c0.943,0,1.697,0.293,2.264,0.878
+                       c0.566,0.585,0.849,1.399,0.849,2.44c0,1.034-0.281,1.842-0.843,2.426c-0.562,0.584-1.313,0.875-2.253,0.875
+                       c-0.952,0-1.709-0.29-2.27-0.87C300.563,206.317,300.282,205.517,300.282,204.498z M301.614,204.455
+                       c0,0.725,0.167,1.274,0.502,1.648c0.335,0.374,0.76,0.561,1.275,0.561c0.515,0,0.938-0.185,1.269-0.557
+                       c0.33-0.371,0.495-0.928,0.495-1.67c0-0.733-0.161-1.281-0.483-1.642c-0.322-0.361-0.749-0.541-1.281-0.541
+                       c-0.533,0-0.962,0.182-1.288,0.548C301.777,203.167,301.614,203.718,301.614,204.455z"/>
+               <path fill="#231F20" d="M311.595,205.306l1.253,0.398c-0.192,0.699-0.512,1.218-0.959,1.556c-0.447,0.34-1.013,0.508-1.7,0.508
+                       c-0.85,0-1.548-0.29-2.096-0.87c-0.547-0.581-0.821-1.375-0.821-2.382c0-1.065,0.275-1.893,0.825-2.482
+                       c0.55-0.59,1.273-0.885,2.17-0.885c0.783,0,1.419,0.232,1.908,0.695c0.291,0.274,0.509,0.667,0.655,1.179l-1.279,0.306
+                       c-0.076-0.332-0.233-0.594-0.474-0.786c-0.24-0.192-0.532-0.288-0.875-0.288c-0.474,0-0.86,0.17-1.155,0.511
+                       c-0.296,0.34-0.443,0.892-0.443,1.654c0,0.809,0.146,1.385,0.437,1.729c0.291,0.343,0.669,0.515,1.135,0.515
+                       c0.343,0,0.639-0.109,0.886-0.328C311.309,206.119,311.487,205.775,311.595,205.306z"/>
+               <path fill="#231F20" d="M313.974,207.659v-6.401h1.292v2.842l2.611-2.842h1.738l-2.41,2.493l2.541,3.908h-1.672l-1.76-3.004
+                       l-1.048,1.069v1.935H313.974z"/>
+       </g>
+       <g>
+               <path fill="#231F20" d="M247.067,230.239v-6.401h1.292v2.52h2.532v-2.52h1.292v6.401h-1.292v-2.798h-2.532v2.798H247.067z"/>
+               <path fill="#231F20" d="M253.258,227.078c0-0.652,0.098-1.199,0.293-1.642c0.146-0.326,0.344-0.618,0.596-0.877
+                       c0.252-0.259,0.528-0.451,0.828-0.576c0.399-0.169,0.859-0.254,1.38-0.254c0.943,0,1.697,0.293,2.264,0.878
+                       s0.849,1.399,0.849,2.44c0,1.034-0.281,1.842-0.843,2.426c-0.562,0.584-1.313,0.875-2.253,0.875c-0.952,0-1.709-0.29-2.27-0.87
+                       C253.539,228.896,253.258,228.096,253.258,227.078z M254.59,227.034c0,0.725,0.167,1.274,0.502,1.648
+                       c0.335,0.374,0.76,0.561,1.275,0.561s0.938-0.185,1.269-0.557c0.33-0.371,0.495-0.928,0.495-1.67c0-0.733-0.161-1.281-0.483-1.642
+                       c-0.322-0.361-0.749-0.541-1.281-0.541c-0.533,0-0.962,0.182-1.288,0.548C254.753,225.747,254.59,226.298,254.59,227.034z"/>
+               <path fill="#231F20" d="M260.466,223.838h1.292v3.467c0,0.55,0.016,0.907,0.048,1.069c0.055,0.262,0.187,0.473,0.395,0.632
+                       c0.208,0.158,0.493,0.238,0.854,0.238c0.367,0,0.643-0.075,0.83-0.225c0.186-0.149,0.298-0.334,0.336-0.552
+                       c0.038-0.218,0.057-0.581,0.057-1.088v-3.54h1.292v3.362c0,0.768-0.035,1.312-0.105,1.628c-0.07,0.318-0.199,0.586-0.386,0.803
+                       c-0.188,0.219-0.439,0.393-0.753,0.522c-0.314,0.13-0.725,0.194-1.231,0.194c-0.611,0-1.075-0.07-1.391-0.212
+                       c-0.316-0.141-0.565-0.324-0.749-0.55c-0.183-0.225-0.304-0.462-0.362-0.709c-0.084-0.367-0.127-0.908-0.127-1.624V223.838z"/>
+               <path fill="#231F20" d="M269.91,227.885v-1.078h2.786v2.55c-0.271,0.262-0.663,0.493-1.176,0.692
+                       c-0.514,0.2-1.034,0.299-1.561,0.299c-0.669,0-1.253-0.14-1.751-0.421c-0.498-0.28-0.872-0.682-1.122-1.205
+                       c-0.25-0.522-0.375-1.091-0.375-1.705c0-0.667,0.14-1.258,0.419-1.777c0.279-0.518,0.688-0.916,1.227-1.192
+                       c0.41-0.212,0.921-0.319,1.532-0.319c0.795,0,1.415,0.167,1.862,0.501c0.447,0.333,0.734,0.794,0.863,1.382l-1.284,0.241
+                       c-0.09-0.314-0.26-0.563-0.508-0.745c-0.249-0.181-0.56-0.273-0.932-0.273c-0.565,0-1.014,0.179-1.347,0.537
+                       c-0.334,0.359-0.5,0.89-0.5,1.594c0,0.76,0.169,1.329,0.506,1.71c0.338,0.379,0.78,0.57,1.327,0.57
+                       c0.271,0,0.542-0.053,0.815-0.159c0.272-0.107,0.505-0.235,0.701-0.386v-0.813H269.91z"/>
+               <path fill="#231F20" d="M273.892,230.239v-6.401h1.292v2.52h2.532v-2.52h1.292v6.401h-1.292v-2.798h-2.532v2.798H273.892z"/>
+               <path fill="#231F20" d="M281.786,230.239v-5.318h-1.899v-1.083h5.086v1.083h-1.895v5.318H281.786z"/>
+               <path fill="#231F20" d="M285.545,227.078c0-0.652,0.098-1.199,0.293-1.642c0.146-0.326,0.344-0.618,0.596-0.877
+                       c0.252-0.259,0.528-0.451,0.828-0.576c0.399-0.169,0.859-0.254,1.38-0.254c0.943,0,1.697,0.293,2.264,0.878
+                       s0.849,1.399,0.849,2.44c0,1.034-0.281,1.842-0.843,2.426c-0.562,0.584-1.313,0.875-2.253,0.875c-0.952,0-1.709-0.29-2.27-0.87
+                       C285.826,228.896,285.545,228.096,285.545,227.078z M286.876,227.034c0,0.725,0.167,1.274,0.502,1.648
+                       c0.335,0.374,0.76,0.561,1.275,0.561s0.938-0.185,1.269-0.557c0.33-0.371,0.495-0.928,0.495-1.67c0-0.733-0.161-1.281-0.483-1.642
+                       c-0.322-0.361-0.749-0.541-1.281-0.541s-0.962,0.182-1.288,0.548C287.039,225.747,286.876,226.298,286.876,227.034z"/>
+               <path fill="#231F20" d="M292.775,230.239v-6.401h1.257l2.62,4.274v-4.274h1.201v6.401h-1.297l-2.58-4.174v4.174H292.775z"/>
+       </g>
+       <path fill="#231F20" d="M383.502,71.798c-1.041,0-1.888,0.847-1.888,1.888c0,1.041,0.847,1.887,1.888,1.887
+               c1.04,0,1.886-0.847,1.886-1.887C385.388,72.646,384.542,71.798,383.502,71.798"/>
+       <path fill="#231F20" d="M479.871,83.996c-1.043,0-1.889,0.847-1.889,1.888c0,1.041,0.847,1.887,1.889,1.887
+               c1.04,0,1.885-0.846,1.885-1.887C481.756,84.843,480.911,83.996,479.871,83.996"/>
+       <path fill="#231F20" d="M502.778,83.34c-1.041,0-1.886,0.847-1.886,1.888c0,1.041,0.845,1.887,1.886,1.887s1.888-0.846,1.888-1.887
+               C504.666,84.187,503.819,83.34,502.778,83.34"/>
+       <path fill="#231F20" d="M331.185,151.591c0-1.371-1.43-2.416-2.879-1.723c-0.344,0.165-0.629,0.45-0.793,0.794
+               c-0.689,1.448,0.356,2.874,1.726,2.874C330.313,153.537,331.185,152.664,331.185,151.591"/>
+       <path fill="#231F20" d="M287.365,211.648c0-1.372-1.429-2.417-2.877-1.726c-0.344,0.164-0.629,0.45-0.794,0.794
+               c-0.692,1.448,0.353,2.877,1.726,2.877C286.492,213.593,287.365,212.72,287.365,211.648"/>
+       <path fill="#231F20" d="M341.347,166.533c0-1.072-0.873-1.944-1.945-1.944c-1.072,0-1.945,0.872-1.945,1.944
+               c0,1.073,0.873,1.945,1.945,1.945C340.475,168.478,341.347,167.606,341.347,166.533"/>
+       <path fill="#231F20" d="M300.912,262.557c-1.413,0-2.489,1.471-1.776,2.962c0.17,0.355,0.465,0.65,0.821,0.819
+               c1.49,0.708,2.957-0.367,2.957-1.779C302.914,263.455,302.016,262.557,300.912,262.557"/>
+       <path fill="#231F20" d="M287.004,217.64c-1.413,0-2.488,1.47-1.777,2.961c0.17,0.356,0.464,0.651,0.82,0.82
+               c1.49,0.711,2.959-0.366,2.959-1.779C289.006,218.538,288.108,217.64,287.004,217.64"/>
+       <path fill="#231F20" d="M524.868,39.389c-1.041,0-1.889,0.847-1.889,1.888s0.848,1.887,1.889,1.887c1.04,0,1.885-0.847,1.885-1.887
+               S525.908,39.389,524.868,39.389"/>
+       <path fill="#231F20" d="M212.538,278.084c-1.412,0-2.487,1.471-1.778,2.96c0.169,0.356,0.464,0.65,0.82,0.819
+               c1.491,0.711,2.96-0.365,2.96-1.776C214.54,278.983,213.642,278.084,212.538,278.084"/>
+       <path fill="#231F20" d="M430.704,47.618c-1.041,0-1.887,0.846-1.887,1.887c0,1.042,0.846,1.888,1.887,1.888
+               c1.04,0,1.886-0.846,1.886-1.888C432.59,48.464,431.744,47.618,430.704,47.618"/>
+       <g>
+               <path fill="#231F20" d="M343.314,169.626v-6.348h1.292v5.27h3.213v1.078H343.314z"/>
+               <path fill="#231F20" d="M354.513,169.626h-1.406l-0.559-1.454h-2.559l-0.528,1.454h-1.371l2.493-6.401h1.367L354.513,169.626z
+                        M352.134,167.094l-0.882-2.375l-0.864,2.375H352.134z"/>
+               <path fill="#231F20" d="M355.19,163.226h1.292v3.467c0,0.55,0.016,0.907,0.048,1.07c0.055,0.262,0.187,0.473,0.395,0.631
+                       c0.208,0.159,0.493,0.238,0.854,0.238c0.367,0,0.643-0.075,0.83-0.225c0.186-0.149,0.298-0.334,0.336-0.552
+                       s0.057-0.581,0.057-1.087v-3.541h1.292v3.362c0,0.768-0.035,1.311-0.105,1.629c-0.07,0.317-0.199,0.585-0.386,0.803
+                       c-0.188,0.218-0.439,0.392-0.753,0.521c-0.314,0.13-0.725,0.195-1.231,0.195c-0.611,0-1.075-0.071-1.391-0.212
+                       c-0.316-0.141-0.565-0.324-0.749-0.55c-0.183-0.225-0.304-0.462-0.362-0.709c-0.084-0.367-0.127-0.908-0.127-1.624V163.226z"/>
+               <path fill="#231F20" d="M361.661,169.626v-6.401h2.72c0.684,0,1.181,0.058,1.491,0.173c0.31,0.115,0.558,0.319,0.745,0.613
+                       c0.186,0.294,0.279,0.63,0.279,1.009c0,0.48-0.141,0.877-0.423,1.19s-0.704,0.51-1.266,0.591c0.279,0.163,0.51,0.342,0.692,0.537
+                       c0.182,0.195,0.427,0.541,0.736,1.039l0.782,1.249h-1.546l-0.934-1.393c-0.332-0.498-0.559-0.811-0.681-0.941
+                       c-0.122-0.13-0.252-0.218-0.389-0.267c-0.137-0.048-0.354-0.072-0.651-0.072h-0.262v2.672H361.661z M362.953,165.933h0.956
+                       c0.62,0,1.007-0.026,1.161-0.079c0.154-0.052,0.275-0.143,0.362-0.271c0.087-0.128,0.131-0.288,0.131-0.48
+                       c0-0.215-0.058-0.389-0.173-0.522c-0.115-0.132-0.277-0.216-0.487-0.251c-0.105-0.015-0.419-0.022-0.943-0.022h-1.009V165.933z"/>
+               <path fill="#231F20" d="M368.074,169.626v-6.401h1.292v6.401H368.074z"/>
+               <path fill="#231F20" d="M370.589,163.226h1.292v3.467c0,0.55,0.016,0.907,0.048,1.07c0.055,0.262,0.187,0.473,0.395,0.631
+                       c0.208,0.159,0.493,0.238,0.854,0.238c0.367,0,0.643-0.075,0.83-0.225c0.186-0.149,0.298-0.334,0.336-0.552
+                       s0.057-0.581,0.057-1.087v-3.541h1.292v3.362c0,0.768-0.035,1.311-0.105,1.629c-0.07,0.317-0.199,0.585-0.386,0.803
+                       c-0.188,0.218-0.439,0.392-0.753,0.521c-0.314,0.13-0.725,0.195-1.231,0.195c-0.611,0-1.075-0.071-1.391-0.212
+                       c-0.316-0.141-0.565-0.324-0.749-0.55c-0.183-0.225-0.304-0.462-0.362-0.709c-0.084-0.367-0.127-0.908-0.127-1.624V163.226z"/>
+               <path fill="#231F20" d="M377.038,169.626v-6.401h1.934l1.161,4.366l1.148-4.366h1.939v6.401h-1.201v-5.038l-1.271,5.038h-1.244
+                       l-1.266-5.038v5.038H377.038z"/>
+       </g>
+       <g>
+               <path fill="#231F20" d="M306.498,145.516l1.253,0.397c-0.192,0.699-0.512,1.218-0.959,1.556c-0.447,0.34-1.013,0.509-1.7,0.509
+                       c-0.85,0-1.548-0.291-2.096-0.871c-0.547-0.581-0.821-1.375-0.821-2.382c0-1.065,0.275-1.893,0.825-2.482
+                       c0.55-0.59,1.273-0.884,2.17-0.884c0.783,0,1.419,0.231,1.908,0.694c0.291,0.274,0.509,0.667,0.655,1.179l-1.279,0.306
+                       c-0.076-0.332-0.233-0.594-0.474-0.786c-0.24-0.192-0.532-0.288-0.875-0.288c-0.474,0-0.86,0.17-1.155,0.511
+                       c-0.296,0.341-0.443,0.892-0.443,1.655c0,0.809,0.146,1.385,0.437,1.729s0.669,0.515,1.135,0.515c0.343,0,0.639-0.109,0.886-0.327
+                       C306.213,146.328,306.391,145.984,306.498,145.516z"/>
+               <path fill="#231F20" d="M314.632,147.869h-1.406l-0.559-1.454h-2.559l-0.528,1.454h-1.371l2.493-6.401h1.367L314.632,147.869z
+                        M312.253,145.337l-0.882-2.375l-0.865,2.375H312.253z"/>
+               <path fill="#231F20" d="M315.353,147.869v-6.348h1.292v5.27h3.213v1.078H315.353z"/>
+               <path fill="#231F20" d="M320.771,141.468h1.292v3.467c0,0.55,0.016,0.907,0.048,1.07c0.055,0.262,0.187,0.473,0.395,0.631
+                       c0.208,0.159,0.493,0.238,0.854,0.238c0.367,0,0.643-0.075,0.83-0.225c0.186-0.149,0.298-0.334,0.336-0.552
+                       c0.038-0.218,0.057-0.581,0.057-1.087v-3.541h1.292v3.362c0,0.768-0.035,1.311-0.105,1.629c-0.07,0.317-0.199,0.585-0.386,0.803
+                       c-0.188,0.218-0.439,0.392-0.753,0.521c-0.314,0.13-0.725,0.195-1.231,0.195c-0.611,0-1.075-0.071-1.391-0.212
+                       c-0.316-0.141-0.565-0.324-0.749-0.55c-0.183-0.225-0.304-0.462-0.362-0.709c-0.084-0.367-0.127-0.908-0.127-1.624V141.468z"/>
+               <path fill="#231F20" d="M327.22,147.869v-6.401h1.934l1.161,4.366l1.148-4.366h1.939v6.401h-1.201v-5.038l-1.271,5.038h-1.244
+                       l-1.266-5.038v5.038H327.22z"/>
+               <path fill="#231F20" d="M334.686,147.869v-6.401h4.746v1.083h-3.454v1.419h3.213v1.078h-3.213v1.742h3.576v1.078H334.686z"/>
+               <path fill="#231F20" d="M342.09,147.869v-5.318h-1.899v-1.083h5.086v1.083h-1.895v5.318H342.09z"/>
+       </g>
+</g>
+<g id="Main_Towns_-_hover" display="none">
+       <g display="inline">
+               <defs>
+                       <rect id="SVGID_1_" x="185.186" y="277.719" width="53" height="20"/>
+               </defs>
+               <clipPath id="SVGID_2_">
+                       <use xlink:href="#SVGID_1_"  overflow="visible"/>
+               </clipPath>
+               <path clip-path="url(#SVGID_2_)" fill="#F27327" d="M191.686,278.219c0,0-6,0-6,6v7c0,0,0,6,6,6h40c0,0,6,0,6-6v-7c0,0,0-6-6-6
+                       H191.686z"/>
+               <path clip-path="url(#SVGID_2_)" fill="none" stroke="#FFFFFF" d="M191.686,278.219c0,0-6,0-6,6v7c0,0,0,6,6,6h40c0,0,6,0,6-6v-7
+                       c0,0,0-6-6-6H191.686z"/>
+       </g>
+       <g id="chassel-hover" display="inline">
+               <defs>
+                       <polygon id="SVGID_3_" points="243.576,273.983 304.427,273.819 304.427,253.819 243.576,253.983                  "/>
+               </defs>
+               <clipPath id="SVGID_4_">
+                       <use xlink:href="#SVGID_3_"  overflow="visible"/>
+               </clipPath>
+               <path clip-path="url(#SVGID_4_)" fill="#F27327" d="M250.076,254.483c0,0-6,0-6,6v7c0,0,0,6,6,6l47.851-0.164c0,0,6,0,6-6v-7
+                       c0,0,0-6-6-6L250.076,254.483z"/>
+               <path clip-path="url(#SVGID_4_)" fill="none" stroke="#FFFFFF" d="M250.076,254.483c0,0-6,0-6,6v7c0,0,0,6,6,6l47.851-0.164
+                       c0,0,6,0,6-6v-7c0,0,0-6-6-6L250.076,254.483z"/>
+       </g>
+       <g display="inline">
+               <defs>
+                       <polygon id="SVGID_5_" points="240.301,237.086 304.5,236.922 304.5,216.922 240.301,217.086                      "/>
+               </defs>
+               <clipPath id="SVGID_6_">
+                       <use xlink:href="#SVGID_5_"  overflow="visible"/>
+               </clipPath>
+               <path clip-path="url(#SVGID_6_)" fill="#F27327" d="M246.801,217.586c0,0-6,0-6,6v7c0,0,0,6,6,6L298,236.422c0,0,6,0,6-6v-7
+                       c0,0,0-6-6-6L246.801,217.586z"/>
+               <path clip-path="url(#SVGID_6_)" fill="none" stroke="#FFFFFF" d="M246.801,217.586c0,0-6,0-6,6v7c0,0,0,6,6,6L298,236.422
+                       c0,0,6,0,6-6v-7c0,0,0-6-6-6L246.801,217.586z"/>
+       </g>
+       <g display="inline">
+               <defs>
+                       <polygon id="SVGID_7_" points="267.989,214.648 326.125,214.484 326.125,194.484 267.989,194.648                  "/>
+               </defs>
+               <clipPath id="SVGID_8_">
+                       <use xlink:href="#SVGID_7_"  overflow="visible"/>
+               </clipPath>
+               <path clip-path="url(#SVGID_8_)" fill="#F27327" d="M274.489,195.148c0,0-6,0-6,6v7c0,0,0,6,6,6l45.136-0.164c0,0,6,0,6-6v-7
+                       c0,0,0-6-6-6L274.489,195.148z"/>
+               <path clip-path="url(#SVGID_8_)" fill="none" stroke="#FFFFFF" d="M274.489,195.148c0,0-6,0-6,6v7c0,0,0,6,6,6l45.136-0.164
+                       c0,0,6,0,6-6v-7c0,0,0-6-6-6L274.489,195.148z"/>
+       </g>
+       <g display="inline">
+               <defs>
+                       <polygon id="SVGID_9_" points="336.655,176.802 389.911,176.638 389.911,156.638 336.655,156.802                  "/>
+               </defs>
+               <clipPath id="SVGID_10_">
+                       <use xlink:href="#SVGID_9_"  overflow="visible"/>
+               </clipPath>
+               <path clip-path="url(#SVGID_10_)" fill="#F27327" d="M343.155,157.302c0,0-6,0-6,6v7c0,0,0,6,6,6l40.256-0.164c0,0,6,0,6-6v-7
+                       c0,0,0-6-6-6L343.155,157.302z"/>
+               <path clip-path="url(#SVGID_10_)" fill="none" stroke="#FFFFFF" d="M343.155,157.302c0,0-6,0-6,6v7c0,0,0,6,6,6l40.256-0.164
+                       c0,0,6,0,6-6v-7c0,0,0-6-6-6L343.155,157.302z"/>
+       </g>
+       <g display="inline">
+               <defs>
+                       <polygon id="SVGID_11_" points="295.67,154.469 351.917,154.305 351.917,134.305 295.67,134.469                   "/>
+               </defs>
+               <clipPath id="SVGID_12_">
+                       <use xlink:href="#SVGID_11_"  overflow="visible"/>
+               </clipPath>
+               <path clip-path="url(#SVGID_12_)" fill="#F27327" d="M302.17,134.969c0,0-6,0-6,6v7c0,0,0,6,6,6l43.247-0.164c0,0,6,0,6-6v-7
+                       c0,0,0-6-6-6L302.17,134.969z"/>
+               <path clip-path="url(#SVGID_12_)" fill="none" stroke="#FFFFFF" d="M302.17,134.969c0,0-6,0-6,6v7c0,0,0,6,6,6l43.247-0.164
+                       c0,0,6,0,6-6v-7c0,0,0-6-6-6L302.17,134.969z"/>
+       </g>
+       <g display="inline">
+               <defs>
+                       <polygon id="SVGID_13_" points="316.545,76.219 389.812,76.055 389.812,56.055 316.545,56.219                     "/>
+               </defs>
+               <clipPath id="SVGID_14_">
+                       <use xlink:href="#SVGID_13_"  overflow="visible"/>
+               </clipPath>
+               <path clip-path="url(#SVGID_14_)" fill="#F27327" d="M323.045,56.719c0,0-6,0-6,6v7c0,0,0,6,6,6l60.267-0.164c0,0,6,0,6-6v-7
+                       c0,0,0-6-6-6L323.045,56.719z"/>
+               <path clip-path="url(#SVGID_14_)" fill="none" stroke="#FFFFFF" d="M323.045,56.719c0,0-6,0-6,6v7c0,0,0,6,6,6l60.267-0.164
+                       c0,0,6,0,6-6v-7c0,0,0-6-6-6L323.045,56.719z"/>
+       </g>
+       <g display="inline">
+               <defs>
+                       <polygon id="SVGID_15_" points="352.358,52.219 437.125,52.055 437.125,32.055 352.358,32.219                     "/>
+               </defs>
+               <clipPath id="SVGID_16_">
+                       <use xlink:href="#SVGID_15_"  overflow="visible"/>
+               </clipPath>
+               <path clip-path="url(#SVGID_16_)" fill="#F27327" d="M358.858,32.719c0,0-6,0-6,6v7c0,0,0,6,6,6l71.767-0.164c0,0,6,0,6-6v-7
+                       c0,0,0-6-6-6L358.858,32.719z"/>
+               <path clip-path="url(#SVGID_16_)" fill="none" stroke="#FFFFFF" d="M358.858,32.719c0,0-6,0-6,6v7c0,0,0,6,6,6l71.767-0.164
+                       c0,0,6,0,6-6v-7c0,0,0-6-6-6L358.858,32.719z"/>
+       </g>
+       <g display="inline">
+               <defs>
+                       <polygon id="SVGID_17_" points="406.56,93.219 482.609,93.055 482.609,73.055 406.56,73.219                       "/>
+               </defs>
+               <clipPath id="SVGID_18_">
+                       <use xlink:href="#SVGID_17_"  overflow="visible"/>
+               </clipPath>
+               <path clip-path="url(#SVGID_18_)" fill="#F27327" d="M413.06,73.719c0,0-6,0-6,6v7c0,0,0,6,6,6l63.049-0.164c0,0,6,0,6-6v-7
+                       c0,0,0-6-6-6L413.06,73.719z"/>
+               <path clip-path="url(#SVGID_18_)" fill="none" stroke="#FFFFFF" d="M413.06,73.719c0,0-6,0-6,6v7c0,0,0,6,6,6l63.049-0.164
+                       c0,0,6,0,6-6v-7c0,0,0-6-6-6L413.06,73.719z"/>
+       </g>
+       <g display="inline">
+               <defs>
+                       <polygon id="SVGID_19_" points="497.728,102.469 563.848,102.305 563.848,82.305 497.728,82.469                   "/>
+               </defs>
+               <clipPath id="SVGID_20_">
+                       <use xlink:href="#SVGID_19_"  overflow="visible"/>
+               </clipPath>
+               <path clip-path="url(#SVGID_20_)" fill="#F27327" d="M504.228,82.969c0,0-6,0-6,6v7c0,0,0,6,6,6l53.12-0.164c0,0,6,0,6-6v-7
+                       c0,0,0-6-6-6L504.228,82.969z"/>
+               <path clip-path="url(#SVGID_20_)" fill="none" stroke="#FFFFFF" d="M504.228,82.969c0,0-6,0-6,6v7c0,0,0,6,6,6l53.12-0.164
+                       c0,0,6,0,6-6v-7c0,0,0-6-6-6L504.228,82.969z"/>
+       </g>
+       <g display="inline">
+               <defs>
+                       <polygon id="SVGID_21_" points="515.962,43.85 608.046,43.686 608.046,23.686 515.962,23.85                       "/>
+               </defs>
+               <clipPath id="SVGID_22_">
+                       <use xlink:href="#SVGID_21_"  overflow="visible"/>
+               </clipPath>
+               <path clip-path="url(#SVGID_22_)" fill="#F27327" d="M522.462,24.35c0,0-6,0-6,6v7c0,0,0,6,6,6l79.084-0.164c0,0,6,0,6-6v-7
+                       c0,0,0-6-6-6L522.462,24.35z"/>
+               <path clip-path="url(#SVGID_22_)" fill="none" stroke="#FFFFFF" d="M522.462,24.35c0,0-6,0-6,6v7c0,0,0,6,6,6l79.084-0.164
+                       c0,0,6,0,6-6v-7c0,0,0-6-6-6L522.462,24.35z"/>
+       </g>
+       <g display="inline">
+               <path fill="#FFFFFF" d="M343.314,169.626v-6.348h1.292v5.27h3.213v1.078H343.314z"/>
+               <path fill="#FFFFFF" d="M354.513,169.626h-1.406l-0.559-1.454h-2.559l-0.528,1.454h-1.371l2.493-6.401h1.367L354.513,169.626z
+                        M352.134,167.094l-0.882-2.375l-0.864,2.375H352.134z"/>
+               <path fill="#FFFFFF" d="M355.19,163.226h1.292v3.467c0,0.55,0.016,0.907,0.048,1.07c0.055,0.262,0.187,0.473,0.395,0.631
+                       c0.208,0.159,0.493,0.238,0.854,0.238c0.367,0,0.643-0.075,0.83-0.225c0.186-0.149,0.298-0.334,0.336-0.552
+                       s0.057-0.581,0.057-1.087v-3.541h1.292v3.362c0,0.768-0.035,1.311-0.105,1.629c-0.07,0.317-0.199,0.585-0.386,0.803
+                       c-0.188,0.218-0.439,0.392-0.753,0.521c-0.314,0.13-0.725,0.195-1.231,0.195c-0.611,0-1.075-0.071-1.391-0.212
+                       c-0.316-0.141-0.565-0.324-0.749-0.55c-0.183-0.225-0.304-0.462-0.362-0.709c-0.084-0.367-0.127-0.908-0.127-1.624V163.226z"/>
+               <path fill="#FFFFFF" d="M361.661,169.626v-6.401h2.72c0.684,0,1.181,0.058,1.491,0.173c0.31,0.115,0.558,0.319,0.745,0.613
+                       c0.186,0.294,0.279,0.63,0.279,1.009c0,0.48-0.141,0.877-0.423,1.19s-0.704,0.51-1.266,0.591c0.279,0.163,0.51,0.342,0.692,0.537
+                       c0.182,0.195,0.427,0.541,0.736,1.039l0.782,1.249h-1.546l-0.934-1.393c-0.332-0.498-0.559-0.811-0.681-0.941
+                       c-0.122-0.13-0.252-0.218-0.389-0.267c-0.137-0.048-0.354-0.072-0.651-0.072h-0.262v2.672H361.661z M362.953,165.933h0.956
+                       c0.62,0,1.007-0.026,1.161-0.079c0.154-0.052,0.275-0.143,0.362-0.271c0.087-0.128,0.131-0.288,0.131-0.48
+                       c0-0.215-0.058-0.389-0.173-0.522c-0.115-0.132-0.277-0.216-0.487-0.251c-0.105-0.015-0.419-0.022-0.943-0.022h-1.009V165.933z"/>
+               <path fill="#FFFFFF" d="M368.074,169.626v-6.401h1.292v6.401H368.074z"/>
+               <path fill="#FFFFFF" d="M370.589,163.226h1.292v3.467c0,0.55,0.016,0.907,0.048,1.07c0.055,0.262,0.187,0.473,0.395,0.631
+                       c0.208,0.159,0.493,0.238,0.854,0.238c0.367,0,0.643-0.075,0.83-0.225c0.186-0.149,0.298-0.334,0.336-0.552
+                       s0.057-0.581,0.057-1.087v-3.541h1.292v3.362c0,0.768-0.035,1.311-0.105,1.629c-0.07,0.317-0.199,0.585-0.386,0.803
+                       c-0.188,0.218-0.439,0.392-0.753,0.521c-0.314,0.13-0.725,0.195-1.231,0.195c-0.611,0-1.075-0.071-1.391-0.212
+                       c-0.316-0.141-0.565-0.324-0.749-0.55c-0.183-0.225-0.304-0.462-0.362-0.709c-0.084-0.367-0.127-0.908-0.127-1.624V163.226z"/>
+               <path fill="#FFFFFF" d="M377.038,169.626v-6.401h1.934l1.161,4.366l1.148-4.366h1.939v6.401h-1.201v-5.038l-1.271,5.038h-1.244
+                       l-1.266-5.038v5.038H377.038z"/>
+       </g>
+       <g display="inline">
+               <path fill="#FFFFFF" d="M306.498,145.516l1.253,0.397c-0.192,0.699-0.512,1.218-0.959,1.556c-0.447,0.34-1.013,0.509-1.7,0.509
+                       c-0.85,0-1.548-0.291-2.096-0.871c-0.547-0.581-0.821-1.375-0.821-2.382c0-1.065,0.275-1.893,0.825-2.482
+                       c0.55-0.59,1.273-0.884,2.17-0.884c0.783,0,1.419,0.231,1.908,0.694c0.291,0.274,0.509,0.667,0.655,1.179l-1.279,0.306
+                       c-0.076-0.332-0.233-0.594-0.474-0.786c-0.24-0.192-0.532-0.288-0.875-0.288c-0.474,0-0.86,0.17-1.155,0.511
+                       c-0.296,0.341-0.443,0.892-0.443,1.655c0,0.809,0.146,1.385,0.437,1.729s0.669,0.515,1.135,0.515c0.343,0,0.639-0.109,0.886-0.327
+                       C306.213,146.328,306.391,145.984,306.498,145.516z"/>
+               <path fill="#FFFFFF" d="M314.632,147.869h-1.406l-0.559-1.454h-2.559l-0.528,1.454h-1.371l2.493-6.401h1.367L314.632,147.869z
+                        M312.253,145.337l-0.882-2.375l-0.865,2.375H312.253z"/>
+               <path fill="#FFFFFF" d="M315.353,147.869v-6.348h1.292v5.27h3.213v1.078H315.353z"/>
+               <path fill="#FFFFFF" d="M320.771,141.468h1.292v3.467c0,0.55,0.016,0.907,0.048,1.07c0.055,0.262,0.187,0.473,0.395,0.631
+                       c0.208,0.159,0.493,0.238,0.854,0.238c0.367,0,0.643-0.075,0.83-0.225c0.186-0.149,0.298-0.334,0.336-0.552
+                       c0.038-0.218,0.057-0.581,0.057-1.087v-3.541h1.292v3.362c0,0.768-0.035,1.311-0.105,1.629c-0.07,0.317-0.199,0.585-0.386,0.803
+                       c-0.188,0.218-0.439,0.392-0.753,0.521c-0.314,0.13-0.725,0.195-1.231,0.195c-0.611,0-1.075-0.071-1.391-0.212
+                       c-0.316-0.141-0.565-0.324-0.749-0.55c-0.183-0.225-0.304-0.462-0.362-0.709c-0.084-0.367-0.127-0.908-0.127-1.624V141.468z"/>
+               <path fill="#FFFFFF" d="M327.22,147.869v-6.401h1.934l1.161,4.366l1.148-4.366h1.939v6.401h-1.201v-5.038l-1.271,5.038h-1.244
+                       l-1.266-5.038v5.038H327.22z"/>
+               <path fill="#FFFFFF" d="M334.686,147.869v-6.401h4.746v1.083h-3.454v1.419h3.213v1.078h-3.213v1.742h3.576v1.078H334.686z"/>
+               <path fill="#FFFFFF" d="M342.09,147.869v-5.318h-1.899v-1.083h5.086v1.083h-1.895v5.318H342.09z"/>
+       </g>
+       <g display="inline">
+               <path fill="#FFFFFF" d="M504.279,88.812h2.559c0.506,0,0.884,0.021,1.133,0.063c0.248,0.043,0.472,0.13,0.668,0.264
+                       c0.197,0.134,0.361,0.312,0.491,0.535c0.132,0.222,0.197,0.472,0.197,0.749c0,0.3-0.081,0.575-0.243,0.825
+                       c-0.161,0.25-0.38,0.438-0.657,0.563c0.39,0.114,0.69,0.307,0.899,0.581s0.314,0.595,0.314,0.965c0,0.291-0.068,0.574-0.203,0.849
+                       c-0.136,0.275-0.32,0.495-0.555,0.659c-0.234,0.165-0.523,0.266-0.866,0.304c-0.215,0.023-0.735,0.038-1.559,0.044h-2.178V88.812z
+                        M505.571,89.877v1.48h0.847c0.504,0,0.817-0.007,0.939-0.022c0.22-0.026,0.395-0.103,0.521-0.229
+                       c0.127-0.127,0.19-0.293,0.19-0.5c0-0.198-0.054-0.358-0.164-0.483c-0.109-0.123-0.272-0.198-0.487-0.225
+                       c-0.128-0.015-0.496-0.022-1.104-0.022H505.571z M505.571,92.422v1.711h1.196c0.466,0,0.761-0.013,0.887-0.039
+                       c0.192-0.035,0.348-0.12,0.469-0.255c0.121-0.136,0.181-0.317,0.181-0.544c0-0.192-0.047-0.355-0.14-0.489
+                       c-0.093-0.134-0.228-0.231-0.404-0.293c-0.177-0.061-0.559-0.092-1.147-0.092H505.571z"/>
+               <path fill="#FFFFFF" d="M510.731,95.212v-6.401h4.746v1.083h-3.454v1.419h3.213v1.078h-3.213v1.742h3.576v1.078H510.731z"/>
+               <path fill="#FFFFFF" d="M518.136,95.212v-5.318h-1.9v-1.083h5.086v1.083h-1.894v5.318H518.136z"/>
+               <path fill="#FFFFFF" d="M522.156,95.212v-6.401h4.746v1.083h-3.454v1.419h3.213v1.078h-3.213v1.742h3.576v1.078H522.156z"/>
+               <path fill="#FFFFFF" d="M533.583,92.859v-1.078h2.785v2.55c-0.27,0.262-0.663,0.493-1.176,0.692
+                       c-0.514,0.199-1.034,0.299-1.561,0.299c-0.669,0-1.253-0.14-1.751-0.422c-0.497-0.28-0.871-0.682-1.122-1.205
+                       c-0.25-0.522-0.375-1.091-0.375-1.705c0-0.667,0.14-1.259,0.419-1.777c0.279-0.518,0.688-0.915,1.227-1.192
+                       c0.409-0.212,0.921-0.319,1.532-0.319c0.795,0,1.416,0.167,1.862,0.5c0.447,0.333,0.734,0.794,0.862,1.382l-1.284,0.24
+                       c-0.09-0.314-0.26-0.562-0.508-0.745c-0.249-0.181-0.56-0.273-0.932-0.273c-0.565,0-1.014,0.179-1.347,0.537
+                       c-0.334,0.358-0.5,0.889-0.5,1.594c0,0.76,0.168,1.329,0.506,1.71c0.337,0.379,0.779,0.57,1.327,0.57
+                       c0.27,0,0.541-0.053,0.814-0.159c0.272-0.106,0.505-0.235,0.701-0.387v-0.812H533.583z"/>
+               <path fill="#FFFFFF" d="M537.564,95.212v-6.401h2.72c0.684,0,1.182,0.058,1.491,0.173c0.31,0.115,0.558,0.319,0.744,0.613
+                       c0.186,0.294,0.279,0.63,0.279,1.009c0,0.48-0.141,0.877-0.423,1.19c-0.282,0.313-0.704,0.51-1.266,0.591
+                       c0.279,0.163,0.51,0.342,0.692,0.537c0.182,0.195,0.427,0.541,0.735,1.039l0.782,1.249h-1.546l-0.934-1.393
+                       c-0.332-0.498-0.559-0.811-0.681-0.941c-0.122-0.13-0.252-0.218-0.388-0.267c-0.138-0.048-0.354-0.072-0.651-0.072h-0.262v2.672
+                       H537.564z M538.857,91.519h0.956c0.621,0,1.007-0.026,1.162-0.079c0.153-0.052,0.275-0.143,0.362-0.271
+                       c0.087-0.128,0.131-0.288,0.131-0.48c0-0.215-0.057-0.389-0.173-0.522c-0.115-0.132-0.277-0.216-0.487-0.251
+                       c-0.105-0.015-0.419-0.022-0.943-0.022h-1.008V91.519z"/>
+               <path fill="#FFFFFF" d="M543.979,95.212v-6.401h1.292v6.401H543.979z"/>
+               <path fill="#FFFFFF" d="M546.174,93.13l1.257-0.122c0.076,0.422,0.229,0.732,0.461,0.93c0.231,0.198,0.543,0.297,0.936,0.297
+                       c0.416,0,0.73-0.088,0.941-0.264c0.211-0.176,0.316-0.382,0.316-0.618c0-0.151-0.045-0.28-0.133-0.386
+                       c-0.089-0.106-0.244-0.199-0.466-0.277c-0.151-0.052-0.496-0.146-1.034-0.279c-0.693-0.172-1.179-0.383-1.458-0.633
+                       c-0.393-0.352-0.589-0.782-0.589-1.288c0-0.326,0.092-0.631,0.276-0.915c0.185-0.283,0.451-0.5,0.799-0.648
+                       c0.347-0.148,0.767-0.223,1.259-0.223c0.803,0,1.408,0.176,1.814,0.528c0.406,0.352,0.619,0.822,0.639,1.41l-1.292,0.057
+                       c-0.055-0.329-0.174-0.566-0.356-0.709c-0.181-0.145-0.455-0.216-0.818-0.216c-0.376,0-0.67,0.077-0.883,0.231
+                       c-0.137,0.099-0.205,0.231-0.205,0.397c0,0.151,0.064,0.281,0.192,0.389c0.163,0.137,0.559,0.279,1.188,0.428
+                       c0.629,0.148,1.093,0.302,1.395,0.46c0.301,0.159,0.537,0.375,0.707,0.651c0.17,0.275,0.255,0.615,0.255,1.019
+                       c0,0.367-0.102,0.71-0.306,1.03c-0.204,0.32-0.492,0.558-0.865,0.714c-0.373,0.156-0.837,0.234-1.392,0.234
+                       c-0.81,0-1.431-0.187-1.865-0.561C546.518,94.391,546.259,93.846,546.174,93.13z"/>
+               <path fill="#FFFFFF" d="M552.465,95.212v-6.401h4.746v1.083h-3.454v1.419h3.213v1.078h-3.213v1.742h3.576v1.078H552.465z"/>
+       </g>
+       <g display="inline">
+               <path fill="#FFFFFF" d="M413.102,86.004v-6.348h1.292v5.27h3.213v1.078H413.102z"/>
+               <path fill="#FFFFFF" d="M424.301,86.004h-1.407l-0.559-1.454h-2.558l-0.529,1.454h-1.371l2.493-6.401h1.366L424.301,86.004z
+                        M421.921,83.472l-0.882-2.375l-0.864,2.375H421.921z"/>
+               <path fill="#FFFFFF" d="M429.083,83.651l1.253,0.397c-0.192,0.699-0.511,1.218-0.959,1.556c-0.446,0.34-1.014,0.509-1.701,0.509
+                       c-0.85,0-1.548-0.291-2.096-0.871c-0.547-0.581-0.821-1.375-0.821-2.382c0-1.065,0.276-1.893,0.826-2.482
+                       c0.55-0.59,1.273-0.884,2.17-0.884c0.782,0,1.418,0.231,1.907,0.694c0.291,0.274,0.509,0.667,0.655,1.179l-1.28,0.306
+                       c-0.076-0.332-0.233-0.594-0.473-0.786c-0.24-0.192-0.532-0.288-0.875-0.288c-0.474,0-0.86,0.17-1.155,0.511
+                       c-0.296,0.341-0.443,0.892-0.443,1.655c0,0.809,0.146,1.385,0.437,1.729s0.669,0.515,1.135,0.515c0.343,0,0.638-0.109,0.886-0.327
+                       C428.796,84.463,428.974,84.119,429.083,83.651z"/>
+               <path fill="#FFFFFF" d="M433.963,86.004v-6.348h1.292v5.27h3.213v1.078H433.963z"/>
+               <path fill="#FFFFFF" d="M445.163,86.004h-1.407l-0.559-1.454h-2.558l-0.529,1.454h-1.371l2.493-6.401h1.366L445.163,86.004z
+                        M442.783,83.472l-0.882-2.375l-0.864,2.375H442.783z"/>
+               <path fill="#FFFFFF" d="M448.006,79.603h2.559c0.506,0,0.884,0.021,1.133,0.063c0.248,0.043,0.472,0.131,0.668,0.264
+                       c0.197,0.134,0.361,0.312,0.491,0.535c0.132,0.222,0.197,0.472,0.197,0.749c0,0.3-0.081,0.575-0.243,0.825
+                       c-0.161,0.25-0.38,0.438-0.657,0.563c0.39,0.114,0.69,0.307,0.899,0.581s0.314,0.595,0.314,0.965c0,0.291-0.068,0.574-0.203,0.849
+                       c-0.136,0.275-0.32,0.495-0.555,0.659c-0.234,0.165-0.523,0.266-0.866,0.304c-0.215,0.023-0.735,0.038-1.559,0.044h-2.178V79.603z
+                        M449.298,80.669v1.48h0.847c0.504,0,0.817-0.007,0.939-0.022c0.22-0.026,0.395-0.103,0.521-0.229
+                       c0.127-0.127,0.19-0.293,0.19-0.5c0-0.198-0.054-0.358-0.164-0.483c-0.109-0.123-0.272-0.198-0.487-0.225
+                       c-0.128-0.015-0.496-0.022-1.104-0.022H449.298z M449.298,83.214v1.711h1.196c0.466,0,0.761-0.013,0.887-0.039
+                       c0.192-0.035,0.348-0.12,0.469-0.255c0.121-0.136,0.181-0.317,0.181-0.544c0-0.192-0.047-0.355-0.14-0.489
+                       c-0.093-0.134-0.228-0.231-0.404-0.293c-0.177-0.061-0.559-0.092-1.147-0.092H449.298z"/>
+               <path fill="#FFFFFF" d="M454.459,86.004v-6.401h4.746v1.083h-3.454v1.419h3.213v1.078h-3.213v1.742h3.576v1.078H454.459z"/>
+               <path fill="#FFFFFF" d="M460.458,86.004v-6.348h1.292v5.27h3.213v1.078H460.458z"/>
+               <path fill="#FFFFFF" d="M465.919,86.004v-6.348h1.292v5.27h3.213v1.078H465.919z"/>
+               <path fill="#FFFFFF" d="M471.347,86.004v-6.401h4.746v1.083h-3.454v1.419h3.213v1.078h-3.213v1.742h3.576v1.078H471.347z"/>
+       </g>
+       <g id="chassel-hover-text" display="inline">
+               <path fill="#FFFFFF" d="M254.635,265.01l1.253,0.398c-0.192,0.699-0.512,1.218-0.959,1.556c-0.447,0.34-1.013,0.508-1.7,0.508
+                       c-0.85,0-1.548-0.29-2.096-0.87c-0.547-0.581-0.821-1.375-0.821-2.382c0-1.065,0.275-1.893,0.825-2.482
+                       c0.55-0.59,1.273-0.885,2.17-0.885c0.783,0,1.419,0.232,1.908,0.695c0.291,0.274,0.509,0.667,0.655,1.179l-1.279,0.306
+                       c-0.076-0.332-0.233-0.594-0.474-0.786c-0.24-0.192-0.532-0.288-0.875-0.288c-0.474,0-0.86,0.17-1.155,0.511
+                       c-0.296,0.34-0.443,0.892-0.443,1.654c0,0.809,0.146,1.385,0.437,1.729c0.291,0.343,0.669,0.515,1.135,0.515
+                       c0.343,0,0.639-0.109,0.886-0.328C254.349,265.823,254.527,265.48,254.635,265.01z"/>
+               <path fill="#FFFFFF" d="M257.001,267.364v-6.401h1.292v2.52h2.532v-2.52h1.292v6.401h-1.292v-2.798h-2.532v2.798H257.001z"/>
+               <path fill="#FFFFFF" d="M269.226,267.364h-1.406l-0.559-1.453h-2.559l-0.528,1.453h-1.371l2.493-6.401h1.367L269.226,267.364z
+                        M266.846,264.831l-0.882-2.375l-0.864,2.375H266.846z"/>
+               <path fill="#FFFFFF" d="M269.584,265.282l1.257-0.122c0.076,0.422,0.229,0.732,0.461,0.93c0.231,0.198,0.543,0.297,0.936,0.297
+                       c0.416,0,0.73-0.088,0.941-0.264c0.211-0.177,0.316-0.382,0.316-0.618c0-0.151-0.045-0.28-0.133-0.386
+                       c-0.089-0.107-0.244-0.199-0.465-0.277c-0.151-0.052-0.496-0.146-1.035-0.279c-0.693-0.172-1.179-0.382-1.458-0.634
+                       c-0.393-0.351-0.589-0.781-0.589-1.288c0-0.326,0.092-0.631,0.277-0.915c0.185-0.283,0.451-0.5,0.799-0.648
+                       c0.347-0.148,0.767-0.223,1.259-0.223c0.803,0,1.408,0.177,1.814,0.529c0.406,0.352,0.619,0.823,0.639,1.41l-1.292,0.057
+                       c-0.055-0.329-0.174-0.566-0.356-0.709c-0.182-0.145-0.455-0.216-0.818-0.216c-0.375,0-0.669,0.078-0.882,0.232
+                       c-0.137,0.099-0.205,0.231-0.205,0.397c0,0.151,0.064,0.281,0.192,0.389c0.163,0.137,0.559,0.279,1.188,0.427
+                       c0.629,0.149,1.093,0.303,1.395,0.461c0.301,0.159,0.537,0.375,0.707,0.651c0.17,0.275,0.255,0.615,0.255,1.019
+                       c0,0.367-0.102,0.711-0.306,1.03c-0.204,0.321-0.492,0.559-0.864,0.714c-0.373,0.156-0.837,0.234-1.393,0.234
+                       c-0.809,0-1.431-0.187-1.864-0.561C269.927,266.542,269.668,265.998,269.584,265.282z"/>
+               <path fill="#FFFFFF" d="M275.548,265.282l1.257-0.122c0.076,0.422,0.229,0.732,0.461,0.93c0.231,0.198,0.543,0.297,0.936,0.297
+                       c0.416,0,0.73-0.088,0.941-0.264c0.211-0.177,0.316-0.382,0.316-0.618c0-0.151-0.045-0.28-0.133-0.386
+                       c-0.089-0.107-0.244-0.199-0.465-0.277c-0.151-0.052-0.496-0.146-1.035-0.279c-0.693-0.172-1.179-0.382-1.458-0.634
+                       c-0.393-0.351-0.589-0.781-0.589-1.288c0-0.326,0.092-0.631,0.277-0.915c0.185-0.283,0.451-0.5,0.799-0.648
+                       c0.347-0.148,0.767-0.223,1.259-0.223c0.803,0,1.408,0.177,1.814,0.529c0.406,0.352,0.619,0.823,0.639,1.41l-1.292,0.057
+                       c-0.055-0.329-0.174-0.566-0.356-0.709c-0.182-0.145-0.455-0.216-0.818-0.216c-0.375,0-0.669,0.078-0.882,0.232
+                       c-0.137,0.099-0.205,0.231-0.205,0.397c0,0.151,0.064,0.281,0.192,0.389c0.163,0.137,0.559,0.279,1.188,0.427
+                       c0.629,0.149,1.093,0.303,1.395,0.461c0.301,0.159,0.537,0.375,0.707,0.651c0.17,0.275,0.255,0.615,0.255,1.019
+                       c0,0.367-0.102,0.711-0.306,1.03c-0.204,0.321-0.492,0.559-0.864,0.714c-0.373,0.156-0.837,0.234-1.393,0.234
+                       c-0.809,0-1.431-0.187-1.864-0.561C275.891,266.542,275.632,265.998,275.548,265.282z"/>
+               <path fill="#FFFFFF" d="M281.839,267.364v-6.401h4.746v1.083h-3.454v1.419h3.213v1.078h-3.213v1.742h3.576v1.079H281.839z"/>
+               <path fill="#FFFFFF" d="M287.838,267.364v-6.348h1.292v5.269h3.213v1.079H287.838z"/>
+               <path fill="#FFFFFF" d="M293.3,267.364v-6.348h1.292v5.269h3.213v1.079H293.3z"/>
+       </g>
+       <g display="inline">
+               <path fill="#FFFFFF" d="M193.953,291.091v-5.318h-1.899v-1.083h5.086v1.083h-1.895v5.318H193.953z"/>
+               <path fill="#FFFFFF" d="M197.551,287.93c0-0.652,0.098-1.199,0.293-1.642c0.146-0.326,0.344-0.618,0.596-0.877
+                       c0.252-0.259,0.528-0.451,0.828-0.576c0.399-0.169,0.859-0.254,1.38-0.254c0.943,0,1.697,0.293,2.264,0.878
+                       s0.849,1.399,0.849,2.44c0,1.034-0.281,1.842-0.843,2.426c-0.562,0.584-1.313,0.875-2.253,0.875c-0.952,0-1.709-0.29-2.27-0.87
+                       C197.832,289.748,197.551,288.949,197.551,287.93z M198.883,287.886c0,0.725,0.167,1.274,0.502,1.648
+                       c0.335,0.374,0.76,0.561,1.275,0.561c0.515,0,0.938-0.185,1.269-0.557c0.33-0.371,0.495-0.928,0.495-1.67
+                       c0-0.733-0.161-1.281-0.483-1.642c-0.322-0.361-0.749-0.541-1.281-0.541c-0.533,0-0.962,0.182-1.288,0.548
+                       C199.046,286.599,198.883,287.15,198.883,287.886z"/>
+               <path fill="#FFFFFF" d="M204.729,291.091v-6.401h1.292v6.401H204.729z"/>
+               <path fill="#FFFFFF" d="M208.885,291.091l-2.288-6.401h1.402l1.62,4.738l1.567-4.738h1.371l-2.292,6.401H208.885z"/>
+               <path fill="#FFFFFF" d="M212.954,287.93c0-0.652,0.098-1.199,0.293-1.642c0.146-0.326,0.344-0.618,0.596-0.877
+                       c0.252-0.259,0.528-0.451,0.828-0.576c0.399-0.169,0.859-0.254,1.38-0.254c0.943,0,1.697,0.293,2.264,0.878
+                       s0.849,1.399,0.849,2.44c0,1.034-0.281,1.842-0.843,2.426c-0.562,0.584-1.313,0.875-2.253,0.875c-0.952,0-1.709-0.29-2.27-0.87
+                       C213.235,289.748,212.954,288.949,212.954,287.93z M214.286,287.886c0,0.725,0.167,1.274,0.502,1.648
+                       c0.335,0.374,0.76,0.561,1.275,0.561c0.515,0,0.938-0.185,1.269-0.557c0.33-0.371,0.495-0.928,0.495-1.67
+                       c0-0.733-0.161-1.281-0.483-1.642c-0.322-0.361-0.749-0.541-1.281-0.541c-0.533,0-0.962,0.182-1.288,0.548
+                       C214.449,286.599,214.286,287.15,214.286,287.886z"/>
+               <path fill="#FFFFFF" d="M220.206,291.091v-6.348h1.292v5.269h3.213v1.079H220.206z"/>
+               <path fill="#FFFFFF" d="M231.405,291.091h-1.406l-0.559-1.453h-2.559l-0.528,1.453h-1.371l2.493-6.401h1.367L231.405,291.091z
+                        M229.026,288.558l-0.882-2.375l-0.864,2.375H229.026z"/>
+       </g>
+       <g display="inline">
+               <path fill="#FFFFFF" d="M323.189,69.72v-6.401h4.746v1.083h-3.454v1.419h3.213v1.078h-3.213v1.742h3.576v1.078H323.189z"/>
+               <path fill="#FFFFFF" d="M334.925,69.72h-1.406l-0.559-1.454h-2.559l-0.528,1.454h-1.371l2.493-6.401h1.367L334.925,69.72z
+                        M332.545,67.187l-0.882-2.375l-0.864,2.375H332.545z"/>
+               <path fill="#FFFFFF" d="M338.588,67.366v-1.078h2.786v2.55c-0.271,0.262-0.663,0.493-1.176,0.692
+                       c-0.514,0.199-1.034,0.299-1.561,0.299c-0.669,0-1.253-0.14-1.751-0.422c-0.498-0.28-0.872-0.682-1.122-1.205
+                       c-0.25-0.522-0.375-1.091-0.375-1.705c0-0.667,0.14-1.259,0.419-1.777s0.688-0.915,1.227-1.192
+                       c0.41-0.212,0.921-0.319,1.532-0.319c0.795,0,1.415,0.167,1.862,0.5c0.447,0.333,0.734,0.794,0.863,1.382l-1.284,0.24
+                       c-0.09-0.314-0.26-0.562-0.508-0.745c-0.249-0.181-0.56-0.273-0.932-0.273c-0.565,0-1.014,0.179-1.347,0.537
+                       c-0.334,0.358-0.5,0.889-0.5,1.594c0,0.76,0.169,1.329,0.506,1.71c0.338,0.379,0.78,0.57,1.327,0.57
+                       c0.271,0,0.542-0.053,0.815-0.159c0.272-0.106,0.505-0.235,0.701-0.387v-0.812H338.588z"/>
+               <path fill="#FFFFFF" d="M342.6,69.72v-6.348h1.292v5.27h3.213v1.078H342.6z"/>
+               <path fill="#FFFFFF" d="M348.027,69.72v-6.401h4.746v1.083h-3.454v1.419h3.213v1.078h-3.213v1.742h3.576v1.078H348.027z"/>
+               <path fill="#FFFFFF" d="M356.48,69.72v-6.401h2.72c0.684,0,1.181,0.058,1.491,0.173c0.31,0.115,0.558,0.319,0.745,0.613
+                       c0.186,0.294,0.279,0.63,0.279,1.009c0,0.48-0.141,0.877-0.424,1.19c-0.282,0.313-0.704,0.51-1.266,0.591
+                       c0.279,0.163,0.51,0.342,0.692,0.537s0.427,0.541,0.736,1.039l0.782,1.249h-1.546l-0.934-1.393
+                       c-0.332-0.498-0.559-0.811-0.681-0.941c-0.122-0.13-0.252-0.218-0.389-0.267c-0.137-0.048-0.354-0.072-0.651-0.072h-0.262v2.672
+                       H356.48z M357.772,66.026h0.956c0.62,0,1.007-0.026,1.161-0.079s0.275-0.143,0.362-0.271c0.087-0.128,0.131-0.288,0.131-0.48
+                       c0-0.215-0.058-0.389-0.173-0.522c-0.115-0.132-0.277-0.216-0.487-0.251c-0.105-0.015-0.419-0.022-0.943-0.022h-1.009V66.026z"/>
+               <path fill="#FFFFFF" d="M362.894,69.72v-6.401h1.292v6.401H362.894z"/>
+               <path fill="#FFFFFF" d="M367.05,69.72l-2.288-6.401h1.402l1.62,4.737l1.567-4.737h1.371l-2.292,6.401H367.05z"/>
+               <path fill="#FFFFFF" d="M371.381,69.72v-6.401h4.746v1.083h-3.454v1.419h3.213v1.078h-3.213v1.742h3.576v1.078H371.381z"/>
+               <path fill="#FFFFFF" d="M377.35,69.72v-6.401h2.719c0.685,0,1.182,0.058,1.492,0.173c0.31,0.115,0.557,0.319,0.743,0.613
+                       c0.186,0.294,0.279,0.63,0.279,1.009c0,0.48-0.14,0.877-0.423,1.19c-0.281,0.313-0.704,0.51-1.265,0.591
+                       c0.279,0.163,0.51,0.342,0.691,0.537c0.182,0.195,0.427,0.541,0.735,1.039l0.782,1.249h-1.545l-0.935-1.393
+                       c-0.332-0.498-0.559-0.811-0.681-0.941s-0.252-0.218-0.388-0.267c-0.138-0.048-0.353-0.072-0.65-0.072h-0.262v2.672H377.35z
+                        M378.643,66.026h0.955c0.621,0,1.007-0.026,1.162-0.079c0.153-0.052,0.276-0.143,0.363-0.271c0.087-0.128,0.13-0.288,0.13-0.48
+                       c0-0.215-0.056-0.389-0.173-0.522c-0.114-0.132-0.277-0.216-0.487-0.251c-0.105-0.015-0.419-0.022-0.943-0.022h-1.007V66.026z"/>
+       </g>
+       <g display="inline">
+               <path fill="#FFFFFF" d="M358.959,45.537v-6.401h4.746v1.083h-3.454v1.419h3.213v1.078h-3.213v1.742h3.576v1.078H358.959z"/>
+               <path fill="#FFFFFF" d="M370.695,45.537h-1.406l-0.559-1.454h-2.559l-0.528,1.454h-1.371l2.493-6.401h1.367L370.695,45.537z
+                        M368.316,43.005l-0.882-2.375l-0.864,2.375H368.316z"/>
+               <path fill="#FFFFFF" d="M374.359,43.184v-1.078h2.785v2.55c-0.27,0.262-0.664,0.493-1.176,0.692
+                       c-0.514,0.199-1.034,0.299-1.562,0.299c-0.669,0-1.253-0.14-1.75-0.422c-0.498-0.28-0.872-0.682-1.122-1.205
+                       c-0.25-0.522-0.375-1.091-0.375-1.705c0-0.667,0.14-1.259,0.419-1.777c0.279-0.518,0.688-0.915,1.227-1.192
+                       c0.41-0.212,0.921-0.319,1.532-0.319c0.796,0,1.417,0.167,1.863,0.5c0.446,0.333,0.733,0.794,0.862,1.382l-1.283,0.24
+                       c-0.091-0.314-0.26-0.562-0.508-0.745c-0.25-0.181-0.561-0.273-0.933-0.273c-0.565,0-1.013,0.179-1.346,0.537
+                       c-0.334,0.358-0.5,0.889-0.5,1.594c0,0.76,0.169,1.329,0.506,1.71c0.338,0.379,0.779,0.57,1.328,0.57
+                       c0.27,0,0.541-0.053,0.813-0.159c0.272-0.106,0.506-0.235,0.701-0.387v-0.812H374.359z"/>
+               <path fill="#FFFFFF" d="M378.37,45.537v-6.348h1.292v5.27h3.213v1.078H378.37z"/>
+               <path fill="#FFFFFF" d="M383.798,45.537v-6.401h4.746v1.083h-3.454v1.419h3.213v1.078h-3.213v1.742h3.576v1.078H383.798z"/>
+               <path fill="#FFFFFF" d="M392.252,45.537v-6.401h1.292v2.519h2.532v-2.519h1.292v6.401h-1.292v-2.799h-2.532v2.799H392.252z"/>
+               <path fill="#FFFFFF" d="M404.477,45.537h-1.407l-0.559-1.454h-2.558l-0.529,1.454h-1.371l2.493-6.401h1.366L404.477,45.537z
+                        M402.097,43.005l-0.882-2.375l-0.864,2.375H402.097z"/>
+               <path fill="#FFFFFF" d="M405.167,45.537v-6.401h2.72c0.684,0,1.182,0.058,1.491,0.173c0.31,0.115,0.558,0.319,0.744,0.613
+                       s0.279,0.63,0.279,1.009c0,0.48-0.141,0.877-0.423,1.19c-0.282,0.313-0.704,0.51-1.266,0.591c0.279,0.163,0.51,0.342,0.692,0.537
+                       c0.182,0.195,0.427,0.541,0.735,1.039l0.782,1.249h-1.546l-0.934-1.393c-0.332-0.498-0.559-0.811-0.681-0.941
+                       c-0.122-0.13-0.252-0.218-0.388-0.267c-0.138-0.048-0.354-0.072-0.651-0.072h-0.262v2.672H405.167z M406.46,41.843h0.956
+                       c0.621,0,1.007-0.026,1.162-0.079c0.153-0.052,0.275-0.143,0.362-0.271c0.087-0.128,0.131-0.288,0.131-0.48
+                       c0-0.215-0.057-0.389-0.173-0.522c-0.115-0.132-0.277-0.216-0.487-0.251c-0.105-0.015-0.419-0.022-0.943-0.022h-1.008V41.843z"/>
+               <path fill="#FFFFFF" d="M411.625,39.136h2.559c0.506,0,0.884,0.021,1.133,0.063c0.248,0.043,0.472,0.13,0.668,0.264
+                       c0.197,0.134,0.361,0.312,0.491,0.535c0.132,0.222,0.197,0.472,0.197,0.749c0,0.3-0.081,0.575-0.243,0.825
+                       c-0.161,0.25-0.38,0.438-0.657,0.563c0.39,0.114,0.69,0.307,0.899,0.581s0.314,0.595,0.314,0.965c0,0.291-0.068,0.574-0.203,0.849
+                       c-0.136,0.275-0.32,0.495-0.555,0.659c-0.234,0.165-0.523,0.266-0.866,0.304c-0.215,0.023-0.735,0.038-1.559,0.044h-2.178V39.136z
+                        M412.917,40.202v1.48h0.847c0.504,0,0.817-0.007,0.939-0.022c0.22-0.026,0.395-0.103,0.521-0.229
+                       c0.127-0.127,0.19-0.293,0.19-0.5c0-0.198-0.054-0.358-0.164-0.483c-0.109-0.123-0.272-0.198-0.487-0.225
+                       c-0.128-0.015-0.496-0.022-1.104-0.022H412.917z M412.917,42.747v1.711h1.196c0.466,0,0.761-0.013,0.887-0.039
+                       c0.192-0.035,0.348-0.12,0.469-0.255c0.121-0.136,0.181-0.317,0.181-0.544c0-0.192-0.047-0.355-0.14-0.489
+                       s-0.228-0.231-0.404-0.293c-0.177-0.061-0.559-0.092-1.147-0.092H412.917z"/>
+               <path fill="#FFFFFF" d="M417.816,42.376c0-0.652,0.098-1.199,0.293-1.642c0.146-0.326,0.344-0.619,0.596-0.878
+                       c0.252-0.259,0.528-0.451,0.828-0.576c0.399-0.169,0.859-0.253,1.38-0.253c0.943,0,1.698,0.293,2.264,0.878
+                       c0.567,0.585,0.85,1.399,0.85,2.441c0,1.033-0.281,1.842-0.843,2.425c-0.562,0.584-1.313,0.876-2.253,0.876
+                       c-0.952,0-1.709-0.291-2.27-0.871C418.098,44.194,417.816,43.395,417.816,42.376z M419.148,42.332
+                       c0,0.725,0.167,1.274,0.502,1.648c0.335,0.374,0.761,0.561,1.275,0.561c0.516,0,0.938-0.185,1.269-0.557
+                       c0.33-0.371,0.495-0.928,0.495-1.67c0-0.733-0.16-1.281-0.482-1.642c-0.321-0.361-0.748-0.541-1.282-0.541
+                       c-0.532,0-0.962,0.183-1.288,0.548C419.311,41.045,419.148,41.596,419.148,42.332z"/>
+               <path fill="#FFFFFF" d="M425.038,45.537v-6.401h2.72c0.684,0,1.182,0.058,1.491,0.173c0.31,0.115,0.558,0.319,0.744,0.613
+                       c0.186,0.294,0.279,0.63,0.279,1.009c0,0.48-0.141,0.877-0.423,1.19c-0.282,0.313-0.704,0.51-1.266,0.591
+                       c0.279,0.163,0.51,0.342,0.692,0.537c0.182,0.195,0.427,0.541,0.735,1.039l0.782,1.249h-1.546l-0.934-1.393
+                       c-0.332-0.498-0.559-0.811-0.681-0.941c-0.122-0.13-0.252-0.218-0.388-0.267c-0.138-0.048-0.354-0.072-0.651-0.072h-0.262v2.672
+                       H425.038z M426.33,41.843h0.956c0.621,0,1.007-0.026,1.162-0.079c0.153-0.052,0.275-0.143,0.362-0.271
+                       c0.087-0.128,0.131-0.288,0.131-0.48c0-0.215-0.057-0.389-0.173-0.522c-0.114-0.132-0.277-0.216-0.487-0.251
+                       c-0.105-0.015-0.419-0.022-0.943-0.022h-1.008V41.843z"/>
+       </g>
+       <g display="inline">
+               <g>
+                       <path fill="#FFFFFF" d="M526.919,34.508l1.253,0.397c-0.192,0.699-0.511,1.218-0.959,1.556c-0.446,0.34-1.014,0.509-1.701,0.509
+                               c-0.85,0-1.549-0.291-2.096-0.871c-0.547-0.581-0.821-1.375-0.821-2.382c0-1.065,0.276-1.893,0.826-2.482
+                               c0.55-0.59,1.273-0.884,2.17-0.884c0.782,0,1.419,0.231,1.907,0.694c0.291,0.274,0.509,0.667,0.655,1.179l-1.28,0.306
+                               c-0.076-0.332-0.233-0.594-0.473-0.786c-0.24-0.192-0.532-0.288-0.875-0.288c-0.474,0-0.86,0.17-1.155,0.511
+                               c-0.296,0.341-0.443,0.892-0.443,1.655c0,0.809,0.146,1.385,0.437,1.729c0.291,0.343,0.669,0.515,1.135,0.515
+                               c0.343,0,0.638-0.109,0.886-0.327C526.633,35.32,526.81,34.977,526.919,34.508z"/>
+                       <path fill="#FFFFFF" d="M529.018,33.701c0-0.652,0.098-1.199,0.293-1.642c0.146-0.326,0.344-0.619,0.596-0.878
+                               c0.252-0.259,0.528-0.451,0.828-0.576c0.399-0.169,0.859-0.253,1.38-0.253c0.943,0,1.698,0.293,2.264,0.878
+                               c0.567,0.585,0.85,1.399,0.85,2.441c0,1.033-0.281,1.842-0.843,2.425c-0.562,0.584-1.313,0.876-2.253,0.876
+                               c-0.952,0-1.709-0.291-2.27-0.871C529.3,35.519,529.018,34.719,529.018,33.701z M530.351,33.657c0,0.725,0.167,1.274,0.502,1.648
+                               c0.335,0.374,0.761,0.561,1.275,0.561c0.516,0,0.938-0.185,1.269-0.557c0.33-0.371,0.495-0.928,0.495-1.67
+                               c0-0.733-0.16-1.281-0.482-1.642c-0.321-0.361-0.748-0.541-1.282-0.541c-0.532,0-0.961,0.183-1.288,0.548
+                               C530.514,32.37,530.351,32.921,530.351,33.657z"/>
+                       <path fill="#FFFFFF" d="M536.235,36.862v-6.401h2.074c0.786,0,1.298,0.032,1.537,0.096c0.367,0.096,0.673,0.305,0.922,0.627
+                               c0.246,0.322,0.371,0.737,0.371,1.246c0,0.393-0.072,0.723-0.214,0.991c-0.144,0.268-0.324,0.478-0.544,0.631
+                               c-0.219,0.153-0.443,0.254-0.67,0.304c-0.309,0.061-0.755,0.092-1.34,0.092h-0.843v2.414H536.235z M537.527,31.544v1.816h0.708
+                               c0.508,0,0.849-0.033,1.021-0.1c0.172-0.067,0.307-0.172,0.405-0.314c0.097-0.143,0.146-0.309,0.146-0.498
+                               c0-0.233-0.069-0.425-0.206-0.576c-0.137-0.151-0.31-0.246-0.52-0.284c-0.154-0.029-0.464-0.044-0.929-0.044H537.527z"/>
+                       <path fill="#FFFFFF" d="M542.199,36.862v-6.401h2.074c0.786,0,1.298,0.032,1.537,0.096c0.367,0.096,0.673,0.305,0.922,0.627
+                               c0.246,0.322,0.371,0.737,0.371,1.246c0,0.393-0.072,0.723-0.213,0.991c-0.144,0.268-0.324,0.478-0.544,0.631
+                               c-0.219,0.153-0.443,0.254-0.67,0.304c-0.309,0.061-0.755,0.092-1.34,0.092h-0.843v2.414H542.199z M543.491,31.544v1.816h0.708
+                               c0.508,0,0.849-0.033,1.021-0.1c0.172-0.067,0.307-0.172,0.405-0.314c0.097-0.143,0.146-0.309,0.146-0.498
+                               c0-0.233-0.069-0.425-0.206-0.576c-0.137-0.151-0.31-0.246-0.52-0.284c-0.154-0.029-0.464-0.044-0.93-0.044H543.491z"/>
+                       <path fill="#FFFFFF" d="M548.163,36.862v-6.401h4.746v1.083h-3.454v1.419h3.213v1.078h-3.213v1.742h3.576v1.078H548.163z"/>
+                       <path fill="#FFFFFF" d="M554.132,36.862v-6.401h2.72c0.684,0,1.182,0.058,1.491,0.173c0.31,0.115,0.558,0.319,0.744,0.613
+                               c0.186,0.294,0.279,0.63,0.279,1.009c0,0.48-0.141,0.877-0.423,1.19c-0.282,0.313-0.704,0.51-1.266,0.591
+                               c0.279,0.163,0.51,0.342,0.692,0.537c0.182,0.195,0.427,0.541,0.735,1.039l0.782,1.249h-1.546l-0.934-1.393
+                               c-0.332-0.498-0.559-0.811-0.681-0.941c-0.122-0.13-0.252-0.218-0.388-0.267c-0.138-0.048-0.354-0.072-0.651-0.072h-0.262v2.672
+                               H554.132z M555.424,33.168h0.956c0.621,0,1.007-0.026,1.162-0.079c0.153-0.052,0.275-0.143,0.362-0.271
+                               c0.087-0.128,0.131-0.288,0.131-0.48c0-0.215-0.057-0.389-0.173-0.522c-0.115-0.132-0.277-0.216-0.487-0.251
+                               c-0.105-0.015-0.419-0.022-0.943-0.022h-1.008V33.168z"/>
+                       <path fill="#FFFFFF" d="M563.073,36.862v-6.401h1.292v2.519h2.532v-2.519h1.292v6.401h-1.292v-2.799h-2.532v2.799H563.073z"/>
+                       <path fill="#FFFFFF" d="M575.299,36.862h-1.407l-0.559-1.454h-2.558l-0.529,1.454h-1.371l2.493-6.401h1.366L575.299,36.862z
+                                M572.919,34.329l-0.882-2.375l-0.864,2.375H572.919z"/>
+                       <path fill="#FFFFFF" d="M575.988,36.862v-6.401h2.72c0.684,0,1.182,0.058,1.491,0.173c0.31,0.115,0.558,0.319,0.744,0.613
+                               c0.186,0.294,0.279,0.63,0.279,1.009c0,0.48-0.141,0.877-0.423,1.19c-0.282,0.313-0.704,0.51-1.266,0.591
+                               c0.279,0.163,0.51,0.342,0.692,0.537c0.182,0.195,0.427,0.541,0.735,1.039l0.782,1.249h-1.546l-0.934-1.393
+                               c-0.332-0.498-0.559-0.811-0.681-0.941c-0.122-0.13-0.252-0.218-0.388-0.267c-0.138-0.048-0.354-0.072-0.651-0.072h-0.262v2.672
+                               H575.988z M577.281,33.168h0.956c0.621,0,1.007-0.026,1.162-0.079c0.153-0.052,0.275-0.143,0.362-0.271
+                               c0.087-0.128,0.131-0.288,0.131-0.48c0-0.215-0.057-0.389-0.173-0.522c-0.115-0.132-0.277-0.216-0.487-0.251
+                               c-0.105-0.015-0.419-0.022-0.943-0.022h-1.008V33.168z"/>
+                       <path fill="#FFFFFF" d="M582.446,30.461h2.558c0.506,0,0.884,0.021,1.133,0.063c0.248,0.043,0.472,0.13,0.668,0.264
+                               c0.197,0.134,0.361,0.312,0.491,0.535c0.132,0.222,0.197,0.472,0.197,0.749c0,0.3-0.081,0.575-0.243,0.825
+                               c-0.161,0.25-0.38,0.438-0.657,0.563c0.39,0.114,0.69,0.307,0.899,0.581c0.21,0.274,0.314,0.595,0.314,0.965
+                               c0,0.291-0.068,0.574-0.203,0.849c-0.136,0.275-0.32,0.495-0.555,0.659c-0.234,0.165-0.523,0.266-0.866,0.304
+                               c-0.215,0.023-0.735,0.038-1.559,0.044h-2.178V30.461z M583.739,31.526v1.48h0.847c0.504,0,0.817-0.007,0.939-0.022
+                               c0.22-0.026,0.395-0.103,0.521-0.229c0.127-0.127,0.19-0.293,0.19-0.5c0-0.198-0.054-0.358-0.164-0.483
+                               c-0.109-0.123-0.272-0.198-0.487-0.225c-0.128-0.015-0.496-0.022-1.104-0.022H583.739z M583.739,34.072v1.711h1.196
+                               c0.466,0,0.761-0.013,0.887-0.039c0.192-0.035,0.348-0.12,0.469-0.255c0.121-0.136,0.181-0.317,0.181-0.544
+                               c0-0.192-0.047-0.355-0.14-0.489s-0.228-0.231-0.404-0.293c-0.177-0.061-0.559-0.092-1.147-0.092H583.739z"/>
+                       <path fill="#FFFFFF" d="M588.637,33.701c0-0.652,0.098-1.199,0.293-1.642c0.146-0.326,0.344-0.619,0.596-0.878
+                               c0.252-0.259,0.528-0.451,0.828-0.576c0.399-0.169,0.859-0.253,1.38-0.253c0.943,0,1.698,0.293,2.264,0.878
+                               c0.567,0.585,0.85,1.399,0.85,2.441c0,1.033-0.281,1.842-0.843,2.425c-0.562,0.584-1.313,0.876-2.253,0.876
+                               c-0.952,0-1.709-0.291-2.27-0.871C588.919,35.519,588.637,34.719,588.637,33.701z M589.969,33.657
+                               c0,0.725,0.167,1.274,0.502,1.648c0.335,0.374,0.761,0.561,1.275,0.561c0.516,0,0.938-0.185,1.269-0.557
+                               c0.33-0.371,0.495-0.928,0.495-1.67c0-0.733-0.16-1.281-0.482-1.642c-0.321-0.361-0.748-0.541-1.282-0.541
+                               c-0.532,0-0.962,0.183-1.288,0.548C590.133,32.37,589.969,32.921,589.969,33.657z"/>
+                       <path fill="#FFFFFF" d="M595.859,36.862v-6.401h2.72c0.684,0,1.182,0.058,1.491,0.173c0.31,0.115,0.558,0.319,0.744,0.613
+                               c0.186,0.294,0.279,0.63,0.279,1.009c0,0.48-0.141,0.877-0.423,1.19s-0.704,0.51-1.266,0.591c0.279,0.163,0.51,0.342,0.692,0.537
+                               c0.182,0.195,0.427,0.541,0.735,1.039l0.782,1.249h-1.546l-0.934-1.393c-0.332-0.498-0.559-0.811-0.681-0.941
+                               c-0.122-0.13-0.252-0.218-0.388-0.267c-0.138-0.048-0.354-0.072-0.651-0.072h-0.262v2.672H595.859z M597.151,33.168h0.956
+                               c0.621,0,1.007-0.026,1.162-0.079c0.153-0.052,0.275-0.143,0.362-0.271c0.087-0.128,0.131-0.288,0.131-0.48
+                               c0-0.215-0.057-0.389-0.173-0.522c-0.115-0.132-0.277-0.216-0.487-0.251c-0.105-0.015-0.419-0.022-0.943-0.022h-1.008V33.168z"/>
+               </g>
+       </g>
+       <g display="inline">
+               <path fill="#FFFFFF" d="M274.719,207.659v-6.401h1.292v2.52h2.532v-2.52h1.292v6.401h-1.292v-2.798h-2.532v2.798H274.719z"/>
+               <path fill="#FFFFFF" d="M286.944,207.659h-1.406l-0.559-1.453h-2.559l-0.528,1.453h-1.371l2.493-6.401h1.367L286.944,207.659z
+                        M284.564,205.127l-0.882-2.375l-0.864,2.375H284.564z"/>
+               <path fill="#FFFFFF" d="M287.642,207.659v-6.401h1.257l2.62,4.274v-4.274h1.201v6.401h-1.297l-2.58-4.174v4.174H287.642z"/>
+               <path fill="#FFFFFF" d="M298.182,205.306l1.253,0.398c-0.192,0.699-0.512,1.218-0.959,1.556c-0.447,0.34-1.013,0.508-1.7,0.508
+                       c-0.85,0-1.548-0.29-2.096-0.87c-0.547-0.581-0.821-1.375-0.821-2.382c0-1.065,0.275-1.893,0.825-2.482
+                       c0.55-0.59,1.273-0.885,2.17-0.885c0.783,0,1.419,0.232,1.908,0.695c0.291,0.274,0.509,0.667,0.655,1.179l-1.279,0.306
+                       c-0.076-0.332-0.233-0.594-0.474-0.786c-0.24-0.192-0.532-0.288-0.875-0.288c-0.474,0-0.86,0.17-1.155,0.511
+                       c-0.296,0.34-0.443,0.892-0.443,1.654c0,0.809,0.146,1.385,0.437,1.729c0.291,0.343,0.669,0.515,1.135,0.515
+                       c0.343,0,0.639-0.109,0.886-0.328C297.897,206.119,298.074,205.775,298.182,205.306z"/>
+               <path fill="#FFFFFF" d="M300.282,204.498c0-0.652,0.098-1.199,0.293-1.642c0.146-0.326,0.344-0.618,0.596-0.877
+                       s0.528-0.451,0.828-0.576c0.399-0.169,0.859-0.254,1.38-0.254c0.943,0,1.697,0.293,2.264,0.878
+                       c0.566,0.585,0.849,1.399,0.849,2.44c0,1.034-0.281,1.842-0.843,2.426c-0.562,0.584-1.313,0.875-2.253,0.875
+                       c-0.952,0-1.709-0.29-2.27-0.87C300.563,206.317,300.282,205.517,300.282,204.498z M301.614,204.455
+                       c0,0.725,0.167,1.274,0.502,1.648c0.335,0.374,0.76,0.561,1.275,0.561c0.515,0,0.938-0.185,1.269-0.557
+                       c0.33-0.371,0.495-0.928,0.495-1.67c0-0.733-0.161-1.281-0.483-1.642c-0.322-0.361-0.749-0.541-1.281-0.541
+                       c-0.533,0-0.962,0.182-1.288,0.548C301.777,203.167,301.614,203.718,301.614,204.455z"/>
+               <path fill="#FFFFFF" d="M311.595,205.306l1.253,0.398c-0.192,0.699-0.512,1.218-0.959,1.556c-0.447,0.34-1.013,0.508-1.7,0.508
+                       c-0.85,0-1.548-0.29-2.096-0.87c-0.547-0.581-0.821-1.375-0.821-2.382c0-1.065,0.275-1.893,0.825-2.482
+                       c0.55-0.59,1.273-0.885,2.17-0.885c0.783,0,1.419,0.232,1.908,0.695c0.291,0.274,0.509,0.667,0.655,1.179l-1.279,0.306
+                       c-0.076-0.332-0.233-0.594-0.474-0.786c-0.24-0.192-0.532-0.288-0.875-0.288c-0.474,0-0.86,0.17-1.155,0.511
+                       c-0.296,0.34-0.443,0.892-0.443,1.654c0,0.809,0.146,1.385,0.437,1.729c0.291,0.343,0.669,0.515,1.135,0.515
+                       c0.343,0,0.639-0.109,0.886-0.328C311.309,206.119,311.487,205.775,311.595,205.306z"/>
+               <path fill="#FFFFFF" d="M313.974,207.659v-6.401h1.292v2.842l2.611-2.842h1.738l-2.41,2.493l2.541,3.908h-1.672l-1.76-3.004
+                       l-1.048,1.069v1.935H313.974z"/>
+       </g>
+       <g display="inline">
+               <path fill="#FFFFFF" d="M247.067,230.239v-6.401h1.292v2.52h2.532v-2.52h1.292v6.401h-1.292v-2.798h-2.532v2.798H247.067z"/>
+               <path fill="#FFFFFF" d="M253.258,227.078c0-0.652,0.098-1.199,0.293-1.642c0.146-0.326,0.344-0.618,0.596-0.877
+                       c0.252-0.259,0.528-0.451,0.828-0.576c0.399-0.169,0.859-0.254,1.38-0.254c0.943,0,1.697,0.293,2.264,0.878
+                       s0.849,1.399,0.849,2.44c0,1.034-0.281,1.842-0.843,2.426c-0.562,0.584-1.313,0.875-2.253,0.875c-0.952,0-1.709-0.29-2.27-0.87
+                       C253.539,228.896,253.258,228.096,253.258,227.078z M254.59,227.034c0,0.725,0.167,1.274,0.502,1.648
+                       c0.335,0.374,0.76,0.561,1.275,0.561s0.938-0.185,1.269-0.557c0.33-0.371,0.495-0.928,0.495-1.67c0-0.733-0.161-1.281-0.483-1.642
+                       c-0.322-0.361-0.749-0.541-1.281-0.541c-0.533,0-0.962,0.182-1.288,0.548C254.753,225.747,254.59,226.298,254.59,227.034z"/>
+               <path fill="#FFFFFF" d="M260.466,223.838h1.292v3.467c0,0.55,0.016,0.907,0.048,1.069c0.055,0.262,0.187,0.473,0.395,0.632
+                       c0.208,0.158,0.493,0.238,0.854,0.238c0.367,0,0.643-0.075,0.83-0.225c0.186-0.149,0.298-0.334,0.336-0.552
+                       c0.038-0.218,0.057-0.581,0.057-1.088v-3.54h1.292v3.362c0,0.768-0.035,1.312-0.105,1.628c-0.07,0.318-0.199,0.586-0.386,0.803
+                       c-0.188,0.219-0.439,0.393-0.753,0.522c-0.314,0.13-0.725,0.194-1.231,0.194c-0.611,0-1.075-0.07-1.391-0.212
+                       c-0.316-0.141-0.565-0.324-0.749-0.55c-0.183-0.225-0.304-0.462-0.362-0.709c-0.084-0.367-0.127-0.908-0.127-1.624V223.838z"/>
+               <path fill="#FFFFFF" d="M269.91,227.885v-1.078h2.786v2.55c-0.271,0.262-0.663,0.493-1.176,0.692
+                       c-0.514,0.2-1.034,0.299-1.561,0.299c-0.669,0-1.253-0.14-1.751-0.421c-0.498-0.28-0.872-0.682-1.122-1.205
+                       c-0.25-0.522-0.375-1.091-0.375-1.705c0-0.667,0.14-1.258,0.419-1.777c0.279-0.518,0.688-0.916,1.227-1.192
+                       c0.41-0.212,0.921-0.319,1.532-0.319c0.795,0,1.415,0.167,1.862,0.501c0.447,0.333,0.734,0.794,0.863,1.382l-1.284,0.241
+                       c-0.09-0.314-0.26-0.563-0.508-0.745c-0.249-0.181-0.56-0.273-0.932-0.273c-0.565,0-1.014,0.179-1.347,0.537
+                       c-0.334,0.359-0.5,0.89-0.5,1.594c0,0.76,0.169,1.329,0.506,1.71c0.338,0.379,0.78,0.57,1.327,0.57
+                       c0.271,0,0.542-0.053,0.815-0.159c0.272-0.107,0.505-0.235,0.701-0.386v-0.813H269.91z"/>
+               <path fill="#FFFFFF" d="M273.892,230.239v-6.401h1.292v2.52h2.532v-2.52h1.292v6.401h-1.292v-2.798h-2.532v2.798H273.892z"/>
+               <path fill="#FFFFFF" d="M281.786,230.239v-5.318h-1.899v-1.083h5.086v1.083h-1.895v5.318H281.786z"/>
+               <path fill="#FFFFFF" d="M285.545,227.078c0-0.652,0.098-1.199,0.293-1.642c0.146-0.326,0.344-0.618,0.596-0.877
+                       c0.252-0.259,0.528-0.451,0.828-0.576c0.399-0.169,0.859-0.254,1.38-0.254c0.943,0,1.697,0.293,2.264,0.878
+                       s0.849,1.399,0.849,2.44c0,1.034-0.281,1.842-0.843,2.426c-0.562,0.584-1.313,0.875-2.253,0.875c-0.952,0-1.709-0.29-2.27-0.87
+                       C285.826,228.896,285.545,228.096,285.545,227.078z M286.876,227.034c0,0.725,0.167,1.274,0.502,1.648
+                       c0.335,0.374,0.76,0.561,1.275,0.561s0.938-0.185,1.269-0.557c0.33-0.371,0.495-0.928,0.495-1.67c0-0.733-0.161-1.281-0.483-1.642
+                       c-0.322-0.361-0.749-0.541-1.281-0.541s-0.962,0.182-1.288,0.548C287.039,225.747,286.876,226.298,286.876,227.034z"/>
+               <path fill="#FFFFFF" d="M292.775,230.239v-6.401h1.257l2.62,4.274v-4.274h1.201v6.401h-1.297l-2.58-4.174v4.174H292.775z"/>
+       </g>
+</g>
+</svg>
diff --git a/parts/event-feed.php b/parts/event-feed.php
new file mode 100644 (file)
index 0000000..c6a5079
--- /dev/null
@@ -0,0 +1 @@
+<?php echo do_shortcode('[glm-members-event-list template="eventsFeed.html" featured="True"]');?>
\ No newline at end of file
diff --git a/parts/map-section.php b/parts/map-section.php
new file mode 100644 (file)
index 0000000..ead1bbc
--- /dev/null
@@ -0,0 +1,136 @@
+<!-- WP CITY PAGE DATA FOR JS PROCESSING -->
+<?php
+    $pages = ['chassel-toivola', 'calumet-laurinum', 'copper-harbor','eagle-harbor-eagle-river', 'houghton-hancock','lac-la-belle-bete-grise'];
+    foreach($pages as $page){
+        $args = array(
+            'slug'        => $page,
+            'post_type'   => 'page',
+            'post_status' => 'publish',
+            'numberposts' => 1
+        );
+        $city_page = get_posts($args);
+
+        $content       = substr(strip_tags($city_page[0]->post_content),0, 300);
+        $content       = strip_shortcodes($content);
+        $city_image_id = get_post_thumbnail_id($city_page[0]->ID);
+        $city_image    = wp_get_attachment_image_src( $city_image_id, 250,250, true);
+        $city_url = get_permalink($city_page[0]->ID);
+
+        if($city_image_id){
+            $city_image    = wp_get_attachment_image_src( $city_image_id, 250,250, true);
+            $city_image = $city_image[0];
+        } else {
+            $city_image = get_template_directory_uri() .'/assets/default.jpg';
+        }
+
+        $cities[$city_page[0]->post_name] = array(
+            'title'     => $city_page[0]->post_title,
+            'id'        => $city_page[0]->ID,
+            'content'   => $content,
+            'slug'      => $city_page[0]->post_name,
+            'image'     => $city_image,
+            'url'       => $city_url
+        );
+    }
+    $js_cities = json_encode($cities);
+?>
+
+<!-- SVG MAP SECTION -->
+<div class="small-12 large-8 large-push-4 columns area-map">
+    <?php include 'city-map.php'; ?>
+</div>
+
+ <!-- CITY INFO -->
+<div class="small-12 large-4 large-pull-8 columns area-map-info">
+  <div class="city-info-wrapper">
+       <h2> Take a Tour</h2>
+        <div class="city-info-wrapper">
+            <div class="city-img" style="background-image: url(<?php echo get_template_directory_uri();?>/assets/default.jpg);"></div>
+            <div class="city-title">Default</div>
+            <div class="city-content">post content</div>
+        </div>
+        <div class="city-info-button">
+            <a class="city-link" href="">Find out more...</a>
+        </div>
+    </div>
+</div>
+<script>
+    jQuery(function($){
+        var cities    = <?php echo $js_cities ?>;
+        var map         = $("#city-map");
+        var city_region = $('.city-region');
+        var text_paths  = $(city_region).children('path');
+        var red         = '#ed5537';
+        var blue        = '#6694a1';
+        var city_image  = $('.city-img');
+        var city_title  = $('.city-title');
+        var city_content  = $('.city-content');
+        var city_link     = $('.city-link');
+        var sibling_region,city_id,url;
+
+        // hover elements TODO::Create a function that removes the duplicate code for title,content and img in the hover callbacks
+        text_paths.hover(function(){
+            var parent = $(this).parent();
+            var sibling = parent.prev();
+            city_id = sibling_region = sibling.children('g').attr("id");
+            sibling_region = sibling.children('g').find('rect');
+            sibling_region.css({"fill" :red, 'cursor' : 'pointer'});
+
+            var img     = cities[city_id]['image'];
+            var title   = cities[city_id]['title'];
+            var content = cities[city_id]['content'];
+            url     = cities[city_id]['url'];
+
+            city_image.css("background-image", 'url(' + img + ')');
+            city_content.text(content);
+            city_title.text(title);
+            city_link.attr("href", url);
+
+        },function(){
+             sibling_region.css("fill", blue);
+        });
+
+        city_region.hover(function(){
+            if( $(this).children('path').length > 0 ){
+                city_id = $(this).prev().children('g').attr('id');
+                var img     = cities[city_id]['image'];
+                var title   = cities[city_id]['title'];
+                var content = cities[city_id]['content'];
+                url     = cities[city_id]['url'];
+
+                city_image.css("background-image", 'url(' + img + ')');
+                city_title.text(cities[city_id]['title']);
+                city_content.text(cities[city_id]['content']);
+                city_link.attr("href", url);
+            } else {
+                city_id = $(this).parent().attr('id');
+                var img     = cities[city_id]['image'];
+                var title   = cities[city_id]['title'];
+                var content = cities[city_id]['content'];
+                url     = cities[city_id]['url'];
+
+                city_image.css("background-image", 'url(' + img + ')');
+                city_title.text(cities[city_id]['title']);
+                city_content.text(cities[city_id]['content']);
+                city_link.attr("href", url);
+            }
+            $(this).css({"fill" :red, 'cursor' : 'pointer'});
+        },function(){
+             $(this).css("fill", blue);
+        });
+
+        city_region.on("click", function(){
+            window.location.href = url;
+        });
+        text_paths.on("click", function(){
+            window.location.href = url;
+        });
+
+        $('#test').hover(function() {
+            console.log("SOmething");
+        }, function() {
+            console.log("SOmething else");
+        });
+
+    });
+</script>
index 0162053..40b197f 100644 (file)
@@ -1,4 +1,31 @@
+#header-separator {
+    height: auto;
+    background-color: $slate-blue;
+    color: $white;
+    width: 100%;
+    text-align: center;
+    padding: 5px 0 20px;
+    > * {
+        max-width: 1024px;
+        margin: 0 auto;
+        float: none;
+    }
+    h1 {
+        color: $white;
+        font-weight: bold;
+        text-transform: uppercase;
+        letter-spacing: 1px;
+        line-height: 1.8;
+    }
+    p {
+        color: $gold;
+        font-size: 18px;
+        line-height: 1.2;
+    }
+}
 header {
+    list-style: none;
+    max-height: 600px;
     height: auto;
     & #logo {
         img {
@@ -18,25 +45,25 @@ header {
         }
         a {
             &.magnifying-glass {
-                font-size: 10em; /* This controls the size. */ 
-                display: inline-block; 
-                width: rem-calc(10); 
+                font-size: 10em; /* This controls the size. */
+                display: inline-block;
+                width: rem-calc(10);
                 height: rem-calc(10);
-                border: rem-calc(2) solid $d-blue; 
-                position: relative; 
+                border: rem-calc(2) solid $d-blue;
+                position: relative;
                 border-radius: 0.35em;
                 margin: 0 0 0 -25px;
                 &:before {
-                    content: ""; 
-                    display: inline-block; 
-                    position: absolute; 
-                    right: rem-calc(-7); 
-                    bottom: rem-calc(-4); 
-                    border-width: 0; 
-                    background: $d-blue; 
-                    width: rem-calc(8); 
-                    height: rem-calc(2); 
-                    -webkit-transform: rotate(45deg); 
+                    content: "";
+                    display: inline-block;
+                    position: absolute;
+                    right: rem-calc(-7);
+                    bottom: rem-calc(-4);
+                    border-width: 0;
+                    background: $d-blue;
+                    width: rem-calc(8);
+                    height: rem-calc(2);
+                    -webkit-transform: rotate(45deg);
                     -moz-transform: rotate(45deg);
                     -ms-transform: rotate(45deg);
                     transform: rotate(45deg);
index 1e9f3f9..da4908c 100644 (file)
@@ -120,6 +120,14 @@ $green       : #008752;
 $red         : #d2222a;
 $d-blue      : #131c5f;
 $l-blue      : #0093d1;
+$orange      : #f27225;
+$gold        : #f5ad1a;
+$tan         : #dfccae;
+$dark-blue   : #36555a;
+$slate-blue  : #486b71;
+$bright-blue : #00aeef;
+$light-blue  : #a2c7e3;
+$pale-blue   : #e4edf5;
 
 // We use these as default colors throughout
 $primary-color: #008CBA;
@@ -216,11 +224,11 @@ $header-bottom-margin: .5rem;
 $header-text-rendering: optimizeLegibility;
 
 // We use these to control header font sizes
-$h1-font-size: rem-calc(28);
-$h2-font-size: rem-calc(18);
-$h3-font-size: rem-calc(17);
-$h4-font-size: rem-calc(16);
-$h5-font-size: rem-calc(16);
+$h1-font-size: rem-calc(36);
+$h2-font-size: rem-calc(36);
+$h3-font-size: rem-calc(30);
+$h4-font-size: rem-calc(24);
+$h5-font-size: rem-calc(18);
 // $h6-font-size: 1rem;
 
 // We use these to control header size reduction on small screens
@@ -873,7 +881,7 @@ $small-font-color: scale-color($header-font-color, $lightness: 35%);
 // $tabbar-menu-icon-color: $white;
 // $tabbar-menu-icon-hover: scale-color($tabbar-menu-icon-color, $lightness: -30%);
 
- $tabbar-menu-icon-text-indent: rem-calc(55);
+/* $tabbar-menu-icon-text-indent: rem-calc(55);*/
 // $tabbar-menu-icon-width: $tabbar-icon-width;
 // $tabbar-menu-icon-height: $tabbar-height;
 // $tabbar-menu-icon-padding: 0;
@@ -935,7 +943,7 @@ $small-font-color: scale-color($header-font-color, $lightness: 35%);
 // Hide controls on small
 // $orbit-nav-hide-for-small: true;
 // $orbit-bullet-hide-for-small: true;
-// $orbit-timer-hide-for-small: true; 
+// $orbit-timer-hide-for-small: true;
 
 // 20. Pagination
 // - - - - - - - - - - - - - - - - - - - - - - - - -
@@ -1273,7 +1281,7 @@ $small-font-color: scale-color($header-font-color, $lightness: 35%);
 // $switch-paddle-bg: $white;
 // $switch-paddle-transition-speed: .15s;
 // $switch-paddle-transition-ease: ease-out;
-// $switch-active-color: $primary-color; 
+// $switch-active-color: $primary-color;
 
 // 30. Tables
 // - - - - - - - - - - - - - - - - - - - - - - - - -
@@ -1393,7 +1401,7 @@ $small-font-color: scale-color($header-font-color, $lightness: 35%);
 // $topbar-bg: $topbar-bg-color;
 
 // Height and margin
- $topbar-height: rem-calc(61);
+/* $topbar-height: rem-calc(61);*/
 // $topbar-margin-bottom: 0;
 
 // Controlling the styles for the title in the top bar
@@ -1406,7 +1414,7 @@ $small-font-color: scale-color($header-font-color, $lightness: 35%);
 // $topbar-link-color-active: $white;
 // $topbar-link-color-active-hover: $white;
 // $topbar-link-weight: $font-weight-normal;
- $topbar-link-font-size: rem-calc(20);
+/* $topbar-link-font-size: rem-calc(20);*/
 // $topbar-link-hover-lightness: -10%; // Darken by 10%
 // $topbar-link-bg: $topbar-bg;
 // $topbar-link-bg-hover: $d-blue;
@@ -1417,7 +1425,7 @@ $small-font-color: scale-color($header-font-color, $lightness: 35%);
 // $topbar-link-text-transform: none;
 // $topbar-link-padding: ($topbar-height / 3);
 // $topbar-back-link-size: rem-calc(18);
- $topbar-link-dropdown-padding: rem-calc(16);
+/* $topbar-link-dropdown-padding: rem-calc(16);*/
 // $topbar-button-font-size: 0.75rem;
 // $topbar-button-top: 7px;
 
@@ -1464,7 +1472,7 @@ $small-font-color: scale-color($header-font-color, $lightness: 35%);
 // Sticky Class
 // $topbar-sticky-class: ".sticky";
  $topbar-arrows: false; //Set false to remove the triangle icon from the menu item
-// $topbar-dropdown-arrows: true; //Set false to remove the \00bb >> text from dropdown subnavigation li// 
+// $topbar-dropdown-arrows: true; //Set false to remove the \00bb >> text from dropdown subnavigation li//
 
 // 36. Visibility Classes
 // - - - - - - - - - - - - - - - - - - - - - - - - -
index 8ef1e5d..f9ebd06 100644 (file)
         text-align: right;
     }
 }
-.top-bar-section {
+#top-bar-wrapper {
+    position: absolute;
+    top: 0;
+    width: 100%;
+}
+#top-bar-logo {
+    position: absolute;
+    left: -10px;
+    top: 20px;
+    z-index: 9;
+}
+.top-bar {
     background: transparent;
-    float: none;
-    margin-left: auto;
-    margin-right: auto;
-    display: inline-block;
-    height: auto;
-    line-height: 1;
-    ul{
-        li {
-            
-            a {
-                
-            }
-            &:not(.has-form):not(.active) {
-                & > a:not(.button) {
-                    background: transparent;
+    width: 1024px;
+    margin: 0 auto;
+    padding-top: 100px;
+    .top-bar-section {
+        background: transparent;
+        border-radius: 4px;
+        float: right;
+        margin-left: auto;
+        margin-right: auto;
+        display: inline-block;
+        height: auto;
+        line-height: 1;
+        &:before {
+            background-image: url("../wp-content/themes/keweenaw2017/assets/keweenaw-logo.png");
+        }
+        > ul {
+            > li:not(.has-form) {
+                background-color: $tan;
+                > a:not(.button) {
+                    color: $slate-blue;
+                    font-size: 22px;
+                    font-weight: bold;
+                    padding: 6px 20px;
                 }
             }
-            ul.dropdown {
-                li {
-                    a {
-                        border-top-left-radius: 0;
-                        border-top-right-radius: 0;
-                        text-align: left;
-                    }
-                    &:not(.has-form):not(.active) {
-                        & > a:not(.button) {
-                            font-size: rem-calc(20);
-                            padding: 10px 14px;
-                            
-                        }
-                    }
-                    &.active:not(.has-form) {
-                        & > a:not(.button) {
-                            padding: 10px 14px;
-                            
-                        }
+        }
+        ul{
+            li {
+
+                a {
+
+                }
+                &:not(.has-form):not(.active) {
+                    & > a:not(.button) {
+                        background: transparent;
                     }
                 }
-            }
-            &.drop-left {
                 ul.dropdown {
-                    right: -1%;
-                    left: auto;
                     li {
                         a {
-                            text-align: left;       
+                            border-top-left-radius: 0;
+                            border-top-right-radius: 0;
+                            text-align: left;
+                        }
+                        &:not(.has-form):not(.active) {
+                            & > a:not(.button) {
+                                font-size: rem-calc(20);
+                                padding: 10px 14px;
+
+                            }
+                        }
+                        &.active:not(.has-form) {
+                            & > a:not(.button) {
+                                padding: 10px 14px;
+
+                            }
+                        }
+                    }
+                }
+                &.drop-left {
+                    ul.dropdown {
+                        right: -1%;
+                        left: auto;
+                        li {
+                            a {
+                                text-align: left;
+                            }
                         }
                     }
                 }
+    //            &.drop-right {
+    //                ul.dropdown {
+    //                    padding-left: 250px;
+    //                    padding-right: 21px;
+    //                    right: -1%;
+    //                    left: auto;
+    //                    top: 74px;
+    //                    background: $white;
+    //                    border-bottom-left-radius: 10px;
+    //                    border-bottom-right-radius: 10px;
+    //                    min-width: 500px;
+    //                    box-shadow: 0 8px 10px -5px rgba(0, 0, 0, 0.5);
+    //                    -ms-box-shadow: 0 8px 10px -5px rgba(0, 0, 0, 0.5);
+    //                    -moz-box-shadow: 0 8px 10px -5px rgba(0, 0, 0, 0.5);
+    //                    -webkit-box-shadow: 0 8px 10px -5px rgba(0, 0, 0, 0.5);
+    //                    li {
+    //                        white-space: nowrap;
+    //                        background: $white;
+    //                        text-align: right;
+    //                        border-bottom: 1px solid #e7e7e8;
+    //                        padding: 5px 0;
+    //                        &.nav-img-container {
+    //                            img {
+    //                                position: absolute;
+    //                                left: 20px;
+    //                                top: 23px;
+    //                                border: 6px solid #fdefd4;
+    //                            }
+    //                            border: none;
+    //                        }
+    //                        a {
+    //                            padding-left: 0;
+    //                            text-align: left;
+    //                            font-size: 18px;
+    //                            &:hover {
+    //                                color: $d-blue;
+    //                                text-shadow: 0 0 1px $green;
+    //                                text-shadow: 1 0 1px $green;
+    //                                text-shadow: 0 1 1px $green;
+    //                                text-shadow: -1 0 1px $green;
+    //                                text-shadow: 0 -1 1px $green;
+    //                            }
+    //                        }
+    //                    }
+    //                }
+    //            }
             }
-//            &.drop-right {
-//                ul.dropdown {
-//                    padding-left: 250px;
-//                    padding-right: 21px;
-//                    right: -1%;
-//                    left: auto;
-//                    top: 74px;
-//                    background: $white;
-//                    border-bottom-left-radius: 10px;
-//                    border-bottom-right-radius: 10px;
-//                    min-width: 500px;
-//                    box-shadow: 0 8px 10px -5px rgba(0, 0, 0, 0.5);
-//                    -ms-box-shadow: 0 8px 10px -5px rgba(0, 0, 0, 0.5);
-//                    -moz-box-shadow: 0 8px 10px -5px rgba(0, 0, 0, 0.5);
-//                    -webkit-box-shadow: 0 8px 10px -5px rgba(0, 0, 0, 0.5);
-//                    li {
-//                        white-space: nowrap;
-//                        background: $white;
-//                        text-align: right;
-//                        border-bottom: 1px solid #e7e7e8;
-//                        padding: 5px 0;
-//                        &.nav-img-container {
-//                            img {
-//                                position: absolute;
-//                                left: 20px;
-//                                top: 23px;
-//                                border: 6px solid #fdefd4;
-//                            }
-//                            border: none;
-//                        }
-//                        a {
-//                            padding-left: 0;
-//                            text-align: left;
-//                            font-size: 18px;
-//                            &:hover {
-//                                color: $d-blue;
-//                                text-shadow: 0 0 1px $green;
-//                                text-shadow: 1 0 1px $green;
-//                                text-shadow: 0 1 1px $green;
-//                                text-shadow: -1 0 1px $green;
-//                                text-shadow: 0 -1 1px $green;
-//                            }
-//                        }
-//                    }
-//                }
-//            }
         }
     }
 }
index 84d36de..921be8b 100644 (file)
@@ -1,8 +1,22 @@
+                    <div id="header-separator">
+                        <h1>MICHIGAN'S COPPER COUNTY</h1>
+                        <p>
+                            The Keweenaw is Michigan's Copper Country! Here is where the largest fresh waters on earth create a peninsula
+                            called the Keweenaw. Where adventure falls from the sky, grows from the ground and springs from Lake Superior
+                        </p>
+                    </div>
                     <main class="page-front">
-                        <div class="row">
-                            <?php get_template_part('parts/slide-show');?>
-                        </div>
+
                         <div id="content-wrapper">
+
+                            <div class="map-wrapper">
+                                <div class="row map-section">
+                                    <?php get_template_part('parts/map-section');?>
+                                </div>
+                            </div>
+                            <div id="event-feed-row" class="row">
+                                <?php get_template_part('parts/event-feed'); ?>
+                            </div>
                             <div class="row" data-equalizer data-options="equalize_on_stack: false">
                                 <?php
                                 get_template_part('parts/glm-blocks');
index 38be909..0cd1229 100644 (file)
@@ -1,19 +1,7 @@
 <header class="main">
-    <div class="row  medium-uncollapse large-collapse">
-        <div id="logo-tag" class="small-12 text-center medium-12 columns">
-            <?php get_custom_logo($blog_id = 0 );?>
-            <?php the_custom_logo($blog_id = 0 );?>
-            <?php
-            if ( is_front_page() && is_home() ) : ?>
-                <h1 class="site-title"><a href="<?php echo esc_url( home_url( '/' ) ); ?>" rel="home"><?php bloginfo( 'name' ); ?></a></h1>
-            <?php else : ?>
-                <h1 class="site-title"><a href="<?php echo esc_url( home_url( '/' ) ); ?>" rel="home"><?php bloginfo( 'name' ); ?></a></h1>
-            <?php endif;
-            $description = get_bloginfo( 'description', 'display' );
-            if ( $description || is_customize_preview() ) : ?>
-                <h3 class="site-description"><?php echo $description; ?></h3>
-            <?php endif;
-            ?>
-        </div>
+    <div id="header-media">
+        <?php
+        echo glm_get_header();
+        ?>
     </div>
 </header>
\ No newline at end of file
index 5627da8..1185023 100644 (file)
@@ -1,10 +1,13 @@
-                    <nav class="top-bar text-center show-for-large-up opensearchserver.ignore" data-topbar role="navigation">
-                        <section class="top-bar-section">
-                            <?php glm_theme_top_bar(); ?>
-                        </section>
-                    </nav>
-                    <nav class="tab-bar show-for-medium-down">
-                        <section class="left-small">
-                            <a class="left-off-canvas-toggle menu-icon" href="#"><span>Menu</span></a>
-                        </section>
-                    </nav>
\ No newline at end of file
+                    <div id="top-bar-wrapper">
+                        <nav class="top-bar text-center show-for-large-up opensearchserver.ignore" data-topbar role="navigation">
+                            <img id="top-bar-logo" src="<?php echo get_template_directory_uri();?>/assets/keweenaw-logo.png" class="left">
+                            <section class="top-bar-section right">
+                                <?php glm_theme_top_bar(); ?>
+                            </section>
+                        </nav>
+                        <nav class="tab-bar show-for-medium-down">
+                            <section class="left-small">
+                                <a class="left-off-canvas-toggle menu-icon" href="#"><span>Menu</span></a>
+                            </section>
+                        </nav>
+                    </div>