Skip to content

Instantly share code, notes, and snippets.

@guest271314
Created April 12, 2016 05:32
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save guest271314/ce7a014d0ec638de5c13516d69a1e64e to your computer and use it in GitHub Desktop.
Save guest271314/ce7a014d0ec638de5c13516d69a1e64e to your computer and use it in GitHub Desktop.
requirebin sketch
// Welcome! require() some modules from npm (like you were using browserify)
// and then hit Run Code to run your code on the right side.
// Modules get downloaded from browserify-cdn and bundled in your browser.
var promisesAplusTests = require("promises-aplus-tests");
var assert = require('assert');
var $ = require("jquery");
var adapter = {deferred:$.Deferred};
console.log(adapter, $, assert, promisesAplusTests)
promisesAplusTests(adapter, function (err) {
console.log(err)
// All done; output is in the console. Or check `err` for number of failures.
});
setTimeout(function(){require=function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s}({1:[function(require,module,exports){require("./tests/2.1.2");require("./tests/2.1.3");require("./tests/2.2.1");require("./tests/2.2.2");require("./tests/2.2.3");require("./tests/2.2.4");require("./tests/2.2.5");require("./tests/2.2.6");require("./tests/2.2.7");require("./tests/2.3.1");require("./tests/2.3.2");require("./tests/2.3.3");require("./tests/2.3.4")},{"./tests/2.1.2":2,"./tests/2.1.3":3,"./tests/2.2.1":4,"./tests/2.2.2":5,"./tests/2.2.3":6,"./tests/2.2.4":7,"./tests/2.2.5":8,"./tests/2.2.6":9,"./tests/2.2.7":10,"./tests/2.3.1":11,"./tests/2.3.2":12,"./tests/2.3.3":13,"./tests/2.3.4":14}],2:[function(require,module,exports){(function(global){"use strict";var assert=require("assert");var testFulfilled=require("./helpers/testThreeCases").testFulfilled;var adapter=global.adapter;var deferred=adapter.deferred;var dummy={dummy:"dummy"};describe("2.1.2.1: When fulfilled, a promise: must not transition to any other state.",function(){testFulfilled(dummy,function(promise,done){var onFulfilledCalled=false;promise.then(function onFulfilled(){onFulfilledCalled=true},function onRejected(){assert.strictEqual(onFulfilledCalled,false);done()});setTimeout(done,100)});specify("trying to fulfill then immediately reject",function(done){var d=deferred();var onFulfilledCalled=false;d.promise.then(function onFulfilled(){onFulfilledCalled=true},function onRejected(){assert.strictEqual(onFulfilledCalled,false);done()});d.resolve(dummy);d.reject(dummy);setTimeout(done,100)});specify("trying to fulfill then reject, delayed",function(done){var d=deferred();var onFulfilledCalled=false;d.promise.then(function onFulfilled(){onFulfilledCalled=true},function onRejected(){assert.strictEqual(onFulfilledCalled,false);done()});setTimeout(function(){d.resolve(dummy);d.reject(dummy)},50);setTimeout(done,100)});specify("trying to fulfill immediately then reject delayed",function(done){var d=deferred();var onFulfilledCalled=false;d.promise.then(function onFulfilled(){onFulfilledCalled=true},function onRejected(){assert.strictEqual(onFulfilledCalled,false);done()});d.resolve(dummy);setTimeout(function(){d.reject(dummy)},50);setTimeout(done,100)})})}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"./helpers/testThreeCases":16,assert:48}],3:[function(require,module,exports){(function(global){"use strict";var assert=require("assert");var testRejected=require("./helpers/testThreeCases").testRejected;var adapter=global.adapter;var deferred=adapter.deferred;var dummy={dummy:"dummy"};describe("2.1.3.1: When rejected, a promise: must not transition to any other state.",function(){testRejected(dummy,function(promise,done){var onRejectedCalled=false;promise.then(function onFulfilled(){assert.strictEqual(onRejectedCalled,false);done()},function onRejected(){onRejectedCalled=true});setTimeout(done,100)});specify("trying to reject then immediately fulfill",function(done){var d=deferred();var onRejectedCalled=false;d.promise.then(function onFulfilled(){assert.strictEqual(onRejectedCalled,false);done()},function onRejected(){onRejectedCalled=true});d.reject(dummy);d.resolve(dummy);setTimeout(done,100)});specify("trying to reject then fulfill, delayed",function(done){var d=deferred();var onRejectedCalled=false;d.promise.then(function onFulfilled(){assert.strictEqual(onRejectedCalled,false);done()},function onRejected(){onRejectedCalled=true});setTimeout(function(){d.reject(dummy);d.resolve(dummy)},50);setTimeout(done,100)});specify("trying to reject immediately then fulfill delayed",function(done){var d=deferred();var onRejectedCalled=false;d.promise.then(function onFulfilled(){assert.strictEqual(onRejectedCalled,false);done()},function onRejected(){onRejectedCalled=true});d.reject(dummy);setTimeout(function(){d.resolve(dummy)},50);setTimeout(done,100)})})}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"./helpers/testThreeCases":16,assert:48}],4:[function(require,module,exports){(function(global){"use strict";var adapter=global.adapter;var resolved=adapter.resolved;var rejected=adapter.rejected;var dummy={dummy:"dummy"};describe("2.2.1: Both `onFulfilled` and `onRejected` are optional arguments.",function(){describe("2.2.1.1: If `onFulfilled` is not a function, it must be ignored.",function(){describe("applied to a directly-rejected promise",function(){function testNonFunction(nonFunction,stringRepresentation){specify("`onFulfilled` is "+stringRepresentation,function(done){rejected(dummy).then(nonFunction,function(){done()})})}testNonFunction(undefined,"`undefined`");testNonFunction(null,"`null`");testNonFunction(false,"`false`");testNonFunction(5,"`5`");testNonFunction({},"an object")});describe("applied to a promise rejected and then chained off of",function(){function testNonFunction(nonFunction,stringRepresentation){specify("`onFulfilled` is "+stringRepresentation,function(done){rejected(dummy).then(function(){},undefined).then(nonFunction,function(){done()})})}testNonFunction(undefined,"`undefined`");testNonFunction(null,"`null`");testNonFunction(false,"`false`");testNonFunction(5,"`5`");testNonFunction({},"an object")})});describe("2.2.1.2: If `onRejected` is not a function, it must be ignored.",function(){describe("applied to a directly-fulfilled promise",function(){function testNonFunction(nonFunction,stringRepresentation){specify("`onRejected` is "+stringRepresentation,function(done){resolved(dummy).then(function(){done()},nonFunction)})}testNonFunction(undefined,"`undefined`");testNonFunction(null,"`null`");testNonFunction(false,"`false`");testNonFunction(5,"`5`");testNonFunction({},"an object")});describe("applied to a promise fulfilled and then chained off of",function(){function testNonFunction(nonFunction,stringRepresentation){specify("`onFulfilled` is "+stringRepresentation,function(done){resolved(dummy).then(undefined,function(){}).then(function(){done()},nonFunction)})}testNonFunction(undefined,"`undefined`");testNonFunction(null,"`null`");testNonFunction(false,"`false`");testNonFunction(5,"`5`");testNonFunction({},"an object")})})})}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{}],5:[function(require,module,exports){(function(global){"use strict";var assert=require("assert");var testFulfilled=require("./helpers/testThreeCases").testFulfilled;var adapter=global.adapter;var resolved=adapter.resolved;var deferred=adapter.deferred;var dummy={dummy:"dummy"};var sentinel={sentinel:"sentinel"};describe("2.2.2: If `onFulfilled` is a function,",function(){describe("2.2.2.1: it must be called after `promise` is fulfilled, with `promise`’s fulfillment value as its "+"first argument.",function(){testFulfilled(sentinel,function(promise,done){promise.then(function onFulfilled(value){assert.strictEqual(value,sentinel);done()})})});describe("2.2.2.2: it must not be called before `promise` is fulfilled",function(){specify("fulfilled after a delay",function(done){var d=deferred();var isFulfilled=false;d.promise.then(function onFulfilled(){assert.strictEqual(isFulfilled,true);done()});setTimeout(function(){d.resolve(dummy);isFulfilled=true},50)});specify("never fulfilled",function(done){var d=deferred();var onFulfilledCalled=false;d.promise.then(function onFulfilled(){onFulfilledCalled=true;done()});setTimeout(function(){assert.strictEqual(onFulfilledCalled,false);done()},150)})});describe("2.2.2.3: it must not be called more than once.",function(){specify("already-fulfilled",function(done){var timesCalled=0;resolved(dummy).then(function onFulfilled(){assert.strictEqual(++timesCalled,1);done()})});specify("trying to fulfill a pending promise more than once, immediately",function(done){var d=deferred();var timesCalled=0;d.promise.then(function onFulfilled(){assert.strictEqual(++timesCalled,1);done()});d.resolve(dummy);d.resolve(dummy)});specify("trying to fulfill a pending promise more than once, delayed",function(done){var d=deferred();var timesCalled=0;d.promise.then(function onFulfilled(){assert.strictEqual(++timesCalled,1);done()});setTimeout(function(){d.resolve(dummy);d.resolve(dummy)},50)});specify("trying to fulfill a pending promise more than once, immediately then delayed",function(done){var d=deferred();var timesCalled=0;d.promise.then(function onFulfilled(){assert.strictEqual(++timesCalled,1);done()});d.resolve(dummy);setTimeout(function(){d.resolve(dummy)},50)});specify("when multiple `then` calls are made, spaced apart in time",function(done){var d=deferred();var timesCalled=[0,0,0];d.promise.then(function onFulfilled(){assert.strictEqual(++timesCalled[0],1)});setTimeout(function(){d.promise.then(function onFulfilled(){assert.strictEqual(++timesCalled[1],1)})},50);setTimeout(function(){d.promise.then(function onFulfilled(){assert.strictEqual(++timesCalled[2],1);done()})},100);setTimeout(function(){d.resolve(dummy)},150)});specify("when `then` is interleaved with fulfillment",function(done){var d=deferred();var timesCalled=[0,0];d.promise.then(function onFulfilled(){assert.strictEqual(++timesCalled[0],1)});d.resolve(dummy);d.promise.then(function onFulfilled(){assert.strictEqual(++timesCalled[1],1);done()})})})})}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"./helpers/testThreeCases":16,assert:48}],6:[function(require,module,exports){(function(global){"use strict";var assert=require("assert");var testRejected=require("./helpers/testThreeCases").testRejected;var adapter=global.adapter;var rejected=adapter.rejected;var deferred=adapter.deferred;var dummy={dummy:"dummy"};var sentinel={sentinel:"sentinel"};describe("2.2.3: If `onRejected` is a function,",function(){describe("2.2.3.1: it must be called after `promise` is rejected, with `promise`’s rejection reason as its "+"first argument.",function(){testRejected(sentinel,function(promise,done){promise.then(null,function onRejected(reason){assert.strictEqual(reason,sentinel);done()})})});describe("2.2.3.2: it must not be called before `promise` is rejected",function(){specify("rejected after a delay",function(done){var d=deferred();var isRejected=false;d.promise.then(null,function onRejected(){assert.strictEqual(isRejected,true);done()});setTimeout(function(){d.reject(dummy);isRejected=true},50)});specify("never rejected",function(done){var d=deferred();var onRejectedCalled=false;d.promise.then(null,function onRejected(){onRejectedCalled=true;done()});setTimeout(function(){assert.strictEqual(onRejectedCalled,false);done()},150)})});describe("2.2.3.3: it must not be called more than once.",function(){specify("already-rejected",function(done){var timesCalled=0;rejected(dummy).then(null,function onRejected(){assert.strictEqual(++timesCalled,1);done()})});specify("trying to reject a pending promise more than once, immediately",function(done){var d=deferred();var timesCalled=0;d.promise.then(null,function onRejected(){assert.strictEqual(++timesCalled,1);done()});d.reject(dummy);d.reject(dummy)});specify("trying to reject a pending promise more than once, delayed",function(done){var d=deferred();var timesCalled=0;d.promise.then(null,function onRejected(){assert.strictEqual(++timesCalled,1);done()});setTimeout(function(){d.reject(dummy);d.reject(dummy)},50)});specify("trying to reject a pending promise more than once, immediately then delayed",function(done){var d=deferred();var timesCalled=0;d.promise.then(null,function onRejected(){assert.strictEqual(++timesCalled,1);done()});d.reject(dummy);setTimeout(function(){d.reject(dummy)},50)});specify("when multiple `then` calls are made, spaced apart in time",function(done){var d=deferred();var timesCalled=[0,0,0];d.promise.then(null,function onRejected(){assert.strictEqual(++timesCalled[0],1)});setTimeout(function(){d.promise.then(null,function onRejected(){assert.strictEqual(++timesCalled[1],1)})},50);setTimeout(function(){d.promise.then(null,function onRejected(){assert.strictEqual(++timesCalled[2],1);done()})},100);setTimeout(function(){d.reject(dummy)},150)});specify("when `then` is interleaved with rejection",function(done){var d=deferred();var timesCalled=[0,0];d.promise.then(null,function onRejected(){assert.strictEqual(++timesCalled[0],1)});d.reject(dummy);d.promise.then(null,function onRejected(){assert.strictEqual(++timesCalled[1],1);done()})})})})}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"./helpers/testThreeCases":16,assert:48}],7:[function(require,module,exports){(function(global){"use strict";var assert=require("assert");var testFulfilled=require("./helpers/testThreeCases").testFulfilled;var testRejected=require("./helpers/testThreeCases").testRejected;var adapter=global.adapter;var resolved=adapter.resolved;var rejected=adapter.rejected;var deferred=adapter.deferred;var dummy={dummy:"dummy"};describe("2.2.4: `onFulfilled` or `onRejected` must not be called until the execution context stack contains only "+"platform code.",function(){describe("`then` returns before the promise becomes fulfilled or rejected",function(){testFulfilled(dummy,function(promise,done){var thenHasReturned=false;promise.then(function onFulfilled(){assert.strictEqual(thenHasReturned,true);done()});thenHasReturned=true});testRejected(dummy,function(promise,done){var thenHasReturned=false;promise.then(null,function onRejected(){assert.strictEqual(thenHasReturned,true);done()});thenHasReturned=true})});describe("Clean-stack execution ordering tests (fulfillment case)",function(){specify("when `onFulfilled` is added immediately before the promise is fulfilled",function(){var d=deferred();var onFulfilledCalled=false;d.promise.then(function onFulfilled(){onFulfilledCalled=true});d.resolve(dummy);assert.strictEqual(onFulfilledCalled,false)});specify("when `onFulfilled` is added immediately after the promise is fulfilled",function(){var d=deferred();var onFulfilledCalled=false;d.resolve(dummy);d.promise.then(function onFulfilled(){onFulfilledCalled=true});assert.strictEqual(onFulfilledCalled,false)});specify("when one `onFulfilled` is added inside another `onFulfilled`",function(done){var promise=resolved();var firstOnFulfilledFinished=false;promise.then(function(){promise.then(function(){assert.strictEqual(firstOnFulfilledFinished,true);done()});firstOnFulfilledFinished=true})});specify("when `onFulfilled` is added inside an `onRejected`",function(done){var promise=rejected();var promise2=resolved();var firstOnRejectedFinished=false;promise.then(null,function(){promise2.then(function(){assert.strictEqual(firstOnRejectedFinished,true);done()});firstOnRejectedFinished=true})});specify("when the promise is fulfilled asynchronously",function(done){var d=deferred();var firstStackFinished=false;setTimeout(function(){d.resolve(dummy);firstStackFinished=true},0);d.promise.then(function(){assert.strictEqual(firstStackFinished,true);done()})})});describe("Clean-stack execution ordering tests (rejection case)",function(){specify("when `onRejected` is added immediately before the promise is rejected",function(){var d=deferred();var onRejectedCalled=false;d.promise.then(null,function onRejected(){onRejectedCalled=true});d.reject(dummy);assert.strictEqual(onRejectedCalled,false)});specify("when `onRejected` is added immediately after the promise is rejected",function(){var d=deferred();var onRejectedCalled=false;d.reject(dummy);d.promise.then(null,function onRejected(){onRejectedCalled=true});assert.strictEqual(onRejectedCalled,false)});specify("when `onRejected` is added inside an `onFulfilled`",function(done){var promise=resolved();var promise2=rejected();var firstOnFulfilledFinished=false;promise.then(function(){promise2.then(null,function(){assert.strictEqual(firstOnFulfilledFinished,true);done()});firstOnFulfilledFinished=true})});specify("when one `onRejected` is added inside another `onRejected`",function(done){var promise=rejected();var firstOnRejectedFinished=false;promise.then(null,function(){promise.then(null,function(){assert.strictEqual(firstOnRejectedFinished,true);done()});firstOnRejectedFinished=true})});specify("when the promise is rejected asynchronously",function(done){var d=deferred();var firstStackFinished=false;setTimeout(function(){d.reject(dummy);firstStackFinished=true},0);d.promise.then(null,function(){assert.strictEqual(firstStackFinished,true);done()})})})})}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"./helpers/testThreeCases":16,assert:48}],8:[function(require,module,exports){(function(global){var assert=require("assert");var adapter=global.adapter;var resolved=adapter.resolved;var rejected=adapter.rejected;var dummy={dummy:"dummy"};describe("2.2.5 `onFulfilled` and `onRejected` must be called as functions (i.e. with no `this` value).",function(){describe("strict mode",function(){specify("fulfilled",function(done){resolved(dummy).then(function onFulfilled(){"use strict";assert.strictEqual(this,undefined);done()})});specify("rejected",function(done){rejected(dummy).then(null,function onRejected(){"use strict";assert.strictEqual(this,undefined);done()})})});describe("sloppy mode",function(){specify("fulfilled",function(done){resolved(dummy).then(function onFulfilled(){assert.strictEqual(this,global);done()})});specify("rejected",function(done){rejected(dummy).then(null,function onRejected(){assert.strictEqual(this,global);done()})})})})}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{assert:48}],9:[function(require,module,exports){"use strict";var assert=require("assert");var sinon=require("sinon");var testFulfilled=require("./helpers/testThreeCases").testFulfilled;var testRejected=require("./helpers/testThreeCases").testRejected;var dummy={dummy:"dummy"};var other={other:"other"};var sentinel={sentinel:"sentinel"};var sentinel2={sentinel2:"sentinel2"};var sentinel3={sentinel3:"sentinel3"};function callbackAggregator(times,ultimateCallback){var soFar=0;return function(){if(++soFar===times){ultimateCallback()}}}describe("2.2.6: `then` may be called multiple times on the same promise.",function(){describe("2.2.6.1: If/when `promise` is fulfilled, all respective `onFulfilled` callbacks must execute in the "+"order of their originating calls to `then`.",function(){describe("multiple boring fulfillment handlers",function(){testFulfilled(sentinel,function(promise,done){var handler1=sinon.stub().returns(other);var handler2=sinon.stub().returns(other);var handler3=sinon.stub().returns(other);var spy=sinon.spy();promise.then(handler1,spy);promise.then(handler2,spy);promise.then(handler3,spy);promise.then(function(value){assert.strictEqual(value,sentinel);sinon.assert.calledWith(handler1,sinon.match.same(sentinel));sinon.assert.calledWith(handler2,sinon.match.same(sentinel));sinon.assert.calledWith(handler3,sinon.match.same(sentinel));sinon.assert.notCalled(spy);done()})})});describe("multiple fulfillment handlers, one of which throws",function(){testFulfilled(sentinel,function(promise,done){var handler1=sinon.stub().returns(other);var handler2=sinon.stub().throws(other);var handler3=sinon.stub().returns(other);var spy=sinon.spy();promise.then(handler1,spy);promise.then(handler2,spy);promise.then(handler3,spy);promise.then(function(value){assert.strictEqual(value,sentinel);sinon.assert.calledWith(handler1,sinon.match.same(sentinel));sinon.assert.calledWith(handler2,sinon.match.same(sentinel));sinon.assert.calledWith(handler3,sinon.match.same(sentinel));sinon.assert.notCalled(spy);done()})})});describe("results in multiple branching chains with their own fulfillment values",function(){testFulfilled(dummy,function(promise,done){var semiDone=callbackAggregator(3,done);promise.then(function(){return sentinel}).then(function(value){assert.strictEqual(value,sentinel);semiDone()});promise.then(function(){throw sentinel2}).then(null,function(reason){assert.strictEqual(reason,sentinel2);semiDone()});promise.then(function(){return sentinel3}).then(function(value){assert.strictEqual(value,sentinel3);semiDone()})})});describe("`onFulfilled` handlers are called in the original order",function(){testFulfilled(dummy,function(promise,done){var handler1=sinon.spy(function handler1(){});var handler2=sinon.spy(function handler2(){});var handler3=sinon.spy(function handler3(){});promise.then(handler1);promise.then(handler2);promise.then(handler3);promise.then(function(){sinon.assert.callOrder(handler1,handler2,handler3);done()})});describe("even when one handler is added inside another handler",function(){testFulfilled(dummy,function(promise,done){var handler1=sinon.spy(function handler1(){});var handler2=sinon.spy(function handler2(){});var handler3=sinon.spy(function handler3(){});promise.then(function(){handler1();promise.then(handler3)});promise.then(handler2);promise.then(function(){setTimeout(function(){sinon.assert.callOrder(handler1,handler2,handler3);done()},15)})})})})});describe("2.2.6.2: If/when `promise` is rejected, all respective `onRejected` callbacks must execute in the "+"order of their originating calls to `then`.",function(){describe("multiple boring rejection handlers",function(){testRejected(sentinel,function(promise,done){var handler1=sinon.stub().returns(other);var handler2=sinon.stub().returns(other);var handler3=sinon.stub().returns(other);var spy=sinon.spy();promise.then(spy,handler1);promise.then(spy,handler2);promise.then(spy,handler3);promise.then(null,function(reason){assert.strictEqual(reason,sentinel);sinon.assert.calledWith(handler1,sinon.match.same(sentinel));sinon.assert.calledWith(handler2,sinon.match.same(sentinel));sinon.assert.calledWith(handler3,sinon.match.same(sentinel));sinon.assert.notCalled(spy);done()})})});describe("multiple rejection handlers, one of which throws",function(){testRejected(sentinel,function(promise,done){var handler1=sinon.stub().returns(other);var handler2=sinon.stub().throws(other);var handler3=sinon.stub().returns(other);var spy=sinon.spy();promise.then(spy,handler1);promise.then(spy,handler2);promise.then(spy,handler3);promise.then(null,function(reason){assert.strictEqual(reason,sentinel);sinon.assert.calledWith(handler1,sinon.match.same(sentinel));sinon.assert.calledWith(handler2,sinon.match.same(sentinel));sinon.assert.calledWith(handler3,sinon.match.same(sentinel));sinon.assert.notCalled(spy);done()})})});describe("results in multiple branching chains with their own fulfillment values",function(){testRejected(sentinel,function(promise,done){var semiDone=callbackAggregator(3,done);promise.then(null,function(){return sentinel}).then(function(value){assert.strictEqual(value,sentinel);semiDone()});promise.then(null,function(){throw sentinel2}).then(null,function(reason){assert.strictEqual(reason,sentinel2);semiDone()});promise.then(null,function(){return sentinel3}).then(function(value){assert.strictEqual(value,sentinel3);semiDone()})})});describe("`onRejected` handlers are called in the original order",function(){testRejected(dummy,function(promise,done){var handler1=sinon.spy(function handler1(){});var handler2=sinon.spy(function handler2(){});var handler3=sinon.spy(function handler3(){});promise.then(null,handler1);promise.then(null,handler2);promise.then(null,handler3);promise.then(null,function(){sinon.assert.callOrder(handler1,handler2,handler3);done()})});describe("even when one handler is added inside another handler",function(){testRejected(dummy,function(promise,done){var handler1=sinon.spy(function handler1(){});var handler2=sinon.spy(function handler2(){});var handler3=sinon.spy(function handler3(){});promise.then(null,function(){handler1();promise.then(null,handler3)});promise.then(null,handler2);promise.then(null,function(){setTimeout(function(){sinon.assert.callOrder(handler1,handler2,handler3);done()},15)})})})})})})},{"./helpers/testThreeCases":16,assert:48,sinon:18}],10:[function(require,module,exports){(function(global){"use strict";var assert=require("assert");var testFulfilled=require("./helpers/testThreeCases").testFulfilled;var testRejected=require("./helpers/testThreeCases").testRejected;var reasons=require("./helpers/reasons");var adapter=global.adapter;var deferred=adapter.deferred;var dummy={dummy:"dummy"};var sentinel={sentinel:"sentinel"};var other={other:"other"};describe("2.2.7: `then` must return a promise: `promise2 = promise1.then(onFulfilled, onRejected)`",function(){specify("is a promise",function(){var promise1=deferred().promise;var promise2=promise1.then();assert(typeof promise2==="object"||typeof promise2==="function");assert.notStrictEqual(promise2,null);assert.strictEqual(typeof promise2.then,"function")});describe("2.2.7.1: If either `onFulfilled` or `onRejected` returns a value `x`, run the Promise Resolution "+"Procedure `[[Resolve]](promise2, x)`",function(){specify("see separate 3.3 tests",function(){})});describe("2.2.7.2: If either `onFulfilled` or `onRejected` throws an exception `e`, `promise2` must be rejected "+"with `e` as the reason.",function(){function testReason(expectedReason,stringRepresentation){describe("The reason is "+stringRepresentation,function(){testFulfilled(dummy,function(promise1,done){var promise2=promise1.then(function onFulfilled(){throw expectedReason});promise2.then(null,function onPromise2Rejected(actualReason){assert.strictEqual(actualReason,expectedReason);done()})});testRejected(dummy,function(promise1,done){var promise2=promise1.then(null,function onRejected(){throw expectedReason});promise2.then(null,function onPromise2Rejected(actualReason){assert.strictEqual(actualReason,expectedReason);done()})})})}Object.keys(reasons).forEach(function(stringRepresentation){testReason(reasons[stringRepresentation](),stringRepresentation)})});describe("2.2.7.3: If `onFulfilled` is not a function and `promise1` is fulfilled, `promise2` must be fulfilled "+"with the same value.",function(){function testNonFunction(nonFunction,stringRepresentation){describe("`onFulfilled` is "+stringRepresentation,function(){testFulfilled(sentinel,function(promise1,done){var promise2=promise1.then(nonFunction);promise2.then(function onPromise2Fulfilled(value){assert.strictEqual(value,sentinel);done()})})})}testNonFunction(undefined,"`undefined`");testNonFunction(null,"`null`");testNonFunction(false,"`false`");testNonFunction(5,"`5`");testNonFunction({},"an object");testNonFunction([function(){return other}],"an array containing a function")});describe("2.2.7.4: If `onRejected` is not a function and `promise1` is rejected, `promise2` must be rejected "+"with the same reason.",function(){function testNonFunction(nonFunction,stringRepresentation){describe("`onRejected` is "+stringRepresentation,function(){testRejected(sentinel,function(promise1,done){var promise2=promise1.then(null,nonFunction);promise2.then(null,function onPromise2Rejected(reason){assert.strictEqual(reason,sentinel);done()})})})}testNonFunction(undefined,"`undefined`");testNonFunction(null,"`null`");testNonFunction(false,"`false`");testNonFunction(5,"`5`");testNonFunction({},"an object");testNonFunction([function(){return other}],"an array containing a function")})})}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"./helpers/reasons":15,"./helpers/testThreeCases":16,assert:48}],11:[function(require,module,exports){(function(global){"use strict";var assert=require("assert");var adapter=global.adapter;var resolved=adapter.resolved;var rejected=adapter.rejected;var dummy={dummy:"dummy"};describe("2.3.1: If `promise` and `x` refer to the same object, reject `promise` with a `TypeError' as the reason.",function(){specify("via return from a fulfilled promise",function(done){var promise=resolved(dummy).then(function(){return promise});promise.then(null,function(reason){assert(reason instanceof TypeError);done()})});specify("via return from a rejected promise",function(done){var promise=rejected(dummy).then(null,function(){return promise});promise.then(null,function(reason){assert(reason instanceof TypeError);done()})})})}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{assert:48}],12:[function(require,module,exports){(function(global){"use strict";var assert=require("assert");var adapter=global.adapter;var resolved=adapter.resolved;var rejected=adapter.rejected;var deferred=adapter.deferred;var dummy={dummy:"dummy"};var sentinel={sentinel:"sentinel"};function testPromiseResolution(xFactory,test){specify("via return from a fulfilled promise",function(done){var promise=resolved(dummy).then(function onBasePromiseFulfilled(){return xFactory()});test(promise,done)});specify("via return from a rejected promise",function(done){var promise=rejected(dummy).then(null,function onBasePromiseRejected(){return xFactory()});test(promise,done)})}describe("2.3.2: If `x` is a promise, adopt its state",function(){describe("2.3.2.1: If `x` is pending, `promise` must remain pending until `x` is fulfilled or rejected.",function(){function xFactory(){return deferred().promise}testPromiseResolution(xFactory,function(promise,done){var wasFulfilled=false;var wasRejected=false;promise.then(function onPromiseFulfilled(){wasFulfilled=true},function onPromiseRejected(){wasRejected=true});setTimeout(function(){assert.strictEqual(wasFulfilled,false);assert.strictEqual(wasRejected,false);done()},100)})});describe("2.3.2.2: If/when `x` is fulfilled, fulfill `promise` with the same value.",function(){describe("`x` is already-fulfilled",function(){function xFactory(){return resolved(sentinel)}testPromiseResolution(xFactory,function(promise,done){promise.then(function onPromiseFulfilled(value){assert.strictEqual(value,sentinel);done()})})});describe("`x` is eventually-fulfilled",function(){var d=null;function xFactory(){d=deferred();setTimeout(function(){d.resolve(sentinel)},50);return d.promise}testPromiseResolution(xFactory,function(promise,done){promise.then(function onPromiseFulfilled(value){assert.strictEqual(value,sentinel);done()})})})});describe("2.3.2.3: If/when `x` is rejected, reject `promise` with the same reason.",function(){describe("`x` is already-rejected",function(){function xFactory(){return rejected(sentinel)}testPromiseResolution(xFactory,function(promise,done){promise.then(null,function onPromiseRejected(reason){assert.strictEqual(reason,sentinel);done()})})});describe("`x` is eventually-rejected",function(){var d=null;function xFactory(){d=deferred();setTimeout(function(){d.reject(sentinel)},50);return d.promise}testPromiseResolution(xFactory,function(promise,done){promise.then(null,function onPromiseRejected(reason){assert.strictEqual(reason,sentinel);done()})})})})})}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{assert:48}],13:[function(require,module,exports){(function(global){"use strict";var assert=require("assert");var thenables=require("./helpers/thenables");var reasons=require("./helpers/reasons");var adapter=global.adapter;var resolved=adapter.resolved;var rejected=adapter.rejected;var deferred=adapter.deferred;var dummy={dummy:"dummy"};var sentinel={sentinel:"sentinel"};var other={other:"other"};var sentinelArray=[sentinel];function testPromiseResolution(xFactory,test){specify("via return from a fulfilled promise",function(done){
var promise=resolved(dummy).then(function onBasePromiseFulfilled(){return xFactory()});test(promise,done)});specify("via return from a rejected promise",function(done){var promise=rejected(dummy).then(null,function onBasePromiseRejected(){return xFactory()});test(promise,done)})}function testCallingResolvePromise(yFactory,stringRepresentation,test){describe("`y` is "+stringRepresentation,function(){describe("`then` calls `resolvePromise` synchronously",function(){function xFactory(){return{then:function(resolvePromise){resolvePromise(yFactory())}}}testPromiseResolution(xFactory,test)});describe("`then` calls `resolvePromise` asynchronously",function(){function xFactory(){return{then:function(resolvePromise){setTimeout(function(){resolvePromise(yFactory())},0)}}}testPromiseResolution(xFactory,test)})})}function testCallingRejectPromise(r,stringRepresentation,test){describe("`r` is "+stringRepresentation,function(){describe("`then` calls `rejectPromise` synchronously",function(){function xFactory(){return{then:function(resolvePromise,rejectPromise){rejectPromise(r)}}}testPromiseResolution(xFactory,test)});describe("`then` calls `rejectPromise` asynchronously",function(){function xFactory(){return{then:function(resolvePromise,rejectPromise){setTimeout(function(){rejectPromise(r)},0)}}}testPromiseResolution(xFactory,test)})})}function testCallingResolvePromiseFulfillsWith(yFactory,stringRepresentation,fulfillmentValue){testCallingResolvePromise(yFactory,stringRepresentation,function(promise,done){promise.then(function onPromiseFulfilled(value){assert.strictEqual(value,fulfillmentValue);done()})})}function testCallingResolvePromiseRejectsWith(yFactory,stringRepresentation,rejectionReason){testCallingResolvePromise(yFactory,stringRepresentation,function(promise,done){promise.then(null,function onPromiseRejected(reason){assert.strictEqual(reason,rejectionReason);done()})})}function testCallingRejectPromiseRejectsWith(reason,stringRepresentation){testCallingRejectPromise(reason,stringRepresentation,function(promise,done){promise.then(null,function onPromiseRejected(rejectionReason){assert.strictEqual(rejectionReason,reason);done()})})}describe("2.3.3: Otherwise, if `x` is an object or function,",function(){describe("2.3.3.1: Let `then` be `x.then`",function(){describe("`x` is an object with null prototype",function(){var numberOfTimesThenWasRetrieved=null;beforeEach(function(){numberOfTimesThenWasRetrieved=0});function xFactory(){return Object.create(null,{then:{get:function(){++numberOfTimesThenWasRetrieved;return function thenMethodForX(onFulfilled){onFulfilled()}}}})}testPromiseResolution(xFactory,function(promise,done){promise.then(function(){assert.strictEqual(numberOfTimesThenWasRetrieved,1);done()})})});describe("`x` is an object with normal Object.prototype",function(){var numberOfTimesThenWasRetrieved=null;beforeEach(function(){numberOfTimesThenWasRetrieved=0});function xFactory(){return Object.create(Object.prototype,{then:{get:function(){++numberOfTimesThenWasRetrieved;return function thenMethodForX(onFulfilled){onFulfilled()}}}})}testPromiseResolution(xFactory,function(promise,done){promise.then(function(){assert.strictEqual(numberOfTimesThenWasRetrieved,1);done()})})});describe("`x` is a function",function(){var numberOfTimesThenWasRetrieved=null;beforeEach(function(){numberOfTimesThenWasRetrieved=0});function xFactory(){function x(){}Object.defineProperty(x,"then",{get:function(){++numberOfTimesThenWasRetrieved;return function thenMethodForX(onFulfilled){onFulfilled()}}});return x}testPromiseResolution(xFactory,function(promise,done){promise.then(function(){assert.strictEqual(numberOfTimesThenWasRetrieved,1);done()})})})});describe("2.3.3.2: If retrieving the property `x.then` results in a thrown exception `e`, reject `promise` with "+"`e` as the reason.",function(){function testRejectionViaThrowingGetter(e,stringRepresentation){function xFactory(){return Object.create(Object.prototype,{then:{get:function(){throw e}}})}describe("`e` is "+stringRepresentation,function(){testPromiseResolution(xFactory,function(promise,done){promise.then(null,function(reason){assert.strictEqual(reason,e);done()})})})}Object.keys(reasons).forEach(function(stringRepresentation){testRejectionViaThrowingGetter(reasons[stringRepresentation],stringRepresentation)})});describe("2.3.3.3: If `then` is a function, call it with `x` as `this`, first argument `resolvePromise`, and "+"second argument `rejectPromise`",function(){describe("Calls with `x` as `this` and two function arguments",function(){function xFactory(){var x={then:function(onFulfilled,onRejected){assert.strictEqual(this,x);assert.strictEqual(typeof onFulfilled,"function");assert.strictEqual(typeof onRejected,"function");onFulfilled()}};return x}testPromiseResolution(xFactory,function(promise,done){promise.then(function(){done()})})});describe("Uses the original value of `then`",function(){var numberOfTimesThenWasRetrieved=null;beforeEach(function(){numberOfTimesThenWasRetrieved=0});function xFactory(){return Object.create(Object.prototype,{then:{get:function(){if(numberOfTimesThenWasRetrieved===0){return function(onFulfilled){onFulfilled()}}return null}}})}testPromiseResolution(xFactory,function(promise,done){promise.then(function(){done()})})});describe("2.3.3.3.1: If/when `resolvePromise` is called with value `y`, run `[[Resolve]](promise, y)`",function(){describe("`y` is not a thenable",function(){testCallingResolvePromiseFulfillsWith(function(){return undefined},"`undefined`",undefined);testCallingResolvePromiseFulfillsWith(function(){return null},"`null`",null);testCallingResolvePromiseFulfillsWith(function(){return false},"`false`",false);testCallingResolvePromiseFulfillsWith(function(){return 5},"`5`",5);testCallingResolvePromiseFulfillsWith(function(){return sentinel},"an object",sentinel);testCallingResolvePromiseFulfillsWith(function(){return sentinelArray},"an array",sentinelArray)});describe("`y` is a thenable",function(){Object.keys(thenables.fulfilled).forEach(function(stringRepresentation){function yFactory(){return thenables.fulfilled[stringRepresentation](sentinel)}testCallingResolvePromiseFulfillsWith(yFactory,stringRepresentation,sentinel)});Object.keys(thenables.rejected).forEach(function(stringRepresentation){function yFactory(){return thenables.rejected[stringRepresentation](sentinel)}testCallingResolvePromiseRejectsWith(yFactory,stringRepresentation,sentinel)})});describe("`y` is a thenable for a thenable",function(){Object.keys(thenables.fulfilled).forEach(function(outerStringRepresentation){var outerThenableFactory=thenables.fulfilled[outerStringRepresentation];Object.keys(thenables.fulfilled).forEach(function(innerStringRepresentation){var innerThenableFactory=thenables.fulfilled[innerStringRepresentation];var stringRepresentation=outerStringRepresentation+" for "+innerStringRepresentation;function yFactory(){return outerThenableFactory(innerThenableFactory(sentinel))}testCallingResolvePromiseFulfillsWith(yFactory,stringRepresentation,sentinel)});Object.keys(thenables.rejected).forEach(function(innerStringRepresentation){var innerThenableFactory=thenables.rejected[innerStringRepresentation];var stringRepresentation=outerStringRepresentation+" for "+innerStringRepresentation;function yFactory(){return outerThenableFactory(innerThenableFactory(sentinel))}testCallingResolvePromiseRejectsWith(yFactory,stringRepresentation,sentinel)})})})});describe("2.3.3.3.2: If/when `rejectPromise` is called with reason `r`, reject `promise` with `r`",function(){Object.keys(reasons).forEach(function(stringRepresentation){testCallingRejectPromiseRejectsWith(reasons[stringRepresentation](),stringRepresentation)})});describe("2.3.3.3.3: If both `resolvePromise` and `rejectPromise` are called, or multiple calls to the same "+"argument are made, the first call takes precedence, and any further calls are ignored.",function(){describe("calling `resolvePromise` then `rejectPromise`, both synchronously",function(){function xFactory(){return{then:function(resolvePromise,rejectPromise){resolvePromise(sentinel);rejectPromise(other)}}}testPromiseResolution(xFactory,function(promise,done){promise.then(function(value){assert.strictEqual(value,sentinel);done()})})});describe("calling `resolvePromise` synchronously then `rejectPromise` asynchronously",function(){function xFactory(){return{then:function(resolvePromise,rejectPromise){resolvePromise(sentinel);setTimeout(function(){rejectPromise(other)},0)}}}testPromiseResolution(xFactory,function(promise,done){promise.then(function(value){assert.strictEqual(value,sentinel);done()})})});describe("calling `resolvePromise` then `rejectPromise`, both asynchronously",function(){function xFactory(){return{then:function(resolvePromise,rejectPromise){setTimeout(function(){resolvePromise(sentinel)},0);setTimeout(function(){rejectPromise(other)},0)}}}testPromiseResolution(xFactory,function(promise,done){promise.then(function(value){assert.strictEqual(value,sentinel);done()})})});describe("calling `resolvePromise` with an asynchronously-fulfilled promise, then calling "+"`rejectPromise`, both synchronously",function(){function xFactory(){var d=deferred();setTimeout(function(){d.resolve(sentinel)},50);return{then:function(resolvePromise,rejectPromise){resolvePromise(d.promise);rejectPromise(other)}}}testPromiseResolution(xFactory,function(promise,done){promise.then(function(value){assert.strictEqual(value,sentinel);done()})})});describe("calling `resolvePromise` with an asynchronously-rejected promise, then calling "+"`rejectPromise`, both synchronously",function(){function xFactory(){var d=deferred();setTimeout(function(){d.reject(sentinel)},50);return{then:function(resolvePromise,rejectPromise){resolvePromise(d.promise);rejectPromise(other)}}}testPromiseResolution(xFactory,function(promise,done){promise.then(null,function(reason){assert.strictEqual(reason,sentinel);done()})})});describe("calling `rejectPromise` then `resolvePromise`, both synchronously",function(){function xFactory(){return{then:function(resolvePromise,rejectPromise){rejectPromise(sentinel);resolvePromise(other)}}}testPromiseResolution(xFactory,function(promise,done){promise.then(null,function(reason){assert.strictEqual(reason,sentinel);done()})})});describe("calling `rejectPromise` synchronously then `resolvePromise` asynchronously",function(){function xFactory(){return{then:function(resolvePromise,rejectPromise){rejectPromise(sentinel);setTimeout(function(){resolvePromise(other)},0)}}}testPromiseResolution(xFactory,function(promise,done){promise.then(null,function(reason){assert.strictEqual(reason,sentinel);done()})})});describe("calling `rejectPromise` then `resolvePromise`, both asynchronously",function(){function xFactory(){return{then:function(resolvePromise,rejectPromise){setTimeout(function(){rejectPromise(sentinel)},0);setTimeout(function(){resolvePromise(other)},0)}}}testPromiseResolution(xFactory,function(promise,done){promise.then(null,function(reason){assert.strictEqual(reason,sentinel);done()})})});describe("calling `resolvePromise` twice synchronously",function(){function xFactory(){return{then:function(resolvePromise){resolvePromise(sentinel);resolvePromise(other)}}}testPromiseResolution(xFactory,function(promise,done){promise.then(function(value){assert.strictEqual(value,sentinel);done()})})});describe("calling `resolvePromise` twice, first synchronously then asynchronously",function(){function xFactory(){return{then:function(resolvePromise){resolvePromise(sentinel);setTimeout(function(){resolvePromise(other)},0)}}}testPromiseResolution(xFactory,function(promise,done){promise.then(function(value){assert.strictEqual(value,sentinel);done()})})});describe("calling `resolvePromise` twice, both times asynchronously",function(){function xFactory(){return{then:function(resolvePromise){setTimeout(function(){resolvePromise(sentinel)},0);setTimeout(function(){resolvePromise(other)},0)}}}testPromiseResolution(xFactory,function(promise,done){promise.then(function(value){assert.strictEqual(value,sentinel);done()})})});describe("calling `resolvePromise` with an asynchronously-fulfilled promise, then calling it again, both "+"times synchronously",function(){function xFactory(){var d=deferred();setTimeout(function(){d.resolve(sentinel)},50);return{then:function(resolvePromise){resolvePromise(d.promise);resolvePromise(other)}}}testPromiseResolution(xFactory,function(promise,done){promise.then(function(value){assert.strictEqual(value,sentinel);done()})})});describe("calling `resolvePromise` with an asynchronously-rejected promise, then calling it again, both "+"times synchronously",function(){function xFactory(){var d=deferred();setTimeout(function(){d.reject(sentinel)},50);return{then:function(resolvePromise){resolvePromise(d.promise);resolvePromise(other)}}}testPromiseResolution(xFactory,function(promise,done){promise.then(null,function(reason){assert.strictEqual(reason,sentinel);done()})})});describe("calling `rejectPromise` twice synchronously",function(){function xFactory(){return{then:function(resolvePromise,rejectPromise){rejectPromise(sentinel);rejectPromise(other)}}}testPromiseResolution(xFactory,function(promise,done){promise.then(null,function(reason){assert.strictEqual(reason,sentinel);done()})})});describe("calling `rejectPromise` twice, first synchronously then asynchronously",function(){function xFactory(){return{then:function(resolvePromise,rejectPromise){rejectPromise(sentinel);setTimeout(function(){rejectPromise(other)},0)}}}testPromiseResolution(xFactory,function(promise,done){promise.then(null,function(reason){assert.strictEqual(reason,sentinel);done()})})});describe("calling `rejectPromise` twice, both times asynchronously",function(){function xFactory(){return{then:function(resolvePromise,rejectPromise){setTimeout(function(){rejectPromise(sentinel)},0);setTimeout(function(){rejectPromise(other)},0)}}}testPromiseResolution(xFactory,function(promise,done){promise.then(null,function(reason){assert.strictEqual(reason,sentinel);done()})})});describe("saving and abusing `resolvePromise` and `rejectPromise`",function(){var savedResolvePromise,savedRejectPromise;function xFactory(){return{then:function(resolvePromise,rejectPromise){savedResolvePromise=resolvePromise;savedRejectPromise=rejectPromise}}}beforeEach(function(){savedResolvePromise=null;savedRejectPromise=null});testPromiseResolution(xFactory,function(promise,done){var timesFulfilled=0;var timesRejected=0;promise.then(function(){++timesFulfilled},function(){++timesRejected});if(savedResolvePromise&&savedRejectPromise){savedResolvePromise(dummy);savedResolvePromise(dummy);savedRejectPromise(dummy);savedRejectPromise(dummy)}setTimeout(function(){savedResolvePromise(dummy);savedResolvePromise(dummy);savedRejectPromise(dummy);savedRejectPromise(dummy)},50);setTimeout(function(){assert.strictEqual(timesFulfilled,1);assert.strictEqual(timesRejected,0);done()},100)})})});describe("2.3.3.3.4: If calling `then` throws an exception `e`,",function(){describe("2.3.3.3.4.1: If `resolvePromise` or `rejectPromise` have been called, ignore it.",function(){describe("`resolvePromise` was called with a non-thenable",function(){function xFactory(){return{then:function(resolvePromise){resolvePromise(sentinel);throw other}}}testPromiseResolution(xFactory,function(promise,done){promise.then(function(value){assert.strictEqual(value,sentinel);done()})})});describe("`resolvePromise` was called with an asynchronously-fulfilled promise",function(){function xFactory(){var d=deferred();setTimeout(function(){d.resolve(sentinel)},50);return{then:function(resolvePromise){resolvePromise(d.promise);throw other}}}testPromiseResolution(xFactory,function(promise,done){promise.then(function(value){assert.strictEqual(value,sentinel);done()})})});describe("`resolvePromise` was called with an asynchronously-rejected promise",function(){function xFactory(){var d=deferred();setTimeout(function(){d.reject(sentinel)},50);return{then:function(resolvePromise){resolvePromise(d.promise);throw other}}}testPromiseResolution(xFactory,function(promise,done){promise.then(null,function(reason){assert.strictEqual(reason,sentinel);done()})})});describe("`rejectPromise` was called",function(){function xFactory(){return{then:function(resolvePromise,rejectPromise){rejectPromise(sentinel);throw other}}}testPromiseResolution(xFactory,function(promise,done){promise.then(null,function(reason){assert.strictEqual(reason,sentinel);done()})})});describe("`resolvePromise` then `rejectPromise` were called",function(){function xFactory(){return{then:function(resolvePromise,rejectPromise){resolvePromise(sentinel);rejectPromise(other);throw other}}}testPromiseResolution(xFactory,function(promise,done){promise.then(function(value){assert.strictEqual(value,sentinel);done()})})});describe("`rejectPromise` then `resolvePromise` were called",function(){function xFactory(){return{then:function(resolvePromise,rejectPromise){rejectPromise(sentinel);resolvePromise(other);throw other}}}testPromiseResolution(xFactory,function(promise,done){promise.then(null,function(reason){assert.strictEqual(reason,sentinel);done()})})})});describe("2.3.3.3.4.2: Otherwise, reject `promise` with `e` as the reason.",function(){describe("straightforward case",function(){function xFactory(){return{then:function(){throw sentinel}}}testPromiseResolution(xFactory,function(promise,done){promise.then(null,function(reason){assert.strictEqual(reason,sentinel);done()})})});describe("`resolvePromise` is called asynchronously before the `throw`",function(){function xFactory(){return{then:function(resolvePromise){setTimeout(function(){resolvePromise(other)},0);throw sentinel}}}testPromiseResolution(xFactory,function(promise,done){promise.then(null,function(reason){assert.strictEqual(reason,sentinel);done()})})});describe("`rejectPromise` is called asynchronously before the `throw`",function(){function xFactory(){return{then:function(resolvePromise,rejectPromise){setTimeout(function(){rejectPromise(other)},0);throw sentinel}}}testPromiseResolution(xFactory,function(promise,done){promise.then(null,function(reason){assert.strictEqual(reason,sentinel);done()})})})})})});describe("2.3.3.4: If `then` is not a function, fulfill promise with `x`",function(){function testFulfillViaNonFunction(then,stringRepresentation){var x=null;beforeEach(function(){x={then:then}});function xFactory(){return x}describe("`then` is "+stringRepresentation,function(){testPromiseResolution(xFactory,function(promise,done){promise.then(function(value){assert.strictEqual(value,x);done()})})})}testFulfillViaNonFunction(5,"`5`");testFulfillViaNonFunction({},"an object");testFulfillViaNonFunction([function(){}],"an array containing a function");testFulfillViaNonFunction(/a-b/i,"a regular expression");testFulfillViaNonFunction(Object.create(Function.prototype),"an object inheriting from `Function.prototype`")})})}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"./helpers/reasons":15,"./helpers/thenables":17,assert:48}],14:[function(require,module,exports){"use strict";var assert=require("assert");var testFulfilled=require("./helpers/testThreeCases").testFulfilled;var testRejected=require("./helpers/testThreeCases").testRejected;var dummy={dummy:"dummy"};describe("2.3.4: If `x` is not an object or function, fulfill `promise` with `x`",function(){function testValue(expectedValue,stringRepresentation,beforeEachHook,afterEachHook){describe("The value is "+stringRepresentation,function(){if(typeof beforeEachHook==="function"){beforeEach(beforeEachHook)}if(typeof afterEachHook==="function"){afterEach(afterEachHook)}testFulfilled(dummy,function(promise1,done){var promise2=promise1.then(function onFulfilled(){return expectedValue});promise2.then(function onPromise2Fulfilled(actualValue){assert.strictEqual(actualValue,expectedValue);done()})});testRejected(dummy,function(promise1,done){var promise2=promise1.then(null,function onRejected(){return expectedValue});promise2.then(function onPromise2Fulfilled(actualValue){assert.strictEqual(actualValue,expectedValue);done()})})})}testValue(undefined,"`undefined`");testValue(null,"`null`");testValue(false,"`false`");testValue(true,"`true`");testValue(0,"`0`");testValue(true,"`true` with `Boolean.prototype` modified to have a `then` method",function(){Boolean.prototype.then=function(){}},function(){delete Boolean.prototype.then});testValue(1,"`1` with `Number.prototype` modified to have a `then` method",function(){Number.prototype.then=function(){}},function(){delete Number.prototype.then})})},{"./helpers/testThreeCases":16,assert:48}],15:[function(require,module,exports){(function(global){"use strict";var adapter=global.adapter;var resolved=adapter.resolved;var rejected=adapter.rejected;var dummy={dummy:"dummy"};exports["`undefined`"]=function(){return undefined};exports["`null`"]=function(){return null};exports["`false`"]=function(){return false};exports["`0`"]=function(){return 0};exports["an error"]=function(){return new Error};exports["an error without a stack"]=function(){var error=new Error;delete error.stack;return error};exports["a date"]=function(){return new Date};exports["an object"]=function(){return{}};exports["an always-pending thenable"]=function(){return{then:function(){}}};exports["a fulfilled promise"]=function(){return resolved(dummy)};exports["a rejected promise"]=function(){return rejected(dummy)}}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{}],16:[function(require,module,exports){(function(global){"use strict";var adapter=global.adapter;var resolved=adapter.resolved;var rejected=adapter.rejected;var deferred=adapter.deferred;exports.testFulfilled=function(value,test){specify("already-fulfilled",function(done){test(resolved(value),done)});specify("immediately-fulfilled",function(done){var d=deferred();test(d.promise,done);d.resolve(value)});specify("eventually-fulfilled",function(done){var d=deferred();test(d.promise,done);setTimeout(function(){d.resolve(value)},50)})};exports.testRejected=function(reason,test){specify("already-rejected",function(done){test(rejected(reason),done)});specify("immediately-rejected",function(done){var d=deferred();test(d.promise,done);d.reject(reason)});specify("eventually-rejected",function(done){var d=deferred();test(d.promise,done);setTimeout(function(){d.reject(reason)},50)})}}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{}],17:[function(require,module,exports){(function(global){"use strict";var adapter=global.adapter;var resolved=adapter.resolved;var rejected=adapter.rejected;var deferred=adapter.deferred;var other={other:"other"};exports.fulfilled={"a synchronously-fulfilled custom thenable":function(value){return{then:function(onFulfilled){onFulfilled(value)}}},"an asynchronously-fulfilled custom thenable":function(value){return{then:function(onFulfilled){setTimeout(function(){onFulfilled(value)},0)}}},"a synchronously-fulfilled one-time thenable":function(value){var numberOfTimesThenRetrieved=0;return Object.create(null,{then:{get:function(){if(numberOfTimesThenRetrieved===0){++numberOfTimesThenRetrieved;return function(onFulfilled){onFulfilled(value)}}return null}}})},"a thenable that tries to fulfill twice":function(value){return{then:function(onFulfilled){onFulfilled(value);onFulfilled(other)}}},"a thenable that fulfills but then throws":function(value){return{then:function(onFulfilled){onFulfilled(value);throw other}}},"an already-fulfilled promise":function(value){return resolved(value)},"an eventually-fulfilled promise":function(value){var d=deferred();setTimeout(function(){d.resolve(value)},50);return d.promise}};exports.rejected={"a synchronously-rejected custom thenable":function(reason){return{then:function(onFulfilled,onRejected){onRejected(reason)}}},"an asynchronously-rejected custom thenable":function(reason){return{then:function(onFulfilled,onRejected){setTimeout(function(){onRejected(reason)},0)}}},"a synchronously-rejected one-time thenable":function(reason){var numberOfTimesThenRetrieved=0;return Object.create(null,{then:{get:function(){if(numberOfTimesThenRetrieved===0){++numberOfTimesThenRetrieved;return function(onFulfilled,onRejected){onRejected(reason)}}return null}}})},"a thenable that immediately throws in `then`":function(reason){return{then:function(){throw reason}}},"an object with a throwing `then` accessor":function(reason){return Object.create(null,{then:{get:function(){throw reason}}})},"an already-rejected promise":function(reason){return rejected(reason)},"an eventually-rejected promise":function(reason){var d=deferred();setTimeout(function(){d.reject(reason)},50);return d.promise}}}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{}],18:[function(require,module,exports){var sinon=function(){"use strict";var sinonModule;var isNode=typeof module!=="undefined"&&module.exports&&typeof require==="function";var isAMD=typeof define==="function"&&typeof define.amd==="object"&&define.amd;function loadDependencies(require,exports,module){sinonModule=module.exports=require("./sinon/util/core");require("./sinon/extend");require("./sinon/walk");require("./sinon/typeOf");require("./sinon/times_in_words");require("./sinon/spy");require("./sinon/call");require("./sinon/behavior");require("./sinon/stub");require("./sinon/mock");require("./sinon/collection");require("./sinon/assert");require("./sinon/sandbox");require("./sinon/test");require("./sinon/test_case");require("./sinon/match");require("./sinon/format");require("./sinon/log_error")}if(isAMD){define(loadDependencies)}else if(isNode){loadDependencies(require,module.exports,module);sinonModule=module.exports}else{sinonModule={}}return sinonModule}()},{"./sinon/assert":19,"./sinon/behavior":20,"./sinon/call":21,"./sinon/collection":22,"./sinon/extend":23,"./sinon/format":24,"./sinon/log_error":25,"./sinon/match":26,"./sinon/mock":27,"./sinon/sandbox":28,"./sinon/spy":29,"./sinon/stub":30,"./sinon/test":31,"./sinon/test_case":32,"./sinon/times_in_words":33,"./sinon/typeOf":34,"./sinon/util/core":35,"./sinon/walk":42}],19:[function(require,module,exports){(function(global){(function(sinonGlobal,global){"use strict";var slice=Array.prototype.slice;function makeApi(sinon){var assert;function verifyIsStub(){var method;for(var i=0,l=arguments.length;i<l;++i){method=arguments[i];if(!method){assert.fail("fake is not a spy")}if(method.proxy&&method.proxy.isSinonProxy){verifyIsStub(method.proxy)}else{if(typeof method!=="function"){assert.fail(method+" is not a function")}if(typeof method.getCall!=="function"){assert.fail(method+" is not stubbed")}}}}function failAssertion(object,msg){object=object||global;var failMethod=object.fail||assert.fail;failMethod.call(object,msg)}function mirrorPropAsAssertion(name,method,message){if(arguments.length===2){message=method;method=name}assert[name]=function(fake){verifyIsStub(fake);var args=slice.call(arguments,1);var failed=false;if(typeof method==="function"){failed=!method(fake)}else{failed=typeof fake[method]==="function"?!fake[method].apply(fake,args):!fake[method]}if(failed){failAssertion(this,(fake.printf||fake.proxy.printf).apply(fake,[message].concat(args)))}else{assert.pass(name)}}}function exposedName(prefix,prop){return!prefix||/^fail/.test(prop)?prop:prefix+prop.slice(0,1).toUpperCase()+prop.slice(1)}assert={failException:"AssertError",fail:function fail(message){var error=new Error(message);error.name=this.failException||assert.failException;throw error},pass:function pass(){},callOrder:function assertCallOrder(){verifyIsStub.apply(null,arguments);var expected="";var actual="";if(!sinon.calledInOrder(arguments)){try{expected=[].join.call(arguments,", ");var calls=slice.call(arguments);var i=calls.length;while(i){if(!calls[--i].called){calls.splice(i,1)}}actual=sinon.orderByFirstCall(calls).join(", ")}catch(e){}failAssertion(this,"expected "+expected+" to be "+"called in order but were called as "+actual)}else{assert.pass("callOrder")}},callCount:function assertCallCount(method,count){verifyIsStub(method);if(method.callCount!==count){var msg="expected %n to be called "+sinon.timesInWords(count)+" but was called %c%C";failAssertion(this,method.printf(msg))}else{assert.pass("callCount")}},expose:function expose(target,options){if(!target){throw new TypeError("target is null or undefined")}var o=options||{};var prefix=typeof o.prefix==="undefined"&&"assert"||o.prefix;var includeFail=typeof o.includeFail==="undefined"||!!o.includeFail;for(var method in this){if(method!=="expose"&&(includeFail||!/^(fail)/.test(method))){target[exposedName(prefix,method)]=this[method]}}return target},match:function match(actual,expectation){var matcher=sinon.match(expectation);if(matcher.test(actual)){assert.pass("match")}else{var formatted=["expected value to match"," expected = "+sinon.format(expectation)," actual = "+sinon.format(actual)];failAssertion(this,formatted.join("\n"))}}};mirrorPropAsAssertion("called","expected %n to have been called at least once but was never called");mirrorPropAsAssertion("notCalled",function(spy){return!spy.called},"expected %n to not have been called but was called %c%C");mirrorPropAsAssertion("calledOnce","expected %n to be called once but was called %c%C");mirrorPropAsAssertion("calledTwice","expected %n to be called twice but was called %c%C");mirrorPropAsAssertion("calledThrice","expected %n to be called thrice but was called %c%C");mirrorPropAsAssertion("calledOn","expected %n to be called with %1 as this but was called with %t");mirrorPropAsAssertion("alwaysCalledOn","expected %n to always be called with %1 as this but was called with %t");mirrorPropAsAssertion("calledWithNew","expected %n to be called with new");mirrorPropAsAssertion("alwaysCalledWithNew","expected %n to always be called with new");mirrorPropAsAssertion("calledWith","expected %n to be called with arguments %*%C");mirrorPropAsAssertion("calledWithMatch","expected %n to be called with match %*%C");mirrorPropAsAssertion("alwaysCalledWith","expected %n to always be called with arguments %*%C");mirrorPropAsAssertion("alwaysCalledWithMatch","expected %n to always be called with match %*%C");mirrorPropAsAssertion("calledWithExactly","expected %n to be called with exact arguments %*%C");mirrorPropAsAssertion("alwaysCalledWithExactly","expected %n to always be called with exact arguments %*%C");mirrorPropAsAssertion("neverCalledWith","expected %n to never be called with arguments %*%C");mirrorPropAsAssertion("neverCalledWithMatch","expected %n to never be called with match %*%C");mirrorPropAsAssertion("threw","%n did not throw exception%C");mirrorPropAsAssertion("alwaysThrew","%n did not always throw exception%C");sinon.assert=assert;return assert}var isNode=typeof module!=="undefined"&&module.exports&&typeof require==="function";var isAMD=typeof define==="function"&&typeof define.amd==="object"&&define.amd;function loadDependencies(require,exports,module){var sinon=require("./util/core");require("./match");require("./format");module.exports=makeApi(sinon)}if(isAMD){define(loadDependencies);return}if(isNode){loadDependencies(require,module.exports,module);return}if(sinonGlobal){makeApi(sinonGlobal)}})(typeof sinon==="object"&&sinon,typeof global!=="undefined"?global:self)}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"./format":24,"./match":26,"./util/core":35}],20:[function(require,module,exports){(function(process){(function(sinonGlobal){"use strict";var slice=Array.prototype.slice;var join=Array.prototype.join;var useLeftMostCallback=-1;var useRightMostCallback=-2;var nextTick=function(){if(typeof process==="object"&&typeof process.nextTick==="function"){return process.nextTick;
}if(typeof setImmediate==="function"){return setImmediate}return function(callback){setTimeout(callback,0)}}();function throwsException(error,message){if(typeof error==="string"){this.exception=new Error(message||"");this.exception.name=error}else if(!error){this.exception=new Error("Error")}else{this.exception=error}return this}function getCallback(behavior,args){var callArgAt=behavior.callArgAt;if(callArgAt>=0){return args[callArgAt]}var argumentList;if(callArgAt===useLeftMostCallback){argumentList=args}if(callArgAt===useRightMostCallback){argumentList=slice.call(args).reverse()}var callArgProp=behavior.callArgProp;for(var i=0,l=argumentList.length;i<l;++i){if(!callArgProp&&typeof argumentList[i]==="function"){return argumentList[i]}if(callArgProp&&argumentList[i]&&typeof argumentList[i][callArgProp]==="function"){return argumentList[i][callArgProp]}}return null}function makeApi(sinon){function getCallbackError(behavior,func,args){if(behavior.callArgAt<0){var msg;if(behavior.callArgProp){msg=sinon.functionName(behavior.stub)+" expected to yield to '"+behavior.callArgProp+"', but no object with such a property was passed."}else{msg=sinon.functionName(behavior.stub)+" expected to yield, but no callback was passed."}if(args.length>0){msg+=" Received ["+join.call(args,", ")+"]"}return msg}return"argument at index "+behavior.callArgAt+" is not a function: "+func}function callCallback(behavior,args){if(typeof behavior.callArgAt==="number"){var func=getCallback(behavior,args);if(typeof func!=="function"){throw new TypeError(getCallbackError(behavior,func,args))}if(behavior.callbackAsync){nextTick(function(){func.apply(behavior.callbackContext,behavior.callbackArguments)})}else{func.apply(behavior.callbackContext,behavior.callbackArguments)}}}var proto={create:function create(stub){var behavior=sinon.extend({},sinon.behavior);delete behavior.create;behavior.stub=stub;return behavior},isPresent:function isPresent(){return typeof this.callArgAt==="number"||this.exception||typeof this.returnArgAt==="number"||this.returnThis||this.returnValueDefined},invoke:function invoke(context,args){callCallback(this,args);if(this.exception){throw this.exception}else if(typeof this.returnArgAt==="number"){return args[this.returnArgAt]}else if(this.returnThis){return context}return this.returnValue},onCall:function onCall(index){return this.stub.onCall(index)},onFirstCall:function onFirstCall(){return this.stub.onFirstCall()},onSecondCall:function onSecondCall(){return this.stub.onSecondCall()},onThirdCall:function onThirdCall(){return this.stub.onThirdCall()},withArgs:function withArgs(){throw new Error('Defining a stub by invoking "stub.onCall(...).withArgs(...)" '+'is not supported. Use "stub.withArgs(...).onCall(...)" '+"to define sequential behavior for calls with certain arguments.")},callsArg:function callsArg(pos){if(typeof pos!=="number"){throw new TypeError("argument index is not number")}this.callArgAt=pos;this.callbackArguments=[];this.callbackContext=undefined;this.callArgProp=undefined;this.callbackAsync=false;return this},callsArgOn:function callsArgOn(pos,context){if(typeof pos!=="number"){throw new TypeError("argument index is not number")}if(typeof context!=="object"){throw new TypeError("argument context is not an object")}this.callArgAt=pos;this.callbackArguments=[];this.callbackContext=context;this.callArgProp=undefined;this.callbackAsync=false;return this},callsArgWith:function callsArgWith(pos){if(typeof pos!=="number"){throw new TypeError("argument index is not number")}this.callArgAt=pos;this.callbackArguments=slice.call(arguments,1);this.callbackContext=undefined;this.callArgProp=undefined;this.callbackAsync=false;return this},callsArgOnWith:function callsArgWith(pos,context){if(typeof pos!=="number"){throw new TypeError("argument index is not number")}if(typeof context!=="object"){throw new TypeError("argument context is not an object")}this.callArgAt=pos;this.callbackArguments=slice.call(arguments,2);this.callbackContext=context;this.callArgProp=undefined;this.callbackAsync=false;return this},yields:function(){this.callArgAt=useLeftMostCallback;this.callbackArguments=slice.call(arguments,0);this.callbackContext=undefined;this.callArgProp=undefined;this.callbackAsync=false;return this},yieldsRight:function(){this.callArgAt=useRightMostCallback;this.callbackArguments=slice.call(arguments,0);this.callbackContext=undefined;this.callArgProp=undefined;this.callbackAsync=false;return this},yieldsOn:function(context){if(typeof context!=="object"){throw new TypeError("argument context is not an object")}this.callArgAt=useLeftMostCallback;this.callbackArguments=slice.call(arguments,1);this.callbackContext=context;this.callArgProp=undefined;this.callbackAsync=false;return this},yieldsTo:function(prop){this.callArgAt=useLeftMostCallback;this.callbackArguments=slice.call(arguments,1);this.callbackContext=undefined;this.callArgProp=prop;this.callbackAsync=false;return this},yieldsToOn:function(prop,context){if(typeof context!=="object"){throw new TypeError("argument context is not an object")}this.callArgAt=useLeftMostCallback;this.callbackArguments=slice.call(arguments,2);this.callbackContext=context;this.callArgProp=prop;this.callbackAsync=false;return this},"throws":throwsException,throwsException:throwsException,returns:function returns(value){this.returnValue=value;this.returnValueDefined=true;this.exception=undefined;return this},returnsArg:function returnsArg(pos){if(typeof pos!=="number"){throw new TypeError("argument index is not number")}this.returnArgAt=pos;return this},returnsThis:function returnsThis(){this.returnThis=true;return this}};function createAsyncVersion(syncFnName){return function(){var result=this[syncFnName].apply(this,arguments);this.callbackAsync=true;return result}}for(var method in proto){if(proto.hasOwnProperty(method)&&method.match(/^(callsArg|yields)/)&&!method.match(/Async/)){proto[method+"Async"]=createAsyncVersion(method)}}sinon.behavior=proto;return proto}var isNode=typeof module!=="undefined"&&module.exports&&typeof require==="function";var isAMD=typeof define==="function"&&typeof define.amd==="object"&&define.amd;function loadDependencies(require,exports,module){var sinon=require("./util/core");require("./extend");module.exports=makeApi(sinon)}if(isAMD){define(loadDependencies);return}if(isNode){loadDependencies(require,module.exports,module);return}if(sinonGlobal){makeApi(sinonGlobal)}})(typeof sinon==="object"&&sinon)}).call(this,require("_process"))},{"./extend":23,"./util/core":35,_process:54}],21:[function(require,module,exports){(function(sinonGlobal){"use strict";var slice=Array.prototype.slice;function makeApi(sinon){function throwYieldError(proxy,text,args){var msg=sinon.functionName(proxy)+text;if(args.length){msg+=" Received ["+slice.call(args).join(", ")+"]"}throw new Error(msg)}var callProto={calledOn:function calledOn(thisValue){if(sinon.match&&sinon.match.isMatcher(thisValue)){return thisValue.test(this.thisValue)}return this.thisValue===thisValue},calledWith:function calledWith(){var l=arguments.length;if(l>this.args.length){return false}for(var i=0;i<l;i+=1){if(!sinon.deepEqual(arguments[i],this.args[i])){return false}}return true},calledWithMatch:function calledWithMatch(){var l=arguments.length;if(l>this.args.length){return false}for(var i=0;i<l;i+=1){var actual=this.args[i];var expectation=arguments[i];if(!sinon.match||!sinon.match(expectation).test(actual)){return false}}return true},calledWithExactly:function calledWithExactly(){return arguments.length===this.args.length&&this.calledWith.apply(this,arguments)},notCalledWith:function notCalledWith(){return!this.calledWith.apply(this,arguments)},notCalledWithMatch:function notCalledWithMatch(){return!this.calledWithMatch.apply(this,arguments)},returned:function returned(value){return sinon.deepEqual(value,this.returnValue)},threw:function threw(error){if(typeof error==="undefined"||!this.exception){return!!this.exception}return this.exception===error||this.exception.name===error},calledWithNew:function calledWithNew(){return this.proxy.prototype&&this.thisValue instanceof this.proxy},calledBefore:function(other){return this.callId<other.callId},calledAfter:function(other){return this.callId>other.callId},callArg:function(pos){this.args[pos]()},callArgOn:function(pos,thisValue){this.args[pos].apply(thisValue)},callArgWith:function(pos){this.callArgOnWith.apply(this,[pos,null].concat(slice.call(arguments,1)))},callArgOnWith:function(pos,thisValue){var args=slice.call(arguments,2);this.args[pos].apply(thisValue,args)},"yield":function(){this.yieldOn.apply(this,[null].concat(slice.call(arguments,0)))},yieldOn:function(thisValue){var args=this.args;for(var i=0,l=args.length;i<l;++i){if(typeof args[i]==="function"){args[i].apply(thisValue,slice.call(arguments,1));return}}throwYieldError(this.proxy," cannot yield since no callback was passed.",args)},yieldTo:function(prop){this.yieldToOn.apply(this,[prop,null].concat(slice.call(arguments,1)))},yieldToOn:function(prop,thisValue){var args=this.args;for(var i=0,l=args.length;i<l;++i){if(args[i]&&typeof args[i][prop]==="function"){args[i][prop].apply(thisValue,slice.call(arguments,2));return}}throwYieldError(this.proxy," cannot yield to '"+prop+"' since no callback was passed.",args)},getStackFrames:function(){return this.stack&&this.stack.split("\n").slice(3)},toString:function(){var callStr=this.proxy?this.proxy.toString()+"(":"";var args=[];if(!this.args){return":("}for(var i=0,l=this.args.length;i<l;++i){args.push(sinon.format(this.args[i]))}callStr=callStr+args.join(", ")+")";if(typeof this.returnValue!=="undefined"){callStr+=" => "+sinon.format(this.returnValue)}if(this.exception){callStr+=" !"+this.exception.name;if(this.exception.message){callStr+="("+this.exception.message+")"}}if(this.stack){callStr+=this.getStackFrames()[0].replace(/^\s*(?:at\s+|@)?/," at ")}return callStr}};callProto.invokeCallback=callProto.yield;function createSpyCall(spy,thisValue,args,returnValue,exception,id,stack){if(typeof id!=="number"){throw new TypeError("Call id is not a number")}var proxyCall=sinon.create(callProto);proxyCall.proxy=spy;proxyCall.thisValue=thisValue;proxyCall.args=args;proxyCall.returnValue=returnValue;proxyCall.exception=exception;proxyCall.callId=id;proxyCall.stack=stack;return proxyCall}createSpyCall.toString=callProto.toString;sinon.spyCall=createSpyCall;return createSpyCall}var isNode=typeof module!=="undefined"&&module.exports&&typeof require==="function";var isAMD=typeof define==="function"&&typeof define.amd==="object"&&define.amd;function loadDependencies(require,exports,module){var sinon=require("./util/core");require("./match");require("./format");module.exports=makeApi(sinon)}if(isAMD){define(loadDependencies);return}if(isNode){loadDependencies(require,module.exports,module);return}if(sinonGlobal){makeApi(sinonGlobal)}})(typeof sinon==="object"&&sinon)},{"./format":24,"./match":26,"./util/core":35}],22:[function(require,module,exports){(function(sinonGlobal){"use strict";var push=[].push;var hasOwnProperty=Object.prototype.hasOwnProperty;function getFakes(fakeCollection){if(!fakeCollection.fakes){fakeCollection.fakes=[]}return fakeCollection.fakes}function each(fakeCollection,method){var fakes=getFakes(fakeCollection);for(var i=0,l=fakes.length;i<l;i+=1){if(typeof fakes[i][method]==="function"){fakes[i][method]()}}}function compact(fakeCollection){var fakes=getFakes(fakeCollection);var i=0;while(i<fakes.length){fakes.splice(i,1)}}function makeApi(sinon){var collection={verify:function resolve(){each(this,"verify")},restore:function restore(){each(this,"restore");compact(this)},reset:function restore(){each(this,"reset")},verifyAndRestore:function verifyAndRestore(){var exception;try{this.verify()}catch(e){exception=e}this.restore();if(exception){throw exception}},add:function add(fake){push.call(getFakes(this),fake);return fake},spy:function spy(){return this.add(sinon.spy.apply(sinon,arguments))},stub:function stub(object,property,value){if(property){var original=object[property];if(typeof original!=="function"){if(!hasOwnProperty.call(object,property)){throw new TypeError("Cannot stub non-existent own property "+property)}object[property]=value;return this.add({restore:function(){object[property]=original}})}}if(!property&&!!object&&typeof object==="object"){var stubbedObj=sinon.stub.apply(sinon,arguments);for(var prop in stubbedObj){if(typeof stubbedObj[prop]==="function"){this.add(stubbedObj[prop])}}return stubbedObj}return this.add(sinon.stub.apply(sinon,arguments))},mock:function mock(){return this.add(sinon.mock.apply(sinon,arguments))},inject:function inject(obj){var col=this;obj.spy=function(){return col.spy.apply(col,arguments)};obj.stub=function(){return col.stub.apply(col,arguments)};obj.mock=function(){return col.mock.apply(col,arguments)};return obj}};sinon.collection=collection;return collection}var isNode=typeof module!=="undefined"&&module.exports&&typeof require==="function";var isAMD=typeof define==="function"&&typeof define.amd==="object"&&define.amd;function loadDependencies(require,exports,module){var sinon=require("./util/core");require("./mock");require("./spy");require("./stub");module.exports=makeApi(sinon)}if(isAMD){define(loadDependencies);return}if(isNode){loadDependencies(require,module.exports,module);return}if(sinonGlobal){makeApi(sinonGlobal)}})(typeof sinon==="object"&&sinon)},{"./mock":27,"./spy":29,"./stub":30,"./util/core":35}],23:[function(require,module,exports){(function(sinonGlobal){"use strict";function makeApi(sinon){var hasDontEnumBug=function(){var obj={constructor:function(){return"0"},toString:function(){return"1"},valueOf:function(){return"2"},toLocaleString:function(){return"3"},prototype:function(){return"4"},isPrototypeOf:function(){return"5"},propertyIsEnumerable:function(){return"6"},hasOwnProperty:function(){return"7"},length:function(){return"8"},unique:function(){return"9"}};var result=[];for(var prop in obj){if(obj.hasOwnProperty(prop)){result.push(obj[prop]())}}return result.join("")!=="0123456789"}();function extend(target){var sources=Array.prototype.slice.call(arguments,1);var source,i,prop;for(i=0;i<sources.length;i++){source=sources[i];for(prop in source){if(source.hasOwnProperty(prop)){target[prop]=source[prop]}}if(hasDontEnumBug&&source.hasOwnProperty("toString")&&source.toString!==target.toString){target.toString=source.toString}}return target}sinon.extend=extend;return sinon.extend}function loadDependencies(require,exports,module){var sinon=require("./util/core");module.exports=makeApi(sinon)}var isNode=typeof module!=="undefined"&&module.exports&&typeof require==="function";var isAMD=typeof define==="function"&&typeof define.amd==="object"&&define.amd;if(isAMD){define(loadDependencies);return}if(isNode){loadDependencies(require,module.exports,module);return}if(sinonGlobal){makeApi(sinonGlobal)}})(typeof sinon==="object"&&sinon)},{"./util/core":35}],24:[function(require,module,exports){(function(sinonGlobal,formatio){"use strict";function makeApi(sinon){function valueFormatter(value){return""+value}function getFormatioFormatter(){var formatter=formatio.configure({quoteStrings:false,limitChildrenCount:250});function format(){return formatter.ascii.apply(formatter,arguments)}return format}function getNodeFormatter(){try{var util=require("util")}catch(e){}function format(v){var isObjectWithNativeToString=typeof v==="object"&&v.toString===Object.prototype.toString;return isObjectWithNativeToString?util.inspect(v):v}return util?format:valueFormatter}var isNode=typeof module!=="undefined"&&module.exports&&typeof require==="function";var formatter;if(isNode){try{formatio=require("formatio")}catch(e){}}if(formatio){formatter=getFormatioFormatter()}else if(isNode){formatter=getNodeFormatter()}else{formatter=valueFormatter}sinon.format=formatter;return sinon.format}function loadDependencies(require,exports,module){var sinon=require("./util/core");module.exports=makeApi(sinon)}var isNode=typeof module!=="undefined"&&module.exports&&typeof require==="function";var isAMD=typeof define==="function"&&typeof define.amd==="object"&&define.amd;if(isAMD){define(loadDependencies);return}if(isNode){loadDependencies(require,module.exports,module);return}if(sinonGlobal){makeApi(sinonGlobal)}})(typeof sinon==="object"&&sinon,typeof formatio==="object"&&formatio)},{"./util/core":35,formatio:43,util:56}],25:[function(require,module,exports){(function(sinonGlobal){"use strict";var realSetTimeout=setTimeout;function makeApi(sinon){function log(){}function logError(label,err){var msg=label+" threw exception: ";function throwLoggedError(){err.message=msg+err.message;throw err}sinon.log(msg+"["+err.name+"] "+err.message);if(err.stack){sinon.log(err.stack)}if(logError.useImmediateExceptions){throwLoggedError()}else{logError.setTimeout(throwLoggedError,0)}}logError.useImmediateExceptions=false;logError.setTimeout=function(func,timeout){realSetTimeout(func,timeout)};var exports={};exports.log=sinon.log=log;exports.logError=sinon.logError=logError;return exports}function loadDependencies(require,exports,module){var sinon=require("./util/core");module.exports=makeApi(sinon)}var isNode=typeof module!=="undefined"&&module.exports&&typeof require==="function";var isAMD=typeof define==="function"&&typeof define.amd==="object"&&define.amd;if(isAMD){define(loadDependencies);return}if(isNode){loadDependencies(require,module.exports,module);return}if(sinonGlobal){makeApi(sinonGlobal)}})(typeof sinon==="object"&&sinon)},{"./util/core":35}],26:[function(require,module,exports){(function(sinonGlobal){"use strict";function makeApi(sinon){function assertType(value,type,name){var actual=sinon.typeOf(value);if(actual!==type){throw new TypeError("Expected type of "+name+" to be "+type+", but was "+actual)}}var matcher={toString:function(){return this.message}};function isMatcher(object){return matcher.isPrototypeOf(object)}function matchObject(expectation,actual){if(actual===null||actual===undefined){return false}for(var key in expectation){if(expectation.hasOwnProperty(key)){var exp=expectation[key];var act=actual[key];if(isMatcher(exp)){if(!exp.test(act)){return false}}else if(sinon.typeOf(exp)==="object"){if(!matchObject(exp,act)){return false}}else if(!sinon.deepEqual(exp,act)){return false}}}return true}function match(expectation,message){var m=sinon.create(matcher);var type=sinon.typeOf(expectation);switch(type){case"object":if(typeof expectation.test==="function"){m.test=function(actual){return expectation.test(actual)===true};m.message="match("+sinon.functionName(expectation.test)+")";return m}var str=[];for(var key in expectation){if(expectation.hasOwnProperty(key)){str.push(key+": "+expectation[key])}}m.test=function(actual){return matchObject(expectation,actual)};m.message="match("+str.join(", ")+")";break;case"number":m.test=function(actual){return expectation==actual};break;case"string":m.test=function(actual){if(typeof actual!=="string"){return false}return actual.indexOf(expectation)!==-1};m.message='match("'+expectation+'")';break;case"regexp":m.test=function(actual){if(typeof actual!=="string"){return false}return expectation.test(actual)};break;case"function":m.test=expectation;if(message){m.message=message}else{m.message="match("+sinon.functionName(expectation)+")"}break;default:m.test=function(actual){return sinon.deepEqual(expectation,actual)}}if(!m.message){m.message="match("+expectation+")"}return m}matcher.or=function(m2){if(!arguments.length){throw new TypeError("Matcher expected")}else if(!isMatcher(m2)){m2=match(m2)}var m1=this;var or=sinon.create(matcher);or.test=function(actual){return m1.test(actual)||m2.test(actual)};or.message=m1.message+".or("+m2.message+")";return or};matcher.and=function(m2){if(!arguments.length){throw new TypeError("Matcher expected")}else if(!isMatcher(m2)){m2=match(m2)}var m1=this;var and=sinon.create(matcher);and.test=function(actual){return m1.test(actual)&&m2.test(actual)};and.message=m1.message+".and("+m2.message+")";return and};match.isMatcher=isMatcher;match.any=match(function(){return true},"any");match.defined=match(function(actual){return actual!==null&&actual!==undefined},"defined");match.truthy=match(function(actual){return!!actual},"truthy");match.falsy=match(function(actual){return!actual},"falsy");match.same=function(expectation){return match(function(actual){return expectation===actual},"same("+expectation+")")};match.typeOf=function(type){assertType(type,"string","type");return match(function(actual){return sinon.typeOf(actual)===type},'typeOf("'+type+'")')};match.instanceOf=function(type){assertType(type,"function","type");return match(function(actual){return actual instanceof type},"instanceOf("+sinon.functionName(type)+")")};function createPropertyMatcher(propertyTest,messagePrefix){return function(property,value){assertType(property,"string","property");var onlyProperty=arguments.length===1;var message=messagePrefix+'("'+property+'"';if(!onlyProperty){message+=", "+value}message+=")";return match(function(actual){if(actual===undefined||actual===null||!propertyTest(actual,property)){return false}return onlyProperty||sinon.deepEqual(value,actual[property])},message)}}match.has=createPropertyMatcher(function(actual,property){if(typeof actual==="object"){return property in actual}return actual[property]!==undefined},"has");match.hasOwn=createPropertyMatcher(function(actual,property){return actual.hasOwnProperty(property)},"hasOwn");match.bool=match.typeOf("boolean");match.number=match.typeOf("number");match.string=match.typeOf("string");match.object=match.typeOf("object");match.func=match.typeOf("function");match.array=match.typeOf("array");match.regexp=match.typeOf("regexp");match.date=match.typeOf("date");sinon.match=match;return match}var isNode=typeof module!=="undefined"&&module.exports&&typeof require==="function";var isAMD=typeof define==="function"&&typeof define.amd==="object"&&define.amd;function loadDependencies(require,exports,module){var sinon=require("./util/core");require("./typeOf");module.exports=makeApi(sinon)}if(isAMD){define(loadDependencies);return}if(isNode){loadDependencies(require,module.exports,module);return}if(sinonGlobal){makeApi(sinonGlobal)}})(typeof sinon==="object"&&sinon)},{"./typeOf":34,"./util/core":35}],27:[function(require,module,exports){(function(sinonGlobal){"use strict";function makeApi(sinon){var push=[].push;var match=sinon.match;function mock(object){if(!object){return sinon.expectation.create("Anonymous mock")}return mock.create(object)}function each(collection,callback){if(!collection){return}for(var i=0,l=collection.length;i<l;i+=1){callback(collection[i])}}function arrayEquals(arr1,arr2,compareLength){if(compareLength&&arr1.length!==arr2.length){return false}for(var i=0,l=arr1.length;i<l;i++){if(!sinon.deepEqual(arr1[i],arr2[i])){return false}}return true}sinon.extend(mock,{create:function create(object){if(!object){throw new TypeError("object is null")}var mockObject=sinon.extend({},mock);mockObject.object=object;delete mockObject.create;return mockObject},expects:function expects(method){if(!method){throw new TypeError("method is falsy")}if(!this.expectations){this.expectations={};this.proxies=[]}if(!this.expectations[method]){this.expectations[method]=[];var mockObject=this;sinon.wrapMethod(this.object,method,function(){return mockObject.invokeMethod(method,this,arguments)});push.call(this.proxies,method)}var expectation=sinon.expectation.create(method);push.call(this.expectations[method],expectation);return expectation},restore:function restore(){var object=this.object;each(this.proxies,function(proxy){if(typeof object[proxy].restore==="function"){object[proxy].restore()}})},verify:function verify(){var expectations=this.expectations||{};var messages=[];var met=[];each(this.proxies,function(proxy){each(expectations[proxy],function(expectation){if(!expectation.met()){push.call(messages,expectation.toString())}else{push.call(met,expectation.toString())}})});this.restore();if(messages.length>0){sinon.expectation.fail(messages.concat(met).join("\n"))}else if(met.length>0){sinon.expectation.pass(messages.concat(met).join("\n"))}return true},invokeMethod:function invokeMethod(method,thisValue,args){var expectations=this.expectations&&this.expectations[method]?this.expectations[method]:[];var expectationsWithMatchingArgs=[];var currentArgs=args||[];var i,available;for(i=0;i<expectations.length;i+=1){var expectedArgs=expectations[i].expectedArguments||[];if(arrayEquals(expectedArgs,currentArgs,expectations[i].expectsExactArgCount)){expectationsWithMatchingArgs.push(expectations[i])}}for(i=0;i<expectationsWithMatchingArgs.length;i+=1){if(!expectationsWithMatchingArgs[i].met()&&expectationsWithMatchingArgs[i].allowsCall(thisValue,args)){return expectationsWithMatchingArgs[i].apply(thisValue,args)}}var messages=[];var exhausted=0;for(i=0;i<expectationsWithMatchingArgs.length;i+=1){if(expectationsWithMatchingArgs[i].allowsCall(thisValue,args)){available=available||expectationsWithMatchingArgs[i]}else{exhausted+=1}}if(available&&exhausted===0){return available.apply(thisValue,args)}for(i=0;i<expectations.length;i+=1){push.call(messages," "+expectations[i].toString())}messages.unshift("Unexpected call: "+sinon.spyCall.toString.call({proxy:method,args:args}));sinon.expectation.fail(messages.join("\n"))}});var times=sinon.timesInWords;var slice=Array.prototype.slice;function callCountInWords(callCount){if(callCount===0){return"never called"}return"called "+times(callCount)}function expectedCallCountInWords(expectation){var min=expectation.minCalls;var max=expectation.maxCalls;if(typeof min==="number"&&typeof max==="number"){var str=times(min);if(min!==max){str="at least "+str+" and at most "+times(max)}return str}if(typeof min==="number"){return"at least "+times(min)}return"at most "+times(max)}function receivedMinCalls(expectation){var hasMinLimit=typeof expectation.minCalls==="number";return!hasMinLimit||expectation.callCount>=expectation.minCalls}function receivedMaxCalls(expectation){if(typeof expectation.maxCalls!=="number"){return false}return expectation.callCount===expectation.maxCalls}function verifyMatcher(possibleMatcher,arg){var isMatcher=match&&match.isMatcher(possibleMatcher);return isMatcher&&possibleMatcher.test(arg)||true}sinon.expectation={minCalls:1,maxCalls:1,create:function create(methodName){var expectation=sinon.extend(sinon.stub.create(),sinon.expectation);delete expectation.create;expectation.method=methodName;return expectation},invoke:function invoke(func,thisValue,args){this.verifyCallAllowed(thisValue,args);return sinon.spy.invoke.apply(this,arguments)},atLeast:function atLeast(num){if(typeof num!=="number"){throw new TypeError("'"+num+"' is not number")}if(!this.limitsSet){this.maxCalls=null;this.limitsSet=true}this.minCalls=num;return this},atMost:function atMost(num){if(typeof num!=="number"){throw new TypeError("'"+num+"' is not number")}if(!this.limitsSet){this.minCalls=null;this.limitsSet=true}this.maxCalls=num;return this},never:function never(){return this.exactly(0)},once:function once(){return this.exactly(1)},twice:function twice(){return this.exactly(2)},thrice:function thrice(){return this.exactly(3)},exactly:function exactly(num){if(typeof num!=="number"){throw new TypeError("'"+num+"' is not a number")}this.atLeast(num);return this.atMost(num)},met:function met(){return!this.failed&&receivedMinCalls(this)},verifyCallAllowed:function verifyCallAllowed(thisValue,args){if(receivedMaxCalls(this)){this.failed=true;sinon.expectation.fail(this.method+" already called "+times(this.maxCalls))}if("expectedThis"in this&&this.expectedThis!==thisValue){sinon.expectation.fail(this.method+" called with "+thisValue+" as thisValue, expected "+this.expectedThis)}if(!("expectedArguments"in this)){return}if(!args){sinon.expectation.fail(this.method+" received no arguments, expected "+sinon.format(this.expectedArguments))}if(args.length<this.expectedArguments.length){sinon.expectation.fail(this.method+" received too few arguments ("+sinon.format(args)+"), expected "+sinon.format(this.expectedArguments))}if(this.expectsExactArgCount&&args.length!==this.expectedArguments.length){sinon.expectation.fail(this.method+" received too many arguments ("+sinon.format(args)+"), expected "+sinon.format(this.expectedArguments))}for(var i=0,l=this.expectedArguments.length;i<l;i+=1){if(!verifyMatcher(this.expectedArguments[i],args[i])){sinon.expectation.fail(this.method+" received wrong arguments "+sinon.format(args)+", didn't match "+this.expectedArguments.toString())}if(!sinon.deepEqual(this.expectedArguments[i],args[i])){sinon.expectation.fail(this.method+" received wrong arguments "+sinon.format(args)+", expected "+sinon.format(this.expectedArguments))}}},allowsCall:function allowsCall(thisValue,args){if(this.met()&&receivedMaxCalls(this)){return false}if("expectedThis"in this&&this.expectedThis!==thisValue){return false}if(!("expectedArguments"in this)){return true}args=args||[];if(args.length<this.expectedArguments.length){return false}if(this.expectsExactArgCount&&args.length!==this.expectedArguments.length){return false}for(var i=0,l=this.expectedArguments.length;i<l;i+=1){if(!verifyMatcher(this.expectedArguments[i],args[i])){return false}if(!sinon.deepEqual(this.expectedArguments[i],args[i])){return false}}return true},withArgs:function withArgs(){this.expectedArguments=slice.call(arguments);return this},withExactArgs:function withExactArgs(){this.withArgs.apply(this,arguments);this.expectsExactArgCount=true;return this},on:function on(thisValue){this.expectedThis=thisValue;return this},toString:function(){var args=(this.expectedArguments||[]).slice();if(!this.expectsExactArgCount){push.call(args,"[...]")}var callStr=sinon.spyCall.toString.call({proxy:this.method||"anonymous mock expectation",args:args});var message=callStr.replace(", [...","[, ...")+" "+expectedCallCountInWords(this);if(this.met()){return"Expectation met: "+message}return"Expected "+message+" ("+callCountInWords(this.callCount)+")"},verify:function verify(){if(!this.met()){sinon.expectation.fail(this.toString())}else{sinon.expectation.pass(this.toString())}return true},pass:function pass(message){sinon.assert.pass(message)},fail:function fail(message){var exception=new Error(message);exception.name="ExpectationError";throw exception}};sinon.mock=mock;return mock}var isNode=typeof module!=="undefined"&&module.exports&&typeof require==="function";var isAMD=typeof define==="function"&&typeof define.amd==="object"&&define.amd;function loadDependencies(require,exports,module){var sinon=require("./util/core");require("./times_in_words");require("./call");require("./extend");require("./match");require("./spy");require("./stub");require("./format");module.exports=makeApi(sinon)}if(isAMD){define(loadDependencies);return}if(isNode){loadDependencies(require,module.exports,module);return}if(sinonGlobal){makeApi(sinonGlobal)}})(typeof sinon==="object"&&sinon)},{"./call":21,"./extend":23,"./format":24,"./match":26,"./spy":29,"./stub":30,"./times_in_words":33,"./util/core":35}],28:[function(require,module,exports){(function(sinonGlobal){"use strict";function makeApi(sinon){var push=[].push;function exposeValue(sandbox,config,key,value){if(!value){return}if(config.injectInto&&!(key in config.injectInto)){config.injectInto[key]=value;sandbox.injectedKeys.push(key)}else{push.call(sandbox.args,value)}}function prepareSandboxFromConfig(config){var sandbox=sinon.create(sinon.sandbox);if(config.useFakeServer){if(typeof config.useFakeServer==="object"){sandbox.serverPrototype=config.useFakeServer}sandbox.useFakeServer()}if(config.useFakeTimers){if(typeof config.useFakeTimers==="object"){sandbox.useFakeTimers.apply(sandbox,config.useFakeTimers)}else{sandbox.useFakeTimers()}}return sandbox}sinon.sandbox=sinon.extend(sinon.create(sinon.collection),{useFakeTimers:function useFakeTimers(){this.clock=sinon.useFakeTimers.apply(sinon,arguments);return this.add(this.clock);
},serverPrototype:sinon.fakeServer,useFakeServer:function useFakeServer(){var proto=this.serverPrototype||sinon.fakeServer;if(!proto||!proto.create){return null}this.server=proto.create();return this.add(this.server)},inject:function(obj){sinon.collection.inject.call(this,obj);if(this.clock){obj.clock=this.clock}if(this.server){obj.server=this.server;obj.requests=this.server.requests}obj.match=sinon.match;return obj},restore:function(){sinon.collection.restore.apply(this,arguments);this.restoreContext()},restoreContext:function(){if(this.injectedKeys){for(var i=0,j=this.injectedKeys.length;i<j;i++){delete this.injectInto[this.injectedKeys[i]]}this.injectedKeys=[]}},create:function(config){if(!config){return sinon.create(sinon.sandbox)}var sandbox=prepareSandboxFromConfig(config);sandbox.args=sandbox.args||[];sandbox.injectedKeys=[];sandbox.injectInto=config.injectInto;var prop,value;var exposed=sandbox.inject({});if(config.properties){for(var i=0,l=config.properties.length;i<l;i++){prop=config.properties[i];value=exposed[prop]||prop==="sandbox"&&sandbox;exposeValue(sandbox,config,prop,value)}}else{exposeValue(sandbox,config,"sandbox",value)}return sandbox},match:sinon.match});sinon.sandbox.useFakeXMLHttpRequest=sinon.sandbox.useFakeServer;return sinon.sandbox}var isNode=typeof module!=="undefined"&&module.exports&&typeof require==="function";var isAMD=typeof define==="function"&&typeof define.amd==="object"&&define.amd;function loadDependencies(require,exports,module){var sinon=require("./util/core");require("./extend");require("./util/fake_server_with_clock");require("./util/fake_timers");require("./collection");module.exports=makeApi(sinon)}if(isAMD){define(loadDependencies);return}if(isNode){loadDependencies(require,module.exports,module);return}if(sinonGlobal){makeApi(sinonGlobal)}})(typeof sinon==="object"&&sinon)},{"./collection":22,"./extend":23,"./util/core":35,"./util/fake_server_with_clock":38,"./util/fake_timers":39}],29:[function(require,module,exports){(function(sinonGlobal){"use strict";function makeApi(sinon){var push=Array.prototype.push;var slice=Array.prototype.slice;var callId=0;function spy(object,property,types){if(!property&&typeof object==="function"){return spy.create(object)}if(!object&&!property){return spy.create(function(){})}if(types){var methodDesc=sinon.getPropertyDescriptor(object,property);for(var i=0;i<types.length;i++){methodDesc[types[i]]=spy.create(methodDesc[types[i]])}return sinon.wrapMethod(object,property,methodDesc)}return sinon.wrapMethod(object,property,spy.create(object[property]))}function matchingFake(fakes,args,strict){if(!fakes){return undefined}for(var i=0,l=fakes.length;i<l;i++){if(fakes[i].matches(args,strict)){return fakes[i]}}}function incrementCallCount(){this.called=true;this.callCount+=1;this.notCalled=false;this.calledOnce=this.callCount===1;this.calledTwice=this.callCount===2;this.calledThrice=this.callCount===3}function createCallProperties(){this.firstCall=this.getCall(0);this.secondCall=this.getCall(1);this.thirdCall=this.getCall(2);this.lastCall=this.getCall(this.callCount-1)}var vars="a,b,c,d,e,f,g,h,i,j,k,l";function createProxy(func,proxyLength){var p;if(proxyLength){eval("p = (function proxy("+vars.substring(0,proxyLength*2-1)+") { return p.invoke(func, this, slice.call(arguments)); });")}else{p=function proxy(){return p.invoke(func,this,slice.call(arguments))}}p.isSinonProxy=true;return p}var uuid=0;var spyApi={reset:function(){if(this.invoking){var err=new Error("Cannot reset Sinon function while invoking it. "+"Move the call to .reset outside of the callback.");err.name="InvalidResetException";throw err}this.called=false;this.notCalled=true;this.calledOnce=false;this.calledTwice=false;this.calledThrice=false;this.callCount=0;this.firstCall=null;this.secondCall=null;this.thirdCall=null;this.lastCall=null;this.args=[];this.returnValues=[];this.thisValues=[];this.exceptions=[];this.callIds=[];this.stacks=[];if(this.fakes){for(var i=0;i<this.fakes.length;i++){this.fakes[i].reset()}}return this},create:function create(func,spyLength){var name;if(typeof func!=="function"){func=function(){}}else{name=sinon.functionName(func)}if(!spyLength){spyLength=func.length}var proxy=createProxy(func,spyLength);sinon.extend(proxy,spy);delete proxy.create;sinon.extend(proxy,func);proxy.reset();proxy.prototype=func.prototype;proxy.displayName=name||"spy";proxy.toString=sinon.functionToString;proxy.instantiateFake=sinon.spy.create;proxy.id="spy#"+uuid++;return proxy},invoke:function invoke(func,thisValue,args){var matching=matchingFake(this.fakes,args);var exception,returnValue;incrementCallCount.call(this);push.call(this.thisValues,thisValue);push.call(this.args,args);push.call(this.callIds,callId++);createCallProperties.call(this);try{this.invoking=true;if(matching){returnValue=matching.invoke(func,thisValue,args)}else{returnValue=(this.func||func).apply(thisValue,args)}var thisCall=this.getCall(this.callCount-1);if(thisCall.calledWithNew()&&typeof returnValue!=="object"){returnValue=thisValue}}catch(e){exception=e}finally{delete this.invoking}push.call(this.exceptions,exception);push.call(this.returnValues,returnValue);push.call(this.stacks,(new Error).stack);createCallProperties.call(this);if(exception!==undefined){throw exception}return returnValue},named:function named(name){this.displayName=name;return this},getCall:function getCall(i){if(i<0||i>=this.callCount){return null}return sinon.spyCall(this,this.thisValues[i],this.args[i],this.returnValues[i],this.exceptions[i],this.callIds[i],this.stacks[i])},getCalls:function(){var calls=[];var i;for(i=0;i<this.callCount;i++){calls.push(this.getCall(i))}return calls},calledBefore:function calledBefore(spyFn){if(!this.called){return false}if(!spyFn.called){return true}return this.callIds[0]<spyFn.callIds[spyFn.callIds.length-1]},calledAfter:function calledAfter(spyFn){if(!this.called||!spyFn.called){return false}return this.callIds[this.callCount-1]>spyFn.callIds[spyFn.callCount-1]},withArgs:function(){var args=slice.call(arguments);if(this.fakes){var match=matchingFake(this.fakes,args,true);if(match){return match}}else{this.fakes=[]}var original=this;var fake=this.instantiateFake();fake.matchingAguments=args;fake.parent=this;push.call(this.fakes,fake);fake.withArgs=function(){return original.withArgs.apply(original,arguments)};for(var i=0;i<this.args.length;i++){if(fake.matches(this.args[i])){incrementCallCount.call(fake);push.call(fake.thisValues,this.thisValues[i]);push.call(fake.args,this.args[i]);push.call(fake.returnValues,this.returnValues[i]);push.call(fake.exceptions,this.exceptions[i]);push.call(fake.callIds,this.callIds[i])}}createCallProperties.call(fake);return fake},matches:function(args,strict){var margs=this.matchingAguments;if(margs.length<=args.length&&sinon.deepEqual(margs,args.slice(0,margs.length))){return!strict||margs.length===args.length}},printf:function(format){var spyInstance=this;var args=slice.call(arguments,1);var formatter;return(format||"").replace(/%(.)/g,function(match,specifyer){formatter=spyApi.formatters[specifyer];if(typeof formatter==="function"){return formatter.call(null,spyInstance,args)}else if(!isNaN(parseInt(specifyer,10))){return sinon.format(args[specifyer-1])}return"%"+specifyer})}};function delegateToCalls(method,matchAny,actual,notCalled){spyApi[method]=function(){if(!this.called){if(notCalled){return notCalled.apply(this,arguments)}return false}var currentCall;var matches=0;for(var i=0,l=this.callCount;i<l;i+=1){currentCall=this.getCall(i);if(currentCall[actual||method].apply(currentCall,arguments)){matches+=1;if(matchAny){return true}}}return matches===this.callCount}}delegateToCalls("calledOn",true);delegateToCalls("alwaysCalledOn",false,"calledOn");delegateToCalls("calledWith",true);delegateToCalls("calledWithMatch",true);delegateToCalls("alwaysCalledWith",false,"calledWith");delegateToCalls("alwaysCalledWithMatch",false,"calledWithMatch");delegateToCalls("calledWithExactly",true);delegateToCalls("alwaysCalledWithExactly",false,"calledWithExactly");delegateToCalls("neverCalledWith",false,"notCalledWith",function(){return true});delegateToCalls("neverCalledWithMatch",false,"notCalledWithMatch",function(){return true});delegateToCalls("threw",true);delegateToCalls("alwaysThrew",false,"threw");delegateToCalls("returned",true);delegateToCalls("alwaysReturned",false,"returned");delegateToCalls("calledWithNew",true);delegateToCalls("alwaysCalledWithNew",false,"calledWithNew");delegateToCalls("callArg",false,"callArgWith",function(){throw new Error(this.toString()+" cannot call arg since it was not yet invoked.")});spyApi.callArgWith=spyApi.callArg;delegateToCalls("callArgOn",false,"callArgOnWith",function(){throw new Error(this.toString()+" cannot call arg since it was not yet invoked.")});spyApi.callArgOnWith=spyApi.callArgOn;delegateToCalls("yield",false,"yield",function(){throw new Error(this.toString()+" cannot yield since it was not yet invoked.")});spyApi.invokeCallback=spyApi.yield;delegateToCalls("yieldOn",false,"yieldOn",function(){throw new Error(this.toString()+" cannot yield since it was not yet invoked.")});delegateToCalls("yieldTo",false,"yieldTo",function(property){throw new Error(this.toString()+" cannot yield to '"+property+"' since it was not yet invoked.")});delegateToCalls("yieldToOn",false,"yieldToOn",function(property){throw new Error(this.toString()+" cannot yield to '"+property+"' since it was not yet invoked.")});spyApi.formatters={c:function(spyInstance){return sinon.timesInWords(spyInstance.callCount)},n:function(spyInstance){return spyInstance.toString()},C:function(spyInstance){var calls=[];for(var i=0,l=spyInstance.callCount;i<l;++i){var stringifiedCall=" "+spyInstance.getCall(i).toString();if(/\n/.test(calls[i-1])){stringifiedCall="\n"+stringifiedCall}push.call(calls,stringifiedCall)}return calls.length>0?"\n"+calls.join("\n"):""},t:function(spyInstance){var objects=[];for(var i=0,l=spyInstance.callCount;i<l;++i){push.call(objects,sinon.format(spyInstance.thisValues[i]))}return objects.join(", ")},"*":function(spyInstance,args){var formatted=[];for(var i=0,l=args.length;i<l;++i){push.call(formatted,sinon.format(args[i]))}return formatted.join(", ")}};sinon.extend(spy,spyApi);spy.spyCall=sinon.spyCall;sinon.spy=spy;return spy}var isNode=typeof module!=="undefined"&&module.exports&&typeof require==="function";var isAMD=typeof define==="function"&&typeof define.amd==="object"&&define.amd;function loadDependencies(require,exports,module){var core=require("./util/core");require("./call");require("./extend");require("./times_in_words");require("./format");module.exports=makeApi(core)}if(isAMD){define(loadDependencies);return}if(isNode){loadDependencies(require,module.exports,module);return}if(sinonGlobal){makeApi(sinonGlobal)}})(typeof sinon==="object"&&sinon)},{"./call":21,"./extend":23,"./format":24,"./times_in_words":33,"./util/core":35}],30:[function(require,module,exports){(function(sinonGlobal){"use strict";function makeApi(sinon){function stub(object,property,func){if(!!func&&typeof func!=="function"&&typeof func!=="object"){throw new TypeError("Custom stub should be a function or a property descriptor")}var wrapper;if(func){if(typeof func==="function"){wrapper=sinon.spy&&sinon.spy.create?sinon.spy.create(func):func}else{wrapper=func;if(sinon.spy&&sinon.spy.create){var types=sinon.objectKeys(wrapper);for(var i=0;i<types.length;i++){wrapper[types[i]]=sinon.spy.create(wrapper[types[i]])}}}}else{var stubLength=0;if(typeof object==="object"&&typeof object[property]==="function"){stubLength=object[property].length}wrapper=stub.create(stubLength)}if(!object&&typeof property==="undefined"){return sinon.stub.create()}if(typeof property==="undefined"&&typeof object==="object"){sinon.walk(object||{},function(value,prop,propOwner){if(propOwner!==Object.prototype&&prop!=="constructor"&&typeof sinon.getPropertyDescriptor(propOwner,prop).value==="function"){stub(object,prop)}});return object}return sinon.wrapMethod(object,property,wrapper)}function getParentBehaviour(stubInstance){return stubInstance.parent&&getCurrentBehavior(stubInstance.parent)}function getDefaultBehavior(stubInstance){return stubInstance.defaultBehavior||getParentBehaviour(stubInstance)||sinon.behavior.create(stubInstance)}function getCurrentBehavior(stubInstance){var behavior=stubInstance.behaviors[stubInstance.callCount-1];return behavior&&behavior.isPresent()?behavior:getDefaultBehavior(stubInstance)}var uuid=0;var proto={create:function create(stubLength){var functionStub=function(){return getCurrentBehavior(functionStub).invoke(this,arguments)};functionStub.id="stub#"+uuid++;var orig=functionStub;functionStub=sinon.spy.create(functionStub,stubLength);functionStub.func=orig;sinon.extend(functionStub,stub);functionStub.instantiateFake=sinon.stub.create;functionStub.displayName="stub";functionStub.toString=sinon.functionToString;functionStub.defaultBehavior=null;functionStub.behaviors=[];return functionStub},resetBehavior:function(){var i;this.defaultBehavior=null;this.behaviors=[];delete this.returnValue;delete this.returnArgAt;this.returnThis=false;if(this.fakes){for(i=0;i<this.fakes.length;i++){this.fakes[i].resetBehavior()}}},onCall:function onCall(index){if(!this.behaviors[index]){this.behaviors[index]=sinon.behavior.create(this)}return this.behaviors[index]},onFirstCall:function onFirstCall(){return this.onCall(0)},onSecondCall:function onSecondCall(){return this.onCall(1)},onThirdCall:function onThirdCall(){return this.onCall(2)}};function createBehavior(behaviorMethod){return function(){this.defaultBehavior=this.defaultBehavior||sinon.behavior.create(this);this.defaultBehavior[behaviorMethod].apply(this.defaultBehavior,arguments);return this}}for(var method in sinon.behavior){if(sinon.behavior.hasOwnProperty(method)&&!proto.hasOwnProperty(method)&&method!=="create"&&method!=="withArgs"&&method!=="invoke"){proto[method]=createBehavior(method)}}sinon.extend(stub,proto);sinon.stub=stub;return stub}var isNode=typeof module!=="undefined"&&module.exports&&typeof require==="function";var isAMD=typeof define==="function"&&typeof define.amd==="object"&&define.amd;function loadDependencies(require,exports,module){var core=require("./util/core");require("./behavior");require("./spy");require("./extend");module.exports=makeApi(core)}if(isAMD){define(loadDependencies);return}if(isNode){loadDependencies(require,module.exports,module);return}if(sinonGlobal){makeApi(sinonGlobal)}})(typeof sinon==="object"&&sinon)},{"./behavior":20,"./extend":23,"./spy":29,"./util/core":35}],31:[function(require,module,exports){(function(sinonGlobal){"use strict";function makeApi(sinon){var slice=Array.prototype.slice;function test(callback){var type=typeof callback;if(type!=="function"){throw new TypeError("sinon.test needs to wrap a test function, got "+type)}function sinonSandboxedTest(){var config=sinon.getConfig(sinon.config);config.injectInto=config.injectIntoThis&&this||config.injectInto;var sandbox=sinon.sandbox.create(config);var args=slice.call(arguments);var oldDone=args.length&&args[args.length-1];var exception,result;if(typeof oldDone==="function"){args[args.length-1]=function sinonDone(res){if(res){sandbox.restore()}else{sandbox.verifyAndRestore()}oldDone(res)}}try{result=callback.apply(this,args.concat(sandbox.args))}catch(e){exception=e}if(typeof oldDone!=="function"){if(typeof exception!=="undefined"){sandbox.restore();throw exception}else{sandbox.verifyAndRestore()}}return result}if(callback.length){return function sinonAsyncSandboxedTest(done){return sinonSandboxedTest.apply(this,arguments)}}return sinonSandboxedTest}test.config={injectIntoThis:true,injectInto:null,properties:["spy","stub","mock","clock","server","requests"],useFakeTimers:true,useFakeServer:true};sinon.test=test;return test}var isNode=typeof module!=="undefined"&&module.exports&&typeof require==="function";var isAMD=typeof define==="function"&&typeof define.amd==="object"&&define.amd;function loadDependencies(require,exports,module){var core=require("./util/core");require("./sandbox");module.exports=makeApi(core)}if(isAMD){define(loadDependencies)}else if(isNode){loadDependencies(require,module.exports,module)}else if(sinonGlobal){makeApi(sinonGlobal)}})(typeof sinon==="object"&&sinon||null)},{"./sandbox":28,"./util/core":35}],32:[function(require,module,exports){(function(sinonGlobal){"use strict";function createTest(property,setUp,tearDown){return function(){if(setUp){setUp.apply(this,arguments)}var exception,result;try{result=property.apply(this,arguments)}catch(e){exception=e}if(tearDown){tearDown.apply(this,arguments)}if(exception){throw exception}return result}}function makeApi(sinon){function testCase(tests,prefix){if(!tests||typeof tests!=="object"){throw new TypeError("sinon.testCase needs an object with test functions")}prefix=prefix||"test";var rPrefix=new RegExp("^"+prefix);var methods={};var setUp=tests.setUp;var tearDown=tests.tearDown;var testName,property,method;for(testName in tests){if(tests.hasOwnProperty(testName)&&!/^(setUp|tearDown)$/.test(testName)){property=tests[testName];if(typeof property==="function"&&rPrefix.test(testName)){method=property;if(setUp||tearDown){method=createTest(property,setUp,tearDown)}methods[testName]=sinon.test(method)}else{methods[testName]=tests[testName]}}}return methods}sinon.testCase=testCase;return testCase}var isNode=typeof module!=="undefined"&&module.exports&&typeof require==="function";var isAMD=typeof define==="function"&&typeof define.amd==="object"&&define.amd;function loadDependencies(require,exports,module){var core=require("./util/core");require("./test");module.exports=makeApi(core)}if(isAMD){define(loadDependencies);return}if(isNode){loadDependencies(require,module.exports,module);return}if(sinonGlobal){makeApi(sinonGlobal)}})(typeof sinon==="object"&&sinon)},{"./test":31,"./util/core":35}],33:[function(require,module,exports){(function(sinonGlobal){"use strict";function makeApi(sinon){function timesInWords(count){switch(count){case 1:return"once";case 2:return"twice";case 3:return"thrice";default:return(count||0)+" times"}}sinon.timesInWords=timesInWords;return sinon.timesInWords}function loadDependencies(require,exports,module){var core=require("./util/core");module.exports=makeApi(core)}var isNode=typeof module!=="undefined"&&module.exports&&typeof require==="function";var isAMD=typeof define==="function"&&typeof define.amd==="object"&&define.amd;if(isAMD){define(loadDependencies);return}if(isNode){loadDependencies(require,module.exports,module);return}if(sinonGlobal){makeApi(sinonGlobal)}})(typeof sinon==="object"&&sinon)},{"./util/core":35}],34:[function(require,module,exports){(function(sinonGlobal){"use strict";function makeApi(sinon){function typeOf(value){if(value===null){return"null"}else if(value===undefined){return"undefined"}var string=Object.prototype.toString.call(value);return string.substring(8,string.length-1).toLowerCase()}sinon.typeOf=typeOf;return sinon.typeOf}function loadDependencies(require,exports,module){var core=require("./util/core");module.exports=makeApi(core)}var isNode=typeof module!=="undefined"&&module.exports&&typeof require==="function";var isAMD=typeof define==="function"&&typeof define.amd==="object"&&define.amd;if(isAMD){define(loadDependencies);return}if(isNode){loadDependencies(require,module.exports,module);return}if(sinonGlobal){makeApi(sinonGlobal)}})(typeof sinon==="object"&&sinon)},{"./util/core":35}],35:[function(require,module,exports){(function(sinonGlobal){"use strict";var div=typeof document!=="undefined"&&document.createElement("div");var hasOwn=Object.prototype.hasOwnProperty;function isDOMNode(obj){var success=false;try{obj.appendChild(div);success=div.parentNode===obj}catch(e){return false}finally{try{obj.removeChild(div)}catch(e){}}return success}function isElement(obj){return div&&obj&&obj.nodeType===1&&isDOMNode(obj)}function isFunction(obj){return typeof obj==="function"||!!(obj&&obj.constructor&&obj.call&&obj.apply)}function isReallyNaN(val){return typeof val==="number"&&isNaN(val)}function mirrorProperties(target,source){for(var prop in source){if(!hasOwn.call(target,prop)){target[prop]=source[prop]}}}function isRestorable(obj){return typeof obj==="function"&&typeof obj.restore==="function"&&obj.restore.sinon}var hasES5Support="keys"in Object;function makeApi(sinon){sinon.wrapMethod=function wrapMethod(object,property,method){if(!object){throw new TypeError("Should wrap property of object")}if(typeof method!=="function"&&typeof method!=="object"){throw new TypeError("Method wrapper should be a function or a property descriptor")}function checkWrappedMethod(wrappedMethod){var error;if(!isFunction(wrappedMethod)){error=new TypeError("Attempted to wrap "+typeof wrappedMethod+" property "+property+" as function")}else if(wrappedMethod.restore&&wrappedMethod.restore.sinon){error=new TypeError("Attempted to wrap "+property+" which is already wrapped")}else if(wrappedMethod.calledBefore){var verb=wrappedMethod.returns?"stubbed":"spied on";error=new TypeError("Attempted to wrap "+property+" which is already "+verb)}if(error){if(wrappedMethod&&wrappedMethod.stackTrace){error.stack+="\n--------------\n"+wrappedMethod.stackTrace}throw error}}var error,wrappedMethod,i;var owned=object.hasOwnProperty?object.hasOwnProperty(property):hasOwn.call(object,property);if(hasES5Support){var methodDesc=typeof method==="function"?{value:method}:method;var wrappedMethodDesc=sinon.getPropertyDescriptor(object,property);if(!wrappedMethodDesc){error=new TypeError("Attempted to wrap "+typeof wrappedMethod+" property "+property+" as function")}else if(wrappedMethodDesc.restore&&wrappedMethodDesc.restore.sinon){error=new TypeError("Attempted to wrap "+property+" which is already wrapped")}if(error){if(wrappedMethodDesc&&wrappedMethodDesc.stackTrace){error.stack+="\n--------------\n"+wrappedMethodDesc.stackTrace}throw error}var types=sinon.objectKeys(methodDesc);for(i=0;i<types.length;i++){wrappedMethod=wrappedMethodDesc[types[i]];checkWrappedMethod(wrappedMethod)}mirrorProperties(methodDesc,wrappedMethodDesc);for(i=0;i<types.length;i++){mirrorProperties(methodDesc[types[i]],wrappedMethodDesc[types[i]])}Object.defineProperty(object,property,methodDesc)}else{wrappedMethod=object[property];checkWrappedMethod(wrappedMethod);object[property]=method;method.displayName=property}method.displayName=property;method.stackTrace=new Error("Stack Trace for original").stack;method.restore=function(){if(!owned){try{delete object[property]}catch(e){}}else if(hasES5Support){Object.defineProperty(object,property,wrappedMethodDesc)}if(object[property]===method){object[property]=wrappedMethod}};method.restore.sinon=true;if(!hasES5Support){mirrorProperties(method,wrappedMethod)}return method};sinon.create=function create(proto){var F=function(){};F.prototype=proto;return new F};sinon.deepEqual=function deepEqual(a,b){if(sinon.match&&sinon.match.isMatcher(a)){return a.test(b)}if(typeof a!=="object"||typeof b!=="object"){return isReallyNaN(a)&&isReallyNaN(b)||a===b}if(isElement(a)||isElement(b)){return a===b}if(a===b){return true}if(a===null&&b!==null||a!==null&&b===null){return false}if(a instanceof RegExp&&b instanceof RegExp){return a.source===b.source&&a.global===b.global&&a.ignoreCase===b.ignoreCase&&a.multiline===b.multiline}var aString=Object.prototype.toString.call(a);if(aString!==Object.prototype.toString.call(b)){return false}if(aString==="[object Date]"){return a.valueOf()===b.valueOf()}var prop;var aLength=0;var bLength=0;if(aString==="[object Array]"&&a.length!==b.length){return false}for(prop in a){if(a.hasOwnProperty(prop)){aLength+=1;if(!(prop in b)){return false}if(!deepEqual(a[prop],b[prop])){return false}}}for(prop in b){if(b.hasOwnProperty(prop)){bLength+=1}}return aLength===bLength};sinon.functionName=function functionName(func){var name=func.displayName||func.name;if(!name){var matches=func.toString().match(/function ([^\s\(]+)/);name=matches&&matches[1]}return name};sinon.functionToString=function toString(){if(this.getCall&&this.callCount){var thisValue,prop;var i=this.callCount;while(i--){thisValue=this.getCall(i).thisValue;for(prop in thisValue){if(thisValue[prop]===this){return prop}}}}return this.displayName||"sinon fake"};sinon.objectKeys=function objectKeys(obj){if(obj!==Object(obj)){throw new TypeError("sinon.objectKeys called on a non-object")}var keys=[];var key;for(key in obj){if(hasOwn.call(obj,key)){keys.push(key)}}return keys};sinon.getPropertyDescriptor=function getPropertyDescriptor(object,property){var proto=object;var descriptor;while(proto&&!(descriptor=Object.getOwnPropertyDescriptor(proto,property))){proto=Object.getPrototypeOf(proto)}return descriptor};sinon.getConfig=function(custom){var config={};custom=custom||{};var defaults=sinon.defaultConfig;for(var prop in defaults){if(defaults.hasOwnProperty(prop)){config[prop]=custom.hasOwnProperty(prop)?custom[prop]:defaults[prop]}}return config};sinon.defaultConfig={injectIntoThis:true,injectInto:null,properties:["spy","stub","mock","clock","server","requests"],useFakeTimers:true,useFakeServer:true};sinon.timesInWords=function timesInWords(count){return count===1&&"once"||count===2&&"twice"||count===3&&"thrice"||(count||0)+" times"};sinon.calledInOrder=function(spies){for(var i=1,l=spies.length;i<l;i++){if(!spies[i-1].calledBefore(spies[i])||!spies[i].called){return false}}return true};sinon.orderByFirstCall=function(spies){return spies.sort(function(a,b){var aCall=a.getCall(0);var bCall=b.getCall(0);var aId=aCall&&aCall.callId||-1;var bId=bCall&&bCall.callId||-1;return aId<bId?-1:1})};sinon.createStubInstance=function(constructor){if(typeof constructor!=="function"){throw new TypeError("The constructor should be a function.")}return sinon.stub(sinon.create(constructor.prototype))};sinon.restore=function(object){if(object!==null&&typeof object==="object"){for(var prop in object){if(isRestorable(object[prop])){object[prop].restore()}}}else if(isRestorable(object)){object.restore()}};return sinon}var isNode=typeof module!=="undefined"&&module.exports&&typeof require==="function";var isAMD=typeof define==="function"&&typeof define.amd==="object"&&define.amd;function loadDependencies(require,exports){makeApi(exports)}if(isAMD){define(loadDependencies);return}if(isNode){loadDependencies(require,module.exports,module);return}if(sinonGlobal){makeApi(sinonGlobal)}})(typeof sinon==="object"&&sinon)},{}],36:[function(require,module,exports){if(typeof sinon==="undefined"){this.sinon={}}(function(){"use strict";var push=[].push;function makeApi(sinon){sinon.Event=function Event(type,bubbles,cancelable,target){this.initEvent(type,bubbles,cancelable,target)};sinon.Event.prototype={initEvent:function(type,bubbles,cancelable,target){this.type=type;this.bubbles=bubbles;this.cancelable=cancelable;this.target=target},stopPropagation:function(){},preventDefault:function(){this.defaultPrevented=true}};sinon.ProgressEvent=function ProgressEvent(type,progressEventRaw,target){this.initEvent(type,false,false,target);this.loaded=progressEventRaw.loaded||null;this.total=progressEventRaw.total||null;this.lengthComputable=!!progressEventRaw.total};sinon.ProgressEvent.prototype=new sinon.Event;sinon.ProgressEvent.prototype.constructor=sinon.ProgressEvent;sinon.CustomEvent=function CustomEvent(type,customData,target){this.initEvent(type,false,false,target);this.detail=customData.detail||null};sinon.CustomEvent.prototype=new sinon.Event;sinon.CustomEvent.prototype.constructor=sinon.CustomEvent;sinon.EventTarget={addEventListener:function addEventListener(event,listener){this.eventListeners=this.eventListeners||{};this.eventListeners[event]=this.eventListeners[event]||[];push.call(this.eventListeners[event],listener)},removeEventListener:function removeEventListener(event,listener){var listeners=this.eventListeners&&this.eventListeners[event]||[];for(var i=0,l=listeners.length;i<l;++i){if(listeners[i]===listener){return listeners.splice(i,1)}}},dispatchEvent:function dispatchEvent(event){var type=event.type;var listeners=this.eventListeners&&this.eventListeners[type]||[];for(var i=0;i<listeners.length;i++){if(typeof listeners[i]==="function"){listeners[i].call(this,event)}else{listeners[i].handleEvent(event)}}return!!event.defaultPrevented}}}var isNode=typeof module!=="undefined"&&module.exports&&typeof require==="function";var isAMD=typeof define==="function"&&typeof define.amd==="object"&&define.amd;function loadDependencies(require){var sinon=require("./core");makeApi(sinon)}if(isAMD){define(loadDependencies)}else if(isNode){loadDependencies(require)}else{makeApi(sinon)}})()},{"./core":35}],37:[function(require,module,exports){(function(){"use strict";var push=[].push;function responseArray(handler){var response=handler;if(Object.prototype.toString.call(handler)!=="[object Array]"){response=[200,{},handler]}if(typeof response[2]!=="string"){throw new TypeError("Fake server response body should be string, but was "+typeof response[2])}return response}var wloc=typeof window!=="undefined"?window.location:{};var rCurrLoc=new RegExp("^"+wloc.protocol+"//"+wloc.host);function matchOne(response,reqMethod,reqUrl){var rmeth=response.method;var matchMethod=!rmeth||rmeth.toLowerCase()===reqMethod.toLowerCase();var url=response.url;var matchUrl=!url||url===reqUrl||typeof url.test==="function"&&url.test(reqUrl);return matchMethod&&matchUrl}function match(response,request){var requestUrl=request.url;if(!/^https?:\/\//.test(requestUrl)||rCurrLoc.test(requestUrl)){requestUrl=requestUrl.replace(rCurrLoc,"")}if(matchOne(response,this.getHTTPMethod(request),requestUrl)){if(typeof response.response==="function"){var ru=response.url;var args=[request].concat(ru&&typeof ru.exec==="function"?ru.exec(requestUrl).slice(1):[]);return response.response.apply(response,args)}return true}return false}function makeApi(sinon){sinon.fakeServer={create:function(config){var server=sinon.create(this);server.configure(config);if(!sinon.xhr.supportsCORS){this.xhr=sinon.useFakeXDomainRequest()}else{this.xhr=sinon.useFakeXMLHttpRequest()}server.requests=[];this.xhr.onCreate=function(xhrObj){server.addRequest(xhrObj)};return server},configure:function(config){var whitelist={autoRespond:true,autoRespondAfter:true,respondImmediately:true,fakeHTTPMethods:true};var setting;config=config||{};for(setting in config){if(whitelist.hasOwnProperty(setting)&&config.hasOwnProperty(setting)){this[setting]=config[setting]}}},addRequest:function addRequest(xhrObj){var server=this;push.call(this.requests,xhrObj);xhrObj.onSend=function(){server.handleRequest(this);if(server.respondImmediately){server.respond()}else if(server.autoRespond&&!server.responding){setTimeout(function(){server.responding=false;server.respond()},server.autoRespondAfter||10);server.responding=true}}},getHTTPMethod:function getHTTPMethod(request){if(this.fakeHTTPMethods&&/post/i.test(request.method)){var matches=(request.requestBody||"").match(/_method=([^\b;]+)/);return matches?matches[1]:request.method}return request.method},handleRequest:function handleRequest(xhr){if(xhr.async){if(!this.queue){this.queue=[]}push.call(this.queue,xhr)}else{this.processRequest(xhr)}},log:function log(response,request){var str;str="Request:\n"+sinon.format(request)+"\n\n";str+="Response:\n"+sinon.format(response)+"\n\n";sinon.log(str)},respondWith:function respondWith(method,url,body){if(arguments.length===1&&typeof method!=="function"){this.response=responseArray(method);return}if(!this.responses){this.responses=[]}if(arguments.length===1){body=method;url=method=null}if(arguments.length===2){body=url;url=method;method=null}push.call(this.responses,{method:method,url:url,response:typeof body==="function"?body:responseArray(body)})},respond:function respond(){if(arguments.length>0){this.respondWith.apply(this,arguments)}var queue=this.queue||[];var requests=queue.splice(0,queue.length);for(var i=0;i<requests.length;i++){this.processRequest(requests[i])}},
processRequest:function processRequest(request){try{if(request.aborted){return}var response=this.response||[404,{},""];if(this.responses){for(var l=this.responses.length,i=l-1;i>=0;i--){if(match.call(this,this.responses[i],request)){response=this.responses[i].response;break}}}if(request.readyState!==4){this.log(response,request);request.respond(response[0],response[1],response[2])}}catch(e){sinon.logError("Fake server request processing",e)}},restore:function restore(){return this.xhr.restore&&this.xhr.restore.apply(this.xhr,arguments)}}}var isNode=typeof module!=="undefined"&&module.exports&&typeof require==="function";var isAMD=typeof define==="function"&&typeof define.amd==="object"&&define.amd;function loadDependencies(require,exports,module){var sinon=require("./core");require("./fake_xdomain_request");require("./fake_xml_http_request");require("../format");makeApi(sinon);module.exports=sinon}if(isAMD){define(loadDependencies)}else if(isNode){loadDependencies(require,module.exports,module)}else{makeApi(sinon)}})()},{"../format":24,"./core":35,"./fake_xdomain_request":40,"./fake_xml_http_request":41}],38:[function(require,module,exports){(function(){"use strict";function makeApi(sinon){function Server(){}Server.prototype=sinon.fakeServer;sinon.fakeServerWithClock=new Server;sinon.fakeServerWithClock.addRequest=function addRequest(xhr){if(xhr.async){if(typeof setTimeout.clock==="object"){this.clock=setTimeout.clock}else{this.clock=sinon.useFakeTimers();this.resetClock=true}if(!this.longestTimeout){var clockSetTimeout=this.clock.setTimeout;var clockSetInterval=this.clock.setInterval;var server=this;this.clock.setTimeout=function(fn,timeout){server.longestTimeout=Math.max(timeout,server.longestTimeout||0);return clockSetTimeout.apply(this,arguments)};this.clock.setInterval=function(fn,timeout){server.longestTimeout=Math.max(timeout,server.longestTimeout||0);return clockSetInterval.apply(this,arguments)}}}return sinon.fakeServer.addRequest.call(this,xhr)};sinon.fakeServerWithClock.respond=function respond(){var returnVal=sinon.fakeServer.respond.apply(this,arguments);if(this.clock){this.clock.tick(this.longestTimeout||0);this.longestTimeout=0;if(this.resetClock){this.clock.restore();this.resetClock=false}}return returnVal};sinon.fakeServerWithClock.restore=function restore(){if(this.clock){this.clock.restore()}return sinon.fakeServer.restore.apply(this,arguments)}}var isNode=typeof module!=="undefined"&&module.exports&&typeof require==="function";var isAMD=typeof define==="function"&&typeof define.amd==="object"&&define.amd;function loadDependencies(require){var sinon=require("./core");require("./fake_server");require("./fake_timers");makeApi(sinon)}if(isAMD){define(loadDependencies)}else if(isNode){loadDependencies(require)}else{makeApi(sinon)}})()},{"./core":35,"./fake_server":37,"./fake_timers":39}],39:[function(require,module,exports){(function(){"use strict";function makeApi(s,lol){var llx=typeof lolex!=="undefined"?lolex:lol;s.useFakeTimers=function(){var now;var methods=Array.prototype.slice.call(arguments);if(typeof methods[0]==="string"){now=0}else{now=methods.shift()}var clock=llx.install(now||0,methods);clock.restore=clock.uninstall;return clock};s.clock={create:function(now){return llx.createClock(now)}};s.timers={setTimeout:setTimeout,clearTimeout:clearTimeout,setImmediate:typeof setImmediate!=="undefined"?setImmediate:undefined,clearImmediate:typeof clearImmediate!=="undefined"?clearImmediate:undefined,setInterval:setInterval,clearInterval:clearInterval,Date:Date}}var isNode=typeof module!=="undefined"&&module.exports&&typeof require==="function";var isAMD=typeof define==="function"&&typeof define.amd==="object"&&define.amd;function loadDependencies(require,epxorts,module,lolex){var core=require("./core");makeApi(core,lolex);module.exports=core}if(isAMD){define(loadDependencies)}else if(isNode){loadDependencies(require,module.exports,module,require("lolex"))}else{makeApi(sinon)}})()},{"./core":35,lolex:44}],40:[function(require,module,exports){(function(global){function getGlobal(){"use strict";return typeof window!=="undefined"?window:global}if(typeof sinon==="undefined"){if(typeof this==="undefined"){getGlobal().sinon={}}else{this.sinon={}}}(function(global){"use strict";var xdr={XDomainRequest:global.XDomainRequest};xdr.GlobalXDomainRequest=global.XDomainRequest;xdr.supportsXDR=typeof xdr.GlobalXDomainRequest!=="undefined";xdr.workingXDR=xdr.supportsXDR?xdr.GlobalXDomainRequest:false;function makeApi(sinon){sinon.xdr=xdr;function FakeXDomainRequest(){this.readyState=FakeXDomainRequest.UNSENT;this.requestBody=null;this.requestHeaders={};this.status=0;this.timeout=null;if(typeof FakeXDomainRequest.onCreate==="function"){FakeXDomainRequest.onCreate(this)}}function verifyState(x){if(x.readyState!==FakeXDomainRequest.OPENED){throw new Error("INVALID_STATE_ERR")}if(x.sendFlag){throw new Error("INVALID_STATE_ERR")}}function verifyRequestSent(x){if(x.readyState===FakeXDomainRequest.UNSENT){throw new Error("Request not sent")}if(x.readyState===FakeXDomainRequest.DONE){throw new Error("Request done")}}function verifyResponseBodyType(body){if(typeof body!=="string"){var error=new Error("Attempted to respond to fake XDomainRequest with "+body+", which is not a string.");error.name="InvalidBodyException";throw error}}sinon.extend(FakeXDomainRequest.prototype,sinon.EventTarget,{open:function open(method,url){this.method=method;this.url=url;this.responseText=null;this.sendFlag=false;this.readyStateChange(FakeXDomainRequest.OPENED)},readyStateChange:function readyStateChange(state){this.readyState=state;var eventName="";switch(this.readyState){case FakeXDomainRequest.UNSENT:break;case FakeXDomainRequest.OPENED:break;case FakeXDomainRequest.LOADING:if(this.sendFlag){eventName="onprogress"}break;case FakeXDomainRequest.DONE:if(this.isTimeout){eventName="ontimeout"}else if(this.errorFlag||(this.status<200||this.status>299)){eventName="onerror"}else{eventName="onload"}break}if(eventName){if(typeof this[eventName]==="function"){try{this[eventName]()}catch(e){sinon.logError("Fake XHR "+eventName+" handler",e)}}}},send:function send(data){verifyState(this);if(!/^(get|head)$/i.test(this.method)){this.requestBody=data}this.requestHeaders["Content-Type"]="text/plain;charset=utf-8";this.errorFlag=false;this.sendFlag=true;this.readyStateChange(FakeXDomainRequest.OPENED);if(typeof this.onSend==="function"){this.onSend(this)}},abort:function abort(){this.aborted=true;this.responseText=null;this.errorFlag=true;if(this.readyState>sinon.FakeXDomainRequest.UNSENT&&this.sendFlag){this.readyStateChange(sinon.FakeXDomainRequest.DONE);this.sendFlag=false}},setResponseBody:function setResponseBody(body){verifyRequestSent(this);verifyResponseBodyType(body);var chunkSize=this.chunkSize||10;var index=0;this.responseText="";do{this.readyStateChange(FakeXDomainRequest.LOADING);this.responseText+=body.substring(index,index+chunkSize);index+=chunkSize}while(index<body.length);this.readyStateChange(FakeXDomainRequest.DONE)},respond:function respond(status,contentType,body){this.status=typeof status==="number"?status:200;this.setResponseBody(body||"")},simulatetimeout:function simulatetimeout(){this.status=0;this.isTimeout=true;this.responseText=undefined;this.readyStateChange(FakeXDomainRequest.DONE)}});sinon.extend(FakeXDomainRequest,{UNSENT:0,OPENED:1,LOADING:3,DONE:4});sinon.useFakeXDomainRequest=function useFakeXDomainRequest(){sinon.FakeXDomainRequest.restore=function restore(keepOnCreate){if(xdr.supportsXDR){global.XDomainRequest=xdr.GlobalXDomainRequest}delete sinon.FakeXDomainRequest.restore;if(keepOnCreate!==true){delete sinon.FakeXDomainRequest.onCreate}};if(xdr.supportsXDR){global.XDomainRequest=sinon.FakeXDomainRequest}return sinon.FakeXDomainRequest};sinon.FakeXDomainRequest=FakeXDomainRequest}var isNode=typeof module!=="undefined"&&module.exports&&typeof require==="function";var isAMD=typeof define==="function"&&typeof define.amd==="object"&&define.amd;function loadDependencies(require,exports,module){var sinon=require("./core");require("../extend");require("./event");require("../log_error");makeApi(sinon);module.exports=sinon}if(isAMD){define(loadDependencies)}else if(isNode){loadDependencies(require,module.exports,module)}else{makeApi(sinon)}})(typeof global!=="undefined"?global:self)}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"../extend":23,"../log_error":25,"./core":35,"./event":36}],41:[function(require,module,exports){(function(global){(function(sinonGlobal,global){"use strict";function getWorkingXHR(globalScope){var supportsXHR=typeof globalScope.XMLHttpRequest!=="undefined";if(supportsXHR){return globalScope.XMLHttpRequest}var supportsActiveX=typeof globalScope.ActiveXObject!=="undefined";if(supportsActiveX){return function(){return new globalScope.ActiveXObject("MSXML2.XMLHTTP.3.0")}}return false}var supportsProgress=typeof ProgressEvent!=="undefined";var supportsCustomEvent=typeof CustomEvent!=="undefined";var supportsFormData=typeof FormData!=="undefined";var supportsArrayBuffer=typeof ArrayBuffer!=="undefined";var supportsBlob=typeof Blob==="function";var sinonXhr={XMLHttpRequest:global.XMLHttpRequest};sinonXhr.GlobalXMLHttpRequest=global.XMLHttpRequest;sinonXhr.GlobalActiveXObject=global.ActiveXObject;sinonXhr.supportsActiveX=typeof sinonXhr.GlobalActiveXObject!=="undefined";sinonXhr.supportsXHR=typeof sinonXhr.GlobalXMLHttpRequest!=="undefined";sinonXhr.workingXHR=getWorkingXHR(global);sinonXhr.supportsCORS=sinonXhr.supportsXHR&&"withCredentials"in new sinonXhr.GlobalXMLHttpRequest;var unsafeHeaders={"Accept-Charset":true,"Accept-Encoding":true,Connection:true,"Content-Length":true,Cookie:true,Cookie2:true,"Content-Transfer-Encoding":true,Date:true,Expect:true,Host:true,"Keep-Alive":true,Referer:true,TE:true,Trailer:true,"Transfer-Encoding":true,Upgrade:true,"User-Agent":true,Via:true};function UploadProgress(){this.eventListeners={progress:[],load:[],abort:[],error:[]}}UploadProgress.prototype.addEventListener=function addEventListener(event,listener){this.eventListeners[event].push(listener)};UploadProgress.prototype.removeEventListener=function removeEventListener(event,listener){var listeners=this.eventListeners[event]||[];for(var i=0,l=listeners.length;i<l;++i){if(listeners[i]===listener){return listeners.splice(i,1)}}};UploadProgress.prototype.dispatchEvent=function dispatchEvent(event){var listeners=this.eventListeners[event.type]||[];for(var i=0,listener;(listener=listeners[i])!=null;i++){listener(event)}};function FakeXMLHttpRequest(){this.readyState=FakeXMLHttpRequest.UNSENT;this.requestHeaders={};this.requestBody=null;this.status=0;this.statusText="";this.upload=new UploadProgress;this.responseType="";this.response="";if(sinonXhr.supportsCORS){this.withCredentials=false}var xhr=this;var events=["loadstart","load","abort","loadend"];function addEventListener(eventName){xhr.addEventListener(eventName,function(event){var listener=xhr["on"+eventName];if(listener&&typeof listener==="function"){listener.call(this,event)}})}for(var i=events.length-1;i>=0;i--){addEventListener(events[i])}if(typeof FakeXMLHttpRequest.onCreate==="function"){FakeXMLHttpRequest.onCreate(this)}}function verifyState(xhr){if(xhr.readyState!==FakeXMLHttpRequest.OPENED){throw new Error("INVALID_STATE_ERR")}if(xhr.sendFlag){throw new Error("INVALID_STATE_ERR")}}function getHeader(headers,header){header=header.toLowerCase();for(var h in headers){if(h.toLowerCase()===header){return h}}return null}function each(collection,callback){if(!collection){return}for(var i=0,l=collection.length;i<l;i+=1){callback(collection[i])}}function some(collection,callback){for(var index=0;index<collection.length;index++){if(callback(collection[index])===true){return true}}return false}var apply=function(obj,method,args){switch(args.length){case 0:return obj[method]();case 1:return obj[method](args[0]);case 2:return obj[method](args[0],args[1]);case 3:return obj[method](args[0],args[1],args[2]);case 4:return obj[method](args[0],args[1],args[2],args[3]);case 5:return obj[method](args[0],args[1],args[2],args[3],args[4])}};FakeXMLHttpRequest.filters=[];FakeXMLHttpRequest.addFilter=function addFilter(fn){this.filters.push(fn)};var IE6Re=/MSIE 6/;FakeXMLHttpRequest.defake=function defake(fakeXhr,xhrArgs){var xhr=new sinonXhr.workingXHR;each(["open","setRequestHeader","send","abort","getResponseHeader","getAllResponseHeaders","addEventListener","overrideMimeType","removeEventListener"],function(method){fakeXhr[method]=function(){return apply(xhr,method,arguments)}});var copyAttrs=function(args){each(args,function(attr){try{fakeXhr[attr]=xhr[attr]}catch(e){if(!IE6Re.test(navigator.userAgent)){throw e}}})};var stateChange=function stateChange(){fakeXhr.readyState=xhr.readyState;if(xhr.readyState>=FakeXMLHttpRequest.HEADERS_RECEIVED){copyAttrs(["status","statusText"])}if(xhr.readyState>=FakeXMLHttpRequest.LOADING){copyAttrs(["responseText","response"])}if(xhr.readyState===FakeXMLHttpRequest.DONE){copyAttrs(["responseXML"])}if(fakeXhr.onreadystatechange){fakeXhr.onreadystatechange.call(fakeXhr,{target:fakeXhr})}};if(xhr.addEventListener){for(var event in fakeXhr.eventListeners){if(fakeXhr.eventListeners.hasOwnProperty(event)){each(fakeXhr.eventListeners[event],function(handler){xhr.addEventListener(event,handler)})}}xhr.addEventListener("readystatechange",stateChange)}else{xhr.onreadystatechange=stateChange}apply(xhr,"open",xhrArgs)};FakeXMLHttpRequest.useFilters=false;function verifyRequestOpened(xhr){if(xhr.readyState!==FakeXMLHttpRequest.OPENED){throw new Error("INVALID_STATE_ERR - "+xhr.readyState)}}function verifyRequestSent(xhr){if(xhr.readyState===FakeXMLHttpRequest.DONE){throw new Error("Request done")}}function verifyHeadersReceived(xhr){if(xhr.async&&xhr.readyState!==FakeXMLHttpRequest.HEADERS_RECEIVED){throw new Error("No headers received")}}function verifyResponseBodyType(body){if(typeof body!=="string"){var error=new Error("Attempted to respond to fake XMLHttpRequest with "+body+", which is not a string.");error.name="InvalidBodyException";throw error}}function convertToArrayBuffer(body){var buffer=new ArrayBuffer(body.length);var view=new Uint8Array(buffer);for(var i=0;i<body.length;i++){var charCode=body.charCodeAt(i);if(charCode>=256){throw new TypeError("arraybuffer or blob responseTypes require binary string, "+"invalid character "+body[i]+" found.")}view[i]=charCode}return buffer}function isXmlContentType(contentType){return!contentType||/(text\/xml)|(application\/xml)|(\+xml)/.test(contentType)}function convertResponseBody(responseType,contentType,body){if(responseType===""||responseType==="text"){return body}else if(supportsArrayBuffer&&responseType==="arraybuffer"){return convertToArrayBuffer(body)}else if(responseType==="json"){try{return JSON.parse(body)}catch(e){return null}}else if(supportsBlob&&responseType==="blob"){var blobOptions={};if(contentType){blobOptions.type=contentType}return new Blob([convertToArrayBuffer(body)],blobOptions)}else if(responseType==="document"){if(isXmlContentType(contentType)){return FakeXMLHttpRequest.parseXML(body)}return null}throw new Error("Invalid responseType "+responseType)}function clearResponse(xhr){if(xhr.responseType===""||xhr.responseType==="text"){xhr.response=xhr.responseText=""}else{xhr.response=xhr.responseText=null}xhr.responseXML=null}FakeXMLHttpRequest.parseXML=function parseXML(text){if(text!==""){try{if(typeof DOMParser!=="undefined"){var parser=new DOMParser;return parser.parseFromString(text,"text/xml")}var xmlDoc=new window.ActiveXObject("Microsoft.XMLDOM");xmlDoc.async="false";xmlDoc.loadXML(text);return xmlDoc}catch(e){}}return null};FakeXMLHttpRequest.statusCodes={100:"Continue",101:"Switching Protocols",200:"OK",201:"Created",202:"Accepted",203:"Non-Authoritative Information",204:"No Content",205:"Reset Content",206:"Partial Content",207:"Multi-Status",300:"Multiple Choice",301:"Moved Permanently",302:"Found",303:"See Other",304:"Not Modified",305:"Use Proxy",307:"Temporary Redirect",400:"Bad Request",401:"Unauthorized",402:"Payment Required",403:"Forbidden",404:"Not Found",405:"Method Not Allowed",406:"Not Acceptable",407:"Proxy Authentication Required",408:"Request Timeout",409:"Conflict",410:"Gone",411:"Length Required",412:"Precondition Failed",413:"Request Entity Too Large",414:"Request-URI Too Long",415:"Unsupported Media Type",416:"Requested Range Not Satisfiable",417:"Expectation Failed",422:"Unprocessable Entity",500:"Internal Server Error",501:"Not Implemented",502:"Bad Gateway",503:"Service Unavailable",504:"Gateway Timeout",505:"HTTP Version Not Supported"};function makeApi(sinon){sinon.xhr=sinonXhr;sinon.extend(FakeXMLHttpRequest.prototype,sinon.EventTarget,{async:true,open:function open(method,url,async,username,password){this.method=method;this.url=url;this.async=typeof async==="boolean"?async:true;this.username=username;this.password=password;clearResponse(this);this.requestHeaders={};this.sendFlag=false;if(FakeXMLHttpRequest.useFilters===true){var xhrArgs=arguments;var defake=some(FakeXMLHttpRequest.filters,function(filter){return filter.apply(this,xhrArgs)});if(defake){return FakeXMLHttpRequest.defake(this,arguments)}}this.readyStateChange(FakeXMLHttpRequest.OPENED)},readyStateChange:function readyStateChange(state){this.readyState=state;var readyStateChangeEvent=new sinon.Event("readystatechange",false,false,this);if(typeof this.onreadystatechange==="function"){try{this.onreadystatechange(readyStateChangeEvent)}catch(e){sinon.logError("Fake XHR onreadystatechange handler",e)}}switch(this.readyState){case FakeXMLHttpRequest.DONE:if(supportsProgress){this.upload.dispatchEvent(new sinon.ProgressEvent("progress",{loaded:100,total:100}));this.dispatchEvent(new sinon.ProgressEvent("progress",{loaded:100,total:100}))}this.upload.dispatchEvent(new sinon.Event("load",false,false,this));this.dispatchEvent(new sinon.Event("load",false,false,this));this.dispatchEvent(new sinon.Event("loadend",false,false,this));break}this.dispatchEvent(readyStateChangeEvent)},setRequestHeader:function setRequestHeader(header,value){verifyState(this);if(unsafeHeaders[header]||/^(Sec-|Proxy-)/.test(header)){throw new Error('Refused to set unsafe header "'+header+'"')}if(this.requestHeaders[header]){this.requestHeaders[header]+=","+value}else{this.requestHeaders[header]=value}},setResponseHeaders:function setResponseHeaders(headers){verifyRequestOpened(this);this.responseHeaders={};for(var header in headers){if(headers.hasOwnProperty(header)){this.responseHeaders[header]=headers[header]}}if(this.async){this.readyStateChange(FakeXMLHttpRequest.HEADERS_RECEIVED)}else{this.readyState=FakeXMLHttpRequest.HEADERS_RECEIVED}},send:function send(data){verifyState(this);if(!/^(get|head)$/i.test(this.method)){var contentType=getHeader(this.requestHeaders,"Content-Type");if(this.requestHeaders[contentType]){var value=this.requestHeaders[contentType].split(";");this.requestHeaders[contentType]=value[0]+";charset=utf-8"}else if(supportsFormData&&!(data instanceof FormData)){this.requestHeaders["Content-Type"]="text/plain;charset=utf-8"}this.requestBody=data}this.errorFlag=false;this.sendFlag=this.async;clearResponse(this);this.readyStateChange(FakeXMLHttpRequest.OPENED);if(typeof this.onSend==="function"){this.onSend(this)}this.dispatchEvent(new sinon.Event("loadstart",false,false,this))},abort:function abort(){this.aborted=true;clearResponse(this);this.errorFlag=true;this.requestHeaders={};this.responseHeaders={};if(this.readyState>FakeXMLHttpRequest.UNSENT&&this.sendFlag){this.readyStateChange(FakeXMLHttpRequest.DONE);this.sendFlag=false}this.readyState=FakeXMLHttpRequest.UNSENT;this.dispatchEvent(new sinon.Event("abort",false,false,this));this.upload.dispatchEvent(new sinon.Event("abort",false,false,this));if(typeof this.onerror==="function"){this.onerror()}},getResponseHeader:function getResponseHeader(header){if(this.readyState<FakeXMLHttpRequest.HEADERS_RECEIVED){return null}if(/^Set-Cookie2?$/i.test(header)){return null}header=getHeader(this.responseHeaders,header);return this.responseHeaders[header]||null},getAllResponseHeaders:function getAllResponseHeaders(){if(this.readyState<FakeXMLHttpRequest.HEADERS_RECEIVED){return""}var headers="";for(var header in this.responseHeaders){if(this.responseHeaders.hasOwnProperty(header)&&!/^Set-Cookie2?$/i.test(header)){headers+=header+": "+this.responseHeaders[header]+"\r\n"}}return headers},setResponseBody:function setResponseBody(body){verifyRequestSent(this);verifyHeadersReceived(this);verifyResponseBodyType(body);var contentType=this.getResponseHeader("Content-Type");var isTextResponse=this.responseType===""||this.responseType==="text";clearResponse(this);if(this.async){var chunkSize=this.chunkSize||10;var index=0;do{this.readyStateChange(FakeXMLHttpRequest.LOADING);if(isTextResponse){this.responseText=this.response+=body.substring(index,index+chunkSize)}index+=chunkSize}while(index<body.length)}this.response=convertResponseBody(this.responseType,contentType,body);if(isTextResponse){this.responseText=this.response}if(this.responseType==="document"){this.responseXML=this.response}else if(this.responseType===""&&isXmlContentType(contentType)){this.responseXML=FakeXMLHttpRequest.parseXML(this.responseText)}this.readyStateChange(FakeXMLHttpRequest.DONE)},respond:function respond(status,headers,body){this.status=typeof status==="number"?status:200;this.statusText=FakeXMLHttpRequest.statusCodes[this.status];this.setResponseHeaders(headers||{});this.setResponseBody(body||"")},uploadProgress:function uploadProgress(progressEventRaw){if(supportsProgress){this.upload.dispatchEvent(new sinon.ProgressEvent("progress",progressEventRaw))}},downloadProgress:function downloadProgress(progressEventRaw){if(supportsProgress){this.dispatchEvent(new sinon.ProgressEvent("progress",progressEventRaw))}},uploadError:function uploadError(error){if(supportsCustomEvent){this.upload.dispatchEvent(new sinon.CustomEvent("error",{detail:error}))}}});sinon.extend(FakeXMLHttpRequest,{UNSENT:0,OPENED:1,HEADERS_RECEIVED:2,LOADING:3,DONE:4});sinon.useFakeXMLHttpRequest=function(){FakeXMLHttpRequest.restore=function restore(keepOnCreate){if(sinonXhr.supportsXHR){global.XMLHttpRequest=sinonXhr.GlobalXMLHttpRequest}if(sinonXhr.supportsActiveX){global.ActiveXObject=sinonXhr.GlobalActiveXObject}delete FakeXMLHttpRequest.restore;if(keepOnCreate!==true){delete FakeXMLHttpRequest.onCreate}};if(sinonXhr.supportsXHR){global.XMLHttpRequest=FakeXMLHttpRequest}if(sinonXhr.supportsActiveX){global.ActiveXObject=function ActiveXObject(objId){if(objId==="Microsoft.XMLHTTP"||/^Msxml2\.XMLHTTP/i.test(objId)){return new FakeXMLHttpRequest}return new sinonXhr.GlobalActiveXObject(objId)}}return FakeXMLHttpRequest};sinon.FakeXMLHttpRequest=FakeXMLHttpRequest}var isNode=typeof module!=="undefined"&&module.exports&&typeof require==="function";var isAMD=typeof define==="function"&&typeof define.amd==="object"&&define.amd;function loadDependencies(require,exports,module){var sinon=require("./core");require("../extend");require("./event");require("../log_error");makeApi(sinon);module.exports=sinon}if(isAMD){define(loadDependencies);return}if(isNode){loadDependencies(require,module.exports,module);return}if(sinonGlobal){makeApi(sinonGlobal)}})(typeof sinon==="object"&&sinon,typeof global!=="undefined"?global:self)}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"../extend":23,"../log_error":25,"./core":35,"./event":36}],42:[function(require,module,exports){(function(sinonGlobal){"use strict";function makeApi(sinon){function walkInternal(obj,iterator,context,originalObj,seen){var proto,prop;if(typeof Object.getOwnPropertyNames!=="function"){for(prop in obj){iterator.call(context,obj[prop],prop,obj)}return}Object.getOwnPropertyNames(obj).forEach(function(k){if(!seen[k]){seen[k]=true;var target=typeof Object.getOwnPropertyDescriptor(obj,k).get==="function"?originalObj:obj;iterator.call(context,target[k],k,target)}});proto=Object.getPrototypeOf(obj);if(proto){walkInternal(proto,iterator,context,originalObj,seen)}}function walk(obj,iterator,context){return walkInternal(obj,iterator,context,obj,{})}sinon.walk=walk;return sinon.walk}function loadDependencies(require,exports,module){var sinon=require("./util/core");module.exports=makeApi(sinon)}var isNode=typeof module!=="undefined"&&module.exports&&typeof require==="function";var isAMD=typeof define==="function"&&typeof define.amd==="object"&&define.amd;if(isAMD){define(loadDependencies);return}if(isNode){loadDependencies(require,module.exports,module);return}if(sinonGlobal){makeApi(sinonGlobal)}})(typeof sinon==="object"&&sinon)},{"./util/core":35}],43:[function(require,module,exports){(function(global){(typeof define==="function"&&define.amd&&function(m){define("formatio",["samsam"],m)}||typeof module==="object"&&function(m){module.exports=m(require("samsam"))}||function(m){this.formatio=m(this.samsam)})(function(samsam){"use strict";var formatio={excludeConstructors:["Object",/^.$/],quoteStrings:true,limitChildrenCount:0};var hasOwn=Object.prototype.hasOwnProperty;var specialObjects=[];if(typeof global!=="undefined"){specialObjects.push({object:global,value:"[object global]"})}if(typeof document!=="undefined"){specialObjects.push({object:document,value:"[object HTMLDocument]"})}if(typeof window!=="undefined"){specialObjects.push({object:window,value:"[object Window]"})}function functionName(func){if(!func){return""}if(func.displayName){return func.displayName}if(func.name){return func.name}var matches=func.toString().match(/function\s+([^\(]+)/m);return matches&&matches[1]||""}function constructorName(f,object){var name=functionName(object&&object.constructor);var excludes=f.excludeConstructors||formatio.excludeConstructors||[];var i,l;for(i=0,l=excludes.length;i<l;++i){if(typeof excludes[i]==="string"&&excludes[i]===name){return""}else if(excludes[i].test&&excludes[i].test(name)){return""}}return name}function isCircular(object,objects){if(typeof object!=="object"){return false}var i,l;for(i=0,l=objects.length;i<l;++i){if(objects[i]===object){return true}}return false}function ascii(f,object,processed,indent){if(typeof object==="string"){var qs=f.quoteStrings;var quote=typeof qs!=="boolean"||qs;return processed||quote?'"'+object+'"':object}if(typeof object==="function"&&!(object instanceof RegExp)){return ascii.func(object)}processed=processed||[];if(isCircular(object,processed)){return"[Circular]"}if(Object.prototype.toString.call(object)==="[object Array]"){return ascii.array.call(f,object,processed)}if(!object){return String(1/object===-Infinity?"-0":object)}if(samsam.isElement(object)){return ascii.element(object)}if(typeof object.toString==="function"&&object.toString!==Object.prototype.toString){return object.toString()}var i,l;for(i=0,l=specialObjects.length;i<l;i++){if(object===specialObjects[i].object){return specialObjects[i].value}}return ascii.object.call(f,object,processed,indent)}ascii.func=function(func){return"function "+functionName(func)+"() {}"};ascii.array=function(array,processed){processed=processed||[];processed.push(array);var pieces=[];var i,l;l=this.limitChildrenCount>0?Math.min(this.limitChildrenCount,array.length):array.length;for(i=0;i<l;++i){pieces.push(ascii(this,array[i],processed))}if(l<array.length)pieces.push("[... "+(array.length-l)+" more elements]");return"["+pieces.join(", ")+"]"};ascii.object=function(object,processed,indent){processed=processed||[];processed.push(object);indent=indent||0;var pieces=[],properties=samsam.keys(object).sort();var length=3;var prop,str,obj,i,k,l;l=this.limitChildrenCount>0?Math.min(this.limitChildrenCount,properties.length):properties.length;for(i=0;i<l;++i){prop=properties[i];obj=object[prop];if(isCircular(obj,processed)){str="[Circular]"}else{str=ascii(this,obj,processed,indent+2)}str=(/\s/.test(prop)?'"'+prop+'"':prop)+": "+str;length+=str.length;pieces.push(str)}var cons=constructorName(this,object);var prefix=cons?"["+cons+"] ":"";var is="";for(i=0,k=indent;i<k;++i){is+=" "}if(l<properties.length)pieces.push("[... "+(properties.length-l)+" more elements]");if(length+indent>80){return prefix+"{\n "+is+pieces.join(",\n "+is)+"\n"+is+"}"}return prefix+"{ "+pieces.join(", ")+" }"};ascii.element=function(element){var tagName=element.tagName.toLowerCase();var attrs=element.attributes,attr,pairs=[],attrName,i,l,val;for(i=0,l=attrs.length;i<l;++i){attr=attrs.item(i);attrName=attr.nodeName.toLowerCase().replace("html:","");val=attr.nodeValue;if(attrName!=="contenteditable"||val!=="inherit"){if(!!val){pairs.push(attrName+'="'+val+'"')}}}var formatted="<"+tagName+(pairs.length>0?" ":"");var content=element.innerHTML;if(content.length>20){content=content.substr(0,20)+"[...]"}var res=formatted+pairs.join(" ")+">"+content+"</"+tagName+">";return res.replace(/ contentEditable="inherit"/,"")};function Formatio(options){for(var opt in options){this[opt]=options[opt]}}Formatio.prototype={functionName:functionName,configure:function(options){return new Formatio(options)},constructorName:function(object){return constructorName(this,object)},ascii:function(object,processed,indent){return ascii(this,object,processed,indent)}};return Formatio.prototype})}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{samsam:45}],44:[function(require,module,exports){(function(global){(function(global){"use strict";var glbl=global;global.setTimeout=glbl.setTimeout;global.clearTimeout=glbl.clearTimeout;global.setInterval=glbl.setInterval;global.clearInterval=glbl.clearInterval;global.Date=glbl.Date;if("setImmediate"in global){global.setImmediate=glbl.setImmediate;global.clearImmediate=glbl.clearImmediate}var NOOP=function(){return undefined};var timeoutResult=setTimeout(NOOP,0);var addTimerReturnsObject=typeof timeoutResult==="object";clearTimeout(timeoutResult);var NativeDate=Date;var uniqueTimerId=1;function parseTime(str){if(!str){return 0}var strings=str.split(":");var l=strings.length,i=l;var ms=0,parsed;if(l>3||!/^(\d\d:){0,2}\d\d?$/.test(str)){throw new Error("tick only understands numbers and 'h:m:s'")}while(i--){parsed=parseInt(strings[i],10);if(parsed>=60){throw new Error("Invalid time "+str)}ms+=parsed*Math.pow(60,l-i-1)}return ms*1e3}function getEpoch(epoch){if(!epoch){return 0}if(typeof epoch.getTime==="function"){return epoch.getTime()}if(typeof epoch==="number"){return epoch}throw new TypeError("now should be milliseconds since UNIX epoch")}function inRange(from,to,timer){return timer&&timer.callAt>=from&&timer.callAt<=to}function mirrorDateProperties(target,source){var prop;for(prop in source){if(source.hasOwnProperty(prop)){target[prop]=source[prop]}}if(source.now){target.now=function now(){return target.clock.now}}else{delete target.now}if(source.toSource){target.toSource=function toSource(){return source.toSource()}}else{delete target.toSource}target.toString=function toString(){return source.toString()};target.prototype=source.prototype;target.parse=source.parse;target.UTC=source.UTC;target.prototype.toUTCString=source.prototype.toUTCString;return target}function createDate(){function ClockDate(year,month,date,hour,minute,second,ms){switch(arguments.length){case 0:return new NativeDate(ClockDate.clock.now);case 1:return new NativeDate(year);case 2:return new NativeDate(year,month);case 3:return new NativeDate(year,month,date);case 4:return new NativeDate(year,month,date,hour);case 5:return new NativeDate(year,month,date,hour,minute);case 6:return new NativeDate(year,month,date,hour,minute,second);default:return new NativeDate(year,month,date,hour,minute,second,ms)}}return mirrorDateProperties(ClockDate,NativeDate)}function addTimer(clock,timer){if(timer.func===undefined){throw new Error("Callback must be provided to timer calls")}if(!clock.timers){clock.timers={}}timer.id=uniqueTimerId++;
timer.createdAt=clock.now;timer.callAt=clock.now+(timer.delay||(clock.duringTick?1:0));clock.timers[timer.id]=timer;if(addTimerReturnsObject){return{id:timer.id,ref:NOOP,unref:NOOP}}return timer.id}function compareTimers(a,b){if(a.callAt<b.callAt){return-1}if(a.callAt>b.callAt){return 1}if(a.immediate&&!b.immediate){return-1}if(!a.immediate&&b.immediate){return 1}if(a.createdAt<b.createdAt){return-1}if(a.createdAt>b.createdAt){return 1}if(a.id<b.id){return-1}if(a.id>b.id){return 1}}function firstTimerInRange(clock,from,to){var timers=clock.timers,timer=null,id,isInRange;for(id in timers){if(timers.hasOwnProperty(id)){isInRange=inRange(from,to,timers[id]);if(isInRange&&(!timer||compareTimers(timer,timers[id])===1)){timer=timers[id]}}}return timer}function callTimer(clock,timer){var exception;if(typeof timer.interval==="number"){clock.timers[timer.id].callAt+=timer.interval}else{delete clock.timers[timer.id]}try{if(typeof timer.func==="function"){timer.func.apply(null,timer.args)}else{eval(timer.func)}}catch(e){exception=e}if(!clock.timers[timer.id]){if(exception){throw exception}return}if(exception){throw exception}}function timerType(timer){if(timer.immediate){return"Immediate"}else if(typeof timer.interval!=="undefined"){return"Interval"}else{return"Timeout"}}function clearTimer(clock,timerId,ttype){if(!timerId){return}if(!clock.timers){clock.timers=[]}if(typeof timerId==="object"){timerId=timerId.id}if(clock.timers.hasOwnProperty(timerId)){var timer=clock.timers[timerId];if(timerType(timer)===ttype){delete clock.timers[timerId]}else{throw new Error("Cannot clear timer: timer created with set"+ttype+"() but cleared with clear"+timerType(timer)+"()")}}}function uninstall(clock,target){var method,i,l;for(i=0,l=clock.methods.length;i<l;i++){method=clock.methods[i];if(target[method].hadOwnProperty){target[method]=clock["_"+method]}else{try{delete target[method]}catch(ignore){}}}clock.methods=[]}function hijackMethod(target,method,clock){var prop;clock[method].hadOwnProperty=Object.prototype.hasOwnProperty.call(target,method);clock["_"+method]=target[method];if(method==="Date"){var date=mirrorDateProperties(clock[method],target[method]);target[method]=date}else{target[method]=function(){return clock[method].apply(clock,arguments)};for(prop in clock[method]){if(clock[method].hasOwnProperty(prop)){target[method][prop]=clock[method][prop]}}}target[method].clock=clock}var timers={setTimeout:setTimeout,clearTimeout:clearTimeout,setImmediate:global.setImmediate,clearImmediate:global.clearImmediate,setInterval:setInterval,clearInterval:clearInterval,Date:Date};var keys=Object.keys||function(obj){var ks=[],key;for(key in obj){if(obj.hasOwnProperty(key)){ks.push(key)}}return ks};exports.timers=timers;function createClock(now){var clock={now:getEpoch(now),timeouts:{},Date:createDate()};clock.Date.clock=clock;clock.setTimeout=function setTimeout(func,timeout){return addTimer(clock,{func:func,args:Array.prototype.slice.call(arguments,2),delay:timeout})};clock.clearTimeout=function clearTimeout(timerId){return clearTimer(clock,timerId,"Timeout")};clock.setInterval=function setInterval(func,timeout){return addTimer(clock,{func:func,args:Array.prototype.slice.call(arguments,2),delay:timeout,interval:timeout})};clock.clearInterval=function clearInterval(timerId){return clearTimer(clock,timerId,"Interval")};clock.setImmediate=function setImmediate(func){return addTimer(clock,{func:func,args:Array.prototype.slice.call(arguments,1),immediate:true})};clock.clearImmediate=function clearImmediate(timerId){return clearTimer(clock,timerId,"Immediate")};clock.tick=function tick(ms){ms=typeof ms==="number"?ms:parseTime(ms);var tickFrom=clock.now,tickTo=clock.now+ms,previous=clock.now;var timer=firstTimerInRange(clock,tickFrom,tickTo);var oldNow;clock.duringTick=true;var firstException;while(timer&&tickFrom<=tickTo){if(clock.timers[timer.id]){tickFrom=clock.now=timer.callAt;try{oldNow=clock.now;callTimer(clock,timer);if(oldNow!==clock.now){tickFrom+=clock.now-oldNow;tickTo+=clock.now-oldNow;previous+=clock.now-oldNow}}catch(e){firstException=firstException||e}}timer=firstTimerInRange(clock,previous,tickTo);previous=tickFrom}clock.duringTick=false;clock.now=tickTo;if(firstException){throw firstException}return clock.now};clock.reset=function reset(){clock.timers={}};clock.setSystemTime=function setSystemTime(now){var newNow=getEpoch(now);var difference=newNow-clock.now;clock.now=newNow;for(var id in clock.timers){if(clock.timers.hasOwnProperty(id)){var timer=clock.timers[id];timer.createdAt+=difference;timer.callAt+=difference}}};return clock}exports.createClock=createClock;exports.install=function install(target,now,toFake){var i,l;if(typeof target==="number"){toFake=now;now=target;target=null}if(!target){target=global}var clock=createClock(now);clock.uninstall=function(){uninstall(clock,target)};clock.methods=toFake||[];if(clock.methods.length===0){clock.methods=keys(timers)}for(i=0,l=clock.methods.length;i<l;i++){hijackMethod(target,clock.methods[i],clock)}return clock}})(global||this)}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{}],45:[function(require,module,exports){(typeof define==="function"&&define.amd&&function(m){define("samsam",m)}||typeof module==="object"&&function(m){module.exports=m()}||function(m){this.samsam=m()})(function(){var o=Object.prototype;var div=typeof document!=="undefined"&&document.createElement("div");function isNaN(value){var val=value;return typeof value==="number"&&value!==val}function getClass(value){return o.toString.call(value).split(/[ \]]/)[1]}function isArguments(object){if(getClass(object)==="Arguments"){return true}if(typeof object!=="object"||typeof object.length!=="number"||getClass(object)==="Array"){return false}if(typeof object.callee=="function"){return true}try{object[object.length]=6;delete object[object.length]}catch(e){return true}return false}function isElement(object){if(!object||object.nodeType!==1||!div){return false}try{object.appendChild(div);object.removeChild(div)}catch(e){return false}return true}function keys(object){var ks=[],prop;for(prop in object){if(o.hasOwnProperty.call(object,prop)){ks.push(prop)}}return ks}function isDate(value){return typeof value.getTime=="function"&&value.getTime()==value.valueOf()}function isNegZero(value){return value===0&&1/value===-Infinity}function identical(obj1,obj2){if(obj1===obj2||isNaN(obj1)&&isNaN(obj2)){return obj1!==0||isNegZero(obj1)===isNegZero(obj2)}}function deepEqualCyclic(obj1,obj2){var objects1=[],objects2=[],paths1=[],paths2=[],compared={};function isObject(value){if(typeof value==="object"&&value!==null&&!(value instanceof Boolean)&&!(value instanceof Date)&&!(value instanceof Number)&&!(value instanceof RegExp)&&!(value instanceof String)){return true}return false}function getIndex(objects,obj){var i;for(i=0;i<objects.length;i++){if(objects[i]===obj){return i}}return-1}return function deepEqual(obj1,obj2,path1,path2){var type1=typeof obj1;var type2=typeof obj2;if(obj1===obj2||isNaN(obj1)||isNaN(obj2)||obj1==null||obj2==null||type1!=="object"||type2!=="object"){return identical(obj1,obj2)}if(isElement(obj1)||isElement(obj2)){return false}var isDate1=isDate(obj1),isDate2=isDate(obj2);if(isDate1||isDate2){if(!isDate1||!isDate2||obj1.getTime()!==obj2.getTime()){return false}}if(obj1 instanceof RegExp&&obj2 instanceof RegExp){if(obj1.toString()!==obj2.toString()){return false}}var class1=getClass(obj1);var class2=getClass(obj2);var keys1=keys(obj1);var keys2=keys(obj2);if(isArguments(obj1)||isArguments(obj2)){if(obj1.length!==obj2.length){return false}}else{if(type1!==type2||class1!==class2||keys1.length!==keys2.length){return false}}var key,i,l,value1,value2,isObject1,isObject2,index1,index2,newPath1,newPath2;for(i=0,l=keys1.length;i<l;i++){key=keys1[i];if(!o.hasOwnProperty.call(obj2,key)){return false}value1=obj1[key];value2=obj2[key];isObject1=isObject(value1);isObject2=isObject(value2);index1=isObject1?getIndex(objects1,value1):-1;index2=isObject2?getIndex(objects2,value2):-1;newPath1=index1!==-1?paths1[index1]:path1+"["+JSON.stringify(key)+"]";newPath2=index2!==-1?paths2[index2]:path2+"["+JSON.stringify(key)+"]";if(compared[newPath1+newPath2]){return true}if(index1===-1&&isObject1){objects1.push(value1);paths1.push(newPath1)}if(index2===-1&&isObject2){objects2.push(value2);paths2.push(newPath2)}if(isObject1&&isObject2){compared[newPath1+newPath2]=true}if(!deepEqual(value1,value2,newPath1,newPath2)){return false}}return true}(obj1,obj2,"$1","$2")}var match;function arrayContains(array,subset){if(subset.length===0){return true}var i,l,j,k;for(i=0,l=array.length;i<l;++i){if(match(array[i],subset[0])){for(j=0,k=subset.length;j<k;++j){if(!match(array[i+j],subset[j])){return false}}return true}}return false}match=function match(object,matcher){if(matcher&&typeof matcher.test==="function"){return matcher.test(object)}if(typeof matcher==="function"){return matcher(object)===true}if(typeof matcher==="string"){matcher=matcher.toLowerCase();var notNull=typeof object==="string"||!!object;return notNull&&String(object).toLowerCase().indexOf(matcher)>=0}if(typeof matcher==="number"){return matcher===object}if(typeof matcher==="boolean"){return matcher===object}if(typeof matcher==="undefined"){return typeof object==="undefined"}if(matcher===null){return object===null}if(getClass(object)==="Array"&&getClass(matcher)==="Array"){return arrayContains(object,matcher)}if(matcher&&typeof matcher==="object"){if(matcher===object){return true}var prop;for(prop in matcher){var value=object[prop];if(typeof value==="undefined"&&typeof object.getAttribute==="function"){value=object.getAttribute(prop)}if(matcher[prop]===null||typeof matcher[prop]==="undefined"){if(value!==matcher[prop]){return false}}else if(typeof value==="undefined"||!match(value,matcher[prop])){return false}}return true}throw new Error("Matcher was not a string, a number, a "+"function, a boolean or an object")};return{isArguments:isArguments,isElement:isElement,isDate:isDate,isNegZero:isNegZero,identical:identical,deepEqual:deepEqualCyclic,match:match,keys:keys}})},{}],46:[function(require,module,exports){(function(){var root=this;var previousUnderscore=root._;var breaker={};var ArrayProto=Array.prototype,ObjProto=Object.prototype,FuncProto=Function.prototype;var push=ArrayProto.push,slice=ArrayProto.slice,concat=ArrayProto.concat,toString=ObjProto.toString,hasOwnProperty=ObjProto.hasOwnProperty;var nativeForEach=ArrayProto.forEach,nativeMap=ArrayProto.map,nativeReduce=ArrayProto.reduce,nativeReduceRight=ArrayProto.reduceRight,nativeFilter=ArrayProto.filter,nativeEvery=ArrayProto.every,nativeSome=ArrayProto.some,nativeIndexOf=ArrayProto.indexOf,nativeLastIndexOf=ArrayProto.lastIndexOf,nativeIsArray=Array.isArray,nativeKeys=Object.keys,nativeBind=FuncProto.bind;var _=function(obj){if(obj instanceof _)return obj;if(!(this instanceof _))return new _(obj);this._wrapped=obj};if(typeof exports!=="undefined"){if(typeof module!=="undefined"&&module.exports){exports=module.exports=_}exports._=_}else{root._=_}_.VERSION="1.6.0";var each=_.each=_.forEach=function(obj,iterator,context){if(obj==null)return obj;if(nativeForEach&&obj.forEach===nativeForEach){obj.forEach(iterator,context)}else if(obj.length===+obj.length){for(var i=0,length=obj.length;i<length;i++){if(iterator.call(context,obj[i],i,obj)===breaker)return}}else{var keys=_.keys(obj);for(var i=0,length=keys.length;i<length;i++){if(iterator.call(context,obj[keys[i]],keys[i],obj)===breaker)return}}return obj};_.map=_.collect=function(obj,iterator,context){var results=[];if(obj==null)return results;if(nativeMap&&obj.map===nativeMap)return obj.map(iterator,context);each(obj,function(value,index,list){results.push(iterator.call(context,value,index,list))});return results};var reduceError="Reduce of empty array with no initial value";_.reduce=_.foldl=_.inject=function(obj,iterator,memo,context){var initial=arguments.length>2;if(obj==null)obj=[];if(nativeReduce&&obj.reduce===nativeReduce){if(context)iterator=_.bind(iterator,context);return initial?obj.reduce(iterator,memo):obj.reduce(iterator)}each(obj,function(value,index,list){if(!initial){memo=value;initial=true}else{memo=iterator.call(context,memo,value,index,list)}});if(!initial)throw new TypeError(reduceError);return memo};_.reduceRight=_.foldr=function(obj,iterator,memo,context){var initial=arguments.length>2;if(obj==null)obj=[];if(nativeReduceRight&&obj.reduceRight===nativeReduceRight){if(context)iterator=_.bind(iterator,context);return initial?obj.reduceRight(iterator,memo):obj.reduceRight(iterator)}var length=obj.length;if(length!==+length){var keys=_.keys(obj);length=keys.length}each(obj,function(value,index,list){index=keys?keys[--length]:--length;if(!initial){memo=obj[index];initial=true}else{memo=iterator.call(context,memo,obj[index],index,list)}});if(!initial)throw new TypeError(reduceError);return memo};_.find=_.detect=function(obj,predicate,context){var result;any(obj,function(value,index,list){if(predicate.call(context,value,index,list)){result=value;return true}});return result};_.filter=_.select=function(obj,predicate,context){var results=[];if(obj==null)return results;if(nativeFilter&&obj.filter===nativeFilter)return obj.filter(predicate,context);each(obj,function(value,index,list){if(predicate.call(context,value,index,list))results.push(value)});return results};_.reject=function(obj,predicate,context){return _.filter(obj,function(value,index,list){return!predicate.call(context,value,index,list)},context)};_.every=_.all=function(obj,predicate,context){predicate||(predicate=_.identity);var result=true;if(obj==null)return result;if(nativeEvery&&obj.every===nativeEvery)return obj.every(predicate,context);each(obj,function(value,index,list){if(!(result=result&&predicate.call(context,value,index,list)))return breaker});return!!result};var any=_.some=_.any=function(obj,predicate,context){predicate||(predicate=_.identity);var result=false;if(obj==null)return result;if(nativeSome&&obj.some===nativeSome)return obj.some(predicate,context);each(obj,function(value,index,list){if(result||(result=predicate.call(context,value,index,list)))return breaker});return!!result};_.contains=_.include=function(obj,target){if(obj==null)return false;if(nativeIndexOf&&obj.indexOf===nativeIndexOf)return obj.indexOf(target)!=-1;return any(obj,function(value){return value===target})};_.invoke=function(obj,method){var args=slice.call(arguments,2);var isFunc=_.isFunction(method);return _.map(obj,function(value){return(isFunc?method:value[method]).apply(value,args)})};_.pluck=function(obj,key){return _.map(obj,_.property(key))};_.where=function(obj,attrs){return _.filter(obj,_.matches(attrs))};_.findWhere=function(obj,attrs){return _.find(obj,_.matches(attrs))};_.max=function(obj,iterator,context){if(!iterator&&_.isArray(obj)&&obj[0]===+obj[0]&&obj.length<65535){return Math.max.apply(Math,obj)}var result=-Infinity,lastComputed=-Infinity;each(obj,function(value,index,list){var computed=iterator?iterator.call(context,value,index,list):value;if(computed>lastComputed){result=value;lastComputed=computed}});return result};_.min=function(obj,iterator,context){if(!iterator&&_.isArray(obj)&&obj[0]===+obj[0]&&obj.length<65535){return Math.min.apply(Math,obj)}var result=Infinity,lastComputed=Infinity;each(obj,function(value,index,list){var computed=iterator?iterator.call(context,value,index,list):value;if(computed<lastComputed){result=value;lastComputed=computed}});return result};_.shuffle=function(obj){var rand;var index=0;var shuffled=[];each(obj,function(value){rand=_.random(index++);shuffled[index-1]=shuffled[rand];shuffled[rand]=value});return shuffled};_.sample=function(obj,n,guard){if(n==null||guard){if(obj.length!==+obj.length)obj=_.values(obj);return obj[_.random(obj.length-1)]}return _.shuffle(obj).slice(0,Math.max(0,n))};var lookupIterator=function(value){if(value==null)return _.identity;if(_.isFunction(value))return value;return _.property(value)};_.sortBy=function(obj,iterator,context){iterator=lookupIterator(iterator);return _.pluck(_.map(obj,function(value,index,list){return{value:value,index:index,criteria:iterator.call(context,value,index,list)}}).sort(function(left,right){var a=left.criteria;var b=right.criteria;if(a!==b){if(a>b||a===void 0)return 1;if(a<b||b===void 0)return-1}return left.index-right.index}),"value")};var group=function(behavior){return function(obj,iterator,context){var result={};iterator=lookupIterator(iterator);each(obj,function(value,index){var key=iterator.call(context,value,index,obj);behavior(result,key,value)});return result}};_.groupBy=group(function(result,key,value){_.has(result,key)?result[key].push(value):result[key]=[value]});_.indexBy=group(function(result,key,value){result[key]=value});_.countBy=group(function(result,key){_.has(result,key)?result[key]++:result[key]=1});_.sortedIndex=function(array,obj,iterator,context){iterator=lookupIterator(iterator);var value=iterator.call(context,obj);var low=0,high=array.length;while(low<high){var mid=low+high>>>1;iterator.call(context,array[mid])<value?low=mid+1:high=mid}return low};_.toArray=function(obj){if(!obj)return[];if(_.isArray(obj))return slice.call(obj);if(obj.length===+obj.length)return _.map(obj,_.identity);return _.values(obj)};_.size=function(obj){if(obj==null)return 0;return obj.length===+obj.length?obj.length:_.keys(obj).length};_.first=_.head=_.take=function(array,n,guard){if(array==null)return void 0;if(n==null||guard)return array[0];if(n<0)return[];return slice.call(array,0,n)};_.initial=function(array,n,guard){return slice.call(array,0,array.length-(n==null||guard?1:n))};_.last=function(array,n,guard){if(array==null)return void 0;if(n==null||guard)return array[array.length-1];return slice.call(array,Math.max(array.length-n,0))};_.rest=_.tail=_.drop=function(array,n,guard){return slice.call(array,n==null||guard?1:n)};_.compact=function(array){return _.filter(array,_.identity)};var flatten=function(input,shallow,output){if(shallow&&_.every(input,_.isArray)){return concat.apply(output,input)}each(input,function(value){if(_.isArray(value)||_.isArguments(value)){shallow?push.apply(output,value):flatten(value,shallow,output)}else{output.push(value)}});return output};_.flatten=function(array,shallow){return flatten(array,shallow,[])};_.without=function(array){return _.difference(array,slice.call(arguments,1))};_.partition=function(array,predicate){var pass=[],fail=[];each(array,function(elem){(predicate(elem)?pass:fail).push(elem)});return[pass,fail]};_.uniq=_.unique=function(array,isSorted,iterator,context){if(_.isFunction(isSorted)){context=iterator;iterator=isSorted;isSorted=false}var initial=iterator?_.map(array,iterator,context):array;var results=[];var seen=[];each(initial,function(value,index){if(isSorted?!index||seen[seen.length-1]!==value:!_.contains(seen,value)){seen.push(value);results.push(array[index])}});return results};_.union=function(){return _.uniq(_.flatten(arguments,true))};_.intersection=function(array){var rest=slice.call(arguments,1);return _.filter(_.uniq(array),function(item){return _.every(rest,function(other){return _.contains(other,item)})})};_.difference=function(array){var rest=concat.apply(ArrayProto,slice.call(arguments,1));return _.filter(array,function(value){return!_.contains(rest,value)})};_.zip=function(){var length=_.max(_.pluck(arguments,"length").concat(0));var results=new Array(length);for(var i=0;i<length;i++){results[i]=_.pluck(arguments,""+i)}return results};_.object=function(list,values){if(list==null)return{};var result={};for(var i=0,length=list.length;i<length;i++){if(values){result[list[i]]=values[i]}else{result[list[i][0]]=list[i][1]}}return result};_.indexOf=function(array,item,isSorted){if(array==null)return-1;var i=0,length=array.length;if(isSorted){if(typeof isSorted=="number"){i=isSorted<0?Math.max(0,length+isSorted):isSorted}else{i=_.sortedIndex(array,item);return array[i]===item?i:-1}}if(nativeIndexOf&&array.indexOf===nativeIndexOf)return array.indexOf(item,isSorted);for(;i<length;i++)if(array[i]===item)return i;return-1};_.lastIndexOf=function(array,item,from){if(array==null)return-1;var hasIndex=from!=null;if(nativeLastIndexOf&&array.lastIndexOf===nativeLastIndexOf){return hasIndex?array.lastIndexOf(item,from):array.lastIndexOf(item)}var i=hasIndex?from:array.length;while(i--)if(array[i]===item)return i;return-1};_.range=function(start,stop,step){if(arguments.length<=1){stop=start||0;start=0}step=arguments[2]||1;var length=Math.max(Math.ceil((stop-start)/step),0);var idx=0;var range=new Array(length);while(idx<length){range[idx++]=start;start+=step}return range};var ctor=function(){};_.bind=function(func,context){var args,bound;if(nativeBind&&func.bind===nativeBind)return nativeBind.apply(func,slice.call(arguments,1));if(!_.isFunction(func))throw new TypeError;args=slice.call(arguments,2);return bound=function(){if(!(this instanceof bound))return func.apply(context,args.concat(slice.call(arguments)));ctor.prototype=func.prototype;var self=new ctor;ctor.prototype=null;var result=func.apply(self,args.concat(slice.call(arguments)));if(Object(result)===result)return result;return self}};_.partial=function(func){var boundArgs=slice.call(arguments,1);return function(){var position=0;var args=boundArgs.slice();for(var i=0,length=args.length;i<length;i++){if(args[i]===_)args[i]=arguments[position++]}while(position<arguments.length)args.push(arguments[position++]);return func.apply(this,args)}};_.bindAll=function(obj){var funcs=slice.call(arguments,1);if(funcs.length===0)throw new Error("bindAll must be passed function names");each(funcs,function(f){obj[f]=_.bind(obj[f],obj)});return obj};_.memoize=function(func,hasher){var memo={};hasher||(hasher=_.identity);return function(){var key=hasher.apply(this,arguments);return _.has(memo,key)?memo[key]:memo[key]=func.apply(this,arguments)}};_.delay=function(func,wait){var args=slice.call(arguments,2);return setTimeout(function(){return func.apply(null,args)},wait)};_.defer=function(func){return _.delay.apply(_,[func,1].concat(slice.call(arguments,1)))};_.throttle=function(func,wait,options){var context,args,result;var timeout=null;var previous=0;options||(options={});var later=function(){previous=options.leading===false?0:_.now();timeout=null;result=func.apply(context,args);context=args=null};return function(){var now=_.now();if(!previous&&options.leading===false)previous=now;var remaining=wait-(now-previous);context=this;args=arguments;if(remaining<=0){clearTimeout(timeout);timeout=null;previous=now;result=func.apply(context,args);context=args=null}else if(!timeout&&options.trailing!==false){timeout=setTimeout(later,remaining)}return result}};_.debounce=function(func,wait,immediate){var timeout,args,context,timestamp,result;var later=function(){var last=_.now()-timestamp;if(last<wait){timeout=setTimeout(later,wait-last)}else{timeout=null;if(!immediate){result=func.apply(context,args);context=args=null}}};return function(){context=this;args=arguments;timestamp=_.now();var callNow=immediate&&!timeout;if(!timeout){timeout=setTimeout(later,wait)}if(callNow){result=func.apply(context,args);context=args=null}return result}};_.once=function(func){var ran=false,memo;return function(){if(ran)return memo;ran=true;memo=func.apply(this,arguments);func=null;return memo}};_.wrap=function(func,wrapper){return _.partial(wrapper,func)};_.compose=function(){var funcs=arguments;return function(){var args=arguments;for(var i=funcs.length-1;i>=0;i--){args=[funcs[i].apply(this,args)]}return args[0]}};_.after=function(times,func){return function(){if(--times<1){return func.apply(this,arguments)}}};_.keys=function(obj){if(!_.isObject(obj))return[];if(nativeKeys)return nativeKeys(obj);var keys=[];for(var key in obj)if(_.has(obj,key))keys.push(key);return keys};_.values=function(obj){var keys=_.keys(obj);var length=keys.length;var values=new Array(length);for(var i=0;i<length;i++){values[i]=obj[keys[i]]}return values};_.pairs=function(obj){var keys=_.keys(obj);var length=keys.length;var pairs=new Array(length);for(var i=0;i<length;i++){pairs[i]=[keys[i],obj[keys[i]]]}return pairs};_.invert=function(obj){var result={};var keys=_.keys(obj);for(var i=0,length=keys.length;i<length;i++){result[obj[keys[i]]]=keys[i]}return result};_.functions=_.methods=function(obj){var names=[];for(var key in obj){if(_.isFunction(obj[key]))names.push(key)}return names.sort()};_.extend=function(obj){each(slice.call(arguments,1),function(source){if(source){for(var prop in source){obj[prop]=source[prop]}}});return obj};_.pick=function(obj){var copy={};var keys=concat.apply(ArrayProto,slice.call(arguments,1));each(keys,function(key){if(key in obj)copy[key]=obj[key]});return copy};_.omit=function(obj){var copy={};var keys=concat.apply(ArrayProto,slice.call(arguments,1));for(var key in obj){if(!_.contains(keys,key))copy[key]=obj[key]}return copy};_.defaults=function(obj){each(slice.call(arguments,1),function(source){if(source){for(var prop in source){if(obj[prop]===void 0)obj[prop]=source[prop]}}});return obj};_.clone=function(obj){if(!_.isObject(obj))return obj;return _.isArray(obj)?obj.slice():_.extend({},obj)};_.tap=function(obj,interceptor){interceptor(obj);return obj};var eq=function(a,b,aStack,bStack){if(a===b)return a!==0||1/a==1/b;if(a==null||b==null)return a===b;if(a instanceof _)a=a._wrapped;if(b instanceof _)b=b._wrapped;var className=toString.call(a);if(className!=toString.call(b))return false;switch(className){case"[object String]":return a==String(b);case"[object Number]":return a!=+a?b!=+b:a==0?1/a==1/b:a==+b;case"[object Date]":case"[object Boolean]":return+a==+b;case"[object RegExp]":return a.source==b.source&&a.global==b.global&&a.multiline==b.multiline&&a.ignoreCase==b.ignoreCase}if(typeof a!="object"||typeof b!="object")return false;var length=aStack.length;while(length--){if(aStack[length]==a)return bStack[length]==b}var aCtor=a.constructor,bCtor=b.constructor;if(aCtor!==bCtor&&!(_.isFunction(aCtor)&&aCtor instanceof aCtor&&_.isFunction(bCtor)&&bCtor instanceof bCtor)&&("constructor"in a&&"constructor"in b)){return false}aStack.push(a);bStack.push(b);var size=0,result=true;if(className=="[object Array]"){size=a.length;result=size==b.length;if(result){while(size--){if(!(result=eq(a[size],b[size],aStack,bStack)))break}}}else{for(var key in a){if(_.has(a,key)){size++;if(!(result=_.has(b,key)&&eq(a[key],b[key],aStack,bStack)))break}}if(result){for(key in b){if(_.has(b,key)&&!size--)break}result=!size}}aStack.pop();bStack.pop();return result};_.isEqual=function(a,b){return eq(a,b,[],[])};_.isEmpty=function(obj){if(obj==null)return true;if(_.isArray(obj)||_.isString(obj))return obj.length===0;for(var key in obj)if(_.has(obj,key))return false;return true};_.isElement=function(obj){return!!(obj&&obj.nodeType===1)};_.isArray=nativeIsArray||function(obj){return toString.call(obj)=="[object Array]"};_.isObject=function(obj){return obj===Object(obj)};each(["Arguments","Function","String","Number","Date","RegExp"],function(name){_["is"+name]=function(obj){return toString.call(obj)=="[object "+name+"]"}});if(!_.isArguments(arguments)){_.isArguments=function(obj){return!!(obj&&_.has(obj,"callee"))}}if(typeof/./!=="function"){_.isFunction=function(obj){return typeof obj==="function"}}_.isFinite=function(obj){return isFinite(obj)&&!isNaN(parseFloat(obj))};_.isNaN=function(obj){return _.isNumber(obj)&&obj!=+obj};_.isBoolean=function(obj){return obj===true||obj===false||toString.call(obj)=="[object Boolean]"};_.isNull=function(obj){return obj===null};_.isUndefined=function(obj){return obj===void 0};_.has=function(obj,key){return hasOwnProperty.call(obj,key)};_.noConflict=function(){root._=previousUnderscore;return this};_.identity=function(value){return value};_.constant=function(value){return function(){return value}};_.property=function(key){return function(obj){return obj[key]}};_.matches=function(attrs){return function(obj){if(obj===attrs)return true;for(var key in attrs){if(attrs[key]!==obj[key])return false}return true}};_.times=function(n,iterator,context){var accum=Array(Math.max(0,n));for(var i=0;i<n;i++)accum[i]=iterator.call(context,i);return accum};_.random=function(min,max){if(max==null){max=min;min=0}return min+Math.floor(Math.random()*(max-min+1))};_.now=Date.now||function(){return(new Date).getTime()};var entityMap={escape:{"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;"}};entityMap.unescape=_.invert(entityMap.escape);var entityRegexes={escape:new RegExp("["+_.keys(entityMap.escape).join("")+"]","g"),unescape:new RegExp("("+_.keys(entityMap.unescape).join("|")+")","g")};_.each(["escape","unescape"],function(method){_[method]=function(string){if(string==null)return"";return(""+string).replace(entityRegexes[method],function(match){return entityMap[method][match]})}});_.result=function(object,property){if(object==null)return void 0;var value=object[property];return _.isFunction(value)?value.call(object):value};_.mixin=function(obj){each(_.functions(obj),function(name){var func=_[name]=obj[name];_.prototype[name]=function(){var args=[this._wrapped];push.apply(args,arguments);return result.call(this,func.apply(_,args))}})};var idCounter=0;_.uniqueId=function(prefix){var id=++idCounter+"";return prefix?prefix+id:id};_.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var noMatch=/(.)^/;var escapes={"'":"'","\\":"\\","\r":"r","\n":"n"," ":"t","\u2028":"u2028","\u2029":"u2029"};var escaper=/\\|'|\r|\n|\t|\u2028|\u2029/g;_.template=function(text,data,settings){var render;settings=_.defaults({},settings,_.templateSettings);var matcher=new RegExp([(settings.escape||noMatch).source,(settings.interpolate||noMatch).source,(settings.evaluate||noMatch).source].join("|")+"|$","g");var index=0;var source="__p+='";text.replace(matcher,function(match,escape,interpolate,evaluate,offset){source+=text.slice(index,offset).replace(escaper,function(match){return"\\"+escapes[match]});if(escape){source+="'+\n((__t=("+escape+"))==null?'':_.escape(__t))+\n'"}if(interpolate){source+="'+\n((__t=("+interpolate+"))==null?'':__t)+\n'"}if(evaluate){source+="';\n"+evaluate+"\n__p+='"}index=offset+match.length;return match});source+="';\n";if(!settings.variable)source="with(obj||{}){\n"+source+"}\n";source="var __t,__p='',__j=Array.prototype.join,"+"print=function(){__p+=__j.call(arguments,'');};\n"+source+"return __p;\n";try{render=new Function(settings.variable||"obj","_",source)}catch(e){e.source=source;throw e}if(data)return render(data,_);var template=function(data){return render.call(this,data,_)};template.source="function("+(settings.variable||"obj")+"){\n"+source+"}";return template};_.chain=function(obj){return _(obj).chain()};var result=function(obj){return this._chain?_(obj).chain():obj};_.mixin(_);each(["pop","push","reverse","shift","sort","splice","unshift"],function(name){var method=ArrayProto[name];_.prototype[name]=function(){var obj=this._wrapped;method.apply(obj,arguments);if((name=="shift"||name=="splice")&&obj.length===0)delete obj[0];return result.call(this,obj)}});each(["concat","join","slice"],function(name){var method=ArrayProto[name];_.prototype[name]=function(){return result.call(this,method.apply(this._wrapped,arguments))}});_.extend(_.prototype,{chain:function(){this._chain=true;return this},value:function(){return this._wrapped}});if(typeof define==="function"&&define.amd){define("underscore",[],function(){return _})}}).call(this)},{}],47:[function(require,module,exports){},{}],48:[function(require,module,exports){var util=require("util/");var pSlice=Array.prototype.slice;var hasOwn=Object.prototype.hasOwnProperty;var assert=module.exports=ok;assert.AssertionError=function AssertionError(options){this.name="AssertionError";this.actual=options.actual;this.expected=options.expected;this.operator=options.operator;if(options.message){this.message=options.message;this.generatedMessage=false}else{this.message=getMessage(this);
this.generatedMessage=true}var stackStartFunction=options.stackStartFunction||fail;if(Error.captureStackTrace){Error.captureStackTrace(this,stackStartFunction)}else{var err=new Error;if(err.stack){var out=err.stack;var fn_name=stackStartFunction.name;var idx=out.indexOf("\n"+fn_name);if(idx>=0){var next_line=out.indexOf("\n",idx+1);out=out.substring(next_line+1)}this.stack=out}}};util.inherits(assert.AssertionError,Error);function replacer(key,value){if(util.isUndefined(value)){return""+value}if(util.isNumber(value)&&(isNaN(value)||!isFinite(value))){return value.toString()}if(util.isFunction(value)||util.isRegExp(value)){return value.toString()}return value}function truncate(s,n){if(util.isString(s)){return s.length<n?s:s.slice(0,n)}else{return s}}function getMessage(self){return truncate(JSON.stringify(self.actual,replacer),128)+" "+self.operator+" "+truncate(JSON.stringify(self.expected,replacer),128)}function fail(actual,expected,message,operator,stackStartFunction){throw new assert.AssertionError({message:message,actual:actual,expected:expected,operator:operator,stackStartFunction:stackStartFunction})}assert.fail=fail;function ok(value,message){if(!value)fail(value,true,message,"==",assert.ok)}assert.ok=ok;assert.equal=function equal(actual,expected,message){if(actual!=expected)fail(actual,expected,message,"==",assert.equal)};assert.notEqual=function notEqual(actual,expected,message){if(actual==expected){fail(actual,expected,message,"!=",assert.notEqual)}};assert.deepEqual=function deepEqual(actual,expected,message){if(!_deepEqual(actual,expected)){fail(actual,expected,message,"deepEqual",assert.deepEqual)}};function _deepEqual(actual,expected){if(actual===expected){return true}else if(util.isBuffer(actual)&&util.isBuffer(expected)){if(actual.length!=expected.length)return false;for(var i=0;i<actual.length;i++){if(actual[i]!==expected[i])return false}return true}else if(util.isDate(actual)&&util.isDate(expected)){return actual.getTime()===expected.getTime()}else if(util.isRegExp(actual)&&util.isRegExp(expected)){return actual.source===expected.source&&actual.global===expected.global&&actual.multiline===expected.multiline&&actual.lastIndex===expected.lastIndex&&actual.ignoreCase===expected.ignoreCase}else if(!util.isObject(actual)&&!util.isObject(expected)){return actual==expected}else{return objEquiv(actual,expected)}}function isArguments(object){return Object.prototype.toString.call(object)=="[object Arguments]"}function objEquiv(a,b){if(util.isNullOrUndefined(a)||util.isNullOrUndefined(b))return false;if(a.prototype!==b.prototype)return false;if(isArguments(a)){if(!isArguments(b)){return false}a=pSlice.call(a);b=pSlice.call(b);return _deepEqual(a,b)}try{var ka=objectKeys(a),kb=objectKeys(b),key,i}catch(e){return false}if(ka.length!=kb.length)return false;ka.sort();kb.sort();for(i=ka.length-1;i>=0;i--){if(ka[i]!=kb[i])return false}for(i=ka.length-1;i>=0;i--){key=ka[i];if(!_deepEqual(a[key],b[key]))return false}return true}assert.notDeepEqual=function notDeepEqual(actual,expected,message){if(_deepEqual(actual,expected)){fail(actual,expected,message,"notDeepEqual",assert.notDeepEqual)}};assert.strictEqual=function strictEqual(actual,expected,message){if(actual!==expected){fail(actual,expected,message,"===",assert.strictEqual)}};assert.notStrictEqual=function notStrictEqual(actual,expected,message){if(actual===expected){fail(actual,expected,message,"!==",assert.notStrictEqual)}};function expectedException(actual,expected){if(!actual||!expected){return false}if(Object.prototype.toString.call(expected)=="[object RegExp]"){return expected.test(actual)}else if(actual instanceof expected){return true}else if(expected.call({},actual)===true){return true}return false}function _throws(shouldThrow,block,expected,message){var actual;if(util.isString(expected)){message=expected;expected=null}try{block()}catch(e){actual=e}message=(expected&&expected.name?" ("+expected.name+").":".")+(message?" "+message:".");if(shouldThrow&&!actual){fail(actual,expected,"Missing expected exception"+message)}if(!shouldThrow&&expectedException(actual,expected)){fail(actual,expected,"Got unwanted exception"+message)}if(shouldThrow&&actual&&expected&&!expectedException(actual,expected)||!shouldThrow&&actual){throw actual}}assert.throws=function(block,error,message){_throws.apply(this,[true].concat(pSlice.call(arguments)))};assert.doesNotThrow=function(block,message){_throws.apply(this,[false].concat(pSlice.call(arguments)))};assert.ifError=function(err){if(err){throw err}};var objectKeys=Object.keys||function(obj){var keys=[];for(var key in obj){if(hasOwn.call(obj,key))keys.push(key)}return keys}},{"util/":50}],49:[function(require,module,exports){module.exports=function isBuffer(arg){return arg&&typeof arg==="object"&&typeof arg.copy==="function"&&typeof arg.fill==="function"&&typeof arg.readUInt8==="function"}},{}],50:[function(require,module,exports){(function(process,global){var formatRegExp=/%[sdj%]/g;exports.format=function(f){if(!isString(f)){var objects=[];for(var i=0;i<arguments.length;i++){objects.push(inspect(arguments[i]))}return objects.join(" ")}var i=1;var args=arguments;var len=args.length;var str=String(f).replace(formatRegExp,function(x){if(x==="%%")return"%";if(i>=len)return x;switch(x){case"%s":return String(args[i++]);case"%d":return Number(args[i++]);case"%j":try{return JSON.stringify(args[i++])}catch(_){return"[Circular]"}default:return x}});for(var x=args[i];i<len;x=args[++i]){if(isNull(x)||!isObject(x)){str+=" "+x}else{str+=" "+inspect(x)}}return str};exports.deprecate=function(fn,msg){if(isUndefined(global.process)){return function(){return exports.deprecate(fn,msg).apply(this,arguments)}}if(process.noDeprecation===true){return fn}var warned=false;function deprecated(){if(!warned){if(process.throwDeprecation){throw new Error(msg)}else if(process.traceDeprecation){console.trace(msg)}else{console.error(msg)}warned=true}return fn.apply(this,arguments)}return deprecated};var debugs={};var debugEnviron;exports.debuglog=function(set){if(isUndefined(debugEnviron))debugEnviron=process.env.NODE_DEBUG||"";set=set.toUpperCase();if(!debugs[set]){if(new RegExp("\\b"+set+"\\b","i").test(debugEnviron)){var pid=process.pid;debugs[set]=function(){var msg=exports.format.apply(exports,arguments);console.error("%s %d: %s",set,pid,msg)}}else{debugs[set]=function(){}}}return debugs[set]};function inspect(obj,opts){var ctx={seen:[],stylize:stylizeNoColor};if(arguments.length>=3)ctx.depth=arguments[2];if(arguments.length>=4)ctx.colors=arguments[3];if(isBoolean(opts)){ctx.showHidden=opts}else if(opts){exports._extend(ctx,opts)}if(isUndefined(ctx.showHidden))ctx.showHidden=false;if(isUndefined(ctx.depth))ctx.depth=2;if(isUndefined(ctx.colors))ctx.colors=false;if(isUndefined(ctx.customInspect))ctx.customInspect=true;if(ctx.colors)ctx.stylize=stylizeWithColor;return formatValue(ctx,obj,ctx.depth)}exports.inspect=inspect;inspect.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]};inspect.styles={special:"cyan",number:"yellow","boolean":"yellow",undefined:"grey","null":"bold",string:"green",date:"magenta",regexp:"red"};function stylizeWithColor(str,styleType){var style=inspect.styles[styleType];if(style){return"["+inspect.colors[style][0]+"m"+str+"["+inspect.colors[style][1]+"m"}else{return str}}function stylizeNoColor(str,styleType){return str}function arrayToHash(array){var hash={};array.forEach(function(val,idx){hash[val]=true});return hash}function formatValue(ctx,value,recurseTimes){if(ctx.customInspect&&value&&isFunction(value.inspect)&&value.inspect!==exports.inspect&&!(value.constructor&&value.constructor.prototype===value)){var ret=value.inspect(recurseTimes,ctx);if(!isString(ret)){ret=formatValue(ctx,ret,recurseTimes)}return ret}var primitive=formatPrimitive(ctx,value);if(primitive){return primitive}var keys=Object.keys(value);var visibleKeys=arrayToHash(keys);if(ctx.showHidden){keys=Object.getOwnPropertyNames(value)}if(isError(value)&&(keys.indexOf("message")>=0||keys.indexOf("description")>=0)){return formatError(value)}if(keys.length===0){if(isFunction(value)){var name=value.name?": "+value.name:"";return ctx.stylize("[Function"+name+"]","special")}if(isRegExp(value)){return ctx.stylize(RegExp.prototype.toString.call(value),"regexp")}if(isDate(value)){return ctx.stylize(Date.prototype.toString.call(value),"date")}if(isError(value)){return formatError(value)}}var base="",array=false,braces=["{","}"];if(isArray(value)){array=true;braces=["[","]"]}if(isFunction(value)){var n=value.name?": "+value.name:"";base=" [Function"+n+"]"}if(isRegExp(value)){base=" "+RegExp.prototype.toString.call(value)}if(isDate(value)){base=" "+Date.prototype.toUTCString.call(value)}if(isError(value)){base=" "+formatError(value)}if(keys.length===0&&(!array||value.length==0)){return braces[0]+base+braces[1]}if(recurseTimes<0){if(isRegExp(value)){return ctx.stylize(RegExp.prototype.toString.call(value),"regexp")}else{return ctx.stylize("[Object]","special")}}ctx.seen.push(value);var output;if(array){output=formatArray(ctx,value,recurseTimes,visibleKeys,keys)}else{output=keys.map(function(key){return formatProperty(ctx,value,recurseTimes,visibleKeys,key,array)})}ctx.seen.pop();return reduceToSingleString(output,base,braces)}function formatPrimitive(ctx,value){if(isUndefined(value))return ctx.stylize("undefined","undefined");if(isString(value)){var simple="'"+JSON.stringify(value).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return ctx.stylize(simple,"string")}if(isNumber(value))return ctx.stylize(""+value,"number");if(isBoolean(value))return ctx.stylize(""+value,"boolean");if(isNull(value))return ctx.stylize("null","null")}function formatError(value){return"["+Error.prototype.toString.call(value)+"]"}function formatArray(ctx,value,recurseTimes,visibleKeys,keys){var output=[];for(var i=0,l=value.length;i<l;++i){if(hasOwnProperty(value,String(i))){output.push(formatProperty(ctx,value,recurseTimes,visibleKeys,String(i),true))}else{output.push("")}}keys.forEach(function(key){if(!key.match(/^\d+$/)){output.push(formatProperty(ctx,value,recurseTimes,visibleKeys,key,true))}});return output}function formatProperty(ctx,value,recurseTimes,visibleKeys,key,array){var name,str,desc;desc=Object.getOwnPropertyDescriptor(value,key)||{value:value[key]};if(desc.get){if(desc.set){str=ctx.stylize("[Getter/Setter]","special")}else{str=ctx.stylize("[Getter]","special")}}else{if(desc.set){str=ctx.stylize("[Setter]","special")}}if(!hasOwnProperty(visibleKeys,key)){name="["+key+"]"}if(!str){if(ctx.seen.indexOf(desc.value)<0){if(isNull(recurseTimes)){str=formatValue(ctx,desc.value,null)}else{str=formatValue(ctx,desc.value,recurseTimes-1)}if(str.indexOf("\n")>-1){if(array){str=str.split("\n").map(function(line){return" "+line}).join("\n").substr(2)}else{str="\n"+str.split("\n").map(function(line){return" "+line}).join("\n")}}}else{str=ctx.stylize("[Circular]","special")}}if(isUndefined(name)){if(array&&key.match(/^\d+$/)){return str}name=JSON.stringify(""+key);if(name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)){name=name.substr(1,name.length-2);name=ctx.stylize(name,"name")}else{name=name.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'");name=ctx.stylize(name,"string")}}return name+": "+str}function reduceToSingleString(output,base,braces){var numLinesEst=0;var length=output.reduce(function(prev,cur){numLinesEst++;if(cur.indexOf("\n")>=0)numLinesEst++;return prev+cur.replace(/\u001b\[\d\d?m/g,"").length+1},0);if(length>60){return braces[0]+(base===""?"":base+"\n ")+" "+output.join(",\n ")+" "+braces[1]}return braces[0]+base+" "+output.join(", ")+" "+braces[1]}function isArray(ar){return Array.isArray(ar)}exports.isArray=isArray;function isBoolean(arg){return typeof arg==="boolean"}exports.isBoolean=isBoolean;function isNull(arg){return arg===null}exports.isNull=isNull;function isNullOrUndefined(arg){return arg==null}exports.isNullOrUndefined=isNullOrUndefined;function isNumber(arg){return typeof arg==="number"}exports.isNumber=isNumber;function isString(arg){return typeof arg==="string"}exports.isString=isString;function isSymbol(arg){return typeof arg==="symbol"}exports.isSymbol=isSymbol;function isUndefined(arg){return arg===void 0}exports.isUndefined=isUndefined;function isRegExp(re){return isObject(re)&&objectToString(re)==="[object RegExp]"}exports.isRegExp=isRegExp;function isObject(arg){return typeof arg==="object"&&arg!==null}exports.isObject=isObject;function isDate(d){return isObject(d)&&objectToString(d)==="[object Date]"}exports.isDate=isDate;function isError(e){return isObject(e)&&(objectToString(e)==="[object Error]"||e instanceof Error)}exports.isError=isError;function isFunction(arg){return typeof arg==="function"}exports.isFunction=isFunction;function isPrimitive(arg){return arg===null||typeof arg==="boolean"||typeof arg==="number"||typeof arg==="string"||typeof arg==="symbol"||typeof arg==="undefined"}exports.isPrimitive=isPrimitive;exports.isBuffer=require("./support/isBuffer");function objectToString(o){return Object.prototype.toString.call(o)}function pad(n){return n<10?"0"+n.toString(10):n.toString(10)}var months=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function timestamp(){var d=new Date;var time=[pad(d.getHours()),pad(d.getMinutes()),pad(d.getSeconds())].join(":");return[d.getDate(),months[d.getMonth()],time].join(" ")}exports.log=function(){console.log("%s - %s",timestamp(),exports.format.apply(exports,arguments))};exports.inherits=require("inherits");exports._extend=function(origin,add){if(!add||!isObject(add))return origin;var keys=Object.keys(add);var i=keys.length;while(i--){origin[keys[i]]=add[keys[i]]}return origin};function hasOwnProperty(obj,prop){return Object.prototype.hasOwnProperty.call(obj,prop)}}).call(this,require("_process"),typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"./support/isBuffer":49,_process:54,inherits:52}],51:[function(require,module,exports){module.exports=require(47)},{}],52:[function(require,module,exports){if(typeof Object.create==="function"){module.exports=function inherits(ctor,superCtor){ctor.super_=superCtor;ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:false,writable:true,configurable:true}})}}else{module.exports=function inherits(ctor,superCtor){ctor.super_=superCtor;var TempCtor=function(){};TempCtor.prototype=superCtor.prototype;ctor.prototype=new TempCtor;ctor.prototype.constructor=ctor}}},{}],53:[function(require,module,exports){(function(process){function normalizeArray(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up--;up){parts.unshift("..")}}return parts}var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;var splitPath=function(filename){return splitPathRe.exec(filename).slice(1)};exports.resolve=function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:process.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){continue}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=normalizeArray(filter(resolvedPath.split("/"),function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."};exports.normalize=function(path){var isAbsolute=exports.isAbsolute(path),trailingSlash=substr(path,-1)==="/";path=normalizeArray(filter(path.split("/"),function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path};exports.isAbsolute=function(path){return path.charAt(0)==="/"};exports.join=function(){var paths=Array.prototype.slice.call(arguments,0);return exports.normalize(filter(paths,function(p,index){if(typeof p!=="string"){throw new TypeError("Arguments to path.join must be strings")}return p}).join("/"))};exports.relative=function(from,to){from=exports.resolve(from).substr(1);to=exports.resolve(to).substr(1);function trim(arr){var start=0;for(;start<arr.length;start++){if(arr[start]!=="")break}var end=arr.length-1;for(;end>=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i<length;i++){if(fromParts[i]!==toParts[i]){samePartsLength=i;break}}var outputParts=[];for(var i=samePartsLength;i<fromParts.length;i++){outputParts.push("..")}outputParts=outputParts.concat(toParts.slice(samePartsLength));return outputParts.join("/")};exports.sep="/";exports.delimiter=":";exports.dirname=function(path){var result=splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir};exports.basename=function(path,ext){var f=splitPath(path)[2];if(ext&&f.substr(-1*ext.length)===ext){f=f.substr(0,f.length-ext.length)}return f};exports.extname=function(path){return splitPath(path)[3]};function filter(xs,f){if(xs.filter)return xs.filter(f);var res=[];for(var i=0;i<xs.length;i++){if(f(xs[i],i,xs))res.push(xs[i])}return res}var substr="ab".substr(-1)==="b"?function(str,start,len){return str.substr(start,len)}:function(str,start,len){if(start<0)start=str.length+start;return str.substr(start,len)}}).call(this,require("_process"))},{_process:54}],54:[function(require,module,exports){var process=module.exports={};process.nextTick=function(){var canSetImmediate=typeof window!=="undefined"&&window.setImmediate;var canPost=typeof window!=="undefined"&&window.postMessage&&window.addEventListener;if(canSetImmediate){return function(f){return window.setImmediate(f)}}if(canPost){var queue=[];window.addEventListener("message",function(ev){var source=ev.source;if((source===window||source===null)&&ev.data==="process-tick"){ev.stopPropagation();if(queue.length>0){var fn=queue.shift();fn()}}},true);return function nextTick(fn){queue.push(fn);window.postMessage("process-tick","*")}}return function nextTick(fn){setTimeout(fn,0)}}();process.title="browser";process.browser=true;process.env={};process.argv=[];function noop(){}process.on=noop;process.addListener=noop;process.once=noop;process.off=noop;process.removeListener=noop;process.removeAllListeners=noop;process.emit=noop;process.binding=function(name){throw new Error("process.binding is not supported")};process.cwd=function(){return"/"};process.chdir=function(dir){throw new Error("process.chdir is not supported")}},{}],55:[function(require,module,exports){module.exports=require(49)},{}],56:[function(require,module,exports){module.exports=require(50)},{"./support/isBuffer":55,_process:54,inherits:52}],"promises-aplus-tests":[function(require,module,exports){(function(global,__dirname){"use strict";var Mocha=require("mocha");var path=require("path");var fs=require("fs");var _=require("underscore");var testsDir=path.resolve(__dirname,"tests");function normalizeAdapter(adapter){if(!adapter.resolved){adapter.resolved=function(value){var d=adapter.deferred();d.resolve(value);return d.promise}}if(!adapter.rejected){adapter.rejected=function(reason){var d=adapter.deferred();d.reject(reason);return d.promise}}}module.exports=function(adapter,mochaOpts,cb){if(typeof mochaOpts==="function"){cb=mochaOpts;mochaOpts={}}if(typeof cb!=="function"){cb=function(){}}normalizeAdapter(adapter);mochaOpts=_.defaults(mochaOpts,{timeout:200,slow:Infinity});fs.readdir(testsDir,function(err,testFileNames){if(err){cb(err);return}var mocha=new Mocha(mochaOpts);testFileNames.forEach(function(testFileName){if(path.extname(testFileName)===".js"){var testFilePath=path.resolve(testsDir,testFileName);mocha.addFile(testFilePath)}});global.adapter=adapter;mocha.run(function(failures){delete global.adapter;if(failures>0){var err=new Error("Test suite failed with "+failures+" failures.");err.failures=failures;cb(err)}else{cb(null)}})})};module.exports.mocha=function(adapter){normalizeAdapter(adapter);global.adapter=adapter;require("./testFiles");delete global.adapter}}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{},"/lib")},{"./testFiles":1,fs:47,mocha:51,path:53,underscore:46}]},{},[]);require=function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s}({jquery:[function(require,module,exports){(function(global,factory){if(typeof module==="object"&&typeof module.exports==="object"){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)}})(typeof window!=="undefined"?window:this,function(window,noGlobal){var arr=[];var document=window.document;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 support={};function DOMEval(code,doc){doc=doc||document;var script=doc.createElement("script");script.text=code;doc.head.appendChild(script).parentNode.removeChild(script)}var version="3.0.0-beta1",jQuery=function(selector,context){return new jQuery.fn.init(selector,context)},rtrim=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,rmsPrefix=/^-ms-/,rdashAlpha=/-([a-z])/g,fcamelCase=function(all,letter){return letter.toUpperCase()};jQuery.fn=jQuery.prototype={jquery:version,constructor:jQuery,length:0,toArray:function(){return slice.call(this)},get:function(num){return num!=null?num<0?this[num+this.length]:this[num]:slice.call(this)},pushStack:function(elems){var ret=jQuery.merge(this.constructor(),elems);ret.prevObject=this;return ret},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()},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;if(typeof target==="boolean"){deep=target;target=arguments[i]||{};i++}if(typeof target!=="object"&&!jQuery.isFunction(target)){target={}}if(i===length){target=this;i--}for(;i<length;i++){if((options=arguments[i])!=null){for(name in options){src=target[name];copy=options[name];if(target===copy){continue}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:{}}target[name]=jQuery.extend(deep,clone,copy)}else if(copy!==undefined){target[name]=copy}}}}return target};jQuery.extend({expando:"jQuery"+(version+Math.random()).replace(/\D/g,""),isReady:true,error:function(msg){throw new Error(msg)},noop:function(){},isFunction:function(obj){return jQuery.type(obj)==="function"},isArray:Array.isArray,isWindow:function(obj){return obj!=null&&obj===obj.window},isNumeric:function(obj){var type=jQuery.type(obj);return(type==="number"||type==="string")&&obj-parseFloat(obj)+1>=0},isPlainObject:function(obj){if(jQuery.type(obj)!=="object"||obj.nodeType||jQuery.isWindow(obj)){return false}if(obj.constructor&&!hasOwn.call(obj.constructor.prototype,"isPrototypeOf")){return false}return true},isEmptyObject:function(obj){var name;for(name in obj){return false}return true},type:function(obj){if(obj==null){return obj+""}return typeof obj==="object"||typeof obj==="function"?class2type[toString.call(obj)]||"object":typeof obj},globalEval:function(code){DOMEval(code)},camelCase:function(string){return string.replace(rmsPrefix,"ms-").replace(rdashAlpha,fcamelCase)},nodeName:function(elem,name){return elem.nodeName&&elem.nodeName.toLowerCase()===name.toLowerCase()},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},trim:function(text){return text==null?"":(text+"").replace(rtrim,"")},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)},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;for(;i<length;i++){callbackInverse=!callback(elems[i],i);if(callbackInverse!==callbackExpect){matches.push(elems[i])}}return matches},map:function(elems,callback,arg){var length,value,i=0,ret=[];if(isArrayLike(elems)){length=elems.length;for(;i<length;i++){value=callback(elems[i],i,arg);if(value!=null){ret.push(value)}}}else{for(i in elems){value=callback(elems[i],i,arg);if(value!=null){ret.push(value)}}}return concat.apply([],ret)},guid:1,proxy:function(fn,context){var tmp,args,proxy;if(typeof context==="string"){tmp=fn[context];context=fn;fn=tmp}if(!jQuery.isFunction(fn)){return undefined}args=slice.call(arguments,2);proxy=function(){return fn.apply(context||this,args.concat(slice.call(arguments)))};proxy.guid=fn.guid=fn.guid||jQuery.guid++;return proxy},now:Date.now,support:support});if(typeof Symbol==="function"){jQuery.fn[Symbol.iterator]=arr[Symbol.iterator]}jQuery.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(i,name){class2type["[object "+name+"]"]=name.toLowerCase()});function isArrayLike(obj){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=function(window){var i,support,Expr,getText,isXML,tokenize,compile,select,outermostContext,sortInput,hasDuplicate,setDocument,document,docElem,documentIsHTML,rbuggyQSA,rbuggyMatches,matches,contains,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},hasOwn={}.hasOwnProperty,arr=[],pop=arr.pop,push_native=arr.push,push=arr.push,slice=arr.slice,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",whitespace="[\\x20\\t\\r\\n\\f]",identifier="(?:\\\\.|[\\w-]|[^\x00-\\xa0])+",attributes="\\["+whitespace+"*("+identifier+")(?:"+whitespace+"*([*^$|!~]?=)"+whitespace+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+identifier+"))|)"+whitespace+"*\\]",pseudos=":("+identifier+")(?:\\(("+"('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|"+"((?:\\\\.|[^\\\\()[\\]]|"+attributes+")*)|"+".*"+")\\)|)",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"),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/,rquickExpr=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,rsibling=/[+~]/,runescape=new RegExp("\\\\([\\da-f]{1,6}"+whitespace+"?|("+whitespace+")|.)","ig"),funescape=function(_,escaped,escapedWhitespace){var high="0x"+escaped-65536;return high!==high||escapedWhitespace?escaped:high<0?String.fromCharCode(high+65536):String.fromCharCode(high>>10|55296,high&1023|56320)},rcssescape=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g,fcssescape=function(ch,asCodePoint){if(asCodePoint){if(ch==="\x00"){return"�"}return ch.slice(0,-1)+"\\"+ch.charCodeAt(ch.length-1).toString(16)+" "}return"\\"+ch},unloadHandler=function(){setDocument()},disabledAncestor=addCombinator(function(elem){return elem.disabled===true},{dir:"parentNode",next:"legend"});try{push.apply(arr=slice.call(preferredDoc.childNodes),preferredDoc.childNodes);arr[preferredDoc.childNodes.length].nodeType}catch(e){push={apply:arr.length?function(target,els){push_native.apply(target,slice.call(els))}:function(target,els){var j=target.length,i=0;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=context?context.nodeType:9;results=results||[];if(typeof selector!=="string"||!selector||nodeType!==1&&nodeType!==9&&nodeType!==11){return results}if(!seed){if((context?context.ownerDocument||context:preferredDoc)!==document){setDocument(context)}context=context||document;if(documentIsHTML){if(nodeType!==11&&(match=rquickExpr.exec(selector))){if(m=match[1]){if(nodeType===9){if(elem=context.getElementById(m)){if(elem.id===m){results.push(elem);return results}}else{return results}}else{if(newContext&&(elem=newContext.getElementById(m))&&contains(context,elem)&&elem.id===m){results.push(elem);return results}}}else if(match[2]){push.apply(results,context.getElementsByTagName(selector));return results}else if((m=match[3])&&support.getElementsByClassName&&context.getElementsByClassName){push.apply(results,context.getElementsByClassName(m));return results}}if(support.qsa&&!compilerCache[selector+" "]&&(!rbuggyQSA||!rbuggyQSA.test(selector))){if(nodeType!==1){newContext=context;newSelector=selector}else if(context.nodeName.toLowerCase()!=="object"){if(nid=context.getAttribute("id")){nid=nid.replace(rcssescape,fcssescape)}else{context.setAttribute("id",nid=expando)}groups=tokenize(selector);i=groups.length;while(i--){groups[i]="#"+nid+" "+toSelector(groups[i])}newSelector=groups.join(",");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")}}}}}}return select(selector.replace(rtrim,"$1"),context,results,seed)}function createCache(){var keys=[];function cache(key,value){
if(keys.push(key+" ")>Expr.cacheLength){delete cache[keys.shift()]}return cache[key+" "]=value}return cache}function markFunction(fn){fn[expando]=true;return fn}function assert(fn){var el=document.createElement("fieldset");try{return!!fn(el)}catch(e){return false}finally{if(el.parentNode){el.parentNode.removeChild(el)}el=null}}function addHandle(attrs,handler){var arr=attrs.split("|"),i=arr.length;while(i--){Expr.attrHandle[arr[i]]=handler}}function siblingCheck(a,b){var cur=b&&a,diff=cur&&a.nodeType===1&&b.nodeType===1&&a.sourceIndex-b.sourceIndex;if(diff){return diff}if(cur){while(cur=cur.nextSibling){if(cur===b){return-1}}}return a?1:-1}function createInputPseudo(type){return function(elem){var name=elem.nodeName.toLowerCase();return name==="input"&&elem.type===type}}function createButtonPseudo(type){return function(elem){var name=elem.nodeName.toLowerCase();return(name==="input"||name==="button")&&elem.type===type}}function createDisabledPseudo(disabled){return function(elem){return"label"in elem&&elem.disabled===disabled||"form"in elem&&elem.disabled===disabled||"form"in elem&&elem.disabled===false&&(elem.isDisabled===disabled||elem.isDisabled!==!disabled&&("label"in elem||!disabledAncestor(elem))!==disabled)}}function createPositionalPseudo(fn){return markFunction(function(argument){argument=+argument;return markFunction(function(seed,matches){var j,matchIndexes=fn([],seed.length,argument),i=matchIndexes.length;while(i--){if(seed[j=matchIndexes[i]]){seed[j]=!(matches[j]=seed[j])}}})})}function testContext(context){return context&&typeof context.getElementsByTagName!=="undefined"&&context}support=Sizzle.support={};isXML=Sizzle.isXML=function(elem){var documentElement=elem&&(elem.ownerDocument||elem).documentElement;return documentElement?documentElement.nodeName!=="HTML":false};setDocument=Sizzle.setDocument=function(node){var hasCompare,subWindow,doc=node?node.ownerDocument||node:preferredDoc;if(doc===document||doc.nodeType!==9||!doc.documentElement){return document}document=doc;docElem=document.documentElement;documentIsHTML=!isXML(document);if(preferredDoc!==document&&(subWindow=document.defaultView)&&subWindow.top!==subWindow){if(subWindow.addEventListener){subWindow.addEventListener("unload",unloadHandler,false)}else if(subWindow.attachEvent){subWindow.attachEvent("onunload",unloadHandler)}}support.attributes=assert(function(el){el.className="i";return!el.getAttribute("className")});support.getElementsByTagName=assert(function(el){el.appendChild(document.createComment(""));return!el.getElementsByTagName("*").length});support.getElementsByClassName=rnative.test(document.getElementsByClassName);support.getById=assert(function(el){docElem.appendChild(el).id=expando;return!document.getElementsByName||!document.getElementsByName(expando).length});if(support.getById){Expr.find["ID"]=function(id,context){if(typeof context.getElementById!=="undefined"&&documentIsHTML){var m=context.getElementById(id);return m?[m]:[]}};Expr.filter["ID"]=function(id){var attrId=id.replace(runescape,funescape);return function(elem){return elem.getAttribute("id")===attrId}}}else{delete Expr.find["ID"];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}}}Expr.find["TAG"]=support.getElementsByTagName?function(tag,context){if(typeof context.getElementsByTagName!=="undefined"){return context.getElementsByTagName(tag)}else if(support.qsa){return context.querySelectorAll(tag)}}:function(tag,context){var elem,tmp=[],i=0,results=context.getElementsByTagName(tag);if(tag==="*"){while(elem=results[i++]){if(elem.nodeType===1){tmp.push(elem)}}return tmp}return results};Expr.find["CLASS"]=support.getElementsByClassName&&function(className,context){if(typeof context.getElementsByClassName!=="undefined"&&documentIsHTML){return context.getElementsByClassName(className)}};rbuggyMatches=[];rbuggyQSA=[];if(support.qsa=rnative.test(document.querySelectorAll)){assert(function(el){docElem.appendChild(el).innerHTML="<a id='"+expando+"'></a>"+"<select id='"+expando+"-\r\\' msallowcapture=''>"+"<option selected=''></option></select>";if(el.querySelectorAll("[msallowcapture^='']").length){rbuggyQSA.push("[*^$]="+whitespace+"*(?:''|\"\")")}if(!el.querySelectorAll("[selected]").length){rbuggyQSA.push("\\["+whitespace+"*(?:value|"+booleans+")")}if(!el.querySelectorAll("[id~="+expando+"-]").length){rbuggyQSA.push("~=")}if(!el.querySelectorAll(":checked").length){rbuggyQSA.push(":checked")}if(!el.querySelectorAll("a#"+expando+"+*").length){rbuggyQSA.push(".#.+[+~]")}});assert(function(el){el.innerHTML="<a href='' disabled='disabled'></a>"+"<select disabled='disabled'><option/></select>";var input=document.createElement("input");input.setAttribute("type","hidden");el.appendChild(input).setAttribute("name","D");if(el.querySelectorAll("[name=d]").length){rbuggyQSA.push("name"+whitespace+"*[*^$|!~]?=")}if(el.querySelectorAll(":enabled").length!==2){rbuggyQSA.push(":enabled",":disabled")}docElem.appendChild(el).disabled=true;if(el.querySelectorAll(":disabled").length!==2){rbuggyQSA.push(":enabled",":disabled")}el.querySelectorAll("*,:x");rbuggyQSA.push(",.*:")})}if(support.matchesSelector=rnative.test(matches=docElem.matches||docElem.webkitMatchesSelector||docElem.mozMatchesSelector||docElem.oMatchesSelector||docElem.msMatchesSelector)){assert(function(el){support.disconnectedMatch=matches.call(el,"*");matches.call(el,"[s!='']:x");rbuggyMatches.push("!=",pseudos)})}rbuggyQSA=rbuggyQSA.length&&new RegExp(rbuggyQSA.join("|"));rbuggyMatches=rbuggyMatches.length&&new RegExp(rbuggyMatches.join("|"));hasCompare=rnative.test(docElem.compareDocumentPosition);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};sortOrder=hasCompare?function(a,b){if(a===b){hasDuplicate=true;return 0}var compare=!a.compareDocumentPosition-!b.compareDocumentPosition;if(compare){return compare}compare=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1;if(compare&1||!support.sortDetached&&b.compareDocumentPosition(a)===compare){if(a===document||a.ownerDocument===preferredDoc&&contains(preferredDoc,a)){return-1}if(b===document||b.ownerDocument===preferredDoc&&contains(preferredDoc,b)){return 1}return sortInput?indexOf(sortInput,a)-indexOf(sortInput,b):0}return compare&4?-1:1}:function(a,b){if(a===b){hasDuplicate=true;return 0}var cur,i=0,aup=a.parentNode,bup=b.parentNode,ap=[a],bp=[b];if(!aup||!bup){return a===document?-1:b===document?1:aup?-1:bup?1:sortInput?indexOf(sortInput,a)-indexOf(sortInput,b):0}else if(aup===bup){return siblingCheck(a,b)}cur=a;while(cur=cur.parentNode){ap.unshift(cur)}cur=b;while(cur=cur.parentNode){bp.unshift(cur)}while(ap[i]===bp[i]){i++}return i?siblingCheck(ap[i],bp[i]):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){if((elem.ownerDocument||elem)!==document){setDocument(elem)}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);if(ret||support.disconnectedMatch||elem.document&&elem.document.nodeType!==11){return ret}}catch(e){}}return Sizzle(expr,document,null,[elem]).length>0};Sizzle.contains=function(context,elem){if((context.ownerDocument||context)!==document){setDocument(context)}return contains(context,elem)};Sizzle.attr=function(elem,name){if((elem.ownerDocument||elem)!==document){setDocument(elem)}var fn=Expr.attrHandle[name.toLowerCase()],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)};Sizzle.uniqueSort=function(results){var elem,duplicates=[],j=0,i=0;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)}}sortInput=null;return results};getText=Sizzle.getText=function(elem){var node,ret="",i=0,nodeType=elem.nodeType;if(!nodeType){while(node=elem[i++]){ret+=getText(node)}}else if(nodeType===1||nodeType===9||nodeType===11){if(typeof elem.textContent==="string"){return elem.textContent}else{for(elem=elem.firstChild;elem;elem=elem.nextSibling){ret+=getText(elem)}}}else if(nodeType===3||nodeType===4){return elem.nodeValue}return ret};Expr=Sizzle.selectors={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);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){match[1]=match[1].toLowerCase();if(match[1].slice(0,3)==="nth"){if(!match[3]){Sizzle.error(match[0])}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")}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}if(match[3]){match[2]=match[4]||match[5]||""}else if(unquoted&&rpseudo.test(unquoted)&&(excess=tokenize(unquoted,true))&&(excess=unquoted.indexOf(")",unquoted.length-excess)-unquoted.length)){match[0]=match[0].slice(0,excess);match[2]=unquoted.slice(0,excess)}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?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){if(simple){while(dir){node=elem;while(node=node[dir]){if(ofType?node.nodeName.toLowerCase()===name:node.nodeType===1){return false}}start=dir=type==="only"&&!start&&"nextSibling"}return true}start=[forward?parent.firstChild:parent.lastChild];if(forward&&useCache){node=parent;outerCache=node[expando]||(node[expando]={});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]||(diff=nodeIndex=0)||start.pop()){if(node.nodeType===1&&++diff&&node===elem){uniqueCache[type]=[dirruns,nodeIndex,diff];break}}}else{if(useCache){node=elem;outerCache=node[expando]||(node[expando]={});uniqueCache=outerCache[node.uniqueID]||(outerCache[node.uniqueID]={});cache=uniqueCache[type]||[];nodeIndex=cache[0]===dirruns&&cache[1];diff=nodeIndex}if(diff===false){while(node=++nodeIndex&&node&&node[dir]||(diff=nodeIndex=0)||start.pop()){if((ofType?node.nodeName.toLowerCase()===name:node.nodeType===1)&&++diff){if(useCache){outerCache=node[expando]||(node[expando]={});uniqueCache=outerCache[node.uniqueID]||(outerCache[node.uniqueID]={});uniqueCache[type]=[dirruns,diff]}if(node===elem){break}}}}}diff-=last;return diff===first||diff%first===0&&diff/first>=0}}},PSEUDO:function(pseudo,argument){var args,fn=Expr.pseudos[pseudo]||Expr.setFilters[pseudo.toLowerCase()]||Sizzle.error("unsupported pseudo: "+pseudo);if(fn[expando]){return fn(argument)}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:{not:markFunction(function(selector){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;while(i--){if(elem=unmatched[i]){seed[i]=!(matches[i]=elem)}}}):function(elem,context,xml){input[0]=elem;matcher(input,null,xml,results);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}}),lang:markFunction(function(lang){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}}),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)},enabled:createDisabledPseudo(false),disabled:createDisabledPseudo(true),checked:function(elem){var nodeName=elem.nodeName.toLowerCase();return nodeName==="input"&&!!elem.checked||nodeName==="option"&&!!elem.selected},selected:function(elem){if(elem.parentNode){elem.parentNode.selectedIndex}return elem.selected===true},empty:function(elem){for(elem=elem.firstChild;elem;elem=elem.nextSibling){if(elem.nodeType<6){return false}}return true},parent:function(elem){return!Expr.pseudos["empty"](elem)},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"&&((attr=elem.getAttribute("type"))==null||attr.toLowerCase()==="text")},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"];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)}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){if(!matched||(match=rcomma.exec(soFar))){if(match){soFar=soFar.slice(match[0].length)||soFar}groups.push(tokens=[])}matched=false;if(match=rcombinators.exec(soFar)){matched=match.shift();tokens.push({value:matched,type:match[0].replace(rtrim," ")});soFar=soFar.slice(matched.length)}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 parseOnly?soFar.length:soFar?Sizzle.error(selector):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?function(elem,context,xml){while(elem=elem[dir]){if(elem.nodeType===1||checkNonElements){return matcher(elem,context,xml)}}}:function(elem,context,xml){var oldCache,uniqueCache,outerCache,newCache=[dirruns,doneName];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]={});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){return newCache[2]=oldCache[2]}else{uniqueCache[key]=newCache;if(newCache[2]=matcher(elem,context,xml)){return true}}}}}}}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,elems=seed||multipleContexts(selector||"*",context.nodeType?[context]:context,[]),matcherIn=preFilter&&(seed||!selector)?condense(elems,preMap,preFilter,context,xml):elems,matcherOut=matcher?postFinder||(seed?preFilter:preexisting||postFilter)?[]:results:matcherIn;if(matcher){matcher(matcherIn,matcherOut,context,xml)}if(postFilter){temp=condense(matcherOut,postMap);postFilter(temp,[],context,xml);i=temp.length;while(i--){if(elem=temp[i]){matcherOut[postMap[i]]=!(matcherIn[postMap[i]]=elem)}}}if(seed){if(postFinder||preFilter){if(postFinder){temp=[];i=matcherOut.length;while(i--){if(elem=matcherOut[i]){temp.push(matcherIn[i]=elem)}}postFinder(null,matcherOut=[],temp,xml)}i=matcherOut.length;while(i--){if((elem=matcherOut[i])&&(temp=postFinder?indexOf(seed,elem):preMap[i])>-1){seed[temp]=!(results[temp]=elem)}}}}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,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));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);if(matcher[expando]){j=++i;for(;j<len;j++){if(Expr.relative[tokens[j].type]){break}}return setMatcher(i>1&&elementMatcher(matchers),i>1&&toSelector(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,elems=seed||byElement&&Expr.find["TAG"]("*",outermost),dirrunsUnique=dirruns+=contextBackup==null?1:Math.random()||.1,len=elems.length;if(outermost){outermostContext=context===document||context||outermost}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}}if(bySet){if(elem=!matcher&&elem){matchedCount--}if(seed){unmatched.push(elem)}}}matchedCount+=i;if(bySet&&i!==matchedCount){j=0;while(matcher=setMatchers[j++]){matcher(unmatched,setMatched,context,xml)}if(seed){if(matchedCount>0){while(i--){if(!(unmatched[i]||setMatched[i])){setMatched[i]=pop.call(results)}}}setMatched=condense(setMatched)}push.apply(results,setMatched);if(outermost&&!seed&&setMatched.length>0&&matchedCount+setMatchers.length>1){Sizzle.uniqueSort(results)}}if(outermost){dirruns=dirrunsUnique;outermostContext=contextBackup}return unmatched};return bySet?markFunction(superMatcher):superMatcher}compile=Sizzle.compile=function(selector,match){var i,setMatchers=[],elementMatchers=[],cached=compilerCache[selector+" "];if(!cached){if(!match){match=tokenize(selector)}i=match.length;while(i--){cached=matcherFromTokens(match[i]);if(cached[expando]){setMatchers.push(cached)}else{elementMatchers.push(cached)}}cached=compilerCache(selector,matcherFromGroupMatchers(elementMatchers,setMatchers));cached.selector=selector}return cached};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||[];if(match.length===1){tokens=match[0]=match[0].slice(0);if(tokens.length>2&&(token=tokens[0]).type==="ID"&&support.getById&&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}else if(compiled){context=context.parentNode}selector=selector.slice(tokens.shift().value.length)}i=matchExpr["needsContext"].test(selector)?0:tokens.length;while(i--){token=tokens[i];if(Expr.relative[type=token.type]){break}if(find=Expr.find[type]){if(seed=find(token.matches[0].replace(runescape,funescape),rsibling.test(tokens[0].type)&&testContext(context.parentNode)||context)){tokens.splice(i,1);selector=seed.length&&toSelector(tokens);if(!selector){push.apply(results,seed);return results}break}}}}(compiled||compile(selector,match))(seed,context,!documentIsHTML,results,!context||rsibling.test(selector)&&testContext(context.parentNode)||context);return results};support.sortStable=expando.split("").sort(sortOrder).join("")===expando;support.detectDuplicates=!!hasDuplicate;setDocument();support.sortDetached=assert(function(el){return el.compareDocumentPosition(document.createElement("fieldset"))&1});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)}})}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}})}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;jQuery.expr[":"]=jQuery.expr.pseudos;jQuery.uniqueSort=jQuery.unique=Sizzle.uniqueSort;jQuery.text=Sizzle.getText;jQuery.isXMLDoc=Sizzle.isXML;jQuery.contains=Sizzle.contains;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;var rsingleTag=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;var risSimple=/^.[^:#\[\.,]*$/;function winnow(elements,qualifier,not){if(jQuery.isFunction(qualifier)){return jQuery.grep(elements,function(elem,i){return!!qualifier.call(elem,i,elem)!==not})}if(qualifier.nodeType){return jQuery.grep(elements,function(elem){return elem===qualifier!==not})}if(typeof qualifier==="string"){if(risSimple.test(qualifier)){return jQuery.filter(qualifier,elements,not)}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+")"}return elems.length===1&&elem.nodeType===1?jQuery.find.matchesSelector(elem,expr)?[elem]:[]:jQuery.find.matches(expr,jQuery.grep(elems,function(elem){return elem.nodeType===1}))};jQuery.fn.extend({find:function(selector){var i,len=this.length,ret=[],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}}}))}for(i=0;i<len;i++){jQuery.find(selector,self[i],ret)}return this.pushStack(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,typeof selector==="string"&&rneedsContext.test(selector)?jQuery(selector):selector||[],false).length}});var rootjQuery,rquickExpr=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,init=jQuery.fn.init=function(selector,context,root){var match,elem;if(!selector){return this}root=root||rootjQuery;if(typeof selector==="string"){if(selector[0]==="<"&&selector[selector.length-1]===">"&&selector.length>=3){match=[null,selector,null]}else{match=rquickExpr.exec(selector)}if(match&&(match[1]||!context)){if(match[1]){context=context instanceof jQuery?context[0]:context;jQuery.merge(this,jQuery.parseHTML(match[1],context&&context.nodeType?context.ownerDocument||context:document,true));if(rsingleTag.test(match[1])&&jQuery.isPlainObject(context)){for(match in context){if(jQuery.isFunction(this[match])){this[match](context[match])}else{this.attr(match,context[match])}}}return this}else{elem=document.getElementById(match[2]);if(elem){this[0]=elem;this.length=1}return this}}else if(!context||context.jquery){return(context||root).find(selector)}else{return this.constructor(context).find(selector)}}else if(selector.nodeType){this[0]=selector;this.length=1;return this}else if(jQuery.isFunction(selector)){return root.ready!==undefined?root.ready(selector):selector(jQuery)}return jQuery.makeArray(selector,this)};init.prototype=jQuery.fn;rootjQuery=jQuery(document);var rparentsprev=/^(?:parents|prev(?:Until|All))/,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);if(!rneedsContext.test(selectors)){for(;i<l;i++){for(cur=this[i];cur&&cur!==context;cur=cur.parentNode){if(cur.nodeType<11&&(targets?targets.index(cur)>-1:cur.nodeType===1&&jQuery.find.matchesSelector(cur,selectors))){matched.push(cur);break}}}}return this.pushStack(matched.length>1?jQuery.uniqueSort(matched):matched)},index:function(elem){if(!elem){return this[0]&&this[0].parentNode?this.first().prevAll().length:-1}if(typeof elem==="string"){return indexOf.call(jQuery(elem),this[0])}return indexOf.call(this,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){
return elem.contentDocument||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){if(!guaranteedUnique[name]){jQuery.uniqueSort(matched)}if(rparentsprev.test(name)){matched.reverse()}}return this.pushStack(matched)}});var rnotwhite=/\S+/g;function createOptions(options){var object={};jQuery.each(options.match(rnotwhite)||[],function(_,flag){object[flag]=true});return object}jQuery.Callbacks=function(options){options=typeof options==="string"?createOptions(options):jQuery.extend({},options);var firing,memory,fired,locked,list=[],queue=[],firingIndex=-1,fire=function(){locked=options.once;fired=firing=true;for(;queue.length;firingIndex=-1){memory=queue.shift();while(++firingIndex<list.length){if(list[firingIndex].apply(memory[0],memory[1])===false&&options.stopOnFalse){firingIndex=list.length;memory=false}}}if(!options.memory){memory=false}firing=false;if(locked){if(memory){list=[]}else{list=""}}},self={add:function(){if(list){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"){add(arg)}})})(arguments);if(memory&&!firing){fire()}}return this},remove:function(){jQuery.each(arguments,function(_,arg){var index;while((index=jQuery.inArray(arg,list,index))>-1){list.splice(index,1);if(index<=firingIndex){firingIndex--}}});return this},has:function(fn){return fn?jQuery.inArray(fn,list)>-1:list.length>0},empty:function(){if(list){list=[]}return this},disable:function(){locked=queue=[];list=memory="";return this},disabled:function(){return!list},lock:function(){locked=queue=[];if(!memory&&!firing){list=memory=""}return this},locked:function(){return!!locked},fireWith:function(context,args){if(!locked){args=args||[];args=[context,args.slice?args.slice():args];queue.push(args);if(!firing){fire()}}return this},fire:function(){self.fireWith(this,arguments);return this},fired:function(){return!!fired}};return self};function Identity(v){return v}function Thrower(ex){throw ex}jQuery.extend({Deferred:function(func){var tuples=[["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)},pipe:function(){var fns=arguments;return jQuery.Deferred(function(newDefer){jQuery.each(tuples,function(i,tuple){var fn=jQuery.isFunction(fns[tuple[4]])&&fns[tuple[4]];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===promise?newDefer.promise():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===promise?undefined:this,args=arguments,mightThrow=function(){var returned,then;if(depth<maxDepth){return}returned=handler.apply(that,args);if(returned===deferred.promise()){throw new TypeError("Thenable self-resolution")}then=returned&&(typeof returned==="object"||typeof returned==="function")&&returned.then;if(jQuery.isFunction(then)){if(special){then.call(returned,resolve(maxDepth,deferred,Identity,special),resolve(maxDepth,deferred,Thrower,special))}else{maxDepth++;then.call(returned,resolve(maxDepth,deferred,Identity,special),resolve(maxDepth,deferred,Thrower,special),resolve(maxDepth,deferred,Identity,deferred.notify))}}else{if(handler!==Identity){that=undefined;args=[returned]}(special||deferred.resolveWith)(that||deferred.promise(),args)}},process=special?mightThrow:function(){try{mightThrow()}catch(e){if(jQuery.Deferred.exceptionHook){jQuery.Deferred.exceptionHook(e,process.stackTrace)}if(depth+1>=maxDepth){if(handler!==Thrower){that=undefined;args=[e]}deferred.rejectWith(that||deferred.promise(),args)}}};if(depth){process()}else{if(jQuery.Deferred.getStackHook){process.stackTrace=jQuery.Deferred.getStackHook()}window.setTimeout(process)}}}return jQuery.Deferred(function(newDefer){tuples[0][3].add(resolve(0,newDefer,jQuery.isFunction(onProgress)?onProgress:Identity,newDefer.notifyWith));tuples[1][3].add(resolve(0,newDefer,jQuery.isFunction(onFulfilled)?onFulfilled:Identity));tuples[2][3].add(resolve(0,newDefer,jQuery.isFunction(onRejected)?onRejected:Thrower))}).promise()},promise:function(obj){return obj!=null?jQuery.extend(obj,promise):promise}},deferred={};jQuery.each(tuples,function(i,tuple){var list=tuple[2],stateString=tuple[5];promise[tuple[1]]=list.add;if(stateString){list.add(function(){state=stateString},tuples[3-i][2].disable,tuples[0][2].lock)}list.add(tuple[3].fire);deferred[tuple[0]]=function(){deferred[tuple[0]+"With"](this===deferred?promise:this,arguments);return this};deferred[tuple[0]+"With"]=list.fireWith});promise.promise(deferred);if(func){func.call(deferred,deferred)}return deferred},when:function(){var method,resolveContexts,i=0,resolveValues=slice.call(arguments),length=resolveValues.length,remaining=length,master=jQuery.Deferred(),updateFunc=function(i){return function(value){resolveContexts[i]=this;resolveValues[i]=arguments.length>1?slice.call(arguments):value;if(!--remaining){master.resolveWith(resolveContexts.length===1?resolveContexts[0]:resolveContexts,resolveValues)}}};if(length>0){resolveContexts=new Array(length);for(;i<length;i++){if(resolveValues[i]&&jQuery.isFunction(method=resolveValues[i].promise)){method.call(resolveValues[i]).done(updateFunc(i)).fail(master.reject)}else if(resolveValues[i]&&jQuery.isFunction(method=resolveValues[i].then)){method.call(resolveValues[i],updateFunc(i),master.reject)}else{updateFunc(i)(resolveValues[i])}}}else{master.resolveWith()}return master.promise()}});var rerrorNames=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;jQuery.Deferred.exceptionHook=function(error,stack){if(window.console&&window.console.warn&&error&&rerrorNames.test(error.name)){window.console.warn("jQuery.Deferred exception: "+error.message,stack)}};var readyList;jQuery.fn.ready=function(fn){jQuery.ready.promise().done(fn);return this};jQuery.extend({isReady:false,readyWait:1,holdReady:function(hold){if(hold){jQuery.readyWait++}else{jQuery.ready(true)}},ready:function(wait){if(wait===true?--jQuery.readyWait:jQuery.isReady){return}jQuery.isReady=true;if(wait!==true&&--jQuery.readyWait>0){return}readyList.resolveWith(document,[jQuery])}});function completed(){document.removeEventListener("DOMContentLoaded",completed);window.removeEventListener("load",completed);jQuery.ready()}jQuery.ready.promise=function(obj){if(!readyList){readyList=jQuery.Deferred();if(document.readyState==="complete"||document.readyState!=="loading"&&!document.documentElement.doScroll){window.setTimeout(jQuery.ready)}else{document.addEventListener("DOMContentLoaded",completed);window.addEventListener("load",completed)}}return readyList.promise(obj)};jQuery.ready.promise();var access=function(elems,fn,key,value,chainable,emptyGet,raw){var i=0,len=elems.length,bulk=key==null;if(jQuery.type(key)==="object"){chainable=true;for(i in key){access(elems,fn,i,key[i],true,emptyGet,raw)}}else if(value!==undefined){chainable=true;if(!jQuery.isFunction(value)){raw=true}if(bulk){if(raw){fn.call(elems,value);fn=null}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)))}}}return chainable?elems:bulk?fn.call(elems):len?fn(elems[0],key):emptyGet};var acceptData=function(owner){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){var value=owner[this.expando];if(!value){value={};if(acceptData(owner)){if(owner.nodeType){owner[this.expando]=value}else{Object.defineProperty(owner,this.expando,{value:value,configurable:true})}}}return value},set:function(owner,data,value){var prop,cache=this.cache(owner);if(typeof data==="string"){cache[jQuery.camelCase(data)]=value}else{for(prop in data){cache[jQuery.camelCase(prop)]=data[prop]}}return cache},get:function(owner,key){return key===undefined?this.cache(owner):owner[this.expando]&&owner[this.expando][jQuery.camelCase(key)]},access:function(owner,key,value){if(key===undefined||key&&typeof key==="string"&&value===undefined){return this.get(owner,key)}this.set(owner,key,value);return value!==undefined?value:key},remove:function(owner,key){var i,cache=owner[this.expando];if(cache===undefined){return}if(key!==undefined){if(jQuery.isArray(key)){key=key.map(jQuery.camelCase)}else{key=jQuery.camelCase(key);key=key in cache?[key]:key.match(rnotwhite)||[]}i=key.length;while(i--){delete cache[key[i]]}}if(key===undefined||jQuery.isEmptyObject(cache)){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;var rbrace=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,rmultiDash=/[A-Z]/g;function dataAttr(elem,key,data){var name;if(data===undefined&&elem.nodeType===1){name="data-"+key.replace(rmultiDash,"-$&").toLowerCase();data=elem.getAttribute(name);if(typeof data==="string"){try{data=data==="true"?true:data==="false"?false:data==="null"?null:+data+""===data?+data:rbrace.test(data)?jQuery.parseJSON(data):data}catch(e){}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)},_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;if(key===undefined){if(this.length){data=dataUser.get(elem);if(elem.nodeType===1&&!dataPriv.get(elem,"hasDataAttrs")){i=attrs.length;while(i--){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}if(typeof key==="object"){return this.each(function(){dataUser.set(this,key)})}return access(this,function(value){var data;if(elem&&value===undefined){data=dataUser.get(elem,key);if(data!==undefined){return data}data=dataAttr(elem,key);if(data!==undefined){return data}return}this.each(function(){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);if(data){if(!queue||jQuery.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(fn==="inprogress"){fn=queue.shift();startLength--}if(fn){if(type==="fx"){queue.unshift("inprogress")}delete hooks.stop;fn.call(elem,next,hooks)}if(!startLength&&hooks){hooks.empty.fire()}},_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);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",[])},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 isHidden=function(elem,el){elem=el||elem;return jQuery.css(elem,"display")==="none"||!jQuery.contains(elem.ownerDocument,elem)};var swap=function(elem,options,callback,args){var ret,name,old={};for(name in options){old[name]=elem.style[name];elem.style[name]=options[name]}ret=callback.apply(elem,args||[]);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"),initialInUnit=(jQuery.cssNumber[prop]||unit!=="px"&&+initial)&&rcssNum.exec(jQuery.css(elem,prop));if(initialInUnit&&initialInUnit[3]!==unit){unit=unit||initialInUnit[3];valueParts=valueParts||[];initialInUnit=+initial||1;do{scale=scale||".5";initialInUnit=initialInUnit/scale;jQuery.style(elem,prop,initialInUnit+unit)}while(scale!==(scale=currentValue()/initial)&&scale!==1&&--maxIterations)}if(valueParts){initialInUnit=+initialInUnit||+initial||0;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;for(;index<length;index++){elem=elements[index];if(!elem.style){continue}display=elem.style.display;if(show){if(display==="none"){values[index]=dataPriv.get(elem,"display")||null;if(!values[index]){elem.style.display=""}}if(elem.style.display===""&&jQuery.css(elem,"display")==="none"&&jQuery.contains(elem.ownerDocument,elem)){values[index]=getDefaultDisplay(elem)}}else{if(display!=="none"){values[index]="none";dataPriv.set(elem,"display",display)}}}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(isHidden(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;var wrapMap={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,"",""]};wrapMap.optgroup=wrapMap.option;wrapMap.tbody=wrapMap.tfoot=wrapMap.colgroup=wrapMap.caption=wrapMap.thead;wrapMap.th=wrapMap.td;function getAll(context,tag){var ret=typeof context.getElementsByTagName!=="undefined"?context.getElementsByTagName(tag||"*"):typeof context.querySelectorAll!=="undefined"?context.querySelectorAll(tag||"*"):[];return tag===undefined||tag&&jQuery.nodeName(context,tag)?jQuery.merge([context],ret):ret}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){if(jQuery.type(elem)==="object"){jQuery.merge(nodes,elem.nodeType?[elem]:elem)}else if(!rhtml.test(elem)){nodes.push(context.createTextNode(elem))}else{tmp=tmp||fragment.appendChild(context.createElement("div"));tag=(rtagName.exec(elem)||["",""])[1].toLowerCase();wrap=wrapMap[tag]||wrapMap._default;tmp.innerHTML=wrap[1]+jQuery.htmlPrefilter(elem)+wrap[2];j=wrap[0];while(j--){tmp=tmp.lastChild}jQuery.merge(nodes,tmp.childNodes);tmp=fragment.firstChild;tmp.textContent=""}}}fragment.textContent="";i=0;while(elem=nodes[i++]){if(selection&&jQuery.inArray(elem,selection)>-1){if(ignored){ignored.push(elem)}continue}contains=jQuery.contains(elem.ownerDocument,elem);tmp=getAll(fragment.appendChild(elem),"script");if(contains){setGlobalEval(tmp)}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");input.setAttribute("type","radio");input.setAttribute("checked","checked");input.setAttribute("name","t");div.appendChild(input);support.checkClone=div.cloneNode(true).cloneNode(true).lastChild.checked;div.innerHTML="<textarea>x</textarea>";support.noCloneChecked=!!div.cloneNode(true).lastChild.defaultValue})();var rkeyEvent=/^key/,rmouseEvent=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,rtypenamespace=/^([^.]*)(?:\.(.+)|)/;function returnTrue(){return true}function returnFalse(){return false}function safeActiveElement(){try{return document.activeElement}catch(err){}}function on(elem,types,selector,data,fn,one){var origFn,type;if(typeof types==="object"){if(typeof selector!=="string"){data=data||selector;selector=undefined}for(type in types){on(elem,type,selector,data,types[type],one)}return elem}if(data==null&&fn==null){fn=selector;data=selector=undefined}else if(fn==null){if(typeof selector==="string"){fn=data;data=undefined}else{fn=data;data=selector;selector=undefined}}if(fn===false){fn=returnFalse}if(one===1){origFn=fn;fn=function(event){jQuery().off(event);return origFn.apply(this,arguments)};fn.guid=origFn.guid||(origFn.guid=jQuery.guid++)}return elem.each(function(){jQuery.event.add(this,types,fn,data,selector)})}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);if(!elemData){return}if(handler.handler){handleObjIn=handler;handler=handleObjIn.handler;selector=handleObjIn.selector}if(!handler.guid){handler.guid=jQuery.guid++}if(!(events=elemData.events)){events=elemData.events={}}if(!(eventHandle=elemData.handle)){eventHandle=elemData.handle=function(e){return typeof jQuery!=="undefined"&&jQuery.event.triggered!==e.type?jQuery.event.dispatch.apply(elem,arguments):undefined}}types=(types||"").match(rnotwhite)||[""];t=types.length;while(t--){tmp=rtypenamespace.exec(types[t])||[];type=origType=tmp[1];namespaces=(tmp[2]||"").split(".").sort();if(!type){continue}special=jQuery.event.special[type]||{};type=(selector?special.delegateType:special.bindType)||type;special=jQuery.event.special[type]||{};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);if(!(handlers=events[type])){handlers=events[type]=[];handlers.delegateCount=0;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}}if(selector){handlers.splice(handlers.delegateCount++,0,handleObj)}else{handlers.push(handleObj)}jQuery.event.global[type]=true}},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}types=(types||"").match(rnotwhite)||[""];t=types.length;while(t--){tmp=rtypenamespace.exec(types[t])||[];type=origType=tmp[1];namespaces=(tmp[2]||"").split(".").sort();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("\\.(?:.*\\.|)")+"(\\.|$)");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)}}}if(origCount&&!handlers.length){if(!special.teardown||special.teardown.call(elem,namespaces,elemData.handle)===false){jQuery.removeEvent(elem,type,elemData.handle)}delete events[type]}}if(jQuery.isEmptyObject(events)){dataPriv.remove(elem,"handle events")}},dispatch:function(event){event=jQuery.event.fix(event);var i,j,ret,matched,handleObj,handlerQueue=[],args=slice.call(arguments),handlers=(dataPriv.get(this,"events")||{})[event.type]||[],special=jQuery.event.special[event.type]||{};args[0]=event;event.delegateTarget=this;if(special.preDispatch&&special.preDispatch.call(this,event)===false){return}handlerQueue=jQuery.event.handlers.call(this,event,handlers);i=0;while((matched=handlerQueue[i++])&&!event.isPropagationStopped()){event.currentTarget=matched.elem;j=0;while((handleObj=matched.handlers[j++])&&!event.isImmediatePropagationStopped()){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()}}}}}if(special.postDispatch){special.postDispatch.call(this,event)}return event.result},handlers:function(event,handlers){var i,matches,sel,handleObj,handlerQueue=[],delegateCount=handlers.delegateCount,cur=event.target;if(delegateCount&&cur.nodeType&&(event.type!=="click"||isNaN(event.button)||event.button<1)){for(;cur!==this;cur=cur.parentNode||this){if(cur.nodeType===1&&(cur.disabled!==true||event.type!=="click")){matches=[];for(i=0;i<delegateCount;i++){handleObj=handlers[i];sel=handleObj.selector+" ";if(matches[sel]===undefined){matches[sel]=handleObj.needsContext?jQuery(sel,this).index(cur)>-1:jQuery.find(sel,this,null,[cur]).length}if(matches[sel]){matches.push(handleObj)}}if(matches.length){handlerQueue.push({elem:cur,handlers:matches})}}}}if(delegateCount<handlers.length){handlerQueue.push({elem:this,handlers:handlers.slice(delegateCount)})}return handlerQueue},props:("altKey bubbles cancelable ctrlKey currentTarget detail eventPhase "+"metaKey relatedTarget shiftKey target timeStamp view which").split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(event,original){if(event.which==null){event.which=original.charCode!=null?original.charCode:original.keyCode}return event}},mouseHooks:{props:("button buttons clientX clientY offsetX offsetY pageX pageY "+"screenX screenY toElement").split(" "),filter:function(event,original){var eventDoc,doc,body,button=original.button;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)}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}var i,prop,copy,type=event.type,originalEvent=event,fixHook=this.fixHooks[type];if(!fixHook){this.fixHooks[type]=fixHook=rmouseEvent.test(type)?this.mouseHooks:rkeyEvent.test(type)?this.keyHooks:{}}copy=fixHook.props?this.props.concat(fixHook.props):this.props;event=new jQuery.Event(originalEvent);i=copy.length;while(i--){prop=copy[i];event[prop]=originalEvent[prop]}if(event.target.nodeType===3){event.target=event.target.parentNode}return fixHook.filter?fixHook.filter(event,originalEvent):event},special:{load:{noBubble:true},focus:{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:{trigger:function(){if(this.type==="checkbox"&&this.click&&jQuery.nodeName(this,"input")){this.click();return false}},_default:function(event){return jQuery.nodeName(event.target,"a")}},beforeunload:{postDispatch:function(event){if(event.result!==undefined&&event.originalEvent){event.originalEvent.returnValue=event.result}}}}};jQuery.removeEvent=function(elem,type,handle){if(elem.removeEventListener){elem.removeEventListener(type,handle)}};jQuery.Event=function(src,props){if(!(this instanceof jQuery.Event)){return new jQuery.Event(src,props)}if(src&&src.type){this.originalEvent=src;this.type=src.type;this.isDefaultPrevented=src.defaultPrevented||src.defaultPrevented===undefined&&src.returnValue===false?returnTrue:returnFalse}else{this.type=src}if(props){jQuery.extend(this,props)}this.timeStamp=src&&src.timeStamp||jQuery.now();this[jQuery.expando]=true};jQuery.Event.prototype={constructor:jQuery.Event,isDefaultPrevented:returnFalse,isPropagationStopped:returnFalse,isImmediatePropagationStopped:returnFalse,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=returnTrue;if(e){e.preventDefault()}},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=returnTrue;if(e){e.stopPropagation()}},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=returnTrue;if(e){e.stopImmediatePropagation()}this.stopPropagation()}};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;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){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"){for(type in types){this.off(type,selector,types[type])}return this}if(selector===false||typeof selector==="function"){fn=selector;selector=undefined}if(fn===false){fn=returnFalse}return this.each(function(){jQuery.event.remove(this,types,fn,selector)})}});var rxhtmlTag=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,rnoInnerhtml=/<script|<style|<link/i,rchecked=/checked\s*(?:[^=]|=\s*.checked.)/i,rscriptTypeMasked=/^true\/(.*)/,rcleanScript=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function manipulationTarget(elem,content){if(jQuery.nodeName(elem,"table")&&jQuery.nodeName(content.nodeType!==11?content:content.firstChild,"tr")){return elem.getElementsByTagName("tbody")[0]||elem}return elem}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}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])}}}}if(dataUser.hasData(src)){udataOld=dataUser.access(src);udataCur=jQuery.extend({},udataOld);dataUser.set(dest,udataCur)}}function fixInput(src,dest){var nodeName=dest.nodeName.toLowerCase();if(nodeName==="input"&&rcheckableType.test(src.type)){dest.checked=src.checked}else if(nodeName==="input"||nodeName==="textarea"){dest.defaultValue=src.defaultValue}}function domManip(collection,args,callback,ignored){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);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}if(first||ignored){scripts=jQuery.map(getAll(fragment,"script"),disableScript);hasScripts=scripts.length;for(;i<l;i++){node=fragment;if(i!==iNoClone){node=jQuery.clone(node,true,true);if(hasScripts){jQuery.merge(scripts,getAll(node,"script"))}}callback.call(collection[i],node,i)}if(hasScripts){doc=scripts[scripts.length-1].ownerDocument;jQuery.map(scripts,restoreScript);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){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);
if(!support.noCloneChecked&&(elem.nodeType===1||elem.nodeType===11)&&!jQuery.isXMLDoc(elem)){destElements=getAll(clone);srcElements=getAll(elem);for(i=0,l=srcElements.length;i<l;i++){fixInput(srcElements[i],destElements[i])}}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)}}destElements=getAll(clone,"script");if(destElements.length>0){setGlobalEval(destElements,!inPage&&getAll(elem,"script"))}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)}else{jQuery.removeEvent(elem,type,data.handle)}}}elem[dataPriv.expando]=undefined}if(elem[dataUser.expando]){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){jQuery.cleanData(getAll(elem,false));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}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]||{};if(elem.nodeType===1){jQuery.cleanData(getAll(elem,false));elem.innerHTML=value}}elem=0}catch(e){}}if(elem){this.empty().append(value)}},null,value,arguments.length)},replaceWith:function(){var ignored=[];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)}}},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);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){var view=elem.ownerDocument.defaultView;if(!view.opener){view=window}return view.getComputedStyle(elem)};var documentElement=document.documentElement;(function(){var pixelPositionVal,boxSizingReliableVal,pixelMarginRightVal,reliableMarginLeftVal,container=document.createElement("div"),div=document.createElement("div");if(!div.style){return}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);function computeStyleTests(){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%";reliableMarginLeftVal=divStyle.marginLeft==="2px";boxSizingReliableVal=divStyle.width==="4px";div.style.marginRight="50%";pixelMarginRightVal=divStyle.marginRight==="4px";documentElement.removeChild(container)}jQuery.extend(support,{pixelPosition:function(){computeStyleTests();return pixelPositionVal},boxSizingReliable:function(){if(boxSizingReliableVal==null){computeStyleTests()}return boxSizingReliableVal},pixelMarginRight:function(){if(boxSizingReliableVal==null){computeStyleTests()}return pixelMarginRightVal},reliableMarginLeft:function(){if(boxSizingReliableVal==null){computeStyleTests()}return reliableMarginLeftVal}})})();function curCSS(elem,name,computed){var width,minWidth,maxWidth,ret,style=elem.style;computed=computed||getStyles(elem);if(computed){ret=computed.getPropertyValue(name)||computed[name];if(ret===""&&!jQuery.contains(elem.ownerDocument,elem)){ret=jQuery.style(elem,name)}if(!support.pixelMarginRight()&&rnumnonpx.test(ret)&&rmargin.test(name)){width=style.width;minWidth=style.minWidth;maxWidth=style.maxWidth;style.minWidth=style.maxWidth=style.width=ret;ret=computed.width;style.width=width;style.minWidth=minWidth;style.maxWidth=maxWidth}}return ret!==undefined?ret+"":ret}function addGetHookIf(conditionFn,hookFn){return{get:function(){if(conditionFn()){delete this.get;return}return(this.get=hookFn).apply(this,arguments)}}}var rdisplayswap=/^(none|table(?!-c[ea]).+)/,cssShow={position:"absolute",visibility:"hidden",display:"block"},cssNormalTransform={letterSpacing:"0",fontWeight:"400"},cssPrefixes=["Webkit","Moz","ms"],emptyStyle=document.createElement("div").style;function vendorPropName(name){if(name in emptyStyle){return name}var capName=name[0].toUpperCase()+name.slice(1),i=cssPrefixes.length;while(i--){name=cssPrefixes[i]+capName;if(name in emptyStyle){return name}}}function setPositiveNumber(elem,value,subtract){var matches=rcssNum.exec(value);return matches?Math.max(0,matches[2]-(subtract||0))+(matches[3]||"px"):value}function augmentWidthOrHeight(elem,name,extra,isBorderBox,styles){var i=extra===(isBorderBox?"border":"content")?4:name==="width"?1:0,val=0;for(;i<4;i+=2){if(extra==="margin"){val+=jQuery.css(elem,extra+cssExpand[i],true,styles)}if(isBorderBox){if(extra==="content"){val-=jQuery.css(elem,"padding"+cssExpand[i],true,styles)}if(extra!=="margin"){val-=jQuery.css(elem,"border"+cssExpand[i]+"Width",true,styles)}}else{val+=jQuery.css(elem,"padding"+cssExpand[i],true,styles);if(extra!=="padding"){val+=jQuery.css(elem,"border"+cssExpand[i]+"Width",true,styles)}}}return val}function getWidthOrHeight(elem,name,extra){var val,valueIsBorderBox=true,styles=getStyles(elem),isBorderBox=jQuery.css(elem,"boxSizing",false,styles)==="border-box";if(elem.getClientRects().length){val=elem.getBoundingClientRect()[name]}if(document.msFullscreenElement&&window.top!==window){val*=100}if(val<=0||val==null){val=curCSS(elem,name,styles);if(val<0||val==null){val=elem.style[name]}if(rnumnonpx.test(val)){return val}valueIsBorderBox=isBorderBox&&(support.boxSizingReliable()||val===elem.style[name]);val=parseFloat(val)||0}return val+augmentWidthOrHeight(elem,name,extra||(isBorderBox?"border":"content"),valueIsBorderBox,styles)+"px"}jQuery.extend({cssHooks:{opacity:{get:function(elem,computed){if(computed){var ret=curCSS(elem,"opacity");return ret===""?"1":ret}}}},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},cssProps:{"float":"cssFloat"},style:function(elem,name,value,extra){if(!elem||elem.nodeType===3||elem.nodeType===8||!elem.style){return}var ret,type,hooks,origName=jQuery.camelCase(name),style=elem.style;name=jQuery.cssProps[origName]||(jQuery.cssProps[origName]=vendorPropName(origName)||origName);hooks=jQuery.cssHooks[name]||jQuery.cssHooks[origName];if(value!==undefined){type=typeof value;if(type==="string"&&(ret=rcssNum.exec(value))&&ret[1]){value=adjustCSS(elem,name,ret);type="number"}if(value==null||value!==value){return}if(type==="number"){value+=ret&&ret[3]||(jQuery.cssNumber[origName]?"":"px")}if(!support.clearCloneStyle&&value===""&&name.indexOf("background")===0){style[name]="inherit"}if(!hooks||!("set"in hooks)||(value=hooks.set(elem,value,extra))!==undefined){style[name]=value}}else{if(hooks&&"get"in hooks&&(ret=hooks.get(elem,false,extra))!==undefined){return ret}return style[name]}},css:function(elem,name,extra,styles){var val,num,hooks,origName=jQuery.camelCase(name);name=jQuery.cssProps[origName]||(jQuery.cssProps[origName]=vendorPropName(origName)||origName);hooks=jQuery.cssHooks[name]||jQuery.cssHooks[origName];if(hooks&&"get"in hooks){val=hooks.get(elem,true,extra)}if(val===undefined){val=curCSS(elem,name,styles)}if(val==="normal"&&name in cssNormalTransform){val=cssNormalTransform[name]}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){return rdisplayswap.test(jQuery.css(elem,"display"))&&(!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);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"}});jQuery.each({margin:"",padding:"",border:"Width"},function(prefix,suffix){jQuery.cssHooks[prefix+suffix]={expand:function(value){var i=0,expanded={},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(jQuery.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 hooks=Tween.propHooks[this.prop];this.pos=this.options.duration?jQuery.easing[this.easing](percent):percent;this.now=(this.end-this.start)*this.pos+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;if(tween.elem.nodeType!==1||tween.elem[tween.prop]!=null&&tween.elem.style[tween.prop]==null){return tween.elem[tween.prop]}result=jQuery.css(tween.elem,tween.prop,"");return!result||result==="auto"?0:result},set:function(tween){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}}}};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.5-Math.cos(p*Math.PI)/2},_default:"swing"};jQuery.fx=Tween.prototype.init;jQuery.fx.step={};var fxNow,timerId,rfxtypes=/^(?:toggle|show|hide)$/,rrun=/queueHooks$/;function raf(){if(timerId){window.requestAnimationFrame(raf);jQuery.fx.tick()}}function createFxNow(){window.setTimeout(function(){fxNow=undefined});return fxNow=jQuery.now()}function genFx(type,includeWidth){var which,i=0,attrs={height:type};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)){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&&isHidden(elem),dataShow=dataPriv.get(elem,"fxshow");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(){anim.always(function(){hooks.unqueued--;if(!jQuery.queue(elem,"fx").length){hooks.empty.fire()}})})}for(prop in props){value=props[prop];if(rfxtypes.test(value)){delete props[prop];toggle=toggle||value==="toggle";if(value===(hidden?"hide":"show")){if(value==="show"&&dataShow&&dataShow[prop]!==undefined){hidden=true}else{continue}}orig[prop]=dataShow&&dataShow[prop]||jQuery.style(elem,prop)}}propTween=!jQuery.isEmptyObject(props);if(!propTween&&jQuery.isEmptyObject(orig)){return}if(isBox&&elem.nodeType===1){opts.overflow=[style.overflow,style.overflowX,style.overflowY];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{showHide([elem],true);restoreDisplay=elem.style.display||restoreDisplay;display=jQuery.css(elem,"display");showHide([elem])}}if(display==="inline"||display==="inline-block"&&restoreDisplay!=null){if(jQuery.css(elem,"float")==="none"){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]})}propTween=false;for(prop in orig){if(!propTween){if(dataShow){if("hidden"in dataShow){hidden=dataShow.hidden}}else{dataShow=dataPriv.access(elem,"fxshow",{display:restoreDisplay})}if(toggle){dataShow.hidden=!hidden}if(hidden){showHide([elem],true)}anim.done(function(){if(!hidden){showHide([elem])}dataPriv.remove(elem,"fxshow");for(prop in orig){jQuery.style(elem,prop,orig[prop])}})}propTween=createTween(hidden?dataShow[prop]:0,prop,anim);if(!(prop in dataShow)){dataShow[prop]=propTween.start;if(hidden){propTween.end=propTween.start;propTween.start=prop==="width"||prop==="height"?1:0}}}}function propFilter(props,specialEasing){var index,name,easing,value,hooks;for(index in props){name=jQuery.camelCase(index);easing=specialEasing[name];value=props[index];if(jQuery.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];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(){delete tick.elem}),tick=function(){if(stopped){return false}var currentTime=fxNow||createFxNow(),remaining=Math.max(0,animation.startTime+animation.duration-currentTime),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(percent<1&&length){return remaining}else{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,length=gotoEnd?animation.tweens.length:0;if(stopped){return this}stopped=true;for(;index<length;index++){animation.tweens[index].run(1)}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)}jQuery.fx.timer(jQuery.extend(tick,{elem:elem,anim:animation,queue:animation.opts.queue}));return animation.progress(animation.opts.progress).done(animation.opts.done,animation.opts.complete).fail(animation.opts.fail).always(animation.opts.always)}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(rnotwhite)}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};if(jQuery.fx.off||document.hidden){opt.duration=0}else{opt.duration=typeof opt.duration==="number"?opt.duration:opt.duration in jQuery.fx.speeds?jQuery.fx.speeds[opt.duration]:jQuery.fx.speeds._default}if(opt.queue==null||opt.queue===true){opt.queue="fx"}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){return this.filter(isHidden).css("opacity",0).show().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(){var anim=Animation(this,jQuery.extend({},prop),optall);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)}}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;data.finish=true;jQuery.queue(this,type,[]);if(hooks&&hooks.stop){hooks.stop.call(this,true)}for(index=timers.length;index--;){if(timers[index].elem===this&&timers[index].queue===type){timers[index].anim.stop(true);timers.splice(index,1)}}for(index=0;index<length;index++){if(queue[index]&&queue[index].finish){queue[index].finish.call(this)}}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)}});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];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);if(timer()){jQuery.fx.start()}else{jQuery.timers.pop()}};jQuery.fx.interval=13;jQuery.fx.start=function(){if(!timerId){timerId=window.requestAnimationFrame?window.requestAnimationFrame(raf):window.setInterval(jQuery.fx.tick,jQuery.fx.interval)}};jQuery.fx.stop=function(){if(window.cancelAnimationFrame){window.cancelAnimationFrame(timerId)}else{window.clearInterval(timerId)}timerId=null};jQuery.fx.speeds={slow:600,fast:200,_default:400};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.checkOn=input.value!=="";support.optSelected=opt.selected;input=document.createElement("input");input.value="t";input.type="radio";support.radioValue=input.value==="t"})();var boolHook,attrHandle=jQuery.expr.attrHandle,raz=/[A-Z]+/g,lowercase=function(ch){return ch.toLowerCase()};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;if(nType===3||nType===8||nType===2){return}if(typeof elem.getAttribute==="undefined"){return jQuery.prop(elem,name,value)}if(nType!==1||!jQuery.isXMLDoc(elem)){name=name.replace(raz,lowercase);hooks=jQuery.attrHooks[name]||(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);return ret==null?undefined:ret},attrHooks:{type:{set:function(elem,value){if(!support.radioValue&&value==="radio"&&jQuery.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,attrNames=value&&value.match(rnotwhite);if(attrNames&&elem.nodeType===1){while(name=attrNames[i++]){elem.removeAttribute(name)}}}});boolHook={set:function(elem,value,name){if(value===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;if(!isXML){handle=attrHandle[name];attrHandle[name]=ret;ret=getter(elem,name,isXML)!=null?name.toLowerCase():null;attrHandle[name]=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;if(nType===3||nType===8||nType===2){return}if(nType!==1||!jQuery.isXMLDoc(elem)){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){var tabindex=jQuery.find.attr(elem,"tabindex");return tabindex?parseInt(tabindex,10):rfocusable.test(elem.nodeName)||rclickable.test(elem.nodeName)&&elem.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}});if(!support.optSelected){jQuery.propHooks.selected={get:function(elem){var parent=elem.parentNode;if(parent&&parent.parentNode){parent.parentNode.selectedIndex}return null}}}jQuery.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){jQuery.propFix[this.toLowerCase()]=this});var rclass=/[\t\r\n\f]/g;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(rnotwhite)||[];while(elem=this[i++]){curValue=getClass(elem);cur=elem.nodeType===1&&(" "+curValue+" ").replace(rclass," ");if(cur){j=0;while(clazz=classes[j++]){if(cur.indexOf(" "+clazz+" ")<0){cur+=clazz+" "}}finalValue=jQuery.trim(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(rnotwhite)||[];while(elem=this[i++]){curValue=getClass(elem);cur=elem.nodeType===1&&(" "+curValue+" ").replace(rclass," ");if(cur){j=0;while(clazz=classes[j++]){while(cur.indexOf(" "+clazz+" ")>-1){cur=cur.replace(" "+clazz+" "," ")}}finalValue=jQuery.trim(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"){i=0;self=jQuery(this);classNames=value.match(rnotwhite)||[];while(className=classNames[i++]){if(self.hasClass(className)){self.removeClass(className)}else{self.addClass(className)}}}else if(value===undefined||type==="boolean"){className=getClass(this);if(className){dataPriv.set(this,"__className__",className)}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&&(" "+getClass(elem)+" ").replace(rclass," ").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;return typeof ret==="string"?ret.replace(rreturn,""):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}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.type]||jQuery.valHooks[this.nodeName.toLowerCase()];if(!hooks||!("set"in hooks)||hooks.set(this,val,"value")===undefined){this.value=val}})}});jQuery.extend({valHooks:{option:{get:function(elem){return jQuery.trim(elem.value)}},select:{get:function(elem){var value,option,options=elem.options,index=elem.selectedIndex,one=elem.type==="select-one",values=one?null:[],max=one?index+1:options.length,i=index<0?max:one?index:0;for(;i<max;i++){option=options[i];if((option.selected||i===index)&&!option.disabled&&(!option.parentNode.disabled||!jQuery.nodeName(option.parentNode,"optgroup"))){value=jQuery(option).val();if(one){return value}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];if(option.selected=jQuery.inArray(jQuery.valHooks.option.get(option),values)>-1){optionSet=true}}if(!optionSet){elem.selectedIndex=-1}return values}}}});jQuery.each(["radio","checkbox"],function(){jQuery.valHooks[this]={set:function(elem,value){if(jQuery.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}}});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;if(elem.nodeType===3||elem.nodeType===8){return}if(rfocusMorph.test(type+jQuery.event.triggered)){return}if(type.indexOf(".")>-1){namespaces=type.split(".");type=namespaces.shift();namespaces.sort()}ontype=type.indexOf(":")<0&&"on"+type;event=event[jQuery.expando]?event:new jQuery.Event(type,typeof event==="object"&&event);event.isTrigger=onlyHandlers?2:3;event.namespace=namespaces.join(".");event.rnamespace=event.namespace?new RegExp("(^|\\.)"+namespaces.join("\\.(?:.*\\.|)")+"(\\.|$)"):null;event.result=undefined;if(!event.target){event.target=elem}data=data==null?[event]:jQuery.makeArray(data,[event]);special=jQuery.event.special[type]||{};if(!onlyHandlers&&special.trigger&&special.trigger.apply(elem,data)===false){return}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}if(tmp===(elem.ownerDocument||document)){eventPath.push(tmp.defaultView||tmp.parentWindow||window)}}i=0;while((cur=eventPath[i++])&&!event.isPropagationStopped()){event.type=i>1?bubbleType:special.bindType||type;handle=(dataPriv.get(cur,"events")||{})[event.type]&&dataPriv.get(cur,"handle");if(handle){handle.apply(cur,data)}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(!onlyHandlers&&!event.isDefaultPrevented()){if((!special._default||special._default.apply(eventPath.pop(),data)===false)&&acceptData(elem)){if(ontype&&jQuery.isFunction(elem[type])&&!jQuery.isWindow(elem)){tmp=elem[ontype];if(tmp){elem[ontype]=null}jQuery.event.triggered=type;elem[type]();jQuery.event.triggered=undefined;if(tmp){elem[ontype]=tmp}}}}return event.result},simulate:function(type,elem,event){var e=jQuery.extend(new jQuery.Event,event,{type:type,isSimulated:true});jQuery.event.trigger(e,null,elem);if(e.isDefaultPrevented()){event.preventDefault()}}});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){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;if(!support.focusin){jQuery.each({focus:"focusin",blur:"focusout"},function(orig,fix){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=/\?/;jQuery.parseJSON=JSON.parse;jQuery.parseXML=function(data){var xml;if(!data||typeof data!=="string"){return null}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 r20=/%20/g,rhash=/#.*$/,rts=/([?&])_=[^&]*/,rheaders=/^(.*?):[ \t]*([^\r\n]*)$/gm,rlocalProtocol=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,rnoContent=/^(?:GET|HEAD)$/,rprotocol=/^\/\//,prefilters={},transports={},allTypes="*/".concat("*"),originAnchor=document.createElement("a");originAnchor.href=location.href;function addToPrefiltersOrTransports(structure){return function(dataTypeExpression,func){if(typeof dataTypeExpression!=="string"){func=dataTypeExpression;dataTypeExpression="*"}var dataType,i=0,dataTypes=dataTypeExpression.toLowerCase().match(rnotwhite)||[];if(jQuery.isFunction(func)){while(dataType=dataTypes[i++]){if(dataType[0]==="+"){dataType=dataType.slice(1)||"*";(structure[dataType]=structure[dataType]||[]).unshift(func)}else{(structure[dataType]=structure[dataType]||[]).push(func)}}}}}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("*")}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}function ajaxHandleResponses(s,jqXHR,responses){var ct,type,finalDataType,firstDataType,contents=s.contents,dataTypes=s.dataTypes;while(dataTypes[0]==="*"){dataTypes.shift();if(ct===undefined){ct=s.mimeType||jqXHR.getResponseHeader("Content-Type")}}if(ct){for(type in contents){if(contents[type]&&contents[type].test(ct)){dataTypes.unshift(type);break}}}if(dataTypes[0]in responses){finalDataType=dataTypes[0]}else{for(type in responses){if(!dataTypes[0]||s.converters[type+" "+dataTypes[0]]){finalDataType=type;break}if(!firstDataType){firstDataType=type}}finalDataType=finalDataType||firstDataType}if(finalDataType){if(finalDataType!==dataTypes[0]){dataTypes.unshift(finalDataType)}return responses[finalDataType]}}function ajaxConvert(s,response,jqXHR,isSuccess){var conv2,current,conv,tmp,prev,converters={},dataTypes=s.dataTypes.slice();if(dataTypes[1]){for(conv in s.converters){converters[conv.toLowerCase()]=s.converters[conv]}}current=dataTypes.shift();while(current){if(s.responseFields[current]){jqXHR[s.responseFields[current]]=response}if(!prev&&isSuccess&&s.dataFilter){response=s.dataFilter(response,s.dataType)}prev=current;current=dataTypes.shift();if(current){if(current==="*"){current=prev}else if(prev!=="*"&&prev!==current){conv=converters[prev+" "+current]||converters["* "+current];if(!conv){for(conv2 in converters){tmp=conv2.split(" ");if(tmp[1]===current){conv=converters[prev+" "+tmp[0]]||converters["* "+tmp[0]];if(conv){if(conv===true){conv=converters[conv2]}else if(converters[conv2]!==true){current=tmp[0];dataTypes.unshift(tmp[1])}break}}}}if(conv!==true){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({active:0,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",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"},converters:{"* text":String,"text html":true,"text json":jQuery.parseJSON,"text xml":jQuery.parseXML},flatOptions:{url:true,context:true}},ajaxSetup:function(target,settings){return settings?ajaxExtend(ajaxExtend(target,jQuery.ajaxSettings),settings):ajaxExtend(jQuery.ajaxSettings,target)},ajaxPrefilter:addToPrefiltersOrTransports(prefilters),ajaxTransport:addToPrefiltersOrTransports(transports),ajax:function(url,options){if(typeof url==="object"){options=url;url=undefined}options=options||{};var transport,cacheURL,responseHeadersString,responseHeaders,timeoutTimer,urlAnchor,completed,fireGlobals,i,uncached,s=jQuery.ajaxSetup({},options),callbackContext=s.context||s,globalEventContext=s.context&&(callbackContext.nodeType||callbackContext.jquery)?jQuery(callbackContext):jQuery.event,deferred=jQuery.Deferred(),completeDeferred=jQuery.Callbacks("once memory"),statusCode=s.statusCode||{},requestHeaders={},requestHeadersNames={},strAbort="canceled",jqXHR={readyState:0,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},getAllResponseHeaders:function(){return completed?responseHeadersString:null},setRequestHeader:function(name,value){if(completed==null){name=requestHeadersNames[name.toLowerCase()]=requestHeadersNames[name.toLowerCase()]||name;requestHeaders[name]=value}return this},overrideMimeType:function(type){if(completed==null){s.mimeType=type}return this},statusCode:function(map){var code;if(map){if(completed){jqXHR.always(map[jqXHR.status])}else{for(code in map){statusCode[code]=[statusCode[code],map[code]]}}}return this},abort:function(statusText){var finalText=statusText||strAbort;if(transport){transport.abort(finalText)}done(0,finalText);return this}};deferred.promise(jqXHR);s.url=((url||s.url||location.href)+"").replace(rprotocol,location.protocol+"//");s.type=options.method||options.type||s.method||s.type;s.dataTypes=jQuery.trim(s.dataType||"*").toLowerCase().match(rnotwhite)||[""];if(s.crossDomain==null){urlAnchor=document.createElement("a");try{urlAnchor.href=s.url;urlAnchor.href=urlAnchor.href;s.crossDomain=originAnchor.protocol+"//"+originAnchor.host!==urlAnchor.protocol+"//"+urlAnchor.host}catch(e){s.crossDomain=true}}if(s.data&&s.processData&&typeof s.data!=="string"){s.data=jQuery.param(s.data,s.traditional)}inspectPrefiltersOrTransports(prefilters,s,options,jqXHR);if(completed){return jqXHR}fireGlobals=jQuery.event&&s.global;if(fireGlobals&&jQuery.active++===0){jQuery.event.trigger("ajaxStart")}s.type=s.type.toUpperCase();s.hasContent=!rnoContent.test(s.type);cacheURL=s.url.replace(rhash,"");if(!s.hasContent){uncached=s.url.slice(cacheURL.length);if(s.data){cacheURL+=(rquery.test(cacheURL)?"&":"?")+s.data;delete s.data}if(s.cache===false){cacheURL=cacheURL.replace(rts,"");uncached=(rquery.test(cacheURL)?"&":"?")+"_="+nonce++ +uncached}s.url=cacheURL+uncached}else if(s.data&&s.processData&&(s.contentType||"").indexOf("application/x-www-form-urlencoded")===0){s.data=s.data.replace(r20,"+")}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])}}if(s.data&&s.hasContent&&s.contentType!==false||options.contentType){jqXHR.setRequestHeader("Content-Type",s.contentType)}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["*"]);for(i in s.headers){jqXHR.setRequestHeader(i,s.headers[i])}if(s.beforeSend&&(s.beforeSend.call(callbackContext,jqXHR,s)===false||completed)){return jqXHR.abort()}strAbort="abort";completeDeferred.add(s.complete);jqXHR.done(s.success);jqXHR.fail(s.error);transport=inspectPrefiltersOrTransports(transports,s,options,jqXHR);if(!transport){done(-1,"No Transport")}else{jqXHR.readyState=1;if(fireGlobals){globalEventContext.trigger("ajaxSend",[jqXHR,s])}if(completed){return jqXHR}if(s.async&&s.timeout>0){timeoutTimer=window.setTimeout(function(){jqXHR.abort("timeout")},s.timeout)}try{completed=false;transport.send(requestHeaders,done)}catch(e){if(completed){throw e}done(-1,e)}}function done(status,nativeStatusText,responses,headers){var isSuccess,success,error,response,modified,statusText=nativeStatusText;if(completed){return}completed=true;if(timeoutTimer){window.clearTimeout(timeoutTimer)}transport=undefined;responseHeadersString=headers||"";jqXHR.readyState=status>0?4:0;isSuccess=status>=200&&status<300||status===304;if(responses){response=ajaxHandleResponses(s,jqXHR,responses)}response=ajaxConvert(s,response,jqXHR,isSuccess);if(isSuccess){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(status===204||s.type==="HEAD"){statusText="nocontent"}else if(status===304){statusText="notmodified"}else{statusText=response.state;success=response.data;error=response.error;isSuccess=!error}}else{error=statusText;if(status||!statusText){statusText="error";if(status<0){status=0}}}jqXHR.status=status;jqXHR.statusText=(nativeStatusText||statusText)+"";if(isSuccess){deferred.resolveWith(callbackContext,[success,statusText,jqXHR])}else{deferred.rejectWith(callbackContext,[jqXHR,statusText,error])}jqXHR.statusCode(statusCode);statusCode=undefined;if(fireGlobals){globalEventContext.trigger(isSuccess?"ajaxSuccess":"ajaxError",[jqXHR,s,isSuccess?success:error])}completeDeferred.fireWith(callbackContext,[jqXHR,statusText]);if(fireGlobals){globalEventContext.trigger("ajaxComplete",[jqXHR,s]);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){if(jQuery.isFunction(data)){type=type||callback;callback=data;data=undefined}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,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])}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.filters.hidden=function(elem){return!jQuery.expr.filters.visible(elem)};jQuery.expr.filters.visible=function(elem){return!!(elem.offsetWidth||elem.offsetHeight||elem.getClientRects().length)};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(jQuery.isArray(obj)){jQuery.each(obj,function(i,v){if(traditional||rbracket.test(prefix)){add(prefix,v)}else{buildParams(prefix+"["+(typeof v==="object"&&v!=null?i:"")+"]",v,traditional,add)}})}else if(!traditional&&jQuery.type(obj)==="object"){for(name in obj){buildParams(prefix+"["+name+"]",obj[name],traditional,add)}}else{add(prefix,obj)}}jQuery.param=function(a,traditional){var prefix,s=[],add=function(key,value){value=jQuery.isFunction(value)?value():value==null?"":value;s[s.length]=encodeURIComponent(key)+"="+encodeURIComponent(value)};if(traditional===undefined){traditional=jQuery.ajaxSettings&&jQuery.ajaxSettings.traditional}if(jQuery.isArray(a)||a.jquery&&!jQuery.isPlainObject(a)){jQuery.each(a,function(){add(this.name,this.value)})}else{for(prefix in a){buildParams(prefix,a[prefix],traditional,add)}}return s.join("&")};jQuery.fn.extend({serialize:function(){return jQuery.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var elements=jQuery.prop(this,"elements");return elements?jQuery.makeArray(elements):this}).filter(function(){var type=this.type;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();return val==null?null:jQuery.isArray(val)?jQuery.map(val,function(val){return{name:elem.name,value:val.replace(rCRLF,"\r\n")}}):{name:elem.name,value:val.replace(rCRLF,"\r\n")}}).get()}});jQuery.ajaxSettings.xhr=function(){try{return new window.XMLHttpRequest}catch(e){}};var xhrSuccessStatus={0:200,1223:204},xhrSupported=jQuery.ajaxSettings.xhr();support.cors=!!xhrSupported&&"withCredentials"in xhrSupported;support.ajax=xhrSupported=!!xhrSupported;jQuery.ajaxTransport(function(options){var callback,errorCallback;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);if(options.xhrFields){for(i in options.xhrFields){xhr[i]=options.xhrFields[i]}}if(options.mimeType&&xhr.overrideMimeType){xhr.overrideMimeType(options.mimeType)}if(!options.crossDomain&&!headers["X-Requested-With"]){headers["X-Requested-With"]="XMLHttpRequest"}for(i in headers){xhr.setRequestHeader(i,headers[i])}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"){if(typeof xhr.status!=="number"){complete(0,"error")}else{complete(xhr.status,xhr.statusText)}}else{complete(xhrSuccessStatus[xhr.status]||xhr.status,xhr.statusText,(xhr.responseType||"text")!=="text"||typeof xhr.responseText!=="string"?{binary:xhr.response}:{text:xhr.responseText},xhr.getAllResponseHeaders())}}}};xhr.onload=callback();errorCallback=xhr.onerror=callback("error");if(xhr.onabort!==undefined){xhr.onabort=errorCallback}else{xhr.onreadystatechange=function(){if(xhr.readyState===4){window.setTimeout(function(){if(callback){errorCallback()}})}}}callback=callback("abort");try{xhr.send(options.hasContent&&options.data||null)}catch(e){if(callback){throw e}}},abort:function(){if(callback){callback()}}}}});jQuery.ajaxPrefilter(function(s){if(s.crossDomain){s.contents.script=false}});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}}});jQuery.ajaxPrefilter("script",function(s){if(s.cache===undefined){s.cache=false}if(s.crossDomain){s.type="GET"}});jQuery.ajaxTransport("script",function(s){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)}});document.head.appendChild(script[0])},abort:function(){if(callback){callback()}}}}});var oldCallbacks=[],rjsonp=/(=)\?(?=&|$)|\?\?/;jQuery.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var callback=oldCallbacks.pop()||jQuery.expando+"_"+nonce++;this[callback]=true;return callback}});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");if(jsonProp||s.dataTypes[0]==="jsonp"){callbackName=s.jsonpCallback=jQuery.isFunction(s.jsonpCallback)?s.jsonpCallback():s.jsonpCallback;if(jsonProp){s[jsonProp]=s[jsonProp].replace(rjsonp,"$1"+callbackName)}else if(s.jsonp!==false){s.url+=(rquery.test(s.url)?"&":"?")+s.jsonp+"="+callbackName}s.converters["script json"]=function(){if(!responseContainer){jQuery.error(callbackName+" was not called")}return responseContainer[0]};s.dataTypes[0]="json";overwritten=window[callbackName];window[callbackName]=function(){responseContainer=arguments};jqXHR.always(function(){if(overwritten===undefined){jQuery(window).removeProp(callbackName)}else{window[callbackName]=overwritten}if(s[callbackName]){s.jsonpCallback=originalSettings.jsonpCallback;oldCallbacks.push(callbackName)}if(responseContainer&&jQuery.isFunction(overwritten)){overwritten(responseContainer[0])}responseContainer=overwritten=undefined});return"script"}});support.createHTMLDocument=function(){var body=document.implementation.createHTMLDocument("").body;body.innerHTML="<form></form><form></form>";return body.childNodes.length===2}();jQuery.parseHTML=function(data,context,keepScripts){if(typeof data!=="string"){return[]}if(typeof context==="boolean"){keepScripts=context;context=false}context=context||(support.createHTMLDocument?document.implementation.createHTMLDocument(""):document);var parsed=rsingleTag.exec(data),scripts=!keepScripts&&[];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.fn.load=function(url,params,callback){var selector,type,response,self=this,off=url.indexOf(" ");if(off>-1){selector=jQuery.trim(url.slice(off));url=url.slice(0,off)}if(jQuery.isFunction(params)){callback=params;params=undefined}else if(params&&typeof params==="object"){type="POST"}if(self.length>0){jQuery.ajax({url:url,type:type||"GET",dataType:"html",data:params}).done(function(responseText){response=arguments;self.html(selector?jQuery("<div>").append(jQuery.parseHTML(responseText)).find(selector):responseText)}).always(callback&&function(jqXHR,status){self.each(function(){callback.apply(self,response||[jqXHR.responseText,status,jqXHR])})})}return this};jQuery.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(i,type){jQuery.fn[type]=function(fn){return this.on(type,fn)}});jQuery.expr.filters.animated=function(elem){return jQuery.grep(jQuery.timers,function(fn){return elem===fn.elem}).length};function getWindow(elem){return jQuery.isWindow(elem)?elem:elem.nodeType===9&&elem.defaultView}jQuery.offset={setOffset:function(elem,options,i){var curPosition,curLeft,curCSSTop,curTop,curOffset,curCSSLeft,calculatePosition,position=jQuery.css(elem,"position"),curElem=jQuery(elem),props={};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;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,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){if(arguments.length){return options===undefined?this:this.each(function(i){jQuery.offset.setOffset(this,options,i)})}var docElem,win,rect,doc,elem=this[0];if(!elem){return}if(!elem.getClientRects().length){return{top:0,left:0}}rect=elem.getBoundingClientRect();if(rect.width||rect.height){doc=elem.ownerDocument;win=getWindow(doc);docElem=doc.documentElement;return{top:rect.top+win.pageYOffset-docElem.clientTop,left:rect.left+win.pageXOffset-docElem.clientLeft}}return rect},position:function(){if(!this[0]){return}var offsetParent,offset,elem=this[0],parentOffset={top:0,left:0};if(jQuery.css(elem,"position")==="fixed"){offset=elem.getBoundingClientRect()}else{offsetParent=this.offsetParent();offset=this.offset();if(!jQuery.nodeName(offsetParent[0],"html")){parentOffset=offsetParent.offset()}parentOffset.top+=jQuery.css(offsetParent[0],"borderTopWidth",true)-offsetParent.scrollTop();parentOffset.left+=jQuery.css(offsetParent[0],"borderLeftWidth",true)-offsetParent.scrollLeft()}return{top:offset.top-parentOffset.top-jQuery.css(elem,"marginTop",true),left:offset.left-parentOffset.left-jQuery.css(elem,"marginLeft",true)}},offsetParent:function(){return this.map(function(){var offsetParent=this.offsetParent;while(offsetParent&&jQuery.css(offsetParent,"position")==="static"){offsetParent=offsetParent.offsetParent}return offsetParent||documentElement})}});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){var win=getWindow(elem);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)}});jQuery.each(["top","left"],function(i,prop){jQuery.cssHooks[prop]=addGetHookIf(support.pixelPosition,function(elem,computed){if(computed){computed=curCSS(elem,prop);return rnumnonpx.test(computed)?jQuery(elem).position()[prop]+"px":computed}})});jQuery.each({Height:"height",Width:"width"},function(name,type){jQuery.each({padding:"inner"+name,content:type,"":"outer"+name},function(defaultExtra,funcName){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)){return funcName.indexOf("outer")===0?elem["inner"+name]:elem.document.documentElement["client"+name]}if(elem.nodeType===9){doc=elem.documentElement;return Math.max(elem.body["scroll"+name],doc["scroll"+name],elem.body["offset"+name],doc["offset"+name],doc["client"+name])}return value===undefined?jQuery.css(elem,type,extra):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){return arguments.length===1?this.off(selector,"**"):this.off(types,selector||"**",fn)}});if(typeof define==="function"&&define.amd){define("jquery",[],function(){return jQuery})}var _jQuery=window.jQuery,_$=window.$;jQuery.noConflict=function(deep){if(window.$===jQuery){window.$=_$}if(deep&&window.jQuery===jQuery){window.jQuery=_jQuery}return jQuery};if(!noGlobal){window.jQuery=window.$=jQuery}return jQuery})},{}]},{},[]);require=function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s}({1:[function(require,module,exports){module.exports=function isBuffer(arg){return arg&&typeof arg==="object"&&typeof arg.copy==="function"&&typeof arg.fill==="function"&&typeof arg.readUInt8==="function"}},{}],2:[function(require,module,exports){(function(process,global){var formatRegExp=/%[sdj%]/g;exports.format=function(f){if(!isString(f)){var objects=[];for(var i=0;i<arguments.length;i++){objects.push(inspect(arguments[i]))}return objects.join(" ")}var i=1;var args=arguments;var len=args.length;var str=String(f).replace(formatRegExp,function(x){if(x==="%%")return"%";if(i>=len)return x;switch(x){case"%s":return String(args[i++]);case"%d":return Number(args[i++]);case"%j":try{return JSON.stringify(args[i++])}catch(_){return"[Circular]"}default:return x}});for(var x=args[i];i<len;x=args[++i]){if(isNull(x)||!isObject(x)){str+=" "+x}else{str+=" "+inspect(x)}}return str};exports.deprecate=function(fn,msg){if(isUndefined(global.process)){return function(){return exports.deprecate(fn,msg).apply(this,arguments)}}if(process.noDeprecation===true){return fn}var warned=false;function deprecated(){if(!warned){if(process.throwDeprecation){throw new Error(msg)}else if(process.traceDeprecation){console.trace(msg)}else{console.error(msg)}warned=true}return fn.apply(this,arguments)}return deprecated};var debugs={};var debugEnviron;exports.debuglog=function(set){if(isUndefined(debugEnviron))debugEnviron=process.env.NODE_DEBUG||"";set=set.toUpperCase();if(!debugs[set]){if(new RegExp("\\b"+set+"\\b","i").test(debugEnviron)){var pid=process.pid;debugs[set]=function(){var msg=exports.format.apply(exports,arguments);console.error("%s %d: %s",set,pid,msg)}}else{debugs[set]=function(){}}}return debugs[set]};function inspect(obj,opts){var ctx={seen:[],stylize:stylizeNoColor};if(arguments.length>=3)ctx.depth=arguments[2];if(arguments.length>=4)ctx.colors=arguments[3];if(isBoolean(opts)){ctx.showHidden=opts}else if(opts){exports._extend(ctx,opts)}if(isUndefined(ctx.showHidden))ctx.showHidden=false;if(isUndefined(ctx.depth))ctx.depth=2;if(isUndefined(ctx.colors))ctx.colors=false;if(isUndefined(ctx.customInspect))ctx.customInspect=true;if(ctx.colors)ctx.stylize=stylizeWithColor;return formatValue(ctx,obj,ctx.depth)}exports.inspect=inspect;inspect.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]};inspect.styles={special:"cyan",number:"yellow","boolean":"yellow",undefined:"grey","null":"bold",string:"green",date:"magenta",regexp:"red"};function stylizeWithColor(str,styleType){var style=inspect.styles[styleType];if(style){return"["+inspect.colors[style][0]+"m"+str+"["+inspect.colors[style][1]+"m"}else{return str}}function stylizeNoColor(str,styleType){return str}function arrayToHash(array){var hash={};array.forEach(function(val,idx){hash[val]=true});return hash}function formatValue(ctx,value,recurseTimes){if(ctx.customInspect&&value&&isFunction(value.inspect)&&value.inspect!==exports.inspect&&!(value.constructor&&value.constructor.prototype===value)){var ret=value.inspect(recurseTimes,ctx);if(!isString(ret)){ret=formatValue(ctx,ret,recurseTimes)}return ret}var primitive=formatPrimitive(ctx,value);if(primitive){return primitive}var keys=Object.keys(value);var visibleKeys=arrayToHash(keys);if(ctx.showHidden){keys=Object.getOwnPropertyNames(value)}if(isError(value)&&(keys.indexOf("message")>=0||keys.indexOf("description")>=0)){return formatError(value)}if(keys.length===0){if(isFunction(value)){var name=value.name?": "+value.name:"";return ctx.stylize("[Function"+name+"]","special")}if(isRegExp(value)){return ctx.stylize(RegExp.prototype.toString.call(value),"regexp")}if(isDate(value)){return ctx.stylize(Date.prototype.toString.call(value),"date")}if(isError(value)){return formatError(value)}}var base="",array=false,braces=["{","}"];if(isArray(value)){array=true;braces=["[","]"]}if(isFunction(value)){var n=value.name?": "+value.name:"";base=" [Function"+n+"]"}if(isRegExp(value)){base=" "+RegExp.prototype.toString.call(value)}if(isDate(value)){base=" "+Date.prototype.toUTCString.call(value)}if(isError(value)){
base=" "+formatError(value)}if(keys.length===0&&(!array||value.length==0)){return braces[0]+base+braces[1]}if(recurseTimes<0){if(isRegExp(value)){return ctx.stylize(RegExp.prototype.toString.call(value),"regexp")}else{return ctx.stylize("[Object]","special")}}ctx.seen.push(value);var output;if(array){output=formatArray(ctx,value,recurseTimes,visibleKeys,keys)}else{output=keys.map(function(key){return formatProperty(ctx,value,recurseTimes,visibleKeys,key,array)})}ctx.seen.pop();return reduceToSingleString(output,base,braces)}function formatPrimitive(ctx,value){if(isUndefined(value))return ctx.stylize("undefined","undefined");if(isString(value)){var simple="'"+JSON.stringify(value).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return ctx.stylize(simple,"string")}if(isNumber(value))return ctx.stylize(""+value,"number");if(isBoolean(value))return ctx.stylize(""+value,"boolean");if(isNull(value))return ctx.stylize("null","null")}function formatError(value){return"["+Error.prototype.toString.call(value)+"]"}function formatArray(ctx,value,recurseTimes,visibleKeys,keys){var output=[];for(var i=0,l=value.length;i<l;++i){if(hasOwnProperty(value,String(i))){output.push(formatProperty(ctx,value,recurseTimes,visibleKeys,String(i),true))}else{output.push("")}}keys.forEach(function(key){if(!key.match(/^\d+$/)){output.push(formatProperty(ctx,value,recurseTimes,visibleKeys,key,true))}});return output}function formatProperty(ctx,value,recurseTimes,visibleKeys,key,array){var name,str,desc;desc=Object.getOwnPropertyDescriptor(value,key)||{value:value[key]};if(desc.get){if(desc.set){str=ctx.stylize("[Getter/Setter]","special")}else{str=ctx.stylize("[Getter]","special")}}else{if(desc.set){str=ctx.stylize("[Setter]","special")}}if(!hasOwnProperty(visibleKeys,key)){name="["+key+"]"}if(!str){if(ctx.seen.indexOf(desc.value)<0){if(isNull(recurseTimes)){str=formatValue(ctx,desc.value,null)}else{str=formatValue(ctx,desc.value,recurseTimes-1)}if(str.indexOf("\n")>-1){if(array){str=str.split("\n").map(function(line){return" "+line}).join("\n").substr(2)}else{str="\n"+str.split("\n").map(function(line){return" "+line}).join("\n")}}}else{str=ctx.stylize("[Circular]","special")}}if(isUndefined(name)){if(array&&key.match(/^\d+$/)){return str}name=JSON.stringify(""+key);if(name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)){name=name.substr(1,name.length-2);name=ctx.stylize(name,"name")}else{name=name.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'");name=ctx.stylize(name,"string")}}return name+": "+str}function reduceToSingleString(output,base,braces){var numLinesEst=0;var length=output.reduce(function(prev,cur){numLinesEst++;if(cur.indexOf("\n")>=0)numLinesEst++;return prev+cur.replace(/\u001b\[\d\d?m/g,"").length+1},0);if(length>60){return braces[0]+(base===""?"":base+"\n ")+" "+output.join(",\n ")+" "+braces[1]}return braces[0]+base+" "+output.join(", ")+" "+braces[1]}function isArray(ar){return Array.isArray(ar)}exports.isArray=isArray;function isBoolean(arg){return typeof arg==="boolean"}exports.isBoolean=isBoolean;function isNull(arg){return arg===null}exports.isNull=isNull;function isNullOrUndefined(arg){return arg==null}exports.isNullOrUndefined=isNullOrUndefined;function isNumber(arg){return typeof arg==="number"}exports.isNumber=isNumber;function isString(arg){return typeof arg==="string"}exports.isString=isString;function isSymbol(arg){return typeof arg==="symbol"}exports.isSymbol=isSymbol;function isUndefined(arg){return arg===void 0}exports.isUndefined=isUndefined;function isRegExp(re){return isObject(re)&&objectToString(re)==="[object RegExp]"}exports.isRegExp=isRegExp;function isObject(arg){return typeof arg==="object"&&arg!==null}exports.isObject=isObject;function isDate(d){return isObject(d)&&objectToString(d)==="[object Date]"}exports.isDate=isDate;function isError(e){return isObject(e)&&(objectToString(e)==="[object Error]"||e instanceof Error)}exports.isError=isError;function isFunction(arg){return typeof arg==="function"}exports.isFunction=isFunction;function isPrimitive(arg){return arg===null||typeof arg==="boolean"||typeof arg==="number"||typeof arg==="string"||typeof arg==="symbol"||typeof arg==="undefined"}exports.isPrimitive=isPrimitive;exports.isBuffer=require("./support/isBuffer");function objectToString(o){return Object.prototype.toString.call(o)}function pad(n){return n<10?"0"+n.toString(10):n.toString(10)}var months=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function timestamp(){var d=new Date;var time=[pad(d.getHours()),pad(d.getMinutes()),pad(d.getSeconds())].join(":");return[d.getDate(),months[d.getMonth()],time].join(" ")}exports.log=function(){console.log("%s - %s",timestamp(),exports.format.apply(exports,arguments))};exports.inherits=require("inherits");exports._extend=function(origin,add){if(!add||!isObject(add))return origin;var keys=Object.keys(add);var i=keys.length;while(i--){origin[keys[i]]=add[keys[i]]}return origin};function hasOwnProperty(obj,prop){return Object.prototype.hasOwnProperty.call(obj,prop)}}).call(this,require("_process"),typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"./support/isBuffer":1,_process:4,inherits:3}],3:[function(require,module,exports){if(typeof Object.create==="function"){module.exports=function inherits(ctor,superCtor){ctor.super_=superCtor;ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:false,writable:true,configurable:true}})}}else{module.exports=function inherits(ctor,superCtor){ctor.super_=superCtor;var TempCtor=function(){};TempCtor.prototype=superCtor.prototype;ctor.prototype=new TempCtor;ctor.prototype.constructor=ctor}}},{}],4:[function(require,module,exports){var process=module.exports={};process.nextTick=function(){var canSetImmediate=typeof window!=="undefined"&&window.setImmediate;var canPost=typeof window!=="undefined"&&window.postMessage&&window.addEventListener;if(canSetImmediate){return function(f){return window.setImmediate(f)}}if(canPost){var queue=[];window.addEventListener("message",function(ev){var source=ev.source;if((source===window||source===null)&&ev.data==="process-tick"){ev.stopPropagation();if(queue.length>0){var fn=queue.shift();fn()}}},true);return function nextTick(fn){queue.push(fn);window.postMessage("process-tick","*")}}return function nextTick(fn){setTimeout(fn,0)}}();process.title="browser";process.browser=true;process.env={};process.argv=[];function noop(){}process.on=noop;process.addListener=noop;process.once=noop;process.off=noop;process.removeListener=noop;process.removeAllListeners=noop;process.emit=noop;process.binding=function(name){throw new Error("process.binding is not supported")};process.cwd=function(){return"/"};process.chdir=function(dir){throw new Error("process.chdir is not supported")}},{}],assert:[function(require,module,exports){var util=require("util/");var pSlice=Array.prototype.slice;var hasOwn=Object.prototype.hasOwnProperty;var assert=module.exports=ok;assert.AssertionError=function AssertionError(options){this.name="AssertionError";this.actual=options.actual;this.expected=options.expected;this.operator=options.operator;if(options.message){this.message=options.message;this.generatedMessage=false}else{this.message=getMessage(this);this.generatedMessage=true}var stackStartFunction=options.stackStartFunction||fail;if(Error.captureStackTrace){Error.captureStackTrace(this,stackStartFunction)}else{var err=new Error;if(err.stack){var out=err.stack;var fn_name=stackStartFunction.name;var idx=out.indexOf("\n"+fn_name);if(idx>=0){var next_line=out.indexOf("\n",idx+1);out=out.substring(next_line+1)}this.stack=out}}};util.inherits(assert.AssertionError,Error);function replacer(key,value){if(util.isUndefined(value)){return""+value}if(util.isNumber(value)&&(isNaN(value)||!isFinite(value))){return value.toString()}if(util.isFunction(value)||util.isRegExp(value)){return value.toString()}return value}function truncate(s,n){if(util.isString(s)){return s.length<n?s:s.slice(0,n)}else{return s}}function getMessage(self){return truncate(JSON.stringify(self.actual,replacer),128)+" "+self.operator+" "+truncate(JSON.stringify(self.expected,replacer),128)}function fail(actual,expected,message,operator,stackStartFunction){throw new assert.AssertionError({message:message,actual:actual,expected:expected,operator:operator,stackStartFunction:stackStartFunction})}assert.fail=fail;function ok(value,message){if(!value)fail(value,true,message,"==",assert.ok)}assert.ok=ok;assert.equal=function equal(actual,expected,message){if(actual!=expected)fail(actual,expected,message,"==",assert.equal)};assert.notEqual=function notEqual(actual,expected,message){if(actual==expected){fail(actual,expected,message,"!=",assert.notEqual)}};assert.deepEqual=function deepEqual(actual,expected,message){if(!_deepEqual(actual,expected)){fail(actual,expected,message,"deepEqual",assert.deepEqual)}};function _deepEqual(actual,expected){if(actual===expected){return true}else if(util.isBuffer(actual)&&util.isBuffer(expected)){if(actual.length!=expected.length)return false;for(var i=0;i<actual.length;i++){if(actual[i]!==expected[i])return false}return true}else if(util.isDate(actual)&&util.isDate(expected)){return actual.getTime()===expected.getTime()}else if(util.isRegExp(actual)&&util.isRegExp(expected)){return actual.source===expected.source&&actual.global===expected.global&&actual.multiline===expected.multiline&&actual.lastIndex===expected.lastIndex&&actual.ignoreCase===expected.ignoreCase}else if(!util.isObject(actual)&&!util.isObject(expected)){return actual==expected}else{return objEquiv(actual,expected)}}function isArguments(object){return Object.prototype.toString.call(object)=="[object Arguments]"}function objEquiv(a,b){if(util.isNullOrUndefined(a)||util.isNullOrUndefined(b))return false;if(a.prototype!==b.prototype)return false;if(isArguments(a)){if(!isArguments(b)){return false}a=pSlice.call(a);b=pSlice.call(b);return _deepEqual(a,b)}try{var ka=objectKeys(a),kb=objectKeys(b),key,i}catch(e){return false}if(ka.length!=kb.length)return false;ka.sort();kb.sort();for(i=ka.length-1;i>=0;i--){if(ka[i]!=kb[i])return false}for(i=ka.length-1;i>=0;i--){key=ka[i];if(!_deepEqual(a[key],b[key]))return false}return true}assert.notDeepEqual=function notDeepEqual(actual,expected,message){if(_deepEqual(actual,expected)){fail(actual,expected,message,"notDeepEqual",assert.notDeepEqual)}};assert.strictEqual=function strictEqual(actual,expected,message){if(actual!==expected){fail(actual,expected,message,"===",assert.strictEqual)}};assert.notStrictEqual=function notStrictEqual(actual,expected,message){if(actual===expected){fail(actual,expected,message,"!==",assert.notStrictEqual)}};function expectedException(actual,expected){if(!actual||!expected){return false}if(Object.prototype.toString.call(expected)=="[object RegExp]"){return expected.test(actual)}else if(actual instanceof expected){return true}else if(expected.call({},actual)===true){return true}return false}function _throws(shouldThrow,block,expected,message){var actual;if(util.isString(expected)){message=expected;expected=null}try{block()}catch(e){actual=e}message=(expected&&expected.name?" ("+expected.name+").":".")+(message?" "+message:".");if(shouldThrow&&!actual){fail(actual,expected,"Missing expected exception"+message)}if(!shouldThrow&&expectedException(actual,expected)){fail(actual,expected,"Got unwanted exception"+message)}if(shouldThrow&&actual&&expected&&!expectedException(actual,expected)||!shouldThrow&&actual){throw actual}}assert.throws=function(block,error,message){_throws.apply(this,[true].concat(pSlice.call(arguments)))};assert.doesNotThrow=function(block,message){_throws.apply(this,[false].concat(pSlice.call(arguments)))};assert.ifError=function(err){if(err){throw err}};var objectKeys=Object.keys||function(obj){var keys=[];for(var key in obj){if(hasOwn.call(obj,key))keys.push(key)}return keys}},{"util/":2}]},{},[]);var promisesAplusTests=require("promises-aplus-tests");var assert=require("assert");var $=require("jquery");var adapter={deferred:$.Deferred};console.log(adapter,$,assert,promisesAplusTests);promisesAplusTests(adapter,function(err){console.log(err)})},0);
{
"name": "requirebin-sketch",
"version": "1.0.0",
"dependencies": {
"promises-aplus-tests": "2.1.1",
"jquery": "3.0.0-beta1"
}
}
<!-- contents of this file will be placed inside the <body> -->
<!-- contents of this file will be placed inside the <head> -->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment