(function(){"use strict";function bt(n){return typeof n=="function"||typeof n=="object"&&n!==null}function b(n){return typeof n=="function"}function kt(n){return typeof n=="object"&&n!==null}function dt(n){k=n}function gt(n){u=n}function ii(){return function(){process.nextTick(h)}}function ri(){return function(){rt(h)}}function ui(){var n=0,i=new et(h),t=document.createTextNode("");return i.observe(t,{characterData:!0}),function(){t.data=n=++n%2}}function fi(){var n=new MessageChannel;return n.port1.onmessage=h,function(){n.port2.postMessage(0)}}function ot(){return function(){setTimeout(h,1)}}function h(){for(var t,i,n=0;n<s;n+=2)t=f[n],i=f[n+1],t(i),f[n]=undefined,f[n+1]=undefined;s=0}function ei(){try{var t=require,n=t("vertx");return rt=n.runOnLoop||n.runOnContext,ri()}catch(i){return ot()}}function c(){}function oi(){return new TypeError("You cannot resolve a promise with itself")}function si(){return new TypeError("A promises callback cannot return that same promise.")}function hi(n){try{return n.then}catch(t){return v.error=t,v}}function ci(n,t,i,r){try{n.call(t,i,r)}catch(u){return u}}function li(t,r,f){u(function(t){var u=!1,e=ci(f,r,function(n){u||(u=!0,r!==n?a(t,n):i(t,n))},function(i){u||(u=!0,n(t,i))},"Settle: "+(t._label||" unknown promise"));!u&&e&&(u=!0,n(t,e))},t)}function ai(t,r){r._state===l?i(t,r._result):r._state===o?n(t,r._result):y(r,undefined,function(n){a(t,n)},function(i){n(t,i)})}function vi(t,r){if(r.constructor===t.constructor)ai(t,r);else{var u=hi(r);u===v?n(t,v.error):u===undefined?i(t,r):b(u)?li(t,r,u):i(t,r)}}function a(t,r){t===r?n(t,oi()):bt(r)?vi(t,r):i(t,r)}function yi(n){n._onerror&&n._onerror(n._result);d(n)}function i(n,t){n._state===e&&(n._result=t,n._state=l,n._subscribers.length!==0&&u(d,n))}function n(n,t){n._state===e&&(n._state=o,n._result=t,u(yi,n))}function y(n,t,i,r){var f=n._subscribers,e=f.length;n._onerror=null;f[e]=t;f[e+l]=i;f[e+o]=r;e===0&&n._state&&u(d,n)}function d(n){var i=n._subscribers,e=n._state,r,u,f,t;if(i.length!==0){for(f=n._result,t=0;t<i.length;t+=3)r=i[t],u=i[t+e],r?ct(e,r,u,f):u(f);n._subscribers.length=0}}function ht(){this.error=null}function pi(n,t){try{return n(t)}catch(i){return p.error=i,p}}function ct(t,r,u,f){var c=b(u),s,v,h,y;if(c){if(s=pi(u,f),s===p?(y=!0,v=s.error,s=null):h=!0,r===s){n(r,si());return}}else s=f,h=!0;r._state!==e||(c&&h?a(r,s):y?n(r,v):t===l?i(r,s):t===o&&n(r,s))}function wi(t,i){try{i(function(n){a(t,n)},function(i){n(t,i)})}catch(r){n(t,r)}}function r(t,r){var u=this;u._instanceConstructor=t;u.promise=new t(c);u._validateInput(r)?(u._input=r,u.length=r.length,u._remaining=r.length,u._init(),u.length===0?i(u.promise,u._result):(u.length=u.length||0,u._enumerate(),u._remaining===0&&i(u.promise,u._result))):n(u.promise,u._validationError())}function bi(n){return new lt(this,n).promise}function ki(t){function o(n){a(i,n)}function s(t){n(i,t)}var u=this,i=new u(c),f,r;if(!it(t))return n(i,new TypeError("You must pass an array to race.")),i;for(f=t.length,r=0;i._state===e&&r<f;r++)y(u.resolve(t[r]),undefined,o,s);return i}function di(n){var i=this,t;return n&&typeof n=="object"&&n.constructor===i?n:(t=new i(c),a(t,n),t)}function gi(t){var r=this,i=new r(c);return n(i,t),i}function nr(){throw new TypeError("You must pass a resolver function as the first argument to the promise constructor");}function tr(){throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.");}function t(n){this._id=wt++;this._state=undefined;this._result=undefined;this._subscribers=[];c!==n&&(b(n)||nr(),this instanceof t||tr(),wi(this,n))}function ir(){var n,t;if(typeof global!="undefined")n=global;else if(typeof self!="undefined")n=self;else try{n=Function("return this")()}catch(i){throw new Error("polyfill failed because global object is unavailable in this environment");}(t=n.Promise,!t||Object.prototype.toString.call(t.resolve())!=="[object Promise]"||t.cast)&&(n.Promise=g)}var tt,f,st,p,lt,at,vt,yt,pt,wt,g,nt,w;tt=Array.isArray?Array.isArray:function(n){return Object.prototype.toString.call(n)==="[object Array]"};var it=tt,s=0,rr={}.toString,rt,k,u=function(n,t){f[s]=n;f[s+1]=t;s+=2;s===2&&(k?k(h):st())};var ut=typeof window!="undefined"?window:undefined,ft=ut||{},et=ft.MutationObserver||ft.WebKitMutationObserver,ni=typeof process!="undefined"&&{}.toString.call(process)==="[object process]",ti=typeof Uint8ClampedArray!="undefined"&&typeof importScripts!="undefined"&&typeof MessageChannel!="undefined";f=new Array(1e3);st=ni?ii():et?ui():ti?fi():ut===undefined&&typeof require=="function"?ei():ot();var e=void 0,l=1,o=2,v=new ht;p=new ht;r.prototype._validateInput=function(n){return it(n)};r.prototype._validationError=function(){return new Error("Array Methods must be provided an Array")};r.prototype._init=function(){this._result=new Array(this.length)};lt=r;r.prototype._enumerate=function(){for(var t=this,i=t.length,r=t.promise,u=t._input,n=0;r._state===e&&n<i;n++)t._eachEntry(u[n],n)};r.prototype._eachEntry=function(n,t){var i=this,r=i._instanceConstructor;kt(n)?n.constructor===r&&n._state!==e?(n._onerror=null,i._settledAt(n._state,t,n._result)):i._willSettleAt(r.resolve(n),t):(i._remaining--,i._result[t]=n)};r.prototype._settledAt=function(t,r,u){var f=this,s=f.promise;s._state===e&&(f._remaining--,t===o?n(s,u):f._result[r]=u);f._remaining===0&&i(s,f._result)};r.prototype._willSettleAt=function(n,t){var i=this;y(n,undefined,function(n){i._settledAt(l,t,n)},function(n){i._settledAt(o,t,n)})};at=bi;vt=ki;yt=di;pt=gi;wt=0;g=t;t.all=at;t.race=vt;t.resolve=yt;t.reject=pt;t._setScheduler=dt;t._setAsap=gt;t._asap=u;t.prototype={constructor:t,then:function(n,t){var f=this,i=f._state,r,e,s;return i===l&&!n||i===o&&!t?this:(r=new this.constructor(c),e=f._result,i?(s=arguments[i-1],u(function(){ct(i,r,s,e)})):y(f,r,n,t),r)},"catch":function(n){return this.then(null,n)}};nt=ir;w={Promise:g,polyfill:nt};typeof define=="function"&&define.amd?define(function(){return w}):typeof module!="undefined"&&module.exports?module.exports=w:typeof this!="undefined"&&(this.ES6Promise=w);nt()}).call(this),function(){"use strict";function u(n){if(typeof n!="string"&&(n=String(n)),/[^a-z0-9\-#$%&'*+.\^_`|~]/i.test(n))throw new TypeError("Invalid character in header field name");return n.toLowerCase()}function e(n){return typeof n!="string"&&(n=String(n)),n}function n(t){this.map={};t instanceof n?t.forEach(function(n,t){this.append(t,n)},this):t&&Object.getOwnPropertyNames(t).forEach(function(n){this.append(n,t[n])},this)}function f(n){if(n.bodyUsed)return Promise.reject(new TypeError("Already read"));n.bodyUsed=!0}function o(n){return new Promise(function(t,i){n.onload=function(){t(n.result)};n.onerror=function(){i(n.error)}})}function l(n){var t=new FileReader;return t.readAsArrayBuffer(n),o(t)}function a(n){var t=new FileReader;return t.readAsText(n),o(t)}function s(){return this.bodyUsed=!1,this._initBody=function(n){if(this._bodyInit=n,typeof n=="string")this._bodyText=n;else if(i.blob&&Blob.prototype.isPrototypeOf(n))this._bodyBlob=n;else if(i.formData&&FormData.prototype.isPrototypeOf(n))this._bodyFormData=n;else if(n){if(!i.arrayBuffer||!ArrayBuffer.prototype.isPrototypeOf(n))throw new Error("unsupported BodyInit type");}else this._bodyText=""},i.blob?(this.blob=function(){var n=f(this);if(n)return n;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyFormData)throw new Error("could not read FormData body as blob");else return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this.blob().then(l)},this.text=function(){var n=f(this);if(n)return n;if(this._bodyBlob)return a(this._bodyBlob);if(this._bodyFormData)throw new Error("could not read FormData body as text");else return Promise.resolve(this._bodyText)}):this.text=function(){var n=f(this);return n?n:Promise.resolve(this._bodyText)},i.formData&&(this.formData=function(){return this.text().then(y)}),this.json=function(){return this.text().then(JSON.parse)},this}function v(n){var t=n.toUpperCase();return h.indexOf(t)>-1?t:n}function r(t,i){i=i||{};var u=i.body;if(r.prototype.isPrototypeOf(t)){if(t.bodyUsed)throw new TypeError("Already read");this.url=t.url;this.credentials=t.credentials;i.headers||(this.headers=new n(t.headers));this.method=t.method;this.mode=t.mode;u||(u=t._bodyInit,t.bodyUsed=!0)}else this.url=t;if(this.credentials=i.credentials||this.credentials||"omit",(i.headers||!this.headers)&&(this.headers=new n(i.headers)),this.method=v(i.method||this.method||"GET"),this.mode=i.mode||this.mode||null,this.referrer=null,(this.method==="GET"||this.method==="HEAD")&&u)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(u)}function y(n){var t=new FormData;return n.trim().split("&").forEach(function(n){if(n){var i=n.split("="),r=i.shift().replace(/\+/g," "),u=i.join("=").replace(/\+/g," ");t.append(decodeURIComponent(r),decodeURIComponent(u))}}),t}function p(t){var i=new n,r=t.getAllResponseHeaders().trim().split("\n");return r.forEach(function(n){var t=n.trim().split(":"),r=t.shift().trim(),u=t.join(":").trim();i.append(r,u)}),i}function t(t,i){i||(i={});this._initBody(t);this.type="default";this.status=i.status;this.ok=this.status>=200&&this.status<300;this.statusText=i.statusText;this.headers=i.headers instanceof n?i.headers:new n(i.headers);this.url=i.url||""}var i,h,c;self.fetch||(n.prototype.append=function(n,t){n=u(n);t=e(t);var i=this.map[n];i||(i=[],this.map[n]=i);i.push(t)},n.prototype["delete"]=function(n){delete this.map[u(n)]},n.prototype.get=function(n){var t=this.map[u(n)];return t?t[0]:null},n.prototype.getAll=function(n){return this.map[u(n)]||[]},n.prototype.has=function(n){return this.map.hasOwnProperty(u(n))},n.prototype.set=function(n,t){this.map[u(n)]=[e(t)]},n.prototype.forEach=function(n,t){Object.getOwnPropertyNames(this.map).forEach(function(i){this.map[i].forEach(function(r){n.call(t,r,i,this)},this)},this)},i={blob:"FileReader"in self&&"Blob"in self&&function(){try{return new Blob,!0}catch(n){return!1}}(),formData:"FormData"in self,arrayBuffer:"ArrayBuffer"in self},h=["DELETE","GET","HEAD","OPTIONS","POST","PUT"],r.prototype.clone=function(){return new r(this)},s.call(r.prototype),s.call(t.prototype),t.prototype.clone=function(){return new t(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new n(this.headers),url:this.url})},t.error=function(){var n=new t(null,{status:0,statusText:""});return n.type="error",n},c=[301,302,303,307,308],t.redirect=function(n,i){if(c.indexOf(i)===-1)throw new RangeError("Invalid status code");return new t(null,{status:i,headers:{location:n}})},self.Headers=n,self.Request=r,self.Response=t,self.fetch=function(n,u){return new Promise(function(f,e){function h(){return"responseURL"in o?o.responseURL:/^X-Request-URL:/m.test(o.getAllResponseHeaders())?o.getResponseHeader("X-Request-URL"):void 0}var s,o;s=r.prototype.isPrototypeOf(n)&&!u?n:new r(n,u);o=new XMLHttpRequest;o.onload=function(){var n=o.status===1223?204:o.status,i,r;if(n<100||n>599){e(new TypeError("Network request failed"));return}i={status:n,statusText:o.statusText,headers:p(o),url:h()};r="response"in o?o.response:o.responseText;f(new t(r,i))};o.onerror=function(){e(new TypeError("Network request failed"))};o.open(s.method,s.url,!0);s.credentials==="include"&&(o.withCredentials=!0);"responseType"in o&&i.blob&&(o.responseType="blob");s.headers.forEach(function(n,t){o.setRequestHeader(t,n)});o.send(typeof s._bodyInit=="undefined"?null:s._bodyInit)})},self.fetch.polyfill=!0)}(),function(){function n(n,t){t=t||{bubbles:!1,cancelable:!1,detail:undefined};var i=document.createEvent("CustomEvent");return i.initCustomEvent(n,t.bubbles,t.cancelable,t.detail),i}if(typeof window.CustomEvent=="function")return!1;n.prototype=window.Event.prototype;window.CustomEvent=n}()