From a8c9732bd2679826e25f74e8bfe19c55c25f4d94 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Fr=C3=A9mont?= Date: Mon, 30 Sep 2024 17:02:10 +0200 Subject: [PATCH 1/2] Init talks --- app/DataFixtures/AppFixtures.php | 2 + app/Entity/Talk.php | 94 +++++++++ app/Factory/TalkFactory.php | 54 ++++++ app/Form/TalkType.php | 44 +++++ app/Grid/SpeakerGrid.php | 14 ++ app/Grid/TalkGrid.php | 84 ++++++++ app/Menu/AdminMenuBuilder.php | 27 +-- app/Repository/TalkRepository.php | 29 +++ app/Story/DefaultTalksStory.php | 180 ++++++++++++++++++ .../assets/scripts/bootstrap.js | 7 + .../config/app/grid/templates.php | 1 + src/BootstrapAdminUi/public/app.js | 2 +- .../shared/grid/filter/entity.html.twig | 3 + .../translations/messages.en.yaml | 1 + tests/Functional/TalkTest.php | 62 ++++++ translations/messages.en.yaml | 8 +- 16 files changed, 586 insertions(+), 26 deletions(-) create mode 100644 app/Entity/Talk.php create mode 100644 app/Factory/TalkFactory.php create mode 100644 app/Form/TalkType.php create mode 100644 app/Grid/TalkGrid.php create mode 100644 app/Repository/TalkRepository.php create mode 100644 app/Story/DefaultTalksStory.php create mode 100644 src/BootstrapAdminUi/templates/shared/grid/filter/entity.html.twig create mode 100644 tests/Functional/TalkTest.php diff --git a/app/DataFixtures/AppFixtures.php b/app/DataFixtures/AppFixtures.php index 4baee6dd..f0c6da6a 100644 --- a/app/DataFixtures/AppFixtures.php +++ b/app/DataFixtures/AppFixtures.php @@ -15,6 +15,7 @@ use App\Story\DefaultBooksStory; use App\Story\DefaultSpeakersStory; +use App\Story\DefaultTalksStory; use Doctrine\Bundle\FixturesBundle\Fixture; use Doctrine\Persistence\ObjectManager; @@ -24,5 +25,6 @@ public function load(ObjectManager $manager): void { DefaultBooksStory::load(); DefaultSpeakersStory::load(); + DefaultTalksStory::load(); } } diff --git a/app/Entity/Talk.php b/app/Entity/Talk.php new file mode 100644 index 00000000..566106f0 --- /dev/null +++ b/app/Entity/Talk.php @@ -0,0 +1,94 @@ +id; + } + + public function getTitle(): ?string + { + return $this->title; + } + + public function setTitle(string $title): void + { + $this->title = $title; + } + + public function getDescription(): ?string + { + return $this->description; + } + + public function setDescription(?string $description): void + { + $this->description = $description; + } + + public function getSpeaker(): ?Speaker + { + return $this->speaker; + } + + public function setSpeaker(?Speaker $speaker): void + { + $this->speaker = $speaker; + } +} diff --git a/app/Factory/TalkFactory.php b/app/Factory/TalkFactory.php new file mode 100644 index 00000000..122b63cb --- /dev/null +++ b/app/Factory/TalkFactory.php @@ -0,0 +1,54 @@ + + */ +final class TalkFactory extends PersistentProxyObjectFactory +{ + public static function class(): string + { + return Talk::class; + } + + public function withTitle(string $title): self + { + return $this->with(['title' => $title]); + } + + public function withDescription(string $description): self + { + return $this->with(['description' => $description]); + } + + /** @param Speaker|Proxy $speaker */ + public function withSpeaker(Proxy|Speaker $speaker): self + { + return $this->with(['speaker' => $speaker]); + } + + protected function defaults(): array|callable + { + return [ + 'speaker' => SpeakerFactory::new(), + 'title' => self::faker()->text(255), + ]; + } +} diff --git a/app/Form/TalkType.php b/app/Form/TalkType.php new file mode 100644 index 00000000..c9438eb2 --- /dev/null +++ b/app/Form/TalkType.php @@ -0,0 +1,44 @@ +add('title') + ->add('speaker', EntityType::class, [ + 'placeholder' => 'Select a speaker', + 'class' => Speaker::class, + 'choice_label' => 'fullName', + ]) + ->add('description') + ; + } + + public function configureOptions(OptionsResolver $resolver): void + { + $resolver->setDefaults([ + 'data_class' => Talk::class, + ]); + } +} diff --git a/app/Grid/SpeakerGrid.php b/app/Grid/SpeakerGrid.php index e95ac793..16243d6e 100644 --- a/app/Grid/SpeakerGrid.php +++ b/app/Grid/SpeakerGrid.php @@ -14,6 +14,7 @@ namespace App\Grid; use App\Entity\Speaker; +use Sylius\Bundle\GridBundle\Builder\Action\Action; use Sylius\Bundle\GridBundle\Builder\Action\CreateAction; use Sylius\Bundle\GridBundle\Builder\Action\DeleteAction; use Sylius\Bundle\GridBundle\Builder\Action\UpdateAction; @@ -68,6 +69,19 @@ public function buildGrid(GridBuilderInterface $gridBuilder): void ) ->addActionGroup( ItemActionGroup::create( + Action::create('show_talks', 'show') + ->setIcon('list_letters') + ->setLabel('app.ui.show_talks') + ->setOptions([ + 'link' => [ + 'route' => 'app_admin_talk_index', + 'parameters' => [ + 'criteria' => [ + 'speaker' => 'resource.id', + ], + ], + ], + ]), UpdateAction::create(), DeleteAction::create(), ), diff --git a/app/Grid/TalkGrid.php b/app/Grid/TalkGrid.php new file mode 100644 index 00000000..da5fd1c6 --- /dev/null +++ b/app/Grid/TalkGrid.php @@ -0,0 +1,84 @@ +addFilter( + EntityFilter::create('speaker', Speaker::class) + ->setLabel('app.ui.speaker') + ->addFormOption('choice_label', 'fullName'), + ) + ->addField( + TwigField::create('avatar', 'speaker/grid/field/image.html.twig') + ->setPath('speaker'), + ) + ->addField( + StringField::create('title') + ->setLabel('Title') + ->setSortable(true), + ) + ->addField( + StringField::create('speaker') + ->setLabel('app.ui.speaker') + ->setPath('speaker.fullName') + ->setSortable(true, 'speaker.firstName'), + ) + ->addActionGroup( + MainActionGroup::create( + CreateAction::create(), + ), + ) + ->addActionGroup( + ItemActionGroup::create( + UpdateAction::create(), + DeleteAction::create(), + ), + ) + ->addActionGroup( + BulkActionGroup::create( + DeleteAction::create(), + ), + ) + ; + } + + public function getResourceClass(): string + { + return Talk::class; + } +} diff --git a/app/Menu/AdminMenuBuilder.php b/app/Menu/AdminMenuBuilder.php index 12d4a614..21579302 100644 --- a/app/Menu/AdminMenuBuilder.php +++ b/app/Menu/AdminMenuBuilder.php @@ -52,35 +52,22 @@ private function addLibrarySubMenu(ItemInterface $menu): void ->setLabel('app.ui.books') ->setLabelAttribute('icon', 'book') ; - - $library->addChild('authors') - ->setLabel('app.ui.authors') - ->setLabelAttribute('icon', 'folder') - ; } private function addConfigurationSubMenu(ItemInterface $menu): void { - $library = $menu + $configuration = $menu ->addChild('configuration') ->setLabel('app.ui.configuration') ->setLabelAttribute('icon', 'dashboard') ; - $library->addChild('channels') - ->setLabel('app.ui.channels') - ->setLabelAttribute('icon', 'shuffle'); - - $library->addChild('countries') - ->setLabel('app.ui.countries') - ->setLabelAttribute('icon', 'flag'); - - $library->addChild('zones') - ->setLabel('app.ui.zones') - ->setLabelAttribute('icon', 'globe'); + $configuration->addChild('admin_talks', ['route' => 'app_admin_talk_index']) + ->setLabel('app.ui.talks') + ; - $library->addChild('administrators') - ->setLabel('app.ui.admin_users') - ->setLabelAttribute('icon', 'lock'); + $configuration->addChild('admin_speakers', ['route' => 'app_admin_speaker_index']) + ->setLabel('app.ui.speakers') + ; } } diff --git a/app/Repository/TalkRepository.php b/app/Repository/TalkRepository.php new file mode 100644 index 00000000..db190736 --- /dev/null +++ b/app/Repository/TalkRepository.php @@ -0,0 +1,29 @@ + + */ +class TalkRepository extends ServiceEntityRepository +{ + public function __construct(ManagerRegistry $registry) + { + parent::__construct($registry, Talk::class); + } +} diff --git a/app/Story/DefaultTalksStory.php b/app/Story/DefaultTalksStory.php new file mode 100644 index 00000000..078b7f11 --- /dev/null +++ b/app/Story/DefaultTalksStory.php @@ -0,0 +1,180 @@ +withTitle('Create World-Class Sylius Plugins') + ->withSpeaker(SpeakerFactory::findOrCreate(['firstName' => 'Joachim', 'lastName' => 'Løvgaard'])) + ->withDescription( + <<<'TEXT' + Joachim will share his extensive experience in creating Sylius plugins and bundles. He will discuss the best practices for plugin development, focusing on aspects such as code quality, dependency management, and optimizing the developer experience to build effective and maintainable plugins. + TEXT + ) + ->create() + ; + + TalkFactory::new() + ->withTitle('Sylius Beyond E-commerce: Building the Perfect WordPress Competitor') + ->withSpeaker(SpeakerFactory::findOrCreate(['firstName' => 'Jacques', 'lastName' => 'Bodin-Hullin'])) + ->withDescription( + <<<'TEXT' + Jacques will introduce the NoCommerce plugin, which transforms Sylius into a robust framework for building a variety of websites beyond e-commerce. He will explain how this plugin can make Sylius a versatile alternative to WordPress for non-commercial sites, detailing the integration process and unique benefits. + TEXT + ) + ->create() + ; + + TalkFactory::new() + ->withTitle('Sylius Payment Overview and Future') + ->withSpeaker(SpeakerFactory::findOrCreate(['firstName' => 'Francis', 'lastName' => 'Hilaire'])) + ->withDescription( + <<<'TEXT' + Francis will provide a comprehensive overview of the Sylius payment system, focusing on its history and upcoming developments in Sylius 2.0. He will discuss the challenges faced in building the system and how new features will improve payment handling and integration. + TEXT + ) + ->create() + ; + + TalkFactory::new() + ->withTitle('Adapting Price Calculation to B2B Needs') + ->withSpeaker(SpeakerFactory::findOrCreate(['firstName' => 'Luca', 'lastName' => 'Gallinari'])) + //->withSpeaker(SpeakerFactory::findOrCreate(['firstName' => 'Manuele', 'lastName' => 'Menozzi'])) + ->withDescription( + <<<'TEXT' + Luca and Manuele will explain how to customize the Sylius Price Calculator for complex B2B pricing models. The talk will cover practical examples of how to implement these changes and ensure accurate pricing through automated testing. + TEXT + ) + ->create() + ; + + TalkFactory::new() + ->withTitle('Beyond One-Size-Fits-All: Unlocking User Value with Profilation and Adaptable Architecture') + ->withSpeaker(SpeakerFactory::findOrCreate(['firstName' => 'Viorel', 'lastName' => 'Tudor'])) + ->withDescription( + <<<'TEXT' + Viorel will discuss how Freshful leverages Sylius to create personalized, consumer-centric solutions. The presentation will cover how detailed user profiling and a modular architecture allow for tailored e-grocery experiences that enhance customer satisfaction and engagement. + TEXT + ) + ->create() + ; + + TalkFactory::new() + ->withTitle('Handling Background Processing in Sylius') + ->withSpeaker(SpeakerFactory::findOrCreate(['firstName' => 'Łukasz', 'lastName' => 'Chruściel'])) + //->withSpeaker(SpeakerFactory::findOrCreate(['firstName' => 'Mateusz', 'lastName' => 'Zalewski'])) + ->withDescription( + <<<'TEXT' + Łukasz and Mateusz will explore different methods for managing background tasks in Sylius applications. They will cover basic techniques using Symfony console commands, more advanced approaches with Symfony Messenger, and sophisticated strategies for high availability and fault tolerance. + TEXT + ) + ->create() + ; + + TalkFactory::new() + ->withTitle('Building a Semantic Search Experience Using PHP and Meilisearch') + ->withSpeaker(SpeakerFactory::findOrCreate(['firstName' => 'Guillaume', 'lastName' => 'Loulier'])) + ->withDescription( + <<<'TEXT' + Guillaume will demonstrate how to build a semantic search experience using PHP and Meilisearch. He will cover how to leverage recent advancements in machine learning and search engine technology to improve search accuracy and user experience in your applications. + TEXT + ) + ->create() + ; + + TalkFactory::new() + ->withTitle('Boost Your Sylius Frontend with Hotwire, aka Symfony UX') + ->withSpeaker(SpeakerFactory::findOrCreate(['firstName' => 'Loïc', 'lastName' => 'Caillieux'])) + ->withDescription( + <<<'TEXT' + Loïc will showcase how to enhance the frontend of your Sylius application using Hotwire and Symfony UX. He will provide live examples of how these tools can improve the user interface and experience, focusing on making the frontend more dynamic and responsive. + TEXT + ) + ->create() + ; + + TalkFactory::new() + ->withTitle('Admin Panel (R)evolution for Your Symfony Projects') + ->withSpeaker(SpeakerFactory::findOrCreate(['firstName' => 'Loïc', 'lastName' => 'Frémont'])) + ->withDescription( + <<<'TEXT' + Loïc will cover the evolution of the Sylius admin panel, from its initial use of Bootstrap to the current integration with tools like the Sylius Grid component and Twig Hooks. He will discuss how these changes improve the admin panel's functionality and how they can be applied to any Symfony project. + TEXT + ) + ->create() + ; + + TalkFactory::new() + ->withTitle('Prepping for Black Friday: Improve, Scale, and Stress Test Your Sylius App') + ->withSpeaker(SpeakerFactory::findOrCreate(['firstName' => 'Thomas', 'lastName' => 'di Luccio'])) + ->withDescription( + <<<'TEXT' + Thomas will provide strategies for preparing your Sylius application for peak traffic during events like Black Friday. He will explain how to use tools like Blackfire and Platform.sh for performance optimization and load testing to ensure your app remains stable under high demand. + TEXT + ) + ->create() + ; + + TalkFactory::new() + ->withTitle('Crafting an Open Source Product Discovery Solution') + ->withSpeaker(SpeakerFactory::findOrCreate(['firstName' => 'Romain', 'lastName' => 'Ruaud'])) + ->withDescription( + <<<'TEXT' + Romain will share the story behind the inception and development of Gally, an open-source search engine solution for product discovery. You’ll learn how to build a REST/GraphQL layer on top of Elasticsearch using API Platform and Symfony. Romain will cover key technical principles, such as Elasticsearch index abstraction, automatic mapping computation, and GraphQL stitching. Additionally, you'll discover how Gally can be leveraged in a Composable Commerce approach, including various architectural use cases like Headless Sylius, Headful Sylius, and external applications, such as vendor tablets. + TEXT + ) + ->create() + ; + + TalkFactory::new() + ->withTitle('TBA') + ->withSpeaker(SpeakerFactory::findOrCreate(['firstName' => 'Kévin', 'lastName' => 'Dunglas'])) + ->withDescription( + <<<'TEXT' + Details of this presentation will be announced soon. + TEXT + ) + ->create() + ; + + TalkFactory::new() + ->withTitle('Simplifying Sylius Containerization with DDEV') + ->withSpeaker(SpeakerFactory::findOrCreate(['firstName' => 'Stephan', 'lastName' => 'Hochdörfer'])) + ->withDescription( + <<<'TEXT' + Stephan will demonstrate how DDEV simplifies the use of Docker and Docker Compose for Sylius applications. The talk will include a step-by-step guide on installing and integrating DDEV into a Sylius project and how to extend its capabilities for better development workflows. + TEXT + ) + ->create() + ; + + TalkFactory::new() + ->withTitle('Developer Docs: The write way to streamline project') + ->withSpeaker(SpeakerFactory::findOrCreate(['firstName' => 'Ksenia', 'lastName' => 'Zvereva'])) + ->withDescription( + <<<'TEXT' + Ksenia will share her approach to improving developer documentation. She will offer tips on how clear and effective documentation can streamline project development, enhance collaboration, and improve overall project outcomes. + TEXT + ) + ->create() + ; + } +} diff --git a/src/BootstrapAdminUi/assets/scripts/bootstrap.js b/src/BootstrapAdminUi/assets/scripts/bootstrap.js index b9f691f9..91c34245 100644 --- a/src/BootstrapAdminUi/assets/scripts/bootstrap.js +++ b/src/BootstrapAdminUi/assets/scripts/bootstrap.js @@ -15,4 +15,11 @@ import * as bootstrap from 'bootstrap'; }); })(); +// Initialize tooltips +(() => { + document.querySelectorAll('[data-bs-toggle="tooltip"]').forEach((tooltipTriggerEl) => { + let tooltip = new bootstrap.Tooltip(tooltipTriggerEl); + }); +})(); + window.bootstrap = bootstrap; diff --git a/src/BootstrapAdminUi/config/app/grid/templates.php b/src/BootstrapAdminUi/config/app/grid/templates.php index fdd2c9fc..001c3c56 100644 --- a/src/BootstrapAdminUi/config/app/grid/templates.php +++ b/src/BootstrapAdminUi/config/app/grid/templates.php @@ -26,6 +26,7 @@ 'delete' => '@SyliusBootstrapAdminUi/shared/grid/bulk_action/delete.html.twig', ], 'filter' => [ + 'entity' => '@SyliusBootstrapAdminUi/shared/grid/filter/entity.html.twig', 'string' => '@SyliusBootstrapAdminUi/shared/grid/filter/string.html.twig', ], ], diff --git a/src/BootstrapAdminUi/public/app.js b/src/BootstrapAdminUi/public/app.js index d76bb08d..8f462377 100644 --- a/src/BootstrapAdminUi/public/app.js +++ b/src/BootstrapAdminUi/public/app.js @@ -1,2 +1,2 @@ /*! For license information please see app.js.LICENSE.txt */ -(()=>{var e={956:()=>{function e(e){var t=e.getAttribute("data-bulk-delete"),n=Array.from(document.querySelectorAll('input[data-check-all-group="'.concat(t,'"]')));e.addEventListener("submit",(function(t){t.preventDefault(),n.forEach((function(t){if(t.checked){var n=document.createElement("input");n.setAttribute("type","hidden"),n.setAttribute("name","ids[]"),n.setAttribute("value",t.value),e.appendChild(n)}})),t.target.submit()}))}document.querySelectorAll("[data-bulk-delete]").forEach(e)},802:()=>{function e(e){var t=e.getAttribute("data-check-all"),n=Array.from(document.querySelectorAll('[data-check-all-group="'.concat(t,'"]'))),i=Array.from(document.querySelectorAll('[data-check-all-action="'.concat(t,'"]')));e.addEventListener("change",(function(){var t=n.some((function(e){return e.checked}));e.checked=!t,n.forEach((function(e){return e.checked=!t})),r()})),n.forEach((function(t){t.addEventListener("change",(function(){switch(n.filter((function(e){return e.checked})).length){case n.length:e.indeterminate=!1,e.checked=!0;break;case 0:e.indeterminate=!1,e.checked=!1;break;default:e.indeterminate=!0,e.checked=!1}r()}))}));var r=function(){var e=n.some((function(e){return e.checked}));i.forEach((function(t){t.disabled=!e}))}}document.querySelectorAll("[data-check-all]").forEach(e)},692:function(e,t){var n;!function(t,n){"use strict";"object"==typeof e.exports?e.exports=t.document?n(t,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return n(e)}:n(t)}("undefined"!=typeof window?window:this,(function(i,r){"use strict";var o=[],s=Object.getPrototypeOf,a=o.slice,l=o.flat?function(e){return o.flat.call(e)}:function(e){return o.concat.apply([],e)},c=o.push,u=o.indexOf,f={},d=f.toString,h=f.hasOwnProperty,p=h.toString,g=p.call(Object),m={},v=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},y=function(e){return null!=e&&e===e.window},b=i.document,_={type:!0,src:!0,nonce:!0,noModule:!0};function w(e,t,n){var i,r,o=(n=n||b).createElement("script");if(o.text=e,t)for(i in _)(r=t[i]||t.getAttribute&&t.getAttribute(i))&&o.setAttribute(i,r);n.head.appendChild(o).parentNode.removeChild(o)}function x(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?f[d.call(e)]||"object":typeof e}var T="3.7.1",E=/HTML$/i,A=function(e,t){return new A.fn.init(e,t)};function C(e){var t=!!e&&"length"in e&&e.length,n=x(e);return!v(e)&&!y(e)&&("array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e)}function k(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}A.fn=A.prototype={jquery:T,constructor:A,length:0,toArray:function(){return a.call(this)},get:function(e){return null==e?a.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=A.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return A.each(this,e)},map:function(e){return this.pushStack(A.map(this,(function(t,n){return e.call(t,n,t)})))},slice:function(){return this.pushStack(a.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(A.grep(this,(function(e,t){return(t+1)%2})))},odd:function(){return this.pushStack(A.grep(this,(function(e,t){return t%2})))},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(n>=0&&n+~]|"+j+")"+j+"*"),R=new RegExp(j+"|>"),W=new RegExp(M),B=new RegExp("^"+N+"$"),z={ID:new RegExp("^#("+N+")"),CLASS:new RegExp("^\\.("+N+")"),TAG:new RegExp("^("+N+"|[*])"),ATTR:new RegExp("^"+P),PSEUDO:new RegExp("^"+M),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+j+"*(even|odd|(([+-]|)(\\d*)n|)"+j+"*(?:([+-]|)"+j+"*(\\d+)|))"+j+"*\\)|)","i"),bool:new RegExp("^(?:"+C+")$","i"),needsContext:new RegExp("^"+j+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+j+"*((?:-\\d)?\\d*)"+j+"*\\)|)(?=[^-]|$)","i")},V=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,U=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,Y=/[+~]/,K=new RegExp("\\\\[\\da-fA-F]{1,6}"+j+"?|\\\\([^\\r\\n\\f])","g"),Q=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},G=function(){le()},J=de((function(e){return!0===e.disabled&&k(e,"fieldset")}),{dir:"parentNode",next:"legend"});try{g.apply(o=a.call($.childNodes),$.childNodes),o[$.childNodes.length].nodeType}catch(e){g={apply:function(e,t){I.apply(e,a.call(t))},call:function(e){I.apply(e,a.call(arguments,1))}}}function Z(e,t,n,i){var r,o,s,a,c,u,h,p=t&&t.ownerDocument,y=t?t.nodeType:9;if(n=n||[],"string"!=typeof e||!e||1!==y&&9!==y&&11!==y)return n;if(!i&&(le(t),t=t||l,f)){if(11!==y&&(c=U.exec(e)))if(r=c[1]){if(9===y){if(!(s=t.getElementById(r)))return n;if(s.id===r)return g.call(n,s),n}else if(p&&(s=p.getElementById(r))&&Z.contains(t,s)&&s.id===r)return g.call(n,s),n}else{if(c[2])return g.apply(n,t.getElementsByTagName(e)),n;if((r=c[3])&&t.getElementsByClassName)return g.apply(n,t.getElementsByClassName(r)),n}if(!(T[e+" "]||d&&d.test(e))){if(h=e,p=t,1===y&&(R.test(e)||F.test(e))){for((p=Y.test(e)&&ae(t.parentNode)||t)==t&&m.scope||((a=t.getAttribute("id"))?a=A.escapeSelector(a):t.setAttribute("id",a=v)),o=(u=ue(e)).length;o--;)u[o]=(a?"#"+a:":scope")+" "+fe(u[o]);h=u.join(",")}try{return g.apply(n,p.querySelectorAll(h)),n}catch(t){T(e,!0)}finally{a===v&&t.removeAttribute("id")}}}return ye(e.replace(L,"$1"),t,n,i)}function ee(){var e=[];return function n(i,r){return e.push(i+" ")>t.cacheLength&&delete n[e.shift()],n[i+" "]=r}}function te(e){return e[v]=!0,e}function ne(e){var t=l.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function ie(e){return function(t){return k(t,"input")&&t.type===e}}function re(e){return function(t){return(k(t,"input")||k(t,"button"))&&t.type===e}}function oe(e){return function(t){return"form"in t?t.parentNode&&!1===t.disabled?"label"in t?"label"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&J(t)===e:t.disabled===e:"label"in t&&t.disabled===e}}function se(e){return te((function(t){return t=+t,te((function(n,i){for(var r,o=e([],n.length,t),s=o.length;s--;)n[r=o[s]]&&(n[r]=!(i[r]=n[r]))}))}))}function ae(e){return e&&void 0!==e.getElementsByTagName&&e}function le(e){var n,i=e?e.ownerDocument||e:$;return i!=l&&9===i.nodeType&&i.documentElement?(c=(l=i).documentElement,f=!A.isXMLDoc(l),p=c.matches||c.webkitMatchesSelector||c.msMatchesSelector,c.msMatchesSelector&&$!=l&&(n=l.defaultView)&&n.top!==n&&n.addEventListener("unload",G),m.getById=ne((function(e){return c.appendChild(e).id=A.expando,!l.getElementsByName||!l.getElementsByName(A.expando).length})),m.disconnectedMatch=ne((function(e){return p.call(e,"*")})),m.scope=ne((function(){return l.querySelectorAll(":scope")})),m.cssHas=ne((function(){try{return l.querySelector(":has(*,:jqfake)"),!1}catch(e){return!0}})),m.getById?(t.filter.ID=function(e){var t=e.replace(K,Q);return function(e){return e.getAttribute("id")===t}},t.find.ID=function(e,t){if(void 0!==t.getElementById&&f){var n=t.getElementById(e);return n?[n]:[]}}):(t.filter.ID=function(e){var t=e.replace(K,Q);return function(e){var n=void 0!==e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}},t.find.ID=function(e,t){if(void 0!==t.getElementById&&f){var n,i,r,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];for(r=t.getElementsByName(e),i=0;o=r[i++];)if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),t.find.TAG=function(e,t){return void 0!==t.getElementsByTagName?t.getElementsByTagName(e):t.querySelectorAll(e)},t.find.CLASS=function(e,t){if(void 0!==t.getElementsByClassName&&f)return t.getElementsByClassName(e)},d=[],ne((function(e){var t;c.appendChild(e).innerHTML="",e.querySelectorAll("[selected]").length||d.push("\\["+j+"*(?:value|"+C+")"),e.querySelectorAll("[id~="+v+"-]").length||d.push("~="),e.querySelectorAll("a#"+v+"+*").length||d.push(".#.+[+~]"),e.querySelectorAll(":checked").length||d.push(":checked"),(t=l.createElement("input")).setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),c.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&d.push(":enabled",":disabled"),(t=l.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||d.push("\\["+j+"*name"+j+"*="+j+"*(?:''|\"\")")})),m.cssHas||d.push(":has"),d=d.length&&new RegExp(d.join("|")),E=function(e,t){if(e===t)return s=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!m.sortDetached&&t.compareDocumentPosition(e)===n?e===l||e.ownerDocument==$&&Z.contains($,e)?-1:t===l||t.ownerDocument==$&&Z.contains($,t)?1:r?u.call(r,e)-u.call(r,t):0:4&n?-1:1)},l):l}for(e in Z.matches=function(e,t){return Z(e,null,null,t)},Z.matchesSelector=function(e,t){if(le(e),f&&!T[t+" "]&&(!d||!d.test(t)))try{var n=p.call(e,t);if(n||m.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){T(t,!0)}return Z(t,l,null,[e]).length>0},Z.contains=function(e,t){return(e.ownerDocument||e)!=l&&le(e),A.contains(e,t)},Z.attr=function(e,n){(e.ownerDocument||e)!=l&&le(e);var i=t.attrHandle[n.toLowerCase()],r=i&&h.call(t.attrHandle,n.toLowerCase())?i(e,n,!f):void 0;return void 0!==r?r:e.getAttribute(n)},Z.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},A.uniqueSort=function(e){var t,n=[],i=0,o=0;if(s=!m.sortStable,r=!m.sortStable&&a.call(e,0),O.call(e,E),s){for(;t=e[o++];)t===e[o]&&(i=n.push(o));for(;i--;)D.call(e,n[i],1)}return r=null,e},A.fn.uniqueSort=function(){return this.pushStack(A.uniqueSort(a.apply(this)))},t=A.expr={cacheLength:50,createPseudo:te,match:z,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(K,Q),e[3]=(e[3]||e[4]||e[5]||"").replace(K,Q),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||Z.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&Z.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return z.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&W.test(n)&&(t=ue(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(K,Q).toLowerCase();return"*"===e?function(){return!0}:function(e){return k(e,t)}},CLASS:function(e){var t=_[e+" "];return t||(t=new RegExp("(^|"+j+")"+e+"("+j+"|$)"))&&_(e,(function(e){return t.test("string"==typeof e.className&&e.className||void 0!==e.getAttribute&&e.getAttribute("class")||"")}))},ATTR:function(e,t,n){return function(i){var r=Z.attr(i,e);return null==r?"!="===t:!t||(r+="","="===t?r===n:"!="===t?r!==n:"^="===t?n&&0===r.indexOf(n):"*="===t?n&&r.indexOf(n)>-1:"$="===t?n&&r.slice(-n.length)===n:"~="===t?(" "+r.replace(H," ")+" ").indexOf(n)>-1:"|="===t&&(r===n||r.slice(0,n.length+1)===n+"-"))}},CHILD:function(e,t,n,i,r){var o="nth"!==e.slice(0,3),s="last"!==e.slice(-4),a="of-type"===t;return 1===i&&0===r?function(e){return!!e.parentNode}:function(t,n,l){var c,u,f,d,h,p=o!==s?"nextSibling":"previousSibling",g=t.parentNode,m=a&&t.nodeName.toLowerCase(),b=!l&&!a,_=!1;if(g){if(o){for(;p;){for(f=t;f=f[p];)if(a?k(f,m):1===f.nodeType)return!1;h=p="only"===e&&!h&&"nextSibling"}return!0}if(h=[s?g.firstChild:g.lastChild],s&&b){for(_=(d=(c=(u=g[v]||(g[v]={}))[e]||[])[0]===y&&c[1])&&c[2],f=d&&g.childNodes[d];f=++d&&f&&f[p]||(_=d=0)||h.pop();)if(1===f.nodeType&&++_&&f===t){u[e]=[y,d,_];break}}else if(b&&(_=d=(c=(u=t[v]||(t[v]={}))[e]||[])[0]===y&&c[1]),!1===_)for(;(f=++d&&f&&f[p]||(_=d=0)||h.pop())&&(!(a?k(f,m):1===f.nodeType)||!++_||(b&&((u=f[v]||(f[v]={}))[e]=[y,_]),f!==t)););return(_-=r)===i||_%i==0&&_/i>=0}}},PSEUDO:function(e,n){var i,r=t.pseudos[e]||t.setFilters[e.toLowerCase()]||Z.error("unsupported pseudo: "+e);return r[v]?r(n):r.length>1?(i=[e,e,"",n],t.setFilters.hasOwnProperty(e.toLowerCase())?te((function(e,t){for(var i,o=r(e,n),s=o.length;s--;)e[i=u.call(e,o[s])]=!(t[i]=o[s])})):function(e){return r(e,0,i)}):r}},pseudos:{not:te((function(e){var t=[],n=[],i=ve(e.replace(L,"$1"));return i[v]?te((function(e,t,n,r){for(var o,s=i(e,null,r,[]),a=e.length;a--;)(o=s[a])&&(e[a]=!(t[a]=o))})):function(e,r,o){return t[0]=e,i(t,null,o,n),t[0]=null,!n.pop()}})),has:te((function(e){return function(t){return Z(e,t).length>0}})),contains:te((function(e){return e=e.replace(K,Q),function(t){return(t.textContent||A.text(t)).indexOf(e)>-1}})),lang:te((function(e){return B.test(e||"")||Z.error("unsupported lang: "+e),e=e.replace(K,Q).toLowerCase(),function(t){var n;do{if(n=f?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return(n=n.toLowerCase())===e||0===n.indexOf(e+"-")}while((t=t.parentNode)&&1===t.nodeType);return!1}})),target:function(e){var t=i.location&&i.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===c},focus:function(e){return e===function(){try{return l.activeElement}catch(e){}}()&&l.hasFocus()&&!!(e.type||e.href||~e.tabIndex)},enabled:oe(!1),disabled:oe(!0),checked:function(e){return k(e,"input")&&!!e.checked||k(e,"option")&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!t.pseudos.empty(e)},header:function(e){return X.test(e.nodeName)},input:function(e){return V.test(e.nodeName)},button:function(e){return k(e,"input")&&"button"===e.type||k(e,"button")},text:function(e){var t;return k(e,"input")&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:se((function(){return[0]})),last:se((function(e,t){return[t-1]})),eq:se((function(e,t,n){return[n<0?n+t:n]})),even:se((function(e,t){for(var n=0;nt?t:n;--i>=0;)e.push(i);return e})),gt:se((function(e,t,n){for(var i=n<0?n+t:n;++i1?function(t,n,i){for(var r=e.length;r--;)if(!e[r](t,n,i))return!1;return!0}:e[0]}function pe(e,t,n,i,r){for(var o,s=[],a=0,l=e.length,c=null!=t;a-1&&(o[c]=!(s[c]=d))}}else h=pe(h===s?h.splice(v,h.length):h),r?r(null,s,h,l):g.apply(s,h)}))}function me(e){for(var i,r,o,s=e.length,a=t.relative[e[0].type],l=a||t.relative[" "],c=a?1:0,f=de((function(e){return e===i}),l,!0),d=de((function(e){return u.call(i,e)>-1}),l,!0),h=[function(e,t,r){var o=!a&&(r||t!=n)||((i=t).nodeType?f(e,t,r):d(e,t,r));return i=null,o}];c1&&he(h),c>1&&fe(e.slice(0,c-1).concat({value:" "===e[c-2].type?"*":""})).replace(L,"$1"),r,c0,o=e.length>0,s=function(s,a,c,u,d){var h,p,m,v=0,b="0",_=s&&[],w=[],x=n,T=s||o&&t.find.TAG("*",d),E=y+=null==x?1:Math.random()||.1,C=T.length;for(d&&(n=a==l||a||d);b!==C&&null!=(h=T[b]);b++){if(o&&h){for(p=0,a||h.ownerDocument==l||(le(h),c=!f);m=e[p++];)if(m(h,a||l,c)){g.call(u,h);break}d&&(y=E)}r&&((h=!m&&h)&&v--,s&&_.push(h))}if(v+=b,r&&b!==v){for(p=0;m=i[p++];)m(_,w,a,c);if(s){if(v>0)for(;b--;)_[b]||w[b]||(w[b]=S.call(u));w=pe(w)}g.apply(u,w),d&&!s&&w.length>0&&v+i.length>1&&A.uniqueSort(u)}return d&&(y=E,n=x),_};return r?te(s):s}(s,o)),a.selector=e}return a}function ye(e,n,i,r){var o,s,a,l,c,u="function"==typeof e&&e,d=!r&&ue(e=u.selector||e);if(i=i||[],1===d.length){if((s=d[0]=d[0].slice(0)).length>2&&"ID"===(a=s[0]).type&&9===n.nodeType&&f&&t.relative[s[1].type]){if(!(n=(t.find.ID(a.matches[0].replace(K,Q),n)||[])[0]))return i;u&&(n=n.parentNode),e=e.slice(s.shift().value.length)}for(o=z.needsContext.test(e)?0:s.length;o--&&(a=s[o],!t.relative[l=a.type]);)if((c=t.find[l])&&(r=c(a.matches[0].replace(K,Q),Y.test(s[0].type)&&ae(n.parentNode)||n))){if(s.splice(o,1),!(e=r.length&&fe(s)))return g.apply(i,r),i;break}}return(u||ve(e,d))(r,n,!f,i,!n||Y.test(e)&&ae(n.parentNode)||n),i}ce.prototype=t.filters=t.pseudos,t.setFilters=new ce,m.sortStable=v.split("").sort(E).join("")===v,le(),m.sortDetached=ne((function(e){return 1&e.compareDocumentPosition(l.createElement("fieldset"))})),A.find=Z,A.expr[":"]=A.expr.pseudos,A.unique=A.uniqueSort,Z.compile=ve,Z.select=ye,Z.setDocument=le,Z.tokenize=ue,Z.escape=A.escapeSelector,Z.getText=A.text,Z.isXML=A.isXMLDoc,Z.selectors=A.expr,Z.support=A.support,Z.uniqueSort=A.uniqueSort}();var M=function(e,t,n){for(var i=[],r=void 0!==n;(e=e[t])&&9!==e.nodeType;)if(1===e.nodeType){if(r&&A(e).is(n))break;i.push(e)}return i},H=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},q=A.expr.match.needsContext,F=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function R(e,t,n){return v(t)?A.grep(e,(function(e,i){return!!t.call(e,i,e)!==n})):t.nodeType?A.grep(e,(function(e){return e===t!==n})):"string"!=typeof t?A.grep(e,(function(e){return u.call(t,e)>-1!==n})):A.filter(t,e,n)}A.filter=function(e,t,n){var i=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===i.nodeType?A.find.matchesSelector(i,e)?[i]:[]:A.find.matches(e,A.grep(t,(function(e){return 1===e.nodeType})))},A.fn.extend({find:function(e){var t,n,i=this.length,r=this;if("string"!=typeof e)return this.pushStack(A(e).filter((function(){for(t=0;t1?A.uniqueSort(n):n},filter:function(e){return this.pushStack(R(this,e||[],!1))},not:function(e){return this.pushStack(R(this,e||[],!0))},is:function(e){return!!R(this,"string"==typeof e&&q.test(e)?A(e):e||[],!1).length}});var W,B=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(A.fn.init=function(e,t,n){var i,r;if(!e)return this;if(n=n||W,"string"==typeof e){if(!(i="<"===e[0]&&">"===e[e.length-1]&&e.length>=3?[null,e,null]:B.exec(e))||!i[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(i[1]){if(t=t instanceof A?t[0]:t,A.merge(this,A.parseHTML(i[1],t&&t.nodeType?t.ownerDocument||t:b,!0)),F.test(i[1])&&A.isPlainObject(t))for(i in t)v(this[i])?this[i](t[i]):this.attr(i,t[i]);return this}return(r=b.getElementById(i[2]))&&(this[0]=r,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):v(e)?void 0!==n.ready?n.ready(e):e(A):A.makeArray(e,this)}).prototype=A.fn,W=A(b);var z=/^(?:parents|prev(?:Until|All))/,V={children:!0,contents:!0,next:!0,prev:!0};function X(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}A.fn.extend({has:function(e){var t=A(e,this),n=t.length;return this.filter((function(){for(var e=0;e-1:1===n.nodeType&&A.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?A.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?u.call(A(e),this[0]):u.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(A.uniqueSort(A.merge(this.get(),A(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),A.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return M(e,"parentNode")},parentsUntil:function(e,t,n){return M(e,"parentNode",n)},next:function(e){return X(e,"nextSibling")},prev:function(e){return X(e,"previousSibling")},nextAll:function(e){return M(e,"nextSibling")},prevAll:function(e){return M(e,"previousSibling")},nextUntil:function(e,t,n){return M(e,"nextSibling",n)},prevUntil:function(e,t,n){return M(e,"previousSibling",n)},siblings:function(e){return H((e.parentNode||{}).firstChild,e)},children:function(e){return H(e.firstChild)},contents:function(e){return null!=e.contentDocument&&s(e.contentDocument)?e.contentDocument:(k(e,"template")&&(e=e.content||e),A.merge([],e.childNodes))}},(function(e,t){A.fn[e]=function(n,i){var r=A.map(this,t,n);return"Until"!==e.slice(-5)&&(i=n),i&&"string"==typeof i&&(r=A.filter(i,r)),this.length>1&&(V[e]||A.uniqueSort(r),z.test(e)&&r.reverse()),this.pushStack(r)}}));var U=/[^\x20\t\r\n\f]+/g;function Y(e){return e}function K(e){throw e}function Q(e,t,n,i){var r;try{e&&v(r=e.promise)?r.call(e).done(t).fail(n):e&&v(r=e.then)?r.call(e,t,n):t.apply(void 0,[e].slice(i))}catch(e){n.apply(void 0,[e])}}A.Callbacks=function(e){e="string"==typeof e?function(e){var t={};return A.each(e.match(U)||[],(function(e,n){t[n]=!0})),t}(e):A.extend({},e);var t,n,i,r,o=[],s=[],a=-1,l=function(){for(r=r||e.once,i=t=!0;s.length;a=-1)for(n=s.shift();++a-1;)o.splice(n,1),n<=a&&a--})),this},has:function(e){return e?A.inArray(e,o)>-1:o.length>0},empty:function(){return o&&(o=[]),this},disable:function(){return r=s=[],o=n="",this},disabled:function(){return!o},lock:function(){return r=s=[],n||t||(o=n=""),this},locked:function(){return!!r},fireWith:function(e,n){return r||(n=[e,(n=n||[]).slice?n.slice():n],s.push(n),t||l()),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!i}};return c},A.extend({Deferred:function(e){var t=[["notify","progress",A.Callbacks("memory"),A.Callbacks("memory"),2],["resolve","done",A.Callbacks("once memory"),A.Callbacks("once memory"),0,"resolved"],["reject","fail",A.Callbacks("once memory"),A.Callbacks("once memory"),1,"rejected"]],n="pending",r={state:function(){return n},always:function(){return o.done(arguments).fail(arguments),this},catch:function(e){return r.then(null,e)},pipe:function(){var e=arguments;return A.Deferred((function(n){A.each(t,(function(t,i){var r=v(e[i[4]])&&e[i[4]];o[i[1]]((function(){var e=r&&r.apply(this,arguments);e&&v(e.promise)?e.promise().progress(n.notify).done(n.resolve).fail(n.reject):n[i[0]+"With"](this,r?[e]:arguments)}))})),e=null})).promise()},then:function(e,n,r){var o=0;function s(e,t,n,r){return function(){var a=this,l=arguments,c=function(){var i,c;if(!(e=o&&(n!==K&&(a=void 0,l=[i]),t.rejectWith(a,l))}};e?u():(A.Deferred.getErrorHook?u.error=A.Deferred.getErrorHook():A.Deferred.getStackHook&&(u.error=A.Deferred.getStackHook()),i.setTimeout(u))}}return A.Deferred((function(i){t[0][3].add(s(0,i,v(r)?r:Y,i.notifyWith)),t[1][3].add(s(0,i,v(e)?e:Y)),t[2][3].add(s(0,i,v(n)?n:K))})).promise()},promise:function(e){return null!=e?A.extend(e,r):r}},o={};return A.each(t,(function(e,i){var s=i[2],a=i[5];r[i[1]]=s.add,a&&s.add((function(){n=a}),t[3-e][2].disable,t[3-e][3].disable,t[0][2].lock,t[0][3].lock),s.add(i[3].fire),o[i[0]]=function(){return o[i[0]+"With"](this===o?void 0:this,arguments),this},o[i[0]+"With"]=s.fireWith})),r.promise(o),e&&e.call(o,o),o},when:function(e){var t=arguments.length,n=t,i=Array(n),r=a.call(arguments),o=A.Deferred(),s=function(e){return function(n){i[e]=this,r[e]=arguments.length>1?a.call(arguments):n,--t||o.resolveWith(i,r)}};if(t<=1&&(Q(e,o.done(s(n)).resolve,o.reject,!t),"pending"===o.state()||v(r[n]&&r[n].then)))return o.then();for(;n--;)Q(r[n],s(n),o.reject);return o.promise()}});var G=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;A.Deferred.exceptionHook=function(e,t){i.console&&i.console.warn&&e&&G.test(e.name)&&i.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},A.readyException=function(e){i.setTimeout((function(){throw e}))};var J=A.Deferred();function Z(){b.removeEventListener("DOMContentLoaded",Z),i.removeEventListener("load",Z),A.ready()}A.fn.ready=function(e){return J.then(e).catch((function(e){A.readyException(e)})),this},A.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--A.readyWait:A.isReady)||(A.isReady=!0,!0!==e&&--A.readyWait>0||J.resolveWith(b,[A]))}}),A.ready.then=J.then,"complete"===b.readyState||"loading"!==b.readyState&&!b.documentElement.doScroll?i.setTimeout(A.ready):(b.addEventListener("DOMContentLoaded",Z),i.addEventListener("load",Z));var ee=function(e,t,n,i,r,o,s){var a=0,l=e.length,c=null==n;if("object"===x(n))for(a in r=!0,n)ee(e,t,a,n[a],!0,o,s);else if(void 0!==i&&(r=!0,v(i)||(s=!0),c&&(s?(t.call(e,i),t=null):(c=t,t=function(e,t,n){return c.call(A(e),n)})),t))for(;a1,null,!0)},removeData:function(e){return this.each((function(){le.remove(this,e)}))}}),A.extend({queue:function(e,t,n){var i;if(e)return t=(t||"fx")+"queue",i=ae.get(e,t),n&&(!i||Array.isArray(n)?i=ae.access(e,t,A.makeArray(n)):i.push(n)),i||[]},dequeue:function(e,t){t=t||"fx";var n=A.queue(e,t),i=n.length,r=n.shift(),o=A._queueHooks(e,t);"inprogress"===r&&(r=n.shift(),i--),r&&("fx"===t&&n.unshift("inprogress"),delete o.stop,r.call(e,(function(){A.dequeue(e,t)}),o)),!i&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return ae.get(e,n)||ae.access(e,n,{empty:A.Callbacks("once memory").add((function(){ae.remove(e,[t+"queue",n])}))})}}),A.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length\x20\t\r\n\f]*)/i,ke=/^$|^module$|\/(?:java|ecma)script/i;Te=b.createDocumentFragment().appendChild(b.createElement("div")),(Ee=b.createElement("input")).setAttribute("type","radio"),Ee.setAttribute("checked","checked"),Ee.setAttribute("name","t"),Te.appendChild(Ee),m.checkClone=Te.cloneNode(!0).cloneNode(!0).lastChild.checked,Te.innerHTML="",m.noCloneChecked=!!Te.cloneNode(!0).lastChild.defaultValue,Te.innerHTML="",m.option=!!Te.lastChild;var Se={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function Oe(e,t){var n;return n=void 0!==e.getElementsByTagName?e.getElementsByTagName(t||"*"):void 0!==e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&k(e,t)?A.merge([e],n):n}function De(e,t){for(var n=0,i=e.length;n",""]);var je=/<|&#?\w+;/;function Le(e,t,n,i,r){for(var o,s,a,l,c,u,f=t.createDocumentFragment(),d=[],h=0,p=e.length;h-1)r&&r.push(o);else if(c=me(o),s=Oe(f.appendChild(o),"script"),c&&De(s),n)for(u=0;o=s[u++];)ke.test(o.type||"")&&n.push(o);return f}var Ne=/^([^.]*)(?:\.(.+)|)/;function Pe(){return!0}function $e(){return!1}function Ie(e,t,n,i,r,o){var s,a;if("object"==typeof t){for(a in"string"!=typeof n&&(i=i||n,n=void 0),t)Ie(e,a,n,i,t[a],o);return e}if(null==i&&null==r?(r=n,i=n=void 0):null==r&&("string"==typeof n?(r=i,i=void 0):(r=i,i=n,n=void 0)),!1===r)r=$e;else if(!r)return e;return 1===o&&(s=r,r=function(e){return A().off(e),s.apply(this,arguments)},r.guid=s.guid||(s.guid=A.guid++)),e.each((function(){A.event.add(this,t,r,i,n)}))}function Me(e,t,n){n?(ae.set(e,t,!1),A.event.add(e,t,{namespace:!1,handler:function(e){var n,i=ae.get(this,t);if(1&e.isTrigger&&this[t]){if(i)(A.event.special[t]||{}).delegateType&&e.stopPropagation();else if(i=a.call(arguments),ae.set(this,t,i),this[t](),n=ae.get(this,t),ae.set(this,t,!1),i!==n)return e.stopImmediatePropagation(),e.preventDefault(),n}else i&&(ae.set(this,t,A.event.trigger(i[0],i.slice(1),this)),e.stopPropagation(),e.isImmediatePropagationStopped=Pe)}})):void 0===ae.get(e,t)&&A.event.add(e,t,Pe)}A.event={global:{},add:function(e,t,n,i,r){var o,s,a,l,c,u,f,d,h,p,g,m=ae.get(e);if(oe(e))for(n.handler&&(n=(o=n).handler,r=o.selector),r&&A.find.matchesSelector(ge,r),n.guid||(n.guid=A.guid++),(l=m.events)||(l=m.events=Object.create(null)),(s=m.handle)||(s=m.handle=function(t){return void 0!==A&&A.event.triggered!==t.type?A.event.dispatch.apply(e,arguments):void 0}),c=(t=(t||"").match(U)||[""]).length;c--;)h=g=(a=Ne.exec(t[c])||[])[1],p=(a[2]||"").split(".").sort(),h&&(f=A.event.special[h]||{},h=(r?f.delegateType:f.bindType)||h,f=A.event.special[h]||{},u=A.extend({type:h,origType:g,data:i,handler:n,guid:n.guid,selector:r,needsContext:r&&A.expr.match.needsContext.test(r),namespace:p.join(".")},o),(d=l[h])||((d=l[h]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(e,i,p,s)||e.addEventListener&&e.addEventListener(h,s)),f.add&&(f.add.call(e,u),u.handler.guid||(u.handler.guid=n.guid)),r?d.splice(d.delegateCount++,0,u):d.push(u),A.event.global[h]=!0)},remove:function(e,t,n,i,r){var o,s,a,l,c,u,f,d,h,p,g,m=ae.hasData(e)&&ae.get(e);if(m&&(l=m.events)){for(c=(t=(t||"").match(U)||[""]).length;c--;)if(h=g=(a=Ne.exec(t[c])||[])[1],p=(a[2]||"").split(".").sort(),h){for(f=A.event.special[h]||{},d=l[h=(i?f.delegateType:f.bindType)||h]||[],a=a[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),s=o=d.length;o--;)u=d[o],!r&&g!==u.origType||n&&n.guid!==u.guid||a&&!a.test(u.namespace)||i&&i!==u.selector&&("**"!==i||!u.selector)||(d.splice(o,1),u.selector&&d.delegateCount--,f.remove&&f.remove.call(e,u));s&&!d.length&&(f.teardown&&!1!==f.teardown.call(e,p,m.handle)||A.removeEvent(e,h,m.handle),delete l[h])}else for(h in l)A.event.remove(e,h+t[c],n,i,!0);A.isEmptyObject(l)&&ae.remove(e,"handle events")}},dispatch:function(e){var t,n,i,r,o,s,a=new Array(arguments.length),l=A.event.fix(e),c=(ae.get(this,"events")||Object.create(null))[l.type]||[],u=A.event.special[l.type]||{};for(a[0]=l,t=1;t=1))for(;c!==this;c=c.parentNode||this)if(1===c.nodeType&&("click"!==e.type||!0!==c.disabled)){for(o=[],s={},n=0;n-1:A.find(r,this,null,[c]).length),s[r]&&o.push(i);o.length&&a.push({elem:c,handlers:o})}return c=this,l\s*$/g;function Re(e,t){return k(e,"table")&&k(11!==t.nodeType?t:t.firstChild,"tr")&&A(e).children("tbody")[0]||e}function We(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Be(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function ze(e,t){var n,i,r,o,s,a;if(1===t.nodeType){if(ae.hasData(e)&&(a=ae.get(e).events))for(r in ae.remove(t,"handle events"),a)for(n=0,i=a[r].length;n1&&"string"==typeof p&&!m.checkClone&&qe.test(p))return e.each((function(r){var o=e.eq(r);g&&(t[0]=p.call(this,r,o.html())),Xe(o,t,n,i)}));if(d&&(o=(r=Le(t,e[0].ownerDocument,!1,e,i)).firstChild,1===r.childNodes.length&&(r=o),o||i)){for(a=(s=A.map(Oe(r,"script"),We)).length;f0&&De(s,!l&&Oe(e,"script")),a},cleanData:function(e){for(var t,n,i,r=A.event.special,o=0;void 0!==(n=e[o]);o++)if(oe(n)){if(t=n[ae.expando]){if(t.events)for(i in t.events)r[i]?A.event.remove(n,i):A.removeEvent(n,i,t.handle);n[ae.expando]=void 0}n[le.expando]&&(n[le.expando]=void 0)}}}),A.fn.extend({detach:function(e){return Ue(this,e,!0)},remove:function(e){return Ue(this,e)},text:function(e){return ee(this,(function(e){return void 0===e?A.text(this):this.empty().each((function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)}))}),null,e,arguments.length)},append:function(){return Xe(this,arguments,(function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Re(this,e).appendChild(e)}))},prepend:function(){return Xe(this,arguments,(function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Re(this,e);t.insertBefore(e,t.firstChild)}}))},before:function(){return Xe(this,arguments,(function(e){this.parentNode&&this.parentNode.insertBefore(e,this)}))},after:function(){return Xe(this,arguments,(function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)}))},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(A.cleanData(Oe(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map((function(){return A.clone(this,e,t)}))},html:function(e){return ee(this,(function(e){var t=this[0]||{},n=0,i=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!He.test(e)&&!Se[(Ce.exec(e)||["",""])[1].toLowerCase()]){e=A.htmlPrefilter(e);try{for(;n=0&&(l+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-l-a-.5))||0),l+c}function ut(e,t,n){var i=Qe(e),r=(!m.boxSizingReliable()||n)&&"border-box"===A.css(e,"boxSizing",!1,i),o=r,s=Ze(e,t,i),a="offset"+t[0].toUpperCase()+t.slice(1);if(Ye.test(s)){if(!n)return s;s="auto"}return(!m.boxSizingReliable()&&r||!m.reliableTrDimensions()&&k(e,"tr")||"auto"===s||!parseFloat(s)&&"inline"===A.css(e,"display",!1,i))&&e.getClientRects().length&&(r="border-box"===A.css(e,"boxSizing",!1,i),(o=a in e)&&(s=e[a])),(s=parseFloat(s)||0)+ct(e,t,n||(r?"border":"content"),o,i,s)+"px"}function ft(e,t,n,i,r){return new ft.prototype.init(e,t,n,i,r)}A.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Ze(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,aspectRatio:!0,borderImageSlice:!0,columnCount:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,scale:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeMiterlimit:!0,strokeOpacity:!0},cssProps:{},style:function(e,t,n,i){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var r,o,s,a=re(t),l=Ke.test(t),c=e.style;if(l||(t=rt(a)),s=A.cssHooks[t]||A.cssHooks[a],void 0===n)return s&&"get"in s&&void 0!==(r=s.get(e,!1,i))?r:c[t];"string"===(o=typeof n)&&(r=he.exec(n))&&r[1]&&(n=be(e,t,r),o="number"),null!=n&&n==n&&("number"!==o||l||(n+=r&&r[3]||(A.cssNumber[a]?"":"px")),m.clearCloneStyle||""!==n||0!==t.indexOf("background")||(c[t]="inherit"),s&&"set"in s&&void 0===(n=s.set(e,n,i))||(l?c.setProperty(t,n):c[t]=n))}},css:function(e,t,n,i){var r,o,s,a=re(t);return Ke.test(t)||(t=rt(a)),(s=A.cssHooks[t]||A.cssHooks[a])&&"get"in s&&(r=s.get(e,!0,n)),void 0===r&&(r=Ze(e,t,i)),"normal"===r&&t in at&&(r=at[t]),""===n||n?(o=parseFloat(r),!0===n||isFinite(o)?o||0:r):r}}),A.each(["height","width"],(function(e,t){A.cssHooks[t]={get:function(e,n,i){if(n)return!ot.test(A.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?ut(e,t,i):Ge(e,st,(function(){return ut(e,t,i)}))},set:function(e,n,i){var r,o=Qe(e),s=!m.scrollboxSize()&&"absolute"===o.position,a=(s||i)&&"border-box"===A.css(e,"boxSizing",!1,o),l=i?ct(e,t,i,a,o):0;return a&&s&&(l-=Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-parseFloat(o[t])-ct(e,t,"border",!1,o)-.5)),l&&(r=he.exec(n))&&"px"!==(r[3]||"px")&&(e.style[t]=n,n=A.css(e,t)),lt(0,n,l)}}})),A.cssHooks.marginLeft=et(m.reliableMarginLeft,(function(e,t){if(t)return(parseFloat(Ze(e,"marginLeft"))||e.getBoundingClientRect().left-Ge(e,{marginLeft:0},(function(){return e.getBoundingClientRect().left})))+"px"})),A.each({margin:"",padding:"",border:"Width"},(function(e,t){A.cssHooks[e+t]={expand:function(n){for(var i=0,r={},o="string"==typeof n?n.split(" "):[n];i<4;i++)r[e+pe[i]+t]=o[i]||o[i-2]||o[0];return r}},"margin"!==e&&(A.cssHooks[e+t].set=lt)})),A.fn.extend({css:function(e,t){return ee(this,(function(e,t,n){var i,r,o={},s=0;if(Array.isArray(t)){for(i=Qe(e),r=t.length;s1)}}),A.Tween=ft,ft.prototype={constructor:ft,init:function(e,t,n,i,r,o){this.elem=e,this.prop=n,this.easing=r||A.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=i,this.unit=o||(A.cssNumber[n]?"":"px")},cur:function(){var e=ft.propHooks[this.prop];return e&&e.get?e.get(this):ft.propHooks._default.get(this)},run:function(e){var t,n=ft.propHooks[this.prop];return this.options.duration?this.pos=t=A.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):ft.propHooks._default.set(this),this}},ft.prototype.init.prototype=ft.prototype,ft.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=A.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){A.fx.step[e.prop]?A.fx.step[e.prop](e):1!==e.elem.nodeType||!A.cssHooks[e.prop]&&null==e.elem.style[rt(e.prop)]?e.elem[e.prop]=e.now:A.style(e.elem,e.prop,e.now+e.unit)}}},ft.propHooks.scrollTop=ft.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},A.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},A.fx=ft.prototype.init,A.fx.step={};var dt,ht,pt=/^(?:toggle|show|hide)$/,gt=/queueHooks$/;function mt(){ht&&(!1===b.hidden&&i.requestAnimationFrame?i.requestAnimationFrame(mt):i.setTimeout(mt,A.fx.interval),A.fx.tick())}function vt(){return i.setTimeout((function(){dt=void 0})),dt=Date.now()}function yt(e,t){var n,i=0,r={height:e};for(t=t?1:0;i<4;i+=2-t)r["margin"+(n=pe[i])]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}function bt(e,t,n){for(var i,r=(_t.tweeners[t]||[]).concat(_t.tweeners["*"]),o=0,s=r.length;o1)},removeAttr:function(e){return this.each((function(){A.removeAttr(this,e)}))}}),A.extend({attr:function(e,t,n){var i,r,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return void 0===e.getAttribute?A.prop(e,t,n):(1===o&&A.isXMLDoc(e)||(r=A.attrHooks[t.toLowerCase()]||(A.expr.match.bool.test(t)?wt:void 0)),void 0!==n?null===n?void A.removeAttr(e,t):r&&"set"in r&&void 0!==(i=r.set(e,n,t))?i:(e.setAttribute(t,n+""),n):r&&"get"in r&&null!==(i=r.get(e,t))?i:null==(i=A.find.attr(e,t))?void 0:i)},attrHooks:{type:{set:function(e,t){if(!m.radioValue&&"radio"===t&&k(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,i=0,r=t&&t.match(U);if(r&&1===e.nodeType)for(;n=r[i++];)e.removeAttribute(n)}}),wt={set:function(e,t,n){return!1===t?A.removeAttr(e,n):e.setAttribute(n,n),n}},A.each(A.expr.match.bool.source.match(/\w+/g),(function(e,t){var n=xt[t]||A.find.attr;xt[t]=function(e,t,i){var r,o,s=t.toLowerCase();return i||(o=xt[s],xt[s]=r,r=null!=n(e,t,i)?s:null,xt[s]=o),r}}));var Tt=/^(?:input|select|textarea|button)$/i,Et=/^(?:a|area)$/i;function At(e){return(e.match(U)||[]).join(" ")}function Ct(e){return e.getAttribute&&e.getAttribute("class")||""}function kt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(U)||[]}A.fn.extend({prop:function(e,t){return ee(this,A.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each((function(){delete this[A.propFix[e]||e]}))}}),A.extend({prop:function(e,t,n){var i,r,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&A.isXMLDoc(e)||(t=A.propFix[t]||t,r=A.propHooks[t]),void 0!==n?r&&"set"in r&&void 0!==(i=r.set(e,n,t))?i:e[t]=n:r&&"get"in r&&null!==(i=r.get(e,t))?i:e[t]},propHooks:{tabIndex:{get:function(e){var t=A.find.attr(e,"tabindex");return t?parseInt(t,10):Tt.test(e.nodeName)||Et.test(e.nodeName)&&e.href?0:-1}}},propFix:{for:"htmlFor",class:"className"}}),m.optSelected||(A.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),A.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],(function(){A.propFix[this.toLowerCase()]=this})),A.fn.extend({addClass:function(e){var t,n,i,r,o,s;return v(e)?this.each((function(t){A(this).addClass(e.call(this,t,Ct(this)))})):(t=kt(e)).length?this.each((function(){if(i=Ct(this),n=1===this.nodeType&&" "+At(i)+" "){for(o=0;o-1;)n=n.replace(" "+r+" "," ");s=At(n),i!==s&&this.setAttribute("class",s)}})):this:this.attr("class","")},toggleClass:function(e,t){var n,i,r,o,s=typeof e,a="string"===s||Array.isArray(e);return v(e)?this.each((function(n){A(this).toggleClass(e.call(this,n,Ct(this),t),t)})):"boolean"==typeof t&&a?t?this.addClass(e):this.removeClass(e):(n=kt(e),this.each((function(){if(a)for(o=A(this),r=0;r-1)return!0;return!1}});var St=/\r/g;A.fn.extend({val:function(e){var t,n,i,r=this[0];return arguments.length?(i=v(e),this.each((function(n){var r;1===this.nodeType&&(null==(r=i?e.call(this,n,A(this).val()):e)?r="":"number"==typeof r?r+="":Array.isArray(r)&&(r=A.map(r,(function(e){return null==e?"":e+""}))),(t=A.valHooks[this.type]||A.valHooks[this.nodeName.toLowerCase()])&&"set"in t&&void 0!==t.set(this,r,"value")||(this.value=r))}))):r?(t=A.valHooks[r.type]||A.valHooks[r.nodeName.toLowerCase()])&&"get"in t&&void 0!==(n=t.get(r,"value"))?n:"string"==typeof(n=r.value)?n.replace(St,""):null==n?"":n:void 0}}),A.extend({valHooks:{option:{get:function(e){var t=A.find.attr(e,"value");return null!=t?t:At(A.text(e))}},select:{get:function(e){var t,n,i,r=e.options,o=e.selectedIndex,s="select-one"===e.type,a=s?null:[],l=s?o+1:r.length;for(i=o<0?l:s?o:0;i-1)&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),A.each(["radio","checkbox"],(function(){A.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=A.inArray(A(e).val(),t)>-1}},m.checkOn||(A.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}));var Ot=i.location,Dt={guid:Date.now()},jt=/\?/;A.parseXML=function(e){var t,n;if(!e||"string"!=typeof e)return null;try{t=(new i.DOMParser).parseFromString(e,"text/xml")}catch(e){}return n=t&&t.getElementsByTagName("parsererror")[0],t&&!n||A.error("Invalid XML: "+(n?A.map(n.childNodes,(function(e){return e.textContent})).join("\n"):e)),t};var Lt=/^(?:focusinfocus|focusoutblur)$/,Nt=function(e){e.stopPropagation()};A.extend(A.event,{trigger:function(e,t,n,r){var o,s,a,l,c,u,f,d,p=[n||b],g=h.call(e,"type")?e.type:e,m=h.call(e,"namespace")?e.namespace.split("."):[];if(s=d=a=n=n||b,3!==n.nodeType&&8!==n.nodeType&&!Lt.test(g+A.event.triggered)&&(g.indexOf(".")>-1&&(m=g.split("."),g=m.shift(),m.sort()),c=g.indexOf(":")<0&&"on"+g,(e=e[A.expando]?e:new A.Event(g,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=m.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+m.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:A.makeArray(t,[e]),f=A.event.special[g]||{},r||!f.trigger||!1!==f.trigger.apply(n,t))){if(!r&&!f.noBubble&&!y(n)){for(l=f.delegateType||g,Lt.test(l+g)||(s=s.parentNode);s;s=s.parentNode)p.push(s),a=s;a===(n.ownerDocument||b)&&p.push(a.defaultView||a.parentWindow||i)}for(o=0;(s=p[o++])&&!e.isPropagationStopped();)d=s,e.type=o>1?l:f.bindType||g,(u=(ae.get(s,"events")||Object.create(null))[e.type]&&ae.get(s,"handle"))&&u.apply(s,t),(u=c&&s[c])&&u.apply&&oe(s)&&(e.result=u.apply(s,t),!1===e.result&&e.preventDefault());return e.type=g,r||e.isDefaultPrevented()||f._default&&!1!==f._default.apply(p.pop(),t)||!oe(n)||c&&v(n[g])&&!y(n)&&((a=n[c])&&(n[c]=null),A.event.triggered=g,e.isPropagationStopped()&&d.addEventListener(g,Nt),n[g](),e.isPropagationStopped()&&d.removeEventListener(g,Nt),A.event.triggered=void 0,a&&(n[c]=a)),e.result}},simulate:function(e,t,n){var i=A.extend(new A.Event,n,{type:e,isSimulated:!0});A.event.trigger(i,null,t)}}),A.fn.extend({trigger:function(e,t){return this.each((function(){A.event.trigger(e,t,this)}))},triggerHandler:function(e,t){var n=this[0];if(n)return A.event.trigger(e,t,n,!0)}});var Pt=/\[\]$/,$t=/\r?\n/g,It=/^(?:submit|button|image|reset|file)$/i,Mt=/^(?:input|select|textarea|keygen)/i;function Ht(e,t,n,i){var r;if(Array.isArray(t))A.each(t,(function(t,r){n||Pt.test(e)?i(e,r):Ht(e+"["+("object"==typeof r&&null!=r?t:"")+"]",r,n,i)}));else if(n||"object"!==x(t))i(e,t);else for(r in t)Ht(e+"["+r+"]",t[r],n,i)}A.param=function(e,t){var n,i=[],r=function(e,t){var n=v(t)?t():t;i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!A.isPlainObject(e))A.each(e,(function(){r(this.name,this.value)}));else for(n in e)Ht(n,e[n],t,r);return i.join("&")},A.fn.extend({serialize:function(){return A.param(this.serializeArray())},serializeArray:function(){return this.map((function(){var e=A.prop(this,"elements");return e?A.makeArray(e):this})).filter((function(){var e=this.type;return this.name&&!A(this).is(":disabled")&&Mt.test(this.nodeName)&&!It.test(e)&&(this.checked||!Ae.test(e))})).map((function(e,t){var n=A(this).val();return null==n?null:Array.isArray(n)?A.map(n,(function(e){return{name:t.name,value:e.replace($t,"\r\n")}})):{name:t.name,value:n.replace($t,"\r\n")}})).get()}});var qt=/%20/g,Ft=/#.*$/,Rt=/([?&])_=[^&]*/,Wt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Bt=/^(?:GET|HEAD)$/,zt=/^\/\//,Vt={},Xt={},Ut="*/".concat("*"),Yt=b.createElement("a");function Kt(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var i,r=0,o=t.toLowerCase().match(U)||[];if(v(n))for(;i=o[r++];)"+"===i[0]?(i=i.slice(1)||"*",(e[i]=e[i]||[]).unshift(n)):(e[i]=e[i]||[]).push(n)}}function Qt(e,t,n,i){var r={},o=e===Xt;function s(a){var l;return r[a]=!0,A.each(e[a]||[],(function(e,a){var c=a(t,n,i);return"string"!=typeof c||o||r[c]?o?!(l=c):void 0:(t.dataTypes.unshift(c),s(c),!1)})),l}return s(t.dataTypes[0])||!r["*"]&&s("*")}function Gt(e,t){var n,i,r=A.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((r[n]?e:i||(i={}))[n]=t[n]);return i&&A.extend(!0,e,i),e}Yt.href=Ot.href,A.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Ot.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Ot.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Ut,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":A.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Gt(Gt(e,A.ajaxSettings),t):Gt(A.ajaxSettings,e)},ajaxPrefilter:Kt(Vt),ajaxTransport:Kt(Xt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var n,r,o,s,a,l,c,u,f,d,h=A.ajaxSetup({},t),p=h.context||h,g=h.context&&(p.nodeType||p.jquery)?A(p):A.event,m=A.Deferred(),v=A.Callbacks("once memory"),y=h.statusCode||{},_={},w={},x="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(c){if(!s)for(s={};t=Wt.exec(o);)s[t[1].toLowerCase()+" "]=(s[t[1].toLowerCase()+" "]||[]).concat(t[2]);t=s[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return c?o:null},setRequestHeader:function(e,t){return null==c&&(e=w[e.toLowerCase()]=w[e.toLowerCase()]||e,_[e]=t),this},overrideMimeType:function(e){return null==c&&(h.mimeType=e),this},statusCode:function(e){var t;if(e)if(c)T.always(e[T.status]);else for(t in e)y[t]=[y[t],e[t]];return this},abort:function(e){var t=e||x;return n&&n.abort(t),E(0,t),this}};if(m.promise(T),h.url=((e||h.url||Ot.href)+"").replace(zt,Ot.protocol+"//"),h.type=t.method||t.type||h.method||h.type,h.dataTypes=(h.dataType||"*").toLowerCase().match(U)||[""],null==h.crossDomain){l=b.createElement("a");try{l.href=h.url,l.href=l.href,h.crossDomain=Yt.protocol+"//"+Yt.host!=l.protocol+"//"+l.host}catch(e){h.crossDomain=!0}}if(h.data&&h.processData&&"string"!=typeof h.data&&(h.data=A.param(h.data,h.traditional)),Qt(Vt,h,t,T),c)return T;for(f in(u=A.event&&h.global)&&0==A.active++&&A.event.trigger("ajaxStart"),h.type=h.type.toUpperCase(),h.hasContent=!Bt.test(h.type),r=h.url.replace(Ft,""),h.hasContent?h.data&&h.processData&&0===(h.contentType||"").indexOf("application/x-www-form-urlencoded")&&(h.data=h.data.replace(qt,"+")):(d=h.url.slice(r.length),h.data&&(h.processData||"string"==typeof h.data)&&(r+=(jt.test(r)?"&":"?")+h.data,delete h.data),!1===h.cache&&(r=r.replace(Rt,"$1"),d=(jt.test(r)?"&":"?")+"_="+Dt.guid+++d),h.url=r+d),h.ifModified&&(A.lastModified[r]&&T.setRequestHeader("If-Modified-Since",A.lastModified[r]),A.etag[r]&&T.setRequestHeader("If-None-Match",A.etag[r])),(h.data&&h.hasContent&&!1!==h.contentType||t.contentType)&&T.setRequestHeader("Content-Type",h.contentType),T.setRequestHeader("Accept",h.dataTypes[0]&&h.accepts[h.dataTypes[0]]?h.accepts[h.dataTypes[0]]+("*"!==h.dataTypes[0]?", "+Ut+"; q=0.01":""):h.accepts["*"]),h.headers)T.setRequestHeader(f,h.headers[f]);if(h.beforeSend&&(!1===h.beforeSend.call(p,T,h)||c))return T.abort();if(x="abort",v.add(h.complete),T.done(h.success),T.fail(h.error),n=Qt(Xt,h,t,T)){if(T.readyState=1,u&&g.trigger("ajaxSend",[T,h]),c)return T;h.async&&h.timeout>0&&(a=i.setTimeout((function(){T.abort("timeout")}),h.timeout));try{c=!1,n.send(_,E)}catch(e){if(c)throw e;E(-1,e)}}else E(-1,"No Transport");function E(e,t,s,l){var f,d,b,_,w,x=t;c||(c=!0,a&&i.clearTimeout(a),n=void 0,o=l||"",T.readyState=e>0?4:0,f=e>=200&&e<300||304===e,s&&(_=function(e,t,n){for(var i,r,o,s,a=e.contents,l=e.dataTypes;"*"===l[0];)l.shift(),void 0===i&&(i=e.mimeType||t.getResponseHeader("Content-Type"));if(i)for(r in a)if(a[r]&&a[r].test(i)){l.unshift(r);break}if(l[0]in n)o=l[0];else{for(r in n){if(!l[0]||e.converters[r+" "+l[0]]){o=r;break}s||(s=r)}o=o||s}if(o)return o!==l[0]&&l.unshift(o),n[o]}(h,T,s)),!f&&A.inArray("script",h.dataTypes)>-1&&A.inArray("json",h.dataTypes)<0&&(h.converters["text script"]=function(){}),_=function(e,t,n,i){var r,o,s,a,l,c={},u=e.dataTypes.slice();if(u[1])for(s in e.converters)c[s.toLowerCase()]=e.converters[s];for(o=u.shift();o;)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!l&&i&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),l=o,o=u.shift())if("*"===o)o=l;else if("*"!==l&&l!==o){if(!(s=c[l+" "+o]||c["* "+o]))for(r in c)if((a=r.split(" "))[1]===o&&(s=c[l+" "+a[0]]||c["* "+a[0]])){!0===s?s=c[r]:!0!==c[r]&&(o=a[0],u.unshift(a[1]));break}if(!0!==s)if(s&&e.throws)t=s(t);else try{t=s(t)}catch(e){return{state:"parsererror",error:s?e:"No conversion from "+l+" to "+o}}}return{state:"success",data:t}}(h,_,T,f),f?(h.ifModified&&((w=T.getResponseHeader("Last-Modified"))&&(A.lastModified[r]=w),(w=T.getResponseHeader("etag"))&&(A.etag[r]=w)),204===e||"HEAD"===h.type?x="nocontent":304===e?x="notmodified":(x=_.state,d=_.data,f=!(b=_.error))):(b=x,!e&&x||(x="error",e<0&&(e=0))),T.status=e,T.statusText=(t||x)+"",f?m.resolveWith(p,[d,x,T]):m.rejectWith(p,[T,x,b]),T.statusCode(y),y=void 0,u&&g.trigger(f?"ajaxSuccess":"ajaxError",[T,h,f?d:b]),v.fireWith(p,[T,x]),u&&(g.trigger("ajaxComplete",[T,h]),--A.active||A.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return A.get(e,t,n,"json")},getScript:function(e,t){return A.get(e,void 0,t,"script")}}),A.each(["get","post"],(function(e,t){A[t]=function(e,n,i,r){return v(n)&&(r=r||i,i=n,n=void 0),A.ajax(A.extend({url:e,type:t,dataType:r,data:n,success:i},A.isPlainObject(e)&&e))}})),A.ajaxPrefilter((function(e){var t;for(t in e.headers)"content-type"===t.toLowerCase()&&(e.contentType=e.headers[t]||"")})),A._evalUrl=function(e,t,n){return A.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){A.globalEval(e,t,n)}})},A.fn.extend({wrapAll:function(e){var t;return this[0]&&(v(e)&&(e=e.call(this[0])),t=A(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map((function(){for(var e=this;e.firstElementChild;)e=e.firstElementChild;return e})).append(this)),this},wrapInner:function(e){return v(e)?this.each((function(t){A(this).wrapInner(e.call(this,t))})):this.each((function(){var t=A(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)}))},wrap:function(e){var t=v(e);return this.each((function(n){A(this).wrapAll(t?e.call(this,n):e)}))},unwrap:function(e){return this.parent(e).not("body").each((function(){A(this).replaceWith(this.childNodes)})),this}}),A.expr.pseudos.hidden=function(e){return!A.expr.pseudos.visible(e)},A.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},A.ajaxSettings.xhr=function(){try{return new i.XMLHttpRequest}catch(e){}};var Jt={0:200,1223:204},Zt=A.ajaxSettings.xhr();m.cors=!!Zt&&"withCredentials"in Zt,m.ajax=Zt=!!Zt,A.ajaxTransport((function(e){var t,n;if(m.cors||Zt&&!e.crossDomain)return{send:function(r,o){var s,a=e.xhr();if(a.open(e.type,e.url,e.async,e.username,e.password),e.xhrFields)for(s in e.xhrFields)a[s]=e.xhrFields[s];for(s in e.mimeType&&a.overrideMimeType&&a.overrideMimeType(e.mimeType),e.crossDomain||r["X-Requested-With"]||(r["X-Requested-With"]="XMLHttpRequest"),r)a.setRequestHeader(s,r[s]);t=function(e){return function(){t&&(t=n=a.onload=a.onerror=a.onabort=a.ontimeout=a.onreadystatechange=null,"abort"===e?a.abort():"error"===e?"number"!=typeof a.status?o(0,"error"):o(a.status,a.statusText):o(Jt[a.status]||a.status,a.statusText,"text"!==(a.responseType||"text")||"string"!=typeof a.responseText?{binary:a.response}:{text:a.responseText},a.getAllResponseHeaders()))}},a.onload=t(),n=a.onerror=a.ontimeout=t("error"),void 0!==a.onabort?a.onabort=n:a.onreadystatechange=function(){4===a.readyState&&i.setTimeout((function(){t&&n()}))},t=t("abort");try{a.send(e.hasContent&&e.data||null)}catch(e){if(t)throw e}},abort:function(){t&&t()}}})),A.ajaxPrefilter((function(e){e.crossDomain&&(e.contents.script=!1)})),A.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return A.globalEval(e),e}}}),A.ajaxPrefilter("script",(function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")})),A.ajaxTransport("script",(function(e){var t,n;if(e.crossDomain||e.scriptAttrs)return{send:function(i,r){t=A("