You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@knox.apache.org by pz...@apache.org on 2018/03/09 18:37:40 UTC

[1/4] knox git commit: KNOX-1040 - Initial new descriptor and provider config wizard support

Repository: knox
Updated Branches:
  refs/heads/master 8c919a4f4 -> 167053bd1


http://git-wip-us.apache.org/repos/asf/knox/blob/167053bd/gateway-applications/src/main/resources/applications/admin-ui/app/main.db638922a84cdef35de7.bundle.js
----------------------------------------------------------------------
diff --git a/gateway-applications/src/main/resources/applications/admin-ui/app/main.db638922a84cdef35de7.bundle.js b/gateway-applications/src/main/resources/applications/admin-ui/app/main.db638922a84cdef35de7.bundle.js
new file mode 100644
index 0000000..15e5b7e
--- /dev/null
+++ b/gateway-applications/src/main/resources/applications/admin-ui/app/main.db638922a84cdef35de7.bundle.js
@@ -0,0 +1 @@
+webpackJsonp([0],{"+Bgu":function(e,t,n){"use strict";var r=n("vs5U");e.exports=new r("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:function(){return!0},construct:function(){},predicate:function(e){return"undefined"==typeof e},represent:function(){return""}})},"+Bur":function(e,t,n){e.exports=i;var r=n("rOzH").EventEmitter;function i(){r.call(this)}n("lDCR")(i,r),i.Readable=n("Osec"),i.Writable=n("QRYi"),i.Duplex=n("XvLI"),i.Transform=n("EJO3"),i.PassThrough=n("rr9E"),i.Stream=i,i.prototype.pipe=function(e,t){var n=this;function i(t){e.writable&&!1===e.write(t)&&n.pause&&n.pause()}function o(){n.readable&&n.resume&&n.resume()}n.on("data",i),e.on("drain",o),e._isStdio||t&&!1===t.end||(n.on("end",a),n.on("close",l));var s=!1;function a(){s||(s=!0,e.end())}function l(){s||(s=!0,"function"==typeof e.destroy&&e.destroy())}function u(e){if(c(),0===r.listenerCount(this,"error"))throw e}function c(){n.removeListener("data",i),e.removeListener("drain",o),n.removeListener("end",a),n
 .removeListener("close",l),n.removeListener("error",u),e.removeListener("error",u),n.removeListener("end",c),n.removeListener("close",c),e.removeListener("close",c)}return n.on("error",u),e.on("error",u),n.on("end",c),n.on("close",c),e.on("close",c),e.emit("pipe",n),e}},"+GRi":function(e,t,n){var r=n("Wo2w"),i=n("Wy9r");e.exports=function(e){return r(i(e))}},"+Q6C":function(e,t,n){var r=n("CDXM"),i=n("6De9").f,o=n("+pQw");r(r.S,"Reflect",{deleteProperty:function(e,t){var n=i(o(e),t);return!(n&&!n.configurable)&&delete e[t]}})},"+UpI":function(e,t,n){"use strict";var r=n("vs5U");e.exports=new r("tag:yaml.org,2002:map",{kind:"mapping",construct:function(e){return null!==e?e:{}}})},"+aW+":function(e,t,n){"use strict";var r=n("CDXM"),i=n("uNkO"),o=n("RT4T"),s=n("umMR"),a=[].sort,l=[1,2,3];r(r.P+r.F*(s(function(){l.sort(void 0)})||!s(function(){l.sort(null)})||!n("bhtb")(a)),"Array",{sort:function(e){return void 0===e?a.call(o(this)):a.call(o(this),i(e))}})},"+c1l":function(e,t,n){var r=
 n("CDXM");r(r.S+r.F*!n("V+0c"),"Object",{defineProperty:n("tose").f})},"+iEx":function(e,t,n){n("fHxy"),n("5GJ3"),n("X0O/"),n("HCkn"),n("ncNB"),n("soMw"),n("8sYH"),n("IJ3P"),n("t6ta"),e.exports=n("b4gG").Reflect},"+pQw":function(e,t,n){var r=n("JXkd");e.exports=function(e){if(!r(e))throw TypeError(e+" is not an object!");return e}},"/JsI":function(e,t,n){var r=n("CDXM");r(r.S+r.F,"Object",{assign:n("rIdM")})},"/Mgt":function(e,t,n){var r=n("CDXM");r(r.S,"Number",{MIN_SAFE_INTEGER:-9007199254740991})},"/XRd":function(e,t,n){var r=n("tose"),i=n("CDXM"),o=n("+pQw"),s=n("A1WY");i(i.S+i.F*n("umMR")(function(){Reflect.defineProperty(r.f({},1,{value:1}),1,{value:2})}),"Reflect",{defineProperty:function(e,t,n){o(e),t=s(t,!0),o(n);try{return r.f(e,t,n),!0}catch(e){return!1}}})},"/cYh":function(e,t,n){"use strict";var r=n("zOKz").Buffer,i=r.isEncoding||function(e){switch((e=""+e)&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":ca
 se"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function o(e){var t;switch(this.encoding=function(e){var t=function(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}(e);if("string"!=typeof t&&(r.isEncoding===i||!i(e)))throw new Error("Unknown encoding: "+e);return t||e}(e),this.encoding){case"utf16le":this.text=l,this.end=u,t=4;break;case"utf8":this.fillLast=a,t=4;break;case"base64":this.text=c,this.end=d,t=3;break;default:return this.write=h,void(this.end=p)}this.lastNeed=0,this.lastTotal=0,this.lastChar=r.allocUnsafe(t)}function s(e){return e<=127?0:e>>5==6?2:e>>4==14?3:e>>3==30?4:-1}function a(e){var t=this.lastTotal-this.lastNeed,n=function(e,t,n){if(128!=(192&t[0]))return e.lastNeed=0,"\ufffd".repeat(n);if(e.lastNeed>1&&t.length>1){
 if(128!=(192&t[1]))return e.lastNeed=1,"\ufffd".repeat(n+1);if(e.lastNeed>2&&t.length>2&&128!=(192&t[2]))return e.lastNeed=2,"\ufffd".repeat(n+2)}}(this,e,t);return void 0!==n?n:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function l(e,t){if((e.length-t)%2==0){var n=e.toString("utf16le",t);if(n){var r=n.charCodeAt(n.length-1);if(r>=55296&&r<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],n.slice(0,-1)}return n}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function u(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("utf16le",0,this.lastTotal-this.lastNeed):t}function c(e,t){var n=(e.length-t)%3;return 0===n?e.toString("base64",t):(this.lastNeed=3-n,this.lastTotal=3,1===n?this.lastChar[0]=e[
 e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-n))}function d(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function h(e){return e.toString(this.encoding)}function p(e){return e&&e.length?this.write(e):""}t.StringDecoder=o,o.prototype.write=function(e){if(0===e.length)return"";var t,n;if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return"";n=this.lastNeed,this.lastNeed=0}else n=0;return n<e.length?t?t+this.text(e,n):this.text(e,n):t||""},o.prototype.end=function(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+"\ufffd".repeat(this.lastTotal-this.lastNeed):t},o.prototype.text=function(e,t){var n=function(e,t,n){var r=t.length-1;if(r<n)return 0;var i=s(t[r]);return i>=0?(i>0&&(e.lastNeed=i-1),i):--r<n?0:(i=s(t[r]))>=0?(i>0&&(e.lastNeed=i-2),i):--r<n?0:(i=s(t[r]))>=0?(i>0&&(2===i?i=0:e.lastNeed=i-3),i):0}(this,e,t);if(!this.lastNeed)return e.to
 String("utf8",t);this.lastTotal=n;var r=e.length-(n-this.lastNeed);return e.copy(this.lastChar,0,r),e.toString("utf8",t,r)},o.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length}},"/gBU":function(e,t,n){(function(){"use strict";var e,r,i,o,s,a={}.hasOwnProperty;e=n("ZMI8"),r=n("XPJv").defaults,o=function(e){return"string"==typeof e&&(e.indexOf("&")>=0||e.indexOf(">")>=0||e.indexOf("<")>=0)},s=function(e){return"<![CDATA["+i(e)+"]]>"},i=function(e){return e.replace("]]>","]]]]><![CDATA[>")},t.Builder=function(){function t(e){var t,n;for(t in this.options={},n=r[.2])a.call(n,t)&&(this.options[t]=n[t]);for(t in e)a.call(e,t)&&(this.options[t]=e[t])}return t.prototype.buildObject=function(t){var n,i,l,u,c,d;return n=this.options.attrkey,i=this.options.charkey,1===Object
 .keys(t).length&&this.options.rootName===r[.2].rootName?t=t[c=Object.keys(t)[0]]:c=this.options.rootName,d=this,l=function(e,t){var r,u,c,h,p;if("object"!=typeof t)d.options.cdata&&o(t)?e.raw(s(t)):e.txt(t);else if(Array.isArray(t)){for(h in t)if(a.call(t,h))for(p in u=t[h])c=u[p],e=l(e.ele(p),c).up()}else for(p in t)if(a.call(t,p))if(u=t[p],p===n){if("object"==typeof u)for(r in u)e=e.att(r,u[r])}else if(p===i)e=d.options.cdata&&o(u)?e.raw(s(u)):e.txt(u);else if(Array.isArray(u))for(h in u)a.call(u,h)&&(e="string"==typeof(c=u[h])?d.options.cdata&&o(c)?e.ele(p).raw(s(c)).up():e.ele(p,c).up():l(e.ele(p),c).up());else"object"==typeof u?e=l(e.ele(p),u).up():"string"==typeof u&&d.options.cdata&&o(u)?e=e.ele(p).raw(s(u)).up():(null==u&&(u=""),e=e.ele(p,u.toString()).up());return e},u=e.create(c,this.options.xmldec,this.options.doctype,{headless:this.options.headless,allowSurrogateChars:this.options.allowSurrogateChars}),l(u,t).end(this.options.renderOpts)},t}()}).call(this)},"/wY1":functi
 on(e,t,n){n("rMMT"),n("dlwK"),n("/XRd"),n("+Q6C"),n("dBNB"),n("7Fno"),n("gZpL"),n("dSHT"),n("d+61"),n("V2Dj"),n("wJYt"),n("gdNQ"),n("VsLy"),n("wLW2"),e.exports=n("b4gG").Reflect},0:function(e,t,n){e.exports=n("cDNt")},"0MXQ":function(e,t,n){var r=n("CDXM");r(r.S,"Math",{fround:n("xxX9")})},"0a2p":function(e,t,n){(function(e){var r=Function.prototype.apply;function i(e,t){this._id=e,this._clearFn=t}t.setTimeout=function(){return new i(r.call(setTimeout,window,arguments),clearTimeout)},t.setInterval=function(){return new i(r.call(setInterval,window,arguments),clearInterval)},t.clearTimeout=t.clearInterval=function(e){e&&e.close()},i.prototype.unref=i.prototype.ref=function(){},i.prototype.close=function(){this._clearFn.call(window,this._id)},t.enroll=function(e,t){clearTimeout(e._idleTimeoutId),e._idleTimeout=t},t.unenroll=function(e){clearTimeout(e._idleTimeoutId),e._idleTimeout=-1},t._unrefActive=t.active=function(e){clearTimeout(e._idleTimeoutId);var t=e._idleTimeout;t>=0&&(e._idle
 TimeoutId=setTimeout(function(){e._onTimeout&&e._onTimeout()},t))},n("fItk"),t.setImmediate="undefined"!=typeof self&&self.setImmediate||"undefined"!=typeof e&&e.setImmediate||this&&this.setImmediate,t.clearImmediate="undefined"!=typeof self&&self.clearImmediate||"undefined"!=typeof e&&e.clearImmediate||this&&this.clearImmediate}).call(t,n("fRUx"))},1:function(e,t){},"1Rb4":function(e,t,n){"use strict";(function(t){e.exports=!t.version||0===t.version.indexOf("v0.")||0===t.version.indexOf("v1.")&&0!==t.version.indexOf("v1.8.")?function(e,n,r,i){if("function"!=typeof e)throw new TypeError('"callback" argument must be a function');var o,s,a=arguments.length;switch(a){case 0:case 1:return t.nextTick(e);case 2:return t.nextTick(function(){e.call(null,n)});case 3:return t.nextTick(function(){e.call(null,n,r)});case 4:return t.nextTick(function(){e.call(null,n,r,i)});default:for(o=new Array(a-1),s=0;s<o.length;)o[s++]=arguments[s];return t.nextTick(function(){e.apply(null,o)})}}:t.nextTick
 }).call(t,n("1WNV"))},"1WNV":function(e,t){var n,r,i=e.exports={};function o(){throw new Error("setTimeout has not been defined")}function s(){throw new Error("clearTimeout has not been defined")}function a(e){if(n===setTimeout)return setTimeout(e,0);if((n===o||!n)&&setTimeout)return n=setTimeout,setTimeout(e,0);try{return n(e,0)}catch(t){try{return n.call(null,e,0)}catch(t){return n.call(this,e,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:o}catch(e){n=o}try{r="function"==typeof clearTimeout?clearTimeout:s}catch(e){r=s}}();var l,u=[],c=!1,d=-1;function h(){c&&l&&(c=!1,l.length?u=l.concat(u):d=-1,u.length&&p())}function p(){if(!c){var e=a(h);c=!0;for(var t=u.length;t;){for(l=u,u=[];++d<t;)l&&l[d].run();d=-1,t=u.length}l=null,c=!1,function(e){if(r===clearTimeout)return clearTimeout(e);if((r===s||!r)&&clearTimeout)return r=clearTimeout,clearTimeout(e);try{r(e)}catch(t){try{return r.call(null,e)}catch(t){return r.call(this,e)}}}(e)}}function f(e,t){this.fun=e,this.arr
 ay=t}function m(){}i.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];u.push(new f(e,t)),1!==u.length||c||a(p)},f.prototype.run=function(){this.fun.apply(null,this.array)},i.title="browser",i.browser=!0,i.env={},i.argv=[],i.version="",i.versions={},i.on=m,i.addListener=m,i.once=m,i.off=m,i.removeListener=m,i.removeAllListeners=m,i.emit=m,i.prependListener=m,i.prependOnceListener=m,i.listeners=function(e){return[]},i.binding=function(e){throw new Error("process.binding is not supported")},i.cwd=function(){return"/"},i.chdir=function(e){throw new Error("process.chdir is not supported")},i.umask=function(){return 0}},"1j/l":function(e,t,n){"use strict";n.d(t,"a",function(){return r});var r=Array.isArray||function(e){return e&&"number"==typeof e.length}},"1zvG":function(e,t,n){"use strict";var r=n("JXkd"),i=n("TJLg"),o=n("3r0D")("hasInstance"),s=Function.prototype;o in s||n("tose").f(s,o,{value:function
 (e){if("function"!=typeof this||!r(e))return!1;if(!r(this.prototype))return e instanceof this;for(;e=i(e);)if(this.prototype===e)return!0;return!1}})},"2Fuj":function(e,t,n){var r=n("R5c1"),i=n("a/Sk");e.exports=Object.keys||function(e){return r(e,i)}},"2fm9":function(e,t,n){(function(){var t,r,i,o,s,a={}.hasOwnProperty;s=n("VH4r"),o=s.isObject,i=s.isFunction,r=n("p7eS"),t=n("eIJN"),e.exports=function(e){function n(e,t,r){if(n.__super__.constructor.call(this,e),null==t)throw new Error("Missing element name");this.name=this.stringify.eleName(t),this.attributes={},null!=r&&this.attribute(r),e.isDocument&&(this.isRoot=!0,this.documentObject=e,e.rootObject=this)}return function(e,t){for(var n in t)a.call(t,n)&&(e[n]=t[n]);function r(){this.constructor=e}r.prototype=t.prototype,e.prototype=new r,e.__super__=t.prototype}(n,r),n.prototype.clone=function(){var e,t,n;for(e in(t=Object.create(this)).isRoot&&(t.documentObject=null),t.attributes={},n=this.attributes)a.call(n,e)&&(t.attributes[e
 ]=n[e].clone());return t.children=[],this.children.forEach(function(e){var n;return(n=e.clone()).parent=t,t.children.push(n)}),t},n.prototype.attribute=function(e,n){var r;if(null!=e&&(e=e.valueOf()),o(e))for(r in e)a.call(e,r)&&this.attribute(r,e[r]);else i(n)&&(n=n.apply()),this.options.skipNullAttributes&&null==n||(this.attributes[e]=new t(this,e,n));return this},n.prototype.removeAttribute=function(e){var t,n;if(null==e)throw new Error("Missing attribute name");if(e=e.valueOf(),Array.isArray(e))for(t=0,n=e.length;t<n;t++)delete this.attributes[e[t]];else delete this.attributes[e];return this},n.prototype.toString=function(e){return this.options.writer.set(e).element(this)},n.prototype.att=function(e,t){return this.attribute(e,t)},n.prototype.a=function(e,t){return this.attribute(e,t)},n}()}).call(this)},"2kLc":function(e,t,n){"use strict";var r=n("AP4T"),i=n("Oryw"),o=n("3iOE"),s=n("wP3s");function a(e){return e}t.a=function(){for(var e=[],t=0;t<arguments.length;t++)e[t-0]=argum
 ents[t];var n=Number.POSITIVE_INFINITY,l=null,u=e[e.length-1];return Object(o.a)(u)?(l=e.pop(),e.length>1&&"number"==typeof e[e.length-1]&&(n=e.pop())):"number"==typeof u&&(n=e.pop()),null===l&&1===e.length&&e[0]instanceof r.Observable?e[0]:function(e){return void 0===e&&(e=Number.POSITIVE_INFINITY),Object(s.a)(a,null,e)}(n)(new i.a(e,l))}},"3LDD":function(e,t,n){"use strict";var r=n("tose").f,i=n("51pc"),o=n("pBmS"),s=n("pa70"),a=n("Lcie"),l=n("p/bR"),u=n("WsSm"),c=n("w/BM"),d=n("KpXt"),h=n("V+0c"),p=n("xI8H").fastKey,f=n("Y5fy"),m=h?"_s":"size",g=function(e,t){var n,r=p(t);if("F"!==r)return e._i[r];for(n=e._f;n;n=n.n)if(n.k==t)return n};e.exports={getConstructor:function(e,t,n,u){var c=e(function(e,r){a(e,c,t,"_i"),e._t=t,e._i=i(null),e._f=void 0,e._l=void 0,e[m]=0,void 0!=r&&l(r,n,e[u],e)});return o(c.prototype,{clear:function(){for(var e=f(this,t),n=e._i,r=e._f;r;r=r.n)r.r=!0,r.p&&(r.p=r.p.n=void 0),delete n[r.i];e._f=e._l=void 0,e[m]=0},delete:function(e){var n=f(this,t),r=g(n,
 e);if(r){var i=r.n,o=r.p;delete n._i[r.i],r.r=!0,o&&(o.n=i),i&&(i.p=o),n._f==r&&(n._f=i),n._l==r&&(n._l=o),n[m]--}return!!r},forEach:function(e){f(this,t);for(var n,r=s(e,arguments.length>1?arguments[1]:void 0,3);n=n?n.n:this._f;)for(r(n.v,n.k,this);n&&n.r;)n=n.p},has:function(e){return!!g(f(this,t),e)}}),h&&r(c.prototype,"size",{get:function(){return f(this,t)[m]}}),c},def:function(e,t,n){var r,i,o=g(e,t);return o?o.v=n:(e._l=o={i:i=p(t,!0),k:t,v:n,p:r=e._l,n:void 0,r:!1},e._f||(e._f=o),r&&(r.n=o),e[m]++,"F"!==i&&(e._i[i]=o)),e},getEntry:g,setStrong:function(e,t,n){u(e,t,function(e,n){this._t=f(e,t),this._k=n,this._l=void 0},function(){for(var e=this._k,t=this._l;t&&t.r;)t=t.p;return this._t&&(this._l=t=t?t.n:this._t._f)?c(0,"keys"==e?t.k:"values"==e?t.v:[t.k,t.v]):(this._t=void 0,c(1))},n?"entries":"values",!n,!0),d(t)}}},"3MMU":function(e,t,n){"use strict";var r=n("RT4T"),i=n("KM3d"),o=n("rppw");e.exports=[].copyWithin||function(e,t){var n=r(this),s=o(n.length),a=i(e,s),l=i(t,s),
 u=arguments.length>2?arguments[2]:void 0,c=Math.min((void 0===u?s:i(u,s))-l,s-a),d=1;for(l<a&&a<l+c&&(d=-1,l+=c-1,a+=c-1);c-- >0;)l in n?n[a]=n[l]:delete n[a],a+=d,l+=d;return n}},"3iOE":function(e,t,n){"use strict";t.a=function(e){return e&&"function"==typeof e.schedule}},"3r0D":function(e,t,n){var r=n("Iclu")("wks"),i=n("c09d"),o=n("ptrv").Symbol,s="function"==typeof o;(e.exports=function(e){return r[e]||(r[e]=s&&o[e]||(s?o:i)("Symbol."+e))}).store=r},"4D9a":function(e,t,n){"use strict";n("RSwQ");var r=n("+pQw"),i=n("8H1R"),o=n("V+0c"),s=/./.toString,a=function(e){n("lfBE")(RegExp.prototype,"toString",e,!0)};n("umMR")(function(){return"/a/b"!=s.call({source:"a",flags:"b"})})?a(function(){var e=r(this);return"/".concat(e.source,"/","flags"in e?e.flags:!o&&e instanceof RegExp?i.call(e):void 0)}):"toString"!=s.name&&a(function(){return s.call(this)})},"4TT8":function(e,t,n){var r=n("CDXM");r(r.S+r.F*!n("V+0c"),"Object",{defineProperties:n("ewdp")})},"4kq/":function(e,t,n){"use strict
 ";var r=n("xhXA"),i=n("fIES"),o=n("V2lR"),s=n("Io8P"),a=Object.prototype.toString,l=Object.prototype.hasOwnProperty,u=9,c=10,d=32,h=33,p=34,f=35,m=37,g=38,v=39,y=42,b=44,w=45,x=58,k=62,E=63,C=64,_=91,S=93,A=96,T=123,D=124,F=125,R={0:"\\0",7:"\\a",8:"\\b",9:"\\t",10:"\\n",11:"\\v",12:"\\f",13:"\\r",27:"\\e",34:'\\"',92:"\\\\",133:"\\N",160:"\\_",8232:"\\L",8233:"\\P"},N=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];function O(e){var t,n,o;if(t=e.toString(16).toUpperCase(),e<=255)n="x",o=2;else if(e<=65535)n="u",o=4;else{if(!(e<=4294967295))throw new i("code point within a string may not be greater than 0xFFFFFFFF");n="U",o=8}return"\\"+n+r.repeat("0",o-t.length)+t}function L(e,t){for(var n,i=r.repeat(" ",t),o=0,s=-1,a="",l=e.length;o<l;)-1===(s=e.indexOf("\n",o))?(n=e.slice(o),o=l):(n=e.slice(o,s+1),o=s+1),n.length&&"\n"!==n&&(a+=i),a+=n;return a}function I(e,t){return"\n"+r.repeat(" ",e.indent*t)}function M(e){return e===d||e===u}function P(e){r
 eturn 32<=e&&e<=126||161<=e&&e<=55295&&8232!==e&&8233!==e||57344<=e&&e<=65533&&65279!==e||65536<=e&&e<=1114111}function B(e){return P(e)&&65279!==e&&e!==b&&e!==_&&e!==S&&e!==T&&e!==F&&e!==x&&e!==f}var j=1,$=2,z=3,U=4,V=5;function H(e,t,n,r){e.dump=function(){if(0===t.length)return"''";if(!e.noCompatMode&&-1!==N.indexOf(t))return"'"+t+"'";var o=e.indent*Math.max(1,n),s=-1===e.lineWidth?-1:Math.max(Math.min(e.lineWidth,40),e.lineWidth-o);switch(function(t,n,r,i,o){var s,a,l,u=!1,d=!1,R=-1!==i,N=-1,O=P(l=t.charCodeAt(0))&&65279!==l&&!M(l)&&l!==w&&l!==E&&l!==x&&l!==b&&l!==_&&l!==S&&l!==T&&l!==F&&l!==f&&l!==g&&l!==y&&l!==h&&l!==D&&l!==k&&l!==v&&l!==p&&l!==m&&l!==C&&l!==A&&!M(t.charCodeAt(t.length-1));if(n)for(s=0;s<t.length;s++){if(!P(a=t.charCodeAt(s)))return V;O=O&&B(a)}else{for(s=0;s<t.length;s++){if((a=t.charCodeAt(s))===c)u=!0,R&&(d=d||s-N-1>i&&" "!==t[N+1],N=s);else if(!P(a))return V;O=O&&B(a)}d=d||R&&s-N-1>i&&" "!==t[N+1]}return u||d?" "===t[0]&&r>9?V:d?U:z:O&&!function(t){return 
 function(e,t){var n,r;for(n=0,r=e.implicitTypes.length;n<r;n+=1)if(e.implicitTypes[n].resolve(t))return!0;return!1}(e,t)}(t)?j:$}(t,r||e.flowLevel>-1&&n>=e.flowLevel,e.indent,s)){case j:return t;case $:return"'"+t.replace(/'/g,"''")+"'";case z:return"|"+W(t,e.indent)+q(L(t,o));case U:return">"+W(t,e.indent)+q(L(function(e,t){for(var n,r,i,o=/(\n+)([^\n]*)/g,s=(i=e.indexOf("\n"),o.lastIndex=i=-1!==i?i:e.length,G(e.slice(0,i),t)),a="\n"===e[0]||" "===e[0];r=o.exec(e);){var l=r[2];n=" "===l[0],s+=r[1]+(a||n||""===l?"":"\n")+G(l,t),a=n}return s}(t,s),o));case V:return'"'+function(e){for(var t,n,r,i="",o=0;o<e.length;o++)(t=e.charCodeAt(o))>=55296&&t<=56319&&(n=e.charCodeAt(o+1))>=56320&&n<=57343?(i+=O(1024*(t-55296)+n-56320+65536),o++):i+=!(r=R[t])&&P(t)?e[o]:r||O(t);return i}(t)+'"';default:throw new i("impossible error: invalid scalar style")}}()}function W(e,t){var n=" "===e[0]?String(t):"",r="\n"===e[e.length-1];return n+(!r||"\n"!==e[e.length-2]&&"\n"!==e?r?"":"-":"+")+"\n"}functio
 n q(e){return"\n"===e[e.length-1]?e.slice(0,-1):e}function G(e,t){if(""===e||" "===e[0])return e;for(var n,r,i=/ [^ ]/g,o=0,s=0,a=0,l="";n=i.exec(e);)(a=n.index)-o>t&&(l+="\n"+e.slice(o,r=s>o?s:a),o=r+1),s=a;return l+="\n",(l+=e.length-o>t&&s>o?e.slice(o,s)+"\n"+e.slice(s+1):e.slice(o)).slice(1)}function K(e,t,n){var r,o,s,u,c,d;for(s=0,u=(o=n?e.explicitTypes:e.implicitTypes).length;s<u;s+=1)if(((c=o[s]).instanceOf||c.predicate)&&(!c.instanceOf||"object"==typeof t&&t instanceof c.instanceOf)&&(!c.predicate||c.predicate(t))){if(e.tag=n?c.tag:"?",c.represent){if(d=e.styleMap[c.tag]||c.defaultStyle,"[object Function]"===a.call(c.represent))r=c.represent(t,d);else{if(!l.call(c.represent,d))throw new i("!<"+c.tag+'> tag resolver accepts not "'+d+'" style');r=c.represent[d](t,d)}e.dump=r}return!0}return!1}function X(e,t){var n=new function(e){this.schema=e.schema||o,this.indent=Math.max(1,e.indent||2),this.skipInvalid=e.skipInvalid||!1,this.flowLevel=r.isNothing(e.flowLevel)?-1:e.flowLeve
 l,this.styleMap=function(e,t){var n,r,i,o,s,a,u;if(null===t)return{};for(n={},i=0,o=(r=Object.keys(t)).length;i<o;i+=1)s=r[i],a=String(t[s]),"!!"===s.slice(0,2)&&(s="tag:yaml.org,2002:"+s.slice(2)),(u=e.compiledTypeMap.fallback[s])&&l.call(u.styleAliases,a)&&(a=u.styleAliases[a]),n[s]=a;return n}(this.schema,e.styles||null),this.sortKeys=e.sortKeys||!1,this.lineWidth=e.lineWidth||80,this.noRefs=e.noRefs||!1,this.noCompatMode=e.noCompatMode||!1,this.condenseFlow=e.condenseFlow||!1,this.implicitTypes=this.schema.compiledImplicit,this.explicitTypes=this.schema.compiledExplicit,this.tag=null,this.result="",this.duplicates=[],this.usedDuplicates=null}(t=t||{});return n.noRefs||function(t,n){var r,i,o=[],s=[];for(function e(t,n,r){var i,o,s;if(null!==t&&"object"==typeof t)if(-1!==(o=n.indexOf(t)))-1===r.indexOf(o)&&r.push(o);else if(n.push(t),Array.isArray(t))for(o=0,s=t.length;o<s;o+=1)e(t[o],n,r);else for(o=0,s=(i=Object.keys(t)).length;o<s;o+=1)e(t[i[o]],n,r)}(e,o,s),r=0,i=s.length;r<i
 ;r+=1)n.duplicates.push(o[s[r]]);n.usedDuplicates=new Array(i)}(0,n),function e(t,n,r,o,s,l){t.tag=null,t.dump=r,K(t,r,!1)||K(t,r,!0);var u=a.call(t.dump);o&&(o=t.flowLevel<0||t.flowLevel>n);var d,h,p="[object Object]"===u||"[object Array]"===u;if(p&&(h=-1!==(d=t.duplicates.indexOf(r))),(null!==t.tag&&"?"!==t.tag||h||2!==t.indent&&n>0)&&(s=!1),h&&t.usedDuplicates[d])t.dump="*ref_"+d;else{if(p&&h&&!t.usedDuplicates[d]&&(t.usedDuplicates[d]=!0),"[object Object]"===u)o&&0!==Object.keys(t.dump).length?(function(t,n,r,o){var s,a,l,u,d,h,p="",f=t.tag,m=Object.keys(r);if(!0===t.sortKeys)m.sort();else if("function"==typeof t.sortKeys)m.sort(t.sortKeys);else if(t.sortKeys)throw new i("sortKeys must be a boolean or a function");for(s=0,a=m.length;s<a;s+=1)h="",o&&0===s||(h+=I(t,n)),u=r[l=m[s]],e(t,n+1,l,!0,!0,!0)&&((d=null!==t.tag&&"?"!==t.tag||t.dump&&t.dump.length>1024)&&(t.dump&&c===t.dump.charCodeAt(0)?h+="?":h+="? "),h+=t.dump,d&&(h+=I(t,n)),e(t,n+1,u,!0,d)&&(t.dump&&c===t.dump.charCodeA
 t(0)?h+=":":h+=": ",p+=h+=t.dump));t.tag=f,t.dump=p||"{}"}(t,n,t.dump,s),h&&(t.dump="&ref_"+d+t.dump)):(function(t,n,r){var i,o,s,a,l,u="",c=t.tag,d=Object.keys(r);for(i=0,o=d.length;i<o;i+=1)l=t.condenseFlow?'"':"",0!==i&&(l+=", "),a=r[s=d[i]],e(t,n,s,!1,!1)&&(t.dump.length>1024&&(l+="? "),l+=t.dump+(t.condenseFlow?'"':"")+":"+(t.condenseFlow?"":" "),e(t,n,a,!1,!1)&&(u+=l+=t.dump));t.tag=c,t.dump="{"+u+"}"}(t,n,t.dump),h&&(t.dump="&ref_"+d+" "+t.dump));else if("[object Array]"===u)o&&0!==t.dump.length?(function(t,n,r,i){var o,s,a="",l=t.tag;for(o=0,s=r.length;o<s;o+=1)e(t,n+1,r[o],!0,!0)&&(i&&0===o||(a+=I(t,n)),t.dump&&c===t.dump.charCodeAt(0)?a+="-":a+="- ",a+=t.dump);t.tag=l,t.dump=a||"[]"}(t,n,t.dump,s),h&&(t.dump="&ref_"+d+t.dump)):(function(t,n,r){var i,o,s="",a=t.tag;for(i=0,o=r.length;i<o;i+=1)e(t,n,r[i],!1,!1)&&(0!==i&&(s+=","+(t.condenseFlow?"":" ")),s+=t.dump);t.tag=a,t.dump="["+s+"]"}(t,n,t.dump),h&&(t.dump="&ref_"+d+" "+t.dump));else{if("[object String]"!==u){if(t.skipI
 nvalid)return!1;throw new i("unacceptable kind of an object to dump "+u)}"?"!==t.tag&&H(t,t.dump,n,l)}null!==t.tag&&"?"!==t.tag&&(t.dump="!<"+t.tag+"> "+t.dump)}return!0}(n,0,e,!0,!0)?n.dump+"\n":""}e.exports.dump=X,e.exports.safeDump=function(e,t){return X(e,r.extend({schema:s},t))}},"51pc":function(e,t,n){var r=n("+pQw"),i=n("ewdp"),o=n("a/Sk"),s=n("yIWP")("IE_PROTO"),a=function(){},l=function(){var e,t=n("BQSv")("iframe"),r=o.length;for(t.style.display="none",n("Ed9o").appendChild(t),t.src="javascript:",(e=t.contentWindow.document).open(),e.write("<script>document.F=Object<\/script>"),e.close(),l=e.F;r--;)delete l.prototype[o[r]];return l()};e.exports=Object.create||function(e,t){var n;return null!==e?(a.prototype=r(e),n=new a,a.prototype=null,n[s]=e):n=l(),void 0===t?n:i(n,t)}},"570Y":function(e,t,n){(function(t){e.exports=function(){if(t.Blob)try{return new Blob(["asdf"],{type:"text/plain"}),Blob}catch(e){}var e=t.WebKitBlobBuilder||t.MozBlobBuilder||t.MSBlobBuilder;return func
 tion(t,n){var r=new e,i=n.endings,o=n.type;if(i)for(var s=0,a=t.length;s<a;++s)r.append(t[s],i);else for(s=0,a=t.length;s<a;++s)r.append(t[s]);return o?r.getBlob(o):r.getBlob()}}()}).call(t,n("fRUx"))},"5E84":function(e,t,n){"use strict";e.exports=o;var r=n("C7jF"),i=n("VIKU");function o(e){if(!(this instanceof o))return new o(e);r.call(this,e)}i.inherits=n("lDCR"),i.inherits(o,r),o.prototype._transform=function(e,t,n){n(null,e)}},"5GJ3":function(e,t,n){var r=n("gBtn"),i=n("+pQw"),o=r.key,s=r.map,a=r.store;r.exp({deleteMetadata:function(e,t){var n=arguments.length<3?void 0:o(arguments[2]),r=s(i(t),n,!1);if(void 0===r||!r.delete(e))return!1;if(r.size)return!0;var l=a.get(t);return l.delete(n),!!l.size||a.delete(t)}})},"5b+r":function(e,t){e.exports=function(e,t,n){var r=void 0===n;switch(t.length){case 0:return r?e():e.call(n);case 1:return r?e(t[0]):e.call(n,t[0]);case 2:return r?e(t[0],t[1]):e.call(n,t[0],t[1]);case 3:return r?e(t[0],t[1],t[2]):e.call(n,t[0],t[1],t[2]);case 4:retur
 n r?e(t[0],t[1],t[2],t[3]):e.call(n,t[0],t[1],t[2],t[3])}return e.apply(n,t)}},"5oDA":function(e,t,n){var r=n("JXkd"),i=n("+pQw"),o=function(e,t){if(i(e),!r(t)&&null!==t)throw TypeError(t+": can't set as prototype!")};e.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(e,t,r){try{(r=n("pa70")(Function.call,n("6De9").f(Object.prototype,"__proto__").set,2))(e,[]),t=!(e instanceof Array)}catch(e){t=!0}return function(e,n){return o(e,n),t?e.__proto__=n:r(e,n),e}}({},!1):void 0),check:o}},"5xM6":function(e,t,n){(function(){"use strict";var e,r,i,o,s,a,l,u,c=function(e,t){return function(){return e.apply(t,arguments)}},d={}.hasOwnProperty;l=n("Hhmb"),i=n("rOzH"),e=n("je7P"),a=n("GG7F"),u=n("0a2p").setImmediate,r=n("XPJv").defaults,o=function(e){return"object"==typeof e&&null!=e&&0===Object.keys(e).length},s=function(e,t,n){var r,i;for(r=0,i=e.length;r<i;r++)t=(0,e[r])(t,n);return t},t.Parser=function(n){function h(e){var n,i;if(this.parseString=c(this.parseString,this),this.re
 set=c(this.reset,this),this.assignOrPush=c(this.assignOrPush,this),this.processAsync=c(this.processAsync,this),!(this instanceof t.Parser))return new t.Parser(e);for(n in this.options={},i=r[.2])d.call(i,n)&&(this.options[n]=i[n]);for(n in e)d.call(e,n)&&(this.options[n]=e[n]);this.options.xmlns&&(this.options.xmlnskey=this.options.attrkey+"ns"),this.options.normalizeTags&&(this.options.tagNameProcessors||(this.options.tagNameProcessors=[]),this.options.tagNameProcessors.unshift(a.normalize)),this.reset()}return function(e,t){for(var n in t)d.call(t,n)&&(e[n]=t[n]);function r(){this.constructor=e}r.prototype=t.prototype,e.prototype=new r,e.__super__=t.prototype}(h,i.EventEmitter),h.prototype.processAsync=function(){var e,t;try{return this.remaining.length<=this.options.chunkSize?(e=this.remaining,this.remaining="",this.saxParser=this.saxParser.write(e),this.saxParser.close()):(e=this.remaining.substr(0,this.options.chunkSize),this.remaining=this.remaining.substr(this.options.chunkSi
 ze,this.remaining.length),this.saxParser=this.saxParser.write(e),u(this.processAsync))}catch(e){if(t=e,!this.saxParser.errThrown)return this.saxParser.errThrown=!0,this.emit(t)}},h.prototype.assignOrPush=function(e,t,n){return t in e?(e[t]instanceof Array||(e[t]=[e[t]]),e[t].push(n)):e[t]=this.options.explicitArray?[n]:n},h.prototype.reset=function(){var e,t,n,r,i;return this.removeAllListeners(),this.saxParser=l.parser(this.options.strict,{trim:!1,normalize:!1,xmlns:this.options.xmlns}),this.saxParser.errThrown=!1,this.saxParser.onerror=(i=this,function(e){if(i.saxParser.resume(),!i.saxParser.errThrown)return i.saxParser.errThrown=!0,i.emit("error",e)}),this.saxParser.onend=function(e){return function(){if(!e.saxParser.ended)return e.saxParser.ended=!0,e.emit("end",e.resultObject)}}(this),this.saxParser.ended=!1,this.EXPLICIT_CHARKEY=this.options.explicitCharkey,this.resultObject=null,r=[],e=this.options.attrkey,t=this.options.charkey,this.saxParser.onopentag=function(n){return fun
 ction(i){var o,a,l,u,c;if((l={})[t]="",!n.options.ignoreAttrs)for(o in c=i.attributes)d.call(c,o)&&(e in l||n.options.mergeAttrs||(l[e]={}),a=n.options.attrValueProcessors?s(n.options.attrValueProcessors,i.attributes[o],o):i.attributes[o],u=n.options.attrNameProcessors?s(n.options.attrNameProcessors,o):o,n.options.mergeAttrs?n.assignOrPush(l,u,a):l[e][u]=a);return l["#name"]=n.options.tagNameProcessors?s(n.options.tagNameProcessors,i.name):i.name,n.options.xmlns&&(l[n.options.xmlnskey]={uri:i.uri,local:i.local}),r.push(l)}}(this),this.saxParser.onclosetag=function(e){return function(){var n,i,a,l,u,c,h,p,f,m;if(c=r.pop(),u=c["#name"],e.options.explicitChildren&&e.options.preserveChildrenOrder||delete c["#name"],!0===c.cdata&&(n=c.cdata,delete c.cdata),f=r[r.length-1],c[t].match(/^\s*$/)&&!n?(i=c[t],delete c[t]):(e.options.trim&&(c[t]=c[t].trim()),e.options.normalize&&(c[t]=c[t].replace(/\s{2,}/g," ").trim()),c[t]=e.options.valueProcessors?s(e.options.valueProcessors,c[t],u):c[t],1==
 =Object.keys(c).length&&t in c&&!e.EXPLICIT_CHARKEY&&(c=c[t])),o(c)&&(c=""!==e.options.emptyTag?e.options.emptyTag:i),null!=e.options.validator&&(m="/"+function(){var e,t,n;for(n=[],e=0,t=r.length;e<t;e++)n.push((l=r[e])["#name"]);return n}().concat(u).join("/"),function(){try{c=e.options.validator(m,f&&f[u],c)}catch(t){return e.emit("error",t)}}()),e.options.explicitChildren&&!e.options.mergeAttrs&&"object"==typeof c)if(e.options.preserveChildrenOrder){if(f){for(a in f[e.options.childkey]=f[e.options.childkey]||[],h={},c)d.call(c,a)&&(h[a]=c[a]);f[e.options.childkey].push(h),delete c["#name"],1===Object.keys(c).length&&t in c&&!e.EXPLICIT_CHARKEY&&(c=c[t])}}else l={},e.options.attrkey in c&&(l[e.options.attrkey]=c[e.options.attrkey],delete c[e.options.attrkey]),!e.options.charsAsChildren&&e.options.charkey in c&&(l[e.options.charkey]=c[e.options.charkey],delete c[e.options.charkey]),Object.getOwnPropertyNames(c).length>0&&(l[e.options.childkey]=c),c=l;return r.length>0?e.assignOrPu
 sh(f,u,c):(e.options.explicitRoot&&(p=c,(c={})[u]=p),e.resultObject=c,e.saxParser.ended=!0,e.emit("end",e.resultObject))}}(this),n=function(e){return function(n){var i,o;if(o=r[r.length-1])return o[t]+=n,e.options.explicitChildren&&e.options.preserveChildrenOrder&&e.options.charsAsChildren&&(e.options.includeWhiteChars||""!==n.replace(/\\n/g,"").trim())&&(o[e.options.childkey]=o[e.options.childkey]||[],(i={"#name":"__text__"})[t]=n,e.options.normalize&&(i[t]=i[t].replace(/\s{2,}/g," ").trim()),o[e.options.childkey].push(i)),o}}(this),this.saxParser.ontext=n,this.saxParser.oncdata=function(e){var t;if(t=n(e))return t.cdata=!0}},h.prototype.parseString=function(t,n){var r;null!=n&&"function"==typeof n&&(this.on("end",function(e){return this.reset(),n(null,e)}),this.on("error",function(e){return this.reset(),n(e)}));try{return""===(t=t.toString()).trim()?(this.emit("end",null),!0):(t=e.stripBOM(t),this.options.async?(this.remaining=t,u(this.processAsync),this.saxParser):this.saxParser.
 write(t).close())}catch(e){if(r=e,!this.saxParser.errThrown&&!this.saxParser.ended)return this.emit("error",r),this.saxParser.errThrown=!0;if(this.saxParser.ended)throw r}},h}(),t.parseString=function(e,n,r){var i,o;return null!=r?("function"==typeof r&&(i=r),"object"==typeof n&&(o=n)):("function"==typeof n&&(i=n),o={}),new t.Parser(o).parseString(e,i)}}).call(this)},"6De9":function(e,t,n){var r=n("9e9+"),i=n("piOq"),o=n("+GRi"),s=n("A1WY"),a=n("rMsi"),l=n("gNkH"),u=Object.getOwnPropertyDescriptor;t.f=n("V+0c")?u:function(e,t){if(e=o(e),t=s(t,!0),l)try{return u(e,t)}catch(e){}if(a(e,t))return i(!r.f.call(e,t),e[t])}},"6F6V":function(e,t,n){"use strict";n("NhIS")("fontsize",function(e){return function(t){return e(this,"font","size",t)}})},"6GwK":function(e,t,n){var r=n("RT4T"),i=n("2Fuj");n("QN+J")("keys",function(){return function(e){return i(r(e))}})},"6IF7":function(e,t,n){"use strict";var r=n("vs5U");e.exports=new r("tag:yaml.org,2002:merge",{kind:"scalar",resolve:function(e){ret
 urn"<<"===e||null===e}})},"6QZ3":function(e,t,n){"use strict";(function(t,r){var i=n("1Rb4");function o(e){var t=this;this.next=null,this.entry=null,this.finish=function(){!function(e,t,n){var r=e.entry;for(e.entry=null;r;){var i=r.callback;t.pendingcb--,i(void 0),r=r.next}t.corkedRequestsFree?t.corkedRequestsFree.next=e:t.corkedRequestsFree=e}(t,e)}}e.exports=v;var s,a=!t.browser&&["v0.10","v0.9."].indexOf(t.version.slice(0,5))>-1?setImmediate:i;v.WritableState=g;var l=n("VIKU");l.inherits=n("lDCR");var u,c={deprecate:n("7RTT")},d=n("wHgO"),h=n("zOKz").Buffer,p=r.Uint8Array||function(){},f=n("iAGO");function m(){}function g(e,t){s=s||n("dJzE"),this.objectMode=!!(e=e||{}).objectMode,t instanceof s&&(this.objectMode=this.objectMode||!!e.writableObjectMode);var r=e.highWaterMark;this.highWaterMark=r||0===r?r:this.objectMode?16:16384,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1,th
 is.decodeStrings=!(!1===e.decodeStrings),this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){!function(e,t){var n=e._writableState,r=n.sync,o=n.writecb;if(function(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}(n),t)!function(e,t,n,r,o){--t.pendingcb,n?(i(o,r),i(E,e,t),e._writableState.errorEmitted=!0,e.emit("error",r)):(o(r),e._writableState.errorEmitted=!0,e.emit("error",r),E(e,t))}(e,n,r,t,o);else{var s=x(n);s||n.corked||n.bufferProcessing||!n.bufferedRequest||w(e,n),r?a(b,e,n,s,o):b(e,n,s,o)}}(t,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new o(this)}function v(e){if(s=s||n("dJzE"),!(u.call(v,this)||this instanceof s))return new v(e);this._writableState=new g(e,this),this.writable=!0,e&&("function"==typ
 eof e.write&&(this._write=e.write),"function"==typeof e.writev&&(this._writev=e.writev),"function"==typeof e.destroy&&(this._destroy=e.destroy),"function"==typeof e.final&&(this._final=e.final)),d.call(this)}function y(e,t,n,r,i,o,s){t.writelen=r,t.writecb=s,t.writing=!0,t.sync=!0,n?e._writev(i,t.onwrite):e._write(i,o,t.onwrite),t.sync=!1}function b(e,t,n,r){n||function(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}(e,t),t.pendingcb--,r(),E(e,t)}function w(e,t){t.bufferProcessing=!0;var n=t.bufferedRequest;if(e._writev&&n&&n.next){var r=new Array(t.bufferedRequestCount),i=t.corkedRequestsFree;i.entry=n;for(var s=0,a=!0;n;)r[s]=n,n.isBuf||(a=!1),n=n.next,s+=1;r.allBuffers=a,y(e,t,!0,t.length,r,"",i.finish),t.pendingcb++,t.lastBufferedRequest=null,i.next?(t.corkedRequestsFree=i.next,i.next=null):t.corkedRequestsFree=new o(t)}else{for(;n;){var l=n.chunk;if(y(e,t,!1,t.objectMode?1:l.length,l,n.encoding,n.callback),n=n.next,t.writing)break}null===n&&(t.lastBufferedRequ
 est=null)}t.bufferedRequestCount=0,t.bufferedRequest=n,t.bufferProcessing=!1}function x(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function k(e,t){e._final(function(n){t.pendingcb--,n&&e.emit("error",n),t.prefinished=!0,e.emit("prefinish"),E(e,t)})}function E(e,t){var n=x(t);return n&&(function(e,t){t.prefinished||t.finalCalled||("function"==typeof e._final?(t.pendingcb++,t.finalCalled=!0,i(k,e,t)):(t.prefinished=!0,e.emit("prefinish")))}(e,t),0===t.pendingcb&&(t.finished=!0,e.emit("finish"))),n}l.inherits(v,d),g.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(g.prototype,"buffer",{get:c.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(e){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(u=Function.protot
 ype[Symbol.hasInstance],Object.defineProperty(v,Symbol.hasInstance,{value:function(e){return!!u.call(this,e)||e&&e._writableState instanceof g}})):u=function(e){return e instanceof this},v.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},v.prototype.write=function(e,t,n){var r,o=this._writableState,s=!1,a=(h.isBuffer(r=e)||r instanceof p)&&!o.objectMode;return a&&!h.isBuffer(e)&&(e=function(e){return h.from(e)}(e)),"function"==typeof t&&(n=t,t=null),a?t="buffer":t||(t=o.defaultEncoding),"function"!=typeof n&&(n=m),o.ended?function(e,t){var n=new Error("write after end");e.emit("error",n),i(t,n)}(this,n):(a||function(e,t,n,r){var o=!0,s=!1;return null===n?s=new TypeError("May not write null values to stream"):"string"==typeof n||void 0===n||t.objectMode||(s=new TypeError("Invalid non-string/buffer chunk")),s&&(e.emit("error",s),i(r,s),o=!1),o}(this,o,e,n))&&(o.pendingcb++,s=function(e,t,n,r,i,o){if(!n){var s=function(e,t,n){return e.objectMode||!1=
 ==e.decodeStrings||"string"!=typeof t||(t=h.from(t,n)),t}(t,r,i);r!==s&&(n=!0,i="buffer",r=s)}var a=t.objectMode?1:r.length;t.length+=a;var l=t.length<t.highWaterMark;if(l||(t.needDrain=!0),t.writing||t.corked){var u=t.lastBufferedRequest;t.lastBufferedRequest={chunk:r,encoding:i,isBuf:n,callback:o,next:null},u?u.next=t.lastBufferedRequest:t.bufferedRequest=t.lastBufferedRequest,t.bufferedRequestCount+=1}else y(e,t,!1,a,r,i,o);return l}(this,o,a,e,t,n)),s},v.prototype.cork=function(){this._writableState.corked++},v.prototype.uncork=function(){var e=this._writableState;e.corked&&(e.corked--,e.writing||e.corked||e.finished||e.bufferProcessing||!e.bufferedRequest||w(this,e))},v.prototype.setDefaultEncoding=function(e){if("string"==typeof e&&(e=e.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((e+"").toLowerCase())>-1))throw new TypeError("Unknown encoding: "+e);return this._writableState.defaultEncoding=e,this},v.proto
 type._write=function(e,t,n){n(new Error("_write() is not implemented"))},v.prototype._writev=null,v.prototype.end=function(e,t,n){var r=this._writableState;"function"==typeof e?(n=e,e=null,t=null):"function"==typeof t&&(n=t,t=null),null!==e&&void 0!==e&&this.write(e,t),r.corked&&(r.corked=1,this.uncork()),r.ending||r.finished||function(e,t,n){t.ending=!0,E(e,t),n&&(t.finished?i(n):e.once("finish",n)),t.ended=!0,e.writable=!1}(this,r,n)},Object.defineProperty(v.prototype,"destroyed",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),v.prototype.destroy=f.destroy,v.prototype._undestroy=f.undestroy,v.prototype._destroy=function(e,t){this.end(),t(e)}}).call(t,n("1WNV"),n("fRUx"))},"6S6c":function(e,t,n){"use strict";var r=n("6Xbx"),i=n("E9/g"),o=function(){function e(e,t){this.predicate=e,this.thisArg=t}return e.prototype.call=function(e,t){return t.subscribe(new s(e,this.predicate
 ,this.thisArg))},e}(),s=function(e){function t(t,n,r){e.call(this,t),this.predicate=n,this.thisArg=r,this.count=0}return Object(r.b)(t,e),t.prototype._next=function(e){var t;try{t=this.predicate.call(this.thisArg,e,this.count++)}catch(e){return void this.destination.error(e)}t&&this.destination.next(e)},t}(i.a);t.a=function(e,t){return function(e,t){return function(n){return n.lift(new o(e,t))}}(e,t)(this)}},"6WxU":function(e,t,n){"use strict";var r;try{r=n("di1V")}catch(e){"undefined"!=typeof window&&(r=window.esprima)}var i=n("vs5U");e.exports=new i("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:function(e){if(null===e)return!1;try{var t=r.parse("("+e+")",{range:!0});return"Program"===t.type&&1===t.body.length&&"ExpressionStatement"===t.body[0].type&&"FunctionExpression"===t.body[0].expression.type}catch(e){return!1}},construct:function(e){var t,n="("+e+")",i=r.parse(n,{range:!0}),o=[];if("Program"!==i.type||1!==i.body.length||"ExpressionStatement"!==i.body[0].type||"Funct
 ionExpression"!==i.body[0].expression.type)throw new Error("Failed to resolve function");return i.body[0].expression.params.forEach(function(e){o.push(e.name)}),t=i.body[0].expression.body.range,new Function(o,n.slice(t[0]+1,t[1]-1))},predicate:function(e){return"[object Function]"===Object.prototype.toString.call(e)},represent:function(e){return e.toString()}})},"6Xbx":function(e,t,n){"use strict";t.b=function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)},n.d(t,"a",function(){return i});var r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])},i=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var i in t=arguments[n])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e}},"6tM8":function(e,t,n){"use strict";n("NhIS")("link",function(e){return function(t){return e(this,"a","href",t)}})},"
 76yl":function(e,t,n){"use strict";var r=n("+pQw"),i=n("A1WY");e.exports=function(e){if("string"!==e&&"number"!==e&&"default"!==e)throw TypeError("Incorrect hint");return i(r(this),"number"!=e)}},"7Fno":function(e,t,n){var r=n("6De9"),i=n("TJLg"),o=n("rMsi"),s=n("CDXM"),a=n("JXkd"),l=n("+pQw");s(s.S,"Reflect",{get:function e(t,n){var s,u,c=arguments.length<3?t:arguments[2];return l(t)===c?t[n]:(s=r.f(t,n))?o(s,"value")?s.value:void 0!==s.get?s.get.call(c):void 0:a(u=i(t))?e(u,n,c):void 0}})},"7RTT":function(e,t,n){(function(t){function n(e){try{if(!t.localStorage)return!1}catch(e){return!1}var n=t.localStorage[e];return null!=n&&"true"===String(n).toLowerCase()}e.exports=function(e,t){if(n("noDeprecation"))return e;var r=!1;return function(){if(!r){if(n("throwDeprecation"))throw new Error(t);n("traceDeprecation")?console.trace(t):console.warn(t),r=!0}return e.apply(this,arguments)}}}).call(t,n("fRUx"))},"7WRt":function(e,t){t.read=function(e,t,n,r,i){var o,s,a=8*i-r-1,l=(1<<a)-1,u=l
 >>1,c=-7,d=n?i-1:0,h=n?-1:1,p=e[t+d];for(d+=h,o=p&(1<<-c)-1,p>>=-c,c+=a;c>0;o=256*o+e[t+d],d+=h,c-=8);for(s=o&(1<<-c)-1,o>>=-c,c+=r;c>0;s=256*s+e[t+d],d+=h,c-=8);if(0===o)o=1-u;else{if(o===l)return s?NaN:1/0*(p?-1:1);s+=Math.pow(2,r),o-=u}return(p?-1:1)*s*Math.pow(2,o-r)},t.write=function(e,t,n,r,i,o){var s,a,l,u=8*o-i-1,c=(1<<u)-1,d=c>>1,h=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,p=r?0:o-1,f=r?1:-1,m=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(a=isNaN(t)?1:0,s=c):(s=Math.floor(Math.log(t)/Math.LN2),t*(l=Math.pow(2,-s))<1&&(s--,l*=2),(t+=s+d>=1?h/l:h*Math.pow(2,1-d))*l>=2&&(s++,l/=2),s+d>=c?(a=0,s=c):s+d>=1?(a=(t*l-1)*Math.pow(2,i),s+=d):(a=t*Math.pow(2,d-1)*Math.pow(2,i),s=0));i>=8;e[n+p]=255&a,p+=f,a/=256,i-=8);for(s=s<<i|a,u+=i;u>0;e[n+p]=255&s,p+=f,s/=256,u-=8);e[n+p-f]|=128*m}},"7Wga":function(e,t,n){"use strict";var r=n("iAzx");e.exports=new r({include:[n("tuZJ")]})},"8Gg3":function(e,t,n){var r=n("ptrv").parseInt,i=n("kFjN").trim,o=n("9BUF"),s=/^[-+]?0[xX]/;e.e
 xports=8!==r(o+"08")||22!==r(o+"0x16")?function(e,t){var n=i(String(e),3);return r(n,t>>>0||(s.test(n)?16:10))}:r},"8H1R":function(e,t,n){"use strict";var r=n("+pQw");e.exports=function(){var e=r(this),t="";return e.global&&(t+="g"),e.ignoreCase&&(t+="i"),e.multiline&&(t+="m"),e.unicode&&(t+="u"),e.sticky&&(t+="y"),t}},"8ofh":function(e,t,n){"use strict";t.a=function(e){return r=e,o};var r,i=n("NePw");function o(){try{return r.apply(this,arguments)}catch(e){return i.a.e=e,i.a}}},"8sYH":function(e,t,n){var r=n("gBtn"),i=n("+pQw"),o=n("TJLg"),s=r.has,a=r.key,l=function(e,t,n){if(s(e,t,n))return!0;var r=o(t);return null!==r&&l(e,r,n)};r.exp({hasMetadata:function(e,t){return l(e,i(t),arguments.length<3?void 0:a(arguments[2]))}})},"9BUF":function(e,t){e.exports="\t\n\v\f\r \xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029\ufeff"},"9ScN":function(e,t,n){"use strict";var r=n("51pc"),i=n("piOq"),o=n("P6IN"),s={};n("gxdV")(s,n("3
 r0D")("iterator"),function(){return this}),e.exports=function(e,t,n){e.prototype=r(s,{next:i(1,n)}),o(e,t+" Iterator")}},"9e9+":function(e,t){t.f={}.propertyIsEnumerable},"9wYb":function(e,t){var n=Math.ceil,r=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?r:n)(e)}},"9zis":function(e,t,n){"use strict";var r=n("iAzx");e.exports=new r({explicit:[n("sbK6"),n("Wa1K"),n("+UpI")]})},A1WY:function(e,t,n){var r=n("JXkd");e.exports=function(e,t){if(!r(e))return e;var n,i;if(t&&"function"==typeof(n=e.toString)&&!r(i=n.call(e)))return i;if("function"==typeof(n=e.valueOf)&&!r(i=n.call(e)))return i;if(!t&&"function"==typeof(n=e.toString)&&!r(i=n.call(e)))return i;throw TypeError("Can't convert object to primitive value")}},A3hK:function(e,t,n){var r=n("CDXM");r(r.S,"Math",{sign:n("tWtF")})},ABVq:function(e,t,n){var r=n("CDXM"),i=Math.atanh;r(r.S+r.F*!(i&&1/i(-0)<0),"Math",{atanh:function(e){return 0==(e=+e)?e:Math.log((1+e)/(1-e))/2}})},AOSR:function(e,t,n){var r=n("CDXM"),i=n("KM3d"
 ),o=String.fromCharCode,s=String.fromCodePoint;r(r.S+r.F*(!!s&&1!=s.length),"String",{fromCodePoint:function(e){for(var t,n=[],r=arguments.length,s=0;r>s;){if(t=+arguments[s++],i(t,1114111)!==t)throw RangeError(t+" is not a valid code point");n.push(t<65536?o(t):o(55296+((t-=65536)>>10),t%1024+56320))}return n.join("")}})},AP4T:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n("xIGM"),i=n("E9/g"),o=n("V7AE"),s=n("grVA"),a=n("mz3w");n.d(t,"Observable",function(){return l});var l=function(){function e(e){this._isScalar=!1,e&&(this._subscribe=e)}return e.prototype.lift=function(t){var n=new e;return n.source=this,n.operator=t,n},e.prototype.subscribe=function(e,t,n){var r=this.operator,a=function(e,t,n){if(e){if(e instanceof i.a)return e;if(e[o.a])return e[o.a]()}return e||t||n?new i.a(e,t,n):new i.a(s.a)}(e,t,n);if(r?r.call(a,this.source):a.add(this.source||!a.syncErrorThrowable?this._subscribe(a):this._trySubscribe(a)),a.syncErrorThrowable&&(a.sync
 ErrorThrowable=!1,a.syncErrorThrown))throw a.syncErrorValue;return a},e.prototype._trySubscribe=function(e){try{return this._subscribe(e)}catch(t){e.syncErrorThrown=!0,e.syncErrorValue=t,e.error(t)}},e.prototype.forEach=function(e,t){var n=this;if(t||(r.a.Rx&&r.a.Rx.config&&r.a.Rx.config.Promise?t=r.a.Rx.config.Promise:r.a.Promise&&(t=r.a.Promise)),!t)throw new Error("no Promise impl found");return new t(function(t,r){var i;i=n.subscribe(function(t){if(i)try{e(t)}catch(e){r(e),i.unsubscribe()}else e(t)},r,t)})},e.prototype._subscribe=function(e){return this.source.subscribe(e)},e.prototype[a.a]=function(){return this},e.prototype.pipe=function(){for(var e=[],t=0;t<arguments.length;t++)e[t-0]=arguments[t];return 0===e.length?this:((n=e)?1===n.length?n[0]:function(e){return n.reduce(function(e,t){return t(e)},e)}:function(){})(this);var n},e.prototype.toPromise=function(e){var t=this;if(e||(r.a.Rx&&r.a.Rx.config&&r.a.Rx.config.Promise?e=r.a.Rx.config.Promise:r.a.Promise&&(e=r.a.Promis
 e)),!e)throw new Error("no Promise impl found");return new e(function(e,n){var r;t.subscribe(function(e){return r=e},function(e){return n(e)},function(){return e(r)})})},e.create=function(t){return new e(t)},e}()},Abrq:function(e,t,n){var r=n("CDXM");r(r.P,"Array",{copyWithin:n("3MMU")}),n("YymB")("copyWithin")},AdFz:function(e,t,n){"use strict";n("NhIS")("fixed",function(e){return function(){return e(this,"tt","","")}})},"B++z":function(e,t,n){var r=n("CDXM");r(r.S,"Number",{isNaN:function(e){return e!=e}})},B1iP:function(e,t,n){"use strict";t.a=function(e){return"function"==typeof e}},BCYq:function(e,t,n){var r=n("pa70"),i=n("Wo2w"),o=n("RT4T"),s=n("rppw"),a=n("UKZQ");e.exports=function(e,t){var n=1==e,l=2==e,u=3==e,c=4==e,d=6==e,h=5==e||d,p=t||a;return function(t,a,f){for(var m,g,v=o(t),y=i(v),b=r(a,f,3),w=s(y.length),x=0,k=n?p(t,w):l?p(t,0):void 0;w>x;x++)if((h||x in y)&&(g=b(m=y[x],x,v),e))if(n)k[x]=g;else if(g)switch(e){case 3:return!0;case 5:return m;case 6:return x;case 2:k.
 push(m)}else if(c)return!1;return d?-1:u||c?c:k}}},BMSF:function(e,t,n){var r=n("CDXM"),i=n("T0iK");r(r.S+r.F*(Number.parseFloat!=i),"Number",{parseFloat:i})},BQSv:function(e,t,n){var r=n("JXkd"),i=n("ptrv").document,o=r(i)&&r(i.createElement);e.exports=function(e){return o?i.createElement(e):{}}},C7jF:function(e,t,n){"use strict";e.exports=o;var r=n("dJzE"),i=n("VIKU");function o(e){if(!(this instanceof o))return new o(e);r.call(this,e),this._transformState=new function(e){this.afterTransform=function(t,n){return function(e,t,n){var r=e._transformState;r.transforming=!1;var i=r.writecb;if(!i)return e.emit("error",new Error("write callback called multiple times"));r.writechunk=null,r.writecb=null,null!==n&&void 0!==n&&e.push(n),i(t);var o=e._readableState;o.reading=!1,(o.needReadable||o.length<o.highWaterMark)&&e._read(o.highWaterMark)}(e,t,n)},this.needTransform=!1,this.transforming=!1,this.writecb=null,this.writechunk=null,this.writeencoding=null}(this);var t=this;this._readableSt
 ate.needReadable=!0,this._readableState.sync=!1,e&&("function"==typeof e.transform&&(this._transform=e.transform),"function"==typeof e.flush&&(this._flush=e.flush)),this.once("prefinish",function(){"function"==typeof this._flush?this._flush(function(e,n){s(t,e,n)}):s(t)})}function s(e,t,n){if(t)return e.emit("error",t);null!==n&&void 0!==n&&e.push(n);var r=e._transformState;if(e._writableState.length)throw new Error("Calling transform done when ws.length != 0");if(r.transforming)throw new Error("Calling transform done when still transforming");return e.push(null)}i.inherits=n("lDCR"),i.inherits(o,r),o.prototype.push=function(e,t){return this._transformState.needTransform=!1,r.prototype.push.call(this,e,t)},o.prototype._transform=function(e,t,n){throw new Error("_transform() is not implemented")},o.prototype._write=function(e,t,n){var r=this._transformState;if(r.writecb=n,r.writechunk=e,r.writeencoding=t,!r.transforming){var i=this._readableState;(r.needTransform||i.needReadable||i.l
 ength<i.highWaterMark)&&this._read(i.highWaterMark)}},o.prototype._read=function(e){var t=this._transformState;null!==t.writechunk&&t.writecb&&!t.transforming?(t.transforming=!0,this._transform(t.writechunk,t.writeencoding,t.afterTransform)):t.needTransform=!0},o.prototype._destroy=function(e,t){var n=this;r.prototype._destroy.call(this,e,function(e){t(e),n.emit("close")})}},CCJL:function(e,t,n){var r=n("+GRi"),i=n("6De9").f;n("QN+J")("getOwnPropertyDescriptor",function(){return function(e,t){return i(r(e),t)}})},CDXM:function(e,t,n){var r=n("ptrv"),i=n("b4gG"),o=n("gxdV"),s=n("lfBE"),a=n("pa70"),l=function(e,t,n){var u,c,d,h,p=e&l.F,f=e&l.G,m=e&l.P,g=e&l.B,v=f?r:e&l.S?r[t]||(r[t]={}):(r[t]||{}).prototype,y=f?i:i[t]||(i[t]={}),b=y.prototype||(y.prototype={});for(u in f&&(n=t),n)d=((c=!p&&v&&void 0!==v[u])?v:n)[u],h=g&&c?a(d,r):m&&"function"==typeof d?a(Function.call,d):d,v&&s(v,u,d,e&l.U),y[u]!=d&&o(y,u,h),m&&b[u]!=d&&(b[u]=d)};r.core=i,l.F=1,l.G=2,l.S=4,l.P=8,l.B=16,l.W=32,l.U=64,l
 .R=128,e.exports=l},CDvF:function(e,t){var n={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==n.call(e)}},Cc13:function(e,t,n){var r=n("ptrv"),i=n("b4gG"),o=n("KGrn"),s=n("qrqn"),a=n("tose").f;e.exports=function(e){var t=i.Symbol||(i.Symbol=o?{}:r.Symbol||{});"_"==e.charAt(0)||e in t||a(t,e,{value:s.f(e)})}},CjAR:function(e,t,n){n("YD56")("replace",2,function(e,t,n){return[function(r,i){"use strict";var o=e(this),s=void 0==r?void 0:r[t];return void 0!==s?s.call(r,o,i):n.call(String(o),r,i)},n]})},CxwD:function(e,t,n){var r=n("JXkd"),i=n("xI8H").onFreeze;n("QN+J")("seal",function(e){return function(t){return e&&r(t)?e(i(t)):t}})},Cz5P:function(e,t,n){"use strict";var r=n("pa70"),i=n("CDXM"),o=n("RT4T"),s=n("ULWX"),a=n("KpI+"),l=n("rppw"),u=n("GVIH"),c=n("fC8q");i(i.S+i.F*!n("UlVq")(function(e){Array.from(e)}),"Array",{from:function(e){var t,n,i,d,h=o(e),p="function"==typeof this?this:Array,f=arguments.length,m=f>1?arguments[1]:void 0,g=void 0!==m,v=0,y=c(h);if
 (g&&(m=r(m,f>2?arguments[2]:void 0,2)),void 0==y||p==Array&&a(y))for(n=new p(t=l(h.length));t>v;v++)u(n,v,g?m(h[v],v):h[v]);else for(d=y.call(h),n=new p;!(i=d.next()).done;v++)u(n,v,g?s(d,m,[i.value,v],!0):i.value);return n.length=v,n}})},DTeS:function(e,t,n){"use strict";n("NhIS")("sub",function(e){return function(){return e(this,"sub","","")}})},Dpa0:function(e,t,n){(function(){var t,r,i,o,s,a,l,u,c,d,h,p,f,m={}.hasOwnProperty;l=n("laki"),u=n("tHiM"),t=n("IDuI"),r=n("Yklm"),c=n("2fm9"),h=n("rrJl"),p=n("QlFQ"),d=n("mQvM"),i=n("eEfA"),o=n("HIA2"),s=n("lTi8"),a=n("Ez+/"),f=n("Mvd/"),e.exports=function(e){function n(e,t){this.stream=e,n.__super__.constructor.call(this,t)}return function(e,t){for(var n in t)m.call(t,n)&&(e[n]=t[n]);function r(){this.constructor=e}r.prototype=t.prototype,e.prototype=new r,e.__super__=t.prototype}(n,f),n.prototype.document=function(e){var t,n,i,o,s,a,c,h;for(n=0,o=(a=e.children).length;n<o;n++)(t=a[n]).isLastRootNode=!1;for(e.children[e.children.length-1
 ].isLastRootNode=!0,h=[],i=0,s=(c=e.children).length;i<s;i++)switch(t=c[i],!1){case!(t instanceof l):h.push(this.declaration(t));break;case!(t instanceof u):h.push(this.docType(t));break;case!(t instanceof r):h.push(this.comment(t));break;case!(t instanceof d):h.push(this.processingInstruction(t));break;default:h.push(this.element(t))}return h},n.prototype.attribute=function(e){return this.stream.write(" "+e.name+'="'+e.value+'"')},n.prototype.cdata=function(e,t){return this.stream.write(this.space(t)+"<![CDATA["+e.text+"]]>"+this.endline(e))},n.prototype.comment=function(e,t){return this.stream.write(this.space(t)+"\x3c!-- "+e.text+" --\x3e"+this.endline(e))},n.prototype.declaration=function(e,t){return this.stream.write(this.space(t)),this.stream.write('<?xml version="'+e.version+'"'),null!=e.encoding&&this.stream.write(' encoding="'+e.encoding+'"'),null!=e.standalone&&this.stream.write(' standalone="'+e.standalone+'"'),this.stream.write(this.spacebeforeslash+"?>"),this.stream.wri
 te(this.endline(e))},n.prototype.docType=function(e,n){var l,u,c,h;if(n||(n=0),this.stream.write(this.space(n)),this.stream.write("<!DOCTYPE "+e.root().name),e.pubID&&e.sysID?this.stream.write(' PUBLIC "'+e.pubID+'" "'+e.sysID+'"'):e.sysID&&this.stream.write(' SYSTEM "'+e.sysID+'"'),e.children.length>0){for(this.stream.write(" ["),this.stream.write(this.endline(e)),u=0,c=(h=e.children).length;u<c;u++)switch(l=h[u],!1){case!(l instanceof i):this.dtdAttList(l,n+1);break;case!(l instanceof o):this.dtdElement(l,n+1);break;case!(l instanceof s):this.dtdEntity(l,n+1);break;case!(l instanceof a):this.dtdNotation(l,n+1);break;case!(l instanceof t):this.cdata(l,n+1);break;case!(l instanceof r):this.comment(l,n+1);break;case!(l instanceof d):this.processingInstruction(l,n+1);break;default:throw new Error("Unknown DTD node type: "+l.constructor.name)}this.stream.write("]")}return this.stream.write(this.spacebeforeslash+">"),this.stream.write(this.endline(e))},n.prototype.element=function(e,n){
 var i,o,s,a,l,u,f;for(a in n||(n=0),f=this.space(n),this.stream.write(f+"<"+e.name),l=e.attributes)m.call(l,a)&&this.attribute(l[a]);if(0===e.children.length||e.children.every(function(e){return""===e.value}))this.stream.write(this.allowEmpty?"></"+e.name+">":this.spacebeforeslash+"/>");else if(this.pretty&&1===e.children.length&&null!=e.children[0].value)this.stream.write(">"),this.stream.write(e.children[0].value),this.stream.write("</"+e.name+">");else{for(this.stream.write(">"+this.newline),o=0,s=(u=e.children).length;o<s;o++)switch(i=u[o],!1){case!(i instanceof t):this.cdata(i,n+1);break;case!(i instanceof r):this.comment(i,n+1);break;case!(i instanceof c):this.element(i,n+1);break;case!(i instanceof h):this.raw(i,n+1);break;case!(i instanceof p):this.text(i,n+1);break;case!(i instanceof d):this.processingInstruction(i,n+1);break;default:throw new Error("Unknown XML node type: "+i.constructor.name)}this.stream.write(f+"</"+e.name+">")}return this.stream.write(this.endline(e))},
 n.prototype.processingInstruction=function(e,t){return this.stream.write(this.space(t)+"<?"+e.target),e.value&&this.stream.write(" "+e.value),this.stream.write(this.spacebeforeslash+"?>"+this.endline(e))},n.prototype.raw=function(e,t){return this.stream.write(this.space(t)+e.value+this.endline(e))},n.prototype.text=function(e,t){return this.stream.write(this.space(t)+e.value+this.endline(e))},n.prototype.dtdAttList=function(e,t){return this.stream.write(this.space(t)+"<!ATTLIST "+e.elementName+" "+e.attributeName+" "+e.attributeType),"#DEFAULT"!==e.defaultValueType&&this.stream.write(" "+e.defaultValueType),e.defaultValue&&this.stream.write(' "'+e.defaultValue+'"'),this.stream.write(this.spacebeforeslash+">"+this.endline(e))},n.prototype.dtdElement=function(e,t){return this.stream.write(this.space(t)+"<!ELEMENT "+e.name+" "+e.value),this.stream.write(this.spacebeforeslash+">"+this.endline(e))},n.prototype.dtdEntity=function(e,t){return this.stream.write(this.space(t)+"<!ENTITY"),e.p
 e&&this.stream.write(" %"),this.stream.write(" "+e.name),e.value?this.stream.write(' "'+e.value+'"'):(e.pubID&&e.sysID?this.stream.write(' PUBLIC "'+e.pubID+'" "'+e.sysID+'"'):e.sysID&&this.stream.write(' SYSTEM "'+e.sysID+'"'),e.nData&&this.stream.write(" NDATA "+e.nData)),this.stream.write(this.spacebeforeslash+">"+this.endline(e))},n.prototype.dtdNotation=function(e,t){return this.stream.write(this.space(t)+"<!NOTATION "+e.name),e.pubID&&e.sysID?this.stream.write(' PUBLIC "'+e.pubID+'" "'+e.sysID+'"'):e.pubID?this.stream.write(' PUBLIC "'+e.pubID+'"'):e.sysID&&this.stream.write(' SYSTEM "'+e.sysID+'"'),this.stream.write(this.spacebeforeslash+">"+this.endline(e))},n.prototype.endline=function(e){return e.isLastRootNode?"":this.newline},n}()}).call(this)},"E9/g":function(e,t,n){"use strict";n.d(t,"a",function(){return l});var r=n("6Xbx"),i=n("B1iP"),o=n("qLnt"),s=n("grVA"),a=n("V7AE"),l=function(e){function t(n,r,i){switch(e.call(this),this.syncErrorValue=null,this.syncErrorThrown=
 !1,this.syncErrorThrowable=!1,this.isStopped=!1,arguments.length){case 0:this.destination=s.a;break;case 1:if(!n){this.destination=s.a;break}if("object"==typeof n){n instanceof t?(this.syncErrorThrowable=n.syncErrorThrowable,this.destination=n,this.destination.add(this)):(this.syncErrorThrowable=!0,this.destination=new u(this,n));break}default:this.syncErrorThrowable=!0,this.destination=new u(this,n,r,i)}}return Object(r.b)(t,e),t.prototype[a.a]=function(){return this},t.create=function(e,n,r){var i=new t(e,n,r);return i.syncErrorThrowable=!1,i},t.prototype.next=function(e){this.isStopped||this._next(e)},t.prototype.error=function(e){this.isStopped||(this.isStopped=!0,this._error(e))},t.prototype.complete=function(){this.isStopped||(this.isStopped=!0,this._complete())},t.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,e.prototype.unsubscribe.call(this))},t.prototype._next=function(e){this.destination.next(e)},t.prototype._error=function(e){this.destination.error(e),
 this.unsubscribe()},t.prototype._complete=function(){this.destination.complete(),this.unsubscribe()},t.prototype._unsubscribeAndRecycle=function(){var e=this._parent,t=this._parents;return this._parent=null,this._parents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parent=e,this._parents=t,this},t}(o.a),u=function(e){function t(t,n,r,o){var a;e.call(this),this._parentSubscriber=t;var l=this;Object(i.a)(n)?a=n:n&&(a=n.next,r=n.error,o=n.complete,n!==s.a&&(l=Object.create(n),Object(i.a)(l.unsubscribe)&&this.add(l.unsubscribe.bind(l)),l.unsubscribe=this.unsubscribe.bind(this))),this._context=l,this._next=a,this._error=r,this._complete=o}return Object(r.b)(t,e),t.prototype.next=function(e){if(!this.isStopped&&this._next){var t=this._parentSubscriber;t.syncErrorThrowable?this.__tryOrSetError(t,this._next,e)&&this.unsubscribe():this.__tryOrUnsub(this._next,e)}},t.prototype.error=function(e){if(!this.isStopped){var t=this._parentSubscriber;if(this._error)t.syncErrorThrowa
 ble?(this.__tryOrSetError(t,this._error,e),this.unsubscribe()):(this.__tryOrUnsub(this._error,e),this.unsubscribe());else{if(!t.syncErrorThrowable)throw this.unsubscribe(),e;t.syncErrorValue=e,t.syncErrorThrown=!0,this.unsubscribe()}}},t.prototype.complete=function(){var e=this;if(!this.isStopped){var t=this._parentSubscriber;if(this._complete){var n=function(){return e._complete.call(e._context)};t.syncErrorThrowable?(this.__tryOrSetError(t,n),this.unsubscribe()):(this.__tryOrUnsub(n),this.unsubscribe())}else this.unsubscribe()}},t.prototype.__tryOrUnsub=function(e,t){try{e.call(this._context,t)}catch(e){throw this.unsubscribe(),e}},t.prototype.__tryOrSetError=function(e,t,n){try{t.call(this._context,n)}catch(t){return e.syncErrorValue=t,e.syncErrorThrown=!0,!0}return!1},t.prototype._unsubscribe=function(){var e=this._parentSubscriber;this._context=null,this._parentSubscriber=null,e.unsubscribe()},t}(l)},EJO3:function(e,t,n){e.exports=n("Osec").Transform},EMG5:function(e,t,n){"use 
 strict";var r=n("vs5U"),i=Object.prototype.toString;e.exports=new r("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:function(e){if(null===e)return!0;var t,n,r,o,s,a=e;for(s=new Array(a.length),t=0,n=a.length;t<n;t+=1){if("[object Object]"!==i.call(r=a[t]))return!1;if(1!==(o=Object.keys(r)).length)return!1;s[t]=[o[0],r[o[0]]]}return!0},construct:function(e){if(null===e)return[];var t,n,r,i,o,s=e;for(o=new Array(s.length),t=0,n=s.length;t<n;t+=1)r=s[t],i=Object.keys(r),o[t]=[i[0],r[i[0]]];return o}})},"Ecq+":function(e,t,n){"use strict";n.d(t,"a",function(){return i});var r=n("6Xbx"),i=function(e){function t(t){e.call(this),this.scheduler=t}return Object(r.b)(t,e),t.create=function(e){return new t(e)},t.dispatch=function(e){e.subscriber.complete()},t.prototype._subscribe=function(e){var n=this.scheduler;if(n)return n.schedule(t.dispatch,0,{subscriber:e});e.complete()},t}(n("AP4T").Observable)},Ed9o:function(e,t,n){var r=n("ptrv").document;e.exports=r&&r.documentElement},"Ez+/":func
 tion(e,t,n){(function(){var t,r={}.hasOwnProperty;t=n("p7eS"),e.exports=function(e){function n(e,t,r){if(n.__super__.constructor.call(this,e),null==t)throw new Error("Missing notation name");if(!r.pubID&&!r.sysID)throw new Error("Public or system identifiers are required for an external entity");this.name=this.stringify.eleName(t),null!=r.pubID&&(this.pubID=this.stringify.dtdPubID(r.pubID)),null!=r.sysID&&(this.sysID=this.stringify.dtdSysID(r.sysID))}return function(e,t){for(var n in t)r.call(t,n)&&(e[n]=t[n]);function i(){this.constructor=e}i.prototype=t.prototype,e.prototype=new i,e.__super__=t.prototype}(n,t),n.prototype.toString=function(e){return this.options.writer.set(e).dtdNotation(this)},n}()}).call(this)},F6ce:function(e,t,n){var r=n("TM12"),i=n("Wy9r");e.exports=function(e,t,n){if(r(t))throw TypeError("String#"+n+" doesn't accept regex!");return String(i(e))}},FALa:function(e,t,n){var r=n("CDXM"),i=n("V/jj"),o=Math.exp;r(r.S+r.F*n("umMR")(function(){return-2e-17!=!Math.si
 nh(-2e-17)}),"Math",{sinh:function(e){return Math.abs(e=+e)<1?(i(e)-i(-e))/2:(o(e-1)-o(-e-1))*(Math.E/2)}})},FyA0:function(e,t,n){n("QN+J")("getOwnPropertyNames",function(){return n("y/ue").f})},GG7F:function(e,t){(function(){"use strict";var e;e=new RegExp(/(?!xmlns)^.*:/),t.normalize=function(e){return e.toLowerCase()},t.firstCharLowerCase=function(e){return e.charAt(0).toLowerCase()+e.slice(1)},t.stripPrefix=function(t){return t.replace(e,"")},t.parseNumbers=function(e){return isNaN(e)||(e=e%1==0?parseInt(e,10):parseFloat(e)),e},t.parseBooleans=function(e){return/^(?:true|false)$/i.test(e)&&(e="true"===e.toLowerCase()),e}}).call(this)},GMpo:function(e,t,n){"use strict";n("NhIS")("italics",function(e){return function(){return e(this,"i","","")}})},GQSG:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n("AP4T"),i=n("dmC+");r.Observable.prototype.map=i.a},GVIH:function(e,t,n){"use strict";var r=n("tose"),i=n("piOq");e.exports=function(e,t,n){t in e
 ?r.f(e,t,i(0,n)):e[t]=n}},GWWY:function(e,t,n){n("mzUQ"),n("b8HQ"),e.exports=n("b4gG").Symbol},GZB0:function(e,t,n){"use strict";n.d(t,"a",function(){return r});var r=n("Oryw").a.of},"Gki+":function(e,t,n){var r=n("CDXM"),i=n("IU2P");r(r.P+r.F*(Date.prototype.toISOString!==i),"Date",{toISOString:i})},H3aY:function(e,t,n){var r=n("CDXM"),i=n("ptrv").isFinite;r(r.S,"Number",{isFinite:function(e){return"number"==typeof e&&i(e)}})},HCkn:function(e,t,n){var r=n("Ps07"),i=n("WGJ/"),o=n("gBtn"),s=n("+pQw"),a=n("TJLg"),l=o.keys,u=o.key,c=function(e,t){var n=l(e,t),o=a(e);if(null===o)return n;var s=c(o,t);return s.length?n.length?i(new r(n.concat(s))):s:n};o.exp({getMetadataKeys:function(e){return c(s(e),arguments.length<2?void 0:u(arguments[1]))}})},HECM:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n("AP4T"),i=n("GZB0");r.Observable.of=i.a},HIA2:function(e,t,n){(function(){var t,r={}.hasOwnProperty;t=n("p7eS"),e.exports=function(e){function n(e,t,r){if
 (n.__super__.constructor.call(this,e),null==t)throw new Error("Missing DTD element name");r||(r="(#PCDATA)"),Array.isArray(r)&&(r="("+r.join(",")+")"),this.name=this.stringify.eleName(t),this.value=this.stringify.dtdElementValue(r)}return function(e,t){for(var n in t)r.call(t,n)&&(e[n]=t[n]);function i(){this.constructor=e}i.prototype=t.prototype,e.prototype=new i,e.__super__=t.prototype}(n,t),n.prototype.toString=function(e){return this.options.writer.set(e).dtdElement(this)},n}()}).call(this)},HK9U:function(e,t,n){"use strict";n("NhIS")("sup",function(e){return function(){return e(this,"sup","","")}})},Hhmb:function(e,t,n){(function(e){!function(t){t.parser=function(e,t){return new o(e,t)},t.SAXParser=o,t.SAXStream=a,t.createStream=function(e,t){return new a(e,t)},t.MAX_BUFFER_LENGTH=65536;var r,i=["comment","sgmlDecl","textNode","tagName","doctype","procInstName","procInstBody","entity","attribName","attribValue","cdata","script"];function o(e,n){if(!(this instanceof o))return ne
 w o(e,n);!function(e){for(var t=0,n=i.length;t<n;t++)e[i[t]]=""}(this),this.q=this.c="",this.bufferCheckPosition=t.MAX_BUFFER_LENGTH,this.opt=n||{},this.opt.lowercase=this.opt.lowercase||this.opt.lowercasetags,this.looseCase=this.opt.lowercase?"toLowerCase":"toUpperCase",this.tags=[],this.closed=this.closedRoot=this.sawRoot=!1,this.tag=this.error=null,this.strict=!!e,this.noscript=!(!e&&!this.opt.noscript),this.state=_.BEGIN,this.strictEntities=this.opt.strictEntities,this.ENTITIES=this.strictEntities?Object.create(t.XML_ENTITIES):Object.create(t.ENTITIES),this.attribList=[],this.opt.xmlns&&(this.ns=Object.create(h)),this.trackPosition=!1!==this.opt.position,this.trackPosition&&(this.position=this.line=this.column=0),A(this,"onready")}t.EVENTS=["text","processinginstruction","sgmldeclaration","doctype","comment","opentagstart","attribute","opentag","closetag","opencdata","cdata","closecdata","error","end","ready","script","opennamespace","closenamespace"],Object.create||(Object.crea
 te=function(e){function t(){}return t.prototype=e,new t}),Object.keys||(Object.keys=function(e){var t=[];for(var n in e)e.hasOwnProperty(n)&&t.push(n);return t}),o.prototype={end:function(){N(this)},write:function(e){if(this.error)throw this.error;if(this.closed)return R(this,"Cannot write after close. Assign an onready handler.");if(null===e)return N(this);"object"==typeof e&&(e=e.toString());for(var n=0,r="";r=z(e,n++),this.c=r,r;)switch(this.trackPosition&&(this.position++,"\n"===r?(this.line++,this.column=0):this.column++),this.state){case _.BEGIN:if(this.state=_.BEGIN_WHITESPACE,"\ufeff"===r)continue;$(this,r);continue;case _.BEGIN_WHITESPACE:$(this,r);continue;case _.TEXT:if(this.sawRoot&&!this.closedRoot){for(var o=n-1;r&&"<"!==r&&"&"!==r;)(r=z(e,n++))&&this.trackPosition&&(this.position++,"\n"===r?(this.line++,this.column=0):this.column++);this.textNode+=e.substring(o,n-1)}"<"!==r||this.sawRoot&&this.closedRoot&&!this.strict?(v(r)||this.sawRoot&&!this.closedRoot||O(this,"Tex
 t data outside of root node."),"&"===r?this.state=_.TEXT_ENTITY:this.textNode+=r):(this.state=_.OPEN_WAKA,this.startTagPosition=this.position);continue;case _.SCRIPT:"<"===r?this.state=_.SCRIPT_ENDING:this.script+=r;continue;case _.SCRIPT_ENDING:"/"===r?this.state=_.CLOSE_TAG:(this.script+="<"+r,this.state=_.SCRIPT);continue;case _.OPEN_WAKA:"!"===r?(this.state=_.SGML_DECL,this.sgmlDecl=""):v(r)||(w(p,r)?(this.state=_.OPEN_TAG,this.tagName=r):"/"===r?(this.state=_.CLOSE_TAG,this.tagName=""):"?"===r?(this.state=_.PROC_INST,this.procInstName=this.procInstBody=""):(O(this,"Unencoded <"),this.startTagPosition+1<this.position&&(r=new Array(this.position-this.startTagPosition).join(" ")+r),this.textNode+="<"+r,this.state=_.TEXT));continue;case _.SGML_DECL:(this.sgmlDecl+r).toUpperCase()===l?(T(this,"onopencdata"),this.state=_.CDATA,this.sgmlDecl="",this.cdata=""):this.sgmlDecl+r==="--"?(this.state=_.COMMENT,this.comment="",this.sgmlDecl=""):(this.sgmlDecl+r).toUpperCase()===u?(this.state=
 _.DOCTYPE,(this.doctype||this.sawRoot)&&O(this,"Inappropriately located doctype declaration"),this.doctype="",this.sgmlDecl=""):">"===r?(T(this,"onsgmldeclaration",this.sgmlDecl),this.sgmlDecl="",this.state=_.TEXT):y(r)?(this.state=_.SGML_DECL_QUOTED,this.sgmlDecl+=r):this.sgmlDecl+=r;continue;case _.SGML_DECL_QUOTED:r===this.q&&(this.state=_.SGML_DECL,this.q=""),this.sgmlDecl+=r;continue;case _.DOCTYPE:">"===r?(this.state=_.TEXT,T(this,"ondoctype",this.doctype),this.doctype=!0):(this.doctype+=r,"["===r?this.state=_.DOCTYPE_DTD:y(r)&&(this.state=_.DOCTYPE_QUOTED,this.q=r));continue;case _.DOCTYPE_QUOTED:this.doctype+=r,r===this.q&&(this.q="",this.state=_.DOCTYPE);continue;case _.DOCTYPE_DTD:this.doctype+=r,"]"===r?this.state=_.DOCTYPE:y(r)&&(this.state=_.DOCTYPE_DTD_QUOTED,this.q=r);continue;case _.DOCTYPE_DTD_QUOTED:this.doctype+=r,r===this.q&&(this.state=_.DOCTYPE_DTD,this.q="");continue;case _.COMMENT:"-"===r?this.state=_.COMMENT_ENDING:this.comment+=r;continue;case _.COMMENT_END
 ING:"-"===r?(this.state=_.COMMENT_ENDED,this.comment=F(this.opt,this.comment),this.comment&&T(this,"oncomment",this.comment),this.comment=""):(this.comment+="-"+r,this.state=_.COMMENT);continue;case _.COMMENT_ENDED:">"!==r?(O(this,"Malformed comment"),this.comment+="--"+r,this.state=_.COMMENT):this.state=_.TEXT;continue;case _.CDATA:"]"===r?this.state=_.CDATA_ENDING:this.cdata+=r;continue;case _.CDATA_ENDING:"]"===r?this.state=_.CDATA_ENDING_2:(this.cdata+="]"+r,this.state=_.CDATA);continue;case _.CDATA_ENDING_2:">"===r?(this.cdata&&T(this,"oncdata",this.cdata),T(this,"onclosecdata"),this.cdata="",this.state=_.TEXT):"]"===r?this.cdata+="]":(this.cdata+="]]"+r,this.state=_.CDATA);continue;case _.PROC_INST:"?"===r?this.state=_.PROC_INST_ENDING:v(r)?this.state=_.PROC_INST_BODY:this.procInstName+=r;continue;case _.PROC_INST_BODY:if(!this.procInstBody&&v(r))continue;"?"===r?this.state=_.PROC_INST_ENDING:this.procInstBody+=r;continue;case _.PROC_INST_ENDING:">"===r?(T(this,"onprocessingin
 struction",{name:this.procInstName,body:this.procInstBody}),this.procInstName=this.procInstBody="",this.state=_.TEXT):(this.procInstBody+="?"+r,this.state=_.PROC_INST_BODY);continue;case _.OPEN_TAG:w(f,r)?this.tagName+=r:(L(this),">"===r?P(this):"/"===r?this.state=_.OPEN_TAG_SLASH:(v(r)||O(this,"Invalid character in tag name"),this.state=_.ATTRIB));continue;case _.OPEN_TAG_SLASH:">"===r?(P(this,!0),B(this)):(O(this,"Forward-slash in opening tag not followed by >"),this.state=_.ATTRIB);continue;case _.ATTRIB:if(v(r))continue;">"===r?P(this):"/"===r?this.state=_.OPEN_TAG_SLASH:w(p,r)?(this.attribName=r,this.attribValue="",this.state=_.ATTRIB_NAME):O(this,"Invalid attribute name");continue;case _.ATTRIB_NAME:"="===r?this.state=_.ATTRIB_VALUE:">"===r?(O(this,"Attribute without value"),this.attribValue=this.attribName,M(this),P(this)):v(r)?this.state=_.ATTRIB_NAME_SAW_WHITE:w(f,r)?this.attribName+=r:O(this,"Invalid attribute name");continue;case _.ATTRIB_NAME_SAW_WHITE:if("="===r)this.st
 ate=_.ATTRIB_VALUE;else{if(v(r))continue;O(this,"Attribute without value"),this.tag.attributes[this.attribName]="",this.attribValue="",T(this,"onattribute",{name:this.attribName,value:""}),this.attribName="",">"===r?P(this):w(p,r)?(this.attribName=r,this.state=_.ATTRIB_NAME):(O(this,"Invalid attribute name"),this.state=_.ATTRIB)}continue;case _.ATTRIB_VALUE:if(v(r))continue;y(r)?(this.q=r,this.state=_.ATTRIB_VALUE_QUOTED):(O(this,"Unquoted attribute value"),this.state=_.ATTRIB_VALUE_UNQUOTED,this.attribValue=r);continue;case _.ATTRIB_VALUE_QUOTED:if(r!==this.q){"&"===r?this.state=_.ATTRIB_VALUE_ENTITY_Q:this.attribValue+=r;continue}M(this),this.q="",this.state=_.ATTRIB_VALUE_CLOSED;continue;case _.ATTRIB_VALUE_CLOSED:v(r)?this.state=_.ATTRIB:">"===r?P(this):"/"===r?this.state=_.OPEN_TAG_SLASH:w(p,r)?(O(this,"No whitespace between attributes"),this.attribName=r,this.attribValue="",this.state=_.ATTRIB_NAME):O(this,"Invalid attribute name");continue;case _.ATTRIB_VALUE_UNQUOTED:if(!b(r
 )){"&"===r?this.state=_.ATTRIB_VALUE_ENTITY_U:this.attribValue+=r;continue}M(this),">"===r?P(this):this.state=_.ATTRIB;continue;case _.CLOSE_TAG:if(this.tagName)">"===r?B(this):w(f,r)?this.tagName+=r:this.script?(this.script+="</"+this.tagName,this.tagName="",this.state=_.SCRIPT):(v(r)||O(this,"Invalid tagname in closing tag"),this.state=_.CLOSE_TAG_SAW_WHITE);else{if(v(r))continue;x(p,r)?this.script?(this.script+="</"+r,this.state=_.SCRIPT):O(this,"Invalid tagname in closing tag."):this.tagName=r}continue;case _.CLOSE_TAG_SAW_WHITE:if(v(r))continue;">"===r?B(this):O(this,"Invalid characters in closing tag");continue;case _.TEXT_ENTITY:case _.ATTRIB_VALUE_ENTITY_Q:case _.ATTRIB_VALUE_ENTITY_U:var s,a;switch(this.state){case _.TEXT_ENTITY:s=_.TEXT,a="textNode";break;case _.ATTRIB_VALUE_ENTITY_Q:s=_.ATTRIB_VALUE_QUOTED,a="attribValue";break;case _.ATTRIB_VALUE_ENTITY_U:s=_.ATTRIB_VALUE_UNQUOTED,a="attribValue"}";"===r?(this[a]+=j(this),this.entity="",this.state=s):w(this.entity.length
 ?g:m,r)?this.entity+=r:(O(this,"Invalid character in entity name"),this[a]+="&"+this.entity+r,this.entity="",this.state=s);continue;default:throw new Error(this,"Unknown state: "+this.state)}return this.position>=this.bufferCheckPosition&&function(e){for(var n=Math.max(t.MAX_BUFFER_LENGTH,10),r=0,o=0,s=i.length;o<s;o++){var a=e[i[o]].length;if(a>n)switch(i[o]){case"textNode":D(e);break;case"cdata":T(e,"oncdata",e.cdata),e.cdata="";break;case"script":T(e,"onscript",e.script),e.script="";break;default:R(e,"Max buffer length exceeded: "+i[o])}r=Math.max(r,a)}e.bufferCheckPosition=t.MAX_BUFFER_LENGTH-r+e.position}(this),this},resume:function(){return this.error=null,this},close:function(){return this.write(null)},flush:function(){D(this),""!==this.cdata&&(T(this,"oncdata",this.cdata),this.cdata=""),""!==this.script&&(T(this,"onscript",this.script),this.script="")}};try{r=n("+Bur").Stream}catch(e){r=function(){}}var s=t.EVENTS.filter(function(e){return"error"!==e&&"end"!==e});function a(
 e,t){if(!(this instanceof a))return new a(e,t);r.apply(this),this._parser=new o(e,t),this.writable=!0,this.readable=!0;var n=this;this._parser.onend=function(){n.emit("end")},this._parser.onerror=function(e){n.emit("error",e),n._parser.error=null},this._decoder=null,s.forEach(function(e){Object.defineProperty(n,"on"+e,{get:function(){return n._parser["on"+e]},set:function(t){if(!t)return n.removeAllListeners(e),n._parser["on"+e]=t,t;n.on(e,t)},enumerable:!0,configurable:!1})})}(a.prototype=Object.create(r.prototype,{constructor:{value:a}})).write=function(t){if("function"==typeof e&&"function"==typeof e.isBuffer&&e.isBuffer(t)){if(!this._decoder){var r=n("/cYh").StringDecoder;this._decoder=new r("utf8")}t=this._decoder.write(t)}return this._parser.write(t.toString()),this.emit("data",t),!0},a.prototype.end=function(e){return e&&e.length&&this.write(e),this._parser.end(),!0},a.prototype.on=function(e,t){var n=this;return n._parser["on"+e]||-1===s.indexOf(e)||(n._parser["on"+e]=functi
 on(){var t=1===arguments.length?[arguments[0]]:Array.apply(null,arguments);t.splice(0,0,e),n.emit.apply(n,t)}),r.prototype.on.call(n,e,t)};var l="[CDATA[",u="DOCTYPE",c="http://www.w3.org/XML/1998/namespace",d="http://www.w3.org/2000/xmlns/",h={xml:c,xmlns:d},p=/[:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/,f=/[:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u00B7\u0300-\u036F\u203F-\u2040.\d-]/,m=/[#:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/,g=/[#:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u00B7\u0300-\u036F\u203F-\u2040.\d-]/;function v(e){return" "===e||"\
 n"===e||"\r"===e||"\t"===e}function y(e){return'"'===e||"'"===e}function b(e){return">"===e||v(e)}function w(e,t){return e.test(t)}function x(e,t){return!w(e,t)}var k,E,C,_=0;for(var S in t.STATE={BEGIN:_++,BEGIN_WHITESPACE:_++,TEXT:_++,TEXT_ENTITY:_++,OPEN_WAKA:_++,SGML_DECL:_++,SGML_DECL_QUOTED:_++,DOCTYPE:_++,DOCTYPE_QUOTED:_++,DOCTYPE_DTD:_++,DOCTYPE_DTD_QUOTED:_++,COMMENT_STARTING:_++,COMMENT:_++,COMMENT_ENDING:_++,COMMENT_ENDED:_++,CDATA:_++,CDATA_ENDING:_++,CDATA_ENDING_2:_++,PROC_INST:_++,PROC_INST_BODY:_++,PROC_INST_ENDING:_++,OPEN_TAG:_++,OPEN_TAG_SLASH:_++,ATTRIB:_++,ATTRIB_NAME:_++,ATTRIB_NAME_SAW_WHITE:_++,ATTRIB_VALUE:_++,ATTRIB_VALUE_QUOTED:_++,ATTRIB_VALUE_CLOSED:_++,ATTRIB_VALUE_UNQUOTED:_++,ATTRIB_VALUE_ENTITY_Q:_++,ATTRIB_VALUE_ENTITY_U:_++,CLOSE_TAG:_++,CLOSE_TAG_SAW_WHITE:_++,SCRIPT:_++,SCRIPT_ENDING:_++},t.XML_ENTITIES={amp:"&",gt:">",lt:"<",quot:'"',apos:"'"},t.ENTITIES={amp:"&",gt:">",lt:"<",quot:'"',apos:"'",AElig:198,Aacute:193,Acirc:194,Agrave:192,Aring:19
 7,Atilde:195,Auml:196,Ccedil:199,ETH:208,Eacute:201,Ecirc:202,Egrave:200,Euml:203,Iacute:205,Icirc:206,Igrave:204,Iuml:207,Ntilde:209,Oacute:211,Ocirc:212,Ograve:210,Oslash:216,Otilde:213,Ouml:214,THORN:222,Uacute:218,Ucirc:219,Ugrave:217,Uuml:220,Yacute:221,aacute:225,acirc:226,aelig:230,agrave:224,aring:229,atilde:227,auml:228,ccedil:231,eacute:233,ecirc:234,egrave:232,eth:240,euml:235,iacute:237,icirc:238,igrave:236,iuml:239,ntilde:241,oacute:243,ocirc:244,ograve:242,oslash:248,otilde:245,ouml:246,szlig:223,thorn:254,uacute:250,ucirc:251,ugrave:249,uuml:252,yacute:253,yuml:255,copy:169,reg:174,nbsp:160,iexcl:161,cent:162,pound:163,curren:164,yen:165,brvbar:166,sect:167,uml:168,ordf:170,laquo:171,not:172,shy:173,macr:175,deg:176,plusmn:177,sup1:185,sup2:178,sup3:179,acute:180,micro:181,para:182,middot:183,cedil:184,ordm:186,raquo:187,frac14:188,frac12:189,frac34:190,iquest:191,times:215,divide:247,OElig:338,oelig:339,Scaron:352,scaron:353,Yuml:376,fnof:402,circ:710,tilde:732,Alpha
 :913,Beta:914,Gamma:915,Delta:916,Epsilon:917,Zeta:918,Eta:919,Theta:920,Iota:921,Kappa:922,Lambda:923,Mu:924,Nu:925,Xi:926,Omicron:927,Pi:928,Rho:929,Sigma:931,Tau:932,Upsilon:933,Phi:934,Chi:935,Psi:936,Omega:937,alpha:945,beta:946,gamma:947,delta:948,epsilon:949,zeta:950,eta:951,theta:952,iota:953,kappa:954,lambda:955,mu:956,nu:957,xi:958,omicron:959,pi:960,rho:961,sigmaf:962,sigma:963,tau:964,upsilon:965,phi:966,chi:967,psi:968,omega:969,thetasym:977,upsih:978,piv:982,ensp:8194,emsp:8195,thinsp:8201,zwnj:8204,zwj:8205,lrm:8206,rlm:8207,ndash:8211,mdash:8212,lsquo:8216,rsquo:8217,sbquo:8218,ldquo:8220,rdquo:8221,bdquo:8222,dagger:8224,Dagger:8225,bull:8226,hellip:8230,permil:8240,prime:8242,Prime:8243,lsaquo:8249,rsaquo:8250,oline:8254,frasl:8260,euro:8364,image:8465,weierp:8472,real:8476,trade:8482,alefsym:8501,larr:8592,uarr:8593,rarr:8594,darr:8595,harr:8596,crarr:8629,lArr:8656,uArr:8657,rArr:8658,dArr:8659,hArr:8660,forall:8704,part:8706,exist:8707,empty:8709,nabla:8711,isin
 :8712,notin:8713,ni:8715,prod:8719,sum:8721,minus:8722,lowast:8727,radic:8730,prop:8733,infin:8734,ang:8736,and:8743,or:8744,cap:8745,cup:8746,int:8747,there4:8756,sim:8764,cong:8773,asymp:8776,ne:8800,equiv:8801,le:8804,ge:8805,sub:8834,sup:8835,nsub:8836,sube:8838,supe:8839,oplus:8853,otimes:8855,perp:8869,sdot:8901,lceil:8968,rceil:8969,lfloor:8970,rfloor:8971,lang:9001,rang:9002,loz:9674,spades:9824,clubs:9827,hearts:9829,diams:9830},Object.keys(t.ENTITIES).forEach(function(e){var n=t.ENTITIES[e],r="number"==typeof n?String.fromCharCode(n):n;t.ENTITIES[e]=r}),t.STATE)t.STATE[t.STATE[S]]=S;function A(e,t,n){e[t]&&e[t](n)}function T(e,t,n){e.textNode&&D(e),A(e,t,n)}function D(e){e.textNode=F(e.opt,e.textNode),e.textNode&&A(e,"ontext",e.textNode),e.textNode=""}function F(e,t){return e.trim&&(t=t.trim()),e.normalize&&(t=t.replace(/\s+/g," ")),t}function R(e,t){return D(e),e.trackPosition&&(t+="\nLine: "+e.line+"\nColumn: "+e.column+"\nChar: "+e.c),t=new Error(t),e.error=t,A(e,"onerr
 or",t),e}function N(e){return e.sawRoot&&!e.closedRoot&&O(e,"Unclosed root tag"),e.state!==_.BEGIN&&e.state!==_.BEGIN_WHITESPACE&&e.state!==_.TEXT&&R(e,"Unexpected end"),D(e),e.c="",e.closed=!0,A(e,"onend"),o.call(e,e.strict,e.opt),e}function O(e,t){if("object"!=typeof e||!(e instanceof o))throw new Error("bad call to strictFail");e.strict&&R(e,t)}function L(e){e.strict||(e.tagName=e.tagName[e.looseCase]());var t=e.tags[e.tags.length-1]||e,n=e.tag={name:e.tagName,attributes:{}};e.opt.xmlns&&(n.ns=t.ns),e.attribList.length=0,T(e,"onopentagstart",n)}function I(e,t){var n=e.indexOf(":")<0?["",e]:e.split(":"),r=n[0],i=n[1];return t&&"xmlns"===e&&(r="xmlns",i=""),{prefix:r,local:i}}function M(e){if(e.strict||(e.attribName=e.attribName[e.looseCase]()),-1!==e.attribList.indexOf(e.attribName)||e.tag.attributes.hasOwnProperty(e.attribName))e.attribName=e.attribValue="";else{if(e.opt.xmlns){var t=I(e.attribName,!0),n=t.local;if("xmlns"===t.prefix)if("xml"===n&&e.attribValue!==c)O(e,"xml: pref
 ix must be bound to "+c+"\nActual: "+e.attribValue);else if("xmlns"===n&&e.attribValue!==d)O(e,"xmlns: prefix must be bound to "+d+"\nActual: "+e.attribValue);else{var r=e.tag,i=e.tags[e.tags.length-1]||e;r.ns===i.ns&&(r.ns=Object.create(i.ns)),r.ns[n]=e.attribValue}e.attribList.push([e.attribName,e.attribValue])}else e.tag.attributes[e.attribName]=e.attribValue,T(e,"onattribute",{name:e.attribName,value:e.attribValue});e.attribName=e.attribValue=""}}function P(e,t){if(e.opt.xmlns){var n=e.tag,r=I(e.tagName);n.prefix=r.prefix,n.local=r.local,n.uri=n.ns[r.prefix]||"",n.prefix&&!n.uri&&(O(e,"Unbound namespace prefix: "+JSON.stringify(e.tagName)),n.uri=r.prefix),n.ns&&(e.tags[e.tags.length-1]||e).ns!==n.ns&&Object.keys(n.ns).forEach(function(t){T(e,"onopennamespace",{prefix:t,uri:n.ns[t]})});for(var i=0,o=e.attribList.length;i<o;i++){var s=e.attribList[i],a=s[0],l=s[1],u=I(a,!0),c=u.prefix,d=""===c?"":n.ns[c]||"",h={name:a,value:l,prefix:c,local:u.local,uri:d};c&&"xmlns"!==c&&!d&&(O(e,
 "Unbound namespace prefix: "+JSON.stringify(c)),h.uri=c),e.tag.attributes[a]=h,T(e,"onattribute",h)}e.attribList.length=0}e.tag.isSelfClosing=!!t,e.sawRoot=!0,e.tags.push(e.tag),T(e,"onopentag",e.tag),t||(e.state=e.noscript||"script"!==e.tagName.toLowerCase()?_.TEXT:_.SCRIPT,e.tag=null,e.tagName=""),e.attribName=e.attribValue="",e.attribList.length=0}function B(e){if(!e.tagName)return O(e,"Weird empty close tag."),e.textNode+="</>",void(e.state=_.TEXT);if(e.script){if("script"!==e.tagName)return e.script+="</"+e.tagName+">",e.tagName="",void(e.state=_.SCRIPT);T(e,"onscript",e.script),e.script=""}var t=e.tags.length,n=e.tagName;e.strict||(n=n[e.looseCase]());for(var r=n;t--&&e.tags[t].name!==r;)O(e,"Unexpected close tag");if(t<0)return O(e,"Unmatched closing tag: "+e.tagName),e.textNode+="</"+e.tagName+">",void(e.state=_.TEXT);e.tagName=n;for(var i=e.tags.length;i-- >t;){var o=e.tag=e.tags.pop();e.tagName=e.tag.name,T(e,"onclosetag",e.tagName);var s={};for(var a in o.ns)s[a]=o.ns[a];
 e.opt.xmlns&&o.ns!==(e.tags[e.tags.length-1]||e).ns&&Object.keys(o.ns).forEach(function(t){T(e,"onclosenamespace",{prefix:t,uri:o.ns[t]})})}0===t&&(e.closedRoot=!0),e.tagName=e.attribValue=e.attribName="",e.attribList.length=0,e.state=_.TEXT}function j(e){var t,n=e.entity,r=n.toLowerCase(),i="";return e.ENTITIES[n]?e.ENTITIES[n]:e.ENTITIES[r]?e.ENTITIES[r]:("#"===(n=r).charAt(0)&&("x"===n.charAt(1)?(n=n.slice(2),i=(t=parseInt(n,16)).toString(16)):(n=n.slice(1),i=(t=parseInt(n,10)).toString(10))),n=n.replace(/^0+/,""),isNaN(t)||i.toLowerCase()!==n?(O(e,"Invalid character entity"),"&"+e.entity+";"):String.fromCodePoint(t))}function $(e,t){"<"===t?(e.state=_.OPEN_WAKA,e.startTagPosition=e.position):v(t)||(O(e,"Non-whitespace before first tag."),e.textNode=t,e.state=_.TEXT)}function z(e,t){var n="";return t<e.length&&(n=e.charAt(t)),n}_=t.STATE,String.fromCodePoint||(k=String.fromCharCode,E=Math.floor,C=function(){var e=[],t=-1,n=arguments.length;if(!n)return"";for(var r="";++t<n;){var 
 i=Number(arguments[t]);if(!isFinite(i)||i<0||i>1114111||E(i)!==i)throw RangeError("Invalid code point: "+i);i<=65535?e.push(i):e.push(55296+((i-=65536)>>10),i%1024+56320),(t+1===n||e.length>16384)&&(r+=k.apply(null,e),e.length=0)}return r},Object.defineProperty?Object.defineProperty(String,"fromCodePoint",{value:C,configurable:!0,writable:!0}):String.fromCodePoint=C)}(t)}).call(t,n("v0OU").Buffer)},HzDK:function(e,t,n){"use strict";var r=n("CDXM"),i=n("OGmI");r(r.P+r.F*!n("bhtb")([].reduce,!0),"Array",{reduce:function(e){return i(this,e,arguments.length,arguments[1],!1)}})},"I+CO":function(e,t,n){var r=n("3r0D")("toPrimitive"),i=Date.prototype;r in i||n("gxdV")(i,r,n("76yl"))},"I/Xp":function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n("AP4T"),i=n("URbD");r.Observable.prototype.share=i.a},IDuI:function(e,t,n){(function(){var t,r={}.hasOwnProperty;t=n("p7eS"),e.exports=function(e){function n(e,t){if(n.__super__.constructor.call(this,e),null==t)throw n
 ew Error("Missing CDATA text");this.text=this.stringify.cdata(t)}return function(e,t){for(var n in t)r.call(t,n)&&(e[n]=t[n]);function i(){this.constructor=e}i.prototype=t.prototype,e.prototype=new i,e.__super__=t.prototype}(n,t),n.prototype.clone=function(){return Object.create(this)},n.prototype.toString=function(e){return this.options.writer.set(e).cdata(this)},n}()}).call(this)},IGm2:function(e,t,n){"use strict";var r=n("CDXM"),i=n("F6ce");r(r.P+r.F*n("TmDx")("includes"),"String",{includes:function(e){return!!~i(this,e,"includes").indexOf(e,arguments.length>1?arguments[1]:void 0)}})},IJ3P:function(e,t,n){var r=n("gBtn"),i=n("+pQw"),o=r.has,s=r.key;r.exp({hasOwnMetadata:function(e,t){return o(e,i(t),arguments.length<3?void 0:s(arguments[2]))}})},INGy:function(e,t,n){"use strict";(function(t,r){var i=n("1Rb4");e.exports=b;var o,s=n("CDvF");b.ReadableState=y,n("rOzH");var a=function(e,t){return e.listeners(t).length},l=n("wHgO"),u=n("zOKz").Buffer,c=t.Uint8Array||function(){},d=n("
 VIKU");d.inherits=n("lDCR");var h=n(1),p=void 0;p=h&&h.debuglog?h.debuglog("stream"):function(){};var f,m=n("yY5i"),g=n("iAGO");d.inherits(b,l);var v=["error","close","destroy","pause","resume"];function y(e,t){o=o||n("dJzE"),this.objectMode=!!(e=e||{}).objectMode,t instanceof o&&(this.objectMode=this.objectMode||!!e.readableObjectMode);var r=e.highWaterMark;this.highWaterMark=r||0===r?r:this.objectMode?16:16384,this.highWaterMark=Math.floor(this.highWaterMark),this.buffer=new m,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.destroyed=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(f||(f=n("/cYh").StringDecoder),this.decoder=new f(e.encoding),this.encoding=e.encoding)}function b(e){if(o=o||n("dJzE"),!(this instanceof
  b))return new b(e);this._readableState=new y(e,this),this.readable=!0,e&&("function"==typeof e.read&&(this._read=e.read),"f

<TRUNCATED>

[3/4] knox git commit: KNOX-1040 - Initial new descriptor and provider config wizard support

Posted by pz...@apache.org.
http://git-wip-us.apache.org/repos/asf/knox/blob/167053bd/gateway-admin-ui/src/app/provider-config-wizard/provider-config-wizard.component.ts
----------------------------------------------------------------------
diff --git a/gateway-admin-ui/src/app/provider-config-wizard/provider-config-wizard.component.ts b/gateway-admin-ui/src/app/provider-config-wizard/provider-config-wizard.component.ts
new file mode 100644
index 0000000..8cb4fb9
--- /dev/null
+++ b/gateway-admin-ui/src/app/provider-config-wizard/provider-config-wizard.component.ts
@@ -0,0 +1,254 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import {Component, OnInit, ViewChild} from '@angular/core';
+import {ResourceTypesService} from "../resourcetypes/resourcetypes.service";
+import {ResourceService} from "../resource/resource.service";
+import {BsModalComponent} from "ng2-bs3-modal";
+import {ProviderConfig} from "../resource-detail/provider-config";
+import {AuthenticationWizard} from "./authentication-wizard";
+import {CategoryWizard} from "./category-wizard";
+import {AuthorizationWizard} from "./authorization-wizard";
+import {IdentityAssertionWizard} from "./identity-assertion-wizard";
+import {HaWizard} from "./ha-wizard";
+import {Resource} from "../resource/resource";
+import {DisplayBindingProviderConfig} from "./display-binding-provider-config";
+
+@Component({
+  selector: 'app-provider-config-wizard',
+  templateUrl: './provider-config-wizard.component.html',
+  styleUrls: ['./provider-config-wizard.component.css']
+})
+export class ProviderConfigWizardComponent implements OnInit {
+
+  private static CATEGORY_STEP = 1;
+  private static TYPE_STEP     = 2;
+  private static PARAMS_STEP   = 3;
+
+  // Provider Categories
+  private static CATEGORY_AUTHENTICATION: string  = 'Authentication';
+  private static CATEGORY_AUTHORIZATION: string   = 'Authorization';
+  private static CATEGORY_ID_ASSERTION: string    = 'Identity Assertion';
+  private static CATEGORY_HA: string              = 'HA';
+  private static providerCategories: string[] = [ ProviderConfigWizardComponent.CATEGORY_AUTHENTICATION,
+                                                  ProviderConfigWizardComponent.CATEGORY_AUTHORIZATION,
+                                                  ProviderConfigWizardComponent.CATEGORY_ID_ASSERTION,
+                                                  ProviderConfigWizardComponent.CATEGORY_HA
+                                                ];
+
+  private static CATEGORY_TYPES: Map<string, CategoryWizard> =
+            new Map([
+              [ProviderConfigWizardComponent.CATEGORY_AUTHENTICATION, new AuthenticationWizard() as CategoryWizard],
+              [ProviderConfigWizardComponent.CATEGORY_AUTHORIZATION,  new AuthorizationWizard() as CategoryWizard],
+              [ProviderConfigWizardComponent.CATEGORY_ID_ASSERTION,   new IdentityAssertionWizard() as CategoryWizard],
+              [ProviderConfigWizardComponent.CATEGORY_HA,             new HaWizard() as CategoryWizard]
+            ]);
+
+  @ViewChild('newProviderConfigModal')
+  childModal: BsModalComponent;
+
+  private step: number = 0;
+
+  name: String = '';
+
+  providers: Array<ProviderConfig> = [];
+
+  selectedCategory: string;
+
+  constructor(private resourceTypesService: ResourceTypesService, private resourceService: ResourceService) { }
+
+  ngOnInit() {
+    this.selectedCategory = ProviderConfigWizardComponent.CATEGORY_AUTHENTICATION; // Default to authentication
+  }
+
+  open(size?: string) {
+    this.reset();
+    this.childModal.open(size ? size : 'lg');
+  }
+
+  reset() {
+    this.step = 0;
+    this.name = '';
+    this.providers = [];
+    this.selectedCategory = ProviderConfigWizardComponent.CATEGORY_AUTHENTICATION;
+  }
+
+  onFinishAdd() {
+    console.debug('Selected provider category: ' + this.selectedCategory);
+
+    let catWizard = this.getCategoryWizard(this.selectedCategory);
+    let type = catWizard ? catWizard.getSelectedType() : 'undefined';
+    console.debug('Selected provider type: ' + type);
+
+    if (catWizard) {
+      let pc: ProviderConfig = catWizard.getProviderConfig();
+      if (pc) {
+        this.providers.push(pc);
+        console.debug('\tProvider Name: ' + pc.name);
+        console.debug('\tProvider Role: ' + pc.role);
+        console.debug('\tProvider Enabled: ' + pc.enabled);
+        if (pc.params) {
+          for (let name of Object.getOwnPropertyNames(pc.params)) {
+            console.debug('\t\tParam: ' + name + ' = ' + pc.params[name]);
+          }
+        } else {
+          console.debug('\tNo Params');
+        }
+      }
+    }
+
+    this.step = 0; // Return to the beginning
+  }
+
+  onClose() {
+    console.debug('Provider Configuration: ' + this.name);
+
+    for (let pc of this.providers) {
+      console.debug('\tProvider: ' + pc.name + ' (' + pc.role + ')');
+    }
+
+    // Identify the new resource
+    let newResource = new Resource();
+    newResource.name = this.name + '.json';
+
+    // Persist the new provider configuration
+    this.resourceService.createResource('Provider Configurations',
+                                        newResource,
+                                        this.resourceService.serializeProviderConfiguration(this.providers, 'json'))
+                        .then(() => {
+                          // Reload the resource list presentation
+                          this.resourceTypesService.selectResourceType('Provider Configurations');
+
+                          // Set the new descriptor as the selected resource
+                          this.resourceService.getProviderConfigResources().then(resources => {
+                            for (let res of resources) {
+                              if (res.name === newResource.name) {
+                                this.resourceService.selectedResource(res);
+                                break;
+                              }
+                            }
+                          });
+                        });
+  }
+
+  getStep(): number {
+    return this.step;
+  }
+
+  onNextStep() {
+    ++this.step;
+  }
+
+  onPreviousStep() {
+    --this.step;
+  }
+
+  hasMoreSteps(): boolean {
+    let result = false;
+    let catWizard = this.getCategoryWizard(this.selectedCategory);
+    if (catWizard) {
+      result = (this.step < (catWizard.getSteps() - 1));
+    }
+    return result;
+  }
+
+  isRootStep(): boolean {
+    return (this.step === 0);
+  }
+
+  isProviderCategoryStep(): boolean {
+    return (this.step === ProviderConfigWizardComponent.CATEGORY_STEP);
+  }
+
+  isProviderTypeStep(): boolean {
+    return (this.step === ProviderConfigWizardComponent.TYPE_STEP);
+  }
+
+  isProviderParamsStep(): boolean {
+    return (this.step === ProviderConfigWizardComponent.PARAMS_STEP);
+  }
+
+  getProviderCategories() : string[] {
+    return ProviderConfigWizardComponent.providerCategories;
+  }
+
+  getCategoryWizard(category?: string): CategoryWizard {
+    return ProviderConfigWizardComponent.CATEGORY_TYPES.get(category ? category : this.selectedCategory);
+  }
+
+  getProviderTypes(category?: string) : string[] {
+    let catWizard = this.getCategoryWizard(category);
+    if (catWizard) {
+      return catWizard.getTypes();
+    } else {
+      console.debug('Unresolved category wizard for ' + (category ? category : this.selectedCategory));
+    }
+    return [];
+  }
+
+  getProviderParams(): string[] {
+    let catWizard = this.getCategoryWizard();
+    if (catWizard) {
+      let pc = catWizard.getProviderConfig();
+      if (pc) {
+        if (pc instanceof DisplayBindingProviderConfig) {
+          let dispPC = pc as DisplayBindingProviderConfig;
+          return dispPC.getDisplayPropertyNames();
+        } else {
+          console.debug('Got Vanilla ProviderConfig');
+          return [];
+        }
+      } else {
+        console.log('No provider config from category wizard ' + typeof(catWizard));
+      }
+    } else {
+      console.debug('Unresolved category wizard for ' + this.selectedCategory);
+    }
+    return [];
+  }
+
+  setProviderParamBinding(name: string, value: string) {
+    let catWizard = this.getCategoryWizard();
+    if (catWizard) {
+      let pc = catWizard.getProviderConfig();
+      if (pc) {
+        if (pc instanceof DisplayBindingProviderConfig) {
+          let dispPC = pc as DisplayBindingProviderConfig;
+          let property = dispPC.getDisplayNamePropertyBinding(name);
+          pc.setParam(property, value);
+          console.debug('Set ProviderConfig param value: ' + property + '=' + value);
+        }
+      }
+    }
+  }
+
+  getProviderParamBinding(name: string): string {
+    let catWizard = this.getCategoryWizard();
+    if (catWizard) {
+      let pc = catWizard.getProviderConfig();
+      if (pc) {
+        if (pc instanceof DisplayBindingProviderConfig) {
+          let dispPC = pc as DisplayBindingProviderConfig;
+          let value = pc.getParam(dispPC.getDisplayNamePropertyBinding(name));
+          return (value ? value : '');
+        }
+      }
+    }
+    return '';
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/knox/blob/167053bd/gateway-admin-ui/src/app/provider-config-wizard/regex-idassertion-provider-config.ts
----------------------------------------------------------------------
diff --git a/gateway-admin-ui/src/app/provider-config-wizard/regex-idassertion-provider-config.ts b/gateway-admin-ui/src/app/provider-config-wizard/regex-idassertion-provider-config.ts
new file mode 100644
index 0000000..a3a4e9b
--- /dev/null
+++ b/gateway-admin-ui/src/app/provider-config-wizard/regex-idassertion-provider-config.ts
@@ -0,0 +1,53 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import {IdentityAssertionProviderConfig} from "./identity-assertion-provider-config";
+
+export class RegexAssertionProviderConfig extends IdentityAssertionProviderConfig {
+
+  static INPUT        = 'Input';
+  static OUTPUT       = 'Output';
+  static LOOKUP       = "Lookup";
+  static ORIG_ON_FAIL = "User Original Lookup on Failure";
+
+  private static displayPropertyNames = [ RegexAssertionProviderConfig.INPUT,
+                                          RegexAssertionProviderConfig.OUTPUT,
+                                          RegexAssertionProviderConfig.LOOKUP,
+                                          RegexAssertionProviderConfig.ORIG_ON_FAIL
+                                        ];
+
+  private static displayPropertyNameBindings: Map<string, string> =
+                                        new Map([
+                                          [RegexAssertionProviderConfig.INPUT,        'input'],
+                                          [RegexAssertionProviderConfig.OUTPUT,       'output'],
+                                          [RegexAssertionProviderConfig.LOOKUP,       'lookup'],
+                                          [RegexAssertionProviderConfig.ORIG_ON_FAIL, 'use.original.on.lookup.failure']
+                                        ]);
+
+  constructor() {
+    super('Regex');
+  }
+
+  getDisplayPropertyNames(): string[] {
+    return RegexAssertionProviderConfig.displayPropertyNames;
+  }
+
+  getDisplayNamePropertyBinding(name: string) {
+    return RegexAssertionProviderConfig.displayPropertyNameBindings.get(name);
+  }
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/knox/blob/167053bd/gateway-admin-ui/src/app/provider-config-wizard/saml-provider-config.ts
----------------------------------------------------------------------
diff --git a/gateway-admin-ui/src/app/provider-config-wizard/saml-provider-config.ts b/gateway-admin-ui/src/app/provider-config-wizard/saml-provider-config.ts
new file mode 100644
index 0000000..c9cffc1
--- /dev/null
+++ b/gateway-admin-ui/src/app/provider-config-wizard/saml-provider-config.ts
@@ -0,0 +1,70 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import {AuthenticationProviderConfig} from "./authentication-provider-config";
+
+export class SAMLProviderConfig extends AuthenticationProviderConfig {
+
+  static CALLBACK_URL          = 'Callback URL';
+  static KEYSTORE_PATH         = 'Keystore Path';
+  static KEYSTORE_PASS         = 'Keystore Password';
+  static PK_PASS               = 'Private Key Password';
+  static ID_PROVIDER_META      = 'Identity Provider Metadata Path';
+  static MAX_AUTH_LIFETIME     = 'Maximum Authentication Lifetime';
+  static SERVICE_PROVIDER_ID   = 'Service Provider Identity';
+  static SERVICE_PROVIDER_META = 'Service Provider Metadata Path';
+  static COOKIE_DOMAIN_SUFFIX = 'Cookie Domain Suffix';
+
+
+  private static displayPropertyNames = [ SAMLProviderConfig.CALLBACK_URL,
+                                          SAMLProviderConfig.KEYSTORE_PATH,
+                                          SAMLProviderConfig.KEYSTORE_PASS,
+                                          SAMLProviderConfig.PK_PASS,
+                                          SAMLProviderConfig.ID_PROVIDER_META,
+                                          SAMLProviderConfig.MAX_AUTH_LIFETIME,
+                                          SAMLProviderConfig.SERVICE_PROVIDER_ID,
+                                          SAMLProviderConfig.SERVICE_PROVIDER_META,
+                                          SAMLProviderConfig.COOKIE_DOMAIN_SUFFIX
+                                        ];
+
+  private static displayPropertyNameBindings: Map<string, string> =
+                                    new Map([
+                                      [SAMLProviderConfig.CALLBACK_URL,          'pac4j.callbackUrl'],
+                                      [SAMLProviderConfig.COOKIE_DOMAIN_SUFFIX,  'pac4j.cookie.domain.suffix'],
+                                      [SAMLProviderConfig.KEYSTORE_PATH,         'saml.keystorePath'],
+                                      [SAMLProviderConfig.KEYSTORE_PASS,         'saml.keystorePassword'],
+                                      [SAMLProviderConfig.PK_PASS,               'saml.privateKeyPassword'],
+                                      [SAMLProviderConfig.ID_PROVIDER_META,      'saml.identityProviderMetadataPath'],
+                                      [SAMLProviderConfig.MAX_AUTH_LIFETIME,     'saml.maximumAuthenticationLifetime'],
+                                      [SAMLProviderConfig.SERVICE_PROVIDER_ID,   'saml.serviceProviderEntityId'],
+                                      [SAMLProviderConfig.SERVICE_PROVIDER_META, 'saml.serviceProviderMetadataPath']
+                                    ]);
+
+
+  constructor() {
+    super('pac4j', AuthenticationProviderConfig.FEDERATION_ROLE);
+  }
+
+  getDisplayPropertyNames(): string[] {
+    return SAMLProviderConfig.displayPropertyNames;
+  }
+
+  getDisplayNamePropertyBinding(name: string) {
+    return SAMLProviderConfig.displayPropertyNameBindings.get(name);
+  }
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/knox/blob/167053bd/gateway-admin-ui/src/app/provider-config-wizard/sso-cookie-provider-config.ts
----------------------------------------------------------------------
diff --git a/gateway-admin-ui/src/app/provider-config-wizard/sso-cookie-provider-config.ts b/gateway-admin-ui/src/app/provider-config-wizard/sso-cookie-provider-config.ts
new file mode 100644
index 0000000..bc54e6a
--- /dev/null
+++ b/gateway-admin-ui/src/app/provider-config-wizard/sso-cookie-provider-config.ts
@@ -0,0 +1,43 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import {AuthenticationProviderConfig} from "./authentication-provider-config";
+
+export class SSOCookieProviderConfig extends AuthenticationProviderConfig {
+
+  static PROVIDER_URL  = 'Provider URL';
+
+  private static displayPropertyNames = [ SSOCookieProviderConfig.PROVIDER_URL ];
+
+  private static displayPropertyNameBindings: Map<string, string> =
+                    new Map([ [SSOCookieProviderConfig.PROVIDER_URL, 'sso.authentication.provider.url'] ]);
+
+
+  constructor() {
+    console.debug('new SSOCookieProviderConfig()');
+    super('SSOCookieProvider', AuthenticationProviderConfig.FEDERATION_ROLE);
+  }
+
+  getDisplayPropertyNames(): string[] {
+    return SSOCookieProviderConfig.displayPropertyNames;
+  }
+
+  getDisplayNamePropertyBinding(name: string) {
+    return SSOCookieProviderConfig.displayPropertyNameBindings.get(name);
+  }
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/knox/blob/167053bd/gateway-admin-ui/src/app/provider-config-wizard/switchcase-idassertion-provider-config.ts
----------------------------------------------------------------------
diff --git a/gateway-admin-ui/src/app/provider-config-wizard/switchcase-idassertion-provider-config.ts b/gateway-admin-ui/src/app/provider-config-wizard/switchcase-idassertion-provider-config.ts
new file mode 100644
index 0000000..5284f13
--- /dev/null
+++ b/gateway-admin-ui/src/app/provider-config-wizard/switchcase-idassertion-provider-config.ts
@@ -0,0 +1,47 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import {IdentityAssertionProviderConfig} from "./identity-assertion-provider-config";
+
+export class SwitchCaseAssertionProviderConfig extends IdentityAssertionProviderConfig {
+
+  static PRINCIPAL_CASE       = 'Principal Case';
+  static GROUP_PRINCIPAL_CASE = 'Group Principal Case';
+
+  private static displayPropertyNames = [ SwitchCaseAssertionProviderConfig.PRINCIPAL_CASE,
+                                          SwitchCaseAssertionProviderConfig.GROUP_PRINCIPAL_CASE
+                                        ];
+
+  private static displayPropertyNameBindings: Map<string, string> =
+                                    new Map([
+                                      [SwitchCaseAssertionProviderConfig.PRINCIPAL_CASE,       'principal.case'],
+                                      [SwitchCaseAssertionProviderConfig.GROUP_PRINCIPAL_CASE, 'group.principal.case']
+                                    ]);
+
+  constructor() {
+    super('SwitchCase');
+  }
+
+  getDisplayPropertyNames(): string[] {
+    return SwitchCaseAssertionProviderConfig.displayPropertyNames;
+  }
+
+  getDisplayNamePropertyBinding(name: string) {
+    return SwitchCaseAssertionProviderConfig.displayPropertyNameBindings.get(name);
+  }
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/knox/blob/167053bd/gateway-admin-ui/src/app/resource-detail/resource-detail.component.html
----------------------------------------------------------------------
diff --git a/gateway-admin-ui/src/app/resource-detail/resource-detail.component.html b/gateway-admin-ui/src/app/resource-detail/resource-detail.component.html
index fc8d1d7..27a09b6 100644
--- a/gateway-admin-ui/src/app/resource-detail/resource-detail.component.html
+++ b/gateway-admin-ui/src/app/resource-detail/resource-detail.component.html
@@ -46,8 +46,8 @@
       <div class="panel-body" *ngIf="isShowProvider(provider)">
         <strong>Role</strong> {{ provider.role }}<br>
         <strong>Enabled</strong>&nbsp;<input type="checkbox"
-                                                     [checked]="isProviderEnabled(provider)"
-                                                     (click)="onProviderEnabled(provider)"><br>
+                                             [checked]="isProviderEnabled(provider)"
+                                             (click)="onProviderEnabled(provider)"><br>
         <div>
           <span [class]="'clickable inline-glyph glyhpicon glyphicon-' + (isShowProviderParams(provider) ? 'minus' : 'plus')"
                 (click)="toggleShowProviderParams(provider)"></span>
@@ -137,7 +137,7 @@
       <div class="panel panel-default col-md-12">
         <span class="col-md-12 pull-left">
           <span class="col-md-sm"><strong>Provider Configuration</strong>&nbsp;</span>
-          <span class="col-md-sm inline-editable" (click)="editModePC=true" *ngIf="!editModePC">{{ descriptor.providerConfig}}</span>
+          <span class="col-md-sm inline-editable" (click)="editModePC=true" *ngIf="!editModePC">{{descriptor.providerConfig}}</span>
           <span class="col-md-sm inline-editor inlineEditForm" *ngIf="editModePC">
             <input type="text" size="40" [(ngModel)]="descriptor.providerConfig">
             <button class="btn btn-xs" (click)="editModePC=false;descriptor.setDirty()">

http://git-wip-us.apache.org/repos/asf/knox/blob/167053bd/gateway-admin-ui/src/app/resource-detail/resource-detail.component.ts
----------------------------------------------------------------------
diff --git a/gateway-admin-ui/src/app/resource-detail/resource-detail.component.ts b/gateway-admin-ui/src/app/resource-detail/resource-detail.component.ts
index 14a5213..2ffaf77 100644
--- a/gateway-admin-ui/src/app/resource-detail/resource-detail.component.ts
+++ b/gateway-admin-ui/src/app/resource-detail/resource-detail.component.ts
@@ -79,6 +79,7 @@ export class ResourceDetailComponent implements OnInit {
 
   setResource(res: Resource) {
       //console.debug('ResourceDetailComponent --> setResource() --> ' + ((res) ? res.name : 'null'));
+      this.referencedProviderConfigError = false;
       this.resource = res;
       this.providers = [];
       this.changedProviders = null;
@@ -201,12 +202,12 @@ export class ResourceDetailComponent implements OnInit {
     let ext = this.resource.name.split('.').pop();
     switch(ext) {
       case 'json': {
-        content = this.serializeProviderConfiguration(this.providers, 'json');
+        content = this.resourceService.serializeProviderConfiguration(this.providers, 'json');
         break;
       }
       case 'yaml':
       case 'yml': {
-        content = this.serializeProviderConfiguration(this.providers, 'yaml');
+        content = this.resourceService.serializeProviderConfiguration(this.providers, 'yaml');
         break;
       }
       case 'xml': {
@@ -215,7 +216,7 @@ export class ResourceDetailComponent implements OnInit {
         console.debug('Replacing XML provider configuration ' + this.resource.name + ' with JSON...');
 
         // Generate the JSON representation of the updated provider configuration
-        content = this.serializeProviderConfiguration(this.providers, 'json');
+        content = this.resourceService.serializeProviderConfiguration(this.providers, 'json');
 
         let replacementResource = new Resource();
         replacementResource.name = this.resource.name.slice(0, -4) + '.json';
@@ -259,12 +260,12 @@ export class ResourceDetailComponent implements OnInit {
     let ext = this.resource.name.split('.').pop();
     switch(ext) {
       case 'json': {
-        content = this.serializeDescriptor(this.descriptor, 'json');
+        content = this.resourceService.serializeDescriptor(this.descriptor, 'json');
         break;
       }
       case 'yaml':
       case 'yml': {
-        content = this.serializeDescriptor(this.descriptor, 'yaml');
+        content = this.resourceService.serializeDescriptor(this.descriptor, 'yaml');
         break;
       }
     }
@@ -281,82 +282,6 @@ export class ResourceDetailComponent implements OnInit {
   }
 
 
-  serializeDescriptor(desc: Descriptor, format: string): string {
-      let serialized: string;
-
-      let tmp = {};
-      if (desc.discoveryAddress) {
-        tmp['discovery-address'] = desc.discoveryAddress;
-      }
-      if (desc.discoveryUser) {
-        tmp['discovery-user'] = desc.discoveryUser;
-      }
-      if (desc.discoveryPassAlias) {
-        tmp['discovery-pwd-alias'] = desc.discoveryPassAlias;
-      }
-      if (desc.discoveryCluster) {
-        tmp['cluster'] = desc.discoveryCluster;
-      }
-      tmp['provider-config-ref'] = desc.providerConfig;
-      tmp['services'] = desc.services;
-
-      switch(format) {
-          case 'json': {
-              serialized =
-                  JSON.stringify(tmp,
-                                 (key, value) => {
-                                   let result = value;
-                                   switch(typeof value) {
-                                     case 'string': // Don't serialize empty string value properties
-                                       result = (value.length > 0) ? value : undefined;
-                                       break;
-                                     case 'object':
-                                       if (Array.isArray(value)) {
-                                         // Don't serialize empty array value properties
-                                         result = (value.length) > 0 ? value : undefined;
-                                       } else {
-                                         // Don't serialize object value properties
-                                         result = (Object.getOwnPropertyNames(value).length > 0) ? value : undefined;
-                                       }
-                                       break;
-                                   }
-                                   return result;
-                                 }, 2);
-              break;
-          }
-          case 'yaml': {
-              let yaml = require('js-yaml');
-              serialized = '---\n' + yaml.safeDump(tmp);
-              break;
-          }
-      }
-
-      return serialized;
-  }
-
-
-  serializeProviderConfiguration(providers: Array<ProviderConfig>, format: string): string {
-    let serialized: string;
-
-    let tmp = {};
-    tmp['providers'] = providers;
-
-    switch(format) {
-        case 'json': {
-            serialized = JSON.stringify(tmp, null, 2);
-            break;
-        }
-        case 'yaml': {
-            let yaml = require('js-yaml');
-            serialized = '---\n' + yaml.dump(tmp);
-            break;
-        }
-    }
-
-    return serialized;
-  }
-
-
   discardChanges() {
     this.resourceService.selectedResource(this.resource);
   }

http://git-wip-us.apache.org/repos/asf/knox/blob/167053bd/gateway-admin-ui/src/app/resource/resource.component.html
----------------------------------------------------------------------
diff --git a/gateway-admin-ui/src/app/resource/resource.component.html b/gateway-admin-ui/src/app/resource/resource.component.html
index e964edf..5e41a3b 100644
--- a/gateway-admin-ui/src/app/resource/resource.component.html
+++ b/gateway-admin-ui/src/app/resource/resource.component.html
@@ -3,7 +3,22 @@
     <table class="table table-hover">
       <thead>
       <tr>
-        <th>{{ getResourceTypeSingularDisplayName(resourceType) }}</th>
+        <th>
+          <span>
+          {{ getResourceTypeSingularDisplayName(resourceType) }}
+          </span>
+          <span class="clickable inline-glyph glyphicon glyphicon-plus-sign btn btn-xs pull-right"
+                *ngIf="resourceType === 'Provider Configurations'"
+                (click)="newProviderConfigModal.open()"
+                title="Create New Provider Configuration"
+                data-toggle="tooltip"></span>
+          <span class="clickable inline-glyph glyphicon glyphicon-plus-sign btn btn-xs pull-right"
+                (click)="isAddingService=true"
+                *ngIf="resourceType === 'Descriptors'"
+                (click)="newDescriptorModal.open()"
+                title="Create New Descriptor"
+                data-toggle="tooltip"></span>
+        </th>
         <th *ngIf="resourceType === 'Topologies'">Timestamp</th>
       </tr>
       </thead>
@@ -19,4 +34,8 @@
       </tbody>
     </table>
   </div>
+  <div>
+    <app-new-desc-wizard #newDescriptorModal></app-new-desc-wizard>
+    <app-provider-config-wizard #newProviderConfigModal></app-provider-config-wizard>
+  </div>
 </div>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/knox/blob/167053bd/gateway-admin-ui/src/app/resource/resource.service.ts
----------------------------------------------------------------------
diff --git a/gateway-admin-ui/src/app/resource/resource.service.ts b/gateway-admin-ui/src/app/resource/resource.service.ts
index 1b36823..88b8de5 100644
--- a/gateway-admin-ui/src/app/resource/resource.service.ts
+++ b/gateway-admin-ui/src/app/resource/resource.service.ts
@@ -20,6 +20,7 @@ import 'rxjs/add/operator/toPromise';
 import { Subject } from 'rxjs/Subject';
 import { Resource } from './resource';
 import {ProviderConfig} from "../resource-detail/provider-config";
+import {Descriptor} from "../resource-detail/descriptor";
 
 
 @Injectable()
@@ -136,7 +137,7 @@ export class ResourceService {
         headers = this.addCsrfHeaders(headers);
         //this.logHeaders(headers);
 
-        let url = ((resType === 'Descriptors') ? this.descriptorsUrl : this.providersUrl) + '/' + name;
+        let url = ((resType === 'Descriptors') ? this.descriptorsUrl : this.providersUrl) + '/' + resource.name;
         return this.http.put(url, content, {headers: headers})
                         .toPromise()
                         .then(() => content)
@@ -160,6 +161,83 @@ export class ResourceService {
             });
     }
 
+
+    serializeDescriptor(desc: Descriptor, format: string): string {
+        let serialized: string;
+
+        let tmp = {};
+        if (desc.discoveryAddress) {
+            tmp['discovery-address'] = desc.discoveryAddress;
+        }
+        if (desc.discoveryUser) {
+            tmp['discovery-user'] = desc.discoveryUser;
+        }
+        if (desc.discoveryPassAlias) {
+            tmp['discovery-pwd-alias'] = desc.discoveryPassAlias;
+        }
+        if (desc.discoveryCluster) {
+            tmp['cluster'] = desc.discoveryCluster;
+        }
+        tmp['provider-config-ref'] = desc.providerConfig;
+        tmp['services'] = desc.services;
+
+        switch(format) {
+            case 'json': {
+                serialized =
+                    JSON.stringify(tmp,
+                        (key, value) => {
+                            let result = value;
+                            switch(typeof value) {
+                                case 'string': // Don't serialize empty string value properties
+                                    result = (value.length > 0) ? value : undefined;
+                                    break;
+                                case 'object':
+                                    if (Array.isArray(value)) {
+                                        // Don't serialize empty array value properties
+                                        result = (value.length) > 0 ? value : undefined;
+                                    } else {
+                                        // Don't serialize object value properties
+                                        result = (Object.getOwnPropertyNames(value).length > 0) ? value : undefined;
+                                    }
+                                    break;
+                            }
+                            return result;
+                        }, 2);
+                break;
+            }
+            case 'yaml': {
+                let yaml = require('js-yaml');
+                serialized = '---\n' + yaml.safeDump(tmp);
+                break;
+            }
+        }
+
+        return serialized;
+    }
+
+
+    serializeProviderConfiguration(providers: Array<ProviderConfig>, format: string): string {
+        let serialized: string;
+
+        let tmp = {};
+        tmp['providers'] = providers;
+
+        switch(format) {
+            case 'json': {
+                serialized = JSON.stringify(tmp, null, 2);
+                break;
+            }
+            case 'yaml': {
+                let yaml = require('js-yaml');
+                serialized = '---\n' + yaml.dump(tmp);
+                break;
+            }
+        }
+
+        return serialized;
+    }
+
+
     addHeaders(headers: HttpHeaders, resName: string): HttpHeaders {
         let ext = resName.split('.').pop();
         switch(ext) {
@@ -200,6 +278,7 @@ export class ResourceService {
     }
 
     selectedResourceType(value: string) {
+        //console.debug('ResourceService --> selectedResourceType(\'' + value +'\')')
         this.selectedResourceTypeSource.next(value);
     }
 

http://git-wip-us.apache.org/repos/asf/knox/blob/167053bd/gateway-applications/src/main/resources/applications/admin-ui/app/index.html
----------------------------------------------------------------------
diff --git a/gateway-applications/src/main/resources/applications/admin-ui/app/index.html b/gateway-applications/src/main/resources/applications/admin-ui/app/index.html
index 6f5a825..aae1ecd 100644
--- a/gateway-applications/src/main/resources/applications/admin-ui/app/index.html
+++ b/gateway-applications/src/main/resources/applications/admin-ui/app/index.html
@@ -11,4 +11,4 @@
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
---><!doctype html><html><head><meta charset="utf-8"><title>Apache Knox Manager</title><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" type="image/x-icon" href="favicon.ico"><meta name="viewport" content="width=device-width,initial-scale=1"><!-- Latest compiled and minified CSS --><link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous"><!-- Optional theme --><link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous"><!-- Custom styles for this template --><link href="assets/sticky-footer.css" rel="stylesheet"><script src="https://ajax.googleapis.com/ajax/libs/jquery/3.0.0/jquery.min.js"></script><!-- Latest compiled and minified JavaScript --><scr
 ipt src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script><script src="assets/vkbeautify.js"></script><link href="styles.2ee5b7f4cd59a6cf015e.bundle.css" rel="stylesheet"/></head><body><div class="navbar-wrapper"><div class="container-fluid"><nav class="navbar navbar-inverse navbar-static-top"><div class="container-fluid"><div class="navbar-header"><button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"><span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span></button> <a class="navbar-brand" href="#"><img style="max-width:200px; margin-top: -9px;" src="assets/knox-logo-transparent.gif" alt="Apache Knox Manager"></a></div></div></nav></div><!-- Content --><resource-management></res
 ource-management><footer class="footer"><div>Knox Manager Version 0.1.0</div><gateway-version></gateway-version></footer><script type="text/javascript" src="inline.49efa231bf249ddc231a.bundle.js"></script><script type="text/javascript" src="scripts.c50bb762c438ae0f8842.bundle.js"></script><script type="text/javascript" src="main.511817c8d904b468f742.bundle.js"></script></div></body></html>
\ No newline at end of file
+--><!doctype html><html><head><meta charset="utf-8"><title>Apache Knox Manager</title><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" type="image/x-icon" href="favicon.ico"><meta name="viewport" content="width=device-width,initial-scale=1"><!-- Latest compiled and minified CSS --><link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous"><!-- Optional theme --><link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous"><!-- Custom styles for this template --><link href="assets/sticky-footer.css" rel="stylesheet"><script src="https://ajax.googleapis.com/ajax/libs/jquery/3.0.0/jquery.min.js"></script><!-- Latest compiled and minified JavaScript --><scr
 ipt src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script><script src="assets/vkbeautify.js"></script><link href="styles.2ee5b7f4cd59a6cf015e.bundle.css" rel="stylesheet"/></head><body><div class="navbar-wrapper"><div class="container-fluid"><nav class="navbar navbar-inverse navbar-static-top"><div class="container-fluid"><div class="navbar-header"><button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"><span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span></button> <a class="navbar-brand" href="#"><img style="max-width:200px; margin-top: -9px;" src="assets/knox-logo-transparent.gif" alt="Apache Knox Manager"></a></div></div></nav></div><!-- Content --><resource-management></res
 ource-management><footer class="footer"><div>Knox Manager Version 0.1.0</div><gateway-version></gateway-version></footer><script type="text/javascript" src="inline.01f49f7d13670ad68dea.bundle.js"></script><script type="text/javascript" src="scripts.c50bb762c438ae0f8842.bundle.js"></script><script type="text/javascript" src="main.db638922a84cdef35de7.bundle.js"></script></div></body></html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/knox/blob/167053bd/gateway-applications/src/main/resources/applications/admin-ui/app/inline.01f49f7d13670ad68dea.bundle.js
----------------------------------------------------------------------
diff --git a/gateway-applications/src/main/resources/applications/admin-ui/app/inline.01f49f7d13670ad68dea.bundle.js b/gateway-applications/src/main/resources/applications/admin-ui/app/inline.01f49f7d13670ad68dea.bundle.js
new file mode 100644
index 0000000..7cbd9f2
--- /dev/null
+++ b/gateway-applications/src/main/resources/applications/admin-ui/app/inline.01f49f7d13670ad68dea.bundle.js
@@ -0,0 +1 @@
+!function(e){var n=window.webpackJsonp;window.webpackJsonp=function(r,c,u){for(var a,i,f,l=0,s=[];l<r.length;l++)t[i=r[l]]&&s.push(t[i][0]),t[i]=0;for(a in c)Object.prototype.hasOwnProperty.call(c,a)&&(e[a]=c[a]);for(n&&n(r,c,u);s.length;)s.shift()();if(u)for(l=0;l<u.length;l++)f=o(o.s=u[l]);return f};var r={},t={2:0};function o(n){if(r[n])return r[n].exports;var t=r[n]={i:n,l:!1,exports:{}};return e[n].call(t.exports,t,t.exports,o),t.l=!0,t.exports}o.e=function(e){var n=t[e];if(0===n)return new Promise(function(e){e()});if(n)return n[2];var r=new Promise(function(r,o){n=t[e]=[r,o]});n[2]=r;var c=document.getElementsByTagName("head")[0],u=document.createElement("script");u.type="text/javascript",u.charset="utf-8",u.async=!0,u.timeout=12e4,o.nc&&u.setAttribute("nonce",o.nc),u.src=o.p+""+e+"."+{0:"db638922a84cdef35de7",1:"aed76669724804835353"}[e]+".chunk.js";var a=setTimeout(i,12e4);function i(){u.onerror=u.onload=null,clearTimeout(a);var n=t[e];0!==n&&(n&&n[1](new Error("Loading chu
 nk "+e+" failed.")),t[e]=void 0)}return u.onerror=u.onload=i,c.appendChild(u),r},o.m=e,o.c=r,o.d=function(e,n,r){o.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},o.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(n,"a",n),n},o.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},o.p="",o.oe=function(e){throw console.error(e),e}}([]);
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/knox/blob/167053bd/gateway-applications/src/main/resources/applications/admin-ui/app/inline.49efa231bf249ddc231a.bundle.js
----------------------------------------------------------------------
diff --git a/gateway-applications/src/main/resources/applications/admin-ui/app/inline.49efa231bf249ddc231a.bundle.js b/gateway-applications/src/main/resources/applications/admin-ui/app/inline.49efa231bf249ddc231a.bundle.js
deleted file mode 100644
index 965479e..0000000
--- a/gateway-applications/src/main/resources/applications/admin-ui/app/inline.49efa231bf249ddc231a.bundle.js
+++ /dev/null
@@ -1 +0,0 @@
-!function(e){var n=window.webpackJsonp;window.webpackJsonp=function(r,c,u){for(var a,i,f,l=0,s=[];l<r.length;l++)t[i=r[l]]&&s.push(t[i][0]),t[i]=0;for(a in c)Object.prototype.hasOwnProperty.call(c,a)&&(e[a]=c[a]);for(n&&n(r,c,u);s.length;)s.shift()();if(u)for(l=0;l<u.length;l++)f=o(o.s=u[l]);return f};var r={},t={2:0};function o(n){if(r[n])return r[n].exports;var t=r[n]={i:n,l:!1,exports:{}};return e[n].call(t.exports,t,t.exports,o),t.l=!0,t.exports}o.e=function(e){var n=t[e];if(0===n)return new Promise(function(e){e()});if(n)return n[2];var r=new Promise(function(r,o){n=t[e]=[r,o]});n[2]=r;var c=document.getElementsByTagName("head")[0],u=document.createElement("script");u.type="text/javascript",u.charset="utf-8",u.async=!0,u.timeout=12e4,o.nc&&u.setAttribute("nonce",o.nc),u.src=o.p+""+e+"."+{0:"511817c8d904b468f742",1:"aed76669724804835353"}[e]+".chunk.js";var a=setTimeout(i,12e4);function i(){u.onerror=u.onload=null,clearTimeout(a);var n=t[e];0!==n&&(n&&n[1](new Error("Loading chu
 nk "+e+" failed.")),t[e]=void 0)}return u.onerror=u.onload=i,c.appendChild(u),r},o.m=e,o.c=r,o.d=function(e,n,r){o.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},o.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(n,"a",n),n},o.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},o.p="",o.oe=function(e){throw console.error(e),e}}([]);
\ No newline at end of file


[4/4] knox git commit: KNOX-1040 - Initial new descriptor and provider config wizard support

Posted by pz...@apache.org.
KNOX-1040 - Initial new descriptor and provider config wizard support


Project: http://git-wip-us.apache.org/repos/asf/knox/repo
Commit: http://git-wip-us.apache.org/repos/asf/knox/commit/167053bd
Tree: http://git-wip-us.apache.org/repos/asf/knox/tree/167053bd
Diff: http://git-wip-us.apache.org/repos/asf/knox/diff/167053bd

Branch: refs/heads/master
Commit: 167053bd1ecbb403de8b8c377c8c0ede66b22956
Parents: 8c919a4
Author: Phil Zampino <pz...@apache.org>
Authored: Tue Mar 6 11:35:51 2018 -0500
Committer: Phil Zampino <pz...@apache.org>
Committed: Fri Mar 9 11:00:28 2018 -0500

----------------------------------------------------------------------
 gateway-admin-ui/src/app/app.module.ts          |   8 +-
 .../new-desc-wizard.component.css               |   5 +
 .../new-desc-wizard.component.html              | 105 ++++++++
 .../new-desc-wizard.component.spec.ts           |  25 ++
 .../new-desc-wizard.component.ts                | 166 ++++++++++++
 .../acls-authzn-provider-config.ts              |  51 ++++
 .../authentication-provider-config.ts           |  33 +++
 .../authentication-wizard.ts                    |  95 +++++++
 .../authorization-wizard.ts                     |  61 +++++
 .../cas-provider-config.ts                      |  54 ++++
 .../provider-config-wizard/category-wizard.ts   |  39 +++
 .../concat-idassertion-provider-config.ts       |  47 ++++
 .../default-idassertion-provider-config.ts      |  49 ++++
 .../display-binding-provider-config.ts          |  51 ++++
 .../grouplookup-id-assertion-provider-config.ts |  43 ++++
 .../src/app/provider-config-wizard/ha-wizard.ts |  46 ++++
 .../identity-assertion-provider-config.ts       |  32 +++
 .../identity-assertion-wizard.ts                |  75 ++++++
 .../jwt-provider-config.ts                      |  43 ++++
 .../kerberos-provider-config.ts                 |  81 ++++++
 .../ldap-provider-config.ts                     |  59 +++++
 .../oauth-provider-config.ts                    |  48 ++++
 .../oidc-provider-config.ts                     |  67 +++++
 .../pam-provider-config.ts                      |  48 ++++
 .../preauth-sso-provider-config.ts              |  55 ++++
 .../provider-config-wizard.component.css        |   5 +
 .../provider-config-wizard.component.html       | 104 ++++++++
 .../provider-config-wizard.component.spec.ts    |  25 ++
 .../provider-config-wizard.component.ts         | 254 +++++++++++++++++++
 .../regex-idassertion-provider-config.ts        |  53 ++++
 .../saml-provider-config.ts                     |  70 +++++
 .../sso-cookie-provider-config.ts               |  43 ++++
 .../switchcase-idassertion-provider-config.ts   |  47 ++++
 .../resource-detail.component.html              |   6 +-
 .../resource-detail.component.ts                |  87 +------
 .../src/app/resource/resource.component.html    |  21 +-
 .../src/app/resource/resource.service.ts        |  81 +++++-
 .../applications/admin-ui/app/index.html        |   2 +-
 .../app/inline.01f49f7d13670ad68dea.bundle.js   |   1 +
 .../app/inline.49efa231bf249ddc231a.bundle.js   |   1 -
 .../app/main.511817c8d904b468f742.bundle.js     |   1 -
 .../app/main.db638922a84cdef35de7.bundle.js     |   1 +
 42 files changed, 2097 insertions(+), 91 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/knox/blob/167053bd/gateway-admin-ui/src/app/app.module.ts
----------------------------------------------------------------------
diff --git a/gateway-admin-ui/src/app/app.module.ts b/gateway-admin-ui/src/app/app.module.ts
index fc682a3..ede59e7 100644
--- a/gateway-admin-ui/src/app/app.module.ts
+++ b/gateway-admin-ui/src/app/app.module.ts
@@ -38,7 +38,9 @@ import { ResourceComponent } from './resource/resource.component';
 import { ResourceService } from './resource/resource.service';
 import { DescriptorComponent } from './descriptor/descriptor.component';
 import { ResourceDetailComponent } from './resource-detail/resource-detail.component';
-import { ProviderConfigSelectorComponent } from './provider-config-selector/provider-config-selector.component'
+import { ProviderConfigSelectorComponent } from './provider-config-selector/provider-config-selector.component';
+import { NewDescWizardComponent } from './new-desc-wizard/new-desc-wizard.component';
+import { ProviderConfigWizardComponent } from './provider-config-wizard/provider-config-wizard.component'
 
 @NgModule({
   imports: [ BrowserModule,
@@ -59,7 +61,9 @@ import { ProviderConfigSelectorComponent } from './provider-config-selector/prov
                   ResourceComponent,
                   DescriptorComponent,
                   ResourceDetailComponent,
-                  ProviderConfigSelectorComponent
+                  ProviderConfigSelectorComponent,
+                  NewDescWizardComponent,
+                  ProviderConfigWizardComponent
     ],
   providers: [ TopologyService,
                GatewayVersionService,

http://git-wip-us.apache.org/repos/asf/knox/blob/167053bd/gateway-admin-ui/src/app/new-desc-wizard/new-desc-wizard.component.css
----------------------------------------------------------------------
diff --git a/gateway-admin-ui/src/app/new-desc-wizard/new-desc-wizard.component.css b/gateway-admin-ui/src/app/new-desc-wizard/new-desc-wizard.component.css
new file mode 100644
index 0000000..0cc494a
--- /dev/null
+++ b/gateway-admin-ui/src/app/new-desc-wizard/new-desc-wizard.component.css
@@ -0,0 +1,5 @@
+td {
+    border-collapse: collapse;
+    padding: 8px;
+    vertical-align: top;
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/knox/blob/167053bd/gateway-admin-ui/src/app/new-desc-wizard/new-desc-wizard.component.html
----------------------------------------------------------------------
diff --git a/gateway-admin-ui/src/app/new-desc-wizard/new-desc-wizard.component.html b/gateway-admin-ui/src/app/new-desc-wizard/new-desc-wizard.component.html
new file mode 100644
index 0000000..4e6a407
--- /dev/null
+++ b/gateway-admin-ui/src/app/new-desc-wizard/new-desc-wizard.component.html
@@ -0,0 +1,105 @@
+<bs-modal (onClose)="onClose()" #newDescriptorModal xmlns="http://www.w3.org/1999/html">
+  <bs-modal-header [showDismiss]="true">
+    <label class="modal-title">Create a New Descriptor</label>
+  </bs-modal-header>
+  <bs-modal-body>
+    <div class="panel-body">
+
+      <div> <!-- Descriptor Name -->
+        <strong>Name</strong> <input type="text" [(ngModel)]="descriptorName">
+      </div> <!-- Descriptor Name -->
+
+      <br>
+
+      <div> <!-- Provider Config reference -->
+          <span class="col-md-sm pull-left"><strong>Provider Configuration</strong>&nbsp;</span>
+          <span class="col-md-sm inline-editable" (click)="editModePC=true" *ngIf="!editModePC">{{descriptor.providerConfig}}</span>
+          <span class="col-md-sm inline-editor inlineEditForm" *ngIf="editModePC">
+            <input type="text" size="40" [(ngModel)]="descriptor.providerConfig">
+            <button class="btn btn-xs" (click)="editModePC=false;descriptor.setDirty()">
+              <span class="glyphicon glyphicon-ok"></span>
+            </button>
+            <button class="btn btn-xs" (click)="editModePC=false">
+              <span class="glyphicon glyphicon-remove"></span>
+            </button>
+          </span>
+          &nbsp;
+          <button id="chooseProviderConfig"
+                  class="btn btn-xs"
+                  (click)="chooseProviderConfigModal.open(descriptor, 'sm')"
+                  [disabled]="editModePC"
+                  type="submit"
+                  data-toggle="tooltip"
+                  title="Choose Provider Configuration">
+            <span class="glyphicon glyphicon-edit"></span>
+          </button>
+        <app-provider-config-selector #choosePC></app-provider-config-selector>
+      </div> <!-- Provider Config reference -->
+
+      <br>
+
+      <!-- Services -->
+      <div>
+        <span [class]="'clickable inline-glyph glyhpicon glyphicon-' + (this['showServices'] ? 'minus' : 'plus')"
+              (click)="toggleBoolean('showServices')"></span>
+        <span (click)="toggleBoolean('showServices')"><strong>Services</strong></span>
+      </div>
+      <div class="panel panel-default col-md-12" *ngIf="this['showServices']">
+            <table>
+                <tr>
+                  <td *ngFor="let col of getServiceDisplayColumns()">
+                    <div *ngFor="let supportedService of col">
+                      <input type="checkbox"
+                             [checked]="isSelected(supportedService)"
+                             (click)="toggleServiceSelected(supportedService)">
+                      {{ supportedService }}
+                    </div>
+                  </td>
+                </tr>
+            </table>
+      </div> <!-- Services -->
+
+      <br>
+
+      <!-- Discovery -->
+      <div>
+        <span [class]="'clickable inline-glyph glyhpicon glyphicon-' + (this['showDiscovery'] ? 'minus' : 'plus')"
+              (click)="toggleBoolean('showDiscovery')"></span>
+        <span (click)="toggleBoolean('showDiscovery')"><strong>Discovery</strong></span>
+      </div>
+      <div class="panel panel-default col-md-12" *ngIf="this['showDiscovery']">
+        <div>
+          <table>
+            <tr>
+              <td><strong>Address</strong></td>
+              <td><input type="text" [(ngModel)]="descriptor.discoveryAddress"></td>
+            </tr>
+            <tr>
+              <td><strong>Cluster</strong></td>
+              <td><input type="text" [(ngModel)]="descriptor.discoveryCluster"></td>
+            </tr>
+            <tr>
+              <td><strong>Username</strong></td>
+              <td><input type="text" [(ngModel)]="descriptor.discoveryUser"></td>
+            </tr>
+            <tr>
+              <td><strong>Password Alias</strong></td>
+              <td><input type="text" [(ngModel)]="descriptor.discoveryPassAlias"></td>
+            </tr>
+          </table>
+        </div>
+      </div> <!-- Discovery -->
+
+    </div>
+  </bs-modal-body>
+  <bs-modal-footer>
+    <button type="button"
+            class="btn btn-default btn-sm"
+            data-dismiss="newDescriptorModal"
+            (click)="newDescriptorModal.dismiss()">Cancel</button>
+    <button type="button"
+            class="btn btn-primary btn-sm"
+            [disabled]="!descriptor || !descriptorName"
+            (click)="newDescriptorModal.close()">Ok</button>
+  </bs-modal-footer>
+</bs-modal>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/knox/blob/167053bd/gateway-admin-ui/src/app/new-desc-wizard/new-desc-wizard.component.spec.ts
----------------------------------------------------------------------
diff --git a/gateway-admin-ui/src/app/new-desc-wizard/new-desc-wizard.component.spec.ts b/gateway-admin-ui/src/app/new-desc-wizard/new-desc-wizard.component.spec.ts
new file mode 100644
index 0000000..b80e628
--- /dev/null
+++ b/gateway-admin-ui/src/app/new-desc-wizard/new-desc-wizard.component.spec.ts
@@ -0,0 +1,25 @@
+import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { NewDescWizardComponent } from './new-desc-wizard.component';
+
+describe('NewDescWizardComponent', () => {
+  let component: NewDescWizardComponent;
+  let fixture: ComponentFixture<NewDescWizardComponent>;
+
+  beforeEach(async(() => {
+    TestBed.configureTestingModule({
+      declarations: [ NewDescWizardComponent ]
+    })
+    .compileComponents();
+  }));
+
+  beforeEach(() => {
+    fixture = TestBed.createComponent(NewDescWizardComponent);
+    component = fixture.componentInstance;
+    fixture.detectChanges();
+  });
+
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
+});

http://git-wip-us.apache.org/repos/asf/knox/blob/167053bd/gateway-admin-ui/src/app/new-desc-wizard/new-desc-wizard.component.ts
----------------------------------------------------------------------
diff --git a/gateway-admin-ui/src/app/new-desc-wizard/new-desc-wizard.component.ts b/gateway-admin-ui/src/app/new-desc-wizard/new-desc-wizard.component.ts
new file mode 100644
index 0000000..b697351
--- /dev/null
+++ b/gateway-admin-ui/src/app/new-desc-wizard/new-desc-wizard.component.ts
@@ -0,0 +1,166 @@
+import {Component, OnInit, ViewChild} from '@angular/core';
+import {BsModalComponent} from "ng2-bs3-modal";
+
+import { ProviderConfigSelectorComponent } from "../provider-config-selector/provider-config-selector.component";
+import {Descriptor} from "../resource-detail/descriptor";
+import {ResourceService} from "../resource/resource.service";
+import {Resource} from "../resource/resource";
+import {ResourceTypesService} from "../resourcetypes/resourcetypes.service";
+
+@Component({
+  selector: 'app-new-desc-wizard',
+  templateUrl: './new-desc-wizard.component.html',
+  styleUrls: ['./new-desc-wizard.component.css']
+})
+export class NewDescWizardComponent implements OnInit {
+
+  // The maximum length of columns in the service selection display
+  private static SERVICE_COLS_MAX_LENGTH = 10;
+
+  // The set of supported services which can be declared in a descriptor
+  private static supportedServices: string[] = [ 'AMBARI',
+                                                 'AMBARIUI',
+                                                 'ATLAS',
+                                                 'ATLAS-API',
+                                                 'DRUID-BROKER',
+                                                 'DRUID-COORDINATOR',
+                                                 'DRUID-COORDINATOR-UI',
+                                                 'DRUID-OVERLORD',
+                                                 'DRUID-OVERLORD-UI',
+                                                 'DRUID-ROUTER',
+                                                 'FALCON',
+                                                 'HBASEUI',
+                                                 'HDFSUI',
+                                                 'HIVE',
+                                                 'JOBTRACKER',
+                                                 'JOBHISTORYUI',
+                                                 'LIVYSERVER',
+                                                 'NAMENODE',
+                                                 'OOZIE',
+                                                 'OOZIEUI',
+                                                 'RANGER',
+                                                 'RANGERUI',
+                                                 'RESOURCEMANAGER',
+                                                 'SOLR',
+                                                 'SPARKHISTORYUI',
+                                                 'STORM',
+                                                 'STORMLOGVIEWER',
+                                                 'SUPERSET',
+                                                 'WEBHBASE',
+                                                 'WEBHCAT',
+                                                 'WEBHDFS',
+                                                 'YARNUI',
+                                                 'ZEPPELIN',
+                                                 'ZEPPELINUI',
+                                                 'ZEPPELINWS'] ;
+
+  @ViewChild('newDescriptorModal')
+  childModal: BsModalComponent;
+
+  @ViewChild('choosePC')
+  chooseProviderConfigModal: ProviderConfigSelectorComponent;
+
+  resource: Resource;
+
+  descriptorName: string;
+
+  descriptor: Descriptor;
+
+  editModePC: boolean;
+
+  constructor(private resourceTypesService: ResourceTypesService, private resourceService: ResourceService) { }
+
+  ngOnInit() {
+    this.descriptor = new Descriptor();
+  }
+
+  open(size?: string) {
+    this.reset();
+    this.childModal.open(size ? size : 'lg');
+  }
+
+  reset() {
+    this['showDiscovery'] = false;
+    this['showServices'] = true;
+    this.resource = new Resource();
+    this.descriptor = new Descriptor();
+    this.descriptorName = '';
+
+    // Reset any previously-selected services
+    for (let serviceName of NewDescWizardComponent.supportedServices) {
+      if (this.isSelected(serviceName)) {
+        // Clear the service selection
+        this.toggleServiceSelected(serviceName);
+      }
+    }
+  }
+
+  onClose() {
+      // Set the service declarations on the descriptor
+      for (let serviceName of NewDescWizardComponent.supportedServices) {
+          if (this.isSelected(serviceName)) {
+              // Add the selected service to the descriptor
+              this.descriptor.addService(serviceName);
+
+              // Clear the service selection
+              this.toggleServiceSelected(serviceName);
+          }
+      }
+
+      // Identify the new resource
+      let newResource = new Resource();
+      newResource.name = this.descriptorName + '.json';
+
+      // Persist the new descriptor
+      this.resourceService.createResource('Descriptors',
+                                          newResource,
+                                          this.resourceService.serializeDescriptor(this.descriptor, 'json'))
+                          .then(() => {
+                            // Reload the resource list presentation
+                            this.resourceTypesService.selectResourceType('Descriptors');
+
+                            // Set the new descriptor as the selected resource
+                            this.resourceService.getDescriptorResources().then(resources => {
+                              for (let res of resources) {
+                                if (res.name === newResource.name) {
+                                  this.resourceService.selectedResource(res);
+                                  break;
+                                }
+                              }
+                            });
+                          });
+  }
+
+  getServiceDisplayColumns() {
+    let cols = [];
+    let svcCount = NewDescWizardComponent.supportedServices.length;
+    let colCount = svcCount / NewDescWizardComponent.SERVICE_COLS_MAX_LENGTH;
+
+    let svcIndex = 0;
+
+    for (let colIndex = 0 ; colIndex < colCount; colIndex++) {
+      cols[colIndex] = [];
+      for (let j = 0; j < NewDescWizardComponent.SERVICE_COLS_MAX_LENGTH; j++) {
+        cols[colIndex][j] = NewDescWizardComponent.supportedServices[svcIndex++];
+        if (svcIndex >= svcCount) {
+          break;
+        }
+      }
+    }
+
+    return cols;
+  }
+
+  toggleServiceSelected(serviceName: string) {
+    this[serviceName + '_selected'] = !this.isSelected(serviceName)
+  }
+
+  isSelected(serviceName: string) {
+    return this[serviceName + '_selected'];
+  }
+
+  toggleBoolean(propertyName: string) {
+      this[propertyName] = !this[propertyName];
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/knox/blob/167053bd/gateway-admin-ui/src/app/provider-config-wizard/acls-authzn-provider-config.ts
----------------------------------------------------------------------
diff --git a/gateway-admin-ui/src/app/provider-config-wizard/acls-authzn-provider-config.ts b/gateway-admin-ui/src/app/provider-config-wizard/acls-authzn-provider-config.ts
new file mode 100644
index 0000000..fc5a2f5
--- /dev/null
+++ b/gateway-admin-ui/src/app/provider-config-wizard/acls-authzn-provider-config.ts
@@ -0,0 +1,51 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import {DisplayBindingProviderConfig} from "./display-binding-provider-config";
+
+export class ACLsAuthznProviderConfig extends DisplayBindingProviderConfig {
+
+  private static DEFAULT_MODE: string = 'Default Mode';
+  private static DEFAULT_ACL: string  = 'Default ACL';
+
+  private static displayPropertyNames: string[] = [ ACLsAuthznProviderConfig.DEFAULT_MODE,
+                                                    ACLsAuthznProviderConfig.DEFAULT_ACL
+                                                  ];
+
+  private static displayPropertyNameBindings: Map<string, string> =
+                    new Map([ [ACLsAuthznProviderConfig.DEFAULT_ACL,  'acl'],
+                              [ACLsAuthznProviderConfig.DEFAULT_MODE, 'acl.mode']
+                            ]);
+
+  constructor() {
+    super();
+    console.debug('new ACLsAuthznProviderConfig()');
+    this.name    = 'AclsAuthz';
+    this.role    = 'authorization';
+    this.enabled = 'true';
+    this.params  = {};
+  }
+
+  getDisplayPropertyNames(): string[] {
+    return ACLsAuthznProviderConfig.displayPropertyNames;
+  }
+
+  getDisplayNamePropertyBinding(name: string) {
+    return ACLsAuthznProviderConfig.displayPropertyNameBindings.get(name);
+  }
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/knox/blob/167053bd/gateway-admin-ui/src/app/provider-config-wizard/authentication-provider-config.ts
----------------------------------------------------------------------
diff --git a/gateway-admin-ui/src/app/provider-config-wizard/authentication-provider-config.ts b/gateway-admin-ui/src/app/provider-config-wizard/authentication-provider-config.ts
new file mode 100644
index 0000000..59923ff
--- /dev/null
+++ b/gateway-admin-ui/src/app/provider-config-wizard/authentication-provider-config.ts
@@ -0,0 +1,33 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import {DisplayBindingProviderConfig} from "./display-binding-provider-config";
+
+export abstract class AuthenticationProviderConfig extends DisplayBindingProviderConfig {
+
+  static AUTHENTICATION_ROLE: string = 'authentication';
+  static FEDERATION_ROLE: string     = 'federation';
+
+  constructor(name: string, role?: string) {
+    super();
+    this.name = name;
+    this.role = role ? role : AuthenticationProviderConfig.AUTHENTICATION_ROLE;
+    this.params = {};
+    this.enabled = 'true'; // enable by default
+  }
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/knox/blob/167053bd/gateway-admin-ui/src/app/provider-config-wizard/authentication-wizard.ts
----------------------------------------------------------------------
diff --git a/gateway-admin-ui/src/app/provider-config-wizard/authentication-wizard.ts b/gateway-admin-ui/src/app/provider-config-wizard/authentication-wizard.ts
new file mode 100644
index 0000000..576fc56
--- /dev/null
+++ b/gateway-admin-ui/src/app/provider-config-wizard/authentication-wizard.ts
@@ -0,0 +1,95 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import {CategoryWizard} from "./category-wizard";
+import {AuthenticationProviderConfig} from "./authentication-provider-config";
+import {LDAPProviderConfig} from "./ldap-provider-config";
+import {PAMProviderConfig} from "./pam-provider-config";
+import {KerberosProviderConfig} from "./kerberos-provider-config";
+import {PreAuthSSOProviderConfig} from "./preauth-sso-provider-config";
+import {SSOCookieProviderConfig} from "./sso-cookie-provider-config";
+import {JWTProviderConfig} from "./jwt-provider-config";
+import {CASProviderConfig} from "./cas-provider-config";
+import {SAMLProviderConfig} from "./saml-provider-config";
+import {OIDCProviderConfig} from "./oidc-provider-config";
+import {OAUTHProviderConfig} from "./oauth-provider-config";
+
+export class AuthenticationWizard extends CategoryWizard {
+
+  private stepCount: number = 4;
+
+  // Authentication provider types
+  private static AUTH_LDAP: string       = 'LDAP';
+  private static AUTH_PAM: string        = 'PAM';
+  private static AUTH_HADOOP: string     = 'Kerberos';
+  private static AUTH_SSO: string        = 'SSO';
+  private static AUTH_SSO_COOKIE: string = 'SSO Cookie';
+  private static AUTH_JWT: string        = 'JWT';
+  private static AUTH_CAS: string        = 'CAS';
+  private static AUTH_OAUTH: string      = 'OAuth';
+  private static AUTH_SAML: string       = 'SAML';
+  private static AUTH_OIDC: string       = 'OpenID Connect';
+  private static authTypes: string[] = [ AuthenticationWizard.AUTH_LDAP,
+                                         AuthenticationWizard.AUTH_PAM,
+                                         AuthenticationWizard.AUTH_HADOOP,
+                                         AuthenticationWizard.AUTH_SSO,
+                                         AuthenticationWizard.AUTH_SSO_COOKIE,
+                                         AuthenticationWizard.AUTH_JWT,
+                                         AuthenticationWizard.AUTH_CAS,
+                                         AuthenticationWizard.AUTH_OAUTH,
+                                         AuthenticationWizard.AUTH_SAML,
+                                         AuthenticationWizard.AUTH_OIDC
+                                       ];
+
+  private static typeConfigMap: Map<string, typeof AuthenticationProviderConfig> =
+           new Map([ [AuthenticationWizard.AUTH_LDAP,       LDAPProviderConfig],
+                     [AuthenticationWizard.AUTH_PAM,        PAMProviderConfig],
+                     [AuthenticationWizard.AUTH_HADOOP,     KerberosProviderConfig],
+                     [AuthenticationWizard.AUTH_SSO,        PreAuthSSOProviderConfig],
+                     [AuthenticationWizard.AUTH_SSO_COOKIE, SSOCookieProviderConfig],
+                     [AuthenticationWizard.AUTH_JWT,        JWTProviderConfig],
+                     [AuthenticationWizard.AUTH_CAS,        CASProviderConfig],
+                     [AuthenticationWizard.AUTH_OAUTH,      OAUTHProviderConfig],
+                     [AuthenticationWizard.AUTH_SAML,       SAMLProviderConfig],
+                     [AuthenticationWizard.AUTH_OIDC,       OIDCProviderConfig],
+                   ] as [string, typeof AuthenticationProviderConfig][]);
+
+
+  getTypes(): string[] {
+    return AuthenticationWizard.authTypes;
+  }
+
+  getSteps(): number {
+    return this.stepCount;
+  }
+
+  onChange() {
+    let configType = AuthenticationWizard.typeConfigMap.get(this.selectedType);
+    if (configType) {
+      this.providerConfig = Object.create(configType.prototype) as AuthenticationProviderConfig;
+      this.providerConfig.constructor.apply(this.providerConfig);
+    } else {
+      console.debug('AuthenticationWizard --> No provider configuration type mapped for ' + this.selectedType);
+      this.providerConfig = null;
+    }
+  }
+
+  getProviderConfig(): AuthenticationProviderConfig {
+    return (this.providerConfig as AuthenticationProviderConfig);
+  }
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/knox/blob/167053bd/gateway-admin-ui/src/app/provider-config-wizard/authorization-wizard.ts
----------------------------------------------------------------------
diff --git a/gateway-admin-ui/src/app/provider-config-wizard/authorization-wizard.ts b/gateway-admin-ui/src/app/provider-config-wizard/authorization-wizard.ts
new file mode 100644
index 0000000..bb690b9
--- /dev/null
+++ b/gateway-admin-ui/src/app/provider-config-wizard/authorization-wizard.ts
@@ -0,0 +1,61 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import {CategoryWizard} from "./category-wizard";
+import {ACLsAuthznProviderConfig} from "./acls-authzn-provider-config";
+import {DisplayBindingProviderConfig} from "./display-binding-provider-config";
+
+export class AuthorizationWizard extends CategoryWizard {
+
+  private stepCount: number = 4;
+
+
+  // Authorization provider types
+  private static AUTHZN_ACLS: string = 'Access Control Lists';
+
+  private static authznTypes: string[] = [ AuthorizationWizard.AUTHZN_ACLS ];
+
+  private static typeConfigMap: Map<string, typeof DisplayBindingProviderConfig> =
+                          new Map([
+                                  [AuthorizationWizard.AUTHZN_ACLS, ACLsAuthznProviderConfig]
+                                ] as [string, typeof DisplayBindingProviderConfig][]);
+
+  getTypes(): string[] {
+    return AuthorizationWizard.authznTypes;
+  }
+
+  getSteps(): number {
+    return this.stepCount;
+  }
+
+  onChange() {
+    let configType = AuthorizationWizard.typeConfigMap.get(this.selectedType);
+    if (configType) {
+      console.debug(configType.prototype.toString() + ' resolved for config type  ' + this.selectedType);
+      this.providerConfig = Object.create(configType.prototype) as DisplayBindingProviderConfig;
+      this.providerConfig.constructor.apply(this.providerConfig);
+    } else {
+      console.debug('AuthorizationWizard --> No provider configuration type mapped for ' + this.selectedType);
+      this.providerConfig = null;
+    }
+  }
+
+  getProviderConfig(): DisplayBindingProviderConfig {
+    return (this.providerConfig as DisplayBindingProviderConfig);
+  }
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/knox/blob/167053bd/gateway-admin-ui/src/app/provider-config-wizard/cas-provider-config.ts
----------------------------------------------------------------------
diff --git a/gateway-admin-ui/src/app/provider-config-wizard/cas-provider-config.ts b/gateway-admin-ui/src/app/provider-config-wizard/cas-provider-config.ts
new file mode 100644
index 0000000..6debee1
--- /dev/null
+++ b/gateway-admin-ui/src/app/provider-config-wizard/cas-provider-config.ts
@@ -0,0 +1,54 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import {AuthenticationProviderConfig} from "./authentication-provider-config";
+
+export class CASProviderConfig extends AuthenticationProviderConfig {
+
+  static CALLBACK_URL         = 'Callback URL';
+  static LOGIN_URL            = 'Login URL';
+  static PROTOCOL             = 'Protocol';
+  static COOKIE_DOMAIN_SUFFIX = 'Cookie Domain Suffix';
+
+  private static displayPropertyNames = [ CASProviderConfig.CALLBACK_URL,
+                                          CASProviderConfig.LOGIN_URL,
+                                          CASProviderConfig.PROTOCOL,
+                                          CASProviderConfig.COOKIE_DOMAIN_SUFFIX
+                                        ];
+
+  private static displayPropertyNameBindings: Map<string, string> =
+                                        new Map([
+                                          [CASProviderConfig.CALLBACK_URL,         'pac4j.callbackUrl'],
+                                          [CASProviderConfig.COOKIE_DOMAIN_SUFFIX, 'pac4j.cookie.domain.suffix'],
+                                          [CASProviderConfig.LOGIN_URL,            'cas.loginUrl'],
+                                          [CASProviderConfig.PROTOCOL,             'cas.protocol']
+                                        ]);
+
+
+  constructor() {
+    super('pac4j', AuthenticationProviderConfig.FEDERATION_ROLE);
+  }
+
+  getDisplayPropertyNames(): string[] {
+    return CASProviderConfig.displayPropertyNames;
+  }
+
+  getDisplayNamePropertyBinding(name: string) {
+    return CASProviderConfig.displayPropertyNameBindings.get(name);
+  }
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/knox/blob/167053bd/gateway-admin-ui/src/app/provider-config-wizard/category-wizard.ts
----------------------------------------------------------------------
diff --git a/gateway-admin-ui/src/app/provider-config-wizard/category-wizard.ts b/gateway-admin-ui/src/app/provider-config-wizard/category-wizard.ts
new file mode 100644
index 0000000..d6cc36b
--- /dev/null
+++ b/gateway-admin-ui/src/app/provider-config-wizard/category-wizard.ts
@@ -0,0 +1,39 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import {ProviderConfig} from "../resource-detail/provider-config";
+
+export abstract class CategoryWizard {
+
+  selectedType: string;
+
+  providerConfig: ProviderConfig;
+
+
+  getSelectedType(): string {
+    return this.selectedType;
+  };
+
+  abstract getTypes(): string[];
+
+  abstract getSteps(): number;
+
+  abstract onChange();
+
+  abstract getProviderConfig(): ProviderConfig;
+
+}

http://git-wip-us.apache.org/repos/asf/knox/blob/167053bd/gateway-admin-ui/src/app/provider-config-wizard/concat-idassertion-provider-config.ts
----------------------------------------------------------------------
diff --git a/gateway-admin-ui/src/app/provider-config-wizard/concat-idassertion-provider-config.ts b/gateway-admin-ui/src/app/provider-config-wizard/concat-idassertion-provider-config.ts
new file mode 100644
index 0000000..699b715
--- /dev/null
+++ b/gateway-admin-ui/src/app/provider-config-wizard/concat-idassertion-provider-config.ts
@@ -0,0 +1,47 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import {IdentityAssertionProviderConfig} from "./identity-assertion-provider-config";
+
+export class ConcatAssertionProviderConfig extends IdentityAssertionProviderConfig {
+
+  static PREFIX = 'Prefix';
+  static SUFFIX = 'Suffix';
+
+  private static displayPropertyNames = [ ConcatAssertionProviderConfig.PREFIX,
+                                          ConcatAssertionProviderConfig.SUFFIX
+                                        ];
+
+  private static displayPropertyNameBindings: Map<string, string> =
+                                        new Map([
+                                          [ConcatAssertionProviderConfig.PREFIX, 'concat.prefix'],
+                                          [ConcatAssertionProviderConfig.SUFFIX, 'concat.suffix']
+                                        ]);
+
+  constructor() {
+    super('Concat');
+  }
+
+  getDisplayPropertyNames(): string[] {
+    return ConcatAssertionProviderConfig.displayPropertyNames;
+  }
+
+  getDisplayNamePropertyBinding(name: string) {
+    return ConcatAssertionProviderConfig.displayPropertyNameBindings.get(name);
+  }
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/knox/blob/167053bd/gateway-admin-ui/src/app/provider-config-wizard/default-idassertion-provider-config.ts
----------------------------------------------------------------------
diff --git a/gateway-admin-ui/src/app/provider-config-wizard/default-idassertion-provider-config.ts b/gateway-admin-ui/src/app/provider-config-wizard/default-idassertion-provider-config.ts
new file mode 100644
index 0000000..484e0d1
--- /dev/null
+++ b/gateway-admin-ui/src/app/provider-config-wizard/default-idassertion-provider-config.ts
@@ -0,0 +1,49 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import {IdentityAssertionProviderConfig} from "./identity-assertion-provider-config";
+
+export class DefaultIdAssertionProviderConfig extends IdentityAssertionProviderConfig {
+
+  static PRINCIPAL_MAPPING       = 'Principal Mapping';
+  static GROUP_PRINCIPAL_MAPPING = 'Group Principal Mapping';
+
+  private static displayPropertyNames = [ DefaultIdAssertionProviderConfig.PRINCIPAL_MAPPING,
+                                          DefaultIdAssertionProviderConfig.GROUP_PRINCIPAL_MAPPING
+                                        ];
+
+  private static displayPropertyNameBindings: Map<string, string> =
+    new Map([
+      [DefaultIdAssertionProviderConfig.PRINCIPAL_MAPPING,       'principal.mapping'],
+      [DefaultIdAssertionProviderConfig.GROUP_PRINCIPAL_MAPPING, 'group.principal.mapping']
+    ]);
+
+
+  constructor() {
+    console.debug('new DefaultIdAssertionProviderConfig()');
+    super('Default');
+  }
+
+  getDisplayPropertyNames(): string[] {
+    return DefaultIdAssertionProviderConfig.displayPropertyNames;
+  }
+
+  getDisplayNamePropertyBinding(name: string) {
+    return DefaultIdAssertionProviderConfig.displayPropertyNameBindings.get(name);
+  }
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/knox/blob/167053bd/gateway-admin-ui/src/app/provider-config-wizard/display-binding-provider-config.ts
----------------------------------------------------------------------
diff --git a/gateway-admin-ui/src/app/provider-config-wizard/display-binding-provider-config.ts b/gateway-admin-ui/src/app/provider-config-wizard/display-binding-provider-config.ts
new file mode 100644
index 0000000..4cc4d6c
--- /dev/null
+++ b/gateway-admin-ui/src/app/provider-config-wizard/display-binding-provider-config.ts
@@ -0,0 +1,51 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import {ProviderConfig} from "../resource-detail/provider-config";
+
+export abstract class DisplayBindingProviderConfig extends ProviderConfig {
+
+  getName(): string {
+    return this.name;
+  }
+
+  getRole(): string {
+    return this.role;
+  }
+
+  isEnabled() {
+    return this.enabled;
+  }
+
+  setParam(name: string, value: string) {
+    console.debug('ProviderConfig --> setParam(' + name + ', ' + value + ')');
+    this.params[name] = value;
+  }
+
+  getParamNames(): string[] {
+    return Object.getOwnPropertyNames(this.params);
+  }
+
+  getParam(name: string): string {
+    return this.params[name];
+  }
+
+  abstract getDisplayPropertyNames(): string[];
+
+  abstract getDisplayNamePropertyBinding(name: string): string;
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/knox/blob/167053bd/gateway-admin-ui/src/app/provider-config-wizard/grouplookup-id-assertion-provider-config.ts
----------------------------------------------------------------------
diff --git a/gateway-admin-ui/src/app/provider-config-wizard/grouplookup-id-assertion-provider-config.ts b/gateway-admin-ui/src/app/provider-config-wizard/grouplookup-id-assertion-provider-config.ts
new file mode 100644
index 0000000..6562f26
--- /dev/null
+++ b/gateway-admin-ui/src/app/provider-config-wizard/grouplookup-id-assertion-provider-config.ts
@@ -0,0 +1,43 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import {IdentityAssertionProviderConfig} from "./identity-assertion-provider-config";
+
+export class GroupLookupAssertionProviderConfig extends IdentityAssertionProviderConfig {
+
+  static TODO  = 'ToDo'; // TODO: PJZ: Actual properties for
+
+  private static displayPropertyNames = [ GroupLookupAssertionProviderConfig.TODO ];
+
+  private static displayPropertyNameBindings: Map<string, string> =
+    new Map([
+      [GroupLookupAssertionProviderConfig.TODO, 'todo']
+    ]);
+
+  constructor() {
+    super('HadoopGroupProvider');
+  }
+
+  getDisplayPropertyNames(): string[] {
+    return GroupLookupAssertionProviderConfig.displayPropertyNames;
+  }
+
+  getDisplayNamePropertyBinding(name: string) {
+    return GroupLookupAssertionProviderConfig.displayPropertyNameBindings.get(name);
+  }
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/knox/blob/167053bd/gateway-admin-ui/src/app/provider-config-wizard/ha-wizard.ts
----------------------------------------------------------------------
diff --git a/gateway-admin-ui/src/app/provider-config-wizard/ha-wizard.ts b/gateway-admin-ui/src/app/provider-config-wizard/ha-wizard.ts
new file mode 100644
index 0000000..ee6b30e
--- /dev/null
+++ b/gateway-admin-ui/src/app/provider-config-wizard/ha-wizard.ts
@@ -0,0 +1,46 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import {CategoryWizard} from "./category-wizard";
+import {ProviderConfig} from "../resource-detail/provider-config";
+
+export class HaWizard extends CategoryWizard {
+
+  private stepCount: number = 2;
+
+  getTypes(): string[] {
+    return [];
+  }
+
+  getSteps(): number {
+    return this.stepCount;
+  }
+
+  onChange() {
+    // Nothing to do
+  }
+
+  getProviderConfig(): ProviderConfig {
+    this.providerConfig = new ProviderConfig();
+    this.providerConfig.name = 'HaProvider';
+    this.providerConfig.role = 'ha';
+    this.providerConfig.enabled = 'true';
+    this.providerConfig.params = {};
+    return this.providerConfig;
+  }
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/knox/blob/167053bd/gateway-admin-ui/src/app/provider-config-wizard/identity-assertion-provider-config.ts
----------------------------------------------------------------------
diff --git a/gateway-admin-ui/src/app/provider-config-wizard/identity-assertion-provider-config.ts b/gateway-admin-ui/src/app/provider-config-wizard/identity-assertion-provider-config.ts
new file mode 100644
index 0000000..32f9e92
--- /dev/null
+++ b/gateway-admin-ui/src/app/provider-config-wizard/identity-assertion-provider-config.ts
@@ -0,0 +1,32 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import {DisplayBindingProviderConfig} from "./display-binding-provider-config";
+
+export abstract class IdentityAssertionProviderConfig extends DisplayBindingProviderConfig {
+
+  static ID_ASSERTION_ROLE: string = 'identity-assertion';
+
+  constructor(name: string, role?: string) {
+    super();
+    this.name = name;
+    this.role = role ? role : IdentityAssertionProviderConfig.ID_ASSERTION_ROLE;
+    this.params = {};
+    this.enabled = 'true'; // enable by default
+  }
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/knox/blob/167053bd/gateway-admin-ui/src/app/provider-config-wizard/identity-assertion-wizard.ts
----------------------------------------------------------------------
diff --git a/gateway-admin-ui/src/app/provider-config-wizard/identity-assertion-wizard.ts b/gateway-admin-ui/src/app/provider-config-wizard/identity-assertion-wizard.ts
new file mode 100644
index 0000000..180ed64
--- /dev/null
+++ b/gateway-admin-ui/src/app/provider-config-wizard/identity-assertion-wizard.ts
@@ -0,0 +1,75 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import {CategoryWizard} from "./category-wizard";
+import {ProviderConfig} from "../resource-detail/provider-config";
+import {IdentityAssertionProviderConfig} from "./identity-assertion-provider-config";
+import {DefaultIdAssertionProviderConfig} from "./default-idassertion-provider-config";
+import {ConcatAssertionProviderConfig} from "./concat-idassertion-provider-config";
+import {SwitchCaseAssertionProviderConfig} from "./switchcase-idassertion-provider-config";
+import {RegexAssertionProviderConfig} from "./regex-idassertion-provider-config";
+import {GroupLookupAssertionProviderConfig} from "./grouplookup-id-assertion-provider-config";
+
+export class IdentityAssertionWizard extends CategoryWizard {
+
+  private stepCount: number = 4;
+
+  private static DEFAULT: string      = 'Default';
+  private static CONCAT: string       = 'Concatentation';
+  private static SWITCHCASE: string   = 'SwitchCase';
+  private static REGEXP: string       = 'Regular Expression';
+  private static GROUP_LOOKUP: string = 'Group Lookup';
+
+  private static assertionTypes: string[] = [ IdentityAssertionWizard.DEFAULT,
+                                              IdentityAssertionWizard.CONCAT,
+                                              IdentityAssertionWizard.SWITCHCASE,
+                                              IdentityAssertionWizard.REGEXP,
+                                              IdentityAssertionWizard.GROUP_LOOKUP
+                                            ];
+
+  private static typeConfigMap: Map<string, typeof IdentityAssertionProviderConfig> =
+                        new Map([ [IdentityAssertionWizard.DEFAULT,      DefaultIdAssertionProviderConfig],
+                                  [IdentityAssertionWizard.CONCAT,       ConcatAssertionProviderConfig],
+                                  [IdentityAssertionWizard.SWITCHCASE,   SwitchCaseAssertionProviderConfig],
+                                  [IdentityAssertionWizard.REGEXP,       RegexAssertionProviderConfig],
+                                  [IdentityAssertionWizard.GROUP_LOOKUP, GroupLookupAssertionProviderConfig],
+                                ] as [string, typeof IdentityAssertionProviderConfig][]);
+
+  getTypes(): string[] {
+    return IdentityAssertionWizard.assertionTypes;
+  }
+
+  getSteps(): number {
+    return this.stepCount;
+  }
+
+  onChange() {
+    let configType = IdentityAssertionWizard.typeConfigMap.get(this.selectedType);
+    if (configType) {
+      this.providerConfig = Object.create(configType.prototype) as IdentityAssertionProviderConfig;
+      this.providerConfig.constructor.apply(this.providerConfig);
+    } else {
+      console.debug('IdentityAssertionWizard --> No provider configuration type mapped for ' + this.selectedType);
+      this.providerConfig = null;
+    }
+  }
+
+  getProviderConfig(): ProviderConfig {
+    return (this.providerConfig as IdentityAssertionProviderConfig);
+  }
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/knox/blob/167053bd/gateway-admin-ui/src/app/provider-config-wizard/jwt-provider-config.ts
----------------------------------------------------------------------
diff --git a/gateway-admin-ui/src/app/provider-config-wizard/jwt-provider-config.ts b/gateway-admin-ui/src/app/provider-config-wizard/jwt-provider-config.ts
new file mode 100644
index 0000000..3f91fa1
--- /dev/null
+++ b/gateway-admin-ui/src/app/provider-config-wizard/jwt-provider-config.ts
@@ -0,0 +1,43 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import {AuthenticationProviderConfig} from "./authentication-provider-config";
+
+export class JWTProviderConfig extends AuthenticationProviderConfig {
+
+  static KNOXTOKEN_AUDIENCES  = 'KnoxToken Audiences';
+
+  private static displayPropertyNames = [ JWTProviderConfig.KNOXTOKEN_AUDIENCES ];
+
+  private static displayPropertyNameBindings: Map<string, string> =
+    new Map([ [JWTProviderConfig.KNOXTOKEN_AUDIENCES, 'knox.token.audiences'] ]);
+
+
+  constructor() {
+    console.debug('new JWTProviderConfig()');
+    super('JWTProvider', AuthenticationProviderConfig.FEDERATION_ROLE);
+  }
+
+  getDisplayPropertyNames(): string[] {
+    return JWTProviderConfig.displayPropertyNames;
+  }
+
+  getDisplayNamePropertyBinding(name: string) {
+    return JWTProviderConfig.displayPropertyNameBindings.get(name);
+  }
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/knox/blob/167053bd/gateway-admin-ui/src/app/provider-config-wizard/kerberos-provider-config.ts
----------------------------------------------------------------------
diff --git a/gateway-admin-ui/src/app/provider-config-wizard/kerberos-provider-config.ts b/gateway-admin-ui/src/app/provider-config-wizard/kerberos-provider-config.ts
new file mode 100644
index 0000000..30dc49f
--- /dev/null
+++ b/gateway-admin-ui/src/app/provider-config-wizard/kerberos-provider-config.ts
@@ -0,0 +1,81 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import {AuthenticationProviderConfig} from "./authentication-provider-config";
+
+export class KerberosProviderConfig extends AuthenticationProviderConfig {
+
+  static CONFIG_PREFIX    = 'Config Prefix';
+  static SIG_SECRET       = 'Signature Secret';
+  static TYPE             = 'Type';
+  static ANON_ALLOWED     = 'Allow Anonymous';
+  static TOKEN_VALIDITY   = 'Token Expiration';
+  static COOKIE_DOMAIN    = 'Domain';
+  static COOKIE_PATH      = 'Path';
+  static KRB_PRINCIPAL    = 'Principal';
+  static KRB_KEYTAB       = 'KeyTab';
+  static KRB_RULES        = 'Name Rules';
+
+
+  private static displayPropertyNames = [ KerberosProviderConfig.CONFIG_PREFIX,
+                                          KerberosProviderConfig.SIG_SECRET,
+                                          KerberosProviderConfig.TYPE,
+                                          KerberosProviderConfig.ANON_ALLOWED,
+                                          KerberosProviderConfig.TOKEN_VALIDITY,
+                                          KerberosProviderConfig.COOKIE_DOMAIN,
+                                          KerberosProviderConfig.COOKIE_PATH,
+                                          KerberosProviderConfig.KRB_PRINCIPAL,
+                                          KerberosProviderConfig.KRB_KEYTAB,
+                                          KerberosProviderConfig.KRB_RULES
+                                        ];
+
+  private static displayPropertyNameBindings: Map<string, string> =
+                                        new Map([
+                                          [KerberosProviderConfig.CONFIG_PREFIX,  'config.prefix'],
+                                          [KerberosProviderConfig.SIG_SECRET,     '.signature.secret'],
+                                          [KerberosProviderConfig.TYPE,           '.type'],
+                                          [KerberosProviderConfig.ANON_ALLOWED,   '.simple.anonymous.allowed'],
+                                          [KerberosProviderConfig.TOKEN_VALIDITY, '.token.validity'],
+                                          [KerberosProviderConfig.COOKIE_DOMAIN,  '.cookie.domain'],
+                                          [KerberosProviderConfig.COOKIE_PATH,    '.cookie.path'],
+                                          [KerberosProviderConfig.KRB_PRINCIPAL,  '.kerberos.principal'],
+                                          [KerberosProviderConfig.KRB_KEYTAB,     '.kerberos.keytab'],
+                                          [KerberosProviderConfig.KRB_RULES,      '.kerberos.name.rules']
+                                        ]);
+
+
+  constructor() {
+    super('HadoopAuth');
+  }
+
+  getDisplayPropertyNames(): string[] {
+    return KerberosProviderConfig.displayPropertyNames;
+  }
+
+  getDisplayNamePropertyBinding(name: string) {
+    if (name === KerberosProviderConfig.CONFIG_PREFIX) {
+      return KerberosProviderConfig.displayPropertyNameBindings.get(name);
+    } else {
+      let prefix = this.getParam(KerberosProviderConfig.displayPropertyNameBindings.get(KerberosProviderConfig.CONFIG_PREFIX));
+      if (prefix) {
+        return prefix + KerberosProviderConfig.displayPropertyNameBindings.get(name);
+      }
+    }
+    return null;
+  }
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/knox/blob/167053bd/gateway-admin-ui/src/app/provider-config-wizard/ldap-provider-config.ts
----------------------------------------------------------------------
diff --git a/gateway-admin-ui/src/app/provider-config-wizard/ldap-provider-config.ts b/gateway-admin-ui/src/app/provider-config-wizard/ldap-provider-config.ts
new file mode 100644
index 0000000..38e3b81
--- /dev/null
+++ b/gateway-admin-ui/src/app/provider-config-wizard/ldap-provider-config.ts
@@ -0,0 +1,59 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import {AuthenticationProviderConfig} from "./authentication-provider-config";
+
+export class LDAPProviderConfig extends AuthenticationProviderConfig {
+
+  static SESSION_TIMEOUT  = 'Session Timeout';
+  static DN_TEMPLATE      = 'User DN Template';
+  static URL              = 'URL';
+  static MECHANISM        = 'Mechanism';
+
+  private static displayPropertyNames = [ LDAPProviderConfig.SESSION_TIMEOUT,
+                                          LDAPProviderConfig.DN_TEMPLATE,
+                                          LDAPProviderConfig.URL,
+                                          LDAPProviderConfig.MECHANISM
+                                        ];
+
+  private static displayPropertyNameBindings: Map<string, string> =
+                            new Map([
+                              [LDAPProviderConfig.SESSION_TIMEOUT, 'sessionTimeout'],
+                              [LDAPProviderConfig.DN_TEMPLATE, 'main.ldapRealm.userDnTemplate'],
+                              [LDAPProviderConfig.URL, 'main.ldapRealm.contextFactory.url'],
+                              [LDAPProviderConfig.MECHANISM, 'main.ldapRealm.contextFactory.authenticationMechanism']
+                            ]);
+
+
+  constructor() {
+    super('ShiroProvider');
+    this.setParam('main.ldapRealm', 'org.apache.hadoop.gateway.shirorealm.KnoxLdapRealm');
+    this.setParam('main.ldapContextFactory', 'org.apache.hadoop.gateway.shirorealm.KnoxLdapContextFactory');
+    this.setParam('main.ldapRealm.contextFactory', '$ldapContextFactory');
+    this.setParam('urls./**', 'authcBasic');
+  }
+
+  getDisplayPropertyNames(): string[] {
+    return LDAPProviderConfig.displayPropertyNames;
+  }
+
+  getDisplayNamePropertyBinding(name: string) {
+    return LDAPProviderConfig.displayPropertyNameBindings.get(name);
+  }
+
+  // TODO: PJZ: Shiro-based providers have param ordering requirements; need to accommodate that
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/knox/blob/167053bd/gateway-admin-ui/src/app/provider-config-wizard/oauth-provider-config.ts
----------------------------------------------------------------------
diff --git a/gateway-admin-ui/src/app/provider-config-wizard/oauth-provider-config.ts b/gateway-admin-ui/src/app/provider-config-wizard/oauth-provider-config.ts
new file mode 100644
index 0000000..71df337
--- /dev/null
+++ b/gateway-admin-ui/src/app/provider-config-wizard/oauth-provider-config.ts
@@ -0,0 +1,48 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import {AuthenticationProviderConfig} from "./authentication-provider-config";
+
+export class OAUTHProviderConfig extends AuthenticationProviderConfig {
+
+  static CALLBACK_URL           = 'Callback URL';
+  static COOKIE_DOMAIN_SUFFIX   = 'Cookie Domain Suffix';
+
+  private static displayPropertyNames: string[] = [ OAUTHProviderConfig.CALLBACK_URL,
+                                                    OAUTHProviderConfig.COOKIE_DOMAIN_SUFFIX
+                                                  ];
+
+  private static displayPropertyNameBindings: Map<string, string> =
+                            new Map([
+                              [OAUTHProviderConfig.CALLBACK_URL,         'pac4j.callbackUrl'],
+                              [OAUTHProviderConfig.COOKIE_DOMAIN_SUFFIX, 'pac4j.cookie.domain.suffix']
+                            ]);
+
+
+  constructor() {
+    super('pac4j', AuthenticationProviderConfig.FEDERATION_ROLE);
+  }
+
+  getDisplayPropertyNames(): string[] {
+    return OAUTHProviderConfig.displayPropertyNames;
+  }
+
+  getDisplayNamePropertyBinding(name: string) {
+    return OAUTHProviderConfig.displayPropertyNameBindings.get(name);
+  }
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/knox/blob/167053bd/gateway-admin-ui/src/app/provider-config-wizard/oidc-provider-config.ts
----------------------------------------------------------------------
diff --git a/gateway-admin-ui/src/app/provider-config-wizard/oidc-provider-config.ts b/gateway-admin-ui/src/app/provider-config-wizard/oidc-provider-config.ts
new file mode 100644
index 0000000..8cf2e7f
--- /dev/null
+++ b/gateway-admin-ui/src/app/provider-config-wizard/oidc-provider-config.ts
@@ -0,0 +1,67 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import {AuthenticationProviderConfig} from "./authentication-provider-config";
+
+export class OIDCProviderConfig extends AuthenticationProviderConfig {
+
+  static CALLBACK_URL           = 'Callback URL';
+  static PROVIDER_ID            = 'Provider Identifier';
+  static PROVIDER_SECRET        = 'Provider Secret';
+  static PROVIDER_DISCOVERY_URL = 'Provider Discovery URL';
+  static USE_NONCE              = 'Use Nonce';
+  static PREF_JWS_ALGO          = 'Preferred JWS Algorithm';
+  static MAX_CLOCK_SKEW         = 'Maximum Clock Skew';
+  static COOKIE_DOMAIN_SUFFIX   = 'Cookie Domain Suffix';
+
+
+  private static displayPropertyNames = [ OIDCProviderConfig.CALLBACK_URL,
+                                          OIDCProviderConfig.PROVIDER_ID,
+                                          OIDCProviderConfig.PROVIDER_SECRET,
+                                          OIDCProviderConfig.PROVIDER_DISCOVERY_URL,
+                                          OIDCProviderConfig.USE_NONCE,
+                                          OIDCProviderConfig.PREF_JWS_ALGO,
+                                          OIDCProviderConfig.MAX_CLOCK_SKEW,
+                                          OIDCProviderConfig.COOKIE_DOMAIN_SUFFIX
+                                        ];
+
+  private static displayPropertyNameBindings: Map<string, string> =
+                                      new Map([
+                                        [OIDCProviderConfig.CALLBACK_URL,           'pac4j.callbackUrl'],
+                                        [OIDCProviderConfig.COOKIE_DOMAIN_SUFFIX,   'pac4j.cookie.domain.suffix'],
+                                        [OIDCProviderConfig.PROVIDER_ID,            'oidc.id'],
+                                        [OIDCProviderConfig.PROVIDER_SECRET,        'oidc.secret'],
+                                        [OIDCProviderConfig.PROVIDER_DISCOVERY_URL, 'oidc.discoveryUri'],
+                                        [OIDCProviderConfig.USE_NONCE,              'oidc.useNonce'],
+                                        [OIDCProviderConfig.PREF_JWS_ALGO,          'oidc.preferredJwsAlgorithm'],
+                                        [OIDCProviderConfig.MAX_CLOCK_SKEW,         'oidc.maxClockSkew'],
+                                      ]);
+
+
+  constructor() {
+    super('pac4j', AuthenticationProviderConfig.FEDERATION_ROLE);
+  }
+
+  getDisplayPropertyNames(): string[] {
+    return OIDCProviderConfig.displayPropertyNames;
+  }
+
+  getDisplayNamePropertyBinding(name: string) {
+    return OIDCProviderConfig.displayPropertyNameBindings.get(name);
+  }
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/knox/blob/167053bd/gateway-admin-ui/src/app/provider-config-wizard/pam-provider-config.ts
----------------------------------------------------------------------
diff --git a/gateway-admin-ui/src/app/provider-config-wizard/pam-provider-config.ts b/gateway-admin-ui/src/app/provider-config-wizard/pam-provider-config.ts
new file mode 100644
index 0000000..f93c94e
--- /dev/null
+++ b/gateway-admin-ui/src/app/provider-config-wizard/pam-provider-config.ts
@@ -0,0 +1,48 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import {AuthenticationProviderConfig} from "./authentication-provider-config";
+
+export class PAMProviderConfig extends AuthenticationProviderConfig {
+
+  static SESSION_TIMEOUT  = 'Session Timeout';
+
+  private static displayPropertyNames = [ PAMProviderConfig.SESSION_TIMEOUT ];
+
+  private static displayPropertyNameBindings: Map<string, string> =
+                            new Map([
+                              [PAMProviderConfig.SESSION_TIMEOUT, 'sessionTimeout']
+                            ]);
+
+
+  constructor() {
+    super('ShiroProvider');
+    this.setParam('main.pamRealm', 'org.apache.knox.gateway.shirorealm.KnoxPamRealm');
+    this.setParam('main.pamRealm.service', 'login');
+    this.setParam('urls./**', 'authcBasic');
+  }
+
+  getDisplayPropertyNames(): string[] {
+    return PAMProviderConfig.displayPropertyNames;
+  }
+
+  getDisplayNamePropertyBinding(name: string) {
+    return PAMProviderConfig.displayPropertyNameBindings.get(name);
+  }
+
+  // TODO: PJZ: Shiro-based providers have param ordering requirements; need to accommodate that
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/knox/blob/167053bd/gateway-admin-ui/src/app/provider-config-wizard/preauth-sso-provider-config.ts
----------------------------------------------------------------------
diff --git a/gateway-admin-ui/src/app/provider-config-wizard/preauth-sso-provider-config.ts b/gateway-admin-ui/src/app/provider-config-wizard/preauth-sso-provider-config.ts
new file mode 100644
index 0000000..d7e8d3d
--- /dev/null
+++ b/gateway-admin-ui/src/app/provider-config-wizard/preauth-sso-provider-config.ts
@@ -0,0 +1,55 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import {AuthenticationProviderConfig} from "./authentication-provider-config";
+
+export class PreAuthSSOProviderConfig extends AuthenticationProviderConfig {
+
+  static VALIDATION_METHOD  = 'Validation Method';
+  static IP_ADDRESSES       = 'Addresses';
+  static CUSTOM_HEADER      = 'Custom Header';
+  static CUSTOM_GRP_HEADER  = 'Custom Group Header';
+
+  private static displayPropertyNames = [ PreAuthSSOProviderConfig.VALIDATION_METHOD,
+                                          PreAuthSSOProviderConfig.IP_ADDRESSES,
+                                          PreAuthSSOProviderConfig.CUSTOM_HEADER,
+                                          PreAuthSSOProviderConfig.CUSTOM_GRP_HEADER
+                                        ];
+
+  private static displayPropertyNameBindings: Map<string, string> =
+                                        new Map([
+                                          [PreAuthSSOProviderConfig.VALIDATION_METHOD, 'preauth.validation.method'],
+                                          [PreAuthSSOProviderConfig.IP_ADDRESSES,      'preauth.ip.addresses'],
+                                          [PreAuthSSOProviderConfig.CUSTOM_HEADER,     'preauth.custom.header'],
+                                          [PreAuthSSOProviderConfig.CUSTOM_GRP_HEADER, 'preauth.custom.group.header']
+                                        ]);
+
+
+  constructor() {
+    console.debug('new PreAuthSSOProviderConfig()');
+    super('HeaderPreAuth', AuthenticationProviderConfig.FEDERATION_ROLE);
+  }
+
+  getDisplayPropertyNames(): string[] {
+    return PreAuthSSOProviderConfig.displayPropertyNames;
+  }
+
+  getDisplayNamePropertyBinding(name: string) {
+    return PreAuthSSOProviderConfig.displayPropertyNameBindings.get(name);
+  }
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/knox/blob/167053bd/gateway-admin-ui/src/app/provider-config-wizard/provider-config-wizard.component.css
----------------------------------------------------------------------
diff --git a/gateway-admin-ui/src/app/provider-config-wizard/provider-config-wizard.component.css b/gateway-admin-ui/src/app/provider-config-wizard/provider-config-wizard.component.css
new file mode 100644
index 0000000..625129f
--- /dev/null
+++ b/gateway-admin-ui/src/app/provider-config-wizard/provider-config-wizard.component.css
@@ -0,0 +1,5 @@
+td {
+    border-collapse: collapse;
+    padding: 8px;
+    vertical-align: top;
+}

http://git-wip-us.apache.org/repos/asf/knox/blob/167053bd/gateway-admin-ui/src/app/provider-config-wizard/provider-config-wizard.component.html
----------------------------------------------------------------------
diff --git a/gateway-admin-ui/src/app/provider-config-wizard/provider-config-wizard.component.html b/gateway-admin-ui/src/app/provider-config-wizard/provider-config-wizard.component.html
new file mode 100644
index 0000000..db97d96
--- /dev/null
+++ b/gateway-admin-ui/src/app/provider-config-wizard/provider-config-wizard.component.html
@@ -0,0 +1,104 @@
+<bs-modal (onClose)="onClose()" #newProviderConfigModal xmlns="http://www.w3.org/1999/html">
+  <bs-modal-header [showDismiss]="true">
+    <label class="modal-title">Create a New Provider Configuration</label>
+  </bs-modal-header>
+  <bs-modal-body>
+
+    <div *ngIf="isRootStep()">
+      <!-- Provider Configuration Name -->
+      <div>
+        <table>
+          <tr>
+            <td><strong>Name</strong></td>
+            <td><input type="textbox"
+                       size="60"
+                       [(ngModel)]="name"></td>
+          </tr>
+        </table>
+      </div> <!-- Provider Configuration Name -->
+
+      <br/>
+
+      <!-- Display New Providers -->
+      <div>
+        <strong>Providers</strong><br/>
+        <div *ngFor="let pc of providers">
+          {{pc.name}}
+        </div>
+      </div> <!-- Display New Providers -->
+
+      <br/>
+
+      <!-- Root Step -->
+      <div>
+        <button type="button"
+                class="btn btn-default btn-sm"
+                data-dismiss="newProviderConfigModal"
+                (click)="onNextStep()">Add Provider</button>
+      </div> <!-- Root Step -->
+    </div>
+
+    <!-- Provider Category Selection Step -->
+    <div *ngIf="isProviderCategoryStep()">
+      <strong>Choose a Provider Category</strong><br/><br/>
+      <div *ngFor="let pc of getProviderCategories()">
+        <label>
+          <input type="radio"
+                 [name]="pc"
+                 [(ngModel)]="selectedCategory"
+                 [value]="pc">{{pc}}
+        </label>
+      </div>
+    </div> <!-- Provider Category Selection Step -->
+
+    <!-- Provider Type Selection Step -->
+    <div *ngIf="isProviderTypeStep()">
+      <strong>Choose a {{ selectedCategory }} Provider Type</strong><br/><br/>
+      <div *ngFor="let pt of getProviderTypes()">
+        <label>
+          <input type="radio"
+                 [name]="pt"
+                 (change)="getCategoryWizard().onChange()"
+                 [(ngModel)]="getCategoryWizard().selectedType"
+                 [value]="pt">{{pt}}
+        </label>
+      </div>
+    </div> <!-- Provider Type Selection Step -->
+
+    <!-- Provider Type Params Step -->
+    <div *ngIf="isProviderParamsStep()">
+      <strong>Specify {{ getCategoryWizard().getSelectedType() }} Provider Parameters</strong><br/><br/>
+      <table>
+        <tr *ngFor="let pt of getProviderParams()">
+          <td><strong>{{pt}}</strong></td>
+          <td><input type="textbox"
+                     size="60"
+                     #paramInput
+                     (change)="setProviderParamBinding(pt, paramInput.value)"
+                     [value]="getProviderParamBinding(pt)"></td>
+        </tr>
+      </table>
+    </div> <!-- Provider Type Params Step -->
+
+
+  </bs-modal-body>
+  <bs-modal-footer>
+    <button type="button"
+            class="btn btn-default btn-sm pull-left"
+            data-dismiss="newProviderConfigModal"
+            (click)="newProviderConfigModal.dismiss()">Cancel</button>
+    <button type="button"
+            *ngIf="!isRootStep()"
+            class="btn btn-primary btn-sm"
+            (click)="onPreviousStep()">Back</button>
+    <button type="button"
+            *ngIf="isRootStep() || !hasMoreSteps()"
+            class="btn btn-primary btn-sm"
+            [disabled]="(isRootStep() && !name)"
+            (click)="isRootStep() ? newProviderConfigModal.close() : onFinishAdd()">Ok</button>
+    <button type="button"
+            *ngIf="!isRootStep() && hasMoreSteps()"
+            class="btn btn-primary btn-sm"
+            (click)="onNextStep()">Next</button>
+  </bs-modal-footer>
+</bs-modal>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/knox/blob/167053bd/gateway-admin-ui/src/app/provider-config-wizard/provider-config-wizard.component.spec.ts
----------------------------------------------------------------------
diff --git a/gateway-admin-ui/src/app/provider-config-wizard/provider-config-wizard.component.spec.ts b/gateway-admin-ui/src/app/provider-config-wizard/provider-config-wizard.component.spec.ts
new file mode 100644
index 0000000..7c4dd21
--- /dev/null
+++ b/gateway-admin-ui/src/app/provider-config-wizard/provider-config-wizard.component.spec.ts
@@ -0,0 +1,25 @@
+import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { ProviderConfigWizardComponent } from './provider-config-wizard.component';
+
+describe('ProviderConfigWizardComponent', () => {
+  let component: ProviderConfigWizardComponent;
+  let fixture: ComponentFixture<ProviderConfigWizardComponent>;
+
+  beforeEach(async(() => {
+    TestBed.configureTestingModule({
+      declarations: [ ProviderConfigWizardComponent ]
+    })
+    .compileComponents();
+  }));
+
+  beforeEach(() => {
+    fixture = TestBed.createComponent(ProviderConfigWizardComponent);
+    component = fixture.componentInstance;
+    fixture.detectChanges();
+  });
+
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
+});


[2/4] knox git commit: KNOX-1040 - Initial new descriptor and provider config wizard support

Posted by pz...@apache.org.
http://git-wip-us.apache.org/repos/asf/knox/blob/167053bd/gateway-applications/src/main/resources/applications/admin-ui/app/main.511817c8d904b468f742.bundle.js
----------------------------------------------------------------------
diff --git a/gateway-applications/src/main/resources/applications/admin-ui/app/main.511817c8d904b468f742.bundle.js b/gateway-applications/src/main/resources/applications/admin-ui/app/main.511817c8d904b468f742.bundle.js
deleted file mode 100644
index f00b3af..0000000
--- a/gateway-applications/src/main/resources/applications/admin-ui/app/main.511817c8d904b468f742.bundle.js
+++ /dev/null
@@ -1 +0,0 @@
-webpackJsonp([0],{"+Bgu":function(e,t,n){"use strict";var r=n("vs5U");e.exports=new r("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:function(){return!0},construct:function(){},predicate:function(e){return"undefined"==typeof e},represent:function(){return""}})},"+Bur":function(e,t,n){e.exports=i;var r=n("rOzH").EventEmitter;function i(){r.call(this)}n("lDCR")(i,r),i.Readable=n("Osec"),i.Writable=n("QRYi"),i.Duplex=n("XvLI"),i.Transform=n("EJO3"),i.PassThrough=n("rr9E"),i.Stream=i,i.prototype.pipe=function(e,t){var n=this;function i(t){e.writable&&!1===e.write(t)&&n.pause&&n.pause()}function o(){n.readable&&n.resume&&n.resume()}n.on("data",i),e.on("drain",o),e._isStdio||t&&!1===t.end||(n.on("end",a),n.on("close",l));var s=!1;function a(){s||(s=!0,e.end())}function l(){s||(s=!0,"function"==typeof e.destroy&&e.destroy())}function u(e){if(c(),0===r.listenerCount(this,"error"))throw e}function c(){n.removeListener("data",i),e.removeListener("drain",o),n.removeListener("end",a),n
 .removeListener("close",l),n.removeListener("error",u),e.removeListener("error",u),n.removeListener("end",c),n.removeListener("close",c),e.removeListener("close",c)}return n.on("error",u),e.on("error",u),n.on("end",c),n.on("close",c),e.on("close",c),e.emit("pipe",n),e}},"+GRi":function(e,t,n){var r=n("Wo2w"),i=n("Wy9r");e.exports=function(e){return r(i(e))}},"+Q6C":function(e,t,n){var r=n("CDXM"),i=n("6De9").f,o=n("+pQw");r(r.S,"Reflect",{deleteProperty:function(e,t){var n=i(o(e),t);return!(n&&!n.configurable)&&delete e[t]}})},"+UpI":function(e,t,n){"use strict";var r=n("vs5U");e.exports=new r("tag:yaml.org,2002:map",{kind:"mapping",construct:function(e){return null!==e?e:{}}})},"+aW+":function(e,t,n){"use strict";var r=n("CDXM"),i=n("uNkO"),o=n("RT4T"),s=n("umMR"),a=[].sort,l=[1,2,3];r(r.P+r.F*(s(function(){l.sort(void 0)})||!s(function(){l.sort(null)})||!n("bhtb")(a)),"Array",{sort:function(e){return void 0===e?a.call(o(this)):a.call(o(this),i(e))}})},"+c1l":function(e,t,n){var r=
 n("CDXM");r(r.S+r.F*!n("V+0c"),"Object",{defineProperty:n("tose").f})},"+iEx":function(e,t,n){n("fHxy"),n("5GJ3"),n("X0O/"),n("HCkn"),n("ncNB"),n("soMw"),n("8sYH"),n("IJ3P"),n("t6ta"),e.exports=n("b4gG").Reflect},"+pQw":function(e,t,n){var r=n("JXkd");e.exports=function(e){if(!r(e))throw TypeError(e+" is not an object!");return e}},"/JsI":function(e,t,n){var r=n("CDXM");r(r.S+r.F,"Object",{assign:n("rIdM")})},"/Mgt":function(e,t,n){var r=n("CDXM");r(r.S,"Number",{MIN_SAFE_INTEGER:-9007199254740991})},"/XRd":function(e,t,n){var r=n("tose"),i=n("CDXM"),o=n("+pQw"),s=n("A1WY");i(i.S+i.F*n("umMR")(function(){Reflect.defineProperty(r.f({},1,{value:1}),1,{value:2})}),"Reflect",{defineProperty:function(e,t,n){o(e),t=s(t,!0),o(n);try{return r.f(e,t,n),!0}catch(e){return!1}}})},"/cYh":function(e,t,n){"use strict";var r=n("zOKz").Buffer,i=r.isEncoding||function(e){switch((e=""+e)&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":ca
 se"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function o(e){var t;switch(this.encoding=function(e){var t=function(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}(e);if("string"!=typeof t&&(r.isEncoding===i||!i(e)))throw new Error("Unknown encoding: "+e);return t||e}(e),this.encoding){case"utf16le":this.text=l,this.end=u,t=4;break;case"utf8":this.fillLast=a,t=4;break;case"base64":this.text=c,this.end=d,t=3;break;default:return this.write=h,void(this.end=p)}this.lastNeed=0,this.lastTotal=0,this.lastChar=r.allocUnsafe(t)}function s(e){return e<=127?0:e>>5==6?2:e>>4==14?3:e>>3==30?4:-1}function a(e){var t=this.lastTotal-this.lastNeed,n=function(e,t,n){if(128!=(192&t[0]))return e.lastNeed=0,"\ufffd".repeat(n);if(e.lastNeed>1&&t.length>1){
 if(128!=(192&t[1]))return e.lastNeed=1,"\ufffd".repeat(n+1);if(e.lastNeed>2&&t.length>2&&128!=(192&t[2]))return e.lastNeed=2,"\ufffd".repeat(n+2)}}(this,e,t);return void 0!==n?n:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function l(e,t){if((e.length-t)%2==0){var n=e.toString("utf16le",t);if(n){var r=n.charCodeAt(n.length-1);if(r>=55296&&r<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],n.slice(0,-1)}return n}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function u(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("utf16le",0,this.lastTotal-this.lastNeed):t}function c(e,t){var n=(e.length-t)%3;return 0===n?e.toString("base64",t):(this.lastNeed=3-n,this.lastTotal=3,1===n?this.lastChar[0]=e[
 e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-n))}function d(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function h(e){return e.toString(this.encoding)}function p(e){return e&&e.length?this.write(e):""}t.StringDecoder=o,o.prototype.write=function(e){if(0===e.length)return"";var t,n;if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return"";n=this.lastNeed,this.lastNeed=0}else n=0;return n<e.length?t?t+this.text(e,n):this.text(e,n):t||""},o.prototype.end=function(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+"\ufffd".repeat(this.lastTotal-this.lastNeed):t},o.prototype.text=function(e,t){var n=function(e,t,n){var r=t.length-1;if(r<n)return 0;var i=s(t[r]);return i>=0?(i>0&&(e.lastNeed=i-1),i):--r<n?0:(i=s(t[r]))>=0?(i>0&&(e.lastNeed=i-2),i):--r<n?0:(i=s(t[r]))>=0?(i>0&&(2===i?i=0:e.lastNeed=i-3),i):0}(this,e,t);if(!this.lastNeed)return e.to
 String("utf8",t);this.lastTotal=n;var r=e.length-(n-this.lastNeed);return e.copy(this.lastChar,0,r),e.toString("utf8",t,r)},o.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length}},"/gBU":function(e,t,n){(function(){"use strict";var e,r,i,o,s,a={}.hasOwnProperty;e=n("ZMI8"),r=n("XPJv").defaults,o=function(e){return"string"==typeof e&&(e.indexOf("&")>=0||e.indexOf(">")>=0||e.indexOf("<")>=0)},s=function(e){return"<![CDATA["+i(e)+"]]>"},i=function(e){return e.replace("]]>","]]]]><![CDATA[>")},t.Builder=function(){function t(e){var t,n;for(t in this.options={},n=r[.2])a.call(n,t)&&(this.options[t]=n[t]);for(t in e)a.call(e,t)&&(this.options[t]=e[t])}return t.prototype.buildObject=function(t){var n,i,l,u,c,d;return n=this.options.attrkey,i=this.options.charkey,1===Object
 .keys(t).length&&this.options.rootName===r[.2].rootName?t=t[c=Object.keys(t)[0]]:c=this.options.rootName,d=this,l=function(e,t){var r,u,c,h,p;if("object"!=typeof t)d.options.cdata&&o(t)?e.raw(s(t)):e.txt(t);else if(Array.isArray(t)){for(h in t)if(a.call(t,h))for(p in u=t[h])c=u[p],e=l(e.ele(p),c).up()}else for(p in t)if(a.call(t,p))if(u=t[p],p===n){if("object"==typeof u)for(r in u)e=e.att(r,u[r])}else if(p===i)e=d.options.cdata&&o(u)?e.raw(s(u)):e.txt(u);else if(Array.isArray(u))for(h in u)a.call(u,h)&&(e="string"==typeof(c=u[h])?d.options.cdata&&o(c)?e.ele(p).raw(s(c)).up():e.ele(p,c).up():l(e.ele(p),c).up());else"object"==typeof u?e=l(e.ele(p),u).up():"string"==typeof u&&d.options.cdata&&o(u)?e=e.ele(p).raw(s(u)).up():(null==u&&(u=""),e=e.ele(p,u.toString()).up());return e},u=e.create(c,this.options.xmldec,this.options.doctype,{headless:this.options.headless,allowSurrogateChars:this.options.allowSurrogateChars}),l(u,t).end(this.options.renderOpts)},t}()}).call(this)},"/wY1":functi
 on(e,t,n){n("rMMT"),n("dlwK"),n("/XRd"),n("+Q6C"),n("dBNB"),n("7Fno"),n("gZpL"),n("dSHT"),n("d+61"),n("V2Dj"),n("wJYt"),n("gdNQ"),n("VsLy"),n("wLW2"),e.exports=n("b4gG").Reflect},0:function(e,t,n){e.exports=n("cDNt")},"0MXQ":function(e,t,n){var r=n("CDXM");r(r.S,"Math",{fround:n("xxX9")})},"0a2p":function(e,t,n){(function(e){var r=Function.prototype.apply;function i(e,t){this._id=e,this._clearFn=t}t.setTimeout=function(){return new i(r.call(setTimeout,window,arguments),clearTimeout)},t.setInterval=function(){return new i(r.call(setInterval,window,arguments),clearInterval)},t.clearTimeout=t.clearInterval=function(e){e&&e.close()},i.prototype.unref=i.prototype.ref=function(){},i.prototype.close=function(){this._clearFn.call(window,this._id)},t.enroll=function(e,t){clearTimeout(e._idleTimeoutId),e._idleTimeout=t},t.unenroll=function(e){clearTimeout(e._idleTimeoutId),e._idleTimeout=-1},t._unrefActive=t.active=function(e){clearTimeout(e._idleTimeoutId);var t=e._idleTimeout;t>=0&&(e._idle
 TimeoutId=setTimeout(function(){e._onTimeout&&e._onTimeout()},t))},n("fItk"),t.setImmediate="undefined"!=typeof self&&self.setImmediate||"undefined"!=typeof e&&e.setImmediate||this&&this.setImmediate,t.clearImmediate="undefined"!=typeof self&&self.clearImmediate||"undefined"!=typeof e&&e.clearImmediate||this&&this.clearImmediate}).call(t,n("fRUx"))},1:function(e,t){},"1Rb4":function(e,t,n){"use strict";(function(t){e.exports=!t.version||0===t.version.indexOf("v0.")||0===t.version.indexOf("v1.")&&0!==t.version.indexOf("v1.8.")?function(e,n,r,i){if("function"!=typeof e)throw new TypeError('"callback" argument must be a function');var o,s,a=arguments.length;switch(a){case 0:case 1:return t.nextTick(e);case 2:return t.nextTick(function(){e.call(null,n)});case 3:return t.nextTick(function(){e.call(null,n,r)});case 4:return t.nextTick(function(){e.call(null,n,r,i)});default:for(o=new Array(a-1),s=0;s<o.length;)o[s++]=arguments[s];return t.nextTick(function(){e.apply(null,o)})}}:t.nextTick
 }).call(t,n("1WNV"))},"1WNV":function(e,t){var n,r,i=e.exports={};function o(){throw new Error("setTimeout has not been defined")}function s(){throw new Error("clearTimeout has not been defined")}function a(e){if(n===setTimeout)return setTimeout(e,0);if((n===o||!n)&&setTimeout)return n=setTimeout,setTimeout(e,0);try{return n(e,0)}catch(t){try{return n.call(null,e,0)}catch(t){return n.call(this,e,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:o}catch(e){n=o}try{r="function"==typeof clearTimeout?clearTimeout:s}catch(e){r=s}}();var l,u=[],c=!1,d=-1;function h(){c&&l&&(c=!1,l.length?u=l.concat(u):d=-1,u.length&&p())}function p(){if(!c){var e=a(h);c=!0;for(var t=u.length;t;){for(l=u,u=[];++d<t;)l&&l[d].run();d=-1,t=u.length}l=null,c=!1,function(e){if(r===clearTimeout)return clearTimeout(e);if((r===s||!r)&&clearTimeout)return r=clearTimeout,clearTimeout(e);try{r(e)}catch(t){try{return r.call(null,e)}catch(t){return r.call(this,e)}}}(e)}}function f(e,t){this.fun=e,this.arr
 ay=t}function m(){}i.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];u.push(new f(e,t)),1!==u.length||c||a(p)},f.prototype.run=function(){this.fun.apply(null,this.array)},i.title="browser",i.browser=!0,i.env={},i.argv=[],i.version="",i.versions={},i.on=m,i.addListener=m,i.once=m,i.off=m,i.removeListener=m,i.removeAllListeners=m,i.emit=m,i.prependListener=m,i.prependOnceListener=m,i.listeners=function(e){return[]},i.binding=function(e){throw new Error("process.binding is not supported")},i.cwd=function(){return"/"},i.chdir=function(e){throw new Error("process.chdir is not supported")},i.umask=function(){return 0}},"1j/l":function(e,t,n){"use strict";n.d(t,"a",function(){return r});var r=Array.isArray||function(e){return e&&"number"==typeof e.length}},"1zvG":function(e,t,n){"use strict";var r=n("JXkd"),i=n("TJLg"),o=n("3r0D")("hasInstance"),s=Function.prototype;o in s||n("tose").f(s,o,{value:function
 (e){if("function"!=typeof this||!r(e))return!1;if(!r(this.prototype))return e instanceof this;for(;e=i(e);)if(this.prototype===e)return!0;return!1}})},"2Fuj":function(e,t,n){var r=n("R5c1"),i=n("a/Sk");e.exports=Object.keys||function(e){return r(e,i)}},"2fm9":function(e,t,n){(function(){var t,r,i,o,s,a={}.hasOwnProperty;s=n("VH4r"),o=s.isObject,i=s.isFunction,r=n("p7eS"),t=n("eIJN"),e.exports=function(e){function n(e,t,r){if(n.__super__.constructor.call(this,e),null==t)throw new Error("Missing element name");this.name=this.stringify.eleName(t),this.attributes={},null!=r&&this.attribute(r),e.isDocument&&(this.isRoot=!0,this.documentObject=e,e.rootObject=this)}return function(e,t){for(var n in t)a.call(t,n)&&(e[n]=t[n]);function r(){this.constructor=e}r.prototype=t.prototype,e.prototype=new r,e.__super__=t.prototype}(n,r),n.prototype.clone=function(){var e,t,n;for(e in(t=Object.create(this)).isRoot&&(t.documentObject=null),t.attributes={},n=this.attributes)a.call(n,e)&&(t.attributes[e
 ]=n[e].clone());return t.children=[],this.children.forEach(function(e){var n;return(n=e.clone()).parent=t,t.children.push(n)}),t},n.prototype.attribute=function(e,n){var r;if(null!=e&&(e=e.valueOf()),o(e))for(r in e)a.call(e,r)&&this.attribute(r,e[r]);else i(n)&&(n=n.apply()),this.options.skipNullAttributes&&null==n||(this.attributes[e]=new t(this,e,n));return this},n.prototype.removeAttribute=function(e){var t,n;if(null==e)throw new Error("Missing attribute name");if(e=e.valueOf(),Array.isArray(e))for(t=0,n=e.length;t<n;t++)delete this.attributes[e[t]];else delete this.attributes[e];return this},n.prototype.toString=function(e){return this.options.writer.set(e).element(this)},n.prototype.att=function(e,t){return this.attribute(e,t)},n.prototype.a=function(e,t){return this.attribute(e,t)},n}()}).call(this)},"2kLc":function(e,t,n){"use strict";var r=n("AP4T"),i=n("Oryw"),o=n("3iOE"),s=n("wP3s");function a(e){return e}t.a=function(){for(var e=[],t=0;t<arguments.length;t++)e[t-0]=argum
 ents[t];var n=Number.POSITIVE_INFINITY,l=null,u=e[e.length-1];return Object(o.a)(u)?(l=e.pop(),e.length>1&&"number"==typeof e[e.length-1]&&(n=e.pop())):"number"==typeof u&&(n=e.pop()),null===l&&1===e.length&&e[0]instanceof r.Observable?e[0]:function(e){return void 0===e&&(e=Number.POSITIVE_INFINITY),Object(s.a)(a,null,e)}(n)(new i.a(e,l))}},"3LDD":function(e,t,n){"use strict";var r=n("tose").f,i=n("51pc"),o=n("pBmS"),s=n("pa70"),a=n("Lcie"),l=n("p/bR"),u=n("WsSm"),c=n("w/BM"),d=n("KpXt"),h=n("V+0c"),p=n("xI8H").fastKey,f=n("Y5fy"),m=h?"_s":"size",g=function(e,t){var n,r=p(t);if("F"!==r)return e._i[r];for(n=e._f;n;n=n.n)if(n.k==t)return n};e.exports={getConstructor:function(e,t,n,u){var c=e(function(e,r){a(e,c,t,"_i"),e._t=t,e._i=i(null),e._f=void 0,e._l=void 0,e[m]=0,void 0!=r&&l(r,n,e[u],e)});return o(c.prototype,{clear:function(){for(var e=f(this,t),n=e._i,r=e._f;r;r=r.n)r.r=!0,r.p&&(r.p=r.p.n=void 0),delete n[r.i];e._f=e._l=void 0,e[m]=0},delete:function(e){var n=f(this,t),r=g(n,
 e);if(r){var i=r.n,o=r.p;delete n._i[r.i],r.r=!0,o&&(o.n=i),i&&(i.p=o),n._f==r&&(n._f=i),n._l==r&&(n._l=o),n[m]--}return!!r},forEach:function(e){f(this,t);for(var n,r=s(e,arguments.length>1?arguments[1]:void 0,3);n=n?n.n:this._f;)for(r(n.v,n.k,this);n&&n.r;)n=n.p},has:function(e){return!!g(f(this,t),e)}}),h&&r(c.prototype,"size",{get:function(){return f(this,t)[m]}}),c},def:function(e,t,n){var r,i,o=g(e,t);return o?o.v=n:(e._l=o={i:i=p(t,!0),k:t,v:n,p:r=e._l,n:void 0,r:!1},e._f||(e._f=o),r&&(r.n=o),e[m]++,"F"!==i&&(e._i[i]=o)),e},getEntry:g,setStrong:function(e,t,n){u(e,t,function(e,n){this._t=f(e,t),this._k=n,this._l=void 0},function(){for(var e=this._k,t=this._l;t&&t.r;)t=t.p;return this._t&&(this._l=t=t?t.n:this._t._f)?c(0,"keys"==e?t.k:"values"==e?t.v:[t.k,t.v]):(this._t=void 0,c(1))},n?"entries":"values",!n,!0),d(t)}}},"3MMU":function(e,t,n){"use strict";var r=n("RT4T"),i=n("KM3d"),o=n("rppw");e.exports=[].copyWithin||function(e,t){var n=r(this),s=o(n.length),a=i(e,s),l=i(t,s),
 u=arguments.length>2?arguments[2]:void 0,c=Math.min((void 0===u?s:i(u,s))-l,s-a),d=1;for(l<a&&a<l+c&&(d=-1,l+=c-1,a+=c-1);c-- >0;)l in n?n[a]=n[l]:delete n[a],a+=d,l+=d;return n}},"3iOE":function(e,t,n){"use strict";t.a=function(e){return e&&"function"==typeof e.schedule}},"3r0D":function(e,t,n){var r=n("Iclu")("wks"),i=n("c09d"),o=n("ptrv").Symbol,s="function"==typeof o;(e.exports=function(e){return r[e]||(r[e]=s&&o[e]||(s?o:i)("Symbol."+e))}).store=r},"4D9a":function(e,t,n){"use strict";n("RSwQ");var r=n("+pQw"),i=n("8H1R"),o=n("V+0c"),s=/./.toString,a=function(e){n("lfBE")(RegExp.prototype,"toString",e,!0)};n("umMR")(function(){return"/a/b"!=s.call({source:"a",flags:"b"})})?a(function(){var e=r(this);return"/".concat(e.source,"/","flags"in e?e.flags:!o&&e instanceof RegExp?i.call(e):void 0)}):"toString"!=s.name&&a(function(){return s.call(this)})},"4TT8":function(e,t,n){var r=n("CDXM");r(r.S+r.F*!n("V+0c"),"Object",{defineProperties:n("ewdp")})},"4kq/":function(e,t,n){"use strict
 ";var r=n("xhXA"),i=n("fIES"),o=n("V2lR"),s=n("Io8P"),a=Object.prototype.toString,l=Object.prototype.hasOwnProperty,u=9,c=10,d=32,h=33,p=34,f=35,m=37,g=38,v=39,y=42,b=44,w=45,x=58,k=62,E=63,C=64,_=91,S=93,A=96,T=123,D=124,F=125,R={0:"\\0",7:"\\a",8:"\\b",9:"\\t",10:"\\n",11:"\\v",12:"\\f",13:"\\r",27:"\\e",34:'\\"',92:"\\\\",133:"\\N",160:"\\_",8232:"\\L",8233:"\\P"},N=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];function O(e){var t,n,o;if(t=e.toString(16).toUpperCase(),e<=255)n="x",o=2;else if(e<=65535)n="u",o=4;else{if(!(e<=4294967295))throw new i("code point within a string may not be greater than 0xFFFFFFFF");n="U",o=8}return"\\"+n+r.repeat("0",o-t.length)+t}function L(e,t){for(var n,i=r.repeat(" ",t),o=0,s=-1,a="",l=e.length;o<l;)-1===(s=e.indexOf("\n",o))?(n=e.slice(o),o=l):(n=e.slice(o,s+1),o=s+1),n.length&&"\n"!==n&&(a+=i),a+=n;return a}function I(e,t){return"\n"+r.repeat(" ",e.indent*t)}function M(e){return e===d||e===u}function P(e){r
 eturn 32<=e&&e<=126||161<=e&&e<=55295&&8232!==e&&8233!==e||57344<=e&&e<=65533&&65279!==e||65536<=e&&e<=1114111}function B(e){return P(e)&&65279!==e&&e!==b&&e!==_&&e!==S&&e!==T&&e!==F&&e!==x&&e!==f}var j=1,$=2,z=3,U=4,V=5;function H(e,t,n,r){e.dump=function(){if(0===t.length)return"''";if(!e.noCompatMode&&-1!==N.indexOf(t))return"'"+t+"'";var o=e.indent*Math.max(1,n),s=-1===e.lineWidth?-1:Math.max(Math.min(e.lineWidth,40),e.lineWidth-o);switch(function(t,n,r,i,o){var s,a,l,u=!1,d=!1,R=-1!==i,N=-1,O=P(l=t.charCodeAt(0))&&65279!==l&&!M(l)&&l!==w&&l!==E&&l!==x&&l!==b&&l!==_&&l!==S&&l!==T&&l!==F&&l!==f&&l!==g&&l!==y&&l!==h&&l!==D&&l!==k&&l!==v&&l!==p&&l!==m&&l!==C&&l!==A&&!M(t.charCodeAt(t.length-1));if(n)for(s=0;s<t.length;s++){if(!P(a=t.charCodeAt(s)))return V;O=O&&B(a)}else{for(s=0;s<t.length;s++){if((a=t.charCodeAt(s))===c)u=!0,R&&(d=d||s-N-1>i&&" "!==t[N+1],N=s);else if(!P(a))return V;O=O&&B(a)}d=d||R&&s-N-1>i&&" "!==t[N+1]}return u||d?" "===t[0]&&r>9?V:d?U:z:O&&!function(t){return 
 function(e,t){var n,r;for(n=0,r=e.implicitTypes.length;n<r;n+=1)if(e.implicitTypes[n].resolve(t))return!0;return!1}(e,t)}(t)?j:$}(t,r||e.flowLevel>-1&&n>=e.flowLevel,e.indent,s)){case j:return t;case $:return"'"+t.replace(/'/g,"''")+"'";case z:return"|"+W(t,e.indent)+q(L(t,o));case U:return">"+W(t,e.indent)+q(L(function(e,t){for(var n,r,i,o=/(\n+)([^\n]*)/g,s=(i=e.indexOf("\n"),o.lastIndex=i=-1!==i?i:e.length,G(e.slice(0,i),t)),a="\n"===e[0]||" "===e[0];r=o.exec(e);){var l=r[2];n=" "===l[0],s+=r[1]+(a||n||""===l?"":"\n")+G(l,t),a=n}return s}(t,s),o));case V:return'"'+function(e){for(var t,n,r,i="",o=0;o<e.length;o++)(t=e.charCodeAt(o))>=55296&&t<=56319&&(n=e.charCodeAt(o+1))>=56320&&n<=57343?(i+=O(1024*(t-55296)+n-56320+65536),o++):i+=!(r=R[t])&&P(t)?e[o]:r||O(t);return i}(t)+'"';default:throw new i("impossible error: invalid scalar style")}}()}function W(e,t){var n=" "===e[0]?String(t):"",r="\n"===e[e.length-1];return n+(!r||"\n"!==e[e.length-2]&&"\n"!==e?r?"":"-":"+")+"\n"}functio
 n q(e){return"\n"===e[e.length-1]?e.slice(0,-1):e}function G(e,t){if(""===e||" "===e[0])return e;for(var n,r,i=/ [^ ]/g,o=0,s=0,a=0,l="";n=i.exec(e);)(a=n.index)-o>t&&(l+="\n"+e.slice(o,r=s>o?s:a),o=r+1),s=a;return l+="\n",(l+=e.length-o>t&&s>o?e.slice(o,s)+"\n"+e.slice(s+1):e.slice(o)).slice(1)}function X(e,t,n){var r,o,s,u,c,d;for(s=0,u=(o=n?e.explicitTypes:e.implicitTypes).length;s<u;s+=1)if(((c=o[s]).instanceOf||c.predicate)&&(!c.instanceOf||"object"==typeof t&&t instanceof c.instanceOf)&&(!c.predicate||c.predicate(t))){if(e.tag=n?c.tag:"?",c.represent){if(d=e.styleMap[c.tag]||c.defaultStyle,"[object Function]"===a.call(c.represent))r=c.represent(t,d);else{if(!l.call(c.represent,d))throw new i("!<"+c.tag+'> tag resolver accepts not "'+d+'" style');r=c.represent[d](t,d)}e.dump=r}return!0}return!1}function K(e,t){var n=new function(e){this.schema=e.schema||o,this.indent=Math.max(1,e.indent||2),this.skipInvalid=e.skipInvalid||!1,this.flowLevel=r.isNothing(e.flowLevel)?-1:e.flowLeve
 l,this.styleMap=function(e,t){var n,r,i,o,s,a,u;if(null===t)return{};for(n={},i=0,o=(r=Object.keys(t)).length;i<o;i+=1)s=r[i],a=String(t[s]),"!!"===s.slice(0,2)&&(s="tag:yaml.org,2002:"+s.slice(2)),(u=e.compiledTypeMap.fallback[s])&&l.call(u.styleAliases,a)&&(a=u.styleAliases[a]),n[s]=a;return n}(this.schema,e.styles||null),this.sortKeys=e.sortKeys||!1,this.lineWidth=e.lineWidth||80,this.noRefs=e.noRefs||!1,this.noCompatMode=e.noCompatMode||!1,this.condenseFlow=e.condenseFlow||!1,this.implicitTypes=this.schema.compiledImplicit,this.explicitTypes=this.schema.compiledExplicit,this.tag=null,this.result="",this.duplicates=[],this.usedDuplicates=null}(t=t||{});return n.noRefs||function(t,n){var r,i,o=[],s=[];for(function e(t,n,r){var i,o,s;if(null!==t&&"object"==typeof t)if(-1!==(o=n.indexOf(t)))-1===r.indexOf(o)&&r.push(o);else if(n.push(t),Array.isArray(t))for(o=0,s=t.length;o<s;o+=1)e(t[o],n,r);else for(o=0,s=(i=Object.keys(t)).length;o<s;o+=1)e(t[i[o]],n,r)}(e,o,s),r=0,i=s.length;r<i
 ;r+=1)n.duplicates.push(o[s[r]]);n.usedDuplicates=new Array(i)}(0,n),function e(t,n,r,o,s,l){t.tag=null,t.dump=r,X(t,r,!1)||X(t,r,!0);var u=a.call(t.dump);o&&(o=t.flowLevel<0||t.flowLevel>n);var d,h,p="[object Object]"===u||"[object Array]"===u;if(p&&(h=-1!==(d=t.duplicates.indexOf(r))),(null!==t.tag&&"?"!==t.tag||h||2!==t.indent&&n>0)&&(s=!1),h&&t.usedDuplicates[d])t.dump="*ref_"+d;else{if(p&&h&&!t.usedDuplicates[d]&&(t.usedDuplicates[d]=!0),"[object Object]"===u)o&&0!==Object.keys(t.dump).length?(function(t,n,r,o){var s,a,l,u,d,h,p="",f=t.tag,m=Object.keys(r);if(!0===t.sortKeys)m.sort();else if("function"==typeof t.sortKeys)m.sort(t.sortKeys);else if(t.sortKeys)throw new i("sortKeys must be a boolean or a function");for(s=0,a=m.length;s<a;s+=1)h="",o&&0===s||(h+=I(t,n)),u=r[l=m[s]],e(t,n+1,l,!0,!0,!0)&&((d=null!==t.tag&&"?"!==t.tag||t.dump&&t.dump.length>1024)&&(t.dump&&c===t.dump.charCodeAt(0)?h+="?":h+="? "),h+=t.dump,d&&(h+=I(t,n)),e(t,n+1,u,!0,d)&&(t.dump&&c===t.dump.charCodeA
 t(0)?h+=":":h+=": ",p+=h+=t.dump));t.tag=f,t.dump=p||"{}"}(t,n,t.dump,s),h&&(t.dump="&ref_"+d+t.dump)):(function(t,n,r){var i,o,s,a,l,u="",c=t.tag,d=Object.keys(r);for(i=0,o=d.length;i<o;i+=1)l=t.condenseFlow?'"':"",0!==i&&(l+=", "),a=r[s=d[i]],e(t,n,s,!1,!1)&&(t.dump.length>1024&&(l+="? "),l+=t.dump+(t.condenseFlow?'"':"")+":"+(t.condenseFlow?"":" "),e(t,n,a,!1,!1)&&(u+=l+=t.dump));t.tag=c,t.dump="{"+u+"}"}(t,n,t.dump),h&&(t.dump="&ref_"+d+" "+t.dump));else if("[object Array]"===u)o&&0!==t.dump.length?(function(t,n,r,i){var o,s,a="",l=t.tag;for(o=0,s=r.length;o<s;o+=1)e(t,n+1,r[o],!0,!0)&&(i&&0===o||(a+=I(t,n)),t.dump&&c===t.dump.charCodeAt(0)?a+="-":a+="- ",a+=t.dump);t.tag=l,t.dump=a||"[]"}(t,n,t.dump,s),h&&(t.dump="&ref_"+d+t.dump)):(function(t,n,r){var i,o,s="",a=t.tag;for(i=0,o=r.length;i<o;i+=1)e(t,n,r[i],!1,!1)&&(0!==i&&(s+=","+(t.condenseFlow?"":" ")),s+=t.dump);t.tag=a,t.dump="["+s+"]"}(t,n,t.dump),h&&(t.dump="&ref_"+d+" "+t.dump));else{if("[object String]"!==u){if(t.skipI
 nvalid)return!1;throw new i("unacceptable kind of an object to dump "+u)}"?"!==t.tag&&H(t,t.dump,n,l)}null!==t.tag&&"?"!==t.tag&&(t.dump="!<"+t.tag+"> "+t.dump)}return!0}(n,0,e,!0,!0)?n.dump+"\n":""}e.exports.dump=K,e.exports.safeDump=function(e,t){return K(e,r.extend({schema:s},t))}},"51pc":function(e,t,n){var r=n("+pQw"),i=n("ewdp"),o=n("a/Sk"),s=n("yIWP")("IE_PROTO"),a=function(){},l=function(){var e,t=n("BQSv")("iframe"),r=o.length;for(t.style.display="none",n("Ed9o").appendChild(t),t.src="javascript:",(e=t.contentWindow.document).open(),e.write("<script>document.F=Object<\/script>"),e.close(),l=e.F;r--;)delete l.prototype[o[r]];return l()};e.exports=Object.create||function(e,t){var n;return null!==e?(a.prototype=r(e),n=new a,a.prototype=null,n[s]=e):n=l(),void 0===t?n:i(n,t)}},"570Y":function(e,t,n){(function(t){e.exports=function(){if(t.Blob)try{return new Blob(["asdf"],{type:"text/plain"}),Blob}catch(e){}var e=t.WebKitBlobBuilder||t.MozBlobBuilder||t.MSBlobBuilder;return func
 tion(t,n){var r=new e,i=n.endings,o=n.type;if(i)for(var s=0,a=t.length;s<a;++s)r.append(t[s],i);else for(s=0,a=t.length;s<a;++s)r.append(t[s]);return o?r.getBlob(o):r.getBlob()}}()}).call(t,n("fRUx"))},"5E84":function(e,t,n){"use strict";e.exports=o;var r=n("C7jF"),i=n("VIKU");function o(e){if(!(this instanceof o))return new o(e);r.call(this,e)}i.inherits=n("lDCR"),i.inherits(o,r),o.prototype._transform=function(e,t,n){n(null,e)}},"5GJ3":function(e,t,n){var r=n("gBtn"),i=n("+pQw"),o=r.key,s=r.map,a=r.store;r.exp({deleteMetadata:function(e,t){var n=arguments.length<3?void 0:o(arguments[2]),r=s(i(t),n,!1);if(void 0===r||!r.delete(e))return!1;if(r.size)return!0;var l=a.get(t);return l.delete(n),!!l.size||a.delete(t)}})},"5b+r":function(e,t){e.exports=function(e,t,n){var r=void 0===n;switch(t.length){case 0:return r?e():e.call(n);case 1:return r?e(t[0]):e.call(n,t[0]);case 2:return r?e(t[0],t[1]):e.call(n,t[0],t[1]);case 3:return r?e(t[0],t[1],t[2]):e.call(n,t[0],t[1],t[2]);case 4:retur
 n r?e(t[0],t[1],t[2],t[3]):e.call(n,t[0],t[1],t[2],t[3])}return e.apply(n,t)}},"5oDA":function(e,t,n){var r=n("JXkd"),i=n("+pQw"),o=function(e,t){if(i(e),!r(t)&&null!==t)throw TypeError(t+": can't set as prototype!")};e.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(e,t,r){try{(r=n("pa70")(Function.call,n("6De9").f(Object.prototype,"__proto__").set,2))(e,[]),t=!(e instanceof Array)}catch(e){t=!0}return function(e,n){return o(e,n),t?e.__proto__=n:r(e,n),e}}({},!1):void 0),check:o}},"5xM6":function(e,t,n){(function(){"use strict";var e,r,i,o,s,a,l,u,c=function(e,t){return function(){return e.apply(t,arguments)}},d={}.hasOwnProperty;l=n("Hhmb"),i=n("rOzH"),e=n("je7P"),a=n("GG7F"),u=n("0a2p").setImmediate,r=n("XPJv").defaults,o=function(e){return"object"==typeof e&&null!=e&&0===Object.keys(e).length},s=function(e,t,n){var r,i;for(r=0,i=e.length;r<i;r++)t=(0,e[r])(t,n);return t},t.Parser=function(n){function h(e){var n,i;if(this.parseString=c(this.parseString,this),this.re
 set=c(this.reset,this),this.assignOrPush=c(this.assignOrPush,this),this.processAsync=c(this.processAsync,this),!(this instanceof t.Parser))return new t.Parser(e);for(n in this.options={},i=r[.2])d.call(i,n)&&(this.options[n]=i[n]);for(n in e)d.call(e,n)&&(this.options[n]=e[n]);this.options.xmlns&&(this.options.xmlnskey=this.options.attrkey+"ns"),this.options.normalizeTags&&(this.options.tagNameProcessors||(this.options.tagNameProcessors=[]),this.options.tagNameProcessors.unshift(a.normalize)),this.reset()}return function(e,t){for(var n in t)d.call(t,n)&&(e[n]=t[n]);function r(){this.constructor=e}r.prototype=t.prototype,e.prototype=new r,e.__super__=t.prototype}(h,i.EventEmitter),h.prototype.processAsync=function(){var e,t;try{return this.remaining.length<=this.options.chunkSize?(e=this.remaining,this.remaining="",this.saxParser=this.saxParser.write(e),this.saxParser.close()):(e=this.remaining.substr(0,this.options.chunkSize),this.remaining=this.remaining.substr(this.options.chunkSi
 ze,this.remaining.length),this.saxParser=this.saxParser.write(e),u(this.processAsync))}catch(e){if(t=e,!this.saxParser.errThrown)return this.saxParser.errThrown=!0,this.emit(t)}},h.prototype.assignOrPush=function(e,t,n){return t in e?(e[t]instanceof Array||(e[t]=[e[t]]),e[t].push(n)):e[t]=this.options.explicitArray?[n]:n},h.prototype.reset=function(){var e,t,n,r,i;return this.removeAllListeners(),this.saxParser=l.parser(this.options.strict,{trim:!1,normalize:!1,xmlns:this.options.xmlns}),this.saxParser.errThrown=!1,this.saxParser.onerror=(i=this,function(e){if(i.saxParser.resume(),!i.saxParser.errThrown)return i.saxParser.errThrown=!0,i.emit("error",e)}),this.saxParser.onend=function(e){return function(){if(!e.saxParser.ended)return e.saxParser.ended=!0,e.emit("end",e.resultObject)}}(this),this.saxParser.ended=!1,this.EXPLICIT_CHARKEY=this.options.explicitCharkey,this.resultObject=null,r=[],e=this.options.attrkey,t=this.options.charkey,this.saxParser.onopentag=function(n){return fun
 ction(i){var o,a,l,u,c;if((l={})[t]="",!n.options.ignoreAttrs)for(o in c=i.attributes)d.call(c,o)&&(e in l||n.options.mergeAttrs||(l[e]={}),a=n.options.attrValueProcessors?s(n.options.attrValueProcessors,i.attributes[o],o):i.attributes[o],u=n.options.attrNameProcessors?s(n.options.attrNameProcessors,o):o,n.options.mergeAttrs?n.assignOrPush(l,u,a):l[e][u]=a);return l["#name"]=n.options.tagNameProcessors?s(n.options.tagNameProcessors,i.name):i.name,n.options.xmlns&&(l[n.options.xmlnskey]={uri:i.uri,local:i.local}),r.push(l)}}(this),this.saxParser.onclosetag=function(e){return function(){var n,i,a,l,u,c,h,p,f,m;if(c=r.pop(),u=c["#name"],e.options.explicitChildren&&e.options.preserveChildrenOrder||delete c["#name"],!0===c.cdata&&(n=c.cdata,delete c.cdata),f=r[r.length-1],c[t].match(/^\s*$/)&&!n?(i=c[t],delete c[t]):(e.options.trim&&(c[t]=c[t].trim()),e.options.normalize&&(c[t]=c[t].replace(/\s{2,}/g," ").trim()),c[t]=e.options.valueProcessors?s(e.options.valueProcessors,c[t],u):c[t],1==
 =Object.keys(c).length&&t in c&&!e.EXPLICIT_CHARKEY&&(c=c[t])),o(c)&&(c=""!==e.options.emptyTag?e.options.emptyTag:i),null!=e.options.validator&&(m="/"+function(){var e,t,n;for(n=[],e=0,t=r.length;e<t;e++)n.push((l=r[e])["#name"]);return n}().concat(u).join("/"),function(){try{c=e.options.validator(m,f&&f[u],c)}catch(t){return e.emit("error",t)}}()),e.options.explicitChildren&&!e.options.mergeAttrs&&"object"==typeof c)if(e.options.preserveChildrenOrder){if(f){for(a in f[e.options.childkey]=f[e.options.childkey]||[],h={},c)d.call(c,a)&&(h[a]=c[a]);f[e.options.childkey].push(h),delete c["#name"],1===Object.keys(c).length&&t in c&&!e.EXPLICIT_CHARKEY&&(c=c[t])}}else l={},e.options.attrkey in c&&(l[e.options.attrkey]=c[e.options.attrkey],delete c[e.options.attrkey]),!e.options.charsAsChildren&&e.options.charkey in c&&(l[e.options.charkey]=c[e.options.charkey],delete c[e.options.charkey]),Object.getOwnPropertyNames(c).length>0&&(l[e.options.childkey]=c),c=l;return r.length>0?e.assignOrPu
 sh(f,u,c):(e.options.explicitRoot&&(p=c,(c={})[u]=p),e.resultObject=c,e.saxParser.ended=!0,e.emit("end",e.resultObject))}}(this),n=function(e){return function(n){var i,o;if(o=r[r.length-1])return o[t]+=n,e.options.explicitChildren&&e.options.preserveChildrenOrder&&e.options.charsAsChildren&&(e.options.includeWhiteChars||""!==n.replace(/\\n/g,"").trim())&&(o[e.options.childkey]=o[e.options.childkey]||[],(i={"#name":"__text__"})[t]=n,e.options.normalize&&(i[t]=i[t].replace(/\s{2,}/g," ").trim()),o[e.options.childkey].push(i)),o}}(this),this.saxParser.ontext=n,this.saxParser.oncdata=function(e){var t;if(t=n(e))return t.cdata=!0}},h.prototype.parseString=function(t,n){var r;null!=n&&"function"==typeof n&&(this.on("end",function(e){return this.reset(),n(null,e)}),this.on("error",function(e){return this.reset(),n(e)}));try{return""===(t=t.toString()).trim()?(this.emit("end",null),!0):(t=e.stripBOM(t),this.options.async?(this.remaining=t,u(this.processAsync),this.saxParser):this.saxParser.
 write(t).close())}catch(e){if(r=e,!this.saxParser.errThrown&&!this.saxParser.ended)return this.emit("error",r),this.saxParser.errThrown=!0;if(this.saxParser.ended)throw r}},h}(),t.parseString=function(e,n,r){var i,o;return null!=r?("function"==typeof r&&(i=r),"object"==typeof n&&(o=n)):("function"==typeof n&&(i=n),o={}),new t.Parser(o).parseString(e,i)}}).call(this)},"6De9":function(e,t,n){var r=n("9e9+"),i=n("piOq"),o=n("+GRi"),s=n("A1WY"),a=n("rMsi"),l=n("gNkH"),u=Object.getOwnPropertyDescriptor;t.f=n("V+0c")?u:function(e,t){if(e=o(e),t=s(t,!0),l)try{return u(e,t)}catch(e){}if(a(e,t))return i(!r.f.call(e,t),e[t])}},"6F6V":function(e,t,n){"use strict";n("NhIS")("fontsize",function(e){return function(t){return e(this,"font","size",t)}})},"6GwK":function(e,t,n){var r=n("RT4T"),i=n("2Fuj");n("QN+J")("keys",function(){return function(e){return i(r(e))}})},"6IF7":function(e,t,n){"use strict";var r=n("vs5U");e.exports=new r("tag:yaml.org,2002:merge",{kind:"scalar",resolve:function(e){ret
 urn"<<"===e||null===e}})},"6QZ3":function(e,t,n){"use strict";(function(t,r){var i=n("1Rb4");function o(e){var t=this;this.next=null,this.entry=null,this.finish=function(){!function(e,t,n){var r=e.entry;for(e.entry=null;r;){var i=r.callback;t.pendingcb--,i(void 0),r=r.next}t.corkedRequestsFree?t.corkedRequestsFree.next=e:t.corkedRequestsFree=e}(t,e)}}e.exports=v;var s,a=!t.browser&&["v0.10","v0.9."].indexOf(t.version.slice(0,5))>-1?setImmediate:i;v.WritableState=g;var l=n("VIKU");l.inherits=n("lDCR");var u,c={deprecate:n("7RTT")},d=n("wHgO"),h=n("zOKz").Buffer,p=r.Uint8Array||function(){},f=n("iAGO");function m(){}function g(e,t){s=s||n("dJzE"),this.objectMode=!!(e=e||{}).objectMode,t instanceof s&&(this.objectMode=this.objectMode||!!e.writableObjectMode);var r=e.highWaterMark;this.highWaterMark=r||0===r?r:this.objectMode?16:16384,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1,th
 is.decodeStrings=!(!1===e.decodeStrings),this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){!function(e,t){var n=e._writableState,r=n.sync,o=n.writecb;if(function(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}(n),t)!function(e,t,n,r,o){--t.pendingcb,n?(i(o,r),i(E,e,t),e._writableState.errorEmitted=!0,e.emit("error",r)):(o(r),e._writableState.errorEmitted=!0,e.emit("error",r),E(e,t))}(e,n,r,t,o);else{var s=x(n);s||n.corked||n.bufferProcessing||!n.bufferedRequest||w(e,n),r?a(b,e,n,s,o):b(e,n,s,o)}}(t,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new o(this)}function v(e){if(s=s||n("dJzE"),!(u.call(v,this)||this instanceof s))return new v(e);this._writableState=new g(e,this),this.writable=!0,e&&("function"==typ
 eof e.write&&(this._write=e.write),"function"==typeof e.writev&&(this._writev=e.writev),"function"==typeof e.destroy&&(this._destroy=e.destroy),"function"==typeof e.final&&(this._final=e.final)),d.call(this)}function y(e,t,n,r,i,o,s){t.writelen=r,t.writecb=s,t.writing=!0,t.sync=!0,n?e._writev(i,t.onwrite):e._write(i,o,t.onwrite),t.sync=!1}function b(e,t,n,r){n||function(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}(e,t),t.pendingcb--,r(),E(e,t)}function w(e,t){t.bufferProcessing=!0;var n=t.bufferedRequest;if(e._writev&&n&&n.next){var r=new Array(t.bufferedRequestCount),i=t.corkedRequestsFree;i.entry=n;for(var s=0,a=!0;n;)r[s]=n,n.isBuf||(a=!1),n=n.next,s+=1;r.allBuffers=a,y(e,t,!0,t.length,r,"",i.finish),t.pendingcb++,t.lastBufferedRequest=null,i.next?(t.corkedRequestsFree=i.next,i.next=null):t.corkedRequestsFree=new o(t)}else{for(;n;){var l=n.chunk;if(y(e,t,!1,t.objectMode?1:l.length,l,n.encoding,n.callback),n=n.next,t.writing)break}null===n&&(t.lastBufferedRequ
 est=null)}t.bufferedRequestCount=0,t.bufferedRequest=n,t.bufferProcessing=!1}function x(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function k(e,t){e._final(function(n){t.pendingcb--,n&&e.emit("error",n),t.prefinished=!0,e.emit("prefinish"),E(e,t)})}function E(e,t){var n=x(t);return n&&(function(e,t){t.prefinished||t.finalCalled||("function"==typeof e._final?(t.pendingcb++,t.finalCalled=!0,i(k,e,t)):(t.prefinished=!0,e.emit("prefinish")))}(e,t),0===t.pendingcb&&(t.finished=!0,e.emit("finish"))),n}l.inherits(v,d),g.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(g.prototype,"buffer",{get:c.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(e){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(u=Function.protot
 ype[Symbol.hasInstance],Object.defineProperty(v,Symbol.hasInstance,{value:function(e){return!!u.call(this,e)||e&&e._writableState instanceof g}})):u=function(e){return e instanceof this},v.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},v.prototype.write=function(e,t,n){var r,o=this._writableState,s=!1,a=(h.isBuffer(r=e)||r instanceof p)&&!o.objectMode;return a&&!h.isBuffer(e)&&(e=function(e){return h.from(e)}(e)),"function"==typeof t&&(n=t,t=null),a?t="buffer":t||(t=o.defaultEncoding),"function"!=typeof n&&(n=m),o.ended?function(e,t){var n=new Error("write after end");e.emit("error",n),i(t,n)}(this,n):(a||function(e,t,n,r){var o=!0,s=!1;return null===n?s=new TypeError("May not write null values to stream"):"string"==typeof n||void 0===n||t.objectMode||(s=new TypeError("Invalid non-string/buffer chunk")),s&&(e.emit("error",s),i(r,s),o=!1),o}(this,o,e,n))&&(o.pendingcb++,s=function(e,t,n,r,i,o){if(!n){var s=function(e,t,n){return e.objectMode||!1=
 ==e.decodeStrings||"string"!=typeof t||(t=h.from(t,n)),t}(t,r,i);r!==s&&(n=!0,i="buffer",r=s)}var a=t.objectMode?1:r.length;t.length+=a;var l=t.length<t.highWaterMark;if(l||(t.needDrain=!0),t.writing||t.corked){var u=t.lastBufferedRequest;t.lastBufferedRequest={chunk:r,encoding:i,isBuf:n,callback:o,next:null},u?u.next=t.lastBufferedRequest:t.bufferedRequest=t.lastBufferedRequest,t.bufferedRequestCount+=1}else y(e,t,!1,a,r,i,o);return l}(this,o,a,e,t,n)),s},v.prototype.cork=function(){this._writableState.corked++},v.prototype.uncork=function(){var e=this._writableState;e.corked&&(e.corked--,e.writing||e.corked||e.finished||e.bufferProcessing||!e.bufferedRequest||w(this,e))},v.prototype.setDefaultEncoding=function(e){if("string"==typeof e&&(e=e.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((e+"").toLowerCase())>-1))throw new TypeError("Unknown encoding: "+e);return this._writableState.defaultEncoding=e,this},v.proto
 type._write=function(e,t,n){n(new Error("_write() is not implemented"))},v.prototype._writev=null,v.prototype.end=function(e,t,n){var r=this._writableState;"function"==typeof e?(n=e,e=null,t=null):"function"==typeof t&&(n=t,t=null),null!==e&&void 0!==e&&this.write(e,t),r.corked&&(r.corked=1,this.uncork()),r.ending||r.finished||function(e,t,n){t.ending=!0,E(e,t),n&&(t.finished?i(n):e.once("finish",n)),t.ended=!0,e.writable=!1}(this,r,n)},Object.defineProperty(v.prototype,"destroyed",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),v.prototype.destroy=f.destroy,v.prototype._undestroy=f.undestroy,v.prototype._destroy=function(e,t){this.end(),t(e)}}).call(t,n("1WNV"),n("fRUx"))},"6S6c":function(e,t,n){"use strict";var r=n("6Xbx"),i=n("E9/g"),o=function(){function e(e,t){this.predicate=e,this.thisArg=t}return e.prototype.call=function(e,t){return t.subscribe(new s(e,this.predicate
 ,this.thisArg))},e}(),s=function(e){function t(t,n,r){e.call(this,t),this.predicate=n,this.thisArg=r,this.count=0}return Object(r.b)(t,e),t.prototype._next=function(e){var t;try{t=this.predicate.call(this.thisArg,e,this.count++)}catch(e){return void this.destination.error(e)}t&&this.destination.next(e)},t}(i.a);t.a=function(e,t){return function(e,t){return function(n){return n.lift(new o(e,t))}}(e,t)(this)}},"6WxU":function(e,t,n){"use strict";var r;try{r=n("di1V")}catch(e){"undefined"!=typeof window&&(r=window.esprima)}var i=n("vs5U");e.exports=new i("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:function(e){if(null===e)return!1;try{var t=r.parse("("+e+")",{range:!0});return"Program"===t.type&&1===t.body.length&&"ExpressionStatement"===t.body[0].type&&"FunctionExpression"===t.body[0].expression.type}catch(e){return!1}},construct:function(e){var t,n="("+e+")",i=r.parse(n,{range:!0}),o=[];if("Program"!==i.type||1!==i.body.length||"ExpressionStatement"!==i.body[0].type||"Funct
 ionExpression"!==i.body[0].expression.type)throw new Error("Failed to resolve function");return i.body[0].expression.params.forEach(function(e){o.push(e.name)}),t=i.body[0].expression.body.range,new Function(o,n.slice(t[0]+1,t[1]-1))},predicate:function(e){return"[object Function]"===Object.prototype.toString.call(e)},represent:function(e){return e.toString()}})},"6Xbx":function(e,t,n){"use strict";t.b=function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)},n.d(t,"a",function(){return i});var r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])},i=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var i in t=arguments[n])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e}},"6tM8":function(e,t,n){"use strict";n("NhIS")("link",function(e){return function(t){return e(this,"a","href",t)}})},"
 76yl":function(e,t,n){"use strict";var r=n("+pQw"),i=n("A1WY");e.exports=function(e){if("string"!==e&&"number"!==e&&"default"!==e)throw TypeError("Incorrect hint");return i(r(this),"number"!=e)}},"7Fno":function(e,t,n){var r=n("6De9"),i=n("TJLg"),o=n("rMsi"),s=n("CDXM"),a=n("JXkd"),l=n("+pQw");s(s.S,"Reflect",{get:function e(t,n){var s,u,c=arguments.length<3?t:arguments[2];return l(t)===c?t[n]:(s=r.f(t,n))?o(s,"value")?s.value:void 0!==s.get?s.get.call(c):void 0:a(u=i(t))?e(u,n,c):void 0}})},"7RTT":function(e,t,n){(function(t){function n(e){try{if(!t.localStorage)return!1}catch(e){return!1}var n=t.localStorage[e];return null!=n&&"true"===String(n).toLowerCase()}e.exports=function(e,t){if(n("noDeprecation"))return e;var r=!1;return function(){if(!r){if(n("throwDeprecation"))throw new Error(t);n("traceDeprecation")?console.trace(t):console.warn(t),r=!0}return e.apply(this,arguments)}}}).call(t,n("fRUx"))},"7WRt":function(e,t){t.read=function(e,t,n,r,i){var o,s,a=8*i-r-1,l=(1<<a)-1,u=l
 >>1,c=-7,d=n?i-1:0,h=n?-1:1,p=e[t+d];for(d+=h,o=p&(1<<-c)-1,p>>=-c,c+=a;c>0;o=256*o+e[t+d],d+=h,c-=8);for(s=o&(1<<-c)-1,o>>=-c,c+=r;c>0;s=256*s+e[t+d],d+=h,c-=8);if(0===o)o=1-u;else{if(o===l)return s?NaN:1/0*(p?-1:1);s+=Math.pow(2,r),o-=u}return(p?-1:1)*s*Math.pow(2,o-r)},t.write=function(e,t,n,r,i,o){var s,a,l,u=8*o-i-1,c=(1<<u)-1,d=c>>1,h=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,p=r?0:o-1,f=r?1:-1,m=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(a=isNaN(t)?1:0,s=c):(s=Math.floor(Math.log(t)/Math.LN2),t*(l=Math.pow(2,-s))<1&&(s--,l*=2),(t+=s+d>=1?h/l:h*Math.pow(2,1-d))*l>=2&&(s++,l/=2),s+d>=c?(a=0,s=c):s+d>=1?(a=(t*l-1)*Math.pow(2,i),s+=d):(a=t*Math.pow(2,d-1)*Math.pow(2,i),s=0));i>=8;e[n+p]=255&a,p+=f,a/=256,i-=8);for(s=s<<i|a,u+=i;u>0;e[n+p]=255&s,p+=f,s/=256,u-=8);e[n+p-f]|=128*m}},"7Wga":function(e,t,n){"use strict";var r=n("iAzx");e.exports=new r({include:[n("tuZJ")]})},"8Gg3":function(e,t,n){var r=n("ptrv").parseInt,i=n("kFjN").trim,o=n("9BUF"),s=/^[-+]?0[xX]/;e.e
 xports=8!==r(o+"08")||22!==r(o+"0x16")?function(e,t){var n=i(String(e),3);return r(n,t>>>0||(s.test(n)?16:10))}:r},"8H1R":function(e,t,n){"use strict";var r=n("+pQw");e.exports=function(){var e=r(this),t="";return e.global&&(t+="g"),e.ignoreCase&&(t+="i"),e.multiline&&(t+="m"),e.unicode&&(t+="u"),e.sticky&&(t+="y"),t}},"8ofh":function(e,t,n){"use strict";t.a=function(e){return r=e,o};var r,i=n("NePw");function o(){try{return r.apply(this,arguments)}catch(e){return i.a.e=e,i.a}}},"8sYH":function(e,t,n){var r=n("gBtn"),i=n("+pQw"),o=n("TJLg"),s=r.has,a=r.key,l=function(e,t,n){if(s(e,t,n))return!0;var r=o(t);return null!==r&&l(e,r,n)};r.exp({hasMetadata:function(e,t){return l(e,i(t),arguments.length<3?void 0:a(arguments[2]))}})},"9BUF":function(e,t){e.exports="\t\n\v\f\r \xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029\ufeff"},"9ScN":function(e,t,n){"use strict";var r=n("51pc"),i=n("piOq"),o=n("P6IN"),s={};n("gxdV")(s,n("3
 r0D")("iterator"),function(){return this}),e.exports=function(e,t,n){e.prototype=r(s,{next:i(1,n)}),o(e,t+" Iterator")}},"9e9+":function(e,t){t.f={}.propertyIsEnumerable},"9wYb":function(e,t){var n=Math.ceil,r=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?r:n)(e)}},"9zis":function(e,t,n){"use strict";var r=n("iAzx");e.exports=new r({explicit:[n("sbK6"),n("Wa1K"),n("+UpI")]})},A1WY:function(e,t,n){var r=n("JXkd");e.exports=function(e,t){if(!r(e))return e;var n,i;if(t&&"function"==typeof(n=e.toString)&&!r(i=n.call(e)))return i;if("function"==typeof(n=e.valueOf)&&!r(i=n.call(e)))return i;if(!t&&"function"==typeof(n=e.toString)&&!r(i=n.call(e)))return i;throw TypeError("Can't convert object to primitive value")}},A3hK:function(e,t,n){var r=n("CDXM");r(r.S,"Math",{sign:n("tWtF")})},ABVq:function(e,t,n){var r=n("CDXM"),i=Math.atanh;r(r.S+r.F*!(i&&1/i(-0)<0),"Math",{atanh:function(e){return 0==(e=+e)?e:Math.log((1+e)/(1-e))/2}})},AOSR:function(e,t,n){var r=n("CDXM"),i=n("KM3d"
 ),o=String.fromCharCode,s=String.fromCodePoint;r(r.S+r.F*(!!s&&1!=s.length),"String",{fromCodePoint:function(e){for(var t,n=[],r=arguments.length,s=0;r>s;){if(t=+arguments[s++],i(t,1114111)!==t)throw RangeError(t+" is not a valid code point");n.push(t<65536?o(t):o(55296+((t-=65536)>>10),t%1024+56320))}return n.join("")}})},AP4T:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n("xIGM"),i=n("E9/g"),o=n("V7AE"),s=n("grVA"),a=n("mz3w");n.d(t,"Observable",function(){return l});var l=function(){function e(e){this._isScalar=!1,e&&(this._subscribe=e)}return e.prototype.lift=function(t){var n=new e;return n.source=this,n.operator=t,n},e.prototype.subscribe=function(e,t,n){var r=this.operator,a=function(e,t,n){if(e){if(e instanceof i.a)return e;if(e[o.a])return e[o.a]()}return e||t||n?new i.a(e,t,n):new i.a(s.a)}(e,t,n);if(r?r.call(a,this.source):a.add(this.source||!a.syncErrorThrowable?this._subscribe(a):this._trySubscribe(a)),a.syncErrorThrowable&&(a.sync
 ErrorThrowable=!1,a.syncErrorThrown))throw a.syncErrorValue;return a},e.prototype._trySubscribe=function(e){try{return this._subscribe(e)}catch(t){e.syncErrorThrown=!0,e.syncErrorValue=t,e.error(t)}},e.prototype.forEach=function(e,t){var n=this;if(t||(r.a.Rx&&r.a.Rx.config&&r.a.Rx.config.Promise?t=r.a.Rx.config.Promise:r.a.Promise&&(t=r.a.Promise)),!t)throw new Error("no Promise impl found");return new t(function(t,r){var i;i=n.subscribe(function(t){if(i)try{e(t)}catch(e){r(e),i.unsubscribe()}else e(t)},r,t)})},e.prototype._subscribe=function(e){return this.source.subscribe(e)},e.prototype[a.a]=function(){return this},e.prototype.pipe=function(){for(var e=[],t=0;t<arguments.length;t++)e[t-0]=arguments[t];return 0===e.length?this:((n=e)?1===n.length?n[0]:function(e){return n.reduce(function(e,t){return t(e)},e)}:function(){})(this);var n},e.prototype.toPromise=function(e){var t=this;if(e||(r.a.Rx&&r.a.Rx.config&&r.a.Rx.config.Promise?e=r.a.Rx.config.Promise:r.a.Promise&&(e=r.a.Promis
 e)),!e)throw new Error("no Promise impl found");return new e(function(e,n){var r;t.subscribe(function(e){return r=e},function(e){return n(e)},function(){return e(r)})})},e.create=function(t){return new e(t)},e}()},Abrq:function(e,t,n){var r=n("CDXM");r(r.P,"Array",{copyWithin:n("3MMU")}),n("YymB")("copyWithin")},AdFz:function(e,t,n){"use strict";n("NhIS")("fixed",function(e){return function(){return e(this,"tt","","")}})},"B++z":function(e,t,n){var r=n("CDXM");r(r.S,"Number",{isNaN:function(e){return e!=e}})},B1iP:function(e,t,n){"use strict";t.a=function(e){return"function"==typeof e}},BCYq:function(e,t,n){var r=n("pa70"),i=n("Wo2w"),o=n("RT4T"),s=n("rppw"),a=n("UKZQ");e.exports=function(e,t){var n=1==e,l=2==e,u=3==e,c=4==e,d=6==e,h=5==e||d,p=t||a;return function(t,a,f){for(var m,g,v=o(t),y=i(v),b=r(a,f,3),w=s(y.length),x=0,k=n?p(t,w):l?p(t,0):void 0;w>x;x++)if((h||x in y)&&(g=b(m=y[x],x,v),e))if(n)k[x]=g;else if(g)switch(e){case 3:return!0;case 5:return m;case 6:return x;case 2:k.
 push(m)}else if(c)return!1;return d?-1:u||c?c:k}}},BMSF:function(e,t,n){var r=n("CDXM"),i=n("T0iK");r(r.S+r.F*(Number.parseFloat!=i),"Number",{parseFloat:i})},BQSv:function(e,t,n){var r=n("JXkd"),i=n("ptrv").document,o=r(i)&&r(i.createElement);e.exports=function(e){return o?i.createElement(e):{}}},C7jF:function(e,t,n){"use strict";e.exports=o;var r=n("dJzE"),i=n("VIKU");function o(e){if(!(this instanceof o))return new o(e);r.call(this,e),this._transformState=new function(e){this.afterTransform=function(t,n){return function(e,t,n){var r=e._transformState;r.transforming=!1;var i=r.writecb;if(!i)return e.emit("error",new Error("write callback called multiple times"));r.writechunk=null,r.writecb=null,null!==n&&void 0!==n&&e.push(n),i(t);var o=e._readableState;o.reading=!1,(o.needReadable||o.length<o.highWaterMark)&&e._read(o.highWaterMark)}(e,t,n)},this.needTransform=!1,this.transforming=!1,this.writecb=null,this.writechunk=null,this.writeencoding=null}(this);var t=this;this._readableSt
 ate.needReadable=!0,this._readableState.sync=!1,e&&("function"==typeof e.transform&&(this._transform=e.transform),"function"==typeof e.flush&&(this._flush=e.flush)),this.once("prefinish",function(){"function"==typeof this._flush?this._flush(function(e,n){s(t,e,n)}):s(t)})}function s(e,t,n){if(t)return e.emit("error",t);null!==n&&void 0!==n&&e.push(n);var r=e._transformState;if(e._writableState.length)throw new Error("Calling transform done when ws.length != 0");if(r.transforming)throw new Error("Calling transform done when still transforming");return e.push(null)}i.inherits=n("lDCR"),i.inherits(o,r),o.prototype.push=function(e,t){return this._transformState.needTransform=!1,r.prototype.push.call(this,e,t)},o.prototype._transform=function(e,t,n){throw new Error("_transform() is not implemented")},o.prototype._write=function(e,t,n){var r=this._transformState;if(r.writecb=n,r.writechunk=e,r.writeencoding=t,!r.transforming){var i=this._readableState;(r.needTransform||i.needReadable||i.l
 ength<i.highWaterMark)&&this._read(i.highWaterMark)}},o.prototype._read=function(e){var t=this._transformState;null!==t.writechunk&&t.writecb&&!t.transforming?(t.transforming=!0,this._transform(t.writechunk,t.writeencoding,t.afterTransform)):t.needTransform=!0},o.prototype._destroy=function(e,t){var n=this;r.prototype._destroy.call(this,e,function(e){t(e),n.emit("close")})}},CCJL:function(e,t,n){var r=n("+GRi"),i=n("6De9").f;n("QN+J")("getOwnPropertyDescriptor",function(){return function(e,t){return i(r(e),t)}})},CDXM:function(e,t,n){var r=n("ptrv"),i=n("b4gG"),o=n("gxdV"),s=n("lfBE"),a=n("pa70"),l=function(e,t,n){var u,c,d,h,p=e&l.F,f=e&l.G,m=e&l.P,g=e&l.B,v=f?r:e&l.S?r[t]||(r[t]={}):(r[t]||{}).prototype,y=f?i:i[t]||(i[t]={}),b=y.prototype||(y.prototype={});for(u in f&&(n=t),n)d=((c=!p&&v&&void 0!==v[u])?v:n)[u],h=g&&c?a(d,r):m&&"function"==typeof d?a(Function.call,d):d,v&&s(v,u,d,e&l.U),y[u]!=d&&o(y,u,h),m&&b[u]!=d&&(b[u]=d)};r.core=i,l.F=1,l.G=2,l.S=4,l.P=8,l.B=16,l.W=32,l.U=64,l
 .R=128,e.exports=l},CDvF:function(e,t){var n={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==n.call(e)}},Cc13:function(e,t,n){var r=n("ptrv"),i=n("b4gG"),o=n("KGrn"),s=n("qrqn"),a=n("tose").f;e.exports=function(e){var t=i.Symbol||(i.Symbol=o?{}:r.Symbol||{});"_"==e.charAt(0)||e in t||a(t,e,{value:s.f(e)})}},CjAR:function(e,t,n){n("YD56")("replace",2,function(e,t,n){return[function(r,i){"use strict";var o=e(this),s=void 0==r?void 0:r[t];return void 0!==s?s.call(r,o,i):n.call(String(o),r,i)},n]})},CxwD:function(e,t,n){var r=n("JXkd"),i=n("xI8H").onFreeze;n("QN+J")("seal",function(e){return function(t){return e&&r(t)?e(i(t)):t}})},Cz5P:function(e,t,n){"use strict";var r=n("pa70"),i=n("CDXM"),o=n("RT4T"),s=n("ULWX"),a=n("KpI+"),l=n("rppw"),u=n("GVIH"),c=n("fC8q");i(i.S+i.F*!n("UlVq")(function(e){Array.from(e)}),"Array",{from:function(e){var t,n,i,d,h=o(e),p="function"==typeof this?this:Array,f=arguments.length,m=f>1?arguments[1]:void 0,g=void 0!==m,v=0,y=c(h);if
 (g&&(m=r(m,f>2?arguments[2]:void 0,2)),void 0==y||p==Array&&a(y))for(n=new p(t=l(h.length));t>v;v++)u(n,v,g?m(h[v],v):h[v]);else for(d=y.call(h),n=new p;!(i=d.next()).done;v++)u(n,v,g?s(d,m,[i.value,v],!0):i.value);return n.length=v,n}})},DTeS:function(e,t,n){"use strict";n("NhIS")("sub",function(e){return function(){return e(this,"sub","","")}})},Dpa0:function(e,t,n){(function(){var t,r,i,o,s,a,l,u,c,d,h,p,f,m={}.hasOwnProperty;l=n("laki"),u=n("tHiM"),t=n("IDuI"),r=n("Yklm"),c=n("2fm9"),h=n("rrJl"),p=n("QlFQ"),d=n("mQvM"),i=n("eEfA"),o=n("HIA2"),s=n("lTi8"),a=n("Ez+/"),f=n("Mvd/"),e.exports=function(e){function n(e,t){this.stream=e,n.__super__.constructor.call(this,t)}return function(e,t){for(var n in t)m.call(t,n)&&(e[n]=t[n]);function r(){this.constructor=e}r.prototype=t.prototype,e.prototype=new r,e.__super__=t.prototype}(n,f),n.prototype.document=function(e){var t,n,i,o,s,a,c,h;for(n=0,o=(a=e.children).length;n<o;n++)(t=a[n]).isLastRootNode=!1;for(e.children[e.children.length-1
 ].isLastRootNode=!0,h=[],i=0,s=(c=e.children).length;i<s;i++)switch(t=c[i],!1){case!(t instanceof l):h.push(this.declaration(t));break;case!(t instanceof u):h.push(this.docType(t));break;case!(t instanceof r):h.push(this.comment(t));break;case!(t instanceof d):h.push(this.processingInstruction(t));break;default:h.push(this.element(t))}return h},n.prototype.attribute=function(e){return this.stream.write(" "+e.name+'="'+e.value+'"')},n.prototype.cdata=function(e,t){return this.stream.write(this.space(t)+"<![CDATA["+e.text+"]]>"+this.endline(e))},n.prototype.comment=function(e,t){return this.stream.write(this.space(t)+"\x3c!-- "+e.text+" --\x3e"+this.endline(e))},n.prototype.declaration=function(e,t){return this.stream.write(this.space(t)),this.stream.write('<?xml version="'+e.version+'"'),null!=e.encoding&&this.stream.write(' encoding="'+e.encoding+'"'),null!=e.standalone&&this.stream.write(' standalone="'+e.standalone+'"'),this.stream.write(this.spacebeforeslash+"?>"),this.stream.wri
 te(this.endline(e))},n.prototype.docType=function(e,n){var l,u,c,h;if(n||(n=0),this.stream.write(this.space(n)),this.stream.write("<!DOCTYPE "+e.root().name),e.pubID&&e.sysID?this.stream.write(' PUBLIC "'+e.pubID+'" "'+e.sysID+'"'):e.sysID&&this.stream.write(' SYSTEM "'+e.sysID+'"'),e.children.length>0){for(this.stream.write(" ["),this.stream.write(this.endline(e)),u=0,c=(h=e.children).length;u<c;u++)switch(l=h[u],!1){case!(l instanceof i):this.dtdAttList(l,n+1);break;case!(l instanceof o):this.dtdElement(l,n+1);break;case!(l instanceof s):this.dtdEntity(l,n+1);break;case!(l instanceof a):this.dtdNotation(l,n+1);break;case!(l instanceof t):this.cdata(l,n+1);break;case!(l instanceof r):this.comment(l,n+1);break;case!(l instanceof d):this.processingInstruction(l,n+1);break;default:throw new Error("Unknown DTD node type: "+l.constructor.name)}this.stream.write("]")}return this.stream.write(this.spacebeforeslash+">"),this.stream.write(this.endline(e))},n.prototype.element=function(e,n){
 var i,o,s,a,l,u,f;for(a in n||(n=0),f=this.space(n),this.stream.write(f+"<"+e.name),l=e.attributes)m.call(l,a)&&this.attribute(l[a]);if(0===e.children.length||e.children.every(function(e){return""===e.value}))this.stream.write(this.allowEmpty?"></"+e.name+">":this.spacebeforeslash+"/>");else if(this.pretty&&1===e.children.length&&null!=e.children[0].value)this.stream.write(">"),this.stream.write(e.children[0].value),this.stream.write("</"+e.name+">");else{for(this.stream.write(">"+this.newline),o=0,s=(u=e.children).length;o<s;o++)switch(i=u[o],!1){case!(i instanceof t):this.cdata(i,n+1);break;case!(i instanceof r):this.comment(i,n+1);break;case!(i instanceof c):this.element(i,n+1);break;case!(i instanceof h):this.raw(i,n+1);break;case!(i instanceof p):this.text(i,n+1);break;case!(i instanceof d):this.processingInstruction(i,n+1);break;default:throw new Error("Unknown XML node type: "+i.constructor.name)}this.stream.write(f+"</"+e.name+">")}return this.stream.write(this.endline(e))},
 n.prototype.processingInstruction=function(e,t){return this.stream.write(this.space(t)+"<?"+e.target),e.value&&this.stream.write(" "+e.value),this.stream.write(this.spacebeforeslash+"?>"+this.endline(e))},n.prototype.raw=function(e,t){return this.stream.write(this.space(t)+e.value+this.endline(e))},n.prototype.text=function(e,t){return this.stream.write(this.space(t)+e.value+this.endline(e))},n.prototype.dtdAttList=function(e,t){return this.stream.write(this.space(t)+"<!ATTLIST "+e.elementName+" "+e.attributeName+" "+e.attributeType),"#DEFAULT"!==e.defaultValueType&&this.stream.write(" "+e.defaultValueType),e.defaultValue&&this.stream.write(' "'+e.defaultValue+'"'),this.stream.write(this.spacebeforeslash+">"+this.endline(e))},n.prototype.dtdElement=function(e,t){return this.stream.write(this.space(t)+"<!ELEMENT "+e.name+" "+e.value),this.stream.write(this.spacebeforeslash+">"+this.endline(e))},n.prototype.dtdEntity=function(e,t){return this.stream.write(this.space(t)+"<!ENTITY"),e.p
 e&&this.stream.write(" %"),this.stream.write(" "+e.name),e.value?this.stream.write(' "'+e.value+'"'):(e.pubID&&e.sysID?this.stream.write(' PUBLIC "'+e.pubID+'" "'+e.sysID+'"'):e.sysID&&this.stream.write(' SYSTEM "'+e.sysID+'"'),e.nData&&this.stream.write(" NDATA "+e.nData)),this.stream.write(this.spacebeforeslash+">"+this.endline(e))},n.prototype.dtdNotation=function(e,t){return this.stream.write(this.space(t)+"<!NOTATION "+e.name),e.pubID&&e.sysID?this.stream.write(' PUBLIC "'+e.pubID+'" "'+e.sysID+'"'):e.pubID?this.stream.write(' PUBLIC "'+e.pubID+'"'):e.sysID&&this.stream.write(' SYSTEM "'+e.sysID+'"'),this.stream.write(this.spacebeforeslash+">"+this.endline(e))},n.prototype.endline=function(e){return e.isLastRootNode?"":this.newline},n}()}).call(this)},"E9/g":function(e,t,n){"use strict";n.d(t,"a",function(){return l});var r=n("6Xbx"),i=n("B1iP"),o=n("qLnt"),s=n("grVA"),a=n("V7AE"),l=function(e){function t(n,r,i){switch(e.call(this),this.syncErrorValue=null,this.syncErrorThrown=
 !1,this.syncErrorThrowable=!1,this.isStopped=!1,arguments.length){case 0:this.destination=s.a;break;case 1:if(!n){this.destination=s.a;break}if("object"==typeof n){n instanceof t?(this.syncErrorThrowable=n.syncErrorThrowable,this.destination=n,this.destination.add(this)):(this.syncErrorThrowable=!0,this.destination=new u(this,n));break}default:this.syncErrorThrowable=!0,this.destination=new u(this,n,r,i)}}return Object(r.b)(t,e),t.prototype[a.a]=function(){return this},t.create=function(e,n,r){var i=new t(e,n,r);return i.syncErrorThrowable=!1,i},t.prototype.next=function(e){this.isStopped||this._next(e)},t.prototype.error=function(e){this.isStopped||(this.isStopped=!0,this._error(e))},t.prototype.complete=function(){this.isStopped||(this.isStopped=!0,this._complete())},t.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,e.prototype.unsubscribe.call(this))},t.prototype._next=function(e){this.destination.next(e)},t.prototype._error=function(e){this.destination.error(e),
 this.unsubscribe()},t.prototype._complete=function(){this.destination.complete(),this.unsubscribe()},t.prototype._unsubscribeAndRecycle=function(){var e=this._parent,t=this._parents;return this._parent=null,this._parents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parent=e,this._parents=t,this},t}(o.a),u=function(e){function t(t,n,r,o){var a;e.call(this),this._parentSubscriber=t;var l=this;Object(i.a)(n)?a=n:n&&(a=n.next,r=n.error,o=n.complete,n!==s.a&&(l=Object.create(n),Object(i.a)(l.unsubscribe)&&this.add(l.unsubscribe.bind(l)),l.unsubscribe=this.unsubscribe.bind(this))),this._context=l,this._next=a,this._error=r,this._complete=o}return Object(r.b)(t,e),t.prototype.next=function(e){if(!this.isStopped&&this._next){var t=this._parentSubscriber;t.syncErrorThrowable?this.__tryOrSetError(t,this._next,e)&&this.unsubscribe():this.__tryOrUnsub(this._next,e)}},t.prototype.error=function(e){if(!this.isStopped){var t=this._parentSubscriber;if(this._error)t.syncErrorThrowa
 ble?(this.__tryOrSetError(t,this._error,e),this.unsubscribe()):(this.__tryOrUnsub(this._error,e),this.unsubscribe());else{if(!t.syncErrorThrowable)throw this.unsubscribe(),e;t.syncErrorValue=e,t.syncErrorThrown=!0,this.unsubscribe()}}},t.prototype.complete=function(){var e=this;if(!this.isStopped){var t=this._parentSubscriber;if(this._complete){var n=function(){return e._complete.call(e._context)};t.syncErrorThrowable?(this.__tryOrSetError(t,n),this.unsubscribe()):(this.__tryOrUnsub(n),this.unsubscribe())}else this.unsubscribe()}},t.prototype.__tryOrUnsub=function(e,t){try{e.call(this._context,t)}catch(e){throw this.unsubscribe(),e}},t.prototype.__tryOrSetError=function(e,t,n){try{t.call(this._context,n)}catch(t){return e.syncErrorValue=t,e.syncErrorThrown=!0,!0}return!1},t.prototype._unsubscribe=function(){var e=this._parentSubscriber;this._context=null,this._parentSubscriber=null,e.unsubscribe()},t}(l)},EJO3:function(e,t,n){e.exports=n("Osec").Transform},EMG5:function(e,t,n){"use 
 strict";var r=n("vs5U"),i=Object.prototype.toString;e.exports=new r("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:function(e){if(null===e)return!0;var t,n,r,o,s,a=e;for(s=new Array(a.length),t=0,n=a.length;t<n;t+=1){if("[object Object]"!==i.call(r=a[t]))return!1;if(1!==(o=Object.keys(r)).length)return!1;s[t]=[o[0],r[o[0]]]}return!0},construct:function(e){if(null===e)return[];var t,n,r,i,o,s=e;for(o=new Array(s.length),t=0,n=s.length;t<n;t+=1)r=s[t],i=Object.keys(r),o[t]=[i[0],r[i[0]]];return o}})},"Ecq+":function(e,t,n){"use strict";n.d(t,"a",function(){return i});var r=n("6Xbx"),i=function(e){function t(t){e.call(this),this.scheduler=t}return Object(r.b)(t,e),t.create=function(e){return new t(e)},t.dispatch=function(e){e.subscriber.complete()},t.prototype._subscribe=function(e){var n=this.scheduler;if(n)return n.schedule(t.dispatch,0,{subscriber:e});e.complete()},t}(n("AP4T").Observable)},Ed9o:function(e,t,n){var r=n("ptrv").document;e.exports=r&&r.documentElement},"Ez+/":func
 tion(e,t,n){(function(){var t,r={}.hasOwnProperty;t=n("p7eS"),e.exports=function(e){function n(e,t,r){if(n.__super__.constructor.call(this,e),null==t)throw new Error("Missing notation name");if(!r.pubID&&!r.sysID)throw new Error("Public or system identifiers are required for an external entity");this.name=this.stringify.eleName(t),null!=r.pubID&&(this.pubID=this.stringify.dtdPubID(r.pubID)),null!=r.sysID&&(this.sysID=this.stringify.dtdSysID(r.sysID))}return function(e,t){for(var n in t)r.call(t,n)&&(e[n]=t[n]);function i(){this.constructor=e}i.prototype=t.prototype,e.prototype=new i,e.__super__=t.prototype}(n,t),n.prototype.toString=function(e){return this.options.writer.set(e).dtdNotation(this)},n}()}).call(this)},F6ce:function(e,t,n){var r=n("TM12"),i=n("Wy9r");e.exports=function(e,t,n){if(r(t))throw TypeError("String#"+n+" doesn't accept regex!");return String(i(e))}},FALa:function(e,t,n){var r=n("CDXM"),i=n("V/jj"),o=Math.exp;r(r.S+r.F*n("umMR")(function(){return-2e-17!=!Math.si
 nh(-2e-17)}),"Math",{sinh:function(e){return Math.abs(e=+e)<1?(i(e)-i(-e))/2:(o(e-1)-o(-e-1))*(Math.E/2)}})},FyA0:function(e,t,n){n("QN+J")("getOwnPropertyNames",function(){return n("y/ue").f})},GG7F:function(e,t){(function(){"use strict";var e;e=new RegExp(/(?!xmlns)^.*:/),t.normalize=function(e){return e.toLowerCase()},t.firstCharLowerCase=function(e){return e.charAt(0).toLowerCase()+e.slice(1)},t.stripPrefix=function(t){return t.replace(e,"")},t.parseNumbers=function(e){return isNaN(e)||(e=e%1==0?parseInt(e,10):parseFloat(e)),e},t.parseBooleans=function(e){return/^(?:true|false)$/i.test(e)&&(e="true"===e.toLowerCase()),e}}).call(this)},GMpo:function(e,t,n){"use strict";n("NhIS")("italics",function(e){return function(){return e(this,"i","","")}})},GQSG:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n("AP4T"),i=n("dmC+");r.Observable.prototype.map=i.a},GVIH:function(e,t,n){"use strict";var r=n("tose"),i=n("piOq");e.exports=function(e,t,n){t in e
 ?r.f(e,t,i(0,n)):e[t]=n}},GWWY:function(e,t,n){n("mzUQ"),n("b8HQ"),e.exports=n("b4gG").Symbol},GZB0:function(e,t,n){"use strict";n.d(t,"a",function(){return r});var r=n("Oryw").a.of},"Gki+":function(e,t,n){var r=n("CDXM"),i=n("IU2P");r(r.P+r.F*(Date.prototype.toISOString!==i),"Date",{toISOString:i})},H3aY:function(e,t,n){var r=n("CDXM"),i=n("ptrv").isFinite;r(r.S,"Number",{isFinite:function(e){return"number"==typeof e&&i(e)}})},HCkn:function(e,t,n){var r=n("Ps07"),i=n("WGJ/"),o=n("gBtn"),s=n("+pQw"),a=n("TJLg"),l=o.keys,u=o.key,c=function(e,t){var n=l(e,t),o=a(e);if(null===o)return n;var s=c(o,t);return s.length?n.length?i(new r(n.concat(s))):s:n};o.exp({getMetadataKeys:function(e){return c(s(e),arguments.length<2?void 0:u(arguments[1]))}})},HECM:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n("AP4T"),i=n("GZB0");r.Observable.of=i.a},HIA2:function(e,t,n){(function(){var t,r={}.hasOwnProperty;t=n("p7eS"),e.exports=function(e){function n(e,t,r){if
 (n.__super__.constructor.call(this,e),null==t)throw new Error("Missing DTD element name");r||(r="(#PCDATA)"),Array.isArray(r)&&(r="("+r.join(",")+")"),this.name=this.stringify.eleName(t),this.value=this.stringify.dtdElementValue(r)}return function(e,t){for(var n in t)r.call(t,n)&&(e[n]=t[n]);function i(){this.constructor=e}i.prototype=t.prototype,e.prototype=new i,e.__super__=t.prototype}(n,t),n.prototype.toString=function(e){return this.options.writer.set(e).dtdElement(this)},n}()}).call(this)},HK9U:function(e,t,n){"use strict";n("NhIS")("sup",function(e){return function(){return e(this,"sup","","")}})},Hhmb:function(e,t,n){(function(e){!function(t){t.parser=function(e,t){return new o(e,t)},t.SAXParser=o,t.SAXStream=a,t.createStream=function(e,t){return new a(e,t)},t.MAX_BUFFER_LENGTH=65536;var r,i=["comment","sgmlDecl","textNode","tagName","doctype","procInstName","procInstBody","entity","attribName","attribValue","cdata","script"];function o(e,n){if(!(this instanceof o))return ne
 w o(e,n);!function(e){for(var t=0,n=i.length;t<n;t++)e[i[t]]=""}(this),this.q=this.c="",this.bufferCheckPosition=t.MAX_BUFFER_LENGTH,this.opt=n||{},this.opt.lowercase=this.opt.lowercase||this.opt.lowercasetags,this.looseCase=this.opt.lowercase?"toLowerCase":"toUpperCase",this.tags=[],this.closed=this.closedRoot=this.sawRoot=!1,this.tag=this.error=null,this.strict=!!e,this.noscript=!(!e&&!this.opt.noscript),this.state=_.BEGIN,this.strictEntities=this.opt.strictEntities,this.ENTITIES=this.strictEntities?Object.create(t.XML_ENTITIES):Object.create(t.ENTITIES),this.attribList=[],this.opt.xmlns&&(this.ns=Object.create(h)),this.trackPosition=!1!==this.opt.position,this.trackPosition&&(this.position=this.line=this.column=0),A(this,"onready")}t.EVENTS=["text","processinginstruction","sgmldeclaration","doctype","comment","opentagstart","attribute","opentag","closetag","opencdata","cdata","closecdata","error","end","ready","script","opennamespace","closenamespace"],Object.create||(Object.crea
 te=function(e){function t(){}return t.prototype=e,new t}),Object.keys||(Object.keys=function(e){var t=[];for(var n in e)e.hasOwnProperty(n)&&t.push(n);return t}),o.prototype={end:function(){N(this)},write:function(e){if(this.error)throw this.error;if(this.closed)return R(this,"Cannot write after close. Assign an onready handler.");if(null===e)return N(this);"object"==typeof e&&(e=e.toString());for(var n=0,r="";r=z(e,n++),this.c=r,r;)switch(this.trackPosition&&(this.position++,"\n"===r?(this.line++,this.column=0):this.column++),this.state){case _.BEGIN:if(this.state=_.BEGIN_WHITESPACE,"\ufeff"===r)continue;$(this,r);continue;case _.BEGIN_WHITESPACE:$(this,r);continue;case _.TEXT:if(this.sawRoot&&!this.closedRoot){for(var o=n-1;r&&"<"!==r&&"&"!==r;)(r=z(e,n++))&&this.trackPosition&&(this.position++,"\n"===r?(this.line++,this.column=0):this.column++);this.textNode+=e.substring(o,n-1)}"<"!==r||this.sawRoot&&this.closedRoot&&!this.strict?(v(r)||this.sawRoot&&!this.closedRoot||O(this,"Tex
 t data outside of root node."),"&"===r?this.state=_.TEXT_ENTITY:this.textNode+=r):(this.state=_.OPEN_WAKA,this.startTagPosition=this.position);continue;case _.SCRIPT:"<"===r?this.state=_.SCRIPT_ENDING:this.script+=r;continue;case _.SCRIPT_ENDING:"/"===r?this.state=_.CLOSE_TAG:(this.script+="<"+r,this.state=_.SCRIPT);continue;case _.OPEN_WAKA:"!"===r?(this.state=_.SGML_DECL,this.sgmlDecl=""):v(r)||(w(p,r)?(this.state=_.OPEN_TAG,this.tagName=r):"/"===r?(this.state=_.CLOSE_TAG,this.tagName=""):"?"===r?(this.state=_.PROC_INST,this.procInstName=this.procInstBody=""):(O(this,"Unencoded <"),this.startTagPosition+1<this.position&&(r=new Array(this.position-this.startTagPosition).join(" ")+r),this.textNode+="<"+r,this.state=_.TEXT));continue;case _.SGML_DECL:(this.sgmlDecl+r).toUpperCase()===l?(T(this,"onopencdata"),this.state=_.CDATA,this.sgmlDecl="",this.cdata=""):this.sgmlDecl+r==="--"?(this.state=_.COMMENT,this.comment="",this.sgmlDecl=""):(this.sgmlDecl+r).toUpperCase()===u?(this.state=
 _.DOCTYPE,(this.doctype||this.sawRoot)&&O(this,"Inappropriately located doctype declaration"),this.doctype="",this.sgmlDecl=""):">"===r?(T(this,"onsgmldeclaration",this.sgmlDecl),this.sgmlDecl="",this.state=_.TEXT):y(r)?(this.state=_.SGML_DECL_QUOTED,this.sgmlDecl+=r):this.sgmlDecl+=r;continue;case _.SGML_DECL_QUOTED:r===this.q&&(this.state=_.SGML_DECL,this.q=""),this.sgmlDecl+=r;continue;case _.DOCTYPE:">"===r?(this.state=_.TEXT,T(this,"ondoctype",this.doctype),this.doctype=!0):(this.doctype+=r,"["===r?this.state=_.DOCTYPE_DTD:y(r)&&(this.state=_.DOCTYPE_QUOTED,this.q=r));continue;case _.DOCTYPE_QUOTED:this.doctype+=r,r===this.q&&(this.q="",this.state=_.DOCTYPE);continue;case _.DOCTYPE_DTD:this.doctype+=r,"]"===r?this.state=_.DOCTYPE:y(r)&&(this.state=_.DOCTYPE_DTD_QUOTED,this.q=r);continue;case _.DOCTYPE_DTD_QUOTED:this.doctype+=r,r===this.q&&(this.state=_.DOCTYPE_DTD,this.q="");continue;case _.COMMENT:"-"===r?this.state=_.COMMENT_ENDING:this.comment+=r;continue;case _.COMMENT_END
 ING:"-"===r?(this.state=_.COMMENT_ENDED,this.comment=F(this.opt,this.comment),this.comment&&T(this,"oncomment",this.comment),this.comment=""):(this.comment+="-"+r,this.state=_.COMMENT);continue;case _.COMMENT_ENDED:">"!==r?(O(this,"Malformed comment"),this.comment+="--"+r,this.state=_.COMMENT):this.state=_.TEXT;continue;case _.CDATA:"]"===r?this.state=_.CDATA_ENDING:this.cdata+=r;continue;case _.CDATA_ENDING:"]"===r?this.state=_.CDATA_ENDING_2:(this.cdata+="]"+r,this.state=_.CDATA);continue;case _.CDATA_ENDING_2:">"===r?(this.cdata&&T(this,"oncdata",this.cdata),T(this,"onclosecdata"),this.cdata="",this.state=_.TEXT):"]"===r?this.cdata+="]":(this.cdata+="]]"+r,this.state=_.CDATA);continue;case _.PROC_INST:"?"===r?this.state=_.PROC_INST_ENDING:v(r)?this.state=_.PROC_INST_BODY:this.procInstName+=r;continue;case _.PROC_INST_BODY:if(!this.procInstBody&&v(r))continue;"?"===r?this.state=_.PROC_INST_ENDING:this.procInstBody+=r;continue;case _.PROC_INST_ENDING:">"===r?(T(this,"onprocessingin
 struction",{name:this.procInstName,body:this.procInstBody}),this.procInstName=this.procInstBody="",this.state=_.TEXT):(this.procInstBody+="?"+r,this.state=_.PROC_INST_BODY);continue;case _.OPEN_TAG:w(f,r)?this.tagName+=r:(L(this),">"===r?P(this):"/"===r?this.state=_.OPEN_TAG_SLASH:(v(r)||O(this,"Invalid character in tag name"),this.state=_.ATTRIB));continue;case _.OPEN_TAG_SLASH:">"===r?(P(this,!0),B(this)):(O(this,"Forward-slash in opening tag not followed by >"),this.state=_.ATTRIB);continue;case _.ATTRIB:if(v(r))continue;">"===r?P(this):"/"===r?this.state=_.OPEN_TAG_SLASH:w(p,r)?(this.attribName=r,this.attribValue="",this.state=_.ATTRIB_NAME):O(this,"Invalid attribute name");continue;case _.ATTRIB_NAME:"="===r?this.state=_.ATTRIB_VALUE:">"===r?(O(this,"Attribute without value"),this.attribValue=this.attribName,M(this),P(this)):v(r)?this.state=_.ATTRIB_NAME_SAW_WHITE:w(f,r)?this.attribName+=r:O(this,"Invalid attribute name");continue;case _.ATTRIB_NAME_SAW_WHITE:if("="===r)this.st
 ate=_.ATTRIB_VALUE;else{if(v(r))continue;O(this,"Attribute without value"),this.tag.attributes[this.attribName]="",this.attribValue="",T(this,"onattribute",{name:this.attribName,value:""}),this.attribName="",">"===r?P(this):w(p,r)?(this.attribName=r,this.state=_.ATTRIB_NAME):(O(this,"Invalid attribute name"),this.state=_.ATTRIB)}continue;case _.ATTRIB_VALUE:if(v(r))continue;y(r)?(this.q=r,this.state=_.ATTRIB_VALUE_QUOTED):(O(this,"Unquoted attribute value"),this.state=_.ATTRIB_VALUE_UNQUOTED,this.attribValue=r);continue;case _.ATTRIB_VALUE_QUOTED:if(r!==this.q){"&"===r?this.state=_.ATTRIB_VALUE_ENTITY_Q:this.attribValue+=r;continue}M(this),this.q="",this.state=_.ATTRIB_VALUE_CLOSED;continue;case _.ATTRIB_VALUE_CLOSED:v(r)?this.state=_.ATTRIB:">"===r?P(this):"/"===r?this.state=_.OPEN_TAG_SLASH:w(p,r)?(O(this,"No whitespace between attributes"),this.attribName=r,this.attribValue="",this.state=_.ATTRIB_NAME):O(this,"Invalid attribute name");continue;case _.ATTRIB_VALUE_UNQUOTED:if(!b(r
 )){"&"===r?this.state=_.ATTRIB_VALUE_ENTITY_U:this.attribValue+=r;continue}M(this),">"===r?P(this):this.state=_.ATTRIB;continue;case _.CLOSE_TAG:if(this.tagName)">"===r?B(this):w(f,r)?this.tagName+=r:this.script?(this.script+="</"+this.tagName,this.tagName="",this.state=_.SCRIPT):(v(r)||O(this,"Invalid tagname in closing tag"),this.state=_.CLOSE_TAG_SAW_WHITE);else{if(v(r))continue;x(p,r)?this.script?(this.script+="</"+r,this.state=_.SCRIPT):O(this,"Invalid tagname in closing tag."):this.tagName=r}continue;case _.CLOSE_TAG_SAW_WHITE:if(v(r))continue;">"===r?B(this):O(this,"Invalid characters in closing tag");continue;case _.TEXT_ENTITY:case _.ATTRIB_VALUE_ENTITY_Q:case _.ATTRIB_VALUE_ENTITY_U:var s,a;switch(this.state){case _.TEXT_ENTITY:s=_.TEXT,a="textNode";break;case _.ATTRIB_VALUE_ENTITY_Q:s=_.ATTRIB_VALUE_QUOTED,a="attribValue";break;case _.ATTRIB_VALUE_ENTITY_U:s=_.ATTRIB_VALUE_UNQUOTED,a="attribValue"}";"===r?(this[a]+=j(this),this.entity="",this.state=s):w(this.entity.length
 ?g:m,r)?this.entity+=r:(O(this,"Invalid character in entity name"),this[a]+="&"+this.entity+r,this.entity="",this.state=s);continue;default:throw new Error(this,"Unknown state: "+this.state)}return this.position>=this.bufferCheckPosition&&function(e){for(var n=Math.max(t.MAX_BUFFER_LENGTH,10),r=0,o=0,s=i.length;o<s;o++){var a=e[i[o]].length;if(a>n)switch(i[o]){case"textNode":D(e);break;case"cdata":T(e,"oncdata",e.cdata),e.cdata="";break;case"script":T(e,"onscript",e.script),e.script="";break;default:R(e,"Max buffer length exceeded: "+i[o])}r=Math.max(r,a)}e.bufferCheckPosition=t.MAX_BUFFER_LENGTH-r+e.position}(this),this},resume:function(){return this.error=null,this},close:function(){return this.write(null)},flush:function(){D(this),""!==this.cdata&&(T(this,"oncdata",this.cdata),this.cdata=""),""!==this.script&&(T(this,"onscript",this.script),this.script="")}};try{r=n("+Bur").Stream}catch(e){r=function(){}}var s=t.EVENTS.filter(function(e){return"error"!==e&&"end"!==e});function a(
 e,t){if(!(this instanceof a))return new a(e,t);r.apply(this),this._parser=new o(e,t),this.writable=!0,this.readable=!0;var n=this;this._parser.onend=function(){n.emit("end")},this._parser.onerror=function(e){n.emit("error",e),n._parser.error=null},this._decoder=null,s.forEach(function(e){Object.defineProperty(n,"on"+e,{get:function(){return n._parser["on"+e]},set:function(t){if(!t)return n.removeAllListeners(e),n._parser["on"+e]=t,t;n.on(e,t)},enumerable:!0,configurable:!1})})}(a.prototype=Object.create(r.prototype,{constructor:{value:a}})).write=function(t){if("function"==typeof e&&"function"==typeof e.isBuffer&&e.isBuffer(t)){if(!this._decoder){var r=n("/cYh").StringDecoder;this._decoder=new r("utf8")}t=this._decoder.write(t)}return this._parser.write(t.toString()),this.emit("data",t),!0},a.prototype.end=function(e){return e&&e.length&&this.write(e),this._parser.end(),!0},a.prototype.on=function(e,t){var n=this;return n._parser["on"+e]||-1===s.indexOf(e)||(n._parser["on"+e]=functi
 on(){var t=1===arguments.length?[arguments[0]]:Array.apply(null,arguments);t.splice(0,0,e),n.emit.apply(n,t)}),r.prototype.on.call(n,e,t)};var l="[CDATA[",u="DOCTYPE",c="http://www.w3.org/XML/1998/namespace",d="http://www.w3.org/2000/xmlns/",h={xml:c,xmlns:d},p=/[:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/,f=/[:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u00B7\u0300-\u036F\u203F-\u2040.\d-]/,m=/[#:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/,g=/[#:_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u00B7\u0300-\u036F\u203F-\u2040.\d-]/;function v(e){return" "===e||"\
 n"===e||"\r"===e||"\t"===e}function y(e){return'"'===e||"'"===e}function b(e){return">"===e||v(e)}function w(e,t){return e.test(t)}function x(e,t){return!w(e,t)}var k,E,C,_=0;for(var S in t.STATE={BEGIN:_++,BEGIN_WHITESPACE:_++,TEXT:_++,TEXT_ENTITY:_++,OPEN_WAKA:_++,SGML_DECL:_++,SGML_DECL_QUOTED:_++,DOCTYPE:_++,DOCTYPE_QUOTED:_++,DOCTYPE_DTD:_++,DOCTYPE_DTD_QUOTED:_++,COMMENT_STARTING:_++,COMMENT:_++,COMMENT_ENDING:_++,COMMENT_ENDED:_++,CDATA:_++,CDATA_ENDING:_++,CDATA_ENDING_2:_++,PROC_INST:_++,PROC_INST_BODY:_++,PROC_INST_ENDING:_++,OPEN_TAG:_++,OPEN_TAG_SLASH:_++,ATTRIB:_++,ATTRIB_NAME:_++,ATTRIB_NAME_SAW_WHITE:_++,ATTRIB_VALUE:_++,ATTRIB_VALUE_QUOTED:_++,ATTRIB_VALUE_CLOSED:_++,ATTRIB_VALUE_UNQUOTED:_++,ATTRIB_VALUE_ENTITY_Q:_++,ATTRIB_VALUE_ENTITY_U:_++,CLOSE_TAG:_++,CLOSE_TAG_SAW_WHITE:_++,SCRIPT:_++,SCRIPT_ENDING:_++},t.XML_ENTITIES={amp:"&",gt:">",lt:"<",quot:'"',apos:"'"},t.ENTITIES={amp:"&",gt:">",lt:"<",quot:'"',apos:"'",AElig:198,Aacute:193,Acirc:194,Agrave:192,Aring:19
 7,Atilde:195,Auml:196,Ccedil:199,ETH:208,Eacute:201,Ecirc:202,Egrave:200,Euml:203,Iacute:205,Icirc:206,Igrave:204,Iuml:207,Ntilde:209,Oacute:211,Ocirc:212,Ograve:210,Oslash:216,Otilde:213,Ouml:214,THORN:222,Uacute:218,Ucirc:219,Ugrave:217,Uuml:220,Yacute:221,aacute:225,acirc:226,aelig:230,agrave:224,aring:229,atilde:227,auml:228,ccedil:231,eacute:233,ecirc:234,egrave:232,eth:240,euml:235,iacute:237,icirc:238,igrave:236,iuml:239,ntilde:241,oacute:243,ocirc:244,ograve:242,oslash:248,otilde:245,ouml:246,szlig:223,thorn:254,uacute:250,ucirc:251,ugrave:249,uuml:252,yacute:253,yuml:255,copy:169,reg:174,nbsp:160,iexcl:161,cent:162,pound:163,curren:164,yen:165,brvbar:166,sect:167,uml:168,ordf:170,laquo:171,not:172,shy:173,macr:175,deg:176,plusmn:177,sup1:185,sup2:178,sup3:179,acute:180,micro:181,para:182,middot:183,cedil:184,ordm:186,raquo:187,frac14:188,frac12:189,frac34:190,iquest:191,times:215,divide:247,OElig:338,oelig:339,Scaron:352,scaron:353,Yuml:376,fnof:402,circ:710,tilde:732,Alpha
 :913,Beta:914,Gamma:915,Delta:916,Epsilon:917,Zeta:918,Eta:919,Theta:920,Iota:921,Kappa:922,Lambda:923,Mu:924,Nu:925,Xi:926,Omicron:927,Pi:928,Rho:929,Sigma:931,Tau:932,Upsilon:933,Phi:934,Chi:935,Psi:936,Omega:937,alpha:945,beta:946,gamma:947,delta:948,epsilon:949,zeta:950,eta:951,theta:952,iota:953,kappa:954,lambda:955,mu:956,nu:957,xi:958,omicron:959,pi:960,rho:961,sigmaf:962,sigma:963,tau:964,upsilon:965,phi:966,chi:967,psi:968,omega:969,thetasym:977,upsih:978,piv:982,ensp:8194,emsp:8195,thinsp:8201,zwnj:8204,zwj:8205,lrm:8206,rlm:8207,ndash:8211,mdash:8212,lsquo:8216,rsquo:8217,sbquo:8218,ldquo:8220,rdquo:8221,bdquo:8222,dagger:8224,Dagger:8225,bull:8226,hellip:8230,permil:8240,prime:8242,Prime:8243,lsaquo:8249,rsaquo:8250,oline:8254,frasl:8260,euro:8364,image:8465,weierp:8472,real:8476,trade:8482,alefsym:8501,larr:8592,uarr:8593,rarr:8594,darr:8595,harr:8596,crarr:8629,lArr:8656,uArr:8657,rArr:8658,dArr:8659,hArr:8660,forall:8704,part:8706,exist:8707,empty:8709,nabla:8711,isin
 :8712,notin:8713,ni:8715,prod:8719,sum:8721,minus:8722,lowast:8727,radic:8730,prop:8733,infin:8734,ang:8736,and:8743,or:8744,cap:8745,cup:8746,int:8747,there4:8756,sim:8764,cong:8773,asymp:8776,ne:8800,equiv:8801,le:8804,ge:8805,sub:8834,sup:8835,nsub:8836,sube:8838,supe:8839,oplus:8853,otimes:8855,perp:8869,sdot:8901,lceil:8968,rceil:8969,lfloor:8970,rfloor:8971,lang:9001,rang:9002,loz:9674,spades:9824,clubs:9827,hearts:9829,diams:9830},Object.keys(t.ENTITIES).forEach(function(e){var n=t.ENTITIES[e],r="number"==typeof n?String.fromCharCode(n):n;t.ENTITIES[e]=r}),t.STATE)t.STATE[t.STATE[S]]=S;function A(e,t,n){e[t]&&e[t](n)}function T(e,t,n){e.textNode&&D(e),A(e,t,n)}function D(e){e.textNode=F(e.opt,e.textNode),e.textNode&&A(e,"ontext",e.textNode),e.textNode=""}function F(e,t){return e.trim&&(t=t.trim()),e.normalize&&(t=t.replace(/\s+/g," ")),t}function R(e,t){return D(e),e.trackPosition&&(t+="\nLine: "+e.line+"\nColumn: "+e.column+"\nChar: "+e.c),t=new Error(t),e.error=t,A(e,"onerr
 or",t),e}function N(e){return e.sawRoot&&!e.closedRoot&&O(e,"Unclosed root tag"),e.state!==_.BEGIN&&e.state!==_.BEGIN_WHITESPACE&&e.state!==_.TEXT&&R(e,"Unexpected end"),D(e),e.c="",e.closed=!0,A(e,"onend"),o.call(e,e.strict,e.opt),e}function O(e,t){if("object"!=typeof e||!(e instanceof o))throw new Error("bad call to strictFail");e.strict&&R(e,t)}function L(e){e.strict||(e.tagName=e.tagName[e.looseCase]());var t=e.tags[e.tags.length-1]||e,n=e.tag={name:e.tagName,attributes:{}};e.opt.xmlns&&(n.ns=t.ns),e.attribList.length=0,T(e,"onopentagstart",n)}function I(e,t){var n=e.indexOf(":")<0?["",e]:e.split(":"),r=n[0],i=n[1];return t&&"xmlns"===e&&(r="xmlns",i=""),{prefix:r,local:i}}function M(e){if(e.strict||(e.attribName=e.attribName[e.looseCase]()),-1!==e.attribList.indexOf(e.attribName)||e.tag.attributes.hasOwnProperty(e.attribName))e.attribName=e.attribValue="";else{if(e.opt.xmlns){var t=I(e.attribName,!0),n=t.local;if("xmlns"===t.prefix)if("xml"===n&&e.attribValue!==c)O(e,"xml: pref
 ix must be bound to "+c+"\nActual: "+e.attribValue);else if("xmlns"===n&&e.attribValue!==d)O(e,"xmlns: prefix must be bound to "+d+"\nActual: "+e.attribValue);else{var r=e.tag,i=e.tags[e.tags.length-1]||e;r.ns===i.ns&&(r.ns=Object.create(i.ns)),r.ns[n]=e.attribValue}e.attribList.push([e.attribName,e.attribValue])}else e.tag.attributes[e.attribName]=e.attribValue,T(e,"onattribute",{name:e.attribName,value:e.attribValue});e.attribName=e.attribValue=""}}function P(e,t){if(e.opt.xmlns){var n=e.tag,r=I(e.tagName);n.prefix=r.prefix,n.local=r.local,n.uri=n.ns[r.prefix]||"",n.prefix&&!n.uri&&(O(e,"Unbound namespace prefix: "+JSON.stringify(e.tagName)),n.uri=r.prefix),n.ns&&(e.tags[e.tags.length-1]||e).ns!==n.ns&&Object.keys(n.ns).forEach(function(t){T(e,"onopennamespace",{prefix:t,uri:n.ns[t]})});for(var i=0,o=e.attribList.length;i<o;i++){var s=e.attribList[i],a=s[0],l=s[1],u=I(a,!0),c=u.prefix,d=""===c?"":n.ns[c]||"",h={name:a,value:l,prefix:c,local:u.local,uri:d};c&&"xmlns"!==c&&!d&&(O(e,
 "Unbound namespace prefix: "+JSON.stringify(c)),h.uri=c),e.tag.attributes[a]=h,T(e,"onattribute",h)}e.attribList.length=0}e.tag.isSelfClosing=!!t,e.sawRoot=!0,e.tags.push(e.tag),T(e,"onopentag",e.tag),t||(e.state=e.noscript||"script"!==e.tagName.toLowerCase()?_.TEXT:_.SCRIPT,e.tag=null,e.tagName=""),e.attribName=e.attribValue="",e.attribList.length=0}function B(e){if(!e.tagName)return O(e,"Weird empty close tag."),e.textNode+="</>",void(e.state=_.TEXT);if(e.script){if("script"!==e.tagName)return e.script+="</"+e.tagName+">",e.tagName="",void(e.state=_.SCRIPT);T(e,"onscript",e.script),e.script=""}var t=e.tags.length,n=e.tagName;e.strict||(n=n[e.looseCase]());for(var r=n;t--&&e.tags[t].name!==r;)O(e,"Unexpected close tag");if(t<0)return O(e,"Unmatched closing tag: "+e.tagName),e.textNode+="</"+e.tagName+">",void(e.state=_.TEXT);e.tagName=n;for(var i=e.tags.length;i-- >t;){var o=e.tag=e.tags.pop();e.tagName=e.tag.name,T(e,"onclosetag",e.tagName);var s={};for(var a in o.ns)s[a]=o.ns[a];
 e.opt.xmlns&&o.ns!==(e.tags[e.tags.length-1]||e).ns&&Object.keys(o.ns).forEach(function(t){T(e,"onclosenamespace",{prefix:t,uri:o.ns[t]})})}0===t&&(e.closedRoot=!0),e.tagName=e.attribValue=e.attribName="",e.attribList.length=0,e.state=_.TEXT}function j(e){var t,n=e.entity,r=n.toLowerCase(),i="";return e.ENTITIES[n]?e.ENTITIES[n]:e.ENTITIES[r]?e.ENTITIES[r]:("#"===(n=r).charAt(0)&&("x"===n.charAt(1)?(n=n.slice(2),i=(t=parseInt(n,16)).toString(16)):(n=n.slice(1),i=(t=parseInt(n,10)).toString(10))),n=n.replace(/^0+/,""),isNaN(t)||i.toLowerCase()!==n?(O(e,"Invalid character entity"),"&"+e.entity+";"):String.fromCodePoint(t))}function $(e,t){"<"===t?(e.state=_.OPEN_WAKA,e.startTagPosition=e.position):v(t)||(O(e,"Non-whitespace before first tag."),e.textNode=t,e.state=_.TEXT)}function z(e,t){var n="";return t<e.length&&(n=e.charAt(t)),n}_=t.STATE,String.fromCodePoint||(k=String.fromCharCode,E=Math.floor,C=function(){var e=[],t=-1,n=arguments.length;if(!n)return"";for(var r="";++t<n;){var 
 i=Number(arguments[t]);if(!isFinite(i)||i<0||i>1114111||E(i)!==i)throw RangeError("Invalid code point: "+i);i<=65535?e.push(i):e.push(55296+((i-=65536)>>10),i%1024+56320),(t+1===n||e.length>16384)&&(r+=k.apply(null,e),e.length=0)}return r},Object.defineProperty?Object.defineProperty(String,"fromCodePoint",{value:C,configurable:!0,writable:!0}):String.fromCodePoint=C)}(t)}).call(t,n("v0OU").Buffer)},HzDK:function(e,t,n){"use strict";var r=n("CDXM"),i=n("OGmI");r(r.P+r.F*!n("bhtb")([].reduce,!0),"Array",{reduce:function(e){return i(this,e,arguments.length,arguments[1],!1)}})},"I+CO":function(e,t,n){var r=n("3r0D")("toPrimitive"),i=Date.prototype;r in i||n("gxdV")(i,r,n("76yl"))},"I/Xp":function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n("AP4T"),i=n("URbD");r.Observable.prototype.share=i.a},IDuI:function(e,t,n){(function(){var t,r={}.hasOwnProperty;t=n("p7eS"),e.exports=function(e){function n(e,t){if(n.__super__.constructor.call(this,e),null==t)throw n
 ew Error("Missing CDATA text");this.text=this.stringify.cdata(t)}return function(e,t){for(var n in t)r.call(t,n)&&(e[n]=t[n]);function i(){this.constructor=e}i.prototype=t.prototype,e.prototype=new i,e.__super__=t.prototype}(n,t),n.prototype.clone=function(){return Object.create(this)},n.prototype.toString=function(e){return this.options.writer.set(e).cdata(this)},n}()}).call(this)},IGm2:function(e,t,n){"use strict";var r=n("CDXM"),i=n("F6ce");r(r.P+r.F*n("TmDx")("includes"),"String",{includes:function(e){return!!~i(this,e,"includes").indexOf(e,arguments.length>1?arguments[1]:void 0)}})},IJ3P:function(e,t,n){var r=n("gBtn"),i=n("+pQw"),o=r.has,s=r.key;r.exp({hasOwnMetadata:function(e,t){return o(e,i(t),arguments.length<3?void 0:s(arguments[2]))}})},INGy:function(e,t,n){"use strict";(function(t,r){var i=n("1Rb4");e.exports=b;var o,s=n("CDvF");b.ReadableState=y,n("rOzH");var a=function(e,t){return e.listeners(t).length},l=n("wHgO"),u=n("zOKz").Buffer,c=t.Uint8Array||function(){},d=n("
 VIKU");d.inherits=n("lDCR");var h=n(1),p=void 0;p=h&&h.debuglog?h.debuglog("stream"):function(){};var f,m=n("yY5i"),g=n("iAGO");d.inherits(b,l);var v=["error","close","destroy","pause","resume"];function y(e,t){o=o||n("dJzE"),this.objectMode=!!(e=e||{}).objectMode,t instanceof o&&(this.objectMode=this.objectMode||!!e.readableObjectMode);var r=e.highWaterMark;this.highWaterMark=r||0===r?r:this.objectMode?16:16384,this.highWaterMark=Math.floor(this.highWaterMark),this.buffer=new m,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.destroyed=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(f||(f=n("/cYh").StringDecoder),this.decoder=new f(e.encoding),this.encoding=e.encoding)}function b(e){if(o=o||n("dJzE"),!(this instanceof
  b))return new b(e);this._readableState=new y(e,this),this.readable=!0,e&&("function"==typeof e.read&&(this._read=e.read

<TRUNCATED>