business_logic/static/business_logic/vendor.bundle.js
webpackJsonp([1],[function(e,t,n){"use strict";var o=n(26),r=n(1190),i=n(156),a=function(){function Observable(e){this._isScalar=!1,e&&(this._subscribe=e)}return Observable.prototype.lift=function(e){var t=new Observable;return t.source=this,t.operator=e,t},Observable.prototype.subscribe=function(e,t,n){var o=this.operator,i=r.toSubscriber(e,t,n);if(o?o.call(i,this.source):i.add(this.source?this._subscribe(i):this._trySubscribe(i)),i.syncErrorThrowable&&(i.syncErrorThrowable=!1,i.syncErrorThrown))throw i.syncErrorValue;return i},Observable.prototype._trySubscribe=function(e){try{return this._subscribe(e)}catch(t){e.syncErrorThrown=!0,e.syncErrorValue=t,e.error(t)}},Observable.prototype.forEach=function(e,t){var n=this;if(t||(o.root.Rx&&o.root.Rx.config&&o.root.Rx.config.Promise?t=o.root.Rx.config.Promise:o.root.Promise&&(t=o.root.Promise)),!t)throw new Error("no Promise impl found");return new t(function(t,o){var r;r=n.subscribe(function(t){if(r)try{e(t)}catch(n){o(n),r.unsubscribe()}else e(t)},o,t)})},Observable.prototype._subscribe=function(e){return this.source.subscribe(e)},Observable.prototype[i.observable]=function(){return this},Observable.create=function(e){return new Observable(e)},Observable}();t.Observable=a},function(e,t,n){"use strict";var o=n(646);n.d(t,"VERSION",function(){return o._36}),n.d(t,"assertPlatform",function(){return o._37}),n.d(t,"destroyPlatform",function(){return o._38}),n.d(t,"getPlatform",function(){return o._39}),n.d(t,"PlatformRef",function(){return o._40}),n.d(t,"ApplicationRef",function(){return o._28}),n.d(t,"enableProdMode",function(){return o._41}),n.d(t,"isDevMode",function(){return o.e}),n.d(t,"createPlatformFactory",function(){return o._16}),n.d(t,"NgProbeToken",function(){return o._31}),n.d(t,"APP_ID",function(){return o._27}),n.d(t,"PACKAGE_ROOT_URL",function(){return o.z}),n.d(t,"PLATFORM_INITIALIZER",function(){return o._19}),n.d(t,"APP_BOOTSTRAP_LISTENER",function(){return o._42}),n.d(t,"APP_INITIALIZER",function(){return o._43}),n.d(t,"ApplicationInitStatus",function(){return o._44}),n.d(t,"DebugElement",function(){return o._45}),n.d(t,"DebugNode",function(){return o._46}),n.d(t,"asNativeElements",function(){return o._47}),n.d(t,"getDebugNode",function(){return o._29}),n.d(t,"Testability",function(){return o._34}),n.d(t,"TestabilityRegistry",function(){return o._48}),n.d(t,"setTestabilityGetter",function(){return o._25}),n.d(t,"TRANSLATIONS",function(){return o._13}),n.d(t,"TRANSLATIONS_FORMAT",function(){return o.v}),n.d(t,"LOCALE_ID",function(){return o.u}),n.d(t,"ApplicationModule",function(){return o._35}),n.d(t,"wtfCreateScope",function(){return o._49}),n.d(t,"wtfLeave",function(){return o._50}),n.d(t,"wtfStartTimeRange",function(){return o._51}),n.d(t,"wtfEndTimeRange",function(){return o._52}),n.d(t,"Type",function(){return o.W}),n.d(t,"EventEmitter",function(){return o._20}),n.d(t,"ErrorHandler",function(){return o._33}),n.d(t,"AnimationTransitionEvent",function(){return o._53}),n.d(t,"AnimationPlayer",function(){return o._54}),n.d(t,"AnimationStyles",function(){return o._55}),n.d(t,"AnimationKeyframe",function(){return o._56}),n.d(t,"Sanitizer",function(){return o._32}),n.d(t,"SecurityContext",function(){return o.t}),n.d(t,"ANALYZE_FOR_ENTRY_COMPONENTS",function(){return o.f}),n.d(t,"Attribute",function(){return o.V}),n.d(t,"ContentChild",function(){return o.Z}),n.d(t,"ContentChildren",function(){return o._0}),n.d(t,"Query",function(){return o.F}),n.d(t,"ViewChild",function(){return o._1}),n.d(t,"ViewChildren",function(){return o._2}),n.d(t,"Component",function(){return o.G}),n.d(t,"Directive",function(){return o.H}),n.d(t,"HostBinding",function(){return o.D}),n.d(t,"HostListener",function(){return o.E}),n.d(t,"Input",function(){return o.B}),n.d(t,"Output",function(){return o.C}),n.d(t,"Pipe",function(){return o.J}),n.d(t,"AfterContentChecked",function(){return o._57}),n.d(t,"AfterContentInit",function(){return o._58}),n.d(t,"AfterViewChecked",function(){return o._59}),n.d(t,"AfterViewInit",function(){return o._60}),n.d(t,"DoCheck",function(){return o._61}),n.d(t,"OnChanges",function(){return o._62}),n.d(t,"OnDestroy",function(){return o._63}),n.d(t,"OnInit",function(){return o._64}),n.d(t,"CUSTOM_ELEMENTS_SCHEMA",function(){return o.Y}),n.d(t,"NO_ERRORS_SCHEMA",function(){return o.X}),n.d(t,"NgModule",function(){return o.I}),n.d(t,"ViewEncapsulation",function(){return o.c}),n.d(t,"Version",function(){return o.a}),n.d(t,"createPlatform",function(){return o._65}),n.d(t,"Class",function(){return o._66}),n.d(t,"forwardRef",function(){return o._67}),n.d(t,"resolveForwardRef",function(){return o.A}),n.d(t,"Injector",function(){return o.q}),n.d(t,"ReflectiveInjector",function(){return o._14}),n.d(t,"ResolvedReflectiveFactory",function(){return o._68}),n.d(t,"ReflectiveKey",function(){return o._69}),n.d(t,"OpaqueToken",function(){return o.w}),n.d(t,"Inject",function(){return o.y}),n.d(t,"Optional",function(){return o.x}),n.d(t,"Injectable",function(){return o.R}),n.d(t,"Self",function(){return o.T}),n.d(t,"SkipSelf",function(){return o.U}),n.d(t,"Host",function(){return o.S}),n.d(t,"NgZone",function(){return o._26}),n.d(t,"RenderComponentType",function(){return o.j}),n.d(t,"Renderer",function(){return o.r}),n.d(t,"RootRenderer",function(){return o._30}),n.d(t,"COMPILER_OPTIONS",function(){return o._15}),n.d(t,"Compiler",function(){return o._12}),n.d(t,"CompilerFactory",function(){return o._18}),n.d(t,"ModuleWithComponentFactories",function(){return o._11}),n.d(t,"ComponentFactory",function(){return o.n}),n.d(t,"ComponentRef",function(){return o.o}),n.d(t,"ComponentFactoryResolver",function(){return o.m}),n.d(t,"ElementRef",function(){return o.g}),n.d(t,"NgModuleFactory",function(){return o.p}),n.d(t,"NgModuleRef",function(){return o._70}),n.d(t,"NgModuleFactoryLoader",function(){return o._71}),n.d(t,"getModuleFactory",function(){return o._72}),n.d(t,"QueryList",function(){return o.k}),n.d(t,"SystemJsNgModuleLoader",function(){return o._73}),n.d(t,"SystemJsNgModuleLoaderConfig",function(){return o._74}),n.d(t,"TemplateRef",function(){return o.l}),n.d(t,"ViewContainerRef",function(){return o.h}),n.d(t,"EmbeddedViewRef",function(){return o._75}),n.d(t,"ViewRef",function(){return o._76}),n.d(t,"ChangeDetectionStrategy",function(){return o.d}),n.d(t,"ChangeDetectorRef",function(){return o.i}),n.d(t,"CollectionChangeRecord",function(){return o._77}),n.d(t,"DefaultIterableDiffer",function(){return o._78}),n.d(t,"IterableDiffers",function(){return o._21}),n.d(t,"KeyValueChangeRecord",function(){return o._79}),n.d(t,"KeyValueDiffers",function(){return o._22}),n.d(t,"SimpleChange",function(){return o.s}),n.d(t,"WrappedValue",function(){return o._23}),n.d(t,"platformCore",function(){return o._17}),n.d(t,"__core_private__",function(){return o.b}),n.d(t,"AUTO_STYLE",function(){return o._24}),n.d(t,"AnimationEntryMetadata",function(){return o._80}),n.d(t,"AnimationStateMetadata",function(){return o._81}),n.d(t,"AnimationStateDeclarationMetadata",function(){return o.K}),n.d(t,"AnimationStateTransitionMetadata",function(){return o.L}),n.d(t,"AnimationMetadata",function(){return o._82}),n.d(t,"AnimationKeyframesSequenceMetadata",function(){return o.N}),n.d(t,"AnimationStyleMetadata",function(){return o.M}),n.d(t,"AnimationAnimateMetadata",function(){return o.O}),n.d(t,"AnimationWithStepsMetadata",function(){return o.P}),n.d(t,"AnimationSequenceMetadata",function(){return o._83}),n.d(t,"AnimationGroupMetadata",function(){return o.Q}),n.d(t,"animate",function(){return o._7}),n.d(t,"group",function(){return o._10}),n.d(t,"sequence",function(){return o._9}),n.d(t,"style",function(){return o._6}),n.d(t,"state",function(){return o._4}),n.d(t,"keyframes",function(){return o._8}),n.d(t,"transition",function(){return o._5}),n.d(t,"trigger",function(){return o._3})},,function(e,t,n){"use strict";var o=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},r=n(231),i=n(22),a=n(490),s=n(228),u=function(e){function Subscriber(t,n,o){switch(e.call(this),this.syncErrorValue=null,this.syncErrorThrown=!1,this.syncErrorThrowable=!1,this.isStopped=!1,arguments.length){case 0:this.destination=a.empty;break;case 1:if(!t){this.destination=a.empty;break}if("object"==typeof t){t instanceof Subscriber?(this.destination=t,this.destination.add(this)):(this.syncErrorThrowable=!0,this.destination=new l(this,t));break}default:this.syncErrorThrowable=!0,this.destination=new l(this,t,n,o)}}return o(Subscriber,e),Subscriber.prototype[s.rxSubscriber]=function(){return this},Subscriber.create=function(e,t,n){var o=new Subscriber(e,t,n);return o.syncErrorThrowable=!1,o},Subscriber.prototype.next=function(e){this.isStopped||this._next(e)},Subscriber.prototype.error=function(e){this.isStopped||(this.isStopped=!0,this._error(e))},Subscriber.prototype.complete=function(){this.isStopped||(this.isStopped=!0,this._complete())},Subscriber.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,e.prototype.unsubscribe.call(this))},Subscriber.prototype._next=function(e){this.destination.next(e)},Subscriber.prototype._error=function(e){this.destination.error(e),this.unsubscribe()},Subscriber.prototype._complete=function(){this.destination.complete(),this.unsubscribe()},Subscriber.prototype._unsubscribeAndRecycle=function(){var e=this,t=e._parent,n=e._parents;return this._parent=null,this._parents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parent=t,this._parents=n,this},Subscriber}(i.Subscription);t.Subscriber=u;var l=function(e){function SafeSubscriber(t,n,o,i){e.call(this),this._parentSubscriber=t;var s,u=this;r.isFunction(n)?s=n:n&&(s=n.next,o=n.error,i=n.complete,n!==a.empty&&(u=Object.create(n),r.isFunction(u.unsubscribe)&&this.add(u.unsubscribe.bind(u)),u.unsubscribe=this.unsubscribe.bind(this))),this._context=u,this._next=s,this._error=o,this._complete=i}return o(SafeSubscriber,e),SafeSubscriber.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)}},SafeSubscriber.prototype.error=function(e){if(!this.isStopped){var t=this._parentSubscriber;if(this._error)t.syncErrorThrowable?(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()}}},SafeSubscriber.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()}},SafeSubscriber.prototype.__tryOrUnsub=function(e,t){try{e.call(this._context,t)}catch(n){throw this.unsubscribe(),n}},SafeSubscriber.prototype.__tryOrSetError=function(e,t,n){try{t.call(this._context,n)}catch(o){return e.syncErrorValue=o,e.syncErrorThrown=!0,!0}return!1},SafeSubscriber.prototype._unsubscribe=function(){var e=this._parentSubscriber;this._context=null,this._parentSubscriber=null,e.unsubscribe()},SafeSubscriber}(u)},function(e,t,n){"use strict";var o=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},r=n(3),i=function(e){function OuterSubscriber(){e.apply(this,arguments)}return o(OuterSubscriber,e),OuterSubscriber.prototype.notifyNext=function(e,t,n,o,r){this.destination.next(t)},OuterSubscriber.prototype.notifyError=function(e,t){this.destination.error(e)},OuterSubscriber.prototype.notifyComplete=function(e){this.destination.complete()},OuterSubscriber}(r.Subscriber);t.OuterSubscriber=i},function(e,t,n){"use strict";function subscribeToResult(e,t,n,d){var p=new l.InnerSubscriber(e,n,d);if(p.closed)return null;if(t instanceof s.Observable)return t._isScalar?(p.next(t.value),p.complete(),null):t.subscribe(p);if(r.isArrayLike(t)){for(var g=0,f=t.length;g<f&&!p.closed;g++)p.next(t[g]);p.closed||p.complete()}else{if(i.isPromise(t))return t.then(function(e){p.closed||(p.next(e),p.complete())},function(e){return p.error(e)}).then(null,function(e){o.root.setTimeout(function(){throw e})}),p;if(t&&"function"==typeof t[u.iterator])for(var h=t[u.iterator]();;){var m=h.next();if(m.done){p.complete();break}if(p.next(m.value),p.closed)break}else if(t&&"function"==typeof t[c.observable]){var y=t[c.observable]();if("function"==typeof y.subscribe)return y.subscribe(new l.InnerSubscriber(e,n,d));p.error(new TypeError("Provided object does not correctly implement Symbol.observable"))}else{var b=a.isObject(t)?"an invalid object":"'"+t+"'",v="You provided "+b+" where a stream was expected. You can provide an Observable, Promise, Array, or Iterable.";p.error(new TypeError(v))}}return null}var o=n(26),r=n(522),i=n(524),a=n(523),s=n(0),u=n(155),l=n(935),c=n(156);t.subscribeToResult=subscribeToResult},,function(e,t,n){"use strict";(function(e){function isPresent(e){return null!=e}function isBlank(e){return null==e}function isStrictStringMap(e){return"object"==typeof e&&null!==e&&Object.getPrototypeOf(e)===i}function stringify(e){if("string"==typeof e)return e;if(null==e)return""+e;if(e.overriddenName)return""+e.overriddenName;if(e.name)return""+e.name;var t=e.toString(),n=t.indexOf("\n");return n===-1?t:t.substring(0,n)}function isJsObject(e){return null!==e&&("function"==typeof e||"object"==typeof e)}function getSymbolIterator(){if(!s)if(o.Symbol&&Symbol.iterator)s=Symbol.iterator;else for(var e=Object.getOwnPropertyNames(Map.prototype),t=0;t<e.length;++t){var n=e[t];"entries"!==n&&"size"!==n&&Map.prototype[n]===Map.prototype.entries&&(s=n)}return s}function isPrimitive(e){return!isJsObject(e)}function escapeRegExp(e){return e.replace(/([.*+?^=!:${}()|[\]\/\\])/g,"\\$1")}t.f=isPresent,t.g=isBlank,t.c=isStrictStringMap,t.e=stringify,n.d(t,"h",function(){return a}),t.a=isJsObject,t.b=getSymbolIterator,t.d=isPrimitive,t.i=escapeRegExp;var o;o="undefined"==typeof window?"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:e:window;var r=o;r.assert=function(e){};var i=Object.getPrototypeOf({}),a=function(){function NumberWrapper(){}return NumberWrapper.parseIntAutoRadix=function(e){var t=parseInt(e);if(isNaN(t))throw new Error("Invalid integer literal when parsing "+e);return t},NumberWrapper.isNumeric=function(e){return!isNaN(e-parseFloat(e))},NumberWrapper}(),s=null}).call(t,n(55))},function(e,t,n){"use strict";(function(e){function scheduleMicroTask(e){Zone.current.scheduleMicroTask("scheduleMicrotask",e)}function getTypeNameForDebugging(e){return e.name||typeof e}function isPresent(e){return null!=e}function isBlank(e){return null==e}function stringify(e){if("string"==typeof e)return e;if(null==e)return""+e;if(e.overriddenName)return""+e.overriddenName;if(e.name)return""+e.name;var t=e.toString(),n=t.indexOf("\n");return n===-1?t:t.substring(0,n)}function looseIdentical(e,t){return e===t||"number"==typeof e&&"number"==typeof t&&isNaN(e)&&isNaN(t)}function isJsObject(e){return null!==e&&("function"==typeof e||"object"==typeof e)}function print(e){console.log(e)}function warn(e){console.warn(e)}function getSymbolIterator(){if(!i)if(o.Symbol&&Symbol.iterator)i=Symbol.iterator;else for(var e=Object.getOwnPropertyNames(Map.prototype),t=0;t<e.length;++t){var n=e[t];"entries"!==n&&"size"!==n&&Map.prototype[n]===Map.prototype.entries&&(i=n)}return i}function isPrimitive(e){return!isJsObject(e)}t.l=scheduleMicroTask,n.d(t,"a",function(){return r}),t.j=getTypeNameForDebugging,t.d=isPresent,t.c=isBlank,t.b=stringify,t.i=looseIdentical,t.e=isJsObject,t.g=print,t.h=warn,t.f=getSymbolIterator,t.k=isPrimitive;var o;o="undefined"==typeof window?"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:e:window;var r=o;r.assert=function(e){};var i=(Object.getPrototypeOf({}),function(){function NumberWrapper(){}return NumberWrapper.parseIntAutoRadix=function(e){var t=parseInt(e);if(isNaN(t))throw new Error("Invalid integer literal when parsing "+e);return t},NumberWrapper.isNumeric=function(e){return!isNaN(e-parseFloat(e))},NumberWrapper}(),null)}).call(t,n(55))},,function(e,t,n){"use strict";function replaceVarInExpression(e,t,n){var o=new ue(e,t);return n.visitExpression(o,null)}function findReadVarNames(e){var t=new le;return t.visitAllStatements(e,null),t.varNames}function variable(e,t){return void 0===t&&(t=null),new E(e,t)}function importExpr(e,t){return void 0===t&&(t=null),new O(e,null,t)}function importType(e,t,r){return void 0===t&&(t=null),void 0===r&&(r=null),n.i(o.f)(e)?expressionType(importExpr(e),t,r):null}function expressionType(e,t,r){return void 0===t&&(t=null),void 0===r&&(r=null),n.i(o.f)(e)?new l(e,t,r):null}function literalArr(e,t){return void 0===t&&(t=null),new F(e,t)}function literalMap(e,t,n){return void 0===t&&(t=null),void 0===n&&(n=!1),new V(e.map(function(e){return new U(e[0],e[1],n)}),t)}function not(e){return new w(e)}function fn(e,t,n){return void 0===n&&(n=null),new B(e,t,n)}function literal(e,t){return void 0===t&&(t=null),new N(e,t)}var o=n(7);n.d(t,"J",function(){return i}),n.d(t,"N",function(){return a}),n.d(t,"P",function(){return s}),n.d(t,"u",function(){return c}),n.d(t,"v",function(){return d}),n.d(t,"h",function(){return p}),n.d(t,"D",function(){return g}),n.d(t,"U",function(){return f}),n.d(t,"F",function(){return h}),n.d(t,"C",function(){return m}),n.d(t,"O",function(){return y}),n.d(t,"l",function(){return b}),n.d(t,"I",function(){return v}),n.d(t,"L",function(){return _}),n.d(t,"q",function(){return E}),n.d(t,"x",function(){return M}),n.d(t,"E",function(){return N}),n.d(t,"Q",function(){return O}),n.d(t,"r",function(){return x}),n.d(t,"m",function(){return L}),n.d(t,"G",function(){return U}),n.d(t,"H",function(){return V}),n.d(t,"c",function(){return W}),n.d(t,"y",function(){return j}),n.d(t,"k",function(){return $}),n.d(t,"b",function(){return K}),n.d(t,"M",function(){return G}),n.d(t,"j",function(){return z}),n.d(t,"w",function(){return Q}),n.d(t,"t",function(){return X}),n.d(t,"a",function(){return Z}),n.d(t,"z",function(){return ee}),n.d(t,"K",function(){return te}),n.d(t,"A",function(){return ne}),n.d(t,"e",function(){return oe}),n.d(t,"R",function(){return ae}),t.S=replaceVarInExpression,t.i=findReadVarNames,t.g=variable,t.d=importExpr,t.B=importType,t.T=expressionType,t.n=literalArr,t.o=literalMap,t.p=not,t.s=fn,t.f=literal;var r=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},i={};i.Const=0,i[i.Const]="Const";var a=function(){function Type(e){void 0===e&&(e=null),this.modifiers=e,e||(this.modifiers=[])}return Type.prototype.visitType=function(e,t){},Type.prototype.hasModifier=function(e){return this.modifiers.indexOf(e)!==-1},Type}(),s={};s.Dynamic=0,s.Bool=1,s.String=2,s.Int=3,s.Number=4,s.Function=5,s.Null=6,s[s.Dynamic]="Dynamic",s[s.Bool]="Bool",s[s.String]="String",s[s.Int]="Int",s[s.Number]="Number",s[s.Function]="Function",s[s.Null]="Null";var u=function(e){function BuiltinType(t,n){void 0===n&&(n=null),e.call(this,n),this.name=t}return r(BuiltinType,e),BuiltinType.prototype.visitType=function(e,t){return e.visitBuiltintType(this,t)},BuiltinType}(a),l=function(e){function ExpressionType(t,n,o){void 0===n&&(n=null),void 0===o&&(o=null),e.call(this,o),this.value=t,this.typeParams=n}return r(ExpressionType,e),ExpressionType.prototype.visitType=function(e,t){return e.visitExpressionType(this,t)},ExpressionType}(a),c=function(e){function ArrayType(t,n){void 0===n&&(n=null),e.call(this,n),this.of=t}return r(ArrayType,e),ArrayType.prototype.visitType=function(e,t){return e.visitArrayType(this,t)},ArrayType}(a),d=function(e){function MapType(t,n){void 0===n&&(n=null),e.call(this,n),this.valueType=t}return r(MapType,e),MapType.prototype.visitType=function(e,t){return e.visitMapType(this,t)},MapType}(a),p=new u(s.Dynamic),g=new u(s.Bool),f=(new u(s.Int),new u(s.Number)),h=new u(s.String),m=new u(s.Function),y=new u(s.Null),b={};b.Equals=0,b.NotEquals=1,b.Identical=2,b.NotIdentical=3,b.Minus=4,b.Plus=5,b.Divide=6,b.Multiply=7,b.Modulo=8,b.And=9,b.Or=10,b.Lower=11,b.LowerEquals=12,b.Bigger=13,b.BiggerEquals=14,b[b.Equals]="Equals",b[b.NotEquals]="NotEquals",b[b.Identical]="Identical",b[b.NotIdentical]="NotIdentical",b[b.Minus]="Minus",b[b.Plus]="Plus",b[b.Divide]="Divide",b[b.Multiply]="Multiply",b[b.Modulo]="Modulo",b[b.And]="And",b[b.Or]="Or",b[b.Lower]="Lower",b[b.LowerEquals]="LowerEquals",b[b.Bigger]="Bigger",b[b.BiggerEquals]="BiggerEquals";var v=function(){function Expression(e){this.type=e}return Expression.prototype.visitExpression=function(e,t){},Expression.prototype.prop=function(e){return new P(this,e)},Expression.prototype.key=function(e,t){return void 0===t&&(t=null),new H(this,e,t)},Expression.prototype.callMethod=function(e,t){return new C(this,e,t)},Expression.prototype.callFn=function(e){return new k(this,e)},Expression.prototype.instantiate=function(e,t){return void 0===t&&(t=null),new R(this,e,t)},Expression.prototype.conditional=function(e,t){return void 0===t&&(t=null),new D(this,e,t)},Expression.prototype.equals=function(e){return new L(b.Equals,this,e)},Expression.prototype.notEquals=function(e){return new L(b.NotEquals,this,e)},Expression.prototype.identical=function(e){return new L(b.Identical,this,e)},Expression.prototype.notIdentical=function(e){return new L(b.NotIdentical,this,e)},Expression.prototype.minus=function(e){return new L(b.Minus,this,e)},Expression.prototype.plus=function(e){return new L(b.Plus,this,e)},Expression.prototype.divide=function(e){return new L(b.Divide,this,e)},Expression.prototype.multiply=function(e){return new L(b.Multiply,this,e)},Expression.prototype.modulo=function(e){return new L(b.Modulo,this,e)},Expression.prototype.and=function(e){return new L(b.And,this,e)},Expression.prototype.or=function(e){return new L(b.Or,this,e)},Expression.prototype.lower=function(e){return new L(b.Lower,this,e)},Expression.prototype.lowerEquals=function(e){return new L(b.LowerEquals,this,e)},Expression.prototype.bigger=function(e){return new L(b.Bigger,this,e)},Expression.prototype.biggerEquals=function(e){return new L(b.BiggerEquals,this,e)},Expression.prototype.isBlank=function(){return this.equals(Y)},Expression.prototype.cast=function(e){return new I(this,e)},Expression.prototype.toStmt=function(){return new Q(this)},Expression}(),_={};_.This=0,_.Super=1,_.CatchError=2,_.CatchStack=3,_[_.This]="This",_[_.Super]="Super",_[_.CatchError]="CatchError",_[_.CatchStack]="CatchStack";var E=function(e){function ReadVarExpr(t,n){void 0===n&&(n=null),e.call(this,n),"string"==typeof t?(this.name=t,this.builtin=null):(this.name=null,this.builtin=t)}return r(ReadVarExpr,e),ReadVarExpr.prototype.visitExpression=function(e,t){return e.visitReadVarExpr(this,t)},ReadVarExpr.prototype.set=function(e){return new T(this.name,e)},ReadVarExpr}(v),T=function(e){function WriteVarExpr(t,n,o){void 0===o&&(o=null),e.call(this,o||n.type),this.name=t,this.value=n}return r(WriteVarExpr,e),WriteVarExpr.prototype.visitExpression=function(e,t){return e.visitWriteVarExpr(this,t)},WriteVarExpr.prototype.toDeclStmt=function(e,t){return void 0===e&&(e=null),void 0===t&&(t=null),new z(this.name,this.value,e,t)},WriteVarExpr}(v),S=function(e){function WriteKeyExpr(t,n,o,r){void 0===r&&(r=null),e.call(this,r||o.type),this.receiver=t,this.index=n,this.value=o}return r(WriteKeyExpr,e),WriteKeyExpr.prototype.visitExpression=function(e,t){return e.visitWriteKeyExpr(this,t)},WriteKeyExpr}(v),A=function(e){function WritePropExpr(t,n,o,r){void 0===r&&(r=null),e.call(this,r||o.type),this.receiver=t,this.name=n,this.value=o}return r(WritePropExpr,e),WritePropExpr.prototype.visitExpression=function(e,t){return e.visitWritePropExpr(this,t)},WritePropExpr}(v),M={};M.ConcatArray=0,M.SubscribeObservable=1,M.Bind=2,M[M.ConcatArray]="ConcatArray",M[M.SubscribeObservable]="SubscribeObservable",M[M.Bind]="Bind";var C=function(e){function InvokeMethodExpr(t,n,o,r){void 0===r&&(r=null),e.call(this,r),this.receiver=t,this.args=o,"string"==typeof n?(this.name=n,this.builtin=null):(this.name=null,this.builtin=n)}return r(InvokeMethodExpr,e),InvokeMethodExpr.prototype.visitExpression=function(e,t){return e.visitInvokeMethodExpr(this,t)},InvokeMethodExpr}(v),k=function(e){function InvokeFunctionExpr(t,n,o){void 0===o&&(o=null),e.call(this,o),this.fn=t,this.args=n}return r(InvokeFunctionExpr,e),InvokeFunctionExpr.prototype.visitExpression=function(e,t){return e.visitInvokeFunctionExpr(this,t)},InvokeFunctionExpr}(v),R=function(e){function InstantiateExpr(t,n,o){e.call(this,o),this.classExpr=t,this.args=n}return r(InstantiateExpr,e),InstantiateExpr.prototype.visitExpression=function(e,t){return e.visitInstantiateExpr(this,t)},InstantiateExpr}(v),N=function(e){function LiteralExpr(t,n){void 0===n&&(n=null),e.call(this,n),this.value=t}return r(LiteralExpr,e),LiteralExpr.prototype.visitExpression=function(e,t){return e.visitLiteralExpr(this,t)},LiteralExpr}(v),O=function(e){function ExternalExpr(t,n,o){void 0===n&&(n=null),void 0===o&&(o=null),e.call(this,n),this.value=t,this.typeParams=o}return r(ExternalExpr,e),ExternalExpr.prototype.visitExpression=function(e,t){return e.visitExternalExpr(this,t)},ExternalExpr}(v),D=function(e){function ConditionalExpr(t,n,o,r){void 0===o&&(o=null),void 0===r&&(r=null),e.call(this,r||n.type),this.condition=t,this.falseCase=o,this.trueCase=n}return r(ConditionalExpr,e),ConditionalExpr.prototype.visitExpression=function(e,t){return e.visitConditionalExpr(this,t)},ConditionalExpr}(v),w=function(e){function NotExpr(t){e.call(this,g),this.condition=t}return r(NotExpr,e),NotExpr.prototype.visitExpression=function(e,t){return e.visitNotExpr(this,t)},NotExpr}(v),I=function(e){function CastExpr(t,n){e.call(this,n),this.value=t}return r(CastExpr,e),CastExpr.prototype.visitExpression=function(e,t){return e.visitCastExpr(this,t)},CastExpr}(v),x=function(){function FnParam(e,t){void 0===t&&(t=null),this.name=e,this.type=t}return FnParam}(),B=function(e){function FunctionExpr(t,n,o){void 0===o&&(o=null),e.call(this,o),this.params=t,this.statements=n}return r(FunctionExpr,e),FunctionExpr.prototype.visitExpression=function(e,t){return e.visitFunctionExpr(this,t)},FunctionExpr.prototype.toDeclStmt=function(e,t){return void 0===t&&(t=null),new q(e,this.params,this.statements,this.type,t)},FunctionExpr}(v),L=function(e){function BinaryOperatorExpr(t,n,o,r){void 0===r&&(r=null),e.call(this,r||n.type),this.operator=t,this.rhs=o,this.lhs=n}return r(BinaryOperatorExpr,e),BinaryOperatorExpr.prototype.visitExpression=function(e,t){return e.visitBinaryOperatorExpr(this,t)},BinaryOperatorExpr}(v),P=function(e){function ReadPropExpr(t,n,o){void 0===o&&(o=null),e.call(this,o),this.receiver=t,this.name=n}return r(ReadPropExpr,e),ReadPropExpr.prototype.visitExpression=function(e,t){return e.visitReadPropExpr(this,t)},ReadPropExpr.prototype.set=function(e){return new A(this.receiver,this.name,e)},ReadPropExpr}(v),H=function(e){function ReadKeyExpr(t,n,o){void 0===o&&(o=null),e.call(this,o),this.receiver=t,this.index=n}return r(ReadKeyExpr,e),ReadKeyExpr.prototype.visitExpression=function(e,t){return e.visitReadKeyExpr(this,t)},ReadKeyExpr.prototype.set=function(e){return new S(this.receiver,this.index,e)},ReadKeyExpr}(v),F=function(e){function LiteralArrayExpr(t,n){void 0===n&&(n=null),e.call(this,n),this.entries=t}return r(LiteralArrayExpr,e),LiteralArrayExpr.prototype.visitExpression=function(e,t){return e.visitLiteralArrayExpr(this,t)},LiteralArrayExpr}(v),U=function(){function LiteralMapEntry(e,t,n){void 0===n&&(n=!1),this.key=e,this.value=t,this.quoted=n}return LiteralMapEntry}(),V=function(e){function LiteralMapExpr(t,r){void 0===r&&(r=null),e.call(this,r),this.entries=t,this.valueType=null,n.i(o.f)(r)&&(this.valueType=r.valueType)}return r(LiteralMapExpr,e),LiteralMapExpr.prototype.visitExpression=function(e,t){return e.visitLiteralMapExpr(this,t)},LiteralMapExpr}(v),W=new E(_.This),j=new E(_.Super),$=(new E(_.CatchError),new E(_.CatchStack),new N(null,null)),Y=new N(null,y),K={};K.Final=0,K.Private=1,K[K.Final]="Final",K[K.Private]="Private";var G=function(){function Statement(e){void 0===e&&(e=null),this.modifiers=e,e||(this.modifiers=[])}return Statement.prototype.visitStatement=function(e,t){},Statement.prototype.hasModifier=function(e){return this.modifiers.indexOf(e)!==-1},Statement}(),z=function(e){function DeclareVarStmt(t,n,o,r){void 0===o&&(o=null),void 0===r&&(r=null),e.call(this,r),this.name=t,this.value=n,this.type=o||n.type}return r(DeclareVarStmt,e),DeclareVarStmt.prototype.visitStatement=function(e,t){return e.visitDeclareVarStmt(this,t)},DeclareVarStmt}(G),q=function(e){function DeclareFunctionStmt(t,n,o,r,i){void 0===r&&(r=null),void 0===i&&(i=null),e.call(this,i),this.name=t,this.params=n,this.statements=o,this.type=r}return r(DeclareFunctionStmt,e),DeclareFunctionStmt.prototype.visitStatement=function(e,t){return e.visitDeclareFunctionStmt(this,t)},DeclareFunctionStmt}(G),Q=function(e){function ExpressionStatement(t){e.call(this),this.expr=t}return r(ExpressionStatement,e),ExpressionStatement.prototype.visitStatement=function(e,t){return e.visitExpressionStmt(this,t)},ExpressionStatement}(G),X=function(e){function ReturnStatement(t){e.call(this),this.value=t}return r(ReturnStatement,e),ReturnStatement.prototype.visitStatement=function(e,t){return e.visitReturnStmt(this,t)},ReturnStatement}(G),J=function(){function AbstractClassPart(e,t){void 0===e&&(e=null),this.type=e,this.modifiers=t,t||(this.modifiers=[])}return AbstractClassPart.prototype.hasModifier=function(e){return this.modifiers.indexOf(e)!==-1},AbstractClassPart}(),Z=function(e){function ClassField(t,n,o){void 0===n&&(n=null),void 0===o&&(o=null),e.call(this,n,o),this.name=t}return r(ClassField,e),ClassField}(J),ee=function(e){function ClassMethod(t,n,o,r,i){void 0===r&&(r=null),void 0===i&&(i=null),e.call(this,r,i),this.name=t,this.params=n,this.body=o}return r(ClassMethod,e),ClassMethod}(J),te=function(e){function ClassGetter(t,n,o,r){void 0===o&&(o=null),void 0===r&&(r=null),e.call(this,o,r),this.name=t,this.body=n}return r(ClassGetter,e),ClassGetter}(J),ne=function(e){function ClassStmt(t,n,o,r,i,a,s){void 0===s&&(s=null),e.call(this,s),this.name=t,this.parent=n,this.fields=o,this.getters=r,this.constructorMethod=i,this.methods=a}return r(ClassStmt,e),ClassStmt.prototype.visitStatement=function(e,t){return e.visitDeclareClassStmt(this,t)},ClassStmt}(G),oe=function(e){function IfStmt(t,n,o){void 0===o&&(o=[]),e.call(this),this.condition=t,this.trueCase=n,this.falseCase=o}return r(IfStmt,e),IfStmt.prototype.visitStatement=function(e,t){return e.visitIfStmt(this,t)},IfStmt}(G),re=(function(e){function CommentStmt(t){e.call(this),this.comment=t}return r(CommentStmt,e),CommentStmt.prototype.visitStatement=function(e,t){return e.visitCommentStmt(this,t)},CommentStmt}(G),function(e){function TryCatchStmt(t,n){e.call(this),this.bodyStmts=t,this.catchStmts=n}return r(TryCatchStmt,e),TryCatchStmt.prototype.visitStatement=function(e,t){return e.visitTryCatchStmt(this,t)},TryCatchStmt}(G)),ie=function(e){function ThrowStmt(t){e.call(this),this.error=t}return r(ThrowStmt,e),ThrowStmt.prototype.visitStatement=function(e,t){return e.visitThrowStmt(this,t)},ThrowStmt}(G),ae=function(){function ExpressionTransformer(){}return ExpressionTransformer.prototype.visitReadVarExpr=function(e,t){return e},ExpressionTransformer.prototype.visitWriteVarExpr=function(e,t){return new T(e.name,e.value.visitExpression(this,t))},ExpressionTransformer.prototype.visitWriteKeyExpr=function(e,t){return new S(e.receiver.visitExpression(this,t),e.index.visitExpression(this,t),e.value.visitExpression(this,t));
},ExpressionTransformer.prototype.visitWritePropExpr=function(e,t){return new A(e.receiver.visitExpression(this,t),e.name,e.value.visitExpression(this,t))},ExpressionTransformer.prototype.visitInvokeMethodExpr=function(e,t){var n=e.builtin||e.name;return new C(e.receiver.visitExpression(this,t),n,this.visitAllExpressions(e.args,t),e.type)},ExpressionTransformer.prototype.visitInvokeFunctionExpr=function(e,t){return new k(e.fn.visitExpression(this,t),this.visitAllExpressions(e.args,t),e.type)},ExpressionTransformer.prototype.visitInstantiateExpr=function(e,t){return new R(e.classExpr.visitExpression(this,t),this.visitAllExpressions(e.args,t),e.type)},ExpressionTransformer.prototype.visitLiteralExpr=function(e,t){return e},ExpressionTransformer.prototype.visitExternalExpr=function(e,t){return e},ExpressionTransformer.prototype.visitConditionalExpr=function(e,t){return new D(e.condition.visitExpression(this,t),e.trueCase.visitExpression(this,t),e.falseCase.visitExpression(this,t))},ExpressionTransformer.prototype.visitNotExpr=function(e,t){return new w(e.condition.visitExpression(this,t))},ExpressionTransformer.prototype.visitCastExpr=function(e,t){return new I(e.value.visitExpression(this,t),t)},ExpressionTransformer.prototype.visitFunctionExpr=function(e,t){return e},ExpressionTransformer.prototype.visitBinaryOperatorExpr=function(e,t){return new L(e.operator,e.lhs.visitExpression(this,t),e.rhs.visitExpression(this,t),e.type)},ExpressionTransformer.prototype.visitReadPropExpr=function(e,t){return new P(e.receiver.visitExpression(this,t),e.name,e.type)},ExpressionTransformer.prototype.visitReadKeyExpr=function(e,t){return new H(e.receiver.visitExpression(this,t),e.index.visitExpression(this,t),e.type)},ExpressionTransformer.prototype.visitLiteralArrayExpr=function(e,t){return new F(this.visitAllExpressions(e.entries,t))},ExpressionTransformer.prototype.visitLiteralMapExpr=function(e,t){var n=this,o=e.entries.map(function(e){return new U(e.key,e.value.visitExpression(n,t),e.quoted)});return new V(o)},ExpressionTransformer.prototype.visitAllExpressions=function(e,t){var n=this;return e.map(function(e){return e.visitExpression(n,t)})},ExpressionTransformer.prototype.visitDeclareVarStmt=function(e,t){return new z(e.name,e.value.visitExpression(this,t),e.type,e.modifiers)},ExpressionTransformer.prototype.visitDeclareFunctionStmt=function(e,t){return e},ExpressionTransformer.prototype.visitExpressionStmt=function(e,t){return new Q(e.expr.visitExpression(this,t))},ExpressionTransformer.prototype.visitReturnStmt=function(e,t){return new X(e.value.visitExpression(this,t))},ExpressionTransformer.prototype.visitDeclareClassStmt=function(e,t){return e},ExpressionTransformer.prototype.visitIfStmt=function(e,t){return new oe(e.condition.visitExpression(this,t),this.visitAllStatements(e.trueCase,t),this.visitAllStatements(e.falseCase,t))},ExpressionTransformer.prototype.visitTryCatchStmt=function(e,t){return new re(this.visitAllStatements(e.bodyStmts,t),this.visitAllStatements(e.catchStmts,t))},ExpressionTransformer.prototype.visitThrowStmt=function(e,t){return new ie(e.error.visitExpression(this,t))},ExpressionTransformer.prototype.visitCommentStmt=function(e,t){return e},ExpressionTransformer.prototype.visitAllStatements=function(e,t){var n=this;return e.map(function(e){return e.visitStatement(n,t)})},ExpressionTransformer}(),se=function(){function RecursiveExpressionVisitor(){}return RecursiveExpressionVisitor.prototype.visitReadVarExpr=function(e,t){return e},RecursiveExpressionVisitor.prototype.visitWriteVarExpr=function(e,t){return e.value.visitExpression(this,t),e},RecursiveExpressionVisitor.prototype.visitWriteKeyExpr=function(e,t){return e.receiver.visitExpression(this,t),e.index.visitExpression(this,t),e.value.visitExpression(this,t),e},RecursiveExpressionVisitor.prototype.visitWritePropExpr=function(e,t){return e.receiver.visitExpression(this,t),e.value.visitExpression(this,t),e},RecursiveExpressionVisitor.prototype.visitInvokeMethodExpr=function(e,t){return e.receiver.visitExpression(this,t),this.visitAllExpressions(e.args,t),e},RecursiveExpressionVisitor.prototype.visitInvokeFunctionExpr=function(e,t){return e.fn.visitExpression(this,t),this.visitAllExpressions(e.args,t),e},RecursiveExpressionVisitor.prototype.visitInstantiateExpr=function(e,t){return e.classExpr.visitExpression(this,t),this.visitAllExpressions(e.args,t),e},RecursiveExpressionVisitor.prototype.visitLiteralExpr=function(e,t){return e},RecursiveExpressionVisitor.prototype.visitExternalExpr=function(e,t){return e},RecursiveExpressionVisitor.prototype.visitConditionalExpr=function(e,t){return e.condition.visitExpression(this,t),e.trueCase.visitExpression(this,t),e.falseCase.visitExpression(this,t),e},RecursiveExpressionVisitor.prototype.visitNotExpr=function(e,t){return e.condition.visitExpression(this,t),e},RecursiveExpressionVisitor.prototype.visitCastExpr=function(e,t){return e.value.visitExpression(this,t),e},RecursiveExpressionVisitor.prototype.visitFunctionExpr=function(e,t){return e},RecursiveExpressionVisitor.prototype.visitBinaryOperatorExpr=function(e,t){return e.lhs.visitExpression(this,t),e.rhs.visitExpression(this,t),e},RecursiveExpressionVisitor.prototype.visitReadPropExpr=function(e,t){return e.receiver.visitExpression(this,t),e},RecursiveExpressionVisitor.prototype.visitReadKeyExpr=function(e,t){return e.receiver.visitExpression(this,t),e.index.visitExpression(this,t),e},RecursiveExpressionVisitor.prototype.visitLiteralArrayExpr=function(e,t){return this.visitAllExpressions(e.entries,t),e},RecursiveExpressionVisitor.prototype.visitLiteralMapExpr=function(e,t){var n=this;return e.entries.forEach(function(e){return e.value.visitExpression(n,t)}),e},RecursiveExpressionVisitor.prototype.visitAllExpressions=function(e,t){var n=this;e.forEach(function(e){return e.visitExpression(n,t)})},RecursiveExpressionVisitor.prototype.visitDeclareVarStmt=function(e,t){return e.value.visitExpression(this,t),e},RecursiveExpressionVisitor.prototype.visitDeclareFunctionStmt=function(e,t){return e},RecursiveExpressionVisitor.prototype.visitExpressionStmt=function(e,t){return e.expr.visitExpression(this,t),e},RecursiveExpressionVisitor.prototype.visitReturnStmt=function(e,t){return e.value.visitExpression(this,t),e},RecursiveExpressionVisitor.prototype.visitDeclareClassStmt=function(e,t){return e},RecursiveExpressionVisitor.prototype.visitIfStmt=function(e,t){return e.condition.visitExpression(this,t),this.visitAllStatements(e.trueCase,t),this.visitAllStatements(e.falseCase,t),e},RecursiveExpressionVisitor.prototype.visitTryCatchStmt=function(e,t){return this.visitAllStatements(e.bodyStmts,t),this.visitAllStatements(e.catchStmts,t),e},RecursiveExpressionVisitor.prototype.visitThrowStmt=function(e,t){return e.error.visitExpression(this,t),e},RecursiveExpressionVisitor.prototype.visitCommentStmt=function(e,t){return e},RecursiveExpressionVisitor.prototype.visitAllStatements=function(e,t){var n=this;e.forEach(function(e){return e.visitStatement(n,t)})},RecursiveExpressionVisitor}(),ue=function(e){function _ReplaceVariableTransformer(t,n){e.call(this),this._varName=t,this._newValue=n}return r(_ReplaceVariableTransformer,e),_ReplaceVariableTransformer.prototype.visitReadVarExpr=function(e,t){return e.name==this._varName?this._newValue:e},_ReplaceVariableTransformer}(ae),le=function(e){function _VariableFinder(){e.apply(this,arguments),this.varNames=new Set}return r(_VariableFinder,e),_VariableFinder.prototype.visitReadVarExpr=function(e,t){return this.varNames.add(e.name),null},_VariableFinder}(se)},,,function(e,t,n){"use strict";var o=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},r=n(0),i=n(3),a=n(22),s=n(229),u=n(491),l=n(228),c=function(e){function SubjectSubscriber(t){e.call(this,t),this.destination=t}return o(SubjectSubscriber,e),SubjectSubscriber}(i.Subscriber);t.SubjectSubscriber=c;var d=function(e){function Subject(){e.call(this),this.observers=[],this.closed=!1,this.isStopped=!1,this.hasError=!1,this.thrownError=null}return o(Subject,e),Subject.prototype[l.rxSubscriber]=function(){return new c(this)},Subject.prototype.lift=function(e){var t=new p(this,this);return t.operator=e,t},Subject.prototype.next=function(e){if(this.closed)throw new s.ObjectUnsubscribedError;if(!this.isStopped)for(var t=this.observers,n=t.length,o=t.slice(),r=0;r<n;r++)o[r].next(e)},Subject.prototype.error=function(e){if(this.closed)throw new s.ObjectUnsubscribedError;this.hasError=!0,this.thrownError=e,this.isStopped=!0;for(var t=this.observers,n=t.length,o=t.slice(),r=0;r<n;r++)o[r].error(e);this.observers.length=0},Subject.prototype.complete=function(){if(this.closed)throw new s.ObjectUnsubscribedError;this.isStopped=!0;for(var e=this.observers,t=e.length,n=e.slice(),o=0;o<t;o++)n[o].complete();this.observers.length=0},Subject.prototype.unsubscribe=function(){this.isStopped=!0,this.closed=!0,this.observers=null},Subject.prototype._trySubscribe=function(t){if(this.closed)throw new s.ObjectUnsubscribedError;return e.prototype._trySubscribe.call(this,t)},Subject.prototype._subscribe=function(e){if(this.closed)throw new s.ObjectUnsubscribedError;return this.hasError?(e.error(this.thrownError),a.Subscription.EMPTY):this.isStopped?(e.complete(),a.Subscription.EMPTY):(this.observers.push(e),new u.SubjectSubscription(this,e))},Subject.prototype.asObservable=function(){var e=new r.Observable;return e.source=this,e},Subject.create=function(e,t){return new p(e,t)},Subject}(r.Observable);t.Subject=d;var p=function(e){function AnonymousSubject(t,n){e.call(this),this.destination=t,this.source=n}return o(AnonymousSubject,e),AnonymousSubject.prototype.next=function(e){var t=this.destination;t&&t.next&&t.next(e)},AnonymousSubject.prototype.error=function(e){var t=this.destination;t&&t.error&&this.destination.error(e)},AnonymousSubject.prototype.complete=function(){var e=this.destination;e&&e.complete&&this.destination.complete()},AnonymousSubject.prototype._subscribe=function(e){var t=this.source;return t?this.source.subscribe(e):a.Subscription.EMPTY},AnonymousSubject}(d);t.AnonymousSubject=p},function(e,t,n){"use strict";function _sanitizeIdentifier(e){return e.replace(/\W/g,"_")}function identifierName(e){if(!e||!e.reference)return null;var t=e.reference;if(t instanceof r.a)return t.name;if(t.__anonymousType)return t.__anonymousType;var o=n.i(a.e)(t);return o.indexOf("(")>=0?(o="anonymous_"+S++,t.__anonymousType=o):o=_sanitizeIdentifier(o),o}function identifierModuleUrl(e){var t=e.reference;return t instanceof r.a?t.filePath:s.a.importUri(t)}function tokenName(e){return n.i(a.f)(e.value)?_sanitizeIdentifier(e.value):identifierName(e.identifier)}function tokenReference(e){return n.i(a.f)(e.identifier)?e.identifier.reference:e.value}function createHostComponentMeta(e,t){var n=u.a.parse(t.selector)[0].getMatchingElementTemplate();return k.create({isHost:!0,type:{reference:e,diDeps:[],lifecycleHooks:[]},template:new C({encapsulation:o.ViewEncapsulation.None,template:n,templateUrl:"",styles:[],styleUrls:[],ngContentSelectors:[],animations:[]}),changeDetection:o.ChangeDetectionStrategy.Default,inputs:[],outputs:[],host:{},isComponent:!0,selector:"*",providers:[],viewProviders:[],queries:[],viewQueries:[]})}function _normalizeArray(e){return e||[]}var o=n(1),r=n(71),i=n(85),a=n(7),s=n(17),u=n(173),l=n(32);n.d(t,"n",function(){return p}),n.d(t,"d",function(){return f}),n.d(t,"o",function(){return h}),n.d(t,"j",function(){return y}),n.d(t,"h",function(){return b}),n.d(t,"i",function(){return v}),n.d(t,"g",function(){return _}),n.d(t,"e",function(){return E}),n.d(t,"f",function(){return T}),t.c=identifierName,t.m=identifierModuleUrl,n.d(t,"q",function(){return A}),t.b=tokenName,t.a=tokenReference,n.d(t,"k",function(){return M}),n.d(t,"l",function(){return C}),n.d(t,"p",function(){return k}),t.v=createHostComponentMeta,n.d(t,"t",function(){return R}),n.d(t,"r",function(){return N}),n.d(t,"s",function(){return O}),n.d(t,"u",function(){return D});var c=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},d=/^(?:(?:\[([^\]]+)\])|(?:\(([^\)]+)\)))|(\@[-\w]+)$/,p=function(){function CompileAnimationEntryMetadata(e,t){void 0===e&&(e=null),void 0===t&&(t=null),this.name=e,this.definitions=t}return CompileAnimationEntryMetadata}(),g=function(){function CompileAnimationStateMetadata(){}return CompileAnimationStateMetadata}(),f=function(e){function CompileAnimationStateDeclarationMetadata(t,n){e.call(this),this.stateNameExpr=t,this.styles=n}return c(CompileAnimationStateDeclarationMetadata,e),CompileAnimationStateDeclarationMetadata}(g),h=function(e){function CompileAnimationStateTransitionMetadata(t,n){e.call(this),this.stateChangeExpr=t,this.steps=n}return c(CompileAnimationStateTransitionMetadata,e),CompileAnimationStateTransitionMetadata}(g),m=function(){function CompileAnimationMetadata(){}return CompileAnimationMetadata}(),y=function(e){function CompileAnimationKeyframesSequenceMetadata(t){void 0===t&&(t=[]),e.call(this),this.steps=t}return c(CompileAnimationKeyframesSequenceMetadata,e),CompileAnimationKeyframesSequenceMetadata}(m),b=function(e){function CompileAnimationStyleMetadata(t,n){void 0===n&&(n=null),e.call(this),this.offset=t,this.styles=n}return c(CompileAnimationStyleMetadata,e),CompileAnimationStyleMetadata}(m),v=function(e){function CompileAnimationAnimateMetadata(t,n){void 0===t&&(t=0),void 0===n&&(n=null),e.call(this),this.timings=t,this.styles=n}return c(CompileAnimationAnimateMetadata,e),CompileAnimationAnimateMetadata}(m),_=function(e){function CompileAnimationWithStepsMetadata(t){void 0===t&&(t=null),e.call(this),this.steps=t}return c(CompileAnimationWithStepsMetadata,e),CompileAnimationWithStepsMetadata}(m),E=function(e){function CompileAnimationSequenceMetadata(t){void 0===t&&(t=null),e.call(this,t)}return c(CompileAnimationSequenceMetadata,e),CompileAnimationSequenceMetadata}(_),T=function(e){function CompileAnimationGroupMetadata(t){void 0===t&&(t=null),e.call(this,t)}return c(CompileAnimationGroupMetadata,e),CompileAnimationGroupMetadata}(_),S=0,A={};A.Pipe=0,A.Directive=1,A.NgModule=2,A.Injectable=3,A[A.Pipe]="Pipe",A[A.Directive]="Directive",A[A.NgModule]="NgModule",A[A.Injectable]="Injectable";var M=function(){function CompileStylesheetMetadata(e){var t=void 0===e?{}:e,n=t.moduleUrl,o=t.styles,r=t.styleUrls;this.moduleUrl=n,this.styles=_normalizeArray(o),this.styleUrls=_normalizeArray(r)}return CompileStylesheetMetadata}(),C=function(){function CompileTemplateMetadata(e){var t=void 0===e?{}:e,n=t.encapsulation,o=t.template,r=t.templateUrl,a=t.styles,s=t.styleUrls,u=t.externalStylesheets,l=t.animations,c=t.ngContentSelectors,d=t.interpolation;if(this.encapsulation=n,this.template=o,this.templateUrl=r,this.styles=_normalizeArray(a),this.styleUrls=_normalizeArray(s),this.externalStylesheets=_normalizeArray(u),this.animations=l?i.a.flatten(l):[],this.ngContentSelectors=c||[],d&&2!=d.length)throw new Error("'interpolation' should have a start and an end symbol.");this.interpolation=d}return CompileTemplateMetadata.prototype.toSummary=function(){return{animations:this.animations.map(function(e){return e.name}),ngContentSelectors:this.ngContentSelectors,encapsulation:this.encapsulation}},CompileTemplateMetadata}(),k=function(){function CompileDirectiveMetadata(e){var t=void 0===e?{}:e,n=t.isHost,o=t.type,r=t.isComponent,i=t.selector,a=t.exportAs,s=t.changeDetection,u=t.inputs,l=t.outputs,c=t.hostListeners,d=t.hostProperties,p=t.hostAttributes,g=t.providers,f=t.viewProviders,h=t.queries,m=t.viewQueries,y=t.entryComponents,b=t.template;this.isHost=!!n,this.type=o,this.isComponent=r,this.selector=i,this.exportAs=a,this.changeDetection=s,this.inputs=u,this.outputs=l,this.hostListeners=c,this.hostProperties=d,this.hostAttributes=p,this.providers=_normalizeArray(g),this.viewProviders=_normalizeArray(f),this.queries=_normalizeArray(h),this.viewQueries=_normalizeArray(m),this.entryComponents=_normalizeArray(y),this.template=b}return CompileDirectiveMetadata.create=function(e){var t=void 0===e?{}:e,o=t.isHost,r=t.type,i=t.isComponent,s=t.selector,u=t.exportAs,c=t.changeDetection,p=t.inputs,g=t.outputs,f=t.host,h=t.providers,m=t.viewProviders,y=t.queries,b=t.viewQueries,v=t.entryComponents,_=t.template,E={},T={},S={};n.i(a.f)(f)&&Object.keys(f).forEach(function(e){var t=f[e],o=e.match(d);null===o?S[e]=t:n.i(a.f)(o[1])?T[o[1]]=t:n.i(a.f)(o[2])&&(E[o[2]]=t)});var A={};n.i(a.f)(p)&&p.forEach(function(e){var t=n.i(l.a)(e,[e,e]);A[t[0]]=t[1]});var M={};return n.i(a.f)(g)&&g.forEach(function(e){var t=n.i(l.a)(e,[e,e]);M[t[0]]=t[1]}),new CompileDirectiveMetadata({isHost:o,type:r,isComponent:!!i,selector:s,exportAs:u,changeDetection:c,inputs:A,outputs:M,hostListeners:E,hostProperties:T,hostAttributes:S,providers:h,viewProviders:m,queries:y,viewQueries:b,entryComponents:v,template:_})},CompileDirectiveMetadata.prototype.toSummary=function(){return{summaryKind:A.Directive,type:this.type,isComponent:this.isComponent,selector:this.selector,exportAs:this.exportAs,inputs:this.inputs,outputs:this.outputs,hostListeners:this.hostListeners,hostProperties:this.hostProperties,hostAttributes:this.hostAttributes,providers:this.providers,viewProviders:this.viewProviders,queries:this.queries,entryComponents:this.entryComponents,changeDetection:this.changeDetection,template:this.template&&this.template.toSummary()}},CompileDirectiveMetadata}(),R=function(){function CompilePipeMetadata(e){var t=void 0===e?{}:e,n=t.type,o=t.name,r=t.pure;this.type=n,this.name=o,this.pure=!!r}return CompilePipeMetadata.prototype.toSummary=function(){return{summaryKind:A.Pipe,type:this.type,name:this.name,pure:this.pure}},CompilePipeMetadata}(),N=function(){function CompileNgModuleMetadata(e){var t=void 0===e?{}:e,n=t.type,o=t.providers,r=t.declaredDirectives,i=t.exportedDirectives,a=t.declaredPipes,s=t.exportedPipes,u=t.entryComponents,l=t.bootstrapComponents,c=t.importedModules,d=t.exportedModules,p=t.schemas,g=t.transitiveModule,f=t.id;this.type=n,this.declaredDirectives=_normalizeArray(r),this.exportedDirectives=_normalizeArray(i),this.declaredPipes=_normalizeArray(a),this.exportedPipes=_normalizeArray(s),this.providers=_normalizeArray(o),this.entryComponents=_normalizeArray(u),this.bootstrapComponents=_normalizeArray(l),this.importedModules=_normalizeArray(c),this.exportedModules=_normalizeArray(d),this.schemas=_normalizeArray(p),this.id=f,this.transitiveModule=g}return CompileNgModuleMetadata.prototype.toSummary=function(){return{summaryKind:A.NgModule,type:this.type,entryComponents:this.transitiveModule.entryComponents,providers:this.transitiveModule.providers,modules:this.transitiveModule.modules,exportedDirectives:this.transitiveModule.exportedDirectives,exportedPipes:this.transitiveModule.exportedPipes}},CompileNgModuleMetadata}(),O=function(){function TransitiveCompileNgModuleMetadata(){this.directivesSet=new Set,this.directives=[],this.exportedDirectivesSet=new Set,this.exportedDirectives=[],this.pipesSet=new Set,this.pipes=[],this.exportedPipesSet=new Set,this.exportedPipes=[],this.modulesSet=new Set,this.modules=[],this.entryComponentsSet=new Set,this.entryComponents=[],this.providers=[]}return TransitiveCompileNgModuleMetadata.prototype.addProvider=function(e,t){this.providers.push({provider:e,module:t})},TransitiveCompileNgModuleMetadata.prototype.addDirective=function(e){this.directivesSet.has(e.reference)||(this.directivesSet.add(e.reference),this.directives.push(e))},TransitiveCompileNgModuleMetadata.prototype.addExportedDirective=function(e){this.exportedDirectivesSet.has(e.reference)||(this.exportedDirectivesSet.add(e.reference),this.exportedDirectives.push(e))},TransitiveCompileNgModuleMetadata.prototype.addPipe=function(e){this.pipesSet.has(e.reference)||(this.pipesSet.add(e.reference),this.pipes.push(e))},TransitiveCompileNgModuleMetadata.prototype.addExportedPipe=function(e){this.exportedPipesSet.has(e.reference)||(this.exportedPipesSet.add(e.reference),this.exportedPipes.push(e))},TransitiveCompileNgModuleMetadata.prototype.addModule=function(e){this.modulesSet.has(e.reference)||(this.modulesSet.add(e.reference),this.modules.push(e))},TransitiveCompileNgModuleMetadata.prototype.addEntryComponent=function(e){this.entryComponentsSet.has(e.reference)||(this.entryComponentsSet.add(e.reference),this.entryComponents.push(e))},TransitiveCompileNgModuleMetadata}(),D=function(){function ProviderMeta(e,t){var n=t.useClass,o=t.useValue,r=t.useExisting,i=t.useFactory,a=t.deps,s=t.multi;this.token=e,this.useClass=n,this.useValue=o,this.useExisting=r,this.useFactory=i,this.dependencies=a,this.multi=!!s}return ProviderMeta}()},,,function(e,t,n){"use strict";var o=n(1);n.d(t,"K",function(){return r}),n.d(t,"p",function(){return i}),n.d(t,"H",function(){return a}),n.d(t,"J",function(){return s}),n.d(t,"F",function(){return u}),n.d(t,"e",function(){return l}),n.d(t,"g",function(){return c}),n.d(t,"h",function(){return d}),n.d(t,"c",function(){return p}),n.d(t,"d",function(){return g}),n.d(t,"i",function(){return f}),n.d(t,"j",function(){return h}),n.d(t,"l",function(){return m}),n.d(t,"b",function(){return y}),n.d(t,"n",function(){return b}),n.d(t,"m",function(){return v}),n.d(t,"q",function(){return _}),n.d(t,"o",function(){return E}),n.d(t,"k",function(){return T}),n.d(t,"f",function(){return S}),n.d(t,"C",function(){return A}),n.d(t,"a",function(){return M}),n.d(t,"N",function(){return C}),n.d(t,"M",function(){return k}),n.d(t,"t",function(){return R}),n.d(t,"v",function(){return N}),n.d(t,"u",function(){return O}),n.d(t,"r",function(){return D}),n.d(t,"s",function(){return w}),n.d(t,"D",function(){return I}),n.d(t,"L",function(){return x}),n.d(t,"G",function(){return B}),n.d(t,"E",function(){return L}),n.d(t,"w",function(){return P}),n.d(t,"x",function(){return H}),n.d(t,"y",function(){return F}),n.d(t,"A",function(){return U}),n.d(t,"z",function(){return V}),n.d(t,"I",function(){return W}),n.d(t,"B",function(){return j});var r=o.__core_private__.isDefaultChangeDetectionStrategy,i=o.__core_private__.ChangeDetectorStatus,a=o.__core_private__.LifecycleHooks,s=o.__core_private__.LIFECYCLE_HOOKS_VALUES,u=o.__core_private__.ReflectorReader,l=o.__core_private__.ViewContainer,c=o.__core_private__.CodegenComponentFactoryResolver,d=o.__core_private__.ComponentRef_,p=o.__core_private__.AppView,g=o.__core_private__.DebugAppView,f=o.__core_private__.NgModuleInjector,h=o.__core_private__.registerModuleFactory,m=o.__core_private__.ViewType,y=o.__core_private__.view_utils,b=o.__core_private__.DebugContext,v=o.__core_private__.StaticNodeDebugInfo,_=o.__core_private__.devModeEqual,E=o.__core_private__.UNINITIALIZED,T=o.__core_private__.ValueUnwrapper,S=o.__core_private__.TemplateRef_,A=(o.__core_private__.RenderDebugInfo,o.__core_private__.Console),M=o.__core_private__.reflector,C=o.__core_private__.Reflector,k=o.__core_private__.ReflectionCapabilities,R=o.__core_private__.NoOpAnimationPlayer,N=(o.__core_private__.AnimationPlayer,o.__core_private__.AnimationSequencePlayer),O=o.__core_private__.AnimationGroupPlayer,D=o.__core_private__.AnimationKeyframe,w=o.__core_private__.AnimationStyles,I=o.__core_private__.ANY_STATE,x=o.__core_private__.DEFAULT_STATE,B=o.__core_private__.EMPTY_STATE,L=o.__core_private__.FILL_STYLE_FLAG,P=o.__core_private__.prepareFinalAnimationStyles,H=o.__core_private__.balanceAnimationKeyframes,F=o.__core_private__.clearStyles,U=o.__core_private__.collectAndResolveStyles,V=o.__core_private__.renderStyles,W=(o.__core_private__.ViewMetadata,o.__core_private__.ComponentStillLoadingError),j=o.__core_private__.AnimationTransition},,function(e,t,n){"use strict";function assetUrl(e,t,n){return void 0===t&&(t=null),void 0===n&&(n="src"),null==t?"@angular/"+e+"/index":"@angular/"+e+"/"+n+"/"+t}function resolveIdentifier(e){return r.a.resolveIdentifier(e.name,e.moduleUrl,e.runtime)}function createIdentifier(e){var t=r.a.resolveIdentifier(e.name,e.moduleUrl,e.runtime);return{reference:t}}function identifierToken(e){return{identifier:e}}function createIdentifierToken(e){return identifierToken(createIdentifier(e))}function createEnumIdentifier(e,t){var n=r.a.resolveEnum(resolveIdentifier(e),t);return{reference:n}}var o=n(1),r=n(17);n.d(t,"b",function(){return l}),t.a=resolveIdentifier,t.e=createIdentifier,t.c=identifierToken,t.d=createIdentifierToken,t.f=createEnumIdentifier;var i=assetUrl("core","linker/view"),a=assetUrl("core","linker/view_utils"),s=assetUrl("core","change_detection/change_detection"),u=assetUrl("core","animation/animation_style_util"),l=function(){function Identifiers(){}return Identifiers.ANALYZE_FOR_ENTRY_COMPONENTS={name:"ANALYZE_FOR_ENTRY_COMPONENTS",moduleUrl:assetUrl("core","metadata/di"),runtime:o.ANALYZE_FOR_ENTRY_COMPONENTS},Identifiers.ViewUtils={name:"ViewUtils",moduleUrl:assetUrl("core","linker/view_utils"),runtime:r.b.ViewUtils},Identifiers.AppView={name:"AppView",moduleUrl:i,runtime:r.c},Identifiers.DebugAppView={name:"DebugAppView",moduleUrl:i,runtime:r.d},Identifiers.ViewContainer={name:"ViewContainer",moduleUrl:assetUrl("core","linker/view_container"),runtime:r.e},Identifiers.ElementRef={name:"ElementRef",moduleUrl:assetUrl("core","linker/element_ref"),runtime:o.ElementRef},Identifiers.ViewContainerRef={name:"ViewContainerRef",moduleUrl:assetUrl("core","linker/view_container_ref"),runtime:o.ViewContainerRef},Identifiers.ChangeDetectorRef={name:"ChangeDetectorRef",moduleUrl:assetUrl("core","change_detection/change_detector_ref"),runtime:o.ChangeDetectorRef},Identifiers.RenderComponentType={name:"RenderComponentType",moduleUrl:assetUrl("core","render/api"),runtime:o.RenderComponentType},Identifiers.QueryList={name:"QueryList",moduleUrl:assetUrl("core","linker/query_list"),runtime:o.QueryList},Identifiers.TemplateRef={name:"TemplateRef",moduleUrl:assetUrl("core","linker/template_ref"),runtime:o.TemplateRef},Identifiers.TemplateRef_={name:"TemplateRef_",moduleUrl:assetUrl("core","linker/template_ref"),runtime:r.f},Identifiers.CodegenComponentFactoryResolver={name:"CodegenComponentFactoryResolver",moduleUrl:assetUrl("core","linker/component_factory_resolver"),runtime:r.g},Identifiers.ComponentFactoryResolver={name:"ComponentFactoryResolver",moduleUrl:assetUrl("core","linker/component_factory_resolver"),runtime:o.ComponentFactoryResolver},Identifiers.ComponentFactory={name:"ComponentFactory",runtime:o.ComponentFactory,moduleUrl:assetUrl("core","linker/component_factory")},Identifiers.ComponentRef_={name:"ComponentRef_",runtime:r.h,moduleUrl:assetUrl("core","linker/component_factory")},Identifiers.ComponentRef={name:"ComponentRef",runtime:o.ComponentRef,moduleUrl:assetUrl("core","linker/component_factory")},Identifiers.NgModuleFactory={name:"NgModuleFactory",runtime:o.NgModuleFactory,moduleUrl:assetUrl("core","linker/ng_module_factory")},Identifiers.NgModuleInjector={name:"NgModuleInjector",runtime:r.i,moduleUrl:assetUrl("core","linker/ng_module_factory")},Identifiers.RegisterModuleFactoryFn={name:"registerModuleFactory",runtime:r.j,moduleUrl:assetUrl("core","linker/ng_module_factory_loader")},Identifiers.ValueUnwrapper={name:"ValueUnwrapper",moduleUrl:s,runtime:r.k},Identifiers.Injector={name:"Injector",moduleUrl:assetUrl("core","di/injector"),runtime:o.Injector},Identifiers.ViewEncapsulation={name:"ViewEncapsulation",moduleUrl:assetUrl("core","metadata/view"),runtime:o.ViewEncapsulation},Identifiers.ViewType={name:"ViewType",moduleUrl:assetUrl("core","linker/view_type"),runtime:r.l},Identifiers.ChangeDetectionStrategy={name:"ChangeDetectionStrategy",moduleUrl:s,runtime:o.ChangeDetectionStrategy},Identifiers.StaticNodeDebugInfo={name:"StaticNodeDebugInfo",moduleUrl:assetUrl("core","linker/debug_context"),runtime:r.m},Identifiers.DebugContext={name:"DebugContext",moduleUrl:assetUrl("core","linker/debug_context"),runtime:r.n},Identifiers.Renderer={name:"Renderer",moduleUrl:assetUrl("core","render/api"),runtime:o.Renderer},Identifiers.SimpleChange={name:"SimpleChange",moduleUrl:s,runtime:o.SimpleChange},Identifiers.UNINITIALIZED={name:"UNINITIALIZED",moduleUrl:s,runtime:r.o},Identifiers.ChangeDetectorStatus={name:"ChangeDetectorStatus",moduleUrl:s,runtime:r.p},Identifiers.checkBinding={name:"checkBinding",moduleUrl:a,runtime:r.b.checkBinding},Identifiers.devModeEqual={name:"devModeEqual",moduleUrl:s,runtime:r.q},Identifiers.inlineInterpolate={name:"inlineInterpolate",moduleUrl:a,runtime:r.b.inlineInterpolate},Identifiers.interpolate={name:"interpolate",moduleUrl:a,runtime:r.b.interpolate},Identifiers.castByValue={name:"castByValue",moduleUrl:a,runtime:r.b.castByValue},Identifiers.EMPTY_ARRAY={name:"EMPTY_ARRAY",moduleUrl:a,runtime:r.b.EMPTY_ARRAY},Identifiers.EMPTY_MAP={name:"EMPTY_MAP",moduleUrl:a,runtime:r.b.EMPTY_MAP},Identifiers.createRenderElement={name:"createRenderElement",moduleUrl:a,runtime:r.b.createRenderElement},Identifiers.selectOrCreateRenderHostElement={name:"selectOrCreateRenderHostElement",moduleUrl:a,runtime:r.b.selectOrCreateRenderHostElement},Identifiers.pureProxies=[null,{name:"pureProxy1",moduleUrl:a,runtime:r.b.pureProxy1},{name:"pureProxy2",moduleUrl:a,runtime:r.b.pureProxy2},{name:"pureProxy3",moduleUrl:a,runtime:r.b.pureProxy3},{name:"pureProxy4",moduleUrl:a,runtime:r.b.pureProxy4},{name:"pureProxy5",moduleUrl:a,runtime:r.b.pureProxy5},{name:"pureProxy6",moduleUrl:a,runtime:r.b.pureProxy6},{name:"pureProxy7",moduleUrl:a,runtime:r.b.pureProxy7},{name:"pureProxy8",moduleUrl:a,runtime:r.b.pureProxy8},{name:"pureProxy9",moduleUrl:a,runtime:r.b.pureProxy9},{name:"pureProxy10",moduleUrl:a,runtime:r.b.pureProxy10}],Identifiers.SecurityContext={name:"SecurityContext",moduleUrl:assetUrl("core","security"),runtime:o.SecurityContext},Identifiers.AnimationKeyframe={name:"AnimationKeyframe",moduleUrl:assetUrl("core","animation/animation_keyframe"),runtime:r.r},Identifiers.AnimationStyles={name:"AnimationStyles",moduleUrl:assetUrl("core","animation/animation_styles"),runtime:r.s},Identifiers.NoOpAnimationPlayer={name:"NoOpAnimationPlayer",moduleUrl:assetUrl("core","animation/animation_player"),runtime:r.t},Identifiers.AnimationGroupPlayer={name:"AnimationGroupPlayer",moduleUrl:assetUrl("core","animation/animation_group_player"),runtime:r.u},Identifiers.AnimationSequencePlayer={name:"AnimationSequencePlayer",moduleUrl:assetUrl("core","animation/animation_sequence_player"),runtime:r.v},Identifiers.prepareFinalAnimationStyles={name:"prepareFinalAnimationStyles",moduleUrl:u,runtime:r.w},Identifiers.balanceAnimationKeyframes={name:"balanceAnimationKeyframes",moduleUrl:u,runtime:r.x},Identifiers.clearStyles={name:"clearStyles",moduleUrl:u,runtime:r.y},Identifiers.renderStyles={name:"renderStyles",moduleUrl:u,runtime:r.z},Identifiers.collectAndResolveStyles={name:"collectAndResolveStyles",moduleUrl:u,runtime:r.A},Identifiers.LOCALE_ID={name:"LOCALE_ID",moduleUrl:assetUrl("core","i18n/tokens"),runtime:o.LOCALE_ID},Identifiers.TRANSLATIONS_FORMAT={name:"TRANSLATIONS_FORMAT",moduleUrl:assetUrl("core","i18n/tokens"),runtime:o.TRANSLATIONS_FORMAT},Identifiers.setBindingDebugInfo={name:"setBindingDebugInfo",moduleUrl:a,runtime:r.b.setBindingDebugInfo},Identifiers.setBindingDebugInfoForChanges={name:"setBindingDebugInfoForChanges",moduleUrl:a,runtime:r.b.setBindingDebugInfoForChanges},Identifiers.AnimationTransition={name:"AnimationTransition",moduleUrl:assetUrl("core","animation/animation_transition"),runtime:r.B},Identifiers.InlineArray={name:"InlineArray",moduleUrl:a,runtime:null},Identifiers.inlineArrays=[{name:"InlineArray2",moduleUrl:a,runtime:r.b.InlineArray2},{name:"InlineArray2",moduleUrl:a,runtime:r.b.InlineArray2},{name:"InlineArray4",moduleUrl:a,runtime:r.b.InlineArray4},{name:"InlineArray8",moduleUrl:a,runtime:r.b.InlineArray8},{name:"InlineArray16",moduleUrl:a,runtime:r.b.InlineArray16}],Identifiers.EMPTY_INLINE_ARRAY={
name:"EMPTY_INLINE_ARRAY",moduleUrl:a,runtime:r.b.EMPTY_INLINE_ARRAY},Identifiers.InlineArrayDynamic={name:"InlineArrayDynamic",moduleUrl:a,runtime:r.b.InlineArrayDynamic},Identifiers.subscribeToRenderElement={name:"subscribeToRenderElement",moduleUrl:a,runtime:r.b.subscribeToRenderElement},Identifiers.createRenderComponentType={name:"createRenderComponentType",moduleUrl:a,runtime:r.b.createRenderComponentType},Identifiers.noop={name:"noop",moduleUrl:a,runtime:r.b.noop},Identifiers}()},function(e,t,n){"use strict";function CompilerInjectable(){return function(e){return e}}t.a=CompilerInjectable},,function(e,t,n){"use strict";function flattenUnsubscriptionErrors(e){return e.reduce(function(e,t){return e.concat(t instanceof u.UnsubscriptionError?t.errors:t)},[])}var o=n(66),r=n(523),i=n(231),a=n(27),s=n(25),u=n(520),l=function(){function Subscription(e){this.closed=!1,this._parent=null,this._parents=null,this._subscriptions=null,e&&(this._unsubscribe=e)}return Subscription.prototype.unsubscribe=function(){var e,t=!1;if(!this.closed){var n=this,l=n._parent,c=n._parents,d=n._unsubscribe,p=n._subscriptions;this.closed=!0,this._parent=null,this._parents=null,this._subscriptions=null;for(var g=-1,f=c?c.length:0;l;)l.remove(this),l=++g<f&&c[g]||null;if(i.isFunction(d)){var h=a.tryCatch(d).call(this);h===s.errorObject&&(t=!0,e=e||(s.errorObject.e instanceof u.UnsubscriptionError?flattenUnsubscriptionErrors(s.errorObject.e.errors):[s.errorObject.e]))}if(o.isArray(p))for(g=-1,f=p.length;++g<f;){var m=p[g];if(r.isObject(m)){var h=a.tryCatch(m.unsubscribe).call(m);if(h===s.errorObject){t=!0,e=e||[];var y=s.errorObject.e;y instanceof u.UnsubscriptionError?e=e.concat(flattenUnsubscriptionErrors(y.errors)):e.push(y)}}}if(t)throw new u.UnsubscriptionError(e)}},Subscription.prototype.add=function(e){if(!e||e===Subscription.EMPTY)return Subscription.EMPTY;if(e===this)return this;var t=e;switch(typeof e){case"function":t=new Subscription(e);case"object":if(t.closed||"function"!=typeof t.unsubscribe)return t;if(this.closed)return t.unsubscribe(),t;if("function"!=typeof t._addParent){var n=t;t=new Subscription,t._subscriptions=[n]}break;default:throw new Error("unrecognized teardown "+e+" added to Subscription.")}var o=this._subscriptions||(this._subscriptions=[]);return o.push(t),t._addParent(this),t},Subscription.prototype.remove=function(e){var t=this._subscriptions;if(t){var n=t.indexOf(e);n!==-1&&t.splice(n,1)}},Subscription.prototype._addParent=function(e){var t=this,n=t._parent,o=t._parents;n&&n!==e?o?o.indexOf(e)===-1&&o.push(e):this._parents=[e]:this._parent=e},Subscription.EMPTY=function(e){return e.closed=!0,e}(new Subscription),Subscription}();t.Subscription=l},function(e,t,n){"use strict";function getDOM(){return o}function setRootDomAdapter(e){o||(o=e)}t.a=getDOM,t.c=setRootDomAdapter,n.d(t,"b",function(){return r});var o=null,r=function(){function DomAdapter(){this.resourceLoaderType=null}return DomAdapter.prototype.hasProperty=function(e,t){},DomAdapter.prototype.setProperty=function(e,t,n){},DomAdapter.prototype.getProperty=function(e,t){},DomAdapter.prototype.invoke=function(e,t,n){},DomAdapter.prototype.logError=function(e){},DomAdapter.prototype.log=function(e){},DomAdapter.prototype.logGroup=function(e){},DomAdapter.prototype.logGroupEnd=function(){},Object.defineProperty(DomAdapter.prototype,"attrToPropMap",{get:function(){return this._attrToPropMap},set:function(e){this._attrToPropMap=e},enumerable:!0,configurable:!0}),DomAdapter.prototype.parse=function(e){},DomAdapter.prototype.query=function(e){},DomAdapter.prototype.querySelector=function(e,t){},DomAdapter.prototype.querySelectorAll=function(e,t){},DomAdapter.prototype.on=function(e,t,n){},DomAdapter.prototype.onAndCancel=function(e,t,n){},DomAdapter.prototype.dispatchEvent=function(e,t){},DomAdapter.prototype.createMouseEvent=function(e){},DomAdapter.prototype.createEvent=function(e){},DomAdapter.prototype.preventDefault=function(e){},DomAdapter.prototype.isPrevented=function(e){},DomAdapter.prototype.getInnerHTML=function(e){},DomAdapter.prototype.getTemplateContent=function(e){},DomAdapter.prototype.getOuterHTML=function(e){},DomAdapter.prototype.nodeName=function(e){},DomAdapter.prototype.nodeValue=function(e){},DomAdapter.prototype.type=function(e){},DomAdapter.prototype.content=function(e){},DomAdapter.prototype.firstChild=function(e){},DomAdapter.prototype.nextSibling=function(e){},DomAdapter.prototype.parentElement=function(e){},DomAdapter.prototype.childNodes=function(e){},DomAdapter.prototype.childNodesAsList=function(e){},DomAdapter.prototype.clearNodes=function(e){},DomAdapter.prototype.appendChild=function(e,t){},DomAdapter.prototype.removeChild=function(e,t){},DomAdapter.prototype.replaceChild=function(e,t,n){},DomAdapter.prototype.remove=function(e){},DomAdapter.prototype.insertBefore=function(e,t){},DomAdapter.prototype.insertAllBefore=function(e,t){},DomAdapter.prototype.insertAfter=function(e,t){},DomAdapter.prototype.setInnerHTML=function(e,t){},DomAdapter.prototype.getText=function(e){},DomAdapter.prototype.setText=function(e,t){},DomAdapter.prototype.getValue=function(e){},DomAdapter.prototype.setValue=function(e,t){},DomAdapter.prototype.getChecked=function(e){},DomAdapter.prototype.setChecked=function(e,t){},DomAdapter.prototype.createComment=function(e){},DomAdapter.prototype.createTemplate=function(e){},DomAdapter.prototype.createElement=function(e,t){},DomAdapter.prototype.createElementNS=function(e,t,n){},DomAdapter.prototype.createTextNode=function(e,t){},DomAdapter.prototype.createScriptTag=function(e,t,n){},DomAdapter.prototype.createStyleElement=function(e,t){},DomAdapter.prototype.createShadowRoot=function(e){},DomAdapter.prototype.getShadowRoot=function(e){},DomAdapter.prototype.getHost=function(e){},DomAdapter.prototype.getDistributedNodes=function(e){},DomAdapter.prototype.clone=function(e){},DomAdapter.prototype.getElementsByClassName=function(e,t){},DomAdapter.prototype.getElementsByTagName=function(e,t){},DomAdapter.prototype.classList=function(e){},DomAdapter.prototype.addClass=function(e,t){},DomAdapter.prototype.removeClass=function(e,t){},DomAdapter.prototype.hasClass=function(e,t){},DomAdapter.prototype.setStyle=function(e,t,n){},DomAdapter.prototype.removeStyle=function(e,t){},DomAdapter.prototype.getStyle=function(e,t){},DomAdapter.prototype.hasStyle=function(e,t,n){},DomAdapter.prototype.tagName=function(e){},DomAdapter.prototype.attributeMap=function(e){},DomAdapter.prototype.hasAttribute=function(e,t){},DomAdapter.prototype.hasAttributeNS=function(e,t,n){},DomAdapter.prototype.getAttribute=function(e,t){},DomAdapter.prototype.getAttributeNS=function(e,t,n){},DomAdapter.prototype.setAttribute=function(e,t,n){},DomAdapter.prototype.setAttributeNS=function(e,t,n,o){},DomAdapter.prototype.removeAttribute=function(e,t){},DomAdapter.prototype.removeAttributeNS=function(e,t,n){},DomAdapter.prototype.templateAwareRoot=function(e){},DomAdapter.prototype.createHtmlDocument=function(){},DomAdapter.prototype.defaultDoc=function(){},DomAdapter.prototype.getBoundingClientRect=function(e){},DomAdapter.prototype.getTitle=function(){},DomAdapter.prototype.setTitle=function(e){},DomAdapter.prototype.elementMatches=function(e,t){},DomAdapter.prototype.isTemplateElement=function(e){},DomAdapter.prototype.isTextNode=function(e){},DomAdapter.prototype.isCommentNode=function(e){},DomAdapter.prototype.isElementNode=function(e){},DomAdapter.prototype.hasShadowRoot=function(e){},DomAdapter.prototype.isShadowRoot=function(e){},DomAdapter.prototype.importIntoDoc=function(e){},DomAdapter.prototype.adoptNode=function(e){},DomAdapter.prototype.getHref=function(e){},DomAdapter.prototype.getEventKey=function(e){},DomAdapter.prototype.resolveAndSetHref=function(e,t,n){},DomAdapter.prototype.supportsDOMEvents=function(){},DomAdapter.prototype.supportsNativeShadowDOM=function(){},DomAdapter.prototype.getGlobalEventTarget=function(e){},DomAdapter.prototype.getHistory=function(){},DomAdapter.prototype.getLocation=function(){},DomAdapter.prototype.getBaseHref=function(){},DomAdapter.prototype.resetBaseElement=function(){},DomAdapter.prototype.getUserAgent=function(){},DomAdapter.prototype.setData=function(e,t,n){},DomAdapter.prototype.getComputedStyle=function(e){},DomAdapter.prototype.getData=function(e,t){},DomAdapter.prototype.setGlobalVar=function(e,t){},DomAdapter.prototype.supportsWebAnimation=function(){},DomAdapter.prototype.performanceNow=function(){},DomAdapter.prototype.getAnimationPrefix=function(){},DomAdapter.prototype.getTransitionEnd=function(){},DomAdapter.prototype.supportsAnimation=function(){},DomAdapter.prototype.supportsCookies=function(){},DomAdapter.prototype.getCookie=function(e){},DomAdapter.prototype.setCookie=function(e,t){},DomAdapter}()},,function(e,t){"use strict";t.errorObject={e:{}}},function(e,t,n){"use strict";(function(e){var n="undefined"!=typeof window&&window,o="undefined"!=typeof self&&"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&self,r="undefined"!=typeof e&&e,i=n||r||o;t.root=i,function(){if(!i)throw new Error("RxJS could not find any global context (window, self, global)")}()}).call(t,n(55))},function(e,t,n){"use strict";function tryCatcher(){try{return o.apply(this,arguments)}catch(e){return r.errorObject.e=e,r.errorObject}}function tryCatch(e){return o=e,tryCatcher}var o,r=n(25);t.tryCatch=tryCatch},function(e,t,n){"use strict";var o=n(696);n.d(t,"RouterLink",function(){return o.a}),n.d(t,"RouterLinkWithHref",function(){return o.b}),n.d(t,"RouterLinkActive",function(){return o.c}),n.d(t,"RouterOutlet",function(){return o.d}),n.d(t,"NavigationCancel",function(){return o.e}),n.d(t,"NavigationError",function(){return o.f}),n.d(t,"NavigationStart",function(){return o.g}),n.d(t,"Router",function(){return o.h}),n.d(t,"RoutesRecognized",function(){return o.i}),n.d(t,"NavigationEnd",function(){return o.j}),n.d(t,"RouterModule",function(){return o.k}),n.d(t,"provideRoutes",function(){return o.l}),n.d(t,"RouterOutletMap",function(){return o.m}),n.d(t,"ActivatedRoute",function(){return o.n}),n.d(t,"ActivatedRouteSnapshot",function(){return o.o}),n.d(t,"RouterState",function(){return o.p}),n.d(t,"RouterStateSnapshot",function(){return o.q}),n.d(t,"PRIMARY_OUTLET",function(){return o.r}),n.d(t,"DefaultUrlSerializer",function(){return o.s}),n.d(t,"UrlSegment",function(){return o.t}),n.d(t,"UrlSerializer",function(){return o.u}),n.d(t,"UrlTree",function(){return o.v}),n.d(t,"__router_private__",function(){return o.w})},,,,function(e,t,n){"use strict";function dashCaseToCamelCase(e){return e.replace(s,function(){for(var e=[],t=0;t<arguments.length;t++)e[t-0]=arguments[t];return e[1].toUpperCase()})}function splitAtColon(e,t){return _splitAt(e,":",t)}function splitAtPeriod(e,t){return _splitAt(e,".",t)}function _splitAt(e,t,n){var o=e.indexOf(t);return o==-1?n:[e.slice(0,o).trim(),e.slice(o+1).trim()]}function visitValue(e,t,o){return Array.isArray(e)?t.visitArray(e,o):n.i(r.c)(e)?t.visitStringMap(e,o):null==e||n.i(r.d)(e)?t.visitPrimitive(e,o):t.visitOther(e,o)}var o=n(617),r=n(7);n.d(t,"e",function(){return a}),t.h=dashCaseToCamelCase,t.a=splitAtColon,t.b=splitAtPeriod,t.f=visitValue,n.d(t,"g",function(){return u}),n.d(t,"d",function(){return l}),n.d(t,"c",function(){return c});var i=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},a="",s=/-+([a-z0-9])/g,u=function(){function ValueTransformer(){}return ValueTransformer.prototype.visitArray=function(e,t){var n=this;return e.map(function(e){return visitValue(e,n,t)})},ValueTransformer.prototype.visitStringMap=function(e,t){var n=this,o={};return Object.keys(e).forEach(function(r){o[r]=visitValue(e[r],n,t)}),o},ValueTransformer.prototype.visitPrimitive=function(e,t){return e},ValueTransformer.prototype.visitOther=function(e,t){return e},ValueTransformer}(),l=function(){function SyncAsyncResult(e,t){void 0===t&&(t=null),this.syncResult=e,this.asyncResult=t,t||(this.asyncResult=Promise.resolve(e))}return SyncAsyncResult}(),c=function(e){function SyntaxError(){e.apply(this,arguments)}return i(SyntaxError,e),SyntaxError}(o.a)},,,,,function(e,t,n){"use strict";function map(e,t){if("function"!=typeof e)throw new TypeError("argument is not a function. Are you looking for `mapTo()`?");return this.lift(new i(e,t))}var o=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},r=n(3);t.map=map;var i=function(){function MapOperator(e,t){this.project=e,this.thisArg=t}return MapOperator.prototype.call=function(e,t){return t.subscribe(new a(e,this.project,this.thisArg))},MapOperator}();t.MapOperator=i;var a=function(e){function MapSubscriber(t,n,o){e.call(this,t),this.project=n,this.count=0,this.thisArg=o||this}return o(MapSubscriber,e),MapSubscriber.prototype._next=function(e){var t;try{t=this.project.call(this.thisArg,e,this.count++)}catch(n){return void this.destination.error(n)}this.destination.next(t)},MapSubscriber}(r.Subscriber)},,,function(e,t,n){"use strict";var o=n(166),r=n(7);n.d(t,"c",function(){return i}),n.d(t,"b",function(){return a}),n.d(t,"d",function(){return s}),n.d(t,"e",function(){return u}),n.d(t,"a",function(){return l});var i=function(){function ParseLocation(e,t,n,o){this.file=e,this.offset=t,this.line=n,this.col=o}return ParseLocation.prototype.toString=function(){return n.i(r.f)(this.offset)?this.file.url+"@"+this.line+":"+this.col:this.file.url},ParseLocation.prototype.moveBy=function(e){for(var t=this.file.content,n=t.length,r=this.offset,i=this.line,a=this.col;r>0&&e<0;){r--,e++;var s=t.charCodeAt(r);if(s==o.S){i--;var u=t.substr(0,r-1).lastIndexOf(String.fromCharCode(o.S));a=u>0?r-u:r}else a--}for(;r<n&&e>0;){var s=t.charCodeAt(r);r++,e--,s==o.S?(i++,a=0):a++}return new ParseLocation(this.file,r,i,a)},ParseLocation.prototype.getContext=function(e,t){var o=this.file.content,i=this.offset;if(n.i(r.f)(i)){i>o.length-1&&(i=o.length-1);for(var a=i,s=0,u=0;s<e&&i>0&&(i--,s++,"\n"!=o[i]||++u!=t););for(s=0,u=0;s<e&&a<o.length-1&&(a++,s++,"\n"!=o[a]||++u!=t););return{before:o.substring(i,this.offset),after:o.substring(this.offset,a+1)}}return null},ParseLocation}(),a=function(){function ParseSourceFile(e,t){this.content=e,this.url=t}return ParseSourceFile}(),s=function(){function ParseSourceSpan(e,t,n){void 0===n&&(n=null),this.start=e,this.end=t,this.details=n}return ParseSourceSpan.prototype.toString=function(){return this.start.file.content.substring(this.start.offset,this.end.offset)},ParseSourceSpan}(),u={};u.WARNING=0,u.FATAL=1,u[u.WARNING]="WARNING",u[u.FATAL]="FATAL";var l=function(){function ParseError(e,t,n){void 0===n&&(n=u.FATAL),this.span=e,this.msg=t,this.level=n}return ParseError.prototype.toString=function(){var e=this.span.start.getContext(100,3),t=e?' ("'+e.before+"[ERROR ->]"+e.after+'")':"",n=this.span.details?", "+this.span.details:"";return""+this.msg+t+": "+this.span.start+n},ParseError}()},function(e,t,n){"use strict";var o=n(108),r=n(259),i=n(131),a=n(649),s=n(262),u=n(261),l=n(260);n.d(t,"d",function(){return o.c}),n.d(t,"b",function(){return o.a}),n.d(t,"j",function(){return o.d}),n.d(t,"e",function(){return o.e}),n.d(t,"i",function(){return o.f}),n.d(t,"c",function(){return o.b}),n.d(t,"k",function(){return r.b}),n.d(t,"h",function(){return r.a}),n.d(t,"g",function(){return i.b}),n.d(t,"f",function(){return a.a}),n.d(t,"l",function(){return s.c}),n.d(t,"m",function(){return u.a}),n.d(t,"a",function(){return l.a})},function(e,t,n){"use strict";var o=n(1);n.d(t,"a",function(){return r});var r=new o.OpaqueToken("NgValueAccessor")},,,function(e,t,n){"use strict";(function(e){function getTypeNameForDebugging(e){return e.name||typeof e}function isPresent(e){return null!=e}function isBlank(e){return null==e}function stringify(e){if("string"==typeof e)return e;if(null==e)return""+e;if(e.overriddenName)return""+e.overriddenName;if(e.name)return""+e.name;var t=e.toString(),n=t.indexOf("\n");return n===-1?t:t.substring(0,n)}function isJsObject(e){return null!==e&&("function"==typeof e||"object"==typeof e)}function getSymbolIterator(){if(!a)if(o.Symbol&&Symbol.iterator)a=Symbol.iterator;else for(var e=Object.getOwnPropertyNames(Map.prototype),t=0;t<e.length;++t){var n=e[t];"entries"!==n&&"size"!==n&&Map.prototype[n]===Map.prototype.entries&&(a=n)}return a}t.f=getTypeNameForDebugging,t.a=isPresent,t.b=isBlank,t.e=stringify,n.d(t,"g",function(){return i}),t.c=isJsObject,t.d=getSymbolIterator;var o;o="undefined"==typeof window?"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:e:window;var r=o;r.assert=function(e){};var i=(Object.getPrototypeOf({}),function(){function NumberWrapper(){}return NumberWrapper.parseIntAutoRadix=function(e){var t=parseInt(e);if(isNaN(t))throw new Error("Invalid integer literal when parsing "+e);return t},NumberWrapper.isNumeric=function(e){return!isNaN(e-parseFloat(e))},NumberWrapper}()),a=null}).call(t,n(55))},function(e,t,n){"use strict";function createDiTokenExpression(e){return n.i(o.f)(e.value)?i.f(e.value):i.d(e.identifier)}function createInlineArray(e){if(0===e.length)return i.d(n.i(r.e)(r.b.EMPTY_INLINE_ARRAY));var t=Math.log(e.length)/Math.log(2),o=Math.ceil(t),a=o<r.b.inlineArrays.length?r.b.inlineArrays[o]:r.b.InlineArrayDynamic,s=n.i(r.e)(a);return i.d(s).instantiate([i.f(e.length)].concat(e))}function createPureProxy(e,t,o,a){a.fields.push(new i.a(o.name,null));var s=t<r.b.pureProxies.length?r.b.pureProxies[t]:null;if(!s)throw new Error("Unsupported number of argument for pure functions: "+t);a.ctorStmts.push(i.c.prop(o.name).set(i.d(n.i(r.e)(s)).callFn([e])).toStmt())}function createEnumExpression(e,t){var o=Object.keys(e.runtime).find(function(n){return e.runtime[n]===t});if(!o)throw new Error("Unknown enum value "+t+" in "+e.name);return i.d(n.i(r.f)(e,o))}var o=n(7),r=n(19),i=n(10);t.c=createDiTokenExpression,t.d=createInlineArray,t.a=createPureProxy,t.b=createEnumExpression},function(e,t,n){"use strict";var o=n(351);n.d(t,"b",function(){return r}),n.d(t,"a",function(){return i});var r=function(){function InterpolationConfig(e,t){this.start=e,this.end=t}return InterpolationConfig.fromArray=function(e){return e?(n.i(o.a)("interpolation",e),new InterpolationConfig(e[0],e[1])):i},InterpolationConfig}(),i=new r("{{","}}")},function(e,t,n){"use strict";function templateVisitAll(e,t,n){void 0===n&&(n=null);var o=[],r=e.visit?function(t){return e.visit(t,n)||t.visit(e,n)}:function(t){return t.visit(e,n)};return t.forEach(function(e){var t=r(e);t&&o.push(t)}),o}n.d(t,"i",function(){return o}),n.d(t,"h",function(){return r}),n.d(t,"j",function(){return i}),n.d(t,"d",function(){return a}),n.d(t,"f",function(){return s}),n.d(t,"n",function(){return u}),n.d(t,"c",function(){return l}),n.d(t,"m",function(){return c}),n.d(t,"l",function(){return d}),n.d(t,"p",function(){return p}),n.d(t,"o",function(){return g}),n.d(t,"b",function(){return f}),n.d(t,"a",function(){return h}),n.d(t,"k",function(){return m}),n.d(t,"e",function(){return y}),t.g=templateVisitAll;var o=function(){function TextAst(e,t,n){this.value=e,this.ngContentIndex=t,this.sourceSpan=n}return TextAst.prototype.visit=function(e,t){return e.visitText(this,t)},TextAst}(),r=function(){function BoundTextAst(e,t,n){this.value=e,this.ngContentIndex=t,this.sourceSpan=n}return BoundTextAst.prototype.visit=function(e,t){return e.visitBoundText(this,t)},BoundTextAst}(),i=function(){function AttrAst(e,t,n){this.name=e,this.value=t,this.sourceSpan=n}return AttrAst.prototype.visit=function(e,t){return e.visitAttr(this,t)},AttrAst}(),a=function(){function BoundElementPropertyAst(e,t,n,o,r,i,a){this.name=e,this.type=t,this.securityContext=n,this.needsRuntimeSecurityContext=o,this.value=r,this.unit=i,this.sourceSpan=a}return BoundElementPropertyAst.prototype.visit=function(e,t){return e.visitElementProperty(this,t)},Object.defineProperty(BoundElementPropertyAst.prototype,"isAnimation",{get:function(){return this.type===y.Animation},enumerable:!0,configurable:!0}),BoundElementPropertyAst}(),s=function(){function BoundEventAst(e,t,n,o,r){this.name=e,this.target=t,this.phase=n,this.handler=o,this.sourceSpan=r}return BoundEventAst.calcFullName=function(e,t,n){return t?t+":"+e:n?"@"+e+"."+n:e},BoundEventAst.prototype.visit=function(e,t){return e.visitEvent(this,t)},Object.defineProperty(BoundEventAst.prototype,"fullName",{get:function(){return BoundEventAst.calcFullName(this.name,this.target,this.phase)},enumerable:!0,configurable:!0}),Object.defineProperty(BoundEventAst.prototype,"isAnimation",{get:function(){return!!this.phase},enumerable:!0,configurable:!0}),BoundEventAst}(),u=function(){function ReferenceAst(e,t,n){this.name=e,this.value=t,this.sourceSpan=n}return ReferenceAst.prototype.visit=function(e,t){return e.visitReference(this,t)},ReferenceAst}(),l=function(){function VariableAst(e,t,n){this.name=e,this.value=t,this.sourceSpan=n}return VariableAst.prototype.visit=function(e,t){return e.visitVariable(this,t)},VariableAst}(),c=function(){function ElementAst(e,t,n,o,r,i,a,s,u,l,c,d){this.name=e,this.attrs=t,this.inputs=n,this.outputs=o,this.references=r,this.directives=i,this.providers=a,this.hasViewContainer=s,this.children=u,this.ngContentIndex=l,this.sourceSpan=c,this.endSourceSpan=d}return ElementAst.prototype.visit=function(e,t){return e.visitElement(this,t)},ElementAst}(),d=function(){function EmbeddedTemplateAst(e,t,n,o,r,i,a,s,u,l){this.attrs=e,this.outputs=t,this.references=n,this.variables=o,this.directives=r,this.providers=i,this.hasViewContainer=a,this.children=s,this.ngContentIndex=u,this.sourceSpan=l}return EmbeddedTemplateAst.prototype.visit=function(e,t){return e.visitEmbeddedTemplate(this,t)},EmbeddedTemplateAst}(),p=function(){function BoundDirectivePropertyAst(e,t,n,o){this.directiveName=e,this.templateName=t,this.value=n,this.sourceSpan=o}return BoundDirectivePropertyAst.prototype.visit=function(e,t){return e.visitDirectiveProperty(this,t)},BoundDirectivePropertyAst}(),g=function(){function DirectiveAst(e,t,n,o,r){this.directive=e,this.inputs=t,this.hostProperties=n,this.hostEvents=o,this.sourceSpan=r}return DirectiveAst.prototype.visit=function(e,t){return e.visitDirective(this,t)},DirectiveAst}(),f=function(){function ProviderAst(e,t,n,o,r,i,a){this.token=e,this.multiProvider=t,this.eager=n,this.providers=o,this.providerType=r,this.lifecycleHooks=i,this.sourceSpan=a}return ProviderAst.prototype.visit=function(e,t){return null},ProviderAst}(),h={};h.PublicService=0,h.PrivateService=1,h.Component=2,h.Directive=3,h.Builtin=4,h[h.PublicService]="PublicService",h[h.PrivateService]="PrivateService",h[h.Component]="Component",h[h.Directive]="Directive",h[h.Builtin]="Builtin";var m=function(){function NgContentAst(e,t,n){this.index=e,this.ngContentIndex=t,this.sourceSpan=n}return NgContentAst.prototype.visit=function(e,t){return e.visitNgContent(this,t)},NgContentAst}(),y={};y.Property=0,y.Attribute=1,y.Class=2,y.Style=3,y.Animation=4,y[y.Property]="Property",y[y.Attribute]="Attribute",y[y.Class]="Class",y[y.Style]="Style",y[y.Animation]="Animation"},function(e,t,n){"use strict";function isEmptyInputValue(e){return null==e||0===e.length}function _convertToPromise(e){return n.i(s.a)(e)?e:r.toPromise.call(e)}function _executeValidators(e,t){return t.map(function(t){return t(e)})}function _executeAsyncValidators(e,t){return t.map(function(t){return t(e)})}function _mergeErrors(e){var t=e.reduce(function(e,t){return n.i(a.c)(t)?i.a.merge(e,t):e},{});return 0===Object.keys(t).length?null:t}var o=n(1),r=n(514),i=(n.n(r),n(404)),a=n(111),s=n(406);n.d(t,"b",function(){return u}),n.d(t,"c",function(){return l}),n.d(t,"a",function(){return c});var u=new o.OpaqueToken("NgValidators"),l=new o.OpaqueToken("NgAsyncValidators"),c=function(){function Validators(){}return Validators.required=function(e){return isEmptyInputValue(e.value)?{required:!0}:null},Validators.requiredTrue=function(e){return e.value===!0?null:{required:!0}},Validators.minLength=function(e){return function(t){if(isEmptyInputValue(t.value))return null;var n=t.value?t.value.length:0;return n<e?{minlength:{requiredLength:e,actualLength:n}}:null}},Validators.maxLength=function(e){return function(t){var n=t.value?t.value.length:0;return n>e?{maxlength:{requiredLength:e,actualLength:n}}:null}},Validators.pattern=function(e){if(!e)return Validators.nullValidator;var t,n;return"string"==typeof e?(n="^"+e+"$",t=new RegExp(n)):(n=e.toString(),t=e),function(e){if(isEmptyInputValue(e.value))return null;var o=e.value;return t.test(o)?null:{pattern:{requiredPattern:n,actualValue:o}}}},Validators.nullValidator=function(e){return null},Validators.compose=function(e){if(!e)return null;var t=e.filter(a.c);return 0==t.length?null:function(e){return _mergeErrors(_executeValidators(e,t))}},Validators.composeAsync=function(e){if(!e)return null;var t=e.filter(a.c);return 0==t.length?null:function(e){var n=_executeAsyncValidators(e,t).map(_convertToPromise);return Promise.all(n).then(_mergeErrors)}},Validators}()},function(e,t,n){"use strict";(function(e){function isPresent(e){return null!=e}function isBlank(e){return null==e}function stringify(e){if("string"==typeof e)return e;if(null==e)return""+e;if(e.overriddenName)return""+e.overriddenName;if(e.name)return""+e.name;var t=e.toString(),n=t.indexOf("\n");return n===-1?t:t.substring(0,n)}function isJsObject(e){return null!==e&&("function"==typeof e||"object"==typeof e)}function setValueOnPath(e,t,n){for(var o=t.split("."),r=e;o.length>1;){var i=o.shift();r=r.hasOwnProperty(i)&&null!=r[i]?r[i]:r[i]={}}void 0!==r&&null!==r||(r={}),r[o.shift()]=n}function getSymbolIterator(){if(!i)if(o.Symbol&&Symbol.iterator)i=Symbol.iterator;else for(var e=Object.getOwnPropertyNames(Map.prototype),t=0;t<e.length;++t){var n=e[t];"entries"!==n&&"size"!==n&&Map.prototype[n]===Map.prototype.entries&&(i=n)}return i}n.d(t,"d",function(){return r}),t.a=isPresent,t.b=isBlank,t.g=stringify,t.e=isJsObject,t.c=setValueOnPath,t.f=getSymbolIterator;var o;o="undefined"==typeof window?"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:e:window;var r=o;r.assert=function(e){};var i=(Object.getPrototypeOf({}),function(){function NumberWrapper(){}return NumberWrapper.parseIntAutoRadix=function(e){var t=parseInt(e);if(isNaN(t))throw new Error("Invalid integer literal when parsing "+e);return t},NumberWrapper.isNumeric=function(e){return!isNaN(e-parseFloat(e))},NumberWrapper}(),null)}).call(t,n(55))},,,,,,,function(e,t,n){"use strict";var o=n(271);n.d(t,"a",function(){return i});var r=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},i=function(e){function ControlContainer(){e.apply(this,arguments)}return r(ControlContainer,e),Object.defineProperty(ControlContainer.prototype,"formDirective",{get:function(){return null},enumerable:!0,configurable:!0}),Object.defineProperty(ControlContainer.prototype,"path",{get:function(){return null},enumerable:!0,configurable:!0}),ControlContainer}(o.a)},function(e,t,n){"use strict";n.d(t,"a",function(){return r}),n.d(t,"b",function(){return i});var o=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},r="primary",i=function(e){function NavigationCancelingError(t){e.call(this,t),this.message=t,this.stack=new Error(t).stack}return o(NavigationCancelingError,e),NavigationCancelingError.prototype.toString=function(){return this.message},NavigationCancelingError}(Error)},function(e,t,n){"use strict";function shallowEqualArrays(e,t){if(e.length!==t.length)return!1;for(var n=0;n<e.length;++n)if(!shallowEqual(e[n],t[n]))return!1;return!0}function shallowEqual(e,t){var n=Object.keys(e),o=Object.keys(t);if(n.length!=o.length)return!1;for(var r,i=0;i<n.length;i++)if(r=n[i],e[r]!==t[r])return!1;return!0}function flatten(e){for(var t=[],n=0;n<e.length;++n)for(var o=0;o<e[n].length;++o)t.push(e[n][o]);return t}function last(e){return e.length>0?e[e.length-1]:null}function merge(e,t){var n={};for(var o in e)e.hasOwnProperty(o)&&(n[o]=e[o]);for(var o in t)t.hasOwnProperty(o)&&(n[o]=t[o]);return n}function forEach(e,t){for(var n in e)e.hasOwnProperty(n)&&t(e[n],n)}function waitForMap(e,t){var o=[],r={};if(forEach(e,function(e,n){n===d.a&&o.push(l.map.call(t(n,e),function(e){return r[n]=e,e}))}),forEach(e,function(e,n){n!==d.a&&o.push(l.map.call(t(n,e),function(e){return r[n]=e,e}))}),o.length>0){var s=a.concatAll.call(i.of.apply(void 0,o)),c=u.last.call(s);return l.map.call(c,function(){return r})}return n.i(i.of)(r)}function andObservables(e){var t=c.mergeAll.call(e);return s.every.call(t,function(e){return e===!0})}function wrapIntoObservable(e){return e instanceof o.Observable?e:e instanceof Promise?n.i(r.fromPromise)(e):n.i(i.of)(e)}var o=n(0),r=(n.n(o),n(222)),i=(n.n(r),n(117)),a=(n.n(i),n(323)),s=(n.n(a),n(324)),u=(n.n(s),n(502)),l=(n.n(u),n(37)),c=(n.n(l),n(118)),d=(n.n(c),n(58));t.h=shallowEqualArrays,t.d=shallowEqual,t.a=flatten,t.i=last,t.g=merge,t.c=forEach,t.e=waitForMap,t.f=andObservables,t.b=wrapIntoObservable},,,,,,function(e,t,n){"use strict";var o=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},r=n(0),i=n(319),a=n(84),s=n(67),u=function(e){function ArrayObservable(t,n){e.call(this),this.array=t,this.scheduler=n,n||1!==t.length||(this._isScalar=!0,this.value=t[0])}return o(ArrayObservable,e),ArrayObservable.create=function(e,t){return new ArrayObservable(e,t)},ArrayObservable.of=function(){for(var e=[],t=0;t<arguments.length;t++)e[t-0]=arguments[t];var n=e[e.length-1];s.isScheduler(n)?e.pop():n=null;var o=e.length;return o>1?new ArrayObservable(e,n):1===o?new i.ScalarObservable(e[0],n):new a.EmptyObservable(n)},ArrayObservable.dispatch=function(e){var t=e.array,n=e.index,o=e.count,r=e.subscriber;return n>=o?void r.complete():(r.next(t[n]),void(r.closed||(e.index=n+1,this.schedule(e))))},ArrayObservable.prototype._subscribe=function(e){var t=0,n=this.array,o=n.length,r=this.scheduler;if(r)return r.schedule(ArrayObservable.dispatch,0,{array:n,index:t,count:o,subscriber:e});for(var i=0;i<o&&!e.closed;i++)e.next(n[i]);e.complete()},ArrayObservable}(r.Observable);t.ArrayObservable=u},function(e,t){"use strict";t.isArray=Array.isArray||function(e){return e&&"number"==typeof e.length}},function(e,t){"use strict";function isScheduler(e){return e&&"function"==typeof e.schedule}t.isScheduler=isScheduler},function(e,t,n){"use strict";var o=n(590);n.d(t,"I18nSelectPipe",function(){return o.h}),n.d(t,"CommonModule",function(){return o.b}),n.d(t,"NgClass",function(){return o.i}),n.d(t,"NgFor",function(){return o.j}),n.d(t,"NgIf",function(){return o.k}),n.d(t,"NgPlural",function(){return o.l}),n.d(t,"NgPluralCase",function(){return o.m}),n.d(t,"NgStyle",function(){return o.n}),n.d(t,"NgSwitch",function(){return o.o}),n.d(t,"NgSwitchCase",function(){return o.p}),n.d(t,"NgSwitchDefault",function(){return o.q}),n.d(t,"NgTemplateOutlet",function(){return o.r}),n.d(t,"AsyncPipe",function(){return o.s}),n.d(t,"DatePipe",function(){return o.t}),n.d(t,"I18nPluralPipe",function(){return o.u}),n.d(t,"NgLocalization",function(){return o.v}),n.d(t,"JsonPipe",function(){return o.w}),n.d(t,"LowerCasePipe",function(){return o.x}),n.d(t,"CurrencyPipe",function(){return o.y}),n.d(t,"DecimalPipe",function(){return o.z}),n.d(t,"PercentPipe",function(){return o.A}),n.d(t,"SlicePipe",function(){return o.B}),n.d(t,"UpperCasePipe",function(){return o.C}),n.d(t,"VERSION",function(){return o.D}),n.d(t,"Version",function(){
return o.E}),n.d(t,"PlatformLocation",function(){return o.a}),n.d(t,"LOCATION_INITIALIZED",function(){return o.F}),n.d(t,"LocationStrategy",function(){return o.c}),n.d(t,"APP_BASE_HREF",function(){return o.g}),n.d(t,"HashLocationStrategy",function(){return o.e}),n.d(t,"PathLocationStrategy",function(){return o.d}),n.d(t,"Location",function(){return o.f})},function(e,t,n){"use strict";var o=n(0),r=n(37);o.Observable.prototype.map=r.map},function(e,t,n){"use strict";var o=n(599),r=n(45);n.d(t,"a",function(){return a});var i=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},a=function(e){function InvalidPipeArgumentError(t,o){e.call(this,"Invalid argument '"+o+"' for pipe '"+n.i(r.e)(t)+"'")}return i(InvalidPipeArgumentError,e),InvalidPipeArgumentError}(o.a)},function(e,t,n){"use strict";n.d(t,"a",function(){return o}),n.d(t,"b",function(){return r});var o=function(){function StaticSymbol(e,t,n){this.filePath=e,this.name=t,this.members=n}return StaticSymbol}(),r=function(){function StaticSymbolCache(){this.cache=new Map}return StaticSymbolCache.prototype.get=function(e,t,n){n=n||[];var r=n.length?"."+n.join("."):"",i='"'+e+'".'+t+r,a=this.cache.get(i);return a||(a=new o(e,t,n),this.cache.set(i,a)),a},StaticSymbolCache}()},function(e,t,n){"use strict";var o=n(1),r=n(19);n.d(t,"a",function(){return i});var i=function(){function CompilerConfig(e){var t=void 0===e?{}:e,n=t.renderTypes,r=void 0===n?new a:n,i=t.defaultEncapsulation,s=void 0===i?o.ViewEncapsulation.Emulated:i,u=t.genDebugInfo,l=t.logBindingUpdate,c=t.useJit,d=void 0===c||c;this.renderTypes=r,this.defaultEncapsulation=s,this._genDebugInfo=u,this._logBindingUpdate=l,this.useJit=d}return Object.defineProperty(CompilerConfig.prototype,"genDebugInfo",{get:function(){return void 0===this._genDebugInfo?n.i(o.isDevMode)():this._genDebugInfo},enumerable:!0,configurable:!0}),Object.defineProperty(CompilerConfig.prototype,"logBindingUpdate",{get:function(){return void 0===this._logBindingUpdate?n.i(o.isDevMode)():this._logBindingUpdate},enumerable:!0,configurable:!0}),CompilerConfig}(),a=(function(){function RenderTypes(){}return RenderTypes.prototype.renderer=function(){},RenderTypes.prototype.renderText=function(){},RenderTypes.prototype.renderElement=function(){},RenderTypes.prototype.renderComment=function(){},RenderTypes.prototype.renderNode=function(){},RenderTypes.prototype.renderEvent=function(){},RenderTypes}(),function(){function DefaultRenderTypes(){this.renderText=null,this.renderElement=null,this.renderComment=null,this.renderNode=null,this.renderEvent=null}return Object.defineProperty(DefaultRenderTypes.prototype,"renderer",{get:function(){return n.i(r.e)(r.b.Renderer)},enumerable:!0,configurable:!0}),DefaultRenderTypes}())},function(e,t,n){"use strict";function addNgDoCheckMethod(e){var t=g.g("changed"),o=[t.set(g.c.prop(S)).toDeclStmt(),g.c.prop(S).set(g.f(!1)).toStmt()],r=[];if(e.genChanges){var i=[];e.ngOnChanges&&i.push(g.c.prop(E).callMethod("ngOnChanges",[g.c.prop(T)]).toStmt()),e.compilerConfig.logBindingUpdate&&i.push(g.d(n.i(l.e)(l.b.setBindingDebugInfoForChanges)).callFn([R.prop("renderer"),O,g.c.prop(T)]).toStmt()),i.push(w),r.push(new g.e(t,i))}e.ngOnInit&&r.push(new g.e(R.prop("numberOfChecks").identical(new g.E(0)),[g.c.prop(E).callMethod("ngOnInit",[]).toStmt()])),e.ngDoCheck&&r.push(g.c.prop(E).callMethod("ngDoCheck",[]).toStmt()),r.length>0&&o.push(new g.e(g.p(C),r)),o.push(new g.t(t)),e.methods.push(new g.z("ngDoCheck",[new g.r(R.name,g.B(n.i(l.e)(l.b.AppView),[g.h])),new g.r(O.name,g.h),new g.r(C.name,g.D)],o,g.D))}function addCheckInputMethod(e,t){var o=n.i(r.a)(t),i=[g.c.prop(S).set(g.f(!0)).toStmt(),g.c.prop(E).prop(e).set(M).toStmt()];t.genChanges&&i.push(g.c.prop(T).key(g.f(e)).set(g.d(n.i(l.e)(l.b.SimpleChange)).instantiate([o.expression,M])).toStmt());var a=n.i(r.b)({currValExpr:M,forceUpdate:k,stmts:[]},o.expression,C,i);t.methods.push(new g.z("check_"+e,[new g.r(M.name,g.h),new g.r(C.name,g.D),new g.r(k.name,g.D)],a))}function addCheckHostMethod(e,t,o){var s=[],u=[new g.r(R.name,g.B(n.i(l.e)(l.b.AppView),[g.h])),new g.r(N.name,g.B(n.i(l.e)(l.b.AppView),[g.h])),new g.r(O.name,g.h),new g.r(C.name,g.D)];e.forEach(function(e,c){var d=n.i(r.a)(o),p=n.i(i.a)(o,null,g.c.prop(E),e.value,d.bindingId);if(p){var f;e.needsRuntimeSecurityContext&&(f=g.g("secCtx_"+u.length),u.push(new g.r(f.name,g.B(n.i(l.e)(l.b.SecurityContext)))));var h;if(e.isAnimation){var m=n.i(a.a)(R,N,e,t,g.c.prop(A).or(g.d(n.i(l.e)(l.b.noop))),O,p.currValExpr,d.expression),y=m.updateStmts,b=m.detachStmts;h=y,(v=o.detachStmts).push.apply(v,b)}else h=n.i(a.b)(R,e,O,p.currValExpr,o.compilerConfig.logBindingUpdate,f);s.push.apply(s,n.i(r.b)(p,d.expression,C,h));var v}}),o.methods.push(new g.z("checkHost",u,s))}function addHandleEventMethod(e,t){var o=g.g("result"),r=[o.set(g.f(!0)).toDeclStmt(g.D)];e.forEach(function(e,a){var s=n.i(i.b)(t,null,g.c.prop(E),e.handler,"sub_"+a),u=s.stmts;s.preventDefault&&u.push(o.set(s.preventDefault.and(o)).toStmt()),r.push(new g.e(D.equals(g.f(e.fullName)),u))}),r.push(new g.t(o)),t.methods.push(new g.z("handleEvent",[new g.r(D.name,g.F),new g.r(i.c.event.name,g.h)],r,g.D))}function addSubscribeMethod(e,t){var o=[new g.r(R.name,g.B(n.i(l.e)(l.b.AppView),[g.h])),new g.r(A,g.h)],r=[g.c.prop(A).set(g.g(A)).toStmt()];Object.keys(e.outputs).forEach(function(n,i){var a=e.outputs[n],s="emit"+i;o.push(new g.r(s,g.D));var u="subscription"+i;t.fields.push(new g.a(u,g.h)),r.push(new g.e(g.g(s),[g.c.prop(u).set(g.c.prop(E).prop(n).callMethod(g.x.SubscribeObservable,[g.g(A).callMethod(g.x.Bind,[R,g.f(a)])])).toStmt()])),t.destroyStmts.push(g.c.prop(u).and(g.c.prop(u).callMethod("unsubscribe",[])).toStmt())}),t.methods.push(new g.z("subscribe",o,r))}function parseHostBindings(e,t,r){var i=[],a=new y.a(t,d.a,r,[],i),s=n.i(o.m)(e.type),u=s?"in Directive "+n.i(o.c)(e.type)+" in "+s:"in Directive "+n.i(o.c)(e.type),l=new f.b("",u),c=new f.d(new f.c(l,null,null,null),new f.c(l,null,null,null)),p=a.createDirectiveHostPropertyAsts(e.toSummary(),c),g=a.createDirectiveHostEventAsts(e.toSummary(),c);return new B(p,g,i)}function reportParseErrors(e,t){var n=e.filter(function(e){return e.level===f.e.WARNING}),o=e.filter(function(e){return e.level===f.e.FATAL});if(n.length>0&&this._console.warn("Directive parse warnings:\n"+n.join("\n")),o.length>0)throw new Error("Directive parse errors:\n"+o.join("\n"))}var o=n(14),r=n(352),i=n(122),a=n(353),s=n(72),u=n(106),l=n(19),c=n(20),d=n(47),p=n(248),g=n(10),f=n(40),h=n(17),m=n(75),y=n(366);n.d(t,"a",function(){return I}),n.d(t,"b",function(){return L});var b=this&&this.__decorate||function(e,t,n,o){var r,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,n):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,o);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(i<3?r(a):i>3?r(t,n,a):r(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},v=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},_=function(){function DirectiveWrapperCompileResult(e,t){this.statements=e,this.dirWrapperClassVar=t}return DirectiveWrapperCompileResult}(),E="context",T="_changes",S="_changed",A="_eventHandler",M=g.g("currValue"),C=g.g("throwOnChange"),k=g.g("forceUpdate"),R=g.g("view"),N=g.g("componentView"),O=g.g("el"),D=g.g("eventName"),w=g.c.prop(T).set(g.o([])).toStmt(),I=function(){function DirectiveWrapperCompiler(e,t,n,o){this.compilerConfig=e,this._exprParser=t,this._schemaRegistry=n,this._console=o}return DirectiveWrapperCompiler.dirWrapperClassName=function(e){return"Wrapper_"+n.i(o.c)(e)},DirectiveWrapperCompiler.prototype.compile=function(e){var t=parseHostBindings(e,this._exprParser,this._schemaRegistry);reportParseErrors(t.errors,this._console);var n=new x(this.compilerConfig,e);Object.keys(e.inputs).forEach(function(e){addCheckInputMethod(e,n)}),addNgDoCheckMethod(n),addCheckHostMethod(t.hostProps,t.hostListeners,n),addHandleEventMethod(t.hostListeners,n),addSubscribeMethod(e,n);var o=n.build();return new _([o],o.name)},DirectiveWrapperCompiler=b([n.i(c.a)(),v("design:paramtypes",[s.a,u.a,m.a,h.C])],DirectiveWrapperCompiler)}(),x=function(){function DirectiveWrapperBuilder(e,t){this.compilerConfig=e,this.dirMeta=t,this.fields=[],this.getters=[],this.methods=[],this.ctorStmts=[],this.detachStmts=[],this.destroyStmts=[];var n=t.type.lifecycleHooks;this.genChanges=n.indexOf(h.H.OnChanges)!==-1||this.compilerConfig.logBindingUpdate,this.ngOnChanges=n.indexOf(h.H.OnChanges)!==-1,this.ngOnInit=n.indexOf(h.H.OnInit)!==-1,this.ngDoCheck=n.indexOf(h.H.DoCheck)!==-1,this.ngOnDestroy=n.indexOf(h.H.OnDestroy)!==-1,this.ngOnDestroy&&this.destroyStmts.push(g.c.prop(E).callMethod("ngOnDestroy",[]).toStmt())}return DirectiveWrapperBuilder.prototype.build=function(){for(var e=[],t=0;t<this.dirMeta.type.diDeps.length;t++)e.push("p"+t);var o=[new g.z("ngOnDetach",[new g.r(R.name,g.B(n.i(l.e)(l.b.AppView),[g.h])),new g.r(N.name,g.B(n.i(l.e)(l.b.AppView),[g.h])),new g.r(O.name,g.h)],this.detachStmts),new g.z("ngOnDestroy",[],this.destroyStmts)],r=[new g.a(A,g.C,[g.b.Private]),new g.a(E,g.B(this.dirMeta.type)),new g.a(S,g.D,[g.b.Private])],i=[g.c.prop(S).set(g.f(!1)).toStmt()];return this.genChanges&&(r.push(new g.a(T,new g.v(g.h),[g.b.Private])),i.push(w)),i.push(g.c.prop(E).set(g.d(this.dirMeta.type).instantiate(e.map(function(e){return g.g(e)}))).toStmt()),n.i(p.a)({name:I.dirWrapperClassName(this.dirMeta.type),ctorParams:e.map(function(e){return new g.r(e,g.h)}),builders:[{fields:r,ctorStmts:i,methods:o},this]})},DirectiveWrapperBuilder}(),B=function(){function ParseResult(e,t,n){this.hostProps=e,this.hostListeners=t,this.errors=n}return ParseResult}(),L=function(){function DirectiveWrapperExpressions(){}return DirectiveWrapperExpressions.create=function(e,t){return g.d(e).instantiate(t,g.B(e))},DirectiveWrapperExpressions.context=function(e){return e.prop(E)},DirectiveWrapperExpressions.ngDoCheck=function(e,t,n,o){return e.callMethod("ngDoCheck",[t,n,o])},DirectiveWrapperExpressions.checkHost=function(e,t,n,o,r,i,a){return e.length?[t.callMethod("checkHost",[n,o,r,i].concat(a)).toStmt()]:[]},DirectiveWrapperExpressions.ngOnDetach=function(e,t,n,o,r){return e.some(function(e){return e.isAnimation})?[t.callMethod("ngOnDetach",[n,o,r]).toStmt()]:[]},DirectiveWrapperExpressions.ngOnDestroy=function(e,t){return e.type.lifecycleHooks.indexOf(h.H.OnDestroy)!==-1||Object.keys(e.outputs).length>0?[t.callMethod("ngOnDestroy",[]).toStmt()]:[]},DirectiveWrapperExpressions.subscribe=function(e,t,n,o,r,i){var a=!1,s=[];return Object.keys(e.outputs).forEach(function(t){var o=e.outputs[t],r=n.indexOf(o)>-1;a=a||r,s.push(g.f(r))}),t.forEach(function(e){e.isAnimation&&n.length>0&&(a=!0)}),a?[o.callMethod("subscribe",[r,i].concat(s)).toStmt()]:[]},DirectiveWrapperExpressions.handleEvent=function(e,t,n,o){return t.callMethod("handleEvent",[n,o])},DirectiveWrapperExpressions}()},function(e,t,n){"use strict";function visitAll(e,t,n){void 0===n&&(n=null);var o=[],r=e.visit?function(t){return e.visit(t,n)||t.visit(e,n)}:function(t){return t.visit(e,n)};return t.forEach(function(e){var t=r(e);t&&o.push(t)}),o}n.d(t,"d",function(){return o}),n.d(t,"b",function(){return r}),n.d(t,"c",function(){return i}),n.d(t,"f",function(){return a}),n.d(t,"e",function(){return s}),n.d(t,"a",function(){return u}),t.g=visitAll;var o=function(){function Text(e,t){this.value=e,this.sourceSpan=t}return Text.prototype.visit=function(e,t){return e.visitText(this,t)},Text}(),r=function(){function Expansion(e,t,n,o,r){this.switchValue=e,this.type=t,this.cases=n,this.sourceSpan=o,this.switchValueSourceSpan=r}return Expansion.prototype.visit=function(e,t){return e.visitExpansion(this,t)},Expansion}(),i=function(){function ExpansionCase(e,t,n,o,r){this.value=e,this.expression=t,this.sourceSpan=n,this.valueSourceSpan=o,this.expSourceSpan=r}return ExpansionCase.prototype.visit=function(e,t){return e.visitExpansionCase(this,t)},ExpansionCase}(),a=function(){function Attribute(e,t,n,o){this.name=e,this.value=t,this.sourceSpan=n,this.valueSpan=o}return Attribute.prototype.visit=function(e,t){return e.visitAttribute(this,t)},Attribute}(),s=function(){function Element(e,t,n,o,r,i){this.name=e,this.attrs=t,this.children=n,this.sourceSpan=o,this.startSourceSpan=r,this.endSourceSpan=i}return Element.prototype.visit=function(e,t){return e.visitElement(this,t)},Element}(),u=function(){function Comment(e,t){this.value=e,this.sourceSpan=t}return Comment.prototype.visit=function(e,t){return e.visitComment(this,t)},Comment}()},function(e,t,n){"use strict";n.d(t,"a",function(){return o});var o=function(){function ElementSchemaRegistry(){}return ElementSchemaRegistry.prototype.hasProperty=function(e,t,n){},ElementSchemaRegistry.prototype.hasElement=function(e,t){},ElementSchemaRegistry.prototype.securityContext=function(e,t,n){},ElementSchemaRegistry.prototype.allKnownElementNames=function(){},ElementSchemaRegistry.prototype.getMappedPropName=function(e){},ElementSchemaRegistry.prototype.getDefaultComponentElementName=function(){},ElementSchemaRegistry.prototype.validateProperty=function(e){},ElementSchemaRegistry.prototype.validateAttribute=function(e){},ElementSchemaRegistry.prototype.normalizeAnimationStyleProperty=function(e){},ElementSchemaRegistry.prototype.normalizeAnimationStyleValue=function(e,t,n){},ElementSchemaRegistry}()},function(e,t,n){"use strict";function controlPath(e,t){return t.path.concat([e])}function setUpControl(e,t){e||_throwError(t,"Cannot find control with"),t.valueAccessor||_throwError(t,"No value accessor for form control with"),e.validator=r.a.compose([e.validator,t.validator]),e.asyncValidator=r.a.composeAsync([e.asyncValidator,t.asyncValidator]),t.valueAccessor.writeValue(e.value),t.valueAccessor.registerOnChange(function(n){t.viewToModelUpdate(n),e.markAsDirty(),e.setValue(n,{emitModelToViewChange:!1})}),t.valueAccessor.registerOnTouched(function(){return e.markAsTouched()}),e.registerOnChange(function(e,n){t.valueAccessor.writeValue(e),n&&t.viewToModelUpdate(e)}),t.valueAccessor.setDisabledState&&e.registerOnDisabledChange(function(e){t.valueAccessor.setDisabledState(e)}),t._rawValidators.forEach(function(t){t.registerOnValidatorChange&&t.registerOnValidatorChange(function(){return e.updateValueAndValidity()})}),t._rawAsyncValidators.forEach(function(t){t.registerOnValidatorChange&&t.registerOnValidatorChange(function(){return e.updateValueAndValidity()})})}function cleanUpControl(e,t){t.valueAccessor.registerOnChange(function(){return _noControlError(t)}),t.valueAccessor.registerOnTouched(function(){return _noControlError(t)}),t._rawValidators.forEach(function(e){e.registerOnValidatorChange&&e.registerOnValidatorChange(null)}),t._rawAsyncValidators.forEach(function(e){e.registerOnValidatorChange&&e.registerOnValidatorChange(null)}),e&&e._clearChangeFns()}function setUpFormContainer(e,t){n.i(o.f)(e)&&_throwError(t,"Cannot find control with"),e.validator=r.a.compose([e.validator,t.validator]),e.asyncValidator=r.a.composeAsync([e.asyncValidator,t.asyncValidator])}function _noControlError(e){return _throwError(e,"There is no FormControl instance attached to form control element with")}function _throwError(e,t){var n;throw n=e.path.length>1?"path: '"+e.path.join(" -> ")+"'":e.path[0]?"name: '"+e.path+"'":"unspecified name attribute",new Error(t+" "+n)}function composeValidators(e){return n.i(o.c)(e)?r.a.compose(e.map(s.a)):null}function composeAsyncValidators(e){return n.i(o.c)(e)?r.a.composeAsync(e.map(s.b)):null}function isPropertyUpdated(e,t){if(!e.hasOwnProperty("model"))return!1;var r=e.model;return!!r.isFirstChange()||!n.i(o.e)(t,r.currentValue)}function isBuiltInAccessor(e){return g.some(function(t){return e.constructor===t})}function selectValueAccessor(e,t){if(!t)return null;var n,o,r;return t.forEach(function(t){t.constructor===a.a?n=t:isBuiltInAccessor(t)?(o&&_throwError(e,"More than one built-in value accessor matches form control with"),o=t):(r&&_throwError(e,"More than one custom value accessor matches form control with"),r=t)}),r?r:o?o:n?n:(_throwError(e,"No valid value accessor for form control with"),null)}var o=n(111),r=n(49),i=n(187),a=n(188),s=n(666),u=n(274),l=n(136),c=n(275),d=n(191),p=n(192);t.a=controlPath,t.d=setUpControl,t.h=cleanUpControl,t.e=setUpFormContainer,t.b=composeValidators,t.c=composeAsyncValidators,t.g=isPropertyUpdated,t.f=selectValueAccessor;var g=[i.a,c.a,u.a,d.a,p.a,l.a]},function(e,t,n){"use strict";n.d(t,"b",function(){return o}),n.d(t,"c",function(){return r}),n.d(t,"a",function(){return i}),n.d(t,"e",function(){return a}),n.d(t,"d",function(){return s});var o={};o.Get=0,o.Post=1,o.Put=2,o.Delete=3,o.Options=4,o.Head=5,o.Patch=6,o[o.Get]="Get",o[o.Post]="Post",o[o.Put]="Put",o[o.Delete]="Delete",o[o.Options]="Options",o[o.Head]="Head",o[o.Patch]="Patch";var r={};r.Unsent=0,r.Open=1,r.HeadersReceived=2,r.Loading=3,r.Done=4,r.Cancelled=5,r[r.Unsent]="Unsent",r[r.Open]="Open",r[r.HeadersReceived]="HeadersReceived",r[r.Loading]="Loading",r[r.Done]="Done",r[r.Cancelled]="Cancelled";var i={};i.Basic=0,i.Cors=1,i.Default=2,i.Error=3,i.Opaque=4,i[i.Basic]="Basic",i[i.Cors]="Cors",i[i.Default]="Default",i[i.Error]="Error",i[i.Opaque]="Opaque";var a={};a.NONE=0,a.JSON=1,a.FORM=2,a.FORM_DATA=3,a.TEXT=4,a.BLOB=5,a.ARRAY_BUFFER=6,a[a.NONE]="NONE",a[a.JSON]="JSON",a[a.FORM]="FORM",a[a.FORM_DATA]="FORM_DATA",a[a.TEXT]="TEXT",a[a.BLOB]="BLOB",a[a.ARRAY_BUFFER]="ARRAY_BUFFER";var s={};s.Text=0,s.Json=1,s.ArrayBuffer=2,s.Blob=3,s[s.Text]="Text",s[s.Json]="Json",s[s.ArrayBuffer]="ArrayBuffer",s[s.Blob]="Blob"},,,,,,,function(e,t,n){"use strict";var o=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},r=n(0),i=function(e){function EmptyObservable(t){e.call(this),this.scheduler=t}return o(EmptyObservable,e),EmptyObservable.create=function(e){return new EmptyObservable(e)},EmptyObservable.dispatch=function(e){var t=e.subscriber;t.complete()},EmptyObservable.prototype._subscribe=function(e){var t=this.scheduler;return t?t.schedule(EmptyObservable.dispatch,0,{subscriber:e}):void e.complete()},EmptyObservable}(r.Observable);t.EmptyObservable=i},function(e,t,n){"use strict";n(7);n.d(t,"b",function(){return o}),n.d(t,"a",function(){return r});var o=function(){function StringMapWrapper(){}return StringMapWrapper.merge=function(e,t){for(var n={},o=0,r=Object.keys(e);o<r.length;o++){var i=r[o];n[i]=e[i]}for(var a=0,s=Object.keys(t);a<s.length;a++){var i=s[a];n[i]=t[i]}return n},StringMapWrapper.equals=function(e,t){var n=Object.keys(e),o=Object.keys(t);if(n.length!=o.length)return!1;for(var r=0;r<n.length;r++){var i=n[r];if(e[i]!==t[i])return!1}return!0},StringMapWrapper}(),r=function(){function ListWrapper(){}return ListWrapper.findLast=function(e,t){for(var n=e.length-1;n>=0;n--)if(t(e[n]))return e[n];return null},ListWrapper.removeAll=function(e,t){for(var n=0;n<t.length;++n){var o=e.indexOf(t[n]);o>-1&&e.splice(o,1)}},ListWrapper.remove=function(e,t){var n=e.indexOf(t);return n>-1&&(e.splice(n,1),!0)},ListWrapper.equals=function(e,t){if(e.length!=t.length)return!1;for(var n=0;n<e.length;++n)if(e[n]!==t[n])return!1;return!0},ListWrapper.flatten=function(e){return e.reduce(function(e,t){var n=Array.isArray(t)?ListWrapper.flatten(t):t;return e.concat(n)},[])},ListWrapper}()},function(e,t,n){"use strict";var o=n(20),r=n(246),i=n(47),a=n(107);n.d(t,"a",function(){return c}),n.d(t,"b",function(){return a.a});var s=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},u=this&&this.__decorate||function(e,t,n,o){var r,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,n):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,o);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(i<3?r(a):i>3?r(t,n,a):r(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},l=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},c=function(e){function HtmlParser(){e.call(this,r.a)}return s(HtmlParser,e),HtmlParser.prototype.parse=function(t,n,o,r){return void 0===o&&(o=!1),void 0===r&&(r=i.a),e.prototype.parse.call(this,t,n,o,r)},HtmlParser=u([n.i(o.a)(),l("design:paramtypes",[])],HtmlParser)}(a.b)},function(e,t,n){"use strict";function splitNsName(e){if(":"!=e[0])return[null,e];var t=e.indexOf(":",1);if(t==-1)throw new Error('Unsupported format "'+e+'" expecting ":namespace:name"');return[e.slice(1,t),e.slice(t+1)]}function getNsPrefix(e){return null===e?null:splitNsName(e)[0]}function mergeNsAndName(e,t){return e?":"+e+":"+t:t}n.d(t,"a",function(){return o}),t.e=splitNsName,t.c=getNsPrefix,t.d=mergeNsAndName,n.d(t,"b",function(){return r});var o={};o.RAW_TEXT=0,o.ESCAPABLE_RAW_TEXT=1,o.PARSABLE_DATA=2,o[o.RAW_TEXT]="RAW_TEXT",o[o.ESCAPABLE_RAW_TEXT]="ESCAPABLE_RAW_TEXT",o[o.PARSABLE_DATA]="PARSABLE_DATA";var r={Aacute:"Á",aacute:"á",Acirc:"Â",acirc:"â",acute:"´",AElig:"Æ",aelig:"æ",Agrave:"À",agrave:"à",alefsym:"ℵ",Alpha:"Α",alpha:"α",amp:"&",and:"∧",ang:"∠",apos:"'",Aring:"Å",aring:"å",asymp:"≈",Atilde:"Ã",atilde:"ã",Auml:"Ä",auml:"ä",bdquo:"„",Beta:"Β",beta:"β",brvbar:"¦",bull:"•",cap:"∩",Ccedil:"Ç",ccedil:"ç",cedil:"¸",cent:"¢",Chi:"Χ",chi:"χ",circ:"ˆ",clubs:"♣",cong:"≅",copy:"©",crarr:"↵",cup:"∪",curren:"¤",dagger:"†",Dagger:"‡",darr:"↓",dArr:"⇓",deg:"°",Delta:"Δ",delta:"δ",diams:"♦",divide:"÷",Eacute:"É",eacute:"é",Ecirc:"Ê",ecirc:"ê",Egrave:"È",egrave:"è",empty:"∅",emsp:" ",ensp:" ",Epsilon:"Ε",epsilon:"ε",equiv:"≡",Eta:"Η",eta:"η",ETH:"Ð",eth:"ð",Euml:"Ë",euml:"ë",euro:"€",exist:"∃",fnof:"ƒ",forall:"∀",frac12:"½",frac14:"¼",frac34:"¾",frasl:"⁄",Gamma:"Γ",gamma:"γ",ge:"≥",gt:">",harr:"↔",hArr:"⇔",hearts:"♥",hellip:"…",Iacute:"Í",iacute:"í",Icirc:"Î",icirc:"î",iexcl:"¡",Igrave:"Ì",igrave:"ì",image:"ℑ",infin:"∞","int":"∫",Iota:"Ι",iota:"ι",iquest:"¿",isin:"∈",Iuml:"Ï",iuml:"ï",Kappa:"Κ",kappa:"κ",Lambda:"Λ",lambda:"λ",lang:"⟨",laquo:"«",larr:"←",lArr:"⇐",lceil:"⌈",ldquo:"“",le:"≤",lfloor:"⌊",lowast:"∗",loz:"◊",lrm:"",lsaquo:"‹",lsquo:"‘",lt:"<",macr:"¯",mdash:"—",micro:"µ",middot:"·",minus:"−",Mu:"Μ",mu:"μ",nabla:"∇",nbsp:" ",ndash:"–",ne:"≠",ni:"∋",not:"¬",notin:"∉",nsub:"⊄",Ntilde:"Ñ",ntilde:"ñ",Nu:"Ν",nu:"ν",Oacute:"Ó",oacute:"ó",Ocirc:"Ô",ocirc:"ô",OElig:"Œ",oelig:"œ",Ograve:"Ò",ograve:"ò",oline:"‾",Omega:"Ω",omega:"ω",Omicron:"Ο",omicron:"ο",oplus:"⊕",or:"∨",ordf:"ª",ordm:"º",Oslash:"Ø",oslash:"ø",Otilde:"Õ",otilde:"õ",otimes:"⊗",Ouml:"Ö",ouml:"ö",para:"¶",permil:"‰",perp:"⊥",Phi:"Φ",phi:"φ",Pi:"Π",pi:"π",piv:"ϖ",plusmn:"±",pound:"£",prime:"′",Prime:"″",prod:"∏",prop:"∝",Psi:"Ψ",psi:"ψ",quot:'"',radic:"√",rang:"⟩",raquo:"»",rarr:"→",rArr:"⇒",rceil:"⌉",rdquo:"”",real:"ℜ",reg:"®",rfloor:"⌋",Rho:"Ρ",rho:"ρ",rlm:"",rsaquo:"›",rsquo:"’",sbquo:"‚",Scaron:"Š",scaron:"š",sdot:"⋅",sect:"§",shy:"",Sigma:"Σ",sigma:"σ",sigmaf:"ς",sim:"∼",spades:"♠",sub:"⊂",sube:"⊆",sum:"∑",sup:"⊃",sup1:"¹",sup2:"²",sup3:"³",supe:"⊇",szlig:"ß",Tau:"Τ",tau:"τ",there4:"∴",Theta:"Θ",theta:"θ",thetasym:"ϑ",thinsp:" ",THORN:"Þ",thorn:"þ",tilde:"˜",times:"×",trade:"™",Uacute:"Ú",uacute:"ú",uarr:"↑",uArr:"⇑",Ucirc:"Û",ucirc:"û",Ugrave:"Ù",ugrave:"ù",uml:"¨",upsih:"ϒ",Upsilon:"Υ",upsilon:"υ",Uuml:"Ü",uuml:"ü",weierp:"℘",Xi:"Ξ",xi:"ξ",Yacute:"Ý",yacute:"ý",yen:"¥",yuml:"ÿ",Yuml:"Ÿ",Zeta:"Ζ",zeta:"ζ",zwj:"",zwnj:""}},function(e,t,n){"use strict";function createOfflineCompileUrlResolver(){return new l(".")}function getUrlScheme(e){var t=_split(e);return t&&t[d.Scheme]||""}function _buildFromEncodedParts(e,t,o,i,a,s,u){var l=[];return n.i(r.f)(e)&&l.push(e+":"),n.i(r.f)(o)&&(l.push("//"),n.i(r.f)(t)&&l.push(t+"@"),l.push(o),n.i(r.f)(i)&&l.push(":"+i)),n.i(r.f)(a)&&l.push(a),n.i(r.f)(s)&&l.push("?"+s),n.i(r.f)(u)&&l.push("#"+u),l.join("")}function _split(e){return e.match(c)}function _removeDotSegments(e){if("/"==e)return"/";for(var t="/"==e[0]?"/":"",n="/"===e[e.length-1]?"/":"",o=e.split("/"),r=[],i=0,a=0;a<o.length;a++){var s=o[a];switch(s){case"":case".":break;case"..":r.length>0?r.pop():i++;break;default:r.push(s)}}if(""==t){for(;i-- >0;)r.unshift("..");0===r.length&&r.push(".")}return t+r.join("/")+n}function _joinAndCanonicalizePath(e){var t=e[d.Path];return t=n.i(r.g)(t)?"":_removeDotSegments(t),e[d.Path]=t,_buildFromEncodedParts(e[d.Scheme],e[d.UserInfo],e[d.Domain],e[d.Port],t,e[d.QueryData],e[d.Fragment])}function _resolveUrl(e,t){var o=_split(encodeURI(t)),i=_split(e);if(n.i(r.f)(o[d.Scheme]))return _joinAndCanonicalizePath(o);o[d.Scheme]=i[d.Scheme];for(var a=d.Scheme;a<=d.Port;a++)n.i(r.g)(o[a])&&(o[a]=i[a]);if("/"==o[d.Path][0])return _joinAndCanonicalizePath(o);var s=i[d.Path];n.i(r.g)(s)&&(s="/");var u=s.lastIndexOf("/");return s=s.substring(0,u+1)+o[d.Path],o[d.Path]=s,_joinAndCanonicalizePath(o)}var o=n(1),r=n(7),i=n(20);t.c=createOfflineCompileUrlResolver,n.d(t,"d",function(){return u}),n.d(t,"a",function(){return l}),t.b=getUrlScheme;var a=this&&this.__decorate||function(e,t,n,o){var r,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,n):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,o);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(i<3?r(a):i>3?r(t,n,a):r(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},s=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},u={provide:o.PACKAGE_ROOT_URL,useValue:"/"},l=function(){function UrlResolver(e){void 0===e&&(e=null),this._packagePrefix=e}return UrlResolver.prototype.resolve=function(e,t){var o=t;n.i(r.f)(e)&&e.length>0&&(o=_resolveUrl(e,o));var i=_split(o),a=this._packagePrefix;if(n.i(r.f)(a)&&n.i(r.f)(i)&&"package"==i[d.Scheme]){var s=i[d.Path];return a=a.replace(/\/+$/,""),s=s.replace(/^\/+/,""),a+"/"+s}return o},UrlResolver.ctorParameters=function(){return[{type:void 0,decorators:[{type:o.Inject,args:[o.PACKAGE_ROOT_URL]}]}]},UrlResolver=a([n.i(i.a)(),s("design:paramtypes",[String])],UrlResolver)}(),c=new RegExp("^(?:([^:/?#.]+):)?(?://(?:([^/?#]*)@)?([\\w\\d\\-\\u0100-\\uffff.%]*)(?::([0-9]+))?)?([^?#]+)?(?:\\?([^#]*))?(?:#(.*))?$"),d={};d.Scheme=1,d.UserInfo=2,d.Domain=3,d.Port=4,d.Path=5,d.QueryData=6,d.Fragment=7,d[d.Scheme]="Scheme",d[d.UserInfo]="UserInfo",d[d.Domain]="Domain",d[d.Port]="Port",d[d.Path]="Path",d[d.QueryData]="QueryData",d[d.Fragment]="Fragment"},function(e,t,n){"use strict";function getPropertyInView(e,t,n){if(t===n)return e;for(var o=i.c,r=t;r!==n&&r.declarationElement.view;)r=r.declarationElement.view,o=o.prop("parentView");if(r!==n)throw new Error("Internal error: Could not calculate a property in a parent view: "+e);return e.visitExpression(new u(o,n),null)}function injectFromViewParentInjector(e,t,o){var s;s=e.viewType===a.l.HOST?i.c:i.c.prop("parentView");var u=[n.i(r.c)(t),i.c.prop("parentIndex")];return o&&u.push(i.k),s.callMethod("injectorGet",u)}function getViewClassName(e,t){return"View_"+n.i(o.c)(e.type)+t}function getHandleEventMethodName(e){return"handleEvent_"+e}var o=n(14),r=n(46),i=n(10),a=n(17);t.a=getPropertyInView,t.b=injectFromViewParentInjector,t.c=getViewClassName,t.d=getHandleEventMethodName;var s=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},u=function(e){function _ReplaceViewTransformer(t,n){e.call(this),this._viewExpr=t,this._view=n}return s(_ReplaceViewTransformer,e),_ReplaceViewTransformer.prototype._isThis=function(e){return e instanceof i.q&&e.builtin===i.L.This},_ReplaceViewTransformer.prototype.visitReadVarExpr=function(e,t){return this._isThis(e)?this._viewExpr:e},_ReplaceViewTransformer.prototype.visitReadPropExpr=function(t,n){return this._isThis(t.receiver)&&(this._view.fields.some(function(e){return e.name==t.name})||this._view.getters.some(function(e){return e.name==t.name}))?this._viewExpr.cast(this._view.classType).prop(t.name):e.prototype.visitReadPropExpr.call(this,t,n)},_ReplaceViewTransformer}(i.R)},function(e,t,n){"use strict";function unimplemented(){throw new Error("unimplemented")}var o=n(271);n.d(t,"a",function(){return i});var r=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},i=function(e){function NgControl(){e.apply(this,arguments),this._parent=null,this.name=null,this.valueAccessor=null,this._rawValidators=[],this._rawAsyncValidators=[]}return r(NgControl,e),Object.defineProperty(NgControl.prototype,"validator",{get:function(){return unimplemented()},enumerable:!0,configurable:!0}),Object.defineProperty(NgControl.prototype,"asyncValidator",{get:function(){return unimplemented()},enumerable:!0,configurable:!0}),NgControl.prototype.viewToModelUpdate=function(e){},NgControl}(o.a)},function(e,t,n){"use strict";function createEmptyUrlTree(){return new i(new a([],{}),{},null)}function containsTree(e,t,n){return n?equalSegmentGroups(e.root,t.root):containsSegmentGroup(e.root,t.root)}function equalSegmentGroups(e,t){if(!equalPath(e.segments,t.segments))return!1;if(e.numberOfChildren!==t.numberOfChildren)return!1;for(var n in t.children){if(!e.children[n])return!1;if(!equalSegmentGroups(e.children[n],t.children[n]))return!1}return!0}function containsSegmentGroup(e,t){return containsSegmentGroupHelper(e,t,t.segments)}function containsSegmentGroupHelper(e,t,n){if(e.segments.length>n.length){var r=e.segments.slice(0,n.length);return!!equalPath(r,n)&&!t.hasChildren()}if(e.segments.length===n.length){if(!equalPath(e.segments,n))return!1;for(var i in t.children){if(!e.children[i])return!1;if(!containsSegmentGroup(e.children[i],t.children[i]))return!1}return!0}var r=n.slice(0,e.segments.length),a=n.slice(e.segments.length);return!!equalPath(e.segments,r)&&(!!e.children[o.a]&&containsSegmentGroupHelper(e.children[o.a],t,a))}function equalPath(e,t){if(e.length!==t.length)return!1;for(var n=0;n<e.length;++n)if(e[n].path!==t[n].path)return!1;return!0}function mapChildrenIntoArray(e,t){var i=[];return n.i(r.c)(e.children,function(e,n){n===o.a&&(i=i.concat(t(e,n)))}),n.i(r.c)(e.children,function(e,n){n!==o.a&&(i=i.concat(t(e,n)))}),i}function serializePaths(e){return e.segments.map(function(e){return serializePath(e)}).join("/")}function serializeSegment(e,t){if(e.hasChildren()&&t){var i=e.children[o.a]?serializeSegment(e.children[o.a],!1):"",a=[];return n.i(r.c)(e.children,function(e,t){t!==o.a&&a.push(t+":"+serializeSegment(e,!1))}),a.length>0?i+"("+a.join("//")+")":""+i}if(e.hasChildren()&&!t){var s=mapChildrenIntoArray(e,function(t,n){return n===o.a?[serializeSegment(e.children[o.a],!1)]:[n+":"+serializeSegment(t,!1)]});return serializePaths(e)+"/("+s.join("//")+")"}return serializePaths(e)}function encode(e){return encodeURIComponent(e)}function decode(e){return decodeURIComponent(e)}function serializePath(e){return""+encode(e.path)+serializeParams(e.parameters)}function serializeParams(e){return pairs(e).map(function(e){return";"+encode(e.first)+"="+encode(e.second)}).join("")}function serializeQueryParams(e){var t=pairs(e).map(function(e){return encode(e.first)+"="+encode(e.second)});return t.length>0?"?"+t.join("&"):""}function pairs(e){var t=[];for(var n in e)e.hasOwnProperty(n)&&t.push(new c(n,e[n]));return t}function matchSegments(e){d.lastIndex=0;var t=e.match(d);return t?t[0]:""}function matchQueryParams(e){p.lastIndex=0;var t=e.match(d);return t?t[0]:""}function matchUrlQueryParamValue(e){g.lastIndex=0;var t=e.match(g);return t?t[0]:""}var o=n(58),r=n(59);
t.e=createEmptyUrlTree,t.f=containsTree,n.d(t,"b",function(){return i}),n.d(t,"a",function(){return a}),n.d(t,"c",function(){return s}),t.d=mapChildrenIntoArray,n.d(t,"g",function(){return u}),n.d(t,"h",function(){return l});var i=function(){function UrlTree(e,t,n){this.root=e,this.queryParams=t,this.fragment=n}return UrlTree.prototype.toString=function(){return(new l).serialize(this)},UrlTree}(),a=function(){function UrlSegmentGroup(e,t){var o=this;this.segments=e,this.children=t,this.parent=null,n.i(r.c)(t,function(e,t){return e.parent=o})}return UrlSegmentGroup.prototype.hasChildren=function(){return this.numberOfChildren>0},Object.defineProperty(UrlSegmentGroup.prototype,"numberOfChildren",{get:function(){return Object.keys(this.children).length},enumerable:!0,configurable:!0}),UrlSegmentGroup.prototype.toString=function(){return serializePaths(this)},UrlSegmentGroup}(),s=function(){function UrlSegment(e,t){this.path=e,this.parameters=t}return UrlSegment.prototype.toString=function(){return serializePath(this)},UrlSegment}(),u=function(){function UrlSerializer(){}return UrlSerializer}(),l=function(){function DefaultUrlSerializer(){}return DefaultUrlSerializer.prototype.parse=function(e){var t=new f(e);return new i(t.parseRootSegment(),t.parseQueryParams(),t.parseFragment())},DefaultUrlSerializer.prototype.serialize=function(e){var t="/"+serializeSegment(e.root,!0),n=serializeQueryParams(e.queryParams),o=null!==e.fragment&&void 0!==e.fragment?"#"+encodeURI(e.fragment):"";return""+t+n+o},DefaultUrlSerializer}(),c=function(){function Pair(e,t){this.first=e,this.second=t}return Pair}(),d=/^[^\/\(\)\?;=&#]+/,p=/^[^=\?&#]+/,g=/^[^\?&#]+/,f=function(){function UrlParser(e){this.url=e,this.remaining=e}return UrlParser.prototype.peekStartsWith=function(e){return this.remaining.startsWith(e)},UrlParser.prototype.capture=function(e){if(!this.remaining.startsWith(e))throw new Error('Expected "'+e+'".');this.remaining=this.remaining.substring(e.length)},UrlParser.prototype.parseRootSegment=function(){return this.remaining.startsWith("/")&&this.capture("/"),""===this.remaining||this.remaining.startsWith("?")||this.remaining.startsWith("#")?new a([],{}):new a([],this.parseChildren())},UrlParser.prototype.parseChildren=function(){if(0==this.remaining.length)return{};this.peekStartsWith("/")&&this.capture("/");var e=[];for(this.peekStartsWith("(")||e.push(this.parseSegments());this.peekStartsWith("/")&&!this.peekStartsWith("//")&&!this.peekStartsWith("/(");)this.capture("/"),e.push(this.parseSegments());var t={};this.peekStartsWith("/(")&&(this.capture("/"),t=this.parseParens(!0));var n={};return this.peekStartsWith("(")&&(n=this.parseParens(!1)),(e.length>0||Object.keys(t).length>0)&&(n[o.a]=new a(e,t)),n},UrlParser.prototype.parseSegments=function(){var e=matchSegments(this.remaining);if(""===e&&this.peekStartsWith(";"))throw new Error("Empty path url segment cannot have parameters: '"+this.remaining+"'.");this.capture(e);var t={};return this.peekStartsWith(";")&&(t=this.parseMatrixParams()),new s(decode(e),t)},UrlParser.prototype.parseQueryParams=function(){var e={};if(this.peekStartsWith("?"))for(this.capture("?"),this.parseQueryParam(e);this.remaining.length>0&&this.peekStartsWith("&");)this.capture("&"),this.parseQueryParam(e);return e},UrlParser.prototype.parseFragment=function(){return this.peekStartsWith("#")?decodeURI(this.remaining.substring(1)):null},UrlParser.prototype.parseMatrixParams=function(){for(var e={};this.remaining.length>0&&this.peekStartsWith(";");)this.capture(";"),this.parseParam(e);return e},UrlParser.prototype.parseParam=function(e){var t=matchSegments(this.remaining);if(t){this.capture(t);var n="";if(this.peekStartsWith("=")){this.capture("=");var o=matchSegments(this.remaining);o&&(n=o,this.capture(n))}e[decode(t)]=decode(n)}},UrlParser.prototype.parseQueryParam=function(e){var t=matchQueryParams(this.remaining);if(t){this.capture(t);var n="";if(this.peekStartsWith("=")){this.capture("=");var o=matchUrlQueryParamValue(this.remaining);o&&(n=o,this.capture(n))}e[decode(t)]=decode(n)}},UrlParser.prototype.parseParens=function(e){var t={};for(this.capture("(");!this.peekStartsWith(")")&&this.remaining.length>0;){var n=matchSegments(this.remaining),r=this.remaining[n.length];if("/"!==r&&")"!==r&&";"!==r)throw new Error("Cannot parse url '"+this.url+"'");var i=void 0;n.indexOf(":")>-1?(i=n.substr(0,n.indexOf(":")),this.capture(i),this.capture(":")):e&&(i=o.a);var s=this.parseChildren();t[i]=1===Object.keys(s).length?s[o.a]:new a([],s),this.peekStartsWith("//")&&this.capture("//")}return this.capture(")"),t},UrlParser}()},,,,,,,,,,function(e,t,n){"use strict";var o=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},r=n(13),i=n(229),a=function(e){function BehaviorSubject(t){e.call(this),this._value=t}return o(BehaviorSubject,e),Object.defineProperty(BehaviorSubject.prototype,"value",{get:function(){return this.getValue()},enumerable:!0,configurable:!0}),BehaviorSubject.prototype._subscribe=function(t){var n=e.prototype._subscribe.call(this,t);return n&&!n.closed&&t.next(this._value),n},BehaviorSubject.prototype.getValue=function(){if(this.hasError)throw this.thrownError;if(this.closed)throw new i.ObjectUnsubscribedError;return this._value},BehaviorSubject.prototype.next=function(t){e.prototype.next.call(this,this._value=t)},BehaviorSubject}(r.Subject);t.BehaviorSubject=a},,function(e,t,n){"use strict";var o=n(687);n.d(t,"NgProbeToken",function(){return o.b}),n.d(t,"platformBrowser",function(){return o.c}),n.d(t,"Title",function(){return o.d}),n.d(t,"disableDebugTools",function(){return o.e}),n.d(t,"enableDebugTools",function(){return o.f}),n.d(t,"AnimationDriver",function(){return o.g}),n.d(t,"By",function(){return o.h}),n.d(t,"BrowserModule",function(){return o.i}),n.d(t,"DOCUMENT",function(){return o.j}),n.d(t,"EVENT_MANAGER_PLUGINS",function(){return o.k}),n.d(t,"EventManager",function(){return o.l}),n.d(t,"HAMMER_GESTURE_CONFIG",function(){return o.m}),n.d(t,"HammerGestureConfig",function(){return o.n}),n.d(t,"DomSanitizer",function(){return o.o}),n.d(t,"VERSION",function(){return o.p}),n.d(t,"__platform_browser_private__",function(){return o.a})},,,function(e,t,n){"use strict";function _createInterpolateRegExp(e){var t=n.i(r.i)(e.start)+"([\\s\\S]*?)"+n.i(r.i)(e.end);return new RegExp(t,"g")}var o=n(166),r=n(7),i=n(20),a=n(47),s=n(244),u=n(125);n.d(t,"a",function(){return g});var l=this&&this.__decorate||function(e,t,n,o){var r,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,n):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,o);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(i<3?r(a):i>3?r(t,n,a):r(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},d=function(){function SplitInterpolation(e,t,n){this.strings=e,this.expressions=t,this.offsets=n}return SplitInterpolation}(),p=function(){function TemplateBindingParseResult(e,t,n){this.templateBindings=e,this.warnings=t,this.errors=n}return TemplateBindingParseResult}(),g=function(){function Parser(e){this._lexer=e,this.errors=[]}return Parser.prototype.parseAction=function(e,t,n){void 0===n&&(n=a.a),this._checkNoInterpolation(e,t,n);var o=this._stripComments(e),r=this._lexer.tokenize(this._stripComments(e)),i=new f(e,t,r,o.length,(!0),this.errors,e.length-o.length).parseChain();return new s.a(i,e,t,this.errors)},Parser.prototype.parseBinding=function(e,t,n){void 0===n&&(n=a.a);var o=this._parseBindingAst(e,t,n);return new s.a(o,e,t,this.errors)},Parser.prototype.parseSimpleBinding=function(e,t,n){void 0===n&&(n=a.a);var o=this._parseBindingAst(e,t,n),r=h.check(o);return r.length>0&&this._reportError("Host binding expression cannot contain "+r.join(" "),e,t),new s.a(o,e,t,this.errors)},Parser.prototype._reportError=function(e,t,n,o){this.errors.push(new s.b(e,t,n,o))},Parser.prototype._parseBindingAst=function(e,t,o){var i=this._parseQuote(e,t);if(n.i(r.f)(i))return i;this._checkNoInterpolation(e,t,o);var a=this._stripComments(e),s=this._lexer.tokenize(a);return new f(e,t,s,a.length,(!1),this.errors,e.length-a.length).parseChain()},Parser.prototype._parseQuote=function(e,t){if(n.i(r.g)(e))return null;var o=e.indexOf(":");if(o==-1)return null;var i=e.substring(0,o).trim();if(!n.i(u.a)(i))return null;var a=e.substring(o+1);return new s.c(new s.d(0,e.length),i,a,t)},Parser.prototype.parseTemplateBindings=function(e,t,n){var o=this._lexer.tokenize(t);if(e){var r=this._lexer.tokenize(e).map(function(e){return e.index=0,e});o.unshift.apply(o,r)}return new f(t,n,o,t.length,(!1),this.errors,0).parseTemplateBindings()},Parser.prototype.parseInterpolation=function(e,t,o){void 0===o&&(o=a.a);var i=this.splitInterpolation(e,t,o);if(null==i)return null;for(var u=[],l=0;l<i.expressions.length;++l){var c=i.expressions[l],d=this._stripComments(c),p=this._lexer.tokenize(this._stripComments(i.expressions[l])),g=new f(e,t,p,d.length,(!1),this.errors,i.offsets[l]+(c.length-d.length)).parseChain();u.push(g)}return new s.a(new s.e(new s.d(0,n.i(r.g)(e)?0:e.length),i.strings,u),e,t,this.errors)},Parser.prototype.splitInterpolation=function(e,t,n){void 0===n&&(n=a.a);var o=_createInterpolateRegExp(n),r=e.split(o);if(r.length<=1)return null;for(var i=[],s=[],u=[],l=0,c=0;c<r.length;c++){var p=r[c];c%2===0?(i.push(p),l+=p.length):p.trim().length>0?(l+=n.start.length,s.push(p),u.push(l),l+=p.length+n.end.length):(this._reportError("Blank expressions are not allowed in interpolated strings",e,"at column "+this._findInterpolationErrorColumn(r,c,n)+" in",t),s.push("$implict"),u.push(l))}return new d(i,s,u)},Parser.prototype.wrapLiteralPrimitive=function(e,t){return new s.a(new s.f(new s.d(0,n.i(r.g)(e)?0:e.length),e),e,t,this.errors)},Parser.prototype._stripComments=function(e){var t=this._commentStart(e);return n.i(r.f)(t)?e.substring(0,t).trim():e},Parser.prototype._commentStart=function(e){for(var t=null,i=0;i<e.length-1;i++){var a=e.charCodeAt(i),s=e.charCodeAt(i+1);if(a===o.t&&s==o.t&&n.i(r.g)(t))return i;t===a?t=null:n.i(r.g)(t)&&n.i(u.b)(a)&&(t=a)}return null},Parser.prototype._checkNoInterpolation=function(e,t,n){var o=_createInterpolateRegExp(n),r=e.split(o);r.length>1&&this._reportError("Got interpolation ("+n.start+n.end+") where expression was expected",e,"at column "+this._findInterpolationErrorColumn(r,1,n)+" in",t)},Parser.prototype._findInterpolationErrorColumn=function(e,t,n){for(var o="",r=0;r<t;r++)o+=r%2===0?e[r]:""+n.start+e[r]+n.end;return o.length},Parser=l([n.i(i.a)(),c("design:paramtypes",[u.c])],Parser)}(),f=function(){function _ParseAST(e,t,n,o,r,i,a){this.input=e,this.location=t,this.tokens=n,this.inputLength=o,this.parseAction=r,this.errors=i,this.offset=a,this.rparensExpected=0,this.rbracketsExpected=0,this.rbracesExpected=0,this.index=0}return _ParseAST.prototype.peek=function(e){var t=this.index+e;return t<this.tokens.length?this.tokens[t]:u.d},Object.defineProperty(_ParseAST.prototype,"next",{get:function(){return this.peek(0)},enumerable:!0,configurable:!0}),Object.defineProperty(_ParseAST.prototype,"inputIndex",{get:function(){return this.index<this.tokens.length?this.next.index+this.offset:this.inputLength+this.offset},enumerable:!0,configurable:!0}),_ParseAST.prototype.span=function(e){return new s.d(e,this.inputIndex)},_ParseAST.prototype.advance=function(){this.index++},_ParseAST.prototype.optionalCharacter=function(e){return!!this.next.isCharacter(e)&&(this.advance(),!0)},_ParseAST.prototype.peekKeywordLet=function(){return this.next.isKeywordLet()},_ParseAST.prototype.expectCharacter=function(e){this.optionalCharacter(e)||this.error("Missing expected "+String.fromCharCode(e))},_ParseAST.prototype.optionalOperator=function(e){return!!this.next.isOperator(e)&&(this.advance(),!0)},_ParseAST.prototype.expectOperator=function(e){this.optionalOperator(e)||this.error("Missing expected operator "+e)},_ParseAST.prototype.expectIdentifierOrKeyword=function(){var e=this.next;return e.isIdentifier()||e.isKeyword()?(this.advance(),e.toString()):(this.error("Unexpected token "+e+", expected identifier or keyword"),"")},_ParseAST.prototype.expectIdentifierOrKeywordOrString=function(){var e=this.next;return e.isIdentifier()||e.isKeyword()||e.isString()?(this.advance(),e.toString()):(this.error("Unexpected token "+e+", expected identifier, keyword, or string"),"")},_ParseAST.prototype.parseChain=function(){for(var e=[],t=this.inputIndex;this.index<this.tokens.length;){var n=this.parsePipe();if(e.push(n),this.optionalCharacter(o.m))for(this.parseAction||this.error("Binding expression cannot contain chained expression");this.optionalCharacter(o.m););else this.index<this.tokens.length&&this.error("Unexpected token '"+this.next+"'")}return 0==e.length?new s.g(this.span(t)):1==e.length?e[0]:new s.h(this.span(t),e)},_ParseAST.prototype.parsePipe=function(){var e=this.parseExpression();if(this.optionalOperator("|")){this.parseAction&&this.error("Cannot have a pipe in an action expression");do{for(var t=this.expectIdentifierOrKeyword(),n=[];this.optionalCharacter(o.l);)n.push(this.parseExpression());e=new s.i(this.span(e.span.start),e,t,n)}while(this.optionalOperator("|"))}return e},_ParseAST.prototype.parseExpression=function(){return this.parseConditional()},_ParseAST.prototype.parseConditional=function(){var e=this.inputIndex,t=this.parseLogicalOr();if(this.optionalOperator("?")){var n=this.parsePipe(),r=void 0;if(this.optionalCharacter(o.l))r=this.parsePipe();else{var i=this.inputIndex,a=this.input.substring(e,i);this.error("Conditional expression "+a+" requires all 3 expressions"),r=new s.g(this.span(e))}return new s.j(this.span(e),t,n,r)}return t},_ParseAST.prototype.parseLogicalOr=function(){for(var e=this.parseLogicalAnd();this.optionalOperator("||");){var t=this.parseLogicalAnd();e=new s.k(this.span(e.span.start),"||",e,t)}return e},_ParseAST.prototype.parseLogicalAnd=function(){for(var e=this.parseEquality();this.optionalOperator("&&");){var t=this.parseEquality();e=new s.k(this.span(e.span.start),"&&",e,t)}return e},_ParseAST.prototype.parseEquality=function(){for(var e=this.parseRelational();this.next.type==u.e.Operator;){var t=this.next.strValue;switch(t){case"==":case"===":case"!=":case"!==":this.advance();var n=this.parseRelational();e=new s.k(this.span(e.span.start),t,e,n);continue}break}return e},_ParseAST.prototype.parseRelational=function(){for(var e=this.parseAdditive();this.next.type==u.e.Operator;){var t=this.next.strValue;switch(t){case"<":case">":case"<=":case">=":this.advance();var n=this.parseAdditive();e=new s.k(this.span(e.span.start),t,e,n);continue}break}return e},_ParseAST.prototype.parseAdditive=function(){for(var e=this.parseMultiplicative();this.next.type==u.e.Operator;){var t=this.next.strValue;switch(t){case"+":case"-":this.advance();var n=this.parseMultiplicative();e=new s.k(this.span(e.span.start),t,e,n);continue}break}return e},_ParseAST.prototype.parseMultiplicative=function(){for(var e=this.parsePrefix();this.next.type==u.e.Operator;){var t=this.next.strValue;switch(t){case"*":case"%":case"/":this.advance();var n=this.parsePrefix();e=new s.k(this.span(e.span.start),t,e,n);continue}break}return e},_ParseAST.prototype.parsePrefix=function(){if(this.next.type==u.e.Operator){var e=this.inputIndex,t=this.next.strValue,n=void 0;switch(t){case"+":return this.advance(),this.parsePrefix();case"-":return this.advance(),n=this.parsePrefix(),new s.k(this.span(e),t,new s.f(new s.d(e,e),0),n);case"!":return this.advance(),n=this.parsePrefix(),new s.l(this.span(e),n)}}return this.parseCallChain()},_ParseAST.prototype.parseCallChain=function(){for(var e=this.parsePrimary();;)if(this.optionalCharacter(o.d))e=this.parseAccessMemberOrMethodCall(e,!1);else if(this.optionalOperator("?."))e=this.parseAccessMemberOrMethodCall(e,!0);else if(this.optionalCharacter(o.i)){this.rbracketsExpected++;var t=this.parsePipe();if(this.rbracketsExpected--,this.expectCharacter(o.j),this.optionalOperator("=")){var n=this.parseConditional();e=new s.m(this.span(e.span.start),e,t,n)}else e=new s.n(this.span(e.span.start),e,t)}else{if(!this.optionalCharacter(o.e))return e;this.rparensExpected++;var r=this.parseCallArguments();this.rparensExpected--,this.expectCharacter(o.f),e=new s.o(this.span(e.span.start),e,r)}},_ParseAST.prototype.parsePrimary=function(){var e=this.inputIndex;if(this.optionalCharacter(o.e)){this.rparensExpected++;var t=this.parsePipe();return this.rparensExpected--,this.expectCharacter(o.f),t}if(this.next.isKeywordNull())return this.advance(),new s.f(this.span(e),null);if(this.next.isKeywordUndefined())return this.advance(),new s.f(this.span(e),(void 0));if(this.next.isKeywordTrue())return this.advance(),new s.f(this.span(e),(!0));if(this.next.isKeywordFalse())return this.advance(),new s.f(this.span(e),(!1));if(this.next.isKeywordThis())return this.advance(),new s.p(this.span(e));if(this.optionalCharacter(o.i)){this.rbracketsExpected++;var n=this.parseExpressionList(o.j);return this.rbracketsExpected--,this.expectCharacter(o.j),new s.q(this.span(e),n)}if(this.next.isCharacter(o.g))return this.parseLiteralMap();if(this.next.isIdentifier())return this.parseAccessMemberOrMethodCall(new s.p(this.span(e)),!1);if(this.next.isNumber()){var r=this.next.toNumber();return this.advance(),new s.f(this.span(e),r)}if(this.next.isString()){var i=this.next.toString();return this.advance(),new s.f(this.span(e),i)}return this.index>=this.tokens.length?(this.error("Unexpected end of expression: "+this.input),new s.g(this.span(e))):(this.error("Unexpected token "+this.next),new s.g(this.span(e)))},_ParseAST.prototype.parseExpressionList=function(e){var t=[];if(!this.next.isCharacter(e))do t.push(this.parsePipe());while(this.optionalCharacter(o.k));return t},_ParseAST.prototype.parseLiteralMap=function(){var e=[],t=[],n=this.inputIndex;if(this.expectCharacter(o.g),!this.optionalCharacter(o.h)){this.rbracesExpected++;do{var r=this.expectIdentifierOrKeywordOrString();e.push(r),this.expectCharacter(o.l),t.push(this.parsePipe())}while(this.optionalCharacter(o.k));this.rbracesExpected--,this.expectCharacter(o.h)}return new s.r(this.span(n),e,t)},_ParseAST.prototype.parseAccessMemberOrMethodCall=function(e,t){void 0===t&&(t=!1);var n=e.span.start,r=this.expectIdentifierOrKeyword();if(this.optionalCharacter(o.e)){this.rparensExpected++;var i=this.parseCallArguments();this.expectCharacter(o.f),this.rparensExpected--;var a=this.span(n);return t?new s.s(a,e,r,i):new s.t(a,e,r,i)}if(t)return this.optionalOperator("=")?(this.error("The '?.' operator cannot be used in the assignment"),new s.g(this.span(n))):new s.u(this.span(n),e,r);if(this.optionalOperator("=")){if(!this.parseAction)return this.error("Bindings cannot contain assignments"),new s.g(this.span(n));var u=this.parseConditional();return new s.v(this.span(n),e,r,u)}return new s.w(this.span(n),e,r)},_ParseAST.prototype.parseCallArguments=function(){if(this.next.isCharacter(o.f))return[];var e=[];do e.push(this.parsePipe());while(this.optionalCharacter(o.k));return e},_ParseAST.prototype.expectTemplateBindingKey=function(){var e="",t=!1;do e+=this.expectIdentifierOrKeywordOrString(),t=this.optionalOperator("-"),t&&(e+="-");while(t);return e.toString()},_ParseAST.prototype.parseTemplateBindings=function(){for(var e=[],t=null,n=[];this.index<this.tokens.length;){var r=this.inputIndex,i=this.peekKeywordLet();i&&this.advance();var a=this.expectTemplateBindingKey();i||(null==t?t=a:a=t+a[0].toUpperCase()+a.substring(1)),this.optionalCharacter(o.l);var l=null,c=null;if(i)l=this.optionalOperator("=")?this.expectTemplateBindingKey():"$implicit";else if(this.next!==u.d&&!this.peekKeywordLet()){var d=this.inputIndex,g=this.parsePipe(),f=this.input.substring(d-this.offset,this.inputIndex-this.offset);c=new s.a(g,f,this.location,this.errors)}e.push(new s.x(this.span(r),a,i,l,c)),this.optionalCharacter(o.m)||this.optionalCharacter(o.k)}return new p(e,n,this.errors)},_ParseAST.prototype.error=function(e,t){void 0===t&&(t=null),this.errors.push(new s.b(e,this.input,this.locationText(t),this.location)),this.skip()},_ParseAST.prototype.locationText=function(e){return void 0===e&&(e=null),n.i(r.g)(e)&&(e=this.index),e<this.tokens.length?"at column "+(this.tokens[e].index+1)+" in":"at the end of the expression"},_ParseAST.prototype.skip=function(){for(var e=this.next;this.index<this.tokens.length&&!e.isCharacter(o.m)&&(this.rparensExpected<=0||!e.isCharacter(o.f))&&(this.rbracesExpected<=0||!e.isCharacter(o.h))&&(this.rbracketsExpected<=0||!e.isCharacter(o.j));)this.next.isError()&&this.errors.push(new s.b(this.next.toString(),this.input,this.locationText(),this.location)),this.advance(),e=this.next},_ParseAST}(),h=function(){function SimpleExpressionChecker(){this.errors=[]}return SimpleExpressionChecker.check=function(e){var t=new SimpleExpressionChecker;return e.visit(t),t.errors},SimpleExpressionChecker.prototype.visitImplicitReceiver=function(e,t){},SimpleExpressionChecker.prototype.visitInterpolation=function(e,t){},SimpleExpressionChecker.prototype.visitLiteralPrimitive=function(e,t){},SimpleExpressionChecker.prototype.visitPropertyRead=function(e,t){},SimpleExpressionChecker.prototype.visitPropertyWrite=function(e,t){},SimpleExpressionChecker.prototype.visitSafePropertyRead=function(e,t){},SimpleExpressionChecker.prototype.visitMethodCall=function(e,t){},SimpleExpressionChecker.prototype.visitSafeMethodCall=function(e,t){},SimpleExpressionChecker.prototype.visitFunctionCall=function(e,t){},SimpleExpressionChecker.prototype.visitLiteralArray=function(e,t){this.visitAll(e.expressions)},SimpleExpressionChecker.prototype.visitLiteralMap=function(e,t){this.visitAll(e.values)},SimpleExpressionChecker.prototype.visitBinary=function(e,t){},SimpleExpressionChecker.prototype.visitPrefixNot=function(e,t){},SimpleExpressionChecker.prototype.visitConditional=function(e,t){},SimpleExpressionChecker.prototype.visitPipe=function(e,t){this.errors.push("pipes")},SimpleExpressionChecker.prototype.visitKeyedRead=function(e,t){},SimpleExpressionChecker.prototype.visitKeyedWrite=function(e,t){},SimpleExpressionChecker.prototype.visitAll=function(e){var t=this;return e.map(function(e){return e.visit(t)})},SimpleExpressionChecker.prototype.visitChain=function(e,t){},SimpleExpressionChecker.prototype.visitQuote=function(e,t){},SimpleExpressionChecker}()},function(e,t,n){"use strict";function lastOnStack(e,t){return e.length>0&&e[e.length-1]===t}var o=n(7),r=n(40),i=n(74),a=n(47),s=n(625),u=n(87);n.d(t,"a",function(){return d}),n.d(t,"b",function(){return p});var l=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},c=function(e){function TreeError(t,n,o){e.call(this,n,o),this.elementName=t}return l(TreeError,e),TreeError.create=function(e,t,n){return new TreeError(e,t,n)},TreeError}(r.a),d=function(){function ParseTreeResult(e,t){this.rootNodes=e,this.errors=t}return ParseTreeResult}(),p=function(){function Parser(e){this.getTagDefinition=e}return Parser.prototype.parse=function(e,t,n,o){void 0===n&&(n=!1),void 0===o&&(o=a.a);var r=s.a(e,t,this.getTagDefinition,n,o),i=new g(r.tokens,this.getTagDefinition).build();return new d(i.rootNodes,r.errors.concat(i.errors))},Parser}(),g=function(){function _TreeBuilder(e,t){this.tokens=e,this.getTagDefinition=t,this._index=-1,this._rootNodes=[],this._errors=[],this._elementStack=[],this._advance()}return _TreeBuilder.prototype.build=function(){for(;this._peek.type!==s.b.EOF;)this._peek.type===s.b.TAG_OPEN_START?this._consumeStartTag(this._advance()):this._peek.type===s.b.TAG_CLOSE?this._consumeEndTag(this._advance()):this._peek.type===s.b.CDATA_START?(this._closeVoidElement(),this._consumeCdata(this._advance())):this._peek.type===s.b.COMMENT_START?(this._closeVoidElement(),this._consumeComment(this._advance())):this._peek.type===s.b.TEXT||this._peek.type===s.b.RAW_TEXT||this._peek.type===s.b.ESCAPABLE_RAW_TEXT?(this._closeVoidElement(),this._consumeText(this._advance())):this._peek.type===s.b.EXPANSION_FORM_START?this._consumeExpansion(this._advance()):this._advance();return new d(this._rootNodes,this._errors)},_TreeBuilder.prototype._advance=function(){var e=this._peek;return this._index<this.tokens.length-1&&this._index++,this._peek=this.tokens[this._index],e},_TreeBuilder.prototype._advanceIf=function(e){return this._peek.type===e?this._advance():null},_TreeBuilder.prototype._consumeCdata=function(e){this._consumeText(this._advance()),this._advanceIf(s.b.CDATA_END)},_TreeBuilder.prototype._consumeComment=function(e){var t=this._advanceIf(s.b.RAW_TEXT);this._advanceIf(s.b.COMMENT_END);var r=n.i(o.f)(t)?t.parts[0].trim():null;this._addToParent(new i.a(r,e.sourceSpan))},_TreeBuilder.prototype._consumeExpansion=function(e){for(var t=this._advance(),n=this._advance(),o=[];this._peek.type===s.b.EXPANSION_CASE_VALUE;){var a=this._parseExpansionCase();if(!a)return;o.push(a)}if(this._peek.type!==s.b.EXPANSION_FORM_END)return void this._errors.push(c.create(null,this._peek.sourceSpan,"Invalid ICU message. Missing '}'."));var u=new r.d(e.sourceSpan.start,this._peek.sourceSpan.end);this._addToParent(new i.b(t.parts[0],n.parts[0],o,u,t.sourceSpan)),this._advance()},_TreeBuilder.prototype._parseExpansionCase=function(){var e=this._advance();if(this._peek.type!==s.b.EXPANSION_CASE_EXP_START)return this._errors.push(c.create(null,this._peek.sourceSpan,"Invalid ICU message. Missing '{'.")),null;var t=this._advance(),n=this._collectExpansionExpTokens(t);if(!n)return null;var o=this._advance();n.push(new s.c(s.b.EOF,[],o.sourceSpan));var a=new _TreeBuilder(n,this.getTagDefinition).build();if(a.errors.length>0)return this._errors=this._errors.concat(a.errors),null;var u=new r.d(e.sourceSpan.start,o.sourceSpan.end),l=new r.d(t.sourceSpan.start,o.sourceSpan.end);return new i.c(e.parts[0],a.rootNodes,u,e.sourceSpan,l)},_TreeBuilder.prototype._collectExpansionExpTokens=function(e){for(var t=[],n=[s.b.EXPANSION_CASE_EXP_START];;){if(this._peek.type!==s.b.EXPANSION_FORM_START&&this._peek.type!==s.b.EXPANSION_CASE_EXP_START||n.push(this._peek.type),this._peek.type===s.b.EXPANSION_CASE_EXP_END){if(!lastOnStack(n,s.b.EXPANSION_CASE_EXP_START))return this._errors.push(c.create(null,e.sourceSpan,"Invalid ICU message. Missing '}'.")),null;if(n.pop(),0==n.length)return t}if(this._peek.type===s.b.EXPANSION_FORM_END){if(!lastOnStack(n,s.b.EXPANSION_FORM_START))return this._errors.push(c.create(null,e.sourceSpan,"Invalid ICU message. Missing '}'.")),null;n.pop()}if(this._peek.type===s.b.EOF)return this._errors.push(c.create(null,e.sourceSpan,"Invalid ICU message. Missing '}'.")),null;t.push(this._advance())}},_TreeBuilder.prototype._consumeText=function(e){var t=e.parts[0];if(t.length>0&&"\n"==t[0]){var r=this._getParentElement();n.i(o.f)(r)&&0==r.children.length&&this.getTagDefinition(r.name).ignoreFirstLf&&(t=t.substring(1))}t.length>0&&this._addToParent(new i.d(t,e.sourceSpan))},_TreeBuilder.prototype._closeVoidElement=function(){if(this._elementStack.length>0){var e=this._elementStack[this._elementStack.length-1];this.getTagDefinition(e.name).isVoid&&this._elementStack.pop()}},_TreeBuilder.prototype._consumeStartTag=function(e){for(var t=e.parts[0],o=e.parts[1],a=[];this._peek.type===s.b.ATTR_NAME;)a.push(this._consumeAttr(this._advance()));var l=this._getElementFullName(t,o,this._getParentElement()),d=!1;if(this._peek.type===s.b.TAG_OPEN_END_VOID){this._advance(),d=!0;var p=this.getTagDefinition(l);p.canSelfClose||null!==n.i(u.c)(l)||p.isVoid||this._errors.push(c.create(l,e.sourceSpan,'Only void and foreign elements can be self closed "'+e.parts[1]+'"'))}else this._peek.type===s.b.TAG_OPEN_END&&(this._advance(),d=!1);var g=this._peek.sourceSpan.start,f=new r.d(e.sourceSpan.start,g),h=new i.e(l,a,[],f,f,null);this._pushElement(h),d&&(this._popElement(l),h.endSourceSpan=f)},_TreeBuilder.prototype._pushElement=function(e){if(this._elementStack.length>0){var t=this._elementStack[this._elementStack.length-1];this.getTagDefinition(t.name).isClosedByChild(e.name)&&this._elementStack.pop()}var n=this.getTagDefinition(e.name),o=this._getParentElementSkippingContainers(),r=o.parent,a=o.container;if(r&&n.requireExtraParent(r.name)){var s=new i.e(n.parentToAdd,[],[],e.sourceSpan,e.startSourceSpan,e.endSourceSpan);this._insertBeforeContainer(r,a,s)}this._addToParent(e),this._elementStack.push(e)},_TreeBuilder.prototype._consumeEndTag=function(e){var t=this._getElementFullName(e.parts[0],e.parts[1],this._getParentElement());this._getParentElement()&&(this._getParentElement().endSourceSpan=e.sourceSpan),this.getTagDefinition(t).isVoid?this._errors.push(c.create(t,e.sourceSpan,'Void elements do not have end tags "'+e.parts[1]+'"')):this._popElement(t)||this._errors.push(c.create(t,e.sourceSpan,'Unexpected closing tag "'+e.parts[1]+'"'))},_TreeBuilder.prototype._popElement=function(e){for(var t=this._elementStack.length-1;t>=0;t--){var n=this._elementStack[t];if(n.name==e)return this._elementStack.splice(t,this._elementStack.length-t),!0;if(!this.getTagDefinition(n.name).closedByParent)return!1}return!1},_TreeBuilder.prototype._consumeAttr=function(e){var t,o=n.i(u.d)(e.parts[0],e.parts[1]),a=e.sourceSpan.end,l="";if(this._peek.type===s.b.ATTR_VALUE){var c=this._advance();l=c.parts[0],a=c.sourceSpan.end,t=c.sourceSpan}return new i.f(o,l,new r.d(e.sourceSpan.start,a),t)},_TreeBuilder.prototype._getParentElement=function(){return this._elementStack.length>0?this._elementStack[this._elementStack.length-1]:null},_TreeBuilder.prototype._getParentElementSkippingContainers=function(){for(var e=null,t=this._elementStack.length-1;t>=0;t--){if("ng-container"!==this._elementStack[t].name)return{parent:this._elementStack[t],container:e};e=this._elementStack[t]}return{parent:this._elementStack[this._elementStack.length-1],container:e}},_TreeBuilder.prototype._addToParent=function(e){var t=this._getParentElement();n.i(o.f)(t)?t.children.push(e):this._rootNodes.push(e)},_TreeBuilder.prototype._insertBeforeContainer=function(e,t,n){if(t){if(e){var o=e.children.indexOf(t);e.children[o]=n}else this._rootNodes.push(n);n.children.push(t),this._elementStack.splice(this._elementStack.indexOf(t),0,n)}else this._addToParent(n),this._elementStack.push(n)},_TreeBuilder.prototype._getElementFullName=function(e,t,r){return n.i(o.g)(e)&&(e=this.getTagDefinition(t).implicitNamespacePrefix,n.i(o.g)(e)&&n.i(o.f)(r)&&(e=n.i(u.c)(r.name))),n.i(u.d)(e,t)},_TreeBuilder}()},function(e,t,n){"use strict";var o=n(109);n.d(t,"b",function(){return r}),n.d(t,"c",function(){return i}),n.d(t,"a",function(){return a}),n.d(t,"d",function(){return s}),n.d(t,"e",function(){return u}),n.d(t,"f",function(){return l});var r=n.i(o.a)("Inject",[["token",void 0]]),i=n.i(o.a)("Optional",[]),a=n.i(o.b)("Injectable",[]),s=n.i(o.a)("Self",[]),u=n.i(o.a)("SkipSelf",[]),l=n.i(o.a)("Host",[])},function(e,t,n){"use strict";function extractAnnotation(e){return"function"==typeof e&&e.hasOwnProperty("annotation")&&(e=e.annotation),e}function applyParams(e,t){if(e===Object||e===String||e===Function||e===Number||e===Array)throw new Error("Can not use native "+n.i(o.b)(e)+" as constructor");if("function"==typeof e)return e;if(Array.isArray(e)){var r=e,a=r.length-1,s=e[a];if("function"!=typeof s)throw new Error("Last position of Class method array must be Function in key "+t+" was '"+n.i(o.b)(s)+"'");if(a!=s.length)throw new Error("Number of annotations ("+a+") does not match number of arguments ("+s.length+") in the function: "+n.i(o.b)(s));for(var u=[],l=0,c=r.length-1;l<c;l++){var d=[];u.push(d);var p=r[l];if(Array.isArray(p))for(var g=0;g<p.length;g++)d.push(extractAnnotation(p[g]));else"function"==typeof p?d.push(extractAnnotation(p)):d.push(p);
}return i.defineMetadata("parameters",u,s),s}throw new Error("Only Function or Array is supported in Class definition for key '"+t+"' is '"+n.i(o.b)(e)+"'")}function Class(e){var t=applyParams(e.hasOwnProperty("constructor")?e.constructor:void 0,"constructor"),a=t.prototype;if(e.hasOwnProperty("extends")){if("function"!=typeof e.extends)throw new Error("Class definition 'extends' property must be a constructor function was: "+n.i(o.b)(e.extends));t.prototype=a=Object.create(e.extends.prototype)}for(var s in e)"extends"!==s&&"prototype"!==s&&e.hasOwnProperty(s)&&(a[s]=applyParams(e[s],s));this&&this.annotations instanceof Array&&i.defineMetadata("annotations",this.annotations,t);var u=t.name;return u&&"constructor"!==u||(t.overriddenName="class"+r++),t}function makeDecorator(e,t,n,o){function DecoratorFactory(e){if(!i||!i.getOwnMetadata)throw"reflect-metadata shim is required when using class decorators";if(this instanceof DecoratorFactory)return r.call(this,e),this;var t=new DecoratorFactory(e),n="function"==typeof this&&Array.isArray(this.annotations)?this.annotations:[];n.push(t);var a=function(e){var n=i.getOwnMetadata("annotations",e)||[];return n.push(t),i.defineMetadata("annotations",n,e),e};return a.annotations=n,a.Class=Class,o&&o(a),a}void 0===o&&(o=null);var r=makeMetadataCtor([t]);return n&&(DecoratorFactory.prototype=Object.create(n.prototype)),DecoratorFactory.prototype.toString=function(){return"@"+e},DecoratorFactory.annotationCls=DecoratorFactory,DecoratorFactory}function makeMetadataCtor(e){return function(){for(var t=this,n=[],o=0;o<arguments.length;o++)n[o-0]=arguments[o];e.forEach(function(e,o){var r=n[o];if(Array.isArray(e))t[e[0]]=void 0===r?e[1]:r;else for(var i in e)t[i]=r&&r.hasOwnProperty(i)?r[i]:e[i]})}}function makeParamDecorator(e,t,n){function ParamDecoratorFactory(){function ParamDecorator(e,t,o){for(var r=i.getOwnMetadata("parameters",e)||[];r.length<=o;)r.push(null);return r[o]=r[o]||[],r[o].push(n),i.defineMetadata("parameters",r,e),e}for(var e=[],t=0;t<arguments.length;t++)e[t-0]=arguments[t];if(this instanceof ParamDecoratorFactory)return o.apply(this,e),this;var n=new((r=ParamDecoratorFactory).bind.apply(r,[void 0].concat(e)));return ParamDecorator.annotation=n,ParamDecorator;var r}var o=makeMetadataCtor(t);return n&&(ParamDecoratorFactory.prototype=Object.create(n.prototype)),ParamDecoratorFactory.prototype.toString=function(){return"@"+e},ParamDecoratorFactory.annotationCls=ParamDecoratorFactory,ParamDecoratorFactory}function makePropDecorator(e,t,n){function PropDecoratorFactory(){for(var e=[],t=0;t<arguments.length;t++)e[t-0]=arguments[t];if(this instanceof PropDecoratorFactory)return o.apply(this,e),this;var n=new((r=PropDecoratorFactory).bind.apply(r,[void 0].concat(e)));return function(e,t){var o=i.getOwnMetadata("propMetadata",e.constructor)||{};o[t]=o.hasOwnProperty(t)&&o[t]||[],o[t].unshift(n),i.defineMetadata("propMetadata",o,e.constructor)};var r}var o=makeMetadataCtor(t);return n&&(PropDecoratorFactory.prototype=Object.create(n.prototype)),PropDecoratorFactory.prototype.toString=function(){return"@"+e},PropDecoratorFactory.annotationCls=PropDecoratorFactory,PropDecoratorFactory}var o=n(8);t.d=Class,t.b=makeDecorator,t.a=makeParamDecorator,t.c=makePropDecorator;var r=0,i=o.a.Reflect},function(e,t,n){"use strict";var o=n(13),r=(n.n(o),n(0));n.n(r);n.d(t,"a",function(){return a});var i=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},a=function(e){function EventEmitter(t){void 0===t&&(t=!1),e.call(this),this.__isAsync=t}return i(EventEmitter,e),EventEmitter.prototype.emit=function(t){e.prototype.next.call(this,t)},EventEmitter.prototype.subscribe=function(t,n,o){var r,i=function(e){return null},a=function(){return null};return t&&"object"==typeof t?(r=this.__isAsync?function(e){setTimeout(function(){return t.next(e)})}:function(e){t.next(e)},t.error&&(i=this.__isAsync?function(e){setTimeout(function(){return t.error(e)})}:function(e){t.error(e)}),t.complete&&(a=this.__isAsync?function(){setTimeout(function(){return t.complete()})}:function(){t.complete()})):(r=this.__isAsync?function(e){setTimeout(function(){return t(e)})}:function(e){t(e)},n&&(i=this.__isAsync?function(e){setTimeout(function(){return n(e)})}:function(e){n(e)}),o&&(a=this.__isAsync?function(){setTimeout(function(){return o()})}:function(){o()})),e.prototype.subscribe.call(this,r,i,a)},EventEmitter}(o.Subject)},function(e,t,n){"use strict";(function(e){function isPresent(e){return null!=e}function isBlank(e){return null==e}function looseIdentical(e,t){return e===t||"number"==typeof e&&"number"==typeof t&&isNaN(e)&&isNaN(t)}function isJsObject(e){return null!==e&&("function"==typeof e||"object"==typeof e)}function getSymbolIterator(){if(!r)if(n.Symbol&&Symbol.iterator)r=Symbol.iterator;else for(var e=Object.getOwnPropertyNames(Map.prototype),t=0;t<e.length;++t){var o=e[t];"entries"!==o&&"size"!==o&&Map.prototype[o]===Map.prototype.entries&&(r=o)}return r}function isPrimitive(e){return!isJsObject(e)}t.c=isPresent,t.f=isBlank,t.e=looseIdentical,t.a=isJsObject,t.b=getSymbolIterator,t.d=isPrimitive;var n;n="undefined"==typeof window?"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:e:window;var o=n;o.assert=function(e){};var r=(Object.getPrototypeOf({}),function(){function NumberWrapper(){}return NumberWrapper.parseIntAutoRadix=function(e){var t=parseInt(e);if(isNaN(t))throw new Error("Invalid integer literal when parsing "+e);return t},NumberWrapper.isNumeric=function(e){return!isNaN(e-parseFloat(e))},NumberWrapper}(),null)}).call(t,n(55))},function(e,t,n){"use strict";var o=n(1),r=n(23);n.d(t,"c",function(){return i}),n.d(t,"a",function(){return a}),n.d(t,"b",function(){return s});var i=new o.OpaqueToken("EventManagerPlugins"),a=function(){function EventManager(e,t){var n=this;this._zone=t,this._eventNameToPlugin=new Map,e.forEach(function(e){return e.manager=n}),this._plugins=e.slice().reverse()}return EventManager.prototype.addEventListener=function(e,t,n){var o=this._findPluginFor(t);return o.addEventListener(e,t,n)},EventManager.prototype.addGlobalEventListener=function(e,t,n){var o=this._findPluginFor(t);return o.addGlobalEventListener(e,t,n)},EventManager.prototype.getZone=function(){return this._zone},EventManager.prototype._findPluginFor=function(e){var t=this._eventNameToPlugin.get(e);if(t)return t;for(var n=this._plugins,o=0;o<n.length;o++){var r=n[o];if(r.supports(e))return this._eventNameToPlugin.set(e,r),r}throw new Error("No event manager plugin found for event "+e)},EventManager.decorators=[{type:o.Injectable}],EventManager.ctorParameters=function(){return[{type:Array,decorators:[{type:o.Inject,args:[i]}]},{type:o.NgZone}]},EventManager}(),s=function(){function EventManagerPlugin(){}return EventManagerPlugin.prototype.supports=function(e){},EventManagerPlugin.prototype.addEventListener=function(e,t,n){},EventManagerPlugin.prototype.addGlobalEventListener=function(e,t,o){var i=n.i(r.a)().getGlobalEventTarget(e);if(!i)throw new Error("Unsupported event target "+i+" for event "+t);return this.addEventListener(i,t,o)},EventManagerPlugin}()},function(e,t,n){"use strict";function createEmptyState(e,t){var n=createEmptyStateSnapshot(e,t),a=new o.BehaviorSubject([new i.c("",{})]),u=new o.BehaviorSubject({}),d=new o.BehaviorSubject({}),p=new o.BehaviorSubject({}),g=new o.BehaviorSubject(""),f=new c(a,u,p,g,d,r.a,t,n.root);return f.snapshot=n.root,new l(new s.b(f,[]),n)}function createEmptyStateSnapshot(e,t){var n={},o={},i={},a="",u=new p([],n,i,a,o,r.a,t,null,e.root,(-1),d.empty);return new g("",new s.b(u,[]))}function setRouterStateSnapshot(e,t){t.value._routerState=e,t.children.forEach(function(t){return setRouterStateSnapshot(e,t)})}function serializeNode(e){var t=e.children.length>0?" { "+e.children.map(serializeNode).join(", ")+" } ":"";return""+e.value+t}function advanceActivatedRoute(e){e.snapshot?(n.i(a.d)(e.snapshot.queryParams,e._futureSnapshot.queryParams)||e.queryParams.next(e._futureSnapshot.queryParams),e.snapshot.fragment!==e._futureSnapshot.fragment&&e.fragment.next(e._futureSnapshot.fragment),n.i(a.d)(e.snapshot.params,e._futureSnapshot.params)||(e.params.next(e._futureSnapshot.params),e.data.next(e._futureSnapshot.data)),n.i(a.h)(e.snapshot.url,e._futureSnapshot.url)||e.url.next(e._futureSnapshot.url),e.snapshot=e._futureSnapshot):(e.snapshot=e._futureSnapshot,e.data.next(e._futureSnapshot.data))}var o=n(101),r=(n.n(o),n(58)),i=n(91),a=n(59),s=n(289);n.d(t,"a",function(){return l}),t.f=createEmptyState,n.d(t,"b",function(){return c}),n.d(t,"c",function(){return d}),n.d(t,"d",function(){return p}),n.d(t,"e",function(){return g}),t.g=advanceActivatedRoute;var u=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},l=function(e){function RouterState(t,n){e.call(this,t),this.snapshot=n,setRouterStateSnapshot(this,t)}return u(RouterState,e),RouterState.prototype.toString=function(){return this.snapshot.toString()},RouterState}(s.a),c=function(){function ActivatedRoute(e,t,n,o,r,i,a,s){this.url=e,this.params=t,this.queryParams=n,this.fragment=o,this.data=r,this.outlet=i,this.component=a,this._futureSnapshot=s}return Object.defineProperty(ActivatedRoute.prototype,"routeConfig",{get:function(){return this._futureSnapshot.routeConfig},enumerable:!0,configurable:!0}),Object.defineProperty(ActivatedRoute.prototype,"root",{get:function(){return this._routerState.root},enumerable:!0,configurable:!0}),Object.defineProperty(ActivatedRoute.prototype,"parent",{get:function(){return this._routerState.parent(this)},enumerable:!0,configurable:!0}),Object.defineProperty(ActivatedRoute.prototype,"firstChild",{get:function(){return this._routerState.firstChild(this)},enumerable:!0,configurable:!0}),Object.defineProperty(ActivatedRoute.prototype,"children",{get:function(){return this._routerState.children(this)},enumerable:!0,configurable:!0}),Object.defineProperty(ActivatedRoute.prototype,"pathFromRoot",{get:function(){return this._routerState.pathFromRoot(this)},enumerable:!0,configurable:!0}),ActivatedRoute.prototype.toString=function(){return this.snapshot?this.snapshot.toString():"Future("+this._futureSnapshot+")"},ActivatedRoute}(),d=function(){function InheritedResolve(e,t){this.parent=e,this.current=t,this.resolvedData={}}return Object.defineProperty(InheritedResolve.prototype,"flattenedResolvedData",{get:function(){return this.parent?n.i(a.g)(this.parent.flattenedResolvedData,this.resolvedData):this.resolvedData},enumerable:!0,configurable:!0}),Object.defineProperty(InheritedResolve,"empty",{get:function(){return new InheritedResolve(null,{})},enumerable:!0,configurable:!0}),InheritedResolve}(),p=function(){function ActivatedRouteSnapshot(e,t,n,o,r,i,a,s,u,l,c){this.url=e,this.params=t,this.queryParams=n,this.fragment=o,this.data=r,this.outlet=i,this.component=a,this._routeConfig=s,this._urlSegment=u,this._lastPathIndex=l,this._resolve=c}return Object.defineProperty(ActivatedRouteSnapshot.prototype,"routeConfig",{get:function(){return this._routeConfig},enumerable:!0,configurable:!0}),Object.defineProperty(ActivatedRouteSnapshot.prototype,"root",{get:function(){return this._routerState.root},enumerable:!0,configurable:!0}),Object.defineProperty(ActivatedRouteSnapshot.prototype,"parent",{get:function(){return this._routerState.parent(this)},enumerable:!0,configurable:!0}),Object.defineProperty(ActivatedRouteSnapshot.prototype,"firstChild",{get:function(){return this._routerState.firstChild(this)},enumerable:!0,configurable:!0}),Object.defineProperty(ActivatedRouteSnapshot.prototype,"children",{get:function(){return this._routerState.children(this)},enumerable:!0,configurable:!0}),Object.defineProperty(ActivatedRouteSnapshot.prototype,"pathFromRoot",{get:function(){return this._routerState.pathFromRoot(this)},enumerable:!0,configurable:!0}),ActivatedRouteSnapshot.prototype.toString=function(){var e=this.url.map(function(e){return e.toString()}).join("/"),t=this._routeConfig?this._routeConfig.path:"";return"Route(url:'"+e+"', path:'"+t+"')"},ActivatedRouteSnapshot}(),g=function(e){function RouterStateSnapshot(t,n){e.call(this,n),this.url=t,setRouterStateSnapshot(this,n)}return u(RouterStateSnapshot,e),RouterStateSnapshot.prototype.toString=function(){return serializeNode(this._root)},RouterStateSnapshot}(s.a)},,,,function(e,t,n){"use strict";var o=n(65);t.of=o.ArrayObservable.of},function(e,t,n){"use strict";function mergeAll(e){return void 0===e&&(e=Number.POSITIVE_INFINITY),this.lift(new a(e))}var o=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},r=n(4),i=n(5);t.mergeAll=mergeAll;var a=function(){function MergeAllOperator(e){this.concurrent=e}return MergeAllOperator.prototype.call=function(e,t){return t.subscribe(new s(e,this.concurrent))},MergeAllOperator}();t.MergeAllOperator=a;var s=function(e){function MergeAllSubscriber(t,n){e.call(this,t),this.concurrent=n,this.hasCompleted=!1,this.buffer=[],this.active=0}return o(MergeAllSubscriber,e),MergeAllSubscriber.prototype._next=function(e){this.active<this.concurrent?(this.active++,this.add(i.subscribeToResult(this,e))):this.buffer.push(e)},MergeAllSubscriber.prototype._complete=function(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&this.destination.complete()},MergeAllSubscriber.prototype.notifyComplete=function(e){var t=this.buffer;this.remove(e),this.active--,t.length>0?this._next(t.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()},MergeAllSubscriber}(r.OuterSubscriber);t.MergeAllSubscriber=s},,,function(e,t){e.exports=function(e){"undefined"!=typeof execScript?execScript(e):eval.call(null,e)}},function(e,t,n){"use strict";function convertPropertyBinding(e,t,n,o,r){var i=createCurrValueExpr(r),s=[];t||(t=new f);var l=new g(e,t,n,u,r,(!1)),d=o.visit(l,p.Expression);if(!d)return null;if(l.temporaryCount)for(var h=0;h<l.temporaryCount;h++)s.push(temporaryDeclaration(r,h));if(l.needsValueUnwrapper){var m=u.callMethod("reset",[]).toStmt();s.push(m)}return s.push(i.set(d).toDeclStmt(null,[a.b.Final])),l.needsValueUnwrapper?new c(s,i,u.prop("hasWrappedValue")):new c(s,i,null)}function convertActionBinding(e,t,n,o,r){t||(t=new f);var i=new g(e,t,n,null,r,(!0)),s=[];flattenStatements(o.visit(i,p.Statement),s),prependTemporaryDecls(i.temporaryCount,r,s);var u=s.length-1,l=null;if(u>=0){var c=s[u],h=convertStmtIntoExpression(c);h&&(l=createPreventDefaultVar(r),s[u]=l.set(h.cast(a.h).notIdentical(a.f(!1))).toDeclStmt(null,[a.b.Final]))}return new d(s,l)}function createSharedBindingVariablesIfNeeded(e){var t=[],o=a.i(e);return o.has(u.name)&&t.push(u.set(a.d(n.i(i.e)(i.b.ValueUnwrapper)).instantiate([])).toDeclStmt(null,[a.b.Final])),t}function temporaryName(e,t){return"tmp_"+e+"_"+t}function temporaryDeclaration(e,t){return new a.j(temporaryName(e,t),a.k)}function prependTemporaryDecls(e,t,n){for(var o=e-1;o>=0;o--)n.unshift(temporaryDeclaration(t,o))}function ensureStatementMode(e,t){if(e!==p.Statement)throw new Error("Expected a statement, but saw "+t)}function ensureExpressionMode(e,t){if(e!==p.Expression)throw new Error("Expected an expression, but saw "+t)}function convertToStatementIfNeeded(e,t){return e===p.Statement?t.toStmt():t}function flattenStatements(e,t){Array.isArray(e)?e.forEach(function(e){return flattenStatements(e,t)}):t.push(e)}function createCachedLiteralArray(e,t){if(0===t.length)return a.d(n.i(i.e)(i.b.EMPTY_ARRAY));for(var o=a.c.prop("_arr_"+e.fields.length),r=[],u=[],l=0;l<t.length;l++){var c="p"+l;r.push(new a.r(c)),u.push(a.g(c))}return n.i(s.a)(a.s(r,[new a.t(a.n(u))],new a.u(a.h)),t.length,o,e),o.callFn(t)}function createCachedLiteralMap(e,t){if(0===t.length)return a.d(n.i(i.e)(i.b.EMPTY_MAP));for(var o=a.c.prop("_map_"+e.fields.length),r=[],u=[],l=[],c=0;c<t.length;c++){var d="p"+c;r.push(new a.r(d)),u.push([t[c][0],a.g(d)]),l.push(t[c][1])}return n.i(s.a)(a.s(r,[new a.t(a.o(u))],new a.v(a.h)),t.length,o,e),o.callFn(l)}function createCurrValueExpr(e){return a.g("currVal_"+e)}function createPreventDefaultVar(e){return a.g("pd_"+e)}function convertStmtIntoExpression(e){return e instanceof a.w?e.expr:e instanceof a.t?e.value:null}var o=n(244),r=n(7),i=n(19),a=n(10),s=n(46);n.d(t,"c",function(){return l}),t.a=convertPropertyBinding,t.b=convertActionBinding,t.d=createSharedBindingVariablesIfNeeded;var u=a.g("valUnwrapper"),l=function(){function EventHandlerVars(){}return EventHandlerVars.event=a.g("$event"),EventHandlerVars}(),c=function(){function ConvertPropertyBindingResult(e,t,n){this.stmts=e,this.currValExpr=t,this.forceUpdate=n}return ConvertPropertyBindingResult}(),d=function(){function ConvertActionBindingResult(e,t){this.stmts=e,this.preventDefault=t}return ConvertActionBindingResult}(),p={};p.Statement=0,p.Expression=1,p[p.Statement]="Statement",p[p.Expression]="Expression";var g=function(){function _AstToIrVisitor(e,t,n,o,r,i){this._builder=e,this._nameResolver=t,this._implicitReceiver=n,this._valueUnwrapper=o,this.bindingId=r,this.isAction=i,this._nodeMap=new Map,this._resultMap=new Map,this._currentTemporary=0,this.needsValueUnwrapper=!1,this.temporaryCount=0}return _AstToIrVisitor.prototype.visitBinary=function(e,t){var n;switch(e.operation){case"+":n=a.l.Plus;break;case"-":n=a.l.Minus;break;case"*":n=a.l.Multiply;break;case"/":n=a.l.Divide;break;case"%":n=a.l.Modulo;break;case"&&":n=a.l.And;break;case"||":n=a.l.Or;break;case"==":n=a.l.Equals;break;case"!=":n=a.l.NotEquals;break;case"===":n=a.l.Identical;break;case"!==":n=a.l.NotIdentical;break;case"<":n=a.l.Lower;break;case">":n=a.l.Bigger;break;case"<=":n=a.l.LowerEquals;break;case">=":n=a.l.BiggerEquals;break;default:throw new Error("Unsupported operation "+e.operation)}return convertToStatementIfNeeded(t,new a.m(n,this.visit(e.left,p.Expression),this.visit(e.right,p.Expression)))},_AstToIrVisitor.prototype.visitChain=function(e,t){return ensureStatementMode(t,e),this.visitAll(e.expressions,t)},_AstToIrVisitor.prototype.visitConditional=function(e,t){var n=this.visit(e.condition,p.Expression);return convertToStatementIfNeeded(t,n.conditional(this.visit(e.trueExp,p.Expression),this.visit(e.falseExp,p.Expression)))},_AstToIrVisitor.prototype.visitPipe=function(e,t){var n=this.visit(e.exp,p.Expression),o=this.visitAll(e.args,p.Expression),r=this._nameResolver.callPipe(e.name,n,o);if(!r)throw new Error("Illegal state: Pipe "+e.name+" is not allowed here!");return this.needsValueUnwrapper=!0,convertToStatementIfNeeded(t,this._valueUnwrapper.callMethod("unwrap",[r]))},_AstToIrVisitor.prototype.visitFunctionCall=function(e,t){return convertToStatementIfNeeded(t,this.visit(e.target,p.Expression).callFn(this.visitAll(e.args,p.Expression)))},_AstToIrVisitor.prototype.visitImplicitReceiver=function(e,t){return ensureExpressionMode(t,e),this._implicitReceiver},_AstToIrVisitor.prototype.visitInterpolation=function(e,t){ensureExpressionMode(t,e);for(var o=[a.f(e.expressions.length)],r=0;r<e.strings.length-1;r++)o.push(a.f(e.strings[r])),o.push(this.visit(e.expressions[r],p.Expression));return o.push(a.f(e.strings[e.strings.length-1])),e.expressions.length<=9?a.d(n.i(i.e)(i.b.inlineInterpolate)).callFn(o):a.d(n.i(i.e)(i.b.interpolate)).callFn([o[0],a.n(o.slice(1))])},_AstToIrVisitor.prototype.visitKeyedRead=function(e,t){var n=this.leftMostSafeNode(e);return n?this.convertSafeAccess(e,n,t):convertToStatementIfNeeded(t,this.visit(e.obj,p.Expression).key(this.visit(e.key,p.Expression)))},_AstToIrVisitor.prototype.visitKeyedWrite=function(e,t){var n=this.visit(e.obj,p.Expression),o=this.visit(e.key,p.Expression),r=this.visit(e.value,p.Expression);return convertToStatementIfNeeded(t,n.key(o).set(r))},_AstToIrVisitor.prototype.visitLiteralArray=function(e,t){var n=this.visitAll(e.expressions,t),o=this.isAction?a.n(n):createCachedLiteralArray(this._builder,n);return convertToStatementIfNeeded(t,o)},_AstToIrVisitor.prototype.visitLiteralMap=function(e,t){for(var n=[],o=0;o<e.keys.length;o++)n.push([e.keys[o],this.visit(e.values[o],p.Expression)]);var r=this.isAction?a.o(n):createCachedLiteralMap(this._builder,n);return convertToStatementIfNeeded(t,r)},_AstToIrVisitor.prototype.visitLiteralPrimitive=function(e,t){return convertToStatementIfNeeded(t,a.f(e.value))},_AstToIrVisitor.prototype._getLocal=function(e){return this.isAction&&e==l.event.name?l.event:this._nameResolver.getLocal(e)},_AstToIrVisitor.prototype.visitMethodCall=function(e,t){var o=this.leftMostSafeNode(e);if(o)return this.convertSafeAccess(e,o,t);var i=this.visitAll(e.args,p.Expression),a=null,s=this.visit(e.receiver,p.Expression);if(s===this._implicitReceiver){var u=this._getLocal(e.name);u&&(a=u.callFn(i))}return n.i(r.g)(a)&&(a=s.callMethod(e.name,i)),convertToStatementIfNeeded(t,a)},_AstToIrVisitor.prototype.visitPrefixNot=function(e,t){return convertToStatementIfNeeded(t,a.p(this.visit(e.expression,p.Expression)))},_AstToIrVisitor.prototype.visitPropertyRead=function(e,t){var o=this.leftMostSafeNode(e);if(o)return this.convertSafeAccess(e,o,t);var i=null,a=this.visit(e.receiver,p.Expression);return a===this._implicitReceiver&&(i=this._getLocal(e.name)),n.i(r.g)(i)&&(i=a.prop(e.name)),convertToStatementIfNeeded(t,i)},_AstToIrVisitor.prototype.visitPropertyWrite=function(e,t){var n=this.visit(e.receiver,p.Expression);if(n===this._implicitReceiver){var o=this._getLocal(e.name);if(o)throw new Error("Cannot assign to a reference or variable!")}return convertToStatementIfNeeded(t,n.prop(e.name).set(this.visit(e.value,p.Expression)))},_AstToIrVisitor.prototype.visitSafePropertyRead=function(e,t){return this.convertSafeAccess(e,this.leftMostSafeNode(e),t)},_AstToIrVisitor.prototype.visitSafeMethodCall=function(e,t){return this.convertSafeAccess(e,this.leftMostSafeNode(e),t)},_AstToIrVisitor.prototype.visitAll=function(e,t){var n=this;return e.map(function(e){return n.visit(e,t)})},_AstToIrVisitor.prototype.visitQuote=function(e,t){throw new Error("Quotes are not supported for evaluation!")},_AstToIrVisitor.prototype.visit=function(e,t){var n=this._resultMap.get(e);return n?n:(this._nodeMap.get(e)||e).visit(this,t)},_AstToIrVisitor.prototype.convertSafeAccess=function(e,t,n){var r,i=this.visit(t.receiver,p.Expression);this.needsTemporary(t.receiver)&&(r=this.allocateTemporary(),i=r.set(i),this._resultMap.set(t.receiver,r));var s=i.isBlank();t instanceof o.s?this._nodeMap.set(t,new o.t(t.span,t.receiver,t.name,t.args)):this._nodeMap.set(t,new o.w(t.span,t.receiver,t.name));var u=this.visit(e,p.Expression);return this._nodeMap.delete(t),r&&this.releaseTemporary(r),convertToStatementIfNeeded(n,s.conditional(a.f(null),u))},_AstToIrVisitor.prototype.leftMostSafeNode=function(e){var t=this,n=function(e,n){return(t._nodeMap.get(n)||n).visit(e)};return e.visit({visitBinary:function(e){return null},visitChain:function(e){return null},visitConditional:function(e){return null},visitFunctionCall:function(e){return null},visitImplicitReceiver:function(e){return null},visitInterpolation:function(e){return null},visitKeyedRead:function(e){return n(this,e.obj)},visitKeyedWrite:function(e){return null},visitLiteralArray:function(e){return null},visitLiteralMap:function(e){return null},visitLiteralPrimitive:function(e){return null},visitMethodCall:function(e){return n(this,e.receiver)},visitPipe:function(e){return null},visitPrefixNot:function(e){return null},visitPropertyRead:function(e){return n(this,e.receiver)},visitPropertyWrite:function(e){return null},visitQuote:function(e){return null},visitSafeMethodCall:function(e){return n(this,e.receiver)||e},visitSafePropertyRead:function(e){return n(this,e.receiver)||e}})},_AstToIrVisitor.prototype.needsTemporary=function(e){var t=this,n=function(e,n){return n&&(t._nodeMap.get(n)||n).visit(e)},o=function(e,t){return t.some(function(t){return n(e,t)})};return e.visit({visitBinary:function(e){return n(this,e.left)||n(this,e.right)},visitChain:function(e){return!1},visitConditional:function(e){return n(this,e.condition)||n(this,e.trueExp)||n(this,e.falseExp)},visitFunctionCall:function(e){return!0},visitImplicitReceiver:function(e){return!1},visitInterpolation:function(e){return o(this,e.expressions)},visitKeyedRead:function(e){return!1},visitKeyedWrite:function(e){return!1},visitLiteralArray:function(e){return!0},visitLiteralMap:function(e){return!0},visitLiteralPrimitive:function(e){return!1},visitMethodCall:function(e){return!0},visitPipe:function(e){return!0},visitPrefixNot:function(e){return n(this,e.expression)},visitPropertyRead:function(e){return!1},visitPropertyWrite:function(e){return!1},visitQuote:function(e){return!1},visitSafeMethodCall:function(e){return!0},visitSafePropertyRead:function(e){return!1}})},_AstToIrVisitor.prototype.allocateTemporary=function(){var e=this._currentTemporary++;return this.temporaryCount=Math.max(this._currentTemporary,this.temporaryCount),new a.q(temporaryName(this.bindingId,e))},_AstToIrVisitor.prototype.releaseTemporary=function(e){if(this._currentTemporary--,e.name!=temporaryName(this.bindingId,this._currentTemporary))throw new Error("Temporary "+e.name+" released out of order")},_AstToIrVisitor}(),f=function(){function DefaultNameResolver(){}return DefaultNameResolver.prototype.callPipe=function(e,t,n){return null},DefaultNameResolver.prototype.getLocal=function(e){return null},DefaultNameResolver}()},function(e,t,n){"use strict";var o=n(1),r=n(14),i=n(72),a=n(7),s=n(20),u=n(74),l=n(86),c=n(47),d=n(250),p=n(365),g=n(367),f=n(88),h=n(32);n.d(t,"a",function(){return b});var m=this&&this.__decorate||function(e,t,n,o){var r,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,n):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,o);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(i<3?r(a):i>3?r(t,n,a):r(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},y=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},b=function(){function DirectiveNormalizer(e,t,n,o){this._resourceLoader=e,this._urlResolver=t,this._htmlParser=n,this._config=o,this._resourceLoaderCache=new Map}return DirectiveNormalizer.prototype.clearCache=function(){this._resourceLoaderCache.clear()},DirectiveNormalizer.prototype.clearCacheFor=function(e){var t=this;e.isComponent&&(this._resourceLoaderCache.delete(e.template.templateUrl),e.template.externalStylesheets.forEach(function(e){t._resourceLoaderCache.delete(e.moduleUrl)}))},DirectiveNormalizer.prototype._fetch=function(e){var t=this._resourceLoaderCache.get(e);return t||(t=this._resourceLoader.get(e),this._resourceLoaderCache.set(e,t)),t},DirectiveNormalizer.prototype.normalizeTemplate=function(e){var t,o=this,r=null;if(n.i(a.f)(e.template))r=this.normalizeTemplateSync(e),t=Promise.resolve(r);else{if(!e.templateUrl)throw new h.c("No template specified for component "+n.i(a.e)(e.componentType));t=this.normalizeTemplateAsync(e)}return r&&0===r.styleUrls.length?new h.d(r):new h.d(null,t.then(function(e){return o.normalizeExternalStylesheets(e)}))},DirectiveNormalizer.prototype.normalizeTemplateSync=function(e){return this.normalizeLoadedTemplate(e,e.template,e.moduleUrl)},DirectiveNormalizer.prototype.normalizeTemplateAsync=function(e){var t=this,n=this._urlResolver.resolve(e.moduleUrl,e.templateUrl);return this._fetch(n).then(function(o){return t.normalizeLoadedTemplate(e,o,n)})},DirectiveNormalizer.prototype.normalizeLoadedTemplate=function(e,t,i){var s=c.b.fromArray(e.interpolation),l=this._htmlParser.parse(t,n.i(a.e)(e.componentType),!0,s);if(l.errors.length>0){var d=l.errors.join("\n");throw new h.c("Template parse errors:\n"+d)}var p=this.normalizeStylesheet(new r.k({styles:e.styles,styleUrls:e.styleUrls,moduleUrl:e.moduleUrl})),g=new v;u.g(g,l.rootNodes);var f=this.normalizeStylesheet(new r.k({styles:g.styles,styleUrls:g.styleUrls,moduleUrl:i})),m=e.encapsulation;n.i(a.g)(m)&&(m=this._config.defaultEncapsulation);var y=p.styles.concat(f.styles),b=p.styleUrls.concat(f.styleUrls);return m===o.ViewEncapsulation.Emulated&&0===y.length&&0===b.length&&(m=o.ViewEncapsulation.None),new r.l({encapsulation:m,template:t,templateUrl:i,styles:y,styleUrls:b,ngContentSelectors:g.ngContentSelectors,animations:e.animations,interpolation:e.interpolation})},DirectiveNormalizer.prototype.normalizeExternalStylesheets=function(e){return this._loadMissingExternalStylesheets(e.styleUrls).then(function(t){return new r.l({encapsulation:e.encapsulation,template:e.template,templateUrl:e.templateUrl,styles:e.styles,styleUrls:e.styleUrls,externalStylesheets:t,ngContentSelectors:e.ngContentSelectors,animations:e.animations,interpolation:e.interpolation})})},DirectiveNormalizer.prototype._loadMissingExternalStylesheets=function(e,t){var n=this;return void 0===t&&(t=new Map),Promise.all(e.filter(function(e){return!t.has(e)}).map(function(e){return n._fetch(e).then(function(o){var i=n.normalizeStylesheet(new r.k({styles:[o],moduleUrl:e}));return t.set(e,i),n._loadMissingExternalStylesheets(i.styleUrls,t)})})).then(function(e){return Array.from(t.values())})},DirectiveNormalizer.prototype.normalizeStylesheet=function(e){var t=this,o=e.styleUrls.filter(p.a).map(function(n){return t._urlResolver.resolve(e.moduleUrl,n)}),i=e.styles.map(function(r){var i=n.i(p.b)(t._urlResolver,e.moduleUrl,r);return o.push.apply(o,i.styleUrls),i.style});return new r.k({styles:i,styleUrls:o,moduleUrl:e.moduleUrl})},DirectiveNormalizer=m([n.i(s.a)(),y("design:paramtypes",[d.a,f.a,l.a,i.a])],DirectiveNormalizer)}(),v=function(){function TemplatePreparseVisitor(){this.ngContentSelectors=[],this.styles=[],this.styleUrls=[],this.ngNonBindableStackCount=0}return TemplatePreparseVisitor.prototype.visitElement=function(e,t){var o=n.i(g.a)(e);switch(o.type){case g.b.NG_CONTENT:0===this.ngNonBindableStackCount&&this.ngContentSelectors.push(o.selectAttr);break;case g.b.STYLE:var r="";e.children.forEach(function(e){e instanceof u.d&&(r+=e.value)}),this.styles.push(r);break;case g.b.STYLESHEET:this.styleUrls.push(o.hrefAttr)}return o.nonBindable&&this.ngNonBindableStackCount++,u.g(this,e.children),o.nonBindable&&this.ngNonBindableStackCount--,null},TemplatePreparseVisitor.prototype.visitExpansion=function(e,t){u.g(this,e.cases)},TemplatePreparseVisitor.prototype.visitExpansionCase=function(e,t){u.g(this,e.expression)},TemplatePreparseVisitor.prototype.visitComment=function(e,t){return null},TemplatePreparseVisitor.prototype.visitAttribute=function(e,t){return null},TemplatePreparseVisitor.prototype.visitText=function(e,t){return null},TemplatePreparseVisitor}()},function(e,t,n){"use strict";function isDirectiveMetadata(e){return e instanceof o.Directive}var o=n(1),r=n(85),i=n(7),a=n(20),s=n(17),u=n(32);n.d(t,"a",function(){return d});var l=this&&this.__decorate||function(e,t,n,o){var r,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,n):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,o);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(i<3?r(a):i>3?r(t,n,a):r(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},d=function(){function DirectiveResolver(e){void 0===e&&(e=s.a),this._reflector=e}return DirectiveResolver.prototype.isDirective=function(e){var t=this._reflector.annotations(n.i(o.resolveForwardRef)(e));return t&&t.some(isDirectiveMetadata)},DirectiveResolver.prototype.resolve=function(e,t){void 0===t&&(t=!0);var a=this._reflector.annotations(n.i(o.resolveForwardRef)(e));if(a){var s=r.a.findLast(a,isDirectiveMetadata);if(s){var u=this._reflector.propMetadata(e);
return this._mergeWithPropertyMetadata(s,u,e)}}if(t)throw new Error("No Directive annotation found on "+n.i(i.e)(e));return null},DirectiveResolver.prototype._mergeWithPropertyMetadata=function(e,t,n){var i=[],a=[],s={},u={};return Object.keys(t).forEach(function(e){var n=r.a.findLast(t[e],function(e){return e instanceof o.Input});n&&(n.bindingPropertyName?i.push(e+": "+n.bindingPropertyName):i.push(e));var l=r.a.findLast(t[e],function(e){return e instanceof o.Output});l&&(l.bindingPropertyName?a.push(e+": "+l.bindingPropertyName):a.push(e));var c=t[e].filter(function(e){return e&&e instanceof o.HostBinding});c.forEach(function(t){if(t.hostPropertyName){var n=t.hostPropertyName[0];if("("===n)throw new Error("@HostBinding can not bind to events. Use @HostListener instead.");if("["===n)throw new Error("@HostBinding parameter should be a property name, 'class.<name>', or 'attr.<name>'.");s["["+t.hostPropertyName+"]"]=e}else s["["+e+"]"]=e});var d=t[e].filter(function(e){return e&&e instanceof o.HostListener});d.forEach(function(t){var n=t.args||[];s["("+t.eventName+")"]=e+"("+n.join(",")+")"});var p=r.a.findLast(t[e],function(e){return e instanceof o.Query});p&&(u[e]=p)}),this._merge(e,i,a,s,u,n)},DirectiveResolver.prototype._extractPublicName=function(e){return n.i(u.a)(e,[null,e])[1].trim()},DirectiveResolver.prototype._dedupeBindings=function(e){for(var t=new Set,n=[],o=e.length-1;o>=0;o--){var r=e[o],i=this._extractPublicName(r);t.has(i)||(t.add(i),n.push(r))}return n.reverse()},DirectiveResolver.prototype._merge=function(e,t,n,i,a,s){var u=this._dedupeBindings(e.inputs?e.inputs.concat(t):t),l=this._dedupeBindings(e.outputs?e.outputs.concat(n):n),c=e.host?r.b.merge(e.host,i):i,d=e.queries?r.b.merge(e.queries,a):a;return e instanceof o.Component?new o.Component({selector:e.selector,inputs:u,outputs:l,host:c,exportAs:e.exportAs,moduleId:e.moduleId,queries:d,changeDetection:e.changeDetection,providers:e.providers,viewProviders:e.viewProviders,entryComponents:e.entryComponents,template:e.template,templateUrl:e.templateUrl,styles:e.styles,styleUrls:e.styleUrls,encapsulation:e.encapsulation,animations:e.animations,interpolation:e.interpolation}):new o.Directive({selector:e.selector,inputs:u,outputs:l,host:c,exportAs:e.exportAs,queries:d,providers:e.providers})},DirectiveResolver=l([n.i(a.a)(),c("design:paramtypes",[s.F])],DirectiveResolver)}()},function(e,t,n){"use strict";function newCharacterToken(e,t){return new d(e,u.Character,t,String.fromCharCode(t))}function newIdentifierToken(e,t){return new d(e,u.Identifier,0,t)}function newKeywordToken(e,t){return new d(e,u.Keyword,0,t)}function newOperatorToken(e,t){return new d(e,u.Operator,0,t)}function newStringToken(e,t){return new d(e,u.String,0,t)}function newNumberToken(e,t){return new d(e,u.Number,t,"")}function newErrorToken(e,t){return new d(e,u.Error,0,t)}function isIdentifierStart(e){return o.H<=e&&e<=o.I||o.J<=e&&e<=o.K||e==o.L||e==o.M}function isIdentifier(e){if(0==e.length)return!1;var t=new g(e);if(!isIdentifierStart(t.peek))return!1;for(t.advance();t.peek!==o.a;){if(!isIdentifierPart(t.peek))return!1;t.advance()}return!0}function isIdentifierPart(e){return o.N(e)||o.c(e)||e==o.L||e==o.M}function isExponentStart(e){return e==o.O||e==o.P}function isExponentSign(e){return e==o.r||e==o.q}function isQuote(e){return e===o.n||e===o.o||e===o.Q}function unescape(e){switch(e){case o.R:return o.S;case o.T:return o.U;case o.V:return o.W;case o.X:return o.Y;case o.Z:return o._0;default:return e}}var o=n(166),r=n(7),i=n(20);n.d(t,"e",function(){return u}),n.d(t,"c",function(){return c}),n.d(t,"d",function(){return p}),t.a=isIdentifier,t.b=isQuote;var a=this&&this.__decorate||function(e,t,n,o){var r,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,n):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,o);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(i<3?r(a):i>3?r(t,n,a):r(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},s=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},u={};u.Character=0,u.Identifier=1,u.Keyword=2,u.String=3,u.Operator=4,u.Number=5,u.Error=6,u[u.Character]="Character",u[u.Identifier]="Identifier",u[u.Keyword]="Keyword",u[u.String]="String",u[u.Operator]="Operator",u[u.Number]="Number",u[u.Error]="Error";var l=["var","let","null","undefined","true","false","if","else","this"],c=function(){function Lexer(){}return Lexer.prototype.tokenize=function(e){for(var t=new g(e),n=[],o=t.scanToken();null!=o;)n.push(o),o=t.scanToken();return n},Lexer=a([n.i(i.a)(),s("design:paramtypes",[])],Lexer)}(),d=function(){function Token(e,t,n,o){this.index=e,this.type=t,this.numValue=n,this.strValue=o}return Token.prototype.isCharacter=function(e){return this.type==u.Character&&this.numValue==e},Token.prototype.isNumber=function(){return this.type==u.Number},Token.prototype.isString=function(){return this.type==u.String},Token.prototype.isOperator=function(e){return this.type==u.Operator&&this.strValue==e},Token.prototype.isIdentifier=function(){return this.type==u.Identifier},Token.prototype.isKeyword=function(){return this.type==u.Keyword},Token.prototype.isKeywordLet=function(){return this.type==u.Keyword&&"let"==this.strValue},Token.prototype.isKeywordNull=function(){return this.type==u.Keyword&&"null"==this.strValue},Token.prototype.isKeywordUndefined=function(){return this.type==u.Keyword&&"undefined"==this.strValue},Token.prototype.isKeywordTrue=function(){return this.type==u.Keyword&&"true"==this.strValue},Token.prototype.isKeywordFalse=function(){return this.type==u.Keyword&&"false"==this.strValue},Token.prototype.isKeywordThis=function(){return this.type==u.Keyword&&"this"==this.strValue},Token.prototype.isError=function(){return this.type==u.Error},Token.prototype.toNumber=function(){return this.type==u.Number?this.numValue:-1},Token.prototype.toString=function(){switch(this.type){case u.Character:case u.Identifier:case u.Keyword:case u.Operator:case u.String:case u.Error:return this.strValue;case u.Number:return this.numValue.toString();default:return null}},Token}(),p=new d((-1),u.Character,0,""),g=function(){function _Scanner(e){this.input=e,this.peek=0,this.index=-1,this.length=e.length,this.advance()}return _Scanner.prototype.advance=function(){this.peek=++this.index>=this.length?o.a:this.input.charCodeAt(this.index)},_Scanner.prototype.scanToken=function(){for(var e=this.input,t=this.length,n=this.peek,r=this.index;n<=o.b;){if(++r>=t){n=o.a;break}n=e.charCodeAt(r)}if(this.peek=n,this.index=r,r>=t)return null;if(isIdentifierStart(n))return this.scanIdentifier();if(o.c(n))return this.scanNumber(r);var i=r;switch(n){case o.d:return this.advance(),o.c(this.peek)?this.scanNumber(i):newCharacterToken(i,o.d);case o.e:case o.f:case o.g:case o.h:case o.i:case o.j:case o.k:case o.l:case o.m:return this.scanCharacter(i,n);case o.n:case o.o:return this.scanString();case o.p:case o.q:case o.r:case o.s:case o.t:case o.u:case o.v:return this.scanOperator(i,String.fromCharCode(n));case o.w:return this.scanComplexOperator(i,"?",o.d,".");case o.x:case o.y:return this.scanComplexOperator(i,String.fromCharCode(n),o.z,"=");case o.A:case o.z:return this.scanComplexOperator(i,String.fromCharCode(n),o.z,"=",o.z,"=");case o.B:return this.scanComplexOperator(i,"&",o.B,"&");case o.C:return this.scanComplexOperator(i,"|",o.C,"|");case o.D:for(;o.E(this.peek);)this.advance();return this.scanToken()}return this.advance(),this.error("Unexpected character ["+String.fromCharCode(n)+"]",0)},_Scanner.prototype.scanCharacter=function(e,t){return this.advance(),newCharacterToken(e,t)},_Scanner.prototype.scanOperator=function(e,t){return this.advance(),newOperatorToken(e,t)},_Scanner.prototype.scanComplexOperator=function(e,t,n,o,r,i){this.advance();var a=t;return this.peek==n&&(this.advance(),a+=o),null!=r&&this.peek==r&&(this.advance(),a+=i),newOperatorToken(e,a)},_Scanner.prototype.scanIdentifier=function(){var e=this.index;for(this.advance();isIdentifierPart(this.peek);)this.advance();var t=this.input.substring(e,this.index);return l.indexOf(t)>-1?newKeywordToken(e,t):newIdentifierToken(e,t)},_Scanner.prototype.scanNumber=function(e){var t=this.index===e;for(this.advance();;){if(o.c(this.peek));else if(this.peek==o.d)t=!1;else{if(!isExponentStart(this.peek))break;if(this.advance(),isExponentSign(this.peek)&&this.advance(),!o.c(this.peek))return this.error("Invalid exponent",-1);t=!1}this.advance()}var n=this.input.substring(e,this.index),i=t?r.h.parseIntAutoRadix(n):parseFloat(n);return newNumberToken(e,i)},_Scanner.prototype.scanString=function(){var e=this.index,t=this.peek;this.advance();for(var n="",r=this.index,i=this.input;this.peek!=t;)if(this.peek==o.F){n+=i.substring(r,this.index),this.advance();var a=void 0;if(this.peek==o.G){var s=i.substring(this.index+1,this.index+5);if(!/^[0-9a-f]+$/i.test(s))return this.error("Invalid unicode escape [\\u"+s+"]",0);a=parseInt(s,16);for(var u=0;u<5;u++)this.advance()}else a=unescape(this.peek),this.advance();n+=String.fromCharCode(a),r=this.index}else{if(this.peek==o.a)return this.error("Unterminated quote",0);this.advance()}var l=i.substring(r,this.index);return this.advance(),newStringToken(e,n+l)},_Scanner.prototype.error=function(e,t){var n=this.index+t;return newErrorToken(n,"Lexer Error: "+e+" at column "+n+" in expression ["+this.input+"]")},_Scanner}()},function(e,t,n){"use strict";function flattenArray(e,t){if(void 0===t&&(t=[]),e)for(var r=0;r<e.length;r++){var i=n.i(o.resolveForwardRef)(e[r]);Array.isArray(i)?flattenArray(i,t):t.push(i)}return t}function dedupeArray(e){return e?Array.from(new Set(e)):[]}function flattenAndDedupeArray(e){return dedupeArray(flattenArray(e))}function isValidType(e){return e instanceof r.a||e instanceof o.Type}function componentModuleUrl(e,t,o){if(t instanceof r.a)return t.filePath;var i=o.moduleId;if("string"==typeof i){var a=n.i(b.b)(i);return a?i:"package:"+i+v.e}if(null!==i&&void 0!==i)throw new v.c('moduleId should be a string in "'+stringifyType(t)+"\". See https://goo.gl/wIDDiL for more information.\nIf you're using Webpack you should inline the template and the styles, see https://goo.gl/X2J8zc.");return e.importUri(t)}function extractIdentifiers(e,t){n.i(v.f)(e,new M,t)}function stringifyType(e){return e instanceof r.a?e.name+" in "+e.filePath:n.i(l.e)(e)}var o=n(1),r=n(71),i=n(351),a=n(14),s=n(123),u=n(124),l=n(7),c=n(19),d=n(20),p=n(623),g=n(127),f=n(128),h=n(17),m=n(75),y=n(251),b=n(88),v=n(32);n.d(t,"a",function(){return A});var _=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},E=this&&this.__decorate||function(e,t,n,o){var r,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,n):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,o);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(i<3?r(a):i>3?r(t,n,a):r(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},T=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},S=new o.OpaqueToken("ErrorCollector"),A=function(){function CompileMetadataResolver(e,t,n,o,r,i,a,s){void 0===a&&(a=h.a),this._ngModuleResolver=e,this._directiveResolver=t,this._pipeResolver=n,this._summaryResolver=o,this._schemaRegistry=r,this._directiveNormalizer=i,this._reflector=a,this._errorCollector=s,this._directiveCache=new Map,this._summaryCache=new Map,this._pipeCache=new Map,this._ngModuleCache=new Map,this._ngModuleOfTypes=new Map}return CompileMetadataResolver.prototype.clearCacheFor=function(e){var t=this._directiveCache.get(e);this._directiveCache.delete(e),this._summaryCache.delete(e),this._pipeCache.delete(e),this._ngModuleOfTypes.delete(e),this._ngModuleCache.clear(),t&&this._directiveNormalizer.clearCacheFor(t)},CompileMetadataResolver.prototype.clearCache=function(){this._directiveCache.clear(),this._summaryCache.clear(),this._pipeCache.clear(),this._ngModuleCache.clear(),this._ngModuleOfTypes.clear(),this._directiveNormalizer.clearCache()},CompileMetadataResolver.prototype.getAnimationEntryMetadata=function(e){var t=this,n=e.definitions.map(function(e){return t._getAnimationStateMetadata(e)});return new a.n(e.name,n)},CompileMetadataResolver.prototype._getAnimationStateMetadata=function(e){if(e instanceof o.AnimationStateDeclarationMetadata){var t=this._getAnimationStyleMetadata(e.styles);return new a.d(e.stateNameExpr,t)}return e instanceof o.AnimationStateTransitionMetadata?new a.o(e.stateChangeExpr,this._getAnimationMetadata(e.steps)):null},CompileMetadataResolver.prototype._getAnimationStyleMetadata=function(e){return new a.h(e.offset,e.styles)},CompileMetadataResolver.prototype._getAnimationMetadata=function(e){var t=this;if(e instanceof o.AnimationStyleMetadata)return this._getAnimationStyleMetadata(e);if(e instanceof o.AnimationKeyframesSequenceMetadata)return new a.j(e.steps.map(function(e){return t._getAnimationStyleMetadata(e)}));if(e instanceof o.AnimationAnimateMetadata){var n=this._getAnimationMetadata(e.styles);return new a.i(e.timings,n)}if(e instanceof o.AnimationWithStepsMetadata){var r=e.steps.map(function(e){return t._getAnimationMetadata(e)});return e instanceof o.AnimationGroupMetadata?new a.f(r):new a.e(r)}return null},CompileMetadataResolver.prototype._loadSummary=function(e,t){var n=this._summaryCache.get(e);if(!n){var o=this._summaryResolver.resolveSummary(e);n=o?o.type:null,this._summaryCache.set(e,n)}return n&&n.summaryKind===t?n:null},CompileMetadataResolver.prototype._loadDirectiveMetadata=function(e,t){var r=this;if(!this._directiveCache.has(e)){e=n.i(o.resolveForwardRef)(e);var i=this.getNonNormalizedDirectiveMetadata(e),s=i.annotation,u=i.metadata,l=function(t){var n=new a.p({type:u.type,isComponent:u.isComponent,selector:u.selector,exportAs:u.exportAs,changeDetection:u.changeDetection,inputs:u.inputs,outputs:u.outputs,hostListeners:u.hostListeners,hostProperties:u.hostProperties,hostAttributes:u.hostAttributes,providers:u.providers,viewProviders:u.viewProviders,queries:u.queries,viewQueries:u.viewQueries,entryComponents:u.entryComponents,template:t});return r._directiveCache.set(e,n),r._summaryCache.set(e,n.toSummary()),n};if(u.isComponent){var c=this._directiveNormalizer.normalizeTemplate({componentType:e,moduleUrl:componentModuleUrl(this._reflector,e,s),encapsulation:u.template.encapsulation,template:u.template.template,templateUrl:u.template.templateUrl,styles:u.template.styles,styleUrls:u.template.styleUrls,animations:u.template.animations,interpolation:u.template.interpolation});return c.syncResult?(l(c.syncResult),null):t?(this._reportError(new h.I(e),e),null):c.asyncResult.then(l)}return l(null),null}},CompileMetadataResolver.prototype.getNonNormalizedDirectiveMetadata=function(e){var t=this;e=n.i(o.resolveForwardRef)(e);var r=this._directiveResolver.resolve(e);if(!r)return null;var s;if(r instanceof o.Component){n.i(i.b)("styles",r.styles),n.i(i.b)("styleUrls",r.styleUrls),n.i(i.a)("interpolation",r.interpolation);var u=r.animations?r.animations.map(function(e){return t.getAnimationEntryMetadata(e)}):null;s=new a.l({encapsulation:r.encapsulation,template:r.template,templateUrl:r.templateUrl,styles:r.styles,styleUrls:r.styleUrls,animations:u,interpolation:r.interpolation})}var c=null,d=[],p=[],g=r.selector;r instanceof o.Component?(c=r.changeDetection,r.viewProviders&&(d=this._getProvidersMetadata(r.viewProviders,p,'viewProviders for "'+stringifyType(e)+'"',[],e)),r.entryComponents&&(p=flattenAndDedupeArray(r.entryComponents).map(function(e){return t._getIdentifierMetadata(e)}).concat(p)),g||(g=this._schemaRegistry.getDefaultComponentElementName())):g||(this._reportError(new v.c("Directive "+stringifyType(e)+" has no selector, please add it!"),e),g="error");var f=[];n.i(l.f)(r.providers)&&(f=this._getProvidersMetadata(r.providers,p,'providers for "'+stringifyType(e)+'"',[],e));var h=[],m=[];n.i(l.f)(r.queries)&&(h=this._getQueriesMetadata(r.queries,!1,e),m=this._getQueriesMetadata(r.queries,!0,e));var y=a.p.create({selector:g,exportAs:r.exportAs,isComponent:!!s,type:this._getTypeMetadata(e),template:s,changeDetection:c,inputs:r.inputs,outputs:r.outputs,host:r.host,providers:f,viewProviders:d,queries:h,viewQueries:m,entryComponents:p});return{metadata:y,annotation:r}},CompileMetadataResolver.prototype.getDirectiveMetadata=function(e){var t=this._directiveCache.get(e);return t||this._reportError(new v.c("Illegal state: getDirectiveMetadata can only be called after loadNgModuleDirectiveAndPipeMetadata for a module that declares it. Directive "+stringifyType(e)+"."),e),t},CompileMetadataResolver.prototype.getDirectiveSummary=function(e){var t=this._loadSummary(e,a.q.Directive);return t||this._reportError(new v.c("Illegal state: Could not load the summary for directive "+stringifyType(e)+"."),e),t},CompileMetadataResolver.prototype.isDirective=function(e){return this._directiveResolver.isDirective(e)},CompileMetadataResolver.prototype.isPipe=function(e){return this._pipeResolver.isPipe(e)},CompileMetadataResolver.prototype.getNgModuleSummary=function(e){var t=this._loadSummary(e,a.q.NgModule);if(!t){var n=this.getNgModuleMetadata(e,!1);t=n?n.toSummary():null,t&&this._summaryCache.set(e,t)}return t},CompileMetadataResolver.prototype.loadNgModuleDirectiveAndPipeMetadata=function(e,t,n){var o=this;void 0===n&&(n=!0);var r=this.getNgModuleMetadata(e,n),i=[];return r&&(r.declaredDirectives.forEach(function(e){var n=o._loadDirectiveMetadata(e.reference,t);n&&i.push(n)}),r.declaredPipes.forEach(function(e){return o._loadPipeMetadata(e.reference)})),Promise.all(i)},CompileMetadataResolver.prototype.getNgModuleMetadata=function(e,t){var r=this;void 0===t&&(t=!0),e=n.i(o.resolveForwardRef)(e);var i=this._ngModuleCache.get(e);if(i)return i;var s=this._ngModuleResolver.resolve(e,t);if(!s)return null;var u=[],l=[],c=[],d=[],p=[],g=[],f=[],h=[],m=[];s.imports&&flattenAndDedupeArray(s.imports).forEach(function(t){var n;if(isValidType(t))n=t;else if(t&&t.ngModule){var o=t;n=o.ngModule,o.providers&&g.push.apply(g,r._getProvidersMetadata(o.providers,f,"provider for the NgModule '"+stringifyType(n)+"'",[],t))}if(!n)return void r._reportError(new v.c("Unexpected value '"+stringifyType(t)+"' imported by the module '"+stringifyType(e)+"'"),e);var i=r.getNgModuleSummary(n);return i?void d.push(i):void r._reportError(new v.c("Unexpected "+r._getTypeDescriptor(t)+" '"+stringifyType(t)+"' imported by the module '"+stringifyType(e)+"'"),e)}),s.exports&&flattenAndDedupeArray(s.exports).forEach(function(t){if(!isValidType(t))return void r._reportError(new v.c("Unexpected value '"+stringifyType(t)+"' exported by the module '"+stringifyType(e)+"'"),e);var n=r.getNgModuleSummary(t);n?p.push(n):l.push(r._getIdentifierMetadata(t))});var y=this._getTransitiveNgModuleMetadata(d,p);s.declarations&&flattenAndDedupeArray(s.declarations).forEach(function(t){if(!isValidType(t))return void r._reportError(new v.c("Unexpected value '"+stringifyType(t)+"' declared by the module '"+stringifyType(e)+"'"),e);var n=r._getIdentifierMetadata(t);if(r._directiveResolver.isDirective(t))y.addDirective(n),u.push(n),r._addTypeToModule(t,e);else{if(!r._pipeResolver.isPipe(t))return void r._reportError(new v.c("Unexpected "+r._getTypeDescriptor(t)+" '"+stringifyType(t)+"' declared by the module '"+stringifyType(e)+"'"),e);y.addPipe(n),y.pipes.push(n),c.push(n),r._addTypeToModule(t,e)}});var b=[],_=[];return l.forEach(function(t){y.directivesSet.has(t.reference)?(b.push(t),y.addExportedDirective(t)):y.pipesSet.has(t.reference)?(_.push(t),y.addExportedPipe(t)):r._reportError(new v.c("Can't export "+r._getTypeDescriptor(t.reference)+" "+stringifyType(t.reference)+" from "+stringifyType(e)+" as it was neither declared nor imported!"),e)}),s.providers&&g.push.apply(g,this._getProvidersMetadata(s.providers,f,"provider for the NgModule '"+stringifyType(e)+"'",[],e)),s.entryComponents&&f.push.apply(f,flattenAndDedupeArray(s.entryComponents).map(function(e){return r._getIdentifierMetadata(e)})),s.bootstrap&&flattenAndDedupeArray(s.bootstrap).forEach(function(t){return isValidType(t)?void h.push(r._getIdentifierMetadata(t)):void r._reportError(new v.c("Unexpected value '"+stringifyType(t)+"' used in the bootstrap property of module '"+stringifyType(e)+"'"),e)}),f.push.apply(f,h),s.schemas&&m.push.apply(m,flattenAndDedupeArray(s.schemas)),i=new a.r({type:this._getTypeMetadata(e),providers:g,entryComponents:f,bootstrapComponents:h,schemas:m,declaredDirectives:u,exportedDirectives:b,declaredPipes:c,exportedPipes:_,importedModules:d,exportedModules:p,transitiveModule:y,id:s.id}),f.forEach(function(e){return y.addEntryComponent(e)}),g.forEach(function(e){return y.addProvider(e,i.type)}),y.addModule(i.type),this._ngModuleCache.set(e,i),i},CompileMetadataResolver.prototype._getTypeDescriptor=function(e){return this._directiveResolver.isDirective(e)?"directive":this._pipeResolver.isPipe(e)?"pipe":this._ngModuleResolver.isNgModule(e)?"module":e.provide?"provider":"value"},CompileMetadataResolver.prototype._addTypeToModule=function(e,t){var n=this._ngModuleOfTypes.get(e);n&&n!==t&&this._reportError(new v.c("Type "+stringifyType(e)+" is part of the declarations of 2 modules: "+stringifyType(n)+" and "+stringifyType(t)+"! "+("Please consider moving "+stringifyType(e)+" to a higher module that imports "+stringifyType(n)+" and "+stringifyType(t)+". ")+("You can also create a new NgModule that exports and includes "+stringifyType(e)+" then import that NgModule in "+stringifyType(n)+" and "+stringifyType(t)+".")),t),this._ngModuleOfTypes.set(e,t)},CompileMetadataResolver.prototype._getTransitiveNgModuleMetadata=function(e,t){var n=new a.s,o=new Map;return e.concat(t).forEach(function(e){e.modules.forEach(function(e){return n.addModule(e)}),e.entryComponents.forEach(function(e){return n.addEntryComponent(e)});var t=new Set;e.providers.forEach(function(e){var r=a.a(e.provider.token),i=o.get(r);i||(i=new Set,o.set(r,i));var s=e.module.reference;!t.has(r)&&i.has(s)||(i.add(s),t.add(r),n.addProvider(e.provider,e.module))})}),t.forEach(function(e){e.exportedDirectives.forEach(function(e){return n.addExportedDirective(e)}),e.exportedPipes.forEach(function(e){return n.addExportedPipe(e)})}),e.forEach(function(e){e.exportedDirectives.forEach(function(e){return n.addDirective(e)}),e.exportedPipes.forEach(function(e){return n.addPipe(e)})}),n},CompileMetadataResolver.prototype._getIdentifierMetadata=function(e){return e=n.i(o.resolveForwardRef)(e),{reference:e}},CompileMetadataResolver.prototype.isInjectable=function(e){var t=this._reflector.annotations(e);return t.some(function(e){return e.constructor===o.Injectable})},CompileMetadataResolver.prototype.getInjectableSummary=function(e){return{summaryKind:a.q.Injectable,type:this._getTypeMetadata(e)}},CompileMetadataResolver.prototype._getInjectableMetadata=function(e,t){void 0===t&&(t=null);var n=this._loadSummary(e,a.q.Injectable);return n?n.type:this._getTypeMetadata(e,t)},CompileMetadataResolver.prototype._getTypeMetadata=function(e,t){void 0===t&&(t=null);var o=this._getIdentifierMetadata(e);return{reference:o.reference,diDeps:this._getDependenciesMetadata(o.reference,t),lifecycleHooks:h.J.filter(function(e){return n.i(p.a)(e,o.reference)})}},CompileMetadataResolver.prototype._getFactoryMetadata=function(e,t){return void 0===t&&(t=null),e=n.i(o.resolveForwardRef)(e),{reference:e,diDeps:this._getDependenciesMetadata(e,t)}},CompileMetadataResolver.prototype.getPipeMetadata=function(e){var t=this._pipeCache.get(e);return t||this._reportError(new v.c("Illegal state: getPipeMetadata can only be called after loadNgModuleDirectiveAndPipeMetadata for a module that declares it. Pipe "+stringifyType(e)+"."),e),t},CompileMetadataResolver.prototype.getPipeSummary=function(e){var t=this._loadSummary(e,a.q.Pipe);return t||this._reportError(new v.c("Illegal state: Could not load the summary for pipe "+stringifyType(e)+"."),e),t},CompileMetadataResolver.prototype.getOrLoadPipeMetadata=function(e){var t=this._pipeCache.get(e);return t||(t=this._loadPipeMetadata(e)),t},CompileMetadataResolver.prototype._loadPipeMetadata=function(e){e=n.i(o.resolveForwardRef)(e);var t=this._pipeResolver.resolve(e),r=new a.t({type:this._getTypeMetadata(e),name:t.name,pure:t.pure});return this._pipeCache.set(e,r),this._summaryCache.set(e,r.toSummary()),r},CompileMetadataResolver.prototype._getDependenciesMetadata=function(e,t){var r=this,i=!1,a=t||this._reflector.parameters(e)||[],s=a.map(function(e){var t=!1,a=!1,s=!1,u=!1,c=!1,d=null;return Array.isArray(e)?e.forEach(function(e){e instanceof o.Host?a=!0:e instanceof o.Self?s=!0:e instanceof o.SkipSelf?u=!0:e instanceof o.Optional?c=!0:e instanceof o.Attribute?(t=!0,d=e.attributeName):e instanceof o.Inject?d=e.token:isValidType(e)&&n.i(l.g)(d)&&(d=e)}):d=e,n.i(l.g)(d)?(i=!0,null):{isAttribute:t,isHost:a,isSelf:s,isSkipSelf:u,isOptional:c,token:r._getTokenMetadata(d)}});if(i){var u=s.map(function(e){return e?stringifyType(e.token):"?"}).join(", ");this._reportError(new v.c("Can't resolve all parameters for "+stringifyType(e)+": ("+u+")."),e)}return s},CompileMetadataResolver.prototype._getTokenMetadata=function(e){e=n.i(o.resolveForwardRef)(e);var t;return t="string"==typeof e?{value:e}:{identifier:{reference:e}}},CompileMetadataResolver.prototype._getProvidersMetadata=function(e,t,r,i,s){var u=this;return void 0===i&&(i=[]),e.forEach(function(l,d){if(Array.isArray(l))u._getProvidersMetadata(l,t,r,i);else{l=n.i(o.resolveForwardRef)(l);var p=void 0;if(l&&"object"==typeof l&&l.hasOwnProperty("provide"))p=new a.u(l.provide,l);else if(isValidType(l))p=new a.u(l,{useClass:l});else{var g=e.reduce(function(e,t,n){return n<d?e.push(""+stringifyType(t)):n==d?e.push("?"+stringifyType(t)+"?"):n==d+1&&e.push("..."),e},[]).join(", ");u._reportError(new v.c("Invalid "+(r?r:"provider")+" - only instances of Provider and Type are allowed, got: ["+g+"]"),s)}p.token===n.i(c.a)(c.b.ANALYZE_FOR_ENTRY_COMPONENTS)?t.push.apply(t,u._getEntryComponentsFromProvider(p,s)):i.push(u.getProviderMetadata(p))}}),i},CompileMetadataResolver.prototype._getEntryComponentsFromProvider=function(e,t){var n=this,o=[],r=[];return e.useFactory||e.useExisting||e.useClass?(this._reportError(new v.c("The ANALYZE_FOR_ENTRY_COMPONENTS token only supports useValue!"),t),[]):e.multi?(extractIdentifiers(e.useValue,r),r.forEach(function(e){(n._directiveResolver.isDirective(e.reference)||n._loadSummary(e.reference,a.q.Directive))&&o.push(e)}),o):(this._reportError(new v.c("The ANALYZE_FOR_ENTRY_COMPONENTS token only supports 'multi = true'!"),t),[])},CompileMetadataResolver.prototype.getProviderMetadata=function(e){var t,n=null,o=null,r=this._getTokenMetadata(e.token);return e.useClass?(n=this._getInjectableMetadata(e.useClass,e.dependencies),t=n.diDeps,e.token===e.useClass&&(r={identifier:n})):e.useFactory&&(o=this._getFactoryMetadata(e.useFactory,e.dependencies),t=o.diDeps),{token:r,useClass:n,useValue:e.useValue,useFactory:o,useExisting:e.useExisting?this._getTokenMetadata(e.useExisting):null,deps:t,multi:e.multi}},CompileMetadataResolver.prototype._getQueriesMetadata=function(e,t,n){var o=this,r=[];return Object.keys(e).forEach(function(i){var a=e[i];a.isViewQuery===t&&r.push(o._getQueryMetadata(a,i,n))}),r},CompileMetadataResolver.prototype._queryVarBindings=function(e){return e.split(/\s*,\s*/)},CompileMetadataResolver.prototype._getQueryMetadata=function(e,t,n){var o,r=this;return"string"==typeof e.selector?o=this._queryVarBindings(e.selector).map(function(e){return r._getTokenMetadata(e)}):(e.selector||this._reportError(new v.c("Can't construct a query for the property \""+t+'" of "'+stringifyType(n)+"\" since the query selector wasn't defined."),n),o=[this._getTokenMetadata(e.selector)]),{selectors:o,first:e.first,descendants:e.descendants,propertyName:t,read:e.read?this._getTokenMetadata(e.read):null}},CompileMetadataResolver.prototype._reportError=function(e,t,n){if(!this._errorCollector)throw e;this._errorCollector(e,t),n&&this._errorCollector(e,n)},CompileMetadataResolver.ctorParameters=function(){return[{type:g.a},{type:u.a},{type:f.a},{type:y.a},{type:m.a},{type:s.a},{type:h.F},{type:void 0,decorators:[{type:o.Optional},{type:o.Inject,args:[S]}]}]},CompileMetadataResolver=E([n.i(d.a)(),T("design:paramtypes",[g.a,u.a,f.a,y.a,m.a,s.a,h.F,Function])],CompileMetadataResolver)}(),M=function(e){function _CompileValueConverter(){e.apply(this,arguments)}return _(_CompileValueConverter,e),_CompileValueConverter.prototype.visitOther=function(e,t){t.push({reference:e})},_CompileValueConverter}(v.g)},function(e,t,n){"use strict";function _isNgModuleMetadata(e){return e instanceof o.NgModule}var o=n(1),r=n(85),i=n(7),a=n(20),s=n(17);n.d(t,"a",function(){return c});var u=this&&this.__decorate||function(e,t,n,o){var r,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,n):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,o);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(i<3?r(a):i>3?r(t,n,a):r(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},l=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},c=function(){function NgModuleResolver(e){void 0===e&&(e=s.a),this._reflector=e}return NgModuleResolver.prototype.isNgModule=function(e){return this._reflector.annotations(e).some(_isNgModuleMetadata)},NgModuleResolver.prototype.resolve=function(e,t){void 0===t&&(t=!0);var o=r.a.findLast(this._reflector.annotations(e),_isNgModuleMetadata);if(o)return o;if(t)throw new Error("No NgModule metadata found for '"+n.i(i.e)(e)+"'.");return null},NgModuleResolver=u([n.i(a.a)(),l("design:paramtypes",[s.F])],NgModuleResolver)}()},function(e,t,n){"use strict";function _isPipeMetadata(e){return e instanceof o.Pipe}var o=n(1),r=n(85),i=n(7),a=n(20),s=n(17);n.d(t,"a",function(){return c});var u=this&&this.__decorate||function(e,t,n,o){var r,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,n):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,o);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(i<3?r(a):i>3?r(t,n,a):r(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},l=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},c=function(){function PipeResolver(e){void 0===e&&(e=s.a),this._reflector=e}return PipeResolver.prototype.isPipe=function(e){var t=this._reflector.annotations(n.i(o.resolveForwardRef)(e));return t&&t.some(_isPipeMetadata)},PipeResolver.prototype.resolve=function(e,t){void 0===t&&(t=!0);var a=this._reflector.annotations(n.i(o.resolveForwardRef)(e));if(a){var s=r.a.findLast(a,_isPipeMetadata);if(s)return s}if(t)throw new Error("No Pipe decorator found on "+n.i(i.e)(e));return null},PipeResolver=u([n.i(a.a)(),l("design:paramtypes",[s.F])],PipeResolver)}()},function(e,t,n){"use strict";function splitClasses(e){return e.trim().split(/\s+/g)}function createElementCssSelector(e,t){var o=new v.a,r=n.i(f.e)(e)[1];o.setElement(r);for(var i=0;i<t.length;i++){var a=t[i][0],s=n.i(f.e)(a)[1],u=t[i][1];if(o.addAttribute(s,u),a.toLowerCase()==W){var l=splitClasses(u);l.forEach(function(e){return o.addClassName(e)})}}return o}function _isEmptyTextNode(e){return e instanceof c.d&&0==e.value.trim().length}function removeSummaryDuplicates(e){var t=new Map;return e.forEach(function(e){t.get(e.type.reference)||t.set(e.type.reference,e)}),Array.from(t.values())}var o=n(1),r=n(14),i=n(106),a=n(7),s=n(168),u=n(19),l=n(20),c=n(74),d=n(86),p=n(624),g=n(47),f=n(87),h=n(40),m=n(17),y=n(364),b=n(75),v=n(173),_=n(365),E=n(32),T=n(366),S=n(48),A=n(367);n.d(t,"a",function(){return G});var M=this&&this.__extends||function(e,t){
function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},C=this&&this.__decorate||function(e,t,n,o){var r,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,n):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,o);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(i<3?r(a):i>3?r(t,n,a):r(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},k=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},R=/^(?:(?:(?:(bind-)|(let-)|(ref-|#)|(on-)|(bindon-)|(@))(.+))|\[\(([^\)]+)\)\]|\[([^\]]+)\]|\(([^\)]+)\))$/,N=1,O=2,D=3,w=4,I=5,x=6,B=7,L=8,P=9,H=10,F="template",U="template",V="*",W="class",j=v.a.parse("*")[0],$=new o.OpaqueToken("TemplateTransforms"),Y=function(e){function TemplateParseError(t,n,o){e.call(this,n,t,o)}return M(TemplateParseError,e),TemplateParseError}(h.a),K=function(){function TemplateParseResult(e,t){this.templateAst=e,this.errors=t}return TemplateParseResult}(),G=function(){function TemplateParser(e,t,n,o,r){this._exprParser=e,this._schemaRegistry=t,this._htmlParser=n,this._console=o,this.transforms=r}return TemplateParser.prototype.parse=function(e,t,n,o,r,i){var a=this.tryParse(e,t,n,o,r,i),s=a.errors.filter(function(e){return e.level===h.e.WARNING}),u=a.errors.filter(function(e){return e.level===h.e.FATAL});if(s.length>0&&this._console.warn("Template parse warnings:\n"+s.join("\n")),u.length>0){var l=u.join("\n");throw new E.c("Template parse errors:\n"+l)}return a.templateAst},TemplateParser.prototype.tryParse=function(e,t,n,o,r,i){return this.tryParseHtml(this.expandHtml(this._htmlParser.parse(t,i,!0,this.getInterpolationConfig(e))),e,t,n,o,r,i)},TemplateParser.prototype.tryParseHtml=function(e,t,o,r,i,a,s){var u,l=e.errors;if(e.rootNodes.length>0){var d=removeSummaryDuplicates(r),p=removeSummaryDuplicates(i),g=new y.a(t,e.rootNodes[0].sourceSpan),f=void 0;t.template&&t.template.interpolation&&(f={start:t.template.interpolation[0],end:t.template.interpolation[1]});var h=new T.a(this._exprParser,f,this._schemaRegistry,p,l),m=new z(g,d,h,this._schemaRegistry,a,l);u=c.g(m,e.rootNodes,J),l.push.apply(l,g.errors)}else u=[];return this._assertNoReferenceDuplicationOnTemplate(u,l),l.length>0?new K(u,l):(this.transforms&&this.transforms.forEach(function(e){u=n.i(S.g)(e,u)}),new K(u,l))},TemplateParser.prototype.expandHtml=function(e,t){void 0===t&&(t=!1);var o=e.errors;if(0==o.length||t){var r=n.i(p.a)(e.rootNodes);o.push.apply(o,r.errors),e=new d.b(r.nodes,o)}return e},TemplateParser.prototype.getInterpolationConfig=function(e){if(e.template)return g.b.fromArray(e.template.interpolation)},TemplateParser.prototype._assertNoReferenceDuplicationOnTemplate=function(e,t){var n=[];e.filter(function(e){return!!e.references}).forEach(function(e){return e.references.forEach(function(e){var o=e.name;if(n.indexOf(o)<0)n.push(o);else{var r=new Y('Reference "#'+o+'" is defined several times',e.sourceSpan,h.e.FATAL);t.push(r)}})})},TemplateParser.ctorParameters=function(){return[{type:i.a},{type:b.a},{type:s.a},{type:m.C},{type:Array,decorators:[{type:o.Optional},{type:o.Inject,args:[$]}]}]},TemplateParser=C([n.i(l.a)(),k("design:paramtypes",[i.a,b.a,s.a,m.C,Array])],TemplateParser)}(),z=function(){function TemplateParseVisitor(e,t,n,o,r,i){var a=this;this.providerViewContext=e,this._bindingParser=n,this._schemaRegistry=o,this._schemas=r,this._targetErrors=i,this.selectorMatcher=new v.b,this.directivesIndex=new Map,this.ngContentCount=0,t.forEach(function(e,t){var n=v.a.parse(e.selector);a.selectorMatcher.addSelectables(n,e),a.directivesIndex.set(e,t)})}return TemplateParseVisitor.prototype.visitExpansion=function(e,t){return null},TemplateParseVisitor.prototype.visitExpansionCase=function(e,t){return null},TemplateParseVisitor.prototype.visitText=function(e,t){var n=t.findNgContentIndex(j),o=this._bindingParser.parseInterpolation(e.value,e.sourceSpan);return o?new S.h(o,n,e.sourceSpan):new S.i(e.value,n,e.sourceSpan)},TemplateParseVisitor.prototype.visitAttribute=function(e,t){return new S.j(e.name,e.value,e.sourceSpan)},TemplateParseVisitor.prototype.visitComment=function(e,t){return null},TemplateParseVisitor.prototype.visitElement=function(e,t){var o=this,r=e.name,i=n.i(A.a)(e);if(i.type===A.b.SCRIPT||i.type===A.b.STYLE)return null;if(i.type===A.b.STYLESHEET&&n.i(_.a)(i.hrefAttr))return null;var s=[],u=[],l=[],d=[],p=[],g=[],h=[],m=[],b=!1,E=[],T=n.i(f.e)(r.toLowerCase())[1],M=T==F;e.attrs.forEach(function(e){var t,r,i=o._parseAttr(M,e,s,u,p,l,d),c=o._normalizeAttributeName(e.name);c==U?t=e.value:c.startsWith(V)&&(t=e.value,r=c.substring(V.length)+":");var f=n.i(a.f)(t);f&&(b&&o._reportError("Can't have multiple template bindings on one element. Use only one attribute named 'template' or prefixed with *",e.sourceSpan),b=!0,o._bindingParser.parseInlineTemplateBinding(r,t,e.sourceSpan,h,g,m)),i||f||(E.push(o.visitAttribute(e,null)),s.push([e.name,e.value]))});var C=createElementCssSelector(r,s),k=this._parseDirectives(this.selectorMatcher,C),R=k.directives,N=k.matchElement,O=[],D=this._createDirectiveAsts(M,e.name,R,u,l,e.sourceSpan,O),w=this._createElementPropertyAsts(e.name,u,D),I=t.isTemplateElement||b,x=new y.b(this.providerViewContext,t.providerContext,I,D,E,O,e.sourceSpan),B=c.g(i.nonBindable?Z:this,e.children,X.create(M,D,M?t.providerContext:x));x.afterElement();var L,P=n.i(a.f)(i.projectAs)?v.a.parse(i.projectAs)[0]:C,H=t.findNgContentIndex(P);if(i.type===A.b.NG_CONTENT)e.children&&!e.children.every(_isEmptyTextNode)&&this._reportError("<ng-content> element cannot have content.",e.sourceSpan),L=new S.k((this.ngContentCount++),b?null:H,e.sourceSpan);else if(M)this._assertAllEventsPublishedByDirectives(D,p),this._assertNoComponentsNorElementBindingsOnTemplate(D,w,e.sourceSpan),L=new S.l(E,p,O,d,x.transformedDirectiveAsts,x.transformProviders,x.transformedHasViewContainer,B,b?null:H,e.sourceSpan);else{this._assertElementExists(N,e),this._assertOnlyOneComponent(D,e.sourceSpan);var W=b?null:t.findNgContentIndex(P);L=new S.m(r,E,w,p,O,x.transformedDirectiveAsts,x.transformProviders,x.transformedHasViewContainer,B,b?null:W,e.sourceSpan,e.endSourceSpan),this._findComponentDirectives(D).forEach(function(e){return o._validateElementAnimationInputOutputs(e.hostProperties,e.hostEvents,e.directive.template)});var j=x.viewContext.component.template;this._validateElementAnimationInputOutputs(w,p,j.toSummary())}if(b){var $=createElementCssSelector(F,h),Y=this._parseDirectives(this.selectorMatcher,$).directives,K=this._createDirectiveAsts(!0,e.name,Y,g,[],e.sourceSpan,[]),G=this._createElementPropertyAsts(e.name,g,K);this._assertNoComponentsNorElementBindingsOnTemplate(K,G,e.sourceSpan);var z=new y.b(this.providerViewContext,t.providerContext,t.isTemplateElement,K,[],[],e.sourceSpan);z.afterElement(),L=new S.l([],[],[],m,z.transformedDirectiveAsts,z.transformProviders,z.transformedHasViewContainer,[L],H,e.sourceSpan)}return L},TemplateParseVisitor.prototype._validateElementAnimationInputOutputs=function(e,t,n){var o=this,r=new Set;n.animations.forEach(function(e){r.add(e)});var i=e.filter(function(e){return e.isAnimation});i.forEach(function(e){var t=e.name;r.has(t)||o._reportError("Couldn't find an animation entry for \""+t+'"',e.sourceSpan)}),t.forEach(function(e){if(e.isAnimation){var t=i.find(function(t){return t.name==e.name});t||o._reportError("Unable to listen on (@"+e.name+"."+e.phase+") because the animation trigger [@"+e.name+"] isn't being used on the same element",e.sourceSpan)}})},TemplateParseVisitor.prototype._parseAttr=function(e,t,o,r,i,s,u){var l=this._normalizeAttributeName(t.name),c=t.value,d=t.sourceSpan,p=l.match(R),g=!1;if(null!==p)if(g=!0,n.i(a.f)(p[N]))this._bindingParser.parsePropertyBinding(p[B],c,!1,d,o,r);else if(p[O])if(e){var f=p[B];this._parseVariable(f,c,d,u)}else this._reportError('"let-" is only supported on template elements.',d);else if(p[D]){var f=p[B];this._parseReference(f,c,d,s)}else p[w]?this._bindingParser.parseEvent(p[B],c,d,o,i):p[I]?(this._bindingParser.parsePropertyBinding(p[B],c,!1,d,o,r),this._parseAssignmentEvent(p[B],c,d,o,i)):p[x]?this._bindingParser.parseLiteralAttr(l,c,d,o,r):p[L]?(this._bindingParser.parsePropertyBinding(p[L],c,!1,d,o,r),this._parseAssignmentEvent(p[L],c,d,o,i)):p[P]?this._bindingParser.parsePropertyBinding(p[P],c,!1,d,o,r):p[H]&&this._bindingParser.parseEvent(p[H],c,d,o,i);else g=this._bindingParser.parsePropertyInterpolation(l,c,d,o,r);return g||this._bindingParser.parseLiteralAttr(l,c,d,o,r),g},TemplateParseVisitor.prototype._normalizeAttributeName=function(e){return/^data-/i.test(e)?e.substring(5):e},TemplateParseVisitor.prototype._parseVariable=function(e,t,n,o){e.indexOf("-")>-1&&this._reportError('"-" is not allowed in variable names',n),o.push(new S.c(e,t,n))},TemplateParseVisitor.prototype._parseReference=function(e,t,n,o){e.indexOf("-")>-1&&this._reportError('"-" is not allowed in reference names',n),o.push(new Q(e,t,n))},TemplateParseVisitor.prototype._parseAssignmentEvent=function(e,t,n,o,r){this._bindingParser.parseEvent(e+"Change",t+"=$event",n,o,r)},TemplateParseVisitor.prototype._parseDirectives=function(e,t){var n=this,o=new Array(this.directivesIndex.size),r=!1;return e.match(t,function(e,t){o[n.directivesIndex.get(t)]=t,r=r||e.hasElementSelector()}),{directives:o.filter(function(e){return!!e}),matchElement:r}},TemplateParseVisitor.prototype._createDirectiveAsts=function(e,t,o,i,a,s,l){var c=this,d=new Set,p=null,g=o.map(function(e){var o=new h.d(s.start,s.end,"Directive "+n.i(r.c)(e.type));e.isComponent&&(p=e);var g=[],f=c._bindingParser.createDirectiveHostPropertyAsts(e,o);c._checkPropertiesInSchema(t,f);var m=c._bindingParser.createDirectiveHostEventAsts(e,o);return c._createDirectivePropertyAsts(e.inputs,i,g),a.forEach(function(t){(0===t.value.length&&e.isComponent||e.exportAs==t.value)&&(l.push(new S.n(t.name,n.i(u.c)(e.type),t.sourceSpan)),d.add(t.name))}),new S.o(e,g,f,m,o)});return a.forEach(function(t){if(t.value.length>0)d.has(t.name)||c._reportError('There is no directive with "exportAs" set to "'+t.value+'"',t.sourceSpan);else if(!p){var o=null;e&&(o=n.i(u.d)(u.b.TemplateRef)),l.push(new S.n(t.name,o,t.sourceSpan))}}),g},TemplateParseVisitor.prototype._createDirectivePropertyAsts=function(e,t,n){if(e){var o=new Map;t.forEach(function(e){var t=o.get(e.name);t&&!t.isLiteral||o.set(e.name,e)}),Object.keys(e).forEach(function(t){var r=e[t],i=o.get(r);i&&n.push(new S.p(t,i.name,i.expression,i.sourceSpan))})}},TemplateParseVisitor.prototype._createElementPropertyAsts=function(e,t,n){var o=this,r=[],i=new Map;return n.forEach(function(e){e.inputs.forEach(function(e){i.set(e.templateName,e)})}),t.forEach(function(t){t.isLiteral||i.get(t.name)||r.push(o._bindingParser.createElementPropertyAst(e,t))}),this._checkPropertiesInSchema(e,r),r},TemplateParseVisitor.prototype._findComponentDirectives=function(e){return e.filter(function(e){return e.directive.isComponent})},TemplateParseVisitor.prototype._findComponentDirectiveNames=function(e){return this._findComponentDirectives(e).map(function(e){return n.i(r.c)(e.directive.type)})},TemplateParseVisitor.prototype._assertOnlyOneComponent=function(e,t){var n=this._findComponentDirectiveNames(e);n.length>1&&this._reportError("More than one component matched on this element.\nMake sure that only one component's selector can match a given element.\nConflicting components: "+n.join(","),t)},TemplateParseVisitor.prototype._assertElementExists=function(e,t){var n=t.name.replace(/^:xhtml:/,"");if(!e&&!this._schemaRegistry.hasElement(n,this._schemas)){var o="'"+n+"' is not a known element:\n"+("1. If '"+n+"' is an Angular component, then verify that it is part of this module.\n")+("2. If '"+n+"' is a Web Component then add \"CUSTOM_ELEMENTS_SCHEMA\" to the '@NgModule.schemas' of this component to suppress this message.");this._reportError(o,t.sourceSpan)}},TemplateParseVisitor.prototype._assertNoComponentsNorElementBindingsOnTemplate=function(e,t,n){var o=this,r=this._findComponentDirectiveNames(e);r.length>0&&this._reportError("Components on an embedded template: "+r.join(","),n),t.forEach(function(e){o._reportError("Property binding "+e.name+' not used by any directive on an embedded template. Make sure that the property name is spelled correctly and all directives are listed in the "@NgModule.declarations".',n)})},TemplateParseVisitor.prototype._assertAllEventsPublishedByDirectives=function(e,t){var o=this,r=new Set;e.forEach(function(e){Object.keys(e.directive.outputs).forEach(function(t){var n=e.directive.outputs[t];r.add(n)})}),t.forEach(function(e){!n.i(a.f)(e.target)&&r.has(e.name)||o._reportError("Event binding "+e.fullName+' not emitted by any directive on an embedded template. Make sure that the event name is spelled correctly and all directives are listed in the "@NgModule.declarations".',e.sourceSpan)})},TemplateParseVisitor.prototype._checkPropertiesInSchema=function(e,t){var n=this;t.forEach(function(t){if(t.type===S.e.Property&&!n._schemaRegistry.hasProperty(e,t.name,n._schemas)){var o="Can't bind to '"+t.name+"' since it isn't a known property of '"+e+"'.";e.indexOf("-")>-1&&(o+="\n1. If '"+e+"' is an Angular component and it has '"+t.name+"' input, then verify that it is part of this module."+("\n2. If '"+e+"' is a Web Component then add \"CUSTOM_ELEMENTS_SCHEMA\" to the '@NgModule.schemas' of this component to suppress this message.\n")),n._reportError(o,t.sourceSpan)}})},TemplateParseVisitor.prototype._reportError=function(e,t,n){void 0===n&&(n=h.e.FATAL),this._targetErrors.push(new h.a(t,e,n))},TemplateParseVisitor}(),q=function(){function NonBindableVisitor(){}return NonBindableVisitor.prototype.visitElement=function(e,t){var o=n.i(A.a)(e);if(o.type===A.b.SCRIPT||o.type===A.b.STYLE||o.type===A.b.STYLESHEET)return null;var r=e.attrs.map(function(e){return[e.name,e.value]}),i=createElementCssSelector(e.name,r),a=t.findNgContentIndex(i),s=c.g(this,e.children,J);return new S.m(e.name,c.g(this,e.attrs),[],[],[],[],[],(!1),s,a,e.sourceSpan,e.endSourceSpan)},NonBindableVisitor.prototype.visitComment=function(e,t){return null},NonBindableVisitor.prototype.visitAttribute=function(e,t){return new S.j(e.name,e.value,e.sourceSpan)},NonBindableVisitor.prototype.visitText=function(e,t){var n=t.findNgContentIndex(j);return new S.i(e.value,n,e.sourceSpan)},NonBindableVisitor.prototype.visitExpansion=function(e,t){return e},NonBindableVisitor.prototype.visitExpansionCase=function(e,t){return e},NonBindableVisitor}(),Q=function(){function ElementOrDirectiveRef(e,t,n){this.name=e,this.value=t,this.sourceSpan=n}return ElementOrDirectiveRef}(),X=function(){function ElementContext(e,t,n,o){this.isTemplateElement=e,this._ngContentIndexMatcher=t,this._wildcardNgContentIndex=n,this.providerContext=o}return ElementContext.create=function(e,t,n){var o=new v.b,r=null,i=t.find(function(e){return e.directive.isComponent});if(i)for(var a=i.directive.template.ngContentSelectors,s=0;s<a.length;s++){var u=a[s];"*"===u?r=s:o.addSelectables(v.a.parse(a[s]),s)}return new ElementContext(e,o,r,n)},ElementContext.prototype.findNgContentIndex=function(e){var t=[];return this._ngContentIndexMatcher.match(e,function(e,n){t.push(n)}),t.sort(),n.i(a.f)(this._wildcardNgContentIndex)&&t.push(this._wildcardNgContentIndex),t.length>0?t[0]:null},ElementContext}(),J=new X((!0),new v.b,null,null),Z=new q},function(e,t,n){"use strict";var o=n(72),r=n(20),i=n(75),a=n(368),s=n(370),u=n(639),l=n(640),c=n(253);n.d(t,"d",function(){return f}),n.d(t,"b",function(){return c.a}),n.d(t,"c",function(){return c.b}),n.d(t,"a",function(){return c.c});var d=this&&this.__decorate||function(e,t,n,o){var r,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,n):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,o);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(i<3?r(a):i>3?r(t,n,a):r(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},p=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},g=function(){function ViewCompileResult(e,t,n){this.statements=e,this.viewClassVar=t,this.dependencies=n}return ViewCompileResult}(),f=function(){function ViewCompiler(e,t){this._genConfig=e,this._schemaRegistry=t}return ViewCompiler.prototype.compileComponent=function(e,t,o,r,i){var c=[],d=new s.c(e,this._genConfig,r,o,i,0,a.a.createNull(),[],c),p=[];return n.i(l.a)(d,t,c),n.i(u.a)(d,t,this._schemaRegistry),n.i(l.b)(d,p),new g(p,d.classExpr.name,c)},ViewCompiler=d([n.i(r.a)(),p("design:paramtypes",[o.a,i.a])],ViewCompiler)}()},function(e,t,n){"use strict";var o=n(8);n.d(t,"a",function(){return i}),n.d(t,"b",function(){return s});var r=new Object,i=r,a=function(){function _NullInjector(){}return _NullInjector.prototype.get=function(e,t){if(void 0===t&&(t=r),t===r)throw new Error("No provider for "+n.i(o.b)(e)+"!");return t},_NullInjector}(),s=function(){function Injector(){}return Injector.prototype.get=function(e,t){},Injector.THROW_IF_NOT_FOUND=r,Injector.NULL=new a,Injector}()},function(e,t,n){"use strict";function isListLikeIterable(e){return!!n.i(o.e)(e)&&(Array.isArray(e)||!(e instanceof Map)&&n.i(o.f)()in e)}function areIterablesEqual(e,t,r){for(var i=e[n.i(o.f)()](),a=t[n.i(o.f)()]();;){var s=i.next(),u=a.next();if(s.done&&u.done)return!0;if(s.done||u.done)return!1;if(!r(s.value,u.value))return!1}}function iterateListLike(e,t){if(Array.isArray(e))for(var r=0;r<e.length;r++)t(e[r]);else for(var i=e[n.i(o.f)()](),a=void 0;!(a=i.next()).done;)t(a.value)}var o=n(8);n.d(t,"e",function(){return r}),n.d(t,"d",function(){return i}),t.a=isListLikeIterable,t.c=areIterablesEqual,t.b=iterateListLike;var r=function(){function StringMapWrapper(){}return StringMapWrapper.merge=function(e,t){for(var n={},o=0,r=Object.keys(e);o<r.length;o++){var i=r[o];n[i]=e[i]}for(var a=0,s=Object.keys(t);a<s.length;a++){var i=s[a];n[i]=t[i]}return n},StringMapWrapper.equals=function(e,t){var n=Object.keys(e),o=Object.keys(t);if(n.length!=o.length)return!1;for(var r=0;r<n.length;r++){var i=n[r];if(e[i]!==t[i])return!1}return!0},StringMapWrapper}(),i=function(){function ListWrapper(){}return ListWrapper.findLast=function(e,t){for(var n=e.length-1;n>=0;n--)if(t(e[n]))return e[n];return null},ListWrapper.removeAll=function(e,t){for(var n=0;n<t.length;++n){var o=e.indexOf(t[n]);o>-1&&e.splice(o,1)}},ListWrapper.remove=function(e,t){var n=e.indexOf(t);return n>-1&&(e.splice(n,1),!0)},ListWrapper.equals=function(e,t){if(e.length!=t.length)return!1;for(var n=0;n<e.length;++n)if(e[n]!==t[n])return!1;return!0},ListWrapper.flatten=function(e){return e.reduce(function(e,t){var n=Array.isArray(t)?ListWrapper.flatten(t):t;return e.concat(n)},[])},ListWrapper}()},function(e,t,n){"use strict";function _throwError(){throw new Error("Runtime compiler is not loaded")}var o=n(41),r=n(180),i=n(8);n.d(t,"c",function(){return s}),n.d(t,"d",function(){return u}),n.d(t,"b",function(){return l}),n.d(t,"e",function(){return c}),n.d(t,"a",function(){return d});var a=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},s=function(e){function ComponentStillLoadingError(t){e.call(this,"Can't compile synchronously as "+n.i(i.b)(t)+" is still being loaded!"),this.compType=t}return a(ComponentStillLoadingError,e),ComponentStillLoadingError}(r.a),u=function(){function ModuleWithComponentFactories(e,t){this.ngModuleFactory=e,this.componentFactories=t}return ModuleWithComponentFactories}(),l=function(){function Compiler(){}return Compiler.prototype.compileModuleSync=function(e){throw _throwError()},Compiler.prototype.compileModuleAsync=function(e){throw _throwError()},Compiler.prototype.compileModuleAndAllComponentsSync=function(e){throw _throwError()},Compiler.prototype.compileModuleAndAllComponentsAsync=function(e){throw _throwError()},Compiler.prototype.getNgContentSelectors=function(e){throw _throwError()},Compiler.prototype.clearCache=function(){},Compiler.prototype.clearCacheFor=function(e){},Compiler.decorators=[{type:o.b}],Compiler.ctorParameters=function(){return[]},Compiler}(),c=new o.a("compilerOptions"),d=function(){function CompilerFactory(){}return CompilerFactory.prototype.createCompiler=function(e){},CompilerFactory}()},function(e,t,n){"use strict";var o=n(57),r=n(76);n.d(t,"a",function(){return a});var i=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},a=function(e){function AbstractFormGroupDirective(){e.apply(this,arguments)}return i(AbstractFormGroupDirective,e),AbstractFormGroupDirective.prototype.ngOnInit=function(){this._checkParentType(),this.formDirective.addFormGroup(this)},AbstractFormGroupDirective.prototype.ngOnDestroy=function(){this.formDirective&&this.formDirective.removeFormGroup(this)},Object.defineProperty(AbstractFormGroupDirective.prototype,"control",{get:function(){return this.formDirective.getFormGroup(this)},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractFormGroupDirective.prototype,"path",{get:function(){return n.i(r.a)(this.name,this._parent)},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractFormGroupDirective.prototype,"formDirective",{get:function(){return this._parent?this._parent.formDirective:null},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractFormGroupDirective.prototype,"validator",{get:function(){return n.i(r.b)(this._validators)},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractFormGroupDirective.prototype,"asyncValidator",{get:function(){return n.i(r.c)(this._asyncValidators)},enumerable:!0,configurable:!0}),AbstractFormGroupDirective.prototype._checkParentType=function(){},AbstractFormGroupDirective}(o.a)},function(e,t,n){"use strict";var o=n(1),r=n(110),i=n(193),a=n(49),s=n(57),u=n(76);n.d(t,"a",function(){return p});var l=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},c={provide:s.a,useExisting:n.i(o.forwardRef)(function(){return p})},d=Promise.resolve(null),p=function(e){function NgForm(t,o){e.call(this),this._submitted=!1,this.ngSubmit=new r.a,this.form=new i.a({},n.i(u.b)(t),n.i(u.c)(o))}return l(NgForm,e),Object.defineProperty(NgForm.prototype,"submitted",{get:function(){return this._submitted},enumerable:!0,configurable:!0}),Object.defineProperty(NgForm.prototype,"formDirective",{get:function(){return this},enumerable:!0,configurable:!0}),Object.defineProperty(NgForm.prototype,"control",{get:function(){return this.form},enumerable:!0,configurable:!0}),Object.defineProperty(NgForm.prototype,"path",{get:function(){return[]},enumerable:!0,configurable:!0}),Object.defineProperty(NgForm.prototype,"controls",{get:function(){return this.form.controls},enumerable:!0,configurable:!0}),NgForm.prototype.addControl=function(e){var t=this;d.then(function(){var o=t._findContainer(e.path);e._control=o.registerControl(e.name,e.control),n.i(u.d)(e.control,e),e.control.updateValueAndValidity({emitEvent:!1})})},NgForm.prototype.getControl=function(e){return this.form.get(e.path)},NgForm.prototype.removeControl=function(e){var t=this;d.then(function(){var n=t._findContainer(e.path);n&&n.removeControl(e.name)})},NgForm.prototype.addFormGroup=function(e){var t=this;d.then(function(){var o=t._findContainer(e.path),r=new i.a({});n.i(u.e)(r,e),o.registerControl(e.name,r),r.updateValueAndValidity({emitEvent:!1})})},NgForm.prototype.removeFormGroup=function(e){var t=this;d.then(function(){var n=t._findContainer(e.path);n&&n.removeControl(e.name)})},NgForm.prototype.getFormGroup=function(e){return this.form.get(e.path)},NgForm.prototype.updateModel=function(e,t){var n=this;d.then(function(){var o=n.form.get(e.path);o.setValue(t)})},NgForm.prototype.setValue=function(e){this.control.setValue(e)},NgForm.prototype.onSubmit=function(e){return this._submitted=!0,this.ngSubmit.emit(e),!1},NgForm.prototype.onReset=function(){this.resetForm()},NgForm.prototype.resetForm=function(e){void 0===e&&(e=void 0),this.form.reset(e),this._submitted=!1},NgForm.prototype._findContainer=function(e){return e.pop(),e.length?this.form.get(e):this.form},NgForm.decorators=[{type:o.Directive,args:[{selector:"form:not([ngNoForm]):not([formGroup]),ngForm,[ngForm]",providers:[c],host:{"(submit)":"onSubmit($event)","(reset)":"onReset()"},outputs:["ngSubmit"],exportAs:"ngForm"}]}],NgForm.ctorParameters=function(){return[{type:Array,decorators:[{type:o.Optional},{type:o.Self},{type:o.Inject,args:[a.b]}]},{type:Array,decorators:[{type:o.Optional},{type:o.Self},{type:o.Inject,args:[a.c]}]}]},NgForm}(s.a)},function(e,t,n){"use strict";var o=n(1),r=n(42),i=n(90);n.d(t,"b",function(){return s}),n.d(t,"a",function(){return u});var a={provide:r.a,useExisting:n.i(o.forwardRef)(function(){return u}),multi:!0},s=function(){function RadioControlRegistry(){this._accessors=[]}return RadioControlRegistry.prototype.add=function(e,t){this._accessors.push([e,t])},RadioControlRegistry.prototype.remove=function(e){for(var t=this._accessors.length-1;t>=0;--t)if(this._accessors[t][1]===e)return void this._accessors.splice(t,1)},RadioControlRegistry.prototype.select=function(e){var t=this;this._accessors.forEach(function(n){t._isSameGroup(n,e)&&n[1]!==e&&n[1].fireUncheck(e.value)})},RadioControlRegistry.prototype._isSameGroup=function(e,t){return!!e[0].control&&(e[0]._parent===t._control._parent&&e[1].name===t.name)},RadioControlRegistry.decorators=[{type:o.Injectable}],RadioControlRegistry.ctorParameters=function(){return[]},RadioControlRegistry}(),u=function(){function RadioControlValueAccessor(e,t,n,o){this._renderer=e,this._elementRef=t,this._registry=n,this._injector=o,this.onChange=function(){},this.onTouched=function(){}}return RadioControlValueAccessor.prototype.ngOnInit=function(){this._control=this._injector.get(i.a),this._checkName(),this._registry.add(this._control,this)},RadioControlValueAccessor.prototype.ngOnDestroy=function(){this._registry.remove(this)},RadioControlValueAccessor.prototype.writeValue=function(e){this._state=e===this.value,this._renderer.setElementProperty(this._elementRef.nativeElement,"checked",this._state)},RadioControlValueAccessor.prototype.registerOnChange=function(e){var t=this;this._fn=e,this.onChange=function(){e(t.value),t._registry.select(t)}},RadioControlValueAccessor.prototype.fireUncheck=function(e){this.writeValue(e)},RadioControlValueAccessor.prototype.registerOnTouched=function(e){this.onTouched=e},RadioControlValueAccessor.prototype.setDisabledState=function(e){this._renderer.setElementProperty(this._elementRef.nativeElement,"disabled",e)},RadioControlValueAccessor.prototype._checkName=function(){this.name&&this.formControlName&&this.name!==this.formControlName&&this._throwNameError(),!this.name&&this.formControlName&&(this.name=this.formControlName)},RadioControlValueAccessor.prototype._throwNameError=function(){throw new Error('\n If you define both a name and a formControlName attribute on your radio button, their values\n must match. Ex: <input type="radio" formControlName="food" name="food">\n ')},RadioControlValueAccessor.decorators=[{type:o.Directive,args:[{selector:"input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]",host:{"(change)":"onChange()","(blur)":"onTouched()"},providers:[a]}]}],RadioControlValueAccessor.ctorParameters=function(){return[{type:o.Renderer},{type:o.ElementRef},{type:s},{type:o.Injector}]},RadioControlValueAccessor.propDecorators={name:[{type:o.Input}],formControlName:[{type:o.Input}],value:[{type:o.Input}]},RadioControlValueAccessor}()},function(e,t,n){"use strict";var o=n(1),r=n(110),i=n(404),a=n(49),s=n(57),u=n(190),l=n(76);n.d(t,"a",function(){return p});var c=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},d={provide:s.a,useExisting:n.i(o.forwardRef)(function(){return p})},p=function(e){function FormGroupDirective(t,n){e.call(this),this._validators=t,this._asyncValidators=n,this._submitted=!1,this.directives=[],this.form=null,this.ngSubmit=new r.a}return c(FormGroupDirective,e),FormGroupDirective.prototype.ngOnChanges=function(e){this._checkFormPresent(),e.hasOwnProperty("form")&&(this._updateValidators(),this._updateDomValue(),this._updateRegistrations())},Object.defineProperty(FormGroupDirective.prototype,"submitted",{get:function(){return this._submitted},enumerable:!0,configurable:!0}),Object.defineProperty(FormGroupDirective.prototype,"formDirective",{get:function(){return this},enumerable:!0,configurable:!0}),Object.defineProperty(FormGroupDirective.prototype,"control",{get:function(){return this.form},enumerable:!0,configurable:!0}),Object.defineProperty(FormGroupDirective.prototype,"path",{get:function(){return[]},enumerable:!0,configurable:!0}),FormGroupDirective.prototype.addControl=function(e){var t=this.form.get(e.path);return n.i(l.d)(t,e),t.updateValueAndValidity({emitEvent:!1}),this.directives.push(e),t},FormGroupDirective.prototype.getControl=function(e){return this.form.get(e.path)},FormGroupDirective.prototype.removeControl=function(e){i.b.remove(this.directives,e)},FormGroupDirective.prototype.addFormGroup=function(e){var t=this.form.get(e.path);n.i(l.e)(t,e),t.updateValueAndValidity({emitEvent:!1})},FormGroupDirective.prototype.removeFormGroup=function(e){},FormGroupDirective.prototype.getFormGroup=function(e){return this.form.get(e.path)},FormGroupDirective.prototype.addFormArray=function(e){var t=this.form.get(e.path);n.i(l.e)(t,e),t.updateValueAndValidity({emitEvent:!1})},FormGroupDirective.prototype.removeFormArray=function(e){},FormGroupDirective.prototype.getFormArray=function(e){return this.form.get(e.path)},FormGroupDirective.prototype.updateModel=function(e,t){var n=this.form.get(e.path);n.setValue(t)},FormGroupDirective.prototype.onSubmit=function(e){return this._submitted=!0,this.ngSubmit.emit(e),!1},FormGroupDirective.prototype.onReset=function(){this.resetForm()},FormGroupDirective.prototype.resetForm=function(e){void 0===e&&(e=void 0),this.form.reset(e),this._submitted=!1},FormGroupDirective.prototype._updateDomValue=function(){var e=this;this.directives.forEach(function(t){var o=e.form.get(t.path);t._control!==o&&(n.i(l.h)(t._control,t),o&&n.i(l.d)(o,t),t._control=o)}),this.form._updateTreeValidity({emitEvent:!1})},FormGroupDirective.prototype._updateRegistrations=function(){var e=this;this.form._registerOnCollectionChange(function(){return e._updateDomValue()}),this._oldForm&&this._oldForm._registerOnCollectionChange(function(){}),this._oldForm=this.form},FormGroupDirective.prototype._updateValidators=function(){var e=n.i(l.b)(this._validators);this.form.validator=a.a.compose([this.form.validator,e]);var t=n.i(l.c)(this._asyncValidators);this.form.asyncValidator=a.a.composeAsync([this.form.asyncValidator,t])},FormGroupDirective.prototype._checkFormPresent=function(){this.form||u.a.missingFormException()},FormGroupDirective.decorators=[{type:o.Directive,args:[{selector:"[formGroup]",providers:[d],host:{"(submit)":"onSubmit($event)","(reset)":"onReset()"},exportAs:"ngForm"}]}],FormGroupDirective.ctorParameters=function(){return[{type:Array,decorators:[{type:o.Optional},{type:o.Self},{type:o.Inject,args:[a.b]}]},{type:Array,decorators:[{type:o.Optional},{type:o.Self},{type:o.Inject,args:[a.c]}]}]},FormGroupDirective.propDecorators={form:[{type:o.Input,args:["formGroup"]}],ngSubmit:[{type:o.Output}]},FormGroupDirective}(s.a)},function(e,t,n){"use strict";
function _hasInvalidParent(e){return!(e instanceof p||e instanceof l.a||e instanceof f)}var o=n(1),r=n(49),i=n(134),a=n(57),s=n(190),u=n(76),l=n(137);n.d(t,"a",function(){return p}),n.d(t,"b",function(){return f});var c=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},d={provide:a.a,useExisting:n.i(o.forwardRef)(function(){return p})},p=function(e){function FormGroupName(t,n,o){e.call(this),this._parent=t,this._validators=n,this._asyncValidators=o}return c(FormGroupName,e),FormGroupName.prototype._checkParentType=function(){_hasInvalidParent(this._parent)&&s.a.groupParentException()},FormGroupName.decorators=[{type:o.Directive,args:[{selector:"[formGroupName]",providers:[d]}]}],FormGroupName.ctorParameters=function(){return[{type:a.a,decorators:[{type:o.Optional},{type:o.Host},{type:o.SkipSelf}]},{type:Array,decorators:[{type:o.Optional},{type:o.Self},{type:o.Inject,args:[r.b]}]},{type:Array,decorators:[{type:o.Optional},{type:o.Self},{type:o.Inject,args:[r.c]}]}]},FormGroupName.propDecorators={name:[{type:o.Input,args:["formGroupName"]}]},FormGroupName}(i.a),g={provide:a.a,useExisting:n.i(o.forwardRef)(function(){return f})},f=function(e){function FormArrayName(t,n,o){e.call(this),this._parent=t,this._validators=n,this._asyncValidators=o}return c(FormArrayName,e),FormArrayName.prototype.ngOnInit=function(){this._checkParentType(),this.formDirective.addFormArray(this)},FormArrayName.prototype.ngOnDestroy=function(){this.formDirective&&this.formDirective.removeFormArray(this)},Object.defineProperty(FormArrayName.prototype,"control",{get:function(){return this.formDirective.getFormArray(this)},enumerable:!0,configurable:!0}),Object.defineProperty(FormArrayName.prototype,"formDirective",{get:function(){return this._parent?this._parent.formDirective:null},enumerable:!0,configurable:!0}),Object.defineProperty(FormArrayName.prototype,"path",{get:function(){return n.i(u.a)(this.name,this._parent)},enumerable:!0,configurable:!0}),Object.defineProperty(FormArrayName.prototype,"validator",{get:function(){return n.i(u.b)(this._validators)},enumerable:!0,configurable:!0}),Object.defineProperty(FormArrayName.prototype,"asyncValidator",{get:function(){return n.i(u.c)(this._asyncValidators)},enumerable:!0,configurable:!0}),FormArrayName.prototype._checkParentType=function(){_hasInvalidParent(this._parent)&&s.a.arrayParentException()},FormArrayName.decorators=[{type:o.Directive,args:[{selector:"[formArrayName]",providers:[g]}]}],FormArrayName.ctorParameters=function(){return[{type:a.a,decorators:[{type:o.Optional},{type:o.Host},{type:o.SkipSelf}]},{type:Array,decorators:[{type:o.Optional},{type:o.Self},{type:o.Inject,args:[r.b]}]},{type:Array,decorators:[{type:o.Optional},{type:o.Self},{type:o.Inject,args:[r.c]}]}]},FormArrayName.propDecorators={name:[{type:o.Input,args:["formArrayName"]}]},FormArrayName}(a.a)},function(e,t,n){"use strict";n.d(t,"a",function(){return o});var o=function(){function Headers(e){var t=this;if(this._headers=new Map,this._normalizedNames=new Map,e)return e instanceof Headers?void e.forEach(function(e,n){e.forEach(function(e){return t.append(n,e)})}):void Object.keys(e).forEach(function(n){var o=Array.isArray(e[n])?e[n]:[e[n]];t.delete(n),o.forEach(function(e){return t.append(n,e)})})}return Headers.fromResponseHeaderString=function(e){var t=new Headers;return e.split("\n").forEach(function(e){var n=e.indexOf(":");if(n>0){var o=e.slice(0,n),r=e.slice(n+1).trim();t.set(o,r)}}),t},Headers.prototype.append=function(e,t){var n=this.getAll(e);null===n?this.set(e,t):n.push(t)},Headers.prototype.delete=function(e){var t=e.toLowerCase();this._normalizedNames.delete(t),this._headers.delete(t)},Headers.prototype.forEach=function(e){var t=this;this._headers.forEach(function(n,o){return e(n,t._normalizedNames.get(o),t._headers)})},Headers.prototype.get=function(e){var t=this.getAll(e);return null===t?null:t.length>0?t[0]:null},Headers.prototype.has=function(e){return this._headers.has(e.toLowerCase())},Headers.prototype.keys=function(){return Array.from(this._normalizedNames.values())},Headers.prototype.set=function(e,t){Array.isArray(t)?t.length&&this._headers.set(e.toLowerCase(),[t.join(",")]):this._headers.set(e.toLowerCase(),[t]),this.mayBeSetNormalizedName(e)},Headers.prototype.values=function(){return Array.from(this._headers.values())},Headers.prototype.toJSON=function(){var e=this,t={};return this._headers.forEach(function(n,o){var r=[];n.forEach(function(e){return r.push.apply(r,e.split(","))}),t[e._normalizedNames.get(o)]=r}),t},Headers.prototype.getAll=function(e){return this.has(e)?this._headers.get(e.toLowerCase()):null},Headers.prototype.entries=function(){throw new Error('"entries" method is not implemented on Headers class')},Headers.prototype.mayBeSetNormalizedName=function(e){var t=e.toLowerCase();this._normalizedNames.has(t)||this._normalizedNames.set(t,e)},Headers}()},function(e,t,n){"use strict";n.d(t,"a",function(){return o}),n.d(t,"c",function(){return r}),n.d(t,"b",function(){return i});var o=function(){function ConnectionBackend(){}return ConnectionBackend.prototype.createConnection=function(e){},ConnectionBackend}(),r=function(){function Connection(){}return Connection}(),i=function(){function XSRFStrategy(){}return XSRFStrategy.prototype.configureRequest=function(e){},XSRFStrategy}()},,,,,,,,,,function(e,t,n){"use strict";var o=n(0),r=function(){function Notification(e,t,n){this.kind=e,this.value=t,this.error=n,this.hasValue="N"===e}return Notification.prototype.observe=function(e){switch(this.kind){case"N":return e.next&&e.next(this.value);case"E":return e.error&&e.error(this.error);case"C":return e.complete&&e.complete()}},Notification.prototype.do=function(e,t,n){var o=this.kind;switch(o){case"N":return e&&e(this.value);case"E":return t&&t(this.error);case"C":return n&&n()}},Notification.prototype.accept=function(e,t,n){return e&&"function"==typeof e.next?this.observe(e):this.do(e,t,n)},Notification.prototype.toObservable=function(){var e=this.kind;switch(e){case"N":return o.Observable.of(this.value);case"E":return o.Observable.throw(this.error);case"C":return o.Observable.empty()}throw new Error("unexpected notification kind value")},Notification.createNext=function(e){return"undefined"!=typeof e?new Notification("N",e):Notification.undefinedValueNotification},Notification.createError=function(e){return new Notification("E",(void 0),e)},Notification.createComplete=function(){return Notification.completeNotification},Notification.completeNotification=new Notification("C"),Notification.undefinedValueNotification=new Notification("N",(void 0)),Notification}();t.Notification=r},function(e,t,n){"use strict";function mergeMap(e,t,n){return void 0===n&&(n=Number.POSITIVE_INFINITY),"number"==typeof t&&(n=t,t=null),this.lift(new a(e,t,n))}var o=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},r=n(5),i=n(4);t.mergeMap=mergeMap;var a=function(){function MergeMapOperator(e,t,n){void 0===n&&(n=Number.POSITIVE_INFINITY),this.project=e,this.resultSelector=t,this.concurrent=n}return MergeMapOperator.prototype.call=function(e,t){return t.subscribe(new s(e,this.project,this.resultSelector,this.concurrent))},MergeMapOperator}();t.MergeMapOperator=a;var s=function(e){function MergeMapSubscriber(t,n,o,r){void 0===r&&(r=Number.POSITIVE_INFINITY),e.call(this,t),this.project=n,this.resultSelector=o,this.concurrent=r,this.hasCompleted=!1,this.buffer=[],this.active=0,this.index=0}return o(MergeMapSubscriber,e),MergeMapSubscriber.prototype._next=function(e){this.active<this.concurrent?this._tryNext(e):this.buffer.push(e)},MergeMapSubscriber.prototype._tryNext=function(e){var t,n=this.index++;try{t=this.project(e,n)}catch(o){return void this.destination.error(o)}this.active++,this._innerSub(t,e,n)},MergeMapSubscriber.prototype._innerSub=function(e,t,n){this.add(r.subscribeToResult(this,e,t,n))},MergeMapSubscriber.prototype._complete=function(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&this.destination.complete()},MergeMapSubscriber.prototype.notifyNext=function(e,t,n,o,r){this.resultSelector?this._notifyResultSelector(e,t,n,o):this.destination.next(t)},MergeMapSubscriber.prototype._notifyResultSelector=function(e,t,n,o){var r;try{r=this.resultSelector(e,t,n,o)}catch(i){return void this.destination.error(i)}this.destination.next(r)},MergeMapSubscriber.prototype.notifyComplete=function(e){var t=this.buffer;this.remove(e),this.active--,t.length>0?this._next(t.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()},MergeMapSubscriber}(i.OuterSubscriber);t.MergeMapSubscriber=s},function(e,t,n){"use strict";function observeOn(e,t){return void 0===t&&(t=0),this.lift(new a(e,t))}var o=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},r=n(3),i=n(150);t.observeOn=observeOn;var a=function(){function ObserveOnOperator(e,t){void 0===t&&(t=0),this.scheduler=e,this.delay=t}return ObserveOnOperator.prototype.call=function(e,t){return t.subscribe(new s(e,this.scheduler,this.delay))},ObserveOnOperator}();t.ObserveOnOperator=a;var s=function(e){function ObserveOnSubscriber(t,n,o){void 0===o&&(o=0),e.call(this,t),this.scheduler=n,this.delay=o}return o(ObserveOnSubscriber,e),ObserveOnSubscriber.dispatch=function(e){var t=e.notification,n=e.destination;t.observe(n),this.unsubscribe()},ObserveOnSubscriber.prototype.scheduleMessage=function(e){this.add(this.scheduler.schedule(ObserveOnSubscriber.dispatch,this.delay,new u(e,this.destination)))},ObserveOnSubscriber.prototype._next=function(e){this.scheduleMessage(i.Notification.createNext(e))},ObserveOnSubscriber.prototype._error=function(e){this.scheduleMessage(i.Notification.createError(e))},ObserveOnSubscriber.prototype._complete=function(){this.scheduleMessage(i.Notification.createComplete())},ObserveOnSubscriber}(r.Subscriber);t.ObserveOnSubscriber=s;var u=function(){function ObserveOnMessage(e,t){this.notification=e,this.destination=t}return ObserveOnMessage}();t.ObserveOnMessage=u},,,function(e,t,n){"use strict";function symbolIteratorPonyfill(e){var t=e.Symbol;if("function"==typeof t)return t.iterator||(t.iterator=t("iterator polyfill")),t.iterator;var n=e.Set;if(n&&"function"==typeof(new n)["@@iterator"])return"@@iterator";var o=e.Map;if(o)for(var r=Object.getOwnPropertyNames(o.prototype),i=0;i<r.length;++i){var a=r[i];if("entries"!==a&&"size"!==a&&o.prototype[a]===o.prototype.entries)return a}return"@@iterator"}var o=n(26);t.symbolIteratorPonyfill=symbolIteratorPonyfill,t.iterator=symbolIteratorPonyfill(o.root),t.$$iterator=t.iterator},function(e,t,n){"use strict";function getSymbolObservable(e){var t,n=e.Symbol;return"function"==typeof n?n.observable?t=n.observable:(t=n("observable"),n.observable=t):t="@@observable",t}var o=n(26);t.getSymbolObservable=getSymbolObservable,t.observable=getSymbolObservable(o.root),t.$$observable=t.observable},,function(e,t){"use strict";var n=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},o=function(e){function EmptyError(){var t=e.call(this,"no elements in sequence");this.name=t.name="EmptyError",this.stack=t.stack,this.message=t.message}return n(EmptyError,e),EmptyError}(Error);t.EmptyError=o},function(e,t,n){"use strict";function __export(e){for(var n in e)t.hasOwnProperty(n)||(t[n]=e[n])}__export(n(699))},,,function(e,t,n){"use strict";function getPluralCategory(e,t,n){var o="="+e;if(t.indexOf(o)>-1)return o;if(o=n.getPluralCategory(e),t.indexOf(o)>-1)return o;if(t.indexOf("other")>-1)return"other";throw new Error('No plural message found for value "'+e+'"')}function getPluralCase(e,t){"string"==typeof t&&(t=parseInt(t,10));var n=t,o=n.toString().replace(/^[^.]*\.?/,""),r=Math.floor(Math.abs(n)),i=o.length,a=parseInt(o,10),u=parseInt(n.toString().replace(/^[^.]*\.?|0+$/g,""),10)||0,l=e.split("-")[0].toLowerCase();switch(l){case"af":case"asa":case"az":case"bem":case"bez":case"bg":case"brx":case"ce":case"cgg":case"chr":case"ckb":case"ee":case"el":case"eo":case"es":case"eu":case"fo":case"fur":case"gsw":case"ha":case"haw":case"hu":case"jgo":case"jmc":case"ka":case"kk":case"kkj":case"kl":case"ks":case"ksb":case"ky":case"lb":case"lg":case"mas":case"mgo":case"ml":case"mn":case"nb":case"nd":case"ne":case"nn":case"nnh":case"nyn":case"om":case"or":case"os":case"ps":case"rm":case"rof":case"rwk":case"saq":case"seh":case"sn":case"so":case"sq":case"ta":case"te":case"teo":case"tk":case"tr":case"ug":case"uz":case"vo":case"vun":case"wae":case"xog":return 1===n?s.One:s.Other;case"agq":case"bas":case"cu":case"dav":case"dje":case"dua":case"dyo":case"ebu":case"ewo":case"guz":case"kam":case"khq":case"ki":case"kln":case"kok":case"ksf":case"lrc":case"lu":case"luo":case"luy":case"mer":case"mfe":case"mgh":case"mua":case"mzn":case"nmg":case"nus":case"qu":case"rn":case"rw":case"sbp":case"twq":case"vai":case"yav":case"yue":case"zgh":case"ak":case"ln":case"mg":case"pa":case"ti":return n===Math.floor(n)&&n>=0&&n<=1?s.One:s.Other;case"am":case"as":case"bn":case"fa":case"gu":case"hi":case"kn":case"mr":case"zu":return 0===r||1===n?s.One:s.Other;case"ar":return 0===n?s.Zero:1===n?s.One:2===n?s.Two:n%100===Math.floor(n%100)&&n%100>=3&&n%100<=10?s.Few:n%100===Math.floor(n%100)&&n%100>=11&&n%100<=99?s.Many:s.Other;case"ast":case"ca":case"de":case"en":case"et":case"fi":case"fy":case"gl":case"it":case"nl":case"sv":case"sw":case"ur":case"yi":return 1===r&&0===i?s.One:s.Other;case"be":return n%10===1&&n%100!==11?s.One:n%10===Math.floor(n%10)&&n%10>=2&&n%10<=4&&!(n%100>=12&&n%100<=14)?s.Few:n%10===0||n%10===Math.floor(n%10)&&n%10>=5&&n%10<=9||n%100===Math.floor(n%100)&&n%100>=11&&n%100<=14?s.Many:s.Other;case"br":return n%10===1&&n%100!==11&&n%100!==71&&n%100!==91?s.One:n%10===2&&n%100!==12&&n%100!==72&&n%100!==92?s.Two:n%10===Math.floor(n%10)&&(n%10>=3&&n%10<=4||n%10===9)&&!(n%100>=10&&n%100<=19||n%100>=70&&n%100<=79||n%100>=90&&n%100<=99)?s.Few:0!==n&&n%1e6===0?s.Many:s.Other;case"bs":case"hr":case"sr":return 0===i&&r%10===1&&r%100!==11||a%10===1&&a%100!==11?s.One:0===i&&r%10===Math.floor(r%10)&&r%10>=2&&r%10<=4&&!(r%100>=12&&r%100<=14)||a%10===Math.floor(a%10)&&a%10>=2&&a%10<=4&&!(a%100>=12&&a%100<=14)?s.Few:s.Other;case"cs":case"sk":return 1===r&&0===i?s.One:r===Math.floor(r)&&r>=2&&r<=4&&0===i?s.Few:0!==i?s.Many:s.Other;case"cy":return 0===n?s.Zero:1===n?s.One:2===n?s.Two:3===n?s.Few:6===n?s.Many:s.Other;case"da":return 1===n||0!==u&&(0===r||1===r)?s.One:s.Other;case"dsb":case"hsb":return 0===i&&r%100===1||a%100===1?s.One:0===i&&r%100===2||a%100===2?s.Two:0===i&&r%100===Math.floor(r%100)&&r%100>=3&&r%100<=4||a%100===Math.floor(a%100)&&a%100>=3&&a%100<=4?s.Few:s.Other;case"ff":case"fr":case"hy":case"kab":return 0===r||1===r?s.One:s.Other;case"fil":return 0===i&&(1===r||2===r||3===r)||0===i&&r%10!==4&&r%10!==6&&r%10!==9||0!==i&&a%10!==4&&a%10!==6&&a%10!==9?s.One:s.Other;case"ga":return 1===n?s.One:2===n?s.Two:n===Math.floor(n)&&n>=3&&n<=6?s.Few:n===Math.floor(n)&&n>=7&&n<=10?s.Many:s.Other;case"gd":return 1===n||11===n?s.One:2===n||12===n?s.Two:n===Math.floor(n)&&(n>=3&&n<=10||n>=13&&n<=19)?s.Few:s.Other;case"gv":return 0===i&&r%10===1?s.One:0===i&&r%10===2?s.Two:0!==i||r%100!==0&&r%100!==20&&r%100!==40&&r%100!==60&&r%100!==80?0!==i?s.Many:s.Other:s.Few;case"he":return 1===r&&0===i?s.One:2===r&&0===i?s.Two:0!==i||n>=0&&n<=10||n%10!==0?s.Other:s.Many;case"is":return 0===u&&r%10===1&&r%100!==11||0!==u?s.One:s.Other;case"ksh":return 0===n?s.Zero:1===n?s.One:s.Other;case"kw":case"naq":case"se":case"smn":return 1===n?s.One:2===n?s.Two:s.Other;case"lag":return 0===n?s.Zero:0!==r&&1!==r||0===n?s.Other:s.One;case"lt":return n%10!==1||n%100>=11&&n%100<=19?n%10===Math.floor(n%10)&&n%10>=2&&n%10<=9&&!(n%100>=11&&n%100<=19)?s.Few:0!==a?s.Many:s.Other:s.One;case"lv":case"prg":return n%10===0||n%100===Math.floor(n%100)&&n%100>=11&&n%100<=19||2===i&&a%100===Math.floor(a%100)&&a%100>=11&&a%100<=19?s.Zero:n%10===1&&n%100!==11||2===i&&a%10===1&&a%100!==11||2!==i&&a%10===1?s.One:s.Other;case"mk":return 0===i&&r%10===1||a%10===1?s.One:s.Other;case"mt":return 1===n?s.One:0===n||n%100===Math.floor(n%100)&&n%100>=2&&n%100<=10?s.Few:n%100===Math.floor(n%100)&&n%100>=11&&n%100<=19?s.Many:s.Other;case"pl":return 1===r&&0===i?s.One:0===i&&r%10===Math.floor(r%10)&&r%10>=2&&r%10<=4&&!(r%100>=12&&r%100<=14)?s.Few:0===i&&1!==r&&r%10===Math.floor(r%10)&&r%10>=0&&r%10<=1||0===i&&r%10===Math.floor(r%10)&&r%10>=5&&r%10<=9||0===i&&r%100===Math.floor(r%100)&&r%100>=12&&r%100<=14?s.Many:s.Other;case"pt":return n===Math.floor(n)&&n>=0&&n<=2&&2!==n?s.One:s.Other;case"ro":return 1===r&&0===i?s.One:0!==i||0===n||1!==n&&n%100===Math.floor(n%100)&&n%100>=1&&n%100<=19?s.Few:s.Other;case"ru":case"uk":return 0===i&&r%10===1&&r%100!==11?s.One:0===i&&r%10===Math.floor(r%10)&&r%10>=2&&r%10<=4&&!(r%100>=12&&r%100<=14)?s.Few:0===i&&r%10===0||0===i&&r%10===Math.floor(r%10)&&r%10>=5&&r%10<=9||0===i&&r%100===Math.floor(r%100)&&r%100>=11&&r%100<=14?s.Many:s.Other;case"shi":return 0===r||1===n?s.One:n===Math.floor(n)&&n>=2&&n<=10?s.Few:s.Other;case"si":return 0===n||1===n||0===r&&1===a?s.One:s.Other;case"sl":return 0===i&&r%100===1?s.One:0===i&&r%100===2?s.Two:0===i&&r%100===Math.floor(r%100)&&r%100>=3&&r%100<=4||0!==i?s.Few:s.Other;case"tzm":return n===Math.floor(n)&&n>=0&&n<=1||n===Math.floor(n)&&n>=11&&n<=99?s.One:s.Other;default:return s.Other}}var o=n(1);n.d(t,"b",function(){return i}),t.a=getPluralCategory,n.d(t,"c",function(){return a});var r=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},i=function(){function NgLocalization(){}return NgLocalization.prototype.getPluralCategory=function(e){},NgLocalization}(),a=function(e){function NgLocaleLocalization(t){e.call(this),this._locale=t}return r(NgLocaleLocalization,e),NgLocaleLocalization.prototype.getPluralCategory=function(e){var t=getPluralCase(this._locale,e);switch(t){case s.Zero:return"zero";case s.One:return"one";case s.Two:return"two";case s.Few:return"few";case s.Many:return"many";default:return"other"}},NgLocaleLocalization.decorators=[{type:o.Injectable}],NgLocaleLocalization.ctorParameters=function(){return[{type:void 0,decorators:[{type:o.Inject,args:[o.LOCALE_ID]}]}]},NgLocaleLocalization}(i),s={};s.Zero=0,s.One=1,s.Two=2,s.Few=3,s.Many=4,s.Other=5,s[s.Zero]="Zero",s[s.One]="One",s[s.Two]="Two",s[s.Few]="Few",s[s.Many]="Many",s[s.Other]="Other"},function(e,t,n){"use strict";var o=n(1);n.d(t,"a",function(){return r}),n.d(t,"b",function(){return i});var r=function(){function LocationStrategy(){}return LocationStrategy.prototype.path=function(e){},LocationStrategy.prototype.prepareExternalUrl=function(e){},LocationStrategy.prototype.pushState=function(e,t,n,o){},LocationStrategy.prototype.replaceState=function(e,t,n,o){},LocationStrategy.prototype.forward=function(){},LocationStrategy.prototype.back=function(){},LocationStrategy.prototype.onPopState=function(e){},LocationStrategy.prototype.getBaseHref=function(){},LocationStrategy}(),i=new o.OpaqueToken("appBaseHref")},function(e,t,n){"use strict";var o=(n(633),n(48),n(129),n(72),n(14),n(615),n(239),n(241),n(240),n(71),n(242),n(243),n(251),n(361),n(622)),r=(n(88),n(250));n(124),n(128),n(127),n(47),n(75),n(356),n(123),n(125),n(106),n(126),n(86),n(171),n(73),n(630),n(249),n(40),n(172),n(173),n(174),n(130),n(165),n(32);n.d(t,"b",function(){return o.a}),n.d(t,"a",function(){return r.a})},function(e,t,n){"use strict";function _parseAnimationDeclarationStates(e,t,n){var o=_normalizeStyleMetadata(e.styles,{},t,n,!1),r=new c.b(o),i=e.stateNameExpr.split(/\s*,\s*/);return i.map(function(e){return new c.c(e,r)})}function _parseAnimationStateTransition(e,t,n,o){var r=new d.a,i=[],a=e.stateChangeExpr.split(/\s*,\s*/);a.forEach(function(e){i.push.apply(i,_parseAnimationTransitionExpr(e,o))});var s=_normalizeAnimationEntry(e.steps),u=_normalizeStyleSteps(s,t,n,o),l=_parseTransitionAnimation(u,0,r,t,o);0==o.length&&_fillAnimationAstStartingKeyframes(l,r,o);var p=l instanceof c.d?l:new c.e([l]);return new c.f(i,p)}function _parseAnimationAlias(e,t){switch(e){case":enter":return"void => *";case":leave":return"* => void";default:return t.push(new b('the transition alias value "'+e+'" is not supported')),"* => *"}}function _parseAnimationTransitionExpr(e,t){var o=[];":"==e[0]&&(e=_parseAnimationAlias(e,t));var r=e.match(/^(\*|[-\w]+)\s*(<?[=-]>)\s*(\*|[-\w]+)$/);if(!n.i(i.f)(r)||r.length<4)return t.push(new b("the provided "+e+" is not of a supported format")),o;var a=r[1],s=r[2],l=r[3];o.push(new c.g(a,l));var d=a==u.D&&l==u.D;return"<"!=s[0]||d||o.push(new c.g(l,a)),o}function _normalizeAnimationEntry(e){return Array.isArray(e)?new o.e(e):e}function _normalizeStyleMetadata(e,t,n,o,r){var i=e.offset;(i>1||i<0)&&o.push(new b("Offset values for animations must be between 0 and 1"));var a=[];return e.styles.forEach(function(e){if("string"==typeof e)r?a.push.apply(a,_resolveStylesFromState(e,t,o)):o.push(new b("State based animations cannot contain references to other states"));else{var i=e,s={};Object.keys(i).forEach(function(e){var t=n.normalizeAnimationStyleProperty(e),r=n.normalizeAnimationStyleValue(t,e,i[e]),a=r.error;a&&o.push(new b(a)),s[t]=r.value}),a.push(s)}}),a}function _normalizeStyleSteps(e,t,n,r){var i=_normalizeStyleStepEntry(e,t,n,r);return e instanceof o.f?new o.f(i):new o.e(i)}function _mergeAnimationStyles(e,t){if("object"==typeof t&&null!==t&&e.length>0){var n=e.length-1,o=e[n];if("object"==typeof o&&null!==o)return void(e[n]=r.b.merge(o,t))}e.push(t)}function _normalizeStyleStepEntry(e,t,r,a){var s;if(!(e instanceof o.g))return[e];s=e.steps;var u,l=[];return s.forEach(function(e){if(e instanceof o.h)n.i(i.f)(u)||(u=[]),_normalizeStyleMetadata(e,t,r,a,!0).forEach(function(e){_mergeAnimationStyles(u,e)});else{if(n.i(i.f)(u)&&(l.push(new o.h(0,u)),u=null),e instanceof o.i){var s=e.styles;s instanceof o.h?s.styles=_normalizeStyleMetadata(s,t,r,a,!0):s instanceof o.j&&s.steps.forEach(function(e){e.styles=_normalizeStyleMetadata(e,t,r,a,!0)})}else if(e instanceof o.g){var c=_normalizeStyleStepEntry(e,t,r,a);e=e instanceof o.f?new o.f(c):new o.e(c)}l.push(e)}}),n.i(i.f)(u)&&l.push(new o.h(0,u)),l}function _resolveStylesFromState(e,t,o){var r=[];if(":"!=e[0])o.push(new b('Animation states via styles must be prefixed with a ":"'));else{var a=e.substring(1),s=t[a];n.i(i.f)(s)?s.styles.forEach(function(e){"object"==typeof e&&null!==e&&r.push(e)}):o.push(new b('Unable to apply styles due to missing a state: "'+a+'"'))}return r}function _parseAnimationKeyframes(e,t,o,r,a){var s=e.steps.length,l=0;e.steps.forEach(function(e){return l+=n.i(i.f)(e.offset)?1:0}),l>0&&l<s&&(a.push(new b("Not all style() entries contain an offset for the provided keyframe()")),l=s);var d=s-1,p=0==l?1/d:0,g=[],f=0,y=!1,v=0;e.steps.forEach(function(e){var t=e.offset,o={};e.styles.forEach(function(e){Object.keys(e).forEach(function(t){"offset"!=t&&(o[t]=e[t])})}),n.i(i.f)(t)?y=y||t<v:t=f==d?m:p*f,g.push([t,o]),v=t,f++}),y&&g.sort(function(e,t){return e[0]<=t[0]?-1:1});var _=g[0];_[0]!=h&&g.splice(0,0,_=[h,{}]);var E=_[1];d=g.length-1;var T=g[d];T[0]!=m&&(g.push(T=[m,{}]),d++);for(var S=T[1],A=1;A<=d;A++){var M=g[A],C=M[1];Object.keys(C).forEach(function(e){n.i(i.f)(E[e])||(E[e]=u.E)})}for(var k=function(e){var t=g[e],o=t[1];Object.keys(o).forEach(function(e){n.i(i.f)(S[e])||(S[e]=o[e])})},A=d-1;A>=0;A--)k(A);return g.map(function(e){return new c.h(e[0],new c.b([e[1]]))})}function _parseTransitionAnimation(e,t,r,a,s){var u,l=0,d=t;if(e instanceof o.g){var p,g=0,f=[],h=e instanceof o.f;if(e.steps.forEach(function(e){var u=h?d:t;if(e instanceof o.h)return e.styles.forEach(function(e){var t=e;Object.keys(t).forEach(function(e){r.insertAtTime(e,u,t[e])})}),void(p=e.styles);var m=_parseTransitionAnimation(e,u,r,a,s);if(n.i(i.f)(p)){if(e instanceof o.g){var y=new c.b(p);f.push(new c.i(y,[],0,0,""))}else{var b=m;(_=b.startingStyles.styles).push.apply(_,p)}p=null}var v=m.playTime;t+=v,l+=v,g=Math.max(v,g),f.push(m);var _}),n.i(i.f)(p)){var y=new c.b(p);f.push(new c.i(y,[],0,0,""))}h?(u=new c.j(f),l=g,t=d+l):u=new c.e(f)}else if(e instanceof o.i){var b=_parseTimeExpression(e.timings,s),v=e.styles,_=void 0;if(v instanceof o.j)_=_parseAnimationKeyframes(v,t,r,a,s);else{var E=v,T=m,S=new c.b(E.styles),A=new c.h(T,S);_=[A]}u=new c.i(new c.b([]),_,b.duration,b.delay,b.easing),l=b.duration+b.delay,t+=l,_.forEach(function(e){return e.styles.styles.forEach(function(e){return Object.keys(e).forEach(function(n){r.insertAtTime(n,t,e[n])})})})}else u=new c.i(null,[],0,0,"");return u.playTime=l,u.startTime=d,u}function _fillAnimationAstStartingKeyframes(e,t,n){if(e instanceof c.i&&e.keyframes.length>0){var o=e.keyframes;if(1==o.length){var r=o[0],i=_createStartKeyframeFromEndKeyframe(r,e.startTime,e.playTime,t,n);e.keyframes=[i,r]}}else e instanceof c.d&&e.steps.forEach(function(e){return _fillAnimationAstStartingKeyframes(e,t,n)})}function _parseTimeExpression(e,t){var o,r=/^([\.\d]+)(m?s)(?:\s+([\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?/i,a=0,s=null;if("string"==typeof e){var u=e.match(r);if(null===u)return t.push(new b('The provided timing value "'+e+'" is invalid.')),new E(0,0,null);var l=parseFloat(u[1]),c=u[2];"s"==c&&(l*=y),o=Math.floor(l);var d=u[3],p=u[4];if(n.i(i.f)(d)){var g=parseFloat(d);n.i(i.f)(p)&&"s"==p&&(g*=y),a=Math.floor(g)}var f=u[5];n.i(i.g)(f)||(s=f)}else o=e;return new E(o,a,s)}function _createStartKeyframeFromEndKeyframe(e,t,o,r,a){var s={},l=t+o;return e.styles.styles.forEach(function(e){Object.keys(e).forEach(function(o){var c=e[o];if("offset"!=o){var d,p,g,f=r.indexOfAtOrBeforeTime(o,t);n.i(i.f)(f)?(d=r.getByIndex(o,f),g=d.value,p=r.getByIndex(o,f+1)):g=u.E,n.i(i.f)(p)&&!p.matches(l,c)&&a.push(new b('The animated CSS property "'+o+'" unexpectedly changes between steps "'+d.time+'ms" and "'+l+'ms" at "'+p.time+'ms"')),s[o]=g}})}),new c.h(h,new c.b([s]))}var o=n(14),r=n(85),i=n(7),a=n(20),s=n(40),u=n(17),l=n(75),c=n(348),d=n(614);n.d(t,"a",function(){return _});var p=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},g=this&&this.__decorate||function(e,t,n,o){var r,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,n):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,o);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(i<3?r(a):i>3?r(t,n,a):r(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},f=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},h=0,m=1,y=1e3,b=function(e){function AnimationParseError(t){e.call(this,null,t)}return p(AnimationParseError,e),AnimationParseError.prototype.toString=function(){return""+this.msg},AnimationParseError}(s.a),v=function(){function AnimationEntryParseResult(e,t){this.ast=e,this.errors=t}return AnimationEntryParseResult}(),_=function(){function AnimationParser(e){this._schema=e}return AnimationParser.prototype.parseComponent=function(e){var t=this,r=[],i=n.i(o.c)(e.type),a=new Set,s=e.template.animations.map(function(e){var n=t.parseEntry(e),o=n.ast,s=o.name;if(a.has(s)?n.errors.push(new b('The animation trigger "'+s+'" has already been registered for the '+i+" component")):a.add(s),n.errors.length>0){var u='- Unable to parse the animation sequence for "'+s+'" on the '+i+" component due to the following errors:";n.errors.forEach(function(e){u+="\n-- "+e.msg}),r.push(u)}return o});if(r.length>0){var u=r.join("\n");throw new Error("Animation parse errors:\n"+u)}return s},AnimationParser.prototype.parseEntry=function(e){var t=this,n=[],r={},i=[],a=[];e.definitions.forEach(function(e){e instanceof o.d?_parseAnimationDeclarationStates(e,t._schema,n).forEach(function(e){a.push(e),r[e.stateName]=e.styles}):i.push(e)});var s=i.map(function(e){return _parseAnimationStateTransition(e,r,t._schema,n)}),u=new c.a(e.name,a,s);return new v(u,n)},AnimationParser=g([n.i(a.a)(),f("design:paramtypes",[l.a])],AnimationParser)}(),E=function(){function _AnimationTimings(e,t,n){this.duration=e,this.delay=t,this.easing=n}return _AnimationTimings}()},function(e,t,n){"use strict";function isWhitespace(e){return e>=r&&e<=l||e==ne}function isDigit(e){return D<=e&&e<=w}function isAsciiLetter(e){return e>=j&&e<=J||e>=I&&e<=P}function isAsciiHexDigit(e){return e>=j&&e<=Y||e>=I&&e<=B||isDigit(e)}n.d(t,"a",function(){return o}),n.d(t,"Y",function(){return r}),n.d(t,"S",function(){return i}),n.d(t,"_0",function(){return a}),n.d(t,"U",function(){return s}),n.d(t,"W",function(){return u}),n.d(t,"b",function(){return l}),n.d(t,"A",function(){return c}),n.d(t,"o",function(){return d}),n.d(t,"p",function(){return p}),n.d(t,"M",function(){return g}),n.d(t,"u",function(){return f}),n.d(t,"B",function(){return h}),n.d(t,"n",function(){return m}),n.d(t,"e",function(){return y}),n.d(t,"f",function(){return b}),n.d(t,"s",function(){return v}),n.d(t,"q",function(){return _}),n.d(t,"k",function(){return E}),n.d(t,"r",function(){return T}),n.d(t,"d",function(){return S}),n.d(t,"t",function(){return A}),n.d(t,"l",function(){return M}),n.d(t,"m",function(){return C}),n.d(t,"x",function(){return k}),n.d(t,"z",function(){return R}),n.d(t,"y",function(){return N}),n.d(t,"w",function(){return O}),n.d(t,"_3",function(){return D}),n.d(t,"_4",function(){return w}),n.d(t,"J",function(){return I}),n.d(t,"P",function(){return x}),n.d(t,"_2",function(){return L}),n.d(t,"K",function(){return P}),n.d(t,"i",function(){return H}),n.d(t,"F",function(){return F}),n.d(t,"j",function(){return U}),n.d(t,"v",function(){return V}),n.d(t,"L",function(){return W}),n.d(t,"H",function(){return j}),n.d(t,"O",function(){return $}),n.d(t,"T",function(){return Y}),n.d(t,"R",function(){return K}),n.d(t,"V",function(){return G}),n.d(t,"X",function(){return z}),n.d(t,"G",function(){return q}),n.d(t,"Z",function(){return Q}),n.d(t,"_1",function(){return X}),n.d(t,"I",function(){return J}),n.d(t,"g",function(){return Z}),n.d(t,"C",function(){return ee}),n.d(t,"h",function(){return te}),n.d(t,"D",function(){return ne}),n.d(t,"Q",function(){return oe}),t.E=isWhitespace,t.c=isDigit,t.N=isAsciiLetter,t._5=isAsciiHexDigit;var o=0,r=9,i=10,a=11,s=12,u=13,l=32,c=33,d=34,p=35,g=36,f=37,h=38,m=39,y=40,b=41,v=42,_=43,E=44,T=45,S=46,A=47,M=58,C=59,k=60,R=61,N=62,O=63,D=48,w=57,I=65,x=69,B=70,L=88,P=90,H=91,F=92,U=93,V=94,W=95,j=97,$=101,Y=102,K=110,G=114,z=116,q=117,Q=118,X=120,J=122,Z=123,ee=124,te=125,ne=160,oe=96},function(e,t,n){"use strict";n.d(t,"a",function(){return o}),n.d(t,"f",function(){return r}),n.d(t,"d",function(){return i}),n.d(t,"c",function(){return a}),n.d(t,"b",function(){return s}),n.d(t,"g",function(){return u}),n.d(t,"e",function(){return l});var o=function(){function Message(e,t,n,o,r){this.nodes=e,this.placeholders=t,this.placeholderToMessage=n,this.meaning=o,this.description=r}return Message}(),r=function(){function Text(e,t){this.value=e,this.sourceSpan=t}return Text.prototype.visit=function(e,t){return e.visitText(this,t)},Text}(),i=function(){function Container(e,t){this.children=e,this.sourceSpan=t}return Container.prototype.visit=function(e,t){return e.visitContainer(this,t)},Container}(),a=function(){function Icu(e,t,n,o){this.expression=e,this.type=t,this.cases=n,this.sourceSpan=o}return Icu.prototype.visit=function(e,t){return e.visitIcu(this,t)},Icu}(),s=function(){function TagPlaceholder(e,t,n,o,r,i,a){this.tag=e,this.attrs=t,this.startName=n,
this.closeName=o,this.children=r,this.isVoid=i,this.sourceSpan=a}return TagPlaceholder.prototype.visit=function(e,t){return e.visitTagPlaceholder(this,t)},TagPlaceholder}(),u=function(){function Placeholder(e,t,n){this.value=e,this.name=t,this.sourceSpan=n}return Placeholder.prototype.visit=function(e,t){return e.visitPlaceholder(this,t)},Placeholder}(),l=function(){function IcuPlaceholder(e,t,n){this.value=e,this.name=t,this.sourceSpan=n}return IcuPlaceholder.prototype.visit=function(e,t){return e.visitIcuPlaceholder(this,t)},IcuPlaceholder}()},function(e,t,n){"use strict";var o=n(47),r=n(107),i=n(355),a=n(358),s=n(245),u=n(360),l=n(621);n.d(t,"a",function(){return c});var c=function(){function I18NHtmlParser(e,t,n){this._htmlParser=e,this._translations=t,this._translationsFormat=n}return I18NHtmlParser.prototype.parse=function(e,t,a,s){void 0===a&&(a=!1),void 0===s&&(s=o.a);var u=this._htmlParser.parse(e,t,a,s);if(!this._translations||""===this._translations)return u;if(u.errors.length)return new r.a(u.rootNodes,u.errors);var c=this._createSerializer(),d=l.a.load(this._translations,t,c);return n.i(i.a)(u.rootNodes,d,s,[],{})},I18NHtmlParser.prototype._createSerializer=function(){var e=(this._translationsFormat||"xlf").toLowerCase();switch(e){case"xmb":return new s.c;case"xtb":return new u.a;case"xliff":case"xlf":default:return new a.a}},I18NHtmlParser}()},function(e,t,n){"use strict";var o=n(40);n.d(t,"a",function(){return i});var r=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},i=function(e){function I18nError(t,n){e.call(this,t,n)}return r(I18nError,e),I18nError}(o.a)},function(e,t,n){"use strict";n.d(t,"a",function(){return o});var o=function(){function Serializer(){}return Serializer.prototype.write=function(e){},Serializer.prototype.load=function(e,t){},Serializer.prototype.digest=function(e){},Serializer.prototype.createNameMapper=function(e){return null},Serializer}()},function(e,t,n){"use strict";var o=n(14),r=n(46),i=n(7),a=n(19),s=n(20),u=n(248),l=n(10),c=n(363),d=n(40),p=n(17),g=n(364);n.d(t,"a",function(){return b});var f=this&&this.__decorate||function(e,t,n,o){var r,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,n):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,o);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(i<3?r(a):i>3?r(t,n,a):r(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},h=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},m=function(){function ComponentFactoryDependency(e,t){this.comp=e,this.placeholder=t}return ComponentFactoryDependency}(),y=function(){function NgModuleCompileResult(e,t,n){this.statements=e,this.ngModuleFactoryVar=t,this.dependencies=n}return NgModuleCompileResult}(),b=function(){function NgModuleCompiler(){}return NgModuleCompiler.prototype.compile=function(e,t){var r=n.i(o.m)(e.type),s=n.i(i.f)(r)?"in NgModule "+n.i(o.c)(e.type)+" in "+r:"in NgModule "+n.i(o.c)(e.type),u=new d.b("",s),c=new d.d(new d.c(u,null,null,null),new d.c(u,null,null,null)),p=[],f=[],h=e.transitiveModule.entryComponents.map(function(t){var n={reference:null};return e.bootstrapComponents.some(function(e){return e.reference===t.reference})&&f.push(n),p.push(new m(t,n)),n}),b=new v(e,h,f,c),_=new g.c(e,t,c);_.parse().forEach(function(e){return b.addProvider(e)});var E=b.build(),T=n.i(o.c)(e.type)+"NgFactory",S=l.g(T).set(l.d(n.i(a.e)(a.b.NgModuleFactory)).instantiate([l.g(E.name),l.d(e.type)],l.B(n.i(a.e)(a.b.NgModuleFactory),[l.B(e.type)],[l.J.Const]))).toDeclStmt(null,[l.b.Final]),A=[E,S];if(e.id){var M=l.d(n.i(a.e)(a.b.RegisterModuleFactoryFn)).callFn([l.f(e.id),l.g(T)]).toStmt();A.push(M)}return new y(A,T,p)},NgModuleCompiler=f([n.i(s.a)(),h("design:paramtypes",[])],NgModuleCompiler)}(),v=function(){function _InjectorBuilder(e,t,n,o){this._ngModuleMeta=e,this._entryComponentFactories=t,this._bootstrapComponentFactories=n,this._sourceSpan=o,this.fields=[],this.getters=[],this.methods=[],this.ctorStmts=[],this._tokens=[],this._instances=new Map,this._createStmts=[],this._destroyStmts=[]}return _InjectorBuilder.prototype.addProvider=function(e){var t=this,r=e.providers.map(function(e){return t._getProviderValue(e)}),i="_"+n.i(o.b)(e.token)+"_"+this._instances.size,a=this._createProviderProperty(i,e,r,e.multiProvider,e.eager);e.lifecycleHooks.indexOf(p.H.OnDestroy)!==-1&&this._destroyStmts.push(a.callMethod("ngOnDestroy",[]).toStmt()),this._tokens.push(e.token),this._instances.set(n.i(o.a)(e.token),a)},_InjectorBuilder.prototype.build=function(){var e=this,t=this._tokens.map(function(t){var i=e._instances.get(n.i(o.a)(t));return new l.e(E.token.identical(n.i(r.c)(t)),[new l.t(i)])}),i=[new l.z("createInternal",[],this._createStmts.concat(new l.t(this._instances.get(this._ngModuleMeta.type.reference))),l.B(this._ngModuleMeta.type)),new l.z("getInternal",[new l.r(E.token.name,l.h),new l.r(E.notFoundResult.name,l.h)],t.concat([new l.t(E.notFoundResult)]),l.h),new l.z("destroyInternal",[],this._destroyStmts)],s=[l.g(_.parent.name),l.n(this._entryComponentFactories.map(function(e){return l.d(e)})),l.n(this._bootstrapComponentFactories.map(function(e){return l.d(e)}))],c=n.i(o.c)(this._ngModuleMeta.type)+"Injector";return n.i(u.a)({name:c,ctorParams:[new l.r(_.parent.name,l.B(n.i(a.e)(a.b.Injector)))],parent:l.d(n.i(a.e)(a.b.NgModuleInjector),[l.B(this._ngModuleMeta.type)]),parentArgs:s,builders:[{methods:i},this]})},_InjectorBuilder.prototype._getProviderValue=function(e){var t,o=this;if(n.i(i.f)(e.useExisting))t=this._getDependency({token:e.useExisting});else if(n.i(i.f)(e.useFactory)){var r=e.deps||e.useFactory.diDeps,a=r.map(function(e){return o._getDependency(e)});t=l.d(e.useFactory).callFn(a)}else if(n.i(i.f)(e.useClass)){var r=e.deps||e.useClass.diDeps,a=r.map(function(e){return o._getDependency(e)});t=l.d(e.useClass).instantiate(a,l.B(e.useClass))}else t=n.i(c.a)(e.useValue);return t},_InjectorBuilder.prototype._createProviderProperty=function(e,t,n,o,r){var i,a;if(o?(i=l.n(n),a=new l.u(l.h)):(i=n[0],a=n[0].type),a||(a=l.h),r)this.fields.push(new l.a(e,a)),this._createStmts.push(l.c.prop(e).set(i).toStmt());else{var s="_"+e;this.fields.push(new l.a(s,a));var u=[new l.e(l.c.prop(s).isBlank(),[l.c.prop(s).set(i).toStmt()]),new l.t(l.c.prop(s))];this.getters.push(new l.K(e,u,a))}return l.c.prop(e)},_InjectorBuilder.prototype._getDependency=function(e){var t=null;if(e.isValue&&(t=l.f(e.value)),e.isSkipSelf||(!e.token||n.i(o.a)(e.token)!==n.i(a.a)(a.b.Injector)&&n.i(o.a)(e.token)!==n.i(a.a)(a.b.ComponentFactoryResolver)||(t=l.c),t||(t=this._instances.get(n.i(o.a)(e.token)))),!t){var i=[n.i(r.c)(e.token)];e.isOptional&&i.push(l.k),t=_.parent.callMethod("get",i)}return t},_InjectorBuilder}(),_=function(){function InjectorProps(){}return InjectorProps.parent=l.c.prop("parent"),InjectorProps}(),E=function(){function InjectMethodVars(){}return InjectMethodVars.token=l.g("token"),InjectMethodVars.notFoundResult=l.g("notFoundResult"),InjectMethodVars}()},function(e,t,n){"use strict";function _isPixelDimensionStyle(e){switch(e){case"width":case"height":case"minWidth":case"minHeight":case"maxWidth":case"maxHeight":case"left":case"top":case"bottom":case"right":case"fontSize":case"outlineWidth":case"outlineOffset":case"paddingTop":case"paddingLeft":case"paddingBottom":case"paddingRight":case"marginTop":case"marginLeft":case"marginBottom":case"marginRight":case"borderRadius":case"borderWidth":case"borderTopWidth":case"borderLeftWidth":case"borderRightWidth":case"borderBottomWidth":case"textIndent":return!0;default:return!1}}var o=n(1),r=n(20),i=n(32),a=n(631),s=n(75);n.d(t,"a",function(){return y});var u=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},l=this&&this.__decorate||function(e,t,n,o){var r,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,n):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,o);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(i<3?r(a):i>3?r(t,n,a):r(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},d="boolean",p="number",g="string",f="object",h=["[Element]|textContent,%classList,className,id,innerHTML,*beforecopy,*beforecut,*beforepaste,*copy,*cut,*paste,*search,*selectstart,*webkitfullscreenchange,*webkitfullscreenerror,*wheel,outerHTML,#scrollLeft,#scrollTop","[HTMLElement]^[Element]|accessKey,contentEditable,dir,!draggable,!hidden,innerText,lang,*abort,*beforecopy,*beforecut,*beforepaste,*blur,*cancel,*canplay,*canplaythrough,*change,*click,*close,*contextmenu,*copy,*cuechange,*cut,*dblclick,*drag,*dragend,*dragenter,*dragleave,*dragover,*dragstart,*drop,*durationchange,*emptied,*ended,*error,*focus,*input,*invalid,*keydown,*keypress,*keyup,*load,*loadeddata,*loadedmetadata,*loadstart,*message,*mousedown,*mouseenter,*mouseleave,*mousemove,*mouseout,*mouseover,*mouseup,*mousewheel,*mozfullscreenchange,*mozfullscreenerror,*mozpointerlockchange,*mozpointerlockerror,*paste,*pause,*play,*playing,*progress,*ratechange,*reset,*resize,*scroll,*search,*seeked,*seeking,*select,*selectstart,*show,*stalled,*submit,*suspend,*timeupdate,*toggle,*volumechange,*waiting,*webglcontextcreationerror,*webglcontextlost,*webglcontextrestored,*webkitfullscreenchange,*webkitfullscreenerror,*wheel,outerText,!spellcheck,%style,#tabIndex,title,!translate","abbr,address,article,aside,b,bdi,bdo,cite,code,dd,dfn,dt,em,figcaption,figure,footer,header,i,kbd,main,mark,nav,noscript,rb,rp,rt,rtc,ruby,s,samp,section,small,strong,sub,sup,u,var,wbr^[HTMLElement]|accessKey,contentEditable,dir,!draggable,!hidden,innerText,lang,*abort,*beforecopy,*beforecut,*beforepaste,*blur,*cancel,*canplay,*canplaythrough,*change,*click,*close,*contextmenu,*copy,*cuechange,*cut,*dblclick,*drag,*dragend,*dragenter,*dragleave,*dragover,*dragstart,*drop,*durationchange,*emptied,*ended,*error,*focus,*input,*invalid,*keydown,*keypress,*keyup,*load,*loadeddata,*loadedmetadata,*loadstart,*message,*mousedown,*mouseenter,*mouseleave,*mousemove,*mouseout,*mouseover,*mouseup,*mousewheel,*mozfullscreenchange,*mozfullscreenerror,*mozpointerlockchange,*mozpointerlockerror,*paste,*pause,*play,*playing,*progress,*ratechange,*reset,*resize,*scroll,*search,*seeked,*seeking,*select,*selectstart,*show,*stalled,*submit,*suspend,*timeupdate,*toggle,*volumechange,*waiting,*webglcontextcreationerror,*webglcontextlost,*webglcontextrestored,*webkitfullscreenchange,*webkitfullscreenerror,*wheel,outerText,!spellcheck,%style,#tabIndex,title,!translate","media^[HTMLElement]|!autoplay,!controls,%crossOrigin,#currentTime,!defaultMuted,#defaultPlaybackRate,!disableRemotePlayback,!loop,!muted,*encrypted,#playbackRate,preload,src,%srcObject,#volume",":svg:^[HTMLElement]|*abort,*blur,*cancel,*canplay,*canplaythrough,*change,*click,*close,*contextmenu,*cuechange,*dblclick,*drag,*dragend,*dragenter,*dragleave,*dragover,*dragstart,*drop,*durationchange,*emptied,*ended,*error,*focus,*input,*invalid,*keydown,*keypress,*keyup,*load,*loadeddata,*loadedmetadata,*loadstart,*mousedown,*mouseenter,*mouseleave,*mousemove,*mouseout,*mouseover,*mouseup,*mousewheel,*pause,*play,*playing,*progress,*ratechange,*reset,*resize,*scroll,*seeked,*seeking,*select,*show,*stalled,*submit,*suspend,*timeupdate,*toggle,*volumechange,*waiting,%style,#tabIndex",":svg:graphics^:svg:|",":svg:animation^:svg:|*begin,*end,*repeat",":svg:geometry^:svg:|",":svg:componentTransferFunction^:svg:|",":svg:gradient^:svg:|",":svg:textContent^:svg:graphics|",":svg:textPositioning^:svg:textContent|","a^[HTMLElement]|charset,coords,download,hash,host,hostname,href,hreflang,name,password,pathname,ping,port,protocol,referrerPolicy,rel,rev,search,shape,target,text,type,username","area^[HTMLElement]|alt,coords,hash,host,hostname,href,!noHref,password,pathname,ping,port,protocol,referrerPolicy,search,shape,target,username","audio^media|","br^[HTMLElement]|clear","base^[HTMLElement]|href,target","body^[HTMLElement]|aLink,background,bgColor,link,*beforeunload,*blur,*error,*focus,*hashchange,*languagechange,*load,*message,*offline,*online,*pagehide,*pageshow,*popstate,*rejectionhandled,*resize,*scroll,*storage,*unhandledrejection,*unload,text,vLink","button^[HTMLElement]|!autofocus,!disabled,formAction,formEnctype,formMethod,!formNoValidate,formTarget,name,type,value","canvas^[HTMLElement]|#height,#width","content^[HTMLElement]|select","dl^[HTMLElement]|!compact","datalist^[HTMLElement]|","details^[HTMLElement]|!open","dialog^[HTMLElement]|!open,returnValue","dir^[HTMLElement]|!compact","div^[HTMLElement]|align","embed^[HTMLElement]|align,height,name,src,type,width","fieldset^[HTMLElement]|!disabled,name","font^[HTMLElement]|color,face,size","form^[HTMLElement]|acceptCharset,action,autocomplete,encoding,enctype,method,name,!noValidate,target","frame^[HTMLElement]|frameBorder,longDesc,marginHeight,marginWidth,name,!noResize,scrolling,src","frameset^[HTMLElement]|cols,*beforeunload,*blur,*error,*focus,*hashchange,*languagechange,*load,*message,*offline,*online,*pagehide,*pageshow,*popstate,*rejectionhandled,*resize,*scroll,*storage,*unhandledrejection,*unload,rows","hr^[HTMLElement]|align,color,!noShade,size,width","head^[HTMLElement]|","h1,h2,h3,h4,h5,h6^[HTMLElement]|align","html^[HTMLElement]|version","iframe^[HTMLElement]|align,!allowFullscreen,frameBorder,height,longDesc,marginHeight,marginWidth,name,referrerPolicy,%sandbox,scrolling,src,srcdoc,width","img^[HTMLElement]|align,alt,border,%crossOrigin,#height,#hspace,!isMap,longDesc,lowsrc,name,referrerPolicy,sizes,src,srcset,useMap,#vspace,#width","input^[HTMLElement]|accept,align,alt,autocapitalize,autocomplete,!autofocus,!checked,!defaultChecked,defaultValue,dirName,!disabled,%files,formAction,formEnctype,formMethod,!formNoValidate,formTarget,#height,!incremental,!indeterminate,max,#maxLength,min,#minLength,!multiple,name,pattern,placeholder,!readOnly,!required,selectionDirection,#selectionEnd,#selectionStart,#size,src,step,type,useMap,value,%valueAsDate,#valueAsNumber,#width","keygen^[HTMLElement]|!autofocus,challenge,!disabled,keytype,name","li^[HTMLElement]|type,#value","label^[HTMLElement]|htmlFor","legend^[HTMLElement]|align","link^[HTMLElement]|as,charset,%crossOrigin,!disabled,href,hreflang,integrity,media,rel,%relList,rev,%sizes,target,type","map^[HTMLElement]|name","marquee^[HTMLElement]|behavior,bgColor,direction,height,#hspace,#loop,#scrollAmount,#scrollDelay,!trueSpeed,#vspace,width","menu^[HTMLElement]|!compact","meta^[HTMLElement]|content,httpEquiv,name,scheme","meter^[HTMLElement]|#high,#low,#max,#min,#optimum,#value","ins,del^[HTMLElement]|cite,dateTime","ol^[HTMLElement]|!compact,!reversed,#start,type","object^[HTMLElement]|align,archive,border,code,codeBase,codeType,data,!declare,height,#hspace,name,standby,type,useMap,#vspace,width","optgroup^[HTMLElement]|!disabled,label","option^[HTMLElement]|!defaultSelected,!disabled,label,!selected,text,value","output^[HTMLElement]|defaultValue,%htmlFor,name,value","p^[HTMLElement]|align","param^[HTMLElement]|name,type,value,valueType","picture^[HTMLElement]|","pre^[HTMLElement]|#width","progress^[HTMLElement]|#max,#value","q,blockquote,cite^[HTMLElement]|","script^[HTMLElement]|!async,charset,%crossOrigin,!defer,event,htmlFor,integrity,src,text,type","select^[HTMLElement]|!autofocus,!disabled,#length,!multiple,name,!required,#selectedIndex,#size,value","shadow^[HTMLElement]|","source^[HTMLElement]|media,sizes,src,srcset,type","span^[HTMLElement]|","style^[HTMLElement]|!disabled,media,type","caption^[HTMLElement]|align","th,td^[HTMLElement]|abbr,align,axis,bgColor,ch,chOff,#colSpan,headers,height,!noWrap,#rowSpan,scope,vAlign,width","col,colgroup^[HTMLElement]|align,ch,chOff,#span,vAlign,width","table^[HTMLElement]|align,bgColor,border,%caption,cellPadding,cellSpacing,frame,rules,summary,%tFoot,%tHead,width","tr^[HTMLElement]|align,bgColor,ch,chOff,vAlign","tfoot,thead,tbody^[HTMLElement]|align,ch,chOff,vAlign","template^[HTMLElement]|","textarea^[HTMLElement]|autocapitalize,!autofocus,#cols,defaultValue,dirName,!disabled,#maxLength,#minLength,name,placeholder,!readOnly,!required,#rows,selectionDirection,#selectionEnd,#selectionStart,value,wrap","title^[HTMLElement]|text","track^[HTMLElement]|!default,kind,label,src,srclang","ul^[HTMLElement]|!compact,type","unknown^[HTMLElement]|","video^media|#height,poster,#width",":svg:a^:svg:graphics|",":svg:animate^:svg:animation|",":svg:animateMotion^:svg:animation|",":svg:animateTransform^:svg:animation|",":svg:circle^:svg:geometry|",":svg:clipPath^:svg:graphics|",":svg:cursor^:svg:|",":svg:defs^:svg:graphics|",":svg:desc^:svg:|",":svg:discard^:svg:|",":svg:ellipse^:svg:geometry|",":svg:feBlend^:svg:|",":svg:feColorMatrix^:svg:|",":svg:feComponentTransfer^:svg:|",":svg:feComposite^:svg:|",":svg:feConvolveMatrix^:svg:|",":svg:feDiffuseLighting^:svg:|",":svg:feDisplacementMap^:svg:|",":svg:feDistantLight^:svg:|",":svg:feDropShadow^:svg:|",":svg:feFlood^:svg:|",":svg:feFuncA^:svg:componentTransferFunction|",":svg:feFuncB^:svg:componentTransferFunction|",":svg:feFuncG^:svg:componentTransferFunction|",":svg:feFuncR^:svg:componentTransferFunction|",":svg:feGaussianBlur^:svg:|",":svg:feImage^:svg:|",":svg:feMerge^:svg:|",":svg:feMergeNode^:svg:|",":svg:feMorphology^:svg:|",":svg:feOffset^:svg:|",":svg:fePointLight^:svg:|",":svg:feSpecularLighting^:svg:|",":svg:feSpotLight^:svg:|",":svg:feTile^:svg:|",":svg:feTurbulence^:svg:|",":svg:filter^:svg:|",":svg:foreignObject^:svg:graphics|",":svg:g^:svg:graphics|",":svg:image^:svg:graphics|",":svg:line^:svg:geometry|",":svg:linearGradient^:svg:gradient|",":svg:mpath^:svg:|",":svg:marker^:svg:|",":svg:mask^:svg:|",":svg:metadata^:svg:|",":svg:path^:svg:geometry|",":svg:pattern^:svg:|",":svg:polygon^:svg:geometry|",":svg:polyline^:svg:geometry|",":svg:radialGradient^:svg:gradient|",":svg:rect^:svg:geometry|",":svg:svg^:svg:graphics|#currentScale,#zoomAndPan",":svg:script^:svg:|type",":svg:set^:svg:animation|",":svg:stop^:svg:|",":svg:style^:svg:|!disabled,media,title,type",":svg:switch^:svg:graphics|",":svg:symbol^:svg:|",":svg:tspan^:svg:textPositioning|",":svg:text^:svg:textPositioning|",":svg:textPath^:svg:textContent|",":svg:title^:svg:|",":svg:use^:svg:graphics|",":svg:view^:svg:|#zoomAndPan","data^[HTMLElement]|value","menuitem^[HTMLElement]|type,label,icon,!disabled,!checked,radiogroup,!default","summary^[HTMLElement]|","time^[HTMLElement]|dateTime"],m={"class":"className","for":"htmlFor",formaction:"formAction",innerHtml:"innerHTML",readonly:"readOnly",tabindex:"tabIndex"},y=function(e){function DomElementSchemaRegistry(){var t=this;e.call(this),this._schema={},h.forEach(function(e){var n={},o=e.split("|"),r=o[0],i=o[1],a=i.split(","),s=r.split("^"),u=s[0],l=s[1];u.split(",").forEach(function(e){return t._schema[e.toLowerCase()]=n});var c=l&&t._schema[l.toLowerCase()];c&&Object.keys(c).forEach(function(e){n[e]=c[e]}),a.forEach(function(e){if(e.length>0)switch(e[0]){case"*":break;case"!":n[e.substring(1)]=d;break;case"#":n[e.substring(1)]=p;break;case"%":n[e.substring(1)]=f;break;default:n[e]=g}})})}return u(DomElementSchemaRegistry,e),DomElementSchemaRegistry.prototype.hasProperty=function(e,t,n){if(n.some(function(e){return e.name===o.NO_ERRORS_SCHEMA.name}))return!0;if(e.indexOf("-")>-1){if("ng-container"===e||"ng-content"===e)return!1;if(n.some(function(e){return e.name===o.CUSTOM_ELEMENTS_SCHEMA.name}))return!0}var r=this._schema[e.toLowerCase()]||this._schema.unknown;return!!r[t]},DomElementSchemaRegistry.prototype.hasElement=function(e,t){if(t.some(function(e){return e.name===o.NO_ERRORS_SCHEMA.name}))return!0;if(e.indexOf("-")>-1){if("ng-container"===e||"ng-content"===e)return!0;if(t.some(function(e){return e.name===o.CUSTOM_ELEMENTS_SCHEMA.name}))return!0}return!!this._schema[e.toLowerCase()]},DomElementSchemaRegistry.prototype.securityContext=function(e,t,n){n&&(t=this.getMappedPropName(t)),e=e.toLowerCase(),t=t.toLowerCase();var r=a.a[e+"|"+t];return r?r:(r=a.a["*|"+t],r?r:o.SecurityContext.NONE)},DomElementSchemaRegistry.prototype.getMappedPropName=function(e){return m[e]||e},DomElementSchemaRegistry.prototype.getDefaultComponentElementName=function(){return"ng-component"},DomElementSchemaRegistry.prototype.validateProperty=function(e){if(e.toLowerCase().startsWith("on")){var t="Binding to event property '"+e+"' is disallowed for security reasons, "+("please use ("+e.slice(2)+")=...")+("\nIf '"+e+"' is a directive input, make sure the directive is imported by the")+" current module.";return{error:!0,msg:t}}return{error:!1}},DomElementSchemaRegistry.prototype.validateAttribute=function(e){if(e.toLowerCase().startsWith("on")){var t="Binding to event attribute '"+e+"' is disallowed for security reasons, "+("please use ("+e.slice(2)+")=...");return{error:!0,msg:t}}return{error:!1}},DomElementSchemaRegistry.prototype.allKnownElementNames=function(){return Object.keys(this._schema)},DomElementSchemaRegistry.prototype.normalizeAnimationStyleProperty=function(e){return n.i(i.h)(e)},DomElementSchemaRegistry.prototype.normalizeAnimationStyleValue=function(e,t,n){var o="",r=n.toString().trim(),i=null;if(_isPixelDimensionStyle(e)&&0!==n&&"0"!==n)if("number"==typeof n)o="px";else{var a=n.match(/^[+-]?[\d\.]+([a-z]*)$/);a&&0==a[1].length&&(i="Please provide a CSS unit value for "+t+":"+n)}return{error:i,value:r+o}},DomElementSchemaRegistry=l([n.i(r.a)(),c("design:paramtypes",[])],DomElementSchemaRegistry)}(s.a)},function(e,t,n){"use strict";var o=n(246);n.d(t,"a",function(){return i}),n.d(t,"b",function(){return a});var r=new RegExp("(\\:not\\()|([-\\w]+)|(?:\\.([-\\w]+))|(?:\\[([-.\\w*]+)(?:=([^\\]]*))?\\])|(\\))|(\\s*,\\s*)","g"),i=function(){function CssSelector(){this.element=null,this.classNames=[],this.attrs=[],this.notSelectors=[]}return CssSelector.parse=function(e){var t,n=[],o=function(e,t){t.notSelectors.length>0&&!t.element&&0==t.classNames.length&&0==t.attrs.length&&(t.element="*"),e.push(t)},i=new CssSelector,a=i,s=!1;for(r.lastIndex=0;t=r.exec(e);){if(t[1]){if(s)throw new Error("Nesting :not is not allowed in a selector");s=!0,a=new CssSelector,i.notSelectors.push(a)}if(t[2]&&a.setElement(t[2]),t[3]&&a.addClassName(t[3]),t[4]&&a.addAttribute(t[4],t[5]),t[6]&&(s=!1,a=i),t[7]){if(s)throw new Error("Multiple selectors in :not are not supported");o(n,i),i=a=new CssSelector}}return o(n,i),n},CssSelector.prototype.isElementSelector=function(){return this.hasElementSelector()&&0==this.classNames.length&&0==this.attrs.length&&0===this.notSelectors.length},CssSelector.prototype.hasElementSelector=function(){return!!this.element},CssSelector.prototype.setElement=function(e){void 0===e&&(e=null),this.element=e},CssSelector.prototype.getMatchingElementTemplate=function(){for(var e=this.element||"div",t=this.classNames.length>0?' class="'+this.classNames.join(" ")+'"':"",r="",i=0;i<this.attrs.length;i+=2){var a=this.attrs[i],s=""!==this.attrs[i+1]?'="'+this.attrs[i+1]+'"':"";r+=" "+a+s}return n.i(o.a)(e).isVoid?"<"+e+t+r+"/>":"<"+e+t+r+"></"+e+">"},CssSelector.prototype.addAttribute=function(e,t){void 0===t&&(t=""),this.attrs.push(e,t&&t.toLowerCase()||"")},CssSelector.prototype.addClassName=function(e){this.classNames.push(e.toLowerCase())},CssSelector.prototype.toString=function(){var e=this.element||"";if(this.classNames&&this.classNames.forEach(function(t){return e+="."+t}),this.attrs)for(var t=0;t<this.attrs.length;t+=2){var n=this.attrs[t],o=this.attrs[t+1];e+="["+n+(o?"="+o:"")+"]"}return this.notSelectors.forEach(function(t){return e+=":not("+t+")"}),e},CssSelector}(),a=function(){function SelectorMatcher(){this._elementMap=new Map,this._elementPartialMap=new Map,this._classMap=new Map,this._classPartialMap=new Map,this._attrValueMap=new Map,this._attrValuePartialMap=new Map,this._listContexts=[]}return SelectorMatcher.createNotMatcher=function(e){var t=new SelectorMatcher;return t.addSelectables(e,null),t},SelectorMatcher.prototype.addSelectables=function(e,t){var n=null;e.length>1&&(n=new s(e),this._listContexts.push(n));for(var o=0;o<e.length;o++)this._addSelectable(e[o],t,n)},SelectorMatcher.prototype._addSelectable=function(e,t,n){var o=this,r=e.element,i=e.classNames,a=e.attrs,s=new u(e,t,n);if(r){var l=0===a.length&&0===i.length;l?this._addTerminal(o._elementMap,r,s):o=this._addPartial(o._elementPartialMap,r)}if(i)for(var c=0;c<i.length;c++){var l=0===a.length&&c===i.length-1,d=i[c];l?this._addTerminal(o._classMap,d,s):o=this._addPartial(o._classPartialMap,d)}if(a)for(var c=0;c<a.length;c+=2){var l=c===a.length-2,p=a[c],g=a[c+1];if(l){var f=o._attrValueMap,h=f.get(p);h||(h=new Map,f.set(p,h)),this._addTerminal(h,g,s)}else{var m=o._attrValuePartialMap,y=m.get(p);y||(y=new Map,m.set(p,y)),o=this._addPartial(y,g)}}},SelectorMatcher.prototype._addTerminal=function(e,t,n){var o=e.get(t);o||(o=[],e.set(t,o)),o.push(n)},SelectorMatcher.prototype._addPartial=function(e,t){var n=e.get(t);return n||(n=new SelectorMatcher,e.set(t,n)),n},SelectorMatcher.prototype.match=function(e,t){for(var n=!1,o=e.element,r=e.classNames,i=e.attrs,a=0;a<this._listContexts.length;a++)this._listContexts[a].alreadyMatched=!1;if(n=this._matchTerminal(this._elementMap,o,e,t)||n,n=this._matchPartial(this._elementPartialMap,o,e,t)||n,r)for(var a=0;a<r.length;a++){var s=r[a];n=this._matchTerminal(this._classMap,s,e,t)||n,n=this._matchPartial(this._classPartialMap,s,e,t)||n}if(i)for(var a=0;a<i.length;a+=2){var u=i[a],l=i[a+1],c=this._attrValueMap.get(u);l&&(n=this._matchTerminal(c,"",e,t)||n),n=this._matchTerminal(c,l,e,t)||n;var d=this._attrValuePartialMap.get(u);l&&(n=this._matchPartial(d,"",e,t)||n),n=this._matchPartial(d,l,e,t)||n}return n},SelectorMatcher.prototype._matchTerminal=function(e,t,n,o){if(!e||"string"!=typeof t)return!1;var r=e.get(t)||[],i=e.get("*");if(i&&(r=r.concat(i)),0===r.length)return!1;for(var a,s=!1,u=0;u<r.length;u++)a=r[u],s=a.finalize(n,o)||s;return s},SelectorMatcher.prototype._matchPartial=function(e,t,n,o){if(!e||"string"!=typeof t)return!1;var r=e.get(t);return!!r&&r.match(n,o)},SelectorMatcher}(),s=function(){function SelectorListContext(e){this.selectors=e,this.alreadyMatched=!1}return SelectorListContext}(),u=function(){function SelectorContext(e,t,n){this.selector=e,this.cbContext=t,this.listContext=n,this.notSelectors=e.notSelectors}return SelectorContext.prototype.finalize=function(e,t){var n=!0;if(this.notSelectors.length>0&&(!this.listContext||!this.listContext.alreadyMatched)){var o=a.createNotMatcher(this.notSelectors);n=!o.match(e,null)}return!n||!t||this.listContext&&this.listContext.alreadyMatched||(this.listContext&&(this.listContext.alreadyMatched=!0),t(this.selector,this.cbContext)),n},SelectorContext}()},function(e,t,n){"use strict";function getStylesVarName(e){var t="styles";return e&&(t+="_"+n.i(r.c)(e.type)),t}var o=n(1),r=n(14),i=n(20),a=n(10),s=n(632),u=n(88);n.d(t,"a",function(){return y});var l=this&&this.__decorate||function(e,t,n,o){var r,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,n):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,o);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(i<3?r(a):i>3?r(t,n,a):r(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},c=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},d="%COMP%",p="_nghost-"+d,g="_ngcontent-"+d,f=function(){function StylesCompileDependency(e,t,n,o){this.name=e,this.moduleUrl=t,this.isShimmed=n,this.valuePlaceholder=o}return StylesCompileDependency}(),h=function(){function StylesCompileResult(e,t){this.componentStylesheet=e,this.externalStylesheets=t}return StylesCompileResult}(),m=function(){function CompiledStylesheet(e,t,n,o,r){this.statements=e,this.stylesVar=t,this.dependencies=n,this.isShimmed=o,this.meta=r}return CompiledStylesheet}(),y=function(){function StyleCompiler(e){this._urlResolver=e,this._shadowCss=new s.a}return StyleCompiler.prototype.compileComponent=function(e){var t=this,o=[],i=this._compileStyles(e,new r.k({styles:e.template.styles,styleUrls:e.template.styleUrls,moduleUrl:n.i(r.m)(e.type)}),!0);return e.template.externalStylesheets.forEach(function(n){var r=t._compileStyles(e,n,!1);o.push(r)}),new h(i,o)},StyleCompiler.prototype._compileStyles=function(e,t,n){for(var r=this,i=e.template.encapsulation===o.ViewEncapsulation.Emulated,s=t.styles.map(function(e){return a.f(r._shimIfNeeded(e,i))}),u=[],l=0;l<t.styleUrls.length;l++){var c={reference:null};u.push(new f(getStylesVarName(null),t.styleUrls[l],i,c)),s.push(new a.Q(c))}var d=getStylesVarName(n?e:null),p=a.g(d).set(a.n(s,new a.u(a.h,[a.J.Const]))).toDeclStmt(null,[a.b.Final]);return new m([p],d,u,i,t)},StyleCompiler.prototype._shimIfNeeded=function(e,t){return t?this._shadowCss.shimCssText(e,g,p):e},StyleCompiler=l([n.i(i.a)(),c("design:paramtypes",[u.a])],StyleCompiler)}()},function(e,t,n){"use strict";var o=n(46),r=n(19),i=n(10);n.d(t,"f",function(){return a}),n.d(t,"d",function(){return s}),n.d(t,"g",function(){return u}),n.d(t,"e",function(){return l}),n.d(t,"c",function(){return c}),n.d(t,"a",function(){return d}),n.d(t,"b",function(){return p});var a=function(){function ViewTypeEnum(){}return ViewTypeEnum.fromValue=function(e){return n.i(o.b)(r.b.ViewType,e)},ViewTypeEnum}(),s=function(){function ViewEncapsulationEnum(){}return ViewEncapsulationEnum.fromValue=function(e){return n.i(o.b)(r.b.ViewEncapsulation,e)},ViewEncapsulationEnum}(),u=function(){function ChangeDetectorStatusEnum(){}return ChangeDetectorStatusEnum.fromValue=function(e){return n.i(o.b)(r.b.ChangeDetectorStatus,e)},ChangeDetectorStatusEnum}(),l=function(){function ViewConstructorVars(){}return ViewConstructorVars.viewUtils=i.g("viewUtils"),ViewConstructorVars.parentView=i.g("parentView"),ViewConstructorVars.parentIndex=i.g("parentIndex"),ViewConstructorVars.parentElement=i.g("parentElement"),ViewConstructorVars}(),c=function(){function ViewProperties(){}return ViewProperties.renderer=i.c.prop("renderer"),ViewProperties.viewUtils=i.c.prop("viewUtils"),ViewProperties}(),d=function(){function InjectMethodVars(){}return InjectMethodVars.token=i.g("token"),InjectMethodVars.requestNodeIndex=i.g("requestNodeIndex"),InjectMethodVars.notFoundResult=i.g("notFoundResult"),InjectMethodVars}(),p=function(){function DetectChangesVars(){}return DetectChangesVars.throwOnChange=i.g("throwOnChange"),DetectChangesVars.changes=i.g("changes"),DetectChangesVars.changed=i.g("changed"),DetectChangesVars}()},function(e,t,n){"use strict";function _appIdRandomProviderFactory(){return""+_randomChar()+_randomChar()+_randomChar()}function _randomChar(){return String.fromCharCode(97+Math.floor(25*Math.random()))}var o=n(41);n.d(t,"e",function(){return r}),n.d(t,"c",function(){return i}),n.d(t,"a",function(){return a}),n.d(t,"b",function(){return s}),n.d(t,"d",function(){return u});var r=new o.a("AppId"),i={provide:r,useFactory:_appIdRandomProviderFactory,deps:[]},a=new o.a("Platform Initializer"),s=new o.a("appBootstrapListener"),u=new o.a("Application Packages Root URL")},function(e,t,n){"use strict";var o=n(257),r=n(380),i=n(381),a=n(382),s=n(178),u=n(379),l=n(179);n.d(t,"b",function(){return p}),n.d(t,"c",function(){return g}),n.d(t,"i",function(){return s.d}),n.d(t,"j",function(){return s.e}),n.d(t,"a",function(){return s.b}),n.d(t,"h",function(){return u.a}),n.d(t,"g",function(){return l.a}),n.d(t,"f",function(){return l.b}),n.d(t,"k",function(){return o.b}),n.d(t,"l",function(){return o.c}),n.d(t,"m",function(){return r.b}),n.d(t,"d",function(){return i.a}),n.d(t,"e",function(){return a.a;
});var c=[new r.a],d=[new o.a],p=new i.a(d),g=new a.a(c)},function(e,t,n){"use strict";function devModeEqual(e,t){return n.i(o.a)(e)&&n.i(o.a)(t)?n.i(o.c)(e,t,devModeEqual):!(n.i(o.a)(e)||n.i(r.k)(e)||n.i(o.a)(t)||n.i(r.k)(t))||n.i(r.i)(e,t)}var o=n(132),r=n(8);n.d(t,"a",function(){return i}),t.b=devModeEqual,n.d(t,"e",function(){return a}),n.d(t,"c",function(){return s}),n.d(t,"d",function(){return u});var i={toString:function(){return"CD_INIT_VALUE"}},a=function(){function WrappedValue(e){this.wrapped=e}return WrappedValue.wrap=function(e){return new WrappedValue(e)},WrappedValue}(),s=function(){function ValueUnwrapper(){this.hasWrappedValue=!1}return ValueUnwrapper.prototype.unwrap=function(e){return e instanceof a?(this.hasWrappedValue=!0,e.wrapped):e},ValueUnwrapper.prototype.reset=function(){this.hasWrappedValue=!1},ValueUnwrapper}(),u=function(){function SimpleChange(e,t){this.previousValue=e,this.currentValue=t}return SimpleChange.prototype.isFirstChange=function(){return this.previousValue===i},SimpleChange}()},function(e,t,n){"use strict";function isDefaultChangeDetectionStrategy(e){return n.i(o.c)(e)||e===r.Default}var o=n(8);n.d(t,"a",function(){return r}),n.d(t,"b",function(){return i}),t.c=isDefaultChangeDetectionStrategy;var r={};r.OnPush=0,r.Default=1,r[r.OnPush]="OnPush",r[r.Default]="Default";var i={};i.CheckOnce=0,i.Checked=1,i.CheckAlways=2,i.Detached=3,i.Errored=4,i.Destroyed=5,i[i.CheckOnce]="CheckOnce",i[i.Checked]="Checked",i[i.CheckAlways]="CheckAlways",i[i.Detached]="Detached",i[i.Errored]="Errored",i[i.Destroyed]="Destroyed"},function(e,t,n){"use strict";n.d(t,"a",function(){return r}),n.d(t,"b",function(){return i});var o=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},r=function(e){function BaseError(t){e.call(this,t);var n=new Error(t);this._nativeError=n}return o(BaseError,e),Object.defineProperty(BaseError.prototype,"message",{get:function(){return this._nativeError.message},set:function(e){this._nativeError.message=e},enumerable:!0,configurable:!0}),Object.defineProperty(BaseError.prototype,"name",{get:function(){return this._nativeError.name},enumerable:!0,configurable:!0}),Object.defineProperty(BaseError.prototype,"stack",{get:function(){return this._nativeError.stack},set:function(e){this._nativeError.stack=e},enumerable:!0,configurable:!0}),BaseError.prototype.toString=function(){return this._nativeError.toString()},BaseError}(Error),i=function(e){function WrappedError(t,n){e.call(this,t+" caused by: "+(n instanceof Error?n.message:n)),this.originalError=n}return o(WrappedError,e),Object.defineProperty(WrappedError.prototype,"stack",{get:function(){return(this.originalError instanceof Error?this.originalError:this._nativeError).stack},enumerable:!0,configurable:!0}),WrappedError}(r)},function(e,t,n){"use strict";var o=n(180),r=n(8);n.d(t,"a",function(){return u}),n.d(t,"b",function(){return l});var i=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},a=function(e){function NoComponentFactoryError(t){e.call(this,"No component factory found for "+n.i(r.b)(t)+". Did you add it to @NgModule.entryComponents?"),this.component=t}return i(NoComponentFactoryError,e),NoComponentFactoryError}(o.a),s=function(){function _NullComponentFactoryResolver(){}return _NullComponentFactoryResolver.prototype.resolveComponentFactory=function(e){throw new a(e)},_NullComponentFactoryResolver}(),u=function(){function ComponentFactoryResolver(){}return ComponentFactoryResolver.prototype.resolveComponentFactory=function(e){},ComponentFactoryResolver.NULL=new s,ComponentFactoryResolver}(),l=function(){function CodegenComponentFactoryResolver(e,t){this._parent=t,this._factories=new Map;for(var n=0;n<e.length;n++){var o=e[n];this._factories.set(o.componentType,o)}}return CodegenComponentFactoryResolver.prototype.resolveComponentFactory=function(e){var t=this._factories.get(e);return t||(t=this._parent.resolveComponentFactory(e)),t},CodegenComponentFactoryResolver}()},function(e,t,n){"use strict";n.d(t,"a",function(){return o});var o=function(){function ElementRef(e){this.nativeElement=e}return ElementRef}()},function(e,t,n){"use strict";n.d(t,"a",function(){return o});var o={};o.HOST=0,o.COMPONENT=1,o.EMBEDDED=2,o[o.HOST]="HOST",o[o.COMPONENT]="COMPONENT",o[o.EMBEDDED]="EMBEDDED"},function(e,t,n){"use strict";function createRenderComponentType(e,t,n,o,r){return new u.b(""+g++,e,t,n,o,r)}function addToArray(e,t){t.push(e)}function interpolate(e,t){for(var n="",o=0;o<2*e;o+=2)n=n+t[o]+_toStringWithNull(t[o+1]);return n+t[2*e]}function inlineInterpolate(e,t,n,o,r,i,a,s,u,l,c,d,p,g,f,h,m,y,b,v){switch(e){case 1:return t+_toStringWithNull(n)+o;case 2:return t+_toStringWithNull(n)+o+_toStringWithNull(r)+i;case 3:return t+_toStringWithNull(n)+o+_toStringWithNull(r)+i+_toStringWithNull(a)+s;case 4:return t+_toStringWithNull(n)+o+_toStringWithNull(r)+i+_toStringWithNull(a)+s+_toStringWithNull(u)+l;case 5:return t+_toStringWithNull(n)+o+_toStringWithNull(r)+i+_toStringWithNull(a)+s+_toStringWithNull(u)+l+_toStringWithNull(c)+d;case 6:return t+_toStringWithNull(n)+o+_toStringWithNull(r)+i+_toStringWithNull(a)+s+_toStringWithNull(u)+l+_toStringWithNull(c)+d+_toStringWithNull(p)+g;case 7:return t+_toStringWithNull(n)+o+_toStringWithNull(r)+i+_toStringWithNull(a)+s+_toStringWithNull(u)+l+_toStringWithNull(c)+d+_toStringWithNull(p)+g+_toStringWithNull(f)+h;case 8:return t+_toStringWithNull(n)+o+_toStringWithNull(r)+i+_toStringWithNull(a)+s+_toStringWithNull(u)+l+_toStringWithNull(c)+d+_toStringWithNull(p)+g+_toStringWithNull(f)+h+_toStringWithNull(m)+y;case 9:return t+_toStringWithNull(n)+o+_toStringWithNull(r)+i+_toStringWithNull(a)+s+_toStringWithNull(u)+l+_toStringWithNull(c)+d+_toStringWithNull(p)+g+_toStringWithNull(f)+h+_toStringWithNull(m)+y+_toStringWithNull(b)+v;default:throw new Error("Does not support more than 9 expressions")}}function _toStringWithNull(e){return null!=e?e.toString():""}function checkBinding(e,t,o){if(e){if(!n.i(r.a)(t,o))throw new d.a(t,o);return!1}return!n.i(s.i)(t,o)}function castByValue(e,t){return e}function pureProxy1(e){var t,o=i.a;return function(r){return n.i(s.i)(o,r)||(o=r,t=e(r)),t}}function pureProxy2(e){var t,o=i.a,r=i.a;return function(i,a){return n.i(s.i)(o,i)&&n.i(s.i)(r,a)||(o=i,r=a,t=e(i,a)),t}}function pureProxy3(e){var t,o=i.a,r=i.a,a=i.a;return function(i,u,l){return n.i(s.i)(o,i)&&n.i(s.i)(r,u)&&n.i(s.i)(a,l)||(o=i,r=u,a=l,t=e(i,u,l)),t}}function pureProxy4(e){var t,o,r,a,u;return o=r=a=u=i.a,function(i,l,c,d){return n.i(s.i)(o,i)&&n.i(s.i)(r,l)&&n.i(s.i)(a,c)&&n.i(s.i)(u,d)||(o=i,r=l,a=c,u=d,t=e(i,l,c,d)),t}}function pureProxy5(e){var t,o,r,a,u,l;return o=r=a=u=l=i.a,function(i,c,d,p,g){return n.i(s.i)(o,i)&&n.i(s.i)(r,c)&&n.i(s.i)(a,d)&&n.i(s.i)(u,p)&&n.i(s.i)(l,g)||(o=i,r=c,a=d,u=p,l=g,t=e(i,c,d,p,g)),t}}function pureProxy6(e){var t,o,r,a,u,l,c;return o=r=a=u=l=c=i.a,function(i,d,p,g,f,h){return n.i(s.i)(o,i)&&n.i(s.i)(r,d)&&n.i(s.i)(a,p)&&n.i(s.i)(u,g)&&n.i(s.i)(l,f)&&n.i(s.i)(c,h)||(o=i,r=d,a=p,u=g,l=f,c=h,t=e(i,d,p,g,f,h)),t}}function pureProxy7(e){var t,o,r,a,u,l,c,d;return o=r=a=u=l=c=d=i.a,function(i,p,g,f,h,m,y){return n.i(s.i)(o,i)&&n.i(s.i)(r,p)&&n.i(s.i)(a,g)&&n.i(s.i)(u,f)&&n.i(s.i)(l,h)&&n.i(s.i)(c,m)&&n.i(s.i)(d,y)||(o=i,r=p,a=g,u=f,l=h,c=m,d=y,t=e(i,p,g,f,h,m,y)),t}}function pureProxy8(e){var t,o,r,a,u,l,c,d,p;return o=r=a=u=l=c=d=p=i.a,function(i,g,f,h,m,y,b,v){return n.i(s.i)(o,i)&&n.i(s.i)(r,g)&&n.i(s.i)(a,f)&&n.i(s.i)(u,h)&&n.i(s.i)(l,m)&&n.i(s.i)(c,y)&&n.i(s.i)(d,b)&&n.i(s.i)(p,v)||(o=i,r=g,a=f,u=h,l=m,c=y,d=b,p=v,t=e(i,g,f,h,m,y,b,v)),t}}function pureProxy9(e){var t,o,r,a,u,l,c,d,p,g;return o=r=a=u=l=c=d=p=g=i.a,function(i,f,h,m,y,b,v,_,E){return n.i(s.i)(o,i)&&n.i(s.i)(r,f)&&n.i(s.i)(a,h)&&n.i(s.i)(u,m)&&n.i(s.i)(l,y)&&n.i(s.i)(c,b)&&n.i(s.i)(d,v)&&n.i(s.i)(p,_)&&n.i(s.i)(g,E)||(o=i,r=f,a=h,u=m,l=y,c=b,d=v,p=_,g=E,t=e(i,f,h,m,y,b,v,_,E)),t}}function pureProxy10(e){var t,o,r,a,u,l,c,d,p,g,f;return o=r=a=u=l=c=d=p=g=f=i.a,function(i,h,m,y,b,v,_,E,T,S){return n.i(s.i)(o,i)&&n.i(s.i)(r,h)&&n.i(s.i)(a,m)&&n.i(s.i)(u,y)&&n.i(s.i)(l,b)&&n.i(s.i)(c,v)&&n.i(s.i)(d,_)&&n.i(s.i)(p,E)&&n.i(s.i)(g,T)&&n.i(s.i)(f,S)||(o=i,r=h,a=m,u=y,l=b,c=v,d=_,p=E,g=T,f=S,t=e(i,h,m,y,b,v,_,E,T,S)),t}}function setBindingDebugInfoForChanges(e,t,n){Object.keys(n).forEach(function(o){setBindingDebugInfo(e,t,o,n[o].currentValue)})}function setBindingDebugInfo(e,t,n,o){try{e.setBindingDebugInfo(t,"ng-reflect-"+camelCaseToDashCase(n),o?o.toString():null)}catch(r){e.setBindingDebugInfo(t,"ng-reflect-"+camelCaseToDashCase(n),"[ERROR] Exception while trying to serialize the value")}}function camelCaseToDashCase(e){return e.replace(m,function(){for(var e=[],t=0;t<arguments.length;t++)e[t-0]=arguments[t];return"-"+e[1].toLowerCase()})}function createRenderElement(e,t,n,o,r){for(var i=e.createElement(t,n,r),a=0;a<o.length;a+=2)e.setElementAttribute(i,o.get(a),o.get(a+1));return i}function selectOrCreateRenderHostElement(e,t,o,r,i){var a;if(n.i(s.d)(r)){a=e.selectRootElement(r,i);for(var u=0;u<o.length;u+=2)e.setElementAttribute(a,o.get(u),o.get(u+1));e.setElementAttribute(a,"ng-version",c.a.full)}else a=createRenderElement(e,null,t,o,i);return a}function subscribeToRenderElement(e,t,n,o){for(var r=createEmptyInlineArray(n.length/2),i=0;i<n.length;i+=2){var a=n.get(i),s=n.get(i+1),u=void 0;u=s?e.renderer.listenGlobal(s,a,o.bind(e,s+":"+a)):e.renderer.listen(t,a,o.bind(e,a)),r.set(i/2,u)}return disposeInlineArray.bind(null,r)}function disposeInlineArray(e){for(var t=0;t<e.length;t++)e.get(t)()}function noop(){}function createEmptyInlineArray(e){var t;return new(t=e<=2?b:e<=4?v:e<=8?_:e<=16?E:T)(e)}var o=n(374),r=n(177),i=n(178),a=n(41),s=n(8),u=n(267),l=n(399),c=n(400),d=n(388);n.d(t,"ViewUtils",function(){return p}),t.createRenderComponentType=createRenderComponentType,t.addToArray=addToArray,t.interpolate=interpolate,t.inlineInterpolate=inlineInterpolate,t.checkBinding=checkBinding,t.castByValue=castByValue,n.d(t,"EMPTY_ARRAY",function(){return f}),n.d(t,"EMPTY_MAP",function(){return h}),t.pureProxy1=pureProxy1,t.pureProxy2=pureProxy2,t.pureProxy3=pureProxy3,t.pureProxy4=pureProxy4,t.pureProxy5=pureProxy5,t.pureProxy6=pureProxy6,t.pureProxy7=pureProxy7,t.pureProxy8=pureProxy8,t.pureProxy9=pureProxy9,t.pureProxy10=pureProxy10,t.setBindingDebugInfoForChanges=setBindingDebugInfoForChanges,t.setBindingDebugInfo=setBindingDebugInfo,t.createRenderElement=createRenderElement,t.selectOrCreateRenderHostElement=selectOrCreateRenderHostElement,t.subscribeToRenderElement=subscribeToRenderElement,t.noop=noop,n.d(t,"InlineArray2",function(){return b}),n.d(t,"InlineArray4",function(){return v}),n.d(t,"InlineArray8",function(){return _}),n.d(t,"InlineArray16",function(){return E}),n.d(t,"InlineArrayDynamic",function(){return T}),n.d(t,"EMPTY_INLINE_ARRAY",function(){return S});var p=function(){function ViewUtils(e,t,n){this._renderer=e,this.animationQueue=n,this.sanitizer=t}return ViewUtils.prototype.renderComponent=function(e){return this._renderer.renderComponent(e)},ViewUtils.decorators=[{type:a.b}],ViewUtils.ctorParameters=function(){return[{type:u.a},{type:l.a},{type:o.a}]},ViewUtils}(),g=0,f=[],h={},m=/([A-Z])/g,y=function(){function InlineArray0(){this.length=0}return InlineArray0.prototype.get=function(e){},InlineArray0.prototype.set=function(e,t){},InlineArray0}(),b=function(){function InlineArray2(e,t,n){this.length=e,this._v0=t,this._v1=n}return InlineArray2.prototype.get=function(e){switch(e){case 0:return this._v0;case 1:return this._v1;default:return}},InlineArray2.prototype.set=function(e,t){switch(e){case 0:this._v0=t;break;case 1:this._v1=t}},InlineArray2}(),v=function(){function InlineArray4(e,t,n,o,r){this.length=e,this._v0=t,this._v1=n,this._v2=o,this._v3=r}return InlineArray4.prototype.get=function(e){switch(e){case 0:return this._v0;case 1:return this._v1;case 2:return this._v2;case 3:return this._v3;default:return}},InlineArray4.prototype.set=function(e,t){switch(e){case 0:this._v0=t;break;case 1:this._v1=t;break;case 2:this._v2=t;break;case 3:this._v3=t}},InlineArray4}(),_=function(){function InlineArray8(e,t,n,o,r,i,a,s,u){this.length=e,this._v0=t,this._v1=n,this._v2=o,this._v3=r,this._v4=i,this._v5=a,this._v6=s,this._v7=u}return InlineArray8.prototype.get=function(e){switch(e){case 0:return this._v0;case 1:return this._v1;case 2:return this._v2;case 3:return this._v3;case 4:return this._v4;case 5:return this._v5;case 6:return this._v6;case 7:return this._v7;default:return}},InlineArray8.prototype.set=function(e,t){switch(e){case 0:this._v0=t;break;case 1:this._v1=t;break;case 2:this._v2=t;break;case 3:this._v3=t;break;case 4:this._v4=t;break;case 5:this._v5=t;break;case 6:this._v6=t;break;case 7:this._v7=t}},InlineArray8}(),E=function(){function InlineArray16(e,t,n,o,r,i,a,s,u,l,c,d,p,g,f,h,m){this.length=e,this._v0=t,this._v1=n,this._v2=o,this._v3=r,this._v4=i,this._v5=a,this._v6=s,this._v7=u,this._v8=l,this._v9=c,this._v10=d,this._v11=p,this._v12=g,this._v13=f,this._v14=h,this._v15=m}return InlineArray16.prototype.get=function(e){switch(e){case 0:return this._v0;case 1:return this._v1;case 2:return this._v2;case 3:return this._v3;case 4:return this._v4;case 5:return this._v5;case 6:return this._v6;case 7:return this._v7;case 8:return this._v8;case 9:return this._v9;case 10:return this._v10;case 11:return this._v11;case 12:return this._v12;case 13:return this._v13;case 14:return this._v14;case 15:return this._v15;default:return}},InlineArray16.prototype.set=function(e,t){switch(e){case 0:this._v0=t;break;case 1:this._v1=t;break;case 2:this._v2=t;break;case 3:this._v3=t;break;case 4:this._v4=t;break;case 5:this._v5=t;break;case 6:this._v6=t;break;case 7:this._v7=t;break;case 8:this._v8=t;break;case 9:this._v9=t;break;case 10:this._v10=t;break;case 11:this._v11=t;break;case 12:this._v12=t;break;case 13:this._v13=t;break;case 14:this._v14=t;break;case 15:this._v15=t}},InlineArray16}(),T=function(){function InlineArrayDynamic(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];this.length=e,this._values=t}return InlineArrayDynamic.prototype.get=function(e){return this._values[e]},InlineArrayDynamic.prototype.set=function(e,t){this._values[e]=t},InlineArrayDynamic}(),S=new y},function(e,t,n){"use strict";function noopScope(e,t){return null}var o=n(661);n.d(t,"b",function(){return i}),n.d(t,"a",function(){return a}),n.d(t,"c",function(){return s}),n.d(t,"d",function(){return u});var r=n.i(o.a)(),i=r?o.b:function(e,t){return noopScope},a=r?o.c:function(e,t){return t},s=r?o.d:function(e,t){return null},u=r?o.e:function(e){return null}},function(e,t,n){"use strict";var o=n(263);n.d(t,"a",function(){return r});var r=function(){function NgZone(e){var t=e.enableLongStackTrace,n=void 0!==t&&t;if(this._hasPendingMicrotasks=!1,this._hasPendingMacrotasks=!1,this._isStable=!0,this._nesting=0,this._onUnstable=new o.a((!1)),this._onMicrotaskEmpty=new o.a((!1)),this._onStable=new o.a((!1)),this._onErrorEvents=new o.a((!1)),"undefined"==typeof Zone)throw new Error("Angular requires Zone.js prolyfill.");Zone.assertZonePatched(),this.outer=this.inner=Zone.current,Zone.wtfZoneSpec&&(this.inner=this.inner.fork(Zone.wtfZoneSpec)),n&&Zone.longStackTraceZoneSpec&&(this.inner=this.inner.fork(Zone.longStackTraceZoneSpec)),this.forkInnerZoneWithAngularBehavior()}return NgZone.isInAngularZone=function(){return Zone.current.get("isAngularZone")===!0},NgZone.assertInAngularZone=function(){if(!NgZone.isInAngularZone())throw new Error("Expected to be in Angular Zone, but it is not!")},NgZone.assertNotInAngularZone=function(){if(NgZone.isInAngularZone())throw new Error("Expected to not be in Angular Zone, but it is!")},NgZone.prototype.run=function(e){return this.inner.run(e)},NgZone.prototype.runGuarded=function(e){return this.inner.runGuarded(e)},NgZone.prototype.runOutsideAngular=function(e){return this.outer.run(e)},Object.defineProperty(NgZone.prototype,"onUnstable",{get:function(){return this._onUnstable},enumerable:!0,configurable:!0}),Object.defineProperty(NgZone.prototype,"onMicrotaskEmpty",{get:function(){return this._onMicrotaskEmpty},enumerable:!0,configurable:!0}),Object.defineProperty(NgZone.prototype,"onStable",{get:function(){return this._onStable},enumerable:!0,configurable:!0}),Object.defineProperty(NgZone.prototype,"onError",{get:function(){return this._onErrorEvents},enumerable:!0,configurable:!0}),Object.defineProperty(NgZone.prototype,"isStable",{get:function(){return this._isStable},enumerable:!0,configurable:!0}),Object.defineProperty(NgZone.prototype,"hasPendingMicrotasks",{get:function(){return this._hasPendingMicrotasks},enumerable:!0,configurable:!0}),Object.defineProperty(NgZone.prototype,"hasPendingMacrotasks",{get:function(){return this._hasPendingMacrotasks},enumerable:!0,configurable:!0}),NgZone.prototype.checkStable=function(){var e=this;if(0==this._nesting&&!this._hasPendingMicrotasks&&!this._isStable)try{this._nesting++,this._onMicrotaskEmpty.emit(null)}finally{if(this._nesting--,!this._hasPendingMicrotasks)try{this.runOutsideAngular(function(){return e._onStable.emit(null)})}finally{this._isStable=!0}}},NgZone.prototype.forkInnerZoneWithAngularBehavior=function(){var e=this;this.inner=this.inner.fork({name:"angular",properties:{isAngularZone:!0},onInvokeTask:function(t,n,o,r,i,a){try{return e.onEnter(),t.invokeTask(o,r,i,a)}finally{e.onLeave()}},onInvoke:function(t,n,o,r,i,a,s){try{return e.onEnter(),t.invoke(o,r,i,a,s)}finally{e.onLeave()}},onHasTask:function(t,n,o,r){t.hasTask(o,r),n===o&&("microTask"==r.change?e.setHasMicrotask(r.microTask):"macroTask"==r.change&&e.setHasMacrotask(r.macroTask))},onHandleError:function(t,n,o,r){return t.handleError(o,r),e.triggerError(r),!1}})},NgZone.prototype.onEnter=function(){this._nesting++,this._isStable&&(this._isStable=!1,this._onUnstable.emit(null))},NgZone.prototype.onLeave=function(){this._nesting--,this.checkStable()},NgZone.prototype.setHasMicrotask=function(e){this._hasPendingMicrotasks=e,this.checkStable()},NgZone.prototype.setHasMacrotask=function(e){this._hasPendingMacrotasks=e},NgZone.prototype.triggerError=function(e){this._onErrorEvents.emit(e)},NgZone}()},function(e,t,n){"use strict";var o=n(1),r=n(42);n.d(t,"a",function(){return a});var i={provide:r.a,useExisting:n.i(o.forwardRef)(function(){return a}),multi:!0},a=function(){function CheckboxControlValueAccessor(e,t){this._renderer=e,this._elementRef=t,this.onChange=function(e){},this.onTouched=function(){}}return CheckboxControlValueAccessor.prototype.writeValue=function(e){this._renderer.setElementProperty(this._elementRef.nativeElement,"checked",e)},CheckboxControlValueAccessor.prototype.registerOnChange=function(e){this.onChange=e},CheckboxControlValueAccessor.prototype.registerOnTouched=function(e){this.onTouched=e},CheckboxControlValueAccessor.prototype.setDisabledState=function(e){this._renderer.setElementProperty(this._elementRef.nativeElement,"disabled",e)},CheckboxControlValueAccessor.decorators=[{type:o.Directive,args:[{selector:"input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]",host:{"(change)":"onChange($event.target.checked)","(blur)":"onTouched()"},providers:[i]}]}],CheckboxControlValueAccessor.ctorParameters=function(){return[{type:o.Renderer},{type:o.ElementRef}]},CheckboxControlValueAccessor}()},function(e,t,n){"use strict";var o=n(1),r=n(42);n.d(t,"a",function(){return a});var i={provide:r.a,useExisting:n.i(o.forwardRef)(function(){return a}),multi:!0},a=function(){function DefaultValueAccessor(e,t){this._renderer=e,this._elementRef=t,this.onChange=function(e){},this.onTouched=function(){}}return DefaultValueAccessor.prototype.writeValue=function(e){var t=null==e?"":e;this._renderer.setElementProperty(this._elementRef.nativeElement,"value",t)},DefaultValueAccessor.prototype.registerOnChange=function(e){this.onChange=e},DefaultValueAccessor.prototype.registerOnTouched=function(e){this.onTouched=e},DefaultValueAccessor.prototype.setDisabledState=function(e){this._renderer.setElementProperty(this._elementRef.nativeElement,"disabled",e)},DefaultValueAccessor.decorators=[{type:o.Directive,args:[{selector:"input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]",host:{"(input)":"onChange($event.target.value)","(blur)":"onTouched()"},providers:[i]}]}],DefaultValueAccessor.ctorParameters=function(){return[{type:o.Renderer},{type:o.ElementRef}]},DefaultValueAccessor}()},function(e,t,n){"use strict";var o=n(1),r=n(49),i=n(134),a=n(57),s=n(135),u=n(402);n.d(t,"a",function(){return d});var l=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},c={provide:a.a,useExisting:n.i(o.forwardRef)(function(){return d})},d=function(e){function NgModelGroup(t,n,o){e.call(this),this._parent=t,this._validators=n,this._asyncValidators=o}return l(NgModelGroup,e),NgModelGroup.prototype._checkParentType=function(){this._parent instanceof NgModelGroup||this._parent instanceof s.a||u.a.modelGroupParentException()},NgModelGroup.decorators=[{type:o.Directive,args:[{selector:"[ngModelGroup]",providers:[c],exportAs:"ngModelGroup"}]}],NgModelGroup.ctorParameters=function(){return[{type:a.a,decorators:[{type:o.Host},{type:o.SkipSelf}]},{type:Array,decorators:[{type:o.Optional},{type:o.Self},{type:o.Inject,args:[r.b]}]},{type:Array,decorators:[{type:o.Optional},{type:o.Self},{type:o.Inject,args:[r.c]}]}]},NgModelGroup.propDecorators={name:[{type:o.Input,args:["ngModelGroup"]}]},NgModelGroup}(i.a)},function(e,t,n){"use strict";var o=n(401);n.d(t,"a",function(){return r});var r=function(){function ReactiveErrors(){}return ReactiveErrors.controlParentException=function(){throw new Error("formControlName must be used with a parent formGroup directive. You'll want to add a formGroup\n directive and pass it an existing FormGroup instance (you can create one in your class).\n\n Example:\n\n "+o.a.formControlName)},ReactiveErrors.ngModelGroupException=function(){throw new Error('formControlName cannot be used with an ngModelGroup parent. It is only compatible with parents\n that also have a "form" prefix: formGroupName, formArrayName, or formGroup.\n\n Option 1: Update the parent to be formGroupName (reactive form strategy)\n\n '+o.a.formGroupName+"\n\n Option 2: Use ngModel instead of formControlName (template-driven strategy)\n\n "+o.a.ngModelGroup)},ReactiveErrors.missingFormException=function(){throw new Error("formGroup expects a FormGroup instance. Please pass one in.\n\n Example:\n\n "+o.a.formControlName)},ReactiveErrors.groupParentException=function(){throw new Error("formGroupName must be used with a parent formGroup directive. You'll want to add a formGroup\n directive and pass it an existing FormGroup instance (you can create one in your class).\n\n Example:\n\n "+o.a.formGroupName)},ReactiveErrors.arrayParentException=function(){throw new Error("formArrayName must be used with a parent formGroup directive. You'll want to add a formGroup\n directive and pass it an existing FormGroup instance (you can create one in your class).\n\n Example:\n\n "+o.a.formArrayName)},ReactiveErrors.disabledAttrWarning=function(){console.warn("\n It looks like you're using the disabled attribute with a reactive form directive. If you set disabled to true\n when you set up this control in your component class, the disabled attribute will actually be set in the DOM for\n you. We recommend using this approach to avoid 'changed after checked' errors.\n \n Example: \n form = new FormGroup({\n first: new FormControl({value: 'Nancy', disabled: true}, Validators.required),\n last: new FormControl('Drew', Validators.required)\n });\n ")},ReactiveErrors}()},function(e,t,n){"use strict";function _buildValueString(e,t){return null==e?""+t:(n.i(r.d)(t)||(t="Object"),(e+": "+t).slice(0,50))}function _extractId(e){return e.split(":")[0]}var o=n(1),r=n(111),i=n(42);n.d(t,"a",function(){return s}),n.d(t,"b",function(){return u});var a={provide:i.a,useExisting:n.i(o.forwardRef)(function(){return s}),multi:!0},s=function(){function SelectControlValueAccessor(e,t){this._renderer=e,this._elementRef=t,this._optionMap=new Map,this._idCounter=0,this.onChange=function(e){},this.onTouched=function(){}}return SelectControlValueAccessor.prototype.writeValue=function(e){this.value=e;var t=this._getOptionId(e);null==t&&this._renderer.setElementProperty(this._elementRef.nativeElement,"selectedIndex",-1);var n=_buildValueString(t,e);this._renderer.setElementProperty(this._elementRef.nativeElement,"value",n)},SelectControlValueAccessor.prototype.registerOnChange=function(e){var t=this;this.onChange=function(n){t.value=n,e(t._getOptionValue(n))}},SelectControlValueAccessor.prototype.registerOnTouched=function(e){this.onTouched=e},SelectControlValueAccessor.prototype.setDisabledState=function(e){this._renderer.setElementProperty(this._elementRef.nativeElement,"disabled",e)},SelectControlValueAccessor.prototype._registerOption=function(){return(this._idCounter++).toString()},SelectControlValueAccessor.prototype._getOptionId=function(e){for(var t=0,o=Array.from(this._optionMap.keys());t<o.length;t++){var i=o[t];if(n.i(r.e)(this._optionMap.get(i),e))return i}return null},SelectControlValueAccessor.prototype._getOptionValue=function(e){var t=_extractId(e);return this._optionMap.has(t)?this._optionMap.get(t):e},SelectControlValueAccessor.decorators=[{type:o.Directive,args:[{selector:"select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]",host:{"(change)":"onChange($event.target.value)","(blur)":"onTouched()"},providers:[a]}]}],SelectControlValueAccessor.ctorParameters=function(){return[{type:o.Renderer},{type:o.ElementRef}]},SelectControlValueAccessor}(),u=function(){function NgSelectOption(e,t,n){this._element=e,this._renderer=t,this._select=n,this._select&&(this.id=this._select._registerOption())}return Object.defineProperty(NgSelectOption.prototype,"ngValue",{set:function(e){null!=this._select&&(this._select._optionMap.set(this.id,e),this._setElementValue(_buildValueString(this.id,e)),this._select.writeValue(this._select.value))},enumerable:!0,configurable:!0}),Object.defineProperty(NgSelectOption.prototype,"value",{set:function(e){this._setElementValue(e),this._select&&this._select.writeValue(this._select.value)},enumerable:!0,configurable:!0}),NgSelectOption.prototype._setElementValue=function(e){this._renderer.setElementProperty(this._element.nativeElement,"value",e)},NgSelectOption.prototype.ngOnDestroy=function(){this._select&&(this._select._optionMap.delete(this.id),this._select.writeValue(this._select.value))},NgSelectOption.decorators=[{type:o.Directive,args:[{selector:"option"}]}],NgSelectOption.ctorParameters=function(){return[{type:o.ElementRef},{type:o.Renderer},{type:s,decorators:[{type:o.Optional},{type:o.Host}]}]},NgSelectOption.propDecorators={ngValue:[{type:o.Input,args:["ngValue"]}],value:[{type:o.Input,args:["value"]}]},NgSelectOption}()},function(e,t,n){"use strict";function _buildValueString(e,t){return null==e?""+t:("string"==typeof t&&(t="'"+t+"'"),n.i(r.d)(t)||(t="Object"),(e+": "+t).slice(0,50))}function _extractId(e){return e.split(":")[0]}var o=n(1),r=n(111),i=n(42);n.d(t,"a",function(){return s}),n.d(t,"b",function(){return u});var a={provide:i.a,useExisting:n.i(o.forwardRef)(function(){return s}),multi:!0},s=(function(){function HTMLCollection(){}return HTMLCollection.prototype.item=function(e){},HTMLCollection}(),function(){function SelectMultipleControlValueAccessor(e,t){this._renderer=e,this._elementRef=t,this._optionMap=new Map,this._idCounter=0,this.onChange=function(e){},this.onTouched=function(){}}return SelectMultipleControlValueAccessor.prototype.writeValue=function(e){var t=this;this.value=e;var n;if(Array.isArray(e)){var o=e.map(function(e){return t._getOptionId(e)});n=function(e,t){e._setSelected(o.indexOf(t.toString())>-1)}}else n=function(e,t){e._setSelected(!1)};this._optionMap.forEach(n)},SelectMultipleControlValueAccessor.prototype.registerOnChange=function(e){var t=this;this.onChange=function(n){var o=[];if(n.hasOwnProperty("selectedOptions"))for(var r=n.selectedOptions,i=0;i<r.length;i++){var a=r.item(i),s=t._getOptionValue(a.value);o.push(s)}else for(var r=n.options,i=0;i<r.length;i++){var a=r.item(i);if(a.selected){var s=t._getOptionValue(a.value);o.push(s)}}t.value=o,e(o)}},SelectMultipleControlValueAccessor.prototype.registerOnTouched=function(e){this.onTouched=e},SelectMultipleControlValueAccessor.prototype.setDisabledState=function(e){this._renderer.setElementProperty(this._elementRef.nativeElement,"disabled",e)},SelectMultipleControlValueAccessor.prototype._registerOption=function(e){var t=(this._idCounter++).toString();return this._optionMap.set(t,e),t},SelectMultipleControlValueAccessor.prototype._getOptionId=function(e){for(var t=0,o=Array.from(this._optionMap.keys());t<o.length;t++){var i=o[t];if(n.i(r.e)(this._optionMap.get(i)._value,e))return i}return null},SelectMultipleControlValueAccessor.prototype._getOptionValue=function(e){var t=_extractId(e);return this._optionMap.has(t)?this._optionMap.get(t)._value:e},SelectMultipleControlValueAccessor.decorators=[{type:o.Directive,args:[{selector:"select[multiple][formControlName],select[multiple][formControl],select[multiple][ngModel]",host:{"(change)":"onChange($event.target)","(blur)":"onTouched()"},providers:[a]}]}],SelectMultipleControlValueAccessor.ctorParameters=function(){return[{type:o.Renderer},{type:o.ElementRef}]},SelectMultipleControlValueAccessor}()),u=function(){function NgSelectMultipleOption(e,t,n){this._element=e,this._renderer=t,this._select=n,this._select&&(this.id=this._select._registerOption(this))}return Object.defineProperty(NgSelectMultipleOption.prototype,"ngValue",{set:function(e){null!=this._select&&(this._value=e,this._setElementValue(_buildValueString(this.id,e)),this._select.writeValue(this._select.value))},enumerable:!0,configurable:!0}),Object.defineProperty(NgSelectMultipleOption.prototype,"value",{set:function(e){this._select?(this._value=e,this._setElementValue(_buildValueString(this.id,e)),this._select.writeValue(this._select.value)):this._setElementValue(e)},enumerable:!0,configurable:!0}),NgSelectMultipleOption.prototype._setElementValue=function(e){this._renderer.setElementProperty(this._element.nativeElement,"value",e)},NgSelectMultipleOption.prototype._setSelected=function(e){this._renderer.setElementProperty(this._element.nativeElement,"selected",e)},NgSelectMultipleOption.prototype.ngOnDestroy=function(){this._select&&(this._select._optionMap.delete(this.id),this._select.writeValue(this._select.value))},NgSelectMultipleOption.decorators=[{type:o.Directive,args:[{selector:"option"}]}],NgSelectMultipleOption.ctorParameters=function(){return[{type:o.ElementRef},{type:o.Renderer},{type:s,decorators:[{type:o.Optional},{type:o.Host}]}]},NgSelectMultipleOption.propDecorators={ngValue:[{type:o.Input,args:["ngValue"]}],value:[{type:o.Input,args:["value"]}]},NgSelectMultipleOption}()},function(e,t,n){"use strict";function _find(e,t,n){return null==t?null:(t instanceof Array||(t=t.split(n)),t instanceof Array&&0===t.length?null:t.reduce(function(e,t){return e instanceof f?e.controls[t]||null:e instanceof h?e.at(t)||null:null},e))}function toObservable(e){return n.i(a.a)(e)?n.i(o.fromPromise)(e):e}function coerceToValidator(e){return Array.isArray(e)?n.i(r.b)(e):e;
}function coerceToAsyncValidator(e){return Array.isArray(e)?n.i(r.c)(e):e}var o=n(222),r=(n.n(o),n(76)),i=n(110),a=n(406);n.d(t,"d",function(){return p}),n.d(t,"b",function(){return g}),n.d(t,"a",function(){return f}),n.d(t,"c",function(){return h});var s=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},u="VALID",l="INVALID",c="PENDING",d="DISABLED",p=function(){function AbstractControl(e,t){this.validator=e,this.asyncValidator=t,this._onCollectionChange=function(){},this._pristine=!0,this._touched=!1,this._onDisabledChange=[]}return Object.defineProperty(AbstractControl.prototype,"value",{get:function(){return this._value},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControl.prototype,"parent",{get:function(){return this._parent},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControl.prototype,"status",{get:function(){return this._status},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControl.prototype,"valid",{get:function(){return this._status===u},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControl.prototype,"invalid",{get:function(){return this._status===l},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControl.prototype,"pending",{get:function(){return this._status==c},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControl.prototype,"disabled",{get:function(){return this._status===d},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControl.prototype,"enabled",{get:function(){return this._status!==d},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControl.prototype,"errors",{get:function(){return this._errors},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControl.prototype,"pristine",{get:function(){return this._pristine},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControl.prototype,"dirty",{get:function(){return!this.pristine},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControl.prototype,"touched",{get:function(){return this._touched},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControl.prototype,"untouched",{get:function(){return!this._touched},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControl.prototype,"valueChanges",{get:function(){return this._valueChanges},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControl.prototype,"statusChanges",{get:function(){return this._statusChanges},enumerable:!0,configurable:!0}),AbstractControl.prototype.setValidators=function(e){this.validator=coerceToValidator(e)},AbstractControl.prototype.setAsyncValidators=function(e){this.asyncValidator=coerceToAsyncValidator(e)},AbstractControl.prototype.clearValidators=function(){this.validator=null},AbstractControl.prototype.clearAsyncValidators=function(){this.asyncValidator=null},AbstractControl.prototype.markAsTouched=function(e){var t=(void 0===e?{}:e).onlySelf;this._touched=!0,this._parent&&!t&&this._parent.markAsTouched({onlySelf:t})},AbstractControl.prototype.markAsUntouched=function(e){var t=(void 0===e?{}:e).onlySelf;this._touched=!1,this._forEachChild(function(e){e.markAsUntouched({onlySelf:!0})}),this._parent&&!t&&this._parent._updateTouched({onlySelf:t})},AbstractControl.prototype.markAsDirty=function(e){var t=(void 0===e?{}:e).onlySelf;this._pristine=!1,this._parent&&!t&&this._parent.markAsDirty({onlySelf:t})},AbstractControl.prototype.markAsPristine=function(e){var t=(void 0===e?{}:e).onlySelf;this._pristine=!0,this._forEachChild(function(e){e.markAsPristine({onlySelf:!0})}),this._parent&&!t&&this._parent._updatePristine({onlySelf:t})},AbstractControl.prototype.markAsPending=function(e){var t=(void 0===e?{}:e).onlySelf;this._status=c,this._parent&&!t&&this._parent.markAsPending({onlySelf:t})},AbstractControl.prototype.disable=function(e){var t=void 0===e?{}:e,n=t.onlySelf,o=t.emitEvent;this._status=d,this._errors=null,this._forEachChild(function(e){e.disable({onlySelf:!0})}),this._updateValue(),o!==!1&&(this._valueChanges.emit(this._value),this._statusChanges.emit(this._status)),this._updateAncestors(n),this._onDisabledChange.forEach(function(e){return e(!0)})},AbstractControl.prototype.enable=function(e){var t=void 0===e?{}:e,n=t.onlySelf,o=t.emitEvent;this._status=u,this._forEachChild(function(e){e.enable({onlySelf:!0})}),this.updateValueAndValidity({onlySelf:!0,emitEvent:o}),this._updateAncestors(n),this._onDisabledChange.forEach(function(e){return e(!1)})},AbstractControl.prototype._updateAncestors=function(e){this._parent&&!e&&(this._parent.updateValueAndValidity(),this._parent._updatePristine(),this._parent._updateTouched())},AbstractControl.prototype.setParent=function(e){this._parent=e},AbstractControl.prototype.setValue=function(e,t){},AbstractControl.prototype.patchValue=function(e,t){},AbstractControl.prototype.reset=function(e,t){},AbstractControl.prototype.updateValueAndValidity=function(e){var t=void 0===e?{}:e,n=t.onlySelf,o=t.emitEvent;this._setInitialStatus(),this._updateValue(),this.enabled&&(this._errors=this._runValidator(),this._status=this._calculateStatus(),this._status!==u&&this._status!==c||this._runAsyncValidator(o)),o!==!1&&(this._valueChanges.emit(this._value),this._statusChanges.emit(this._status)),this._parent&&!n&&this._parent.updateValueAndValidity({onlySelf:n,emitEvent:o})},AbstractControl.prototype._updateTreeValidity=function(e){var t=(void 0===e?{emitEvent:!0}:e).emitEvent;this._forEachChild(function(e){return e._updateTreeValidity({emitEvent:t})}),this.updateValueAndValidity({onlySelf:!0,emitEvent:t})},AbstractControl.prototype._setInitialStatus=function(){this._status=this._allControlsDisabled()?d:u},AbstractControl.prototype._runValidator=function(){return this.validator?this.validator(this):null},AbstractControl.prototype._runAsyncValidator=function(e){var t=this;if(this.asyncValidator){this._status=c,this._cancelExistingSubscription();var o=toObservable(this.asyncValidator(this));if(!n.i(a.b)(o))throw new Error("expected the following validator to return Promise or Observable: "+this.asyncValidator+". If you are using FormBuilder; did you forget to brace your validators in an array?");this._asyncValidationSubscription=o.subscribe({next:function(n){return t.setErrors(n,{emitEvent:e})}})}},AbstractControl.prototype._cancelExistingSubscription=function(){this._asyncValidationSubscription&&this._asyncValidationSubscription.unsubscribe()},AbstractControl.prototype.setErrors=function(e,t){var n=(void 0===t?{}:t).emitEvent;this._errors=e,this._updateControlsErrors(n!==!1)},AbstractControl.prototype.get=function(e){return _find(this,e,".")},AbstractControl.prototype.getError=function(e,t){void 0===t&&(t=null);var n=t?this.get(t):this;return n&&n._errors?n._errors[e]:null},AbstractControl.prototype.hasError=function(e,t){return void 0===t&&(t=null),!!this.getError(e,t)},Object.defineProperty(AbstractControl.prototype,"root",{get:function(){for(var e=this;e._parent;)e=e._parent;return e},enumerable:!0,configurable:!0}),AbstractControl.prototype._updateControlsErrors=function(e){this._status=this._calculateStatus(),e&&this._statusChanges.emit(this._status),this._parent&&this._parent._updateControlsErrors(e)},AbstractControl.prototype._initObservables=function(){this._valueChanges=new i.a,this._statusChanges=new i.a},AbstractControl.prototype._calculateStatus=function(){return this._allControlsDisabled()?d:this._errors?l:this._anyControlsHaveStatus(c)?c:this._anyControlsHaveStatus(l)?l:u},AbstractControl.prototype._updateValue=function(){},AbstractControl.prototype._forEachChild=function(e){},AbstractControl.prototype._anyControls=function(e){},AbstractControl.prototype._allControlsDisabled=function(){},AbstractControl.prototype._anyControlsHaveStatus=function(e){return this._anyControls(function(t){return t.status===e})},AbstractControl.prototype._anyControlsDirty=function(){return this._anyControls(function(e){return e.dirty})},AbstractControl.prototype._anyControlsTouched=function(){return this._anyControls(function(e){return e.touched})},AbstractControl.prototype._updatePristine=function(e){var t=(void 0===e?{}:e).onlySelf;this._pristine=!this._anyControlsDirty(),this._parent&&!t&&this._parent._updatePristine({onlySelf:t})},AbstractControl.prototype._updateTouched=function(e){var t=(void 0===e?{}:e).onlySelf;this._touched=this._anyControlsTouched(),this._parent&&!t&&this._parent._updateTouched({onlySelf:t})},AbstractControl.prototype._isBoxedValue=function(e){return"object"==typeof e&&null!==e&&2===Object.keys(e).length&&"value"in e&&"disabled"in e},AbstractControl.prototype._registerOnCollectionChange=function(e){this._onCollectionChange=e},AbstractControl}(),g=function(e){function FormControl(t,n,o){void 0===t&&(t=null),void 0===n&&(n=null),void 0===o&&(o=null),e.call(this,coerceToValidator(n),coerceToAsyncValidator(o)),this._onChange=[],this._applyFormState(t),this.updateValueAndValidity({onlySelf:!0,emitEvent:!1}),this._initObservables()}return s(FormControl,e),FormControl.prototype.setValue=function(e,t){var n=this,o=void 0===t?{}:t,r=o.onlySelf,i=o.emitEvent,a=o.emitModelToViewChange,s=o.emitViewToModelChange;this._value=e,this._onChange.length&&a!==!1&&this._onChange.forEach(function(e){return e(n._value,s!==!1)}),this.updateValueAndValidity({onlySelf:r,emitEvent:i})},FormControl.prototype.patchValue=function(e,t){void 0===t&&(t={}),this.setValue(e,t)},FormControl.prototype.reset=function(e,t){void 0===e&&(e=null);var n=void 0===t?{}:t,o=n.onlySelf,r=n.emitEvent;this._applyFormState(e),this.markAsPristine({onlySelf:o}),this.markAsUntouched({onlySelf:o}),this.setValue(this._value,{onlySelf:o,emitEvent:r})},FormControl.prototype._updateValue=function(){},FormControl.prototype._anyControls=function(e){return!1},FormControl.prototype._allControlsDisabled=function(){return this.disabled},FormControl.prototype.registerOnChange=function(e){this._onChange.push(e)},FormControl.prototype._clearChangeFns=function(){this._onChange=[],this._onDisabledChange=[],this._onCollectionChange=function(){}},FormControl.prototype.registerOnDisabledChange=function(e){this._onDisabledChange.push(e)},FormControl.prototype._forEachChild=function(e){},FormControl.prototype._applyFormState=function(e){this._isBoxedValue(e)?(this._value=e.value,e.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this._value=e},FormControl}(p),f=function(e){function FormGroup(t,n,o){void 0===n&&(n=null),void 0===o&&(o=null),e.call(this,n,o),this.controls=t,this._initObservables(),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!1})}return s(FormGroup,e),FormGroup.prototype.registerControl=function(e,t){return this.controls[e]?this.controls[e]:(this.controls[e]=t,t.setParent(this),t._registerOnCollectionChange(this._onCollectionChange),t)},FormGroup.prototype.addControl=function(e,t){this.registerControl(e,t),this.updateValueAndValidity(),this._onCollectionChange()},FormGroup.prototype.removeControl=function(e){this.controls[e]&&this.controls[e]._registerOnCollectionChange(function(){}),delete this.controls[e],this.updateValueAndValidity(),this._onCollectionChange()},FormGroup.prototype.setControl=function(e,t){this.controls[e]&&this.controls[e]._registerOnCollectionChange(function(){}),delete this.controls[e],t&&this.registerControl(e,t),this.updateValueAndValidity(),this._onCollectionChange()},FormGroup.prototype.contains=function(e){return this.controls.hasOwnProperty(e)&&this.controls[e].enabled},FormGroup.prototype.setValue=function(e,t){var n=this,o=void 0===t?{}:t,r=o.onlySelf,i=o.emitEvent;this._checkAllValuesPresent(e),Object.keys(e).forEach(function(t){n._throwIfControlMissing(t),n.controls[t].setValue(e[t],{onlySelf:!0,emitEvent:i})}),this.updateValueAndValidity({onlySelf:r,emitEvent:i})},FormGroup.prototype.patchValue=function(e,t){var n=this,o=void 0===t?{}:t,r=o.onlySelf,i=o.emitEvent;Object.keys(e).forEach(function(t){n.controls[t]&&n.controls[t].patchValue(e[t],{onlySelf:!0,emitEvent:i})}),this.updateValueAndValidity({onlySelf:r,emitEvent:i})},FormGroup.prototype.reset=function(e,t){void 0===e&&(e={});var n=void 0===t?{}:t,o=n.onlySelf,r=n.emitEvent;this._forEachChild(function(t,n){t.reset(e[n],{onlySelf:!0,emitEvent:r})}),this.updateValueAndValidity({onlySelf:o,emitEvent:r}),this._updatePristine({onlySelf:o}),this._updateTouched({onlySelf:o})},FormGroup.prototype.getRawValue=function(){return this._reduceChildren({},function(e,t,n){return e[n]=t instanceof g?t.value:t.getRawValue(),e})},FormGroup.prototype._throwIfControlMissing=function(e){if(!Object.keys(this.controls).length)throw new Error("\n There are no form controls registered with this group yet. If you're using ngModel,\n you may want to check next tick (e.g. use setTimeout).\n ");if(!this.controls[e])throw new Error("Cannot find form control with name: "+e+".")},FormGroup.prototype._forEachChild=function(e){var t=this;Object.keys(this.controls).forEach(function(n){return e(t.controls[n],n)})},FormGroup.prototype._setUpControls=function(){var e=this;this._forEachChild(function(t){t.setParent(e),t._registerOnCollectionChange(e._onCollectionChange)})},FormGroup.prototype._updateValue=function(){this._value=this._reduceValue()},FormGroup.prototype._anyControls=function(e){var t=this,n=!1;return this._forEachChild(function(o,r){n=n||t.contains(r)&&e(o)}),n},FormGroup.prototype._reduceValue=function(){var e=this;return this._reduceChildren({},function(t,n,o){return(n.enabled||e.disabled)&&(t[o]=n.value),t})},FormGroup.prototype._reduceChildren=function(e,t){var n=e;return this._forEachChild(function(e,o){n=t(n,e,o)}),n},FormGroup.prototype._allControlsDisabled=function(){for(var e=0,t=Object.keys(this.controls);e<t.length;e++){var n=t[e];if(this.controls[n].enabled)return!1}return Object.keys(this.controls).length>0||this.disabled},FormGroup.prototype._checkAllValuesPresent=function(e){this._forEachChild(function(t,n){if(void 0===e[n])throw new Error("Must supply a value for form control with name: '"+n+"'.")})},FormGroup}(p),h=function(e){function FormArray(t,n,o){void 0===n&&(n=null),void 0===o&&(o=null),e.call(this,n,o),this.controls=t,this._initObservables(),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!1})}return s(FormArray,e),FormArray.prototype.at=function(e){return this.controls[e]},FormArray.prototype.push=function(e){this.controls.push(e),this._registerControl(e),this.updateValueAndValidity(),this._onCollectionChange()},FormArray.prototype.insert=function(e,t){this.controls.splice(e,0,t),this._registerControl(t),this.updateValueAndValidity(),this._onCollectionChange()},FormArray.prototype.removeAt=function(e){this.controls[e]&&this.controls[e]._registerOnCollectionChange(function(){}),this.controls.splice(e,1),this.updateValueAndValidity(),this._onCollectionChange()},FormArray.prototype.setControl=function(e,t){this.controls[e]&&this.controls[e]._registerOnCollectionChange(function(){}),this.controls.splice(e,1),t&&(this.controls.splice(e,0,t),this._registerControl(t)),this.updateValueAndValidity(),this._onCollectionChange()},Object.defineProperty(FormArray.prototype,"length",{get:function(){return this.controls.length},enumerable:!0,configurable:!0}),FormArray.prototype.setValue=function(e,t){var n=this,o=void 0===t?{}:t,r=o.onlySelf,i=o.emitEvent;this._checkAllValuesPresent(e),e.forEach(function(e,t){n._throwIfControlMissing(t),n.at(t).setValue(e,{onlySelf:!0,emitEvent:i})}),this.updateValueAndValidity({onlySelf:r,emitEvent:i})},FormArray.prototype.patchValue=function(e,t){var n=this,o=void 0===t?{}:t,r=o.onlySelf,i=o.emitEvent;e.forEach(function(e,t){n.at(t)&&n.at(t).patchValue(e,{onlySelf:!0,emitEvent:i})}),this.updateValueAndValidity({onlySelf:r,emitEvent:i})},FormArray.prototype.reset=function(e,t){void 0===e&&(e=[]);var n=void 0===t?{}:t,o=n.onlySelf,r=n.emitEvent;this._forEachChild(function(t,n){t.reset(e[n],{onlySelf:!0,emitEvent:r})}),this.updateValueAndValidity({onlySelf:o,emitEvent:r}),this._updatePristine({onlySelf:o}),this._updateTouched({onlySelf:o})},FormArray.prototype.getRawValue=function(){return this.controls.map(function(e){return e instanceof g?e.value:e.getRawValue()})},FormArray.prototype._throwIfControlMissing=function(e){if(!this.controls.length)throw new Error("\n There are no form controls registered with this array yet. If you're using ngModel,\n you may want to check next tick (e.g. use setTimeout).\n ");if(!this.at(e))throw new Error("Cannot find form control at index "+e)},FormArray.prototype._forEachChild=function(e){this.controls.forEach(function(t,n){e(t,n)})},FormArray.prototype._updateValue=function(){var e=this;this._value=this.controls.filter(function(t){return t.enabled||e.disabled}).map(function(e){return e.value})},FormArray.prototype._anyControls=function(e){return this.controls.some(function(t){return t.enabled&&e(t)})},FormArray.prototype._setUpControls=function(){var e=this;this._forEachChild(function(t){return e._registerControl(t)})},FormArray.prototype._checkAllValuesPresent=function(e){this._forEachChild(function(t,n){if(void 0===e[n])throw new Error("Must supply a value for form control at index: "+n+".")})},FormArray.prototype._allControlsDisabled=function(){for(var e=0,t=this.controls;e<t.length;e++){var n=t[e];if(n.enabled)return!1}return this.controls.length>0||this.disabled},FormArray.prototype._registerControl=function(e){e.setParent(this),e._registerOnCollectionChange(this._onCollectionChange)},FormArray}(p)},function(e,t,n){"use strict";var o=n(1),r=n(77),i=n(139);n.d(t,"a",function(){return s}),n.d(t,"b",function(){return u});var a=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},s=function(){function ResponseOptions(e){var t=void 0===e?{}:e,n=t.body,o=t.status,r=t.headers,i=t.statusText,a=t.type,s=t.url;this.body=null!=n?n:null,this.status=null!=o?o:null,this.headers=null!=r?r:null,this.statusText=null!=i?i:null,this.type=null!=a?a:null,this.url=null!=s?s:null}return ResponseOptions.prototype.merge=function(e){return new ResponseOptions({body:e&&null!=e.body?e.body:this.body,status:e&&null!=e.status?e.status:this.status,headers:e&&null!=e.headers?e.headers:this.headers,statusText:e&&null!=e.statusText?e.statusText:this.statusText,type:e&&null!=e.type?e.type:this.type,url:e&&null!=e.url?e.url:this.url})},ResponseOptions}(),u=function(e){function BaseResponseOptions(){e.call(this,{status:200,statusText:"Ok",type:r.a.Default,headers:new i.a})}return a(BaseResponseOptions,e),BaseResponseOptions.decorators=[{type:o.Injectable}],BaseResponseOptions.ctorParameters=function(){return[]},BaseResponseOptions}(s)},function(e,t,n){"use strict";function normalizeMethodName(e){if("string"!=typeof e)return e;switch(e.toUpperCase()){case"GET":return o.b.Get;case"POST":return o.b.Post;case"PUT":return o.b.Put;case"DELETE":return o.b.Delete;case"OPTIONS":return o.b.Options;case"HEAD":return o.b.Head;case"PATCH":return o.b.Patch}throw new Error('Invalid request method. The method "'+e+'" is not supported.')}function getResponseURL(e){return"responseURL"in e?e.responseURL:/^X-Request-URL:/m.test(e.getAllResponseHeaders())?e.getResponseHeader("X-Request-URL"):void 0}function stringToArrayBuffer(e){for(var t=new Uint16Array(e.length),n=0,o=e.length;n<o;n++)t[n]=e.charCodeAt(n);return t.buffer}var o=n(77);t.d=normalizeMethodName,n.d(t,"c",function(){return r}),t.b=getResponseURL,t.a=stringToArrayBuffer;var r=function(e){return e>=200&&e<300}},function(e,t,n){"use strict";function paramParser(e){void 0===e&&(e="");var t=new Map;if(e.length>0){var n=e.split("&");n.forEach(function(e){var n=e.indexOf("="),o=n==-1?[e,""]:[e.slice(0,n),e.slice(n+1)],r=o[0],i=o[1],a=t.get(r)||[];a.push(i),t.set(r,a)})}return t}function standardEncoding(e){return encodeURIComponent(e).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/gi,"$").replace(/%2C/gi,",").replace(/%3B/gi,";").replace(/%2B/gi,"+").replace(/%3D/gi,"=").replace(/%3F/gi,"?").replace(/%2F/gi,"/")}n.d(t,"b",function(){return o}),n.d(t,"a",function(){return r});var o=function(){function QueryEncoder(){}return QueryEncoder.prototype.encodeKey=function(e){return standardEncoding(e)},QueryEncoder.prototype.encodeValue=function(e){return standardEncoding(e)},QueryEncoder}(),r=function(){function URLSearchParams(e,t){void 0===e&&(e=""),void 0===t&&(t=new o),this.rawParams=e,this.queryEncoder=t,this.paramsMap=paramParser(e)}return URLSearchParams.prototype.clone=function(){var e=new URLSearchParams("",this.queryEncoder);return e.appendAll(this),e},URLSearchParams.prototype.has=function(e){return this.paramsMap.has(e)},URLSearchParams.prototype.get=function(e){var t=this.paramsMap.get(e);return Array.isArray(t)?t[0]:null},URLSearchParams.prototype.getAll=function(e){return this.paramsMap.get(e)||[]},URLSearchParams.prototype.set=function(e,t){if(void 0===t||null===t)return void this.delete(e);var n=this.paramsMap.get(e)||[];n.length=0,n.push(t),this.paramsMap.set(e,n)},URLSearchParams.prototype.setAll=function(e){var t=this;e.paramsMap.forEach(function(e,n){var o=t.paramsMap.get(n)||[];o.length=0,o.push(e[0]),t.paramsMap.set(n,o)})},URLSearchParams.prototype.append=function(e,t){if(void 0!==t&&null!==t){var n=this.paramsMap.get(e)||[];n.push(t),this.paramsMap.set(e,n)}},URLSearchParams.prototype.appendAll=function(e){var t=this;e.paramsMap.forEach(function(e,n){for(var o=t.paramsMap.get(n)||[],r=0;r<e.length;++r)o.push(e[r]);t.paramsMap.set(n,o)})},URLSearchParams.prototype.replaceAll=function(e){var t=this;e.paramsMap.forEach(function(e,n){var o=t.paramsMap.get(n)||[];o.length=0;for(var r=0;r<e.length;++r)o.push(e[r]);t.paramsMap.set(n,o)})},URLSearchParams.prototype.toString=function(){var e=this,t=[];return this.paramsMap.forEach(function(n,o){n.forEach(function(n){return t.push(e.queryEncoder.encodeKey(o)+"="+e.queryEncoder.encodeValue(n))})}),t.join("&")},URLSearchParams.prototype.delete=function(e){this.paramsMap.delete(e)},URLSearchParams}()},function(e,t,n){"use strict";var o=n(1);n.d(t,"a",function(){return r});var r=new o.OpaqueToken("DocumentToken")},function(e,t,n){"use strict";function defaultErrorHandler(e){throw e}function parentLoadedConfig(e){for(var t=e.parent;t;){var n=t._routeConfig;if(n&&n._loadedConfig)return n._loadedConfig;if(n&&n.component)return null;t=t.parent}return null}function closestLoadedConfig(e){if(!e)return null;for(var t=e.parent;t;){var n=t._routeConfig;if(n&&n._loadedConfig)return n._loadedConfig;t=t.parent}return null}function nodeChildrenAsMap(e){return e?e.children.reduce(function(e,t){return e[t.value.outlet]=t,e},{}):{}}function getOutlet(e,t){var n=e._outlets[t.outlet];if(!n){var o=t.component.name;throw t.outlet===_.a?new Error("Cannot find primary outlet to load '"+o+"'"):new Error("Cannot find the outlet "+t.outlet+" to load '"+o+"'")}return n}var o=n(1),r=n(13),i=(n.n(r),n(320)),a=(n.n(i),n(117)),s=(n.n(a),n(324)),u=(n.n(s),n(37)),l=(n.n(u),n(118)),c=(n.n(l),n(151)),d=(n.n(c),n(225)),p=(n.n(d),n(692)),g=n(693),f=n(694),h=n(695),m=n(698),y=n(199),b=n(200),v=n(113),_=n(58),E=n(91),T=n(59);n.d(t,"e",function(){return S}),n.d(t,"b",function(){return A}),n.d(t,"c",function(){return M}),n.d(t,"d",function(){return C}),n.d(t,"f",function(){return k}),n.d(t,"a",function(){return R});var S=function(){function NavigationStart(e,t){this.id=e,this.url=t}return NavigationStart.prototype.toString=function(){return"NavigationStart(id: "+this.id+", url: '"+this.url+"')"},NavigationStart}(),A=function(){function NavigationEnd(e,t,n){this.id=e,this.url=t,this.urlAfterRedirects=n}return NavigationEnd.prototype.toString=function(){return"NavigationEnd(id: "+this.id+", url: '"+this.url+"', urlAfterRedirects: '"+this.urlAfterRedirects+"')"},NavigationEnd}(),M=function(){function NavigationCancel(e,t,n){this.id=e,this.url=t,this.reason=n}return NavigationCancel.prototype.toString=function(){return"NavigationCancel(id: "+this.id+", url: '"+this.url+"')"},NavigationCancel}(),C=function(){function NavigationError(e,t,n){this.id=e,this.url=t,this.error=n}return NavigationError.prototype.toString=function(){return"NavigationError(id: "+this.id+", url: '"+this.url+"', error: "+this.error+")"},NavigationError}(),k=function(){function RoutesRecognized(e,t,n,o){this.id=e,this.url=t,this.urlAfterRedirects=n,this.state=o}return RoutesRecognized.prototype.toString=function(){return"RoutesRecognized(id: "+this.id+", url: '"+this.url+"', urlAfterRedirects: '"+this.urlAfterRedirects+"', state: "+this.state+")"},RoutesRecognized}(),R=function(){function Router(e,t,o,i,a,s,u,l){this.rootComponentType=e,this.urlSerializer=t,this.outletMap=o,this.location=i,this.injector=a,this.config=l,this.navigationId=0,this.errorHandler=defaultErrorHandler,this.navigated=!1,this.resetConfig(l),this.routerEvents=new r.Subject,this.currentUrlTree=n.i(E.e)(),this.configLoader=new y.b(s,u),this.currentRouterState=n.i(v.f)(this.currentUrlTree,this.rootComponentType)}return Router.prototype.initialNavigation=function(){this.setUpLocationChangeListener(),this.navigateByUrl(this.location.path(!0),{replaceUrl:!0})},Router.prototype.setUpLocationChangeListener=function(){var e=this;this.locationSubscription=this.location.subscribe(Zone.current.wrap(function(t){var n=e.urlSerializer.parse(t.url);return e.currentUrlTree.toString()!==n.toString()?e.scheduleNavigation(n,{skipLocationChange:t.pop,replaceUrl:!0}):null}))},Object.defineProperty(Router.prototype,"routerState",{get:function(){return this.currentRouterState},enumerable:!0,configurable:!0}),Object.defineProperty(Router.prototype,"url",{get:function(){return this.serializeUrl(this.currentUrlTree)},enumerable:!0,configurable:!0}),Object.defineProperty(Router.prototype,"events",{get:function(){return this.routerEvents},enumerable:!0,configurable:!0}),Router.prototype.resetConfig=function(e){n.i(g.a)(e),this.config=e},Router.prototype.ngOnDestroy=function(){this.dispose()},Router.prototype.dispose=function(){this.locationSubscription.unsubscribe()},Router.prototype.createUrlTree=function(e,t){var o=void 0===t?{}:t,r=o.relativeTo,i=o.queryParams,a=o.fragment,s=o.preserveQueryParams,u=o.preserveFragment,l=r?r:this.routerState.root,c=s?this.currentUrlTree.queryParams:i,d=u?this.currentUrlTree.fragment:a;return n.i(h.a)(l,this.currentUrlTree,e,c,d)},Router.prototype.navigateByUrl=function(e,t){if(void 0===t&&(t={skipLocationChange:!1}),e instanceof E.b)return this.scheduleNavigation(e,t);var n=this.urlSerializer.parse(e);return this.scheduleNavigation(n,t)},Router.prototype.navigate=function(e,t){return void 0===t&&(t={skipLocationChange:!1}),this.scheduleNavigation(this.createUrlTree(e,t),t)},Router.prototype.serializeUrl=function(e){return this.urlSerializer.serialize(e)},Router.prototype.parseUrl=function(e){return this.urlSerializer.parse(e)},Router.prototype.isActive=function(e,t){if(e instanceof E.b)return n.i(E.f)(this.currentUrlTree,e,t);var o=this.urlSerializer.parse(e);return n.i(E.f)(this.currentUrlTree,o,t)},Router.prototype.scheduleNavigation=function(e,t){var n=this,o=++this.navigationId;return this.routerEvents.next(new S(o,this.serializeUrl(e))),Promise.resolve().then(function(r){return n.runNavigate(e,t.skipLocationChange,t.replaceUrl,o)})},Router.prototype.runNavigate=function(e,t,o,r){var i=this;return r!==this.navigationId?(this.location.go(this.urlSerializer.serialize(this.currentUrlTree)),this.routerEvents.next(new M(r,this.serializeUrl(e),"Navigation ID "+r+" is not equal to the current navigation id "+this.navigationId)),Promise.resolve(!1)):new Promise(function(s,l){var d,g,h,y,b=i.currentRouterState,v=i.currentUrlTree,E=n.i(p.a)(i.injector,i.configLoader,e,i.config),T=c.mergeMap.call(E,function(e){return y=e,n.i(m.a)(i.rootComponentType,i.config,y,i.serializeUrl(y))}),S=u.map.call(T,function(t){return i.routerEvents.next(new k(r,i.serializeUrl(e),i.serializeUrl(y),t)),t}),R=u.map.call(S,function(e){return n.i(f.a)(e,i.currentRouterState)}),N=u.map.call(R,function(e){d=e,h=new D(d.snapshot,i.currentRouterState.snapshot,i.injector),h.traverse(i.outletMap)}),O=c.mergeMap.call(N,function(){return h.checkGuards()}),I=c.mergeMap.call(O,function(e){return e?u.map.call(h.resolveData(),function(){return e}):n.i(a.of)(e)});I.forEach(function(e){if(!e||r!==i.navigationId)return void(g=!1);if(i.currentUrlTree=y,i.currentRouterState=d,!t){var n=i.urlSerializer.serialize(y);i.location.isCurrentPathEqualTo(n)||o?i.location.replaceState(n):i.location.go(n)}new w(d,b).activate(i.outletMap),g=!0}).then(function(){i.navigated=!0,g?(i.routerEvents.next(new A(r,i.serializeUrl(e),i.serializeUrl(y))),s(!0)):(i.routerEvents.next(new M(r,i.serializeUrl(e),"")),s(!1))},function(t){if(t instanceof _.b)i.navigated=!0,i.routerEvents.next(new M(r,i.serializeUrl(e),t.message)),s(!1);else{i.routerEvents.next(new C(r,i.serializeUrl(e),t));try{s(i.errorHandler(t))}catch(n){l(n)}}r===i.navigationId&&(i.currentRouterState=b,i.currentUrlTree=v,i.location.replaceState(i.serializeUrl(v)))})})},Router}(),N=function(){function CanActivate(e){this.path=e}return Object.defineProperty(CanActivate.prototype,"route",{get:function(){return this.path[this.path.length-1]},enumerable:!0,configurable:!0}),CanActivate}(),O=function(){function CanDeactivate(e,t){this.component=e,this.route=t}return CanDeactivate}(),D=function(){function PreActivation(e,t,n){this.future=e,this.curr=t,this.injector=n,this.checks=[]}return PreActivation.prototype.traverse=function(e){var t=this.future._root,n=this.curr?this.curr._root:null;this.traverseChildRoutes(t,n,e,[t.value])},PreActivation.prototype.checkGuards=function(){var e=this;if(0===this.checks.length)return n.i(a.of)(!0);var t=n.i(i.from)(this.checks),o=u.map.call(t,function(t){if(t instanceof N)return n.i(T.f)(n.i(i.from)([e.runCanActivateChild(t.path),e.runCanActivate(t.route)]));if(t instanceof O){var o=t;return e.runCanDeactivate(o.component,o.route)}throw new Error("Cannot be reached")}),r=l.mergeAll.call(o);return s.every.call(r,function(e){return e===!0})},PreActivation.prototype.resolveData=function(){var e=this;if(0===this.checks.length)return n.i(a.of)(null);var t=n.i(i.from)(this.checks),o=c.mergeMap.call(t,function(t){return t instanceof N?e.runResolve(t.route):n.i(a.of)(null)});return d.reduce.call(o,function(e,t){return e})},PreActivation.prototype.traverseChildRoutes=function(e,t,o,r){var i=this,a=nodeChildrenAsMap(t);e.children.forEach(function(e){i.traverseRoutes(e,a[e.value.outlet],o,r.concat([e.value])),delete a[e.value.outlet]}),n.i(T.c)(a,function(e,t){return i.deactivateOutletAndItChildren(e,o._outlets[t])})},PreActivation.prototype.traverseRoutes=function(e,t,o,r){var i=e.value,a=t?t.value:null,s=o?o._outlets[e.value.outlet]:null;a&&i._routeConfig===a._routeConfig?(n.i(T.d)(i.params,a.params)?i.data=a.data:this.checks.push(new O(s.component,a),new N(r)),i.component?this.traverseChildRoutes(e,t,s?s.outletMap:null,r):this.traverseChildRoutes(e,t,o,r)):(a&&(a.component?this.deactivateOutletAndItChildren(a,s):this.deactivateOutletMap(o)),this.checks.push(new N(r)),i.component?this.traverseChildRoutes(e,null,s?s.outletMap:null,r):this.traverseChildRoutes(e,null,o,r))},PreActivation.prototype.deactivateOutletAndItChildren=function(e,t){t&&t.isActivated&&(this.deactivateOutletMap(t.outletMap),this.checks.push(new O(t.component,e)))},PreActivation.prototype.deactivateOutletMap=function(e){var t=this;n.i(T.c)(e._outlets,function(e){e.isActivated&&t.deactivateOutletAndItChildren(e.activatedRoute.snapshot,e)})},PreActivation.prototype.runCanActivate=function(e){var t=this,o=e._routeConfig?e._routeConfig.canActivate:null;if(!o||0===o.length)return n.i(a.of)(!0);var r=u.map.call(n.i(i.from)(o),function(o){var r=t.getToken(o,e);return r.canActivate?n.i(T.b)(r.canActivate(e,t.future)):n.i(T.b)(r(e,t.future));
});return n.i(T.f)(r)},PreActivation.prototype.runCanActivateChild=function(e){var t=this,o=e[e.length-1],r=e.slice(0,e.length-1).reverse().map(function(e){return t.extractCanActivateChild(e)}).filter(function(e){return null!==e});return n.i(T.f)(u.map.call(n.i(i.from)(r),function(e){var r=u.map.call(n.i(i.from)(e.guards),function(e){var r=t.getToken(e,e.node);return r.canActivateChild?n.i(T.b)(r.canActivateChild(o,t.future)):n.i(T.b)(r(o,t.future))});return n.i(T.f)(r)}))},PreActivation.prototype.extractCanActivateChild=function(e){var t=e._routeConfig?e._routeConfig.canActivateChild:null;return t&&0!==t.length?{node:e,guards:t}:null},PreActivation.prototype.runCanDeactivate=function(e,t){var o=this,r=t&&t._routeConfig?t._routeConfig.canDeactivate:null;if(!r||0===r.length)return n.i(a.of)(!0);var c=u.map.call(n.i(i.from)(r),function(r){var i=o.getToken(r,t);return i.canDeactivate?n.i(T.b)(i.canDeactivate(e,t,o.curr)):n.i(T.b)(i(e,t,o.curr))}),d=l.mergeAll.call(c);return s.every.call(d,function(e){return e===!0})},PreActivation.prototype.runResolve=function(e){var t=e._resolve;return u.map.call(this.resolveNode(t.current,e),function(o){return t.resolvedData=o,e.data=n.i(T.g)(e.data,t.flattenedResolvedData),null})},PreActivation.prototype.resolveNode=function(e,t){var o=this;return n.i(T.e)(e,function(e,r){var i=o.getToken(r,t);return i.resolve?n.i(T.b)(i.resolve(t,o.future)):n.i(T.b)(i(t,o.future))})},PreActivation.prototype.getToken=function(e,t){var n=closestLoadedConfig(t),o=n?n.injector:this.injector;return o.get(e)},PreActivation}(),w=function(){function ActivateRoutes(e,t){this.futureState=e,this.currState=t}return ActivateRoutes.prototype.activate=function(e){var t=this.futureState._root,o=this.currState?this.currState._root:null;n.i(v.g)(this.futureState.root),this.activateChildRoutes(t,o,e)},ActivateRoutes.prototype.activateChildRoutes=function(e,t,o){var r=this,i=nodeChildrenAsMap(t);e.children.forEach(function(e){r.activateRoutes(e,i[e.value.outlet],o),delete i[e.value.outlet]}),n.i(T.c)(i,function(e,t){return r.deactivateOutletAndItChildren(o._outlets[t])})},ActivateRoutes.prototype.activateRoutes=function(e,t,o){var r=e.value,i=t?t.value:null;if(r===i)if(n.i(v.g)(r),r.component){var a=getOutlet(o,e.value);this.activateChildRoutes(e,t,a.outletMap)}else this.activateChildRoutes(e,t,o);else{if(i)if(i.component){var a=getOutlet(o,e.value);this.deactivateOutletAndItChildren(a)}else this.deactivateOutletMap(o);if(r.component){n.i(v.g)(r);var a=getOutlet(o,e.value),s=new b.a;this.placeComponentIntoOutlet(s,r,a),this.activateChildRoutes(e,null,s)}else n.i(v.g)(r),this.activateChildRoutes(e,null,o)}},ActivateRoutes.prototype.placeComponentIntoOutlet=function(e,t,n){var r=[{provide:v.b,useValue:t},{provide:b.a,useValue:e}],i=parentLoadedConfig(t.snapshot),a=null,s=null;i&&(a=i.factoryResolver,s=i.injector,r.push({provide:o.ComponentFactoryResolver,useValue:a})),n.activate(t,a,s,o.ReflectiveInjector.resolve(r),e)},ActivateRoutes.prototype.deactivateOutletAndItChildren=function(e){e&&e.isActivated&&(this.deactivateOutletMap(e.outletMap),e.deactivate())},ActivateRoutes.prototype.deactivateOutletMap=function(e){var t=this;n.i(T.c)(e._outlets,function(e){return t.deactivateOutletAndItChildren(e)})},ActivateRoutes}()},function(e,t,n){"use strict";var o=n(1),r=n(222),i=(n.n(r),n(117)),a=(n.n(i),n(37)),s=(n.n(a),n(151)),u=(n.n(s),n(59));n.d(t,"c",function(){return l}),n.d(t,"a",function(){return c}),n.d(t,"b",function(){return d});var l=new o.OpaqueToken("ROUTES"),c=function(){function LoadedRouterConfig(e,t,n){this.routes=e,this.injector=t,this.factoryResolver=n}return LoadedRouterConfig}(),d=function(){function RouterConfigLoader(e,t){this.loader=e,this.compiler=t}return RouterConfigLoader.prototype.load=function(e,t){return a.map.call(this.loadModuleFactory(t),function(t){var o=t.create(e);return new c(n.i(u.a)(o.injector.get(l)),o.injector,o.componentFactoryResolver)})},RouterConfigLoader.prototype.loadModuleFactory=function(e){var t=this;if("string"==typeof e)return n.i(r.fromPromise)(this.loader.load(e));var a=this.compiler instanceof o.Compiler;return s.mergeMap.call(n.i(u.b)(e()),function(e){return a?n.i(i.of)(e):n.i(r.fromPromise)(t.compiler.compileModuleAsync(e))})},RouterConfigLoader}()},function(e,t,n){"use strict";n.d(t,"a",function(){return o});var o=function(){function RouterOutletMap(){this._outlets={}}return RouterOutletMap.prototype.registerOutlet=function(e,t){this._outlets[e]=t},RouterOutletMap.prototype.removeOutlet=function(e){this._outlets[e]=void 0},RouterOutletMap}()},,,,,,,,,,,,,,,,,,,,,,function(e,t,n){"use strict";var o=n(496);t.fromPromise=o.PromiseObservable.create},,,function(e,t,n){"use strict";function reduce(e,t){var n=!1;return arguments.length>=2&&(n=!0),this.lift(new i(e,t,n))}var o=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},r=n(3);t.reduce=reduce;var i=function(){function ReduceOperator(e,t,n){void 0===n&&(n=!1),this.accumulator=e,this.seed=t,this.hasSeed=n}return ReduceOperator.prototype.call=function(e,t){return t.subscribe(new a(e,this.accumulator,this.seed,this.hasSeed))},ReduceOperator}();t.ReduceOperator=i;var a=function(e){function ReduceSubscriber(t,n,o,r){e.call(this,t),this.accumulator=n,this.hasSeed=r,this.index=0,this.hasValue=!1,this.acc=o,this.hasSeed||this.index++}return o(ReduceSubscriber,e),ReduceSubscriber.prototype._next=function(e){this.hasValue||(this.hasValue=this.hasSeed)?this._tryReduce(e):(this.acc=e,this.hasValue=!0)},ReduceSubscriber.prototype._tryReduce=function(e){var t;try{t=this.accumulator(this.acc,e,this.index++)}catch(n){return void this.destination.error(n)}this.acc=t},ReduceSubscriber.prototype._complete=function(){(this.hasValue||this.hasSeed)&&this.destination.next(this.acc),this.destination.complete()},ReduceSubscriber}(r.Subscriber);t.ReduceSubscriber=a},,,function(e,t,n){"use strict";var o=n(26),r=o.root.Symbol;t.rxSubscriber="function"==typeof r&&"function"==typeof r.for?r.for("rxSubscriber"):"@@rxSubscriber",t.$$rxSubscriber=t.rxSubscriber},function(e,t){"use strict";var n=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},o=function(e){function ObjectUnsubscribedError(){var t=e.call(this,"object unsubscribed");this.name=t.name="ObjectUnsubscribedError",this.stack=t.stack,this.message=t.message}return n(ObjectUnsubscribedError,e),ObjectUnsubscribedError}(Error);t.ObjectUnsubscribedError=o},,function(e,t){"use strict";function isFunction(e){return"function"==typeof e}t.isFunction=isFunction},,function(e,t,n){"use strict";var o=n(671);n.d(t,"ResponseType",function(){return o.a}),n.d(t,"JSONPBackend",function(){return o.b}),n.d(t,"JSONPConnection",function(){return o.c}),n.d(t,"CookieXSRFStrategy",function(){return o.d}),n.d(t,"XHRBackend",function(){return o.e}),n.d(t,"XHRConnection",function(){return o.f}),n.d(t,"BaseRequestOptions",function(){return o.g}),n.d(t,"RequestOptions",function(){return o.h}),n.d(t,"BaseResponseOptions",function(){return o.i}),n.d(t,"ResponseOptions",function(){return o.j}),n.d(t,"ReadyState",function(){return o.k}),n.d(t,"RequestMethod",function(){return o.l}),n.d(t,"ResponseContentType",function(){return o.m}),n.d(t,"BrowserXhr",function(){return o.n}),n.d(t,"Headers",function(){return o.o}),n.d(t,"Http",function(){return o.p}),n.d(t,"Jsonp",function(){return o.q}),n.d(t,"HttpModule",function(){return o.r}),n.d(t,"JsonpModule",function(){return o.s}),n.d(t,"Connection",function(){return o.t}),n.d(t,"ConnectionBackend",function(){return o.u}),n.d(t,"XSRFStrategy",function(){return o.v}),n.d(t,"Request",function(){return o.w}),n.d(t,"Response",function(){return o.x}),n.d(t,"QueryEncoder",function(){return o.y}),n.d(t,"URLSearchParams",function(){return o.z}),n.d(t,"VERSION",function(){return o.A})},function(e,t,n){"use strict";var o=n(674);n.d(t,"VERSION",function(){return o.a}),n.d(t,"RESOURCE_CACHE_PROVIDER",function(){return o.b}),n.d(t,"platformBrowserDynamic",function(){return o.c}),n.d(t,"__platform_browser_dynamic_private__",function(){return o.d})},,,function(e,t,n){"use strict";function _stripBaseHref(e,t){return e&&t.startsWith(e)?t.substring(e.length):t}function _stripIndexHtml(e){return e.replace(/\/index.html$/,"")}var o=n(1),r=n(163);n.d(t,"a",function(){return i});var i=function(){function Location(e){var t=this;this._subject=new o.EventEmitter,this._platformStrategy=e;var n=this._platformStrategy.getBaseHref();this._baseHref=Location.stripTrailingSlash(_stripIndexHtml(n)),this._platformStrategy.onPopState(function(e){t._subject.emit({url:t.path(!0),pop:!0,type:e.type})})}return Location.prototype.path=function(e){return void 0===e&&(e=!1),this.normalize(this._platformStrategy.path(e))},Location.prototype.isCurrentPathEqualTo=function(e,t){return void 0===t&&(t=""),this.path()==this.normalize(e+Location.normalizeQueryParams(t))},Location.prototype.normalize=function(e){return Location.stripTrailingSlash(_stripBaseHref(this._baseHref,_stripIndexHtml(e)))},Location.prototype.prepareExternalUrl=function(e){return e&&"/"!==e[0]&&(e="/"+e),this._platformStrategy.prepareExternalUrl(e)},Location.prototype.go=function(e,t){void 0===t&&(t=""),this._platformStrategy.pushState(null,"",e,t)},Location.prototype.replaceState=function(e,t){void 0===t&&(t=""),this._platformStrategy.replaceState(null,"",e,t)},Location.prototype.forward=function(){this._platformStrategy.forward()},Location.prototype.back=function(){this._platformStrategy.back()},Location.prototype.subscribe=function(e,t,n){return void 0===t&&(t=null),void 0===n&&(n=null),this._subject.subscribe({next:e,error:t,complete:n})},Location.normalizeQueryParams=function(e){return e&&"?"!==e[0]?"?"+e:e},Location.joinWithSlash=function(e,t){if(0==e.length)return t;if(0==t.length)return e;var n=0;return e.endsWith("/")&&n++,t.startsWith("/")&&n++,2==n?e+t.substring(1):1==n?e+t:e+"/"+t},Location.stripTrailingSlash=function(e){return e.replace(/\/$/,"")},Location.decorators=[{type:o.Injectable}],Location.ctorParameters=function(){return[{type:r.a}]},Location}()},function(e,t,n){"use strict";var o=n(1);n.d(t,"a",function(){return r}),n.d(t,"b",function(){return i});var r=function(){function PlatformLocation(){}return PlatformLocation.prototype.getBaseHrefFromDOM=function(){},PlatformLocation.prototype.onPopState=function(e){},PlatformLocation.prototype.onHashChange=function(e){},Object.defineProperty(PlatformLocation.prototype,"pathname",{get:function(){return null},enumerable:!0,configurable:!0}),Object.defineProperty(PlatformLocation.prototype,"search",{get:function(){return null},enumerable:!0,configurable:!0}),Object.defineProperty(PlatformLocation.prototype,"hash",{get:function(){return null},enumerable:!0,configurable:!0}),PlatformLocation.prototype.replaceState=function(e,t,n){},PlatformLocation.prototype.pushState=function(e,t,n){},PlatformLocation.prototype.forward=function(){},PlatformLocation.prototype.back=function(){},PlatformLocation}(),i=new o.OpaqueToken("Location Initialized")},function(e,t,n){"use strict";function _resolveViewStatements(e,t){return t.dependencies.forEach(function(t){if(t instanceof u.a){var o=t;o.placeholder.reference=e.getStaticSymbol(_ngfactoryModuleUrl(n.i(r.m)(o.comp)),t.name)}else if(t instanceof u.b){var i=t;i.placeholder.reference=e.getStaticSymbol(_ngfactoryModuleUrl(n.i(r.m)(i.comp)),_componentFactoryName(i.comp))}else if(t instanceof u.c){var a=t;a.placeholder.reference=e.getStaticSymbol(_ngfactoryModuleUrl(n.i(r.m)(a.dir)),a.name)}}),t.statements}function _resolveStyleStatements(e,t,n){return t.dependencies.forEach(function(t){t.valuePlaceholder.reference=e.getStaticSymbol(_stylesModuleUrl(t.moduleUrl,t.isShimmed,n),t.name)}),t.statements}function _ngfactoryModuleUrl(e){var t=_splitTypescriptSuffix(e);return t[0]+".ngfactory"+t[1]}function _componentFactoryName(e){return n.i(r.c)(e)+"NgFactory"}function _stylesModuleUrl(e,t,n){return""+e+(t?".shim":"")+".ngstyle"+n}function _assertComponent(e){if(!e.isComponent)throw new Error("Could not compile '"+n.i(r.c)(e.type)+"' because it is not a component.")}function _splitTypescriptSuffix(e){if(e.endsWith(".d.ts"))return[e.slice(0,-5),".ts"];var t=e.lastIndexOf(".");return t!==-1?[e.substring(0,t),e.substring(t)]:[e,""]}function analyzeNgModules(e,t,n){var o=_createNgModules(e,t,n),r=o.ngModules,i=o.symbolsMissingModule;return _analyzeNgModules(e,r,i,n)}function analyzeAndValidateNgModules(e,t,n){var o=analyzeNgModules(e,t,n);if(o.symbolsMissingModule&&o.symbolsMissingModule.length){var r=o.symbolsMissingModule.map(function(e){return"Cannot determine the module for class "+e.name+" in "+e.filePath+"!"});throw new Error(r.join("\n"))}return o}function _analyzeNgModules(e,t,n,o){var r=new Map;t.forEach(function(e){return r.set(e.type.reference,e)});var i=new Map,a=new Map,s=new Map,u=new Map,l=new Map,c=new Set;e.forEach(function(e){var t=e.filePath;c.add(t),o.isInjectable(e)&&l.set(t,(l.get(t)||[]).concat(e))}),t.forEach(function(e){var t=e.type.reference.filePath;c.add(t),a.set(t,(a.get(t)||[]).concat(e.type.reference)),e.declaredDirectives.forEach(function(t){var n=t.reference.filePath;c.add(n),s.set(n,(s.get(n)||[]).concat(t.reference)),i.set(t.reference,e)}),e.declaredPipes.forEach(function(t){var n=t.reference.filePath;c.add(n),u.set(n,(u.get(n)||[]).concat(t.reference)),i.set(t.reference,e)})});var d=[];return c.forEach(function(e){var t=s.get(e)||[],n=u.get(e)||[],o=a.get(e)||[],r=l.get(e)||[];d.push({srcUrl:e,directives:t,pipes:n,ngModules:o,injectables:r})}),{ngModuleByPipeOrDirective:i,files:d,ngModules:t,symbolsMissingModule:n}}function extractProgramSymbols(e,t,n){var o=[];return t.filter(function(e){return n.isSourceFile(e)}).forEach(function(t){e.getSymbolsOf(t).forEach(function(t){var n=e.resolveSymbol(t),r=n.metadata;r&&"error"!=r.__symbolic&&o.push(n.symbol)})}),o}function _createNgModules(e,t,n){var o=new Map,r=[],i=new Set,a=function(e){if(o.has(e)||!t.isSourceFile(e.filePath))return!1;var r=n.getNgModuleMetadata(e,!1);return r&&(o.set(r.type.reference,r),r.declaredDirectives.forEach(function(e){return i.add(e.reference)}),r.declaredPipes.forEach(function(e){return i.add(e.reference)}),r.transitiveModule.modules.forEach(function(e){return a(e.reference)})),!!r};e.forEach(function(e){a(e)||!n.isDirective(e)&&!n.isPipe(e)||r.push(e)});var s=r.filter(function(e){return!i.has(e)});return{ngModules:Array.from(o.values()),symbolsMissingModule:s}}var o=n(349),r=n(14),i=n(85),a=n(19),s=n(10),u=n(130),l=n(616),c=n(350);n.d(t,"a",function(){return d}),t.c=analyzeAndValidateNgModules,t.b=extractProgramSymbols;var d=function(){function AotCompiler(e,t,n,r,i,a,s,u,l,c,d,p,g){this._host=e,this._metadataResolver=t,this._templateParser=n,this._styleCompiler=r,this._viewCompiler=i,this._dirWrapperCompiler=a,this._ngModuleCompiler=s,this._outputEmitter=u,this._summaryResolver=l,this._localeId=c,this._translationFormat=d,this._animationParser=p,this._symbolResolver=g,this._animationCompiler=new o.a}return AotCompiler.prototype.clearCache=function(){this._metadataResolver.clearCache()},AotCompiler.prototype.compileAll=function(e){var t=this,n=extractProgramSymbols(this._symbolResolver,e,this._host),o=analyzeAndValidateNgModules(n,this._host,this._metadataResolver),r=o.ngModuleByPipeOrDirective,a=o.files,s=o.ngModules;return Promise.all(s.map(function(e){return t._metadataResolver.loadNgModuleDirectiveAndPipeMetadata(e.type.reference,!1)})).then(function(){var e=a.map(function(e){return t._compileSrcFile(e.srcUrl,r,e.directives,e.pipes,e.ngModules,e.injectables)});return i.a.flatten(e)})},AotCompiler.prototype._compileSrcFile=function(e,t,o,i,a,s){var u=this,l=_splitTypescriptSuffix(e)[1],c=[],d=[],p=[];if(p.push(this._createSummary(e,o,i,a,s)),d.push.apply(d,a.map(function(e){return u._compileModule(e,c)})),d.push.apply(d,o.map(function(e){return u._compileDirectiveWrapper(e,c)})),o.forEach(function(o){var i=u._metadataResolver.getDirectiveMetadata(o);if(!i.isComponent)return Promise.resolve(null);var a=t.get(o);if(!a)throw new Error("Internal Error: cannot determine the module for component "+n.i(r.c)(i.type)+"!");_assertComponent(i);var s=u._styleCompiler.compileComponent(i);s.externalStylesheets.forEach(function(t){p.push(u._codgenStyles(e,t,l))}),d.push(u._compileComponentFactory(i,a,l,c),u._compileComponent(i,a,a.transitiveModule.directives,s.componentStylesheet,l,c))}),c.length>0){var g=this._codegenSourceModule(e,_ngfactoryModuleUrl(e),c,d);p.unshift(g)}return p},AotCompiler.prototype._createSummary=function(e,t,o,r,i){var a=this,s=this._symbolResolver.getSymbolsOf(e).map(function(e){return a._symbolResolver.resolveSymbol(e)}),u=r.map(function(e){return a._metadataResolver.getNgModuleSummary(e)}).concat(t.map(function(e){return a._metadataResolver.getDirectiveSummary(e)}),o.map(function(e){return a._metadataResolver.getPipeSummary(e)}),i.map(function(e){return a._metadataResolver.getInjectableSummary(e)})),d=n.i(c.a)(this._host,this._summaryResolver,this._symbolResolver,s,u);return new l.a(e,n.i(c.b)(e),d)},AotCompiler.prototype._compileModule=function(e,t){var o=this,i=this._metadataResolver.getNgModuleMetadata(e),s=[];this._localeId&&s.push({token:n.i(a.d)(a.b.LOCALE_ID),useValue:this._localeId}),this._translationFormat&&s.push({token:n.i(a.d)(a.b.TRANSLATIONS_FORMAT),useValue:this._translationFormat});var u=this._ngModuleCompiler.compile(i,s);return u.dependencies.forEach(function(e){e.placeholder.reference=o._symbolResolver.getStaticSymbol(_ngfactoryModuleUrl(n.i(r.m)(e.comp)),_componentFactoryName(e.comp))}),t.push.apply(t,u.statements),u.ngModuleFactoryVar},AotCompiler.prototype._compileDirectiveWrapper=function(e,t){var n=this._metadataResolver.getDirectiveMetadata(e),o=this._dirWrapperCompiler.compile(n);return t.push.apply(t,o.statements),o.dirWrapperClassVar},AotCompiler.prototype._compileComponentFactory=function(e,t,o,i){var u=n.i(r.v)(this._symbolResolver.getStaticSymbol(n.i(r.m)(e.type),n.i(r.c)(e.type)+"_Host"),e),l=this._compileComponent(u,t,[e.type],null,o,i),c=_componentFactoryName(e.type);return i.push(s.g(c).set(s.d(n.i(a.e)(a.b.ComponentFactory),[s.B(e.type)]).instantiate([s.f(e.selector),s.g(l),s.d(e.type)],s.B(n.i(a.e)(a.b.ComponentFactory),[s.B(e.type)],[s.J.Const]))).toDeclStmt(null,[s.b.Final])),c},AotCompiler.prototype._compileComponent=function(e,t,o,i,a,u){var l=this,c=this._animationParser.parseComponent(e),d=o.map(function(e){return l._metadataResolver.getDirectiveSummary(e.reference)}),p=t.transitiveModule.pipes.map(function(e){return l._metadataResolver.getPipeSummary(e.reference)}),g=this._templateParser.parse(e,e.template.template,d,p,t.schemas,n.i(r.c)(e.type)),f=i?s.g(i.stylesVar):s.n([]),h=this._animationCompiler.compile(n.i(r.c)(e.type),c),m=this._viewCompiler.compileComponent(e,g,f,p,h);return i&&u.push.apply(u,_resolveStyleStatements(this._symbolResolver,i,a)),h.forEach(function(e){return u.push.apply(u,e.statements)}),u.push.apply(u,_resolveViewStatements(this._symbolResolver,m)),m.viewClassVar},AotCompiler.prototype._codgenStyles=function(e,t,n){return _resolveStyleStatements(this._symbolResolver,t,n),this._codegenSourceModule(e,_stylesModuleUrl(t.meta.moduleUrl,t.isShimmed,n),t.statements,[t.stylesVar])},AotCompiler.prototype._codegenSourceModule=function(e,t,n,o){return new l.a(e,t,this._outputEmitter.emitStatements(t,n,o))},AotCompiler}()},function(e,t,n){"use strict";function isStaticType(e){return"object"==typeof e&&e.name&&e.filePath}var o=n(17);n.d(t,"a",function(){return r});var r=function(){function StaticAndDynamicReflectionCapabilities(e){this.staticDelegate=e,this.dynamicDelegate=new o.M}return StaticAndDynamicReflectionCapabilities.install=function(e){o.a.updateCapabilities(new StaticAndDynamicReflectionCapabilities(e))},StaticAndDynamicReflectionCapabilities.prototype.isReflectionEnabled=function(){return!0},StaticAndDynamicReflectionCapabilities.prototype.factory=function(e){return this.dynamicDelegate.factory(e)},StaticAndDynamicReflectionCapabilities.prototype.hasLifecycleHook=function(e,t){return isStaticType(e)?this.staticDelegate.hasLifecycleHook(e,t):this.dynamicDelegate.hasLifecycleHook(e,t)},StaticAndDynamicReflectionCapabilities.prototype.parameters=function(e){return isStaticType(e)?this.staticDelegate.parameters(e):this.dynamicDelegate.parameters(e)},StaticAndDynamicReflectionCapabilities.prototype.annotations=function(e){return isStaticType(e)?this.staticDelegate.annotations(e):this.dynamicDelegate.annotations(e)},StaticAndDynamicReflectionCapabilities.prototype.propMetadata=function(e){return isStaticType(e)?this.staticDelegate.propMetadata(e):this.dynamicDelegate.propMetadata(e)},StaticAndDynamicReflectionCapabilities.prototype.getter=function(e){return this.dynamicDelegate.getter(e)},StaticAndDynamicReflectionCapabilities.prototype.setter=function(e){return this.dynamicDelegate.setter(e)},StaticAndDynamicReflectionCapabilities.prototype.method=function(e){return this.dynamicDelegate.method(e)},StaticAndDynamicReflectionCapabilities.prototype.importUri=function(e){return this.staticDelegate.importUri(e)},StaticAndDynamicReflectionCapabilities.prototype.resolveIdentifier=function(e,t,n){return this.staticDelegate.resolveIdentifier(e,t)},StaticAndDynamicReflectionCapabilities.prototype.resolveEnum=function(e,t){return isStaticType(e)?this.staticDelegate.resolveEnum(e,t):null},StaticAndDynamicReflectionCapabilities}()},function(e,t,n){"use strict";function expandedMessage(e){switch(e.message){case"Reference to non-exported class":if(e.context&&e.context.className)return"Reference to a non-exported class "+e.context.className+". Consider exporting the class";break;case"Variable not initialized":return"Only initialized variables and constants can be referenced because the value of this variable is needed by the template compiler";case"Destructuring not supported":return"Referencing an exported destructured variable or constant is not supported by the template compiler. Consider simplifying this to avoid destructuring";case"Could not resolve type":if(e.context&&e.context.typeName)return"Could not resolve type "+e.context.typeName;break;case"Function call not supported":var t=e.context&&e.context.name?"Calling function '"+e.context.name+"', f":"F";return t+"unction calls are not supported. Consider replacing the function or lambda with a reference to an exported function";case"Reference to a local symbol":if(e.context&&e.context.name)return"Reference to a local (non-exported) symbol '"+e.context.name+"'. Consider exporting the symbol"}return e.message}function produceErrorMessage(e){return"Error encountered resolving symbol values statically. "+expandedMessage(e)}function mapStringMap(e,t){if(!e)return{};var n={};return Object.keys(e).forEach(function(o){var r=t(e[o],o);shouldIgnore(r)||(u.test(o)?Object.defineProperty(n,o,{enumerable:!1,configurable:!0,value:r}):n[o]=r)}),n}function isPrimitive(e){return null===e||"function"!=typeof e&&"object"!=typeof e}function shouldIgnore(e){return e&&"ignore"==e.__symbolic}function positionalError(e,t,n,o){var r=new Error(e);return r.fileName=t,r.line=n,r.column=o,r}var o=n(1),r=n(32),i=n(71);n.d(t,"a",function(){return l});var a=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},s={coreDecorators:"@angular/core/src/metadata",diDecorators:"@angular/core/src/di/metadata",diMetadata:"@angular/core/src/di/metadata",diOpaqueToken:"@angular/core/src/di/opaque_token",animationMetadata:"@angular/core/src/animation/metadata",provider:"@angular/core/src/di/provider"},u=/^\$.*\$$/,l=function(){function StaticReflector(e,t,n,o){var r=this;void 0===t&&(t=[]),void 0===n&&(n=[]),this.symbolResolver=e,this.errorRecorder=o,this.annotationCache=new Map,this.propertyCache=new Map,this.parameterCache=new Map,this.methodCache=new Map,this.conversionMap=new Map,this.initializeConversionMap(),t.forEach(function(e){return r._registerDecoratorOrConstructor(r.getStaticSymbol(e.filePath,e.name),e.ctor)}),n.forEach(function(e){return r._registerFunction(r.getStaticSymbol(e.filePath,e.name),e.fn)})}return StaticReflector.prototype.importUri=function(e){var t=this.findSymbolDeclaration(e);return t?t.filePath:null},StaticReflector.prototype.resolveIdentifier=function(e,t){return this.findDeclaration(t,e)},StaticReflector.prototype.findDeclaration=function(e,t,n){return this.findSymbolDeclaration(this.symbolResolver.getSymbolByModule(e,t,n))},StaticReflector.prototype.findSymbolDeclaration=function(e){var t=this.symbolResolver.resolveSymbol(e);return t&&t.metadata instanceof i.a?this.findSymbolDeclaration(t.metadata):e},StaticReflector.prototype.resolveEnum=function(e,t){var n=e;return this.getStaticSymbol(n.filePath,n.name,[t])},StaticReflector.prototype.annotations=function(e){var t=this.annotationCache.get(e);if(!t){t=[];var n=this.getTypeMetadata(e);if(n.extends){var o=this.annotations(this.simplify(e,n.extends));t.push.apply(t,o)}if(n.decorators){var r=this.simplify(e,n.decorators);t.push.apply(t,r)}this.annotationCache.set(e,t.filter(function(e){return!!e}))}return t},StaticReflector.prototype.propMetadata=function(e){var t=this,n=this.propertyCache.get(e);if(!n){var o=this.getTypeMetadata(e);if(n={},o.extends){var r=this.propMetadata(this.simplify(e,o.extends));Object.keys(r).forEach(function(e){n[e]=r[e]})}var i=o.members||{};Object.keys(i).forEach(function(o){var r=i[o],a=r.find(function(e){return"property"==e.__symbolic||"method"==e.__symbolic}),s=[];n[o]&&s.push.apply(s,n[o]),n[o]=s,a&&a.decorators&&s.push.apply(s,t.simplify(e,a.decorators))}),this.propertyCache.set(e,n)}return n},StaticReflector.prototype.parameters=function(e){if(!(e instanceof i.a))return this.reportError(new Error("parameters received "+JSON.stringify(e)+" which is not a StaticSymbol"),e),[];try{var t=this.parameterCache.get(e);if(!t){var n=this.getTypeMetadata(e),o=n?n.members:null,r=o?o.__ctor__:null;if(r){var a=r.find(function(e){return"constructor"==e.__symbolic}),s=this.simplify(e,a.parameters||[]),u=this.simplify(e,a.parameterDecorators||[]);t=[],s.forEach(function(e,n){var o=[];e&&o.push(e);var r=u?u[n]:null;r&&o.push.apply(o,r),t.push(o)})}else n.extends&&(t=this.parameters(this.simplify(e,n.extends)));t||(t=[]),this.parameterCache.set(e,t)}return t}catch(l){throw console.error("Failed on type "+JSON.stringify(e)+" with error "+l),l}},StaticReflector.prototype._methodNames=function(e){var t=this.methodCache.get(e);if(!t){var n=this.getTypeMetadata(e);if(t={},n.extends){var o=this._methodNames(this.simplify(e,n.extends));Object.keys(o).forEach(function(e){t[e]=o[e]})}var r=n.members||{};Object.keys(r).forEach(function(e){var n=r[e],o=n.some(function(e){return"method"==e.__symbolic});t[e]=t[e]||o}),this.methodCache.set(e,t)}return t},StaticReflector.prototype.hasLifecycleHook=function(e,t){e instanceof i.a||this.reportError(new Error("hasLifecycleHook received "+JSON.stringify(e)+" which is not a StaticSymbol"),e);try{return!!this._methodNames(e)[t]}catch(n){throw console.error("Failed on type "+JSON.stringify(e)+" with error "+n),n}},StaticReflector.prototype._registerDecoratorOrConstructor=function(e,t){this.conversionMap.set(e,function(e,n){return new(t.bind.apply(t,[void 0].concat(n)))})},StaticReflector.prototype._registerFunction=function(e,t){this.conversionMap.set(e,function(e,n){return t.apply(void 0,n)})},StaticReflector.prototype.initializeConversionMap=function(){var e=s.coreDecorators,t=s.diDecorators,n=s.diMetadata,r=s.diOpaqueToken,i=s.animationMetadata;s.provider;this.opaqueToken=this.findDeclaration(r,"OpaqueToken"),this._registerDecoratorOrConstructor(this.findDeclaration(t,"Host"),o.Host),this._registerDecoratorOrConstructor(this.findDeclaration(t,"Injectable"),o.Injectable),this._registerDecoratorOrConstructor(this.findDeclaration(t,"Self"),o.Self),this._registerDecoratorOrConstructor(this.findDeclaration(t,"SkipSelf"),o.SkipSelf),this._registerDecoratorOrConstructor(this.findDeclaration(t,"Inject"),o.Inject),this._registerDecoratorOrConstructor(this.findDeclaration(t,"Optional"),o.Optional),this._registerDecoratorOrConstructor(this.findDeclaration(e,"Attribute"),o.Attribute),this._registerDecoratorOrConstructor(this.findDeclaration(e,"ContentChild"),o.ContentChild),this._registerDecoratorOrConstructor(this.findDeclaration(e,"ContentChildren"),o.ContentChildren),this._registerDecoratorOrConstructor(this.findDeclaration(e,"ViewChild"),o.ViewChild),this._registerDecoratorOrConstructor(this.findDeclaration(e,"ViewChildren"),o.ViewChildren),this._registerDecoratorOrConstructor(this.findDeclaration(e,"Input"),o.Input),this._registerDecoratorOrConstructor(this.findDeclaration(e,"Output"),o.Output),this._registerDecoratorOrConstructor(this.findDeclaration(e,"Pipe"),o.Pipe),this._registerDecoratorOrConstructor(this.findDeclaration(e,"HostBinding"),o.HostBinding),this._registerDecoratorOrConstructor(this.findDeclaration(e,"HostListener"),o.HostListener),this._registerDecoratorOrConstructor(this.findDeclaration(e,"Directive"),o.Directive),this._registerDecoratorOrConstructor(this.findDeclaration(e,"Component"),o.Component),this._registerDecoratorOrConstructor(this.findDeclaration(e,"NgModule"),o.NgModule),this._registerDecoratorOrConstructor(this.findDeclaration(n,"Host"),o.Host),this._registerDecoratorOrConstructor(this.findDeclaration(n,"Self"),o.Self),this._registerDecoratorOrConstructor(this.findDeclaration(n,"SkipSelf"),o.SkipSelf),this._registerDecoratorOrConstructor(this.findDeclaration(n,"Optional"),o.Optional),this._registerFunction(this.findDeclaration(i,"trigger"),o.trigger),this._registerFunction(this.findDeclaration(i,"state"),o.state),this._registerFunction(this.findDeclaration(i,"transition"),o.transition),this._registerFunction(this.findDeclaration(i,"style"),o.style),this._registerFunction(this.findDeclaration(i,"animate"),o.animate),this._registerFunction(this.findDeclaration(i,"keyframes"),o.keyframes),this._registerFunction(this.findDeclaration(i,"sequence"),o.sequence),this._registerFunction(this.findDeclaration(i,"group"),o.group)},StaticReflector.prototype.getStaticSymbol=function(e,t,n){return this.symbolResolver.getStaticSymbol(e,t,n)},StaticReflector.prototype.reportError=function(e,t,n){if(!this.errorRecorder)throw e;this.errorRecorder(e,t&&t.filePath||n)},StaticReflector.prototype.simplify=function(e,t){function simplifyInContext(e,t,n){function resolveReferenceValue(e){var t=o.symbolResolver.resolveSymbol(e);return t?t.metadata:null}function simplifyCall(t,o,r){if(o&&"function"==o.__symbolic){if(s.get(t))throw new Error("Recursion not supported");s.set(t,!0);try{var i=o.value;if(i&&(0!=n||"error"!=i.__symbolic)){var u=o.parameters,l=o.defaults;r=r.map(function(t){return simplifyInContext(e,t,n+1)}),l&&l.length>r.length&&r.push.apply(r,l.slice(r.length).map(function(e){return simplify(e)}));for(var d=c.build(),p=0;p<u.length;p++)d.define(u[p],r[p]);var g,f=a;try{a=d.done(),g=simplifyInContext(t,i,n+1)}finally{a=f}return g}}finally{s.delete(t)}}return 0===n?{__symbolic:"ignore"}:simplify({__symbolic:"error",message:"Function call not supported",context:t})}function simplify(t){if(isPrimitive(t))return t;if(t instanceof Array){for(var r=[],s=0,u=t;s<u.length;s++){var l=u[s];if(l&&"spread"===l.__symbolic){var d=simplify(l.expression);if(Array.isArray(d)){for(var p=0,g=d;p<g.length;p++){var f=g[p];r.push(f)}continue}}var h=simplify(l);shouldIgnore(h)||r.push(h)}return r}if(t instanceof i.a){if(t===o.opaqueToken||o.conversionMap.has(t))return t;var m=t,y=resolveReferenceValue(m);return y?simplifyInContext(m,y,n+1):m}if(t){if(t.__symbolic){var m=void 0;switch(t.__symbolic){case"binop":var b=simplify(t.left);if(shouldIgnore(b))return b;
var v=simplify(t.right);if(shouldIgnore(v))return v;switch(t.operator){case"&&":return b&&v;case"||":return b||v;case"|":return b|v;case"^":return b^v;case"&":return b&v;case"==":return b==v;case"!=":return b!=v;case"===":return b===v;case"!==":return b!==v;case"<":return b<v;case">":return b>v;case"<=":return b<=v;case">=":return b>=v;case"<<":return b<<v;case">>":return b>>v;case"+":return b+v;case"-":return b-v;case"*":return b*v;case"/":return b/v;case"%":return b%v}return null;case"if":var _=simplify(t.condition);return simplify(_?t.thenExpression:t.elseExpression);case"pre":var E=simplify(t.operand);if(shouldIgnore(E))return E;switch(t.operator){case"+":return E;case"-":return-E;case"!":return!E;case"~":return~E}return null;case"index":var T=simplify(t.expression),S=simplify(t.index);return T&&isPrimitive(S)?T[S]:null;case"select":var A=t.member,M=e,C=simplify(t.expression);if(C instanceof i.a){var k=C.members.concat(A);M=o.getStaticSymbol(C.filePath,C.name,k);var y=resolveReferenceValue(M);return y?simplifyInContext(M,y,n+1):M}return C&&isPrimitive(A)?simplifyInContext(M,C[A],n+1):null;case"reference":var R=t.name,N=a.resolve(R);if(N!=c.missing)return N;break;case"class":return e;case"function":return e;case"new":case"call":if(m=simplifyInContext(e,t.expression,n+1),m instanceof i.a){if(m===o.opaqueToken)return e;var O=t.arguments||[],D=o.conversionMap.get(m);if(D){var w=O.map(function(t){return simplifyInContext(e,t,n+1)});return D(e,w)}var I=resolveReferenceValue(m);return simplifyCall(m,I,O)}break;case"error":var x=produceErrorMessage(t);if(t.line)throw x=x+" (position "+(t.line+1)+":"+(t.character+1)+" in the original .ts file)",positionalError(x,e.filePath,t.line,t.character);throw new Error(x)}return null}return mapStringMap(t,function(e,t){return simplify(e)})}return null}try{return simplify(t)}catch(u){var l=e.members.length?"."+e.members.join("."):"",d=u.message+", resolving symbol "+e.name+l+" in "+e.filePath;if(u.fileName)throw positionalError(d,u.fileName,u.line,u.column);throw new r.c(d)}}var n=this,o=this,a=c.empty,s=new Map,u=function(e,t,o){try{return simplifyInContext(e,t,o)}catch(r){n.reportError(r,e)}},l=this.errorRecorder?u(e,t,0):simplifyInContext(e,t,0);if(!shouldIgnore(l))return l},StaticReflector.prototype.getTypeMetadata=function(e){var t=this.symbolResolver.resolveSymbol(e);return t&&t.metadata?t.metadata:{__symbolic:"class"}},StaticReflector}(),c=function(){function BindingScope(){}return BindingScope.prototype.resolve=function(e){},BindingScope.build=function(){var e=new Map;return{define:function(t,n){return e.set(t,n),this},done:function(){return e.size>0?new d(e):BindingScope.empty}}},BindingScope.missing={},BindingScope.empty={resolve:function(e){return BindingScope.missing}},BindingScope}(),d=function(e){function PopulatedScope(t){e.call(this),this.bindings=t}return a(PopulatedScope,e),PopulatedScope.prototype.resolve=function(e){return this.bindings.has(e)?this.bindings.get(e):c.missing},PopulatedScope}(c)},function(e,t,n){"use strict";var o=n(32),r=n(71);n.d(t,"a",function(){return u});var i=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},a=function(){function ResolvedStaticSymbol(e,t){this.symbol=e,this.metadata=t}return ResolvedStaticSymbol}(),s=3,u=function(){function StaticSymbolResolver(e,t,n,o){this.host=e,this.staticSymbolCache=t,this.summaryResolver=n,this.errorRecorder=o,this.metadataCache=new Map,this.resolvedSymbols=new Map,this.resolvedFilePaths=new Set}return StaticSymbolResolver.prototype.resolveSymbol=function(e){if(e.members.length>0)return this._resolveSymbolMembers(e);var t=this._resolveSymbolFromSummary(e);return t||(this._createSymbolsOf(e.filePath),t=this.resolvedSymbols.get(e)),t},StaticSymbolResolver.prototype._resolveSymbolMembers=function(e){var t=e.members,n=this.resolveSymbol(this.getStaticSymbol(e.filePath,e.name));if(!n)return null;var o=n.metadata;if(o instanceof r.a)return new a(e,this.getStaticSymbol(o.filePath,o.name,t));if(!o||"class"!==o.__symbolic){for(var i=o,s=0;s<t.length&&i;s++)i=i[t[s]];return new a(e,i)}return o.statics&&1===t.length?new a(e,o.statics[t[0]]):null},StaticSymbolResolver.prototype._resolveSymbolFromSummary=function(e){var t=this.summaryResolver.resolveSummary(e);return t?new a(e,t.metadata):null},StaticSymbolResolver.prototype.getStaticSymbol=function(e,t,n){return this.staticSymbolCache.get(e,t,n)},StaticSymbolResolver.prototype.getSymbolsOf=function(e){var t=new Set(this.summaryResolver.getSymbolsOf(e));return this._createSymbolsOf(e),this.resolvedSymbols.forEach(function(n){n.symbol.filePath===e&&t.add(n.symbol)}),Array.from(t)},StaticSymbolResolver.prototype._createSymbolsOf=function(e){var t=this;if(!this.resolvedFilePaths.has(e)){this.resolvedFilePaths.add(e);var n=[],o=this.getModuleMetadata(e);if(o.metadata&&Object.keys(o.metadata).forEach(function(r){var i=o.metadata[r];n.push(t.createResolvedSymbol(t.getStaticSymbol(e,r),i))}),o.exports)for(var r=function(o){if(o.export)o.export.forEach(function(r){var i;i="string"==typeof r?r:r.as;var s=i;"string"!=typeof r&&(s=r.name);var u=t.resolveModule(o.from,e);if(u){var l=t.getStaticSymbol(u,s),c=t.getStaticSymbol(e,i);n.push(new a(c,l))}});else{var r=i.resolveModule(o.from,e);if(r){var s=i.getSymbolsOf(r);s.forEach(function(o){var r=t.getStaticSymbol(e,o.name);n.push(new a(r,o))})}}},i=this,s=0,u=o.exports;s<u.length;s++){var l=u[s];r(l)}n.forEach(function(e){return t.resolvedSymbols.set(e.symbol,e)})}},StaticSymbolResolver.prototype.createResolvedSymbol=function(e,t){var r=this,s=function(t){function ReferenceTransformer(){t.apply(this,arguments)}return i(ReferenceTransformer,t),ReferenceTransformer.prototype.visitStringMap=function(n,o){var i=n.__symbolic;if("function"===i){var a=o.length;o.push.apply(o,n.parameters||[]);var s=t.prototype.visitStringMap.call(this,n,o);return o.length=a,s}if("reference"===i){var u=n.module,l=n.name;if(!l)return null;var c=void 0;if(u){if(c=r.resolveModule(u,e.filePath),!c)return{__symbolic:"error",message:"Could not resolve "+u+" relative to "+e.filePath+"."}}else{var d=o.indexOf(l)>=0;d||(c=e.filePath)}return c?r.getStaticSymbol(c,l):{__symbolic:"reference",name:l}}return t.prototype.visitStringMap.call(this,n,o)},ReferenceTransformer}(o.g),u=n.i(o.f)(t,new s,[]);return new a(e,u)},StaticSymbolResolver.prototype.reportError=function(e,t,n){if(!this.errorRecorder)throw e;this.errorRecorder(e,t&&t.filePath||n)},StaticSymbolResolver.prototype.getModuleMetadata=function(e){var t=this.metadataCache.get(e);if(!t){var n=this.host.getMetadataFor(e);if(n){var o=-1;n.forEach(function(e){e.version>o&&(o=e.version,t=e)})}if(t||(t={__symbolic:"module",version:s,module:e,metadata:{}}),t.version!=s){var r=2==t.version?"Unsupported metadata version "+t.version+" for module "+e+". This module should be compiled with a newer version of ngc":"Metadata version mismatch for module "+e+", found version "+t.version+", expected "+s;this.reportError(new Error(r),null)}this.metadataCache.set(e,t)}return t},StaticSymbolResolver.prototype.getSymbolByModule=function(e,t,n){var o=this.resolveModule(e,n);return o?this.getStaticSymbol(o,t):(this.reportError(new Error("Could not resolve module "+e+(n?" relative to $ {\n containingFile\n } ":"")),null),this.getStaticSymbol("ERROR:"+e,t))},StaticSymbolResolver.prototype.resolveModule=function(e,t){try{return this.host.moduleNameToFileName(e,t)}catch(n){console.error("Could not resolve module '"+e+"' relative to file "+t),this.reportError(new n,null,t)}},StaticSymbolResolver}()},function(e,t,n){"use strict";var o=n(350);n.d(t,"a",function(){return r});var r=function(){function AotSummaryResolver(e,t){this.host=e,this.staticSymbolCache=t,this.summaryCache=new Map,this.loadedFilePaths=new Set}return AotSummaryResolver.prototype._assertNoMembers=function(e){if(e.members.length)throw new Error("Internal state: StaticSymbols in summaries can't have members! "+JSON.stringify(e))},AotSummaryResolver.prototype.resolveSummary=function(e){this._assertNoMembers(e);var t=this.summaryCache.get(e);return t||(this._loadSummaryFile(e.filePath),t=this.summaryCache.get(e)),t},AotSummaryResolver.prototype.getSymbolsOf=function(e){return this._loadSummaryFile(e),Array.from(this.summaryCache.keys()).filter(function(t){return t.filePath===e})},AotSummaryResolver.prototype._loadSummaryFile=function(e){var t=this;if(!this.loadedFilePaths.has(e)&&(this.loadedFilePaths.add(e),!this.host.isSourceFile(e))){var r=n.i(o.b)(e),i=void 0;try{i=this.host.loadSummary(r)}catch(a){throw console.error("Error loading summary file "+r),a}if(i){var s=n.i(o.c)(this.staticSymbolCache,i);s.forEach(function(e){t.summaryCache.set(e.symbol,e)})}}},AotSummaryResolver}()},function(e,t,n){"use strict";var o=n(7);n.d(t,"b",function(){return i}),n.d(t,"d",function(){return a}),n.d(t,"c",function(){return u}),n.d(t,"g",function(){return l}),n.d(t,"p",function(){return c}),n.d(t,"h",function(){return d}),n.d(t,"j",function(){return p}),n.d(t,"w",function(){return g}),n.d(t,"v",function(){return f}),n.d(t,"u",function(){return h}),n.d(t,"n",function(){return m}),n.d(t,"m",function(){return y}),n.d(t,"i",function(){return b}),n.d(t,"f",function(){return v}),n.d(t,"q",function(){return _}),n.d(t,"r",function(){return E}),n.d(t,"e",function(){return T}),n.d(t,"k",function(){return S}),n.d(t,"l",function(){return A}),n.d(t,"t",function(){return M}),n.d(t,"s",function(){return C}),n.d(t,"o",function(){return k}),n.d(t,"a",function(){return R}),n.d(t,"x",function(){return N}),n.d(t,"y",function(){return O});var r=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},i=function(){function ParserError(e,t,n,o){this.input=t,this.errLocation=n,this.ctxLocation=o,this.message="Parser Error: "+e+" "+n+" ["+t+"] in "+o}return ParserError}(),a=function(){function ParseSpan(e,t){this.start=e,this.end=t}return ParseSpan}(),s=function(){function AST(e){this.span=e}return AST.prototype.visit=function(e,t){return void 0===t&&(t=null),null},AST.prototype.toString=function(){return"AST"},AST}(),u=function(e){function Quote(t,n,o,r){e.call(this,t),this.prefix=n,this.uninterpretedExpression=o,this.location=r}return r(Quote,e),Quote.prototype.visit=function(e,t){return void 0===t&&(t=null),e.visitQuote(this,t)},Quote.prototype.toString=function(){return"Quote"},Quote}(s),l=function(e){function EmptyExpr(){e.apply(this,arguments)}return r(EmptyExpr,e),EmptyExpr.prototype.visit=function(e,t){void 0===t&&(t=null)},EmptyExpr}(s),c=function(e){function ImplicitReceiver(){e.apply(this,arguments)}return r(ImplicitReceiver,e),ImplicitReceiver.prototype.visit=function(e,t){return void 0===t&&(t=null),e.visitImplicitReceiver(this,t)},ImplicitReceiver}(s),d=function(e){function Chain(t,n){e.call(this,t),this.expressions=n}return r(Chain,e),Chain.prototype.visit=function(e,t){return void 0===t&&(t=null),e.visitChain(this,t)},Chain}(s),p=function(e){function Conditional(t,n,o,r){e.call(this,t),this.condition=n,this.trueExp=o,this.falseExp=r}return r(Conditional,e),Conditional.prototype.visit=function(e,t){return void 0===t&&(t=null),e.visitConditional(this,t)},Conditional}(s),g=function(e){function PropertyRead(t,n,o){e.call(this,t),this.receiver=n,this.name=o}return r(PropertyRead,e),PropertyRead.prototype.visit=function(e,t){return void 0===t&&(t=null),e.visitPropertyRead(this,t)},PropertyRead}(s),f=function(e){function PropertyWrite(t,n,o,r){e.call(this,t),this.receiver=n,this.name=o,this.value=r}return r(PropertyWrite,e),PropertyWrite.prototype.visit=function(e,t){return void 0===t&&(t=null),e.visitPropertyWrite(this,t)},PropertyWrite}(s),h=function(e){function SafePropertyRead(t,n,o){e.call(this,t),this.receiver=n,this.name=o}return r(SafePropertyRead,e),SafePropertyRead.prototype.visit=function(e,t){return void 0===t&&(t=null),e.visitSafePropertyRead(this,t)},SafePropertyRead}(s),m=function(e){function KeyedRead(t,n,o){e.call(this,t),this.obj=n,this.key=o}return r(KeyedRead,e),KeyedRead.prototype.visit=function(e,t){return void 0===t&&(t=null),e.visitKeyedRead(this,t)},KeyedRead}(s),y=function(e){function KeyedWrite(t,n,o,r){e.call(this,t),this.obj=n,this.key=o,this.value=r}return r(KeyedWrite,e),KeyedWrite.prototype.visit=function(e,t){return void 0===t&&(t=null),e.visitKeyedWrite(this,t)},KeyedWrite}(s),b=function(e){function BindingPipe(t,n,o,r){e.call(this,t),this.exp=n,this.name=o,this.args=r}return r(BindingPipe,e),BindingPipe.prototype.visit=function(e,t){return void 0===t&&(t=null),e.visitPipe(this,t)},BindingPipe}(s),v=function(e){function LiteralPrimitive(t,n){e.call(this,t),this.value=n}return r(LiteralPrimitive,e),LiteralPrimitive.prototype.visit=function(e,t){return void 0===t&&(t=null),e.visitLiteralPrimitive(this,t)},LiteralPrimitive}(s),_=function(e){function LiteralArray(t,n){e.call(this,t),this.expressions=n}return r(LiteralArray,e),LiteralArray.prototype.visit=function(e,t){return void 0===t&&(t=null),e.visitLiteralArray(this,t)},LiteralArray}(s),E=function(e){function LiteralMap(t,n,o){e.call(this,t),this.keys=n,this.values=o}return r(LiteralMap,e),LiteralMap.prototype.visit=function(e,t){return void 0===t&&(t=null),e.visitLiteralMap(this,t)},LiteralMap}(s),T=function(e){function Interpolation(t,n,o){e.call(this,t),this.strings=n,this.expressions=o}return r(Interpolation,e),Interpolation.prototype.visit=function(e,t){return void 0===t&&(t=null),e.visitInterpolation(this,t)},Interpolation}(s),S=function(e){function Binary(t,n,o,r){e.call(this,t),this.operation=n,this.left=o,this.right=r}return r(Binary,e),Binary.prototype.visit=function(e,t){return void 0===t&&(t=null),e.visitBinary(this,t)},Binary}(s),A=function(e){function PrefixNot(t,n){e.call(this,t),this.expression=n}return r(PrefixNot,e),PrefixNot.prototype.visit=function(e,t){return void 0===t&&(t=null),e.visitPrefixNot(this,t)},PrefixNot}(s),M=function(e){function MethodCall(t,n,o,r){e.call(this,t),this.receiver=n,this.name=o,this.args=r}return r(MethodCall,e),MethodCall.prototype.visit=function(e,t){return void 0===t&&(t=null),e.visitMethodCall(this,t)},MethodCall}(s),C=function(e){function SafeMethodCall(t,n,o,r){e.call(this,t),this.receiver=n,this.name=o,this.args=r}return r(SafeMethodCall,e),SafeMethodCall.prototype.visit=function(e,t){return void 0===t&&(t=null),e.visitSafeMethodCall(this,t)},SafeMethodCall}(s),k=function(e){function FunctionCall(t,n,o){e.call(this,t),this.target=n,this.args=o}return r(FunctionCall,e),FunctionCall.prototype.visit=function(e,t){return void 0===t&&(t=null),e.visitFunctionCall(this,t)},FunctionCall}(s),R=function(e){function ASTWithSource(t,r,i,s){e.call(this,new a(0,n.i(o.g)(r)?0:r.length)),this.ast=t,this.source=r,this.location=i,this.errors=s}return r(ASTWithSource,e),ASTWithSource.prototype.visit=function(e,t){return void 0===t&&(t=null),this.ast.visit(e,t)},ASTWithSource.prototype.toString=function(){return this.source+" in "+this.location},ASTWithSource}(s),N=function(){function TemplateBinding(e,t,n,o,r){this.span=e,this.key=t,this.keyIsVar=n,this.name=o,this.expression=r}return TemplateBinding}(),O=function(){function RecursiveAstVisitor(){}return RecursiveAstVisitor.prototype.visitBinary=function(e,t){return e.left.visit(this),e.right.visit(this),null},RecursiveAstVisitor.prototype.visitChain=function(e,t){return this.visitAll(e.expressions,t)},RecursiveAstVisitor.prototype.visitConditional=function(e,t){return e.condition.visit(this),e.trueExp.visit(this),e.falseExp.visit(this),null},RecursiveAstVisitor.prototype.visitPipe=function(e,t){return e.exp.visit(this),this.visitAll(e.args,t),null},RecursiveAstVisitor.prototype.visitFunctionCall=function(e,t){return e.target.visit(this),this.visitAll(e.args,t),null},RecursiveAstVisitor.prototype.visitImplicitReceiver=function(e,t){return null},RecursiveAstVisitor.prototype.visitInterpolation=function(e,t){return this.visitAll(e.expressions,t)},RecursiveAstVisitor.prototype.visitKeyedRead=function(e,t){return e.obj.visit(this),e.key.visit(this),null},RecursiveAstVisitor.prototype.visitKeyedWrite=function(e,t){return e.obj.visit(this),e.key.visit(this),e.value.visit(this),null},RecursiveAstVisitor.prototype.visitLiteralArray=function(e,t){return this.visitAll(e.expressions,t)},RecursiveAstVisitor.prototype.visitLiteralMap=function(e,t){return this.visitAll(e.values,t)},RecursiveAstVisitor.prototype.visitLiteralPrimitive=function(e,t){return null},RecursiveAstVisitor.prototype.visitMethodCall=function(e,t){return e.receiver.visit(this),this.visitAll(e.args,t)},RecursiveAstVisitor.prototype.visitPrefixNot=function(e,t){return e.expression.visit(this),null},RecursiveAstVisitor.prototype.visitPropertyRead=function(e,t){return e.receiver.visit(this),null},RecursiveAstVisitor.prototype.visitPropertyWrite=function(e,t){return e.receiver.visit(this),e.value.visit(this),null},RecursiveAstVisitor.prototype.visitSafePropertyRead=function(e,t){return e.receiver.visit(this),null},RecursiveAstVisitor.prototype.visitSafeMethodCall=function(e,t){return e.receiver.visit(this),this.visitAll(e.args,t)},RecursiveAstVisitor.prototype.visitAll=function(e,t){var n=this;return e.forEach(function(e){return e.visit(n,t)}),null},RecursiveAstVisitor.prototype.visitQuote=function(e,t){return null},RecursiveAstVisitor}();(function(){function AstTransformer(){}return AstTransformer.prototype.visitImplicitReceiver=function(e,t){return e},AstTransformer.prototype.visitInterpolation=function(e,t){return new T(e.span,e.strings,this.visitAll(e.expressions))},AstTransformer.prototype.visitLiteralPrimitive=function(e,t){return new v(e.span,e.value)},AstTransformer.prototype.visitPropertyRead=function(e,t){return new g(e.span,e.receiver.visit(this),e.name)},AstTransformer.prototype.visitPropertyWrite=function(e,t){return new f(e.span,e.receiver.visit(this),e.name,e.value)},AstTransformer.prototype.visitSafePropertyRead=function(e,t){return new h(e.span,e.receiver.visit(this),e.name)},AstTransformer.prototype.visitMethodCall=function(e,t){return new M(e.span,e.receiver.visit(this),e.name,this.visitAll(e.args))},AstTransformer.prototype.visitSafeMethodCall=function(e,t){return new C(e.span,e.receiver.visit(this),e.name,this.visitAll(e.args))},AstTransformer.prototype.visitFunctionCall=function(e,t){return new k(e.span,e.target.visit(this),this.visitAll(e.args))},AstTransformer.prototype.visitLiteralArray=function(e,t){return new _(e.span,this.visitAll(e.expressions))},AstTransformer.prototype.visitLiteralMap=function(e,t){return new E(e.span,e.keys,this.visitAll(e.values))},AstTransformer.prototype.visitBinary=function(e,t){return new S(e.span,e.operation,e.left.visit(this),e.right.visit(this))},AstTransformer.prototype.visitPrefixNot=function(e,t){return new A(e.span,e.expression.visit(this))},AstTransformer.prototype.visitConditional=function(e,t){return new p(e.span,e.condition.visit(this),e.trueExp.visit(this),e.falseExp.visit(this))},AstTransformer.prototype.visitPipe=function(e,t){return new b(e.span,e.exp.visit(this),e.name,this.visitAll(e.args))},AstTransformer.prototype.visitKeyedRead=function(e,t){return new m(e.span,e.obj.visit(this),e.key.visit(this))},AstTransformer.prototype.visitKeyedWrite=function(e,t){return new y(e.span,e.obj.visit(this),e.key.visit(this),e.value.visit(this))},AstTransformer.prototype.visitAll=function(e){for(var t=new Array(e.length),n=0;n<e.length;++n)t[n]=e[n].visit(this);return t},AstTransformer.prototype.visitChain=function(e,t){return new d(e.span,this.visitAll(e.expressions))},AstTransformer.prototype.visitQuote=function(e,t){return new u(e.span,e.prefix,e.uninterpretedExpression,e.location)},AstTransformer})()},function(e,t,n){"use strict";function digest(e){return n.i(o.b)(e)}var o=n(354),r=n(170),i=n(359);n.d(t,"c",function(){return p}),t.a=digest,n.d(t,"b",function(){return h});var a=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},s="messagebundle",u="msg",l="ph",c="ex",d='<!ELEMENT messagebundle (msg)*>\n<!ATTLIST messagebundle class CDATA #IMPLIED>\n\n<!ELEMENT msg (#PCDATA|ph|source)*>\n<!ATTLIST msg id CDATA #IMPLIED>\n<!ATTLIST msg seq CDATA #IMPLIED>\n<!ATTLIST msg name CDATA #IMPLIED>\n<!ATTLIST msg desc CDATA #IMPLIED>\n<!ATTLIST msg meaning CDATA #IMPLIED>\n<!ATTLIST msg obsolete (obsolete) #IMPLIED>\n<!ATTLIST msg xml:space (default|preserve) "default">\n<!ATTLIST msg is_hidden CDATA #IMPLIED>\n\n<!ELEMENT source (#PCDATA)>\n\n<!ELEMENT ph (#PCDATA|ex)*>\n<!ATTLIST ph name CDATA #REQUIRED>\n\n<!ELEMENT ex (#PCDATA)>',p=function(e){function Xmb(){e.apply(this,arguments)}return a(Xmb,e),Xmb.prototype.write=function(e){var t=this,n=new f,o=new g,r={},a=new i.a(s);return e.forEach(function(e){var n=t.digest(e);if(!r[n]){r[n]=!0;var s=t.createNameMapper(e),l={id:n};e.description&&(l.desc=e.description),e.meaning&&(l.meaning=e.meaning),a.children.push(new i.b(2),new i.a(u,l,o.serialize(e.nodes,{mapper:s})))}}),a.children.push(new i.b),i.d([new i.e({version:"1.0",encoding:"UTF-8"}),new i.b,new i.f(s,d),new i.b,n.addDefaultExamples(a),new i.b])},Xmb.prototype.load=function(e,t){throw new Error("Unsupported")},Xmb.prototype.digest=function(e){return digest(e)},Xmb.prototype.createNameMapper=function(e){return new h(e)},Xmb}(r.a),g=function(){function _Visitor(){}return _Visitor.prototype.visitText=function(e,t){return[new i.c(e.value)]},_Visitor.prototype.visitContainer=function(e,t){var n=this,o=[];return e.children.forEach(function(e){return o.push.apply(o,e.visit(n,t))}),o},_Visitor.prototype.visitIcu=function(e,t){var n=this,o=[new i.c("{"+e.expressionPlaceholder+", "+e.type+", ")];return Object.keys(e.cases).forEach(function(r){o.push.apply(o,[new i.c(r+" {")].concat(e.cases[r].visit(n,t),[new i.c("} ")]))}),o.push(new i.c("}")),o},_Visitor.prototype.visitTagPlaceholder=function(e,t){var n=new i.a(c,{},[new i.c("<"+e.tag+">")]),o=t.mapper.toPublicName(e.startName),r=new i.a(l,{name:o},[n]);if(e.isVoid)return[r];var a=new i.a(c,{},[new i.c("</"+e.tag+">")]);o=t.mapper.toPublicName(e.closeName);var s=new i.a(l,{name:o},[a]);return[r].concat(this.serialize(e.children,t),[s])},_Visitor.prototype.visitPlaceholder=function(e,t){var n=t.mapper.toPublicName(e.name);return[new i.a(l,{name:n})]},_Visitor.prototype.visitIcuPlaceholder=function(e,t){var n=t.mapper.toPublicName(e.name);return[new i.a(l,{name:n})]},_Visitor.prototype.serialize=function(e,t){var n=this;return(o=[]).concat.apply(o,e.map(function(e){return e.visit(n,t)}));var o},_Visitor}(),f=function(){function ExampleVisitor(){}return ExampleVisitor.prototype.addDefaultExamples=function(e){return e.visit(this),e},ExampleVisitor.prototype.visitTag=function(e){var t=this;if(e.name===l){if(!e.children||0==e.children.length){var n=new i.c(e.attrs.name||"...");e.children=[new i.a(c,{},[n])]}}else e.children&&e.children.forEach(function(e){return e.visit(t)})},ExampleVisitor.prototype.visitText=function(e){},ExampleVisitor.prototype.visitDeclaration=function(e){},ExampleVisitor.prototype.visitDoctype=function(e){},ExampleVisitor}(),h=function(){function XmbPlaceholderMapper(e){var t=this;this.internalToXmb={},this.xmbToNextId={},this.xmbToInternal={},e.nodes.forEach(function(e){return e.visit(t)})}return XmbPlaceholderMapper.prototype.toPublicName=function(e){return this.internalToXmb.hasOwnProperty(e)?this.internalToXmb[e]:null},XmbPlaceholderMapper.prototype.toInternalName=function(e){return this.xmbToInternal.hasOwnProperty(e)?this.xmbToInternal[e]:null},XmbPlaceholderMapper.prototype.visitText=function(e,t){return null},XmbPlaceholderMapper.prototype.visitContainer=function(e,t){var n=this;e.children.forEach(function(e){return e.visit(n)})},XmbPlaceholderMapper.prototype.visitIcu=function(e,t){var n=this;Object.keys(e.cases).forEach(function(t){e.cases[t].visit(n)})},XmbPlaceholderMapper.prototype.visitTagPlaceholder=function(e,t){var n=this;this.addPlaceholder(e.startName),e.children.forEach(function(e){return e.visit(n)}),this.addPlaceholder(e.closeName)},XmbPlaceholderMapper.prototype.visitPlaceholder=function(e,t){this.addPlaceholder(e.name)},XmbPlaceholderMapper.prototype.visitIcuPlaceholder=function(e,t){this.addPlaceholder(e.name)},XmbPlaceholderMapper.prototype.addPlaceholder=function(e){if(e&&!this.internalToXmb.hasOwnProperty(e)){var t=e.toUpperCase().replace(/[^A-Z0-9_]/g,"_");if(this.xmbToInternal.hasOwnProperty(t)){var n=this.xmbToNextId[t];this.xmbToNextId[t]=n+1,t=t+"_"+n}else this.xmbToNextId[t]=1;this.internalToXmb[e]=t,this.xmbToInternal[t]=e}},XmbPlaceholderMapper}()},function(e,t,n){"use strict";function getHtmlTagDefinition(e){return i[e.toLowerCase()]||a}var o=n(87);t.a=getHtmlTagDefinition;var r=function(){function HtmlTagDefinition(e){var t=this,n=void 0===e?{}:e,r=n.closedByChildren,i=n.requiredParents,a=n.implicitNamespacePrefix,s=n.contentType,u=void 0===s?o.a.PARSABLE_DATA:s,l=n.closedByParent,c=void 0!==l&&l,d=n.isVoid,p=void 0!==d&&d,g=n.ignoreFirstLf,f=void 0!==g&&g;this.closedByChildren={},this.closedByParent=!1,this.canSelfClose=!1,r&&r.length>0&&r.forEach(function(e){return t.closedByChildren[e]=!0}),this.isVoid=p,this.closedByParent=c||p,i&&i.length>0&&(this.requiredParents={},this.parentToAdd=i[0],i.forEach(function(e){return t.requiredParents[e]=!0})),this.implicitNamespacePrefix=a,this.contentType=u,this.ignoreFirstLf=f}return HtmlTagDefinition.prototype.requireExtraParent=function(e){if(!this.requiredParents)return!1;if(!e)return!0;var t=e.toLowerCase();return 1!=this.requiredParents[t]&&"template"!=t},HtmlTagDefinition.prototype.isClosedByChild=function(e){return this.isVoid||e.toLowerCase()in this.closedByChildren},HtmlTagDefinition}(),i={base:new r({isVoid:!0}),meta:new r({isVoid:!0}),area:new r({isVoid:!0}),embed:new r({isVoid:!0}),link:new r({isVoid:!0}),img:new r({isVoid:!0}),input:new r({isVoid:!0}),param:new r({isVoid:!0}),hr:new r({isVoid:!0}),br:new r({isVoid:!0}),source:new r({isVoid:!0}),track:new r({isVoid:!0}),wbr:new r({isVoid:!0}),p:new r({closedByChildren:["address","article","aside","blockquote","div","dl","fieldset","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","hr","main","nav","ol","p","pre","section","table","ul"],closedByParent:!0}),thead:new r({closedByChildren:["tbody","tfoot"]}),tbody:new r({closedByChildren:["tbody","tfoot"],closedByParent:!0}),tfoot:new r({closedByChildren:["tbody"],closedByParent:!0}),tr:new r({closedByChildren:["tr"],requiredParents:["tbody","tfoot","thead"],closedByParent:!0}),td:new r({closedByChildren:["td","th"],closedByParent:!0}),th:new r({closedByChildren:["td","th"],closedByParent:!0}),col:new r({requiredParents:["colgroup"],isVoid:!0}),svg:new r({implicitNamespacePrefix:"svg"}),math:new r({implicitNamespacePrefix:"math"}),li:new r({closedByChildren:["li"],closedByParent:!0}),dt:new r({closedByChildren:["dt","dd"]}),dd:new r({closedByChildren:["dt","dd"],closedByParent:!0}),rb:new r({closedByChildren:["rb","rt","rtc","rp"],closedByParent:!0}),rt:new r({closedByChildren:["rb","rt","rtc","rp"],closedByParent:!0}),rtc:new r({closedByChildren:["rb","rtc","rp"],closedByParent:!0}),rp:new r({closedByChildren:["rb","rt","rtc","rp"],closedByParent:!0}),optgroup:new r({closedByChildren:["optgroup"],closedByParent:!0}),option:new r({closedByChildren:["option","optgroup"],closedByParent:!0}),pre:new r({ignoreFirstLf:!0}),listing:new r({ignoreFirstLf:!0}),style:new r({contentType:o.a.RAW_TEXT}),script:new r({contentType:o.a.RAW_TEXT}),title:new r({contentType:o.a.ESCAPABLE_RAW_TEXT}),textarea:new r({contentType:o.a.ESCAPABLE_RAW_TEXT,ignoreFirstLf:!0})},a=new r},function(e,t,n){"use strict";function escapeIdentifier(e,t,r){if(void 0===r&&(r=!0),n.i(o.g)(e))return null;var s=e.replace(i,function(){for(var e=[],n=0;n<arguments.length;n++)e[n-0]=arguments[n];return"$"==e[0]?t?"\\$":"$":"\n"==e[0]?"\\n":"\r"==e[0]?"\\r":"\\"+e[0]}),u=r||!a.test(s);return u?"'"+s+"'":s}function _createIndent(e){for(var t="",n=0;n<e;n++)t+=" ";return t}var o=n(7),r=n(10);n.d(t,"b",function(){return s}),n.d(t,"c",function(){return u}),n.d(t,"a",function(){return c}),n.d(t,"d",function(){return d});var i=/'|\\|\n|\r|\$/g,a=/^[$A-Z_][0-9A-Z_$]*$/i,s=r.g("error"),u=r.g("stack"),l=(function(){function OutputEmitter(){}return OutputEmitter.prototype.emitStatements=function(e,t,n){},OutputEmitter}(),function(){function _EmittedLine(e){this.indent=e,this.parts=[]}return _EmittedLine}()),c=function(){function EmitterVisitorContext(e,t){this._exportedVars=e,this._indent=t,this._classes=[],this._lines=[new l(t)]}return EmitterVisitorContext.createRoot=function(e){return new EmitterVisitorContext(e,0)},Object.defineProperty(EmitterVisitorContext.prototype,"_currentLine",{get:function(){return this._lines[this._lines.length-1]},enumerable:!0,configurable:!0}),EmitterVisitorContext.prototype.isExportedVar=function(e){return this._exportedVars.indexOf(e)!==-1},EmitterVisitorContext.prototype.println=function(e){void 0===e&&(e=""),this.print(e,!0)},EmitterVisitorContext.prototype.lineIsEmpty=function(){return 0===this._currentLine.parts.length},EmitterVisitorContext.prototype.print=function(e,t){void 0===t&&(t=!1),e.length>0&&this._currentLine.parts.push(e),t&&this._lines.push(new l(this._indent))},EmitterVisitorContext.prototype.removeEmptyLastLine=function(){this.lineIsEmpty()&&this._lines.pop()},EmitterVisitorContext.prototype.incIndent=function(){this._indent++,this._currentLine.indent=this._indent},EmitterVisitorContext.prototype.decIndent=function(){this._indent--,this._currentLine.indent=this._indent},EmitterVisitorContext.prototype.pushClass=function(e){this._classes.push(e)},EmitterVisitorContext.prototype.popClass=function(){return this._classes.pop()},Object.defineProperty(EmitterVisitorContext.prototype,"currentClass",{get:function(){return this._classes.length>0?this._classes[this._classes.length-1]:null},enumerable:!0,configurable:!0}),EmitterVisitorContext.prototype.toSource=function(){var e=this._lines;return 0===e[e.length-1].parts.length&&(e=e.slice(0,e.length-1)),e.map(function(e){return e.parts.length>0?_createIndent(e.indent)+e.parts.join(""):""}).join("\n")},EmitterVisitorContext}(),d=function(){function AbstractEmitterVisitor(e){this._escapeDollarInStrings=e}return AbstractEmitterVisitor.prototype.visitExpressionStmt=function(e,t){return e.expr.visitExpression(this,t),t.println(";"),null},AbstractEmitterVisitor.prototype.visitReturnStmt=function(e,t){return t.print("return "),e.value.visitExpression(this,t),t.println(";"),null},AbstractEmitterVisitor.prototype.visitCastExpr=function(e,t){},AbstractEmitterVisitor.prototype.visitDeclareClassStmt=function(e,t){},AbstractEmitterVisitor.prototype.visitIfStmt=function(e,t){t.print("if ("),e.condition.visitExpression(this,t),t.print(") {");var r=n.i(o.f)(e.falseCase)&&e.falseCase.length>0;return e.trueCase.length<=1&&!r?(t.print(" "),this.visitAllStatements(e.trueCase,t),t.removeEmptyLastLine(),t.print(" ")):(t.println(),t.incIndent(),this.visitAllStatements(e.trueCase,t),t.decIndent(),r&&(t.println("} else {"),t.incIndent(),this.visitAllStatements(e.falseCase,t),t.decIndent())),t.println("}"),null},AbstractEmitterVisitor.prototype.visitTryCatchStmt=function(e,t){},AbstractEmitterVisitor.prototype.visitThrowStmt=function(e,t){return t.print("throw "),e.error.visitExpression(this,t),t.println(";"),null},AbstractEmitterVisitor.prototype.visitCommentStmt=function(e,t){var n=e.comment.split("\n");return n.forEach(function(e){t.println("// "+e)}),null},AbstractEmitterVisitor.prototype.visitDeclareVarStmt=function(e,t){},AbstractEmitterVisitor.prototype.visitWriteVarExpr=function(e,t){var n=t.lineIsEmpty();return n||t.print("("),t.print(e.name+" = "),e.value.visitExpression(this,t),n||t.print(")"),
null},AbstractEmitterVisitor.prototype.visitWriteKeyExpr=function(e,t){var n=t.lineIsEmpty();return n||t.print("("),e.receiver.visitExpression(this,t),t.print("["),e.index.visitExpression(this,t),t.print("] = "),e.value.visitExpression(this,t),n||t.print(")"),null},AbstractEmitterVisitor.prototype.visitWritePropExpr=function(e,t){var n=t.lineIsEmpty();return n||t.print("("),e.receiver.visitExpression(this,t),t.print("."+e.name+" = "),e.value.visitExpression(this,t),n||t.print(")"),null},AbstractEmitterVisitor.prototype.visitInvokeMethodExpr=function(e,t){e.receiver.visitExpression(this,t);var r=e.name;return n.i(o.f)(e.builtin)&&(r=this.getBuiltinMethodName(e.builtin),n.i(o.g)(r))?null:(t.print("."+r+"("),this.visitAllExpressions(e.args,t,","),t.print(")"),null)},AbstractEmitterVisitor.prototype.getBuiltinMethodName=function(e){},AbstractEmitterVisitor.prototype.visitInvokeFunctionExpr=function(e,t){return e.fn.visitExpression(this,t),t.print("("),this.visitAllExpressions(e.args,t,","),t.print(")"),null},AbstractEmitterVisitor.prototype.visitReadVarExpr=function(e,t){var i=e.name;if(n.i(o.f)(e.builtin))switch(e.builtin){case r.L.Super:i="super";break;case r.L.This:i="this";break;case r.L.CatchError:i=s.name;break;case r.L.CatchStack:i=u.name;break;default:throw new Error("Unknown builtin variable "+e.builtin)}return t.print(i),null},AbstractEmitterVisitor.prototype.visitInstantiateExpr=function(e,t){return t.print("new "),e.classExpr.visitExpression(this,t),t.print("("),this.visitAllExpressions(e.args,t,","),t.print(")"),null},AbstractEmitterVisitor.prototype.visitLiteralExpr=function(e,t){var n=e.value;return"string"==typeof n?t.print(escapeIdentifier(n,this._escapeDollarInStrings)):t.print(""+n),null},AbstractEmitterVisitor.prototype.visitExternalExpr=function(e,t){},AbstractEmitterVisitor.prototype.visitConditionalExpr=function(e,t){return t.print("("),e.condition.visitExpression(this,t),t.print("? "),e.trueCase.visitExpression(this,t),t.print(": "),e.falseCase.visitExpression(this,t),t.print(")"),null},AbstractEmitterVisitor.prototype.visitNotExpr=function(e,t){return t.print("!"),e.condition.visitExpression(this,t),null},AbstractEmitterVisitor.prototype.visitFunctionExpr=function(e,t){},AbstractEmitterVisitor.prototype.visitDeclareFunctionStmt=function(e,t){},AbstractEmitterVisitor.prototype.visitBinaryOperatorExpr=function(e,t){var n;switch(e.operator){case r.l.Equals:n="==";break;case r.l.Identical:n="===";break;case r.l.NotEquals:n="!=";break;case r.l.NotIdentical:n="!==";break;case r.l.And:n="&&";break;case r.l.Or:n="||";break;case r.l.Plus:n="+";break;case r.l.Minus:n="-";break;case r.l.Divide:n="/";break;case r.l.Multiply:n="*";break;case r.l.Modulo:n="%";break;case r.l.Lower:n="<";break;case r.l.LowerEquals:n="<=";break;case r.l.Bigger:n=">";break;case r.l.BiggerEquals:n=">=";break;default:throw new Error("Unknown operator "+e.operator)}return t.print("("),e.lhs.visitExpression(this,t),t.print(" "+n+" "),e.rhs.visitExpression(this,t),t.print(")"),null},AbstractEmitterVisitor.prototype.visitReadPropExpr=function(e,t){return e.receiver.visitExpression(this,t),t.print("."),t.print(e.name),null},AbstractEmitterVisitor.prototype.visitReadKeyExpr=function(e,t){return e.receiver.visitExpression(this,t),t.print("["),e.index.visitExpression(this,t),t.print("]"),null},AbstractEmitterVisitor.prototype.visitLiteralArrayExpr=function(e,t){var n=e.entries.length>1;return t.print("[",n),t.incIndent(),this.visitAllExpressions(e.entries,t,",",n),t.decIndent(),t.print("]",n),null},AbstractEmitterVisitor.prototype.visitLiteralMapExpr=function(e,t){var n=this,o=e.entries.length>1;return t.print("{",o),t.incIndent(),this.visitAllObjects(function(e){t.print(escapeIdentifier(e.key,n._escapeDollarInStrings,e.quoted)+": "),e.value.visitExpression(n,t)},e.entries,t,",",o),t.decIndent(),t.print("}",o),null},AbstractEmitterVisitor.prototype.visitAllExpressions=function(e,t,n,o){var r=this;void 0===o&&(o=!1),this.visitAllObjects(function(e){return e.visitExpression(r,t)},e,t,n,o)},AbstractEmitterVisitor.prototype.visitAllObjects=function(e,t,n,o,r){void 0===r&&(r=!1);for(var i=0;i<t.length;i++)i>0&&n.print(o,r),e(t[i]);r&&n.println()},AbstractEmitterVisitor.prototype.visitAllStatements=function(e,t){var n=this;e.forEach(function(e){return e.visitStatement(n,t)})},AbstractEmitterVisitor}()},function(e,t,n){"use strict";function createClassStmt(e){var t=e.parentArgs||[],n=e.parent?[o.y.callFn(t).toStmt()]:[],r=concatClassBuilderParts(Array.isArray(e.builders)?e.builders:[e.builders]),i=new o.z(null,e.ctorParams||[],n.concat(r.ctorStmts));return new o.A(e.name,e.parent,r.fields,r.getters,i,r.methods,e.modifiers||[])}function concatClassBuilderParts(e){return{fields:(t=[]).concat.apply(t,e.map(function(e){return e.fields||[]})),methods:(n=[]).concat.apply(n,e.map(function(e){return e.methods||[]})),getters:(o=[]).concat.apply(o,e.map(function(e){return e.getters||[]})),ctorStmts:(r=[]).concat.apply(r,e.map(function(e){return e.ctorStmts||[]}))};var t,n,o,r}var o=n(10);t.a=createClassStmt},function(e,t,n){"use strict";function debugOutputAstAsTypeScript(e){var t=new c(u),n=i.a.createRoot([]),o=Array.isArray(e)?e:[e];return o.forEach(function(e){if(e instanceof a.M)e.visitStatement(t,n);else if(e instanceof a.I)e.visitExpression(t,n);else{if(!(e instanceof a.N))throw new Error("Don't know how to print debug info for "+e);e.visitType(t,n)}}),n.toSource()}var o=n(14),r=n(7),i=n(247),a=n(10);t.b=debugOutputAstAsTypeScript,n.d(t,"a",function(){return l});var s=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},u="/debug/lib",l=function(){function TypeScriptEmitter(e){this._importGenerator=e}return TypeScriptEmitter.prototype.emitStatements=function(e,t,n){var o=this,r=new c(e),a=i.a.createRoot(n);r.visitAllStatements(t,a);var s=[];return r.importsWithPrefixes.forEach(function(t,n){s.push("imp"+("ort * as "+t+" from '"+o._importGenerator.fileNameToModuleName(n,e)+"';"))}),s.push(a.toSource()),s.join("\n")},TypeScriptEmitter}(),c=function(e){function _TsEmitterVisitor(t){e.call(this,!1),this._moduleUrl=t,this.importsWithPrefixes=new Map}return s(_TsEmitterVisitor,e),_TsEmitterVisitor.prototype.visitType=function(e,t,o){void 0===o&&(o="any"),n.i(r.f)(e)?e.visitType(this,t):t.print(o)},_TsEmitterVisitor.prototype.visitLiteralExpr=function(t,o){var i=t.value;return n.i(r.g)(i)&&t.type!=a.O?(o.print("("+i+" as any)"),null):e.prototype.visitLiteralExpr.call(this,t,o)},_TsEmitterVisitor.prototype.visitLiteralArrayExpr=function(t,n){0===t.entries.length&&n.print("(");var o=e.prototype.visitLiteralArrayExpr.call(this,t,n);return 0===t.entries.length&&n.print(" as any[])"),o},_TsEmitterVisitor.prototype.visitExternalExpr=function(e,t){return this._visitIdentifier(e.value,e.typeParams,t),null},_TsEmitterVisitor.prototype.visitDeclareVarStmt=function(e,t){return t.isExportedVar(e.name)&&t.print("export "),e.hasModifier(a.b.Final)?t.print("const"):t.print("var"),t.print(" "+e.name+":"),this.visitType(e.type,t),t.print(" = "),e.value.visitExpression(this,t),t.println(";"),null},_TsEmitterVisitor.prototype.visitCastExpr=function(e,t){return t.print("(<"),e.type.visitType(this,t),t.print(">"),e.value.visitExpression(this,t),t.print(")"),null},_TsEmitterVisitor.prototype.visitDeclareClassStmt=function(e,t){var o=this;return t.pushClass(e),t.isExportedVar(e.name)&&t.print("export "),t.print("class "+e.name),n.i(r.f)(e.parent)&&(t.print(" extends "),e.parent.visitExpression(this,t)),t.println(" {"),t.incIndent(),e.fields.forEach(function(e){return o._visitClassField(e,t)}),n.i(r.f)(e.constructorMethod)&&this._visitClassConstructor(e,t),e.getters.forEach(function(e){return o._visitClassGetter(e,t)}),e.methods.forEach(function(e){return o._visitClassMethod(e,t)}),t.decIndent(),t.println("}"),t.popClass(),null},_TsEmitterVisitor.prototype._visitClassField=function(e,t){e.hasModifier(a.b.Private)&&t.print("/*private*/ "),t.print(e.name),t.print(":"),this.visitType(e.type,t),t.println(";")},_TsEmitterVisitor.prototype._visitClassGetter=function(e,t){e.hasModifier(a.b.Private)&&t.print("private "),t.print("get "+e.name+"()"),t.print(":"),this.visitType(e.type,t),t.println(" {"),t.incIndent(),this.visitAllStatements(e.body,t),t.decIndent(),t.println("}")},_TsEmitterVisitor.prototype._visitClassConstructor=function(e,t){t.print("constructor("),this._visitParams(e.constructorMethod.params,t),t.println(") {"),t.incIndent(),this.visitAllStatements(e.constructorMethod.body,t),t.decIndent(),t.println("}")},_TsEmitterVisitor.prototype._visitClassMethod=function(e,t){e.hasModifier(a.b.Private)&&t.print("private "),t.print(e.name+"("),this._visitParams(e.params,t),t.print("):"),this.visitType(e.type,t,"void"),t.println(" {"),t.incIndent(),this.visitAllStatements(e.body,t),t.decIndent(),t.println("}")},_TsEmitterVisitor.prototype.visitFunctionExpr=function(e,t){return t.print("("),this._visitParams(e.params,t),t.print("):"),this.visitType(e.type,t,"void"),t.println(" => {"),t.incIndent(),this.visitAllStatements(e.statements,t),t.decIndent(),t.print("}"),null},_TsEmitterVisitor.prototype.visitDeclareFunctionStmt=function(e,t){return t.isExportedVar(e.name)&&t.print("export "),t.print("function "+e.name+"("),this._visitParams(e.params,t),t.print("):"),this.visitType(e.type,t,"void"),t.println(" {"),t.incIndent(),this.visitAllStatements(e.statements,t),t.decIndent(),t.println("}"),null},_TsEmitterVisitor.prototype.visitTryCatchStmt=function(e,t){t.println("try {"),t.incIndent(),this.visitAllStatements(e.bodyStmts,t),t.decIndent(),t.println("} catch ("+i.b.name+") {"),t.incIndent();var n=[i.c.set(i.b.prop("stack")).toDeclStmt(null,[a.b.Final])].concat(e.catchStmts);return this.visitAllStatements(n,t),t.decIndent(),t.println("}"),null},_TsEmitterVisitor.prototype.visitBuiltintType=function(e,t){var n;switch(e.name){case a.P.Bool:n="boolean";break;case a.P.Dynamic:n="any";break;case a.P.Function:n="Function";break;case a.P.Number:n="number";break;case a.P.Int:n="number";break;case a.P.String:n="string";break;default:throw new Error("Unsupported builtin type "+e.name)}return t.print(n),null},_TsEmitterVisitor.prototype.visitExpressionType=function(e,t){var o=this;return e.value.visitExpression(this,t),n.i(r.f)(e.typeParams)&&e.typeParams.length>0&&(t.print("<"),this.visitAllObjects(function(e){return e.visitType(o,t)},e.typeParams,t,","),t.print(">")),null},_TsEmitterVisitor.prototype.visitArrayType=function(e,t){return this.visitType(e.of,t),t.print("[]"),null},_TsEmitterVisitor.prototype.visitMapType=function(e,t){return t.print("{[key: string]:"),this.visitType(e.valueType,t),t.print("}"),null},_TsEmitterVisitor.prototype.getBuiltinMethodName=function(e){var t;switch(e){case a.x.ConcatArray:t="concat";break;case a.x.SubscribeObservable:t="subscribe";break;case a.x.Bind:t="bind";break;default:throw new Error("Unknown builtin method: "+e)}return t},_TsEmitterVisitor.prototype._visitParams=function(e,t){var n=this;this.visitAllObjects(function(e){t.print(e.name),t.print(":"),n.visitType(e.type,t)},e,t,",")},_TsEmitterVisitor.prototype._visitIdentifier=function(e,t,i){var a=this,s=n.i(o.c)(e),u=n.i(o.m)(e);if(n.i(r.g)(s))throw new Error("Internal error: unknown identifier "+e);if(n.i(r.f)(u)&&u!=this._moduleUrl){var l=this.importsWithPrefixes.get(u);n.i(r.g)(l)&&(l="import"+this.importsWithPrefixes.size,this.importsWithPrefixes.set(u,l)),i.print(l+".")}e.reference&&e.reference.members&&e.reference.members.length?(i.print(e.reference.name),i.print("."),i.print(e.reference.members.join("."))):i.print(s),n.i(r.f)(t)&&t.length>0&&(i.print("<"),this.visitAllObjects(function(e){return e.visitType(a,i)},t,i,","),i.print(">"))},_TsEmitterVisitor}(i.d)},function(e,t,n){"use strict";n.d(t,"a",function(){return o});var o=function(){function ResourceLoader(){}return ResourceLoader.prototype.get=function(e){return null},ResourceLoader}()},function(e,t,n){"use strict";var o=n(20);n.d(t,"a",function(){return a});var r=this&&this.__decorate||function(e,t,n,o){var r,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,n):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,o);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(i<3?r(a):i>3?r(t,n,a):r(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=function(){function SummaryResolver(){}return SummaryResolver.prototype.resolveSummary=function(e){return null},SummaryResolver.prototype.getSymbolsOf=function(e){return[]},SummaryResolver=r([n.i(o.a)(),i("design:paramtypes",[])],SummaryResolver)}()},function(e,t,n){"use strict";var o=n(10);n.d(t,"a",function(){return a});var r=function(){function _DebugState(e,t){this.nodeIndex=e,this.sourceAst=t}return _DebugState}(),i=new r(null,null),a=function(){function CompileMethod(e){this._view=e,this._newState=i,this._currState=i,this._bodyStatements=[],this._debugEnabled=this._view.genConfig.genDebugInfo}return CompileMethod.prototype._updateDebugContextIfNeeded=function(){if(this._newState.nodeIndex!==this._currState.nodeIndex||this._newState.sourceAst!==this._currState.sourceAst){var e=this._updateDebugContext(this._newState);e&&this._bodyStatements.push(e.toStmt())}},CompileMethod.prototype._updateDebugContext=function(e){if(this._currState=this._newState=e,this._debugEnabled){var t=e.sourceAst?e.sourceAst.sourceSpan.start:null;return o.c.callMethod("debug",[o.f(e.nodeIndex),t?o.f(t.line):o.k,t?o.f(t.col):o.k])}return null},CompileMethod.prototype.resetDebugInfoExpr=function(e,t){var n=this._updateDebugContext(new r(e,t));return n||o.k},CompileMethod.prototype.resetDebugInfo=function(e,t){this._newState=new r(e,t)},CompileMethod.prototype.push=function(){for(var e=[],t=0;t<arguments.length;t++)e[t-0]=arguments[t];this.addStmts(e)},CompileMethod.prototype.addStmt=function(e){this._updateDebugContextIfNeeded(),this._bodyStatements.push(e)},CompileMethod.prototype.addStmts=function(e){this._updateDebugContextIfNeeded(),(t=this._bodyStatements).push.apply(t,e);var t},CompileMethod.prototype.finish=function(){return this._bodyStatements},CompileMethod.prototype.isEmpty=function(){return 0===this._bodyStatements.length},CompileMethod}()},function(e,t,n){"use strict";n.d(t,"c",function(){return o}),n.d(t,"a",function(){return r}),n.d(t,"b",function(){return i});var o=function(){function ViewClassDependency(e,t,n){this.comp=e,this.name=t,this.placeholder=n}return ViewClassDependency}(),r=function(){function ComponentFactoryDependency(e,t){this.comp=e,this.placeholder=t}return ComponentFactoryDependency}(),i=function(){function DirectiveWrapperDependency(e,t,n){this.dir=e,this.name=t,this.placeholder=n}return DirectiveWrapperDependency}()},function(e,t,n){"use strict";var o=n(8);n.d(t,"b",function(){return r}),n.d(t,"a",function(){return i});var r=function(){function AnimationPlayer(){}return AnimationPlayer.prototype.onDone=function(e){},AnimationPlayer.prototype.onStart=function(e){},AnimationPlayer.prototype.init=function(){},AnimationPlayer.prototype.hasStarted=function(){},AnimationPlayer.prototype.play=function(){},AnimationPlayer.prototype.pause=function(){},AnimationPlayer.prototype.restart=function(){},AnimationPlayer.prototype.finish=function(){},AnimationPlayer.prototype.destroy=function(){},AnimationPlayer.prototype.reset=function(){},AnimationPlayer.prototype.setPosition=function(e){},AnimationPlayer.prototype.getPosition=function(){},Object.defineProperty(AnimationPlayer.prototype,"parentPlayer",{get:function(){throw new Error("NOT IMPLEMENTED: Base Class")},set:function(e){throw new Error("NOT IMPLEMENTED: Base Class")},enumerable:!0,configurable:!0}),AnimationPlayer}(),i=function(){function NoOpAnimationPlayer(){var e=this;this._onDoneFns=[],this._onStartFns=[],this._started=!1,this.parentPlayer=null,n.i(o.l)(function(){return e._onFinish()})}return NoOpAnimationPlayer.prototype._onFinish=function(){this._onDoneFns.forEach(function(e){return e()}),this._onDoneFns=[]},NoOpAnimationPlayer.prototype.onStart=function(e){this._onStartFns.push(e)},NoOpAnimationPlayer.prototype.onDone=function(e){this._onDoneFns.push(e)},NoOpAnimationPlayer.prototype.hasStarted=function(){return this._started},NoOpAnimationPlayer.prototype.init=function(){},NoOpAnimationPlayer.prototype.play=function(){this.hasStarted()||(this._onStartFns.forEach(function(e){return e()}),this._onStartFns=[]),this._started=!0},NoOpAnimationPlayer.prototype.pause=function(){},NoOpAnimationPlayer.prototype.restart=function(){},NoOpAnimationPlayer.prototype.finish=function(){this._onFinish()},NoOpAnimationPlayer.prototype.destroy=function(){},NoOpAnimationPlayer.prototype.reset=function(){},NoOpAnimationPlayer.prototype.setPosition=function(e){},NoOpAnimationPlayer.prototype.getPosition=function(){return 0},NoOpAnimationPlayer}()},function(e,t,n){"use strict";var o=n(270),r=n(41);n.d(t,"b",function(){return i}),n.d(t,"a",function(){return a});var i=new r.a("Application Initializer"),a=function(){function ApplicationInitStatus(e){var t=this;this._done=!1;var r=[];if(e)for(var i=0;i<e.length;i++){var a=e[i]();n.i(o.a)(a)&&r.push(a)}this._donePromise=Promise.all(r).then(function(){t._done=!0}),0===r.length&&(this._done=!0)}return Object.defineProperty(ApplicationInitStatus.prototype,"done",{get:function(){return this._done},enumerable:!0,configurable:!0}),Object.defineProperty(ApplicationInitStatus.prototype,"donePromise",{get:function(){return this._donePromise},enumerable:!0,configurable:!0}),ApplicationInitStatus.decorators=[{type:r.b}],ApplicationInitStatus.ctorParameters=function(){return[{type:Array,decorators:[{type:r.c,args:[i]},{type:r.d}]}]},ApplicationInitStatus}()},function(e,t,n){"use strict";function enableProdMode(){if(_)throw new Error("Cannot enable prod mode after platform setup.");v=!1}function isDevMode(){return _=!0,v}function createPlatform(e){if(y&&!y.destroyed)throw new Error("There can be only one platform. Destroy the previous one to create a new one.");y=e.get(T);var t=e.get(u.a,null);return t&&t.forEach(function(e){return e()}),y}function createPlatformFactory(e,t,n){void 0===n&&(n=[]);var o=new c.a("Platform: "+t);return function(t){return void 0===t&&(t=[]),getPlatform()||(e?e(n.concat(t).concat({provide:o,useValue:!0})):createPlatform(c.f.resolveAndCreate(n.concat(t).concat({provide:o,useValue:!0})))),assertPlatform(o)}}function assertPlatform(e){var t=getPlatform();if(!t)throw new Error("No platform exists!");if(!t.injector.get(e,null))throw new Error("A platform with a different configuration has been created. Please destroy it first.");return t}function destroyPlatform(){y&&!y.destroyed&&y.destroy()}function getPlatform(){return y&&!y.destroyed?y:null}function _callAndReportToErrorHandler(e,t){try{var o=t();return n.i(a.a)(o)?o.catch(function(t){throw e.handleError(t),t}):o}catch(r){throw e.handleError(r),r}}var o=n(385),r=n(132),i=n(8),a=n(270),s=n(255),u=n(176),l=n(258),c=n(41),d=n(133),p=n(264),g=n(181),f=n(185),h=n(268),m=n(186);t.k=enableProdMode,t.f=isDevMode,n.d(t,"g",function(){return E}),t.l=createPlatform,t.c=createPlatformFactory,t.h=assertPlatform,t.i=destroyPlatform,t.j=getPlatform,n.d(t,"b",function(){return T}),n.d(t,"a",function(){return S}),n.d(t,"e",function(){return A}),n.d(t,"d",function(){return M});var y,b=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},v=!0,_=!1,E=function(){function NgProbeToken(e,t){this.name=e,this.token=t}return NgProbeToken}(),T=function(){function PlatformRef(){}return PlatformRef.prototype.bootstrapModuleFactory=function(e){},PlatformRef.prototype.bootstrapModule=function(e,t){},PlatformRef.prototype.onDestroy=function(e){},PlatformRef.prototype.injector=function(){},PlatformRef.prototype.destroy=function(){},PlatformRef.prototype.destroyed=function(){},PlatformRef}(),S=function(e){function PlatformRef_(t){e.call(this),this._injector=t,this._modules=[],this._destroyListeners=[],this._destroyed=!1}return b(PlatformRef_,e),PlatformRef_.prototype.onDestroy=function(e){this._destroyListeners.push(e)},Object.defineProperty(PlatformRef_.prototype,"injector",{get:function(){return this._injector},enumerable:!0,configurable:!0}),Object.defineProperty(PlatformRef_.prototype,"destroyed",{get:function(){return this._destroyed},enumerable:!0,configurable:!0}),PlatformRef_.prototype.destroy=function(){if(this._destroyed)throw new Error("The platform has already been destroyed!");this._modules.slice().forEach(function(e){return e.destroy()}),this._destroyListeners.forEach(function(e){return e()}),this._destroyed=!0},PlatformRef_.prototype.bootstrapModuleFactory=function(e){return this._bootstrapModuleFactoryWithZone(e,null)},PlatformRef_.prototype._bootstrapModuleFactoryWithZone=function(e,t){var n=this;return t||(t=new m.a({enableLongStackTrace:isDevMode()})),t.run(function(){var i=c.f.resolveAndCreate([{provide:m.a,useValue:t}],n.injector),a=e.create(i),u=a.injector.get(o.a,null);if(!u)throw new Error("No ErrorHandler. Is platform module (BrowserModule) included?");return a.onDestroy(function(){return r.d.remove(n._modules,a)}),t.onError.subscribe({next:function(e){u.handleError(e)}}),_callAndReportToErrorHandler(u,function(){var e=a.injector.get(s.a);return e.donePromise.then(function(){return n._moduleDoBootstrap(a),a})})})},PlatformRef_.prototype.bootstrapModule=function(e,t){return void 0===t&&(t=[]),this._bootstrapModuleWithZone(e,t,null)},PlatformRef_.prototype._bootstrapModuleWithZone=function(e,t,n,o){var r=this;void 0===t&&(t=[]);var i=this.injector.get(d.a),a=i.createCompiler(Array.isArray(t)?t:[t]);return o?a.compileModuleAndAllComponentsAsync(e).then(function(e){var t=e.ngModuleFactory,i=e.componentFactories;return o(i),r._bootstrapModuleFactoryWithZone(t,n)}):a.compileModuleAsync(e).then(function(e){return r._bootstrapModuleFactoryWithZone(e,n)})},PlatformRef_.prototype._moduleDoBootstrap=function(e){var t=e.injector.get(A);if(e.bootstrapFactories.length>0)e.bootstrapFactories.forEach(function(e){return t.bootstrap(e)});else{if(!e.instance.ngDoBootstrap)throw new Error("The module "+n.i(i.b)(e.instance.constructor)+' was bootstrapped, but it does not declare "@NgModule.bootstrap" components nor a "ngDoBootstrap" method. Please define one of these.');e.instance.ngDoBootstrap(t)}this._modules.push(e)},PlatformRef_.decorators=[{type:c.b}],PlatformRef_.ctorParameters=function(){return[{type:c.g}]},PlatformRef_}(T),A=function(){function ApplicationRef(){}return ApplicationRef.prototype.bootstrap=function(e){},ApplicationRef.prototype.tick=function(){},ApplicationRef.prototype.componentTypes=function(){},ApplicationRef.prototype.components=function(){},ApplicationRef.prototype.attachView=function(e){},ApplicationRef.prototype.detachView=function(e){},ApplicationRef.prototype.viewCount=function(){},ApplicationRef}(),M=function(e){function ApplicationRef_(t,n,o,r,i,a,s,u){var l=this;e.call(this),this._zone=t,this._console=n,this._injector=o,this._exceptionHandler=r,this._componentFactoryResolver=i,this._initStatus=a,this._testabilityRegistry=s,this._testability=u,this._bootstrapListeners=[],this._rootComponents=[],this._rootComponentTypes=[],this._views=[],this._runningTick=!1,this._enforceNoNewChanges=!1,this._enforceNoNewChanges=isDevMode(),this._zone.onMicrotaskEmpty.subscribe({next:function(){l._zone.run(function(){l.tick()})}})}return b(ApplicationRef_,e),ApplicationRef_.prototype.attachView=function(e){var t=e.internalView;this._views.push(t),t.attachToAppRef(this)},ApplicationRef_.prototype.detachView=function(e){var t=e.internalView;r.d.remove(this._views,t),t.detach()},ApplicationRef_.prototype.bootstrap=function(e){var t=this;if(!this._initStatus.done)throw new Error("Cannot bootstrap as there are still asynchronous initializers running. Bootstrap components in the `ngDoBootstrap` method of the root module.");var n;n=e instanceof p.a?e:this._componentFactoryResolver.resolveComponentFactory(e),this._rootComponentTypes.push(n.componentType);var o=n.create(this._injector,[],n.selector);o.onDestroy(function(){t._unloadComponent(o)});var r=o.injector.get(h.a,null);return r&&o.injector.get(h.b).registerApplication(o.location.nativeElement,r),this._loadComponent(o),isDevMode()&&this._console.log("Angular is running in the development mode. Call enableProdMode() to enable the production mode."),o},ApplicationRef_.prototype._loadComponent=function(e){this.attachView(e.hostView),this.tick(),this._rootComponents.push(e);var t=this._injector.get(u.b,[]).concat(this._bootstrapListeners);t.forEach(function(t){return t(e)})},ApplicationRef_.prototype._unloadComponent=function(e){this.detachView(e.hostView),r.d.remove(this._rootComponents,e)},ApplicationRef_.prototype.tick=function(){if(this._runningTick)throw new Error("ApplicationRef.tick is called recursively");var e=ApplicationRef_._tickScope();try{this._runningTick=!0,this._views.forEach(function(e){return e.ref.detectChanges()}),this._enforceNoNewChanges&&this._views.forEach(function(e){return e.ref.checkNoChanges()})}finally{this._runningTick=!1,n.i(f.a)(e)}},ApplicationRef_.prototype.ngOnDestroy=function(){this._views.slice().forEach(function(e){return e.destroy()})},Object.defineProperty(ApplicationRef_.prototype,"viewCount",{get:function(){return this._views.length},enumerable:!0,configurable:!0}),Object.defineProperty(ApplicationRef_.prototype,"componentTypes",{get:function(){return this._rootComponentTypes},enumerable:!0,configurable:!0}),Object.defineProperty(ApplicationRef_.prototype,"components",{get:function(){return this._rootComponents},enumerable:!0,configurable:!0}),ApplicationRef_._tickScope=n.i(f.b)("ApplicationRef#tick()"),ApplicationRef_.decorators=[{type:c.b}],ApplicationRef_.ctorParameters=function(){return[{type:m.a},{type:l.a},{type:c.g},{type:o.a},{type:g.a},{type:s.a},{type:h.b,decorators:[{type:c.d}]},{type:h.a,decorators:[{type:c.d}]}]},ApplicationRef_}(A)},function(e,t,n){"use strict";function getPreviousIndex(e,t,n){var o=e.previousIndex;if(null===o)return o;var r=0;return n&&o<n.length&&(r=n[o]),o+t+r}var o=n(132),r=n(8);n.d(t,"a",function(){return i}),n.d(t,"c",function(){return s}),n.d(t,"b",function(){return u});var i=function(){function DefaultIterableDifferFactory(){}return DefaultIterableDifferFactory.prototype.supports=function(e){return n.i(o.a)(e)},DefaultIterableDifferFactory.prototype.create=function(e,t){return new s(t)},DefaultIterableDifferFactory}(),a=function(e,t){return t},s=function(){function DefaultIterableDiffer(e){this._trackByFn=e,this._length=null,this._collection=null,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=this._trackByFn||a}return Object.defineProperty(DefaultIterableDiffer.prototype,"collection",{get:function(){return this._collection},enumerable:!0,configurable:!0}),Object.defineProperty(DefaultIterableDiffer.prototype,"length",{get:function(){return this._length},enumerable:!0,configurable:!0}),DefaultIterableDiffer.prototype.forEachItem=function(e){var t;for(t=this._itHead;null!==t;t=t._next)e(t)},DefaultIterableDiffer.prototype.forEachOperation=function(e){for(var t=this._itHead,n=this._removalsHead,o=0,r=null;t||n;){var i=!n||t&&t.currentIndex<getPreviousIndex(n,o,r)?t:n,a=getPreviousIndex(i,o,r),s=i.currentIndex;if(i===n)o--,n=n._nextRemoved;else if(t=t._next,null==i.previousIndex)o++;else{r||(r=[]);var u=a-o,l=s-o;if(u!=l){for(var c=0;c<u;c++){var d=c<r.length?r[c]:r[c]=0,p=d+c;l<=p&&p<u&&(r[c]=d+1)}var g=i.previousIndex;r[g]=l-u}}a!==s&&e(i,a,s)}},DefaultIterableDiffer.prototype.forEachPreviousItem=function(e){var t;for(t=this._previousItHead;null!==t;t=t._nextPrevious)e(t)},DefaultIterableDiffer.prototype.forEachAddedItem=function(e){var t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)},DefaultIterableDiffer.prototype.forEachMovedItem=function(e){var t;for(t=this._movesHead;null!==t;t=t._nextMoved)e(t)},DefaultIterableDiffer.prototype.forEachRemovedItem=function(e){var t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)},DefaultIterableDiffer.prototype.forEachIdentityChange=function(e){var t;for(t=this._identityChangesHead;null!==t;t=t._nextIdentityChange)e(t)},DefaultIterableDiffer.prototype.diff=function(e){if(n.i(r.c)(e)&&(e=[]),!n.i(o.a)(e))throw new Error("Error trying to diff '"+e+"'");return this.check(e)?this:null},DefaultIterableDiffer.prototype.onDestroy=function(){},DefaultIterableDiffer.prototype.check=function(e){var t=this;this._reset();var i,a,s,u=this._itHead,l=!1;if(Array.isArray(e)){var c=e;this._length=e.length;for(var d=0;d<this._length;d++)a=c[d],s=this._trackByFn(d,a),null!==u&&n.i(r.i)(u.trackById,s)?(l&&(u=this._verifyReinsertion(u,a,s,d)),n.i(r.i)(u.item,a)||this._addIdentityChange(u,a)):(u=this._mismatch(u,a,s,d),l=!0),u=u._next}else i=0,n.i(o.b)(e,function(e){s=t._trackByFn(i,e),null!==u&&n.i(r.i)(u.trackById,s)?(l&&(u=t._verifyReinsertion(u,e,s,i)),n.i(r.i)(u.item,e)||t._addIdentityChange(u,e)):(u=t._mismatch(u,e,s,i),l=!0),u=u._next,i++}),this._length=i;return this._truncate(u),this._collection=e,this.isDirty},Object.defineProperty(DefaultIterableDiffer.prototype,"isDirty",{get:function(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead},enumerable:!0,configurable:!0}),DefaultIterableDiffer.prototype._reset=function(){if(this.isDirty){var e=void 0,t=void 0;for(e=this._previousItHead=this._itHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._additionsHead;null!==e;e=e._nextAdded)e.previousIndex=e.currentIndex;for(this._additionsHead=this._additionsTail=null,e=this._movesHead;null!==e;e=t)e.previousIndex=e.currentIndex,t=e._nextMoved;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}},DefaultIterableDiffer.prototype._mismatch=function(e,t,o,i){var a;return null===e?a=this._itTail:(a=e._prev,this._remove(e)),e=null===this._linkedRecords?null:this._linkedRecords.get(o,i),null!==e?(n.i(r.i)(e.item,t)||this._addIdentityChange(e,t),this._moveAfter(e,a,i)):(e=null===this._unlinkedRecords?null:this._unlinkedRecords.get(o),null!==e?(n.i(r.i)(e.item,t)||this._addIdentityChange(e,t),this._reinsertAfter(e,a,i)):e=this._addAfter(new u(t,o),a,i)),e},DefaultIterableDiffer.prototype._verifyReinsertion=function(e,t,n,o){var r=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n);return null!==r?e=this._reinsertAfter(r,e._prev,o):e.currentIndex!=o&&(e.currentIndex=o,this._addToMoves(e,o)),e},DefaultIterableDiffer.prototype._truncate=function(e){for(;null!==e;){var t=e._next;this._addToRemovals(this._unlink(e)),e=t}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)},DefaultIterableDiffer.prototype._reinsertAfter=function(e,t,n){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(e);var o=e._prevRemoved,r=e._nextRemoved;return null===o?this._removalsHead=r:o._nextRemoved=r,null===r?this._removalsTail=o:r._prevRemoved=o,this._insertAfter(e,t,n),this._addToMoves(e,n),e},DefaultIterableDiffer.prototype._moveAfter=function(e,t,n){return this._unlink(e),
this._insertAfter(e,t,n),this._addToMoves(e,n),e},DefaultIterableDiffer.prototype._addAfter=function(e,t,n){return this._insertAfter(e,t,n),null===this._additionsTail?this._additionsTail=this._additionsHead=e:this._additionsTail=this._additionsTail._nextAdded=e,e},DefaultIterableDiffer.prototype._insertAfter=function(e,t,n){var o=null===t?this._itHead:t._next;return e._next=o,e._prev=t,null===o?this._itTail=e:o._prev=e,null===t?this._itHead=e:t._next=e,null===this._linkedRecords&&(this._linkedRecords=new c),this._linkedRecords.put(e),e.currentIndex=n,e},DefaultIterableDiffer.prototype._remove=function(e){return this._addToRemovals(this._unlink(e))},DefaultIterableDiffer.prototype._unlink=function(e){null!==this._linkedRecords&&this._linkedRecords.remove(e);var t=e._prev,n=e._next;return null===t?this._itHead=n:t._next=n,null===n?this._itTail=t:n._prev=t,e},DefaultIterableDiffer.prototype._addToMoves=function(e,t){return e.previousIndex===t?e:(null===this._movesTail?this._movesTail=this._movesHead=e:this._movesTail=this._movesTail._nextMoved=e,e)},DefaultIterableDiffer.prototype._addToRemovals=function(e){return null===this._unlinkedRecords&&(this._unlinkedRecords=new c),this._unlinkedRecords.put(e),e.currentIndex=null,e._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=e,e._prevRemoved=null):(e._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=e),e},DefaultIterableDiffer.prototype._addIdentityChange=function(e,t){return e.item=t,null===this._identityChangesTail?this._identityChangesTail=this._identityChangesHead=e:this._identityChangesTail=this._identityChangesTail._nextIdentityChange=e,e},DefaultIterableDiffer.prototype.toString=function(){var e=[];this.forEachItem(function(t){return e.push(t)});var t=[];this.forEachPreviousItem(function(e){return t.push(e)});var n=[];this.forEachAddedItem(function(e){return n.push(e)});var o=[];this.forEachMovedItem(function(e){return o.push(e)});var r=[];this.forEachRemovedItem(function(e){return r.push(e)});var i=[];return this.forEachIdentityChange(function(e){return i.push(e)}),"collection: "+e.join(", ")+"\nprevious: "+t.join(", ")+"\nadditions: "+n.join(", ")+"\nmoves: "+o.join(", ")+"\nremovals: "+r.join(", ")+"\nidentityChanges: "+i.join(", ")+"\n"},DefaultIterableDiffer}(),u=function(){function CollectionChangeRecord(e,t){this.item=e,this.trackById=t,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null}return CollectionChangeRecord.prototype.toString=function(){return this.previousIndex===this.currentIndex?n.i(r.b)(this.item):n.i(r.b)(this.item)+"["+n.i(r.b)(this.previousIndex)+"->"+n.i(r.b)(this.currentIndex)+"]"},CollectionChangeRecord}(),l=function(){function _DuplicateItemRecordList(){this._head=null,this._tail=null}return _DuplicateItemRecordList.prototype.add=function(e){null===this._head?(this._head=this._tail=e,e._nextDup=null,e._prevDup=null):(this._tail._nextDup=e,e._prevDup=this._tail,e._nextDup=null,this._tail=e)},_DuplicateItemRecordList.prototype.get=function(e,t){var o;for(o=this._head;null!==o;o=o._nextDup)if((null===t||t<o.currentIndex)&&n.i(r.i)(o.trackById,e))return o;return null},_DuplicateItemRecordList.prototype.remove=function(e){var t=e._prevDup,n=e._nextDup;return null===t?this._head=n:t._nextDup=n,null===n?this._tail=t:n._prevDup=t,null===this._head},_DuplicateItemRecordList}(),c=function(){function _DuplicateMap(){this.map=new Map}return _DuplicateMap.prototype.put=function(e){var t=e.trackById,n=this.map.get(t);n||(n=new l,this.map.set(t,n)),n.add(e)},_DuplicateMap.prototype.get=function(e,t){void 0===t&&(t=null);var n=e,o=this.map.get(n);return o?o.get(e,t):null},_DuplicateMap.prototype.remove=function(e){var t=e.trackById,n=this.map.get(t);return n.remove(e)&&this.map.delete(t),e},Object.defineProperty(_DuplicateMap.prototype,"isEmpty",{get:function(){return 0===this.map.size},enumerable:!0,configurable:!0}),_DuplicateMap.prototype.clear=function(){this.map.clear()},_DuplicateMap.prototype.toString=function(){return"_DuplicateMap("+n.i(r.b)(this.map)+")"},_DuplicateMap}()},function(e,t,n){"use strict";var o=n(41),r=n(8);n.d(t,"a",function(){return i});var i=function(){function Console(){}return Console.prototype.log=function(e){n.i(r.g)(e)},Console.prototype.warn=function(e){n.i(r.h)(e)},Console.decorators=[{type:o.b}],Console.ctorParameters=function(){return[]},Console}()},function(e,t,n){"use strict";function forwardRef(e){return e.__forward_ref__=forwardRef,e.toString=function(){return n.i(o.b)(this())},e}function resolveForwardRef(e){return"function"==typeof e&&e.hasOwnProperty("__forward_ref__")&&e.__forward_ref__===forwardRef?e():e}var o=n(8);t.b=forwardRef,t.a=resolveForwardRef},function(e,t,n){"use strict";var o=n(108);n.d(t,"a",function(){return r});var r=function(){function OpaqueToken(e){this._desc=e}return OpaqueToken.prototype.toString=function(){return"Token "+this._desc},OpaqueToken.decorators=[{type:o.a}],OpaqueToken.ctorParameters=function(){return[null]},OpaqueToken}()},function(e,t,n){"use strict";var o=n(8),r=n(259);n.d(t,"a",function(){return i});var i=function(){function ReflectiveKey(e,t){if(this.token=e,this.id=t,!e)throw new Error("Token must be defined!")}return Object.defineProperty(ReflectiveKey.prototype,"displayName",{get:function(){return n.i(o.b)(this.token)},enumerable:!0,configurable:!0}),ReflectiveKey.get=function(e){return s.get(n.i(r.a)(e))},Object.defineProperty(ReflectiveKey,"numberOfKeys",{get:function(){return s.numberOfKeys},enumerable:!0,configurable:!0}),ReflectiveKey}(),a=function(){function KeyRegistry(){this._allKeys=new Map}return KeyRegistry.prototype.get=function(e){if(e instanceof i)return e;if(this._allKeys.has(e))return this._allKeys.get(e);var t=new i(e,i.numberOfKeys);return this._allKeys.set(e,t),t},Object.defineProperty(KeyRegistry.prototype,"numberOfKeys",{get:function(){return this._allKeys.size},enumerable:!0,configurable:!0}),KeyRegistry}(),s=new a},function(e,t,n){"use strict";function resolveReflectiveFactory(e){var t,r;if(e.useClass){var a=n.i(i.a)(e.useClass);t=o.a.factory(a),r=_dependenciesFor(a)}else e.useExisting?(t=function(e){return e},r=[l.fromKey(u.a.get(e.useExisting))]):e.useFactory?(t=e.useFactory,r=constructDependencies(e.useFactory,e.deps)):(t=function(){return e.useValue},r=c);return new p(t,r)}function resolveReflectiveProvider(e){return new d(u.a.get(e.provide),[resolveReflectiveFactory(e)],e.multi)}function resolveReflectiveProviders(e){var t=_normalizeProviders(e,[]),n=t.map(resolveReflectiveProvider),o=mergeResolvedReflectiveProviders(n,new Map);return Array.from(o.values())}function mergeResolvedReflectiveProviders(e,t){for(var n=0;n<e.length;n++){var o=e[n],r=t.get(o.key.id);if(r){if(o.multiProvider!==r.multiProvider)throw new s.a(r,o);if(o.multiProvider)for(var i=0;i<o.resolvedFactories.length;i++)r.resolvedFactories.push(o.resolvedFactories[i]);else t.set(o.key.id,o)}else{var a=void 0;a=o.multiProvider?new d(o.key,o.resolvedFactories.slice(),o.multiProvider):o,t.set(o.key.id,a)}}return t}function _normalizeProviders(e,t){return e.forEach(function(e){if(e instanceof r.b)t.push({provide:e,useClass:e});else if(e&&"object"==typeof e&&void 0!==e.provide)t.push(e);else{if(!(e instanceof Array))throw new s.b(e);_normalizeProviders(e,t)}}),t}function constructDependencies(e,t){if(t){var n=t.map(function(e){return[e]});return t.map(function(t){return _extractToken(e,t,n)})}return _dependenciesFor(e)}function _dependenciesFor(e){var t=o.a.parameters(e);if(!t)return[];if(t.some(function(e){return null==e}))throw new s.c(e,t);return t.map(function(n){return _extractToken(e,n,t)})}function _extractToken(e,t,o){var u=null,l=!1;if(!Array.isArray(t))return t instanceof a.b?_createDependency(t.token,l,null):_createDependency(t,l,null);for(var c=null,d=0;d<t.length;++d){var p=t[d];p instanceof r.b?u=p:p instanceof a.b?u=p.token:p instanceof a.c?l=!0:(p instanceof a.d||p instanceof a.e)&&(c=p)}if(u=n.i(i.a)(u),null!=u)return _createDependency(u,l,c);throw new s.c(e,o)}function _createDependency(e,t,n){return new l(u.a.get(e),t,n)}var o=n(265),r=n(269),i=n(259),a=n(108),s=n(384),u=n(261);n.d(t,"c",function(){return p}),t.a=resolveReflectiveProviders,t.b=constructDependencies;var l=function(){function ReflectiveDependency(e,t,n){this.key=e,this.optional=t,this.visibility=n}return ReflectiveDependency.fromKey=function(e){return new ReflectiveDependency(e,(!1),null)},ReflectiveDependency}(),c=[],d=function(){function ResolvedReflectiveProvider_(e,t,n){this.key=e,this.resolvedFactories=t,this.multiProvider=n}return Object.defineProperty(ResolvedReflectiveProvider_.prototype,"resolvedFactory",{get:function(){return this.resolvedFactories[0]},enumerable:!0,configurable:!0}),ResolvedReflectiveProvider_}(),p=function(){function ResolvedReflectiveFactory(e,t){this.factory=e,this.dependencies=t}return ResolvedReflectiveFactory}()},function(e,t,n){"use strict";var o=n(13),r=(n.n(o),n(0));n.n(r);n.d(t,"a",function(){return a});var i=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},a=function(e){function EventEmitter(t){void 0===t&&(t=!1),e.call(this),this.__isAsync=t}return i(EventEmitter,e),EventEmitter.prototype.emit=function(t){e.prototype.next.call(this,t)},EventEmitter.prototype.subscribe=function(t,n,o){var r,i=function(e){return null},a=function(){return null};return t&&"object"==typeof t?(r=this.__isAsync?function(e){setTimeout(function(){return t.next(e)})}:function(e){t.next(e)},t.error&&(i=this.__isAsync?function(e){setTimeout(function(){return t.error(e)})}:function(e){t.error(e)}),t.complete&&(a=this.__isAsync?function(){setTimeout(function(){return t.complete()})}:function(){t.complete()})):(r=this.__isAsync?function(e){setTimeout(function(){return t(e)})}:function(e){t(e)},n&&(i=this.__isAsync?function(e){setTimeout(function(){return n(e)})}:function(e){n(e)}),o&&(a=this.__isAsync?function(){setTimeout(function(){return o()})}:function(){o()})),e.prototype.subscribe.call(this,r,i,a)},EventEmitter}(o.Subject)},function(e,t,n){"use strict";var o=n(182),r=n(184);n.d(t,"c",function(){return a}),n.d(t,"b",function(){return s}),n.d(t,"a",function(){return u});var i=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},a=function(){function ComponentRef(){}return ComponentRef.prototype.location=function(){},ComponentRef.prototype.injector=function(){},ComponentRef.prototype.instance=function(){},ComponentRef.prototype.hostView=function(){},ComponentRef.prototype.changeDetectorRef=function(){},ComponentRef.prototype.componentType=function(){},ComponentRef.prototype.destroy=function(){},ComponentRef.prototype.onDestroy=function(e){},ComponentRef}(),s=function(e){function ComponentRef_(t,n,o,r){e.call(this),this._index=t,this._parentView=n,this._nativeElement=o,this._component=r}return i(ComponentRef_,e),Object.defineProperty(ComponentRef_.prototype,"location",{get:function(){return new o.a(this._nativeElement)},enumerable:!0,configurable:!0}),Object.defineProperty(ComponentRef_.prototype,"injector",{get:function(){return this._parentView.injector(this._index)},enumerable:!0,configurable:!0}),Object.defineProperty(ComponentRef_.prototype,"instance",{get:function(){return this._component},enumerable:!0,configurable:!0}),Object.defineProperty(ComponentRef_.prototype,"hostView",{get:function(){return this._parentView.ref},enumerable:!0,configurable:!0}),Object.defineProperty(ComponentRef_.prototype,"changeDetectorRef",{get:function(){return this._parentView.ref},enumerable:!0,configurable:!0}),Object.defineProperty(ComponentRef_.prototype,"componentType",{get:function(){return this._component.constructor},enumerable:!0,configurable:!0}),ComponentRef_.prototype.destroy=function(){this._parentView.detachAndDestroy()},ComponentRef_.prototype.onDestroy=function(e){this.hostView.onDestroy(e)},ComponentRef_}(a),u=function(){function ComponentFactory(e,t,n){this.selector=e,this._viewClass=t,this._componentType=n}return Object.defineProperty(ComponentFactory.prototype,"componentType",{get:function(){return this._componentType},enumerable:!0,configurable:!0}),ComponentFactory.prototype.create=function(e,t,n){void 0===t&&(t=null),void 0===n&&(n=null);var o=e.get(r.ViewUtils);t||(t=[]);var i=new this._viewClass(o,null,null,null);return i.createHostView(n,e,t)},ComponentFactory}()},function(e,t,n){"use strict";var o=n(397),r=n(398);n.d(t,"a",function(){return i}),n.d(t,"b",function(){return r.a});var i=new r.a(new o.a)},function(e,t,n){"use strict";n.d(t,"a",function(){return o});var o=function(){function ReflectorReader(){}return ReflectorReader.prototype.parameters=function(e){},ReflectorReader.prototype.annotations=function(e){},ReflectorReader.prototype.propMetadata=function(e){},ReflectorReader.prototype.importUri=function(e){},ReflectorReader.prototype.resolveIdentifier=function(e,t,n){},ReflectorReader.prototype.resolveEnum=function(e,t){},ReflectorReader}()},function(e,t,n){"use strict";n.d(t,"b",function(){return o}),n.d(t,"c",function(){return r}),n.d(t,"d",function(){return i}),n.d(t,"a",function(){return a});var o=function(){function RenderComponentType(e,t,n,o,r,i){this.id=e,this.templateUrl=t,this.slotCount=n,this.encapsulation=o,this.styles=r,this.animations=i}return RenderComponentType}(),r=function(){function RenderDebugInfo(){}return RenderDebugInfo.prototype.injector=function(){},RenderDebugInfo.prototype.component=function(){},RenderDebugInfo.prototype.providerTokens=function(){},RenderDebugInfo.prototype.references=function(){},RenderDebugInfo.prototype.context=function(){},RenderDebugInfo.prototype.source=function(){},RenderDebugInfo}(),i=function(){function Renderer(){}return Renderer.prototype.selectRootElement=function(e,t){},Renderer.prototype.createElement=function(e,t,n){},Renderer.prototype.createViewRoot=function(e){},Renderer.prototype.createTemplateAnchor=function(e,t){},Renderer.prototype.createText=function(e,t,n){},Renderer.prototype.projectNodes=function(e,t){},Renderer.prototype.attachViewAfter=function(e,t){},Renderer.prototype.detachView=function(e){},Renderer.prototype.destroyView=function(e,t){},Renderer.prototype.listen=function(e,t,n){},Renderer.prototype.listenGlobal=function(e,t,n){},Renderer.prototype.setElementProperty=function(e,t,n){},Renderer.prototype.setElementAttribute=function(e,t,n){},Renderer.prototype.setBindingDebugInfo=function(e,t,n){},Renderer.prototype.setElementClass=function(e,t,n){},Renderer.prototype.setElementStyle=function(e,t,n){},Renderer.prototype.invokeElementMethod=function(e,t,n){},Renderer.prototype.setText=function(e,t){},Renderer.prototype.animate=function(e,t,n,o,r,i,a){},Renderer}(),a=function(){function RootRenderer(){}return RootRenderer.prototype.renderComponent=function(e){},RootRenderer}()},function(e,t,n){"use strict";function setTestabilityGetter(e){l=e}var o=n(41),r=n(8),i=n(186);n.d(t,"a",function(){return a}),n.d(t,"b",function(){return s}),t.c=setTestabilityGetter;var a=function(){function Testability(e){this._ngZone=e,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this._watchAngularEvents()}return Testability.prototype._watchAngularEvents=function(){var e=this;this._ngZone.onUnstable.subscribe({next:function(){e._didWork=!0,e._isZoneStable=!1}}),this._ngZone.runOutsideAngular(function(){e._ngZone.onStable.subscribe({next:function(){i.a.assertNotInAngularZone(),n.i(r.l)(function(){e._isZoneStable=!0,e._runCallbacksIfReady()})}})})},Testability.prototype.increasePendingRequestCount=function(){return this._pendingCount+=1,this._didWork=!0,this._pendingCount},Testability.prototype.decreasePendingRequestCount=function(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error("pending async requests below zero");return this._runCallbacksIfReady(),this._pendingCount},Testability.prototype.isStable=function(){return this._isZoneStable&&0==this._pendingCount&&!this._ngZone.hasPendingMacrotasks},Testability.prototype._runCallbacksIfReady=function(){var e=this;this.isStable()?n.i(r.l)(function(){for(;0!==e._callbacks.length;)e._callbacks.pop()(e._didWork);e._didWork=!1}):this._didWork=!0},Testability.prototype.whenStable=function(e){this._callbacks.push(e),this._runCallbacksIfReady()},Testability.prototype.getPendingRequestCount=function(){return this._pendingCount},Testability.prototype.findBindings=function(e,t,n){return[]},Testability.prototype.findProviders=function(e,t,n){return[]},Testability.decorators=[{type:o.b}],Testability.ctorParameters=function(){return[{type:i.a}]},Testability}(),s=function(){function TestabilityRegistry(){this._applications=new Map,l.addToWindow(this)}return TestabilityRegistry.prototype.registerApplication=function(e,t){this._applications.set(e,t)},TestabilityRegistry.prototype.getTestability=function(e){return this._applications.get(e)},TestabilityRegistry.prototype.getAllTestabilities=function(){return Array.from(this._applications.values())},TestabilityRegistry.prototype.getAllRootElements=function(){return Array.from(this._applications.keys())},TestabilityRegistry.prototype.findTestabilityInTree=function(e,t){return void 0===t&&(t=!0),l.findTestabilityInTree(this,e,t)},TestabilityRegistry.decorators=[{type:o.b}],TestabilityRegistry.ctorParameters=function(){return[]},TestabilityRegistry}(),u=function(){function _NoopGetTestability(){}return _NoopGetTestability.prototype.addToWindow=function(e){},_NoopGetTestability.prototype.findTestabilityInTree=function(e,t,n){return null},_NoopGetTestability}(),l=new u},function(e,t,n){"use strict";function isType(e){return"function"==typeof e}n.d(t,"b",function(){return o}),t.a=isType;var o=Function},function(e,t,n){"use strict";function isPromise(e){return!!e&&"function"==typeof e.then}function isObservable(e){return!(!e||!e[o.$$observable])}var o=n(156);n.n(o);t.a=isPromise,t.b=isObservable},function(e,t,n){"use strict";n.d(t,"a",function(){return o});var o=function(){function AbstractControlDirective(){}return Object.defineProperty(AbstractControlDirective.prototype,"control",{get:function(){throw new Error("unimplemented")},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControlDirective.prototype,"value",{get:function(){return this.control?this.control.value:null},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControlDirective.prototype,"valid",{get:function(){return this.control?this.control.valid:null},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControlDirective.prototype,"invalid",{get:function(){return this.control?this.control.invalid:null},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControlDirective.prototype,"pending",{get:function(){return this.control?this.control.pending:null},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControlDirective.prototype,"errors",{get:function(){return this.control?this.control.errors:null},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControlDirective.prototype,"pristine",{get:function(){return this.control?this.control.pristine:null},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControlDirective.prototype,"dirty",{get:function(){return this.control?this.control.dirty:null},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControlDirective.prototype,"touched",{get:function(){return this.control?this.control.touched:null},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControlDirective.prototype,"untouched",{get:function(){return this.control?this.control.untouched:null},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControlDirective.prototype,"disabled",{get:function(){return this.control?this.control.disabled:null},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControlDirective.prototype,"enabled",{get:function(){return this.control?this.control.enabled:null},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControlDirective.prototype,"statusChanges",{get:function(){return this.control?this.control.statusChanges:null},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControlDirective.prototype,"valueChanges",{get:function(){return this.control?this.control.valueChanges:null},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControlDirective.prototype,"path",{get:function(){return null},enumerable:!0,configurable:!0}),AbstractControlDirective.prototype.reset=function(e){void 0===e&&(e=void 0),this.control&&this.control.reset(e)},AbstractControlDirective.prototype.hasError=function(e,t){return void 0===t&&(t=null),!!this.control&&this.control.hasError(e,t)},AbstractControlDirective.prototype.getError=function(e,t){return void 0===t&&(t=null),this.control?this.control.getError(e,t):null},AbstractControlDirective}()},function(e,t,n){"use strict";var o=n(1),r=n(57),i=n(90);n.d(t,"a",function(){return l}),n.d(t,"b",function(){return c});var a=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},s=function(){function AbstractControlStatus(e){this._cd=e}return Object.defineProperty(AbstractControlStatus.prototype,"ngClassUntouched",{get:function(){return!!this._cd.control&&this._cd.control.untouched},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControlStatus.prototype,"ngClassTouched",{get:function(){return!!this._cd.control&&this._cd.control.touched},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControlStatus.prototype,"ngClassPristine",{get:function(){return!!this._cd.control&&this._cd.control.pristine},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControlStatus.prototype,"ngClassDirty",{get:function(){return!!this._cd.control&&this._cd.control.dirty},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControlStatus.prototype,"ngClassValid",{get:function(){return!!this._cd.control&&this._cd.control.valid},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControlStatus.prototype,"ngClassInvalid",{get:function(){return!!this._cd.control&&this._cd.control.invalid},enumerable:!0,configurable:!0}),Object.defineProperty(AbstractControlStatus.prototype,"ngClassPending",{get:function(){return!!this._cd.control&&this._cd.control.pending},enumerable:!0,configurable:!0}),AbstractControlStatus}(),u={"[class.ng-untouched]":"ngClassUntouched","[class.ng-touched]":"ngClassTouched","[class.ng-pristine]":"ngClassPristine","[class.ng-dirty]":"ngClassDirty","[class.ng-valid]":"ngClassValid","[class.ng-invalid]":"ngClassInvalid","[class.ng-pending]":"ngClassPending"},l=function(e){function NgControlStatus(t){e.call(this,t)}return a(NgControlStatus,e),NgControlStatus.decorators=[{type:o.Directive,args:[{selector:"[formControlName],[ngModel],[formControl]",host:u}]}],NgControlStatus.ctorParameters=function(){return[{type:i.a,decorators:[{type:o.Self}]}]},NgControlStatus}(s),c=function(e){function NgControlStatusGroup(t){e.call(this,t)}return a(NgControlStatusGroup,e),NgControlStatusGroup.decorators=[{type:o.Directive,args:[{selector:"[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]",host:u}]}],NgControlStatusGroup.ctorParameters=function(){return[{type:r.a,decorators:[{type:o.Self}]}]},NgControlStatusGroup}(s)},function(e,t,n){"use strict";var o=n(1),r=n(110),i=n(193),a=n(49),s=n(134),u=n(57),l=n(42),c=n(90),d=n(135),p=n(189),g=n(76),f=n(402);n.d(t,"a",function(){return b});var h=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},m={provide:c.a,useExisting:n.i(o.forwardRef)(function(){return b})},y=Promise.resolve(null),b=function(e){function NgModel(t,o,a,s){e.call(this),this._control=new i.b,this._registered=!1,this.update=new r.a,this._parent=t,this._rawValidators=o||[],this._rawAsyncValidators=a||[],this.valueAccessor=n.i(g.f)(this,s)}return h(NgModel,e),NgModel.prototype.ngOnChanges=function(e){this._checkForErrors(),this._registered||this._setUpControl(),"isDisabled"in e&&this._updateDisabled(e),n.i(g.g)(e,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)},NgModel.prototype.ngOnDestroy=function(){this.formDirective&&this.formDirective.removeControl(this)},Object.defineProperty(NgModel.prototype,"control",{get:function(){return this._control},enumerable:!0,configurable:!0}),Object.defineProperty(NgModel.prototype,"path",{get:function(){return this._parent?n.i(g.a)(this.name,this._parent):[this.name]},enumerable:!0,configurable:!0}),Object.defineProperty(NgModel.prototype,"formDirective",{get:function(){return this._parent?this._parent.formDirective:null},enumerable:!0,configurable:!0}),Object.defineProperty(NgModel.prototype,"validator",{get:function(){return n.i(g.b)(this._rawValidators)},enumerable:!0,configurable:!0}),Object.defineProperty(NgModel.prototype,"asyncValidator",{get:function(){return n.i(g.c)(this._rawAsyncValidators)},enumerable:!0,configurable:!0}),NgModel.prototype.viewToModelUpdate=function(e){this.viewModel=e,this.update.emit(e)},NgModel.prototype._setUpControl=function(){this._isStandalone()?this._setUpStandalone():this.formDirective.addControl(this),this._registered=!0},NgModel.prototype._isStandalone=function(){return!this._parent||this.options&&this.options.standalone},NgModel.prototype._setUpStandalone=function(){n.i(g.d)(this._control,this),this._control.updateValueAndValidity({emitEvent:!1})},NgModel.prototype._checkForErrors=function(){this._isStandalone()||this._checkParentType(),this._checkName()},NgModel.prototype._checkParentType=function(){!(this._parent instanceof p.a)&&this._parent instanceof s.a?f.a.formGroupNameException():this._parent instanceof p.a||this._parent instanceof d.a||f.a.modelParentException()},NgModel.prototype._checkName=function(){this.options&&this.options.name&&(this.name=this.options.name),this._isStandalone()||this.name||f.a.missingNameException()},NgModel.prototype._updateValue=function(e){var t=this;y.then(function(){t.control.setValue(e,{emitViewToModelChange:!1})})},NgModel.prototype._updateDisabled=function(e){var t=this,n=e.isDisabled.currentValue,o=""===n||n&&"false"!==n;y.then(function(){o&&!t.control.disabled?t.control.disable():!o&&t.control.disabled&&t.control.enable()})},NgModel.decorators=[{type:o.Directive,args:[{selector:"[ngModel]:not([formControlName]):not([formControl])",providers:[m],exportAs:"ngModel"}]}],NgModel.ctorParameters=function(){return[{type:u.a,decorators:[{type:o.Optional},{type:o.Host}]},{type:Array,decorators:[{type:o.Optional},{type:o.Self},{type:o.Inject,args:[a.b]}]},{type:Array,decorators:[{type:o.Optional},{type:o.Self},{type:o.Inject,args:[a.c]}]},{type:Array,decorators:[{type:o.Optional},{type:o.Self},{type:o.Inject,args:[l.a]}]}]},NgModel.propDecorators={name:[{type:o.Input}],isDisabled:[{type:o.Input,args:["disabled"]}],model:[{type:o.Input,args:["ngModel"]}],options:[{type:o.Input,args:["ngModelOptions"]}],update:[{type:o.Output,args:["ngModelChange"]}]},NgModel}(c.a)},function(e,t,n){"use strict";var o=n(1),r=n(42);n.d(t,"a",function(){return a});var i={provide:r.a,useExisting:n.i(o.forwardRef)(function(){return a}),multi:!0},a=function(){function NumberValueAccessor(e,t){this._renderer=e,this._elementRef=t,this.onChange=function(e){},this.onTouched=function(){}}return NumberValueAccessor.prototype.writeValue=function(e){var t=null==e?"":e;this._renderer.setElementProperty(this._elementRef.nativeElement,"value",t)},NumberValueAccessor.prototype.registerOnChange=function(e){this.onChange=function(t){e(""==t?null:parseFloat(t))}},NumberValueAccessor.prototype.registerOnTouched=function(e){this.onTouched=e},NumberValueAccessor.prototype.setDisabledState=function(e){this._renderer.setElementProperty(this._elementRef.nativeElement,"disabled",e)},NumberValueAccessor.decorators=[{type:o.Directive,args:[{selector:"input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]",host:{"(change)":"onChange($event.target.value)","(input)":"onChange($event.target.value)","(blur)":"onTouched()"},providers:[i]}]}],NumberValueAccessor.ctorParameters=function(){return[{type:o.Renderer},{type:o.ElementRef}]},NumberValueAccessor}()},function(e,t,n){"use strict";var o=n(1),r=n(42);n.d(t,"a",function(){return a});var i={provide:r.a,useExisting:n.i(o.forwardRef)(function(){return a}),multi:!0},a=function(){function RangeValueAccessor(e,t){this._renderer=e,this._elementRef=t,this.onChange=function(e){},this.onTouched=function(){}}return RangeValueAccessor.prototype.writeValue=function(e){this._renderer.setElementProperty(this._elementRef.nativeElement,"value",parseFloat(e))},RangeValueAccessor.prototype.registerOnChange=function(e){this.onChange=function(t){e(""==t?null:parseFloat(t))}},RangeValueAccessor.prototype.registerOnTouched=function(e){this.onTouched=e},RangeValueAccessor.prototype.setDisabledState=function(e){this._renderer.setElementProperty(this._elementRef.nativeElement,"disabled",e)},RangeValueAccessor.decorators=[{type:o.Directive,args:[{selector:"input[type=range][formControlName],input[type=range][formControl],input[type=range][ngModel]",host:{"(change)":"onChange($event.target.value)","(input)":"onChange($event.target.value)","(blur)":"onTouched()"},providers:[i]}]}],RangeValueAccessor.ctorParameters=function(){return[{type:o.Renderer},{type:o.ElementRef}]},RangeValueAccessor}()},function(e,t,n){"use strict";var o=n(1),r=n(110),i=n(49),a=n(42),s=n(90),u=n(190),l=n(76);n.d(t,"a",function(){return p});var c=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},d={provide:s.a,useExisting:n.i(o.forwardRef)(function(){return p})},p=function(e){function FormControlDirective(t,o,i){e.call(this),this.update=new r.a,this._rawValidators=t||[],this._rawAsyncValidators=o||[],this.valueAccessor=n.i(l.f)(this,i)}return c(FormControlDirective,e),Object.defineProperty(FormControlDirective.prototype,"isDisabled",{set:function(e){u.a.disabledAttrWarning()},enumerable:!0,configurable:!0}),FormControlDirective.prototype.ngOnChanges=function(e){this._isControlChanged(e)&&(n.i(l.d)(this.form,this),this.control.disabled&&this.valueAccessor.setDisabledState&&this.valueAccessor.setDisabledState(!0),this.form.updateValueAndValidity({emitEvent:!1})),n.i(l.g)(e,this.viewModel)&&(this.form.setValue(this.model),this.viewModel=this.model)},Object.defineProperty(FormControlDirective.prototype,"path",{get:function(){return[]},enumerable:!0,configurable:!0}),Object.defineProperty(FormControlDirective.prototype,"validator",{get:function(){return n.i(l.b)(this._rawValidators)},enumerable:!0,configurable:!0}),Object.defineProperty(FormControlDirective.prototype,"asyncValidator",{get:function(){return n.i(l.c)(this._rawAsyncValidators)},enumerable:!0,configurable:!0}),Object.defineProperty(FormControlDirective.prototype,"control",{get:function(){return this.form},enumerable:!0,configurable:!0}),FormControlDirective.prototype.viewToModelUpdate=function(e){this.viewModel=e,this.update.emit(e)},FormControlDirective.prototype._isControlChanged=function(e){return e.hasOwnProperty("form")},FormControlDirective.decorators=[{type:o.Directive,args:[{selector:"[formControl]",providers:[d],exportAs:"ngForm"}]}],FormControlDirective.ctorParameters=function(){return[{type:Array,decorators:[{type:o.Optional
},{type:o.Self},{type:o.Inject,args:[i.b]}]},{type:Array,decorators:[{type:o.Optional},{type:o.Self},{type:o.Inject,args:[i.c]}]},{type:Array,decorators:[{type:o.Optional},{type:o.Self},{type:o.Inject,args:[a.a]}]}]},FormControlDirective.propDecorators={form:[{type:o.Input,args:["formControl"]}],model:[{type:o.Input,args:["ngModel"]}],update:[{type:o.Output,args:["ngModelChange"]}],isDisabled:[{type:o.Input,args:["disabled"]}]},FormControlDirective}(s.a)},function(e,t,n){"use strict";var o=n(1),r=n(110),i=n(49),a=n(134),s=n(57),u=n(42),l=n(90),c=n(190),d=n(76),p=n(137),g=n(138);n.d(t,"a",function(){return m});var f=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},h={provide:l.a,useExisting:n.i(o.forwardRef)(function(){return m})},m=function(e){function FormControlName(t,o,i,a){e.call(this),this._added=!1,this.update=new r.a,this._parent=t,this._rawValidators=o||[],this._rawAsyncValidators=i||[],this.valueAccessor=n.i(d.f)(this,a)}return f(FormControlName,e),Object.defineProperty(FormControlName.prototype,"isDisabled",{set:function(e){c.a.disabledAttrWarning()},enumerable:!0,configurable:!0}),FormControlName.prototype.ngOnChanges=function(e){this._added||this._setUpControl(),n.i(d.g)(e,this.viewModel)&&(this.viewModel=this.model,this.formDirective.updateModel(this,this.model))},FormControlName.prototype.ngOnDestroy=function(){this.formDirective&&this.formDirective.removeControl(this)},FormControlName.prototype.viewToModelUpdate=function(e){this.viewModel=e,this.update.emit(e)},Object.defineProperty(FormControlName.prototype,"path",{get:function(){return n.i(d.a)(this.name,this._parent)},enumerable:!0,configurable:!0}),Object.defineProperty(FormControlName.prototype,"formDirective",{get:function(){return this._parent?this._parent.formDirective:null},enumerable:!0,configurable:!0}),Object.defineProperty(FormControlName.prototype,"validator",{get:function(){return n.i(d.b)(this._rawValidators)},enumerable:!0,configurable:!0}),Object.defineProperty(FormControlName.prototype,"asyncValidator",{get:function(){return n.i(d.c)(this._rawAsyncValidators)},enumerable:!0,configurable:!0}),Object.defineProperty(FormControlName.prototype,"control",{get:function(){return this._control},enumerable:!0,configurable:!0}),FormControlName.prototype._checkParentType=function(){!(this._parent instanceof g.a)&&this._parent instanceof a.a?c.a.ngModelGroupException():this._parent instanceof g.a||this._parent instanceof p.a||this._parent instanceof g.b||c.a.controlParentException()},FormControlName.prototype._setUpControl=function(){this._checkParentType(),this._control=this.formDirective.addControl(this),this.control.disabled&&this.valueAccessor.setDisabledState&&this.valueAccessor.setDisabledState(!0),this._added=!0},FormControlName.decorators=[{type:o.Directive,args:[{selector:"[formControlName]",providers:[h]}]}],FormControlName.ctorParameters=function(){return[{type:s.a,decorators:[{type:o.Optional},{type:o.Host},{type:o.SkipSelf}]},{type:Array,decorators:[{type:o.Optional},{type:o.Self},{type:o.Inject,args:[i.b]}]},{type:Array,decorators:[{type:o.Optional},{type:o.Self},{type:o.Inject,args:[i.c]}]},{type:Array,decorators:[{type:o.Optional},{type:o.Self},{type:o.Inject,args:[u.a]}]}]},FormControlName.propDecorators={name:[{type:o.Input,args:["formControlName"]}],model:[{type:o.Input,args:["ngModel"]}],update:[{type:o.Output,args:["ngModelChange"]}],isDisabled:[{type:o.Input,args:["disabled"]}]},FormControlName}(l.a)},function(e,t,n){"use strict";var o=n(1);n.d(t,"a",function(){return r});var r=function(){function BrowserXhr(){}return BrowserXhr.prototype.build=function(){return new XMLHttpRequest},BrowserXhr.decorators=[{type:o.Injectable}],BrowserXhr.ctorParameters=function(){return[]},BrowserXhr}()},function(e,t,n){"use strict";var o=n(1),r=n(77),i=n(139),a=n(195),s=n(196);n.d(t,"a",function(){return l}),n.d(t,"b",function(){return c});var u=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},l=function(){function RequestOptions(e){var t=void 0===e?{}:e,o=t.method,r=t.headers,i=t.body,u=t.url,l=t.search,c=t.withCredentials,d=t.responseType;this.method=null!=o?n.i(a.d)(o):null,this.headers=null!=r?r:null,this.body=null!=i?i:null,this.url=null!=u?u:null,this.search=null!=l?"string"==typeof l?new s.a(l):l:null,this.withCredentials=null!=c?c:null,this.responseType=null!=d?d:null}return RequestOptions.prototype.merge=function(e){return new RequestOptions({method:e&&null!=e.method?e.method:this.method,headers:e&&null!=e.headers?e.headers:new i.a(this.headers),body:e&&null!=e.body?e.body:this.body,url:e&&null!=e.url?e.url:this.url,search:e&&null!=e.search?"string"==typeof e.search?new s.a(e.search):e.search.clone():this.search,withCredentials:e&&null!=e.withCredentials?e.withCredentials:this.withCredentials,responseType:e&&null!=e.responseType?e.responseType:this.responseType})},RequestOptions}(),c=function(e){function BaseRequestOptions(){e.call(this,{method:r.b.Get,headers:new i.a})}return u(BaseRequestOptions,e),BaseRequestOptions.decorators=[{type:o.Injectable}],BaseRequestOptions.ctorParameters=function(){return[]},BaseRequestOptions}(l)},function(e,t,n){"use strict";var o=n(410);n.d(t,"a",function(){return i});var r=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},i=function(e){function Response(t){e.call(this),this._body=t.body,this.status=t.status,this.ok=this.status>=200&&this.status<=299,this.statusText=t.statusText,this.headers=t.headers,this.type=t.type,this.url=t.url}return r(Response,e),Response.prototype.toString=function(){return"Response with status: "+this.status+" "+this.statusText+" for URL: "+this.url},Response}(o.a)},function(e,t,n){"use strict";var o=n(286);n.d(t,"a",function(){return i});var r=function(){function NoOpAnimationDriver(){}return NoOpAnimationDriver.prototype.animate=function(e,t,n,r,i,a,s){return void 0===s&&(s=[]),new o.a},NoOpAnimationDriver}(),i=function(){function AnimationDriver(){}return AnimationDriver.prototype.animate=function(e,t,n,o,r,i,a){},AnimationDriver.NOOP=new r,AnimationDriver}()},function(e,t,n){"use strict";function inspectNativeElement(e){return o.getDebugNode(e)}function _createConditionalRootRenderer(e,t,n){return o.isDevMode()?_createRootRenderer(e,(t||[]).concat(n||[])):e}function _createRootRenderer(e,t){return n.i(a.a)().setGlobalVar(l,inspectNativeElement),n.i(a.a)().setGlobalVar(c,r.a.merge(u,_ngProbeTokensToMap(t||[]))),new i.b(e)}function _ngProbeTokensToMap(e){return e.reduce(function(e,t){return e[t.name]=t.token,e},{})}var o=n(1),r=n(686),i=n(286),a=n(23),s=n(283);n.d(t,"b",function(){return d}),n.d(t,"a",function(){return p});var u={ApplicationRef:o.ApplicationRef,NgZone:o.NgZone},l="ng.probe",c="ng.coreTokens",d=function(){function NgProbeToken(e,t){this.name=e,this.token=t}return NgProbeToken}(),p=[{provide:o.RootRenderer,useFactory:_createConditionalRootRenderer,deps:[s.a,[d,new o.Optional],[o.NgProbeToken,new o.Optional]]}]},function(e,t,n){"use strict";function moveNodesAfterSibling(e,t){var n=e.parentNode;if(t.length>0&&n){var o=e.nextSibling;if(o)for(var r=0;r<t.length;r++)n.insertBefore(t[r],o);else for(var r=0;r<t.length;r++)n.appendChild(t[r])}}function appendNodes(e,t){for(var n=0;n<t.length;n++)e.appendChild(t[n])}function decoratePreventDefault(e){return function(t){var n=e(t);n===!1&&(t.preventDefault(),t.returnValue=!1)}}function shimContentAttribute(e){return E.replace(b,e)}function shimHostAttribute(e){return _.replace(b,e)}function flattenStyles(e,t,n){for(var o=0;o<t.length;o++){var r=t[o];Array.isArray(r)?flattenStyles(e,r,n):(r=r.replace(b,e),n.push(r))}return n}function isNamespaced(e){return":"===e[0]}function splitNamespace(e){var t=e.match(T);return[t[1],t[2]]}var o=n(1),r=n(50),i=n(286),a=n(281),s=n(197),u=n(112),l=n(285);n.d(t,"c",function(){return d}),n.d(t,"a",function(){return f}),n.d(t,"b",function(){return h}),t.d=shimContentAttribute,t.e=shimHostAttribute,t.f=flattenStyles,t.h=isNamespaced,t.g=splitNamespace;var c=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},d={xlink:"http://www.w3.org/1999/xlink",svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml"},p="template bindings={}",g=/^template bindings=(.*)$/,f=function(){function DomRootRenderer(e,t,n,o,r){this.document=e,this.eventManager=t,this.sharedStylesHost=n,this.animationDriver=o,this.appId=r,this.registeredComponents=new Map}return DomRootRenderer.prototype.renderComponent=function(e){var t=this.registeredComponents.get(e.id);return t||(t=new y(this,e,this.animationDriver,this.appId+"-"+e.id),this.registeredComponents.set(e.id,t)),t},DomRootRenderer}(),h=function(e){function DomRootRenderer_(t,n,o,r,i){e.call(this,t,n,o,r,i)}return c(DomRootRenderer_,e),DomRootRenderer_.decorators=[{type:o.Injectable}],DomRootRenderer_.ctorParameters=function(){return[{type:void 0,decorators:[{type:o.Inject,args:[s.a]}]},{type:u.a},{type:l.a},{type:a.a},{type:void 0,decorators:[{type:o.Inject,args:[o.APP_ID]}]}]},DomRootRenderer_}(f),m={remove:function(e){e.parentNode&&e.parentNode.removeChild(e)},appendChild:function(e,t){t.appendChild(e)},insertBefore:function(e,t){t.parentNode.insertBefore(e,t)},nextSibling:function(e){return e.nextSibling},parentElement:function(e){return e.parentNode}},y=function(){function DomRenderer(e,t,n,r){this._rootRenderer=e,this.componentProto=t,this._animationDriver=n,this.directRenderer=m,this._styles=flattenStyles(r,t.styles,[]),t.encapsulation!==o.ViewEncapsulation.Native&&this._rootRenderer.sharedStylesHost.addStyles(this._styles),this.componentProto.encapsulation===o.ViewEncapsulation.Emulated?(this._contentAttr=shimContentAttribute(r),this._hostAttr=shimHostAttribute(r)):(this._contentAttr=null,this._hostAttr=null)}return DomRenderer.prototype.selectRootElement=function(e,t){var n;if("string"==typeof e){if(n=this._rootRenderer.document.querySelector(e),!n)throw new Error('The selector "'+e+'" did not match any elements')}else n=e;for(;n.firstChild;)n.removeChild(n.firstChild);return n},DomRenderer.prototype.createElement=function(e,t,n){var o;if(isNamespaced(t)){var r=splitNamespace(t);o=document.createElementNS(d[r[0]],r[1])}else o=document.createElement(t);return this._contentAttr&&o.setAttribute(this._contentAttr,""),e&&e.appendChild(o),o},DomRenderer.prototype.createViewRoot=function(e){var t;if(this.componentProto.encapsulation===o.ViewEncapsulation.Native){t=e.createShadowRoot();for(var n=0;n<this._styles.length;n++){var r=document.createElement("style");r.textContent=this._styles[n],t.appendChild(r)}}else this._hostAttr&&e.setAttribute(this._hostAttr,""),t=e;return t},DomRenderer.prototype.createTemplateAnchor=function(e,t){var n=document.createComment(p);return e&&e.appendChild(n),n},DomRenderer.prototype.createText=function(e,t,n){var o=document.createTextNode(t);return e&&e.appendChild(o),o},DomRenderer.prototype.projectNodes=function(e,t){e&&appendNodes(e,t)},DomRenderer.prototype.attachViewAfter=function(e,t){moveNodesAfterSibling(e,t)},DomRenderer.prototype.detachView=function(e){for(var t=0;t<e.length;t++){var n=e[t];n.parentNode&&n.parentNode.removeChild(n)}},DomRenderer.prototype.destroyView=function(e,t){this.componentProto.encapsulation===o.ViewEncapsulation.Native&&e&&this._rootRenderer.sharedStylesHost.removeHost(e.shadowRoot)},DomRenderer.prototype.listen=function(e,t,n){return this._rootRenderer.eventManager.addEventListener(e,t,decoratePreventDefault(n))},DomRenderer.prototype.listenGlobal=function(e,t,n){return this._rootRenderer.eventManager.addGlobalEventListener(e,t,decoratePreventDefault(n))},DomRenderer.prototype.setElementProperty=function(e,t,n){e[t]=n},DomRenderer.prototype.setElementAttribute=function(e,t,o){var i,a=t;if(isNamespaced(t)){var s=splitNamespace(t);a=s[1],t=s[0]+":"+s[1],i=d[s[0]]}n.i(r.a)(o)?i?e.setAttributeNS(i,t,o):e.setAttribute(t,o):n.i(r.a)(i)?e.removeAttributeNS(i,a):e.removeAttribute(t)},DomRenderer.prototype.setBindingDebugInfo=function(e,t,n){if(e.nodeType===Node.COMMENT_NODE){var o=e.nodeValue.replace(/\n/g,"").match(g),r=JSON.parse(o[1]);r[t]=n,e.nodeValue=p.replace("{}",JSON.stringify(r,null,2))}else this.setElementAttribute(e,t,n)},DomRenderer.prototype.setElementClass=function(e,t,n){n?e.classList.add(t):e.classList.remove(t)},DomRenderer.prototype.setElementStyle=function(e,t,o){n.i(r.a)(o)?e.style[t]=n.i(r.g)(o):e.style[t]=""},DomRenderer.prototype.invokeElementMethod=function(e,t,n){e[t].apply(e,n)},DomRenderer.prototype.setText=function(e,t){e.nodeValue=t},DomRenderer.prototype.animate=function(e,t,n,o,r,a,s){return void 0===s&&(s=[]),this._rootRenderer.document.body.contains(e)?this._animationDriver.animate(e,t,n,o,r,a,s):new i.a},DomRenderer}(),b=/%COMP%/g,v="%COMP%",_="_nghost-"+v,E="_ngcontent-"+v,T=/^:([^:]+):(.+)$/},function(e,t,n){"use strict";var o=n(1),r=n(112);n.d(t,"b",function(){return s}),n.d(t,"c",function(){return u}),n.d(t,"a",function(){return l});var i=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},a={pan:!0,panstart:!0,panmove:!0,panend:!0,pancancel:!0,panleft:!0,panright:!0,panup:!0,pandown:!0,pinch:!0,pinchstart:!0,pinchmove:!0,pinchend:!0,pinchcancel:!0,pinchin:!0,pinchout:!0,press:!0,pressup:!0,rotate:!0,rotatestart:!0,rotatemove:!0,rotateend:!0,rotatecancel:!0,swipe:!0,swipeleft:!0,swiperight:!0,swipeup:!0,swipedown:!0,tap:!0},s=new o.OpaqueToken("HammerGestureConfig"),u=function(){function HammerGestureConfig(){this.events=[],this.overrides={}}return HammerGestureConfig.prototype.buildHammer=function(e){var t=new Hammer(e);t.get("pinch").set({enable:!0}),t.get("rotate").set({enable:!0});for(var n in this.overrides)t.get(n).set(this.overrides[n]);return t},HammerGestureConfig.decorators=[{type:o.Injectable}],HammerGestureConfig.ctorParameters=function(){return[]},HammerGestureConfig}(),l=function(e){function HammerGesturesPlugin(t){e.call(this),this._config=t}return i(HammerGesturesPlugin,e),HammerGesturesPlugin.prototype.supports=function(e){if(!a.hasOwnProperty(e.toLowerCase())&&!this.isCustomEvent(e))return!1;if(!window.Hammer)throw new Error("Hammer.js is not loaded, can not bind "+e+" event");return!0},HammerGesturesPlugin.prototype.addEventListener=function(e,t,n){var o=this,r=this.manager.getZone();return t=t.toLowerCase(),r.runOutsideAngular(function(){var i=o._config.buildHammer(e),a=function(e){r.runGuarded(function(){n(e)})};return i.on(t,a),function(){return i.off(t,a)}})},HammerGesturesPlugin.prototype.isCustomEvent=function(e){return this._config.events.indexOf(e)>-1},HammerGesturesPlugin.decorators=[{type:o.Injectable}],HammerGesturesPlugin.ctorParameters=function(){return[{type:u,decorators:[{type:o.Inject,args:[s]}]}]},HammerGesturesPlugin}(r.b)},function(e,t,n){"use strict";var o=n(1),r=n(23),i=n(197);n.d(t,"b",function(){return s}),n.d(t,"a",function(){return u});var a=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},s=function(){function SharedStylesHost(){this._stylesSet=new Set}return SharedStylesHost.prototype.addStyles=function(e){var t=this,n=new Set;e.forEach(function(e){t._stylesSet.has(e)||(t._stylesSet.add(e),n.add(e))}),this.onStylesAdded(n)},SharedStylesHost.prototype.onStylesAdded=function(e){},SharedStylesHost.prototype.getAllStyles=function(){return Array.from(this._stylesSet)},SharedStylesHost.decorators=[{type:o.Injectable}],SharedStylesHost.ctorParameters=function(){return[]},SharedStylesHost}(),u=function(e){function DomSharedStylesHost(t){e.call(this),this._doc=t,this._hostNodes=new Set,this._styleNodes=new Set,this._hostNodes.add(t.head)}return a(DomSharedStylesHost,e),DomSharedStylesHost.prototype._addStylesToHost=function(e,t){var n=this;e.forEach(function(e){var o=n._doc.createElement("style");o.textContent=e,n._styleNodes.add(t.appendChild(o))})},DomSharedStylesHost.prototype.addHost=function(e){this._addStylesToHost(this._stylesSet,e),this._hostNodes.add(e)},DomSharedStylesHost.prototype.removeHost=function(e){this._hostNodes.delete(e)},DomSharedStylesHost.prototype.onStylesAdded=function(e){var t=this;this._hostNodes.forEach(function(n){return t._addStylesToHost(e,n)})},DomSharedStylesHost.prototype.ngOnDestroy=function(){this._styleNodes.forEach(function(e){return n.i(r.a)().remove(e)})},DomSharedStylesHost.decorators=[{type:o.Injectable}],DomSharedStylesHost.ctorParameters=function(){return[{type:void 0,decorators:[{type:o.Inject,args:[i.a]}]}]},DomSharedStylesHost}(s)},function(e,t,n){"use strict";var o=n(1);n.d(t,"b",function(){return r}),n.d(t,"a",function(){return i});var r=(o.__core_private__.RenderDebugInfo,o.__core_private__.ReflectionCapabilities,o.__core_private__.DebugDomRootRenderer),i=(o.__core_private__.reflector,o.__core_private__.NoOpAnimationPlayer);o.__core_private__.AnimationPlayer,o.__core_private__.AnimationSequencePlayer,o.__core_private__.AnimationGroupPlayer,o.__core_private__.AnimationKeyframe,o.__core_private__.AnimationStyles,o.__core_private__.prepareFinalAnimationStyles,o.__core_private__.balanceAnimationKeyframes,o.__core_private__.clearStyles,o.__core_private__.collectAndResolveStyles},function(e,t,n){"use strict";function sanitizeUrl(e){return e=String(e),e.match(i)||e.match(a)?e:(n.i(o.isDevMode)()&&n.i(r.a)().log("WARNING: sanitizing unsafe URL value "+e+" (see http://g.co/ng/security#xss)"),"unsafe:"+e)}function sanitizeSrcset(e){return e=String(e),e.split(",").map(function(e){return sanitizeUrl(e.trim())}).join(", ")}var o=n(1),r=n(23);t.a=sanitizeUrl,t.b=sanitizeSrcset;var i=/^(?:(?:https?|mailto|ftp|tel|file):|[^&:\/?#]*(?:[\/?#]|$))/gi,a=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+\/]+=*$/i},function(e,t,n){"use strict";function toBool(e){return""===e||!!e}var o=n(68),r=n(1),i=n(198),a=n(113);n.d(t,"a",function(){return s}),n.d(t,"b",function(){return u});var s=function(){function RouterLink(e,t,n){this.router=e,this.route=t,this.locationStrategy=n,this.commands=[]}return Object.defineProperty(RouterLink.prototype,"routerLink",{set:function(e){Array.isArray(e)?this.commands=e:this.commands=[e]},enumerable:!0,configurable:!0}),RouterLink.prototype.onClick=function(e,t,n){return!(0===e&&!t&&!n)||(this.router.navigateByUrl(this.urlTree),!1)},Object.defineProperty(RouterLink.prototype,"urlTree",{get:function(){return this.router.createUrlTree(this.commands,{relativeTo:this.route,queryParams:this.queryParams,fragment:this.fragment,preserveQueryParams:toBool(this.preserveQueryParams),preserveFragment:toBool(this.preserveFragment)})},enumerable:!0,configurable:!0}),RouterLink.decorators=[{type:r.Directive,args:[{selector:":not(a)[routerLink]"}]}],RouterLink.ctorParameters=[{type:i.a},{type:a.b},{type:o.LocationStrategy}],RouterLink.propDecorators={queryParams:[{type:r.Input}],fragment:[{type:r.Input}],preserveQueryParams:[{type:r.Input}],preserveFragment:[{type:r.Input}],routerLink:[{type:r.Input}],onClick:[{type:r.HostListener,args:["click",["$event.button","$event.ctrlKey","$event.metaKey"]]}]},RouterLink}(),u=function(){function RouterLinkWithHref(e,t,n){var o=this;this.router=e,this.route=t,this.locationStrategy=n,this.commands=[],this.subscription=e.events.subscribe(function(e){e instanceof i.b&&o.updateTargetUrlAndHref()})}return Object.defineProperty(RouterLinkWithHref.prototype,"routerLink",{set:function(e){Array.isArray(e)?this.commands=e:this.commands=[e]},enumerable:!0,configurable:!0}),RouterLinkWithHref.prototype.ngOnChanges=function(e){this.updateTargetUrlAndHref()},RouterLinkWithHref.prototype.ngOnDestroy=function(){this.subscription.unsubscribe()},RouterLinkWithHref.prototype.onClick=function(e,t,n){return!(0===e&&!t&&!n)||("string"==typeof this.target&&"_self"!=this.target||(this.router.navigateByUrl(this.urlTree),!1))},RouterLinkWithHref.prototype.updateTargetUrlAndHref=function(){this.href=this.locationStrategy.prepareExternalUrl(this.router.serializeUrl(this.urlTree))},Object.defineProperty(RouterLinkWithHref.prototype,"urlTree",{get:function(){return this.router.createUrlTree(this.commands,{relativeTo:this.route,queryParams:this.queryParams,fragment:this.fragment,preserveQueryParams:toBool(this.preserveQueryParams),preserveFragment:toBool(this.preserveFragment)})},enumerable:!0,configurable:!0}),RouterLinkWithHref.decorators=[{type:r.Directive,args:[{selector:"a[routerLink]"}]}],RouterLinkWithHref.ctorParameters=[{type:i.a},{type:a.b},{type:o.LocationStrategy}],RouterLinkWithHref.propDecorators={target:[{type:r.Input}],queryParams:[{type:r.Input}],fragment:[{type:r.Input}],routerLinkOptions:[{type:r.Input}],preserveQueryParams:[{type:r.Input}],preserveFragment:[{type:r.Input}],href:[{type:r.HostBinding}],routerLink:[{type:r.Input}],onClick:[{type:r.HostListener,args:["click",["$event.button","$event.ctrlKey","$event.metaKey"]]}]},RouterLinkWithHref}()},function(e,t,n){"use strict";function findNode(e,t){if(e===t.value)return t;for(var n=0,o=t.children;n<o.length;n++){var r=o[n],i=findNode(e,r);if(i)return i}return null}function findPath(e,t,n){if(n.push(t),e===t.value)return n;for(var o=0,r=t.children;o<r.length;o++){var i=r[o],a=n.slice(0),s=findPath(e,i,a);if(s.length>0)return s}return[]}n.d(t,"a",function(){return o}),n.d(t,"b",function(){return r});var o=function(){function Tree(e){this._root=e}return Object.defineProperty(Tree.prototype,"root",{get:function(){return this._root.value},enumerable:!0,configurable:!0}),Tree.prototype.parent=function(e){var t=this.pathFromRoot(e);return t.length>1?t[t.length-2]:null},Tree.prototype.children=function(e){var t=findNode(e,this._root);return t?t.children.map(function(e){return e.value}):[]},Tree.prototype.firstChild=function(e){var t=findNode(e,this._root);return t&&t.children.length>0?t.children[0].value:null},Tree.prototype.siblings=function(e){var t=findPath(e,this._root,[]);if(t.length<2)return[];var n=t[t.length-2].children.map(function(e){return e.value});return n.filter(function(t){return t!==e})},Tree.prototype.pathFromRoot=function(e){return findPath(e,this._root,[]).map(function(e){return e.value})},Tree}(),r=function(){function TreeNode(e,t){this.value=e,this.children=t}return TreeNode.prototype.toString=function(){return"TreeNode("+this.value+")"},TreeNode}()},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,n){"use strict";var o=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},r=n(0),i=function(e){function ScalarObservable(t,n){e.call(this),this.value=t,this.scheduler=n,this._isScalar=!0,n&&(this._isScalar=!1)}return o(ScalarObservable,e),ScalarObservable.create=function(e,t){return new ScalarObservable(e,t)},ScalarObservable.dispatch=function(e){var t=e.done,n=e.value,o=e.subscriber;return t?void o.complete():(o.next(n),void(o.closed||(e.done=!0,this.schedule(e))))},ScalarObservable.prototype._subscribe=function(e){var t=this.value,n=this.scheduler;return n?n.schedule(ScalarObservable.dispatch,0,{done:!1,value:t,subscriber:e}):(e.next(t),void(e.closed||e.complete()))},ScalarObservable}(r.Observable);t.ScalarObservable=i},function(e,t,n){"use strict";var o=n(495);t.from=o.FromObservable.create},,,function(e,t,n){"use strict";function concatAll(){return this.lift(new o.MergeAllOperator(1))}var o=n(118);t.concatAll=concatAll},function(e,t,n){"use strict";function every(e,t){return this.lift(new i(e,t,this))}var o=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},r=n(3);t.every=every;var i=function(){function EveryOperator(e,t,n){this.predicate=e,this.thisArg=t,this.source=n}return EveryOperator.prototype.call=function(e,t){return t.subscribe(new a(e,this.predicate,this.thisArg,this.source))},EveryOperator}(),a=function(e){function EverySubscriber(t,n,o,r){e.call(this,t),this.predicate=n,this.thisArg=o,this.source=r,this.index=0,this.thisArg=o||this}return o(EverySubscriber,e),EverySubscriber.prototype.notifyComplete=function(e){this.destination.next(e),this.destination.complete()},EverySubscriber.prototype._next=function(e){var t=!1;try{t=this.predicate.call(this.thisArg,e,this.index++,this.source)}catch(n){return void this.destination.error(n)}t||this.notifyComplete(!1)},EverySubscriber.prototype._complete=function(){this.notifyComplete(!0)},EverySubscriber}(r.Subscriber)},,,,,,function(e,t,n){"use strict";var o=n(668);n.d(t,"NgSelectOption",function(){return o.a}),n.d(t,"AbstractFormGroupDirective",function(){return o.b}),n.d(t,"CheckboxControlValueAccessor",function(){return o.c}),n.d(t,"ControlContainer",function(){return o.d}),n.d(t,"NG_VALUE_ACCESSOR",function(){return o.e}),n.d(t,"DefaultValueAccessor",function(){return o.f}),n.d(t,"NgControl",function(){return o.g}),n.d(t,"NgControlStatus",function(){return o.h}),n.d(t,"NgControlStatusGroup",function(){return o.i}),n.d(t,"NgForm",function(){return o.j}),n.d(t,"NgModel",function(){return o.k}),n.d(t,"NgModelGroup",function(){return o.l}),n.d(t,"RadioControlValueAccessor",function(){return o.m}),n.d(t,"FormControlDirective",function(){return o.n}),n.d(t,"FormControlName",function(){return o.o}),n.d(t,"FormGroupDirective",function(){return o.p}),n.d(t,"FormArrayName",function(){return o.q}),n.d(t,"FormGroupName",function(){return o.r}),n.d(t,"AbstractControlDirective",function(){return o.s}),n.d(t,"SelectControlValueAccessor",function(){return o.t}),n.d(t,"SelectMultipleControlValueAccessor",function(){return o.u}),n.d(t,"CheckboxRequiredValidator",function(){return o.v}),n.d(t,"MaxLengthValidator",function(){return o.w}),n.d(t,"MinLengthValidator",function(){return o.x}),n.d(t,"PatternValidator",function(){return o.y}),n.d(t,"RequiredValidator",function(){return o.z}),n.d(t,"FormBuilder",function(){return o.A}),n.d(t,"AbstractControl",function(){return o.B}),n.d(t,"FormArray",function(){return o.C}),n.d(t,"FormControl",function(){return o.D}),n.d(t,"FormGroup",function(){return o.E}),n.d(t,"NG_ASYNC_VALIDATORS",function(){return o.F}),n.d(t,"NG_VALIDATORS",function(){return o.G}),n.d(t,"Validators",function(){return o.H}),n.d(t,"VERSION",function(){return o.I}),n.d(t,"FormsModule",function(){return o.J}),n.d(t,"ReactiveFormsModule",function(){return o.K})},function(e,t,n){"use strict";var o=n(0),r=n(151);o.Observable.prototype.mergeMap=r.mergeMap,o.Observable.prototype.flatMap=r.mergeMap},,,,,,,,,,,,,function(e,t,n){"use strict";var o=n(592),r=n(593),i=n(594),a=n(595),s=n(596),u=n(345),l=n(597);n.d(t,"a",function(){return c}),n.d(t,"b",function(){return o.a}),n.d(t,"c",function(){return r.a}),n.d(t,"d",function(){return i.a}),n.d(t,"e",function(){return a.a}),n.d(t,"f",function(){return a.b}),n.d(t,"g",function(){return s.a}),n.d(t,"h",function(){return u.b}),n.d(t,"i",function(){return u.c}),n.d(t,"j",function(){return u.d}),n.d(t,"k",function(){return l.a});var c=[o.a,r.a,i.a,l.a,s.a,u.b,u.c,u.d,a.a,a.b]},function(e,t,n){"use strict";var o=n(1);n.d(t,"a",function(){return r}),n.d(t,"b",function(){return i}),n.d(t,"c",function(){return a}),n.d(t,"d",function(){return s});var r=function(){function SwitchView(e,t){this._viewContainerRef=e,this._templateRef=t,this._created=!1}return SwitchView.prototype.create=function(){this._created=!0,this._viewContainerRef.createEmbeddedView(this._templateRef)},SwitchView.prototype.destroy=function(){this._created=!1,this._viewContainerRef.clear()},SwitchView.prototype.enforceState=function(e){e&&!this._created?this.create():!e&&this._created&&this.destroy()},SwitchView}(),i=function(){function NgSwitch(){this._defaultUsed=!1,this._caseCount=0,this._lastCaseCheckIndex=0,this._lastCasesMatched=!1}return Object.defineProperty(NgSwitch.prototype,"ngSwitch",{set:function(e){this._ngSwitch=e,0===this._caseCount&&this._updateDefaultCases(!0)},enumerable:!0,configurable:!0}),NgSwitch.prototype._addCase=function(){return this._caseCount++},NgSwitch.prototype._addDefault=function(e){this._defaultViews||(this._defaultViews=[]),this._defaultViews.push(e)},NgSwitch.prototype._matchCase=function(e){var t=e==this._ngSwitch;return this._lastCasesMatched=this._lastCasesMatched||t,this._lastCaseCheckIndex++,this._lastCaseCheckIndex===this._caseCount&&(this._updateDefaultCases(!this._lastCasesMatched),this._lastCaseCheckIndex=0,this._lastCasesMatched=!1),t},NgSwitch.prototype._updateDefaultCases=function(e){if(this._defaultViews&&e!==this._defaultUsed){this._defaultUsed=e;for(var t=0;t<this._defaultViews.length;t++){var n=this._defaultViews[t];n.enforceState(e)}}},NgSwitch.decorators=[{type:o.Directive,args:[{selector:"[ngSwitch]"}]}],NgSwitch.ctorParameters=function(){return[]},NgSwitch.propDecorators={ngSwitch:[{type:o.Input}]},NgSwitch}(),a=function(){function NgSwitchCase(e,t,n){this.ngSwitch=n,n._addCase(),this._view=new r(e,t)}return NgSwitchCase.prototype.ngDoCheck=function(){this._view.enforceState(this.ngSwitch._matchCase(this.ngSwitchCase))},NgSwitchCase.decorators=[{type:o.Directive,args:[{selector:"[ngSwitchCase]"}]}],NgSwitchCase.ctorParameters=function(){return[{type:o.ViewContainerRef},{type:o.TemplateRef},{type:i,decorators:[{type:o.Host}]}]},NgSwitchCase.propDecorators={ngSwitchCase:[{type:o.Input}]},NgSwitchCase}(),s=function(){function NgSwitchDefault(e,t,n){n._addDefault(new r(e,t))}return NgSwitchDefault.decorators=[{type:o.Directive,args:[{selector:"[ngSwitchDefault]"}]}],NgSwitchDefault.ctorParameters=function(){return[{type:o.ViewContainerRef},{type:o.TemplateRef},{type:i,decorators:[{type:o.Host}]}]},NgSwitchDefault}()},function(e,t,n){"use strict";var o=n(603),r=n(604),i=n(605),a=n(606),s=n(607),u=n(608),l=n(609),c=n(610),d=n(611);n.d(t,"a",function(){return p}),n.d(t,"c",function(){return o.a}),n.d(t,"h",function(){return l.c}),n.d(t,"d",function(){return r.a}),n.d(t,"i",function(){return l.a}),n.d(t,"e",function(){return i.a}),n.d(t,"b",function(){return a.a}),n.d(t,"f",function(){return s.a}),n.d(t,"g",function(){return u.a}),n.d(t,"j",function(){return l.b}),n.d(t,"k",function(){return c.a}),n.d(t,"l",function(){return d.a});var p=[o.a,d.a,u.a,s.a,c.a,l.a,l.b,l.c,r.a,i.a,a.a]},function(e,t,n){"use strict";function digitModifier(e){return function(t,n){var o=e(t,n);return 1==o.length?"0"+o:o}}function hourClockExtractor(e){return function(t,n){return e(t,n).split(" ")[1]}}function hourExtractor(e){return function(t,n){return e(t,n).split(" ")[0]}}function intlDateFormat(e,t,n){return new Intl.DateTimeFormat(t,n).format(e).replace(/[\u200e\u200f]/g,"")}function timeZoneGetter(e){var t={hour:"2-digit",hour12:!1,timeZoneName:e};return function(e,n){var o=intlDateFormat(e,n,t);return o?o.substring(3):""}}function hour12Modify(e,t){return e.hour12=t,e}function digitCondition(e,t){var n={};return n[e]=2===t?"2-digit":"numeric",n}function nameCondition(e,t){var n={};return t<4?n[e]=t>1?"short":"narrow":n[e]="long",n}function combine(e){return(t=Object).assign.apply(t,[{}].concat(e));var t}function datePartGetterFactory(e){return function(t,n){return intlDateFormat(t,n,e)}}function dateFormatter(e,t,n){var o=a[e];if(o)return o(t,n);var r=e,l=u.get(r);if(!l){l=[];var c=void 0;for(i.exec(e);e;)c=i.exec(e),c?(l=l.concat(c.slice(1)),e=l.pop()):(l.push(e),e=null);u.set(r,l)}return l.reduce(function(e,o){
var r=s[o];return e+(r?r(t,n):partToTime(o))},"")}function partToTime(e){return"''"===e?"'":e.replace(/(^'|'$)/g,"").replace(/''/g,"'")}n.d(t,"b",function(){return o}),n.d(t,"c",function(){return r}),n.d(t,"a",function(){return l});var o={};o.Decimal=0,o.Percent=1,o.Currency=2,o[o.Decimal]="Decimal",o[o.Percent]="Percent",o[o.Currency]="Currency";var r=function(){function NumberFormatter(){}return NumberFormatter.format=function(e,t,n,r){var i=void 0===r?{}:r,a=i.minimumIntegerDigits,s=i.minimumFractionDigits,u=i.maximumFractionDigits,l=i.currency,c=i.currencyAsSymbol,d=void 0!==c&&c,p={minimumIntegerDigits:a,minimumFractionDigits:s,maximumFractionDigits:u,style:o[n].toLowerCase()};return n==o.Currency&&(p.currency=l,p.currencyDisplay=d?"symbol":"code"),new Intl.NumberFormat(t,p).format(e)},NumberFormatter}(),i=/((?:[^yMLdHhmsazZEwGjJ']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|L+|d+|H+|h+|J+|j+|m+|s+|a|z|Z|G+|w+))(.*)/,a={yMMMdjms:datePartGetterFactory(combine([digitCondition("year",1),nameCondition("month",3),digitCondition("day",1),digitCondition("hour",1),digitCondition("minute",1),digitCondition("second",1)])),yMdjm:datePartGetterFactory(combine([digitCondition("year",1),digitCondition("month",1),digitCondition("day",1),digitCondition("hour",1),digitCondition("minute",1)])),yMMMMEEEEd:datePartGetterFactory(combine([digitCondition("year",1),nameCondition("month",4),nameCondition("weekday",4),digitCondition("day",1)])),yMMMMd:datePartGetterFactory(combine([digitCondition("year",1),nameCondition("month",4),digitCondition("day",1)])),yMMMd:datePartGetterFactory(combine([digitCondition("year",1),nameCondition("month",3),digitCondition("day",1)])),yMd:datePartGetterFactory(combine([digitCondition("year",1),digitCondition("month",1),digitCondition("day",1)])),jms:datePartGetterFactory(combine([digitCondition("hour",1),digitCondition("second",1),digitCondition("minute",1)])),jm:datePartGetterFactory(combine([digitCondition("hour",1),digitCondition("minute",1)]))},s={yyyy:datePartGetterFactory(digitCondition("year",4)),yy:datePartGetterFactory(digitCondition("year",2)),y:datePartGetterFactory(digitCondition("year",1)),MMMM:datePartGetterFactory(nameCondition("month",4)),MMM:datePartGetterFactory(nameCondition("month",3)),MM:datePartGetterFactory(digitCondition("month",2)),M:datePartGetterFactory(digitCondition("month",1)),LLLL:datePartGetterFactory(nameCondition("month",4)),L:datePartGetterFactory(nameCondition("month",1)),dd:datePartGetterFactory(digitCondition("day",2)),d:datePartGetterFactory(digitCondition("day",1)),HH:digitModifier(hourExtractor(datePartGetterFactory(hour12Modify(digitCondition("hour",2),!1)))),H:hourExtractor(datePartGetterFactory(hour12Modify(digitCondition("hour",1),!1))),hh:digitModifier(hourExtractor(datePartGetterFactory(hour12Modify(digitCondition("hour",2),!0)))),h:hourExtractor(datePartGetterFactory(hour12Modify(digitCondition("hour",1),!0))),jj:datePartGetterFactory(digitCondition("hour",2)),j:datePartGetterFactory(digitCondition("hour",1)),mm:digitModifier(datePartGetterFactory(digitCondition("minute",2))),m:datePartGetterFactory(digitCondition("minute",1)),ss:digitModifier(datePartGetterFactory(digitCondition("second",2))),s:datePartGetterFactory(digitCondition("second",1)),sss:datePartGetterFactory(digitCondition("second",3)),EEEE:datePartGetterFactory(nameCondition("weekday",4)),EEE:datePartGetterFactory(nameCondition("weekday",3)),EE:datePartGetterFactory(nameCondition("weekday",2)),E:datePartGetterFactory(nameCondition("weekday",1)),a:hourClockExtractor(datePartGetterFactory(hour12Modify(digitCondition("hour",1),!0))),Z:timeZoneGetter("short"),z:timeZoneGetter("long"),ww:datePartGetterFactory({}),w:datePartGetterFactory({}),G:datePartGetterFactory(nameCondition("era",1)),GG:datePartGetterFactory(nameCondition("era",2)),GGG:datePartGetterFactory(nameCondition("era",3)),GGGG:datePartGetterFactory(nameCondition("era",4))},u=new Map,l=function(){function DateFormatter(){}return DateFormatter.format=function(e,t,n){return dateFormatter(n,e,t)},DateFormatter}()},function(e,t,n){"use strict";n.d(t,"a",function(){return a}),n.d(t,"c",function(){return s}),n.d(t,"g",function(){return u}),n.d(t,"f",function(){return l}),n.d(t,"i",function(){return c}),n.d(t,"b",function(){return d}),n.d(t,"h",function(){return p}),n.d(t,"d",function(){return g}),n.d(t,"j",function(){return f}),n.d(t,"e",function(){return h});var o=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},r=function(){function AnimationAst(){this.startTime=0,this.playTime=0}return AnimationAst.prototype.visit=function(e,t){},AnimationAst}(),i=function(e){function AnimationStateAst(){e.apply(this,arguments)}return o(AnimationStateAst,e),AnimationStateAst.prototype.visit=function(e,t){},AnimationStateAst}(r),a=function(e){function AnimationEntryAst(t,n,o){e.call(this),this.name=t,this.stateDeclarations=n,this.stateTransitions=o}return o(AnimationEntryAst,e),AnimationEntryAst.prototype.visit=function(e,t){return e.visitAnimationEntry(this,t)},AnimationEntryAst}(r),s=function(e){function AnimationStateDeclarationAst(t,n){e.call(this),this.stateName=t,this.styles=n}return o(AnimationStateDeclarationAst,e),AnimationStateDeclarationAst.prototype.visit=function(e,t){return e.visitAnimationStateDeclaration(this,t)},AnimationStateDeclarationAst}(i),u=function(){function AnimationStateTransitionExpression(e,t){this.fromState=e,this.toState=t}return AnimationStateTransitionExpression}(),l=function(e){function AnimationStateTransitionAst(t,n){e.call(this),this.stateChanges=t,this.animation=n}return o(AnimationStateTransitionAst,e),AnimationStateTransitionAst.prototype.visit=function(e,t){return e.visitAnimationStateTransition(this,t)},AnimationStateTransitionAst}(i),c=function(e){function AnimationStepAst(t,n,o,r,i){e.call(this),this.startingStyles=t,this.keyframes=n,this.duration=o,this.delay=r,this.easing=i}return o(AnimationStepAst,e),AnimationStepAst.prototype.visit=function(e,t){return e.visitAnimationStep(this,t)},AnimationStepAst}(r),d=function(e){function AnimationStylesAst(t){e.call(this),this.styles=t}return o(AnimationStylesAst,e),AnimationStylesAst.prototype.visit=function(e,t){return e.visitAnimationStyles(this,t)},AnimationStylesAst}(r),p=function(e){function AnimationKeyframeAst(t,n){e.call(this),this.offset=t,this.styles=n}return o(AnimationKeyframeAst,e),AnimationKeyframeAst.prototype.visit=function(e,t){return e.visitAnimationKeyframe(this,t)},AnimationKeyframeAst}(r),g=function(e){function AnimationWithStepsAst(t){e.call(this),this.steps=t}return o(AnimationWithStepsAst,e),AnimationWithStepsAst}(r),f=function(e){function AnimationGroupAst(t){e.call(this,t)}return o(AnimationGroupAst,e),AnimationGroupAst.prototype.visit=function(e,t){return e.visitAnimationGroup(this,t)},AnimationGroupAst}(g),h=function(e){function AnimationSequenceAst(t){e.call(this,t)}return o(AnimationSequenceAst,e),AnimationSequenceAst.prototype.visit=function(e,t){return e.visitAnimationSequence(this,t)},AnimationSequenceAst}(g)},function(e,t,n){"use strict";function _compareToAnimationStateExpr(e,t){var n=i.f(a.G);switch(t){case a.G:return e.equals(n);case a.D:return i.f(!0);default:return e.equals(i.f(t))}}function _isEndStateAnimateStep(e){if(e instanceof s.i&&e.duration>0&&2==e.keyframes.length){var t=_getStylesArray(e.keyframes[0])[0],n=_getStylesArray(e.keyframes[1])[0];return 0===Object.keys(t).length&&0===Object.keys(n).length}return!1}function _getStylesArray(e){return e.styles.styles}var o=n(7),r=n(19),i=n(10),a=n(17),s=n(348);n.d(t,"a",function(){return l});var u=function(){function AnimationEntryCompileResult(e,t,n){this.name=e,this.statements=t,this.fnExp=n}return AnimationEntryCompileResult}(),l=function(){function AnimationCompiler(){}return AnimationCompiler.prototype.compile=function(e,t){return t.map(function(t){var n=e+"_"+t.name,o=new M(t.name,n);return o.build(t)})},AnimationCompiler}(),c=i.g("element"),d=i.g("defaultStateStyles"),p=i.g("view"),g=p.prop("animationContext"),f=p.prop("renderer"),h=i.g("currentState"),m=i.g("nextState"),y=i.g("player"),b=i.g("totalTime"),v=i.g("startStateStyles"),_=i.g("endStateStyles"),E=i.g("collectedStyles"),T=i.g("previousPlayers"),S=i.o([]),A=i.n([]),M=function(){function _AnimationBuilder(e,t){this.animationName=e,this._fnVarName=t+"_factory",this._statesMapVarName=t+"_states",this._statesMapVar=i.g(this._statesMapVarName)}return _AnimationBuilder.prototype.visitAnimationStyles=function(e,t){var o=[];return t.isExpectingFirstStyleStep&&(o.push(v),t.isExpectingFirstStyleStep=!1),e.styles.forEach(function(e){var t=Object.keys(e).map(function(t){return[t,i.f(e[t])]});o.push(i.o(t,null,!0))}),i.d(n.i(r.e)(r.b.AnimationStyles)).instantiate([i.d(n.i(r.e)(r.b.collectAndResolveStyles)).callFn([E,i.n(o)])])},_AnimationBuilder.prototype.visitAnimationKeyframe=function(e,t){return i.d(n.i(r.e)(r.b.AnimationKeyframe)).instantiate([i.f(e.offset),e.styles.visit(this,t)])},_AnimationBuilder.prototype.visitAnimationStep=function(e,t){var n=this;if(t.endStateAnimateStep===e)return this._visitEndStateAnimation(e,t);var o=e.startingStyles.visit(this,t),r=e.keyframes.map(function(e){return e.visit(n,t)});return this._callAnimateMethod(e,o,i.n(r),t)},_AnimationBuilder.prototype._visitEndStateAnimation=function(e,t){var o=this,a=e.startingStyles.visit(this,t),s=e.keyframes.map(function(e){return e.visit(o,t)}),u=i.d(n.i(r.e)(r.b.balanceAnimationKeyframes)).callFn([E,_,i.n(s)]);return this._callAnimateMethod(e,a,u,t)},_AnimationBuilder.prototype._callAnimateMethod=function(e,t,n,o){var r=A;return o.isExpectingFirstAnimateStep&&(r=T,o.isExpectingFirstAnimateStep=!1),o.totalTransitionTime+=e.duration+e.delay,f.callMethod("animate",[c,t,n,i.f(e.duration),i.f(e.delay),i.f(e.easing),r])},_AnimationBuilder.prototype.visitAnimationSequence=function(e,t){var o=this,a=e.steps.map(function(e){return e.visit(o,t)});return i.d(n.i(r.e)(r.b.AnimationSequencePlayer)).instantiate([i.n(a)])},_AnimationBuilder.prototype.visitAnimationGroup=function(e,t){var o=this,a=e.steps.map(function(e){return e.visit(o,t)});return i.d(n.i(r.e)(r.b.AnimationGroupPlayer)).instantiate([i.n(a)])},_AnimationBuilder.prototype.visitAnimationStateDeclaration=function(e,t){var n={};_getStylesArray(e).forEach(function(e){Object.keys(e).forEach(function(t){n[t]=e[t]})}),t.stateMap.registerState(e.stateName,n)},_AnimationBuilder.prototype.visitAnimationStateTransition=function(e,t){var n=e.animation.steps,o=n[n.length-1];_isEndStateAnimateStep(o)&&(t.endStateAnimateStep=o),t.totalTransitionTime=0,t.isExpectingFirstStyleStep=!0,t.isExpectingFirstAnimateStep=!0;var r=[];e.stateChanges.forEach(function(e){r.push(_compareToAnimationStateExpr(h,e.fromState).and(_compareToAnimationStateExpr(m,e.toState))),e.fromState!=a.D&&t.stateMap.registerState(e.fromState),e.toState!=a.D&&t.stateMap.registerState(e.toState)});var s=e.animation.visit(this,t),u=r.reduce(function(e,t){return e.or(t)}),l=y.equals(i.k).and(u),c=y.set(s).toStmt(),d=b.set(i.f(t.totalTransitionTime)).toStmt();return new i.e(l,[c,d])},_AnimationBuilder.prototype.visitAnimationEntry=function(e,t){var o=this;e.stateDeclarations.forEach(function(e){return e.visit(o,t)}),t.stateMap.registerState(a.L,{});var s=[];s.push(T.set(g.callMethod("getAnimationPlayers",[c,m.equals(i.f(a.G)).conditional(i.k,i.f(this.animationName))])).toDeclStmt()),s.push(E.set(S).toDeclStmt()),s.push(y.set(i.k).toDeclStmt()),s.push(b.set(i.f(0)).toDeclStmt()),s.push(d.set(this._statesMapVar.key(i.f(a.L))).toDeclStmt()),s.push(v.set(this._statesMapVar.key(h)).toDeclStmt()),s.push(new i.e(v.equals(i.k),[v.set(d).toStmt()])),s.push(_.set(this._statesMapVar.key(m)).toDeclStmt()),s.push(new i.e(_.equals(i.k),[_.set(d).toStmt()]));var u=i.d(n.i(r.e)(r.b.renderStyles));return e.stateTransitions.forEach(function(e){return s.push(e.visit(o,t))}),s.push(new i.e(y.equals(i.k),[y.set(i.d(n.i(r.e)(r.b.NoOpAnimationPlayer)).instantiate([])).toStmt()])),s.push(y.callMethod("onDone",[i.s([],[y.callMethod("destroy",[]).toStmt(),u.callFn([c,f,i.d(n.i(r.e)(r.b.prepareFinalAnimationStyles)).callFn([v,_])]).toStmt()])]).toStmt()),s.push(i.d(n.i(r.e)(r.b.AnimationSequencePlayer)).instantiate([T]).callMethod("destroy",[]).toStmt()),s.push(u.callFn([c,f,i.d(n.i(r.e)(r.b.clearStyles)).callFn([v])]).toStmt()),s.push(g.callMethod("queueAnimation",[c,i.f(this.animationName),y]).toStmt()),s.push(new i.t(i.d(n.i(r.e)(r.b.AnimationTransition)).instantiate([y,h,m,b]))),i.s([new i.r(p.name,i.B(n.i(r.e)(r.b.AppView),[i.h])),new i.r(c.name,i.h),new i.r(h.name,i.h),new i.r(m.name,i.h)],s,i.B(n.i(r.e)(r.b.AnimationTransition)))},_AnimationBuilder.prototype.build=function(e){var t=new C,r=e.visit(this,t).toDeclStmt(this._fnVarName),a=i.g(this._fnVarName),s=[];Object.keys(t.stateMap.states).forEach(function(e){var r=t.stateMap.states[e],a=S;if(n.i(o.f)(r)){var u=[];Object.keys(r).forEach(function(e){u.push([e,i.f(r[e])])}),a=i.o(u,null,!0)}s.push([e,a])});var l=this._statesMapVar.set(i.o(s,null,!0)).toDeclStmt(),c=[l,r];return new u(this.animationName,c,a)},_AnimationBuilder}(),C=function(){function _AnimationBuilderContext(){this.stateMap=new k,this.endStateAnimateStep=null,this.isExpectingFirstStyleStep=!1,this.isExpectingFirstAnimateStep=!1,this.totalTransitionTime=0}return _AnimationBuilderContext}(),k=function(){function _AnimationBuilderStateMap(){this._states={}}return Object.defineProperty(_AnimationBuilderStateMap.prototype,"states",{get:function(){return this._states},enumerable:!0,configurable:!0}),_AnimationBuilderStateMap.prototype.registerState=function(e,t){void 0===t&&(t=null);var n=this._states[e];n||(this._states[e]=t)},_AnimationBuilderStateMap}()},function(e,t,n){"use strict";function serializeSummaries(e,t,n,r,i){var a=new u(e);r.forEach(function(e){return a.addOrMergeSummary({symbol:e.symbol,metadata:e.metadata})});for(var s=0;s<a.symbols.length;s++){var l=a.symbols[s];if(!e.isSourceFile(l.filePath)){var c=t.resolveSummary(l);if(!c){var d=n.resolveSymbol(l);d&&(c={symbol:d.symbol,metadata:d.metadata})}c&&a.addOrMergeSummary(c)}}return i.forEach(function(n){if(a.addOrMergeSummary({symbol:n.type.reference,metadata:{__symbolic:"class"},type:n}),n.summaryKind===o.q.NgModule){var r=n;r.exportedDirectives.concat(r.exportedPipes).forEach(function(n){var o=n.reference;e.isSourceFile(o.filePath)||a.addOrMergeSummary(t.resolveSummary(o))})}}),a.serialize()}function deserializeSummaries(e,t){var n=new l(e);return n.deserialize(t)}function summaryFileName(e){var t=e.replace(s,"");return t+".ngsummary.json"}var o=n(14),r=n(32),i=n(71);t.a=serializeSummaries,t.c=deserializeSummaries,t.b=summaryFileName;var a=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},s=/(\.ts|\.d\.ts|\.js|\.jsx|\.tsx)$/,u=function(e){function Serializer(t){e.call(this),this.host=t,this.symbols=[],this.indexBySymbol=new Map,this.processedSummaryBySymbol=new Map,this.processedSummaries=[]}return a(Serializer,e),Serializer.prototype.addOrMergeSummary=function(e){var t=e.metadata;t&&"class"===t.__symbolic&&(t={__symbolic:"class",statics:t.statics});var n=this.processedSummaryBySymbol.get(e.symbol);n||(n=this.processValue({symbol:e.symbol}),this.processedSummaries.push(n),this.processedSummaryBySymbol.set(e.symbol,n)),null==n.metadata&&null!=t&&(n.metadata=this.processValue(t)),null==n.type&&null!=e.type&&(n.type=this.processValue(e.type))},Serializer.prototype.serialize=function(){var e=this;return JSON.stringify({summaries:this.processedSummaries,symbols:this.symbols.map(function(t,n){return{__symbol:n,name:t.name,filePath:e.host.getOutputFileName(t.filePath)}})})},Serializer.prototype.processValue=function(e){return n.i(r.f)(e,this,null)},Serializer.prototype.visitOther=function(e,t){if(e instanceof i.a){var n=this.indexBySymbol.get(e);return null==n&&(n=this.indexBySymbol.size,this.indexBySymbol.set(e,n),this.symbols.push(e)),{__symbol:n}}},Serializer}(r.g),l=function(e){function Deserializer(t){e.call(this),this.symbolCache=t}return a(Deserializer,e),Deserializer.prototype.deserialize=function(e){var t=this,o=JSON.parse(e);return this.symbols=o.symbols.map(function(e){return t.symbolCache.get(e.filePath,e.name)}),n.i(r.f)(o.summaries,this,null)},Deserializer.prototype.visitStringMap=function(t,n){return"__symbol"in t?this.symbols[t.__symbol]:e.prototype.visitStringMap.call(this,t,n)},Deserializer}(r.g)},function(e,t,n){"use strict";function assertArrayOfStrings(e,t){if(n.i(o.isDevMode)()&&!n.i(r.g)(t)){if(!Array.isArray(t))throw new Error("Expected '"+e+"' to be an array of strings.");for(var i=0;i<t.length;i+=1)if("string"!=typeof t[i])throw new Error("Expected '"+e+"' to be an array of strings.")}}function assertInterpolationSymbols(e,t){if(n.i(r.f)(t)&&(!Array.isArray(t)||2!=t.length))throw new Error("Expected '"+e+"' to be an array, [start, end].");if(n.i(o.isDevMode)()&&!n.i(r.g)(t)){var a=t[0],s=t[1];i.forEach(function(e){if(e.test(a)||e.test(s))throw new Error("['"+a+"', '"+s+"'] contains unusable interpolation symbol.")})}}var o=n(1),r=n(7);t.b=assertArrayOfStrings,t.a=assertInterpolationSymbols;var i=[/^\s*$/,/[<>]/,/^[{}]$/,/&(#|[a-z])/i,/^\/\//]},function(e,t,n){"use strict";function createCheckBindingField(e){var t=""+e.fields.length,a=createBindFieldExpr(t);return e.fields.push(new r.a(a.name,null,[r.b.Private])),e.ctorStmts.push(r.c.prop(a.name).set(r.d(n.i(o.e)(o.b.UNINITIALIZED))).toStmt()),new i(a,t)}function createCheckBindingStmt(e,t,i,a){var s=r.d(n.i(o.e)(o.b.checkBinding)).callFn([i,t,e.currValExpr]);return e.forceUpdate&&(s=e.forceUpdate.or(s)),e.stmts.concat([new r.e(s,a.concat([r.c.prop(t.name).set(e.currValExpr).toStmt()]))])}function createBindFieldExpr(e){return r.c.prop("_expr_"+e)}var o=n(19),r=n(10);t.a=createCheckBindingField,t.b=createCheckBindingStmt;var i=function(){function CheckBindingField(e,t){this.expression=e,this.bindingId=t}return CheckBindingField}()},function(e,t,n){"use strict";function writeToRenderer(e,t,o,s,l,c){var d=[],p=e.prop("renderer");switch(s=sanitizedValue(e,t,s,c),t.type){case u.e.Property:l&&d.push(a.d(n.i(i.e)(i.b.setBindingDebugInfo)).callFn([p,o,a.f(t.name),s]).toStmt()),d.push(p.callMethod("setElementProperty",[o,a.f(t.name),s]).toStmt());break;case u.e.Attribute:s=s.isBlank().conditional(a.k,s.callMethod("toString",[])),d.push(p.callMethod("setElementAttribute",[o,a.f(t.name),s]).toStmt());break;case u.e.Class:d.push(p.callMethod("setElementClass",[o,a.f(t.name),s]).toStmt());break;case u.e.Style:var g=s.callMethod("toString",[]);n.i(r.f)(t.unit)&&(g=g.plus(a.f(t.unit))),s=s.isBlank().conditional(a.k,g),d.push(p.callMethod("setElementStyle",[o,a.f(t.name),s]).toStmt());break;case u.e.Animation:throw new Error("Illegal state: Should not come here!")}return d}function sanitizedValue(e,t,r,a){if(t.securityContext===o.SecurityContext.NONE)return r;if(t.needsRuntimeSecurityContext||(a=n.i(l.b)(i.b.SecurityContext,t.securityContext)),!a)throw new Error("internal error, no SecurityContext given "+t.name);var s=e.prop("viewUtils").prop("sanitizer"),u=[a,r];return s.callMethod("sanitize",u)}function triggerAnimation(e,t,o,r,l,c,d,p){var g=[],f=[],h=o.name,m=t.prop("componentType").prop("animations").key(a.f(h)),y=a.f(s.G),b=a.d(n.i(i.e)(i.b.UNINITIALIZED)),v=a.g("animationTransition_"+h);f.push(v.set(m.callFn([e,c,p.equals(b).conditional(y,p),d.equals(b).conditional(y,d)])).toDeclStmt()),g.push(v.set(m.callFn([e,c,p,y])).toDeclStmt());var _=[],E=r.find(function(e){return e.isAnimation&&e.name==h&&"start"==e.phase});E&&_.push(v.callMethod("onStart",[l.callMethod(a.x.Bind,[e,a.f(u.f.calcFullName(h,null,"start"))])]).toStmt());var T=r.find(function(e){return e.isAnimation&&e.name==h&&"done"==e.phase});return T&&_.push(v.callMethod("onDone",[l.callMethod(a.x.Bind,[e,a.f(u.f.calcFullName(h,null,"done"))])]).toStmt()),f.push.apply(f,_),g.push.apply(g,_),{updateStmts:f,detachStmts:g}}var o=n(1),r=n(7),i=n(19),a=n(10),s=n(17),u=n(48),l=n(46);t.b=writeToRenderer,t.a=triggerAnimation},function(e,t,n){"use strict";function digest(e){return sha1(serializeNodes(e.nodes).join("")+("["+e.meaning+"]"))}function decimalDigest(e){var t=new a,n=e.nodes.map(function(e){return e.visit(t,null)});return computeMsgId(n.join(""),e.meaning)}function serializeNodes(e){return e.map(function(e){return e.visit(i,null)})}function sha1(e){var t=utf8Encode(e),n=stringToWords32(t,s.Big),o=8*t.length,r=new Array(80),i=[1732584193,4023233417,2562383102,271733878,3285377520],a=i[0],u=i[1],l=i[2],c=i[3],d=i[4];n[o>>5]|=128<<24-o%32,n[(o+64>>9<<4)+15]=o;for(var p=0;p<n.length;p+=16){for(var g=[a,u,l,c,d],f=g[0],h=g[1],m=g[2],y=g[3],b=g[4],v=0;v<80;v++){v<16?r[v]=n[p+v]:r[v]=rol32(r[v-3]^r[v-8]^r[v-14]^r[v-16],1);var _=fk(v,u,l,c),E=_[0],T=_[1],S=[rol32(a,5),E,d,T,r[v]].reduce(add32);A=[c,l,rol32(u,30),a,S],d=A[0],c=A[1],l=A[2],u=A[3],a=A[4]}M=[add32(a,f),add32(u,h),add32(l,m),add32(c,y),add32(d,b)],a=M[0],u=M[1],l=M[2],c=M[3],d=M[4]}return byteStringToHexString(words32ToByteString([a,u,l,c,d]));var A,M}function fk(e,t,n,o){return e<20?[t&n|~t&o,1518500249]:e<40?[t^n^o,1859775393]:e<60?[t&n|t&o|n&o,2400959708]:[t^n^o,3395469782]}function fingerprint(e){var t=utf8Encode(e),n=[hash32(t,0),hash32(t,102072)],o=n[0],r=n[1];return 0!=o||0!=r&&1!=r||(o=319790063^o,r^=-1801410264),[o,r]}function computeMsgId(e,t){var n=fingerprint(e),o=n[0],r=n[1];if(t){var i=fingerprint(t),a=i[0],s=i[1];u=add64(rol64([o,r],1),[a,s]),o=u[0],r=u[1]}return byteStringToDecString(words32ToByteString([2147483647&o,r]));var u}function hash32(e,t){var n,o=[2654435769,2654435769],r=o[0],i=o[1],a=e.length;for(n=0;n+12<=a;n+=12)r=add32(r,wordAt(e,n,s.Little)),i=add32(i,wordAt(e,n+4,s.Little)),t=add32(t,wordAt(e,n+8,s.Little)),u=mix([r,i,t]),r=u[0],i=u[1],t=u[2];return r=add32(r,wordAt(e,n,s.Little)),i=add32(i,wordAt(e,n+4,s.Little)),t=add32(t,a),t=add32(t,wordAt(e,n+8,s.Little)<<8),mix([r,i,t])[2];var u}function mix(e){var t=e[0],n=e[1],o=e[2];return t=sub32(t,n),t=sub32(t,o),t^=o>>>13,n=sub32(n,o),n=sub32(n,t),n^=t<<8,o=sub32(o,t),o=sub32(o,n),o^=n>>>13,t=sub32(t,n),t=sub32(t,o),t^=o>>>12,n=sub32(n,o),n=sub32(n,t),n^=t<<16,o=sub32(o,t),o=sub32(o,n),o^=n>>>5,t=sub32(t,n),t=sub32(t,o),t^=o>>>3,n=sub32(n,o),n=sub32(n,t),n^=t<<10,o=sub32(o,t),o=sub32(o,n),o^=n>>>15,[t,n,o]}function utf8Encode(e){for(var t="",n=0;n<e.length;n++){var o=e.charCodeAt(n);if(o>=55296&&o<=56319&&e.length>n+1){var r=e.charCodeAt(n+1);r>=56320&&r<=57343&&(n++,o=(o-55296<<10)+r-56320+65536)}o<=127?t+=String.fromCharCode(o):o<=2047?t+=String.fromCharCode(o>>6&31|192,63&o|128):o<=65535?t+=String.fromCharCode(o>>12|224,o>>6&63|128,63&o|128):o<=2097151&&(t+=String.fromCharCode(o>>18&7|240,o>>12&63|128,o>>6&63|128,63&o|128))}return t}function add32(e,t){return add32to64(e,t)[1]}function add32to64(e,t){var n=(65535&e)+(65535&t),o=(e>>>16)+(t>>>16)+(n>>>16);return[o>>>16,o<<16|65535&n]}function add64(e,t){var n=e[0],o=e[1],r=t[0],i=t[1],a=add32to64(o,i),s=a[0],u=a[1],l=add32(add32(n,r),s);return[l,u]}function sub32(e,t){var n=(65535&e)-(65535&t),o=(e>>16)-(t>>16)+(n>>16);return o<<16|65535&n}function rol32(e,t){return e<<t|e>>>32-t}function rol64(e,t){var n=e[0],o=e[1],r=n<<t|o>>>32-t,i=o<<t|n>>>32-t;return[r,i]}function stringToWords32(e,t){for(var n=Array(e.length+3>>>2),o=0;o<n.length;o++)n[o]=wordAt(e,4*o,t);return n}function byteAt(e,t){return t>=e.length?0:255&e.charCodeAt(t)}function wordAt(e,t,n){var o=0;if(n===s.Big)for(var r=0;r<4;r++)o+=byteAt(e,t+r)<<24-8*r;else for(var r=0;r<4;r++)o+=byteAt(e,t+r)<<8*r;return o}function words32ToByteString(e){return e.reduce(function(e,t){return e+word32ToByteString(t)},"")}function word32ToByteString(e){for(var t="",n=0;n<4;n++)t+=String.fromCharCode(e>>>8*(3-n)&255);return t}function byteStringToHexString(e){for(var t="",n=0;n<e.length;n++){var o=byteAt(e,n);t+=(o>>>4).toString(16)+(15&o).toString(16)}return t.toLowerCase()}function byteStringToDecString(e){for(var t="",n="1",o=e.length-1;o>=0;o--)t=addBigInt(t,numberTimesBigInt(byteAt(e,o),n)),n=numberTimesBigInt(256,n);return t.split("").reverse().join("")}function addBigInt(e,t){for(var n="",o=Math.max(e.length,t.length),r=0,i=0;r<o||i;r++){var a=i+ +(e[r]||0)+ +(t[r]||0);a>=10?(i=1,n+=a-10):(i=0,n+=a)}return n}function numberTimesBigInt(e,t){for(var n="",o=t;0!==e;e>>>=1)1&e&&(n=addBigInt(n,o)),o=addBigInt(o,o);return n}t.a=digest,t.b=decimalDigest;var o=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},r=function(){function _SerializerVisitor(){}return _SerializerVisitor.prototype.visitText=function(e,t){return e.value},_SerializerVisitor.prototype.visitContainer=function(e,t){var n=this;return"["+e.children.map(function(e){return e.visit(n)}).join(", ")+"]"},_SerializerVisitor.prototype.visitIcu=function(e,t){var n=this,o=Object.keys(e.cases).map(function(t){return t+" {"+e.cases[t].visit(n)+"}"});return"{"+e.expression+", "+e.type+", "+o.join(", ")+"}"},_SerializerVisitor.prototype.visitTagPlaceholder=function(e,t){var n=this;return e.isVoid?'<ph tag name="'+e.startName+'"/>':'<ph tag name="'+e.startName+'">'+e.children.map(function(e){return e.visit(n)}).join(", ")+'</ph name="'+e.closeName+'">'},_SerializerVisitor.prototype.visitPlaceholder=function(e,t){return e.value?'<ph name="'+e.name+'">'+e.value+"</ph>":'<ph name="'+e.name+'"/>'},_SerializerVisitor.prototype.visitIcuPlaceholder=function(e,t){return'<ph icu name="'+e.name+'">'+e.value.visit(this)+"</ph>"},_SerializerVisitor}(),i=new r,a=function(e){function _SerializerIgnoreIcuExpVisitor(){e.apply(this,arguments)}return o(_SerializerIgnoreIcuExpVisitor,e),_SerializerIgnoreIcuExpVisitor.prototype.visitIcu=function(e,t){var n=this,o=Object.keys(e.cases).map(function(t){return t+" {"+e.cases[t].visit(n)+"}"});return"{"+e.type+", "+o.join(", ")+"}"},_SerializerIgnoreIcuExpVisitor}(r),s={};s.Little=0,s.Big=1,s[s.Little]="Little",s[s.Big]="Big"},function(e,t,n){"use strict";function extractMessages(e,t,n,o){var r=new g(n,o);return r.extract(e,t)}function mergeTranslations(e,t,n,o,r){var i=new g(o,r);return i.merge(e,t,n)}function _isOpeningComment(e){return e instanceof o.a&&e.value&&e.value.startsWith("i18n")}function _isClosingComment(e){return e instanceof o.a&&e.value&&"/i18n"===e.value}function _getI18nAttr(e){return e.attrs.find(function(e){return e.name===u})||null}function _splitMeaningAndDesc(e){if(!e)return["",""];var t=e.indexOf("|");return t==-1?["",e]:[e.slice(0,t),e.slice(t+1)]}var o=n(74),r=n(107),i=n(167),a=n(619),s=n(169);t.b=extractMessages,t.a=mergeTranslations;var u="i18n",l="i18n-",c=/^i18n:?/,d=function(){function ExtractionResult(e,t){this.messages=e,this.errors=t}return ExtractionResult}(),p={};p.Extract=0,p.Merge=1,p[p.Extract]="Extract",p[p.Merge]="Merge";var g=function(){function _Visitor(e,t){this._implicitTags=e,this._implicitAttrs=t}return _Visitor.prototype.extract=function(e,t){var n=this;return this._init(p.Extract,t),e.forEach(function(e){return e.visit(n,null)}),this._inI18nBlock&&this._reportError(e[e.length-1],"Unclosed block"),new d(this._messages,this._errors)},_Visitor.prototype.merge=function(e,t,n){this._init(p.Merge,n),this._translations=t;var i=new o.e("wrapper",[],e,null,null,null),a=i.visit(this,null);return this._inI18nBlock&&this._reportError(e[e.length-1],"Unclosed block"),new r.a(a.children,this._errors)},_Visitor.prototype.visitExpansionCase=function(e,t){var n=o.g(this,e.expression,t);if(this._mode===p.Merge)return new o.c(e.value,n,e.sourceSpan,e.valueSourceSpan,e.expSourceSpan)},_Visitor.prototype.visitExpansion=function(e,t){this._mayBeAddBlockChildren(e);var n=this._inIcu;this._inIcu||(this._isInTranslatableSection&&this._addMessage([e]),this._inIcu=!0);var r=o.g(this,e.cases,t);return this._mode===p.Merge&&(e=new o.b(e.switchValue,e.type,r,e.sourceSpan,e.switchValueSourceSpan)),this._inIcu=n,e},_Visitor.prototype.visitComment=function(e,t){var n=_isOpeningComment(e);if(n&&this._isInTranslatableSection)return void this._reportError(e,"Could not start a block inside a translatable section");var r=_isClosingComment(e);if(r&&!this._inI18nBlock)return void this._reportError(e,"Trying to close an unopened block");if(!this._inI18nNode&&!this._inIcu)if(this._inI18nBlock){if(r){if(this._depth==this._blockStartDepth){this._closeTranslatableSection(e,this._blockChildren),this._inI18nBlock=!1;var i=this._addMessage(this._blockChildren,this._blockMeaningAndDesc),a=this._translateMessage(e,i);return o.g(this,a)}return void this._reportError(e,"I18N blocks should not cross element boundaries")}}else n&&(this._inI18nBlock=!0,this._blockStartDepth=this._depth,this._blockChildren=[],this._blockMeaningAndDesc=e.value.replace(c,"").trim(),this._openTranslatableSection(e))},_Visitor.prototype.visitText=function(e,t){return this._isInTranslatableSection&&this._mayBeAddBlockChildren(e),e},_Visitor.prototype.visitElement=function(e,t){var n=this;this._mayBeAddBlockChildren(e),this._depth++;var r,i=this._inI18nNode,a=this._inImplicitNode,s=[],u=_getI18nAttr(e),l=u?u.value:"",c=this._implicitTags.some(function(t){return e.name===t})&&!this._inIcu&&!this._isInTranslatableSection,d=!a&&c;if(this._inImplicitNode=a||c,this._isInTranslatableSection||this._inIcu)(u||d)&&this._reportError(e,"Could not mark an element as translatable inside a translatable section"),this._mode==p.Extract&&o.g(this,e.children);else{if(u||d){this._inI18nNode=!0;var g=this._addMessage(e.children,l);r=this._translateMessage(e,g)}if(this._mode==p.Extract){var f=u||d;f&&this._openTranslatableSection(e),o.g(this,e.children),f&&this._closeTranslatableSection(e,e.children)}}if(this._mode===p.Merge){var h=r||e.children;h.forEach(function(e){var o=e.visit(n,t);o&&!n._isInTranslatableSection&&(s=s.concat(o))})}if(this._visitAttributesOf(e),this._depth--,this._inI18nNode=i,this._inImplicitNode=a,this._mode===p.Merge){var m=this._translateAttributes(e);return new o.e(e.name,m,s,e.sourceSpan,e.startSourceSpan,e.endSourceSpan)}},_Visitor.prototype.visitAttribute=function(e,t){throw new Error("unreachable code")},_Visitor.prototype._init=function(e,t){this._mode=e,this._inI18nBlock=!1,this._inI18nNode=!1,this._depth=0,this._inIcu=!1,this._msgCountAtSectionStart=void 0,this._errors=[],this._messages=[],this._inImplicitNode=!1,this._createI18nMessage=n.i(a.a)(t)},_Visitor.prototype._visitAttributesOf=function(e){var t=this,n={},o=this._implicitAttrs[e.name]||[];e.attrs.filter(function(e){return e.name.startsWith(l)}).forEach(function(e){return n[e.name.slice(l.length)]=e.value}),e.attrs.forEach(function(e){e.name in n?t._addMessage([e],n[e.name]):o.some(function(t){return e.name===t})&&t._addMessage([e])})},_Visitor.prototype._addMessage=function(e,t){if(!(0==e.length||1==e.length&&e[0]instanceof o.f&&!e[0].value)){var n=_splitMeaningAndDesc(t),r=n[0],i=n[1],a=this._createI18nMessage(e,r,i);return this._messages.push(a),a}},_Visitor.prototype._translateMessage=function(e,t){if(t&&this._mode===p.Merge){var n=this._translations.get(t);if(n)return n;this._reportError(e,'Translation unavailable for message id="'+this._translations.digest(t)+'"')}return[]},_Visitor.prototype._translateAttributes=function(e){var t=this,n=e.attrs,r={};n.forEach(function(e){e.name.startsWith(l)&&(r[e.name.slice(l.length)]=_splitMeaningAndDesc(e.value)[0])});var i=[];return n.forEach(function(n){if(n.name!==u&&!n.name.startsWith(l))if(n.value&&""!=n.value&&r.hasOwnProperty(n.name)){var a=r[n.name],s=t._createI18nMessage([n],a,""),c=t._translations.get(s);if(c)if(0==c.length)i.push(new o.f(n.name,"",n.sourceSpan));else if(c[0]instanceof o.d){var d=c[0].value;i.push(new o.f(n.name,d,n.sourceSpan))}else t._reportError(e,'Unexpected translation for attribute "'+n.name+'" (id="'+t._translations.digest(s)+'")');else t._reportError(e,'Translation unavailable for attribute "'+n.name+'" (id="'+t._translations.digest(s)+'")');
}else i.push(n)}),i},_Visitor.prototype._mayBeAddBlockChildren=function(e){this._inI18nBlock&&!this._inIcu&&this._depth==this._blockStartDepth&&this._blockChildren.push(e)},_Visitor.prototype._openTranslatableSection=function(e){this._isInTranslatableSection?this._reportError(e,"Unexpected section start"):this._msgCountAtSectionStart=this._messages.length},Object.defineProperty(_Visitor.prototype,"_isInTranslatableSection",{get:function(){return void 0!==this._msgCountAtSectionStart},enumerable:!0,configurable:!0}),_Visitor.prototype._closeTranslatableSection=function(e,t){if(!this._isInTranslatableSection)return void this._reportError(e,"Unexpected section end");var n=this._msgCountAtSectionStart,r=t.reduce(function(e,t){return e+(t instanceof o.a?0:1)},0);if(1==r)for(var a=this._messages.length-1;a>=n;a--){var s=this._messages[a].nodes;if(!(1==s.length&&s[0]instanceof i.f)){this._messages.splice(a,1);break}}this._msgCountAtSectionStart=void 0},_Visitor.prototype._reportError=function(e,t){this._errors.push(new s.a(e.sourceSpan,t))},_Visitor}()},function(e,t,n){"use strict";var o=(n(618),n(168));n(357),n(170),n(358),n(245),n(360);n.d(t,"a",function(){return o.a})},function(e,t,n){"use strict";var o=n(355);n.d(t,"a",function(){return r});var r=function(){function MessageBundle(e,t,n){this._htmlParser=e,this._implicitTags=t,this._implicitAttrs=n,this._messages=[]}return MessageBundle.prototype.updateFromTemplate=function(e,t,r){var i=this._htmlParser.parse(e,t,!0,r);if(i.errors.length)return i.errors;var a=n.i(o.b)(i.rootNodes,r,this._implicitTags,this._implicitAttrs);if(a.errors.length)return a.errors;(s=this._messages).push.apply(s,a.messages);var s},MessageBundle.prototype.getMessages=function(){return this._messages},MessageBundle.prototype.write=function(e){return e.write(this._messages)},MessageBundle}()},function(e,t,n){"use strict";function getCtypeForTag(e){switch(e.toLowerCase()){case"br":return"lb";case"img":return"image";default:return"x-"+e}}var o=n(74),r=n(362),i=n(354),a=n(167),s=n(169),u=n(170),l=n(359);n.d(t,"a",function(){return b});var c=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},d="1.2",p="urn:oasis:names:tc:xliff:document:1.2",g="en",f="x",h="source",m="target",y="trans-unit",b=function(e){function Xliff(){e.apply(this,arguments)}return c(Xliff,e),Xliff.prototype.write=function(e){var t=this,n=new v,o={},r=[];e.forEach(function(e){var i=t.digest(e);if(!o[i]){o[i]=!0;var a=new l.a(y,{id:i,datatype:"html"});a.children.push(new l.b(8),new l.a(h,{},n.serialize(e.nodes)),new l.b(8),new l.a(m)),e.description&&a.children.push(new l.b(8),new l.a("note",{priority:"1",from:"description"},[new l.c(e.description)])),e.meaning&&a.children.push(new l.b(8),new l.a("note",{priority:"1",from:"meaning"},[new l.c(e.meaning)])),a.children.push(new l.b(6)),r.push(new l.b(6),a)}});var i=new l.a("body",{},r.concat([new l.b(4)])),a=new l.a("file",{"source-language":g,datatype:"plaintext",original:"ng2.template"},[new l.b(4),i,new l.b(2)]),s=new l.a("xliff",{version:d,xmlns:p},[new l.b(2),a,new l.b]);return l.d([new l.e({version:"1.0",encoding:"UTF-8"}),new l.b,s,new l.b])},Xliff.prototype.load=function(e,t){var n=new _,o=n.parse(e,t),r=o.mlNodesByMsgId,i=o.errors,a={},s=new E;if(Object.keys(r).forEach(function(e){var t=s.convert(r[e]),n=t.i18nNodes,o=t.errors;i.push.apply(i,o),a[e]=n}),i.length)throw new Error("xliff parse errors:\n"+i.join("\n"));return a},Xliff.prototype.digest=function(e){return n.i(i.a)(e)},Xliff}(u.a),v=function(){function _WriteVisitor(){}return _WriteVisitor.prototype.visitText=function(e,t){return[new l.c(e.value)]},_WriteVisitor.prototype.visitContainer=function(e,t){var n=this,o=[];return e.children.forEach(function(e){return o.push.apply(o,e.visit(n))}),o},_WriteVisitor.prototype.visitIcu=function(e,t){if(this._isInIcu)throw new Error("xliff does not support nested ICU messages");this._isInIcu=!0;var n=[];return this._isInIcu=!1,n},_WriteVisitor.prototype.visitTagPlaceholder=function(e,t){var n=getCtypeForTag(e.tag),o=new l.a(f,{id:e.startName,ctype:n});if(e.isVoid)return[o];var r=new l.a(f,{id:e.closeName,ctype:n});return[o].concat(this.serialize(e.children),[r])},_WriteVisitor.prototype.visitPlaceholder=function(e,t){return[new l.a(f,{id:e.name})]},_WriteVisitor.prototype.visitIcuPlaceholder=function(e,t){return[new l.a(f,{id:e.name})]},_WriteVisitor.prototype.serialize=function(e){var t=this;return this._isInIcu=!1,(n=[]).concat.apply(n,e.map(function(e){return e.visit(t)}));var n},_WriteVisitor}(),_=function(){function XliffParser(){}return XliffParser.prototype.parse=function(e,t){this._unitMlNodes=[],this._mlNodesByMsgId={};var n=(new r.a).parse(e,t,!1);return this._errors=n.errors,o.g(this,n.rootNodes,null),{mlNodesByMsgId:this._mlNodesByMsgId,errors:this._errors}},XliffParser.prototype.visitElement=function(e,t){switch(e.name){case y:this._unitMlNodes=null;var n=e.attrs.find(function(e){return"id"===e.name});if(n){var r=n.value;this._mlNodesByMsgId.hasOwnProperty(r)?this._addError(e,"Duplicated translations for msg "+r):(o.g(this,e.children,null),this._unitMlNodes?this._mlNodesByMsgId[r]=this._unitMlNodes:this._addError(e,"Message "+r+" misses a translation"))}else this._addError(e,"<"+y+'> misses the "id" attribute');break;case h:break;case m:this._unitMlNodes=e.children;break;default:o.g(this,e.children,null)}},XliffParser.prototype.visitAttribute=function(e,t){},XliffParser.prototype.visitText=function(e,t){},XliffParser.prototype.visitComment=function(e,t){},XliffParser.prototype.visitExpansion=function(e,t){},XliffParser.prototype.visitExpansionCase=function(e,t){},XliffParser.prototype._addError=function(e,t){this._errors.push(new s.a(e.sourceSpan,t))},XliffParser}(),E=function(){function XmlToI18n(){}return XmlToI18n.prototype.convert=function(e){return this._errors=[],{i18nNodes:o.g(this,e),errors:this._errors}},XmlToI18n.prototype.visitText=function(e,t){return new a.f(e.value,e.sourceSpan)},XmlToI18n.prototype.visitElement=function(e,t){if(e.name===f){var n=e.attrs.find(function(e){return"id"===e.name});if(n)return new a.g("",n.value,e.sourceSpan);this._addError(e,"<"+f+'> misses the "id" attribute')}else this._addError(e,"Unexpected tag")},XmlToI18n.prototype.visitExpansion=function(e,t){},XmlToI18n.prototype.visitExpansionCase=function(e,t){},XmlToI18n.prototype.visitComment=function(e,t){},XmlToI18n.prototype.visitAttribute=function(e,t){},XmlToI18n.prototype._addError=function(e,t){this._errors.push(new s.a(e.sourceSpan,t))},XmlToI18n}()},function(e,t,n){"use strict";function serialize(e){return e.map(function(e){return e.visit(i)}).join("")}function _escapeXml(e){return d.reduce(function(e,t){return e.replace(t[0],t[1])},e)}t.d=serialize,n.d(t,"e",function(){return a}),n.d(t,"f",function(){return s}),n.d(t,"a",function(){return u}),n.d(t,"c",function(){return l}),n.d(t,"b",function(){return c});var o=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},r=function(){function _Visitor(){}return _Visitor.prototype.visitTag=function(e){var t=this,n=this._serializeAttributes(e.attrs);if(0==e.children.length)return"<"+e.name+n+"/>";var o=e.children.map(function(e){return e.visit(t)});return"<"+e.name+n+">"+o.join("")+"</"+e.name+">"},_Visitor.prototype.visitText=function(e){return e.value},_Visitor.prototype.visitDeclaration=function(e){return"<?xml"+this._serializeAttributes(e.attrs)+" ?>"},_Visitor.prototype._serializeAttributes=function(e){var t=Object.keys(e).map(function(t){return t+'="'+e[t]+'"'}).join(" ");return t.length>0?" "+t:""},_Visitor.prototype.visitDoctype=function(e){return"<!DOCTYPE "+e.rootTag+" [\n"+e.dtd+"\n]>"},_Visitor}(),i=new r,a=function(){function Declaration(e){var t=this;this.attrs={},Object.keys(e).forEach(function(n){t.attrs[n]=_escapeXml(e[n])})}return Declaration.prototype.visit=function(e){return e.visitDeclaration(this)},Declaration}(),s=function(){function Doctype(e,t){this.rootTag=e,this.dtd=t}return Doctype.prototype.visit=function(e){return e.visitDoctype(this)},Doctype}(),u=function(){function Tag(e,t,n){var o=this;void 0===t&&(t={}),void 0===n&&(n=[]),this.name=e,this.children=n,this.attrs={},Object.keys(t).forEach(function(e){o.attrs[e]=_escapeXml(t[e])})}return Tag.prototype.visit=function(e){return e.visitTag(this)},Tag}(),l=function(){function Text(e){this.value=_escapeXml(e)}return Text.prototype.visit=function(e){return e.visitText(this)},Text}(),c=function(e){function CR(t){void 0===t&&(t=0),e.call(this,"\n"+new Array(t+1).join(" "))}return o(CR,e),CR}(l),d=[[/&/g,"&"],[/"/g,"""],[/'/g,"'"],[/</g,"<"],[/>/g,">"]]},function(e,t,n){"use strict";var o=n(74),r=n(362),i=n(167),a=n(169),s=n(170),u=n(245);n.d(t,"a",function(){return g});var l=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},c="translationbundle",d="translation",p="ph",g=function(e){function Xtb(){e.apply(this,arguments)}return l(Xtb,e),Xtb.prototype.write=function(e){throw new Error("Unsupported")},Xtb.prototype.load=function(e,t){var n=new f,o=n.parse(e,t),r=o.mlNodesByMsgId,i=o.errors,a={},s=new h;if(Object.keys(r).forEach(function(e){var t=s.convert(r[e]),n=t.i18nNodes,o=t.errors;i.push.apply(i,o),a[e]=n}),i.length)throw new Error("xtb parse errors:\n"+i.join("\n"));return a},Xtb.prototype.digest=function(e){return n.i(u.a)(e)},Xtb.prototype.createNameMapper=function(e){return new u.b(e)},Xtb}(s.a),f=function(){function XtbParser(){}return XtbParser.prototype.parse=function(e,t){this._bundleDepth=0,this._mlNodesByMsgId={};var n=(new r.a).parse(e,t,!0);return this._errors=n.errors,o.g(this,n.rootNodes),{mlNodesByMsgId:this._mlNodesByMsgId,errors:this._errors}},XtbParser.prototype.visitElement=function(e,t){switch(e.name){case c:this._bundleDepth++,this._bundleDepth>1&&this._addError(e,"<"+c+"> elements can not be nested"),o.g(this,e.children,null),this._bundleDepth--;break;case d:var n=e.attrs.find(function(e){return"id"===e.name});if(n){var r=n.value;this._mlNodesByMsgId.hasOwnProperty(r)?this._addError(e,"Duplicated translations for msg "+r):this._mlNodesByMsgId[r]=e.children}else this._addError(e,"<"+d+'> misses the "id" attribute');break;default:this._addError(e,"Unexpected tag")}},XtbParser.prototype.visitAttribute=function(e,t){},XtbParser.prototype.visitText=function(e,t){},XtbParser.prototype.visitComment=function(e,t){},XtbParser.prototype.visitExpansion=function(e,t){},XtbParser.prototype.visitExpansionCase=function(e,t){},XtbParser.prototype._addError=function(e,t){this._errors.push(new a.a(e.sourceSpan,t))},XtbParser}(),h=function(){function XmlToI18n(){}return XmlToI18n.prototype.convert=function(e){return this._errors=[],{i18nNodes:o.g(this,e),errors:this._errors}},XmlToI18n.prototype.visitText=function(e,t){return new i.f(e.value,e.sourceSpan)},XmlToI18n.prototype.visitExpansion=function(e,t){var n={};return o.g(this,e.cases).forEach(function(t){n[t.value]=new i.d(t.nodes,e.sourceSpan)}),new i.c(e.switchValue,e.type,n,e.sourceSpan)},XmlToI18n.prototype.visitExpansionCase=function(e,t){return{value:e.value,nodes:o.g(this,e.expression)}},XmlToI18n.prototype.visitElement=function(e,t){if(e.name===p){var n=e.attrs.find(function(e){return"name"===e.name});if(n)return new i.g("",n.value,e.sourceSpan);this._addError(e,"<"+p+'> misses the "name" attribute')}else this._addError(e,"Unexpected tag")},XmlToI18n.prototype.visitComment=function(e,t){},XmlToI18n.prototype.visitAttribute=function(e,t){},XmlToI18n.prototype._addError=function(e,t){this._errors.push(new a.a(e.sourceSpan,t))},XmlToI18n}()},function(e,t,n){"use strict";function assertComponent(e){if(!e.isComponent)throw new Error("Could not compile '"+n.i(a.c)(e.type)+"' because it is not a component.")}var o=n(1),r=n(349),i=n(165),a=n(14),s=n(72),u=n(73),l=n(7),c=n(20),d=n(126),p=n(171),g=n(10),f=n(628),h=n(629),m=n(174),y=n(129),b=n(32),v=n(130);n.d(t,"a",function(){return T});var _=this&&this.__decorate||function(e,t,n,o){var r,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,n):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,o);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(i<3?r(a):i>3?r(t,n,a):r(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},E=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},T=function(){function JitCompiler(e,t,n,o,i,a,s,u,l){this._injector=e,this._metadataResolver=t,this._templateParser=n,this._styleCompiler=o,this._viewCompiler=i,this._ngModuleCompiler=a,this._directiveWrapperCompiler=s,this._compilerConfig=u,this._animationParser=l,this._compiledTemplateCache=new Map,this._compiledHostTemplateCache=new Map,this._compiledDirectiveWrapperCache=new Map,this._compiledNgModuleCache=new Map,this._animationCompiler=new r.a}return Object.defineProperty(JitCompiler.prototype,"injector",{get:function(){return this._injector},enumerable:!0,configurable:!0}),JitCompiler.prototype.compileModuleSync=function(e){return this._compileModuleAndComponents(e,!0).syncResult},JitCompiler.prototype.compileModuleAsync=function(e){return this._compileModuleAndComponents(e,!1).asyncResult},JitCompiler.prototype.compileModuleAndAllComponentsSync=function(e){return this._compileModuleAndAllComponents(e,!0).syncResult},JitCompiler.prototype.compileModuleAndAllComponentsAsync=function(e){return this._compileModuleAndAllComponents(e,!1).asyncResult},JitCompiler.prototype.getNgContentSelectors=function(e){var t=this._compiledTemplateCache.get(e);if(!t)throw new Error("The component "+n.i(l.e)(e)+" is not yet compiled!");return t.compMeta.template.ngContentSelectors},JitCompiler.prototype._compileModuleAndComponents=function(e,t){var n=this,o=this._loadModules(e,t),r=function(){return n._compileComponents(e,null),n._compileModule(e)};return t?new b.d(r()):new b.d(null,o.then(r))},JitCompiler.prototype._compileModuleAndAllComponents=function(e,t){var n=this,r=this._loadModules(e,t),i=function(){var t=[];return n._compileComponents(e,t),new o.ModuleWithComponentFactories(n._compileModule(e),t)};return t?new b.d(i()):new b.d(null,r.then(i))},JitCompiler.prototype._loadModules=function(e,t){var n=this,o=[],r=this._metadataResolver.getNgModuleMetadata(e);return r.transitiveModule.modules.forEach(function(e){o.push(n._metadataResolver.loadNgModuleDirectiveAndPipeMetadata(e.reference,t))}),Promise.all(o)},JitCompiler.prototype._compileModule=function(e){var t=this,r=this._compiledNgModuleCache.get(e);if(!r){var i=this._metadataResolver.getNgModuleMetadata(e),s=[this._metadataResolver.getProviderMetadata(new a.u(o.Compiler,{useFactory:function(){return new A(t,i.type.reference)}}))],u=this._ngModuleCompiler.compile(i,s);u.dependencies.forEach(function(e){e.placeholder.reference=t._assertComponentKnown(e.comp.reference,!0).proxyComponentFactory}),r=this._compilerConfig.useJit?n.i(h.a)("/"+n.i(a.c)(i.type)+"/module.ngfactory.js",u.statements,u.ngModuleFactoryVar):n.i(f.a)(u.statements,u.ngModuleFactoryVar),this._compiledNgModuleCache.set(i.type.reference,r)}return r},JitCompiler.prototype._compileComponents=function(e,t){var n=this,o=this._metadataResolver.getNgModuleMetadata(e),r=new Map,i=new Set;o.transitiveModule.modules.forEach(function(e){var o=n._metadataResolver.getNgModuleMetadata(e.reference);o.declaredDirectives.forEach(function(e){r.set(e.reference,o);var a=n._metadataResolver.getDirectiveMetadata(e.reference);if(n._compileDirectiveWrapper(a,o),a.isComponent&&(i.add(n._createCompiledTemplate(a,o)),t)){var s=n._createCompiledHostTemplate(a.type.reference,o);i.add(s),t.push(s.proxyComponentFactory)}})}),o.transitiveModule.modules.forEach(function(e){var t=n._metadataResolver.getNgModuleMetadata(e.reference);t.declaredDirectives.forEach(function(e){var t=n._metadataResolver.getDirectiveMetadata(e.reference);t.isComponent&&t.entryComponents.forEach(function(e){var t=r.get(e.reference);i.add(n._createCompiledHostTemplate(e.reference,t))})}),t.entryComponents.forEach(function(e){var t=r.get(e.reference);i.add(n._createCompiledHostTemplate(e.reference,t))})}),i.forEach(function(e){return n._compileTemplate(e)})},JitCompiler.prototype.clearCacheFor=function(e){this._compiledNgModuleCache.delete(e),this._metadataResolver.clearCacheFor(e),this._compiledHostTemplateCache.delete(e);var t=this._compiledTemplateCache.get(e);t&&this._compiledTemplateCache.delete(e)},JitCompiler.prototype.clearCache=function(){this._metadataResolver.clearCache(),this._compiledTemplateCache.clear(),this._compiledHostTemplateCache.clear(),this._compiledNgModuleCache.clear()},JitCompiler.prototype._createCompiledHostTemplate=function(e,t){if(!t)throw new Error("Component "+n.i(l.e)(e)+" is not part of any NgModule or the module has not been imported into your module.");var o=this._compiledHostTemplateCache.get(e);if(!o){var r=this._metadataResolver.getDirectiveMetadata(e);assertComponent(r);var i=function(){};i.overriddenName=n.i(a.c)(r.type)+"_Host";var s=n.i(a.v)(i,r);o=new S((!0),r.selector,r.type,s,t,[r.type]),this._compiledHostTemplateCache.set(e,o)}return o},JitCompiler.prototype._createCompiledTemplate=function(e,t){var n=this._compiledTemplateCache.get(e.type.reference);return n||(assertComponent(e),n=new S((!1),e.selector,e.type,e,t,t.transitiveModule.directives),this._compiledTemplateCache.set(e.type.reference,n)),n},JitCompiler.prototype._assertComponentKnown=function(e,t){var o=t?this._compiledHostTemplateCache.get(e):this._compiledTemplateCache.get(e);if(!o)throw new Error("Illegal state: Compiled view for component "+n.i(l.e)(e)+" (host: "+t+") does not exist!");return o},JitCompiler.prototype._assertDirectiveWrapper=function(e){var t=this._compiledDirectiveWrapperCache.get(e);if(!t)throw new Error("Illegal state: Directive wrapper for "+n.i(l.e)(e)+" has not been compiled!");return t},JitCompiler.prototype._compileDirectiveWrapper=function(e,t){var o,r=this._directiveWrapperCompiler.compile(e),i=r.statements;o=this._compilerConfig.useJit?n.i(h.a)("/"+n.i(a.c)(t.type)+"/"+n.i(a.c)(e.type)+"/wrapper.ngfactory.js",i,r.dirWrapperClassVar):n.i(f.a)(i,r.dirWrapperClassVar),this._compiledDirectiveWrapperCache.set(e.type.reference,o)},JitCompiler.prototype._compileTemplate=function(e){var t=this;if(!e.isCompiled){var o=e.compMeta,r=new Map,i=this._styleCompiler.compileComponent(o);i.externalStylesheets.forEach(function(e){r.set(e.meta.moduleUrl,e)}),this._resolveStylesCompileResult(i.componentStylesheet,r);var s=this._animationParser.parseComponent(o),u=e.directives.map(function(e){return t._metadataResolver.getDirectiveSummary(e.reference)}),l=e.ngModule.transitiveModule.pipes.map(function(e){return t._metadataResolver.getPipeSummary(e.reference)}),c=this._templateParser.parse(o,o.template.template,u,l,e.ngModule.schemas,n.i(a.c)(o.type)),d=this._animationCompiler.compile(n.i(a.c)(o.type),s),p=this._viewCompiler.compileComponent(o,c,g.g(i.componentStylesheet.stylesVar),l,d);p.dependencies.forEach(function(e){var n;if(e instanceof v.a){var o=e;n=t._assertComponentKnown(o.comp.reference,!1),o.placeholder.reference=n.proxyViewClass}else if(e instanceof v.b){var r=e;n=t._assertComponentKnown(r.comp.reference,!0),r.placeholder.reference=n.proxyComponentFactory}else if(e instanceof v.c){var i=e;i.placeholder.reference=t._assertDirectiveWrapper(i.dir.reference)}});var m,y=(b=i.componentStylesheet.statements).concat.apply(b,d.map(function(e){return e.statements})).concat(p.statements);m=this._compilerConfig.useJit?n.i(h.a)("/"+n.i(a.c)(e.ngModule.type)+"/"+n.i(a.c)(e.compType)+"/"+(e.isHost?"host":"component")+".ngfactory.js",y,p.viewClassVar):n.i(f.a)(y,p.viewClassVar),e.compiled(m);var b}},JitCompiler.prototype._resolveStylesCompileResult=function(e,t){var n=this;e.dependencies.forEach(function(e,o){var r=t.get(e.moduleUrl),i=n._resolveAndEvalStylesCompileResult(r,t);e.valuePlaceholder.reference=i})},JitCompiler.prototype._resolveAndEvalStylesCompileResult=function(e,t){return this._resolveStylesCompileResult(e,t),this._compilerConfig.useJit?n.i(h.a)("/"+e.meta.moduleUrl+".ngstyle.js",e.statements,e.stylesVar):n.i(f.a)(e.statements,e.stylesVar)},JitCompiler=_([n.i(c.a)(),E("design:paramtypes",[o.Injector,d.a,y.a,m.a,v.d,p.a,u.a,s.a,i.a])],JitCompiler)}(),S=function(){function CompiledTemplate(e,t,r,i,a,s){this.isHost=e,this.compType=r,this.compMeta=i,this.ngModule=a,this.directives=s,this._viewClass=null,this.isCompiled=!1;var u=this;this.proxyViewClass=function(){if(!u._viewClass)throw new Error("Illegal state: CompiledTemplate for "+n.i(l.e)(u.compType)+" is not compiled yet!");return u._viewClass.apply(this,arguments)},this.proxyComponentFactory=e?new o.ComponentFactory(t,this.proxyViewClass,r.reference):null}return CompiledTemplate.prototype.compiled=function(e){this._viewClass=e,this.proxyViewClass.prototype=e.prototype,this.isCompiled=!0},CompiledTemplate}(),A=function(){function ModuleBoundCompiler(e,t){this._delegate=e,this._ngModule=t}return Object.defineProperty(ModuleBoundCompiler.prototype,"_injector",{get:function(){return this._delegate.injector},enumerable:!0,configurable:!0}),ModuleBoundCompiler.prototype.compileModuleSync=function(e){return this._delegate.compileModuleSync(e)},ModuleBoundCompiler.prototype.compileModuleAsync=function(e){return this._delegate.compileModuleAsync(e)},ModuleBoundCompiler.prototype.compileModuleAndAllComponentsSync=function(e){return this._delegate.compileModuleAndAllComponentsSync(e)},ModuleBoundCompiler.prototype.compileModuleAndAllComponentsAsync=function(e){return this._delegate.compileModuleAndAllComponentsAsync(e)},ModuleBoundCompiler.prototype.getNgContentSelectors=function(e){return this._delegate.getNgContentSelectors(e)},ModuleBoundCompiler.prototype.clearCache=function(){this._delegate.clearCache()},ModuleBoundCompiler.prototype.clearCacheFor=function(e){this._delegate.clearCacheFor(e)},ModuleBoundCompiler}()},function(e,t,n){"use strict";var o=n(107),r=n(626);n.d(t,"a",function(){return a});var i=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},a=function(e){function XmlParser(){e.call(this,r.a)}return i(XmlParser,e),XmlParser.prototype.parse=function(t,n,o){return void 0===o&&(o=!1),e.prototype.parse.call(this,t,n,o,null)},XmlParser}(o.b)},function(e,t,n){"use strict";function convertValueToOutputAst(e,t){return void 0===t&&(t=null),n.i(o.f)(e,new a,t)}var o=n(32),r=n(10);t.a=convertValueToOutputAst;var i="$quoted$",a=function(){function _ValueOutputAstTransformer(){}return _ValueOutputAstTransformer.prototype.visitArray=function(e,t){var i=this;return r.n(e.map(function(e){return n.i(o.f)(e,i,null)}),t)},_ValueOutputAstTransformer.prototype.visitStringMap=function(e,t){var a=this,s=[],u=new Set(e&&e[i]);return Object.keys(e).forEach(function(t){s.push(new r.G(t,n.i(o.f)(e[t],a,null),u.has(t)))}),new r.H(s,t)},_ValueOutputAstTransformer.prototype.visitPrimitive=function(e,t){return r.f(e,t)},_ValueOutputAstTransformer.prototype.visitOther=function(e,t){return e instanceof r.I?e:r.d({reference:e})},_ValueOutputAstTransformer}()},function(e,t,n){"use strict";function _transformProvider(e,t){var n=t.useExisting,o=t.useValue,r=t.deps;return{token:e.token,useClass:e.useClass,useExisting:n,useFactory:e.useFactory,useValue:o,deps:r,multi:e.multi}}function _transformProviderAst(e,t){var n=t.eager,o=t.providers;return new s.b(e.token,e.multiProvider,e.eager||n,o,e.providerType,e.lifecycleHooks,e.sourceSpan)}function _resolveProvidersFromDirectives(e,t,n){var o=new Map;e.forEach(function(e){var r={token:{identifier:e.type},useClass:e.type};_resolveProviders([r],e.isComponent?s.a.Component:s.a.Directive,!0,t,n,o)});var r=e.filter(function(e){return e.isComponent}).concat(e.filter(function(e){return!e.isComponent}));return r.forEach(function(e){_resolveProviders(e.providers,s.a.PublicService,!1,t,n,o),_resolveProviders(e.viewProviders,s.a.PrivateService,!1,t,n,o)}),o}function _resolveProviders(e,t,i,a,u,c){e.forEach(function(e){var d=c.get(n.i(o.a)(e.token));if(n.i(r.f)(d)&&!!d.multiProvider!=!!e.multi&&u.push(new l("Mixing multi and non multi provider is not possible for token "+n.i(o.b)(d.token),a)),d)e.multi||(d.providers.length=0),d.providers.push(e);else{var p=e.token.identifier&&e.token.identifier.lifecycleHooks?e.token.identifier.lifecycleHooks:[];d=new s.b(e.token,e.multi,i||p.length>0,[e],t,p,a),c.set(n.i(o.a)(e.token),d)}})}function _getViewQueries(e){var t=new Map;return e.viewQueries&&e.viewQueries.forEach(function(e){return _addQueryToTokenMap(t,e)}),t}function _getContentQueries(e){var t=new Map;return e.forEach(function(e){e.queries&&e.queries.forEach(function(e){return _addQueryToTokenMap(t,e)})}),t}function _addQueryToTokenMap(e,t){t.selectors.forEach(function(r){var i=e.get(n.i(o.a)(r));i||(i=[],e.set(n.i(o.a)(r),i)),i.push(t)})}var o=n(14),r=n(7),i=n(19),a=n(40),s=n(48);n.d(t,"a",function(){return c}),n.d(t,"b",function(){return d}),n.d(t,"c",function(){return p});var u=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},l=function(e){function ProviderError(t,n){e.call(this,n,t)}return u(ProviderError,e),ProviderError}(a.a),c=function(){function ProviderViewContext(e,t){var i=this;this.component=e,this.sourceSpan=t,this.errors=[],this.viewQueries=_getViewQueries(e),this.viewProviders=new Map,e.viewProviders.forEach(function(e){n.i(r.g)(i.viewProviders.get(n.i(o.a)(e.token)))&&i.viewProviders.set(n.i(o.a)(e.token),!0)})}return ProviderViewContext}(),d=function(){function ProviderElementContext(e,t,a,s,u,l,c){var d=this;this.viewContext=e,this._parent=t,this._isViewRoot=a,this._directiveAsts=s,this._sourceSpan=c,this._transformedProviders=new Map,this._seenProviders=new Map,this._hasViewContainer=!1,this._attrs={},u.forEach(function(e){return d._attrs[e.name]=e.value});var p=s.map(function(e){return e.directive});this._allProviders=_resolveProvidersFromDirectives(p,c,e.errors),this._contentQueries=_getContentQueries(p);var g=new Map;Array.from(this._allProviders.values()).forEach(function(e){d._addQueryReadsTo(e.token,g)}),l.forEach(function(e){d._addQueryReadsTo({value:e.name},g)}),n.i(r.f)(g.get(n.i(i.a)(i.b.ViewContainerRef)))&&(this._hasViewContainer=!0),Array.from(this._allProviders.values()).forEach(function(e){var t=e.eager||n.i(r.f)(g.get(n.i(o.a)(e.token)));t&&d._getOrCreateLocalProvider(e.providerType,e.token,!0)})}return ProviderElementContext.prototype.afterElement=function(){var e=this;Array.from(this._allProviders.values()).forEach(function(t){e._getOrCreateLocalProvider(t.providerType,t.token,!1)})},Object.defineProperty(ProviderElementContext.prototype,"transformProviders",{get:function(){return Array.from(this._transformedProviders.values())},enumerable:!0,configurable:!0}),Object.defineProperty(ProviderElementContext.prototype,"transformedDirectiveAsts",{get:function(){var e=this.transformProviders.map(function(e){return e.token.identifier}),t=this._directiveAsts.slice();return t.sort(function(t,n){return e.indexOf(t.directive.type)-e.indexOf(n.directive.type)}),t},enumerable:!0,configurable:!0}),Object.defineProperty(ProviderElementContext.prototype,"transformedHasViewContainer",{get:function(){return this._hasViewContainer},enumerable:!0,configurable:!0}),ProviderElementContext.prototype._addQueryReadsTo=function(e,t){this._getQueriesFor(e).forEach(function(i){var a=i.read||e;n.i(r.g)(t.get(n.i(o.a)(a)))&&t.set(n.i(o.a)(a),!0)})},ProviderElementContext.prototype._getQueriesFor=function(e){for(var t,r=[],i=this,a=0;null!==i;)t=i._contentQueries.get(n.i(o.a)(e)),t&&r.push.apply(r,t.filter(function(e){return e.descendants||a<=1})),i._directiveAsts.length>0&&a++,i=i._parent;return t=this.viewContext.viewQueries.get(n.i(o.a)(e)),t&&r.push.apply(r,t),r},ProviderElementContext.prototype._getOrCreateLocalProvider=function(e,t,i){var a=this,u=this._allProviders.get(n.i(o.a)(t));if(!u||(e===s.a.Directive||e===s.a.PublicService)&&u.providerType===s.a.PrivateService||(e===s.a.PrivateService||e===s.a.PublicService)&&u.providerType===s.a.Builtin)return null;var c=this._transformedProviders.get(n.i(o.a)(t));if(c)return c;if(n.i(r.f)(this._seenProviders.get(n.i(o.a)(t))))return this.viewContext.errors.push(new l("Cannot instantiate cyclic dependency! "+n.i(o.b)(t),this._sourceSpan)),null;this._seenProviders.set(n.i(o.a)(t),!0);var d=u.providers.map(function(e){var t,o=e.useValue,s=e.useExisting;if(n.i(r.f)(e.useExisting)){var l=a._getDependency(u.providerType,{token:e.useExisting},i);n.i(r.f)(l.token)?s=l.token:(s=null,o=l.value)}else if(e.useFactory){var c=e.deps||e.useFactory.diDeps;t=c.map(function(e){return a._getDependency(u.providerType,e,i)})}else if(e.useClass){var c=e.deps||e.useClass.diDeps;t=c.map(function(e){return a._getDependency(u.providerType,e,i)})}return _transformProvider(e,{useExisting:s,useValue:o,deps:t})});return c=_transformProviderAst(u,{eager:i,providers:d}),this._transformedProviders.set(n.i(o.a)(t),c),c},ProviderElementContext.prototype._getLocalDependency=function(e,t,a){if(void 0===a&&(a=null),t.isAttribute){var u=this._attrs[t.token.value];return{isValue:!0,value:null==u?null:u}}if(n.i(r.f)(t.token)){if(e===s.a.Directive||e===s.a.Component){if(n.i(o.a)(t.token)===n.i(i.a)(i.b.Renderer)||n.i(o.a)(t.token)===n.i(i.a)(i.b.ElementRef)||n.i(o.a)(t.token)===n.i(i.a)(i.b.ChangeDetectorRef)||n.i(o.a)(t.token)===n.i(i.a)(i.b.TemplateRef))return t;n.i(o.a)(t.token)===n.i(i.a)(i.b.ViewContainerRef)&&(this._hasViewContainer=!0)}if(n.i(o.a)(t.token)===n.i(i.a)(i.b.Injector))return t;if(n.i(r.f)(this._getOrCreateLocalProvider(e,t.token,a)))return t}return null},ProviderElementContext.prototype._getDependency=function(e,t,i){void 0===i&&(i=null);var a=this,u=i,c=null;if(t.isSkipSelf||(c=this._getLocalDependency(e,t,i)),t.isSelf)!c&&t.isOptional&&(c={isValue:!0,value:null});else{for(;!c&&a._parent;){var d=a;a=a._parent,d._isViewRoot&&(u=!1),c=a._getLocalDependency(s.a.PublicService,t,u)}c||(c=!t.isHost||this.viewContext.component.isHost||this.viewContext.component.type.reference===n.i(o.a)(t.token)||n.i(r.f)(this.viewContext.viewProviders.get(n.i(o.a)(t.token)))?t:t.isOptional?c={isValue:!0,value:null}:null)}return c||this.viewContext.errors.push(new l("No provider for "+n.i(o.b)(t.token),this._sourceSpan)),c},ProviderElementContext}(),p=function(){function NgModuleProviderAnalyzer(e,t,n){var o=this;this._transformedProviders=new Map,this._seenProviders=new Map,this._errors=[],this._allProviders=new Map,e.transitiveModule.modules.forEach(function(e){var t={token:{identifier:e},useClass:e};_resolveProviders([t],s.a.PublicService,!0,n,o._errors,o._allProviders)}),_resolveProviders(e.transitiveModule.providers.map(function(e){return e.provider}).concat(t),s.a.PublicService,!1,n,this._errors,this._allProviders)}return NgModuleProviderAnalyzer.prototype.parse=function(){var e=this;if(Array.from(this._allProviders.values()).forEach(function(t){e._getOrCreateLocalProvider(t.token,t.eager)}),this._errors.length>0){var t=this._errors.join("\n");throw new Error("Provider parse errors:\n"+t)}return Array.from(this._transformedProviders.values())},NgModuleProviderAnalyzer.prototype._getOrCreateLocalProvider=function(e,t){var i=this,a=this._allProviders.get(n.i(o.a)(e));if(!a)return null;var s=this._transformedProviders.get(n.i(o.a)(e));if(s)return s;if(n.i(r.f)(this._seenProviders.get(n.i(o.a)(e))))return this._errors.push(new l("Cannot instantiate cyclic dependency! "+n.i(o.b)(e),a.sourceSpan)),
null;this._seenProviders.set(n.i(o.a)(e),!0);var u=a.providers.map(function(e){var o,s=e.useValue,u=e.useExisting;if(n.i(r.f)(e.useExisting)){var l=i._getDependency({token:e.useExisting},t,a.sourceSpan);n.i(r.f)(l.token)?u=l.token:(u=null,s=l.value)}else if(e.useFactory){var c=e.deps||e.useFactory.diDeps;o=c.map(function(e){return i._getDependency(e,t,a.sourceSpan)})}else if(e.useClass){var c=e.deps||e.useClass.diDeps;o=c.map(function(e){return i._getDependency(e,t,a.sourceSpan)})}return _transformProvider(e,{useExisting:u,useValue:s,deps:o})});return s=_transformProviderAst(a,{eager:t,providers:u}),this._transformedProviders.set(n.i(o.a)(e),s),s},NgModuleProviderAnalyzer.prototype._getDependency=function(e,t,a){void 0===t&&(t=null);var s=!1;!e.isSkipSelf&&n.i(r.f)(e.token)&&(n.i(o.a)(e.token)===n.i(i.a)(i.b.Injector)||n.i(o.a)(e.token)===n.i(i.a)(i.b.ComponentFactoryResolver)?s=!0:n.i(r.f)(this._getOrCreateLocalProvider(e.token,t))&&(s=!0));var u=e;return e.isSelf&&!s&&(e.isOptional?u={isValue:!0,value:null}:this._errors.push(new l("No provider for "+n.i(o.b)(e.token),a))),u},NgModuleProviderAnalyzer}()},function(e,t,n){"use strict";function isStyleUrlResolvable(e){if(null==e||0===e.length||"/"==e[0])return!1;var t=e.match(a);return null===t||"package"==t[1]||"asset"==t[1]}function extractStyleUrls(e,t,n){var a=[],s=n.replace(i,"").replace(r,function(){for(var n=[],o=0;o<arguments.length;o++)n[o-0]=arguments[o];var r=n[1]||n[2];return isStyleUrlResolvable(r)?(a.push(e.resolve(t,r)),""):n[0]});return new o(s,a)}t.a=isStyleUrlResolvable,t.b=extractStyleUrls;var o=function(){function StyleWithImports(e,t){this.style=e,this.styleUrls=t}return StyleWithImports}(),r=/@import\s+(?:url\()?\s*(?:(?:['"]([^'"]*))|([^;\)\s]*))[^;]*;?/g,i=/\/\*.+?\*\//g,a=/^([^:\/?#]+):/},function(e,t,n){"use strict";function _isAnimationLabel(e){return"@"==e[0]}function calcPossibleSecurityContexts(e,t,n,r){var i=[];return s.a.parse(t).forEach(function(t){var o=t.element?[t.element]:e.allKnownElementNames(),a=new Set(t.notSelectors.filter(function(e){return e.isElementSelector()}).map(function(e){return e.element})),s=o.filter(function(e){return!a.has(e)});i.push.apply(i,s.map(function(t){return e.securityContext(t,n,r)}))}),0===i.length?[o.SecurityContext.NONE]:Array.from(new Set(i)).sort()}var o=n(1),r=n(244),i=n(87),a=n(40),s=n(173),u=n(32),l=n(48);n.d(t,"a",function(){return b});var c=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},d=".",p="attr",g="class",f="style",h="animate-",m={};m.DEFAULT=0,m.LITERAL_ATTR=1,m.ANIMATION=2,m[m.DEFAULT]="DEFAULT",m[m.LITERAL_ATTR]="LITERAL_ATTR",m[m.ANIMATION]="ANIMATION";var y=function(){function BoundProperty(e,t,n,o){this.name=e,this.expression=t,this.type=n,this.sourceSpan=o}return Object.defineProperty(BoundProperty.prototype,"isLiteral",{get:function(){return this.type===m.LITERAL_ATTR},enumerable:!0,configurable:!0}),Object.defineProperty(BoundProperty.prototype,"isAnimation",{get:function(){return this.type===m.ANIMATION},enumerable:!0,configurable:!0}),BoundProperty}(),b=function(){function BindingParser(e,t,n,o,r){var i=this;this._exprParser=e,this._interpolationConfig=t,this._schemaRegistry=n,this._targetErrors=r,this.pipesByName=new Map,o.forEach(function(e){return i.pipesByName.set(e.name,e)})}return BindingParser.prototype.createDirectiveHostPropertyAsts=function(e,t){var n=this;if(e.hostProperties){var o=[];return Object.keys(e.hostProperties).forEach(function(r){var i=e.hostProperties[r];"string"==typeof i?n.parsePropertyBinding(r,i,!0,t,[],o):n._reportError('Value of the host property binding "'+r+'" needs to be a string representing an expression but got "'+i+'" ('+typeof i+")",t)}),o.map(function(t){return n.createElementPropertyAst(e.selector,t)})}},BindingParser.prototype.createDirectiveHostEventAsts=function(e,t){var n=this;if(e.hostListeners){var o=[];return Object.keys(e.hostListeners).forEach(function(r){var i=e.hostListeners[r];"string"==typeof i?n.parseEvent(r,i,t,[],o):n._reportError('Value of the host listener "'+r+'" needs to be a string representing an expression but got "'+i+'" ('+typeof i+")",t)}),o}},BindingParser.prototype.parseInterpolation=function(e,t){var n=t.start.toString();try{var o=this._exprParser.parseInterpolation(e,n,this._interpolationConfig);return o&&this._reportExpressionParserErrors(o.errors,t),this._checkPipes(o,t),o}catch(r){return this._reportError(""+r,t),this._exprParser.wrapLiteralPrimitive("ERROR",n)}},BindingParser.prototype.parseInlineTemplateBinding=function(e,t,n,o,r,i){for(var a=this._parseTemplateBindings(e,t,n),s=0;s<a.length;s++){var u=a[s];u.keyIsVar?i.push(new l.c(u.key,u.name,n)):u.expression?this._parsePropertyAst(u.key,u.expression,n,o,r):(o.push([u.key,""]),this.parseLiteralAttr(u.key,null,n,o,r))}},BindingParser.prototype._parseTemplateBindings=function(e,t,n){var o=this,r=n.start.toString();try{var i=this._exprParser.parseTemplateBindings(e,t,r);return this._reportExpressionParserErrors(i.errors,n),i.templateBindings.forEach(function(e){e.expression&&o._checkPipes(e.expression,n)}),i.warnings.forEach(function(e){o._reportError(e,n,a.e.WARNING)}),i.templateBindings}catch(s){return this._reportError(""+s,n),[]}},BindingParser.prototype.parseLiteralAttr=function(e,t,n,o,r){_isAnimationLabel(e)?(e=e.substring(1),t&&this._reportError('Assigning animation triggers via @prop="exp" attributes with an expression is invalid. Use property bindings (e.g. [@prop]="exp") or use an attribute without a value (e.g. @prop) instead.',n,a.e.FATAL),this._parseAnimation(e,t,n,o,r)):r.push(new y(e,this._exprParser.wrapLiteralPrimitive(t,""),m.LITERAL_ATTR,n))},BindingParser.prototype.parsePropertyBinding=function(e,t,n,o,r,i){var a=!1;e.startsWith(h)?(a=!0,e=e.substring(h.length)):_isAnimationLabel(e)&&(a=!0,e=e.substring(1)),a?this._parseAnimation(e,t,o,r,i):this._parsePropertyAst(e,this._parseBinding(t,n,o),o,r,i)},BindingParser.prototype.parsePropertyInterpolation=function(e,t,n,o,r){var i=this.parseInterpolation(t,n);return!!i&&(this._parsePropertyAst(e,i,n,o,r),!0)},BindingParser.prototype._parsePropertyAst=function(e,t,n,o,r){o.push([e,t.source]),r.push(new y(e,t,m.DEFAULT,n))},BindingParser.prototype._parseAnimation=function(e,t,n,o,r){var i=this._parseBinding(t||"null",!1,n);o.push([e,i.source]),r.push(new y(e,i,m.ANIMATION,n))},BindingParser.prototype._parseBinding=function(e,t,n){var o=n.start.toString();try{var r=t?this._exprParser.parseSimpleBinding(e,o,this._interpolationConfig):this._exprParser.parseBinding(e,o,this._interpolationConfig);return r&&this._reportExpressionParserErrors(r.errors,n),this._checkPipes(r,n),r}catch(i){return this._reportError(""+i,n),this._exprParser.wrapLiteralPrimitive("ERROR",o)}},BindingParser.prototype.createElementPropertyAst=function(e,t){if(t.isAnimation)return new l.d(t.name,l.e.Animation,o.SecurityContext.NONE,(!1),t.expression,null,t.sourceSpan);var r,a,s=null,u=null,c=t.name.split(d);if(c.length>1)if(c[0]==p){u=c[1],this._validatePropertyOrAttributeName(u,t.sourceSpan,!0),a=calcPossibleSecurityContexts(this._schemaRegistry,e,u,!0);var h=u.indexOf(":");if(h>-1){var m=u.substring(0,h),y=u.substring(h+1);u=n.i(i.d)(m,y)}r=l.e.Attribute}else c[0]==g?(u=c[1],r=l.e.Class,a=[o.SecurityContext.NONE]):c[0]==f&&(s=c.length>2?c[2]:null,u=c[1],r=l.e.Style,a=[o.SecurityContext.STYLE]);return null===u&&(u=this._schemaRegistry.getMappedPropName(t.name),a=calcPossibleSecurityContexts(this._schemaRegistry,e,u,!1),r=l.e.Property,this._validatePropertyOrAttributeName(u,t.sourceSpan,!1)),new l.d(u,r,1===a.length?a[0]:null,a.length>1,t.expression,s,t.sourceSpan)},BindingParser.prototype.parseEvent=function(e,t,n,o,r){_isAnimationLabel(e)?(e=e.substr(1),this._parseAnimationEvent(e,t,n,r)):this._parseEvent(e,t,n,o,r)},BindingParser.prototype._parseAnimationEvent=function(e,t,o,r){var i=n.i(u.b)(e,[e,""]),a=i[0],s=i[1].toLowerCase();if(s)switch(s){case"start":case"done":var c=this._parseAction(t,o);r.push(new l.f(a,null,s,c,o));break;default:this._reportError('The provided animation output phase value "'+s+'" for "@'+a+'" is not supported (use start or done)',o)}else this._reportError("The animation trigger output event (@"+a+") is missing its phase value name (start or done are currently supported)",o)},BindingParser.prototype._parseEvent=function(e,t,o,r,i){var a=n.i(u.a)(e,[null,e]),s=a[0],c=a[1],d=this._parseAction(t,o);r.push([e,d.source]),i.push(new l.f(c,s,null,d,o))},BindingParser.prototype._parseAction=function(e,t){var n=t.start.toString();try{var o=this._exprParser.parseAction(e,n,this._interpolationConfig);return o&&this._reportExpressionParserErrors(o.errors,t),!o||o.ast instanceof r.g?(this._reportError("Empty expressions are not allowed",t),this._exprParser.wrapLiteralPrimitive("ERROR",n)):(this._checkPipes(o,t),o)}catch(i){return this._reportError(""+i,t),this._exprParser.wrapLiteralPrimitive("ERROR",n)}},BindingParser.prototype._reportError=function(e,t,n){void 0===n&&(n=a.e.FATAL),this._targetErrors.push(new a.a(t,e,n))},BindingParser.prototype._reportExpressionParserErrors=function(e,t){for(var n=0,o=e;n<o.length;n++){var r=o[n];this._reportError(r.message,t)}},BindingParser.prototype._checkPipes=function(e,t){var n=this;if(e){var o=new v;e.visit(o),o.pipes.forEach(function(e,o){n.pipesByName.has(o)||n._reportError("The pipe '"+o+"' could not be found",new a.d(t.start.moveBy(e.span.start),t.start.moveBy(e.span.end)))})}},BindingParser.prototype._validatePropertyOrAttributeName=function(e,t,n){var o=n?this._schemaRegistry.validateAttribute(e):this._schemaRegistry.validateProperty(e);o.error&&this._reportError(o.msg,t,a.e.FATAL)},BindingParser}(),v=function(e){function PipeCollector(){e.apply(this,arguments),this.pipes=new Map}return c(PipeCollector,e),PipeCollector.prototype.visitPipe=function(e,t){return this.pipes.set(e.name,e),e.exp.visit(this),this.visitAll(e.args,t),null},PipeCollector}(r.y)},function(e,t,n){"use strict";function preparseElement(e){var t=null,m=null,y=null,b=!1,v=null;e.attrs.forEach(function(e){var n=e.name.toLowerCase();n==r?t=e.value:n==u?m=e.value:n==s?y=e.value:e.name==p?b=!0:e.name==g&&e.value.length>0&&(v=e.value)}),t=normalizeNgContentSelect(t);var _=e.name.toLowerCase(),E=f.OTHER;return n.i(o.e)(_)[1]==i?E=f.NG_CONTENT:_==c?E=f.STYLE:_==d?E=f.SCRIPT:_==a&&y==l&&(E=f.STYLESHEET),new h(E,t,m,b,v)}function normalizeNgContentSelect(e){return null===e||0===e.length?"*":e}var o=n(87);t.a=preparseElement,n.d(t,"b",function(){return f});var r="select",i="ng-content",a="link",s="rel",u="href",l="stylesheet",c="style",d="script",p="ngNonBindable",g="ngProjectAs",f={};f.NG_CONTENT=0,f.STYLE=1,f.STYLESHEET=2,f.SCRIPT=3,f.OTHER=4,f[f.NG_CONTENT]="NG_CONTENT",f[f.STYLE]="STYLE",f[f.STYLESHEET]="STYLESHEET",f[f.SCRIPT]="SCRIPT",f[f.OTHER]="OTHER";var h=function(){function PreparsedElement(e,t,n,o,r){this.type=e,this.selectAttr=t,this.hrefAttr=n,this.nonBindable=o,this.projectAs=r}return PreparsedElement}()},function(e,t,n){"use strict";function createInjectInternalCondition(e,t,o,i){var a;return a=t>0?u.f(e).lowerEquals(g.a.requestNodeIndex).and(g.a.requestNodeIndex.lowerEquals(u.f(e+t))):u.f(e).identical(g.a.requestNodeIndex),new u.e(g.a.token.identical(n.i(r.c)(o.token)).and(a),[new u.t(i)])}function createProviderProperty(e,t,n,o,r){var i,a,s=r.view;if(n?(i=u.n(t),a=new u.u(u.h)):(i=t[0],a=t[0].type),a||(a=u.h),o)s.fields.push(new u.a(e,a)),s.createMethod.addStmt(u.c.prop(e).set(i).toStmt());else{var l="_"+e;s.fields.push(new u.a(l,a));var c=new d.a(s);c.resetDebugInfo(r.nodeIndex,r.sourceAst),c.addStmt(new u.e(u.c.prop(l).isBlank(),[u.c.prop(l).set(i).toStmt()])),c.addStmt(new u.t(u.c.prop(l))),s.getters.push(new u.K(e,c.finish(),a))}return u.c.prop(e)}var o=n(14),r=n(46),i=n(73),a=n(7),s=n(19),u=n(10),l=n(363),c=n(48),d=n(252),p=n(369),g=n(175),f=n(253),h=n(89);n.d(t,"b",function(){return y}),n.d(t,"a",function(){return b});var m=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},y=function(){function CompileNode(e,t,n,o,r){this.parent=e,this.view=t,this.nodeIndex=n,this.renderNode=o,this.sourceAst=r}return CompileNode.prototype.isNull=function(){return!this.renderNode},CompileNode.prototype.isRootElement=function(){return this.view!=this.parent.view},CompileNode}(),b=function(e){function CompileElement(t,o,r,i,a,l,c,d,p,g,f){var h=this;e.call(this,t,o,r,i,a),this.component=l,this._directives=c,this._resolvedProvidersArray=d,this.hasViewContainer=p,this.hasEmbeddedView=g,this.compViewExpr=null,this.instances=new Map,this.directiveWrapperInstance=new Map,this._queryCount=0,this._queries=new Map,this.contentNodesByNgContentIndex=null,this.referenceTokens={},f.forEach(function(e){return h.referenceTokens[e.name]=e.value}),this.elementRef=u.d(n.i(s.e)(s.b.ElementRef)).instantiate([this.renderNode]),this.instances.set(n.i(s.a)(s.b.ElementRef),this.elementRef),this.instances.set(n.i(s.a)(s.b.Injector),u.c.callMethod("injector",[u.f(this.nodeIndex)])),this.instances.set(n.i(s.a)(s.b.Renderer),u.c.prop("renderer")),(this.hasViewContainer||this.hasEmbeddedView)&&this._createViewContainer(),this.component&&this._createComponentFactoryResolver()}return m(CompileElement,e),CompileElement.createNull=function(){return new CompileElement(null,null,null,null,null,null,[],[],(!1),(!1),[])},CompileElement.prototype._createViewContainer=function(){var e="_vc_"+this.nodeIndex,t=this.isRootElement()?null:this.parent.nodeIndex;this.view.fields.push(new u.a(e,u.B(n.i(s.e)(s.b.ViewContainer)),[u.b.Private]));var o=u.c.prop(e).set(u.d(n.i(s.e)(s.b.ViewContainer)).instantiate([u.f(this.nodeIndex),u.f(t),u.c,this.renderNode])).toStmt();this.view.createMethod.addStmt(o),this.viewContainer=u.c.prop(e),this.instances.set(n.i(s.a)(s.b.ViewContainer),this.viewContainer),this.view.viewContainers.push(this.viewContainer)},CompileElement.prototype._createComponentFactoryResolver=function(){var e=this,t=this.component.entryComponents.map(function(t){var n={reference:null};return e.view.targetDependencies.push(new f.a(t,n)),n});if(t&&0!==t.length){var o=u.d(n.i(s.e)(s.b.CodegenComponentFactoryResolver)).instantiate([u.n(t.map(function(e){return u.d(e)})),n.i(h.b)(this.view,n.i(s.d)(s.b.ComponentFactoryResolver),!1)]),r={token:n.i(s.d)(s.b.ComponentFactoryResolver),useValue:o};this._resolvedProvidersArray.unshift(new c.b(r.token,(!1),(!0),[r],c.a.PrivateService,[],this.sourceAst.sourceSpan))}},CompileElement.prototype.setComponentView=function(e){this.compViewExpr=e,this.contentNodesByNgContentIndex=new Array(this.component.template.ngContentSelectors.length);for(var t=0;t<this.contentNodesByNgContentIndex.length;t++)this.contentNodesByNgContentIndex[t]=[]},CompileElement.prototype.setEmbeddedView=function(e){if(this.embeddedView=e,n.i(a.f)(e)){var t=u.d(n.i(s.e)(s.b.TemplateRef_)).instantiate([u.c,u.f(this.nodeIndex),this.renderNode]),o={token:n.i(s.d)(s.b.TemplateRef),useValue:t};this._resolvedProvidersArray.unshift(new c.b(o.token,(!1),(!0),[o],c.a.Builtin,[],this.sourceAst.sourceSpan))}},CompileElement.prototype.beforeChildren=function(){var e=this;this.hasViewContainer&&this.instances.set(n.i(s.a)(s.b.ViewContainerRef),this.viewContainer.prop("vcRef")),this._resolvedProviders=new Map,this._resolvedProvidersArray.forEach(function(t){return e._resolvedProviders.set(n.i(o.a)(t.token),t)}),Array.from(this._resolvedProviders.values()).forEach(function(t){var r=t.providerType===c.a.Component||t.providerType===c.a.Directive,a=t.providers.map(function(o){if(o.useExisting)return e._getDependency(t.providerType,{token:o.useExisting});if(o.useFactory){var a=o.deps||o.useFactory.diDeps,s=a.map(function(n){return e._getDependency(t.providerType,n)});return u.d(o.useFactory).callFn(s)}if(o.useClass){var a=o.deps||o.useClass.diDeps,s=a.map(function(n){return e._getDependency(t.providerType,n)});if(r){var c={reference:null};return e.view.targetDependencies.push(new f.b(o.useClass,i.a.dirWrapperClassName(o.useClass),c)),i.b.create(c,s)}return u.d(o.useClass).instantiate(s,u.B(o.useClass))}return n.i(l.a)(o.useValue)}),s="_"+n.i(o.b)(t.token)+"_"+e.nodeIndex+"_"+e.instances.size,d=createProviderProperty(s,a,t.multiProvider,t.eager,e);r?(e.directiveWrapperInstance.set(n.i(o.a)(t.token),d),e.instances.set(n.i(o.a)(t.token),i.b.context(d))):e.instances.set(n.i(o.a)(t.token),d)});for(var t=function(t){var i=r._directives[t],a=r.instances.get(n.i(o.a)(n.i(s.c)(i.type)));i.queries.forEach(function(t){e._addQuery(t,a)})},r=this,a=0;a<this._directives.length;a++)t(a);Object.keys(this.referenceTokens).forEach(function(t){var r,i=e.referenceTokens[t];r=i?e.instances.get(n.i(o.a)(i)):e.renderNode,e.view.locals.set(t,r)})},CompileElement.prototype.afterChildren=function(e){var t=this;Array.from(this._resolvedProviders.values()).forEach(function(r){var i=t.instances.get(n.i(o.a)(r.token)),a=r.providerType===c.a.PrivateService?0:e;t.view.injectorGetMethod.addStmt(createInjectInternalCondition(t.nodeIndex,a,r,i))})},CompileElement.prototype.finish=function(){var e=this;Array.from(this._queries.values()).forEach(function(t){return t.forEach(function(t){return t.generateStatements(e.view.createMethod,e.view.updateContentQueriesMethod)})})},CompileElement.prototype.addContentNode=function(e,t){this.contentNodesByNgContentIndex[e].push(t)},CompileElement.prototype.getComponent=function(){return n.i(a.f)(this.component)?this.instances.get(n.i(o.a)(n.i(s.c)(this.component.type))):null},CompileElement.prototype.getProviderTokens=function(){return Array.from(this._resolvedProviders.values()).map(function(e){return e.token})},CompileElement.prototype.getQueriesFor=function(e){for(var t,r=[],i=this,s=0;!i.isNull();)t=i._queries.get(n.i(o.a)(e)),n.i(a.f)(t)&&r.push.apply(r,t.filter(function(e){return e.meta.descendants||s<=1})),i._directives.length>0&&s++,i=i.parent;return t=this.view.componentView.viewQueries.get(n.i(o.a)(e)),n.i(a.f)(t)&&r.push.apply(r,t),r},CompileElement.prototype._addQuery=function(e,t){var r="_query_"+n.i(o.b)(e.selectors[0])+"_"+this.nodeIndex+"_"+this._queryCount++,i=n.i(p.a)(r,this.view),a=new p.b(e,i,t,this.view);return n.i(p.c)(this._queries,a),a},CompileElement.prototype._getLocalDependency=function(e,t){var r=null;if(n.i(a.f)(t.token)){if(!r&&n.i(o.a)(t.token)===n.i(s.a)(s.b.ChangeDetectorRef))return e===c.a.Component?this.compViewExpr.prop("ref"):n.i(h.a)(u.c.prop("ref"),this.view,this.view.componentView);if(!r){var i=this._resolvedProviders.get(n.i(o.a)(t.token));if(i&&(e===c.a.Directive||e===c.a.PublicService)&&i.providerType===c.a.PrivateService)return null;r=this.instances.get(n.i(o.a)(t.token))}}return r},CompileElement.prototype._getDependency=function(e,t){var o=this,r=null;for(t.isValue&&(r=u.f(t.value)),r||t.isSkipSelf||(r=this._getLocalDependency(e,t));!r&&!o.parent.isNull();)o=o.parent,r=o._getLocalDependency(c.a.PublicService,{token:t.token});return r||(r=n.i(h.b)(this.view,t.token,t.isOptional)),r||(r=u.k),n.i(h.a)(r,this.view,o.view)},CompileElement}(y)},function(e,t,n){"use strict";function createQueryValues(e){return r.a.flatten(e.values.map(function(e){return e instanceof u?mapNestedViews(e.view.declarationElement.viewContainer,e.view,createQueryValues(e)):e}))}function mapNestedViews(e,t,n){var o=n.map(function(e){return a.S(a.c.name,a.g("nestedView"),e)});return e.callMethod("mapNestedViews",[a.g(t.className),a.s([new a.r("nestedView",t.classType)],[new a.t(a.n(o))],a.h)])}function createQueryList(e,t){t.fields.push(new a.a(e,a.B(n.i(i.e)(i.b.QueryList),[a.h])));var o=a.c.prop(e);return t.createMethod.addStmt(a.c.prop(e).set(a.d(n.i(i.e)(i.b.QueryList),[a.h]).instantiate([])).toStmt()),o}function addQueryToTokenMap(e,t){t.meta.selectors.forEach(function(r){var i=e.get(n.i(o.a)(r));i||(i=[],e.set(n.i(o.a)(r),i)),i.push(t)})}var o=n(14),r=n(85),i=n(19),a=n(10),s=n(89);n.d(t,"b",function(){return l}),t.a=createQueryList,t.c=addQueryToTokenMap;var u=function(){function ViewQueryValues(e,t){this.view=e,this.values=t}return ViewQueryValues}(),l=function(){function CompileQuery(e,t,n,o){this.meta=e,this.queryList=t,this.ownerDirectiveExpression=n,this.view=o,this._values=new u(o,[])}return CompileQuery.prototype.addValue=function(e,t){for(var o=t,r=[];o&&o!==this.view;){var i=o.declarationElement;r.unshift(i),o=i.view}var a=n.i(s.a)(this.queryList,t,this.view),l=this._values;r.forEach(function(e){var t=l.values.length>0?l.values[l.values.length-1]:null;if(t instanceof u&&t.view===e.embeddedView)l=t;else{var n=new u(e.embeddedView,[]);l.values.push(n),l=n}}),l.values.push(e),r.length>0&&t.dirtyParentQueriesMethod.addStmt(a.callMethod("setDirty",[]).toStmt())},CompileQuery.prototype._isStatic=function(){return!this._values.values.some(function(e){return e instanceof u})},CompileQuery.prototype.generateStatements=function(e,t){var n=createQueryValues(this._values),o=[this.queryList.callMethod("reset",[a.n(n)]).toStmt()];if(this.ownerDirectiveExpression){var r=this.meta.first?this.queryList.prop("first"):this.queryList;o.push(this.ownerDirectiveExpression.prop(this.meta.propertyName).set(r).toStmt())}this.meta.first||o.push(this.queryList.callMethod("notifyOnChanges",[]).toStmt()),this.meta.first&&this._isStatic()?e.addStmts(o):t.addStmt(new a.e(this.queryList.prop("dirty"),o))},CompileQuery}()},function(e,t,n){"use strict";function getViewType(e,t){return t>0?s.l.EMBEDDED:e.isHost?s.l.HOST:s.l.COMPONENT}var o=n(14),r=n(122),i=n(7),a=n(10),s=n(17),u=n(252),l=n(634),c=n(369),d=n(89);n.d(t,"b",function(){return p}),n.d(t,"a",function(){return g}),n.d(t,"c",function(){return f});var p={};p.Node=0,p.ViewContainer=1,p.NgContent=2,p[p.Node]="Node",p[p.ViewContainer]="ViewContainer",p[p.NgContent]="NgContent";var g=function(){function CompileViewRootNode(e,t,n){this.type=e,this.expr=t,this.ngContentIndex=n}return CompileViewRootNode}(),f=function(){function CompileView(e,t,r,i,l,p,g,f,h){var m=this;this.component=e,this.genConfig=t,this.pipeMetas=r,this.styles=i,this.animations=l,this.viewIndex=p,this.declarationElement=g,this.templateVariableBindings=f,this.targetDependencies=h,this.viewChildren=[],this.nodes=[],this.rootNodes=[],this.lastRenderNode=a.k,this.viewContainers=[],this.methods=[],this.ctorStmts=[],this.fields=[],this.getters=[],this.disposables=[],this.purePipes=new Map,this.pipes=[],this.locals=new Map,this.literalArrayCount=0,this.literalMapCount=0,this.pipeCount=0,this.createMethod=new u.a(this),this.animationBindingsMethod=new u.a(this),this.injectorGetMethod=new u.a(this),this.updateContentQueriesMethod=new u.a(this),this.dirtyParentQueriesMethod=new u.a(this),this.updateViewQueriesMethod=new u.a(this),this.detectChangesInInputsMethod=new u.a(this),this.detectChangesRenderPropertiesMethod=new u.a(this),this.afterContentLifecycleCallbacksMethod=new u.a(this),this.afterViewLifecycleCallbacksMethod=new u.a(this),this.destroyMethod=new u.a(this),this.detachMethod=new u.a(this),this.viewType=getViewType(e,p),this.className=n.i(d.c)(e,p),this.classType=a.T(a.g(this.className)),this.classExpr=a.g(this.className),this.viewType===s.l.COMPONENT||this.viewType===s.l.HOST?this.componentView=this:this.componentView=this.declarationElement.view.componentView,this.componentContext=n.i(d.a)(a.c.prop("context"),this,this.componentView);var y=new Map;if(this.viewType===s.l.COMPONENT){var b=a.c.prop("context");this.component.viewQueries.forEach(function(e,t){var r="_viewQuery_"+n.i(o.b)(e.selectors[0])+"_"+t,i=n.i(c.a)(r,m),a=new c.b(e,i,b,m);n.i(c.c)(y,a)})}this.viewQueries=y,f.forEach(function(e){m.locals.set(e[1],a.c.prop("context").prop(e[0]))}),this.declarationElement.isNull()||this.declarationElement.setEmbeddedView(this)}return CompileView.prototype.callPipe=function(e,t,n){return l.a.call(this,e,[t].concat(n))},CompileView.prototype.getLocal=function(e){if(e==r.c.event.name)return r.c.event;for(var t=this,o=t.locals.get(e);!o&&n.i(i.f)(t.declarationElement.view);)t=t.declarationElement.view,o=t.locals.get(e);return n.i(i.f)(o)?n.i(d.a)(o,this,t):null},CompileView.prototype.finish=function(){var e=this;Array.from(this.viewQueries.values()).forEach(function(t){return t.forEach(function(t){return t.generateStatements(e.createMethod,e.updateViewQueriesMethod)})})},CompileView}()},function(e,t,n){"use strict";n.d(t,"a",function(){return o}),n.d(t,"b",function(){return r}),n.d(t,"c",function(){return i}),n.d(t,"d",function(){return a});var o="true",r="*",i="*",a="void"},function(e,t,n){"use strict";var o=n(8);n.d(t,"a",function(){return r});var r=function(){function AnimationGroupPlayer(e){var t=this;this._players=e,this._onDoneFns=[],this._onStartFns=[],this._finished=!1,this._started=!1,this._destroyed=!1,this.parentPlayer=null;var r=0,i=this._players.length;0==i?n.i(o.l)(function(){return t._onFinish()}):this._players.forEach(function(e){e.parentPlayer=t,e.onDone(function(){++r>=i&&t._onFinish()})})}return AnimationGroupPlayer.prototype._onFinish=function(){this._finished||(this._finished=!0,this._onDoneFns.forEach(function(e){return e()}),this._onDoneFns=[])},AnimationGroupPlayer.prototype.init=function(){this._players.forEach(function(e){return e.init()})},AnimationGroupPlayer.prototype.onStart=function(e){this._onStartFns.push(e)},AnimationGroupPlayer.prototype.onDone=function(e){this._onDoneFns.push(e)},AnimationGroupPlayer.prototype.hasStarted=function(){return this._started},AnimationGroupPlayer.prototype.play=function(){n.i(o.d)(this.parentPlayer)||this.init(),this.hasStarted()||(this._onStartFns.forEach(function(e){return e()}),this._onStartFns=[],this._started=!0),this._players.forEach(function(e){return e.play()})},AnimationGroupPlayer.prototype.pause=function(){this._players.forEach(function(e){return e.pause()})},AnimationGroupPlayer.prototype.restart=function(){this._players.forEach(function(e){return e.restart()})},AnimationGroupPlayer.prototype.finish=function(){this._onFinish(),this._players.forEach(function(e){return e.finish()})},AnimationGroupPlayer.prototype.destroy=function(){this._destroyed||(this._onFinish(),this._players.forEach(function(e){return e.destroy()}),this._destroyed=!0)},AnimationGroupPlayer.prototype.reset=function(){this._players.forEach(function(e){return e.reset()}),this._destroyed=!1,this._finished=!1,this._started=!1},AnimationGroupPlayer.prototype.setPosition=function(e){this._players.forEach(function(t){t.setPosition(e)})},AnimationGroupPlayer.prototype.getPosition=function(){var e=0;return this._players.forEach(function(t){var n=t.getPosition();e=Math.min(n,e)}),e},Object.defineProperty(AnimationGroupPlayer.prototype,"players",{get:function(){return this._players},enumerable:!0,configurable:!0}),AnimationGroupPlayer}()},function(e,t,n){"use strict";n.d(t,"a",function(){return o});var o=function(){function AnimationKeyframe(e,t){this.offset=e,this.styles=t}return AnimationKeyframe}()},function(e,t,n){"use strict";var o=n(108),r=n(186);n.d(t,"a",function(){return i});var i=function(){function AnimationQueue(e){this._zone=e,this.entries=[]}return AnimationQueue.prototype.enqueue=function(e){this.entries.push(e)},AnimationQueue.prototype.flush=function(){var e=this;this.entries.length&&this._zone.runOutsideAngular(function(){Promise.resolve(null).then(function(){return e._triggerAnimations()})})},AnimationQueue.prototype._triggerAnimations=function(){for(r.a.assertNotInAngularZone();this.entries.length;){var e=this.entries.shift();e.hasStarted()||e.play()}},AnimationQueue.decorators=[{type:o.a}],AnimationQueue.ctorParameters=function(){return[{type:r.a}]},AnimationQueue}()},function(e,t,n){"use strict";var o=n(8),r=n(254);n.d(t,"a",function(){return i});var i=function(){function AnimationSequencePlayer(e){var t=this;this._players=e,this._currentIndex=0,this._onDoneFns=[],this._onStartFns=[],this._finished=!1,this._started=!1,this._destroyed=!1,this.parentPlayer=null,this._players.forEach(function(e){e.parentPlayer=t}),this._onNext(!1)}return AnimationSequencePlayer.prototype._onNext=function(e){var t=this;if(!this._finished)if(0==this._players.length)this._activePlayer=new r.a,n.i(o.l)(function(){return t._onFinish()});else if(this._currentIndex>=this._players.length)this._activePlayer=new r.a,this._onFinish();else{var i=this._players[this._currentIndex++];i.onDone(function(){return t._onNext(!0)}),this._activePlayer=i,e&&i.play()}},AnimationSequencePlayer.prototype._onFinish=function(){this._finished||(this._finished=!0,this._onDoneFns.forEach(function(e){return e()}),this._onDoneFns=[])},AnimationSequencePlayer.prototype.init=function(){this._players.forEach(function(e){return e.init()})},AnimationSequencePlayer.prototype.onStart=function(e){this._onStartFns.push(e)},AnimationSequencePlayer.prototype.onDone=function(e){this._onDoneFns.push(e)},AnimationSequencePlayer.prototype.hasStarted=function(){return this._started},AnimationSequencePlayer.prototype.play=function(){n.i(o.d)(this.parentPlayer)||this.init(),this.hasStarted()||(this._onStartFns.forEach(function(e){return e()}),this._onStartFns=[],this._started=!0),this._activePlayer.play()},AnimationSequencePlayer.prototype.pause=function(){this._activePlayer.pause()},AnimationSequencePlayer.prototype.restart=function(){this.reset(),this._players.length>0&&this._players[0].restart()},AnimationSequencePlayer.prototype.reset=function(){this._players.forEach(function(e){return e.reset()}),this._destroyed=!1,this._finished=!1,this._started=!1},AnimationSequencePlayer.prototype.finish=function(){this._onFinish(),this._players.forEach(function(e){return e.finish()})},AnimationSequencePlayer.prototype.destroy=function(){this._destroyed||(this._onFinish(),this._players.forEach(function(e){return e.destroy()}),this._destroyed=!0,this._activePlayer=new r.a)},AnimationSequencePlayer.prototype.setPosition=function(e){this._players[0].setPosition(e)},AnimationSequencePlayer.prototype.getPosition=function(){return this._players[0].getPosition()},Object.defineProperty(AnimationSequencePlayer.prototype,"players",{get:function(){return this._players},enumerable:!0,configurable:!0}),AnimationSequencePlayer}()},function(e,t,n){"use strict";n.d(t,"a",function(){return o});var o=function(){function AnimationStyles(e){this.styles=e}return AnimationStyles}()},function(e,t,n){"use strict";n.d(t,"a",function(){return o});var o=function(){function AnimationTransitionEvent(e){var t=e.fromState,n=e.toState,o=e.totalTime,r=e.phaseName;this.fromState=t,this.toState=n,this.totalTime=o,this.phaseName=r}return AnimationTransitionEvent}()},function(e,t,n){"use strict";function animate(e,t){void 0===t&&(t=null);var r=t;if(!n.i(o.d)(r)){var i={};r=new p([i],1)}return new g(e,r)}function group(e){return new m(e)}function sequence(e){return new h(e)}function style(e){var t,r=null;return"string"==typeof e?t=[e]:(t=Array.isArray(e)?e:[e],t.forEach(function(e){var t=e.offset;n.i(o.d)(t)&&(r=null==r?parseFloat(t):r)})),new p(t,r)}function state(e,t){return new u(e,t)}function keyframes(e){return new d(e)}function transition(e,t){var n=Array.isArray(t)?new h(t):t;return new l(e,n)}function trigger(e,t){return new a(e,t)}var o=n(8);n.d(t,"a",function(){return i}),n.d(t,"q",function(){return a}),n.d(t,"r",function(){return s}),n.d(t,"b",function(){return u}),n.d(t,"c",function(){return l}),n.d(t,"s",function(){return c}),n.d(t,"e",function(){return d}),n.d(t,"d",function(){return p}),n.d(t,"f",function(){return g}),n.d(t,"g",function(){return f}),n.d(t,"t",function(){return h}),n.d(t,"h",function(){return m}),t.m=animate,t.p=group,t.o=sequence,t.l=style,t.j=state,t.n=keyframes,t.k=transition,t.i=trigger;var r=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},i="*",a=function(){function AnimationEntryMetadata(e,t){this.name=e,this.definitions=t;
}return AnimationEntryMetadata}(),s=function(){function AnimationStateMetadata(){}return AnimationStateMetadata}(),u=function(e){function AnimationStateDeclarationMetadata(t,n){e.call(this),this.stateNameExpr=t,this.styles=n}return r(AnimationStateDeclarationMetadata,e),AnimationStateDeclarationMetadata}(s),l=function(e){function AnimationStateTransitionMetadata(t,n){e.call(this),this.stateChangeExpr=t,this.steps=n}return r(AnimationStateTransitionMetadata,e),AnimationStateTransitionMetadata}(s),c=function(){function AnimationMetadata(){}return AnimationMetadata}(),d=function(e){function AnimationKeyframesSequenceMetadata(t){e.call(this),this.steps=t}return r(AnimationKeyframesSequenceMetadata,e),AnimationKeyframesSequenceMetadata}(c),p=function(e){function AnimationStyleMetadata(t,n){void 0===n&&(n=null),e.call(this),this.styles=t,this.offset=n}return r(AnimationStyleMetadata,e),AnimationStyleMetadata}(c),g=function(e){function AnimationAnimateMetadata(t,n){e.call(this),this.timings=t,this.styles=n}return r(AnimationAnimateMetadata,e),AnimationAnimateMetadata}(c),f=function(e){function AnimationWithStepsMetadata(){e.call(this)}return r(AnimationWithStepsMetadata,e),Object.defineProperty(AnimationWithStepsMetadata.prototype,"steps",{get:function(){throw new Error("NOT IMPLEMENTED: Base Class")},enumerable:!0,configurable:!0}),AnimationWithStepsMetadata}(c),h=function(e){function AnimationSequenceMetadata(t){e.call(this),this._steps=t}return r(AnimationSequenceMetadata,e),Object.defineProperty(AnimationSequenceMetadata.prototype,"steps",{get:function(){return this._steps},enumerable:!0,configurable:!0}),AnimationSequenceMetadata}(f),m=function(e){function AnimationGroupMetadata(t){e.call(this),this._steps=t}return r(AnimationGroupMetadata,e),Object.defineProperty(AnimationGroupMetadata.prototype,"steps",{get:function(){return this._steps},enumerable:!0,configurable:!0}),AnimationGroupMetadata}(f)},function(e,t,n){"use strict";n.d(t,"a",function(){return o});var o=function(){function ChangeDetectorRef(){}return ChangeDetectorRef.prototype.markForCheck=function(){},ChangeDetectorRef.prototype.detach=function(){},ChangeDetectorRef.prototype.detectChanges=function(){},ChangeDetectorRef.prototype.checkNoChanges=function(){},ChangeDetectorRef.prototype.reattach=function(){},ChangeDetectorRef}()},function(e,t,n){"use strict";var o=n(8);n.d(t,"a",function(){return r}),n.d(t,"b",function(){return a});var r=function(){function DefaultKeyValueDifferFactory(){}return DefaultKeyValueDifferFactory.prototype.supports=function(e){return e instanceof Map||n.i(o.e)(e)},DefaultKeyValueDifferFactory.prototype.create=function(e){return new i},DefaultKeyValueDifferFactory}(),i=function(){function DefaultKeyValueDiffer(){this._records=new Map,this._mapHead=null,this._previousMapHead=null,this._changesHead=null,this._changesTail=null,this._additionsHead=null,this._additionsTail=null,this._removalsHead=null,this._removalsTail=null}return Object.defineProperty(DefaultKeyValueDiffer.prototype,"isDirty",{get:function(){return null!==this._additionsHead||null!==this._changesHead||null!==this._removalsHead},enumerable:!0,configurable:!0}),DefaultKeyValueDiffer.prototype.forEachItem=function(e){var t;for(t=this._mapHead;null!==t;t=t._next)e(t)},DefaultKeyValueDiffer.prototype.forEachPreviousItem=function(e){var t;for(t=this._previousMapHead;null!==t;t=t._nextPrevious)e(t)},DefaultKeyValueDiffer.prototype.forEachChangedItem=function(e){var t;for(t=this._changesHead;null!==t;t=t._nextChanged)e(t)},DefaultKeyValueDiffer.prototype.forEachAddedItem=function(e){var t;for(t=this._additionsHead;null!==t;t=t._nextAdded)e(t)},DefaultKeyValueDiffer.prototype.forEachRemovedItem=function(e){var t;for(t=this._removalsHead;null!==t;t=t._nextRemoved)e(t)},DefaultKeyValueDiffer.prototype.diff=function(e){if(e){if(!(e instanceof Map||n.i(o.e)(e)))throw new Error("Error trying to diff '"+e+"'")}else e=new Map;return this.check(e)?this:null},DefaultKeyValueDiffer.prototype.onDestroy=function(){},DefaultKeyValueDiffer.prototype.check=function(e){var t=this;this._reset();var n=this._records,o=this._mapHead,r=null,i=null,s=!1;return this._forEach(e,function(e,u){var l;o&&u===o.key?(l=o,t._maybeAddToChanges(l,e)):(s=!0,null!==o&&(t._removeFromSeq(r,o),t._addToRemovals(o)),n.has(u)?(l=n.get(u),t._maybeAddToChanges(l,e)):(l=new a(u),n.set(u,l),l.currentValue=e,t._addToAdditions(l))),s&&(t._isInRemovals(l)&&t._removeFromRemovals(l),null==i?t._mapHead=l:i._next=l),r=o,i=l,o=o&&o._next}),this._truncate(r,o),this.isDirty},DefaultKeyValueDiffer.prototype._reset=function(){if(this.isDirty){var e=void 0;for(e=this._previousMapHead=this._mapHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._changesHead;null!==e;e=e._nextChanged)e.previousValue=e.currentValue;for(e=this._additionsHead;null!=e;e=e._nextAdded)e.previousValue=e.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=this._removalsTail=null}},DefaultKeyValueDiffer.prototype._truncate=function(e,t){for(;null!==t;){null===e?this._mapHead=null:e._next=null;var n=t._next;this._addToRemovals(t),e=t,t=n}for(var o=this._removalsHead;null!==o;o=o._nextRemoved)o.previousValue=o.currentValue,o.currentValue=null,this._records.delete(o.key)},DefaultKeyValueDiffer.prototype._maybeAddToChanges=function(e,t){n.i(o.i)(t,e.currentValue)||(e.previousValue=e.currentValue,e.currentValue=t,this._addToChanges(e))},DefaultKeyValueDiffer.prototype._isInRemovals=function(e){return e===this._removalsHead||null!==e._nextRemoved||null!==e._prevRemoved},DefaultKeyValueDiffer.prototype._addToRemovals=function(e){null===this._removalsHead?this._removalsHead=this._removalsTail=e:(this._removalsTail._nextRemoved=e,e._prevRemoved=this._removalsTail,this._removalsTail=e)},DefaultKeyValueDiffer.prototype._removeFromSeq=function(e,t){var n=t._next;null===e?this._mapHead=n:e._next=n,t._next=null},DefaultKeyValueDiffer.prototype._removeFromRemovals=function(e){var t=e._prevRemoved,n=e._nextRemoved;null===t?this._removalsHead=n:t._nextRemoved=n,null===n?this._removalsTail=t:n._prevRemoved=t,e._prevRemoved=e._nextRemoved=null},DefaultKeyValueDiffer.prototype._addToAdditions=function(e){null===this._additionsHead?this._additionsHead=this._additionsTail=e:(this._additionsTail._nextAdded=e,this._additionsTail=e)},DefaultKeyValueDiffer.prototype._addToChanges=function(e){null===this._changesHead?this._changesHead=this._changesTail=e:(this._changesTail._nextChanged=e,this._changesTail=e)},DefaultKeyValueDiffer.prototype.toString=function(){var e,t=[],r=[],i=[],a=[],s=[];for(e=this._mapHead;null!==e;e=e._next)t.push(n.i(o.b)(e));for(e=this._previousMapHead;null!==e;e=e._nextPrevious)r.push(n.i(o.b)(e));for(e=this._changesHead;null!==e;e=e._nextChanged)i.push(n.i(o.b)(e));for(e=this._additionsHead;null!==e;e=e._nextAdded)a.push(n.i(o.b)(e));for(e=this._removalsHead;null!==e;e=e._nextRemoved)s.push(n.i(o.b)(e));return"map: "+t.join(", ")+"\nprevious: "+r.join(", ")+"\nadditions: "+a.join(", ")+"\nchanges: "+i.join(", ")+"\nremovals: "+s.join(", ")+"\n"},DefaultKeyValueDiffer.prototype._forEach=function(e,t){e instanceof Map?e.forEach(t):Object.keys(e).forEach(function(n){return t(e[n],n)})},DefaultKeyValueDiffer}(),a=function(){function KeyValueChangeRecord(e){this.key=e,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._nextAdded=null,this._nextRemoved=null,this._prevRemoved=null,this._nextChanged=null}return KeyValueChangeRecord.prototype.toString=function(){return n.i(o.i)(this.previousValue,this.currentValue)?n.i(o.b)(this.key):n.i(o.b)(this.key)+"["+n.i(o.b)(this.previousValue)+"->"+n.i(o.b)(this.currentValue)+"]"},KeyValueChangeRecord}()},function(e,t,n){"use strict";var o=n(41),r=n(8);n.d(t,"a",function(){return i});var i=function(){function IterableDiffers(e){this.factories=e}return IterableDiffers.create=function(e,t){if(n.i(r.d)(t)){var o=t.factories.slice();return e=e.concat(o),new IterableDiffers(e)}return new IterableDiffers(e)},IterableDiffers.extend=function(e){return{provide:IterableDiffers,useFactory:function(t){if(!t)throw new Error("Cannot extend IterableDiffers without a parent injector");return IterableDiffers.create(e,t)},deps:[[IterableDiffers,new o.e,new o.d]]}},IterableDiffers.prototype.find=function(e){var t=this.factories.find(function(t){return t.supports(e)});if(n.i(r.d)(t))return t;throw new Error("Cannot find a differ supporting object '"+e+"' of type '"+n.i(r.j)(e)+"'")},IterableDiffers}()},function(e,t,n){"use strict";var o=n(41),r=n(8);n.d(t,"a",function(){return i});var i=function(){function KeyValueDiffers(e){this.factories=e}return KeyValueDiffers.create=function(e,t){if(n.i(r.d)(t)){var o=t.factories.slice();return e=e.concat(o),new KeyValueDiffers(e)}return new KeyValueDiffers(e)},KeyValueDiffers.extend=function(e){return{provide:KeyValueDiffers,useFactory:function(t){if(!t)throw new Error("Cannot extend KeyValueDiffers without a parent injector");return KeyValueDiffers.create(e,t)},deps:[[KeyValueDiffers,new o.e,new o.d]]}},KeyValueDiffers.prototype.find=function(e){var t=this.factories.find(function(t){return t.supports(e)});if(n.i(r.d)(t))return t;throw new Error("Cannot find a differ supporting object '"+e+"'")},KeyValueDiffers}()},function(e,t,n){"use strict";function asNativeElements(e){return e.map(function(e){return e.nativeElement})}function _queryElementChildren(e,t,n){e.childNodes.forEach(function(e){e instanceof a&&(t(e)&&n.push(e),_queryElementChildren(e,t,n))})}function _queryNodeChildren(e,t,n){e instanceof a&&e.childNodes.forEach(function(e){t(e)&&n.push(e),e instanceof a&&_queryNodeChildren(e,t,n)})}function getDebugNode(e){return s.get(e)}function indexDebugNode(e){s.set(e.nativeNode,e)}function removeDebugNodeFromIndex(e){s.delete(e.nativeNode)}n.d(t,"f",function(){return r}),n.d(t,"d",function(){return i}),n.d(t,"a",function(){return a}),t.g=asNativeElements,t.c=getDebugNode,t.b=indexDebugNode,t.e=removeDebugNodeFromIndex;var o=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},r=function(){function EventListener(e,t){this.name=e,this.callback=t}return EventListener}(),i=function(){function DebugNode(e,t,n){this._debugInfo=n,this.nativeNode=e,t&&t instanceof a?t.addChild(this):this.parent=null,this.listeners=[]}return Object.defineProperty(DebugNode.prototype,"injector",{get:function(){return this._debugInfo?this._debugInfo.injector:null},enumerable:!0,configurable:!0}),Object.defineProperty(DebugNode.prototype,"componentInstance",{get:function(){return this._debugInfo?this._debugInfo.component:null},enumerable:!0,configurable:!0}),Object.defineProperty(DebugNode.prototype,"context",{get:function(){return this._debugInfo?this._debugInfo.context:null},enumerable:!0,configurable:!0}),Object.defineProperty(DebugNode.prototype,"references",{get:function(){return this._debugInfo?this._debugInfo.references:null},enumerable:!0,configurable:!0}),Object.defineProperty(DebugNode.prototype,"providerTokens",{get:function(){return this._debugInfo?this._debugInfo.providerTokens:null},enumerable:!0,configurable:!0}),Object.defineProperty(DebugNode.prototype,"source",{get:function(){return this._debugInfo?this._debugInfo.source:null},enumerable:!0,configurable:!0}),DebugNode}(),a=function(e){function DebugElement(t,n,o){e.call(this,t,n,o),this.properties={},this.attributes={},this.classes={},this.styles={},this.childNodes=[],this.nativeElement=t}return o(DebugElement,e),DebugElement.prototype.addChild=function(e){e&&(this.childNodes.push(e),e.parent=this)},DebugElement.prototype.removeChild=function(e){var t=this.childNodes.indexOf(e);t!==-1&&(e.parent=null,this.childNodes.splice(t,1))},DebugElement.prototype.insertChildrenAfter=function(e,t){var n=this.childNodes.indexOf(e);if(n!==-1){var o=this.childNodes.slice(0,n+1),r=this.childNodes.slice(n+1);this.childNodes=o.concat(t,r);for(var i=0;i<t.length;++i){var a=t[i];a.parent&&a.parent.removeChild(a),a.parent=this}}},DebugElement.prototype.query=function(e){var t=this.queryAll(e);return t[0]||null},DebugElement.prototype.queryAll=function(e){var t=[];return _queryElementChildren(this,e,t),t},DebugElement.prototype.queryAllNodes=function(e){var t=[];return _queryNodeChildren(this,e,t),t},Object.defineProperty(DebugElement.prototype,"children",{get:function(){return this.childNodes.filter(function(e){return e instanceof DebugElement})},enumerable:!0,configurable:!0}),DebugElement.prototype.triggerEventHandler=function(e,t){this.listeners.forEach(function(n){n.name==e&&n.callback(t)})},DebugElement}(i),s=new Map},function(e,t,n){"use strict";function findFirstClosedCycle(e){for(var t=[],n=0;n<e.length;++n){if(t.indexOf(e[n])>-1)return t.push(e[n]),t;t.push(e[n])}return t}function constructResolvingPath(e){if(e.length>1){var t=findFirstClosedCycle(e.slice().reverse()),o=t.map(function(e){return n.i(r.b)(e.token)});return" ("+o.join(" -> ")+")"}return""}var o=n(180),r=n(8);n.d(t,"f",function(){return a}),n.d(t,"h",function(){return s}),n.d(t,"e",function(){return u}),n.d(t,"g",function(){return l}),n.d(t,"b",function(){return c}),n.d(t,"c",function(){return d}),n.d(t,"d",function(){return p}),n.d(t,"a",function(){return g});var i=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},a=function(e){function AbstractProviderError(t,n,o){e.call(this,"DI Error"),this.keys=[n],this.injectors=[t],this.constructResolvingMessage=o,this.message=this.constructResolvingMessage(this.keys)}return i(AbstractProviderError,e),AbstractProviderError.prototype.addKey=function(e,t){this.injectors.push(e),this.keys.push(t),this.message=this.constructResolvingMessage(this.keys)},AbstractProviderError}(o.a),s=function(e){function NoProviderError(t,o){e.call(this,t,o,function(e){var t=n.i(r.b)(e[0].token);return"No provider for "+t+"!"+constructResolvingPath(e)})}return i(NoProviderError,e),NoProviderError}(a),u=function(e){function CyclicDependencyError(t,n){e.call(this,t,n,function(e){return"Cannot instantiate cyclic dependency!"+constructResolvingPath(e)})}return i(CyclicDependencyError,e),CyclicDependencyError}(a),l=function(e){function InstantiationError(t,n,o,r){e.call(this,"DI Error",n),this.keys=[r],this.injectors=[t]}return i(InstantiationError,e),InstantiationError.prototype.addKey=function(e,t){this.injectors.push(e),this.keys.push(t)},Object.defineProperty(InstantiationError.prototype,"message",{get:function(){var e=n.i(r.b)(this.keys[0].token);return this.originalError.message+": Error during instantiation of "+e+"!"+constructResolvingPath(this.keys)+"."},enumerable:!0,configurable:!0}),Object.defineProperty(InstantiationError.prototype,"causeKey",{get:function(){return this.keys[0]},enumerable:!0,configurable:!0}),InstantiationError}(o.b),c=function(e){function InvalidProviderError(t){e.call(this,"Invalid provider - only instances of Provider and Type are allowed, got: "+t)}return i(InvalidProviderError,e),InvalidProviderError}(o.a),d=function(e){function NoAnnotationError(t,n){e.call(this,NoAnnotationError._genMessage(t,n))}return i(NoAnnotationError,e),NoAnnotationError._genMessage=function(e,t){for(var o=[],i=0,a=t.length;i<a;i++){var s=t[i];s&&0!=s.length?o.push(s.map(r.b).join(" ")):o.push("?")}return"Cannot resolve all parameters for '"+n.i(r.b)(e)+"'("+o.join(", ")+"). Make sure that all the parameters are decorated with Inject or have valid type annotations and that '"+n.i(r.b)(e)+"' is decorated with Injectable."},NoAnnotationError}(o.a),p=function(e){function OutOfBoundsError(t){e.call(this,"Index "+t+" is out-of-bounds.")}return i(OutOfBoundsError,e),OutOfBoundsError}(o.a),g=function(e){function MixingMultiProvidersWithRegularProvidersError(t,n){e.call(this,"Cannot mix multi providers and regular providers, got: "+t.toString()+" "+n.toString())}return i(MixingMultiProvidersWithRegularProvidersError,e),MixingMultiProvidersWithRegularProvidersError}(o.a)},function(e,t,n){"use strict";n.d(t,"a",function(){return o});var o=function(){function ErrorHandler(e){void 0===e&&(e=!0),this._console=console,this.rethrowError=e}return ErrorHandler.prototype.handleError=function(e){var t=this._findOriginalError(e),n=this._findOriginalStack(e),o=this._findContext(e);if(this._console.error("EXCEPTION: "+this._extractMessage(e)),t&&this._console.error("ORIGINAL EXCEPTION: "+this._extractMessage(t)),n&&(this._console.error("ORIGINAL STACKTRACE:"),this._console.error(n)),o&&(this._console.error("ERROR CONTEXT:"),this._console.error(o)),this.rethrowError)throw e},ErrorHandler.prototype._extractMessage=function(e){return e instanceof Error?e.message:e.toString()},ErrorHandler.prototype._findContext=function(e){return e?e.context?e.context:this._findContext(e.originalError):null},ErrorHandler.prototype._findOriginalError=function(e){for(var t=e.originalError;t&&t.originalError;)t=t.originalError;return t},ErrorHandler.prototype._findOriginalStack=function(e){if(!(e instanceof Error))return null;for(var t=e,n=t.stack;t instanceof Error&&t.originalError;)t=t.originalError,t instanceof Error&&t.stack&&(n=t.stack);return n},ErrorHandler}()},function(e,t,n){"use strict";var o=n(260);n.d(t,"a",function(){return r}),n.d(t,"c",function(){return i}),n.d(t,"b",function(){return a});var r=new o.a("LocaleId"),i=new o.a("Translations"),a=new o.a("TranslationsFormat")},function(e,t,n){"use strict";var o=n(8),r=n(183);n.d(t,"b",function(){return i}),n.d(t,"a",function(){return a});var i=function(){function StaticNodeDebugInfo(e,t,n){this.providerTokens=e,this.componentToken=t,this.refTokens=n}return StaticNodeDebugInfo}(),a=function(){function DebugContext(e,t,n,o){this._view=e,this._nodeIndex=t,this._tplRow=n,this._tplCol=o}return Object.defineProperty(DebugContext.prototype,"_staticNodeInfo",{get:function(){return n.i(o.d)(this._nodeIndex)?this._view.staticNodeDebugInfos[this._nodeIndex]:null},enumerable:!0,configurable:!0}),Object.defineProperty(DebugContext.prototype,"context",{get:function(){return this._view.context},enumerable:!0,configurable:!0}),Object.defineProperty(DebugContext.prototype,"component",{get:function(){var e=this._staticNodeInfo;return n.i(o.d)(e)&&n.i(o.d)(e.componentToken)?this.injector.get(e.componentToken):null},enumerable:!0,configurable:!0}),Object.defineProperty(DebugContext.prototype,"componentRenderElement",{get:function(){for(var e=this._view;n.i(o.d)(e.parentView)&&e.type!==r.a.COMPONENT;)e=e.parentView;return e.parentElement},enumerable:!0,configurable:!0}),Object.defineProperty(DebugContext.prototype,"injector",{get:function(){return this._view.injector(this._nodeIndex)},enumerable:!0,configurable:!0}),Object.defineProperty(DebugContext.prototype,"renderNode",{get:function(){return n.i(o.d)(this._nodeIndex)&&this._view.allNodes?this._view.allNodes[this._nodeIndex]:null},enumerable:!0,configurable:!0}),Object.defineProperty(DebugContext.prototype,"providerTokens",{get:function(){var e=this._staticNodeInfo;return n.i(o.d)(e)?e.providerTokens:null},enumerable:!0,configurable:!0}),Object.defineProperty(DebugContext.prototype,"source",{get:function(){return this._view.componentType.templateUrl+":"+this._tplRow+":"+this._tplCol},enumerable:!0,configurable:!0}),Object.defineProperty(DebugContext.prototype,"references",{get:function(){var e=this,t={},r=this._staticNodeInfo;if(n.i(o.d)(r)){var i=r.refTokens;Object.keys(i).forEach(function(r){var a,s=i[r];a=n.i(o.c)(s)?e._view.allNodes?e._view.allNodes[e._nodeIndex]:null:e._view.injectorGet(s,e._nodeIndex,null),t[r]=a})}return t},enumerable:!0,configurable:!0}),DebugContext}()},function(e,t,n){"use strict";var o=n(178),r=n(180);n.d(t,"a",function(){return a}),n.d(t,"c",function(){return s}),n.d(t,"b",function(){return u});var i=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},a=function(e){function ExpressionChangedAfterItHasBeenCheckedError(t,n){var r="Expression has changed after it was checked. Previous value: '"+t+"'. Current value: '"+n+"'.";t===o.a&&(r+=" It seems like the view has been created after its parent and its children have been dirty checked. Has it been created in a change detection hook ?"),e.call(this,r)}return i(ExpressionChangedAfterItHasBeenCheckedError,e),ExpressionChangedAfterItHasBeenCheckedError}(r.a),s=function(e){function ViewWrappedError(t,n){e.call(this,"Error in "+n.source,t),this.context=n}return i(ViewWrappedError,e),ViewWrappedError}(r.b),u=function(e){function ViewDestroyedError(t){e.call(this,"Attempt to use a destroyed view: "+t)}return i(ViewDestroyedError,e),ViewDestroyedError}(r.a)},function(e,t,n){"use strict";var o=n(131),r=n(8),i=n(181);n.d(t,"c",function(){return s}),n.d(t,"b",function(){return u}),n.d(t,"a",function(){return c});var a=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},s=function(){function NgModuleRef(){}return NgModuleRef.prototype.injector=function(){},NgModuleRef.prototype.componentFactoryResolver=function(){},NgModuleRef.prototype.instance=function(){},NgModuleRef.prototype.destroy=function(){},NgModuleRef.prototype.onDestroy=function(e){},NgModuleRef}(),u=function(){function NgModuleFactory(e,t){this._injectorClass=e,this._moduleType=t}return Object.defineProperty(NgModuleFactory.prototype,"moduleType",{get:function(){return this._moduleType},enumerable:!0,configurable:!0}),NgModuleFactory.prototype.create=function(e){e||(e=o.b.NULL);var t=new this._injectorClass(e);return t.create(),t},NgModuleFactory}(),l=new Object,c=function(e){function NgModuleInjector(t,n,o){e.call(this,n,t.get(i.a,i.a.NULL)),this.parent=t,this.bootstrapFactories=o,this._destroyListeners=[],this._destroyed=!1}return a(NgModuleInjector,e),NgModuleInjector.prototype.create=function(){this.instance=this.createInternal()},NgModuleInjector.prototype.createInternal=function(){},NgModuleInjector.prototype.get=function(e,t){if(void 0===t&&(t=o.a),e===o.b||e===i.a)return this;var n=this.getInternal(e,l);return n===l?this.parent.get(e,t):n},NgModuleInjector.prototype.getInternal=function(e,t){},Object.defineProperty(NgModuleInjector.prototype,"injector",{get:function(){return this},enumerable:!0,configurable:!0}),Object.defineProperty(NgModuleInjector.prototype,"componentFactoryResolver",{get:function(){return this},enumerable:!0,configurable:!0}),NgModuleInjector.prototype.destroy=function(){if(this._destroyed)throw new Error("The ng module "+n.i(r.b)(this.instance.constructor)+" has already been destroyed.");this._destroyed=!0,this.destroyInternal(),this._destroyListeners.forEach(function(e){return e()})},NgModuleInjector.prototype.onDestroy=function(e){this._destroyListeners.push(e)},NgModuleInjector.prototype.destroyInternal=function(){},NgModuleInjector}(i.b)},function(e,t,n){"use strict";function registerModuleFactory(e,t){var n=r.get(e);if(n)throw new Error("Duplicate module registered for "+e+" - "+n.moduleType.name+" vs "+t.moduleType.name);r.set(e,t)}function getModuleFactory(e){var t=r.get(e);if(!t)throw new Error("No module with ID "+e+" loaded");return t}n.d(t,"b",function(){return o}),t.a=registerModuleFactory,t.c=getModuleFactory;var o=function(){function NgModuleFactoryLoader(){}return NgModuleFactoryLoader.prototype.load=function(e){},NgModuleFactoryLoader}(),r=new Map},function(e,t,n){"use strict";var o=n(182);n.d(t,"b",function(){return i}),n.d(t,"a",function(){return a});var r=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},i=function(){function TemplateRef(){}return TemplateRef.prototype.elementRef=function(){},TemplateRef.prototype.createEmbeddedView=function(e){},TemplateRef}(),a=function(e){function TemplateRef_(t,n,o){e.call(this),this._parentView=t,this._nodeIndex=n,this._nativeElement=o}return r(TemplateRef_,e),TemplateRef_.prototype.createEmbeddedView=function(e){var t=this._parentView.createEmbeddedViewInternal(this._nodeIndex);return t.create(e||{}),t.ref},Object.defineProperty(TemplateRef_.prototype,"elementRef",{get:function(){return new o.a(this._nativeElement)},enumerable:!0,configurable:!0}),TemplateRef_}(i)},function(e,t,n){"use strict";var o=n(8),r=n(185);n.d(t,"b",function(){return i}),n.d(t,"a",function(){return a});var i=function(){function ViewContainerRef(){}return ViewContainerRef.prototype.element=function(){},ViewContainerRef.prototype.injector=function(){},ViewContainerRef.prototype.parentInjector=function(){},ViewContainerRef.prototype.clear=function(){},ViewContainerRef.prototype.get=function(e){},ViewContainerRef.prototype.length=function(){},ViewContainerRef.prototype.createEmbeddedView=function(e,t,n){},ViewContainerRef.prototype.createComponent=function(e,t,n,o){},ViewContainerRef.prototype.insert=function(e,t){},ViewContainerRef.prototype.move=function(e,t){},ViewContainerRef.prototype.indexOf=function(e){},ViewContainerRef.prototype.remove=function(e){},ViewContainerRef.prototype.detach=function(e){},ViewContainerRef}(),a=function(){function ViewContainerRef_(e){this._element=e,this._createComponentInContainerScope=n.i(r.b)("ViewContainerRef#createComponent()"),this._insertScope=n.i(r.b)("ViewContainerRef#insert()"),this._removeScope=n.i(r.b)("ViewContainerRef#remove()"),this._detachScope=n.i(r.b)("ViewContainerRef#detach()")}return ViewContainerRef_.prototype.get=function(e){return this._element.nestedViews[e].ref},Object.defineProperty(ViewContainerRef_.prototype,"length",{get:function(){var e=this._element.nestedViews;return n.i(o.d)(e)?e.length:0},enumerable:!0,configurable:!0}),Object.defineProperty(ViewContainerRef_.prototype,"element",{get:function(){return this._element.elementRef},enumerable:!0,configurable:!0}),Object.defineProperty(ViewContainerRef_.prototype,"injector",{get:function(){return this._element.injector},enumerable:!0,configurable:!0}),Object.defineProperty(ViewContainerRef_.prototype,"parentInjector",{get:function(){return this._element.parentInjector},enumerable:!0,configurable:!0}),ViewContainerRef_.prototype.createEmbeddedView=function(e,t,n){void 0===t&&(t=null),void 0===n&&(n=-1);var o=e.createEmbeddedView(t);return this.insert(o,n),o},ViewContainerRef_.prototype.createComponent=function(e,t,o,i){void 0===t&&(t=-1),void 0===o&&(o=null),void 0===i&&(i=null);var a=this._createComponentInContainerScope(),s=o||this._element.parentInjector,u=e.create(s,i);return this.insert(u.hostView,t),n.i(r.a)(a,u)},ViewContainerRef_.prototype.insert=function(e,t){void 0===t&&(t=-1);var o=this._insertScope();t==-1&&(t=this.length);var i=e;return this._element.attachView(i.internalView,t),n.i(r.a)(o,i)},ViewContainerRef_.prototype.move=function(e,t){var o=this._insertScope();if(t!=-1){var i=e;return this._element.moveView(i.internalView,t),n.i(r.a)(o,i)}},ViewContainerRef_.prototype.indexOf=function(e){return this.length?this._element.nestedViews.indexOf(e.internalView):-1},ViewContainerRef_.prototype.remove=function(e){void 0===e&&(e=-1);var t=this._removeScope();e==-1&&(e=this.length-1);var o=this._element.detachView(e);o.destroy(),n.i(r.a)(t)},ViewContainerRef_.prototype.detach=function(e){void 0===e&&(e=-1);var t=this._detachScope();e==-1&&(e=this.length-1);var o=this._element.detachView(e);return n.i(r.a)(t,o.ref)},ViewContainerRef_.prototype.clear=function(){for(var e=this.length-1;e>=0;e--)this.remove(e)},ViewContainerRef_}()},function(e,t,n){"use strict";var o=n(379),r=n(179);n.d(t,"c",function(){return a}),n.d(t,"b",function(){return s}),n.d(t,"a",function(){return u});var i=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},a=function(e){function ViewRef(){e.apply(this,arguments)}return i(ViewRef,e),ViewRef.prototype.destroy=function(){},ViewRef.prototype.destroyed=function(){},ViewRef.prototype.onDestroy=function(e){},ViewRef}(o.a),s=function(e){function EmbeddedViewRef(){e.apply(this,arguments)}return i(EmbeddedViewRef,e),EmbeddedViewRef.prototype.context=function(){},EmbeddedViewRef.prototype.rootNodes=function(){},EmbeddedViewRef}(a),u=function(){function ViewRef_(e,t){this._view=e,this.animationQueue=t,this._view=e,this._originalMode=this._view.cdMode}return Object.defineProperty(ViewRef_.prototype,"internalView",{get:function(){return this._view},enumerable:!0,configurable:!0}),Object.defineProperty(ViewRef_.prototype,"rootNodes",{get:function(){return this._view.flatRootNodes},enumerable:!0,configurable:!0}),Object.defineProperty(ViewRef_.prototype,"context",{get:function(){return this._view.context},enumerable:!0,configurable:!0}),Object.defineProperty(ViewRef_.prototype,"destroyed",{get:function(){return this._view.destroyed},enumerable:!0,configurable:!0}),ViewRef_.prototype.markForCheck=function(){this._view.markPathToRootAsCheckOnce()},ViewRef_.prototype.detach=function(){this._view.cdMode=r.b.Detached},ViewRef_.prototype.detectChanges=function(){this._view.detectChanges(!1),this.animationQueue.flush()},ViewRef_.prototype.checkNoChanges=function(){this._view.detectChanges(!0)},ViewRef_.prototype.reattach=function(){this._view.cdMode=this._originalMode,this.markForCheck()},ViewRef_.prototype.onDestroy=function(e){this._view.disposables||(this._view.disposables=[]),this._view.disposables.push(e)},ViewRef_.prototype.destroy=function(){this._view.detachAndDestroy()},ViewRef_}()},function(e,t,n){"use strict";var o=n(657),r=n(658),i=n(395),a=n(659),s=n(396);n.d(t,"l",function(){return o.c}),n.d(t,"o",function(){return o.d}),n.d(t,"p",function(){return o.e}),n.d(t,"h",function(){return o.b}),n.d(t,"q",function(){return o.f}),n.d(t,"r",function(){return o.g}),n.d(t,"c",function(){return o.a}),n.d(t,"i",function(){return r.e}),n.d(t,"j",function(){return r.f}),n.d(t,"f",function(){return r.c}),n.d(t,"g",function(){return r.d}),n.d(t,"d",function(){return r.a}),n.d(t,"e",function(){return r.b}),n.d(t,"k",function(){return r.g}),n.d(t,"y",function(){return i.i}),n.d(t,"t",function(){return i.d}),n.d(t,"u",function(){return i.e}),n.d(t,"v",function(){return i.f}),n.d(t,"w",function(){return i.g}),n.d(t,"x",function(){return i.h}),n.d(t,"s",function(){return i.c}),n.d(t,"z",function(){return i.j}),n.d(t,"n",function(){return a.c}),n.d(t,"m",function(){return a.b}),n.d(t,"a",function(){return a.a}),n.d(t,"b",function(){return s.b})},function(e,t,n){"use strict";n.d(t,"a",function(){return o}),n.d(t,"b",function(){return r}),n.d(t,"h",function(){return i}),n.d(t,"j",function(){return a}),n.d(t,"g",function(){return s}),n.d(t,"i",function(){return u}),n.d(t,"d",function(){return l}),n.d(t,"c",function(){return c}),n.d(t,"f",function(){return d}),n.d(t,"e",function(){return p});var o={};o.OnInit=0,o.OnDestroy=1,o.DoCheck=2,o.OnChanges=3,o.AfterContentInit=4,o.AfterContentChecked=5,o.AfterViewInit=6,o.AfterViewChecked=7,o[o.OnInit]="OnInit",o[o.OnDestroy]="OnDestroy",o[o.DoCheck]="DoCheck",o[o.OnChanges]="OnChanges",o[o.AfterContentInit]="AfterContentInit",o[o.AfterContentChecked]="AfterContentChecked",o[o.AfterViewInit]="AfterViewInit",o[o.AfterViewChecked]="AfterViewChecked";var r=[o.OnInit,o.OnDestroy,o.DoCheck,o.OnChanges,o.AfterContentInit,o.AfterContentChecked,o.AfterViewInit,o.AfterViewChecked],i=function(){function OnChanges(){}return OnChanges.prototype.ngOnChanges=function(e){},OnChanges}(),a=function(){function OnInit(){}return OnInit.prototype.ngOnInit=function(){},OnInit}(),s=function(){function DoCheck(){}return DoCheck.prototype.ngDoCheck=function(){},DoCheck}(),u=function(){
function OnDestroy(){}return OnDestroy.prototype.ngOnDestroy=function(){},OnDestroy}(),l=function(){function AfterContentInit(){}return AfterContentInit.prototype.ngAfterContentInit=function(){},AfterContentInit}(),c=function(){function AfterContentChecked(){}return AfterContentChecked.prototype.ngAfterContentChecked=function(){},AfterContentChecked}(),d=function(){function AfterViewInit(){}return AfterViewInit.prototype.ngAfterViewInit=function(){},AfterViewInit}(),p=function(){function AfterViewChecked(){}return AfterViewChecked.prototype.ngAfterViewChecked=function(){},AfterViewChecked}()},function(e,t,n){"use strict";n.d(t,"b",function(){return o}),n.d(t,"a",function(){return r});var o={};o.Emulated=0,o.Native=1,o.None=2,o[o.Emulated]="Emulated",o[o.Native]="Native",o[o.None]="None";var r=function(){function ViewMetadata(e){var t=void 0===e?{}:e,n=t.templateUrl,o=t.template,r=t.encapsulation,i=t.styles,a=t.styleUrls,s=t.animations,u=t.interpolation;this.templateUrl=n,this.template=o,this.styleUrls=a,this.styles=i,this.encapsulation=r,this.animations=s,this.interpolation=u}return ViewMetadata}()},function(e,t,n){"use strict";function convertTsickleDecoratorIntoMetadata(e){return e?e.map(function(e){var t=e.type,n=t.annotationCls,o=e.args?e.args:[];return new(n.bind.apply(n,[void 0].concat(o)))}):[]}function getParentCtor(e){var t=Object.getPrototypeOf(e.prototype),n=t?t.constructor:null;return n||Object}var o=n(8),r=n(269);n.d(t,"a",function(){return a});var i=/^function\s+\S+\(\)\s*{\s*("use strict";)?\s*(return\s+)?\S+\.apply\(this,\s*arguments\)/,a=function(){function ReflectionCapabilities(e){this._reflect=e||o.a.Reflect}return ReflectionCapabilities.prototype.isReflectionEnabled=function(){return!0},ReflectionCapabilities.prototype.factory=function(e){return function(){for(var t=[],n=0;n<arguments.length;n++)t[n-0]=arguments[n];return new(e.bind.apply(e,[void 0].concat(t)))}},ReflectionCapabilities.prototype._zipTypesAndAnnotations=function(e,t){var r;r="undefined"==typeof e?new Array(t.length):new Array(e.length);for(var i=0;i<r.length;i++)"undefined"==typeof e?r[i]=[]:e[i]!=Object?r[i]=[e[i]]:r[i]=[],t&&n.i(o.d)(t[i])&&(r[i]=r[i].concat(t[i]));return r},ReflectionCapabilities.prototype._ownParameters=function(e,t){if(i.exec(e.toString()))return null;if(e.parameters&&e.parameters!==t.parameters)return e.parameters;var r=e.ctorParameters;if(r&&r!==t.ctorParameters){var a="function"==typeof r?r():r,s=a.map(function(e){return e&&e.type}),u=a.map(function(e){return e&&convertTsickleDecoratorIntoMetadata(e.decorators)});return this._zipTypesAndAnnotations(s,u)}if(n.i(o.d)(this._reflect)&&n.i(o.d)(this._reflect.getOwnMetadata)){var u=this._reflect.getOwnMetadata("parameters",e),s=this._reflect.getOwnMetadata("design:paramtypes",e);if(s||u)return this._zipTypesAndAnnotations(s,u)}return new Array(e.length).fill(void 0)},ReflectionCapabilities.prototype.parameters=function(e){if(!n.i(r.a)(e))return[];var t=getParentCtor(e),o=this._ownParameters(e,t);return o||t===Object||(o=this.parameters(t)),o||[]},ReflectionCapabilities.prototype._ownAnnotations=function(e,t){if(e.annotations&&e.annotations!==t.annotations){var n=e.annotations;return"function"==typeof n&&n.annotations&&(n=n.annotations),n}return e.decorators&&e.decorators!==t.decorators?convertTsickleDecoratorIntoMetadata(e.decorators):this._reflect&&this._reflect.getOwnMetadata?this._reflect.getOwnMetadata("annotations",e):void 0},ReflectionCapabilities.prototype.annotations=function(e){if(!n.i(r.a)(e))return[];var t=getParentCtor(e),o=this._ownAnnotations(e,t)||[],i=t!==Object?this.annotations(t):[];return i.concat(o)},ReflectionCapabilities.prototype._ownPropMetadata=function(e,t){if(e.propMetadata&&e.propMetadata!==t.propMetadata){var n=e.propMetadata;return"function"==typeof n&&n.propMetadata&&(n=n.propMetadata),n}if(e.propDecorators&&e.propDecorators!==t.propDecorators){var o=e.propDecorators,r={};return Object.keys(o).forEach(function(e){r[e]=convertTsickleDecoratorIntoMetadata(o[e])}),r}if(this._reflect&&this._reflect.getOwnMetadata)return this._reflect.getOwnMetadata("propMetadata",e)},ReflectionCapabilities.prototype.propMetadata=function(e){if(!n.i(r.a)(e))return{};var t=getParentCtor(e),o={};if(t!==Object){var i=this.propMetadata(t);Object.keys(i).forEach(function(e){o[e]=i[e]})}var a=this._ownPropMetadata(e,t);return a&&Object.keys(a).forEach(function(e){var t=[];o.hasOwnProperty(e)&&t.push.apply(t,o[e]),t.push.apply(t,a[e]),o[e]=t}),o},ReflectionCapabilities.prototype.hasLifecycleHook=function(e,t){return e instanceof r.b&&t in e.prototype},ReflectionCapabilities.prototype.getter=function(e){return new Function("o","return o."+e+";")},ReflectionCapabilities.prototype.setter=function(e){return new Function("o","v","return o."+e+" = v;")},ReflectionCapabilities.prototype.method=function(e){var t="if (!o."+e+") throw new Error('\""+e+"\" is undefined');\n return o."+e+".apply(o, args);";return new Function("o","args",t)},ReflectionCapabilities.prototype.importUri=function(e){return"object"==typeof e&&e.filePath?e.filePath:"./"+n.i(o.b)(e)},ReflectionCapabilities.prototype.resolveIdentifier=function(e,t,n){return n},ReflectionCapabilities.prototype.resolveEnum=function(e,t){return e[t]},ReflectionCapabilities}()},function(e,t,n){"use strict";var o=n(266);n.d(t,"a",function(){return i});var r=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},i=function(e){function Reflector(t){e.call(this),this.reflectionCapabilities=t}return r(Reflector,e),Reflector.prototype.updateCapabilities=function(e){this.reflectionCapabilities=e},Reflector.prototype.factory=function(e){return this.reflectionCapabilities.factory(e)},Reflector.prototype.parameters=function(e){return this.reflectionCapabilities.parameters(e)},Reflector.prototype.annotations=function(e){return this.reflectionCapabilities.annotations(e)},Reflector.prototype.propMetadata=function(e){return this.reflectionCapabilities.propMetadata(e)},Reflector.prototype.hasLifecycleHook=function(e,t){return this.reflectionCapabilities.hasLifecycleHook(e,t)},Reflector.prototype.getter=function(e){return this.reflectionCapabilities.getter(e)},Reflector.prototype.setter=function(e){return this.reflectionCapabilities.setter(e)},Reflector.prototype.method=function(e){return this.reflectionCapabilities.method(e)},Reflector.prototype.importUri=function(e){return this.reflectionCapabilities.importUri(e)},Reflector.prototype.resolveIdentifier=function(e,t,n){return this.reflectionCapabilities.resolveIdentifier(e,t,n)},Reflector.prototype.resolveEnum=function(e,t){return this.reflectionCapabilities.resolveEnum(e,t)},Reflector}(o.a)},function(e,t,n){"use strict";n.d(t,"b",function(){return o}),n.d(t,"a",function(){return r});var o={};o.NONE=0,o.HTML=1,o.STYLE=2,o.SCRIPT=3,o.URL=4,o.RESOURCE_URL=5,o[o.NONE]="NONE",o[o.HTML]="HTML",o[o.STYLE]="STYLE",o[o.SCRIPT]="SCRIPT",o[o.URL]="URL",o[o.RESOURCE_URL]="RESOURCE_URL";var r=function(){function Sanitizer(){}return Sanitizer.prototype.sanitize=function(e,t){},Sanitizer}()},function(e,t,n){"use strict";n.d(t,"b",function(){return o}),n.d(t,"a",function(){return r});var o=function(){function Version(e){this.full=e}return Object.defineProperty(Version.prototype,"major",{get:function(){return this.full.split(".")[0]},enumerable:!0,configurable:!0}),Object.defineProperty(Version.prototype,"minor",{get:function(){return this.full.split(".")[1]},enumerable:!0,configurable:!0}),Object.defineProperty(Version.prototype,"patch",{get:function(){return this.full.split(".").slice(2).join(".")},enumerable:!0,configurable:!0}),Version}(),r=new o("2.4.10")},function(e,t,n){"use strict";n.d(t,"a",function(){return o});var o={formControlName:'\n <div [formGroup]="myGroup">\n <input formControlName="firstName">\n </div>\n\n In your class:\n\n this.myGroup = new FormGroup({\n firstName: new FormControl()\n });',formGroupName:'\n <div [formGroup]="myGroup">\n <div formGroupName="person">\n <input formControlName="firstName">\n </div>\n </div>\n\n In your class:\n\n this.myGroup = new FormGroup({\n person: new FormGroup({ firstName: new FormControl() })\n });',formArrayName:'\n <div [formGroup]="myGroup">\n <div formArrayName="cities">\n <div *ngFor="let city of cityArray.controls; let i=index">\n <input [formControlName]="i">\n </div>\n </div>\n </div>\n\n In your class:\n\n this.cityArray = new FormArray([new FormControl(\'SF\')]);\n this.myGroup = new FormGroup({\n cities: this.cityArray\n });',ngModelGroup:'\n <form>\n <div ngModelGroup="person">\n <input [(ngModel)]="person.name" name="firstName">\n </div>\n </form>',ngModelWithFormGroup:'\n <div [formGroup]="myGroup">\n <input formControlName="firstName">\n <input [(ngModel)]="showMoreControls" [ngModelOptions]="{standalone: true}">\n </div>\n '}},function(e,t,n){"use strict";var o=n(401);n.d(t,"a",function(){return r});var r=function(){function TemplateDrivenErrors(){}return TemplateDrivenErrors.modelParentException=function(){throw new Error('\n ngModel cannot be used to register form controls with a parent formGroup directive. Try using\n formGroup\'s partner directive "formControlName" instead. Example:\n\n '+o.a.formControlName+"\n\n Or, if you'd like to avoid registering this form control, indicate that it's standalone in ngModelOptions:\n\n Example:\n\n "+o.a.ngModelWithFormGroup)},TemplateDrivenErrors.formGroupNameException=function(){throw new Error("\n ngModel cannot be used to register form controls with a parent formGroupName or formArrayName directive.\n\n Option 1: Use formControlName instead of ngModel (reactive strategy):\n\n "+o.a.formGroupName+"\n\n Option 2: Update ngModel's parent be ngModelGroup (template-driven strategy):\n\n "+o.a.ngModelGroup)},TemplateDrivenErrors.missingNameException=function(){throw new Error('If ngModel is used within a form tag, either the name attribute must be set or the form\n control must be defined as \'standalone\' in ngModelOptions.\n\n Example 1: <input [(ngModel)]="person.firstName" name="first">\n Example 2: <input [(ngModel)]="person.firstName" [ngModelOptions]="{standalone: true}">')},TemplateDrivenErrors.modelGroupParentException=function(){throw new Error("\n ngModelGroup cannot be used with a parent formGroup directive.\n\n Option 1: Use formGroupName instead of ngModelGroup (reactive strategy):\n\n "+o.a.formGroupName+"\n\n Option 2: Use a regular form tag instead of the formGroup directive (template-driven strategy):\n\n "+o.a.ngModelGroup)},TemplateDrivenErrors}()},function(e,t,n){"use strict";var o=n(1),r=n(49);n.d(t,"a",function(){return u}),n.d(t,"e",function(){return l}),n.d(t,"b",function(){return d}),n.d(t,"c",function(){return g}),n.d(t,"d",function(){return h});var i=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},a={provide:r.b,useExisting:n.i(o.forwardRef)(function(){return u}),multi:!0},s={provide:r.b,useExisting:n.i(o.forwardRef)(function(){return l}),multi:!0},u=function(){function RequiredValidator(){}return Object.defineProperty(RequiredValidator.prototype,"required",{get:function(){return this._required},set:function(e){this._required=null!=e&&e!==!1&&""+e!="false",this._onChange&&this._onChange()},enumerable:!0,configurable:!0}),RequiredValidator.prototype.validate=function(e){return this.required?r.a.required(e):null},RequiredValidator.prototype.registerOnValidatorChange=function(e){this._onChange=e},RequiredValidator.decorators=[{type:o.Directive,args:[{selector:":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]",providers:[a],host:{"[attr.required]":'required ? "" : null'}}]}],RequiredValidator.ctorParameters=function(){return[]},RequiredValidator.propDecorators={required:[{type:o.Input}]},RequiredValidator}(),l=function(e){function CheckboxRequiredValidator(){e.apply(this,arguments)}return i(CheckboxRequiredValidator,e),CheckboxRequiredValidator.prototype.validate=function(e){return this.required?r.a.requiredTrue(e):null},CheckboxRequiredValidator.decorators=[{type:o.Directive,args:[{selector:"input[type=checkbox][required][formControlName],input[type=checkbox][required][formControl],input[type=checkbox][required][ngModel]",providers:[s],host:{"[attr.required]":'required ? "" : null'}}]}],CheckboxRequiredValidator.ctorParameters=function(){return[]},CheckboxRequiredValidator}(u),c={provide:r.b,useExisting:n.i(o.forwardRef)(function(){return d}),multi:!0},d=function(){function MinLengthValidator(){}return MinLengthValidator.prototype.ngOnChanges=function(e){"minlength"in e&&(this._createValidator(),this._onChange&&this._onChange())},MinLengthValidator.prototype.validate=function(e){return null==this.minlength?null:this._validator(e)},MinLengthValidator.prototype.registerOnValidatorChange=function(e){this._onChange=e},MinLengthValidator.prototype._createValidator=function(){this._validator=r.a.minLength(parseInt(this.minlength,10))},MinLengthValidator.decorators=[{type:o.Directive,args:[{selector:"[minlength][formControlName],[minlength][formControl],[minlength][ngModel]",providers:[c],host:{"[attr.minlength]":"minlength ? minlength : null"}}]}],MinLengthValidator.ctorParameters=function(){return[]},MinLengthValidator.propDecorators={minlength:[{type:o.Input}]},MinLengthValidator}(),p={provide:r.b,useExisting:n.i(o.forwardRef)(function(){return g}),multi:!0},g=function(){function MaxLengthValidator(){}return MaxLengthValidator.prototype.ngOnChanges=function(e){"maxlength"in e&&(this._createValidator(),this._onChange&&this._onChange())},MaxLengthValidator.prototype.validate=function(e){return null!=this.maxlength?this._validator(e):null},MaxLengthValidator.prototype.registerOnValidatorChange=function(e){this._onChange=e},MaxLengthValidator.prototype._createValidator=function(){this._validator=r.a.maxLength(parseInt(this.maxlength,10))},MaxLengthValidator.decorators=[{type:o.Directive,args:[{selector:"[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]",providers:[p],host:{"[attr.maxlength]":"maxlength ? maxlength : null"}}]}],MaxLengthValidator.ctorParameters=function(){return[]},MaxLengthValidator.propDecorators={maxlength:[{type:o.Input}]},MaxLengthValidator}(),f={provide:r.b,useExisting:n.i(o.forwardRef)(function(){return h}),multi:!0},h=function(){function PatternValidator(){}return PatternValidator.prototype.ngOnChanges=function(e){"pattern"in e&&(this._createValidator(),this._onChange&&this._onChange())},PatternValidator.prototype.validate=function(e){return this._validator(e)},PatternValidator.prototype.registerOnValidatorChange=function(e){this._onChange=e},PatternValidator.prototype._createValidator=function(){this._validator=r.a.pattern(this.pattern)},PatternValidator.decorators=[{type:o.Directive,args:[{selector:"[pattern][formControlName],[pattern][formControl],[pattern][ngModel]",providers:[f],host:{"[attr.pattern]":"pattern ? pattern : null"}}]}],PatternValidator.ctorParameters=function(){return[]},PatternValidator.propDecorators={pattern:[{type:o.Input}]},PatternValidator}()},function(e,t,n){"use strict";n(111);n.d(t,"a",function(){return o}),n.d(t,"b",function(){return r});var o=function(){function StringMapWrapper(){}return StringMapWrapper.merge=function(e,t){for(var n={},o=0,r=Object.keys(e);o<r.length;o++){var i=r[o];n[i]=e[i]}for(var a=0,s=Object.keys(t);a<s.length;a++){var i=s[a];n[i]=t[i]}return n},StringMapWrapper.equals=function(e,t){var n=Object.keys(e),o=Object.keys(t);if(n.length!=o.length)return!1;for(var r=0;r<n.length;r++){var i=n[r];if(e[i]!==t[i])return!1}return!0},StringMapWrapper}(),r=function(){function ListWrapper(){}return ListWrapper.findLast=function(e,t){for(var n=e.length-1;n>=0;n--)if(t(e[n]))return e[n];return null},ListWrapper.removeAll=function(e,t){for(var n=0;n<t.length;++n){var o=e.indexOf(t[n]);o>-1&&e.splice(o,1)}},ListWrapper.remove=function(e,t){var n=e.indexOf(t);return n>-1&&(e.splice(n,1),!0)},ListWrapper.equals=function(e,t){if(e.length!=t.length)return!1;for(var n=0;n<e.length;++n)if(e[n]!==t[n])return!1;return!0},ListWrapper.flatten=function(e){return e.reduce(function(e,t){var n=Array.isArray(t)?ListWrapper.flatten(t):t;return e.concat(n)},[])},ListWrapper}()},function(e,t,n){"use strict";var o=n(1),r=n(111),i=n(193);n.d(t,"a",function(){return a});var a=function(){function FormBuilder(){}return FormBuilder.prototype.group=function(e,t){void 0===t&&(t=null);var o=this._reduceControls(e),a=n.i(r.c)(t)?t.validator:null,s=n.i(r.c)(t)?t.asyncValidator:null;return new i.a(o,a,s)},FormBuilder.prototype.control=function(e,t,n){return void 0===t&&(t=null),void 0===n&&(n=null),new i.b(e,t,n)},FormBuilder.prototype.array=function(e,t,n){var o=this;void 0===t&&(t=null),void 0===n&&(n=null);var r=e.map(function(e){return o._createControl(e)});return new i.c(r,t,n)},FormBuilder.prototype._reduceControls=function(e){var t=this,n={};return Object.keys(e).forEach(function(o){n[o]=t._createControl(e[o])}),n},FormBuilder.prototype._createControl=function(e){if(e instanceof i.b||e instanceof i.a||e instanceof i.c)return e;if(Array.isArray(e)){var t=e[0],n=e.length>1?e[1]:null,o=e.length>2?e[2]:null;return this.control(t,n,o)}return this.control(e)},FormBuilder.decorators=[{type:o.Injectable}],FormBuilder.ctorParameters=function(){return[]},FormBuilder}()},function(e,t,n){"use strict";var o=n(1);n.d(t,"a",function(){return r}),n.d(t,"b",function(){return i});var r=o.__core_private__.isPromise,i=o.__core_private__.isObservable},function(e,t,n){"use strict";function _getJsonpConnections(){var e="object"==typeof window?window:{};return null===a&&(a=e[i]={}),a}var o=n(1);n.d(t,"a",function(){return s});var r=0,i="__ng_jsonp__",a=null,s=function(){function BrowserJsonp(){}return BrowserJsonp.prototype.build=function(e){var t=document.createElement("script");return t.src=e,t},BrowserJsonp.prototype.nextRequestID=function(){return"__req"+r++},BrowserJsonp.prototype.requestCallback=function(e){return i+"."+e+".finished"},BrowserJsonp.prototype.exposeConnection=function(e,t){var n=_getJsonpConnections();n[e]=t},BrowserJsonp.prototype.removeConnection=function(e){var t=_getJsonpConnections();t[e]=null},BrowserJsonp.prototype.send=function(e){document.body.appendChild(e)},BrowserJsonp.prototype.cleanup=function(e){e.parentNode&&e.parentNode.removeChild(e)},BrowserJsonp.decorators=[{type:o.Injectable}],BrowserJsonp.ctorParameters=function(){return[]},BrowserJsonp}()},function(e,t,n){"use strict";var o=n(1),r=n(0),i=(n.n(r),n(194)),a=n(77),s=n(140),u=n(280),l=n(407);n.d(t,"c",function(){return g}),n.d(t,"a",function(){return h}),n.d(t,"b",function(){return m});var c=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},d="JSONP injected script did not invoke callback.",p="JSONP requests must use GET request method.",g=function(){function JSONPConnection(){}return JSONPConnection.prototype.finished=function(e){},JSONPConnection}(),f=function(e){function JSONPConnection_(t,n,o){var s=this;if(e.call(this),this._dom=n,this.baseResponseOptions=o,this._finished=!1,t.method!==a.b.Get)throw new TypeError(p);this.request=t,this.response=new r.Observable(function(e){s.readyState=a.c.Loading;var r=s._id=n.nextRequestID();n.exposeConnection(r,s);var l=n.requestCallback(s._id),c=t.url;c.indexOf("=JSONP_CALLBACK&")>-1?c=c.replace("=JSONP_CALLBACK&","="+l+"&"):c.lastIndexOf("=JSONP_CALLBACK")===c.length-"=JSONP_CALLBACK".length&&(c=c.substring(0,c.length-"=JSONP_CALLBACK".length)+("="+l));var p=s._script=n.build(c),g=function(t){if(s.readyState!==a.c.Cancelled){if(s.readyState=a.c.Done,n.cleanup(p),!s._finished){var r=new i.a({body:d,type:a.a.Error,url:c});return o&&(r=o.merge(r)),void e.error(new u.a(r))}var l=new i.a({body:s._responseData,url:c});s.baseResponseOptions&&(l=s.baseResponseOptions.merge(l)),e.next(new u.a(l)),e.complete()}},f=function(t){if(s.readyState!==a.c.Cancelled){s.readyState=a.c.Done,n.cleanup(p);var r=new i.a({body:t.message,type:a.a.Error});o&&(r=o.merge(r)),e.error(new u.a(r))}};return p.addEventListener("load",g),p.addEventListener("error",f),n.send(p),function(){s.readyState=a.c.Cancelled,p.removeEventListener("load",g),p.removeEventListener("error",f),s._dom.cleanup(p)}})}return c(JSONPConnection_,e),JSONPConnection_.prototype.finished=function(e){this._finished=!0,this._dom.removeConnection(this._id),this.readyState!==a.c.Cancelled&&(this._responseData=e)},JSONPConnection_}(g),h=function(e){function JSONPBackend(){e.apply(this,arguments)}return c(JSONPBackend,e),JSONPBackend}(s.a),m=function(e){function JSONPBackend_(t,n){e.call(this),this._browserJSONP=t,this._baseResponseOptions=n}return c(JSONPBackend_,e),JSONPBackend_.prototype.createConnection=function(e){return new f(e,this._browserJSONP,this._baseResponseOptions)},JSONPBackend_.decorators=[{type:o.Injectable}],JSONPBackend_.ctorParameters=function(){return[{type:l.a},{type:i.a}]},JSONPBackend_}(h)},function(e,t,n){"use strict";var o=n(1),r=n(103),i=n(0),a=(n.n(i),n(194)),s=n(77),u=n(139),l=n(195),c=n(140),d=n(280),p=n(278);n.d(t,"c",function(){return f}),n.d(t,"a",function(){return h}),n.d(t,"b",function(){return m});var g=/^\)\]\}',?\n/,f=function(){function XHRConnection(e,t,o){var r=this;this.request=e,this.response=new i.Observable(function(i){var c=t.build();c.open(s.b[e.method].toUpperCase(),e.url),null!=e.withCredentials&&(c.withCredentials=e.withCredentials);var p=function(){var t=1223===c.status?204:c.status,r=null;204!==t&&(r="undefined"==typeof c.response?c.responseText:c.response,"string"==typeof r&&(r=r.replace(g,""))),0===t&&(t=r?200:0);var s=u.a.fromResponseHeaderString(c.getAllResponseHeaders()),p=n.i(l.b)(c)||e.url,f=c.statusText||"OK",h=new a.a({body:r,status:t,headers:s,statusText:f,url:p});null!=o&&(h=o.merge(h));var m=new d.a(h);return m.ok=n.i(l.c)(t),m.ok?(i.next(m),void i.complete()):void i.error(m)},f=function(e){var t=new a.a({body:e,type:s.a.Error,status:c.status,statusText:c.statusText});null!=o&&(t=o.merge(t)),i.error(new d.a(t))};if(r.setDetectedContentType(e,c),null==e.headers&&(e.headers=new u.a),e.headers.has("Accept")||e.headers.append("Accept","application/json, text/plain, */*"),e.headers.forEach(function(e,t){return c.setRequestHeader(t,e.join(","))}),null!=e.responseType&&null!=c.responseType)switch(e.responseType){case s.d.ArrayBuffer:c.responseType="arraybuffer";break;case s.d.Json:c.responseType="json";break;case s.d.Text:c.responseType="text";break;case s.d.Blob:c.responseType="blob";break;default:throw new Error("The selected responseType is not supported")}return c.addEventListener("load",p),c.addEventListener("error",f),c.send(r.request.getBody()),function(){c.removeEventListener("load",p),c.removeEventListener("error",f),c.abort()}})}return XHRConnection.prototype.setDetectedContentType=function(e,t){if(null==e.headers||null==e.headers.get("Content-Type"))switch(e.contentType){case s.e.NONE:break;case s.e.JSON:t.setRequestHeader("content-type","application/json");break;case s.e.FORM:t.setRequestHeader("content-type","application/x-www-form-urlencoded;charset=UTF-8");break;case s.e.TEXT:t.setRequestHeader("content-type","text/plain");break;case s.e.BLOB:var n=e.blob();n.type&&t.setRequestHeader("content-type",n.type)}},XHRConnection}(),h=function(){function CookieXSRFStrategy(e,t){void 0===e&&(e="XSRF-TOKEN"),void 0===t&&(t="X-XSRF-TOKEN"),this._cookieName=e,this._headerName=t}return CookieXSRFStrategy.prototype.configureRequest=function(e){var t=r.__platform_browser_private__.getDOM().getCookie(this._cookieName);t&&e.headers.set(this._headerName,t)},CookieXSRFStrategy}(),m=function(){function XHRBackend(e,t,n){this._browserXHR=e,this._baseResponseOptions=t,this._xsrfStrategy=n}return XHRBackend.prototype.createConnection=function(e){return this._xsrfStrategy.configureRequest(e),new f(e,this._browserXHR,this._baseResponseOptions)},XHRBackend.decorators=[{type:o.Injectable}],XHRBackend.ctorParameters=function(){return[{type:p.a},{type:a.a},{type:c.b}]},XHRBackend}()},function(e,t,n){"use strict";var o=n(195),r=n(196);n.d(t,"a",function(){return i});var i=function(){function Body(){}return Body.prototype.json=function(){return"string"==typeof this._body?JSON.parse(this._body):this._body instanceof ArrayBuffer?JSON.parse(this.text()):this._body},Body.prototype.text=function(){return this._body instanceof r.a?this._body.toString():this._body instanceof ArrayBuffer?String.fromCharCode.apply(null,new Uint16Array(this._body)):null==this._body?"":"object"==typeof this._body?JSON.stringify(this._body,null,2):this._body.toString()},Body.prototype.arrayBuffer=function(){return this._body instanceof ArrayBuffer?this._body:n.i(o.a)(this.text())},Body.prototype.blob=function(){if(this._body instanceof Blob)return this._body;if(this._body instanceof ArrayBuffer)return new Blob([this._body]);throw new Error("The request body isn't either a blob or an array buffer")},Body}()},function(e,t,n){"use strict";function httpRequest(e,t){return e.createConnection(t).response}function mergeOptions(e,t,n,o){var i=e;return t?i.merge(new r.a({method:t.method||n,url:t.url||o,search:t.search,headers:t.headers,body:t.body,withCredentials:t.withCredentials,responseType:t.responseType})):i.merge(new r.a({method:n,url:o}))}var o=n(1),r=n(279),i=n(77),a=n(140),s=n(412);n.d(t,"a",function(){return l}),n.d(t,"b",function(){return c});var u=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},l=function(){function Http(e,t){this._backend=e,this._defaultOptions=t}return Http.prototype.request=function(e,t){var n;if("string"==typeof e)n=httpRequest(this._backend,new s.a(mergeOptions(this._defaultOptions,t,i.b.Get,e)));else{if(!(e instanceof s.a))throw new Error("First argument must be a url string or Request instance.");n=httpRequest(this._backend,e)}return n},Http.prototype.get=function(e,t){return this.request(new s.a(mergeOptions(this._defaultOptions,t,i.b.Get,e)))},Http.prototype.post=function(e,t,n){return this.request(new s.a(mergeOptions(this._defaultOptions.merge(new r.a({body:t})),n,i.b.Post,e)))},Http.prototype.put=function(e,t,n){return this.request(new s.a(mergeOptions(this._defaultOptions.merge(new r.a({body:t})),n,i.b.Put,e)))},Http.prototype.delete=function(e,t){return this.request(new s.a(mergeOptions(this._defaultOptions,t,i.b.Delete,e)))},Http.prototype.patch=function(e,t,n){return this.request(new s.a(mergeOptions(this._defaultOptions.merge(new r.a({body:t})),n,i.b.Patch,e)))},Http.prototype.head=function(e,t){return this.request(new s.a(mergeOptions(this._defaultOptions,t,i.b.Head,e)))},Http.prototype.options=function(e,t){return this.request(new s.a(mergeOptions(this._defaultOptions,t,i.b.Options,e)))},Http.decorators=[{type:o.Injectable}],Http.ctorParameters=function(){return[{type:a.a},{type:r.a}]},Http}(),c=function(e){function Jsonp(t,n){e.call(this,t,n)}return u(Jsonp,e),Jsonp.prototype.request=function(e,t){var n;if("string"==typeof e&&(e=new s.a(mergeOptions(this._defaultOptions,t,i.b.Get,e))),!(e instanceof s.a))throw new Error("First argument must be a url string or Request instance.");if(e.method!==i.b.Get)throw new Error("JSONP requests must use GET request method.");return n=httpRequest(this._backend,e)},Jsonp.decorators=[{type:o.Injectable}],Jsonp.ctorParameters=function(){return[{type:a.a},{type:r.a}]},Jsonp}(l)},function(e,t,n){"use strict";var o=n(410),r=n(77),i=n(139),a=n(195),s=n(196);n.d(t,"a",function(){return l});var u=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},l=function(e){function Request(t){e.call(this);var o=t.url;if(this.url=t.url,t.search){var r=t.search.toString();if(r.length>0){var s="?";this.url.indexOf("?")!=-1&&(s="&"==this.url[this.url.length-1]?"":"&"),this.url=o+s+r}}this._body=t.body,this.method=n.i(a.d)(t.method),this.headers=new i.a(t.headers),this.contentType=this.detectContentType(),this.withCredentials=t.withCredentials,this.responseType=t.responseType}return u(Request,e),Request.prototype.detectContentType=function(){switch(this.headers.get("content-type")){case"application/json":return r.e.JSON;case"application/x-www-form-urlencoded":return r.e.FORM;case"multipart/form-data":return r.e.FORM_DATA;case"text/plain":case"text/html":return r.e.TEXT;case"application/octet-stream":return this._body instanceof f?r.e.ARRAY_BUFFER:r.e.BLOB;default:return this.detectContentTypeFromBody()}},Request.prototype.detectContentTypeFromBody=function(){return null==this._body?r.e.NONE:this._body instanceof s.a?r.e.FORM:this._body instanceof p?r.e.FORM_DATA:this._body instanceof g?r.e.BLOB:this._body instanceof f?r.e.ARRAY_BUFFER:this._body&&"object"==typeof this._body?r.e.JSON:r.e.TEXT},Request.prototype.getBody=function(){switch(this.contentType){case r.e.JSON:return this.text();case r.e.FORM:return this.text();case r.e.FORM_DATA:return this._body;case r.e.TEXT:return this.text();case r.e.BLOB:return this.blob();case r.e.ARRAY_BUFFER:return this.arrayBuffer();default:return null}},Request}(o.a),c=function(){},d="object"==typeof window?window:c,p=d.FormData||c,g=d.Blob||c,f=d.ArrayBuffer||c},function(e,t,n){"use strict";var o=n(164),r=n(1),i=n(676),a=n(414);n.d(t,"a",function(){return s});var s=[i.a,{provide:r.COMPILER_OPTIONS,useValue:{providers:[{provide:o.a,useClass:a.a}]},multi:!0}]},function(e,t,n){"use strict";var o=n(164),r=n(1);n.d(t,"a",function(){return a});var i=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},a=function(e){function ResourceLoaderImpl(){e.apply(this,arguments)}return i(ResourceLoaderImpl,e),ResourceLoaderImpl.prototype.get=function(e){var t,n,o=new Promise(function(e,o){t=e,n=o}),r=new XMLHttpRequest;return r.open("GET",e,!0),r.responseType="text",r.onload=function(){var o=r.response||r.responseText,i=1223===r.status?204:r.status;0===i&&(i=o?200:0),200<=i&&i<=300?t(o):n("Failed to load "+e)},r.onerror=function(){n("Failed to load "+e)},r.send(),o},ResourceLoaderImpl.decorators=[{type:r.Injectable}],ResourceLoaderImpl.ctorParameters=function(){return[]},ResourceLoaderImpl}(o.a)},function(e,t,n){"use strict";function initDomAdapter(){s.a.makeCurrent(),l.a.init()}function errorHandler(){return new r.ErrorHandler}function _document(){return n.i(p.a)().defaultDoc()}function _resolveDefaultAnimationDriver(){return n.i(p.a)().supportsWebAnimation()?new a.a:i.a.NOOP}var o=n(68),r=n(1),i=n(281),a=n(422),s=n(416),u=n(417),l=n(418),c=n(419),d=n(282),p=n(23),g=n(283),f=n(197),h=n(420),m=n(112),y=n(284),b=n(421),v=n(285),_=n(423);n.d(t,"b",function(){return E}),n.d(t,"c",function(){return T}),n.d(t,"d",function(){return S}),t.a=initDomAdapter,n.d(t,"e",function(){return A});var E=[{provide:r.PLATFORM_INITIALIZER,useValue:initDomAdapter,multi:!0},{provide:o.PlatformLocation,useClass:u.a}],T=[{provide:r.Sanitizer,useExisting:_.a},{provide:_.a,useClass:_.b}],S=n.i(r.createPlatformFactory)(r.platformCore,"browser",E),A=function(){function BrowserModule(e){if(e)throw new Error("BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.");
}return BrowserModule.decorators=[{type:r.NgModule,args:[{providers:[T,{provide:r.ErrorHandler,useFactory:errorHandler,deps:[]},{provide:f.a,useFactory:_document,deps:[]},{provide:m.c,useClass:h.a,multi:!0},{provide:m.c,useClass:b.a,multi:!0},{provide:m.c,useClass:y.a,multi:!0},{provide:y.b,useClass:y.c},{provide:g.a,useClass:g.b},{provide:r.RootRenderer,useExisting:g.a},{provide:v.b,useExisting:v.a},{provide:i.a,useFactory:_resolveDefaultAnimationDriver},v.a,r.Testability,m.a,d.a,c.a],exports:[o.CommonModule,r.ApplicationModule]}]}],BrowserModule.ctorParameters=function(){return[{type:BrowserModule,decorators:[{type:r.Optional},{type:r.SkipSelf}]}]},BrowserModule}()},function(e,t,n){"use strict";function getBaseElementHref(){return g||(g=document.querySelector("base"))?g.getAttribute("href"):null}function relativePath(e){return a||(a=document.createElement("a")),a.setAttribute("href",e),"/"===a.pathname.charAt(0)?a.pathname:"/"+a.pathname}function parseCookieValue(e,t){t=encodeURIComponent(t);for(var n=0,o=e.split(";");n<o.length;n++){var r=o[n],i=r.indexOf("="),a=i==-1?[r,""]:[r.slice(0,i),r.slice(i+1)],s=a[0],u=a[1];if(s.trim()===t)return decodeURIComponent(u)}return null}var o=n(23),r=n(50),i=n(679);n.d(t,"a",function(){return p});var a,s=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},u={"class":"className",innerHtml:"innerHTML",readonly:"readOnly",tabindex:"tabIndex"},l=3,c={"\b":"Backspace","\t":"Tab","":"Delete","":"Escape",Del:"Delete",Esc:"Escape",Left:"ArrowLeft",Right:"ArrowRight",Up:"ArrowUp",Down:"ArrowDown",Menu:"ContextMenu",Scroll:"ScrollLock",Win:"OS"},d={A:"1",B:"2",C:"3",D:"4",E:"5",F:"6",G:"7",H:"8",I:"9",J:"*",K:"+",M:"-",N:".",O:"/","`":"0","":"NumLock"},p=function(e){function BrowserDomAdapter(){e.apply(this,arguments)}return s(BrowserDomAdapter,e),BrowserDomAdapter.prototype.parse=function(e){throw new Error("parse not implemented")},BrowserDomAdapter.makeCurrent=function(){n.i(o.c)(new BrowserDomAdapter)},BrowserDomAdapter.prototype.hasProperty=function(e,t){return t in e},BrowserDomAdapter.prototype.setProperty=function(e,t,n){e[t]=n},BrowserDomAdapter.prototype.getProperty=function(e,t){return e[t]},BrowserDomAdapter.prototype.invoke=function(e,t,n){(o=e)[t].apply(o,n);var o},BrowserDomAdapter.prototype.logError=function(e){window.console&&(console.error?console.error(e):console.log(e))},BrowserDomAdapter.prototype.log=function(e){window.console&&window.console.log&&window.console.log(e)},BrowserDomAdapter.prototype.logGroup=function(e){window.console&&window.console.group&&window.console.group(e)},BrowserDomAdapter.prototype.logGroupEnd=function(){window.console&&window.console.groupEnd&&window.console.groupEnd()},Object.defineProperty(BrowserDomAdapter.prototype,"attrToPropMap",{get:function(){return u},enumerable:!0,configurable:!0}),BrowserDomAdapter.prototype.query=function(e){return document.querySelector(e)},BrowserDomAdapter.prototype.querySelector=function(e,t){return e.querySelector(t)},BrowserDomAdapter.prototype.querySelectorAll=function(e,t){return e.querySelectorAll(t)},BrowserDomAdapter.prototype.on=function(e,t,n){e.addEventListener(t,n,!1)},BrowserDomAdapter.prototype.onAndCancel=function(e,t,n){return e.addEventListener(t,n,!1),function(){e.removeEventListener(t,n,!1)}},BrowserDomAdapter.prototype.dispatchEvent=function(e,t){e.dispatchEvent(t)},BrowserDomAdapter.prototype.createMouseEvent=function(e){var t=document.createEvent("MouseEvent");return t.initEvent(e,!0,!0),t},BrowserDomAdapter.prototype.createEvent=function(e){var t=document.createEvent("Event");return t.initEvent(e,!0,!0),t},BrowserDomAdapter.prototype.preventDefault=function(e){e.preventDefault(),e.returnValue=!1},BrowserDomAdapter.prototype.isPrevented=function(e){return e.defaultPrevented||n.i(r.a)(e.returnValue)&&!e.returnValue},BrowserDomAdapter.prototype.getInnerHTML=function(e){return e.innerHTML},BrowserDomAdapter.prototype.getTemplateContent=function(e){return"content"in e&&e instanceof HTMLTemplateElement?e.content:null},BrowserDomAdapter.prototype.getOuterHTML=function(e){return e.outerHTML},BrowserDomAdapter.prototype.nodeName=function(e){return e.nodeName},BrowserDomAdapter.prototype.nodeValue=function(e){return e.nodeValue},BrowserDomAdapter.prototype.type=function(e){return e.type},BrowserDomAdapter.prototype.content=function(e){return this.hasProperty(e,"content")?e.content:e},BrowserDomAdapter.prototype.firstChild=function(e){return e.firstChild},BrowserDomAdapter.prototype.nextSibling=function(e){return e.nextSibling},BrowserDomAdapter.prototype.parentElement=function(e){return e.parentNode},BrowserDomAdapter.prototype.childNodes=function(e){return e.childNodes},BrowserDomAdapter.prototype.childNodesAsList=function(e){for(var t=e.childNodes,n=new Array(t.length),o=0;o<t.length;o++)n[o]=t[o];return n},BrowserDomAdapter.prototype.clearNodes=function(e){for(;e.firstChild;)e.removeChild(e.firstChild)},BrowserDomAdapter.prototype.appendChild=function(e,t){e.appendChild(t)},BrowserDomAdapter.prototype.removeChild=function(e,t){e.removeChild(t)},BrowserDomAdapter.prototype.replaceChild=function(e,t,n){e.replaceChild(t,n)},BrowserDomAdapter.prototype.remove=function(e){return e.parentNode&&e.parentNode.removeChild(e),e},BrowserDomAdapter.prototype.insertBefore=function(e,t){e.parentNode.insertBefore(t,e)},BrowserDomAdapter.prototype.insertAllBefore=function(e,t){t.forEach(function(t){return e.parentNode.insertBefore(t,e)})},BrowserDomAdapter.prototype.insertAfter=function(e,t){e.parentNode.insertBefore(t,e.nextSibling)},BrowserDomAdapter.prototype.setInnerHTML=function(e,t){e.innerHTML=t},BrowserDomAdapter.prototype.getText=function(e){return e.textContent},BrowserDomAdapter.prototype.setText=function(e,t){e.textContent=t},BrowserDomAdapter.prototype.getValue=function(e){return e.value},BrowserDomAdapter.prototype.setValue=function(e,t){e.value=t},BrowserDomAdapter.prototype.getChecked=function(e){return e.checked},BrowserDomAdapter.prototype.setChecked=function(e,t){e.checked=t},BrowserDomAdapter.prototype.createComment=function(e){return document.createComment(e)},BrowserDomAdapter.prototype.createTemplate=function(e){var t=document.createElement("template");return t.innerHTML=e,t},BrowserDomAdapter.prototype.createElement=function(e,t){return void 0===t&&(t=document),t.createElement(e)},BrowserDomAdapter.prototype.createElementNS=function(e,t,n){return void 0===n&&(n=document),n.createElementNS(e,t)},BrowserDomAdapter.prototype.createTextNode=function(e,t){return void 0===t&&(t=document),t.createTextNode(e)},BrowserDomAdapter.prototype.createScriptTag=function(e,t,n){void 0===n&&(n=document);var o=n.createElement("SCRIPT");return o.setAttribute(e,t),o},BrowserDomAdapter.prototype.createStyleElement=function(e,t){void 0===t&&(t=document);var n=t.createElement("style");return this.appendChild(n,this.createTextNode(e)),n},BrowserDomAdapter.prototype.createShadowRoot=function(e){return e.createShadowRoot()},BrowserDomAdapter.prototype.getShadowRoot=function(e){return e.shadowRoot},BrowserDomAdapter.prototype.getHost=function(e){return e.host},BrowserDomAdapter.prototype.clone=function(e){return e.cloneNode(!0)},BrowserDomAdapter.prototype.getElementsByClassName=function(e,t){return e.getElementsByClassName(t)},BrowserDomAdapter.prototype.getElementsByTagName=function(e,t){return e.getElementsByTagName(t)},BrowserDomAdapter.prototype.classList=function(e){return Array.prototype.slice.call(e.classList,0)},BrowserDomAdapter.prototype.addClass=function(e,t){e.classList.add(t)},BrowserDomAdapter.prototype.removeClass=function(e,t){e.classList.remove(t)},BrowserDomAdapter.prototype.hasClass=function(e,t){return e.classList.contains(t)},BrowserDomAdapter.prototype.setStyle=function(e,t,n){e.style[t]=n},BrowserDomAdapter.prototype.removeStyle=function(e,t){e.style[t]=""},BrowserDomAdapter.prototype.getStyle=function(e,t){return e.style[t]},BrowserDomAdapter.prototype.hasStyle=function(e,t,n){void 0===n&&(n=null);var o=this.getStyle(e,t)||"";return n?o==n:o.length>0},BrowserDomAdapter.prototype.tagName=function(e){return e.tagName},BrowserDomAdapter.prototype.attributeMap=function(e){for(var t=new Map,n=e.attributes,o=0;o<n.length;o++){var r=n[o];t.set(r.name,r.value)}return t},BrowserDomAdapter.prototype.hasAttribute=function(e,t){return e.hasAttribute(t)},BrowserDomAdapter.prototype.hasAttributeNS=function(e,t,n){return e.hasAttributeNS(t,n)},BrowserDomAdapter.prototype.getAttribute=function(e,t){return e.getAttribute(t)},BrowserDomAdapter.prototype.getAttributeNS=function(e,t,n){return e.getAttributeNS(t,n)},BrowserDomAdapter.prototype.setAttribute=function(e,t,n){e.setAttribute(t,n)},BrowserDomAdapter.prototype.setAttributeNS=function(e,t,n,o){e.setAttributeNS(t,n,o)},BrowserDomAdapter.prototype.removeAttribute=function(e,t){e.removeAttribute(t)},BrowserDomAdapter.prototype.removeAttributeNS=function(e,t,n){e.removeAttributeNS(t,n)},BrowserDomAdapter.prototype.templateAwareRoot=function(e){return this.isTemplateElement(e)?this.content(e):e},BrowserDomAdapter.prototype.createHtmlDocument=function(){return document.implementation.createHTMLDocument("fakeTitle")},BrowserDomAdapter.prototype.defaultDoc=function(){return document},BrowserDomAdapter.prototype.getBoundingClientRect=function(e){try{return e.getBoundingClientRect()}catch(t){return{top:0,bottom:0,left:0,right:0,width:0,height:0}}},BrowserDomAdapter.prototype.getTitle=function(){return document.title},BrowserDomAdapter.prototype.setTitle=function(e){document.title=e||""},BrowserDomAdapter.prototype.elementMatches=function(e,t){return e instanceof HTMLElement&&(e.matches&&e.matches(t)||e.msMatchesSelector&&e.msMatchesSelector(t)||e.webkitMatchesSelector&&e.webkitMatchesSelector(t))},BrowserDomAdapter.prototype.isTemplateElement=function(e){return e instanceof HTMLElement&&"TEMPLATE"==e.nodeName},BrowserDomAdapter.prototype.isTextNode=function(e){return e.nodeType===Node.TEXT_NODE},BrowserDomAdapter.prototype.isCommentNode=function(e){return e.nodeType===Node.COMMENT_NODE},BrowserDomAdapter.prototype.isElementNode=function(e){return e.nodeType===Node.ELEMENT_NODE},BrowserDomAdapter.prototype.hasShadowRoot=function(e){return n.i(r.a)(e.shadowRoot)&&e instanceof HTMLElement},BrowserDomAdapter.prototype.isShadowRoot=function(e){return e instanceof DocumentFragment},BrowserDomAdapter.prototype.importIntoDoc=function(e){return document.importNode(this.templateAwareRoot(e),!0)},BrowserDomAdapter.prototype.adoptNode=function(e){return document.adoptNode(e)},BrowserDomAdapter.prototype.getHref=function(e){return e.href},BrowserDomAdapter.prototype.getEventKey=function(e){var t=e.key;if(n.i(r.b)(t)){if(t=e.keyIdentifier,n.i(r.b)(t))return"Unidentified";t.startsWith("U+")&&(t=String.fromCharCode(parseInt(t.substring(2),16)),e.location===l&&d.hasOwnProperty(t)&&(t=d[t]))}return c[t]||t},BrowserDomAdapter.prototype.getGlobalEventTarget=function(e){return"window"===e?window:"document"===e?document:"body"===e?document.body:void 0},BrowserDomAdapter.prototype.getHistory=function(){return window.history},BrowserDomAdapter.prototype.getLocation=function(){return window.location},BrowserDomAdapter.prototype.getBaseHref=function(){var e=getBaseElementHref();return n.i(r.b)(e)?null:relativePath(e)},BrowserDomAdapter.prototype.resetBaseElement=function(){g=null},BrowserDomAdapter.prototype.getUserAgent=function(){return window.navigator.userAgent},BrowserDomAdapter.prototype.setData=function(e,t,n){this.setAttribute(e,"data-"+t,n)},BrowserDomAdapter.prototype.getData=function(e,t){return this.getAttribute(e,"data-"+t)},BrowserDomAdapter.prototype.getComputedStyle=function(e){return getComputedStyle(e)},BrowserDomAdapter.prototype.setGlobalVar=function(e,t){n.i(r.c)(r.d,e,t)},BrowserDomAdapter.prototype.supportsWebAnimation=function(){return"function"==typeof Element.prototype.animate},BrowserDomAdapter.prototype.performanceNow=function(){return window.performance&&window.performance.now?window.performance.now():(new Date).getTime()},BrowserDomAdapter.prototype.supportsCookies=function(){return!0},BrowserDomAdapter.prototype.getCookie=function(e){return parseCookieValue(document.cookie,e)},BrowserDomAdapter.prototype.setCookie=function(e,t){document.cookie=encodeURIComponent(e)+"="+encodeURIComponent(t)},BrowserDomAdapter}(i.a),g=null},function(e,t,n){"use strict";var o=n(68),r=n(1),i=n(23),a=n(680);n.d(t,"a",function(){return u});var s=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},u=function(e){function BrowserPlatformLocation(){e.call(this),this._init()}return s(BrowserPlatformLocation,e),BrowserPlatformLocation.prototype._init=function(){this._location=n.i(i.a)().getLocation(),this._history=n.i(i.a)().getHistory()},Object.defineProperty(BrowserPlatformLocation.prototype,"location",{get:function(){return this._location},enumerable:!0,configurable:!0}),BrowserPlatformLocation.prototype.getBaseHrefFromDOM=function(){return n.i(i.a)().getBaseHref()},BrowserPlatformLocation.prototype.onPopState=function(e){n.i(i.a)().getGlobalEventTarget("window").addEventListener("popstate",e,!1)},BrowserPlatformLocation.prototype.onHashChange=function(e){n.i(i.a)().getGlobalEventTarget("window").addEventListener("hashchange",e,!1)},Object.defineProperty(BrowserPlatformLocation.prototype,"pathname",{get:function(){return this._location.pathname},set:function(e){this._location.pathname=e},enumerable:!0,configurable:!0}),Object.defineProperty(BrowserPlatformLocation.prototype,"search",{get:function(){return this._location.search},enumerable:!0,configurable:!0}),Object.defineProperty(BrowserPlatformLocation.prototype,"hash",{get:function(){return this._location.hash},enumerable:!0,configurable:!0}),BrowserPlatformLocation.prototype.pushState=function(e,t,o){n.i(a.a)()?this._history.pushState(e,t,o):this._location.hash=o},BrowserPlatformLocation.prototype.replaceState=function(e,t,o){n.i(a.a)()?this._history.replaceState(e,t,o):this._location.hash=o},BrowserPlatformLocation.prototype.forward=function(){this._history.forward()},BrowserPlatformLocation.prototype.back=function(){this._history.back()},BrowserPlatformLocation.decorators=[{type:r.Injectable}],BrowserPlatformLocation.ctorParameters=function(){return[]},BrowserPlatformLocation}(o.PlatformLocation)},function(e,t,n){"use strict";var o=n(1),r=n(23),i=n(50);n.d(t,"a",function(){return a});var a=function(){function BrowserGetTestability(){}return BrowserGetTestability.init=function(){n.i(o.setTestabilityGetter)(new BrowserGetTestability)},BrowserGetTestability.prototype.addToWindow=function(e){i.d.getAngularTestability=function(t,n){void 0===n&&(n=!0);var o=e.findTestabilityInTree(t,n);if(null==o)throw new Error("Could not find testability for element.");return o},i.d.getAllAngularTestabilities=function(){return e.getAllTestabilities()},i.d.getAllAngularRootElements=function(){return e.getAllRootElements()};var t=function(e){var t=i.d.getAllAngularTestabilities(),n=t.length,o=!1,r=function(t){o=o||t,n--,0==n&&e(o)};t.forEach(function(e){e.whenStable(r)})};i.d.frameworkStabilizers||(i.d.frameworkStabilizers=[]),i.d.frameworkStabilizers.push(t)},BrowserGetTestability.prototype.findTestabilityInTree=function(e,t,o){if(null==t)return null;var a=e.getTestability(t);return n.i(i.a)(a)?a:o?n.i(r.a)().isShadowRoot(t)?this.findTestabilityInTree(e,n.i(r.a)().getHost(t),!0):this.findTestabilityInTree(e,n.i(r.a)().parentElement(t),!0):null},BrowserGetTestability}()},function(e,t,n){"use strict";var o=n(23);n.d(t,"a",function(){return r});var r=function(){function Title(){}return Title.prototype.getTitle=function(){return n.i(o.a)().getTitle()},Title.prototype.setTitle=function(e){n.i(o.a)().setTitle(e)},Title}()},function(e,t,n){"use strict";var o=n(1),r=n(112);n.d(t,"a",function(){return a});var i=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},a=function(e){function DomEventsPlugin(){e.apply(this,arguments)}return i(DomEventsPlugin,e),DomEventsPlugin.prototype.supports=function(e){return!0},DomEventsPlugin.prototype.addEventListener=function(e,t,n){return e.addEventListener(t,n,!1),function(){return e.removeEventListener(t,n,!1)}},DomEventsPlugin.decorators=[{type:o.Injectable}],DomEventsPlugin.ctorParameters=function(){return[]},DomEventsPlugin}(r.b)},function(e,t,n){"use strict";var o=n(1),r=n(23),i=n(112);n.d(t,"a",function(){return l});var a=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},s=["alt","control","meta","shift"],u={alt:function(e){return e.altKey},control:function(e){return e.ctrlKey},meta:function(e){return e.metaKey},shift:function(e){return e.shiftKey}},l=function(e){function KeyEventsPlugin(){e.call(this)}return a(KeyEventsPlugin,e),KeyEventsPlugin.prototype.supports=function(e){return null!=KeyEventsPlugin.parseEventName(e)},KeyEventsPlugin.prototype.addEventListener=function(e,t,o){var i=KeyEventsPlugin.parseEventName(t),a=KeyEventsPlugin.eventCallback(i.fullKey,o,this.manager.getZone());return this.manager.getZone().runOutsideAngular(function(){return n.i(r.a)().onAndCancel(e,i.domEventName,a)})},KeyEventsPlugin.parseEventName=function(e){var t=e.toLowerCase().split("."),n=t.shift();if(0===t.length||"keydown"!==n&&"keyup"!==n)return null;var o=KeyEventsPlugin._normalizeKey(t.pop()),r="";if(s.forEach(function(e){var n=t.indexOf(e);n>-1&&(t.splice(n,1),r+=e+".")}),r+=o,0!=t.length||0===o.length)return null;var i={};return i.domEventName=n,i.fullKey=r,i},KeyEventsPlugin.getEventFullKey=function(e){var t="",o=n.i(r.a)().getEventKey(e);return o=o.toLowerCase()," "===o?o="space":"."===o&&(o="dot"),s.forEach(function(n){if(n!=o){var r=u[n];r(e)&&(t+=n+".")}}),t+=o},KeyEventsPlugin.eventCallback=function(e,t,n){return function(o){KeyEventsPlugin.getEventFullKey(o)===e&&n.runGuarded(function(){return t(o)})}},KeyEventsPlugin._normalizeKey=function(e){switch(e){case"esc":return"escape";default:return e}},KeyEventsPlugin.decorators=[{type:o.Injectable}],KeyEventsPlugin.ctorParameters=function(){return[]},KeyEventsPlugin}(i.b)},function(e,t,n){"use strict";function _populateStyles(e,t){var r={};return e.styles.forEach(function(e){Object.keys(e).forEach(function(t){r[t]=e[t]})}),Object.keys(t).forEach(function(e){n.i(o.a)(r[e])||(r[e]=t[e])}),r}function filterWebAnimationPlayerFn(e){return e instanceof r.a}var o=n(50),r=n(684);n.d(t,"a",function(){return i});var i=function(){function WebAnimationsDriver(){}return WebAnimationsDriver.prototype.animate=function(e,t,i,a,s,u,l){void 0===l&&(l=[]);var c=[],d={};if(n.i(o.a)(t)&&(d=_populateStyles(t,{})),i.forEach(function(e){var t=_populateStyles(e.styles,d);t.offset=Math.max(0,Math.min(1,e.offset)),c.push(t)}),0==c.length)c=[d,d];else if(1==c.length){var p=d,g=c[0];g.offset=null,c=[p,g]}var f={duration:a,delay:s,fill:"both"};return u&&(f.easing=u),l=l.filter(filterWebAnimationPlayerFn),new r.a(e,c,f,l)},WebAnimationsDriver}()},function(e,t,n){"use strict";var o=n(1),r=n(689),i=n(690),a=n(287);n.d(t,"a",function(){return u}),n.d(t,"b",function(){return l});var s=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},u=function(){function DomSanitizer(){}return DomSanitizer.prototype.sanitize=function(e,t){},DomSanitizer.prototype.bypassSecurityTrustHtml=function(e){},DomSanitizer.prototype.bypassSecurityTrustStyle=function(e){},DomSanitizer.prototype.bypassSecurityTrustScript=function(e){},DomSanitizer.prototype.bypassSecurityTrustUrl=function(e){},DomSanitizer.prototype.bypassSecurityTrustResourceUrl=function(e){},DomSanitizer}(),l=function(e){function DomSanitizerImpl(){e.apply(this,arguments)}return s(DomSanitizerImpl,e),DomSanitizerImpl.prototype.sanitize=function(e,t){if(null==t)return null;switch(e){case o.SecurityContext.NONE:return t;case o.SecurityContext.HTML:return t instanceof d?t.changingThisBreaksApplicationSecurity:(this.checkNotSafeValue(t,"HTML"),n.i(r.a)(String(t)));case o.SecurityContext.STYLE:return t instanceof p?t.changingThisBreaksApplicationSecurity:(this.checkNotSafeValue(t,"Style"),n.i(i.a)(t));case o.SecurityContext.SCRIPT:if(t instanceof g)return t.changingThisBreaksApplicationSecurity;throw this.checkNotSafeValue(t,"Script"),new Error("unsafe value used in a script context");case o.SecurityContext.URL:return t instanceof h||t instanceof f?t.changingThisBreaksApplicationSecurity:(this.checkNotSafeValue(t,"URL"),n.i(a.a)(String(t)));case o.SecurityContext.RESOURCE_URL:if(t instanceof h)return t.changingThisBreaksApplicationSecurity;throw this.checkNotSafeValue(t,"ResourceURL"),new Error("unsafe value used in a resource URL context (see http://g.co/ng/security#xss)");default:throw new Error("Unexpected SecurityContext "+e+" (see http://g.co/ng/security#xss)")}},DomSanitizerImpl.prototype.checkNotSafeValue=function(e,t){if(e instanceof c)throw new Error("Required a safe "+t+", got a "+e.getTypeName()+" (see http://g.co/ng/security#xss)")},DomSanitizerImpl.prototype.bypassSecurityTrustHtml=function(e){return new d(e)},DomSanitizerImpl.prototype.bypassSecurityTrustStyle=function(e){return new p(e)},DomSanitizerImpl.prototype.bypassSecurityTrustScript=function(e){return new g(e)},DomSanitizerImpl.prototype.bypassSecurityTrustUrl=function(e){return new f(e)},DomSanitizerImpl.prototype.bypassSecurityTrustResourceUrl=function(e){return new h(e)},DomSanitizerImpl.decorators=[{type:o.Injectable}],DomSanitizerImpl.ctorParameters=function(){return[]},DomSanitizerImpl}(u),c=function(){function SafeValueImpl(e){this.changingThisBreaksApplicationSecurity=e}return SafeValueImpl.prototype.getTypeName=function(){},SafeValueImpl.prototype.toString=function(){return"SafeValue must use [property]=binding: "+this.changingThisBreaksApplicationSecurity+" (see http://g.co/ng/security#xss)"},SafeValueImpl}(),d=function(e){function SafeHtmlImpl(){e.apply(this,arguments)}return s(SafeHtmlImpl,e),SafeHtmlImpl.prototype.getTypeName=function(){return"HTML"},SafeHtmlImpl}(c),p=function(e){function SafeStyleImpl(){e.apply(this,arguments)}return s(SafeStyleImpl,e),SafeStyleImpl.prototype.getTypeName=function(){return"Style"},SafeStyleImpl}(c),g=function(e){function SafeScriptImpl(){e.apply(this,arguments)}return s(SafeScriptImpl,e),SafeScriptImpl.prototype.getTypeName=function(){return"Script"},SafeScriptImpl}(c),f=function(e){function SafeUrlImpl(){e.apply(this,arguments)}return s(SafeUrlImpl,e),SafeUrlImpl.prototype.getTypeName=function(){return"URL"},SafeUrlImpl}(c),h=function(e){function SafeResourceUrlImpl(){e.apply(this,arguments)}return s(SafeResourceUrlImpl,e),SafeResourceUrlImpl.prototype.getTypeName=function(){return"ResourceURL"},SafeResourceUrlImpl}(c)},function(e,t,n){"use strict";var o=n(1),r=n(198),i=n(288);n.d(t,"a",function(){return a});var a=function(){function RouterLinkActive(e,t,n){var o=this;this.router=e,this.element=t,this.renderer=n,this.classes=[],this.routerLinkActiveOptions={exact:!1},this.subscription=e.events.subscribe(function(e){e instanceof r.b&&o.update()})}return RouterLinkActive.prototype.ngAfterContentInit=function(){var e=this;this.links.changes.subscribe(function(t){return e.update()}),this.linksWithHrefs.changes.subscribe(function(t){return e.update()}),this.update()},Object.defineProperty(RouterLinkActive.prototype,"routerLinkActive",{set:function(e){Array.isArray(e)?this.classes=e:this.classes=e.split(" ")},enumerable:!0,configurable:!0}),RouterLinkActive.prototype.ngOnChanges=function(e){this.update()},RouterLinkActive.prototype.ngOnDestroy=function(){this.subscription.unsubscribe()},RouterLinkActive.prototype.update=function(){var e=this;if(this.links&&this.linksWithHrefs&&this.router.navigated){var t=this.reduceList(this.links),n=this.reduceList(this.linksWithHrefs);this.classes.forEach(function(o){return e.renderer.setElementClass(e.element.nativeElement,o,t||n)})}},RouterLinkActive.prototype.reduceList=function(e){var t=this;return e.reduce(function(e,n){return e||t.router.isActive(n.urlTree,t.routerLinkActiveOptions.exact)},!1)},RouterLinkActive.decorators=[{type:o.Directive,args:[{selector:"[routerLinkActive]"}]}],RouterLinkActive.ctorParameters=[{type:r.a},{type:o.ElementRef},{type:o.Renderer}],RouterLinkActive.propDecorators={links:[{type:o.ContentChildren,args:[i.a,{descendants:!0}]}],linksWithHrefs:[{type:o.ContentChildren,args:[i.b,{descendants:!0}]}],routerLinkActiveOptions:[{type:o.Input}],routerLinkActive:[{type:o.Input}]},RouterLinkActive}()},function(e,t,n){"use strict";var o=n(1),r=n(200),i=n(58);n.d(t,"a",function(){return a});var a=function(){function RouterOutlet(e,t,n,r){this.parentOutletMap=e,this.location=t,this.resolver=n,this.name=r,this.activateEvents=new o.EventEmitter,this.deactivateEvents=new o.EventEmitter,e.registerOutlet(r?r:i.a,this)}return RouterOutlet.prototype.ngOnDestroy=function(){this.parentOutletMap.removeOutlet(this.name?this.name:i.a)},Object.defineProperty(RouterOutlet.prototype,"isActivated",{get:function(){return!!this.activated},enumerable:!0,configurable:!0}),Object.defineProperty(RouterOutlet.prototype,"component",{get:function(){if(!this.activated)throw new Error("Outlet is not activated");return this.activated.instance},enumerable:!0,configurable:!0}),Object.defineProperty(RouterOutlet.prototype,"activatedRoute",{get:function(){if(!this.activated)throw new Error("Outlet is not activated");return this._activatedRoute},enumerable:!0,configurable:!0}),RouterOutlet.prototype.deactivate=function(){if(this.activated){var e=this.component;this.activated.destroy(),this.activated=null,this.deactivateEvents.emit(e)}},RouterOutlet.prototype.activate=function(e,t,n,r,i){this.outletMap=i,this._activatedRoute=e;var a,s=e._futureSnapshot,u=s._routeConfig.component;a=t?t.resolveComponentFactory(u):this.resolver.resolveComponentFactory(u);var l=n?n:this.location.parentInjector,c=o.ReflectiveInjector.fromResolvedProviders(r,l);this.activated=this.location.createComponent(a,this.location.length,c,[]),this.activated.changeDetectorRef.detectChanges(),this.activateEvents.emit(this.activated.instance)},RouterOutlet.decorators=[{type:o.Directive,args:[{selector:"router-outlet"}]}],RouterOutlet.ctorParameters=[{type:r.a},{type:o.ViewContainerRef},{type:o.ComponentFactoryResolver},{type:void 0,decorators:[{type:o.Attribute,args:["name"]}]}],RouterOutlet.propDecorators={activateEvents:[{type:o.Output,args:["activate"]}],deactivateEvents:[{type:o.Output,args:["deactivate"]}]},RouterOutlet}()},function(e,t,n){"use strict";function provideLocationStrategy(e,t,n){return void 0===n&&(n={}),n.useHash?new o.HashLocationStrategy(e,t):new o.PathLocationStrategy(e,t)}function provideForRootGuard(e){if(e)throw new Error("RouterModule.forRoot() called twice. Lazy loaded modules should use RouterModule.forChild() instead.");return"guarded"}function provideRoutes(e){return[{provide:r.ANALYZE_FOR_ENTRY_COMPONENTS,multi:!0,useValue:e},{provide:l.c,multi:!0,useValue:e}]}function setupRouter(e,t,o,r,i,a,s,l,c){if(void 0===c&&(c={}),0==e.componentTypes.length)throw new Error("Bootstrap at least one component before injecting Router.");var d=e.componentTypes[0],p=new u.a(d,t,o,r,i,a,s,n.i(g.a)(l));return c.errorHandler&&(p.errorHandler=c.errorHandler),c.enableTracing&&p.events.subscribe(function(e){console.group("Router Event: "+e.constructor.name),console.log(e.toString()),console.log(e),console.groupEnd()}),p}function rootRoute(e){return e.routerState.root}function initialRouterNavigation(e,t){return function(){t.initialNavigation===!1?e.setUpLocationChangeListener():e.initialNavigation()}}function provideRouterInitializer(){return{provide:r.APP_BOOTSTRAP_LISTENER,multi:!0,useFactory:initialRouterNavigation,deps:[u.a,h]}}var o=n(68),r=n(1),i=n(288),a=n(424),s=n(425),u=n(198),l=n(199),c=n(200),d=n(113),p=n(91),g=n(59);n.d(t,"a",function(){return y}),n.d(t,"b",function(){return b}),t.c=provideRoutes;var f=[s.a,i.a,i.b,a.a],h=new r.OpaqueToken("ROUTER_CONFIGURATION"),m=new r.OpaqueToken("ROUTER_FORROOT_GUARD"),y=({provide:o.LocationStrategy,useClass:o.PathLocationStrategy},{provide:o.LocationStrategy,useClass:o.HashLocationStrategy},[o.Location,{provide:p.g,useClass:p.h},{provide:u.a,useFactory:setupRouter,deps:[r.ApplicationRef,p.g,c.a,o.Location,r.Injector,r.NgModuleFactoryLoader,r.Compiler,l.c,h]},c.a,{provide:d.b,useFactory:rootRoute,deps:[u.a]},{provide:r.NgModuleFactoryLoader,useClass:r.SystemJsNgModuleLoader},{provide:h,useValue:{enableTracing:!1}}]),b=function(){function RouterModule(e){}return RouterModule.forRoot=function(e,t){return{ngModule:RouterModule,providers:[y,provideRoutes(e),{provide:m,useFactory:provideForRootGuard,deps:[[u.a,new r.Optional,new r.SkipSelf]]},{provide:h,useValue:t?t:{}},{provide:o.LocationStrategy,useFactory:provideLocationStrategy,deps:[o.PlatformLocation,[new r.Inject(o.APP_BASE_HREF),new r.Optional],h]},provideRouterInitializer()]}},RouterModule.forChild=function(e){return{ngModule:RouterModule,providers:[provideRoutes(e)]}},RouterModule.decorators=[{type:r.NgModule,args:[{declarations:f,exports:f}]}],RouterModule.ctorParameters=[{type:void 0,decorators:[{type:r.Optional},{type:r.Inject,args:[m]}]}],RouterModule}()},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t){"use strict";t.empty={closed:!0,next:function(e){},error:function(e){throw e},complete:function(){}}},function(e,t,n){"use strict";var o=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},r=n(22),i=function(e){function SubjectSubscription(t,n){e.call(this),this.subject=t,this.subscriber=n,this.closed=!1}return o(SubjectSubscription,e),SubjectSubscription.prototype.unsubscribe=function(){if(!this.closed){this.closed=!0;var e=this.subject,t=e.observers;if(this.subject=null,t&&0!==t.length&&!e.isStopped&&!e.closed){var n=t.indexOf(this.subscriber);n!==-1&&t.splice(n,1)}}},SubjectSubscription}(r.Subscription);t.SubjectSubscription=i},,,,function(e,t,n){"use strict";var o=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},r=n(66),i=n(522),a=n(524),s=n(496),u=n(1072),l=n(65),c=n(1061),d=n(155),p=n(0),g=n(152),f=n(156),h=function(e){function FromObservable(t,n){e.call(this,null),this.ish=t,this.scheduler=n}return o(FromObservable,e),FromObservable.create=function(e,t){if(null!=e){if("function"==typeof e[f.observable])return e instanceof p.Observable&&!t?e:new FromObservable(e,t);if(r.isArray(e))return new l.ArrayObservable(e,t);if(a.isPromise(e))return new s.PromiseObservable(e,t);if("function"==typeof e[d.iterator]||"string"==typeof e)return new u.IteratorObservable(e,t);if(i.isArrayLike(e))return new c.ArrayLikeObservable(e,t)}throw new TypeError((null!==e&&typeof e||e)+" is not observable")},FromObservable.prototype._subscribe=function(e){var t=this.ish,n=this.scheduler;return null==n?t[f.observable]().subscribe(e):t[f.observable]().subscribe(new g.ObserveOnSubscriber(e,n,0))},FromObservable}(p.Observable);t.FromObservable=h},function(e,t,n){"use strict";function dispatchNext(e){var t=e.value,n=e.subscriber;n.closed||(n.next(t),n.complete())}function dispatchError(e){var t=e.err,n=e.subscriber;n.closed||n.error(t)}var o=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);
e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},r=n(26),i=n(0),a=function(e){function PromiseObservable(t,n){e.call(this),this.promise=t,this.scheduler=n}return o(PromiseObservable,e),PromiseObservable.create=function(e,t){return new PromiseObservable(e,t)},PromiseObservable.prototype._subscribe=function(e){var t=this,n=this.promise,o=this.scheduler;if(null==o)this._isScalar?e.closed||(e.next(this.value),e.complete()):n.then(function(n){t.value=n,t._isScalar=!0,e.closed||(e.next(n),e.complete())},function(t){e.closed||e.error(t)}).then(null,function(e){r.root.setTimeout(function(){throw e})});else if(this._isScalar){if(!e.closed)return o.schedule(dispatchNext,0,{value:this.value,subscriber:e})}else n.then(function(n){t.value=n,t._isScalar=!0,e.closed||e.add(o.schedule(dispatchNext,0,{value:n,subscriber:e}))},function(t){e.closed||e.add(o.schedule(dispatchError,0,{err:t,subscriber:e}))}).then(null,function(e){r.root.setTimeout(function(){throw e})})},PromiseObservable}(i.Observable);t.PromiseObservable=a},,,function(e,t,n){"use strict";function _catch(e){var t=new a(e),n=this.lift(t);return t.caught=n}var o=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},r=n(4),i=n(5);t._catch=_catch;var a=function(){function CatchOperator(e){this.selector=e}return CatchOperator.prototype.call=function(e,t){return t.subscribe(new s(e,this.selector,this.caught))},CatchOperator}(),s=function(e){function CatchSubscriber(t,n,o){e.call(this,t),this.selector=n,this.caught=o}return o(CatchSubscriber,e),CatchSubscriber.prototype.error=function(t){if(!this.isStopped){var n=void 0;try{n=this.selector(t,this.caught)}catch(o){return void e.prototype.error.call(this,o)}this._unsubscribeAndRecycle(),this.add(i.subscribeToResult(this,n))}},CatchSubscriber}(r.OuterSubscriber)},,function(e,t,n){"use strict";function first(e,t,n){return this.lift(new a(e,t,n,this))}var o=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},r=n(3),i=n(158);t.first=first;var a=function(){function FirstOperator(e,t,n,o){this.predicate=e,this.resultSelector=t,this.defaultValue=n,this.source=o}return FirstOperator.prototype.call=function(e,t){return t.subscribe(new s(e,this.predicate,this.resultSelector,this.defaultValue,this.source))},FirstOperator}(),s=function(e){function FirstSubscriber(t,n,o,r,i){e.call(this,t),this.predicate=n,this.resultSelector=o,this.defaultValue=r,this.source=i,this.index=0,this.hasCompleted=!1,this._emitted=!1}return o(FirstSubscriber,e),FirstSubscriber.prototype._next=function(e){var t=this.index++;this.predicate?this._tryPredicate(e,t):this._emit(e,t)},FirstSubscriber.prototype._tryPredicate=function(e,t){var n;try{n=this.predicate(e,t,this.source)}catch(o){return void this.destination.error(o)}n&&this._emit(e,t)},FirstSubscriber.prototype._emit=function(e,t){return this.resultSelector?void this._tryResultSelector(e,t):void this._emitFinal(e)},FirstSubscriber.prototype._tryResultSelector=function(e,t){var n;try{n=this.resultSelector(e,t)}catch(o){return void this.destination.error(o)}this._emitFinal(n)},FirstSubscriber.prototype._emitFinal=function(e){var t=this.destination;this._emitted||(this._emitted=!0,t.next(e),t.complete(),this.hasCompleted=!0)},FirstSubscriber.prototype._complete=function(){var e=this.destination;this.hasCompleted||"undefined"==typeof this.defaultValue?this.hasCompleted||e.error(new i.EmptyError):(e.next(this.defaultValue),e.complete())},FirstSubscriber}(r.Subscriber)},function(e,t,n){"use strict";function last(e,t,n){return this.lift(new a(e,t,n,this))}var o=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},r=n(3),i=n(158);t.last=last;var a=function(){function LastOperator(e,t,n,o){this.predicate=e,this.resultSelector=t,this.defaultValue=n,this.source=o}return LastOperator.prototype.call=function(e,t){return t.subscribe(new s(e,this.predicate,this.resultSelector,this.defaultValue,this.source))},LastOperator}(),s=function(e){function LastSubscriber(t,n,o,r,i){e.call(this,t),this.predicate=n,this.resultSelector=o,this.defaultValue=r,this.source=i,this.hasValue=!1,this.index=0,"undefined"!=typeof r&&(this.lastValue=r,this.hasValue=!0)}return o(LastSubscriber,e),LastSubscriber.prototype._next=function(e){var t=this.index++;if(this.predicate)this._tryPredicate(e,t);else{if(this.resultSelector)return void this._tryResultSelector(e,t);this.lastValue=e,this.hasValue=!0}},LastSubscriber.prototype._tryPredicate=function(e,t){var n;try{n=this.predicate(e,t,this.source)}catch(o){return void this.destination.error(o)}if(n){if(this.resultSelector)return void this._tryResultSelector(e,t);this.lastValue=e,this.hasValue=!0}},LastSubscriber.prototype._tryResultSelector=function(e,t){var n;try{n=this.resultSelector(e,t)}catch(o){return void this.destination.error(o)}this.lastValue=n,this.hasValue=!0},LastSubscriber.prototype._complete=function(){var e=this.destination;this.hasValue?(e.next(this.lastValue),e.complete()):e.error(new i.EmptyError)},LastSubscriber}(r.Subscriber)},,,,,,,,,,,,function(e,t,n){"use strict";function toPromise(e){var t=this;if(e||(o.root.Rx&&o.root.Rx.config&&o.root.Rx.config.Promise?e=o.root.Rx.config.Promise:o.root.Promise&&(e=o.root.Promise)),!e)throw new Error("no Promise impl found");return new e(function(e,n){var o;t.subscribe(function(e){return o=e},function(e){return n(e)},function(){return e(o)})})}var o=n(26);t.toPromise=toPromise},,,,,,function(e,t){"use strict";var n=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},o=function(e){function UnsubscriptionError(t){e.call(this),this.errors=t;var n=Error.call(this,t?t.length+" errors occurred during unsubscription:\n "+t.map(function(e,t){return t+1+") "+e.toString()}).join("\n "):"");this.name=n.name="UnsubscriptionError",this.stack=n.stack,this.message=n.message}return n(UnsubscriptionError,e),UnsubscriptionError}(Error);t.UnsubscriptionError=o},,function(e,t){"use strict";t.isArrayLike=function(e){return e&&"number"==typeof e.length}},function(e,t){"use strict";function isObject(e){return null!=e&&"object"==typeof e}t.isObject=isObject},function(e,t){"use strict";function isPromise(e){return e&&"function"!=typeof e.subscribe&&"function"==typeof e.then}t.isPromise=isPromise},,,function(e,t){function webpackEmptyContext(e){throw new Error("Cannot find module '"+e+"'.")}webpackEmptyContext.keys=function(){return[]},webpackEmptyContext.resolve=webpackEmptyContext,e.exports=webpackEmptyContext,webpackEmptyContext.id=527},,,,,,,,,,,,,,,,,,,,function(e,t,n){n(121)(n(584))},function(e,t,n){n(121)(n(585))},function(e,t,n){n(121)(n(586))},function(e,t,n){n(121)(n(587))},function(e,t,n){n(121)(n(588))},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t){e.exports='/*** IMPORTS FROM imports-loader ***/\nvar module = undefined;\n\n// Do not edit this file; automatically generated by build.py.\n\'use strict\';\n\nvar COMPILED=!0,goog=goog||{};goog.global=this;goog.isDef=function(a){return void 0!==a};goog.exportPath_=function(a,b,c){a=a.split(".");c=c||goog.global;a[0]in c||!c.execScript||c.execScript("var "+a[0]);for(var d;a.length&&(d=a.shift());)!a.length&&goog.isDef(b)?c[d]=b:c=c[d]?c[d]:c[d]={}};\ngoog.define=function(a,b){var c=b;COMPILED||(goog.global.CLOSURE_UNCOMPILED_DEFINES&&Object.prototype.hasOwnProperty.call(goog.global.CLOSURE_UNCOMPILED_DEFINES,a)?c=goog.global.CLOSURE_UNCOMPILED_DEFINES[a]:goog.global.CLOSURE_DEFINES&&Object.prototype.hasOwnProperty.call(goog.global.CLOSURE_DEFINES,a)&&(c=goog.global.CLOSURE_DEFINES[a]));goog.exportPath_(a,c)};goog.DEBUG=!1;goog.LOCALE="en";goog.TRUSTED_SITE=!0;goog.STRICT_MODE_COMPATIBLE=!1;goog.DISALLOW_TEST_ONLY_CODE=COMPILED&&!goog.DEBUG;\ngoog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING=!1;goog.provide=function(a){if(goog.isInModuleLoader_())throw Error("goog.provide can not be used within a goog.module.");if(!COMPILED&&goog.isProvided_(a))throw Error(\'Namespace "\'+a+\'" already declared.\');goog.constructNamespace_(a)};goog.constructNamespace_=function(a,b){if(!COMPILED){delete goog.implicitNamespaces_[a];for(var c=a;(c=c.substring(0,c.lastIndexOf(".")))&&!goog.getObjectByName(c);)goog.implicitNamespaces_[c]=!0}goog.exportPath_(a,b)};\ngoog.VALID_MODULE_RE_=/^[a-zA-Z_$][a-zA-Z0-9._$]*$/;\ngoog.module=function(a){if(!goog.isString(a)||!a||-1==a.search(goog.VALID_MODULE_RE_))throw Error("Invalid module identifier");if(!goog.isInModuleLoader_())throw Error("Module "+a+" has been loaded incorrectly. Note, modules cannot be loaded as normal scripts. They require some kind of pre-processing step. You\'re likely trying to load a module via a script tag or as a part of a concatenated bundle without rewriting the module. For more info see: https://github.com/google/closure-library/wiki/goog.module:-an-ES6-module-like-alternative-to-goog.provide.");if(goog.moduleLoaderState_.moduleName)throw Error("goog.module may only be called once per module.");\ngoog.moduleLoaderState_.moduleName=a;if(!COMPILED){if(goog.isProvided_(a))throw Error(\'Namespace "\'+a+\'" already declared.\');delete goog.implicitNamespaces_[a]}};goog.module.get=function(a){return goog.module.getInternal_(a)};goog.module.getInternal_=function(a){if(!COMPILED)return goog.isProvided_(a)?a in goog.loadedModules_?goog.loadedModules_[a]:goog.getObjectByName(a):null};goog.moduleLoaderState_=null;goog.isInModuleLoader_=function(){return null!=goog.moduleLoaderState_};\ngoog.module.declareLegacyNamespace=function(){if(!COMPILED&&!goog.isInModuleLoader_())throw Error("goog.module.declareLegacyNamespace must be called from within a goog.module");if(!COMPILED&&!goog.moduleLoaderState_.moduleName)throw Error("goog.module must be called prior to goog.module.declareLegacyNamespace.");goog.moduleLoaderState_.declareLegacyNamespace=!0};\ngoog.setTestOnly=function(a){if(goog.DISALLOW_TEST_ONLY_CODE)throw a=a||"",Error("Importing test-only code into non-debug environment"+(a?": "+a:"."));};goog.forwardDeclare=function(a){};COMPILED||(goog.isProvided_=function(a){return a in goog.loadedModules_||!goog.implicitNamespaces_[a]&&goog.isDefAndNotNull(goog.getObjectByName(a))},goog.implicitNamespaces_={"goog.module":!0});\ngoog.getObjectByName=function(a,b){for(var c=a.split("."),d=b||goog.global,e;e=c.shift();)if(goog.isDefAndNotNull(d[e]))d=d[e];else return null;return d};goog.globalize=function(a,b){var c=b||goog.global,d;for(d in a)c[d]=a[d]};\ngoog.addDependency=function(a,b,c,d){if(goog.DEPENDENCIES_ENABLED){var e;a=a.replace(/\\\\/g,"/");var f=goog.dependencies_;d&&"boolean"!==typeof d||(d=d?{module:"goog"}:{});for(var g=0;e=b[g];g++)f.nameToPath[e]=a,f.loadFlags[a]=d;for(d=0;b=c[d];d++)a in f.requires||(f.requires[a]={}),f.requires[a][b]=!0}};goog.ENABLE_DEBUG_LOADER=!0;goog.logToConsole_=function(a){goog.global.console&&goog.global.console.error(a)};\ngoog.require=function(a){if(!COMPILED){goog.ENABLE_DEBUG_LOADER&&goog.IS_OLD_IE_&&goog.maybeProcessDeferredDep_(a);if(goog.isProvided_(a)){if(goog.isInModuleLoader_())return goog.module.getInternal_(a)}else if(goog.ENABLE_DEBUG_LOADER){var b=goog.getPathFromDeps_(a);if(b)goog.writeScripts_(b);else throw a="goog.require could not find: "+a,goog.logToConsole_(a),Error(a);}return null}};goog.basePath="";goog.nullFunction=function(){};\ngoog.abstractMethod=function(){throw Error("unimplemented abstract method");};goog.addSingletonGetter=function(a){a.getInstance=function(){if(a.instance_)return a.instance_;goog.DEBUG&&(goog.instantiatedSingletons_[goog.instantiatedSingletons_.length]=a);return a.instance_=new a}};goog.instantiatedSingletons_=[];goog.LOAD_MODULE_USING_EVAL=!0;goog.SEAL_MODULE_EXPORTS=goog.DEBUG;goog.loadedModules_={};goog.DEPENDENCIES_ENABLED=!COMPILED&&goog.ENABLE_DEBUG_LOADER;goog.TRANSPILE="detect";\ngoog.TRANSPILER="transpile.js";\ngoog.DEPENDENCIES_ENABLED&&(goog.dependencies_={loadFlags:{},nameToPath:{},requires:{},visited:{},written:{},deferred:{}},goog.inHtmlDocument_=function(){var a=goog.global.document;return null!=a&&"write"in a},goog.findBasePath_=function(){if(goog.isDef(goog.global.CLOSURE_BASE_PATH))goog.basePath=goog.global.CLOSURE_BASE_PATH;else if(goog.inHtmlDocument_())for(var a=goog.global.document.getElementsByTagName("SCRIPT"),b=a.length-1;0<=b;--b){var c=a[b].src,d=c.lastIndexOf("?"),d=-1==d?c.length:d;if("base.js"==\nc.substr(d-7,7)){goog.basePath=c.substr(0,d-7);break}}},goog.importScript_=function(a,b){(goog.global.CLOSURE_IMPORT_SCRIPT||goog.writeScriptTag_)(a,b)&&(goog.dependencies_.written[a]=!0)},goog.IS_OLD_IE_=!(goog.global.atob||!goog.global.document||!goog.global.document.all),goog.importProcessedScript_=function(a,b,c){goog.importScript_("",\'goog.retrieveAndExec_("\'+a+\'", \'+b+", "+c+");")},goog.queuedModules_=[],goog.wrapModule_=function(a,b){return goog.LOAD_MODULE_USING_EVAL&&goog.isDef(goog.global.JSON)?\n"goog.loadModule("+goog.global.JSON.stringify(b+"\\n//# sourceURL="+a+"\\n")+");":\'goog.loadModule(function(exports) {"use strict";\'+b+"\\n;return exports});\\n//# sourceURL="+a+"\\n"},goog.loadQueuedModules_=function(){var a=goog.queuedModules_.length;if(0<a){var b=goog.queuedModules_;goog.queuedModules_=[];for(var c=0;c<a;c++)goog.maybeProcessDeferredPath_(b[c])}},goog.maybeProcessDeferredDep_=function(a){goog.isDeferredModule_(a)&&goog.allDepsAreAvailable_(a)&&(a=goog.getPathFromDeps_(a),goog.maybeProcessDeferredPath_(goog.basePath+\na))},goog.isDeferredModule_=function(a){var b=(a=goog.getPathFromDeps_(a))&&goog.dependencies_.loadFlags[a]||{},c=b.lang||"es3";return a&&("goog"==b.module||goog.needsTranspile_(c))?goog.basePath+a in goog.dependencies_.deferred:!1},goog.allDepsAreAvailable_=function(a){if((a=goog.getPathFromDeps_(a))&&a in goog.dependencies_.requires)for(var b in goog.dependencies_.requires[a])if(!goog.isProvided_(b)&&!goog.isDeferredModule_(b))return!1;return!0},goog.maybeProcessDeferredPath_=function(a){if(a in\ngoog.dependencies_.deferred){var b=goog.dependencies_.deferred[a];delete goog.dependencies_.deferred[a];goog.globalEval(b)}},goog.loadModuleFromUrl=function(a){goog.retrieveAndExec_(a,!0,!1)},goog.writeScriptSrcNode_=function(a){goog.global.document.write(\'<script type="text/javascript" src="\'+a+\'">\\x3c/script>\')},goog.appendScriptSrcNode_=function(a){var b=goog.global.document,c=b.createElement("script");c.type="text/javascript";c.src=a;c.defer=!1;c.async=!1;b.head.appendChild(c)},goog.writeScriptTag_=\nfunction(a,b){if(goog.inHtmlDocument_()){var c=goog.global.document;if(!goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING&&"complete"==c.readyState){if(/\\bdeps.js$/.test(a))return!1;throw Error(\'Cannot write "\'+a+\'" after document load\');}if(void 0===b)if(goog.IS_OLD_IE_){var d=" onreadystatechange=\'goog.onScriptLoad_(this, "+ ++goog.lastNonModuleScriptIndex_+")\' ";c.write(\'<script type="text/javascript" src="\'+a+\'"\'+d+">\\x3c/script>")}else goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING?goog.appendScriptSrcNode_(a):\ngoog.writeScriptSrcNode_(a);else c.write(\'<script type="text/javascript">\'+b+"\\x3c/script>");return!0}return!1},goog.needsTranspile_=function(a){if("always"==goog.TRANSPILE)return!0;if("never"==goog.TRANSPILE)return!1;goog.requiresTranspilation_||(goog.requiresTranspilation_=goog.createRequiresTranspilation_());if(a in goog.requiresTranspilation_)return goog.requiresTranspilation_[a];throw Error("Unknown language mode: "+a);},goog.requiresTranspilation_=null,goog.lastNonModuleScriptIndex_=0,goog.onScriptLoad_=\nfunction(a,b){"complete"==a.readyState&&goog.lastNonModuleScriptIndex_==b&&goog.loadQueuedModules_();return!0},goog.writeScripts_=function(a){function b(a){if(!(a in e.written||a in e.visited)){e.visited[a]=!0;if(a in e.requires)for(var f in e.requires[a])if(!goog.isProvided_(f))if(f in e.nameToPath)b(e.nameToPath[f]);else throw Error("Undefined nameToPath for "+f);a in d||(d[a]=!0,c.push(a))}}var c=[],d={},e=goog.dependencies_;b(a);for(a=0;a<c.length;a++){var f=c[a];goog.dependencies_.written[f]=\n!0}var g=goog.moduleLoaderState_;goog.moduleLoaderState_=null;for(a=0;a<c.length;a++)if(f=c[a]){var h=e.loadFlags[f]||{},k=goog.needsTranspile_(h.lang||"es3");"goog"==h.module||k?goog.importProcessedScript_(goog.basePath+f,"goog"==h.module,k):goog.importScript_(goog.basePath+f)}else throw goog.moduleLoaderState_=g,Error("Undefined script input");goog.moduleLoaderState_=g},goog.getPathFromDeps_=function(a){return a in goog.dependencies_.nameToPath?goog.dependencies_.nameToPath[a]:null},goog.findBasePath_(),\ngoog.global.CLOSURE_NO_DEPS||goog.importScript_(goog.basePath+"deps.js"));\ngoog.loadModule=function(a){var b=goog.moduleLoaderState_;try{goog.moduleLoaderState_={moduleName:void 0,declareLegacyNamespace:!1};var c;if(goog.isFunction(a))c=a.call(void 0,{});else if(goog.isString(a))c=goog.loadModuleFromSource_.call(void 0,a);else throw Error("Invalid module definition");var d=goog.moduleLoaderState_.moduleName;if(!goog.isString(d)||!d)throw Error(\'Invalid module name "\'+d+\'"\');goog.moduleLoaderState_.declareLegacyNamespace?goog.constructNamespace_(d,c):goog.SEAL_MODULE_EXPORTS&&\nObject.seal&&goog.isObject(c)&&Object.seal(c);goog.loadedModules_[d]=c}finally{goog.moduleLoaderState_=b}};goog.loadModuleFromSource_=function(a){eval(a);return{}};goog.normalizePath_=function(a){a=a.split("/");for(var b=0;b<a.length;)"."==a[b]?a.splice(b,1):b&&".."==a[b]&&a[b-1]&&".."!=a[b-1]?a.splice(--b,2):b++;return a.join("/")};\ngoog.loadFileSync_=function(a){if(goog.global.CLOSURE_LOAD_FILE_SYNC)return goog.global.CLOSURE_LOAD_FILE_SYNC(a);try{var b=new goog.global.XMLHttpRequest;b.open("get",a,!1);b.send();return 0==b.status||200==b.status?b.responseText:null}catch(c){return null}};\ngoog.retrieveAndExec_=function(a,b,c){if(!COMPILED){var d=a;a=goog.normalizePath_(a);var e=goog.global.CLOSURE_IMPORT_SCRIPT||goog.writeScriptTag_,f=goog.loadFileSync_(a);if(null==f)throw Error(\'Load of "\'+a+\'" failed\');c&&(f=goog.transpile_.call(goog.global,f,a));f=b?goog.wrapModule_(a,f):f+("\\n//# sourceURL="+a);goog.IS_OLD_IE_?(goog.dependencies_.deferred[d]=f,goog.queuedModules_.push(d)):e(a,f)}};\ngoog.transpile_=function(a,b){var c=goog.global.$jscomp;c||(goog.global.$jscomp=c={});var d=c.transpile;if(!d){var e=goog.basePath+goog.TRANSPILER,f=goog.loadFileSync_(e);if(f){eval(f+"\\n//# sourceURL="+e);if(goog.global.$gwtExport&&goog.global.$gwtExport.$jscomp&&!goog.global.$gwtExport.$jscomp.transpile)throw Error(\'The transpiler did not properly export the "transpile" method. $gwtExport: \'+JSON.stringify(goog.global.$gwtExport));goog.global.$jscomp.transpile=goog.global.$gwtExport.$jscomp.transpile;\nc=goog.global.$jscomp;d=c.transpile}}d||(d=c.transpile=function(a,b){goog.logToConsole_(b+" requires transpilation but no transpiler was found.");return a});return d(a,b)};\ngoog.typeOf=function(a){var b=typeof a;if("object"==b)if(a){if(a instanceof Array)return"array";if(a instanceof Object)return b;var c=Object.prototype.toString.call(a);if("[object Window]"==c)return"object";if("[object Array]"==c||"number"==typeof a.length&&"undefined"!=typeof a.splice&&"undefined"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable("splice"))return"array";if("[object Function]"==c||"undefined"!=typeof a.call&&"undefined"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable("call"))return"function"}else return"null";\nelse if("function"==b&&"undefined"==typeof a.call)return"object";return b};goog.isNull=function(a){return null===a};goog.isDefAndNotNull=function(a){return null!=a};goog.isArray=function(a){return"array"==goog.typeOf(a)};goog.isArrayLike=function(a){var b=goog.typeOf(a);return"array"==b||"object"==b&&"number"==typeof a.length};goog.isDateLike=function(a){return goog.isObject(a)&&"function"==typeof a.getFullYear};goog.isString=function(a){return"string"==typeof a};\ngoog.isBoolean=function(a){return"boolean"==typeof a};goog.isNumber=function(a){return"number"==typeof a};goog.isFunction=function(a){return"function"==goog.typeOf(a)};goog.isObject=function(a){var b=typeof a;return"object"==b&&null!=a||"function"==b};goog.getUid=function(a){return a[goog.UID_PROPERTY_]||(a[goog.UID_PROPERTY_]=++goog.uidCounter_)};goog.hasUid=function(a){return!!a[goog.UID_PROPERTY_]};\ngoog.removeUid=function(a){null!==a&&"removeAttribute"in a&&a.removeAttribute(goog.UID_PROPERTY_);try{delete a[goog.UID_PROPERTY_]}catch(b){}};goog.UID_PROPERTY_="closure_uid_"+(1E9*Math.random()>>>0);goog.uidCounter_=0;goog.getHashCode=goog.getUid;goog.removeHashCode=goog.removeUid;goog.cloneObject=function(a){var b=goog.typeOf(a);if("object"==b||"array"==b){if(a.clone)return a.clone();var b="array"==b?[]:{},c;for(c in a)b[c]=goog.cloneObject(a[c]);return b}return a};\ngoog.bindNative_=function(a,b,c){return a.call.apply(a.bind,arguments)};goog.bindJs_=function(a,b,c){if(!a)throw Error();if(2<arguments.length){var d=Array.prototype.slice.call(arguments,2);return function(){var c=Array.prototype.slice.call(arguments);Array.prototype.unshift.apply(c,d);return a.apply(b,c)}}return function(){return a.apply(b,arguments)}};\ngoog.bind=function(a,b,c){Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?goog.bind=goog.bindNative_:goog.bind=goog.bindJs_;return goog.bind.apply(null,arguments)};goog.partial=function(a,b){var c=Array.prototype.slice.call(arguments,1);return function(){var b=c.slice();b.push.apply(b,arguments);return a.apply(this,b)}};goog.mixin=function(a,b){for(var c in b)a[c]=b[c]};goog.now=goog.TRUSTED_SITE&&Date.now||function(){return+new Date};\ngoog.globalEval=function(a){if(goog.global.execScript)goog.global.execScript(a,"JavaScript");else if(goog.global.eval){if(null==goog.evalWorksForGlobals_)if(goog.global.eval("var _evalTest_ = 1;"),"undefined"!=typeof goog.global._evalTest_){try{delete goog.global._evalTest_}catch(d){}goog.evalWorksForGlobals_=!0}else goog.evalWorksForGlobals_=!1;if(goog.evalWorksForGlobals_)goog.global.eval(a);else{var b=goog.global.document,c=b.createElement("SCRIPT");c.type="text/javascript";c.defer=!1;c.appendChild(b.createTextNode(a));\nb.body.appendChild(c);b.body.removeChild(c)}}else throw Error("goog.globalEval not available");};goog.evalWorksForGlobals_=null;\ngoog.getCssName=function(a,b){if("."==String(a).charAt(0))throw Error(\'className passed in goog.getCssName must not start with ".". You passed: \'+a);var c=function(a){return goog.cssNameMapping_[a]||a},d=function(a){a=a.split("-");for(var b=[],d=0;d<a.length;d++)b.push(c(a[d]));return b.join("-")},d=goog.cssNameMapping_?"BY_WHOLE"==goog.cssNameMappingStyle_?c:d:function(a){return a},d=b?a+"-"+d(b):d(a);return goog.global.CLOSURE_CSS_NAME_MAP_FN?goog.global.CLOSURE_CSS_NAME_MAP_FN(d):d};\ngoog.setCssNameMapping=function(a,b){goog.cssNameMapping_=a;goog.cssNameMappingStyle_=b};!COMPILED&&goog.global.CLOSURE_CSS_NAME_MAPPING&&(goog.cssNameMapping_=goog.global.CLOSURE_CSS_NAME_MAPPING);goog.getMsg=function(a,b){b&&(a=a.replace(/\\{\\$([^}]+)}/g,function(a,d){return null!=b&&d in b?b[d]:a}));return a};goog.getMsgWithFallback=function(a,b){return a};goog.exportSymbol=function(a,b,c){goog.exportPath_(a,b,c)};goog.exportProperty=function(a,b,c){a[b]=c};\ngoog.inherits=function(a,b){function c(){}c.prototype=b.prototype;a.superClass_=b.prototype;a.prototype=new c;a.prototype.constructor=a;a.base=function(a,c,f){for(var d=Array(arguments.length-2),e=2;e<arguments.length;e++)d[e-2]=arguments[e];return b.prototype[c].apply(a,d)}};\ngoog.base=function(a,b,c){var d=arguments.callee.caller;if(goog.STRICT_MODE_COMPATIBLE||goog.DEBUG&&!d)throw Error("arguments.caller not defined. goog.base() cannot be used with strict mode code. See http://www.ecma-international.org/ecma-262/5.1/#sec-C");if(d.superClass_){for(var e=Array(arguments.length-1),f=1;f<arguments.length;f++)e[f-1]=arguments[f];return d.superClass_.constructor.apply(a,e)}e=Array(arguments.length-2);for(f=2;f<arguments.length;f++)e[f-2]=arguments[f];for(var f=!1,g=a.constructor;g;g=\ng.superClass_&&g.superClass_.constructor)if(g.prototype[b]===d)f=!0;else if(f)return g.prototype[b].apply(a,e);if(a[b]===d)return a.constructor.prototype[b].apply(a,e);throw Error("goog.base called from a method of one name to a method of a different name");};goog.scope=function(a){if(goog.isInModuleLoader_())throw Error("goog.scope is not supported within a goog.module.");a.call(goog.global)};COMPILED||(goog.global.COMPILED=COMPILED);\ngoog.defineClass=function(a,b){var c=b.constructor,d=b.statics;c&&c!=Object.prototype.constructor||(c=function(){throw Error("cannot instantiate an interface (no constructor defined).");});c=goog.defineClass.createSealingConstructor_(c,a);a&&goog.inherits(c,a);delete b.constructor;delete b.statics;goog.defineClass.applyProperties_(c.prototype,b);null!=d&&(d instanceof Function?d(c):goog.defineClass.applyProperties_(c,d));return c};goog.defineClass.SEAL_CLASS_INSTANCES=goog.DEBUG;\ngoog.defineClass.createSealingConstructor_=function(a,b){if(!goog.defineClass.SEAL_CLASS_INSTANCES)return a;var c=!goog.defineClass.isUnsealable_(b),d=function(){var b=a.apply(this,arguments)||this;b[goog.UID_PROPERTY_]=b[goog.UID_PROPERTY_];this.constructor===d&&c&&Object.seal instanceof Function&&Object.seal(b);return b};return d};goog.defineClass.isUnsealable_=function(a){return a&&a.prototype&&a.prototype[goog.UNSEALABLE_CONSTRUCTOR_PROPERTY_]};goog.defineClass.OBJECT_PROTOTYPE_FIELDS_="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");\ngoog.defineClass.applyProperties_=function(a,b){for(var c in b)Object.prototype.hasOwnProperty.call(b,c)&&(a[c]=b[c]);for(var d=0;d<goog.defineClass.OBJECT_PROTOTYPE_FIELDS_.length;d++)c=goog.defineClass.OBJECT_PROTOTYPE_FIELDS_[d],Object.prototype.hasOwnProperty.call(b,c)&&(a[c]=b[c])};goog.tagUnsealableClass=function(a){!COMPILED&&goog.defineClass.SEAL_CLASS_INSTANCES&&(a.prototype[goog.UNSEALABLE_CONSTRUCTOR_PROPERTY_]=!0)};goog.UNSEALABLE_CONSTRUCTOR_PROPERTY_="goog_defineClass_legacy_unsealable";\ngoog.createRequiresTranspilation_=function(){function a(a,b){d?c[a]=!0:b()?c[a]=!1:d=c[a]=!0}function b(a){try{return!!eval(a)}catch(f){return!1}}var c={es3:!1},d=!1;a("es5",function(){return b("[1,].length==1")});a("es6",function(){return b(\'(()=>{"use strict";class X{constructor(){if(new.target!=String)throw 1;this.x=42}}let q=Reflect.construct(X,[],String);if(q.x!=42||!(q instanceof String))throw 1;for(const a of[2,3]){if(a==2)continue;function f(z={a}){let a=0;return z.a}{function f(){return 0;}}return f()==3}})()\')});\na("es6-impl",function(){return!0});a("es7",function(){return b("2 ** 2 == 4")});a("es8",function(){return b("async () => 1, true")});return c};goog.debug={};goog.debug.Error=function(a){if(Error.captureStackTrace)Error.captureStackTrace(this,goog.debug.Error);else{var b=Error().stack;b&&(this.stack=b)}a&&(this.message=String(a));this.reportErrorToServer=!0};goog.inherits(goog.debug.Error,Error);goog.debug.Error.prototype.name="CustomError";goog.dom={};goog.dom.NodeType={ELEMENT:1,ATTRIBUTE:2,TEXT:3,CDATA_SECTION:4,ENTITY_REFERENCE:5,ENTITY:6,PROCESSING_INSTRUCTION:7,COMMENT:8,DOCUMENT:9,DOCUMENT_TYPE:10,DOCUMENT_FRAGMENT:11,NOTATION:12};goog.string={};goog.string.DETECT_DOUBLE_ESCAPING=!1;goog.string.FORCE_NON_DOM_HTML_UNESCAPING=!1;goog.string.Unicode={NBSP:"\\u00a0"};goog.string.startsWith=function(a,b){return 0==a.lastIndexOf(b,0)};goog.string.endsWith=function(a,b){var c=a.length-b.length;return 0<=c&&a.indexOf(b,c)==c};goog.string.caseInsensitiveStartsWith=function(a,b){return 0==goog.string.caseInsensitiveCompare(b,a.substr(0,b.length))};\ngoog.string.caseInsensitiveEndsWith=function(a,b){return 0==goog.string.caseInsensitiveCompare(b,a.substr(a.length-b.length,b.length))};goog.string.caseInsensitiveEquals=function(a,b){return a.toLowerCase()==b.toLowerCase()};goog.string.subs=function(a,b){for(var c=a.split("%s"),d="",e=Array.prototype.slice.call(arguments,1);e.length&&1<c.length;)d+=c.shift()+e.shift();return d+c.join("%s")};goog.string.collapseWhitespace=function(a){return a.replace(/[\\s\\xa0]+/g," ").replace(/^\\s+|\\s+$/g,"")};\ngoog.string.isEmptyOrWhitespace=function(a){return/^[\\s\\xa0]*$/.test(a)};goog.string.isEmptyString=function(a){return 0==a.length};goog.string.isEmpty=goog.string.isEmptyOrWhitespace;goog.string.isEmptyOrWhitespaceSafe=function(a){return goog.string.isEmptyOrWhitespace(goog.string.makeSafe(a))};goog.string.isEmptySafe=goog.string.isEmptyOrWhitespaceSafe;goog.string.isBreakingWhitespace=function(a){return!/[^\\t\\n\\r ]/.test(a)};goog.string.isAlpha=function(a){return!/[^a-zA-Z]/.test(a)};\ngoog.string.isNumeric=function(a){return!/[^0-9]/.test(a)};goog.string.isAlphaNumeric=function(a){return!/[^a-zA-Z0-9]/.test(a)};goog.string.isSpace=function(a){return" "==a};goog.string.isUnicodeChar=function(a){return 1==a.length&&" "<=a&&"~">=a||"\\u0080"<=a&&"\\ufffd">=a};goog.string.stripNewlines=function(a){return a.replace(/(\\r\\n|\\r|\\n)+/g," ")};goog.string.canonicalizeNewlines=function(a){return a.replace(/(\\r\\n|\\r|\\n)/g,"\\n")};\ngoog.string.normalizeWhitespace=function(a){return a.replace(/\\xa0|\\s/g," ")};goog.string.normalizeSpaces=function(a){return a.replace(/\\xa0|[ \\t]+/g," ")};goog.string.collapseBreakingSpaces=function(a){return a.replace(/[\\t\\r\\n ]+/g," ").replace(/^[\\t\\r\\n ]+|[\\t\\r\\n ]+$/g,"")};goog.string.trim=goog.TRUSTED_SITE&&String.prototype.trim?function(a){return a.trim()}:function(a){return a.replace(/^[\\s\\xa0]+|[\\s\\xa0]+$/g,"")};goog.string.trimLeft=function(a){return a.replace(/^[\\s\\xa0]+/,"")};\ngoog.string.trimRight=function(a){return a.replace(/[\\s\\xa0]+$/,"")};goog.string.caseInsensitiveCompare=function(a,b){var c=String(a).toLowerCase(),d=String(b).toLowerCase();return c<d?-1:c==d?0:1};\ngoog.string.numberAwareCompare_=function(a,b,c){if(a==b)return 0;if(!a)return-1;if(!b)return 1;for(var d=a.toLowerCase().match(c),e=b.toLowerCase().match(c),f=Math.min(d.length,e.length),g=0;g<f;g++){c=d[g];var h=e[g];if(c!=h)return a=parseInt(c,10),!isNaN(a)&&(b=parseInt(h,10),!isNaN(b)&&a-b)?a-b:c<h?-1:1}return d.length!=e.length?d.length-e.length:a<b?-1:1};goog.string.intAwareCompare=function(a,b){return goog.string.numberAwareCompare_(a,b,/\\d+|\\D+/g)};\ngoog.string.floatAwareCompare=function(a,b){return goog.string.numberAwareCompare_(a,b,/\\d+|\\.\\d+|\\D+/g)};goog.string.numerateCompare=goog.string.floatAwareCompare;goog.string.urlEncode=function(a){return encodeURIComponent(String(a))};goog.string.urlDecode=function(a){return decodeURIComponent(a.replace(/\\+/g," "))};goog.string.newLineToBr=function(a,b){return a.replace(/(\\r\\n|\\r|\\n)/g,b?"<br />":"<br>")};\ngoog.string.htmlEscape=function(a,b){if(b)a=a.replace(goog.string.AMP_RE_,"&").replace(goog.string.LT_RE_,"<").replace(goog.string.GT_RE_,">").replace(goog.string.QUOT_RE_,""").replace(goog.string.SINGLE_QUOTE_RE_,"'").replace(goog.string.NULL_RE_,"�"),goog.string.DETECT_DOUBLE_ESCAPING&&(a=a.replace(goog.string.E_RE_,"e"));else{if(!goog.string.ALL_RE_.test(a))return a;-1!=a.indexOf("&")&&(a=a.replace(goog.string.AMP_RE_,"&"));-1!=a.indexOf("<")&&(a=a.replace(goog.string.LT_RE_,\n"<"));-1!=a.indexOf(">")&&(a=a.replace(goog.string.GT_RE_,">"));-1!=a.indexOf(\'"\')&&(a=a.replace(goog.string.QUOT_RE_,"""));-1!=a.indexOf("\'")&&(a=a.replace(goog.string.SINGLE_QUOTE_RE_,"'"));-1!=a.indexOf("\\x00")&&(a=a.replace(goog.string.NULL_RE_,"�"));goog.string.DETECT_DOUBLE_ESCAPING&&-1!=a.indexOf("e")&&(a=a.replace(goog.string.E_RE_,"e"))}return a};goog.string.AMP_RE_=/&/g;goog.string.LT_RE_=/</g;goog.string.GT_RE_=/>/g;goog.string.QUOT_RE_=/"/g;\ngoog.string.SINGLE_QUOTE_RE_=/\'/g;goog.string.NULL_RE_=/\\x00/g;goog.string.E_RE_=/e/g;goog.string.ALL_RE_=goog.string.DETECT_DOUBLE_ESCAPING?/[\\x00&<>"\'e]/:/[\\x00&<>"\']/;goog.string.unescapeEntities=function(a){return goog.string.contains(a,"&")?!goog.string.FORCE_NON_DOM_HTML_UNESCAPING&&"document"in goog.global?goog.string.unescapeEntitiesUsingDom_(a):goog.string.unescapePureXmlEntities_(a):a};\ngoog.string.unescapeEntitiesWithDocument=function(a,b){return goog.string.contains(a,"&")?goog.string.unescapeEntitiesUsingDom_(a,b):a};\ngoog.string.unescapeEntitiesUsingDom_=function(a,b){var c={"&":"&","<":"<",">":">",""":\'"\'},d;d=b?b.createElement("div"):goog.global.document.createElement("div");return a.replace(goog.string.HTML_ENTITY_PATTERN_,function(a,b){var e=c[a];if(e)return e;if("#"==b.charAt(0)){var f=Number("0"+b.substr(1));isNaN(f)||(e=String.fromCharCode(f))}e||(d.innerHTML=a+" ",e=d.firstChild.nodeValue.slice(0,-1));return c[a]=e})};\ngoog.string.unescapePureXmlEntities_=function(a){return a.replace(/&([^;]+);/g,function(a,c){switch(c){case "amp":return"&";case "lt":return"<";case "gt":return">";case "quot":return\'"\';default:if("#"==c.charAt(0)){var b=Number("0"+c.substr(1));if(!isNaN(b))return String.fromCharCode(b)}return a}})};goog.string.HTML_ENTITY_PATTERN_=/&([^;\\s<&]+);?/g;goog.string.whitespaceEscape=function(a,b){return goog.string.newLineToBr(a.replace(/ /g,"  "),b)};\ngoog.string.preserveSpaces=function(a){return a.replace(/(^|[\\n ]) /g,"$1"+goog.string.Unicode.NBSP)};goog.string.stripQuotes=function(a,b){for(var c=b.length,d=0;d<c;d++){var e=1==c?b:b.charAt(d);if(a.charAt(0)==e&&a.charAt(a.length-1)==e)return a.substring(1,a.length-1)}return a};goog.string.truncate=function(a,b,c){c&&(a=goog.string.unescapeEntities(a));a.length>b&&(a=a.substring(0,b-3)+"...");c&&(a=goog.string.htmlEscape(a));return a};\ngoog.string.truncateMiddle=function(a,b,c,d){c&&(a=goog.string.unescapeEntities(a));if(d&&a.length>b){d>b&&(d=b);var e=a.length-d;a=a.substring(0,b-d)+"..."+a.substring(e)}else a.length>b&&(d=Math.floor(b/2),e=a.length-d,a=a.substring(0,d+b%2)+"..."+a.substring(e));c&&(a=goog.string.htmlEscape(a));return a};goog.string.specialEscapeChars_={"\\x00":"\\\\0","\\b":"\\\\b","\\f":"\\\\f","\\n":"\\\\n","\\r":"\\\\r","\\t":"\\\\t","\\x0B":"\\\\x0B",\'"\':\'\\\\"\',"\\\\":"\\\\\\\\","<":"<"};goog.string.jsEscapeCache_={"\'":"\\\\\'"};\ngoog.string.quote=function(a){a=String(a);for(var b=[\'"\'],c=0;c<a.length;c++){var d=a.charAt(c),e=d.charCodeAt(0);b[c+1]=goog.string.specialEscapeChars_[d]||(31<e&&127>e?d:goog.string.escapeChar(d))}b.push(\'"\');return b.join("")};goog.string.escapeString=function(a){for(var b=[],c=0;c<a.length;c++)b[c]=goog.string.escapeChar(a.charAt(c));return b.join("")};\ngoog.string.escapeChar=function(a){if(a in goog.string.jsEscapeCache_)return goog.string.jsEscapeCache_[a];if(a in goog.string.specialEscapeChars_)return goog.string.jsEscapeCache_[a]=goog.string.specialEscapeChars_[a];var b,c=a.charCodeAt(0);if(31<c&&127>c)b=a;else{if(256>c){if(b="\\\\x",16>c||256<c)b+="0"}else b="\\\\u",4096>c&&(b+="0");b+=c.toString(16).toUpperCase()}return goog.string.jsEscapeCache_[a]=b};goog.string.contains=function(a,b){return-1!=a.indexOf(b)};\ngoog.string.caseInsensitiveContains=function(a,b){return goog.string.contains(a.toLowerCase(),b.toLowerCase())};goog.string.countOf=function(a,b){return a&&b?a.split(b).length-1:0};goog.string.removeAt=function(a,b,c){var d=a;0<=b&&b<a.length&&0<c&&(d=a.substr(0,b)+a.substr(b+c,a.length-b-c));return d};goog.string.remove=function(a,b){return a.replace(b,"")};goog.string.removeAll=function(a,b){var c=new RegExp(goog.string.regExpEscape(b),"g");return a.replace(c,"")};\ngoog.string.replaceAll=function(a,b,c){b=new RegExp(goog.string.regExpEscape(b),"g");return a.replace(b,c.replace(/\\$/g,"$$$$"))};goog.string.regExpEscape=function(a){return String(a).replace(/([-()\\[\\]{}+?*.$\\^|,:#<!\\\\])/g,"\\\\$1").replace(/\\x08/g,"\\\\x08")};goog.string.repeat=String.prototype.repeat?function(a,b){return a.repeat(b)}:function(a,b){return Array(b+1).join(a)};\ngoog.string.padNumber=function(a,b,c){a=goog.isDef(c)?a.toFixed(c):String(a);c=a.indexOf(".");-1==c&&(c=a.length);return goog.string.repeat("0",Math.max(0,b-c))+a};goog.string.makeSafe=function(a){return null==a?"":String(a)};goog.string.buildString=function(a){return Array.prototype.join.call(arguments,"")};goog.string.getRandomString=function(){return Math.floor(2147483648*Math.random()).toString(36)+Math.abs(Math.floor(2147483648*Math.random())^goog.now()).toString(36)};\ngoog.string.compareVersions=function(a,b){for(var c=0,d=goog.string.trim(String(a)).split("."),e=goog.string.trim(String(b)).split("."),f=Math.max(d.length,e.length),g=0;0==c&&g<f;g++){var h=d[g]||"",k=e[g]||"";do{h=/(\\d*)(\\D*)(.*)/.exec(h)||["","","",""];k=/(\\d*)(\\D*)(.*)/.exec(k)||["","","",""];if(0==h[0].length&&0==k[0].length)break;var c=0==h[1].length?0:parseInt(h[1],10),l=0==k[1].length?0:parseInt(k[1],10),c=goog.string.compareElements_(c,l)||goog.string.compareElements_(0==h[2].length,0==k[2].length)||\ngoog.string.compareElements_(h[2],k[2]),h=h[3],k=k[3]}while(0==c)}return c};goog.string.compareElements_=function(a,b){return a<b?-1:a>b?1:0};goog.string.hashCode=function(a){for(var b=0,c=0;c<a.length;++c)b=31*b+a.charCodeAt(c)>>>0;return b};goog.string.uniqueStringCounter_=2147483648*Math.random()|0;goog.string.createUniqueString=function(){return"goog_"+goog.string.uniqueStringCounter_++};goog.string.toNumber=function(a){var b=Number(a);return 0==b&&goog.string.isEmptyOrWhitespace(a)?NaN:b};\ngoog.string.isLowerCamelCase=function(a){return/^[a-z]+([A-Z][a-z]*)*$/.test(a)};goog.string.isUpperCamelCase=function(a){return/^([A-Z][a-z]*)+$/.test(a)};goog.string.toCamelCase=function(a){return String(a).replace(/\\-([a-z])/g,function(a,c){return c.toUpperCase()})};goog.string.toSelectorCase=function(a){return String(a).replace(/([A-Z])/g,"-$1").toLowerCase()};\ngoog.string.toTitleCase=function(a,b){var c=goog.isString(b)?goog.string.regExpEscape(b):"\\\\s";return a.replace(new RegExp("(^"+(c?"|["+c+"]+":"")+")([a-z])","g"),function(a,b,c){return b+c.toUpperCase()})};goog.string.capitalize=function(a){return String(a.charAt(0)).toUpperCase()+String(a.substr(1)).toLowerCase()};goog.string.parseInt=function(a){isFinite(a)&&(a=String(a));return goog.isString(a)?/^\\s*-?0x/i.test(a)?parseInt(a,16):parseInt(a,10):NaN};\ngoog.string.splitLimit=function(a,b,c){a=a.split(b);for(var d=[];0<c&&a.length;)d.push(a.shift()),c--;a.length&&d.push(a.join(b));return d};goog.string.lastComponent=function(a,b){if(b)"string"==typeof b&&(b=[b]);else return a;for(var c=-1,d=0;d<b.length;d++)if(""!=b[d]){var e=a.lastIndexOf(b[d]);e>c&&(c=e)}return-1==c?a:a.slice(c+1)};\ngoog.string.editDistance=function(a,b){var c=[],d=[];if(a==b)return 0;if(!a.length||!b.length)return Math.max(a.length,b.length);for(var e=0;e<b.length+1;e++)c[e]=e;for(e=0;e<a.length;e++){d[0]=e+1;for(var f=0;f<b.length;f++)d[f+1]=Math.min(d[f]+1,c[f+1]+1,c[f]+Number(a[e]!=b[f]));for(f=0;f<c.length;f++)c[f]=d[f]}return d[b.length]};goog.asserts={};goog.asserts.ENABLE_ASSERTS=goog.DEBUG;goog.asserts.AssertionError=function(a,b){b.unshift(a);goog.debug.Error.call(this,goog.string.subs.apply(null,b));b.shift();this.messagePattern=a};goog.inherits(goog.asserts.AssertionError,goog.debug.Error);goog.asserts.AssertionError.prototype.name="AssertionError";goog.asserts.DEFAULT_ERROR_HANDLER=function(a){throw a;};goog.asserts.errorHandler_=goog.asserts.DEFAULT_ERROR_HANDLER;\ngoog.asserts.doAssertFailure_=function(a,b,c,d){var e="Assertion failed";if(c)var e=e+(": "+c),f=d;else a&&(e+=": "+a,f=b);a=new goog.asserts.AssertionError(""+e,f||[]);goog.asserts.errorHandler_(a)};goog.asserts.setErrorHandler=function(a){goog.asserts.ENABLE_ASSERTS&&(goog.asserts.errorHandler_=a)};goog.asserts.assert=function(a,b,c){goog.asserts.ENABLE_ASSERTS&&!a&&goog.asserts.doAssertFailure_("",null,b,Array.prototype.slice.call(arguments,2));return a};\ngoog.asserts.fail=function(a,b){goog.asserts.ENABLE_ASSERTS&&goog.asserts.errorHandler_(new goog.asserts.AssertionError("Failure"+(a?": "+a:""),Array.prototype.slice.call(arguments,1)))};goog.asserts.assertNumber=function(a,b,c){goog.asserts.ENABLE_ASSERTS&&!goog.isNumber(a)&&goog.asserts.doAssertFailure_("Expected number but got %s: %s.",[goog.typeOf(a),a],b,Array.prototype.slice.call(arguments,2));return a};\ngoog.asserts.assertString=function(a,b,c){goog.asserts.ENABLE_ASSERTS&&!goog.isString(a)&&goog.asserts.doAssertFailure_("Expected string but got %s: %s.",[goog.typeOf(a),a],b,Array.prototype.slice.call(arguments,2));return a};goog.asserts.assertFunction=function(a,b,c){goog.asserts.ENABLE_ASSERTS&&!goog.isFunction(a)&&goog.asserts.doAssertFailure_("Expected function but got %s: %s.",[goog.typeOf(a),a],b,Array.prototype.slice.call(arguments,2));return a};\ngoog.asserts.assertObject=function(a,b,c){goog.asserts.ENABLE_ASSERTS&&!goog.isObject(a)&&goog.asserts.doAssertFailure_("Expected object but got %s: %s.",[goog.typeOf(a),a],b,Array.prototype.slice.call(arguments,2));return a};goog.asserts.assertArray=function(a,b,c){goog.asserts.ENABLE_ASSERTS&&!goog.isArray(a)&&goog.asserts.doAssertFailure_("Expected array but got %s: %s.",[goog.typeOf(a),a],b,Array.prototype.slice.call(arguments,2));return a};\ngoog.asserts.assertBoolean=function(a,b,c){goog.asserts.ENABLE_ASSERTS&&!goog.isBoolean(a)&&goog.asserts.doAssertFailure_("Expected boolean but got %s: %s.",[goog.typeOf(a),a],b,Array.prototype.slice.call(arguments,2));return a};goog.asserts.assertElement=function(a,b,c){!goog.asserts.ENABLE_ASSERTS||goog.isObject(a)&&a.nodeType==goog.dom.NodeType.ELEMENT||goog.asserts.doAssertFailure_("Expected Element but got %s: %s.",[goog.typeOf(a),a],b,Array.prototype.slice.call(arguments,2));return a};\ngoog.asserts.assertInstanceof=function(a,b,c,d){!goog.asserts.ENABLE_ASSERTS||a instanceof b||goog.asserts.doAssertFailure_("Expected instanceof %s but got %s.",[goog.asserts.getType_(b),goog.asserts.getType_(a)],c,Array.prototype.slice.call(arguments,3));return a};goog.asserts.assertObjectPrototypeIsIntact=function(){for(var a in Object.prototype)goog.asserts.fail(a+" should not be enumerable in Object.prototype.")};\ngoog.asserts.getType_=function(a){return a instanceof Function?a.displayName||a.name||"unknown type name":a instanceof Object?a.constructor.displayName||a.constructor.name||Object.prototype.toString.call(a):null===a?"null":typeof a};goog.debug.entryPointRegistry={};goog.debug.EntryPointMonitor=function(){};goog.debug.entryPointRegistry.refList_=[];goog.debug.entryPointRegistry.monitors_=[];goog.debug.entryPointRegistry.monitorsMayExist_=!1;goog.debug.entryPointRegistry.register=function(a){goog.debug.entryPointRegistry.refList_[goog.debug.entryPointRegistry.refList_.length]=a;if(goog.debug.entryPointRegistry.monitorsMayExist_)for(var b=goog.debug.entryPointRegistry.monitors_,c=0;c<b.length;c++)a(goog.bind(b[c].wrap,b[c]))};\ngoog.debug.entryPointRegistry.monitorAll=function(a){goog.debug.entryPointRegistry.monitorsMayExist_=!0;for(var b=goog.bind(a.wrap,a),c=0;c<goog.debug.entryPointRegistry.refList_.length;c++)goog.debug.entryPointRegistry.refList_[c](b);goog.debug.entryPointRegistry.monitors_.push(a)};\ngoog.debug.entryPointRegistry.unmonitorAllIfPossible=function(a){var b=goog.debug.entryPointRegistry.monitors_;goog.asserts.assert(a==b[b.length-1],"Only the most recent monitor can be unwrapped.");a=goog.bind(a.unwrap,a);for(var c=0;c<goog.debug.entryPointRegistry.refList_.length;c++)goog.debug.entryPointRegistry.refList_[c](a);b.length--};goog.array={};goog.NATIVE_ARRAY_PROTOTYPES=goog.TRUSTED_SITE;goog.array.ASSUME_NATIVE_FUNCTIONS=!1;goog.array.peek=function(a){return a[a.length-1]};goog.array.last=goog.array.peek;\ngoog.array.indexOf=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.indexOf)?function(a,b,c){goog.asserts.assert(null!=a.length);return Array.prototype.indexOf.call(a,b,c)}:function(a,b,c){c=null==c?0:0>c?Math.max(0,a.length+c):c;if(goog.isString(a))return goog.isString(b)&&1==b.length?a.indexOf(b,c):-1;for(;c<a.length;c++)if(c in a&&a[c]===b)return c;return-1};\ngoog.array.lastIndexOf=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.lastIndexOf)?function(a,b,c){goog.asserts.assert(null!=a.length);return Array.prototype.lastIndexOf.call(a,b,null==c?a.length-1:c)}:function(a,b,c){c=null==c?a.length-1:c;0>c&&(c=Math.max(0,a.length+c));if(goog.isString(a))return goog.isString(b)&&1==b.length?a.lastIndexOf(b,c):-1;for(;0<=c;c--)if(c in a&&a[c]===b)return c;return-1};\ngoog.array.forEach=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.forEach)?function(a,b,c){goog.asserts.assert(null!=a.length);Array.prototype.forEach.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=goog.isString(a)?a.split(""):a,f=0;f<d;f++)f in e&&b.call(c,e[f],f,a)};goog.array.forEachRight=function(a,b,c){for(var d=a.length,e=goog.isString(a)?a.split(""):a,d=d-1;0<=d;--d)d in e&&b.call(c,e[d],d,a)};\ngoog.array.filter=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.filter)?function(a,b,c){goog.asserts.assert(null!=a.length);return Array.prototype.filter.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=[],f=0,g=goog.isString(a)?a.split(""):a,h=0;h<d;h++)if(h in g){var k=g[h];b.call(c,k,h,a)&&(e[f++]=k)}return e};\ngoog.array.map=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.map)?function(a,b,c){goog.asserts.assert(null!=a.length);return Array.prototype.map.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=Array(d),f=goog.isString(a)?a.split(""):a,g=0;g<d;g++)g in f&&(e[g]=b.call(c,f[g],g,a));return e};\ngoog.array.reduce=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.reduce)?function(a,b,c,d){goog.asserts.assert(null!=a.length);d&&(b=goog.bind(b,d));return Array.prototype.reduce.call(a,b,c)}:function(a,b,c,d){var e=c;goog.array.forEach(a,function(c,g){e=b.call(d,e,c,g,a)});return e};\ngoog.array.reduceRight=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.reduceRight)?function(a,b,c,d){goog.asserts.assert(null!=a.length);goog.asserts.assert(null!=b);d&&(b=goog.bind(b,d));return Array.prototype.reduceRight.call(a,b,c)}:function(a,b,c,d){var e=c;goog.array.forEachRight(a,function(c,g){e=b.call(d,e,c,g,a)});return e};\ngoog.array.some=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.some)?function(a,b,c){goog.asserts.assert(null!=a.length);return Array.prototype.some.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=goog.isString(a)?a.split(""):a,f=0;f<d;f++)if(f in e&&b.call(c,e[f],f,a))return!0;return!1};\ngoog.array.every=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.every)?function(a,b,c){goog.asserts.assert(null!=a.length);return Array.prototype.every.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=goog.isString(a)?a.split(""):a,f=0;f<d;f++)if(f in e&&!b.call(c,e[f],f,a))return!1;return!0};goog.array.count=function(a,b,c){var d=0;goog.array.forEach(a,function(a,f,g){b.call(c,a,f,g)&&++d},c);return d};\ngoog.array.find=function(a,b,c){b=goog.array.findIndex(a,b,c);return 0>b?null:goog.isString(a)?a.charAt(b):a[b]};goog.array.findIndex=function(a,b,c){for(var d=a.length,e=goog.isString(a)?a.split(""):a,f=0;f<d;f++)if(f in e&&b.call(c,e[f],f,a))return f;return-1};goog.array.findRight=function(a,b,c){b=goog.array.findIndexRight(a,b,c);return 0>b?null:goog.isString(a)?a.charAt(b):a[b]};\ngoog.array.findIndexRight=function(a,b,c){for(var d=a.length,e=goog.isString(a)?a.split(""):a,d=d-1;0<=d;d--)if(d in e&&b.call(c,e[d],d,a))return d;return-1};goog.array.contains=function(a,b){return 0<=goog.array.indexOf(a,b)};goog.array.isEmpty=function(a){return 0==a.length};goog.array.clear=function(a){if(!goog.isArray(a))for(var b=a.length-1;0<=b;b--)delete a[b];a.length=0};goog.array.insert=function(a,b){goog.array.contains(a,b)||a.push(b)};\ngoog.array.insertAt=function(a,b,c){goog.array.splice(a,c,0,b)};goog.array.insertArrayAt=function(a,b,c){goog.partial(goog.array.splice,a,c,0).apply(null,b)};goog.array.insertBefore=function(a,b,c){var d;2==arguments.length||0>(d=goog.array.indexOf(a,c))?a.push(b):goog.array.insertAt(a,b,d)};goog.array.remove=function(a,b){var c=goog.array.indexOf(a,b),d;(d=0<=c)&&goog.array.removeAt(a,c);return d};\ngoog.array.removeLast=function(a,b){var c=goog.array.lastIndexOf(a,b);return 0<=c?(goog.array.removeAt(a,c),!0):!1};goog.array.removeAt=function(a,b){goog.asserts.assert(null!=a.length);return 1==Array.prototype.splice.call(a,b,1).length};goog.array.removeIf=function(a,b,c){b=goog.array.findIndex(a,b,c);return 0<=b?(goog.array.removeAt(a,b),!0):!1};goog.array.removeAllIf=function(a,b,c){var d=0;goog.array.forEachRight(a,function(e,f){b.call(c,e,f,a)&&goog.array.removeAt(a,f)&&d++});return d};\ngoog.array.concat=function(a){return Array.prototype.concat.apply(Array.prototype,arguments)};goog.array.join=function(a){return Array.prototype.concat.apply(Array.prototype,arguments)};goog.array.toArray=function(a){var b=a.length;if(0<b){for(var c=Array(b),d=0;d<b;d++)c[d]=a[d];return c}return[]};goog.array.clone=goog.array.toArray;\ngoog.array.extend=function(a,b){for(var c=1;c<arguments.length;c++){var d=arguments[c];if(goog.isArrayLike(d)){var e=a.length||0,f=d.length||0;a.length=e+f;for(var g=0;g<f;g++)a[e+g]=d[g]}else a.push(d)}};goog.array.splice=function(a,b,c,d){goog.asserts.assert(null!=a.length);return Array.prototype.splice.apply(a,goog.array.slice(arguments,1))};\ngoog.array.slice=function(a,b,c){goog.asserts.assert(null!=a.length);return 2>=arguments.length?Array.prototype.slice.call(a,b):Array.prototype.slice.call(a,b,c)};goog.array.removeDuplicates=function(a,b,c){b=b||a;var d=function(a){return goog.isObject(a)?"o"+goog.getUid(a):(typeof a).charAt(0)+a};c=c||d;for(var d={},e=0,f=0;f<a.length;){var g=a[f++],h=c(g);Object.prototype.hasOwnProperty.call(d,h)||(d[h]=!0,b[e++]=g)}b.length=e};\ngoog.array.binarySearch=function(a,b,c){return goog.array.binarySearch_(a,c||goog.array.defaultCompare,!1,b)};goog.array.binarySelect=function(a,b,c){return goog.array.binarySearch_(a,b,!0,void 0,c)};goog.array.binarySearch_=function(a,b,c,d,e){for(var f=0,g=a.length,h;f<g;){var k=f+g>>1,l;l=c?b.call(e,a[k],k,a):b(d,a[k]);0<l?f=k+1:(g=k,h=!l)}return h?f:~f};goog.array.sort=function(a,b){a.sort(b||goog.array.defaultCompare)};\ngoog.array.stableSort=function(a,b){for(var c=Array(a.length),d=0;d<a.length;d++)c[d]={index:d,value:a[d]};var e=b||goog.array.defaultCompare;goog.array.sort(c,function(a,b){return e(a.value,b.value)||a.index-b.index});for(d=0;d<a.length;d++)a[d]=c[d].value};goog.array.sortByKey=function(a,b,c){var d=c||goog.array.defaultCompare;goog.array.sort(a,function(a,c){return d(b(a),b(c))})};goog.array.sortObjectsByKey=function(a,b,c){goog.array.sortByKey(a,function(a){return a[b]},c)};\ngoog.array.isSorted=function(a,b,c){b=b||goog.array.defaultCompare;for(var d=1;d<a.length;d++){var e=b(a[d-1],a[d]);if(0<e||0==e&&c)return!1}return!0};goog.array.equals=function(a,b,c){if(!goog.isArrayLike(a)||!goog.isArrayLike(b)||a.length!=b.length)return!1;var d=a.length;c=c||goog.array.defaultCompareEquality;for(var e=0;e<d;e++)if(!c(a[e],b[e]))return!1;return!0};\ngoog.array.compare3=function(a,b,c){c=c||goog.array.defaultCompare;for(var d=Math.min(a.length,b.length),e=0;e<d;e++){var f=c(a[e],b[e]);if(0!=f)return f}return goog.array.defaultCompare(a.length,b.length)};goog.array.defaultCompare=function(a,b){return a>b?1:a<b?-1:0};goog.array.inverseDefaultCompare=function(a,b){return-goog.array.defaultCompare(a,b)};goog.array.defaultCompareEquality=function(a,b){return a===b};\ngoog.array.binaryInsert=function(a,b,c){c=goog.array.binarySearch(a,b,c);return 0>c?(goog.array.insertAt(a,b,-(c+1)),!0):!1};goog.array.binaryRemove=function(a,b,c){b=goog.array.binarySearch(a,b,c);return 0<=b?goog.array.removeAt(a,b):!1};goog.array.bucket=function(a,b,c){for(var d={},e=0;e<a.length;e++){var f=a[e],g=b.call(c,f,e,a);goog.isDef(g)&&(d[g]||(d[g]=[])).push(f)}return d};goog.array.toObject=function(a,b,c){var d={};goog.array.forEach(a,function(e,f){d[b.call(c,e,f,a)]=e});return d};\ngoog.array.range=function(a,b,c){var d=[],e=0,f=a;c=c||1;void 0!==b&&(e=a,f=b);if(0>c*(f-e))return[];if(0<c)for(a=e;a<f;a+=c)d.push(a);else for(a=e;a>f;a+=c)d.push(a);return d};goog.array.repeat=function(a,b){for(var c=[],d=0;d<b;d++)c[d]=a;return c};goog.array.flatten=function(a){for(var b=[],c=0;c<arguments.length;c++){var d=arguments[c];if(goog.isArray(d))for(var e=0;e<d.length;e+=8192)for(var f=goog.array.slice(d,e,e+8192),f=goog.array.flatten.apply(null,f),g=0;g<f.length;g++)b.push(f[g]);else b.push(d)}return b};\ngoog.array.rotate=function(a,b){goog.asserts.assert(null!=a.length);a.length&&(b%=a.length,0<b?Array.prototype.unshift.apply(a,a.splice(-b,b)):0>b&&Array.prototype.push.apply(a,a.splice(0,-b)));return a};goog.array.moveItem=function(a,b,c){goog.asserts.assert(0<=b&&b<a.length);goog.asserts.assert(0<=c&&c<a.length);b=Array.prototype.splice.call(a,b,1);Array.prototype.splice.call(a,c,0,b[0])};\ngoog.array.zip=function(a){if(!arguments.length)return[];for(var b=[],c=arguments[0].length,d=1;d<arguments.length;d++)arguments[d].length<c&&(c=arguments[d].length);for(d=0;d<c;d++){for(var e=[],f=0;f<arguments.length;f++)e.push(arguments[f][d]);b.push(e)}return b};goog.array.shuffle=function(a,b){for(var c=b||Math.random,d=a.length-1;0<d;d--){var e=Math.floor(c()*(d+1)),f=a[d];a[d]=a[e];a[e]=f}};goog.array.copyByIndex=function(a,b){var c=[];goog.array.forEach(b,function(b){c.push(a[b])});return c};\ngoog.array.concatMap=function(a,b,c){return goog.array.concat.apply([],goog.array.map(a,b,c))};goog.labs={};goog.labs.userAgent={};goog.labs.userAgent.util={};goog.labs.userAgent.util.getNativeUserAgentString_=function(){var a=goog.labs.userAgent.util.getNavigator_();return a&&(a=a.userAgent)?a:""};goog.labs.userAgent.util.getNavigator_=function(){return goog.global.navigator};goog.labs.userAgent.util.userAgent_=goog.labs.userAgent.util.getNativeUserAgentString_();goog.labs.userAgent.util.setUserAgent=function(a){goog.labs.userAgent.util.userAgent_=a||goog.labs.userAgent.util.getNativeUserAgentString_()};\ngoog.labs.userAgent.util.getUserAgent=function(){return goog.labs.userAgent.util.userAgent_};goog.labs.userAgent.util.matchUserAgent=function(a){var b=goog.labs.userAgent.util.getUserAgent();return goog.string.contains(b,a)};goog.labs.userAgent.util.matchUserAgentIgnoreCase=function(a){var b=goog.labs.userAgent.util.getUserAgent();return goog.string.caseInsensitiveContains(b,a)};\ngoog.labs.userAgent.util.extractVersionTuples=function(a){for(var b=RegExp("(\\\\w[\\\\w ]+)/([^\\\\s]+)\\\\s*(?:\\\\((.*?)\\\\))?","g"),c=[],d;d=b.exec(a);)c.push([d[1],d[2],d[3]||void 0]);return c};goog.object={};goog.object.is=function(a,b){return a===b?0!==a||1/a===1/b:a!==a&&b!==b};goog.object.forEach=function(a,b,c){for(var d in a)b.call(c,a[d],d,a)};goog.object.filter=function(a,b,c){var d={},e;for(e in a)b.call(c,a[e],e,a)&&(d[e]=a[e]);return d};goog.object.map=function(a,b,c){var d={},e;for(e in a)d[e]=b.call(c,a[e],e,a);return d};goog.object.some=function(a,b,c){for(var d in a)if(b.call(c,a[d],d,a))return!0;return!1};\ngoog.object.every=function(a,b,c){for(var d in a)if(!b.call(c,a[d],d,a))return!1;return!0};goog.object.getCount=function(a){var b=0,c;for(c in a)b++;return b};goog.object.getAnyKey=function(a){for(var b in a)return b};goog.object.getAnyValue=function(a){for(var b in a)return a[b]};goog.object.contains=function(a,b){return goog.object.containsValue(a,b)};goog.object.getValues=function(a){var b=[],c=0,d;for(d in a)b[c++]=a[d];return b};\ngoog.object.getKeys=function(a){var b=[],c=0,d;for(d in a)b[c++]=d;return b};goog.object.getValueByKeys=function(a,b){for(var c=goog.isArrayLike(b),d=c?b:arguments,c=c?0:1;c<d.length&&(a=a[d[c]],goog.isDef(a));c++);return a};goog.object.containsKey=function(a,b){return null!==a&&b in a};goog.object.containsValue=function(a,b){for(var c in a)if(a[c]==b)return!0;return!1};goog.object.findKey=function(a,b,c){for(var d in a)if(b.call(c,a[d],d,a))return d};\ngoog.object.findValue=function(a,b,c){return(b=goog.object.findKey(a,b,c))&&a[b]};goog.object.isEmpty=function(a){for(var b in a)return!1;return!0};goog.object.clear=function(a){for(var b in a)delete a[b]};goog.object.remove=function(a,b){var c;(c=b in a)&&delete a[b];return c};goog.object.add=function(a,b,c){if(null!==a&&b in a)throw Error(\'The object already contains the key "\'+b+\'"\');goog.object.set(a,b,c)};goog.object.get=function(a,b,c){return null!==a&&b in a?a[b]:c};\ngoog.object.set=function(a,b,c){a[b]=c};goog.object.setIfUndefined=function(a,b,c){return b in a?a[b]:a[b]=c};goog.object.setWithReturnValueIfNotSet=function(a,b,c){if(b in a)return a[b];c=c();return a[b]=c};goog.object.equals=function(a,b){for(var c in a)if(!(c in b)||a[c]!==b[c])return!1;for(c in b)if(!(c in a))return!1;return!0};goog.object.clone=function(a){var b={},c;for(c in a)b[c]=a[c];return b};\ngoog.object.unsafeClone=function(a){var b=goog.typeOf(a);if("object"==b||"array"==b){if(goog.isFunction(a.clone))return a.clone();var b="array"==b?[]:{},c;for(c in a)b[c]=goog.object.unsafeClone(a[c]);return b}return a};goog.object.transpose=function(a){var b={},c;for(c in a)b[a[c]]=c;return b};goog.object.PROTOTYPE_FIELDS_="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");\ngoog.object.extend=function(a,b){for(var c,d,e=1;e<arguments.length;e++){d=arguments[e];for(c in d)a[c]=d[c];for(var f=0;f<goog.object.PROTOTYPE_FIELDS_.length;f++)c=goog.object.PROTOTYPE_FIELDS_[f],Object.prototype.hasOwnProperty.call(d,c)&&(a[c]=d[c])}};\ngoog.object.create=function(a){var b=arguments.length;if(1==b&&goog.isArray(arguments[0]))return goog.object.create.apply(null,arguments[0]);if(b%2)throw Error("Uneven number of arguments");for(var c={},d=0;d<b;d+=2)c[arguments[d]]=arguments[d+1];return c};goog.object.createSet=function(a){var b=arguments.length;if(1==b&&goog.isArray(arguments[0]))return goog.object.createSet.apply(null,arguments[0]);for(var c={},d=0;d<b;d++)c[arguments[d]]=!0;return c};\ngoog.object.createImmutableView=function(a){var b=a;Object.isFrozen&&!Object.isFrozen(a)&&(b=Object.create(a),Object.freeze(b));return b};goog.object.isImmutableView=function(a){return!!Object.isFrozen&&Object.isFrozen(a)};goog.labs.userAgent.browser={};goog.labs.userAgent.browser.matchOpera_=function(){return goog.labs.userAgent.util.matchUserAgent("Opera")};goog.labs.userAgent.browser.matchIE_=function(){return goog.labs.userAgent.util.matchUserAgent("Trident")||goog.labs.userAgent.util.matchUserAgent("MSIE")};goog.labs.userAgent.browser.matchEdge_=function(){return goog.labs.userAgent.util.matchUserAgent("Edge")};goog.labs.userAgent.browser.matchFirefox_=function(){return goog.labs.userAgent.util.matchUserAgent("Firefox")};\ngoog.labs.userAgent.browser.matchSafari_=function(){return goog.labs.userAgent.util.matchUserAgent("Safari")&&!(goog.labs.userAgent.browser.matchChrome_()||goog.labs.userAgent.browser.matchCoast_()||goog.labs.userAgent.browser.matchOpera_()||goog.labs.userAgent.browser.matchEdge_()||goog.labs.userAgent.browser.isSilk()||goog.labs.userAgent.util.matchUserAgent("Android"))};goog.labs.userAgent.browser.matchCoast_=function(){return goog.labs.userAgent.util.matchUserAgent("Coast")};\ngoog.labs.userAgent.browser.matchIosWebview_=function(){return(goog.labs.userAgent.util.matchUserAgent("iPad")||goog.labs.userAgent.util.matchUserAgent("iPhone"))&&!goog.labs.userAgent.browser.matchSafari_()&&!goog.labs.userAgent.browser.matchChrome_()&&!goog.labs.userAgent.browser.matchCoast_()&&goog.labs.userAgent.util.matchUserAgent("AppleWebKit")};\ngoog.labs.userAgent.browser.matchChrome_=function(){return(goog.labs.userAgent.util.matchUserAgent("Chrome")||goog.labs.userAgent.util.matchUserAgent("CriOS"))&&!goog.labs.userAgent.browser.matchEdge_()};goog.labs.userAgent.browser.matchAndroidBrowser_=function(){return goog.labs.userAgent.util.matchUserAgent("Android")&&!(goog.labs.userAgent.browser.isChrome()||goog.labs.userAgent.browser.isFirefox()||goog.labs.userAgent.browser.isOpera()||goog.labs.userAgent.browser.isSilk())};\ngoog.labs.userAgent.browser.isOpera=goog.labs.userAgent.browser.matchOpera_;goog.labs.userAgent.browser.isIE=goog.labs.userAgent.browser.matchIE_;goog.labs.userAgent.browser.isEdge=goog.labs.userAgent.browser.matchEdge_;goog.labs.userAgent.browser.isFirefox=goog.labs.userAgent.browser.matchFirefox_;goog.labs.userAgent.browser.isSafari=goog.labs.userAgent.browser.matchSafari_;goog.labs.userAgent.browser.isCoast=goog.labs.userAgent.browser.matchCoast_;goog.labs.userAgent.browser.isIosWebview=goog.labs.userAgent.browser.matchIosWebview_;\ngoog.labs.userAgent.browser.isChrome=goog.labs.userAgent.browser.matchChrome_;goog.labs.userAgent.browser.isAndroidBrowser=goog.labs.userAgent.browser.matchAndroidBrowser_;goog.labs.userAgent.browser.isSilk=function(){return goog.labs.userAgent.util.matchUserAgent("Silk")};\ngoog.labs.userAgent.browser.getVersion=function(){function a(a){a=goog.array.find(a,d);return c[a]||""}var b=goog.labs.userAgent.util.getUserAgent();if(goog.labs.userAgent.browser.isIE())return goog.labs.userAgent.browser.getIEVersion_(b);var b=goog.labs.userAgent.util.extractVersionTuples(b),c={};goog.array.forEach(b,function(a){c[a[0]]=a[1]});var d=goog.partial(goog.object.containsKey,c);return goog.labs.userAgent.browser.isOpera()?a(["Version","Opera"]):goog.labs.userAgent.browser.isEdge()?a(["Edge"]):\ngoog.labs.userAgent.browser.isChrome()?a(["Chrome","CriOS"]):(b=b[2])&&b[1]||""};goog.labs.userAgent.browser.isVersionOrHigher=function(a){return 0<=goog.string.compareVersions(goog.labs.userAgent.browser.getVersion(),a)};\ngoog.labs.userAgent.browser.getIEVersion_=function(a){var b=/rv: *([\\d\\.]*)/.exec(a);if(b&&b[1])return b[1];var b="",c=/MSIE +([\\d\\.]+)/.exec(a);if(c&&c[1])if(a=/Trident\\/(\\d.\\d)/.exec(a),"7.0"==c[1])if(a&&a[1])switch(a[1]){case "4.0":b="8.0";break;case "5.0":b="9.0";break;case "6.0":b="10.0";break;case "7.0":b="11.0"}else b="7.0";else b=c[1];return b};goog.labs.userAgent.engine={};goog.labs.userAgent.engine.isPresto=function(){return goog.labs.userAgent.util.matchUserAgent("Presto")};goog.labs.userAgent.engine.isTrident=function(){return goog.labs.userAgent.util.matchUserAgent("Trident")||goog.labs.userAgent.util.matchUserAgent("MSIE")};goog.labs.userAgent.engine.isEdge=function(){return goog.labs.userAgent.util.matchUserAgent("Edge")};\ngoog.labs.userAgent.engine.isWebKit=function(){return goog.labs.userAgent.util.matchUserAgentIgnoreCase("WebKit")&&!goog.labs.userAgent.engine.isEdge()};goog.labs.userAgent.engine.isGecko=function(){return goog.labs.userAgent.util.matchUserAgent("Gecko")&&!goog.labs.userAgent.engine.isWebKit()&&!goog.labs.userAgent.engine.isTrident()&&!goog.labs.userAgent.engine.isEdge()};\ngoog.labs.userAgent.engine.getVersion=function(){var a=goog.labs.userAgent.util.getUserAgent();if(a){var a=goog.labs.userAgent.util.extractVersionTuples(a),b=goog.labs.userAgent.engine.getEngineTuple_(a);if(b)return"Gecko"==b[0]?goog.labs.userAgent.engine.getVersionForKey_(a,"Firefox"):b[1];var a=a[0],c;if(a&&(c=a[2])&&(c=/Trident\\/([^\\s;]+)/.exec(c)))return c[1]}return""};\ngoog.labs.userAgent.engine.getEngineTuple_=function(a){if(!goog.labs.userAgent.engine.isEdge())return a[1];for(var b=0;b<a.length;b++){var c=a[b];if("Edge"==c[0])return c}};goog.labs.userAgent.engine.isVersionOrHigher=function(a){return 0<=goog.string.compareVersions(goog.labs.userAgent.engine.getVersion(),a)};goog.labs.userAgent.engine.getVersionForKey_=function(a,b){var c=goog.array.find(a,function(a){return b==a[0]});return c&&c[1]||""};goog.labs.userAgent.platform={};goog.labs.userAgent.platform.isAndroid=function(){return goog.labs.userAgent.util.matchUserAgent("Android")};goog.labs.userAgent.platform.isIpod=function(){return goog.labs.userAgent.util.matchUserAgent("iPod")};goog.labs.userAgent.platform.isIphone=function(){return goog.labs.userAgent.util.matchUserAgent("iPhone")&&!goog.labs.userAgent.util.matchUserAgent("iPod")&&!goog.labs.userAgent.util.matchUserAgent("iPad")};goog.labs.userAgent.platform.isIpad=function(){return goog.labs.userAgent.util.matchUserAgent("iPad")};\ngoog.labs.userAgent.platform.isIos=function(){return goog.labs.userAgent.platform.isIphone()||goog.labs.userAgent.platform.isIpad()||goog.labs.userAgent.platform.isIpod()};goog.labs.userAgent.platform.isMacintosh=function(){return goog.labs.userAgent.util.matchUserAgent("Macintosh")};goog.labs.userAgent.platform.isLinux=function(){return goog.labs.userAgent.util.matchUserAgent("Linux")};goog.labs.userAgent.platform.isWindows=function(){return goog.labs.userAgent.util.matchUserAgent("Windows")};\ngoog.labs.userAgent.platform.isChromeOS=function(){return goog.labs.userAgent.util.matchUserAgent("CrOS")};\ngoog.labs.userAgent.platform.getVersion=function(){var a=goog.labs.userAgent.util.getUserAgent(),b="";goog.labs.userAgent.platform.isWindows()?(b=/Windows (?:NT|Phone) ([0-9.]+)/,b=(a=b.exec(a))?a[1]:"0.0"):goog.labs.userAgent.platform.isIos()?(b=/(?:iPhone|iPod|iPad|CPU)\\s+OS\\s+(\\S+)/,b=(a=b.exec(a))&&a[1].replace(/_/g,".")):goog.labs.userAgent.platform.isMacintosh()?(b=/Mac OS X ([0-9_.]+)/,b=(a=b.exec(a))?a[1].replace(/_/g,"."):"10"):goog.labs.userAgent.platform.isAndroid()?(b=/Android\\s+([^\\);]+)(\\)|;)/,\nb=(a=b.exec(a))&&a[1]):goog.labs.userAgent.platform.isChromeOS()&&(b=/(?:CrOS\\s+(?:i686|x86_64)\\s+([0-9.]+))/,b=(a=b.exec(a))&&a[1]);return b||""};goog.labs.userAgent.platform.isVersionOrHigher=function(a){return 0<=goog.string.compareVersions(goog.labs.userAgent.platform.getVersion(),a)};goog.reflect={};goog.reflect.object=function(a,b){return b};goog.reflect.objectProperty=function(a,b){return a};goog.reflect.sinkValue=function(a){goog.reflect.sinkValue[" "](a);return a};goog.reflect.sinkValue[" "]=goog.nullFunction;goog.reflect.canAccessProperty=function(a,b){try{return goog.reflect.sinkValue(a[b]),!0}catch(c){}return!1};goog.reflect.cache=function(a,b,c,d){d=d?d(b):b;return Object.prototype.hasOwnProperty.call(a,d)?a[d]:a[d]=c(b)};goog.userAgent={};goog.userAgent.ASSUME_IE=!1;goog.userAgent.ASSUME_EDGE=!1;goog.userAgent.ASSUME_GECKO=!1;goog.userAgent.ASSUME_WEBKIT=!1;goog.userAgent.ASSUME_MOBILE_WEBKIT=!1;goog.userAgent.ASSUME_OPERA=!1;goog.userAgent.ASSUME_ANY_VERSION=!1;goog.userAgent.BROWSER_KNOWN_=goog.userAgent.ASSUME_IE||goog.userAgent.ASSUME_EDGE||goog.userAgent.ASSUME_GECKO||goog.userAgent.ASSUME_MOBILE_WEBKIT||goog.userAgent.ASSUME_WEBKIT||goog.userAgent.ASSUME_OPERA;goog.userAgent.getUserAgentString=function(){return goog.labs.userAgent.util.getUserAgent()};\ngoog.userAgent.getNavigator=function(){return goog.global.navigator||null};goog.userAgent.OPERA=goog.userAgent.BROWSER_KNOWN_?goog.userAgent.ASSUME_OPERA:goog.labs.userAgent.browser.isOpera();goog.userAgent.IE=goog.userAgent.BROWSER_KNOWN_?goog.userAgent.ASSUME_IE:goog.labs.userAgent.browser.isIE();goog.userAgent.EDGE=goog.userAgent.BROWSER_KNOWN_?goog.userAgent.ASSUME_EDGE:goog.labs.userAgent.engine.isEdge();goog.userAgent.EDGE_OR_IE=goog.userAgent.EDGE||goog.userAgent.IE;\ngoog.userAgent.GECKO=goog.userAgent.BROWSER_KNOWN_?goog.userAgent.ASSUME_GECKO:goog.labs.userAgent.engine.isGecko();goog.userAgent.WEBKIT=goog.userAgent.BROWSER_KNOWN_?goog.userAgent.ASSUME_WEBKIT||goog.userAgent.ASSUME_MOBILE_WEBKIT:goog.labs.userAgent.engine.isWebKit();goog.userAgent.isMobile_=function(){return goog.userAgent.WEBKIT&&goog.labs.userAgent.util.matchUserAgent("Mobile")};goog.userAgent.MOBILE=goog.userAgent.ASSUME_MOBILE_WEBKIT||goog.userAgent.isMobile_();goog.userAgent.SAFARI=goog.userAgent.WEBKIT;\ngoog.userAgent.determinePlatform_=function(){var a=goog.userAgent.getNavigator();return a&&a.platform||""};goog.userAgent.PLATFORM=goog.userAgent.determinePlatform_();goog.userAgent.ASSUME_MAC=!1;goog.userAgent.ASSUME_WINDOWS=!1;goog.userAgent.ASSUME_LINUX=!1;goog.userAgent.ASSUME_X11=!1;goog.userAgent.ASSUME_ANDROID=!1;goog.userAgent.ASSUME_IPHONE=!1;goog.userAgent.ASSUME_IPAD=!1;goog.userAgent.ASSUME_IPOD=!1;\ngoog.userAgent.PLATFORM_KNOWN_=goog.userAgent.ASSUME_MAC||goog.userAgent.ASSUME_WINDOWS||goog.userAgent.ASSUME_LINUX||goog.userAgent.ASSUME_X11||goog.userAgent.ASSUME_ANDROID||goog.userAgent.ASSUME_IPHONE||goog.userAgent.ASSUME_IPAD||goog.userAgent.ASSUME_IPOD;goog.userAgent.MAC=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_MAC:goog.labs.userAgent.platform.isMacintosh();goog.userAgent.WINDOWS=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_WINDOWS:goog.labs.userAgent.platform.isWindows();\ngoog.userAgent.isLegacyLinux_=function(){return goog.labs.userAgent.platform.isLinux()||goog.labs.userAgent.platform.isChromeOS()};goog.userAgent.LINUX=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_LINUX:goog.userAgent.isLegacyLinux_();goog.userAgent.isX11_=function(){var a=goog.userAgent.getNavigator();return!!a&&goog.string.contains(a.appVersion||"","X11")};goog.userAgent.X11=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_X11:goog.userAgent.isX11_();\ngoog.userAgent.ANDROID=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_ANDROID:goog.labs.userAgent.platform.isAndroid();goog.userAgent.IPHONE=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_IPHONE:goog.labs.userAgent.platform.isIphone();goog.userAgent.IPAD=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_IPAD:goog.labs.userAgent.platform.isIpad();goog.userAgent.IPOD=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_IPOD:goog.labs.userAgent.platform.isIpod();\ngoog.userAgent.IOS=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_IPHONE||goog.userAgent.ASSUME_IPAD||goog.userAgent.ASSUME_IPOD:goog.labs.userAgent.platform.isIos();goog.userAgent.determineVersion_=function(){var a="",b=goog.userAgent.getVersionRegexResult_();b&&(a=b?b[1]:"");return goog.userAgent.IE&&(b=goog.userAgent.getDocumentMode_(),null!=b&&b>parseFloat(a))?String(b):a};\ngoog.userAgent.getVersionRegexResult_=function(){var a=goog.userAgent.getUserAgentString();if(goog.userAgent.GECKO)return/rv\\:([^\\);]+)(\\)|;)/.exec(a);if(goog.userAgent.EDGE)return/Edge\\/([\\d\\.]+)/.exec(a);if(goog.userAgent.IE)return/\\b(?:MSIE|rv)[: ]([^\\);]+)(\\)|;)/.exec(a);if(goog.userAgent.WEBKIT)return/WebKit\\/(\\S+)/.exec(a);if(goog.userAgent.OPERA)return/(?:Version)[ \\/]?(\\S+)/.exec(a)};goog.userAgent.getDocumentMode_=function(){var a=goog.global.document;return a?a.documentMode:void 0};\ngoog.userAgent.VERSION=goog.userAgent.determineVersion_();goog.userAgent.compare=function(a,b){return goog.string.compareVersions(a,b)};goog.userAgent.isVersionOrHigherCache_={};goog.userAgent.isVersionOrHigher=function(a){return goog.userAgent.ASSUME_ANY_VERSION||goog.reflect.cache(goog.userAgent.isVersionOrHigherCache_,a,function(){return 0<=goog.string.compareVersions(goog.userAgent.VERSION,a)})};goog.userAgent.isVersion=goog.userAgent.isVersionOrHigher;\ngoog.userAgent.isDocumentModeOrHigher=function(a){return Number(goog.userAgent.DOCUMENT_MODE)>=a};goog.userAgent.isDocumentMode=goog.userAgent.isDocumentModeOrHigher;goog.userAgent.DOCUMENT_MODE=function(){var a=goog.global.document,b=goog.userAgent.getDocumentMode_();if(a&&goog.userAgent.IE)return b||("CSS1Compat"==a.compatMode?parseInt(goog.userAgent.VERSION,10):5)}();goog.events={};\ngoog.events.BrowserFeature={HAS_W3C_BUTTON:!goog.userAgent.IE||goog.userAgent.isDocumentModeOrHigher(9),HAS_W3C_EVENT_SUPPORT:!goog.userAgent.IE||goog.userAgent.isDocumentModeOrHigher(9),SET_KEY_CODE_TO_PREVENT_DEFAULT:goog.userAgent.IE&&!goog.userAgent.isVersionOrHigher("9"),HAS_NAVIGATOR_ONLINE_PROPERTY:!goog.userAgent.WEBKIT||goog.userAgent.isVersionOrHigher("528"),HAS_HTML5_NETWORK_EVENT_SUPPORT:goog.userAgent.GECKO&&goog.userAgent.isVersionOrHigher("1.9b")||goog.userAgent.IE&&goog.userAgent.isVersionOrHigher("8")||\ngoog.userAgent.OPERA&&goog.userAgent.isVersionOrHigher("9.5")||goog.userAgent.WEBKIT&&goog.userAgent.isVersionOrHigher("528"),HTML5_NETWORK_EVENTS_FIRE_ON_BODY:goog.userAgent.GECKO&&!goog.userAgent.isVersionOrHigher("8")||goog.userAgent.IE&&!goog.userAgent.isVersionOrHigher("9"),TOUCH_ENABLED:"ontouchstart"in goog.global||!!(goog.global.document&&document.documentElement&&"ontouchstart"in document.documentElement)||!(!goog.global.navigator||!goog.global.navigator.msMaxTouchPoints)};goog.disposable={};goog.disposable.IDisposable=function(){};goog.disposable.IDisposable.prototype.dispose=goog.abstractMethod;goog.disposable.IDisposable.prototype.isDisposed=goog.abstractMethod;goog.Disposable=function(){goog.Disposable.MONITORING_MODE!=goog.Disposable.MonitoringMode.OFF&&(goog.Disposable.INCLUDE_STACK_ON_CREATION&&(this.creationStack=Error().stack),goog.Disposable.instances_[goog.getUid(this)]=this);this.disposed_=this.disposed_;this.onDisposeCallbacks_=this.onDisposeCallbacks_};goog.Disposable.MonitoringMode={OFF:0,PERMANENT:1,INTERACTIVE:2};goog.Disposable.MONITORING_MODE=0;goog.Disposable.INCLUDE_STACK_ON_CREATION=!0;goog.Disposable.instances_={};\ngoog.Disposable.getUndisposedObjects=function(){var a=[],b;for(b in goog.Disposable.instances_)goog.Disposable.instances_.hasOwnProperty(b)&&a.push(goog.Disposable.instances_[Number(b)]);return a};goog.Disposable.clearUndisposedObjects=function(){goog.Disposable.instances_={}};goog.Disposable.prototype.disposed_=!1;goog.Disposable.prototype.isDisposed=function(){return this.disposed_};goog.Disposable.prototype.getDisposed=goog.Disposable.prototype.isDisposed;\ngoog.Disposable.prototype.dispose=function(){if(!this.disposed_&&(this.disposed_=!0,this.disposeInternal(),goog.Disposable.MONITORING_MODE!=goog.Disposable.MonitoringMode.OFF)){var a=goog.getUid(this);if(goog.Disposable.MONITORING_MODE==goog.Disposable.MonitoringMode.PERMANENT&&!goog.Disposable.instances_.hasOwnProperty(a))throw Error(this+" did not call the goog.Disposable base constructor or was disposed of after a clearUndisposedObjects call");delete goog.Disposable.instances_[a]}};\ngoog.Disposable.prototype.registerDisposable=function(a){this.addOnDisposeCallback(goog.partial(goog.dispose,a))};goog.Disposable.prototype.addOnDisposeCallback=function(a,b){this.disposed_?goog.isDef(b)?a.call(b):a():(this.onDisposeCallbacks_||(this.onDisposeCallbacks_=[]),this.onDisposeCallbacks_.push(goog.isDef(b)?goog.bind(a,b):a))};goog.Disposable.prototype.disposeInternal=function(){if(this.onDisposeCallbacks_)for(;this.onDisposeCallbacks_.length;)this.onDisposeCallbacks_.shift()()};\ngoog.Disposable.isDisposed=function(a){return a&&"function"==typeof a.isDisposed?a.isDisposed():!1};goog.dispose=function(a){a&&"function"==typeof a.dispose&&a.dispose()};goog.disposeAll=function(a){for(var b=0,c=arguments.length;b<c;++b){var d=arguments[b];goog.isArrayLike(d)?goog.disposeAll.apply(null,d):goog.dispose(d)}};goog.events.EventId=function(a){this.id=a};goog.events.EventId.prototype.toString=function(){return this.id};goog.events.Event=function(a,b){this.type=a instanceof goog.events.EventId?String(a):a;this.currentTarget=this.target=b;this.defaultPrevented=this.propagationStopped_=!1;this.returnValue_=!0};goog.events.Event.prototype.stopPropagation=function(){this.propagationStopped_=!0};goog.events.Event.prototype.preventDefault=function(){this.defaultPrevented=!0;this.returnValue_=!1};goog.events.Event.stopPropagation=function(a){a.stopPropagation()};goog.events.Event.preventDefault=function(a){a.preventDefault()};goog.events.getVendorPrefixedName_=function(a){return goog.userAgent.WEBKIT?"webkit"+a:goog.userAgent.OPERA?"o"+a.toLowerCase():a.toLowerCase()};\ngoog.events.EventType={CLICK:"click",RIGHTCLICK:"rightclick",DBLCLICK:"dblclick",MOUSEDOWN:"mousedown",MOUSEUP:"mouseup",MOUSEOVER:"mouseover",MOUSEOUT:"mouseout",MOUSEMOVE:"mousemove",MOUSEENTER:"mouseenter",MOUSELEAVE:"mouseleave",SELECTIONCHANGE:"selectionchange",SELECTSTART:"selectstart",WHEEL:"wheel",KEYPRESS:"keypress",KEYDOWN:"keydown",KEYUP:"keyup",BLUR:"blur",FOCUS:"focus",DEACTIVATE:"deactivate",FOCUSIN:goog.userAgent.IE?"focusin":"DOMFocusIn",FOCUSOUT:goog.userAgent.IE?"focusout":"DOMFocusOut",\nCHANGE:"change",RESET:"reset",SELECT:"select",SUBMIT:"submit",INPUT:"input",PROPERTYCHANGE:"propertychange",DRAGSTART:"dragstart",DRAG:"drag",DRAGENTER:"dragenter",DRAGOVER:"dragover",DRAGLEAVE:"dragleave",DROP:"drop",DRAGEND:"dragend",TOUCHSTART:"touchstart",TOUCHMOVE:"touchmove",TOUCHEND:"touchend",TOUCHCANCEL:"touchcancel",BEFOREUNLOAD:"beforeunload",CONSOLEMESSAGE:"consolemessage",CONTEXTMENU:"contextmenu",DEVICEORIENTATION:"deviceorientation",DOMCONTENTLOADED:"DOMContentLoaded",ERROR:"error",\nHELP:"help",LOAD:"load",LOSECAPTURE:"losecapture",ORIENTATIONCHANGE:"orientationchange",READYSTATECHANGE:"readystatechange",RESIZE:"resize",SCROLL:"scroll",UNLOAD:"unload",CANPLAY:"canplay",CANPLAYTHROUGH:"canplaythrough",DURATIONCHANGE:"durationchange",EMPTIED:"emptied",ENDED:"ended",LOADEDDATA:"loadeddata",LOADEDMETADATA:"loadedmetadata",PAUSE:"pause",PLAY:"play",PLAYING:"playing",RATECHANGE:"ratechange",SEEKED:"seeked",SEEKING:"seeking",STALLED:"stalled",SUSPEND:"suspend",TIMEUPDATE:"timeupdate",\nVOLUMECHANGE:"volumechange",WAITING:"waiting",HASHCHANGE:"hashchange",PAGEHIDE:"pagehide",PAGESHOW:"pageshow",POPSTATE:"popstate",COPY:"copy",PASTE:"paste",CUT:"cut",BEFORECOPY:"beforecopy",BEFORECUT:"beforecut",BEFOREPASTE:"beforepaste",ONLINE:"online",OFFLINE:"offline",MESSAGE:"message",CONNECT:"connect",ANIMATIONSTART:goog.events.getVendorPrefixedName_("AnimationStart"),ANIMATIONEND:goog.events.getVendorPrefixedName_("AnimationEnd"),ANIMATIONITERATION:goog.events.getVendorPrefixedName_("AnimationIteration"),\nTRANSITIONEND:goog.events.getVendorPrefixedName_("TransitionEnd"),POINTERDOWN:"pointerdown",POINTERUP:"pointerup",POINTERCANCEL:"pointercancel",POINTERMOVE:"pointermove",POINTEROVER:"pointerover",POINTEROUT:"pointerout",POINTERENTER:"pointerenter",POINTERLEAVE:"pointerleave",GOTPOINTERCAPTURE:"gotpointercapture",LOSTPOINTERCAPTURE:"lostpointercapture",MSGESTURECHANGE:"MSGestureChange",MSGESTUREEND:"MSGestureEnd",MSGESTUREHOLD:"MSGestureHold",MSGESTURESTART:"MSGestureStart",MSGESTURETAP:"MSGestureTap",\nMSGOTPOINTERCAPTURE:"MSGotPointerCapture",MSINERTIASTART:"MSInertiaStart",MSLOSTPOINTERCAPTURE:"MSLostPointerCapture",MSPOINTERCANCEL:"MSPointerCancel",MSPOINTERDOWN:"MSPointerDown",MSPOINTERENTER:"MSPointerEnter",MSPOINTERHOVER:"MSPointerHover",MSPOINTERLEAVE:"MSPointerLeave",MSPOINTERMOVE:"MSPointerMove",MSPOINTEROUT:"MSPointerOut",MSPOINTEROVER:"MSPointerOver",MSPOINTERUP:"MSPointerUp",TEXT:"text",TEXTINPUT:"textInput",COMPOSITIONSTART:"compositionstart",COMPOSITIONUPDATE:"compositionupdate",COMPOSITIONEND:"compositionend",\nEXIT:"exit",LOADABORT:"loadabort",LOADCOMMIT:"loadcommit",LOADREDIRECT:"loadredirect",LOADSTART:"loadstart",LOADSTOP:"loadstop",RESPONSIVE:"responsive",SIZECHANGED:"sizechanged",UNRESPONSIVE:"unresponsive",VISIBILITYCHANGE:"visibilitychange",STORAGE:"storage",DOMSUBTREEMODIFIED:"DOMSubtreeModified",DOMNODEINSERTED:"DOMNodeInserted",DOMNODEREMOVED:"DOMNodeRemoved",DOMNODEREMOVEDFROMDOCUMENT:"DOMNodeRemovedFromDocument",DOMNODEINSERTEDINTODOCUMENT:"DOMNodeInsertedIntoDocument",DOMATTRMODIFIED:"DOMAttrModified",\nDOMCHARACTERDATAMODIFIED:"DOMCharacterDataModified",BEFOREPRINT:"beforeprint",AFTERPRINT:"afterprint"};goog.events.BrowserEvent=function(a,b){goog.events.Event.call(this,a?a.type:"");this.relatedTarget=this.currentTarget=this.target=null;this.charCode=this.keyCode=this.button=this.screenY=this.screenX=this.clientY=this.clientX=this.offsetY=this.offsetX=0;this.metaKey=this.shiftKey=this.altKey=this.ctrlKey=!1;this.state=null;this.platformModifierKey=!1;this.event_=null;a&&this.init(a,b)};goog.inherits(goog.events.BrowserEvent,goog.events.Event);\ngoog.events.BrowserEvent.MouseButton={LEFT:0,MIDDLE:1,RIGHT:2};goog.events.BrowserEvent.IEButtonMap=[1,4,2];\ngoog.events.BrowserEvent.prototype.init=function(a,b){var c=this.type=a.type,d=a.changedTouches?a.changedTouches[0]:null;this.target=a.target||a.srcElement;this.currentTarget=b;var e=a.relatedTarget;e?goog.userAgent.GECKO&&(goog.reflect.canAccessProperty(e,"nodeName")||(e=null)):c==goog.events.EventType.MOUSEOVER?e=a.fromElement:c==goog.events.EventType.MOUSEOUT&&(e=a.toElement);this.relatedTarget=e;goog.isNull(d)?(this.offsetX=goog.userAgent.WEBKIT||void 0!==a.offsetX?a.offsetX:a.layerX,this.offsetY=\ngoog.userAgent.WEBKIT||void 0!==a.offsetY?a.offsetY:a.layerY,this.clientX=void 0!==a.clientX?a.clientX:a.pageX,this.clientY=void 0!==a.clientY?a.clientY:a.pageY,this.screenX=a.screenX||0,this.screenY=a.screenY||0):(this.clientX=void 0!==d.clientX?d.clientX:d.pageX,this.clientY=void 0!==d.clientY?d.clientY:d.pageY,this.screenX=d.screenX||0,this.screenY=d.screenY||0);this.button=a.button;this.keyCode=a.keyCode||0;this.charCode=a.charCode||("keypress"==c?a.keyCode:0);this.ctrlKey=a.ctrlKey;this.altKey=\na.altKey;this.shiftKey=a.shiftKey;this.metaKey=a.metaKey;this.platformModifierKey=goog.userAgent.MAC?a.metaKey:a.ctrlKey;this.state=a.state;this.event_=a;a.defaultPrevented&&this.preventDefault()};goog.events.BrowserEvent.prototype.isButton=function(a){return goog.events.BrowserFeature.HAS_W3C_BUTTON?this.event_.button==a:"click"==this.type?a==goog.events.BrowserEvent.MouseButton.LEFT:!!(this.event_.button&goog.events.BrowserEvent.IEButtonMap[a])};\ngoog.events.BrowserEvent.prototype.isMouseActionButton=function(){return this.isButton(goog.events.BrowserEvent.MouseButton.LEFT)&&!(goog.userAgent.WEBKIT&&goog.userAgent.MAC&&this.ctrlKey)};goog.events.BrowserEvent.prototype.stopPropagation=function(){goog.events.BrowserEvent.superClass_.stopPropagation.call(this);this.event_.stopPropagation?this.event_.stopPropagation():this.event_.cancelBubble=!0};\ngoog.events.BrowserEvent.prototype.preventDefault=function(){goog.events.BrowserEvent.superClass_.preventDefault.call(this);var a=this.event_;if(a.preventDefault)a.preventDefault();else if(a.returnValue=!1,goog.events.BrowserFeature.SET_KEY_CODE_TO_PREVENT_DEFAULT)try{if(a.ctrlKey||112<=a.keyCode&&123>=a.keyCode)a.keyCode=-1}catch(b){}};goog.events.BrowserEvent.prototype.getBrowserEvent=function(){return this.event_};goog.events.Listenable=function(){};goog.events.Listenable.IMPLEMENTED_BY_PROP="closure_listenable_"+(1E6*Math.random()|0);goog.events.Listenable.addImplementation=function(a){a.prototype[goog.events.Listenable.IMPLEMENTED_BY_PROP]=!0};goog.events.Listenable.isImplementedBy=function(a){return!(!a||!a[goog.events.Listenable.IMPLEMENTED_BY_PROP])};goog.events.ListenableKey=function(){};goog.events.ListenableKey.counter_=0;goog.events.ListenableKey.reserveKey=function(){return++goog.events.ListenableKey.counter_};goog.events.Listener=function(a,b,c,d,e,f){goog.events.Listener.ENABLE_MONITORING&&(this.creationStack=Error().stack);this.listener=a;this.proxy=b;this.src=c;this.type=d;this.capture=!!e;this.handler=f;this.key=goog.events.ListenableKey.reserveKey();this.removed=this.callOnce=!1};goog.events.Listener.ENABLE_MONITORING=!1;goog.events.Listener.prototype.markAsRemoved=function(){this.removed=!0;this.handler=this.src=this.proxy=this.listener=null};goog.events.ListenerMap=function(a){this.src=a;this.listeners={};this.typeCount_=0};goog.events.ListenerMap.prototype.getTypeCount=function(){return this.typeCount_};goog.events.ListenerMap.prototype.getListenerCount=function(){var a=0,b;for(b in this.listeners)a+=this.listeners[b].length;return a};\ngoog.events.ListenerMap.prototype.add=function(a,b,c,d,e){var f=a.toString();a=this.listeners[f];a||(a=this.listeners[f]=[],this.typeCount_++);var g=goog.events.ListenerMap.findListenerIndex_(a,b,d,e);-1<g?(b=a[g],c||(b.callOnce=!1)):(b=new goog.events.Listener(b,null,this.src,f,!!d,e),b.callOnce=c,a.push(b));return b};\ngoog.events.ListenerMap.prototype.remove=function(a,b,c,d){a=a.toString();if(!(a in this.listeners))return!1;var e=this.listeners[a];b=goog.events.ListenerMap.findListenerIndex_(e,b,c,d);return-1<b?(e[b].markAsRemoved(),goog.array.removeAt(e,b),0==e.length&&(delete this.listeners[a],this.typeCount_--),!0):!1};\ngoog.events.ListenerMap.prototype.removeByKey=function(a){var b=a.type;if(!(b in this.listeners))return!1;var c=goog.array.remove(this.listeners[b],a);c&&(a.markAsRemoved(),0==this.listeners[b].length&&(delete this.listeners[b],this.typeCount_--));return c};goog.events.ListenerMap.prototype.removeAll=function(a){a=a&&a.toString();var b=0,c;for(c in this.listeners)if(!a||c==a){for(var d=this.listeners[c],e=0;e<d.length;e++)++b,d[e].markAsRemoved();delete this.listeners[c];this.typeCount_--}return b};\ngoog.events.ListenerMap.prototype.getListeners=function(a,b){var c=this.listeners[a.toString()],d=[];if(c)for(var e=0;e<c.length;++e){var f=c[e];f.capture==b&&d.push(f)}return d};goog.events.ListenerMap.prototype.getListener=function(a,b,c,d){a=this.listeners[a.toString()];var e=-1;a&&(e=goog.events.ListenerMap.findListenerIndex_(a,b,c,d));return-1<e?a[e]:null};\ngoog.events.ListenerMap.prototype.hasListener=function(a,b){var c=goog.isDef(a),d=c?a.toString():"",e=goog.isDef(b);return goog.object.some(this.listeners,function(a,g){for(var f=0;f<a.length;++f)if(!(c&&a[f].type!=d||e&&a[f].capture!=b))return!0;return!1})};goog.events.ListenerMap.findListenerIndex_=function(a,b,c,d){for(var e=0;e<a.length;++e){var f=a[e];if(!f.removed&&f.listener==b&&f.capture==!!c&&f.handler==d)return e}return-1};goog.events.LISTENER_MAP_PROP_="closure_lm_"+(1E6*Math.random()|0);goog.events.onString_="on";goog.events.onStringMap_={};goog.events.CaptureSimulationMode={OFF_AND_FAIL:0,OFF_AND_SILENT:1,ON:2};goog.events.CAPTURE_SIMULATION_MODE=2;goog.events.listenerCountEstimate_=0;\ngoog.events.listen=function(a,b,c,d,e){if(goog.isArray(b)){for(var f=0;f<b.length;f++)goog.events.listen(a,b[f],c,d,e);return null}c=goog.events.wrapListener(c);return goog.events.Listenable.isImplementedBy(a)?a.listen(b,c,d,e):goog.events.listen_(a,b,c,!1,d,e)};\ngoog.events.listen_=function(a,b,c,d,e,f){if(!b)throw Error("Invalid event type");var g=!!e;if(g&&!goog.events.BrowserFeature.HAS_W3C_EVENT_SUPPORT){if(goog.events.CAPTURE_SIMULATION_MODE==goog.events.CaptureSimulationMode.OFF_AND_FAIL)return goog.asserts.fail("Can not register capture listener in IE8-."),null;if(goog.events.CAPTURE_SIMULATION_MODE==goog.events.CaptureSimulationMode.OFF_AND_SILENT)return null}var h=goog.events.getListenerMap_(a);h||(a[goog.events.LISTENER_MAP_PROP_]=h=new goog.events.ListenerMap(a));\nc=h.add(b,c,d,e,f);if(c.proxy)return c;d=goog.events.getProxy();c.proxy=d;d.src=a;d.listener=c;if(a.addEventListener)a.addEventListener(b.toString(),d,g);else if(a.attachEvent)a.attachEvent(goog.events.getOnString_(b.toString()),d);else throw Error("addEventListener and attachEvent are unavailable.");goog.events.listenerCountEstimate_++;return c};\ngoog.events.getProxy=function(){var a=goog.events.handleBrowserEvent_,b=goog.events.BrowserFeature.HAS_W3C_EVENT_SUPPORT?function(c){return a.call(b.src,b.listener,c)}:function(c){c=a.call(b.src,b.listener,c);if(!c)return c};return b};\ngoog.events.listenOnce=function(a,b,c,d,e){if(goog.isArray(b)){for(var f=0;f<b.length;f++)goog.events.listenOnce(a,b[f],c,d,e);return null}c=goog.events.wrapListener(c);return goog.events.Listenable.isImplementedBy(a)?a.listenOnce(b,c,d,e):goog.events.listen_(a,b,c,!0,d,e)};goog.events.listenWithWrapper=function(a,b,c,d,e){b.listen(a,c,d,e)};\ngoog.events.unlisten=function(a,b,c,d,e){if(goog.isArray(b)){for(var f=0;f<b.length;f++)goog.events.unlisten(a,b[f],c,d,e);return null}c=goog.events.wrapListener(c);if(goog.events.Listenable.isImplementedBy(a))return a.unlisten(b,c,d,e);if(!a)return!1;d=!!d;if(a=goog.events.getListenerMap_(a))if(b=a.getListener(b,c,d,e))return goog.events.unlistenByKey(b);return!1};\ngoog.events.unlistenByKey=function(a){if(goog.isNumber(a)||!a||a.removed)return!1;var b=a.src;if(goog.events.Listenable.isImplementedBy(b))return b.unlistenByKey(a);var c=a.type,d=a.proxy;b.removeEventListener?b.removeEventListener(c,d,a.capture):b.detachEvent&&b.detachEvent(goog.events.getOnString_(c),d);goog.events.listenerCountEstimate_--;(c=goog.events.getListenerMap_(b))?(c.removeByKey(a),0==c.getTypeCount()&&(c.src=null,b[goog.events.LISTENER_MAP_PROP_]=null)):a.markAsRemoved();return!0};\ngoog.events.unlistenWithWrapper=function(a,b,c,d,e){b.unlisten(a,c,d,e)};goog.events.removeAll=function(a,b){if(!a)return 0;if(goog.events.Listenable.isImplementedBy(a))return a.removeAllListeners(b);var c=goog.events.getListenerMap_(a);if(!c)return 0;var d=0,e=b&&b.toString(),f;for(f in c.listeners)if(!e||f==e)for(var g=c.listeners[f].concat(),h=0;h<g.length;++h)goog.events.unlistenByKey(g[h])&&++d;return d};\ngoog.events.getListeners=function(a,b,c){return goog.events.Listenable.isImplementedBy(a)?a.getListeners(b,c):a?(a=goog.events.getListenerMap_(a))?a.getListeners(b,c):[]:[]};goog.events.getListener=function(a,b,c,d,e){c=goog.events.wrapListener(c);d=!!d;return goog.events.Listenable.isImplementedBy(a)?a.getListener(b,c,d,e):a?(a=goog.events.getListenerMap_(a))?a.getListener(b,c,d,e):null:null};\ngoog.events.hasListener=function(a,b,c){if(goog.events.Listenable.isImplementedBy(a))return a.hasListener(b,c);a=goog.events.getListenerMap_(a);return!!a&&a.hasListener(b,c)};goog.events.expose=function(a){var b=[],c;for(c in a)a[c]&&a[c].id?b.push(c+" = "+a[c]+" ("+a[c].id+")"):b.push(c+" = "+a[c]);return b.join("\\n")};goog.events.getOnString_=function(a){return a in goog.events.onStringMap_?goog.events.onStringMap_[a]:goog.events.onStringMap_[a]=goog.events.onString_+a};\ngoog.events.fireListeners=function(a,b,c,d){return goog.events.Listenable.isImplementedBy(a)?a.fireListeners(b,c,d):goog.events.fireListeners_(a,b,c,d)};goog.events.fireListeners_=function(a,b,c,d){var e=!0;if(a=goog.events.getListenerMap_(a))if(b=a.listeners[b.toString()])for(b=b.concat(),a=0;a<b.length;a++){var f=b[a];f&&f.capture==c&&!f.removed&&(f=goog.events.fireListener(f,d),e=e&&!1!==f)}return e};\ngoog.events.fireListener=function(a,b){var c=a.listener,d=a.handler||a.src;a.callOnce&&goog.events.unlistenByKey(a);return c.call(d,b)};goog.events.getTotalListenerCount=function(){return goog.events.listenerCountEstimate_};goog.events.dispatchEvent=function(a,b){goog.asserts.assert(goog.events.Listenable.isImplementedBy(a),"Can not use goog.events.dispatchEvent with non-goog.events.Listenable instance.");return a.dispatchEvent(b)};\ngoog.events.protectBrowserEventEntryPoint=function(a){goog.events.handleBrowserEvent_=a.protectEntryPoint(goog.events.handleBrowserEvent_)};\ngoog.events.handleBrowserEvent_=function(a,b){if(a.removed)return!0;if(!goog.events.BrowserFeature.HAS_W3C_EVENT_SUPPORT){var c=b||goog.getObjectByName("window.event"),d=new goog.events.BrowserEvent(c,this),e=!0;if(goog.events.CAPTURE_SIMULATION_MODE==goog.events.CaptureSimulationMode.ON){if(!goog.events.isMarkedIeEvent_(c)){goog.events.markIeEvent_(c);for(var c=[],f=d.currentTarget;f;f=f.parentNode)c.push(f);for(var f=a.type,g=c.length-1;!d.propagationStopped_&&0<=g;g--){d.currentTarget=c[g];var h=\ngoog.events.fireListeners_(c[g],f,!0,d),e=e&&h}for(g=0;!d.propagationStopped_&&g<c.length;g++)d.currentTarget=c[g],h=goog.events.fireListeners_(c[g],f,!1,d),e=e&&h}}else e=goog.events.fireListener(a,d);return e}return goog.events.fireListener(a,new goog.events.BrowserEvent(b,this))};goog.events.markIeEvent_=function(a){var b=!1;if(0==a.keyCode)try{a.keyCode=-1;return}catch(c){b=!0}if(b||void 0==a.returnValue)a.returnValue=!0};goog.events.isMarkedIeEvent_=function(a){return 0>a.keyCode||void 0!=a.returnValue};\ngoog.events.uniqueIdCounter_=0;goog.events.getUniqueId=function(a){return a+"_"+goog.events.uniqueIdCounter_++};goog.events.getListenerMap_=function(a){a=a[goog.events.LISTENER_MAP_PROP_];return a instanceof goog.events.ListenerMap?a:null};goog.events.LISTENER_WRAPPER_PROP_="__closure_events_fn_"+(1E9*Math.random()>>>0);\ngoog.events.wrapListener=function(a){goog.asserts.assert(a,"Listener can not be null.");if(goog.isFunction(a))return a;goog.asserts.assert(a.handleEvent,"An object listener must have handleEvent method.");a[goog.events.LISTENER_WRAPPER_PROP_]||(a[goog.events.LISTENER_WRAPPER_PROP_]=function(b){return a.handleEvent(b)});return a[goog.events.LISTENER_WRAPPER_PROP_]};goog.debug.entryPointRegistry.register(function(a){goog.events.handleBrowserEvent_=a(goog.events.handleBrowserEvent_)});goog.math={};goog.math.randomInt=function(a){return Math.floor(Math.random()*a)};goog.math.uniformRandom=function(a,b){return a+Math.random()*(b-a)};goog.math.clamp=function(a,b,c){return Math.min(Math.max(a,b),c)};goog.math.modulo=function(a,b){var c=a%b;return 0>c*b?c+b:c};goog.math.lerp=function(a,b,c){return a+c*(b-a)};goog.math.nearlyEquals=function(a,b,c){return Math.abs(a-b)<=(c||1E-6)};goog.math.standardAngle=function(a){return goog.math.modulo(a,360)};\ngoog.math.standardAngleInRadians=function(a){return goog.math.modulo(a,2*Math.PI)};goog.math.toRadians=function(a){return a*Math.PI/180};goog.math.toDegrees=function(a){return 180*a/Math.PI};goog.math.angleDx=function(a,b){return b*Math.cos(goog.math.toRadians(a))};goog.math.angleDy=function(a,b){return b*Math.sin(goog.math.toRadians(a))};goog.math.angle=function(a,b,c,d){return goog.math.standardAngle(goog.math.toDegrees(Math.atan2(d-b,c-a)))};\ngoog.math.angleDifference=function(a,b){var c=goog.math.standardAngle(b)-goog.math.standardAngle(a);180<c?c-=360:-180>=c&&(c=360+c);return c};goog.math.sign=function(a){return 0<a?1:0>a?-1:a};\ngoog.math.longestCommonSubsequence=function(a,b,c,d){c=c||function(a,b){return a==b};d=d||function(b,c){return a[b]};for(var e=a.length,f=b.length,g=[],h=0;h<e+1;h++)g[h]=[],g[h][0]=0;for(var k=0;k<f+1;k++)g[0][k]=0;for(h=1;h<=e;h++)for(k=1;k<=f;k++)c(a[h-1],b[k-1])?g[h][k]=g[h-1][k-1]+1:g[h][k]=Math.max(g[h-1][k],g[h][k-1]);for(var l=[],h=e,k=f;0<h&&0<k;)c(a[h-1],b[k-1])?(l.unshift(d(h-1,k-1)),h--,k--):g[h-1][k]>g[h][k-1]?h--:k--;return l};\ngoog.math.sum=function(a){return goog.array.reduce(arguments,function(a,c){return a+c},0)};goog.math.average=function(a){return goog.math.sum.apply(null,arguments)/arguments.length};goog.math.sampleVariance=function(a){var b=arguments.length;if(2>b)return 0;var c=goog.math.average.apply(null,arguments);return goog.math.sum.apply(null,goog.array.map(arguments,function(a){return Math.pow(a-c,2)}))/(b-1)};goog.math.standardDeviation=function(a){return Math.sqrt(goog.math.sampleVariance.apply(null,arguments))};\ngoog.math.isInt=function(a){return isFinite(a)&&0==a%1};goog.math.isFiniteNumber=function(a){return isFinite(a)&&!isNaN(a)};goog.math.isNegativeZero=function(a){return 0==a&&0>1/a};goog.math.log10Floor=function(a){if(0<a){var b=Math.round(Math.log(a)*Math.LOG10E);return b-(parseFloat("1e"+b)>a?1:0)}return 0==a?-Infinity:NaN};goog.math.safeFloor=function(a,b){goog.asserts.assert(!goog.isDef(b)||0<b);return Math.floor(a+(b||2E-15))};\ngoog.math.safeCeil=function(a,b){goog.asserts.assert(!goog.isDef(b)||0<b);return Math.ceil(a-(b||2E-15))};goog.dom.BrowserFeature={CAN_ADD_NAME_OR_TYPE_ATTRIBUTES:!goog.userAgent.IE||goog.userAgent.isDocumentModeOrHigher(9),CAN_USE_CHILDREN_ATTRIBUTE:!goog.userAgent.GECKO&&!goog.userAgent.IE||goog.userAgent.IE&&goog.userAgent.isDocumentModeOrHigher(9)||goog.userAgent.GECKO&&goog.userAgent.isVersionOrHigher("1.9.1"),CAN_USE_INNER_TEXT:goog.userAgent.IE&&!goog.userAgent.isVersionOrHigher("9"),CAN_USE_PARENT_ELEMENT_PROPERTY:goog.userAgent.IE||goog.userAgent.OPERA||goog.userAgent.WEBKIT,INNER_HTML_NEEDS_SCOPED_ELEMENT:goog.userAgent.IE,\nLEGACY_IE_RANGES:goog.userAgent.IE&&!goog.userAgent.isDocumentModeOrHigher(9)};goog.dom.TagName=function(a){this.tagName_=a};goog.dom.TagName.prototype.toString=function(){return this.tagName_};goog.dom.TagName.A=new goog.dom.TagName("A");goog.dom.TagName.ABBR=new goog.dom.TagName("ABBR");goog.dom.TagName.ACRONYM=new goog.dom.TagName("ACRONYM");goog.dom.TagName.ADDRESS=new goog.dom.TagName("ADDRESS");goog.dom.TagName.APPLET=new goog.dom.TagName("APPLET");goog.dom.TagName.AREA=new goog.dom.TagName("AREA");goog.dom.TagName.ARTICLE=new goog.dom.TagName("ARTICLE");\ngoog.dom.TagName.ASIDE=new goog.dom.TagName("ASIDE");goog.dom.TagName.AUDIO=new goog.dom.TagName("AUDIO");goog.dom.TagName.B=new goog.dom.TagName("B");goog.dom.TagName.BASE=new goog.dom.TagName("BASE");goog.dom.TagName.BASEFONT=new goog.dom.TagName("BASEFONT");goog.dom.TagName.BDI=new goog.dom.TagName("BDI");goog.dom.TagName.BDO=new goog.dom.TagName("BDO");goog.dom.TagName.BIG=new goog.dom.TagName("BIG");goog.dom.TagName.BLOCKQUOTE=new goog.dom.TagName("BLOCKQUOTE");goog.dom.TagName.BODY=new goog.dom.TagName("BODY");\ngoog.dom.TagName.BR=new goog.dom.TagName("BR");goog.dom.TagName.BUTTON=new goog.dom.TagName("BUTTON");goog.dom.TagName.CANVAS=new goog.dom.TagName("CANVAS");goog.dom.TagName.CAPTION=new goog.dom.TagName("CAPTION");goog.dom.TagName.CENTER=new goog.dom.TagName("CENTER");goog.dom.TagName.CITE=new goog.dom.TagName("CITE");goog.dom.TagName.CODE=new goog.dom.TagName("CODE");goog.dom.TagName.COL=new goog.dom.TagName("COL");goog.dom.TagName.COLGROUP=new goog.dom.TagName("COLGROUP");\ngoog.dom.TagName.COMMAND=new goog.dom.TagName("COMMAND");goog.dom.TagName.DATA=new goog.dom.TagName("DATA");goog.dom.TagName.DATALIST=new goog.dom.TagName("DATALIST");goog.dom.TagName.DD=new goog.dom.TagName("DD");goog.dom.TagName.DEL=new goog.dom.TagName("DEL");goog.dom.TagName.DETAILS=new goog.dom.TagName("DETAILS");goog.dom.TagName.DFN=new goog.dom.TagName("DFN");goog.dom.TagName.DIALOG=new goog.dom.TagName("DIALOG");goog.dom.TagName.DIR=new goog.dom.TagName("DIR");goog.dom.TagName.DIV=new goog.dom.TagName("DIV");\ngoog.dom.TagName.DL=new goog.dom.TagName("DL");goog.dom.TagName.DT=new goog.dom.TagName("DT");goog.dom.TagName.EM=new goog.dom.TagName("EM");goog.dom.TagName.EMBED=new goog.dom.TagName("EMBED");goog.dom.TagName.FIELDSET=new goog.dom.TagName("FIELDSET");goog.dom.TagName.FIGCAPTION=new goog.dom.TagName("FIGCAPTION");goog.dom.TagName.FIGURE=new goog.dom.TagName("FIGURE");goog.dom.TagName.FONT=new goog.dom.TagName("FONT");goog.dom.TagName.FOOTER=new goog.dom.TagName("FOOTER");goog.dom.TagName.FORM=new goog.dom.TagName("FORM");\ngoog.dom.TagName.FRAME=new goog.dom.TagName("FRAME");goog.dom.TagName.FRAMESET=new goog.dom.TagName("FRAMESET");goog.dom.TagName.H1=new goog.dom.TagName("H1");goog.dom.TagName.H2=new goog.dom.TagName("H2");goog.dom.TagName.H3=new goog.dom.TagName("H3");goog.dom.TagName.H4=new goog.dom.TagName("H4");goog.dom.TagName.H5=new goog.dom.TagName("H5");goog.dom.TagName.H6=new goog.dom.TagName("H6");goog.dom.TagName.HEAD=new goog.dom.TagName("HEAD");goog.dom.TagName.HEADER=new goog.dom.TagName("HEADER");\ngoog.dom.TagName.HGROUP=new goog.dom.TagName("HGROUP");goog.dom.TagName.HR=new goog.dom.TagName("HR");goog.dom.TagName.HTML=new goog.dom.TagName("HTML");goog.dom.TagName.I=new goog.dom.TagName("I");goog.dom.TagName.IFRAME=new goog.dom.TagName("IFRAME");goog.dom.TagName.IMG=new goog.dom.TagName("IMG");goog.dom.TagName.INPUT=new goog.dom.TagName("INPUT");goog.dom.TagName.INS=new goog.dom.TagName("INS");goog.dom.TagName.ISINDEX=new goog.dom.TagName("ISINDEX");goog.dom.TagName.KBD=new goog.dom.TagName("KBD");\ngoog.dom.TagName.KEYGEN=new goog.dom.TagName("KEYGEN");goog.dom.TagName.LABEL=new goog.dom.TagName("LABEL");goog.dom.TagName.LEGEND=new goog.dom.TagName("LEGEND");goog.dom.TagName.LI=new goog.dom.TagName("LI");goog.dom.TagName.LINK=new goog.dom.TagName("LINK");goog.dom.TagName.MAP=new goog.dom.TagName("MAP");goog.dom.TagName.MARK=new goog.dom.TagName("MARK");goog.dom.TagName.MATH=new goog.dom.TagName("MATH");goog.dom.TagName.MENU=new goog.dom.TagName("MENU");goog.dom.TagName.META=new goog.dom.TagName("META");\ngoog.dom.TagName.METER=new goog.dom.TagName("METER");goog.dom.TagName.NAV=new goog.dom.TagName("NAV");goog.dom.TagName.NOFRAMES=new goog.dom.TagName("NOFRAMES");goog.dom.TagName.NOSCRIPT=new goog.dom.TagName("NOSCRIPT");goog.dom.TagName.OBJECT=new goog.dom.TagName("OBJECT");goog.dom.TagName.OL=new goog.dom.TagName("OL");goog.dom.TagName.OPTGROUP=new goog.dom.TagName("OPTGROUP");goog.dom.TagName.OPTION=new goog.dom.TagName("OPTION");goog.dom.TagName.OUTPUT=new goog.dom.TagName("OUTPUT");\ngoog.dom.TagName.P=new goog.dom.TagName("P");goog.dom.TagName.PARAM=new goog.dom.TagName("PARAM");goog.dom.TagName.PRE=new goog.dom.TagName("PRE");goog.dom.TagName.PROGRESS=new goog.dom.TagName("PROGRESS");goog.dom.TagName.Q=new goog.dom.TagName("Q");goog.dom.TagName.RP=new goog.dom.TagName("RP");goog.dom.TagName.RT=new goog.dom.TagName("RT");goog.dom.TagName.RUBY=new goog.dom.TagName("RUBY");goog.dom.TagName.S=new goog.dom.TagName("S");goog.dom.TagName.SAMP=new goog.dom.TagName("SAMP");\ngoog.dom.TagName.SCRIPT=new goog.dom.TagName("SCRIPT");goog.dom.TagName.SECTION=new goog.dom.TagName("SECTION");goog.dom.TagName.SELECT=new goog.dom.TagName("SELECT");goog.dom.TagName.SMALL=new goog.dom.TagName("SMALL");goog.dom.TagName.SOURCE=new goog.dom.TagName("SOURCE");goog.dom.TagName.SPAN=new goog.dom.TagName("SPAN");goog.dom.TagName.STRIKE=new goog.dom.TagName("STRIKE");goog.dom.TagName.STRONG=new goog.dom.TagName("STRONG");goog.dom.TagName.STYLE=new goog.dom.TagName("STYLE");\ngoog.dom.TagName.SUB=new goog.dom.TagName("SUB");goog.dom.TagName.SUMMARY=new goog.dom.TagName("SUMMARY");goog.dom.TagName.SUP=new goog.dom.TagName("SUP");goog.dom.TagName.SVG=new goog.dom.TagName("SVG");goog.dom.TagName.TABLE=new goog.dom.TagName("TABLE");goog.dom.TagName.TBODY=new goog.dom.TagName("TBODY");goog.dom.TagName.TD=new goog.dom.TagName("TD");goog.dom.TagName.TEMPLATE=new goog.dom.TagName("TEMPLATE");goog.dom.TagName.TEXTAREA=new goog.dom.TagName("TEXTAREA");goog.dom.TagName.TFOOT=new goog.dom.TagName("TFOOT");\ngoog.dom.TagName.TH=new goog.dom.TagName("TH");goog.dom.TagName.THEAD=new goog.dom.TagName("THEAD");goog.dom.TagName.TIME=new goog.dom.TagName("TIME");goog.dom.TagName.TITLE=new goog.dom.TagName("TITLE");goog.dom.TagName.TR=new goog.dom.TagName("TR");goog.dom.TagName.TRACK=new goog.dom.TagName("TRACK");goog.dom.TagName.TT=new goog.dom.TagName("TT");goog.dom.TagName.U=new goog.dom.TagName("U");goog.dom.TagName.UL=new goog.dom.TagName("UL");goog.dom.TagName.VAR=new goog.dom.TagName("VAR");\ngoog.dom.TagName.VIDEO=new goog.dom.TagName("VIDEO");goog.dom.TagName.WBR=new goog.dom.TagName("WBR");goog.dom.tags={};goog.dom.tags.VOID_TAGS_={area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0};goog.dom.tags.isVoidTag=function(a){return!0===goog.dom.tags.VOID_TAGS_[a]};goog.string.TypedString=function(){};goog.string.Const=function(){this.stringConstValueWithSecurityContract__googStringSecurityPrivate_="";this.STRING_CONST_TYPE_MARKER__GOOG_STRING_SECURITY_PRIVATE_=goog.string.Const.TYPE_MARKER_};goog.string.Const.prototype.implementsGoogStringTypedString=!0;goog.string.Const.prototype.getTypedStringValue=function(){return this.stringConstValueWithSecurityContract__googStringSecurityPrivate_};\ngoog.string.Const.prototype.toString=function(){return"Const{"+this.stringConstValueWithSecurityContract__googStringSecurityPrivate_+"}"};goog.string.Const.unwrap=function(a){if(a instanceof goog.string.Const&&a.constructor===goog.string.Const&&a.STRING_CONST_TYPE_MARKER__GOOG_STRING_SECURITY_PRIVATE_===goog.string.Const.TYPE_MARKER_)return a.stringConstValueWithSecurityContract__googStringSecurityPrivate_;goog.asserts.fail("expected object of type Const, got \'"+a+"\'");return"type_error:Const"};\ngoog.string.Const.from=function(a){return goog.string.Const.create__googStringSecurityPrivate_(a)};goog.string.Const.TYPE_MARKER_={};goog.string.Const.create__googStringSecurityPrivate_=function(a){var b=new goog.string.Const;b.stringConstValueWithSecurityContract__googStringSecurityPrivate_=a;return b};goog.string.Const.EMPTY=goog.string.Const.from("");goog.html={};goog.html.SafeStyle=function(){this.privateDoNotAccessOrElseSafeStyleWrappedValue_="";this.SAFE_STYLE_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=goog.html.SafeStyle.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_};goog.html.SafeStyle.prototype.implementsGoogStringTypedString=!0;goog.html.SafeStyle.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_={};\ngoog.html.SafeStyle.fromConstant=function(a){a=goog.string.Const.unwrap(a);if(0===a.length)return goog.html.SafeStyle.EMPTY;goog.html.SafeStyle.checkStyle_(a);goog.asserts.assert(goog.string.endsWith(a,";"),"Last character of style string is not \';\': "+a);goog.asserts.assert(goog.string.contains(a,":"),"Style string must contain at least one \':\', to specify a \\"name: value\\" pair: "+a);return goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(a)};\ngoog.html.SafeStyle.checkStyle_=function(a){goog.asserts.assert(!/[<>]/.test(a),"Forbidden characters in style string: "+a)};goog.html.SafeStyle.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseSafeStyleWrappedValue_};goog.DEBUG&&(goog.html.SafeStyle.prototype.toString=function(){return"SafeStyle{"+this.privateDoNotAccessOrElseSafeStyleWrappedValue_+"}"});\ngoog.html.SafeStyle.unwrap=function(a){if(a instanceof goog.html.SafeStyle&&a.constructor===goog.html.SafeStyle&&a.SAFE_STYLE_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===goog.html.SafeStyle.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_)return a.privateDoNotAccessOrElseSafeStyleWrappedValue_;goog.asserts.fail("expected object of type SafeStyle, got \'"+a+"\' of type "+goog.typeOf(a));return"type_error:SafeStyle"};goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse=function(a){return(new goog.html.SafeStyle).initSecurityPrivateDoNotAccessOrElse_(a)};\ngoog.html.SafeStyle.prototype.initSecurityPrivateDoNotAccessOrElse_=function(a){this.privateDoNotAccessOrElseSafeStyleWrappedValue_=a;return this};goog.html.SafeStyle.EMPTY=goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse("");goog.html.SafeStyle.INNOCUOUS_STRING="zClosurez";\ngoog.html.SafeStyle.create=function(a){var b="",c;for(c in a){if(!/^[-_a-zA-Z0-9]+$/.test(c))throw Error("Name allows only [-_a-zA-Z0-9], got: "+c);var d=a[c];null!=d&&(d instanceof goog.string.Const?(d=goog.string.Const.unwrap(d),goog.asserts.assert(!/[{;}]/.test(d),"Value does not allow [{;}].")):goog.html.SafeStyle.VALUE_RE_.test(d)?goog.html.SafeStyle.hasBalancedQuotes_(d)||(goog.asserts.fail("String value requires balanced quotes, got: "+d),d=goog.html.SafeStyle.INNOCUOUS_STRING):(goog.asserts.fail("String value allows only [-,.\\"\'%_!# a-zA-Z0-9], rgb() and rgba(), got: "+\nd),d=goog.html.SafeStyle.INNOCUOUS_STRING),b+=c+":"+d+";")}if(!b)return goog.html.SafeStyle.EMPTY;goog.html.SafeStyle.checkStyle_(b);return goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(b)};goog.html.SafeStyle.hasBalancedQuotes_=function(a){for(var b=!0,c=!0,d=0;d<a.length;d++){var e=a.charAt(d);"\'"==e&&c?b=!b:\'"\'==e&&b&&(c=!c)}return b&&c};goog.html.SafeStyle.VALUE_RE_=/^([-,."\'%_!# a-zA-Z0-9]+|(?:rgb|hsl)a?\\([0-9.%, ]+\\))$/;\ngoog.html.SafeStyle.concat=function(a){var b="",c=function(a){goog.isArray(a)?goog.array.forEach(a,c):b+=goog.html.SafeStyle.unwrap(a)};goog.array.forEach(arguments,c);return b?goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(b):goog.html.SafeStyle.EMPTY};goog.html.SafeStyleSheet=function(){this.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_="";this.SAFE_STYLE_SHEET_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=goog.html.SafeStyleSheet.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_};goog.html.SafeStyleSheet.prototype.implementsGoogStringTypedString=!0;goog.html.SafeStyleSheet.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_={};\ngoog.html.SafeStyleSheet.concat=function(a){var b="",c=function(a){goog.isArray(a)?goog.array.forEach(a,c):b+=goog.html.SafeStyleSheet.unwrap(a)};goog.array.forEach(arguments,c);return goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(b)};\ngoog.html.SafeStyleSheet.fromConstant=function(a){a=goog.string.Const.unwrap(a);if(0===a.length)return goog.html.SafeStyleSheet.EMPTY;goog.asserts.assert(!goog.string.contains(a,"<"),"Forbidden \'<\' character in style sheet string: "+a);return goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(a)};goog.html.SafeStyleSheet.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_};\ngoog.DEBUG&&(goog.html.SafeStyleSheet.prototype.toString=function(){return"SafeStyleSheet{"+this.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_+"}"});\ngoog.html.SafeStyleSheet.unwrap=function(a){if(a instanceof goog.html.SafeStyleSheet&&a.constructor===goog.html.SafeStyleSheet&&a.SAFE_STYLE_SHEET_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===goog.html.SafeStyleSheet.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_)return a.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_;goog.asserts.fail("expected object of type SafeStyleSheet, got \'"+a+"\' of type "+goog.typeOf(a));return"type_error:SafeStyleSheet"};\ngoog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse=function(a){return(new goog.html.SafeStyleSheet).initSecurityPrivateDoNotAccessOrElse_(a)};goog.html.SafeStyleSheet.prototype.initSecurityPrivateDoNotAccessOrElse_=function(a){this.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_=a;return this};goog.html.SafeStyleSheet.EMPTY=goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse("");goog.fs={};goog.fs.url={};goog.fs.url.createObjectUrl=function(a){return goog.fs.url.getUrlObject_().createObjectURL(a)};goog.fs.url.revokeObjectUrl=function(a){goog.fs.url.getUrlObject_().revokeObjectURL(a)};goog.fs.url.getUrlObject_=function(){var a=goog.fs.url.findUrlObject_();if(null!=a)return a;throw Error("This browser doesn\'t seem to support blob URLs");};\ngoog.fs.url.findUrlObject_=function(){return goog.isDef(goog.global.URL)&&goog.isDef(goog.global.URL.createObjectURL)?goog.global.URL:goog.isDef(goog.global.webkitURL)&&goog.isDef(goog.global.webkitURL.createObjectURL)?goog.global.webkitURL:goog.isDef(goog.global.createObjectURL)?goog.global:null};goog.fs.url.browserSupportsObjectUrls=function(){return null!=goog.fs.url.findUrlObject_()};goog.i18n={};goog.i18n.bidi={};goog.i18n.bidi.FORCE_RTL=!1;\ngoog.i18n.bidi.IS_RTL=goog.i18n.bidi.FORCE_RTL||("ar"==goog.LOCALE.substring(0,2).toLowerCase()||"fa"==goog.LOCALE.substring(0,2).toLowerCase()||"he"==goog.LOCALE.substring(0,2).toLowerCase()||"iw"==goog.LOCALE.substring(0,2).toLowerCase()||"ps"==goog.LOCALE.substring(0,2).toLowerCase()||"sd"==goog.LOCALE.substring(0,2).toLowerCase()||"ug"==goog.LOCALE.substring(0,2).toLowerCase()||"ur"==goog.LOCALE.substring(0,2).toLowerCase()||"yi"==goog.LOCALE.substring(0,2).toLowerCase())&&(2==goog.LOCALE.length||\n"-"==goog.LOCALE.substring(2,3)||"_"==goog.LOCALE.substring(2,3))||3<=goog.LOCALE.length&&"ckb"==goog.LOCALE.substring(0,3).toLowerCase()&&(3==goog.LOCALE.length||"-"==goog.LOCALE.substring(3,4)||"_"==goog.LOCALE.substring(3,4));goog.i18n.bidi.Format={LRE:"\\u202a",RLE:"\\u202b",PDF:"\\u202c",LRM:"\\u200e",RLM:"\\u200f"};goog.i18n.bidi.Dir={LTR:1,RTL:-1,NEUTRAL:0};goog.i18n.bidi.RIGHT="right";goog.i18n.bidi.LEFT="left";goog.i18n.bidi.I18N_RIGHT=goog.i18n.bidi.IS_RTL?goog.i18n.bidi.LEFT:goog.i18n.bidi.RIGHT;\ngoog.i18n.bidi.I18N_LEFT=goog.i18n.bidi.IS_RTL?goog.i18n.bidi.RIGHT:goog.i18n.bidi.LEFT;goog.i18n.bidi.toDir=function(a,b){return"number"==typeof a?0<a?goog.i18n.bidi.Dir.LTR:0>a?goog.i18n.bidi.Dir.RTL:b?null:goog.i18n.bidi.Dir.NEUTRAL:null==a?null:a?goog.i18n.bidi.Dir.RTL:goog.i18n.bidi.Dir.LTR};goog.i18n.bidi.ltrChars_="A-Za-z\\u00c0-\\u00d6\\u00d8-\\u00f6\\u00f8-\\u02b8\\u0300-\\u0590\\u0800-\\u1fff\\u200e\\u2c00-\\ufb1c\\ufe00-\\ufe6f\\ufefd-\\uffff";goog.i18n.bidi.rtlChars_="\\u0591-\\u06ef\\u06fa-\\u07ff\\u200f\\ufb1d-\\ufdff\\ufe70-\\ufefc";\ngoog.i18n.bidi.htmlSkipReg_=/<[^>]*>|&[^;]+;/g;goog.i18n.bidi.stripHtmlIfNeeded_=function(a,b){return b?a.replace(goog.i18n.bidi.htmlSkipReg_,""):a};goog.i18n.bidi.rtlCharReg_=new RegExp("["+goog.i18n.bidi.rtlChars_+"]");goog.i18n.bidi.ltrCharReg_=new RegExp("["+goog.i18n.bidi.ltrChars_+"]");goog.i18n.bidi.hasAnyRtl=function(a,b){return goog.i18n.bidi.rtlCharReg_.test(goog.i18n.bidi.stripHtmlIfNeeded_(a,b))};goog.i18n.bidi.hasRtlChar=goog.i18n.bidi.hasAnyRtl;\ngoog.i18n.bidi.hasAnyLtr=function(a,b){return goog.i18n.bidi.ltrCharReg_.test(goog.i18n.bidi.stripHtmlIfNeeded_(a,b))};goog.i18n.bidi.ltrRe_=new RegExp("^["+goog.i18n.bidi.ltrChars_+"]");goog.i18n.bidi.rtlRe_=new RegExp("^["+goog.i18n.bidi.rtlChars_+"]");goog.i18n.bidi.isRtlChar=function(a){return goog.i18n.bidi.rtlRe_.test(a)};goog.i18n.bidi.isLtrChar=function(a){return goog.i18n.bidi.ltrRe_.test(a)};goog.i18n.bidi.isNeutralChar=function(a){return!goog.i18n.bidi.isLtrChar(a)&&!goog.i18n.bidi.isRtlChar(a)};\ngoog.i18n.bidi.ltrDirCheckRe_=new RegExp("^[^"+goog.i18n.bidi.rtlChars_+"]*["+goog.i18n.bidi.ltrChars_+"]");goog.i18n.bidi.rtlDirCheckRe_=new RegExp("^[^"+goog.i18n.bidi.ltrChars_+"]*["+goog.i18n.bidi.rtlChars_+"]");goog.i18n.bidi.startsWithRtl=function(a,b){return goog.i18n.bidi.rtlDirCheckRe_.test(goog.i18n.bidi.stripHtmlIfNeeded_(a,b))};goog.i18n.bidi.isRtlText=goog.i18n.bidi.startsWithRtl;\ngoog.i18n.bidi.startsWithLtr=function(a,b){return goog.i18n.bidi.ltrDirCheckRe_.test(goog.i18n.bidi.stripHtmlIfNeeded_(a,b))};goog.i18n.bidi.isLtrText=goog.i18n.bidi.startsWithLtr;goog.i18n.bidi.isRequiredLtrRe_=/^http:\\/\\/.*/;goog.i18n.bidi.isNeutralText=function(a,b){a=goog.i18n.bidi.stripHtmlIfNeeded_(a,b);return goog.i18n.bidi.isRequiredLtrRe_.test(a)||!goog.i18n.bidi.hasAnyLtr(a)&&!goog.i18n.bidi.hasAnyRtl(a)};\ngoog.i18n.bidi.ltrExitDirCheckRe_=new RegExp("["+goog.i18n.bidi.ltrChars_+"][^"+goog.i18n.bidi.rtlChars_+"]*$");goog.i18n.bidi.rtlExitDirCheckRe_=new RegExp("["+goog.i18n.bidi.rtlChars_+"][^"+goog.i18n.bidi.ltrChars_+"]*$");goog.i18n.bidi.endsWithLtr=function(a,b){return goog.i18n.bidi.ltrExitDirCheckRe_.test(goog.i18n.bidi.stripHtmlIfNeeded_(a,b))};goog.i18n.bidi.isLtrExitText=goog.i18n.bidi.endsWithLtr;\ngoog.i18n.bidi.endsWithRtl=function(a,b){return goog.i18n.bidi.rtlExitDirCheckRe_.test(goog.i18n.bidi.stripHtmlIfNeeded_(a,b))};goog.i18n.bidi.isRtlExitText=goog.i18n.bidi.endsWithRtl;goog.i18n.bidi.rtlLocalesRe_=/^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Arab|Hebr|Thaa|Nkoo|Tfng))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i;goog.i18n.bidi.isRtlLanguage=function(a){return goog.i18n.bidi.rtlLocalesRe_.test(a)};goog.i18n.bidi.bracketGuardTextRe_=/(\\(.*?\\)+)|(\\[.*?\\]+)|(\\{.*?\\}+)|(<.*?>+)/g;\ngoog.i18n.bidi.guardBracketInText=function(a,b){var c=(void 0===b?goog.i18n.bidi.hasAnyRtl(a):b)?goog.i18n.bidi.Format.RLM:goog.i18n.bidi.Format.LRM;return a.replace(goog.i18n.bidi.bracketGuardTextRe_,c+"$&"+c)};goog.i18n.bidi.enforceRtlInHtml=function(a){return"<"==a.charAt(0)?a.replace(/<\\w+/,"$& dir=rtl"):"\\n<span dir=rtl>"+a+"</span>"};goog.i18n.bidi.enforceRtlInText=function(a){return goog.i18n.bidi.Format.RLE+a+goog.i18n.bidi.Format.PDF};\ngoog.i18n.bidi.enforceLtrInHtml=function(a){return"<"==a.charAt(0)?a.replace(/<\\w+/,"$& dir=ltr"):"\\n<span dir=ltr>"+a+"</span>"};goog.i18n.bidi.enforceLtrInText=function(a){return goog.i18n.bidi.Format.LRE+a+goog.i18n.bidi.Format.PDF};goog.i18n.bidi.dimensionsRe_=/:\\s*([.\\d][.\\w]*)\\s+([.\\d][.\\w]*)\\s+([.\\d][.\\w]*)\\s+([.\\d][.\\w]*)/g;goog.i18n.bidi.leftRe_=/left/gi;goog.i18n.bidi.rightRe_=/right/gi;goog.i18n.bidi.tempRe_=/%%%%/g;\ngoog.i18n.bidi.mirrorCSS=function(a){return a.replace(goog.i18n.bidi.dimensionsRe_,":$1 $4 $3 $2").replace(goog.i18n.bidi.leftRe_,"%%%%").replace(goog.i18n.bidi.rightRe_,goog.i18n.bidi.LEFT).replace(goog.i18n.bidi.tempRe_,goog.i18n.bidi.RIGHT)};goog.i18n.bidi.doubleQuoteSubstituteRe_=/([\\u0591-\\u05f2])"/g;goog.i18n.bidi.singleQuoteSubstituteRe_=/([\\u0591-\\u05f2])\'/g;\ngoog.i18n.bidi.normalizeHebrewQuote=function(a){return a.replace(goog.i18n.bidi.doubleQuoteSubstituteRe_,"$1\\u05f4").replace(goog.i18n.bidi.singleQuoteSubstituteRe_,"$1\\u05f3")};goog.i18n.bidi.wordSeparatorRe_=/\\s+/;goog.i18n.bidi.hasNumeralsRe_=/[\\d\\u06f0-\\u06f9]/;goog.i18n.bidi.rtlDetectionThreshold_=.4;\ngoog.i18n.bidi.estimateDirection=function(a,b){for(var c=0,d=0,e=!1,f=goog.i18n.bidi.stripHtmlIfNeeded_(a,b).split(goog.i18n.bidi.wordSeparatorRe_),g=0;g<f.length;g++){var h=f[g];goog.i18n.bidi.startsWithRtl(h)?(c++,d++):goog.i18n.bidi.isRequiredLtrRe_.test(h)?e=!0:goog.i18n.bidi.hasAnyLtr(h)?d++:goog.i18n.bidi.hasNumeralsRe_.test(h)&&(e=!0)}return 0==d?e?goog.i18n.bidi.Dir.LTR:goog.i18n.bidi.Dir.NEUTRAL:c/d>goog.i18n.bidi.rtlDetectionThreshold_?goog.i18n.bidi.Dir.RTL:goog.i18n.bidi.Dir.LTR};\ngoog.i18n.bidi.detectRtlDirectionality=function(a,b){return goog.i18n.bidi.estimateDirection(a,b)==goog.i18n.bidi.Dir.RTL};goog.i18n.bidi.setElementDirAndAlign=function(a,b){a&&(b=goog.i18n.bidi.toDir(b))&&(a.style.textAlign=b==goog.i18n.bidi.Dir.RTL?goog.i18n.bidi.RIGHT:goog.i18n.bidi.LEFT,a.dir=b==goog.i18n.bidi.Dir.RTL?"rtl":"ltr")};\ngoog.i18n.bidi.setElementDirByTextDirectionality=function(a,b){switch(goog.i18n.bidi.estimateDirection(b)){case goog.i18n.bidi.Dir.LTR:a.dir="ltr";break;case goog.i18n.bidi.Dir.RTL:a.dir="rtl";break;default:a.removeAttribute("dir")}};goog.i18n.bidi.DirectionalString=function(){};goog.html.SafeUrl=function(){this.privateDoNotAccessOrElseSafeHtmlWrappedValue_="";this.SAFE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=goog.html.SafeUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_};goog.html.SafeUrl.INNOCUOUS_STRING="about:invalid#zClosurez";goog.html.SafeUrl.prototype.implementsGoogStringTypedString=!0;goog.html.SafeUrl.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseSafeHtmlWrappedValue_};\ngoog.html.SafeUrl.prototype.implementsGoogI18nBidiDirectionalString=!0;goog.html.SafeUrl.prototype.getDirection=function(){return goog.i18n.bidi.Dir.LTR};goog.DEBUG&&(goog.html.SafeUrl.prototype.toString=function(){return"SafeUrl{"+this.privateDoNotAccessOrElseSafeHtmlWrappedValue_+"}"});\ngoog.html.SafeUrl.unwrap=function(a){if(a instanceof goog.html.SafeUrl&&a.constructor===goog.html.SafeUrl&&a.SAFE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===goog.html.SafeUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_)return a.privateDoNotAccessOrElseSafeHtmlWrappedValue_;goog.asserts.fail("expected object of type SafeUrl, got \'"+a+"\' of type "+goog.typeOf(a));return"type_error:SafeUrl"};goog.html.SafeUrl.fromConstant=function(a){return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(goog.string.Const.unwrap(a))};\ngoog.html.SAFE_MIME_TYPE_PATTERN_=/^(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm))$/i;goog.html.SafeUrl.fromBlob=function(a){a=goog.html.SAFE_MIME_TYPE_PATTERN_.test(a.type)?goog.fs.url.createObjectUrl(a):goog.html.SafeUrl.INNOCUOUS_STRING;return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(a)};goog.html.DATA_URL_PATTERN_=/^data:([^;,]*);base64,[a-z0-9+\\/]+=*$/i;\ngoog.html.SafeUrl.fromDataUrl=function(a){var b=a.match(goog.html.DATA_URL_PATTERN_),b=b&&goog.html.SAFE_MIME_TYPE_PATTERN_.test(b[1]);return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(b?a:goog.html.SafeUrl.INNOCUOUS_STRING)};goog.html.SafeUrl.fromTelUrl=function(a){goog.string.caseInsensitiveStartsWith(a,"tel:")||(a=goog.html.SafeUrl.INNOCUOUS_STRING);return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(a)};goog.html.SAFE_URL_PATTERN_=/^(?:(?:https?|mailto|ftp):|[^&:/?#]*(?:[/?#]|$))/i;\ngoog.html.SafeUrl.sanitize=function(a){if(a instanceof goog.html.SafeUrl)return a;a=a.implementsGoogStringTypedString?a.getTypedStringValue():String(a);goog.html.SAFE_URL_PATTERN_.test(a)||(a=goog.html.SafeUrl.INNOCUOUS_STRING);return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(a)};goog.html.SafeUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_={};\ngoog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse=function(a){var b=new goog.html.SafeUrl;b.privateDoNotAccessOrElseSafeHtmlWrappedValue_=a;return b};goog.html.SafeUrl.ABOUT_BLANK=goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse("about:blank");goog.html.TrustedResourceUrl=function(){this.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_="";this.TRUSTED_RESOURCE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=goog.html.TrustedResourceUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_};goog.html.TrustedResourceUrl.prototype.implementsGoogStringTypedString=!0;goog.html.TrustedResourceUrl.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_};\ngoog.html.TrustedResourceUrl.prototype.implementsGoogI18nBidiDirectionalString=!0;goog.html.TrustedResourceUrl.prototype.getDirection=function(){return goog.i18n.bidi.Dir.LTR};goog.DEBUG&&(goog.html.TrustedResourceUrl.prototype.toString=function(){return"TrustedResourceUrl{"+this.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_+"}"});\ngoog.html.TrustedResourceUrl.unwrap=function(a){if(a instanceof goog.html.TrustedResourceUrl&&a.constructor===goog.html.TrustedResourceUrl&&a.TRUSTED_RESOURCE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===goog.html.TrustedResourceUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_)return a.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_;goog.asserts.fail("expected object of type TrustedResourceUrl, got \'"+a+"\' of type "+goog.typeOf(a));return"type_error:TrustedResourceUrl"};\ngoog.html.TrustedResourceUrl.format=function(a,b){var c=goog.string.Const.unwrap(a);if(!goog.html.TrustedResourceUrl.BASE_URL_.test(c))throw Error("Invalid TrustedResourceUrl format: "+c);var d=c.replace(goog.html.TrustedResourceUrl.FORMAT_MARKER_,function(a,d){if(!Object.prototype.hasOwnProperty.call(b,d))throw Error(\'Found marker, "\'+d+\'", in format string, "\'+c+\'", but no valid label mapping found in args: \'+JSON.stringify(b));var e=b[d];return e instanceof goog.string.Const?goog.string.Const.unwrap(e):\nencodeURIComponent(String(e))});return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(d)};goog.html.TrustedResourceUrl.FORMAT_MARKER_=/%{(\\w+)}/g;goog.html.TrustedResourceUrl.SCHEME_AND_ORIGIN_="(?:(?:https:)?//[0-9a-z.:[\\\\]-]+)?";goog.html.TrustedResourceUrl.BASE_ABSOLUTE_PATH_="(?:/[0-9a-z_~-]+(?:[/#?]|$))";\ngoog.html.TrustedResourceUrl.BASE_URL_=new RegExp("^"+goog.html.TrustedResourceUrl.SCHEME_AND_ORIGIN_+goog.html.TrustedResourceUrl.BASE_ABSOLUTE_PATH_,"i");goog.html.TrustedResourceUrl.fromConstant=function(a){return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(goog.string.Const.unwrap(a))};goog.html.TrustedResourceUrl.fromConstants=function(a){for(var b="",c=0;c<a.length;c++)b+=goog.string.Const.unwrap(a[c]);return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(b)};\ngoog.html.TrustedResourceUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_={};goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse=function(a){var b=new goog.html.TrustedResourceUrl;b.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_=a;return b};goog.html.SafeHtml=function(){this.privateDoNotAccessOrElseSafeHtmlWrappedValue_="";this.SAFE_HTML_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=goog.html.SafeHtml.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_;this.dir_=null};goog.html.SafeHtml.prototype.implementsGoogI18nBidiDirectionalString=!0;goog.html.SafeHtml.prototype.getDirection=function(){return this.dir_};goog.html.SafeHtml.prototype.implementsGoogStringTypedString=!0;goog.html.SafeHtml.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseSafeHtmlWrappedValue_};\ngoog.DEBUG&&(goog.html.SafeHtml.prototype.toString=function(){return"SafeHtml{"+this.privateDoNotAccessOrElseSafeHtmlWrappedValue_+"}"});\ngoog.html.SafeHtml.unwrap=function(a){if(a instanceof goog.html.SafeHtml&&a.constructor===goog.html.SafeHtml&&a.SAFE_HTML_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===goog.html.SafeHtml.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_)return a.privateDoNotAccessOrElseSafeHtmlWrappedValue_;goog.asserts.fail("expected object of type SafeHtml, got \'"+a+"\' of type "+goog.typeOf(a));return"type_error:SafeHtml"};\ngoog.html.SafeHtml.htmlEscape=function(a){if(a instanceof goog.html.SafeHtml)return a;var b=null;a.implementsGoogI18nBidiDirectionalString&&(b=a.getDirection());a=a.implementsGoogStringTypedString?a.getTypedStringValue():String(a);return goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(goog.string.htmlEscape(a),b)};\ngoog.html.SafeHtml.htmlEscapePreservingNewlines=function(a){if(a instanceof goog.html.SafeHtml)return a;a=goog.html.SafeHtml.htmlEscape(a);return goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(goog.string.newLineToBr(goog.html.SafeHtml.unwrap(a)),a.getDirection())};\ngoog.html.SafeHtml.htmlEscapePreservingNewlinesAndSpaces=function(a){if(a instanceof goog.html.SafeHtml)return a;a=goog.html.SafeHtml.htmlEscape(a);return goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(goog.string.whitespaceEscape(goog.html.SafeHtml.unwrap(a)),a.getDirection())};goog.html.SafeHtml.from=goog.html.SafeHtml.htmlEscape;goog.html.SafeHtml.VALID_NAMES_IN_TAG_=/^[a-zA-Z0-9-]+$/;\ngoog.html.SafeHtml.URL_ATTRIBUTES_={action:!0,cite:!0,data:!0,formaction:!0,href:!0,manifest:!0,poster:!0,src:!0};goog.html.SafeHtml.NOT_ALLOWED_TAG_NAMES_={APPLET:!0,BASE:!0,EMBED:!0,IFRAME:!0,LINK:!0,MATH:!0,META:!0,OBJECT:!0,SCRIPT:!0,STYLE:!0,SVG:!0,TEMPLATE:!0};goog.html.SafeHtml.create=function(a,b,c){goog.html.SafeHtml.verifyTagName(String(a));return goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse(String(a),b,c)};\ngoog.html.SafeHtml.verifyTagName=function(a){if(!goog.html.SafeHtml.VALID_NAMES_IN_TAG_.test(a))throw Error("Invalid tag name <"+a+">.");if(a.toUpperCase()in goog.html.SafeHtml.NOT_ALLOWED_TAG_NAMES_)throw Error("Tag name <"+a+"> is not allowed for SafeHtml.");};\ngoog.html.SafeHtml.createIframe=function(a,b,c,d){a&&goog.html.TrustedResourceUrl.unwrap(a);var e={};e.src=a||null;e.srcdoc=b&&goog.html.SafeHtml.unwrap(b);a=goog.html.SafeHtml.combineAttributes(e,{sandbox:""},c);return goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("iframe",a,d)};\ngoog.html.SafeHtml.createSandboxIframe=function(a,b,c,d){if(!goog.html.SafeHtml.canUseSandboxIframe())throw Error("The browser does not support sandboxed iframes.");var e={};e.src=a?goog.html.SafeUrl.unwrap(goog.html.SafeUrl.sanitize(a)):null;e.srcdoc=b||null;e.sandbox="";a=goog.html.SafeHtml.combineAttributes(e,{},c);return goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("iframe",a,d)};\ngoog.html.SafeHtml.canUseSandboxIframe=function(){return goog.global.HTMLIFrameElement&&"sandbox"in goog.global.HTMLIFrameElement.prototype};goog.html.SafeHtml.createScriptSrc=function(a,b){goog.html.TrustedResourceUrl.unwrap(a);var c=goog.html.SafeHtml.combineAttributes({src:a},{},b);return goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("script",c)};\ngoog.html.SafeHtml.createStyle=function(a,b){var c=goog.html.SafeHtml.combineAttributes({type:"text/css"},{},b),d="";a=goog.array.concat(a);for(var e=0;e<a.length;e++)d+=goog.html.SafeStyleSheet.unwrap(a[e]);d=goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(d,goog.i18n.bidi.Dir.NEUTRAL);return goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("style",c,d)};\ngoog.html.SafeHtml.createMetaRefresh=function(a,b){var c=goog.html.SafeUrl.unwrap(goog.html.SafeUrl.sanitize(a));(goog.labs.userAgent.browser.isIE()||goog.labs.userAgent.browser.isEdge())&&goog.string.contains(c,";")&&(c="\'"+c.replace(/\'/g,"%27")+"\'");return goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("meta",{"http-equiv":"refresh",content:(b||0)+"; url="+c})};\ngoog.html.SafeHtml.getAttrNameAndValue_=function(a,b,c){if(c instanceof goog.string.Const)c=goog.string.Const.unwrap(c);else if("style"==b.toLowerCase())c=goog.html.SafeHtml.getStyleValue_(c);else{if(/^on/i.test(b))throw Error(\'Attribute "\'+b+\'" requires goog.string.Const value, "\'+c+\'" given.\');if(b.toLowerCase()in goog.html.SafeHtml.URL_ATTRIBUTES_)if(c instanceof goog.html.TrustedResourceUrl)c=goog.html.TrustedResourceUrl.unwrap(c);else if(c instanceof goog.html.SafeUrl)c=goog.html.SafeUrl.unwrap(c);\nelse if(goog.isString(c))c=goog.html.SafeUrl.sanitize(c).getTypedStringValue();else throw Error(\'Attribute "\'+b+\'" on tag "\'+a+\'" requires goog.html.SafeUrl, goog.string.Const, or string, value "\'+c+\'" given.\');}c.implementsGoogStringTypedString&&(c=c.getTypedStringValue());goog.asserts.assert(goog.isString(c)||goog.isNumber(c),"String or number value expected, got "+typeof c+" with value: "+c);return b+\'="\'+goog.string.htmlEscape(String(c))+\'"\'};\ngoog.html.SafeHtml.getStyleValue_=function(a){if(!goog.isObject(a))throw Error(\'The "style" attribute requires goog.html.SafeStyle or map of style properties, \'+typeof a+" given: "+a);a instanceof goog.html.SafeStyle||(a=goog.html.SafeStyle.create(a));return goog.html.SafeStyle.unwrap(a)};goog.html.SafeHtml.createWithDir=function(a,b,c,d){b=goog.html.SafeHtml.create(b,c,d);b.dir_=a;return b};\ngoog.html.SafeHtml.concat=function(a){var b=goog.i18n.bidi.Dir.NEUTRAL,c="",d=function(a){goog.isArray(a)?goog.array.forEach(a,d):(a=goog.html.SafeHtml.htmlEscape(a),c+=goog.html.SafeHtml.unwrap(a),a=a.getDirection(),b==goog.i18n.bidi.Dir.NEUTRAL?b=a:a!=goog.i18n.bidi.Dir.NEUTRAL&&b!=a&&(b=null))};goog.array.forEach(arguments,d);return goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(c,b)};\ngoog.html.SafeHtml.concatWithDir=function(a,b){var c=goog.html.SafeHtml.concat(goog.array.slice(arguments,1));c.dir_=a;return c};goog.html.SafeHtml.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_={};goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse=function(a,b){return(new goog.html.SafeHtml).initSecurityPrivateDoNotAccessOrElse_(a,b)};goog.html.SafeHtml.prototype.initSecurityPrivateDoNotAccessOrElse_=function(a,b){this.privateDoNotAccessOrElseSafeHtmlWrappedValue_=a;this.dir_=b;return this};\ngoog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse=function(a,b,c){var d=null,e;e="<"+a+goog.html.SafeHtml.stringifyAttributes(a,b);goog.isDefAndNotNull(c)?goog.isArray(c)||(c=[c]):c=[];goog.dom.tags.isVoidTag(a.toLowerCase())?(goog.asserts.assert(!c.length,"Void tag <"+a+"> does not allow content."),e+=">"):(d=goog.html.SafeHtml.concat(c),e+=">"+goog.html.SafeHtml.unwrap(d)+"</"+a+">",d=d.getDirection());(a=b&&b.dir)&&(d=/^(ltr|rtl|auto)$/i.test(a)?goog.i18n.bidi.Dir.NEUTRAL:null);\nreturn goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(e,d)};goog.html.SafeHtml.stringifyAttributes=function(a,b){var c="";if(b)for(var d in b){if(!goog.html.SafeHtml.VALID_NAMES_IN_TAG_.test(d))throw Error(\'Invalid attribute name "\'+d+\'".\');var e=b[d];goog.isDefAndNotNull(e)&&(c+=" "+goog.html.SafeHtml.getAttrNameAndValue_(a,d,e))}return c};\ngoog.html.SafeHtml.combineAttributes=function(a,b,c){var d={},e;for(e in a)goog.asserts.assert(e.toLowerCase()==e,"Must be lower case"),d[e]=a[e];for(e in b)goog.asserts.assert(e.toLowerCase()==e,"Must be lower case"),d[e]=b[e];for(e in c){var f=e.toLowerCase();if(f in a)throw Error(\'Cannot override "\'+f+\'" attribute, got "\'+e+\'" with value "\'+c[e]+\'"\');f in b&&delete d[f];d[e]=c[e]}return d};\ngoog.html.SafeHtml.DOCTYPE_HTML=goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse("<!DOCTYPE html>",goog.i18n.bidi.Dir.NEUTRAL);goog.html.SafeHtml.EMPTY=goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse("",goog.i18n.bidi.Dir.NEUTRAL);goog.html.SafeHtml.BR=goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse("<br>",goog.i18n.bidi.Dir.NEUTRAL);goog.dom.safe={};goog.dom.safe.InsertAdjacentHtmlPosition={AFTERBEGIN:"afterbegin",AFTEREND:"afterend",BEFOREBEGIN:"beforebegin",BEFOREEND:"beforeend"};goog.dom.safe.insertAdjacentHtml=function(a,b,c){a.insertAdjacentHTML(b,goog.html.SafeHtml.unwrap(c))};goog.dom.safe.SET_INNER_HTML_DISALLOWED_TAGS_={MATH:!0,SCRIPT:!0,STYLE:!0,SVG:!0,TEMPLATE:!0};\ngoog.dom.safe.setInnerHtml=function(a,b){if(goog.asserts.ENABLE_ASSERTS){var c=a.tagName.toUpperCase();if(goog.dom.safe.SET_INNER_HTML_DISALLOWED_TAGS_[c])throw Error("goog.dom.safe.setInnerHtml cannot be used to set content of "+a.tagName+".");}a.innerHTML=goog.html.SafeHtml.unwrap(b)};goog.dom.safe.setOuterHtml=function(a,b){a.outerHTML=goog.html.SafeHtml.unwrap(b)};goog.dom.safe.setStyle=function(a,b){a.style.cssText=goog.html.SafeStyle.unwrap(b)};goog.dom.safe.documentWrite=function(a,b){a.write(goog.html.SafeHtml.unwrap(b))};\ngoog.dom.safe.setAnchorHref=function(a,b){goog.dom.safe.assertIsHTMLAnchorElement_(a);var c;c=b instanceof goog.html.SafeUrl?b:goog.html.SafeUrl.sanitize(b);a.href=goog.html.SafeUrl.unwrap(c)};goog.dom.safe.setImageSrc=function(a,b){goog.dom.safe.assertIsHTMLImageElement_(a);var c;c=b instanceof goog.html.SafeUrl?b:goog.html.SafeUrl.sanitize(b);a.src=goog.html.SafeUrl.unwrap(c)};goog.dom.safe.setEmbedSrc=function(a,b){goog.dom.safe.assertIsHTMLEmbedElement_(a);a.src=goog.html.TrustedResourceUrl.unwrap(b)};\ngoog.dom.safe.setFrameSrc=function(a,b){goog.dom.safe.assertIsHTMLFrameElement_(a);a.src=goog.html.TrustedResourceUrl.unwrap(b)};goog.dom.safe.setIframeSrc=function(a,b){goog.dom.safe.assertIsHTMLIFrameElement_(a);a.src=goog.html.TrustedResourceUrl.unwrap(b)};\ngoog.dom.safe.setLinkHrefAndRel=function(a,b,c){goog.dom.safe.assertIsHTMLLinkElement_(a);a.rel=c;goog.string.caseInsensitiveContains(c,"stylesheet")?(goog.asserts.assert(b instanceof goog.html.TrustedResourceUrl,\'URL must be TrustedResourceUrl because "rel" contains "stylesheet"\'),a.href=goog.html.TrustedResourceUrl.unwrap(b)):a.href=b instanceof goog.html.TrustedResourceUrl?goog.html.TrustedResourceUrl.unwrap(b):b instanceof goog.html.SafeUrl?goog.html.SafeUrl.unwrap(b):goog.html.SafeUrl.sanitize(b).getTypedStringValue()};\ngoog.dom.safe.setObjectData=function(a,b){goog.dom.safe.assertIsHTMLObjectElement_(a);a.data=goog.html.TrustedResourceUrl.unwrap(b)};goog.dom.safe.setScriptSrc=function(a,b){goog.dom.safe.assertIsHTMLScriptElement_(a);a.src=goog.html.TrustedResourceUrl.unwrap(b)};goog.dom.safe.setLocationHref=function(a,b){goog.dom.safe.assertIsLocation_(a);var c;c=b instanceof goog.html.SafeUrl?b:goog.html.SafeUrl.sanitize(b);a.href=goog.html.SafeUrl.unwrap(c)};\ngoog.dom.safe.openInWindow=function(a,b,c,d,e){a=a instanceof goog.html.SafeUrl?a:goog.html.SafeUrl.sanitize(a);return(b||window).open(goog.html.SafeUrl.unwrap(a),c?goog.string.Const.unwrap(c):"",d,e)};\ngoog.dom.safe.assertIsLocation_=function(a){goog.asserts.ENABLE_ASSERTS&&"undefined"!=typeof Location&&"undefined"!=typeof Element&&goog.asserts.assert(a&&(a instanceof Location||!(a instanceof Element)),"Argument is not a Location (or a non-Element mock); got: %s",goog.dom.safe.debugStringForType_(a));return a};\ngoog.dom.safe.assertIsHTMLAnchorElement_=function(a){goog.asserts.ENABLE_ASSERTS&&"undefined"!=typeof HTMLAnchorElement&&"undefined"!=typeof Location&&"undefined"!=typeof Element&&goog.asserts.assert(a&&(a instanceof HTMLAnchorElement||!(a instanceof Location||a instanceof Element)),"Argument is not a HTMLAnchorElement (or a non-Element mock); got: %s",goog.dom.safe.debugStringForType_(a));return a};\ngoog.dom.safe.assertIsHTMLLinkElement_=function(a){goog.asserts.ENABLE_ASSERTS&&"undefined"!=typeof HTMLLinkElement&&"undefined"!=typeof Location&&"undefined"!=typeof Element&&goog.asserts.assert(a&&(a instanceof HTMLLinkElement||!(a instanceof Location||a instanceof Element)),"Argument is not a HTMLLinkElement (or a non-Element mock); got: %s",goog.dom.safe.debugStringForType_(a));return a};\ngoog.dom.safe.assertIsHTMLImageElement_=function(a){goog.asserts.ENABLE_ASSERTS&&"undefined"!=typeof HTMLImageElement&&"undefined"!=typeof Element&&goog.asserts.assert(a&&(a instanceof HTMLImageElement||!(a instanceof Element)),"Argument is not a HTMLImageElement (or a non-Element mock); got: %s",goog.dom.safe.debugStringForType_(a));return a};\ngoog.dom.safe.assertIsHTMLEmbedElement_=function(a){goog.asserts.ENABLE_ASSERTS&&"undefined"!=typeof HTMLEmbedElement&&"undefined"!=typeof Element&&goog.asserts.assert(a&&(a instanceof HTMLEmbedElement||!(a instanceof Element)),"Argument is not a HTMLEmbedElement (or a non-Element mock); got: %s",goog.dom.safe.debugStringForType_(a));return a};\ngoog.dom.safe.assertIsHTMLFrameElement_=function(a){goog.asserts.ENABLE_ASSERTS&&"undefined"!=typeof HTMLFrameElement&&"undefined"!=typeof Element&&goog.asserts.assert(a&&(a instanceof HTMLFrameElement||!(a instanceof Element)),"Argument is not a HTMLFrameElement (or a non-Element mock); got: %s",goog.dom.safe.debugStringForType_(a));return a};\ngoog.dom.safe.assertIsHTMLIFrameElement_=function(a){goog.asserts.ENABLE_ASSERTS&&"undefined"!=typeof HTMLIFrameElement&&"undefined"!=typeof Element&&goog.asserts.assert(a&&(a instanceof HTMLIFrameElement||!(a instanceof Element)),"Argument is not a HTMLIFrameElement (or a non-Element mock); got: %s",goog.dom.safe.debugStringForType_(a));return a};\ngoog.dom.safe.assertIsHTMLObjectElement_=function(a){goog.asserts.ENABLE_ASSERTS&&"undefined"!=typeof HTMLObjectElement&&"undefined"!=typeof Element&&goog.asserts.assert(a&&(a instanceof HTMLObjectElement||!(a instanceof Element)),"Argument is not a HTMLObjectElement (or a non-Element mock); got: %s",goog.dom.safe.debugStringForType_(a));return a};\ngoog.dom.safe.assertIsHTMLScriptElement_=function(a){goog.asserts.ENABLE_ASSERTS&&"undefined"!=typeof HTMLScriptElement&&"undefined"!=typeof Element&&goog.asserts.assert(a&&(a instanceof HTMLScriptElement||!(a instanceof Element)),"Argument is not a HTMLScriptElement (or a non-Element mock); got: %s",goog.dom.safe.debugStringForType_(a));return a};\ngoog.dom.safe.debugStringForType_=function(a){return goog.isObject(a)?a.constructor.displayName||a.constructor.name||Object.prototype.toString.call(a):void 0===a?"undefined":null===a?"null":typeof a};goog.html.SafeScript=function(){this.privateDoNotAccessOrElseSafeScriptWrappedValue_="";this.SAFE_SCRIPT_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=goog.html.SafeScript.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_};goog.html.SafeScript.prototype.implementsGoogStringTypedString=!0;goog.html.SafeScript.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_={};goog.html.SafeScript.fromConstant=function(a){a=goog.string.Const.unwrap(a);return 0===a.length?goog.html.SafeScript.EMPTY:goog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse(a)};\ngoog.html.SafeScript.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseSafeScriptWrappedValue_};goog.DEBUG&&(goog.html.SafeScript.prototype.toString=function(){return"SafeScript{"+this.privateDoNotAccessOrElseSafeScriptWrappedValue_+"}"});\ngoog.html.SafeScript.unwrap=function(a){if(a instanceof goog.html.SafeScript&&a.constructor===goog.html.SafeScript&&a.SAFE_SCRIPT_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===goog.html.SafeScript.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_)return a.privateDoNotAccessOrElseSafeScriptWrappedValue_;goog.asserts.fail("expected object of type SafeScript, got \'"+a+"\' of type "+goog.typeOf(a));return"type_error:SafeScript"};goog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse=function(a){return(new goog.html.SafeScript).initSecurityPrivateDoNotAccessOrElse_(a)};\ngoog.html.SafeScript.prototype.initSecurityPrivateDoNotAccessOrElse_=function(a){this.privateDoNotAccessOrElseSafeScriptWrappedValue_=a;return this};goog.html.SafeScript.EMPTY=goog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse("");goog.html.uncheckedconversions={};goog.html.uncheckedconversions.safeHtmlFromStringKnownToSatisfyTypeContract=function(a,b,c){goog.asserts.assertString(goog.string.Const.unwrap(a),"must provide justification");goog.asserts.assert(!goog.string.isEmptyOrWhitespace(goog.string.Const.unwrap(a)),"must provide non-empty justification");return goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(b,c||null)};\ngoog.html.uncheckedconversions.safeScriptFromStringKnownToSatisfyTypeContract=function(a,b){goog.asserts.assertString(goog.string.Const.unwrap(a),"must provide justification");goog.asserts.assert(!goog.string.isEmpty(goog.string.Const.unwrap(a)),"must provide non-empty justification");return goog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse(b)};\ngoog.html.uncheckedconversions.safeStyleFromStringKnownToSatisfyTypeContract=function(a,b){goog.asserts.assertString(goog.string.Const.unwrap(a),"must provide justification");goog.asserts.assert(!goog.string.isEmptyOrWhitespace(goog.string.Const.unwrap(a)),"must provide non-empty justification");return goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(b)};\ngoog.html.uncheckedconversions.safeStyleSheetFromStringKnownToSatisfyTypeContract=function(a,b){goog.asserts.assertString(goog.string.Const.unwrap(a),"must provide justification");goog.asserts.assert(!goog.string.isEmptyOrWhitespace(goog.string.Const.unwrap(a)),"must provide non-empty justification");return goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(b)};\ngoog.html.uncheckedconversions.safeUrlFromStringKnownToSatisfyTypeContract=function(a,b){goog.asserts.assertString(goog.string.Const.unwrap(a),"must provide justification");goog.asserts.assert(!goog.string.isEmptyOrWhitespace(goog.string.Const.unwrap(a)),"must provide non-empty justification");return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(b)};\ngoog.html.uncheckedconversions.trustedResourceUrlFromStringKnownToSatisfyTypeContract=function(a,b){goog.asserts.assertString(goog.string.Const.unwrap(a),"must provide justification");goog.asserts.assert(!goog.string.isEmptyOrWhitespace(goog.string.Const.unwrap(a)),"must provide non-empty justification");return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(b)};goog.math.Coordinate=function(a,b){this.x=goog.isDef(a)?a:0;this.y=goog.isDef(b)?b:0};goog.math.Coordinate.prototype.clone=function(){return new goog.math.Coordinate(this.x,this.y)};goog.DEBUG&&(goog.math.Coordinate.prototype.toString=function(){return"("+this.x+", "+this.y+")"});goog.math.Coordinate.prototype.equals=function(a){return a instanceof goog.math.Coordinate&&goog.math.Coordinate.equals(this,a)};goog.math.Coordinate.equals=function(a,b){return a==b?!0:a&&b?a.x==b.x&&a.y==b.y:!1};\ngoog.math.Coordinate.distance=function(a,b){var c=a.x-b.x,d=a.y-b.y;return Math.sqrt(c*c+d*d)};goog.math.Coordinate.magnitude=function(a){return Math.sqrt(a.x*a.x+a.y*a.y)};goog.math.Coordinate.azimuth=function(a){return goog.math.angle(0,0,a.x,a.y)};goog.math.Coordinate.squaredDistance=function(a,b){var c=a.x-b.x,d=a.y-b.y;return c*c+d*d};goog.math.Coordinate.difference=function(a,b){return new goog.math.Coordinate(a.x-b.x,a.y-b.y)};\ngoog.math.Coordinate.sum=function(a,b){return new goog.math.Coordinate(a.x+b.x,a.y+b.y)};goog.math.Coordinate.prototype.ceil=function(){this.x=Math.ceil(this.x);this.y=Math.ceil(this.y);return this};goog.math.Coordinate.prototype.floor=function(){this.x=Math.floor(this.x);this.y=Math.floor(this.y);return this};goog.math.Coordinate.prototype.round=function(){this.x=Math.round(this.x);this.y=Math.round(this.y);return this};\ngoog.math.Coordinate.prototype.translate=function(a,b){a instanceof goog.math.Coordinate?(this.x+=a.x,this.y+=a.y):(this.x+=Number(a),goog.isNumber(b)&&(this.y+=b));return this};goog.math.Coordinate.prototype.scale=function(a,b){var c=goog.isNumber(b)?b:a;this.x*=a;this.y*=c;return this};goog.math.Coordinate.prototype.rotateRadians=function(a,b){var c=b||new goog.math.Coordinate(0,0),d=this.x,e=this.y,f=Math.cos(a),g=Math.sin(a);this.x=(d-c.x)*f-(e-c.y)*g+c.x;this.y=(d-c.x)*g+(e-c.y)*f+c.y};\ngoog.math.Coordinate.prototype.rotateDegrees=function(a,b){this.rotateRadians(goog.math.toRadians(a),b)};goog.math.Size=function(a,b){this.width=a;this.height=b};goog.math.Size.equals=function(a,b){return a==b?!0:a&&b?a.width==b.width&&a.height==b.height:!1};goog.math.Size.prototype.clone=function(){return new goog.math.Size(this.width,this.height)};goog.DEBUG&&(goog.math.Size.prototype.toString=function(){return"("+this.width+" x "+this.height+")"});goog.math.Size.prototype.getLongest=function(){return Math.max(this.width,this.height)};\ngoog.math.Size.prototype.getShortest=function(){return Math.min(this.width,this.height)};goog.math.Size.prototype.area=function(){return this.width*this.height};goog.math.Size.prototype.perimeter=function(){return 2*(this.width+this.height)};goog.math.Size.prototype.aspectRatio=function(){return this.width/this.height};goog.math.Size.prototype.isEmpty=function(){return!this.area()};goog.math.Size.prototype.ceil=function(){this.width=Math.ceil(this.width);this.height=Math.ceil(this.height);return this};\ngoog.math.Size.prototype.fitsInside=function(a){return this.width<=a.width&&this.height<=a.height};goog.math.Size.prototype.floor=function(){this.width=Math.floor(this.width);this.height=Math.floor(this.height);return this};goog.math.Size.prototype.round=function(){this.width=Math.round(this.width);this.height=Math.round(this.height);return this};goog.math.Size.prototype.scale=function(a,b){var c=goog.isNumber(b)?b:a;this.width*=a;this.height*=c;return this};\ngoog.math.Size.prototype.scaleToCover=function(a){a=this.aspectRatio()<=a.aspectRatio()?a.width/this.width:a.height/this.height;return this.scale(a)};goog.math.Size.prototype.scaleToFit=function(a){a=this.aspectRatio()>a.aspectRatio()?a.width/this.width:a.height/this.height;return this.scale(a)};goog.dom.ASSUME_QUIRKS_MODE=!1;goog.dom.ASSUME_STANDARDS_MODE=!1;goog.dom.COMPAT_MODE_KNOWN_=goog.dom.ASSUME_QUIRKS_MODE||goog.dom.ASSUME_STANDARDS_MODE;goog.dom.getDomHelper=function(a){return a?new goog.dom.DomHelper(goog.dom.getOwnerDocument(a)):goog.dom.defaultDomHelper_||(goog.dom.defaultDomHelper_=new goog.dom.DomHelper)};goog.dom.getDocument=function(){return document};goog.dom.getElement=function(a){return goog.dom.getElementHelper_(document,a)};\ngoog.dom.getElementHelper_=function(a,b){return goog.isString(b)?a.getElementById(b):b};goog.dom.getRequiredElement=function(a){return goog.dom.getRequiredElementHelper_(document,a)};goog.dom.getRequiredElementHelper_=function(a,b){goog.asserts.assertString(b);var c=goog.dom.getElementHelper_(a,b);return c=goog.asserts.assertElement(c,"No element found with id: "+b)};goog.dom.$=goog.dom.getElement;goog.dom.getElementsByTagName=function(a,b){return(b||document).getElementsByTagName(String(a))};\ngoog.dom.getElementsByTagNameAndClass=function(a,b,c){return goog.dom.getElementsByTagNameAndClass_(document,a,b,c)};goog.dom.getElementsByClass=function(a,b){var c=b||document;return goog.dom.canUseQuerySelector_(c)?c.querySelectorAll("."+a):goog.dom.getElementsByTagNameAndClass_(document,"*",a,b)};\ngoog.dom.getElementByClass=function(a,b){var c=b||document;return(c.getElementsByClassName?c.getElementsByClassName(a)[0]:goog.dom.canUseQuerySelector_(c)?c.querySelector("."+a):goog.dom.getElementsByTagNameAndClass_(document,"*",a,b)[0])||null};goog.dom.getRequiredElementByClass=function(a,b){var c=goog.dom.getElementByClass(a,b);return goog.asserts.assert(c,"No element found with className: "+a)};goog.dom.canUseQuerySelector_=function(a){return!(!a.querySelectorAll||!a.querySelector)};\ngoog.dom.getElementsByTagNameAndClass_=function(a,b,c,d){a=d||a;b=b&&"*"!=b?String(b).toUpperCase():"";if(goog.dom.canUseQuerySelector_(a)&&(b||c))return a.querySelectorAll(b+(c?"."+c:""));if(c&&a.getElementsByClassName){a=a.getElementsByClassName(c);if(b){d={};for(var e=0,f=0,g;g=a[f];f++)b==g.nodeName&&(d[e++]=g);d.length=e;return d}return a}a=a.getElementsByTagName(b||"*");if(c){d={};for(f=e=0;g=a[f];f++)b=g.className,"function"==typeof b.split&&goog.array.contains(b.split(/\\s+/),c)&&(d[e++]=g);\nd.length=e;return d}return a};goog.dom.$$=goog.dom.getElementsByTagNameAndClass;goog.dom.setProperties=function(a,b){goog.object.forEach(b,function(b,d){"style"==d?a.style.cssText=b:"class"==d?a.className=b:"for"==d?a.htmlFor=b:goog.dom.DIRECT_ATTRIBUTE_MAP_.hasOwnProperty(d)?a.setAttribute(goog.dom.DIRECT_ATTRIBUTE_MAP_[d],b):goog.string.startsWith(d,"aria-")||goog.string.startsWith(d,"data-")?a.setAttribute(d,b):a[d]=b})};\ngoog.dom.DIRECT_ATTRIBUTE_MAP_={cellpadding:"cellPadding",cellspacing:"cellSpacing",colspan:"colSpan",frameborder:"frameBorder",height:"height",maxlength:"maxLength",nonce:"nonce",role:"role",rowspan:"rowSpan",type:"type",usemap:"useMap",valign:"vAlign",width:"width"};goog.dom.getViewportSize=function(a){return goog.dom.getViewportSize_(a||window)};goog.dom.getViewportSize_=function(a){a=a.document;a=goog.dom.isCss1CompatMode_(a)?a.documentElement:a.body;return new goog.math.Size(a.clientWidth,a.clientHeight)};\ngoog.dom.getDocumentHeight=function(){return goog.dom.getDocumentHeight_(window)};goog.dom.getDocumentHeightForWindow=function(a){return goog.dom.getDocumentHeight_(a)};\ngoog.dom.getDocumentHeight_=function(a){var b=a.document,c=0;if(b){var c=b.body,d=b.documentElement;if(!d||!c)return 0;a=goog.dom.getViewportSize_(a).height;if(goog.dom.isCss1CompatMode_(b)&&d.scrollHeight)c=d.scrollHeight!=a?d.scrollHeight:d.offsetHeight;else{var b=d.scrollHeight,e=d.offsetHeight;d.clientHeight!=e&&(b=c.scrollHeight,e=c.offsetHeight);c=b>a?b>e?b:e:b<e?b:e}}return c};goog.dom.getPageScroll=function(a){return goog.dom.getDomHelper((a||goog.global||window).document).getDocumentScroll()};\ngoog.dom.getDocumentScroll=function(){return goog.dom.getDocumentScroll_(document)};goog.dom.getDocumentScroll_=function(a){var b=goog.dom.getDocumentScrollElement_(a);a=goog.dom.getWindow_(a);return goog.userAgent.IE&&goog.userAgent.isVersionOrHigher("10")&&a.pageYOffset!=b.scrollTop?new goog.math.Coordinate(b.scrollLeft,b.scrollTop):new goog.math.Coordinate(a.pageXOffset||b.scrollLeft,a.pageYOffset||b.scrollTop)};goog.dom.getDocumentScrollElement=function(){return goog.dom.getDocumentScrollElement_(document)};\ngoog.dom.getDocumentScrollElement_=function(a){return a.scrollingElement?a.scrollingElement:!goog.userAgent.WEBKIT&&goog.dom.isCss1CompatMode_(a)?a.documentElement:a.body||a.documentElement};goog.dom.getWindow=function(a){return a?goog.dom.getWindow_(a):window};goog.dom.getWindow_=function(a){return a.parentWindow||a.defaultView};goog.dom.createDom=function(a,b,c){return goog.dom.createDom_(document,arguments)};\ngoog.dom.createDom_=function(a,b){var c=String(b[0]),d=b[1];if(!goog.dom.BrowserFeature.CAN_ADD_NAME_OR_TYPE_ATTRIBUTES&&d&&(d.name||d.type)){c=["<",c];d.name&&c.push(\' name="\',goog.string.htmlEscape(d.name),\'"\');if(d.type){c.push(\' type="\',goog.string.htmlEscape(d.type),\'"\');var e={};goog.object.extend(e,d);delete e.type;d=e}c.push(">");c=c.join("")}c=a.createElement(c);d&&(goog.isString(d)?c.className=d:goog.isArray(d)?c.className=d.join(" "):goog.dom.setProperties(c,d));2<b.length&&goog.dom.append_(a,\nc,b,2);return c};goog.dom.append_=function(a,b,c,d){function e(c){c&&b.appendChild(goog.isString(c)?a.createTextNode(c):c)}for(;d<c.length;d++){var f=c[d];goog.isArrayLike(f)&&!goog.dom.isNodeLike(f)?goog.array.forEach(goog.dom.isNodeList(f)?goog.array.toArray(f):f,e):e(f)}};goog.dom.$dom=goog.dom.createDom;goog.dom.createElement=function(a){return goog.dom.createElement_(document,a)};goog.dom.createElement_=function(a,b){return a.createElement(String(b))};goog.dom.createTextNode=function(a){return document.createTextNode(String(a))};\ngoog.dom.createTable=function(a,b,c){return goog.dom.createTable_(document,a,b,!!c)};goog.dom.createTable_=function(a,b,c,d){for(var e=goog.dom.createElement_(a,"TABLE"),f=e.appendChild(goog.dom.createElement_(a,"TBODY")),g=0;g<b;g++){for(var h=goog.dom.createElement_(a,"TR"),k=0;k<c;k++){var l=goog.dom.createElement_(a,"TD");d&&goog.dom.setTextContent(l,goog.string.Unicode.NBSP);h.appendChild(l)}f.appendChild(h)}return e};\ngoog.dom.constHtmlToNode=function(a){var b=goog.array.map(arguments,goog.string.Const.unwrap),b=goog.html.uncheckedconversions.safeHtmlFromStringKnownToSatisfyTypeContract(goog.string.Const.from("Constant HTML string, that gets turned into a Node later, so it will be automatically balanced."),b.join(""));return goog.dom.safeHtmlToNode(b)};goog.dom.safeHtmlToNode=function(a){return goog.dom.safeHtmlToNode_(document,a)};\ngoog.dom.safeHtmlToNode_=function(a,b){var c=goog.dom.createElement_(a,"DIV");goog.dom.BrowserFeature.INNER_HTML_NEEDS_SCOPED_ELEMENT?(goog.dom.safe.setInnerHtml(c,goog.html.SafeHtml.concat(goog.html.SafeHtml.BR,b)),c.removeChild(c.firstChild)):goog.dom.safe.setInnerHtml(c,b);return goog.dom.childrenToNode_(a,c)};goog.dom.childrenToNode_=function(a,b){if(1==b.childNodes.length)return b.removeChild(b.firstChild);for(var c=a.createDocumentFragment();b.firstChild;)c.appendChild(b.firstChild);return c};\ngoog.dom.isCss1CompatMode=function(){return goog.dom.isCss1CompatMode_(document)};goog.dom.isCss1CompatMode_=function(a){return goog.dom.COMPAT_MODE_KNOWN_?goog.dom.ASSUME_STANDARDS_MODE:"CSS1Compat"==a.compatMode};goog.dom.canHaveChildren=function(a){if(a.nodeType!=goog.dom.NodeType.ELEMENT)return!1;switch(a.tagName){case "APPLET":case "AREA":case "BASE":case "BR":case "COL":case "COMMAND":case "EMBED":case "FRAME":case "HR":case "IMG":case "INPUT":case "IFRAME":case "ISINDEX":case "KEYGEN":case "LINK":case "NOFRAMES":case "NOSCRIPT":case "META":case "OBJECT":case "PARAM":case "SCRIPT":case "SOURCE":case "STYLE":case "TRACK":case "WBR":return!1}return!0};\ngoog.dom.appendChild=function(a,b){a.appendChild(b)};goog.dom.append=function(a,b){goog.dom.append_(goog.dom.getOwnerDocument(a),a,arguments,1)};goog.dom.removeChildren=function(a){for(var b;b=a.firstChild;)a.removeChild(b)};goog.dom.insertSiblingBefore=function(a,b){b.parentNode&&b.parentNode.insertBefore(a,b)};goog.dom.insertSiblingAfter=function(a,b){b.parentNode&&b.parentNode.insertBefore(a,b.nextSibling)};goog.dom.insertChildAt=function(a,b,c){a.insertBefore(b,a.childNodes[c]||null)};\ngoog.dom.removeNode=function(a){return a&&a.parentNode?a.parentNode.removeChild(a):null};goog.dom.replaceNode=function(a,b){var c=b.parentNode;c&&c.replaceChild(a,b)};goog.dom.flattenElement=function(a){var b,c=a.parentNode;if(c&&c.nodeType!=goog.dom.NodeType.DOCUMENT_FRAGMENT){if(a.removeNode)return a.removeNode(!1);for(;b=a.firstChild;)c.insertBefore(b,a);return goog.dom.removeNode(a)}};\ngoog.dom.getChildren=function(a){return goog.dom.BrowserFeature.CAN_USE_CHILDREN_ATTRIBUTE&&void 0!=a.children?a.children:goog.array.filter(a.childNodes,function(a){return a.nodeType==goog.dom.NodeType.ELEMENT})};goog.dom.getFirstElementChild=function(a){return goog.isDef(a.firstElementChild)?a.firstElementChild:goog.dom.getNextElementNode_(a.firstChild,!0)};goog.dom.getLastElementChild=function(a){return goog.isDef(a.lastElementChild)?a.lastElementChild:goog.dom.getNextElementNode_(a.lastChild,!1)};\ngoog.dom.getNextElementSibling=function(a){return goog.isDef(a.nextElementSibling)?a.nextElementSibling:goog.dom.getNextElementNode_(a.nextSibling,!0)};goog.dom.getPreviousElementSibling=function(a){return goog.isDef(a.previousElementSibling)?a.previousElementSibling:goog.dom.getNextElementNode_(a.previousSibling,!1)};goog.dom.getNextElementNode_=function(a,b){for(;a&&a.nodeType!=goog.dom.NodeType.ELEMENT;)a=b?a.nextSibling:a.previousSibling;return a};\ngoog.dom.getNextNode=function(a){if(!a)return null;if(a.firstChild)return a.firstChild;for(;a&&!a.nextSibling;)a=a.parentNode;return a?a.nextSibling:null};goog.dom.getPreviousNode=function(a){if(!a)return null;if(!a.previousSibling)return a.parentNode;for(a=a.previousSibling;a&&a.lastChild;)a=a.lastChild;return a};goog.dom.isNodeLike=function(a){return goog.isObject(a)&&0<a.nodeType};goog.dom.isElement=function(a){return goog.isObject(a)&&a.nodeType==goog.dom.NodeType.ELEMENT};\ngoog.dom.isWindow=function(a){return goog.isObject(a)&&a.window==a};goog.dom.getParentElement=function(a){var b;if(goog.dom.BrowserFeature.CAN_USE_PARENT_ELEMENT_PROPERTY&&!(goog.userAgent.IE&&goog.userAgent.isVersionOrHigher("9")&&!goog.userAgent.isVersionOrHigher("10")&&goog.global.SVGElement&&a instanceof goog.global.SVGElement)&&(b=a.parentElement))return b;b=a.parentNode;return goog.dom.isElement(b)?b:null};\ngoog.dom.contains=function(a,b){if(!a||!b)return!1;if(a.contains&&b.nodeType==goog.dom.NodeType.ELEMENT)return a==b||a.contains(b);if("undefined"!=typeof a.compareDocumentPosition)return a==b||!!(a.compareDocumentPosition(b)&16);for(;b&&a!=b;)b=b.parentNode;return b==a};\ngoog.dom.compareNodeOrder=function(a,b){if(a==b)return 0;if(a.compareDocumentPosition)return a.compareDocumentPosition(b)&2?1:-1;if(goog.userAgent.IE&&!goog.userAgent.isDocumentModeOrHigher(9)){if(a.nodeType==goog.dom.NodeType.DOCUMENT)return-1;if(b.nodeType==goog.dom.NodeType.DOCUMENT)return 1}if("sourceIndex"in a||a.parentNode&&"sourceIndex"in a.parentNode){var c=a.nodeType==goog.dom.NodeType.ELEMENT,d=b.nodeType==goog.dom.NodeType.ELEMENT;if(c&&d)return a.sourceIndex-b.sourceIndex;var e=a.parentNode,\nf=b.parentNode;return e==f?goog.dom.compareSiblingOrder_(a,b):!c&&goog.dom.contains(e,b)?-1*goog.dom.compareParentsDescendantNodeIe_(a,b):!d&&goog.dom.contains(f,a)?goog.dom.compareParentsDescendantNodeIe_(b,a):(c?a.sourceIndex:e.sourceIndex)-(d?b.sourceIndex:f.sourceIndex)}d=goog.dom.getOwnerDocument(a);c=d.createRange();c.selectNode(a);c.collapse(!0);d=d.createRange();d.selectNode(b);d.collapse(!0);return c.compareBoundaryPoints(goog.global.Range.START_TO_END,d)};\ngoog.dom.compareParentsDescendantNodeIe_=function(a,b){var c=a.parentNode;if(c==b)return-1;for(var d=b;d.parentNode!=c;)d=d.parentNode;return goog.dom.compareSiblingOrder_(d,a)};goog.dom.compareSiblingOrder_=function(a,b){for(var c=b;c=c.previousSibling;)if(c==a)return-1;return 1};\ngoog.dom.findCommonAncestor=function(a){var b,c=arguments.length;if(!c)return null;if(1==c)return arguments[0];var d=[],e=Infinity;for(b=0;b<c;b++){for(var f=[],g=arguments[b];g;)f.unshift(g),g=g.parentNode;d.push(f);e=Math.min(e,f.length)}f=null;for(b=0;b<e;b++){for(var g=d[0][b],h=1;h<c;h++)if(g!=d[h][b])return f;f=g}return f};goog.dom.getOwnerDocument=function(a){goog.asserts.assert(a,"Node cannot be null or undefined.");return a.nodeType==goog.dom.NodeType.DOCUMENT?a:a.ownerDocument||a.document};\ngoog.dom.getFrameContentDocument=function(a){return a.contentDocument||a.contentWindow.document};goog.dom.getFrameContentWindow=function(a){try{return a.contentWindow||(a.contentDocument?goog.dom.getWindow(a.contentDocument):null)}catch(b){}return null};\ngoog.dom.setTextContent=function(a,b){goog.asserts.assert(null!=a,"goog.dom.setTextContent expects a non-null value for node");if("textContent"in a)a.textContent=b;else if(a.nodeType==goog.dom.NodeType.TEXT)a.data=b;else if(a.firstChild&&a.firstChild.nodeType==goog.dom.NodeType.TEXT){for(;a.lastChild!=a.firstChild;)a.removeChild(a.lastChild);a.firstChild.data=b}else{goog.dom.removeChildren(a);var c=goog.dom.getOwnerDocument(a);a.appendChild(c.createTextNode(String(b)))}};\ngoog.dom.getOuterHtml=function(a){goog.asserts.assert(null!==a,"goog.dom.getOuterHtml expects a non-null value for element");if("outerHTML"in a)return a.outerHTML;var b=goog.dom.getOwnerDocument(a),b=goog.dom.createElement_(b,"DIV");b.appendChild(a.cloneNode(!0));return b.innerHTML};goog.dom.findNode=function(a,b){var c=[];return goog.dom.findNodes_(a,b,c,!0)?c[0]:void 0};goog.dom.findNodes=function(a,b){var c=[];goog.dom.findNodes_(a,b,c,!1);return c};\ngoog.dom.findNodes_=function(a,b,c,d){if(null!=a)for(a=a.firstChild;a;){if(b(a)&&(c.push(a),d)||goog.dom.findNodes_(a,b,c,d))return!0;a=a.nextSibling}return!1};goog.dom.TAGS_TO_IGNORE_={SCRIPT:1,STYLE:1,HEAD:1,IFRAME:1,OBJECT:1};goog.dom.PREDEFINED_TAG_VALUES_={IMG:" ",BR:"\\n"};goog.dom.isFocusableTabIndex=function(a){return goog.dom.hasSpecifiedTabIndex_(a)&&goog.dom.isTabIndexFocusable_(a)};goog.dom.setFocusableTabIndex=function(a,b){b?a.tabIndex=0:(a.tabIndex=-1,a.removeAttribute("tabIndex"))};\ngoog.dom.isFocusable=function(a){var b;return(b=goog.dom.nativelySupportsFocus_(a)?!a.disabled&&(!goog.dom.hasSpecifiedTabIndex_(a)||goog.dom.isTabIndexFocusable_(a)):goog.dom.isFocusableTabIndex(a))&&goog.userAgent.IE?goog.dom.hasNonZeroBoundingRect_(a):b};goog.dom.hasSpecifiedTabIndex_=function(a){return goog.userAgent.IE&&!goog.userAgent.isVersionOrHigher("9")?(a=a.getAttributeNode("tabindex"),goog.isDefAndNotNull(a)&&a.specified):a.hasAttribute("tabindex")};\ngoog.dom.isTabIndexFocusable_=function(a){a=a.tabIndex;return goog.isNumber(a)&&0<=a&&32768>a};goog.dom.nativelySupportsFocus_=function(a){return"A"==a.tagName||"INPUT"==a.tagName||"TEXTAREA"==a.tagName||"SELECT"==a.tagName||"BUTTON"==a.tagName};goog.dom.hasNonZeroBoundingRect_=function(a){a=!goog.isFunction(a.getBoundingClientRect)||goog.userAgent.IE&&null==a.parentElement?{height:a.offsetHeight,width:a.offsetWidth}:a.getBoundingClientRect();return goog.isDefAndNotNull(a)&&0<a.height&&0<a.width};\ngoog.dom.getTextContent=function(a){if(goog.dom.BrowserFeature.CAN_USE_INNER_TEXT&&null!==a&&"innerText"in a)a=goog.string.canonicalizeNewlines(a.innerText);else{var b=[];goog.dom.getTextContent_(a,b,!0);a=b.join("")}a=a.replace(/ \\xAD /g," ").replace(/\\xAD/g,"");a=a.replace(/\\u200B/g,"");goog.dom.BrowserFeature.CAN_USE_INNER_TEXT||(a=a.replace(/ +/g," "));" "!=a&&(a=a.replace(/^\\s*/,""));return a};goog.dom.getRawTextContent=function(a){var b=[];goog.dom.getTextContent_(a,b,!1);return b.join("")};\ngoog.dom.getTextContent_=function(a,b,c){if(!(a.nodeName in goog.dom.TAGS_TO_IGNORE_))if(a.nodeType==goog.dom.NodeType.TEXT)c?b.push(String(a.nodeValue).replace(/(\\r\\n|\\r|\\n)/g,"")):b.push(a.nodeValue);else if(a.nodeName in goog.dom.PREDEFINED_TAG_VALUES_)b.push(goog.dom.PREDEFINED_TAG_VALUES_[a.nodeName]);else for(a=a.firstChild;a;)goog.dom.getTextContent_(a,b,c),a=a.nextSibling};goog.dom.getNodeTextLength=function(a){return goog.dom.getTextContent(a).length};\ngoog.dom.getNodeTextOffset=function(a,b){for(var c=b||goog.dom.getOwnerDocument(a).body,d=[];a&&a!=c;){for(var e=a;e=e.previousSibling;)d.unshift(goog.dom.getTextContent(e));a=a.parentNode}return goog.string.trimLeft(d.join("")).replace(/ +/g," ").length};\ngoog.dom.getNodeAtOffset=function(a,b,c){a=[a];for(var d=0,e=null;0<a.length&&d<b;)if(e=a.pop(),!(e.nodeName in goog.dom.TAGS_TO_IGNORE_))if(e.nodeType==goog.dom.NodeType.TEXT)var f=e.nodeValue.replace(/(\\r\\n|\\r|\\n)/g,"").replace(/ +/g," "),d=d+f.length;else if(e.nodeName in goog.dom.PREDEFINED_TAG_VALUES_)d+=goog.dom.PREDEFINED_TAG_VALUES_[e.nodeName].length;else for(f=e.childNodes.length-1;0<=f;f--)a.push(e.childNodes[f]);goog.isObject(c)&&(c.remainder=e?e.nodeValue.length+b-d-1:0,c.node=e);return e};\ngoog.dom.isNodeList=function(a){if(a&&"number"==typeof a.length){if(goog.isObject(a))return"function"==typeof a.item||"string"==typeof a.item;if(goog.isFunction(a))return"function"==typeof a.item}return!1};goog.dom.getAncestorByTagNameAndClass=function(a,b,c,d){if(!b&&!c)return null;var e=b?String(b).toUpperCase():null;return goog.dom.getAncestor(a,function(a){return(!e||a.nodeName==e)&&(!c||goog.isString(a.className)&&goog.array.contains(a.className.split(/\\s+/),c))},!0,d)};\ngoog.dom.getAncestorByClass=function(a,b,c){return goog.dom.getAncestorByTagNameAndClass(a,null,b,c)};goog.dom.getAncestor=function(a,b,c,d){c||(a=a.parentNode);for(c=0;a&&(null==d||c<=d);){goog.asserts.assert("parentNode"!=a.name);if(b(a))return a;a=a.parentNode;c++}return null};goog.dom.getActiveElement=function(a){try{return a&&a.activeElement}catch(b){}return null};\ngoog.dom.getPixelRatio=function(){var a=goog.dom.getWindow();return goog.isDef(a.devicePixelRatio)?a.devicePixelRatio:a.matchMedia?goog.dom.matchesPixelRatio_(3)||goog.dom.matchesPixelRatio_(2)||goog.dom.matchesPixelRatio_(1.5)||goog.dom.matchesPixelRatio_(1)||.75:1};goog.dom.matchesPixelRatio_=function(a){return goog.dom.getWindow().matchMedia("(min-resolution: "+a+"dppx),(min--moz-device-pixel-ratio: "+a+"),(min-resolution: "+96*a+"dpi)").matches?a:0};goog.dom.getCanvasContext2D=function(a){return a.getContext("2d")};\ngoog.dom.DomHelper=function(a){this.document_=a||goog.global.document||document};goog.dom.DomHelper.prototype.getDomHelper=goog.dom.getDomHelper;goog.dom.DomHelper.prototype.setDocument=function(a){this.document_=a};goog.dom.DomHelper.prototype.getDocument=function(){return this.document_};goog.dom.DomHelper.prototype.getElement=function(a){return goog.dom.getElementHelper_(this.document_,a)};\ngoog.dom.DomHelper.prototype.getRequiredElement=function(a){return goog.dom.getRequiredElementHelper_(this.document_,a)};goog.dom.DomHelper.prototype.$=goog.dom.DomHelper.prototype.getElement;goog.dom.DomHelper.prototype.getElementsByTagName=function(a,b){return(b||this.document_).getElementsByTagName(String(a))};goog.dom.DomHelper.prototype.getElementsByTagNameAndClass=function(a,b,c){return goog.dom.getElementsByTagNameAndClass_(this.document_,a,b,c)};\ngoog.dom.DomHelper.prototype.getElementsByClass=function(a,b){return goog.dom.getElementsByClass(a,b||this.document_)};goog.dom.DomHelper.prototype.getElementByClass=function(a,b){return goog.dom.getElementByClass(a,b||this.document_)};goog.dom.DomHelper.prototype.getRequiredElementByClass=function(a,b){return goog.dom.getRequiredElementByClass(a,b||this.document_)};goog.dom.DomHelper.prototype.$$=goog.dom.DomHelper.prototype.getElementsByTagNameAndClass;\ngoog.dom.DomHelper.prototype.setProperties=goog.dom.setProperties;goog.dom.DomHelper.prototype.getViewportSize=function(a){return goog.dom.getViewportSize(a||this.getWindow())};goog.dom.DomHelper.prototype.getDocumentHeight=function(){return goog.dom.getDocumentHeight_(this.getWindow())};goog.dom.DomHelper.prototype.createDom=function(a,b,c){return goog.dom.createDom_(this.document_,arguments)};goog.dom.DomHelper.prototype.$dom=goog.dom.DomHelper.prototype.createDom;\ngoog.dom.DomHelper.prototype.createElement=function(a){return goog.dom.createElement_(this.document_,a)};goog.dom.DomHelper.prototype.createTextNode=function(a){return this.document_.createTextNode(String(a))};goog.dom.DomHelper.prototype.createTable=function(a,b,c){return goog.dom.createTable_(this.document_,a,b,!!c)};goog.dom.DomHelper.prototype.safeHtmlToNode=function(a){return goog.dom.safeHtmlToNode_(this.document_,a)};goog.dom.DomHelper.prototype.isCss1CompatMode=function(){return goog.dom.isCss1CompatMode_(this.document_)};\ngoog.dom.DomHelper.prototype.getWindow=function(){return goog.dom.getWindow_(this.document_)};goog.dom.DomHelper.prototype.getDocumentScrollElement=function(){return goog.dom.getDocumentScrollElement_(this.document_)};goog.dom.DomHelper.prototype.getDocumentScroll=function(){return goog.dom.getDocumentScroll_(this.document_)};goog.dom.DomHelper.prototype.getActiveElement=function(a){return goog.dom.getActiveElement(a||this.document_)};goog.dom.DomHelper.prototype.appendChild=goog.dom.appendChild;\ngoog.dom.DomHelper.prototype.append=goog.dom.append;goog.dom.DomHelper.prototype.canHaveChildren=goog.dom.canHaveChildren;goog.dom.DomHelper.prototype.removeChildren=goog.dom.removeChildren;goog.dom.DomHelper.prototype.insertSiblingBefore=goog.dom.insertSiblingBefore;goog.dom.DomHelper.prototype.insertSiblingAfter=goog.dom.insertSiblingAfter;goog.dom.DomHelper.prototype.insertChildAt=goog.dom.insertChildAt;goog.dom.DomHelper.prototype.removeNode=goog.dom.removeNode;\ngoog.dom.DomHelper.prototype.replaceNode=goog.dom.replaceNode;goog.dom.DomHelper.prototype.flattenElement=goog.dom.flattenElement;goog.dom.DomHelper.prototype.getChildren=goog.dom.getChildren;goog.dom.DomHelper.prototype.getFirstElementChild=goog.dom.getFirstElementChild;goog.dom.DomHelper.prototype.getLastElementChild=goog.dom.getLastElementChild;goog.dom.DomHelper.prototype.getNextElementSibling=goog.dom.getNextElementSibling;goog.dom.DomHelper.prototype.getPreviousElementSibling=goog.dom.getPreviousElementSibling;\ngoog.dom.DomHelper.prototype.getNextNode=goog.dom.getNextNode;goog.dom.DomHelper.prototype.getPreviousNode=goog.dom.getPreviousNode;goog.dom.DomHelper.prototype.isNodeLike=goog.dom.isNodeLike;goog.dom.DomHelper.prototype.isElement=goog.dom.isElement;goog.dom.DomHelper.prototype.isWindow=goog.dom.isWindow;goog.dom.DomHelper.prototype.getParentElement=goog.dom.getParentElement;goog.dom.DomHelper.prototype.contains=goog.dom.contains;goog.dom.DomHelper.prototype.compareNodeOrder=goog.dom.compareNodeOrder;\ngoog.dom.DomHelper.prototype.findCommonAncestor=goog.dom.findCommonAncestor;goog.dom.DomHelper.prototype.getOwnerDocument=goog.dom.getOwnerDocument;goog.dom.DomHelper.prototype.getFrameContentDocument=goog.dom.getFrameContentDocument;goog.dom.DomHelper.prototype.getFrameContentWindow=goog.dom.getFrameContentWindow;goog.dom.DomHelper.prototype.setTextContent=goog.dom.setTextContent;goog.dom.DomHelper.prototype.getOuterHtml=goog.dom.getOuterHtml;goog.dom.DomHelper.prototype.findNode=goog.dom.findNode;\ngoog.dom.DomHelper.prototype.findNodes=goog.dom.findNodes;goog.dom.DomHelper.prototype.isFocusableTabIndex=goog.dom.isFocusableTabIndex;goog.dom.DomHelper.prototype.setFocusableTabIndex=goog.dom.setFocusableTabIndex;goog.dom.DomHelper.prototype.isFocusable=goog.dom.isFocusable;goog.dom.DomHelper.prototype.getTextContent=goog.dom.getTextContent;goog.dom.DomHelper.prototype.getNodeTextLength=goog.dom.getNodeTextLength;goog.dom.DomHelper.prototype.getNodeTextOffset=goog.dom.getNodeTextOffset;\ngoog.dom.DomHelper.prototype.getNodeAtOffset=goog.dom.getNodeAtOffset;goog.dom.DomHelper.prototype.isNodeList=goog.dom.isNodeList;goog.dom.DomHelper.prototype.getAncestorByTagNameAndClass=goog.dom.getAncestorByTagNameAndClass;goog.dom.DomHelper.prototype.getAncestorByClass=goog.dom.getAncestorByClass;goog.dom.DomHelper.prototype.getAncestor=goog.dom.getAncestor;goog.dom.DomHelper.prototype.getCanvasContext2D=goog.dom.getCanvasContext2D;goog.dom.vendor={};goog.dom.vendor.getVendorJsPrefix=function(){return goog.userAgent.WEBKIT?"Webkit":goog.userAgent.GECKO?"Moz":goog.userAgent.IE?"ms":goog.userAgent.OPERA?"O":null};goog.dom.vendor.getVendorPrefix=function(){return goog.userAgent.WEBKIT?"-webkit":goog.userAgent.GECKO?"-moz":goog.userAgent.IE?"-ms":goog.userAgent.OPERA?"-o":null};\ngoog.dom.vendor.getPrefixedPropertyName=function(a,b){if(b&&a in b)return a;var c=goog.dom.vendor.getVendorJsPrefix();return c?(c=c.toLowerCase(),c+=goog.string.toTitleCase(a),!goog.isDef(b)||c in b?c:null):null};goog.dom.vendor.getPrefixedEventType=function(a){return((goog.dom.vendor.getVendorJsPrefix()||"")+a).toLowerCase()};goog.html.legacyconversions={};goog.html.legacyconversions.safeHtmlFromString=function(a){goog.html.legacyconversions.reportCallback_();return goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(a,null)};goog.html.legacyconversions.safeStyleFromString=function(a){goog.html.legacyconversions.reportCallback_();return goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(a)};\ngoog.html.legacyconversions.safeStyleSheetFromString=function(a){goog.html.legacyconversions.reportCallback_();return goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(a)};goog.html.legacyconversions.safeUrlFromString=function(a){goog.html.legacyconversions.reportCallback_();return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(a)};goog.html.legacyconversions.trustedResourceUrlFromString=function(a){goog.html.legacyconversions.reportCallback_();return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(a)};\ngoog.html.legacyconversions.reportCallback_=goog.nullFunction;goog.html.legacyconversions.setReportCallback=function(a){goog.html.legacyconversions.reportCallback_=a};goog.math.Box=function(a,b,c,d){this.top=a;this.right=b;this.bottom=c;this.left=d};goog.math.Box.boundingBox=function(a){for(var b=new goog.math.Box(arguments[0].y,arguments[0].x,arguments[0].y,arguments[0].x),c=1;c<arguments.length;c++)b.expandToIncludeCoordinate(arguments[c]);return b};goog.math.Box.prototype.getWidth=function(){return this.right-this.left};goog.math.Box.prototype.getHeight=function(){return this.bottom-this.top};\ngoog.math.Box.prototype.clone=function(){return new goog.math.Box(this.top,this.right,this.bottom,this.left)};goog.DEBUG&&(goog.math.Box.prototype.toString=function(){return"("+this.top+"t, "+this.right+"r, "+this.bottom+"b, "+this.left+"l)"});goog.math.Box.prototype.contains=function(a){return goog.math.Box.contains(this,a)};\ngoog.math.Box.prototype.expand=function(a,b,c,d){goog.isObject(a)?(this.top-=a.top,this.right+=a.right,this.bottom+=a.bottom,this.left-=a.left):(this.top-=a,this.right+=Number(b),this.bottom+=Number(c),this.left-=Number(d));return this};goog.math.Box.prototype.expandToInclude=function(a){this.left=Math.min(this.left,a.left);this.top=Math.min(this.top,a.top);this.right=Math.max(this.right,a.right);this.bottom=Math.max(this.bottom,a.bottom)};\ngoog.math.Box.prototype.expandToIncludeCoordinate=function(a){this.top=Math.min(this.top,a.y);this.right=Math.max(this.right,a.x);this.bottom=Math.max(this.bottom,a.y);this.left=Math.min(this.left,a.x)};goog.math.Box.equals=function(a,b){return a==b?!0:a&&b?a.top==b.top&&a.right==b.right&&a.bottom==b.bottom&&a.left==b.left:!1};\ngoog.math.Box.contains=function(a,b){return a&&b?b instanceof goog.math.Box?b.left>=a.left&&b.right<=a.right&&b.top>=a.top&&b.bottom<=a.bottom:b.x>=a.left&&b.x<=a.right&&b.y>=a.top&&b.y<=a.bottom:!1};goog.math.Box.relativePositionX=function(a,b){return b.x<a.left?b.x-a.left:b.x>a.right?b.x-a.right:0};goog.math.Box.relativePositionY=function(a,b){return b.y<a.top?b.y-a.top:b.y>a.bottom?b.y-a.bottom:0};\ngoog.math.Box.distance=function(a,b){var c=goog.math.Box.relativePositionX(a,b),d=goog.math.Box.relativePositionY(a,b);return Math.sqrt(c*c+d*d)};goog.math.Box.intersects=function(a,b){return a.left<=b.right&&b.left<=a.right&&a.top<=b.bottom&&b.top<=a.bottom};goog.math.Box.intersectsWithPadding=function(a,b,c){return a.left<=b.right+c&&b.left<=a.right+c&&a.top<=b.bottom+c&&b.top<=a.bottom+c};\ngoog.math.Box.prototype.ceil=function(){this.top=Math.ceil(this.top);this.right=Math.ceil(this.right);this.bottom=Math.ceil(this.bottom);this.left=Math.ceil(this.left);return this};goog.math.Box.prototype.floor=function(){this.top=Math.floor(this.top);this.right=Math.floor(this.right);this.bottom=Math.floor(this.bottom);this.left=Math.floor(this.left);return this};\ngoog.math.Box.prototype.round=function(){this.top=Math.round(this.top);this.right=Math.round(this.right);this.bottom=Math.round(this.bottom);this.left=Math.round(this.left);return this};goog.math.Box.prototype.translate=function(a,b){a instanceof goog.math.Coordinate?(this.left+=a.x,this.right+=a.x,this.top+=a.y,this.bottom+=a.y):(goog.asserts.assertNumber(a),this.left+=a,this.right+=a,goog.isNumber(b)&&(this.top+=b,this.bottom+=b));return this};\ngoog.math.Box.prototype.scale=function(a,b){var c=goog.isNumber(b)?b:a;this.left*=a;this.right*=a;this.top*=c;this.bottom*=c;return this};goog.math.IRect=function(){};goog.math.Rect=function(a,b,c,d){this.left=a;this.top=b;this.width=c;this.height=d};goog.math.Rect.prototype.clone=function(){return new goog.math.Rect(this.left,this.top,this.width,this.height)};goog.math.Rect.prototype.toBox=function(){return new goog.math.Box(this.top,this.left+this.width,this.top+this.height,this.left)};goog.math.Rect.createFromPositionAndSize=function(a,b){return new goog.math.Rect(a.x,a.y,b.width,b.height)};\ngoog.math.Rect.createFromBox=function(a){return new goog.math.Rect(a.left,a.top,a.right-a.left,a.bottom-a.top)};goog.DEBUG&&(goog.math.Rect.prototype.toString=function(){return"("+this.left+", "+this.top+" - "+this.width+"w x "+this.height+"h)"});goog.math.Rect.equals=function(a,b){return a==b?!0:a&&b?a.left==b.left&&a.width==b.width&&a.top==b.top&&a.height==b.height:!1};\ngoog.math.Rect.prototype.intersection=function(a){var b=Math.max(this.left,a.left),c=Math.min(this.left+this.width,a.left+a.width);if(b<=c){var d=Math.max(this.top,a.top);a=Math.min(this.top+this.height,a.top+a.height);if(d<=a)return this.left=b,this.top=d,this.width=c-b,this.height=a-d,!0}return!1};\ngoog.math.Rect.intersection=function(a,b){var c=Math.max(a.left,b.left),d=Math.min(a.left+a.width,b.left+b.width);if(c<=d){var e=Math.max(a.top,b.top),f=Math.min(a.top+a.height,b.top+b.height);if(e<=f)return new goog.math.Rect(c,e,d-c,f-e)}return null};goog.math.Rect.intersects=function(a,b){return a.left<=b.left+b.width&&b.left<=a.left+a.width&&a.top<=b.top+b.height&&b.top<=a.top+a.height};goog.math.Rect.prototype.intersects=function(a){return goog.math.Rect.intersects(this,a)};\ngoog.math.Rect.difference=function(a,b){var c=goog.math.Rect.intersection(a,b);if(!c||!c.height||!c.width)return[a.clone()];var c=[],d=a.top,e=a.height,f=a.left+a.width,g=a.top+a.height,h=b.left+b.width,k=b.top+b.height;b.top>a.top&&(c.push(new goog.math.Rect(a.left,a.top,a.width,b.top-a.top)),d=b.top,e-=b.top-a.top);k<g&&(c.push(new goog.math.Rect(a.left,k,a.width,g-k)),e=k-d);b.left>a.left&&c.push(new goog.math.Rect(a.left,d,b.left-a.left,e));h<f&&c.push(new goog.math.Rect(h,d,f-h,e));return c};\ngoog.math.Rect.prototype.difference=function(a){return goog.math.Rect.difference(this,a)};goog.math.Rect.prototype.boundingRect=function(a){var b=Math.max(this.left+this.width,a.left+a.width),c=Math.max(this.top+this.height,a.top+a.height);this.left=Math.min(this.left,a.left);this.top=Math.min(this.top,a.top);this.width=b-this.left;this.height=c-this.top};goog.math.Rect.boundingRect=function(a,b){if(!a||!b)return null;var c=new goog.math.Rect(a.left,a.top,a.width,a.height);c.boundingRect(b);return c};\ngoog.math.Rect.prototype.contains=function(a){return a instanceof goog.math.Coordinate?a.x>=this.left&&a.x<=this.left+this.width&&a.y>=this.top&&a.y<=this.top+this.height:this.left<=a.left&&this.left+this.width>=a.left+a.width&&this.top<=a.top&&this.top+this.height>=a.top+a.height};goog.math.Rect.prototype.squaredDistance=function(a){var b=a.x<this.left?this.left-a.x:Math.max(a.x-(this.left+this.width),0);a=a.y<this.top?this.top-a.y:Math.max(a.y-(this.top+this.height),0);return b*b+a*a};\ngoog.math.Rect.prototype.distance=function(a){return Math.sqrt(this.squaredDistance(a))};goog.math.Rect.prototype.getSize=function(){return new goog.math.Size(this.width,this.height)};goog.math.Rect.prototype.getTopLeft=function(){return new goog.math.Coordinate(this.left,this.top)};goog.math.Rect.prototype.getCenter=function(){return new goog.math.Coordinate(this.left+this.width/2,this.top+this.height/2)};\ngoog.math.Rect.prototype.getBottomRight=function(){return new goog.math.Coordinate(this.left+this.width,this.top+this.height)};goog.math.Rect.prototype.ceil=function(){this.left=Math.ceil(this.left);this.top=Math.ceil(this.top);this.width=Math.ceil(this.width);this.height=Math.ceil(this.height);return this};goog.math.Rect.prototype.floor=function(){this.left=Math.floor(this.left);this.top=Math.floor(this.top);this.width=Math.floor(this.width);this.height=Math.floor(this.height);return this};\ngoog.math.Rect.prototype.round=function(){this.left=Math.round(this.left);this.top=Math.round(this.top);this.width=Math.round(this.width);this.height=Math.round(this.height);return this};goog.math.Rect.prototype.translate=function(a,b){a instanceof goog.math.Coordinate?(this.left+=a.x,this.top+=a.y):(this.left+=goog.asserts.assertNumber(a),goog.isNumber(b)&&(this.top+=b));return this};\ngoog.math.Rect.prototype.scale=function(a,b){var c=goog.isNumber(b)?b:a;this.left*=a;this.width*=a;this.top*=c;this.height*=c;return this};goog.style={};goog.style.setStyle=function(a,b,c){if(goog.isString(b))goog.style.setStyle_(a,c,b);else for(var d in b)goog.style.setStyle_(a,b[d],d)};goog.style.setStyle_=function(a,b,c){(c=goog.style.getVendorJsStyleName_(a,c))&&(a.style[c]=b)};goog.style.styleNameCache_={};\ngoog.style.getVendorJsStyleName_=function(a,b){var c=goog.style.styleNameCache_[b];if(!c){var d=goog.string.toCamelCase(b),c=d;void 0===a.style[d]&&(d=goog.dom.vendor.getVendorJsPrefix()+goog.string.toTitleCase(d),void 0!==a.style[d]&&(c=d));goog.style.styleNameCache_[b]=c}return c};\ngoog.style.getVendorStyleName_=function(a,b){var c=goog.string.toCamelCase(b);return void 0===a.style[c]&&(c=goog.dom.vendor.getVendorJsPrefix()+goog.string.toTitleCase(c),void 0!==a.style[c])?goog.dom.vendor.getVendorPrefix()+"-"+b:b};goog.style.getStyle=function(a,b){var c=a.style[goog.string.toCamelCase(b)];return"undefined"!==typeof c?c:a.style[goog.style.getVendorJsStyleName_(a,b)]||""};\ngoog.style.getComputedStyle=function(a,b){var c=goog.dom.getOwnerDocument(a);return c.defaultView&&c.defaultView.getComputedStyle&&(c=c.defaultView.getComputedStyle(a,null))?c[b]||c.getPropertyValue(b)||"":""};goog.style.getCascadedStyle=function(a,b){return a.currentStyle?a.currentStyle[b]:null};goog.style.getStyle_=function(a,b){return goog.style.getComputedStyle(a,b)||goog.style.getCascadedStyle(a,b)||a.style&&a.style[b]};\ngoog.style.getComputedBoxSizing=function(a){return goog.style.getStyle_(a,"boxSizing")||goog.style.getStyle_(a,"MozBoxSizing")||goog.style.getStyle_(a,"WebkitBoxSizing")||null};goog.style.getComputedPosition=function(a){return goog.style.getStyle_(a,"position")};goog.style.getBackgroundColor=function(a){return goog.style.getStyle_(a,"backgroundColor")};goog.style.getComputedOverflowX=function(a){return goog.style.getStyle_(a,"overflowX")};\ngoog.style.getComputedOverflowY=function(a){return goog.style.getStyle_(a,"overflowY")};goog.style.getComputedZIndex=function(a){return goog.style.getStyle_(a,"zIndex")};goog.style.getComputedTextAlign=function(a){return goog.style.getStyle_(a,"textAlign")};goog.style.getComputedCursor=function(a){return goog.style.getStyle_(a,"cursor")};goog.style.getComputedTransform=function(a){var b=goog.style.getVendorStyleName_(a,"transform");return goog.style.getStyle_(a,b)||goog.style.getStyle_(a,"transform")};\ngoog.style.setPosition=function(a,b,c){var d;b instanceof goog.math.Coordinate?(d=b.x,b=b.y):(d=b,b=c);a.style.left=goog.style.getPixelStyleValue_(d,!1);a.style.top=goog.style.getPixelStyleValue_(b,!1)};goog.style.getPosition=function(a){return new goog.math.Coordinate(a.offsetLeft,a.offsetTop)};\ngoog.style.getClientViewportElement=function(a){a=a?goog.dom.getOwnerDocument(a):goog.dom.getDocument();return!goog.userAgent.IE||goog.userAgent.isDocumentModeOrHigher(9)||goog.dom.getDomHelper(a).isCss1CompatMode()?a.documentElement:a.body};goog.style.getViewportPageOffset=function(a){var b=a.body;a=a.documentElement;return new goog.math.Coordinate(b.scrollLeft||a.scrollLeft,b.scrollTop||a.scrollTop)};\ngoog.style.getBoundingClientRect_=function(a){var b;try{b=a.getBoundingClientRect()}catch(c){return{left:0,top:0,right:0,bottom:0}}goog.userAgent.IE&&a.ownerDocument.body&&(a=a.ownerDocument,b.left-=a.documentElement.clientLeft+a.body.clientLeft,b.top-=a.documentElement.clientTop+a.body.clientTop);return b};\ngoog.style.getOffsetParent=function(a){if(goog.userAgent.IE&&!goog.userAgent.isDocumentModeOrHigher(8))return goog.asserts.assert(a&&"offsetParent"in a),a.offsetParent;var b=goog.dom.getOwnerDocument(a),c=goog.style.getStyle_(a,"position"),d="fixed"==c||"absolute"==c;for(a=a.parentNode;a&&a!=b;a=a.parentNode)if(a.nodeType==goog.dom.NodeType.DOCUMENT_FRAGMENT&&a.host&&(a=a.host),c=goog.style.getStyle_(a,"position"),d=d&&"static"==c&&a!=b.documentElement&&a!=b.body,!d&&(a.scrollWidth>a.clientWidth||\na.scrollHeight>a.clientHeight||"fixed"==c||"absolute"==c||"relative"==c))return a;return null};\ngoog.style.getVisibleRectForElement=function(a){for(var b=new goog.math.Box(0,Infinity,Infinity,0),c=goog.dom.getDomHelper(a),d=c.getDocument().body,e=c.getDocument().documentElement,f=c.getDocumentScrollElement();a=goog.style.getOffsetParent(a);)if(!(goog.userAgent.IE&&0==a.clientWidth||goog.userAgent.WEBKIT&&0==a.clientHeight&&a==d)&&a!=d&&a!=e&&"visible"!=goog.style.getStyle_(a,"overflow")){var g=goog.style.getPageOffset(a),h=goog.style.getClientLeftTop(a);g.x+=h.x;g.y+=h.y;b.top=Math.max(b.top,\ng.y);b.right=Math.min(b.right,g.x+a.clientWidth);b.bottom=Math.min(b.bottom,g.y+a.clientHeight);b.left=Math.max(b.left,g.x)}d=f.scrollLeft;f=f.scrollTop;b.left=Math.max(b.left,d);b.top=Math.max(b.top,f);c=c.getViewportSize();b.right=Math.min(b.right,d+c.width);b.bottom=Math.min(b.bottom,f+c.height);return 0<=b.top&&0<=b.left&&b.bottom>b.top&&b.right>b.left?b:null};\ngoog.style.getContainerOffsetToScrollInto=function(a,b,c){var d=b||goog.dom.getDocumentScrollElement(),e=goog.style.getPageOffset(a),f=goog.style.getPageOffset(d),g=goog.style.getBorderBox(d);d==goog.dom.getDocumentScrollElement()?(b=e.x-d.scrollLeft,e=e.y-d.scrollTop,goog.userAgent.IE&&!goog.userAgent.isDocumentModeOrHigher(10)&&(b+=g.left,e+=g.top)):(b=e.x-f.x-g.left,e=e.y-f.y-g.top);g=goog.style.getSizeWithDisplay_(a);a=d.clientWidth-g.width;g=d.clientHeight-g.height;f=d.scrollLeft;d=d.scrollTop;\nc?(f+=b-a/2,d+=e-g/2):(f+=Math.min(b,Math.max(b-a,0)),d+=Math.min(e,Math.max(e-g,0)));return new goog.math.Coordinate(f,d)};goog.style.scrollIntoContainerView=function(a,b,c){b=b||goog.dom.getDocumentScrollElement();a=goog.style.getContainerOffsetToScrollInto(a,b,c);b.scrollLeft=a.x;b.scrollTop=a.y};goog.style.getClientLeftTop=function(a){return new goog.math.Coordinate(a.clientLeft,a.clientTop)};\ngoog.style.getPageOffset=function(a){var b=goog.dom.getOwnerDocument(a);goog.asserts.assertObject(a,"Parameter is required");var c=new goog.math.Coordinate(0,0),d=goog.style.getClientViewportElement(b);if(a==d)return c;a=goog.style.getBoundingClientRect_(a);b=goog.dom.getDomHelper(b).getDocumentScroll();c.x=a.left+b.x;c.y=a.top+b.y;return c};goog.style.getPageOffsetLeft=function(a){return goog.style.getPageOffset(a).x};goog.style.getPageOffsetTop=function(a){return goog.style.getPageOffset(a).y};\ngoog.style.getFramedPageOffset=function(a,b){var c=new goog.math.Coordinate(0,0),d=goog.dom.getWindow(goog.dom.getOwnerDocument(a));if(!goog.reflect.canAccessProperty(d,"parent"))return c;var e=a;do{var f=d==b?goog.style.getPageOffset(e):goog.style.getClientPositionForElement_(goog.asserts.assert(e));c.x+=f.x;c.y+=f.y}while(d&&d!=b&&d!=d.parent&&(e=d.frameElement)&&(d=d.parent));return c};\ngoog.style.translateRectForAnotherFrame=function(a,b,c){if(b.getDocument()!=c.getDocument()){var d=b.getDocument().body;c=goog.style.getFramedPageOffset(d,c.getWindow());c=goog.math.Coordinate.difference(c,goog.style.getPageOffset(d));!goog.userAgent.IE||goog.userAgent.isDocumentModeOrHigher(9)||b.isCss1CompatMode()||(c=goog.math.Coordinate.difference(c,b.getDocumentScroll()));a.left+=c.x;a.top+=c.y}};\ngoog.style.getRelativePosition=function(a,b){var c=goog.style.getClientPosition(a),d=goog.style.getClientPosition(b);return new goog.math.Coordinate(c.x-d.x,c.y-d.y)};goog.style.getClientPositionForElement_=function(a){a=goog.style.getBoundingClientRect_(a);return new goog.math.Coordinate(a.left,a.top)};\ngoog.style.getClientPosition=function(a){goog.asserts.assert(a);if(a.nodeType==goog.dom.NodeType.ELEMENT)return goog.style.getClientPositionForElement_(a);a=a.changedTouches?a.changedTouches[0]:a;return new goog.math.Coordinate(a.clientX,a.clientY)};goog.style.setPageOffset=function(a,b,c){var d=goog.style.getPageOffset(a);b instanceof goog.math.Coordinate&&(c=b.y,b=b.x);b=goog.asserts.assertNumber(b)-d.x;goog.style.setPosition(a,a.offsetLeft+b,a.offsetTop+(Number(c)-d.y))};\ngoog.style.setSize=function(a,b,c){if(b instanceof goog.math.Size)c=b.height,b=b.width;else if(void 0==c)throw Error("missing height argument");goog.style.setWidth(a,b);goog.style.setHeight(a,c)};goog.style.getPixelStyleValue_=function(a,b){"number"==typeof a&&(a=(b?Math.round(a):a)+"px");return a};goog.style.setHeight=function(a,b){a.style.height=goog.style.getPixelStyleValue_(b,!0)};goog.style.setWidth=function(a,b){a.style.width=goog.style.getPixelStyleValue_(b,!0)};\ngoog.style.getSize=function(a){return goog.style.evaluateWithTemporaryDisplay_(goog.style.getSizeWithDisplay_,a)};goog.style.evaluateWithTemporaryDisplay_=function(a,b){if("none"!=goog.style.getStyle_(b,"display"))return a(b);var c=b.style,d=c.display,e=c.visibility,f=c.position;c.visibility="hidden";c.position="absolute";c.display="inline";var g=a(b);c.display=d;c.position=f;c.visibility=e;return g};\ngoog.style.getSizeWithDisplay_=function(a){var b=a.offsetWidth,c=a.offsetHeight,d=goog.userAgent.WEBKIT&&!b&&!c;return goog.isDef(b)&&!d||!a.getBoundingClientRect?new goog.math.Size(b,c):(a=goog.style.getBoundingClientRect_(a),new goog.math.Size(a.right-a.left,a.bottom-a.top))};goog.style.getTransformedSize=function(a){if(!a.getBoundingClientRect)return null;a=goog.style.evaluateWithTemporaryDisplay_(goog.style.getBoundingClientRect_,a);return new goog.math.Size(a.right-a.left,a.bottom-a.top)};\ngoog.style.getBounds=function(a){var b=goog.style.getPageOffset(a);a=goog.style.getSize(a);return new goog.math.Rect(b.x,b.y,a.width,a.height)};goog.style.toCamelCase=function(a){return goog.string.toCamelCase(String(a))};goog.style.toSelectorCase=function(a){return goog.string.toSelectorCase(a)};\ngoog.style.getOpacity=function(a){goog.asserts.assert(a);var b=a.style;a="";"opacity"in b?a=b.opacity:"MozOpacity"in b?a=b.MozOpacity:"filter"in b&&(b=b.filter.match(/alpha\\(opacity=([\\d.]+)\\)/))&&(a=String(b[1]/100));return""==a?a:Number(a)};goog.style.setOpacity=function(a,b){goog.asserts.assert(a);var c=a.style;"opacity"in c?c.opacity=b:"MozOpacity"in c?c.MozOpacity=b:"filter"in c&&(c.filter=""===b?"":"alpha(opacity="+100*Number(b)+")")};\ngoog.style.setTransparentBackgroundImage=function(a,b){var c=a.style;goog.userAgent.IE&&!goog.userAgent.isVersionOrHigher("8")?c.filter=\'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="\'+b+\'", sizingMethod="crop")\':(c.backgroundImage="url("+b+")",c.backgroundPosition="top left",c.backgroundRepeat="no-repeat")};goog.style.clearTransparentBackgroundImage=function(a){a=a.style;"filter"in a?a.filter="":a.backgroundImage="none"};\ngoog.style.showElement=function(a,b){goog.style.setElementShown(a,b)};goog.style.setElementShown=function(a,b){a.style.display=b?"":"none"};goog.style.isElementShown=function(a){return"none"!=a.style.display};goog.style.installStyles=function(a,b){return goog.style.installSafeStyleSheet(goog.html.legacyconversions.safeStyleSheetFromString(a),b)};\ngoog.style.installSafeStyleSheet=function(a,b){var c=goog.dom.getDomHelper(b),d,e=c.getDocument();goog.userAgent.IE&&e.createStyleSheet?(d=e.createStyleSheet(),goog.style.setSafeStyleSheet(d,a)):(e=c.getElementsByTagNameAndClass("HEAD")[0],e||(d=c.getElementsByTagNameAndClass("BODY")[0],e=c.createDom("HEAD"),d.parentNode.insertBefore(e,d)),d=c.createDom("STYLE"),goog.style.setSafeStyleSheet(d,a),c.appendChild(e,d));return d};\ngoog.style.uninstallStyles=function(a){goog.dom.removeNode(a.ownerNode||a.owningElement||a)};goog.style.setStyles=function(a,b){goog.style.setSafeStyleSheet(a,goog.html.legacyconversions.safeStyleSheetFromString(b))};goog.style.setSafeStyleSheet=function(a,b){var c=goog.html.SafeStyleSheet.unwrap(b);goog.userAgent.IE&&goog.isDef(a.cssText)?a.cssText=c:a.innerHTML=c};\ngoog.style.setPreWrap=function(a){a=a.style;goog.userAgent.IE&&!goog.userAgent.isVersionOrHigher("8")?(a.whiteSpace="pre",a.wordWrap="break-word"):a.whiteSpace=goog.userAgent.GECKO?"-moz-pre-wrap":"pre-wrap"};goog.style.setInlineBlock=function(a){a=a.style;a.position="relative";goog.userAgent.IE&&!goog.userAgent.isVersionOrHigher("8")?(a.zoom="1",a.display="inline"):a.display="inline-block"};goog.style.isRightToLeft=function(a){return"rtl"==goog.style.getStyle_(a,"direction")};\ngoog.style.unselectableStyle_=goog.userAgent.GECKO?"MozUserSelect":goog.userAgent.WEBKIT||goog.userAgent.EDGE?"WebkitUserSelect":null;goog.style.isUnselectable=function(a){return goog.style.unselectableStyle_?"none"==a.style[goog.style.unselectableStyle_].toLowerCase():goog.userAgent.IE||goog.userAgent.OPERA?"on"==a.getAttribute("unselectable"):!1};\ngoog.style.setUnselectable=function(a,b,c){c=c?null:a.getElementsByTagName("*");var d=goog.style.unselectableStyle_;if(d){if(b=b?"none":"",a.style&&(a.style[d]=b),c){a=0;for(var e;e=c[a];a++)e.style&&(e.style[d]=b)}}else if(goog.userAgent.IE||goog.userAgent.OPERA)if(b=b?"on":"",a.setAttribute("unselectable",b),c)for(a=0;e=c[a];a++)e.setAttribute("unselectable",b)};goog.style.getBorderBoxSize=function(a){return new goog.math.Size(a.offsetWidth,a.offsetHeight)};\ngoog.style.setBorderBoxSize=function(a,b){var c=goog.dom.getOwnerDocument(a),d=goog.dom.getDomHelper(c).isCss1CompatMode();if(!goog.userAgent.IE||goog.userAgent.isVersionOrHigher("10")||d&&goog.userAgent.isVersionOrHigher("8"))goog.style.setBoxSizingSize_(a,b,"border-box");else if(c=a.style,d){var d=goog.style.getPaddingBox(a),e=goog.style.getBorderBox(a);c.pixelWidth=b.width-e.left-d.left-d.right-e.right;c.pixelHeight=b.height-e.top-d.top-d.bottom-e.bottom}else c.pixelWidth=b.width,c.pixelHeight=\nb.height};\ngoog.style.getContentBoxSize=function(a){var b=goog.dom.getOwnerDocument(a),c=goog.userAgent.IE&&a.currentStyle;if(c&&goog.dom.getDomHelper(b).isCss1CompatMode()&&"auto"!=c.width&&"auto"!=c.height&&!c.boxSizing)return b=goog.style.getIePixelValue_(a,c.width,"width","pixelWidth"),a=goog.style.getIePixelValue_(a,c.height,"height","pixelHeight"),new goog.math.Size(b,a);c=goog.style.getBorderBoxSize(a);b=goog.style.getPaddingBox(a);a=goog.style.getBorderBox(a);return new goog.math.Size(c.width-a.left-\nb.left-b.right-a.right,c.height-a.top-b.top-b.bottom-a.bottom)};\ngoog.style.setContentBoxSize=function(a,b){var c=goog.dom.getOwnerDocument(a),d=goog.dom.getDomHelper(c).isCss1CompatMode();if(!goog.userAgent.IE||goog.userAgent.isVersionOrHigher("10")||d&&goog.userAgent.isVersionOrHigher("8"))goog.style.setBoxSizingSize_(a,b,"content-box");else if(c=a.style,d)c.pixelWidth=b.width,c.pixelHeight=b.height;else{var d=goog.style.getPaddingBox(a),e=goog.style.getBorderBox(a);c.pixelWidth=b.width+e.left+d.left+d.right+e.right;c.pixelHeight=b.height+e.top+d.top+d.bottom+\ne.bottom}};goog.style.setBoxSizingSize_=function(a,b,c){a=a.style;goog.userAgent.GECKO?a.MozBoxSizing=c:goog.userAgent.WEBKIT?a.WebkitBoxSizing=c:a.boxSizing=c;a.width=Math.max(b.width,0)+"px";a.height=Math.max(b.height,0)+"px"};goog.style.getIePixelValue_=function(a,b,c,d){if(/^\\d+px?$/.test(b))return parseInt(b,10);var e=a.style[c],f=a.runtimeStyle[c];a.runtimeStyle[c]=a.currentStyle[c];a.style[c]=b;b=a.style[d];a.style[c]=e;a.runtimeStyle[c]=f;return b};\ngoog.style.getIePixelDistance_=function(a,b){var c=goog.style.getCascadedStyle(a,b);return c?goog.style.getIePixelValue_(a,c,"left","pixelLeft"):0};\ngoog.style.getBox_=function(a,b){if(goog.userAgent.IE){var c=goog.style.getIePixelDistance_(a,b+"Left"),d=goog.style.getIePixelDistance_(a,b+"Right"),e=goog.style.getIePixelDistance_(a,b+"Top"),f=goog.style.getIePixelDistance_(a,b+"Bottom");return new goog.math.Box(e,d,f,c)}c=goog.style.getComputedStyle(a,b+"Left");d=goog.style.getComputedStyle(a,b+"Right");e=goog.style.getComputedStyle(a,b+"Top");f=goog.style.getComputedStyle(a,b+"Bottom");return new goog.math.Box(parseFloat(e),parseFloat(d),parseFloat(f),\nparseFloat(c))};goog.style.getPaddingBox=function(a){return goog.style.getBox_(a,"padding")};goog.style.getMarginBox=function(a){return goog.style.getBox_(a,"margin")};goog.style.ieBorderWidthKeywords_={thin:2,medium:4,thick:6};\ngoog.style.getIePixelBorder_=function(a,b){if("none"==goog.style.getCascadedStyle(a,b+"Style"))return 0;var c=goog.style.getCascadedStyle(a,b+"Width");return c in goog.style.ieBorderWidthKeywords_?goog.style.ieBorderWidthKeywords_[c]:goog.style.getIePixelValue_(a,c,"left","pixelLeft")};\ngoog.style.getBorderBox=function(a){if(goog.userAgent.IE&&!goog.userAgent.isDocumentModeOrHigher(9)){var b=goog.style.getIePixelBorder_(a,"borderLeft"),c=goog.style.getIePixelBorder_(a,"borderRight"),d=goog.style.getIePixelBorder_(a,"borderTop");a=goog.style.getIePixelBorder_(a,"borderBottom");return new goog.math.Box(d,c,a,b)}b=goog.style.getComputedStyle(a,"borderLeftWidth");c=goog.style.getComputedStyle(a,"borderRightWidth");d=goog.style.getComputedStyle(a,"borderTopWidth");a=goog.style.getComputedStyle(a,\n"borderBottomWidth");return new goog.math.Box(parseFloat(d),parseFloat(c),parseFloat(a),parseFloat(b))};goog.style.getFontFamily=function(a){var b=goog.dom.getOwnerDocument(a),c="";if(b.body.createTextRange&&goog.dom.contains(b,a)){b=b.body.createTextRange();b.moveToElementText(a);try{c=b.queryCommandValue("FontName")}catch(d){c=""}}c||(c=goog.style.getStyle_(a,"fontFamily"));a=c.split(",");1<a.length&&(c=a[0]);return goog.string.stripQuotes(c,"\\"\'")};goog.style.lengthUnitRegex_=/[^\\d]+$/;\ngoog.style.getLengthUnits=function(a){return(a=a.match(goog.style.lengthUnitRegex_))&&a[0]||null};goog.style.ABSOLUTE_CSS_LENGTH_UNITS_={cm:1,"in":1,mm:1,pc:1,pt:1};goog.style.CONVERTIBLE_RELATIVE_CSS_UNITS_={em:1,ex:1};\ngoog.style.getFontSize=function(a){var b=goog.style.getStyle_(a,"fontSize"),c=goog.style.getLengthUnits(b);if(b&&"px"==c)return parseInt(b,10);if(goog.userAgent.IE){if(String(c)in goog.style.ABSOLUTE_CSS_LENGTH_UNITS_)return goog.style.getIePixelValue_(a,b,"left","pixelLeft");if(a.parentNode&&a.parentNode.nodeType==goog.dom.NodeType.ELEMENT&&String(c)in goog.style.CONVERTIBLE_RELATIVE_CSS_UNITS_)return a=a.parentNode,c=goog.style.getStyle_(a,"fontSize"),goog.style.getIePixelValue_(a,b==c?"1em":b,\n"left","pixelLeft")}c=goog.dom.createDom("SPAN",{style:"visibility:hidden;position:absolute;line-height:0;padding:0;margin:0;border:0;height:1em;"});goog.dom.appendChild(a,c);b=c.offsetHeight;goog.dom.removeNode(c);return b};goog.style.parseStyleAttribute=function(a){var b={};goog.array.forEach(a.split(/\\s*;\\s*/),function(a){var c=a.match(/\\s*([\\w-]+)\\s*\\:(.+)/);c&&(a=c[1],c=goog.string.trim(c[2]),b[goog.string.toCamelCase(a.toLowerCase())]=c)});return b};\ngoog.style.toStyleAttribute=function(a){var b=[];goog.object.forEach(a,function(a,d){b.push(goog.string.toSelectorCase(d),":",a,";")});return b.join("")};goog.style.setFloat=function(a,b){a.style[goog.userAgent.IE?"styleFloat":"cssFloat"]=b};goog.style.getFloat=function(a){return a.style[goog.userAgent.IE?"styleFloat":"cssFloat"]||""};\ngoog.style.getScrollbarWidth=function(a){var b=goog.dom.createElement("DIV");a&&(b.className=a);b.style.cssText="overflow:auto;position:absolute;top:0;width:100px;height:100px";a=goog.dom.createElement("DIV");goog.style.setSize(a,"200px","200px");b.appendChild(a);goog.dom.appendChild(goog.dom.getDocument().body,b);a=b.offsetWidth-b.clientWidth;goog.dom.removeNode(b);return a};goog.style.MATRIX_TRANSLATION_REGEX_=/matrix\\([0-9\\.\\-]+, [0-9\\.\\-]+, [0-9\\.\\-]+, [0-9\\.\\-]+, ([0-9\\.\\-]+)p?x?, ([0-9\\.\\-]+)p?x?\\)/;\ngoog.style.getCssTranslation=function(a){a=goog.style.getComputedTransform(a);return a?(a=a.match(goog.style.MATRIX_TRANSLATION_REGEX_))?new goog.math.Coordinate(parseFloat(a[1]),parseFloat(a[2])):new goog.math.Coordinate(0,0):new goog.math.Coordinate(0,0)};goog.Thenable=function(){};goog.Thenable.prototype.then=function(a,b,c){};goog.Thenable.IMPLEMENTED_BY_PROP="$goog_Thenable";goog.Thenable.addImplementation=function(a){a.prototype.then=a.prototype.then;COMPILED?a.prototype[goog.Thenable.IMPLEMENTED_BY_PROP]=!0:a.prototype.$goog_Thenable=!0};goog.Thenable.isImplementedBy=function(a){if(!a)return!1;try{return COMPILED?!!a[goog.Thenable.IMPLEMENTED_BY_PROP]:!!a.$goog_Thenable}catch(b){return!1}};goog.async={};goog.async.FreeList=function(a,b,c){this.limit_=c;this.create_=a;this.reset_=b;this.occupants_=0;this.head_=null};goog.async.FreeList.prototype.get=function(){var a;0<this.occupants_?(this.occupants_--,a=this.head_,this.head_=a.next,a.next=null):a=this.create_();return a};goog.async.FreeList.prototype.put=function(a){this.reset_(a);this.occupants_<this.limit_&&(this.occupants_++,a.next=this.head_,this.head_=a)};goog.async.FreeList.prototype.occupants=function(){return this.occupants_};goog.async.WorkQueue=function(){this.workTail_=this.workHead_=null};goog.async.WorkQueue.DEFAULT_MAX_UNUSED=100;goog.async.WorkQueue.freelist_=new goog.async.FreeList(function(){return new goog.async.WorkItem},function(a){a.reset()},goog.async.WorkQueue.DEFAULT_MAX_UNUSED);goog.async.WorkQueue.prototype.add=function(a,b){var c=this.getUnusedItem_();c.set(a,b);this.workTail_?this.workTail_.next=c:(goog.asserts.assert(!this.workHead_),this.workHead_=c);this.workTail_=c};\ngoog.async.WorkQueue.prototype.remove=function(){var a=null;this.workHead_&&(a=this.workHead_,this.workHead_=this.workHead_.next,this.workHead_||(this.workTail_=null),a.next=null);return a};goog.async.WorkQueue.prototype.returnUnused=function(a){goog.async.WorkQueue.freelist_.put(a)};goog.async.WorkQueue.prototype.getUnusedItem_=function(){return goog.async.WorkQueue.freelist_.get()};goog.async.WorkItem=function(){this.next=this.scope=this.fn=null};\ngoog.async.WorkItem.prototype.set=function(a,b){this.fn=a;this.scope=b;this.next=null};goog.async.WorkItem.prototype.reset=function(){this.next=this.scope=this.fn=null};goog.functions={};goog.functions.constant=function(a){return function(){return a}};goog.functions.FALSE=goog.functions.constant(!1);goog.functions.TRUE=goog.functions.constant(!0);goog.functions.NULL=goog.functions.constant(null);goog.functions.identity=function(a,b){return a};goog.functions.error=function(a){return function(){throw Error(a);}};goog.functions.fail=function(a){return function(){throw a;}};\ngoog.functions.lock=function(a,b){b=b||0;return function(){return a.apply(this,Array.prototype.slice.call(arguments,0,b))}};goog.functions.nth=function(a){return function(){return arguments[a]}};goog.functions.partialRight=function(a,b){var c=Array.prototype.slice.call(arguments,1);return function(){var b=Array.prototype.slice.call(arguments);b.push.apply(b,c);return a.apply(this,b)}};goog.functions.withReturnValue=function(a,b){return goog.functions.sequence(a,goog.functions.constant(b))};\ngoog.functions.equalTo=function(a,b){return function(c){return b?a==c:a===c}};goog.functions.compose=function(a,b){var c=arguments,d=c.length;return function(){var a;d&&(a=c[d-1].apply(this,arguments));for(var b=d-2;0<=b;b--)a=c[b].call(this,a);return a}};goog.functions.sequence=function(a){var b=arguments,c=b.length;return function(){for(var a,e=0;e<c;e++)a=b[e].apply(this,arguments);return a}};\ngoog.functions.and=function(a){var b=arguments,c=b.length;return function(){for(var a=0;a<c;a++)if(!b[a].apply(this,arguments))return!1;return!0}};goog.functions.or=function(a){var b=arguments,c=b.length;return function(){for(var a=0;a<c;a++)if(b[a].apply(this,arguments))return!0;return!1}};goog.functions.not=function(a){return function(){return!a.apply(this,arguments)}};\ngoog.functions.create=function(a,b){var c=function(){};c.prototype=a.prototype;c=new c;a.apply(c,Array.prototype.slice.call(arguments,1));return c};goog.functions.CACHE_RETURN_VALUE=!0;goog.functions.cacheReturnValue=function(a){var b=!1,c;return function(){if(!goog.functions.CACHE_RETURN_VALUE)return a();b||(c=a(),b=!0);return c}};goog.functions.once=function(a){var b=a;return function(){if(b){var a=b;b=null;a()}}};\ngoog.functions.debounce=function(a,b,c){c&&(a=goog.bind(a,c));var d=null;return function(c){goog.global.clearTimeout(d);var e=arguments;d=goog.global.setTimeout(function(){a.apply(null,e)},b)}};goog.functions.throttle=function(a,b,c){c&&(a=goog.bind(a,c));var d=null,e=!1,f=[],g=function(){d=null;e&&(e=!1,h())},h=function(){d=goog.global.setTimeout(g,b);a.apply(null,f)};return function(a){f=arguments;d?e=!0:h()}};goog.async.throwException=function(a){goog.global.setTimeout(function(){throw a;},0)};goog.async.nextTick=function(a,b,c){var d=a;b&&(d=goog.bind(a,b));d=goog.async.nextTick.wrapCallback_(d);goog.isFunction(goog.global.setImmediate)&&(c||goog.async.nextTick.useSetImmediate_())?goog.global.setImmediate(d):(goog.async.nextTick.setImmediate_||(goog.async.nextTick.setImmediate_=goog.async.nextTick.getSetImmediateEmulator_()),goog.async.nextTick.setImmediate_(d))};\ngoog.async.nextTick.useSetImmediate_=function(){return goog.global.Window&&goog.global.Window.prototype&&!goog.labs.userAgent.browser.isEdge()&&goog.global.Window.prototype.setImmediate==goog.global.setImmediate?!1:!0};\ngoog.async.nextTick.getSetImmediateEmulator_=function(){var a=goog.global.MessageChannel;"undefined"===typeof a&&"undefined"!==typeof window&&window.postMessage&&window.addEventListener&&!goog.labs.userAgent.engine.isPresto()&&(a=function(){var a=document.createElement("IFRAME");a.style.display="none";a.src="";document.documentElement.appendChild(a);var b=a.contentWindow,a=b.document;a.open();a.write("");a.close();var c="callImmediate"+Math.random(),d="file:"==b.location.protocol?"*":b.location.protocol+\n"//"+b.location.host,a=goog.bind(function(a){if(("*"==d||a.origin==d)&&a.data==c)this.port1.onmessage()},this);b.addEventListener("message",a,!1);this.port1={};this.port2={postMessage:function(){b.postMessage(c,d)}}});if("undefined"!==typeof a&&!goog.labs.userAgent.browser.isIE()){var b=new a,c={},d=c;b.port1.onmessage=function(){if(goog.isDef(c.next)){c=c.next;var a=c.cb;c.cb=null;a()}};return function(a){d.next={cb:a};d=d.next;b.port2.postMessage(0)}}return"undefined"!==typeof document&&"onreadystatechange"in\ndocument.createElement("SCRIPT")?function(a){var b=document.createElement("SCRIPT");b.onreadystatechange=function(){b.onreadystatechange=null;b.parentNode.removeChild(b);b=null;a();a=null};document.documentElement.appendChild(b)}:function(a){goog.global.setTimeout(a,0)}};goog.async.nextTick.wrapCallback_=goog.functions.identity;goog.debug.entryPointRegistry.register(function(a){goog.async.nextTick.wrapCallback_=a});goog.async.run=function(a,b){goog.async.run.schedule_||goog.async.run.initializeRunner_();goog.async.run.workQueueScheduled_||(goog.async.run.schedule_(),goog.async.run.workQueueScheduled_=!0);goog.async.run.workQueue_.add(a,b)};goog.async.run.initializeRunner_=function(){var a=goog.global.Promise;if(-1!=String(a).indexOf("[native code]")){var b=a.resolve(void 0);goog.async.run.schedule_=function(){b.then(goog.async.run.processWorkQueue)}}else goog.async.run.schedule_=function(){goog.async.nextTick(goog.async.run.processWorkQueue)}};\ngoog.async.run.forceNextTick=function(a){goog.async.run.schedule_=function(){goog.async.nextTick(goog.async.run.processWorkQueue);a&&a(goog.async.run.processWorkQueue)}};goog.async.run.workQueueScheduled_=!1;goog.async.run.workQueue_=new goog.async.WorkQueue;goog.DEBUG&&(goog.async.run.resetQueue=function(){goog.async.run.workQueueScheduled_=!1;goog.async.run.workQueue_=new goog.async.WorkQueue});\ngoog.async.run.processWorkQueue=function(){for(var a;a=goog.async.run.workQueue_.remove();){try{a.fn.call(a.scope)}catch(b){goog.async.throwException(b)}goog.async.run.workQueue_.returnUnused(a)}goog.async.run.workQueueScheduled_=!1};goog.promise={};goog.promise.Resolver=function(){};goog.Promise=function(a,b){this.state_=goog.Promise.State_.PENDING;this.result_=void 0;this.callbackEntriesTail_=this.callbackEntries_=this.parent_=null;this.executing_=!1;0<goog.Promise.UNHANDLED_REJECTION_DELAY?this.unhandledRejectionId_=0:0==goog.Promise.UNHANDLED_REJECTION_DELAY&&(this.hadUnhandledRejection_=!1);goog.Promise.LONG_STACK_TRACES&&(this.stack_=[],this.addStackTrace_(Error("created")),this.currentStep_=0);if(a!=goog.nullFunction)try{var c=this;a.call(b,function(a){c.resolve_(goog.Promise.State_.FULFILLED,\na)},function(a){if(goog.DEBUG&&!(a instanceof goog.Promise.CancellationError))try{if(a instanceof Error)throw a;throw Error("Promise rejected.");}catch(e){}c.resolve_(goog.Promise.State_.REJECTED,a)})}catch(d){this.resolve_(goog.Promise.State_.REJECTED,d)}};goog.Promise.LONG_STACK_TRACES=!1;goog.Promise.UNHANDLED_REJECTION_DELAY=0;goog.Promise.State_={PENDING:0,BLOCKED:1,FULFILLED:2,REJECTED:3};\ngoog.Promise.CallbackEntry_=function(){this.next=this.context=this.onRejected=this.onFulfilled=this.child=null;this.always=!1};goog.Promise.CallbackEntry_.prototype.reset=function(){this.context=this.onRejected=this.onFulfilled=this.child=null;this.always=!1};goog.Promise.DEFAULT_MAX_UNUSED=100;goog.Promise.freelist_=new goog.async.FreeList(function(){return new goog.Promise.CallbackEntry_},function(a){a.reset()},goog.Promise.DEFAULT_MAX_UNUSED);\ngoog.Promise.getCallbackEntry_=function(a,b,c){var d=goog.Promise.freelist_.get();d.onFulfilled=a;d.onRejected=b;d.context=c;return d};goog.Promise.returnEntry_=function(a){goog.Promise.freelist_.put(a)};goog.Promise.resolve=function(a){if(a instanceof goog.Promise)return a;var b=new goog.Promise(goog.nullFunction);b.resolve_(goog.Promise.State_.FULFILLED,a);return b};goog.Promise.reject=function(a){return new goog.Promise(function(b,c){c(a)})};\ngoog.Promise.resolveThen_=function(a,b,c){goog.Promise.maybeThen_(a,b,c,null)||goog.async.run(goog.partial(b,a))};goog.Promise.race=function(a){return new goog.Promise(function(b,c){a.length||b(void 0);for(var d=0,e;d<a.length;d++)e=a[d],goog.Promise.resolveThen_(e,b,c)})};\ngoog.Promise.all=function(a){return new goog.Promise(function(b,c){var d=a.length,e=[];if(d)for(var f=function(a,c){d--;e[a]=c;0==d&&b(e)},g=function(a){c(a)},h=0,k;h<a.length;h++)k=a[h],goog.Promise.resolveThen_(k,goog.partial(f,h),g);else b(e)})};\ngoog.Promise.allSettled=function(a){return new goog.Promise(function(b,c){var d=a.length,e=[];if(d)for(var f=function(a,c,f){d--;e[a]=c?{fulfilled:!0,value:f}:{fulfilled:!1,reason:f};0==d&&b(e)},g=0,h;g<a.length;g++)h=a[g],goog.Promise.resolveThen_(h,goog.partial(f,g,!0),goog.partial(f,g,!1));else b(e)})};\ngoog.Promise.firstFulfilled=function(a){return new goog.Promise(function(b,c){var d=a.length,e=[];if(d)for(var f=function(a){b(a)},g=function(a,b){d--;e[a]=b;0==d&&c(e)},h=0,k;h<a.length;h++)k=a[h],goog.Promise.resolveThen_(k,f,goog.partial(g,h));else b(void 0)})};goog.Promise.withResolver=function(){var a,b,c=new goog.Promise(function(c,e){a=c;b=e});return new goog.Promise.Resolver_(c,a,b)};\ngoog.Promise.prototype.then=function(a,b,c){null!=a&&goog.asserts.assertFunction(a,"opt_onFulfilled should be a function.");null!=b&&goog.asserts.assertFunction(b,"opt_onRejected should be a function. Did you pass opt_context as the second argument instead of the third?");goog.Promise.LONG_STACK_TRACES&&this.addStackTrace_(Error("then"));return this.addChildPromise_(goog.isFunction(a)?a:null,goog.isFunction(b)?b:null,c)};goog.Thenable.addImplementation(goog.Promise);\ngoog.Promise.prototype.thenVoid=function(a,b,c){null!=a&&goog.asserts.assertFunction(a,"opt_onFulfilled should be a function.");null!=b&&goog.asserts.assertFunction(b,"opt_onRejected should be a function. Did you pass opt_context as the second argument instead of the third?");goog.Promise.LONG_STACK_TRACES&&this.addStackTrace_(Error("then"));this.addCallbackEntry_(goog.Promise.getCallbackEntry_(a||goog.nullFunction,b||null,c))};\ngoog.Promise.prototype.thenAlways=function(a,b){goog.Promise.LONG_STACK_TRACES&&this.addStackTrace_(Error("thenAlways"));var c=goog.Promise.getCallbackEntry_(a,a,b);c.always=!0;this.addCallbackEntry_(c);return this};goog.Promise.prototype.thenCatch=function(a,b){goog.Promise.LONG_STACK_TRACES&&this.addStackTrace_(Error("thenCatch"));return this.addChildPromise_(null,a,b)};\ngoog.Promise.prototype.cancel=function(a){this.state_==goog.Promise.State_.PENDING&&goog.async.run(function(){var b=new goog.Promise.CancellationError(a);this.cancelInternal_(b)},this)};goog.Promise.prototype.cancelInternal_=function(a){this.state_==goog.Promise.State_.PENDING&&(this.parent_?(this.parent_.cancelChild_(this,a),this.parent_=null):this.resolve_(goog.Promise.State_.REJECTED,a))};\ngoog.Promise.prototype.cancelChild_=function(a,b){if(this.callbackEntries_){for(var c=0,d=null,e=null,f=this.callbackEntries_;f&&(f.always||(c++,f.child==a&&(d=f),!(d&&1<c)));f=f.next)d||(e=f);d&&(this.state_==goog.Promise.State_.PENDING&&1==c?this.cancelInternal_(b):(e?this.removeEntryAfter_(e):this.popEntry_(),this.executeCallback_(d,goog.Promise.State_.REJECTED,b)))}};\ngoog.Promise.prototype.addCallbackEntry_=function(a){this.hasEntry_()||this.state_!=goog.Promise.State_.FULFILLED&&this.state_!=goog.Promise.State_.REJECTED||this.scheduleCallbacks_();this.queueEntry_(a)};\ngoog.Promise.prototype.addChildPromise_=function(a,b,c){var d=goog.Promise.getCallbackEntry_(null,null,null);d.child=new goog.Promise(function(e,f){d.onFulfilled=a?function(b){try{var d=a.call(c,b);e(d)}catch(k){f(k)}}:e;d.onRejected=b?function(a){try{var d=b.call(c,a);!goog.isDef(d)&&a instanceof goog.Promise.CancellationError?f(a):e(d)}catch(k){f(k)}}:f});d.child.parent_=this;this.addCallbackEntry_(d);return d.child};\ngoog.Promise.prototype.unblockAndFulfill_=function(a){goog.asserts.assert(this.state_==goog.Promise.State_.BLOCKED);this.state_=goog.Promise.State_.PENDING;this.resolve_(goog.Promise.State_.FULFILLED,a)};goog.Promise.prototype.unblockAndReject_=function(a){goog.asserts.assert(this.state_==goog.Promise.State_.BLOCKED);this.state_=goog.Promise.State_.PENDING;this.resolve_(goog.Promise.State_.REJECTED,a)};\ngoog.Promise.prototype.resolve_=function(a,b){this.state_==goog.Promise.State_.PENDING&&(this===b&&(a=goog.Promise.State_.REJECTED,b=new TypeError("Promise cannot resolve to itself")),this.state_=goog.Promise.State_.BLOCKED,goog.Promise.maybeThen_(b,this.unblockAndFulfill_,this.unblockAndReject_,this)||(this.result_=b,this.state_=a,this.parent_=null,this.scheduleCallbacks_(),a!=goog.Promise.State_.REJECTED||b instanceof goog.Promise.CancellationError||goog.Promise.addUnhandledRejection_(this,b)))};\ngoog.Promise.maybeThen_=function(a,b,c,d){if(a instanceof goog.Promise)return a.thenVoid(b,c,d),!0;if(goog.Thenable.isImplementedBy(a))return a.then(b,c,d),!0;if(goog.isObject(a))try{var e=a.then;if(goog.isFunction(e))return goog.Promise.tryThen_(a,e,b,c,d),!0}catch(f){return c.call(d,f),!0}return!1};goog.Promise.tryThen_=function(a,b,c,d,e){var f=!1,g=function(a){f||(f=!0,c.call(e,a))},h=function(a){f||(f=!0,d.call(e,a))};try{b.call(a,g,h)}catch(k){h(k)}};\ngoog.Promise.prototype.scheduleCallbacks_=function(){this.executing_||(this.executing_=!0,goog.async.run(this.executeCallbacks_,this))};goog.Promise.prototype.hasEntry_=function(){return!!this.callbackEntries_};goog.Promise.prototype.queueEntry_=function(a){goog.asserts.assert(null!=a.onFulfilled);this.callbackEntriesTail_?this.callbackEntriesTail_.next=a:this.callbackEntries_=a;this.callbackEntriesTail_=a};\ngoog.Promise.prototype.popEntry_=function(){var a=null;this.callbackEntries_&&(a=this.callbackEntries_,this.callbackEntries_=a.next,a.next=null);this.callbackEntries_||(this.callbackEntriesTail_=null);null!=a&&goog.asserts.assert(null!=a.onFulfilled);return a};goog.Promise.prototype.removeEntryAfter_=function(a){goog.asserts.assert(this.callbackEntries_);goog.asserts.assert(null!=a);a.next==this.callbackEntriesTail_&&(this.callbackEntriesTail_=a);a.next=a.next.next};\ngoog.Promise.prototype.executeCallbacks_=function(){for(var a;a=this.popEntry_();)goog.Promise.LONG_STACK_TRACES&&this.currentStep_++,this.executeCallback_(a,this.state_,this.result_);this.executing_=!1};\ngoog.Promise.prototype.executeCallback_=function(a,b,c){b==goog.Promise.State_.REJECTED&&a.onRejected&&!a.always&&this.removeUnhandledRejection_();if(a.child)a.child.parent_=null,goog.Promise.invokeCallback_(a,b,c);else try{a.always?a.onFulfilled.call(a.context):goog.Promise.invokeCallback_(a,b,c)}catch(d){goog.Promise.handleRejection_.call(null,d)}goog.Promise.returnEntry_(a)};\ngoog.Promise.invokeCallback_=function(a,b,c){b==goog.Promise.State_.FULFILLED?a.onFulfilled.call(a.context,c):a.onRejected&&a.onRejected.call(a.context,c)};goog.Promise.prototype.addStackTrace_=function(a){if(goog.Promise.LONG_STACK_TRACES&&goog.isString(a.stack)){var b=a.stack.split("\\n",4)[3];a=a.message;a+=Array(11-a.length).join(" ");this.stack_.push(a+b)}};\ngoog.Promise.prototype.appendLongStack_=function(a){if(goog.Promise.LONG_STACK_TRACES&&a&&goog.isString(a.stack)&&this.stack_.length){for(var b=["Promise trace:"],c=this;c;c=c.parent_){for(var d=this.currentStep_;0<=d;d--)b.push(c.stack_[d]);b.push("Value: ["+(c.state_==goog.Promise.State_.REJECTED?"REJECTED":"FULFILLED")+"] <"+String(c.result_)+">")}a.stack+="\\n\\n"+b.join("\\n")}};\ngoog.Promise.prototype.removeUnhandledRejection_=function(){if(0<goog.Promise.UNHANDLED_REJECTION_DELAY)for(var a=this;a&&a.unhandledRejectionId_;a=a.parent_)goog.global.clearTimeout(a.unhandledRejectionId_),a.unhandledRejectionId_=0;else if(0==goog.Promise.UNHANDLED_REJECTION_DELAY)for(a=this;a&&a.hadUnhandledRejection_;a=a.parent_)a.hadUnhandledRejection_=!1};\ngoog.Promise.addUnhandledRejection_=function(a,b){0<goog.Promise.UNHANDLED_REJECTION_DELAY?a.unhandledRejectionId_=goog.global.setTimeout(function(){a.appendLongStack_(b);goog.Promise.handleRejection_.call(null,b)},goog.Promise.UNHANDLED_REJECTION_DELAY):0==goog.Promise.UNHANDLED_REJECTION_DELAY&&(a.hadUnhandledRejection_=!0,goog.async.run(function(){a.hadUnhandledRejection_&&(a.appendLongStack_(b),goog.Promise.handleRejection_.call(null,b))}))};goog.Promise.handleRejection_=goog.async.throwException;\ngoog.Promise.setUnhandledRejectionHandler=function(a){goog.Promise.handleRejection_=a};goog.Promise.CancellationError=function(a){goog.debug.Error.call(this,a)};goog.inherits(goog.Promise.CancellationError,goog.debug.Error);goog.Promise.CancellationError.prototype.name="cancel";goog.Promise.Resolver_=function(a,b,c){this.promise=a;this.resolve=b;this.reject=c};goog.events.EventTarget=function(){goog.Disposable.call(this);this.eventTargetListeners_=new goog.events.ListenerMap(this);this.actualEventTarget_=this;this.parentEventTarget_=null};goog.inherits(goog.events.EventTarget,goog.Disposable);goog.events.Listenable.addImplementation(goog.events.EventTarget);goog.events.EventTarget.MAX_ANCESTORS_=1E3;goog.events.EventTarget.prototype.getParentEventTarget=function(){return this.parentEventTarget_};\ngoog.events.EventTarget.prototype.setParentEventTarget=function(a){this.parentEventTarget_=a};goog.events.EventTarget.prototype.addEventListener=function(a,b,c,d){goog.events.listen(this,a,b,c,d)};goog.events.EventTarget.prototype.removeEventListener=function(a,b,c,d){goog.events.unlisten(this,a,b,c,d)};\ngoog.events.EventTarget.prototype.dispatchEvent=function(a){this.assertInitialized_();var b,c=this.getParentEventTarget();if(c){b=[];for(var d=1;c;c=c.getParentEventTarget())b.push(c),goog.asserts.assert(++d<goog.events.EventTarget.MAX_ANCESTORS_,"infinite loop")}return goog.events.EventTarget.dispatchEventInternal_(this.actualEventTarget_,a,b)};\ngoog.events.EventTarget.prototype.disposeInternal=function(){goog.events.EventTarget.superClass_.disposeInternal.call(this);this.removeAllListeners();this.parentEventTarget_=null};goog.events.EventTarget.prototype.listen=function(a,b,c,d){this.assertInitialized_();return this.eventTargetListeners_.add(String(a),b,!1,c,d)};goog.events.EventTarget.prototype.listenOnce=function(a,b,c,d){return this.eventTargetListeners_.add(String(a),b,!0,c,d)};\ngoog.events.EventTarget.prototype.unlisten=function(a,b,c,d){return this.eventTargetListeners_.remove(String(a),b,c,d)};goog.events.EventTarget.prototype.unlistenByKey=function(a){return this.eventTargetListeners_.removeByKey(a)};goog.events.EventTarget.prototype.removeAllListeners=function(a){return this.eventTargetListeners_?this.eventTargetListeners_.removeAll(a):0};\ngoog.events.EventTarget.prototype.fireListeners=function(a,b,c){a=this.eventTargetListeners_.listeners[String(a)];if(!a)return!0;a=a.concat();for(var d=!0,e=0;e<a.length;++e){var f=a[e];if(f&&!f.removed&&f.capture==b){var g=f.listener,h=f.handler||f.src;f.callOnce&&this.unlistenByKey(f);d=!1!==g.call(h,c)&&d}}return d&&0!=c.returnValue_};goog.events.EventTarget.prototype.getListeners=function(a,b){return this.eventTargetListeners_.getListeners(String(a),b)};\ngoog.events.EventTarget.prototype.getListener=function(a,b,c,d){return this.eventTargetListeners_.getListener(String(a),b,c,d)};goog.events.EventTarget.prototype.hasListener=function(a,b){var c=goog.isDef(a)?String(a):void 0;return this.eventTargetListeners_.hasListener(c,b)};goog.events.EventTarget.prototype.setTargetForTesting=function(a){this.actualEventTarget_=a};goog.events.EventTarget.prototype.assertInitialized_=function(){goog.asserts.assert(this.eventTargetListeners_,"Event target is not initialized. Did you call the superclass (goog.events.EventTarget) constructor?")};\ngoog.events.EventTarget.dispatchEventInternal_=function(a,b,c){var d=b.type||b;if(goog.isString(b))b=new goog.events.Event(b,a);else if(b instanceof goog.events.Event)b.target=b.target||a;else{var e=b;b=new goog.events.Event(d,a);goog.object.extend(b,e)}var e=!0,f;if(c)for(var g=c.length-1;!b.propagationStopped_&&0<=g;g--)f=b.currentTarget=c[g],e=f.fireListeners(d,!0,b)&&e;b.propagationStopped_||(f=b.currentTarget=a,e=f.fireListeners(d,!0,b)&&e,b.propagationStopped_||(e=f.fireListeners(d,!1,b)&&e));\nif(c)for(g=0;!b.propagationStopped_&&g<c.length;g++)f=b.currentTarget=c[g],e=f.fireListeners(d,!1,b)&&e;return e};goog.Timer=function(a,b){goog.events.EventTarget.call(this);this.interval_=a||1;this.timerObject_=b||goog.Timer.defaultTimerObject;this.boundTick_=goog.bind(this.tick_,this);this.last_=goog.now()};goog.inherits(goog.Timer,goog.events.EventTarget);goog.Timer.MAX_TIMEOUT_=2147483647;goog.Timer.INVALID_TIMEOUT_ID_=-1;goog.Timer.prototype.enabled=!1;goog.Timer.defaultTimerObject=goog.global;goog.Timer.intervalScale=.8;goog.Timer.prototype.timer_=null;goog.Timer.prototype.getInterval=function(){return this.interval_};\ngoog.Timer.prototype.setInterval=function(a){this.interval_=a;this.timer_&&this.enabled?(this.stop(),this.start()):this.timer_&&this.stop()};\ngoog.Timer.prototype.tick_=function(){if(this.enabled){var a=goog.now()-this.last_;0<a&&a<this.interval_*goog.Timer.intervalScale?this.timer_=this.timerObject_.setTimeout(this.boundTick_,this.interval_-a):(this.timer_&&(this.timerObject_.clearTimeout(this.timer_),this.timer_=null),this.dispatchTick(),this.enabled&&(this.timer_=this.timerObject_.setTimeout(this.boundTick_,this.interval_),this.last_=goog.now()))}};goog.Timer.prototype.dispatchTick=function(){this.dispatchEvent(goog.Timer.TICK)};\ngoog.Timer.prototype.start=function(){this.enabled=!0;this.timer_||(this.timer_=this.timerObject_.setTimeout(this.boundTick_,this.interval_),this.last_=goog.now())};goog.Timer.prototype.stop=function(){this.enabled=!1;this.timer_&&(this.timerObject_.clearTimeout(this.timer_),this.timer_=null)};goog.Timer.prototype.disposeInternal=function(){goog.Timer.superClass_.disposeInternal.call(this);this.stop();delete this.timerObject_};goog.Timer.TICK="tick";\ngoog.Timer.callOnce=function(a,b,c){if(goog.isFunction(a))c&&(a=goog.bind(a,c));else if(a&&"function"==typeof a.handleEvent)a=goog.bind(a.handleEvent,a);else throw Error("Invalid listener argument");return Number(b)>goog.Timer.MAX_TIMEOUT_?goog.Timer.INVALID_TIMEOUT_ID_:goog.Timer.defaultTimerObject.setTimeout(a,b||0)};goog.Timer.clear=function(a){goog.Timer.defaultTimerObject.clearTimeout(a)};\ngoog.Timer.promise=function(a,b){var c=null;return(new goog.Promise(function(d,e){c=goog.Timer.callOnce(function(){d(b)},a);c==goog.Timer.INVALID_TIMEOUT_ID_&&e(Error("Failed to schedule timer."))})).thenCatch(function(a){goog.Timer.clear(c);throw a;})};goog.events.EventHandler=function(a){goog.Disposable.call(this);this.handler_=a;this.keys_={}};goog.inherits(goog.events.EventHandler,goog.Disposable);goog.events.EventHandler.typeArray_=[];goog.events.EventHandler.prototype.listen=function(a,b,c,d){return this.listen_(a,b,c,d)};goog.events.EventHandler.prototype.listenWithScope=function(a,b,c,d,e){return this.listen_(a,b,c,d,e)};\ngoog.events.EventHandler.prototype.listen_=function(a,b,c,d,e){goog.isArray(b)||(b&&(goog.events.EventHandler.typeArray_[0]=b.toString()),b=goog.events.EventHandler.typeArray_);for(var f=0;f<b.length;f++){var g=goog.events.listen(a,b[f],c||this.handleEvent,d||!1,e||this.handler_||this);if(!g)break;this.keys_[g.key]=g}return this};goog.events.EventHandler.prototype.listenOnce=function(a,b,c,d){return this.listenOnce_(a,b,c,d)};\ngoog.events.EventHandler.prototype.listenOnceWithScope=function(a,b,c,d,e){return this.listenOnce_(a,b,c,d,e)};goog.events.EventHandler.prototype.listenOnce_=function(a,b,c,d,e){if(goog.isArray(b))for(var f=0;f<b.length;f++)this.listenOnce_(a,b[f],c,d,e);else{a=goog.events.listenOnce(a,b,c||this.handleEvent,d,e||this.handler_||this);if(!a)return this;this.keys_[a.key]=a}return this};goog.events.EventHandler.prototype.listenWithWrapper=function(a,b,c,d){return this.listenWithWrapper_(a,b,c,d)};\ngoog.events.EventHandler.prototype.listenWithWrapperAndScope=function(a,b,c,d,e){return this.listenWithWrapper_(a,b,c,d,e)};goog.events.EventHandler.prototype.listenWithWrapper_=function(a,b,c,d,e){b.listen(a,c,d,e||this.handler_||this,this);return this};goog.events.EventHandler.prototype.getListenerCount=function(){var a=0,b;for(b in this.keys_)Object.prototype.hasOwnProperty.call(this.keys_,b)&&a++;return a};\ngoog.events.EventHandler.prototype.unlisten=function(a,b,c,d,e){if(goog.isArray(b))for(var f=0;f<b.length;f++)this.unlisten(a,b[f],c,d,e);else if(a=goog.events.getListener(a,b,c||this.handleEvent,d,e||this.handler_||this))goog.events.unlistenByKey(a),delete this.keys_[a.key];return this};goog.events.EventHandler.prototype.unlistenWithWrapper=function(a,b,c,d,e){b.unlisten(a,c,d,e||this.handler_||this,this);return this};\ngoog.events.EventHandler.prototype.removeAll=function(){goog.object.forEach(this.keys_,function(a,b){this.keys_.hasOwnProperty(b)&&goog.events.unlistenByKey(a)},this);this.keys_={}};goog.events.EventHandler.prototype.disposeInternal=function(){goog.events.EventHandler.superClass_.disposeInternal.call(this);this.removeAll()};goog.events.EventHandler.prototype.handleEvent=function(a){throw Error("EventHandler.handleEvent not implemented");};goog.ui={};goog.ui.IdGenerator=function(){};goog.addSingletonGetter(goog.ui.IdGenerator);goog.ui.IdGenerator.prototype.nextId_=0;goog.ui.IdGenerator.prototype.getNextUniqueId=function(){return":"+(this.nextId_++).toString(36)};goog.ui.Component=function(a){goog.events.EventTarget.call(this);this.dom_=a||goog.dom.getDomHelper();this.rightToLeft_=goog.ui.Component.defaultRightToLeft_;this.id_=null;this.inDocument_=!1;this.element_=null;this.googUiComponentHandler_=void 0;this.childIndex_=this.children_=this.parent_=this.model_=null;this.wasDecorated_=!1};goog.inherits(goog.ui.Component,goog.events.EventTarget);goog.ui.Component.ALLOW_DETACHED_DECORATION=!1;goog.ui.Component.prototype.idGenerator_=goog.ui.IdGenerator.getInstance();\ngoog.ui.Component.DEFAULT_BIDI_DIR=0;goog.ui.Component.defaultRightToLeft_=1==goog.ui.Component.DEFAULT_BIDI_DIR?!1:-1==goog.ui.Component.DEFAULT_BIDI_DIR?!0:null;\ngoog.ui.Component.EventType={BEFORE_SHOW:"beforeshow",SHOW:"show",HIDE:"hide",DISABLE:"disable",ENABLE:"enable",HIGHLIGHT:"highlight",UNHIGHLIGHT:"unhighlight",ACTIVATE:"activate",DEACTIVATE:"deactivate",SELECT:"select",UNSELECT:"unselect",CHECK:"check",UNCHECK:"uncheck",FOCUS:"focus",BLUR:"blur",OPEN:"open",CLOSE:"close",ENTER:"enter",LEAVE:"leave",ACTION:"action",CHANGE:"change"};\ngoog.ui.Component.Error={NOT_SUPPORTED:"Method not supported",DECORATE_INVALID:"Invalid element to decorate",ALREADY_RENDERED:"Component already rendered",PARENT_UNABLE_TO_BE_SET:"Unable to set parent component",CHILD_INDEX_OUT_OF_BOUNDS:"Child component index out of bounds",NOT_OUR_CHILD:"Child is not in parent component",NOT_IN_DOCUMENT:"Operation not supported while component is not in document",STATE_INVALID:"Invalid component state"};\ngoog.ui.Component.State={ALL:255,DISABLED:1,HOVER:2,ACTIVE:4,SELECTED:8,CHECKED:16,FOCUSED:32,OPENED:64};\ngoog.ui.Component.getStateTransitionEvent=function(a,b){switch(a){case goog.ui.Component.State.DISABLED:return b?goog.ui.Component.EventType.DISABLE:goog.ui.Component.EventType.ENABLE;case goog.ui.Component.State.HOVER:return b?goog.ui.Component.EventType.HIGHLIGHT:goog.ui.Component.EventType.UNHIGHLIGHT;case goog.ui.Component.State.ACTIVE:return b?goog.ui.Component.EventType.ACTIVATE:goog.ui.Component.EventType.DEACTIVATE;case goog.ui.Component.State.SELECTED:return b?goog.ui.Component.EventType.SELECT:\ngoog.ui.Component.EventType.UNSELECT;case goog.ui.Component.State.CHECKED:return b?goog.ui.Component.EventType.CHECK:goog.ui.Component.EventType.UNCHECK;case goog.ui.Component.State.FOCUSED:return b?goog.ui.Component.EventType.FOCUS:goog.ui.Component.EventType.BLUR;case goog.ui.Component.State.OPENED:return b?goog.ui.Component.EventType.OPEN:goog.ui.Component.EventType.CLOSE}throw Error(goog.ui.Component.Error.STATE_INVALID);};\ngoog.ui.Component.setDefaultRightToLeft=function(a){goog.ui.Component.defaultRightToLeft_=a};goog.ui.Component.prototype.getId=function(){return this.id_||(this.id_=this.idGenerator_.getNextUniqueId())};goog.ui.Component.prototype.setId=function(a){this.parent_&&this.parent_.childIndex_&&(goog.object.remove(this.parent_.childIndex_,this.id_),goog.object.add(this.parent_.childIndex_,a,this));this.id_=a};goog.ui.Component.prototype.getElement=function(){return this.element_};\ngoog.ui.Component.prototype.getElementStrict=function(){var a=this.element_;goog.asserts.assert(a,"Can not call getElementStrict before rendering/decorating.");return a};goog.ui.Component.prototype.setElementInternal=function(a){this.element_=a};goog.ui.Component.prototype.getElementsByClass=function(a){return this.element_?this.dom_.getElementsByClass(a,this.element_):[]};goog.ui.Component.prototype.getElementByClass=function(a){return this.element_?this.dom_.getElementByClass(a,this.element_):null};\ngoog.ui.Component.prototype.getRequiredElementByClass=function(a){var b=this.getElementByClass(a);goog.asserts.assert(b,"Expected element in component with class: %s",a);return b};goog.ui.Component.prototype.getHandler=function(){this.googUiComponentHandler_||(this.googUiComponentHandler_=new goog.events.EventHandler(this));return this.googUiComponentHandler_};\ngoog.ui.Component.prototype.setParent=function(a){if(this==a)throw Error(goog.ui.Component.Error.PARENT_UNABLE_TO_BE_SET);if(a&&this.parent_&&this.id_&&this.parent_.getChild(this.id_)&&this.parent_!=a)throw Error(goog.ui.Component.Error.PARENT_UNABLE_TO_BE_SET);this.parent_=a;goog.ui.Component.superClass_.setParentEventTarget.call(this,a)};goog.ui.Component.prototype.getParent=function(){return this.parent_};\ngoog.ui.Component.prototype.setParentEventTarget=function(a){if(this.parent_&&this.parent_!=a)throw Error(goog.ui.Component.Error.NOT_SUPPORTED);goog.ui.Component.superClass_.setParentEventTarget.call(this,a)};goog.ui.Component.prototype.getDomHelper=function(){return this.dom_};goog.ui.Component.prototype.isInDocument=function(){return this.inDocument_};goog.ui.Component.prototype.createDom=function(){this.element_=this.dom_.createElement("DIV")};goog.ui.Component.prototype.render=function(a){this.render_(a)};\ngoog.ui.Component.prototype.renderBefore=function(a){this.render_(a.parentNode,a)};goog.ui.Component.prototype.render_=function(a,b){if(this.inDocument_)throw Error(goog.ui.Component.Error.ALREADY_RENDERED);this.element_||this.createDom();a?a.insertBefore(this.element_,b||null):this.dom_.getDocument().body.appendChild(this.element_);this.parent_&&!this.parent_.isInDocument()||this.enterDocument()};\ngoog.ui.Component.prototype.decorate=function(a){if(this.inDocument_)throw Error(goog.ui.Component.Error.ALREADY_RENDERED);if(a&&this.canDecorate(a)){this.wasDecorated_=!0;var b=goog.dom.getOwnerDocument(a);this.dom_&&this.dom_.getDocument()==b||(this.dom_=goog.dom.getDomHelper(a));this.decorateInternal(a);goog.ui.Component.ALLOW_DETACHED_DECORATION&&!goog.dom.contains(b,a)||this.enterDocument()}else throw Error(goog.ui.Component.Error.DECORATE_INVALID);};goog.ui.Component.prototype.canDecorate=function(a){return!0};\ngoog.ui.Component.prototype.wasDecorated=function(){return this.wasDecorated_};goog.ui.Component.prototype.decorateInternal=function(a){this.element_=a};goog.ui.Component.prototype.enterDocument=function(){this.inDocument_=!0;this.forEachChild(function(a){!a.isInDocument()&&a.getElement()&&a.enterDocument()})};\ngoog.ui.Component.prototype.exitDocument=function(){this.forEachChild(function(a){a.isInDocument()&&a.exitDocument()});this.googUiComponentHandler_&&this.googUiComponentHandler_.removeAll();this.inDocument_=!1};\ngoog.ui.Component.prototype.disposeInternal=function(){this.inDocument_&&this.exitDocument();this.googUiComponentHandler_&&(this.googUiComponentHandler_.dispose(),delete this.googUiComponentHandler_);this.forEachChild(function(a){a.dispose()});!this.wasDecorated_&&this.element_&&goog.dom.removeNode(this.element_);this.parent_=this.model_=this.element_=this.childIndex_=this.children_=null;goog.ui.Component.superClass_.disposeInternal.call(this)};\ngoog.ui.Component.prototype.makeId=function(a){return this.getId()+"."+a};goog.ui.Component.prototype.makeIds=function(a){var b={},c;for(c in a)b[c]=this.makeId(a[c]);return b};goog.ui.Component.prototype.getModel=function(){return this.model_};goog.ui.Component.prototype.setModel=function(a){this.model_=a};goog.ui.Component.prototype.getFragmentFromId=function(a){return a.substring(this.getId().length+1)};\ngoog.ui.Component.prototype.getElementByFragment=function(a){if(!this.inDocument_)throw Error(goog.ui.Component.Error.NOT_IN_DOCUMENT);return this.dom_.getElement(this.makeId(a))};goog.ui.Component.prototype.addChild=function(a,b){this.addChildAt(a,this.getChildCount(),b)};\ngoog.ui.Component.prototype.addChildAt=function(a,b,c){goog.asserts.assert(!!a,"Provided element must not be null.");if(a.inDocument_&&(c||!this.inDocument_))throw Error(goog.ui.Component.Error.ALREADY_RENDERED);if(0>b||b>this.getChildCount())throw Error(goog.ui.Component.Error.CHILD_INDEX_OUT_OF_BOUNDS);this.childIndex_&&this.children_||(this.childIndex_={},this.children_=[]);a.getParent()==this?(goog.object.set(this.childIndex_,a.getId(),a),goog.array.remove(this.children_,a)):goog.object.add(this.childIndex_,\na.getId(),a);a.setParent(this);goog.array.insertAt(this.children_,a,b);a.inDocument_&&this.inDocument_&&a.getParent()==this?(c=this.getContentElement(),b=c.childNodes[b]||null,b!=a.getElement()&&c.insertBefore(a.getElement(),b)):c?(this.element_||this.createDom(),b=this.getChildAt(b+1),a.render_(this.getContentElement(),b?b.element_:null)):this.inDocument_&&!a.inDocument_&&a.element_&&a.element_.parentNode&&a.element_.parentNode.nodeType==goog.dom.NodeType.ELEMENT&&a.enterDocument()};\ngoog.ui.Component.prototype.getContentElement=function(){return this.element_};goog.ui.Component.prototype.isRightToLeft=function(){null==this.rightToLeft_&&(this.rightToLeft_=goog.style.isRightToLeft(this.inDocument_?this.element_:this.dom_.getDocument().body));return this.rightToLeft_};goog.ui.Component.prototype.setRightToLeft=function(a){if(this.inDocument_)throw Error(goog.ui.Component.Error.ALREADY_RENDERED);this.rightToLeft_=a};\ngoog.ui.Component.prototype.hasChildren=function(){return!!this.children_&&0!=this.children_.length};goog.ui.Component.prototype.getChildCount=function(){return this.children_?this.children_.length:0};goog.ui.Component.prototype.getChildIds=function(){var a=[];this.forEachChild(function(b){a.push(b.getId())});return a};goog.ui.Component.prototype.getChild=function(a){return this.childIndex_&&a?goog.object.get(this.childIndex_,a)||null:null};\ngoog.ui.Component.prototype.getChildAt=function(a){return this.children_?this.children_[a]||null:null};goog.ui.Component.prototype.forEachChild=function(a,b){this.children_&&goog.array.forEach(this.children_,a,b)};goog.ui.Component.prototype.indexOfChild=function(a){return this.children_&&a?goog.array.indexOf(this.children_,a):-1};\ngoog.ui.Component.prototype.removeChild=function(a,b){if(a){var c=goog.isString(a)?a:a.getId();a=this.getChild(c);c&&a&&(goog.object.remove(this.childIndex_,c),goog.array.remove(this.children_,a),b&&(a.exitDocument(),a.element_&&goog.dom.removeNode(a.element_)),a.setParent(null))}if(!a)throw Error(goog.ui.Component.Error.NOT_OUR_CHILD);return a};goog.ui.Component.prototype.removeChildAt=function(a,b){return this.removeChild(this.getChildAt(a),b)};\ngoog.ui.Component.prototype.removeChildren=function(a){for(var b=[];this.hasChildren();)b.push(this.removeChildAt(0,a));return b};goog.a11y={};goog.a11y.aria={};\ngoog.a11y.aria.Role={ALERT:"alert",ALERTDIALOG:"alertdialog",APPLICATION:"application",ARTICLE:"article",BANNER:"banner",BUTTON:"button",CHECKBOX:"checkbox",COLUMNHEADER:"columnheader",COMBOBOX:"combobox",COMPLEMENTARY:"complementary",CONTENTINFO:"contentinfo",DEFINITION:"definition",DIALOG:"dialog",DIRECTORY:"directory",DOCUMENT:"document",FORM:"form",GRID:"grid",GRIDCELL:"gridcell",GROUP:"group",HEADING:"heading",IMG:"img",LINK:"link",LIST:"list",LISTBOX:"listbox",LISTITEM:"listitem",LOG:"log",\nMAIN:"main",MARQUEE:"marquee",MATH:"math",MENU:"menu",MENUBAR:"menubar",MENU_ITEM:"menuitem",MENU_ITEM_CHECKBOX:"menuitemcheckbox",MENU_ITEM_RADIO:"menuitemradio",NAVIGATION:"navigation",NOTE:"note",OPTION:"option",PRESENTATION:"presentation",PROGRESSBAR:"progressbar",RADIO:"radio",RADIOGROUP:"radiogroup",REGION:"region",ROW:"row",ROWGROUP:"rowgroup",ROWHEADER:"rowheader",SCROLLBAR:"scrollbar",SEARCH:"search",SEPARATOR:"separator",SLIDER:"slider",SPINBUTTON:"spinbutton",STATUS:"status",TAB:"tab",\nTAB_LIST:"tablist",TAB_PANEL:"tabpanel",TEXTBOX:"textbox",TEXTINFO:"textinfo",TIMER:"timer",TOOLBAR:"toolbar",TOOLTIP:"tooltip",TREE:"tree",TREEGRID:"treegrid",TREEITEM:"treeitem"};goog.a11y.aria.State={ACTIVEDESCENDANT:"activedescendant",ATOMIC:"atomic",AUTOCOMPLETE:"autocomplete",BUSY:"busy",CHECKED:"checked",CONTROLS:"controls",DESCRIBEDBY:"describedby",DISABLED:"disabled",DROPEFFECT:"dropeffect",EXPANDED:"expanded",FLOWTO:"flowto",GRABBED:"grabbed",HASPOPUP:"haspopup",HIDDEN:"hidden",INVALID:"invalid",LABEL:"label",LABELLEDBY:"labelledby",LEVEL:"level",LIVE:"live",MULTILINE:"multiline",MULTISELECTABLE:"multiselectable",ORIENTATION:"orientation",OWNS:"owns",POSINSET:"posinset",\nPRESSED:"pressed",READONLY:"readonly",RELEVANT:"relevant",REQUIRED:"required",SELECTED:"selected",SETSIZE:"setsize",SORT:"sort",VALUEMAX:"valuemax",VALUEMIN:"valuemin",VALUENOW:"valuenow",VALUETEXT:"valuetext"};goog.a11y.aria.AutoCompleteValues={INLINE:"inline",LIST:"list",BOTH:"both",NONE:"none"};goog.a11y.aria.DropEffectValues={COPY:"copy",MOVE:"move",LINK:"link",EXECUTE:"execute",POPUP:"popup",NONE:"none"};goog.a11y.aria.LivePriority={OFF:"off",POLITE:"polite",ASSERTIVE:"assertive"};\ngoog.a11y.aria.OrientationValues={VERTICAL:"vertical",HORIZONTAL:"horizontal"};goog.a11y.aria.RelevantValues={ADDITIONS:"additions",REMOVALS:"removals",TEXT:"text",ALL:"all"};goog.a11y.aria.SortValues={ASCENDING:"ascending",DESCENDING:"descending",NONE:"none",OTHER:"other"};goog.a11y.aria.CheckedValues={TRUE:"true",FALSE:"false",MIXED:"mixed",UNDEFINED:"undefined"};goog.a11y.aria.ExpandedValues={TRUE:"true",FALSE:"false",UNDEFINED:"undefined"};\ngoog.a11y.aria.GrabbedValues={TRUE:"true",FALSE:"false",UNDEFINED:"undefined"};goog.a11y.aria.InvalidValues={FALSE:"false",TRUE:"true",GRAMMAR:"grammar",SPELLING:"spelling"};goog.a11y.aria.PressedValues={TRUE:"true",FALSE:"false",MIXED:"mixed",UNDEFINED:"undefined"};goog.a11y.aria.SelectedValues={TRUE:"true",FALSE:"false",UNDEFINED:"undefined"};goog.a11y.aria.datatables={};\ngoog.a11y.aria.datatables.getDefaultValuesMap=function(){goog.a11y.aria.DefaultStateValueMap_||(goog.a11y.aria.DefaultStateValueMap_=goog.object.create(goog.a11y.aria.State.ATOMIC,!1,goog.a11y.aria.State.AUTOCOMPLETE,"none",goog.a11y.aria.State.DROPEFFECT,"none",goog.a11y.aria.State.HASPOPUP,!1,goog.a11y.aria.State.LIVE,"off",goog.a11y.aria.State.MULTILINE,!1,goog.a11y.aria.State.MULTISELECTABLE,!1,goog.a11y.aria.State.ORIENTATION,"vertical",goog.a11y.aria.State.READONLY,!1,goog.a11y.aria.State.RELEVANT,\n"additions text",goog.a11y.aria.State.REQUIRED,!1,goog.a11y.aria.State.SORT,"none",goog.a11y.aria.State.BUSY,!1,goog.a11y.aria.State.DISABLED,!1,goog.a11y.aria.State.HIDDEN,!1,goog.a11y.aria.State.INVALID,"false"));return goog.a11y.aria.DefaultStateValueMap_};goog.a11y.aria.ARIA_PREFIX_="aria-";goog.a11y.aria.ROLE_ATTRIBUTE_="role";goog.a11y.aria.TAGS_WITH_ASSUMED_ROLES_=goog.object.createSet("A AREA BUTTON HEAD INPUT LINK MENU META OPTGROUP OPTION PROGRESS STYLE SELECT SOURCE TEXTAREA TITLE TRACK".split(" "));\ngoog.a11y.aria.CONTAINER_ROLES_=[goog.a11y.aria.Role.COMBOBOX,goog.a11y.aria.Role.GRID,goog.a11y.aria.Role.GROUP,goog.a11y.aria.Role.LISTBOX,goog.a11y.aria.Role.MENU,goog.a11y.aria.Role.MENUBAR,goog.a11y.aria.Role.RADIOGROUP,goog.a11y.aria.Role.ROW,goog.a11y.aria.Role.ROWGROUP,goog.a11y.aria.Role.TAB_LIST,goog.a11y.aria.Role.TEXTBOX,goog.a11y.aria.Role.TOOLBAR,goog.a11y.aria.Role.TREE,goog.a11y.aria.Role.TREEGRID];\ngoog.a11y.aria.setRole=function(a,b){b?(goog.asserts.ENABLE_ASSERTS&&goog.asserts.assert(goog.object.containsValue(goog.a11y.aria.Role,b),"No such ARIA role "+b),a.setAttribute(goog.a11y.aria.ROLE_ATTRIBUTE_,b)):goog.a11y.aria.removeRole(a)};goog.a11y.aria.getRole=function(a){return a.getAttribute(goog.a11y.aria.ROLE_ATTRIBUTE_)||null};goog.a11y.aria.removeRole=function(a){a.removeAttribute(goog.a11y.aria.ROLE_ATTRIBUTE_)};\ngoog.a11y.aria.setState=function(a,b,c){goog.isArray(c)&&(c=c.join(" "));var d=goog.a11y.aria.getAriaAttributeName_(b);""===c||void 0==c?(c=goog.a11y.aria.datatables.getDefaultValuesMap(),b in c?a.setAttribute(d,c[b]):a.removeAttribute(d)):a.setAttribute(d,c)};goog.a11y.aria.toggleState=function(a,b){var c=goog.a11y.aria.getState(a,b);goog.string.isEmptyOrWhitespace(goog.string.makeSafe(c))||"true"==c||"false"==c?goog.a11y.aria.setState(a,b,"true"==c?"false":"true"):goog.a11y.aria.removeState(a,b)};\ngoog.a11y.aria.removeState=function(a,b){a.removeAttribute(goog.a11y.aria.getAriaAttributeName_(b))};goog.a11y.aria.getState=function(a,b){var c=a.getAttribute(goog.a11y.aria.getAriaAttributeName_(b));return null==c||void 0==c?"":String(c)};goog.a11y.aria.getActiveDescendant=function(a){var b=goog.a11y.aria.getState(a,goog.a11y.aria.State.ACTIVEDESCENDANT);return goog.dom.getOwnerDocument(a).getElementById(b)};\ngoog.a11y.aria.setActiveDescendant=function(a,b){var c="";b&&(c=b.id,goog.asserts.assert(c,"The active element should have an id."));goog.a11y.aria.setState(a,goog.a11y.aria.State.ACTIVEDESCENDANT,c)};goog.a11y.aria.getLabel=function(a){return goog.a11y.aria.getState(a,goog.a11y.aria.State.LABEL)};goog.a11y.aria.setLabel=function(a,b){goog.a11y.aria.setState(a,goog.a11y.aria.State.LABEL,b)};\ngoog.a11y.aria.assertRoleIsSetInternalUtil=function(a,b){if(!goog.a11y.aria.TAGS_WITH_ASSUMED_ROLES_[a.tagName]){var c=goog.a11y.aria.getRole(a);goog.asserts.assert(null!=c,"The element ARIA role cannot be null.");goog.asserts.assert(goog.array.contains(b,c),\'Non existing or incorrect role set for element.The role set is "\'+c+\'". The role should be any of "\'+b+\'". Check the ARIA specification for more details http://www.w3.org/TR/wai-aria/roles.\')}};\ngoog.a11y.aria.getStateBoolean=function(a,b){var c=a.getAttribute(goog.a11y.aria.getAriaAttributeName_(b));goog.asserts.assert(goog.isBoolean(c)||null==c||"true"==c||"false"==c);return null==c?c:goog.isBoolean(c)?c:"true"==c};goog.a11y.aria.getStateNumber=function(a,b){var c=a.getAttribute(goog.a11y.aria.getAriaAttributeName_(b));goog.asserts.assert((null==c||!isNaN(Number(c)))&&!goog.isBoolean(c));return null==c?null:Number(c)};\ngoog.a11y.aria.getStateString=function(a,b){var c=a.getAttribute(goog.a11y.aria.getAriaAttributeName_(b));goog.asserts.assert((null==c||goog.isString(c))&&(""==c||isNaN(Number(c)))&&"true"!=c&&"false"!=c);return null==c||""==c?null:c};goog.a11y.aria.getStringArrayStateInternalUtil=function(a,b){var c=a.getAttribute(goog.a11y.aria.getAriaAttributeName_(b));return goog.a11y.aria.splitStringOnWhitespace_(c)};goog.a11y.aria.hasState=function(a,b){return a.hasAttribute(goog.a11y.aria.getAriaAttributeName_(b))};\ngoog.a11y.aria.isContainerRole=function(a){a=goog.a11y.aria.getRole(a);return goog.array.contains(goog.a11y.aria.CONTAINER_ROLES_,a)};goog.a11y.aria.splitStringOnWhitespace_=function(a){return a?a.split(/\\s+/):[]};goog.a11y.aria.getAriaAttributeName_=function(a){goog.asserts.ENABLE_ASSERTS&&(goog.asserts.assert(a,"ARIA attribute cannot be empty."),goog.asserts.assert(goog.object.containsValue(goog.a11y.aria.State,a),"No such ARIA attribute "+a));return goog.a11y.aria.ARIA_PREFIX_+a};goog.events.KeyCodes={WIN_KEY_FF_LINUX:0,MAC_ENTER:3,BACKSPACE:8,TAB:9,NUM_CENTER:12,ENTER:13,SHIFT:16,CTRL:17,ALT:18,PAUSE:19,CAPS_LOCK:20,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,PLUS_SIGN:43,PRINT_SCREEN:44,INSERT:45,DELETE:46,ZERO:48,ONE:49,TWO:50,THREE:51,FOUR:52,FIVE:53,SIX:54,SEVEN:55,EIGHT:56,NINE:57,FF_SEMICOLON:59,FF_EQUALS:61,FF_DASH:173,QUESTION_MARK:63,AT_SIGN:64,A:65,B:66,C:67,D:68,E:69,F:70,G:71,H:72,I:73,J:74,K:75,L:76,M:77,N:78,O:79,P:80,\nQ:81,R:82,S:83,T:84,U:85,V:86,W:87,X:88,Y:89,Z:90,META:91,WIN_KEY_RIGHT:92,CONTEXT_MENU:93,NUM_ZERO:96,NUM_ONE:97,NUM_TWO:98,NUM_THREE:99,NUM_FOUR:100,NUM_FIVE:101,NUM_SIX:102,NUM_SEVEN:103,NUM_EIGHT:104,NUM_NINE:105,NUM_MULTIPLY:106,NUM_PLUS:107,NUM_MINUS:109,NUM_PERIOD:110,NUM_DIVISION:111,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,NUMLOCK:144,SCROLL_LOCK:145,FIRST_MEDIA_KEY:166,LAST_MEDIA_KEY:183,SEMICOLON:186,DASH:189,EQUALS:187,COMMA:188,PERIOD:190,\nSLASH:191,APOSTROPHE:192,TILDE:192,SINGLE_QUOTE:222,OPEN_SQUARE_BRACKET:219,BACKSLASH:220,CLOSE_SQUARE_BRACKET:221,WIN_KEY:224,MAC_FF_META:224,MAC_WK_CMD_LEFT:91,MAC_WK_CMD_RIGHT:93,WIN_IME:229,VK_NONAME:252,PHANTOM:255};\ngoog.events.KeyCodes.isTextModifyingKeyEvent=function(a){if(a.altKey&&!a.ctrlKey||a.metaKey||a.keyCode>=goog.events.KeyCodes.F1&&a.keyCode<=goog.events.KeyCodes.F12)return!1;switch(a.keyCode){case goog.events.KeyCodes.ALT:case goog.events.KeyCodes.CAPS_LOCK:case goog.events.KeyCodes.CONTEXT_MENU:case goog.events.KeyCodes.CTRL:case goog.events.KeyCodes.DOWN:case goog.events.KeyCodes.END:case goog.events.KeyCodes.ESC:case goog.events.KeyCodes.HOME:case goog.events.KeyCodes.INSERT:case goog.events.KeyCodes.LEFT:case goog.events.KeyCodes.MAC_FF_META:case goog.events.KeyCodes.META:case goog.events.KeyCodes.NUMLOCK:case goog.events.KeyCodes.NUM_CENTER:case goog.events.KeyCodes.PAGE_DOWN:case goog.events.KeyCodes.PAGE_UP:case goog.events.KeyCodes.PAUSE:case goog.events.KeyCodes.PHANTOM:case goog.events.KeyCodes.PRINT_SCREEN:case goog.events.KeyCodes.RIGHT:case goog.events.KeyCodes.SCROLL_LOCK:case goog.events.KeyCodes.SHIFT:case goog.events.KeyCodes.UP:case goog.events.KeyCodes.VK_NONAME:case goog.events.KeyCodes.WIN_KEY:case goog.events.KeyCodes.WIN_KEY_RIGHT:return!1;case goog.events.KeyCodes.WIN_KEY_FF_LINUX:return!goog.userAgent.GECKO;\ndefault:return a.keyCode<goog.events.KeyCodes.FIRST_MEDIA_KEY||a.keyCode>goog.events.KeyCodes.LAST_MEDIA_KEY}};\ngoog.events.KeyCodes.firesKeyPressEvent=function(a,b,c,d,e,f){if(!(goog.userAgent.IE||goog.userAgent.EDGE||goog.userAgent.WEBKIT&&goog.userAgent.isVersionOrHigher("525")))return!0;if(goog.userAgent.MAC&&e)return goog.events.KeyCodes.isCharacterKey(a);if(e&&!d)return!1;goog.isNumber(b)&&(b=goog.events.KeyCodes.normalizeKeyCode(b));e=b==goog.events.KeyCodes.CTRL||b==goog.events.KeyCodes.ALT||goog.userAgent.MAC&&b==goog.events.KeyCodes.META;f=b==goog.events.KeyCodes.SHIFT&&(d||f);if((!c||goog.userAgent.MAC)&&\ne||goog.userAgent.MAC&&f)return!1;if((goog.userAgent.WEBKIT||goog.userAgent.EDGE)&&d&&c)switch(a){case goog.events.KeyCodes.BACKSLASH:case goog.events.KeyCodes.OPEN_SQUARE_BRACKET:case goog.events.KeyCodes.CLOSE_SQUARE_BRACKET:case goog.events.KeyCodes.TILDE:case goog.events.KeyCodes.SEMICOLON:case goog.events.KeyCodes.DASH:case goog.events.KeyCodes.EQUALS:case goog.events.KeyCodes.COMMA:case goog.events.KeyCodes.PERIOD:case goog.events.KeyCodes.SLASH:case goog.events.KeyCodes.APOSTROPHE:case goog.events.KeyCodes.SINGLE_QUOTE:return!1}if(goog.userAgent.IE&&\nd&&b==a)return!1;switch(a){case goog.events.KeyCodes.ENTER:return!0;case goog.events.KeyCodes.ESC:return!(goog.userAgent.WEBKIT||goog.userAgent.EDGE)}return goog.events.KeyCodes.isCharacterKey(a)};\ngoog.events.KeyCodes.isCharacterKey=function(a){if(a>=goog.events.KeyCodes.ZERO&&a<=goog.events.KeyCodes.NINE||a>=goog.events.KeyCodes.NUM_ZERO&&a<=goog.events.KeyCodes.NUM_MULTIPLY||a>=goog.events.KeyCodes.A&&a<=goog.events.KeyCodes.Z||(goog.userAgent.WEBKIT||goog.userAgent.EDGE)&&0==a)return!0;switch(a){case goog.events.KeyCodes.SPACE:case goog.events.KeyCodes.PLUS_SIGN:case goog.events.KeyCodes.QUESTION_MARK:case goog.events.KeyCodes.AT_SIGN:case goog.events.KeyCodes.NUM_PLUS:case goog.events.KeyCodes.NUM_MINUS:case goog.events.KeyCodes.NUM_PERIOD:case goog.events.KeyCodes.NUM_DIVISION:case goog.events.KeyCodes.SEMICOLON:case goog.events.KeyCodes.FF_SEMICOLON:case goog.events.KeyCodes.DASH:case goog.events.KeyCodes.EQUALS:case goog.events.KeyCodes.FF_EQUALS:case goog.events.KeyCodes.COMMA:case goog.events.KeyCodes.PERIOD:case goog.events.KeyCodes.SLASH:case goog.events.KeyCodes.APOSTROPHE:case goog.events.KeyCodes.SINGLE_QUOTE:case goog.events.KeyCodes.OPEN_SQUARE_BRACKET:case goog.events.KeyCodes.BACKSLASH:case goog.events.KeyCodes.CLOSE_SQUARE_BRACKET:return!0;default:return!1}};\ngoog.events.KeyCodes.normalizeKeyCode=function(a){return goog.userAgent.GECKO?goog.events.KeyCodes.normalizeGeckoKeyCode(a):goog.userAgent.MAC&&goog.userAgent.WEBKIT?goog.events.KeyCodes.normalizeMacWebKitKeyCode(a):a};\ngoog.events.KeyCodes.normalizeGeckoKeyCode=function(a){switch(a){case goog.events.KeyCodes.FF_EQUALS:return goog.events.KeyCodes.EQUALS;case goog.events.KeyCodes.FF_SEMICOLON:return goog.events.KeyCodes.SEMICOLON;case goog.events.KeyCodes.FF_DASH:return goog.events.KeyCodes.DASH;case goog.events.KeyCodes.MAC_FF_META:return goog.events.KeyCodes.META;case goog.events.KeyCodes.WIN_KEY_FF_LINUX:return goog.events.KeyCodes.WIN_KEY;default:return a}};\ngoog.events.KeyCodes.normalizeMacWebKitKeyCode=function(a){switch(a){case goog.events.KeyCodes.MAC_WK_CMD_RIGHT:return goog.events.KeyCodes.META;default:return a}};goog.events.KeyHandler=function(a,b){goog.events.EventTarget.call(this);a&&this.attach(a,b)};goog.inherits(goog.events.KeyHandler,goog.events.EventTarget);goog.events.KeyHandler.prototype.element_=null;goog.events.KeyHandler.prototype.keyPressKey_=null;goog.events.KeyHandler.prototype.keyDownKey_=null;goog.events.KeyHandler.prototype.keyUpKey_=null;goog.events.KeyHandler.prototype.lastKey_=-1;goog.events.KeyHandler.prototype.keyCode_=-1;goog.events.KeyHandler.prototype.altKey_=!1;\ngoog.events.KeyHandler.EventType={KEY:"key"};\ngoog.events.KeyHandler.safariKey_={3:goog.events.KeyCodes.ENTER,12:goog.events.KeyCodes.NUMLOCK,63232:goog.events.KeyCodes.UP,63233:goog.events.KeyCodes.DOWN,63234:goog.events.KeyCodes.LEFT,63235:goog.events.KeyCodes.RIGHT,63236:goog.events.KeyCodes.F1,63237:goog.events.KeyCodes.F2,63238:goog.events.KeyCodes.F3,63239:goog.events.KeyCodes.F4,63240:goog.events.KeyCodes.F5,63241:goog.events.KeyCodes.F6,63242:goog.events.KeyCodes.F7,63243:goog.events.KeyCodes.F8,63244:goog.events.KeyCodes.F9,63245:goog.events.KeyCodes.F10,\n63246:goog.events.KeyCodes.F11,63247:goog.events.KeyCodes.F12,63248:goog.events.KeyCodes.PRINT_SCREEN,63272:goog.events.KeyCodes.DELETE,63273:goog.events.KeyCodes.HOME,63275:goog.events.KeyCodes.END,63276:goog.events.KeyCodes.PAGE_UP,63277:goog.events.KeyCodes.PAGE_DOWN,63289:goog.events.KeyCodes.NUMLOCK,63302:goog.events.KeyCodes.INSERT};\ngoog.events.KeyHandler.keyIdentifier_={Up:goog.events.KeyCodes.UP,Down:goog.events.KeyCodes.DOWN,Left:goog.events.KeyCodes.LEFT,Right:goog.events.KeyCodes.RIGHT,Enter:goog.events.KeyCodes.ENTER,F1:goog.events.KeyCodes.F1,F2:goog.events.KeyCodes.F2,F3:goog.events.KeyCodes.F3,F4:goog.events.KeyCodes.F4,F5:goog.events.KeyCodes.F5,F6:goog.events.KeyCodes.F6,F7:goog.events.KeyCodes.F7,F8:goog.events.KeyCodes.F8,F9:goog.events.KeyCodes.F9,F10:goog.events.KeyCodes.F10,F11:goog.events.KeyCodes.F11,F12:goog.events.KeyCodes.F12,\n"U+007F":goog.events.KeyCodes.DELETE,Home:goog.events.KeyCodes.HOME,End:goog.events.KeyCodes.END,PageUp:goog.events.KeyCodes.PAGE_UP,PageDown:goog.events.KeyCodes.PAGE_DOWN,Insert:goog.events.KeyCodes.INSERT};goog.events.KeyHandler.USES_KEYDOWN_=goog.userAgent.IE||goog.userAgent.EDGE||goog.userAgent.WEBKIT&&goog.userAgent.isVersionOrHigher("525");goog.events.KeyHandler.SAVE_ALT_FOR_KEYPRESS_=goog.userAgent.MAC&&goog.userAgent.GECKO;\ngoog.events.KeyHandler.prototype.handleKeyDown_=function(a){(goog.userAgent.WEBKIT||goog.userAgent.EDGE)&&(this.lastKey_==goog.events.KeyCodes.CTRL&&!a.ctrlKey||this.lastKey_==goog.events.KeyCodes.ALT&&!a.altKey||goog.userAgent.MAC&&this.lastKey_==goog.events.KeyCodes.META&&!a.metaKey)&&this.resetState();-1==this.lastKey_&&(a.ctrlKey&&a.keyCode!=goog.events.KeyCodes.CTRL?this.lastKey_=goog.events.KeyCodes.CTRL:a.altKey&&a.keyCode!=goog.events.KeyCodes.ALT?this.lastKey_=goog.events.KeyCodes.ALT:a.metaKey&&\na.keyCode!=goog.events.KeyCodes.META&&(this.lastKey_=goog.events.KeyCodes.META));goog.events.KeyHandler.USES_KEYDOWN_&&!goog.events.KeyCodes.firesKeyPressEvent(a.keyCode,this.lastKey_,a.shiftKey,a.ctrlKey,a.altKey,a.metaKey)?this.handleEvent(a):(this.keyCode_=goog.events.KeyCodes.normalizeKeyCode(a.keyCode),goog.events.KeyHandler.SAVE_ALT_FOR_KEYPRESS_&&(this.altKey_=a.altKey))};goog.events.KeyHandler.prototype.resetState=function(){this.keyCode_=this.lastKey_=-1};\ngoog.events.KeyHandler.prototype.handleKeyup_=function(a){this.resetState();this.altKey_=a.altKey};\ngoog.events.KeyHandler.prototype.handleEvent=function(a){var b=a.getBrowserEvent(),c,d,e=b.altKey;goog.userAgent.IE&&a.type==goog.events.EventType.KEYPRESS?(c=this.keyCode_,d=c!=goog.events.KeyCodes.ENTER&&c!=goog.events.KeyCodes.ESC?b.keyCode:0):(goog.userAgent.WEBKIT||goog.userAgent.EDGE)&&a.type==goog.events.EventType.KEYPRESS?(c=this.keyCode_,d=0<=b.charCode&&63232>b.charCode&&goog.events.KeyCodes.isCharacterKey(c)?b.charCode:0):goog.userAgent.OPERA&&!goog.userAgent.WEBKIT?(c=this.keyCode_,d=\ngoog.events.KeyCodes.isCharacterKey(c)?b.keyCode:0):(c=b.keyCode||this.keyCode_,d=b.charCode||0,goog.events.KeyHandler.SAVE_ALT_FOR_KEYPRESS_&&(e=this.altKey_),goog.userAgent.MAC&&d==goog.events.KeyCodes.QUESTION_MARK&&c==goog.events.KeyCodes.WIN_KEY&&(c=goog.events.KeyCodes.SLASH));var f=c=goog.events.KeyCodes.normalizeKeyCode(c);c?63232<=c&&c in goog.events.KeyHandler.safariKey_?f=goog.events.KeyHandler.safariKey_[c]:25==c&&a.shiftKey&&(f=9):b.keyIdentifier&&b.keyIdentifier in goog.events.KeyHandler.keyIdentifier_&&\n(f=goog.events.KeyHandler.keyIdentifier_[b.keyIdentifier]);a=f==this.lastKey_;this.lastKey_=f;b=new goog.events.KeyEvent(f,d,a,b);b.altKey=e;this.dispatchEvent(b)};goog.events.KeyHandler.prototype.getElement=function(){return this.element_};\ngoog.events.KeyHandler.prototype.attach=function(a,b){this.keyUpKey_&&this.detach();this.element_=a;this.keyPressKey_=goog.events.listen(this.element_,goog.events.EventType.KEYPRESS,this,b);this.keyDownKey_=goog.events.listen(this.element_,goog.events.EventType.KEYDOWN,this.handleKeyDown_,b,this);this.keyUpKey_=goog.events.listen(this.element_,goog.events.EventType.KEYUP,this.handleKeyup_,b,this)};\ngoog.events.KeyHandler.prototype.detach=function(){this.keyPressKey_&&(goog.events.unlistenByKey(this.keyPressKey_),goog.events.unlistenByKey(this.keyDownKey_),goog.events.unlistenByKey(this.keyUpKey_),this.keyUpKey_=this.keyDownKey_=this.keyPressKey_=null);this.element_=null;this.keyCode_=this.lastKey_=-1};goog.events.KeyHandler.prototype.disposeInternal=function(){goog.events.KeyHandler.superClass_.disposeInternal.call(this);this.detach()};\ngoog.events.KeyEvent=function(a,b,c,d){goog.events.BrowserEvent.call(this,d);this.type=goog.events.KeyHandler.EventType.KEY;this.keyCode=a;this.charCode=b;this.repeat=c};goog.inherits(goog.events.KeyEvent,goog.events.BrowserEvent);goog.dom.classlist={};goog.dom.classlist.ALWAYS_USE_DOM_TOKEN_LIST=!1;goog.dom.classlist.get=function(a){if(goog.dom.classlist.ALWAYS_USE_DOM_TOKEN_LIST||a.classList)return a.classList;a=a.className;return goog.isString(a)&&a.match(/\\S+/g)||[]};goog.dom.classlist.set=function(a,b){a.className=b};goog.dom.classlist.contains=function(a,b){return goog.dom.classlist.ALWAYS_USE_DOM_TOKEN_LIST||a.classList?a.classList.contains(b):goog.array.contains(goog.dom.classlist.get(a),b)};\ngoog.dom.classlist.add=function(a,b){goog.dom.classlist.ALWAYS_USE_DOM_TOKEN_LIST||a.classList?a.classList.add(b):goog.dom.classlist.contains(a,b)||(a.className+=0<a.className.length?" "+b:b)};\ngoog.dom.classlist.addAll=function(a,b){if(goog.dom.classlist.ALWAYS_USE_DOM_TOKEN_LIST||a.classList)goog.array.forEach(b,function(b){goog.dom.classlist.add(a,b)});else{var c={};goog.array.forEach(goog.dom.classlist.get(a),function(a){c[a]=!0});goog.array.forEach(b,function(a){c[a]=!0});a.className="";for(var d in c)a.className+=0<a.className.length?" "+d:d}};\ngoog.dom.classlist.remove=function(a,b){goog.dom.classlist.ALWAYS_USE_DOM_TOKEN_LIST||a.classList?a.classList.remove(b):goog.dom.classlist.contains(a,b)&&(a.className=goog.array.filter(goog.dom.classlist.get(a),function(a){return a!=b}).join(" "))};\ngoog.dom.classlist.removeAll=function(a,b){goog.dom.classlist.ALWAYS_USE_DOM_TOKEN_LIST||a.classList?goog.array.forEach(b,function(b){goog.dom.classlist.remove(a,b)}):a.className=goog.array.filter(goog.dom.classlist.get(a),function(a){return!goog.array.contains(b,a)}).join(" ")};goog.dom.classlist.enable=function(a,b,c){c?goog.dom.classlist.add(a,b):goog.dom.classlist.remove(a,b)};goog.dom.classlist.enableAll=function(a,b,c){(c?goog.dom.classlist.addAll:goog.dom.classlist.removeAll)(a,b)};\ngoog.dom.classlist.swap=function(a,b,c){return goog.dom.classlist.contains(a,b)?(goog.dom.classlist.remove(a,b),goog.dom.classlist.add(a,c),!0):!1};goog.dom.classlist.toggle=function(a,b){var c=!goog.dom.classlist.contains(a,b);goog.dom.classlist.enable(a,b,c);return c};goog.dom.classlist.addRemove=function(a,b,c){goog.dom.classlist.remove(a,b);goog.dom.classlist.add(a,c)};goog.ui.registry={};goog.ui.registry.getDefaultRenderer=function(a){for(var b;a;){b=goog.getUid(a);if(b=goog.ui.registry.defaultRenderers_[b])break;a=a.superClass_?a.superClass_.constructor:null}return b?goog.isFunction(b.getInstance)?b.getInstance():new b:null};\ngoog.ui.registry.setDefaultRenderer=function(a,b){if(!goog.isFunction(a))throw Error("Invalid component class "+a);if(!goog.isFunction(b))throw Error("Invalid renderer class "+b);var c=goog.getUid(a);goog.ui.registry.defaultRenderers_[c]=b};goog.ui.registry.getDecoratorByClassName=function(a){return a in goog.ui.registry.decoratorFunctions_?goog.ui.registry.decoratorFunctions_[a]():null};\ngoog.ui.registry.setDecoratorByClassName=function(a,b){if(!a)throw Error("Invalid class name "+a);if(!goog.isFunction(b))throw Error("Invalid decorator function "+b);goog.ui.registry.decoratorFunctions_[a]=b};goog.ui.registry.getDecorator=function(a){goog.asserts.assert(a);for(var b=goog.dom.classlist.get(a),c=0,d=b.length;c<d;c++)if(a=goog.ui.registry.getDecoratorByClassName(b[c]))return a;return null};\ngoog.ui.registry.reset=function(){goog.ui.registry.defaultRenderers_={};goog.ui.registry.decoratorFunctions_={}};goog.ui.registry.defaultRenderers_={};goog.ui.registry.decoratorFunctions_={};goog.ui.ContainerRenderer=function(a){this.ariaRole_=a};goog.addSingletonGetter(goog.ui.ContainerRenderer);goog.ui.ContainerRenderer.getCustomRenderer=function(a,b){var c=new a;c.getCssClass=function(){return b};return c};goog.ui.ContainerRenderer.CSS_CLASS="goog-container";goog.ui.ContainerRenderer.prototype.getAriaRole=function(){return this.ariaRole_};goog.ui.ContainerRenderer.prototype.enableTabIndex=function(a,b){a&&(a.tabIndex=b?0:-1)};\ngoog.ui.ContainerRenderer.prototype.createDom=function(a){return a.getDomHelper().createDom("DIV",this.getClassNames(a).join(" "))};goog.ui.ContainerRenderer.prototype.getContentElement=function(a){return a};goog.ui.ContainerRenderer.prototype.canDecorate=function(a){return"DIV"==a.tagName};\ngoog.ui.ContainerRenderer.prototype.decorate=function(a,b){b.id&&a.setId(b.id);var c=this.getCssClass(),d=!1,e=goog.dom.classlist.get(b);e&&goog.array.forEach(e,function(b){b==c?d=!0:b&&this.setStateFromClassName(a,b,c)},this);d||goog.dom.classlist.add(b,c);this.decorateChildren(a,this.getContentElement(b));return b};\ngoog.ui.ContainerRenderer.prototype.setStateFromClassName=function(a,b,c){b==c+"-disabled"?a.setEnabled(!1):b==c+"-horizontal"?a.setOrientation(goog.ui.Container.Orientation.HORIZONTAL):b==c+"-vertical"&&a.setOrientation(goog.ui.Container.Orientation.VERTICAL)};\ngoog.ui.ContainerRenderer.prototype.decorateChildren=function(a,b,c){if(b){c=c||b.firstChild;for(var d;c&&c.parentNode==b;){d=c.nextSibling;if(c.nodeType==goog.dom.NodeType.ELEMENT){var e=this.getDecoratorForChild(c);e&&(e.setElementInternal(c),a.isEnabled()||e.setEnabled(!1),a.addChild(e),e.decorate(c))}else c.nodeValue&&""!=goog.string.trim(c.nodeValue)||b.removeChild(c);c=d}}};goog.ui.ContainerRenderer.prototype.getDecoratorForChild=function(a){return goog.ui.registry.getDecorator(a)};\ngoog.ui.ContainerRenderer.prototype.initializeDom=function(a){a=a.getElement();goog.asserts.assert(a,"The container DOM element cannot be null.");goog.style.setUnselectable(a,!0,goog.userAgent.GECKO);goog.userAgent.IE&&(a.hideFocus=!0);var b=this.getAriaRole();b&&goog.a11y.aria.setRole(a,b)};goog.ui.ContainerRenderer.prototype.getKeyEventTarget=function(a){return a.getElement()};goog.ui.ContainerRenderer.prototype.getCssClass=function(){return goog.ui.ContainerRenderer.CSS_CLASS};\ngoog.ui.ContainerRenderer.prototype.getClassNames=function(a){var b=this.getCssClass(),c=a.getOrientation()==goog.ui.Container.Orientation.HORIZONTAL,c=[b,c?b+"-horizontal":b+"-vertical"];a.isEnabled()||c.push(b+"-disabled");return c};goog.ui.ContainerRenderer.prototype.getDefaultOrientation=function(){return goog.ui.Container.Orientation.VERTICAL};goog.ui.ControlRenderer=function(){};goog.addSingletonGetter(goog.ui.ControlRenderer);goog.tagUnsealableClass(goog.ui.ControlRenderer);goog.ui.ControlRenderer.getCustomRenderer=function(a,b){var c=new a;c.getCssClass=function(){return b};return c};goog.ui.ControlRenderer.CSS_CLASS="goog-control";goog.ui.ControlRenderer.IE6_CLASS_COMBINATIONS=[];\ngoog.ui.ControlRenderer.TOGGLE_ARIA_STATE_MAP_=goog.object.create(goog.a11y.aria.Role.BUTTON,goog.a11y.aria.State.PRESSED,goog.a11y.aria.Role.CHECKBOX,goog.a11y.aria.State.CHECKED,goog.a11y.aria.Role.MENU_ITEM,goog.a11y.aria.State.SELECTED,goog.a11y.aria.Role.MENU_ITEM_CHECKBOX,goog.a11y.aria.State.CHECKED,goog.a11y.aria.Role.MENU_ITEM_RADIO,goog.a11y.aria.State.CHECKED,goog.a11y.aria.Role.RADIO,goog.a11y.aria.State.CHECKED,goog.a11y.aria.Role.TAB,goog.a11y.aria.State.SELECTED,goog.a11y.aria.Role.TREEITEM,\ngoog.a11y.aria.State.SELECTED);goog.ui.ControlRenderer.prototype.getAriaRole=function(){};goog.ui.ControlRenderer.prototype.createDom=function(a){return a.getDomHelper().createDom("DIV",this.getClassNames(a).join(" "),a.getContent())};goog.ui.ControlRenderer.prototype.getContentElement=function(a){return a};\ngoog.ui.ControlRenderer.prototype.enableClassName=function(a,b,c){if(a=a.getElement?a.getElement():a){var d=[b];goog.userAgent.IE&&!goog.userAgent.isVersionOrHigher("7")&&(d=this.getAppliedCombinedClassNames_(goog.dom.classlist.get(a),b),d.push(b));goog.dom.classlist.enableAll(a,d,c)}};goog.ui.ControlRenderer.prototype.enableExtraClassName=function(a,b,c){this.enableClassName(a,b,c)};goog.ui.ControlRenderer.prototype.canDecorate=function(a){return!0};\ngoog.ui.ControlRenderer.prototype.decorate=function(a,b){b.id&&a.setId(b.id);var c=this.getContentElement(b);c&&c.firstChild?a.setContentInternal(c.firstChild.nextSibling?goog.array.clone(c.childNodes):c.firstChild):a.setContentInternal(null);var d=0,e=this.getCssClass(),f=this.getStructuralCssClass(),g=!1,h=!1,k=!1,l=goog.array.toArray(goog.dom.classlist.get(b));goog.array.forEach(l,function(a){g||a!=e?h||a!=f?d|=this.getStateFromClass(a):h=!0:(g=!0,f==e&&(h=!0));this.getStateFromClass(a)==goog.ui.Component.State.DISABLED&&\n(goog.asserts.assertElement(c),goog.dom.isFocusableTabIndex(c)&&goog.dom.setFocusableTabIndex(c,!1))},this);a.setStateInternal(d);g||(l.push(e),f==e&&(h=!0));h||l.push(f);var p=a.getExtraClassNames();p&&l.push.apply(l,p);if(goog.userAgent.IE&&!goog.userAgent.isVersionOrHigher("7")){var m=this.getAppliedCombinedClassNames_(l);0<m.length&&(l.push.apply(l,m),k=!0)}g&&h&&!p&&!k||goog.dom.classlist.set(b,l.join(" "));return b};\ngoog.ui.ControlRenderer.prototype.initializeDom=function(a){a.isRightToLeft()&&this.setRightToLeft(a.getElement(),!0);a.isEnabled()&&this.setFocusable(a,a.isVisible())};goog.ui.ControlRenderer.prototype.setAriaRole=function(a,b){var c=b||this.getAriaRole();if(c){goog.asserts.assert(a,"The element passed as a first parameter cannot be null.");var d=goog.a11y.aria.getRole(a);c!=d&&goog.a11y.aria.setRole(a,c)}};\ngoog.ui.ControlRenderer.prototype.setAriaStates=function(a,b){goog.asserts.assert(a);goog.asserts.assert(b);var c=a.getAriaLabel();goog.isDefAndNotNull(c)&&this.setAriaLabel(b,c);a.isVisible()||goog.a11y.aria.setState(b,goog.a11y.aria.State.HIDDEN,!a.isVisible());a.isEnabled()||this.updateAriaState(b,goog.ui.Component.State.DISABLED,!a.isEnabled());a.isSupportedState(goog.ui.Component.State.SELECTED)&&this.updateAriaState(b,goog.ui.Component.State.SELECTED,a.isSelected());a.isSupportedState(goog.ui.Component.State.CHECKED)&&\nthis.updateAriaState(b,goog.ui.Component.State.CHECKED,a.isChecked());a.isSupportedState(goog.ui.Component.State.OPENED)&&this.updateAriaState(b,goog.ui.Component.State.OPENED,a.isOpen())};goog.ui.ControlRenderer.prototype.setAriaLabel=function(a,b){goog.a11y.aria.setLabel(a,b)};goog.ui.ControlRenderer.prototype.setAllowTextSelection=function(a,b){goog.style.setUnselectable(a,!b,!goog.userAgent.IE&&!goog.userAgent.OPERA)};\ngoog.ui.ControlRenderer.prototype.setRightToLeft=function(a,b){this.enableClassName(a,this.getStructuralCssClass()+"-rtl",b)};goog.ui.ControlRenderer.prototype.isFocusable=function(a){var b;return a.isSupportedState(goog.ui.Component.State.FOCUSED)&&(b=a.getKeyEventTarget())?goog.dom.isFocusableTabIndex(b):!1};\ngoog.ui.ControlRenderer.prototype.setFocusable=function(a,b){var c;if(a.isSupportedState(goog.ui.Component.State.FOCUSED)&&(c=a.getKeyEventTarget())){if(!b&&a.isFocused()){try{c.blur()}catch(d){}a.isFocused()&&a.handleBlur(null)}goog.dom.isFocusableTabIndex(c)!=b&&goog.dom.setFocusableTabIndex(c,b)}};goog.ui.ControlRenderer.prototype.setVisible=function(a,b){goog.style.setElementShown(a,b);a&&goog.a11y.aria.setState(a,goog.a11y.aria.State.HIDDEN,!b)};\ngoog.ui.ControlRenderer.prototype.setState=function(a,b,c){var d=a.getElement();if(d){var e=this.getClassForState(b);e&&this.enableClassName(a,e,c);this.updateAriaState(d,b,c)}};\ngoog.ui.ControlRenderer.prototype.updateAriaState=function(a,b,c){goog.ui.ControlRenderer.ariaAttributeMap_||(goog.ui.ControlRenderer.ariaAttributeMap_=goog.object.create(goog.ui.Component.State.DISABLED,goog.a11y.aria.State.DISABLED,goog.ui.Component.State.SELECTED,goog.a11y.aria.State.SELECTED,goog.ui.Component.State.CHECKED,goog.a11y.aria.State.CHECKED,goog.ui.Component.State.OPENED,goog.a11y.aria.State.EXPANDED));goog.asserts.assert(a,"The element passed as a first parameter cannot be null.");\n(b=goog.ui.ControlRenderer.getAriaStateForAriaRole_(a,goog.ui.ControlRenderer.ariaAttributeMap_[b]))&&goog.a11y.aria.setState(a,b,c)};goog.ui.ControlRenderer.getAriaStateForAriaRole_=function(a,b){var c=goog.a11y.aria.getRole(a);if(!c)return b;c=goog.ui.ControlRenderer.TOGGLE_ARIA_STATE_MAP_[c]||b;return goog.ui.ControlRenderer.isAriaState_(b)?c:b};goog.ui.ControlRenderer.isAriaState_=function(a){return a==goog.a11y.aria.State.CHECKED||a==goog.a11y.aria.State.SELECTED};\ngoog.ui.ControlRenderer.prototype.setContent=function(a,b){var c=this.getContentElement(a);if(c&&(goog.dom.removeChildren(c),b))if(goog.isString(b))goog.dom.setTextContent(c,b);else{var d=function(a){if(a){var b=goog.dom.getOwnerDocument(c);c.appendChild(goog.isString(a)?b.createTextNode(a):a)}};goog.isArray(b)?goog.array.forEach(b,d):!goog.isArrayLike(b)||"nodeType"in b?d(b):goog.array.forEach(goog.array.clone(b),d)}};goog.ui.ControlRenderer.prototype.getKeyEventTarget=function(a){return a.getElement()};\ngoog.ui.ControlRenderer.prototype.getCssClass=function(){return goog.ui.ControlRenderer.CSS_CLASS};goog.ui.ControlRenderer.prototype.getIe6ClassCombinations=function(){return[]};goog.ui.ControlRenderer.prototype.getStructuralCssClass=function(){return this.getCssClass()};\ngoog.ui.ControlRenderer.prototype.getClassNames=function(a){var b=this.getCssClass(),c=[b],d=this.getStructuralCssClass();d!=b&&c.push(d);b=this.getClassNamesForState(a.getState());c.push.apply(c,b);(a=a.getExtraClassNames())&&c.push.apply(c,a);goog.userAgent.IE&&!goog.userAgent.isVersionOrHigher("7")&&c.push.apply(c,this.getAppliedCombinedClassNames_(c));return c};\ngoog.ui.ControlRenderer.prototype.getAppliedCombinedClassNames_=function(a,b){var c=[];b&&(a=goog.array.concat(a,[b]));goog.array.forEach(this.getIe6ClassCombinations(),function(d){!goog.array.every(d,goog.partial(goog.array.contains,a))||b&&!goog.array.contains(d,b)||c.push(d.join("_"))});return c};goog.ui.ControlRenderer.prototype.getClassNamesForState=function(a){for(var b=[];a;){var c=a&-a;b.push(this.getClassForState(c));a&=~c}return b};\ngoog.ui.ControlRenderer.prototype.getClassForState=function(a){this.classByState_||this.createClassByStateMap_();return this.classByState_[a]};goog.ui.ControlRenderer.prototype.getStateFromClass=function(a){this.stateByClass_||this.createStateByClassMap_();a=parseInt(this.stateByClass_[a],10);return isNaN(a)?0:a};\ngoog.ui.ControlRenderer.prototype.createClassByStateMap_=function(){var a=this.getStructuralCssClass(),b=!goog.string.contains(goog.string.normalizeWhitespace(a)," ");goog.asserts.assert(b,"ControlRenderer has an invalid css class: \'"+a+"\'");this.classByState_=goog.object.create(goog.ui.Component.State.DISABLED,a+"-disabled",goog.ui.Component.State.HOVER,a+"-hover",goog.ui.Component.State.ACTIVE,a+"-active",goog.ui.Component.State.SELECTED,a+"-selected",goog.ui.Component.State.CHECKED,a+"-checked",\ngoog.ui.Component.State.FOCUSED,a+"-focused",goog.ui.Component.State.OPENED,a+"-open")};goog.ui.ControlRenderer.prototype.createStateByClassMap_=function(){this.classByState_||this.createClassByStateMap_();this.stateByClass_=goog.object.transpose(this.classByState_)};goog.ui.Control=function(a,b,c){goog.ui.Component.call(this,c);this.renderer_=b||goog.ui.registry.getDefaultRenderer(this.constructor);this.setContentInternal(goog.isDef(a)?a:null);this.ariaLabel_=null};goog.inherits(goog.ui.Control,goog.ui.Component);goog.tagUnsealableClass(goog.ui.Control);goog.ui.Control.registerDecorator=goog.ui.registry.setDecoratorByClassName;goog.ui.Control.getDecorator=goog.ui.registry.getDecorator;goog.ui.Control.prototype.content_=null;goog.ui.Control.prototype.state_=0;\ngoog.ui.Control.prototype.supportedStates_=goog.ui.Component.State.DISABLED|goog.ui.Component.State.HOVER|goog.ui.Component.State.ACTIVE|goog.ui.Component.State.FOCUSED;goog.ui.Control.prototype.autoStates_=goog.ui.Component.State.ALL;goog.ui.Control.prototype.statesWithTransitionEvents_=0;goog.ui.Control.prototype.visible_=!0;goog.ui.Control.prototype.extraClassNames_=null;goog.ui.Control.prototype.handleMouseEvents_=!0;goog.ui.Control.prototype.allowTextSelection_=!1;\ngoog.ui.Control.prototype.preferredAriaRole_=null;goog.ui.Control.prototype.isHandleMouseEvents=function(){return this.handleMouseEvents_};goog.ui.Control.prototype.setHandleMouseEvents=function(a){this.isInDocument()&&a!=this.handleMouseEvents_&&this.enableMouseEventHandling_(a);this.handleMouseEvents_=a};goog.ui.Control.prototype.getKeyEventTarget=function(){return this.renderer_.getKeyEventTarget(this)};\ngoog.ui.Control.prototype.getKeyHandler=function(){return this.keyHandler_||(this.keyHandler_=new goog.events.KeyHandler)};goog.ui.Control.prototype.getRenderer=function(){return this.renderer_};goog.ui.Control.prototype.setRenderer=function(a){if(this.isInDocument())throw Error(goog.ui.Component.Error.ALREADY_RENDERED);this.getElement()&&this.setElementInternal(null);this.renderer_=a};goog.ui.Control.prototype.getExtraClassNames=function(){return this.extraClassNames_};\ngoog.ui.Control.prototype.addClassName=function(a){a&&(this.extraClassNames_?goog.array.contains(this.extraClassNames_,a)||this.extraClassNames_.push(a):this.extraClassNames_=[a],this.renderer_.enableExtraClassName(this,a,!0))};goog.ui.Control.prototype.removeClassName=function(a){a&&this.extraClassNames_&&goog.array.remove(this.extraClassNames_,a)&&(0==this.extraClassNames_.length&&(this.extraClassNames_=null),this.renderer_.enableExtraClassName(this,a,!1))};\ngoog.ui.Control.prototype.enableClassName=function(a,b){b?this.addClassName(a):this.removeClassName(a)};goog.ui.Control.prototype.createDom=function(){var a=this.renderer_.createDom(this);this.setElementInternal(a);this.renderer_.setAriaRole(a,this.getPreferredAriaRole());this.isAllowTextSelection()||this.renderer_.setAllowTextSelection(a,!1);this.isVisible()||this.renderer_.setVisible(a,!1)};goog.ui.Control.prototype.getPreferredAriaRole=function(){return this.preferredAriaRole_};\ngoog.ui.Control.prototype.setPreferredAriaRole=function(a){this.preferredAriaRole_=a};goog.ui.Control.prototype.getAriaLabel=function(){return this.ariaLabel_};goog.ui.Control.prototype.setAriaLabel=function(a){this.ariaLabel_=a;var b=this.getElement();b&&this.renderer_.setAriaLabel(b,a)};goog.ui.Control.prototype.getContentElement=function(){return this.renderer_.getContentElement(this.getElement())};goog.ui.Control.prototype.canDecorate=function(a){return this.renderer_.canDecorate(a)};\ngoog.ui.Control.prototype.decorateInternal=function(a){a=this.renderer_.decorate(this,a);this.setElementInternal(a);this.renderer_.setAriaRole(a,this.getPreferredAriaRole());this.isAllowTextSelection()||this.renderer_.setAllowTextSelection(a,!1);this.visible_="none"!=a.style.display};\ngoog.ui.Control.prototype.enterDocument=function(){goog.ui.Control.superClass_.enterDocument.call(this);this.renderer_.setAriaStates(this,this.getElementStrict());this.renderer_.initializeDom(this);if(this.supportedStates_&~goog.ui.Component.State.DISABLED&&(this.isHandleMouseEvents()&&this.enableMouseEventHandling_(!0),this.isSupportedState(goog.ui.Component.State.FOCUSED))){var a=this.getKeyEventTarget();if(a){var b=this.getKeyHandler();b.attach(a);this.getHandler().listen(b,goog.events.KeyHandler.EventType.KEY,\nthis.handleKeyEvent).listen(a,goog.events.EventType.FOCUS,this.handleFocus).listen(a,goog.events.EventType.BLUR,this.handleBlur)}}};\ngoog.ui.Control.prototype.enableMouseEventHandling_=function(a){var b=this.getHandler(),c=this.getElement();a?(b.listen(c,goog.events.EventType.MOUSEOVER,this.handleMouseOver).listen(c,goog.events.EventType.MOUSEDOWN,this.handleMouseDown).listen(c,goog.events.EventType.MOUSEUP,this.handleMouseUp).listen(c,goog.events.EventType.MOUSEOUT,this.handleMouseOut),this.handleContextMenu!=goog.nullFunction&&b.listen(c,goog.events.EventType.CONTEXTMENU,this.handleContextMenu),goog.userAgent.IE&&(goog.userAgent.isVersionOrHigher(9)||\nb.listen(c,goog.events.EventType.DBLCLICK,this.handleDblClick),this.ieMouseEventSequenceSimulator_||(this.ieMouseEventSequenceSimulator_=new goog.ui.Control.IeMouseEventSequenceSimulator_(this),this.registerDisposable(this.ieMouseEventSequenceSimulator_)))):(b.unlisten(c,goog.events.EventType.MOUSEOVER,this.handleMouseOver).unlisten(c,goog.events.EventType.MOUSEDOWN,this.handleMouseDown).unlisten(c,goog.events.EventType.MOUSEUP,this.handleMouseUp).unlisten(c,goog.events.EventType.MOUSEOUT,this.handleMouseOut),\nthis.handleContextMenu!=goog.nullFunction&&b.unlisten(c,goog.events.EventType.CONTEXTMENU,this.handleContextMenu),goog.userAgent.IE&&(goog.userAgent.isVersionOrHigher(9)||b.unlisten(c,goog.events.EventType.DBLCLICK,this.handleDblClick),goog.dispose(this.ieMouseEventSequenceSimulator_),this.ieMouseEventSequenceSimulator_=null))};\ngoog.ui.Control.prototype.exitDocument=function(){goog.ui.Control.superClass_.exitDocument.call(this);this.keyHandler_&&this.keyHandler_.detach();this.isVisible()&&this.isEnabled()&&this.renderer_.setFocusable(this,!1)};goog.ui.Control.prototype.disposeInternal=function(){goog.ui.Control.superClass_.disposeInternal.call(this);this.keyHandler_&&(this.keyHandler_.dispose(),delete this.keyHandler_);delete this.renderer_;this.ieMouseEventSequenceSimulator_=this.extraClassNames_=this.content_=null};\ngoog.ui.Control.prototype.getContent=function(){return this.content_};goog.ui.Control.prototype.setContent=function(a){this.renderer_.setContent(this.getElement(),a);this.setContentInternal(a)};goog.ui.Control.prototype.setContentInternal=function(a){this.content_=a};goog.ui.Control.prototype.getCaption=function(){var a=this.getContent();if(!a)return"";a=goog.isString(a)?a:goog.isArray(a)?goog.array.map(a,goog.dom.getRawTextContent).join(""):goog.dom.getTextContent(a);return goog.string.collapseBreakingSpaces(a)};\ngoog.ui.Control.prototype.setCaption=function(a){this.setContent(a)};goog.ui.Control.prototype.setRightToLeft=function(a){goog.ui.Control.superClass_.setRightToLeft.call(this,a);var b=this.getElement();b&&this.renderer_.setRightToLeft(b,a)};goog.ui.Control.prototype.isAllowTextSelection=function(){return this.allowTextSelection_};goog.ui.Control.prototype.setAllowTextSelection=function(a){this.allowTextSelection_=a;var b=this.getElement();b&&this.renderer_.setAllowTextSelection(b,a)};\ngoog.ui.Control.prototype.isVisible=function(){return this.visible_};goog.ui.Control.prototype.setVisible=function(a,b){if(b||this.visible_!=a&&this.dispatchEvent(a?goog.ui.Component.EventType.SHOW:goog.ui.Component.EventType.HIDE)){var c=this.getElement();c&&this.renderer_.setVisible(c,a);this.isEnabled()&&this.renderer_.setFocusable(this,a);this.visible_=a;return!0}return!1};goog.ui.Control.prototype.isEnabled=function(){return!this.hasState(goog.ui.Component.State.DISABLED)};\ngoog.ui.Control.prototype.isParentDisabled_=function(){var a=this.getParent();return!!a&&"function"==typeof a.isEnabled&&!a.isEnabled()};goog.ui.Control.prototype.setEnabled=function(a){!this.isParentDisabled_()&&this.isTransitionAllowed(goog.ui.Component.State.DISABLED,!a)&&(a||(this.setActive(!1),this.setHighlighted(!1)),this.isVisible()&&this.renderer_.setFocusable(this,a),this.setState(goog.ui.Component.State.DISABLED,!a,!0))};goog.ui.Control.prototype.isHighlighted=function(){return this.hasState(goog.ui.Component.State.HOVER)};\ngoog.ui.Control.prototype.setHighlighted=function(a){this.isTransitionAllowed(goog.ui.Component.State.HOVER,a)&&this.setState(goog.ui.Component.State.HOVER,a)};goog.ui.Control.prototype.isActive=function(){return this.hasState(goog.ui.Component.State.ACTIVE)};goog.ui.Control.prototype.setActive=function(a){this.isTransitionAllowed(goog.ui.Component.State.ACTIVE,a)&&this.setState(goog.ui.Component.State.ACTIVE,a)};goog.ui.Control.prototype.isSelected=function(){return this.hasState(goog.ui.Component.State.SELECTED)};\ngoog.ui.Control.prototype.setSelected=function(a){this.isTransitionAllowed(goog.ui.Component.State.SELECTED,a)&&this.setState(goog.ui.Component.State.SELECTED,a)};goog.ui.Control.prototype.isChecked=function(){return this.hasState(goog.ui.Component.State.CHECKED)};goog.ui.Control.prototype.setChecked=function(a){this.isTransitionAllowed(goog.ui.Component.State.CHECKED,a)&&this.setState(goog.ui.Component.State.CHECKED,a)};goog.ui.Control.prototype.isFocused=function(){return this.hasState(goog.ui.Component.State.FOCUSED)};\ngoog.ui.Control.prototype.setFocused=function(a){this.isTransitionAllowed(goog.ui.Component.State.FOCUSED,a)&&this.setState(goog.ui.Component.State.FOCUSED,a)};goog.ui.Control.prototype.isOpen=function(){return this.hasState(goog.ui.Component.State.OPENED)};goog.ui.Control.prototype.setOpen=function(a){this.isTransitionAllowed(goog.ui.Component.State.OPENED,a)&&this.setState(goog.ui.Component.State.OPENED,a)};goog.ui.Control.prototype.getState=function(){return this.state_};\ngoog.ui.Control.prototype.hasState=function(a){return!!(this.state_&a)};goog.ui.Control.prototype.setState=function(a,b,c){c||a!=goog.ui.Component.State.DISABLED?this.isSupportedState(a)&&b!=this.hasState(a)&&(this.renderer_.setState(this,a,b),this.state_=b?this.state_|a:this.state_&~a):this.setEnabled(!b)};goog.ui.Control.prototype.setStateInternal=function(a){this.state_=a};goog.ui.Control.prototype.isSupportedState=function(a){return!!(this.supportedStates_&a)};\ngoog.ui.Control.prototype.setSupportedState=function(a,b){if(this.isInDocument()&&this.hasState(a)&&!b)throw Error(goog.ui.Component.Error.ALREADY_RENDERED);!b&&this.hasState(a)&&this.setState(a,!1);this.supportedStates_=b?this.supportedStates_|a:this.supportedStates_&~a};goog.ui.Control.prototype.isAutoState=function(a){return!!(this.autoStates_&a)&&this.isSupportedState(a)};goog.ui.Control.prototype.setAutoStates=function(a,b){this.autoStates_=b?this.autoStates_|a:this.autoStates_&~a};\ngoog.ui.Control.prototype.isDispatchTransitionEvents=function(a){return!!(this.statesWithTransitionEvents_&a)&&this.isSupportedState(a)};goog.ui.Control.prototype.setDispatchTransitionEvents=function(a,b){this.statesWithTransitionEvents_=b?this.statesWithTransitionEvents_|a:this.statesWithTransitionEvents_&~a};\ngoog.ui.Control.prototype.isTransitionAllowed=function(a,b){return this.isSupportedState(a)&&this.hasState(a)!=b&&(!(this.statesWithTransitionEvents_&a)||this.dispatchEvent(goog.ui.Component.getStateTransitionEvent(a,b)))&&!this.isDisposed()};goog.ui.Control.prototype.handleMouseOver=function(a){!goog.ui.Control.isMouseEventWithinElement_(a,this.getElement())&&this.dispatchEvent(goog.ui.Component.EventType.ENTER)&&this.isEnabled()&&this.isAutoState(goog.ui.Component.State.HOVER)&&this.setHighlighted(!0)};\ngoog.ui.Control.prototype.handleMouseOut=function(a){!goog.ui.Control.isMouseEventWithinElement_(a,this.getElement())&&this.dispatchEvent(goog.ui.Component.EventType.LEAVE)&&(this.isAutoState(goog.ui.Component.State.ACTIVE)&&this.setActive(!1),this.isAutoState(goog.ui.Component.State.HOVER)&&this.setHighlighted(!1))};goog.ui.Control.prototype.handleContextMenu=goog.nullFunction;goog.ui.Control.isMouseEventWithinElement_=function(a,b){return!!a.relatedTarget&&goog.dom.contains(b,a.relatedTarget)};\ngoog.ui.Control.prototype.handleMouseDown=function(a){this.isEnabled()&&(this.isAutoState(goog.ui.Component.State.HOVER)&&this.setHighlighted(!0),a.isMouseActionButton()&&(this.isAutoState(goog.ui.Component.State.ACTIVE)&&this.setActive(!0),this.renderer_&&this.renderer_.isFocusable(this)&&this.getKeyEventTarget().focus()));!this.isAllowTextSelection()&&a.isMouseActionButton()&&a.preventDefault()};\ngoog.ui.Control.prototype.handleMouseUp=function(a){this.isEnabled()&&(this.isAutoState(goog.ui.Component.State.HOVER)&&this.setHighlighted(!0),this.isActive()&&this.performActionInternal(a)&&this.isAutoState(goog.ui.Component.State.ACTIVE)&&this.setActive(!1))};goog.ui.Control.prototype.handleDblClick=function(a){this.isEnabled()&&this.performActionInternal(a)};\ngoog.ui.Control.prototype.performActionInternal=function(a){this.isAutoState(goog.ui.Component.State.CHECKED)&&this.setChecked(!this.isChecked());this.isAutoState(goog.ui.Component.State.SELECTED)&&this.setSelected(!0);this.isAutoState(goog.ui.Component.State.OPENED)&&this.setOpen(!this.isOpen());var b=new goog.events.Event(goog.ui.Component.EventType.ACTION,this);a&&(b.altKey=a.altKey,b.ctrlKey=a.ctrlKey,b.metaKey=a.metaKey,b.shiftKey=a.shiftKey,b.platformModifierKey=a.platformModifierKey);return this.dispatchEvent(b)};\ngoog.ui.Control.prototype.handleFocus=function(a){this.isAutoState(goog.ui.Component.State.FOCUSED)&&this.setFocused(!0)};goog.ui.Control.prototype.handleBlur=function(a){this.isAutoState(goog.ui.Component.State.ACTIVE)&&this.setActive(!1);this.isAutoState(goog.ui.Component.State.FOCUSED)&&this.setFocused(!1)};goog.ui.Control.prototype.handleKeyEvent=function(a){return this.isVisible()&&this.isEnabled()&&this.handleKeyEventInternal(a)?(a.preventDefault(),a.stopPropagation(),!0):!1};\ngoog.ui.Control.prototype.handleKeyEventInternal=function(a){return a.keyCode==goog.events.KeyCodes.ENTER&&this.performActionInternal(a)};goog.ui.registry.setDefaultRenderer(goog.ui.Control,goog.ui.ControlRenderer);goog.ui.registry.setDecoratorByClassName(goog.ui.ControlRenderer.CSS_CLASS,function(){return new goog.ui.Control(null)});\ngoog.ui.Control.IeMouseEventSequenceSimulator_=function(a){goog.Disposable.call(this);this.control_=a;this.clickExpected_=!1;this.handler_=new goog.events.EventHandler(this);this.registerDisposable(this.handler_);a=this.control_.getElementStrict();this.handler_.listen(a,goog.events.EventType.MOUSEDOWN,this.handleMouseDown_).listen(a,goog.events.EventType.MOUSEUP,this.handleMouseUp_).listen(a,goog.events.EventType.CLICK,this.handleClick_)};\ngoog.inherits(goog.ui.Control.IeMouseEventSequenceSimulator_,goog.Disposable);goog.ui.Control.IeMouseEventSequenceSimulator_.SYNTHETIC_EVENTS_=!goog.userAgent.IE||goog.userAgent.isDocumentModeOrHigher(9);goog.ui.Control.IeMouseEventSequenceSimulator_.prototype.handleMouseDown_=function(){this.clickExpected_=!1};goog.ui.Control.IeMouseEventSequenceSimulator_.prototype.handleMouseUp_=function(){this.clickExpected_=!0};\ngoog.ui.Control.IeMouseEventSequenceSimulator_.makeLeftMouseEvent_=function(a,b){if(!goog.ui.Control.IeMouseEventSequenceSimulator_.SYNTHETIC_EVENTS_)return a.button=goog.events.BrowserEvent.MouseButton.LEFT,a.type=b,a;var c=document.createEvent("MouseEvents");c.initMouseEvent(b,a.bubbles,a.cancelable,a.view||null,a.detail,a.screenX,a.screenY,a.clientX,a.clientY,a.ctrlKey,a.altKey,a.shiftKey,a.metaKey,goog.events.BrowserEvent.MouseButton.LEFT,a.relatedTarget||null);return c};\ngoog.ui.Control.IeMouseEventSequenceSimulator_.prototype.handleClick_=function(a){if(this.clickExpected_)this.clickExpected_=!1;else{var b=a.getBrowserEvent(),c=b.button,d=b.type,e=goog.ui.Control.IeMouseEventSequenceSimulator_.makeLeftMouseEvent_(b,goog.events.EventType.MOUSEDOWN);this.control_.handleMouseDown(new goog.events.BrowserEvent(e,a.currentTarget));e=goog.ui.Control.IeMouseEventSequenceSimulator_.makeLeftMouseEvent_(b,goog.events.EventType.MOUSEUP);this.control_.handleMouseUp(new goog.events.BrowserEvent(e,\na.currentTarget));goog.ui.Control.IeMouseEventSequenceSimulator_.SYNTHETIC_EVENTS_||(b.button=c,b.type=d)}};goog.ui.Control.IeMouseEventSequenceSimulator_.prototype.disposeInternal=function(){this.control_=null;goog.ui.Control.IeMouseEventSequenceSimulator_.superClass_.disposeInternal.call(this)};goog.ui.Container=function(a,b,c){goog.ui.Component.call(this,c);this.renderer_=b||goog.ui.ContainerRenderer.getInstance();this.orientation_=a||this.renderer_.getDefaultOrientation()};goog.inherits(goog.ui.Container,goog.ui.Component);goog.tagUnsealableClass(goog.ui.Container);goog.ui.Container.EventType={AFTER_SHOW:"aftershow",AFTER_HIDE:"afterhide"};goog.ui.Container.Orientation={HORIZONTAL:"horizontal",VERTICAL:"vertical"};goog.ui.Container.prototype.keyEventTarget_=null;\ngoog.ui.Container.prototype.keyHandler_=null;goog.ui.Container.prototype.renderer_=null;goog.ui.Container.prototype.orientation_=null;goog.ui.Container.prototype.visible_=!0;goog.ui.Container.prototype.enabled_=!0;goog.ui.Container.prototype.focusable_=!0;goog.ui.Container.prototype.highlightedIndex_=-1;goog.ui.Container.prototype.openItem_=null;goog.ui.Container.prototype.mouseButtonPressed_=!1;goog.ui.Container.prototype.allowFocusableChildren_=!1;\ngoog.ui.Container.prototype.openFollowsHighlight_=!0;goog.ui.Container.prototype.childElementIdMap_=null;goog.ui.Container.prototype.getKeyEventTarget=function(){return this.keyEventTarget_||this.renderer_.getKeyEventTarget(this)};\ngoog.ui.Container.prototype.setKeyEventTarget=function(a){if(this.focusable_){var b=this.getKeyEventTarget(),c=this.isInDocument();this.keyEventTarget_=a;var d=this.getKeyEventTarget();c&&(this.keyEventTarget_=b,this.enableFocusHandling_(!1),this.keyEventTarget_=a,this.getKeyHandler().attach(d),this.enableFocusHandling_(!0))}else throw Error("Can\'t set key event target for container that doesn\'t support keyboard focus!");};\ngoog.ui.Container.prototype.getKeyHandler=function(){return this.keyHandler_||(this.keyHandler_=new goog.events.KeyHandler(this.getKeyEventTarget()))};goog.ui.Container.prototype.getRenderer=function(){return this.renderer_};goog.ui.Container.prototype.setRenderer=function(a){if(this.getElement())throw Error(goog.ui.Component.Error.ALREADY_RENDERED);this.renderer_=a};goog.ui.Container.prototype.createDom=function(){this.setElementInternal(this.renderer_.createDom(this))};\ngoog.ui.Container.prototype.getContentElement=function(){return this.renderer_.getContentElement(this.getElement())};goog.ui.Container.prototype.canDecorate=function(a){return this.renderer_.canDecorate(a)};goog.ui.Container.prototype.decorateInternal=function(a){this.setElementInternal(this.renderer_.decorate(this,a));"none"==a.style.display&&(this.visible_=!1)};\ngoog.ui.Container.prototype.enterDocument=function(){goog.ui.Container.superClass_.enterDocument.call(this);this.forEachChild(function(a){a.isInDocument()&&this.registerChildId_(a)},this);var a=this.getElement();this.renderer_.initializeDom(this);this.setVisible(this.visible_,!0);this.getHandler().listen(this,goog.ui.Component.EventType.ENTER,this.handleEnterItem).listen(this,goog.ui.Component.EventType.HIGHLIGHT,this.handleHighlightItem).listen(this,goog.ui.Component.EventType.UNHIGHLIGHT,this.handleUnHighlightItem).listen(this,\ngoog.ui.Component.EventType.OPEN,this.handleOpenItem).listen(this,goog.ui.Component.EventType.CLOSE,this.handleCloseItem).listen(a,goog.events.EventType.MOUSEDOWN,this.handleMouseDown).listen(goog.dom.getOwnerDocument(a),goog.events.EventType.MOUSEUP,this.handleDocumentMouseUp).listen(a,[goog.events.EventType.MOUSEDOWN,goog.events.EventType.MOUSEUP,goog.events.EventType.MOUSEOVER,goog.events.EventType.MOUSEOUT,goog.events.EventType.CONTEXTMENU],this.handleChildMouseEvents);this.isFocusable()&&this.enableFocusHandling_(!0)};\ngoog.ui.Container.prototype.enableFocusHandling_=function(a){var b=this.getHandler(),c=this.getKeyEventTarget();a?b.listen(c,goog.events.EventType.FOCUS,this.handleFocus).listen(c,goog.events.EventType.BLUR,this.handleBlur).listen(this.getKeyHandler(),goog.events.KeyHandler.EventType.KEY,this.handleKeyEvent):b.unlisten(c,goog.events.EventType.FOCUS,this.handleFocus).unlisten(c,goog.events.EventType.BLUR,this.handleBlur).unlisten(this.getKeyHandler(),goog.events.KeyHandler.EventType.KEY,this.handleKeyEvent)};\ngoog.ui.Container.prototype.exitDocument=function(){this.setHighlightedIndex(-1);this.openItem_&&this.openItem_.setOpen(!1);this.mouseButtonPressed_=!1;goog.ui.Container.superClass_.exitDocument.call(this)};goog.ui.Container.prototype.disposeInternal=function(){goog.ui.Container.superClass_.disposeInternal.call(this);this.keyHandler_&&(this.keyHandler_.dispose(),this.keyHandler_=null);this.renderer_=this.openItem_=this.childElementIdMap_=this.keyEventTarget_=null};\ngoog.ui.Container.prototype.handleEnterItem=function(a){return!0};\ngoog.ui.Container.prototype.handleHighlightItem=function(a){var b=this.indexOfChild(a.target);if(-1<b&&b!=this.highlightedIndex_){var c=this.getHighlighted();c&&c.setHighlighted(!1);this.highlightedIndex_=b;c=this.getHighlighted();this.isMouseButtonPressed()&&c.setActive(!0);this.openFollowsHighlight_&&this.openItem_&&c!=this.openItem_&&(c.isSupportedState(goog.ui.Component.State.OPENED)?c.setOpen(!0):this.openItem_.setOpen(!1))}b=this.getElement();goog.asserts.assert(b,"The DOM element for the container cannot be null.");\nnull!=a.target.getElement()&&goog.a11y.aria.setState(b,goog.a11y.aria.State.ACTIVEDESCENDANT,a.target.getElement().id)};goog.ui.Container.prototype.handleUnHighlightItem=function(a){a.target==this.getHighlighted()&&(this.highlightedIndex_=-1);a=this.getElement();goog.asserts.assert(a,"The DOM element for the container cannot be null.");goog.a11y.aria.removeState(a,goog.a11y.aria.State.ACTIVEDESCENDANT)};\ngoog.ui.Container.prototype.handleOpenItem=function(a){(a=a.target)&&a!=this.openItem_&&a.getParent()==this&&(this.openItem_&&this.openItem_.setOpen(!1),this.openItem_=a)};goog.ui.Container.prototype.handleCloseItem=function(a){a.target==this.openItem_&&(this.openItem_=null);var b=this.getElement(),c=a.target.getElement();b&&a.target.isHighlighted()&&c&&goog.a11y.aria.setActiveDescendant(b,c)};\ngoog.ui.Container.prototype.handleMouseDown=function(a){this.enabled_&&this.setMouseButtonPressed(!0);var b=this.getKeyEventTarget();b&&goog.dom.isFocusableTabIndex(b)?b.focus():a.preventDefault()};goog.ui.Container.prototype.handleDocumentMouseUp=function(a){this.setMouseButtonPressed(!1)};\ngoog.ui.Container.prototype.handleChildMouseEvents=function(a){var b=this.getOwnerControl(a.target);if(b)switch(a.type){case goog.events.EventType.MOUSEDOWN:b.handleMouseDown(a);break;case goog.events.EventType.MOUSEUP:b.handleMouseUp(a);break;case goog.events.EventType.MOUSEOVER:b.handleMouseOver(a);break;case goog.events.EventType.MOUSEOUT:b.handleMouseOut(a);break;case goog.events.EventType.CONTEXTMENU:b.handleContextMenu(a)}};\ngoog.ui.Container.prototype.getOwnerControl=function(a){if(this.childElementIdMap_)for(var b=this.getElement();a&&a!==b;){var c=a.id;if(c in this.childElementIdMap_)return this.childElementIdMap_[c];a=a.parentNode}return null};goog.ui.Container.prototype.handleFocus=function(a){};goog.ui.Container.prototype.handleBlur=function(a){this.setHighlightedIndex(-1);this.setMouseButtonPressed(!1);this.openItem_&&this.openItem_.setOpen(!1)};\ngoog.ui.Container.prototype.handleKeyEvent=function(a){return this.isEnabled()&&this.isVisible()&&(0!=this.getChildCount()||this.keyEventTarget_)&&this.handleKeyEventInternal(a)?(a.preventDefault(),a.stopPropagation(),!0):!1};\ngoog.ui.Container.prototype.handleKeyEventInternal=function(a){var b=this.getHighlighted();if(b&&"function"==typeof b.handleKeyEvent&&b.handleKeyEvent(a)||this.openItem_&&this.openItem_!=b&&"function"==typeof this.openItem_.handleKeyEvent&&this.openItem_.handleKeyEvent(a))return!0;if(a.shiftKey||a.ctrlKey||a.metaKey||a.altKey)return!1;switch(a.keyCode){case goog.events.KeyCodes.ESC:if(this.isFocusable())this.getKeyEventTarget().blur();else return!1;break;case goog.events.KeyCodes.HOME:this.highlightFirst();\nbreak;case goog.events.KeyCodes.END:this.highlightLast();break;case goog.events.KeyCodes.UP:if(this.orientation_==goog.ui.Container.Orientation.VERTICAL)this.highlightPrevious();else return!1;break;case goog.events.KeyCodes.LEFT:if(this.orientation_==goog.ui.Container.Orientation.HORIZONTAL)this.isRightToLeft()?this.highlightNext():this.highlightPrevious();else return!1;break;case goog.events.KeyCodes.DOWN:if(this.orientation_==goog.ui.Container.Orientation.VERTICAL)this.highlightNext();else return!1;\nbreak;case goog.events.KeyCodes.RIGHT:if(this.orientation_==goog.ui.Container.Orientation.HORIZONTAL)this.isRightToLeft()?this.highlightPrevious():this.highlightNext();else return!1;break;default:return!1}return!0};goog.ui.Container.prototype.registerChildId_=function(a){var b=a.getElement(),b=b.id||(b.id=a.getId());this.childElementIdMap_||(this.childElementIdMap_={});this.childElementIdMap_[b]=a};\ngoog.ui.Container.prototype.addChild=function(a,b){goog.asserts.assertInstanceof(a,goog.ui.Control,"The child of a container must be a control");goog.ui.Container.superClass_.addChild.call(this,a,b)};\ngoog.ui.Container.prototype.addChildAt=function(a,b,c){goog.asserts.assertInstanceof(a,goog.ui.Control);a.setDispatchTransitionEvents(goog.ui.Component.State.HOVER,!0);a.setDispatchTransitionEvents(goog.ui.Component.State.OPENED,!0);!this.isFocusable()&&this.isFocusableChildrenAllowed()||a.setSupportedState(goog.ui.Component.State.FOCUSED,!1);a.setHandleMouseEvents(!1);var d=a.getParent()==this?this.indexOfChild(a):-1;goog.ui.Container.superClass_.addChildAt.call(this,a,b,c);a.isInDocument()&&this.isInDocument()&&\nthis.registerChildId_(a);this.updateHighlightedIndex_(d,b)};goog.ui.Container.prototype.updateHighlightedIndex_=function(a,b){-1==a&&(a=this.getChildCount());a==this.highlightedIndex_?this.highlightedIndex_=Math.min(this.getChildCount()-1,b):a>this.highlightedIndex_&&b<=this.highlightedIndex_?this.highlightedIndex_++:a<this.highlightedIndex_&&b>this.highlightedIndex_&&this.highlightedIndex_--};\ngoog.ui.Container.prototype.removeChild=function(a,b){a=goog.isString(a)?this.getChild(a):a;goog.asserts.assertInstanceof(a,goog.ui.Control);if(a){var c=this.indexOfChild(a);-1!=c&&(c==this.highlightedIndex_?(a.setHighlighted(!1),this.highlightedIndex_=-1):c<this.highlightedIndex_&&this.highlightedIndex_--);(c=a.getElement())&&c.id&&this.childElementIdMap_&&goog.object.remove(this.childElementIdMap_,c.id)}a=goog.ui.Container.superClass_.removeChild.call(this,a,b);a.setHandleMouseEvents(!0);return a};\ngoog.ui.Container.prototype.getOrientation=function(){return this.orientation_};goog.ui.Container.prototype.setOrientation=function(a){if(this.getElement())throw Error(goog.ui.Component.Error.ALREADY_RENDERED);this.orientation_=a};goog.ui.Container.prototype.isVisible=function(){return this.visible_};\ngoog.ui.Container.prototype.setVisible=function(a,b){if(b||this.visible_!=a&&this.dispatchEvent(a?goog.ui.Component.EventType.SHOW:goog.ui.Component.EventType.HIDE)){this.visible_=a;var c=this.getElement();c&&(goog.style.setElementShown(c,a),this.isFocusable()&&this.renderer_.enableTabIndex(this.getKeyEventTarget(),this.enabled_&&this.visible_),b||this.dispatchEvent(this.visible_?goog.ui.Container.EventType.AFTER_SHOW:goog.ui.Container.EventType.AFTER_HIDE));return!0}return!1};\ngoog.ui.Container.prototype.isEnabled=function(){return this.enabled_};\ngoog.ui.Container.prototype.setEnabled=function(a){this.enabled_!=a&&this.dispatchEvent(a?goog.ui.Component.EventType.ENABLE:goog.ui.Component.EventType.DISABLE)&&(a?(this.enabled_=!0,this.forEachChild(function(a){a.wasDisabled?delete a.wasDisabled:a.setEnabled(!0)})):(this.forEachChild(function(a){a.isEnabled()?a.setEnabled(!1):a.wasDisabled=!0}),this.enabled_=!1,this.setMouseButtonPressed(!1)),this.isFocusable()&&this.renderer_.enableTabIndex(this.getKeyEventTarget(),a&&this.visible_))};\ngoog.ui.Container.prototype.isFocusable=function(){return this.focusable_};goog.ui.Container.prototype.setFocusable=function(a){a!=this.focusable_&&this.isInDocument()&&this.enableFocusHandling_(a);this.focusable_=a;this.enabled_&&this.visible_&&this.renderer_.enableTabIndex(this.getKeyEventTarget(),a)};goog.ui.Container.prototype.isFocusableChildrenAllowed=function(){return this.allowFocusableChildren_};\ngoog.ui.Container.prototype.setFocusableChildrenAllowed=function(a){this.allowFocusableChildren_=a};goog.ui.Container.prototype.isOpenFollowsHighlight=function(){return this.openFollowsHighlight_};goog.ui.Container.prototype.setOpenFollowsHighlight=function(a){this.openFollowsHighlight_=a};goog.ui.Container.prototype.getHighlightedIndex=function(){return this.highlightedIndex_};\ngoog.ui.Container.prototype.setHighlightedIndex=function(a){(a=this.getChildAt(a))?a.setHighlighted(!0):-1<this.highlightedIndex_&&this.getHighlighted().setHighlighted(!1)};goog.ui.Container.prototype.setHighlighted=function(a){this.setHighlightedIndex(this.indexOfChild(a))};goog.ui.Container.prototype.getHighlighted=function(){return this.getChildAt(this.highlightedIndex_)};\ngoog.ui.Container.prototype.highlightFirst=function(){this.highlightHelper(function(a,b){return(a+1)%b},this.getChildCount()-1)};goog.ui.Container.prototype.highlightLast=function(){this.highlightHelper(function(a,b){a--;return 0>a?b-1:a},0)};goog.ui.Container.prototype.highlightNext=function(){this.highlightHelper(function(a,b){return(a+1)%b},this.highlightedIndex_)};goog.ui.Container.prototype.highlightPrevious=function(){this.highlightHelper(function(a,b){a--;return 0>a?b-1:a},this.highlightedIndex_)};\ngoog.ui.Container.prototype.highlightHelper=function(a,b){for(var c=0>b?this.indexOfChild(this.openItem_):b,d=this.getChildCount(),c=a.call(this,c,d),e=0;e<=d;){var f=this.getChildAt(c);if(f&&this.canHighlightItem(f))return this.setHighlightedIndexFromKeyEvent(c),!0;e++;c=a.call(this,c,d)}return!1};goog.ui.Container.prototype.canHighlightItem=function(a){return a.isVisible()&&a.isEnabled()&&a.isSupportedState(goog.ui.Component.State.HOVER)};\ngoog.ui.Container.prototype.setHighlightedIndexFromKeyEvent=function(a){this.setHighlightedIndex(a)};goog.ui.Container.prototype.getOpenItem=function(){return this.openItem_};goog.ui.Container.prototype.isMouseButtonPressed=function(){return this.mouseButtonPressed_};goog.ui.Container.prototype.setMouseButtonPressed=function(a){this.mouseButtonPressed_=a};goog.ui.MenuHeaderRenderer=function(){goog.ui.ControlRenderer.call(this)};goog.inherits(goog.ui.MenuHeaderRenderer,goog.ui.ControlRenderer);goog.addSingletonGetter(goog.ui.MenuHeaderRenderer);goog.ui.MenuHeaderRenderer.CSS_CLASS="goog-menuheader";goog.ui.MenuHeaderRenderer.prototype.getCssClass=function(){return goog.ui.MenuHeaderRenderer.CSS_CLASS};goog.ui.MenuHeader=function(a,b,c){goog.ui.Control.call(this,a,c||goog.ui.MenuHeaderRenderer.getInstance(),b);this.setSupportedState(goog.ui.Component.State.DISABLED,!1);this.setSupportedState(goog.ui.Component.State.HOVER,!1);this.setSupportedState(goog.ui.Component.State.ACTIVE,!1);this.setSupportedState(goog.ui.Component.State.FOCUSED,!1);this.setStateInternal(goog.ui.Component.State.DISABLED)};goog.inherits(goog.ui.MenuHeader,goog.ui.Control);\ngoog.ui.registry.setDecoratorByClassName(goog.ui.MenuHeaderRenderer.CSS_CLASS,function(){return new goog.ui.MenuHeader(null)});goog.ui.MenuItemRenderer=function(){goog.ui.ControlRenderer.call(this);this.classNameCache_=[]};goog.inherits(goog.ui.MenuItemRenderer,goog.ui.ControlRenderer);goog.addSingletonGetter(goog.ui.MenuItemRenderer);goog.ui.MenuItemRenderer.CSS_CLASS="goog-menuitem";goog.ui.MenuItemRenderer.CompositeCssClassIndex_={HOVER:0,CHECKBOX:1,CONTENT:2};\ngoog.ui.MenuItemRenderer.prototype.getCompositeCssClass_=function(a){var b=this.classNameCache_[a];if(!b){switch(a){case goog.ui.MenuItemRenderer.CompositeCssClassIndex_.HOVER:b=this.getStructuralCssClass()+"-highlight";break;case goog.ui.MenuItemRenderer.CompositeCssClassIndex_.CHECKBOX:b=this.getStructuralCssClass()+"-checkbox";break;case goog.ui.MenuItemRenderer.CompositeCssClassIndex_.CONTENT:b=this.getStructuralCssClass()+"-content"}this.classNameCache_[a]=b}return b};\ngoog.ui.MenuItemRenderer.prototype.getAriaRole=function(){return goog.a11y.aria.Role.MENU_ITEM};goog.ui.MenuItemRenderer.prototype.createDom=function(a){var b=a.getDomHelper().createDom("DIV",this.getClassNames(a).join(" "),this.createContent(a.getContent(),a.getDomHelper()));this.setEnableCheckBoxStructure(a,b,a.isSupportedState(goog.ui.Component.State.SELECTED)||a.isSupportedState(goog.ui.Component.State.CHECKED));return b};\ngoog.ui.MenuItemRenderer.prototype.getContentElement=function(a){return a&&a.firstChild};goog.ui.MenuItemRenderer.prototype.decorate=function(a,b){goog.asserts.assert(b);this.hasContentStructure(b)||b.appendChild(this.createContent(b.childNodes,a.getDomHelper()));goog.dom.classlist.contains(b,"goog-option")&&(a.setCheckable(!0),this.setCheckable(a,b,!0));return goog.ui.MenuItemRenderer.superClass_.decorate.call(this,a,b)};\ngoog.ui.MenuItemRenderer.prototype.setContent=function(a,b){var c=this.getContentElement(a),d=this.hasCheckBoxStructure(a)?c.firstChild:null;goog.ui.MenuItemRenderer.superClass_.setContent.call(this,a,b);d&&!this.hasCheckBoxStructure(a)&&c.insertBefore(d,c.firstChild||null)};\ngoog.ui.MenuItemRenderer.prototype.hasContentStructure=function(a){a=goog.dom.getFirstElementChild(a);var b=this.getCompositeCssClass_(goog.ui.MenuItemRenderer.CompositeCssClassIndex_.CONTENT);return!!a&&goog.dom.classlist.contains(a,b)};goog.ui.MenuItemRenderer.prototype.createContent=function(a,b){var c=this.getCompositeCssClass_(goog.ui.MenuItemRenderer.CompositeCssClassIndex_.CONTENT);return b.createDom("DIV",c,a)};\ngoog.ui.MenuItemRenderer.prototype.setSelectable=function(a,b,c){a&&b&&this.setEnableCheckBoxStructure(a,b,c)};goog.ui.MenuItemRenderer.prototype.setCheckable=function(a,b,c){a&&b&&this.setEnableCheckBoxStructure(a,b,c)};goog.ui.MenuItemRenderer.prototype.hasCheckBoxStructure=function(a){if(a=this.getContentElement(a)){a=a.firstChild;var b=this.getCompositeCssClass_(goog.ui.MenuItemRenderer.CompositeCssClassIndex_.CHECKBOX);return!!a&&goog.dom.isElement(a)&&goog.dom.classlist.contains(a,b)}return!1};\ngoog.ui.MenuItemRenderer.prototype.setEnableCheckBoxStructure=function(a,b,c){this.setAriaRole(b,a.getPreferredAriaRole());this.setAriaStates(a,b);c!=this.hasCheckBoxStructure(b)&&(goog.dom.classlist.enable(b,"goog-option",c),b=this.getContentElement(b),c?(c=this.getCompositeCssClass_(goog.ui.MenuItemRenderer.CompositeCssClassIndex_.CHECKBOX),b.insertBefore(a.getDomHelper().createDom("DIV",c),b.firstChild||null)):b.removeChild(b.firstChild))};\ngoog.ui.MenuItemRenderer.prototype.getClassForState=function(a){switch(a){case goog.ui.Component.State.HOVER:return this.getCompositeCssClass_(goog.ui.MenuItemRenderer.CompositeCssClassIndex_.HOVER);case goog.ui.Component.State.CHECKED:case goog.ui.Component.State.SELECTED:return"goog-option-selected";default:return goog.ui.MenuItemRenderer.superClass_.getClassForState.call(this,a)}};\ngoog.ui.MenuItemRenderer.prototype.getStateFromClass=function(a){var b=this.getCompositeCssClass_(goog.ui.MenuItemRenderer.CompositeCssClassIndex_.HOVER);switch(a){case "goog-option-selected":return goog.ui.Component.State.CHECKED;case b:return goog.ui.Component.State.HOVER;default:return goog.ui.MenuItemRenderer.superClass_.getStateFromClass.call(this,a)}};goog.ui.MenuItemRenderer.prototype.getCssClass=function(){return goog.ui.MenuItemRenderer.CSS_CLASS};goog.ui.MenuItem=function(a,b,c,d){goog.ui.Control.call(this,a,d||goog.ui.MenuItemRenderer.getInstance(),c);this.setValue(b)};goog.inherits(goog.ui.MenuItem,goog.ui.Control);goog.tagUnsealableClass(goog.ui.MenuItem);goog.ui.MenuItem.MNEMONIC_WRAPPER_CLASS_="goog-menuitem-mnemonic-separator";goog.ui.MenuItem.ACCELERATOR_CLASS="goog-menuitem-accel";goog.ui.MenuItem.prototype.getValue=function(){var a=this.getModel();return null!=a?a:this.getCaption()};goog.ui.MenuItem.prototype.setValue=function(a){this.setModel(a)};\ngoog.ui.MenuItem.prototype.setSupportedState=function(a,b){goog.ui.MenuItem.superClass_.setSupportedState.call(this,a,b);switch(a){case goog.ui.Component.State.SELECTED:this.setSelectableInternal_(b);break;case goog.ui.Component.State.CHECKED:this.setCheckableInternal_(b)}};goog.ui.MenuItem.prototype.setSelectable=function(a){this.setSupportedState(goog.ui.Component.State.SELECTED,a)};\ngoog.ui.MenuItem.prototype.setSelectableInternal_=function(a){this.isChecked()&&!a&&this.setChecked(!1);var b=this.getElement();b&&this.getRenderer().setSelectable(this,b,a)};goog.ui.MenuItem.prototype.setCheckable=function(a){this.setSupportedState(goog.ui.Component.State.CHECKED,a)};goog.ui.MenuItem.prototype.setCheckableInternal_=function(a){var b=this.getElement();b&&this.getRenderer().setCheckable(this,b,a)};\ngoog.ui.MenuItem.prototype.getCaption=function(){var a=this.getContent();if(goog.isArray(a)){var b=goog.ui.MenuItem.ACCELERATOR_CLASS,c=goog.ui.MenuItem.MNEMONIC_WRAPPER_CLASS_,a=goog.array.map(a,function(a){return goog.dom.isElement(a)&&(goog.dom.classlist.contains(a,b)||goog.dom.classlist.contains(a,c))?"":goog.dom.getRawTextContent(a)}).join("");return goog.string.collapseBreakingSpaces(a)}return goog.ui.MenuItem.superClass_.getCaption.call(this)};\ngoog.ui.MenuItem.prototype.getAccelerator=function(){var a=this.getDomHelper(),b=this.getContent();return goog.isArray(b)&&(b=goog.array.find(b,function(a){return goog.dom.classlist.contains(a,goog.ui.MenuItem.ACCELERATOR_CLASS)}))?a.getTextContent(b):null};\ngoog.ui.MenuItem.prototype.handleMouseUp=function(a){var b=this.getParent();if(b){var c=b.openingCoords;b.openingCoords=null;if(c&&goog.isNumber(a.clientX)&&(b=new goog.math.Coordinate(a.clientX,a.clientY),goog.math.Coordinate.equals(c,b)))return}goog.ui.MenuItem.superClass_.handleMouseUp.call(this,a)};goog.ui.MenuItem.prototype.handleKeyEventInternal=function(a){return a.keyCode==this.getMnemonic()&&this.performActionInternal(a)?!0:goog.ui.MenuItem.superClass_.handleKeyEventInternal.call(this,a)};\ngoog.ui.MenuItem.prototype.setMnemonic=function(a){this.mnemonicKey_=a};goog.ui.MenuItem.prototype.getMnemonic=function(){return this.mnemonicKey_};goog.ui.registry.setDecoratorByClassName(goog.ui.MenuItemRenderer.CSS_CLASS,function(){return new goog.ui.MenuItem(null)});\ngoog.ui.MenuItem.prototype.getPreferredAriaRole=function(){return this.isSupportedState(goog.ui.Component.State.CHECKED)?goog.a11y.aria.Role.MENU_ITEM_CHECKBOX:this.isSupportedState(goog.ui.Component.State.SELECTED)?goog.a11y.aria.Role.MENU_ITEM_RADIO:goog.ui.MenuItem.superClass_.getPreferredAriaRole.call(this)};goog.ui.MenuItem.prototype.getParent=function(){return goog.ui.Control.prototype.getParent.call(this)};goog.ui.MenuItem.prototype.getParentEventTarget=function(){return goog.ui.Control.prototype.getParentEventTarget.call(this)};goog.ui.MenuSeparatorRenderer=function(){goog.ui.ControlRenderer.call(this)};goog.inherits(goog.ui.MenuSeparatorRenderer,goog.ui.ControlRenderer);goog.addSingletonGetter(goog.ui.MenuSeparatorRenderer);goog.ui.MenuSeparatorRenderer.CSS_CLASS="goog-menuseparator";goog.ui.MenuSeparatorRenderer.prototype.createDom=function(a){return a.getDomHelper().createDom("DIV",this.getCssClass())};\ngoog.ui.MenuSeparatorRenderer.prototype.decorate=function(a,b){b.id&&a.setId(b.id);if("HR"==b.tagName){var c=b;b=this.createDom(a);goog.dom.insertSiblingBefore(b,c);goog.dom.removeNode(c)}else goog.dom.classlist.add(b,this.getCssClass());return b};goog.ui.MenuSeparatorRenderer.prototype.setContent=function(a,b){};goog.ui.MenuSeparatorRenderer.prototype.getCssClass=function(){return goog.ui.MenuSeparatorRenderer.CSS_CLASS};goog.ui.Separator=function(a,b){goog.ui.Control.call(this,null,a||goog.ui.MenuSeparatorRenderer.getInstance(),b);this.setSupportedState(goog.ui.Component.State.DISABLED,!1);this.setSupportedState(goog.ui.Component.State.HOVER,!1);this.setSupportedState(goog.ui.Component.State.ACTIVE,!1);this.setSupportedState(goog.ui.Component.State.FOCUSED,!1);this.setStateInternal(goog.ui.Component.State.DISABLED)};goog.inherits(goog.ui.Separator,goog.ui.Control);\ngoog.ui.Separator.prototype.enterDocument=function(){goog.ui.Separator.superClass_.enterDocument.call(this);var a=this.getElement();goog.asserts.assert(a,"The DOM element for the separator cannot be null.");goog.a11y.aria.setRole(a,"separator")};goog.ui.registry.setDecoratorByClassName(goog.ui.MenuSeparatorRenderer.CSS_CLASS,function(){return new goog.ui.Separator});goog.ui.MenuRenderer=function(a){goog.ui.ContainerRenderer.call(this,a||goog.a11y.aria.Role.MENU)};goog.inherits(goog.ui.MenuRenderer,goog.ui.ContainerRenderer);goog.addSingletonGetter(goog.ui.MenuRenderer);goog.ui.MenuRenderer.CSS_CLASS="goog-menu";goog.ui.MenuRenderer.prototype.canDecorate=function(a){return"UL"==a.tagName||goog.ui.MenuRenderer.superClass_.canDecorate.call(this,a)};\ngoog.ui.MenuRenderer.prototype.getDecoratorForChild=function(a){return"HR"==a.tagName?new goog.ui.Separator:goog.ui.MenuRenderer.superClass_.getDecoratorForChild.call(this,a)};goog.ui.MenuRenderer.prototype.containsElement=function(a,b){return goog.dom.contains(a.getElement(),b)};goog.ui.MenuRenderer.prototype.getCssClass=function(){return goog.ui.MenuRenderer.CSS_CLASS};\ngoog.ui.MenuRenderer.prototype.initializeDom=function(a){goog.ui.MenuRenderer.superClass_.initializeDom.call(this,a);a=a.getElement();goog.asserts.assert(a,"The menu DOM element cannot be null.");goog.a11y.aria.setState(a,goog.a11y.aria.State.HASPOPUP,"true")};goog.ui.MenuSeparator=function(a){goog.ui.Separator.call(this,goog.ui.MenuSeparatorRenderer.getInstance(),a)};goog.inherits(goog.ui.MenuSeparator,goog.ui.Separator);goog.ui.registry.setDecoratorByClassName(goog.ui.MenuSeparatorRenderer.CSS_CLASS,function(){return new goog.ui.Separator});goog.ui.Menu=function(a,b){goog.ui.Container.call(this,goog.ui.Container.Orientation.VERTICAL,b||goog.ui.MenuRenderer.getInstance(),a);this.setFocusable(!1)};goog.inherits(goog.ui.Menu,goog.ui.Container);goog.tagUnsealableClass(goog.ui.Menu);goog.ui.Menu.EventType={BEFORE_SHOW:goog.ui.Component.EventType.BEFORE_SHOW,SHOW:goog.ui.Component.EventType.SHOW,BEFORE_HIDE:goog.ui.Component.EventType.HIDE,HIDE:goog.ui.Component.EventType.HIDE};goog.ui.Menu.CSS_CLASS=goog.ui.MenuRenderer.CSS_CLASS;\ngoog.ui.Menu.prototype.allowAutoFocus_=!0;goog.ui.Menu.prototype.allowHighlightDisabled_=!1;goog.ui.Menu.prototype.getCssClass=function(){return this.getRenderer().getCssClass()};goog.ui.Menu.prototype.containsElement=function(a){if(this.getRenderer().containsElement(this,a))return!0;for(var b=0,c=this.getChildCount();b<c;b++){var d=this.getChildAt(b);if("function"==typeof d.containsElement&&d.containsElement(a))return!0}return!1};goog.ui.Menu.prototype.addItem=function(a){this.addChild(a,!0)};\ngoog.ui.Menu.prototype.addItemAt=function(a,b){this.addChildAt(a,b,!0)};goog.ui.Menu.prototype.removeItem=function(a){(a=this.removeChild(a,!0))&&a.dispose()};goog.ui.Menu.prototype.removeItemAt=function(a){(a=this.removeChildAt(a,!0))&&a.dispose()};goog.ui.Menu.prototype.getItemAt=function(a){return this.getChildAt(a)};goog.ui.Menu.prototype.getItemCount=function(){return this.getChildCount()};goog.ui.Menu.prototype.getItems=function(){var a=[];this.forEachChild(function(b){a.push(b)});return a};\ngoog.ui.Menu.prototype.setPosition=function(a,b){var c=this.isVisible();c||goog.style.setElementShown(this.getElement(),!0);goog.style.setPageOffset(this.getElement(),a,b);c||goog.style.setElementShown(this.getElement(),!1)};goog.ui.Menu.prototype.getPosition=function(){return this.isVisible()?goog.style.getPageOffset(this.getElement()):null};goog.ui.Menu.prototype.setAllowAutoFocus=function(a){(this.allowAutoFocus_=a)&&this.setFocusable(!0)};goog.ui.Menu.prototype.getAllowAutoFocus=function(){return this.allowAutoFocus_};\ngoog.ui.Menu.prototype.setAllowHighlightDisabled=function(a){this.allowHighlightDisabled_=a};goog.ui.Menu.prototype.getAllowHighlightDisabled=function(){return this.allowHighlightDisabled_};goog.ui.Menu.prototype.setVisible=function(a,b,c){(b=goog.ui.Menu.superClass_.setVisible.call(this,a,b))&&a&&this.isInDocument()&&this.allowAutoFocus_&&this.getKeyEventTarget().focus();a&&c&&goog.isNumber(c.clientX)?this.openingCoords=new goog.math.Coordinate(c.clientX,c.clientY):this.openingCoords=null;return b};\ngoog.ui.Menu.prototype.handleEnterItem=function(a){this.allowAutoFocus_&&this.getKeyEventTarget().focus();return goog.ui.Menu.superClass_.handleEnterItem.call(this,a)};goog.ui.Menu.prototype.highlightNextPrefix=function(a){var b=new RegExp("^"+goog.string.regExpEscape(a),"i");return this.highlightHelper(function(a,d){var c=0>a?0:a,f=!1;do{++a;a==d&&(a=0,f=!0);var g=this.getChildAt(a).getCaption();if(g&&g.match(b))return a}while(!f||a!=c);return this.getHighlightedIndex()},this.getHighlightedIndex())};\ngoog.ui.Menu.prototype.canHighlightItem=function(a){return(this.allowHighlightDisabled_||a.isEnabled())&&a.isVisible()&&a.isSupportedState(goog.ui.Component.State.HOVER)};goog.ui.Menu.prototype.decorateInternal=function(a){this.decorateContent(a);goog.ui.Menu.superClass_.decorateInternal.call(this,a)};\ngoog.ui.Menu.prototype.handleKeyEventInternal=function(a){var b=goog.ui.Menu.superClass_.handleKeyEventInternal.call(this,a);b||this.forEachChild(function(c){!b&&c.getMnemonic&&c.getMnemonic()==a.keyCode&&(this.isEnabled()&&this.setHighlighted(c),b=c.handleKeyEvent(a))},this);return b};goog.ui.Menu.prototype.setHighlightedIndex=function(a){goog.ui.Menu.superClass_.setHighlightedIndex.call(this,a);(a=this.getChildAt(a))&&goog.style.scrollIntoContainerView(a.getElement(),this.getElement())};\ngoog.ui.Menu.prototype.decorateContent=function(a){var b=this.getRenderer();a=this.getDomHelper().getElementsByTagNameAndClass("DIV",b.getCssClass()+"-content",a);for(var c=a.length,d=0;d<c;d++)b.decorateChildren(this,a[d])};goog.color={};\ngoog.color.names={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",\ndarkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",\nghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",\nlightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",\nmoccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",\nseashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};goog.color.parse=function(a){var b={};a=String(a);var c=goog.color.prependHashIfNecessaryHelper(a);if(goog.color.isValidHexColor_(c))return b.hex=goog.color.normalizeHex(c),b.type="hex",b;c=goog.color.isValidRgbColor_(a);if(c.length)return b.hex=goog.color.rgbArrayToHex(c),b.type="rgb",b;if(goog.color.names&&(c=goog.color.names[a.toLowerCase()]))return b.hex=c,b.type="named",b;throw Error(a+" is not a valid color string");};\ngoog.color.isValidColor=function(a){var b=goog.color.prependHashIfNecessaryHelper(a);return!!(goog.color.isValidHexColor_(b)||goog.color.isValidRgbColor_(a).length||goog.color.names&&goog.color.names[a.toLowerCase()])};goog.color.parseRgb=function(a){var b=goog.color.isValidRgbColor_(a);if(!b.length)throw Error(a+" is not a valid RGB color");return b};goog.color.hexToRgbStyle=function(a){return goog.color.rgbStyle_(goog.color.hexToRgb(a))};goog.color.hexTripletRe_=/#(.)(.)(.)/;\ngoog.color.normalizeHex=function(a){if(!goog.color.isValidHexColor_(a))throw Error("\'"+a+"\' is not a valid hex color");4==a.length&&(a=a.replace(goog.color.hexTripletRe_,"#$1$1$2$2$3$3"));return a.toLowerCase()};goog.color.hexToRgb=function(a){a=goog.color.normalizeHex(a);var b=parseInt(a.substr(1,2),16),c=parseInt(a.substr(3,2),16);a=parseInt(a.substr(5,2),16);return[b,c,a]};\ngoog.color.rgbToHex=function(a,b,c){a=Number(a);b=Number(b);c=Number(c);if(a!=(a&255)||b!=(b&255)||c!=(c&255))throw Error(\'"(\'+a+","+b+","+c+\'") is not a valid RGB color\');a=goog.color.prependZeroIfNecessaryHelper(a.toString(16));b=goog.color.prependZeroIfNecessaryHelper(b.toString(16));c=goog.color.prependZeroIfNecessaryHelper(c.toString(16));return"#"+a+b+c};goog.color.rgbArrayToHex=function(a){return goog.color.rgbToHex(a[0],a[1],a[2])};\ngoog.color.rgbToHsl=function(a,b,c){a/=255;b/=255;c/=255;var d=Math.max(a,b,c),e=Math.min(a,b,c),f=0,g=0,h=.5*(d+e);d!=e&&(d==a?f=60*(b-c)/(d-e):d==b?f=60*(c-a)/(d-e)+120:d==c&&(f=60*(a-b)/(d-e)+240),g=0<h&&.5>=h?(d-e)/(2*h):(d-e)/(2-2*h));return[Math.round(f+360)%360,g,h]};goog.color.rgbArrayToHsl=function(a){return goog.color.rgbToHsl(a[0],a[1],a[2])};goog.color.hueToRgb_=function(a,b,c){0>c?c+=1:1<c&&--c;return 1>6*c?a+6*(b-a)*c:1>2*c?b:2>3*c?a+(b-a)*(2/3-c)*6:a};\ngoog.color.hslToRgb=function(a,b,c){a/=360;if(0==b)c=b=a=255*c;else{var d,e;e=.5>c?c*(1+b):c+b-b*c;d=2*c-e;c=255*goog.color.hueToRgb_(d,e,a+1/3);b=255*goog.color.hueToRgb_(d,e,a);a=255*goog.color.hueToRgb_(d,e,a-1/3)}return[Math.round(c),Math.round(b),Math.round(a)]};goog.color.hslArrayToRgb=function(a){return goog.color.hslToRgb(a[0],a[1],a[2])};goog.color.validHexColorRe_=/^#(?:[0-9a-f]{3}){1,2}$/i;goog.color.isValidHexColor_=function(a){return goog.color.validHexColorRe_.test(a)};\ngoog.color.normalizedHexColorRe_=/^#[0-9a-f]{6}$/;goog.color.isNormalizedHexColor_=function(a){return goog.color.normalizedHexColorRe_.test(a)};goog.color.rgbColorRe_=/^(?:rgb)?\\((0|[1-9]\\d{0,2}),\\s?(0|[1-9]\\d{0,2}),\\s?(0|[1-9]\\d{0,2})\\)$/i;goog.color.isValidRgbColor_=function(a){var b=a.match(goog.color.rgbColorRe_);if(b){a=Number(b[1]);var c=Number(b[2]),b=Number(b[3]);if(0<=a&&255>=a&&0<=c&&255>=c&&0<=b&&255>=b)return[a,c,b]}return[]};\ngoog.color.prependZeroIfNecessaryHelper=function(a){return 1==a.length?"0"+a:a};goog.color.prependHashIfNecessaryHelper=function(a){return"#"==a.charAt(0)?a:"#"+a};goog.color.rgbStyle_=function(a){return"rgb("+a.join(",")+")"};\ngoog.color.hsvToRgb=function(a,b,c){var d=0,e=0,f=0;if(0==b)f=e=d=c;else{var g=Math.floor(a/60),h=a/60-g;a=c*(1-b);var k=c*(1-b*h);b=c*(1-b*(1-h));switch(g){case 1:d=k;e=c;f=a;break;case 2:d=a;e=c;f=b;break;case 3:d=a;e=k;f=c;break;case 4:d=b;e=a;f=c;break;case 5:d=c;e=a;f=k;break;case 6:case 0:d=c,e=b,f=a}}return[Math.floor(d),Math.floor(e),Math.floor(f)]};\ngoog.color.rgbToHsv=function(a,b,c){var d=Math.max(Math.max(a,b),c),e=Math.min(Math.min(a,b),c);if(e==d)e=a=0;else{var f=d-e,e=f/d;a=60*(a==d?(b-c)/f:b==d?2+(c-a)/f:4+(a-b)/f);0>a&&(a+=360);360<a&&(a-=360)}return[a,e,d]};goog.color.rgbArrayToHsv=function(a){return goog.color.rgbToHsv(a[0],a[1],a[2])};goog.color.hsvArrayToRgb=function(a){return goog.color.hsvToRgb(a[0],a[1],a[2])};goog.color.hexToHsl=function(a){a=goog.color.hexToRgb(a);return goog.color.rgbToHsl(a[0],a[1],a[2])};\ngoog.color.hslToHex=function(a,b,c){return goog.color.rgbArrayToHex(goog.color.hslToRgb(a,b,c))};goog.color.hslArrayToHex=function(a){return goog.color.rgbArrayToHex(goog.color.hslToRgb(a[0],a[1],a[2]))};goog.color.hexToHsv=function(a){return goog.color.rgbArrayToHsv(goog.color.hexToRgb(a))};goog.color.hsvToHex=function(a,b,c){return goog.color.rgbArrayToHex(goog.color.hsvToRgb(a,b,c))};goog.color.hsvArrayToHex=function(a){return goog.color.hsvToHex(a[0],a[1],a[2])};\ngoog.color.hslDistance=function(a,b){var c,d;c=.5>=a[2]?a[1]*a[2]:a[1]*(1-a[2]);d=.5>=b[2]?b[1]*b[2]:b[1]*(1-b[2]);return(a[2]-b[2])*(a[2]-b[2])+c*c+d*d-2*c*d*Math.cos(2*(a[0]/360-b[0]/360)*Math.PI)};goog.color.blend=function(a,b,c){c=goog.math.clamp(c,0,1);return[Math.round(c*a[0]+(1-c)*b[0]),Math.round(c*a[1]+(1-c)*b[1]),Math.round(c*a[2]+(1-c)*b[2])]};goog.color.darken=function(a,b){return goog.color.blend([0,0,0],a,b)};goog.color.lighten=function(a,b){return goog.color.blend([255,255,255],a,b)};\ngoog.color.highContrast=function(a,b){for(var c=[],d=0;d<b.length;d++)c.push({color:b[d],diff:goog.color.yiqBrightnessDiff_(b[d],a)+goog.color.colorDiff_(b[d],a)});c.sort(function(a,b){return b.diff-a.diff});return c[0].color};goog.color.yiqBrightness_=function(a){return Math.round((299*a[0]+587*a[1]+114*a[2])/1E3)};goog.color.yiqBrightnessDiff_=function(a,b){return Math.abs(goog.color.yiqBrightness_(a)-goog.color.yiqBrightness_(b))};\ngoog.color.colorDiff_=function(a,b){return Math.abs(a[0]-b[0])+Math.abs(a[1]-b[1])+Math.abs(a[2]-b[2])};goog.iter={};goog.iter.StopIteration="StopIteration"in goog.global?goog.global.StopIteration:{message:"StopIteration",stack:""};goog.iter.Iterator=function(){};goog.iter.Iterator.prototype.next=function(){throw goog.iter.StopIteration;};goog.iter.Iterator.prototype.__iterator__=function(a){return this};\ngoog.iter.toIterator=function(a){if(a instanceof goog.iter.Iterator)return a;if("function"==typeof a.__iterator__)return a.__iterator__(!1);if(goog.isArrayLike(a)){var b=0,c=new goog.iter.Iterator;c.next=function(){for(;;){if(b>=a.length)throw goog.iter.StopIteration;if(b in a)return a[b++];b++}};return c}throw Error("Not implemented");};\ngoog.iter.forEach=function(a,b,c){if(goog.isArrayLike(a))try{goog.array.forEach(a,b,c)}catch(d){if(d!==goog.iter.StopIteration)throw d;}else{a=goog.iter.toIterator(a);try{for(;;)b.call(c,a.next(),void 0,a)}catch(d){if(d!==goog.iter.StopIteration)throw d;}}};goog.iter.filter=function(a,b,c){var d=goog.iter.toIterator(a);a=new goog.iter.Iterator;a.next=function(){for(;;){var a=d.next();if(b.call(c,a,void 0,d))return a}};return a};\ngoog.iter.filterFalse=function(a,b,c){return goog.iter.filter(a,goog.functions.not(b),c)};goog.iter.range=function(a,b,c){var d=0,e=a,f=c||1;1<arguments.length&&(d=a,e=b);if(0==f)throw Error("Range step argument must not be zero");var g=new goog.iter.Iterator;g.next=function(){if(0<f&&d>=e||0>f&&d<=e)throw goog.iter.StopIteration;var a=d;d+=f;return a};return g};goog.iter.join=function(a,b){return goog.iter.toArray(a).join(b)};\ngoog.iter.map=function(a,b,c){var d=goog.iter.toIterator(a);a=new goog.iter.Iterator;a.next=function(){var a=d.next();return b.call(c,a,void 0,d)};return a};goog.iter.reduce=function(a,b,c,d){var e=c;goog.iter.forEach(a,function(a){e=b.call(d,e,a)});return e};goog.iter.some=function(a,b,c){a=goog.iter.toIterator(a);try{for(;;)if(b.call(c,a.next(),void 0,a))return!0}catch(d){if(d!==goog.iter.StopIteration)throw d;}return!1};\ngoog.iter.every=function(a,b,c){a=goog.iter.toIterator(a);try{for(;;)if(!b.call(c,a.next(),void 0,a))return!1}catch(d){if(d!==goog.iter.StopIteration)throw d;}return!0};goog.iter.chain=function(a){return goog.iter.chainFromIterable(arguments)};\ngoog.iter.chainFromIterable=function(a){var b=goog.iter.toIterator(a);a=new goog.iter.Iterator;var c=null;a.next=function(){for(;;){if(null==c){var a=b.next();c=goog.iter.toIterator(a)}try{return c.next()}catch(e){if(e!==goog.iter.StopIteration)throw e;c=null}}};return a};goog.iter.dropWhile=function(a,b,c){var d=goog.iter.toIterator(a);a=new goog.iter.Iterator;var e=!0;a.next=function(){for(;;){var a=d.next();if(!e||!b.call(c,a,void 0,d))return e=!1,a}};return a};\ngoog.iter.takeWhile=function(a,b,c){var d=goog.iter.toIterator(a);a=new goog.iter.Iterator;a.next=function(){var a=d.next();if(b.call(c,a,void 0,d))return a;throw goog.iter.StopIteration;};return a};goog.iter.toArray=function(a){if(goog.isArrayLike(a))return goog.array.toArray(a);a=goog.iter.toIterator(a);var b=[];goog.iter.forEach(a,function(a){b.push(a)});return b};\ngoog.iter.equals=function(a,b,c){a=goog.iter.zipLongest({},a,b);var d=c||goog.array.defaultCompareEquality;return goog.iter.every(a,function(a){return d(a[0],a[1])})};goog.iter.nextOrValue=function(a,b){try{return goog.iter.toIterator(a).next()}catch(c){if(c!=goog.iter.StopIteration)throw c;return b}};\ngoog.iter.product=function(a){if(goog.array.some(arguments,function(a){return!a.length})||!arguments.length)return new goog.iter.Iterator;var b=new goog.iter.Iterator,c=arguments,d=goog.array.repeat(0,c.length);b.next=function(){if(d){for(var a=goog.array.map(d,function(a,b){return c[b][a]}),b=d.length-1;0<=b;b--){goog.asserts.assert(d);if(d[b]<c[b].length-1){d[b]++;break}if(0==b){d=null;break}d[b]=0}return a}throw goog.iter.StopIteration;};return b};\ngoog.iter.cycle=function(a){var b=goog.iter.toIterator(a),c=[],d=0;a=new goog.iter.Iterator;var e=!1;a.next=function(){var a=null;if(!e)try{return a=b.next(),c.push(a),a}catch(g){if(g!=goog.iter.StopIteration||goog.array.isEmpty(c))throw g;e=!0}a=c[d];d=(d+1)%c.length;return a};return a};goog.iter.count=function(a,b){var c=a||0,d=goog.isDef(b)?b:1,e=new goog.iter.Iterator;e.next=function(){var a=c;c+=d;return a};return e};\ngoog.iter.repeat=function(a){var b=new goog.iter.Iterator;b.next=goog.functions.constant(a);return b};goog.iter.accumulate=function(a){var b=goog.iter.toIterator(a),c=0;a=new goog.iter.Iterator;a.next=function(){return c+=b.next()};return a};goog.iter.zip=function(a){var b=arguments,c=new goog.iter.Iterator;if(0<b.length){var d=goog.array.map(b,goog.iter.toIterator);c.next=function(){return goog.array.map(d,function(a){return a.next()})}}return c};\ngoog.iter.zipLongest=function(a,b){var c=goog.array.slice(arguments,1),d=new goog.iter.Iterator;if(0<c.length){var e=goog.array.map(c,goog.iter.toIterator);d.next=function(){var b=!1,c=goog.array.map(e,function(c){var d;try{d=c.next(),b=!0}catch(l){if(l!==goog.iter.StopIteration)throw l;d=a}return d});if(!b)throw goog.iter.StopIteration;return c}}return d};goog.iter.compress=function(a,b){var c=goog.iter.toIterator(b);return goog.iter.filter(a,function(){return!!c.next()})};\ngoog.iter.GroupByIterator_=function(a,b){this.iterator=goog.iter.toIterator(a);this.keyFunc=b||goog.functions.identity};goog.inherits(goog.iter.GroupByIterator_,goog.iter.Iterator);goog.iter.GroupByIterator_.prototype.next=function(){for(;this.currentKey==this.targetKey;)this.currentValue=this.iterator.next(),this.currentKey=this.keyFunc(this.currentValue);this.targetKey=this.currentKey;return[this.currentKey,this.groupItems_(this.targetKey)]};\ngoog.iter.GroupByIterator_.prototype.groupItems_=function(a){for(var b=[];this.currentKey==a;){b.push(this.currentValue);try{this.currentValue=this.iterator.next()}catch(c){if(c!==goog.iter.StopIteration)throw c;break}this.currentKey=this.keyFunc(this.currentValue)}return b};goog.iter.groupBy=function(a,b){return new goog.iter.GroupByIterator_(a,b)};\ngoog.iter.starMap=function(a,b,c){var d=goog.iter.toIterator(a);a=new goog.iter.Iterator;a.next=function(){var a=goog.iter.toArray(d.next());return b.apply(c,goog.array.concat(a,void 0,d))};return a};\ngoog.iter.tee=function(a,b){var c=goog.iter.toIterator(a),d=goog.isNumber(b)?b:2,e=goog.array.map(goog.array.range(d),function(){return[]}),f=function(){var a=c.next();goog.array.forEach(e,function(b){b.push(a)})};return goog.array.map(e,function(a){var b=new goog.iter.Iterator;b.next=function(){goog.array.isEmpty(a)&&f();goog.asserts.assert(!goog.array.isEmpty(a));return a.shift()};return b})};goog.iter.enumerate=function(a,b){return goog.iter.zip(goog.iter.count(b),a)};\ngoog.iter.limit=function(a,b){goog.asserts.assert(goog.math.isInt(b)&&0<=b);var c=goog.iter.toIterator(a),d=new goog.iter.Iterator,e=b;d.next=function(){if(0<e--)return c.next();throw goog.iter.StopIteration;};return d};goog.iter.consume=function(a,b){goog.asserts.assert(goog.math.isInt(b)&&0<=b);for(var c=goog.iter.toIterator(a);0<b--;)goog.iter.nextOrValue(c,null);return c};\ngoog.iter.slice=function(a,b,c){goog.asserts.assert(goog.math.isInt(b)&&0<=b);a=goog.iter.consume(a,b);goog.isNumber(c)&&(goog.asserts.assert(goog.math.isInt(c)&&c>=b),a=goog.iter.limit(a,c-b));return a};goog.iter.hasDuplicates_=function(a){var b=[];goog.array.removeDuplicates(a,b);return a.length!=b.length};goog.iter.permutations=function(a,b){var c=goog.iter.toArray(a),d=goog.isNumber(b)?b:c.length,c=goog.array.repeat(c,d),c=goog.iter.product.apply(void 0,c);return goog.iter.filter(c,function(a){return!goog.iter.hasDuplicates_(a)})};\ngoog.iter.combinations=function(a,b){function c(a){return d[a]}var d=goog.iter.toArray(a),e=goog.iter.range(d.length),e=goog.iter.permutations(e,b),f=goog.iter.filter(e,function(a){return goog.array.isSorted(a)}),e=new goog.iter.Iterator;e.next=function(){return goog.array.map(f.next(),c)};return e};\ngoog.iter.combinationsWithReplacement=function(a,b){function c(a){return d[a]}var d=goog.iter.toArray(a),e=goog.array.range(d.length),e=goog.array.repeat(e,b),e=goog.iter.product.apply(void 0,e),f=goog.iter.filter(e,function(a){return goog.array.isSorted(a)}),e=new goog.iter.Iterator;e.next=function(){return goog.array.map(f.next(),c)};return e};goog.dom.TagWalkType={START_TAG:1,OTHER:0,END_TAG:-1};goog.dom.TagIterator=function(a,b,c,d,e){this.reversed=!!b;this.node=null;this.tagType=goog.dom.TagWalkType.OTHER;this.started_=!1;this.constrained=!c;a&&this.setPosition(a,d);this.depth=void 0!=e?e:this.tagType||0;this.reversed&&(this.depth*=-1)};goog.inherits(goog.dom.TagIterator,goog.iter.Iterator);\ngoog.dom.TagIterator.prototype.setPosition=function(a,b,c){if(this.node=a)goog.isNumber(b)?this.tagType=b:this.tagType=this.node.nodeType!=goog.dom.NodeType.ELEMENT?goog.dom.TagWalkType.OTHER:this.reversed?goog.dom.TagWalkType.END_TAG:goog.dom.TagWalkType.START_TAG;goog.isNumber(c)&&(this.depth=c)};goog.dom.TagIterator.prototype.copyFrom=function(a){this.node=a.node;this.tagType=a.tagType;this.depth=a.depth;this.reversed=a.reversed;this.constrained=a.constrained};\ngoog.dom.TagIterator.prototype.clone=function(){return new goog.dom.TagIterator(this.node,this.reversed,!this.constrained,this.tagType,this.depth)};goog.dom.TagIterator.prototype.skipTag=function(){var a=this.reversed?goog.dom.TagWalkType.END_TAG:goog.dom.TagWalkType.START_TAG;this.tagType==a&&(this.tagType=-1*a,this.depth+=this.tagType*(this.reversed?-1:1))};\ngoog.dom.TagIterator.prototype.restartTag=function(){var a=this.reversed?goog.dom.TagWalkType.START_TAG:goog.dom.TagWalkType.END_TAG;this.tagType==a&&(this.tagType=-1*a,this.depth+=this.tagType*(this.reversed?-1:1))};\ngoog.dom.TagIterator.prototype.next=function(){var a;if(this.started_){if(!this.node||this.constrained&&0==this.depth)throw goog.iter.StopIteration;a=this.node;var b=this.reversed?goog.dom.TagWalkType.END_TAG:goog.dom.TagWalkType.START_TAG;if(this.tagType==b){var c=this.reversed?a.lastChild:a.firstChild;c?this.setPosition(c):this.setPosition(a,-1*b)}else(c=this.reversed?a.previousSibling:a.nextSibling)?this.setPosition(c):this.setPosition(a.parentNode,-1*b);this.depth+=this.tagType*(this.reversed?\n-1:1)}else this.started_=!0;a=this.node;if(!this.node)throw goog.iter.StopIteration;return a};goog.dom.TagIterator.prototype.isStarted=function(){return this.started_};goog.dom.TagIterator.prototype.isStartTag=function(){return this.tagType==goog.dom.TagWalkType.START_TAG};goog.dom.TagIterator.prototype.isEndTag=function(){return this.tagType==goog.dom.TagWalkType.END_TAG};goog.dom.TagIterator.prototype.isNonElement=function(){return this.tagType==goog.dom.TagWalkType.OTHER};\ngoog.dom.TagIterator.prototype.equals=function(a){return a.node==this.node&&(!this.node||a.tagType==this.tagType)};goog.dom.TagIterator.prototype.splice=function(a){var b=this.node;this.restartTag();this.reversed=!this.reversed;goog.dom.TagIterator.prototype.next.call(this);this.reversed=!this.reversed;for(var c=goog.isArrayLike(arguments[0])?arguments[0]:arguments,d=c.length-1;0<=d;d--)goog.dom.insertSiblingAfter(c[d],b);goog.dom.removeNode(b)};goog.dom.NodeIterator=function(a,b,c,d){goog.dom.TagIterator.call(this,a,b,c,null,d)};goog.inherits(goog.dom.NodeIterator,goog.dom.TagIterator);goog.dom.NodeIterator.prototype.next=function(){do goog.dom.NodeIterator.superClass_.next.call(this);while(this.isEndTag());return this.node};goog.ui.PaletteRenderer=function(){goog.ui.ControlRenderer.call(this)};goog.inherits(goog.ui.PaletteRenderer,goog.ui.ControlRenderer);goog.addSingletonGetter(goog.ui.PaletteRenderer);goog.ui.PaletteRenderer.cellId_=0;goog.ui.PaletteRenderer.CSS_CLASS="goog-palette";\ngoog.ui.PaletteRenderer.prototype.createDom=function(a){var b=this.getClassNames(a);a=a.getDomHelper().createDom("DIV",b?b.join(" "):null,this.createGrid(a.getContent(),a.getSize(),a.getDomHelper()));goog.a11y.aria.setRole(a,goog.a11y.aria.Role.GRID);return a};goog.ui.PaletteRenderer.prototype.createGrid=function(a,b,c){for(var d=[],e=0,f=0;e<b.height;e++){for(var g=[],h=0;h<b.width;h++){var k=a&&a[f++];g.push(this.createCell(k,c))}d.push(this.createRow(g,c))}return this.createTable(d,c)};\ngoog.ui.PaletteRenderer.prototype.createTable=function(a,b){var c=b.createDom("TABLE",this.getCssClass()+"-table",b.createDom("TBODY",this.getCssClass()+"-body",a));c.cellSpacing="0";c.cellPadding="0";return c};goog.ui.PaletteRenderer.prototype.createRow=function(a,b){var c=b.createDom("TR",this.getCssClass()+"-row",a);goog.a11y.aria.setRole(c,goog.a11y.aria.Role.ROW);return c};\ngoog.ui.PaletteRenderer.prototype.createCell=function(a,b){var c=b.createDom("TD",{"class":this.getCssClass()+"-cell",id:this.getCssClass()+"-cell-"+goog.ui.PaletteRenderer.cellId_++},a);goog.a11y.aria.setRole(c,goog.a11y.aria.Role.GRIDCELL);goog.a11y.aria.setState(c,goog.a11y.aria.State.SELECTED,!1);if(!goog.dom.getTextContent(c)&&!goog.a11y.aria.getLabel(c)){var d=this.findAriaLabelForCell_(c);d&&goog.a11y.aria.setLabel(c,d)}return c};\ngoog.ui.PaletteRenderer.prototype.findAriaLabelForCell_=function(a){a=new goog.dom.NodeIterator(a);for(var b="",c;!b&&(c=goog.iter.nextOrValue(a,null));)c.nodeType==goog.dom.NodeType.ELEMENT&&(b=goog.a11y.aria.getLabel(c)||c.title);return b};goog.ui.PaletteRenderer.prototype.canDecorate=function(a){return!1};goog.ui.PaletteRenderer.prototype.decorate=function(a,b){return null};\ngoog.ui.PaletteRenderer.prototype.setContent=function(a,b){if(a){var c=goog.dom.getElementsByTagNameAndClass("TBODY",this.getCssClass()+"-body",a)[0];if(c){var d=0;goog.array.forEach(c.rows,function(a){goog.array.forEach(a.cells,function(a){goog.dom.removeChildren(a);if(b){var c=b[d++];c&&goog.dom.appendChild(a,c)}})});if(d<b.length){for(var e=[],f=goog.dom.getDomHelper(a),g=c.rows[0].cells.length;d<b.length;){var h=b[d++];e.push(this.createCell(h,f));e.length==g&&(h=this.createRow(e,f),goog.dom.appendChild(c,\nh),e.length=0)}if(0<e.length){for(;e.length<g;)e.push(this.createCell("",f));h=this.createRow(e,f);goog.dom.appendChild(c,h)}}}goog.style.setUnselectable(a,!0,goog.userAgent.GECKO)}};goog.ui.PaletteRenderer.prototype.getContainingItem=function(a,b){for(var c=a.getElement();b&&b.nodeType==goog.dom.NodeType.ELEMENT&&b!=c;){if("TD"==b.tagName&&goog.dom.classlist.contains(b,this.getCssClass()+"-cell"))return b.firstChild;b=b.parentNode}return null};\ngoog.ui.PaletteRenderer.prototype.highlightCell=function(a,b,c){b&&(b=this.getCellForItem(b),goog.asserts.assert(b),goog.dom.classlist.enable(b,this.getCssClass()+"-cell-hover",c),c?goog.a11y.aria.setState(a.getElementStrict(),goog.a11y.aria.State.ACTIVEDESCENDANT,b.id):b.id==goog.a11y.aria.getState(a.getElementStrict(),goog.a11y.aria.State.ACTIVEDESCENDANT)&&goog.a11y.aria.removeState(a.getElementStrict(),goog.a11y.aria.State.ACTIVEDESCENDANT))};\ngoog.ui.PaletteRenderer.prototype.getCellForItem=function(a){return a?a.parentNode:null};goog.ui.PaletteRenderer.prototype.selectCell=function(a,b,c){b&&(a=b.parentNode,goog.dom.classlist.enable(a,this.getCssClass()+"-cell-selected",c),goog.a11y.aria.setState(a,goog.a11y.aria.State.SELECTED,c))};goog.ui.PaletteRenderer.prototype.getCssClass=function(){return goog.ui.PaletteRenderer.CSS_CLASS};goog.ui.SelectionModel=function(a){goog.events.EventTarget.call(this);this.items_=[];this.addItems(a)};goog.inherits(goog.ui.SelectionModel,goog.events.EventTarget);goog.tagUnsealableClass(goog.ui.SelectionModel);goog.ui.SelectionModel.prototype.selectedItem_=null;goog.ui.SelectionModel.prototype.selectionHandler_=null;goog.ui.SelectionModel.prototype.getSelectionHandler=function(){return this.selectionHandler_};\ngoog.ui.SelectionModel.prototype.setSelectionHandler=function(a){this.selectionHandler_=a};goog.ui.SelectionModel.prototype.getItemCount=function(){return this.items_.length};goog.ui.SelectionModel.prototype.indexOfItem=function(a){return a?goog.array.indexOf(this.items_,a):-1};goog.ui.SelectionModel.prototype.getFirst=function(){return this.items_[0]};goog.ui.SelectionModel.prototype.getLast=function(){return this.items_[this.items_.length-1]};\ngoog.ui.SelectionModel.prototype.getItemAt=function(a){return this.items_[a]||null};goog.ui.SelectionModel.prototype.addItems=function(a){a&&(goog.array.forEach(a,function(a){this.selectItem_(a,!1)},this),goog.array.extend(this.items_,a))};goog.ui.SelectionModel.prototype.addItem=function(a){this.addItemAt(a,this.getItemCount())};goog.ui.SelectionModel.prototype.addItemAt=function(a,b){a&&(this.selectItem_(a,!1),goog.array.insertAt(this.items_,a,b))};\ngoog.ui.SelectionModel.prototype.removeItem=function(a){a&&goog.array.remove(this.items_,a)&&a==this.selectedItem_&&(this.selectedItem_=null,this.dispatchEvent(goog.events.EventType.SELECT))};goog.ui.SelectionModel.prototype.removeItemAt=function(a){this.removeItem(this.getItemAt(a))};goog.ui.SelectionModel.prototype.getSelectedItem=function(){return this.selectedItem_};goog.ui.SelectionModel.prototype.getItems=function(){return goog.array.clone(this.items_)};\ngoog.ui.SelectionModel.prototype.setSelectedItem=function(a){a!=this.selectedItem_&&(this.selectItem_(this.selectedItem_,!1),this.selectedItem_=a,this.selectItem_(a,!0));this.dispatchEvent(goog.events.EventType.SELECT)};goog.ui.SelectionModel.prototype.getSelectedIndex=function(){return this.indexOfItem(this.selectedItem_)};goog.ui.SelectionModel.prototype.setSelectedIndex=function(a){this.setSelectedItem(this.getItemAt(a))};\ngoog.ui.SelectionModel.prototype.clear=function(){goog.array.clear(this.items_);this.selectedItem_=null};goog.ui.SelectionModel.prototype.disposeInternal=function(){goog.ui.SelectionModel.superClass_.disposeInternal.call(this);delete this.items_;this.selectedItem_=null};goog.ui.SelectionModel.prototype.selectItem_=function(a,b){a&&("function"==typeof this.selectionHandler_?this.selectionHandler_(a,b):"function"==typeof a.setSelected&&a.setSelected(b))};goog.ui.Palette=function(a,b,c){goog.ui.Control.call(this,a,b||goog.ui.PaletteRenderer.getInstance(),c);this.setAutoStates(goog.ui.Component.State.CHECKED|goog.ui.Component.State.SELECTED|goog.ui.Component.State.OPENED,!1);this.currentCellControl_=new goog.ui.Palette.CurrentCell_;this.currentCellControl_.setParentEventTarget(this);this.lastHighlightedIndex_=-1};goog.inherits(goog.ui.Palette,goog.ui.Control);goog.tagUnsealableClass(goog.ui.Palette);goog.ui.Palette.EventType={AFTER_HIGHLIGHT:goog.events.getUniqueId("afterhighlight")};\ngoog.ui.Palette.prototype.size_=null;goog.ui.Palette.prototype.highlightedIndex_=-1;goog.ui.Palette.prototype.selectionModel_=null;goog.ui.Palette.prototype.disposeInternal=function(){goog.ui.Palette.superClass_.disposeInternal.call(this);this.selectionModel_&&(this.selectionModel_.dispose(),this.selectionModel_=null);this.size_=null;this.currentCellControl_.dispose()};\ngoog.ui.Palette.prototype.setContentInternal=function(a){goog.ui.Palette.superClass_.setContentInternal.call(this,a);this.adjustSize_();this.selectionModel_?(this.selectionModel_.clear(),this.selectionModel_.addItems(a)):(this.selectionModel_=new goog.ui.SelectionModel(a),this.selectionModel_.setSelectionHandler(goog.bind(this.selectItem_,this)),this.getHandler().listen(this.selectionModel_,goog.events.EventType.SELECT,this.handleSelectionChange));this.highlightedIndex_=-1};\ngoog.ui.Palette.prototype.getCaption=function(){return""};goog.ui.Palette.prototype.setCaption=function(a){};goog.ui.Palette.prototype.handleMouseOver=function(a){goog.ui.Palette.superClass_.handleMouseOver.call(this,a);var b=this.getRenderer().getContainingItem(this,a.target);b&&a.relatedTarget&&goog.dom.contains(b,a.relatedTarget)||b!=this.getHighlightedItem()&&this.setHighlightedItem(b)};\ngoog.ui.Palette.prototype.handleMouseDown=function(a){goog.ui.Palette.superClass_.handleMouseDown.call(this,a);this.isActive()&&(a=this.getRenderer().getContainingItem(this,a.target),a!=this.getHighlightedItem()&&this.setHighlightedItem(a))};goog.ui.Palette.prototype.performActionInternal=function(a){var b=this.getHighlightedItem();return b?(a&&this.shouldSelectHighlightedItem_(a)&&this.setSelectedItem(b),goog.ui.Palette.superClass_.performActionInternal.call(this,a)):!1};\ngoog.ui.Palette.prototype.shouldSelectHighlightedItem_=function(a){return this.getSelectedItem()?"mouseup"!=a.type?!0:!!this.getRenderer().getContainingItem(this,a.target):!0};\ngoog.ui.Palette.prototype.handleKeyEvent=function(a){var b=this.getContent(),b=b?b.length:0,c=this.size_.width;if(0==b||!this.isEnabled())return!1;if(a.keyCode==goog.events.KeyCodes.ENTER||a.keyCode==goog.events.KeyCodes.SPACE)return this.performActionInternal(a);if(a.keyCode==goog.events.KeyCodes.HOME)return this.setHighlightedIndex(0),!0;if(a.keyCode==goog.events.KeyCodes.END)return this.setHighlightedIndex(b-1),!0;var d=0>this.highlightedIndex_?this.getSelectedIndex():this.highlightedIndex_;switch(a.keyCode){case goog.events.KeyCodes.LEFT:if(-1==\nd||0==d)d=b;this.setHighlightedIndex(d-1);a.preventDefault();return!0;case goog.events.KeyCodes.RIGHT:return d==b-1&&(d=-1),this.setHighlightedIndex(d+1),a.preventDefault(),!0;case goog.events.KeyCodes.UP:-1==d&&(d=b+c-1);if(d>=c)return this.setHighlightedIndex(d-c),a.preventDefault(),!0;break;case goog.events.KeyCodes.DOWN:if(-1==d&&(d=-c),d<b-c)return this.setHighlightedIndex(d+c),a.preventDefault(),!0}return!1};goog.ui.Palette.prototype.handleSelectionChange=function(a){};\ngoog.ui.Palette.prototype.getSize=function(){return this.size_};goog.ui.Palette.prototype.setSize=function(a,b){if(this.getElement())throw Error(goog.ui.Component.Error.ALREADY_RENDERED);this.size_=goog.isNumber(a)?new goog.math.Size(a,b):a;this.adjustSize_()};goog.ui.Palette.prototype.getHighlightedIndex=function(){return this.highlightedIndex_};goog.ui.Palette.prototype.getHighlightedItem=function(){var a=this.getContent();return a&&a[this.highlightedIndex_]};\ngoog.ui.Palette.prototype.getHighlightedCellElement_=function(){return this.getRenderer().getCellForItem(this.getHighlightedItem())};goog.ui.Palette.prototype.setHighlightedIndex=function(a){a!=this.highlightedIndex_&&(this.highlightIndex_(this.highlightedIndex_,!1),this.lastHighlightedIndex_=this.highlightedIndex_,this.highlightedIndex_=a,this.highlightIndex_(a,!0),this.dispatchEvent(goog.ui.Palette.EventType.AFTER_HIGHLIGHT))};\ngoog.ui.Palette.prototype.setHighlightedItem=function(a){var b=this.getContent();this.setHighlightedIndex(b&&a?goog.array.indexOf(b,a):-1)};goog.ui.Palette.prototype.getSelectedIndex=function(){return this.selectionModel_?this.selectionModel_.getSelectedIndex():-1};goog.ui.Palette.prototype.getSelectedItem=function(){return this.selectionModel_?this.selectionModel_.getSelectedItem():null};goog.ui.Palette.prototype.setSelectedIndex=function(a){this.selectionModel_&&this.selectionModel_.setSelectedIndex(a)};\ngoog.ui.Palette.prototype.setSelectedItem=function(a){this.selectionModel_&&this.selectionModel_.setSelectedItem(a)};goog.ui.Palette.prototype.highlightIndex_=function(a,b){if(this.getElement()){var c=this.getContent();if(c&&0<=a&&a<c.length){var d=this.getHighlightedCellElement_();this.currentCellControl_.getElement()!=d&&this.currentCellControl_.setElementInternal(d);this.currentCellControl_.tryHighlight(b)&&this.getRenderer().highlightCell(this,c[a],b)}}};\ngoog.ui.Palette.prototype.setHighlighted=function(a){a&&-1==this.highlightedIndex_?this.setHighlightedIndex(-1<this.lastHighlightedIndex_?this.lastHighlightedIndex_:0):a||this.setHighlightedIndex(-1);goog.ui.Palette.superClass_.setHighlighted.call(this,a)};goog.ui.Palette.prototype.selectItem_=function(a,b){this.getElement()&&this.getRenderer().selectCell(this,a,b)};\ngoog.ui.Palette.prototype.adjustSize_=function(){var a=this.getContent();if(a)if(this.size_&&this.size_.width){if(a=Math.ceil(a.length/this.size_.width),!goog.isNumber(this.size_.height)||this.size_.height<a)this.size_.height=a}else a=Math.ceil(Math.sqrt(a.length)),this.size_=new goog.math.Size(a,a);else this.size_=new goog.math.Size(0,0)};goog.ui.Palette.CurrentCell_=function(){goog.ui.Control.call(this,null);this.setDispatchTransitionEvents(goog.ui.Component.State.HOVER,!0)};\ngoog.inherits(goog.ui.Palette.CurrentCell_,goog.ui.Control);goog.ui.Palette.CurrentCell_.prototype.tryHighlight=function(a){this.setHighlighted(a);return this.isHighlighted()==a};goog.ui.ColorPalette=function(a,b,c){this.colors_=a||[];goog.ui.Palette.call(this,null,b||goog.ui.PaletteRenderer.getInstance(),c);this.setColors(this.colors_)};goog.inherits(goog.ui.ColorPalette,goog.ui.Palette);goog.tagUnsealableClass(goog.ui.ColorPalette);goog.ui.ColorPalette.prototype.normalizedColors_=null;goog.ui.ColorPalette.prototype.labels_=null;goog.ui.ColorPalette.prototype.getColors=function(){return this.colors_};\ngoog.ui.ColorPalette.prototype.setColors=function(a,b){this.colors_=a;this.labels_=b||null;this.normalizedColors_=null;this.setContent(this.createColorNodes())};goog.ui.ColorPalette.prototype.getSelectedColor=function(){var a=this.getSelectedItem();return a?(a=goog.style.getStyle(a,"background-color"),goog.ui.ColorPalette.parseColor_(a)):null};\ngoog.ui.ColorPalette.prototype.setSelectedColor=function(a){a=goog.ui.ColorPalette.parseColor_(a);this.normalizedColors_||(this.normalizedColors_=goog.array.map(this.colors_,function(a){return goog.ui.ColorPalette.parseColor_(a)}));this.setSelectedIndex(a?goog.array.indexOf(this.normalizedColors_,a):-1)};\ngoog.ui.ColorPalette.prototype.createColorNodes=function(){return goog.array.map(this.colors_,function(a,b){var c=this.getDomHelper().createDom("DIV",{"class":this.getRenderer().getCssClass()+"-colorswatch",style:"background-color:"+a});c.title=this.labels_&&this.labels_[b]?this.labels_[b]:"#"==a.charAt(0)?"RGB ("+goog.color.hexToRgb(a).join(", ")+")":a;return c},this)};goog.ui.ColorPalette.parseColor_=function(a){if(a)try{return goog.color.parse(a).hex}catch(b){}return null};goog.ui.ColorPicker=function(a,b){goog.ui.Component.call(this,a);this.colorPalette_=b||null;this.getHandler().listen(this,goog.ui.Component.EventType.ACTION,this.onColorPaletteAction_)};goog.inherits(goog.ui.ColorPicker,goog.ui.Component);goog.ui.ColorPicker.DEFAULT_NUM_COLS=5;goog.ui.ColorPicker.EventType={CHANGE:"change"};goog.ui.ColorPicker.prototype.focusable_=!0;goog.ui.ColorPicker.prototype.getColors=function(){return this.colorPalette_?this.colorPalette_.getColors():null};\ngoog.ui.ColorPicker.prototype.setColors=function(a){this.colorPalette_?this.colorPalette_.setColors(a):this.createColorPalette_(a)};goog.ui.ColorPicker.prototype.addColors=function(a){this.setColors(a)};goog.ui.ColorPicker.prototype.setSize=function(a){this.colorPalette_||this.createColorPalette_([]);this.colorPalette_.setSize(a)};goog.ui.ColorPicker.prototype.getSize=function(){return this.colorPalette_?this.colorPalette_.getSize():null};goog.ui.ColorPicker.prototype.setColumnCount=function(a){this.setSize(a)};\ngoog.ui.ColorPicker.prototype.getSelectedIndex=function(){return this.colorPalette_?this.colorPalette_.getSelectedIndex():-1};goog.ui.ColorPicker.prototype.setSelectedIndex=function(a){this.colorPalette_&&this.colorPalette_.setSelectedIndex(a)};goog.ui.ColorPicker.prototype.getSelectedColor=function(){return this.colorPalette_?this.colorPalette_.getSelectedColor():null};goog.ui.ColorPicker.prototype.setSelectedColor=function(a){this.colorPalette_&&this.colorPalette_.setSelectedColor(a)};\ngoog.ui.ColorPicker.prototype.isFocusable=function(){return this.focusable_};goog.ui.ColorPicker.prototype.setFocusable=function(a){this.focusable_=a;this.colorPalette_&&this.colorPalette_.setSupportedState(goog.ui.Component.State.FOCUSED,a)};goog.ui.ColorPicker.prototype.canDecorate=function(a){return!1};\ngoog.ui.ColorPicker.prototype.enterDocument=function(){goog.ui.ColorPicker.superClass_.enterDocument.call(this);this.colorPalette_&&this.colorPalette_.render(this.getElement());this.getElement().unselectable="on"};goog.ui.ColorPicker.prototype.disposeInternal=function(){goog.ui.ColorPicker.superClass_.disposeInternal.call(this);this.colorPalette_&&(this.colorPalette_.dispose(),this.colorPalette_=null)};goog.ui.ColorPicker.prototype.focus=function(){this.colorPalette_&&this.colorPalette_.getElement().focus()};\ngoog.ui.ColorPicker.prototype.onColorPaletteAction_=function(a){a.stopPropagation();this.dispatchEvent(goog.ui.ColorPicker.EventType.CHANGE)};goog.ui.ColorPicker.prototype.createColorPalette_=function(a){a=new goog.ui.ColorPalette(a,null,this.getDomHelper());a.setSize(goog.ui.ColorPicker.DEFAULT_NUM_COLS);a.setSupportedState(goog.ui.Component.State.FOCUSED,this.focusable_);this.addChild(a);this.colorPalette_=a;this.isInDocument()&&this.colorPalette_.render(this.getElement())};\ngoog.ui.ColorPicker.createSimpleColorGrid=function(a){a=new goog.ui.ColorPicker(a);a.setSize(7);a.setColors(goog.ui.ColorPicker.SIMPLE_GRID_COLORS);return a};goog.ui.ColorPicker.SIMPLE_GRID_COLORS="#ffffff #cccccc #c0c0c0 #999999 #666666 #333333 #000000 #ffcccc #ff6666 #ff0000 #cc0000 #990000 #660000 #330000 #ffcc99 #ff9966 #ff9900 #ff6600 #cc6600 #993300 #663300 #ffff99 #ffff66 #ffcc66 #ffcc33 #cc9933 #996633 #663333 #ffffcc #ffff33 #ffff00 #ffcc00 #999900 #666600 #333300 #99ff99 #66ff99 #33ff33 #33cc00 #009900 #006600 #003300 #99ffff #33ffff #66cccc #00cccc #339999 #336666 #003333 #ccffff #66ffff #33ccff #3366ff #3333ff #000099 #000066 #ccccff #9999ff #6666cc #6633ff #6600cc #333399 #330099 #ffccff #ff99ff #cc66cc #cc33cc #993399 #663366 #330033".split(" ");goog.events.FocusHandler=function(a){goog.events.EventTarget.call(this);this.element_=a;a=goog.userAgent.IE?"focusout":"blur";this.listenKeyIn_=goog.events.listen(this.element_,goog.userAgent.IE?"focusin":"focus",this,!goog.userAgent.IE);this.listenKeyOut_=goog.events.listen(this.element_,a,this,!goog.userAgent.IE)};goog.inherits(goog.events.FocusHandler,goog.events.EventTarget);goog.events.FocusHandler.EventType={FOCUSIN:"focusin",FOCUSOUT:"focusout"};\ngoog.events.FocusHandler.prototype.handleEvent=function(a){var b=a.getBrowserEvent(),b=new goog.events.BrowserEvent(b);b.type="focusin"==a.type||"focus"==a.type?goog.events.FocusHandler.EventType.FOCUSIN:goog.events.FocusHandler.EventType.FOCUSOUT;this.dispatchEvent(b)};goog.events.FocusHandler.prototype.disposeInternal=function(){goog.events.FocusHandler.superClass_.disposeInternal.call(this);goog.events.unlistenByKey(this.listenKeyIn_);goog.events.unlistenByKey(this.listenKeyOut_);delete this.element_};goog.structs={};goog.structs.getCount=function(a){return a.getCount&&"function"==typeof a.getCount?a.getCount():goog.isArrayLike(a)||goog.isString(a)?a.length:goog.object.getCount(a)};goog.structs.getValues=function(a){if(a.getValues&&"function"==typeof a.getValues)return a.getValues();if(goog.isString(a))return a.split("");if(goog.isArrayLike(a)){for(var b=[],c=a.length,d=0;d<c;d++)b.push(a[d]);return b}return goog.object.getValues(a)};\ngoog.structs.getKeys=function(a){if(a.getKeys&&"function"==typeof a.getKeys)return a.getKeys();if(!a.getValues||"function"!=typeof a.getValues){if(goog.isArrayLike(a)||goog.isString(a)){var b=[];a=a.length;for(var c=0;c<a;c++)b.push(c);return b}return goog.object.getKeys(a)}};\ngoog.structs.contains=function(a,b){return a.contains&&"function"==typeof a.contains?a.contains(b):a.containsValue&&"function"==typeof a.containsValue?a.containsValue(b):goog.isArrayLike(a)||goog.isString(a)?goog.array.contains(a,b):goog.object.containsValue(a,b)};goog.structs.isEmpty=function(a){return a.isEmpty&&"function"==typeof a.isEmpty?a.isEmpty():goog.isArrayLike(a)||goog.isString(a)?goog.array.isEmpty(a):goog.object.isEmpty(a)};\ngoog.structs.clear=function(a){a.clear&&"function"==typeof a.clear?a.clear():goog.isArrayLike(a)?goog.array.clear(a):goog.object.clear(a)};goog.structs.forEach=function(a,b,c){if(a.forEach&&"function"==typeof a.forEach)a.forEach(b,c);else if(goog.isArrayLike(a)||goog.isString(a))goog.array.forEach(a,b,c);else for(var d=goog.structs.getKeys(a),e=goog.structs.getValues(a),f=e.length,g=0;g<f;g++)b.call(c,e[g],d&&d[g],a)};\ngoog.structs.filter=function(a,b,c){if("function"==typeof a.filter)return a.filter(b,c);if(goog.isArrayLike(a)||goog.isString(a))return goog.array.filter(a,b,c);var d,e=goog.structs.getKeys(a),f=goog.structs.getValues(a),g=f.length;if(e){d={};for(var h=0;h<g;h++)b.call(c,f[h],e[h],a)&&(d[e[h]]=f[h])}else for(d=[],h=0;h<g;h++)b.call(c,f[h],void 0,a)&&d.push(f[h]);return d};\ngoog.structs.map=function(a,b,c){if("function"==typeof a.map)return a.map(b,c);if(goog.isArrayLike(a)||goog.isString(a))return goog.array.map(a,b,c);var d,e=goog.structs.getKeys(a),f=goog.structs.getValues(a),g=f.length;if(e){d={};for(var h=0;h<g;h++)d[e[h]]=b.call(c,f[h],e[h],a)}else for(d=[],h=0;h<g;h++)d[h]=b.call(c,f[h],void 0,a);return d};\ngoog.structs.some=function(a,b,c){if("function"==typeof a.some)return a.some(b,c);if(goog.isArrayLike(a)||goog.isString(a))return goog.array.some(a,b,c);for(var d=goog.structs.getKeys(a),e=goog.structs.getValues(a),f=e.length,g=0;g<f;g++)if(b.call(c,e[g],d&&d[g],a))return!0;return!1};\ngoog.structs.every=function(a,b,c){if("function"==typeof a.every)return a.every(b,c);if(goog.isArrayLike(a)||goog.isString(a))return goog.array.every(a,b,c);for(var d=goog.structs.getKeys(a),e=goog.structs.getValues(a),f=e.length,g=0;g<f;g++)if(!b.call(c,e[g],d&&d[g],a))return!1;return!0};goog.structs.Collection=function(){};goog.structs.Map=function(a,b){this.map_={};this.keys_=[];this.version_=this.count_=0;var c=arguments.length;if(1<c){if(c%2)throw Error("Uneven number of arguments");for(var d=0;d<c;d+=2)this.set(arguments[d],arguments[d+1])}else a&&this.addAll(a)};goog.structs.Map.prototype.getCount=function(){return this.count_};goog.structs.Map.prototype.getValues=function(){this.cleanupKeysArray_();for(var a=[],b=0;b<this.keys_.length;b++)a.push(this.map_[this.keys_[b]]);return a};\ngoog.structs.Map.prototype.getKeys=function(){this.cleanupKeysArray_();return this.keys_.concat()};goog.structs.Map.prototype.containsKey=function(a){return goog.structs.Map.hasKey_(this.map_,a)};goog.structs.Map.prototype.containsValue=function(a){for(var b=0;b<this.keys_.length;b++){var c=this.keys_[b];if(goog.structs.Map.hasKey_(this.map_,c)&&this.map_[c]==a)return!0}return!1};\ngoog.structs.Map.prototype.equals=function(a,b){if(this===a)return!0;if(this.count_!=a.getCount())return!1;var c=b||goog.structs.Map.defaultEquals;this.cleanupKeysArray_();for(var d,e=0;d=this.keys_[e];e++)if(!c(this.get(d),a.get(d)))return!1;return!0};goog.structs.Map.defaultEquals=function(a,b){return a===b};goog.structs.Map.prototype.isEmpty=function(){return 0==this.count_};goog.structs.Map.prototype.clear=function(){this.map_={};this.version_=this.count_=this.keys_.length=0};\ngoog.structs.Map.prototype.remove=function(a){return goog.structs.Map.hasKey_(this.map_,a)?(delete this.map_[a],this.count_--,this.version_++,this.keys_.length>2*this.count_&&this.cleanupKeysArray_(),!0):!1};\ngoog.structs.Map.prototype.cleanupKeysArray_=function(){if(this.count_!=this.keys_.length){for(var a=0,b=0;a<this.keys_.length;){var c=this.keys_[a];goog.structs.Map.hasKey_(this.map_,c)&&(this.keys_[b++]=c);a++}this.keys_.length=b}if(this.count_!=this.keys_.length){for(var d={},b=a=0;a<this.keys_.length;)c=this.keys_[a],goog.structs.Map.hasKey_(d,c)||(this.keys_[b++]=c,d[c]=1),a++;this.keys_.length=b}};\ngoog.structs.Map.prototype.get=function(a,b){return goog.structs.Map.hasKey_(this.map_,a)?this.map_[a]:b};goog.structs.Map.prototype.set=function(a,b){goog.structs.Map.hasKey_(this.map_,a)||(this.count_++,this.keys_.push(a),this.version_++);this.map_[a]=b};goog.structs.Map.prototype.addAll=function(a){var b;a instanceof goog.structs.Map?(b=a.getKeys(),a=a.getValues()):(b=goog.object.getKeys(a),a=goog.object.getValues(a));for(var c=0;c<b.length;c++)this.set(b[c],a[c])};\ngoog.structs.Map.prototype.forEach=function(a,b){for(var c=this.getKeys(),d=0;d<c.length;d++){var e=c[d],f=this.get(e);a.call(b,f,e,this)}};goog.structs.Map.prototype.clone=function(){return new goog.structs.Map(this)};goog.structs.Map.prototype.transpose=function(){for(var a=new goog.structs.Map,b=0;b<this.keys_.length;b++){var c=this.keys_[b];a.set(this.map_[c],c)}return a};\ngoog.structs.Map.prototype.toObject=function(){this.cleanupKeysArray_();for(var a={},b=0;b<this.keys_.length;b++){var c=this.keys_[b];a[c]=this.map_[c]}return a};goog.structs.Map.prototype.getKeyIterator=function(){return this.__iterator__(!0)};goog.structs.Map.prototype.getValueIterator=function(){return this.__iterator__(!1)};\ngoog.structs.Map.prototype.__iterator__=function(a){this.cleanupKeysArray_();var b=0,c=this.version_,d=this,e=new goog.iter.Iterator;e.next=function(){if(c!=d.version_)throw Error("The map has changed since the iterator was created");if(b>=d.keys_.length)throw goog.iter.StopIteration;var e=d.keys_[b++];return a?e:d.map_[e]};return e};goog.structs.Map.hasKey_=function(a,b){return Object.prototype.hasOwnProperty.call(a,b)};goog.structs.Set=function(a){this.map_=new goog.structs.Map;a&&this.addAll(a)};goog.structs.Set.getKey_=function(a){var b=typeof a;return"object"==b&&a||"function"==b?"o"+goog.getUid(a):b.substr(0,1)+a};goog.structs.Set.prototype.getCount=function(){return this.map_.getCount()};goog.structs.Set.prototype.add=function(a){this.map_.set(goog.structs.Set.getKey_(a),a)};goog.structs.Set.prototype.addAll=function(a){a=goog.structs.getValues(a);for(var b=a.length,c=0;c<b;c++)this.add(a[c])};\ngoog.structs.Set.prototype.removeAll=function(a){a=goog.structs.getValues(a);for(var b=a.length,c=0;c<b;c++)this.remove(a[c])};goog.structs.Set.prototype.remove=function(a){return this.map_.remove(goog.structs.Set.getKey_(a))};goog.structs.Set.prototype.clear=function(){this.map_.clear()};goog.structs.Set.prototype.isEmpty=function(){return this.map_.isEmpty()};goog.structs.Set.prototype.contains=function(a){return this.map_.containsKey(goog.structs.Set.getKey_(a))};\ngoog.structs.Set.prototype.containsAll=function(a){return goog.structs.every(a,this.contains,this)};goog.structs.Set.prototype.intersection=function(a){var b=new goog.structs.Set;a=goog.structs.getValues(a);for(var c=0;c<a.length;c++){var d=a[c];this.contains(d)&&b.add(d)}return b};goog.structs.Set.prototype.difference=function(a){var b=this.clone();b.removeAll(a);return b};goog.structs.Set.prototype.getValues=function(){return this.map_.getValues()};goog.structs.Set.prototype.clone=function(){return new goog.structs.Set(this)};\ngoog.structs.Set.prototype.equals=function(a){return this.getCount()==goog.structs.getCount(a)&&this.isSubsetOf(a)};goog.structs.Set.prototype.isSubsetOf=function(a){var b=goog.structs.getCount(a);if(this.getCount()>b)return!1;!(a instanceof goog.structs.Set)&&5<b&&(a=new goog.structs.Set(a));return goog.structs.every(this,function(b){return goog.structs.contains(a,b)})};goog.structs.Set.prototype.__iterator__=function(a){return this.map_.__iterator__(!1)};goog.debug.LOGGING_ENABLED=goog.DEBUG;goog.debug.FORCE_SLOPPY_STACKS=!1;goog.debug.catchErrors=function(a,b,c){c=c||goog.global;var d=c.onerror,e=!!b;goog.userAgent.WEBKIT&&!goog.userAgent.isVersionOrHigher("535.3")&&(e=!e);c.onerror=function(b,c,h,k,l){d&&d(b,c,h,k,l);a({message:b,fileName:c,line:h,col:k,error:l});return e}};\ngoog.debug.expose=function(a,b){if("undefined"==typeof a)return"undefined";if(null==a)return"NULL";var c=[],d;for(d in a)if(b||!goog.isFunction(a[d])){var e=d+" = ";try{e+=a[d]}catch(f){e+="*** "+f+" ***"}c.push(e)}return c.join("\\n")};\ngoog.debug.deepExpose=function(a,b){var c=[],d=function(a,f,g){var e=f+" ";g=new goog.structs.Set(g);try{if(goog.isDef(a))if(goog.isNull(a))c.push("NULL");else if(goog.isString(a))c.push(\'"\'+a.replace(/\\n/g,"\\n"+f)+\'"\');else if(goog.isFunction(a))c.push(String(a).replace(/\\n/g,"\\n"+f));else if(goog.isObject(a))if(g.contains(a))c.push("*** reference loop detected ***");else{g.add(a);c.push("{");for(var k in a)if(b||!goog.isFunction(a[k]))c.push("\\n"),c.push(e),c.push(k+" = "),d(a[k],e,g);c.push("\\n"+\nf+"}")}else c.push(a);else c.push("undefined")}catch(l){c.push("*** "+l+" ***")}};d(a,"",new goog.structs.Set);return c.join("")};goog.debug.exposeArray=function(a){for(var b=[],c=0;c<a.length;c++)goog.isArray(a[c])?b.push(goog.debug.exposeArray(a[c])):b.push(a[c]);return"[ "+b.join(", ")+" ]"};goog.debug.exposeException=function(a,b){var c=goog.debug.exposeExceptionAsHtml(a,b);return goog.html.SafeHtml.unwrap(c)};\ngoog.debug.exposeExceptionAsHtml=function(a,b){try{var c=goog.debug.normalizeErrorObject(a),d=goog.debug.createViewSourceUrl_(c.fileName);return goog.html.SafeHtml.concat(goog.html.SafeHtml.htmlEscapePreservingNewlinesAndSpaces("Message: "+c.message+"\\nUrl: "),goog.html.SafeHtml.create("a",{href:d,target:"_new"},c.fileName),goog.html.SafeHtml.htmlEscapePreservingNewlinesAndSpaces("\\nLine: "+c.lineNumber+"\\n\\nBrowser stack:\\n"+c.stack+"-> [end]\\n\\nJS stack traversal:\\n"+goog.debug.getStacktrace(b)+\n"-> "))}catch(e){return goog.html.SafeHtml.htmlEscapePreservingNewlinesAndSpaces("Exception trying to expose exception! You win, we lose. "+e)}};\ngoog.debug.createViewSourceUrl_=function(a){goog.isDefAndNotNull(a)||(a="");if(!/^https?:\\/\\//i.test(a))return goog.html.SafeUrl.fromConstant(goog.string.Const.from("sanitizedviewsrc"));a=goog.html.SafeUrl.sanitize(a);return goog.html.uncheckedconversions.safeUrlFromStringKnownToSatisfyTypeContract(goog.string.Const.from("view-source scheme plus HTTP/HTTPS URL"),"view-source:"+goog.html.SafeUrl.unwrap(a))};\ngoog.debug.normalizeErrorObject=function(a){var b=goog.getObjectByName("window.location.href");if(goog.isString(a))return{message:a,name:"Unknown error",lineNumber:"Not available",fileName:b,stack:"Not available"};var c,d,e=!1;try{c=a.lineNumber||a.line||"Not available"}catch(f){c="Not available",e=!0}try{d=a.fileName||a.filename||a.sourceURL||goog.global.$googDebugFname||b}catch(f){d="Not available",e=!0}return!e&&a.lineNumber&&a.fileName&&a.stack&&a.message&&a.name?a:{message:a.message||"Not available",\nname:a.name||"UnknownError",lineNumber:c,fileName:d,stack:a.stack||"Not available"}};goog.debug.enhanceError=function(a,b){var c;a instanceof Error?c=a:(c=Error(a),Error.captureStackTrace&&Error.captureStackTrace(c,goog.debug.enhanceError));c.stack||(c.stack=goog.debug.getStacktrace(goog.debug.enhanceError));if(b){for(var d=0;c["message"+d];)++d;c["message"+d]=String(b)}return c};\ngoog.debug.getStacktraceSimple=function(a){if(!goog.debug.FORCE_SLOPPY_STACKS){var b=goog.debug.getNativeStackTrace_(goog.debug.getStacktraceSimple);if(b)return b}for(var b=[],c=arguments.callee.caller,d=0;c&&(!a||d<a);){b.push(goog.debug.getFunctionName(c));b.push("()\\n");try{c=c.caller}catch(e){b.push("[exception trying to get caller]\\n");break}d++;if(d>=goog.debug.MAX_STACK_DEPTH){b.push("[...long stack...]");break}}a&&d>=a?b.push("[...reached max depth limit...]"):b.push("[end]");return b.join("")};\ngoog.debug.MAX_STACK_DEPTH=50;goog.debug.getNativeStackTrace_=function(a){var b=Error();if(Error.captureStackTrace)return Error.captureStackTrace(b,a),String(b.stack);try{throw b;}catch(c){b=c}return(a=b.stack)?String(a):null};goog.debug.getStacktrace=function(a){var b;goog.debug.FORCE_SLOPPY_STACKS||(b=goog.debug.getNativeStackTrace_(a||goog.debug.getStacktrace));b||(b=goog.debug.getStacktraceHelper_(a||arguments.callee.caller,[]));return b};\ngoog.debug.getStacktraceHelper_=function(a,b){var c=[];if(goog.array.contains(b,a))c.push("[...circular reference...]");else if(a&&b.length<goog.debug.MAX_STACK_DEPTH){c.push(goog.debug.getFunctionName(a)+"(");for(var d=a.arguments,e=0;d&&e<d.length;e++){0<e&&c.push(", ");var f;f=d[e];switch(typeof f){case "object":f=f?"object":"null";break;case "string":break;case "number":f=String(f);break;case "boolean":f=f?"true":"false";break;case "function":f=(f=goog.debug.getFunctionName(f))?f:"[fn]";break;\ndefault:f=typeof f}40<f.length&&(f=f.substr(0,40)+"...");c.push(f)}b.push(a);c.push(")\\n");try{c.push(goog.debug.getStacktraceHelper_(a.caller,b))}catch(g){c.push("[exception trying to get caller]\\n")}}else a?c.push("[...long stack...]"):c.push("[end]");return c.join("")};goog.debug.setFunctionResolver=function(a){goog.debug.fnNameResolver_=a};\ngoog.debug.getFunctionName=function(a){if(goog.debug.fnNameCache_[a])return goog.debug.fnNameCache_[a];if(goog.debug.fnNameResolver_){var b=goog.debug.fnNameResolver_(a);if(b)return goog.debug.fnNameCache_[a]=b}a=String(a);goog.debug.fnNameCache_[a]||(b=/function ([^\\(]+)/.exec(a),goog.debug.fnNameCache_[a]=b?b[1]:"[Anonymous]");return goog.debug.fnNameCache_[a]};\ngoog.debug.makeWhitespaceVisible=function(a){return a.replace(/ /g,"[_]").replace(/\\f/g,"[f]").replace(/\\n/g,"[n]\\n").replace(/\\r/g,"[r]").replace(/\\t/g,"[t]")};goog.debug.runtimeType=function(a){return a instanceof Function?a.displayName||a.name||"unknown type name":a instanceof Object?a.constructor.displayName||a.constructor.name||Object.prototype.toString.call(a):null===a?"null":typeof a};goog.debug.fnNameCache_={};goog.debug.LogRecord=function(a,b,c,d,e){this.reset(a,b,c,d,e)};goog.debug.LogRecord.prototype.sequenceNumber_=0;goog.debug.LogRecord.prototype.exception_=null;goog.debug.LogRecord.ENABLE_SEQUENCE_NUMBERS=!0;goog.debug.LogRecord.nextSequenceNumber_=0;\ngoog.debug.LogRecord.prototype.reset=function(a,b,c,d,e){goog.debug.LogRecord.ENABLE_SEQUENCE_NUMBERS&&(this.sequenceNumber_="number"==typeof e?e:goog.debug.LogRecord.nextSequenceNumber_++);this.time_=d||goog.now();this.level_=a;this.msg_=b;this.loggerName_=c;delete this.exception_};goog.debug.LogRecord.prototype.getLoggerName=function(){return this.loggerName_};goog.debug.LogRecord.prototype.getException=function(){return this.exception_};\ngoog.debug.LogRecord.prototype.setException=function(a){this.exception_=a};goog.debug.LogRecord.prototype.setLoggerName=function(a){this.loggerName_=a};goog.debug.LogRecord.prototype.getLevel=function(){return this.level_};goog.debug.LogRecord.prototype.setLevel=function(a){this.level_=a};goog.debug.LogRecord.prototype.getMessage=function(){return this.msg_};goog.debug.LogRecord.prototype.setMessage=function(a){this.msg_=a};goog.debug.LogRecord.prototype.getMillis=function(){return this.time_};\ngoog.debug.LogRecord.prototype.setMillis=function(a){this.time_=a};goog.debug.LogRecord.prototype.getSequenceNumber=function(){return this.sequenceNumber_};goog.debug.LogBuffer=function(){goog.asserts.assert(goog.debug.LogBuffer.isBufferingEnabled(),"Cannot use goog.debug.LogBuffer without defining goog.debug.LogBuffer.CAPACITY.");this.clear()};goog.debug.LogBuffer.getInstance=function(){goog.debug.LogBuffer.instance_||(goog.debug.LogBuffer.instance_=new goog.debug.LogBuffer);return goog.debug.LogBuffer.instance_};goog.debug.LogBuffer.CAPACITY=0;\ngoog.debug.LogBuffer.prototype.addRecord=function(a,b,c){var d=(this.curIndex_+1)%goog.debug.LogBuffer.CAPACITY;this.curIndex_=d;if(this.isFull_)return d=this.buffer_[d],d.reset(a,b,c),d;this.isFull_=d==goog.debug.LogBuffer.CAPACITY-1;return this.buffer_[d]=new goog.debug.LogRecord(a,b,c)};goog.debug.LogBuffer.isBufferingEnabled=function(){return 0<goog.debug.LogBuffer.CAPACITY};\ngoog.debug.LogBuffer.prototype.clear=function(){this.buffer_=Array(goog.debug.LogBuffer.CAPACITY);this.curIndex_=-1;this.isFull_=!1};goog.debug.LogBuffer.prototype.forEachRecord=function(a){var b=this.buffer_;if(b[0]){var c=this.curIndex_,d=this.isFull_?c:-1;do d=(d+1)%goog.debug.LogBuffer.CAPACITY,a(b[d]);while(d!=c)}};goog.debug.Logger=function(a){this.name_=a;this.handlers_=this.children_=this.level_=this.parent_=null};goog.debug.Logger.ROOT_LOGGER_NAME="";goog.debug.Logger.ENABLE_HIERARCHY=!0;goog.debug.Logger.ENABLE_HIERARCHY||(goog.debug.Logger.rootHandlers_=[]);goog.debug.Logger.Level=function(a,b){this.name=a;this.value=b};goog.debug.Logger.Level.prototype.toString=function(){return this.name};goog.debug.Logger.Level.OFF=new goog.debug.Logger.Level("OFF",Infinity);\ngoog.debug.Logger.Level.SHOUT=new goog.debug.Logger.Level("SHOUT",1200);goog.debug.Logger.Level.SEVERE=new goog.debug.Logger.Level("SEVERE",1E3);goog.debug.Logger.Level.WARNING=new goog.debug.Logger.Level("WARNING",900);goog.debug.Logger.Level.INFO=new goog.debug.Logger.Level("INFO",800);goog.debug.Logger.Level.CONFIG=new goog.debug.Logger.Level("CONFIG",700);goog.debug.Logger.Level.FINE=new goog.debug.Logger.Level("FINE",500);goog.debug.Logger.Level.FINER=new goog.debug.Logger.Level("FINER",400);\ngoog.debug.Logger.Level.FINEST=new goog.debug.Logger.Level("FINEST",300);goog.debug.Logger.Level.ALL=new goog.debug.Logger.Level("ALL",0);goog.debug.Logger.Level.PREDEFINED_LEVELS=[goog.debug.Logger.Level.OFF,goog.debug.Logger.Level.SHOUT,goog.debug.Logger.Level.SEVERE,goog.debug.Logger.Level.WARNING,goog.debug.Logger.Level.INFO,goog.debug.Logger.Level.CONFIG,goog.debug.Logger.Level.FINE,goog.debug.Logger.Level.FINER,goog.debug.Logger.Level.FINEST,goog.debug.Logger.Level.ALL];\ngoog.debug.Logger.Level.predefinedLevelsCache_=null;goog.debug.Logger.Level.createPredefinedLevelsCache_=function(){goog.debug.Logger.Level.predefinedLevelsCache_={};for(var a=0,b;b=goog.debug.Logger.Level.PREDEFINED_LEVELS[a];a++)goog.debug.Logger.Level.predefinedLevelsCache_[b.value]=b,goog.debug.Logger.Level.predefinedLevelsCache_[b.name]=b};\ngoog.debug.Logger.Level.getPredefinedLevel=function(a){goog.debug.Logger.Level.predefinedLevelsCache_||goog.debug.Logger.Level.createPredefinedLevelsCache_();return goog.debug.Logger.Level.predefinedLevelsCache_[a]||null};\ngoog.debug.Logger.Level.getPredefinedLevelByValue=function(a){goog.debug.Logger.Level.predefinedLevelsCache_||goog.debug.Logger.Level.createPredefinedLevelsCache_();if(a in goog.debug.Logger.Level.predefinedLevelsCache_)return goog.debug.Logger.Level.predefinedLevelsCache_[a];for(var b=0;b<goog.debug.Logger.Level.PREDEFINED_LEVELS.length;++b){var c=goog.debug.Logger.Level.PREDEFINED_LEVELS[b];if(c.value<=a)return c}return null};goog.debug.Logger.getLogger=function(a){return goog.debug.LogManager.getLogger(a)};\ngoog.debug.Logger.logToProfilers=function(a){goog.global.console&&(goog.global.console.timeStamp?goog.global.console.timeStamp(a):goog.global.console.markTimeline&&goog.global.console.markTimeline(a));goog.global.msWriteProfilerMark&&goog.global.msWriteProfilerMark(a)};goog.debug.Logger.prototype.getName=function(){return this.name_};\ngoog.debug.Logger.prototype.addHandler=function(a){goog.debug.LOGGING_ENABLED&&(goog.debug.Logger.ENABLE_HIERARCHY?(this.handlers_||(this.handlers_=[]),this.handlers_.push(a)):(goog.asserts.assert(!this.name_,"Cannot call addHandler on a non-root logger when goog.debug.Logger.ENABLE_HIERARCHY is false."),goog.debug.Logger.rootHandlers_.push(a)))};\ngoog.debug.Logger.prototype.removeHandler=function(a){if(goog.debug.LOGGING_ENABLED){var b=goog.debug.Logger.ENABLE_HIERARCHY?this.handlers_:goog.debug.Logger.rootHandlers_;return!!b&&goog.array.remove(b,a)}return!1};goog.debug.Logger.prototype.getParent=function(){return this.parent_};goog.debug.Logger.prototype.getChildren=function(){this.children_||(this.children_={});return this.children_};\ngoog.debug.Logger.prototype.setLevel=function(a){goog.debug.LOGGING_ENABLED&&(goog.debug.Logger.ENABLE_HIERARCHY?this.level_=a:(goog.asserts.assert(!this.name_,"Cannot call setLevel() on a non-root logger when goog.debug.Logger.ENABLE_HIERARCHY is false."),goog.debug.Logger.rootLevel_=a))};goog.debug.Logger.prototype.getLevel=function(){return goog.debug.LOGGING_ENABLED?this.level_:goog.debug.Logger.Level.OFF};\ngoog.debug.Logger.prototype.getEffectiveLevel=function(){if(!goog.debug.LOGGING_ENABLED)return goog.debug.Logger.Level.OFF;if(!goog.debug.Logger.ENABLE_HIERARCHY)return goog.debug.Logger.rootLevel_;if(this.level_)return this.level_;if(this.parent_)return this.parent_.getEffectiveLevel();goog.asserts.fail("Root logger has no level set.");return null};goog.debug.Logger.prototype.isLoggable=function(a){return goog.debug.LOGGING_ENABLED&&a.value>=this.getEffectiveLevel().value};\ngoog.debug.Logger.prototype.log=function(a,b,c){goog.debug.LOGGING_ENABLED&&this.isLoggable(a)&&(goog.isFunction(b)&&(b=b()),this.doLogRecord_(this.getLogRecord(a,b,c)))};goog.debug.Logger.prototype.getLogRecord=function(a,b,c){a=goog.debug.LogBuffer.isBufferingEnabled()?goog.debug.LogBuffer.getInstance().addRecord(a,b,this.name_):new goog.debug.LogRecord(a,String(b),this.name_);c&&a.setException(c);return a};\ngoog.debug.Logger.prototype.shout=function(a,b){goog.debug.LOGGING_ENABLED&&this.log(goog.debug.Logger.Level.SHOUT,a,b)};goog.debug.Logger.prototype.severe=function(a,b){goog.debug.LOGGING_ENABLED&&this.log(goog.debug.Logger.Level.SEVERE,a,b)};goog.debug.Logger.prototype.warning=function(a,b){goog.debug.LOGGING_ENABLED&&this.log(goog.debug.Logger.Level.WARNING,a,b)};goog.debug.Logger.prototype.info=function(a,b){goog.debug.LOGGING_ENABLED&&this.log(goog.debug.Logger.Level.INFO,a,b)};\ngoog.debug.Logger.prototype.config=function(a,b){goog.debug.LOGGING_ENABLED&&this.log(goog.debug.Logger.Level.CONFIG,a,b)};goog.debug.Logger.prototype.fine=function(a,b){goog.debug.LOGGING_ENABLED&&this.log(goog.debug.Logger.Level.FINE,a,b)};goog.debug.Logger.prototype.finer=function(a,b){goog.debug.LOGGING_ENABLED&&this.log(goog.debug.Logger.Level.FINER,a,b)};goog.debug.Logger.prototype.finest=function(a,b){goog.debug.LOGGING_ENABLED&&this.log(goog.debug.Logger.Level.FINEST,a,b)};\ngoog.debug.Logger.prototype.logRecord=function(a){goog.debug.LOGGING_ENABLED&&this.isLoggable(a.getLevel())&&this.doLogRecord_(a)};goog.debug.Logger.prototype.doLogRecord_=function(a){goog.debug.Logger.logToProfilers("log:"+a.getMessage());if(goog.debug.Logger.ENABLE_HIERARCHY)for(var b=this;b;)b.callPublish_(a),b=b.getParent();else for(var b=0,c;c=goog.debug.Logger.rootHandlers_[b++];)c(a)};goog.debug.Logger.prototype.callPublish_=function(a){if(this.handlers_)for(var b=0,c;c=this.handlers_[b];b++)c(a)};\ngoog.debug.Logger.prototype.setParent_=function(a){this.parent_=a};goog.debug.Logger.prototype.addChild_=function(a,b){this.getChildren()[a]=b};goog.debug.LogManager={};goog.debug.LogManager.loggers_={};goog.debug.LogManager.rootLogger_=null;\ngoog.debug.LogManager.initialize=function(){goog.debug.LogManager.rootLogger_||(goog.debug.LogManager.rootLogger_=new goog.debug.Logger(goog.debug.Logger.ROOT_LOGGER_NAME),goog.debug.LogManager.loggers_[goog.debug.Logger.ROOT_LOGGER_NAME]=goog.debug.LogManager.rootLogger_,goog.debug.LogManager.rootLogger_.setLevel(goog.debug.Logger.Level.CONFIG))};goog.debug.LogManager.getLoggers=function(){return goog.debug.LogManager.loggers_};\ngoog.debug.LogManager.getRoot=function(){goog.debug.LogManager.initialize();return goog.debug.LogManager.rootLogger_};goog.debug.LogManager.getLogger=function(a){goog.debug.LogManager.initialize();return goog.debug.LogManager.loggers_[a]||goog.debug.LogManager.createLogger_(a)};goog.debug.LogManager.createFunctionForCatchErrors=function(a){return function(b){(a||goog.debug.LogManager.getRoot()).severe("Error: "+b.message+" ("+b.fileName+" @ Line: "+b.line+")")}};\ngoog.debug.LogManager.createLogger_=function(a){var b=new goog.debug.Logger(a);if(goog.debug.Logger.ENABLE_HIERARCHY){var c=a.lastIndexOf("."),d=a.substr(0,c),c=a.substr(c+1),d=goog.debug.LogManager.getLogger(d);d.addChild_(c,b);b.setParent_(d)}return goog.debug.LogManager.loggers_[a]=b};goog.log={};goog.log.ENABLED=goog.debug.LOGGING_ENABLED;goog.log.ROOT_LOGGER_NAME=goog.debug.Logger.ROOT_LOGGER_NAME;goog.log.Logger=goog.debug.Logger;goog.log.Level=goog.debug.Logger.Level;goog.log.LogRecord=goog.debug.LogRecord;goog.log.getLogger=function(a,b){if(goog.log.ENABLED){var c=goog.debug.LogManager.getLogger(a);b&&c&&c.setLevel(b);return c}return null};goog.log.addHandler=function(a,b){goog.log.ENABLED&&a&&a.addHandler(b)};\ngoog.log.removeHandler=function(a,b){return goog.log.ENABLED&&a?a.removeHandler(b):!1};goog.log.log=function(a,b,c,d){goog.log.ENABLED&&a&&a.log(b,c,d)};goog.log.error=function(a,b,c){goog.log.ENABLED&&a&&a.severe(b,c)};goog.log.warning=function(a,b,c){goog.log.ENABLED&&a&&a.warning(b,c)};goog.log.info=function(a,b,c){goog.log.ENABLED&&a&&a.info(b,c)};goog.log.fine=function(a,b,c){goog.log.ENABLED&&a&&a.fine(b,c)};goog.string.StringBuffer=function(a,b){null!=a&&this.append.apply(this,arguments)};goog.string.StringBuffer.prototype.buffer_="";goog.string.StringBuffer.prototype.set=function(a){this.buffer_=""+a};goog.string.StringBuffer.prototype.append=function(a,b,c){this.buffer_+=String(a);if(null!=b)for(var d=1;d<arguments.length;d++)this.buffer_+=arguments[d];return this};goog.string.StringBuffer.prototype.clear=function(){this.buffer_=""};goog.string.StringBuffer.prototype.getLength=function(){return this.buffer_.length};\ngoog.string.StringBuffer.prototype.toString=function(){return this.buffer_};goog.ui.tree={};goog.ui.tree.BaseNode=function(a,b,c){goog.ui.Component.call(this,c);this.config_=b||goog.ui.tree.BaseNode.defaultConfig;this.html_=goog.html.SafeHtml.htmlEscapePreservingNewlines(a);this.expanded_=this.selected_=!1;this.toolTip_=null;this.afterLabelHtml_=goog.html.SafeHtml.EMPTY;this.isUserCollapsible_=!0;this.depth_=-1};goog.inherits(goog.ui.tree.BaseNode,goog.ui.Component);\ngoog.ui.tree.BaseNode.EventType={BEFORE_EXPAND:"beforeexpand",EXPAND:"expand",BEFORE_COLLAPSE:"beforecollapse",COLLAPSE:"collapse"};goog.ui.tree.BaseNode.allNodes={};goog.ui.tree.BaseNode.prototype.disposeInternal=function(){goog.ui.tree.BaseNode.superClass_.disposeInternal.call(this);this.tree&&(this.tree.removeNode(this),this.tree=null);this.setElementInternal(null)};\ngoog.ui.tree.BaseNode.prototype.initAccessibility=function(){var a=this.getElement();if(a){var b=this.getLabelElement();b&&!b.id&&(b.id=this.getId()+".label");goog.a11y.aria.setRole(a,"treeitem");goog.a11y.aria.setState(a,"selected",!1);goog.a11y.aria.setState(a,"expanded",!1);goog.a11y.aria.setState(a,"level",this.getDepth());b&&goog.a11y.aria.setState(a,"labelledby",b.id);(a=this.getIconElement())&&goog.a11y.aria.setRole(a,"presentation");(a=this.getExpandIconElement())&&goog.a11y.aria.setRole(a,\n"presentation");if(a=this.getChildrenElement())if(goog.a11y.aria.setRole(a,"group"),a.hasChildNodes())for(a=this.getChildCount(),b=1;b<=a;b++){var c=this.getChildAt(b-1).getElement();goog.asserts.assert(c,"The child element cannot be null");goog.a11y.aria.setState(c,"setsize",a);goog.a11y.aria.setState(c,"posinset",b)}}};goog.ui.tree.BaseNode.prototype.createDom=function(){var a=this.getDomHelper().safeHtmlToNode(this.toSafeHtml());this.setElementInternal(a)};\ngoog.ui.tree.BaseNode.prototype.enterDocument=function(){goog.ui.tree.BaseNode.superClass_.enterDocument.call(this);goog.ui.tree.BaseNode.allNodes[this.getId()]=this;this.initAccessibility()};goog.ui.tree.BaseNode.prototype.exitDocument=function(){goog.ui.tree.BaseNode.superClass_.exitDocument.call(this);delete goog.ui.tree.BaseNode.allNodes[this.getId()]};\ngoog.ui.tree.BaseNode.prototype.addChildAt=function(a,b,c){goog.asserts.assert(!a.getParent());goog.asserts.assertInstanceof(a,goog.ui.tree.BaseNode);c=this.getChildAt(b-1);var d=this.getChildAt(b);goog.ui.tree.BaseNode.superClass_.addChildAt.call(this,a,b);a.previousSibling_=c;a.nextSibling_=d;c?c.nextSibling_=a:this.firstChild_=a;d?d.previousSibling_=a:this.lastChild_=a;(b=this.getTree())&&a.setTreeInternal(b);a.setDepth_(this.getDepth()+1);if(this.getElement()&&(this.updateExpandIcon(),this.getExpanded())){b=\nthis.getChildrenElement();a.getElement()||a.createDom();var e=a.getElement(),f=d&&d.getElement();b.insertBefore(e,f);this.isInDocument()&&a.enterDocument();d||(c?c.updateExpandIcon():(goog.style.setElementShown(b,!0),this.setExpanded(this.getExpanded())))}};goog.ui.tree.BaseNode.prototype.add=function(a,b){goog.asserts.assert(!b||b.getParent()==this,"Can only add nodes before siblings");a.getParent()&&a.getParent().removeChild(a);this.addChildAt(a,b?this.indexOfChild(b):this.getChildCount());return a};\ngoog.ui.tree.BaseNode.prototype.removeChild=function(a,b){var c=this.getTree(),d=c?c.getSelectedItem():null;if(d==a||a.contains(d))c.hasFocus()?(this.select(),goog.Timer.callOnce(this.onTimeoutSelect_,10,this)):this.select();goog.ui.tree.BaseNode.superClass_.removeChild.call(this,a);this.lastChild_==a&&(this.lastChild_=a.previousSibling_);this.firstChild_==a&&(this.firstChild_=a.nextSibling_);a.previousSibling_&&(a.previousSibling_.nextSibling_=a.nextSibling_);a.nextSibling_&&(a.nextSibling_.previousSibling_=\na.previousSibling_);d=a.isLastSibling();a.tree=null;a.depth_=-1;if(c&&(c.removeNode(a),this.isInDocument())){c=this.getChildrenElement();if(a.isInDocument()){var e=a.getElement();c.removeChild(e);a.exitDocument()}d&&(d=this.getLastChild())&&d.updateExpandIcon();this.hasChildren()||(c.style.display="none",this.updateExpandIcon(),this.updateIcon_())}return a};goog.ui.tree.BaseNode.prototype.remove=goog.ui.tree.BaseNode.prototype.removeChild;goog.ui.tree.BaseNode.prototype.onTimeoutSelect_=function(){this.select()};\ngoog.ui.tree.BaseNode.prototype.getTree=goog.abstractMethod;goog.ui.tree.BaseNode.prototype.getDepth=function(){var a=this.depth_;0>a&&(a=this.computeDepth_(),this.setDepth_(a));return a};goog.ui.tree.BaseNode.prototype.computeDepth_=function(){var a=this.getParent();return a?a.getDepth()+1:0};\ngoog.ui.tree.BaseNode.prototype.setDepth_=function(a){if(a!=this.depth_){this.depth_=a;var b=this.getRowElement();if(b){var c=this.getPixelIndent_()+"px";this.isRightToLeft()?b.style.paddingRight=c:b.style.paddingLeft=c}this.forEachChild(function(b){b.setDepth_(a+1)})}};goog.ui.tree.BaseNode.prototype.contains=function(a){for(;a;){if(a==this)return!0;a=a.getParent()}return!1};goog.ui.tree.BaseNode.EMPTY_CHILDREN_=[];\ngoog.ui.tree.BaseNode.prototype.getChildren=function(){var a=[];this.forEachChild(function(b){a.push(b)});return a};goog.ui.tree.BaseNode.prototype.getFirstChild=function(){return this.getChildAt(0)};goog.ui.tree.BaseNode.prototype.getLastChild=function(){return this.getChildAt(this.getChildCount()-1)};goog.ui.tree.BaseNode.prototype.getPreviousSibling=function(){return this.previousSibling_};goog.ui.tree.BaseNode.prototype.getNextSibling=function(){return this.nextSibling_};\ngoog.ui.tree.BaseNode.prototype.isLastSibling=function(){return!this.nextSibling_};goog.ui.tree.BaseNode.prototype.isSelected=function(){return this.selected_};goog.ui.tree.BaseNode.prototype.select=function(){var a=this.getTree();a&&a.setSelectedItem(this)};goog.ui.tree.BaseNode.prototype.deselect=goog.nullFunction;\ngoog.ui.tree.BaseNode.prototype.setSelectedInternal=function(a){if(this.selected_!=a){this.selected_=a;this.updateRow();var b=this.getElement();b&&(goog.a11y.aria.setState(b,"selected",a),a&&(a=this.getTree().getElement(),goog.asserts.assert(a,"The DOM element for the tree cannot be null"),goog.a11y.aria.setState(a,"activedescendant",this.getId())))}};goog.ui.tree.BaseNode.prototype.getExpanded=function(){return this.expanded_};\ngoog.ui.tree.BaseNode.prototype.setExpandedInternal=function(a){this.expanded_=a};\ngoog.ui.tree.BaseNode.prototype.setExpanded=function(a){var b=a!=this.expanded_;if(!b||this.dispatchEvent(a?goog.ui.tree.BaseNode.EventType.BEFORE_EXPAND:goog.ui.tree.BaseNode.EventType.BEFORE_COLLAPSE)){var c;this.expanded_=a;c=this.getTree();var d=this.getElement();if(this.hasChildren()){if(!a&&c&&this.contains(c.getSelectedItem())&&this.select(),d){if(c=this.getChildrenElement())if(goog.style.setElementShown(c,a),a&&this.isInDocument()&&!c.hasChildNodes()){var e=[];this.forEachChild(function(a){e.push(a.toSafeHtml())});\ngoog.dom.safe.setInnerHtml(c,goog.html.SafeHtml.concat(e));this.forEachChild(function(a){a.enterDocument()})}this.updateExpandIcon()}}else(c=this.getChildrenElement())&&goog.style.setElementShown(c,!1);d&&(this.updateIcon_(),goog.a11y.aria.setState(d,"expanded",a));b&&this.dispatchEvent(a?goog.ui.tree.BaseNode.EventType.EXPAND:goog.ui.tree.BaseNode.EventType.COLLAPSE)}};goog.ui.tree.BaseNode.prototype.toggle=function(){this.setExpanded(!this.getExpanded())};\ngoog.ui.tree.BaseNode.prototype.expand=function(){this.setExpanded(!0)};goog.ui.tree.BaseNode.prototype.collapse=function(){this.setExpanded(!1)};goog.ui.tree.BaseNode.prototype.collapseChildren=function(){this.forEachChild(function(a){a.collapseAll()})};goog.ui.tree.BaseNode.prototype.collapseAll=function(){this.collapseChildren();this.collapse()};goog.ui.tree.BaseNode.prototype.expandChildren=function(){this.forEachChild(function(a){a.expandAll()})};\ngoog.ui.tree.BaseNode.prototype.expandAll=function(){this.expandChildren();this.expand()};goog.ui.tree.BaseNode.prototype.reveal=function(){var a=this.getParent();a&&(a.setExpanded(!0),a.reveal())};goog.ui.tree.BaseNode.prototype.setIsUserCollapsible=function(a){(this.isUserCollapsible_=a)||this.expand();this.getElement()&&this.updateExpandIcon()};goog.ui.tree.BaseNode.prototype.isUserCollapsible=function(){return this.isUserCollapsible_};\ngoog.ui.tree.BaseNode.prototype.toSafeHtml=function(){var a=this.getTree(),b=!a.getShowLines()||a==this.getParent()&&!a.getShowRootLines()?this.config_.cssChildrenNoLines:this.config_.cssChildren,a=this.getExpanded()&&this.hasChildren(),b={"class":b,style:this.getLineStyle()},c=[];a&&this.forEachChild(function(a){c.push(a.toSafeHtml())});a=goog.html.SafeHtml.create("div",b,c);return goog.html.SafeHtml.create("div",{"class":this.config_.cssItem,id:this.getId()},[this.getRowSafeHtml(),a])};\ngoog.ui.tree.BaseNode.prototype.getPixelIndent_=function(){return Math.max(0,(this.getDepth()-1)*this.config_.indentWidth)};goog.ui.tree.BaseNode.prototype.getRowSafeHtml=function(){var a={};a["padding-"+(this.isRightToLeft()?"right":"left")]=this.getPixelIndent_()+"px";var a={"class":this.getRowClassName(),style:a},b=[this.getExpandIconSafeHtml(),this.getIconSafeHtml(),this.getLabelSafeHtml()];return goog.html.SafeHtml.create("div",a,b)};\ngoog.ui.tree.BaseNode.prototype.getRowClassName=function(){var a;a=this.isSelected()?" "+this.config_.cssSelectedRow:"";return this.config_.cssTreeRow+a};goog.ui.tree.BaseNode.prototype.getLabelSafeHtml=function(){var a=goog.html.SafeHtml.create("span",{"class":this.config_.cssItemLabel,title:this.getToolTip()||null},this.getSafeHtml());return goog.html.SafeHtml.concat(a,goog.html.SafeHtml.create("span",{},this.getAfterLabelSafeHtml()))};goog.ui.tree.BaseNode.prototype.getAfterLabelHtml=function(){return goog.html.SafeHtml.unwrap(this.getAfterLabelSafeHtml())};\ngoog.ui.tree.BaseNode.prototype.getAfterLabelSafeHtml=function(){return this.afterLabelHtml_};goog.ui.tree.BaseNode.prototype.setAfterLabelSafeHtml=function(a){this.afterLabelHtml_=a;var b=this.getAfterLabelElement();b&&goog.dom.safe.setInnerHtml(b,a)};goog.ui.tree.BaseNode.prototype.getIconSafeHtml=function(){return goog.html.SafeHtml.create("span",{style:{display:"inline-block"},"class":this.getCalculatedIconClass()})};goog.ui.tree.BaseNode.prototype.getCalculatedIconClass=goog.abstractMethod;\ngoog.ui.tree.BaseNode.prototype.getExpandIconSafeHtml=function(){return goog.html.SafeHtml.create("span",{type:"expand",style:{display:"inline-block"},"class":this.getExpandIconClass()})};\ngoog.ui.tree.BaseNode.prototype.getExpandIconClass=function(){var a=this.getTree(),b=!a.getShowLines()||a==this.getParent()&&!a.getShowRootLines(),c=this.config_,d=new goog.string.StringBuffer;d.append(c.cssTreeIcon," ",c.cssExpandTreeIcon," ");if(this.hasChildren()){var e=0;a.getShowExpandIcons()&&this.isUserCollapsible_&&(e=this.getExpanded()?2:1);b||(e=this.isLastSibling()?e+4:e+8);switch(e){case 1:d.append(c.cssExpandTreeIconPlus);break;case 2:d.append(c.cssExpandTreeIconMinus);break;case 4:d.append(c.cssExpandTreeIconL);\nbreak;case 5:d.append(c.cssExpandTreeIconLPlus);break;case 6:d.append(c.cssExpandTreeIconLMinus);break;case 8:d.append(c.cssExpandTreeIconT);break;case 9:d.append(c.cssExpandTreeIconTPlus);break;case 10:d.append(c.cssExpandTreeIconTMinus);break;default:d.append(c.cssExpandTreeIconBlank)}}else b?d.append(c.cssExpandTreeIconBlank):this.isLastSibling()?d.append(c.cssExpandTreeIconL):d.append(c.cssExpandTreeIconT);return d.toString()};\ngoog.ui.tree.BaseNode.prototype.getLineStyle=function(){var a=this.getExpanded()&&this.hasChildren();return goog.html.SafeStyle.create({"background-position":this.getBackgroundPosition(),display:a?null:"none"})};goog.ui.tree.BaseNode.prototype.getBackgroundPosition=function(){return(this.isLastSibling()?"-100":(this.getDepth()-1)*this.config_.indentWidth)+"px 0"};\ngoog.ui.tree.BaseNode.prototype.getElement=function(){var a=goog.ui.tree.BaseNode.superClass_.getElement.call(this);a||(a=this.getDomHelper().getElement(this.getId()),this.setElementInternal(a));return a};goog.ui.tree.BaseNode.prototype.getRowElement=function(){var a=this.getElement();return a?a.firstChild:null};goog.ui.tree.BaseNode.prototype.getExpandIconElement=function(){var a=this.getRowElement();return a?a.firstChild:null};\ngoog.ui.tree.BaseNode.prototype.getIconElement=function(){var a=this.getRowElement();return a?a.childNodes[1]:null};goog.ui.tree.BaseNode.prototype.getLabelElement=function(){var a=this.getRowElement();return a&&a.lastChild?a.lastChild.previousSibling:null};goog.ui.tree.BaseNode.prototype.getAfterLabelElement=function(){var a=this.getRowElement();return a?a.lastChild:null};goog.ui.tree.BaseNode.prototype.getChildrenElement=function(){var a=this.getElement();return a?a.lastChild:null};\ngoog.ui.tree.BaseNode.prototype.setIconClass=function(a){this.iconClass_=a;this.isInDocument()&&this.updateIcon_()};goog.ui.tree.BaseNode.prototype.getIconClass=function(){return this.iconClass_};goog.ui.tree.BaseNode.prototype.setExpandedIconClass=function(a){this.expandedIconClass_=a;this.isInDocument()&&this.updateIcon_()};goog.ui.tree.BaseNode.prototype.getExpandedIconClass=function(){return this.expandedIconClass_};goog.ui.tree.BaseNode.prototype.setText=function(a){this.setSafeHtml(goog.html.SafeHtml.htmlEscape(a))};\ngoog.ui.tree.BaseNode.prototype.getText=function(){return goog.string.unescapeEntities(goog.html.SafeHtml.unwrap(this.html_))};goog.ui.tree.BaseNode.prototype.setSafeHtml=function(a){this.html_=a;var b=this.getLabelElement();b&&goog.dom.safe.setInnerHtml(b,a);(a=this.getTree())&&a.setNode(this)};goog.ui.tree.BaseNode.prototype.getHtml=function(){return goog.html.SafeHtml.unwrap(this.getSafeHtml())};goog.ui.tree.BaseNode.prototype.getSafeHtml=function(){return this.html_};\ngoog.ui.tree.BaseNode.prototype.setToolTip=function(a){this.toolTip_=a;var b=this.getLabelElement();b&&(b.title=a)};goog.ui.tree.BaseNode.prototype.getToolTip=function(){return this.toolTip_};goog.ui.tree.BaseNode.prototype.updateRow=function(){var a=this.getRowElement();a&&(a.className=this.getRowClassName())};\ngoog.ui.tree.BaseNode.prototype.updateExpandIcon=function(){var a=this.getExpandIconElement();a&&(a.className=this.getExpandIconClass());if(a=this.getChildrenElement())a.style.backgroundPosition=this.getBackgroundPosition()};goog.ui.tree.BaseNode.prototype.updateIcon_=function(){this.getIconElement().className=this.getCalculatedIconClass()};\ngoog.ui.tree.BaseNode.prototype.onMouseDown=function(a){"expand"==a.target.getAttribute("type")&&this.hasChildren()?this.isUserCollapsible_&&this.toggle():(this.select(),this.updateRow())};goog.ui.tree.BaseNode.prototype.onClick_=goog.events.Event.preventDefault;goog.ui.tree.BaseNode.prototype.onDoubleClick_=function(a){"expand"==a.target.getAttribute("type")&&this.hasChildren()||this.isUserCollapsible_&&this.toggle()};\ngoog.ui.tree.BaseNode.prototype.onKeyDown=function(a){var b=!0;switch(a.keyCode){case goog.events.KeyCodes.RIGHT:if(a.altKey)break;this.hasChildren()&&(this.getExpanded()?this.getFirstChild().select():this.setExpanded(!0));break;case goog.events.KeyCodes.LEFT:if(a.altKey)break;if(this.hasChildren()&&this.getExpanded()&&this.isUserCollapsible_)this.setExpanded(!1);else{var c=this.getParent(),d=this.getTree();c&&(d.getShowRootNode()||c!=d)&&c.select()}break;case goog.events.KeyCodes.DOWN:(c=this.getNextShownNode())&&\nc.select();break;case goog.events.KeyCodes.UP:(c=this.getPreviousShownNode())&&c.select();break;default:b=!1}b&&(a.preventDefault(),(d=this.getTree())&&d.clearTypeAhead());return b};goog.ui.tree.BaseNode.prototype.getLastShownDescendant=function(){return this.getExpanded()&&this.hasChildren()?this.getLastChild().getLastShownDescendant():this};\ngoog.ui.tree.BaseNode.prototype.getNextShownNode=function(){if(this.hasChildren()&&this.getExpanded())return this.getFirstChild();for(var a=this,b;a!=this.getTree();){b=a.getNextSibling();if(null!=b)return b;a=a.getParent()}return null};goog.ui.tree.BaseNode.prototype.getPreviousShownNode=function(){var a=this.getPreviousSibling();if(null!=a)return a.getLastShownDescendant();var a=this.getParent(),b=this.getTree();return!b.getShowRootNode()&&a==b||this==b?null:a};\ngoog.ui.tree.BaseNode.prototype.getClientData=goog.ui.tree.BaseNode.prototype.getModel;goog.ui.tree.BaseNode.prototype.setClientData=goog.ui.tree.BaseNode.prototype.setModel;goog.ui.tree.BaseNode.prototype.getConfig=function(){return this.config_};goog.ui.tree.BaseNode.prototype.setTreeInternal=function(a){this.tree!=a&&(this.tree=a,a.setNode(this),this.forEachChild(function(b){b.setTreeInternal(a)}))};\ngoog.ui.tree.BaseNode.defaultConfig={indentWidth:19,cssRoot:"goog-tree-root goog-tree-item",cssHideRoot:"goog-tree-hide-root",cssItem:"goog-tree-item",cssChildren:"goog-tree-children",cssChildrenNoLines:"goog-tree-children-nolines",cssTreeRow:"goog-tree-row",cssItemLabel:"goog-tree-item-label",cssTreeIcon:"goog-tree-icon",cssExpandTreeIcon:"goog-tree-expand-icon",cssExpandTreeIconPlus:"goog-tree-expand-icon-plus",cssExpandTreeIconMinus:"goog-tree-expand-icon-minus",cssExpandTreeIconTPlus:"goog-tree-expand-icon-tplus",\ncssExpandTreeIconTMinus:"goog-tree-expand-icon-tminus",cssExpandTreeIconLPlus:"goog-tree-expand-icon-lplus",cssExpandTreeIconLMinus:"goog-tree-expand-icon-lminus",cssExpandTreeIconT:"goog-tree-expand-icon-t",cssExpandTreeIconL:"goog-tree-expand-icon-l",cssExpandTreeIconBlank:"goog-tree-expand-icon-blank",cssExpandedFolderIcon:"goog-tree-expanded-folder-icon",cssCollapsedFolderIcon:"goog-tree-collapsed-folder-icon",cssFileIcon:"goog-tree-file-icon",cssExpandedRootIcon:"goog-tree-expanded-folder-icon",\ncssCollapsedRootIcon:"goog-tree-collapsed-folder-icon",cssSelectedRow:"selected"};goog.ui.tree.TreeNode=function(a,b,c){goog.ui.tree.BaseNode.call(this,a,b,c)};goog.inherits(goog.ui.tree.TreeNode,goog.ui.tree.BaseNode);goog.ui.tree.TreeNode.prototype.getTree=function(){if(this.tree)return this.tree;var a=this.getParent();return a&&(a=a.getTree())?(this.setTreeInternal(a),a):null};\ngoog.ui.tree.TreeNode.prototype.getCalculatedIconClass=function(){var a=this.getExpanded(),b=this.getExpandedIconClass();if(a&&b)return b;b=this.getIconClass();if(!a&&b)return b;b=this.getConfig();if(this.hasChildren()){if(a&&b.cssExpandedFolderIcon)return b.cssTreeIcon+" "+b.cssExpandedFolderIcon;if(!a&&b.cssCollapsedFolderIcon)return b.cssTreeIcon+" "+b.cssCollapsedFolderIcon}else if(b.cssFileIcon)return b.cssTreeIcon+" "+b.cssFileIcon;return""};goog.structs.Trie=function(a){this.value_=void 0;this.childNodes_={};a&&this.setAll(a)};goog.structs.Trie.prototype.set=function(a,b){this.setOrAdd_(a,b,!1)};goog.structs.Trie.prototype.add=function(a,b){this.setOrAdd_(a,b,!0)};\ngoog.structs.Trie.prototype.setOrAdd_=function(a,b,c){for(var d=this,e=0;e<a.length;e++){var f=a.charAt(e);d.childNodes_[f]||(d.childNodes_[f]=new goog.structs.Trie);d=d.childNodes_[f]}if(c&&void 0!==d.value_)throw Error(\'The collection already contains the key "\'+a+\'"\');d.value_=b};goog.structs.Trie.prototype.setAll=function(a){var b=goog.structs.getKeys(a);a=goog.structs.getValues(a);for(var c=0;c<b.length;c++)this.set(b[c],a[c])};\ngoog.structs.Trie.prototype.getChildNode_=function(a){for(var b=this,c=0;c<a.length;c++){var d=a.charAt(c),b=b.childNodes_[d];if(!b)return}return b};goog.structs.Trie.prototype.get=function(a){return(a=this.getChildNode_(a))?a.value_:void 0};goog.structs.Trie.prototype.getKeyAndPrefixes=function(a,b){var c=this,d={},e=b||0;void 0!==c.value_&&(d[e]=c.value_);for(;e<a.length;e++){var f=a.charAt(e);if(!(f in c.childNodes_))break;c=c.childNodes_[f];void 0!==c.value_&&(d[e]=c.value_)}return d};\ngoog.structs.Trie.prototype.getValues=function(){var a=[];this.getValuesInternal_(a);return a};goog.structs.Trie.prototype.getValuesInternal_=function(a){void 0!==this.value_&&a.push(this.value_);for(var b in this.childNodes_)this.childNodes_[b].getValuesInternal_(a)};goog.structs.Trie.prototype.getKeys=function(a){var b=[];if(a){for(var c=this,d=0;d<a.length;d++){var e=a.charAt(d);if(!c.childNodes_[e])return[];c=c.childNodes_[e]}c.getKeysInternal_(a,b)}else this.getKeysInternal_("",b);return b};\ngoog.structs.Trie.prototype.getKeysInternal_=function(a,b){void 0!==this.value_&&b.push(a);for(var c in this.childNodes_)this.childNodes_[c].getKeysInternal_(a+c,b)};goog.structs.Trie.prototype.containsKey=function(a){return void 0!==this.get(a)};goog.structs.Trie.prototype.containsPrefix=function(a){return 0==a.length?!this.isEmpty():!!this.getChildNode_(a)};\ngoog.structs.Trie.prototype.containsValue=function(a){if(this.value_===a)return!0;for(var b in this.childNodes_)if(this.childNodes_[b].containsValue(a))return!0;return!1};goog.structs.Trie.prototype.clear=function(){this.childNodes_={};this.value_=void 0};\ngoog.structs.Trie.prototype.remove=function(a){for(var b=this,c=[],d=0;d<a.length;d++){var e=a.charAt(d);if(!b.childNodes_[e])throw Error(\'The collection does not have the key "\'+a+\'"\');c.push([b,e]);b=b.childNodes_[e]}a=b.value_;for(delete b.value_;0<c.length;)if(e=c.pop(),b=e[0],e=e[1],b.childNodes_[e].isEmpty())delete b.childNodes_[e];else break;return a};goog.structs.Trie.prototype.clone=function(){return new goog.structs.Trie(this)};goog.structs.Trie.prototype.getCount=function(){return goog.structs.getCount(this.getValues())};\ngoog.structs.Trie.prototype.isEmpty=function(){return void 0===this.value_&&goog.object.isEmpty(this.childNodes_)};goog.ui.tree.TypeAhead=function(){this.nodeMap_=new goog.structs.Trie;this.buffer_="";this.matchingNodes_=this.matchingLabels_=null;this.matchingNodeIndex_=this.matchingLabelIndex_=0};goog.ui.tree.TypeAhead.Offset={DOWN:1,UP:-1};\ngoog.ui.tree.TypeAhead.prototype.handleNavigation=function(a){var b=!1;switch(a.keyCode){case goog.events.KeyCodes.DOWN:case goog.events.KeyCodes.UP:a.ctrlKey&&(this.jumpTo_(a.keyCode==goog.events.KeyCodes.DOWN?goog.ui.tree.TypeAhead.Offset.DOWN:goog.ui.tree.TypeAhead.Offset.UP),b=!0);break;case goog.events.KeyCodes.BACKSPACE:a=this.buffer_.length-1;b=!0;0<a?(this.buffer_=this.buffer_.substring(0,a),this.jumpToLabel_(this.buffer_)):0==a?this.buffer_="":b=!1;break;case goog.events.KeyCodes.ESC:this.buffer_=\n"",b=!0}return b};goog.ui.tree.TypeAhead.prototype.handleTypeAheadChar=function(a){var b=!1;a.ctrlKey||a.altKey||(a=String.fromCharCode(a.charCode||a.keyCode).toLowerCase(),goog.string.isUnicodeChar(a)&&(" "!=a||this.buffer_)&&(this.buffer_+=a,b=this.jumpToLabel_(this.buffer_)));return b};\ngoog.ui.tree.TypeAhead.prototype.setNodeInMap=function(a){var b=a.getText();if(b&&!goog.string.isEmptyOrWhitespace(goog.string.makeSafe(b))){var b=b.toLowerCase(),c=this.nodeMap_.get(b);c?c.push(a):this.nodeMap_.set(b,[a])}};\ngoog.ui.tree.TypeAhead.prototype.removeNodeFromMap=function(a){var b=a.getText();if(b&&!goog.string.isEmptyOrWhitespace(goog.string.makeSafe(b))){var b=b.toLowerCase(),c=this.nodeMap_.get(b);if(c){for(var d=a.getChildCount(),e=0;e<d;e++)this.removeNodeFromMap(a.getChildAt(e));goog.array.remove(c,a);c.length||this.nodeMap_.remove(b)}}};\ngoog.ui.tree.TypeAhead.prototype.jumpToLabel_=function(a){var b=!1;(a=this.nodeMap_.getKeys(a))&&a.length&&(this.matchingLabelIndex_=this.matchingNodeIndex_=0,b=this.nodeMap_.get(a[0]),b=this.selectMatchingNode_(b))&&(this.matchingLabels_=a);return b};\ngoog.ui.tree.TypeAhead.prototype.jumpTo_=function(a){var b=!1,c=this.matchingLabels_;if(c){var b=null,d=!1;if(this.matchingNodes_){var e=this.matchingNodeIndex_+a;0<=e&&e<this.matchingNodes_.length?(this.matchingNodeIndex_=e,b=this.matchingNodes_):d=!0}b||(e=this.matchingLabelIndex_+a,0<=e&&e<c.length&&(this.matchingLabelIndex_=e),c.length>this.matchingLabelIndex_&&(b=this.nodeMap_.get(c[this.matchingLabelIndex_])),b&&b.length&&d&&(this.matchingNodeIndex_=a==goog.ui.tree.TypeAhead.Offset.UP?b.length-\n1:0));if(b=this.selectMatchingNode_(b))this.matchingLabels_=c}return b};goog.ui.tree.TypeAhead.prototype.selectMatchingNode_=function(a){var b;a&&(this.matchingNodeIndex_<a.length&&(b=a[this.matchingNodeIndex_],this.matchingNodes_=a),b&&(b.reveal(),b.select()));return!!b};goog.ui.tree.TypeAhead.prototype.clear=function(){this.buffer_=""};goog.ui.tree.TreeControl=function(a,b,c){goog.ui.tree.BaseNode.call(this,a,b,c);this.setExpandedInternal(!0);this.setSelectedInternal(!0);this.selectedItem_=this;this.typeAhead_=new goog.ui.tree.TypeAhead;this.focusHandler_=this.keyHandler_=null;this.logger_=goog.log.getLogger("this");this.focused_=!1;this.focusedNode_=null;this.showRootLines_=this.showRootNode_=this.showExpandIcons_=this.showLines_=!0;if(goog.userAgent.IE)try{document.execCommand("BackgroundImageCache",!1,!0)}catch(d){goog.log.warning(this.logger_,\n"Failed to enable background image cache")}};goog.inherits(goog.ui.tree.TreeControl,goog.ui.tree.BaseNode);goog.ui.tree.TreeControl.prototype.getTree=function(){return this};goog.ui.tree.TreeControl.prototype.getDepth=function(){return 0};goog.ui.tree.TreeControl.prototype.reveal=function(){};goog.ui.tree.TreeControl.prototype.handleFocus_=function(a){this.focused_=!0;goog.dom.classlist.add(goog.asserts.assert(this.getElement()),"focused");this.selectedItem_&&this.selectedItem_.select()};\ngoog.ui.tree.TreeControl.prototype.handleBlur_=function(a){this.focused_=!1;goog.dom.classlist.remove(goog.asserts.assert(this.getElement()),"focused")};goog.ui.tree.TreeControl.prototype.hasFocus=function(){return this.focused_};goog.ui.tree.TreeControl.prototype.getExpanded=function(){return!this.showRootNode_||goog.ui.tree.TreeControl.superClass_.getExpanded.call(this)};\ngoog.ui.tree.TreeControl.prototype.setExpanded=function(a){this.showRootNode_?goog.ui.tree.TreeControl.superClass_.setExpanded.call(this,a):this.setExpandedInternal(a)};goog.ui.tree.TreeControl.prototype.getExpandIconSafeHtml=function(){return goog.html.SafeHtml.EMPTY};goog.ui.tree.TreeControl.prototype.getIconElement=function(){var a=this.getRowElement();return a?a.firstChild:null};goog.ui.tree.TreeControl.prototype.getExpandIconElement=function(){return null};\ngoog.ui.tree.TreeControl.prototype.updateExpandIcon=function(){};goog.ui.tree.TreeControl.prototype.getRowClassName=function(){return goog.ui.tree.TreeControl.superClass_.getRowClassName.call(this)+(this.showRootNode_?"":" "+this.getConfig().cssHideRoot)};\ngoog.ui.tree.TreeControl.prototype.getCalculatedIconClass=function(){var a=this.getExpanded(),b=this.getExpandedIconClass();if(a&&b)return b;b=this.getIconClass();if(!a&&b)return b;b=this.getConfig();return a&&b.cssExpandedRootIcon?b.cssTreeIcon+" "+b.cssExpandedRootIcon:!a&&b.cssCollapsedRootIcon?b.cssTreeIcon+" "+b.cssCollapsedRootIcon:""};\ngoog.ui.tree.TreeControl.prototype.setSelectedItem=function(a){if(this.selectedItem_!=a){var b=!1;this.selectedItem_&&(b=this.selectedItem_==this.focusedNode_,this.selectedItem_.setSelectedInternal(!1));if(this.selectedItem_=a)a.setSelectedInternal(!0),b&&a.select();this.dispatchEvent(goog.events.EventType.CHANGE)}};goog.ui.tree.TreeControl.prototype.getSelectedItem=function(){return this.selectedItem_};\ngoog.ui.tree.TreeControl.prototype.setShowLines=function(a){this.showLines_!=a&&(this.showLines_=a,this.isInDocument()&&this.updateLinesAndExpandIcons_())};goog.ui.tree.TreeControl.prototype.getShowLines=function(){return this.showLines_};\ngoog.ui.tree.TreeControl.prototype.updateLinesAndExpandIcons_=function(){function a(e){var f=e.getChildrenElement();if(f){var g=!c||b==e.getParent()&&!d?e.getConfig().cssChildrenNoLines:e.getConfig().cssChildren;f.className=g;if(f=e.getExpandIconElement())f.className=e.getExpandIconClass()}e.forEachChild(a)}var b=this,c=b.getShowLines(),d=b.getShowRootLines();a(this)};\ngoog.ui.tree.TreeControl.prototype.setShowRootLines=function(a){this.showRootLines_!=a&&(this.showRootLines_=a,this.isInDocument()&&this.updateLinesAndExpandIcons_())};goog.ui.tree.TreeControl.prototype.getShowRootLines=function(){return this.showRootLines_};goog.ui.tree.TreeControl.prototype.setShowExpandIcons=function(a){this.showExpandIcons_!=a&&(this.showExpandIcons_=a,this.isInDocument()&&this.updateLinesAndExpandIcons_())};goog.ui.tree.TreeControl.prototype.getShowExpandIcons=function(){return this.showExpandIcons_};\ngoog.ui.tree.TreeControl.prototype.setShowRootNode=function(a){if(this.showRootNode_!=a){this.showRootNode_=a;if(this.isInDocument()){var b=this.getRowElement();b&&(b.className=this.getRowClassName())}!a&&this.getSelectedItem()==this&&this.getFirstChild()&&this.setSelectedItem(this.getFirstChild())}};goog.ui.tree.TreeControl.prototype.getShowRootNode=function(){return this.showRootNode_};\ngoog.ui.tree.TreeControl.prototype.initAccessibility=function(){goog.ui.tree.TreeControl.superClass_.initAccessibility.call(this);var a=this.getElement();goog.asserts.assert(a,"The DOM element for the tree cannot be null.");goog.a11y.aria.setRole(a,"tree");goog.a11y.aria.setState(a,"labelledby",this.getLabelElement().id)};\ngoog.ui.tree.TreeControl.prototype.enterDocument=function(){goog.ui.tree.TreeControl.superClass_.enterDocument.call(this);var a=this.getElement();a.className=this.getConfig().cssRoot;a.setAttribute("hideFocus","true");this.attachEvents_();this.initAccessibility()};goog.ui.tree.TreeControl.prototype.exitDocument=function(){goog.ui.tree.TreeControl.superClass_.exitDocument.call(this);this.detachEvents_()};\ngoog.ui.tree.TreeControl.prototype.attachEvents_=function(){var a=this.getElement();a.tabIndex=0;var b=this.keyHandler_=new goog.events.KeyHandler(a),c=this.focusHandler_=new goog.events.FocusHandler(a);this.getHandler().listen(c,goog.events.FocusHandler.EventType.FOCUSOUT,this.handleBlur_).listen(c,goog.events.FocusHandler.EventType.FOCUSIN,this.handleFocus_).listen(b,goog.events.KeyHandler.EventType.KEY,this.handleKeyEvent).listen(a,goog.events.EventType.MOUSEDOWN,this.handleMouseEvent_).listen(a,\ngoog.events.EventType.CLICK,this.handleMouseEvent_).listen(a,goog.events.EventType.DBLCLICK,this.handleMouseEvent_)};goog.ui.tree.TreeControl.prototype.detachEvents_=function(){this.keyHandler_.dispose();this.keyHandler_=null;this.focusHandler_.dispose();this.focusHandler_=null};\ngoog.ui.tree.TreeControl.prototype.handleMouseEvent_=function(a){goog.log.fine(this.logger_,"Received event "+a.type);var b=this.getNodeFromEvent_(a);if(b)switch(a.type){case goog.events.EventType.MOUSEDOWN:b.onMouseDown(a);break;case goog.events.EventType.CLICK:b.onClick_(a);break;case goog.events.EventType.DBLCLICK:b.onDoubleClick_(a)}};\ngoog.ui.tree.TreeControl.prototype.handleKeyEvent=function(a){var b;(b=this.typeAhead_.handleNavigation(a)||this.selectedItem_&&this.selectedItem_.onKeyDown(a)||this.typeAhead_.handleTypeAheadChar(a))&&a.preventDefault();return b};goog.ui.tree.TreeControl.prototype.getNodeFromEvent_=function(a){for(var b=a.target;null!=b;){if(a=goog.ui.tree.BaseNode.allNodes[b.id])return a;if(b==this.getElement())break;b=b.parentNode}return null};\ngoog.ui.tree.TreeControl.prototype.createNode=function(a){return new goog.ui.tree.TreeNode(a||goog.html.SafeHtml.EMPTY,this.getConfig(),this.getDomHelper())};goog.ui.tree.TreeControl.prototype.setNode=function(a){this.typeAhead_.setNodeInMap(a)};goog.ui.tree.TreeControl.prototype.removeNode=function(a){this.typeAhead_.removeNodeFromMap(a)};goog.ui.tree.TreeControl.prototype.clearTypeAhead=function(){this.typeAhead_.clear()};goog.ui.tree.TreeControl.defaultConfig=goog.ui.tree.BaseNode.defaultConfig;goog.date={};goog.i18n.DateTimeSymbols_en_ISO={ERAS:["BC","AD"],ERANAMES:["Before Christ","Anno Domini"],NARROWMONTHS:"JFMAMJJASOND".split(""),STANDALONENARROWMONTHS:"JFMAMJJASOND".split(""),MONTHS:"January February March April May June July August September October November December".split(" "),STANDALONEMONTHS:"January February March April May June July August September October November December".split(" "),SHORTMONTHS:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),STANDALONESHORTMONTHS:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),\nWEEKDAYS:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),STANDALONEWEEKDAYS:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),SHORTWEEKDAYS:"Sun Mon Tue Wed Thu Fri Sat".split(" "),STANDALONESHORTWEEKDAYS:"Sun Mon Tue Wed Thu Fri Sat".split(" "),NARROWWEEKDAYS:"SMTWTFS".split(""),STANDALONENARROWWEEKDAYS:"SMTWTFS".split(""),SHORTQUARTERS:["Q1","Q2","Q3","Q4"],QUARTERS:["1st quarter","2nd quarter","3rd quarter","4th quarter"],AMPMS:["AM","PM"],DATEFORMATS:["EEEE, y MMMM dd",\n"y MMMM d","y MMM d","yyyy-MM-dd"],TIMEFORMATS:["HH:mm:ss v","HH:mm:ss z","HH:mm:ss","HH:mm"],DATETIMEFORMATS:["{1} \'at\' {0}","{1} \'at\' {0}","{1}, {0}","{1}, {0}"],AVAILABLEFORMATS:{Md:"M/d",MMMMd:"MMMM d",MMMd:"MMM d"},FIRSTDAYOFWEEK:0,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:3};\ngoog.i18n.DateTimeSymbols_af={ERAS:["v.C.","n.C."],ERANAMES:["voor Christus","na Christus"],NARROWMONTHS:"JFMAMJJASOND".split(""),STANDALONENARROWMONTHS:"JFMAMJJASOND".split(""),MONTHS:"Januarie Februarie Maart April Mei Junie Julie Augustus September Oktober November Desember".split(" "),STANDALONEMONTHS:"Januarie Februarie Maart April Mei Junie Julie Augustus September Oktober November Desember".split(" "),SHORTMONTHS:"Jan. Feb. Mrt. Apr. Mei Jun. Jul. Aug. Sep. Okt. Nov. Des.".split(" "),STANDALONESHORTMONTHS:"Jan. Feb. Mrt. Apr. Mei Jun. Jul. Aug. Sep. Okt. Nov. Des.".split(" "),\nWEEKDAYS:"Sondag Maandag Dinsdag Woensdag Donderdag Vrydag Saterdag".split(" "),STANDALONEWEEKDAYS:"Sondag Maandag Dinsdag Woensdag Donderdag Vrydag Saterdag".split(" "),SHORTWEEKDAYS:"So. Ma. Di. Wo. Do. Vr. Sa.".split(" "),STANDALONESHORTWEEKDAYS:"So. Ma. Di. Wo. Do. Vr. Sa.".split(" "),NARROWWEEKDAYS:"SMDWDVS".split(""),STANDALONENARROWWEEKDAYS:"SMDWDVS".split(""),SHORTQUARTERS:["K1","K2","K3","K4"],QUARTERS:["1ste kwartaal","2de kwartaal","3de kwartaal","4de kwartaal"],AMPMS:["vm.","nm."],DATEFORMATS:["EEEE, dd MMMM y",\n"dd MMMM y","dd MMM y","y-MM-dd"],TIMEFORMATS:["h:mm:ss a zzzz","h:mm:ss a z","h:mm:ss a","h:mm a"],DATETIMEFORMATS:["{1} {0}","{1} {0}","{1} {0}","{1} {0}"],FIRSTDAYOFWEEK:6,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:5};\ngoog.i18n.DateTimeSymbols_am={ERAS:["\\u12d3/\\u12d3","\\u12d3/\\u121d"],ERANAMES:["\\u12d3\\u1218\\u1270 \\u12d3\\u1208\\u121d","\\u12d3\\u1218\\u1270 \\u121d\\u1215\\u1228\\u1275"],NARROWMONTHS:"\\u1303\\u134c\\u121b\\u12a4\\u121c\\u1301\\u1301\\u12a6\\u1234\\u12a6\\u1296\\u12f2".split(""),STANDALONENARROWMONTHS:"\\u1303\\u134c\\u121b\\u12a4\\u121c\\u1301\\u1301\\u12a6\\u1234\\u12a6\\u1296\\u12f2".split(""),MONTHS:"\\u1303\\u1295\\u12e9\\u12c8\\u122a \\u134c\\u1265\\u1229\\u12c8\\u122a \\u121b\\u122d\\u127d \\u12a4\\u1355\\u122a\\u120d \\u121c\\u12ed \\u1301\\u1295 \\u1301\\u120b\\u12ed \\u12a6\\u1308\\u1235\\u1275 \\u1234\\u1355\\u1274\\u121d\\u1260\\u122d \\u12a6\\u12ad\\u1276\\u1260\\u122d \\u1296\\u126c\\u121d\\u1260\\u122d \\u12f2\\u1234\\u121d\\u1260\\u122d".split(" "),\nSTANDALONEMONTHS:"\\u1303\\u1295\\u12e9\\u12c8\\u122a \\u134c\\u1265\\u1229\\u12c8\\u122a \\u121b\\u122d\\u127d \\u12a4\\u1355\\u122a\\u120d \\u121c\\u12ed \\u1301\\u1295 \\u1301\\u120b\\u12ed \\u12a6\\u1308\\u1235\\u1275 \\u1234\\u1355\\u1274\\u121d\\u1260\\u122d \\u12a6\\u12ad\\u1276\\u1260\\u122d \\u1296\\u126c\\u121d\\u1260\\u122d \\u12f2\\u1234\\u121d\\u1260\\u122d".split(" "),SHORTMONTHS:"\\u1303\\u1295\\u12e9 \\u134c\\u1265\\u1229 \\u121b\\u122d\\u127d \\u12a4\\u1355\\u122a \\u121c\\u12ed \\u1301\\u1295 \\u1301\\u120b\\u12ed \\u12a6\\u1308\\u1235 \\u1234\\u1355\\u1274 \\u12a6\\u12ad\\u1276 \\u1296\\u126c\\u121d \\u12f2\\u1234\\u121d".split(" "),\nSTANDALONESHORTMONTHS:"\\u1303\\u1295\\u12e9 \\u134c\\u1265\\u1229 \\u121b\\u122d\\u127d \\u12a4\\u1355\\u122a \\u121c\\u12ed \\u1301\\u1295 \\u1301\\u120b\\u12ed \\u12a6\\u1308\\u1235 \\u1234\\u1355\\u1274 \\u12a6\\u12ad\\u1276 \\u1296\\u126c\\u121d \\u12f2\\u1234\\u121d".split(" "),WEEKDAYS:"\\u12a5\\u1211\\u12f5 \\u1230\\u129e \\u121b\\u12ad\\u1230\\u129e \\u1228\\u1261\\u12d5 \\u1210\\u1219\\u1235 \\u12d3\\u122d\\u1265 \\u1245\\u12f3\\u121c".split(" "),STANDALONEWEEKDAYS:"\\u12a5\\u1211\\u12f5 \\u1230\\u129e \\u121b\\u12ad\\u1230\\u129e \\u1228\\u1261\\u12d5 \\u1210\\u1219\\u1235 \\u12d3\\u122d\\u1265 \\u1245\\u12f3\\u121c".split(" "),\nSHORTWEEKDAYS:"\\u12a5\\u1211\\u12f5 \\u1230\\u129e \\u121b\\u12ad\\u1230 \\u1228\\u1261\\u12d5 \\u1210\\u1219\\u1235 \\u12d3\\u122d\\u1265 \\u1245\\u12f3\\u121c".split(" "),STANDALONESHORTWEEKDAYS:"\\u12a5\\u1211\\u12f5 \\u1230\\u129e \\u121b\\u12ad\\u1230 \\u1228\\u1261\\u12d5 \\u1210\\u1219\\u1235 \\u12d3\\u122d\\u1265 \\u1245\\u12f3\\u121c".split(" "),NARROWWEEKDAYS:"\\u12a5\\u1230\\u121b\\u1228\\u1210\\u12d3\\u1245".split(""),STANDALONENARROWWEEKDAYS:"\\u12a5\\u1230\\u121b\\u1228\\u1210\\u12d3\\u1245".split(""),SHORTQUARTERS:["\\u1229\\u12651","\\u1229\\u12652",\n"\\u1229\\u12653","\\u1229\\u12654"],QUARTERS:["1\\u129b\\u12cd \\u1229\\u1265","2\\u129b\\u12cd \\u1229\\u1265","3\\u129b\\u12cd \\u1229\\u1265","4\\u129b\\u12cd \\u1229\\u1265"],AMPMS:["\\u1325\\u12cb\\u1275","\\u12a8\\u1230\\u12d3\\u1275"],DATEFORMATS:["EEEE \\u1363d MMMM y","d MMMM y","d MMM y","dd/MM/y"],TIMEFORMATS:["h:mm:ss a zzzz","h:mm:ss a z","h:mm:ss a","h:mm a"],DATETIMEFORMATS:["{1} {0}","{1} {0}","{1} {0}","{1} {0}"],FIRSTDAYOFWEEK:6,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:5};\ngoog.i18n.DateTimeSymbols_ar={ZERODIGIT:1632,ERAS:["\\u0642.\\u0645","\\u0645"],ERANAMES:["\\u0642\\u0628\\u0644 \\u0627\\u0644\\u0645\\u064a\\u0644\\u0627\\u062f","\\u0645\\u064a\\u0644\\u0627\\u062f\\u064a"],NARROWMONTHS:"\\u064a\\u0641\\u0645\\u0623\\u0648\\u0646\\u0644\\u063a\\u0633\\u0643\\u0628\\u062f".split(""),STANDALONENARROWMONTHS:"\\u064a\\u0641\\u0645\\u0623\\u0648\\u0646\\u0644\\u063a\\u0633\\u0643\\u0628\\u062f".split(""),MONTHS:"\\u064a\\u0646\\u0627\\u064a\\u0631 \\u0641\\u0628\\u0631\\u0627\\u064a\\u0631 \\u0645\\u0627\\u0631\\u0633 \\u0623\\u0628\\u0631\\u064a\\u0644 \\u0645\\u0627\\u064a\\u0648 \\u064a\\u0648\\u0646\\u064a\\u0648 \\u064a\\u0648\\u0644\\u064a\\u0648 \\u0623\\u063a\\u0633\\u0637\\u0633 \\u0633\\u0628\\u062a\\u0645\\u0628\\u0631 \\u0623\\u0643\\u062a\\u0648\\u0628\\u0631 \\u0646\\u0648\\u0641\\u0645\\u0628\\u0631 \\u062f\\u064a\\u0633\\u0645\\u0628\\u0631".split(" "),\nSTANDALONEMONTHS:"\\u064a\\u0646\\u0627\\u064a\\u0631 \\u0641\\u0628\\u0631\\u0627\\u064a\\u0631 \\u0645\\u0627\\u0631\\u0633 \\u0623\\u0628\\u0631\\u064a\\u0644 \\u0645\\u0627\\u064a\\u0648 \\u064a\\u0648\\u0646\\u064a\\u0648 \\u064a\\u0648\\u0644\\u064a\\u0648 \\u0623\\u063a\\u0633\\u0637\\u0633 \\u0633\\u0628\\u062a\\u0645\\u0628\\u0631 \\u0623\\u0643\\u062a\\u0648\\u0628\\u0631 \\u0646\\u0648\\u0641\\u0645\\u0628\\u0631 \\u062f\\u064a\\u0633\\u0645\\u0628\\u0631".split(" "),SHORTMONTHS:"\\u064a\\u0646\\u0627\\u064a\\u0631 \\u0641\\u0628\\u0631\\u0627\\u064a\\u0631 \\u0645\\u0627\\u0631\\u0633 \\u0623\\u0628\\u0631\\u064a\\u0644 \\u0645\\u0627\\u064a\\u0648 \\u064a\\u0648\\u0646\\u064a\\u0648 \\u064a\\u0648\\u0644\\u064a\\u0648 \\u0623\\u063a\\u0633\\u0637\\u0633 \\u0633\\u0628\\u062a\\u0645\\u0628\\u0631 \\u0623\\u0643\\u062a\\u0648\\u0628\\u0631 \\u0646\\u0648\\u0641\\u0645\\u0628\\u0631 \\u062f\\u064a\\u0633\\u0645\\u0628\\u0631".split(" "),\nSTANDALONESHORTMONTHS:"\\u064a\\u0646\\u0627\\u064a\\u0631 \\u0641\\u0628\\u0631\\u0627\\u064a\\u0631 \\u0645\\u0627\\u0631\\u0633 \\u0623\\u0628\\u0631\\u064a\\u0644 \\u0645\\u0627\\u064a\\u0648 \\u064a\\u0648\\u0646\\u064a\\u0648 \\u064a\\u0648\\u0644\\u064a\\u0648 \\u0623\\u063a\\u0633\\u0637\\u0633 \\u0633\\u0628\\u062a\\u0645\\u0628\\u0631 \\u0623\\u0643\\u062a\\u0648\\u0628\\u0631 \\u0646\\u0648\\u0641\\u0645\\u0628\\u0631 \\u062f\\u064a\\u0633\\u0645\\u0628\\u0631".split(" "),WEEKDAYS:"\\u0627\\u0644\\u0623\\u062d\\u062f \\u0627\\u0644\\u0627\\u062b\\u0646\\u064a\\u0646 \\u0627\\u0644\\u062b\\u0644\\u0627\\u062b\\u0627\\u0621 \\u0627\\u0644\\u0623\\u0631\\u0628\\u0639\\u0627\\u0621 \\u0627\\u0644\\u062e\\u0645\\u064a\\u0633 \\u0627\\u0644\\u062c\\u0645\\u0639\\u0629 \\u0627\\u0644\\u0633\\u0628\\u062a".split(" "),\nSTANDALONEWEEKDAYS:"\\u0627\\u0644\\u0623\\u062d\\u062f \\u0627\\u0644\\u0627\\u062b\\u0646\\u064a\\u0646 \\u0627\\u0644\\u062b\\u0644\\u0627\\u062b\\u0627\\u0621 \\u0627\\u0644\\u0623\\u0631\\u0628\\u0639\\u0627\\u0621 \\u0627\\u0644\\u062e\\u0645\\u064a\\u0633 \\u0627\\u0644\\u062c\\u0645\\u0639\\u0629 \\u0627\\u0644\\u0633\\u0628\\u062a".split(" "),SHORTWEEKDAYS:"\\u0627\\u0644\\u0623\\u062d\\u062f \\u0627\\u0644\\u0627\\u062b\\u0646\\u064a\\u0646 \\u0627\\u0644\\u062b\\u0644\\u0627\\u062b\\u0627\\u0621 \\u0627\\u0644\\u0623\\u0631\\u0628\\u0639\\u0627\\u0621 \\u0627\\u0644\\u062e\\u0645\\u064a\\u0633 \\u0627\\u0644\\u062c\\u0645\\u0639\\u0629 \\u0627\\u0644\\u0633\\u0628\\u062a".split(" "),\nSTANDALONESHORTWEEKDAYS:"\\u0627\\u0644\\u0623\\u062d\\u062f \\u0627\\u0644\\u0627\\u062b\\u0646\\u064a\\u0646 \\u0627\\u0644\\u062b\\u0644\\u0627\\u062b\\u0627\\u0621 \\u0627\\u0644\\u0623\\u0631\\u0628\\u0639\\u0627\\u0621 \\u0627\\u0644\\u062e\\u0645\\u064a\\u0633 \\u0627\\u0644\\u062c\\u0645\\u0639\\u0629 \\u0627\\u0644\\u0633\\u0628\\u062a".split(" "),NARROWWEEKDAYS:"\\u062d\\u0646\\u062b\\u0631\\u062e\\u062c\\u0633".split(""),STANDALONENARROWWEEKDAYS:"\\u062d\\u0646\\u062b\\u0631\\u062e\\u062c\\u0633".split(""),SHORTQUARTERS:["\\u0627\\u0644\\u0631\\u0628\\u0639 \\u0627\\u0644\\u0623\\u0648\\u0644",\n"\\u0627\\u0644\\u0631\\u0628\\u0639 \\u0627\\u0644\\u062b\\u0627\\u0646\\u064a","\\u0627\\u0644\\u0631\\u0628\\u0639 \\u0627\\u0644\\u062b\\u0627\\u0644\\u062b","\\u0627\\u0644\\u0631\\u0628\\u0639 \\u0627\\u0644\\u0631\\u0627\\u0628\\u0639"],QUARTERS:["\\u0627\\u0644\\u0631\\u0628\\u0639 \\u0627\\u0644\\u0623\\u0648\\u0644","\\u0627\\u0644\\u0631\\u0628\\u0639 \\u0627\\u0644\\u062b\\u0627\\u0646\\u064a","\\u0627\\u0644\\u0631\\u0628\\u0639 \\u0627\\u0644\\u062b\\u0627\\u0644\\u062b","\\u0627\\u0644\\u0631\\u0628\\u0639 \\u0627\\u0644\\u0631\\u0627\\u0628\\u0639"],AMPMS:["\\u0635",\n"\\u0645"],DATEFORMATS:["EEEE\\u060c d MMMM\\u060c y","d MMMM\\u060c y","dd\\u200f/MM\\u200f/y","d\\u200f/M\\u200f/y"],TIMEFORMATS:["h:mm:ss a zzzz","h:mm:ss a z","h:mm:ss a","h:mm a"],DATETIMEFORMATS:["{1} {0}","{1} {0}","{1} {0}","{1} {0}"],FIRSTDAYOFWEEK:5,WEEKENDRANGE:[4,5],FIRSTWEEKCUTOFFDAY:4};\ngoog.i18n.DateTimeSymbols_az={ERAS:["e.\\u0259.","b.e."],ERANAMES:["eram\\u0131zdan \\u0259vv\\u0259l","eram\\u0131z"],NARROWMONTHS:"1 2 3 4 5 6 7 8 9 10 11 12".split(" "),STANDALONENARROWMONTHS:"1 2 3 4 5 6 7 8 9 10 11 12".split(" "),MONTHS:"yanvar fevral mart aprel may iyun iyul avqust sentyabr oktyabr noyabr dekabr".split(" "),STANDALONEMONTHS:"Yanvar Fevral Mart Aprel May \\u0130yun \\u0130yul Avqust Sentyabr Oktyabr Noyabr Dekabr".split(" "),SHORTMONTHS:"yan fev mar apr may iyn iyl avq sen okt noy dek".split(" "),\nSTANDALONESHORTMONTHS:"yan fev mar apr may iyn iyl avq sen okt noy dek".split(" "),WEEKDAYS:"bazar;bazar ert\\u0259si;\\u00e7\\u0259r\\u015f\\u0259nb\\u0259 ax\\u015fam\\u0131;\\u00e7\\u0259r\\u015f\\u0259nb\\u0259;c\\u00fcm\\u0259 ax\\u015fam\\u0131;c\\u00fcm\\u0259;\\u015f\\u0259nb\\u0259".split(";"),STANDALONEWEEKDAYS:"bazar;bazar ert\\u0259si;\\u00e7\\u0259r\\u015f\\u0259nb\\u0259 ax\\u015fam\\u0131;\\u00e7\\u0259r\\u015f\\u0259nb\\u0259;c\\u00fcm\\u0259 ax\\u015fam\\u0131;c\\u00fcm\\u0259;\\u015f\\u0259nb\\u0259".split(";"),SHORTWEEKDAYS:"B. B.E. \\u00c7.A. \\u00c7. C.A. C. \\u015e.".split(" "),\nSTANDALONESHORTWEEKDAYS:"B. B.E. \\u00c7.A. \\u00c7. C.A. C. \\u015e.".split(" "),NARROWWEEKDAYS:"7123456".split(""),STANDALONENARROWWEEKDAYS:"7123456".split(""),SHORTQUARTERS:["1-ci kv.","2-ci kv.","3-c\\u00fc kv.","4-c\\u00fc kv."],QUARTERS:["1-ci kvartal","2-ci kvartal","3-c\\u00fc kvartal","4-c\\u00fc kvartal"],AMPMS:["AM","PM"],DATEFORMATS:["d MMMM y, EEEE","d MMMM y","d MMM y","dd.MM.yy"],TIMEFORMATS:["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],DATETIMEFORMATS:["{1} {0}","{1} {0}","{1} {0}","{1} {0}"],\nFIRSTDAYOFWEEK:0,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:6};\ngoog.i18n.DateTimeSymbols_be={ERAS:["\\u0434\\u0430 \\u043d.\\u044d.","\\u043d.\\u044d."],ERANAMES:["\\u0434\\u0430 \\u043d\\u0430\\u0448\\u0430\\u0439 \\u044d\\u0440\\u044b","\\u043d\\u0430\\u0448\\u0430\\u0439 \\u044d\\u0440\\u044b"],NARROWMONTHS:"\\u0441\\u043b\\u0441\\u043a\\u043c\\u0447\\u043b\\u0436\\u0432\\u043a\\u043b\\u0441".split(""),STANDALONENARROWMONTHS:"\\u0441\\u043b\\u0441\\u043a\\u043c\\u0447\\u043b\\u0436\\u0432\\u043a\\u043b\\u0441".split(""),MONTHS:"\\u0441\\u0442\\u0443\\u0434\\u0437\\u0435\\u043d\\u044f \\u043b\\u044e\\u0442\\u0430\\u0433\\u0430 \\u0441\\u0430\\u043a\\u0430\\u0432\\u0456\\u043a\\u0430 \\u043a\\u0440\\u0430\\u0441\\u0430\\u0432\\u0456\\u043a\\u0430 \\u043c\\u0430\\u044f \\u0447\\u044d\\u0440\\u0432\\u0435\\u043d\\u044f \\u043b\\u0456\\u043f\\u0435\\u043d\\u044f \\u0436\\u043d\\u0456\\u045e\\u043d\\u044f \\u0432\\u0435\\u0440\\u0430\\u0441\\u043d\\u044f \\u043a\\u0430\\u0441\\u0442\\u0440\\u044b\\u0447\\u043d\\u0456\\u043a\\u0430 \\u043b\\u0456\\u0441\\u0442\\u0430\\u043f\\u0430\\u0434\\u0430 \\u0441\\u043d\\u0435\\u0436\\u043d\\u044f".split(" "),STANDALONEMONTHS:"\\u0441\\u0442\\u0443\\u0434\\u0437\\u0435\\u043d\\u044c \\u043b\\u044e\\u0442\\u044b \\u0441\\u0430\\u043a\\u0430\\u0432\\u0456\\u043a \\u043a\\u0440\\u0430\\u0441\\u0430\\u0432\\u0456\\u043a \\u043c\\u0430\\u0439 \\u0447\\u044d\\u0440\\u0432\\u0435\\u043d\\u044c \\u043b\\u0456\\u043f\\u0435\\u043d\\u044c \\u0436\\u043d\\u0456\\u0432\\u0435\\u043d\\u044c \\u0432\\u0435\\u0440\\u0430\\u0441\\u0435\\u043d\\u044c \\u043a\\u0430\\u0441\\u0442\\u0440\\u044b\\u0447\\u043d\\u0456\\u043a \\u043b\\u0456\\u0441\\u0442\\u0430\\u043f\\u0430\\u0434 \\u0441\\u043d\\u0435\\u0436\\u0430\\u043d\\u044c".split(" "),\nSHORTMONTHS:"\\u0441\\u0442\\u0443 \\u043b\\u044e\\u0442 \\u0441\\u0430\\u043a \\u043a\\u0440\\u0430 \\u043c\\u0430\\u044f \\u0447\\u044d\\u0440 \\u043b\\u0456\\u043f \\u0436\\u043d\\u0456 \\u0432\\u0435\\u0440 \\u043a\\u0430\\u0441 \\u043b\\u0456\\u0441 \\u0441\\u043d\\u0435".split(" "),STANDALONESHORTMONTHS:"\\u0441\\u0442\\u0443 \\u043b\\u044e\\u0442 \\u0441\\u0430\\u043a \\u043a\\u0440\\u0430 \\u043c\\u0430\\u0439 \\u0447\\u044d\\u0440 \\u043b\\u0456\\u043f \\u0436\\u043d\\u0456 \\u0432\\u0435\\u0440 \\u043a\\u0430\\u0441 \\u043b\\u0456\\u0441 \\u0441\\u043d\\u0435".split(" "),\nWEEKDAYS:"\\u043d\\u044f\\u0434\\u0437\\u0435\\u043b\\u044f \\u043f\\u0430\\u043d\\u044f\\u0434\\u0437\\u0435\\u043b\\u0430\\u043a \\u0430\\u045e\\u0442\\u043e\\u0440\\u0430\\u043a \\u0441\\u0435\\u0440\\u0430\\u0434\\u0430 \\u0447\\u0430\\u0446\\u0432\\u0435\\u0440 \\u043f\\u044f\\u0442\\u043d\\u0456\\u0446\\u0430 \\u0441\\u0443\\u0431\\u043e\\u0442\\u0430".split(" "),STANDALONEWEEKDAYS:"\\u043d\\u044f\\u0434\\u0437\\u0435\\u043b\\u044f \\u043f\\u0430\\u043d\\u044f\\u0434\\u0437\\u0435\\u043b\\u0430\\u043a \\u0430\\u045e\\u0442\\u043e\\u0440\\u0430\\u043a \\u0441\\u0435\\u0440\\u0430\\u0434\\u0430 \\u0447\\u0430\\u0446\\u0432\\u0435\\u0440 \\u043f\\u044f\\u0442\\u043d\\u0456\\u0446\\u0430 \\u0441\\u0443\\u0431\\u043e\\u0442\\u0430".split(" "),\nSHORTWEEKDAYS:"\\u043d\\u0434 \\u043f\\u043d \\u0430\\u045e \\u0441\\u0440 \\u0447\\u0446 \\u043f\\u0442 \\u0441\\u0431".split(" "),STANDALONESHORTWEEKDAYS:"\\u043d\\u0434 \\u043f\\u043d \\u0430\\u045e \\u0441\\u0440 \\u0447\\u0446 \\u043f\\u0442 \\u0441\\u0431".split(" "),NARROWWEEKDAYS:"\\u043d\\u043f\\u0430\\u0441\\u0447\\u043f\\u0441".split(""),STANDALONENARROWWEEKDAYS:"\\u043d\\u043f\\u0430\\u0441\\u0447\\u043f\\u0441".split(""),SHORTQUARTERS:["1-\\u0448\\u044b \\u043a\\u0432.","2-\\u0433\\u0456 \\u043a\\u0432.","3-\\u0446\\u0456 \\u043a\\u0432.",\n"4-\\u0442\\u044b \\u043a\\u0432."],QUARTERS:["1-\\u0448\\u044b \\u043a\\u0432\\u0430\\u0440\\u0442\\u0430\\u043b","2-\\u0433\\u0456 \\u043a\\u0432\\u0430\\u0440\\u0442\\u0430\\u043b","3-\\u0446\\u0456 \\u043a\\u0432\\u0430\\u0440\\u0442\\u0430\\u043b","4-\\u0442\\u044b \\u043a\\u0432\\u0430\\u0440\\u0442\\u0430\\u043b"],AMPMS:["\\u0434\\u0430 \\u043f\\u0430\\u045e\\u0434\\u043d\\u044f","\\u043f\\u0430\\u0441\\u043b\\u044f \\u043f\\u0430\\u045e\\u0434\\u043d\\u044f"],DATEFORMATS:["EEEE, d MMMM y","d MMMM y","d.M.y","d.M.yy"],TIMEFORMATS:["HH.mm.ss zzzz",\n"HH.mm.ss z","HH.mm.ss","HH.mm"],DATETIMEFORMATS:["{1} \'\\u0443\' {0}","{1} \'\\u0443\' {0}","{1}, {0}","{1}, {0}"],FIRSTDAYOFWEEK:0,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:6};\ngoog.i18n.DateTimeSymbols_bg={ERAS:["\\u043f\\u0440.\\u0425\\u0440.","\\u0441\\u043b.\\u0425\\u0440."],ERANAMES:["\\u043f\\u0440\\u0435\\u0434\\u0438 \\u0425\\u0440\\u0438\\u0441\\u0442\\u0430","\\u0441\\u043b\\u0435\\u0434 \\u0425\\u0440\\u0438\\u0441\\u0442\\u0430"],NARROWMONTHS:"\\u044f\\u0444\\u043c\\u0430\\u043c\\u044e\\u044e\\u0430\\u0441\\u043e\\u043d\\u0434".split(""),STANDALONENARROWMONTHS:"\\u044f\\u0444\\u043c\\u0430\\u043c\\u044e\\u044e\\u0430\\u0441\\u043e\\u043d\\u0434".split(""),MONTHS:"\\u044f\\u043d\\u0443\\u0430\\u0440\\u0438 \\u0444\\u0435\\u0432\\u0440\\u0443\\u0430\\u0440\\u0438 \\u043c\\u0430\\u0440\\u0442 \\u0430\\u043f\\u0440\\u0438\\u043b \\u043c\\u0430\\u0439 \\u044e\\u043d\\u0438 \\u044e\\u043b\\u0438 \\u0430\\u0432\\u0433\\u0443\\u0441\\u0442 \\u0441\\u0435\\u043f\\u0442\\u0435\\u043c\\u0432\\u0440\\u0438 \\u043e\\u043a\\u0442\\u043e\\u043c\\u0432\\u0440\\u0438 \\u043d\\u043e\\u0435\\u043c\\u0432\\u0440\\u0438 \\u0434\\u0435\\u043a\\u0435\\u043c\\u0432\\u0440\\u0438".split(" "),\nSTANDALONEMONTHS:"\\u044f\\u043d\\u0443\\u0430\\u0440\\u0438 \\u0444\\u0435\\u0432\\u0440\\u0443\\u0430\\u0440\\u0438 \\u043c\\u0430\\u0440\\u0442 \\u0430\\u043f\\u0440\\u0438\\u043b \\u043c\\u0430\\u0439 \\u044e\\u043d\\u0438 \\u044e\\u043b\\u0438 \\u0430\\u0432\\u0433\\u0443\\u0441\\u0442 \\u0441\\u0435\\u043f\\u0442\\u0435\\u043c\\u0432\\u0440\\u0438 \\u043e\\u043a\\u0442\\u043e\\u043c\\u0432\\u0440\\u0438 \\u043d\\u043e\\u0435\\u043c\\u0432\\u0440\\u0438 \\u0434\\u0435\\u043a\\u0435\\u043c\\u0432\\u0440\\u0438".split(" "),SHORTMONTHS:"\\u044f\\u043d\\u0443 \\u0444\\u0435\\u0432 \\u043c\\u0430\\u0440\\u0442 \\u0430\\u043f\\u0440 \\u043c\\u0430\\u0439 \\u044e\\u043d\\u0438 \\u044e\\u043b\\u0438 \\u0430\\u0432\\u0433 \\u0441\\u0435\\u043f \\u043e\\u043a\\u0442 \\u043d\\u043e\\u0435 \\u0434\\u0435\\u043a".split(" "),\nSTANDALONESHORTMONTHS:"\\u044f\\u043d\\u0443 \\u0444\\u0435\\u0432 \\u043c\\u0430\\u0440\\u0442 \\u0430\\u043f\\u0440 \\u043c\\u0430\\u0439 \\u044e\\u043d\\u0438 \\u044e\\u043b\\u0438 \\u0430\\u0432\\u0433 \\u0441\\u0435\\u043f \\u043e\\u043a\\u0442 \\u043d\\u043e\\u0435 \\u0434\\u0435\\u043a".split(" "),WEEKDAYS:"\\u043d\\u0435\\u0434\\u0435\\u043b\\u044f \\u043f\\u043e\\u043d\\u0435\\u0434\\u0435\\u043b\\u043d\\u0438\\u043a \\u0432\\u0442\\u043e\\u0440\\u043d\\u0438\\u043a \\u0441\\u0440\\u044f\\u0434\\u0430 \\u0447\\u0435\\u0442\\u0432\\u044a\\u0440\\u0442\\u044a\\u043a \\u043f\\u0435\\u0442\\u044a\\u043a \\u0441\\u044a\\u0431\\u043e\\u0442\\u0430".split(" "),\nSTANDALONEWEEKDAYS:"\\u043d\\u0435\\u0434\\u0435\\u043b\\u044f \\u043f\\u043e\\u043d\\u0435\\u0434\\u0435\\u043b\\u043d\\u0438\\u043a \\u0432\\u0442\\u043e\\u0440\\u043d\\u0438\\u043a \\u0441\\u0440\\u044f\\u0434\\u0430 \\u0447\\u0435\\u0442\\u0432\\u044a\\u0440\\u0442\\u044a\\u043a \\u043f\\u0435\\u0442\\u044a\\u043a \\u0441\\u044a\\u0431\\u043e\\u0442\\u0430".split(" "),SHORTWEEKDAYS:"\\u043d\\u0434 \\u043f\\u043d \\u0432\\u0442 \\u0441\\u0440 \\u0447\\u0442 \\u043f\\u0442 \\u0441\\u0431".split(" "),STANDALONESHORTWEEKDAYS:"\\u043d\\u0434 \\u043f\\u043d \\u0432\\u0442 \\u0441\\u0440 \\u0447\\u0442 \\u043f\\u0442 \\u0441\\u0431".split(" "),\nNARROWWEEKDAYS:"\\u043d\\u043f\\u0432\\u0441\\u0447\\u043f\\u0441".split(""),STANDALONENARROWWEEKDAYS:"\\u043d\\u043f\\u0432\\u0441\\u0447\\u043f\\u0441".split(""),SHORTQUARTERS:["1. \\u0442\\u0440\\u0438\\u043c.","2. \\u0442\\u0440\\u0438\\u043c.","3. \\u0442\\u0440\\u0438\\u043c.","4. \\u0442\\u0440\\u0438\\u043c."],QUARTERS:["1. \\u0442\\u0440\\u0438\\u043c\\u0435\\u0441\\u0435\\u0447\\u0438\\u0435","2. \\u0442\\u0440\\u0438\\u043c\\u0435\\u0441\\u0435\\u0447\\u0438\\u0435","3. \\u0442\\u0440\\u0438\\u043c\\u0435\\u0441\\u0435\\u0447\\u0438\\u0435","4. \\u0442\\u0440\\u0438\\u043c\\u0435\\u0441\\u0435\\u0447\\u0438\\u0435"],\nAMPMS:["\\u043f\\u0440.\\u043e\\u0431.","\\u0441\\u043b.\\u043e\\u0431."],DATEFORMATS:["EEEE, d MMMM y \'\\u0433\'.","d MMMM y \'\\u0433\'.","d.MM.y \'\\u0433\'.","d.MM.yy \'\\u0433\'."],TIMEFORMATS:["H:mm:ss zzzz","H:mm:ss z","H:mm:ss","H:mm"],DATETIMEFORMATS:["{1}, {0}","{1}, {0}","{1}, {0}","{1}, {0}"],FIRSTDAYOFWEEK:0,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:3};\ngoog.i18n.DateTimeSymbols_bn={ZERODIGIT:2534,ERAS:["\\u0996\\u09cd\\u09b0\\u09bf\\u09b8\\u09cd\\u099f\\u09aa\\u09c2\\u09b0\\u09cd\\u09ac","\\u0996\\u09c3\\u09b7\\u09cd\\u099f\\u09be\\u09ac\\u09cd\\u09a6"],ERANAMES:["\\u0996\\u09cd\\u09b0\\u09bf\\u09b8\\u09cd\\u099f\\u09aa\\u09c2\\u09b0\\u09cd\\u09ac","\\u0996\\u09c3\\u09b7\\u09cd\\u099f\\u09be\\u09ac\\u09cd\\u09a6"],NARROWMONTHS:"\\u099c\\u09be \\u09ab\\u09c7 \\u09ae\\u09be \\u098f \\u09ae\\u09c7 \\u099c\\u09c1\\u09a8 \\u099c\\u09c1 \\u0986 \\u09b8\\u09c7 \\u0985 \\u09a8 \\u09a1\\u09bf".split(" "),STANDALONENARROWMONTHS:"\\u099c\\u09be \\u09ab\\u09c7 \\u09ae\\u09be \\u098f \\u09ae\\u09c7 \\u099c\\u09c1\\u09a8 \\u099c\\u09c1 \\u0986 \\u09b8\\u09c7 \\u0985 \\u09a8 \\u09a1\\u09bf".split(" "),\nMONTHS:"\\u099c\\u09be\\u09a8\\u09c1\\u09af\\u09bc\\u09be\\u09b0\\u09c0 \\u09ab\\u09c7\\u09ac\\u09cd\\u09b0\\u09c1\\u09af\\u09bc\\u09be\\u09b0\\u09c0 \\u09ae\\u09be\\u09b0\\u09cd\\u099a \\u098f\\u09aa\\u09cd\\u09b0\\u09bf\\u09b2 \\u09ae\\u09c7 \\u099c\\u09c1\\u09a8 \\u099c\\u09c1\\u09b2\\u09be\\u0987 \\u0986\\u0997\\u09b8\\u09cd\\u099f \\u09b8\\u09c7\\u09aa\\u09cd\\u099f\\u09c7\\u09ae\\u09cd\\u09ac\\u09b0 \\u0985\\u0995\\u09cd\\u099f\\u09cb\\u09ac\\u09b0 \\u09a8\\u09ad\\u09c7\\u09ae\\u09cd\\u09ac\\u09b0 \\u09a1\\u09bf\\u09b8\\u09c7\\u09ae\\u09cd\\u09ac\\u09b0".split(" "),STANDALONEMONTHS:"\\u099c\\u09be\\u09a8\\u09c1\\u09af\\u09bc\\u09be\\u09b0\\u09c0 \\u09ab\\u09c7\\u09ac\\u09cd\\u09b0\\u09c1\\u09af\\u09bc\\u09be\\u09b0\\u09c0 \\u09ae\\u09be\\u09b0\\u09cd\\u099a \\u098f\\u09aa\\u09cd\\u09b0\\u09bf\\u09b2 \\u09ae\\u09c7 \\u099c\\u09c1\\u09a8 \\u099c\\u09c1\\u09b2\\u09be\\u0987 \\u0986\\u0997\\u09b8\\u09cd\\u099f \\u09b8\\u09c7\\u09aa\\u09cd\\u099f\\u09c7\\u09ae\\u09cd\\u09ac\\u09b0 \\u0985\\u0995\\u09cd\\u099f\\u09cb\\u09ac\\u09b0 \\u09a8\\u09ad\\u09c7\\u09ae\\u09cd\\u09ac\\u09b0 \\u09a1\\u09bf\\u09b8\\u09c7\\u09ae\\u09cd\\u09ac\\u09b0".split(" "),\nSHORTMONTHS:"\\u099c\\u09be\\u09a8\\u09c1\\u09af\\u09bc\\u09be\\u09b0\\u09c0 \\u09ab\\u09c7\\u09ac\\u09cd\\u09b0\\u09c1\\u09af\\u09bc\\u09be\\u09b0\\u09c0 \\u09ae\\u09be\\u09b0\\u09cd\\u099a \\u098f\\u09aa\\u09cd\\u09b0\\u09bf\\u09b2 \\u09ae\\u09c7 \\u099c\\u09c1\\u09a8 \\u099c\\u09c1\\u09b2\\u09be\\u0987 \\u0986\\u0997\\u09b8\\u09cd\\u099f \\u09b8\\u09c7\\u09aa\\u09cd\\u099f\\u09c7\\u09ae\\u09cd\\u09ac\\u09b0 \\u0985\\u0995\\u09cd\\u099f\\u09cb\\u09ac\\u09b0 \\u09a8\\u09ad\\u09c7\\u09ae\\u09cd\\u09ac\\u09b0 \\u09a1\\u09bf\\u09b8\\u09c7\\u09ae\\u09cd\\u09ac\\u09b0".split(" "),\nSTANDALONESHORTMONTHS:"\\u099c\\u09be\\u09a8\\u09c1\\u09af\\u09bc\\u09be\\u09b0\\u09c0 \\u09ab\\u09c7\\u09ac\\u09cd\\u09b0\\u09c1\\u09af\\u09bc\\u09be\\u09b0\\u09c0 \\u09ae\\u09be\\u09b0\\u09cd\\u099a \\u098f\\u09aa\\u09cd\\u09b0\\u09bf\\u09b2 \\u09ae\\u09c7 \\u099c\\u09c1\\u09a8 \\u099c\\u09c1\\u09b2\\u09be\\u0987 \\u0986\\u0997\\u09b8\\u09cd\\u099f \\u09b8\\u09c7\\u09aa\\u09cd\\u099f\\u09c7\\u09ae\\u09cd\\u09ac\\u09b0 \\u0985\\u0995\\u09cd\\u099f\\u09cb\\u09ac\\u09b0 \\u09a8\\u09ad\\u09c7\\u09ae\\u09cd\\u09ac\\u09b0 \\u09a1\\u09bf\\u09b8\\u09c7\\u09ae\\u09cd\\u09ac\\u09b0".split(" "),\nWEEKDAYS:"\\u09b0\\u09ac\\u09bf\\u09ac\\u09be\\u09b0 \\u09b8\\u09cb\\u09ae\\u09ac\\u09be\\u09b0 \\u09ae\\u0999\\u09cd\\u0997\\u09b2\\u09ac\\u09be\\u09b0 \\u09ac\\u09c1\\u09a7\\u09ac\\u09be\\u09b0 \\u09ac\\u09c3\\u09b9\\u09b8\\u09cd\\u09aa\\u09a4\\u09bf\\u09ac\\u09be\\u09b0 \\u09b6\\u09c1\\u0995\\u09cd\\u09b0\\u09ac\\u09be\\u09b0 \\u09b6\\u09a8\\u09bf\\u09ac\\u09be\\u09b0".split(" "),STANDALONEWEEKDAYS:"\\u09b0\\u09ac\\u09bf\\u09ac\\u09be\\u09b0 \\u09b8\\u09cb\\u09ae\\u09ac\\u09be\\u09b0 \\u09ae\\u0999\\u09cd\\u0997\\u09b2\\u09ac\\u09be\\u09b0 \\u09ac\\u09c1\\u09a7\\u09ac\\u09be\\u09b0 \\u09ac\\u09c3\\u09b9\\u09b7\\u09cd\\u09aa\\u09a4\\u09bf\\u09ac\\u09be\\u09b0 \\u09b6\\u09c1\\u0995\\u09cd\\u09b0\\u09ac\\u09be\\u09b0 \\u09b6\\u09a8\\u09bf\\u09ac\\u09be\\u09b0".split(" "),\nSHORTWEEKDAYS:"\\u09b0\\u09ac\\u09bf \\u09b8\\u09cb\\u09ae \\u09ae\\u0999\\u09cd\\u0997\\u09b2 \\u09ac\\u09c1\\u09a7 \\u09ac\\u09c3\\u09b9\\u09b8\\u09cd\\u09aa\\u09a4\\u09bf \\u09b6\\u09c1\\u0995\\u09cd\\u09b0 \\u09b6\\u09a8\\u09bf".split(" "),STANDALONESHORTWEEKDAYS:"\\u09b0\\u09ac\\u09bf \\u09b8\\u09cb\\u09ae \\u09ae\\u0999\\u09cd\\u0997\\u09b2 \\u09ac\\u09c1\\u09a7 \\u09ac\\u09c3\\u09b9\\u09b8\\u09cd\\u09aa\\u09a4\\u09bf \\u09b6\\u09c1\\u0995\\u09cd\\u09b0 \\u09b6\\u09a8\\u09bf".split(" "),NARROWWEEKDAYS:"\\u09b0 \\u09b8\\u09cb \\u09ae \\u09ac\\u09c1 \\u09ac\\u09c3 \\u09b6\\u09c1 \\u09b6".split(" "),\nSTANDALONENARROWWEEKDAYS:"\\u09b0 \\u09b8\\u09cb \\u09ae \\u09ac\\u09c1 \\u09ac\\u09c3 \\u09b6\\u09c1 \\u09b6".split(" "),SHORTQUARTERS:["Q1","Q2","Q3","Q4"],QUARTERS:["\\u09a4\\u09cd\\u09b0\\u09c8\\u09ae\\u09be\\u09b8\\u09bf\\u0995","\\u09a6\\u09cd\\u09ac\\u09bf\\u09a4\\u09c0\\u09af\\u09bc \\u09a4\\u09cd\\u09b0\\u09c8\\u09ae\\u09be\\u09b8\\u09bf\\u0995","\\u09a4\\u09c3\\u09a4\\u09c0\\u09af\\u09bc \\u09a4\\u09cd\\u09b0\\u09c8\\u09ae\\u09be\\u09b8\\u09bf\\u0995","\\u099a\\u09a4\\u09c1\\u09b0\\u09cd\\u09a5 \\u09a4\\u09cd\\u09b0\\u09c8\\u09ae\\u09be\\u09b8\\u09bf\\u0995"],\nAMPMS:["am","pm"],DATEFORMATS:["EEEE, d MMMM, y","d MMMM, y","d MMM, y","d/M/yy"],TIMEFORMATS:["h:mm:ss a zzzz","h:mm:ss a z","h:mm:ss a","h:mm a"],DATETIMEFORMATS:["{1} {0}","{1} {0}","{1} {0}","{1} {0}"],FIRSTDAYOFWEEK:4,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:3};\ngoog.i18n.DateTimeSymbols_br={ERAS:["a-raok J.K.","goude J.K."],ERANAMES:["a-raok Jezuz-Krist","goude Jezuz-Krist"],NARROWMONTHS:"01 02 03 04 05 06 07 08 09 10 11 12".split(" "),STANDALONENARROWMONTHS:"01 02 03 04 05 06 07 08 09 10 11 12".split(" "),MONTHS:"Genver C\\u02bchwevrer Meurzh Ebrel Mae Mezheven Gouere Eost Gwengolo Here Du Kerzu".split(" "),STANDALONEMONTHS:"Genver C\\u02bchwevrer Meurzh Ebrel Mae Mezheven Gouere Eost Gwengolo Here Du Kerzu".split(" "),SHORTMONTHS:"Gen. C\\u02bchwe. Meur. Ebr. Mae Mezh. Goue. Eost Gwen. Here Du Kzu.".split(" "),\nSTANDALONESHORTMONTHS:"Gen. C\\u02bchwe. Meur. Ebr. Mae Mezh. Goue. Eost Gwen. Here Du Ker.".split(" "),WEEKDAYS:"Sul Lun Meurzh Merc\\u02bcher Yaou Gwener Sadorn".split(" "),STANDALONEWEEKDAYS:"Sul Lun Meurzh Merc\\u02bcher Yaou Gwener Sadorn".split(" "),SHORTWEEKDAYS:"Sul Lun Meu. Mer. Yaou Gwe. Sad.".split(" "),STANDALONESHORTWEEKDAYS:"Sul Lun Meu. Mer. Yaou Gwe. Sad.".split(" "),NARROWWEEKDAYS:"Su L Mz Mc Y G Sa".split(" "),STANDALONENARROWWEEKDAYS:"Su L Mz Mc Y G Sa".split(" "),SHORTQUARTERS:["1a\\u00f1 trim.",\n"2l trim.","3e trim.","4e trim."],QUARTERS:["1a\\u00f1 trimiziad","2l trimiziad","3e trimiziad","4e trimiziad"],AMPMS:["A.M.","G.M."],DATEFORMATS:["y MMMM d, EEEE","y MMMM d","y MMM d","y-MM-dd"],TIMEFORMATS:["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],DATETIMEFORMATS:["{1} \'da\' {0}","{1} \'da\' {0}","{1} {0}","{1} {0}"],FIRSTDAYOFWEEK:0,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:3};\ngoog.i18n.DateTimeSymbols_bs={ERAS:["p. n. e.","n. e."],ERANAMES:["Prije nove ere","Nove ere"],NARROWMONTHS:"jfmamjjasond".split(""),STANDALONENARROWMONTHS:"jfmamjjasond".split(""),MONTHS:"januar februar mart april maj juni juli august septembar oktobar novembar decembar".split(" "),STANDALONEMONTHS:"januar februar mart april maj juni juli august septembar oktobar novembar decembar".split(" "),SHORTMONTHS:"jan feb mar apr maj jun jul aug sep okt nov dec".split(" "),STANDALONESHORTMONTHS:"jan feb mar apr maj jun jul aug sep okt nov dec".split(" "),\nWEEKDAYS:"nedjelja ponedjeljak utorak srijeda \\u010detvrtak petak subota".split(" "),STANDALONEWEEKDAYS:"nedjelja ponedjeljak utorak srijeda \\u010detvrtak petak subota".split(" "),SHORTWEEKDAYS:"ned pon uto sri \\u010det pet sub".split(" "),STANDALONESHORTWEEKDAYS:"ned pon uto sri \\u010det pet sub".split(" "),NARROWWEEKDAYS:"NPUS\\u010cPS".split(""),STANDALONENARROWWEEKDAYS:"npus\\u010dps".split(""),SHORTQUARTERS:["K1","K2","K3","K4"],QUARTERS:["Prvi kvartal","Drugi kvartal","Tre\\u0107i kvartal","\\u010cetvrti kvartal"],\nAMPMS:["prije podne","popodne"],DATEFORMATS:["EEEE, dd. MMMM y.","dd. MMMM y.","dd. MMM. y.","dd.MM.yy."],TIMEFORMATS:["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],DATETIMEFORMATS:["{1} \'u\' {0}","{1} \'u\' {0}","{1} {0}","{1} {0}"],FIRSTDAYOFWEEK:0,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:6};\ngoog.i18n.DateTimeSymbols_ca={ERAS:["aC","dC"],ERANAMES:["abans de Crist","despr\\u00e9s de Crist"],NARROWMONTHS:"GN FB M\\u00c7 AB MG JN JL AG ST OC NV DS".split(" "),STANDALONENARROWMONTHS:"GN FB M\\u00c7 AB MG JN JL AG ST OC NV DS".split(" "),MONTHS:"de gener;de febrer;de mar\\u00e7;d\\u2019abril;de maig;de juny;de juliol;d\\u2019agost;de setembre;d\\u2019octubre;de novembre;de desembre".split(";"),STANDALONEMONTHS:"gener febrer mar\\u00e7 abril maig juny juliol agost setembre octubre novembre desembre".split(" "),\nSHORTMONTHS:"gen. febr. mar\\u00e7 abr. maig juny jul. ag. set. oct. nov. des.".split(" "),STANDALONESHORTMONTHS:"gen. febr. mar\\u00e7 abr. maig juny jul. ag. set. oct. nov. des.".split(" "),WEEKDAYS:"diumenge dilluns dimarts dimecres dijous divendres dissabte".split(" "),STANDALONEWEEKDAYS:"diumenge dilluns dimarts dimecres dijous divendres dissabte".split(" "),SHORTWEEKDAYS:"dg. dl. dt. dc. dj. dv. ds.".split(" "),STANDALONESHORTWEEKDAYS:"dg. dl. dt. dc. dj. dv. ds.".split(" "),NARROWWEEKDAYS:"dg dl dt dc dj dv ds".split(" "),\nSTANDALONENARROWWEEKDAYS:"dg dl dt dc dj dv ds".split(" "),SHORTQUARTERS:["1T","2T","3T","4T"],QUARTERS:["1r trimestre","2n trimestre","3r trimestre","4t trimestre"],AMPMS:["a. m.","p. m."],DATEFORMATS:["EEEE, d MMMM \'de\' y","d MMMM \'de\' y","d MMM y","d/M/yy"],TIMEFORMATS:["H:mm:ss zzzz","H:mm:ss z","H:mm:ss","H:mm"],DATETIMEFORMATS:["{1} \'a\' \'les\' {0}","{1}, {0}","{1}, {0}","{1} {0}"],FIRSTDAYOFWEEK:0,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:3};\ngoog.i18n.DateTimeSymbols_chr={ERAS:["\\u13a4\\u13d3\\u13b7\\u13b8","\\u13a4\\u13b6\\u13d0\\u13c5"],ERANAMES:["\\u13cf \\u13e5\\u13cc \\u13be\\u13d5\\u13b2\\u13cd\\u13ac\\u13be","\\u13a0\\u13a9\\u13c3\\u13ae\\u13b5\\u13d3\\u13cd\\u13d7\\u13f1 \\u13a0\\u13d5\\u13d8\\u13f1\\u13cd\\u13ac \\u13f1\\u13b0\\u13e9 \\u13e7\\u13d3\\u13c2\\u13b8\\u13a2\\u13cd\\u13d7"],NARROWMONTHS:"\\u13a4\\u13a7\\u13a0\\u13a7\\u13a0\\u13d5\\u13ab\\u13a6\\u13da\\u13da\\u13c5\\u13a5".split(""),STANDALONENARROWMONTHS:"\\u13a4\\u13a7\\u13a0\\u13a7\\u13a0\\u13d5\\u13ab\\u13a6\\u13da\\u13da\\u13c5\\u13a5".split(""),\nMONTHS:"\\u13a4\\u13c3\\u13b8\\u13d4\\u13c5 \\u13a7\\u13a6\\u13b5 \\u13a0\\u13c5\\u13f1 \\u13a7\\u13ec\\u13c2 \\u13a0\\u13c2\\u13cd\\u13ac\\u13d8 \\u13d5\\u13ad\\u13b7\\u13f1 \\u13ab\\u13f0\\u13c9\\u13c2 \\u13a6\\u13b6\\u13c2 \\u13da\\u13b5\\u13cd\\u13d7 \\u13da\\u13c2\\u13c5\\u13d7 \\u13c5\\u13d3\\u13d5\\u13c6 \\u13a5\\u13cd\\u13a9\\u13f1".split(" "),STANDALONEMONTHS:"\\u13a4\\u13c3\\u13b8\\u13d4\\u13c5 \\u13a7\\u13a6\\u13b5 \\u13a0\\u13c5\\u13f1 \\u13a7\\u13ec\\u13c2 \\u13a0\\u13c2\\u13cd\\u13ac\\u13d8 \\u13d5\\u13ad\\u13b7\\u13f1 \\u13ab\\u13f0\\u13c9\\u13c2 \\u13a6\\u13b6\\u13c2 \\u13da\\u13b5\\u13cd\\u13d7 \\u13da\\u13c2\\u13c5\\u13d7 \\u13c5\\u13d3\\u13d5\\u13c6 \\u13a5\\u13cd\\u13a9\\u13f1".split(" "),\nSHORTMONTHS:"\\u13a4\\u13c3 \\u13a7\\u13a6 \\u13a0\\u13c5 \\u13a7\\u13ec \\u13a0\\u13c2 \\u13d5\\u13ad \\u13ab\\u13f0 \\u13a6\\u13b6 \\u13da\\u13b5 \\u13da\\u13c2 \\u13c5\\u13d3 \\u13a5\\u13cd".split(" "),STANDALONESHORTMONTHS:"\\u13a4\\u13c3 \\u13a7\\u13a6 \\u13a0\\u13c5 \\u13a7\\u13ec \\u13a0\\u13c2 \\u13d5\\u13ad \\u13ab\\u13f0 \\u13a6\\u13b6 \\u13da\\u13b5 \\u13da\\u13c2 \\u13c5\\u13d3 \\u13a5\\u13cd".split(" "),WEEKDAYS:"\\u13a4\\u13be\\u13d9\\u13d3\\u13c6\\u13cd\\u13ac \\u13a4\\u13be\\u13d9\\u13d3\\u13c9\\u13c5\\u13af \\u13d4\\u13b5\\u13c1\\u13a2\\u13a6 \\u13e6\\u13a2\\u13c1\\u13a2\\u13a6 \\u13c5\\u13a9\\u13c1\\u13a2\\u13a6 \\u13e7\\u13be\\u13a9\\u13b6\\u13cd\\u13d7 \\u13a4\\u13be\\u13d9\\u13d3\\u13c8\\u13d5\\u13be".split(" "),\nSTANDALONEWEEKDAYS:"\\u13a4\\u13be\\u13d9\\u13d3\\u13c6\\u13cd\\u13ac \\u13a4\\u13be\\u13d9\\u13d3\\u13c9\\u13c5\\u13af \\u13d4\\u13b5\\u13c1\\u13a2\\u13a6 \\u13e6\\u13a2\\u13c1\\u13a2\\u13a6 \\u13c5\\u13a9\\u13c1\\u13a2\\u13a6 \\u13e7\\u13be\\u13a9\\u13b6\\u13cd\\u13d7 \\u13a4\\u13be\\u13d9\\u13d3\\u13c8\\u13d5\\u13be".split(" "),SHORTWEEKDAYS:"\\u13c6\\u13cd\\u13ac \\u13c9\\u13c5\\u13af \\u13d4\\u13b5\\u13c1 \\u13e6\\u13a2\\u13c1 \\u13c5\\u13a9\\u13c1 \\u13e7\\u13be\\u13a9 \\u13c8\\u13d5\\u13be".split(" "),STANDALONESHORTWEEKDAYS:"\\u13c6\\u13cd\\u13ac \\u13c9\\u13c5\\u13af \\u13d4\\u13b5\\u13c1 \\u13e6\\u13a2\\u13c1 \\u13c5\\u13a9\\u13c1 \\u13e7\\u13be\\u13a9 \\u13c8\\u13d5\\u13be".split(" "),\nNARROWWEEKDAYS:"\\u13c6\\u13c9\\u13d4\\u13e6\\u13c5\\u13e7\\u13a4".split(""),STANDALONENARROWWEEKDAYS:"\\u13c6\\u13c9\\u13d4\\u13e6\\u13c5\\u13e7\\u13a4".split(""),SHORTQUARTERS:["Q1","Q2","Q3","Q4"],QUARTERS:["Q1","Q2","Q3","Q4"],AMPMS:["\\u13cc\\u13be\\u13b4","\\u13d2\\u13af\\u13f1\\u13a2\\u13d7\\u13e2"],DATEFORMATS:["EEEE, MMMM d, y","MMMM d, y","MMM d, y","M/d/yy"],TIMEFORMATS:["h:mm:ss a zzzz","h:mm:ss a z","h:mm:ss a","h:mm a"],DATETIMEFORMATS:["{1} {0}","{1} {0}","{1} {0}","{1} {0}"],FIRSTDAYOFWEEK:6,WEEKENDRANGE:[5,\n6],FIRSTWEEKCUTOFFDAY:5};\ngoog.i18n.DateTimeSymbols_cs={ERAS:["p\\u0159. n. l.","n. l."],ERANAMES:["p\\u0159. n. l.","n. l."],NARROWMONTHS:"1 2 3 4 5 6 7 8 9 10 11 12".split(" "),STANDALONENARROWMONTHS:"1 2 3 4 5 6 7 8 9 10 11 12".split(" "),MONTHS:"ledna \\u00fanora b\\u0159ezna dubna kv\\u011btna \\u010dervna \\u010dervence srpna z\\u00e1\\u0159\\u00ed \\u0159\\u00edjna listopadu prosince".split(" "),STANDALONEMONTHS:"leden \\u00fanor b\\u0159ezen duben kv\\u011bten \\u010derven \\u010dervenec srpen z\\u00e1\\u0159\\u00ed \\u0159\\u00edjen listopad prosinec".split(" "),SHORTMONTHS:"led \\u00fano b\\u0159e dub kv\\u011b \\u010dvn \\u010dvc srp z\\u00e1\\u0159 \\u0159\\u00edj lis pro".split(" "),\nSTANDALONESHORTMONTHS:"led \\u00fano b\\u0159e dub kv\\u011b \\u010dvn \\u010dvc srp z\\u00e1\\u0159 \\u0159\\u00edj lis pro".split(" "),WEEKDAYS:"ned\\u011ble pond\\u011bl\\u00ed \\u00fater\\u00fd st\\u0159eda \\u010dtvrtek p\\u00e1tek sobota".split(" "),STANDALONEWEEKDAYS:"ned\\u011ble pond\\u011bl\\u00ed \\u00fater\\u00fd st\\u0159eda \\u010dtvrtek p\\u00e1tek sobota".split(" "),SHORTWEEKDAYS:"ne po \\u00fat st \\u010dt p\\u00e1 so".split(" "),STANDALONESHORTWEEKDAYS:"ne po \\u00fat st \\u010dt p\\u00e1 so".split(" "),NARROWWEEKDAYS:"NP\\u00daS\\u010cPS".split(""),\nSTANDALONENARROWWEEKDAYS:"NP\\u00daS\\u010cPS".split(""),SHORTQUARTERS:["Q1","Q2","Q3","Q4"],QUARTERS:["1. \\u010dtvrtlet\\u00ed","2. \\u010dtvrtlet\\u00ed","3. \\u010dtvrtlet\\u00ed","4. \\u010dtvrtlet\\u00ed"],AMPMS:["dop.","odp."],DATEFORMATS:["EEEE d. MMMM y","d. MMMM y","d. M. y","dd.MM.yy"],TIMEFORMATS:["H:mm:ss zzzz","H:mm:ss z","H:mm:ss","H:mm"],DATETIMEFORMATS:["{1} {0}","{1} {0}","{1} {0}","{1} {0}"],FIRSTDAYOFWEEK:0,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:3};\ngoog.i18n.DateTimeSymbols_cy={ERAS:["CC","OC"],ERANAMES:["Cyn Crist","Oed Crist"],NARROWMONTHS:"I Ch M E M M G A M H T Rh".split(" "),STANDALONENARROWMONTHS:"I Ch M E M M G A M H T Rh".split(" "),MONTHS:"Ionawr Chwefror Mawrth Ebrill Mai Mehefin Gorffennaf Awst Medi Hydref Tachwedd Rhagfyr".split(" "),STANDALONEMONTHS:"Ionawr Chwefror Mawrth Ebrill Mai Mehefin Gorffennaf Awst Medi Hydref Tachwedd Rhagfyr".split(" "),SHORTMONTHS:"Ion Chwef Maw Ebrill Mai Meh Gorff Awst Medi Hyd Tach Rhag".split(" "),\nSTANDALONESHORTMONTHS:"Ion Chw Maw Ebr Mai Meh Gor Awst Medi Hyd Tach Rhag".split(" "),WEEKDAYS:"Dydd Sul;Dydd Llun;Dydd Mawrth;Dydd Mercher;Dydd Iau;Dydd Gwener;Dydd Sadwrn".split(";"),STANDALONEWEEKDAYS:"Dydd Sul;Dydd Llun;Dydd Mawrth;Dydd Mercher;Dydd Iau;Dydd Gwener;Dydd Sadwrn".split(";"),SHORTWEEKDAYS:"Sul Llun Maw Mer Iau Gwen Sad".split(" "),STANDALONESHORTWEEKDAYS:"Sul Llun Maw Mer Iau Gwe Sad".split(" "),NARROWWEEKDAYS:"S Ll M M I G S".split(" "),STANDALONENARROWWEEKDAYS:"S Ll M M I G S".split(" "),\nSHORTQUARTERS:["Ch1","Ch2","Ch3","Ch4"],QUARTERS:["chwarter 1af","2il chwarter","3ydd chwarter","4ydd chwarter"],AMPMS:["AM","PM"],DATEFORMATS:["EEEE, d MMMM y","d MMMM y","d MMM y","dd/MM/yy"],TIMEFORMATS:["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],DATETIMEFORMATS:["{1} \'am\' {0}","{1} \'am\' {0}","{1} {0}","{1} {0}"],FIRSTDAYOFWEEK:0,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:3};\ngoog.i18n.DateTimeSymbols_da={ERAS:["f.Kr.","e.Kr."],ERANAMES:["f.Kr.","e.Kr."],NARROWMONTHS:"JFMAMJJASOND".split(""),STANDALONENARROWMONTHS:"JFMAMJJASOND".split(""),MONTHS:"januar februar marts april maj juni juli august september oktober november december".split(" "),STANDALONEMONTHS:"januar februar marts april maj juni juli august september oktober november december".split(" "),SHORTMONTHS:"jan. feb. mar. apr. maj jun. jul. aug. sep. okt. nov. dec.".split(" "),STANDALONESHORTMONTHS:"jan feb mar apr maj jun jul aug sep okt nov dec".split(" "),\nWEEKDAYS:"s\\u00f8ndag mandag tirsdag onsdag torsdag fredag l\\u00f8rdag".split(" "),STANDALONEWEEKDAYS:"s\\u00f8ndag mandag tirsdag onsdag torsdag fredag l\\u00f8rdag".split(" "),SHORTWEEKDAYS:"s\\u00f8n. man. tir. ons. tor. fre. l\\u00f8r.".split(" "),STANDALONESHORTWEEKDAYS:"s\\u00f8n man tir ons tor fre l\\u00f8r".split(" "),NARROWWEEKDAYS:"SMTOTFL".split(""),STANDALONENARROWWEEKDAYS:"SMTOTFL".split(""),SHORTQUARTERS:["1. kvt.","2. kvt.","3. kvt.","4. kvt."],QUARTERS:["1. kvartal","2. kvartal","3. kvartal",\n"4. kvartal"],AMPMS:["AM","PM"],DATEFORMATS:["EEEE \'den\' d. MMMM y","d. MMMM y","d. MMM y","dd/MM/y"],TIMEFORMATS:["HH.mm.ss zzzz","HH.mm.ss z","HH.mm.ss","HH.mm"],DATETIMEFORMATS:["{1} \'kl\'. {0}","{1} \'kl\'. {0}","{1} {0}","{1} {0}"],FIRSTDAYOFWEEK:0,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:3};\ngoog.i18n.DateTimeSymbols_de={ERAS:["v. Chr.","n. Chr."],ERANAMES:["v. Chr.","n. Chr."],NARROWMONTHS:"JFMAMJJASOND".split(""),STANDALONENARROWMONTHS:"JFMAMJJASOND".split(""),MONTHS:"Januar Februar M\\u00e4rz April Mai Juni Juli August September Oktober November Dezember".split(" "),STANDALONEMONTHS:"Januar Februar M\\u00e4rz April Mai Juni Juli August September Oktober November Dezember".split(" "),SHORTMONTHS:"Jan. Feb. M\\u00e4rz Apr. Mai Juni Juli Aug. Sep. Okt. Nov. Dez.".split(" "),STANDALONESHORTMONTHS:"Jan Feb M\\u00e4r Apr Mai Jun Jul Aug Sep Okt Nov Dez".split(" "),\nWEEKDAYS:"Sonntag Montag Dienstag Mittwoch Donnerstag Freitag Samstag".split(" "),STANDALONEWEEKDAYS:"Sonntag Montag Dienstag Mittwoch Donnerstag Freitag Samstag".split(" "),SHORTWEEKDAYS:"So. Mo. Di. Mi. Do. Fr. Sa.".split(" "),STANDALONESHORTWEEKDAYS:"So Mo Di Mi Do Fr Sa".split(" "),NARROWWEEKDAYS:"SMDMDFS".split(""),STANDALONENARROWWEEKDAYS:"SMDMDFS".split(""),SHORTQUARTERS:["Q1","Q2","Q3","Q4"],QUARTERS:["1. Quartal","2. Quartal","3. Quartal","4. Quartal"],AMPMS:["vorm.","nachm."],DATEFORMATS:["EEEE, d. MMMM y",\n"d. MMMM y","dd.MM.y","dd.MM.yy"],TIMEFORMATS:["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],DATETIMEFORMATS:["{1} \'um\' {0}","{1} \'um\' {0}","{1}, {0}","{1}, {0}"],FIRSTDAYOFWEEK:0,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:3};\ngoog.i18n.DateTimeSymbols_de_AT={ERAS:["v. Chr.","n. Chr."],ERANAMES:["v. Chr.","n. Chr."],NARROWMONTHS:"JFMAMJJASOND".split(""),STANDALONENARROWMONTHS:"JFMAMJJASOND".split(""),MONTHS:"J\\u00e4nner Februar M\\u00e4rz April Mai Juni Juli August September Oktober November Dezember".split(" "),STANDALONEMONTHS:"J\\u00e4nner Februar M\\u00e4rz April Mai Juni Juli August September Oktober November Dezember".split(" "),SHORTMONTHS:"J\\u00e4n. Feb. M\\u00e4rz Apr. Mai Juni Juli Aug. Sep. Okt. Nov. Dez.".split(" "),\nSTANDALONESHORTMONTHS:"J\\u00e4n Feb M\\u00e4r Apr Mai Jun Jul Aug Sep Okt Nov Dez".split(" "),WEEKDAYS:"Sonntag Montag Dienstag Mittwoch Donnerstag Freitag Samstag".split(" "),STANDALONEWEEKDAYS:"Sonntag Montag Dienstag Mittwoch Donnerstag Freitag Samstag".split(" "),SHORTWEEKDAYS:"So. Mo. Di. Mi. Do. Fr. Sa.".split(" "),STANDALONESHORTWEEKDAYS:"So Mo Di Mi Do Fr Sa".split(" "),NARROWWEEKDAYS:"SMDMDFS".split(""),STANDALONENARROWWEEKDAYS:"SMDMDFS".split(""),SHORTQUARTERS:["Q1","Q2","Q3","Q4"],QUARTERS:["1. Quartal",\n"2. Quartal","3. Quartal","4. Quartal"],AMPMS:["vorm.","nachm."],DATEFORMATS:["EEEE, d. MMMM y","d. MMMM y","dd.MM.y","dd.MM.yy"],TIMEFORMATS:["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],DATETIMEFORMATS:["{1} \'um\' {0}","{1} \'um\' {0}","{1}, {0}","{1}, {0}"],FIRSTDAYOFWEEK:0,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:3};goog.i18n.DateTimeSymbols_de_CH=goog.i18n.DateTimeSymbols_de;\ngoog.i18n.DateTimeSymbols_el={ERAS:["\\u03c0.\\u03a7.","\\u03bc.\\u03a7."],ERANAMES:["\\u03c0\\u03c1\\u03bf \\u03a7\\u03c1\\u03b9\\u03c3\\u03c4\\u03bf\\u03cd","\\u03bc\\u03b5\\u03c4\\u03ac \\u03a7\\u03c1\\u03b9\\u03c3\\u03c4\\u03cc\\u03bd"],NARROWMONTHS:"\\u0399\\u03a6\\u039c\\u0391\\u039c\\u0399\\u0399\\u0391\\u03a3\\u039f\\u039d\\u0394".split(""),STANDALONENARROWMONTHS:"\\u0399\\u03a6\\u039c\\u0391\\u039c\\u0399\\u0399\\u0391\\u03a3\\u039f\\u039d\\u0394".split(""),MONTHS:"\\u0399\\u03b1\\u03bd\\u03bf\\u03c5\\u03b1\\u03c1\\u03af\\u03bf\\u03c5 \\u03a6\\u03b5\\u03b2\\u03c1\\u03bf\\u03c5\\u03b1\\u03c1\\u03af\\u03bf\\u03c5 \\u039c\\u03b1\\u03c1\\u03c4\\u03af\\u03bf\\u03c5 \\u0391\\u03c0\\u03c1\\u03b9\\u03bb\\u03af\\u03bf\\u03c5 \\u039c\\u03b1\\u0390\\u03bf\\u03c5 \\u0399\\u03bf\\u03c5\\u03bd\\u03af\\u03bf\\u03c5 \\u0399\\u03bf\\u03c5\\u03bb\\u03af\\u03bf\\u03c5 \\u0391\\u03c5\\u03b3\\u03bf\\u03cd\\u03c3\\u03c4\\u03bf\\u03c5 \\u03a3\\u03b5\\u03c0\\u03c4\\u03b5\\u03bc\\u03b2\\u03c1\\u03af\\u03bf\\u03c5 \\u039f\\u03ba\\u03c4\\u03c9\\u03b2\\u03c1\\u03af\\u03bf\\u03c5 \\u039d\\u03bf\\u03b5\\u03bc\\u03b2\\u03c1\\u03af\\u03bf\\u03c5 \\u0394\\u03b5\\u03ba\\u03b5\\u03bc\\u03b2\\u03c1\\u03af\\u03bf\\u03c5".split(" "),\nSTANDALONEMONTHS:"\\u0399\\u03b1\\u03bd\\u03bf\\u03c5\\u03ac\\u03c1\\u03b9\\u03bf\\u03c2 \\u03a6\\u03b5\\u03b2\\u03c1\\u03bf\\u03c5\\u03ac\\u03c1\\u03b9\\u03bf\\u03c2 \\u039c\\u03ac\\u03c1\\u03c4\\u03b9\\u03bf\\u03c2 \\u0391\\u03c0\\u03c1\\u03af\\u03bb\\u03b9\\u03bf\\u03c2 \\u039c\\u03ac\\u03b9\\u03bf\\u03c2 \\u0399\\u03bf\\u03cd\\u03bd\\u03b9\\u03bf\\u03c2 \\u0399\\u03bf\\u03cd\\u03bb\\u03b9\\u03bf\\u03c2 \\u0391\\u03cd\\u03b3\\u03bf\\u03c5\\u03c3\\u03c4\\u03bf\\u03c2 \\u03a3\\u03b5\\u03c0\\u03c4\\u03ad\\u03bc\\u03b2\\u03c1\\u03b9\\u03bf\\u03c2 \\u039f\\u03ba\\u03c4\\u03ce\\u03b2\\u03c1\\u03b9\\u03bf\\u03c2 \\u039d\\u03bf\\u03ad\\u03bc\\u03b2\\u03c1\\u03b9\\u03bf\\u03c2 \\u0394\\u03b5\\u03ba\\u03ad\\u03bc\\u03b2\\u03c1\\u03b9\\u03bf\\u03c2".split(" "),\nSHORTMONTHS:"\\u0399\\u03b1\\u03bd \\u03a6\\u03b5\\u03b2 \\u039c\\u03b1\\u03c1 \\u0391\\u03c0\\u03c1 \\u039c\\u03b1\\u0390 \\u0399\\u03bf\\u03c5\\u03bd \\u0399\\u03bf\\u03c5\\u03bb \\u0391\\u03c5\\u03b3 \\u03a3\\u03b5\\u03c0 \\u039f\\u03ba\\u03c4 \\u039d\\u03bf\\u03b5 \\u0394\\u03b5\\u03ba".split(" "),STANDALONESHORTMONTHS:"\\u0399\\u03b1\\u03bd \\u03a6\\u03b5\\u03b2 \\u039c\\u03ac\\u03c1 \\u0391\\u03c0\\u03c1 \\u039c\\u03ac\\u03b9 \\u0399\\u03bf\\u03cd\\u03bd \\u0399\\u03bf\\u03cd\\u03bb \\u0391\\u03cd\\u03b3 \\u03a3\\u03b5\\u03c0 \\u039f\\u03ba\\u03c4 \\u039d\\u03bf\\u03ad \\u0394\\u03b5\\u03ba".split(" "),\nWEEKDAYS:"\\u039a\\u03c5\\u03c1\\u03b9\\u03b1\\u03ba\\u03ae \\u0394\\u03b5\\u03c5\\u03c4\\u03ad\\u03c1\\u03b1 \\u03a4\\u03c1\\u03af\\u03c4\\u03b7 \\u03a4\\u03b5\\u03c4\\u03ac\\u03c1\\u03c4\\u03b7 \\u03a0\\u03ad\\u03bc\\u03c0\\u03c4\\u03b7 \\u03a0\\u03b1\\u03c1\\u03b1\\u03c3\\u03ba\\u03b5\\u03c5\\u03ae \\u03a3\\u03ac\\u03b2\\u03b2\\u03b1\\u03c4\\u03bf".split(" "),STANDALONEWEEKDAYS:"\\u039a\\u03c5\\u03c1\\u03b9\\u03b1\\u03ba\\u03ae \\u0394\\u03b5\\u03c5\\u03c4\\u03ad\\u03c1\\u03b1 \\u03a4\\u03c1\\u03af\\u03c4\\u03b7 \\u03a4\\u03b5\\u03c4\\u03ac\\u03c1\\u03c4\\u03b7 \\u03a0\\u03ad\\u03bc\\u03c0\\u03c4\\u03b7 \\u03a0\\u03b1\\u03c1\\u03b1\\u03c3\\u03ba\\u03b5\\u03c5\\u03ae \\u03a3\\u03ac\\u03b2\\u03b2\\u03b1\\u03c4\\u03bf".split(" "),\nSHORTWEEKDAYS:"\\u039a\\u03c5\\u03c1 \\u0394\\u03b5\\u03c5 \\u03a4\\u03c1\\u03af \\u03a4\\u03b5\\u03c4 \\u03a0\\u03ad\\u03bc \\u03a0\\u03b1\\u03c1 \\u03a3\\u03ac\\u03b2".split(" "),STANDALONESHORTWEEKDAYS:"\\u039a\\u03c5\\u03c1 \\u0394\\u03b5\\u03c5 \\u03a4\\u03c1\\u03af \\u03a4\\u03b5\\u03c4 \\u03a0\\u03ad\\u03bc \\u03a0\\u03b1\\u03c1 \\u03a3\\u03ac\\u03b2".split(" "),NARROWWEEKDAYS:"\\u039a\\u0394\\u03a4\\u03a4\\u03a0\\u03a0\\u03a3".split(""),STANDALONENARROWWEEKDAYS:"\\u039a\\u0394\\u03a4\\u03a4\\u03a0\\u03a0\\u03a3".split(""),SHORTQUARTERS:["\\u03a41",\n"\\u03a42","\\u03a43","\\u03a44"],QUARTERS:["1\\u03bf \\u03c4\\u03c1\\u03af\\u03bc\\u03b7\\u03bd\\u03bf","2\\u03bf \\u03c4\\u03c1\\u03af\\u03bc\\u03b7\\u03bd\\u03bf","3\\u03bf \\u03c4\\u03c1\\u03af\\u03bc\\u03b7\\u03bd\\u03bf","4\\u03bf \\u03c4\\u03c1\\u03af\\u03bc\\u03b7\\u03bd\\u03bf"],AMPMS:["\\u03c0.\\u03bc.","\\u03bc.\\u03bc."],DATEFORMATS:["EEEE, d MMMM y","d MMMM y","d MMM y","d/M/yy"],TIMEFORMATS:["h:mm:ss a zzzz","h:mm:ss a z","h:mm:ss a","h:mm a"],DATETIMEFORMATS:["{1} - {0}","{1} - {0}","{1}, {0}","{1}, {0}"],FIRSTDAYOFWEEK:0,\nWEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:3};\ngoog.i18n.DateTimeSymbols_en={ERAS:["BC","AD"],ERANAMES:["Before Christ","Anno Domini"],NARROWMONTHS:"JFMAMJJASOND".split(""),STANDALONENARROWMONTHS:"JFMAMJJASOND".split(""),MONTHS:"January February March April May June July August September October November December".split(" "),STANDALONEMONTHS:"January February March April May June July August September October November December".split(" "),SHORTMONTHS:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),STANDALONESHORTMONTHS:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),\nWEEKDAYS:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),STANDALONEWEEKDAYS:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),SHORTWEEKDAYS:"Sun Mon Tue Wed Thu Fri Sat".split(" "),STANDALONESHORTWEEKDAYS:"Sun Mon Tue Wed Thu Fri Sat".split(" "),NARROWWEEKDAYS:"SMTWTFS".split(""),STANDALONENARROWWEEKDAYS:"SMTWTFS".split(""),SHORTQUARTERS:["Q1","Q2","Q3","Q4"],QUARTERS:["1st quarter","2nd quarter","3rd quarter","4th quarter"],AMPMS:["AM","PM"],DATEFORMATS:["EEEE, MMMM d, y",\n"MMMM d, y","MMM d, y","M/d/yy"],TIMEFORMATS:["h:mm:ss a zzzz","h:mm:ss a z","h:mm:ss a","h:mm a"],DATETIMEFORMATS:["{1} \'at\' {0}","{1} \'at\' {0}","{1}, {0}","{1}, {0}"],FIRSTDAYOFWEEK:6,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:5};\ngoog.i18n.DateTimeSymbols_en_AU={ERAS:["BC","AD"],ERANAMES:["Before Christ","Anno Domini"],NARROWMONTHS:"Jan. Feb. Mar. Apr. May Jun. Jul. Aug. Sep. Oct. Nov. Dec.".split(" "),STANDALONENARROWMONTHS:"Jan. Feb. Mar. Apr. May Jun. Jul. Aug. Sep. Oct. Nov. Dec.".split(" "),MONTHS:"January February March April May June July August September October November December".split(" "),STANDALONEMONTHS:"January February March April May June July August September October November December".split(" "),SHORTMONTHS:"Jan. Feb. Mar. Apr. May Jun. Jul. Aug. Sep. Oct. Nov. Dec.".split(" "),\nSTANDALONESHORTMONTHS:"Jan. Feb. Mar. Apr. May Jun. Jul. Aug. Sep. Oct. Nov. Dec.".split(" "),WEEKDAYS:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),STANDALONEWEEKDAYS:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),SHORTWEEKDAYS:"Sun. Mon. Tue. Wed. Thu. Fri. Sat.".split(" "),STANDALONESHORTWEEKDAYS:"Sun. Mon. Tue. Wed. Thu. Fri. Sat.".split(" "),NARROWWEEKDAYS:"Su. M. Tu. W. Th. F. Sa.".split(" "),STANDALONENARROWWEEKDAYS:"Su. M. Tu. W. Th. F. Sa.".split(" "),\nSHORTQUARTERS:["Q1","Q2","Q3","Q4"],QUARTERS:["1st quarter","2nd quarter","3rd quarter","4th quarter"],AMPMS:["am","pm"],DATEFORMATS:["EEEE, d MMMM y","d MMMM y","d MMM y","d/M/yy"],TIMEFORMATS:["h:mm:ss a zzzz","h:mm:ss a z","h:mm:ss a","h:mm a"],DATETIMEFORMATS:["{1} \'at\' {0}","{1} \'at\' {0}","{1}, {0}","{1}, {0}"],FIRSTDAYOFWEEK:6,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:5};\ngoog.i18n.DateTimeSymbols_en_CA={ERAS:["BC","AD"],ERANAMES:["Before Christ","Anno Domini"],NARROWMONTHS:"JFMAMJJASOND".split(""),STANDALONENARROWMONTHS:"JFMAMJJASOND".split(""),MONTHS:"January February March April May June July August September October November December".split(" "),STANDALONEMONTHS:"January February March April May June July August September October November December".split(" "),SHORTMONTHS:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),STANDALONESHORTMONTHS:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),\nWEEKDAYS:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),STANDALONEWEEKDAYS:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),SHORTWEEKDAYS:"Sun Mon Tue Wed Thu Fri Sat".split(" "),STANDALONESHORTWEEKDAYS:"Sun Mon Tue Wed Thu Fri Sat".split(" "),NARROWWEEKDAYS:"SMTWTFS".split(""),STANDALONENARROWWEEKDAYS:"SMTWTFS".split(""),SHORTQUARTERS:["Q1","Q2","Q3","Q4"],QUARTERS:["1st quarter","2nd quarter","3rd quarter","4th quarter"],AMPMS:["AM","PM"],DATEFORMATS:["EEEE, MMMM d, y",\n"MMMM d, y","MMM d, y","y-MM-dd"],TIMEFORMATS:["h:mm:ss a zzzz","h:mm:ss a z","h:mm:ss a","h:mm a"],DATETIMEFORMATS:["{1} \'at\' {0}","{1} \'at\' {0}","{1}, {0}","{1}, {0}"],FIRSTDAYOFWEEK:6,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:5};\ngoog.i18n.DateTimeSymbols_en_GB={ERAS:["BC","AD"],ERANAMES:["Before Christ","Anno Domini"],NARROWMONTHS:"JFMAMJJASOND".split(""),STANDALONENARROWMONTHS:"JFMAMJJASOND".split(""),MONTHS:"January February March April May June July August September October November December".split(" "),STANDALONEMONTHS:"January February March April May June July August September October November December".split(" "),SHORTMONTHS:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),STANDALONESHORTMONTHS:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),\nWEEKDAYS:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),STANDALONEWEEKDAYS:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),SHORTWEEKDAYS:"Sun Mon Tue Wed Thu Fri Sat".split(" "),STANDALONESHORTWEEKDAYS:"Sun Mon Tue Wed Thu Fri Sat".split(" "),NARROWWEEKDAYS:"SMTWTFS".split(""),STANDALONENARROWWEEKDAYS:"SMTWTFS".split(""),SHORTQUARTERS:["Q1","Q2","Q3","Q4"],QUARTERS:["1st quarter","2nd quarter","3rd quarter","4th quarter"],AMPMS:["am","pm"],DATEFORMATS:["EEEE, d MMMM y",\n"d MMMM y","d MMM y","dd/MM/y"],TIMEFORMATS:["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],DATETIMEFORMATS:["{1} \'at\' {0}","{1} \'at\' {0}","{1}, {0}","{1}, {0}"],FIRSTDAYOFWEEK:0,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:3};\ngoog.i18n.DateTimeSymbols_en_IE={ERAS:["BC","AD"],ERANAMES:["Before Christ","Anno Domini"],NARROWMONTHS:"JFMAMJJASOND".split(""),STANDALONENARROWMONTHS:"JFMAMJJASOND".split(""),MONTHS:"January February March April May June July August September October November December".split(" "),STANDALONEMONTHS:"January February March April May June July August September October November December".split(" "),SHORTMONTHS:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),STANDALONESHORTMONTHS:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),\nWEEKDAYS:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),STANDALONEWEEKDAYS:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),SHORTWEEKDAYS:"Sun Mon Tue Wed Thu Fri Sat".split(" "),STANDALONESHORTWEEKDAYS:"Sun Mon Tue Wed Thu Fri Sat".split(" "),NARROWWEEKDAYS:"SMTWTFS".split(""),STANDALONENARROWWEEKDAYS:"SMTWTFS".split(""),SHORTQUARTERS:["Q1","Q2","Q3","Q4"],QUARTERS:["1st quarter","2nd quarter","3rd quarter","4th quarter"],AMPMS:["a.m.","p.m."],DATEFORMATS:["EEEE d MMMM y",\n"d MMMM y","d MMM y","dd/MM/y"],TIMEFORMATS:["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],DATETIMEFORMATS:["{1} \'at\' {0}","{1} \'at\' {0}","{1}, {0}","{1}, {0}"],FIRSTDAYOFWEEK:6,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:2};\ngoog.i18n.DateTimeSymbols_en_IN={ERAS:["BC","AD"],ERANAMES:["Before Christ","Anno Domini"],NARROWMONTHS:"JFMAMJJASOND".split(""),STANDALONENARROWMONTHS:"JFMAMJJASOND".split(""),MONTHS:"January February March April May June July August September October November December".split(" "),STANDALONEMONTHS:"January February March April May June July August September October November December".split(" "),SHORTMONTHS:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),STANDALONESHORTMONTHS:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),\nWEEKDAYS:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),STANDALONEWEEKDAYS:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),SHORTWEEKDAYS:"Sun Mon Tue Wed Thu Fri Sat".split(" "),STANDALONESHORTWEEKDAYS:"Sun Mon Tue Wed Thu Fri Sat".split(" "),NARROWWEEKDAYS:"SMTWTFS".split(""),STANDALONENARROWWEEKDAYS:"SMTWTFS".split(""),SHORTQUARTERS:["Q1","Q2","Q3","Q4"],QUARTERS:["1st quarter","2nd quarter","3rd quarter","4th quarter"],AMPMS:["AM","PM"],DATEFORMATS:["EEEE d MMMM y",\n"d MMMM y","dd-MMM-y","dd/MM/yy"],TIMEFORMATS:["h:mm:ss a zzzz","h:mm:ss a z","h:mm:ss a","h:mm a"],DATETIMEFORMATS:["{1} \'at\' {0}","{1} \'at\' {0}","{1}, {0}","{1}, {0}"],FIRSTDAYOFWEEK:6,WEEKENDRANGE:[6,6],FIRSTWEEKCUTOFFDAY:5};\ngoog.i18n.DateTimeSymbols_en_SG={ERAS:["BC","AD"],ERANAMES:["Before Christ","Anno Domini"],NARROWMONTHS:"JFMAMJJASOND".split(""),STANDALONENARROWMONTHS:"JFMAMJJASOND".split(""),MONTHS:"January February March April May June July August September October November December".split(" "),STANDALONEMONTHS:"January February March April May June July August September October November December".split(" "),SHORTMONTHS:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),STANDALONESHORTMONTHS:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),\nWEEKDAYS:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),STANDALONEWEEKDAYS:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),SHORTWEEKDAYS:"Sun Mon Tue Wed Thu Fri Sat".split(" "),STANDALONESHORTWEEKDAYS:"Sun Mon Tue Wed Thu Fri Sat".split(" "),NARROWWEEKDAYS:"SMTWTFS".split(""),STANDALONENARROWWEEKDAYS:"SMTWTFS".split(""),SHORTQUARTERS:["Q1","Q2","Q3","Q4"],QUARTERS:["1st quarter","2nd quarter","3rd quarter","4th quarter"],AMPMS:["AM","PM"],DATEFORMATS:["EEEE, d MMMM y",\n"d MMMM y","d MMM y","d/M/yy"],TIMEFORMATS:["h:mm:ss a zzzz","h:mm:ss a z","h:mm:ss a","h:mm a"],DATETIMEFORMATS:["{1} \'at\' {0}","{1} \'at\' {0}","{1}, {0}","{1}, {0}"],FIRSTDAYOFWEEK:6,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:5};goog.i18n.DateTimeSymbols_en_US=goog.i18n.DateTimeSymbols_en;\ngoog.i18n.DateTimeSymbols_en_ZA={ERAS:["BC","AD"],ERANAMES:["Before Christ","Anno Domini"],NARROWMONTHS:"JFMAMJJASOND".split(""),STANDALONENARROWMONTHS:"JFMAMJJASOND".split(""),MONTHS:"January February March April May June July August September October November December".split(" "),STANDALONEMONTHS:"January February March April May June July August September October November December".split(" "),SHORTMONTHS:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),STANDALONESHORTMONTHS:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),\nWEEKDAYS:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),STANDALONEWEEKDAYS:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),SHORTWEEKDAYS:"Sun Mon Tue Wed Thu Fri Sat".split(" "),STANDALONESHORTWEEKDAYS:"Sun Mon Tue Wed Thu Fri Sat".split(" "),NARROWWEEKDAYS:"SMTWTFS".split(""),STANDALONENARROWWEEKDAYS:"SMTWTFS".split(""),SHORTQUARTERS:["Q1","Q2","Q3","Q4"],QUARTERS:["1st quarter","2nd quarter","3rd quarter","4th quarter"],AMPMS:["AM","PM"],DATEFORMATS:["EEEE, dd MMMM y",\n"dd MMMM y","dd MMM y","y/MM/dd"],TIMEFORMATS:["h:mm:ss a zzzz","h:mm:ss a z","h:mm:ss a","h:mm a"],DATETIMEFORMATS:["{1} \'at\' {0}","{1} \'at\' {0}","{1}, {0}","{1}, {0}"],FIRSTDAYOFWEEK:6,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:5};\ngoog.i18n.DateTimeSymbols_es={ERAS:["a. C.","d. C."],ERANAMES:["antes de Cristo","despu\\u00e9s de Cristo"],NARROWMONTHS:"EFMAMJJASOND".split(""),STANDALONENARROWMONTHS:"EFMAMJJASOND".split(""),MONTHS:"enero febrero marzo abril mayo junio julio agosto septiembre octubre noviembre diciembre".split(" "),STANDALONEMONTHS:"enero febrero marzo abril mayo junio julio agosto septiembre octubre noviembre diciembre".split(" "),SHORTMONTHS:"ene. feb. mar. abr. may. jun. jul. ago. sept. oct. nov. dic.".split(" "),\nSTANDALONESHORTMONTHS:"ene. feb. mar. abr. may. jun. jul. ago. sept. oct. nov. dic.".split(" "),WEEKDAYS:"domingo lunes martes mi\\u00e9rcoles jueves viernes s\\u00e1bado".split(" "),STANDALONEWEEKDAYS:"domingo lunes martes mi\\u00e9rcoles jueves viernes s\\u00e1bado".split(" "),SHORTWEEKDAYS:"dom. lun. mar. mi\\u00e9. jue. vie. s\\u00e1b.".split(" "),STANDALONESHORTWEEKDAYS:"dom. lun. mar. mi\\u00e9. jue. vie. s\\u00e1b.".split(" "),NARROWWEEKDAYS:"DLMXJVS".split(""),STANDALONENARROWWEEKDAYS:"DLMXJVS".split(""),\nSHORTQUARTERS:["T1","T2","T3","T4"],QUARTERS:["1.er trimestre","2.\\u00ba trimestre","3.er trimestre","4.\\u00ba trimestre"],AMPMS:["a. m.","p. m."],DATEFORMATS:["EEEE, d \'de\' MMMM \'de\' y","d \'de\' MMMM \'de\' y","d MMM y","d/M/yy"],TIMEFORMATS:["H:mm:ss (zzzz)","H:mm:ss z","H:mm:ss","H:mm"],DATETIMEFORMATS:["{1}, {0}","{1}, {0}","{1} {0}","{1} {0}"],FIRSTDAYOFWEEK:0,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:3};\ngoog.i18n.DateTimeSymbols_es_419={ERAS:["a. C.","d. C."],ERANAMES:["antes de Cristo","despu\\u00e9s de Cristo"],NARROWMONTHS:"efmamjjasond".split(""),STANDALONENARROWMONTHS:"EFMAMJJASOND".split(""),MONTHS:"enero febrero marzo abril mayo junio julio agosto septiembre octubre noviembre diciembre".split(" "),STANDALONEMONTHS:"enero febrero marzo abril mayo junio julio agosto septiembre octubre noviembre diciembre".split(" "),SHORTMONTHS:"ene. feb. mar. abr. may. jun. jul. ago. sep. oct. nov. dic.".split(" "),\nSTANDALONESHORTMONTHS:"ene. feb. mar. abr. may. jun. jul. ago. sep. oct. nov. dic.".split(" "),WEEKDAYS:"domingo lunes martes mi\\u00e9rcoles jueves viernes s\\u00e1bado".split(" "),STANDALONEWEEKDAYS:"domingo lunes martes mi\\u00e9rcoles jueves viernes s\\u00e1bado".split(" "),SHORTWEEKDAYS:"dom. lun. mar. mi\\u00e9. jue. vie. s\\u00e1b.".split(" "),STANDALONESHORTWEEKDAYS:"dom. lun. mar. mi\\u00e9. jue. vie. s\\u00e1b.".split(" "),NARROWWEEKDAYS:"dlmmjvs".split(""),STANDALONENARROWWEEKDAYS:"DLMMJVS".split(""),\nSHORTQUARTERS:["T1","T2","T3","T4"],QUARTERS:["1.er trimestre","2.\\u00ba trimestre","3.er trimestre","4.\\u00ba trimestre"],AMPMS:["a.m.","p.m."],DATEFORMATS:["EEEE, d \'de\' MMMM \'de\' y","d \'de\' MMMM \'de\' y","d MMM y","d/M/yy"],TIMEFORMATS:["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],DATETIMEFORMATS:["{1}, {0}","{1}, {0}","{1} {0}","{1} {0}"],FIRSTDAYOFWEEK:0,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:6};goog.i18n.DateTimeSymbols_es_ES=goog.i18n.DateTimeSymbols_es;\ngoog.i18n.DateTimeSymbols_es_MX={ERAS:["a. C.","d. C."],ERANAMES:["antes de Cristo","despu\\u00e9s de Cristo"],NARROWMONTHS:"efmamjjasond".split(""),STANDALONENARROWMONTHS:"EFMAMJJASOND".split(""),MONTHS:"enero febrero marzo abril mayo junio julio agosto septiembre octubre noviembre diciembre".split(" "),STANDALONEMONTHS:"enero febrero marzo abril mayo junio julio agosto septiembre octubre noviembre diciembre".split(" "),SHORTMONTHS:"ene feb mar abr may jun jul ago sep oct nov dic".split(" "),STANDALONESHORTMONTHS:"ene. feb. mar. abr. may. jun. jul. ago. sep. oct. nov. dic.".split(" "),\nWEEKDAYS:"domingo lunes martes mi\\u00e9rcoles jueves viernes s\\u00e1bado".split(" "),STANDALONEWEEKDAYS:"domingo lunes martes mi\\u00e9rcoles jueves viernes s\\u00e1bado".split(" "),SHORTWEEKDAYS:"dom. lun. mar. mi\\u00e9. jue. vie. s\\u00e1b.".split(" "),STANDALONESHORTWEEKDAYS:"dom. lun. mar. mi\\u00e9. jue. vie. s\\u00e1b.".split(" "),NARROWWEEKDAYS:"DLMMJVS".split(""),STANDALONENARROWWEEKDAYS:"DLMMJVS".split(""),SHORTQUARTERS:["1er. trim.","2\\u00ba. trim.","3er. trim.","4\\u00ba trim."],QUARTERS:["1er. trimestre",\n"2\\u00ba. trimestre","3er. trimestre","4\\u00ba trimestre"],AMPMS:["a.m.","p.m."],DATEFORMATS:["EEEE, d \'de\' MMMM \'de\' y","d \'de\' MMMM \'de\' y","dd/MM/y","dd/MM/yy"],TIMEFORMATS:["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],DATETIMEFORMATS:["{1}, {0}","{1}, {0}","{1} {0}","{1} {0}"],FIRSTDAYOFWEEK:6,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:5};\ngoog.i18n.DateTimeSymbols_es_US={ERAS:["a. C.","d. C."],ERANAMES:["antes de Cristo","despu\\u00e9s de Cristo"],NARROWMONTHS:"efmamjjasond".split(""),STANDALONENARROWMONTHS:"EFMAMJJASOND".split(""),MONTHS:"enero febrero marzo abril mayo junio julio agosto septiembre octubre noviembre diciembre".split(" "),STANDALONEMONTHS:"enero febrero marzo abril mayo junio julio agosto septiembre octubre noviembre diciembre".split(" "),SHORTMONTHS:"ene. feb. mar. abr. may. jun. jul. ago. sep. oct. nov. dic.".split(" "),\nSTANDALONESHORTMONTHS:"ene. feb. mar. abr. may. jun. jul. ago. sep. oct. nov. dic.".split(" "),WEEKDAYS:"domingo lunes martes mi\\u00e9rcoles jueves viernes s\\u00e1bado".split(" "),STANDALONEWEEKDAYS:"domingo lunes martes mi\\u00e9rcoles jueves viernes s\\u00e1bado".split(" "),SHORTWEEKDAYS:"dom. lun. mar. mi\\u00e9. jue. vie. s\\u00e1b.".split(" "),STANDALONESHORTWEEKDAYS:"dom. lun. mar. mi\\u00e9. jue. vie. s\\u00e1b.".split(" "),NARROWWEEKDAYS:"dlmmjvs".split(""),STANDALONENARROWWEEKDAYS:"DLMMJVS".split(""),\nSHORTQUARTERS:["T1","T2","T3","T4"],QUARTERS:["1.er trimestre","2.\\u00ba trimestre","3.er trimestre","4.\\u00ba trimestre"],AMPMS:["AM","PM"],DATEFORMATS:["EEEE, d \'de\' MMMM \'de\' y","d \'de\' MMMM \'de\' y","d MMM y","d/M/yy"],TIMEFORMATS:["h:mm:ss a zzzz","h:mm:ss a z","h:mm:ss a","h:mm a"],DATETIMEFORMATS:["{1}, {0}","{1}, {0}","{1} {0}","{1} {0}"],FIRSTDAYOFWEEK:6,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:5};\ngoog.i18n.DateTimeSymbols_et={ERAS:["eKr","pKr"],ERANAMES:["enne Kristust","p\\u00e4rast Kristust"],NARROWMONTHS:"JVMAMJJASOND".split(""),STANDALONENARROWMONTHS:"JVMAMJJASOND".split(""),MONTHS:"jaanuar veebruar m\\u00e4rts aprill mai juuni juuli august september oktoober november detsember".split(" "),STANDALONEMONTHS:"jaanuar veebruar m\\u00e4rts aprill mai juuni juuli august september oktoober november detsember".split(" "),SHORTMONTHS:"jaan veebr m\\u00e4rts apr mai juuni juuli aug sept okt nov dets".split(" "),\nSTANDALONESHORTMONTHS:"jaan veebr m\\u00e4rts apr mai juuni juuli aug sept okt nov dets".split(" "),WEEKDAYS:"p\\u00fchap\\u00e4ev esmasp\\u00e4ev teisip\\u00e4ev kolmap\\u00e4ev neljap\\u00e4ev reede laup\\u00e4ev".split(" "),STANDALONEWEEKDAYS:"p\\u00fchap\\u00e4ev esmasp\\u00e4ev teisip\\u00e4ev kolmap\\u00e4ev neljap\\u00e4ev reede laup\\u00e4ev".split(" "),SHORTWEEKDAYS:"PETKNRL".split(""),STANDALONESHORTWEEKDAYS:"PETKNRL".split(""),NARROWWEEKDAYS:"PETKNRL".split(""),STANDALONENARROWWEEKDAYS:"PETKNRL".split(""),\nSHORTQUARTERS:["K1","K2","K3","K4"],QUARTERS:["1. kvartal","2. kvartal","3. kvartal","4. kvartal"],AMPMS:["AM","PM"],DATEFORMATS:["EEEE, d. MMMM y","d. MMMM y","d. MMM y","dd.MM.yy"],TIMEFORMATS:["H:mm.ss zzzz","H:mm.ss z","H:mm.ss","H:mm"],DATETIMEFORMATS:["{1} {0}","{1} {0}","{1} {0}","{1} {0}"],FIRSTDAYOFWEEK:0,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:3};\ngoog.i18n.DateTimeSymbols_eu={ERAS:["K.a.","K.o."],ERANAMES:["K.a.","K.o."],NARROWMONTHS:"UOMAMEUAIUAA".split(""),STANDALONENARROWMONTHS:"UOMAMEUAIUAA".split(""),MONTHS:"urtarrilak otsailak martxoak apirilak maiatzak ekainak uztailak abuztuak irailak urriak azaroak abenduak".split(" "),STANDALONEMONTHS:"Urtarrila Otsaila Martxoa Apirila Maiatza Ekaina Uztaila Abuztua Iraila Urria Azaroa Abendua".split(" "),SHORTMONTHS:"urt. ots. mar. api. mai. eka. uzt. abu. ira. urr. aza. abe.".split(" "),STANDALONESHORTMONTHS:"Urt. Ots. Mar. Api. Mai. Eka. Uzt. Abu. Ira. Urr. Aza. Abe.".split(" "),\nWEEKDAYS:"igandea astelehena asteartea asteazkena osteguna ostirala larunbata".split(" "),STANDALONEWEEKDAYS:"Igandea Astelehena Asteartea Asteazkena Osteguna Ostirala Larunbata".split(" "),SHORTWEEKDAYS:"ig. al. ar. az. og. or. lr.".split(" "),STANDALONESHORTWEEKDAYS:"Ig. Al. Ar. Az. Og. Or. Lr.".split(" "),NARROWWEEKDAYS:"IAAAOOL".split(""),STANDALONENARROWWEEKDAYS:"IAAAOOL".split(""),SHORTQUARTERS:["1Hh","2Hh","3Hh","4Hh"],QUARTERS:["1. hiruhilekoa","2. hiruhilekoa","3. hiruhilekoa","4. hiruhilekoa"],\nAMPMS:["AM","PM"],DATEFORMATS:["y(\'e\')\'ko\' MMMM d, EEEE","y(\'e\')\'ko\' MMMM d","y MMM d","y/MM/dd"],TIMEFORMATS:["HH:mm:ss (zzzz)","HH:mm:ss (z)","HH:mm:ss","HH:mm"],DATETIMEFORMATS:["{1} {0}","{1} {0}","{1} {0}","{1} {0}"],FIRSTDAYOFWEEK:0,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:3};\ngoog.i18n.DateTimeSymbols_fa={ZERODIGIT:1776,ERAS:["\\u0642.\\u0645.","\\u0645."],ERANAMES:["\\u0642\\u0628\\u0644 \\u0627\\u0632 \\u0645\\u06cc\\u0644\\u0627\\u062f","\\u0645\\u06cc\\u0644\\u0627\\u062f\\u06cc"],NARROWMONTHS:"\\u0698\\u0641\\u0645\\u0622\\u0645\\u0698\\u0698\\u0627\\u0633\\u0627\\u0646\\u062f".split(""),STANDALONENARROWMONTHS:"\\u0698\\u0641\\u0645\\u0622\\u0645\\u0698\\u0698\\u0627\\u0633\\u0627\\u0646\\u062f".split(""),MONTHS:"\\u0698\\u0627\\u0646\\u0648\\u06cc\\u0647\\u0654 \\u0641\\u0648\\u0631\\u06cc\\u0647\\u0654 \\u0645\\u0627\\u0631\\u0633 \\u0622\\u0648\\u0631\\u06cc\\u0644 \\u0645\\u0647\\u0654 \\u0698\\u0648\\u0626\\u0646 \\u0698\\u0648\\u0626\\u06cc\\u0647\\u0654 \\u0627\\u0648\\u062a \\u0633\\u067e\\u062a\\u0627\\u0645\\u0628\\u0631 \\u0627\\u06a9\\u062a\\u0628\\u0631 \\u0646\\u0648\\u0627\\u0645\\u0628\\u0631 \\u062f\\u0633\\u0627\\u0645\\u0628\\u0631".split(" "),\nSTANDALONEMONTHS:"\\u0698\\u0627\\u0646\\u0648\\u06cc\\u0647 \\u0641\\u0648\\u0631\\u06cc\\u0647 \\u0645\\u0627\\u0631\\u0633 \\u0622\\u0648\\u0631\\u06cc\\u0644 \\u0645\\u0647 \\u0698\\u0648\\u0626\\u0646 \\u0698\\u0648\\u0626\\u06cc\\u0647 \\u0627\\u0648\\u062a \\u0633\\u067e\\u062a\\u0627\\u0645\\u0628\\u0631 \\u0627\\u06a9\\u062a\\u0628\\u0631 \\u0646\\u0648\\u0627\\u0645\\u0628\\u0631 \\u062f\\u0633\\u0627\\u0645\\u0628\\u0631".split(" "),SHORTMONTHS:"\\u0698\\u0627\\u0646\\u0648\\u06cc\\u0647\\u0654 \\u0641\\u0648\\u0631\\u06cc\\u0647\\u0654 \\u0645\\u0627\\u0631\\u0633 \\u0622\\u0648\\u0631\\u06cc\\u0644 \\u0645\\u0647\\u0654 \\u0698\\u0648\\u0626\\u0646 \\u0698\\u0648\\u0626\\u06cc\\u0647\\u0654 \\u0627\\u0648\\u062a \\u0633\\u067e\\u062a\\u0627\\u0645\\u0628\\u0631 \\u0627\\u06a9\\u062a\\u0628\\u0631 \\u0646\\u0648\\u0627\\u0645\\u0628\\u0631 \\u062f\\u0633\\u0627\\u0645\\u0628\\u0631".split(" "),\nSTANDALONESHORTMONTHS:"\\u0698\\u0627\\u0646\\u0648\\u06cc\\u0647 \\u0641\\u0648\\u0631\\u06cc\\u0647 \\u0645\\u0627\\u0631\\u0633 \\u0622\\u0648\\u0631\\u06cc\\u0644 \\u0645\\u0647 \\u0698\\u0648\\u0626\\u0646 \\u0698\\u0648\\u0626\\u06cc\\u0647 \\u0627\\u0648\\u062a \\u0633\\u067e\\u062a\\u0627\\u0645\\u0628\\u0631 \\u0627\\u06a9\\u062a\\u0628\\u0631 \\u0646\\u0648\\u0627\\u0645\\u0628\\u0631 \\u062f\\u0633\\u0627\\u0645\\u0628\\u0631".split(" "),WEEKDAYS:"\\u06cc\\u06a9\\u0634\\u0646\\u0628\\u0647 \\u062f\\u0648\\u0634\\u0646\\u0628\\u0647 \\u0633\\u0647\\u200c\\u0634\\u0646\\u0628\\u0647 \\u0686\\u0647\\u0627\\u0631\\u0634\\u0646\\u0628\\u0647 \\u067e\\u0646\\u062c\\u0634\\u0646\\u0628\\u0647 \\u062c\\u0645\\u0639\\u0647 \\u0634\\u0646\\u0628\\u0647".split(" "),\nSTANDALONEWEEKDAYS:"\\u06cc\\u06a9\\u0634\\u0646\\u0628\\u0647 \\u062f\\u0648\\u0634\\u0646\\u0628\\u0647 \\u0633\\u0647\\u200c\\u0634\\u0646\\u0628\\u0647 \\u0686\\u0647\\u0627\\u0631\\u0634\\u0646\\u0628\\u0647 \\u067e\\u0646\\u062c\\u0634\\u0646\\u0628\\u0647 \\u062c\\u0645\\u0639\\u0647 \\u0634\\u0646\\u0628\\u0647".split(" "),SHORTWEEKDAYS:"\\u06cc\\u06a9\\u0634\\u0646\\u0628\\u0647 \\u062f\\u0648\\u0634\\u0646\\u0628\\u0647 \\u0633\\u0647\\u200c\\u0634\\u0646\\u0628\\u0647 \\u0686\\u0647\\u0627\\u0631\\u0634\\u0646\\u0628\\u0647 \\u067e\\u0646\\u062c\\u0634\\u0646\\u0628\\u0647 \\u062c\\u0645\\u0639\\u0647 \\u0634\\u0646\\u0628\\u0647".split(" "),\nSTANDALONESHORTWEEKDAYS:"\\u06cc\\u06a9\\u0634\\u0646\\u0628\\u0647 \\u062f\\u0648\\u0634\\u0646\\u0628\\u0647 \\u0633\\u0647\\u200c\\u0634\\u0646\\u0628\\u0647 \\u0686\\u0647\\u0627\\u0631\\u0634\\u0646\\u0628\\u0647 \\u067e\\u0646\\u062c\\u0634\\u0646\\u0628\\u0647 \\u062c\\u0645\\u0639\\u0647 \\u0634\\u0646\\u0628\\u0647".split(" "),NARROWWEEKDAYS:"\\u06cc\\u062f\\u0633\\u0686\\u067e\\u062c\\u0634".split(""),STANDALONENARROWWEEKDAYS:"\\u06cc\\u062f\\u0633\\u0686\\u067e\\u062c\\u0634".split(""),SHORTQUARTERS:["\\u0633\\u200c\\u0645\\u06f1","\\u0633\\u200c\\u0645\\u06f2",\n"\\u0633\\u200c\\u0645\\u06f3","\\u0633\\u200c\\u0645\\u06f4"],QUARTERS:["\\u0633\\u0647\\u200c\\u0645\\u0627\\u0647\\u0647\\u0654 \\u0627\\u0648\\u0644","\\u0633\\u0647\\u200c\\u0645\\u0627\\u0647\\u0647\\u0654 \\u062f\\u0648\\u0645","\\u0633\\u0647\\u200c\\u0645\\u0627\\u0647\\u0647\\u0654 \\u0633\\u0648\\u0645","\\u0633\\u0647\\u200c\\u0645\\u0627\\u0647\\u0647\\u0654 \\u0686\\u0647\\u0627\\u0631\\u0645"],AMPMS:["\\u0642\\u0628\\u0644\\u200c\\u0627\\u0632\\u0638\\u0647\\u0631","\\u0628\\u0639\\u062f\\u0627\\u0632\\u0638\\u0647\\u0631"],DATEFORMATS:["EEEE d MMMM y",\n"d MMMM y","d MMM y","y/M/d"],TIMEFORMATS:["H:mm:ss (zzzz)","H:mm:ss (z)","H:mm:ss","H:mm"],DATETIMEFORMATS:["{1}\\u060c \\u0633\\u0627\\u0639\\u062a {0}","{1}\\u060c \\u0633\\u0627\\u0639\\u062a {0}","{1}\\u060c\\u200f {0}","{1}\\u060c\\u200f {0}"],FIRSTDAYOFWEEK:5,WEEKENDRANGE:[4,4],FIRSTWEEKCUTOFFDAY:4};\ngoog.i18n.DateTimeSymbols_fi={ERAS:["eKr.","jKr."],ERANAMES:["ennen Kristuksen syntym\\u00e4\\u00e4","j\\u00e4lkeen Kristuksen syntym\\u00e4n"],NARROWMONTHS:"THMHTKHESLMJ".split(""),STANDALONENARROWMONTHS:"THMHTKHESLMJ".split(""),MONTHS:"tammikuuta helmikuuta maaliskuuta huhtikuuta toukokuuta kes\\u00e4kuuta hein\\u00e4kuuta elokuuta syyskuuta lokakuuta marraskuuta joulukuuta".split(" "),STANDALONEMONTHS:"tammikuu helmikuu maaliskuu huhtikuu toukokuu kes\\u00e4kuu hein\\u00e4kuu elokuu syyskuu lokakuu marraskuu joulukuu".split(" "),\nSHORTMONTHS:"tammikuuta helmikuuta maaliskuuta huhtikuuta toukokuuta kes\\u00e4kuuta hein\\u00e4kuuta elokuuta syyskuuta lokakuuta marraskuuta joulukuuta".split(" "),STANDALONESHORTMONTHS:"tammi helmi maalis huhti touko kes\\u00e4 hein\\u00e4 elo syys loka marras joulu".split(" "),WEEKDAYS:"sunnuntaina maanantaina tiistaina keskiviikkona torstaina perjantaina lauantaina".split(" "),STANDALONEWEEKDAYS:"sunnuntai maanantai tiistai keskiviikko torstai perjantai lauantai".split(" "),SHORTWEEKDAYS:"su ma ti ke to pe la".split(" "),\nSTANDALONESHORTWEEKDAYS:"su ma ti ke to pe la".split(" "),NARROWWEEKDAYS:"SMTKTPL".split(""),STANDALONENARROWWEEKDAYS:"SMTKTPL".split(""),SHORTQUARTERS:["1. nelj.","2. nelj.","3. nelj.","4. nelj."],QUARTERS:["1. nelj\\u00e4nnes","2. nelj\\u00e4nnes","3. nelj\\u00e4nnes","4. nelj\\u00e4nnes"],AMPMS:["ap.","ip."],DATEFORMATS:["cccc d. MMMM y","d. MMMM y","d.M.y","d.M.y"],TIMEFORMATS:["H.mm.ss zzzz","H.mm.ss z","H.mm.ss","H.mm"],DATETIMEFORMATS:["{1} \'klo\' {0}","{1} \'klo\' {0}","{1} \'klo\' {0}","{1} {0}"],\nFIRSTDAYOFWEEK:0,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:3};\ngoog.i18n.DateTimeSymbols_fil={ERAS:["BC","AD"],ERANAMES:["BC","AD"],NARROWMONTHS:"Ene Peb Mar Abr May Hun Hul Ago Set Okt Nob Dis".split(" "),STANDALONENARROWMONTHS:"E P M A M Hun Hul Ago Set Okt Nob Dis".split(" "),MONTHS:"Enero Pebrero Marso Abril Mayo Hunyo Hulyo Agosto Setyembre Oktubre Nobyembre Disyembre".split(" "),STANDALONEMONTHS:"Enero Pebrero Marso Abril Mayo Hunyo Hulyo Agosto Setyembre Oktubre Nobyembre Disyembre".split(" "),SHORTMONTHS:"Ene Peb Mar Abr May Hun Hul Ago Set Okt Nob Dis".split(" "),\nSTANDALONESHORTMONTHS:"Ene Peb Mar Abr May Hun Hul Ago Set Okt Nob Dis".split(" "),WEEKDAYS:"Linggo Lunes Martes Miyerkules Huwebes Biyernes Sabado".split(" "),STANDALONEWEEKDAYS:"Linggo Lunes Martes Miyerkules Huwebes Biyernes Sabado".split(" "),SHORTWEEKDAYS:"Lin Lun Mar Miy Huw Biy Sab".split(" "),STANDALONESHORTWEEKDAYS:"Lin Lun Mar Miy Huw Biy Sab".split(" "),NARROWWEEKDAYS:"Lin Lun Mar Miy Huw Biy Sab".split(" "),STANDALONENARROWWEEKDAYS:"Lin Lun Mar Miy Huw Biy Sab".split(" "),SHORTQUARTERS:["Q1",\n"Q2","Q3","Q4"],QUARTERS:["ika-1 quarter","ika-2 quarter","ika-3 quarter","ika-4 na quarter"],AMPMS:["AM","PM"],DATEFORMATS:["EEEE, MMMM d, y","MMMM d, y","MMM d, y","M/d/yy"],TIMEFORMATS:["h:mm:ss a zzzz","h:mm:ss a z","h:mm:ss a","h:mm a"],DATETIMEFORMATS:["{1} \'nang\' {0}","{1} \'nang\' {0}","{1}, {0}","{1}, {0}"],FIRSTDAYOFWEEK:6,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:5};\ngoog.i18n.DateTimeSymbols_fr={ERAS:["av. J.-C.","ap. J.-C."],ERANAMES:["avant J\\u00e9sus-Christ","apr\\u00e8s J\\u00e9sus-Christ"],NARROWMONTHS:"JFMAMJJASOND".split(""),STANDALONENARROWMONTHS:"JFMAMJJASOND".split(""),MONTHS:"janvier f\\u00e9vrier mars avril mai juin juillet ao\\u00fbt septembre octobre novembre d\\u00e9cembre".split(" "),STANDALONEMONTHS:"janvier f\\u00e9vrier mars avril mai juin juillet ao\\u00fbt septembre octobre novembre d\\u00e9cembre".split(" "),SHORTMONTHS:"janv. f\\u00e9vr. mars avr. mai juin juil. ao\\u00fbt sept. oct. nov. d\\u00e9c.".split(" "),\nSTANDALONESHORTMONTHS:"janv. f\\u00e9vr. mars avr. mai juin juil. ao\\u00fbt sept. oct. nov. d\\u00e9c.".split(" "),WEEKDAYS:"dimanche lundi mardi mercredi jeudi vendredi samedi".split(" "),STANDALONEWEEKDAYS:"dimanche lundi mardi mercredi jeudi vendredi samedi".split(" "),SHORTWEEKDAYS:"dim. lun. mar. mer. jeu. ven. sam.".split(" "),STANDALONESHORTWEEKDAYS:"dim. lun. mar. mer. jeu. ven. sam.".split(" "),NARROWWEEKDAYS:"DLMMJVS".split(""),STANDALONENARROWWEEKDAYS:"DLMMJVS".split(""),SHORTQUARTERS:["T1",\n"T2","T3","T4"],QUARTERS:["1er trimestre","2e trimestre","3e trimestre","4e trimestre"],AMPMS:["AM","PM"],DATEFORMATS:["EEEE d MMMM y","d MMMM y","d MMM y","dd/MM/y"],TIMEFORMATS:["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],DATETIMEFORMATS:["{1} \'\\u00e0\' {0}","{1} \'\\u00e0\' {0}","{1} \'\\u00e0\' {0}","{1} {0}"],FIRSTDAYOFWEEK:0,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:3};\ngoog.i18n.DateTimeSymbols_fr_CA={ERAS:["av. J.-C.","ap. J.-C."],ERANAMES:["avant J\\u00e9sus-Christ","apr\\u00e8s J\\u00e9sus-Christ"],NARROWMONTHS:"JFMAMJJASOND".split(""),STANDALONENARROWMONTHS:"JFMAMJJASOND".split(""),MONTHS:"janvier f\\u00e9vrier mars avril mai juin juillet ao\\u00fbt septembre octobre novembre d\\u00e9cembre".split(" "),STANDALONEMONTHS:"janvier f\\u00e9vrier mars avril mai juin juillet ao\\u00fbt septembre octobre novembre d\\u00e9cembre".split(" "),SHORTMONTHS:"janv. f\\u00e9vr. mars avr. mai juin juil. ao\\u00fbt sept. oct. nov. d\\u00e9c.".split(" "),\nSTANDALONESHORTMONTHS:"janv. f\\u00e9vr. mars avr. mai juin juil. ao\\u00fbt sept. oct. nov. d\\u00e9c.".split(" "),WEEKDAYS:"dimanche lundi mardi mercredi jeudi vendredi samedi".split(" "),STANDALONEWEEKDAYS:"dimanche lundi mardi mercredi jeudi vendredi samedi".split(" "),SHORTWEEKDAYS:"dim. lun. mar. mer. jeu. ven. sam.".split(" "),STANDALONESHORTWEEKDAYS:"dim. lun. mar. mer. jeu. ven. sam.".split(" "),NARROWWEEKDAYS:"DLMMJVS".split(""),STANDALONENARROWWEEKDAYS:"DLMMJVS".split(""),SHORTQUARTERS:["T1",\n"T2","T3","T4"],QUARTERS:["1er trimestre","2e trimestre","3e trimestre","4e trimestre"],AMPMS:["AM","PM"],DATEFORMATS:["EEEE d MMMM y","d MMMM y","d MMM y","yy-MM-dd"],TIMEFORMATS:["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],DATETIMEFORMATS:["{1} \'\\u00e0\' {0}","{1} \'\\u00e0\' {0}","{1} {0}","{1} {0}"],FIRSTDAYOFWEEK:6,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:5};\ngoog.i18n.DateTimeSymbols_ga={ERAS:["RC","AD"],ERANAMES:["Roimh Chr\\u00edost","Anno Domini"],NARROWMONTHS:"EFMABMILMDSN".split(""),STANDALONENARROWMONTHS:"EFMABMILMDSN".split(""),MONTHS:"Ean\\u00e1ir;Feabhra;M\\u00e1rta;Aibre\\u00e1n;Bealtaine;Meitheamh;I\\u00fail;L\\u00fanasa;Me\\u00e1n F\\u00f3mhair;Deireadh F\\u00f3mhair;Samhain;Nollaig".split(";"),STANDALONEMONTHS:"Ean\\u00e1ir;Feabhra;M\\u00e1rta;Aibre\\u00e1n;Bealtaine;Meitheamh;I\\u00fail;L\\u00fanasa;Me\\u00e1n F\\u00f3mhair;Deireadh F\\u00f3mhair;Samhain;Nollaig".split(";"),\nSHORTMONTHS:"Ean Feabh M\\u00e1rta Aib Beal Meith I\\u00fail L\\u00fan MF\\u00f3mh DF\\u00f3mh Samh Noll".split(" "),STANDALONESHORTMONTHS:"Ean Feabh M\\u00e1rta Aib Beal Meith I\\u00fail L\\u00fan MF\\u00f3mh DF\\u00f3mh Samh Noll".split(" "),WEEKDAYS:"D\\u00e9 Domhnaigh;D\\u00e9 Luain;D\\u00e9 M\\u00e1irt;D\\u00e9 C\\u00e9adaoin;D\\u00e9ardaoin;D\\u00e9 hAoine;D\\u00e9 Sathairn".split(";"),STANDALONEWEEKDAYS:"D\\u00e9 Domhnaigh;D\\u00e9 Luain;D\\u00e9 M\\u00e1irt;D\\u00e9 C\\u00e9adaoin;D\\u00e9ardaoin;D\\u00e9 hAoine;D\\u00e9 Sathairn".split(";"),\nSHORTWEEKDAYS:"Domh Luan M\\u00e1irt C\\u00e9ad D\\u00e9ar Aoine Sath".split(" "),STANDALONESHORTWEEKDAYS:"Domh Luan M\\u00e1irt C\\u00e9ad D\\u00e9ar Aoine Sath".split(" "),NARROWWEEKDAYS:"DLMCDAS".split(""),STANDALONENARROWWEEKDAYS:"DLMCDAS".split(""),SHORTQUARTERS:["R1","R2","R3","R4"],QUARTERS:["1\\u00fa r\\u00e1ithe","2\\u00fa r\\u00e1ithe","3\\u00fa r\\u00e1ithe","4\\u00fa r\\u00e1ithe"],AMPMS:["a.m.","p.m."],DATEFORMATS:["EEEE d MMMM y","d MMMM y","d MMM y","dd/MM/y"],TIMEFORMATS:["HH:mm:ss zzzz","HH:mm:ss z",\n"HH:mm:ss","HH:mm"],DATETIMEFORMATS:["{1} {0}","{1} {0}","{1} {0}","{1} {0}"],FIRSTDAYOFWEEK:6,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:2};\ngoog.i18n.DateTimeSymbols_gl={ERAS:["a.C.","d.C."],ERANAMES:["antes de Cristo","despois de Cristo"],NARROWMONTHS:"XFMAMXXASOND".split(""),STANDALONENARROWMONTHS:"XFMAMXXASOND".split(""),MONTHS:"xaneiro febreiro marzo abril maio xu\\u00f1o xullo agosto setembro outubro novembro decembro".split(" "),STANDALONEMONTHS:"Xaneiro Febreiro Marzo Abril Maio Xu\\u00f1o Xullo Agosto Setembro Outubro Novembro Decembro".split(" "),SHORTMONTHS:"xan feb mar abr mai xu\\u00f1 xul ago set out nov dec".split(" "),STANDALONESHORTMONTHS:"Xan Feb Mar Abr Mai Xu\\u00f1 Xul Ago Set Out Nov Dec".split(" "),\nWEEKDAYS:"domingo luns martes m\\u00e9rcores xoves venres s\\u00e1bado".split(" "),STANDALONEWEEKDAYS:"Domingo Luns Martes M\\u00e9rcores Xoves Venres S\\u00e1bado".split(" "),SHORTWEEKDAYS:"dom luns mar m\\u00e9r xov ven s\\u00e1b".split(" "),STANDALONESHORTWEEKDAYS:"Dom Lun Mar M\\u00e9r Xov Ven S\\u00e1b".split(" "),NARROWWEEKDAYS:"DLMMXVS".split(""),STANDALONENARROWWEEKDAYS:"DLMMXVS".split(""),SHORTQUARTERS:["T1","T2","T3","T4"],QUARTERS:["1\\u00ba trimestre","2\\u00ba trimestre","3\\u00ba trimestre","4\\u00ba trimestre"],\nAMPMS:["a.m.","p.m."],DATEFORMATS:["EEEE dd MMMM y","dd MMMM y","d MMM, y","dd/MM/yy"],TIMEFORMATS:["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],DATETIMEFORMATS:["{1} {0}","{1} {0}","{1} {0}","{1} {0}"],FIRSTDAYOFWEEK:0,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:3};\ngoog.i18n.DateTimeSymbols_gsw={ERAS:["v. Chr.","n. Chr."],ERANAMES:["v. Chr.","n. Chr."],NARROWMONTHS:"JFMAMJJASOND".split(""),STANDALONENARROWMONTHS:"JFMAMJJASOND".split(""),MONTHS:"Januar Februar M\\u00e4rz April Mai Juni Juli Auguscht Sept\\u00e4mber Oktoober Nov\\u00e4mber Dez\\u00e4mber".split(" "),STANDALONEMONTHS:"Januar Februar M\\u00e4rz April Mai Juni Juli Auguscht Sept\\u00e4mber Oktoober Nov\\u00e4mber Dez\\u00e4mber".split(" "),SHORTMONTHS:"Jan Feb M\\u00e4r Apr Mai Jun Jul Aug Sep Okt Nov Dez".split(" "),\nSTANDALONESHORTMONTHS:"Jan Feb M\\u00e4r Apr Mai Jun Jul Aug Sep Okt Nov Dez".split(" "),WEEKDAYS:"Sunntig M\\u00e4\\u00e4ntig Ziischtig Mittwuch Dunschtig Friitig Samschtig".split(" "),STANDALONEWEEKDAYS:"Sunntig M\\u00e4\\u00e4ntig Ziischtig Mittwuch Dunschtig Friitig Samschtig".split(" "),SHORTWEEKDAYS:"Su. M\\u00e4. Zi. Mi. Du. Fr. Sa.".split(" "),STANDALONESHORTWEEKDAYS:"Su. M\\u00e4. Zi. Mi. Du. Fr. Sa.".split(" "),NARROWWEEKDAYS:"SMDMDFS".split(""),STANDALONENARROWWEEKDAYS:"SMDMDFS".split(""),SHORTQUARTERS:["Q1",\n"Q2","Q3","Q4"],QUARTERS:["1. Quartal","2. Quartal","3. Quartal","4. Quartal"],AMPMS:["vorm.","nam."],DATEFORMATS:["EEEE, d. MMMM y","d. MMMM y","dd.MM.y","dd.MM.yy"],TIMEFORMATS:["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],DATETIMEFORMATS:["{1} {0}","{1} {0}","{1} {0}","{1} {0}"],FIRSTDAYOFWEEK:0,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:3};\ngoog.i18n.DateTimeSymbols_gu={ERAS:["\\u0a88.\\u0ab8.\\u0aaa\\u0ac2\\u0ab0\\u0acd\\u0ab5\\u0ac7","\\u0a88.\\u0ab8."],ERANAMES:["\\u0a88\\u0ab8\\u0ab5\\u0ac0\\u0ab8\\u0aa8 \\u0aaa\\u0ac2\\u0ab0\\u0acd\\u0ab5\\u0ac7","\\u0a87\\u0ab8\\u0ab5\\u0ac0\\u0ab8\\u0aa8"],NARROWMONTHS:"\\u0a9c\\u0abe \\u0aab\\u0ac7 \\u0aae\\u0abe \\u0a8f \\u0aae\\u0ac7 \\u0a9c\\u0ac2 \\u0a9c\\u0ac1 \\u0a91 \\u0ab8 \\u0a91 \\u0aa8 \\u0aa1\\u0abf".split(" "),STANDALONENARROWMONTHS:"\\u0a9c\\u0abe \\u0aab\\u0ac7 \\u0aae\\u0abe \\u0a8f \\u0aae\\u0ac7 \\u0a9c\\u0ac2 \\u0a9c\\u0ac1 \\u0a91 \\u0ab8 \\u0a91 \\u0aa8 \\u0aa1\\u0abf".split(" "),\nMONTHS:"\\u0a9c\\u0abe\\u0aa8\\u0acd\\u0aaf\\u0ac1\\u0a86\\u0ab0\\u0ac0 \\u0aab\\u0ac7\\u0aac\\u0acd\\u0ab0\\u0ac1\\u0a86\\u0ab0\\u0ac0 \\u0aae\\u0abe\\u0ab0\\u0acd\\u0a9a \\u0a8f\\u0aaa\\u0acd\\u0ab0\\u0abf\\u0ab2 \\u0aae\\u0ac7 \\u0a9c\\u0ac2\\u0aa8 \\u0a9c\\u0ac1\\u0ab2\\u0abe\\u0a88 \\u0a91\\u0a97\\u0ab8\\u0acd\\u0a9f \\u0ab8\\u0aaa\\u0acd\\u0a9f\\u0ac7\\u0aae\\u0acd\\u0aac\\u0ab0 \\u0a91\\u0a95\\u0acd\\u0a9f\\u0acb\\u0aac\\u0ab0 \\u0aa8\\u0ab5\\u0ac7\\u0aae\\u0acd\\u0aac\\u0ab0 \\u0aa1\\u0abf\\u0ab8\\u0ac7\\u0aae\\u0acd\\u0aac\\u0ab0".split(" "),STANDALONEMONTHS:"\\u0a9c\\u0abe\\u0aa8\\u0acd\\u0aaf\\u0ac1\\u0a86\\u0ab0\\u0ac0 \\u0aab\\u0ac7\\u0aac\\u0acd\\u0ab0\\u0ac1\\u0a86\\u0ab0\\u0ac0 \\u0aae\\u0abe\\u0ab0\\u0acd\\u0a9a \\u0a8f\\u0aaa\\u0acd\\u0ab0\\u0abf\\u0ab2 \\u0aae\\u0ac7 \\u0a9c\\u0ac2\\u0aa8 \\u0a9c\\u0ac1\\u0ab2\\u0abe\\u0a88 \\u0a91\\u0a97\\u0ab8\\u0acd\\u0a9f \\u0ab8\\u0aaa\\u0acd\\u0a9f\\u0ac7\\u0aae\\u0acd\\u0aac\\u0ab0 \\u0a91\\u0a95\\u0acd\\u0a9f\\u0acb\\u0aac\\u0ab0 \\u0aa8\\u0ab5\\u0ac7\\u0aae\\u0acd\\u0aac\\u0ab0 \\u0aa1\\u0abf\\u0ab8\\u0ac7\\u0aae\\u0acd\\u0aac\\u0ab0".split(" "),\nSHORTMONTHS:"\\u0a9c\\u0abe\\u0aa8\\u0acd\\u0aaf\\u0ac1 \\u0aab\\u0ac7\\u0aac\\u0acd\\u0ab0\\u0ac1 \\u0aae\\u0abe\\u0ab0\\u0acd\\u0a9a \\u0a8f\\u0aaa\\u0acd\\u0ab0\\u0abf\\u0ab2 \\u0aae\\u0ac7 \\u0a9c\\u0ac2\\u0aa8 \\u0a9c\\u0ac1\\u0ab2\\u0abe\\u0a88 \\u0a91\\u0a97\\u0ab8\\u0acd\\u0a9f \\u0ab8\\u0aaa\\u0acd\\u0a9f\\u0ac7 \\u0a91\\u0a95\\u0acd\\u0a9f\\u0acb \\u0aa8\\u0ab5\\u0ac7 \\u0aa1\\u0abf\\u0ab8\\u0ac7".split(" "),STANDALONESHORTMONTHS:"\\u0a9c\\u0abe\\u0aa8\\u0acd\\u0aaf\\u0ac1 \\u0aab\\u0ac7\\u0aac\\u0acd\\u0ab0\\u0ac1 \\u0aae\\u0abe\\u0ab0\\u0acd\\u0a9a \\u0a8f\\u0aaa\\u0acd\\u0ab0\\u0abf\\u0ab2 \\u0aae\\u0ac7 \\u0a9c\\u0ac2\\u0aa8 \\u0a9c\\u0ac1\\u0ab2\\u0abe\\u0a88 \\u0a91\\u0a97\\u0ab8\\u0acd\\u0a9f \\u0ab8\\u0aaa\\u0acd\\u0a9f\\u0ac7 \\u0a91\\u0a95\\u0acd\\u0a9f\\u0acb \\u0aa8\\u0ab5\\u0ac7 \\u0aa1\\u0abf\\u0ab8\\u0ac7".split(" "),\nWEEKDAYS:"\\u0ab0\\u0ab5\\u0abf\\u0ab5\\u0abe\\u0ab0 \\u0ab8\\u0acb\\u0aae\\u0ab5\\u0abe\\u0ab0 \\u0aae\\u0a82\\u0a97\\u0ab3\\u0ab5\\u0abe\\u0ab0 \\u0aac\\u0ac1\\u0aa7\\u0ab5\\u0abe\\u0ab0 \\u0a97\\u0ac1\\u0ab0\\u0ac1\\u0ab5\\u0abe\\u0ab0 \\u0ab6\\u0ac1\\u0a95\\u0acd\\u0ab0\\u0ab5\\u0abe\\u0ab0 \\u0ab6\\u0aa8\\u0abf\\u0ab5\\u0abe\\u0ab0".split(" "),STANDALONEWEEKDAYS:"\\u0ab0\\u0ab5\\u0abf\\u0ab5\\u0abe\\u0ab0 \\u0ab8\\u0acb\\u0aae\\u0ab5\\u0abe\\u0ab0 \\u0aae\\u0a82\\u0a97\\u0ab3\\u0ab5\\u0abe\\u0ab0 \\u0aac\\u0ac1\\u0aa7\\u0ab5\\u0abe\\u0ab0 \\u0a97\\u0ac1\\u0ab0\\u0ac1\\u0ab5\\u0abe\\u0ab0 \\u0ab6\\u0ac1\\u0a95\\u0acd\\u0ab0\\u0ab5\\u0abe\\u0ab0 \\u0ab6\\u0aa8\\u0abf\\u0ab5\\u0abe\\u0ab0".split(" "),\nSHORTWEEKDAYS:"\\u0ab0\\u0ab5\\u0abf \\u0ab8\\u0acb\\u0aae \\u0aae\\u0a82\\u0a97\\u0ab3 \\u0aac\\u0ac1\\u0aa7 \\u0a97\\u0ac1\\u0ab0\\u0ac1 \\u0ab6\\u0ac1\\u0a95\\u0acd\\u0ab0 \\u0ab6\\u0aa8\\u0abf".split(" "),STANDALONESHORTWEEKDAYS:"\\u0ab0\\u0ab5\\u0abf \\u0ab8\\u0acb\\u0aae \\u0aae\\u0a82\\u0a97\\u0ab3 \\u0aac\\u0ac1\\u0aa7 \\u0a97\\u0ac1\\u0ab0\\u0ac1 \\u0ab6\\u0ac1\\u0a95\\u0acd\\u0ab0 \\u0ab6\\u0aa8\\u0abf".split(" "),NARROWWEEKDAYS:"\\u0ab0 \\u0ab8\\u0acb \\u0aae\\u0a82 \\u0aac\\u0ac1 \\u0a97\\u0ac1 \\u0ab6\\u0ac1 \\u0ab6".split(" "),STANDALONENARROWWEEKDAYS:"\\u0ab0 \\u0ab8\\u0acb \\u0aae\\u0a82 \\u0aac\\u0ac1 \\u0a97\\u0ac1 \\u0ab6\\u0ac1 \\u0ab6".split(" "),\nSHORTQUARTERS:["Q1","Q2","Q3","Q4"],QUARTERS:["\\u0aaa\\u0ab9\\u0ac7\\u0ab2\\u0acb \\u0aa4\\u0acd\\u0ab0\\u0abf\\u0aae\\u0abe\\u0ab8","\\u0aac\\u0ac0\\u0a9c\\u0acb \\u0aa4\\u0acd\\u0ab0\\u0abf\\u0aae\\u0abe\\u0ab8","\\u0aa4\\u0acd\\u0ab0\\u0ac0\\u0a9c\\u0acb \\u0aa4\\u0acd\\u0ab0\\u0abf\\u0aae\\u0abe\\u0ab8","\\u0a9a\\u0acb\\u0aa5\\u0acb \\u0aa4\\u0acd\\u0ab0\\u0abf\\u0aae\\u0abe\\u0ab8"],AMPMS:["AM","PM"],DATEFORMATS:["EEEE, d MMMM, y","d MMMM, y","d MMM, y","d/M/yy"],TIMEFORMATS:["hh:mm:ss a zzzz","hh:mm:ss a z","hh:mm:ss a","hh:mm a"],DATETIMEFORMATS:["{1} {0}",\n"{1} {0}","{1} {0}","{1} {0}"],FIRSTDAYOFWEEK:6,WEEKENDRANGE:[6,6],FIRSTWEEKCUTOFFDAY:5};\ngoog.i18n.DateTimeSymbols_haw={ERAS:["BCE","CE"],ERANAMES:["BCE","CE"],NARROWMONTHS:"1 2 3 4 5 6 7 8 9 10 11 12".split(" "),STANDALONENARROWMONTHS:"1 2 3 4 5 6 7 8 9 10 11 12".split(" "),MONTHS:"Ianuali Pepeluali Malaki \\u02bbApelila Mei Iune Iulai \\u02bbAukake Kepakemapa \\u02bbOkakopa Nowemapa Kekemapa".split(" "),STANDALONEMONTHS:"Ianuali Pepeluali Malaki \\u02bbApelila Mei Iune Iulai \\u02bbAukake Kepakemapa \\u02bbOkakopa Nowemapa Kekemapa".split(" "),SHORTMONTHS:"Ian. Pep. Mal. \\u02bbAp. Mei Iun. Iul. \\u02bbAu. Kep. \\u02bbOk. Now. Kek.".split(" "),\nSTANDALONESHORTMONTHS:"Ian. Pep. Mal. \\u02bbAp. Mei Iun. Iul. \\u02bbAu. Kep. \\u02bbOk. Now. Kek.".split(" "),WEEKDAYS:"L\\u0101pule Po\\u02bbakahi Po\\u02bbalua Po\\u02bbakolu Po\\u02bbah\\u0101 Po\\u02bbalima Po\\u02bbaono".split(" "),STANDALONEWEEKDAYS:"L\\u0101pule Po\\u02bbakahi Po\\u02bbalua Po\\u02bbakolu Po\\u02bbah\\u0101 Po\\u02bbalima Po\\u02bbaono".split(" "),SHORTWEEKDAYS:"LP P1 P2 P3 P4 P5 P6".split(" "),STANDALONESHORTWEEKDAYS:"LP P1 P2 P3 P4 P5 P6".split(" "),NARROWWEEKDAYS:"SMTWTFS".split(""),STANDALONENARROWWEEKDAYS:"SMTWTFS".split(""),\nSHORTQUARTERS:["Q1","Q2","Q3","Q4"],QUARTERS:["Q1","Q2","Q3","Q4"],AMPMS:["AM","PM"],DATEFORMATS:["EEEE, d MMMM y","d MMMM y","d MMM y","d/M/yy"],TIMEFORMATS:["h:mm:ss a zzzz","h:mm:ss a z","h:mm:ss a","h:mm a"],DATETIMEFORMATS:["{1} {0}","{1} {0}","{1} {0}","{1} {0}"],FIRSTDAYOFWEEK:6,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:5};\ngoog.i18n.DateTimeSymbols_he={ERAS:["\\u05dc\\u05e4\\u05e0\\u05d4\\u05f4\\u05e1","\\u05dc\\u05e1\\u05e4\\u05d9\\u05e8\\u05d4"],ERANAMES:["\\u05dc\\u05e4\\u05e0\\u05d9 \\u05d4\\u05e1\\u05e4\\u05d9\\u05e8\\u05d4","\\u05dc\\u05e1\\u05e4\\u05d9\\u05e8\\u05d4"],NARROWMONTHS:"1 2 3 4 5 6 7 8 9 10 11 12".split(" "),STANDALONENARROWMONTHS:"1 2 3 4 5 6 7 8 9 10 11 12".split(" "),MONTHS:"\\u05d9\\u05e0\\u05d5\\u05d0\\u05e8 \\u05e4\\u05d1\\u05e8\\u05d5\\u05d0\\u05e8 \\u05de\\u05e8\\u05e5 \\u05d0\\u05e4\\u05e8\\u05d9\\u05dc \\u05de\\u05d0\\u05d9 \\u05d9\\u05d5\\u05e0\\u05d9 \\u05d9\\u05d5\\u05dc\\u05d9 \\u05d0\\u05d5\\u05d2\\u05d5\\u05e1\\u05d8 \\u05e1\\u05e4\\u05d8\\u05de\\u05d1\\u05e8 \\u05d0\\u05d5\\u05e7\\u05d8\\u05d5\\u05d1\\u05e8 \\u05e0\\u05d5\\u05d1\\u05de\\u05d1\\u05e8 \\u05d3\\u05e6\\u05de\\u05d1\\u05e8".split(" "),\nSTANDALONEMONTHS:"\\u05d9\\u05e0\\u05d5\\u05d0\\u05e8 \\u05e4\\u05d1\\u05e8\\u05d5\\u05d0\\u05e8 \\u05de\\u05e8\\u05e5 \\u05d0\\u05e4\\u05e8\\u05d9\\u05dc \\u05de\\u05d0\\u05d9 \\u05d9\\u05d5\\u05e0\\u05d9 \\u05d9\\u05d5\\u05dc\\u05d9 \\u05d0\\u05d5\\u05d2\\u05d5\\u05e1\\u05d8 \\u05e1\\u05e4\\u05d8\\u05de\\u05d1\\u05e8 \\u05d0\\u05d5\\u05e7\\u05d8\\u05d5\\u05d1\\u05e8 \\u05e0\\u05d5\\u05d1\\u05de\\u05d1\\u05e8 \\u05d3\\u05e6\\u05de\\u05d1\\u05e8".split(" "),SHORTMONTHS:"\\u05d9\\u05e0\\u05d5\\u05f3 \\u05e4\\u05d1\\u05e8\\u05f3 \\u05de\\u05e8\\u05e5 \\u05d0\\u05e4\\u05e8\\u05f3 \\u05de\\u05d0\\u05d9 \\u05d9\\u05d5\\u05e0\\u05d9 \\u05d9\\u05d5\\u05dc\\u05d9 \\u05d0\\u05d5\\u05d2\\u05f3 \\u05e1\\u05e4\\u05d8\\u05f3 \\u05d0\\u05d5\\u05e7\\u05f3 \\u05e0\\u05d5\\u05d1\\u05f3 \\u05d3\\u05e6\\u05de\\u05f3".split(" "),\nSTANDALONESHORTMONTHS:"\\u05d9\\u05e0\\u05d5\\u05f3 \\u05e4\\u05d1\\u05e8\\u05f3 \\u05de\\u05e8\\u05e5 \\u05d0\\u05e4\\u05e8\\u05f3 \\u05de\\u05d0\\u05d9 \\u05d9\\u05d5\\u05e0\\u05d9 \\u05d9\\u05d5\\u05dc\\u05d9 \\u05d0\\u05d5\\u05d2\\u05f3 \\u05e1\\u05e4\\u05d8\\u05f3 \\u05d0\\u05d5\\u05e7\\u05f3 \\u05e0\\u05d5\\u05d1\\u05f3 \\u05d3\\u05e6\\u05de\\u05f3".split(" "),WEEKDAYS:"\\u05d9\\u05d5\\u05dd \\u05e8\\u05d0\\u05e9\\u05d5\\u05df;\\u05d9\\u05d5\\u05dd \\u05e9\\u05e0\\u05d9;\\u05d9\\u05d5\\u05dd \\u05e9\\u05dc\\u05d9\\u05e9\\u05d9;\\u05d9\\u05d5\\u05dd \\u05e8\\u05d1\\u05d9\\u05e2\\u05d9;\\u05d9\\u05d5\\u05dd \\u05d7\\u05de\\u05d9\\u05e9\\u05d9;\\u05d9\\u05d5\\u05dd \\u05e9\\u05d9\\u05e9\\u05d9;\\u05d9\\u05d5\\u05dd \\u05e9\\u05d1\\u05ea".split(";"),\nSTANDALONEWEEKDAYS:"\\u05d9\\u05d5\\u05dd \\u05e8\\u05d0\\u05e9\\u05d5\\u05df;\\u05d9\\u05d5\\u05dd \\u05e9\\u05e0\\u05d9;\\u05d9\\u05d5\\u05dd \\u05e9\\u05dc\\u05d9\\u05e9\\u05d9;\\u05d9\\u05d5\\u05dd \\u05e8\\u05d1\\u05d9\\u05e2\\u05d9;\\u05d9\\u05d5\\u05dd \\u05d7\\u05de\\u05d9\\u05e9\\u05d9;\\u05d9\\u05d5\\u05dd \\u05e9\\u05d9\\u05e9\\u05d9;\\u05d9\\u05d5\\u05dd \\u05e9\\u05d1\\u05ea".split(";"),SHORTWEEKDAYS:"\\u05d9\\u05d5\\u05dd \\u05d0\\u05f3;\\u05d9\\u05d5\\u05dd \\u05d1\\u05f3;\\u05d9\\u05d5\\u05dd \\u05d2\\u05f3;\\u05d9\\u05d5\\u05dd \\u05d3\\u05f3;\\u05d9\\u05d5\\u05dd \\u05d4\\u05f3;\\u05d9\\u05d5\\u05dd \\u05d5\\u05f3;\\u05e9\\u05d1\\u05ea".split(";"),\nSTANDALONESHORTWEEKDAYS:"\\u05d9\\u05d5\\u05dd \\u05d0\\u05f3;\\u05d9\\u05d5\\u05dd \\u05d1\\u05f3;\\u05d9\\u05d5\\u05dd \\u05d2\\u05f3;\\u05d9\\u05d5\\u05dd \\u05d3\\u05f3;\\u05d9\\u05d5\\u05dd \\u05d4\\u05f3;\\u05d9\\u05d5\\u05dd \\u05d5\\u05f3;\\u05e9\\u05d1\\u05ea".split(";"),NARROWWEEKDAYS:"\\u05d0\\u05f3 \\u05d1\\u05f3 \\u05d2\\u05f3 \\u05d3\\u05f3 \\u05d4\\u05f3 \\u05d5\\u05f3 \\u05e9\\u05f3".split(" "),STANDALONENARROWWEEKDAYS:"\\u05d0\\u05f3 \\u05d1\\u05f3 \\u05d2\\u05f3 \\u05d3\\u05f3 \\u05d4\\u05f3 \\u05d5\\u05f3 \\u05e9\\u05f3".split(" "),SHORTQUARTERS:["\\u05e8\\u05d1\\u05e2\\u05d5\\u05df 1",\n"\\u05e8\\u05d1\\u05e2\\u05d5\\u05df 2","\\u05e8\\u05d1\\u05e2\\u05d5\\u05df 3","\\u05e8\\u05d1\\u05e2\\u05d5\\u05df 4"],QUARTERS:["\\u05e8\\u05d1\\u05e2\\u05d5\\u05df 1","\\u05e8\\u05d1\\u05e2\\u05d5\\u05df 2","\\u05e8\\u05d1\\u05e2\\u05d5\\u05df 3","\\u05e8\\u05d1\\u05e2\\u05d5\\u05df 4"],AMPMS:["\\u05dc\\u05e4\\u05e0\\u05d4\\u05f4\\u05e6","\\u05d0\\u05d7\\u05d4\\u05f4\\u05e6"],DATEFORMATS:["EEEE, d \\u05d1MMMM y","d \\u05d1MMMM y","d \\u05d1MMM y","d.M.y"],TIMEFORMATS:["H:mm:ss zzzz","H:mm:ss z","H:mm:ss","H:mm"],DATETIMEFORMATS:["{1} \\u05d1\\u05e9\\u05e2\\u05d4 {0}",\n"{1} \\u05d1\\u05e9\\u05e2\\u05d4 {0}","{1}, {0}","{1}, {0}"],FIRSTDAYOFWEEK:6,WEEKENDRANGE:[4,5],FIRSTWEEKCUTOFFDAY:5};\ngoog.i18n.DateTimeSymbols_hi={ERAS:["\\u0908\\u0938\\u093e-\\u092a\\u0942\\u0930\\u094d\\u0935","\\u0908\\u0938\\u094d\\u0935\\u0940"],ERANAMES:["\\u0908\\u0938\\u093e-\\u092a\\u0942\\u0930\\u094d\\u0935","\\u0908\\u0938\\u0935\\u0940 \\u0938\\u0928"],NARROWMONTHS:"\\u091c \\u092b\\u093c \\u092e\\u093e \\u0905 \\u092e \\u091c\\u0942 \\u091c\\u0941 \\u0905 \\u0938\\u093f \\u0905 \\u0928 \\u0926\\u093f".split(" "),STANDALONENARROWMONTHS:"\\u091c \\u092b\\u093c \\u092e\\u093e \\u0905 \\u092e \\u091c\\u0942 \\u091c\\u0941 \\u0905 \\u0938\\u093f \\u0905 \\u0928 \\u0926\\u093f".split(" "),MONTHS:"\\u091c\\u0928\\u0935\\u0930\\u0940 \\u092b\\u093c\\u0930\\u0935\\u0930\\u0940 \\u092e\\u093e\\u0930\\u094d\\u091a \\u0905\\u092a\\u094d\\u0930\\u0948\\u0932 \\u092e\\u0908 \\u091c\\u0942\\u0928 \\u091c\\u0941\\u0932\\u093e\\u0908 \\u0905\\u0917\\u0938\\u094d\\u0924 \\u0938\\u093f\\u0924\\u0902\\u092c\\u0930 \\u0905\\u0915\\u094d\\u0924\\u0942\\u092c\\u0930 \\u0928\\u0935\\u0902\\u092c\\u0930 \\u0926\\u093f\\u0938\\u0902\\u092c\\u0930".split(" "),\nSTANDALONEMONTHS:"\\u091c\\u0928\\u0935\\u0930\\u0940 \\u092b\\u093c\\u0930\\u0935\\u0930\\u0940 \\u092e\\u093e\\u0930\\u094d\\u091a \\u0905\\u092a\\u094d\\u0930\\u0948\\u0932 \\u092e\\u0908 \\u091c\\u0942\\u0928 \\u091c\\u0941\\u0932\\u093e\\u0908 \\u0905\\u0917\\u0938\\u094d\\u0924 \\u0938\\u093f\\u0924\\u0902\\u092c\\u0930 \\u0905\\u0915\\u094d\\u0924\\u0942\\u092c\\u0930 \\u0928\\u0935\\u0902\\u092c\\u0930 \\u0926\\u093f\\u0938\\u0902\\u092c\\u0930".split(" "),SHORTMONTHS:"\\u091c\\u0928\\u0970 \\u092b\\u093c\\u0930\\u0970 \\u092e\\u093e\\u0930\\u094d\\u091a \\u0905\\u092a\\u094d\\u0930\\u0948\\u0932 \\u092e\\u0908 \\u091c\\u0942\\u0928 \\u091c\\u0941\\u0932\\u0970 \\u0905\\u0917\\u0970 \\u0938\\u093f\\u0924\\u0970 \\u0905\\u0915\\u094d\\u0924\\u0942\\u0970 \\u0928\\u0935\\u0970 \\u0926\\u093f\\u0938\\u0970".split(" "),\nSTANDALONESHORTMONTHS:"\\u091c\\u0928\\u0970 \\u092b\\u093c\\u0930\\u0970 \\u092e\\u093e\\u0930\\u094d\\u091a \\u0905\\u092a\\u094d\\u0930\\u0948\\u0932 \\u092e\\u0908 \\u091c\\u0942\\u0928 \\u091c\\u0941\\u0932\\u0970 \\u0905\\u0917\\u0970 \\u0938\\u093f\\u0924\\u0970 \\u0905\\u0915\\u094d\\u0924\\u0942\\u0970 \\u0928\\u0935\\u0970 \\u0926\\u093f\\u0938\\u0970".split(" "),WEEKDAYS:"\\u0930\\u0935\\u093f\\u0935\\u093e\\u0930 \\u0938\\u094b\\u092e\\u0935\\u093e\\u0930 \\u092e\\u0902\\u0917\\u0932\\u0935\\u093e\\u0930 \\u092c\\u0941\\u0927\\u0935\\u093e\\u0930 \\u0917\\u0941\\u0930\\u0941\\u0935\\u093e\\u0930 \\u0936\\u0941\\u0915\\u094d\\u0930\\u0935\\u093e\\u0930 \\u0936\\u0928\\u093f\\u0935\\u093e\\u0930".split(" "),\nSTANDALONEWEEKDAYS:"\\u0930\\u0935\\u093f\\u0935\\u093e\\u0930 \\u0938\\u094b\\u092e\\u0935\\u093e\\u0930 \\u092e\\u0902\\u0917\\u0932\\u0935\\u093e\\u0930 \\u092c\\u0941\\u0927\\u0935\\u093e\\u0930 \\u0917\\u0941\\u0930\\u0941\\u0935\\u093e\\u0930 \\u0936\\u0941\\u0915\\u094d\\u0930\\u0935\\u093e\\u0930 \\u0936\\u0928\\u093f\\u0935\\u093e\\u0930".split(" "),SHORTWEEKDAYS:"\\u0930\\u0935\\u093f \\u0938\\u094b\\u092e \\u092e\\u0902\\u0917\\u0932 \\u092c\\u0941\\u0927 \\u0917\\u0941\\u0930\\u0941 \\u0936\\u0941\\u0915\\u094d\\u0930 \\u0936\\u0928\\u093f".split(" "),STANDALONESHORTWEEKDAYS:"\\u0930\\u0935\\u093f \\u0938\\u094b\\u092e \\u092e\\u0902\\u0917\\u0932 \\u092c\\u0941\\u0927 \\u0917\\u0941\\u0930\\u0941 \\u0936\\u0941\\u0915\\u094d\\u0930 \\u0936\\u0928\\u093f".split(" "),\nNARROWWEEKDAYS:"\\u0930 \\u0938\\u094b \\u092e\\u0902 \\u092c\\u0941 \\u0917\\u0941 \\u0936\\u0941 \\u0936".split(" "),STANDALONENARROWWEEKDAYS:"\\u0930 \\u0938\\u094b \\u092e\\u0902 \\u092c\\u0941 \\u0917\\u0941 \\u0936\\u0941 \\u0936".split(" "),SHORTQUARTERS:["\\u0924\\u093f1","\\u0924\\u093f2","\\u0924\\u093f3","\\u0924\\u093f4"],QUARTERS:["\\u092a\\u0939\\u0932\\u0940 \\u0924\\u093f\\u092e\\u093e\\u0939\\u0940","\\u0926\\u0942\\u0938\\u0930\\u0940 \\u0924\\u093f\\u092e\\u093e\\u0939\\u0940","\\u0924\\u0940\\u0938\\u0930\\u0940 \\u0924\\u093f\\u092e\\u093e\\u0939\\u0940",\n"\\u091a\\u094c\\u0925\\u0940 \\u0924\\u093f\\u092e\\u093e\\u0939\\u0940"],AMPMS:["am","pm"],DATEFORMATS:["EEEE, d MMMM y","d MMMM y","dd/MM/y","d/M/yy"],TIMEFORMATS:["h:mm:ss a zzzz","h:mm:ss a z","h:mm:ss a","h:mm a"],DATETIMEFORMATS:["{1} \\u0915\\u094b {0}","{1} \\u0915\\u094b {0}","{1}, {0}","{1}, {0}"],FIRSTDAYOFWEEK:6,WEEKENDRANGE:[6,6],FIRSTWEEKCUTOFFDAY:5};\ngoog.i18n.DateTimeSymbols_hr={ERAS:["pr. Kr.","p. Kr."],ERANAMES:["prije Krista","poslije Krista"],NARROWMONTHS:"1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.".split(" "),STANDALONENARROWMONTHS:"1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.".split(" "),MONTHS:"sije\\u010dnja velja\\u010de o\\u017eujka travnja svibnja lipnja srpnja kolovoza rujna listopada studenoga prosinca".split(" "),STANDALONEMONTHS:"sije\\u010danj velja\\u010da o\\u017eujak travanj svibanj lipanj srpanj kolovoz rujan listopad studeni prosinac".split(" "),\nSHORTMONTHS:"sij velj o\\u017eu tra svi lip srp kol ruj lis stu pro".split(" "),STANDALONESHORTMONTHS:"sij velj o\\u017eu tra svi lip srp kol ruj lis stu pro".split(" "),WEEKDAYS:"nedjelja ponedjeljak utorak srijeda \\u010detvrtak petak subota".split(" "),STANDALONEWEEKDAYS:"nedjelja ponedjeljak utorak srijeda \\u010detvrtak petak subota".split(" "),SHORTWEEKDAYS:"ned pon uto sri \\u010det pet sub".split(" "),STANDALONESHORTWEEKDAYS:"ned pon uto sri \\u010det pet sub".split(" "),NARROWWEEKDAYS:"NPUS\\u010cPS".split(""),\nSTANDALONENARROWWEEKDAYS:"npus\\u010dps".split(""),SHORTQUARTERS:["1kv","2kv","3kv","4kv"],QUARTERS:["1. kvartal","2. kvartal","3. kvartal","4. kvartal"],AMPMS:["AM","PM"],DATEFORMATS:["EEEE, d. MMMM y.","d. MMMM y.","d. MMM y.","dd.MM.y."],TIMEFORMATS:["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],DATETIMEFORMATS:["{1} \'u\' {0}","{1} \'u\' {0}","{1} {0}","{1} {0}"],FIRSTDAYOFWEEK:0,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:6};\ngoog.i18n.DateTimeSymbols_hu={ERAS:["i. e.","i. sz."],ERANAMES:["id\\u0151sz\\u00e1m\\u00edt\\u00e1sunk el\\u0151tt","id\\u0151sz\\u00e1m\\u00edt\\u00e1sunk szerint"],NARROWMONTHS:"J F M \\u00c1 M J J A Sz O N D".split(" "),STANDALONENARROWMONTHS:"J F M \\u00c1 M J J A Sz O N D".split(" "),MONTHS:"janu\\u00e1r febru\\u00e1r m\\u00e1rcius \\u00e1prilis m\\u00e1jus j\\u00fanius j\\u00falius augusztus szeptember okt\\u00f3ber november december".split(" "),STANDALONEMONTHS:"janu\\u00e1r febru\\u00e1r m\\u00e1rcius \\u00e1prilis m\\u00e1jus j\\u00fanius j\\u00falius augusztus szeptember okt\\u00f3ber november december".split(" "),\nSHORTMONTHS:"jan. febr. m\\u00e1rc. \\u00e1pr. m\\u00e1j. j\\u00fan. j\\u00fal. aug. szept. okt. nov. dec.".split(" "),STANDALONESHORTMONTHS:"jan. febr. m\\u00e1rc. \\u00e1pr. m\\u00e1j. j\\u00fan. j\\u00fal. aug. szept. okt. nov. dec.".split(" "),WEEKDAYS:"vas\\u00e1rnap h\\u00e9tf\\u0151 kedd szerda cs\\u00fct\\u00f6rt\\u00f6k p\\u00e9ntek szombat".split(" "),STANDALONEWEEKDAYS:"vas\\u00e1rnap h\\u00e9tf\\u0151 kedd szerda cs\\u00fct\\u00f6rt\\u00f6k p\\u00e9ntek szombat".split(" "),SHORTWEEKDAYS:"V H K Sze Cs P Szo".split(" "),\nSTANDALONESHORTWEEKDAYS:"V H K Sze Cs P Szo".split(" "),NARROWWEEKDAYS:"V H K Sz Cs P Sz".split(" "),STANDALONENARROWWEEKDAYS:"V H K Sz Cs P Sz".split(" "),SHORTQUARTERS:["N1","N2","N3","N4"],QUARTERS:["I. negyed\\u00e9v","II. negyed\\u00e9v","III. negyed\\u00e9v","IV. negyed\\u00e9v"],AMPMS:["de.","du."],DATEFORMATS:["y. MMMM d., EEEE","y. MMMM d.","y. MMM d.","y. MM. dd."],TIMEFORMATS:["H:mm:ss zzzz","H:mm:ss z","H:mm:ss","H:mm"],DATETIMEFORMATS:["{1} {0}","{1} {0}","{1} {0}","{1} {0}"],FIRSTDAYOFWEEK:0,\nWEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:3};\ngoog.i18n.DateTimeSymbols_hy={ERAS:["\\u0574.\\u0569.\\u0561.","\\u0574.\\u0569."],ERANAMES:["\\u0574.\\u0569.\\u0561.","\\u0574.\\u0569."],NARROWMONTHS:"\\u0540\\u0553\\u0544\\u0531\\u0544\\u0540\\u0540\\u0555\\u054d\\u0540\\u0546\\u0534".split(""),STANDALONENARROWMONTHS:"\\u0540\\u0553\\u0544\\u0531\\u0544\\u0540\\u0540\\u0555\\u054d\\u0540\\u0546\\u0534".split(""),MONTHS:"\\u0570\\u0578\\u0582\\u0576\\u057e\\u0561\\u0580\\u056b \\u0583\\u0565\\u057f\\u0580\\u057e\\u0561\\u0580\\u056b \\u0574\\u0561\\u0580\\u057f\\u056b \\u0561\\u057a\\u0580\\u056b\\u056c\\u056b \\u0574\\u0561\\u0575\\u056b\\u057d\\u056b \\u0570\\u0578\\u0582\\u0576\\u056b\\u057d\\u056b \\u0570\\u0578\\u0582\\u056c\\u056b\\u057d\\u056b \\u0585\\u0563\\u0578\\u057d\\u057f\\u0578\\u057d\\u056b \\u057d\\u0565\\u057a\\u057f\\u0565\\u0574\\u0562\\u0565\\u0580\\u056b \\u0570\\u0578\\u056f\\u057f\\u0565\\u0574\\u0562\\u0565\\u0580\\u056b \\u0576\\u0578\\u0575\\u0565\\u0574\\u0562\\u0565\\u0580\\u056b \\u0564\\u0565\\u056f\\u057f\\u0565\\u0574\\u0562\\u0565\\u0580\\u056b".split(" "),STANDALONEMONTHS:"\\u0570\\u0578\\u0582\\u0576\\u057e\\u0561\\u0580 \\u0583\\u0565\\u057f\\u0580\\u057e\\u0561\\u0580 \\u0574\\u0561\\u0580\\u057f \\u0561\\u057a\\u0580\\u056b\\u056c \\u0574\\u0561\\u0575\\u056b\\u057d \\u0570\\u0578\\u0582\\u0576\\u056b\\u057d \\u0570\\u0578\\u0582\\u056c\\u056b\\u057d \\u0585\\u0563\\u0578\\u057d\\u057f\\u0578\\u057d \\u057d\\u0565\\u057a\\u057f\\u0565\\u0574\\u0562\\u0565\\u0580 \\u0570\\u0578\\u056f\\u057f\\u0565\\u0574\\u0562\\u0565\\u0580 \\u0576\\u0578\\u0575\\u0565\\u0574\\u0562\\u0565\\u0580 \\u0564\\u0565\\u056f\\u057f\\u0565\\u0574\\u0562\\u0565\\u0580".split(" "),\nSHORTMONTHS:"\\u0570\\u0576\\u057e \\u0583\\u057f\\u057e \\u0574\\u0580\\u057f \\u0561\\u057a\\u0580 \\u0574\\u0575\\u057d \\u0570\\u0576\\u057d \\u0570\\u056c\\u057d \\u0585\\u0563\\u057d \\u057d\\u0565\\u057a \\u0570\\u0578\\u056f \\u0576\\u0578\\u0575 \\u0564\\u0565\\u056f".split(" "),STANDALONESHORTMONTHS:"\\u0570\\u0576\\u057e \\u0583\\u057f\\u057e \\u0574\\u0580\\u057f \\u0561\\u057a\\u0580 \\u0574\\u0575\\u057d \\u0570\\u0576\\u057d \\u0570\\u056c\\u057d \\u0585\\u0563\\u057d \\u057d\\u0565\\u057a \\u0570\\u0578\\u056f \\u0576\\u0578\\u0575 \\u0564\\u0565\\u056f".split(" "),\nWEEKDAYS:"\\u056f\\u056b\\u0580\\u0561\\u056f\\u056b \\u0565\\u0580\\u056f\\u0578\\u0582\\u0577\\u0561\\u0562\\u0569\\u056b \\u0565\\u0580\\u0565\\u0584\\u0577\\u0561\\u0562\\u0569\\u056b \\u0579\\u0578\\u0580\\u0565\\u0584\\u0577\\u0561\\u0562\\u0569\\u056b \\u0570\\u056b\\u0576\\u0563\\u0577\\u0561\\u0562\\u0569\\u056b \\u0578\\u0582\\u0580\\u0562\\u0561\\u0569 \\u0577\\u0561\\u0562\\u0561\\u0569".split(" "),STANDALONEWEEKDAYS:"\\u056f\\u056b\\u0580\\u0561\\u056f\\u056b \\u0565\\u0580\\u056f\\u0578\\u0582\\u0577\\u0561\\u0562\\u0569\\u056b \\u0565\\u0580\\u0565\\u0584\\u0577\\u0561\\u0562\\u0569\\u056b \\u0579\\u0578\\u0580\\u0565\\u0584\\u0577\\u0561\\u0562\\u0569\\u056b \\u0570\\u056b\\u0576\\u0563\\u0577\\u0561\\u0562\\u0569\\u056b \\u0578\\u0582\\u0580\\u0562\\u0561\\u0569 \\u0577\\u0561\\u0562\\u0561\\u0569".split(" "),\nSHORTWEEKDAYS:"\\u056f\\u056b\\u0580 \\u0565\\u0580\\u056f \\u0565\\u0580\\u0584 \\u0579\\u0580\\u0584 \\u0570\\u0576\\u0563 \\u0578\\u0582\\u0580 \\u0577\\u0562\\u0569".split(" "),STANDALONESHORTWEEKDAYS:"\\u056f\\u056b\\u0580 \\u0565\\u0580\\u056f \\u0565\\u0580\\u0584 \\u0579\\u0580\\u0584 \\u0570\\u0576\\u0563 \\u0578\\u0582\\u0580 \\u0577\\u0562\\u0569".split(" "),NARROWWEEKDAYS:"\\u053f \\u0535 \\u0535 \\u0549 \\u0540 \\u0548\\u0582 \\u0547".split(" "),STANDALONENARROWWEEKDAYS:"\\u053f\\u0580 \\u0535\\u056f \\u0535\\u0580 \\u0549\\u0580 \\u0540\\u0563 \\u0548\\u0582 \\u0547\\u0562".split(" "),\nSHORTQUARTERS:["1-\\u056b\\u0576 \\u0565\\u057c\\u0574\\u057d.","2-\\u0580\\u0564 \\u0565\\u057c\\u0574\\u057d.","3-\\u0580\\u0564 \\u0565\\u057c\\u0574\\u057d.","4-\\u0580\\u0564 \\u0565\\u057c\\u0574\\u057d."],QUARTERS:["1-\\u056b\\u0576 \\u0565\\u057c\\u0561\\u0574\\u057d\\u0575\\u0561\\u056f","2-\\u0580\\u0564 \\u0565\\u057c\\u0561\\u0574\\u057d\\u0575\\u0561\\u056f","3-\\u0580\\u0564 \\u0565\\u057c\\u0561\\u0574\\u057d\\u0575\\u0561\\u056f","4-\\u0580\\u0564 \\u0565\\u057c\\u0561\\u0574\\u057d\\u0575\\u0561\\u056f"],AMPMS:["AM","PM"],DATEFORMATS:["y\\u0569. MMMM d, EEEE",\n"dd MMMM, y\\u0569.","dd MMM, y\\u0569.","dd.MM.yy"],TIMEFORMATS:["H:mm:ss, zzzz","H:mm:ss, z","H:mm:ss","H:mm"],DATETIMEFORMATS:["{1}, {0}","{1}, {0}","{1}, {0}","{1}, {0}"],FIRSTDAYOFWEEK:0,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:6};\ngoog.i18n.DateTimeSymbols_id={ERAS:["SM","M"],ERANAMES:["Sebelum Masehi","M"],NARROWMONTHS:"JFMAMJJASOND".split(""),STANDALONENARROWMONTHS:"JFMAMJJASOND".split(""),MONTHS:"Januari Februari Maret April Mei Juni Juli Agustus September Oktober November Desember".split(" "),STANDALONEMONTHS:"Januari Februari Maret April Mei Juni Juli Agustus September Oktober November Desember".split(" "),SHORTMONTHS:"Jan Feb Mar Apr Mei Jun Jul Agt Sep Okt Nov Des".split(" "),STANDALONESHORTMONTHS:"Jan Feb Mar Apr Mei Jun Jul Agt Sep Okt Nov Des".split(" "),\nWEEKDAYS:"Minggu Senin Selasa Rabu Kamis Jumat Sabtu".split(" "),STANDALONEWEEKDAYS:"Minggu Senin Selasa Rabu Kamis Jumat Sabtu".split(" "),SHORTWEEKDAYS:"Min Sen Sel Rab Kam Jum Sab".split(" "),STANDALONESHORTWEEKDAYS:"Min Sen Sel Rab Kam Jum Sab".split(" "),NARROWWEEKDAYS:"MSSRKJS".split(""),STANDALONENARROWWEEKDAYS:"MSSRKJS".split(""),SHORTQUARTERS:["K1","K2","K3","K4"],QUARTERS:["Kuartal ke-1","Kuartal ke-2","Kuartal ke-3","Kuartal ke-4"],AMPMS:["AM","PM"],DATEFORMATS:["EEEE, dd MMMM y","d MMMM y",\n"d MMM y","dd/MM/yy"],TIMEFORMATS:["HH.mm.ss zzzz","HH.mm.ss z","HH.mm.ss","HH.mm"],DATETIMEFORMATS:["{1} {0}","{1} {0}","{1} {0}","{1} {0}"],FIRSTDAYOFWEEK:6,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:5};\ngoog.i18n.DateTimeSymbols_in={ERAS:["SM","M"],ERANAMES:["Sebelum Masehi","M"],NARROWMONTHS:"JFMAMJJASOND".split(""),STANDALONENARROWMONTHS:"JFMAMJJASOND".split(""),MONTHS:"Januari Februari Maret April Mei Juni Juli Agustus September Oktober November Desember".split(" "),STANDALONEMONTHS:"Januari Februari Maret April Mei Juni Juli Agustus September Oktober November Desember".split(" "),SHORTMONTHS:"Jan Feb Mar Apr Mei Jun Jul Agt Sep Okt Nov Des".split(" "),STANDALONESHORTMONTHS:"Jan Feb Mar Apr Mei Jun Jul Agt Sep Okt Nov Des".split(" "),\nWEEKDAYS:"Minggu Senin Selasa Rabu Kamis Jumat Sabtu".split(" "),STANDALONEWEEKDAYS:"Minggu Senin Selasa Rabu Kamis Jumat Sabtu".split(" "),SHORTWEEKDAYS:"Min Sen Sel Rab Kam Jum Sab".split(" "),STANDALONESHORTWEEKDAYS:"Min Sen Sel Rab Kam Jum Sab".split(" "),NARROWWEEKDAYS:"MSSRKJS".split(""),STANDALONENARROWWEEKDAYS:"MSSRKJS".split(""),SHORTQUARTERS:["K1","K2","K3","K4"],QUARTERS:["Kuartal ke-1","Kuartal ke-2","Kuartal ke-3","Kuartal ke-4"],AMPMS:["AM","PM"],DATEFORMATS:["EEEE, dd MMMM y","d MMMM y",\n"d MMM y","dd/MM/yy"],TIMEFORMATS:["HH.mm.ss zzzz","HH.mm.ss z","HH.mm.ss","HH.mm"],DATETIMEFORMATS:["{1} {0}","{1} {0}","{1} {0}","{1} {0}"],FIRSTDAYOFWEEK:6,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:5};\ngoog.i18n.DateTimeSymbols_is={ERAS:["f.Kr.","e.Kr."],ERANAMES:["fyrir Krist","eftir Krist"],NARROWMONTHS:"JFMAMJJ\\u00c1SOND".split(""),STANDALONENARROWMONTHS:"JFMAMJJ\\u00c1SOND".split(""),MONTHS:"jan\\u00faar febr\\u00faar mars apr\\u00edl ma\\u00ed j\\u00fan\\u00ed j\\u00fal\\u00ed \\u00e1g\\u00fast september okt\\u00f3ber n\\u00f3vember desember".split(" "),STANDALONEMONTHS:"jan\\u00faar febr\\u00faar mars apr\\u00edl ma\\u00ed j\\u00fan\\u00ed j\\u00fal\\u00ed \\u00e1g\\u00fast september okt\\u00f3ber n\\u00f3vember desember".split(" "),\nSHORTMONTHS:"jan. feb. mar. apr. ma\\u00ed j\\u00fan. j\\u00fal. \\u00e1g\\u00fa. sep. okt. n\\u00f3v. des.".split(" "),STANDALONESHORTMONTHS:"jan. feb. mar. apr. ma\\u00ed j\\u00fan. j\\u00fal. \\u00e1g\\u00fa. sep. okt. n\\u00f3v. des.".split(" "),WEEKDAYS:"sunnudagur m\\u00e1nudagur \\u00feri\\u00f0judagur mi\\u00f0vikudagur fimmtudagur f\\u00f6studagur laugardagur".split(" "),STANDALONEWEEKDAYS:"sunnudagur m\\u00e1nudagur \\u00feri\\u00f0judagur mi\\u00f0vikudagur fimmtudagur f\\u00f6studagur laugardagur".split(" "),\nSHORTWEEKDAYS:"sun. m\\u00e1n. \\u00feri. mi\\u00f0. fim. f\\u00f6s. lau.".split(" "),STANDALONESHORTWEEKDAYS:"sun. m\\u00e1n. \\u00feri. mi\\u00f0. fim. f\\u00f6s. lau.".split(" "),NARROWWEEKDAYS:"SM\\u00deMFFL".split(""),STANDALONENARROWWEEKDAYS:"SM\\u00deMFFL".split(""),SHORTQUARTERS:["F1","F2","F3","F4"],QUARTERS:["1. fj\\u00f3r\\u00f0ungur","2. fj\\u00f3r\\u00f0ungur","3. fj\\u00f3r\\u00f0ungur","4. fj\\u00f3r\\u00f0ungur"],AMPMS:["f.h.","e.h."],DATEFORMATS:["EEEE, d. MMMM y","d. MMMM y","d. MMM y","d.M.y"],TIMEFORMATS:["HH:mm:ss zzzz",\n"HH:mm:ss z","HH:mm:ss","HH:mm"],DATETIMEFORMATS:["{1} \'kl\'. {0}","{1} \'kl\'. {0}","{1}, {0}","{1}, {0}"],FIRSTDAYOFWEEK:0,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:3};\ngoog.i18n.DateTimeSymbols_it={ERAS:["a.C.","d.C."],ERANAMES:["a.C.","d.C."],NARROWMONTHS:"GFMAMGLASOND".split(""),STANDALONENARROWMONTHS:"GFMAMGLASOND".split(""),MONTHS:"gennaio febbraio marzo aprile maggio giugno luglio agosto settembre ottobre novembre dicembre".split(" "),STANDALONEMONTHS:"Gennaio Febbraio Marzo Aprile Maggio Giugno Luglio Agosto Settembre Ottobre Novembre Dicembre".split(" "),SHORTMONTHS:"gen feb mar apr mag giu lug ago set ott nov dic".split(" "),STANDALONESHORTMONTHS:"gen feb mar apr mag giu lug ago set ott nov dic".split(" "),\nWEEKDAYS:"domenica luned\\u00ec marted\\u00ec mercoled\\u00ec gioved\\u00ec venerd\\u00ec sabato".split(" "),STANDALONEWEEKDAYS:"Domenica Luned\\u00ec Marted\\u00ec Mercoled\\u00ec Gioved\\u00ec Venerd\\u00ec Sabato".split(" "),SHORTWEEKDAYS:"dom lun mar mer gio ven sab".split(" "),STANDALONESHORTWEEKDAYS:"dom lun mar mer gio ven sab".split(" "),NARROWWEEKDAYS:"DLMMGVS".split(""),STANDALONENARROWWEEKDAYS:"DLMMGVS".split(""),SHORTQUARTERS:["T1","T2","T3","T4"],QUARTERS:["1\\u00ba trimestre","2\\u00ba trimestre",\n"3\\u00ba trimestre","4\\u00ba trimestre"],AMPMS:["AM","PM"],DATEFORMATS:["EEEE d MMMM y","d MMMM y","dd MMM y","dd/MM/yy"],TIMEFORMATS:["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],DATETIMEFORMATS:["{1} {0}","{1} {0}","{1}, {0}","{1}, {0}"],FIRSTDAYOFWEEK:0,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:3};\ngoog.i18n.DateTimeSymbols_iw={ERAS:["\\u05dc\\u05e4\\u05e0\\u05d4\\u05f4\\u05e1","\\u05dc\\u05e1\\u05e4\\u05d9\\u05e8\\u05d4"],ERANAMES:["\\u05dc\\u05e4\\u05e0\\u05d9 \\u05d4\\u05e1\\u05e4\\u05d9\\u05e8\\u05d4","\\u05dc\\u05e1\\u05e4\\u05d9\\u05e8\\u05d4"],NARROWMONTHS:"1 2 3 4 5 6 7 8 9 10 11 12".split(" "),STANDALONENARROWMONTHS:"1 2 3 4 5 6 7 8 9 10 11 12".split(" "),MONTHS:"\\u05d9\\u05e0\\u05d5\\u05d0\\u05e8 \\u05e4\\u05d1\\u05e8\\u05d5\\u05d0\\u05e8 \\u05de\\u05e8\\u05e5 \\u05d0\\u05e4\\u05e8\\u05d9\\u05dc \\u05de\\u05d0\\u05d9 \\u05d9\\u05d5\\u05e0\\u05d9 \\u05d9\\u05d5\\u05dc\\u05d9 \\u05d0\\u05d5\\u05d2\\u05d5\\u05e1\\u05d8 \\u05e1\\u05e4\\u05d8\\u05de\\u05d1\\u05e8 \\u05d0\\u05d5\\u05e7\\u05d8\\u05d5\\u05d1\\u05e8 \\u05e0\\u05d5\\u05d1\\u05de\\u05d1\\u05e8 \\u05d3\\u05e6\\u05de\\u05d1\\u05e8".split(" "),\nSTANDALONEMONTHS:"\\u05d9\\u05e0\\u05d5\\u05d0\\u05e8 \\u05e4\\u05d1\\u05e8\\u05d5\\u05d0\\u05e8 \\u05de\\u05e8\\u05e5 \\u05d0\\u05e4\\u05e8\\u05d9\\u05dc \\u05de\\u05d0\\u05d9 \\u05d9\\u05d5\\u05e0\\u05d9 \\u05d9\\u05d5\\u05dc\\u05d9 \\u05d0\\u05d5\\u05d2\\u05d5\\u05e1\\u05d8 \\u05e1\\u05e4\\u05d8\\u05de\\u05d1\\u05e8 \\u05d0\\u05d5\\u05e7\\u05d8\\u05d5\\u05d1\\u05e8 \\u05e0\\u05d5\\u05d1\\u05de\\u05d1\\u05e8 \\u05d3\\u05e6\\u05de\\u05d1\\u05e8".split(" "),SHORTMONTHS:"\\u05d9\\u05e0\\u05d5\\u05f3 \\u05e4\\u05d1\\u05e8\\u05f3 \\u05de\\u05e8\\u05e5 \\u05d0\\u05e4\\u05e8\\u05f3 \\u05de\\u05d0\\u05d9 \\u05d9\\u05d5\\u05e0\\u05d9 \\u05d9\\u05d5\\u05dc\\u05d9 \\u05d0\\u05d5\\u05d2\\u05f3 \\u05e1\\u05e4\\u05d8\\u05f3 \\u05d0\\u05d5\\u05e7\\u05f3 \\u05e0\\u05d5\\u05d1\\u05f3 \\u05d3\\u05e6\\u05de\\u05f3".split(" "),\nSTANDALONESHORTMONTHS:"\\u05d9\\u05e0\\u05d5\\u05f3 \\u05e4\\u05d1\\u05e8\\u05f3 \\u05de\\u05e8\\u05e5 \\u05d0\\u05e4\\u05e8\\u05f3 \\u05de\\u05d0\\u05d9 \\u05d9\\u05d5\\u05e0\\u05d9 \\u05d9\\u05d5\\u05dc\\u05d9 \\u05d0\\u05d5\\u05d2\\u05f3 \\u05e1\\u05e4\\u05d8\\u05f3 \\u05d0\\u05d5\\u05e7\\u05f3 \\u05e0\\u05d5\\u05d1\\u05f3 \\u05d3\\u05e6\\u05de\\u05f3".split(" "),WEEKDAYS:"\\u05d9\\u05d5\\u05dd \\u05e8\\u05d0\\u05e9\\u05d5\\u05df;\\u05d9\\u05d5\\u05dd \\u05e9\\u05e0\\u05d9;\\u05d9\\u05d5\\u05dd \\u05e9\\u05dc\\u05d9\\u05e9\\u05d9;\\u05d9\\u05d5\\u05dd \\u05e8\\u05d1\\u05d9\\u05e2\\u05d9;\\u05d9\\u05d5\\u05dd \\u05d7\\u05de\\u05d9\\u05e9\\u05d9;\\u05d9\\u05d5\\u05dd \\u05e9\\u05d9\\u05e9\\u05d9;\\u05d9\\u05d5\\u05dd \\u05e9\\u05d1\\u05ea".split(";"),\nSTANDALONEWEEKDAYS:"\\u05d9\\u05d5\\u05dd \\u05e8\\u05d0\\u05e9\\u05d5\\u05df;\\u05d9\\u05d5\\u05dd \\u05e9\\u05e0\\u05d9;\\u05d9\\u05d5\\u05dd \\u05e9\\u05dc\\u05d9\\u05e9\\u05d9;\\u05d9\\u05d5\\u05dd \\u05e8\\u05d1\\u05d9\\u05e2\\u05d9;\\u05d9\\u05d5\\u05dd \\u05d7\\u05de\\u05d9\\u05e9\\u05d9;\\u05d9\\u05d5\\u05dd \\u05e9\\u05d9\\u05e9\\u05d9;\\u05d9\\u05d5\\u05dd \\u05e9\\u05d1\\u05ea".split(";"),SHORTWEEKDAYS:"\\u05d9\\u05d5\\u05dd \\u05d0\\u05f3;\\u05d9\\u05d5\\u05dd \\u05d1\\u05f3;\\u05d9\\u05d5\\u05dd \\u05d2\\u05f3;\\u05d9\\u05d5\\u05dd \\u05d3\\u05f3;\\u05d9\\u05d5\\u05dd \\u05d4\\u05f3;\\u05d9\\u05d5\\u05dd \\u05d5\\u05f3;\\u05e9\\u05d1\\u05ea".split(";"),\nSTANDALONESHORTWEEKDAYS:"\\u05d9\\u05d5\\u05dd \\u05d0\\u05f3;\\u05d9\\u05d5\\u05dd \\u05d1\\u05f3;\\u05d9\\u05d5\\u05dd \\u05d2\\u05f3;\\u05d9\\u05d5\\u05dd \\u05d3\\u05f3;\\u05d9\\u05d5\\u05dd \\u05d4\\u05f3;\\u05d9\\u05d5\\u05dd \\u05d5\\u05f3;\\u05e9\\u05d1\\u05ea".split(";"),NARROWWEEKDAYS:"\\u05d0\\u05f3 \\u05d1\\u05f3 \\u05d2\\u05f3 \\u05d3\\u05f3 \\u05d4\\u05f3 \\u05d5\\u05f3 \\u05e9\\u05f3".split(" "),STANDALONENARROWWEEKDAYS:"\\u05d0\\u05f3 \\u05d1\\u05f3 \\u05d2\\u05f3 \\u05d3\\u05f3 \\u05d4\\u05f3 \\u05d5\\u05f3 \\u05e9\\u05f3".split(" "),SHORTQUARTERS:["\\u05e8\\u05d1\\u05e2\\u05d5\\u05df 1",\n"\\u05e8\\u05d1\\u05e2\\u05d5\\u05df 2","\\u05e8\\u05d1\\u05e2\\u05d5\\u05df 3","\\u05e8\\u05d1\\u05e2\\u05d5\\u05df 4"],QUARTERS:["\\u05e8\\u05d1\\u05e2\\u05d5\\u05df 1","\\u05e8\\u05d1\\u05e2\\u05d5\\u05df 2","\\u05e8\\u05d1\\u05e2\\u05d5\\u05df 3","\\u05e8\\u05d1\\u05e2\\u05d5\\u05df 4"],AMPMS:["\\u05dc\\u05e4\\u05e0\\u05d4\\u05f4\\u05e6","\\u05d0\\u05d7\\u05d4\\u05f4\\u05e6"],DATEFORMATS:["EEEE, d \\u05d1MMMM y","d \\u05d1MMMM y","d \\u05d1MMM y","d.M.y"],TIMEFORMATS:["H:mm:ss zzzz","H:mm:ss z","H:mm:ss","H:mm"],DATETIMEFORMATS:["{1} \\u05d1\\u05e9\\u05e2\\u05d4 {0}",\n"{1} \\u05d1\\u05e9\\u05e2\\u05d4 {0}","{1}, {0}","{1}, {0}"],FIRSTDAYOFWEEK:6,WEEKENDRANGE:[4,5],FIRSTWEEKCUTOFFDAY:5};\ngoog.i18n.DateTimeSymbols_ja={ERAS:["\\u7d00\\u5143\\u524d","\\u897f\\u66a6"],ERANAMES:["\\u7d00\\u5143\\u524d","\\u897f\\u66a6"],NARROWMONTHS:"1 2 3 4 5 6 7 8 9 10 11 12".split(" "),STANDALONENARROWMONTHS:"1 2 3 4 5 6 7 8 9 10 11 12".split(" "),MONTHS:"1\\u6708 2\\u6708 3\\u6708 4\\u6708 5\\u6708 6\\u6708 7\\u6708 8\\u6708 9\\u6708 10\\u6708 11\\u6708 12\\u6708".split(" "),STANDALONEMONTHS:"1\\u6708 2\\u6708 3\\u6708 4\\u6708 5\\u6708 6\\u6708 7\\u6708 8\\u6708 9\\u6708 10\\u6708 11\\u6708 12\\u6708".split(" "),SHORTMONTHS:"1\\u6708 2\\u6708 3\\u6708 4\\u6708 5\\u6708 6\\u6708 7\\u6708 8\\u6708 9\\u6708 10\\u6708 11\\u6708 12\\u6708".split(" "),\nSTANDALONESHORTMONTHS:"1\\u6708 2\\u6708 3\\u6708 4\\u6708 5\\u6708 6\\u6708 7\\u6708 8\\u6708 9\\u6708 10\\u6708 11\\u6708 12\\u6708".split(" "),WEEKDAYS:"\\u65e5\\u66dc\\u65e5 \\u6708\\u66dc\\u65e5 \\u706b\\u66dc\\u65e5 \\u6c34\\u66dc\\u65e5 \\u6728\\u66dc\\u65e5 \\u91d1\\u66dc\\u65e5 \\u571f\\u66dc\\u65e5".split(" "),STANDALONEWEEKDAYS:"\\u65e5\\u66dc\\u65e5 \\u6708\\u66dc\\u65e5 \\u706b\\u66dc\\u65e5 \\u6c34\\u66dc\\u65e5 \\u6728\\u66dc\\u65e5 \\u91d1\\u66dc\\u65e5 \\u571f\\u66dc\\u65e5".split(" "),SHORTWEEKDAYS:"\\u65e5\\u6708\\u706b\\u6c34\\u6728\\u91d1\\u571f".split(""),\nSTANDALONESHORTWEEKDAYS:"\\u65e5\\u6708\\u706b\\u6c34\\u6728\\u91d1\\u571f".split(""),NARROWWEEKDAYS:"\\u65e5\\u6708\\u706b\\u6c34\\u6728\\u91d1\\u571f".split(""),STANDALONENARROWWEEKDAYS:"\\u65e5\\u6708\\u706b\\u6c34\\u6728\\u91d1\\u571f".split(""),SHORTQUARTERS:["Q1","Q2","Q3","Q4"],QUARTERS:["\\u7b2c1\\u56db\\u534a\\u671f","\\u7b2c2\\u56db\\u534a\\u671f","\\u7b2c3\\u56db\\u534a\\u671f","\\u7b2c4\\u56db\\u534a\\u671f"],AMPMS:["\\u5348\\u524d","\\u5348\\u5f8c"],DATEFORMATS:["y\\u5e74M\\u6708d\\u65e5EEEE","y\\u5e74M\\u6708d\\u65e5","y/MM/dd",\n"y/MM/dd"],TIMEFORMATS:["H\\u6642mm\\u5206ss\\u79d2 zzzz","H:mm:ss z","H:mm:ss","H:mm"],DATETIMEFORMATS:["{1} {0}","{1} {0}","{1} {0}","{1} {0}"],FIRSTDAYOFWEEK:6,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:5};\ngoog.i18n.DateTimeSymbols_ka={ERAS:["\\u10eb\\u10d5. \\u10ec.","\\u10d0\\u10ee. \\u10ec."],ERANAMES:["\\u10eb\\u10d5\\u10d4\\u10da\\u10d8 \\u10ec\\u10d4\\u10da\\u10d7\\u10d0\\u10e6\\u10e0\\u10d8\\u10ea\\u10ee\\u10d5\\u10d8\\u10d7","\\u10d0\\u10ee\\u10d0\\u10da\\u10d8 \\u10ec\\u10d4\\u10da\\u10d7\\u10d0\\u10e6\\u10e0\\u10d8\\u10ea\\u10ee\\u10d5\\u10d8\\u10d7"],NARROWMONTHS:"\\u10d8\\u10d7\\u10db\\u10d0\\u10db\\u10d8\\u10d8\\u10d0\\u10e1\\u10dd\\u10dc\\u10d3".split(""),STANDALONENARROWMONTHS:"\\u10d8\\u10d7\\u10db\\u10d0\\u10db\\u10d8\\u10d8\\u10d0\\u10e1\\u10dd\\u10dc\\u10d3".split(""),\nMONTHS:"\\u10d8\\u10d0\\u10dc\\u10d5\\u10d0\\u10e0\\u10d8 \\u10d7\\u10d4\\u10d1\\u10d4\\u10e0\\u10d5\\u10d0\\u10da\\u10d8 \\u10db\\u10d0\\u10e0\\u10e2\\u10d8 \\u10d0\\u10de\\u10e0\\u10d8\\u10da\\u10d8 \\u10db\\u10d0\\u10d8\\u10e1\\u10d8 \\u10d8\\u10d5\\u10dc\\u10d8\\u10e1\\u10d8 \\u10d8\\u10d5\\u10da\\u10d8\\u10e1\\u10d8 \\u10d0\\u10d2\\u10d5\\u10d8\\u10e1\\u10e2\\u10dd \\u10e1\\u10d4\\u10e5\\u10e2\\u10d4\\u10db\\u10d1\\u10d4\\u10e0\\u10d8 \\u10dd\\u10e5\\u10e2\\u10dd\\u10db\\u10d1\\u10d4\\u10e0\\u10d8 \\u10dc\\u10dd\\u10d4\\u10db\\u10d1\\u10d4\\u10e0\\u10d8 \\u10d3\\u10d4\\u10d9\\u10d4\\u10db\\u10d1\\u10d4\\u10e0\\u10d8".split(" "),\nSTANDALONEMONTHS:"\\u10d8\\u10d0\\u10dc\\u10d5\\u10d0\\u10e0\\u10d8 \\u10d7\\u10d4\\u10d1\\u10d4\\u10e0\\u10d5\\u10d0\\u10da\\u10d8 \\u10db\\u10d0\\u10e0\\u10e2\\u10d8 \\u10d0\\u10de\\u10e0\\u10d8\\u10da\\u10d8 \\u10db\\u10d0\\u10d8\\u10e1\\u10d8 \\u10d8\\u10d5\\u10dc\\u10d8\\u10e1\\u10d8 \\u10d8\\u10d5\\u10da\\u10d8\\u10e1\\u10d8 \\u10d0\\u10d2\\u10d5\\u10d8\\u10e1\\u10e2\\u10dd \\u10e1\\u10d4\\u10e5\\u10e2\\u10d4\\u10db\\u10d1\\u10d4\\u10e0\\u10d8 \\u10dd\\u10e5\\u10e2\\u10dd\\u10db\\u10d1\\u10d4\\u10e0\\u10d8 \\u10dc\\u10dd\\u10d4\\u10db\\u10d1\\u10d4\\u10e0\\u10d8 \\u10d3\\u10d4\\u10d9\\u10d4\\u10db\\u10d1\\u10d4\\u10e0\\u10d8".split(" "),\nSHORTMONTHS:"\\u10d8\\u10d0\\u10dc \\u10d7\\u10d4\\u10d1 \\u10db\\u10d0\\u10e0 \\u10d0\\u10de\\u10e0 \\u10db\\u10d0\\u10d8 \\u10d8\\u10d5\\u10dc \\u10d8\\u10d5\\u10da \\u10d0\\u10d2\\u10d5 \\u10e1\\u10d4\\u10e5 \\u10dd\\u10e5\\u10e2 \\u10dc\\u10dd\\u10d4 \\u10d3\\u10d4\\u10d9".split(" "),STANDALONESHORTMONTHS:"\\u10d8\\u10d0\\u10dc \\u10d7\\u10d4\\u10d1 \\u10db\\u10d0\\u10e0 \\u10d0\\u10de\\u10e0 \\u10db\\u10d0\\u10d8 \\u10d8\\u10d5\\u10dc \\u10d8\\u10d5\\u10da \\u10d0\\u10d2\\u10d5 \\u10e1\\u10d4\\u10e5 \\u10dd\\u10e5\\u10e2 \\u10dc\\u10dd\\u10d4 \\u10d3\\u10d4\\u10d9".split(" "),\nWEEKDAYS:"\\u10d9\\u10d5\\u10d8\\u10e0\\u10d0 \\u10dd\\u10e0\\u10e8\\u10d0\\u10d1\\u10d0\\u10d7\\u10d8 \\u10e1\\u10d0\\u10db\\u10e8\\u10d0\\u10d1\\u10d0\\u10d7\\u10d8 \\u10dd\\u10d7\\u10ee\\u10e8\\u10d0\\u10d1\\u10d0\\u10d7\\u10d8 \\u10ee\\u10e3\\u10d7\\u10e8\\u10d0\\u10d1\\u10d0\\u10d7\\u10d8 \\u10de\\u10d0\\u10e0\\u10d0\\u10e1\\u10d9\\u10d4\\u10d5\\u10d8 \\u10e8\\u10d0\\u10d1\\u10d0\\u10d7\\u10d8".split(" "),STANDALONEWEEKDAYS:"\\u10d9\\u10d5\\u10d8\\u10e0\\u10d0 \\u10dd\\u10e0\\u10e8\\u10d0\\u10d1\\u10d0\\u10d7\\u10d8 \\u10e1\\u10d0\\u10db\\u10e8\\u10d0\\u10d1\\u10d0\\u10d7\\u10d8 \\u10dd\\u10d7\\u10ee\\u10e8\\u10d0\\u10d1\\u10d0\\u10d7\\u10d8 \\u10ee\\u10e3\\u10d7\\u10e8\\u10d0\\u10d1\\u10d0\\u10d7\\u10d8 \\u10de\\u10d0\\u10e0\\u10d0\\u10e1\\u10d9\\u10d4\\u10d5\\u10d8 \\u10e8\\u10d0\\u10d1\\u10d0\\u10d7\\u10d8".split(" "),\nSHORTWEEKDAYS:"\\u10d9\\u10d5\\u10d8 \\u10dd\\u10e0\\u10e8 \\u10e1\\u10d0\\u10db \\u10dd\\u10d7\\u10ee \\u10ee\\u10e3\\u10d7 \\u10de\\u10d0\\u10e0 \\u10e8\\u10d0\\u10d1".split(" "),STANDALONESHORTWEEKDAYS:"\\u10d9\\u10d5\\u10d8 \\u10dd\\u10e0\\u10e8 \\u10e1\\u10d0\\u10db \\u10dd\\u10d7\\u10ee \\u10ee\\u10e3\\u10d7 \\u10de\\u10d0\\u10e0 \\u10e8\\u10d0\\u10d1".split(" "),NARROWWEEKDAYS:"\\u10d9\\u10dd\\u10e1\\u10dd\\u10ee\\u10de\\u10e8".split(""),STANDALONENARROWWEEKDAYS:"\\u10d9\\u10dd\\u10e1\\u10dd\\u10ee\\u10de\\u10e8".split(""),SHORTQUARTERS:["I \\u10d9\\u10d5.",\n"II \\u10d9\\u10d5.","III \\u10d9\\u10d5.","IV \\u10d9\\u10d5."],QUARTERS:["I \\u10d9\\u10d5\\u10d0\\u10e0\\u10e2\\u10d0\\u10da\\u10d8","II \\u10d9\\u10d5\\u10d0\\u10e0\\u10e2\\u10d0\\u10da\\u10d8","III \\u10d9\\u10d5\\u10d0\\u10e0\\u10e2\\u10d0\\u10da\\u10d8","IV \\u10d9\\u10d5\\u10d0\\u10e0\\u10e2\\u10d0\\u10da\\u10d8"],AMPMS:["AM","PM"],DATEFORMATS:["EEEE, dd MMMM, y","d MMMM, y","d MMM. y","dd.MM.yy"],TIMEFORMATS:["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],DATETIMEFORMATS:["{1}, {0}","{1}, {0}","{1}, {0}","{1}, {0}"],FIRSTDAYOFWEEK:0,\nWEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:6};\ngoog.i18n.DateTimeSymbols_kk={ERAS:["\\u0431.\\u0437.\\u0434.","\\u0431.\\u0437."],ERANAMES:["\\u0411\\u0456\\u0437\\u0434\\u0456\\u04a3 \\u0437\\u0430\\u043c\\u0430\\u043d\\u044b\\u043c\\u044b\\u0437\\u0493\\u0430 \\u0434\\u0435\\u0439\\u0456\\u043d","\\u0411\\u0456\\u0437\\u0434\\u0456\\u04a3 \\u0437\\u0430\\u043c\\u0430\\u043d\\u044b\\u043c\\u044b\\u0437"],NARROWMONTHS:"\\u049a\\u0410\\u041d\\u0421\\u041c\\u041c\\u0428\\u0422\\u049a\\u049a\\u049a\\u0416".split(""),STANDALONENARROWMONTHS:"\\u049a\\u0410\\u041d\\u0421\\u041c\\u041c\\u0428\\u0422\\u049a\\u049a\\u049a\\u0416".split(""),MONTHS:"\\u049b\\u0430\\u04a3\\u0442\\u0430\\u0440 \\u0430\\u049b\\u043f\\u0430\\u043d \\u043d\\u0430\\u0443\\u0440\\u044b\\u0437 \\u0441\\u04d9\\u0443\\u0456\\u0440 \\u043c\\u0430\\u043c\\u044b\\u0440 \\u043c\\u0430\\u0443\\u0441\\u044b\\u043c \\u0448\\u0456\\u043b\\u0434\\u0435 \\u0442\\u0430\\u043c\\u044b\\u0437 \\u049b\\u044b\\u0440\\u043a\\u04af\\u0439\\u0435\\u043a \\u049b\\u0430\\u0437\\u0430\\u043d \\u049b\\u0430\\u0440\\u0430\\u0448\\u0430 \\u0436\\u0435\\u043b\\u0442\\u043e\\u049b\\u0441\\u0430\\u043d".split(" "),\nSTANDALONEMONTHS:"\\u049a\\u0430\\u04a3\\u0442\\u0430\\u0440 \\u0410\\u049b\\u043f\\u0430\\u043d \\u041d\\u0430\\u0443\\u0440\\u044b\\u0437 \\u0421\\u04d9\\u0443\\u0456\\u0440 \\u041c\\u0430\\u043c\\u044b\\u0440 \\u041c\\u0430\\u0443\\u0441\\u044b\\u043c \\u0428\\u0456\\u043b\\u0434\\u0435 \\u0422\\u0430\\u043c\\u044b\\u0437 \\u049a\\u044b\\u0440\\u043a\\u04af\\u0439\\u0435\\u043a \\u049a\\u0430\\u0437\\u0430\\u043d \\u049a\\u0430\\u0440\\u0430\\u0448\\u0430 \\u0416\\u0435\\u043b\\u0442\\u043e\\u049b\\u0441\\u0430\\u043d".split(" "),SHORTMONTHS:"\\u049b\\u0430\\u04a3. \\u0430\\u049b\\u043f. \\u043d\\u0430\\u0443. \\u0441\\u04d9\\u0443. \\u043c\\u0430\\u043c. \\u043c\\u0430\\u0443. \\u0448\\u0456\\u043b. \\u0442\\u0430\\u043c. \\u049b\\u044b\\u0440. \\u049b\\u0430\\u0437. \\u049b\\u0430\\u0440. \\u0436\\u0435\\u043b.".split(" "),\nSTANDALONESHORTMONTHS:"\\u049a\\u0430\\u04a3. \\u0410\\u049b\\u043f. \\u041d\\u0430\\u0443. \\u0421\\u04d9\\u0443. \\u041c\\u0430\\u043c. \\u041c\\u0430\\u0443. \\u0428\\u0456\\u043b. \\u0422\\u0430\\u043c. \\u049a\\u044b\\u0440. \\u049a\\u0430\\u0437. \\u049a\\u0430\\u0440. \\u0416\\u0435\\u043b.".split(" "),WEEKDAYS:"\\u0436\\u0435\\u043a\\u0441\\u0435\\u043d\\u0431\\u0456 \\u0434\\u04af\\u0439\\u0441\\u0435\\u043d\\u0431\\u0456 \\u0441\\u0435\\u0439\\u0441\\u0435\\u043d\\u0431\\u0456 \\u0441\\u04d9\\u0440\\u0441\\u0435\\u043d\\u0431\\u0456 \\u0431\\u0435\\u0439\\u0441\\u0435\\u043d\\u0431\\u0456 \\u0436\\u04b1\\u043c\\u0430 \\u0441\\u0435\\u043d\\u0431\\u0456".split(" "),\nSTANDALONEWEEKDAYS:"\\u0416\\u0435\\u043a\\u0441\\u0435\\u043d\\u0431\\u0456 \\u0414\\u04af\\u0439\\u0441\\u0435\\u043d\\u0431\\u0456 \\u0421\\u0435\\u0439\\u0441\\u0435\\u043d\\u0431\\u0456 \\u0421\\u04d9\\u0440\\u0441\\u0435\\u043d\\u0431\\u0456 \\u0411\\u0435\\u0439\\u0441\\u0435\\u043d\\u0431\\u0456 \\u0416\\u04b1\\u043c\\u0430 \\u0421\\u0435\\u043d\\u0431\\u0456".split(" "),SHORTWEEKDAYS:"\\u0416\\u0441 \\u0414\\u0441 \\u0421\\u0441 \\u0421\\u0440 \\u0411\\u0441 \\u0416\\u043c \\u0421\\u0431".split(" "),STANDALONESHORTWEEKDAYS:"\\u0416\\u0441 \\u0414\\u0441 \\u0421\\u0441 \\u0421\\u0440 \\u0411\\u0441 \\u0416\\u043c \\u0421\\u0431".split(" "),\nNARROWWEEKDAYS:"\\u0416\\u0414\\u0421\\u0421\\u0411\\u0416\\u0421".split(""),STANDALONENARROWWEEKDAYS:"\\u0416\\u0414\\u0421\\u0421\\u0411\\u0416\\u0421".split(""),SHORTQUARTERS:["\\u0406 \\u0448.","\\u0406\\u0406 \\u0448.","\\u0406\\u0406\\u0406 \\u0448.","IV \\u0448."],QUARTERS:["\\u0406 \\u0448\\u0438\\u0440\\u0435\\u043a","\\u0406\\u0406 \\u0448\\u0438\\u0440\\u0435\\u043a","\\u0406\\u0406\\u0406 \\u0448\\u0438\\u0440\\u0435\\u043a","IV \\u0448\\u0438\\u0440\\u0435\\u043a"],AMPMS:["\\u0442\\u0430\\u04a3\\u0493\\u044b","\\u0442\\u04af\\u0441\\u043a\\u0456/\\u043a\\u0435\\u0448\\u043a\\u0456"],\nDATEFORMATS:["y \'\\u0436\'. d MMMM, EEEE","y \'\\u0436\'. d MMMM","y \'\\u0436\'. dd MMM","dd.MM.yy"],TIMEFORMATS:["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],DATETIMEFORMATS:["{1} {0}","{1} {0}","{1} {0}","{1} {0}"],FIRSTDAYOFWEEK:0,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:6};\ngoog.i18n.DateTimeSymbols_km={ERAS:["\\u1798\\u17bb\\u1793 \\u1782.\\u179f.","\\u1782.\\u179f."],ERANAMES:["\\u1798\\u17bb\\u1793\\u200b\\u1782\\u17d2\\u179a\\u17b7\\u179f\\u17d2\\u178f\\u179f\\u1780\\u179a\\u17b6\\u1787","\\u1782\\u17d2\\u179a\\u17b7\\u179f\\u17d2\\u178f\\u179f\\u1780\\u179a\\u17b6\\u1787"],NARROWMONTHS:"1 2 3 4 5 6 7 8 9 10 11 12".split(" "),STANDALONENARROWMONTHS:"1 2 3 4 5 6 7 8 9 10 11 12".split(" "),MONTHS:"\\u1798\\u1780\\u179a\\u17b6 \\u1780\\u17bb\\u1798\\u17d2\\u1797\\u17c8 \\u1798\\u17b8\\u1793\\u17b6 \\u1798\\u17c1\\u179f\\u17b6 \\u17a7\\u179f\\u1797\\u17b6 \\u1798\\u17b7\\u1790\\u17bb\\u1793\\u17b6 \\u1780\\u1780\\u17d2\\u1780\\u178a\\u17b6 \\u179f\\u17b8\\u17a0\\u17b6 \\u1780\\u1789\\u17d2\\u1789\\u17b6 \\u178f\\u17bb\\u179b\\u17b6 \\u179c\\u17b7\\u1785\\u17d2\\u1786\\u17b7\\u1780\\u17b6 \\u1792\\u17d2\\u1793\\u17bc".split(" "),\nSTANDALONEMONTHS:"\\u1798\\u1780\\u179a\\u17b6 \\u1780\\u17bb\\u1798\\u17d2\\u1797\\u17c8 \\u1798\\u17b8\\u1793\\u17b6 \\u1798\\u17c1\\u179f\\u17b6 \\u17a7\\u179f\\u1797\\u17b6 \\u1798\\u17b7\\u1790\\u17bb\\u1793\\u17b6 \\u1780\\u1780\\u17d2\\u1780\\u178a\\u17b6 \\u179f\\u17b8\\u17a0\\u17b6 \\u1780\\u1789\\u17d2\\u1789\\u17b6 \\u178f\\u17bb\\u179b\\u17b6 \\u179c\\u17b7\\u1785\\u17d2\\u1786\\u17b7\\u1780\\u17b6 \\u1792\\u17d2\\u1793\\u17bc".split(" "),SHORTMONTHS:"\\u1798\\u1780\\u179a\\u17b6 \\u1780\\u17bb\\u1798\\u17d2\\u1797\\u17c8 \\u1798\\u17b8\\u1793\\u17b6 \\u1798\\u17c1\\u179f\\u17b6 \\u17a7\\u179f\\u1797\\u17b6 \\u1798\\u17b7\\u1790\\u17bb\\u1793\\u17b6 \\u1780\\u1780\\u17d2\\u1780\\u178a\\u17b6 \\u179f\\u17b8\\u17a0\\u17b6 \\u1780\\u1789\\u17d2\\u1789\\u17b6 \\u178f\\u17bb\\u179b\\u17b6 \\u179c\\u17b7\\u1785\\u17d2\\u1786\\u17b7\\u1780\\u17b6 \\u1792\\u17d2\\u1793\\u17bc".split(" "),\nSTANDALONESHORTMONTHS:"\\u1798\\u1780\\u179a\\u17b6 \\u1780\\u17bb\\u1798\\u17d2\\u1797\\u17c8 \\u1798\\u17b8\\u1793\\u17b6 \\u1798\\u17c1\\u179f\\u17b6 \\u17a7\\u179f\\u1797\\u17b6 \\u1798\\u17b7\\u1790\\u17bb\\u1793\\u17b6 \\u1780\\u1780\\u17d2\\u1780\\u178a\\u17b6 \\u179f\\u17b8\\u17a0\\u17b6 \\u1780\\u1789\\u17d2\\u1789\\u17b6 \\u178f\\u17bb\\u179b\\u17b6 \\u179c\\u17b7\\u1785\\u17d2\\u1786\\u17b7\\u1780\\u17b6 \\u1792\\u17d2\\u1793\\u17bc".split(" "),WEEKDAYS:"\\u17a2\\u17b6\\u1791\\u17b7\\u178f\\u17d2\\u1799 \\u1785\\u17d0\\u1793\\u17d2\\u1791 \\u17a2\\u1784\\u17d2\\u1782\\u17b6\\u179a \\u1796\\u17bb\\u1792 \\u1796\\u17d2\\u179a\\u17a0\\u179f\\u17d2\\u1794\\u178f\\u17b7\\u17cd \\u179f\\u17bb\\u1780\\u17d2\\u179a \\u179f\\u17c5\\u179a\\u17cd".split(" "),\nSTANDALONEWEEKDAYS:"\\u17a2\\u17b6\\u1791\\u17b7\\u178f\\u17d2\\u1799 \\u1785\\u17d0\\u1793\\u17d2\\u1791 \\u17a2\\u1784\\u17d2\\u1782\\u17b6\\u179a \\u1796\\u17bb\\u1792 \\u1796\\u17d2\\u179a\\u17a0\\u179f\\u17d2\\u1794\\u178f\\u17b7\\u17cd \\u179f\\u17bb\\u1780\\u17d2\\u179a \\u179f\\u17c5\\u179a\\u17cd".split(" "),SHORTWEEKDAYS:"\\u17a2\\u17b6\\u1791\\u17b7\\u178f\\u17d2\\u1799 \\u1785\\u17d0\\u1793\\u17d2\\u1791 \\u17a2\\u1784\\u17d2\\u1782\\u17b6\\u179a \\u1796\\u17bb\\u1792 \\u1796\\u17d2\\u179a\\u17a0\\u179f\\u17d2\\u1794\\u178f\\u17b7\\u17cd \\u179f\\u17bb\\u1780\\u17d2\\u179a \\u179f\\u17c5\\u179a\\u17cd".split(" "),\nSTANDALONESHORTWEEKDAYS:"\\u17a2\\u17b6\\u1791\\u17b7\\u178f\\u17d2\\u1799 \\u1785\\u17d0\\u1793\\u17d2\\u1791 \\u17a2\\u1784\\u17d2\\u1782\\u17b6\\u179a \\u1796\\u17bb\\u1792 \\u1796\\u17d2\\u179a\\u17a0\\u179f\\u17d2\\u1794\\u178f\\u17b7\\u17cd \\u179f\\u17bb\\u1780\\u17d2\\u179a \\u179f\\u17c5\\u179a\\u17cd".split(" "),NARROWWEEKDAYS:"\\u17a2\\u17b6 \\u1785 \\u17a2 \\u1796\\u17bb \\u1796\\u17d2\\u179a \\u179f\\u17bb \\u179f".split(" "),STANDALONENARROWWEEKDAYS:"\\u17a2\\u17b6 \\u1785 \\u17a2 \\u1796\\u17bb \\u1796\\u17d2\\u179a \\u179f\\u17bb \\u179f".split(" "),\nSHORTQUARTERS:["\\u178f\\u17d2\\u179a\\u17b8\\u1798\\u17b6\\u179f\\u1791\\u17b8 1","\\u178f\\u17d2\\u179a\\u17b8\\u1798\\u17b6\\u179f\\u1791\\u17b8 2","\\u178f\\u17d2\\u179a\\u17b8\\u1798\\u17b6\\u179f\\u1791\\u17b8 3","\\u178f\\u17d2\\u179a\\u17b8\\u1798\\u17b6\\u179f\\u1791\\u17b8 4"],QUARTERS:["\\u178f\\u17d2\\u179a\\u17b8\\u1798\\u17b6\\u179f\\u1791\\u17b8 1","\\u178f\\u17d2\\u179a\\u17b8\\u1798\\u17b6\\u179f\\u1791\\u17b8 2","\\u178f\\u17d2\\u179a\\u17b8\\u1798\\u17b6\\u179f\\u1791\\u17b8 3","\\u178f\\u17d2\\u179a\\u17b8\\u1798\\u17b6\\u179f\\u1791\\u17b8 4"],AMPMS:["\\u1796\\u17d2\\u179a\\u17b9\\u1780",\n"\\u179b\\u17d2\\u1784\\u17b6\\u1785"],DATEFORMATS:["EEEE d MMMM y","d MMMM y","d MMM y","d/M/yy"],TIMEFORMATS:["h:mm:ss a zzzz","h:mm:ss a z","h:mm:ss a","h:mm a"],DATETIMEFORMATS:["{1} \\u1793\\u17c5 {0}","{1} \\u1793\\u17c5 {0}","{1}, {0}","{1}, {0}"],FIRSTDAYOFWEEK:6,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:5};\ngoog.i18n.DateTimeSymbols_kn={ERAS:["\\u0c95\\u0ccd\\u0cb0\\u0cbf.\\u0caa\\u0cc2","\\u0c95\\u0ccd\\u0cb0\\u0cbf.\\u0cb6"],ERANAMES:["\\u0c95\\u0ccd\\u0cb0\\u0cbf\\u0cb8\\u0ccd\\u0ca4 \\u0caa\\u0cc2\\u0cb0\\u0ccd\\u0cb5","\\u0c95\\u0ccd\\u0cb0\\u0cbf\\u0cb8\\u0ccd\\u0ca4 \\u0cb6\\u0c95"],NARROWMONTHS:"\\u0c9c \\u0cab\\u0cc6 \\u0cae\\u0cbe \\u0c8f \\u0cae\\u0cc7 \\u0c9c\\u0cc2 \\u0c9c\\u0cc1 \\u0c86 \\u0cb8\\u0cc6 \\u0c85 \\u0ca8 \\u0ca1\\u0cbf".split(" "),STANDALONENARROWMONTHS:"\\u0c9c \\u0cab\\u0cc6 \\u0cae\\u0cbe \\u0c8f \\u0cae\\u0cc7 \\u0c9c\\u0cc2 \\u0c9c\\u0cc1 \\u0c86 \\u0cb8\\u0cc6 \\u0c85 \\u0ca8 \\u0ca1\\u0cbf".split(" "),\nMONTHS:"\\u0c9c\\u0ca8\\u0cb5\\u0cb0\\u0cbf \\u0cab\\u0cc6\\u0cac\\u0ccd\\u0cb0\\u0cb5\\u0cb0\\u0cbf \\u0cae\\u0cbe\\u0cb0\\u0ccd\\u0c9a\\u0ccd \\u0c8f\\u0caa\\u0ccd\\u0cb0\\u0cbf\\u0cb2\\u0ccd \\u0cae\\u0cc7 \\u0c9c\\u0cc2\\u0ca8\\u0ccd \\u0c9c\\u0cc1\\u0cb2\\u0cc8 \\u0c86\\u0c97\\u0cb8\\u0ccd\\u0c9f\\u0ccd \\u0cb8\\u0cc6\\u0caa\\u0ccd\\u0c9f\\u0cc6\\u0c82\\u0cac\\u0cb0\\u0ccd \\u0c85\\u0c95\\u0ccd\\u0c9f\\u0ccb\\u0cac\\u0cb0\\u0ccd \\u0ca8\\u0cb5\\u0cc6\\u0c82\\u0cac\\u0cb0\\u0ccd \\u0ca1\\u0cbf\\u0cb8\\u0cc6\\u0c82\\u0cac\\u0cb0\\u0ccd".split(" "),STANDALONEMONTHS:"\\u0c9c\\u0ca8\\u0cb5\\u0cb0\\u0cbf \\u0cab\\u0cc6\\u0cac\\u0ccd\\u0cb0\\u0cb5\\u0cb0\\u0cbf \\u0cae\\u0cbe\\u0cb0\\u0ccd\\u0c9a\\u0ccd \\u0c8f\\u0caa\\u0ccd\\u0cb0\\u0cbf\\u0cb2\\u0ccd \\u0cae\\u0cc7 \\u0c9c\\u0cc2\\u0ca8\\u0ccd \\u0c9c\\u0cc1\\u0cb2\\u0cc8 \\u0c86\\u0c97\\u0cb8\\u0ccd\\u0c9f\\u0ccd \\u0cb8\\u0cc6\\u0caa\\u0ccd\\u0c9f\\u0cc6\\u0c82\\u0cac\\u0cb0\\u0ccd \\u0c85\\u0c95\\u0ccd\\u0c9f\\u0ccb\\u0cac\\u0cb0\\u0ccd \\u0ca8\\u0cb5\\u0cc6\\u0c82\\u0cac\\u0cb0\\u0ccd \\u0ca1\\u0cbf\\u0cb8\\u0cc6\\u0c82\\u0cac\\u0cb0\\u0ccd".split(" "),\nSHORTMONTHS:"\\u0c9c\\u0ca8 \\u0cab\\u0cc6\\u0cac\\u0ccd\\u0cb0 \\u0cae\\u0cbe\\u0cb0\\u0ccd\\u0c9a\\u0ccd \\u0c8f\\u0caa\\u0ccd\\u0cb0\\u0cbf \\u0cae\\u0cc7 \\u0c9c\\u0cc2\\u0ca8\\u0ccd \\u0c9c\\u0cc1\\u0cb2\\u0cc8 \\u0c86\\u0c97 \\u0cb8\\u0cc6\\u0caa\\u0ccd\\u0c9f\\u0cc6\\u0c82 \\u0c85\\u0c95\\u0ccd\\u0c9f\\u0ccb \\u0ca8\\u0cb5\\u0cc6\\u0c82 \\u0ca1\\u0cbf\\u0cb8\\u0cc6\\u0c82".split(" "),STANDALONESHORTMONTHS:"\\u0c9c\\u0ca8 \\u0cab\\u0cc6\\u0cac\\u0ccd\\u0cb0 \\u0cae\\u0cbe\\u0cb0\\u0ccd\\u0c9a\\u0ccd \\u0c8f\\u0caa\\u0ccd\\u0cb0\\u0cbf \\u0cae\\u0cc7 \\u0c9c\\u0cc2\\u0ca8\\u0ccd \\u0c9c\\u0cc1\\u0cb2\\u0cc8 \\u0c86\\u0c97 \\u0cb8\\u0cc6\\u0caa\\u0ccd\\u0c9f\\u0cc6\\u0c82 \\u0c85\\u0c95\\u0ccd\\u0c9f\\u0ccb \\u0ca8\\u0cb5\\u0cc6\\u0c82 \\u0ca1\\u0cbf\\u0cb8\\u0cc6\\u0c82".split(" "),\nWEEKDAYS:"\\u0cad\\u0cbe\\u0ca8\\u0cc1\\u0cb5\\u0cbe\\u0cb0 \\u0cb8\\u0ccb\\u0cae\\u0cb5\\u0cbe\\u0cb0 \\u0cae\\u0c82\\u0c97\\u0cb3\\u0cb5\\u0cbe\\u0cb0 \\u0cac\\u0cc1\\u0ca7\\u0cb5\\u0cbe\\u0cb0 \\u0c97\\u0cc1\\u0cb0\\u0cc1\\u0cb5\\u0cbe\\u0cb0 \\u0cb6\\u0cc1\\u0c95\\u0ccd\\u0cb0\\u0cb5\\u0cbe\\u0cb0 \\u0cb6\\u0ca8\\u0cbf\\u0cb5\\u0cbe\\u0cb0".split(" "),STANDALONEWEEKDAYS:"\\u0cad\\u0cbe\\u0ca8\\u0cc1\\u0cb5\\u0cbe\\u0cb0 \\u0cb8\\u0ccb\\u0cae\\u0cb5\\u0cbe\\u0cb0 \\u0cae\\u0c82\\u0c97\\u0cb3\\u0cb5\\u0cbe\\u0cb0 \\u0cac\\u0cc1\\u0ca7\\u0cb5\\u0cbe\\u0cb0 \\u0c97\\u0cc1\\u0cb0\\u0cc1\\u0cb5\\u0cbe\\u0cb0 \\u0cb6\\u0cc1\\u0c95\\u0ccd\\u0cb0\\u0cb5\\u0cbe\\u0cb0 \\u0cb6\\u0ca8\\u0cbf\\u0cb5\\u0cbe\\u0cb0".split(" "),\nSHORTWEEKDAYS:"\\u0cad\\u0cbe\\u0ca8\\u0cc1 \\u0cb8\\u0ccb\\u0cae \\u0cae\\u0c82\\u0c97\\u0cb3 \\u0cac\\u0cc1\\u0ca7 \\u0c97\\u0cc1\\u0cb0\\u0cc1 \\u0cb6\\u0cc1\\u0c95\\u0ccd\\u0cb0 \\u0cb6\\u0ca8\\u0cbf".split(" "),STANDALONESHORTWEEKDAYS:"\\u0cad\\u0cbe\\u0ca8\\u0cc1 \\u0cb8\\u0ccb\\u0cae \\u0cae\\u0c82\\u0c97\\u0cb3 \\u0cac\\u0cc1\\u0ca7 \\u0c97\\u0cc1\\u0cb0\\u0cc1 \\u0cb6\\u0cc1\\u0c95\\u0ccd\\u0cb0 \\u0cb6\\u0ca8\\u0cbf".split(" "),NARROWWEEKDAYS:"\\u0cad\\u0cbe \\u0cb8\\u0ccb \\u0cae\\u0c82 \\u0cac\\u0cc1 \\u0c97\\u0cc1 \\u0cb6\\u0cc1 \\u0cb6".split(" "),\nSTANDALONENARROWWEEKDAYS:"\\u0cad\\u0cbe \\u0cb8\\u0ccb \\u0cae\\u0c82 \\u0cac\\u0cc1 \\u0c97\\u0cc1 \\u0cb6\\u0cc1 \\u0cb6".split(" "),SHORTQUARTERS:["\\u0ca4\\u0ccd\\u0cb0\\u0cc8 1","\\u0ca4\\u0ccd\\u0cb0\\u0cc8 2","\\u0ca4\\u0ccd\\u0cb0\\u0cc8 3","\\u0ca4\\u0ccd\\u0cb0\\u0cc8 4"],QUARTERS:["1\\u0ca8\\u0cc7 \\u0ca4\\u0ccd\\u0cb0\\u0cc8\\u0cae\\u0cbe\\u0cb8\\u0cbf\\u0c95","2\\u0ca8\\u0cc7 \\u0ca4\\u0ccd\\u0cb0\\u0cc8\\u0cae\\u0cbe\\u0cb8\\u0cbf\\u0c95","3\\u0ca8\\u0cc7 \\u0ca4\\u0ccd\\u0cb0\\u0cc8\\u0cae\\u0cbe\\u0cb8\\u0cbf\\u0c95","4\\u0ca8\\u0cc7 \\u0ca4\\u0ccd\\u0cb0\\u0cc8\\u0cae\\u0cbe\\u0cb8\\u0cbf\\u0c95"],\nAMPMS:["\\u0caa\\u0cc2\\u0cb0\\u0ccd\\u0cb5\\u0cbe\\u0cb9\\u0ccd\\u0ca8","\\u0c85\\u0caa\\u0cb0\\u0cbe\\u0cb9\\u0ccd\\u0ca8"],DATEFORMATS:["EEEE, MMMM d, y","MMMM d, y","MMM d, y","d/M/yy"],TIMEFORMATS:["hh:mm:ss a zzzz","hh:mm:ss a z","hh:mm:ss a","hh:mm a"],DATETIMEFORMATS:["{1} {0}","{1} {0}","{1} {0}","{1} {0}"],FIRSTDAYOFWEEK:6,WEEKENDRANGE:[6,6],FIRSTWEEKCUTOFFDAY:5};\ngoog.i18n.DateTimeSymbols_ko={ERAS:["BC","AD"],ERANAMES:["\\uae30\\uc6d0\\uc804","\\uc11c\\uae30"],NARROWMONTHS:"1\\uc6d4 2\\uc6d4 3\\uc6d4 4\\uc6d4 5\\uc6d4 6\\uc6d4 7\\uc6d4 8\\uc6d4 9\\uc6d4 10\\uc6d4 11\\uc6d4 12\\uc6d4".split(" "),STANDALONENARROWMONTHS:"1\\uc6d4 2\\uc6d4 3\\uc6d4 4\\uc6d4 5\\uc6d4 6\\uc6d4 7\\uc6d4 8\\uc6d4 9\\uc6d4 10\\uc6d4 11\\uc6d4 12\\uc6d4".split(" "),MONTHS:"1\\uc6d4 2\\uc6d4 3\\uc6d4 4\\uc6d4 5\\uc6d4 6\\uc6d4 7\\uc6d4 8\\uc6d4 9\\uc6d4 10\\uc6d4 11\\uc6d4 12\\uc6d4".split(" "),STANDALONEMONTHS:"1\\uc6d4 2\\uc6d4 3\\uc6d4 4\\uc6d4 5\\uc6d4 6\\uc6d4 7\\uc6d4 8\\uc6d4 9\\uc6d4 10\\uc6d4 11\\uc6d4 12\\uc6d4".split(" "),\nSHORTMONTHS:"1\\uc6d4 2\\uc6d4 3\\uc6d4 4\\uc6d4 5\\uc6d4 6\\uc6d4 7\\uc6d4 8\\uc6d4 9\\uc6d4 10\\uc6d4 11\\uc6d4 12\\uc6d4".split(" "),STANDALONESHORTMONTHS:"1\\uc6d4 2\\uc6d4 3\\uc6d4 4\\uc6d4 5\\uc6d4 6\\uc6d4 7\\uc6d4 8\\uc6d4 9\\uc6d4 10\\uc6d4 11\\uc6d4 12\\uc6d4".split(" "),WEEKDAYS:"\\uc77c\\uc694\\uc77c \\uc6d4\\uc694\\uc77c \\ud654\\uc694\\uc77c \\uc218\\uc694\\uc77c \\ubaa9\\uc694\\uc77c \\uae08\\uc694\\uc77c \\ud1a0\\uc694\\uc77c".split(" "),STANDALONEWEEKDAYS:"\\uc77c\\uc694\\uc77c \\uc6d4\\uc694\\uc77c \\ud654\\uc694\\uc77c \\uc218\\uc694\\uc77c \\ubaa9\\uc694\\uc77c \\uae08\\uc694\\uc77c \\ud1a0\\uc694\\uc77c".split(" "),\nSHORTWEEKDAYS:"\\uc77c\\uc6d4\\ud654\\uc218\\ubaa9\\uae08\\ud1a0".split(""),STANDALONESHORTWEEKDAYS:"\\uc77c\\uc6d4\\ud654\\uc218\\ubaa9\\uae08\\ud1a0".split(""),NARROWWEEKDAYS:"\\uc77c\\uc6d4\\ud654\\uc218\\ubaa9\\uae08\\ud1a0".split(""),STANDALONENARROWWEEKDAYS:"\\uc77c\\uc6d4\\ud654\\uc218\\ubaa9\\uae08\\ud1a0".split(""),SHORTQUARTERS:["1\\ubd84\\uae30","2\\ubd84\\uae30","3\\ubd84\\uae30","4\\ubd84\\uae30"],QUARTERS:["\\uc81c 1/4\\ubd84\\uae30","\\uc81c 2/4\\ubd84\\uae30","\\uc81c 3/4\\ubd84\\uae30","\\uc81c 4/4\\ubd84\\uae30"],AMPMS:["\\uc624\\uc804",\n"\\uc624\\ud6c4"],DATEFORMATS:["y\\ub144 M\\uc6d4 d\\uc77c EEEE","y\\ub144 M\\uc6d4 d\\uc77c","y. M. d.","yy. M. d."],TIMEFORMATS:["a h\\uc2dc m\\ubd84 s\\ucd08 zzzz","a h\\uc2dc m\\ubd84 s\\ucd08 z","a h:mm:ss","a h:mm"],DATETIMEFORMATS:["{1} {0}","{1} {0}","{1} {0}","{1} {0}"],FIRSTDAYOFWEEK:6,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:5};\ngoog.i18n.DateTimeSymbols_ky={ERAS:["\\u0431.\\u0437.\\u0447.","\\u0431.\\u0437."],ERANAMES:["\\u0431\\u0438\\u0437\\u0434\\u0438\\u043d \\u0437\\u0430\\u043c\\u0430\\u043d\\u0433\\u0430 \\u0447\\u0435\\u0439\\u0438\\u043d","\\u0431\\u0438\\u0437\\u0434\\u0438\\u043d \\u0437\\u0430\\u043c\\u0430\\u043d"],NARROWMONTHS:"\\u042f\\u0424\\u041c\\u0410\\u041c\\u0418\\u0418\\u0410\\u0421\\u041e\\u041d\\u0414".split(""),STANDALONENARROWMONTHS:"\\u042f\\u0424\\u041c\\u0410\\u041c\\u0418\\u0418\\u0410\\u0421\\u041e\\u041d\\u0414".split(""),MONTHS:"\\u044f\\u043d\\u0432\\u0430\\u0440\\u044c \\u0444\\u0435\\u0432\\u0440\\u0430\\u043b\\u044c \\u043c\\u0430\\u0440\\u0442 \\u0430\\u043f\\u0440\\u0435\\u043b\\u044c \\u043c\\u0430\\u0439 \\u0438\\u044e\\u043d\\u044c \\u0438\\u044e\\u043b\\u044c \\u0430\\u0432\\u0433\\u0443\\u0441\\u0442 \\u0441\\u0435\\u043d\\u0442\\u044f\\u0431\\u0440\\u044c \\u043e\\u043a\\u0442\\u044f\\u0431\\u0440\\u044c \\u043d\\u043e\\u044f\\u0431\\u0440\\u044c \\u0434\\u0435\\u043a\\u0430\\u0431\\u0440\\u044c".split(" "),\nSTANDALONEMONTHS:"\\u042f\\u043d\\u0432\\u0430\\u0440\\u044c \\u0424\\u0435\\u0432\\u0440\\u0430\\u043b\\u044c \\u041c\\u0430\\u0440\\u0442 \\u0410\\u043f\\u0440\\u0435\\u043b\\u044c \\u041c\\u0430\\u0439 \\u0418\\u044e\\u043d\\u044c \\u0418\\u044e\\u043b\\u044c \\u0410\\u0432\\u0433\\u0443\\u0441\\u0442 \\u0421\\u0435\\u043d\\u0442\\u044f\\u0431\\u0440\\u044c \\u041e\\u043a\\u0442\\u044f\\u0431\\u0440\\u044c \\u041d\\u043e\\u044f\\u0431\\u0440\\u044c \\u0414\\u0435\\u043a\\u0430\\u0431\\u0440\\u044c".split(" "),SHORTMONTHS:"\\u044f\\u043d\\u0432. \\u0444\\u0435\\u0432. \\u043c\\u0430\\u0440. \\u0430\\u043f\\u0440. \\u043c\\u0430\\u0439 \\u0438\\u044e\\u043d. \\u0438\\u044e\\u043b. \\u0430\\u0432\\u0433. \\u0441\\u0435\\u043d. \\u043e\\u043a\\u0442. \\u043d\\u043e\\u044f. \\u0434\\u0435\\u043a.".split(" "),\nSTANDALONESHORTMONTHS:"\\u042f\\u043d\\u0432 \\u0424\\u0435\\u0432 \\u041c\\u0430\\u0440 \\u0410\\u043f\\u0440 \\u041c\\u0430\\u0439 \\u0418\\u044e\\u043d \\u0418\\u044e\\u043b \\u0410\\u0432\\u0433 \\u0421\\u0435\\u043d \\u041e\\u043a\\u0442 \\u041d\\u043e\\u044f \\u0414\\u0435\\u043a".split(" "),WEEKDAYS:"\\u0436\\u0435\\u043a\\u0448\\u0435\\u043c\\u0431\\u0438 \\u0434\\u04af\\u0439\\u0448\\u04e9\\u043c\\u0431\\u04af \\u0448\\u0435\\u0439\\u0448\\u0435\\u043c\\u0431\\u0438 \\u0448\\u0430\\u0440\\u0448\\u0435\\u043c\\u0431\\u0438 \\u0431\\u0435\\u0439\\u0448\\u0435\\u043c\\u0431\\u0438 \\u0436\\u0443\\u043c\\u0430 \\u0438\\u0448\\u0435\\u043c\\u0431\\u0438".split(" "),\nSTANDALONEWEEKDAYS:"\\u0436\\u0435\\u043a\\u0448\\u0435\\u043c\\u0431\\u0438 \\u0434\\u04af\\u0439\\u0448\\u04e9\\u043c\\u0431\\u04af \\u0448\\u0435\\u0439\\u0448\\u0435\\u043c\\u0431\\u0438 \\u0448\\u0430\\u0440\\u0448\\u0435\\u043c\\u0431\\u0438 \\u0431\\u0435\\u0439\\u0448\\u0435\\u043c\\u0431\\u0438 \\u0436\\u0443\\u043c\\u0430 \\u0438\\u0448\\u0435\\u043c\\u0431\\u0438".split(" "),SHORTWEEKDAYS:"\\u0436\\u0435\\u043a. \\u0434\\u04af\\u0439. \\u0448\\u0435\\u0439\\u0448. \\u0448\\u0430\\u0440\\u0448. \\u0431\\u0435\\u0439\\u0448. \\u0436\\u0443\\u043c\\u0430 \\u0438\\u0448\\u043c.".split(" "),\nSTANDALONESHORTWEEKDAYS:"\\u0436\\u0435\\u043a. \\u0434\\u04af\\u0439. \\u0448\\u0435\\u0439\\u0448. \\u0448\\u0430\\u0440\\u0448. \\u0431\\u0435\\u0439\\u0448. \\u0436\\u0443\\u043c\\u0430 \\u0438\\u0448\\u043c.".split(" "),NARROWWEEKDAYS:"\\u0416\\u0414\\u0428\\u0428\\u0411\\u0416\\u0418".split(""),STANDALONENARROWWEEKDAYS:"\\u0416\\u0414\\u0428\\u0428\\u0411\\u0416\\u0418".split(""),SHORTQUARTERS:["1-\\u0447\\u0435\\u0439.","2-\\u0447\\u0435\\u0439.","3-\\u0447\\u0435\\u0439.","4-\\u0447\\u0435\\u0439."],QUARTERS:["1-\\u0447\\u0435\\u0439\\u0440\\u0435\\u043a",\n"2-\\u0447\\u0435\\u0439\\u0440\\u0435\\u043a","3-\\u0447\\u0435\\u0439\\u0440\\u0435\\u043a","4-\\u0447\\u0435\\u0439\\u0440\\u0435\\u043a"],AMPMS:["\\u0442\\u0430\\u04a3\\u043a\\u044b","\\u0442\\u04af\\u0448\\u0442\\u04e9\\u043d \\u043a\\u0438\\u0439\\u0438\\u043d\\u043a\\u0438"],DATEFORMATS:["EEEE, d-MMMM, y-\'\\u0436\'.","y MMMM d","y MMM d","dd.MM.yy"],TIMEFORMATS:["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],DATETIMEFORMATS:["{1} {0}","{1} {0}","{1} {0}","{1} {0}"],FIRSTDAYOFWEEK:0,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:6};\ngoog.i18n.DateTimeSymbols_ln={ERAS:["lib\\u00f3so ya","nsima ya Y"],ERANAMES:["Yambo ya Y\\u00e9zu Kr\\u00eds","Nsima ya Y\\u00e9zu Kr\\u00eds"],NARROWMONTHS:"yfmamyyas\\u0254nd".split(""),STANDALONENARROWMONTHS:"yfmamyyas\\u0254nd".split(""),MONTHS:"s\\u00e1nz\\u00e1 ya yambo;s\\u00e1nz\\u00e1 ya m\\u00edbal\\u00e9;s\\u00e1nz\\u00e1 ya m\\u00eds\\u00e1to;s\\u00e1nz\\u00e1 ya m\\u00ednei;s\\u00e1nz\\u00e1 ya m\\u00edt\\u00e1no;s\\u00e1nz\\u00e1 ya mot\\u00f3b\\u00e1;s\\u00e1nz\\u00e1 ya nsambo;s\\u00e1nz\\u00e1 ya mwambe;s\\u00e1nz\\u00e1 ya libwa;s\\u00e1nz\\u00e1 ya z\\u00f3mi;s\\u00e1nz\\u00e1 ya z\\u00f3mi na m\\u0254\\u030ck\\u0254\\u0301;s\\u00e1nz\\u00e1 ya z\\u00f3mi na m\\u00edbal\\u00e9".split(";"),\nSTANDALONEMONTHS:"s\\u00e1nz\\u00e1 ya yambo;s\\u00e1nz\\u00e1 ya m\\u00edbal\\u00e9;s\\u00e1nz\\u00e1 ya m\\u00eds\\u00e1to;s\\u00e1nz\\u00e1 ya m\\u00ednei;s\\u00e1nz\\u00e1 ya m\\u00edt\\u00e1no;s\\u00e1nz\\u00e1 ya mot\\u00f3b\\u00e1;s\\u00e1nz\\u00e1 ya nsambo;s\\u00e1nz\\u00e1 ya mwambe;s\\u00e1nz\\u00e1 ya libwa;s\\u00e1nz\\u00e1 ya z\\u00f3mi;s\\u00e1nz\\u00e1 ya z\\u00f3mi na m\\u0254\\u030ck\\u0254\\u0301;s\\u00e1nz\\u00e1 ya z\\u00f3mi na m\\u00edbal\\u00e9".split(";"),SHORTMONTHS:"yan fbl msi apl mai yun yul agt stb \\u0254tb nvb dsb".split(" "),\nSTANDALONESHORTMONTHS:"yan fbl msi apl mai yun yul agt stb \\u0254tb nvb dsb".split(" "),WEEKDAYS:"eyenga;mok\\u0254l\\u0254 mwa yambo;mok\\u0254l\\u0254 mwa m\\u00edbal\\u00e9;mok\\u0254l\\u0254 mwa m\\u00eds\\u00e1to;mok\\u0254l\\u0254 ya m\\u00edn\\u00e9i;mok\\u0254l\\u0254 ya m\\u00edt\\u00e1no;mp\\u0254\\u0301s\\u0254".split(";"),STANDALONEWEEKDAYS:"eyenga;mok\\u0254l\\u0254 mwa yambo;mok\\u0254l\\u0254 mwa m\\u00edbal\\u00e9;mok\\u0254l\\u0254 mwa m\\u00eds\\u00e1to;mok\\u0254l\\u0254 ya m\\u00edn\\u00e9i;mok\\u0254l\\u0254 ya m\\u00edt\\u00e1no;mp\\u0254\\u0301s\\u0254".split(";"),\nSHORTWEEKDAYS:"eye ybo mbl mst min mtn mps".split(" "),STANDALONESHORTWEEKDAYS:"eye ybo mbl mst min mtn mps".split(" "),NARROWWEEKDAYS:"eymmmmp".split(""),STANDALONENARROWWEEKDAYS:"eymmmmp".split(""),SHORTQUARTERS:["SM1","SM2","SM3","SM4"],QUARTERS:["s\\u00e1nz\\u00e1 m\\u00eds\\u00e1to ya yambo","s\\u00e1nz\\u00e1 m\\u00eds\\u00e1to ya m\\u00edbal\\u00e9","s\\u00e1nz\\u00e1 m\\u00eds\\u00e1to ya m\\u00eds\\u00e1to","s\\u00e1nz\\u00e1 m\\u00eds\\u00e1to ya m\\u00ednei"],AMPMS:["nt\\u0254\\u0301ng\\u0254\\u0301","mp\\u00f3kwa"],\nDATEFORMATS:["EEEE d MMMM y","d MMMM y","d MMM y","d/M/y"],TIMEFORMATS:["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],DATETIMEFORMATS:["{1} {0}","{1} {0}","{1} {0}","{1} {0}"],FIRSTDAYOFWEEK:0,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:6};\ngoog.i18n.DateTimeSymbols_lo={ERAS:["\\u0e81\\u0ec8\\u0ead\\u0e99 \\u0e84.\\u0eaa.","\\u0e84.\\u0eaa."],ERANAMES:["\\u0e81\\u0ec8\\u0ead\\u0e99\\u0e84\\u0ea3\\u0eb4\\u0e94\\u0eaa\\u0eb1\\u0e81\\u0e81\\u0eb0\\u0ea5\\u0eb2\\u0e94","\\u0e84\\u0ea3\\u0eb4\\u0e94\\u0eaa\\u0eb1\\u0e81\\u0e81\\u0eb0\\u0ea5\\u0eb2\\u0e94"],NARROWMONTHS:"1 2 3 4 5 6 7 8 9 10 11 12".split(" "),STANDALONENARROWMONTHS:"1 2 3 4 5 6 7 8 9 10 11 12".split(" "),MONTHS:"\\u0ea1\\u0eb1\\u0e87\\u0e81\\u0ead\\u0e99 \\u0e81\\u0eb8\\u0ea1\\u0e9e\\u0eb2 \\u0ea1\\u0eb5\\u0e99\\u0eb2 \\u0ec0\\u0ea1\\u0eaa\\u0eb2 \\u0e9e\\u0eb6\\u0e94\\u0eaa\\u0eb0\\u0e9e\\u0eb2 \\u0ea1\\u0eb4\\u0e96\\u0eb8\\u0e99\\u0eb2 \\u0e81\\u0ecd\\u0ea5\\u0eb0\\u0e81\\u0ebb\\u0e94 \\u0eaa\\u0eb4\\u0e87\\u0eab\\u0eb2 \\u0e81\\u0eb1\\u0e99\\u0e8d\\u0eb2 \\u0e95\\u0eb8\\u0ea5\\u0eb2 \\u0e9e\\u0eb0\\u0e88\\u0eb4\\u0e81 \\u0e97\\u0eb1\\u0e99\\u0ea7\\u0eb2".split(" "),\nSTANDALONEMONTHS:"\\u0ea1\\u0eb1\\u0e87\\u0e81\\u0ead\\u0e99 \\u0e81\\u0eb8\\u0ea1\\u0e9e\\u0eb2 \\u0ea1\\u0eb5\\u0e99\\u0eb2 \\u0ec0\\u0ea1\\u0eaa\\u0eb2 \\u0e9e\\u0eb6\\u0e94\\u0eaa\\u0eb0\\u0e9e\\u0eb2 \\u0ea1\\u0eb4\\u0e96\\u0eb8\\u0e99\\u0eb2 \\u0e81\\u0ecd\\u0ea5\\u0eb0\\u0e81\\u0ebb\\u0e94 \\u0eaa\\u0eb4\\u0e87\\u0eab\\u0eb2 \\u0e81\\u0eb1\\u0e99\\u0e8d\\u0eb2 \\u0e95\\u0eb8\\u0ea5\\u0eb2 \\u0e9e\\u0eb0\\u0e88\\u0eb4\\u0e81 \\u0e97\\u0eb1\\u0e99\\u0ea7\\u0eb2".split(" "),SHORTMONTHS:"\\u0ea1.\\u0e81. \\u0e81.\\u0e9e. \\u0ea1.\\u0e99. \\u0ea1.\\u0eaa. \\u0e9e.\\u0e9e. \\u0ea1\\u0eb4.\\u0e96. \\u0e81.\\u0ea5. \\u0eaa.\\u0eab. \\u0e81.\\u0e8d. \\u0e95.\\u0ea5. \\u0e9e.\\u0e88. \\u0e97.\\u0ea7.".split(" "),\nSTANDALONESHORTMONTHS:"\\u0ea1.\\u0e81. \\u0e81.\\u0e9e. \\u0ea1.\\u0e99. \\u0ea1.\\u0eaa. \\u0e9e.\\u0e9e. \\u0ea1\\u0eb4.\\u0e96. \\u0e81.\\u0ea5. \\u0eaa.\\u0eab. \\u0e81.\\u0e8d. \\u0e95.\\u0ea5. \\u0e9e.\\u0e88. \\u0e97.\\u0ea7.".split(" "),WEEKDAYS:"\\u0ea7\\u0eb1\\u0e99\\u0ead\\u0eb2\\u0e97\\u0eb4\\u0e94 \\u0ea7\\u0eb1\\u0e99\\u0e88\\u0eb1\\u0e99 \\u0ea7\\u0eb1\\u0e99\\u0ead\\u0eb1\\u0e87\\u0e84\\u0eb2\\u0e99 \\u0ea7\\u0eb1\\u0e99\\u0e9e\\u0eb8\\u0e94 \\u0ea7\\u0eb1\\u0e99\\u0e9e\\u0eb0\\u0eab\\u0eb1\\u0e94 \\u0ea7\\u0eb1\\u0e99\\u0eaa\\u0eb8\\u0e81 \\u0ea7\\u0eb1\\u0e99\\u0ec0\\u0eaa\\u0ebb\\u0eb2".split(" "),\nSTANDALONEWEEKDAYS:"\\u0ea7\\u0eb1\\u0e99\\u0ead\\u0eb2\\u0e97\\u0eb4\\u0e94 \\u0ea7\\u0eb1\\u0e99\\u0e88\\u0eb1\\u0e99 \\u0ea7\\u0eb1\\u0e99\\u0ead\\u0eb1\\u0e87\\u0e84\\u0eb2\\u0e99 \\u0ea7\\u0eb1\\u0e99\\u0e9e\\u0eb8\\u0e94 \\u0ea7\\u0eb1\\u0e99\\u0e9e\\u0eb0\\u0eab\\u0eb1\\u0e94 \\u0ea7\\u0eb1\\u0e99\\u0eaa\\u0eb8\\u0e81 \\u0ea7\\u0eb1\\u0e99\\u0ec0\\u0eaa\\u0ebb\\u0eb2".split(" "),SHORTWEEKDAYS:"\\u0ea7\\u0eb1\\u0e99\\u0ead\\u0eb2\\u0e97\\u0eb4\\u0e94 \\u0ea7\\u0eb1\\u0e99\\u0e88\\u0eb1\\u0e99 \\u0ea7\\u0eb1\\u0e99\\u0ead\\u0eb1\\u0e87\\u0e84\\u0eb2\\u0e99 \\u0ea7\\u0eb1\\u0e99\\u0e9e\\u0eb8\\u0e94 \\u0ea7\\u0eb1\\u0e99\\u0e9e\\u0eb0\\u0eab\\u0eb1\\u0e94 \\u0ea7\\u0eb1\\u0e99\\u0eaa\\u0eb8\\u0e81 \\u0ea7\\u0eb1\\u0e99\\u0ec0\\u0eaa\\u0ebb\\u0eb2".split(" "),\nSTANDALONESHORTWEEKDAYS:"\\u0ead\\u0eb2\\u0e97\\u0eb4\\u0e94 \\u0e88\\u0eb1\\u0e99 \\u0ead\\u0eb1\\u0e87\\u0e84\\u0eb2\\u0e99 \\u0e9e\\u0eb8\\u0e94 \\u0e9e\\u0eb0\\u0eab\\u0eb1\\u0e94 \\u0eaa\\u0eb8\\u0e81 \\u0ec0\\u0eaa\\u0ebb\\u0eb2".split(" "),NARROWWEEKDAYS:"1234567".split(""),STANDALONENARROWWEEKDAYS:"\\u0ead \\u0e88 \\u0ead \\u0e9e \\u0e9e\\u0eab \\u0eaa\\u0eb8 \\u0eaa".split(" "),SHORTQUARTERS:["\\u0e95\\u0ea11","\\u0e95\\u0ea12","\\u0e95\\u0ea13","\\u0e95\\u0ea14"],QUARTERS:["\\u0ec4\\u0e95\\u0ea3\\u0ea1\\u0eb2\\u0e94 1","\\u0ec4\\u0e95\\u0ea3\\u0ea1\\u0eb2\\u0e94 2",\n"\\u0ec4\\u0e95\\u0ea3\\u0ea1\\u0eb2\\u0e94 3","\\u0ec4\\u0e95\\u0ea3\\u0ea1\\u0eb2\\u0e94 4"],AMPMS:["\\u0e81\\u0ec8\\u0ead\\u0e99\\u0e97\\u0ec8\\u0ebd\\u0e87","\\u0eab\\u0ebc\\u0eb1\\u0e87\\u0e97\\u0ec8\\u0ebd\\u0e87"],DATEFORMATS:["EEEE \\u0e97\\u0eb5 d MMMM G y","d MMMM y","d MMM y","d/M/y"],TIMEFORMATS:["H \\u0ec2\\u0ea1\\u0e87 m \\u0e99\\u0eb2\\u0e97\\u0eb5 ss \\u0ea7\\u0eb4\\u0e99\\u0eb2\\u0e97\\u0eb5 zzzz","H \\u0ec2\\u0ea1\\u0e87 m \\u0e99\\u0eb2\\u0e97\\u0eb5 ss \\u0ea7\\u0eb4\\u0e99\\u0eb2\\u0e97\\u0eb5 z","H:mm:ss","H:mm"],DATETIMEFORMATS:["{1}, {0}",\n"{1}, {0}","{1}, {0}","{1}, {0}"],FIRSTDAYOFWEEK:6,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:5};\ngoog.i18n.DateTimeSymbols_lt={ERAS:["pr. Kr.","po Kr."],ERANAMES:["prie\\u0161 Krist\\u0173","po Kristaus"],NARROWMONTHS:"SVKBGBLRRSLG".split(""),STANDALONENARROWMONTHS:"SVKBGBLRRSLG".split(""),MONTHS:"sausio vasario kovo baland\\u017eio gegu\\u017e\\u0117s bir\\u017eelio liepos rugpj\\u016b\\u010dio rugs\\u0117jo spalio lapkri\\u010dio gruod\\u017eio".split(" "),STANDALONEMONTHS:"sausis vasaris kovas balandis gegu\\u017e\\u0117 bir\\u017eelis liepa rugpj\\u016btis rugs\\u0117jis spalis lapkritis gruodis".split(" "),SHORTMONTHS:"saus. vas. kov. bal. geg. bir\\u017e. liep. rugp. rugs. spal. lapkr. gruod.".split(" "),\nSTANDALONESHORTMONTHS:"saus. vas. kov. bal. geg. bir\\u017e. liep. rugp. rugs. spal. lapkr. gruod.".split(" "),WEEKDAYS:"sekmadienis pirmadienis antradienis tre\\u010diadienis ketvirtadienis penktadienis \\u0161e\\u0161tadienis".split(" "),STANDALONEWEEKDAYS:"sekmadienis pirmadienis antradienis tre\\u010diadienis ketvirtadienis penktadienis \\u0161e\\u0161tadienis".split(" "),SHORTWEEKDAYS:"sk pr an tr kt pn \\u0161t".split(" "),STANDALONESHORTWEEKDAYS:"sk pr an tr kt pn \\u0161t".split(" "),NARROWWEEKDAYS:"SPATKP\\u0160".split(""),\nSTANDALONENARROWWEEKDAYS:"SPATKP\\u0160".split(""),SHORTQUARTERS:["I k.","II k.","III k.","IV k."],QUARTERS:["I ketvirtis","II ketvirtis","III ketvirtis","IV ketvirtis"],AMPMS:["prie\\u0161piet","popiet"],DATEFORMATS:["y \'m\'. MMMM d \'d\'., EEEE","y \'m\'. MMMM d \'d\'.","y-MM-dd","y-MM-dd"],TIMEFORMATS:["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],DATETIMEFORMATS:["{1} {0}","{1} {0}","{1} {0}","{1} {0}"],FIRSTDAYOFWEEK:0,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:3};\ngoog.i18n.DateTimeSymbols_lv={ERAS:["p.m.\\u0113.","m.\\u0113."],ERANAMES:["pirms m\\u016bsu \\u0113ras","m\\u016bsu \\u0113r\\u0101"],NARROWMONTHS:"JFMAMJJASOND".split(""),STANDALONENARROWMONTHS:"JFMAMJJASOND".split(""),MONTHS:"janv\\u0101ris febru\\u0101ris marts apr\\u012blis maijs j\\u016bnijs j\\u016blijs augusts septembris oktobris novembris decembris".split(" "),STANDALONEMONTHS:"Janv\\u0101ris Febru\\u0101ris Marts Apr\\u012blis Maijs J\\u016bnijs J\\u016blijs Augusts Septembris Oktobris Novembris Decembris".split(" "),\nSHORTMONTHS:"janv. febr. marts apr. maijs j\\u016bn. j\\u016bl. aug. sept. okt. nov. dec.".split(" "),STANDALONESHORTMONTHS:"Janv. Febr. Marts Apr. Maijs J\\u016bn. J\\u016bl. Aug. Sept. Okt. Nov. Dec.".split(" "),WEEKDAYS:"sv\\u0113tdiena pirmdiena otrdiena tre\\u0161diena ceturtdiena piektdiena sestdiena".split(" "),STANDALONEWEEKDAYS:"Sv\\u0113tdiena Pirmdiena Otrdiena Tre\\u0161diena Ceturtdiena Piektdiena Sestdiena".split(" "),SHORTWEEKDAYS:"Sv Pr Ot Tr Ce Pk Se".split(" "),STANDALONESHORTWEEKDAYS:"Sv Pr Ot Tr Ce Pk Se".split(" "),\nNARROWWEEKDAYS:"SPOTCPS".split(""),STANDALONENARROWWEEKDAYS:"SPOTCPS".split(""),SHORTQUARTERS:["1.\\u00a0cet.","2.\\u00a0cet.","3.\\u00a0cet.","4.\\u00a0cet."],QUARTERS:["1. ceturksnis","2. ceturksnis","3. ceturksnis","4. ceturksnis"],AMPMS:["priek\\u0161pusdien\\u0101","p\\u0113cpusdien\\u0101"],DATEFORMATS:["EEEE, y. \'gada\' d. MMMM","y. \'gada\' d. MMMM","y. \'gada\' d. MMM","dd.MM.yy"],TIMEFORMATS:["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],DATETIMEFORMATS:["{1} {0}","{1} {0}","{1} {0}","{1} {0}"],FIRSTDAYOFWEEK:0,\nWEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:6};\ngoog.i18n.DateTimeSymbols_mk={ERAS:["\\u043f\\u0440.\\u043d.\\u0435.","\\u043d.\\u0435."],ERANAMES:["\\u043f\\u0440\\u0435\\u0434 \\u043d\\u0430\\u0448\\u0430\\u0442\\u0430 \\u0435\\u0440\\u0430","\\u043e\\u0434 \\u043d\\u0430\\u0448\\u0430\\u0442\\u0430 \\u0435\\u0440\\u0430"],NARROWMONTHS:"\\u0458\\u0444\\u043c\\u0430\\u043c\\u0458\\u0458\\u0430\\u0441\\u043e\\u043d\\u0434".split(""),STANDALONENARROWMONTHS:"\\u0458\\u0444\\u043c\\u0430\\u043c\\u0458\\u0458\\u0430\\u0441\\u043e\\u043d\\u0434".split(""),MONTHS:"\\u0458\\u0430\\u043d\\u0443\\u0430\\u0440\\u0438 \\u0444\\u0435\\u0432\\u0440\\u0443\\u0430\\u0440\\u0438 \\u043c\\u0430\\u0440\\u0442 \\u0430\\u043f\\u0440\\u0438\\u043b \\u043c\\u0430\\u0458 \\u0458\\u0443\\u043d\\u0438 \\u0458\\u0443\\u043b\\u0438 \\u0430\\u0432\\u0433\\u0443\\u0441\\u0442 \\u0441\\u0435\\u043f\\u0442\\u0435\\u043c\\u0432\\u0440\\u0438 \\u043e\\u043a\\u0442\\u043e\\u043c\\u0432\\u0440\\u0438 \\u043d\\u043e\\u0435\\u043c\\u0432\\u0440\\u0438 \\u0434\\u0435\\u043a\\u0435\\u043c\\u0432\\u0440\\u0438".split(" "),STANDALONEMONTHS:"\\u0458\\u0430\\u043d\\u0443\\u0430\\u0440\\u0438 \\u0444\\u0435\\u0432\\u0440\\u0443\\u0430\\u0440\\u0438 \\u043c\\u0430\\u0440\\u0442 \\u0430\\u043f\\u0440\\u0438\\u043b \\u043c\\u0430\\u0458 \\u0458\\u0443\\u043d\\u0438 \\u0458\\u0443\\u043b\\u0438 \\u0430\\u0432\\u0433\\u0443\\u0441\\u0442 \\u0441\\u0435\\u043f\\u0442\\u0435\\u043c\\u0432\\u0440\\u0438 \\u043e\\u043a\\u0442\\u043e\\u043c\\u0432\\u0440\\u0438 \\u043d\\u043e\\u0435\\u043c\\u0432\\u0440\\u0438 \\u0434\\u0435\\u043a\\u0435\\u043c\\u0432\\u0440\\u0438".split(" "),\nSHORTMONTHS:"\\u0458\\u0430\\u043d. \\u0444\\u0435\\u0432. \\u043c\\u0430\\u0440. \\u0430\\u043f\\u0440. \\u043c\\u0430\\u0458 \\u0458\\u0443\\u043d. \\u0458\\u0443\\u043b. \\u0430\\u0432\\u0433. \\u0441\\u0435\\u043f\\u0442. \\u043e\\u043a\\u0442. \\u043d\\u043e\\u0435\\u043c. \\u0434\\u0435\\u043a.".split(" "),STANDALONESHORTMONTHS:"\\u0458\\u0430\\u043d. \\u0444\\u0435\\u0432. \\u043c\\u0430\\u0440. \\u0430\\u043f\\u0440. \\u043c\\u0430\\u0458 \\u0458\\u0443\\u043d. \\u0458\\u0443\\u043b. \\u0430\\u0432\\u0433. \\u0441\\u0435\\u043f\\u0442. \\u043e\\u043a\\u0442. \\u043d\\u043e\\u0435\\u043c. \\u0434\\u0435\\u043a.".split(" "),\nWEEKDAYS:"\\u043d\\u0435\\u0434\\u0435\\u043b\\u0430 \\u043f\\u043e\\u043d\\u0435\\u0434\\u0435\\u043b\\u043d\\u0438\\u043a \\u0432\\u0442\\u043e\\u0440\\u043d\\u0438\\u043a \\u0441\\u0440\\u0435\\u0434\\u0430 \\u0447\\u0435\\u0442\\u0432\\u0440\\u0442\\u043e\\u043a \\u043f\\u0435\\u0442\\u043e\\u043a \\u0441\\u0430\\u0431\\u043e\\u0442\\u0430".split(" "),STANDALONEWEEKDAYS:"\\u043d\\u0435\\u0434\\u0435\\u043b\\u0430 \\u043f\\u043e\\u043d\\u0435\\u0434\\u0435\\u043b\\u043d\\u0438\\u043a \\u0432\\u0442\\u043e\\u0440\\u043d\\u0438\\u043a \\u0441\\u0440\\u0435\\u0434\\u0430 \\u0447\\u0435\\u0442\\u0432\\u0440\\u0442\\u043e\\u043a \\u043f\\u0435\\u0442\\u043e\\u043a \\u0441\\u0430\\u0431\\u043e\\u0442\\u0430".split(" "),\nSHORTWEEKDAYS:"\\u043d\\u0435\\u0434. \\u043f\\u043e\\u043d. \\u0432\\u0442. \\u0441\\u0440\\u0435. \\u0447\\u0435\\u0442. \\u043f\\u0435\\u0442. \\u0441\\u0430\\u0431.".split(" "),STANDALONESHORTWEEKDAYS:"\\u043d\\u0435\\u0434. \\u043f\\u043e\\u043d. \\u0432\\u0442. \\u0441\\u0440\\u0435. \\u0447\\u0435\\u0442. \\u043f\\u0435\\u0442. \\u0441\\u0430\\u0431.".split(" "),NARROWWEEKDAYS:"\\u043d\\u043f\\u0432\\u0441\\u0447\\u043f\\u0441".split(""),STANDALONENARROWWEEKDAYS:"\\u043d\\u043f\\u0432\\u0441\\u0447\\u043f\\u0441".split(""),SHORTQUARTERS:["\\u0458\\u0430\\u043d-\\u043c\\u0430\\u0440",\n"\\u0430\\u043f\\u0440-\\u0458\\u0443\\u043d","\\u0458\\u0443\\u043b-\\u0441\\u0435\\u043f","\\u043e\\u043a\\u0442-\\u0434\\u0435\\u043a"],QUARTERS:["\\u043f\\u0440\\u0432\\u043e \\u0442\\u0440\\u043e\\u043c\\u0435\\u0441\\u0435\\u0447\\u0458\\u0435","\\u0432\\u0442\\u043e\\u0440\\u043e \\u0442\\u0440\\u043e\\u043c\\u0435\\u0441\\u0435\\u0447\\u0458\\u0435","\\u0442\\u0440\\u0435\\u0442\\u043e \\u0442\\u0440\\u043e\\u043c\\u0435\\u0441\\u0435\\u0447\\u0458\\u0435","\\u0447\\u0435\\u0442\\u0432\\u0440\\u0442\\u043e \\u0442\\u0440\\u043e\\u043c\\u0435\\u0441\\u0435\\u0447\\u0458\\u0435"],\nAMPMS:["\\u043f\\u0440\\u0435\\u0442\\u043f\\u043b\\u0430\\u0434\\u043d\\u0435","\\u043f\\u043e\\u043f\\u043b\\u0430\\u0434\\u043d\\u0435"],DATEFORMATS:["EEEE, dd MMMM y","dd MMMM y","dd.M.y","dd.M.yy"],TIMEFORMATS:["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],DATETIMEFORMATS:["{1} {0}","{1} {0}","{1} {0}","{1} {0}"],FIRSTDAYOFWEEK:0,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:6};\ngoog.i18n.DateTimeSymbols_ml={ERAS:["\\u0d15\\u0d4d\\u0d30\\u0d3f.\\u0d2e\\u0d41.","\\u0d0e\\u0d21\\u0d3f"],ERANAMES:["\\u0d15\\u0d4d\\u0d30\\u0d3f\\u0d38\\u0d4d\\u200c\\u0d24\\u0d41\\u0d35\\u0d3f\\u0d28\\u0d4d \\u0d2e\\u0d41\\u0d2e\\u0d4d\\u0d2a\\u0d4d","\\u0d06\\u0d28\\u0d4d\\u0d28\\u0d4b \\u0d21\\u0d4a\\u0d2e\\u0d3f\\u0d28\\u0d3f"],NARROWMONTHS:"\\u0d1c \\u0d2b \\u0d2e\\u0d3e \\u0d0f \\u0d2e\\u0d46 \\u0d1c\\u0d42 \\u0d1c\\u0d42 \\u0d13 \\u0d38 \\u0d12 \\u0d28 \\u0d21\\u0d3f".split(" "),STANDALONENARROWMONTHS:"\\u0d1c \\u0d2b\\u0d46 \\u0d2e\\u0d3e \\u0d0f \\u0d2e\\u0d46 \\u0d1c\\u0d42 \\u0d1c\\u0d42 \\u0d13 \\u0d38\\u0d46 \\u0d12 \\u0d28 \\u0d21\\u0d3f".split(" "),\nMONTHS:"\\u0d1c\\u0d28\\u0d41\\u0d35\\u0d30\\u0d3f \\u0d2b\\u0d46\\u0d2c\\u0d4d\\u0d30\\u0d41\\u0d35\\u0d30\\u0d3f \\u0d2e\\u0d3e\\u0d7c\\u0d1a\\u0d4d\\u0d1a\\u0d4d \\u0d0f\\u0d2a\\u0d4d\\u0d30\\u0d3f\\u0d7d \\u0d2e\\u0d47\\u0d2f\\u0d4d \\u0d1c\\u0d42\\u0d7a \\u0d1c\\u0d42\\u0d32\\u0d48 \\u0d13\\u0d17\\u0d38\\u0d4d\\u0d31\\u0d4d\\u0d31\\u0d4d \\u0d38\\u0d46\\u0d2a\\u0d4d\\u0d31\\u0d4d\\u0d31\\u0d02\\u0d2c\\u0d7c \\u0d12\\u0d15\\u0d4d\\u200c\\u0d1f\\u0d4b\\u0d2c\\u0d7c \\u0d28\\u0d35\\u0d02\\u0d2c\\u0d7c \\u0d21\\u0d3f\\u0d38\\u0d02\\u0d2c\\u0d7c".split(" "),STANDALONEMONTHS:"\\u0d1c\\u0d28\\u0d41\\u0d35\\u0d30\\u0d3f \\u0d2b\\u0d46\\u0d2c\\u0d4d\\u0d30\\u0d41\\u0d35\\u0d30\\u0d3f \\u0d2e\\u0d3e\\u0d7c\\u0d1a\\u0d4d\\u0d1a\\u0d4d \\u0d0f\\u0d2a\\u0d4d\\u0d30\\u0d3f\\u0d7d \\u0d2e\\u0d47\\u0d2f\\u0d4d \\u0d1c\\u0d42\\u0d7a \\u0d1c\\u0d42\\u0d32\\u0d48 \\u0d13\\u0d17\\u0d38\\u0d4d\\u0d31\\u0d4d\\u0d31\\u0d4d \\u0d38\\u0d46\\u0d2a\\u0d4d\\u0d31\\u0d4d\\u0d31\\u0d02\\u0d2c\\u0d7c \\u0d12\\u0d15\\u0d4d\\u200c\\u0d1f\\u0d4b\\u0d2c\\u0d7c \\u0d28\\u0d35\\u0d02\\u0d2c\\u0d7c \\u0d21\\u0d3f\\u0d38\\u0d02\\u0d2c\\u0d7c".split(" "),\nSHORTMONTHS:"\\u0d1c\\u0d28\\u0d41 \\u0d2b\\u0d46\\u0d2c\\u0d4d\\u0d30\\u0d41 \\u0d2e\\u0d3e\\u0d7c \\u0d0f\\u0d2a\\u0d4d\\u0d30\\u0d3f \\u0d2e\\u0d47\\u0d2f\\u0d4d \\u0d1c\\u0d42\\u0d7a \\u0d1c\\u0d42\\u0d32\\u0d48 \\u0d13\\u0d17 \\u0d38\\u0d46\\u0d2a\\u0d4d\\u0d31\\u0d4d\\u0d31\\u0d02 \\u0d12\\u0d15\\u0d4d\\u0d1f\\u0d4b \\u0d28\\u0d35\\u0d02 \\u0d21\\u0d3f\\u0d38\\u0d02".split(" "),STANDALONESHORTMONTHS:"\\u0d1c\\u0d28\\u0d41 \\u0d2b\\u0d46\\u0d2c\\u0d4d\\u0d30\\u0d41 \\u0d2e\\u0d3e\\u0d7c \\u0d0f\\u0d2a\\u0d4d\\u0d30\\u0d3f \\u0d2e\\u0d47\\u0d2f\\u0d4d \\u0d1c\\u0d42\\u0d7a \\u0d1c\\u0d42\\u0d32\\u0d48 \\u0d13\\u0d17 \\u0d38\\u0d46\\u0d2a\\u0d4d\\u0d31\\u0d4d\\u0d31\\u0d02 \\u0d12\\u0d15\\u0d4d\\u0d1f\\u0d4b \\u0d28\\u0d35\\u0d02 \\u0d21\\u0d3f\\u0d38\\u0d02".split(" "),\nWEEKDAYS:"\\u0d1e\\u0d3e\\u0d2f\\u0d31\\u0d3e\\u0d34\\u0d4d\\u200c\\u0d1a \\u0d24\\u0d3f\\u0d19\\u0d4d\\u0d15\\u0d33\\u0d3e\\u0d34\\u0d4d\\u200c\\u0d1a \\u0d1a\\u0d4a\\u0d35\\u0d4d\\u0d35\\u0d3e\\u0d34\\u0d4d\\u0d1a \\u0d2c\\u0d41\\u0d27\\u0d28\\u0d3e\\u0d34\\u0d4d\\u200c\\u0d1a \\u0d35\\u0d4d\\u0d2f\\u0d3e\\u0d34\\u0d3e\\u0d34\\u0d4d\\u200c\\u0d1a \\u0d35\\u0d46\\u0d33\\u0d4d\\u0d33\\u0d3f\\u0d2f\\u0d3e\\u0d34\\u0d4d\\u200c\\u0d1a \\u0d36\\u0d28\\u0d3f\\u0d2f\\u0d3e\\u0d34\\u0d4d\\u200c\\u0d1a".split(" "),STANDALONEWEEKDAYS:"\\u0d1e\\u0d3e\\u0d2f\\u0d31\\u0d3e\\u0d34\\u0d4d\\u200c\\u0d1a \\u0d24\\u0d3f\\u0d19\\u0d4d\\u0d15\\u0d33\\u0d3e\\u0d34\\u0d4d\\u200c\\u0d1a \\u0d1a\\u0d4a\\u0d35\\u0d4d\\u0d35\\u0d3e\\u0d34\\u0d4d\\u200c\\u0d1a \\u0d2c\\u0d41\\u0d27\\u0d28\\u0d3e\\u0d34\\u0d4d\\u200c\\u0d1a \\u0d35\\u0d4d\\u0d2f\\u0d3e\\u0d34\\u0d3e\\u0d34\\u0d4d\\u200c\\u0d1a \\u0d35\\u0d46\\u0d33\\u0d4d\\u0d33\\u0d3f\\u0d2f\\u0d3e\\u0d34\\u0d4d\\u200c\\u0d1a \\u0d36\\u0d28\\u0d3f\\u0d2f\\u0d3e\\u0d34\\u0d4d\\u200c\\u0d1a".split(" "),\nSHORTWEEKDAYS:"\\u0d1e\\u0d3e\\u0d2f\\u0d7c \\u0d24\\u0d3f\\u0d19\\u0d4d\\u0d15\\u0d7e \\u0d1a\\u0d4a\\u0d35\\u0d4d\\u0d35 \\u0d2c\\u0d41\\u0d27\\u0d7b \\u0d35\\u0d4d\\u0d2f\\u0d3e\\u0d34\\u0d02 \\u0d35\\u0d46\\u0d33\\u0d4d\\u0d33\\u0d3f \\u0d36\\u0d28\\u0d3f".split(" "),STANDALONESHORTWEEKDAYS:"\\u0d1e\\u0d3e\\u0d2f\\u0d7c \\u0d24\\u0d3f\\u0d19\\u0d4d\\u0d15\\u0d7e \\u0d1a\\u0d4a\\u0d35\\u0d4d\\u0d35 \\u0d2c\\u0d41\\u0d27\\u0d7b \\u0d35\\u0d4d\\u0d2f\\u0d3e\\u0d34\\u0d02 \\u0d35\\u0d46\\u0d33\\u0d4d\\u0d33\\u0d3f \\u0d36\\u0d28\\u0d3f".split(" "),NARROWWEEKDAYS:"\\u0d1e \\u0d24\\u0d3f \\u0d1a\\u0d4a \\u0d2c\\u0d41 \\u0d35\\u0d4d\\u0d2f\\u0d3e \\u0d35\\u0d46 \\u0d36".split(" "),\nSTANDALONENARROWWEEKDAYS:"\\u0d1e\\u0d3e \\u0d24\\u0d3f \\u0d1a\\u0d4a \\u0d2c\\u0d41 \\u0d35\\u0d4d\\u0d2f\\u0d3e \\u0d35\\u0d46 \\u0d36".split(" "),SHORTQUARTERS:["\\u0d12\\u0d28\\u0d4d\\u0d28\\u0d3e\\u0d02 \\u0d2a\\u0d3e\\u0d26\\u0d02","\\u0d30\\u0d23\\u0d4d\\u0d1f\\u0d3e\\u0d02 \\u0d2a\\u0d3e\\u0d26\\u0d02","\\u0d2e\\u0d42\\u0d28\\u0d4d\\u0d28\\u0d3e\\u0d02 \\u0d2a\\u0d3e\\u0d26\\u0d02","\\u0d28\\u0d3e\\u0d32\\u0d3e\\u0d02 \\u0d2a\\u0d3e\\u0d26\\u0d02"],QUARTERS:["\\u0d12\\u0d28\\u0d4d\\u0d28\\u0d3e\\u0d02 \\u0d2a\\u0d3e\\u0d26\\u0d02","\\u0d30\\u0d23\\u0d4d\\u0d1f\\u0d3e\\u0d02 \\u0d2a\\u0d3e\\u0d26\\u0d02",\n"\\u0d2e\\u0d42\\u0d28\\u0d4d\\u0d28\\u0d3e\\u0d02 \\u0d2a\\u0d3e\\u0d26\\u0d02","\\u0d28\\u0d3e\\u0d32\\u0d3e\\u0d02 \\u0d2a\\u0d3e\\u0d26\\u0d02"],AMPMS:["AM","PM"],DATEFORMATS:["y, MMMM d, EEEE","y, MMMM d","y, MMM d","d/M/yy"],TIMEFORMATS:["h:mm:ss a zzzz","h:mm:ss a z","h:mm:ss a","h:mm a"],DATETIMEFORMATS:["{1} {0}","{1} {0}","{1} {0}","{1} {0}"],FIRSTDAYOFWEEK:6,WEEKENDRANGE:[6,6],FIRSTWEEKCUTOFFDAY:5};\ngoog.i18n.DateTimeSymbols_mn={ERAS:["\\u043c.\\u044d.\\u04e9","\\u043c.\\u044d."],ERANAMES:["\\u043c\\u0430\\u043d\\u0430\\u0439 \\u044d\\u0440\\u0438\\u043d\\u0438\\u0439 \\u04e9\\u043c\\u043d\\u04e9\\u0445","\\u043c\\u0430\\u043d\\u0430\\u0439 \\u044d\\u0440\\u0438\\u043d\\u0438\\u0439"],NARROWMONTHS:"1 2 3 4 5 6 7 8 9 10 11 12".split(" "),STANDALONENARROWMONTHS:"1 2 3 4 5 6 7 8 9 10 11 12".split(" "),MONTHS:"\\u041d\\u044d\\u0433\\u0434\\u04af\\u0433\\u044d\\u044d\\u0440 \\u0441\\u0430\\u0440;\\u0425\\u043e\\u0451\\u0440\\u0434\\u0443\\u0433\\u0430\\u0430\\u0440 \\u0441\\u0430\\u0440;\\u0413\\u0443\\u0440\\u0430\\u0432\\u0434\\u0443\\u0433\\u0430\\u0430\\u0440 \\u0441\\u0430\\u0440;\\u0414\\u04e9\\u0440\\u04e9\\u0432\\u0434\\u04af\\u0433\\u044d\\u044d\\u0440 \\u0441\\u0430\\u0440;\\u0422\\u0430\\u0432\\u0434\\u0443\\u0433\\u0430\\u0430\\u0440 \\u0441\\u0430\\u0440;\\u0417\\u0443\\u0440\\u0433\\u0430\\u0434\\u0443\\u0433\\u0430\\u0430\\u0440 \\u0441\\u0430\\u0440;\\u0414\\u043e\\u043b\\u0434\\u0443\\u0433\\u0430\\u0430\\u0440 \\u0441\\u0430\\u0440;\\u041d\\u0430\\u0439\\u043c\\u0434\\u0443\\u0433\\u0430\\u0430\\u0440 \\u0441\\u0430\\u0440;\\u0415\\u0441\\u0434\\u04af\\u0433\\u044d\\u044d\\u0440 \\u0441\\u0430\\u0440;\\u0410\\u0440\\u0430\\u0432\\u0434\\u0443\\u0433\\u0430\\u0430\\u0440 \\u0441\\u0430\\u0440;\\u0410\\u0440\\u0432\\u0430\\u043d \\u043d\\u044d\\u0433\\u0434\\u04af\\u0433\\u044d\\u044d\\u0440 \\u0441\\u0430\\u0440;\\u0410\\u0440\\u0432\\u0430\\u043d \\u0445\\u043e\\u0451\\u0440\\u0434\\u0443\\u0433\\u0430\\u0430\\u0440 \\u0441\\u0430\\u0440".split(";"),\nSTANDALONEMONTHS:"\\u041d\\u044d\\u0433\\u0434\\u04af\\u0433\\u044d\\u044d\\u0440 \\u0441\\u0430\\u0440;\\u0425\\u043e\\u0451\\u0440\\u0434\\u0443\\u0433\\u0430\\u0430\\u0440 \\u0441\\u0430\\u0440;\\u0413\\u0443\\u0440\\u0430\\u0432\\u0434\\u0443\\u0433\\u0430\\u0430\\u0440 \\u0441\\u0430\\u0440;\\u0414\\u04e9\\u0440\\u04e9\\u0432\\u0434\\u04af\\u0433\\u044d\\u044d\\u0440 \\u0441\\u0430\\u0440;\\u0422\\u0430\\u0432\\u0434\\u0443\\u0433\\u0430\\u0430\\u0440 \\u0441\\u0430\\u0440;\\u0417\\u0443\\u0440\\u0433\\u0430\\u0434\\u0443\\u0433\\u0430\\u0430\\u0440 \\u0441\\u0430\\u0440;\\u0414\\u043e\\u043b\\u0434\\u0443\\u0433\\u0430\\u0430\\u0440 \\u0441\\u0430\\u0440;\\u041d\\u0430\\u0439\\u043c\\u0434\\u0443\\u0433\\u0430\\u0430\\u0440 \\u0441\\u0430\\u0440;\\u0415\\u0441\\u0434\\u04af\\u0433\\u044d\\u044d\\u0440 \\u0441\\u0430\\u0440;\\u0410\\u0440\\u0430\\u0432\\u0434\\u0443\\u0433\\u0430\\u0430\\u0440 \\u0441\\u0430\\u0440;\\u0410\\u0440\\u0432\\u0430\\u043d \\u043d\\u044d\\u0433\\u0434\\u04af\\u0433\\u044d\\u044d\\u0440 \\u0441\\u0430\\u0440;\\u0410\\u0440\\u0432\\u0430\\u043d \\u0445\\u043e\\u0451\\u0440\\u0434\\u0443\\u0433\\u0430\\u0430\\u0440 \\u0441\\u0430\\u0440".split(";"),\nSHORTMONTHS:"1-\\u0440 \\u0441\\u0430\\u0440;2-\\u0440 \\u0441\\u0430\\u0440;3-\\u0440 \\u0441\\u0430\\u0440;4-\\u0440 \\u0441\\u0430\\u0440;5-\\u0440 \\u0441\\u0430\\u0440;6-\\u0440 \\u0441\\u0430\\u0440;7-\\u0440 \\u0441\\u0430\\u0440;8-\\u0440 \\u0441\\u0430\\u0440;9-\\u0440 \\u0441\\u0430\\u0440;10-\\u0440 \\u0441\\u0430\\u0440;11-\\u0440 \\u0441\\u0430\\u0440;12-\\u0440 \\u0441\\u0430\\u0440".split(";"),STANDALONESHORTMONTHS:"1-\\u0440 \\u0441\\u0430\\u0440;2-\\u0440 \\u0441\\u0430\\u0440;3-\\u0440 \\u0441\\u0430\\u0440;4-\\u0440 \\u0441\\u0430\\u0440;5-\\u0440 \\u0441\\u0430\\u0440;6-\\u0440 \\u0441\\u0430\\u0440;7-\\u0440 \\u0441\\u0430\\u0440;8-\\u0440 \\u0441\\u0430\\u0440;9-\\u0440 \\u0441\\u0430\\u0440;10-\\u0440 \\u0441\\u0430\\u0440;11-\\u0440 \\u0441\\u0430\\u0440;12-\\u0440 \\u0441\\u0430\\u0440".split(";"),\nWEEKDAYS:"\\u043d\\u044f\\u043c \\u0434\\u0430\\u0432\\u0430\\u0430 \\u043c\\u044f\\u0433\\u043c\\u0430\\u0440 \\u043b\\u0445\\u0430\\u0433\\u0432\\u0430 \\u043f\\u04af\\u0440\\u044d\\u0432 \\u0431\\u0430\\u0430\\u0441\\u0430\\u043d \\u0431\\u044f\\u043c\\u0431\\u0430".split(" "),STANDALONEWEEKDAYS:"\\u043d\\u044f\\u043c \\u0434\\u0430\\u0432\\u0430\\u0430 \\u043c\\u044f\\u0433\\u043c\\u0430\\u0440 \\u043b\\u0445\\u0430\\u0433\\u0432\\u0430 \\u043f\\u04af\\u0440\\u044d\\u0432 \\u0431\\u0430\\u0430\\u0441\\u0430\\u043d \\u0431\\u044f\\u043c\\u0431\\u0430".split(" "),SHORTWEEKDAYS:"\\u041d\\u044f \\u0414\\u0430 \\u041c\\u044f \\u041b\\u0445 \\u041f\\u04af \\u0411\\u0430 \\u0411\\u044f".split(" "),\nSTANDALONESHORTWEEKDAYS:"\\u041d\\u044f \\u0414\\u0430 \\u041c\\u044f \\u041b\\u0445 \\u041f\\u04af \\u0411\\u0430 \\u0411\\u044f".split(" "),NARROWWEEKDAYS:"1234567".split(""),STANDALONENARROWWEEKDAYS:"1234567".split(""),SHORTQUARTERS:["\\u04231","\\u04232","\\u04233","\\u04234"],QUARTERS:["1-\\u0440 \\u0443\\u043b\\u0438\\u0440\\u0430\\u043b","2-\\u0440 \\u0443\\u043b\\u0438\\u0440\\u0430\\u043b","3-\\u0440 \\u0443\\u043b\\u0438\\u0440\\u0430\\u043b","4-\\u0440 \\u0443\\u043b\\u0438\\u0440\\u0430\\u043b"],AMPMS:["\\u04ae\\u04e8","\\u04ae\\u0425"],\nDATEFORMATS:["EEEE, y \'\\u043e\\u043d\\u044b\' MM \'\\u0441\\u0430\\u0440\\u044b\\u043d\' d","y \'\\u043e\\u043d\\u044b\' MM \'\\u0441\\u0430\\u0440\\u044b\\u043d\' d","y MMM d","y-MM-dd"],TIMEFORMATS:["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],DATETIMEFORMATS:["{1} {0}","{1} {0}","{1} {0}","{1}, {0}"],FIRSTDAYOFWEEK:0,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:6};\ngoog.i18n.DateTimeSymbols_mo={ERAS:["\\u00ee.Hr.","d.Hr."],ERANAMES:["\\u00eenainte de Hristos","dup\\u0103 Hristos"],NARROWMONTHS:"IFMAMIIASOND".split(""),STANDALONENARROWMONTHS:"IFMAMIIASOND".split(""),MONTHS:"ianuarie februarie martie aprilie mai iunie iulie august septembrie octombrie noiembrie decembrie".split(" "),STANDALONEMONTHS:"ianuarie februarie martie aprilie mai iunie iulie august septembrie octombrie noiembrie decembrie".split(" "),SHORTMONTHS:"ian. feb. mar. apr. mai iun. iul. aug. sept. oct. nov. dec.".split(" "),\nSTANDALONESHORTMONTHS:"ian. feb. mar. apr. mai iun. iul. aug. sept. oct. nov. dec.".split(" "),WEEKDAYS:"duminic\\u0103 luni mar\\u021bi miercuri joi vineri s\\u00e2mb\\u0103t\\u0103".split(" "),STANDALONEWEEKDAYS:"duminic\\u0103 luni mar\\u021bi miercuri joi vineri s\\u00e2mb\\u0103t\\u0103".split(" "),SHORTWEEKDAYS:"Dum Lun Mar Mie Joi Vin S\\u00e2m".split(" "),STANDALONESHORTWEEKDAYS:"Dum Lun Mar Mie Joi Vin S\\u00e2m".split(" "),NARROWWEEKDAYS:"D L Ma Mi J V S".split(" "),STANDALONENARROWWEEKDAYS:"D L Ma Mi J V S".split(" "),\nSHORTQUARTERS:["trim. 1","trim. 2","trim. 3","trim. 4"],QUARTERS:["trimestrul 1","trimestrul 2","trimestrul 3","trimestrul 4"],AMPMS:["a.m.","p.m."],DATEFORMATS:["EEEE, d MMMM y","d MMMM y","d MMM y","dd.MM.y"],TIMEFORMATS:["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],DATETIMEFORMATS:["{1}, {0}","{1}, {0}","{1}, {0}","{1}, {0}"],FIRSTDAYOFWEEK:0,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:6};\ngoog.i18n.DateTimeSymbols_mr={ZERODIGIT:2406,ERAS:["\\u0907. \\u0938. \\u092a\\u0942.","\\u0907. \\u0938."],ERANAMES:["\\u0908\\u0938\\u0935\\u0940\\u0938\\u0928\\u092a\\u0942\\u0930\\u094d\\u0935","\\u0908\\u0938\\u0935\\u0940\\u0938\\u0928"],NARROWMONTHS:"\\u091c\\u093e \\u092b\\u0947 \\u092e\\u093e \\u090f \\u092e\\u0947 \\u091c\\u0942 \\u091c\\u0941 \\u0911 \\u0938 \\u0911 \\u0928\\u094b \\u0921\\u093f".split(" "),STANDALONENARROWMONTHS:"\\u091c\\u093e \\u092b\\u0947 \\u092e\\u093e \\u090f \\u092e\\u0947 \\u091c\\u0942 \\u091c\\u0941 \\u0911 \\u0938 \\u0911 \\u0928\\u094b \\u0921\\u093f".split(" "),\nMONTHS:"\\u091c\\u093e\\u0928\\u0947\\u0935\\u093e\\u0930\\u0940 \\u092b\\u0947\\u092c\\u094d\\u0930\\u0941\\u0935\\u093e\\u0930\\u0940 \\u092e\\u093e\\u0930\\u094d\\u091a \\u090f\\u092a\\u094d\\u0930\\u093f\\u0932 \\u092e\\u0947 \\u091c\\u0942\\u0928 \\u091c\\u0941\\u0932\\u0948 \\u0911\\u0917\\u0938\\u094d\\u091f \\u0938\\u092a\\u094d\\u091f\\u0947\\u0902\\u092c\\u0930 \\u0911\\u0915\\u094d\\u091f\\u094b\\u092c\\u0930 \\u0928\\u094b\\u0935\\u094d\\u0939\\u0947\\u0902\\u092c\\u0930 \\u0921\\u093f\\u0938\\u0947\\u0902\\u092c\\u0930".split(" "),STANDALONEMONTHS:"\\u091c\\u093e\\u0928\\u0947\\u0935\\u093e\\u0930\\u0940 \\u092b\\u0947\\u092c\\u094d\\u0930\\u0941\\u0935\\u093e\\u0930\\u0940 \\u092e\\u093e\\u0930\\u094d\\u091a \\u090f\\u092a\\u094d\\u0930\\u093f\\u0932 \\u092e\\u0947 \\u091c\\u0942\\u0928 \\u091c\\u0941\\u0932\\u0948 \\u0911\\u0917\\u0938\\u094d\\u091f \\u0938\\u092a\\u094d\\u091f\\u0947\\u0902\\u092c\\u0930 \\u0911\\u0915\\u094d\\u091f\\u094b\\u092c\\u0930 \\u0928\\u094b\\u0935\\u094d\\u0939\\u0947\\u0902\\u092c\\u0930 \\u0921\\u093f\\u0938\\u0947\\u0902\\u092c\\u0930".split(" "),\nSHORTMONTHS:"\\u091c\\u093e\\u0928\\u0947 \\u092b\\u0947\\u092c\\u094d\\u0930\\u0941 \\u092e\\u093e\\u0930\\u094d\\u091a \\u090f\\u092a\\u094d\\u0930\\u093f \\u092e\\u0947 \\u091c\\u0942\\u0928 \\u091c\\u0941\\u0932\\u0948 \\u0911\\u0917 \\u0938\\u092a\\u094d\\u091f\\u0947\\u0902 \\u0911\\u0915\\u094d\\u091f\\u094b \\u0928\\u094b\\u0935\\u094d\\u0939\\u0947\\u0902 \\u0921\\u093f\\u0938\\u0947\\u0902".split(" "),STANDALONESHORTMONTHS:"\\u091c\\u093e\\u0928\\u0947 \\u092b\\u0947\\u092c\\u094d\\u0930\\u0941 \\u092e\\u093e\\u0930\\u094d\\u091a \\u090f\\u092a\\u094d\\u0930\\u093f \\u092e\\u0947 \\u091c\\u0942\\u0928 \\u091c\\u0941\\u0932\\u0948 \\u0911\\u0917 \\u0938\\u092a\\u094d\\u091f\\u0947\\u0902 \\u0911\\u0915\\u094d\\u091f\\u094b \\u0928\\u094b\\u0935\\u094d\\u0939\\u0947\\u0902 \\u0921\\u093f\\u0938\\u0947\\u0902".split(" "),\nWEEKDAYS:"\\u0930\\u0935\\u093f\\u0935\\u093e\\u0930 \\u0938\\u094b\\u092e\\u0935\\u093e\\u0930 \\u092e\\u0902\\u0917\\u0933\\u0935\\u093e\\u0930 \\u092c\\u0941\\u0927\\u0935\\u093e\\u0930 \\u0917\\u0941\\u0930\\u0941\\u0935\\u093e\\u0930 \\u0936\\u0941\\u0915\\u094d\\u0930\\u0935\\u093e\\u0930 \\u0936\\u0928\\u093f\\u0935\\u093e\\u0930".split(" "),STANDALONEWEEKDAYS:"\\u0930\\u0935\\u093f\\u0935\\u093e\\u0930 \\u0938\\u094b\\u092e\\u0935\\u093e\\u0930 \\u092e\\u0902\\u0917\\u0933\\u0935\\u093e\\u0930 \\u092c\\u0941\\u0927\\u0935\\u093e\\u0930 \\u0917\\u0941\\u0930\\u0941\\u0935\\u093e\\u0930 \\u0936\\u0941\\u0915\\u094d\\u0930\\u0935\\u093e\\u0930 \\u0936\\u0928\\u093f\\u0935\\u093e\\u0930".split(" "),\nSHORTWEEKDAYS:"\\u0930\\u0935\\u093f \\u0938\\u094b\\u092e \\u092e\\u0902\\u0917\\u0933 \\u092c\\u0941\\u0927 \\u0917\\u0941\\u0930\\u0941 \\u0936\\u0941\\u0915\\u094d\\u0930 \\u0936\\u0928\\u093f".split(" "),STANDALONESHORTWEEKDAYS:"\\u0930\\u0935\\u093f \\u0938\\u094b\\u092e \\u092e\\u0902\\u0917\\u0933 \\u092c\\u0941\\u0927 \\u0917\\u0941\\u0930\\u0941 \\u0936\\u0941\\u0915\\u094d\\u0930 \\u0936\\u0928\\u093f".split(" "),NARROWWEEKDAYS:"\\u0930 \\u0938\\u094b \\u092e\\u0902 \\u092c\\u0941 \\u0917\\u0941 \\u0936\\u0941 \\u0936".split(" "),STANDALONENARROWWEEKDAYS:"\\u0930 \\u0938\\u094b \\u092e\\u0902 \\u092c\\u0941 \\u0917\\u0941 \\u0936\\u0941 \\u0936".split(" "),\nSHORTQUARTERS:["\\u0924\\u093f\\u0967","\\u0924\\u093f\\u0968","\\u0924\\u093f\\u0969","\\u0924\\u093f\\u096a"],QUARTERS:["\\u092a\\u094d\\u0930\\u0925\\u092e \\u0924\\u093f\\u092e\\u093e\\u0939\\u0940","\\u0926\\u094d\\u0935\\u093f\\u0924\\u0940\\u092f \\u0924\\u093f\\u092e\\u093e\\u0939\\u0940","\\u0924\\u0943\\u0924\\u0940\\u092f \\u0924\\u093f\\u092e\\u093e\\u0939\\u0940","\\u091a\\u0924\\u0941\\u0930\\u094d\\u0925 \\u0924\\u093f\\u092e\\u093e\\u0939\\u0940"],AMPMS:["\\u092e.\\u092a\\u0942.","\\u092e.\\u0909."],DATEFORMATS:["EEEE, d MMMM, y","d MMMM, y","d MMM, y",\n"d/M/yy"],TIMEFORMATS:["h:mm:ss a zzzz","h:mm:ss a z","h:mm:ss a","h:mm a"],DATETIMEFORMATS:["{1} \\u0930\\u094b\\u091c\\u0940 {0}","{1} \\u0930\\u094b\\u091c\\u0940 {0}","{1}, {0}","{1}, {0}"],FIRSTDAYOFWEEK:6,WEEKENDRANGE:[6,6],FIRSTWEEKCUTOFFDAY:5};\ngoog.i18n.DateTimeSymbols_ms={ERAS:["S.M.","TM"],ERANAMES:["S.M.","TM"],NARROWMONTHS:"JFMAMJJOSOND".split(""),STANDALONENARROWMONTHS:"JFMAMJJOSOND".split(""),MONTHS:"Januari Februari Mac April Mei Jun Julai Ogos September Oktober November Disember".split(" "),STANDALONEMONTHS:"Januari Februari Mac April Mei Jun Julai Ogos September Oktober November Disember".split(" "),SHORTMONTHS:"Jan Feb Mac Apr Mei Jun Jul Ogo Sep Okt Nov Dis".split(" "),STANDALONESHORTMONTHS:"Jan Feb Mac Apr Mei Jun Jul Ogo Sep Okt Nov Dis".split(" "),\nWEEKDAYS:"Ahad Isnin Selasa Rabu Khamis Jumaat Sabtu".split(" "),STANDALONEWEEKDAYS:"Ahad Isnin Selasa Rabu Khamis Jumaat Sabtu".split(" "),SHORTWEEKDAYS:"Ahd Isn Sel Rab Kha Jum Sab".split(" "),STANDALONESHORTWEEKDAYS:"Ahd Isn Sel Rab Kha Jum Sab".split(" "),NARROWWEEKDAYS:"AISRKJS".split(""),STANDALONENARROWWEEKDAYS:"AISRKJS".split(""),SHORTQUARTERS:["S1","S2","S3","S4"],QUARTERS:["Suku pertama","Suku Ke-2","Suku Ke-3","Suku Ke-4"],AMPMS:["PG","PTG"],DATEFORMATS:["EEEE, d MMMM y","d MMMM y","d MMM y",\n"d/MM/yy"],TIMEFORMATS:["h:mm:ss a zzzz","h:mm:ss a z","h:mm:ss a","h:mm a"],DATETIMEFORMATS:["{1} {0}","{1} {0}","{1} {0}","{1} {0}"],FIRSTDAYOFWEEK:0,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:6};\ngoog.i18n.DateTimeSymbols_mt={ERAS:["QK","WK"],ERANAMES:["Qabel Kristu","Wara Kristu"],NARROWMONTHS:"JFMAM\\u0120LASOND".split(""),STANDALONENARROWMONTHS:"Jn Fr Mz Ap Mj \\u0120n Lj Aw St Ob Nv D\\u010b".split(" "),MONTHS:"Jannar Frar Marzu April Mejju \\u0120unju Lulju Awwissu Settembru Ottubru Novembru Di\\u010bembru".split(" "),STANDALONEMONTHS:"Jannar Frar Marzu April Mejju \\u0120unju Lulju Awwissu Settembru Ottubru Novembru Di\\u010bembru".split(" "),SHORTMONTHS:"Jan Fra Mar Apr Mej \\u0120un Lul Aww Set Ott Nov Di\\u010b".split(" "),\nSTANDALONESHORTMONTHS:"Jan Fra Mar Apr Mej \\u0120un Lul Aww Set Ott Nov Di\\u010b".split(" "),WEEKDAYS:"Il-\\u0126add It-Tnejn It-Tlieta L-Erbg\\u0127a Il-\\u0126amis Il-\\u0120img\\u0127a Is-Sibt".split(" "),STANDALONEWEEKDAYS:"Il-\\u0126add It-Tnejn It-Tlieta L-Erbg\\u0127a Il-\\u0126amis Il-\\u0120img\\u0127a Is-Sibt".split(" "),SHORTWEEKDAYS:"\\u0126ad Tne Tli Erb \\u0126am \\u0120im Sib".split(" "),STANDALONESHORTWEEKDAYS:"\\u0126ad Tne Tli Erb \\u0126am \\u0120im Sib".split(" "),NARROWWEEKDAYS:"\\u0126TTE\\u0126\\u0120S".split(""),\nSTANDALONENARROWWEEKDAYS:"\\u0126d Tn Tl Er \\u0126m \\u0120m Sb".split(" "),SHORTQUARTERS:["K1","K2","K3","K4"],QUARTERS:["1el kwart","2ni kwart","3et kwart","4ba\\u2019 kwart"],AMPMS:["AM","PM"],DATEFORMATS:["EEEE, d \'ta\'\\u2019 MMMM y","d \'ta\'\\u2019 MMMM y","dd MMM y","dd/MM/y"],TIMEFORMATS:["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],DATETIMEFORMATS:["{1} {0}","{1} {0}","{1} {0}","{1} {0}"],FIRSTDAYOFWEEK:6,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:5};\ngoog.i18n.DateTimeSymbols_my={ZERODIGIT:4160,ERAS:["\\u1018\\u102e\\u1005\\u102e","\\u1021\\u1031\\u1012\\u102e"],ERANAMES:["\\u1001\\u101b\\u1005\\u103a\\u1010\\u1031\\u102c\\u103a \\u1019\\u1015\\u1031\\u102b\\u103a\\u1019\\u102e\\u1000\\u102c\\u101c","\\u1001\\u101b\\u1005\\u103a\\u1010\\u1031\\u102c\\u103a \\u1015\\u1031\\u102b\\u103a\\u1011\\u103d\\u1014\\u103a\\u1038\\u1015\\u103c\\u102e\\u1038\\u1000\\u102c\\u101c"],NARROWMONTHS:"\\u1007\\u1016\\u1019\\u1027\\u1019\\u1007\\u1007\\u1029\\u1005\\u1021\\u1014\\u1012".split(""),STANDALONENARROWMONTHS:"\\u1007\\u1016\\u1019\\u1027\\u1019\\u1007\\u1007\\u1029\\u1005\\u1021\\u1014\\u1012".split(""),\nMONTHS:"\\u1007\\u1014\\u103a\\u1014\\u101d\\u102b\\u101b\\u102e \\u1016\\u1031\\u1016\\u1031\\u102c\\u103a\\u101d\\u102b\\u101b\\u102e \\u1019\\u1010\\u103a \\u1027\\u1015\\u103c\\u102e \\u1019\\u1031 \\u1007\\u103d\\u1014\\u103a \\u1007\\u1030\\u101c\\u102d\\u102f\\u1004\\u103a \\u1029\\u1002\\u102f\\u1010\\u103a \\u1005\\u1000\\u103a\\u1010\\u1004\\u103a\\u1018\\u102c \\u1021\\u1031\\u102c\\u1000\\u103a\\u1010\\u102d\\u102f\\u1018\\u102c \\u1014\\u102d\\u102f\\u101d\\u1004\\u103a\\u1018\\u102c \\u1012\\u102e\\u1007\\u1004\\u103a\\u1018\\u102c".split(" "),STANDALONEMONTHS:"\\u1007\\u1014\\u103a\\u1014\\u101d\\u102b\\u101b\\u102e \\u1016\\u1031\\u1016\\u1031\\u102c\\u103a\\u101d\\u102b\\u101b\\u102e \\u1019\\u1010\\u103a \\u1027\\u1015\\u103c\\u102e \\u1019\\u1031 \\u1007\\u103d\\u1014\\u103a \\u1007\\u1030\\u101c\\u102d\\u102f\\u1004\\u103a \\u1029\\u1002\\u102f\\u1010\\u103a \\u1005\\u1000\\u103a\\u1010\\u1004\\u103a\\u1018\\u102c \\u1021\\u1031\\u102c\\u1000\\u103a\\u1010\\u102d\\u102f\\u1018\\u102c \\u1014\\u102d\\u102f\\u101d\\u1004\\u103a\\u1018\\u102c \\u1012\\u102e\\u1007\\u1004\\u103a\\u1018\\u102c".split(" "),\nSHORTMONTHS:"\\u1007\\u1014\\u103a \\u1016\\u1031 \\u1019\\u1010\\u103a \\u1027\\u1015\\u103c\\u102e \\u1019\\u1031 \\u1007\\u103d\\u1014\\u103a \\u1007\\u1030 \\u1029 \\u1005\\u1000\\u103a \\u1021\\u1031\\u102c\\u1000\\u103a \\u1014\\u102d\\u102f \\u1012\\u102e".split(" "),STANDALONESHORTMONTHS:"\\u1007\\u1014\\u103a \\u1016\\u1031 \\u1019\\u1010\\u103a \\u1027\\u1015\\u103c\\u102e \\u1019\\u1031 \\u1007\\u103d\\u1014\\u103a \\u1007\\u1030 \\u1029 \\u1005\\u1000\\u103a \\u1021\\u1031\\u102c\\u1000\\u103a \\u1014\\u102d\\u102f \\u1012\\u102e".split(" "),WEEKDAYS:"\\u1010\\u1014\\u1004\\u103a\\u1039\\u1002\\u1014\\u103d\\u1031 \\u1010\\u1014\\u1004\\u103a\\u1039\\u101c\\u102c \\u1021\\u1004\\u103a\\u1039\\u1002\\u102b \\u1017\\u102f\\u1012\\u1039\\u1013\\u101f\\u1030\\u1038 \\u1000\\u103c\\u102c\\u101e\\u1015\\u1010\\u1031\\u1038 \\u101e\\u1031\\u102c\\u1000\\u103c\\u102c \\u1005\\u1014\\u1031".split(" "),\nSTANDALONEWEEKDAYS:"\\u1010\\u1014\\u1004\\u103a\\u1039\\u1002\\u1014\\u103d\\u1031 \\u1010\\u1014\\u1004\\u103a\\u1039\\u101c\\u102c \\u1021\\u1004\\u103a\\u1039\\u1002\\u102b \\u1017\\u102f\\u1012\\u1039\\u1013\\u101f\\u1030\\u1038 \\u1000\\u103c\\u102c\\u101e\\u1015\\u1010\\u1031\\u1038 \\u101e\\u1031\\u102c\\u1000\\u103c\\u102c \\u1005\\u1014\\u1031".split(" "),SHORTWEEKDAYS:"\\u1010\\u1014\\u1004\\u103a\\u1039\\u1002\\u1014\\u103d\\u1031 \\u1010\\u1014\\u1004\\u103a\\u1039\\u101c\\u102c \\u1021\\u1004\\u103a\\u1039\\u1002\\u102b \\u1017\\u102f\\u1012\\u1039\\u1013\\u101f\\u1030\\u1038 \\u1000\\u103c\\u102c\\u101e\\u1015\\u1010\\u1031\\u1038 \\u101e\\u1031\\u102c\\u1000\\u103c\\u102c \\u1005\\u1014\\u1031".split(" "),\nSTANDALONESHORTWEEKDAYS:"\\u1010\\u1014\\u1004\\u103a\\u1039\\u1002\\u1014\\u103d\\u1031 \\u1010\\u1014\\u1004\\u103a\\u1039\\u101c\\u102c \\u1021\\u1004\\u103a\\u1039\\u1002\\u102b \\u1017\\u102f\\u1012\\u1039\\u1013\\u101f\\u1030\\u1038 \\u1000\\u103c\\u102c\\u101e\\u1015\\u1010\\u1031\\u1038 \\u101e\\u1031\\u102c\\u1000\\u103c\\u102c \\u1005\\u1014\\u1031".split(" "),NARROWWEEKDAYS:"\\u1010\\u1010\\u1021\\u1017\\u1000\\u101e\\u1005".split(""),STANDALONENARROWWEEKDAYS:"\\u1010\\u1010\\u1021\\u1017\\u1000\\u101e\\u1005".split(""),SHORTQUARTERS:["\\u1015\\u1011\\u1019 \\u101e\\u102f\\u1036\\u1038\\u101c\\u1015\\u1010\\u103a",\n"\\u1012\\u102f\\u1010\\u102d\\u101a \\u101e\\u102f\\u1036\\u1038\\u101c\\u1015\\u1010\\u103a","\\u1010\\u1010\\u102d\\u101a \\u101e\\u102f\\u1036\\u1038\\u101c\\u1015\\u1010\\u103a","\\u1005\\u1010\\u102f\\u1010\\u1039\\u1011 \\u101e\\u102f\\u1036\\u1038\\u101c\\u1015\\u1010\\u103a"],QUARTERS:["\\u1015\\u1011\\u1019 \\u101e\\u102f\\u1036\\u1038\\u101c\\u1015\\u1010\\u103a","\\u1012\\u102f\\u1010\\u102d\\u101a \\u101e\\u102f\\u1036\\u1038\\u101c\\u1015\\u1010\\u103a","\\u1010\\u1010\\u102d\\u101a \\u101e\\u102f\\u1036\\u1038\\u101c\\u1015\\u1010\\u103a","\\u1005\\u1010\\u102f\\u1010\\u1039\\u1011 \\u101e\\u102f\\u1036\\u1038\\u101c\\u1015\\u1010\\u103a"],\nAMPMS:["\\u1014\\u1036\\u1014\\u1000\\u103a","\\u100a\\u1014\\u1031"],DATEFORMATS:["EEEE\\u104a dd MMMM y","d MMMM y","d MMM y","dd-MM-yy"],TIMEFORMATS:["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],DATETIMEFORMATS:["{1}\\u1019\\u103e\\u102c {0}","{1} {0}","{1} {0}","{1} {0}"],FIRSTDAYOFWEEK:6,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:5};\ngoog.i18n.DateTimeSymbols_nb={ERAS:["f.Kr.","e.Kr."],ERANAMES:["f\\u00f8r Kristus","etter Kristus"],NARROWMONTHS:"JFMAMJJASOND".split(""),STANDALONENARROWMONTHS:"JFMAMJJASOND".split(""),MONTHS:"januar februar mars april mai juni juli august september oktober november desember".split(" "),STANDALONEMONTHS:"januar februar mars april mai juni juli august september oktober november desember".split(" "),SHORTMONTHS:"jan. feb. mar. apr. mai jun. jul. aug. sep. okt. nov. des.".split(" "),STANDALONESHORTMONTHS:"jan feb mar apr mai jun jul aug sep okt nov des".split(" "),\nWEEKDAYS:"s\\u00f8ndag mandag tirsdag onsdag torsdag fredag l\\u00f8rdag".split(" "),STANDALONEWEEKDAYS:"s\\u00f8ndag mandag tirsdag onsdag torsdag fredag l\\u00f8rdag".split(" "),SHORTWEEKDAYS:"s\\u00f8n. man. tir. ons. tor. fre. l\\u00f8r.".split(" "),STANDALONESHORTWEEKDAYS:"s\\u00f8n. man. tir. ons. tor. fre. l\\u00f8r.".split(" "),NARROWWEEKDAYS:"SMTOTFL".split(""),STANDALONENARROWWEEKDAYS:"SMTOTFL".split(""),SHORTQUARTERS:["K1","K2","K3","K4"],QUARTERS:["1. kvartal","2. kvartal","3. kvartal","4. kvartal"],\nAMPMS:["a.m.","p.m."],DATEFORMATS:["EEEE d. MMMM y","d. MMMM y","d. MMM y","dd.MM.y"],TIMEFORMATS:["HH.mm.ss zzzz","HH.mm.ss z","HH.mm.ss","HH.mm"],DATETIMEFORMATS:["{1} {0}","{1} \'kl\'. {0}","{1}, {0}","{1}, {0}"],FIRSTDAYOFWEEK:0,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:3};\ngoog.i18n.DateTimeSymbols_ne={ZERODIGIT:2406,ERAS:["\\u0908\\u0938\\u093e \\u092a\\u0942\\u0930\\u094d\\u0935","\\u0938\\u0928\\u094d"],ERANAMES:["\\u0908\\u0938\\u093e \\u092a\\u0942\\u0930\\u094d\\u0935","\\u0938\\u0928\\u094d"],NARROWMONTHS:"\\u0967 \\u0968 \\u0969 \\u096a \\u096b \\u096c \\u096d \\u096e \\u096f \\u0967\\u0966 \\u0967\\u0967 \\u0967\\u0968".split(" "),STANDALONENARROWMONTHS:"\\u0967 \\u0968 \\u0969 \\u096a \\u096b \\u096c \\u096d \\u096e \\u096f \\u0967\\u0966 \\u0967\\u0967 \\u0967\\u0968".split(" "),MONTHS:"\\u091c\\u0928\\u0935\\u0930\\u0940 \\u092b\\u0947\\u092c\\u094d\\u0930\\u0941\\u0905\\u0930\\u0940 \\u092e\\u093e\\u0930\\u094d\\u091a \\u0905\\u092a\\u094d\\u0930\\u093f\\u0932 \\u092e\\u0908 \\u091c\\u0941\\u0928 \\u091c\\u0941\\u0932\\u093e\\u0908 \\u0905\\u0917\\u0938\\u094d\\u091f \\u0938\\u0947\\u092a\\u094d\\u091f\\u0947\\u092e\\u094d\\u092c\\u0930 \\u0905\\u0915\\u094d\\u091f\\u094b\\u092c\\u0930 \\u0928\\u094b\\u092d\\u0947\\u092e\\u094d\\u092c\\u0930 \\u0921\\u093f\\u0938\\u0947\\u092e\\u094d\\u092c\\u0930".split(" "),\nSTANDALONEMONTHS:"\\u091c\\u0928\\u0935\\u0930\\u0940 \\u092b\\u0947\\u092c\\u094d\\u0930\\u0941\\u0905\\u0930\\u0940 \\u092e\\u093e\\u0930\\u094d\\u091a \\u0905\\u092a\\u094d\\u0930\\u093f\\u0932 \\u092e\\u0947 \\u091c\\u0941\\u0928 \\u091c\\u0941\\u0932\\u093e\\u0908 \\u0905\\u0917\\u0938\\u094d\\u091f \\u0938\\u0947\\u092a\\u094d\\u091f\\u0947\\u092e\\u094d\\u092c\\u0930 \\u0905\\u0915\\u094d\\u091f\\u094b\\u092c\\u0930 \\u0928\\u094b\\u092d\\u0947\\u092e\\u094d\\u092c\\u0930 \\u0921\\u093f\\u0938\\u0947\\u092e\\u094d\\u092c\\u0930".split(" "),SHORTMONTHS:"\\u091c\\u0928\\u0935\\u0930\\u0940 \\u092b\\u0947\\u092c\\u094d\\u0930\\u0941\\u0905\\u0930\\u0940 \\u092e\\u093e\\u0930\\u094d\\u091a \\u0905\\u092a\\u094d\\u0930\\u093f\\u0932 \\u092e\\u0947 \\u091c\\u0941\\u0928 \\u091c\\u0941\\u0932\\u093e\\u0908 \\u0905\\u0917\\u0938\\u094d\\u091f \\u0938\\u0947\\u092a\\u094d\\u091f\\u0947\\u092e\\u094d\\u092c\\u0930 \\u0905\\u0915\\u094d\\u091f\\u094b\\u092c\\u0930 \\u0928\\u094b\\u092d\\u0947\\u092e\\u094d\\u092c\\u0930 \\u0921\\u093f\\u0938\\u0947\\u092e\\u094d\\u092c\\u0930".split(" "),\nSTANDALONESHORTMONTHS:"\\u091c\\u0928\\u0935\\u0930\\u0940 \\u092b\\u0947\\u092c\\u094d\\u0930\\u0941\\u0905\\u0930\\u0940 \\u092e\\u093e\\u0930\\u094d\\u091a \\u0905\\u092a\\u094d\\u0930\\u093f\\u0932 \\u092e\\u0947 \\u091c\\u0941\\u0928 \\u091c\\u0941\\u0932\\u093e\\u0908 \\u0905\\u0917\\u0938\\u094d\\u091f \\u0938\\u0947\\u092a\\u094d\\u091f\\u0947\\u092e\\u094d\\u092c\\u0930 \\u0905\\u0915\\u094d\\u091f\\u094b\\u092c\\u0930 \\u0928\\u094b\\u092d\\u0947\\u092e\\u094d\\u092c\\u0930 \\u0921\\u093f\\u0938\\u0947\\u092e\\u094d\\u092c\\u0930".split(" "),WEEKDAYS:"\\u0906\\u0907\\u0924\\u092c\\u093e\\u0930 \\u0938\\u094b\\u092e\\u092c\\u093e\\u0930 \\u092e\\u0919\\u094d\\u0917\\u0932\\u092c\\u093e\\u0930 \\u092c\\u0941\\u0927\\u092c\\u093e\\u0930 \\u092c\\u093f\\u0939\\u093f\\u092c\\u093e\\u0930 \\u0936\\u0941\\u0915\\u094d\\u0930\\u092c\\u093e\\u0930 \\u0936\\u0928\\u093f\\u092c\\u093e\\u0930".split(" "),\nSTANDALONEWEEKDAYS:"\\u0906\\u0907\\u0924\\u092c\\u093e\\u0930 \\u0938\\u094b\\u092e\\u092c\\u093e\\u0930 \\u092e\\u0919\\u094d\\u0917\\u0932\\u092c\\u093e\\u0930 \\u092c\\u0941\\u0927\\u092c\\u093e\\u0930 \\u092c\\u093f\\u0939\\u093f\\u092c\\u093e\\u0930 \\u0936\\u0941\\u0915\\u094d\\u0930\\u092c\\u093e\\u0930 \\u0936\\u0928\\u093f\\u092c\\u093e\\u0930".split(" "),SHORTWEEKDAYS:"\\u0906\\u0907\\u0924 \\u0938\\u094b\\u092e \\u092e\\u0919\\u094d\\u0917\\u0932 \\u092c\\u0941\\u0927 \\u092c\\u093f\\u0939\\u0940 \\u0936\\u0941\\u0915\\u094d\\u0930 \\u0936\\u0928\\u093f".split(" "),\nSTANDALONESHORTWEEKDAYS:"\\u0906\\u0907\\u0924 \\u0938\\u094b\\u092e \\u092e\\u0919\\u094d\\u0917\\u0932 \\u092c\\u0941\\u0927 \\u092c\\u093f\\u0939\\u0940 \\u0936\\u0941\\u0915\\u094d\\u0930 \\u0936\\u0928\\u093f".split(" "),NARROWWEEKDAYS:"\\u0906 \\u0938\\u094b \\u092e \\u092c\\u0941 \\u092c\\u093f \\u0936\\u0941 \\u0936".split(" "),STANDALONENARROWWEEKDAYS:"\\u0906 \\u0938\\u094b \\u092e \\u092c\\u0941 \\u092c\\u093f \\u0936\\u0941 \\u0936".split(" "),SHORTQUARTERS:["\\u092a\\u0939\\u093f\\u0932\\u094b \\u0938\\u0924\\u094d\\u0930","\\u0926\\u094b\\u0938\\u094d\\u0930\\u094b \\u0938\\u0924\\u094d\\u0930",\n"\\u0924\\u0947\\u0938\\u094d\\u0930\\u094b \\u0938\\u0924\\u094d\\u0930","\\u091a\\u094c\\u0925\\u094b \\u0938\\u0924\\u094d\\u0930"],QUARTERS:["\\u092a\\u0939\\u093f\\u0932\\u094b \\u0938\\u0924\\u094d\\u0930","\\u0926\\u094b\\u0938\\u094d\\u0930\\u094b \\u0938\\u0924\\u094d\\u0930","\\u0924\\u0947\\u0938\\u094d\\u0930\\u094b \\u0938\\u0924\\u094d\\u0930","\\u091a\\u094c\\u0925\\u094b \\u0938\\u0924\\u094d\\u0930"],AMPMS:["\\u092a\\u0942\\u0930\\u094d\\u0935\\u093e\\u0939\\u094d\\u0928","\\u0905\\u092a\\u0930\\u093e\\u0939\\u094d\\u0928"],DATEFORMATS:["y MMMM d, EEEE",\n"y MMMM d","y MMM d","y-MM-dd"],TIMEFORMATS:["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],DATETIMEFORMATS:["{1} {0}","{1} {0}","{1}, {0}","{1}, {0}"],FIRSTDAYOFWEEK:6,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:5};\ngoog.i18n.DateTimeSymbols_nl={ERAS:["v.Chr.","n.Chr."],ERANAMES:["voor Christus","na Christus"],NARROWMONTHS:"JFMAMJJASOND".split(""),STANDALONENARROWMONTHS:"JFMAMJJASOND".split(""),MONTHS:"januari februari maart april mei juni juli augustus september oktober november december".split(" "),STANDALONEMONTHS:"januari februari maart april mei juni juli augustus september oktober november december".split(" "),SHORTMONTHS:"jan. feb. mrt. apr. mei jun. jul. aug. sep. okt. nov. dec.".split(" "),STANDALONESHORTMONTHS:"jan. feb. mrt. apr. mei jun. jul. aug. sep. okt. nov. dec.".split(" "),\nWEEKDAYS:"zondag maandag dinsdag woensdag donderdag vrijdag zaterdag".split(" "),STANDALONEWEEKDAYS:"zondag maandag dinsdag woensdag donderdag vrijdag zaterdag".split(" "),SHORTWEEKDAYS:"zo ma di wo do vr za".split(" "),STANDALONESHORTWEEKDAYS:"zo ma di wo do vr za".split(" "),NARROWWEEKDAYS:"ZMDWDVZ".split(""),STANDALONENARROWWEEKDAYS:"ZMDWDVZ".split(""),SHORTQUARTERS:["K1","K2","K3","K4"],QUARTERS:["1e kwartaal","2e kwartaal","3e kwartaal","4e kwartaal"],AMPMS:["a.m.","p.m."],DATEFORMATS:["EEEE d MMMM y",\n"d MMMM y","d MMM y","dd-MM-yy"],TIMEFORMATS:["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],DATETIMEFORMATS:["{1} {0}","{1} {0}","{1} {0}","{1} {0}"],FIRSTDAYOFWEEK:0,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:3};\ngoog.i18n.DateTimeSymbols_no={ERAS:["f.Kr.","e.Kr."],ERANAMES:["f\\u00f8r Kristus","etter Kristus"],NARROWMONTHS:"JFMAMJJASOND".split(""),STANDALONENARROWMONTHS:"JFMAMJJASOND".split(""),MONTHS:"januar februar mars april mai juni juli august september oktober november desember".split(" "),STANDALONEMONTHS:"januar februar mars april mai juni juli august september oktober november desember".split(" "),SHORTMONTHS:"jan. feb. mar. apr. mai jun. jul. aug. sep. okt. nov. des.".split(" "),STANDALONESHORTMONTHS:"jan feb mar apr mai jun jul aug sep okt nov des".split(" "),\nWEEKDAYS:"s\\u00f8ndag mandag tirsdag onsdag torsdag fredag l\\u00f8rdag".split(" "),STANDALONEWEEKDAYS:"s\\u00f8ndag mandag tirsdag onsdag torsdag fredag l\\u00f8rdag".split(" "),SHORTWEEKDAYS:"s\\u00f8n. man. tir. ons. tor. fre. l\\u00f8r.".split(" "),STANDALONESHORTWEEKDAYS:"s\\u00f8n. man. tir. ons. tor. fre. l\\u00f8r.".split(" "),NARROWWEEKDAYS:"SMTOTFL".split(""),STANDALONENARROWWEEKDAYS:"SMTOTFL".split(""),SHORTQUARTERS:["K1","K2","K3","K4"],QUARTERS:["1. kvartal","2. kvartal","3. kvartal","4. kvartal"],\nAMPMS:["a.m.","p.m."],DATEFORMATS:["EEEE d. MMMM y","d. MMMM y","d. MMM y","dd.MM.y"],TIMEFORMATS:["HH.mm.ss zzzz","HH.mm.ss z","HH.mm.ss","HH.mm"],DATETIMEFORMATS:["{1} {0}","{1} \'kl\'. {0}","{1}, {0}","{1}, {0}"],FIRSTDAYOFWEEK:0,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:3};goog.i18n.DateTimeSymbols_no_NO=goog.i18n.DateTimeSymbols_no;\ngoog.i18n.DateTimeSymbols_or={ERAS:["BCE","CE"],ERANAMES:["BCE","CE"],NARROWMONTHS:"\\u0b1c\\u0b3e \\u0b2b\\u0b47 \\u0b2e\\u0b3e \\u0b05 \\u0b2e\\u0b07 \\u0b1c\\u0b41 \\u0b1c\\u0b41 \\u0b05 \\u0b38\\u0b47 \\u0b05 \\u0b28 \\u0b21\\u0b3f".split(" "),STANDALONENARROWMONTHS:"\\u0b1c\\u0b3e \\u0b2b\\u0b47 \\u0b2e\\u0b3e \\u0b05 \\u0b2e\\u0b07 \\u0b1c\\u0b41 \\u0b1c\\u0b41 \\u0b05 \\u0b38\\u0b47 \\u0b05 \\u0b28 \\u0b21\\u0b3f".split(" "),MONTHS:"\\u0b1c\\u0b3e\\u0b28\\u0b41\\u0b06\\u0b30\\u0b40 \\u0b2b\\u0b47\\u0b2c\\u0b43\\u0b06\\u0b30\\u0b40 \\u0b2e\\u0b3e\\u0b30\\u0b4d\\u0b1a\\u0b4d\\u0b1a \\u0b05\\u0b2a\\u0b4d\\u0b30\\u0b47\\u0b32 \\u0b2e\\u0b07 \\u0b1c\\u0b41\\u0b28 \\u0b1c\\u0b41\\u0b32\\u0b3e\\u0b07 \\u0b05\\u0b17\\u0b37\\u0b4d\\u0b1f \\u0b38\\u0b47\\u0b2a\\u0b4d\\u0b1f\\u0b47\\u0b2e\\u0b4d\\u0b2c\\u0b30 \\u0b05\\u0b15\\u0b4d\\u0b1f\\u0b4b\\u0b2c\\u0b30 \\u0b28\\u0b2d\\u0b47\\u0b2e\\u0b4d\\u0b2c\\u0b30 \\u0b21\\u0b3f\\u0b38\\u0b47\\u0b2e\\u0b4d\\u0b2c\\u0b30".split(" "),\nSTANDALONEMONTHS:"\\u0b1c\\u0b3e\\u0b28\\u0b41\\u0b06\\u0b30\\u0b40 \\u0b2b\\u0b47\\u0b2c\\u0b43\\u0b06\\u0b30\\u0b40 \\u0b2e\\u0b3e\\u0b30\\u0b4d\\u0b1a\\u0b4d\\u0b1a \\u0b05\\u0b2a\\u0b4d\\u0b30\\u0b47\\u0b32 \\u0b2e\\u0b07 \\u0b1c\\u0b41\\u0b28 \\u0b1c\\u0b41\\u0b32\\u0b3e\\u0b07 \\u0b05\\u0b17\\u0b37\\u0b4d\\u0b1f \\u0b38\\u0b47\\u0b2a\\u0b4d\\u0b1f\\u0b47\\u0b2e\\u0b4d\\u0b2c\\u0b30 \\u0b05\\u0b15\\u0b4d\\u0b1f\\u0b4b\\u0b2c\\u0b30 \\u0b28\\u0b2d\\u0b47\\u0b2e\\u0b4d\\u0b2c\\u0b30 \\u0b21\\u0b3f\\u0b38\\u0b47\\u0b2e\\u0b4d\\u0b2c\\u0b30".split(" "),SHORTMONTHS:"\\u0b1c\\u0b3e\\u0b28\\u0b41\\u0b06\\u0b30\\u0b40 \\u0b2b\\u0b47\\u0b2c\\u0b43\\u0b06\\u0b30\\u0b40 \\u0b2e\\u0b3e\\u0b30\\u0b4d\\u0b1a\\u0b4d\\u0b1a \\u0b05\\u0b2a\\u0b4d\\u0b30\\u0b47\\u0b32 \\u0b2e\\u0b07 \\u0b1c\\u0b41\\u0b28 \\u0b1c\\u0b41\\u0b32\\u0b3e\\u0b07 \\u0b05\\u0b17\\u0b37\\u0b4d\\u0b1f \\u0b38\\u0b47\\u0b2a\\u0b4d\\u0b1f\\u0b47\\u0b2e\\u0b4d\\u0b2c\\u0b30 \\u0b05\\u0b15\\u0b4d\\u0b1f\\u0b4b\\u0b2c\\u0b30 \\u0b28\\u0b2d\\u0b47\\u0b2e\\u0b4d\\u0b2c\\u0b30 \\u0b21\\u0b3f\\u0b38\\u0b47\\u0b2e\\u0b4d\\u0b2c\\u0b30".split(" "),\nSTANDALONESHORTMONTHS:"\\u0b1c\\u0b3e\\u0b28\\u0b41\\u0b06\\u0b30\\u0b40 \\u0b2b\\u0b47\\u0b2c\\u0b43\\u0b06\\u0b30\\u0b40 \\u0b2e\\u0b3e\\u0b30\\u0b4d\\u0b1a\\u0b4d\\u0b1a \\u0b05\\u0b2a\\u0b4d\\u0b30\\u0b47\\u0b32 \\u0b2e\\u0b07 \\u0b1c\\u0b41\\u0b28 \\u0b1c\\u0b41\\u0b32\\u0b3e\\u0b07 \\u0b05\\u0b17\\u0b37\\u0b4d\\u0b1f \\u0b38\\u0b47\\u0b2a\\u0b4d\\u0b1f\\u0b47\\u0b2e\\u0b4d\\u0b2c\\u0b30 \\u0b05\\u0b15\\u0b4d\\u0b1f\\u0b4b\\u0b2c\\u0b30 \\u0b28\\u0b2d\\u0b47\\u0b2e\\u0b4d\\u0b2c\\u0b30 \\u0b21\\u0b3f\\u0b38\\u0b47\\u0b2e\\u0b4d\\u0b2c\\u0b30".split(" "),WEEKDAYS:"\\u0b30\\u0b2c\\u0b3f\\u0b2c\\u0b3e\\u0b30 \\u0b38\\u0b4b\\u0b2e\\u0b2c\\u0b3e\\u0b30 \\u0b2e\\u0b19\\u0b4d\\u0b17\\u0b33\\u0b2c\\u0b3e\\u0b30 \\u0b2c\\u0b41\\u0b27\\u0b2c\\u0b3e\\u0b30 \\u0b17\\u0b41\\u0b30\\u0b41\\u0b2c\\u0b3e\\u0b30 \\u0b36\\u0b41\\u0b15\\u0b4d\\u0b30\\u0b2c\\u0b3e\\u0b30 \\u0b36\\u0b28\\u0b3f\\u0b2c\\u0b3e\\u0b30".split(" "),\nSTANDALONEWEEKDAYS:"\\u0b30\\u0b2c\\u0b3f\\u0b2c\\u0b3e\\u0b30 \\u0b38\\u0b4b\\u0b2e\\u0b2c\\u0b3e\\u0b30 \\u0b2e\\u0b19\\u0b4d\\u0b17\\u0b33\\u0b2c\\u0b3e\\u0b30 \\u0b2c\\u0b41\\u0b27\\u0b2c\\u0b3e\\u0b30 \\u0b17\\u0b41\\u0b30\\u0b41\\u0b2c\\u0b3e\\u0b30 \\u0b36\\u0b41\\u0b15\\u0b4d\\u0b30\\u0b2c\\u0b3e\\u0b30 \\u0b36\\u0b28\\u0b3f\\u0b2c\\u0b3e\\u0b30".split(" "),SHORTWEEKDAYS:"\\u0b30\\u0b2c\\u0b3f \\u0b38\\u0b4b\\u0b2e \\u0b2e\\u0b19\\u0b4d\\u0b17\\u0b33 \\u0b2c\\u0b41\\u0b27 \\u0b17\\u0b41\\u0b30\\u0b41 \\u0b36\\u0b41\\u0b15\\u0b4d\\u0b30 \\u0b36\\u0b28\\u0b3f".split(" "),\nSTANDALONESHORTWEEKDAYS:"\\u0b30\\u0b2c\\u0b3f \\u0b38\\u0b4b\\u0b2e \\u0b2e\\u0b19\\u0b4d\\u0b17\\u0b33 \\u0b2c\\u0b41\\u0b27 \\u0b17\\u0b41\\u0b30\\u0b41 \\u0b36\\u0b41\\u0b15\\u0b4d\\u0b30 \\u0b36\\u0b28\\u0b3f".split(" "),NARROWWEEKDAYS:"\\u0b30 \\u0b38\\u0b4b \\u0b2e \\u0b2c\\u0b41 \\u0b17\\u0b41 \\u0b36\\u0b41 \\u0b36".split(" "),STANDALONENARROWWEEKDAYS:"\\u0b30 \\u0b38\\u0b4b \\u0b2e \\u0b2c\\u0b41 \\u0b17\\u0b41 \\u0b36\\u0b41 \\u0b36".split(" "),SHORTQUARTERS:["Q1","Q2","Q3","Q4"],QUARTERS:["Q1","Q2","Q3","Q4"],AMPMS:["am","pm"],DATEFORMATS:["EEEE, d MMMM y",\n"d MMMM y","d MMM y","d-M-yy"],TIMEFORMATS:["h:mm:ss a zzzz","h:mm:ss a z","h:mm:ss a","h:mm a"],DATETIMEFORMATS:["{1} {0}","{1} {0}","{1} {0}","{1} {0}"],FIRSTDAYOFWEEK:6,WEEKENDRANGE:[6,6],FIRSTWEEKCUTOFFDAY:5};\ngoog.i18n.DateTimeSymbols_pa={ERAS:["\\u0a08. \\u0a2a\\u0a42.","\\u0a38\\u0a70\\u0a28"],ERANAMES:["\\u0a08\\u0a38\\u0a35\\u0a40 \\u0a2a\\u0a42\\u0a30\\u0a35","\\u0a08\\u0a38\\u0a35\\u0a40 \\u0a38\\u0a70\\u0a28"],NARROWMONTHS:"\\u0a1c \\u0a2b\\u0a3c \\u0a2e\\u0a3e \\u0a05 \\u0a2e \\u0a1c\\u0a42 \\u0a1c\\u0a41 \\u0a05 \\u0a38 \\u0a05 \\u0a28 \\u0a26".split(" "),STANDALONENARROWMONTHS:"\\u0a1c \\u0a2b\\u0a3c \\u0a2e\\u0a3e \\u0a05 \\u0a2e \\u0a1c\\u0a42 \\u0a1c\\u0a41 \\u0a05 \\u0a38 \\u0a05 \\u0a28 \\u0a26".split(" "),MONTHS:"\\u0a1c\\u0a28\\u0a35\\u0a30\\u0a40 \\u0a2b\\u0a3c\\u0a30\\u0a35\\u0a30\\u0a40 \\u0a2e\\u0a3e\\u0a30\\u0a1a \\u0a05\\u0a2a\\u0a4d\\u0a30\\u0a48\\u0a32 \\u0a2e\\u0a08 \\u0a1c\\u0a42\\u0a28 \\u0a1c\\u0a41\\u0a32\\u0a3e\\u0a08 \\u0a05\\u0a17\\u0a38\\u0a24 \\u0a38\\u0a24\\u0a70\\u0a2c\\u0a30 \\u0a05\\u0a15\\u0a24\\u0a42\\u0a2c\\u0a30 \\u0a28\\u0a35\\u0a70\\u0a2c\\u0a30 \\u0a26\\u0a38\\u0a70\\u0a2c\\u0a30".split(" "),\nSTANDALONEMONTHS:"\\u0a1c\\u0a28\\u0a35\\u0a30\\u0a40 \\u0a2b\\u0a3c\\u0a30\\u0a35\\u0a30\\u0a40 \\u0a2e\\u0a3e\\u0a30\\u0a1a \\u0a05\\u0a2a\\u0a4d\\u0a30\\u0a48\\u0a32 \\u0a2e\\u0a08 \\u0a1c\\u0a42\\u0a28 \\u0a1c\\u0a41\\u0a32\\u0a3e\\u0a08 \\u0a05\\u0a17\\u0a38\\u0a24 \\u0a38\\u0a24\\u0a70\\u0a2c\\u0a30 \\u0a05\\u0a15\\u0a24\\u0a42\\u0a2c\\u0a30 \\u0a28\\u0a35\\u0a70\\u0a2c\\u0a30 \\u0a26\\u0a38\\u0a70\\u0a2c\\u0a30".split(" "),SHORTMONTHS:"\\u0a1c\\u0a28 \\u0a2b\\u0a3c\\u0a30 \\u0a2e\\u0a3e\\u0a30\\u0a1a \\u0a05\\u0a2a\\u0a4d\\u0a30\\u0a48 \\u0a2e\\u0a08 \\u0a1c\\u0a42\\u0a28 \\u0a1c\\u0a41\\u0a32\\u0a3e \\u0a05\\u0a17 \\u0a38\\u0a24\\u0a70 \\u0a05\\u0a15\\u0a24\\u0a42 \\u0a28\\u0a35\\u0a70 \\u0a26\\u0a38\\u0a70".split(" "),\nSTANDALONESHORTMONTHS:"\\u0a1c\\u0a28 \\u0a2b\\u0a3c\\u0a30 \\u0a2e\\u0a3e\\u0a30\\u0a1a \\u0a05\\u0a2a\\u0a4d\\u0a30\\u0a48 \\u0a2e\\u0a08 \\u0a1c\\u0a42\\u0a28 \\u0a1c\\u0a41\\u0a32\\u0a3e \\u0a05\\u0a17 \\u0a38\\u0a24\\u0a70 \\u0a05\\u0a15\\u0a24\\u0a42 \\u0a28\\u0a35\\u0a70 \\u0a26\\u0a38\\u0a70".split(" "),WEEKDAYS:"\\u0a10\\u0a24\\u0a35\\u0a3e\\u0a30 \\u0a38\\u0a4b\\u0a2e\\u0a35\\u0a3e\\u0a30 \\u0a2e\\u0a70\\u0a17\\u0a32\\u0a35\\u0a3e\\u0a30 \\u0a2c\\u0a41\\u0a71\\u0a27\\u0a35\\u0a3e\\u0a30 \\u0a35\\u0a40\\u0a30\\u0a35\\u0a3e\\u0a30 \\u0a38\\u0a3c\\u0a41\\u0a71\\u0a15\\u0a30\\u0a35\\u0a3e\\u0a30 \\u0a38\\u0a3c\\u0a28\\u0a3f\\u0a71\\u0a1a\\u0a30\\u0a35\\u0a3e\\u0a30".split(" "),\nSTANDALONEWEEKDAYS:"\\u0a10\\u0a24\\u0a35\\u0a3e\\u0a30 \\u0a38\\u0a4b\\u0a2e\\u0a35\\u0a3e\\u0a30 \\u0a2e\\u0a70\\u0a17\\u0a32\\u0a35\\u0a3e\\u0a30 \\u0a2c\\u0a41\\u0a71\\u0a27\\u0a35\\u0a3e\\u0a30 \\u0a35\\u0a40\\u0a30\\u0a35\\u0a3e\\u0a30 \\u0a38\\u0a3c\\u0a41\\u0a71\\u0a15\\u0a30\\u0a35\\u0a3e\\u0a30 \\u0a38\\u0a3c\\u0a28\\u0a3f\\u0a71\\u0a1a\\u0a30\\u0a35\\u0a3e\\u0a30".split(" "),SHORTWEEKDAYS:"\\u0a10\\u0a24 \\u0a38\\u0a4b\\u0a2e \\u0a2e\\u0a70\\u0a17\\u0a32 \\u0a2c\\u0a41\\u0a71\\u0a27 \\u0a35\\u0a40\\u0a30 \\u0a38\\u0a3c\\u0a41\\u0a71\\u0a15\\u0a30 \\u0a38\\u0a3c\\u0a28\\u0a3f\\u0a71\\u0a1a\\u0a30".split(" "),\nSTANDALONESHORTWEEKDAYS:"\\u0a10\\u0a24 \\u0a38\\u0a4b\\u0a2e \\u0a2e\\u0a70\\u0a17\\u0a32 \\u0a2c\\u0a41\\u0a71\\u0a27 \\u0a35\\u0a40\\u0a30 \\u0a38\\u0a3c\\u0a41\\u0a71\\u0a15\\u0a30 \\u0a38\\u0a3c\\u0a28\\u0a3f\\u0a71\\u0a1a\\u0a30".split(" "),NARROWWEEKDAYS:"\\u0a10 \\u0a38\\u0a4b \\u0a2e\\u0a70 \\u0a2c\\u0a41\\u0a71 \\u0a35\\u0a40 \\u0a38\\u0a3c\\u0a41\\u0a71 \\u0a38\\u0a3c".split(" "),STANDALONENARROWWEEKDAYS:"\\u0a10 \\u0a38\\u0a4b \\u0a2e\\u0a70 \\u0a2c\\u0a41\\u0a71 \\u0a35\\u0a40 \\u0a38\\u0a3c\\u0a41\\u0a71 \\u0a38\\u0a3c".split(" "),SHORTQUARTERS:["\\u0a24\\u0a3f\\u0a2e\\u0a3e\\u0a39\\u0a401",\n"\\u0a24\\u0a3f\\u0a2e\\u0a3e\\u0a39\\u0a402","\\u0a24\\u0a3f\\u0a2e\\u0a3e\\u0a39\\u0a403","\\u0a24\\u0a3f\\u0a2e\\u0a3e\\u0a39\\u0a404"],QUARTERS:["\\u0a2a\\u0a39\\u0a3f\\u0a32\\u0a40 \\u0a24\\u0a3f\\u0a2e\\u0a3e\\u0a39\\u0a40","\\u0a26\\u0a42\\u0a1c\\u0a40 \\u0a24\\u0a3f\\u0a2e\\u0a3e\\u0a39\\u0a40","\\u0a24\\u0a40\\u0a1c\\u0a40 \\u0a24\\u0a3f\\u0a2e\\u0a3e\\u0a39\\u0a40","\\u0a1a\\u0a4c\\u0a25\\u0a40 \\u0a24\\u0a3f\\u0a2e\\u0a3e\\u0a39\\u0a40"],AMPMS:["\\u0a2a\\u0a42.\\u0a26\\u0a41.","\\u0a2c\\u0a3e.\\u0a26\\u0a41."],DATEFORMATS:["EEEE, d MMMM y","d MMMM y",\n"d MMM y","d/M/yy"],TIMEFORMATS:["h:mm:ss a zzzz","h:mm:ss a z","h:mm:ss a","h:mm a"],DATETIMEFORMATS:["{1} {0}","{1} {0}","{1}, {0}","{1}, {0}"],FIRSTDAYOFWEEK:6,WEEKENDRANGE:[6,6],FIRSTWEEKCUTOFFDAY:5};\ngoog.i18n.DateTimeSymbols_pl={ERAS:["p.n.e.","n.e."],ERANAMES:["p.n.e.","n.e."],NARROWMONTHS:"slmkmclswplg".split(""),STANDALONENARROWMONTHS:"slmkmclswplg".split(""),MONTHS:"stycznia lutego marca kwietnia maja czerwca lipca sierpnia wrze\\u015bnia pa\\u017adziernika listopada grudnia".split(" "),STANDALONEMONTHS:"stycze\\u0144 luty marzec kwiecie\\u0144 maj czerwiec lipiec sierpie\\u0144 wrzesie\\u0144 pa\\u017adziernik listopad grudzie\\u0144".split(" "),SHORTMONTHS:"sty lut mar kwi maj cze lip sie wrz pa\\u017a lis gru".split(" "),\nSTANDALONESHORTMONTHS:"sty lut mar kwi maj cze lip sie wrz pa\\u017a lis gru".split(" "),WEEKDAYS:"niedziela poniedzia\\u0142ek wtorek \\u015broda czwartek pi\\u0105tek sobota".split(" "),STANDALONEWEEKDAYS:"niedziela poniedzia\\u0142ek wtorek \\u015broda czwartek pi\\u0105tek sobota".split(" "),SHORTWEEKDAYS:"niedz. pon. wt. \\u015br. czw. pt. sob.".split(" "),STANDALONESHORTWEEKDAYS:"niedz. pon. wt. \\u015br. czw. pt. sob.".split(" "),NARROWWEEKDAYS:"NPW\\u015aCPS".split(""),STANDALONENARROWWEEKDAYS:"NPW\\u015aCPS".split(""),\nSHORTQUARTERS:["K1","K2","K3","K4"],QUARTERS:["I kwarta\\u0142","II kwarta\\u0142","III kwarta\\u0142","IV kwarta\\u0142"],AMPMS:["AM","PM"],DATEFORMATS:["EEEE, d MMMM y","d MMMM y","dd.MM.y","dd.MM.y"],TIMEFORMATS:["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],DATETIMEFORMATS:["{1} {0}","{1} {0}","{1}, {0}","{1}, {0}"],FIRSTDAYOFWEEK:0,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:3};\ngoog.i18n.DateTimeSymbols_pt={ERAS:["a.C.","d.C."],ERANAMES:["antes de Cristo","depois de Cristo"],NARROWMONTHS:"JFMAMJJASOND".split(""),STANDALONENARROWMONTHS:"JFMAMJJASOND".split(""),MONTHS:"janeiro fevereiro mar\\u00e7o abril maio junho julho agosto setembro outubro novembro dezembro".split(" "),STANDALONEMONTHS:"janeiro fevereiro mar\\u00e7o abril maio junho julho agosto setembro outubro novembro dezembro".split(" "),SHORTMONTHS:"jan fev mar abr mai jun jul ago set out nov dez".split(" "),STANDALONESHORTMONTHS:"jan fev mar abr mai jun jul ago set out nov dez".split(" "),\nWEEKDAYS:"domingo segunda-feira ter\\u00e7a-feira quarta-feira quinta-feira sexta-feira s\\u00e1bado".split(" "),STANDALONEWEEKDAYS:"domingo segunda-feira ter\\u00e7a-feira quarta-feira quinta-feira sexta-feira s\\u00e1bado".split(" "),SHORTWEEKDAYS:"dom seg ter qua qui sex s\\u00e1b".split(" "),STANDALONESHORTWEEKDAYS:"dom seg ter qua qui sex s\\u00e1b".split(" "),NARROWWEEKDAYS:"DSTQQSS".split(""),STANDALONENARROWWEEKDAYS:"DSTQQSS".split(""),SHORTQUARTERS:["T1","T2","T3","T4"],QUARTERS:["1\\u00ba trimestre",\n"2\\u00ba trimestre","3\\u00ba trimestre","4\\u00ba trimestre"],AMPMS:["AM","PM"],DATEFORMATS:["EEEE, d \'de\' MMMM \'de\' y","d \'de\' MMMM \'de\' y","d \'de\' MMM \'de\' y","dd/MM/yy"],TIMEFORMATS:["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],DATETIMEFORMATS:["{1} {0}","{1} {0}","{1} {0}","{1} {0}"],FIRSTDAYOFWEEK:6,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:5};goog.i18n.DateTimeSymbols_pt_BR=goog.i18n.DateTimeSymbols_pt;\ngoog.i18n.DateTimeSymbols_pt_PT={ERAS:["a.C.","d.C."],ERANAMES:["antes de Cristo","depois de Cristo"],NARROWMONTHS:"JFMAMJJASOND".split(""),STANDALONENARROWMONTHS:"JFMAMJJASOND".split(""),MONTHS:"janeiro fevereiro mar\\u00e7o abril maio junho julho agosto setembro outubro novembro dezembro".split(" "),STANDALONEMONTHS:"janeiro fevereiro mar\\u00e7o abril maio junho julho agosto setembro outubro novembro dezembro".split(" "),SHORTMONTHS:"jan fev mar abr mai jun jul ago set out nov dez".split(" "),STANDALONESHORTMONTHS:"jan fev mar abr mai jun jul ago set out nov dez".split(" "),\nWEEKDAYS:"domingo segunda-feira ter\\u00e7a-feira quarta-feira quinta-feira sexta-feira s\\u00e1bado".split(" "),STANDALONEWEEKDAYS:"domingo segunda-feira ter\\u00e7a-feira quarta-feira quinta-feira sexta-feira s\\u00e1bado".split(" "),SHORTWEEKDAYS:"domingo segunda ter\\u00e7a quarta quinta sexta s\\u00e1bado".split(" "),STANDALONESHORTWEEKDAYS:"domingo segunda ter\\u00e7a quarta quinta sexta s\\u00e1bado".split(" "),NARROWWEEKDAYS:"DSTQQSS".split(""),STANDALONENARROWWEEKDAYS:"DSTQQSS".split(""),SHORTQUARTERS:["T1",\n"T2","T3","T4"],QUARTERS:["1.\\u00ba trimestre","2.\\u00ba trimestre","3.\\u00ba trimestre","4.\\u00ba trimestre"],AMPMS:["da manh\\u00e3","da tarde"],DATEFORMATS:["EEEE, d \'de\' MMMM \'de\' y","d \'de\' MMMM \'de\' y","dd/MM/y","dd/MM/yy"],TIMEFORMATS:["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],DATETIMEFORMATS:["{1} \'\\u00e0s\' {0}","{1} \'\\u00e0s\' {0}","{1}, {0}","{1}, {0}"],FIRSTDAYOFWEEK:0,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:3};\ngoog.i18n.DateTimeSymbols_ro={ERAS:["\\u00ee.Hr.","d.Hr."],ERANAMES:["\\u00eenainte de Hristos","dup\\u0103 Hristos"],NARROWMONTHS:"IFMAMIIASOND".split(""),STANDALONENARROWMONTHS:"IFMAMIIASOND".split(""),MONTHS:"ianuarie februarie martie aprilie mai iunie iulie august septembrie octombrie noiembrie decembrie".split(" "),STANDALONEMONTHS:"ianuarie februarie martie aprilie mai iunie iulie august septembrie octombrie noiembrie decembrie".split(" "),SHORTMONTHS:"ian. feb. mar. apr. mai iun. iul. aug. sept. oct. nov. dec.".split(" "),\nSTANDALONESHORTMONTHS:"ian. feb. mar. apr. mai iun. iul. aug. sept. oct. nov. dec.".split(" "),WEEKDAYS:"duminic\\u0103 luni mar\\u021bi miercuri joi vineri s\\u00e2mb\\u0103t\\u0103".split(" "),STANDALONEWEEKDAYS:"duminic\\u0103 luni mar\\u021bi miercuri joi vineri s\\u00e2mb\\u0103t\\u0103".split(" "),SHORTWEEKDAYS:"dum. lun. mar. mie. joi vin. s\\u00e2m.".split(" "),STANDALONESHORTWEEKDAYS:"dum. lun. mar. mie. joi vin. s\\u00e2m.".split(" "),NARROWWEEKDAYS:"DLMMJVS".split(""),STANDALONENARROWWEEKDAYS:"DLMMJVS".split(""),\nSHORTQUARTERS:["trim. I","trim. II","trim. III","trim. IV"],QUARTERS:["trimestrul I","trimestrul al II-lea","trimestrul al III-lea","trimestrul al IV-lea"],AMPMS:["a.m.","p.m."],DATEFORMATS:["EEEE, d MMMM y","d MMMM y","d MMM y","dd.MM.y"],TIMEFORMATS:["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],DATETIMEFORMATS:["{1}, {0}","{1}, {0}","{1}, {0}","{1}, {0}"],FIRSTDAYOFWEEK:0,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:6};\ngoog.i18n.DateTimeSymbols_ru={ERAS:["\\u0434\\u043e \\u043d. \\u044d.","\\u043d. \\u044d."],ERANAMES:["\\u0434\\u043e \\u0420\\u043e\\u0436\\u0434\\u0435\\u0441\\u0442\\u0432\\u0430 \\u0425\\u0440\\u0438\\u0441\\u0442\\u043e\\u0432\\u0430","\\u043e\\u0442 \\u0420\\u043e\\u0436\\u0434\\u0435\\u0441\\u0442\\u0432\\u0430 \\u0425\\u0440\\u0438\\u0441\\u0442\\u043e\\u0432\\u0430"],NARROWMONTHS:"\\u042f\\u0424\\u041c\\u0410\\u041c\\u0418\\u0418\\u0410\\u0421\\u041e\\u041d\\u0414".split(""),STANDALONENARROWMONTHS:"\\u042f\\u0424\\u041c\\u0410\\u041c\\u0418\\u0418\\u0410\\u0421\\u041e\\u041d\\u0414".split(""),\nMONTHS:"\\u044f\\u043d\\u0432\\u0430\\u0440\\u044f \\u0444\\u0435\\u0432\\u0440\\u0430\\u043b\\u044f \\u043c\\u0430\\u0440\\u0442\\u0430 \\u0430\\u043f\\u0440\\u0435\\u043b\\u044f \\u043c\\u0430\\u044f \\u0438\\u044e\\u043d\\u044f \\u0438\\u044e\\u043b\\u044f \\u0430\\u0432\\u0433\\u0443\\u0441\\u0442\\u0430 \\u0441\\u0435\\u043d\\u0442\\u044f\\u0431\\u0440\\u044f \\u043e\\u043a\\u0442\\u044f\\u0431\\u0440\\u044f \\u043d\\u043e\\u044f\\u0431\\u0440\\u044f \\u0434\\u0435\\u043a\\u0430\\u0431\\u0440\\u044f".split(" "),STANDALONEMONTHS:"\\u044f\\u043d\\u0432\\u0430\\u0440\\u044c \\u0444\\u0435\\u0432\\u0440\\u0430\\u043b\\u044c \\u043c\\u0430\\u0440\\u0442 \\u0430\\u043f\\u0440\\u0435\\u043b\\u044c \\u043c\\u0430\\u0439 \\u0438\\u044e\\u043d\\u044c \\u0438\\u044e\\u043b\\u044c \\u0430\\u0432\\u0433\\u0443\\u0441\\u0442 \\u0441\\u0435\\u043d\\u0442\\u044f\\u0431\\u0440\\u044c \\u043e\\u043a\\u0442\\u044f\\u0431\\u0440\\u044c \\u043d\\u043e\\u044f\\u0431\\u0440\\u044c \\u0434\\u0435\\u043a\\u0430\\u0431\\u0440\\u044c".split(" "),\nSHORTMONTHS:"\\u044f\\u043d\\u0432. \\u0444\\u0435\\u0432\\u0440. \\u043c\\u0430\\u0440. \\u0430\\u043f\\u0440. \\u043c\\u0430\\u044f \\u0438\\u044e\\u043d. \\u0438\\u044e\\u043b. \\u0430\\u0432\\u0433. \\u0441\\u0435\\u043d\\u0442. \\u043e\\u043a\\u0442. \\u043d\\u043e\\u044f\\u0431. \\u0434\\u0435\\u043a.".split(" "),STANDALONESHORTMONTHS:"\\u044f\\u043d\\u0432. \\u0444\\u0435\\u0432\\u0440. \\u043c\\u0430\\u0440\\u0442 \\u0430\\u043f\\u0440. \\u043c\\u0430\\u0439 \\u0438\\u044e\\u043d\\u044c \\u0438\\u044e\\u043b\\u044c \\u0430\\u0432\\u0433. \\u0441\\u0435\\u043d\\u0442. \\u043e\\u043a\\u0442. \\u043d\\u043e\\u044f\\u0431. \\u0434\\u0435\\u043a.".split(" "),\nWEEKDAYS:"\\u0432\\u043e\\u0441\\u043a\\u0440\\u0435\\u0441\\u0435\\u043d\\u044c\\u0435 \\u043f\\u043e\\u043d\\u0435\\u0434\\u0435\\u043b\\u044c\\u043d\\u0438\\u043a \\u0432\\u0442\\u043e\\u0440\\u043d\\u0438\\u043a \\u0441\\u0440\\u0435\\u0434\\u0430 \\u0447\\u0435\\u0442\\u0432\\u0435\\u0440\\u0433 \\u043f\\u044f\\u0442\\u043d\\u0438\\u0446\\u0430 \\u0441\\u0443\\u0431\\u0431\\u043e\\u0442\\u0430".split(" "),STANDALONEWEEKDAYS:"\\u0432\\u043e\\u0441\\u043a\\u0440\\u0435\\u0441\\u0435\\u043d\\u044c\\u0435 \\u043f\\u043e\\u043d\\u0435\\u0434\\u0435\\u043b\\u044c\\u043d\\u0438\\u043a \\u0432\\u0442\\u043e\\u0440\\u043d\\u0438\\u043a \\u0441\\u0440\\u0435\\u0434\\u0430 \\u0447\\u0435\\u0442\\u0432\\u0435\\u0440\\u0433 \\u043f\\u044f\\u0442\\u043d\\u0438\\u0446\\u0430 \\u0441\\u0443\\u0431\\u0431\\u043e\\u0442\\u0430".split(" "),\nSHORTWEEKDAYS:"\\u0432\\u0441 \\u043f\\u043d \\u0432\\u0442 \\u0441\\u0440 \\u0447\\u0442 \\u043f\\u0442 \\u0441\\u0431".split(" "),STANDALONESHORTWEEKDAYS:"\\u0432\\u0441 \\u043f\\u043d \\u0432\\u0442 \\u0441\\u0440 \\u0447\\u0442 \\u043f\\u0442 \\u0441\\u0431".split(" "),NARROWWEEKDAYS:"\\u0432\\u0441 \\u043f\\u043d \\u0432\\u0442 \\u0441\\u0440 \\u0447\\u0442 \\u043f\\u0442 \\u0441\\u0431".split(" "),STANDALONENARROWWEEKDAYS:"\\u0412\\u041f\\u0412\\u0421\\u0427\\u041f\\u0421".split(""),SHORTQUARTERS:["1-\\u0439 \\u043a\\u0432.","2-\\u0439 \\u043a\\u0432.",\n"3-\\u0439 \\u043a\\u0432.","4-\\u0439 \\u043a\\u0432."],QUARTERS:["1-\\u0439 \\u043a\\u0432\\u0430\\u0440\\u0442\\u0430\\u043b","2-\\u0439 \\u043a\\u0432\\u0430\\u0440\\u0442\\u0430\\u043b","3-\\u0439 \\u043a\\u0432\\u0430\\u0440\\u0442\\u0430\\u043b","4-\\u0439 \\u043a\\u0432\\u0430\\u0440\\u0442\\u0430\\u043b"],AMPMS:["\\u0414\\u041f","\\u041f\\u041f"],DATEFORMATS:["EEEE, d MMMM y \'\\u0433\'.","d MMMM y \'\\u0433\'.","d MMM y \'\\u0433\'.","dd.MM.yy"],TIMEFORMATS:["H:mm:ss zzzz","H:mm:ss z","H:mm:ss","H:mm"],DATETIMEFORMATS:["{1}, {0}","{1}, {0}",\n"{1}, {0}","{1}, {0}"],FIRSTDAYOFWEEK:0,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:6};\ngoog.i18n.DateTimeSymbols_sh={ERAS:["p. n. e.","n. e."],ERANAMES:["pre nove ere","nove ere"],NARROWMONTHS:"jfmamjjasond".split(""),STANDALONENARROWMONTHS:"jfmamjjasond".split(""),MONTHS:"januar februar mart april maj jun jul avgust septembar oktobar novembar decembar".split(" "),STANDALONEMONTHS:"januar februar mart april maj jun jul avgust septembar oktobar novembar decembar".split(" "),SHORTMONTHS:"jan feb mar apr maj jun jul avg sep okt nov dec".split(" "),STANDALONESHORTMONTHS:"jan feb mar apr maj jun jul avg sep okt nov dec".split(" "),\nWEEKDAYS:"nedelja ponedeljak utorak sreda \\u010detvrtak petak subota".split(" "),STANDALONEWEEKDAYS:"nedelja ponedeljak utorak sreda \\u010detvrtak petak subota".split(" "),SHORTWEEKDAYS:"ned pon uto sre \\u010det pet sub".split(" "),STANDALONESHORTWEEKDAYS:"ned pon uto sre \\u010det pet sub".split(" "),NARROWWEEKDAYS:"npus\\u010dps".split(""),STANDALONENARROWWEEKDAYS:"npus\\u010dps".split(""),SHORTQUARTERS:["K1","K2","K3","K4"],QUARTERS:["prvi kvartal","drugi kvartal","tre\\u0107i kvartal","\\u010detvrti kvartal"],\nAMPMS:["pre podne","po podne"],DATEFORMATS:["EEEE, dd. MMMM y.","dd. MMMM y.","dd.MM.y.","d.M.yy."],TIMEFORMATS:["HH.mm.ss zzzz","HH.mm.ss z","HH.mm.ss","HH.mm"],DATETIMEFORMATS:["{1} {0}","{1} {0}","{1} {0}","{1} {0}"],FIRSTDAYOFWEEK:0,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:6};\ngoog.i18n.DateTimeSymbols_si={ERAS:["\\u0d9a\\u0dca\\u200d\\u0dbb\\u0dd2.\\u0db4\\u0dd6.","\\u0d9a\\u0dca\\u200d\\u0dbb\\u0dd2.\\u0dc0."],ERANAMES:["\\u0d9a\\u0dca\\u200d\\u0dbb\\u0dd2\\u0dc3\\u0dca\\u0dad\\u0dd4 \\u0db4\\u0dd6\\u0dbb\\u0dca\\u0dc0","\\u0d9a\\u0dca\\u200d\\u0dbb\\u0dd2\\u0dc3\\u0dca\\u0dad\\u0dd4 \\u0dc0\\u0dbb\\u0dca\\u0dc2"],NARROWMONTHS:"\\u0da2 \\u0db4\\u0dd9 \\u0db8\\u0dcf \\u0d85 \\u0db8\\u0dd0 \\u0da2\\u0dd6 \\u0da2\\u0dd6 \\u0d85 \\u0dc3\\u0dd0 \\u0d94 \\u0db1\\u0dd9 \\u0daf\\u0dd9".split(" "),STANDALONENARROWMONTHS:"\\u0da2 \\u0db4\\u0dd9 \\u0db8\\u0dcf \\u0d85 \\u0db8\\u0dd0 \\u0da2\\u0dd6 \\u0da2\\u0dd6 \\u0d85 \\u0dc3\\u0dd0 \\u0d94 \\u0db1\\u0dd9 \\u0daf\\u0dd9".split(" "),\nMONTHS:"\\u0da2\\u0db1\\u0dc0\\u0dcf\\u0dbb\\u0dd2 \\u0db4\\u0dd9\\u0db6\\u0dbb\\u0dc0\\u0dcf\\u0dbb\\u0dd2 \\u0db8\\u0dcf\\u0dbb\\u0dca\\u0dad\\u0dd4 \\u0d85\\u0db4\\u0dca\\u200d\\u0dbb\\u0dda\\u0dbd\\u0dca \\u0db8\\u0dd0\\u0dba\\u0dd2 \\u0da2\\u0dd6\\u0db1\\u0dd2 \\u0da2\\u0dd6\\u0dbd\\u0dd2 \\u0d85\\u0d9c\\u0ddd\\u0dc3\\u0dca\\u0dad\\u0dd4 \\u0dc3\\u0dd0\\u0db4\\u0dca\\u0dad\\u0dd0\\u0db8\\u0dca\\u0db6\\u0dbb\\u0dca \\u0d94\\u0d9a\\u0dca\\u0dad\\u0ddd\\u0db6\\u0dbb\\u0dca \\u0db1\\u0ddc\\u0dc0\\u0dd0\\u0db8\\u0dca\\u0db6\\u0dbb\\u0dca \\u0daf\\u0dd9\\u0dc3\\u0dd0\\u0db8\\u0dca\\u0db6\\u0dbb\\u0dca".split(" "),\nSTANDALONEMONTHS:"\\u0da2\\u0db1\\u0dc0\\u0dcf\\u0dbb\\u0dd2 \\u0db4\\u0dd9\\u0db6\\u0dbb\\u0dc0\\u0dcf\\u0dbb\\u0dd2 \\u0db8\\u0dcf\\u0dbb\\u0dca\\u0dad\\u0dd4 \\u0d85\\u0db4\\u0dca\\u200d\\u0dbb\\u0dda\\u0dbd\\u0dca \\u0db8\\u0dd0\\u0dba\\u0dd2 \\u0da2\\u0dd6\\u0db1\\u0dd2 \\u0da2\\u0dd6\\u0dbd\\u0dd2 \\u0d85\\u0d9c\\u0ddd\\u0dc3\\u0dca\\u0dad\\u0dd4 \\u0dc3\\u0dd0\\u0db4\\u0dca\\u0dad\\u0dd0\\u0db8\\u0dca\\u0db6\\u0dbb\\u0dca \\u0d94\\u0d9a\\u0dca\\u0dad\\u0ddd\\u0db6\\u0dbb\\u0dca \\u0db1\\u0ddc\\u0dc0\\u0dd0\\u0db8\\u0dca\\u0db6\\u0dbb\\u0dca \\u0daf\\u0dd9\\u0dc3\\u0dd0\\u0db8\\u0dca\\u0db6\\u0dbb\\u0dca".split(" "),\nSHORTMONTHS:"\\u0da2\\u0db1 \\u0db4\\u0dd9\\u0db6 \\u0db8\\u0dcf\\u0dbb\\u0dca\\u0dad\\u0dd4 \\u0d85\\u0db4\\u0dca\\u200d\\u0dbb\\u0dda\\u0dbd\\u0dca \\u0db8\\u0dd0\\u0dba\\u0dd2 \\u0da2\\u0dd6\\u0db1\\u0dd2 \\u0da2\\u0dd6\\u0dbd\\u0dd2 \\u0d85\\u0d9c\\u0ddd \\u0dc3\\u0dd0\\u0db4\\u0dca \\u0d94\\u0d9a\\u0dca \\u0db1\\u0ddc\\u0dc0\\u0dd0 \\u0daf\\u0dd9\\u0dc3\\u0dd0".split(" "),STANDALONESHORTMONTHS:"\\u0da2\\u0db1 \\u0db4\\u0dd9\\u0db6 \\u0db8\\u0dcf\\u0dbb\\u0dca \\u0d85\\u0db4\\u0dca\\u200d\\u0dbb\\u0dda\\u0dbd\\u0dca \\u0db8\\u0dd0\\u0dba\\u0dd2 \\u0da2\\u0dd6\\u0db1\\u0dd2 \\u0da2\\u0dd6\\u0dbd\\u0dd2 \\u0d85\\u0d9c\\u0ddd \\u0dc3\\u0dd0\\u0db4\\u0dca \\u0d94\\u0d9a\\u0dca \\u0db1\\u0ddc\\u0dc0\\u0dd0 \\u0daf\\u0dd9\\u0dc3\\u0dd0".split(" "),\nWEEKDAYS:"\\u0d89\\u0dbb\\u0dd2\\u0daf\\u0dcf \\u0dc3\\u0db3\\u0dd4\\u0daf\\u0dcf \\u0d85\\u0d9f\\u0dc4\\u0dbb\\u0dd4\\u0dc0\\u0dcf\\u0daf\\u0dcf \\u0db6\\u0daf\\u0dcf\\u0daf\\u0dcf \\u0db6\\u0dca\\u200d\\u0dbb\\u0dc4\\u0dc3\\u0dca\\u0db4\\u0dad\\u0dd2\\u0db1\\u0dca\\u0daf\\u0dcf \\u0dc3\\u0dd2\\u0d9a\\u0dd4\\u0dbb\\u0dcf\\u0daf\\u0dcf \\u0dc3\\u0dd9\\u0db1\\u0dc3\\u0dd4\\u0dbb\\u0dcf\\u0daf\\u0dcf".split(" "),STANDALONEWEEKDAYS:"\\u0d89\\u0dbb\\u0dd2\\u0daf\\u0dcf \\u0dc3\\u0db3\\u0dd4\\u0daf\\u0dcf \\u0d85\\u0d9f\\u0dc4\\u0dbb\\u0dd4\\u0dc0\\u0dcf\\u0daf\\u0dcf \\u0db6\\u0daf\\u0dcf\\u0daf\\u0dcf \\u0db6\\u0dca\\u200d\\u0dbb\\u0dc4\\u0dc3\\u0dca\\u0db4\\u0dad\\u0dd2\\u0db1\\u0dca\\u0daf\\u0dcf \\u0dc3\\u0dd2\\u0d9a\\u0dd4\\u0dbb\\u0dcf\\u0daf\\u0dcf \\u0dc3\\u0dd9\\u0db1\\u0dc3\\u0dd4\\u0dbb\\u0dcf\\u0daf\\u0dcf".split(" "),\nSHORTWEEKDAYS:"\\u0d89\\u0dbb\\u0dd2\\u0daf\\u0dcf \\u0dc3\\u0db3\\u0dd4\\u0daf\\u0dcf \\u0d85\\u0d9f\\u0dc4 \\u0db6\\u0daf\\u0dcf\\u0daf\\u0dcf \\u0db6\\u0dca\\u200d\\u0dbb\\u0dc4\\u0dc3\\u0dca \\u0dc3\\u0dd2\\u0d9a\\u0dd4 \\u0dc3\\u0dd9\\u0db1".split(" "),STANDALONESHORTWEEKDAYS:"\\u0d89\\u0dbb\\u0dd2\\u0daf\\u0dcf \\u0dc3\\u0db3\\u0dd4\\u0daf\\u0dcf \\u0d85\\u0d9f\\u0dc4 \\u0db6\\u0daf\\u0dcf\\u0daf\\u0dcf \\u0db6\\u0dca\\u200d\\u0dbb\\u0dc4\\u0dc3\\u0dca \\u0dc3\\u0dd2\\u0d9a\\u0dd4 \\u0dc3\\u0dd9\\u0db1".split(" "),NARROWWEEKDAYS:"\\u0d89 \\u0dc3 \\u0d85 \\u0db6 \\u0db6\\u0dca\\u200d\\u0dbb \\u0dc3\\u0dd2 \\u0dc3\\u0dd9".split(" "),\nSTANDALONENARROWWEEKDAYS:"\\u0d89 \\u0dc3 \\u0d85 \\u0db6 \\u0db6\\u0dca\\u200d\\u0dbb \\u0dc3\\u0dd2 \\u0dc3\\u0dd9".split(" "),SHORTQUARTERS:["\\u0d9a\\u0dcf\\u0dbb\\u0dca:1","\\u0d9a\\u0dcf\\u0dbb\\u0dca:2","\\u0d9a\\u0dcf\\u0dbb\\u0dca:3","\\u0d9a\\u0dcf\\u0dbb\\u0dca:4"],QUARTERS:["1 \\u0dc0\\u0db1 \\u0d9a\\u0dcf\\u0dbb\\u0dca\\u0dad\\u0dd4\\u0dc0","2 \\u0dc0\\u0db1 \\u0d9a\\u0dcf\\u0dbb\\u0dca\\u0dad\\u0dd4\\u0dc0","3 \\u0dc0\\u0db1 \\u0d9a\\u0dcf\\u0dbb\\u0dca\\u0dad\\u0dd4\\u0dc0","4 \\u0dc0\\u0db1 \\u0d9a\\u0dcf\\u0dbb\\u0dca\\u0dad\\u0dd4\\u0dc0"],AMPMS:["\\u0db4\\u0dd9.\\u0dc0.",\n"\\u0db4.\\u0dc0."],DATEFORMATS:["y MMMM d, EEEE","y MMMM d","y MMM d","y-MM-dd"],TIMEFORMATS:["HH.mm.ss zzzz","HH.mm.ss z","HH.mm.ss","HH.mm"],DATETIMEFORMATS:["{1} {0}","{1} {0}","{1} {0}","{1} {0}"],FIRSTDAYOFWEEK:0,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:6};\ngoog.i18n.DateTimeSymbols_sk={ERAS:["pred Kr.","po Kr."],ERANAMES:["pred Kristom","po Kristovi"],NARROWMONTHS:"jfmamjjasond".split(""),STANDALONENARROWMONTHS:"jfmamjjasond".split(""),MONTHS:"janu\\u00e1ra febru\\u00e1ra marca apr\\u00edla m\\u00e1ja j\\u00fana j\\u00fala augusta septembra okt\\u00f3bra novembra decembra".split(" "),STANDALONEMONTHS:"janu\\u00e1r febru\\u00e1r marec apr\\u00edl m\\u00e1j j\\u00fan j\\u00fal august september okt\\u00f3ber november december".split(" "),SHORTMONTHS:"jan feb mar apr m\\u00e1j j\\u00fan j\\u00fal aug sep okt nov dec".split(" "),\nSTANDALONESHORTMONTHS:"jan feb mar apr m\\u00e1j j\\u00fan j\\u00fal aug sep okt nov dec".split(" "),WEEKDAYS:"nede\\u013ea pondelok utorok streda \\u0161tvrtok piatok sobota".split(" "),STANDALONEWEEKDAYS:"nede\\u013ea pondelok utorok streda \\u0161tvrtok piatok sobota".split(" "),SHORTWEEKDAYS:"ne po ut st \\u0161t pi so".split(" "),STANDALONESHORTWEEKDAYS:"ne po ut st \\u0161t pi so".split(" "),NARROWWEEKDAYS:"npus\\u0161ps".split(""),STANDALONENARROWWEEKDAYS:"npus\\u0161ps".split(""),SHORTQUARTERS:["Q1",\n"Q2","Q3","Q4"],QUARTERS:["1. \\u0161tvr\\u0165rok","2. \\u0161tvr\\u0165rok","3. \\u0161tvr\\u0165rok","4. \\u0161tvr\\u0165rok"],AMPMS:["AM","PM"],DATEFORMATS:["EEEE, d. MMMM y","d. MMMM y","d. M. y","d.M.yy"],TIMEFORMATS:["H:mm:ss zzzz","H:mm:ss z","H:mm:ss","H:mm"],DATETIMEFORMATS:["{1}, {0}","{1}, {0}","{1}, {0}","{1} {0}"],FIRSTDAYOFWEEK:0,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:3};\ngoog.i18n.DateTimeSymbols_sl={ERAS:["pr. Kr.","po n. \\u0161t."],ERANAMES:["pred Kristusom","na\\u0161e \\u0161tetje"],NARROWMONTHS:"jfmamjjasond".split(""),STANDALONENARROWMONTHS:"jfmamjjasond".split(""),MONTHS:"januar februar marec april maj junij julij avgust september oktober november december".split(" "),STANDALONEMONTHS:"januar februar marec april maj junij julij avgust september oktober november december".split(" "),SHORTMONTHS:"jan. feb. mar. apr. maj jun. jul. avg. sep. okt. nov. dec.".split(" "),\nSTANDALONESHORTMONTHS:"jan feb mar apr maj jun jul avg sep okt nov dec".split(" "),WEEKDAYS:"nedelja ponedeljek torek sreda \\u010detrtek petek sobota".split(" "),STANDALONEWEEKDAYS:"nedelja ponedeljek torek sreda \\u010detrtek petek sobota".split(" "),SHORTWEEKDAYS:"ned. pon. tor. sre. \\u010det. pet. sob.".split(" "),STANDALONESHORTWEEKDAYS:"ned pon tor sre \\u010det pet sob".split(" "),NARROWWEEKDAYS:"npts\\u010dps".split(""),STANDALONENARROWWEEKDAYS:"npts\\u010dps".split(""),SHORTQUARTERS:["1. \\u010det.",\n"2. \\u010det.","3. \\u010det.","4. \\u010det."],QUARTERS:["1. \\u010detrtletje","2. \\u010detrtletje","3. \\u010detrtletje","4. \\u010detrtletje"],AMPMS:["dop.","pop."],DATEFORMATS:["EEEE, dd. MMMM y","dd. MMMM y","d. MMM y","d. MM. yy"],TIMEFORMATS:["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],DATETIMEFORMATS:["{1} {0}","{1} {0}","{1} {0}","{1} {0}"],FIRSTDAYOFWEEK:0,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:6};\ngoog.i18n.DateTimeSymbols_sq={ERAS:["p.e.r.","e.r."],ERANAMES:["para er\\u00ebs s\\u00eb re","er\\u00ebs s\\u00eb re"],NARROWMONTHS:"JSMPMQKGSTND".split(""),STANDALONENARROWMONTHS:"JSMPMQKGSTND".split(""),MONTHS:"janar shkurt mars prill maj qershor korrik gusht shtator tetor n\\u00ebntor dhjetor".split(" "),STANDALONEMONTHS:"Janar Shkurt Mars Prill Maj Qershor Korrik Gusht Shtator Tetor N\\u00ebntor Dhjetor".split(" "),SHORTMONTHS:"Jan Shk Mar Pri Maj Qer Kor Gsh Sht Tet N\\u00ebn Dhj".split(" "),STANDALONESHORTMONTHS:"Jan Shk Mar Pri Maj Qer Kor Gsh Sht Tet N\\u00ebn Dhj".split(" "),\nWEEKDAYS:"e diel;e h\\u00ebn\\u00eb;e mart\\u00eb;e m\\u00ebrkur\\u00eb;e enjte;e premte;e shtun\\u00eb".split(";"),STANDALONEWEEKDAYS:"E diel;E h\\u00ebn\\u00eb;E mart\\u00eb;E m\\u00ebrkur\\u00eb;E enjte;E premte;E shtun\\u00eb".split(";"),SHORTWEEKDAYS:"Die H\\u00ebn Mar M\\u00ebr Enj Pre Sht".split(" "),STANDALONESHORTWEEKDAYS:"Die H\\u00ebn Mar M\\u00ebr Enj Pre Sht".split(" "),NARROWWEEKDAYS:"DHMMEPS".split(""),STANDALONENARROWWEEKDAYS:"DHMMEPS".split(""),SHORTQUARTERS:["tremujori I","tremujori II","tremujori III",\n"tremujori IV"],QUARTERS:["tremujori i par\\u00eb","tremujori i dyt\\u00eb","tremujori i tret\\u00eb","tremujori i kat\\u00ebrt"],AMPMS:["e paradites","e pasdites"],DATEFORMATS:["EEEE, d MMMM y","d MMMM y","d MMM y","d.M.yy"],TIMEFORMATS:["h:mm:ss a, zzzz","h:mm:ss a, z","h:mm:ss a","h:mm a"],DATETIMEFORMATS:["{1} \'n\\u00eb\' {0}","{1} \'n\\u00eb\' {0}","{1}, {0}","{1}, {0}"],FIRSTDAYOFWEEK:0,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:6};\ngoog.i18n.DateTimeSymbols_sr={ERAS:["\\u043f. \\u043d. \\u0435.","\\u043d. \\u0435."],ERANAMES:["\\u043f\\u0440\\u0435 \\u043d\\u043e\\u0432\\u0435 \\u0435\\u0440\\u0435","\\u043d\\u043e\\u0432\\u0435 \\u0435\\u0440\\u0435"],NARROWMONTHS:"\\u0458\\u0444\\u043c\\u0430\\u043c\\u0458\\u0458\\u0430\\u0441\\u043e\\u043d\\u0434".split(""),STANDALONENARROWMONTHS:"\\u0458\\u0444\\u043c\\u0430\\u043c\\u0458\\u0458\\u0430\\u0441\\u043e\\u043d\\u0434".split(""),MONTHS:"\\u0458\\u0430\\u043d\\u0443\\u0430\\u0440 \\u0444\\u0435\\u0431\\u0440\\u0443\\u0430\\u0440 \\u043c\\u0430\\u0440\\u0442 \\u0430\\u043f\\u0440\\u0438\\u043b \\u043c\\u0430\\u0458 \\u0458\\u0443\\u043d \\u0458\\u0443\\u043b \\u0430\\u0432\\u0433\\u0443\\u0441\\u0442 \\u0441\\u0435\\u043f\\u0442\\u0435\\u043c\\u0431\\u0430\\u0440 \\u043e\\u043a\\u0442\\u043e\\u0431\\u0430\\u0440 \\u043d\\u043e\\u0432\\u0435\\u043c\\u0431\\u0430\\u0440 \\u0434\\u0435\\u0446\\u0435\\u043c\\u0431\\u0430\\u0440".split(" "),\nSTANDALONEMONTHS:"\\u0458\\u0430\\u043d\\u0443\\u0430\\u0440 \\u0444\\u0435\\u0431\\u0440\\u0443\\u0430\\u0440 \\u043c\\u0430\\u0440\\u0442 \\u0430\\u043f\\u0440\\u0438\\u043b \\u043c\\u0430\\u0458 \\u0458\\u0443\\u043d \\u0458\\u0443\\u043b \\u0430\\u0432\\u0433\\u0443\\u0441\\u0442 \\u0441\\u0435\\u043f\\u0442\\u0435\\u043c\\u0431\\u0430\\u0440 \\u043e\\u043a\\u0442\\u043e\\u0431\\u0430\\u0440 \\u043d\\u043e\\u0432\\u0435\\u043c\\u0431\\u0430\\u0440 \\u0434\\u0435\\u0446\\u0435\\u043c\\u0431\\u0430\\u0440".split(" "),SHORTMONTHS:"\\u0458\\u0430\\u043d \\u0444\\u0435\\u0431 \\u043c\\u0430\\u0440 \\u0430\\u043f\\u0440 \\u043c\\u0430\\u0458 \\u0458\\u0443\\u043d \\u0458\\u0443\\u043b \\u0430\\u0432\\u0433 \\u0441\\u0435\\u043f \\u043e\\u043a\\u0442 \\u043d\\u043e\\u0432 \\u0434\\u0435\\u0446".split(" "),\nSTANDALONESHORTMONTHS:"\\u0458\\u0430\\u043d \\u0444\\u0435\\u0431 \\u043c\\u0430\\u0440 \\u0430\\u043f\\u0440 \\u043c\\u0430\\u0458 \\u0458\\u0443\\u043d \\u0458\\u0443\\u043b \\u0430\\u0432\\u0433 \\u0441\\u0435\\u043f \\u043e\\u043a\\u0442 \\u043d\\u043e\\u0432 \\u0434\\u0435\\u0446".split(" "),WEEKDAYS:"\\u043d\\u0435\\u0434\\u0435\\u0459\\u0430 \\u043f\\u043e\\u043d\\u0435\\u0434\\u0435\\u0459\\u0430\\u043a \\u0443\\u0442\\u043e\\u0440\\u0430\\u043a \\u0441\\u0440\\u0435\\u0434\\u0430 \\u0447\\u0435\\u0442\\u0432\\u0440\\u0442\\u0430\\u043a \\u043f\\u0435\\u0442\\u0430\\u043a \\u0441\\u0443\\u0431\\u043e\\u0442\\u0430".split(" "),\nSTANDALONEWEEKDAYS:"\\u043d\\u0435\\u0434\\u0435\\u0459\\u0430 \\u043f\\u043e\\u043d\\u0435\\u0434\\u0435\\u0459\\u0430\\u043a \\u0443\\u0442\\u043e\\u0440\\u0430\\u043a \\u0441\\u0440\\u0435\\u0434\\u0430 \\u0447\\u0435\\u0442\\u0432\\u0440\\u0442\\u0430\\u043a \\u043f\\u0435\\u0442\\u0430\\u043a \\u0441\\u0443\\u0431\\u043e\\u0442\\u0430".split(" "),SHORTWEEKDAYS:"\\u043d\\u0435\\u0434 \\u043f\\u043e\\u043d \\u0443\\u0442\\u043e \\u0441\\u0440\\u0435 \\u0447\\u0435\\u0442 \\u043f\\u0435\\u0442 \\u0441\\u0443\\u0431".split(" "),STANDALONESHORTWEEKDAYS:"\\u043d\\u0435\\u0434 \\u043f\\u043e\\u043d \\u0443\\u0442\\u043e \\u0441\\u0440\\u0435 \\u0447\\u0435\\u0442 \\u043f\\u0435\\u0442 \\u0441\\u0443\\u0431".split(" "),\nNARROWWEEKDAYS:"\\u043d\\u043f\\u0443\\u0441\\u0447\\u043f\\u0441".split(""),STANDALONENARROWWEEKDAYS:"\\u043d\\u043f\\u0443\\u0441\\u0447\\u043f\\u0441".split(""),SHORTQUARTERS:["\\u041a1","\\u041a2","\\u041a3","\\u041a4"],QUARTERS:["\\u043f\\u0440\\u0432\\u0438 \\u043a\\u0432\\u0430\\u0440\\u0442\\u0430\\u043b","\\u0434\\u0440\\u0443\\u0433\\u0438 \\u043a\\u0432\\u0430\\u0440\\u0442\\u0430\\u043b","\\u0442\\u0440\\u0435\\u045b\\u0438 \\u043a\\u0432\\u0430\\u0440\\u0442\\u0430\\u043b","\\u0447\\u0435\\u0442\\u0432\\u0440\\u0442\\u0438 \\u043a\\u0432\\u0430\\u0440\\u0442\\u0430\\u043b"],\nAMPMS:["\\u043f\\u0440\\u0435 \\u043f\\u043e\\u0434\\u043d\\u0435","\\u043f\\u043e \\u043f\\u043e\\u0434\\u043d\\u0435"],DATEFORMATS:["EEEE, dd. MMMM y.","dd. MMMM y.","dd.MM.y.","d.M.yy."],TIMEFORMATS:["HH.mm.ss zzzz","HH.mm.ss z","HH.mm.ss","HH.mm"],DATETIMEFORMATS:["{1} {0}","{1} {0}","{1} {0}","{1} {0}"],FIRSTDAYOFWEEK:0,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:6};\ngoog.i18n.DateTimeSymbols_sr_Latn={ERAS:["p. n. e.","n. e."],ERANAMES:["pre nove ere","nove ere"],NARROWMONTHS:"jfmamjjasond".split(""),STANDALONENARROWMONTHS:"jfmamjjasond".split(""),MONTHS:"januar februar mart april maj jun jul avgust septembar oktobar novembar decembar".split(" "),STANDALONEMONTHS:"januar februar mart april maj jun jul avgust septembar oktobar novembar decembar".split(" "),SHORTMONTHS:"jan feb mar apr maj jun jul avg sep okt nov dec".split(" "),STANDALONESHORTMONTHS:"jan feb mar apr maj jun jul avg sep okt nov dec".split(" "),\nWEEKDAYS:"nedelja ponedeljak utorak sreda \\u010detvrtak petak subota".split(" "),STANDALONEWEEKDAYS:"nedelja ponedeljak utorak sreda \\u010detvrtak petak subota".split(" "),SHORTWEEKDAYS:"ned pon uto sre \\u010det pet sub".split(" "),STANDALONESHORTWEEKDAYS:"ned pon uto sre \\u010det pet sub".split(" "),NARROWWEEKDAYS:"npus\\u010dps".split(""),STANDALONENARROWWEEKDAYS:"npus\\u010dps".split(""),SHORTQUARTERS:["K1","K2","K3","K4"],QUARTERS:["prvi kvartal","drugi kvartal","tre\\u0107i kvartal","\\u010detvrti kvartal"],\nAMPMS:["pre podne","po podne"],DATEFORMATS:["EEEE, dd. MMMM y.","dd. MMMM y.","dd.MM.y.","d.M.yy."],TIMEFORMATS:["HH.mm.ss zzzz","HH.mm.ss z","HH.mm.ss","HH.mm"],DATETIMEFORMATS:["{1} {0}","{1} {0}","{1} {0}","{1} {0}"],FIRSTDAYOFWEEK:0,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:6};\ngoog.i18n.DateTimeSymbols_sv={ERAS:["f.Kr.","e.Kr."],ERANAMES:["f\\u00f6re Kristus","efter Kristus"],NARROWMONTHS:"JFMAMJJASOND".split(""),STANDALONENARROWMONTHS:"JFMAMJJASOND".split(""),MONTHS:"januari februari mars april maj juni juli augusti september oktober november december".split(" "),STANDALONEMONTHS:"januari februari mars april maj juni juli augusti september oktober november december".split(" "),SHORTMONTHS:"jan. feb. mars apr. maj juni juli aug. sep. okt. nov. dec.".split(" "),STANDALONESHORTMONTHS:"jan. feb. mars apr. maj juni juli aug. sep. okt. nov. dec.".split(" "),\nWEEKDAYS:"s\\u00f6ndag m\\u00e5ndag tisdag onsdag torsdag fredag l\\u00f6rdag".split(" "),STANDALONEWEEKDAYS:"s\\u00f6ndag m\\u00e5ndag tisdag onsdag torsdag fredag l\\u00f6rdag".split(" "),SHORTWEEKDAYS:"s\\u00f6n m\\u00e5n tis ons tors fre l\\u00f6r".split(" "),STANDALONESHORTWEEKDAYS:"s\\u00f6n m\\u00e5n tis ons tors fre l\\u00f6r".split(" "),NARROWWEEKDAYS:"SMTOTFL".split(""),STANDALONENARROWWEEKDAYS:"SMTOTFL".split(""),SHORTQUARTERS:["K1","K2","K3","K4"],QUARTERS:["1:a kvartalet","2:a kvartalet","3:e kvartalet",\n"4:e kvartalet"],AMPMS:["fm","em"],DATEFORMATS:["EEEE d MMMM y","d MMMM y","d MMM y","y-MM-dd"],TIMEFORMATS:["\'kl\'. HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],DATETIMEFORMATS:["{1} {0}","{1} {0}","{1} {0}","{1} {0}"],FIRSTDAYOFWEEK:0,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:3};\ngoog.i18n.DateTimeSymbols_sw={ERAS:["BC","AD"],ERANAMES:["Kabla ya Kristo","Baada ya Kristo"],NARROWMONTHS:"JFMAMJJASOND".split(""),STANDALONENARROWMONTHS:"JFMAMJJASOND".split(""),MONTHS:"Januari Februari Machi Aprili Mei Juni Julai Agosti Septemba Oktoba Novemba Desemba".split(" "),STANDALONEMONTHS:"Januari Februari Machi Aprili Mei Juni Julai Agosti Septemba Oktoba Novemba Desemba".split(" "),SHORTMONTHS:"Jan Feb Mac Apr Mei Jun Jul Ago Sep Okt Nov Des".split(" "),STANDALONESHORTMONTHS:"Jan Feb Mac Apr Mei Jun Jul Ago Sep Okt Nov Des".split(" "),\nWEEKDAYS:"Jumapili Jumatatu Jumanne Jumatano Alhamisi Ijumaa Jumamosi".split(" "),STANDALONEWEEKDAYS:"Jumapili Jumatatu Jumanne Jumatano Alhamisi Ijumaa Jumamosi".split(" "),SHORTWEEKDAYS:"Jumapili Jumatatu Jumanne Jumatano Alhamisi Ijumaa Jumamosi".split(" "),STANDALONESHORTWEEKDAYS:"Jumapili Jumatatu Jumanne Jumatano Alhamisi Ijumaa Jumamosi".split(" "),NARROWWEEKDAYS:"SMTWTFS".split(""),STANDALONENARROWWEEKDAYS:"SMTWTFS".split(""),SHORTQUARTERS:["Robo ya 1","Robo ya 2","Robo ya 3","Robo ya 4"],\nQUARTERS:["Robo ya 1","Robo ya 2","Robo ya 3","Robo ya 4"],AMPMS:["AM","PM"],DATEFORMATS:["EEEE, d MMMM y","d MMMM y","d MMM y","dd/MM/y"],TIMEFORMATS:["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],DATETIMEFORMATS:["{1} {0}","{1} {0}","{1} {0}","{1} {0}"],FIRSTDAYOFWEEK:0,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:6};\ngoog.i18n.DateTimeSymbols_ta={ERAS:["\\u0b95\\u0bbf.\\u0bae\\u0bc1.","\\u0b95\\u0bbf.\\u0baa\\u0bbf."],ERANAMES:["\\u0b95\\u0bbf\\u0bb1\\u0bbf\\u0bb8\\u0bcd\\u0ba4\\u0bc1\\u0bb5\\u0bc1\\u0b95\\u0bcd\\u0b95\\u0bc1 \\u0bae\\u0bc1\\u0ba9\\u0bcd","\\u0b85\\u0ba9\\u0bcd\\u0ba9\\u0bcb \\u0b9f\\u0bcb\\u0bae\\u0bbf\\u0ba9\\u0bbf"],NARROWMONTHS:"\\u0b9c \\u0baa\\u0bbf \\u0bae\\u0bbe \\u0b8f \\u0bae\\u0bc7 \\u0b9c\\u0bc2 \\u0b9c\\u0bc2 \\u0b86 \\u0b9a\\u0bc6 \\u0b85 \\u0ba8 \\u0b9f\\u0bbf".split(" "),STANDALONENARROWMONTHS:"\\u0b9c \\u0baa\\u0bbf \\u0bae\\u0bbe \\u0b8f \\u0bae\\u0bc7 \\u0b9c\\u0bc2 \\u0b9c\\u0bc2 \\u0b86 \\u0b9a\\u0bc6 \\u0b85 \\u0ba8 \\u0b9f\\u0bbf".split(" "),\nMONTHS:"\\u0b9c\\u0ba9\\u0bb5\\u0bb0\\u0bbf \\u0baa\\u0bbf\\u0baa\\u0bcd\\u0bb0\\u0bb5\\u0bb0\\u0bbf \\u0bae\\u0bbe\\u0bb0\\u0bcd\\u0b9a\\u0bcd \\u0b8f\\u0baa\\u0bcd\\u0bb0\\u0bb2\\u0bcd \\u0bae\\u0bc7 \\u0b9c\\u0bc2\\u0ba9\\u0bcd \\u0b9c\\u0bc2\\u0bb2\\u0bc8 \\u0b86\\u0b95\\u0bb8\\u0bcd\\u0b9f\\u0bcd \\u0b9a\\u0bc6\\u0baa\\u0bcd\\u0b9f\\u0bae\\u0bcd\\u0baa\\u0bb0\\u0bcd \\u0b85\\u0b95\\u0bcd\\u0b9f\\u0bcb\\u0baa\\u0bb0\\u0bcd \\u0ba8\\u0bb5\\u0bae\\u0bcd\\u0baa\\u0bb0\\u0bcd \\u0b9f\\u0bbf\\u0b9a\\u0bae\\u0bcd\\u0baa\\u0bb0\\u0bcd".split(" "),STANDALONEMONTHS:"\\u0b9c\\u0ba9\\u0bb5\\u0bb0\\u0bbf \\u0baa\\u0bbf\\u0baa\\u0bcd\\u0bb0\\u0bb5\\u0bb0\\u0bbf \\u0bae\\u0bbe\\u0bb0\\u0bcd\\u0b9a\\u0bcd \\u0b8f\\u0baa\\u0bcd\\u0bb0\\u0bb2\\u0bcd \\u0bae\\u0bc7 \\u0b9c\\u0bc2\\u0ba9\\u0bcd \\u0b9c\\u0bc2\\u0bb2\\u0bc8 \\u0b86\\u0b95\\u0bb8\\u0bcd\\u0b9f\\u0bc1 \\u0b9a\\u0bc6\\u0baa\\u0bcd\\u0b9f\\u0bae\\u0bcd\\u0baa\\u0bb0\\u0bcd \\u0b85\\u0b95\\u0bcd\\u0b9f\\u0bcb\\u0baa\\u0bb0\\u0bcd \\u0ba8\\u0bb5\\u0bae\\u0bcd\\u0baa\\u0bb0\\u0bcd \\u0b9f\\u0bbf\\u0b9a\\u0bae\\u0bcd\\u0baa\\u0bb0\\u0bcd".split(" "),\nSHORTMONTHS:"\\u0b9c\\u0ba9. \\u0baa\\u0bbf\\u0baa\\u0bcd. \\u0bae\\u0bbe\\u0bb0\\u0bcd. \\u0b8f\\u0baa\\u0bcd. \\u0bae\\u0bc7 \\u0b9c\\u0bc2\\u0ba9\\u0bcd \\u0b9c\\u0bc2\\u0bb2\\u0bc8 \\u0b86\\u0b95. \\u0b9a\\u0bc6\\u0baa\\u0bcd. \\u0b85\\u0b95\\u0bcd. \\u0ba8\\u0bb5. \\u0b9f\\u0bbf\\u0b9a.".split(" "),STANDALONESHORTMONTHS:"\\u0b9c\\u0ba9. \\u0baa\\u0bbf\\u0baa\\u0bcd. \\u0bae\\u0bbe\\u0bb0\\u0bcd. \\u0b8f\\u0baa\\u0bcd. \\u0bae\\u0bc7 \\u0b9c\\u0bc2\\u0ba9\\u0bcd \\u0b9c\\u0bc2\\u0bb2\\u0bc8 \\u0b86\\u0b95. \\u0b9a\\u0bc6\\u0baa\\u0bcd. \\u0b85\\u0b95\\u0bcd. \\u0ba8\\u0bb5. \\u0b9f\\u0bbf\\u0b9a.".split(" "),\nWEEKDAYS:"\\u0b9e\\u0bbe\\u0baf\\u0bbf\\u0bb1\\u0bc1 \\u0ba4\\u0bbf\\u0b99\\u0bcd\\u0b95\\u0bb3\\u0bcd \\u0b9a\\u0bc6\\u0bb5\\u0bcd\\u0bb5\\u0bbe\\u0baf\\u0bcd \\u0baa\\u0bc1\\u0ba4\\u0ba9\\u0bcd \\u0bb5\\u0bbf\\u0baf\\u0bbe\\u0bb4\\u0ba9\\u0bcd \\u0bb5\\u0bc6\\u0bb3\\u0bcd\\u0bb3\\u0bbf \\u0b9a\\u0ba9\\u0bbf".split(" "),STANDALONEWEEKDAYS:"\\u0b9e\\u0bbe\\u0baf\\u0bbf\\u0bb1\\u0bc1 \\u0ba4\\u0bbf\\u0b99\\u0bcd\\u0b95\\u0bb3\\u0bcd \\u0b9a\\u0bc6\\u0bb5\\u0bcd\\u0bb5\\u0bbe\\u0baf\\u0bcd \\u0baa\\u0bc1\\u0ba4\\u0ba9\\u0bcd \\u0bb5\\u0bbf\\u0baf\\u0bbe\\u0bb4\\u0ba9\\u0bcd \\u0bb5\\u0bc6\\u0bb3\\u0bcd\\u0bb3\\u0bbf \\u0b9a\\u0ba9\\u0bbf".split(" "),\nSHORTWEEKDAYS:"\\u0b9e\\u0bbe\\u0baf\\u0bbf. \\u0ba4\\u0bbf\\u0b99\\u0bcd. \\u0b9a\\u0bc6\\u0bb5\\u0bcd. \\u0baa\\u0bc1\\u0ba4. \\u0bb5\\u0bbf\\u0baf\\u0bbe. \\u0bb5\\u0bc6\\u0bb3\\u0bcd. \\u0b9a\\u0ba9\\u0bbf".split(" "),STANDALONESHORTWEEKDAYS:"\\u0b9e\\u0bbe\\u0baf\\u0bbf. \\u0ba4\\u0bbf\\u0b99\\u0bcd. \\u0b9a\\u0bc6\\u0bb5\\u0bcd. \\u0baa\\u0bc1\\u0ba4. \\u0bb5\\u0bbf\\u0baf\\u0bbe. \\u0bb5\\u0bc6\\u0bb3\\u0bcd. \\u0b9a\\u0ba9\\u0bbf".split(" "),NARROWWEEKDAYS:"\\u0b9e\\u0bbe \\u0ba4\\u0bbf \\u0b9a\\u0bc6 \\u0baa\\u0bc1 \\u0bb5\\u0bbf \\u0bb5\\u0bc6 \\u0b9a".split(" "),\nSTANDALONENARROWWEEKDAYS:"\\u0b9e\\u0bbe \\u0ba4\\u0bbf \\u0b9a\\u0bc6 \\u0baa\\u0bc1 \\u0bb5\\u0bbf \\u0bb5\\u0bc6 \\u0b9a".split(" "),SHORTQUARTERS:["\\u0b95\\u0bbe\\u0bb2\\u0bbe.1","\\u0b95\\u0bbe\\u0bb2\\u0bbe.2","\\u0b95\\u0bbe\\u0bb2\\u0bbe.3","\\u0b95\\u0bbe\\u0bb2\\u0bbe.4"],QUARTERS:["1\\u0b86\\u0bae\\u0bcd \\u0b95\\u0bbe\\u0bb2\\u0bbe\\u0ba3\\u0bcd\\u0b9f\\u0bc1","2\\u0b86\\u0bae\\u0bcd \\u0b95\\u0bbe\\u0bb2\\u0bbe\\u0ba3\\u0bcd\\u0b9f\\u0bc1","3\\u0b86\\u0bae\\u0bcd \\u0b95\\u0bbe\\u0bb2\\u0bbe\\u0ba3\\u0bcd\\u0b9f\\u0bc1","4\\u0b86\\u0bae\\u0bcd \\u0b95\\u0bbe\\u0bb2\\u0bbe\\u0ba3\\u0bcd\\u0b9f\\u0bc1"],\nAMPMS:["\\u0bae\\u0bc1\\u0bb1\\u0bcd\\u0baa\\u0b95\\u0bb2\\u0bcd","\\u0baa\\u0bbf\\u0bb1\\u0bcd\\u0baa\\u0b95\\u0bb2\\u0bcd"],DATEFORMATS:["EEEE, d MMMM, y","d MMMM, y","d MMM, y","d/M/yy"],TIMEFORMATS:["a h:mm:ss zzzz","a h:mm:ss z","a h:mm:ss","a h:mm"],DATETIMEFORMATS:["{1} \\u2019\\u0b85\\u0ba9\\u0bcd\\u0bb1\\u0bc1\\u2019 {0}","{1} \\u2019\\u0b85\\u0ba9\\u0bcd\\u0bb1\\u0bc1\\u2019 {0}","{1}, {0}","{1}, {0}"],FIRSTDAYOFWEEK:6,WEEKENDRANGE:[6,6],FIRSTWEEKCUTOFFDAY:5};\ngoog.i18n.DateTimeSymbols_te={ERAS:["\\u0c15\\u0c4d\\u0c30\\u0c40\\u0c2a\\u0c42","\\u0c15\\u0c4d\\u0c30\\u0c40\\u0c36"],ERANAMES:["\\u0c15\\u0c4d\\u0c30\\u0c40\\u0c38\\u0c4d\\u0c24\\u0c41 \\u0c2a\\u0c42\\u0c30\\u0c4d\\u0c35\\u0c02","\\u0c15\\u0c4d\\u0c30\\u0c40\\u0c38\\u0c4d\\u0c24\\u0c41 \\u0c36\\u0c15\\u0c02"],NARROWMONTHS:"\\u0c1c \\u0c2b\\u0c3f \\u0c2e\\u0c3e \\u0c0f \\u0c2e\\u0c47 \\u0c1c\\u0c42 \\u0c1c\\u0c41 \\u0c06 \\u0c38\\u0c46 \\u0c05 \\u0c28 \\u0c21\\u0c3f".split(" "),STANDALONENARROWMONTHS:"\\u0c1c \\u0c2b\\u0c3f \\u0c2e\\u0c3e \\u0c0f \\u0c2e\\u0c47 \\u0c1c\\u0c42 \\u0c1c\\u0c41 \\u0c06 \\u0c38\\u0c46 \\u0c05 \\u0c28 \\u0c21\\u0c3f".split(" "),\nMONTHS:"\\u0c1c\\u0c28\\u0c35\\u0c30\\u0c3f \\u0c2b\\u0c3f\\u0c2c\\u0c4d\\u0c30\\u0c35\\u0c30\\u0c3f \\u0c2e\\u0c3e\\u0c30\\u0c4d\\u0c1a\\u0c3f \\u0c0f\\u0c2a\\u0c4d\\u0c30\\u0c3f\\u0c32\\u0c4d \\u0c2e\\u0c47 \\u0c1c\\u0c42\\u0c28\\u0c4d \\u0c1c\\u0c41\\u0c32\\u0c48 \\u0c06\\u0c17\\u0c38\\u0c4d\\u0c1f\\u0c41 \\u0c38\\u0c46\\u0c2a\\u0c4d\\u0c1f\\u0c46\\u0c02\\u0c2c\\u0c30\\u0c4d \\u0c05\\u0c15\\u0c4d\\u0c1f\\u0c4b\\u0c2c\\u0c30\\u0c4d \\u0c28\\u0c35\\u0c02\\u0c2c\\u0c30\\u0c4d \\u0c21\\u0c3f\\u0c38\\u0c46\\u0c02\\u0c2c\\u0c30\\u0c4d".split(" "),STANDALONEMONTHS:"\\u0c1c\\u0c28\\u0c35\\u0c30\\u0c3f \\u0c2b\\u0c3f\\u0c2c\\u0c4d\\u0c30\\u0c35\\u0c30\\u0c3f \\u0c2e\\u0c3e\\u0c30\\u0c4d\\u0c1a\\u0c3f \\u0c0f\\u0c2a\\u0c4d\\u0c30\\u0c3f\\u0c32\\u0c4d \\u0c2e\\u0c47 \\u0c1c\\u0c42\\u0c28\\u0c4d \\u0c1c\\u0c41\\u0c32\\u0c48 \\u0c06\\u0c17\\u0c38\\u0c4d\\u0c1f\\u0c41 \\u0c38\\u0c46\\u0c2a\\u0c4d\\u0c1f\\u0c46\\u0c02\\u0c2c\\u0c30\\u0c4d \\u0c05\\u0c15\\u0c4d\\u0c1f\\u0c4b\\u0c2c\\u0c30\\u0c4d \\u0c28\\u0c35\\u0c02\\u0c2c\\u0c30\\u0c4d \\u0c21\\u0c3f\\u0c38\\u0c46\\u0c02\\u0c2c\\u0c30\\u0c4d".split(" "),\nSHORTMONTHS:"\\u0c1c\\u0c28 \\u0c2b\\u0c3f\\u0c2c\\u0c4d\\u0c30 \\u0c2e\\u0c3e\\u0c30\\u0c4d\\u0c1a\\u0c3f \\u0c0f\\u0c2a\\u0c4d\\u0c30\\u0c3f \\u0c2e\\u0c47 \\u0c1c\\u0c42\\u0c28\\u0c4d \\u0c1c\\u0c41\\u0c32\\u0c48 \\u0c06\\u0c17 \\u0c38\\u0c46\\u0c2a\\u0c4d\\u0c1f\\u0c46\\u0c02 \\u0c05\\u0c15\\u0c4d\\u0c1f\\u0c4b \\u0c28\\u0c35\\u0c02 \\u0c21\\u0c3f\\u0c38\\u0c46\\u0c02".split(" "),STANDALONESHORTMONTHS:"\\u0c1c\\u0c28 \\u0c2b\\u0c3f\\u0c2c\\u0c4d\\u0c30 \\u0c2e\\u0c3e\\u0c30\\u0c4d\\u0c1a\\u0c3f \\u0c0f\\u0c2a\\u0c4d\\u0c30\\u0c3f \\u0c2e\\u0c47 \\u0c1c\\u0c42\\u0c28\\u0c4d \\u0c1c\\u0c41\\u0c32\\u0c48 \\u0c06\\u0c17\\u0c38\\u0c4d\\u0c1f\\u0c41 \\u0c38\\u0c46\\u0c2a\\u0c4d\\u0c1f\\u0c46\\u0c02 \\u0c05\\u0c15\\u0c4d\\u0c1f\\u0c4b \\u0c28\\u0c35\\u0c02 \\u0c21\\u0c3f\\u0c38\\u0c46\\u0c02".split(" "),\nWEEKDAYS:"\\u0c06\\u0c26\\u0c3f\\u0c35\\u0c3e\\u0c30\\u0c02 \\u0c38\\u0c4b\\u0c2e\\u0c35\\u0c3e\\u0c30\\u0c02 \\u0c2e\\u0c02\\u0c17\\u0c33\\u0c35\\u0c3e\\u0c30\\u0c02 \\u0c2c\\u0c41\\u0c27\\u0c35\\u0c3e\\u0c30\\u0c02 \\u0c17\\u0c41\\u0c30\\u0c41\\u0c35\\u0c3e\\u0c30\\u0c02 \\u0c36\\u0c41\\u0c15\\u0c4d\\u0c30\\u0c35\\u0c3e\\u0c30\\u0c02 \\u0c36\\u0c28\\u0c3f\\u0c35\\u0c3e\\u0c30\\u0c02".split(" "),STANDALONEWEEKDAYS:"\\u0c06\\u0c26\\u0c3f\\u0c35\\u0c3e\\u0c30\\u0c02 \\u0c38\\u0c4b\\u0c2e\\u0c35\\u0c3e\\u0c30\\u0c02 \\u0c2e\\u0c02\\u0c17\\u0c33\\u0c35\\u0c3e\\u0c30\\u0c02 \\u0c2c\\u0c41\\u0c27\\u0c35\\u0c3e\\u0c30\\u0c02 \\u0c17\\u0c41\\u0c30\\u0c41\\u0c35\\u0c3e\\u0c30\\u0c02 \\u0c36\\u0c41\\u0c15\\u0c4d\\u0c30\\u0c35\\u0c3e\\u0c30\\u0c02 \\u0c36\\u0c28\\u0c3f\\u0c35\\u0c3e\\u0c30\\u0c02".split(" "),\nSHORTWEEKDAYS:"\\u0c06\\u0c26\\u0c3f \\u0c38\\u0c4b\\u0c2e \\u0c2e\\u0c02\\u0c17\\u0c33 \\u0c2c\\u0c41\\u0c27 \\u0c17\\u0c41\\u0c30\\u0c41 \\u0c36\\u0c41\\u0c15\\u0c4d\\u0c30 \\u0c36\\u0c28\\u0c3f".split(" "),STANDALONESHORTWEEKDAYS:"\\u0c06\\u0c26\\u0c3f \\u0c38\\u0c4b\\u0c2e \\u0c2e\\u0c02\\u0c17\\u0c33 \\u0c2c\\u0c41\\u0c27 \\u0c17\\u0c41\\u0c30\\u0c41 \\u0c36\\u0c41\\u0c15\\u0c4d\\u0c30 \\u0c36\\u0c28\\u0c3f".split(" "),NARROWWEEKDAYS:"\\u0c06 \\u0c38\\u0c4b \\u0c2e \\u0c2c\\u0c41 \\u0c17\\u0c41 \\u0c36\\u0c41 \\u0c36".split(" "),STANDALONENARROWWEEKDAYS:"\\u0c06 \\u0c38\\u0c4b \\u0c2e \\u0c2c\\u0c41 \\u0c17\\u0c41 \\u0c36\\u0c41 \\u0c36".split(" "),\nSHORTQUARTERS:["\\u0c24\\u0c4d\\u0c30\\u0c481","\\u0c24\\u0c4d\\u0c30\\u0c482","\\u0c24\\u0c4d\\u0c30\\u0c483","\\u0c24\\u0c4d\\u0c30\\u0c484"],QUARTERS:["1\\u0c35 \\u0c24\\u0c4d\\u0c30\\u0c48\\u0c2e\\u0c3e\\u0c38\\u0c02","2\\u0c35 \\u0c24\\u0c4d\\u0c30\\u0c48\\u0c2e\\u0c3e\\u0c38\\u0c02","3\\u0c35 \\u0c24\\u0c4d\\u0c30\\u0c48\\u0c2e\\u0c3e\\u0c38\\u0c02","4\\u0c35 \\u0c24\\u0c4d\\u0c30\\u0c48\\u0c2e\\u0c3e\\u0c38\\u0c02"],AMPMS:["[AM]","[PM]"],DATEFORMATS:["d, MMMM y, EEEE","d MMMM, y","d MMM, y","dd-MM-yy"],TIMEFORMATS:["h:mm:ss a zzzz","h:mm:ss a z",\n"h:mm:ss a","h:mm a"],DATETIMEFORMATS:["{1} {0}","{1} {0}","{1} {0}","{1} {0}"],FIRSTDAYOFWEEK:6,WEEKENDRANGE:[6,6],FIRSTWEEKCUTOFFDAY:5};\ngoog.i18n.DateTimeSymbols_th={ERAS:["\\u0e1b\\u0e35\\u0e01\\u0e48\\u0e2d\\u0e19 \\u0e04.\\u0e28.","\\u0e04.\\u0e28."],ERANAMES:["\\u0e1b\\u0e35\\u0e01\\u0e48\\u0e2d\\u0e19\\u0e04\\u0e23\\u0e34\\u0e2a\\u0e15\\u0e4c\\u0e28\\u0e31\\u0e01\\u0e23\\u0e32\\u0e0a","\\u0e04\\u0e23\\u0e34\\u0e2a\\u0e15\\u0e4c\\u0e28\\u0e31\\u0e01\\u0e23\\u0e32\\u0e0a"],NARROWMONTHS:"\\u0e21.\\u0e04. \\u0e01.\\u0e1e. \\u0e21\\u0e35.\\u0e04. \\u0e40\\u0e21.\\u0e22. \\u0e1e.\\u0e04. \\u0e21\\u0e34.\\u0e22. \\u0e01.\\u0e04. \\u0e2a.\\u0e04. \\u0e01.\\u0e22. \\u0e15.\\u0e04. \\u0e1e.\\u0e22. \\u0e18.\\u0e04.".split(" "),STANDALONENARROWMONTHS:"\\u0e21.\\u0e04. \\u0e01.\\u0e1e. \\u0e21\\u0e35.\\u0e04. \\u0e40\\u0e21.\\u0e22. \\u0e1e.\\u0e04. \\u0e21\\u0e34.\\u0e22. \\u0e01.\\u0e04. \\u0e2a.\\u0e04. \\u0e01.\\u0e22. \\u0e15.\\u0e04. \\u0e1e.\\u0e22. \\u0e18.\\u0e04.".split(" "),\nMONTHS:"\\u0e21\\u0e01\\u0e23\\u0e32\\u0e04\\u0e21 \\u0e01\\u0e38\\u0e21\\u0e20\\u0e32\\u0e1e\\u0e31\\u0e19\\u0e18\\u0e4c \\u0e21\\u0e35\\u0e19\\u0e32\\u0e04\\u0e21 \\u0e40\\u0e21\\u0e29\\u0e32\\u0e22\\u0e19 \\u0e1e\\u0e24\\u0e29\\u0e20\\u0e32\\u0e04\\u0e21 \\u0e21\\u0e34\\u0e16\\u0e38\\u0e19\\u0e32\\u0e22\\u0e19 \\u0e01\\u0e23\\u0e01\\u0e0e\\u0e32\\u0e04\\u0e21 \\u0e2a\\u0e34\\u0e07\\u0e2b\\u0e32\\u0e04\\u0e21 \\u0e01\\u0e31\\u0e19\\u0e22\\u0e32\\u0e22\\u0e19 \\u0e15\\u0e38\\u0e25\\u0e32\\u0e04\\u0e21 \\u0e1e\\u0e24\\u0e28\\u0e08\\u0e34\\u0e01\\u0e32\\u0e22\\u0e19 \\u0e18\\u0e31\\u0e19\\u0e27\\u0e32\\u0e04\\u0e21".split(" "),\nSTANDALONEMONTHS:"\\u0e21\\u0e01\\u0e23\\u0e32\\u0e04\\u0e21 \\u0e01\\u0e38\\u0e21\\u0e20\\u0e32\\u0e1e\\u0e31\\u0e19\\u0e18\\u0e4c \\u0e21\\u0e35\\u0e19\\u0e32\\u0e04\\u0e21 \\u0e40\\u0e21\\u0e29\\u0e32\\u0e22\\u0e19 \\u0e1e\\u0e24\\u0e29\\u0e20\\u0e32\\u0e04\\u0e21 \\u0e21\\u0e34\\u0e16\\u0e38\\u0e19\\u0e32\\u0e22\\u0e19 \\u0e01\\u0e23\\u0e01\\u0e0e\\u0e32\\u0e04\\u0e21 \\u0e2a\\u0e34\\u0e07\\u0e2b\\u0e32\\u0e04\\u0e21 \\u0e01\\u0e31\\u0e19\\u0e22\\u0e32\\u0e22\\u0e19 \\u0e15\\u0e38\\u0e25\\u0e32\\u0e04\\u0e21 \\u0e1e\\u0e24\\u0e28\\u0e08\\u0e34\\u0e01\\u0e32\\u0e22\\u0e19 \\u0e18\\u0e31\\u0e19\\u0e27\\u0e32\\u0e04\\u0e21".split(" "),\nSHORTMONTHS:"\\u0e21.\\u0e04. \\u0e01.\\u0e1e. \\u0e21\\u0e35.\\u0e04. \\u0e40\\u0e21.\\u0e22. \\u0e1e.\\u0e04. \\u0e21\\u0e34.\\u0e22. \\u0e01.\\u0e04. \\u0e2a.\\u0e04. \\u0e01.\\u0e22. \\u0e15.\\u0e04. \\u0e1e.\\u0e22. \\u0e18.\\u0e04.".split(" "),STANDALONESHORTMONTHS:"\\u0e21.\\u0e04. \\u0e01.\\u0e1e. \\u0e21\\u0e35.\\u0e04. \\u0e40\\u0e21.\\u0e22. \\u0e1e.\\u0e04. \\u0e21\\u0e34.\\u0e22. \\u0e01.\\u0e04. \\u0e2a.\\u0e04. \\u0e01.\\u0e22. \\u0e15.\\u0e04. \\u0e1e.\\u0e22. \\u0e18.\\u0e04.".split(" "),WEEKDAYS:"\\u0e27\\u0e31\\u0e19\\u0e2d\\u0e32\\u0e17\\u0e34\\u0e15\\u0e22\\u0e4c \\u0e27\\u0e31\\u0e19\\u0e08\\u0e31\\u0e19\\u0e17\\u0e23\\u0e4c \\u0e27\\u0e31\\u0e19\\u0e2d\\u0e31\\u0e07\\u0e04\\u0e32\\u0e23 \\u0e27\\u0e31\\u0e19\\u0e1e\\u0e38\\u0e18 \\u0e27\\u0e31\\u0e19\\u0e1e\\u0e24\\u0e2b\\u0e31\\u0e2a\\u0e1a\\u0e14\\u0e35 \\u0e27\\u0e31\\u0e19\\u0e28\\u0e38\\u0e01\\u0e23\\u0e4c \\u0e27\\u0e31\\u0e19\\u0e40\\u0e2a\\u0e32\\u0e23\\u0e4c".split(" "),\nSTANDALONEWEEKDAYS:"\\u0e27\\u0e31\\u0e19\\u0e2d\\u0e32\\u0e17\\u0e34\\u0e15\\u0e22\\u0e4c \\u0e27\\u0e31\\u0e19\\u0e08\\u0e31\\u0e19\\u0e17\\u0e23\\u0e4c \\u0e27\\u0e31\\u0e19\\u0e2d\\u0e31\\u0e07\\u0e04\\u0e32\\u0e23 \\u0e27\\u0e31\\u0e19\\u0e1e\\u0e38\\u0e18 \\u0e27\\u0e31\\u0e19\\u0e1e\\u0e24\\u0e2b\\u0e31\\u0e2a\\u0e1a\\u0e14\\u0e35 \\u0e27\\u0e31\\u0e19\\u0e28\\u0e38\\u0e01\\u0e23\\u0e4c \\u0e27\\u0e31\\u0e19\\u0e40\\u0e2a\\u0e32\\u0e23\\u0e4c".split(" "),SHORTWEEKDAYS:"\\u0e2d\\u0e32. \\u0e08. \\u0e2d. \\u0e1e. \\u0e1e\\u0e24. \\u0e28. \\u0e2a.".split(" "),STANDALONESHORTWEEKDAYS:"\\u0e2d\\u0e32. \\u0e08. \\u0e2d. \\u0e1e. \\u0e1e\\u0e24. \\u0e28. \\u0e2a.".split(" "),\nNARROWWEEKDAYS:"\\u0e2d\\u0e32 \\u0e08 \\u0e2d \\u0e1e \\u0e1e\\u0e24 \\u0e28 \\u0e2a".split(" "),STANDALONENARROWWEEKDAYS:"\\u0e2d\\u0e32 \\u0e08 \\u0e2d \\u0e1e \\u0e1e\\u0e24 \\u0e28 \\u0e2a".split(" "),SHORTQUARTERS:["\\u0e44\\u0e15\\u0e23\\u0e21\\u0e32\\u0e2a 1","\\u0e44\\u0e15\\u0e23\\u0e21\\u0e32\\u0e2a 2","\\u0e44\\u0e15\\u0e23\\u0e21\\u0e32\\u0e2a 3","\\u0e44\\u0e15\\u0e23\\u0e21\\u0e32\\u0e2a 4"],QUARTERS:["\\u0e44\\u0e15\\u0e23\\u0e21\\u0e32\\u0e2a 1","\\u0e44\\u0e15\\u0e23\\u0e21\\u0e32\\u0e2a 2","\\u0e44\\u0e15\\u0e23\\u0e21\\u0e32\\u0e2a 3",\n"\\u0e44\\u0e15\\u0e23\\u0e21\\u0e32\\u0e2a 4"],AMPMS:["\\u0e01\\u0e48\\u0e2d\\u0e19\\u0e40\\u0e17\\u0e35\\u0e48\\u0e22\\u0e07","\\u0e2b\\u0e25\\u0e31\\u0e07\\u0e40\\u0e17\\u0e35\\u0e48\\u0e22\\u0e07"],DATEFORMATS:["EEEE\\u0e17\\u0e35\\u0e48 d MMMM G y","d MMMM G y","d MMM y","d/M/yy"],TIMEFORMATS:["H \\u0e19\\u0e32\\u0e2c\\u0e34\\u0e01\\u0e32 mm \\u0e19\\u0e32\\u0e17\\u0e35 ss \\u0e27\\u0e34\\u0e19\\u0e32\\u0e17\\u0e35 zzzz","H \\u0e19\\u0e32\\u0e2c\\u0e34\\u0e01\\u0e32 mm \\u0e19\\u0e32\\u0e17\\u0e35 ss \\u0e27\\u0e34\\u0e19\\u0e32\\u0e17\\u0e35 z","HH:mm:ss",\n"HH:mm"],DATETIMEFORMATS:["{1} {0}","{1} {0}","{1} {0}","{1} {0}"],FIRSTDAYOFWEEK:6,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:5};\ngoog.i18n.DateTimeSymbols_tl={ERAS:["BC","AD"],ERANAMES:["BC","AD"],NARROWMONTHS:"Ene Peb Mar Abr May Hun Hul Ago Set Okt Nob Dis".split(" "),STANDALONENARROWMONTHS:"E P M A M Hun Hul Ago Set Okt Nob Dis".split(" "),MONTHS:"Enero Pebrero Marso Abril Mayo Hunyo Hulyo Agosto Setyembre Oktubre Nobyembre Disyembre".split(" "),STANDALONEMONTHS:"Enero Pebrero Marso Abril Mayo Hunyo Hulyo Agosto Setyembre Oktubre Nobyembre Disyembre".split(" "),SHORTMONTHS:"Ene Peb Mar Abr May Hun Hul Ago Set Okt Nob Dis".split(" "),\nSTANDALONESHORTMONTHS:"Ene Peb Mar Abr May Hun Hul Ago Set Okt Nob Dis".split(" "),WEEKDAYS:"Linggo Lunes Martes Miyerkules Huwebes Biyernes Sabado".split(" "),STANDALONEWEEKDAYS:"Linggo Lunes Martes Miyerkules Huwebes Biyernes Sabado".split(" "),SHORTWEEKDAYS:"Lin Lun Mar Miy Huw Biy Sab".split(" "),STANDALONESHORTWEEKDAYS:"Lin Lun Mar Miy Huw Biy Sab".split(" "),NARROWWEEKDAYS:"Lin Lun Mar Miy Huw Biy Sab".split(" "),STANDALONENARROWWEEKDAYS:"Lin Lun Mar Miy Huw Biy Sab".split(" "),SHORTQUARTERS:["Q1",\n"Q2","Q3","Q4"],QUARTERS:["ika-1 quarter","ika-2 quarter","ika-3 quarter","ika-4 na quarter"],AMPMS:["AM","PM"],DATEFORMATS:["EEEE, MMMM d, y","MMMM d, y","MMM d, y","M/d/yy"],TIMEFORMATS:["h:mm:ss a zzzz","h:mm:ss a z","h:mm:ss a","h:mm a"],DATETIMEFORMATS:["{1} \'nang\' {0}","{1} \'nang\' {0}","{1}, {0}","{1}, {0}"],FIRSTDAYOFWEEK:6,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:5};\ngoog.i18n.DateTimeSymbols_tr={ERAS:["M\\u00d6","MS"],ERANAMES:["Milattan \\u00d6nce","Milattan Sonra"],NARROWMONTHS:"O\\u015eMNMHTAEEKA".split(""),STANDALONENARROWMONTHS:"O\\u015eMNMHTAEEKA".split(""),MONTHS:"Ocak \\u015eubat Mart Nisan May\\u0131s Haziran Temmuz A\\u011fustos Eyl\\u00fcl Ekim Kas\\u0131m Aral\\u0131k".split(" "),STANDALONEMONTHS:"Ocak \\u015eubat Mart Nisan May\\u0131s Haziran Temmuz A\\u011fustos Eyl\\u00fcl Ekim Kas\\u0131m Aral\\u0131k".split(" "),SHORTMONTHS:"Oca \\u015eub Mar Nis May Haz Tem A\\u011fu Eyl Eki Kas Ara".split(" "),\nSTANDALONESHORTMONTHS:"Oca \\u015eub Mar Nis May Haz Tem A\\u011fu Eyl Eki Kas Ara".split(" "),WEEKDAYS:"Pazar Pazartesi Sal\\u0131 \\u00c7ar\\u015famba Per\\u015fembe Cuma Cumartesi".split(" "),STANDALONEWEEKDAYS:"Pazar Pazartesi Sal\\u0131 \\u00c7ar\\u015famba Per\\u015fembe Cuma Cumartesi".split(" "),SHORTWEEKDAYS:"Paz Pzt Sal \\u00c7ar Per Cum Cmt".split(" "),STANDALONESHORTWEEKDAYS:"Paz Pzt Sal \\u00c7ar Per Cum Cmt".split(" "),NARROWWEEKDAYS:"PPS\\u00c7PCC".split(""),STANDALONENARROWWEEKDAYS:"PPS\\u00c7PCC".split(""),\nSHORTQUARTERS:["\\u00c71","\\u00c72","\\u00c73","\\u00c74"],QUARTERS:["1. \\u00e7eyrek","2. \\u00e7eyrek","3. \\u00e7eyrek","4. \\u00e7eyrek"],AMPMS:["\\u00d6\\u00d6","\\u00d6S"],DATEFORMATS:["d MMMM y EEEE","d MMMM y","d MMM y","d.MM.y"],TIMEFORMATS:["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],DATETIMEFORMATS:["{1} {0}","{1} {0}","{1} {0}","{1} {0}"],FIRSTDAYOFWEEK:0,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:6};\ngoog.i18n.DateTimeSymbols_uk={ERAS:["\\u0434\\u043e \\u043d. \\u0435.","\\u043d. \\u0435."],ERANAMES:["\\u0434\\u043e \\u043d\\u0430\\u0448\\u043e\\u0457 \\u0435\\u0440\\u0438","\\u043d\\u0430\\u0448\\u043e\\u0457 \\u0435\\u0440\\u0438"],NARROWMONTHS:"\\u0421\\u041b\\u0411\\u041a\\u0422\\u0427\\u041b\\u0421\\u0412\\u0416\\u041b\\u0413".split(""),STANDALONENARROWMONTHS:"\\u0421\\u041b\\u0411\\u041a\\u0422\\u0427\\u041b\\u0421\\u0412\\u0416\\u041b\\u0413".split(""),MONTHS:"\\u0441\\u0456\\u0447\\u043d\\u044f \\u043b\\u044e\\u0442\\u043e\\u0433\\u043e \\u0431\\u0435\\u0440\\u0435\\u0437\\u043d\\u044f \\u043a\\u0432\\u0456\\u0442\\u043d\\u044f \\u0442\\u0440\\u0430\\u0432\\u043d\\u044f \\u0447\\u0435\\u0440\\u0432\\u043d\\u044f \\u043b\\u0438\\u043f\\u043d\\u044f \\u0441\\u0435\\u0440\\u043f\\u043d\\u044f \\u0432\\u0435\\u0440\\u0435\\u0441\\u043d\\u044f \\u0436\\u043e\\u0432\\u0442\\u043d\\u044f \\u043b\\u0438\\u0441\\u0442\\u043e\\u043f\\u0430\\u0434\\u0430 \\u0433\\u0440\\u0443\\u0434\\u043d\\u044f".split(" "),\nSTANDALONEMONTHS:"\\u0441\\u0456\\u0447\\u0435\\u043d\\u044c \\u043b\\u044e\\u0442\\u0438\\u0439 \\u0431\\u0435\\u0440\\u0435\\u0437\\u0435\\u043d\\u044c \\u043a\\u0432\\u0456\\u0442\\u0435\\u043d\\u044c \\u0442\\u0440\\u0430\\u0432\\u0435\\u043d\\u044c \\u0447\\u0435\\u0440\\u0432\\u0435\\u043d\\u044c \\u043b\\u0438\\u043f\\u0435\\u043d\\u044c \\u0441\\u0435\\u0440\\u043f\\u0435\\u043d\\u044c \\u0432\\u0435\\u0440\\u0435\\u0441\\u0435\\u043d\\u044c \\u0436\\u043e\\u0432\\u0442\\u0435\\u043d\\u044c \\u043b\\u0438\\u0441\\u0442\\u043e\\u043f\\u0430\\u0434 \\u0433\\u0440\\u0443\\u0434\\u0435\\u043d\\u044c".split(" "),\nSHORTMONTHS:"\\u0441\\u0456\\u0447. \\u043b\\u044e\\u0442. \\u0431\\u0435\\u0440. \\u043a\\u0432\\u0456\\u0442. \\u0442\\u0440\\u0430\\u0432. \\u0447\\u0435\\u0440\\u0432. \\u043b\\u0438\\u043f. \\u0441\\u0435\\u0440\\u043f. \\u0432\\u0435\\u0440. \\u0436\\u043e\\u0432\\u0442. \\u043b\\u0438\\u0441\\u0442. \\u0433\\u0440\\u0443\\u0434.".split(" "),STANDALONESHORTMONTHS:"\\u0421\\u0456\\u0447 \\u041b\\u044e\\u0442 \\u0411\\u0435\\u0440 \\u041a\\u0432\\u0456 \\u0422\\u0440\\u0430 \\u0427\\u0435\\u0440 \\u041b\\u0438\\u043f \\u0421\\u0435\\u0440 \\u0412\\u0435\\u0440 \\u0416\\u043e\\u0432 \\u041b\\u0438\\u0441 \\u0413\\u0440\\u0443".split(" "),\nWEEKDAYS:"\\u043d\\u0435\\u0434\\u0456\\u043b\\u044f \\u043f\\u043e\\u043d\\u0435\\u0434\\u0456\\u043b\\u043e\\u043a \\u0432\\u0456\\u0432\\u0442\\u043e\\u0440\\u043e\\u043a \\u0441\\u0435\\u0440\\u0435\\u0434\\u0430 \\u0447\\u0435\\u0442\\u0432\\u0435\\u0440 \\u043f\\u02bc\\u044f\\u0442\\u043d\\u0438\\u0446\\u044f \\u0441\\u0443\\u0431\\u043e\\u0442\\u0430".split(" "),STANDALONEWEEKDAYS:"\\u043d\\u0435\\u0434\\u0456\\u043b\\u044f \\u043f\\u043e\\u043d\\u0435\\u0434\\u0456\\u043b\\u043e\\u043a \\u0432\\u0456\\u0432\\u0442\\u043e\\u0440\\u043e\\u043a \\u0441\\u0435\\u0440\\u0435\\u0434\\u0430 \\u0447\\u0435\\u0442\\u0432\\u0435\\u0440 \\u043f\\u02bc\\u044f\\u0442\\u043d\\u0438\\u0446\\u044f \\u0441\\u0443\\u0431\\u043e\\u0442\\u0430".split(" "),\nSHORTWEEKDAYS:"\\u041d\\u0434 \\u041f\\u043d \\u0412\\u0442 \\u0421\\u0440 \\u0427\\u0442 \\u041f\\u0442 \\u0421\\u0431".split(" "),STANDALONESHORTWEEKDAYS:"\\u041d\\u0434 \\u041f\\u043d \\u0412\\u0442 \\u0421\\u0440 \\u0427\\u0442 \\u041f\\u0442 \\u0421\\u0431".split(" "),NARROWWEEKDAYS:"\\u041d\\u041f\\u0412\\u0421\\u0427\\u041f\\u0421".split(""),STANDALONENARROWWEEKDAYS:"\\u041d\\u041f\\u0412\\u0421\\u0427\\u041f\\u0421".split(""),SHORTQUARTERS:["1-\\u0439 \\u043a\\u0432.","2-\\u0439 \\u043a\\u0432.","3-\\u0439 \\u043a\\u0432.","4-\\u0439 \\u043a\\u0432."],\nQUARTERS:["1-\\u0439 \\u043a\\u0432\\u0430\\u0440\\u0442\\u0430\\u043b","2-\\u0439 \\u043a\\u0432\\u0430\\u0440\\u0442\\u0430\\u043b","3-\\u0439 \\u043a\\u0432\\u0430\\u0440\\u0442\\u0430\\u043b","4-\\u0439 \\u043a\\u0432\\u0430\\u0440\\u0442\\u0430\\u043b"],AMPMS:["\\u0434\\u043f","\\u043f\\u043f"],DATEFORMATS:["EEEE, d MMMM y \'\\u0440\'.","d MMMM y \'\\u0440\'.","d MMM y \'\\u0440\'.","dd.MM.yy"],TIMEFORMATS:["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],DATETIMEFORMATS:["{1} \'\\u043e\' {0}","{1} \'\\u043e\' {0}","{1}, {0}","{1}, {0}"],FIRSTDAYOFWEEK:0,\nWEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:6};\ngoog.i18n.DateTimeSymbols_ur={ERAS:["\\u0642\\u0628\\u0644 \\u0645\\u0633\\u06cc\\u062d","\\u0639\\u06cc\\u0633\\u0648\\u06cc"],ERANAMES:["\\u0642\\u0628\\u0644 \\u0645\\u0633\\u06cc\\u062d","\\u0639\\u06cc\\u0633\\u0648\\u06cc"],NARROWMONTHS:"JFMAMJJASOND".split(""),STANDALONENARROWMONTHS:"JFMAMJJASOND".split(""),MONTHS:"\\u062c\\u0646\\u0648\\u0631\\u06cc \\u0641\\u0631\\u0648\\u0631\\u06cc \\u0645\\u0627\\u0631\\u0686 \\u0627\\u067e\\u0631\\u06cc\\u0644 \\u0645\\u0626\\u06cc \\u062c\\u0648\\u0646 \\u062c\\u0648\\u0644\\u0627\\u0626\\u06cc \\u0627\\u06af\\u0633\\u062a \\u0633\\u062a\\u0645\\u0628\\u0631 \\u0627\\u06a9\\u062a\\u0648\\u0628\\u0631 \\u0646\\u0648\\u0645\\u0628\\u0631 \\u062f\\u0633\\u0645\\u0628\\u0631".split(" "),STANDALONEMONTHS:"\\u062c\\u0646\\u0648\\u0631\\u06cc \\u0641\\u0631\\u0648\\u0631\\u06cc \\u0645\\u0627\\u0631\\u0686 \\u0627\\u067e\\u0631\\u06cc\\u0644 \\u0645\\u0626\\u06cc \\u062c\\u0648\\u0646 \\u062c\\u0648\\u0644\\u0627\\u0626\\u06cc \\u0627\\u06af\\u0633\\u062a \\u0633\\u062a\\u0645\\u0628\\u0631 \\u0627\\u06a9\\u062a\\u0648\\u0628\\u0631 \\u0646\\u0648\\u0645\\u0628\\u0631 \\u062f\\u0633\\u0645\\u0628\\u0631".split(" "),\nSHORTMONTHS:"\\u062c\\u0646\\u0648\\u0631\\u06cc \\u0641\\u0631\\u0648\\u0631\\u06cc \\u0645\\u0627\\u0631\\u0686 \\u0627\\u067e\\u0631\\u06cc\\u0644 \\u0645\\u0626\\u06cc \\u062c\\u0648\\u0646 \\u062c\\u0648\\u0644\\u0627\\u0626\\u06cc \\u0627\\u06af\\u0633\\u062a \\u0633\\u062a\\u0645\\u0628\\u0631 \\u0627\\u06a9\\u062a\\u0648\\u0628\\u0631 \\u0646\\u0648\\u0645\\u0628\\u0631 \\u062f\\u0633\\u0645\\u0628\\u0631".split(" "),STANDALONESHORTMONTHS:"\\u062c\\u0646\\u0648\\u0631\\u06cc \\u0641\\u0631\\u0648\\u0631\\u06cc \\u0645\\u0627\\u0631\\u0686 \\u0627\\u067e\\u0631\\u06cc\\u0644 \\u0645\\u0626\\u06cc \\u062c\\u0648\\u0646 \\u062c\\u0648\\u0644\\u0627\\u0626\\u06cc \\u0627\\u06af\\u0633\\u062a \\u0633\\u062a\\u0645\\u0628\\u0631 \\u0627\\u06a9\\u062a\\u0648\\u0628\\u0631 \\u0646\\u0648\\u0645\\u0628\\u0631 \\u062f\\u0633\\u0645\\u0628\\u0631".split(" "),\nWEEKDAYS:"\\u0627\\u062a\\u0648\\u0627\\u0631 \\u0633\\u0648\\u0645\\u0648\\u0627\\u0631 \\u0645\\u0646\\u06af\\u0644 \\u0628\\u062f\\u06be \\u062c\\u0645\\u0639\\u0631\\u0627\\u062a \\u062c\\u0645\\u0639\\u06c1 \\u06c1\\u0641\\u062a\\u06c1".split(" "),STANDALONEWEEKDAYS:"\\u0627\\u062a\\u0648\\u0627\\u0631 \\u0633\\u0648\\u0645\\u0648\\u0627\\u0631 \\u0645\\u0646\\u06af\\u0644 \\u0628\\u062f\\u06be \\u062c\\u0645\\u0639\\u0631\\u0627\\u062a \\u062c\\u0645\\u0639\\u06c1 \\u06c1\\u0641\\u062a\\u06c1".split(" "),SHORTWEEKDAYS:"\\u0627\\u062a\\u0648\\u0627\\u0631 \\u0633\\u0648\\u0645\\u0648\\u0627\\u0631 \\u0645\\u0646\\u06af\\u0644 \\u0628\\u062f\\u06be \\u062c\\u0645\\u0639\\u0631\\u0627\\u062a \\u062c\\u0645\\u0639\\u06c1 \\u06c1\\u0641\\u062a\\u06c1".split(" "),\nSTANDALONESHORTWEEKDAYS:"\\u0627\\u062a\\u0648\\u0627\\u0631 \\u0633\\u0648\\u0645\\u0648\\u0627\\u0631 \\u0645\\u0646\\u06af\\u0644 \\u0628\\u062f\\u06be \\u062c\\u0645\\u0639\\u0631\\u0627\\u062a \\u062c\\u0645\\u0639\\u06c1 \\u06c1\\u0641\\u062a\\u06c1".split(" "),NARROWWEEKDAYS:"SMTWTFS".split(""),STANDALONENARROWWEEKDAYS:"SMTWTFS".split(""),SHORTQUARTERS:["\\u067e\\u06c1\\u0644\\u06cc \\u0633\\u06c1 \\u0645\\u0627\\u06c1\\u06cc","\\u062f\\u0648\\u0633\\u0631\\u06cc \\u0633\\u06c1 \\u0645\\u0627\\u06c1\\u06cc","\\u062a\\u06cc\\u0633\\u0631\\u06cc \\u0633\\u06c1 \\u0645\\u0627\\u06c1\\u06cc",\n"\\u0686\\u0648\\u062a\\u0647\\u06cc \\u0633\\u06c1 \\u0645\\u0627\\u06c1\\u06cc"],QUARTERS:["\\u067e\\u06c1\\u0644\\u06cc \\u0633\\u06c1 \\u0645\\u0627\\u06c1\\u06cc","\\u062f\\u0648\\u0633\\u0631\\u06cc \\u0633\\u06c1 \\u0645\\u0627\\u06c1\\u06cc","\\u062a\\u06cc\\u0633\\u0631\\u06cc \\u0633\\u06c1 \\u0645\\u0627\\u06c1\\u06cc","\\u0686\\u0648\\u062a\\u0647\\u06cc \\u0633\\u06c1 \\u0645\\u0627\\u06c1\\u06cc"],AMPMS:["\\u0642\\u0628\\u0644 \\u062f\\u0648\\u067e\\u06c1\\u0631","\\u0628\\u0639\\u062f \\u062f\\u0648\\u067e\\u06c1\\u0631"],DATEFORMATS:["EEEE\\u060c d MMMM\\u060c y",\n"d MMMM\\u060c y","d MMM\\u060c y","d/M/yy"],TIMEFORMATS:["h:mm:ss a zzzz","h:mm:ss a z","h:mm:ss a","h:mm a"],DATETIMEFORMATS:["{1} {0}","{1} {0}","{1} {0}","{1} {0}"],FIRSTDAYOFWEEK:6,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:5};\ngoog.i18n.DateTimeSymbols_uz={ERAS:["m.a.","milodiy"],ERANAMES:["miloddan avvalgi","milodiy"],NARROWMONTHS:"YFMAMIIASOND".split(""),STANDALONENARROWMONTHS:"YFMAMIIASOND".split(""),MONTHS:"yanvar fevral mart aprel may iyun iyul avgust Sentabr Oktabr noyabr dekabr".split(" "),STANDALONEMONTHS:"Yanvar Fevral Mart Aprel May Iyun Iyul Avgust Sentabr Oktabr Noyabr Dekabr".split(" "),SHORTMONTHS:"yan fev mar apr may iyn iyl avg sen okt noy dek".split(" "),STANDALONESHORTMONTHS:"Yanv Fev Mar Apr May Iyun Iyul Avg Sen Okt Noya Dek".split(" "),\nWEEKDAYS:"yakshanba dushanba seshanba chorshanba payshanba juma shanba".split(" "),STANDALONEWEEKDAYS:"yakshanba dushanba seshanba chorshanba payshanba juma shanba".split(" "),SHORTWEEKDAYS:"Ya Du Se Ch Pa Ju Sh".split(" "),STANDALONESHORTWEEKDAYS:"Ya Du Se Ch Pa Ju Sh".split(" "),NARROWWEEKDAYS:"YDSCPJS".split(""),STANDALONENARROWWEEKDAYS:"YDSCPJS".split(""),SHORTQUARTERS:["1-ch","2-ch","3-ch","4-ch"],QUARTERS:["1-chorak","2-chorak","3-chorak","4-chorak"],AMPMS:["TO","TK"],DATEFORMATS:["EEEE, y MMMM dd",\n"d-MMMM, y","d-MMM, y","dd/MM/yy"],TIMEFORMATS:["H:mm:ss (zzzz)","H:mm:ss (z)","HH:mm:ss","HH:mm"],DATETIMEFORMATS:["{1}, {0}","{1}, {0}","{1}, {0}","{1}, {0}"],FIRSTDAYOFWEEK:0,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:6};\ngoog.i18n.DateTimeSymbols_vi={ERAS:["tr. CN","sau CN"],ERANAMES:["tr. CN","sau CN"],NARROWMONTHS:"1 2 3 4 5 6 7 8 9 10 11 12".split(" "),STANDALONENARROWMONTHS:"1 2 3 4 5 6 7 8 9 10 11 12".split(" "),MONTHS:"th\\u00e1ng 1;th\\u00e1ng 2;th\\u00e1ng 3;th\\u00e1ng 4;th\\u00e1ng 5;th\\u00e1ng 6;th\\u00e1ng 7;th\\u00e1ng 8;th\\u00e1ng 9;th\\u00e1ng 10;th\\u00e1ng 11;th\\u00e1ng 12".split(";"),STANDALONEMONTHS:"Th\\u00e1ng 1;Th\\u00e1ng 2;Th\\u00e1ng 3;Th\\u00e1ng 4;Th\\u00e1ng 5;Th\\u00e1ng 6;Th\\u00e1ng 7;Th\\u00e1ng 8;Th\\u00e1ng 9;Th\\u00e1ng 10;Th\\u00e1ng 11;Th\\u00e1ng 12".split(";"),\nSHORTMONTHS:"thg 1;thg 2;thg 3;thg 4;thg 5;thg 6;thg 7;thg 8;thg 9;thg 10;thg 11;thg 12".split(";"),STANDALONESHORTMONTHS:"Thg 1;Thg 2;Thg 3;Thg 4;Thg 5;Thg 6;Thg 7;Thg 8;Thg 9;Thg 10;Thg 11;Thg 12".split(";"),WEEKDAYS:"Ch\\u1ee7 Nh\\u1eadt;Th\\u1ee9 Hai;Th\\u1ee9 Ba;Th\\u1ee9 T\\u01b0;Th\\u1ee9 N\\u0103m;Th\\u1ee9 S\\u00e1u;Th\\u1ee9 B\\u1ea3y".split(";"),STANDALONEWEEKDAYS:"Ch\\u1ee7 Nh\\u1eadt;Th\\u1ee9 Hai;Th\\u1ee9 Ba;Th\\u1ee9 T\\u01b0;Th\\u1ee9 N\\u0103m;Th\\u1ee9 S\\u00e1u;Th\\u1ee9 B\\u1ea3y".split(";"),SHORTWEEKDAYS:"CN;Th 2;Th 3;Th 4;Th 5;Th 6;Th 7".split(";"),\nSTANDALONESHORTWEEKDAYS:"CN;Th 2;Th 3;Th 4;Th 5;Th 6;Th 7".split(";"),NARROWWEEKDAYS:"CN T2 T3 T4 T5 T6 T7".split(" "),STANDALONENARROWWEEKDAYS:"CN T2 T3 T4 T5 T6 T7".split(" "),SHORTQUARTERS:["Q1","Q2","Q3","Q4"],QUARTERS:["Qu\\u00fd 1","Qu\\u00fd 2","Qu\\u00fd 3","Qu\\u00fd 4"],AMPMS:["SA","CH"],DATEFORMATS:["EEEE, \'ng\\u00e0y\' dd MMMM \'n\\u0103m\' y","\'Ng\\u00e0y\' dd \'th\\u00e1ng\' MM \'n\\u0103m\' y","d MMM, y","dd/MM/y"],TIMEFORMATS:["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],DATETIMEFORMATS:["{0} {1}",\n"{0} {1}","{0}, {1}","{0}, {1}"],FIRSTDAYOFWEEK:0,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:6};\ngoog.i18n.DateTimeSymbols_zh={ERAS:["\\u516c\\u5143\\u524d","\\u516c\\u5143"],ERANAMES:["\\u516c\\u5143\\u524d","\\u516c\\u5143"],NARROWMONTHS:"1 2 3 4 5 6 7 8 9 10 11 12".split(" "),STANDALONENARROWMONTHS:"1 2 3 4 5 6 7 8 9 10 11 12".split(" "),MONTHS:"\\u4e00\\u6708 \\u4e8c\\u6708 \\u4e09\\u6708 \\u56db\\u6708 \\u4e94\\u6708 \\u516d\\u6708 \\u4e03\\u6708 \\u516b\\u6708 \\u4e5d\\u6708 \\u5341\\u6708 \\u5341\\u4e00\\u6708 \\u5341\\u4e8c\\u6708".split(" "),STANDALONEMONTHS:"\\u4e00\\u6708 \\u4e8c\\u6708 \\u4e09\\u6708 \\u56db\\u6708 \\u4e94\\u6708 \\u516d\\u6708 \\u4e03\\u6708 \\u516b\\u6708 \\u4e5d\\u6708 \\u5341\\u6708 \\u5341\\u4e00\\u6708 \\u5341\\u4e8c\\u6708".split(" "),\nSHORTMONTHS:"1\\u6708 2\\u6708 3\\u6708 4\\u6708 5\\u6708 6\\u6708 7\\u6708 8\\u6708 9\\u6708 10\\u6708 11\\u6708 12\\u6708".split(" "),STANDALONESHORTMONTHS:"1\\u6708 2\\u6708 3\\u6708 4\\u6708 5\\u6708 6\\u6708 7\\u6708 8\\u6708 9\\u6708 10\\u6708 11\\u6708 12\\u6708".split(" "),WEEKDAYS:"\\u661f\\u671f\\u65e5 \\u661f\\u671f\\u4e00 \\u661f\\u671f\\u4e8c \\u661f\\u671f\\u4e09 \\u661f\\u671f\\u56db \\u661f\\u671f\\u4e94 \\u661f\\u671f\\u516d".split(" "),STANDALONEWEEKDAYS:"\\u661f\\u671f\\u65e5 \\u661f\\u671f\\u4e00 \\u661f\\u671f\\u4e8c \\u661f\\u671f\\u4e09 \\u661f\\u671f\\u56db \\u661f\\u671f\\u4e94 \\u661f\\u671f\\u516d".split(" "),\nSHORTWEEKDAYS:"\\u5468\\u65e5 \\u5468\\u4e00 \\u5468\\u4e8c \\u5468\\u4e09 \\u5468\\u56db \\u5468\\u4e94 \\u5468\\u516d".split(" "),STANDALONESHORTWEEKDAYS:"\\u5468\\u65e5 \\u5468\\u4e00 \\u5468\\u4e8c \\u5468\\u4e09 \\u5468\\u56db \\u5468\\u4e94 \\u5468\\u516d".split(" "),NARROWWEEKDAYS:"\\u65e5\\u4e00\\u4e8c\\u4e09\\u56db\\u4e94\\u516d".split(""),STANDALONENARROWWEEKDAYS:"\\u65e5\\u4e00\\u4e8c\\u4e09\\u56db\\u4e94\\u516d".split(""),SHORTQUARTERS:["1\\u5b63\\u5ea6","2\\u5b63\\u5ea6","3\\u5b63\\u5ea6","4\\u5b63\\u5ea6"],QUARTERS:["\\u7b2c\\u4e00\\u5b63\\u5ea6",\n"\\u7b2c\\u4e8c\\u5b63\\u5ea6","\\u7b2c\\u4e09\\u5b63\\u5ea6","\\u7b2c\\u56db\\u5b63\\u5ea6"],AMPMS:["\\u4e0a\\u5348","\\u4e0b\\u5348"],DATEFORMATS:["y\\u5e74M\\u6708d\\u65e5EEEE","y\\u5e74M\\u6708d\\u65e5","y\\u5e74M\\u6708d\\u65e5","y/M/d"],TIMEFORMATS:["zzzz ah:mm:ss","z ah:mm:ss","ah:mm:ss","ah:mm"],DATETIMEFORMATS:["{1} {0}","{1} {0}","{1} {0}","{1} {0}"],FIRSTDAYOFWEEK:6,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:5};goog.i18n.DateTimeSymbols_zh_CN=goog.i18n.DateTimeSymbols_zh;\ngoog.i18n.DateTimeSymbols_zh_HK={ERAS:["\\u516c\\u5143\\u524d","\\u516c\\u5143"],ERANAMES:["\\u516c\\u5143\\u524d","\\u516c\\u5143"],NARROWMONTHS:"1 2 3 4 5 6 7 8 9 10 11 12".split(" "),STANDALONENARROWMONTHS:"1 2 3 4 5 6 7 8 9 10 11 12".split(" "),MONTHS:"1\\u6708 2\\u6708 3\\u6708 4\\u6708 5\\u6708 6\\u6708 7\\u6708 8\\u6708 9\\u6708 10\\u6708 11\\u6708 12\\u6708".split(" "),STANDALONEMONTHS:"1\\u6708 2\\u6708 3\\u6708 4\\u6708 5\\u6708 6\\u6708 7\\u6708 8\\u6708 9\\u6708 10\\u6708 11\\u6708 12\\u6708".split(" "),SHORTMONTHS:"1\\u6708 2\\u6708 3\\u6708 4\\u6708 5\\u6708 6\\u6708 7\\u6708 8\\u6708 9\\u6708 10\\u6708 11\\u6708 12\\u6708".split(" "),\nSTANDALONESHORTMONTHS:"1\\u6708 2\\u6708 3\\u6708 4\\u6708 5\\u6708 6\\u6708 7\\u6708 8\\u6708 9\\u6708 10\\u6708 11\\u6708 12\\u6708".split(" "),WEEKDAYS:"\\u661f\\u671f\\u65e5 \\u661f\\u671f\\u4e00 \\u661f\\u671f\\u4e8c \\u661f\\u671f\\u4e09 \\u661f\\u671f\\u56db \\u661f\\u671f\\u4e94 \\u661f\\u671f\\u516d".split(" "),STANDALONEWEEKDAYS:"\\u661f\\u671f\\u65e5 \\u661f\\u671f\\u4e00 \\u661f\\u671f\\u4e8c \\u661f\\u671f\\u4e09 \\u661f\\u671f\\u56db \\u661f\\u671f\\u4e94 \\u661f\\u671f\\u516d".split(" "),SHORTWEEKDAYS:"\\u9031\\u65e5 \\u9031\\u4e00 \\u9031\\u4e8c \\u9031\\u4e09 \\u9031\\u56db \\u9031\\u4e94 \\u9031\\u516d".split(" "),\nSTANDALONESHORTWEEKDAYS:"\\u9031\\u65e5 \\u9031\\u4e00 \\u9031\\u4e8c \\u9031\\u4e09 \\u9031\\u56db \\u9031\\u4e94 \\u9031\\u516d".split(" "),NARROWWEEKDAYS:"\\u65e5\\u4e00\\u4e8c\\u4e09\\u56db\\u4e94\\u516d".split(""),STANDALONENARROWWEEKDAYS:"\\u65e5\\u4e00\\u4e8c\\u4e09\\u56db\\u4e94\\u516d".split(""),SHORTQUARTERS:["Q1","Q2","Q3","Q4"],QUARTERS:["\\u7b2c1\\u5b63","\\u7b2c2\\u5b63","\\u7b2c3\\u5b63","\\u7b2c4\\u5b63"],AMPMS:["\\u4e0a\\u5348","\\u4e0b\\u5348"],DATEFORMATS:["y\\u5e74M\\u6708d\\u65e5EEEE","y\\u5e74M\\u6708d\\u65e5","y\\u5e74M\\u6708d\\u65e5",\n"d/M/y"],TIMEFORMATS:["ah:mm:ss [zzzz]","ah:mm:ss [z]","ah:mm:ss","ah:mm"],DATETIMEFORMATS:["{1} {0}","{1} {0}","{1} {0}","{1} {0}"],FIRSTDAYOFWEEK:6,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:5};\ngoog.i18n.DateTimeSymbols_zh_TW={ERAS:["\\u897f\\u5143\\u524d","\\u897f\\u5143"],ERANAMES:["\\u897f\\u5143\\u524d","\\u897f\\u5143"],NARROWMONTHS:"1 2 3 4 5 6 7 8 9 10 11 12".split(" "),STANDALONENARROWMONTHS:"1 2 3 4 5 6 7 8 9 10 11 12".split(" "),MONTHS:"1\\u6708 2\\u6708 3\\u6708 4\\u6708 5\\u6708 6\\u6708 7\\u6708 8\\u6708 9\\u6708 10\\u6708 11\\u6708 12\\u6708".split(" "),STANDALONEMONTHS:"1\\u6708 2\\u6708 3\\u6708 4\\u6708 5\\u6708 6\\u6708 7\\u6708 8\\u6708 9\\u6708 10\\u6708 11\\u6708 12\\u6708".split(" "),SHORTMONTHS:"1\\u6708 2\\u6708 3\\u6708 4\\u6708 5\\u6708 6\\u6708 7\\u6708 8\\u6708 9\\u6708 10\\u6708 11\\u6708 12\\u6708".split(" "),\nSTANDALONESHORTMONTHS:"1\\u6708 2\\u6708 3\\u6708 4\\u6708 5\\u6708 6\\u6708 7\\u6708 8\\u6708 9\\u6708 10\\u6708 11\\u6708 12\\u6708".split(" "),WEEKDAYS:"\\u661f\\u671f\\u65e5 \\u661f\\u671f\\u4e00 \\u661f\\u671f\\u4e8c \\u661f\\u671f\\u4e09 \\u661f\\u671f\\u56db \\u661f\\u671f\\u4e94 \\u661f\\u671f\\u516d".split(" "),STANDALONEWEEKDAYS:"\\u661f\\u671f\\u65e5 \\u661f\\u671f\\u4e00 \\u661f\\u671f\\u4e8c \\u661f\\u671f\\u4e09 \\u661f\\u671f\\u56db \\u661f\\u671f\\u4e94 \\u661f\\u671f\\u516d".split(" "),SHORTWEEKDAYS:"\\u9031\\u65e5 \\u9031\\u4e00 \\u9031\\u4e8c \\u9031\\u4e09 \\u9031\\u56db \\u9031\\u4e94 \\u9031\\u516d".split(" "),\nSTANDALONESHORTWEEKDAYS:"\\u9031\\u65e5 \\u9031\\u4e00 \\u9031\\u4e8c \\u9031\\u4e09 \\u9031\\u56db \\u9031\\u4e94 \\u9031\\u516d".split(" "),NARROWWEEKDAYS:"\\u65e5\\u4e00\\u4e8c\\u4e09\\u56db\\u4e94\\u516d".split(""),STANDALONENARROWWEEKDAYS:"\\u65e5\\u4e00\\u4e8c\\u4e09\\u56db\\u4e94\\u516d".split(""),SHORTQUARTERS:["1\\u5b63","2\\u5b63","3\\u5b63","4\\u5b63"],QUARTERS:["\\u7b2c1\\u5b63","\\u7b2c2\\u5b63","\\u7b2c3\\u5b63","\\u7b2c4\\u5b63"],AMPMS:["\\u4e0a\\u5348","\\u4e0b\\u5348"],DATEFORMATS:["y\\u5e74M\\u6708d\\u65e5 EEEE","y\\u5e74M\\u6708d\\u65e5",\n"y\\u5e74M\\u6708d\\u65e5","y/M/d"],TIMEFORMATS:["ah:mm:ss [zzzz]","ah:mm:ss [z]","ah:mm:ss","ah:mm"],DATETIMEFORMATS:["{1} {0}","{1} {0}","{1} {0}","{1} {0}"],FIRSTDAYOFWEEK:6,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:5};\ngoog.i18n.DateTimeSymbols_zu={ERAS:["BC","AD"],ERANAMES:["BC","AD"],NARROWMONTHS:"JFMEMJJASOND".split(""),STANDALONENARROWMONTHS:"JFMAMJJASOND".split(""),MONTHS:"Januwari Februwari Mashi Ephreli Meyi Juni Julayi Agasti Septhemba Okthoba Novemba Disemba".split(" "),STANDALONEMONTHS:"Januwari Februwari Mashi Ephreli Meyi Juni Julayi Agasti Septhemba Okthoba Novemba Disemba".split(" "),SHORTMONTHS:"Jan Feb Mas Eph Mey Jun Jul Aga Sep Okt Nov Dis".split(" "),STANDALONESHORTMONTHS:"Jan Feb Mas Eph Mey Jun Jul Aga Sep Okt Nov Dis".split(" "),\nWEEKDAYS:"ISonto UMsombuluko ULwesibili ULwesithathu ULwesine ULwesihlanu UMgqibelo".split(" "),STANDALONEWEEKDAYS:"ISonto UMsombuluko ULwesibili ULwesithathu ULwesine ULwesihlanu UMgqibelo".split(" "),SHORTWEEKDAYS:"Son Mso Bil Tha Sin Hla Mgq".split(" "),STANDALONESHORTWEEKDAYS:"Son Mso Bil Tha Sin Hla Mgq".split(" "),NARROWWEEKDAYS:"SMBTSHM".split(""),STANDALONENARROWWEEKDAYS:"SMBTSHM".split(""),SHORTQUARTERS:["Q1","Q2","Q3","Q4"],QUARTERS:["ikota yesi-1","ikota yesi-2","ikota yesi-3","ikota yesi-4"],\nAMPMS:["AM","PM"],DATEFORMATS:["EEEE, MMMM d, y","MMMM d, y","MMM d, y","M/d/yy"],TIMEFORMATS:["h:mm:ss a zzzz","h:mm:ss a z","h:mm:ss a","h:mm a"],DATETIMEFORMATS:["{1} {0}","{1} {0}","{1} {0}","{1} {0}"],FIRSTDAYOFWEEK:6,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:5};goog.i18n.DateTimeSymbolsType=function(){};goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_en;"af"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_af);"am"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_am);\n"ar"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_ar);"az"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_az);"be"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_be);"bg"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_bg);"bn"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_bn);"br"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_br);\n"bs"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_bs);"ca"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_ca);"chr"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_chr);"cs"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_cs);"cy"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_cy);"da"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_da);\n"de"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_de);if("de_AT"==goog.LOCALE||"de-AT"==goog.LOCALE)goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_de_AT;if("de_CH"==goog.LOCALE||"de-CH"==goog.LOCALE)goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_de_CH;"el"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_el);"en"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_en);\nif("en_AU"==goog.LOCALE||"en-AU"==goog.LOCALE)goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_en_AU;if("en_CA"==goog.LOCALE||"en-CA"==goog.LOCALE)goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_en_CA;if("en_GB"==goog.LOCALE||"en-GB"==goog.LOCALE)goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_en_GB;if("en_IE"==goog.LOCALE||"en-IE"==goog.LOCALE)goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_en_IE;if("en_IN"==goog.LOCALE||"en-IN"==goog.LOCALE)goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_en_IN;\nif("en_SG"==goog.LOCALE||"en-SG"==goog.LOCALE)goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_en_SG;if("en_US"==goog.LOCALE||"en-US"==goog.LOCALE)goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_en_US;if("en_ZA"==goog.LOCALE||"en-ZA"==goog.LOCALE)goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_en_ZA;"es"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_es);if("es_419"==goog.LOCALE||"es-419"==goog.LOCALE)goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_es_419;\nif("es_ES"==goog.LOCALE||"es-ES"==goog.LOCALE)goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_es_ES;if("es_MX"==goog.LOCALE||"es-MX"==goog.LOCALE)goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_es_MX;if("es_US"==goog.LOCALE||"es-US"==goog.LOCALE)goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_es_US;"et"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_et);"eu"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_eu);\n"fa"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_fa);"fi"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_fi);"fil"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_fil);"fr"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_fr);if("fr_CA"==goog.LOCALE||"fr-CA"==goog.LOCALE)goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_fr_CA;"ga"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_ga);\n"gl"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_gl);"gsw"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_gsw);"gu"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_gu);"haw"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_haw);"he"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_he);"hi"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_hi);\n"hr"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_hr);"hu"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_hu);"hy"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_hy);"id"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_id);"in"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_in);"is"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_is);\n"it"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_it);"iw"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_iw);"ja"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_ja);"ka"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_ka);"kk"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_kk);"km"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_km);\n"kn"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_kn);"ko"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_ko);"ky"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_ky);"ln"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_ln);"lo"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_lo);"lt"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_lt);\n"lv"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_lv);"mk"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_mk);"ml"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_ml);"mn"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_mn);"mo"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_mo);"mr"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_mr);\n"ms"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_ms);"mt"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_mt);"my"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_my);"nb"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_nb);"ne"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_ne);"nl"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_nl);\n"no"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_no);if("no_NO"==goog.LOCALE||"no-NO"==goog.LOCALE)goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_no_NO;"or"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_or);"pa"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_pa);"pl"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_pl);"pt"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_pt);\nif("pt_BR"==goog.LOCALE||"pt-BR"==goog.LOCALE)goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_pt_BR;if("pt_PT"==goog.LOCALE||"pt-PT"==goog.LOCALE)goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_pt_PT;"ro"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_ro);"ru"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_ru);"sh"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_sh);"si"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_si);\n"sk"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_sk);"sl"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_sl);"sq"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_sq);"sr"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_sr);if("sr_Latn"==goog.LOCALE||"sr-Latn"==goog.LOCALE)goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_sr_Latn;"sv"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_sv);\n"sw"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_sw);"ta"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_ta);"te"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_te);"th"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_th);"tl"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_tl);"tr"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_tr);\n"uk"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_uk);"ur"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_ur);"uz"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_uz);"vi"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_vi);"zh"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_zh);if("zh_CN"==goog.LOCALE||"zh-CN"==goog.LOCALE)goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_zh_CN;\nif("zh_HK"==goog.LOCALE||"zh-HK"==goog.LOCALE)goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_zh_HK;if("zh_TW"==goog.LOCALE||"zh-TW"==goog.LOCALE)goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_zh_TW;"zu"==goog.LOCALE&&(goog.i18n.DateTimeSymbols=goog.i18n.DateTimeSymbols_zu);goog.date.weekDay={MON:0,TUE:1,WED:2,THU:3,FRI:4,SAT:5,SUN:6};goog.date.month={JAN:0,FEB:1,MAR:2,APR:3,MAY:4,JUN:5,JUL:6,AUG:7,SEP:8,OCT:9,NOV:10,DEC:11};goog.date.formatMonthAndYear=function(a,b){return goog.getMsg("{$monthName} {$yearNum}",{monthName:a,yearNum:b})};goog.date.splitDateStringRegex_=/^(\\d{4})(?:(?:-?(\\d{2})(?:-?(\\d{2}))?)|(?:-?(\\d{3}))|(?:-?W(\\d{2})(?:-?([1-7]))?))?$/;goog.date.splitTimeStringRegex_=/^(\\d{2})(?::?(\\d{2})(?::?(\\d{2})(\\.\\d+)?)?)?$/;\ngoog.date.splitTimezoneStringRegex_=/Z|(?:([-+])(\\d{2})(?::?(\\d{2}))?)$/;goog.date.splitDurationRegex_=/^(-)?P(?:(\\d+)Y)?(?:(\\d+)M)?(?:(\\d+)D)?(T(?:(\\d+)H)?(?:(\\d+)M)?(?:(\\d+(?:\\.\\d+)?)S)?)?$/;goog.date.MS_PER_DAY=864E5;goog.date.isLeapYear=function(a){return 0==a%4&&(0!=a%100||0==a%400)};goog.date.isLongIsoYear=function(a){var b=5*a+12-4*(Math.floor(a/100)-Math.floor(a/400)),b=b+(Math.floor((a-100)/400)-Math.floor((a-102)/400)),b=b+(Math.floor((a-200)/400)-Math.floor((a-199)/400));return 5>b%28};\ngoog.date.getNumberOfDaysInMonth=function(a,b){switch(b){case goog.date.month.FEB:return goog.date.isLeapYear(a)?29:28;case goog.date.month.JUN:case goog.date.month.SEP:case goog.date.month.NOV:case goog.date.month.APR:return 30}return 31};goog.date.isSameDay=function(a,b){var c=b||new Date(goog.now());return a.getDate()==c.getDate()&&goog.date.isSameMonth(a,c)};goog.date.isSameMonth=function(a,b){var c=b||new Date(goog.now());return a.getMonth()==c.getMonth()&&goog.date.isSameYear(a,c)};\ngoog.date.isSameYear=function(a,b){var c=b||new Date(goog.now());return a.getFullYear()==c.getFullYear()};goog.date.getWeekNumber=function(a,b,c,d,e){a=new Date(a,b,c);d=goog.isDef(d)?d:goog.date.weekDay.THU;e=e||goog.date.weekDay.MON;b=(a.getDay()+6)%7;e=a.valueOf()+((d-e+7)%7-(b-e+7)%7)*goog.date.MS_PER_DAY;d=(new Date((new Date(e)).getFullYear(),0,1)).valueOf();return Math.floor(Math.round((e-d)/goog.date.MS_PER_DAY)/7)+1};goog.date.min=function(a,b){return a<b?a:b};\ngoog.date.max=function(a,b){return a>b?a:b};goog.date.fromIsoString=function(a){var b=new goog.date.DateTime(2E3);return goog.date.setIso8601DateTime(b,a)?b:null};goog.date.setIso8601DateTime=function(a,b){b=goog.string.trim(b);var c=-1==b.indexOf("T")?" ":"T",c=b.split(c);return goog.date.setIso8601DateOnly_(a,c[0])&&(2>c.length||goog.date.setIso8601TimeOnly_(a,c[1]))};\ngoog.date.setIso8601DateOnly_=function(a,b){var c=b.match(goog.date.splitDateStringRegex_);if(!c)return!1;var d=Number(c[2]),e=Number(c[3]),f=Number(c[4]),g=Number(c[5]),h=Number(c[6])||1;a.setFullYear(Number(c[1]));f?(a.setDate(1),a.setMonth(0),a.add(new goog.date.Interval(goog.date.Interval.DAYS,f-1))):g?goog.date.setDateFromIso8601Week_(a,g,h):(d&&(a.setDate(1),a.setMonth(d-1)),e&&a.setDate(e));return!0};\ngoog.date.setDateFromIso8601Week_=function(a,b,c){a.setMonth(0);a.setDate(1);var d=a.getDay()||7;b=new goog.date.Interval(goog.date.Interval.DAYS,(4>=d?1-d:8-d)+(Number(c)+7*(Number(b)-1))-1);a.add(b)};\ngoog.date.setIso8601TimeOnly_=function(a,b){var c=b.match(goog.date.splitTimezoneStringRegex_),d=0;c&&("Z"!=c[0]&&(d=60*Number(c[2])+Number(c[3]),d*="-"==c[1]?1:-1),d-=a.getTimezoneOffset(),b=b.substr(0,b.length-c[0].length));c=b.match(goog.date.splitTimeStringRegex_);if(!c)return!1;a.setHours(Number(c[1]));a.setMinutes(Number(c[2])||0);a.setSeconds(Number(c[3])||0);a.setMilliseconds(c[4]?1E3*Number(c[4]):0);0!=d&&a.setTime(a.getTime()+6E4*d);return!0};\ngoog.date.Interval=function(a,b,c,d,e,f){goog.isString(a)?(this.years=a==goog.date.Interval.YEARS?b:0,this.months=a==goog.date.Interval.MONTHS?b:0,this.days=a==goog.date.Interval.DAYS?b:0,this.hours=a==goog.date.Interval.HOURS?b:0,this.minutes=a==goog.date.Interval.MINUTES?b:0,this.seconds=a==goog.date.Interval.SECONDS?b:0):(this.years=a||0,this.months=b||0,this.days=c||0,this.hours=d||0,this.minutes=e||0,this.seconds=f||0)};\ngoog.date.Interval.fromIsoString=function(a){a=a.match(goog.date.splitDurationRegex_);if(!a)return null;var b=!(a[6]||a[7]||a[8]);if(b&&!(a[2]||a[3]||a[4])||b&&a[5])return null;var b=a[1],c=parseInt(a[2],10)||0,d=parseInt(a[3],10)||0,e=parseInt(a[4],10)||0,f=parseInt(a[6],10)||0,g=parseInt(a[7],10)||0;a=parseFloat(a[8])||0;return b?new goog.date.Interval(-c,-d,-e,-f,-g,-a):new goog.date.Interval(c,d,e,f,g,a)};\ngoog.date.Interval.prototype.toIsoString=function(a){var b=Math.min(this.years,this.months,this.days,this.hours,this.minutes,this.seconds),c=Math.max(this.years,this.months,this.days,this.hours,this.minutes,this.seconds);if(0>b&&0<c)return null;if(!a&&0==b&&0==c)return"PT0S";c=[];0>b&&c.push("-");c.push("P");(this.years||a)&&c.push(Math.abs(this.years)+"Y");(this.months||a)&&c.push(Math.abs(this.months)+"M");(this.days||a)&&c.push(Math.abs(this.days)+"D");if(this.hours||this.minutes||this.seconds||\na)c.push("T"),(this.hours||a)&&c.push(Math.abs(this.hours)+"H"),(this.minutes||a)&&c.push(Math.abs(this.minutes)+"M"),(this.seconds||a)&&c.push(Math.abs(this.seconds)+"S");return c.join("")};goog.date.Interval.prototype.equals=function(a){return a.years==this.years&&a.months==this.months&&a.days==this.days&&a.hours==this.hours&&a.minutes==this.minutes&&a.seconds==this.seconds};\ngoog.date.Interval.prototype.clone=function(){return new goog.date.Interval(this.years,this.months,this.days,this.hours,this.minutes,this.seconds)};goog.date.Interval.YEARS="y";goog.date.Interval.MONTHS="m";goog.date.Interval.DAYS="d";goog.date.Interval.HOURS="h";goog.date.Interval.MINUTES="n";goog.date.Interval.SECONDS="s";goog.date.Interval.prototype.isZero=function(){return 0==this.years&&0==this.months&&0==this.days&&0==this.hours&&0==this.minutes&&0==this.seconds};\ngoog.date.Interval.prototype.getInverse=function(){return this.times(-1)};goog.date.Interval.prototype.times=function(a){return new goog.date.Interval(this.years*a,this.months*a,this.days*a,this.hours*a,this.minutes*a,this.seconds*a)};goog.date.Interval.prototype.getTotalSeconds=function(){goog.asserts.assert(0==this.years&&0==this.months);return 60*(60*(24*this.days+this.hours)+this.minutes)+this.seconds};\ngoog.date.Interval.prototype.add=function(a){this.years+=a.years;this.months+=a.months;this.days+=a.days;this.hours+=a.hours;this.minutes+=a.minutes;this.seconds+=a.seconds};\ngoog.date.Date=function(a,b,c){goog.isNumber(a)?(this.date=this.buildDate_(a,b||0,c||1),this.maybeFixDst_(c||1)):goog.isObject(a)?(this.date=this.buildDate_(a.getFullYear(),a.getMonth(),a.getDate()),this.maybeFixDst_(a.getDate())):(this.date=new Date(goog.now()),a=this.date.getDate(),this.date.setHours(0),this.date.setMinutes(0),this.date.setSeconds(0),this.date.setMilliseconds(0),this.maybeFixDst_(a))};\ngoog.date.Date.prototype.buildDate_=function(a,b,c){b=new Date(a,b,c);0<=a&&100>a&&b.setFullYear(b.getFullYear()-1900);return b};goog.date.Date.prototype.firstDayOfWeek_=goog.i18n.DateTimeSymbols.FIRSTDAYOFWEEK;goog.date.Date.prototype.firstWeekCutOffDay_=goog.i18n.DateTimeSymbols.FIRSTWEEKCUTOFFDAY;goog.date.Date.prototype.clone=function(){var a=new goog.date.Date(this.date);a.firstDayOfWeek_=this.firstDayOfWeek_;a.firstWeekCutOffDay_=this.firstWeekCutOffDay_;return a};\ngoog.date.Date.prototype.getFullYear=function(){return this.date.getFullYear()};goog.date.Date.prototype.getYear=function(){return this.getFullYear()};goog.date.Date.prototype.getMonth=function(){return this.date.getMonth()};goog.date.Date.prototype.getDate=function(){return this.date.getDate()};goog.date.Date.prototype.getTime=function(){return this.date.getTime()};goog.date.Date.prototype.getDay=function(){return this.date.getDay()};\ngoog.date.Date.prototype.getIsoWeekday=function(){return(this.getDay()+6)%7};goog.date.Date.prototype.getWeekday=function(){return(this.getIsoWeekday()-this.firstDayOfWeek_+7)%7};goog.date.Date.prototype.getUTCFullYear=function(){return this.date.getUTCFullYear()};goog.date.Date.prototype.getUTCMonth=function(){return this.date.getUTCMonth()};goog.date.Date.prototype.getUTCDate=function(){return this.date.getUTCDate()};goog.date.Date.prototype.getUTCDay=function(){return this.date.getDay()};\ngoog.date.Date.prototype.getUTCHours=function(){return this.date.getUTCHours()};goog.date.Date.prototype.getUTCMinutes=function(){return this.date.getUTCMinutes()};goog.date.Date.prototype.getUTCIsoWeekday=function(){return(this.date.getUTCDay()+6)%7};goog.date.Date.prototype.getUTCWeekday=function(){return(this.getUTCIsoWeekday()-this.firstDayOfWeek_+7)%7};goog.date.Date.prototype.getFirstDayOfWeek=function(){return this.firstDayOfWeek_};goog.date.Date.prototype.getFirstWeekCutOffDay=function(){return this.firstWeekCutOffDay_};\ngoog.date.Date.prototype.getNumberOfDaysInMonth=function(){return goog.date.getNumberOfDaysInMonth(this.getFullYear(),this.getMonth())};goog.date.Date.prototype.getWeekNumber=function(){return goog.date.getWeekNumber(this.getFullYear(),this.getMonth(),this.getDate(),this.firstWeekCutOffDay_,this.firstDayOfWeek_)};goog.date.Date.prototype.getDayOfYear=function(){for(var a=this.getDate(),b=this.getFullYear(),c=this.getMonth()-1;0<=c;c--)a+=goog.date.getNumberOfDaysInMonth(b,c);return a};\ngoog.date.Date.prototype.getTimezoneOffset=function(){return this.date.getTimezoneOffset()};goog.date.Date.prototype.getTimezoneOffsetString=function(){var a;a=this.getTimezoneOffset();if(0==a)a="Z";else{var b=Math.abs(a)/60,c=Math.floor(b),b=60*(b-c);a=(0<a?"-":"+")+goog.string.padNumber(c,2)+":"+goog.string.padNumber(b,2)}return a};goog.date.Date.prototype.set=function(a){this.date=new Date(a.getFullYear(),a.getMonth(),a.getDate())};goog.date.Date.prototype.setFullYear=function(a){this.date.setFullYear(a)};\ngoog.date.Date.prototype.setYear=function(a){this.setFullYear(a)};goog.date.Date.prototype.setMonth=function(a){this.date.setMonth(a)};goog.date.Date.prototype.setDate=function(a){this.date.setDate(a)};goog.date.Date.prototype.setTime=function(a){this.date.setTime(a)};goog.date.Date.prototype.setUTCFullYear=function(a){this.date.setUTCFullYear(a)};goog.date.Date.prototype.setUTCMonth=function(a){this.date.setUTCMonth(a)};goog.date.Date.prototype.setUTCDate=function(a){this.date.setUTCDate(a)};\ngoog.date.Date.prototype.setFirstDayOfWeek=function(a){this.firstDayOfWeek_=a};goog.date.Date.prototype.setFirstWeekCutOffDay=function(a){this.firstWeekCutOffDay_=a};\ngoog.date.Date.prototype.add=function(a){if(a.years||a.months){var b=this.getMonth()+a.months+12*a.years,c=this.getYear()+Math.floor(b/12),b=b%12;0>b&&(b+=12);var d=goog.date.getNumberOfDaysInMonth(c,b),d=Math.min(d,this.getDate());this.setDate(1);this.setFullYear(c);this.setMonth(b);this.setDate(d)}a.days&&(b=new Date(this.getYear(),this.getMonth(),this.getDate(),12),a=new Date(b.getTime()+864E5*a.days),this.setDate(1),this.setFullYear(a.getFullYear()),this.setMonth(a.getMonth()),this.setDate(a.getDate()),\nthis.maybeFixDst_(a.getDate()))};goog.date.Date.prototype.toIsoString=function(a,b){return[this.getFullYear(),goog.string.padNumber(this.getMonth()+1,2),goog.string.padNumber(this.getDate(),2)].join(a?"-":"")+(b?this.getTimezoneOffsetString():"")};goog.date.Date.prototype.toUTCIsoString=function(a,b){return[this.getUTCFullYear(),goog.string.padNumber(this.getUTCMonth()+1,2),goog.string.padNumber(this.getUTCDate(),2)].join(a?"-":"")+(b?"Z":"")};\ngoog.date.Date.prototype.equals=function(a){return!(!a||this.getYear()!=a.getYear()||this.getMonth()!=a.getMonth()||this.getDate()!=a.getDate())};goog.date.Date.prototype.toString=function(){return this.toIsoString()};goog.date.Date.prototype.maybeFixDst_=function(a){this.getDate()!=a&&(a=this.getDate()<a?1:-1,this.date.setUTCHours(this.date.getUTCHours()+a))};goog.date.Date.prototype.valueOf=function(){return this.date.valueOf()};goog.date.Date.compare=function(a,b){return a.getTime()-b.getTime()};\ngoog.date.DateTime=function(a,b,c,d,e,f,g){goog.isNumber(a)?this.date=new Date(a,b||0,c||1,d||0,e||0,f||0,g||0):this.date=new Date(a&&a.getTime?a.getTime():goog.now())};goog.inherits(goog.date.DateTime,goog.date.Date);goog.date.DateTime.fromTimestamp=function(a){var b=new goog.date.DateTime;b.setTime(a);return b};goog.date.DateTime.fromRfc822String=function(a){a=new Date(a);return isNaN(a.getTime())?null:new goog.date.DateTime(a)};goog.date.DateTime.prototype.getHours=function(){return this.date.getHours()};\ngoog.date.DateTime.prototype.getMinutes=function(){return this.date.getMinutes()};goog.date.DateTime.prototype.getSeconds=function(){return this.date.getSeconds()};goog.date.DateTime.prototype.getMilliseconds=function(){return this.date.getMilliseconds()};goog.date.DateTime.prototype.getUTCDay=function(){return this.date.getUTCDay()};goog.date.DateTime.prototype.getUTCHours=function(){return this.date.getUTCHours()};goog.date.DateTime.prototype.getUTCMinutes=function(){return this.date.getUTCMinutes()};\ngoog.date.DateTime.prototype.getUTCSeconds=function(){return this.date.getUTCSeconds()};goog.date.DateTime.prototype.getUTCMilliseconds=function(){return this.date.getUTCMilliseconds()};goog.date.DateTime.prototype.setHours=function(a){this.date.setHours(a)};goog.date.DateTime.prototype.setMinutes=function(a){this.date.setMinutes(a)};goog.date.DateTime.prototype.setSeconds=function(a){this.date.setSeconds(a)};goog.date.DateTime.prototype.setMilliseconds=function(a){this.date.setMilliseconds(a)};\ngoog.date.DateTime.prototype.setUTCHours=function(a){this.date.setUTCHours(a)};goog.date.DateTime.prototype.setUTCMinutes=function(a){this.date.setUTCMinutes(a)};goog.date.DateTime.prototype.setUTCSeconds=function(a){this.date.setUTCSeconds(a)};goog.date.DateTime.prototype.setUTCMilliseconds=function(a){this.date.setUTCMilliseconds(a)};goog.date.DateTime.prototype.isMidnight=function(){return 0==this.getHours()&&0==this.getMinutes()&&0==this.getSeconds()&&0==this.getMilliseconds()};\ngoog.date.DateTime.prototype.add=function(a){goog.date.Date.prototype.add.call(this,a);a.hours&&this.setUTCHours(this.date.getUTCHours()+a.hours);a.minutes&&this.setUTCMinutes(this.date.getUTCMinutes()+a.minutes);a.seconds&&this.setUTCSeconds(this.date.getUTCSeconds()+a.seconds)};\ngoog.date.DateTime.prototype.toIsoString=function(a,b){var c=goog.date.Date.prototype.toIsoString.call(this,a);return a?c+" "+goog.string.padNumber(this.getHours(),2)+":"+goog.string.padNumber(this.getMinutes(),2)+":"+goog.string.padNumber(this.getSeconds(),2)+(b?this.getTimezoneOffsetString():""):c+"T"+goog.string.padNumber(this.getHours(),2)+goog.string.padNumber(this.getMinutes(),2)+goog.string.padNumber(this.getSeconds(),2)+(b?this.getTimezoneOffsetString():"")};\ngoog.date.DateTime.prototype.toXmlDateTime=function(a){return goog.date.Date.prototype.toIsoString.call(this,!0)+"T"+goog.string.padNumber(this.getHours(),2)+":"+goog.string.padNumber(this.getMinutes(),2)+":"+goog.string.padNumber(this.getSeconds(),2)+(a?this.getTimezoneOffsetString():"")};\ngoog.date.DateTime.prototype.toUTCIsoString=function(a,b){var c=goog.date.Date.prototype.toUTCIsoString.call(this,a);return a?c+" "+goog.string.padNumber(this.getUTCHours(),2)+":"+goog.string.padNumber(this.getUTCMinutes(),2)+":"+goog.string.padNumber(this.getUTCSeconds(),2)+(b?"Z":""):c+"T"+goog.string.padNumber(this.getUTCHours(),2)+goog.string.padNumber(this.getUTCMinutes(),2)+goog.string.padNumber(this.getUTCSeconds(),2)+(b?"Z":"")};\ngoog.date.DateTime.prototype.equals=function(a){return this.getTime()==a.getTime()};goog.date.DateTime.prototype.toString=function(){return this.toIsoString()};goog.date.DateTime.prototype.toUsTimeString=function(a,b,c){var d=this.getHours();goog.isDef(b)||(b=!0);var e=12==d;12<d&&(d-=12,e=!0);0==d&&b&&(d=12);a=a?goog.string.padNumber(d,2):String(d);d=this.getMinutes();if(!c||0<d)a+=":"+goog.string.padNumber(d,2);b&&(b=goog.getMsg("am"),c=goog.getMsg("pm"),a+=e?c:b);return a};\ngoog.date.DateTime.prototype.toIsoTimeString=function(a){var b=this.getHours(),b=goog.string.padNumber(b,2)+":"+goog.string.padNumber(this.getMinutes(),2);if(!goog.isDef(a)||a)b+=":"+goog.string.padNumber(this.getSeconds(),2);return b};goog.date.DateTime.prototype.clone=function(){var a=new goog.date.DateTime(this.date);a.setFirstDayOfWeek(this.getFirstDayOfWeek());a.setFirstWeekCutOffDay(this.getFirstWeekCutOffDay());return a};goog.date.DateRange=function(a,b){this.startDate_=a;this.endDate_=b};goog.date.DateRange.MINIMUM_DATE=new goog.date.Date(0,0,1);goog.date.DateRange.MAXIMUM_DATE=new goog.date.Date(9999,11,31);goog.date.DateRange.prototype.getStartDate=function(){return this.startDate_};goog.date.DateRange.prototype.getEndDate=function(){return this.endDate_};goog.date.DateRange.prototype.contains=function(a){return a.valueOf()>=this.startDate_.valueOf()&&a.valueOf()<=this.endDate_.valueOf()};\ngoog.date.DateRange.prototype.iterator=function(){return new goog.date.DateRange.Iterator(this)};goog.date.DateRange.equals=function(a,b){return a===b?!0:null==a||null==b?!1:a.startDate_.equals(b.startDate_)&&a.endDate_.equals(b.endDate_)};goog.date.DateRange.offsetInDays_=function(a,b){var c=a.clone();c.add(new goog.date.Interval(goog.date.Interval.DAYS,b));return c};\ngoog.date.DateRange.offsetInMonths_=function(a,b){var c=a.clone();c.setDate(1);c.add(new goog.date.Interval(goog.date.Interval.MONTHS,b));return c};goog.date.DateRange.yesterday=function(a){a=goog.date.DateRange.cloneOrCreate_(a);a=goog.date.DateRange.offsetInDays_(a,-1);return new goog.date.DateRange(a,a.clone())};goog.date.DateRange.today=function(a){a=goog.date.DateRange.cloneOrCreate_(a);return new goog.date.DateRange(a,a.clone())};\ngoog.date.DateRange.last7Days=function(a){a=goog.date.DateRange.cloneOrCreate_(a);var b=goog.date.DateRange.offsetInDays_(a,-1);return new goog.date.DateRange(goog.date.DateRange.offsetInDays_(a,-7),b)};goog.date.DateRange.thisMonth=function(a){a=goog.date.DateRange.cloneOrCreate_(a);return new goog.date.DateRange(goog.date.DateRange.offsetInMonths_(a,0),goog.date.DateRange.offsetInDays_(goog.date.DateRange.offsetInMonths_(a,1),-1))};\ngoog.date.DateRange.lastMonth=function(a){a=goog.date.DateRange.cloneOrCreate_(a);return new goog.date.DateRange(goog.date.DateRange.offsetInMonths_(a,-1),goog.date.DateRange.offsetInDays_(goog.date.DateRange.offsetInMonths_(a,0),-1))};goog.date.DateRange.thisWeek=function(a){a=goog.date.DateRange.cloneOrCreate_(a);var b=a.getIsoWeekday(),c=a.getFirstDayOfWeek();a=goog.date.DateRange.offsetInDays_(a,-(b>=c?b-c:b+(7-c)));b=goog.date.DateRange.offsetInDays_(a,6);return new goog.date.DateRange(a,b)};\ngoog.date.DateRange.lastWeek=function(a){var b=goog.date.DateRange.thisWeek(a);a=goog.date.DateRange.offsetInDays_(b.getStartDate(),-7);b=goog.date.DateRange.offsetInDays_(b.getEndDate(),-7);return new goog.date.DateRange(a,b)};goog.date.DateRange.lastBusinessWeek=function(a){a=goog.date.DateRange.cloneOrCreate_(a);a=goog.date.DateRange.offsetInDays_(a,-7-a.getIsoWeekday());var b=goog.date.DateRange.offsetInDays_(a,4);return new goog.date.DateRange(a,b)};\ngoog.date.DateRange.allTime=function(a){return new goog.date.DateRange(goog.date.DateRange.MINIMUM_DATE,goog.date.DateRange.MAXIMUM_DATE)};goog.date.DateRange.StandardDateRangeKeys={YESTERDAY:"yesterday",TODAY:"today",LAST_7_DAYS:"last7days",THIS_MONTH:"thismonth",LAST_MONTH:"lastmonth",THIS_WEEK:"thisweek",LAST_WEEK:"lastweek",LAST_BUSINESS_WEEK:"lastbusinessweek",ALL_TIME:"alltime"};\ngoog.date.DateRange.standardDateRange=function(a,b){switch(a){case goog.date.DateRange.StandardDateRangeKeys.YESTERDAY:return goog.date.DateRange.yesterday(b);case goog.date.DateRange.StandardDateRangeKeys.TODAY:return goog.date.DateRange.today(b);case goog.date.DateRange.StandardDateRangeKeys.LAST_7_DAYS:return goog.date.DateRange.last7Days(b);case goog.date.DateRange.StandardDateRangeKeys.THIS_MONTH:return goog.date.DateRange.thisMonth(b);case goog.date.DateRange.StandardDateRangeKeys.LAST_MONTH:return goog.date.DateRange.lastMonth(b);\ncase goog.date.DateRange.StandardDateRangeKeys.THIS_WEEK:return goog.date.DateRange.thisWeek(b);case goog.date.DateRange.StandardDateRangeKeys.LAST_WEEK:return goog.date.DateRange.lastWeek(b);case goog.date.DateRange.StandardDateRangeKeys.LAST_BUSINESS_WEEK:return goog.date.DateRange.lastBusinessWeek(b);case goog.date.DateRange.StandardDateRangeKeys.ALL_TIME:return goog.date.DateRange.allTime(b);default:throw Error("no such date range key: "+a);}};\ngoog.date.DateRange.cloneOrCreate_=function(a){return a?a.clone():new goog.date.Date};goog.date.DateRange.Iterator=function(a){this.nextDate_=a.getStartDate().clone();this.endDate_=Number(a.getEndDate().toIsoString())};goog.inherits(goog.date.DateRange.Iterator,goog.iter.Iterator);\ngoog.date.DateRange.Iterator.prototype.next=function(){if(Number(this.nextDate_.toIsoString())>this.endDate_)throw goog.iter.StopIteration;var a=this.nextDate_.clone();this.nextDate_.add(new goog.date.Interval(goog.date.Interval.DAYS,1));return a};goog.i18n.TimeZone=function(){};goog.i18n.TimeZone.MILLISECONDS_PER_HOUR_=36E5;goog.i18n.TimeZone.NameType={STD_SHORT_NAME:0,STD_LONG_NAME:1,DLT_SHORT_NAME:2,DLT_LONG_NAME:3};goog.i18n.TimeZone.createTimeZone=function(a){if("number"==typeof a)return goog.i18n.TimeZone.createSimpleTimeZone_(a);var b=new goog.i18n.TimeZone;b.timeZoneId_=a.id;b.standardOffset_=-a.std_offset;b.tzNames_=a.names;b.tzNamesExt_=a.names_ext;b.transitions_=a.transitions;return b};\ngoog.i18n.TimeZone.createSimpleTimeZone_=function(a){var b=new goog.i18n.TimeZone;b.standardOffset_=a;b.timeZoneId_=goog.i18n.TimeZone.composePosixTimeZoneID_(a);var c=goog.i18n.TimeZone.composeUTCString_(a);a=goog.i18n.TimeZone.composeGMTString_(a);b.tzNames_=[c,c];b.tzNamesExt_={STD_LONG_NAME_GMT:a,STD_GENERIC_LOCATION:a};b.transitions_=[];return b};\ngoog.i18n.TimeZone.composeGMTString_=function(a){var b=["GMT"];b.push(0>=a?"+":"-");a=Math.abs(a);b.push(goog.string.padNumber(Math.floor(a/60)%100,2),":",goog.string.padNumber(a%60,2));return b.join("")};goog.i18n.TimeZone.composePosixTimeZoneID_=function(a){if(0==a)return"Etc/GMT";var b=["Etc/GMT",0>a?"-":"+"];a=Math.abs(a);b.push(Math.floor(a/60)%100);a%=60;0!=a&&b.push(":",goog.string.padNumber(a,2));return b.join("")};\ngoog.i18n.TimeZone.composeUTCString_=function(a){if(0==a)return"UTC";var b=["UTC",0>a?"+":"-"];a=Math.abs(a);b.push(Math.floor(a/60)%100);a%=60;0!=a&&b.push(":",a);return b.join("")};goog.i18n.TimeZone.prototype.getTimeZoneData=function(){return{id:this.timeZoneId_,std_offset:-this.standardOffset_,names:goog.array.clone(this.tzNames_),names_ext:goog.object.clone(this.tzNamesExt_),transitions:goog.array.clone(this.transitions_)}};\ngoog.i18n.TimeZone.prototype.getDaylightAdjustment=function(a){a=Date.UTC(a.getUTCFullYear(),a.getUTCMonth(),a.getUTCDate(),a.getUTCHours(),a.getUTCMinutes())/goog.i18n.TimeZone.MILLISECONDS_PER_HOUR_;for(var b=0;b<this.transitions_.length&&a>=this.transitions_[b];)b+=2;return 0==b?0:this.transitions_[b-1]};goog.i18n.TimeZone.prototype.getGMTString=function(a){return goog.i18n.TimeZone.composeGMTString_(this.getOffset(a))};\ngoog.i18n.TimeZone.prototype.getLongName=function(a){return this.tzNames_[this.isDaylightTime(a)?goog.i18n.TimeZone.NameType.DLT_LONG_NAME:goog.i18n.TimeZone.NameType.STD_LONG_NAME]};goog.i18n.TimeZone.prototype.getOffset=function(a){return this.standardOffset_-this.getDaylightAdjustment(a)};goog.i18n.TimeZone.prototype.getRFCTimeZoneString=function(a){a=-this.getOffset(a);var b=[0>a?"-":"+"];a=Math.abs(a);b.push(goog.string.padNumber(Math.floor(a/60)%100,2),goog.string.padNumber(a%60,2));return b.join("")};\ngoog.i18n.TimeZone.prototype.getShortName=function(a){return this.tzNames_[this.isDaylightTime(a)?goog.i18n.TimeZone.NameType.DLT_SHORT_NAME:goog.i18n.TimeZone.NameType.STD_SHORT_NAME]};goog.i18n.TimeZone.prototype.getTimeZoneId=function(){return this.timeZoneId_};goog.i18n.TimeZone.prototype.isDaylightTime=function(a){return 0<this.getDaylightAdjustment(a)};\ngoog.i18n.TimeZone.prototype.getLongNameGMT=function(a){return this.isDaylightTime(a)?(goog.isDef(this.tzNamesExt_.DST_LONG_NAME_GMT),this.tzNamesExt_.DST_LONG_NAME_GMT):(goog.isDef(this.tzNamesExt_.STD_LONG_NAME_GMT),this.tzNamesExt_.STD_LONG_NAME_GMT)};goog.i18n.TimeZone.prototype.getGenericLocation=function(a){return this.isDaylightTime(a)?(goog.isDef(this.tzNamesExt_.DST_GENERIC_LOCATION),this.tzNamesExt_.DST_GENERIC_LOCATION):(goog.isDef(this.tzNamesExt_.STD_GENERIC_LOCATION),this.tzNamesExt_.STD_GENERIC_LOCATION)};goog.i18n.DateTimeFormat=function(a,b){goog.asserts.assert(goog.isDef(a),"Pattern must be defined");goog.asserts.assert(goog.isDef(b)||goog.isDef(goog.i18n.DateTimeSymbols),"goog.i18n.DateTimeSymbols or explicit symbols must be defined");this.patternParts_=[];this.dateTimeSymbols_=b||goog.i18n.DateTimeSymbols;"number"==typeof a?this.applyStandardPattern_(a):this.applyPattern_(a)};\ngoog.i18n.DateTimeFormat.Format={FULL_DATE:0,LONG_DATE:1,MEDIUM_DATE:2,SHORT_DATE:3,FULL_TIME:4,LONG_TIME:5,MEDIUM_TIME:6,SHORT_TIME:7,FULL_DATETIME:8,LONG_DATETIME:9,MEDIUM_DATETIME:10,SHORT_DATETIME:11};goog.i18n.DateTimeFormat.TOKENS_=[/^\\\'(?:[^\\\']|\\\'\\\')*(\\\'|$)/,/^(?:G+|y+|M+|k+|S+|E+|a+|h+|K+|H+|c+|L+|Q+|d+|m+|s+|v+|V+|w+|z+|Z+)/,/^[^\\\'GyMkSEahKHcLQdmsvVwzZ]+/];goog.i18n.DateTimeFormat.PartTypes_={QUOTED_STRING:0,FIELD:1,LITERAL:2};\ngoog.i18n.DateTimeFormat.getHours_=function(a){return a.getHours?a.getHours():0};\ngoog.i18n.DateTimeFormat.prototype.applyPattern_=function(a){for(goog.i18n.DateTimeFormat.removeRlmInPatterns_&&(a=a.replace(/\\u200f/g,""));a;){for(var b=a,c=0;c<goog.i18n.DateTimeFormat.TOKENS_.length;++c){var d=a.match(goog.i18n.DateTimeFormat.TOKENS_[c]);if(d){var e=d[0];a=a.substring(e.length);c==goog.i18n.DateTimeFormat.PartTypes_.QUOTED_STRING&&("\'\'"==e?e="\'":(e=e.substring(1,"\'"==d[1]?e.length-1:e.length),e=e.replace(/\\\'\\\'/g,"\'")));this.patternParts_.push({text:e,type:c});break}}if(b===a)throw Error("Malformed pattern part: "+\na);}};\ngoog.i18n.DateTimeFormat.prototype.format=function(a,b){if(!a)throw Error("The date to format must be non-null.");var c=b?6E4*(a.getTimezoneOffset()-b.getOffset(a)):0,d=c?new Date(a.getTime()+c):a,e=d;b&&d.getTimezoneOffset()!=a.getTimezoneOffset()&&(e=6E4*(d.getTimezoneOffset()-a.getTimezoneOffset()),d=new Date(d.getTime()+e),c+=0<c?-goog.date.MS_PER_DAY:goog.date.MS_PER_DAY,e=new Date(a.getTime()+c));for(var c=[],f=0;f<this.patternParts_.length;++f){var g=this.patternParts_[f].text;goog.i18n.DateTimeFormat.PartTypes_.FIELD==this.patternParts_[f].type?\nc.push(this.formatField_(g,a,d,e,b)):c.push(g)}return c.join("")};goog.i18n.DateTimeFormat.prototype.applyStandardPattern_=function(a){var b;if(4>a)b=this.dateTimeSymbols_.DATEFORMATS[a];else if(8>a)b=this.dateTimeSymbols_.TIMEFORMATS[a-4];else if(12>a)b=this.dateTimeSymbols_.DATETIMEFORMATS[a-8],b=b.replace("{1}",this.dateTimeSymbols_.DATEFORMATS[a-8]),b=b.replace("{0}",this.dateTimeSymbols_.TIMEFORMATS[a-8]);else{this.applyStandardPattern_(goog.i18n.DateTimeFormat.Format.MEDIUM_DATETIME);return}this.applyPattern_(b)};\ngoog.i18n.DateTimeFormat.prototype.localizeNumbers_=function(a){return goog.i18n.DateTimeFormat.localizeNumbers(a,this.dateTimeSymbols_)};goog.i18n.DateTimeFormat.enforceAsciiDigits_=!1;goog.i18n.DateTimeFormat.removeRlmInPatterns_=!1;goog.i18n.DateTimeFormat.setEnforceAsciiDigits=function(a){goog.i18n.DateTimeFormat.enforceAsciiDigits_=a;goog.i18n.DateTimeFormat.removeRlmInPatterns_=a};goog.i18n.DateTimeFormat.isEnforceAsciiDigits=function(){return goog.i18n.DateTimeFormat.enforceAsciiDigits_};\ngoog.i18n.DateTimeFormat.localizeNumbers=function(a,b){a=String(a);var c=b||goog.i18n.DateTimeSymbols;if(void 0===c.ZERODIGIT||goog.i18n.DateTimeFormat.enforceAsciiDigits_)return a;for(var d=[],e=0;e<a.length;e++){var f=a.charCodeAt(e);d.push(48<=f&&57>=f?String.fromCharCode(c.ZERODIGIT+f-48):a.charAt(e))}return d.join("")};goog.i18n.DateTimeFormat.prototype.formatEra_=function(a,b){var c=0<b.getFullYear()?1:0;return 4<=a?this.dateTimeSymbols_.ERANAMES[c]:this.dateTimeSymbols_.ERAS[c]};\ngoog.i18n.DateTimeFormat.prototype.formatYear_=function(a,b){var c=b.getFullYear();0>c&&(c=-c);2==a&&(c%=100);return this.localizeNumbers_(goog.string.padNumber(c,a))};goog.i18n.DateTimeFormat.prototype.formatMonth_=function(a,b){var c=b.getMonth();switch(a){case 5:return this.dateTimeSymbols_.NARROWMONTHS[c];case 4:return this.dateTimeSymbols_.MONTHS[c];case 3:return this.dateTimeSymbols_.SHORTMONTHS[c];default:return this.localizeNumbers_(goog.string.padNumber(c+1,a))}};\ngoog.i18n.DateTimeFormat.validateDateHasTime_=function(a){if(!(a.getHours&&a.getSeconds&&a.getMinutes))throw Error("The date to format has no time (probably a goog.date.Date). Use Date or goog.date.DateTime, or use a pattern without time fields.");};goog.i18n.DateTimeFormat.prototype.format24Hours_=function(a,b){goog.i18n.DateTimeFormat.validateDateHasTime_(b);var c=goog.i18n.DateTimeFormat.getHours_(b)||24;return this.localizeNumbers_(goog.string.padNumber(c,a))};\ngoog.i18n.DateTimeFormat.prototype.formatFractionalSeconds_=function(a,b){var c=b.getTime()%1E3/1E3;return this.localizeNumbers_(c.toFixed(Math.min(3,a)).substr(2)+(3<a?goog.string.padNumber(0,a-3):""))};goog.i18n.DateTimeFormat.prototype.formatDayOfWeek_=function(a,b){var c=b.getDay();return 4<=a?this.dateTimeSymbols_.WEEKDAYS[c]:this.dateTimeSymbols_.SHORTWEEKDAYS[c]};\ngoog.i18n.DateTimeFormat.prototype.formatAmPm_=function(a,b){goog.i18n.DateTimeFormat.validateDateHasTime_(b);var c=goog.i18n.DateTimeFormat.getHours_(b);return this.dateTimeSymbols_.AMPMS[12<=c&&24>c?1:0]};goog.i18n.DateTimeFormat.prototype.format1To12Hours_=function(a,b){goog.i18n.DateTimeFormat.validateDateHasTime_(b);var c=goog.i18n.DateTimeFormat.getHours_(b)%12||12;return this.localizeNumbers_(goog.string.padNumber(c,a))};\ngoog.i18n.DateTimeFormat.prototype.format0To11Hours_=function(a,b){goog.i18n.DateTimeFormat.validateDateHasTime_(b);var c=goog.i18n.DateTimeFormat.getHours_(b)%12;return this.localizeNumbers_(goog.string.padNumber(c,a))};goog.i18n.DateTimeFormat.prototype.format0To23Hours_=function(a,b){goog.i18n.DateTimeFormat.validateDateHasTime_(b);var c=goog.i18n.DateTimeFormat.getHours_(b);return this.localizeNumbers_(goog.string.padNumber(c,a))};\ngoog.i18n.DateTimeFormat.prototype.formatStandaloneDay_=function(a,b){var c=b.getDay();switch(a){case 5:return this.dateTimeSymbols_.STANDALONENARROWWEEKDAYS[c];case 4:return this.dateTimeSymbols_.STANDALONEWEEKDAYS[c];case 3:return this.dateTimeSymbols_.STANDALONESHORTWEEKDAYS[c];default:return this.localizeNumbers_(goog.string.padNumber(c,1))}};\ngoog.i18n.DateTimeFormat.prototype.formatStandaloneMonth_=function(a,b){var c=b.getMonth();switch(a){case 5:return this.dateTimeSymbols_.STANDALONENARROWMONTHS[c];case 4:return this.dateTimeSymbols_.STANDALONEMONTHS[c];case 3:return this.dateTimeSymbols_.STANDALONESHORTMONTHS[c];default:return this.localizeNumbers_(goog.string.padNumber(c+1,a))}};goog.i18n.DateTimeFormat.prototype.formatQuarter_=function(a,b){var c=Math.floor(b.getMonth()/3);return 4>a?this.dateTimeSymbols_.SHORTQUARTERS[c]:this.dateTimeSymbols_.QUARTERS[c]};\ngoog.i18n.DateTimeFormat.prototype.formatDate_=function(a,b){return this.localizeNumbers_(goog.string.padNumber(b.getDate(),a))};goog.i18n.DateTimeFormat.prototype.formatMinutes_=function(a,b){goog.i18n.DateTimeFormat.validateDateHasTime_(b);return this.localizeNumbers_(goog.string.padNumber(b.getMinutes(),a))};goog.i18n.DateTimeFormat.prototype.formatSeconds_=function(a,b){goog.i18n.DateTimeFormat.validateDateHasTime_(b);return this.localizeNumbers_(goog.string.padNumber(b.getSeconds(),a))};\ngoog.i18n.DateTimeFormat.prototype.formatWeekOfYear_=function(a,b){var c=goog.date.getWeekNumber(b.getFullYear(),b.getMonth(),b.getDate(),this.dateTimeSymbols_.FIRSTWEEKCUTOFFDAY,this.dateTimeSymbols_.FIRSTDAYOFWEEK);return this.localizeNumbers_(goog.string.padNumber(c,a))};goog.i18n.DateTimeFormat.prototype.formatTimeZoneRFC_=function(a,b,c){c=c||goog.i18n.TimeZone.createTimeZone(b.getTimezoneOffset());return 4>a?c.getRFCTimeZoneString(b):this.localizeNumbers_(c.getGMTString(b))};\ngoog.i18n.DateTimeFormat.prototype.formatTimeZone_=function(a,b,c){c=c||goog.i18n.TimeZone.createTimeZone(b.getTimezoneOffset());return 4>a?c.getShortName(b):c.getLongName(b)};goog.i18n.DateTimeFormat.prototype.formatTimeZoneId_=function(a,b){b=b||goog.i18n.TimeZone.createTimeZone(a.getTimezoneOffset());return b.getTimeZoneId()};goog.i18n.DateTimeFormat.prototype.formatTimeZoneLocationId_=function(a,b,c){c=c||goog.i18n.TimeZone.createTimeZone(b.getTimezoneOffset());return 2>=a?c.getTimeZoneId():c.getGenericLocation(b)};\ngoog.i18n.DateTimeFormat.prototype.formatField_=function(a,b,c,d,e){var f=a.length;switch(a.charAt(0)){case "G":return this.formatEra_(f,c);case "y":return this.formatYear_(f,c);case "M":return this.formatMonth_(f,c);case "k":return this.format24Hours_(f,d);case "S":return this.formatFractionalSeconds_(f,d);case "E":return this.formatDayOfWeek_(f,c);case "a":return this.formatAmPm_(f,d);case "h":return this.format1To12Hours_(f,d);case "K":return this.format0To11Hours_(f,d);case "H":return this.format0To23Hours_(f,\nd);case "c":return this.formatStandaloneDay_(f,c);case "L":return this.formatStandaloneMonth_(f,c);case "Q":return this.formatQuarter_(f,c);case "d":return this.formatDate_(f,c);case "m":return this.formatMinutes_(f,d);case "s":return this.formatSeconds_(f,d);case "v":return this.formatTimeZoneId_(b,e);case "V":return this.formatTimeZoneLocationId_(f,b,e);case "w":return this.formatWeekOfYear_(f,d);case "z":return this.formatTimeZone_(f,b,e);case "Z":return this.formatTimeZoneRFC_(f,b,e);default:return""}};goog.i18n.DateTimePatterns_af={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"y G",YEAR_MONTH_ABBR:"MMM y",YEAR_MONTH_FULL:"MMMM y",MONTH_DAY_ABBR:"d MMM",MONTH_DAY_FULL:"dd MMM",MONTH_DAY_SHORT:"dd-MM",MONTH_DAY_MEDIUM:"d MMM",MONTH_DAY_YEAR_MEDIUM:"d MMM y",WEEKDAY_MONTH_DAY_MEDIUM:"EEE d MMM",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE, d MMM y",DAY_ABBR:"d"};\ngoog.i18n.DateTimePatterns_am={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"y G",YEAR_MONTH_ABBR:"MMM y",YEAR_MONTH_FULL:"MMMM y",MONTH_DAY_ABBR:"MMM d",MONTH_DAY_FULL:"MMMM dd",MONTH_DAY_SHORT:"M/d",MONTH_DAY_MEDIUM:"MMMM d",MONTH_DAY_YEAR_MEDIUM:"d MMM y",WEEKDAY_MONTH_DAY_MEDIUM:"EEE\\u1363 MMM d",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE\\u1363 MMM d y",DAY_ABBR:"d"};\ngoog.i18n.DateTimePatterns_ar={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"y G",YEAR_MONTH_ABBR:"MMM y",YEAR_MONTH_FULL:"MMMM y",MONTH_DAY_ABBR:"d MMM",MONTH_DAY_FULL:"dd MMMM",MONTH_DAY_SHORT:"d/\\u200fM",MONTH_DAY_MEDIUM:"d MMMM",MONTH_DAY_YEAR_MEDIUM:"d MMM\\u060c y",WEEKDAY_MONTH_DAY_MEDIUM:"EEE\\u060c d MMM",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE\\u060c d MMM\\u060c y",DAY_ABBR:"d"};\ngoog.i18n.DateTimePatterns_az={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"G y",YEAR_MONTH_ABBR:"MMM y",YEAR_MONTH_FULL:"y MMMM",MONTH_DAY_ABBR:"d MMM",MONTH_DAY_FULL:"MMMM dd",MONTH_DAY_SHORT:"dd.MM",MONTH_DAY_MEDIUM:"MMMM d",MONTH_DAY_YEAR_MEDIUM:"d MMM y",WEEKDAY_MONTH_DAY_MEDIUM:"d MMM, EEE",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"d MMM y, EEE",DAY_ABBR:"d"};\ngoog.i18n.DateTimePatterns_be={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"y G",YEAR_MONTH_ABBR:"LLL y",YEAR_MONTH_FULL:"LLLL y",MONTH_DAY_ABBR:"d MMM",MONTH_DAY_FULL:"dd MMMM",MONTH_DAY_SHORT:"d.M",MONTH_DAY_MEDIUM:"d MMMM",MONTH_DAY_YEAR_MEDIUM:"d MMM y",WEEKDAY_MONTH_DAY_MEDIUM:"EEE, d MMM",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE, d MMM y",DAY_ABBR:"d"};\ngoog.i18n.DateTimePatterns_bg={YEAR_FULL:"y \'\\u0433\'.",YEAR_FULL_WITH_ERA:"y \'\\u0433\'. G",YEAR_MONTH_ABBR:"MM.y \'\\u0433\'.",YEAR_MONTH_FULL:"MMMM y \'\\u0433\'.",MONTH_DAY_ABBR:"d.MM",MONTH_DAY_FULL:"d MMMM",MONTH_DAY_SHORT:"d.MM",MONTH_DAY_MEDIUM:"d MMMM",MONTH_DAY_YEAR_MEDIUM:"d.MM.y \'\\u0433\'.",WEEKDAY_MONTH_DAY_MEDIUM:"EEE, d.MM",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE, d.MM.y \'\\u0433\'.",DAY_ABBR:"d"};\ngoog.i18n.DateTimePatterns_bn={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"y G",YEAR_MONTH_ABBR:"MMM y",YEAR_MONTH_FULL:"MMMM y",MONTH_DAY_ABBR:"d MMM",MONTH_DAY_FULL:"dd MMMM",MONTH_DAY_SHORT:"d/M",MONTH_DAY_MEDIUM:"d MMMM",MONTH_DAY_YEAR_MEDIUM:"d MMM, y",WEEKDAY_MONTH_DAY_MEDIUM:"EEE d MMM",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE, d MMM, y",DAY_ABBR:"d"};\ngoog.i18n.DateTimePatterns_br={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"y G",YEAR_MONTH_ABBR:"MMM y",YEAR_MONTH_FULL:"y MMMM",MONTH_DAY_ABBR:"d MMM",MONTH_DAY_FULL:"MMMM dd",MONTH_DAY_SHORT:"dd/MM",MONTH_DAY_MEDIUM:"MMMM d",MONTH_DAY_YEAR_MEDIUM:"d MMM y",WEEKDAY_MONTH_DAY_MEDIUM:"EEE d MMM",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE d MMM y",DAY_ABBR:"d"};\ngoog.i18n.DateTimePatterns_bs={YEAR_FULL:"y.",YEAR_FULL_WITH_ERA:"y. G",YEAR_MONTH_ABBR:"MMM y.",YEAR_MONTH_FULL:"LLLL y.",MONTH_DAY_ABBR:"dd. MMM",MONTH_DAY_FULL:"dd. MMMM",MONTH_DAY_SHORT:"dd.MM.",MONTH_DAY_MEDIUM:"d. MMMM",MONTH_DAY_YEAR_MEDIUM:"dd. MMM y.",WEEKDAY_MONTH_DAY_MEDIUM:"EEE, dd. MMM",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE, dd. MMM y.",DAY_ABBR:"d"};\ngoog.i18n.DateTimePatterns_ca={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"y G",YEAR_MONTH_ABBR:"LLL \'de\' y",YEAR_MONTH_FULL:"LLLL \'de\' y",MONTH_DAY_ABBR:"d MMM",MONTH_DAY_FULL:"dd MMMM",MONTH_DAY_SHORT:"d/M",MONTH_DAY_MEDIUM:"d MMMM",MONTH_DAY_YEAR_MEDIUM:"d MMM y",WEEKDAY_MONTH_DAY_MEDIUM:"EEE, d MMM",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE, d MMM y",DAY_ABBR:"d"};\ngoog.i18n.DateTimePatterns_chr={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"y G",YEAR_MONTH_ABBR:"MMM y",YEAR_MONTH_FULL:"MMMM y",MONTH_DAY_ABBR:"MMM d",MONTH_DAY_FULL:"MMMM dd",MONTH_DAY_SHORT:"M/d",MONTH_DAY_MEDIUM:"MMMM d",MONTH_DAY_YEAR_MEDIUM:"MMM d, y",WEEKDAY_MONTH_DAY_MEDIUM:"MMM d, EEE",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE, MMM d, y",DAY_ABBR:"d"};\ngoog.i18n.DateTimePatterns_cs={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"y G",YEAR_MONTH_ABBR:"LLLL y",YEAR_MONTH_FULL:"LLLL y",MONTH_DAY_ABBR:"d. M.",MONTH_DAY_FULL:"dd. MMMM",MONTH_DAY_SHORT:"d. M.",MONTH_DAY_MEDIUM:"d. MMMM",MONTH_DAY_YEAR_MEDIUM:"d. M. y",WEEKDAY_MONTH_DAY_MEDIUM:"EEE d. M.",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE d. M. y",DAY_ABBR:"d."};\ngoog.i18n.DateTimePatterns_cy={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"y G",YEAR_MONTH_ABBR:"MMM y",YEAR_MONTH_FULL:"MMMM y",MONTH_DAY_ABBR:"d MMM",MONTH_DAY_FULL:"MMMM dd",MONTH_DAY_SHORT:"d/M",MONTH_DAY_MEDIUM:"MMMM d",MONTH_DAY_YEAR_MEDIUM:"d MMM y",WEEKDAY_MONTH_DAY_MEDIUM:"EEE, d MMM",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE, d MMM y",DAY_ABBR:"d"};\ngoog.i18n.DateTimePatterns_da={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"y G",YEAR_MONTH_ABBR:"MMM y",YEAR_MONTH_FULL:"MMMM y",MONTH_DAY_ABBR:"d. MMM",MONTH_DAY_FULL:"dd. MMMM",MONTH_DAY_SHORT:"d/M",MONTH_DAY_MEDIUM:"d. MMMM",MONTH_DAY_YEAR_MEDIUM:"d. MMM y",WEEKDAY_MONTH_DAY_MEDIUM:"EEE d. MMM",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE d. MMM y",DAY_ABBR:"d."};\ngoog.i18n.DateTimePatterns_de={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"y G",YEAR_MONTH_ABBR:"MMM y",YEAR_MONTH_FULL:"MMMM y",MONTH_DAY_ABBR:"d. MMM",MONTH_DAY_FULL:"dd. MMMM",MONTH_DAY_SHORT:"d.M.",MONTH_DAY_MEDIUM:"d. MMMM",MONTH_DAY_YEAR_MEDIUM:"d. MMM y",WEEKDAY_MONTH_DAY_MEDIUM:"EEE, d. MMM",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE, d. MMM y",DAY_ABBR:"d"};goog.i18n.DateTimePatterns_de_AT=goog.i18n.DateTimePatterns_de;goog.i18n.DateTimePatterns_de_CH=goog.i18n.DateTimePatterns_de;\ngoog.i18n.DateTimePatterns_el={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"y G",YEAR_MONTH_ABBR:"MMM y",YEAR_MONTH_FULL:"MMMM y",MONTH_DAY_ABBR:"d MMM",MONTH_DAY_FULL:"dd MMMM",MONTH_DAY_SHORT:"d/M",MONTH_DAY_MEDIUM:"d MMMM",MONTH_DAY_YEAR_MEDIUM:"d MMM y",WEEKDAY_MONTH_DAY_MEDIUM:"EEE, d MMM",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE, d MMM y",DAY_ABBR:"d"};\ngoog.i18n.DateTimePatterns_en={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"y G",YEAR_MONTH_ABBR:"MMM y",YEAR_MONTH_FULL:"MMMM y",MONTH_DAY_ABBR:"MMM d",MONTH_DAY_FULL:"MMMM dd",MONTH_DAY_SHORT:"M/d",MONTH_DAY_MEDIUM:"MMMM d",MONTH_DAY_YEAR_MEDIUM:"MMM d, y",WEEKDAY_MONTH_DAY_MEDIUM:"EEE, MMM d",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE, MMM d, y",DAY_ABBR:"d"};\ngoog.i18n.DateTimePatterns_en_AU={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"y G",YEAR_MONTH_ABBR:"MMM y",YEAR_MONTH_FULL:"MMMM y",MONTH_DAY_ABBR:"d MMM",MONTH_DAY_FULL:"dd MMMM",MONTH_DAY_SHORT:"dd/MM",MONTH_DAY_MEDIUM:"d MMMM",MONTH_DAY_YEAR_MEDIUM:"d MMM y",WEEKDAY_MONTH_DAY_MEDIUM:"EEE, d MMM",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE, d MMM y",DAY_ABBR:"d"};\ngoog.i18n.DateTimePatterns_en_CA={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"y G",YEAR_MONTH_ABBR:"MMM y",YEAR_MONTH_FULL:"MMMM y",MONTH_DAY_ABBR:"MMM d",MONTH_DAY_FULL:"MMMM dd",MONTH_DAY_SHORT:"MM-dd",MONTH_DAY_MEDIUM:"MMMM d",MONTH_DAY_YEAR_MEDIUM:"MMM d, y",WEEKDAY_MONTH_DAY_MEDIUM:"EEE, MMM d",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE, MMM d, y",DAY_ABBR:"d"};\ngoog.i18n.DateTimePatterns_en_GB={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"y G",YEAR_MONTH_ABBR:"MMM y",YEAR_MONTH_FULL:"MMMM y",MONTH_DAY_ABBR:"d MMM",MONTH_DAY_FULL:"dd MMMM",MONTH_DAY_SHORT:"dd/MM",MONTH_DAY_MEDIUM:"d MMMM",MONTH_DAY_YEAR_MEDIUM:"d MMM y",WEEKDAY_MONTH_DAY_MEDIUM:"EEE, d MMM",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE, d MMM y",DAY_ABBR:"d"};\ngoog.i18n.DateTimePatterns_en_IE={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"y G",YEAR_MONTH_ABBR:"MMM y",YEAR_MONTH_FULL:"MMMM y",MONTH_DAY_ABBR:"d MMM",MONTH_DAY_FULL:"dd MMMM",MONTH_DAY_SHORT:"d/M",MONTH_DAY_MEDIUM:"d MMMM",MONTH_DAY_YEAR_MEDIUM:"d MMM y",WEEKDAY_MONTH_DAY_MEDIUM:"EEE, d MMM",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE d MMM y",DAY_ABBR:"d"};\ngoog.i18n.DateTimePatterns_en_IN={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"y G",YEAR_MONTH_ABBR:"MMM y",YEAR_MONTH_FULL:"MMMM y",MONTH_DAY_ABBR:"d MMM",MONTH_DAY_FULL:"dd MMMM",MONTH_DAY_SHORT:"dd/MM",MONTH_DAY_MEDIUM:"d MMMM",MONTH_DAY_YEAR_MEDIUM:"d MMM y",WEEKDAY_MONTH_DAY_MEDIUM:"EEE, d MMM",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE d MMM, y",DAY_ABBR:"d"};\ngoog.i18n.DateTimePatterns_en_SG={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"y G",YEAR_MONTH_ABBR:"MMM y",YEAR_MONTH_FULL:"MMMM y",MONTH_DAY_ABBR:"d MMM",MONTH_DAY_FULL:"dd MMMM",MONTH_DAY_SHORT:"dd/MM",MONTH_DAY_MEDIUM:"d MMMM",MONTH_DAY_YEAR_MEDIUM:"d MMM y",WEEKDAY_MONTH_DAY_MEDIUM:"EEE, d MMM",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE, d MMM y",DAY_ABBR:"d"};goog.i18n.DateTimePatterns_en_US=goog.i18n.DateTimePatterns_en;\ngoog.i18n.DateTimePatterns_en_ZA={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"y G",YEAR_MONTH_ABBR:"MMM y",YEAR_MONTH_FULL:"MMMM y",MONTH_DAY_ABBR:"dd MMM",MONTH_DAY_FULL:"dd MMMM",MONTH_DAY_SHORT:"MM/dd",MONTH_DAY_MEDIUM:"d MMMM",MONTH_DAY_YEAR_MEDIUM:"dd MMM y",WEEKDAY_MONTH_DAY_MEDIUM:"EEE, dd MMM",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE, dd MMM y",DAY_ABBR:"d"};\ngoog.i18n.DateTimePatterns_es={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"y G",YEAR_MONTH_ABBR:"MMM y",YEAR_MONTH_FULL:"MMMM \'de\' y",MONTH_DAY_ABBR:"d MMM",MONTH_DAY_FULL:"dd \'de\' MMMM",MONTH_DAY_SHORT:"d/M",MONTH_DAY_MEDIUM:"d \'de\' MMMM",MONTH_DAY_YEAR_MEDIUM:"d MMM y",WEEKDAY_MONTH_DAY_MEDIUM:"EEE, d MMM",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE, d MMM y",DAY_ABBR:"d"};\ngoog.i18n.DateTimePatterns_es_419={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"y G",YEAR_MONTH_ABBR:"MMMM \'de\' y",YEAR_MONTH_FULL:"MMMM \'de\' y",MONTH_DAY_ABBR:"d MMM",MONTH_DAY_FULL:"dd \'de\' MMMM",MONTH_DAY_SHORT:"d/M",MONTH_DAY_MEDIUM:"d \'de\' MMMM",MONTH_DAY_YEAR_MEDIUM:"d \'de\' MMMM \'de\' y",WEEKDAY_MONTH_DAY_MEDIUM:"EEE, d MMM",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE, d \'de\' MMM \'de\' y",DAY_ABBR:"d"};goog.i18n.DateTimePatterns_es_ES=goog.i18n.DateTimePatterns_es;\ngoog.i18n.DateTimePatterns_es_MX={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"y G",YEAR_MONTH_ABBR:"MMMM \'de\' y",YEAR_MONTH_FULL:"MMMM \'de\' y",MONTH_DAY_ABBR:"d MMM",MONTH_DAY_FULL:"dd \'de\' MMMM",MONTH_DAY_SHORT:"d/M",MONTH_DAY_MEDIUM:"d \'de\' MMMM",MONTH_DAY_YEAR_MEDIUM:"d \'de\' MMMM \'de\' y",WEEKDAY_MONTH_DAY_MEDIUM:"EEE d \'de\' MMM",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE, d \'de\' MMMM \'de\' y",DAY_ABBR:"d"};\ngoog.i18n.DateTimePatterns_es_US={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"y G",YEAR_MONTH_ABBR:"MMMM \'de\' y",YEAR_MONTH_FULL:"MMMM \'de\' y",MONTH_DAY_ABBR:"d MMM",MONTH_DAY_FULL:"dd \'de\' MMMM",MONTH_DAY_SHORT:"d/M",MONTH_DAY_MEDIUM:"d \'de\' MMMM",MONTH_DAY_YEAR_MEDIUM:"d \'de\' MMMM \'de\' y",WEEKDAY_MONTH_DAY_MEDIUM:"EEE, d MMM",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE, d \'de\' MMM \'de\' y",DAY_ABBR:"d"};\ngoog.i18n.DateTimePatterns_et={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"y G",YEAR_MONTH_ABBR:"MMM y",YEAR_MONTH_FULL:"MMMM y",MONTH_DAY_ABBR:"d. MMM",MONTH_DAY_FULL:"dd. MMMM",MONTH_DAY_SHORT:"d.M",MONTH_DAY_MEDIUM:"d. MMMM",MONTH_DAY_YEAR_MEDIUM:"d. MMM y",WEEKDAY_MONTH_DAY_MEDIUM:"EEE, d. MMM",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE, d. MMMM y",DAY_ABBR:"d"};\ngoog.i18n.DateTimePatterns_eu={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"G y",YEAR_MONTH_ABBR:"y MMM",YEAR_MONTH_FULL:"y(\'e\')\'ko\' MMMM",MONTH_DAY_ABBR:"MMM d",MONTH_DAY_FULL:"MMMM dd",MONTH_DAY_SHORT:"M/d",MONTH_DAY_MEDIUM:"MMMM d",MONTH_DAY_YEAR_MEDIUM:"y MMM d",WEEKDAY_MONTH_DAY_MEDIUM:"MMM d, EEE",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"y MMM d, EEE",DAY_ABBR:"d"};\ngoog.i18n.DateTimePatterns_fa={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"y G",YEAR_MONTH_ABBR:"MMM y",YEAR_MONTH_FULL:"MMMM y",MONTH_DAY_ABBR:"d LLL",MONTH_DAY_FULL:"dd LLLL",MONTH_DAY_SHORT:"M/d",MONTH_DAY_MEDIUM:"d LLLL",MONTH_DAY_YEAR_MEDIUM:"d MMM y",WEEKDAY_MONTH_DAY_MEDIUM:"EEE d LLL",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE d MMM y",DAY_ABBR:"d"};\ngoog.i18n.DateTimePatterns_fi={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"y G",YEAR_MONTH_ABBR:"LLL y",YEAR_MONTH_FULL:"LLLL y",MONTH_DAY_ABBR:"d. MMM",MONTH_DAY_FULL:"dd. MMMM",MONTH_DAY_SHORT:"d.M.",MONTH_DAY_MEDIUM:"d. MMMM",MONTH_DAY_YEAR_MEDIUM:"d. MMM y",WEEKDAY_MONTH_DAY_MEDIUM:"ccc d. MMM",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE d. MMM y",DAY_ABBR:"d"};\ngoog.i18n.DateTimePatterns_fil={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"G y",YEAR_MONTH_ABBR:"MMM y",YEAR_MONTH_FULL:"MMMM y",MONTH_DAY_ABBR:"MMM d",MONTH_DAY_FULL:"MMMM dd",MONTH_DAY_SHORT:"M/d",MONTH_DAY_MEDIUM:"MMMM d",MONTH_DAY_YEAR_MEDIUM:"MMM d, y",WEEKDAY_MONTH_DAY_MEDIUM:"EEE, MMM d",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE, MMM d, y",DAY_ABBR:"d"};\ngoog.i18n.DateTimePatterns_fr={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"y G",YEAR_MONTH_ABBR:"MMM y",YEAR_MONTH_FULL:"MMMM y",MONTH_DAY_ABBR:"d MMM",MONTH_DAY_FULL:"dd MMMM",MONTH_DAY_SHORT:"dd/MM",MONTH_DAY_MEDIUM:"d MMMM",MONTH_DAY_YEAR_MEDIUM:"d MMM y",WEEKDAY_MONTH_DAY_MEDIUM:"EEE d MMM",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE d MMM y",DAY_ABBR:"d"};\ngoog.i18n.DateTimePatterns_fr_CA={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"y G",YEAR_MONTH_ABBR:"MMM y",YEAR_MONTH_FULL:"MMMM y",MONTH_DAY_ABBR:"d MMM",MONTH_DAY_FULL:"dd MMMM",MONTH_DAY_SHORT:"M-d",MONTH_DAY_MEDIUM:"d MMMM",MONTH_DAY_YEAR_MEDIUM:"d MMM y",WEEKDAY_MONTH_DAY_MEDIUM:"EEE d MMM",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE d MMM y",DAY_ABBR:"d"};\ngoog.i18n.DateTimePatterns_ga={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"y G",YEAR_MONTH_ABBR:"MMM y",YEAR_MONTH_FULL:"MMMM y",MONTH_DAY_ABBR:"d MMM",MONTH_DAY_FULL:"dd MMMM",MONTH_DAY_SHORT:"dd/MM",MONTH_DAY_MEDIUM:"d MMMM",MONTH_DAY_YEAR_MEDIUM:"d MMM y",WEEKDAY_MONTH_DAY_MEDIUM:"EEE d MMM",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE d MMM y",DAY_ABBR:"d"};\ngoog.i18n.DateTimePatterns_gl={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"G y",YEAR_MONTH_ABBR:"MMM y",YEAR_MONTH_FULL:"MMMM y",MONTH_DAY_ABBR:"d MMM",MONTH_DAY_FULL:"dd MMMM",MONTH_DAY_SHORT:"d-M",MONTH_DAY_MEDIUM:"d MMMM",MONTH_DAY_YEAR_MEDIUM:"d MMM, y",WEEKDAY_MONTH_DAY_MEDIUM:"EEE d MMM",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE, d MMM, y",DAY_ABBR:"d"};\ngoog.i18n.DateTimePatterns_gsw={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"G y",YEAR_MONTH_ABBR:"MMM y",YEAR_MONTH_FULL:"MMMM y",MONTH_DAY_ABBR:"d. MMM",MONTH_DAY_FULL:"dd. MMMM",MONTH_DAY_SHORT:"d.M.",MONTH_DAY_MEDIUM:"d. MMMM",MONTH_DAY_YEAR_MEDIUM:"y MMM d",WEEKDAY_MONTH_DAY_MEDIUM:"EEE d. MMM",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE, d. MMM y",DAY_ABBR:"d"};\ngoog.i18n.DateTimePatterns_gu={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"G y",YEAR_MONTH_ABBR:"MMM y",YEAR_MONTH_FULL:"MMMM y",MONTH_DAY_ABBR:"d MMM",MONTH_DAY_FULL:"dd MMMM",MONTH_DAY_SHORT:"d/M",MONTH_DAY_MEDIUM:"d MMMM",MONTH_DAY_YEAR_MEDIUM:"d MMM, y",WEEKDAY_MONTH_DAY_MEDIUM:"EEE, d MMM",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE, d MMM, y",DAY_ABBR:"d"};\ngoog.i18n.DateTimePatterns_haw={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"y G",YEAR_MONTH_ABBR:"MMM y",YEAR_MONTH_FULL:"y MMMM",MONTH_DAY_ABBR:"d MMM",MONTH_DAY_FULL:"MMMM dd",MONTH_DAY_SHORT:"d/M",MONTH_DAY_MEDIUM:"MMMM d",MONTH_DAY_YEAR_MEDIUM:"d MMM y",WEEKDAY_MONTH_DAY_MEDIUM:"EEE, d MMM",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE, d MMM y",DAY_ABBR:"d"};\ngoog.i18n.DateTimePatterns_he={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"y G",YEAR_MONTH_ABBR:"MMM y",YEAR_MONTH_FULL:"MMMM y",MONTH_DAY_ABBR:"d \\u05d1MMM",MONTH_DAY_FULL:"dd \\u05d1MMMM",MONTH_DAY_SHORT:"d.M",MONTH_DAY_MEDIUM:"d \\u05d1MMMM",MONTH_DAY_YEAR_MEDIUM:"d \\u05d1MMM y",WEEKDAY_MONTH_DAY_MEDIUM:"EEE, d \\u05d1MMM",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE, d \\u05d1MMM y",DAY_ABBR:"d"};\ngoog.i18n.DateTimePatterns_hi={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"y G",YEAR_MONTH_ABBR:"MMM y",YEAR_MONTH_FULL:"MMMM y",MONTH_DAY_ABBR:"d MMM",MONTH_DAY_FULL:"dd MMMM",MONTH_DAY_SHORT:"d/M",MONTH_DAY_MEDIUM:"d MMMM",MONTH_DAY_YEAR_MEDIUM:"d MMM y",WEEKDAY_MONTH_DAY_MEDIUM:"EEE, d MMM",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE, d MMM y",DAY_ABBR:"d"};\ngoog.i18n.DateTimePatterns_hr={YEAR_FULL:"y.",YEAR_FULL_WITH_ERA:"y. G",YEAR_MONTH_ABBR:"LLL y.",YEAR_MONTH_FULL:"LLLL y.",MONTH_DAY_ABBR:"d. MMM",MONTH_DAY_FULL:"dd. MMMM",MONTH_DAY_SHORT:"dd.MM.",MONTH_DAY_MEDIUM:"d. MMMM",MONTH_DAY_YEAR_MEDIUM:"d. MMM y.",WEEKDAY_MONTH_DAY_MEDIUM:"EEE, d. MMM",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE, d. MMM y.",DAY_ABBR:"d."};\ngoog.i18n.DateTimePatterns_hu={YEAR_FULL:"y.",YEAR_FULL_WITH_ERA:"G y.",YEAR_MONTH_ABBR:"y. MMM",YEAR_MONTH_FULL:"y. MMMM",MONTH_DAY_ABBR:"MMM d.",MONTH_DAY_FULL:"MMMM dd.",MONTH_DAY_SHORT:"M. d.",MONTH_DAY_MEDIUM:"MMMM d.",MONTH_DAY_YEAR_MEDIUM:"y. MMM d.",WEEKDAY_MONTH_DAY_MEDIUM:"MMM d., EEE",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"y. MMM d., EEE",DAY_ABBR:"d"};\ngoog.i18n.DateTimePatterns_hy={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"G y\\u0569.",YEAR_MONTH_ABBR:"y\\u0569. LLL",YEAR_MONTH_FULL:"y\\u0569\\u2024 MMMM",MONTH_DAY_ABBR:"d MMM",MONTH_DAY_FULL:"MMMM dd",MONTH_DAY_SHORT:"dd.MM",MONTH_DAY_MEDIUM:"MMMM d",MONTH_DAY_YEAR_MEDIUM:"d MMM, y\\u0569.",WEEKDAY_MONTH_DAY_MEDIUM:"d MMM, EEE",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"y\\u0569. MMM d, EEE",DAY_ABBR:"d"};\ngoog.i18n.DateTimePatterns_id={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"y G",YEAR_MONTH_ABBR:"MMM y",YEAR_MONTH_FULL:"MMMM y",MONTH_DAY_ABBR:"d MMM",MONTH_DAY_FULL:"dd MMMM",MONTH_DAY_SHORT:"d/M",MONTH_DAY_MEDIUM:"d MMMM",MONTH_DAY_YEAR_MEDIUM:"d MMM y",WEEKDAY_MONTH_DAY_MEDIUM:"EEE, d MMM",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE, d MMM y",DAY_ABBR:"d"};\ngoog.i18n.DateTimePatterns_in={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"y G",YEAR_MONTH_ABBR:"MMM y",YEAR_MONTH_FULL:"MMMM y",MONTH_DAY_ABBR:"d MMM",MONTH_DAY_FULL:"dd MMMM",MONTH_DAY_SHORT:"d/M",MONTH_DAY_MEDIUM:"d MMMM",MONTH_DAY_YEAR_MEDIUM:"d MMM y",WEEKDAY_MONTH_DAY_MEDIUM:"EEE, d MMM",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE, d MMM y",DAY_ABBR:"d"};\ngoog.i18n.DateTimePatterns_is={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"y G",YEAR_MONTH_ABBR:"MMM y",YEAR_MONTH_FULL:"MMMM y",MONTH_DAY_ABBR:"d. MMM",MONTH_DAY_FULL:"dd. MMMM",MONTH_DAY_SHORT:"d.M.",MONTH_DAY_MEDIUM:"d. MMMM",MONTH_DAY_YEAR_MEDIUM:"d. MMM y",WEEKDAY_MONTH_DAY_MEDIUM:"EEE, d. MMM",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE, d. MMM y",DAY_ABBR:"d"};\ngoog.i18n.DateTimePatterns_it={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"y G",YEAR_MONTH_ABBR:"MMM y",YEAR_MONTH_FULL:"MMMM y",MONTH_DAY_ABBR:"d MMM",MONTH_DAY_FULL:"dd MMMM",MONTH_DAY_SHORT:"d/M",MONTH_DAY_MEDIUM:"d MMMM",MONTH_DAY_YEAR_MEDIUM:"d MMM y",WEEKDAY_MONTH_DAY_MEDIUM:"EEE d MMM",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE d MMM y",DAY_ABBR:"d"};\ngoog.i18n.DateTimePatterns_iw={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"y G",YEAR_MONTH_ABBR:"MMM y",YEAR_MONTH_FULL:"MMMM y",MONTH_DAY_ABBR:"d \\u05d1MMM",MONTH_DAY_FULL:"dd \\u05d1MMMM",MONTH_DAY_SHORT:"d.M",MONTH_DAY_MEDIUM:"d \\u05d1MMMM",MONTH_DAY_YEAR_MEDIUM:"d \\u05d1MMM y",WEEKDAY_MONTH_DAY_MEDIUM:"EEE, d \\u05d1MMM",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE, d \\u05d1MMM y",DAY_ABBR:"d"};\ngoog.i18n.DateTimePatterns_ja={YEAR_FULL:"y\\u5e74",YEAR_FULL_WITH_ERA:"Gy\\u5e74",YEAR_MONTH_ABBR:"y\\u5e74M\\u6708",YEAR_MONTH_FULL:"y\\u5e74M\\u6708",MONTH_DAY_ABBR:"M\\u6708d\\u65e5",MONTH_DAY_FULL:"M\\u6708dd\\u65e5",MONTH_DAY_SHORT:"M/d",MONTH_DAY_MEDIUM:"M\\u6708d\\u65e5",MONTH_DAY_YEAR_MEDIUM:"y\\u5e74M\\u6708d\\u65e5",WEEKDAY_MONTH_DAY_MEDIUM:"M\\u6708d\\u65e5(EEE)",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"y\\u5e74M\\u6708d\\u65e5(EEE)",DAY_ABBR:"d\\u65e5"};\ngoog.i18n.DateTimePatterns_ka={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"y G",YEAR_MONTH_ABBR:"MMM. y",YEAR_MONTH_FULL:"MMMM, y",MONTH_DAY_ABBR:"d MMM",MONTH_DAY_FULL:"dd MMMM",MONTH_DAY_SHORT:"d.M",MONTH_DAY_MEDIUM:"d MMMM",MONTH_DAY_YEAR_MEDIUM:"d MMM. y",WEEKDAY_MONTH_DAY_MEDIUM:"EEE, d MMM",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE, d MMM. y",DAY_ABBR:"d"};\ngoog.i18n.DateTimePatterns_kk={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"G y \'\\u0436\'.",YEAR_MONTH_ABBR:"y \'\\u0436\'. MMM",YEAR_MONTH_FULL:"y \'\\u0436\'. MMMM",MONTH_DAY_ABBR:"d MMM",MONTH_DAY_FULL:"dd MMMM",MONTH_DAY_SHORT:"dd.MM",MONTH_DAY_MEDIUM:"d MMMM",MONTH_DAY_YEAR_MEDIUM:"y \'\\u0436\'. d MMM",WEEKDAY_MONTH_DAY_MEDIUM:"d MMM, EEE",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"y \'\\u0436\'. d MMM, EEE",DAY_ABBR:"d"};\ngoog.i18n.DateTimePatterns_km={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"y \\u1793\\u17c3 G",YEAR_MONTH_ABBR:"MMM y",YEAR_MONTH_FULL:"MMMM y",MONTH_DAY_ABBR:"d MMM",MONTH_DAY_FULL:"MMMM dd",MONTH_DAY_SHORT:"d-M",MONTH_DAY_MEDIUM:"MMMM d",MONTH_DAY_YEAR_MEDIUM:"d MMM y",WEEKDAY_MONTH_DAY_MEDIUM:"EEE d MMM",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE d MMM y",DAY_ABBR:"d"};\ngoog.i18n.DateTimePatterns_kn={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"G y",YEAR_MONTH_ABBR:"MMM y",YEAR_MONTH_FULL:"MMMM y",MONTH_DAY_ABBR:"MMM d",MONTH_DAY_FULL:"dd MMMM",MONTH_DAY_SHORT:"d/M",MONTH_DAY_MEDIUM:"d MMMM",MONTH_DAY_YEAR_MEDIUM:"MMM d,y",WEEKDAY_MONTH_DAY_MEDIUM:"EEE, d MMM",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE, MMM d, y",DAY_ABBR:"d"};\ngoog.i18n.DateTimePatterns_ko={YEAR_FULL:"y\\ub144",YEAR_FULL_WITH_ERA:"G y\\ub144",YEAR_MONTH_ABBR:"y\\ub144 MMM",YEAR_MONTH_FULL:"y\\ub144 MMMM",MONTH_DAY_ABBR:"MMM d\\uc77c",MONTH_DAY_FULL:"MMMM dd\\uc77c",MONTH_DAY_SHORT:"M. d.",MONTH_DAY_MEDIUM:"MMMM d\\uc77c",MONTH_DAY_YEAR_MEDIUM:"y\\ub144 MMM d\\uc77c",WEEKDAY_MONTH_DAY_MEDIUM:"MMM d\\uc77c (EEE)",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"y\\ub144 MMM d\\uc77c (EEE)",DAY_ABBR:"d\\uc77c"};\ngoog.i18n.DateTimePatterns_ky={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"G y-\'\\u0436\'.",YEAR_MONTH_ABBR:"y-\'\\u0436\'. MMM",YEAR_MONTH_FULL:"y MMMM",MONTH_DAY_ABBR:"d-MMM",MONTH_DAY_FULL:"MMMM dd",MONTH_DAY_SHORT:"dd-MM",MONTH_DAY_MEDIUM:"MMMM d",MONTH_DAY_YEAR_MEDIUM:"y-\'\\u0436\'. d-MMM",WEEKDAY_MONTH_DAY_MEDIUM:"d-MMM, EEE",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"y-\'\\u0436\'. d-MMM, EEE",DAY_ABBR:"d"};\ngoog.i18n.DateTimePatterns_ln={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"G y",YEAR_MONTH_ABBR:"MMM y",YEAR_MONTH_FULL:"y MMMM",MONTH_DAY_ABBR:"d MMM",MONTH_DAY_FULL:"MMMM dd",MONTH_DAY_SHORT:"d/M",MONTH_DAY_MEDIUM:"MMMM d",MONTH_DAY_YEAR_MEDIUM:"d MMM y",WEEKDAY_MONTH_DAY_MEDIUM:"EEE d MMM",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE d MMM y",DAY_ABBR:"d"};\ngoog.i18n.DateTimePatterns_lo={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"G y",YEAR_MONTH_ABBR:"MMM y",YEAR_MONTH_FULL:"y MMMM",MONTH_DAY_ABBR:"d MMM",MONTH_DAY_FULL:"MMMM dd",MONTH_DAY_SHORT:"d/M",MONTH_DAY_MEDIUM:"MMMM d",MONTH_DAY_YEAR_MEDIUM:"d MMM y",WEEKDAY_MONTH_DAY_MEDIUM:"EEE d MMM",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE, d MMM y",DAY_ABBR:"d"};\ngoog.i18n.DateTimePatterns_lt={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"y \'m\'. G",YEAR_MONTH_ABBR:"y-MM",YEAR_MONTH_FULL:"y \'m\'. LLLL",MONTH_DAY_ABBR:"MM-dd",MONTH_DAY_FULL:"MMMM dd \'d\'.",MONTH_DAY_SHORT:"MM-d",MONTH_DAY_MEDIUM:"MMMM d \'d\'.",MONTH_DAY_YEAR_MEDIUM:"y-MM-dd",WEEKDAY_MONTH_DAY_MEDIUM:"MM-dd, EEE",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"y-MM-dd, EEE",DAY_ABBR:"dd"};\ngoog.i18n.DateTimePatterns_lv={YEAR_FULL:"y. \'g\'.",YEAR_FULL_WITH_ERA:"G y. \'g\'.",YEAR_MONTH_ABBR:"y. \'g\'. MMM",YEAR_MONTH_FULL:"y. \'g\'. MMMM",MONTH_DAY_ABBR:"d. MMM",MONTH_DAY_FULL:"dd. MMMM",MONTH_DAY_SHORT:"dd.MM.",MONTH_DAY_MEDIUM:"d. MMMM",MONTH_DAY_YEAR_MEDIUM:"y. \'g\'. d. MMM",WEEKDAY_MONTH_DAY_MEDIUM:"EEE, d. MMM",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE, y. \'g\'. d. MMM",DAY_ABBR:"d"};\ngoog.i18n.DateTimePatterns_mk={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"y G",YEAR_MONTH_ABBR:"MMM y \'\\u0433\'.",YEAR_MONTH_FULL:"MMMM y \'\\u0433\'.",MONTH_DAY_ABBR:"d MMM",MONTH_DAY_FULL:"dd MMMM",MONTH_DAY_SHORT:"d.M",MONTH_DAY_MEDIUM:"d MMMM",MONTH_DAY_YEAR_MEDIUM:"d MMM y \'\\u0433\'.",WEEKDAY_MONTH_DAY_MEDIUM:"EEE d MMM",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE, d MMM y \'\\u0433\'.",DAY_ABBR:"d"};\ngoog.i18n.DateTimePatterns_ml={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"G y",YEAR_MONTH_ABBR:"y MMM",YEAR_MONTH_FULL:"y MMMM",MONTH_DAY_ABBR:"MMM d",MONTH_DAY_FULL:"MMMM dd",MONTH_DAY_SHORT:"d/M",MONTH_DAY_MEDIUM:"MMMM d",MONTH_DAY_YEAR_MEDIUM:"y MMM d",WEEKDAY_MONTH_DAY_MEDIUM:"MMM d, EEE",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"y MMM d, EEE",DAY_ABBR:"d"};\ngoog.i18n.DateTimePatterns_mn={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"G y",YEAR_MONTH_ABBR:"y MMM",YEAR_MONTH_FULL:"y MMMM",MONTH_DAY_ABBR:"MMM d",MONTH_DAY_FULL:"MMMM dd",MONTH_DAY_SHORT:"M-d",MONTH_DAY_MEDIUM:"MMMM d",MONTH_DAY_YEAR_MEDIUM:"y MMM d",WEEKDAY_MONTH_DAY_MEDIUM:"EEE MMM d",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE, y MMM d",DAY_ABBR:"d"};\ngoog.i18n.DateTimePatterns_mo={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"y G",YEAR_MONTH_ABBR:"MMM y",YEAR_MONTH_FULL:"MMMM y",MONTH_DAY_ABBR:"d MMM",MONTH_DAY_FULL:"dd MMMM",MONTH_DAY_SHORT:"dd.MM",MONTH_DAY_MEDIUM:"d MMMM",MONTH_DAY_YEAR_MEDIUM:"d MMM y",WEEKDAY_MONTH_DAY_MEDIUM:"EEE, d MMM",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE, d MMM y",DAY_ABBR:"d"};\ngoog.i18n.DateTimePatterns_mr={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"G y",YEAR_MONTH_ABBR:"MMM y",YEAR_MONTH_FULL:"MMMM y",MONTH_DAY_ABBR:"d MMM",MONTH_DAY_FULL:"dd MMMM",MONTH_DAY_SHORT:"d/M",MONTH_DAY_MEDIUM:"d MMMM",MONTH_DAY_YEAR_MEDIUM:"d MMM, y",WEEKDAY_MONTH_DAY_MEDIUM:"EEE, d MMM",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE, d, MMM y",DAY_ABBR:"d"};\ngoog.i18n.DateTimePatterns_ms={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"G y",YEAR_MONTH_ABBR:"MMM y",YEAR_MONTH_FULL:"MMMM y",MONTH_DAY_ABBR:"d MMM",MONTH_DAY_FULL:"dd MMMM",MONTH_DAY_SHORT:"d-M",MONTH_DAY_MEDIUM:"d MMMM",MONTH_DAY_YEAR_MEDIUM:"d MMM y",WEEKDAY_MONTH_DAY_MEDIUM:"EEE, d MMM",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE, d MMM y",DAY_ABBR:"d"};\ngoog.i18n.DateTimePatterns_mt={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"G y",YEAR_MONTH_ABBR:"y MMM",YEAR_MONTH_FULL:"y MMMM",MONTH_DAY_ABBR:"MMM d",MONTH_DAY_FULL:"MMMM dd",MONTH_DAY_SHORT:"MM-dd",MONTH_DAY_MEDIUM:"MMMM d",MONTH_DAY_YEAR_MEDIUM:"y MMM d",WEEKDAY_MONTH_DAY_MEDIUM:"MMM d, EEE",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"y MMM d, EEE",DAY_ABBR:"d"};\ngoog.i18n.DateTimePatterns_my={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"G y",YEAR_MONTH_ABBR:"MMM y",YEAR_MONTH_FULL:"MMMM y",MONTH_DAY_ABBR:"d MMM",MONTH_DAY_FULL:"dd MMMM",MONTH_DAY_SHORT:"d/M",MONTH_DAY_MEDIUM:"d MMMM",MONTH_DAY_YEAR_MEDIUM:"d MMM y",WEEKDAY_MONTH_DAY_MEDIUM:"EEE\\u104a d MMM",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE\\u104a d MMM y",DAY_ABBR:"d"};\ngoog.i18n.DateTimePatterns_nb={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"y G",YEAR_MONTH_ABBR:"MMM y",YEAR_MONTH_FULL:"MMMM y",MONTH_DAY_ABBR:"d. MMM",MONTH_DAY_FULL:"dd. MMMM",MONTH_DAY_SHORT:"d.M.",MONTH_DAY_MEDIUM:"d. MMMM",MONTH_DAY_YEAR_MEDIUM:"d. MMM y",WEEKDAY_MONTH_DAY_MEDIUM:"EEE d. MMM",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE d. MMM y",DAY_ABBR:"d."};\ngoog.i18n.DateTimePatterns_ne={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"G y",YEAR_MONTH_ABBR:"y MMM",YEAR_MONTH_FULL:"y MMMM",MONTH_DAY_ABBR:"MMM d",MONTH_DAY_FULL:"MMMM dd",MONTH_DAY_SHORT:"MM-dd",MONTH_DAY_MEDIUM:"MMMM d",MONTH_DAY_YEAR_MEDIUM:"y MMM d",WEEKDAY_MONTH_DAY_MEDIUM:"MMM d, EEE",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"y MMM d, EEE",DAY_ABBR:"d"};\ngoog.i18n.DateTimePatterns_nl={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"y G",YEAR_MONTH_ABBR:"MMM y",YEAR_MONTH_FULL:"MMMM y",MONTH_DAY_ABBR:"d MMM",MONTH_DAY_FULL:"dd MMMM",MONTH_DAY_SHORT:"d-M",MONTH_DAY_MEDIUM:"d MMMM",MONTH_DAY_YEAR_MEDIUM:"d MMM y",WEEKDAY_MONTH_DAY_MEDIUM:"EEE d MMM",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE d MMM y",DAY_ABBR:"d"};\ngoog.i18n.DateTimePatterns_no={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"y G",YEAR_MONTH_ABBR:"MMM y",YEAR_MONTH_FULL:"MMMM y",MONTH_DAY_ABBR:"d. MMM",MONTH_DAY_FULL:"dd. MMMM",MONTH_DAY_SHORT:"d.M.",MONTH_DAY_MEDIUM:"d. MMMM",MONTH_DAY_YEAR_MEDIUM:"d. MMM y",WEEKDAY_MONTH_DAY_MEDIUM:"EEE d. MMM",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE d. MMM y",DAY_ABBR:"d."};goog.i18n.DateTimePatterns_no_NO=goog.i18n.DateTimePatterns_no;\ngoog.i18n.DateTimePatterns_or={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"G y",YEAR_MONTH_ABBR:"y MMM",YEAR_MONTH_FULL:"MMMM y",MONTH_DAY_ABBR:"MMM d",MONTH_DAY_FULL:"MMMM dd",MONTH_DAY_SHORT:"d-M",MONTH_DAY_MEDIUM:"MMMM d",MONTH_DAY_YEAR_MEDIUM:"d MMM y",WEEKDAY_MONTH_DAY_MEDIUM:"MMM d, EEE",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"y MMM d, EEE",DAY_ABBR:"d"};\ngoog.i18n.DateTimePatterns_pa={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"G y",YEAR_MONTH_ABBR:"MMM y",YEAR_MONTH_FULL:"y MMMM",MONTH_DAY_ABBR:"d MMM",MONTH_DAY_FULL:"MMMM dd",MONTH_DAY_SHORT:"d/M",MONTH_DAY_MEDIUM:"MMMM d",MONTH_DAY_YEAR_MEDIUM:"d MMM y",WEEKDAY_MONTH_DAY_MEDIUM:"EEE, d MMM",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE, d MMM y",DAY_ABBR:"d"};\ngoog.i18n.DateTimePatterns_pl={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"y G",YEAR_MONTH_ABBR:"MM.y",YEAR_MONTH_FULL:"LLLL y",MONTH_DAY_ABBR:"d.MM",MONTH_DAY_FULL:"dd MMMM",MONTH_DAY_SHORT:"d.MM",MONTH_DAY_MEDIUM:"d MMMM",MONTH_DAY_YEAR_MEDIUM:"d.MM.y",WEEKDAY_MONTH_DAY_MEDIUM:"EEE, d.MM",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE, d.MM.y",DAY_ABBR:"d"};\ngoog.i18n.DateTimePatterns_pt={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"y G",YEAR_MONTH_ABBR:"MMM \'de\' y",YEAR_MONTH_FULL:"MMMM \'de\' y",MONTH_DAY_ABBR:"d \'de\' MMM",MONTH_DAY_FULL:"dd \'de\' MMMM",MONTH_DAY_SHORT:"d/M",MONTH_DAY_MEDIUM:"d \'de\' MMMM",MONTH_DAY_YEAR_MEDIUM:"d \'de\' MMM \'de\' y",WEEKDAY_MONTH_DAY_MEDIUM:"EEE, d \'de\' MMM",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE, d \'de\' MMM \'de\' y",DAY_ABBR:"d"};goog.i18n.DateTimePatterns_pt_BR=goog.i18n.DateTimePatterns_pt;\ngoog.i18n.DateTimePatterns_pt_PT={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"y G",YEAR_MONTH_ABBR:"MM/y",YEAR_MONTH_FULL:"MMMM \'de\' y",MONTH_DAY_ABBR:"d/MM",MONTH_DAY_FULL:"dd \'de\' MMMM",MONTH_DAY_SHORT:"dd/MM",MONTH_DAY_MEDIUM:"d \'de\' MMMM",MONTH_DAY_YEAR_MEDIUM:"d/MM/y",WEEKDAY_MONTH_DAY_MEDIUM:"EEE, d/MM",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE, d/MM/y",DAY_ABBR:"d"};\ngoog.i18n.DateTimePatterns_ro={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"y G",YEAR_MONTH_ABBR:"MMM y",YEAR_MONTH_FULL:"MMMM y",MONTH_DAY_ABBR:"d MMM",MONTH_DAY_FULL:"dd MMMM",MONTH_DAY_SHORT:"dd.MM",MONTH_DAY_MEDIUM:"d MMMM",MONTH_DAY_YEAR_MEDIUM:"d MMM y",WEEKDAY_MONTH_DAY_MEDIUM:"EEE, d MMM",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE, d MMM y",DAY_ABBR:"d"};\ngoog.i18n.DateTimePatterns_ru={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"y \'\\u0433\'. G",YEAR_MONTH_ABBR:"LLL y \'\\u0433\'.",YEAR_MONTH_FULL:"LLLL y \'\\u0433\'.",MONTH_DAY_ABBR:"d MMM",MONTH_DAY_FULL:"dd MMMM",MONTH_DAY_SHORT:"dd.MM",MONTH_DAY_MEDIUM:"d MMMM",MONTH_DAY_YEAR_MEDIUM:"d MMM y \'\\u0433\'.",WEEKDAY_MONTH_DAY_MEDIUM:"ccc, d MMM",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE, d MMM y \'\\u0433\'.",DAY_ABBR:"d"};\ngoog.i18n.DateTimePatterns_sh={YEAR_FULL:"y.",YEAR_FULL_WITH_ERA:"y. G",YEAR_MONTH_ABBR:"MMM y.",YEAR_MONTH_FULL:"MMMM y.",MONTH_DAY_ABBR:"d. MMM",MONTH_DAY_FULL:"dd. MMMM",MONTH_DAY_SHORT:"d/M",MONTH_DAY_MEDIUM:"d. MMMM",MONTH_DAY_YEAR_MEDIUM:"d. MMM y.",WEEKDAY_MONTH_DAY_MEDIUM:"EEE d. MMM",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE, d. MMM y.",DAY_ABBR:"d"};\ngoog.i18n.DateTimePatterns_si={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"G y",YEAR_MONTH_ABBR:"y MMM",YEAR_MONTH_FULL:"y MMMM",MONTH_DAY_ABBR:"MMM d",MONTH_DAY_FULL:"MMMM dd",MONTH_DAY_SHORT:"M-d",MONTH_DAY_MEDIUM:"MMMM d",MONTH_DAY_YEAR_MEDIUM:"y MMM d",WEEKDAY_MONTH_DAY_MEDIUM:"MMM d EEE",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"y MMM d, EEE",DAY_ABBR:"d"};\ngoog.i18n.DateTimePatterns_sk={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"y G",YEAR_MONTH_ABBR:"M/y",YEAR_MONTH_FULL:"LLLL y",MONTH_DAY_ABBR:"d. M.",MONTH_DAY_FULL:"dd. MMMM",MONTH_DAY_SHORT:"d. M.",MONTH_DAY_MEDIUM:"d. MMMM",MONTH_DAY_YEAR_MEDIUM:"d. M. y",WEEKDAY_MONTH_DAY_MEDIUM:"EEE d. M.",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE d. M. y",DAY_ABBR:"d."};\ngoog.i18n.DateTimePatterns_sl={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"y G",YEAR_MONTH_ABBR:"MMM y",YEAR_MONTH_FULL:"MMMM y",MONTH_DAY_ABBR:"d. MMM",MONTH_DAY_FULL:"dd MMMM",MONTH_DAY_SHORT:"d. M.",MONTH_DAY_MEDIUM:"d MMMM",MONTH_DAY_YEAR_MEDIUM:"d. MMM y",WEEKDAY_MONTH_DAY_MEDIUM:"EEE, d. MMM",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE, d. MMM y",DAY_ABBR:"d."};\ngoog.i18n.DateTimePatterns_sq={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"y G",YEAR_MONTH_ABBR:"MMM y",YEAR_MONTH_FULL:"MMMM y",MONTH_DAY_ABBR:"d MMM",MONTH_DAY_FULL:"dd MMMM",MONTH_DAY_SHORT:"d.M",MONTH_DAY_MEDIUM:"d MMMM",MONTH_DAY_YEAR_MEDIUM:"d MMM y",WEEKDAY_MONTH_DAY_MEDIUM:"EEE, d MMM",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE, d MMM y",DAY_ABBR:"d"};\ngoog.i18n.DateTimePatterns_sr={YEAR_FULL:"y.",YEAR_FULL_WITH_ERA:"y. G",YEAR_MONTH_ABBR:"MMM y.",YEAR_MONTH_FULL:"MMMM y.",MONTH_DAY_ABBR:"d. MMM",MONTH_DAY_FULL:"dd. MMMM",MONTH_DAY_SHORT:"d/M",MONTH_DAY_MEDIUM:"d. MMMM",MONTH_DAY_YEAR_MEDIUM:"d. MMM y.",WEEKDAY_MONTH_DAY_MEDIUM:"EEE d. MMM",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE, d. MMM y.",DAY_ABBR:"d"};goog.i18n.DateTimePatterns_sr_Latn=goog.i18n.DateTimePatterns_sr;\ngoog.i18n.DateTimePatterns_sv={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"y G",YEAR_MONTH_ABBR:"MMM y",YEAR_MONTH_FULL:"MMMM y",MONTH_DAY_ABBR:"d MMM",MONTH_DAY_FULL:"dd MMMM",MONTH_DAY_SHORT:"d/M",MONTH_DAY_MEDIUM:"d MMMM",MONTH_DAY_YEAR_MEDIUM:"d MMM y",WEEKDAY_MONTH_DAY_MEDIUM:"EEE d MMM",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE d MMM y",DAY_ABBR:"d"};\ngoog.i18n.DateTimePatterns_sw={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"y G",YEAR_MONTH_ABBR:"MMM y",YEAR_MONTH_FULL:"MMMM y",MONTH_DAY_ABBR:"d MMM",MONTH_DAY_FULL:"dd MMMM",MONTH_DAY_SHORT:"d/M",MONTH_DAY_MEDIUM:"d MMMM",MONTH_DAY_YEAR_MEDIUM:"d MMM y",WEEKDAY_MONTH_DAY_MEDIUM:"EEE, d MMM",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE, MMM d, y",DAY_ABBR:"d"};\ngoog.i18n.DateTimePatterns_ta={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"G y",YEAR_MONTH_ABBR:"MMM y",YEAR_MONTH_FULL:"MMMM y",MONTH_DAY_ABBR:"MMM d",MONTH_DAY_FULL:"dd MMMM",MONTH_DAY_SHORT:"d/M",MONTH_DAY_MEDIUM:"d MMMM",MONTH_DAY_YEAR_MEDIUM:"d MMM, y",WEEKDAY_MONTH_DAY_MEDIUM:"MMM d, EEE",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE, d MMM, y",DAY_ABBR:"d"};\ngoog.i18n.DateTimePatterns_te={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"G y",YEAR_MONTH_ABBR:"MMM y",YEAR_MONTH_FULL:"MMMM y",MONTH_DAY_ABBR:"d MMM",MONTH_DAY_FULL:"dd MMMM",MONTH_DAY_SHORT:"d/M",MONTH_DAY_MEDIUM:"d MMMM",MONTH_DAY_YEAR_MEDIUM:"d, MMM y",WEEKDAY_MONTH_DAY_MEDIUM:"EEE, d MMM",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE, d, MMM y",DAY_ABBR:"d"};\ngoog.i18n.DateTimePatterns_th={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"G y",YEAR_MONTH_ABBR:"MMM y",YEAR_MONTH_FULL:"MMMM G y",MONTH_DAY_ABBR:"d MMM",MONTH_DAY_FULL:"dd MMMM",MONTH_DAY_SHORT:"d/M",MONTH_DAY_MEDIUM:"d MMMM",MONTH_DAY_YEAR_MEDIUM:"d MMM y",WEEKDAY_MONTH_DAY_MEDIUM:"EEE d MMM",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE d MMM y",DAY_ABBR:"d"};\ngoog.i18n.DateTimePatterns_tl={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"G y",YEAR_MONTH_ABBR:"MMM y",YEAR_MONTH_FULL:"MMMM y",MONTH_DAY_ABBR:"MMM d",MONTH_DAY_FULL:"MMMM dd",MONTH_DAY_SHORT:"M/d",MONTH_DAY_MEDIUM:"MMMM d",MONTH_DAY_YEAR_MEDIUM:"MMM d, y",WEEKDAY_MONTH_DAY_MEDIUM:"EEE, MMM d",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE, MMM d, y",DAY_ABBR:"d"};\ngoog.i18n.DateTimePatterns_tr={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"G y",YEAR_MONTH_ABBR:"MMM y",YEAR_MONTH_FULL:"MMMM y",MONTH_DAY_ABBR:"d MMM",MONTH_DAY_FULL:"dd MMMM",MONTH_DAY_SHORT:"dd/MM",MONTH_DAY_MEDIUM:"dd MMMM",MONTH_DAY_YEAR_MEDIUM:"dd MMM y",WEEKDAY_MONTH_DAY_MEDIUM:"d MMMM EEE",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"d MMM y EEE",DAY_ABBR:"d"};\ngoog.i18n.DateTimePatterns_uk={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"y G",YEAR_MONTH_ABBR:"LLL y",YEAR_MONTH_FULL:"LLLL y",MONTH_DAY_ABBR:"d MMM",MONTH_DAY_FULL:"dd MMMM",MONTH_DAY_SHORT:"dd.MM",MONTH_DAY_MEDIUM:"d MMMM",MONTH_DAY_YEAR_MEDIUM:"d MMM y",WEEKDAY_MONTH_DAY_MEDIUM:"EEE, d MMM",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE, d MMM y",DAY_ABBR:"d"};\ngoog.i18n.DateTimePatterns_ur={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"y G",YEAR_MONTH_ABBR:"MMM y",YEAR_MONTH_FULL:"y MMMM",MONTH_DAY_ABBR:"d MMM",MONTH_DAY_FULL:"MMMM dd",MONTH_DAY_SHORT:"d/M",MONTH_DAY_MEDIUM:"MMMM d",MONTH_DAY_YEAR_MEDIUM:"d MMM\\u060c y",WEEKDAY_MONTH_DAY_MEDIUM:"EEE\\u060c d MMM",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE\\u060c d MMM\\u060c y",DAY_ABBR:"d"};\ngoog.i18n.DateTimePatterns_uz={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"G y",YEAR_MONTH_ABBR:"MMM, y",YEAR_MONTH_FULL:"MMMM, y",MONTH_DAY_ABBR:"d-MMM",MONTH_DAY_FULL:"dd-MMMM",MONTH_DAY_SHORT:"dd/MM",MONTH_DAY_MEDIUM:"d-MMMM",MONTH_DAY_YEAR_MEDIUM:"d-MMM, y",WEEKDAY_MONTH_DAY_MEDIUM:"EEE, d-MMM",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE, d-MMM, y",DAY_ABBR:"d"};\ngoog.i18n.DateTimePatterns_vi={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"y G",YEAR_MONTH_ABBR:"MMM y",YEAR_MONTH_FULL:"MMMM \'n\\u0103m\' y",MONTH_DAY_ABBR:"d MMM",MONTH_DAY_FULL:"dd MMMM",MONTH_DAY_SHORT:"dd/M",MONTH_DAY_MEDIUM:"d MMMM",MONTH_DAY_YEAR_MEDIUM:"d MMM, y",WEEKDAY_MONTH_DAY_MEDIUM:"EEE, d MMM",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE, d MMM, y",DAY_ABBR:"d"};\ngoog.i18n.DateTimePatterns_zh={YEAR_FULL:"y\\u5e74",YEAR_FULL_WITH_ERA:"Gy\\u5e74",YEAR_MONTH_ABBR:"y\\u5e74M\\u6708",YEAR_MONTH_FULL:"y\\u5e74M\\u6708",MONTH_DAY_ABBR:"M\\u6708d\\u65e5",MONTH_DAY_FULL:"M\\u6708dd\\u65e5",MONTH_DAY_SHORT:"M/d",MONTH_DAY_MEDIUM:"M\\u6708d\\u65e5",MONTH_DAY_YEAR_MEDIUM:"y\\u5e74M\\u6708d\\u65e5",WEEKDAY_MONTH_DAY_MEDIUM:"M\\u6708d\\u65e5EEE",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"y\\u5e74M\\u6708d\\u65e5EEE",DAY_ABBR:"d\\u65e5"};goog.i18n.DateTimePatterns_zh_CN=goog.i18n.DateTimePatterns_zh;\ngoog.i18n.DateTimePatterns_zh_HK={YEAR_FULL:"y\\u5e74",YEAR_FULL_WITH_ERA:"Gy\\u5e74",YEAR_MONTH_ABBR:"y\\u5e74M\\u6708",YEAR_MONTH_FULL:"y\\u5e74M\\u6708",MONTH_DAY_ABBR:"M\\u6708d\\u65e5",MONTH_DAY_FULL:"M\\u6708dd\\u65e5",MONTH_DAY_SHORT:"d/M",MONTH_DAY_MEDIUM:"M\\u6708d\\u65e5",MONTH_DAY_YEAR_MEDIUM:"y\\u5e74M\\u6708d\\u65e5",WEEKDAY_MONTH_DAY_MEDIUM:"M\\u6708d\\u65e5EEE",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"y\\u5e74M\\u6708d\\u65e5EEE",DAY_ABBR:"d\\u65e5"};\ngoog.i18n.DateTimePatterns_zh_TW={YEAR_FULL:"y\\u5e74",YEAR_FULL_WITH_ERA:"Gy\\u5e74",YEAR_MONTH_ABBR:"y\\u5e74M\\u6708",YEAR_MONTH_FULL:"y\\u5e74M\\u6708",MONTH_DAY_ABBR:"M\\u6708d\\u65e5",MONTH_DAY_FULL:"M\\u6708dd\\u65e5",MONTH_DAY_SHORT:"M/d",MONTH_DAY_MEDIUM:"M\\u6708d\\u65e5",MONTH_DAY_YEAR_MEDIUM:"y\\u5e74M\\u6708d\\u65e5",WEEKDAY_MONTH_DAY_MEDIUM:"M\\u6708d\\u65e5 EEE",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"y\\u5e74M\\u6708d\\u65e5 EEE",DAY_ABBR:"d\\u65e5"};\ngoog.i18n.DateTimePatterns_zu={YEAR_FULL:"y",YEAR_FULL_WITH_ERA:"G y",YEAR_MONTH_ABBR:"MMM y",YEAR_MONTH_FULL:"MMMM y",MONTH_DAY_ABBR:"MMM d",MONTH_DAY_FULL:"MMMM dd",MONTH_DAY_SHORT:"M/d",MONTH_DAY_MEDIUM:"MMMM d",MONTH_DAY_YEAR_MEDIUM:"MMM d, y",WEEKDAY_MONTH_DAY_MEDIUM:"EEE, MMM d",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE, MMM d, y",DAY_ABBR:"d"};goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_en;"af"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_af);\n"am"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_am);"ar"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_ar);"az"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_az);"be"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_be);"bg"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_bg);"bn"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_bn);\n"br"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_br);"bs"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_bs);"ca"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_ca);"chr"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_chr);"cs"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_cs);"cy"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_cy);\n"da"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_da);"de"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_de);if("de_AT"==goog.LOCALE||"de-AT"==goog.LOCALE)goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_de_AT;if("de_CH"==goog.LOCALE||"de-CH"==goog.LOCALE)goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_de_CH;"el"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_el);"en"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_en);\nif("en_AU"==goog.LOCALE||"en-AU"==goog.LOCALE)goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_en_AU;if("en_CA"==goog.LOCALE||"en-CA"==goog.LOCALE)goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_en_CA;if("en_GB"==goog.LOCALE||"en-GB"==goog.LOCALE)goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_en_GB;if("en_IE"==goog.LOCALE||"en-IE"==goog.LOCALE)goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_en_IE;if("en_IN"==goog.LOCALE||"en-IN"==goog.LOCALE)goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_en_IN;\nif("en_SG"==goog.LOCALE||"en-SG"==goog.LOCALE)goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_en_SG;if("en_US"==goog.LOCALE||"en-US"==goog.LOCALE)goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_en_US;if("en_ZA"==goog.LOCALE||"en-ZA"==goog.LOCALE)goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_en_ZA;"es"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_es);if("es_419"==goog.LOCALE||"es-419"==goog.LOCALE)goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_es_419;\nif("es_ES"==goog.LOCALE||"es-ES"==goog.LOCALE)goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_es_ES;if("es_MX"==goog.LOCALE||"es-MX"==goog.LOCALE)goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_es_MX;if("es_US"==goog.LOCALE||"es-US"==goog.LOCALE)goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_es_US;"et"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_et);"eu"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_eu);\n"fa"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_fa);"fi"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_fi);"fil"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_fil);"fr"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_fr);if("fr_CA"==goog.LOCALE||"fr-CA"==goog.LOCALE)goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_fr_CA;"ga"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_ga);\n"gl"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_gl);"gsw"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_gsw);"gu"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_gu);"haw"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_haw);"he"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_he);"hi"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_hi);\n"hr"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_hr);"hu"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_hu);"hy"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_hy);"id"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_id);"in"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_in);"is"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_is);\n"it"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_it);"iw"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_iw);"ja"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_ja);"ka"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_ka);"kk"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_kk);"km"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_km);\n"kn"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_kn);"ko"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_ko);"ky"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_ky);"ln"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_ln);"lo"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_lo);"lt"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_lt);\n"lv"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_lv);"mk"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_mk);"ml"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_ml);"mn"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_mn);"mo"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_mo);"mr"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_mr);\n"ms"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_ms);"mt"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_mt);"my"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_my);"nb"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_nb);"ne"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_ne);"nl"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_nl);\n"no"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_no);if("no_NO"==goog.LOCALE||"no-NO"==goog.LOCALE)goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_no_NO;"or"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_or);"pa"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_pa);"pl"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_pl);"pt"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_pt);\nif("pt_BR"==goog.LOCALE||"pt-BR"==goog.LOCALE)goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_pt_BR;if("pt_PT"==goog.LOCALE||"pt-PT"==goog.LOCALE)goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_pt_PT;"ro"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_ro);"ru"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_ru);"sh"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_sh);"si"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_si);\n"sk"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_sk);"sl"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_sl);"sq"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_sq);"sr"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_sr);if("sr_Latn"==goog.LOCALE||"sr-Latn"==goog.LOCALE)goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_sr_Latn;"sv"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_sv);\n"sw"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_sw);"ta"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_ta);"te"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_te);"th"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_th);"tl"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_tl);"tr"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_tr);\n"uk"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_uk);"ur"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_ur);"uz"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_uz);"vi"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_vi);"zh"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_zh);if("zh_CN"==goog.LOCALE||"zh-CN"==goog.LOCALE)goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_zh_CN;\nif("zh_HK"==goog.LOCALE||"zh-HK"==goog.LOCALE)goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_zh_HK;if("zh_TW"==goog.LOCALE||"zh-TW"==goog.LOCALE)goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_zh_TW;"zu"==goog.LOCALE&&(goog.i18n.DateTimePatterns=goog.i18n.DateTimePatterns_zu);goog.ui.DatePickerRenderer=function(){};goog.ui.DatePickerRenderer.prototype.renderNavigationRow=goog.abstractMethod;goog.ui.DatePickerRenderer.prototype.renderFooterRow=goog.abstractMethod;goog.ui.DefaultDatePickerRenderer=function(a,b){this.baseCssClass_=a;this.dom_=b||goog.dom.getDomHelper()};goog.ui.DefaultDatePickerRenderer.prototype.getDomHelper=function(){return this.dom_};goog.ui.DefaultDatePickerRenderer.prototype.getBaseCssClass=function(){return this.baseCssClass_};\ngoog.ui.DefaultDatePickerRenderer.prototype.renderNavigationRow=function(a,b,c,d){b?(d=this.getDomHelper().createElement("TD"),d.colSpan=c?1:2,this.createButton_(d,"\\u00ab",this.getBaseCssClass()+"-previousMonth"),a.appendChild(d),d=this.getDomHelper().createElement("TD"),d.colSpan=c?6:5,d.className=this.getBaseCssClass()+"-monthyear",a.appendChild(d),d=this.getDomHelper().createElement("TD"),this.createButton_(d,"\\u00bb",this.getBaseCssClass()+"-nextMonth"),a.appendChild(d)):(c=this.getDomHelper().createElement("TD"),\nc.colSpan=5,this.createButton_(c,"\\u00ab",this.getBaseCssClass()+"-previousMonth"),this.createButton_(c,"",this.getBaseCssClass()+"-month"),this.createButton_(c,"\\u00bb",this.getBaseCssClass()+"-nextMonth"),b=this.getDomHelper().createElement("TD"),b.colSpan=3,this.createButton_(b,"\\u00ab",this.getBaseCssClass()+"-previousYear"),this.createButton_(b,"",this.getBaseCssClass()+"-year"),this.createButton_(b,"\\u00bb",this.getBaseCssClass()+"-nextYear"),d.indexOf("y")<d.indexOf("m")?(a.appendChild(b),\na.appendChild(c)):(a.appendChild(c),a.appendChild(b)))};\ngoog.ui.DefaultDatePickerRenderer.prototype.renderFooterRow=function(a,b){var c=this.getDomHelper().createElement("TD");c.colSpan=b?2:3;c.className=this.getBaseCssClass()+"-today-cont";var d=goog.getMsg("Today");this.createButton_(c,d,this.getBaseCssClass()+"-today-btn");a.appendChild(c);c=this.getDomHelper().createElement("TD");c.colSpan=b?4:3;a.appendChild(c);c=this.getDomHelper().createElement("TD");c.colSpan=2;c.className=this.getBaseCssClass()+"-none-cont";d=goog.getMsg("None");this.createButton_(c,\nd,this.getBaseCssClass()+"-none-btn");a.appendChild(c)};goog.ui.DefaultDatePickerRenderer.prototype.createButton_=function(a,b,c){var d=[this.getBaseCssClass()+"-btn"];c&&d.push(c);c=this.getDomHelper().createElement("BUTTON");c.className=d.join(" ");c.appendChild(this.getDomHelper().createTextNode(b));a.appendChild(c);return c};goog.ui.DatePicker=function(a,b,c,d){goog.ui.Component.call(this,c);this.symbols_=b||goog.i18n.DateTimeSymbols;this.wdayNames_=this.symbols_.STANDALONESHORTWEEKDAYS;this.i18nDateFormatterDay_=new goog.i18n.DateTimeFormat("d",this.symbols_);this.i18nDateFormatterDay2_=new goog.i18n.DateTimeFormat("dd",this.symbols_);this.i18nDateFormatterWeek_=new goog.i18n.DateTimeFormat("w",this.symbols_);this.i18nDateFormatterYear_=new goog.i18n.DateTimeFormat(goog.i18n.DateTimePatterns.YEAR_FULL||"y",this.symbols_);\nthis.i18nDateFormatterMonthYear_=new goog.i18n.DateTimeFormat(goog.i18n.DateTimePatterns.YEAR_MONTH_FULL||"MMMM y",this.symbols_);this.renderer_=d||new goog.ui.DefaultDatePickerRenderer(this.getBaseCssClass(),this.getDomHelper());this.date_=new goog.date.Date(a);this.date_.setFirstWeekCutOffDay(this.symbols_.FIRSTWEEKCUTOFFDAY);this.date_.setFirstDayOfWeek(this.symbols_.FIRSTDAYOFWEEK);this.activeMonth_=this.date_.clone();this.activeMonth_.setDate(1);this.wdayStyles_=" ".split(" ");this.wdayStyles_[this.symbols_.WEEKENDRANGE[0]]=\nthis.getBaseCssClass()+"-wkend-start";this.wdayStyles_[this.symbols_.WEEKENDRANGE[1]]=this.getBaseCssClass()+"-wkend-end";this.keyHandlers_={};this.grid_=[]};goog.inherits(goog.ui.DatePicker,goog.ui.Component);goog.tagUnsealableClass(goog.ui.DatePicker);goog.ui.DatePicker.prototype.showFixedNumWeeks_=!0;goog.ui.DatePicker.prototype.showOtherMonths_=!0;goog.ui.DatePicker.prototype.userSelectableDateRange_=goog.date.DateRange.allTime();goog.ui.DatePicker.prototype.extraWeekAtEnd_=!0;\ngoog.ui.DatePicker.prototype.showWeekNum_=!0;goog.ui.DatePicker.prototype.showWeekdays_=!0;goog.ui.DatePicker.prototype.allowNone_=!0;goog.ui.DatePicker.prototype.showToday_=!0;goog.ui.DatePicker.prototype.simpleNavigation_=!1;goog.ui.DatePicker.prototype.decoratorFunction_=null;goog.ui.DatePicker.prototype.longDateFormat_=!1;goog.ui.DatePicker.prototype.elNavRow_=null;goog.ui.DatePicker.prototype.elMonthYear_=null;goog.ui.DatePicker.prototype.elFootRow_=null;\ngoog.ui.DatePicker.prototype.cellIdGenerator_=goog.ui.IdGenerator.getInstance();goog.ui.DatePicker.BASE_CSS_CLASS_="goog-date-picker";goog.ui.DatePicker.YEAR_MENU_RANGE_=5;goog.ui.DatePicker.Events={CHANGE:"change",CHANGE_ACTIVE_MONTH:"changeActiveMonth",SELECT:"select"};goog.ui.DatePicker.prototype.isCreated=goog.ui.DatePicker.prototype.isInDocument;goog.ui.DatePicker.prototype.getFirstWeekday=function(){return this.activeMonth_.getFirstDayOfWeek()};goog.ui.DatePicker.prototype.getWeekdayClass=function(a){return this.wdayStyles_[a]};\ngoog.ui.DatePicker.prototype.getShowFixedNumWeeks=function(){return this.showFixedNumWeeks_};goog.ui.DatePicker.prototype.getShowOtherMonths=function(){return this.showOtherMonths_};goog.ui.DatePicker.prototype.getExtraWeekAtEnd=function(){return this.extraWeekAtEnd_};goog.ui.DatePicker.prototype.getShowWeekNum=function(){return this.showWeekNum_};goog.ui.DatePicker.prototype.getShowWeekdayNames=function(){return this.showWeekdays_};goog.ui.DatePicker.prototype.getAllowNone=function(){return this.allowNone_};\ngoog.ui.DatePicker.prototype.getShowToday=function(){return this.showToday_};goog.ui.DatePicker.prototype.getBaseCssClass=function(){return goog.ui.DatePicker.BASE_CSS_CLASS_};goog.ui.DatePicker.prototype.setFirstWeekday=function(a){this.activeMonth_.setFirstDayOfWeek(a);this.updateCalendarGrid_();this.redrawWeekdays_()};goog.ui.DatePicker.prototype.setWeekdayClass=function(a,b){this.wdayStyles_[a]=b;this.redrawCalendarGrid_()};\ngoog.ui.DatePicker.prototype.setShowFixedNumWeeks=function(a){this.showFixedNumWeeks_=a;this.updateCalendarGrid_()};goog.ui.DatePicker.prototype.setShowOtherMonths=function(a){this.showOtherMonths_=a;this.redrawCalendarGrid_()};goog.ui.DatePicker.prototype.setUserSelectableDateRange=function(a){this.userSelectableDateRange_=a};goog.ui.DatePicker.prototype.getUserSelectableDateRange=function(){return this.userSelectableDateRange_};goog.ui.DatePicker.prototype.isUserSelectableDate_=function(a){return this.userSelectableDateRange_.contains(a)};\ngoog.ui.DatePicker.prototype.setUseSimpleNavigationMenu=function(a){this.simpleNavigation_=a;this.updateNavigationRow_();this.updateCalendarGrid_()};goog.ui.DatePicker.prototype.setExtraWeekAtEnd=function(a){this.extraWeekAtEnd_=a;this.updateCalendarGrid_()};goog.ui.DatePicker.prototype.setShowWeekNum=function(a){this.showWeekNum_=a;this.updateNavigationRow_();this.updateFooterRow_();this.updateCalendarGrid_()};\ngoog.ui.DatePicker.prototype.setShowWeekdayNames=function(a){this.showWeekdays_=a;this.redrawWeekdays_();this.redrawCalendarGrid_()};goog.ui.DatePicker.prototype.setUseNarrowWeekdayNames=function(a){this.wdayNames_=a?this.symbols_.STANDALONENARROWWEEKDAYS:this.symbols_.STANDALONESHORTWEEKDAYS;this.redrawWeekdays_()};goog.ui.DatePicker.prototype.setAllowNone=function(a){this.allowNone_=a;this.elNone_&&this.updateTodayAndNone_()};\ngoog.ui.DatePicker.prototype.setShowToday=function(a){this.showToday_=a;this.elToday_&&this.updateTodayAndNone_()};goog.ui.DatePicker.prototype.updateTodayAndNone_=function(){goog.style.setElementShown(this.elToday_,this.showToday_);goog.style.setElementShown(this.elNone_,this.allowNone_);goog.style.setElementShown(this.tableFoot_,this.showToday_||this.allowNone_)};goog.ui.DatePicker.prototype.setDecorator=function(a){this.decoratorFunction_=a};\ngoog.ui.DatePicker.prototype.setLongDateFormat=function(a){this.longDateFormat_=a;this.redrawCalendarGrid_()};goog.ui.DatePicker.prototype.previousMonth=function(){this.activeMonth_.add(new goog.date.Interval(goog.date.Interval.MONTHS,-1));this.updateCalendarGrid_();this.fireChangeActiveMonthEvent_()};goog.ui.DatePicker.prototype.nextMonth=function(){this.activeMonth_.add(new goog.date.Interval(goog.date.Interval.MONTHS,1));this.updateCalendarGrid_();this.fireChangeActiveMonthEvent_()};\ngoog.ui.DatePicker.prototype.previousYear=function(){this.activeMonth_.add(new goog.date.Interval(goog.date.Interval.YEARS,-1));this.updateCalendarGrid_();this.fireChangeActiveMonthEvent_()};goog.ui.DatePicker.prototype.nextYear=function(){this.activeMonth_.add(new goog.date.Interval(goog.date.Interval.YEARS,1));this.updateCalendarGrid_();this.fireChangeActiveMonthEvent_()};goog.ui.DatePicker.prototype.selectToday=function(){this.setDate(new goog.date.Date)};\ngoog.ui.DatePicker.prototype.selectNone=function(){this.allowNone_&&this.setDate(null)};goog.ui.DatePicker.prototype.getActiveMonth=function(){return this.activeMonth_.clone()};goog.ui.DatePicker.prototype.getDate=function(){return this.date_&&this.date_.clone()};goog.ui.DatePicker.prototype.getDateAt=function(a,b){return this.grid_[a]?this.grid_[a][b]?this.grid_[a][b].clone():null:null};\ngoog.ui.DatePicker.prototype.getDateElementAt=function(a,b){if(0>a||0>b)return null;var c=a+1;return this.elTable_[c]?this.elTable_[c][b+1]||null:null};goog.ui.DatePicker.prototype.setDate=function(a){this.setDate_(a,!0)};\ngoog.ui.DatePicker.prototype.setDate_=function(a,b){var c=a==this.date_||a&&this.date_&&a.getFullYear()==this.date_.getFullYear()&&a.getMonth()==this.date_.getMonth(),d=a==this.date_||c&&a.getDate()==this.date_.getDate();this.date_=a&&new goog.date.Date(a);a&&(this.activeMonth_.set(this.date_),this.activeMonth_.setFullYear(this.date_.getFullYear()),this.activeMonth_.setDate(1));this.updateCalendarGrid_();if(b){var e=new goog.ui.DatePickerEvent(goog.ui.DatePicker.Events.SELECT,this,this.date_);this.dispatchEvent(e)}d||\n(d=new goog.ui.DatePickerEvent(goog.ui.DatePicker.Events.CHANGE,this,this.date_),this.dispatchEvent(d));c||this.fireChangeActiveMonthEvent_()};\ngoog.ui.DatePicker.prototype.updateNavigationRow_=function(){if(this.elNavRow_){for(var a=this.elNavRow_;a.firstChild;)a.removeChild(a.firstChild);var b=this.symbols_.DATEFORMATS[goog.i18n.DateTimeFormat.Format.FULL_DATE].toLowerCase();this.renderer_.renderNavigationRow(a,this.simpleNavigation_,this.showWeekNum_,b);this.simpleNavigation_?(this.addPreventDefaultClickHandler_(a,this.getBaseCssClass()+"-previousMonth",this.previousMonth),this.addPreventDefaultClickHandler_(a,this.getBaseCssClass()+"-nextMonth",\nthis.nextMonth),this.elMonthYear_=goog.dom.getElementByClass(this.getBaseCssClass()+"-monthyear",a)):(this.addPreventDefaultClickHandler_(a,this.getBaseCssClass()+"-previousMonth",this.previousMonth),this.addPreventDefaultClickHandler_(a,this.getBaseCssClass()+"-nextMonth",this.nextMonth),this.addPreventDefaultClickHandler_(a,this.getBaseCssClass()+"-month",this.showMonthMenu_),this.addPreventDefaultClickHandler_(a,this.getBaseCssClass()+"-previousYear",this.previousYear),this.addPreventDefaultClickHandler_(a,\nthis.getBaseCssClass()+"-nextYear",this.nextYear),this.addPreventDefaultClickHandler_(a,this.getBaseCssClass()+"-year",this.showYearMenu_),this.elMonth_=goog.dom.getElementByClass(this.getBaseCssClass()+"-month",a),this.elYear_=goog.dom.getDomHelper().getElementByClass(this.getBaseCssClass()+"-year",a))}};\ngoog.ui.DatePicker.prototype.addPreventDefaultClickHandler_=function(a,b,c){a=goog.dom.getElementByClass(b,a);this.getHandler().listen(a,goog.events.EventType.CLICK,function(a){a.preventDefault();c.call(this,a)})};\ngoog.ui.DatePicker.prototype.updateFooterRow_=function(){if(this.elFootRow_){var a=this.elFootRow_;goog.dom.removeChildren(a);this.renderer_.renderFooterRow(a,this.showWeekNum_);this.addPreventDefaultClickHandler_(a,this.getBaseCssClass()+"-today-btn",this.selectToday);this.addPreventDefaultClickHandler_(a,this.getBaseCssClass()+"-none-btn",this.selectNone);this.elToday_=goog.dom.getElementByClass(this.getBaseCssClass()+"-today-btn",a);this.elNone_=goog.dom.getElementByClass(this.getBaseCssClass()+\n"-none-btn",a);this.updateTodayAndNone_()}};\ngoog.ui.DatePicker.prototype.decorateInternal=function(a){goog.ui.DatePicker.superClass_.decorateInternal.call(this,a);goog.asserts.assert(a);goog.dom.classlist.add(a,this.getBaseCssClass());var b=this.dom_.createElement("TABLE"),c=this.dom_.createElement("THEAD"),d=this.dom_.createElement("TBODY"),e=this.dom_.createElement("TFOOT");goog.a11y.aria.setRole(d,"grid");d.tabIndex=0;this.tableBody_=d;this.tableFoot_=e;var f=this.dom_.createElement("TR");f.className=this.getBaseCssClass()+"-head";this.elNavRow_=\nf;this.updateNavigationRow_();c.appendChild(f);var g;this.elTable_=[];for(var h=0;7>h;h++){f=this.dom_.createElement("TR");this.elTable_[h]=[];for(var k=0;8>k;k++)g=this.dom_.createElement(0==k||0==h?"th":"td"),0!=k&&0!=h||k==h||(g.className=0==k?this.getBaseCssClass()+"-week":this.getBaseCssClass()+"-wday",goog.a11y.aria.setRole(g,0==k?"rowheader":"columnheader")),f.appendChild(g),this.elTable_[h][k]=g;d.appendChild(f)}f=this.dom_.createElement("TR");f.className=this.getBaseCssClass()+"-foot";this.elFootRow_=\nf;this.updateFooterRow_();e.appendChild(f);b.cellSpacing="0";b.cellPadding="0";b.appendChild(c);b.appendChild(d);b.appendChild(e);a.appendChild(b);this.redrawWeekdays_();this.updateCalendarGrid_();a.tabIndex=0};goog.ui.DatePicker.prototype.createDom=function(){goog.ui.DatePicker.superClass_.createDom.call(this);this.decorateInternal(this.getElement())};\ngoog.ui.DatePicker.prototype.enterDocument=function(){goog.ui.DatePicker.superClass_.enterDocument.call(this);var a=this.getHandler();a.listen(this.tableBody_,goog.events.EventType.CLICK,this.handleGridClick_);a.listen(this.getKeyHandlerForElement_(this.getElement()),goog.events.KeyHandler.EventType.KEY,this.handleGridKeyPress_)};\ngoog.ui.DatePicker.prototype.exitDocument=function(){goog.ui.DatePicker.superClass_.exitDocument.call(this);this.destroyMenu_();for(var a in this.keyHandlers_)this.keyHandlers_[a].dispose();this.keyHandlers_={}};goog.ui.DatePicker.prototype.create=goog.ui.DatePicker.prototype.decorate;\ngoog.ui.DatePicker.prototype.disposeInternal=function(){goog.ui.DatePicker.superClass_.disposeInternal.call(this);this.elNone_=this.elToday_=this.elYear_=this.elMonthYear_=this.elMonth_=this.elFootRow_=this.elNavRow_=this.tableFoot_=this.tableBody_=this.elTable_=null};\ngoog.ui.DatePicker.prototype.handleGridClick_=function(a){if("TD"==a.target.tagName){var b,c=-2,d=-2;for(b=a.target;b;b=b.previousSibling,c++);for(b=a.target.parentNode;b;b=b.previousSibling,d++);a=this.grid_[d][c];this.isUserSelectableDate_(a)&&this.setDate(a.clone())}};\ngoog.ui.DatePicker.prototype.handleGridKeyPress_=function(a){var b,c;switch(a.keyCode){case 33:a.preventDefault();b=-1;break;case 34:a.preventDefault();b=1;break;case 37:a.preventDefault();c=-1;break;case 39:a.preventDefault();c=1;break;case 38:a.preventDefault();c=-7;break;case 40:a.preventDefault();c=7;break;case 36:a.preventDefault(),this.selectToday();case 46:a.preventDefault();this.selectNone();break;case 13:case 32:a.preventDefault(),this.setDate_(this.date_,!0);default:return}this.date_?(a=\nthis.date_.clone(),a.add(new goog.date.Interval(0,b,c))):(a=this.activeMonth_.clone(),a.setDate(1));this.isUserSelectableDate_(a)&&this.setDate_(a,!1)};goog.ui.DatePicker.prototype.showMonthMenu_=function(a){a.stopPropagation();a=[];for(var b=0;12>b;b++)a.push(this.symbols_.STANDALONEMONTHS[b]);this.createMenu_(this.elMonth_,a,this.handleMonthMenuClick_,this.symbols_.STANDALONEMONTHS[this.activeMonth_.getMonth()])};\ngoog.ui.DatePicker.prototype.showYearMenu_=function(a){a.stopPropagation();a=[];for(var b=this.activeMonth_.getFullYear(),c=this.activeMonth_.clone(),d=-goog.ui.DatePicker.YEAR_MENU_RANGE_;d<=goog.ui.DatePicker.YEAR_MENU_RANGE_;d++)c.setFullYear(b+d),a.push(this.i18nDateFormatterYear_.format(c));this.createMenu_(this.elYear_,a,this.handleYearMenuClick_,this.i18nDateFormatterYear_.format(this.activeMonth_))};\ngoog.ui.DatePicker.prototype.handleMonthMenuClick_=function(a){a=Number(a.getAttribute("itemIndex"));this.activeMonth_.setMonth(a);this.updateCalendarGrid_();this.elMonth_.focus&&this.elMonth_.focus()};goog.ui.DatePicker.prototype.handleYearMenuClick_=function(a){if(a.firstChild.nodeType==goog.dom.NodeType.TEXT){a=Number(a.getAttribute("itemIndex"));var b=this.activeMonth_.getFullYear();this.activeMonth_.setFullYear(b+a-goog.ui.DatePicker.YEAR_MENU_RANGE_);this.updateCalendarGrid_()}this.elYear_.focus()};\ngoog.ui.DatePicker.prototype.createMenu_=function(a,b,c,d){this.destroyMenu_();var e=this.dom_.createElement("DIV");e.className=this.getBaseCssClass()+"-menu";this.menuSelected_=null;for(var f=this.dom_.createElement("UL"),g=0;g<b.length;g++){var h=this.dom_.createDom("LI",null,b[g]);h.setAttribute("itemIndex",g);b[g]==d&&(this.menuSelected_=h);f.appendChild(h)}e.appendChild(f);e.style.left=a.offsetLeft+a.parentNode.offsetLeft+"px";e.style.top=a.offsetTop+"px";e.style.width=a.clientWidth+"px";this.elMonth_.parentNode.appendChild(e);\nthis.menu_=e;this.menuSelected_||(this.menuSelected_=f.firstChild);this.menuSelected_.className=this.getBaseCssClass()+"-menu-selected";this.menuCallback_=c;a=this.getHandler();a.listen(this.menu_,goog.events.EventType.CLICK,this.handleMenuClick_);a.listen(this.getKeyHandlerForElement_(this.menu_),goog.events.KeyHandler.EventType.KEY,this.handleMenuKeyPress_);a.listen(this.dom_.getDocument(),goog.events.EventType.CLICK,this.destroyMenu_);e.tabIndex=0;e.focus()};\ngoog.ui.DatePicker.prototype.handleMenuClick_=function(a){a.stopPropagation();this.destroyMenu_();this.menuCallback_&&this.menuCallback_(a.target)};\ngoog.ui.DatePicker.prototype.handleMenuKeyPress_=function(a){a.stopPropagation();var b,c=this.menuSelected_;switch(a.keyCode){case 35:a.preventDefault();b=c.parentNode.lastChild;break;case 36:a.preventDefault();b=c.parentNode.firstChild;break;case 38:a.preventDefault();b=c.previousSibling;break;case 40:a.preventDefault();b=c.nextSibling;break;case 13:case 9:case 0:a.preventDefault(),this.destroyMenu_(),this.menuCallback_(c)}b&&b!=c&&(c.className="",b.className=this.getBaseCssClass()+"-menu-selected",\nthis.menuSelected_=b)};goog.ui.DatePicker.prototype.destroyMenu_=function(){if(this.menu_){var a=this.getHandler();a.unlisten(this.menu_,goog.events.EventType.CLICK,this.handleMenuClick_);a.unlisten(this.getKeyHandlerForElement_(this.menu_),goog.events.KeyHandler.EventType.KEY,this.handleMenuKeyPress_);a.unlisten(this.dom_.getDocument(),goog.events.EventType.CLICK,this.destroyMenu_);goog.dom.removeNode(this.menu_);delete this.menu_}};\ngoog.ui.DatePicker.prototype.updateCalendarGrid_=function(){if(this.getElement()){var a=this.activeMonth_.clone();a.setDate(1);this.elMonthYear_&&goog.dom.setTextContent(this.elMonthYear_,this.i18nDateFormatterMonthYear_.format(a));this.elMonth_&&goog.dom.setTextContent(this.elMonth_,this.symbols_.STANDALONEMONTHS[a.getMonth()]);this.elYear_&&goog.dom.setTextContent(this.elYear_,this.i18nDateFormatterYear_.format(a));var b=a.getWeekday(),c=a.getNumberOfDaysInMonth();a.add(new goog.date.Interval(goog.date.Interval.MONTHS,\n-1));a.setDate(a.getNumberOfDaysInMonth()-(b-1));this.showFixedNumWeeks_&&!this.extraWeekAtEnd_&&33>c+b&&a.add(new goog.date.Interval(goog.date.Interval.DAYS,-7));b=new goog.date.Interval(goog.date.Interval.DAYS,1);this.grid_=[];for(c=0;6>c;c++){this.grid_[c]=[];for(var d=0;7>d;d++){this.grid_[c][d]=a.clone();var e=a.getFullYear();a.add(b);0==a.getMonth()&&1==a.getDate()&&e++;a.setFullYear(e)}}this.redrawCalendarGrid_()}};\ngoog.ui.DatePicker.prototype.redrawCalendarGrid_=function(){if(this.getElement())for(var a=this.activeMonth_.getMonth(),b=new goog.date.Date,c=b.getFullYear(),d=b.getMonth(),b=b.getDate(),e=0;6>e;e++){this.showWeekNum_?(goog.dom.setTextContent(this.elTable_[e+1][0],this.i18nDateFormatterWeek_.format(this.grid_[e][0])),goog.dom.classlist.set(this.elTable_[e+1][0],this.getBaseCssClass()+"-week")):(goog.dom.setTextContent(this.elTable_[e+1][0],""),goog.dom.classlist.set(this.elTable_[e+1][0],""));for(var f=\n0;7>f;f++){var g=this.grid_[e][f],h=this.elTable_[e+1][f+1];h.id||(h.id=this.cellIdGenerator_.getNextUniqueId());goog.asserts.assert(h,"The table DOM element cannot be null.");goog.a11y.aria.setRole(h,"gridcell");var k=[this.getBaseCssClass()+"-date"];this.isUserSelectableDate_(g)||k.push(this.getBaseCssClass()+"-unavailable-date");if(this.showOtherMonths_||g.getMonth()==a){g.getMonth()!=a&&k.push(this.getBaseCssClass()+"-other-month");var l=(f+this.activeMonth_.getFirstDayOfWeek()+7)%7;this.wdayStyles_[l]&&\nk.push(this.wdayStyles_[l]);g.getDate()==b&&g.getMonth()==d&&g.getFullYear()==c&&k.push(this.getBaseCssClass()+"-today");this.date_&&g.getDate()==this.date_.getDate()&&g.getMonth()==this.date_.getMonth()&&g.getFullYear()==this.date_.getFullYear()&&(k.push(this.getBaseCssClass()+"-selected"),goog.asserts.assert(this.tableBody_,"The table body DOM element cannot be null"),goog.a11y.aria.setState(this.tableBody_,"activedescendant",h.id));this.decoratorFunction_&&(l=this.decoratorFunction_(g))&&k.push(l);\ng=this.longDateFormat_?this.i18nDateFormatterDay2_.format(g):this.i18nDateFormatterDay_.format(g);goog.dom.setTextContent(h,g)}else goog.dom.setTextContent(h,"");goog.dom.classlist.set(h,k.join(" "))}4<=e&&goog.style.setElementShown(this.elTable_[e+1][0].parentElement||this.elTable_[e+1][0].parentNode,this.grid_[e][0].getMonth()==a||this.showFixedNumWeeks_)}};\ngoog.ui.DatePicker.prototype.fireChangeActiveMonthEvent_=function(){var a=new goog.ui.DatePickerEvent(goog.ui.DatePicker.Events.CHANGE_ACTIVE_MONTH,this,this.getActiveMonth());this.dispatchEvent(a)};\ngoog.ui.DatePicker.prototype.redrawWeekdays_=function(){if(this.getElement()){if(this.showWeekdays_)for(var a=0;7>a;a++){var b=this.elTable_[0][a+1],c=(a+this.activeMonth_.getFirstDayOfWeek()+7)%7;goog.dom.setTextContent(b,this.wdayNames_[(c+1)%7])}goog.style.setElementShown(this.elTable_[0][0].parentElement||this.elTable_[0][0].parentNode,this.showWeekdays_)}};\ngoog.ui.DatePicker.prototype.getKeyHandlerForElement_=function(a){var b=goog.getUid(a);b in this.keyHandlers_||(this.keyHandlers_[b]=new goog.events.KeyHandler(a));return this.keyHandlers_[b]};goog.ui.DatePickerEvent=function(a,b,c){goog.events.Event.call(this,a,b);this.date=c};goog.inherits(goog.ui.DatePickerEvent,goog.events.Event);\n// Copyright 2013 Google Inc. Apache License 2.0\nvar Blockly={Blocks:{}};\n// Copyright 2016 Google Inc. Apache License 2.0\nBlockly.Touch={};Blockly.Touch.touchIdentifier_=null;Blockly.Touch.onTouchUpWrapper_=null;Blockly.Touch.TOUCH_MAP={};goog.events.BrowserFeature.TOUCH_ENABLED&&(Blockly.Touch.TOUCH_MAP={mousedown:["touchstart"],mousemove:["touchmove"],mouseup:["touchend","touchcancel"]});Blockly.longPid_=0;Blockly.longStart_=function(a,b){Blockly.longStop_();Blockly.longPid_=setTimeout(function(){a.button=2;b.onMouseDown_(a)},Blockly.LONGPRESS)};\nBlockly.longStop_=function(){Blockly.longPid_&&(clearTimeout(Blockly.longPid_),Blockly.longPid_=0)};\nBlockly.onMouseUp_=function(a){a=Blockly.getMainWorkspace();a.dragMode_!=Blockly.DRAG_NONE&&(Blockly.Touch.clearTouchIdentifier(),Blockly.Css.setCursor(Blockly.Css.Cursor.OPEN),a.dragMode_=Blockly.DRAG_NONE,Blockly.Touch.onTouchUpWrapper_&&(Blockly.unbindEvent_(Blockly.Touch.onTouchUpWrapper_),Blockly.Touch.onTouchUpWrapper_=null),Blockly.onMouseMoveWrapper_&&(Blockly.unbindEvent_(Blockly.onMouseMoveWrapper_),Blockly.onMouseMoveWrapper_=null))};\nBlockly.onMouseMove_=function(a){var b=Blockly.getMainWorkspace();if(b.dragMode_!=Blockly.DRAG_NONE){var c=a.clientX-b.startDragMouseX,d=a.clientY-b.startDragMouseY,e=b.startDragMetrics,f=b.startScrollX+c,g=b.startScrollY+d,f=Math.min(f,-e.contentLeft),g=Math.min(g,-e.contentTop),f=Math.max(f,e.viewWidth-e.contentLeft-e.contentWidth),g=Math.max(g,e.viewHeight-e.contentTop-e.contentHeight);b.scrollbar.set(-f-e.contentLeft,-g-e.contentTop);Math.sqrt(c*c+d*d)>Blockly.DRAG_RADIUS&&(Blockly.longStop_(),\nb.dragMode_=Blockly.DRAG_FREE);a.stopPropagation();a.preventDefault()}};Blockly.Touch.clearTouchIdentifier=function(){Blockly.Touch.touchIdentifier_=null};Blockly.Touch.shouldHandleEvent=function(a){return!Blockly.Touch.isMouseOrTouchEvent(a)||Blockly.Touch.checkTouchIdentifier(a)};\nBlockly.Touch.checkTouchIdentifier=function(a){var b=a.changedTouches&&a.changedTouches[0]&&void 0!=a.changedTouches[0].identifier&&null!=a.changedTouches[0].identifier?a.changedTouches[0].identifier:"mouse";return void 0!=Blockly.Touch.touchIdentifier_&&null!=Blockly.Touch.touchIdentifier_?Blockly.Touch.touchIdentifier_==b:"mousedown"==a.type||"touchstart"==a.type?(Blockly.Touch.touchIdentifier_=b,!0):!1};\nBlockly.Touch.setClientFromTouch=function(a){if(goog.string.startsWith(a.type,"touch")){var b=a.changedTouches[0];a.clientX=b.clientX;a.clientY=b.clientY}};Blockly.Touch.isMouseOrTouchEvent=function(a){return goog.string.startsWith(a.type,"touch")||goog.string.startsWith(a.type,"mouse")};\nBlockly.Touch.splitEventByTouches=function(a){var b=[];if(a.changedTouches)for(var c=0;c<a.changedTouches.length;c++)b[c]={type:a.type,changedTouches:[a.changedTouches[c]],target:a.target,stopPropagation:function(){a.stopPropagation()},preventDefault:function(){a.preventDefault()}};else b.push(a);return b};\n// Copyright 2012 Google Inc. Apache License 2.0\nBlockly.Workspace=function(a){this.id=Blockly.genUid();Blockly.Workspace.WorkspaceDB_[this.id]=this;this.options=a||{};this.RTL=!!this.options.RTL;this.horizontalLayout=!!this.options.horizontalLayout;this.toolboxPosition=this.options.toolboxPosition;this.topBlocks_=[];this.listeners_=[];this.undoStack_=[];this.redoStack_=[];this.blockDB_=Object.create(null);this.variableList=[]};Blockly.Workspace.prototype.rendered=!1;Blockly.Workspace.prototype.MAX_UNDO=1024;\nBlockly.Workspace.prototype.dispose=function(){this.listeners_.length=0;this.clear();delete Blockly.Workspace.WorkspaceDB_[this.id]};Blockly.Workspace.SCAN_ANGLE=3;Blockly.Workspace.prototype.addTopBlock=function(a){this.topBlocks_.push(a);if(this.isFlyout){a=Blockly.Variables.allUsedVariables(a);for(var b=0;b<a.length;b++)-1==this.variableList.indexOf(a[b])&&this.variableList.push(a[b])}};\nBlockly.Workspace.prototype.removeTopBlock=function(a){if(!goog.array.remove(this.topBlocks_,a))throw"Block not present in workspace\'s list of top-most blocks.";};Blockly.Workspace.prototype.getTopBlocks=function(a){var b=[].concat(this.topBlocks_);if(a&&1<b.length){var c=Math.sin(goog.math.toRadians(Blockly.Workspace.SCAN_ANGLE));this.RTL&&(c*=-1);b.sort(function(a,b){var d=a.getRelativeToSurfaceXY(),e=b.getRelativeToSurfaceXY();return d.y+c*d.x-(e.y+c*e.x)})}return b};\nBlockly.Workspace.prototype.getAllBlocks=function(){for(var a=this.getTopBlocks(!1),b=0;b<a.length;b++)a.push.apply(a,a[b].getChildren());return a};Blockly.Workspace.prototype.clear=function(){var a=Blockly.Events.getGroup();for(a||Blockly.Events.setGroup(!0);this.topBlocks_.length;)this.topBlocks_[0].dispose();a||Blockly.Events.setGroup(!1);this.variableList.length=0};\nBlockly.Workspace.prototype.updateVariableList=function(a){if(!this.isFlyout){a&&(this.variableList.length=0);a=Blockly.Variables.allUsedVariables(this);for(var b=0;b<a.length;b++)this.createVariable(a[b])}};\nBlockly.Workspace.prototype.renameVariable=function(a,b){var c=this.variableIndexOf(a),d=this.variableIndexOf(b);if(-1!=d&&this.variableList[d]!=b)var e=this.variableList[d];Blockly.Events.setGroup(!0);for(var f=this.getAllBlocks(),g=0;g<f.length;g++)f[g].renameVar(a,b),e&&f[g].renameVar(e,b);Blockly.Events.setGroup(!1);c==d||-1!=c&&-1==d?this.variableList[c]=b:-1!=c&&-1!=d?(this.variableList.splice(c,1),this.variableList[d]=b):(this.variableList.push(b),console.log("Tried to rename an non-existent variable."))};\nBlockly.Workspace.prototype.createVariable=function(a){-1==this.variableIndexOf(a)&&this.variableList.push(a)};Blockly.Workspace.prototype.getVariableUses=function(a){for(var b=[],c=this.getAllBlocks(),d=0;d<c.length;d++){var e=c[d].getVars();if(e)for(var f=0;f<e.length;f++){var g=e[f];g&&Blockly.Names.equals(g,a)&&b.push(c[d])}}return b};\nBlockly.Workspace.prototype.deleteVariable=function(a){var b=this.variableIndexOf(a);if(-1!=b){var c=this.getVariableUses(a);if(1<c.length){for(var d=0,e;e=c[d];d++)if("procedures_defnoreturn"==e.type||"procedures_defreturn"==e.type){b=e.getFieldValue("NAME");window.alert(Blockly.Msg.CANNOT_DELETE_VARIABLE_PROCEDURE.replace("%1",a).replace("%2",b));return}if(!window.confirm(Blockly.Msg.DELETE_VARIABLE_CONFIRMATION.replace("%1",c.length).replace("%2",a)))return}Blockly.Events.setGroup(!0);for(d=0;d<\nc.length;d++)c[d].dispose(!0,!1);Blockly.Events.setGroup(!1);this.variableList.splice(b,1)}};Blockly.Workspace.prototype.variableIndexOf=function(a){for(var b=0,c;c=this.variableList[b];b++)if(Blockly.Names.equals(c,a))return b;return-1};Blockly.Workspace.prototype.getWidth=function(){return 0};Blockly.Workspace.prototype.newBlock=function(a,b){return new Blockly.Block(this,a,b)};\nBlockly.Workspace.prototype.remainingCapacity=function(){return isNaN(this.options.maxBlocks)?Infinity:this.options.maxBlocks-this.getAllBlocks().length};\nBlockly.Workspace.prototype.undo=function(a){var b=a?this.redoStack_:this.undoStack_,c=a?this.undoStack_:this.redoStack_,d=b.pop();if(d){for(var e=[d];b.length&&d.group&&d.group==b[b.length-1].group;)e.push(b.pop());for(b=0;d=e[b];b++)c.push(d);e=Blockly.Events.filter(e,a);Blockly.Events.recordUndo=!1;for(b=0;d=e[b];b++)d.run(a);Blockly.Events.recordUndo=!0}};Blockly.Workspace.prototype.clearUndo=function(){this.undoStack_.length=0;this.redoStack_.length=0;Blockly.Events.clearPendingUndo()};\nBlockly.Workspace.prototype.addChangeListener=function(a){this.listeners_.push(a);return a};Blockly.Workspace.prototype.removeChangeListener=function(a){goog.array.remove(this.listeners_,a)};Blockly.Workspace.prototype.fireChangeListener=function(a){a.recordUndo&&(this.undoStack_.push(a),this.redoStack_.length=0,this.undoStack_.length>this.MAX_UNDO&&this.undoStack_.unshift());for(var b=0,c;c=this.listeners_[b];b++)c(a)};\nBlockly.Workspace.prototype.getBlockById=function(a){return this.blockDB_[a]||null};Blockly.Workspace.WorkspaceDB_=Object.create(null);Blockly.Workspace.getById=function(a){return Blockly.Workspace.WorkspaceDB_[a]||null};Blockly.Workspace.prototype.clear=Blockly.Workspace.prototype.clear;Blockly.Workspace.prototype.clearUndo=Blockly.Workspace.prototype.clearUndo;Blockly.Workspace.prototype.addChangeListener=Blockly.Workspace.prototype.addChangeListener;\nBlockly.Workspace.prototype.removeChangeListener=Blockly.Workspace.prototype.removeChangeListener;Blockly.Bubble=function(a,b,c,d,e,f){this.workspace_=a;this.content_=b;this.shape_=c;c=Blockly.Bubble.ARROW_ANGLE;this.workspace_.RTL&&(c=-c);this.arrow_radians_=goog.math.toRadians(c);a.getBubbleCanvas().appendChild(this.createDom_(b,!(!e||!f)));this.setAnchorLocation(d);e&&f||(b=this.content_.getBBox(),e=b.width+2*Blockly.Bubble.BORDER_WIDTH,f=b.height+2*Blockly.Bubble.BORDER_WIDTH);this.setBubbleSize(e,f);this.positionBubble_();this.renderArrow_();this.rendered_=!0;a.options.readOnly||(Blockly.bindEventWithChecks_(this.bubbleBack_,\n"mousedown",this,this.bubbleMouseDown_),this.resizeGroup_&&Blockly.bindEventWithChecks_(this.resizeGroup_,"mousedown",this,this.resizeMouseDown_))};Blockly.Bubble.BORDER_WIDTH=6;Blockly.Bubble.ARROW_THICKNESS=5;Blockly.Bubble.ARROW_ANGLE=20;Blockly.Bubble.ARROW_BEND=4;Blockly.Bubble.ANCHOR_RADIUS=8;Blockly.Bubble.onMouseUpWrapper_=null;Blockly.Bubble.onMouseMoveWrapper_=null;Blockly.Bubble.prototype.resizeCallback_=null;\nBlockly.Bubble.unbindDragEvents_=function(){Blockly.Bubble.onMouseUpWrapper_&&(Blockly.unbindEvent_(Blockly.Bubble.onMouseUpWrapper_),Blockly.Bubble.onMouseUpWrapper_=null);Blockly.Bubble.onMouseMoveWrapper_&&(Blockly.unbindEvent_(Blockly.Bubble.onMouseMoveWrapper_),Blockly.Bubble.onMouseMoveWrapper_=null)};Blockly.Bubble.bubbleMouseUp_=function(){Blockly.Touch.clearTouchIdentifier();Blockly.Css.setCursor(Blockly.Css.Cursor.OPEN);Blockly.Bubble.unbindDragEvents_()};\nBlockly.Bubble.prototype.rendered_=!1;Blockly.Bubble.prototype.anchorXY_=null;Blockly.Bubble.prototype.relativeLeft_=0;Blockly.Bubble.prototype.relativeTop_=0;Blockly.Bubble.prototype.width_=0;Blockly.Bubble.prototype.height_=0;Blockly.Bubble.prototype.autoLayout_=!0;\nBlockly.Bubble.prototype.createDom_=function(a,b){this.bubbleGroup_=Blockly.createSvgElement("g",{},null);var c={filter:"url(#"+this.workspace_.options.embossFilterId+")"};-1!=goog.userAgent.getUserAgentString().indexOf("JavaFX")&&(c={});c=Blockly.createSvgElement("g",c,this.bubbleGroup_);this.bubbleArrow_=Blockly.createSvgElement("path",{},c);this.bubbleBack_=Blockly.createSvgElement("rect",{"class":"blocklyDraggable",x:0,y:0,rx:Blockly.Bubble.BORDER_WIDTH,ry:Blockly.Bubble.BORDER_WIDTH},c);b?(this.resizeGroup_=\nBlockly.createSvgElement("g",{"class":this.workspace_.RTL?"blocklyResizeSW":"blocklyResizeSE"},this.bubbleGroup_),c=2*Blockly.Bubble.BORDER_WIDTH,Blockly.createSvgElement("polygon",{points:"0,x x,x x,0".replace(/x/g,c.toString())},this.resizeGroup_),Blockly.createSvgElement("line",{"class":"blocklyResizeLine",x1:c/3,y1:c-1,x2:c-1,y2:c/3},this.resizeGroup_),Blockly.createSvgElement("line",{"class":"blocklyResizeLine",x1:2*c/3,y1:c-1,x2:c-1,y2:2*c/3},this.resizeGroup_)):this.resizeGroup_=null;this.bubbleGroup_.appendChild(a);\nreturn this.bubbleGroup_};\nBlockly.Bubble.prototype.bubbleMouseDown_=function(a){this.promote_();Blockly.Bubble.unbindDragEvents_();Blockly.isRightButton(a)?a.stopPropagation():Blockly.isTargetInput_(a)||(Blockly.Css.setCursor(Blockly.Css.Cursor.CLOSED),this.workspace_.startDrag(a,new goog.math.Coordinate(this.workspace_.RTL?-this.relativeLeft_:this.relativeLeft_,this.relativeTop_)),Blockly.Bubble.onMouseUpWrapper_=Blockly.bindEventWithChecks_(document,"mouseup",this,Blockly.Bubble.bubbleMouseUp_),Blockly.Bubble.onMouseMoveWrapper_=\nBlockly.bindEventWithChecks_(document,"mousemove",this,this.bubbleMouseMove_),Blockly.hideChaff(),a.stopPropagation())};Blockly.Bubble.prototype.bubbleMouseMove_=function(a){this.autoLayout_=!1;a=this.workspace_.moveDrag(a);this.relativeLeft_=this.workspace_.RTL?-a.x:a.x;this.relativeTop_=a.y;this.positionBubble_();this.renderArrow_()};\nBlockly.Bubble.prototype.resizeMouseDown_=function(a){this.promote_();Blockly.Bubble.unbindDragEvents_();Blockly.isRightButton(a)||(Blockly.Css.setCursor(Blockly.Css.Cursor.CLOSED),this.workspace_.startDrag(a,new goog.math.Coordinate(this.workspace_.RTL?-this.width_:this.width_,this.height_)),Blockly.Bubble.onMouseUpWrapper_=Blockly.bindEventWithChecks_(document,"mouseup",this,Blockly.Bubble.bubbleMouseUp_),Blockly.Bubble.onMouseMoveWrapper_=Blockly.bindEventWithChecks_(document,"mousemove",this,\nthis.resizeMouseMove_),Blockly.hideChaff());a.stopPropagation()};Blockly.Bubble.prototype.resizeMouseMove_=function(a){this.autoLayout_=!1;a=this.workspace_.moveDrag(a);this.setBubbleSize(this.workspace_.RTL?-a.x:a.x,a.y);this.workspace_.RTL&&this.positionBubble_()};Blockly.Bubble.prototype.registerResizeEvent=function(a){this.resizeCallback_=a};Blockly.Bubble.prototype.promote_=function(){this.bubbleGroup_.parentNode.appendChild(this.bubbleGroup_)};\nBlockly.Bubble.prototype.setAnchorLocation=function(a){this.anchorXY_=a;this.rendered_&&this.positionBubble_()};\nBlockly.Bubble.prototype.layoutBubble_=function(){var a=-this.width_/4,b=-this.height_-Blockly.BlockSvg.MIN_BLOCK_Y,c=this.workspace_.getMetrics();c.viewWidth/=this.workspace_.scale;c.viewLeft/=this.workspace_.scale;var d=this.anchorXY_.x;this.workspace_.RTL?d-c.viewLeft-a-this.width_<Blockly.Scrollbar.scrollbarThickness?a=d-c.viewLeft-this.width_-Blockly.Scrollbar.scrollbarThickness:d-c.viewLeft-a>c.viewWidth&&(a=d-c.viewLeft-c.viewWidth):d+a<c.viewLeft?a=c.viewLeft-d:c.viewLeft+c.viewWidth<d+a+\nthis.width_+Blockly.BlockSvg.SEP_SPACE_X+Blockly.Scrollbar.scrollbarThickness&&(a=c.viewLeft+c.viewWidth-d-this.width_-Blockly.Scrollbar.scrollbarThickness);this.anchorXY_.y+b<c.viewTop&&(b=this.shape_.getBBox().height);this.relativeLeft_=a;this.relativeTop_=b};\nBlockly.Bubble.prototype.positionBubble_=function(){var a=this.anchorXY_.x,a=this.workspace_.RTL?a-(this.relativeLeft_+this.width_):a+this.relativeLeft_;this.bubbleGroup_.setAttribute("transform","translate("+a+","+(this.relativeTop_+this.anchorXY_.y)+")")};Blockly.Bubble.prototype.getBubbleSize=function(){return{width:this.width_,height:this.height_}};\nBlockly.Bubble.prototype.setBubbleSize=function(a,b){var c=2*Blockly.Bubble.BORDER_WIDTH;a=Math.max(a,c+45);b=Math.max(b,c+20);this.width_=a;this.height_=b;this.bubbleBack_.setAttribute("width",a);this.bubbleBack_.setAttribute("height",b);this.resizeGroup_&&(this.workspace_.RTL?this.resizeGroup_.setAttribute("transform","translate("+2*Blockly.Bubble.BORDER_WIDTH+","+(b-c)+") scale(-1 1)"):this.resizeGroup_.setAttribute("transform","translate("+(a-c)+","+(b-c)+")"));this.rendered_&&(this.autoLayout_&&\nthis.layoutBubble_(),this.positionBubble_(),this.renderArrow_());this.resizeCallback_&&this.resizeCallback_()};\nBlockly.Bubble.prototype.renderArrow_=function(){var a=[],b=this.width_/2,c=this.height_/2,d=-this.relativeLeft_,e=-this.relativeTop_;if(b==d&&c==e)a.push("M "+b+","+c);else{e-=c;d-=b;this.workspace_.RTL&&(d*=-1);var f=Math.sqrt(e*e+d*d),g=Math.acos(d/f);0>e&&(g=2*Math.PI-g);var h=g+Math.PI/2;h>2*Math.PI&&(h-=2*Math.PI);var k=Math.sin(h),l=Math.cos(h),p=this.getBubbleSize(),h=(p.width+p.height)/Blockly.Bubble.ARROW_THICKNESS,h=Math.min(h,p.width,p.height)/4,p=1-Blockly.Bubble.ANCHOR_RADIUS/f,d=b+\np*d,e=c+p*e,p=b+h*l,m=c+h*k,b=b-h*l,c=c-h*k,k=g+this.arrow_radians_;k>2*Math.PI&&(k-=2*Math.PI);g=Math.sin(k)*f/Blockly.Bubble.ARROW_BEND;f=Math.cos(k)*f/Blockly.Bubble.ARROW_BEND;a.push("M"+p+","+m);a.push("C"+(p+f)+","+(m+g)+" "+d+","+e+" "+d+","+e);a.push("C"+d+","+e+" "+(b+f)+","+(c+g)+" "+b+","+c)}a.push("z");this.bubbleArrow_.setAttribute("d",a.join(" "))};Blockly.Bubble.prototype.setColour=function(a){this.bubbleBack_.setAttribute("fill",a);this.bubbleArrow_.setAttribute("fill",a)};\nBlockly.Bubble.prototype.dispose=function(){Blockly.Bubble.unbindDragEvents_();goog.dom.removeNode(this.bubbleGroup_);this.shape_=this.content_=this.workspace_=this.resizeGroup_=this.bubbleBack_=this.bubbleArrow_=this.bubbleGroup_=null};Blockly.Icon=function(a){this.block_=a};Blockly.Icon.prototype.collapseHidden=!0;Blockly.Icon.prototype.SIZE=17;Blockly.Icon.prototype.bubble_=null;Blockly.Icon.prototype.iconXY_=null;\nBlockly.Icon.prototype.createIcon=function(){this.iconGroup_||(this.iconGroup_=Blockly.createSvgElement("g",{"class":"blocklyIconGroup"},null),this.block_.isInFlyout&&Blockly.addClass_(this.iconGroup_,"blocklyIconGroupReadonly"),this.drawIcon_(this.iconGroup_),this.block_.getSvgRoot().appendChild(this.iconGroup_),Blockly.bindEventWithChecks_(this.iconGroup_,"mouseup",this,this.iconClick_),this.updateEditable())};\nBlockly.Icon.prototype.dispose=function(){goog.dom.removeNode(this.iconGroup_);this.iconGroup_=null;this.setVisible(!1);this.block_=null};Blockly.Icon.prototype.updateEditable=function(){};Blockly.Icon.prototype.isVisible=function(){return!!this.bubble_};Blockly.Icon.prototype.iconClick_=function(a){this.block_.workspace.isDragging()||this.block_.isInFlyout||Blockly.isRightButton(a)||this.setVisible(!this.isVisible())};Blockly.Icon.prototype.updateColour=function(){this.isVisible()&&this.bubble_.setColour(this.block_.getColour())};\nBlockly.Icon.prototype.renderIcon=function(a){if(this.collapseHidden&&this.block_.isCollapsed())return this.iconGroup_.setAttribute("display","none"),a;this.iconGroup_.setAttribute("display","block");var b=this.SIZE;this.block_.RTL&&(a-=b);this.iconGroup_.setAttribute("transform","translate("+a+",5)");this.computeIconLocation();return a=this.block_.RTL?a-Blockly.BlockSvg.SEP_SPACE_X:a+(b+Blockly.BlockSvg.SEP_SPACE_X)};\nBlockly.Icon.prototype.setIconLocation=function(a){this.iconXY_=a;this.isVisible()&&this.bubble_.setAnchorLocation(a)};Blockly.Icon.prototype.computeIconLocation=function(){var a=this.block_.getRelativeToSurfaceXY(),b=Blockly.getRelativeXY_(this.iconGroup_),a=new goog.math.Coordinate(a.x+b.x+this.SIZE/2,a.y+b.y+this.SIZE/2);goog.math.Coordinate.equals(this.getIconLocation(),a)||this.setIconLocation(a)};Blockly.Icon.prototype.getIconLocation=function(){return this.iconXY_};\n// Copyright 2011 Google Inc. Apache License 2.0\nBlockly.Comment=function(a){Blockly.Comment.superClass_.constructor.call(this,a);this.createIcon()};goog.inherits(Blockly.Comment,Blockly.Icon);Blockly.Comment.prototype.text_="";Blockly.Comment.prototype.width_=160;Blockly.Comment.prototype.height_=80;\nBlockly.Comment.prototype.drawIcon_=function(a){Blockly.createSvgElement("circle",{"class":"blocklyIconShape",r:"8",cx:"8",cy:"8"},a);Blockly.createSvgElement("path",{"class":"blocklyIconSymbol",d:"m6.8,10h2c0.003,-0.617 0.271,-0.962 0.633,-1.266 2.875,-2.405 0.607,-5.534 -3.765,-3.874v1.7c3.12,-1.657 3.698,0.118 2.336,1.25 -1.201,0.998 -1.201,1.528 -1.204,2.19z"},a);Blockly.createSvgElement("rect",{"class":"blocklyIconSymbol",x:"6.8",y:"10.78",height:"2",width:"2"},a)};\nBlockly.Comment.prototype.createEditor_=function(){this.foreignObject_=Blockly.createSvgElement("foreignObject",{x:Blockly.Bubble.BORDER_WIDTH,y:Blockly.Bubble.BORDER_WIDTH},null);var a=document.createElementNS(Blockly.HTML_NS,"body");a.setAttribute("xmlns",Blockly.HTML_NS);a.className="blocklyMinimalBody";var b=document.createElementNS(Blockly.HTML_NS,"textarea");b.className="blocklyCommentTextarea";b.setAttribute("dir",this.block_.RTL?"RTL":"LTR");a.appendChild(b);this.textarea_=b;this.foreignObject_.appendChild(a);\nBlockly.bindEventWithChecks_(b,"mouseup",this,this.textareaFocus_);Blockly.bindEventWithChecks_(b,"wheel",this,function(a){a.stopPropagation()});Blockly.bindEventWithChecks_(b,"change",this,function(a){this.text_!=b.value&&(Blockly.Events.fire(new Blockly.Events.Change(this.block_,"comment",null,this.text_,b.value)),this.text_=b.value)});setTimeout(function(){b.focus()},0);return this.foreignObject_};\nBlockly.Comment.prototype.updateEditable=function(){this.isVisible()&&(this.setVisible(!1),this.setVisible(!0));Blockly.Icon.prototype.updateEditable.call(this)};Blockly.Comment.prototype.resizeBubble_=function(){if(this.isVisible()){var a=this.bubble_.getBubbleSize(),b=2*Blockly.Bubble.BORDER_WIDTH;this.foreignObject_.setAttribute("width",a.width-b);this.foreignObject_.setAttribute("height",a.height-b);this.textarea_.style.width=a.width-b-4+"px";this.textarea_.style.height=a.height-b-4+"px"}};\nBlockly.Comment.prototype.setVisible=function(a){if(a!=this.isVisible())if(Blockly.Events.fire(new Blockly.Events.Ui(this.block_,"commentOpen",!a,a)),!this.block_.isEditable()&&!this.textarea_||goog.userAgent.IE)Blockly.Warning.prototype.setVisible.call(this,a);else{var b=this.getText(),c=this.getBubbleSize();a?(this.bubble_=new Blockly.Bubble(this.block_.workspace,this.createEditor_(),this.block_.svgPath_,this.iconXY_,this.width_,this.height_),this.bubble_.registerResizeEvent(this.resizeBubble_.bind(this)),\nthis.updateColour()):(this.bubble_.dispose(),this.foreignObject_=this.textarea_=this.bubble_=null);this.setText(b);this.setBubbleSize(c.width,c.height)}};Blockly.Comment.prototype.textareaFocus_=function(a){this.bubble_.promote_();this.textarea_.focus()};Blockly.Comment.prototype.getBubbleSize=function(){return this.isVisible()?this.bubble_.getBubbleSize():{width:this.width_,height:this.height_}};\nBlockly.Comment.prototype.setBubbleSize=function(a,b){this.textarea_?this.bubble_.setBubbleSize(a,b):(this.width_=a,this.height_=b)};Blockly.Comment.prototype.getText=function(){return this.textarea_?this.textarea_.value:this.text_};Blockly.Comment.prototype.setText=function(a){this.text_!=a&&(Blockly.Events.fire(new Blockly.Events.Change(this.block_,"comment",null,this.text_,a)),this.text_=a);this.textarea_&&(this.textarea_.value=a)};\nBlockly.Comment.prototype.dispose=function(){Blockly.Events.isEnabled()&&this.setText("");this.block_.comment=null;Blockly.Icon.prototype.dispose.call(this)};Blockly.Connection=function(a,b){this.sourceBlock_=a;this.type=b;a.workspace.connectionDBList&&(this.db_=a.workspace.connectionDBList[b],this.dbOpposite_=a.workspace.connectionDBList[Blockly.OPPOSITE_TYPE[b]],this.hidden_=!this.db_)};Blockly.Connection.CAN_CONNECT=0;Blockly.Connection.REASON_SELF_CONNECTION=1;Blockly.Connection.REASON_WRONG_TYPE=2;Blockly.Connection.REASON_TARGET_NULL=3;Blockly.Connection.REASON_CHECKS_FAILED=4;Blockly.Connection.REASON_DIFFERENT_WORKSPACES=5;\nBlockly.Connection.REASON_SHADOW_PARENT=6;Blockly.Connection.prototype.targetConnection=null;Blockly.Connection.prototype.check_=null;Blockly.Connection.prototype.shadowDom_=null;Blockly.Connection.prototype.x_=0;Blockly.Connection.prototype.y_=0;Blockly.Connection.prototype.inDB_=!1;Blockly.Connection.prototype.db_=null;Blockly.Connection.prototype.dbOpposite_=null;Blockly.Connection.prototype.hidden_=null;\nBlockly.Connection.prototype.connect_=function(a){var b=this,c=b.getSourceBlock(),d=a.getSourceBlock();a.isConnected()&&a.disconnect();if(b.isConnected()){var e=b.targetBlock(),f=b.getShadowDom();b.setShadowDom(null);if(e.isShadow())f=Blockly.Xml.blockToDom(e),e.dispose(),e=null;else if(b.type==Blockly.INPUT_VALUE){if(!e.outputConnection)throw"Orphan block does not have an output connection.";var g=Blockly.Connection.lastConnectionInRow_(d,e);g&&(e.outputConnection.connect(g),e=null)}else if(b.type==\nBlockly.NEXT_STATEMENT){if(!e.previousConnection)throw"Orphan block does not have a previous connection.";for(g=d;g.nextConnection;){var h=g.getNextBlock();if(h&&!h.isShadow())g=h;else{e.previousConnection.checkType_(g.nextConnection)&&(g.nextConnection.connect(e.previousConnection),e=null);break}}}if(e&&(b.disconnect(),Blockly.Events.recordUndo)){var k=Blockly.Events.getGroup();setTimeout(function(){e.workspace&&!e.getParent()&&(Blockly.Events.setGroup(k),e.outputConnection?e.outputConnection.bumpAwayFrom_(b):\ne.previousConnection&&e.previousConnection.bumpAwayFrom_(b),Blockly.Events.setGroup(!1))},Blockly.BUMP_DELAY)}b.setShadowDom(f)}var l;Blockly.Events.isEnabled()&&(l=new Blockly.Events.Move(d));Blockly.Connection.connectReciprocally_(b,a);d.setParent(c);l&&(l.recordNew(),Blockly.Events.fire(l))};\nBlockly.Connection.prototype.dispose=function(){if(this.isConnected())throw"Disconnect connection before disposing of it.";this.inDB_&&this.db_.removeConnection_(this);Blockly.highlightedConnection_==this&&(Blockly.highlightedConnection_=null);Blockly.localConnection_==this&&(Blockly.localConnection_=null);this.dbOpposite_=this.db_=null};Blockly.Connection.prototype.getSourceBlock=function(){return this.sourceBlock_};\nBlockly.Connection.prototype.isSuperior=function(){return this.type==Blockly.INPUT_VALUE||this.type==Blockly.NEXT_STATEMENT};Blockly.Connection.prototype.isConnected=function(){return!!this.targetConnection};\nBlockly.Connection.prototype.canConnectWithReason_=function(a){if(!a)return Blockly.Connection.REASON_TARGET_NULL;if(this.isSuperior())var b=this.sourceBlock_,c=a.getSourceBlock();else c=this.sourceBlock_,b=a.getSourceBlock();return b&&b==c?Blockly.Connection.REASON_SELF_CONNECTION:a.type!=Blockly.OPPOSITE_TYPE[this.type]?Blockly.Connection.REASON_WRONG_TYPE:b&&c&&b.workspace!==c.workspace?Blockly.Connection.REASON_DIFFERENT_WORKSPACES:this.checkType_(a)?b.isShadow()&&!c.isShadow()?Blockly.Connection.REASON_SHADOW_PARENT:\nBlockly.Connection.CAN_CONNECT:Blockly.Connection.REASON_CHECKS_FAILED};\nBlockly.Connection.prototype.checkConnection_=function(a){switch(this.canConnectWithReason_(a)){case Blockly.Connection.CAN_CONNECT:break;case Blockly.Connection.REASON_SELF_CONNECTION:throw"Attempted to connect a block to itself.";case Blockly.Connection.REASON_DIFFERENT_WORKSPACES:throw"Blocks not on same workspace.";case Blockly.Connection.REASON_WRONG_TYPE:throw"Attempt to connect incompatible types.";case Blockly.Connection.REASON_TARGET_NULL:throw"Target connection is null.";case Blockly.Connection.REASON_CHECKS_FAILED:throw"Connection checks failed.";\ncase Blockly.Connection.REASON_SHADOW_PARENT:throw"Connecting non-shadow to shadow block.";default:throw"Unknown connection failure: this should never happen!";}};\nBlockly.Connection.prototype.isConnectionAllowed=function(a){if(this.canConnectWithReason_(a)!=Blockly.Connection.CAN_CONNECT)return!1;if(a.type==Blockly.OUTPUT_VALUE||a.type==Blockly.PREVIOUS_STATEMENT)if(a.isConnected()||this.isConnected())return!1;return a.type==Blockly.INPUT_VALUE&&a.isConnected()&&!a.targetBlock().isMovable()&&!a.targetBlock().isShadow()||this.type==Blockly.PREVIOUS_STATEMENT&&a.isConnected()&&!this.sourceBlock_.nextConnection&&!a.targetBlock().isShadow()&&a.targetBlock().nextConnection||\n-1!=Blockly.draggingConnections_.indexOf(a)?!1:!0};Blockly.Connection.prototype.connect=function(a){this.targetConnection!=a&&(this.checkConnection_(a),this.isSuperior()?this.connect_(a):a.connect_(this))};Blockly.Connection.connectReciprocally_=function(a,b){goog.asserts.assert(a&&b,"Cannot connect null connections.");a.targetConnection=b;b.targetConnection=a};\nBlockly.Connection.singleConnection_=function(a,b){for(var c=!1,d=0;d<a.inputList.length;d++){var e=a.inputList[d].connection;if(e&&e.type==Blockly.INPUT_VALUE&&b.outputConnection.checkType_(e)){if(c)return null;c=e}}return c};Blockly.Connection.lastConnectionInRow_=function(a,b){for(var c=a,d;d=Blockly.Connection.singleConnection_(c,b);)if(c=d.targetBlock(),!c||c.isShadow())return d;return null};\nBlockly.Connection.prototype.disconnect=function(){var a=this.targetConnection;goog.asserts.assert(a,"Source connection not connected.");goog.asserts.assert(a.targetConnection==this,"Target connection not connected to source connection.");var b,c;this.isSuperior()?(b=this.sourceBlock_,c=a.getSourceBlock(),a=this):(b=a.getSourceBlock(),c=this.sourceBlock_);this.disconnectInternal_(b,c);a.respawnShadow_()};\nBlockly.Connection.prototype.disconnectInternal_=function(a,b){var c;Blockly.Events.isEnabled()&&(c=new Blockly.Events.Move(b));this.targetConnection=this.targetConnection.targetConnection=null;b.setParent(null);c&&(c.recordNew(),Blockly.Events.fire(c))};\nBlockly.Connection.prototype.respawnShadow_=function(){var a=this.getSourceBlock(),b=this.getShadowDom();if(a.workspace&&b&&Blockly.Events.recordUndo)if(a=Blockly.Xml.domToBlock(b,a.workspace),a.outputConnection)this.connect(a.outputConnection);else if(a.previousConnection)this.connect(a.previousConnection);else throw"Child block does not have output or previous statement.";};Blockly.Connection.prototype.targetBlock=function(){return this.isConnected()?this.targetConnection.getSourceBlock():null};\nBlockly.Connection.prototype.checkType_=function(a){if(!this.check_||!a.check_)return!0;for(var b=0;b<this.check_.length;b++)if(-1!=a.check_.indexOf(this.check_[b]))return!0;return!1};Blockly.Connection.prototype.setCheck=function(a){a?(goog.isArray(a)||(a=[a]),this.check_=a,this.isConnected()&&!this.checkType_(this.targetConnection)&&((this.isSuperior()?this.targetBlock():this.sourceBlock_).unplug(),this.sourceBlock_.bumpNeighbours_())):this.check_=null;return this};\nBlockly.Connection.prototype.setShadowDom=function(a){this.shadowDom_=a};Blockly.Connection.prototype.getShadowDom=function(){return this.shadowDom_};Blockly.Field=function(a,b){this.size_=new goog.math.Size(0,25);this.setValue(a);this.setValidator(b)};Blockly.Field.cacheWidths_=null;Blockly.Field.cacheReference_=0;Blockly.Field.prototype.name=void 0;Blockly.Field.prototype.maxDisplayLength=50;Blockly.Field.prototype.text_="";Blockly.Field.prototype.sourceBlock_=null;Blockly.Field.prototype.visible_=!0;Blockly.Field.prototype.validator_=null;Blockly.Field.NBSP="\\u00a0";Blockly.Field.prototype.EDITABLE=!0;\nBlockly.Field.prototype.setSourceBlock=function(a){goog.asserts.assert(!this.sourceBlock_,"Field already bound to a block.");this.sourceBlock_=a};\nBlockly.Field.prototype.init=function(){this.fieldGroup_||(this.fieldGroup_=Blockly.createSvgElement("g",{},null),this.visible_||(this.fieldGroup_.style.display="none"),this.borderRect_=Blockly.createSvgElement("rect",{rx:4,ry:4,x:-Blockly.BlockSvg.SEP_SPACE_X/2,y:0,height:16},this.fieldGroup_,this.sourceBlock_.workspace),this.textElement_=Blockly.createSvgElement("text",{"class":"blocklyText",y:this.size_.height-12.5},this.fieldGroup_),this.updateEditable(),this.sourceBlock_.getSvgRoot().appendChild(this.fieldGroup_),\nthis.mouseUpWrapper_=Blockly.bindEventWithChecks_(this.fieldGroup_,"mouseup",this,this.onMouseUp_),this.updateTextNode_())};Blockly.Field.prototype.dispose=function(){this.mouseUpWrapper_&&(Blockly.unbindEvent_(this.mouseUpWrapper_),this.mouseUpWrapper_=null);this.sourceBlock_=null;goog.dom.removeNode(this.fieldGroup_);this.validator_=this.borderRect_=this.textElement_=this.fieldGroup_=null};\nBlockly.Field.prototype.updateEditable=function(){var a=this.fieldGroup_;this.EDITABLE&&a&&(this.sourceBlock_.isEditable()?(Blockly.addClass_(a,"blocklyEditableText"),Blockly.removeClass_(a,"blocklyNonEditableText"),this.fieldGroup_.style.cursor=this.CURSOR):(Blockly.addClass_(a,"blocklyNonEditableText"),Blockly.removeClass_(a,"blocklyEditableText"),this.fieldGroup_.style.cursor=""))};Blockly.Field.prototype.isVisible=function(){return this.visible_};\nBlockly.Field.prototype.setVisible=function(a){if(this.visible_!=a){this.visible_=a;var b=this.getSvgRoot();b&&(b.style.display=a?"block":"none",this.render_())}};Blockly.Field.prototype.setValidator=function(a){this.validator_=a};Blockly.Field.prototype.getValidator=function(){return this.validator_};Blockly.Field.prototype.classValidator=function(a){return a};\nBlockly.Field.prototype.callValidator=function(a){var b=this.classValidator(a);if(null===b)return null;void 0!==b&&(a=b);if(b=this.getValidator()){b=b.call(this,a);if(null===b)return null;void 0!==b&&(a=b)}return a};Blockly.Field.prototype.getSvgRoot=function(){return this.fieldGroup_};\nBlockly.Field.prototype.render_=function(){if(this.visible_&&this.textElement_){var a=this.textElement_.textContent+"\\n"+this.textElement_.className.baseVal;if(Blockly.Field.cacheWidths_&&Blockly.Field.cacheWidths_[a])var b=Blockly.Field.cacheWidths_[a];else{try{b=this.textElement_.getComputedTextLength()}catch(c){b=8*this.textElement_.textContent.length}Blockly.Field.cacheWidths_&&(Blockly.Field.cacheWidths_[a]=b)}this.borderRect_&&this.borderRect_.setAttribute("width",b+Blockly.BlockSvg.SEP_SPACE_X)}else b=\n0;this.size_.width=b};Blockly.Field.startCache=function(){Blockly.Field.cacheReference_++;Blockly.Field.cacheWidths_||(Blockly.Field.cacheWidths_={})};Blockly.Field.stopCache=function(){Blockly.Field.cacheReference_--;Blockly.Field.cacheReference_||(Blockly.Field.cacheWidths_=null)};Blockly.Field.prototype.getSize=function(){this.size_.width||this.render_();return this.size_};\nBlockly.Field.prototype.getScaledBBox_=function(){var a=this.borderRect_.getBBox();return new goog.math.Size(a.width*this.sourceBlock_.workspace.scale,a.height*this.sourceBlock_.workspace.scale)};Blockly.Field.prototype.getText=function(){return this.text_};Blockly.Field.prototype.setText=function(a){null!==a&&(a=String(a),a!==this.text_&&(this.text_=a,this.updateTextNode_(),this.sourceBlock_&&this.sourceBlock_.rendered&&(this.sourceBlock_.render(),this.sourceBlock_.bumpNeighbours_())))};\nBlockly.Field.prototype.updateTextNode_=function(){if(this.textElement_){var a=this.text_;a.length>this.maxDisplayLength&&(a=a.substring(0,this.maxDisplayLength-2)+"\\u2026");goog.dom.removeChildren(this.textElement_);a=a.replace(/\\s/g,Blockly.Field.NBSP);this.sourceBlock_.RTL&&a&&(a+="\\u200f");a||(a=Blockly.Field.NBSP);a=document.createTextNode(a);this.textElement_.appendChild(a);this.size_.width=0}};Blockly.Field.prototype.getValue=function(){return this.getText()};\nBlockly.Field.prototype.setValue=function(a){if(null!==a){var b=this.getValue();b!=a&&(this.sourceBlock_&&Blockly.Events.isEnabled()&&Blockly.Events.fire(new Blockly.Events.Change(this.sourceBlock_,"field",this.name,b,a)),this.setText(a))}};\nBlockly.Field.prototype.onMouseUp_=function(a){if(!goog.userAgent.IPHONE&&!goog.userAgent.IPAD||goog.userAgent.isVersionOrHigher("537.51.2")||0===a.layerX||0===a.layerY)Blockly.isRightButton(a)||this.sourceBlock_.workspace.isDragging()||this.sourceBlock_.isEditable()&&this.showEditor_()};Blockly.Field.prototype.setTooltip=function(a){};Blockly.Field.prototype.getAbsoluteXY_=function(){return goog.style.getPageOffset(this.borderRect_)};Blockly.Tooltip={};Blockly.Tooltip.visible=!1;Blockly.Tooltip.LIMIT=50;Blockly.Tooltip.mouseOutPid_=0;Blockly.Tooltip.showPid_=0;Blockly.Tooltip.lastX_=0;Blockly.Tooltip.lastY_=0;Blockly.Tooltip.element_=null;Blockly.Tooltip.poisonedElement_=null;Blockly.Tooltip.OFFSET_X=0;Blockly.Tooltip.OFFSET_Y=10;Blockly.Tooltip.RADIUS_OK=10;Blockly.Tooltip.HOVER_MS=750;Blockly.Tooltip.MARGINS=5;Blockly.Tooltip.DIV=null;\nBlockly.Tooltip.createDom=function(){Blockly.Tooltip.DIV||(Blockly.Tooltip.DIV=goog.dom.createDom("DIV","blocklyTooltipDiv"),document.body.appendChild(Blockly.Tooltip.DIV))};Blockly.Tooltip.bindMouseEvents=function(a){Blockly.bindEvent_(a,"mouseover",null,Blockly.Tooltip.onMouseOver_);Blockly.bindEvent_(a,"mouseout",null,Blockly.Tooltip.onMouseOut_);a.addEventListener("mousemove",Blockly.Tooltip.onMouseMove_,!1)};\nBlockly.Tooltip.onMouseOver_=function(a){for(a=a.target;!goog.isString(a.tooltip)&&!goog.isFunction(a.tooltip);)a=a.tooltip;Blockly.Tooltip.element_!=a&&(Blockly.Tooltip.hide(),Blockly.Tooltip.poisonedElement_=null,Blockly.Tooltip.element_=a);clearTimeout(Blockly.Tooltip.mouseOutPid_)};Blockly.Tooltip.onMouseOut_=function(a){Blockly.Tooltip.mouseOutPid_=setTimeout(function(){Blockly.Tooltip.element_=null;Blockly.Tooltip.poisonedElement_=null;Blockly.Tooltip.hide()},1);clearTimeout(Blockly.Tooltip.showPid_)};\nBlockly.Tooltip.onMouseMove_=function(a){if(Blockly.Tooltip.element_&&Blockly.Tooltip.element_.tooltip&&Blockly.dragMode_==Blockly.DRAG_NONE&&!Blockly.WidgetDiv.isVisible())if(Blockly.Tooltip.visible){var b=Blockly.Tooltip.lastX_-a.pageX;a=Blockly.Tooltip.lastY_-a.pageY;Math.sqrt(b*b+a*a)>Blockly.Tooltip.RADIUS_OK&&Blockly.Tooltip.hide()}else Blockly.Tooltip.poisonedElement_!=Blockly.Tooltip.element_&&(clearTimeout(Blockly.Tooltip.showPid_),Blockly.Tooltip.lastX_=a.pageX,Blockly.Tooltip.lastY_=a.pageY,\nBlockly.Tooltip.showPid_=setTimeout(Blockly.Tooltip.show_,Blockly.Tooltip.HOVER_MS))};Blockly.Tooltip.hide=function(){Blockly.Tooltip.visible&&(Blockly.Tooltip.visible=!1,Blockly.Tooltip.DIV&&(Blockly.Tooltip.DIV.style.display="none"));clearTimeout(Blockly.Tooltip.showPid_)};\nBlockly.Tooltip.show_=function(){Blockly.Tooltip.poisonedElement_=Blockly.Tooltip.element_;if(Blockly.Tooltip.DIV){goog.dom.removeChildren(Blockly.Tooltip.DIV);for(var a=Blockly.Tooltip.element_.tooltip;goog.isFunction(a);)a=a();for(var a=Blockly.utils.wrap(a,Blockly.Tooltip.LIMIT),a=a.split("\\n"),b=0;b<a.length;b++){var c=document.createElement("div");c.appendChild(document.createTextNode(a[b]));Blockly.Tooltip.DIV.appendChild(c)}a=Blockly.Tooltip.element_.RTL;b=goog.dom.getViewportSize();Blockly.Tooltip.DIV.style.direction=\na?"rtl":"ltr";Blockly.Tooltip.DIV.style.display="block";Blockly.Tooltip.visible=!0;var c=Blockly.Tooltip.lastX_,c=a?c-(Blockly.Tooltip.OFFSET_X+Blockly.Tooltip.DIV.offsetWidth):c+Blockly.Tooltip.OFFSET_X,d=Blockly.Tooltip.lastY_+Blockly.Tooltip.OFFSET_Y;d+Blockly.Tooltip.DIV.offsetHeight>b.height+window.scrollY&&(d-=Blockly.Tooltip.DIV.offsetHeight+2*Blockly.Tooltip.OFFSET_Y);a?c=Math.max(Blockly.Tooltip.MARGINS-window.scrollX,c):c+Blockly.Tooltip.DIV.offsetWidth>b.width+window.scrollX-2*Blockly.Tooltip.MARGINS&&\n(c=b.width-Blockly.Tooltip.DIV.offsetWidth-2*Blockly.Tooltip.MARGINS);Blockly.Tooltip.DIV.style.top=d+"px";Blockly.Tooltip.DIV.style.left=c+"px"}};Blockly.FieldLabel=function(a,b){this.size_=new goog.math.Size(0,17.5);this.class_=b;this.setValue(a)};goog.inherits(Blockly.FieldLabel,Blockly.Field);Blockly.FieldLabel.prototype.EDITABLE=!1;\nBlockly.FieldLabel.prototype.init=function(){this.textElement_||(this.textElement_=Blockly.createSvgElement("text",{"class":"blocklyText",y:this.size_.height-5},null),this.class_&&Blockly.addClass_(this.textElement_,this.class_),this.visible_||(this.textElement_.style.display="none"),this.sourceBlock_.getSvgRoot().appendChild(this.textElement_),this.textElement_.tooltip=this.sourceBlock_,Blockly.Tooltip.bindMouseEvents(this.textElement_),this.updateTextNode_())};\nBlockly.FieldLabel.prototype.dispose=function(){goog.dom.removeNode(this.textElement_);this.textElement_=null};Blockly.FieldLabel.prototype.getSvgRoot=function(){return this.textElement_};Blockly.FieldLabel.prototype.setTooltip=function(a){this.textElement_.tooltip=a};Blockly.Input=function(a,b,c,d){this.type=a;this.name=b;this.sourceBlock_=c;this.connection=d;this.fieldRow=[]};Blockly.Input.prototype.align=Blockly.ALIGN_LEFT;Blockly.Input.prototype.visible_=!0;\nBlockly.Input.prototype.appendField=function(a,b){if(!a&&!b)return this;goog.isString(a)&&(a=new Blockly.FieldLabel(a));a.setSourceBlock(this.sourceBlock_);this.sourceBlock_.rendered&&a.init();a.name=b;a.prefixField&&this.appendField(a.prefixField);this.fieldRow.push(a);a.suffixField&&this.appendField(a.suffixField);this.sourceBlock_.rendered&&(this.sourceBlock_.render(),this.sourceBlock_.bumpNeighbours_());return this};\nBlockly.Input.prototype.appendTitle=function(a,b){console.warn("Deprecated call to appendTitle, use appendField instead.");return this.appendField(a,b)};Blockly.Input.prototype.removeField=function(a){for(var b=0,c;c=this.fieldRow[b];b++)if(c.name===a){c.dispose();this.fieldRow.splice(b,1);this.sourceBlock_.rendered&&(this.sourceBlock_.render(),this.sourceBlock_.bumpNeighbours_());return}goog.asserts.fail(\'Field "%s" not found.\',a)};Blockly.Input.prototype.isVisible=function(){return this.visible_};\nBlockly.Input.prototype.setVisible=function(a){var b=[];if(this.visible_==a)return b;for(var c=(this.visible_=a)?"block":"none",d=0,e;e=this.fieldRow[d];d++)e.setVisible(a);this.connection&&(a?b=this.connection.unhideAll():this.connection.hideAll(),d=this.connection.targetBlock())&&(d.getSvgRoot().style.display=c,a||(d.rendered=!1));return b};Blockly.Input.prototype.setCheck=function(a){if(!this.connection)throw"This input does not have a connection.";this.connection.setCheck(a);return this};\nBlockly.Input.prototype.setAlign=function(a){this.align=a;this.sourceBlock_.rendered&&this.sourceBlock_.render();return this};Blockly.Input.prototype.init=function(){if(this.sourceBlock_.workspace.rendered)for(var a=0;a<this.fieldRow.length;a++)this.fieldRow[a].init()};Blockly.Input.prototype.dispose=function(){for(var a=0,b;b=this.fieldRow[a];a++)b.dispose();this.connection&&this.connection.dispose();this.sourceBlock_=null};Blockly.ConnectionDB=function(){};Blockly.ConnectionDB.prototype=[];Blockly.ConnectionDB.constructor=Blockly.ConnectionDB;Blockly.ConnectionDB.prototype.addConnection=function(a){if(a.inDB_)throw"Connection already in database.";if(!a.getSourceBlock().isInFlyout){var b=this.findPositionForConnection_(a);this.splice(b,0,a);a.inDB_=!0}};\nBlockly.ConnectionDB.prototype.findConnection=function(a){if(!this.length)return-1;var b=this.findPositionForConnection_(a);if(b>=this.length)return-1;for(var c=a.y_,d=b;0<=d&&this[d].y_==c;){if(this[d]==a)return d;d--}for(;b<this.length&&this[b].y_==c;){if(this[b]==a)return b;b++}return-1};\nBlockly.ConnectionDB.prototype.findPositionForConnection_=function(a){if(!this.length)return 0;for(var b=0,c=this.length;b<c;){var d=Math.floor((b+c)/2);if(this[d].y_<a.y_)b=d+1;else if(this[d].y_>a.y_)c=d;else{b=d;break}}return b};Blockly.ConnectionDB.prototype.removeConnection_=function(a){if(!a.inDB_)throw"Connection not in database.";var b=this.findConnection(a);if(-1==b)throw"Unable to find connection in connectionDB.";a.inDB_=!1;this.splice(b,1)};\nBlockly.ConnectionDB.prototype.getNeighbours=function(a,b){function c(a){var c=e-d[a].x_,g=f-d[a].y_;Math.sqrt(c*c+g*g)<=b&&l.push(d[a]);return g<b}for(var d=this,e=a.x_,f=a.y_,g=0,h=d.length-2,k=h;g<k;)d[k].y_<f?g=k:h=k,k=Math.floor((g+h)/2);var l=[],h=g=k;if(d.length){for(;0<=g&&c(g);)g--;do h++;while(h<d.length&&c(h))}return l};Blockly.ConnectionDB.prototype.isInYRange_=function(a,b,c){return Math.abs(this[a].y_-b)<=c};\nBlockly.ConnectionDB.prototype.searchForClosest=function(a,b,c){if(!this.length)return{connection:null,radius:b};var d=a.y_,e=a.x_;a.x_=e+c.x;a.y_=d+c.y;var f=this.findPositionForConnection_(a);c=null;for(var g=b,h,k=f-1;0<=k&&this.isInYRange_(k,a.y_,b);)h=this[k],a.isConnectionAllowed(h,g)&&(c=h,g=h.distanceFrom(a)),k--;for(;f<this.length&&this.isInYRange_(f,a.y_,b);)h=this[f],a.isConnectionAllowed(h,g)&&(c=h,g=h.distanceFrom(a)),f++;a.x_=e;a.y_=d;return{connection:c,radius:g}};\nBlockly.ConnectionDB.init=function(a){var b=[];b[Blockly.INPUT_VALUE]=new Blockly.ConnectionDB;b[Blockly.OUTPUT_VALUE]=new Blockly.ConnectionDB;b[Blockly.NEXT_STATEMENT]=new Blockly.ConnectionDB;b[Blockly.PREVIOUS_STATEMENT]=new Blockly.ConnectionDB;a.connectionDBList=b};Blockly.constants={};Blockly.DRAG_RADIUS=5;Blockly.SNAP_RADIUS=20;Blockly.BUMP_DELAY=250;Blockly.COLLAPSE_CHARS=30;Blockly.LONGPRESS=750;Blockly.SOUND_LIMIT=100;Blockly.HSV_SATURATION=.45;Blockly.HSV_VALUE=.65;Blockly.SPRITE={width:96,height:124,url:"sprites.png"};Blockly.SVG_NS="http://www.w3.org/2000/svg";Blockly.HTML_NS="http://www.w3.org/1999/xhtml";Blockly.INPUT_VALUE=1;Blockly.OUTPUT_VALUE=2;Blockly.NEXT_STATEMENT=3;Blockly.PREVIOUS_STATEMENT=4;Blockly.DUMMY_INPUT=5;Blockly.ALIGN_LEFT=-1;\nBlockly.ALIGN_CENTRE=0;Blockly.ALIGN_RIGHT=1;Blockly.DRAG_NONE=0;Blockly.DRAG_STICKY=1;Blockly.DRAG_BEGIN=1;Blockly.DRAG_FREE=2;Blockly.OPPOSITE_TYPE=[];Blockly.OPPOSITE_TYPE[Blockly.INPUT_VALUE]=Blockly.OUTPUT_VALUE;Blockly.OPPOSITE_TYPE[Blockly.OUTPUT_VALUE]=Blockly.INPUT_VALUE;Blockly.OPPOSITE_TYPE[Blockly.NEXT_STATEMENT]=Blockly.PREVIOUS_STATEMENT;Blockly.OPPOSITE_TYPE[Blockly.PREVIOUS_STATEMENT]=Blockly.NEXT_STATEMENT;Blockly.TOOLBOX_AT_TOP=0;Blockly.TOOLBOX_AT_BOTTOM=1;\nBlockly.TOOLBOX_AT_LEFT=2;Blockly.TOOLBOX_AT_RIGHT=3;Blockly.Options=function(a){var b=!!a.readOnly;if(b)var c=null,d=!1,e=!1,f=!1,g=!1,h=!1,k=!1;else c=Blockly.Options.parseToolboxTree(a.toolbox),d=!(!c||!c.getElementsByTagName("category").length),e=a.trashcan,void 0===e&&(e=d),f=a.collapse,void 0===f&&(f=d),g=a.comments,void 0===g&&(g=d),h=a.disable,void 0===h&&(h=d),k=a.sounds,void 0===k&&(k=!0);var l=!!a.rtl,p=a.horizontalLayout;void 0===p&&(p=!1);var m=a.toolboxPosition,m="end"===m?!1:!0,m=p?m?Blockly.TOOLBOX_AT_TOP:Blockly.TOOLBOX_AT_BOTTOM:m==\nl?Blockly.TOOLBOX_AT_RIGHT:Blockly.TOOLBOX_AT_LEFT,n=a.scrollbars;void 0===n&&(n=d);var q=a.css;void 0===q&&(q=!0);var t="https://blockly-demo.appspot.com/static/media/";a.media?t=a.media:a.path&&(t=a.path+"media/");var r=void 0===a.oneBasedIndex?!0:!!a.oneBasedIndex;this.RTL=l;this.oneBasedIndex=r;this.collapse=f;this.comments=g;this.disable=h;this.readOnly=b;this.maxBlocks=a.maxBlocks||Infinity;this.pathToMedia=t;this.hasCategories=d;this.hasScrollbars=n;this.hasTrashcan=e;this.hasSounds=k;this.hasCss=\nq;this.horizontalLayout=p;this.languageTree=c;this.gridOptions=Blockly.Options.parseGridOptions_(a);this.zoomOptions=Blockly.Options.parseZoomOptions_(a);this.toolboxPosition=m};Blockly.Options.prototype.parentWorkspace=null;Blockly.Options.prototype.setMetrics=null;Blockly.Options.prototype.getMetrics=null;\nBlockly.Options.parseZoomOptions_=function(a){a=a.zoom||{};var b={};b.controls=void 0===a.controls?!1:!!a.controls;b.wheel=void 0===a.wheel?!1:!!a.wheel;b.startScale=void 0===a.startScale?1:parseFloat(a.startScale);b.maxScale=void 0===a.maxScale?3:parseFloat(a.maxScale);b.minScale=void 0===a.minScale?.3:parseFloat(a.minScale);b.scaleSpeed=void 0===a.scaleSpeed?1.2:parseFloat(a.scaleSpeed);return b};\nBlockly.Options.parseGridOptions_=function(a){a=a.grid||{};var b={};b.spacing=parseFloat(a.spacing)||0;b.colour=a.colour||"#888";b.length=parseFloat(a.length)||1;b.snap=0<b.spacing&&!!a.snap;return b};Blockly.Options.parseToolboxTree=function(a){a?("string"!=typeof a&&("undefined"==typeof XSLTProcessor&&a.outerHTML?a=a.outerHTML:a instanceof Element||(a=null)),"string"==typeof a&&(a=Blockly.Xml.textToDom(a))):a=null;return a};Blockly.ScrollbarPair=function(a){this.workspace_=a;this.hScroll=new Blockly.Scrollbar(a,!0,!0);this.vScroll=new Blockly.Scrollbar(a,!1,!0);this.corner_=Blockly.createSvgElement("rect",{height:Blockly.Scrollbar.scrollbarThickness,width:Blockly.Scrollbar.scrollbarThickness,"class":"blocklyScrollbarBackground"},null);Blockly.Scrollbar.insertAfter_(this.corner_,a.getBubbleCanvas())};Blockly.ScrollbarPair.prototype.oldHostMetrics_=null;\nBlockly.ScrollbarPair.prototype.dispose=function(){goog.dom.removeNode(this.corner_);this.oldHostMetrics_=this.workspace_=this.corner_=null;this.hScroll.dispose();this.hScroll=null;this.vScroll.dispose();this.vScroll=null};\nBlockly.ScrollbarPair.prototype.resize=function(){var a=this.workspace_.getMetrics();if(a){var b=!1,c=!1;this.oldHostMetrics_&&this.oldHostMetrics_.viewWidth==a.viewWidth&&this.oldHostMetrics_.viewHeight==a.viewHeight&&this.oldHostMetrics_.absoluteTop==a.absoluteTop&&this.oldHostMetrics_.absoluteLeft==a.absoluteLeft?(this.oldHostMetrics_&&this.oldHostMetrics_.contentWidth==a.contentWidth&&this.oldHostMetrics_.viewLeft==a.viewLeft&&this.oldHostMetrics_.contentLeft==a.contentLeft||(b=!0),this.oldHostMetrics_&&\nthis.oldHostMetrics_.contentHeight==a.contentHeight&&this.oldHostMetrics_.viewTop==a.viewTop&&this.oldHostMetrics_.contentTop==a.contentTop||(c=!0)):c=b=!0;b&&this.hScroll.resize(a);c&&this.vScroll.resize(a);this.oldHostMetrics_&&this.oldHostMetrics_.viewWidth==a.viewWidth&&this.oldHostMetrics_.absoluteLeft==a.absoluteLeft||this.corner_.setAttribute("x",this.vScroll.position_.x);this.oldHostMetrics_&&this.oldHostMetrics_.viewHeight==a.viewHeight&&this.oldHostMetrics_.absoluteTop==a.absoluteTop||this.corner_.setAttribute("y",\nthis.hScroll.position_.y);this.oldHostMetrics_=a}};Blockly.ScrollbarPair.prototype.set=function(a,b){var c={},d=a*this.hScroll.ratio_,e=b*this.vScroll.ratio_,f=this.vScroll.scrollViewSize_;c.x=this.getRatio_(d,this.hScroll.scrollViewSize_);c.y=this.getRatio_(e,f);this.workspace_.setMetrics(c);this.hScroll.setHandlePosition(d);this.vScroll.setHandlePosition(e)};Blockly.ScrollbarPair.prototype.getRatio_=function(a,b){var c=a/b;return isNaN(c)?0:c};\nBlockly.Scrollbar=function(a,b,c){this.workspace_=a;this.pair_=c||!1;this.horizontal_=b;this.oldHostMetrics_=null;this.createDom_();this.position_=new goog.math.Coordinate(0,0);b?(this.svgBackground_.setAttribute("height",Blockly.Scrollbar.scrollbarThickness),this.svgHandle_.setAttribute("height",Blockly.Scrollbar.scrollbarThickness-5),this.svgHandle_.setAttribute("y",2.5),this.lengthAttribute_="width",this.positionAttribute_="x"):(this.svgBackground_.setAttribute("width",Blockly.Scrollbar.scrollbarThickness),\nthis.svgHandle_.setAttribute("width",Blockly.Scrollbar.scrollbarThickness-5),this.svgHandle_.setAttribute("x",2.5),this.lengthAttribute_="height",this.positionAttribute_="y");this.onMouseDownBarWrapper_=Blockly.bindEventWithChecks_(this.svgBackground_,"mousedown",this,this.onMouseDownBar_);this.onMouseDownHandleWrapper_=Blockly.bindEventWithChecks_(this.svgHandle_,"mousedown",this,this.onMouseDownHandle_)};Blockly.Scrollbar.prototype.scrollViewSize_=0;Blockly.Scrollbar.prototype.handleLength_=0;\nBlockly.Scrollbar.prototype.handlePosition_=0;Blockly.Scrollbar.prototype.isVisible_=!0;Blockly.Scrollbar.scrollbarThickness=15;goog.events.BrowserFeature.TOUCH_ENABLED&&(Blockly.Scrollbar.scrollbarThickness=25);\nBlockly.Scrollbar.metricsAreEquivalent_=function(a,b){return a&&b&&a.viewWidth==b.viewWidth&&a.viewHeight==b.viewHeight&&a.viewLeft==b.viewLeft&&a.viewTop==b.viewTop&&a.absoluteTop==b.absoluteTop&&a.absoluteLeft==b.absoluteLeft&&a.contentWidth==b.contentWidth&&a.contentHeight==b.contentHeight&&a.contentLeft==b.contentLeft&&a.contentTop==b.contentTop?!0:!1};\nBlockly.Scrollbar.prototype.dispose=function(){this.cleanUp_();Blockly.unbindEvent_(this.onMouseDownBarWrapper_);this.onMouseDownBarWrapper_=null;Blockly.unbindEvent_(this.onMouseDownHandleWrapper_);this.onMouseDownHandleWrapper_=null;goog.dom.removeNode(this.svgGroup_);this.workspace_=this.svgHandle_=this.svgBackground_=this.svgGroup_=null};Blockly.Scrollbar.prototype.setHandleLength_=function(a){this.handleLength_=a;this.svgHandle_.setAttribute(this.lengthAttribute_,this.handleLength_)};\nBlockly.Scrollbar.prototype.setHandlePosition=function(a){this.handlePosition_=a;this.svgHandle_.setAttribute(this.positionAttribute_,this.handlePosition_)};Blockly.Scrollbar.prototype.setScrollViewSize_=function(a){this.scrollViewSize_=a;this.svgBackground_.setAttribute(this.lengthAttribute_,this.scrollViewSize_)};Blockly.Scrollbar.prototype.setPosition=function(a,b){this.position_.x=a;this.position_.y=b;this.svgGroup_.setAttribute("transform","translate("+this.position_.x+","+this.position_.y+")")};\nBlockly.Scrollbar.prototype.resize=function(a){if(!a&&(a=this.workspace_.getMetrics(),!a))return;Blockly.Scrollbar.metricsAreEquivalent_(a,this.oldHostMetrics_)||(this.oldHostMetrics_=a,this.horizontal_?this.resizeHorizontal_(a):this.resizeVertical_(a),this.onScroll_())};Blockly.Scrollbar.prototype.resizeHorizontal_=function(a){this.resizeViewHorizontal(a)};\nBlockly.Scrollbar.prototype.resizeViewHorizontal=function(a){var b=a.viewWidth-1;this.pair_&&(b-=Blockly.Scrollbar.scrollbarThickness);this.setScrollViewSize_(Math.max(0,b));b=a.absoluteLeft+.5;this.pair_&&this.workspace_.RTL&&(b+=Blockly.Scrollbar.scrollbarThickness);this.setPosition(b,a.absoluteTop+a.viewHeight-Blockly.Scrollbar.scrollbarThickness-.5);this.resizeContentHorizontal(a)};\nBlockly.Scrollbar.prototype.resizeContentHorizontal=function(a){this.pair_||this.setVisible(this.scrollViewSize_<a.contentWidth);this.ratio_=this.scrollViewSize_/a.contentWidth;if(-Infinity==this.ratio_||Infinity==this.ratio_||isNaN(this.ratio_))this.ratio_=0;this.setHandleLength_(Math.max(0,a.viewWidth*this.ratio_));this.setHandlePosition(this.constrainHandle_((a.viewLeft-a.contentLeft)*this.ratio_))};Blockly.Scrollbar.prototype.resizeVertical_=function(a){this.resizeViewVertical(a)};\nBlockly.Scrollbar.prototype.resizeViewVertical=function(a){var b=a.viewHeight-1;this.pair_&&(b-=Blockly.Scrollbar.scrollbarThickness);this.setScrollViewSize_(Math.max(0,b));b=a.absoluteLeft+.5;this.workspace_.RTL||(b+=a.viewWidth-Blockly.Scrollbar.scrollbarThickness-1);this.setPosition(b,a.absoluteTop+.5);this.resizeContentVertical(a)};\nBlockly.Scrollbar.prototype.resizeContentVertical=function(a){this.pair_||this.setVisible(this.scrollViewSize_<a.contentHeight);this.ratio_=this.scrollViewSize_/a.contentHeight;if(-Infinity==this.ratio_||Infinity==this.ratio_||isNaN(this.ratio_))this.ratio_=0;this.setHandleLength_(Math.max(0,a.viewHeight*this.ratio_));this.setHandlePosition(this.constrainHandle_((a.viewTop-a.contentTop)*this.ratio_))};\nBlockly.Scrollbar.prototype.createDom_=function(){this.svgGroup_=Blockly.createSvgElement("g",{"class":"blocklyScrollbar"+(this.horizontal_?"Horizontal":"Vertical")},null);this.svgBackground_=Blockly.createSvgElement("rect",{"class":"blocklyScrollbarBackground"},this.svgGroup_);var a=Math.floor((Blockly.Scrollbar.scrollbarThickness-5)/2);this.svgHandle_=Blockly.createSvgElement("rect",{"class":"blocklyScrollbarHandle",rx:a,ry:a},this.svgGroup_);Blockly.Scrollbar.insertAfter_(this.svgGroup_,this.workspace_.getBubbleCanvas())};\nBlockly.Scrollbar.prototype.isVisible=function(){return this.isVisible_};Blockly.Scrollbar.prototype.setVisible=function(a){if(a!=this.isVisible()){if(this.pair_)throw"Unable to toggle visibility of paired scrollbars.";(this.isVisible_=a)?this.svgGroup_.setAttribute("display","block"):(this.workspace_.setMetrics({x:0,y:0}),this.svgGroup_.setAttribute("display","none"))}};\nBlockly.Scrollbar.prototype.onMouseDownBar_=function(a){Blockly.Touch.clearTouchIdentifier();this.cleanUp_();if(Blockly.isRightButton(a))a.stopPropagation();else{var b=Blockly.mouseToSvg(a,this.workspace_.getParentSvg(),this.workspace_.getInverseScreenCTM()),b=this.horizontal_?b.x:b.y,c=Blockly.getSvgXY_(this.svgHandle_,this.workspace_),c=this.horizontal_?c.x:c.y,d=this.handlePosition_,e=.95*this.handleLength_;b<=c?d-=e:b>=c+this.handleLength_&&(d+=e);this.setHandlePosition(this.constrainHandle_(d));\nthis.onScroll_();a.stopPropagation();a.preventDefault()}};\nBlockly.Scrollbar.prototype.onMouseDownHandle_=function(a){this.cleanUp_();Blockly.isRightButton(a)?a.stopPropagation():(this.startDragHandle=this.handlePosition_,this.startDragMouse=this.horizontal_?a.clientX:a.clientY,Blockly.Scrollbar.onMouseUpWrapper_=Blockly.bindEventWithChecks_(document,"mouseup",this,this.onMouseUpHandle_),Blockly.Scrollbar.onMouseMoveWrapper_=Blockly.bindEventWithChecks_(document,"mousemove",this,this.onMouseMoveHandle_),a.stopPropagation(),a.preventDefault())};\nBlockly.Scrollbar.prototype.onMouseMoveHandle_=function(a){this.setHandlePosition(this.constrainHandle_(this.startDragHandle+((this.horizontal_?a.clientX:a.clientY)-this.startDragMouse)));this.onScroll_()};Blockly.Scrollbar.prototype.onMouseUpHandle_=function(){Blockly.Touch.clearTouchIdentifier();this.cleanUp_()};\nBlockly.Scrollbar.prototype.cleanUp_=function(){Blockly.hideChaff(!0);Blockly.Scrollbar.onMouseUpWrapper_&&(Blockly.unbindEvent_(Blockly.Scrollbar.onMouseUpWrapper_),Blockly.Scrollbar.onMouseUpWrapper_=null);Blockly.Scrollbar.onMouseMoveWrapper_&&(Blockly.unbindEvent_(Blockly.Scrollbar.onMouseMoveWrapper_),Blockly.Scrollbar.onMouseMoveWrapper_=null)};\nBlockly.Scrollbar.prototype.constrainHandle_=function(a){return a=0>=a||isNaN(a)||this.scrollViewSize_<this.handleLength_?0:Math.min(a,this.scrollViewSize_-this.handleLength_)};Blockly.Scrollbar.prototype.onScroll_=function(){var a=this.handlePosition_/this.scrollViewSize_;isNaN(a)&&(a=0);var b={};this.horizontal_?b.x=a:b.y=a;this.workspace_.setMetrics(b)};Blockly.Scrollbar.prototype.set=function(a){this.setHandlePosition(this.constrainHandle_(a*this.ratio_));this.onScroll_()};\nBlockly.Scrollbar.insertAfter_=function(a,b){var c=b.nextSibling,d=b.parentNode;if(!d)throw"Reference node has no parent.";c?d.insertBefore(a,c):d.appendChild(a)};Blockly.Trashcan=function(a){this.workspace_=a};Blockly.Trashcan.prototype.WIDTH_=47;Blockly.Trashcan.prototype.BODY_HEIGHT_=44;Blockly.Trashcan.prototype.LID_HEIGHT_=16;Blockly.Trashcan.prototype.MARGIN_BOTTOM_=20;Blockly.Trashcan.prototype.MARGIN_SIDE_=20;Blockly.Trashcan.prototype.MARGIN_HOTSPOT_=10;Blockly.Trashcan.prototype.SPRITE_LEFT_=0;Blockly.Trashcan.prototype.SPRITE_TOP_=32;Blockly.Trashcan.prototype.isOpen=!1;Blockly.Trashcan.prototype.svgGroup_=null;\nBlockly.Trashcan.prototype.svgLid_=null;Blockly.Trashcan.prototype.lidTask_=0;Blockly.Trashcan.prototype.lidOpen_=0;Blockly.Trashcan.prototype.left_=0;Blockly.Trashcan.prototype.top_=0;\nBlockly.Trashcan.prototype.createDom=function(){this.svgGroup_=Blockly.createSvgElement("g",{"class":"blocklyTrash"},null);var a=String(Math.random()).substring(2),b=Blockly.createSvgElement("clipPath",{id:"blocklyTrashBodyClipPath"+a},this.svgGroup_);Blockly.createSvgElement("rect",{width:this.WIDTH_,height:this.BODY_HEIGHT_,y:this.LID_HEIGHT_},b);Blockly.createSvgElement("image",{width:Blockly.SPRITE.width,x:-this.SPRITE_LEFT_,height:Blockly.SPRITE.height,y:-this.SPRITE_TOP_,"clip-path":"url(#blocklyTrashBodyClipPath"+\na+")"},this.svgGroup_).setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",this.workspace_.options.pathToMedia+Blockly.SPRITE.url);b=Blockly.createSvgElement("clipPath",{id:"blocklyTrashLidClipPath"+a},this.svgGroup_);Blockly.createSvgElement("rect",{width:this.WIDTH_,height:this.LID_HEIGHT_},b);this.svgLid_=Blockly.createSvgElement("image",{width:Blockly.SPRITE.width,x:-this.SPRITE_LEFT_,height:Blockly.SPRITE.height,y:-this.SPRITE_TOP_,"clip-path":"url(#blocklyTrashLidClipPath"+a+")"},this.svgGroup_);\nthis.svgLid_.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",this.workspace_.options.pathToMedia+Blockly.SPRITE.url);Blockly.bindEventWithChecks_(this.svgGroup_,"mouseup",this,this.click);this.animateLid_();return this.svgGroup_};Blockly.Trashcan.prototype.init=function(a){this.bottom_=this.MARGIN_BOTTOM_+a;this.setOpen_(!1);return this.bottom_+this.BODY_HEIGHT_+this.LID_HEIGHT_};\nBlockly.Trashcan.prototype.dispose=function(){this.svgGroup_&&(goog.dom.removeNode(this.svgGroup_),this.svgGroup_=null);this.workspace_=this.svgLid_=null;goog.Timer.clear(this.lidTask_)};\nBlockly.Trashcan.prototype.position=function(){var a=this.workspace_.getMetrics();a&&(this.workspace_.RTL?(this.left_=this.MARGIN_SIDE_+Blockly.Scrollbar.scrollbarThickness,a.toolboxPosition==Blockly.TOOLBOX_AT_LEFT&&(this.left_+=a.flyoutWidth,this.workspace_.toolbox_&&(this.left_+=a.absoluteLeft))):(this.left_=a.viewWidth+a.absoluteLeft-this.WIDTH_-this.MARGIN_SIDE_-Blockly.Scrollbar.scrollbarThickness,a.toolboxPosition==Blockly.TOOLBOX_AT_RIGHT&&(this.left_-=a.flyoutWidth)),this.top_=a.viewHeight+\na.absoluteTop-(this.BODY_HEIGHT_+this.LID_HEIGHT_)-this.bottom_,a.toolboxPosition==Blockly.TOOLBOX_AT_BOTTOM&&(this.top_-=a.flyoutHeight),this.svgGroup_.setAttribute("transform","translate("+this.left_+","+this.top_+")"))};\nBlockly.Trashcan.prototype.getClientRect=function(){if(!this.svgGroup_)return null;var a=this.svgGroup_.getBoundingClientRect();return new goog.math.Rect(a.left+this.SPRITE_LEFT_-this.MARGIN_HOTSPOT_,a.top+this.SPRITE_TOP_-this.MARGIN_HOTSPOT_,this.WIDTH_+2*this.MARGIN_HOTSPOT_,this.LID_HEIGHT_+this.BODY_HEIGHT_+2*this.MARGIN_HOTSPOT_)};Blockly.Trashcan.prototype.setOpen_=function(a){this.isOpen!=a&&(goog.Timer.clear(this.lidTask_),this.isOpen=a,this.animateLid_())};\nBlockly.Trashcan.prototype.animateLid_=function(){this.lidOpen_+=this.isOpen?.2:-.2;this.lidOpen_=goog.math.clamp(this.lidOpen_,0,1);var a=45*this.lidOpen_;this.svgLid_.setAttribute("transform","rotate("+(this.workspace_.RTL?-a:a)+","+(this.workspace_.RTL?4:this.WIDTH_-4)+","+(this.LID_HEIGHT_-2)+")");a=goog.math.lerp(.4,.8,this.lidOpen_);this.svgGroup_.style.opacity=a;0<this.lidOpen_&&1>this.lidOpen_&&(this.lidTask_=goog.Timer.callOnce(this.animateLid_,20,this))};\nBlockly.Trashcan.prototype.close=function(){this.setOpen_(!1)};Blockly.Trashcan.prototype.click=function(){var a=this.workspace_.startScrollX-this.workspace_.scrollX,b=this.workspace_.startScrollY-this.workspace_.scrollY;Math.sqrt(a*a+b*b)>Blockly.DRAG_RADIUS||console.log("TODO: Inspect trash.")};Blockly.Xml={};Blockly.Xml.workspaceToDom=function(a,b){for(var c=goog.dom.createDom("xml"),d=a.getTopBlocks(!0),e=0,f;f=d[e];e++)c.appendChild(Blockly.Xml.blockToDomWithXY(f,b));return c};Blockly.Xml.blockToDomWithXY=function(a,b){var c;a.workspace.RTL&&(c=a.workspace.getWidth());var d=Blockly.Xml.blockToDom(a,b),e=a.getRelativeToSurfaceXY();d.setAttribute("x",Math.round(a.workspace.RTL?c-e.x:e.x));d.setAttribute("y",Math.round(e.y));return d};\nBlockly.Xml.blockToDom=function(a,b){var c=goog.dom.createDom(a.isShadow()?"shadow":"block");c.setAttribute("type",a.type);b||c.setAttribute("id",a.id);if(a.mutationToDom){var d=a.mutationToDom();d&&(d.hasChildNodes()||d.hasAttributes())&&c.appendChild(d)}for(var d=0,e;e=a.inputList[d];d++)for(var f=0,g;g=e.fieldRow[f];f++)if(g.name&&g.EDITABLE){var h=goog.dom.createDom("field",null,g.getValue());h.setAttribute("name",g.name);c.appendChild(h)}if(d=a.getCommentText())d=goog.dom.createDom("comment",\nnull,d),"object"==typeof a.comment&&(d.setAttribute("pinned",a.comment.isVisible()),e=a.comment.getBubbleSize(),d.setAttribute("h",e.height),d.setAttribute("w",e.width)),c.appendChild(d);a.data&&(d=goog.dom.createDom("data",null,a.data),c.appendChild(d));for(d=0;e=a.inputList[d];d++){var k;g=!0;e.type!=Blockly.DUMMY_INPUT&&(h=e.connection.targetBlock(),e.type==Blockly.INPUT_VALUE?k=goog.dom.createDom("value"):e.type==Blockly.NEXT_STATEMENT&&(k=goog.dom.createDom("statement")),f=e.connection.getShadowDom(),\n!f||h&&h.isShadow()||k.appendChild(Blockly.Xml.cloneShadow_(f)),h&&(k.appendChild(Blockly.Xml.blockToDom(h,b)),g=!1),k.setAttribute("name",e.name),g||c.appendChild(k))}a.inputsInlineDefault!=a.inputsInline&&c.setAttribute("inline",a.inputsInline);a.isCollapsed()&&c.setAttribute("collapsed",!0);a.disabled&&c.setAttribute("disabled",!0);a.isDeletable()||a.isShadow()||c.setAttribute("deletable",!1);a.isMovable()||a.isShadow()||c.setAttribute("movable",!1);a.isEditable()||c.setAttribute("editable",!1);\nif(d=a.getNextBlock())k=goog.dom.createDom("next",null,Blockly.Xml.blockToDom(d,b)),c.appendChild(k);f=a.nextConnection&&a.nextConnection.getShadowDom();!f||d&&d.isShadow()||k.appendChild(Blockly.Xml.cloneShadow_(f));return c};\nBlockly.Xml.cloneShadow_=function(a){for(var b=a=a.cloneNode(!0),c;b;)if(b.firstChild)b=b.firstChild;else{for(;b&&!b.nextSibling;)c=b,b=b.parentNode,3==c.nodeType&&""==c.data.trim()&&b.firstChild!=c&&goog.dom.removeNode(c);b&&(c=b,b=b.nextSibling,3==c.nodeType&&""==c.data.trim()&&goog.dom.removeNode(c))}return a};Blockly.Xml.domToText=function(a){return(new XMLSerializer).serializeToString(a)};\nBlockly.Xml.domToPrettyText=function(a){a=Blockly.Xml.domToText(a).split("<");for(var b="",c=1;c<a.length;c++){var d=a[c];"/"==d[0]&&(b=b.substring(2));a[c]=b+"<"+d;"/"!=d[0]&&"/>"!=d.slice(-2)&&(b+=" ")}a=a.join("\\n");a=a.replace(/(<(\\w+)\\b[^>]*>[^\\n]*)\\n *<\\/\\2>/g,"$1</$2>");return a.replace(/^\\n/,"")};\nBlockly.Xml.textToDom=function(a){(a=(new DOMParser).parseFromString(a,"text/xml"))&&a.firstChild&&"xml"==a.firstChild.nodeName.toLowerCase()&&a.firstChild===a.lastChild||goog.asserts.fail("Blockly.Xml.textToDom did not obtain a valid XML tree.");return a.firstChild};\nBlockly.Xml.domToWorkspace=function(a,b){if(a instanceof Blockly.Workspace){var c=a;a=b;b=c;console.warn("Deprecated call to Blockly.Xml.domToWorkspace, swap the arguments.")}var d;b.RTL&&(d=b.getWidth());Blockly.Field.startCache();var c=a.childNodes.length,e=Blockly.Events.getGroup();e||Blockly.Events.setGroup(!0);for(var f=0;f<c;f++){var g=a.childNodes[f],h=g.nodeName.toLowerCase();if("block"==h||"shadow"==h&&!Blockly.Events.recordUndo){var h=Blockly.Xml.domToBlock(g,b),k=parseInt(g.getAttribute("x"),\n10),g=parseInt(g.getAttribute("y"),10);isNaN(k)||isNaN(g)||h.moveBy(b.RTL?d-k:k,g)}else"shadow"==h&&goog.asserts.fail("Shadow block cannot be a top-level block.")}e||Blockly.Events.setGroup(!1);Blockly.Field.stopCache();b.updateVariableList(!1)};\nBlockly.Xml.domToBlock=function(a,b){if(a instanceof Blockly.Workspace){var c=a;a=b;b=c;console.warn("Deprecated call to Blockly.Xml.domToBlock, swap the arguments.")}Blockly.Events.disable();try{var d=Blockly.Xml.domToBlockHeadless_(a,b);if(b.rendered){d.setConnectionsHidden(!0);for(var e=d.getDescendants(),f=e.length-1;0<=f;f--)e[f].initSvg();for(f=e.length-1;0<=f;f--)e[f].render(!1);setTimeout(function(){d.workspace&&d.setConnectionsHidden(!1)},1);d.updateDisabled();b.resizeContents()}}finally{Blockly.Events.enable()}Blockly.Events.isEnabled()&&\nBlockly.Events.fire(new Blockly.Events.Create(d));return d};\nBlockly.Xml.domToBlockHeadless_=function(a,b){var c=null,d=a.getAttribute("type");goog.asserts.assert(d,"Block type unspecified: %s",a.outerHTML);for(var e=a.getAttribute("id"),c=b.newBlock(d,e),f=null,e=0,g;g=a.childNodes[e];e++)if(3!=g.nodeType){for(var h=f=null,k=0,l;l=g.childNodes[k];k++)1==l.nodeType&&("block"==l.nodeName.toLowerCase()?f=l:"shadow"==l.nodeName.toLowerCase()&&(h=l));!f&&h&&(f=h);k=g.getAttribute("name");switch(g.nodeName.toLowerCase()){case "mutation":c.domToMutation&&(c.domToMutation(g),\nc.initSvg&&c.initSvg());break;case "comment":c.setCommentText(g.textContent);var p=g.getAttribute("pinned");p&&!c.isInFlyout&&setTimeout(function(){c.comment&&c.comment.setVisible&&c.comment.setVisible("true"==p)},1);f=parseInt(g.getAttribute("w"),10);g=parseInt(g.getAttribute("h"),10);!isNaN(f)&&!isNaN(g)&&c.comment&&c.comment.setVisible&&c.comment.setBubbleSize(f,g);break;case "data":c.data=g.textContent;break;case "title":case "field":f=c.getField(k);if(!f){console.warn("Ignoring non-existent field "+\nk+" in block "+d);break}f.setValue(g.textContent);break;case "value":case "statement":g=c.getInput(k);if(!g){console.warn("Ignoring non-existent input "+k+" in block "+d);break}h&&g.connection.setShadowDom(h);f&&(f=Blockly.Xml.domToBlockHeadless_(f,b),f.outputConnection?g.connection.connect(f.outputConnection):f.previousConnection?g.connection.connect(f.previousConnection):goog.asserts.fail("Child block does not have output or previous statement."));break;case "next":h&&c.nextConnection&&c.nextConnection.setShadowDom(h);\nf&&(goog.asserts.assert(c.nextConnection,"Next statement does not exist."),goog.asserts.assert(!c.nextConnection.isConnected(),"Next statement is already connected."),f=Blockly.Xml.domToBlockHeadless_(f,b),goog.asserts.assert(f.previousConnection,"Next block does not have previous statement."),c.nextConnection.connect(f.previousConnection));break;default:console.warn("Ignoring unknown tag: "+g.nodeName)}}(e=a.getAttribute("inline"))&&c.setInputsInline("true"==e);(e=a.getAttribute("disabled"))&&c.setDisabled("true"==\ne);(e=a.getAttribute("deletable"))&&c.setDeletable("true"==e);(e=a.getAttribute("movable"))&&c.setMovable("true"==e);(e=a.getAttribute("editable"))&&c.setEditable("true"==e);(e=a.getAttribute("collapsed"))&&c.setCollapsed("true"==e);if("shadow"==a.nodeName.toLowerCase()){d=c.getChildren();for(e=0;g=d[e];e++)goog.asserts.assert(g.isShadow(),"Shadow block not allowed non-shadow child.");c.setShadow(!0)}return c};\nBlockly.Xml.deleteNext=function(a){for(var b=0,c;c=a.childNodes[b];b++)if("next"==c.nodeName.toLowerCase()){a.removeChild(c);break}};goog.global.Blockly||(goog.global.Blockly={});goog.global.Blockly.Xml||(goog.global.Blockly.Xml={});goog.global.Blockly.Xml.domToText=Blockly.Xml.domToText;goog.global.Blockly.Xml.domToWorkspace=Blockly.Xml.domToWorkspace;goog.global.Blockly.Xml.textToDom=Blockly.Xml.textToDom;goog.global.Blockly.Xml.workspaceToDom=Blockly.Xml.workspaceToDom;\n// Copyright 2015 Google Inc. Apache License 2.0\nBlockly.ZoomControls=function(a){this.workspace_=a};Blockly.ZoomControls.prototype.WIDTH_=32;Blockly.ZoomControls.prototype.HEIGHT_=110;Blockly.ZoomControls.prototype.MARGIN_BOTTOM_=20;Blockly.ZoomControls.prototype.MARGIN_SIDE_=20;Blockly.ZoomControls.prototype.svgGroup_=null;Blockly.ZoomControls.prototype.left_=0;Blockly.ZoomControls.prototype.top_=0;\nBlockly.ZoomControls.prototype.createDom=function(){var a=this.workspace_;this.svgGroup_=Blockly.createSvgElement("g",{"class":"blocklyZoom"},null);var b=String(Math.random()).substring(2),c=Blockly.createSvgElement("clipPath",{id:"blocklyZoomoutClipPath"+b},this.svgGroup_);Blockly.createSvgElement("rect",{width:32,height:32,y:77},c);var d=Blockly.createSvgElement("image",{width:Blockly.SPRITE.width,height:Blockly.SPRITE.height,x:-64,y:-15,"clip-path":"url(#blocklyZoomoutClipPath"+b+")"},this.svgGroup_);\nd.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",a.options.pathToMedia+Blockly.SPRITE.url);c=Blockly.createSvgElement("clipPath",{id:"blocklyZoominClipPath"+b},this.svgGroup_);Blockly.createSvgElement("rect",{width:32,height:32,y:43},c);var e=Blockly.createSvgElement("image",{width:Blockly.SPRITE.width,height:Blockly.SPRITE.height,x:-32,y:-49,"clip-path":"url(#blocklyZoominClipPath"+b+")"},this.svgGroup_);e.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",a.options.pathToMedia+\nBlockly.SPRITE.url);c=Blockly.createSvgElement("clipPath",{id:"blocklyZoomresetClipPath"+b},this.svgGroup_);Blockly.createSvgElement("rect",{width:32,height:32},c);b=Blockly.createSvgElement("image",{width:Blockly.SPRITE.width,height:Blockly.SPRITE.height,y:-92,"clip-path":"url(#blocklyZoomresetClipPath"+b+")"},this.svgGroup_);b.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",a.options.pathToMedia+Blockly.SPRITE.url);Blockly.bindEventWithChecks_(b,"mousedown",null,function(b){a.setScale(a.options.zoomOptions.startScale);\na.scrollCenter();Blockly.Touch.clearTouchIdentifier();b.stopPropagation();b.preventDefault()});Blockly.bindEventWithChecks_(e,"mousedown",null,function(b){a.zoomCenter(1);Blockly.Touch.clearTouchIdentifier();b.stopPropagation();b.preventDefault()});Blockly.bindEventWithChecks_(d,"mousedown",null,function(b){a.zoomCenter(-1);Blockly.Touch.clearTouchIdentifier();b.stopPropagation();b.preventDefault()});return this.svgGroup_};\nBlockly.ZoomControls.prototype.init=function(a){this.bottom_=this.MARGIN_BOTTOM_+a;return this.bottom_+this.HEIGHT_};Blockly.ZoomControls.prototype.dispose=function(){this.svgGroup_&&(goog.dom.removeNode(this.svgGroup_),this.svgGroup_=null);this.workspace_=null};\nBlockly.ZoomControls.prototype.position=function(){var a=this.workspace_.getMetrics();a&&(this.workspace_.RTL?(this.left_=this.MARGIN_SIDE_+Blockly.Scrollbar.scrollbarThickness,a.toolboxPosition==Blockly.TOOLBOX_AT_LEFT&&(this.left_+=a.flyoutWidth,this.workspace_.toolbox_&&(this.left_+=a.absoluteLeft))):(this.left_=a.viewWidth+a.absoluteLeft-this.WIDTH_-this.MARGIN_SIDE_-Blockly.Scrollbar.scrollbarThickness,a.toolboxPosition==Blockly.TOOLBOX_AT_RIGHT&&(this.left_-=a.flyoutWidth)),this.top_=a.viewHeight+\na.absoluteTop-this.HEIGHT_-this.bottom_,a.toolboxPosition==Blockly.TOOLBOX_AT_BOTTOM&&(this.top_-=a.flyoutHeight),this.svgGroup_.setAttribute("transform","translate("+this.left_+","+this.top_+")"))};\n// Copyright 2014 Google Inc. Apache License 2.0\nBlockly.WorkspaceSvg=function(a){Blockly.WorkspaceSvg.superClass_.constructor.call(this,a);this.getMetrics=a.getMetrics||Blockly.WorkspaceSvg.getTopLevelWorkspaceMetrics_;this.setMetrics=a.setMetrics||Blockly.WorkspaceSvg.setTopLevelWorkspaceMetrics_;Blockly.ConnectionDB.init(this);this.SOUNDS_=Object.create(null)};goog.inherits(Blockly.WorkspaceSvg,Blockly.Workspace);Blockly.WorkspaceSvg.prototype.resizeHandlerWrapper_=null;Blockly.WorkspaceSvg.prototype.rendered=!0;\nBlockly.WorkspaceSvg.prototype.isFlyout=!1;Blockly.WorkspaceSvg.prototype.isMutator=!1;Blockly.WorkspaceSvg.prototype.dragMode_=Blockly.DRAG_NONE;Blockly.WorkspaceSvg.prototype.scrollX=0;Blockly.WorkspaceSvg.prototype.scrollY=0;Blockly.WorkspaceSvg.prototype.startScrollX=0;Blockly.WorkspaceSvg.prototype.startScrollY=0;Blockly.WorkspaceSvg.prototype.dragDeltaXY_=null;Blockly.WorkspaceSvg.prototype.scale=1;Blockly.WorkspaceSvg.prototype.trashcan=null;Blockly.WorkspaceSvg.prototype.scrollbar=null;\nBlockly.WorkspaceSvg.prototype.lastSound_=null;Blockly.WorkspaceSvg.prototype.lastRecordedPageScroll_=null;Blockly.WorkspaceSvg.prototype.inverseScreenCTM_=null;Blockly.WorkspaceSvg.prototype.getInverseScreenCTM=function(){return this.inverseScreenCTM_};Blockly.WorkspaceSvg.prototype.updateInverseScreenCTM=function(){var a=this.getParentSvg().getScreenCTM();a&&(this.inverseScreenCTM_=a.inverse())};Blockly.WorkspaceSvg.prototype.setResizeHandlerWrapper=function(a){this.resizeHandlerWrapper_=a};\nBlockly.WorkspaceSvg.prototype.createDom=function(a){this.svgGroup_=Blockly.createSvgElement("g",{"class":"blocklyWorkspace"},null);a&&(this.svgBackground_=Blockly.createSvgElement("rect",{height:"100%",width:"100%","class":a},this.svgGroup_),"blocklyMainBackground"==a&&(this.svgBackground_.style.fill="url(#"+this.options.gridPattern.id+")"));this.svgBlockCanvas_=Blockly.createSvgElement("g",{"class":"blocklyBlockCanvas"},this.svgGroup_,this);this.svgBubbleCanvas_=Blockly.createSvgElement("g",{"class":"blocklyBubbleCanvas"},\nthis.svgGroup_,this);a=Blockly.Scrollbar.scrollbarThickness;this.options.hasTrashcan&&(a=this.addTrashcan_(a));this.options.zoomOptions&&this.options.zoomOptions.controls&&(a=this.addZoomControls_(a));if(!this.isFlyout){Blockly.bindEventWithChecks_(this.svgGroup_,"mousedown",this,this.onMouseDown_);var b=this;Blockly.bindEventWithChecks_(this.svgGroup_,"touchstart",null,function(a){Blockly.longStart_(a,b)});this.options.zoomOptions&&this.options.zoomOptions.wheel&&Blockly.bindEventWithChecks_(this.svgGroup_,\n"wheel",this,this.onMouseWheel_)}this.options.hasCategories?this.toolbox_=new Blockly.Toolbox(this):this.options.languageTree&&this.addFlyout_();this.updateGridPattern_();this.recordDeleteAreas();return this.svgGroup_};\nBlockly.WorkspaceSvg.prototype.dispose=function(){this.rendered=!1;Blockly.WorkspaceSvg.superClass_.dispose.call(this);this.svgGroup_&&(goog.dom.removeNode(this.svgGroup_),this.svgGroup_=null);this.svgBubbleCanvas_=this.svgBlockCanvas_=null;this.toolbox_&&(this.toolbox_.dispose(),this.toolbox_=null);this.flyout_&&(this.flyout_.dispose(),this.flyout_=null);this.trashcan&&(this.trashcan.dispose(),this.trashcan=null);this.scrollbar&&(this.scrollbar.dispose(),this.scrollbar=null);this.zoomControls_&&\n(this.zoomControls_.dispose(),this.zoomControls_=null);this.options.parentWorkspace||goog.dom.removeNode(this.getParentSvg().parentNode);this.resizeHandlerWrapper_&&(Blockly.unbindEvent_(this.resizeHandlerWrapper_),this.resizeHandlerWrapper_=null)};Blockly.WorkspaceSvg.prototype.newBlock=function(a,b){return new Blockly.BlockSvg(this,a,b)};\nBlockly.WorkspaceSvg.prototype.addTrashcan_=function(a){this.trashcan=new Blockly.Trashcan(this);var b=this.trashcan.createDom();this.svgGroup_.insertBefore(b,this.svgBlockCanvas_);return this.trashcan.init(a)};Blockly.WorkspaceSvg.prototype.addZoomControls_=function(a){this.zoomControls_=new Blockly.ZoomControls(this);var b=this.zoomControls_.createDom();this.svgGroup_.appendChild(b);return this.zoomControls_.init(a)};\nBlockly.WorkspaceSvg.prototype.addFlyout_=function(){this.flyout_=new Blockly.Flyout({disabledPatternId:this.options.disabledPatternId,parentWorkspace:this,RTL:this.RTL,oneBasedIndex:this.options.oneBasedIndex,horizontalLayout:this.horizontalLayout,toolboxPosition:this.options.toolboxPosition});this.flyout_.autoClose=!1;var a=this.flyout_.createDom();this.svgGroup_.insertBefore(a,this.svgBlockCanvas_)};\nBlockly.WorkspaceSvg.prototype.updateScreenCalculations_=function(){this.updateInverseScreenCTM();this.recordDeleteAreas()};Blockly.WorkspaceSvg.prototype.resizeContents=function(){this.scrollbar&&this.scrollbar.resize();this.updateInverseScreenCTM()};\nBlockly.WorkspaceSvg.prototype.resize=function(){this.toolbox_&&this.toolbox_.position();this.flyout_&&this.flyout_.position();this.trashcan&&this.trashcan.position();this.zoomControls_&&this.zoomControls_.position();this.scrollbar&&this.scrollbar.resize();this.updateScreenCalculations_()};Blockly.WorkspaceSvg.prototype.updateScreenCalculationsIfScrolled=function(){var a=goog.dom.getDocumentScroll();goog.math.Coordinate.equals(this.lastRecordedPageScroll_,a)||(this.lastRecordedPageScroll_=a,this.updateScreenCalculations_())};\nBlockly.WorkspaceSvg.prototype.getCanvas=function(){return this.svgBlockCanvas_};Blockly.WorkspaceSvg.prototype.getBubbleCanvas=function(){return this.svgBubbleCanvas_};Blockly.WorkspaceSvg.prototype.getParentSvg=function(){if(this.cachedParentSvg_)return this.cachedParentSvg_;for(var a=this.svgGroup_;a;){if("svg"==a.tagName)return this.cachedParentSvg_=a;a=a.parentNode}return null};\nBlockly.WorkspaceSvg.prototype.translate=function(a,b){var c="translate("+a+","+b+") scale("+this.scale+")";this.svgBlockCanvas_.setAttribute("transform",c);this.svgBubbleCanvas_.setAttribute("transform",c)};Blockly.WorkspaceSvg.prototype.getWidth=function(){var a=this.getMetrics();return a?a.viewWidth/this.scale:0};\nBlockly.WorkspaceSvg.prototype.setVisible=function(a){this.getParentSvg().style.display=a?"block":"none";this.toolbox_&&(this.toolbox_.HtmlDiv.style.display=a?"block":"none");a?(this.render(),this.toolbox_&&this.toolbox_.position()):Blockly.hideChaff(!0)};Blockly.WorkspaceSvg.prototype.render=function(){for(var a=this.getAllBlocks(),b=a.length-1;0<=b;b--)a[b].render(!1)};\nBlockly.WorkspaceSvg.prototype.traceOn=function(a){this.traceOn_=a;this.traceWrapper_&&(Blockly.unbindEvent_(this.traceWrapper_),this.traceWrapper_=null);a&&(this.traceWrapper_=Blockly.bindEventWithChecks_(this.svgBlockCanvas_,"blocklySelectChange",this,function(){this.traceOn_=!1}))};\nBlockly.WorkspaceSvg.prototype.highlightBlock=function(a){this.traceOn_&&Blockly.dragMode_!=Blockly.DRAG_NONE&&this.traceOn(!1);if(this.traceOn_){var b=null;if(a&&(b=this.getBlockById(a),!b))return;this.traceOn(!1);b?b.select():Blockly.selected&&Blockly.selected.unselect();var c=this;setTimeout(function(){c.traceOn(!0)},1)}};\nBlockly.WorkspaceSvg.prototype.paste=function(a){if(this.rendered&&!(a.getElementsByTagName("block").length>=this.remainingCapacity())){Blockly.terminateDrag_();Blockly.Events.disable();try{var b=Blockly.Xml.domToBlock(a,this),c=parseInt(a.getAttribute("x"),10),d=parseInt(a.getAttribute("y"),10);if(!isNaN(c)&&!isNaN(d)){this.RTL&&(c=-c);do{a=!1;for(var e=this.getAllBlocks(),f=0,g;g=e[f];f++){var h=g.getRelativeToSurfaceXY();if(1>=Math.abs(c-h.x)&&1>=Math.abs(d-h.y)){a=!0;break}}if(!a)for(var k=b.getConnections_(!1),\nf=0,l;l=k[f];f++)if(l.closest(Blockly.SNAP_RADIUS,new goog.math.Coordinate(c,d)).connection){a=!0;break}a&&(c=this.RTL?c-Blockly.SNAP_RADIUS:c+Blockly.SNAP_RADIUS,d+=2*Blockly.SNAP_RADIUS)}while(a);b.moveBy(c,d)}}finally{Blockly.Events.enable()}Blockly.Events.isEnabled()&&!b.isShadow()&&Blockly.Events.fire(new Blockly.Events.Create(b));b.select()}};\nBlockly.WorkspaceSvg.prototype.createVariable=function(a){Blockly.WorkspaceSvg.superClass_.createVariable.call(this,a);this.toolbox_&&this.toolbox_.flyout_&&!Blockly.Flyout.startFlyout_&&this.toolbox_.refreshSelection()};Blockly.WorkspaceSvg.prototype.recordDeleteAreas=function(){this.deleteAreaTrash_=this.trashcan?this.trashcan.getClientRect():null;this.deleteAreaToolbox_=this.flyout_?this.flyout_.getClientRect():this.toolbox_?this.toolbox_.getClientRect():null};\nBlockly.WorkspaceSvg.prototype.isDeleteArea=function(a){a=new goog.math.Coordinate(a.clientX,a.clientY);if(this.deleteAreaTrash_){if(this.deleteAreaTrash_.contains(a))return this.trashcan.setOpen_(!0),Blockly.Css.setCursor(Blockly.Css.Cursor.DELETE),!0;this.trashcan.setOpen_(!1)}if(this.deleteAreaToolbox_&&this.deleteAreaToolbox_.contains(a))return Blockly.Css.setCursor(Blockly.Css.Cursor.DELETE),!0;Blockly.Css.setCursor(Blockly.Css.Cursor.CLOSED);return!1};\nBlockly.WorkspaceSvg.prototype.onMouseDown_=function(a){this.markFocused();Blockly.isTargetInput_(a)?Blockly.Touch.clearTouchIdentifier():(Blockly.terminateDrag_(),Blockly.hideChaff(),a.target&&a.target.nodeName&&("svg"==a.target.nodeName.toLowerCase()||a.target==this.svgBackground_)&&Blockly.selected&&!this.options.readOnly&&Blockly.selected.unselect(),Blockly.isRightButton(a)?(this.showContextMenu_(a),Blockly.Touch.clearTouchIdentifier()):this.scrollbar&&(this.dragMode_=Blockly.DRAG_BEGIN,this.startDragMouseX=\na.clientX,this.startDragMouseY=a.clientY,this.startDragMetrics=this.getMetrics(),this.startScrollX=this.scrollX,this.startScrollY=this.scrollY,"mouseup"in Blockly.Touch.TOUCH_MAP&&(Blockly.Touch.onTouchUpWrapper_=Blockly.Touch.onTouchUpWrapper_||[],Blockly.Touch.onTouchUpWrapper_=Blockly.Touch.onTouchUpWrapper_.concat(Blockly.bindEventWithChecks_(document,"mouseup",null,Blockly.onMouseUp_))),Blockly.onMouseMoveWrapper_=Blockly.onMouseMoveWrapper_||[],Blockly.onMouseMoveWrapper_=Blockly.onMouseMoveWrapper_.concat(Blockly.bindEventWithChecks_(document,\n"mousemove",null,Blockly.onMouseMove_))),a.stopPropagation(),a.preventDefault())};Blockly.WorkspaceSvg.prototype.startDrag=function(a,b){var c=Blockly.mouseToSvg(a,this.getParentSvg(),this.getInverseScreenCTM());c.x/=this.scale;c.y/=this.scale;this.dragDeltaXY_=goog.math.Coordinate.difference(b,c)};\nBlockly.WorkspaceSvg.prototype.moveDrag=function(a){a=Blockly.mouseToSvg(a,this.getParentSvg(),this.getInverseScreenCTM());a.x/=this.scale;a.y/=this.scale;return goog.math.Coordinate.sum(this.dragDeltaXY_,a)};Blockly.WorkspaceSvg.prototype.isDragging=function(){return Blockly.dragMode_==Blockly.DRAG_FREE||Blockly.Flyout.startFlyout_&&Blockly.Flyout.startFlyout_.dragMode_==Blockly.DRAG_FREE||this.dragMode_==Blockly.DRAG_FREE};\nBlockly.WorkspaceSvg.prototype.onMouseWheel_=function(a){Blockly.terminateDrag_();var b=0<a.deltaY?-1:1,c=Blockly.mouseToSvg(a,this.getParentSvg(),this.getInverseScreenCTM());this.zoom(c.x,c.y,b);a.preventDefault()};\nBlockly.WorkspaceSvg.prototype.getBlocksBoundingBox=function(){var a=this.getTopBlocks(!1);if(!a.length)return{x:0,y:0,width:0,height:0};for(var b=a[0].getBoundingRectangle(),c=1;c<a.length;c++){var d=a[c].getBoundingRectangle();d.topLeft.x<b.topLeft.x&&(b.topLeft.x=d.topLeft.x);d.bottomRight.x>b.bottomRight.x&&(b.bottomRight.x=d.bottomRight.x);d.topLeft.y<b.topLeft.y&&(b.topLeft.y=d.topLeft.y);d.bottomRight.y>b.bottomRight.y&&(b.bottomRight.y=d.bottomRight.y)}return{x:b.topLeft.x,y:b.topLeft.y,width:b.bottomRight.x-\nb.topLeft.x,height:b.bottomRight.y-b.topLeft.y}};Blockly.WorkspaceSvg.prototype.cleanUp=function(){Blockly.Events.setGroup(!0);for(var a=this.getTopBlocks(!0),b=0,c=0,d;d=a[c];c++){var e=d.getRelativeToSurfaceXY();d.moveBy(-e.x,b-e.y);d.snapToGrid();b=d.getRelativeToSurfaceXY().y+d.getHeightWidth().height+Blockly.BlockSvg.MIN_BLOCK_Y}Blockly.Events.setGroup(!1);this.resizeContents()};\nBlockly.WorkspaceSvg.prototype.showContextMenu_=function(a){function b(a){if(a.isDeletable())m=m.concat(a.getDescendants());else{a=a.getChildren();for(var c=0;c<a.length;c++)b(a[c])}}function c(){Blockly.Events.setGroup(f);var a=m.shift();a&&(a.workspace?(a.dispose(!1,!0),setTimeout(c,10)):c());Blockly.Events.setGroup(!1)}if(!this.options.readOnly&&!this.isFlyout){var d=[],e=this.getTopBlocks(!0),f=Blockly.genUid(),g={};g.text=Blockly.Msg.UNDO;g.enabled=0<this.undoStack_.length;g.callback=this.undo.bind(this,\n!1);d.push(g);g={};g.text=Blockly.Msg.REDO;g.enabled=0<this.redoStack_.length;g.callback=this.undo.bind(this,!0);d.push(g);this.scrollbar&&(g={},g.text=Blockly.Msg.CLEAN_UP,g.enabled=1<e.length,g.callback=this.cleanUp.bind(this),d.push(g));if(this.options.collapse){for(var h=g=!1,k=0;k<e.length;k++)for(var l=e[k];l;)l.isCollapsed()?g=!0:h=!0,l=l.getNextBlock();var p=function(a){for(var b=0,c=0;c<e.length;c++)for(var d=e[c];d;)setTimeout(d.setCollapsed.bind(d,a),b),d=d.getNextBlock(),b+=10},h={enabled:h};\nh.text=Blockly.Msg.COLLAPSE_ALL;h.callback=function(){p(!0)};d.push(h);g={enabled:g};g.text=Blockly.Msg.EXPAND_ALL;g.callback=function(){p(!1)};d.push(g)}for(var m=[],k=0;k<e.length;k++)b(e[k]);g={text:1==m.length?Blockly.Msg.DELETE_BLOCK:Blockly.Msg.DELETE_X_BLOCKS.replace("%1",String(m.length)),enabled:0<m.length,callback:function(){(2>m.length||window.confirm(Blockly.Msg.DELETE_ALL_BLOCKS.replace("%1",String(m.length))))&&c()}};d.push(g);Blockly.ContextMenu.show(a,d,this.RTL)}};\nBlockly.WorkspaceSvg.prototype.loadAudio_=function(a,b){if(a.length){try{var c=new window.Audio}catch(h){return}for(var d,e=0;e<a.length;e++){var f=a[e],g=f.match(/\\.(\\w+)$/);if(g&&c.canPlayType("audio/"+g[1])){d=new window.Audio(f);break}}d&&d.play&&(this.SOUNDS_[b]=d)}};Blockly.WorkspaceSvg.prototype.preloadAudio_=function(){for(var a in this.SOUNDS_){var b=this.SOUNDS_[a];b.volume=.01;b.play();b.pause();if(goog.userAgent.IPAD||goog.userAgent.IPHONE)break}};\nBlockly.WorkspaceSvg.prototype.playAudio=function(a,b){var c=this.SOUNDS_[a];if(c){var d=new Date;d-this.lastSound_<Blockly.SOUND_LIMIT||(this.lastSound_=d,c=goog.userAgent.DOCUMENT_MODE&&9===goog.userAgent.DOCUMENT_MODE||goog.userAgent.IPAD||goog.userAgent.ANDROID?c:c.cloneNode(),c.volume=void 0===b?1:b,c.play())}else this.options.parentWorkspace&&this.options.parentWorkspace.playAudio(a,b)};\nBlockly.WorkspaceSvg.prototype.updateToolbox=function(a){if(a=Blockly.Options.parseToolboxTree(a)){if(!this.options.languageTree)throw"Existing toolbox is null. Can\'t create new toolbox.";if(a.getElementsByTagName("category").length){if(!this.toolbox_)throw"Existing toolbox has no categories. Can\'t change mode.";this.options.languageTree=a;this.toolbox_.populate_(a);this.toolbox_.addColour_()}else{if(!this.flyout_)throw"Existing toolbox has categories. Can\'t change mode.";this.options.languageTree=\na;this.flyout_.show(a.childNodes)}}else if(this.options.languageTree)throw"Can\'t nullify an existing toolbox.";};Blockly.WorkspaceSvg.prototype.markFocused=function(){this.options.parentWorkspace?this.options.parentWorkspace.markFocused():Blockly.mainWorkspace=this};\nBlockly.WorkspaceSvg.prototype.zoom=function(a,b,c){var d=this.options.zoomOptions.scaleSpeed,e=this.getMetrics(),f=this.getParentSvg().createSVGPoint();f.x=a;f.y=b;f=f.matrixTransform(this.getCanvas().getCTM().inverse());a=f.x;b=f.y;f=this.getCanvas();d=1==c?d:1/d;c=this.scale*d;c>this.options.zoomOptions.maxScale?d=this.options.zoomOptions.maxScale/this.scale:c<this.options.zoomOptions.minScale&&(d=this.options.zoomOptions.minScale/this.scale);this.scale!=c&&(this.scrollbar&&(a=f.getCTM().translate(a*\n(1-d),b*(1-d)).scale(d),this.scrollX=a.e-e.absoluteLeft,this.scrollY=a.f-e.absoluteTop),this.setScale(c))};Blockly.WorkspaceSvg.prototype.zoomCenter=function(a){var b=this.getMetrics();this.zoom(b.viewWidth/2,b.viewHeight/2,a)};\nBlockly.WorkspaceSvg.prototype.zoomToFit=function(){var a=this.getMetrics(),b=this.getBlocksBoundingBox(),c=b.width,b=b.height;if(c){var d=a.viewWidth,e=a.viewHeight;this.flyout_&&(d-=this.flyout_.width_);this.scrollbar||(c+=a.contentLeft,b+=a.contentTop);this.setScale(Math.min(d/c,e/b));this.scrollCenter()}};\nBlockly.WorkspaceSvg.prototype.scrollCenter=function(){if(this.scrollbar){var a=this.getMetrics(),b=(a.contentWidth-a.viewWidth)/2;this.flyout_&&(b-=this.flyout_.width_/2);this.scrollbar.set(b,(a.contentHeight-a.viewHeight)/2)}};\nBlockly.WorkspaceSvg.prototype.setScale=function(a){this.options.zoomOptions.maxScale&&a>this.options.zoomOptions.maxScale?a=this.options.zoomOptions.maxScale:this.options.zoomOptions.minScale&&a<this.options.zoomOptions.minScale&&(a=this.options.zoomOptions.minScale);this.scale=a;this.updateGridPattern_();this.scrollbar?this.scrollbar.resize():this.translate(this.scrollX,this.scrollY);Blockly.hideChaff(!1);this.flyout_&&this.flyout_.reflow()};\nBlockly.WorkspaceSvg.prototype.updateGridPattern_=function(){if(this.options.gridPattern){var a=this.options.gridOptions.spacing*this.scale||100;this.options.gridPattern.setAttribute("width",a);this.options.gridPattern.setAttribute("height",a);var a=Math.floor(this.options.gridOptions.spacing/2)+.5,b=a-this.options.gridOptions.length/2,c=a+this.options.gridOptions.length/2,d=this.options.gridPattern.firstChild,e=d&&d.nextSibling,a=a*this.scale,b=b*this.scale,c=c*this.scale;d&&(d.setAttribute("stroke-width",\nthis.scale),d.setAttribute("x1",b),d.setAttribute("y1",a),d.setAttribute("x2",c),d.setAttribute("y2",a));e&&(e.setAttribute("stroke-width",this.scale),e.setAttribute("x1",a),e.setAttribute("y1",b),e.setAttribute("x2",a),e.setAttribute("y2",c))}};\nBlockly.WorkspaceSvg.getTopLevelWorkspaceMetrics_=function(){var a=Blockly.svgSize(this.getParentSvg());if(this.toolbox_)if(this.toolboxPosition==Blockly.TOOLBOX_AT_TOP||this.toolboxPosition==Blockly.TOOLBOX_AT_BOTTOM)a.height-=this.toolbox_.getHeight();else if(this.toolboxPosition==Blockly.TOOLBOX_AT_LEFT||this.toolboxPosition==Blockly.TOOLBOX_AT_RIGHT)a.width-=this.toolbox_.getWidth();var b=Blockly.Flyout.prototype.CORNER_RADIUS-1,c=a.width-b,d=a.height-b,e=this.getBlocksBoundingBox(),f=e.width*\nthis.scale,g=e.height*this.scale,h=e.x*this.scale,k=e.y*this.scale;this.scrollbar?(b=Math.min(h-c/2,h+f-c),c=Math.max(h+f+c/2,h+c),f=Math.min(k-d/2,k+g-d),d=Math.max(k+g+d/2,k+d)):(b=e.x,c=b+e.width,f=e.y,d=f+e.height);e=0;this.toolbox_&&this.toolboxPosition==Blockly.TOOLBOX_AT_LEFT&&(e=this.toolbox_.getWidth());g=0;this.toolbox_&&this.toolboxPosition==Blockly.TOOLBOX_AT_TOP&&(g=this.toolbox_.getHeight());return{viewHeight:a.height,viewWidth:a.width,contentHeight:d-f,contentWidth:c-b,viewTop:-this.scrollY,\nviewLeft:-this.scrollX,contentTop:f,contentLeft:b,absoluteTop:g,absoluteLeft:e,toolboxWidth:this.toolbox_?this.toolbox_.getWidth():0,toolboxHeight:this.toolbox_?this.toolbox_.getHeight():0,flyoutWidth:this.flyout_?this.flyout_.getWidth():0,flyoutHeight:this.flyout_?this.flyout_.getHeight():0,toolboxPosition:this.toolboxPosition}};\nBlockly.WorkspaceSvg.setTopLevelWorkspaceMetrics_=function(a){if(!this.scrollbar)throw"Attempt to set top level workspace scroll without scrollbars.";var b=this.getMetrics();goog.isNumber(a.x)&&(this.scrollX=-b.contentWidth*a.x-b.contentLeft);goog.isNumber(a.y)&&(this.scrollY=-b.contentHeight*a.y-b.contentTop);a=this.scrollX+b.absoluteLeft;b=this.scrollY+b.absoluteTop;this.translate(a,b);this.options.gridPattern&&(this.options.gridPattern.setAttribute("x",a),this.options.gridPattern.setAttribute("y",\nb),goog.userAgent.IE&&this.updateGridPattern_())};Blockly.WorkspaceSvg.prototype.setVisible=Blockly.WorkspaceSvg.prototype.setVisible;Blockly.Mutator=function(a){Blockly.Mutator.superClass_.constructor.call(this,null);this.quarkNames_=a};goog.inherits(Blockly.Mutator,Blockly.Icon);Blockly.Mutator.prototype.workspaceWidth_=0;Blockly.Mutator.prototype.workspaceHeight_=0;\nBlockly.Mutator.prototype.drawIcon_=function(a){Blockly.createSvgElement("rect",{"class":"blocklyIconShape",rx:"4",ry:"4",height:"16",width:"16"},a);Blockly.createSvgElement("path",{"class":"blocklyIconSymbol",d:"m4.203,7.296 0,1.368 -0.92,0.677 -0.11,0.41 0.9,1.559 0.41,0.11 1.043,-0.457 1.187,0.683 0.127,1.134 0.3,0.3 1.8,0 0.3,-0.299 0.127,-1.138 1.185,-0.682 1.046,0.458 0.409,-0.11 0.9,-1.559 -0.11,-0.41 -0.92,-0.677 0,-1.366 0.92,-0.677 0.11,-0.41 -0.9,-1.559 -0.409,-0.109 -1.046,0.458 -1.185,-0.682 -0.127,-1.138 -0.3,-0.299 -1.8,0 -0.3,0.3 -0.126,1.135 -1.187,0.682 -1.043,-0.457 -0.41,0.11 -0.899,1.559 0.108,0.409z"},a);\nBlockly.createSvgElement("circle",{"class":"blocklyIconShape",r:"2.7",cx:"8",cy:"8"},a)};Blockly.Mutator.prototype.iconClick_=function(a){this.block_.isEditable()&&Blockly.Icon.prototype.iconClick_.call(this,a)};\nBlockly.Mutator.prototype.createEditor_=function(){this.svgDialog_=Blockly.createSvgElement("svg",{x:Blockly.Bubble.BORDER_WIDTH,y:Blockly.Bubble.BORDER_WIDTH},null);if(this.quarkNames_.length)for(var a=goog.dom.createDom("xml"),b=0,c;c=this.quarkNames_[b];b++)a.appendChild(goog.dom.createDom("block",{type:c}));else a=null;a={languageTree:a,parentWorkspace:this.block_.workspace,pathToMedia:this.block_.workspace.options.pathToMedia,RTL:this.block_.RTL,toolboxPosition:this.block_.RTL?Blockly.TOOLBOX_AT_RIGHT:\nBlockly.TOOLBOX_AT_LEFT,horizontalLayout:!1,getMetrics:this.getFlyoutMetrics_.bind(this),setMetrics:null};this.workspace_=new Blockly.WorkspaceSvg(a);this.workspace_.isMutator=!0;this.svgDialog_.appendChild(this.workspace_.createDom("blocklyMutatorBackground"));return this.svgDialog_};\nBlockly.Mutator.prototype.updateEditable=function(){this.block_.isInFlyout||(this.block_.isEditable()?this.iconGroup_&&Blockly.removeClass_(this.iconGroup_,"blocklyIconGroupReadonly"):(this.setVisible(!1),this.iconGroup_&&Blockly.addClass_(this.iconGroup_,"blocklyIconGroupReadonly")));Blockly.Icon.prototype.updateEditable.call(this)};\nBlockly.Mutator.prototype.resizeBubble_=function(){var a=2*Blockly.Bubble.BORDER_WIDTH,b=this.workspace_.getCanvas().getBBox(),c;c=this.block_.RTL?-b.x:b.width+b.x;b=b.height+3*a;if(this.workspace_.flyout_)var d=this.workspace_.flyout_.getMetrics_(),b=Math.max(b,d.contentHeight+20);c+=3*a;if(Math.abs(this.workspaceWidth_-c)>a||Math.abs(this.workspaceHeight_-b)>a)this.workspaceWidth_=c,this.workspaceHeight_=b,this.bubble_.setBubbleSize(c+a,b+a),this.svgDialog_.setAttribute("width",this.workspaceWidth_),\nthis.svgDialog_.setAttribute("height",this.workspaceHeight_);this.block_.RTL&&(a="translate("+this.workspaceWidth_+",0)",this.workspace_.getCanvas().setAttribute("transform",a));this.workspace_.resize()};\nBlockly.Mutator.prototype.setVisible=function(a){if(a!=this.isVisible())if(Blockly.Events.fire(new Blockly.Events.Ui(this.block_,"mutatorOpen",!a,a)),a){this.bubble_=new Blockly.Bubble(this.block_.workspace,this.createEditor_(),this.block_.svgPath_,this.iconXY_,null,null);if(a=this.workspace_.options.languageTree)this.workspace_.flyout_.init(this.workspace_),this.workspace_.flyout_.show(a.childNodes);this.rootBlock_=this.block_.decompose(this.workspace_);a=this.rootBlock_.getDescendants();for(var b=\n0,c;c=a[b];b++)c.render();this.rootBlock_.setMovable(!1);this.rootBlock_.setDeletable(!1);this.workspace_.flyout_?(a=2*this.workspace_.flyout_.CORNER_RADIUS,b=this.workspace_.flyout_.width_+a):b=a=16;this.block_.RTL&&(b=-b);this.rootBlock_.moveBy(b,a);if(this.block_.saveConnections){var d=this;this.block_.saveConnections(this.rootBlock_);this.sourceListener_=function(){d.block_.saveConnections(d.rootBlock_)};this.block_.workspace.addChangeListener(this.sourceListener_)}this.resizeBubble_();this.workspace_.addChangeListener(this.workspaceChanged_.bind(this));\nthis.updateColour()}else this.svgDialog_=null,this.workspace_.dispose(),this.rootBlock_=this.workspace_=null,this.bubble_.dispose(),this.bubble_=null,this.workspaceHeight_=this.workspaceWidth_=0,this.sourceListener_&&(this.block_.workspace.removeChangeListener(this.sourceListener_),this.sourceListener_=null)};\nBlockly.Mutator.prototype.workspaceChanged_=function(){if(Blockly.dragMode_==Blockly.DRAG_NONE)for(var a=this.workspace_.getTopBlocks(!1),b=0,c;c=a[b];b++){var d=c.getRelativeToSurfaceXY(),e=c.getHeightWidth();20>d.y+e.height&&c.moveBy(0,20-e.height-d.y)}if(this.rootBlock_.workspace==this.workspace_){Blockly.Events.setGroup(!0);c=this.block_;a=(a=c.mutationToDom())&&Blockly.Xml.domToText(a);b=c.rendered;c.rendered=!1;c.compose(this.rootBlock_);c.rendered=b;c.initSvg();b=(b=c.mutationToDom())&&Blockly.Xml.domToText(b);\nif(a!=b){Blockly.Events.fire(new Blockly.Events.Change(c,"mutation",null,a,b));var f=Blockly.Events.getGroup();setTimeout(function(){Blockly.Events.setGroup(f);c.bumpNeighbours_();Blockly.Events.setGroup(!1)},Blockly.BUMP_DELAY)}c.rendered&&c.render();this.resizeBubble_();Blockly.Events.setGroup(!1)}};Blockly.Mutator.prototype.getFlyoutMetrics_=function(){return{viewHeight:this.workspaceHeight_,viewWidth:this.workspaceWidth_,absoluteTop:0,absoluteLeft:0}};\nBlockly.Mutator.prototype.dispose=function(){this.block_.mutator=null;Blockly.Icon.prototype.dispose.call(this)};Blockly.Mutator.reconnect=function(a,b,c){if(!a||!a.getSourceBlock().workspace)return!1;c=b.getInput(c).connection;var d=a.targetBlock();return d&&d!=b||c.targetConnection==a?!1:(c.isConnected()&&c.disconnect(),c.connect(a),!0)};goog.global.Blockly||(goog.global.Blockly={});goog.global.Blockly.Mutator||(goog.global.Blockly.Mutator={});goog.global.Blockly.Mutator.reconnect=Blockly.Mutator.reconnect;Blockly.Warning=function(a){Blockly.Warning.superClass_.constructor.call(this,a);this.createIcon();this.text_={}};goog.inherits(Blockly.Warning,Blockly.Icon);Blockly.Warning.prototype.collapseHidden=!1;\nBlockly.Warning.prototype.drawIcon_=function(a){Blockly.createSvgElement("path",{"class":"blocklyIconShape",d:"M2,15Q-1,15 0.5,12L6.5,1.7Q8,-1 9.5,1.7L15.5,12Q17,15 14,15z"},a);Blockly.createSvgElement("path",{"class":"blocklyIconSymbol",d:"m7,4.8v3.16l0.27,2.27h1.46l0.27,-2.27v-3.16z"},a);Blockly.createSvgElement("rect",{"class":"blocklyIconSymbol",x:"7",y:"11",height:"2",width:"2"},a)};\nBlockly.Warning.textToDom_=function(a){var b=Blockly.createSvgElement("text",{"class":"blocklyText blocklyBubbleText",y:Blockly.Bubble.BORDER_WIDTH},null);a=a.split("\\n");for(var c=0;c<a.length;c++){var d=Blockly.createSvgElement("tspan",{dy:"1em",x:Blockly.Bubble.BORDER_WIDTH},b),e=document.createTextNode(a[c]);d.appendChild(e)}return b};\nBlockly.Warning.prototype.setVisible=function(a){if(a!=this.isVisible())if(Blockly.Events.fire(new Blockly.Events.Ui(this.block_,"warningOpen",!a,a)),a){a=Blockly.Warning.textToDom_(this.getText());this.bubble_=new Blockly.Bubble(this.block_.workspace,a,this.block_.svgPath_,this.iconXY_,null,null);if(this.block_.RTL)for(var b=a.getBBox().width,c=0,d;d=a.childNodes[c];c++)d.setAttribute("text-anchor","end"),d.setAttribute("x",b+Blockly.Bubble.BORDER_WIDTH);this.updateColour();a=this.bubble_.getBubbleSize();\nthis.bubble_.setBubbleSize(a.width,a.height)}else this.bubble_.dispose(),this.body_=this.bubble_=null};Blockly.Warning.prototype.bodyFocus_=function(a){this.bubble_.promote_()};Blockly.Warning.prototype.setText=function(a,b){this.text_[b]!=a&&(a?this.text_[b]=a:delete this.text_[b],this.isVisible()&&(this.setVisible(!1),this.setVisible(!0)))};Blockly.Warning.prototype.getText=function(){var a=[],b;for(b in this.text_)a.push(this.text_[b]);return a.join("\\n")};\nBlockly.Warning.prototype.dispose=function(){this.block_.warning=null;Blockly.Icon.prototype.dispose.call(this)};Blockly.Block=function(a,b,c){this.id=c&&!a.getBlockById(c)?c:Blockly.genUid();a.blockDB_[this.id]=this;this.previousConnection=this.nextConnection=this.outputConnection=null;this.inputList=[];this.inputsInline=void 0;this.disabled=!1;this.tooltip="";this.contextMenu=!0;this.parentBlock_=null;this.childBlocks_=[];this.editable_=this.movable_=this.deletable_=!0;this.collapsed_=this.isShadow_=!1;this.comment=null;this.xy_=new goog.math.Coordinate(0,0);this.workspace=a;this.isInFlyout=a.isFlyout;this.isInMutator=\na.isMutator;this.RTL=a.RTL;b&&(this.type=b,c=Blockly.Blocks[b],goog.asserts.assertObject(c,\'Error: "%s" is an unknown language block.\',b),goog.mixin(this,c));a.addTopBlock(this);goog.isFunction(this.init)&&this.init();this.inputsInlineDefault=this.inputsInline;Blockly.Events.isEnabled()&&Blockly.Events.fire(new Blockly.Events.Create(this));goog.isFunction(this.onchange)&&(this.onchangeWrapper_=this.onchange.bind(this),this.workspace.addChangeListener(this.onchangeWrapper_))};\nBlockly.Block.obtain=function(a,b){console.warn("Deprecated call to Blockly.Block.obtain, use workspace.newBlock instead.");return a.newBlock(b)};Blockly.Block.prototype.data=null;Blockly.Block.prototype.colour_="#000000";\nBlockly.Block.prototype.dispose=function(a){if(this.workspace){this.onchangeWrapper_&&this.workspace.removeChangeListener(this.onchangeWrapper_);this.unplug(a);Blockly.Events.isEnabled()&&Blockly.Events.fire(new Blockly.Events.Delete(this));Blockly.Events.disable();try{this.workspace&&(this.workspace.removeTopBlock(this),delete this.workspace.blockDB_[this.id],this.workspace=null);for(var b=this.childBlocks_.length-1;0<=b;b--)this.childBlocks_[b].dispose(!1);for(var b=0,c;c=this.inputList[b];b++)c.dispose();\nthis.inputList.length=0;for(var d=this.getConnections_(!0),b=0;b<d.length;b++){var e=d[b];e.isConnected()&&e.disconnect();d[b].dispose()}}finally{Blockly.Events.enable()}}};\nBlockly.Block.prototype.unplug=function(a){if(this.outputConnection)this.outputConnection.isConnected()&&this.outputConnection.disconnect();else if(this.previousConnection){var b=null;this.previousConnection.isConnected()&&(b=this.previousConnection.targetConnection,this.previousConnection.disconnect());var c=this.getNextBlock();a&&c&&(a=this.nextConnection.targetConnection,a.disconnect(),b&&b.checkType_(a)&&b.connect(a))}};\nBlockly.Block.prototype.getConnections_=function(){var a=[];this.outputConnection&&a.push(this.outputConnection);this.previousConnection&&a.push(this.previousConnection);this.nextConnection&&a.push(this.nextConnection);for(var b=0,c;c=this.inputList[b];b++)c.connection&&a.push(c.connection);return a};Blockly.Block.prototype.lastConnectionInStack_=function(){for(var a=this.nextConnection;a;){var b=a.targetBlock();if(!b)return a;a=b.nextConnection}return null};\nBlockly.Block.prototype.bumpNeighbours_=function(){if(this.workspace&&Blockly.dragMode_==Blockly.DRAG_NONE){var a=this.getRootBlock();if(!a.isInFlyout)for(var b=this.getConnections_(!1),c=0,d;d=b[c];c++){d.isConnected()&&d.isSuperior()&&d.targetBlock().bumpNeighbours_();for(var e=d.neighbours_(Blockly.SNAP_RADIUS),f=0,g;g=e[f];f++)d.isConnected()&&g.isConnected()||g.getSourceBlock().getRootBlock()!=a&&(d.isSuperior()?g.bumpAwayFrom_(d):d.bumpAwayFrom_(g))}}};Blockly.Block.prototype.getParent=function(){return this.parentBlock_};\nBlockly.Block.prototype.getInputWithBlock=function(a){for(var b=0,c;c=this.inputList[b];b++)if(c.connection&&c.connection.targetBlock()==a)return c;return null};Blockly.Block.prototype.getSurroundParent=function(){var a=this;do{var b=a,a=a.getParent();if(!a)return null}while(a.getNextBlock()==b);return a};Blockly.Block.prototype.getNextBlock=function(){return this.nextConnection&&this.nextConnection.targetBlock()};\nBlockly.Block.prototype.getRootBlock=function(){var a,b=this;do a=b,b=a.parentBlock_;while(b);return a};Blockly.Block.prototype.getChildren=function(){return this.childBlocks_};\nBlockly.Block.prototype.setParent=function(a){if(a!=this.parentBlock_){if(this.parentBlock_){goog.array.remove(this.parentBlock_.childBlocks_,this);if(this.previousConnection&&this.previousConnection.isConnected())throw"Still connected to previous block.";if(this.outputConnection&&this.outputConnection.isConnected())throw"Still connected to parent block.";this.parentBlock_=null}else this.workspace.removeTopBlock(this);(this.parentBlock_=a)?a.childBlocks_.push(this):this.workspace.addTopBlock(this)}};\nBlockly.Block.prototype.getDescendants=function(){for(var a=[this],b,c=0;b=this.childBlocks_[c];c++)a.push.apply(a,b.getDescendants());return a};Blockly.Block.prototype.isDeletable=function(){return this.deletable_&&!this.isShadow_&&!(this.workspace&&this.workspace.options.readOnly)};Blockly.Block.prototype.setDeletable=function(a){this.deletable_=a};Blockly.Block.prototype.isMovable=function(){return this.movable_&&!this.isShadow_&&!(this.workspace&&this.workspace.options.readOnly)};\nBlockly.Block.prototype.setMovable=function(a){this.movable_=a};Blockly.Block.prototype.isShadow=function(){return this.isShadow_};Blockly.Block.prototype.setShadow=function(a){this.isShadow_=a};Blockly.Block.prototype.isEditable=function(){return this.editable_&&!(this.workspace&&this.workspace.options.readOnly)};Blockly.Block.prototype.setEditable=function(a){this.editable_=a;a=0;for(var b;b=this.inputList[a];a++)for(var c=0,d;d=b.fieldRow[c];c++)d.updateEditable()};\nBlockly.Block.prototype.setConnectionsHidden=function(a){if(!a&&this.isCollapsed()){if(this.outputConnection&&this.outputConnection.setHidden(a),this.previousConnection&&this.previousConnection.setHidden(a),this.nextConnection){this.nextConnection.setHidden(a);var b=this.nextConnection.targetBlock();b&&b.setConnectionsHidden(a)}}else for(var c=this.getConnections_(!0),d=0;b=c[d];d++)b.setHidden(a),b.isSuperior()&&(b=b.targetBlock())&&b.setConnectionsHidden(a)};\nBlockly.Block.prototype.setHelpUrl=function(a){this.helpUrl=a};Blockly.Block.prototype.setTooltip=function(a){this.tooltip=a};Blockly.Block.prototype.getColour=function(){return this.colour_};Blockly.Block.prototype.setColour=function(a){var b=parseFloat(a);if(isNaN(b))if(goog.isString(a)&&a.match(/^#[0-9a-fA-F]{6}$/))this.colour_=a;else throw"Invalid colour: "+a;else this.colour_=Blockly.hueToRgb(b)};\nBlockly.Block.prototype.getField=function(a){for(var b=0,c;c=this.inputList[b];b++)for(var d=0,e;e=c.fieldRow[d];d++)if(e.name===a)return e;return null};Blockly.Block.prototype.getVars=function(){for(var a=[],b=0,c;c=this.inputList[b];b++)for(var d=0,e;e=c.fieldRow[d];d++)e instanceof Blockly.FieldVariable&&a.push(e.getValue());return a};\nBlockly.Block.prototype.renameVar=function(a,b){for(var c=0,d;d=this.inputList[c];c++)for(var e=0,f;f=d.fieldRow[e];e++)f instanceof Blockly.FieldVariable&&Blockly.Names.equals(a,f.getValue())&&f.setValue(b)};Blockly.Block.prototype.getFieldValue=function(a){return(a=this.getField(a))?a.getValue():null};Blockly.Block.prototype.getTitleValue=function(a){console.warn("Deprecated call to getTitleValue, use getFieldValue instead.");return this.getFieldValue(a)};\nBlockly.Block.prototype.setFieldValue=function(a,b){var c=this.getField(b);goog.asserts.assertObject(c,\'Field "%s" not found.\',b);c.setValue(a)};Blockly.Block.prototype.setTitleValue=function(a,b){console.warn("Deprecated call to setTitleValue, use setFieldValue instead.");this.setFieldValue(a,b)};\nBlockly.Block.prototype.setPreviousStatement=function(a,b){a?(void 0===b&&(b=null),this.previousConnection||(goog.asserts.assert(!this.outputConnection,"Remove output connection prior to adding previous connection."),this.previousConnection=this.makeConnection_(Blockly.PREVIOUS_STATEMENT)),this.previousConnection.setCheck(b)):this.previousConnection&&(goog.asserts.assert(!this.previousConnection.isConnected(),"Must disconnect previous statement before removing connection."),this.previousConnection.dispose(),\nthis.previousConnection=null)};Blockly.Block.prototype.setNextStatement=function(a,b){a?(void 0===b&&(b=null),this.nextConnection||(this.nextConnection=this.makeConnection_(Blockly.NEXT_STATEMENT)),this.nextConnection.setCheck(b)):this.nextConnection&&(goog.asserts.assert(!this.nextConnection.isConnected(),"Must disconnect next statement before removing connection."),this.nextConnection.dispose(),this.nextConnection=null)};\nBlockly.Block.prototype.setOutput=function(a,b){a?(void 0===b&&(b=null),this.outputConnection||(goog.asserts.assert(!this.previousConnection,"Remove previous connection prior to adding output connection."),this.outputConnection=this.makeConnection_(Blockly.OUTPUT_VALUE)),this.outputConnection.setCheck(b)):this.outputConnection&&(goog.asserts.assert(!this.outputConnection.isConnected(),"Must disconnect output value before removing connection."),this.outputConnection.dispose(),this.outputConnection=\nnull)};Blockly.Block.prototype.setInputsInline=function(a){this.inputsInline!=a&&(Blockly.Events.fire(new Blockly.Events.Change(this,"inline",null,this.inputsInline,a)),this.inputsInline=a)};\nBlockly.Block.prototype.getInputsInline=function(){if(void 0!=this.inputsInline)return this.inputsInline;for(var a=1;a<this.inputList.length;a++)if(this.inputList[a-1].type==Blockly.DUMMY_INPUT&&this.inputList[a].type==Blockly.DUMMY_INPUT)return!1;for(a=1;a<this.inputList.length;a++)if(this.inputList[a-1].type==Blockly.INPUT_VALUE&&this.inputList[a].type==Blockly.DUMMY_INPUT)return!0;return!1};\nBlockly.Block.prototype.setDisabled=function(a){this.disabled!=a&&(Blockly.Events.fire(new Blockly.Events.Change(this,"disabled",null,this.disabled,a)),this.disabled=a)};Blockly.Block.prototype.getInheritedDisabled=function(){for(var a=this;;){a=a.getSurroundParent();if(!a)return!1;if(a.disabled)return!0}};Blockly.Block.prototype.isCollapsed=function(){return this.collapsed_};\nBlockly.Block.prototype.setCollapsed=function(a){this.collapsed_!=a&&(Blockly.Events.fire(new Blockly.Events.Change(this,"collapsed",null,this.collapsed_,a)),this.collapsed_=a)};\nBlockly.Block.prototype.toString=function(a,b){var c=[],d=b||"?";if(this.collapsed_)c.push(this.getInput("_TEMP_COLLAPSED_INPUT").fieldRow[0].text_);else for(var e=0,f;f=this.inputList[e];e++){for(var g=0,h;h=f.fieldRow[g];g++)c.push(h.getText());f.connection&&((f=f.connection.targetBlock())?c.push(f.toString(void 0,b)):c.push(d))}c=goog.string.trim(c.join(" "))||"???";a&&(c=goog.string.truncate(c,a));return c};\nBlockly.Block.prototype.appendValueInput=function(a){return this.appendInput_(Blockly.INPUT_VALUE,a)};Blockly.Block.prototype.appendStatementInput=function(a){return this.appendInput_(Blockly.NEXT_STATEMENT,a)};Blockly.Block.prototype.appendDummyInput=function(a){return this.appendInput_(Blockly.DUMMY_INPUT,a||"")};\nBlockly.Block.prototype.jsonInit=function(a){goog.asserts.assert(void 0==a.output||void 0==a.previousStatement,"Must not have both an output and a previousStatement.");void 0!==a.colour&&this.setColour(a.colour);for(var b=0;void 0!==a["message"+b];)this.interpolate_(a["message"+b],a["args"+b]||[],a["lastDummyAlign"+b]),b++;void 0!==a.inputsInline&&this.setInputsInline(a.inputsInline);void 0!==a.output&&this.setOutput(!0,a.output);void 0!==a.previousStatement&&this.setPreviousStatement(!0,a.previousStatement);\nvoid 0!==a.nextStatement&&this.setNextStatement(!0,a.nextStatement);void 0!==a.tooltip&&this.setTooltip(a.tooltip);void 0!==a.helpUrl&&this.setHelpUrl(a.helpUrl)};\nBlockly.Block.prototype.interpolate_=function(a,b,c){var d=Blockly.utils.tokenizeInterpolation(a),e=[],f=0;a=[];for(var g=0;g<d.length;g++){var h=d[g];"number"==typeof h?(goog.asserts.assert(0<h&&h<=b.length,\'Message index "%s" out of range.\',h),goog.asserts.assert(!e[h],\'Message index "%s" duplicated.\',h),e[h]=!0,f++,a.push(b[h-1])):(h=h.trim())&&a.push(h)}goog.asserts.assert(f==b.length,"Message does not reference all %s arg(s).",b.length);a.length&&("string"==typeof a[a.length-1]||goog.string.startsWith(a[a.length-\n1].type,"field_"))&&(g={type:"input_dummy"},c&&(g.align=c),a.push(g));c={LEFT:Blockly.ALIGN_LEFT,RIGHT:Blockly.ALIGN_RIGHT,CENTRE:Blockly.ALIGN_CENTRE};b=[];for(g=0;g<a.length;g++)if(e=a[g],"string"==typeof e)b.push([e,void 0]);else{d=f=null;do if(h=!1,"string"==typeof e)f=new Blockly.FieldLabel(e);else switch(e.type){case "input_value":d=this.appendValueInput(e.name);break;case "input_statement":d=this.appendStatementInput(e.name);break;case "input_dummy":d=this.appendDummyInput(e.name);break;case "field_label":f=\nnew Blockly.FieldLabel(e.text,e["class"]);break;case "field_input":f=new Blockly.FieldTextInput(e.text);"boolean"==typeof e.spellcheck&&f.setSpellcheck(e.spellcheck);break;case "field_angle":f=new Blockly.FieldAngle(e.angle);break;case "field_checkbox":f=new Blockly.FieldCheckbox(e.checked?"TRUE":"FALSE");break;case "field_colour":f=new Blockly.FieldColour(e.colour);break;case "field_variable":f=new Blockly.FieldVariable(e.variable);break;case "field_dropdown":f=new Blockly.FieldDropdown(e.options);\nbreak;case "field_image":f=new Blockly.FieldImage(e.src,e.width,e.height,e.alt);break;case "field_number":f=new Blockly.FieldNumber(e.value,e.min,e.max,e.precision);break;case "field_date":if(Blockly.FieldDate){f=new Blockly.FieldDate(e.date);break}default:e.alt&&(e=e.alt,h=!0)}while(h);if(f)b.push([f,e.name]);else if(d){e.check&&d.setCheck(e.check);e.align&&d.setAlign(c[e.align]);for(e=0;e<b.length;e++)d.appendField(b[e][0],b[e][1]);b.length=0}}};\nBlockly.Block.prototype.appendInput_=function(a,b){var c=null;if(a==Blockly.INPUT_VALUE||a==Blockly.NEXT_STATEMENT)c=this.makeConnection_(a);c=new Blockly.Input(a,b,this,c);this.inputList.push(c);return c};\nBlockly.Block.prototype.moveInputBefore=function(a,b){if(a!=b){for(var c=-1,d=b?-1:this.inputList.length,e=0,f;f=this.inputList[e];e++)if(f.name==a){if(c=e,-1!=d)break}else if(b&&f.name==b&&(d=e,-1!=c))break;goog.asserts.assert(-1!=c,\'Named input "%s" not found.\',a);goog.asserts.assert(-1!=d,\'Reference input "%s" not found.\',b);this.moveNumberedInputBefore(c,d)}};\nBlockly.Block.prototype.moveNumberedInputBefore=function(a,b){goog.asserts.assert(a!=b,"Can\'t move input to itself.");goog.asserts.assert(a<this.inputList.length,"Input index "+a+" out of bounds.");goog.asserts.assert(b<=this.inputList.length,"Reference input "+b+" out of bounds.");var c=this.inputList[a];this.inputList.splice(a,1);a<b&&b--;this.inputList.splice(b,0,c)};\nBlockly.Block.prototype.removeInput=function(a,b){for(var c=0,d;d=this.inputList[c];c++)if(d.name==a){if(d.connection&&d.connection.isConnected()){d.connection.setShadowDom(null);var e=d.connection.targetBlock();e.isShadow()?e.dispose():e.unplug()}d.dispose();this.inputList.splice(c,1);return}b||goog.asserts.fail(\'Input "%s" not found.\',a)};Blockly.Block.prototype.getInput=function(a){for(var b=0,c;c=this.inputList[b];b++)if(c.name==a)return c;return null};\nBlockly.Block.prototype.getInputTargetBlock=function(a){return(a=this.getInput(a))&&a.connection&&a.connection.targetBlock()};Blockly.Block.prototype.getCommentText=function(){return this.comment||""};Blockly.Block.prototype.setCommentText=function(a){this.comment!=a&&(Blockly.Events.fire(new Blockly.Events.Change(this,"comment",null,this.comment,a||"")),this.comment=a)};Blockly.Block.prototype.setWarningText=function(a){};Blockly.Block.prototype.setMutator=function(a){};\nBlockly.Block.prototype.getRelativeToSurfaceXY=function(){return this.xy_};Blockly.Block.prototype.moveBy=function(a,b){goog.asserts.assert(!this.parentBlock_,"Block has parent.");var c=new Blockly.Events.Move(this);this.xy_.translate(a,b);c.recordNew();Blockly.Events.fire(c)};Blockly.Block.prototype.makeConnection_=function(a){return new Blockly.Connection(this,a)};Blockly.ContextMenu={};Blockly.ContextMenu.currentBlock=null;\nBlockly.ContextMenu.show=function(a,b,c){Blockly.WidgetDiv.show(Blockly.ContextMenu,c,null);if(b.length){var d=new goog.ui.Menu;d.setRightToLeft(c);for(var e=0,f;f=b[e];e++){var g=new goog.ui.MenuItem(f.text);g.setRightToLeft(c);d.addChild(g,!0);g.setEnabled(f.enabled);f.enabled&&goog.events.listen(g,goog.ui.Component.EventType.ACTION,f.callback)}goog.events.listen(d,goog.ui.Component.EventType.ACTION,Blockly.ContextMenu.hide);b=goog.dom.getViewportSize();e=goog.style.getViewportPageOffset(document);\nd.render(Blockly.WidgetDiv.DIV);var h=d.getElement();Blockly.addClass_(h,"blocklyContextMenu");Blockly.bindEventWithChecks_(h,"contextmenu",null,Blockly.noEvent);f=goog.style.getSize(h);var g=a.clientX+e.x,k=a.clientY+e.y;a.clientY+f.height>=b.height&&(k-=f.height);c?f.width>=a.clientX&&(g+=f.width):a.clientX+f.width>=b.width&&(g-=f.width);Blockly.WidgetDiv.position(g,k,b,e,c);d.setAllowAutoFocus(!0);setTimeout(function(){h.focus()},1);Blockly.ContextMenu.currentBlock=null}else Blockly.ContextMenu.hide()};\nBlockly.ContextMenu.hide=function(){Blockly.WidgetDiv.hideIfOwner(Blockly.ContextMenu);Blockly.ContextMenu.currentBlock=null};\nBlockly.ContextMenu.callbackFactory=function(a,b){return function(){Blockly.Events.disable();try{var c=Blockly.Xml.domToBlock(b,a.workspace),d=a.getRelativeToSurfaceXY();d.x=a.RTL?d.x-Blockly.SNAP_RADIUS:d.x+Blockly.SNAP_RADIUS;d.y+=2*Blockly.SNAP_RADIUS;c.moveBy(d.x,d.y)}finally{Blockly.Events.enable()}Blockly.Events.isEnabled()&&!c.isShadow()&&Blockly.Events.fire(new Blockly.Events.Create(c));c.select()}};Blockly.RenderedConnection=function(a,b){Blockly.RenderedConnection.superClass_.constructor.call(this,a,b);this.offsetInBlock_=new goog.math.Coordinate(0,0)};goog.inherits(Blockly.RenderedConnection,Blockly.Connection);Blockly.RenderedConnection.prototype.distanceFrom=function(a){var b=this.x_-a.x_;a=this.y_-a.y_;return Math.sqrt(b*b+a*a)};\nBlockly.RenderedConnection.prototype.bumpAwayFrom_=function(a){if(Blockly.dragMode_==Blockly.DRAG_NONE){var b=this.sourceBlock_.getRootBlock();if(!b.isInFlyout){var c=!1;if(!b.isMovable()){b=a.getSourceBlock().getRootBlock();if(!b.isMovable())return;a=this;c=!0}var d=Blockly.selected==b;d||b.addSelect();var e=a.x_+Blockly.SNAP_RADIUS-this.x_;a=a.y_+Blockly.SNAP_RADIUS-this.y_;c&&(a=-a);b.RTL&&(e=-e);b.moveBy(e,a);d||b.removeSelect()}}};\nBlockly.RenderedConnection.prototype.moveTo=function(a,b){this.inDB_&&this.db_.removeConnection_(this);this.x_=a;this.y_=b;this.hidden_||this.db_.addConnection(this)};Blockly.RenderedConnection.prototype.moveBy=function(a,b){this.moveTo(this.x_+a,this.y_+b)};Blockly.RenderedConnection.prototype.moveToOffset=function(a){this.moveTo(a.x+this.offsetInBlock_.x,a.y+this.offsetInBlock_.y)};\nBlockly.RenderedConnection.prototype.setOffsetInBlock=function(a,b){this.offsetInBlock_.x=a;this.offsetInBlock_.y=b};Blockly.RenderedConnection.prototype.tighten_=function(){var a=this.targetConnection.x_-this.x_,b=this.targetConnection.y_-this.y_;if(0!=a||0!=b){var c=this.targetBlock(),d=c.getSvgRoot();if(!d)throw"block is not rendered.";d=Blockly.getRelativeXY_(d);c.getSvgRoot().setAttribute("transform","translate("+(d.x-a)+","+(d.y-b)+")");c.moveConnections_(-a,-b)}};\nBlockly.RenderedConnection.prototype.closest=function(a,b,c){return this.dbOpposite_.searchForClosest(this,a,b,c)};\nBlockly.RenderedConnection.prototype.highlight=function(){var a;a=this.type==Blockly.INPUT_VALUE||this.type==Blockly.OUTPUT_VALUE?"m 0,0 "+Blockly.BlockSvg.TAB_PATH_DOWN+" v 5":"m -20,0 h 5 "+Blockly.BlockSvg.NOTCH_PATH_LEFT+" h 5";var b=this.sourceBlock_.getRelativeToSurfaceXY();Blockly.Connection.highlightedPath_=Blockly.createSvgElement("path",{"class":"blocklyHighlightedConnectionPath",d:a,transform:"translate("+(this.x_-b.x)+","+(this.y_-b.y)+")"+(this.sourceBlock_.RTL?" scale(-1 1)":"")},this.sourceBlock_.getSvgRoot())};\nBlockly.RenderedConnection.prototype.unhideAll=function(){this.setHidden(!1);var a=[];if(this.type!=Blockly.INPUT_VALUE&&this.type!=Blockly.NEXT_STATEMENT)return a;var b=this.targetBlock();if(b){var c;b.isCollapsed()?(c=[],b.outputConnection&&c.push(b.outputConnection),b.nextConnection&&c.push(b.nextConnection),b.previousConnection&&c.push(b.previousConnection)):c=b.getConnections_(!0);for(var d=0;d<c.length;d++)a.push.apply(a,c[d].unhideAll());a.length||(a[0]=b)}return a};\nBlockly.RenderedConnection.prototype.unhighlight=function(){goog.dom.removeNode(Blockly.Connection.highlightedPath_);delete Blockly.Connection.highlightedPath_};Blockly.RenderedConnection.prototype.setHidden=function(a){(this.hidden_=a)&&this.inDB_?this.db_.removeConnection_(this):a||this.inDB_||this.db_.addConnection(this)};\nBlockly.RenderedConnection.prototype.hideAll=function(){this.setHidden(!0);if(this.targetConnection)for(var a=this.targetBlock().getDescendants(),b=0;b<a.length;b++){for(var c=a[b],d=c.getConnections_(!0),e=0;e<d.length;e++)d[e].setHidden(!0);c=c.getIcons();for(e=0;e<c.length;e++)c[e].setVisible(!1)}};Blockly.RenderedConnection.prototype.isConnectionAllowed=function(a,b){return this.distanceFrom(a)>b?!1:Blockly.RenderedConnection.superClass_.isConnectionAllowed.call(this,a)};\nBlockly.RenderedConnection.prototype.disconnectInternal_=function(a,b){Blockly.RenderedConnection.superClass_.disconnectInternal_.call(this,a,b);a.rendered&&a.render();b.rendered&&(b.updateDisabled(),b.render())};\nBlockly.RenderedConnection.prototype.respawnShadow_=function(){var a=this.getSourceBlock(),b=this.getShadowDom();if(a.workspace&&b&&Blockly.Events.recordUndo){Blockly.RenderedConnection.superClass_.respawnShadow_.call(this);b=this.targetBlock();if(!b)throw"Couldn\'t respawn the shadow block that should exist here.";b.initSvg();b.render(!1);a.rendered&&a.render()}};Blockly.RenderedConnection.prototype.neighbours_=function(a){return this.dbOpposite_.getNeighbours(this,a)};\nBlockly.RenderedConnection.prototype.connect_=function(a){Blockly.RenderedConnection.superClass_.connect_.call(this,a);var b=this.getSourceBlock();a=a.getSourceBlock();b.rendered&&b.updateDisabled();a.rendered&&a.updateDisabled();b.rendered&&a.rendered&&(this.type==Blockly.NEXT_STATEMENT||this.type==Blockly.PREVIOUS_STATEMENT?a.render():b.render())};Blockly.BlockSvg=function(a,b,c){this.svgGroup_=Blockly.createSvgElement("g",{},null);this.svgPathDark_=Blockly.createSvgElement("path",{"class":"blocklyPathDark",transform:"translate(1,1)"},this.svgGroup_);this.svgPath_=Blockly.createSvgElement("path",{"class":"blocklyPath"},this.svgGroup_);this.svgPathLight_=Blockly.createSvgElement("path",{"class":"blocklyPathLight"},this.svgGroup_);this.svgPath_.tooltip=this;this.rendered=!1;Blockly.Tooltip.bindMouseEvents(this.svgPath_);Blockly.BlockSvg.superClass_.constructor.call(this,\na,b,c)};goog.inherits(Blockly.BlockSvg,Blockly.Block);Blockly.BlockSvg.prototype.height=0;Blockly.BlockSvg.prototype.width=0;Blockly.BlockSvg.prototype.dragStartXY_=null;Blockly.BlockSvg.INLINE=-1;\nBlockly.BlockSvg.prototype.initSvg=function(){goog.asserts.assert(this.workspace.rendered,"Workspace is headless.");for(var a=0,b;b=this.inputList[a];a++)b.init();b=this.getIcons();for(a=0;a<b.length;a++)b[a].createIcon();this.updateColour();this.updateMovable();if(!this.workspace.options.readOnly&&!this.eventsInit_){Blockly.bindEventWithChecks_(this.getSvgRoot(),"mousedown",this,this.onMouseDown_);var c=this;Blockly.bindEventWithChecks_(this.getSvgRoot(),"touchstart",null,function(a){Blockly.longStart_(a,\nc)})}this.eventsInit_=!0;this.getSvgRoot().parentNode||this.workspace.getCanvas().appendChild(this.getSvgRoot())};\nBlockly.BlockSvg.prototype.select=function(){if(this.isShadow()&&this.getParent())this.getParent().select();else if(Blockly.selected!=this){var a=null;if(Blockly.selected){a=Blockly.selected.id;Blockly.Events.disable();try{Blockly.selected.unselect()}finally{Blockly.Events.enable()}}a=new Blockly.Events.Ui(null,"selected",a,this.id);a.workspaceId=this.workspace.id;Blockly.Events.fire(a);Blockly.selected=this;this.addSelect()}};\nBlockly.BlockSvg.prototype.unselect=function(){if(Blockly.selected==this){var a=new Blockly.Events.Ui(null,"selected",this.id,null);a.workspaceId=this.workspace.id;Blockly.Events.fire(a);Blockly.selected=null;this.removeSelect()}};Blockly.BlockSvg.prototype.mutator=null;Blockly.BlockSvg.prototype.comment=null;Blockly.BlockSvg.prototype.warning=null;\nBlockly.BlockSvg.prototype.getIcons=function(){var a=[];this.mutator&&a.push(this.mutator);this.comment&&a.push(this.comment);this.warning&&a.push(this.warning);return a};Blockly.BlockSvg.onMouseUpWrapper_=null;Blockly.BlockSvg.onMouseMoveWrapper_=null;\nBlockly.BlockSvg.terminateDrag=function(){Blockly.BlockSvg.disconnectUiStop_();Blockly.BlockSvg.onMouseUpWrapper_&&(Blockly.unbindEvent_(Blockly.BlockSvg.onMouseUpWrapper_),Blockly.BlockSvg.onMouseUpWrapper_=null);Blockly.BlockSvg.onMouseMoveWrapper_&&(Blockly.unbindEvent_(Blockly.BlockSvg.onMouseMoveWrapper_),Blockly.BlockSvg.onMouseMoveWrapper_=null);var a=Blockly.selected;if(Blockly.dragMode_==Blockly.DRAG_FREE&&a){var b=a.getRelativeToSurfaceXY(),b=goog.math.Coordinate.difference(b,a.dragStartXY_),\nc=new Blockly.Events.Move(a);c.oldCoordinate=a.dragStartXY_;c.recordNew();Blockly.Events.fire(c);a.moveConnections_(b.x,b.y);delete a.draggedBubbles_;a.setDragging_(!1);a.render();var d=Blockly.Events.getGroup();setTimeout(function(){Blockly.Events.setGroup(d);a.snapToGrid();Blockly.Events.setGroup(!1)},Blockly.BUMP_DELAY/2);setTimeout(function(){Blockly.Events.setGroup(d);a.bumpNeighbours_();Blockly.Events.setGroup(!1)},Blockly.BUMP_DELAY);a.workspace.resizeContents()}Blockly.dragMode_=Blockly.DRAG_NONE;\nBlockly.Css.setCursor(Blockly.Css.Cursor.OPEN)};\nBlockly.BlockSvg.prototype.setParent=function(a){if(a!=this.parentBlock_){var b=this.getSvgRoot();if(this.parentBlock_&&b){var c=this.getRelativeToSurfaceXY();this.workspace.getCanvas().appendChild(b);b.setAttribute("transform","translate("+c.x+","+c.y+")")}Blockly.Field.startCache();Blockly.BlockSvg.superClass_.setParent.call(this,a);Blockly.Field.stopCache();a&&(c=this.getRelativeToSurfaceXY(),a.getSvgRoot().appendChild(b),a=this.getRelativeToSurfaceXY(),this.moveConnections_(a.x-c.x,a.y-c.y))}};\nBlockly.BlockSvg.prototype.getRelativeToSurfaceXY=function(){var a=0,b=0,c=this.getSvgRoot();if(c){do var d=Blockly.getRelativeXY_(c),a=a+d.x,b=b+d.y,c=c.parentNode;while(c&&c!=this.workspace.getCanvas())}return new goog.math.Coordinate(a,b)};\nBlockly.BlockSvg.prototype.moveBy=function(a,b){goog.asserts.assert(!this.parentBlock_,"Block has parent.");var c=new Blockly.Events.Move(this),d=this.getRelativeToSurfaceXY();this.getSvgRoot().setAttribute("transform","translate("+(d.x+a)+","+(d.y+b)+")");this.moveConnections_(a,b);c.recordNew();this.workspace.resizeContents();Blockly.Events.fire(c)};\nBlockly.BlockSvg.prototype.snapToGrid=function(){if(this.workspace&&Blockly.dragMode_==Blockly.DRAG_NONE&&!this.getParent()&&!this.isInFlyout&&this.workspace.options.gridOptions&&this.workspace.options.gridOptions.snap){var a=this.workspace.options.gridOptions.spacing,b=a/2,c=this.getRelativeToSurfaceXY(),d=Math.round((c.x-b)/a)*a+b-c.x,a=Math.round((c.y-b)/a)*a+b-c.y,d=Math.round(d),a=Math.round(a);0==d&&0==a||this.moveBy(d,a)}};\nBlockly.BlockSvg.prototype.getHeightWidth=function(){var a=this.height,b=this.width,c=this.getNextBlock();c?(c=c.getHeightWidth(),a+=c.height-4,b=Math.max(b,c.width)):this.nextConnection||this.outputConnection||(a+=2);return{height:a,width:b}};\nBlockly.BlockSvg.prototype.getBoundingRectangle=function(){var a=this.getRelativeToSurfaceXY(this),b=this.outputConnection?Blockly.BlockSvg.TAB_WIDTH:0,c=this.getHeightWidth(),d;this.RTL?(d=new goog.math.Coordinate(a.x-(c.width-b),a.y),a=new goog.math.Coordinate(a.x+b,a.y+c.height)):(d=new goog.math.Coordinate(a.x-b,a.y),a=new goog.math.Coordinate(a.x+c.width-b,a.y+c.height));return{topLeft:d,bottomRight:a}};\nBlockly.BlockSvg.prototype.setCollapsed=function(a){if(this.collapsed_!=a){for(var b=[],c=0,d;d=this.inputList[c];c++)b.push.apply(b,d.setVisible(!a));if(a){d=this.getIcons();for(c=0;c<d.length;c++)d[c].setVisible(!1);c=this.toString(Blockly.COLLAPSE_CHARS);this.appendDummyInput("_TEMP_COLLAPSED_INPUT").appendField(c).init()}else this.removeInput("_TEMP_COLLAPSED_INPUT"),this.setWarningText(null);Blockly.BlockSvg.superClass_.setCollapsed.call(this,a);b.length||(b[0]=this);if(this.rendered)for(c=0;a=\nb[c];c++)a.render()}};Blockly.BlockSvg.prototype.tab=function(a,b){for(var c=[],d=0,e;e=this.inputList[d];d++){for(var f=0,g;g=e.fieldRow[f];f++)g instanceof Blockly.FieldTextInput&&c.push(g);e.connection&&(e=e.connection.targetBlock())&&c.push(e)}d=c.indexOf(a);-1==d&&(d=b?-1:c.length);(c=c[b?d+1:d-1])?c instanceof Blockly.Field?c.showEditor_():c.tab(null,b):(c=this.getParent())&&c.tab(this,b)};\nBlockly.BlockSvg.prototype.onMouseDown_=function(a){if(!this.workspace.options.readOnly)if(this.isInFlyout)"touchstart"==a.type&&Blockly.isRightButton(a)&&(Blockly.Flyout.blockRightClick_(a,this),a.stopPropagation(),a.preventDefault());else{this.isInMutator&&this.workspace.resize();this.workspace.updateScreenCalculationsIfScrolled();this.workspace.markFocused();Blockly.terminateDrag_();this.select();Blockly.hideChaff();if(Blockly.isRightButton(a))this.showContextMenu_(a),Blockly.Touch.clearTouchIdentifier();\nelse if(this.isMovable()){Blockly.Events.getGroup()||Blockly.Events.setGroup(!0);Blockly.Css.setCursor(Blockly.Css.Cursor.CLOSED);this.dragStartXY_=this.getRelativeToSurfaceXY();this.workspace.startDrag(a,this.dragStartXY_);Blockly.dragMode_=Blockly.DRAG_STICKY;Blockly.BlockSvg.onMouseUpWrapper_=Blockly.bindEventWithChecks_(document,"mouseup",this,this.onMouseUp_);Blockly.BlockSvg.onMouseMoveWrapper_=Blockly.bindEventWithChecks_(document,"mousemove",this,this.onMouseMove_);this.draggedBubbles_=[];\nfor(var b=this.getDescendants(),c=0,d;d=b[c];c++){d=d.getIcons();for(var e=0;e<d.length;e++){var f=d[e].getIconLocation();f.bubble=d[e];this.draggedBubbles_.push(f)}}}else return;a.stopPropagation();a.preventDefault()}};\nBlockly.BlockSvg.prototype.onMouseUp_=function(a){Blockly.Touch.clearTouchIdentifier();Blockly.dragMode_==Blockly.DRAG_FREE||Blockly.WidgetDiv.isVisible()||Blockly.Events.fire(new Blockly.Events.Ui(this,"click",void 0,void 0));Blockly.terminateDrag_();Blockly.selected&&Blockly.highlightedConnection_?(Blockly.localConnection_.connect(Blockly.highlightedConnection_),this.rendered&&(Blockly.localConnection_.isSuperior()?Blockly.highlightedConnection_:Blockly.localConnection_).getSourceBlock().connectionUiEffect(),\nthis.workspace.trashcan&&this.workspace.trashcan.close()):!this.getParent()&&Blockly.selected.isDeletable()&&this.workspace.isDeleteArea(a)&&((a=this.workspace.trashcan)&&goog.Timer.callOnce(a.close,100,a),Blockly.selected.dispose(!1,!0));Blockly.highlightedConnection_&&(Blockly.highlightedConnection_.unhighlight(),Blockly.highlightedConnection_=null);Blockly.Css.setCursor(Blockly.Css.Cursor.OPEN);Blockly.WidgetDiv.isVisible()||Blockly.Events.setGroup(!1)};\nBlockly.BlockSvg.prototype.showHelp_=function(){var a=goog.isFunction(this.helpUrl)?this.helpUrl():this.helpUrl;a&&window.open(a)};\nBlockly.BlockSvg.prototype.showContextMenu_=function(a){if(!this.workspace.options.readOnly&&this.contextMenu){var b=this,c=[];if(this.isDeletable()&&this.isMovable()&&!b.isInFlyout){var d={text:Blockly.Msg.DUPLICATE_BLOCK,enabled:!0,callback:function(){Blockly.duplicate_(b)}};this.getDescendants().length>this.workspace.remainingCapacity()&&(d.enabled=!1);c.push(d);this.isEditable()&&!this.collapsed_&&this.workspace.options.comments&&(d={enabled:!goog.userAgent.IE},this.comment?(d.text=Blockly.Msg.REMOVE_COMMENT,\nd.callback=function(){b.setCommentText(null)}):(d.text=Blockly.Msg.ADD_COMMENT,d.callback=function(){b.setCommentText("")}),c.push(d));if(!this.collapsed_)for(d=1;d<this.inputList.length;d++)if(this.inputList[d-1].type!=Blockly.NEXT_STATEMENT&&this.inputList[d].type!=Blockly.NEXT_STATEMENT){var d={enabled:!0},e=this.getInputsInline();d.text=e?Blockly.Msg.EXTERNAL_INPUTS:Blockly.Msg.INLINE_INPUTS;d.callback=function(){b.setInputsInline(!e)};c.push(d);break}this.workspace.options.collapse&&(this.collapsed_?\n(d={enabled:!0},d.text=Blockly.Msg.EXPAND_BLOCK,d.callback=function(){b.setCollapsed(!1)}):(d={enabled:!0},d.text=Blockly.Msg.COLLAPSE_BLOCK,d.callback=function(){b.setCollapsed(!0)}),c.push(d));this.workspace.options.disable&&(d={text:this.disabled?Blockly.Msg.ENABLE_BLOCK:Blockly.Msg.DISABLE_BLOCK,enabled:!this.getInheritedDisabled(),callback:function(){b.setDisabled(!b.disabled)}},c.push(d));var d=this.getDescendants().length,f=this.getNextBlock();f&&(d-=f.getDescendants().length);d={text:1==d?\nBlockly.Msg.DELETE_BLOCK:Blockly.Msg.DELETE_X_BLOCKS.replace("%1",String(d)),enabled:!0,callback:function(){Blockly.Events.setGroup(!0);b.dispose(!0,!0);Blockly.Events.setGroup(!1)}};c.push(d)}d={enabled:!(goog.isFunction(this.helpUrl)?!this.helpUrl():!this.helpUrl)};d.text=Blockly.Msg.HELP;d.callback=function(){b.showHelp_()};c.push(d);this.customContextMenu&&!b.isInFlyout&&this.customContextMenu(c);Blockly.ContextMenu.show(a,c,this.RTL);Blockly.ContextMenu.currentBlock=this}};\nBlockly.BlockSvg.prototype.moveConnections_=function(a,b){if(this.rendered){for(var c=this.getConnections_(!1),d=0;d<c.length;d++)c[d].moveBy(a,b);c=this.getIcons();for(d=0;d<c.length;d++)c[d].computeIconLocation();for(d=0;d<this.childBlocks_.length;d++)this.childBlocks_[d].moveConnections_(a,b)}};\nBlockly.BlockSvg.prototype.setDragging_=function(a){if(a){var b=this.getSvgRoot();b.translate_="";b.skew_="";this.addDragging();Blockly.draggingConnections_=Blockly.draggingConnections_.concat(this.getConnections_(!0))}else this.removeDragging(),Blockly.draggingConnections_=[];for(b=0;b<this.childBlocks_.length;b++)this.childBlocks_[b].setDragging_(a)};\nBlockly.BlockSvg.prototype.onMouseMove_=function(a){if("mousemove"==a.type&&1>=a.clientX&&0==a.clientY&&0==a.button)a.stopPropagation();else{var b=this.getRelativeToSurfaceXY(),c=this.workspace.moveDrag(a);if(Blockly.dragMode_==Blockly.DRAG_STICKY&&goog.math.Coordinate.distance(b,c)*this.workspace.scale>Blockly.DRAG_RADIUS){Blockly.dragMode_=Blockly.DRAG_FREE;Blockly.longStop_();if(this.parentBlock_){this.unplug();var d=this.getSvgRoot();d.translate_="translate("+c.x+","+c.y+")";this.disconnectUiEffect()}this.setDragging_(!0)}if(Blockly.dragMode_==\nBlockly.DRAG_FREE){b=goog.math.Coordinate.difference(b,this.dragStartXY_);d=this.getSvgRoot();d.translate_="translate("+c.x+","+c.y+")";d.setAttribute("transform",d.translate_+d.skew_);for(c=0;c<this.draggedBubbles_.length;c++)d=this.draggedBubbles_[c],d.bubble.setIconLocation(goog.math.Coordinate.sum(d,b));d=this.getConnections_(!1);(c=this.lastConnectionInStack_())&&c!=this.nextConnection&&d.push(c);for(var e=null,f=null,g=Blockly.SNAP_RADIUS,c=0;c<d.length;c++){var h=d[c],k=h.closest(g,b);k.connection&&\n(e=k.connection,f=h,g=k.radius)}Blockly.highlightedConnection_&&Blockly.highlightedConnection_!=e&&(Blockly.highlightedConnection_.unhighlight(),Blockly.highlightedConnection_=null,Blockly.localConnection_=null);e&&e!=Blockly.highlightedConnection_&&(e.highlight(),Blockly.highlightedConnection_=e,Blockly.localConnection_=f);this.isDeletable()&&this.workspace.isDeleteArea(a)}a.stopPropagation();a.preventDefault()}};\nBlockly.BlockSvg.prototype.updateMovable=function(){this.isMovable()?Blockly.addClass_(this.svgGroup_,"blocklyDraggable"):Blockly.removeClass_(this.svgGroup_,"blocklyDraggable")};Blockly.BlockSvg.prototype.setMovable=function(a){Blockly.BlockSvg.superClass_.setMovable.call(this,a);this.updateMovable()};Blockly.BlockSvg.prototype.setEditable=function(a){Blockly.BlockSvg.superClass_.setEditable.call(this,a);a=this.getIcons();for(var b=0;b<a.length;b++)a[b].updateEditable()};\nBlockly.BlockSvg.prototype.setShadow=function(a){Blockly.BlockSvg.superClass_.setShadow.call(this,a);this.updateColour()};Blockly.BlockSvg.prototype.getSvgRoot=function(){return this.svgGroup_};\nBlockly.BlockSvg.prototype.dispose=function(a,b){if(this.workspace){Blockly.Tooltip.hide();Blockly.Field.startCache();var c=this.workspace;Blockly.selected==this&&(this.unselect(),Blockly.terminateDrag_());Blockly.ContextMenu.currentBlock==this&&Blockly.ContextMenu.hide();b&&this.rendered&&(this.unplug(a),this.disposeUiEffect());this.rendered=!1;Blockly.Events.disable();try{for(var d=this.getIcons(),e=0;e<d.length;e++)d[e].dispose()}finally{Blockly.Events.enable()}Blockly.BlockSvg.superClass_.dispose.call(this,\na);goog.dom.removeNode(this.svgGroup_);c.resizeContents();this.svgPathDark_=this.svgPathLight_=this.svgPath_=this.svgGroup_=null;Blockly.Field.stopCache()}};\nBlockly.BlockSvg.prototype.disposeUiEffect=function(){this.workspace.playAudio("delete");var a=Blockly.getSvgXY_(this.svgGroup_,this.workspace),b=this.svgGroup_.cloneNode(!0);b.translateX_=a.x;b.translateY_=a.y;b.setAttribute("transform","translate("+b.translateX_+","+b.translateY_+")");this.workspace.getParentSvg().appendChild(b);b.bBox_=b.getBBox();Blockly.BlockSvg.disposeUiStep_(b,this.RTL,new Date,this.workspace.scale)};\nBlockly.BlockSvg.disposeUiStep_=function(a,b,c,d){var e=(new Date-c)/150;1<e?goog.dom.removeNode(a):(a.setAttribute("transform","translate("+(a.translateX_+(b?-1:1)*a.bBox_.width*d/2*e)+","+(a.translateY_+a.bBox_.height*d*e)+") scale("+(1-e)*d+")"),setTimeout(function(){Blockly.BlockSvg.disposeUiStep_(a,b,c,d)},10))};\nBlockly.BlockSvg.prototype.connectionUiEffect=function(){this.workspace.playAudio("click");if(!(1>this.workspace.scale)){var a=Blockly.getSvgXY_(this.svgGroup_,this.workspace);this.outputConnection?(a.x+=(this.RTL?3:-3)*this.workspace.scale,a.y+=13*this.workspace.scale):this.previousConnection&&(a.x+=(this.RTL?-23:23)*this.workspace.scale,a.y+=3*this.workspace.scale);a=Blockly.createSvgElement("circle",{cx:a.x,cy:a.y,r:0,fill:"none",stroke:"#888","stroke-width":10},this.workspace.getParentSvg());\nBlockly.BlockSvg.connectionUiStep_(a,new Date,this.workspace.scale)}};Blockly.BlockSvg.connectionUiStep_=function(a,b,c){var d=(new Date-b)/150;1<d?goog.dom.removeNode(a):(a.setAttribute("r",25*d*c),a.style.opacity=1-d,Blockly.BlockSvg.disconnectUiStop_.pid_=setTimeout(function(){Blockly.BlockSvg.connectionUiStep_(a,b,c)},10))};\nBlockly.BlockSvg.prototype.disconnectUiEffect=function(){this.workspace.playAudio("disconnect");if(!(1>this.workspace.scale)){var a=this.getHeightWidth().height,a=Math.atan(10/a)/Math.PI*180;this.RTL||(a*=-1);Blockly.BlockSvg.disconnectUiStep_(this.svgGroup_,a,new Date)}};\nBlockly.BlockSvg.disconnectUiStep_=function(a,b,c){var d=(new Date-c)/200;1<d?a.skew_="":(a.skew_="skewX("+Math.round(Math.sin(d*Math.PI*3)*(1-d)*b)+")",Blockly.BlockSvg.disconnectUiStop_.group=a,Blockly.BlockSvg.disconnectUiStop_.pid=setTimeout(function(){Blockly.BlockSvg.disconnectUiStep_(a,b,c)},10));a.setAttribute("transform",a.translate_+a.skew_)};\nBlockly.BlockSvg.disconnectUiStop_=function(){if(Blockly.BlockSvg.disconnectUiStop_.group){clearTimeout(Blockly.BlockSvg.disconnectUiStop_.pid);var a=Blockly.BlockSvg.disconnectUiStop_.group;a.skew_="";a.setAttribute("transform",a.translate_);Blockly.BlockSvg.disconnectUiStop_.group=null}};Blockly.BlockSvg.disconnectUiStop_.pid=0;Blockly.BlockSvg.disconnectUiStop_.group=null;\nBlockly.BlockSvg.prototype.updateColour=function(){if(!this.disabled){var a=this.getColour(),b=goog.color.hexToRgb(a);if(this.isShadow())b=goog.color.lighten(b,.6),a=goog.color.rgbArrayToHex(b),this.svgPathLight_.style.display="none",this.svgPathDark_.setAttribute("fill",a);else{this.svgPathLight_.style.display="";var c=goog.color.rgbArrayToHex(goog.color.lighten(b,.3)),b=goog.color.rgbArrayToHex(goog.color.darken(b,.2));this.svgPathLight_.setAttribute("stroke",c);this.svgPathDark_.setAttribute("fill",\nb)}this.svgPath_.setAttribute("fill",a);a=this.getIcons();for(c=0;c<a.length;c++)a[c].updateColour();for(a=0;c=this.inputList[a];a++)for(var b=0,d;d=c.fieldRow[b];b++)d.setText(null)}};\nBlockly.BlockSvg.prototype.updateDisabled=function(){var a=Blockly.hasClass_(this.svgGroup_,"blocklyDisabled");this.disabled||this.getInheritedDisabled()?a||(Blockly.addClass_(this.svgGroup_,"blocklyDisabled"),this.svgPath_.setAttribute("fill","url(#"+this.workspace.options.disabledPatternId+")")):a&&(Blockly.removeClass_(this.svgGroup_,"blocklyDisabled"),this.updateColour());for(var a=this.getChildren(),b=0,c;c=a[b];b++)c.updateDisabled()};\nBlockly.BlockSvg.prototype.getCommentText=function(){return this.comment?this.comment.getText().replace(/\\s+$/,"").replace(/ +\\n/g,"\\n"):""};Blockly.BlockSvg.prototype.setCommentText=function(a){var b=!1;goog.isString(a)?(this.comment||(this.comment=new Blockly.Comment(this),b=!0),this.comment.setText(a)):this.comment&&(this.comment.dispose(),b=!0);b&&this.rendered&&(this.render(),this.bumpNeighbours_())};\nBlockly.BlockSvg.prototype.setWarningText=function(a,b){this.setWarningText.pid_||(this.setWarningText.pid_=Object.create(null));var c=b||"";if(c)this.setWarningText.pid_[c]&&(clearTimeout(this.setWarningText.pid_[c]),delete this.setWarningText.pid_[c]);else for(var d in this.setWarningText.pid_)clearTimeout(this.setWarningText.pid_[d]),delete this.setWarningText.pid_[d];if(Blockly.dragMode_==Blockly.DRAG_FREE){var e=this;this.setWarningText.pid_[c]=setTimeout(function(){e.workspace&&(delete e.setWarningText.pid_[c],\ne.setWarningText(a,c))},100)}else{this.isInFlyout&&(a=null);d=this.getSurroundParent();for(var f=null;d;)d.isCollapsed()&&(f=d),d=d.getSurroundParent();f&&f.setWarningText(a,"collapsed "+this.id+" "+c);d=!1;goog.isString(a)?(this.warning||(this.warning=new Blockly.Warning(this),d=!0),this.warning.setText(a,c)):this.warning&&!c?(this.warning.dispose(),d=!0):this.warning&&(d=this.warning.getText(),this.warning.setText("",c),(f=this.warning.getText())||this.warning.dispose(),d=d==f);d&&this.rendered&&\n(this.render(),this.bumpNeighbours_())}};Blockly.BlockSvg.prototype.setMutator=function(a){this.mutator&&this.mutator!==a&&this.mutator.dispose();a&&(a.block_=this,this.mutator=a,a.createIcon())};Blockly.BlockSvg.prototype.setDisabled=function(a){this.disabled!=a&&(Blockly.BlockSvg.superClass_.setDisabled.call(this,a),this.rendered&&this.updateDisabled())};\nBlockly.BlockSvg.prototype.addSelect=function(){Blockly.addClass_(this.svgGroup_,"blocklySelected");var a=this;do{var b=a.getSvgRoot();b.parentNode.appendChild(b);a=a.getParent()}while(a)};Blockly.BlockSvg.prototype.removeSelect=function(){Blockly.removeClass_(this.svgGroup_,"blocklySelected")};Blockly.BlockSvg.prototype.addDragging=function(){Blockly.addClass_(this.svgGroup_,"blocklyDragging")};Blockly.BlockSvg.prototype.removeDragging=function(){Blockly.removeClass_(this.svgGroup_,"blocklyDragging")};\nBlockly.BlockSvg.prototype.setColour=function(a){Blockly.BlockSvg.superClass_.setColour.call(this,a);this.rendered&&this.updateColour()};Blockly.BlockSvg.prototype.setPreviousStatement=function(a,b){Blockly.BlockSvg.superClass_.setPreviousStatement.call(this,a,b);this.rendered&&(this.render(),this.bumpNeighbours_())};Blockly.BlockSvg.prototype.setNextStatement=function(a,b){Blockly.BlockSvg.superClass_.setNextStatement.call(this,a,b);this.rendered&&(this.render(),this.bumpNeighbours_())};\nBlockly.BlockSvg.prototype.setOutput=function(a,b){Blockly.BlockSvg.superClass_.setOutput.call(this,a,b);this.rendered&&(this.render(),this.bumpNeighbours_())};Blockly.BlockSvg.prototype.setInputsInline=function(a){Blockly.BlockSvg.superClass_.setInputsInline.call(this,a);this.rendered&&(this.render(),this.bumpNeighbours_())};Blockly.BlockSvg.prototype.removeInput=function(a,b){Blockly.BlockSvg.superClass_.removeInput.call(this,a,b);this.rendered&&(this.render(),this.bumpNeighbours_())};\nBlockly.BlockSvg.prototype.moveNumberedInputBefore=function(a,b){Blockly.BlockSvg.superClass_.moveNumberedInputBefore.call(this,a,b);this.rendered&&(this.render(),this.bumpNeighbours_())};Blockly.BlockSvg.prototype.appendInput_=function(a,b){var c=Blockly.BlockSvg.superClass_.appendInput_.call(this,a,b);this.rendered&&(this.render(),this.bumpNeighbours_());return c};\nBlockly.BlockSvg.prototype.getConnections_=function(a){var b=[];if(a||this.rendered)if(this.outputConnection&&b.push(this.outputConnection),this.previousConnection&&b.push(this.previousConnection),this.nextConnection&&b.push(this.nextConnection),a||!this.collapsed_){a=0;for(var c;c=this.inputList[a];a++)c.connection&&b.push(c.connection)}return b};Blockly.BlockSvg.prototype.makeConnection_=function(a){return new Blockly.RenderedConnection(this,a)};Blockly.BlockSvg.render={};Blockly.BlockSvg.SEP_SPACE_X=10;Blockly.BlockSvg.SEP_SPACE_Y=10;Blockly.BlockSvg.INLINE_PADDING_Y=5;Blockly.BlockSvg.MIN_BLOCK_Y=25;Blockly.BlockSvg.TAB_HEIGHT=20;Blockly.BlockSvg.TAB_WIDTH=8;Blockly.BlockSvg.NOTCH_WIDTH=30;Blockly.BlockSvg.CORNER_RADIUS=8;Blockly.BlockSvg.START_HAT=!1;Blockly.BlockSvg.START_HAT_HEIGHT=15;Blockly.BlockSvg.START_HAT_PATH="c 30,-"+Blockly.BlockSvg.START_HAT_HEIGHT+" 70,-"+Blockly.BlockSvg.START_HAT_HEIGHT+" 100,0";\nBlockly.BlockSvg.START_HAT_HIGHLIGHT_LTR="c 17.8,-9.2 45.3,-14.9 75,-8.7 M 100.5,0.5";Blockly.BlockSvg.START_HAT_HIGHLIGHT_RTL="m 25,-8.7 c 29.7,-6.2 57.2,-0.5 75,8.7";Blockly.BlockSvg.DISTANCE_45_INSIDE=(1-Math.SQRT1_2)*(Blockly.BlockSvg.CORNER_RADIUS-.5)+.5;Blockly.BlockSvg.DISTANCE_45_OUTSIDE=(1-Math.SQRT1_2)*(Blockly.BlockSvg.CORNER_RADIUS+.5)-.5;Blockly.BlockSvg.NOTCH_PATH_LEFT="l 6,4 3,0 6,-4";Blockly.BlockSvg.NOTCH_PATH_LEFT_HIGHLIGHT="l 6,4 3,0 6,-4";Blockly.BlockSvg.NOTCH_PATH_RIGHT="l -6,4 -3,0 -6,-4";\nBlockly.BlockSvg.JAGGED_TEETH="l 8,0 0,4 8,4 -16,8 8,4";Blockly.BlockSvg.JAGGED_TEETH_HEIGHT=20;Blockly.BlockSvg.JAGGED_TEETH_WIDTH=15;Blockly.BlockSvg.TAB_PATH_DOWN="v 5 c 0,10 -"+Blockly.BlockSvg.TAB_WIDTH+",-8 -"+Blockly.BlockSvg.TAB_WIDTH+",7.5 s "+Blockly.BlockSvg.TAB_WIDTH+",-2.5 "+Blockly.BlockSvg.TAB_WIDTH+",7.5";\nBlockly.BlockSvg.TAB_PATH_DOWN_HIGHLIGHT_RTL="v 6.5 m -"+.97*Blockly.BlockSvg.TAB_WIDTH+",3 q -"+.05*Blockly.BlockSvg.TAB_WIDTH+",10 "+.3*Blockly.BlockSvg.TAB_WIDTH+",9.5 m "+.67*Blockly.BlockSvg.TAB_WIDTH+",-1.9 v 1.4";Blockly.BlockSvg.TOP_LEFT_CORNER_START="m 0,"+Blockly.BlockSvg.CORNER_RADIUS;Blockly.BlockSvg.TOP_LEFT_CORNER_START_HIGHLIGHT_RTL="m "+Blockly.BlockSvg.DISTANCE_45_INSIDE+","+Blockly.BlockSvg.DISTANCE_45_INSIDE;\nBlockly.BlockSvg.TOP_LEFT_CORNER_START_HIGHLIGHT_LTR="m 0.5,"+(Blockly.BlockSvg.CORNER_RADIUS-.5);Blockly.BlockSvg.TOP_LEFT_CORNER="A "+Blockly.BlockSvg.CORNER_RADIUS+","+Blockly.BlockSvg.CORNER_RADIUS+" 0 0,1 "+Blockly.BlockSvg.CORNER_RADIUS+",0";Blockly.BlockSvg.TOP_LEFT_CORNER_HIGHLIGHT="A "+(Blockly.BlockSvg.CORNER_RADIUS-.5)+","+(Blockly.BlockSvg.CORNER_RADIUS-.5)+" 0 0,1 "+Blockly.BlockSvg.CORNER_RADIUS+",0.5";\nBlockly.BlockSvg.INNER_TOP_LEFT_CORNER=Blockly.BlockSvg.NOTCH_PATH_RIGHT+" h -"+(Blockly.BlockSvg.NOTCH_WIDTH-15-Blockly.BlockSvg.CORNER_RADIUS)+" a "+Blockly.BlockSvg.CORNER_RADIUS+","+Blockly.BlockSvg.CORNER_RADIUS+" 0 0,0 -"+Blockly.BlockSvg.CORNER_RADIUS+","+Blockly.BlockSvg.CORNER_RADIUS;Blockly.BlockSvg.INNER_BOTTOM_LEFT_CORNER="a "+Blockly.BlockSvg.CORNER_RADIUS+","+Blockly.BlockSvg.CORNER_RADIUS+" 0 0,0 "+Blockly.BlockSvg.CORNER_RADIUS+","+Blockly.BlockSvg.CORNER_RADIUS;\nBlockly.BlockSvg.INNER_TOP_LEFT_CORNER_HIGHLIGHT_RTL="a "+Blockly.BlockSvg.CORNER_RADIUS+","+Blockly.BlockSvg.CORNER_RADIUS+" 0 0,0 "+(-Blockly.BlockSvg.DISTANCE_45_OUTSIDE-.5)+","+(Blockly.BlockSvg.CORNER_RADIUS-Blockly.BlockSvg.DISTANCE_45_OUTSIDE);Blockly.BlockSvg.INNER_BOTTOM_LEFT_CORNER_HIGHLIGHT_RTL="a "+(Blockly.BlockSvg.CORNER_RADIUS+.5)+","+(Blockly.BlockSvg.CORNER_RADIUS+.5)+" 0 0,0 "+(Blockly.BlockSvg.CORNER_RADIUS+.5)+","+(Blockly.BlockSvg.CORNER_RADIUS+.5);\nBlockly.BlockSvg.INNER_BOTTOM_LEFT_CORNER_HIGHLIGHT_LTR="a "+(Blockly.BlockSvg.CORNER_RADIUS+.5)+","+(Blockly.BlockSvg.CORNER_RADIUS+.5)+" 0 0,0 "+(Blockly.BlockSvg.CORNER_RADIUS-Blockly.BlockSvg.DISTANCE_45_OUTSIDE)+","+(Blockly.BlockSvg.DISTANCE_45_OUTSIDE+.5);\nBlockly.BlockSvg.prototype.render=function(a){Blockly.Field.startCache();this.rendered=!0;var b=Blockly.BlockSvg.SEP_SPACE_X;this.RTL&&(b=-b);for(var c=this.getIcons(),d=0;d<c.length;d++)b=c[d].renderIcon(b);b+=this.RTL?Blockly.BlockSvg.SEP_SPACE_X:-Blockly.BlockSvg.SEP_SPACE_X;c=this.renderCompute_(b);this.renderDraw_(b,c);this.renderMoveConnections_();!1!==a&&((a=this.getParent())?a.render(!0):this.workspace.resizeContents());Blockly.Field.stopCache()};\nBlockly.BlockSvg.prototype.renderFields_=function(a,b,c){c+=Blockly.BlockSvg.INLINE_PADDING_Y;this.RTL&&(b=-b);for(var d=0,e;e=a[d];d++){var f=e.getSvgRoot();f&&(this.RTL?(b-=e.renderSep+e.renderWidth,f.setAttribute("transform","translate("+b+","+c+")"),e.renderWidth&&(b-=Blockly.BlockSvg.SEP_SPACE_X)):(f.setAttribute("transform","translate("+(b+e.renderSep)+","+c+")"),e.renderWidth&&(b+=e.renderSep+e.renderWidth+Blockly.BlockSvg.SEP_SPACE_X)))}return this.RTL?-b:b};\nBlockly.BlockSvg.prototype.renderCompute_=function(a){var b=this.inputList,c=[];c.rightEdge=a+2*Blockly.BlockSvg.SEP_SPACE_X;if(this.previousConnection||this.nextConnection)c.rightEdge=Math.max(c.rightEdge,Blockly.BlockSvg.NOTCH_WIDTH+Blockly.BlockSvg.SEP_SPACE_X);for(var d=0,e=0,f=!1,g=!1,h=!1,k=void 0,l=this.getInputsInline()&&!this.isCollapsed(),p=0,m;m=b[p];p++)if(m.isVisible()){var n;l&&k&&k!=Blockly.NEXT_STATEMENT&&m.type!=Blockly.NEXT_STATEMENT?n=c[c.length-1]:(k=m.type,n=[],n.type=l&&m.type!=\nBlockly.NEXT_STATEMENT?Blockly.BlockSvg.INLINE:m.type,n.height=0,c.push(n));n.push(m);m.renderHeight=Blockly.BlockSvg.MIN_BLOCK_Y;m.renderWidth=l&&m.type==Blockly.INPUT_VALUE?Blockly.BlockSvg.TAB_WIDTH+1.25*Blockly.BlockSvg.SEP_SPACE_X:0;if(m.connection&&m.connection.isConnected()){var q=m.connection.targetBlock().getHeightWidth();m.renderHeight=Math.max(m.renderHeight,q.height);m.renderWidth=Math.max(m.renderWidth,q.width)}l||p!=b.length-1?!l&&m.type==Blockly.INPUT_VALUE&&b[p+1]&&b[p+1].type==Blockly.NEXT_STATEMENT&&\nm.renderHeight--:m.renderHeight--;n.height=Math.max(n.height,m.renderHeight);m.fieldWidth=0;1==c.length&&(m.fieldWidth+=this.RTL?-a:a);for(var q=!1,t=0,r;r=m.fieldRow[t];t++){0!=t&&(m.fieldWidth+=Blockly.BlockSvg.SEP_SPACE_X);var u=r.getSize();r.renderWidth=u.width;r.renderSep=q&&r.EDITABLE?Blockly.BlockSvg.SEP_SPACE_X:0;m.fieldWidth+=r.renderWidth+r.renderSep;n.height=Math.max(n.height,u.height);q=r.EDITABLE}n.type!=Blockly.BlockSvg.INLINE&&(n.type==Blockly.NEXT_STATEMENT?(g=!0,e=Math.max(e,m.fieldWidth)):\n(n.type==Blockly.INPUT_VALUE?f=!0:n.type==Blockly.DUMMY_INPUT&&(h=!0),d=Math.max(d,m.fieldWidth)))}for(a=0;n=c[a];a++)if(n.thicker=!1,n.type==Blockly.BlockSvg.INLINE)for(b=0;m=n[b];b++)if(m.type==Blockly.INPUT_VALUE){n.height+=2*Blockly.BlockSvg.INLINE_PADDING_Y;n.thicker=!0;break}c.statementEdge=2*Blockly.BlockSvg.SEP_SPACE_X+e;g&&(c.rightEdge=Math.max(c.rightEdge,c.statementEdge+Blockly.BlockSvg.NOTCH_WIDTH));f?c.rightEdge=Math.max(c.rightEdge,d+2*Blockly.BlockSvg.SEP_SPACE_X+Blockly.BlockSvg.TAB_WIDTH):\nh&&(c.rightEdge=Math.max(c.rightEdge,d+2*Blockly.BlockSvg.SEP_SPACE_X));c.hasValue=f;c.hasStatement=g;c.hasDummy=h;return c};\nBlockly.BlockSvg.prototype.renderDraw_=function(a,b){this.startHat_=!1;this.height=0;if(this.outputConnection)this.squareBottomLeftCorner_=this.squareTopLeftCorner_=!0;else{this.squareBottomLeftCorner_=this.squareTopLeftCorner_=!1;if(this.previousConnection){var c=this.previousConnection.targetBlock();c&&c.getNextBlock()==this&&(this.squareTopLeftCorner_=!0)}else Blockly.BlockSvg.START_HAT&&(this.startHat_=this.squareTopLeftCorner_=!0,this.height+=Blockly.BlockSvg.START_HAT_HEIGHT,b.rightEdge=Math.max(b.rightEdge,\n100));this.getNextBlock()&&(this.squareBottomLeftCorner_=!0)}var d=[],e=[],c=[],f=[];this.renderDrawTop_(d,c,b.rightEdge);var g=this.renderDrawRight_(d,c,e,f,b,a);this.renderDrawBottom_(d,c,g);this.renderDrawLeft_(d,c);d=d.join(" ")+"\\n"+e.join(" ");this.svgPath_.setAttribute("d",d);this.svgPathDark_.setAttribute("d",d);d=c.join(" ")+"\\n"+f.join(" ");this.svgPathLight_.setAttribute("d",d);this.RTL&&(this.svgPath_.setAttribute("transform","scale(-1 1)"),this.svgPathLight_.setAttribute("transform",\n"scale(-1 1)"),this.svgPathDark_.setAttribute("transform","translate(1,1) scale(-1 1)"))};\nBlockly.BlockSvg.prototype.renderMoveConnections_=function(){var a=this.getRelativeToSurfaceXY();this.previousConnection&&this.previousConnection.moveToOffset(a);this.outputConnection&&this.outputConnection.moveToOffset(a);for(var b=0;b<this.inputList.length;b++){var c=this.inputList[b].connection;c&&(c.moveToOffset(a),c.isConnected()&&c.tighten_())}this.nextConnection&&(this.nextConnection.moveToOffset(a),this.nextConnection.isConnected()&&this.nextConnection.tighten_())};\nBlockly.BlockSvg.prototype.renderDrawTop_=function(a,b,c){this.squareTopLeftCorner_?(a.push("m 0,0"),b.push("m 0.5,0.5"),this.startHat_&&(a.push(Blockly.BlockSvg.START_HAT_PATH),b.push(this.RTL?Blockly.BlockSvg.START_HAT_HIGHLIGHT_RTL:Blockly.BlockSvg.START_HAT_HIGHLIGHT_LTR))):(a.push(Blockly.BlockSvg.TOP_LEFT_CORNER_START),b.push(this.RTL?Blockly.BlockSvg.TOP_LEFT_CORNER_START_HIGHLIGHT_RTL:Blockly.BlockSvg.TOP_LEFT_CORNER_START_HIGHLIGHT_LTR),a.push(Blockly.BlockSvg.TOP_LEFT_CORNER),b.push(Blockly.BlockSvg.TOP_LEFT_CORNER_HIGHLIGHT));\nthis.previousConnection&&(a.push("H",Blockly.BlockSvg.NOTCH_WIDTH-15),b.push("H",Blockly.BlockSvg.NOTCH_WIDTH-15),a.push(Blockly.BlockSvg.NOTCH_PATH_LEFT),b.push(Blockly.BlockSvg.NOTCH_PATH_LEFT_HIGHLIGHT),this.previousConnection.setOffsetInBlock(this.RTL?-Blockly.BlockSvg.NOTCH_WIDTH:Blockly.BlockSvg.NOTCH_WIDTH,0));a.push("H",c);b.push("H",c-.5);this.width=c};\nBlockly.BlockSvg.prototype.renderDrawRight_=function(a,b,c,d,e,f){for(var g,h=0,k,l,p=0,m;m=e[p];p++){g=Blockly.BlockSvg.SEP_SPACE_X;0==p&&(g+=this.RTL?-f:f);b.push("M",e.rightEdge-.5+","+(h+.5));if(this.isCollapsed()){var n=m[0];k=h;this.renderFields_(n.fieldRow,g,k);a.push(Blockly.BlockSvg.JAGGED_TEETH);b.push("h 8");n=m.height-Blockly.BlockSvg.JAGGED_TEETH_HEIGHT;a.push("v",n);this.RTL&&(b.push("v 3.9 l 7.2,3.4 m -14.5,8.9 l 7.3,3.5"),b.push("v",n-.7));this.width+=Blockly.BlockSvg.JAGGED_TEETH_WIDTH}else if(m.type==\nBlockly.BlockSvg.INLINE){for(var q=0;n=m[q];q++)k=h,m.thicker&&(k+=Blockly.BlockSvg.INLINE_PADDING_Y),g=this.renderFields_(n.fieldRow,g,k),n.type!=Blockly.DUMMY_INPUT&&(g+=n.renderWidth+Blockly.BlockSvg.SEP_SPACE_X),n.type==Blockly.INPUT_VALUE&&(c.push("M",g-Blockly.BlockSvg.SEP_SPACE_X+","+(h+Blockly.BlockSvg.INLINE_PADDING_Y)),c.push("h",Blockly.BlockSvg.TAB_WIDTH-2-n.renderWidth),c.push(Blockly.BlockSvg.TAB_PATH_DOWN),c.push("v",n.renderHeight+1-Blockly.BlockSvg.TAB_HEIGHT),c.push("h",n.renderWidth+\n2-Blockly.BlockSvg.TAB_WIDTH),c.push("z"),this.RTL?(d.push("M",g-Blockly.BlockSvg.SEP_SPACE_X-2.5+Blockly.BlockSvg.TAB_WIDTH-n.renderWidth+","+(h+Blockly.BlockSvg.INLINE_PADDING_Y+.5)),d.push(Blockly.BlockSvg.TAB_PATH_DOWN_HIGHLIGHT_RTL),d.push("v",n.renderHeight-Blockly.BlockSvg.TAB_HEIGHT+2.5),d.push("h",n.renderWidth-Blockly.BlockSvg.TAB_WIDTH+2)):(d.push("M",g-Blockly.BlockSvg.SEP_SPACE_X+.5+","+(h+Blockly.BlockSvg.INLINE_PADDING_Y+.5)),d.push("v",n.renderHeight+1),d.push("h",Blockly.BlockSvg.TAB_WIDTH-\n2-n.renderWidth),d.push("M",g-n.renderWidth-Blockly.BlockSvg.SEP_SPACE_X+.9+","+(h+Blockly.BlockSvg.INLINE_PADDING_Y+Blockly.BlockSvg.TAB_HEIGHT-.7)),d.push("l",.46*Blockly.BlockSvg.TAB_WIDTH+",-2.1")),k=this.RTL?-g-Blockly.BlockSvg.TAB_WIDTH+Blockly.BlockSvg.SEP_SPACE_X+n.renderWidth+1:g+Blockly.BlockSvg.TAB_WIDTH-Blockly.BlockSvg.SEP_SPACE_X-n.renderWidth-1,l=h+Blockly.BlockSvg.INLINE_PADDING_Y+1,n.connection.setOffsetInBlock(k,l));g=Math.max(g,e.rightEdge);this.width=Math.max(this.width,g);a.push("H",\ng);b.push("H",g-.5);a.push("v",m.height);this.RTL&&b.push("v",m.height-1)}else m.type==Blockly.INPUT_VALUE?(n=m[0],k=h,n.align!=Blockly.ALIGN_LEFT&&(q=e.rightEdge-n.fieldWidth-Blockly.BlockSvg.TAB_WIDTH-2*Blockly.BlockSvg.SEP_SPACE_X,n.align==Blockly.ALIGN_RIGHT?g+=q:n.align==Blockly.ALIGN_CENTRE&&(g+=q/2)),this.renderFields_(n.fieldRow,g,k),a.push(Blockly.BlockSvg.TAB_PATH_DOWN),q=m.height-Blockly.BlockSvg.TAB_HEIGHT,a.push("v",q),this.RTL?(b.push(Blockly.BlockSvg.TAB_PATH_DOWN_HIGHLIGHT_RTL),b.push("v",\nq+.5)):(b.push("M",e.rightEdge-5+","+(h+Blockly.BlockSvg.TAB_HEIGHT-.7)),b.push("l",.46*Blockly.BlockSvg.TAB_WIDTH+",-2.1")),k=this.RTL?-e.rightEdge-1:e.rightEdge+1,n.connection.setOffsetInBlock(k,h),n.connection.isConnected()&&(this.width=Math.max(this.width,e.rightEdge+n.connection.targetBlock().getHeightWidth().width-Blockly.BlockSvg.TAB_WIDTH+1))):m.type==Blockly.DUMMY_INPUT?(n=m[0],k=h,n.align!=Blockly.ALIGN_LEFT&&(q=e.rightEdge-n.fieldWidth-2*Blockly.BlockSvg.SEP_SPACE_X,e.hasValue&&(q-=Blockly.BlockSvg.TAB_WIDTH),\nn.align==Blockly.ALIGN_RIGHT?g+=q:n.align==Blockly.ALIGN_CENTRE&&(g+=q/2)),this.renderFields_(n.fieldRow,g,k),a.push("v",m.height),this.RTL&&b.push("v",m.height-1)):m.type==Blockly.NEXT_STATEMENT&&(n=m[0],0==p&&(a.push("v",Blockly.BlockSvg.SEP_SPACE_Y),this.RTL&&b.push("v",Blockly.BlockSvg.SEP_SPACE_Y-1),h+=Blockly.BlockSvg.SEP_SPACE_Y),k=h,n.align!=Blockly.ALIGN_LEFT&&(q=e.statementEdge-n.fieldWidth-2*Blockly.BlockSvg.SEP_SPACE_X,n.align==Blockly.ALIGN_RIGHT?g+=q:n.align==Blockly.ALIGN_CENTRE&&(g+=\nq/2)),this.renderFields_(n.fieldRow,g,k),g=e.statementEdge+Blockly.BlockSvg.NOTCH_WIDTH,a.push("H",g),a.push(Blockly.BlockSvg.INNER_TOP_LEFT_CORNER),a.push("v",m.height-2*Blockly.BlockSvg.CORNER_RADIUS),a.push(Blockly.BlockSvg.INNER_BOTTOM_LEFT_CORNER),a.push("H",e.rightEdge),this.RTL?(b.push("M",g-Blockly.BlockSvg.NOTCH_WIDTH+Blockly.BlockSvg.DISTANCE_45_OUTSIDE+","+(h+Blockly.BlockSvg.DISTANCE_45_OUTSIDE)),b.push(Blockly.BlockSvg.INNER_TOP_LEFT_CORNER_HIGHLIGHT_RTL),b.push("v",m.height-2*Blockly.BlockSvg.CORNER_RADIUS),\nb.push(Blockly.BlockSvg.INNER_BOTTOM_LEFT_CORNER_HIGHLIGHT_RTL)):(b.push("M",g-Blockly.BlockSvg.NOTCH_WIDTH+Blockly.BlockSvg.DISTANCE_45_OUTSIDE+","+(h+m.height-Blockly.BlockSvg.DISTANCE_45_OUTSIDE)),b.push(Blockly.BlockSvg.INNER_BOTTOM_LEFT_CORNER_HIGHLIGHT_LTR)),b.push("H",e.rightEdge-.5),k=this.RTL?-g:g+1,n.connection.setOffsetInBlock(k,h+1),n.connection.isConnected()&&(this.width=Math.max(this.width,e.statementEdge+n.connection.targetBlock().getHeightWidth().width)),p==e.length-1||e[p+1].type==\nBlockly.NEXT_STATEMENT)&&(a.push("v",Blockly.BlockSvg.SEP_SPACE_Y),this.RTL&&b.push("v",Blockly.BlockSvg.SEP_SPACE_Y-1),h+=Blockly.BlockSvg.SEP_SPACE_Y);h+=m.height}e.length||(h=Blockly.BlockSvg.MIN_BLOCK_Y,a.push("V",h),this.RTL&&b.push("V",h-1));return h};\nBlockly.BlockSvg.prototype.renderDrawBottom_=function(a,b,c){this.height+=c+1;this.nextConnection&&(a.push("H",Blockly.BlockSvg.NOTCH_WIDTH+(this.RTL?.5:-.5)+" "+Blockly.BlockSvg.NOTCH_PATH_RIGHT),this.nextConnection.setOffsetInBlock(this.RTL?-Blockly.BlockSvg.NOTCH_WIDTH:Blockly.BlockSvg.NOTCH_WIDTH,c+1),this.height+=4);this.squareBottomLeftCorner_?(a.push("H 0"),this.RTL||b.push("M","0.5,"+(c-.5))):(a.push("H",Blockly.BlockSvg.CORNER_RADIUS),a.push("a",Blockly.BlockSvg.CORNER_RADIUS+","+Blockly.BlockSvg.CORNER_RADIUS+\n" 0 0,1 -"+Blockly.BlockSvg.CORNER_RADIUS+",-"+Blockly.BlockSvg.CORNER_RADIUS),this.RTL||(b.push("M",Blockly.BlockSvg.DISTANCE_45_INSIDE+","+(c-Blockly.BlockSvg.DISTANCE_45_INSIDE)),b.push("A",Blockly.BlockSvg.CORNER_RADIUS-.5+","+(Blockly.BlockSvg.CORNER_RADIUS-.5)+" 0 0,1 0.5,"+(c-Blockly.BlockSvg.CORNER_RADIUS))))};\nBlockly.BlockSvg.prototype.renderDrawLeft_=function(a,b){this.outputConnection?(this.outputConnection.setOffsetInBlock(0,0),a.push("V",Blockly.BlockSvg.TAB_HEIGHT),a.push("c 0,-10 -"+Blockly.BlockSvg.TAB_WIDTH+",8 -"+Blockly.BlockSvg.TAB_WIDTH+",-7.5 s "+Blockly.BlockSvg.TAB_WIDTH+",2.5 "+Blockly.BlockSvg.TAB_WIDTH+",-7.5"),this.RTL?(b.push("M",-.25*Blockly.BlockSvg.TAB_WIDTH+",8.4"),b.push("l",-.45*Blockly.BlockSvg.TAB_WIDTH+",-2.1")):(b.push("V",Blockly.BlockSvg.TAB_HEIGHT-1.5),b.push("m",-.92*\nBlockly.BlockSvg.TAB_WIDTH+",-0.5 q "+-.19*Blockly.BlockSvg.TAB_WIDTH+",-5.5 0,-11"),b.push("m",.92*Blockly.BlockSvg.TAB_WIDTH+",1 V 0.5 H 1")),this.width+=Blockly.BlockSvg.TAB_WIDTH):this.RTL||(this.squareTopLeftCorner_?b.push("V",.5):b.push("V",Blockly.BlockSvg.CORNER_RADIUS));a.push("z")};Blockly.Events={};Blockly.Events.group_="";Blockly.Events.recordUndo=!0;Blockly.Events.disabled_=0;Blockly.Events.CREATE="create";Blockly.Events.DELETE="delete";Blockly.Events.CHANGE="change";Blockly.Events.MOVE="move";Blockly.Events.UI="ui";Blockly.Events.FIRE_QUEUE_=[];Blockly.Events.fire=function(a){Blockly.Events.isEnabled()&&(Blockly.Events.FIRE_QUEUE_.length||setTimeout(Blockly.Events.fireNow_,0),Blockly.Events.FIRE_QUEUE_.push(a))};\nBlockly.Events.fireNow_=function(){for(var a=Blockly.Events.filter(Blockly.Events.FIRE_QUEUE_,!0),b=Blockly.Events.FIRE_QUEUE_.length=0,c;c=a[b];b++){var d=Blockly.Workspace.getById(c.workspaceId);d&&d.fireChangeListener(c)}};\nBlockly.Events.filter=function(a,b){var c=goog.array.clone(a);b||c.reverse();for(var d=0,e;e=c[d];d++)for(var f=d+1,g;g=c[f];f++)e.type==g.type&&e.blockId==g.blockId&&e.workspaceId==g.workspaceId&&(e.type==Blockly.Events.MOVE?(e.newParentId=g.newParentId,e.newInputName=g.newInputName,e.newCoordinate=g.newCoordinate,c.splice(f,1),f--):e.type==Blockly.Events.CHANGE&&e.element==g.element&&e.name==g.name?(e.newValue=g.newValue,c.splice(f,1),f--):e.type!=Blockly.Events.UI||"click"!=g.element||"commentOpen"!=\ne.element&&"mutatorOpen"!=e.element&&"warningOpen"!=e.element||(e.newValue=g.newValue,c.splice(f,1),f--));for(d=c.length-1;0<=d;d--)c[d].isNull()&&c.splice(d,1);b||c.reverse();for(d=1;e=c[d];d++)e.type==Blockly.Events.CHANGE&&"mutation"==e.element&&c.unshift(c.splice(d,1)[0]);return c};Blockly.Events.clearPendingUndo=function(){for(var a=0,b;b=Blockly.Events.FIRE_QUEUE_[a];a++)b.recordUndo=!1};Blockly.Events.disable=function(){Blockly.Events.disabled_++};Blockly.Events.enable=function(){Blockly.Events.disabled_--};\nBlockly.Events.isEnabled=function(){return 0==Blockly.Events.disabled_};Blockly.Events.getGroup=function(){return Blockly.Events.group_};Blockly.Events.setGroup=function(a){Blockly.Events.group_="boolean"==typeof a?a?Blockly.genUid():"":a};Blockly.Events.getDescendantIds_=function(a){var b=[];a=a.getDescendants();for(var c=0,d;d=a[c];c++)b[c]=d.id;return b};\nBlockly.Events.fromJson=function(a,b){var c;switch(a.type){case Blockly.Events.CREATE:c=new Blockly.Events.Create(null);break;case Blockly.Events.DELETE:c=new Blockly.Events.Delete(null);break;case Blockly.Events.CHANGE:c=new Blockly.Events.Change(null);break;case Blockly.Events.MOVE:c=new Blockly.Events.Move(null);break;case Blockly.Events.UI:c=new Blockly.Events.Ui(null);break;default:throw"Unknown event type.";}c.fromJson(a);c.workspaceId=b.id;return c};\nBlockly.Events.Abstract=function(a){a&&(this.blockId=a.id,this.workspaceId=a.workspace.id);this.group=Blockly.Events.group_;this.recordUndo=Blockly.Events.recordUndo};Blockly.Events.Abstract.prototype.toJson=function(){var a={type:this.type};this.blockId&&(a.blockId=this.blockId);this.group&&(a.group=this.group);return a};Blockly.Events.Abstract.prototype.fromJson=function(a){this.blockId=a.blockId;this.group=a.group};Blockly.Events.Abstract.prototype.isNull=function(){return!1};\nBlockly.Events.Abstract.prototype.run=function(a){};Blockly.Events.Create=function(a){a&&(Blockly.Events.Create.superClass_.constructor.call(this,a),this.xml=Blockly.Xml.blockToDomWithXY(a),this.ids=Blockly.Events.getDescendantIds_(a))};goog.inherits(Blockly.Events.Create,Blockly.Events.Abstract);Blockly.Events.Create.prototype.type=Blockly.Events.CREATE;\nBlockly.Events.Create.prototype.toJson=function(){var a=Blockly.Events.Create.superClass_.toJson.call(this);a.xml=Blockly.Xml.domToText(this.xml);a.ids=this.ids;return a};Blockly.Events.Create.prototype.fromJson=function(a){Blockly.Events.Create.superClass_.fromJson.call(this,a);this.xml=Blockly.Xml.textToDom("<xml>"+a.xml+"</xml>").firstChild;this.ids=a.ids};\nBlockly.Events.Create.prototype.run=function(a){var b=Blockly.Workspace.getById(this.workspaceId);if(a)a=goog.dom.createDom("xml"),a.appendChild(this.xml),Blockly.Xml.domToWorkspace(a,b);else{a=0;for(var c;c=this.ids[a];a++){var d=b.getBlockById(c);d?d.dispose(!1,!1):c==this.blockId&&console.warn("Can\'t uncreate non-existant block: "+c)}}};\nBlockly.Events.Delete=function(a){if(a){if(a.getParent())throw"Connected blocks cannot be deleted.";Blockly.Events.Delete.superClass_.constructor.call(this,a);this.oldXml=Blockly.Xml.blockToDomWithXY(a);this.ids=Blockly.Events.getDescendantIds_(a)}};goog.inherits(Blockly.Events.Delete,Blockly.Events.Abstract);Blockly.Events.Delete.prototype.type=Blockly.Events.DELETE;Blockly.Events.Delete.prototype.toJson=function(){var a=Blockly.Events.Delete.superClass_.toJson.call(this);a.ids=this.ids;return a};\nBlockly.Events.Delete.prototype.fromJson=function(a){Blockly.Events.Delete.superClass_.fromJson.call(this,a);this.ids=a.ids};Blockly.Events.Delete.prototype.run=function(a){var b=Blockly.Workspace.getById(this.workspaceId);if(a){a=0;for(var c;c=this.ids[a];a++){var d=b.getBlockById(c);d?d.dispose(!1,!1):c==this.blockId&&console.warn("Can\'t delete non-existant block: "+c)}}else a=goog.dom.createDom("xml"),a.appendChild(this.oldXml),Blockly.Xml.domToWorkspace(a,b)};\nBlockly.Events.Change=function(a,b,c,d,e){a&&(Blockly.Events.Change.superClass_.constructor.call(this,a),this.element=b,this.name=c,this.oldValue=d,this.newValue=e)};goog.inherits(Blockly.Events.Change,Blockly.Events.Abstract);Blockly.Events.Change.prototype.type=Blockly.Events.CHANGE;Blockly.Events.Change.prototype.toJson=function(){var a=Blockly.Events.Change.superClass_.toJson.call(this);a.element=this.element;this.name&&(a.name=this.name);a.newValue=this.newValue;return a};\nBlockly.Events.Change.prototype.fromJson=function(a){Blockly.Events.Change.superClass_.fromJson.call(this,a);this.element=a.element;this.name=a.name;this.newValue=a.newValue};Blockly.Events.Change.prototype.isNull=function(){return this.oldValue==this.newValue};\nBlockly.Events.Change.prototype.run=function(a){var b=Blockly.Workspace.getById(this.workspaceId).getBlockById(this.blockId);if(b)switch(b.mutator&&b.mutator.setVisible(!1),a=a?this.newValue:this.oldValue,this.element){case "field":(b=b.getField(this.name))?(b.callValidator(a),b.setValue(a)):console.warn("Can\'t set non-existant field: "+this.name);break;case "comment":b.setCommentText(a||null);break;case "collapsed":b.setCollapsed(a);break;case "disabled":b.setDisabled(a);break;case "inline":b.setInputsInline(a);\nbreak;case "mutation":var c="";b.mutationToDom&&(c=(c=b.mutationToDom())&&Blockly.Xml.domToText(c));if(b.domToMutation){a=a||"<mutation></mutation>";var d=Blockly.Xml.textToDom("<xml>"+a+"</xml>");b.domToMutation(d.firstChild)}Blockly.Events.fire(new Blockly.Events.Change(b,"mutation",null,c,a));break;default:console.warn("Unknown change type: "+this.element)}else console.warn("Can\'t change non-existant block: "+this.blockId)};\nBlockly.Events.Move=function(a){a&&(Blockly.Events.Move.superClass_.constructor.call(this,a),a=this.currentLocation_(),this.oldParentId=a.parentId,this.oldInputName=a.inputName,this.oldCoordinate=a.coordinate)};goog.inherits(Blockly.Events.Move,Blockly.Events.Abstract);Blockly.Events.Move.prototype.type=Blockly.Events.MOVE;\nBlockly.Events.Move.prototype.toJson=function(){var a=Blockly.Events.Move.superClass_.toJson.call(this);this.newParentId&&(a.newParentId=this.newParentId);this.newInputName&&(a.newInputName=this.newInputName);this.newCoordinate&&(a.newCoordinate=Math.round(this.newCoordinate.x)+","+Math.round(this.newCoordinate.y));return a};\nBlockly.Events.Move.prototype.fromJson=function(a){Blockly.Events.Move.superClass_.fromJson.call(this,a);this.newParentId=a.newParentId;this.newInputName=a.newInputName;a.newCoordinate&&(a=a.newCoordinate.split(","),this.newCoordinate=new goog.math.Coordinate(parseFloat(a[0]),parseFloat(a[1])))};Blockly.Events.Move.prototype.recordNew=function(){var a=this.currentLocation_();this.newParentId=a.parentId;this.newInputName=a.inputName;this.newCoordinate=a.coordinate};\nBlockly.Events.Move.prototype.currentLocation_=function(){var a=Blockly.Workspace.getById(this.workspaceId).getBlockById(this.blockId),b={},c=a.getParent();if(c){if(b.parentId=c.id,a=c.getInputWithBlock(a))b.inputName=a.name}else b.coordinate=a.getRelativeToSurfaceXY();return b};Blockly.Events.Move.prototype.isNull=function(){return this.oldParentId==this.newParentId&&this.oldInputName==this.newInputName&&goog.math.Coordinate.equals(this.oldCoordinate,this.newCoordinate)};\nBlockly.Events.Move.prototype.run=function(a){var b=Blockly.Workspace.getById(this.workspaceId),c=b.getBlockById(this.blockId);if(c){var d=a?this.newParentId:this.oldParentId,e=a?this.newInputName:this.oldInputName;a=a?this.newCoordinate:this.oldCoordinate;var f=null;if(d&&(f=b.getBlockById(d),!f)){console.warn("Can\'t connect to non-existant block: "+d);return}c.getParent()&&c.unplug();if(a)e=c.getRelativeToSurfaceXY(),c.moveBy(a.x-e.x,a.y-e.y);else{var c=c.outputConnection||c.previousConnection,\ng;if(e){if(b=f.getInput(e))g=b.connection}else c.type==Blockly.PREVIOUS_STATEMENT&&(g=f.nextConnection);g?c.connect(g):console.warn("Can\'t connect to non-existant input: "+e)}}else console.warn("Can\'t move non-existant block: "+this.blockId)};Blockly.Events.Ui=function(a,b,c,d){Blockly.Events.Ui.superClass_.constructor.call(this,a);this.element=b;this.oldValue=c;this.newValue=d;this.recordUndo=!1};goog.inherits(Blockly.Events.Ui,Blockly.Events.Abstract);Blockly.Events.Ui.prototype.type=Blockly.Events.UI;\nBlockly.Events.Ui.prototype.toJson=function(){var a=Blockly.Events.Ui.superClass_.toJson.call(this);a.element=this.element;void 0!==this.newValue&&(a.newValue=this.newValue);return a};Blockly.Events.Ui.prototype.fromJson=function(a){Blockly.Events.Ui.superClass_.fromJson.call(this,a);this.element=a.element;this.newValue=a.newValue};\nBlockly.Events.disableOrphans=function(a){if(a.type==Blockly.Events.MOVE||a.type==Blockly.Events.CREATE){Blockly.Events.disable();if(a=Blockly.Workspace.getById(a.workspaceId).getBlockById(a.blockId))if(a.getParent()&&!a.getParent().disabled){a=a.getDescendants();for(var b=0,c;c=a[b];b++)c.setDisabled(!1)}else if((a.outputConnection||a.previousConnection)&&Blockly.dragMode_==Blockly.DRAG_NONE){do a.setDisabled(!0),a=a.getNextBlock();while(a)}Blockly.Events.enable()}};Blockly.Msg={};goog.getMsgOrig=goog.getMsg;goog.getMsg=function(a,b){var c=goog.getMsg.blocklyMsgMap[a];c&&(a=Blockly.Msg[c]);return goog.getMsgOrig(a,b)};goog.getMsg.blocklyMsgMap={Today:"TODAY"};Blockly.FieldTextInput=function(a,b){Blockly.FieldTextInput.superClass_.constructor.call(this,a,b)};goog.inherits(Blockly.FieldTextInput,Blockly.Field);Blockly.FieldTextInput.FONTSIZE=11;Blockly.FieldTextInput.prototype.CURSOR="text";Blockly.FieldTextInput.prototype.spellcheck_=!0;Blockly.FieldTextInput.prototype.dispose=function(){Blockly.WidgetDiv.hideIfOwner(this);Blockly.FieldTextInput.superClass_.dispose.call(this)};\nBlockly.FieldTextInput.prototype.setValue=function(a){if(null!==a){if(this.sourceBlock_){var b=this.callValidator(a);null!==b&&(a=b)}Blockly.Field.prototype.setValue.call(this,a)}};Blockly.FieldTextInput.prototype.setSpellcheck=function(a){this.spellcheck_=a};\nBlockly.FieldTextInput.prototype.showEditor_=function(a){this.workspace_=this.sourceBlock_.workspace;a=a||!1;if(!a&&(goog.userAgent.MOBILE||goog.userAgent.ANDROID||goog.userAgent.IPAD))a=window.prompt(Blockly.Msg.CHANGE_VALUE_TITLE,this.text_),this.sourceBlock_&&(a=this.callValidator(a)),this.setValue(a);else{Blockly.WidgetDiv.show(this,this.sourceBlock_.RTL,this.widgetDispose_());var b=Blockly.WidgetDiv.DIV,c=goog.dom.createDom("INPUT","blocklyHtmlInput");c.setAttribute("spellcheck",this.spellcheck_);\nvar d=Blockly.FieldTextInput.FONTSIZE*this.workspace_.scale+"pt";b.style.fontSize=d;c.style.fontSize=d;Blockly.FieldTextInput.htmlInput_=c;b.appendChild(c);c.value=c.defaultValue=this.text_;c.oldValue_=null;this.validate_();this.resizeEditor_();a||(c.focus(),c.select());c.onKeyDownWrapper_=Blockly.bindEventWithChecks_(c,"keydown",this,this.onHtmlInputKeyDown_);c.onKeyUpWrapper_=Blockly.bindEventWithChecks_(c,"keyup",this,this.onHtmlInputChange_);c.onKeyPressWrapper_=Blockly.bindEventWithChecks_(c,\n"keypress",this,this.onHtmlInputChange_);c.onWorkspaceChangeWrapper_=this.resizeEditor_.bind(this);this.workspace_.addChangeListener(c.onWorkspaceChangeWrapper_)}};Blockly.FieldTextInput.prototype.onHtmlInputKeyDown_=function(a){var b=Blockly.FieldTextInput.htmlInput_;13==a.keyCode?Blockly.WidgetDiv.hide():27==a.keyCode?(b.value=b.defaultValue,Blockly.WidgetDiv.hide()):9==a.keyCode&&(Blockly.WidgetDiv.hide(),this.sourceBlock_.tab(this,!a.shiftKey),a.preventDefault())};\nBlockly.FieldTextInput.prototype.onHtmlInputChange_=function(a){a=Blockly.FieldTextInput.htmlInput_;var b=a.value;b!==a.oldValue_?(a.oldValue_=b,this.setValue(b),this.validate_()):goog.userAgent.WEBKIT&&this.sourceBlock_.render();this.resizeEditor_();Blockly.svgResize(this.sourceBlock_.workspace)};\nBlockly.FieldTextInput.prototype.validate_=function(){var a=!0;goog.asserts.assertObject(Blockly.FieldTextInput.htmlInput_);var b=Blockly.FieldTextInput.htmlInput_;this.sourceBlock_&&(a=this.callValidator(b.value));null===a?Blockly.addClass_(b,"blocklyInvalidInput"):Blockly.removeClass_(b,"blocklyInvalidInput")};\nBlockly.FieldTextInput.prototype.resizeEditor_=function(){var a=Blockly.WidgetDiv.DIV,b=this.fieldGroup_.getBBox();a.style.width=b.width*this.workspace_.scale+"px";a.style.height=b.height*this.workspace_.scale+"px";b=this.getAbsoluteXY_();if(this.sourceBlock_.RTL){var c=this.getScaledBBox_();b.x+=c.width;b.x-=a.offsetWidth}b.y+=1;goog.userAgent.GECKO&&Blockly.WidgetDiv.DIV.style.top&&(--b.x,--b.y);goog.userAgent.WEBKIT&&(b.y-=3);a.style.left=b.x+"px";a.style.top=b.y+"px"};\nBlockly.FieldTextInput.prototype.widgetDispose_=function(){var a=this;return function(){var b=Blockly.FieldTextInput.htmlInput_,c=b.value;if(a.sourceBlock_)if(c=a.callValidator(c),null===c)c=b.defaultValue;else if(a.onFinishEditing_)a.onFinishEditing_(c);a.setValue(c);a.sourceBlock_.rendered&&a.sourceBlock_.render();Blockly.unbindEvent_(b.onKeyDownWrapper_);Blockly.unbindEvent_(b.onKeyUpWrapper_);Blockly.unbindEvent_(b.onKeyPressWrapper_);a.workspace_.removeChangeListener(b.onWorkspaceChangeWrapper_);\nBlockly.FieldTextInput.htmlInput_=null;b=Blockly.WidgetDiv.DIV.style;b.width="auto";b.height="auto";b.fontSize=""}};Blockly.FieldTextInput.numberValidator=function(a){console.warn("Blockly.FieldTextInput.numberValidator is deprecated. Use Blockly.FieldNumber instead.");if(null===a)return null;a=String(a);a=a.replace(/O/ig,"0");a=a.replace(/,/g,"");a=parseFloat(a||0);return isNaN(a)?null:String(a)};\nBlockly.FieldTextInput.nonnegativeIntegerValidator=function(a){(a=Blockly.FieldTextInput.numberValidator(a))&&(a=String(Math.max(0,Math.floor(a))));return a};Blockly.FieldAngle=function(a,b){this.symbol_=Blockly.createSvgElement("tspan",{},null);this.symbol_.appendChild(document.createTextNode("\\u00b0"));Blockly.FieldAngle.superClass_.constructor.call(this,a,b)};goog.inherits(Blockly.FieldAngle,Blockly.FieldTextInput);Blockly.FieldAngle.ROUND=15;Blockly.FieldAngle.HALF=50;Blockly.FieldAngle.CLOCKWISE=!1;Blockly.FieldAngle.OFFSET=0;Blockly.FieldAngle.WRAP=360;Blockly.FieldAngle.RADIUS=Blockly.FieldAngle.HALF-1;\nBlockly.FieldAngle.prototype.dispose_=function(){var a=this;return function(){Blockly.FieldAngle.superClass_.dispose_.call(a)();a.gauge_=null;a.clickWrapper_&&Blockly.unbindEvent_(a.clickWrapper_);a.moveWrapper1_&&Blockly.unbindEvent_(a.moveWrapper1_);a.moveWrapper2_&&Blockly.unbindEvent_(a.moveWrapper2_)}};\nBlockly.FieldAngle.prototype.showEditor_=function(){Blockly.FieldAngle.superClass_.showEditor_.call(this,goog.userAgent.MOBILE||goog.userAgent.ANDROID||goog.userAgent.IPAD);var a=Blockly.WidgetDiv.DIV;if(a.firstChild){var a=Blockly.createSvgElement("svg",{xmlns:"http://www.w3.org/2000/svg","xmlns:html":"http://www.w3.org/1999/xhtml","xmlns:xlink":"http://www.w3.org/1999/xlink",version:"1.1",height:2*Blockly.FieldAngle.HALF+"px",width:2*Blockly.FieldAngle.HALF+"px"},a),b=Blockly.createSvgElement("circle",\n{cx:Blockly.FieldAngle.HALF,cy:Blockly.FieldAngle.HALF,r:Blockly.FieldAngle.RADIUS,"class":"blocklyAngleCircle"},a);this.gauge_=Blockly.createSvgElement("path",{"class":"blocklyAngleGauge"},a);this.line_=Blockly.createSvgElement("line",{x1:Blockly.FieldAngle.HALF,y1:Blockly.FieldAngle.HALF,"class":"blocklyAngleLine"},a);for(var c=0;360>c;c+=15)Blockly.createSvgElement("line",{x1:Blockly.FieldAngle.HALF+Blockly.FieldAngle.RADIUS,y1:Blockly.FieldAngle.HALF,x2:Blockly.FieldAngle.HALF+Blockly.FieldAngle.RADIUS-\n(0==c%45?10:5),y2:Blockly.FieldAngle.HALF,"class":"blocklyAngleMarks",transform:"rotate("+c+","+Blockly.FieldAngle.HALF+","+Blockly.FieldAngle.HALF+")"},a);a.style.marginLeft=15-Blockly.FieldAngle.RADIUS+"px";this.clickWrapper_=Blockly.bindEvent_(a,"click",this,Blockly.WidgetDiv.hide);this.moveWrapper1_=Blockly.bindEvent_(b,"mousemove",this,this.onMouseMove);this.moveWrapper2_=Blockly.bindEvent_(this.gauge_,"mousemove",this,this.onMouseMove);this.updateGraph_()}};\nBlockly.FieldAngle.prototype.onMouseMove=function(a){var b=this.gauge_.ownerSVGElement.getBoundingClientRect(),c=a.clientX-b.left-Blockly.FieldAngle.HALF;a=a.clientY-b.top-Blockly.FieldAngle.HALF;b=Math.atan(-a/c);isNaN(b)||(b=goog.math.toDegrees(b),0>c?b+=180:0<a&&(b+=360),b=Blockly.FieldAngle.CLOCKWISE?Blockly.FieldAngle.OFFSET+360-b:b-Blockly.FieldAngle.OFFSET,Blockly.FieldAngle.ROUND&&(b=Math.round(b/Blockly.FieldAngle.ROUND)*Blockly.FieldAngle.ROUND),b=this.callValidator(b),Blockly.FieldTextInput.htmlInput_.value=\nb,this.setValue(b),this.validate_(),this.resizeEditor_())};Blockly.FieldAngle.prototype.setText=function(a){Blockly.FieldAngle.superClass_.setText.call(this,a);this.textElement_&&(this.updateGraph_(),this.sourceBlock_.RTL?this.textElement_.insertBefore(this.symbol_,this.textElement_.firstChild):this.textElement_.appendChild(this.symbol_),this.size_.width=0)};\nBlockly.FieldAngle.prototype.updateGraph_=function(){if(this.gauge_){var a=Number(this.getText())+Blockly.FieldAngle.OFFSET,b=goog.math.toRadians(a),a=["M ",Blockly.FieldAngle.HALF,",",Blockly.FieldAngle.HALF],c=Blockly.FieldAngle.HALF,d=Blockly.FieldAngle.HALF;if(!isNaN(b)){var e=goog.math.toRadians(Blockly.FieldAngle.OFFSET),f=Math.cos(e)*Blockly.FieldAngle.RADIUS,g=Math.sin(e)*-Blockly.FieldAngle.RADIUS;Blockly.FieldAngle.CLOCKWISE&&(b=2*e-b);c+=Math.cos(b)*Blockly.FieldAngle.RADIUS;d-=Math.sin(b)*\nBlockly.FieldAngle.RADIUS;b=Math.abs(Math.floor((b-e)/Math.PI)%2);Blockly.FieldAngle.CLOCKWISE&&(b=1-b);a.push(" l ",f,",",g," A ",Blockly.FieldAngle.RADIUS,",",Blockly.FieldAngle.RADIUS," 0 ",b," ",Number(Blockly.FieldAngle.CLOCKWISE)," ",c,",",d," z")}this.gauge_.setAttribute("d",a.join(""));this.line_.setAttribute("x2",c);this.line_.setAttribute("y2",d)}};\nBlockly.FieldAngle.prototype.classValidator=function(a){if(null===a)return null;a=parseFloat(a||0);if(isNaN(a))return null;a%=360;0>a&&(a+=360);a>Blockly.FieldAngle.WRAP&&(a-=360);return String(a)};Blockly.FieldCheckbox=function(a,b){Blockly.FieldCheckbox.superClass_.constructor.call(this,"",b);this.setValue(a)};goog.inherits(Blockly.FieldCheckbox,Blockly.Field);Blockly.FieldCheckbox.CHECK_CHAR="\\u2713";Blockly.FieldCheckbox.prototype.CURSOR="default";\nBlockly.FieldCheckbox.prototype.init=function(){if(!this.fieldGroup_){Blockly.FieldCheckbox.superClass_.init.call(this);this.checkElement_=Blockly.createSvgElement("text",{"class":"blocklyText blocklyCheckbox",x:-3,y:14},this.fieldGroup_);var a=document.createTextNode(Blockly.FieldCheckbox.CHECK_CHAR);this.checkElement_.appendChild(a);this.checkElement_.style.display=this.state_?"block":"none"}};Blockly.FieldCheckbox.prototype.getValue=function(){return String(this.state_).toUpperCase()};\nBlockly.FieldCheckbox.prototype.setValue=function(a){a="TRUE"==a.toUpperCase();this.state_!==a&&(this.sourceBlock_&&Blockly.Events.isEnabled()&&Blockly.Events.fire(new Blockly.Events.Change(this.sourceBlock_,"field",this.name,this.state_,a)),this.state_=a,this.checkElement_&&(this.checkElement_.style.display=a?"block":"none"))};Blockly.FieldCheckbox.prototype.showEditor_=function(){var a=!this.state_;this.sourceBlock_&&(a=this.callValidator(a));null!==a&&this.setValue(String(a).toUpperCase())};Blockly.FieldColour=function(a,b){Blockly.FieldColour.superClass_.constructor.call(this,a,b);this.setText(Blockly.Field.NBSP+Blockly.Field.NBSP+Blockly.Field.NBSP)};goog.inherits(Blockly.FieldColour,Blockly.Field);Blockly.FieldColour.prototype.colours_=null;Blockly.FieldColour.prototype.columns_=0;Blockly.FieldColour.prototype.init=function(){Blockly.FieldColour.superClass_.init.call(this);this.borderRect_.style.fillOpacity=1;this.setValue(this.getValue())};Blockly.FieldColour.prototype.CURSOR="default";\nBlockly.FieldColour.prototype.dispose=function(){Blockly.WidgetDiv.hideIfOwner(this);Blockly.FieldColour.superClass_.dispose.call(this)};Blockly.FieldColour.prototype.getValue=function(){return this.colour_};Blockly.FieldColour.prototype.setValue=function(a){this.sourceBlock_&&Blockly.Events.isEnabled()&&this.colour_!=a&&Blockly.Events.fire(new Blockly.Events.Change(this.sourceBlock_,"field",this.name,this.colour_,a));this.colour_=a;this.borderRect_&&(this.borderRect_.style.fill=a)};\nBlockly.FieldColour.prototype.getText=function(){var a=this.colour_,b=a.match(/^#(.)\\1(.)\\2(.)\\3$/);b&&(a="#"+b[1]+b[2]+b[3]);return a};Blockly.FieldColour.COLOURS=goog.ui.ColorPicker.SIMPLE_GRID_COLORS;Blockly.FieldColour.COLUMNS=7;Blockly.FieldColour.prototype.setColours=function(a){this.colours_=a;return this};Blockly.FieldColour.prototype.setColumns=function(a){this.columns_=a;return this};\nBlockly.FieldColour.prototype.showEditor_=function(){Blockly.WidgetDiv.show(this,this.sourceBlock_.RTL,Blockly.FieldColour.widgetDispose_);var a=new goog.ui.ColorPicker;a.setSize(this.columns_||Blockly.FieldColour.COLUMNS);a.setColors(this.colours_||Blockly.FieldColour.COLOURS);var b=goog.dom.getViewportSize(),c=goog.style.getViewportPageOffset(document),d=this.getAbsoluteXY_(),e=this.getScaledBBox_();a.render(Blockly.WidgetDiv.DIV);a.setSelectedColor(this.getValue());var f=goog.style.getSize(a.getElement());\nd.y=d.y+f.height+e.height>=b.height+c.y?d.y-(f.height-1):d.y+(e.height-1);this.sourceBlock_.RTL?(d.x+=e.width,d.x-=f.width,d.x<c.x&&(d.x=c.x)):d.x>b.width+c.x-f.width&&(d.x=b.width+c.x-f.width);Blockly.WidgetDiv.position(d.x,d.y,b,c,this.sourceBlock_.RTL);var g=this;Blockly.FieldColour.changeEventKey_=goog.events.listen(a,goog.ui.ColorPicker.EventType.CHANGE,function(a){a=a.target.getSelectedColor()||"#000000";Blockly.WidgetDiv.hide();g.sourceBlock_&&(a=g.callValidator(a));null!==a&&g.setValue(a)})};\nBlockly.FieldColour.widgetDispose_=function(){Blockly.FieldColour.changeEventKey_&&goog.events.unlistenByKey(Blockly.FieldColour.changeEventKey_)};Blockly.FieldDropdown=function(a,b){this.menuGenerator_=a;this.trimOptions_();var c=this.getOptions_()[0];Blockly.FieldDropdown.superClass_.constructor.call(this,c[1],b)};goog.inherits(Blockly.FieldDropdown,Blockly.Field);Blockly.FieldDropdown.CHECKMARK_OVERHANG=25;Blockly.FieldDropdown.ARROW_CHAR=goog.userAgent.ANDROID?"\\u25bc":"\\u25be";Blockly.FieldDropdown.prototype.CURSOR="default";\nBlockly.FieldDropdown.prototype.init=function(){if(!this.fieldGroup_){this.arrow_=Blockly.createSvgElement("tspan",{},null);this.arrow_.appendChild(document.createTextNode(this.sourceBlock_.RTL?Blockly.FieldDropdown.ARROW_CHAR+" ":" "+Blockly.FieldDropdown.ARROW_CHAR));Blockly.FieldDropdown.superClass_.init.call(this);var a=this.text_;this.text_=null;this.setText(a)}};\nBlockly.FieldDropdown.prototype.showEditor_=function(){Blockly.WidgetDiv.show(this,this.sourceBlock_.RTL,null);var a=this,b=new goog.ui.Menu;b.setRightToLeft(this.sourceBlock_.RTL);for(var c=this.getOptions_(),d=0;d<c.length;d++){var e=c[d][1],f=new goog.ui.MenuItem(c[d][0]);f.setRightToLeft(this.sourceBlock_.RTL);f.setValue(e);f.setCheckable(!0);b.addChild(f,!0);f.setChecked(e==this.value_)}goog.events.listen(b,goog.ui.Component.EventType.ACTION,function(b){if(b=b.target)b=b.getValue(),a.sourceBlock_&&\n(b=a.callValidator(b)),null!==b&&a.setValue(b);Blockly.WidgetDiv.hideIfOwner(a)});b.getHandler().listen(b.getElement(),goog.events.EventType.TOUCHSTART,function(a){this.getOwnerControl(a.target).handleMouseDown(a)});b.getHandler().listen(b.getElement(),goog.events.EventType.TOUCHEND,function(a){this.getOwnerControl(a.target).performActionInternal(a)});c=goog.dom.getViewportSize();d=goog.style.getViewportPageOffset(document);e=this.getAbsoluteXY_();f=this.getScaledBBox_();b.render(Blockly.WidgetDiv.DIV);\nvar g=b.getElement();Blockly.addClass_(g,"blocklyDropdownMenu");var h=goog.style.getSize(g);h.height=g.scrollHeight;e.y=e.y+h.height+f.height>=c.height+d.y?e.y-(h.height+2):e.y+f.height;this.sourceBlock_.RTL?(e.x+=f.width,e.x+=Blockly.FieldDropdown.CHECKMARK_OVERHANG,e.x<d.x+h.width&&(e.x=d.x+h.width)):(e.x-=Blockly.FieldDropdown.CHECKMARK_OVERHANG,e.x>c.width+d.x-h.width&&(e.x=c.width+d.x-h.width));Blockly.WidgetDiv.position(e.x,e.y,c,d,this.sourceBlock_.RTL);b.setAllowAutoFocus(!0);g.focus()};\nBlockly.FieldDropdown.prototype.trimOptions_=function(){this.suffixField=this.prefixField=null;var a=this.menuGenerator_;if(goog.isArray(a)&&!(2>a.length)){var b=a.map(function(a){return a[0]}),c=Blockly.shortestStringLength(b),d=Blockly.commonWordPrefix(b,c),e=Blockly.commonWordSuffix(b,c);if((d||e)&&!(c<=d+e)){d&&(this.prefixField=b[0].substring(0,d-1));e&&(this.suffixField=b[0].substr(1-e));b=[];for(c=0;c<a.length;c++){var f=a[c][0],g=a[c][1],f=f.substring(d,f.length-e);b[c]=[f,g]}this.menuGenerator_=\nb}}};Blockly.FieldDropdown.prototype.getOptions_=function(){return goog.isFunction(this.menuGenerator_)?this.menuGenerator_.call(this):this.menuGenerator_};Blockly.FieldDropdown.prototype.getValue=function(){return this.value_};\nBlockly.FieldDropdown.prototype.setValue=function(a){if(null!==a&&a!==this.value_){this.sourceBlock_&&Blockly.Events.isEnabled()&&Blockly.Events.fire(new Blockly.Events.Change(this.sourceBlock_,"field",this.name,this.value_,a));this.value_=a;for(var b=this.getOptions_(),c=0;c<b.length;c++)if(b[c][1]==a){this.setText(b[c][0]);return}this.setText(a)}};\nBlockly.FieldDropdown.prototype.setText=function(a){this.sourceBlock_&&this.arrow_&&(this.arrow_.style.fill=this.sourceBlock_.getColour());null!==a&&a!==this.text_&&(this.text_=a,this.updateTextNode_(),this.textElement_&&(this.sourceBlock_.RTL?this.textElement_.insertBefore(this.arrow_,this.textElement_.firstChild):this.textElement_.appendChild(this.arrow_)),this.sourceBlock_&&this.sourceBlock_.rendered&&(this.sourceBlock_.render(),this.sourceBlock_.bumpNeighbours_()))};\nBlockly.FieldDropdown.prototype.dispose=function(){Blockly.WidgetDiv.hideIfOwner(this);Blockly.FieldDropdown.superClass_.dispose.call(this)};Blockly.FieldImage=function(a,b,c,d){this.sourceBlock_=null;this.height_=Number(c);this.width_=Number(b);this.size_=new goog.math.Size(this.width_,this.height_+2*Blockly.BlockSvg.INLINE_PADDING_Y);this.text_=d||"";this.setValue(a)};goog.inherits(Blockly.FieldImage,Blockly.Field);Blockly.FieldImage.prototype.rectElement_=null;Blockly.FieldImage.prototype.EDITABLE=!1;\nBlockly.FieldImage.prototype.init=function(){if(!this.fieldGroup_){this.fieldGroup_=Blockly.createSvgElement("g",{},null);this.visible_||(this.fieldGroup_.style.display="none");this.imageElement_=Blockly.createSvgElement("image",{height:this.height_+"px",width:this.width_+"px"},this.fieldGroup_);this.setValue(this.src_);goog.userAgent.GECKO&&(this.rectElement_=Blockly.createSvgElement("rect",{height:this.height_+"px",width:this.width_+"px","fill-opacity":0},this.fieldGroup_));this.sourceBlock_.getSvgRoot().appendChild(this.fieldGroup_);\nvar a=this.rectElement_||this.imageElement_;a.tooltip=this.sourceBlock_;Blockly.Tooltip.bindMouseEvents(a)}};Blockly.FieldImage.prototype.dispose=function(){goog.dom.removeNode(this.fieldGroup_);this.rectElement_=this.imageElement_=this.fieldGroup_=null};Blockly.FieldImage.prototype.setTooltip=function(a){(this.rectElement_||this.imageElement_).tooltip=a};Blockly.FieldImage.prototype.getValue=function(){return this.src_};\nBlockly.FieldImage.prototype.setValue=function(a){null!==a&&(this.src_=a,this.imageElement_&&this.imageElement_.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",goog.isString(a)?a:""))};Blockly.FieldImage.prototype.setText=function(a){null!==a&&(this.text_=a)};Blockly.FieldImage.prototype.render_=function(){};Blockly.FieldNumber=function(a,b,c,d,e){a=String(a);Blockly.FieldNumber.superClass_.constructor.call(this,a,e);this.setConstraints(b,c,d)};goog.inherits(Blockly.FieldNumber,Blockly.FieldTextInput);Blockly.FieldNumber.prototype.setConstraints=function(a,b,c){c=parseFloat(c);this.precision_=isNaN(c)?0:c;a=parseFloat(a);this.min_=isNaN(a)?-Infinity:a;b=parseFloat(b);this.max_=isNaN(b)?Infinity:b;this.setValue(this.callValidator(this.getValue()))};\nBlockly.FieldNumber.prototype.classValidator=function(a){if(null===a)return null;a=String(a);a=a.replace(/O/ig,"0");a=a.replace(/,/g,"");a=parseFloat(a||0);if(isNaN(a))return null;this.precision_&&isFinite(a)&&(a=Math.round(a/this.precision_)*this.precision_);a=goog.math.clamp(a,this.min_,this.max_);return String(a)};Blockly.Variables={};Blockly.Variables.NAME_TYPE="VARIABLE";Blockly.Variables.allUsedVariables=function(a){var b;if(a instanceof Blockly.Block)b=a.getDescendants();else if(a.getAllBlocks)b=a.getAllBlocks();else throw"Not Block or Workspace: "+a;a=Object.create(null);for(var c=0;c<b.length;c++){var d=b[c].getVars();if(d)for(var e=0;e<d.length;e++){var f=d[e];f&&(a[f.toLowerCase()]=f)}}b=[];for(var g in a)b.push(a[g]);return b};\nBlockly.Variables.allVariables=function(a){a instanceof Blockly.Block&&console.warn("Deprecated call to Blockly.Variables.allVariables with a block instead of a workspace. You may want Blockly.Variables.allUsedVariables");return a.variableList};\nBlockly.Variables.flyoutCategory=function(a){a=a.variableList;a.sort(goog.string.caseInsensitiveCompare);var b=[],c=goog.dom.createDom("button");c.setAttribute("text",Blockly.Msg.NEW_VARIABLE);b.push(c);if(0<a.length){if(Blockly.Blocks.variables_set){c=goog.dom.createDom("block");c.setAttribute("type","variables_set");Blockly.Blocks.math_change?c.setAttribute("gap",8):c.setAttribute("gap",24);var d=goog.dom.createDom("field",null,a[0]);d.setAttribute("name","VAR");c.appendChild(d);b.push(c)}if(Blockly.Blocks.math_change){c=\ngoog.dom.createDom("block");c.setAttribute("type","math_change");Blockly.Blocks.variables_get&&c.setAttribute("gap",20);var e=goog.dom.createDom("value");e.setAttribute("name","DELTA");c.appendChild(e);d=goog.dom.createDom("field",null,a[0]);d.setAttribute("name","VAR");c.appendChild(d);d=goog.dom.createDom("shadow");d.setAttribute("type","math_number");e.appendChild(d);e=goog.dom.createDom("field",null,"1");e.setAttribute("name","NUM");d.appendChild(e);b.push(c)}for(e=0;e<a.length;e++)Blockly.Blocks.variables_get&&\n(c=goog.dom.createDom("block"),c.setAttribute("type","variables_get"),Blockly.Blocks.variables_set&&c.setAttribute("gap",8),d=goog.dom.createDom("field",null,a[e]),d.setAttribute("name","VAR"),c.appendChild(d),b.push(c))}return b};\nBlockly.Variables.generateUniqueName=function(a){a=a.variableList;var b="";if(a.length)for(var c=1,d=0,e="ijkmnopqrstuvwxyzabcdefgh".charAt(d);!b;){for(var f=!1,g=0;g<a.length;g++)if(a[g].toLowerCase()==e){f=!0;break}f?(d++,25==d&&(d=0,c++),e="ijkmnopqrstuvwxyzabcdefgh".charAt(d),1<c&&(e+=c)):b=e}else b="i";return b};\nBlockly.Variables.createVariable=function(a){for(;;){var b=Blockly.Variables.promptName(Blockly.Msg.NEW_VARIABLE_TITLE,"");if(b)if(-1!=a.variableIndexOf(b))window.alert(Blockly.Msg.VARIABLE_ALREADY_EXISTS.replace("%1",b.toLowerCase()));else{a.createVariable(b);break}else{b=null;break}}return b};Blockly.Variables.promptName=function(a,b){var c=window.prompt(a,b);c&&(c=c.replace(/[\\s\\xa0]+/g," ").replace(/^ | $/g,""),c==Blockly.Msg.RENAME_VARIABLE||c==Blockly.Msg.NEW_VARIABLE)&&(c=null);return c};Blockly.FieldVariable=function(a,b){Blockly.FieldVariable.superClass_.constructor.call(this,Blockly.FieldVariable.dropdownCreate,b);this.setValue(a||"")};goog.inherits(Blockly.FieldVariable,Blockly.FieldDropdown);\nBlockly.FieldVariable.prototype.init=function(){this.fieldGroup_||(Blockly.FieldVariable.superClass_.init.call(this),this.getValue()||this.setValue(Blockly.Variables.generateUniqueName(this.sourceBlock_.isInFlyout?this.sourceBlock_.workspace.targetWorkspace:this.sourceBlock_.workspace)),this.sourceBlock_.isInFlyout||this.sourceBlock_.workspace.createVariable(this.getValue()))};Blockly.FieldVariable.prototype.getValue=function(){return this.getText()};\nBlockly.FieldVariable.prototype.setValue=function(a){this.sourceBlock_&&Blockly.Events.isEnabled()&&Blockly.Events.fire(new Blockly.Events.Change(this.sourceBlock_,"field",this.name,this.value_,a));this.value_=a;this.setText(a)};\nBlockly.FieldVariable.dropdownCreate=function(){var a=this.sourceBlock_&&this.sourceBlock_.workspace?this.sourceBlock_.workspace.variableList.slice(0):[],b=this.getText();b&&-1==a.indexOf(b)&&a.push(b);a.sort(goog.string.caseInsensitiveCompare);a.push(Blockly.Msg.RENAME_VARIABLE);a.push(Blockly.Msg.DELETE_VARIABLE.replace("%1",b));for(var b=[],c=0;c<a.length;c++)b[c]=[a[c],a[c]];return b};\nBlockly.FieldVariable.prototype.classValidator=function(a){var b=this.sourceBlock_.workspace;if(a==Blockly.Msg.RENAME_VARIABLE){var c=this.getText();Blockly.hideChaff();(a=Blockly.Variables.promptName(Blockly.Msg.RENAME_VARIABLE_TITLE.replace("%1",c),c))&&b.renameVariable(c,a);return null}if(a==Blockly.Msg.DELETE_VARIABLE.replace("%1",this.getText()))return b.deleteVariable(this.getText()),null};Blockly.Generator=function(a){this.name_=a;this.FUNCTION_NAME_PLACEHOLDER_REGEXP_=new RegExp(this.FUNCTION_NAME_PLACEHOLDER_,"g")};Blockly.Generator.NAME_TYPE="generated_function";Blockly.Generator.prototype.INFINITE_LOOP_TRAP=null;Blockly.Generator.prototype.STATEMENT_PREFIX=null;Blockly.Generator.prototype.INDENT=" ";Blockly.Generator.prototype.COMMENT_WRAP=60;Blockly.Generator.prototype.ORDER_OVERRIDES=[];\nBlockly.Generator.prototype.workspaceToCode=function(a){a||(console.warn("No workspace specified in workspaceToCode call. Guessing."),a=Blockly.getMainWorkspace());var b=[];this.init(a);a=a.getTopBlocks(!0);for(var c=0,d;d=a[c];c++){var e=this.blockToCode(d);goog.isArray(e)&&(e=e[0]);e&&(d.outputConnection&&this.scrubNakedValue&&(e=this.scrubNakedValue(e)),b.push(e))}b=b.join("\\n");b=this.finish(b);b=b.replace(/^\\s+\\n/,"");b=b.replace(/\\n\\s+$/,"\\n");return b=b.replace(/[ \\t]+\\n/g,"\\n")};\nBlockly.Generator.prototype.prefixLines=function(a,b){return b+a.replace(/(?!\\n$)\\n/g,"\\n"+b)};Blockly.Generator.prototype.allNestedComments=function(a){var b=[];a=a.getDescendants();for(var c=0;c<a.length;c++){var d=a[c].getCommentText();d&&b.push(d)}b.length&&b.push("");return b.join("\\n")};\nBlockly.Generator.prototype.blockToCode=function(a){if(!a)return"";if(a.disabled)return this.blockToCode(a.getNextBlock());var b=this[a.type];goog.asserts.assertFunction(b,\'Language "%s" does not know how to generate code for block type "%s".\',this.name_,a.type);b=b.call(a,a);if(goog.isArray(b))return goog.asserts.assert(a.outputConnection,\'Expecting string from statement block "%s".\',a.type),[this.scrub_(a,b[0]),b[1]];if(goog.isString(b)){var c=a.id.replace(/\\$/g,"$$$$");this.STATEMENT_PREFIX&&(b=\nthis.STATEMENT_PREFIX.replace(/%1/g,"\'"+c+"\'")+b);return this.scrub_(a,b)}if(null===b)return"";goog.asserts.fail("Invalid code generated: %s",b)};\nBlockly.Generator.prototype.valueToCode=function(a,b,c){isNaN(c)&&goog.asserts.fail(\'Expecting valid order from block "%s".\',a.type);var d=a.getInputTargetBlock(b);if(!d)return"";b=this.blockToCode(d);if(""===b)return"";goog.asserts.assertArray(b,\'Expecting tuple from value block "%s".\',d.type);a=b[0];b=b[1];isNaN(b)&&goog.asserts.fail(\'Expecting valid order from value block "%s".\',d.type);if(!a)return"";var d=!1,e=Math.floor(c),f=Math.floor(b);if(e<=f&&(e!=f||0!=e&&99!=e))for(d=!0,e=0;e<this.ORDER_OVERRIDES.length;e++)if(this.ORDER_OVERRIDES[e][0]==\nc&&this.ORDER_OVERRIDES[e][1]==b){d=!1;break}d&&(a="("+a+")");return a};Blockly.Generator.prototype.statementToCode=function(a,b){var c=a.getInputTargetBlock(b),d=this.blockToCode(c);goog.asserts.assertString(d,\'Expecting code from statement block "%s".\',c&&c.type);d&&(d=this.prefixLines(d,this.INDENT));return d};\nBlockly.Generator.prototype.addLoopTrap=function(a,b){b=b.replace(/\\$/g,"$$$$");this.INFINITE_LOOP_TRAP&&(a=this.INFINITE_LOOP_TRAP.replace(/%1/g,"\'"+b+"\'")+a);this.STATEMENT_PREFIX&&(a+=this.prefixLines(this.STATEMENT_PREFIX.replace(/%1/g,"\'"+b+"\'"),this.INDENT));return a};Blockly.Generator.prototype.RESERVED_WORDS_="";Blockly.Generator.prototype.addReservedWords=function(a){this.RESERVED_WORDS_+=a+","};Blockly.Generator.prototype.FUNCTION_NAME_PLACEHOLDER_="{leCUI8hutHZI4480Dc}";\nBlockly.Generator.prototype.provideFunction_=function(a,b){if(!this.definitions_[a]){var c=this.variableDB_.getDistinctName(a,Blockly.Procedures.NAME_TYPE);this.functionNames_[a]=c;for(var c=b.join("\\n").replace(this.FUNCTION_NAME_PLACEHOLDER_REGEXP_,c),d;d!=c;)d=c,c=c.replace(/^(( )*) /gm,"$1"+this.INDENT);this.definitions_[a]=c}return this.functionNames_[a]};Blockly.Names=function(a,b){this.variablePrefix_=b||"";this.reservedDict_=Object.create(null);if(a)for(var c=a.split(","),d=0;d<c.length;d++)this.reservedDict_[c[d]]=!0;this.reset()};Blockly.Names.prototype.reset=function(){this.db_=Object.create(null);this.dbReverse_=Object.create(null)};\nBlockly.Names.prototype.getName=function(a,b){var c=a.toLowerCase()+"_"+b,d=b==Blockly.Variables.NAME_TYPE?this.variablePrefix_:"";if(c in this.db_)return d+this.db_[c];var e=this.getDistinctName(a,b);this.db_[c]=e.substr(d.length);return e};Blockly.Names.prototype.getDistinctName=function(a,b){for(var c=this.safeName_(a),d="";this.dbReverse_[c+d]||c+d in this.reservedDict_;)d=d?d+1:2;c+=d;this.dbReverse_[c]=!0;return(b==Blockly.Variables.NAME_TYPE?this.variablePrefix_:"")+c};\nBlockly.Names.prototype.safeName_=function(a){a?(a=encodeURI(a.replace(/ /g,"_")).replace(/[^\\w]/g,"_"),-1!="0123456789".indexOf(a[0])&&(a="my_"+a)):a="unnamed";return a};Blockly.Names.equals=function(a,b){return a.toLowerCase()==b.toLowerCase()};Blockly.Procedures={};Blockly.Procedures.NAME_TYPE="PROCEDURE";Blockly.Procedures.allProcedures=function(a){a=a.getAllBlocks();for(var b=[],c=[],d=0;d<a.length;d++)if(a[d].getProcedureDef){var e=a[d].getProcedureDef();e&&(e[2]?b.push(e):c.push(e))}c.sort(Blockly.Procedures.procTupleComparator_);b.sort(Blockly.Procedures.procTupleComparator_);return[c,b]};Blockly.Procedures.procTupleComparator_=function(a,b){return a[0].toLowerCase().localeCompare(b[0].toLowerCase())};\nBlockly.Procedures.findLegalName=function(a,b){if(b.isInFlyout)return a;for(;!Blockly.Procedures.isLegalName_(a,b.workspace,b);){var c=a.match(/^(.*?)(\\d+)$/);a=c?c[1]+(parseInt(c[2],10)+1):a+"2"}return a};Blockly.Procedures.isLegalName_=function(a,b,c){b=b.getAllBlocks();for(var d=0;d<b.length;d++)if(b[d]!=c&&b[d].getProcedureDef){var e=b[d].getProcedureDef();if(Blockly.Names.equals(e[0],a))return!1}return!0};\nBlockly.Procedures.rename=function(a){a=a.replace(/^[\\s\\xa0]+|[\\s\\xa0]+$/g,"");var b=Blockly.Procedures.findLegalName(a,this.sourceBlock_),c=this.text_;if(c!=a&&c!=b){a=this.sourceBlock_.workspace.getAllBlocks();for(var d=0;d<a.length;d++)a[d].renameProcedure&&a[d].renameProcedure(c,b)}return b};\nBlockly.Procedures.flyoutCategory=function(a){function b(a,b){for(var d=0;d<a.length;d++){var e=a[d][0],f=a[d][1],l=goog.dom.createDom("block");l.setAttribute("type",b);l.setAttribute("gap",16);var p=goog.dom.createDom("mutation");p.setAttribute("name",e);l.appendChild(p);for(e=0;e<f.length;e++){var m=goog.dom.createDom("arg");m.setAttribute("name",f[e]);p.appendChild(m)}c.push(l)}}var c=[];if(Blockly.Blocks.procedures_defnoreturn){var d=goog.dom.createDom("block");d.setAttribute("type","procedures_defnoreturn");\nd.setAttribute("gap",16);c.push(d)}Blockly.Blocks.procedures_defreturn&&(d=goog.dom.createDom("block"),d.setAttribute("type","procedures_defreturn"),d.setAttribute("gap",16),c.push(d));Blockly.Blocks.procedures_ifreturn&&(d=goog.dom.createDom("block"),d.setAttribute("type","procedures_ifreturn"),d.setAttribute("gap",16),c.push(d));c.length&&c[c.length-1].setAttribute("gap",24);a=Blockly.Procedures.allProcedures(a);b(a[0],"procedures_callnoreturn");b(a[1],"procedures_callreturn");return c};\nBlockly.Procedures.getCallers=function(a,b){for(var c=[],d=b.getAllBlocks(),e=0;e<d.length;e++)if(d[e].getProcedureCall){var f=d[e].getProcedureCall();f&&Blockly.Names.equals(f,a)&&c.push(d[e])}return c};\nBlockly.Procedures.mutateCallers=function(a){var b=Blockly.Events.recordUndo,c=a.getProcedureDef()[0],d=a.mutationToDom(!0);a=Blockly.Procedures.getCallers(c,a.workspace);for(var c=0,e;e=a[c];c++){var f=e.mutationToDom(),f=f&&Blockly.Xml.domToText(f);e.domToMutation(d);var g=e.mutationToDom(),g=g&&Blockly.Xml.domToText(g);f!=g&&(Blockly.Events.recordUndo=!1,Blockly.Events.fire(new Blockly.Events.Change(e,"mutation",null,f,g)),Blockly.Events.recordUndo=b)}};\nBlockly.Procedures.getDefinition=function(a,b){for(var c=b.getTopBlocks(!1),d=0;d<c.length;d++)if(c[d].getProcedureDef){var e=c[d].getProcedureDef();if(e&&Blockly.Names.equals(e[0],a))return c[d]}return null};Blockly.FlyoutButton=function(a,b,c){this.workspace_=a;this.targetWorkspace_=b;this.text_=c;this.position_=new goog.math.Coordinate(0,0)};Blockly.FlyoutButton.MARGIN=5;Blockly.FlyoutButton.prototype.width=0;Blockly.FlyoutButton.prototype.height=0;\nBlockly.FlyoutButton.prototype.createDom=function(){this.svgGroup_=Blockly.createSvgElement("g",{"class":"blocklyFlyoutButton"},this.workspace_.getCanvas());var a=Blockly.createSvgElement("rect",{"class":"blocklyFlyoutButtonShadow",rx:4,ry:4,x:1,y:1},this.svgGroup_),b=Blockly.createSvgElement("rect",{"class":"blocklyFlyoutButtonBackground",rx:4,ry:4},this.svgGroup_),c=Blockly.createSvgElement("text",{"class":"blocklyText",x:0,y:0,"text-anchor":"middle"},this.svgGroup_);c.textContent=this.text_;this.width=\nc.getComputedTextLength()+2*Blockly.FlyoutButton.MARGIN;this.height=20;a.setAttribute("width",this.width);a.setAttribute("height",this.height);b.setAttribute("width",this.width);b.setAttribute("height",this.height);c.setAttribute("x",this.width/2);c.setAttribute("y",this.height-Blockly.FlyoutButton.MARGIN);this.updateTransform_();return this.svgGroup_};Blockly.FlyoutButton.prototype.show=function(){this.updateTransform_();this.svgGroup_.setAttribute("display","block")};\nBlockly.FlyoutButton.prototype.updateTransform_=function(){this.svgGroup_.setAttribute("transform","translate("+this.position_.x+","+this.position_.y+")")};Blockly.FlyoutButton.prototype.moveTo=function(a,b){this.position_.x=a;this.position_.y=b;this.updateTransform_()};Blockly.FlyoutButton.prototype.dispose=function(){this.svgGroup_&&(goog.dom.removeNode(this.svgGroup_),this.svgGroup_=null);this.targetWorkspace_=this.workspace_=null};\nBlockly.FlyoutButton.prototype.onMouseUp=function(a){a.preventDefault();a.stopPropagation();Blockly.Flyout.terminateDrag_();Blockly.Variables.createVariable(this.targetWorkspace_)};Blockly.Flyout=function(a){a.getMetrics=this.getMetrics_.bind(this);a.setMetrics=this.setMetrics_.bind(this);this.workspace_=new Blockly.WorkspaceSvg(a);this.workspace_.isFlyout=!0;this.RTL=!!a.RTL;this.horizontalLayout_=a.horizontalLayout;this.toolboxPosition_=a.toolboxPosition;this.eventWrappers_=[];this.backgroundButtons_=[];this.buttons_=[];this.listeners_=[];this.permanentlyDisabled_=[];this.startDragMouseX_=this.startDragMouseY_=0};Blockly.Flyout.startFlyout_=null;\nBlockly.Flyout.startDownEvent_=null;Blockly.Flyout.startBlock_=null;Blockly.Flyout.onMouseUpWrapper_=null;Blockly.Flyout.onMouseMoveWrapper_=null;Blockly.Flyout.onMouseMoveBlockWrapper_=null;Blockly.Flyout.prototype.autoClose=!0;Blockly.Flyout.prototype.CORNER_RADIUS=8;Blockly.Flyout.prototype.DRAG_RADIUS=10;Blockly.Flyout.prototype.MARGIN=Blockly.Flyout.prototype.CORNER_RADIUS;Blockly.Flyout.prototype.GAP_X=3*Blockly.Flyout.prototype.MARGIN;Blockly.Flyout.prototype.GAP_Y=3*Blockly.Flyout.prototype.MARGIN;\nBlockly.Flyout.prototype.SCROLLBAR_PADDING=2;Blockly.Flyout.prototype.width_=0;Blockly.Flyout.prototype.height_=0;Blockly.Flyout.prototype.dragMode_=Blockly.DRAG_NONE;Blockly.Flyout.prototype.dragAngleRange_=70;Blockly.Flyout.prototype.createDom=function(){this.svgGroup_=Blockly.createSvgElement("g",{"class":"blocklyFlyout"},null);this.svgBackground_=Blockly.createSvgElement("path",{"class":"blocklyFlyoutBackground"},this.svgGroup_);this.svgGroup_.appendChild(this.workspace_.createDom());return this.svgGroup_};\nBlockly.Flyout.prototype.init=function(a){this.targetWorkspace_=a;this.workspace_.targetWorkspace=a;this.scrollbar_=new Blockly.Scrollbar(this.workspace_,this.horizontalLayout_,!1);this.hide();Array.prototype.push.apply(this.eventWrappers_,Blockly.bindEventWithChecks_(this.svgGroup_,"wheel",this,this.wheel_));this.autoClose||(this.filterWrapper_=this.filterForCapacity_.bind(this),this.targetWorkspace_.addChangeListener(this.filterWrapper_));Array.prototype.push.apply(this.eventWrappers_,Blockly.bindEventWithChecks_(this.svgGroup_,\n"mousedown",this,this.onMouseDown_))};\nBlockly.Flyout.prototype.dispose=function(){this.hide();Blockly.unbindEvent_(this.eventWrappers_);this.filterWrapper_&&(this.targetWorkspace_.removeChangeListener(this.filterWrapper_),this.filterWrapper_=null);this.scrollbar_&&(this.scrollbar_.dispose(),this.scrollbar_=null);this.workspace_&&(this.workspace_.targetWorkspace=null,this.workspace_.dispose(),this.workspace_=null);this.svgGroup_&&(goog.dom.removeNode(this.svgGroup_),this.svgGroup_=null);this.targetWorkspace_=this.svgBackground_=null};\nBlockly.Flyout.prototype.getWidth=function(){return this.width_};Blockly.Flyout.prototype.getHeight=function(){return this.height_};\nBlockly.Flyout.prototype.getMetrics_=function(){if(!this.isVisible())return null;try{var a=this.workspace_.getCanvas().getBBox()}catch(f){a={height:0,y:0,width:0,x:0}}var b=this.SCROLLBAR_PADDING,c=this.SCROLLBAR_PADDING;if(this.horizontalLayout_){this.toolboxPosition_==Blockly.TOOLBOX_AT_BOTTOM&&(b=0);var d=this.height_;this.toolboxPosition_==Blockly.TOOLBOX_AT_TOP&&(d+=this.MARGIN-this.SCROLLBAR_PADDING);var e=this.width_-2*this.SCROLLBAR_PADDING}else c=0,d=this.height_-2*this.SCROLLBAR_PADDING,\ne=this.width_,this.RTL||(e-=this.SCROLLBAR_PADDING);return{viewHeight:d,viewWidth:e,contentHeight:(a.height+2*this.MARGIN)*this.workspace_.scale,contentWidth:(a.width+2*this.MARGIN)*this.workspace_.scale,viewTop:-this.workspace_.scrollY,viewLeft:-this.workspace_.scrollX,contentTop:a.y,contentLeft:a.x,absoluteTop:b,absoluteLeft:c}};\nBlockly.Flyout.prototype.setMetrics_=function(a){var b=this.getMetrics_();b&&(!this.horizontalLayout_&&goog.isNumber(a.y)?this.workspace_.scrollY=-b.contentHeight*a.y:this.horizontalLayout_&&goog.isNumber(a.x)&&(this.workspace_.scrollX=-b.contentWidth*a.x),this.workspace_.translate(this.workspace_.scrollX+b.absoluteLeft,this.workspace_.scrollY+b.absoluteTop))};\nBlockly.Flyout.prototype.position=function(){if(this.isVisible()){var a=this.targetWorkspace_.getMetrics();if(a){var b=this.horizontalLayout_?a.viewWidth:this.width_,b=b-this.CORNER_RADIUS;this.toolboxPosition_==Blockly.TOOLBOX_AT_RIGHT&&(b*=-1);this.setBackgroundPath_(b,this.horizontalLayout_?this.height_:a.viewHeight);b=a.absoluteLeft;this.toolboxPosition_==Blockly.TOOLBOX_AT_RIGHT&&(b+=a.viewWidth,b-=this.width_);var c=a.absoluteTop;this.toolboxPosition_==Blockly.TOOLBOX_AT_BOTTOM&&(c+=a.viewHeight,\nc-=this.height_);this.svgGroup_.setAttribute("transform","translate("+b+","+c+")");this.horizontalLayout_?this.width_=a.viewWidth:this.height_=a.viewHeight;this.scrollbar_&&this.scrollbar_.resize()}}};Blockly.Flyout.prototype.setBackgroundPath_=function(a,b){this.horizontalLayout_?this.setBackgroundPathHorizontal_(a,b):this.setBackgroundPathVertical_(a,b)};\nBlockly.Flyout.prototype.setBackgroundPathVertical_=function(a,b){var c=this.toolboxPosition_==Blockly.TOOLBOX_AT_RIGHT,d=["M "+(c?this.width_:0)+",0"];d.push("h",a);d.push("a",this.CORNER_RADIUS,this.CORNER_RADIUS,0,0,c?0:1,c?-this.CORNER_RADIUS:this.CORNER_RADIUS,this.CORNER_RADIUS);d.push("v",Math.max(0,b-2*this.CORNER_RADIUS));d.push("a",this.CORNER_RADIUS,this.CORNER_RADIUS,0,0,c?0:1,c?this.CORNER_RADIUS:-this.CORNER_RADIUS,this.CORNER_RADIUS);d.push("h",-a);d.push("z");this.svgBackground_.setAttribute("d",\nd.join(" "))};\nBlockly.Flyout.prototype.setBackgroundPathHorizontal_=function(a,b){var c=this.toolboxPosition_==Blockly.TOOLBOX_AT_TOP,d=["M 0,"+(c?0:this.CORNER_RADIUS)];c?(d.push("h",a+this.CORNER_RADIUS),d.push("v",b),d.push("a",this.CORNER_RADIUS,this.CORNER_RADIUS,0,0,1,-this.CORNER_RADIUS,this.CORNER_RADIUS),d.push("h",-1*(a-this.CORNER_RADIUS)),d.push("a",this.CORNER_RADIUS,this.CORNER_RADIUS,0,0,1,-this.CORNER_RADIUS,-this.CORNER_RADIUS)):(d.push("a",this.CORNER_RADIUS,this.CORNER_RADIUS,0,0,1,this.CORNER_RADIUS,\n-this.CORNER_RADIUS),d.push("h",a-this.CORNER_RADIUS),d.push("a",this.CORNER_RADIUS,this.CORNER_RADIUS,0,0,1,this.CORNER_RADIUS,this.CORNER_RADIUS),d.push("v",b-this.CORNER_RADIUS),d.push("h",-a-this.CORNER_RADIUS));d.push("z");this.svgBackground_.setAttribute("d",d.join(" "))};Blockly.Flyout.prototype.scrollToStart=function(){this.scrollbar_.set(this.horizontalLayout_&&this.RTL?Infinity:0)};\nBlockly.Flyout.prototype.wheel_=function(a){var b=this.horizontalLayout_?a.deltaX:a.deltaY;if(b){goog.userAgent.GECKO&&(b*=10);var c=this.getMetrics_(),b=this.horizontalLayout_?c.viewLeft+b:c.viewTop+b,b=Math.min(b,this.horizontalLayout_?c.contentWidth-c.viewWidth:c.contentHeight-c.viewHeight),b=Math.max(b,0);this.scrollbar_.set(b)}a.preventDefault();a.stopPropagation()};Blockly.Flyout.prototype.isVisible=function(){return this.svgGroup_&&"block"==this.svgGroup_.style.display};\nBlockly.Flyout.prototype.hide=function(){if(this.isVisible()){this.svgGroup_.style.display="none";for(var a=0,b;b=this.listeners_[a];a++)Blockly.unbindEvent_(b);this.listeners_.length=0;this.reflowWrapper_&&(this.workspace_.removeChangeListener(this.reflowWrapper_),this.reflowWrapper_=null)}};\nBlockly.Flyout.prototype.show=function(a){this.hide();this.clearOldBlocks_();a==Blockly.Variables.NAME_TYPE?a=Blockly.Variables.flyoutCategory(this.workspace_.targetWorkspace):a==Blockly.Procedures.NAME_TYPE&&(a=Blockly.Procedures.flyoutCategory(this.workspace_.targetWorkspace));this.svgGroup_.style.display="block";for(var b=[],c=[],d=this.permanentlyDisabled_.length=0,e;e=a[d];d++)if(e.tagName){var f=e.tagName.toUpperCase(),g=this.horizontalLayout_?this.GAP_X:this.GAP_Y;"BLOCK"==f?(f=Blockly.Xml.domToBlock(e,\nthis.workspace_),f.disabled&&this.permanentlyDisabled_.push(f),b.push({type:"block",block:f}),e=parseInt(e.getAttribute("gap"),10),c.push(isNaN(e)?g:e)):"SEP"==e.tagName.toUpperCase()?(e=parseInt(e.getAttribute("gap"),10),!isNaN(e)&&0<c.length?c[c.length-1]=e:c.push(g)):"BUTTON"==f&&(e=e.getAttribute("text"),e=new Blockly.FlyoutButton(this.workspace_,this.targetWorkspace_,e),b.push({type:"button",button:e}),c.push(g))}this.layout_(b,c);this.listeners_.push(Blockly.bindEventWithChecks_(this.svgBackground_,\n"mouseover",this,function(){for(var a=this.workspace_.getTopBlocks(!1),b=0,c;c=a[b];b++)c.removeSelect()}));this.horizontalLayout_?this.height_=0:this.width_=0;this.reflow();this.filterForCapacity_();this.position();this.reflowWrapper_=this.reflow.bind(this);this.workspace_.addChangeListener(this.reflowWrapper_)};\nBlockly.Flyout.prototype.layout_=function(a,b){this.workspace_.scale=this.targetWorkspace_.scale;var c=this.MARGIN,d=this.RTL?c:c+Blockly.BlockSvg.TAB_WIDTH;this.horizontalLayout_&&this.RTL&&(a=a.reverse());for(var e=0,f;f=a[e];e++)if("block"==f.type){f=f.block;for(var g=f.getDescendants(),h=0,k;k=g[h];h++)k.isInFlyout=!0;f.render();g=f.getSvgRoot();h=f.getHeightWidth();k=f.outputConnection?Blockly.BlockSvg.TAB_WIDTH:0;this.horizontalLayout_&&(d+=k);f.moveBy(this.horizontalLayout_&&this.RTL?d+h.width-\nk:d,c);this.horizontalLayout_?d+=h.width+b[e]-k:c+=h.height+b[e];h=Blockly.createSvgElement("rect",{"fill-opacity":0},null);h.tooltip=f;Blockly.Tooltip.bindMouseEvents(h);this.workspace_.getCanvas().insertBefore(h,f.getSvgRoot());f.flyoutRect_=h;this.backgroundButtons_[e]=h;this.addBlockListeners_(g,f,h)}else"button"==f.type&&(f=f.button,g=f.createDom(),f.moveTo(d,c),f.show(),Blockly.bindEventWithChecks_(g,"mouseup",f,f.onMouseUp),this.buttons_.push(f),this.horizontalLayout_?d+=f.width+b[e]:c+=f.height+\nb[e])};Blockly.Flyout.prototype.clearOldBlocks_=function(){for(var a=this.workspace_.getTopBlocks(!1),b=0,c;c=a[b];b++)c.workspace==this.workspace_&&c.dispose(!1,!1);for(b=0;a=this.backgroundButtons_[b];b++)goog.dom.removeNode(a);for(b=this.backgroundButtons_.length=0;a=this.buttons_[b];b++)a.dispose();this.buttons_.length=0};\nBlockly.Flyout.prototype.addBlockListeners_=function(a,b,c){this.listeners_.push(Blockly.bindEventWithChecks_(a,"mousedown",null,this.blockMouseDown_(b)));this.listeners_.push(Blockly.bindEventWithChecks_(c,"mousedown",null,this.blockMouseDown_(b)));this.listeners_.push(Blockly.bindEvent_(a,"mouseover",b,b.addSelect));this.listeners_.push(Blockly.bindEvent_(a,"mouseout",b,b.removeSelect));this.listeners_.push(Blockly.bindEvent_(c,"mouseover",b,b.addSelect));this.listeners_.push(Blockly.bindEvent_(c,\n"mouseout",b,b.removeSelect))};Blockly.Flyout.blockRightClick_=function(a,b){Blockly.terminateDrag_();Blockly.hideChaff(!0);b.showContextMenu_(a);Blockly.Touch.clearTouchIdentifier()};\nBlockly.Flyout.prototype.blockMouseDown_=function(a){var b=this;return function(c){Blockly.isRightButton(c)?Blockly.Flyout.blockRightClick_(c,a):(Blockly.terminateDrag_(),Blockly.hideChaff(!0),Blockly.Css.setCursor(Blockly.Css.Cursor.CLOSED),b.startDragMouseY_=c.clientY,b.startDragMouseX_=c.clientX,Blockly.Flyout.startDownEvent_=c,Blockly.Flyout.startBlock_=a,Blockly.Flyout.startFlyout_=b,Blockly.Flyout.onMouseUpWrapper_=Blockly.bindEventWithChecks_(document,"mouseup",b,b.onMouseUp_),Blockly.Flyout.onMouseMoveBlockWrapper_=\nBlockly.bindEventWithChecks_(document,"mousemove",b,b.onMouseMoveBlock_));c.stopPropagation();c.preventDefault()}};\nBlockly.Flyout.prototype.onMouseDown_=function(a){Blockly.isRightButton(a)?Blockly.Touch.clearTouchIdentifier():(Blockly.hideChaff(!0),this.dragMode_=Blockly.DRAG_FREE,this.startDragMouseY_=a.clientY,this.startDragMouseX_=a.clientX,Blockly.Flyout.startFlyout_=this,Blockly.Flyout.onMouseMoveWrapper_=Blockly.bindEventWithChecks_(document,"mousemove",this,this.onMouseMove_),Blockly.Flyout.onMouseUpWrapper_=Blockly.bindEventWithChecks_(document,"mouseup",this,Blockly.Flyout.terminateDrag_),a.preventDefault(),\na.stopPropagation())};Blockly.Flyout.prototype.onMouseUp_=function(a){this.workspace_.isDragging()||(Blockly.Touch.clearTouchIdentifier(),this.autoClose?this.createBlockFunc_(Blockly.Flyout.startBlock_)(Blockly.Flyout.startDownEvent_):Blockly.WidgetDiv.isVisible()||Blockly.Events.fire(new Blockly.Events.Ui(Blockly.Flyout.startBlock_,"click",void 0,void 0)));Blockly.terminateDrag_()};\nBlockly.Flyout.prototype.onMouseMove_=function(a){var b=this.getMetrics_();if(this.horizontalLayout_){if(!(0>b.contentWidth-b.viewWidth)){var c=a.clientX-this.startDragMouseX_;this.startDragMouseX_=a.clientX;a=b.viewLeft-c;a=goog.math.clamp(a,0,b.contentWidth-b.viewWidth);this.scrollbar_.set(a)}}else 0>b.contentHeight-b.viewHeight||(c=a.clientY-this.startDragMouseY_,this.startDragMouseY_=a.clientY,a=b.viewTop-c,a=goog.math.clamp(a,0,b.contentHeight-b.viewHeight),this.scrollbar_.set(a))};\nBlockly.Flyout.prototype.onMouseMoveBlock_=function(a){"mousemove"==a.type&&1>=a.clientX&&0==a.clientY&&0==a.button||(this.determineDragIntention_(a.clientX-Blockly.Flyout.startDownEvent_.clientX,a.clientY-Blockly.Flyout.startDownEvent_.clientY)?(Blockly.longStop_(),this.createBlockFunc_(Blockly.Flyout.startBlock_)(Blockly.Flyout.startDownEvent_)):this.dragMode_==Blockly.DRAG_FREE&&(Blockly.longStop_(),this.onMouseMove_(a)));a.stopPropagation()};\nBlockly.Flyout.prototype.determineDragIntention_=function(a,b){if(this.dragMode_==Blockly.DRAG_FREE)return!1;if(Math.sqrt(a*a+b*b)<this.DRAG_RADIUS)return this.dragMode_=Blockly.DRAG_STICKY,!1;if(this.isDragTowardWorkspace_(a,b)||!this.scrollbar_.isVisible())return!0;this.dragMode_=Blockly.DRAG_FREE;return!1};\nBlockly.Flyout.prototype.isDragTowardWorkspace_=function(a,b){var c=Math.atan2(b,a)/Math.PI*180,d=!1,e=this.dragAngleRange_;if(this.horizontalLayout_)this.toolboxPosition_==Blockly.TOOLBOX_AT_TOP?c<90+e&&c>90-e&&(d=!0):c>-90-e&&c<-90+e&&(d=!0);else if(this.toolboxPosition_==Blockly.TOOLBOX_AT_LEFT)c<e&&c>-e&&(d=!0);else if(c<-180+e||c>180-e)d=!0;return d};\nBlockly.Flyout.prototype.createBlockFunc_=function(a){var b=this;return function(c){if(!Blockly.isRightButton(c)&&!a.disabled){Blockly.Events.disable();try{var d=b.placeNewBlock_(a)}finally{Blockly.Events.enable()}Blockly.Events.isEnabled()&&(Blockly.Events.setGroup(!0),Blockly.Events.fire(new Blockly.Events.Create(d)));b.autoClose?b.hide():b.filterForCapacity_();d.onMouseDown_(c);Blockly.dragMode_=Blockly.DRAG_FREE;d.setDragging_(!0)}}};\nBlockly.Flyout.prototype.placeNewBlock_=function(a){var b=this.targetWorkspace_,c=a.getSvgRoot();if(!c)throw"originBlock is not rendered.";var c=Blockly.getSvgXY_(c,b),d=this.workspace_.scrollX,e=this.workspace_.scale;c.x+=d/e-d;this.toolboxPosition_==Blockly.TOOLBOX_AT_RIGHT&&(d=b.getMetrics().viewWidth-this.width_,e=b.scale,c.x+=d/e-d);d=this.workspace_.scrollY;e=this.workspace_.scale;c.y+=d/e-d;this.toolboxPosition_==Blockly.TOOLBOX_AT_BOTTOM&&(d=b.getMetrics().viewHeight-this.height_,e=b.scale,\nc.y+=d/e-d);a=Blockly.Xml.blockToDom(a);a=Blockly.Xml.domToBlock(a,b);e=a.getSvgRoot();if(!e)throw"block is not rendered.";e=Blockly.getSvgXY_(e,b);e.x+=b.scrollX/b.scale-b.scrollX;e.y+=b.scrollY/b.scale-b.scrollY;b.toolbox_&&!b.scrollbar&&(e.x+=b.toolbox_.getWidth()/b.scale,e.y+=b.toolbox_.getHeight()/b.scale);a.moveBy(c.x-e.x,c.y-e.y);return a};\nBlockly.Flyout.prototype.filterForCapacity_=function(){for(var a=this.targetWorkspace_.remainingCapacity(),b=this.workspace_.getTopBlocks(!1),c=0,d;d=b[c];c++)if(-1==this.permanentlyDisabled_.indexOf(d)){var e=d.getDescendants();d.setDisabled(e.length>a)}};\nBlockly.Flyout.prototype.getClientRect=function(){if(!this.svgGroup_)return null;var a=this.svgGroup_.getBoundingClientRect(),b=a.left,c=a.top,d=a.width,a=a.height;return this.toolboxPosition_==Blockly.TOOLBOX_AT_TOP?new goog.math.Rect(-1E9,c-1E9,2E9,1E9+a):this.toolboxPosition_==Blockly.TOOLBOX_AT_BOTTOM?new goog.math.Rect(-1E9,c,2E9,1E9+a):this.toolboxPosition_==Blockly.TOOLBOX_AT_LEFT?new goog.math.Rect(b-1E9,-1E9,1E9+d,2E9):new goog.math.Rect(b,-1E9,1E9+d,2E9)};\nBlockly.Flyout.terminateDrag_=function(){Blockly.Flyout.startFlyout_&&(Blockly.Flyout.startFlyout_.dragMode_==Blockly.DRAG_FREE&&Blockly.Touch.clearTouchIdentifier(),Blockly.Flyout.startFlyout_.dragMode_=Blockly.DRAG_NONE,Blockly.Flyout.startFlyout_=null);Blockly.Flyout.onMouseUpWrapper_&&(Blockly.unbindEvent_(Blockly.Flyout.onMouseUpWrapper_),Blockly.Flyout.onMouseUpWrapper_=null);Blockly.Flyout.onMouseMoveBlockWrapper_&&(Blockly.unbindEvent_(Blockly.Flyout.onMouseMoveBlockWrapper_),Blockly.Flyout.onMouseMoveBlockWrapper_=\nnull);Blockly.Flyout.onMouseMoveWrapper_&&(Blockly.unbindEvent_(Blockly.Flyout.onMouseMoveWrapper_),Blockly.Flyout.onMouseMoveWrapper_=null);Blockly.Flyout.startDownEvent_=null;Blockly.Flyout.startBlock_=null};\nBlockly.Flyout.prototype.reflowHorizontal=function(a){this.workspace_.scale=this.targetWorkspace_.scale;for(var b=0,c=0,d;d=a[c];c++)b=Math.max(b,d.getHeightWidth().height);b+=1.5*this.MARGIN;b*=this.workspace_.scale;b+=Blockly.Scrollbar.scrollbarThickness;if(this.height_!=b){for(c=0;d=a[c];c++){var e=d.getHeightWidth();if(d.flyoutRect_){d.flyoutRect_.setAttribute("width",e.width);d.flyoutRect_.setAttribute("height",e.height);var f=d.outputConnection?Blockly.BlockSvg.TAB_WIDTH:0,g=d.getRelativeToSurfaceXY();\nd.flyoutRect_.setAttribute("y",g.y);d.flyoutRect_.setAttribute("x",this.RTL?g.x-e.width+f:g.x-f);(e=d.startHat_?Blockly.BlockSvg.START_HAT_HEIGHT:0)&&d.moveBy(0,e);d.flyoutRect_.setAttribute("y",g.y)}}this.height_=b;this.targetWorkspace_.resize()}};\nBlockly.Flyout.prototype.reflowVertical=function(a){this.workspace_.scale=this.targetWorkspace_.scale;for(var b=0,c=0,d;d=a[c];c++){var e=d.getHeightWidth().width;d.outputConnection&&(e-=Blockly.BlockSvg.TAB_WIDTH);b=Math.max(b,e)}for(c=0;d=this.buttons_[c];c++)b=Math.max(b,d.width);b+=1.5*this.MARGIN+Blockly.BlockSvg.TAB_WIDTH;b*=this.workspace_.scale;b+=Blockly.Scrollbar.scrollbarThickness;if(this.width_!=b){for(c=0;d=a[c];c++){e=d.getHeightWidth();if(this.RTL){var f=d.getRelativeToSurfaceXY().x,\ng=b/this.workspace_.scale-this.MARGIN,g=g-Blockly.BlockSvg.TAB_WIDTH;d.moveBy(g-f,0)}d.flyoutRect_&&(d.flyoutRect_.setAttribute("width",e.width),d.flyoutRect_.setAttribute("height",e.height),g=d.outputConnection?Blockly.BlockSvg.TAB_WIDTH:0,f=d.getRelativeToSurfaceXY(),d.flyoutRect_.setAttribute("x",this.RTL?f.x-e.width+g:f.x-g),(e=d.startHat_?Blockly.BlockSvg.START_HAT_HEIGHT:0)&&d.moveBy(0,e),d.flyoutRect_.setAttribute("y",f.y))}this.width_=b;this.targetWorkspace_.resize()}};\nBlockly.Flyout.prototype.reflow=function(){this.reflowWrapper_&&this.workspace_.removeChangeListener(this.reflowWrapper_);var a=this.workspace_.getTopBlocks(!1);this.horizontalLayout_?this.reflowHorizontal(a):this.reflowVertical(a);this.reflowWrapper_&&this.workspace_.addChangeListener(this.reflowWrapper_)};Blockly.Toolbox=function(a){this.workspace_=a;this.RTL=a.options.RTL;this.horizontalLayout_=a.options.horizontalLayout;this.toolboxPosition=a.options.toolboxPosition;this.config_={indentWidth:19,cssRoot:"blocklyTreeRoot",cssHideRoot:"blocklyHidden",cssItem:"",cssTreeRow:"blocklyTreeRow",cssItemLabel:"blocklyTreeLabel",cssTreeIcon:"blocklyTreeIcon",cssExpandedFolderIcon:"blocklyTreeIconOpen",cssFileIcon:"blocklyTreeIconNone",cssSelectedRow:"blocklyTreeSelected"};this.treeSeparatorConfig_={cssTreeRow:"blocklyTreeSeparator"};\nthis.horizontalLayout_&&(this.config_.cssTreeRow+=a.RTL?" blocklyHorizontalTreeRtl":" blocklyHorizontalTree",this.treeSeparatorConfig_.cssTreeRow="blocklyTreeSeparatorHorizontal "+(a.RTL?"blocklyHorizontalTreeRtl":"blocklyHorizontalTree"),this.config_.cssTreeIcon="")};Blockly.Toolbox.prototype.width=0;Blockly.Toolbox.prototype.height=0;Blockly.Toolbox.prototype.selectedOption_=null;Blockly.Toolbox.prototype.lastCategory_=null;\nBlockly.Toolbox.prototype.init=function(){var a=this.workspace_,b=this.workspace_.getParentSvg();this.HtmlDiv=goog.dom.createDom("DIV","blocklyToolboxDiv");this.HtmlDiv.setAttribute("dir",a.RTL?"RTL":"LTR");b.parentNode.insertBefore(this.HtmlDiv,b);Blockly.bindEventWithChecks_(this.HtmlDiv,"mousedown",this,function(a){Blockly.isRightButton(a)||a.target==this.HtmlDiv?Blockly.hideChaff(!1):Blockly.hideChaff(!0);Blockly.Touch.clearTouchIdentifier()});this.flyout_=new Blockly.Flyout({disabledPatternId:a.options.disabledPatternId,\nparentWorkspace:a,RTL:a.RTL,oneBasedIndex:a.options.oneBasedIndex,horizontalLayout:a.horizontalLayout,toolboxPosition:a.options.toolboxPosition});goog.dom.insertSiblingAfter(this.flyout_.createDom(),a.svgGroup_);this.flyout_.init(a);this.config_.cleardotPath=a.options.pathToMedia+"1x1.gif";this.config_.cssCollapsedFolderIcon="blocklyTreeIconClosed"+(a.RTL?"Rtl":"Ltr");this.tree_=b=new Blockly.Toolbox.TreeControl(this,this.config_);b.setShowRootNode(!1);b.setShowLines(!1);b.setShowExpandIcons(!1);\nb.setSelectedItem(null);a=this.populate_(a.options.languageTree);b.render(this.HtmlDiv);a&&b.setSelectedItem(a);this.addColour_();this.position()};Blockly.Toolbox.prototype.dispose=function(){this.flyout_.dispose();this.tree_.dispose();goog.dom.removeNode(this.HtmlDiv);this.lastCategory_=this.workspace_=null};Blockly.Toolbox.prototype.getWidth=function(){return this.width};Blockly.Toolbox.prototype.getHeight=function(){return this.height};\nBlockly.Toolbox.prototype.position=function(){var a=this.HtmlDiv;if(a){var b=this.workspace_.getParentSvg();goog.style.getPageOffset(b);b=Blockly.svgSize(b);this.horizontalLayout_?(a.style.left="0",a.style.height="auto",a.style.width=b.width+"px",this.height=a.offsetHeight,this.toolboxPosition==Blockly.TOOLBOX_AT_TOP?a.style.top="0":a.style.bottom="0"):(this.toolboxPosition==Blockly.TOOLBOX_AT_RIGHT?a.style.right="0":a.style.left="0",a.style.height=b.height+"px",this.width=a.offsetWidth);this.flyout_.position()}};\nBlockly.Toolbox.prototype.populate_=function(a){this.tree_.removeChildren();this.tree_.blocks=[];this.hasColours_=!1;a=this.syncTrees_(a,this.tree_,this.workspace_.options.pathToMedia);if(this.tree_.blocks.length)throw"Toolbox cannot have both blocks and categories in the root level.";this.workspace_.resizeContents();return a};\nBlockly.Toolbox.prototype.syncTrees_=function(a,b,c){for(var d=null,e=null,f=0,g;g=a.childNodes[f];f++)if(g.tagName)switch(g.tagName.toUpperCase()){case "CATEGORY":e=this.tree_.createNode(g.getAttribute("name"));e.blocks=[];b.add(e);var h=g.getAttribute("custom");h?e.blocks=h:(h=this.syncTrees_(g,e,c))&&(d=h);h=g.getAttribute("colour");goog.isString(h)?(h.match(/^#[0-9a-fA-F]{6}$/)?e.hexColour=h:e.hexColour=Blockly.hueToRgb(h),this.hasColours_=!0):e.hexColour="";"true"==g.getAttribute("expanded")?\n(e.blocks.length&&(d=e),e.setExpanded(!0)):e.setExpanded(!1);e=g;break;case "SEP":e&&("CATEGORY"==e.tagName.toUpperCase()?b.add(new Blockly.Toolbox.TreeSeparator(this.treeSeparatorConfig_)):(g=parseFloat(g.getAttribute("gap")),!isNaN(g)&&e&&e.setAttribute("gap",g)));break;case "BLOCK":case "SHADOW":b.blocks.push(g),e=g}return d};\nBlockly.Toolbox.prototype.addColour_=function(a){a=(a||this.tree_).getChildren();for(var b=0,c;c=a[b];b++){var d=c.getRowElement();if(d){var e=this.hasColours_?"8px solid "+(c.hexColour||"#ddd"):"none";this.workspace_.RTL?d.style.borderRight=e:d.style.borderLeft=e}this.addColour_(c)}};Blockly.Toolbox.prototype.clearSelection=function(){this.tree_.setSelectedItem(null)};\nBlockly.Toolbox.prototype.getClientRect=function(){if(!this.HtmlDiv)return null;var a=this.HtmlDiv.getBoundingClientRect(),b=a.left,c=a.top,d=a.width,a=a.height;return this.toolboxPosition==Blockly.TOOLBOX_AT_LEFT?new goog.math.Rect(-1E7,-1E7,1E7+b+d,2E7):this.toolboxPosition==Blockly.TOOLBOX_AT_RIGHT?new goog.math.Rect(b,-1E7,1E7+d,2E7):this.toolboxPosition==Blockly.TOOLBOX_AT_TOP?new goog.math.Rect(-1E7,-1E7,2E7,1E7+c+a):new goog.math.Rect(0,c,2E7,1E7+d)};\nBlockly.Toolbox.prototype.refreshSelection=function(){var a=this.tree_.getSelectedItem();a&&a.blocks&&this.flyout_.show(a.blocks)};Blockly.Toolbox.TreeControl=function(a,b){this.toolbox_=a;goog.ui.tree.TreeControl.call(this,goog.html.SafeHtml.EMPTY,b)};goog.inherits(Blockly.Toolbox.TreeControl,goog.ui.tree.TreeControl);\nBlockly.Toolbox.TreeControl.prototype.enterDocument=function(){Blockly.Toolbox.TreeControl.superClass_.enterDocument.call(this);var a=this.getElement();goog.events.BrowserFeature.TOUCH_ENABLED&&Blockly.bindEventWithChecks_(a,goog.events.EventType.TOUCHSTART,this,this.handleTouchEvent_)};Blockly.Toolbox.TreeControl.prototype.handleTouchEvent_=function(a){a.preventDefault();var b=this.getNodeFromEvent_(a);b&&a.type===goog.events.EventType.TOUCHSTART&&setTimeout(function(){b.onMouseDown(a)},1)};\nBlockly.Toolbox.TreeControl.prototype.createNode=function(a){return new Blockly.Toolbox.TreeNode(this.toolbox_,a?goog.html.SafeHtml.htmlEscape(a):goog.html.SafeHtml.EMPTY,this.getConfig(),this.getDomHelper())};\nBlockly.Toolbox.TreeControl.prototype.setSelectedItem=function(a){var b=this.toolbox_;if(a!=this.selectedItem_&&a!=b.tree_){b.lastCategory_&&(b.lastCategory_.getRowElement().style.backgroundColor="");if(a){var c=a.hexColour||"#57e";a.getRowElement().style.backgroundColor=c;b.addColour_(a)}c=this.getSelectedItem();goog.ui.tree.TreeControl.prototype.setSelectedItem.call(this,a);a&&a.blocks&&a.blocks.length?(b.flyout_.show(a.blocks),b.lastCategory_!=a&&b.flyout_.scrollToStart()):b.flyout_.hide();c!=\na&&c!=this&&(c=new Blockly.Events.Ui(null,"category",c&&c.getHtml(),a&&a.getHtml()),c.workspaceId=b.workspace_.id,Blockly.Events.fire(c));a&&(b.lastCategory_=a)}};Blockly.Toolbox.TreeNode=function(a,b,c,d){goog.ui.tree.TreeNode.call(this,b,c,d);a&&(this.horizontalLayout_=a.horizontalLayout_,b=function(){Blockly.svgResize(a.workspace_)},goog.events.listen(a.tree_,goog.ui.tree.BaseNode.EventType.EXPAND,b),goog.events.listen(a.tree_,goog.ui.tree.BaseNode.EventType.COLLAPSE,b))};\ngoog.inherits(Blockly.Toolbox.TreeNode,goog.ui.tree.TreeNode);Blockly.Toolbox.TreeNode.prototype.getExpandIconSafeHtml=function(){return goog.html.SafeHtml.create("span")};Blockly.Toolbox.TreeNode.prototype.onMouseDown=function(a){this.hasChildren()&&this.isUserCollapsible_?(this.toggle(),this.select()):this.isSelected()?this.getTree().setSelectedItem(null):this.select();this.updateRow()};Blockly.Toolbox.TreeNode.prototype.onDoubleClick_=function(a){};\nBlockly.Toolbox.TreeNode.prototype.onKeyDown=function(a){if(this.horizontalLayout_){var b={};b[goog.events.KeyCodes.RIGHT]=goog.events.KeyCodes.DOWN;b[goog.events.KeyCodes.LEFT]=goog.events.KeyCodes.UP;b[goog.events.KeyCodes.UP]=goog.events.KeyCodes.LEFT;b[goog.events.KeyCodes.DOWN]=goog.events.KeyCodes.RIGHT;a.keyCode=b[a.keyCode]||a.keyCode}return Blockly.Toolbox.TreeNode.superClass_.onKeyDown.call(this,a)};Blockly.Toolbox.TreeSeparator=function(a){Blockly.Toolbox.TreeNode.call(this,null,"",a)};\ngoog.inherits(Blockly.Toolbox.TreeSeparator,Blockly.Toolbox.TreeNode);Blockly.Css={};Blockly.Css.Cursor={OPEN:"handopen",CLOSED:"handclosed",DELETE:"handdelete"};Blockly.Css.currentCursor_="";Blockly.Css.styleSheet_=null;Blockly.Css.mediaPath_="";\nBlockly.Css.inject=function(a,b){if(!Blockly.Css.styleSheet_){var c=".blocklyDraggable {}\\n";a&&(c+=Blockly.Css.CONTENT.join("\\n"),Blockly.FieldDate&&(c+=Blockly.FieldDate.CSS.join("\\n")));Blockly.Css.mediaPath_=b.replace(/[\\\\\\/]$/,"");var c=c.replace(/<<<PATH>>>/g,Blockly.Css.mediaPath_),d=document.createElement("style");document.head.appendChild(d);c=document.createTextNode(c);d.appendChild(c);Blockly.Css.styleSheet_=d.sheet;Blockly.Css.setCursor(Blockly.Css.Cursor.OPEN)}};\nBlockly.Css.setCursor=function(a){if(Blockly.Css.currentCursor_!=a){Blockly.Css.currentCursor_=a;var b="url("+Blockly.Css.mediaPath_+"/"+a+".cur), auto",c=".blocklyDraggable {\\n cursor: "+b+";\\n}\\n";Blockly.Css.styleSheet_.deleteRule(0);Blockly.Css.styleSheet_.insertRule(c,0);for(var c=document.getElementsByClassName("blocklyToolboxDiv"),d=0,e;e=c[d];d++)e.style.cursor=a==Blockly.Css.Cursor.DELETE?b:"";document.body.parentNode.style.cursor=a==Blockly.Css.Cursor.OPEN?"":b}};\nBlockly.Css.CONTENT=[".blocklySvg {","background-color: #fff;","outline: none;","overflow: hidden;","display: block;","}",".blocklyWidgetDiv {","display: none;","position: absolute;","z-index: 99999;","}",".injectionDiv {","height: 100%;","position: relative;","}",".blocklyNonSelectable {","user-select: none;","-moz-user-select: none;","-webkit-user-select: none;","-ms-user-select: none;","}",".blocklyTooltipDiv {","background-color: #ffffc7;","border: 1px solid #ddc;","box-shadow: 4px 4px 20px 1px rgba(0,0,0,.15);",\n"color: #000;","display: none;","font-family: sans-serif;","font-size: 9pt;","opacity: 0.9;","padding: 2px;","position: absolute;","z-index: 100000;","}",".blocklyResizeSE {","cursor: se-resize;","fill: #aaa;","}",".blocklyResizeSW {","cursor: sw-resize;","fill: #aaa;","}",".blocklyResizeLine {","stroke: #888;","stroke-width: 1;","}",".blocklyHighlightedConnectionPath {","fill: none;","stroke: #fc3;","stroke-width: 4px;","}",".blocklyPathLight {","fill: none;","stroke-linecap: round;","stroke-width: 1;",\n"}",".blocklySelected>.blocklyPath {","stroke: #fc3;","stroke-width: 3px;","}",".blocklySelected>.blocklyPathLight {","display: none;","}",".blocklyDragging>.blocklyPath,",".blocklyDragging>.blocklyPathLight {","fill-opacity: .8;","stroke-opacity: .8;","}",".blocklyDragging>.blocklyPathDark {","display: none;","}",".blocklyDisabled>.blocklyPath {","fill-opacity: .5;","stroke-opacity: .5;","}",".blocklyDisabled>.blocklyPathLight,",".blocklyDisabled>.blocklyPathDark {","display: none;","}",".blocklyText {",\n"cursor: default;","fill: #fff;","font-family: sans-serif;","font-size: 11pt;","}",".blocklyNonEditableText>text {","pointer-events: none;","}",".blocklyNonEditableText>rect,",".blocklyEditableText>rect {","fill: #fff;","fill-opacity: .6;","}",".blocklyNonEditableText>text,",".blocklyEditableText>text {","fill: #000;","}",".blocklyEditableText:hover>rect {","stroke: #fff;","stroke-width: 2;","}",".blocklyBubbleText {","fill: #000;","}",".blocklyFlyoutButton {","fill: #888;","cursor: default;","}",\n".blocklyFlyoutButtonShadow {","fill: #666;","}",".blocklyFlyoutButton:hover {","fill: #aaa;","}",".blocklySvg text {","user-select: none;","-moz-user-select: none;","-webkit-user-select: none;","cursor: inherit;","}",".blocklyHidden {","display: none;","}",".blocklyFieldDropdown:not(.blocklyHidden) {","display: block;","}",".blocklyIconGroup {","cursor: default;","}",".blocklyIconGroup:not(:hover),",".blocklyIconGroupReadonly {","opacity: .6;","}",".blocklyIconShape {","fill: #00f;","stroke: #fff;",\n"stroke-width: 1px;","}",".blocklyIconSymbol {","fill: #fff;","}",".blocklyMinimalBody {","margin: 0;","padding: 0;","}",".blocklyCommentTextarea {","background-color: #ffc;","border: 0;","margin: 0;","padding: 2px;","resize: none;","}",".blocklyHtmlInput {","border: none;","border-radius: 4px;","font-family: sans-serif;","height: 100%;","margin: 0;","outline: none;","padding: 0 1px;","width: 100%","}",".blocklyMainBackground {","stroke-width: 1;","stroke: #c6c6c6;","}",".blocklyMutatorBackground {",\n"fill: #fff;","stroke: #ddd;","stroke-width: 1;","}",".blocklyFlyoutBackground {","fill: #ddd;","fill-opacity: .8;","}",".blocklyScrollbarBackground {","opacity: 0;","}",".blocklyScrollbarHandle {","fill: #ccc;","}",".blocklyScrollbarBackground:hover+.blocklyScrollbarHandle,",".blocklyScrollbarHandle:hover {","fill: #bbb;","}",".blocklyZoom>image {","opacity: .4;","}",".blocklyZoom>image:hover {","opacity: .6;","}",".blocklyZoom>image:active {","opacity: .8;","}",".blocklyFlyout .blocklyScrollbarHandle {",\n"fill: #bbb;","}",".blocklyFlyout .blocklyScrollbarBackground:hover+.blocklyScrollbarHandle,",".blocklyFlyout .blocklyScrollbarHandle:hover {","fill: #aaa;","}",".blocklyInvalidInput {","background: #faa;","}",".blocklyAngleCircle {","stroke: #444;","stroke-width: 1;","fill: #ddd;","fill-opacity: .8;","}",".blocklyAngleMarks {","stroke: #444;","stroke-width: 1;","}",".blocklyAngleGauge {","fill: #f88;","fill-opacity: .8;","}",".blocklyAngleLine {","stroke: #f00;","stroke-width: 2;","stroke-linecap: round;",\n"}",".blocklyContextMenu {","border-radius: 4px;","}",".blocklyDropdownMenu {","padding: 0 !important;","}",".blocklyWidgetDiv .goog-option-selected .goog-menuitem-checkbox,",".blocklyWidgetDiv .goog-option-selected .goog-menuitem-icon {","background: url(<<<PATH>>>/sprites.png) no-repeat -48px -16px !important;","}",".blocklyToolboxDiv {","background-color: #ddd;","overflow-x: visible;","overflow-y: auto;","position: absolute;","}",".blocklyTreeRoot {","padding: 4px 0;","}",".blocklyTreeRoot:focus {",\n"outline: none;","}",".blocklyTreeRow {","height: 22px;","line-height: 22px;","margin-bottom: 3px;","padding-right: 8px;","white-space: nowrap;","}",".blocklyHorizontalTree {","float: left;","margin: 1px 5px 8px 0;","}",".blocklyHorizontalTreeRtl {","float: right;","margin: 1px 0 8px 5px;","}",\'.blocklyToolboxDiv[dir="RTL"] .blocklyTreeRow {\',"margin-left: 8px;","}",".blocklyTreeRow:not(.blocklyTreeSelected):hover {","background-color: #e4e4e4;","}",".blocklyTreeSeparator {","border-bottom: solid #e5e5e5 1px;",\n"height: 0;","margin: 5px 0;","}",".blocklyTreeSeparatorHorizontal {","border-right: solid #e5e5e5 1px;","width: 0;","padding: 5px 0;","margin: 0 5px;","}",".blocklyTreeIcon {","background-image: url(<<<PATH>>>/sprites.png);","height: 16px;","vertical-align: middle;","width: 16px;","}",".blocklyTreeIconClosedLtr {","background-position: -32px -1px;","}",".blocklyTreeIconClosedRtl {","background-position: 0px -1px;","}",".blocklyTreeIconOpen {","background-position: -16px -1px;","}",".blocklyTreeSelected>.blocklyTreeIconClosedLtr {",\n"background-position: -32px -17px;","}",".blocklyTreeSelected>.blocklyTreeIconClosedRtl {","background-position: 0px -17px;","}",".blocklyTreeSelected>.blocklyTreeIconOpen {","background-position: -16px -17px;","}",".blocklyTreeIconNone,",".blocklyTreeSelected>.blocklyTreeIconNone {","background-position: -48px -1px;","}",".blocklyTreeLabel {","cursor: default;","font-family: sans-serif;","font-size: 16px;","padding: 0 3px;","vertical-align: middle;","}",".blocklyTreeSelected .blocklyTreeLabel {",\n"color: #fff;","}",".blocklyWidgetDiv .goog-palette {","outline: none;","cursor: default;","}",".blocklyWidgetDiv .goog-palette-table {","border: 1px solid #666;","border-collapse: collapse;","}",".blocklyWidgetDiv .goog-palette-cell {","height: 13px;","width: 15px;","margin: 0;","border: 0;","text-align: center;","vertical-align: middle;","border-right: 1px solid #666;","font-size: 1px;","}",".blocklyWidgetDiv .goog-palette-colorswatch {","position: relative;","height: 13px;","width: 15px;","border: 1px solid #666;",\n"}",".blocklyWidgetDiv .goog-palette-cell-hover .goog-palette-colorswatch {","border: 1px solid #FFF;","}",".blocklyWidgetDiv .goog-palette-cell-selected .goog-palette-colorswatch {","border: 1px solid #000;","color: #fff;","}",".blocklyWidgetDiv .goog-menu {","background: #fff;","border-color: #ccc #666 #666 #ccc;","border-style: solid;","border-width: 1px;","cursor: default;","font: normal 13px Arial, sans-serif;","margin: 0;","outline: none;","padding: 4px 0;","position: absolute;","overflow-y: auto;",\n"overflow-x: hidden;","max-height: 100%;","z-index: 20000;","}",".blocklyWidgetDiv .goog-menuitem {","color: #000;","font: normal 13px Arial, sans-serif;","list-style: none;","margin: 0;","padding: 4px 7em 4px 28px;","white-space: nowrap;","}",".blocklyWidgetDiv .goog-menuitem.goog-menuitem-rtl {","padding-left: 7em;","padding-right: 28px;","}",".blocklyWidgetDiv .goog-menu-nocheckbox .goog-menuitem,",".blocklyWidgetDiv .goog-menu-noicon .goog-menuitem {","padding-left: 12px;","}",".blocklyWidgetDiv .goog-menu-noaccel .goog-menuitem {",\n"padding-right: 20px;","}",".blocklyWidgetDiv .goog-menuitem-content {","color: #000;","font: normal 13px Arial, sans-serif;","}",".blocklyWidgetDiv .goog-menuitem-disabled .goog-menuitem-accel,",".blocklyWidgetDiv .goog-menuitem-disabled .goog-menuitem-content {","color: #ccc !important;","}",".blocklyWidgetDiv .goog-menuitem-disabled .goog-menuitem-icon {","opacity: 0.3;","-moz-opacity: 0.3;","filter: alpha(opacity=30);","}",".blocklyWidgetDiv .goog-menuitem-highlight,",".blocklyWidgetDiv .goog-menuitem-hover {",\n"background-color: #d6e9f8;","border-color: #d6e9f8;","border-style: dotted;","border-width: 1px 0;","padding-bottom: 3px;","padding-top: 3px;","}",".blocklyWidgetDiv .goog-menuitem-checkbox,",".blocklyWidgetDiv .goog-menuitem-icon {","background-repeat: no-repeat;","height: 16px;","left: 6px;","position: absolute;","right: auto;","vertical-align: middle;","width: 16px;","}",".blocklyWidgetDiv .goog-menuitem-rtl .goog-menuitem-checkbox,",".blocklyWidgetDiv .goog-menuitem-rtl .goog-menuitem-icon {",\n"left: auto;","right: 6px;","}",".blocklyWidgetDiv .goog-option-selected .goog-menuitem-checkbox,",".blocklyWidgetDiv .goog-option-selected .goog-menuitem-icon {","background: url(//ssl.gstatic.com/editor/editortoolbar.png) no-repeat -512px 0;","}",".blocklyWidgetDiv .goog-menuitem-accel {","color: #999;","direction: ltr;","left: auto;","padding: 0 6px;","position: absolute;","right: 0;","text-align: right;","}",".blocklyWidgetDiv .goog-menuitem-rtl .goog-menuitem-accel {","left: 0;","right: auto;",\n"text-align: left;","}",".blocklyWidgetDiv .goog-menuitem-mnemonic-hint {","text-decoration: underline;","}",".blocklyWidgetDiv .goog-menuitem-mnemonic-separator {","color: #999;","font-size: 12px;","padding-left: 4px;","}",".blocklyWidgetDiv .goog-menuseparator {","border-top: 1px solid #ccc;","margin: 4px 0;","padding: 0;","}",""];Blockly.WidgetDiv={};Blockly.WidgetDiv.DIV=null;Blockly.WidgetDiv.owner_=null;Blockly.WidgetDiv.dispose_=null;Blockly.WidgetDiv.createDom=function(){Blockly.WidgetDiv.DIV||(Blockly.WidgetDiv.DIV=goog.dom.createDom("DIV","blocklyWidgetDiv"),document.body.appendChild(Blockly.WidgetDiv.DIV))};\nBlockly.WidgetDiv.show=function(a,b,c){Blockly.WidgetDiv.hide();Blockly.WidgetDiv.owner_=a;Blockly.WidgetDiv.dispose_=c;a=goog.style.getViewportPageOffset(document);Blockly.WidgetDiv.DIV.style.top=a.y+"px";Blockly.WidgetDiv.DIV.style.direction=b?"rtl":"ltr";Blockly.WidgetDiv.DIV.style.display="block"};\nBlockly.WidgetDiv.hide=function(){Blockly.WidgetDiv.owner_&&(Blockly.WidgetDiv.owner_=null,Blockly.WidgetDiv.DIV.style.display="none",Blockly.WidgetDiv.DIV.style.left="",Blockly.WidgetDiv.DIV.style.top="",Blockly.WidgetDiv.dispose_&&Blockly.WidgetDiv.dispose_(),Blockly.WidgetDiv.dispose_=null,goog.dom.removeChildren(Blockly.WidgetDiv.DIV))};Blockly.WidgetDiv.isVisible=function(){return!!Blockly.WidgetDiv.owner_};Blockly.WidgetDiv.hideIfOwner=function(a){Blockly.WidgetDiv.owner_==a&&Blockly.WidgetDiv.hide()};\nBlockly.WidgetDiv.position=function(a,b,c,d,e){b<d.y&&(b=d.y);e?a>c.width+d.x&&(a=c.width+d.x):a<d.x&&(a=d.x);Blockly.WidgetDiv.DIV.style.left=a+"px";Blockly.WidgetDiv.DIV.style.top=b+"px";Blockly.WidgetDiv.DIV.style.height=c.height+"px"};Blockly.inject=function(a,b){goog.isString(a)&&(a=document.getElementById(a)||document.querySelector(a));if(!goog.dom.contains(document,a))throw"Error: container is not in current document.";var c=new Blockly.Options(b||{}),d=goog.dom.createDom("div","injectionDiv");a.appendChild(d);d=Blockly.createDom_(d,c);c=Blockly.createMainWorkspace_(d,c);Blockly.init_(c);c.markFocused();Blockly.bindEventWithChecks_(d,"focus",c,c.markFocused);Blockly.svgResize(c);return c};\nBlockly.createDom_=function(a,b){a.setAttribute("dir","LTR");goog.ui.Component.setDefaultRightToLeft(b.RTL);Blockly.Css.inject(b.hasCss,b.pathToMedia);var c=Blockly.createSvgElement("svg",{xmlns:"http://www.w3.org/2000/svg","xmlns:html":"http://www.w3.org/1999/xhtml","xmlns:xlink":"http://www.w3.org/1999/xlink",version:"1.1","class":"blocklySvg"},a),d=Blockly.createSvgElement("defs",{},c),e=String(Math.random()).substring(2),f=Blockly.createSvgElement("filter",{id:"blocklyEmbossFilter"+e},d);Blockly.createSvgElement("feGaussianBlur",\n{"in":"SourceAlpha",stdDeviation:1,result:"blur"},f);var g=Blockly.createSvgElement("feSpecularLighting",{"in":"blur",surfaceScale:1,specularConstant:.5,specularExponent:10,"lighting-color":"white",result:"specOut"},f);Blockly.createSvgElement("fePointLight",{x:-5E3,y:-1E4,z:2E4},g);Blockly.createSvgElement("feComposite",{"in":"specOut",in2:"SourceAlpha",operator:"in",result:"specOut"},f);Blockly.createSvgElement("feComposite",{"in":"SourceGraphic",in2:"specOut",operator:"arithmetic",k1:0,k2:1,k3:1,\nk4:0},f);b.embossFilterId=f.id;f=Blockly.createSvgElement("pattern",{id:"blocklyDisabledPattern"+e,patternUnits:"userSpaceOnUse",width:10,height:10},d);Blockly.createSvgElement("rect",{width:10,height:10,fill:"#aaa"},f);Blockly.createSvgElement("path",{d:"M 0 0 L 10 10 M 10 0 L 0 10",stroke:"#cc0"},f);b.disabledPatternId=f.id;d=Blockly.createSvgElement("pattern",{id:"blocklyGridPattern"+e,patternUnits:"userSpaceOnUse"},d);0<b.gridOptions.length&&0<b.gridOptions.spacing&&(Blockly.createSvgElement("line",\n{stroke:b.gridOptions.colour},d),1<b.gridOptions.length&&Blockly.createSvgElement("line",{stroke:b.gridOptions.colour},d));b.gridPattern=d;return c};\nBlockly.createMainWorkspace_=function(a,b){b.parentWorkspace=null;var c=new Blockly.WorkspaceSvg(b);c.scale=b.zoomOptions.startScale;a.appendChild(c.createDom("blocklyMainBackground"));c.translate(0,0);c.markFocused();b.readOnly||b.hasScrollbars||c.addChangeListener(function(){if(Blockly.dragMode_==Blockly.DRAG_NONE){var a=c.getMetrics(),e=a.viewLeft+a.absoluteLeft,f=a.viewTop+a.absoluteTop;if(a.contentTop<f||a.contentTop+a.contentHeight>a.viewHeight+f||a.contentLeft<(b.RTL?a.viewLeft:e)||a.contentLeft+\na.contentWidth>(b.RTL?a.viewWidth:a.viewWidth+e))for(var g=c.getTopBlocks(!1),h=0,k;k=g[h];h++){var l=k.getRelativeToSurfaceXY(),p=k.getHeightWidth(),m=f+25-p.height-l.y;0<m&&k.moveBy(0,m);m=f+a.viewHeight-25-l.y;0>m&&k.moveBy(0,m);m=25+e-l.x-(b.RTL?0:p.width);0<m&&k.moveBy(m,0);l=e+a.viewWidth-25-l.x+(b.RTL?p.width:0);0>l&&k.moveBy(l,0)}}});Blockly.svgResize(c);Blockly.WidgetDiv.createDom();Blockly.Tooltip.createDom();return c};\nBlockly.init_=function(a){var b=a.options,c=a.getParentSvg();Blockly.bindEventWithChecks_(c,"contextmenu",null,function(a){Blockly.isTargetInput_(a)||a.preventDefault()});c=Blockly.bindEventWithChecks_(window,"resize",null,function(){Blockly.hideChaff(!0);Blockly.svgResize(a)});a.setResizeHandlerWrapper(c);Blockly.inject.bindDocumentEvents_();b.languageTree&&(a.toolbox_?a.toolbox_.init(a):a.flyout_&&(a.flyout_.init(a),a.flyout_.show(b.languageTree.childNodes),a.flyout_.scrollToStart(),a.scrollX=a.flyout_.width_,\nb.toolboxPosition==Blockly.TOOLBOX_AT_RIGHT&&(a.scrollX*=-1),a.translate(a.scrollX,0)));b.hasScrollbars&&(a.scrollbar=new Blockly.ScrollbarPair(a),a.scrollbar.resize());b.hasSounds&&Blockly.inject.loadSounds_(b.pathToMedia,a)};\nBlockly.inject.bindDocumentEvents_=function(){Blockly.documentEventsBound_||(Blockly.bindEventWithChecks_(document,"keydown",null,Blockly.onKeyDown_),Blockly.bindEventWithChecks_(document,"touchend",null,Blockly.longStop_),Blockly.bindEventWithChecks_(document,"touchcancel",null,Blockly.longStop_),document.addEventListener("mouseup",Blockly.onMouseUp_,!1),goog.userAgent.IPAD&&Blockly.bindEventWithChecks_(window,"orientationchange",document,function(){Blockly.svgResize(Blockly.getMainWorkspace())}));\nBlockly.documentEventsBound_=!0};\nBlockly.inject.loadSounds_=function(a,b){b.loadAudio_([a+"click.mp3",a+"click.wav",a+"click.ogg"],"click");b.loadAudio_([a+"disconnect.wav",a+"disconnect.mp3",a+"disconnect.ogg"],"disconnect");b.loadAudio_([a+"delete.mp3",a+"delete.ogg",a+"delete.wav"],"delete");var c=[],d=function(){for(;c.length;)Blockly.unbindEvent_(c.pop());b.preloadAudio_()};c.push(Blockly.bindEventWithChecks_(document,"mousemove",null,d,!0));c.push(Blockly.bindEventWithChecks_(document,"touchstart",null,d,!0))};\nBlockly.updateToolbox=function(a){console.warn("Deprecated call to Blockly.updateToolbox, use workspace.updateToolbox instead.");Blockly.getMainWorkspace().updateToolbox(a)};Blockly.utils={};Blockly.addClass_=function(a,b){var c=a.getAttribute("class")||"";-1==(" "+c+" ").indexOf(" "+b+" ")&&(c&&(c+=" "),a.setAttribute("class",c+b))};Blockly.removeClass_=function(a,b){var c=a.getAttribute("class");if(-1!=(" "+c+" ").indexOf(" "+b+" ")){for(var c=c.split(/\\s+/),d=0;d<c.length;d++)c[d]&&c[d]!=b||(c.splice(d,1),d--);c.length?a.setAttribute("class",c.join(" ")):a.removeAttribute("class")}};\nBlockly.hasClass_=function(a,b){return-1!=(" "+a.getAttribute("class")+" ").indexOf(" "+b+" ")};\nBlockly.bindEventWithChecks_=function(a,b,c,d,e){var f=!1,g=function(a){var b=!e;a=Blockly.Touch.splitEventByTouches(a);for(var g=0,h;h=a[g];g++)if(!b||Blockly.Touch.shouldHandleEvent(h))Blockly.Touch.setClientFromTouch(h),c?d.call(c,h):d(h),f=!0};a.addEventListener(b,g,!1);var h=[[a,b,g]];if(b in Blockly.Touch.TOUCH_MAP)for(var k=function(a){g(a);f&&a.preventDefault()},l=0,p;p=Blockly.Touch.TOUCH_MAP[b][l];l++)a.addEventListener(p,k,!1),h.push([a,p,k]);return h};\nBlockly.bindEvent_=function(a,b,c,d){var e=function(a){c?d.call(c,a):d(a)};a.addEventListener(b,e,!1);var f=[[a,b,e]];if(b in Blockly.Touch.TOUCH_MAP)for(var g=function(a){if(1==a.changedTouches.length){var b=a.changedTouches[0];a.clientX=b.clientX;a.clientY=b.clientY}e(a);a.preventDefault()},h=0,k;k=Blockly.Touch.TOUCH_MAP[b][h];h++)a.addEventListener(k,g,!1),f.push([a,k,g]);return f};Blockly.unbindEvent_=function(a){for(;a.length;){var b=a.pop(),c=b[2];b[0].removeEventListener(b[1],c,!1)}return c};\nBlockly.noEvent=function(a){a.preventDefault();a.stopPropagation()};Blockly.isTargetInput_=function(a){return"textarea"==a.target.type||"text"==a.target.type||"number"==a.target.type||"email"==a.target.type||"password"==a.target.type||"search"==a.target.type||"tel"==a.target.type||"url"==a.target.type||a.target.isContentEditable};\nBlockly.getRelativeXY_=function(a){var b=new goog.math.Coordinate(0,0),c=a.getAttribute("x");c&&(b.x=parseInt(c,10));if(c=a.getAttribute("y"))b.y=parseInt(c,10);if(a=(a=a.getAttribute("transform"))&&a.match(Blockly.getRelativeXY_.XY_REGEXP_))b.x+=parseFloat(a[1]),a[3]&&(b.y+=parseFloat(a[3]));return b};Blockly.getRelativeXY_.XY_REGEXP_=/translate\\(\\s*([-+\\d.e]+)([ ,]\\s*([-+\\d.e]+)\\s*\\))?/;\nBlockly.getSvgXY_=function(a,b){var c=0,d=0,e=1;if(goog.dom.contains(b.getCanvas(),a)||goog.dom.contains(b.getBubbleCanvas(),a))e=b.scale;do{var f=Blockly.getRelativeXY_(a);if(a==b.getCanvas()||a==b.getBubbleCanvas())e=1;c+=f.x*e;d+=f.y*e;a=a.parentNode}while(a&&a!=b.getParentSvg());return new goog.math.Coordinate(c,d)};\nBlockly.createSvgElement=function(a,b,c,d){a=document.createElementNS(Blockly.SVG_NS,a);for(var e in b)a.setAttribute(e,b[e]);document.body.runtimeStyle&&(a.runtimeStyle=a.currentStyle=a.style);c&&c.appendChild(a);return a};Blockly.isRightButton=function(a){return a.ctrlKey&&goog.userAgent.MAC?!0:2==a.button};Blockly.mouseToSvg=function(a,b,c){var d=b.createSVGPoint();d.x=a.clientX;d.y=a.clientY;c||(c=b.getScreenCTM().inverse());return d.matrixTransform(c)};\nBlockly.shortestStringLength=function(a){if(!a.length)return 0;for(var b=a[0].length,c=1;c<a.length;c++)b=Math.min(b,a[c].length);return b};Blockly.commonWordPrefix=function(a,b){if(!a.length)return 0;if(1==a.length)return a[0].length;for(var c=0,d=b||Blockly.shortestStringLength(a),e=0;e<d;e++){for(var f=a[0][e],g=1;g<a.length;g++)if(f!=a[g][e])return c;" "==f&&(c=e+1)}for(g=1;g<a.length;g++)if((f=a[g][e])&&" "!=f)return c;return d};\nBlockly.commonWordSuffix=function(a,b){if(!a.length)return 0;if(1==a.length)return a[0].length;for(var c=0,d=b||Blockly.shortestStringLength(a),e=0;e<d;e++){for(var f=a[0].substr(-e-1,1),g=1;g<a.length;g++)if(f!=a[g].substr(-e-1,1))return c;" "==f&&(c=e+1)}for(g=1;g<a.length;g++)if((f=a[g].charAt(a[g].length-e-1))&&" "!=f)return c;return d};Blockly.isNumber=function(a){return!!a.match(/^\\s*-?\\d+(\\.\\d+)?\\s*$/)};\nBlockly.utils.tokenizeInterpolation=function(a){var b=[];a=a.split("");a.push("");for(var c=0,d=[],e=null,f=0;f<a.length;f++){var g=a[f];0==c?"%"==g?c=1:d.push(g):1==c?"%"==g?(d.push(g),c=0):"0"<=g&&"9">=g?(c=2,e=g,(g=d.join(""))&&b.push(g),d.length=0):(d.push("%",g),c=0):2==c&&("0"<=g&&"9">=g?e+=g:(b.push(parseInt(e,10)),f--,c=0))}(g=d.join(""))&&b.push(g);return b};\nBlockly.genUid=function(){for(var a=Blockly.genUid.soup_.length,b=[],c=0;20>c;c++)b[c]=Blockly.genUid.soup_.charAt(Math.random()*a);return b.join("")};Blockly.genUid.soup_="!#$%()*+,-./:;=?@[]^_`{|}~ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";Blockly.utils.wrap=function(a,b){for(var c=a.split("\\n"),d=0;d<c.length;d++)c[d]=Blockly.utils.wrap_line_(c[d],b);return c.join("\\n")};\nBlockly.utils.wrap_line_=function(a,b){if(a.length<=b)return a;for(var c=a.trim().split(/\\s+/),d=0;d<c.length;d++)c[d].length>b&&(b=c[d].length);var e,d=-Infinity,f,g=1;do{e=d;f=a;for(var h=[],k=c.length/g,l=1,d=0;d<c.length-1;d++)l<(d+1.5)/k?(l++,h[d]=!0):h[d]=!1;h=Blockly.utils.wrapMutate_(c,h,b);d=Blockly.utils.wrapScore_(c,h,b);a=Blockly.utils.wrapToText_(c,h);g++}while(d>e);return f};\nBlockly.utils.wrapScore_=function(a,b,c){for(var d=[0],e=[],f=0;f<a.length;f++)d[d.length-1]+=a[f].length,!0===b[f]?(d.push(0),e.push(a[f].charAt(a[f].length-1))):!1===b[f]&&d[d.length-1]++;a=Math.max.apply(Math,d);for(f=b=0;f<d.length;f++)b-=2*Math.pow(Math.abs(c-d[f]),1.5),b-=Math.pow(a-d[f],1.5),-1!=".?!".indexOf(e[f])?b+=c/3:-1!=",;)]}".indexOf(e[f])&&(b+=c/4);1<d.length&&d[d.length-1]<=d[d.length-2]&&(b+=.5);return b};\nBlockly.utils.wrapMutate_=function(a,b,c){for(var d=Blockly.utils.wrapScore_(a,b,c),e,f=0;f<b.length-1;f++)if(b[f]!=b[f+1]){var g=[].concat(b);g[f]=!g[f];g[f+1]=!g[f+1];var h=Blockly.utils.wrapScore_(a,g,c);h>d&&(d=h,e=g)}return e?Blockly.utils.wrapMutate_(a,e,c):b};Blockly.utils.wrapToText_=function(a,b){for(var c=[],d=0;d<a.length;d++)c.push(a[d]),void 0!==b[d]&&c.push(b[d]?"\\n":" ");return c.join("")};Blockly.FieldDate=function(a,b){a||(a=(new goog.date.Date).toIsoString(!0));Blockly.FieldDate.superClass_.constructor.call(this,a,b);this.setValue(a)};goog.inherits(Blockly.FieldDate,Blockly.Field);Blockly.FieldDate.prototype.CURSOR="text";Blockly.FieldDate.prototype.dispose=function(){Blockly.WidgetDiv.hideIfOwner(this);Blockly.FieldDate.superClass_.dispose.call(this)};Blockly.FieldDate.prototype.getValue=function(){return this.date_};\nBlockly.FieldDate.prototype.setValue=function(a){if(this.sourceBlock_){var b=this.callValidator(a);null!==b&&(a=b)}this.date_=a;Blockly.Field.prototype.setText.call(this,a)};\nBlockly.FieldDate.prototype.showEditor_=function(){Blockly.WidgetDiv.show(this,this.sourceBlock_.RTL,Blockly.FieldDate.widgetDispose_);Blockly.FieldDate.loadLanguage_();var a=new goog.ui.DatePicker;a.setAllowNone(!1);a.setShowWeekNum(!1);var b=goog.dom.getViewportSize(),c=goog.style.getViewportPageOffset(document),d=this.getAbsoluteXY_(),e=this.getScaledBBox_();a.render(Blockly.WidgetDiv.DIV);a.setDate(goog.date.fromIsoString(this.getValue()));var f=goog.style.getSize(a.getElement());d.y=d.y+f.height+\ne.height>=b.height+c.y?d.y-(f.height-1):d.y+(e.height-1);this.sourceBlock_.RTL?(d.x+=e.width,d.x-=f.width,d.x<c.x&&(d.x=c.x)):d.x>b.width+c.x-f.width&&(d.x=b.width+c.x-f.width);Blockly.WidgetDiv.position(d.x,d.y,b,c,this.sourceBlock_.RTL);var g=this;Blockly.FieldDate.changeEventKey_=goog.events.listen(a,goog.ui.DatePicker.Events.CHANGE,function(a){a=a.date?a.date.toIsoString(!0):"";Blockly.WidgetDiv.hide();g.sourceBlock_&&(a=g.callValidator(a));g.setValue(a)})};\nBlockly.FieldDate.widgetDispose_=function(){Blockly.FieldDate.changeEventKey_&&goog.events.unlistenByKey(Blockly.FieldDate.changeEventKey_)};Blockly.FieldDate.loadLanguage_=function(){var a=/^DateTimeSymbols_(.+)$/,b;for(b in goog.i18n){var c=b.match(a);c&&(c=c[1].toLowerCase().replace("_","."),goog.getObjectByName(c,Blockly.Msg)&&(goog.i18n.DateTimeSymbols=goog.i18n[b]))}};\nBlockly.FieldDate.CSS=[".blocklyWidgetDiv .goog-date-picker,",".blocklyWidgetDiv .goog-date-picker th,",".blocklyWidgetDiv .goog-date-picker td {"," font: 13px Arial, sans-serif;","}",".blocklyWidgetDiv .goog-date-picker {"," -moz-user-focus: normal;"," -moz-user-select: none;"," position: relative;"," border: 1px solid #000;"," float: left;"," padding: 2px;"," color: #000;"," background: #c3d9ff;"," cursor: default;","}",".blocklyWidgetDiv .goog-date-picker th {"," text-align: center;",\n"}",".blocklyWidgetDiv .goog-date-picker td {"," text-align: center;"," vertical-align: middle;"," padding: 1px 3px;","}",".blocklyWidgetDiv .goog-date-picker-menu {"," position: absolute;"," background: threedface;"," border: 1px solid gray;"," -moz-user-focus: normal;"," z-index: 1;"," outline: none;","}",".blocklyWidgetDiv .goog-date-picker-menu ul {"," list-style: none;"," margin: 0px;"," padding: 0px;","}",".blocklyWidgetDiv .goog-date-picker-menu ul li {"," cursor: default;","}",\n".blocklyWidgetDiv .goog-date-picker-menu-selected {"," background: #ccf;","}",".blocklyWidgetDiv .goog-date-picker th {"," font-size: .9em;","}",".blocklyWidgetDiv .goog-date-picker td div {"," float: left;","}",".blocklyWidgetDiv .goog-date-picker button {"," padding: 0px;"," margin: 1px 0;"," border: 0;"," color: #20c;"," font-weight: bold;"," background: transparent;","}",".blocklyWidgetDiv .goog-date-picker-date {"," background: #fff;","}",".blocklyWidgetDiv .goog-date-picker-week,",\n".blocklyWidgetDiv .goog-date-picker-wday {"," padding: 1px 3px;"," border: 0;"," border-color: #a2bbdd;"," border-style: solid;","}",".blocklyWidgetDiv .goog-date-picker-week {"," border-right-width: 1px;","}",".blocklyWidgetDiv .goog-date-picker-wday {"," border-bottom-width: 1px;","}",".blocklyWidgetDiv .goog-date-picker-head td {"," text-align: center;","}",".blocklyWidgetDiv td.goog-date-picker-today-cont {"," text-align: center;","}",".blocklyWidgetDiv td.goog-date-picker-none-cont {",\n" text-align: center;","}",".blocklyWidgetDiv .goog-date-picker-month {"," min-width: 11ex;"," white-space: nowrap;","}",".blocklyWidgetDiv .goog-date-picker-year {"," min-width: 6ex;"," white-space: nowrap;","}",".blocklyWidgetDiv .goog-date-picker-monthyear {"," white-space: nowrap;","}",".blocklyWidgetDiv .goog-date-picker table {"," border-collapse: collapse;","}",".blocklyWidgetDiv .goog-date-picker-other-month {"," color: #888;","}",".blocklyWidgetDiv .goog-date-picker-wkend-start,",\n".blocklyWidgetDiv .goog-date-picker-wkend-end {"," background: #eee;","}",".blocklyWidgetDiv td.goog-date-picker-selected {"," background: #c3d9ff;","}",".blocklyWidgetDiv .goog-date-picker-today {"," background: #9ab;"," font-weight: bold !important;"," border-color: #246 #9bd #9bd #246;"," color: #fff;","}"];var CLOSURE_DEFINES={"goog.DEBUG":!1};Blockly.mainWorkspace=null;Blockly.selected=null;Blockly.highlightedConnection_=null;Blockly.localConnection_=null;Blockly.draggingConnections_=[];Blockly.clipboardXml_=null;Blockly.clipboardSource_=null;Blockly.dragMode_=Blockly.DRAG_NONE;Blockly.hueToRgb=function(a){return goog.color.hsvToHex(a,Blockly.HSV_SATURATION,255*Blockly.HSV_VALUE)};Blockly.svgSize=function(a){return{width:a.cachedWidth_,height:a.cachedHeight_}};Blockly.resizeSvgContents=function(a){a.resizeContents()};\nBlockly.svgResize=function(a){for(;a.options.parentWorkspace;)a=a.options.parentWorkspace;var b=a.getParentSvg(),c=b.parentNode;if(c){var d=c.offsetWidth,c=c.offsetHeight;b.cachedWidth_!=d&&(b.setAttribute("width",d+"px"),b.cachedWidth_=d);b.cachedHeight_!=c&&(b.setAttribute("height",c+"px"),b.cachedHeight_=c);a.resize()}};\nBlockly.onKeyDown_=function(a){if(!Blockly.mainWorkspace.options.readOnly&&!Blockly.isTargetInput_(a)){var b=!1;if(27==a.keyCode)Blockly.hideChaff();else if(8==a.keyCode||46==a.keyCode)a.preventDefault(),Blockly.selected&&Blockly.selected.isDeletable()&&(b=!0);else if(a.altKey||a.ctrlKey||a.metaKey)Blockly.selected&&Blockly.selected.isDeletable()&&Blockly.selected.isMovable()&&(67==a.keyCode?(Blockly.hideChaff(),Blockly.copy_(Blockly.selected)):88==a.keyCode&&(Blockly.copy_(Blockly.selected),b=!0)),\n86==a.keyCode?Blockly.clipboardXml_&&(Blockly.Events.setGroup(!0),Blockly.clipboardSource_.paste(Blockly.clipboardXml_),Blockly.Events.setGroup(!1)):90==a.keyCode&&(Blockly.hideChaff(),Blockly.mainWorkspace.undo(a.shiftKey));b&&(Blockly.Events.setGroup(!0),Blockly.hideChaff(),Blockly.selected.dispose(Blockly.dragMode_!=Blockly.DRAG_FREE,!0),Blockly.highlightedConnection_&&(Blockly.highlightedConnection_.unhighlight(),Blockly.highlightedConnection_=null),Blockly.Events.setGroup(!1))}};\nBlockly.terminateDrag_=function(){Blockly.BlockSvg.terminateDrag();Blockly.Flyout.terminateDrag_()};Blockly.copy_=function(a){var b=Blockly.Xml.blockToDom(a);Blockly.dragMode_!=Blockly.DRAG_FREE&&Blockly.Xml.deleteNext(b);var c=a.getRelativeToSurfaceXY();b.setAttribute("x",a.RTL?-c.x:c.x);b.setAttribute("y",c.y);Blockly.clipboardXml_=b;Blockly.clipboardSource_=a.workspace};\nBlockly.duplicate_=function(a){var b=Blockly.clipboardXml_,c=Blockly.clipboardSource_;Blockly.copy_(a);a.workspace.paste(Blockly.clipboardXml_);Blockly.clipboardXml_=b;Blockly.clipboardSource_=c};Blockly.onContextMenu_=function(a){Blockly.isTargetInput_(a)||a.preventDefault()};Blockly.hideChaff=function(a){Blockly.Tooltip.hide();Blockly.WidgetDiv.hide();a||(a=Blockly.getMainWorkspace(),a.toolbox_&&a.toolbox_.flyout_&&a.toolbox_.flyout_.autoClose&&a.toolbox_.clearSelection())};\nBlockly.addChangeListener=function(a){console.warn("Deprecated call to Blockly.addChangeListener, use workspace.addChangeListener instead.");return Blockly.getMainWorkspace().addChangeListener(a)};Blockly.getMainWorkspace=function(){return Blockly.mainWorkspace};goog.global.console||(goog.global.console={log:function(){},warn:function(){}});goog.global.Blockly||(goog.global.Blockly={});goog.global.Blockly.getMainWorkspace=Blockly.getMainWorkspace;goog.global.Blockly.addChangeListener=Blockly.addChangeListener;\n';
},function(e,t){e.exports='/*** IMPORTS FROM imports-loader ***/\nvar module = undefined;\n\n// Do not edit this file; automatically generated by build.py.\n\'use strict\';\n\n\n// Copyright 2012 Google Inc. Apache License 2.0\nBlockly.Blocks.logic={};Blockly.Blocks.logic.HUE=210;\nBlockly.Blocks.controls_if={init:function(){this.setHelpUrl(Blockly.Msg.CONTROLS_IF_HELPURL);this.setColour(Blockly.Blocks.logic.HUE);this.appendValueInput("IF0").setCheck("Boolean").appendField(Blockly.Msg.CONTROLS_IF_MSG_IF);this.appendStatementInput("DO0").appendField(Blockly.Msg.CONTROLS_IF_MSG_THEN);this.setPreviousStatement(!0);this.setNextStatement(!0);this.setMutator(new Blockly.Mutator(["controls_if_elseif","controls_if_else"]));var a=this;this.setTooltip(function(){if(a.elseifCount_||a.elseCount_){if(!a.elseifCount_&&\na.elseCount_)return Blockly.Msg.CONTROLS_IF_TOOLTIP_2;if(a.elseifCount_&&!a.elseCount_)return Blockly.Msg.CONTROLS_IF_TOOLTIP_3;if(a.elseifCount_&&a.elseCount_)return Blockly.Msg.CONTROLS_IF_TOOLTIP_4}else return Blockly.Msg.CONTROLS_IF_TOOLTIP_1;return""});this.elseCount_=this.elseifCount_=0},mutationToDom:function(){if(!this.elseifCount_&&!this.elseCount_)return null;var a=document.createElement("mutation");this.elseifCount_&&a.setAttribute("elseif",this.elseifCount_);this.elseCount_&&a.setAttribute("else",\n1);return a},domToMutation:function(a){this.elseifCount_=parseInt(a.getAttribute("elseif"),10)||0;this.elseCount_=parseInt(a.getAttribute("else"),10)||0;this.updateShape_()},decompose:function(a){var b=a.newBlock("controls_if_if");b.initSvg();for(var c=b.nextConnection,e=1;e<=this.elseifCount_;e++){var d=a.newBlock("controls_if_elseif");d.initSvg();c.connect(d.previousConnection);c=d.nextConnection}this.elseCount_&&(a=a.newBlock("controls_if_else"),a.initSvg(),c.connect(a.previousConnection));return b},\ncompose:function(a){var b=a.nextConnection.targetBlock();this.elseCount_=this.elseifCount_=0;a=[null];for(var c=[null],e=null;b;){switch(b.type){case "controls_if_elseif":this.elseifCount_++;a.push(b.valueConnection_);c.push(b.statementConnection_);break;case "controls_if_else":this.elseCount_++;e=b.statementConnection_;break;default:throw"Unknown block type.";}b=b.nextConnection&&b.nextConnection.targetBlock()}this.updateShape_();for(b=1;b<=this.elseifCount_;b++)Blockly.Mutator.reconnect(a[b],this,\n"IF"+b),Blockly.Mutator.reconnect(c[b],this,"DO"+b);Blockly.Mutator.reconnect(e,this,"ELSE")},saveConnections:function(a){a=a.nextConnection.targetBlock();for(var b=1;a;){switch(a.type){case "controls_if_elseif":var c=this.getInput("IF"+b),e=this.getInput("DO"+b);a.valueConnection_=c&&c.connection.targetConnection;a.statementConnection_=e&&e.connection.targetConnection;b++;break;case "controls_if_else":e=this.getInput("ELSE");a.statementConnection_=e&&e.connection.targetConnection;break;default:throw"Unknown block type.";\n}a=a.nextConnection&&a.nextConnection.targetBlock()}},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var a=1;this.getInput("IF"+a);)this.removeInput("IF"+a),this.removeInput("DO"+a),a++;for(a=1;a<=this.elseifCount_;a++)this.appendValueInput("IF"+a).setCheck("Boolean").appendField(Blockly.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+a).appendField(Blockly.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(Blockly.Msg.CONTROLS_IF_MSG_ELSE)}};\nBlockly.Blocks.controls_if_if={init:function(){this.setColour(Blockly.Blocks.logic.HUE);this.appendDummyInput().appendField(Blockly.Msg.CONTROLS_IF_IF_TITLE_IF);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.CONTROLS_IF_IF_TOOLTIP);this.contextMenu=!1}};\nBlockly.Blocks.controls_if_elseif={init:function(){this.setColour(Blockly.Blocks.logic.HUE);this.appendDummyInput().appendField(Blockly.Msg.CONTROLS_IF_ELSEIF_TITLE_ELSEIF);this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.CONTROLS_IF_ELSEIF_TOOLTIP);this.contextMenu=!1}};\nBlockly.Blocks.controls_if_else={init:function(){this.setColour(Blockly.Blocks.logic.HUE);this.appendDummyInput().appendField(Blockly.Msg.CONTROLS_IF_ELSE_TITLE_ELSE);this.setPreviousStatement(!0);this.setTooltip(Blockly.Msg.CONTROLS_IF_ELSE_TOOLTIP);this.contextMenu=!1}};\nBlockly.Blocks.controls_ifelse={init:function(){this.jsonInit({message0:"%{BKY_CONTROLS_IF_MSG_IF} %1",args0:[{type:"input_value",name:"IF0",check:"Boolean"}],message1:"%{BKY_CONTROLS_IF_MSG_THEN} %1",args1:[{type:"input_statement",name:"DO0"}],message2:"%{BKY_CONTROLS_IF_MSG_ELSE} %1",args2:[{type:"input_statement",name:"ELSE"}],previousStatement:null,nextStatement:null,colour:Blockly.Blocks.logic.HUE,tooltip:Blockly.Msg.CONTROLS_IF_TOOLTIP_2,helpUrl:Blockly.Msg.CONTROLS_IF_HELPURL})}};\nBlockly.Blocks.logic_compare={init:function(){var a=[["=","EQ"],["\\u2260","NEQ"],["\\u200f<\\u200f","LT"],["\\u200f\\u2264\\u200f","LTE"],["\\u200f>\\u200f","GT"],["\\u200f\\u2265\\u200f","GTE"]],b=[["=","EQ"],["\\u2260","NEQ"],["<","LT"],["\\u2264","LTE"],[">","GT"],["\\u2265","GTE"]],a=this.RTL?a:b;this.setHelpUrl(Blockly.Msg.LOGIC_COMPARE_HELPURL);this.setColour(Blockly.Blocks.logic.HUE);this.setOutput(!0,"Boolean");this.appendValueInput("A");this.appendValueInput("B").appendField(new Blockly.FieldDropdown(a),\n"OP");this.setInputsInline(!0);var c=this;this.setTooltip(function(){var a=c.getFieldValue("OP");return{EQ:Blockly.Msg.LOGIC_COMPARE_TOOLTIP_EQ,NEQ:Blockly.Msg.LOGIC_COMPARE_TOOLTIP_NEQ,LT:Blockly.Msg.LOGIC_COMPARE_TOOLTIP_LT,LTE:Blockly.Msg.LOGIC_COMPARE_TOOLTIP_LTE,GT:Blockly.Msg.LOGIC_COMPARE_TOOLTIP_GT,GTE:Blockly.Msg.LOGIC_COMPARE_TOOLTIP_GTE}[a]});this.prevBlocks_=[null,null]},onchange:function(a){var b=this.getInputTargetBlock("A"),c=this.getInputTargetBlock("B");if(b&&c&&!b.outputConnection.checkType_(c.outputConnection)){Blockly.Events.setGroup(a.group);\nfor(a=0;a<this.prevBlocks_.length;a++){var e=this.prevBlocks_[a];if(e===b||e===c)e.unplug(),e.bumpNeighbours_()}Blockly.Events.setGroup(!1)}this.prevBlocks_[0]=b;this.prevBlocks_[1]=c}};\nBlockly.Blocks.logic_operation={init:function(){var a=[[Blockly.Msg.LOGIC_OPERATION_AND,"AND"],[Blockly.Msg.LOGIC_OPERATION_OR,"OR"]];this.setHelpUrl(Blockly.Msg.LOGIC_OPERATION_HELPURL);this.setColour(Blockly.Blocks.logic.HUE);this.setOutput(!0,"Boolean");this.appendValueInput("A").setCheck("Boolean");this.appendValueInput("B").setCheck("Boolean").appendField(new Blockly.FieldDropdown(a),"OP");this.setInputsInline(!0);var b=this;this.setTooltip(function(){var a=b.getFieldValue("OP");return{AND:Blockly.Msg.LOGIC_OPERATION_TOOLTIP_AND,\nOR:Blockly.Msg.LOGIC_OPERATION_TOOLTIP_OR}[a]})}};Blockly.Blocks.logic_negate={init:function(){this.jsonInit({message0:Blockly.Msg.LOGIC_NEGATE_TITLE,args0:[{type:"input_value",name:"BOOL",check:"Boolean"}],output:"Boolean",colour:Blockly.Blocks.logic.HUE,tooltip:Blockly.Msg.LOGIC_NEGATE_TOOLTIP,helpUrl:Blockly.Msg.LOGIC_NEGATE_HELPURL})}};\nBlockly.Blocks.logic_boolean={init:function(){this.jsonInit({message0:"%1",args0:[{type:"field_dropdown",name:"BOOL",options:[[Blockly.Msg.LOGIC_BOOLEAN_TRUE,"TRUE"],[Blockly.Msg.LOGIC_BOOLEAN_FALSE,"FALSE"]]}],output:"Boolean",colour:Blockly.Blocks.logic.HUE,tooltip:Blockly.Msg.LOGIC_BOOLEAN_TOOLTIP,helpUrl:Blockly.Msg.LOGIC_BOOLEAN_HELPURL})}};\nBlockly.Blocks.logic_null={init:function(){this.jsonInit({message0:Blockly.Msg.LOGIC_NULL,output:null,colour:Blockly.Blocks.logic.HUE,tooltip:Blockly.Msg.LOGIC_NULL_TOOLTIP,helpUrl:Blockly.Msg.LOGIC_NULL_HELPURL})}};\nBlockly.Blocks.logic_ternary={init:function(){this.setHelpUrl(Blockly.Msg.LOGIC_TERNARY_HELPURL);this.setColour(Blockly.Blocks.logic.HUE);this.appendValueInput("IF").setCheck("Boolean").appendField(Blockly.Msg.LOGIC_TERNARY_CONDITION);this.appendValueInput("THEN").appendField(Blockly.Msg.LOGIC_TERNARY_IF_TRUE);this.appendValueInput("ELSE").appendField(Blockly.Msg.LOGIC_TERNARY_IF_FALSE);this.setOutput(!0);this.setTooltip(Blockly.Msg.LOGIC_TERNARY_TOOLTIP);this.prevParentConnection_=null},onchange:function(a){var b=\nthis.getInputTargetBlock("THEN"),c=this.getInputTargetBlock("ELSE"),e=this.outputConnection.targetConnection;if((b||c)&&e)for(var d=0;2>d;d++){var f=1==d?b:c;f&&!f.outputConnection.checkType_(e)&&(Blockly.Events.setGroup(a.group),e===this.prevParentConnection_?(this.unplug(),e.getSourceBlock().bumpNeighbours_()):(f.unplug(),f.bumpNeighbours_()),Blockly.Events.setGroup(!1))}this.prevParentConnection_=e}};Blockly.Blocks.colour={};Blockly.Blocks.colour.HUE=20;Blockly.Blocks.colour_picker={init:function(){this.jsonInit({message0:"%1",args0:[{type:"field_colour",name:"COLOUR",colour:"#ff0000"}],output:"Colour",colour:Blockly.Blocks.colour.HUE,helpUrl:Blockly.Msg.COLOUR_PICKER_HELPURL});var a=this;this.setTooltip(function(){var b=a.getParent();return b&&b.getInputsInline()&&b.tooltip||Blockly.Msg.COLOUR_PICKER_TOOLTIP})}};\nBlockly.Blocks.colour_random={init:function(){this.jsonInit({message0:Blockly.Msg.COLOUR_RANDOM_TITLE,output:"Colour",colour:Blockly.Blocks.colour.HUE,tooltip:Blockly.Msg.COLOUR_RANDOM_TOOLTIP,helpUrl:Blockly.Msg.COLOUR_RANDOM_HELPURL})}};\nBlockly.Blocks.colour_rgb={init:function(){this.setHelpUrl(Blockly.Msg.COLOUR_RGB_HELPURL);this.setColour(Blockly.Blocks.colour.HUE);this.appendValueInput("RED").setCheck("Number").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.COLOUR_RGB_TITLE).appendField(Blockly.Msg.COLOUR_RGB_RED);this.appendValueInput("GREEN").setCheck("Number").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.COLOUR_RGB_GREEN);this.appendValueInput("BLUE").setCheck("Number").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.COLOUR_RGB_BLUE);\nthis.setOutput(!0,"Colour");this.setTooltip(Blockly.Msg.COLOUR_RGB_TOOLTIP)}};\nBlockly.Blocks.colour_blend={init:function(){this.setHelpUrl(Blockly.Msg.COLOUR_BLEND_HELPURL);this.setColour(Blockly.Blocks.colour.HUE);this.appendValueInput("COLOUR1").setCheck("Colour").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.COLOUR_BLEND_TITLE).appendField(Blockly.Msg.COLOUR_BLEND_COLOUR1);this.appendValueInput("COLOUR2").setCheck("Colour").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.COLOUR_BLEND_COLOUR2);this.appendValueInput("RATIO").setCheck("Number").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.COLOUR_BLEND_RATIO);\nthis.setOutput(!0,"Colour");this.setTooltip(Blockly.Msg.COLOUR_BLEND_TOOLTIP)}};Blockly.Blocks.variables={};Blockly.Blocks.variables.HUE=330;\nBlockly.Blocks.variables_get={init:function(){this.setHelpUrl(Blockly.Msg.VARIABLES_GET_HELPURL);this.setColour(Blockly.Blocks.variables.HUE);this.appendDummyInput().appendField(new Blockly.FieldVariable(Blockly.Msg.VARIABLES_DEFAULT_NAME),"VAR");this.setOutput(!0);this.setTooltip(Blockly.Msg.VARIABLES_GET_TOOLTIP);this.contextMenuMsg_=Blockly.Msg.VARIABLES_GET_CREATE_SET},contextMenuType_:"variables_set",customContextMenu:function(a){var b={enabled:!0},c=this.getFieldValue("VAR");b.text=this.contextMenuMsg_.replace("%1",\nc);c=goog.dom.createDom("field",null,c);c.setAttribute("name","VAR");c=goog.dom.createDom("block",null,c);c.setAttribute("type",this.contextMenuType_);b.callback=Blockly.ContextMenu.callbackFactory(this,c);a.push(b)}};\nBlockly.Blocks.variables_set={init:function(){this.jsonInit({message0:Blockly.Msg.VARIABLES_SET,args0:[{type:"field_variable",name:"VAR",variable:Blockly.Msg.VARIABLES_DEFAULT_NAME},{type:"input_value",name:"VALUE"}],previousStatement:null,nextStatement:null,colour:Blockly.Blocks.variables.HUE,tooltip:Blockly.Msg.VARIABLES_SET_TOOLTIP,helpUrl:Blockly.Msg.VARIABLES_SET_HELPURL});this.contextMenuMsg_=Blockly.Msg.VARIABLES_SET_CREATE_GET},contextMenuType_:"variables_get",customContextMenu:Blockly.Blocks.variables_get.customContextMenu};Blockly.Blocks.math={};Blockly.Blocks.math.HUE=230;Blockly.Blocks.math_number={init:function(){this.setHelpUrl(Blockly.Msg.MATH_NUMBER_HELPURL);this.setColour(Blockly.Blocks.math.HUE);this.appendDummyInput().appendField(new Blockly.FieldNumber("0"),"NUM");this.setOutput(!0,"Number");var a=this;this.setTooltip(function(){var b=a.getParent();return b&&b.getInputsInline()&&b.tooltip||Blockly.Msg.MATH_NUMBER_TOOLTIP})}};\nBlockly.Blocks.math_arithmetic={init:function(){this.jsonInit({message0:"%1 %2 %3",args0:[{type:"input_value",name:"A",check:"Number"},{type:"field_dropdown",name:"OP",options:[[Blockly.Msg.MATH_ADDITION_SYMBOL,"ADD"],[Blockly.Msg.MATH_SUBTRACTION_SYMBOL,"MINUS"],[Blockly.Msg.MATH_MULTIPLICATION_SYMBOL,"MULTIPLY"],[Blockly.Msg.MATH_DIVISION_SYMBOL,"DIVIDE"],[Blockly.Msg.MATH_POWER_SYMBOL,"POWER"]]},{type:"input_value",name:"B",check:"Number"}],inputsInline:!0,output:"Number",colour:Blockly.Blocks.math.HUE,\nhelpUrl:Blockly.Msg.MATH_ARITHMETIC_HELPURL});var a=this;this.setTooltip(function(){var b=a.getFieldValue("OP");return{ADD:Blockly.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:Blockly.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:Blockly.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:Blockly.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:Blockly.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[b]})}};\nBlockly.Blocks.math_single={init:function(){this.jsonInit({message0:"%1 %2",args0:[{type:"field_dropdown",name:"OP",options:[[Blockly.Msg.MATH_SINGLE_OP_ROOT,"ROOT"],[Blockly.Msg.MATH_SINGLE_OP_ABSOLUTE,"ABS"],["-","NEG"],["ln","LN"],["log10","LOG10"],["e^","EXP"],["10^","POW10"]]},{type:"input_value",name:"NUM",check:"Number"}],output:"Number",colour:Blockly.Blocks.math.HUE,helpUrl:Blockly.Msg.MATH_SINGLE_HELPURL});var a=this;this.setTooltip(function(){var b=a.getFieldValue("OP");return{ROOT:Blockly.Msg.MATH_SINGLE_TOOLTIP_ROOT,\nABS:Blockly.Msg.MATH_SINGLE_TOOLTIP_ABS,NEG:Blockly.Msg.MATH_SINGLE_TOOLTIP_NEG,LN:Blockly.Msg.MATH_SINGLE_TOOLTIP_LN,LOG10:Blockly.Msg.MATH_SINGLE_TOOLTIP_LOG10,EXP:Blockly.Msg.MATH_SINGLE_TOOLTIP_EXP,POW10:Blockly.Msg.MATH_SINGLE_TOOLTIP_POW10}[b]})}};\nBlockly.Blocks.math_trig={init:function(){this.jsonInit({message0:"%1 %2",args0:[{type:"field_dropdown",name:"OP",options:[[Blockly.Msg.MATH_TRIG_SIN,"SIN"],[Blockly.Msg.MATH_TRIG_COS,"COS"],[Blockly.Msg.MATH_TRIG_TAN,"TAN"],[Blockly.Msg.MATH_TRIG_ASIN,"ASIN"],[Blockly.Msg.MATH_TRIG_ACOS,"ACOS"],[Blockly.Msg.MATH_TRIG_ATAN,"ATAN"]]},{type:"input_value",name:"NUM",check:"Number"}],output:"Number",colour:Blockly.Blocks.math.HUE,helpUrl:Blockly.Msg.MATH_TRIG_HELPURL});var a=this;this.setTooltip(function(){var b=\na.getFieldValue("OP");return{SIN:Blockly.Msg.MATH_TRIG_TOOLTIP_SIN,COS:Blockly.Msg.MATH_TRIG_TOOLTIP_COS,TAN:Blockly.Msg.MATH_TRIG_TOOLTIP_TAN,ASIN:Blockly.Msg.MATH_TRIG_TOOLTIP_ASIN,ACOS:Blockly.Msg.MATH_TRIG_TOOLTIP_ACOS,ATAN:Blockly.Msg.MATH_TRIG_TOOLTIP_ATAN}[b]})}};\nBlockly.Blocks.math_constant={init:function(){this.jsonInit({message0:"%1",args0:[{type:"field_dropdown",name:"CONSTANT",options:[["\\u03c0","PI"],["e","E"],["\\u03c6","GOLDEN_RATIO"],["sqrt(2)","SQRT2"],["sqrt(\\u00bd)","SQRT1_2"],["\\u221e","INFINITY"]]}],output:"Number",colour:Blockly.Blocks.math.HUE,tooltip:Blockly.Msg.MATH_CONSTANT_TOOLTIP,helpUrl:Blockly.Msg.MATH_CONSTANT_HELPURL})}};\nBlockly.Blocks.math_number_property={init:function(){var a=[[Blockly.Msg.MATH_IS_EVEN,"EVEN"],[Blockly.Msg.MATH_IS_ODD,"ODD"],[Blockly.Msg.MATH_IS_PRIME,"PRIME"],[Blockly.Msg.MATH_IS_WHOLE,"WHOLE"],[Blockly.Msg.MATH_IS_POSITIVE,"POSITIVE"],[Blockly.Msg.MATH_IS_NEGATIVE,"NEGATIVE"],[Blockly.Msg.MATH_IS_DIVISIBLE_BY,"DIVISIBLE_BY"]];this.setColour(Blockly.Blocks.math.HUE);this.appendValueInput("NUMBER_TO_CHECK").setCheck("Number");a=new Blockly.FieldDropdown(a,function(a){this.sourceBlock_.updateShape_("DIVISIBLE_BY"==\na)});this.appendDummyInput().appendField(a,"PROPERTY");this.setInputsInline(!0);this.setOutput(!0,"Boolean");this.setTooltip(Blockly.Msg.MATH_IS_TOOLTIP)},mutationToDom:function(){var a=document.createElement("mutation"),b="DIVISIBLE_BY"==this.getFieldValue("PROPERTY");a.setAttribute("divisor_input",b);return a},domToMutation:function(a){a="true"==a.getAttribute("divisor_input");this.updateShape_(a)},updateShape_:function(a){var b=this.getInput("DIVISOR");a?b||this.appendValueInput("DIVISOR").setCheck("Number"):\nb&&this.removeInput("DIVISOR")}};Blockly.Blocks.math_change={init:function(){this.jsonInit({message0:Blockly.Msg.MATH_CHANGE_TITLE,args0:[{type:"field_variable",name:"VAR",variable:Blockly.Msg.MATH_CHANGE_TITLE_ITEM},{type:"input_value",name:"DELTA",check:"Number"}],previousStatement:null,nextStatement:null,colour:Blockly.Blocks.variables.HUE,helpUrl:Blockly.Msg.MATH_CHANGE_HELPURL});var a=this;this.setTooltip(function(){return Blockly.Msg.MATH_CHANGE_TOOLTIP.replace("%1",a.getFieldValue("VAR"))})}};\nBlockly.Blocks.math_round={init:function(){this.jsonInit({message0:"%1 %2",args0:[{type:"field_dropdown",name:"OP",options:[[Blockly.Msg.MATH_ROUND_OPERATOR_ROUND,"ROUND"],[Blockly.Msg.MATH_ROUND_OPERATOR_ROUNDUP,"ROUNDUP"],[Blockly.Msg.MATH_ROUND_OPERATOR_ROUNDDOWN,"ROUNDDOWN"]]},{type:"input_value",name:"NUM",check:"Number"}],output:"Number",colour:Blockly.Blocks.math.HUE,tooltip:Blockly.Msg.MATH_ROUND_TOOLTIP,helpUrl:Blockly.Msg.MATH_ROUND_HELPURL})}};\nBlockly.Blocks.math_on_list={init:function(){var a=[[Blockly.Msg.MATH_ONLIST_OPERATOR_SUM,"SUM"],[Blockly.Msg.MATH_ONLIST_OPERATOR_MIN,"MIN"],[Blockly.Msg.MATH_ONLIST_OPERATOR_MAX,"MAX"],[Blockly.Msg.MATH_ONLIST_OPERATOR_AVERAGE,"AVERAGE"],[Blockly.Msg.MATH_ONLIST_OPERATOR_MEDIAN,"MEDIAN"],[Blockly.Msg.MATH_ONLIST_OPERATOR_MODE,"MODE"],[Blockly.Msg.MATH_ONLIST_OPERATOR_STD_DEV,"STD_DEV"],[Blockly.Msg.MATH_ONLIST_OPERATOR_RANDOM,"RANDOM"]],b=this;this.setHelpUrl(Blockly.Msg.MATH_ONLIST_HELPURL);this.setColour(Blockly.Blocks.math.HUE);\nthis.setOutput(!0,"Number");a=new Blockly.FieldDropdown(a,function(a){b.updateType_(a)});this.appendValueInput("LIST").setCheck("Array").appendField(a,"OP");this.setTooltip(function(){var a=b.getFieldValue("OP");return{SUM:Blockly.Msg.MATH_ONLIST_TOOLTIP_SUM,MIN:Blockly.Msg.MATH_ONLIST_TOOLTIP_MIN,MAX:Blockly.Msg.MATH_ONLIST_TOOLTIP_MAX,AVERAGE:Blockly.Msg.MATH_ONLIST_TOOLTIP_AVERAGE,MEDIAN:Blockly.Msg.MATH_ONLIST_TOOLTIP_MEDIAN,MODE:Blockly.Msg.MATH_ONLIST_TOOLTIP_MODE,STD_DEV:Blockly.Msg.MATH_ONLIST_TOOLTIP_STD_DEV,\nRANDOM:Blockly.Msg.MATH_ONLIST_TOOLTIP_RANDOM}[a]})},updateType_:function(a){"MODE"==a?this.outputConnection.setCheck("Array"):this.outputConnection.setCheck("Number")},mutationToDom:function(){var a=document.createElement("mutation");a.setAttribute("op",this.getFieldValue("OP"));return a},domToMutation:function(a){this.updateType_(a.getAttribute("op"))}};\nBlockly.Blocks.math_modulo={init:function(){this.jsonInit({message0:Blockly.Msg.MATH_MODULO_TITLE,args0:[{type:"input_value",name:"DIVIDEND",check:"Number"},{type:"input_value",name:"DIVISOR",check:"Number"}],inputsInline:!0,output:"Number",colour:Blockly.Blocks.math.HUE,tooltip:Blockly.Msg.MATH_MODULO_TOOLTIP,helpUrl:Blockly.Msg.MATH_MODULO_HELPURL})}};\nBlockly.Blocks.math_constrain={init:function(){this.jsonInit({message0:Blockly.Msg.MATH_CONSTRAIN_TITLE,args0:[{type:"input_value",name:"VALUE",check:"Number"},{type:"input_value",name:"LOW",check:"Number"},{type:"input_value",name:"HIGH",check:"Number"}],inputsInline:!0,output:"Number",colour:Blockly.Blocks.math.HUE,tooltip:Blockly.Msg.MATH_CONSTRAIN_TOOLTIP,helpUrl:Blockly.Msg.MATH_CONSTRAIN_HELPURL})}};\nBlockly.Blocks.math_random_int={init:function(){this.jsonInit({message0:Blockly.Msg.MATH_RANDOM_INT_TITLE,args0:[{type:"input_value",name:"FROM",check:"Number"},{type:"input_value",name:"TO",check:"Number"}],inputsInline:!0,output:"Number",colour:Blockly.Blocks.math.HUE,tooltip:Blockly.Msg.MATH_RANDOM_INT_TOOLTIP,helpUrl:Blockly.Msg.MATH_RANDOM_INT_HELPURL})}};\nBlockly.Blocks.math_random_float={init:function(){this.jsonInit({message0:Blockly.Msg.MATH_RANDOM_FLOAT_TITLE_RANDOM,output:"Number",colour:Blockly.Blocks.math.HUE,tooltip:Blockly.Msg.MATH_RANDOM_FLOAT_TOOLTIP,helpUrl:Blockly.Msg.MATH_RANDOM_FLOAT_HELPURL})}};Blockly.Blocks.loops={};Blockly.Blocks.loops.HUE=120;Blockly.Blocks.controls_repeat_ext={init:function(){this.jsonInit({message0:Blockly.Msg.CONTROLS_REPEAT_TITLE,args0:[{type:"input_value",name:"TIMES",check:"Number"}],previousStatement:null,nextStatement:null,colour:Blockly.Blocks.loops.HUE,tooltip:Blockly.Msg.CONTROLS_REPEAT_TOOLTIP,helpUrl:Blockly.Msg.CONTROLS_REPEAT_HELPURL});this.appendStatementInput("DO").appendField(Blockly.Msg.CONTROLS_REPEAT_INPUT_DO)}};\nBlockly.Blocks.controls_repeat={init:function(){this.jsonInit({message0:Blockly.Msg.CONTROLS_REPEAT_TITLE,args0:[{type:"field_number",name:"TIMES",value:10,min:0,precision:1}],previousStatement:null,nextStatement:null,colour:Blockly.Blocks.loops.HUE,tooltip:Blockly.Msg.CONTROLS_REPEAT_TOOLTIP,helpUrl:Blockly.Msg.CONTROLS_REPEAT_HELPURL});this.appendStatementInput("DO").appendField(Blockly.Msg.CONTROLS_REPEAT_INPUT_DO)}};\nBlockly.Blocks.controls_whileUntil={init:function(){var a=[[Blockly.Msg.CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[Blockly.Msg.CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]];this.setHelpUrl(Blockly.Msg.CONTROLS_WHILEUNTIL_HELPURL);this.setColour(Blockly.Blocks.loops.HUE);this.appendValueInput("BOOL").setCheck("Boolean").appendField(new Blockly.FieldDropdown(a),"MODE");this.appendStatementInput("DO").appendField(Blockly.Msg.CONTROLS_WHILEUNTIL_INPUT_DO);this.setPreviousStatement(!0);this.setNextStatement(!0);\nvar b=this;this.setTooltip(function(){var a=b.getFieldValue("MODE");return{WHILE:Blockly.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:Blockly.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[a]})}};\nBlockly.Blocks.controls_for={init:function(){this.jsonInit({message0:Blockly.Msg.CONTROLS_FOR_TITLE,args0:[{type:"field_variable",name:"VAR",variable:null},{type:"input_value",name:"FROM",check:"Number",align:"RIGHT"},{type:"input_value",name:"TO",check:"Number",align:"RIGHT"},{type:"input_value",name:"BY",check:"Number",align:"RIGHT"}],inputsInline:!0,previousStatement:null,nextStatement:null,colour:Blockly.Blocks.loops.HUE,helpUrl:Blockly.Msg.CONTROLS_FOR_HELPURL});this.appendStatementInput("DO").appendField(Blockly.Msg.CONTROLS_FOR_INPUT_DO);\nvar a=this;this.setTooltip(function(){return Blockly.Msg.CONTROLS_FOR_TOOLTIP.replace("%1",a.getFieldValue("VAR"))})},customContextMenu:function(a){if(!this.isCollapsed()){var b={enabled:!0},c=this.getFieldValue("VAR");b.text=Blockly.Msg.VARIABLES_SET_CREATE_GET.replace("%1",c);c=goog.dom.createDom("field",null,c);c.setAttribute("name","VAR");c=goog.dom.createDom("block",null,c);c.setAttribute("type","variables_get");b.callback=Blockly.ContextMenu.callbackFactory(this,c);a.push(b)}}};\nBlockly.Blocks.controls_forEach={init:function(){this.jsonInit({message0:Blockly.Msg.CONTROLS_FOREACH_TITLE,args0:[{type:"field_variable",name:"VAR",variable:null},{type:"input_value",name:"LIST",check:"Array"}],previousStatement:null,nextStatement:null,colour:Blockly.Blocks.loops.HUE,helpUrl:Blockly.Msg.CONTROLS_FOREACH_HELPURL});this.appendStatementInput("DO").appendField(Blockly.Msg.CONTROLS_FOREACH_INPUT_DO);var a=this;this.setTooltip(function(){return Blockly.Msg.CONTROLS_FOREACH_TOOLTIP.replace("%1",\na.getFieldValue("VAR"))})},customContextMenu:Blockly.Blocks.controls_for.customContextMenu};\nBlockly.Blocks.controls_flow_statements={init:function(){var a=[[Blockly.Msg.CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[Blockly.Msg.CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]];this.setHelpUrl(Blockly.Msg.CONTROLS_FLOW_STATEMENTS_HELPURL);this.setColour(Blockly.Blocks.loops.HUE);this.appendDummyInput().appendField(new Blockly.FieldDropdown(a),"FLOW");this.setPreviousStatement(!0);var b=this;this.setTooltip(function(){var a=b.getFieldValue("FLOW");return{BREAK:Blockly.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,\nCONTINUE:Blockly.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}[a]})},onchange:function(a){if(this.workspace.isDragging&&!this.workspace.isDragging()){a=!1;var b=this;do{if(-1!=this.LOOP_TYPES.indexOf(b.type)){a=!0;break}b=b.getSurroundParent()}while(b);a?(this.setWarningText(null),this.isInFlyout||this.setDisabled(!1)):(this.setWarningText(Blockly.Msg.CONTROLS_FLOW_STATEMENTS_WARNING),this.isInFlyout||this.getInheritedDisabled()||this.setDisabled(!0))}},LOOP_TYPES:["controls_repeat","controls_repeat_ext",\n"controls_forEach","controls_for","controls_whileUntil"]};Blockly.Blocks.texts={};Blockly.Blocks.texts.HUE=160;\nBlockly.Blocks.text={init:function(){this.setHelpUrl(Blockly.Msg.TEXT_TEXT_HELPURL);this.setColour(Blockly.Blocks.texts.HUE);this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new Blockly.FieldTextInput(""),"TEXT").appendField(this.newQuote_(!1));this.setOutput(!0,"String");var a=this;this.setTooltip(function(){var b=a.getParent();return b&&b.getInputsInline()&&b.tooltip||Blockly.Msg.TEXT_TEXT_TOOLTIP})},newQuote_:function(a){return new Blockly.FieldImage(a==this.RTL?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAqUlEQVQI1z3KvUpCcRiA8ef9E4JNHhI0aFEacm1o0BsI0Slx8wa8gLauoDnoBhq7DcfWhggONDmJJgqCPA7neJ7p934EOOKOnM8Q7PDElo/4x4lFb2DmuUjcUzS3URnGib9qaPNbuXvBO3sGPHJDRG6fGVdMSeWDP2q99FQdFrz26Gu5Tq7dFMzUvbXy8KXeAj57cOklgA+u1B5AoslLtGIHQMaCVnwDnADZIFIrXsoXrgAAAABJRU5ErkJggg==":\n"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAn0lEQVQI1z3OMa5BURSF4f/cQhAKjUQhuQmFNwGJEUi0RKN5rU7FHKhpjEH3TEMtkdBSCY1EIv8r7nFX9e29V7EBAOvu7RPjwmWGH/VuF8CyN9/OAdvqIXYLvtRaNjx9mMTDyo+NjAN1HNcl9ZQ5oQMM3dgDUqDo1l8DzvwmtZN7mnD+PkmLa+4mhrxVA9fRowBWmVBhFy5gYEjKMfz9AylsaRRgGzvZAAAAAElFTkSuQmCC",12,12,\'"\')}};\nBlockly.Blocks.text_join={init:function(){this.setHelpUrl(Blockly.Msg.TEXT_JOIN_HELPURL);this.setColour(Blockly.Blocks.texts.HUE);this.itemCount_=2;this.updateShape_();this.setOutput(!0,"String");this.setMutator(new Blockly.Mutator(["text_create_join_item"]));this.setTooltip(Blockly.Msg.TEXT_JOIN_TOOLTIP)},mutationToDom:function(){var a=document.createElement("mutation");a.setAttribute("items",this.itemCount_);return a},domToMutation:function(a){this.itemCount_=parseInt(a.getAttribute("items"),10);\nthis.updateShape_()},decompose:function(a){var b=a.newBlock("text_create_join_container");b.initSvg();for(var c=b.getInput("STACK").connection,e=0;e<this.itemCount_;e++){var d=a.newBlock("text_create_join_item");d.initSvg();c.connect(d.previousConnection);c=d.nextConnection}return b},compose:function(a){var b=a.getInputTargetBlock("STACK");for(a=[];b;)a.push(b.valueConnection_),b=b.nextConnection&&b.nextConnection.targetBlock();for(b=0;b<this.itemCount_;b++){var c=this.getInput("ADD"+b).connection.targetConnection;\nc&&-1==a.indexOf(c)&&c.disconnect()}this.itemCount_=a.length;this.updateShape_();for(b=0;b<this.itemCount_;b++)Blockly.Mutator.reconnect(a[b],this,"ADD"+b)},saveConnections:function(a){a=a.getInputTargetBlock("STACK");for(var b=0;a;){var c=this.getInput("ADD"+b);a.valueConnection_=c&&c.connection.targetConnection;b++;a=a.nextConnection&&a.nextConnection.targetBlock()}},updateShape_:function(){this.itemCount_&&this.getInput("EMPTY")?this.removeInput("EMPTY"):this.itemCount_||this.getInput("EMPTY")||\nthis.appendDummyInput("EMPTY").appendField(this.newQuote_(!0)).appendField(this.newQuote_(!1));for(var a=0;a<this.itemCount_;a++)if(!this.getInput("ADD"+a)){var b=this.appendValueInput("ADD"+a);0==a&&b.appendField(Blockly.Msg.TEXT_JOIN_TITLE_CREATEWITH)}for(;this.getInput("ADD"+a);)this.removeInput("ADD"+a),a++},newQuote_:Blockly.Blocks.text.newQuote_};\nBlockly.Blocks.text_create_join_container={init:function(){this.setColour(Blockly.Blocks.texts.HUE);this.appendDummyInput().appendField(Blockly.Msg.TEXT_CREATE_JOIN_TITLE_JOIN);this.appendStatementInput("STACK");this.setTooltip(Blockly.Msg.TEXT_CREATE_JOIN_TOOLTIP);this.contextMenu=!1}};\nBlockly.Blocks.text_create_join_item={init:function(){this.setColour(Blockly.Blocks.texts.HUE);this.appendDummyInput().appendField(Blockly.Msg.TEXT_CREATE_JOIN_ITEM_TITLE_ITEM);this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.TEXT_CREATE_JOIN_ITEM_TOOLTIP);this.contextMenu=!1}};\nBlockly.Blocks.text_append={init:function(){this.setHelpUrl(Blockly.Msg.TEXT_APPEND_HELPURL);this.setColour(Blockly.Blocks.texts.HUE);this.appendValueInput("TEXT").appendField(Blockly.Msg.TEXT_APPEND_TO).appendField(new Blockly.FieldVariable(Blockly.Msg.TEXT_APPEND_VARIABLE),"VAR").appendField(Blockly.Msg.TEXT_APPEND_APPENDTEXT);this.setPreviousStatement(!0);this.setNextStatement(!0);var a=this;this.setTooltip(function(){return Blockly.Msg.TEXT_APPEND_TOOLTIP.replace("%1",a.getFieldValue("VAR"))})}};\nBlockly.Blocks.text_length={init:function(){this.jsonInit({message0:Blockly.Msg.TEXT_LENGTH_TITLE,args0:[{type:"input_value",name:"VALUE",check:["String","Array"]}],output:"Number",colour:Blockly.Blocks.texts.HUE,tooltip:Blockly.Msg.TEXT_LENGTH_TOOLTIP,helpUrl:Blockly.Msg.TEXT_LENGTH_HELPURL})}};\nBlockly.Blocks.text_isEmpty={init:function(){this.jsonInit({message0:Blockly.Msg.TEXT_ISEMPTY_TITLE,args0:[{type:"input_value",name:"VALUE",check:["String","Array"]}],output:"Boolean",colour:Blockly.Blocks.texts.HUE,tooltip:Blockly.Msg.TEXT_ISEMPTY_TOOLTIP,helpUrl:Blockly.Msg.TEXT_ISEMPTY_HELPURL})}};\nBlockly.Blocks.text_indexOf={init:function(){var a=[[Blockly.Msg.TEXT_INDEXOF_OPERATOR_FIRST,"FIRST"],[Blockly.Msg.TEXT_INDEXOF_OPERATOR_LAST,"LAST"]];this.setHelpUrl(Blockly.Msg.TEXT_INDEXOF_HELPURL);this.setColour(Blockly.Blocks.texts.HUE);this.setOutput(!0,"Number");this.appendValueInput("VALUE").setCheck("String").appendField(Blockly.Msg.TEXT_INDEXOF_INPUT_INTEXT);this.appendValueInput("FIND").setCheck("String").appendField(new Blockly.FieldDropdown(a),"END");Blockly.Msg.TEXT_INDEXOF_TAIL&&this.appendDummyInput().appendField(Blockly.Msg.TEXT_INDEXOF_TAIL);\nthis.setInputsInline(!0);var b=this;this.setTooltip(function(){return Blockly.Msg.TEXT_INDEXOF_TOOLTIP.replace("%1",b.workspace.options.oneBasedIndex?"0":"-1")})}};\nBlockly.Blocks.text_charAt={init:function(){this.WHERE_OPTIONS=[[Blockly.Msg.TEXT_CHARAT_FROM_START,"FROM_START"],[Blockly.Msg.TEXT_CHARAT_FROM_END,"FROM_END"],[Blockly.Msg.TEXT_CHARAT_FIRST,"FIRST"],[Blockly.Msg.TEXT_CHARAT_LAST,"LAST"],[Blockly.Msg.TEXT_CHARAT_RANDOM,"RANDOM"]];this.setHelpUrl(Blockly.Msg.TEXT_CHARAT_HELPURL);this.setColour(Blockly.Blocks.texts.HUE);this.setOutput(!0,"String");this.appendValueInput("VALUE").setCheck("String").appendField(Blockly.Msg.TEXT_CHARAT_INPUT_INTEXT);this.appendDummyInput("AT");\nthis.setInputsInline(!0);this.updateAt_(!0);var a=this;this.setTooltip(function(){var b=a.getFieldValue("WHERE"),c=Blockly.Msg.TEXT_CHARAT_TOOLTIP;if("FROM_START"==b||"FROM_END"==b)c+=" "+("FROM_START"==b?Blockly.Msg.LISTS_INDEX_FROM_START_TOOLTIP:Blockly.Msg.LISTS_INDEX_FROM_END_TOOLTIP).replace("%1",a.workspace.options.oneBasedIndex?"#1":"#0");return c})},mutationToDom:function(){var a=document.createElement("mutation"),b=this.getInput("AT").type==Blockly.INPUT_VALUE;a.setAttribute("at",b);return a},\ndomToMutation:function(a){a="false"!=a.getAttribute("at");this.updateAt_(a)},updateAt_:function(a){this.removeInput("AT");this.removeInput("ORDINAL",!0);a?(this.appendValueInput("AT").setCheck("Number"),Blockly.Msg.ORDINAL_NUMBER_SUFFIX&&this.appendDummyInput("ORDINAL").appendField(Blockly.Msg.ORDINAL_NUMBER_SUFFIX)):this.appendDummyInput("AT");Blockly.Msg.TEXT_CHARAT_TAIL&&(this.removeInput("TAIL",!0),this.appendDummyInput("TAIL").appendField(Blockly.Msg.TEXT_CHARAT_TAIL));var b=new Blockly.FieldDropdown(this.WHERE_OPTIONS,\nfunction(b){var c="FROM_START"==b||"FROM_END"==b;if(c!=a){var d=this.sourceBlock_;d.updateAt_(c);d.setFieldValue(b,"WHERE");return null}});this.getInput("AT").appendField(b,"WHERE")}};\nBlockly.Blocks.text_getSubstring={init:function(){this.WHERE_OPTIONS_1=[[Blockly.Msg.TEXT_GET_SUBSTRING_START_FROM_START,"FROM_START"],[Blockly.Msg.TEXT_GET_SUBSTRING_START_FROM_END,"FROM_END"],[Blockly.Msg.TEXT_GET_SUBSTRING_START_FIRST,"FIRST"]];this.WHERE_OPTIONS_2=[[Blockly.Msg.TEXT_GET_SUBSTRING_END_FROM_START,"FROM_START"],[Blockly.Msg.TEXT_GET_SUBSTRING_END_FROM_END,"FROM_END"],[Blockly.Msg.TEXT_GET_SUBSTRING_END_LAST,"LAST"]];this.setHelpUrl(Blockly.Msg.TEXT_GET_SUBSTRING_HELPURL);this.setColour(Blockly.Blocks.texts.HUE);\nthis.appendValueInput("STRING").setCheck("String").appendField(Blockly.Msg.TEXT_GET_SUBSTRING_INPUT_IN_TEXT);this.appendDummyInput("AT1");this.appendDummyInput("AT2");Blockly.Msg.TEXT_GET_SUBSTRING_TAIL&&this.appendDummyInput("TAIL").appendField(Blockly.Msg.TEXT_GET_SUBSTRING_TAIL);this.setInputsInline(!0);this.setOutput(!0,"String");this.updateAt_(1,!0);this.updateAt_(2,!0);this.setTooltip(Blockly.Msg.TEXT_GET_SUBSTRING_TOOLTIP)},mutationToDom:function(){var a=document.createElement("mutation"),\nb=this.getInput("AT1").type==Blockly.INPUT_VALUE;a.setAttribute("at1",b);b=this.getInput("AT2").type==Blockly.INPUT_VALUE;a.setAttribute("at2",b);return a},domToMutation:function(a){var b="true"==a.getAttribute("at1");a="true"==a.getAttribute("at2");this.updateAt_(1,b);this.updateAt_(2,a)},updateAt_:function(a,b){this.removeInput("AT"+a);this.removeInput("ORDINAL"+a,!0);b?(this.appendValueInput("AT"+a).setCheck("Number"),Blockly.Msg.ORDINAL_NUMBER_SUFFIX&&this.appendDummyInput("ORDINAL"+a).appendField(Blockly.Msg.ORDINAL_NUMBER_SUFFIX)):\nthis.appendDummyInput("AT"+a);2==a&&Blockly.Msg.TEXT_GET_SUBSTRING_TAIL&&(this.removeInput("TAIL",!0),this.appendDummyInput("TAIL").appendField(Blockly.Msg.TEXT_GET_SUBSTRING_TAIL));var c=new Blockly.FieldDropdown(this["WHERE_OPTIONS_"+a],function(c){var d="FROM_START"==c||"FROM_END"==c;if(d!=b){var e=this.sourceBlock_;e.updateAt_(a,d);e.setFieldValue(c,"WHERE"+a);return null}});this.getInput("AT"+a).appendField(c,"WHERE"+a);1==a&&this.moveInputBefore("AT1","AT2")}};\nBlockly.Blocks.text_changeCase={init:function(){var a=[[Blockly.Msg.TEXT_CHANGECASE_OPERATOR_UPPERCASE,"UPPERCASE"],[Blockly.Msg.TEXT_CHANGECASE_OPERATOR_LOWERCASE,"LOWERCASE"],[Blockly.Msg.TEXT_CHANGECASE_OPERATOR_TITLECASE,"TITLECASE"]];this.setHelpUrl(Blockly.Msg.TEXT_CHANGECASE_HELPURL);this.setColour(Blockly.Blocks.texts.HUE);this.appendValueInput("TEXT").setCheck("String").appendField(new Blockly.FieldDropdown(a),"CASE");this.setOutput(!0,"String");this.setTooltip(Blockly.Msg.TEXT_CHANGECASE_TOOLTIP)}};\nBlockly.Blocks.text_trim={init:function(){var a=[[Blockly.Msg.TEXT_TRIM_OPERATOR_BOTH,"BOTH"],[Blockly.Msg.TEXT_TRIM_OPERATOR_LEFT,"LEFT"],[Blockly.Msg.TEXT_TRIM_OPERATOR_RIGHT,"RIGHT"]];this.setHelpUrl(Blockly.Msg.TEXT_TRIM_HELPURL);this.setColour(Blockly.Blocks.texts.HUE);this.appendValueInput("TEXT").setCheck("String").appendField(new Blockly.FieldDropdown(a),"MODE");this.setOutput(!0,"String");this.setTooltip(Blockly.Msg.TEXT_TRIM_TOOLTIP)}};\nBlockly.Blocks.text_print={init:function(){this.jsonInit({message0:Blockly.Msg.TEXT_PRINT_TITLE,args0:[{type:"input_value",name:"TEXT"}],previousStatement:null,nextStatement:null,colour:Blockly.Blocks.texts.HUE,tooltip:Blockly.Msg.TEXT_PRINT_TOOLTIP,helpUrl:Blockly.Msg.TEXT_PRINT_HELPURL})}};\nBlockly.Blocks.text_prompt_ext={init:function(){var a=[[Blockly.Msg.TEXT_PROMPT_TYPE_TEXT,"TEXT"],[Blockly.Msg.TEXT_PROMPT_TYPE_NUMBER,"NUMBER"]];this.setHelpUrl(Blockly.Msg.TEXT_PROMPT_HELPURL);this.setColour(Blockly.Blocks.texts.HUE);var b=this,a=new Blockly.FieldDropdown(a,function(a){b.updateType_(a)});this.appendValueInput("TEXT").appendField(a,"TYPE");this.setOutput(!0,"String");this.setTooltip(function(){return"TEXT"==b.getFieldValue("TYPE")?Blockly.Msg.TEXT_PROMPT_TOOLTIP_TEXT:Blockly.Msg.TEXT_PROMPT_TOOLTIP_NUMBER})},\nupdateType_:function(a){this.outputConnection.setCheck("NUMBER"==a?"Number":"String")},mutationToDom:function(){var a=document.createElement("mutation");a.setAttribute("type",this.getFieldValue("TYPE"));return a},domToMutation:function(a){this.updateType_(a.getAttribute("type"))}};\nBlockly.Blocks.text_prompt={init:function(){var a=[[Blockly.Msg.TEXT_PROMPT_TYPE_TEXT,"TEXT"],[Blockly.Msg.TEXT_PROMPT_TYPE_NUMBER,"NUMBER"]],b=this;this.setHelpUrl(Blockly.Msg.TEXT_PROMPT_HELPURL);this.setColour(Blockly.Blocks.texts.HUE);a=new Blockly.FieldDropdown(a,function(a){b.updateType_(a)});this.appendDummyInput().appendField(a,"TYPE").appendField(this.newQuote_(!0)).appendField(new Blockly.FieldTextInput(""),"TEXT").appendField(this.newQuote_(!1));this.setOutput(!0,"String");this.setTooltip(function(){return"TEXT"==\nb.getFieldValue("TYPE")?Blockly.Msg.TEXT_PROMPT_TOOLTIP_TEXT:Blockly.Msg.TEXT_PROMPT_TOOLTIP_NUMBER})},newQuote_:Blockly.Blocks.text.newQuote_,updateType_:Blockly.Blocks.text_prompt_ext.updateType_,mutationToDom:Blockly.Blocks.text_prompt_ext.mutationToDom,domToMutation:Blockly.Blocks.text_prompt_ext.domToMutation};Blockly.Blocks.procedures={};Blockly.Blocks.procedures.HUE=290;\nBlockly.Blocks.procedures_defnoreturn={init:function(){var a=new Blockly.FieldTextInput(Blockly.Msg.PROCEDURES_DEFNORETURN_PROCEDURE,Blockly.Procedures.rename);a.setSpellcheck(!1);this.appendDummyInput().appendField(Blockly.Msg.PROCEDURES_DEFNORETURN_TITLE).appendField(a,"NAME").appendField("","PARAMS");this.setMutator(new Blockly.Mutator(["procedures_mutatorarg"]));(this.workspace.options.comments||this.workspace.options.parentWorkspace&&this.workspace.options.parentWorkspace.options.comments)&&\nBlockly.Msg.PROCEDURES_DEFNORETURN_COMMENT&&this.setCommentText(Blockly.Msg.PROCEDURES_DEFNORETURN_COMMENT);this.setColour(Blockly.Blocks.procedures.HUE);this.setTooltip(Blockly.Msg.PROCEDURES_DEFNORETURN_TOOLTIP);this.setHelpUrl(Blockly.Msg.PROCEDURES_DEFNORETURN_HELPURL);this.arguments_=[];this.setStatements_(!0);this.statementConnection_=null},setStatements_:function(a){this.hasStatements_!==a&&(a?(this.appendStatementInput("STACK").appendField(Blockly.Msg.PROCEDURES_DEFNORETURN_DO),this.getInput("RETURN")&&\nthis.moveInputBefore("STACK","RETURN")):this.removeInput("STACK",!0),this.hasStatements_=a)},updateParams_:function(){for(var a=!1,b={},c=0;c<this.arguments_.length;c++){if(b["arg_"+this.arguments_[c].toLowerCase()]){a=!0;break}b["arg_"+this.arguments_[c].toLowerCase()]=!0}a?this.setWarningText(Blockly.Msg.PROCEDURES_DEF_DUPLICATE_WARNING):this.setWarningText(null);a="";this.arguments_.length&&(a=Blockly.Msg.PROCEDURES_BEFORE_PARAMS+" "+this.arguments_.join(", "));Blockly.Events.disable();try{this.setFieldValue(a,\n"PARAMS")}finally{Blockly.Events.enable()}},mutationToDom:function(a){var b=document.createElement("mutation");a&&b.setAttribute("name",this.getFieldValue("NAME"));for(var c=0;c<this.arguments_.length;c++){var e=document.createElement("arg");e.setAttribute("name",this.arguments_[c]);a&&this.paramIds_&&e.setAttribute("paramId",this.paramIds_[c]);b.appendChild(e)}this.hasStatements_||b.setAttribute("statements","false");return b},domToMutation:function(a){this.arguments_=[];for(var b=0,c;c=a.childNodes[b];b++)"arg"==\nc.nodeName.toLowerCase()&&this.arguments_.push(c.getAttribute("name"));this.updateParams_();Blockly.Procedures.mutateCallers(this);this.setStatements_("false"!==a.getAttribute("statements"))},decompose:function(a){var b=a.newBlock("procedures_mutatorcontainer");b.initSvg();this.getInput("RETURN")?b.setFieldValue(this.hasStatements_?"TRUE":"FALSE","STATEMENTS"):b.getInput("STATEMENT_INPUT").setVisible(!1);for(var c=b.getInput("STACK").connection,e=0;e<this.arguments_.length;e++){var d=a.newBlock("procedures_mutatorarg");\nd.initSvg();d.setFieldValue(this.arguments_[e],"NAME");d.oldLocation=e;c.connect(d.previousConnection);c=d.nextConnection}Blockly.Procedures.mutateCallers(this);return b},compose:function(a){this.arguments_=[];this.paramIds_=[];for(var b=a.getInputTargetBlock("STACK");b;)this.arguments_.push(b.getFieldValue("NAME")),this.paramIds_.push(b.id),b=b.nextConnection&&b.nextConnection.targetBlock();this.updateParams_();Blockly.Procedures.mutateCallers(this);a=a.getFieldValue("STATEMENTS");if(null!==a&&(a=\n"TRUE"==a,this.hasStatements_!=a))if(a)this.setStatements_(!0),Blockly.Mutator.reconnect(this.statementConnection_,this,"STACK"),this.statementConnection_=null;else{a=this.getInput("STACK").connection;if(this.statementConnection_=a.targetConnection)a=a.targetBlock(),a.unplug(),a.bumpNeighbours_();this.setStatements_(!1)}},getProcedureDef:function(){return[this.getFieldValue("NAME"),this.arguments_,!1]},getVars:function(){return this.arguments_},renameVar:function(a,b){for(var c=!1,e=0;e<this.arguments_.length;e++)Blockly.Names.equals(a,\nthis.arguments_[e])&&(this.arguments_[e]=b,c=!0);if(c&&(this.updateParams_(),this.mutator.isVisible()))for(var c=this.mutator.workspace_.getAllBlocks(),e=0,d;d=c[e];e++)"procedures_mutatorarg"==d.type&&Blockly.Names.equals(a,d.getFieldValue("NAME"))&&d.setFieldValue(b,"NAME")},customContextMenu:function(a){var b={enabled:!0},c=this.getFieldValue("NAME");b.text=Blockly.Msg.PROCEDURES_CREATE_DO.replace("%1",c);var e=goog.dom.createDom("mutation");e.setAttribute("name",c);for(var d=0;d<this.arguments_.length;d++)c=\ngoog.dom.createDom("arg"),c.setAttribute("name",this.arguments_[d]),e.appendChild(c);e=goog.dom.createDom("block",null,e);e.setAttribute("type",this.callType_);b.callback=Blockly.ContextMenu.callbackFactory(this,e);a.push(b);if(!this.isCollapsed())for(d=0;d<this.arguments_.length;d++)b={enabled:!0},c=this.arguments_[d],b.text=Blockly.Msg.VARIABLES_SET_CREATE_GET.replace("%1",c),e=goog.dom.createDom("field",null,c),e.setAttribute("name","VAR"),e=goog.dom.createDom("block",null,e),e.setAttribute("type",\n"variables_get"),b.callback=Blockly.ContextMenu.callbackFactory(this,e),a.push(b)},callType_:"procedures_callnoreturn"};\nBlockly.Blocks.procedures_defreturn={init:function(){var a=new Blockly.FieldTextInput(Blockly.Msg.PROCEDURES_DEFRETURN_PROCEDURE,Blockly.Procedures.rename);a.setSpellcheck(!1);this.appendDummyInput().appendField(Blockly.Msg.PROCEDURES_DEFRETURN_TITLE).appendField(a,"NAME").appendField("","PARAMS");this.appendValueInput("RETURN").setAlign(Blockly.ALIGN_RIGHT).appendField(Blockly.Msg.PROCEDURES_DEFRETURN_RETURN);this.setMutator(new Blockly.Mutator(["procedures_mutatorarg"]));(this.workspace.options.comments||\nthis.workspace.options.parentWorkspace&&this.workspace.options.parentWorkspace.options.comments)&&Blockly.Msg.PROCEDURES_DEFRETURN_COMMENT&&this.setCommentText(Blockly.Msg.PROCEDURES_DEFRETURN_COMMENT);this.setColour(Blockly.Blocks.procedures.HUE);this.setTooltip(Blockly.Msg.PROCEDURES_DEFRETURN_TOOLTIP);this.setHelpUrl(Blockly.Msg.PROCEDURES_DEFRETURN_HELPURL);this.arguments_=[];this.setStatements_(!0);this.statementConnection_=null},setStatements_:Blockly.Blocks.procedures_defnoreturn.setStatements_,\nupdateParams_:Blockly.Blocks.procedures_defnoreturn.updateParams_,mutationToDom:Blockly.Blocks.procedures_defnoreturn.mutationToDom,domToMutation:Blockly.Blocks.procedures_defnoreturn.domToMutation,decompose:Blockly.Blocks.procedures_defnoreturn.decompose,compose:Blockly.Blocks.procedures_defnoreturn.compose,getProcedureDef:function(){return[this.getFieldValue("NAME"),this.arguments_,!0]},getVars:Blockly.Blocks.procedures_defnoreturn.getVars,renameVar:Blockly.Blocks.procedures_defnoreturn.renameVar,\ncustomContextMenu:Blockly.Blocks.procedures_defnoreturn.customContextMenu,callType_:"procedures_callreturn"};\nBlockly.Blocks.procedures_mutatorcontainer={init:function(){this.appendDummyInput().appendField(Blockly.Msg.PROCEDURES_MUTATORCONTAINER_TITLE);this.appendStatementInput("STACK");this.appendDummyInput("STATEMENT_INPUT").appendField(Blockly.Msg.PROCEDURES_ALLOW_STATEMENTS).appendField(new Blockly.FieldCheckbox("TRUE"),"STATEMENTS");this.setColour(Blockly.Blocks.procedures.HUE);this.setTooltip(Blockly.Msg.PROCEDURES_MUTATORCONTAINER_TOOLTIP);this.contextMenu=!1}};\nBlockly.Blocks.procedures_mutatorarg={init:function(){var a=new Blockly.FieldTextInput("x",this.validator_);this.appendDummyInput().appendField(Blockly.Msg.PROCEDURES_MUTATORARG_TITLE).appendField(a,"NAME");this.setPreviousStatement(!0);this.setNextStatement(!0);this.setColour(Blockly.Blocks.procedures.HUE);this.setTooltip(Blockly.Msg.PROCEDURES_MUTATORARG_TOOLTIP);this.contextMenu=!1;a.onFinishEditing_=this.createNewVar_;a.onFinishEditing_("x")},validator_:function(a){return(a=a.replace(/[\\s\\xa0]+/g,\n" ").replace(/^ | $/g,""))||null},createNewVar_:function(a){var b=this.sourceBlock_;b&&b.workspace&&b.workspace.options&&b.workspace.options.parentWorkspace&&b.workspace.options.parentWorkspace.createVariable(a)}};\nBlockly.Blocks.procedures_callnoreturn={init:function(){this.appendDummyInput("TOPROW").appendField(this.id,"NAME");this.setPreviousStatement(!0);this.setNextStatement(!0);this.setColour(Blockly.Blocks.procedures.HUE);this.setHelpUrl(Blockly.Msg.PROCEDURES_CALLNORETURN_HELPURL);this.arguments_=[];this.quarkConnections_={};this.quarkIds_=null},getProcedureCall:function(){return this.getFieldValue("NAME")},renameProcedure:function(a,b){Blockly.Names.equals(a,this.getProcedureCall())&&(this.setFieldValue(b,\n"NAME"),this.setTooltip((this.outputConnection?Blockly.Msg.PROCEDURES_CALLRETURN_TOOLTIP:Blockly.Msg.PROCEDURES_CALLNORETURN_TOOLTIP).replace("%1",b)))},setProcedureParameters_:function(a,b){var c=Blockly.Procedures.getDefinition(this.getProcedureCall(),this.workspace),e=c&&c.mutator&&c.mutator.isVisible();e||(this.quarkConnections_={},this.quarkIds_=null);if(b)if(goog.array.equals(this.arguments_,a))this.quarkIds_=b;else{if(b.length!=a.length)throw"Error: paramNames and paramIds must be the same length.";\nthis.setCollapsed(!1);this.quarkIds_||(this.quarkConnections_={},a.join("\\n")==this.arguments_.join("\\n")?this.quarkIds_=b:this.quarkIds_=[]);c=this.rendered;this.rendered=!1;for(var d=0;d<this.arguments_.length;d++){var f=this.getInput("ARG"+d);f&&(f=f.connection.targetConnection,this.quarkConnections_[this.quarkIds_[d]]=f,e&&f&&-1==b.indexOf(this.quarkIds_[d])&&(f.disconnect(),f.getSourceBlock().bumpNeighbours_()))}this.arguments_=[].concat(a);this.updateShape_();if(this.quarkIds_=b)for(d=0;d<this.arguments_.length;d++)e=\nthis.quarkIds_[d],e in this.quarkConnections_&&(f=this.quarkConnections_[e],Blockly.Mutator.reconnect(f,this,"ARG"+d)||delete this.quarkConnections_[e]);(this.rendered=c)&&this.render()}},updateShape_:function(){for(var a=0;a<this.arguments_.length;a++){var b=this.getField("ARGNAME"+a);if(b){Blockly.Events.disable();try{b.setValue(this.arguments_[a])}finally{Blockly.Events.enable()}}else b=new Blockly.FieldLabel(this.arguments_[a]),this.appendValueInput("ARG"+a).setAlign(Blockly.ALIGN_RIGHT).appendField(b,\n"ARGNAME"+a).init()}for(;this.getInput("ARG"+a);)this.removeInput("ARG"+a),a++;if(a=this.getInput("TOPROW"))this.arguments_.length?this.getField("WITH")||(a.appendField(Blockly.Msg.PROCEDURES_CALL_BEFORE_PARAMS,"WITH"),a.init()):this.getField("WITH")&&a.removeField("WITH")},mutationToDom:function(){var a=document.createElement("mutation");a.setAttribute("name",this.getProcedureCall());for(var b=0;b<this.arguments_.length;b++){var c=document.createElement("arg");c.setAttribute("name",this.arguments_[b]);\na.appendChild(c)}return a},domToMutation:function(a){var b=a.getAttribute("name");this.renameProcedure(this.getProcedureCall(),b);for(var b=[],c=[],e=0,d;d=a.childNodes[e];e++)"arg"==d.nodeName.toLowerCase()&&(b.push(d.getAttribute("name")),c.push(d.getAttribute("paramId")));this.setProcedureParameters_(b,c)},renameVar:function(a,b){for(var c=0;c<this.arguments_.length;c++)Blockly.Names.equals(a,this.arguments_[c])&&(this.arguments_[c]=b,this.getField("ARGNAME"+c).setValue(b))},onchange:function(a){if(this.workspace&&\n!this.workspace.isFlyout)if(a.type==Blockly.Events.CREATE&&-1!=a.ids.indexOf(this.id)){var b=this.getProcedureCall(),b=Blockly.Procedures.getDefinition(b,this.workspace);!b||b.type==this.defType_&&JSON.stringify(b.arguments_)==JSON.stringify(this.arguments_)||(b=null);if(!b){Blockly.Events.setGroup(a.group);a=goog.dom.createDom("xml");b=goog.dom.createDom("block");b.setAttribute("type",this.defType_);var c=this.getRelativeToSurfaceXY(),e=c.y+2*Blockly.SNAP_RADIUS;b.setAttribute("x",c.x+Blockly.SNAP_RADIUS*\n(this.RTL?-1:1));b.setAttribute("y",e);c=this.mutationToDom();b.appendChild(c);c=goog.dom.createDom("field");c.setAttribute("name","NAME");c.appendChild(document.createTextNode(this.getProcedureCall()));b.appendChild(c);a.appendChild(b);Blockly.Xml.domToWorkspace(a,this.workspace);Blockly.Events.setGroup(!1)}}else a.type==Blockly.Events.DELETE&&(b=this.getProcedureCall(),b=Blockly.Procedures.getDefinition(b,this.workspace),b||(Blockly.Events.setGroup(a.group),this.dispose(!0,!1),Blockly.Events.setGroup(!1)))},\ncustomContextMenu:function(a){var b={enabled:!0};b.text=Blockly.Msg.PROCEDURES_HIGHLIGHT_DEF;var c=this.getProcedureCall(),e=this.workspace;b.callback=function(){var a=Blockly.Procedures.getDefinition(c,e);a&&a.select()};a.push(b)},defType_:"procedures_defnoreturn"};\nBlockly.Blocks.procedures_callreturn={init:function(){this.appendDummyInput("TOPROW").appendField("","NAME");this.setOutput(!0);this.setColour(Blockly.Blocks.procedures.HUE);this.setHelpUrl(Blockly.Msg.PROCEDURES_CALLRETURN_HELPURL);this.arguments_=[];this.quarkConnections_={};this.quarkIds_=null},getProcedureCall:Blockly.Blocks.procedures_callnoreturn.getProcedureCall,renameProcedure:Blockly.Blocks.procedures_callnoreturn.renameProcedure,setProcedureParameters_:Blockly.Blocks.procedures_callnoreturn.setProcedureParameters_,\nupdateShape_:Blockly.Blocks.procedures_callnoreturn.updateShape_,mutationToDom:Blockly.Blocks.procedures_callnoreturn.mutationToDom,domToMutation:Blockly.Blocks.procedures_callnoreturn.domToMutation,renameVar:Blockly.Blocks.procedures_callnoreturn.renameVar,onchange:Blockly.Blocks.procedures_callnoreturn.onchange,customContextMenu:Blockly.Blocks.procedures_callnoreturn.customContextMenu,defType_:"procedures_defreturn"};\nBlockly.Blocks.procedures_ifreturn={init:function(){this.appendValueInput("CONDITION").setCheck("Boolean").appendField(Blockly.Msg.CONTROLS_IF_MSG_IF);this.appendValueInput("VALUE").appendField(Blockly.Msg.PROCEDURES_DEFRETURN_RETURN);this.setInputsInline(!0);this.setPreviousStatement(!0);this.setNextStatement(!0);this.setColour(Blockly.Blocks.procedures.HUE);this.setTooltip(Blockly.Msg.PROCEDURES_IFRETURN_TOOLTIP);this.setHelpUrl(Blockly.Msg.PROCEDURES_IFRETURN_HELPURL);this.hasReturnValue_=!0},\nmutationToDom:function(){var a=document.createElement("mutation");a.setAttribute("value",Number(this.hasReturnValue_));return a},domToMutation:function(a){this.hasReturnValue_=1==a.getAttribute("value");this.hasReturnValue_||(this.removeInput("VALUE"),this.appendDummyInput("VALUE").appendField(Blockly.Msg.PROCEDURES_DEFRETURN_RETURN))},onchange:function(a){if(this.workspace.isDragging&&!this.workspace.isDragging()){a=!1;var b=this;do{if(-1!=this.FUNCTION_TYPES.indexOf(b.type)){a=!0;break}b=b.getSurroundParent()}while(b);\na?("procedures_defnoreturn"==b.type&&this.hasReturnValue_?(this.removeInput("VALUE"),this.appendDummyInput("VALUE").appendField(Blockly.Msg.PROCEDURES_DEFRETURN_RETURN),this.hasReturnValue_=!1):"procedures_defreturn"!=b.type||this.hasReturnValue_||(this.removeInput("VALUE"),this.appendValueInput("VALUE").appendField(Blockly.Msg.PROCEDURES_DEFRETURN_RETURN),this.hasReturnValue_=!0),this.setWarningText(null),this.isInFlyout||this.setDisabled(!1)):(this.setWarningText(Blockly.Msg.PROCEDURES_IFRETURN_WARNING),\nthis.isInFlyout||this.getInheritedDisabled()||this.setDisabled(!0))}},FUNCTION_TYPES:["procedures_defnoreturn","procedures_defreturn"]};Blockly.Blocks.lists={};Blockly.Blocks.lists.HUE=260;Blockly.Blocks.lists_create_empty={init:function(){this.jsonInit({message0:Blockly.Msg.LISTS_CREATE_EMPTY_TITLE,output:"Array",colour:Blockly.Blocks.lists.HUE,tooltip:Blockly.Msg.LISTS_CREATE_EMPTY_TOOLTIP,helpUrl:Blockly.Msg.LISTS_CREATE_EMPTY_HELPURL})}};\nBlockly.Blocks.lists_create_with={init:function(){this.setHelpUrl(Blockly.Msg.LISTS_CREATE_WITH_HELPURL);this.setColour(Blockly.Blocks.lists.HUE);this.itemCount_=3;this.updateShape_();this.setOutput(!0,"Array");this.setMutator(new Blockly.Mutator(["lists_create_with_item"]));this.setTooltip(Blockly.Msg.LISTS_CREATE_WITH_TOOLTIP)},mutationToDom:function(){var a=document.createElement("mutation");a.setAttribute("items",this.itemCount_);return a},domToMutation:function(a){this.itemCount_=parseInt(a.getAttribute("items"),\n10);this.updateShape_()},decompose:function(a){var b=a.newBlock("lists_create_with_container");b.initSvg();for(var c=b.getInput("STACK").connection,e=0;e<this.itemCount_;e++){var d=a.newBlock("lists_create_with_item");d.initSvg();c.connect(d.previousConnection);c=d.nextConnection}return b},compose:function(a){var b=a.getInputTargetBlock("STACK");for(a=[];b;)a.push(b.valueConnection_),b=b.nextConnection&&b.nextConnection.targetBlock();for(b=0;b<this.itemCount_;b++){var c=this.getInput("ADD"+b).connection.targetConnection;\nc&&-1==a.indexOf(c)&&c.disconnect()}this.itemCount_=a.length;this.updateShape_();for(b=0;b<this.itemCount_;b++)Blockly.Mutator.reconnect(a[b],this,"ADD"+b)},saveConnections:function(a){a=a.getInputTargetBlock("STACK");for(var b=0;a;){var c=this.getInput("ADD"+b);a.valueConnection_=c&&c.connection.targetConnection;b++;a=a.nextConnection&&a.nextConnection.targetBlock()}},updateShape_:function(){this.itemCount_&&this.getInput("EMPTY")?this.removeInput("EMPTY"):this.itemCount_||this.getInput("EMPTY")||\nthis.appendDummyInput("EMPTY").appendField(Blockly.Msg.LISTS_CREATE_EMPTY_TITLE);for(var a=0;a<this.itemCount_;a++)if(!this.getInput("ADD"+a)){var b=this.appendValueInput("ADD"+a);0==a&&b.appendField(Blockly.Msg.LISTS_CREATE_WITH_INPUT_WITH)}for(;this.getInput("ADD"+a);)this.removeInput("ADD"+a),a++}};\nBlockly.Blocks.lists_create_with_container={init:function(){this.setColour(Blockly.Blocks.lists.HUE);this.appendDummyInput().appendField(Blockly.Msg.LISTS_CREATE_WITH_CONTAINER_TITLE_ADD);this.appendStatementInput("STACK");this.setTooltip(Blockly.Msg.LISTS_CREATE_WITH_CONTAINER_TOOLTIP);this.contextMenu=!1}};\nBlockly.Blocks.lists_create_with_item={init:function(){this.setColour(Blockly.Blocks.lists.HUE);this.appendDummyInput().appendField(Blockly.Msg.LISTS_CREATE_WITH_ITEM_TITLE);this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.LISTS_CREATE_WITH_ITEM_TOOLTIP);this.contextMenu=!1}};\nBlockly.Blocks.lists_repeat={init:function(){this.jsonInit({message0:Blockly.Msg.LISTS_REPEAT_TITLE,args0:[{type:"input_value",name:"ITEM"},{type:"input_value",name:"NUM",check:"Number"}],output:"Array",colour:Blockly.Blocks.lists.HUE,tooltip:Blockly.Msg.LISTS_REPEAT_TOOLTIP,helpUrl:Blockly.Msg.LISTS_REPEAT_HELPURL})}};\nBlockly.Blocks.lists_length={init:function(){this.jsonInit({message0:Blockly.Msg.LISTS_LENGTH_TITLE,args0:[{type:"input_value",name:"VALUE",check:["String","Array"]}],output:"Number",colour:Blockly.Blocks.lists.HUE,tooltip:Blockly.Msg.LISTS_LENGTH_TOOLTIP,helpUrl:Blockly.Msg.LISTS_LENGTH_HELPURL})}};\nBlockly.Blocks.lists_isEmpty={init:function(){this.jsonInit({message0:Blockly.Msg.LISTS_ISEMPTY_TITLE,args0:[{type:"input_value",name:"VALUE",check:["String","Array"]}],output:"Boolean",colour:Blockly.Blocks.lists.HUE,tooltip:Blockly.Msg.LISTS_ISEMPTY_TOOLTIP,helpUrl:Blockly.Msg.LISTS_ISEMPTY_HELPURL})}};\nBlockly.Blocks.lists_indexOf={init:function(){var a=[[Blockly.Msg.LISTS_INDEX_OF_FIRST,"FIRST"],[Blockly.Msg.LISTS_INDEX_OF_LAST,"LAST"]];this.setHelpUrl(Blockly.Msg.LISTS_INDEX_OF_HELPURL);this.setColour(Blockly.Blocks.lists.HUE);this.setOutput(!0,"Number");this.appendValueInput("VALUE").setCheck("Array").appendField(Blockly.Msg.LISTS_INDEX_OF_INPUT_IN_LIST);this.appendValueInput("FIND").appendField(new Blockly.FieldDropdown(a),"END");this.setInputsInline(!0);this.setTooltip(function(){return Blockly.Msg.LISTS_INDEX_OF_TOOLTIP.replace("%1",\nthis.workspace.options.oneBasedIndex?"0":"-1")})}};\nBlockly.Blocks.lists_getIndex={init:function(){var a=[[Blockly.Msg.LISTS_GET_INDEX_GET,"GET"],[Blockly.Msg.LISTS_GET_INDEX_GET_REMOVE,"GET_REMOVE"],[Blockly.Msg.LISTS_GET_INDEX_REMOVE,"REMOVE"]];this.WHERE_OPTIONS=[[Blockly.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[Blockly.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[Blockly.Msg.LISTS_GET_INDEX_FIRST,"FIRST"],[Blockly.Msg.LISTS_GET_INDEX_LAST,"LAST"],[Blockly.Msg.LISTS_GET_INDEX_RANDOM,"RANDOM"]];this.setHelpUrl(Blockly.Msg.LISTS_GET_INDEX_HELPURL);\nthis.setColour(Blockly.Blocks.lists.HUE);a=new Blockly.FieldDropdown(a,function(a){this.sourceBlock_.updateStatement_("REMOVE"==a)});this.appendValueInput("VALUE").setCheck("Array").appendField(Blockly.Msg.LISTS_GET_INDEX_INPUT_IN_LIST);this.appendDummyInput().appendField(a,"MODE").appendField("","SPACE");this.appendDummyInput("AT");Blockly.Msg.LISTS_GET_INDEX_TAIL&&this.appendDummyInput("TAIL").appendField(Blockly.Msg.LISTS_GET_INDEX_TAIL);this.setInputsInline(!0);this.setOutput(!0);this.updateAt_(!0);\nvar b=this;this.setTooltip(function(){var a=b.getFieldValue("MODE"),e=b.getFieldValue("WHERE"),d="";switch(a+" "+e){case "GET FROM_START":case "GET FROM_END":d=Blockly.Msg.LISTS_GET_INDEX_TOOLTIP_GET_FROM;break;case "GET FIRST":d=Blockly.Msg.LISTS_GET_INDEX_TOOLTIP_GET_FIRST;break;case "GET LAST":d=Blockly.Msg.LISTS_GET_INDEX_TOOLTIP_GET_LAST;break;case "GET RANDOM":d=Blockly.Msg.LISTS_GET_INDEX_TOOLTIP_GET_RANDOM;break;case "GET_REMOVE FROM_START":case "GET_REMOVE FROM_END":d=Blockly.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM;\nbreak;case "GET_REMOVE FIRST":d=Blockly.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST;break;case "GET_REMOVE LAST":d=Blockly.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST;break;case "GET_REMOVE RANDOM":d=Blockly.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM;break;case "REMOVE FROM_START":case "REMOVE FROM_END":d=Blockly.Msg.LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM;break;case "REMOVE FIRST":d=Blockly.Msg.LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST;break;case "REMOVE LAST":d=Blockly.Msg.LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST;\nbreak;case "REMOVE RANDOM":d=Blockly.Msg.LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM}if("FROM_START"==e||"FROM_END"==e)d+=" "+("FROM_START"==e?Blockly.Msg.LISTS_INDEX_FROM_START_TOOLTIP:Blockly.Msg.LISTS_INDEX_FROM_END_TOOLTIP).replace("%1",b.workspace.options.oneBasedIndex?"#1":"#0");return d})},mutationToDom:function(){var a=document.createElement("mutation");a.setAttribute("statement",!this.outputConnection);var b=this.getInput("AT").type==Blockly.INPUT_VALUE;a.setAttribute("at",b);return a},domToMutation:function(a){var b=\n"true"==a.getAttribute("statement");this.updateStatement_(b);a="false"!=a.getAttribute("at");this.updateAt_(a)},updateStatement_:function(a){a!=!this.outputConnection&&(this.unplug(!0,!0),a?(this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)):(this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)))},updateAt_:function(a){this.removeInput("AT");this.removeInput("ORDINAL",!0);a?(this.appendValueInput("AT").setCheck("Number"),Blockly.Msg.ORDINAL_NUMBER_SUFFIX&&\nthis.appendDummyInput("ORDINAL").appendField(Blockly.Msg.ORDINAL_NUMBER_SUFFIX)):this.appendDummyInput("AT");var b=new Blockly.FieldDropdown(this.WHERE_OPTIONS,function(b){var c="FROM_START"==b||"FROM_END"==b;if(c!=a){var d=this.sourceBlock_;d.updateAt_(c);d.setFieldValue(b,"WHERE");return null}});this.getInput("AT").appendField(b,"WHERE");Blockly.Msg.LISTS_GET_INDEX_TAIL&&this.moveInputBefore("TAIL",null)}};\nBlockly.Blocks.lists_setIndex={init:function(){var a=[[Blockly.Msg.LISTS_SET_INDEX_SET,"SET"],[Blockly.Msg.LISTS_SET_INDEX_INSERT,"INSERT"]];this.WHERE_OPTIONS=[[Blockly.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[Blockly.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[Blockly.Msg.LISTS_GET_INDEX_FIRST,"FIRST"],[Blockly.Msg.LISTS_GET_INDEX_LAST,"LAST"],[Blockly.Msg.LISTS_GET_INDEX_RANDOM,"RANDOM"]];this.setHelpUrl(Blockly.Msg.LISTS_SET_INDEX_HELPURL);this.setColour(Blockly.Blocks.lists.HUE);this.appendValueInput("LIST").setCheck("Array").appendField(Blockly.Msg.LISTS_SET_INDEX_INPUT_IN_LIST);\nthis.appendDummyInput().appendField(new Blockly.FieldDropdown(a),"MODE").appendField("","SPACE");this.appendDummyInput("AT");this.appendValueInput("TO").appendField(Blockly.Msg.LISTS_SET_INDEX_INPUT_TO);this.setInputsInline(!0);this.setPreviousStatement(!0);this.setNextStatement(!0);this.setTooltip(Blockly.Msg.LISTS_SET_INDEX_TOOLTIP);this.updateAt_(!0);var b=this;this.setTooltip(function(){var a=b.getFieldValue("MODE"),e=b.getFieldValue("WHERE"),d="";switch(a+" "+e){case "SET FROM_START":case "SET FROM_END":d=\nBlockly.Msg.LISTS_SET_INDEX_TOOLTIP_SET_FROM;break;case "SET FIRST":d=Blockly.Msg.LISTS_SET_INDEX_TOOLTIP_SET_FIRST;break;case "SET LAST":d=Blockly.Msg.LISTS_SET_INDEX_TOOLTIP_SET_LAST;break;case "SET RANDOM":d=Blockly.Msg.LISTS_SET_INDEX_TOOLTIP_SET_RANDOM;break;case "INSERT FROM_START":case "INSERT FROM_END":d=Blockly.Msg.LISTS_SET_INDEX_TOOLTIP_INSERT_FROM;break;case "INSERT FIRST":d=Blockly.Msg.LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST;break;case "INSERT LAST":d=Blockly.Msg.LISTS_SET_INDEX_TOOLTIP_INSERT_LAST;\nbreak;case "INSERT RANDOM":d=Blockly.Msg.LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM}if("FROM_START"==e||"FROM_END"==e)d+=" "+Blockly.Msg.LISTS_INDEX_FROM_START_TOOLTIP.replace("%1",b.workspace.options.oneBasedIndex?"#1":"#0");return d})},mutationToDom:function(){var a=document.createElement("mutation"),b=this.getInput("AT").type==Blockly.INPUT_VALUE;a.setAttribute("at",b);return a},domToMutation:function(a){a="false"!=a.getAttribute("at");this.updateAt_(a)},updateAt_:function(a){this.removeInput("AT");\nthis.removeInput("ORDINAL",!0);a?(this.appendValueInput("AT").setCheck("Number"),Blockly.Msg.ORDINAL_NUMBER_SUFFIX&&this.appendDummyInput("ORDINAL").appendField(Blockly.Msg.ORDINAL_NUMBER_SUFFIX)):this.appendDummyInput("AT");var b=new Blockly.FieldDropdown(this.WHERE_OPTIONS,function(b){var c="FROM_START"==b||"FROM_END"==b;if(c!=a){var d=this.sourceBlock_;d.updateAt_(c);d.setFieldValue(b,"WHERE");return null}});this.moveInputBefore("AT","TO");this.getInput("ORDINAL")&&this.moveInputBefore("ORDINAL",\n"TO");this.getInput("AT").appendField(b,"WHERE")}};\nBlockly.Blocks.lists_getSublist={init:function(){this.WHERE_OPTIONS_1=[[Blockly.Msg.LISTS_GET_SUBLIST_START_FROM_START,"FROM_START"],[Blockly.Msg.LISTS_GET_SUBLIST_START_FROM_END,"FROM_END"],[Blockly.Msg.LISTS_GET_SUBLIST_START_FIRST,"FIRST"]];this.WHERE_OPTIONS_2=[[Blockly.Msg.LISTS_GET_SUBLIST_END_FROM_START,"FROM_START"],[Blockly.Msg.LISTS_GET_SUBLIST_END_FROM_END,"FROM_END"],[Blockly.Msg.LISTS_GET_SUBLIST_END_LAST,"LAST"]];this.setHelpUrl(Blockly.Msg.LISTS_GET_SUBLIST_HELPURL);this.setColour(Blockly.Blocks.lists.HUE);\nthis.appendValueInput("LIST").setCheck("Array").appendField(Blockly.Msg.LISTS_GET_SUBLIST_INPUT_IN_LIST);this.appendDummyInput("AT1");this.appendDummyInput("AT2");Blockly.Msg.LISTS_GET_SUBLIST_TAIL&&this.appendDummyInput("TAIL").appendField(Blockly.Msg.LISTS_GET_SUBLIST_TAIL);this.setInputsInline(!0);this.setOutput(!0,"Array");this.updateAt_(1,!0);this.updateAt_(2,!0);this.setTooltip(Blockly.Msg.LISTS_GET_SUBLIST_TOOLTIP)},mutationToDom:function(){var a=document.createElement("mutation"),b=this.getInput("AT1").type==\nBlockly.INPUT_VALUE;a.setAttribute("at1",b);b=this.getInput("AT2").type==Blockly.INPUT_VALUE;a.setAttribute("at2",b);return a},domToMutation:function(a){var b="true"==a.getAttribute("at1");a="true"==a.getAttribute("at2");this.updateAt_(1,b);this.updateAt_(2,a)},updateAt_:function(a,b){this.removeInput("AT"+a);this.removeInput("ORDINAL"+a,!0);b?(this.appendValueInput("AT"+a).setCheck("Number"),Blockly.Msg.ORDINAL_NUMBER_SUFFIX&&this.appendDummyInput("ORDINAL"+a).appendField(Blockly.Msg.ORDINAL_NUMBER_SUFFIX)):\nthis.appendDummyInput("AT"+a);var c=new Blockly.FieldDropdown(this["WHERE_OPTIONS_"+a],function(c){var d="FROM_START"==c||"FROM_END"==c;if(d!=b){var e=this.sourceBlock_;e.updateAt_(a,d);e.setFieldValue(c,"WHERE"+a);return null}});this.getInput("AT"+a).appendField(c,"WHERE"+a);1==a&&(this.moveInputBefore("AT1","AT2"),this.getInput("ORDINAL1")&&this.moveInputBefore("ORDINAL1","AT2"));Blockly.Msg.LISTS_GET_SUBLIST_TAIL&&this.moveInputBefore("TAIL",null)}};\nBlockly.Blocks.lists_sort={init:function(){this.jsonInit({message0:Blockly.Msg.LISTS_SORT_TITLE,args0:[{type:"field_dropdown",name:"TYPE",options:[[Blockly.Msg.LISTS_SORT_TYPE_NUMERIC,"NUMERIC"],[Blockly.Msg.LISTS_SORT_TYPE_TEXT,"TEXT"],[Blockly.Msg.LISTS_SORT_TYPE_IGNORECASE,"IGNORE_CASE"]]},{type:"field_dropdown",name:"DIRECTION",options:[[Blockly.Msg.LISTS_SORT_ORDER_ASCENDING,"1"],[Blockly.Msg.LISTS_SORT_ORDER_DESCENDING,"-1"]]},{type:"input_value",name:"LIST",check:"Array"}],output:"Array",colour:Blockly.Blocks.lists.HUE,\ntooltip:Blockly.Msg.LISTS_SORT_TOOLTIP,helpUrl:Blockly.Msg.LISTS_SORT_HELPURL})}};\nBlockly.Blocks.lists_split={init:function(){var a=this,b=new Blockly.FieldDropdown([[Blockly.Msg.LISTS_SPLIT_LIST_FROM_TEXT,"SPLIT"],[Blockly.Msg.LISTS_SPLIT_TEXT_FROM_LIST,"JOIN"]],function(b){a.updateType_(b)});this.setHelpUrl(Blockly.Msg.LISTS_SPLIT_HELPURL);this.setColour(Blockly.Blocks.lists.HUE);this.appendValueInput("INPUT").setCheck("String").appendField(b,"MODE");this.appendValueInput("DELIM").setCheck("String").appendField(Blockly.Msg.LISTS_SPLIT_WITH_DELIMITER);this.setInputsInline(!0);\nthis.setOutput(!0,"Array");this.setTooltip(function(){var b=a.getFieldValue("MODE");if("SPLIT"==b)return Blockly.Msg.LISTS_SPLIT_TOOLTIP_SPLIT;if("JOIN"==b)return Blockly.Msg.LISTS_SPLIT_TOOLTIP_JOIN;throw"Unknown mode: "+b;})},updateType_:function(a){"SPLIT"==a?(this.outputConnection.setCheck("Array"),this.getInput("INPUT").setCheck("String")):(this.outputConnection.setCheck("String"),this.getInput("INPUT").setCheck("Array"))},mutationToDom:function(){var a=document.createElement("mutation");a.setAttribute("mode",\nthis.getFieldValue("MODE"));return a},domToMutation:function(a){this.updateType_(a.getAttribute("mode"))}};\n';
},function(e,t){e.exports='/*** IMPORTS FROM imports-loader ***/\nvar module = undefined;\n\n// This file was automatically generated. Do not modify.\n\n\'use strict\';\n\ngoog.provide(\'Blockly.Msg.en\');\n\ngoog.require(\'Blockly.Msg\');\n\nBlockly.Msg.ADD_COMMENT = "Add Comment";\nBlockly.Msg.CHANGE_VALUE_TITLE = "Change value:";\nBlockly.Msg.CLEAN_UP = "Clean up Blocks";\nBlockly.Msg.COLLAPSE_ALL = "Collapse Blocks";\nBlockly.Msg.COLLAPSE_BLOCK = "Collapse Block";\nBlockly.Msg.COLOUR_BLEND_COLOUR1 = "colour 1";\nBlockly.Msg.COLOUR_BLEND_COLOUR2 = "colour 2";\nBlockly.Msg.COLOUR_BLEND_HELPURL = "http://meyerweb.com/eric/tools/color-blend/";\nBlockly.Msg.COLOUR_BLEND_RATIO = "ratio";\nBlockly.Msg.COLOUR_BLEND_TITLE = "blend";\nBlockly.Msg.COLOUR_BLEND_TOOLTIP = "Blends two colours together with a given ratio (0.0 - 1.0).";\nBlockly.Msg.COLOUR_PICKER_HELPURL = "https://en.wikipedia.org/wiki/Color";\nBlockly.Msg.COLOUR_PICKER_TOOLTIP = "Choose a colour from the palette.";\nBlockly.Msg.COLOUR_RANDOM_HELPURL = "http://randomcolour.com";\nBlockly.Msg.COLOUR_RANDOM_TITLE = "random colour";\nBlockly.Msg.COLOUR_RANDOM_TOOLTIP = "Choose a colour at random.";\nBlockly.Msg.COLOUR_RGB_BLUE = "blue";\nBlockly.Msg.COLOUR_RGB_GREEN = "green";\nBlockly.Msg.COLOUR_RGB_HELPURL = "http://www.december.com/html/spec/colorper.html";\nBlockly.Msg.COLOUR_RGB_RED = "red";\nBlockly.Msg.COLOUR_RGB_TITLE = "colour with";\nBlockly.Msg.COLOUR_RGB_TOOLTIP = "Create a colour with the specified amount of red, green, and blue. All values must be between 0 and 100.";\nBlockly.Msg.CONTROLS_FLOW_STATEMENTS_HELPURL = "https://github.com/google/blockly/wiki/Loops#loop-termination-blocks";\nBlockly.Msg.CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK = "break out of loop";\nBlockly.Msg.CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE = "continue with next iteration of loop";\nBlockly.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK = "Break out of the containing loop.";\nBlockly.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE = "Skip the rest of this loop, and continue with the next iteration.";\nBlockly.Msg.CONTROLS_FLOW_STATEMENTS_WARNING = "Warning: This block may only be used within a loop.";\nBlockly.Msg.CONTROLS_FOREACH_HELPURL = "https://github.com/google/blockly/wiki/Loops#for-each";\nBlockly.Msg.CONTROLS_FOREACH_TITLE = "for each item %1 in list %2";\nBlockly.Msg.CONTROLS_FOREACH_TOOLTIP = "For each item in a list, set the variable \'%1\' to the item, and then do some statements.";\nBlockly.Msg.CONTROLS_FOR_HELPURL = "https://github.com/google/blockly/wiki/Loops#count-with";\nBlockly.Msg.CONTROLS_FOR_TITLE = "count with %1 from %2 to %3 by %4";\nBlockly.Msg.CONTROLS_FOR_TOOLTIP = "Have the variable \'%1\' take on the values from the start number to the end number, counting by the specified interval, and do the specified blocks.";\nBlockly.Msg.CONTROLS_IF_ELSEIF_TOOLTIP = "Add a condition to the if block.";\nBlockly.Msg.CONTROLS_IF_ELSE_TOOLTIP = "Add a final, catch-all condition to the if block.";\nBlockly.Msg.CONTROLS_IF_HELPURL = "https://github.com/google/blockly/wiki/IfElse";\nBlockly.Msg.CONTROLS_IF_IF_TOOLTIP = "Add, remove, or reorder sections to reconfigure this if block.";\nBlockly.Msg.CONTROLS_IF_MSG_ELSE = "else";\nBlockly.Msg.CONTROLS_IF_MSG_ELSEIF = "else if";\nBlockly.Msg.CONTROLS_IF_MSG_IF = "if";\nBlockly.Msg.CONTROLS_IF_TOOLTIP_1 = "If a value is true, then do some statements.";\nBlockly.Msg.CONTROLS_IF_TOOLTIP_2 = "If a value is true, then do the first block of statements. Otherwise, do the second block of statements.";\nBlockly.Msg.CONTROLS_IF_TOOLTIP_3 = "If the first value is true, then do the first block of statements. Otherwise, if the second value is true, do the second block of statements.";\nBlockly.Msg.CONTROLS_IF_TOOLTIP_4 = "If the first value is true, then do the first block of statements. Otherwise, if the second value is true, do the second block of statements. If none of the values are true, do the last block of statements.";\nBlockly.Msg.CONTROLS_REPEAT_HELPURL = "https://en.wikipedia.org/wiki/For_loop";\nBlockly.Msg.CONTROLS_REPEAT_INPUT_DO = "do";\nBlockly.Msg.CONTROLS_REPEAT_TITLE = "repeat %1 times";\nBlockly.Msg.CONTROLS_REPEAT_TOOLTIP = "Do some statements several times.";\nBlockly.Msg.CONTROLS_WHILEUNTIL_HELPURL = "https://github.com/google/blockly/wiki/Loops#repeat";\nBlockly.Msg.CONTROLS_WHILEUNTIL_OPERATOR_UNTIL = "repeat until";\nBlockly.Msg.CONTROLS_WHILEUNTIL_OPERATOR_WHILE = "repeat while";\nBlockly.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL = "While a value is false, then do some statements.";\nBlockly.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE = "While a value is true, then do some statements.";\nBlockly.Msg.DELETE_ALL_BLOCKS = "Delete all %1 blocks?";\nBlockly.Msg.DELETE_BLOCK = "Delete Block";\nBlockly.Msg.DELETE_VARIABLE = "Delete the \'%1\' variable";\nBlockly.Msg.DELETE_VARIABLE_CONFIRMATION = "Delete %1 uses of the \'%2\' variable?";\nBlockly.Msg.DELETE_X_BLOCKS = "Delete %1 Blocks";\nBlockly.Msg.DISABLE_BLOCK = "Disable Block";\nBlockly.Msg.DUPLICATE_BLOCK = "Duplicate";\nBlockly.Msg.ENABLE_BLOCK = "Enable Block";\nBlockly.Msg.EXPAND_ALL = "Expand Blocks";\nBlockly.Msg.EXPAND_BLOCK = "Expand Block";\nBlockly.Msg.EXTERNAL_INPUTS = "External Inputs";\nBlockly.Msg.HELP = "Help";\nBlockly.Msg.INLINE_INPUTS = "Inline Inputs";\nBlockly.Msg.LISTS_CREATE_EMPTY_HELPURL = "https://github.com/google/blockly/wiki/Lists#create-empty-list";\nBlockly.Msg.LISTS_CREATE_EMPTY_TITLE = "create empty list";\nBlockly.Msg.LISTS_CREATE_EMPTY_TOOLTIP = "Returns a list, of length 0, containing no data records";\nBlockly.Msg.LISTS_CREATE_WITH_CONTAINER_TITLE_ADD = "list";\nBlockly.Msg.LISTS_CREATE_WITH_CONTAINER_TOOLTIP = "Add, remove, or reorder sections to reconfigure this list block.";\nBlockly.Msg.LISTS_CREATE_WITH_HELPURL = "https://github.com/google/blockly/wiki/Lists#create-list-with";\nBlockly.Msg.LISTS_CREATE_WITH_INPUT_WITH = "create list with";\nBlockly.Msg.LISTS_CREATE_WITH_ITEM_TOOLTIP = "Add an item to the list.";\nBlockly.Msg.LISTS_CREATE_WITH_TOOLTIP = "Create a list with any number of items.";\nBlockly.Msg.LISTS_GET_INDEX_FIRST = "first";\nBlockly.Msg.LISTS_GET_INDEX_FROM_END = "# from end";\nBlockly.Msg.LISTS_GET_INDEX_FROM_START = "#";\nBlockly.Msg.LISTS_GET_INDEX_GET = "get";\nBlockly.Msg.LISTS_GET_INDEX_GET_REMOVE = "get and remove";\nBlockly.Msg.LISTS_GET_INDEX_LAST = "last";\nBlockly.Msg.LISTS_GET_INDEX_RANDOM = "random";\nBlockly.Msg.LISTS_GET_INDEX_REMOVE = "remove";\nBlockly.Msg.LISTS_GET_INDEX_TAIL = "";\nBlockly.Msg.LISTS_GET_INDEX_TOOLTIP_GET_FIRST = "Returns the first item in a list.";\nBlockly.Msg.LISTS_GET_INDEX_TOOLTIP_GET_FROM = "Returns the item at the specified position in a list.";\nBlockly.Msg.LISTS_GET_INDEX_TOOLTIP_GET_LAST = "Returns the last item in a list.";\nBlockly.Msg.LISTS_GET_INDEX_TOOLTIP_GET_RANDOM = "Returns a random item in a list.";\nBlockly.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST = "Removes and returns the first item in a list.";\nBlockly.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM = "Removes and returns the item at the specified position in a list.";\nBlockly.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST = "Removes and returns the last item in a list.";\nBlockly.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM = "Removes and returns a random item in a list.";\nBlockly.Msg.LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST = "Removes the first item in a list.";\nBlockly.Msg.LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM = "Removes the item at the specified position in a list.";\nBlockly.Msg.LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST = "Removes the last item in a list.";\nBlockly.Msg.LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM = "Removes a random item in a list.";\nBlockly.Msg.LISTS_GET_SUBLIST_END_FROM_END = "to # from end";\nBlockly.Msg.LISTS_GET_SUBLIST_END_FROM_START = "to #";\nBlockly.Msg.LISTS_GET_SUBLIST_END_LAST = "to last";\nBlockly.Msg.LISTS_GET_SUBLIST_HELPURL = "https://github.com/google/blockly/wiki/Lists#getting-a-sublist";\nBlockly.Msg.LISTS_GET_SUBLIST_START_FIRST = "get sub-list from first";\nBlockly.Msg.LISTS_GET_SUBLIST_START_FROM_END = "get sub-list from # from end";\nBlockly.Msg.LISTS_GET_SUBLIST_START_FROM_START = "get sub-list from #";\nBlockly.Msg.LISTS_GET_SUBLIST_TAIL = "";\nBlockly.Msg.LISTS_GET_SUBLIST_TOOLTIP = "Creates a copy of the specified portion of a list.";\nBlockly.Msg.LISTS_INDEX_FROM_END_TOOLTIP = "%1 is the last item.";\nBlockly.Msg.LISTS_INDEX_FROM_START_TOOLTIP = "%1 is the first item.";\nBlockly.Msg.LISTS_INDEX_OF_FIRST = "find first occurrence of item";\nBlockly.Msg.LISTS_INDEX_OF_HELPURL = "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list";\nBlockly.Msg.LISTS_INDEX_OF_LAST = "find last occurrence of item";\nBlockly.Msg.LISTS_INDEX_OF_TOOLTIP = "Returns the index of the first/last occurrence of the item in the list. Returns %1 if item is not found.";\nBlockly.Msg.LISTS_INLIST = "in list";\nBlockly.Msg.LISTS_ISEMPTY_HELPURL = "https://github.com/google/blockly/wiki/Lists#is-empty";\nBlockly.Msg.LISTS_ISEMPTY_TITLE = "%1 is empty";\nBlockly.Msg.LISTS_ISEMPTY_TOOLTIP = "Returns true if the list is empty.";\nBlockly.Msg.LISTS_LENGTH_HELPURL = "https://github.com/google/blockly/wiki/Lists#length-of";\nBlockly.Msg.LISTS_LENGTH_TITLE = "length of %1";\nBlockly.Msg.LISTS_LENGTH_TOOLTIP = "Returns the length of a list.";\nBlockly.Msg.LISTS_REPEAT_HELPURL = "https://github.com/google/blockly/wiki/Lists#create-list-with";\nBlockly.Msg.LISTS_REPEAT_TITLE = "create list with item %1 repeated %2 times";\nBlockly.Msg.LISTS_REPEAT_TOOLTIP = "Creates a list consisting of the given value repeated the specified number of times.";\nBlockly.Msg.LISTS_SET_INDEX_HELPURL = "https://github.com/google/blockly/wiki/Lists#in-list--set";\nBlockly.Msg.LISTS_SET_INDEX_INPUT_TO = "as";\nBlockly.Msg.LISTS_SET_INDEX_INSERT = "insert at";\nBlockly.Msg.LISTS_SET_INDEX_SET = "set";\nBlockly.Msg.LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST = "Inserts the item at the start of a list.";\nBlockly.Msg.LISTS_SET_INDEX_TOOLTIP_INSERT_FROM = "Inserts the item at the specified position in a list.";\nBlockly.Msg.LISTS_SET_INDEX_TOOLTIP_INSERT_LAST = "Append the item to the end of a list.";\nBlockly.Msg.LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM = "Inserts the item randomly in a list.";\nBlockly.Msg.LISTS_SET_INDEX_TOOLTIP_SET_FIRST = "Sets the first item in a list.";\nBlockly.Msg.LISTS_SET_INDEX_TOOLTIP_SET_FROM = "Sets the item at the specified position in a list.";\nBlockly.Msg.LISTS_SET_INDEX_TOOLTIP_SET_LAST = "Sets the last item in a list.";\nBlockly.Msg.LISTS_SET_INDEX_TOOLTIP_SET_RANDOM = "Sets a random item in a list.";\nBlockly.Msg.LISTS_SORT_HELPURL = "https://github.com/google/blockly/wiki/Lists#sorting-a-list";\nBlockly.Msg.LISTS_SORT_ORDER_ASCENDING = "ascending";\nBlockly.Msg.LISTS_SORT_ORDER_DESCENDING = "descending";\nBlockly.Msg.LISTS_SORT_TITLE = "sort %1 %2 %3";\nBlockly.Msg.LISTS_SORT_TOOLTIP = "Sort a copy of a list.";\nBlockly.Msg.LISTS_SORT_TYPE_IGNORECASE = "alphabetic, ignore case";\nBlockly.Msg.LISTS_SORT_TYPE_NUMERIC = "numeric";\nBlockly.Msg.LISTS_SORT_TYPE_TEXT = "alphabetic";\nBlockly.Msg.LISTS_SPLIT_HELPURL = "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists";\nBlockly.Msg.LISTS_SPLIT_LIST_FROM_TEXT = "make list from text";\nBlockly.Msg.LISTS_SPLIT_TEXT_FROM_LIST = "make text from list";\nBlockly.Msg.LISTS_SPLIT_TOOLTIP_JOIN = "Join a list of texts into one text, separated by a delimiter.";\nBlockly.Msg.LISTS_SPLIT_TOOLTIP_SPLIT = "Split text into a list of texts, breaking at each delimiter.";\nBlockly.Msg.LISTS_SPLIT_WITH_DELIMITER = "with delimiter";\nBlockly.Msg.LOGIC_BOOLEAN_FALSE = "false";\nBlockly.Msg.LOGIC_BOOLEAN_HELPURL = "https://github.com/google/blockly/wiki/Logic#values";\nBlockly.Msg.LOGIC_BOOLEAN_TOOLTIP = "Returns either true or false.";\nBlockly.Msg.LOGIC_BOOLEAN_TRUE = "true";\nBlockly.Msg.LOGIC_COMPARE_HELPURL = "https://en.wikipedia.org/wiki/Inequality_(mathematics)";\nBlockly.Msg.LOGIC_COMPARE_TOOLTIP_EQ = "Return true if both inputs equal each other.";\nBlockly.Msg.LOGIC_COMPARE_TOOLTIP_GT = "Return true if the first input is greater than the second input.";\nBlockly.Msg.LOGIC_COMPARE_TOOLTIP_GTE = "Return true if the first input is greater than or equal to the second input.";\nBlockly.Msg.LOGIC_COMPARE_TOOLTIP_LT = "Return true if the first input is smaller than the second input.";\nBlockly.Msg.LOGIC_COMPARE_TOOLTIP_LTE = "Return true if the first input is smaller than or equal to the second input.";\nBlockly.Msg.LOGIC_COMPARE_TOOLTIP_NEQ = "Return true if both inputs are not equal to each other.";\nBlockly.Msg.LOGIC_NEGATE_HELPURL = "https://github.com/google/blockly/wiki/Logic#not";\nBlockly.Msg.LOGIC_NEGATE_TITLE = "not %1";\nBlockly.Msg.LOGIC_NEGATE_TOOLTIP = "Returns true if the input is false. Returns false if the input is true.";\nBlockly.Msg.LOGIC_NULL = "null";\nBlockly.Msg.LOGIC_NULL_HELPURL = "https://en.wikipedia.org/wiki/Nullable_type";\nBlockly.Msg.LOGIC_NULL_TOOLTIP = "Returns null.";\nBlockly.Msg.LOGIC_OPERATION_AND = "and";\nBlockly.Msg.LOGIC_OPERATION_HELPURL = "https://github.com/google/blockly/wiki/Logic#logical-operations";\nBlockly.Msg.LOGIC_OPERATION_OR = "or";\nBlockly.Msg.LOGIC_OPERATION_TOOLTIP_AND = "Return true if both inputs are true.";\nBlockly.Msg.LOGIC_OPERATION_TOOLTIP_OR = "Return true if at least one of the inputs is true.";\nBlockly.Msg.LOGIC_TERNARY_CONDITION = "test";\nBlockly.Msg.LOGIC_TERNARY_HELPURL = "https://en.wikipedia.org/wiki/%3F:";\nBlockly.Msg.LOGIC_TERNARY_IF_FALSE = "if false";\nBlockly.Msg.LOGIC_TERNARY_IF_TRUE = "if true";\nBlockly.Msg.LOGIC_TERNARY_TOOLTIP = "Check the condition in \'test\'. If the condition is true, returns the \'if true\' value; otherwise returns the \'if false\' value.";\nBlockly.Msg.MATH_ADDITION_SYMBOL = "+";\nBlockly.Msg.MATH_ARITHMETIC_HELPURL = "https://en.wikipedia.org/wiki/Arithmetic";\nBlockly.Msg.MATH_ARITHMETIC_TOOLTIP_ADD = "Return the sum of the two numbers.";\nBlockly.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE = "Return the quotient of the two numbers.";\nBlockly.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS = "Return the difference of the two numbers.";\nBlockly.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY = "Return the product of the two numbers.";\nBlockly.Msg.MATH_ARITHMETIC_TOOLTIP_POWER = "Return the first number raised to the power of the second number.";\nBlockly.Msg.MATH_CHANGE_HELPURL = "https://en.wikipedia.org/wiki/Programming_idiom#Incrementing_a_counter";\nBlockly.Msg.MATH_CHANGE_TITLE = "change %1 by %2";\nBlockly.Msg.MATH_CHANGE_TOOLTIP = "Add a number to variable \'%1\'.";\nBlockly.Msg.MATH_CONSTANT_HELPURL = "https://en.wikipedia.org/wiki/Mathematical_constant";\nBlockly.Msg.MATH_CONSTANT_TOOLTIP = "Return one of the common constants: π (3.141…), e (2.718…), φ (1.618…), sqrt(2) (1.414…), sqrt(½) (0.707…), or ∞ (infinity).";\nBlockly.Msg.MATH_CONSTRAIN_HELPURL = "https://en.wikipedia.org/wiki/Clamping_%28graphics%29";\nBlockly.Msg.MATH_CONSTRAIN_TITLE = "constrain %1 low %2 high %3";\nBlockly.Msg.MATH_CONSTRAIN_TOOLTIP = "Constrain a number to be between the specified limits (inclusive).";\nBlockly.Msg.MATH_DIVISION_SYMBOL = "÷";\nBlockly.Msg.MATH_IS_DIVISIBLE_BY = "is divisible by";\nBlockly.Msg.MATH_IS_EVEN = "is even";\nBlockly.Msg.MATH_IS_NEGATIVE = "is negative";\nBlockly.Msg.MATH_IS_ODD = "is odd";\nBlockly.Msg.MATH_IS_POSITIVE = "is positive";\nBlockly.Msg.MATH_IS_PRIME = "is prime";\nBlockly.Msg.MATH_IS_TOOLTIP = "Check if a number is an even, odd, prime, whole, positive, negative, or if it is divisible by certain number. Returns true or false.";\nBlockly.Msg.MATH_IS_WHOLE = "is whole";\nBlockly.Msg.MATH_MODULO_HELPURL = "https://en.wikipedia.org/wiki/Modulo_operation";\nBlockly.Msg.MATH_MODULO_TITLE = "remainder of %1 ÷ %2";\nBlockly.Msg.MATH_MODULO_TOOLTIP = "Return the remainder from dividing the two numbers.";\nBlockly.Msg.MATH_MULTIPLICATION_SYMBOL = "×";\nBlockly.Msg.MATH_NUMBER_HELPURL = "https://en.wikipedia.org/wiki/Number";\nBlockly.Msg.MATH_NUMBER_TOOLTIP = "A number.";\nBlockly.Msg.MATH_ONLIST_HELPURL = "";\nBlockly.Msg.MATH_ONLIST_OPERATOR_AVERAGE = "average of list";\nBlockly.Msg.MATH_ONLIST_OPERATOR_MAX = "max of list";\nBlockly.Msg.MATH_ONLIST_OPERATOR_MEDIAN = "median of list";\nBlockly.Msg.MATH_ONLIST_OPERATOR_MIN = "min of list";\nBlockly.Msg.MATH_ONLIST_OPERATOR_MODE = "modes of list";\nBlockly.Msg.MATH_ONLIST_OPERATOR_RANDOM = "random item of list";\nBlockly.Msg.MATH_ONLIST_OPERATOR_STD_DEV = "standard deviation of list";\nBlockly.Msg.MATH_ONLIST_OPERATOR_SUM = "sum of list";\nBlockly.Msg.MATH_ONLIST_TOOLTIP_AVERAGE = "Return the average (arithmetic mean) of the numeric values in the list.";\nBlockly.Msg.MATH_ONLIST_TOOLTIP_MAX = "Return the largest number in the list.";\nBlockly.Msg.MATH_ONLIST_TOOLTIP_MEDIAN = "Return the median number in the list.";\nBlockly.Msg.MATH_ONLIST_TOOLTIP_MIN = "Return the smallest number in the list.";\nBlockly.Msg.MATH_ONLIST_TOOLTIP_MODE = "Return a list of the most common item(s) in the list.";\nBlockly.Msg.MATH_ONLIST_TOOLTIP_RANDOM = "Return a random element from the list.";\nBlockly.Msg.MATH_ONLIST_TOOLTIP_STD_DEV = "Return the standard deviation of the list.";\nBlockly.Msg.MATH_ONLIST_TOOLTIP_SUM = "Return the sum of all the numbers in the list.";\nBlockly.Msg.MATH_POWER_SYMBOL = "^";\nBlockly.Msg.MATH_RANDOM_FLOAT_HELPURL = "https://en.wikipedia.org/wiki/Random_number_generation";\nBlockly.Msg.MATH_RANDOM_FLOAT_TITLE_RANDOM = "random fraction";\nBlockly.Msg.MATH_RANDOM_FLOAT_TOOLTIP = "Return a random fraction between 0.0 (inclusive) and 1.0 (exclusive).";\nBlockly.Msg.MATH_RANDOM_INT_HELPURL = "https://en.wikipedia.org/wiki/Random_number_generation";\nBlockly.Msg.MATH_RANDOM_INT_TITLE = "random integer from %1 to %2";\nBlockly.Msg.MATH_RANDOM_INT_TOOLTIP = "Return a random integer between the two specified limits, inclusive.";\nBlockly.Msg.MATH_ROUND_HELPURL = "https://en.wikipedia.org/wiki/Rounding";\nBlockly.Msg.MATH_ROUND_OPERATOR_ROUND = "round";\nBlockly.Msg.MATH_ROUND_OPERATOR_ROUNDDOWN = "round down";\nBlockly.Msg.MATH_ROUND_OPERATOR_ROUNDUP = "round up";\nBlockly.Msg.MATH_ROUND_TOOLTIP = "Round a number up or down.";\nBlockly.Msg.MATH_SINGLE_HELPURL = "https://en.wikipedia.org/wiki/Square_root";\nBlockly.Msg.MATH_SINGLE_OP_ABSOLUTE = "absolute";\nBlockly.Msg.MATH_SINGLE_OP_ROOT = "square root";\nBlockly.Msg.MATH_SINGLE_TOOLTIP_ABS = "Return the absolute value of a number.";\nBlockly.Msg.MATH_SINGLE_TOOLTIP_EXP = "Return e to the power of a number.";\nBlockly.Msg.MATH_SINGLE_TOOLTIP_LN = "Return the natural logarithm of a number.";\nBlockly.Msg.MATH_SINGLE_TOOLTIP_LOG10 = "Return the base 10 logarithm of a number.";\nBlockly.Msg.MATH_SINGLE_TOOLTIP_NEG = "Return the negation of a number.";\nBlockly.Msg.MATH_SINGLE_TOOLTIP_POW10 = "Return 10 to the power of a number.";\nBlockly.Msg.MATH_SINGLE_TOOLTIP_ROOT = "Return the square root of a number.";\nBlockly.Msg.MATH_SUBTRACTION_SYMBOL = "-";\nBlockly.Msg.MATH_TRIG_ACOS = "acos";\nBlockly.Msg.MATH_TRIG_ASIN = "asin";\nBlockly.Msg.MATH_TRIG_ATAN = "atan";\nBlockly.Msg.MATH_TRIG_COS = "cos";\nBlockly.Msg.MATH_TRIG_HELPURL = "https://en.wikipedia.org/wiki/Trigonometric_functions";\nBlockly.Msg.MATH_TRIG_SIN = "sin";\nBlockly.Msg.MATH_TRIG_TAN = "tan";\nBlockly.Msg.MATH_TRIG_TOOLTIP_ACOS = "Return the arccosine of a number.";\nBlockly.Msg.MATH_TRIG_TOOLTIP_ASIN = "Return the arcsine of a number.";\nBlockly.Msg.MATH_TRIG_TOOLTIP_ATAN = "Return the arctangent of a number.";\nBlockly.Msg.MATH_TRIG_TOOLTIP_COS = "Return the cosine of a degree (not radian).";\nBlockly.Msg.MATH_TRIG_TOOLTIP_SIN = "Return the sine of a degree (not radian).";\nBlockly.Msg.MATH_TRIG_TOOLTIP_TAN = "Return the tangent of a degree (not radian).";\nBlockly.Msg.NEW_VARIABLE = "Create variable...";\nBlockly.Msg.NEW_VARIABLE_TITLE = "New variable name:";\nBlockly.Msg.ORDINAL_NUMBER_SUFFIX = "";\nBlockly.Msg.PROCEDURES_ALLOW_STATEMENTS = "allow statements";\nBlockly.Msg.PROCEDURES_BEFORE_PARAMS = "with:";\nBlockly.Msg.PROCEDURES_CALLNORETURN_HELPURL = "https://en.wikipedia.org/wiki/Procedure_%28computer_science%29";\nBlockly.Msg.PROCEDURES_CALLNORETURN_TOOLTIP = "Run the user-defined function \'%1\'.";\nBlockly.Msg.PROCEDURES_CALLRETURN_HELPURL = "https://en.wikipedia.org/wiki/Procedure_%28computer_science%29";\nBlockly.Msg.PROCEDURES_CALLRETURN_TOOLTIP = "Run the user-defined function \'%1\' and use its output.";\nBlockly.Msg.PROCEDURES_CALL_BEFORE_PARAMS = "with:";\nBlockly.Msg.PROCEDURES_CREATE_DO = "Create \'%1\'";\nBlockly.Msg.PROCEDURES_DEFNORETURN_COMMENT = "Describe this function...";\nBlockly.Msg.PROCEDURES_DEFNORETURN_DO = "";\nBlockly.Msg.PROCEDURES_DEFNORETURN_HELPURL = "https://en.wikipedia.org/wiki/Procedure_%28computer_science%29";\nBlockly.Msg.PROCEDURES_DEFNORETURN_PROCEDURE = "do something";\nBlockly.Msg.PROCEDURES_DEFNORETURN_TITLE = "to";\nBlockly.Msg.PROCEDURES_DEFNORETURN_TOOLTIP = "Creates a function with no output.";\nBlockly.Msg.PROCEDURES_DEFRETURN_HELPURL = "https://en.wikipedia.org/wiki/Procedure_%28computer_science%29";\nBlockly.Msg.PROCEDURES_DEFRETURN_RETURN = "return";\nBlockly.Msg.PROCEDURES_DEFRETURN_TOOLTIP = "Creates a function with an output.";\nBlockly.Msg.PROCEDURES_DEF_DUPLICATE_WARNING = "Warning: This function has duplicate parameters.";\nBlockly.Msg.PROCEDURES_HIGHLIGHT_DEF = "Highlight function definition";\nBlockly.Msg.PROCEDURES_IFRETURN_HELPURL = "http://c2.com/cgi/wiki?GuardClause";\nBlockly.Msg.PROCEDURES_IFRETURN_TOOLTIP = "If a value is true, then return a second value.";\nBlockly.Msg.PROCEDURES_IFRETURN_WARNING = "Warning: This block may be used only within a function definition.";\nBlockly.Msg.PROCEDURES_MUTATORARG_TITLE = "input name:";\nBlockly.Msg.PROCEDURES_MUTATORARG_TOOLTIP = "Add an input to the function.";\nBlockly.Msg.PROCEDURES_MUTATORCONTAINER_TITLE = "inputs";\nBlockly.Msg.PROCEDURES_MUTATORCONTAINER_TOOLTIP = "Add, remove, or reorder inputs to this function.";\nBlockly.Msg.REDO = "Redo";\nBlockly.Msg.REMOVE_COMMENT = "Remove Comment";\nBlockly.Msg.RENAME_VARIABLE = "Rename variable...";\nBlockly.Msg.RENAME_VARIABLE_TITLE = "Rename all \'%1\' variables to:";\nBlockly.Msg.TEXT_APPEND_APPENDTEXT = "append text";\nBlockly.Msg.TEXT_APPEND_HELPURL = "https://github.com/google/blockly/wiki/Text#text-modification";\nBlockly.Msg.TEXT_APPEND_TO = "to";\nBlockly.Msg.TEXT_APPEND_TOOLTIP = "Append some text to variable \'%1\'.";\nBlockly.Msg.TEXT_CHANGECASE_HELPURL = "https://github.com/google/blockly/wiki/Text#adjusting-text-case";\nBlockly.Msg.TEXT_CHANGECASE_OPERATOR_LOWERCASE = "to lower case";\nBlockly.Msg.TEXT_CHANGECASE_OPERATOR_TITLECASE = "to Title Case";\nBlockly.Msg.TEXT_CHANGECASE_OPERATOR_UPPERCASE = "to UPPER CASE";\nBlockly.Msg.TEXT_CHANGECASE_TOOLTIP = "Return a copy of the text in a different case.";\nBlockly.Msg.TEXT_CHARAT_FIRST = "get first letter";\nBlockly.Msg.TEXT_CHARAT_FROM_END = "get letter # from end";\nBlockly.Msg.TEXT_CHARAT_FROM_START = "get letter #";\nBlockly.Msg.TEXT_CHARAT_HELPURL = "https://github.com/google/blockly/wiki/Text#extracting-text";\nBlockly.Msg.TEXT_CHARAT_INPUT_INTEXT = "in text";\nBlockly.Msg.TEXT_CHARAT_LAST = "get last letter";\nBlockly.Msg.TEXT_CHARAT_RANDOM = "get random letter";\nBlockly.Msg.TEXT_CHARAT_TAIL = "";\nBlockly.Msg.TEXT_CHARAT_TOOLTIP = "Returns the letter at the specified position.";\nBlockly.Msg.TEXT_CREATE_JOIN_ITEM_TOOLTIP = "Add an item to the text.";\nBlockly.Msg.TEXT_CREATE_JOIN_TITLE_JOIN = "join";\nBlockly.Msg.TEXT_CREATE_JOIN_TOOLTIP = "Add, remove, or reorder sections to reconfigure this text block.";\nBlockly.Msg.TEXT_GET_SUBSTRING_END_FROM_END = "to letter # from end";\nBlockly.Msg.TEXT_GET_SUBSTRING_END_FROM_START = "to letter #";\nBlockly.Msg.TEXT_GET_SUBSTRING_END_LAST = "to last letter";\nBlockly.Msg.TEXT_GET_SUBSTRING_HELPURL = "https://github.com/google/blockly/wiki/Text#extracting-a-region-of-text";\nBlockly.Msg.TEXT_GET_SUBSTRING_INPUT_IN_TEXT = "in text";\nBlockly.Msg.TEXT_GET_SUBSTRING_START_FIRST = "get substring from first letter";\nBlockly.Msg.TEXT_GET_SUBSTRING_START_FROM_END = "get substring from letter # from end";\nBlockly.Msg.TEXT_GET_SUBSTRING_START_FROM_START = "get substring from letter #";\nBlockly.Msg.TEXT_GET_SUBSTRING_TAIL = "";\nBlockly.Msg.TEXT_GET_SUBSTRING_TOOLTIP = "Returns a specified portion of the text.";\nBlockly.Msg.TEXT_INDEXOF_HELPURL = "https://github.com/google/blockly/wiki/Text#finding-text";\nBlockly.Msg.TEXT_INDEXOF_INPUT_INTEXT = "in text";\nBlockly.Msg.TEXT_INDEXOF_OPERATOR_FIRST = "find first occurrence of text";\nBlockly.Msg.TEXT_INDEXOF_OPERATOR_LAST = "find last occurrence of text";\nBlockly.Msg.TEXT_INDEXOF_TAIL = "";\nBlockly.Msg.TEXT_INDEXOF_TOOLTIP = "Returns the index of the first/last occurrence of the first text in the second text. Returns %1 if text is not found.";\nBlockly.Msg.TEXT_ISEMPTY_HELPURL = "https://github.com/google/blockly/wiki/Text#checking-for-empty-text";\nBlockly.Msg.TEXT_ISEMPTY_TITLE = "%1 is empty";\nBlockly.Msg.TEXT_ISEMPTY_TOOLTIP = "Returns true if the provided text is empty.";\nBlockly.Msg.TEXT_JOIN_HELPURL = "https://github.com/google/blockly/wiki/Text#text-creation";\nBlockly.Msg.TEXT_JOIN_TITLE_CREATEWITH = "create text with";\nBlockly.Msg.TEXT_JOIN_TOOLTIP = "Create a piece of text by joining together any number of items.";\nBlockly.Msg.TEXT_LENGTH_HELPURL = "https://github.com/google/blockly/wiki/Text#text-modification";\nBlockly.Msg.TEXT_LENGTH_TITLE = "length of %1";\nBlockly.Msg.TEXT_LENGTH_TOOLTIP = "Returns the number of letters (including spaces) in the provided text.";\nBlockly.Msg.TEXT_PRINT_HELPURL = "https://github.com/google/blockly/wiki/Text#printing-text";\nBlockly.Msg.TEXT_PRINT_TITLE = "print %1";\nBlockly.Msg.TEXT_PRINT_TOOLTIP = "Print the specified text, number or other value.";\nBlockly.Msg.TEXT_PROMPT_HELPURL = "https://github.com/google/blockly/wiki/Text#getting-input-from-the-user";\nBlockly.Msg.TEXT_PROMPT_TOOLTIP_NUMBER = "Prompt for user for a number.";\nBlockly.Msg.TEXT_PROMPT_TOOLTIP_TEXT = "Prompt for user for some text.";\nBlockly.Msg.TEXT_PROMPT_TYPE_NUMBER = "prompt for number with message";\nBlockly.Msg.TEXT_PROMPT_TYPE_TEXT = "prompt for text with message";\nBlockly.Msg.TEXT_TEXT_HELPURL = "https://en.wikipedia.org/wiki/String_(computer_science)";\nBlockly.Msg.TEXT_TEXT_TOOLTIP = "A letter, word, or line of text.";\nBlockly.Msg.TEXT_TRIM_HELPURL = "https://github.com/google/blockly/wiki/Text#trimming-removing-spaces";\nBlockly.Msg.TEXT_TRIM_OPERATOR_BOTH = "trim spaces from both sides of";\nBlockly.Msg.TEXT_TRIM_OPERATOR_LEFT = "trim spaces from left side of";\nBlockly.Msg.TEXT_TRIM_OPERATOR_RIGHT = "trim spaces from right side of";\nBlockly.Msg.TEXT_TRIM_TOOLTIP = "Return a copy of the text with spaces removed from one or both ends.";\nBlockly.Msg.TODAY = "Today";\nBlockly.Msg.UNDO = "Undo";\nBlockly.Msg.VARIABLES_DEFAULT_NAME = "item";\nBlockly.Msg.VARIABLES_GET_CREATE_SET = "Create \'set %1\'";\nBlockly.Msg.VARIABLES_GET_HELPURL = "https://github.com/google/blockly/wiki/Variables#get";\nBlockly.Msg.VARIABLES_GET_TOOLTIP = "Returns the value of this variable.";\nBlockly.Msg.VARIABLES_SET = "set %1 to %2";\nBlockly.Msg.VARIABLES_SET_CREATE_GET = "Create \'get %1\'";\nBlockly.Msg.VARIABLES_SET_HELPURL = "https://github.com/google/blockly/wiki/Variables#set";\nBlockly.Msg.VARIABLES_SET_TOOLTIP = "Sets this variable to be equal to the input.";\nBlockly.Msg.VARIABLE_ALREADY_EXISTS = "A variable named \'%1\' already exists.";\nBlockly.Msg.PROCEDURES_DEFRETURN_TITLE = Blockly.Msg.PROCEDURES_DEFNORETURN_TITLE;\nBlockly.Msg.CONTROLS_IF_IF_TITLE_IF = Blockly.Msg.CONTROLS_IF_MSG_IF;\nBlockly.Msg.CONTROLS_WHILEUNTIL_INPUT_DO = Blockly.Msg.CONTROLS_REPEAT_INPUT_DO;\nBlockly.Msg.CONTROLS_IF_MSG_THEN = Blockly.Msg.CONTROLS_REPEAT_INPUT_DO;\nBlockly.Msg.CONTROLS_IF_ELSE_TITLE_ELSE = Blockly.Msg.CONTROLS_IF_MSG_ELSE;\nBlockly.Msg.PROCEDURES_DEFRETURN_PROCEDURE = Blockly.Msg.PROCEDURES_DEFNORETURN_PROCEDURE;\nBlockly.Msg.LISTS_GET_SUBLIST_INPUT_IN_LIST = Blockly.Msg.LISTS_INLIST;\nBlockly.Msg.LISTS_GET_INDEX_INPUT_IN_LIST = Blockly.Msg.LISTS_INLIST;\nBlockly.Msg.MATH_CHANGE_TITLE_ITEM = Blockly.Msg.VARIABLES_DEFAULT_NAME;\nBlockly.Msg.PROCEDURES_DEFRETURN_DO = Blockly.Msg.PROCEDURES_DEFNORETURN_DO;\nBlockly.Msg.CONTROLS_IF_ELSEIF_TITLE_ELSEIF = Blockly.Msg.CONTROLS_IF_MSG_ELSEIF;\nBlockly.Msg.LISTS_GET_INDEX_HELPURL = Blockly.Msg.LISTS_INDEX_OF_HELPURL;\nBlockly.Msg.CONTROLS_FOREACH_INPUT_DO = Blockly.Msg.CONTROLS_REPEAT_INPUT_DO;\nBlockly.Msg.LISTS_SET_INDEX_INPUT_IN_LIST = Blockly.Msg.LISTS_INLIST;\nBlockly.Msg.CONTROLS_FOR_INPUT_DO = Blockly.Msg.CONTROLS_REPEAT_INPUT_DO;\nBlockly.Msg.LISTS_CREATE_WITH_ITEM_TITLE = Blockly.Msg.VARIABLES_DEFAULT_NAME;\nBlockly.Msg.TEXT_APPEND_VARIABLE = Blockly.Msg.VARIABLES_DEFAULT_NAME;\nBlockly.Msg.TEXT_CREATE_JOIN_ITEM_TITLE_ITEM = Blockly.Msg.VARIABLES_DEFAULT_NAME;\nBlockly.Msg.LISTS_INDEX_OF_INPUT_IN_LIST = Blockly.Msg.LISTS_INLIST;\nBlockly.Msg.PROCEDURES_DEFRETURN_COMMENT = Blockly.Msg.PROCEDURES_DEFNORETURN_COMMENT;\n'},function(e,t){e.exports='/*!\n * jQuery JavaScript Library v3.1.1\n * https://jquery.com/\n *\n * Includes Sizzle.js\n * https://sizzlejs.com/\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license\n * https://jquery.org/license\n *\n * Date: 2016-09-22T22:30Z\n */\n( function( global, factory ) {\n\n\t"use strict";\n\n\tif ( typeof module === "object" && typeof module.exports === "object" ) {\n\n\t\t// For CommonJS and CommonJS-like environments where a proper `window`\n\t\t// is present, execute the factory and get jQuery.\n\t\t// For environments that do not have a `window` with a `document`\n\t\t// (such as Node.js), expose a factory as module.exports.\n\t\t// This accentuates the need for the creation of a real `window`.\n\t\t// e.g. var jQuery = require("jquery")(window);\n\t\t// See ticket #14549 for more info.\n\t\tmodule.exports = global.document ?\n\t\t\tfactory( global, true ) :\n\t\t\tfunction( w ) {\n\t\t\t\tif ( !w.document ) {\n\t\t\t\t\tthrow new Error( "jQuery requires a window with a document" );\n\t\t\t\t}\n\t\t\t\treturn factory( w );\n\t\t\t};\n\t} else {\n\t\tfactory( global );\n\t}\n\n// Pass this if window is not defined yet\n} )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) {\n\n// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1\n// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode\n// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common\n// enough that all such attempts are guarded in a try block.\n"use strict";\n\nvar arr = [];\n\nvar document = window.document;\n\nvar getProto = Object.getPrototypeOf;\n\nvar slice = arr.slice;\n\nvar concat = arr.concat;\n\nvar push = arr.push;\n\nvar indexOf = arr.indexOf;\n\nvar class2type = {};\n\nvar toString = class2type.toString;\n\nvar hasOwn = class2type.hasOwnProperty;\n\nvar fnToString = hasOwn.toString;\n\nvar ObjectFunctionString = fnToString.call( Object );\n\nvar support = {};\n\n\n\n\tfunction DOMEval( code, doc ) {\n\t\tdoc = doc || document;\n\n\t\tvar script = doc.createElement( "script" );\n\n\t\tscript.text = code;\n\t\tdoc.head.appendChild( script ).parentNode.removeChild( script );\n\t}\n/* global Symbol */\n// Defining this global in .eslintrc.json would create a danger of using the global\n// unguarded in another place, it seems safer to define global only for this module\n\n\n\nvar\n\tversion = "3.1.1",\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\n\t\t// The jQuery object is actually just the init constructor \'enhanced\'\n\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\n\t\treturn new jQuery.fn.init( selector, context );\n\t},\n\n\t// Support: Android <=4.0 only\n\t// Make sure we trim BOM and NBSP\n\trtrim = /^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g,\n\n\t// Matches dashed string for camelizing\n\trmsPrefix = /^-ms-/,\n\trdashAlpha = /-([a-z])/g,\n\n\t// Used by jQuery.camelCase as callback to replace()\n\tfcamelCase = function( all, letter ) {\n\t\treturn letter.toUpperCase();\n\t};\n\njQuery.fn = jQuery.prototype = {\n\n\t// The current version of jQuery being used\n\tjquery: version,\n\n\tconstructor: jQuery,\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\ttoArray: function() {\n\t\treturn slice.call( this );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\n\t\t// Return all the elements in a clean array\n\t\tif ( num == null ) {\n\t\t\treturn slice.call( this );\n\t\t}\n\n\t\t// Return just the one element from the set\n\t\treturn num < 0 ? this[ num + this.length ] : this[ num ];\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems ) {\n\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\teach: function( callback ) {\n\t\treturn jQuery.each( this, callback );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map( this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t} ) );\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( slice.apply( this, arguments ) );\n\t},\n\n\tfirst: function() {\n\t\treturn this.eq( 0 );\n\t},\n\n\tlast: function() {\n\t\treturn this.eq( -1 );\n\t},\n\n\teq: function( i ) {\n\t\tvar len = this.length,\n\t\t\tj = +i + ( i < 0 ? len : 0 );\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );\n\t},\n\n\tend: function() {\n\t\treturn this.prevObject || this.constructor();\n\t},\n\n\t// For internal use only.\n\t// Behaves like an Array\'s method, not like a jQuery method.\n\tpush: push,\n\tsort: arr.sort,\n\tsplice: arr.splice\n};\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar options, name, src, copy, copyIsArray, clone,\n\t\ttarget = arguments[ 0 ] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === "boolean" ) {\n\t\tdeep = target;\n\n\t\t// Skip the boolean and the target\n\t\ttarget = arguments[ i ] || {};\n\t\ti++;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== "object" && !jQuery.isFunction( target ) ) {\n\t\ttarget = {};\n\t}\n\n\t// Extend jQuery itself if only one argument is passed\n\tif ( i === length ) {\n\t\ttarget = this;\n\t\ti--;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\n\t\t// Only deal with non-null/undefined values\n\t\tif ( ( options = arguments[ i ] ) != null ) {\n\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tsrc = target[ name ];\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we\'re merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject( copy ) ||\n\t\t\t\t\t( copyIsArray = jQuery.isArray( copy ) ) ) ) {\n\n\t\t\t\t\tif ( copyIsArray ) {\n\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\tclone = src && jQuery.isArray( src ) ? src : [];\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src && jQuery.isPlainObject( src ) ? src : {};\n\t\t\t\t\t}\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t// Don\'t bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\njQuery.extend( {\n\n\t// Unique for each copy of jQuery on the page\n\texpando: "jQuery" + ( version + Math.random() ).replace( /\\D/g, "" ),\n\n\t// Assume jQuery is ready without the ready module\n\tisReady: true,\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\tnoop: function() {},\n\n\tisFunction: function( obj ) {\n\t\treturn jQuery.type( obj ) === "function";\n\t},\n\n\tisArray: Array.isArray,\n\n\tisWindow: function( obj ) {\n\t\treturn obj != null && obj === obj.window;\n\t},\n\n\tisNumeric: function( obj ) {\n\n\t\t// As of jQuery 3.0, isNumeric is limited to\n\t\t// strings and numbers (primitives or objects)\n\t\t// that can be coerced to finite numbers (gh-2662)\n\t\tvar type = jQuery.type( obj );\n\t\treturn ( type === "number" || type === "string" ) &&\n\n\t\t\t// parseFloat NaNs numeric-cast false positives ("")\n\t\t\t// ...but misinterprets leading-number strings, particularly hex literals ("0x...")\n\t\t\t// subtraction forces infinities to NaN\n\t\t\t!isNaN( obj - parseFloat( obj ) );\n\t},\n\n\tisPlainObject: function( obj ) {\n\t\tvar proto, Ctor;\n\n\t\t// Detect obvious negatives\n\t\t// Use toString instead of jQuery.type to catch host objects\n\t\tif ( !obj || toString.call( obj ) !== "[object Object]" ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tproto = getProto( obj );\n\n\t\t// Objects with no prototype (e.g., `Object.create( null )`) are plain\n\t\tif ( !proto ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Objects with prototype are plain iff they were constructed by a global Object function\n\t\tCtor = hasOwn.call( proto, "constructor" ) && proto.constructor;\n\t\treturn typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString;\n\t},\n\n\tisEmptyObject: function( obj ) {\n\n\t\t/* eslint-disable no-unused-vars */\n\t\t// See https://github.com/eslint/eslint/issues/6125\n\t\tvar name;\n\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\ttype: function( obj ) {\n\t\tif ( obj == null ) {\n\t\t\treturn obj + "";\n\t\t}\n\n\t\t// Support: Android <=2.3 only (functionish RegExp)\n\t\treturn typeof obj === "object" || typeof obj === "function" ?\n\t\t\tclass2type[ toString.call( obj ) ] || "object" :\n\t\t\ttypeof obj;\n\t},\n\n\t// Evaluates a script in a global context\n\tglobalEval: function( code ) {\n\t\tDOMEval( code );\n\t},\n\n\t// Convert dashed to camelCase; used by the css and data modules\n\t// Support: IE <=9 - 11, Edge 12 - 13\n\t// Microsoft forgot to hump their vendor prefix (#9572)\n\tcamelCase: function( string ) {\n\t\treturn string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );\n\t},\n\n\tnodeName: function( elem, name ) {\n\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\t},\n\n\teach: function( obj, callback ) {\n\t\tvar length, i = 0;\n\n\t\tif ( isArrayLike( obj ) ) {\n\t\t\tlength = obj.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i in obj ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\t// Support: Android <=4.0 only\n\ttrim: function( text ) {\n\t\treturn text == null ?\n\t\t\t"" :\n\t\t\t( text + "" ).replace( rtrim, "" );\n\t},\n\n\t// results is for internal usage only\n\tmakeArray: function( arr, results ) {\n\t\tvar ret = results || [];\n\n\t\tif ( arr != null ) {\n\t\t\tif ( isArrayLike( Object( arr ) ) ) {\n\t\t\t\tjQuery.merge( ret,\n\t\t\t\t\ttypeof arr === "string" ?\n\t\t\t\t\t[ arr ] : arr\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tpush.call( ret, arr );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tinArray: function( elem, arr, i ) {\n\t\treturn arr == null ? -1 : indexOf.call( arr, elem, i );\n\t},\n\n\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t// push.apply(_, arraylike) throws on ancient WebKit\n\tmerge: function( first, second ) {\n\t\tvar len = +second.length,\n\t\t\tj = 0,\n\t\t\ti = first.length;\n\n\t\tfor ( ; j < len; j++ ) {\n\t\t\tfirst[ i++ ] = second[ j ];\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, invert ) {\n\t\tvar callbackInverse,\n\t\t\tmatches = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tcallbackExpect = !invert;\n\n\t\t// Go through the array, only saving the items\n\t\t// that pass the validator function\n\t\tfor ( ; i < length; i++ ) {\n\t\t\tcallbackInverse = !callback( elems[ i ], i );\n\t\t\tif ( callbackInverse !== callbackExpect ) {\n\t\t\t\tmatches.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn matches;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar length, value,\n\t\t\ti = 0,\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their new values\n\t\tif ( isArrayLike( elems ) ) {\n\t\t\tlength = elems.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Go through every key on the object,\n\t\t} else {\n\t\t\tfor ( i in elems ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn concat.apply( [], ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\n\n\t// Bind a function to a context, optionally partially applying any\n\t// arguments.\n\tproxy: function( fn, context ) {\n\t\tvar tmp, args, proxy;\n\n\t\tif ( typeof context === "string" ) {\n\t\t\ttmp = fn[ context ];\n\t\t\tcontext = fn;\n\t\t\tfn = tmp;\n\t\t}\n\n\t\t// Quick check to determine if target is callable, in the spec\n\t\t// this throws a TypeError, but we will just return undefined.\n\t\tif ( !jQuery.isFunction( fn ) ) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\t// Simulated bind\n\t\targs = slice.call( arguments, 2 );\n\t\tproxy = function() {\n\t\t\treturn fn.apply( context || this, args.concat( slice.call( arguments ) ) );\n\t\t};\n\n\t\t// Set the guid of unique handler to the same of original handler, so it can be removed\n\t\tproxy.guid = fn.guid = fn.guid || jQuery.guid++;\n\n\t\treturn proxy;\n\t},\n\n\tnow: Date.now,\n\n\t// jQuery.support is not used in Core but other projects attach their\n\t// properties to it so it needs to exist.\n\tsupport: support\n} );\n\nif ( typeof Symbol === "function" ) {\n\tjQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];\n}\n\n// Populate the class2type map\njQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ),\nfunction( i, name ) {\n\tclass2type[ "[object " + name + "]" ] = name.toLowerCase();\n} );\n\nfunction isArrayLike( obj ) {\n\n\t// Support: real iOS 8.2 only (not reproducible in simulator)\n\t// `in` check used to prevent JIT error (gh-2145)\n\t// hasOwn isn\'t used here due to false negatives\n\t// regarding Nodelist length in IE\n\tvar length = !!obj && "length" in obj && obj.length,\n\t\ttype = jQuery.type( obj );\n\n\tif ( type === "function" || jQuery.isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\treturn type === "array" || length === 0 ||\n\t\ttypeof length === "number" && length > 0 && ( length - 1 ) in obj;\n}\nvar Sizzle =\n/*!\n * Sizzle CSS Selector Engine v2.3.3\n * https://sizzlejs.com/\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license\n * http://jquery.org/license\n *\n * Date: 2016-08-08\n */\n(function( window ) {\n\nvar i,\n\tsupport,\n\tExpr,\n\tgetText,\n\tisXML,\n\ttokenize,\n\tcompile,\n\tselect,\n\toutermostContext,\n\tsortInput,\n\thasDuplicate,\n\n\t// Local document vars\n\tsetDocument,\n\tdocument,\n\tdocElem,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\trbuggyMatches,\n\tmatches,\n\tcontains,\n\n\t// Instance-specific data\n\texpando = "sizzle" + 1 * new Date(),\n\tpreferredDoc = window.document,\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = createCache(),\n\tsortOrder = function( a, b ) {\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t}\n\t\treturn 0;\n\t},\n\n\t// Instance methods\n\thasOwn = ({}).hasOwnProperty,\n\tarr = [],\n\tpop = arr.pop,\n\tpush_native = arr.push,\n\tpush = arr.push,\n\tslice = arr.slice,\n\t// Use a stripped-down indexOf as it\'s faster than native\n\t// https://jsperf.com/thor-indexof-vs-for/5\n\tindexOf = function( list, elem ) {\n\t\tvar i = 0,\n\t\t\tlen = list.length;\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tif ( list[i] === elem ) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t},\n\n\tbooleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",\n\n\t// Regular expressions\n\n\t// http://www.w3.org/TR/css3-selectors/#whitespace\n\twhitespace = "[\\\\x20\\\\t\\\\r\\\\n\\\\f]",\n\n\t// http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier\n\tidentifier = "(?:\\\\\\\\.|[\\\\w-]|[^\\0-\\\\xa0])+",\n\n\t// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n\tattributes = "\\\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace +\n\t\t// Operator (capture 2)\n\t\t"*([*^$|!~]?=)" + whitespace +\n\t\t// "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]"\n\t\t"*(?:\'((?:\\\\\\\\.|[^\\\\\\\\\'])*)\'|\\"((?:\\\\\\\\.|[^\\\\\\\\\\"])*)\\"|(" + identifier + "))|)" + whitespace +\n\t\t"*\\\\]",\n\n\tpseudos = ":(" + identifier + ")(?:\\\\((" +\n\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n\t\t// 1. quoted (capture 3; capture 4 or capture 5)\n\t\t"(\'((?:\\\\\\\\.|[^\\\\\\\\\'])*)\'|\\"((?:\\\\\\\\.|[^\\\\\\\\\\"])*)\\")|" +\n\t\t// 2. simple (capture 6)\n\t\t"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|" + attributes + ")*)|" +\n\t\t// 3. anything else (capture 2)\n\t\t".*" +\n\t\t")\\\\)|)",\n\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\trwhitespace = new RegExp( whitespace + "+", "g" ),\n\trtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)" + whitespace + "+$", "g" ),\n\n\trcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ),\n\trcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ),\n\n\trattributeQuotes = new RegExp( "=" + whitespace + "*([^\\\\]\'\\"]*?)" + whitespace + "*\\\\]", "g" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( "^" + identifier + "$" ),\n\n\tmatchExpr = {\n\t\t"ID": new RegExp( "^#(" + identifier + ")" ),\n\t\t"CLASS": new RegExp( "^\\\\.(" + identifier + ")" ),\n\t\t"TAG": new RegExp( "^(" + identifier + "|[*])" ),\n\t\t"ATTR": new RegExp( "^" + attributes ),\n\t\t"PSEUDO": new RegExp( "^" + pseudos ),\n\t\t"CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(" + whitespace +\n\t\t\t"*(even|odd|(([+-]|)(\\\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace +\n\t\t\t"*(\\\\d+)|))" + whitespace + "*\\\\)|)", "i" ),\n\t\t"bool": new RegExp( "^(?:" + booleans + ")$", "i" ),\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\t"needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(" +\n\t\t\twhitespace + "*((?:-\\\\d)?\\\\d*)" + whitespace + "*\\\\)|)(?=[^-]|$)", "i" )\n\t},\n\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\trnative = /^[^{]+\\{\\s*\\[native \\w/,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\trsibling = /[+~]/,\n\n\t// CSS escapes\n\t// http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( "\\\\\\\\([\\\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ),\n\tfunescape = function( _, escaped, escapedWhitespace ) {\n\t\tvar high = "0x" + escaped - 0x10000;\n\t\t// NaN means non-codepoint\n\t\t// Support: Firefox<24\n\t\t// Workaround erroneous numeric interpretation of +"0x"\n\t\treturn high !== high || escapedWhitespace ?\n\t\t\tescaped :\n\t\t\thigh < 0 ?\n\t\t\t\t// BMP codepoint\n\t\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\t\t// Supplemental Plane codepoint (surrogate pair)\n\t\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t},\n\n\t// CSS string/identifier serialization\n\t// https://drafts.csswg.org/cssom/#common-serializing-idioms\n\trcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,\n\tfcssescape = function( ch, asCodePoint ) {\n\t\tif ( asCodePoint ) {\n\n\t\t\t// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n\t\t\tif ( ch === "\\0" ) {\n\t\t\t\treturn "\\uFFFD";\n\t\t\t}\n\n\t\t\t// Control characters and (dependent upon position) numbers get escaped as code points\n\t\t\treturn ch.slice( 0, -1 ) + "\\\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " ";\n\t\t}\n\n\t\t// Other potentially-special ASCII characters get backslash-escaped\n\t\treturn "\\\\" + ch;\n\t},\n\n\t// Used for iframes\n\t// See setDocument()\n\t// Removing the function wrapper causes a "Permission Denied"\n\t// error in IE\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t},\n\n\tdisabledAncestor = addCombinator(\n\t\tfunction( elem ) {\n\t\t\treturn elem.disabled === true && ("form" in elem || "label" in elem);\n\t\t},\n\t\t{ dir: "parentNode", next: "legend" }\n\t);\n\n// Optimize for push.apply( _, NodeList )\ntry {\n\tpush.apply(\n\t\t(arr = slice.call( preferredDoc.childNodes )),\n\t\tpreferredDoc.childNodes\n\t);\n\t// Support: Android<4.0\n\t// Detect silently failing push.apply\n\tarr[ preferredDoc.childNodes.length ].nodeType;\n} catch ( e ) {\n\tpush = { apply: arr.length ?\n\n\t\t// Leverage slice if possible\n\t\tfunction( target, els ) {\n\t\t\tpush_native.apply( target, slice.call(els) );\n\t\t} :\n\n\t\t// Support: IE<9\n\t\t// Otherwise append directly\n\t\tfunction( target, els ) {\n\t\t\tvar j = target.length,\n\t\t\t\ti = 0;\n\t\t\t// Can\'t trust NodeList.length\n\t\t\twhile ( (target[j++] = els[i++]) ) {}\n\t\t\ttarget.length = j - 1;\n\t\t}\n\t};\n}\n\nfunction Sizzle( selector, context, results, seed ) {\n\tvar m, i, elem, nid, match, groups, newSelector,\n\t\tnewContext = context && context.ownerDocument,\n\n\t\t// nodeType defaults to 9, since context defaults to document\n\t\tnodeType = context ? context.nodeType : 9;\n\n\tresults = results || [];\n\n\t// Return early from calls with invalid selector or context\n\tif ( typeof selector !== "string" || !selector ||\n\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\n\n\t\treturn results;\n\t}\n\n\t// Try to shortcut find operations (as opposed to filters) in HTML documents\n\tif ( !seed ) {\n\n\t\tif ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {\n\t\t\tsetDocument( context );\n\t\t}\n\t\tcontext = context || document;\n\n\t\tif ( documentIsHTML ) {\n\n\t\t\t// If the selector is sufficiently simple, try using a "get*By*" DOM method\n\t\t\t// (excepting DocumentFragment context, where the methods don\'t exist)\n\t\t\tif ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) {\n\n\t\t\t\t// ID selector\n\t\t\t\tif ( (m = match[1]) ) {\n\n\t\t\t\t\t// Document context\n\t\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\t\tif ( (elem = context.getElementById( m )) ) {\n\n\t\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t// Element context\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\tif ( newContext && (elem = newContext.getElementById( m )) &&\n\t\t\t\t\t\t\tcontains( context, elem ) &&\n\t\t\t\t\t\t\telem.id === m ) {\n\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t// Type selector\n\t\t\t\t} else if ( match[2] ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\t\treturn results;\n\n\t\t\t\t// Class selector\n\t\t\t\t} else if ( (m = match[3]) && support.getElementsByClassName &&\n\t\t\t\t\tcontext.getElementsByClassName ) {\n\n\t\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\t\treturn results;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Take advantage of querySelectorAll\n\t\t\tif ( support.qsa &&\n\t\t\t\t!compilerCache[ selector + " " ] &&\n\t\t\t\t(!rbuggyQSA || !rbuggyQSA.test( selector )) ) {\n\n\t\t\t\tif ( nodeType !== 1 ) {\n\t\t\t\t\tnewContext = context;\n\t\t\t\t\tnewSelector = selector;\n\n\t\t\t\t// qSA looks outside Element context, which is not what we want\n\t\t\t\t// Thanks to Andrew Dupont for this workaround technique\n\t\t\t\t// Support: IE <=8\n\t\t\t\t// Exclude object elements\n\t\t\t\t} else if ( context.nodeName.toLowerCase() !== "object" ) {\n\n\t\t\t\t\t// Capture the context ID, setting it first if necessary\n\t\t\t\t\tif ( (nid = context.getAttribute( "id" )) ) {\n\t\t\t\t\t\tnid = nid.replace( rcssescape, fcssescape );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcontext.setAttribute( "id", (nid = expando) );\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prefix every selector in the list\n\t\t\t\t\tgroups = tokenize( selector );\n\t\t\t\t\ti = groups.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tgroups[i] = "#" + nid + " " + toSelector( groups[i] );\n\t\t\t\t\t}\n\t\t\t\t\tnewSelector = groups.join( "," );\n\n\t\t\t\t\t// Expand context for sibling selectors\n\t\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext;\n\t\t\t\t}\n\n\t\t\t\tif ( newSelector ) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t} catch ( qsaError ) {\n\t\t\t\t\t} finally {\n\t\t\t\t\t\tif ( nid === expando ) {\n\t\t\t\t\t\t\tcontext.removeAttribute( "id" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// All others\n\treturn select( selector.replace( rtrim, "$1" ), context, results, seed );\n}\n\n/**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\nfunction createCache() {\n\tvar keys = [];\n\n\tfunction cache( key, value ) {\n\t\t// Use (key + " ") to avoid collision with native prototype properties (see Issue #157)\n\t\tif ( keys.push( key + " " ) > Expr.cacheLength ) {\n\t\t\t// Only keep the most recent entries\n\t\t\tdelete cache[ keys.shift() ];\n\t\t}\n\t\treturn (cache[ key + " " ] = value);\n\t}\n\treturn cache;\n}\n\n/**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\nfunction markFunction( fn ) {\n\tfn[ expando ] = true;\n\treturn fn;\n}\n\n/**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\nfunction assert( fn ) {\n\tvar el = document.createElement("fieldset");\n\n\ttry {\n\t\treturn !!fn( el );\n\t} catch (e) {\n\t\treturn false;\n\t} finally {\n\t\t// Remove from its parent by default\n\t\tif ( el.parentNode ) {\n\t\t\tel.parentNode.removeChild( el );\n\t\t}\n\t\t// release memory in IE\n\t\tel = null;\n\t}\n}\n\n/**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\nfunction addHandle( attrs, handler ) {\n\tvar arr = attrs.split("|"),\n\t\ti = arr.length;\n\n\twhile ( i-- ) {\n\t\tExpr.attrHandle[ arr[i] ] = handler;\n\t}\n}\n\n/**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\nfunction siblingCheck( a, b ) {\n\tvar cur = b && a,\n\t\tdiff = cur && a.nodeType === 1 && b.nodeType === 1 &&\n\t\t\ta.sourceIndex - b.sourceIndex;\n\n\t// Use IE sourceIndex if available on both nodes\n\tif ( diff ) {\n\t\treturn diff;\n\t}\n\n\t// Check if b follows a\n\tif ( cur ) {\n\t\twhile ( (cur = cur.nextSibling) ) {\n\t\t\tif ( cur === b ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn a ? 1 : -1;\n}\n\n/**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn name === "input" && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\nfunction createButtonPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn (name === "input" || name === "button") && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for :enabled/:disabled\n * @param {Boolean} disabled true for :disabled; false for :enabled\n */\nfunction createDisabledPseudo( disabled ) {\n\n\t// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n\treturn function( elem ) {\n\n\t\t// Only certain elements can match :enabled or :disabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n\t\tif ( "form" in elem ) {\n\n\t\t\t// Check for inherited disabledness on relevant non-disabled elements:\n\t\t\t// * listed form-associated elements in a disabled fieldset\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#category-listed\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n\t\t\t// * option elements in a disabled optgroup\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n\t\t\t// All such elements have a "form" property.\n\t\t\tif ( elem.parentNode && elem.disabled === false ) {\n\n\t\t\t\t// Option elements defer to a parent optgroup if present\n\t\t\t\tif ( "label" in elem ) {\n\t\t\t\t\tif ( "label" in elem.parentNode ) {\n\t\t\t\t\t\treturn elem.parentNode.disabled === disabled;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn elem.disabled === disabled;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Support: IE 6 - 11\n\t\t\t\t// Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\t\t\t\treturn elem.isDisabled === disabled ||\n\n\t\t\t\t\t// Where there is no isDisabled, check manually\n\t\t\t\t\t/* jshint -W018 */\n\t\t\t\t\telem.isDisabled !== !disabled &&\n\t\t\t\t\t\tdisabledAncestor( elem ) === disabled;\n\t\t\t}\n\n\t\t\treturn elem.disabled === disabled;\n\n\t\t// Try to winnow out elements that can\'t be disabled before trusting the disabled property.\n\t\t// Some victims get caught in our net (label, legend, menu, track), but it shouldn\'t\n\t\t// even exist on them, let alone have a boolean value.\n\t\t} else if ( "label" in elem ) {\n\t\t\treturn elem.disabled === disabled;\n\t\t}\n\n\t\t// Remaining elements are neither :enabled nor :disabled\n\t\treturn false;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\nfunction createPositionalPseudo( fn ) {\n\treturn markFunction(function( argument ) {\n\t\targument = +argument;\n\t\treturn markFunction(function( seed, matches ) {\n\t\t\tvar j,\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\ti = matchIndexes.length;\n\n\t\t\t// Match elements found at the specified indexes\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( seed[ (j = matchIndexes[i]) ] ) {\n\t\t\t\t\tseed[j] = !(matches[j] = seed[j]);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Checks a node for validity as a Sizzle context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\nfunction testContext( context ) {\n\treturn context && typeof context.getElementsByTagName !== "undefined" && context;\n}\n\n// Expose support vars for convenience\nsupport = Sizzle.support = {};\n\n/**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\nisXML = Sizzle.isXML = function( elem ) {\n\t// documentElement is verified for cases where it doesn\'t yet exist\n\t// (such as loading iframes in IE - #4833)\n\tvar documentElement = elem && (elem.ownerDocument || elem).documentElement;\n\treturn documentElement ? documentElement.nodeName !== "HTML" : false;\n};\n\n/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nsetDocument = Sizzle.setDocument = function( node ) {\n\tvar hasCompare, subWindow,\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\n\n\t// Return early if doc is invalid or already selected\n\tif ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Update global variables\n\tdocument = doc;\n\tdocElem = document.documentElement;\n\tdocumentIsHTML = !isXML( document );\n\n\t// Support: IE 9-11, Edge\n\t// Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936)\n\tif ( preferredDoc !== document &&\n\t\t(subWindow = document.defaultView) && subWindow.top !== subWindow ) {\n\n\t\t// Support: IE 11, Edge\n\t\tif ( subWindow.addEventListener ) {\n\t\t\tsubWindow.addEventListener( "unload", unloadHandler, false );\n\n\t\t// Support: IE 9 - 10 only\n\t\t} else if ( subWindow.attachEvent ) {\n\t\t\tsubWindow.attachEvent( "onunload", unloadHandler );\n\t\t}\n\t}\n\n\t/* Attributes\n\t---------------------------------------------------------------------- */\n\n\t// Support: IE<8\n\t// Verify that getAttribute really returns attributes and not properties\n\t// (excepting IE8 booleans)\n\tsupport.attributes = assert(function( el ) {\n\t\tel.className = "i";\n\t\treturn !el.getAttribute("className");\n\t});\n\n\t/* getElement(s)By*\n\t---------------------------------------------------------------------- */\n\n\t// Check if getElementsByTagName("*") returns only elements\n\tsupport.getElementsByTagName = assert(function( el ) {\n\t\tel.appendChild( document.createComment("") );\n\t\treturn !el.getElementsByTagName("*").length;\n\t});\n\n\t// Support: IE<9\n\tsupport.getElementsByClassName = rnative.test( document.getElementsByClassName );\n\n\t// Support: IE<10\n\t// Check if getElementById returns elements by name\n\t// The broken getElementById methods don\'t pick up programmatically-set names,\n\t// so use a roundabout getElementsByName test\n\tsupport.getById = assert(function( el ) {\n\t\tdocElem.appendChild( el ).id = expando;\n\t\treturn !document.getElementsByName || !document.getElementsByName( expando ).length;\n\t});\n\n\t// ID filter and find\n\tif ( support.getById ) {\n\t\tExpr.filter["ID"] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.getAttribute("id") === attrId;\n\t\t\t};\n\t\t};\n\t\tExpr.find["ID"] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== "undefined" && documentIsHTML ) {\n\t\t\t\tvar elem = context.getElementById( id );\n\t\t\t\treturn elem ? [ elem ] : [];\n\t\t\t}\n\t\t};\n\t} else {\n\t\tExpr.filter["ID"] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\tvar node = typeof elem.getAttributeNode !== "undefined" &&\n\t\t\t\t\telem.getAttributeNode("id");\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\n\t\t// Support: IE 6 - 7 only\n\t\t// getElementById is not reliable as a find shortcut\n\t\tExpr.find["ID"] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== "undefined" && documentIsHTML ) {\n\t\t\t\tvar node, i, elems,\n\t\t\t\t\telem = context.getElementById( id );\n\n\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t// Verify the id attribute\n\t\t\t\t\tnode = elem.getAttributeNode("id");\n\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t}\n\n\t\t\t\t\t// Fall back on getElementsByName\n\t\t\t\t\telems = context.getElementsByName( id );\n\t\t\t\t\ti = 0;\n\t\t\t\t\twhile ( (elem = elems[i++]) ) {\n\t\t\t\t\t\tnode = elem.getAttributeNode("id");\n\t\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn [];\n\t\t\t}\n\t\t};\n\t}\n\n\t// Tag\n\tExpr.find["TAG"] = support.getElementsByTagName ?\n\t\tfunction( tag, context ) {\n\t\t\tif ( typeof context.getElementsByTagName !== "undefined" ) {\n\t\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t\t// DocumentFragment nodes don\'t have gEBTN\n\t\t\t} else if ( support.qsa ) {\n\t\t\t\treturn context.querySelectorAll( tag );\n\t\t\t}\n\t\t} :\n\n\t\tfunction( tag, context ) {\n\t\t\tvar elem,\n\t\t\t\ttmp = [],\n\t\t\t\ti = 0,\n\t\t\t\t// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n\t\t\t\tresults = context.getElementsByTagName( tag );\n\n\t\t\t// Filter out possible comments\n\t\t\tif ( tag === "*" ) {\n\t\t\t\twhile ( (elem = results[i++]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\ttmp.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn tmp;\n\t\t\t}\n\t\t\treturn results;\n\t\t};\n\n\t// Class\n\tExpr.find["CLASS"] = support.getElementsByClassName && function( className, context ) {\n\t\tif ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) {\n\t\t\treturn context.getElementsByClassName( className );\n\t\t}\n\t};\n\n\t/* QSA/matchesSelector\n\t---------------------------------------------------------------------- */\n\n\t// QSA and matchesSelector support\n\n\t// matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\trbuggyMatches = [];\n\n\t// qSa(:focus) reports false when true (Chrome 21)\n\t// We allow this because of a bug in IE8/9 that throws an error\n\t// whenever `document.activeElement` is accessed on an iframe\n\t// So, we allow :focus to pass through QSA all the time to avoid the IE error\n\t// See https://bugs.jquery.com/ticket/13378\n\trbuggyQSA = [];\n\n\tif ( (support.qsa = rnative.test( document.querySelectorAll )) ) {\n\t\t// Build QSA regex\n\t\t// Regex strategy adopted from Diego Perini\n\t\tassert(function( el ) {\n\t\t\t// Select is set to empty string on purpose\n\t\t\t// This is to test IE\'s treatment of not explicitly\n\t\t\t// setting a boolean content attribute,\n\t\t\t// since its presence should be enough\n\t\t\t// https://bugs.jquery.com/ticket/12359\n\t\t\tdocElem.appendChild( el ).innerHTML = "<a id=\'" + expando + "\'></a>" +\n\t\t\t\t"<select id=\'" + expando + "-\\r\\\\\' msallowcapture=\'\'>" +\n\t\t\t\t"<option selected=\'\'></option></select>";\n\n\t\t\t// Support: IE8, Opera 11-12.16\n\t\t\t// Nothing should be selected when empty strings follow ^= or $= or *=\n\t\t\t// The test attribute must be unknown in Opera but "safe" for WinRT\n\t\t\t// https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\t\t\tif ( el.querySelectorAll("[msallowcapture^=\'\']").length ) {\n\t\t\t\trbuggyQSA.push( "[*^$]=" + whitespace + "*(?:\'\'|\\"\\")" );\n\t\t\t}\n\n\t\t\t// Support: IE8\n\t\t\t// Boolean attributes and "value" are not treated correctly\n\t\t\tif ( !el.querySelectorAll("[selected]").length ) {\n\t\t\t\trbuggyQSA.push( "\\\\[" + whitespace + "*(?:value|" + booleans + ")" );\n\t\t\t}\n\n\t\t\t// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n\t\t\tif ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) {\n\t\t\t\trbuggyQSA.push("~=");\n\t\t\t}\n\n\t\t\t// Webkit/Opera - :checked should return selected option elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !el.querySelectorAll(":checked").length ) {\n\t\t\t\trbuggyQSA.push(":checked");\n\t\t\t}\n\n\t\t\t// Support: Safari 8+, iOS 8+\n\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t\t// In-page `selector#id sibling-combinator selector` fails\n\t\t\tif ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) {\n\t\t\t\trbuggyQSA.push(".#.+[+~]");\n\t\t\t}\n\t\t});\n\n\t\tassert(function( el ) {\n\t\t\tel.innerHTML = "<a href=\'\' disabled=\'disabled\'></a>" +\n\t\t\t\t"<select disabled=\'disabled\'><option/></select>";\n\n\t\t\t// Support: Windows 8 Native Apps\n\t\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\t\tvar input = document.createElement("input");\n\t\t\tinput.setAttribute( "type", "hidden" );\n\t\t\tel.appendChild( input ).setAttribute( "name", "D" );\n\n\t\t\t// Support: IE8\n\t\t\t// Enforce case-sensitivity of name attribute\n\t\t\tif ( el.querySelectorAll("[name=d]").length ) {\n\t\t\t\trbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" );\n\t\t\t}\n\n\t\t\t// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( el.querySelectorAll(":enabled").length !== 2 ) {\n\t\t\t\trbuggyQSA.push( ":enabled", ":disabled" );\n\t\t\t}\n\n\t\t\t// Support: IE9-11+\n\t\t\t// IE\'s :disabled selector does not pick up the children of disabled fieldsets\n\t\t\tdocElem.appendChild( el ).disabled = true;\n\t\t\tif ( el.querySelectorAll(":disabled").length !== 2 ) {\n\t\t\t\trbuggyQSA.push( ":enabled", ":disabled" );\n\t\t\t}\n\n\t\t\t// Opera 10-11 does not throw on post-comma invalid pseudos\n\t\t\tel.querySelectorAll("*,:x");\n\t\t\trbuggyQSA.push(",.*:");\n\t\t});\n\t}\n\n\tif ( (support.matchesSelector = rnative.test( (matches = docElem.matches ||\n\t\tdocElem.webkitMatchesSelector ||\n\t\tdocElem.mozMatchesSelector ||\n\t\tdocElem.oMatchesSelector ||\n\t\tdocElem.msMatchesSelector) )) ) {\n\n\t\tassert(function( el ) {\n\t\t\t// Check to see if it\'s possible to do matchesSelector\n\t\t\t// on a disconnected node (IE 9)\n\t\t\tsupport.disconnectedMatch = matches.call( el, "*" );\n\n\t\t\t// This should fail with an exception\n\t\t\t// Gecko does not error, returns false instead\n\t\t\tmatches.call( el, "[s!=\'\']:x" );\n\t\t\trbuggyMatches.push( "!=", pseudos );\n\t\t});\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") );\n\trbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") );\n\n\t/* Contains\n\t---------------------------------------------------------------------- */\n\thasCompare = rnative.test( docElem.compareDocumentPosition );\n\n\t// Element contains another\n\t// Purposefully self-exclusive\n\t// As in, an element does not contain itself\n\tcontains = hasCompare || rnative.test( docElem.contains ) ?\n\t\tfunction( a, b ) {\n\t\t\tvar adown = a.nodeType === 9 ? a.documentElement : a,\n\t\t\t\tbup = b && b.parentNode;\n\t\t\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\t\t\t\tadown.contains ?\n\t\t\t\t\tadown.contains( bup ) :\n\t\t\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t\t\t));\n\t\t} :\n\t\tfunction( a, b ) {\n\t\t\tif ( b ) {\n\t\t\t\twhile ( (b = b.parentNode) ) {\n\t\t\t\t\tif ( b === a ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = hasCompare ?\n\tfunction( a, b ) {\n\n\t\t// Flag for duplicate removal\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Sort on method existence if only one input has compareDocumentPosition\n\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\t\tif ( compare ) {\n\t\t\treturn compare;\n\t\t}\n\n\t\t// Calculate position if both inputs belong to the same document\n\t\tcompare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?\n\t\t\ta.compareDocumentPosition( b ) :\n\n\t\t\t// Otherwise we know they are disconnected\n\t\t\t1;\n\n\t\t// Disconnected nodes\n\t\tif ( compare & 1 ||\n\t\t\t(!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {\n\n\t\t\t// Choose the first element that is related to our preferred document\n\t\t\tif ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t\tif ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\t// Maintain original order\n\t\t\treturn sortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\t\t}\n\n\t\treturn compare & 4 ? -1 : 1;\n\t} :\n\tfunction( a, b ) {\n\t\t// Exit early if the nodes are identical\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\taup = a.parentNode,\n\t\t\tbup = b.parentNode,\n\t\t\tap = [ a ],\n\t\t\tbp = [ b ];\n\n\t\t// Parentless nodes are either documents or disconnected\n\t\tif ( !aup || !bup ) {\n\t\t\treturn a === document ? -1 :\n\t\t\t\tb === document ? 1 :\n\t\t\t\taup ? -1 :\n\t\t\t\tbup ? 1 :\n\t\t\t\tsortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\n\t\t// If the nodes are siblings, we can do a quick check\n\t\t} else if ( aup === bup ) {\n\t\t\treturn siblingCheck( a, b );\n\t\t}\n\n\t\t// Otherwise we need full lists of their ancestors for comparison\n\t\tcur = a;\n\t\twhile ( (cur = cur.parentNode) ) {\n\t\t\tap.unshift( cur );\n\t\t}\n\t\tcur = b;\n\t\twhile ( (cur = cur.parentNode) ) {\n\t\t\tbp.unshift( cur );\n\t\t}\n\n\t\t// Walk down the tree looking for a discrepancy\n\t\twhile ( ap[i] === bp[i] ) {\n\t\t\ti++;\n\t\t}\n\n\t\treturn i ?\n\t\t\t// Do a sibling check if the nodes have a common ancestor\n\t\t\tsiblingCheck( ap[i], bp[i] ) :\n\n\t\t\t// Otherwise nodes in our document sort first\n\t\t\tap[i] === preferredDoc ? -1 :\n\t\t\tbp[i] === preferredDoc ? 1 :\n\t\t\t0;\n\t};\n\n\treturn document;\n};\n\nSizzle.matches = function( expr, elements ) {\n\treturn Sizzle( expr, null, null, elements );\n};\n\nSizzle.matchesSelector = function( elem, expr ) {\n\t// Set document vars if needed\n\tif ( ( elem.ownerDocument || elem ) !== document ) {\n\t\tsetDocument( elem );\n\t}\n\n\t// Make sure that attribute selectors are quoted\n\texpr = expr.replace( rattributeQuotes, "=\'$1\']" );\n\n\tif ( support.matchesSelector && documentIsHTML &&\n\t\t!compilerCache[ expr + " " ] &&\n\t\t( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&\n\t\t( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {\n\n\t\ttry {\n\t\t\tvar ret = matches.call( elem, expr );\n\n\t\t\t// IE 9\'s matchesSelector returns false on disconnected nodes\n\t\t\tif ( ret || support.disconnectedMatch ||\n\t\t\t\t\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t\t// fragment in IE 9\n\t\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t} catch (e) {}\n\t}\n\n\treturn Sizzle( expr, document, null, [ elem ] ).length > 0;\n};\n\nSizzle.contains = function( context, elem ) {\n\t// Set document vars if needed\n\tif ( ( context.ownerDocument || context ) !== document ) {\n\t\tsetDocument( context );\n\t}\n\treturn contains( context, elem );\n};\n\nSizzle.attr = function( elem, name ) {\n\t// Set document vars if needed\n\tif ( ( elem.ownerDocument || elem ) !== document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\n\t\t// Don\'t get fooled by Object.prototype properties (jQuery #13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\treturn val !== undefined ?\n\t\tval :\n\t\tsupport.attributes || !documentIsHTML ?\n\t\t\telem.getAttribute( name ) :\n\t\t\t(val = elem.getAttributeNode(name)) && val.specified ?\n\t\t\t\tval.value :\n\t\t\t\tnull;\n};\n\nSizzle.escape = function( sel ) {\n\treturn (sel + "").replace( rcssescape, fcssescape );\n};\n\nSizzle.error = function( msg ) {\n\tthrow new Error( "Syntax error, unrecognized expression: " + msg );\n};\n\n/**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\nSizzle.uniqueSort = function( results ) {\n\tvar elem,\n\t\tduplicates = [],\n\t\tj = 0,\n\t\ti = 0;\n\n\t// Unless we *know* we can detect duplicates, assume their presence\n\thasDuplicate = !support.detectDuplicates;\n\tsortInput = !support.sortStable && results.slice( 0 );\n\tresults.sort( sortOrder );\n\n\tif ( hasDuplicate ) {\n\t\twhile ( (elem = results[i++]) ) {\n\t\t\tif ( elem === results[ i ] ) {\n\t\t\t\tj = duplicates.push( i );\n\t\t\t}\n\t\t}\n\t\twhile ( j-- ) {\n\t\t\tresults.splice( duplicates[ j ], 1 );\n\t\t}\n\t}\n\n\t// Clear input after sorting to release objects\n\t// See https://github.com/jquery/sizzle/pull/225\n\tsortInput = null;\n\n\treturn results;\n};\n\n/**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\ngetText = Sizzle.getText = function( elem ) {\n\tvar node,\n\t\tret = "",\n\t\ti = 0,\n\t\tnodeType = elem.nodeType;\n\n\tif ( !nodeType ) {\n\t\t// If no nodeType, this is expected to be an array\n\t\twhile ( (node = elem[i++]) ) {\n\t\t\t// Do not traverse comment nodes\n\t\t\tret += getText( node );\n\t\t}\n\t} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {\n\t\t// Use textContent for elements\n\t\t// innerText usage removed for consistency of new lines (jQuery #11153)\n\t\tif ( typeof elem.textContent === "string" ) {\n\t\t\treturn elem.textContent;\n\t\t} else {\n\t\t\t// Traverse its children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tret += getText( elem );\n\t\t\t}\n\t\t}\n\t} else if ( nodeType === 3 || nodeType === 4 ) {\n\t\treturn elem.nodeValue;\n\t}\n\t// Do not include comment or processing instruction nodes\n\n\treturn ret;\n};\n\nExpr = Sizzle.selectors = {\n\n\t// Can be adjusted by the user\n\tcacheLength: 50,\n\n\tcreatePseudo: markFunction,\n\n\tmatch: matchExpr,\n\n\tattrHandle: {},\n\n\tfind: {},\n\n\trelative: {\n\t\t">": { dir: "parentNode", first: true },\n\t\t" ": { dir: "parentNode" },\n\t\t"+": { dir: "previousSibling", first: true },\n\t\t"~": { dir: "previousSibling" }\n\t},\n\n\tpreFilter: {\n\t\t"ATTR": function( match ) {\n\t\t\tmatch[1] = match[1].replace( runescape, funescape );\n\n\t\t\t// Move the given value to match[3] whether quoted or unquoted\n\t\t\tmatch[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape );\n\n\t\t\tif ( match[2] === "~=" ) {\n\t\t\t\tmatch[3] = " " + match[3] + " ";\n\t\t\t}\n\n\t\t\treturn match.slice( 0, 4 );\n\t\t},\n\n\t\t"CHILD": function( match ) {\n\t\t\t/* matches from matchExpr["CHILD"]\n\t\t\t\t1 type (only|nth|...)\n\t\t\t\t2 what (child|of-type)\n\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\n\t\t\t\t5 sign of xn-component\n\t\t\t\t6 x of xn-component\n\t\t\t\t7 sign of y-component\n\t\t\t\t8 y of y-component\n\t\t\t*/\n\t\t\tmatch[1] = match[1].toLowerCase();\n\n\t\t\tif ( match[1].slice( 0, 3 ) === "nth" ) {\n\t\t\t\t// nth-* requires argument\n\t\t\t\tif ( !match[3] ) {\n\t\t\t\t\tSizzle.error( match[0] );\n\t\t\t\t}\n\n\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\n\t\t\t\t// remember that false/true cast respectively to 0/1\n\t\t\t\tmatch[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) );\n\t\t\t\tmatch[5] = +( ( match[7] + match[8] ) || match[3] === "odd" );\n\n\t\t\t// other types prohibit arguments\n\t\t\t} else if ( match[3] ) {\n\t\t\t\tSizzle.error( match[0] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\t"PSEUDO": function( match ) {\n\t\t\tvar excess,\n\t\t\t\tunquoted = !match[6] && match[2];\n\n\t\t\tif ( matchExpr["CHILD"].test( match[0] ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Accept quoted arguments as-is\n\t\t\tif ( match[3] ) {\n\t\t\t\tmatch[2] = match[4] || match[5] || "";\n\n\t\t\t// Strip excess characters from unquoted arguments\n\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\n\t\t\t\t// Get excess from tokenize (recursively)\n\t\t\t\t(excess = tokenize( unquoted, true )) &&\n\t\t\t\t// advance to the next closing parenthesis\n\t\t\t\t(excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) {\n\n\t\t\t\t// excess is a negative index\n\t\t\t\tmatch[0] = match[0].slice( 0, excess );\n\t\t\t\tmatch[2] = unquoted.slice( 0, excess );\n\t\t\t}\n\n\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\n\t\t\treturn match.slice( 0, 3 );\n\t\t}\n\t},\n\n\tfilter: {\n\n\t\t"TAG": function( nodeNameSelector ) {\n\t\t\tvar nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn nodeNameSelector === "*" ?\n\t\t\t\tfunction() { return true; } :\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n\t\t\t\t};\n\t\t},\n\n\t\t"CLASS": function( className ) {\n\t\t\tvar pattern = classCache[ className + " " ];\n\n\t\t\treturn pattern ||\n\t\t\t\t(pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) &&\n\t\t\t\tclassCache( className, function( elem ) {\n\t\t\t\t\treturn pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" );\n\t\t\t\t});\n\t\t},\n\n\t\t"ATTR": function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = Sizzle.attr( elem, name );\n\n\t\t\t\tif ( result == null ) {\n\t\t\t\t\treturn operator === "!=";\n\t\t\t\t}\n\t\t\t\tif ( !operator ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tresult += "";\n\n\t\t\t\treturn operator === "=" ? result === check :\n\t\t\t\t\toperator === "!=" ? result !== check :\n\t\t\t\t\toperator === "^=" ? check && result.indexOf( check ) === 0 :\n\t\t\t\t\toperator === "*=" ? check && result.indexOf( check ) > -1 :\n\t\t\t\t\toperator === "$=" ? check && result.slice( -check.length ) === check :\n\t\t\t\t\toperator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 :\n\t\t\t\t\toperator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" :\n\t\t\t\t\tfalse;\n\t\t\t};\n\t\t},\n\n\t\t"CHILD": function( type, what, argument, first, last ) {\n\t\t\tvar simple = type.slice( 0, 3 ) !== "nth",\n\t\t\t\tforward = type.slice( -4 ) !== "last",\n\t\t\t\tofType = what === "of-type";\n\n\t\t\treturn first === 1 && last === 0 ?\n\n\t\t\t\t// Shortcut for :nth-*(n)\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn !!elem.parentNode;\n\t\t\t\t} :\n\n\t\t\t\tfunction( elem, context, xml ) {\n\t\t\t\t\tvar cache, uniqueCache, outerCache, node, nodeIndex, start,\n\t\t\t\t\t\tdir = simple !== forward ? "nextSibling" : "previousSibling",\n\t\t\t\t\t\tparent = elem.parentNode,\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\n\t\t\t\t\t\tuseCache = !xml && !ofType,\n\t\t\t\t\t\tdiff = false;\n\n\t\t\t\t\tif ( parent ) {\n\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\n\t\t\t\t\t\tif ( simple ) {\n\t\t\t\t\t\t\twhile ( dir ) {\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\twhile ( (node = node[ dir ]) ) {\n\t\t\t\t\t\t\t\t\tif ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) {\n\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven\'t yet done so)\n\t\t\t\t\t\t\t\tstart = dir = type === "only" && !start && "nextSibling";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\n\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\n\t\t\t\t\t\tif ( forward && useCache ) {\n\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\n\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\tnode = parent;\n\t\t\t\t\t\t\touterCache = node[ expando ] || (node[ expando ] = {});\n\n\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t(outerCache[ node.uniqueID ] = {});\n\n\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\tdiff = nodeIndex && cache[ 2 ];\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\n\n\t\t\t\t\t\t\twhile ( (node = ++nodeIndex && node && node[ dir ] ||\n\n\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\n\t\t\t\t\t\t\t\t(diff = nodeIndex = 0) || start.pop()) ) {\n\n\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\n\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\n\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, nodeIndex, diff ];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\touterCache = node[ expando ] || (node[ expando ] = {});\n\n\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t(outerCache[ node.uniqueID ] = {});\n\n\t\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\t\tdiff = nodeIndex;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// xml :nth-child(...)\n\t\t\t\t\t\t\t// or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t\tif ( diff === false ) {\n\t\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\n\t\t\t\t\t\t\t\twhile ( (node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t\t(diff = nodeIndex = 0) || start.pop()) ) {\n\n\t\t\t\t\t\t\t\t\tif ( ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) &&\n\t\t\t\t\t\t\t\t\t\t++diff ) {\n\n\t\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\n\t\t\t\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t\touterCache = node[ expando ] || (node[ expando ] = {});\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t(outerCache[ node.uniqueID ] = {});\n\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\n\t\t\t\t\t\tdiff -= last;\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t},\n\n\t\t"PSEUDO": function( pseudo, argument ) {\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// http://www.w3.org/TR/selectors/#pseudo-classes\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n\t\t\t// Remember that setFilters inherits from pseudos\n\t\t\tvar args,\n\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\n\t\t\t\t\tSizzle.error( "unsupported pseudo: " + pseudo );\n\n\t\t\t// The user may use createPseudo to indicate that\n\t\t\t// arguments are needed to create the filter function\n\t\t\t// just as Sizzle does\n\t\t\tif ( fn[ expando ] ) {\n\t\t\t\treturn fn( argument );\n\t\t\t}\n\n\t\t\t// But maintain support for old signatures\n\t\t\tif ( fn.length > 1 ) {\n\t\t\t\targs = [ pseudo, pseudo, "", argument ];\n\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\n\t\t\t\t\tmarkFunction(function( seed, matches ) {\n\t\t\t\t\t\tvar idx,\n\t\t\t\t\t\t\tmatched = fn( seed, argument ),\n\t\t\t\t\t\t\ti = matched.length;\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tidx = indexOf( seed, matched[i] );\n\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[i] );\n\t\t\t\t\t\t}\n\t\t\t\t\t}) :\n\t\t\t\t\tfunction( elem ) {\n\t\t\t\t\t\treturn fn( elem, 0, args );\n\t\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn fn;\n\t\t}\n\t},\n\n\tpseudos: {\n\t\t// Potentially complex pseudos\n\t\t"not": markFunction(function( selector ) {\n\t\t\t// Trim the selector passed to compile\n\t\t\t// to avoid treating leading and trailing\n\t\t\t// spaces as combinators\n\t\t\tvar input = [],\n\t\t\t\tresults = [],\n\t\t\t\tmatcher = compile( selector.replace( rtrim, "$1" ) );\n\n\t\t\treturn matcher[ expando ] ?\n\t\t\t\tmarkFunction(function( seed, matches, context, xml ) {\n\t\t\t\t\tvar elem,\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\n\t\t\t\t\t\ti = seed.length;\n\n\t\t\t\t\t// Match elements unmatched by `matcher`\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( (elem = unmatched[i]) ) {\n\t\t\t\t\t\t\tseed[i] = !(matches[i] = elem);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}) :\n\t\t\t\tfunction( elem, context, xml ) {\n\t\t\t\t\tinput[0] = elem;\n\t\t\t\t\tmatcher( input, null, xml, results );\n\t\t\t\t\t// Don\'t keep the element (issue #299)\n\t\t\t\t\tinput[0] = null;\n\t\t\t\t\treturn !results.pop();\n\t\t\t\t};\n\t\t}),\n\n\t\t"has": markFunction(function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn Sizzle( selector, elem ).length > 0;\n\t\t\t};\n\t\t}),\n\n\t\t"contains": markFunction(function( text ) {\n\t\t\ttext = text.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;\n\t\t\t};\n\t\t}),\n\n\t\t// "Whether an element is represented by a :lang() selector\n\t\t// is based solely on the element\'s language value\n\t\t// being equal to the identifier C,\n\t\t// or beginning with the identifier C immediately followed by "-".\n\t\t// The matching of C against the element\'s language value is performed case-insensitively.\n\t\t// The identifier C does not have to be a valid language name."\n\t\t// http://www.w3.org/TR/selectors/#lang-pseudo\n\t\t"lang": markFunction( function( lang ) {\n\t\t\t// lang value must be a valid identifier\n\t\t\tif ( !ridentifier.test(lang || "") ) {\n\t\t\t\tSizzle.error( "unsupported lang: " + lang );\n\t\t\t}\n\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn function( elem ) {\n\t\t\t\tvar elemLang;\n\t\t\t\tdo {\n\t\t\t\t\tif ( (elemLang = documentIsHTML ?\n\t\t\t\t\t\telem.lang :\n\t\t\t\t\t\telem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) {\n\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + "-" ) === 0;\n\t\t\t\t\t}\n\t\t\t\t} while ( (elem = elem.parentNode) && elem.nodeType === 1 );\n\t\t\t\treturn false;\n\t\t\t};\n\t\t}),\n\n\t\t// Miscellaneous\n\t\t"target": function( elem ) {\n\t\t\tvar hash = window.location && window.location.hash;\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\n\t\t},\n\n\t\t"root": function( elem ) {\n\t\t\treturn elem === docElem;\n\t\t},\n\n\t\t"focus": function( elem ) {\n\t\t\treturn elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);\n\t\t},\n\n\t\t// Boolean properties\n\t\t"enabled": createDisabledPseudo( false ),\n\t\t"disabled": createDisabledPseudo( true ),\n\n\t\t"checked": function( elem ) {\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\tvar nodeName = elem.nodeName.toLowerCase();\n\t\t\treturn (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected);\n\t\t},\n\n\t\t"selected": function( elem ) {\n\t\t\t// Accessing this property makes selected-by-default\n\t\t\t// options in Safari work properly\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\telem.parentNode.selectedIndex;\n\t\t\t}\n\n\t\t\treturn elem.selected === true;\n\t\t},\n\n\t\t// Contents\n\t\t"empty": function( elem ) {\n\t\t\t// http://www.w3.org/TR/selectors/#empty-pseudo\n\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n\t\t\t// but not by others (comment: 8; processing instruction: 7; etc.)\n\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tif ( elem.nodeType < 6 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\t"parent": function( elem ) {\n\t\t\treturn !Expr.pseudos["empty"]( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\t"header": function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\t"input": function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\t"button": function( elem ) {\n\t\t\tvar name = elem.nodeName.toLowerCase();\n\t\t\treturn name === "input" && elem.type === "button" || name === "button";\n\t\t},\n\n\t\t"text": function( elem ) {\n\t\t\tvar attr;\n\t\t\treturn elem.nodeName.toLowerCase() === "input" &&\n\t\t\t\telem.type === "text" &&\n\n\t\t\t\t// Support: IE<8\n\t\t\t\t// New HTML5 attribute values (e.g., "search") appear with elem.type === "text"\n\t\t\t\t( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" );\n\t\t},\n\n\t\t// Position-in-collection\n\t\t"first": createPositionalPseudo(function() {\n\t\t\treturn [ 0 ];\n\t\t}),\n\n\t\t"last": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t}),\n\n\t\t"eq": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t}),\n\n\t\t"even": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t"odd": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\tvar i = 1;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t"lt": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; --i >= 0; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t"gt": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; ++i < length; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t})\n\t}\n};\n\nExpr.pseudos["nth"] = Expr.pseudos["eq"];\n\n// Add button/input type pseudos\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\n\tExpr.pseudos[ i ] = createInputPseudo( i );\n}\nfor ( i in { submit: true, reset: true } ) {\n\tExpr.pseudos[ i ] = createButtonPseudo( i );\n}\n\n// Easy API for creating new setFilters\nfunction setFilters() {}\nsetFilters.prototype = Expr.filters = Expr.pseudos;\nExpr.setFilters = new setFilters();\n\ntokenize = Sizzle.tokenize = function( selector, parseOnly ) {\n\tvar matched, match, tokens, type,\n\t\tsoFar, groups, preFilters,\n\t\tcached = tokenCache[ selector + " " ];\n\n\tif ( cached ) {\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\n\t}\n\n\tsoFar = selector;\n\tgroups = [];\n\tpreFilters = Expr.preFilter;\n\n\twhile ( soFar ) {\n\n\t\t// Comma and first run\n\t\tif ( !matched || (match = rcomma.exec( soFar )) ) {\n\t\t\tif ( match ) {\n\t\t\t\t// Don\'t consume trailing commas as valid\n\t\t\t\tsoFar = soFar.slice( match[0].length ) || soFar;\n\t\t\t}\n\t\t\tgroups.push( (tokens = []) );\n\t\t}\n\n\t\tmatched = false;\n\n\t\t// Combinators\n\t\tif ( (match = rcombinators.exec( soFar )) ) {\n\t\t\tmatched = match.shift();\n\t\t\ttokens.push({\n\t\t\t\tvalue: matched,\n\t\t\t\t// Cast descendant combinators to space\n\t\t\t\ttype: match[0].replace( rtrim, " " )\n\t\t\t});\n\t\t\tsoFar = soFar.slice( matched.length );\n\t\t}\n\n\t\t// Filters\n\t\tfor ( type in Expr.filter ) {\n\t\t\tif ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||\n\t\t\t\t(match = preFilters[ type ]( match ))) ) {\n\t\t\t\tmatched = match.shift();\n\t\t\t\ttokens.push({\n\t\t\t\t\tvalue: matched,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tmatches: match\n\t\t\t\t});\n\t\t\t\tsoFar = soFar.slice( matched.length );\n\t\t\t}\n\t\t}\n\n\t\tif ( !matched ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Return the length of the invalid excess\n\t// if we\'re just parsing\n\t// Otherwise, throw an error or return tokens\n\treturn parseOnly ?\n\t\tsoFar.length :\n\t\tsoFar ?\n\t\t\tSizzle.error( selector ) :\n\t\t\t// Cache the tokens\n\t\t\ttokenCache( selector, groups ).slice( 0 );\n};\n\nfunction toSelector( tokens ) {\n\tvar i = 0,\n\t\tlen = tokens.length,\n\t\tselector = "";\n\tfor ( ; i < len; i++ ) {\n\t\tselector += tokens[i].value;\n\t}\n\treturn selector;\n}\n\nfunction addCombinator( matcher, combinator, base ) {\n\tvar dir = combinator.dir,\n\t\tskip = combinator.next,\n\t\tkey = skip || dir,\n\t\tcheckNonElements = base && key === "parentNode",\n\t\tdoneName = done++;\n\n\treturn combinator.first ?\n\t\t// Check against closest ancestor/preceding element\n\t\tfunction( elem, context, xml ) {\n\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\treturn matcher( elem, context, xml );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t} :\n\n\t\t// Check against all ancestor/preceding elements\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar oldCache, uniqueCache, outerCache,\n\t\t\t\tnewCache = [ dirruns, doneName ];\n\n\t\t\t// We can\'t set arbitrary data on XML nodes, so they don\'t benefit from combinator caching\n\t\t\tif ( xml ) {\n\t\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\touterCache = elem[ expando ] || (elem[ expando ] = {});\n\n\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\tuniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {});\n\n\t\t\t\t\t\tif ( skip && skip === elem.nodeName.toLowerCase() ) {\n\t\t\t\t\t\t\telem = elem[ dir ] || elem;\n\t\t\t\t\t\t} else if ( (oldCache = uniqueCache[ key ]) &&\n\t\t\t\t\t\t\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\n\n\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\n\t\t\t\t\t\t\treturn (newCache[ 2 ] = oldCache[ 2 ]);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\n\t\t\t\t\t\t\tuniqueCache[ key ] = newCache;\n\n\t\t\t\t\t\t\t// A match means we\'re done; a fail means we have to keep checking\n\t\t\t\t\t\t\tif ( (newCache[ 2 ] = matcher( elem, context, xml )) ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n}\n\nfunction elementMatcher( matchers ) {\n\treturn matchers.length > 1 ?\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar i = matchers.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( !matchers[i]( elem, context, xml ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} :\n\t\tmatchers[0];\n}\n\nfunction multipleContexts( selector, contexts, results ) {\n\tvar i = 0,\n\t\tlen = contexts.length;\n\tfor ( ; i < len; i++ ) {\n\t\tSizzle( selector, contexts[i], results );\n\t}\n\treturn results;\n}\n\nfunction condense( unmatched, map, filter, context, xml ) {\n\tvar elem,\n\t\tnewUnmatched = [],\n\t\ti = 0,\n\t\tlen = unmatched.length,\n\t\tmapped = map != null;\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( (elem = unmatched[i]) ) {\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\n\t\t\t\tnewUnmatched.push( elem );\n\t\t\t\tif ( mapped ) {\n\t\t\t\t\tmap.push( i );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newUnmatched;\n}\n\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\n\tif ( postFilter && !postFilter[ expando ] ) {\n\t\tpostFilter = setMatcher( postFilter );\n\t}\n\tif ( postFinder && !postFinder[ expando ] ) {\n\t\tpostFinder = setMatcher( postFinder, postSelector );\n\t}\n\treturn markFunction(function( seed, results, context, xml ) {\n\t\tvar temp, i, elem,\n\t\t\tpreMap = [],\n\t\t\tpostMap = [],\n\t\t\tpreexisting = results.length,\n\n\t\t\t// Get initial elements from seed or context\n\t\t\telems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ),\n\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\n\t\t\t\telems,\n\n\t\t\tmatcherOut = matcher ?\n\t\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n\t\t\t\tpostFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t\t[] :\n\n\t\t\t\t\t// ...otherwise use results directly\n\t\t\t\t\tresults :\n\t\t\t\tmatcherIn;\n\n\t\t// Find primary matches\n\t\tif ( matcher ) {\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t}\n\n\t\t// Apply postFilter\n\t\tif ( postFilter ) {\n\t\t\ttemp = condense( matcherOut, postMap );\n\t\t\tpostFilter( temp, [], context, xml );\n\n\t\t\t// Un-match failing elements by moving them back to matcherIn\n\t\t\ti = temp.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( (elem = temp[i]) ) {\n\t\t\t\t\tmatcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( seed ) {\n\t\t\tif ( postFinder || preFilter ) {\n\t\t\t\tif ( postFinder ) {\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\n\t\t\t\t\ttemp = [];\n\t\t\t\t\ti = matcherOut.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( (elem = matcherOut[i]) ) {\n\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\n\t\t\t\t\t\t\ttemp.push( (matcherIn[i] = elem) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpostFinder( null, (matcherOut = []), temp, xml );\n\t\t\t\t}\n\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\n\t\t\t\ti = matcherOut.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( (elem = matcherOut[i]) &&\n\t\t\t\t\t\t(temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) {\n\n\t\t\t\t\t\tseed[temp] = !(results[temp] = elem);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Add elements to results, through postFinder if defined\n\t\t} else {\n\t\t\tmatcherOut = condense(\n\t\t\t\tmatcherOut === results ?\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\n\t\t\t\t\tmatcherOut\n\t\t\t);\n\t\t\tif ( postFinder ) {\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\n\t\t\t} else {\n\t\t\t\tpush.apply( results, matcherOut );\n\t\t\t}\n\t\t}\n\t});\n}\n\nfunction matcherFromTokens( tokens ) {\n\tvar checkContext, matcher, j,\n\t\tlen = tokens.length,\n\t\tleadingRelative = Expr.relative[ tokens[0].type ],\n\t\timplicitRelative = leadingRelative || Expr.relative[" "],\n\t\ti = leadingRelative ? 1 : 0,\n\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\n\t\tmatchContext = addCombinator( function( elem ) {\n\t\t\treturn elem === checkContext;\n\t\t}, implicitRelative, true ),\n\t\tmatchAnyContext = addCombinator( function( elem ) {\n\t\t\treturn indexOf( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\n\t\t\tvar ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (\n\t\t\t\t(checkContext = context).nodeType ?\n\t\t\t\t\tmatchContext( elem, context, xml ) :\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\n\t\t\t// Avoid hanging onto element (issue #299)\n\t\t\tcheckContext = null;\n\t\t\treturn ret;\n\t\t} ];\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( (matcher = Expr.relative[ tokens[i].type ]) ) {\n\t\t\tmatchers = [ addCombinator(elementMatcher( matchers ), matcher) ];\n\t\t} else {\n\t\t\tmatcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );\n\n\t\t\t// Return special upon seeing a positional matcher\n\t\t\tif ( matcher[ expando ] ) {\n\t\t\t\t// Find the next relative operator (if any) for proper handling\n\t\t\t\tj = ++i;\n\t\t\t\tfor ( ; j < len; j++ ) {\n\t\t\t\t\tif ( Expr.relative[ tokens[j].type ] ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn setMatcher(\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\n\t\t\t\t\ti > 1 && toSelector(\n\t\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\t\ttokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" })\n\t\t\t\t\t).replace( rtrim, "$1" ),\n\t\t\t\t\tmatcher,\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\n\t\t\t\t\tj < len && matcherFromTokens( (tokens = tokens.slice( j )) ),\n\t\t\t\t\tj < len && toSelector( tokens )\n\t\t\t\t);\n\t\t\t}\n\t\t\tmatchers.push( matcher );\n\t\t}\n\t}\n\n\treturn elementMatcher( matchers );\n}\n\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\n\tvar bySet = setMatchers.length > 0,\n\t\tbyElement = elementMatchers.length > 0,\n\t\tsuperMatcher = function( seed, context, xml, results, outermost ) {\n\t\t\tvar elem, j, matcher,\n\t\t\t\tmatchedCount = 0,\n\t\t\t\ti = "0",\n\t\t\t\tunmatched = seed && [],\n\t\t\t\tsetMatched = [],\n\t\t\t\tcontextBackup = outermostContext,\n\t\t\t\t// We must always have either seed elements or outermost context\n\t\t\t\telems = seed || byElement && Expr.find["TAG"]( "*", outermost ),\n\t\t\t\t// Use integer dirruns iff this is the outermost matcher\n\t\t\t\tdirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1),\n\t\t\t\tlen = elems.length;\n\n\t\t\tif ( outermost ) {\n\t\t\t\toutermostContext = context === document || context || outermost;\n\t\t\t}\n\n\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\t// Support: IE<9, Safari\n\t\t\t// Tolerate NodeList properties (IE: "length"; Safari: <number>) matching elements by id\n\t\t\tfor ( ; i !== len && (elem = elems[i]) != null; i++ ) {\n\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\tif ( !context && elem.ownerDocument !== document ) {\n\t\t\t\t\t\tsetDocument( elem );\n\t\t\t\t\t\txml = !documentIsHTML;\n\t\t\t\t\t}\n\t\t\t\t\twhile ( (matcher = elementMatchers[j++]) ) {\n\t\t\t\t\t\tif ( matcher( elem, context || document, xml) ) {\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( outermost ) {\n\t\t\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Track unmatched elements for set filters\n\t\t\t\tif ( bySet ) {\n\t\t\t\t\t// They will have gone through all possible matchers\n\t\t\t\t\tif ( (elem = !matcher && elem) ) {\n\t\t\t\t\t\tmatchedCount--;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Lengthen the array for every element, matched or not\n\t\t\t\t\tif ( seed ) {\n\t\t\t\t\t\tunmatched.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// `i` is now the count of elements visited above, and adding it to `matchedCount`\n\t\t\t// makes the latter nonnegative.\n\t\t\tmatchedCount += i;\n\n\t\t\t// Apply set filters to unmatched elements\n\t\t\t// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n\t\t\t// equals `i`), unless we didn\'t visit _any_ elements in the above loop because we have\n\t\t\t// no element matchers and no seed.\n\t\t\t// Incrementing an initially-string "0" `i` allows `i` to remain a string only in that\n\t\t\t// case, which will result in a "00" `matchedCount` that differs from `i` but is also\n\t\t\t// numerically zero.\n\t\t\tif ( bySet && i !== matchedCount ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( (matcher = setMatchers[j++]) ) {\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\n\t\t\t\t}\n\n\t\t\t\tif ( seed ) {\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\n\t\t\t\t\tif ( matchedCount > 0 ) {\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tif ( !(unmatched[i] || setMatched[i]) ) {\n\t\t\t\t\t\t\t\tsetMatched[i] = pop.call( results );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Discard index placeholder values to get only actual matches\n\t\t\t\t\tsetMatched = condense( setMatched );\n\t\t\t\t}\n\n\t\t\t\t// Add matches to results\n\t\t\t\tpush.apply( results, setMatched );\n\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\n\n\t\t\t\t\tSizzle.uniqueSort( results );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override manipulation of globals by nested matchers\n\t\t\tif ( outermost ) {\n\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\toutermostContext = contextBackup;\n\t\t\t}\n\n\t\t\treturn unmatched;\n\t\t};\n\n\treturn bySet ?\n\t\tmarkFunction( superMatcher ) :\n\t\tsuperMatcher;\n}\n\ncompile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {\n\tvar i,\n\t\tsetMatchers = [],\n\t\telementMatchers = [],\n\t\tcached = compilerCache[ selector + " " ];\n\n\tif ( !cached ) {\n\t\t// Generate a function of recursive functions that can be used to check each element\n\t\tif ( !match ) {\n\t\t\tmatch = tokenize( selector );\n\t\t}\n\t\ti = match.length;\n\t\twhile ( i-- ) {\n\t\t\tcached = matcherFromTokens( match[i] );\n\t\t\tif ( cached[ expando ] ) {\n\t\t\t\tsetMatchers.push( cached );\n\t\t\t} else {\n\t\t\t\telementMatchers.push( cached );\n\t\t\t}\n\t\t}\n\n\t\t// Cache the compiled function\n\t\tcached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );\n\n\t\t// Save selector and tokenization\n\t\tcached.selector = selector;\n\t}\n\treturn cached;\n};\n\n/**\n * A low-level selection function that works with Sizzle\'s compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with Sizzle.compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\nselect = Sizzle.select = function( selector, context, results, seed ) {\n\tvar i, tokens, token, type, find,\n\t\tcompiled = typeof selector === "function" && selector,\n\t\tmatch = !seed && tokenize( (selector = compiled.selector || selector) );\n\n\tresults = results || [];\n\n\t// Try to minimize operations if there is only one selector in the list and no seed\n\t// (the latter of which guarantees us context)\n\tif ( match.length === 1 ) {\n\n\t\t// Reduce context if the leading compound selector is an ID\n\t\ttokens = match[0] = match[0].slice( 0 );\n\t\tif ( tokens.length > 2 && (token = tokens[0]).type === "ID" &&\n\t\t\t\tcontext.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[1].type ] ) {\n\n\t\t\tcontext = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];\n\t\t\tif ( !context ) {\n\t\t\t\treturn results;\n\n\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\n\t\t\t} else if ( compiled ) {\n\t\t\t\tcontext = context.parentNode;\n\t\t\t}\n\n\t\t\tselector = selector.slice( tokens.shift().value.length );\n\t\t}\n\n\t\t// Fetch a seed set for right-to-left matching\n\t\ti = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length;\n\t\twhile ( i-- ) {\n\t\t\ttoken = tokens[i];\n\n\t\t\t// Abort if we hit a combinator\n\t\t\tif ( Expr.relative[ (type = token.type) ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( (find = Expr.find[ type ]) ) {\n\t\t\t\t// Search, expanding context for leading sibling combinators\n\t\t\t\tif ( (seed = find(\n\t\t\t\t\ttoken.matches[0].replace( runescape, funescape ),\n\t\t\t\t\trsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context\n\t\t\t\t)) ) {\n\n\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\t\t\t\t\ttokens.splice( i, 1 );\n\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\t\t\t\t\tif ( !selector ) {\n\t\t\t\t\t\tpush.apply( results, seed );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compile and execute a filtering function if one is not provided\n\t// Provide `match` to avoid retokenization if we modified the selector above\n\t( compiled || compile( selector, match ) )(\n\t\tseed,\n\t\tcontext,\n\t\t!documentIsHTML,\n\t\tresults,\n\t\t!context || rsibling.test( selector ) && testContext( context.parentNode ) || context\n\t);\n\treturn results;\n};\n\n// One-time assignments\n\n// Sort stability\nsupport.sortStable = expando.split("").sort( sortOrder ).join("") === expando;\n\n// Support: Chrome 14-35+\n// Always assume duplicates if they aren\'t passed to the comparison function\nsupport.detectDuplicates = !!hasDuplicate;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n// Detached nodes confoundingly follow *each other*\nsupport.sortDetached = assert(function( el ) {\n\t// Should return 1, but returns 4 (following)\n\treturn el.compareDocumentPosition( document.createElement("fieldset") ) & 1;\n});\n\n// Support: IE<8\n// Prevent attribute/property "interpolation"\n// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\nif ( !assert(function( el ) {\n\tel.innerHTML = "<a href=\'#\'></a>";\n\treturn el.firstChild.getAttribute("href") === "#" ;\n}) ) {\n\taddHandle( "type|href|height|width", function( elem, name, isXML ) {\n\t\tif ( !isXML ) {\n\t\t\treturn elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 );\n\t\t}\n\t});\n}\n\n// Support: IE<9\n// Use defaultValue in place of getAttribute("value")\nif ( !support.attributes || !assert(function( el ) {\n\tel.innerHTML = "<input/>";\n\tel.firstChild.setAttribute( "value", "" );\n\treturn el.firstChild.getAttribute( "value" ) === "";\n}) ) {\n\taddHandle( "value", function( elem, name, isXML ) {\n\t\tif ( !isXML && elem.nodeName.toLowerCase() === "input" ) {\n\t\t\treturn elem.defaultValue;\n\t\t}\n\t});\n}\n\n// Support: IE<9\n// Use getAttributeNode to fetch booleans when getAttribute lies\nif ( !assert(function( el ) {\n\treturn el.getAttribute("disabled") == null;\n}) ) {\n\taddHandle( booleans, function( elem, name, isXML ) {\n\t\tvar val;\n\t\tif ( !isXML ) {\n\t\t\treturn elem[ name ] === true ? name.toLowerCase() :\n\t\t\t\t\t(val = elem.getAttributeNode( name )) && val.specified ?\n\t\t\t\t\tval.value :\n\t\t\t\tnull;\n\t\t}\n\t});\n}\n\nreturn Sizzle;\n\n})( window );\n\n\n\njQuery.find = Sizzle;\njQuery.expr = Sizzle.selectors;\n\n// Deprecated\njQuery.expr[ ":" ] = jQuery.expr.pseudos;\njQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;\njQuery.text = Sizzle.getText;\njQuery.isXMLDoc = Sizzle.isXML;\njQuery.contains = Sizzle.contains;\njQuery.escapeSelector = Sizzle.escape;\n\n\n\n\nvar dir = function( elem, dir, until ) {\n\tvar matched = [],\n\t\ttruncate = until !== undefined;\n\n\twhile ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {\n\t\tif ( elem.nodeType === 1 ) {\n\t\t\tif ( truncate && jQuery( elem ).is( until ) ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tmatched.push( elem );\n\t\t}\n\t}\n\treturn matched;\n};\n\n\nvar siblings = function( n, elem ) {\n\tvar matched = [];\n\n\tfor ( ; n; n = n.nextSibling ) {\n\t\tif ( n.nodeType === 1 && n !== elem ) {\n\t\t\tmatched.push( n );\n\t\t}\n\t}\n\n\treturn matched;\n};\n\n\nvar rneedsContext = jQuery.expr.match.needsContext;\n\nvar rsingleTag = ( /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i );\n\n\n\nvar risSimple = /^.[^:#\\[\\.,]*$/;\n\n// Implement the identical functionality for filter and not\nfunction winnow( elements, qualifier, not ) {\n\tif ( jQuery.isFunction( qualifier ) ) {\n\t\treturn jQuery.grep( elements, function( elem, i ) {\n\t\t\treturn !!qualifier.call( elem, i, elem ) !== not;\n\t\t} );\n\t}\n\n\t// Single element\n\tif ( qualifier.nodeType ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( elem === qualifier ) !== not;\n\t\t} );\n\t}\n\n\t// Arraylike of elements (jQuery, arguments, Array)\n\tif ( typeof qualifier !== "string" ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( indexOf.call( qualifier, elem ) > -1 ) !== not;\n\t\t} );\n\t}\n\n\t// Simple selector that can be filtered directly, removing non-Elements\n\tif ( risSimple.test( qualifier ) ) {\n\t\treturn jQuery.filter( qualifier, elements, not );\n\t}\n\n\t// Complex selector, compare the two sets, removing non-Elements\n\tqualifier = jQuery.filter( qualifier, elements );\n\treturn jQuery.grep( elements, function( elem ) {\n\t\treturn ( indexOf.call( qualifier, elem ) > -1 ) !== not && elem.nodeType === 1;\n\t} );\n}\n\njQuery.filter = function( expr, elems, not ) {\n\tvar elem = elems[ 0 ];\n\n\tif ( not ) {\n\t\texpr = ":not(" + expr + ")";\n\t}\n\n\tif ( elems.length === 1 && elem.nodeType === 1 ) {\n\t\treturn jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];\n\t}\n\n\treturn jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\n\t\treturn elem.nodeType === 1;\n\t} ) );\n};\n\njQuery.fn.extend( {\n\tfind: function( selector ) {\n\t\tvar i, ret,\n\t\t\tlen = this.length,\n\t\t\tself = this;\n\n\t\tif ( typeof selector !== "string" ) {\n\t\t\treturn this.pushStack( jQuery( selector ).filter( function() {\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} ) );\n\t\t}\n\n\t\tret = this.pushStack( [] );\n\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tjQuery.find( selector, self[ i ], ret );\n\t\t}\n\n\t\treturn len > 1 ? jQuery.uniqueSort( ret ) : ret;\n\t},\n\tfilter: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], false ) );\n\t},\n\tnot: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], true ) );\n\t},\n\tis: function( selector ) {\n\t\treturn !!winnow(\n\t\t\tthis,\n\n\t\t\t// If this is a positional/relative selector, check membership in the returned set\n\t\t\t// so $("p:first").is("p:last") won\'t return true for a doc with two "p".\n\t\t\ttypeof selector === "string" && rneedsContext.test( selector ) ?\n\t\t\t\tjQuery( selector ) :\n\t\t\t\tselector || [],\n\t\t\tfalse\n\t\t).length;\n\t}\n} );\n\n\n// Initialize a jQuery object\n\n\n// A central reference to the root jQuery(document)\nvar rootjQuery,\n\n\t// A simple way to check for HTML strings\n\t// Prioritize #id over <tag> to avoid XSS via location.hash (#9521)\n\t// Strict HTML recognition (#11290: must start with <)\n\t// Shortcut simple #id case for speed\n\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n\n\tinit = jQuery.fn.init = function( selector, context, root ) {\n\t\tvar match, elem;\n\n\t\t// HANDLE: $(""), $(null), $(undefined), $(false)\n\t\tif ( !selector ) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Method init() accepts an alternate rootjQuery\n\t\t// so migrate can support jQuery.sub (gh-2101)\n\t\troot = root || rootjQuery;\n\n\t\t// Handle HTML strings\n\t\tif ( typeof selector === "string" ) {\n\t\t\tif ( selector[ 0 ] === "<" &&\n\t\t\t\tselector[ selector.length - 1 ] === ">" &&\n\t\t\t\tselector.length >= 3 ) {\n\n\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\n\t\t\t\tmatch = [ null, selector, null ];\n\n\t\t\t} else {\n\t\t\t\tmatch = rquickExpr.exec( selector );\n\t\t\t}\n\n\t\t\t// Match html or make sure no context is specified for #id\n\t\t\tif ( match && ( match[ 1 ] || !context ) ) {\n\n\t\t\t\t// HANDLE: $(html) -> $(array)\n\t\t\t\tif ( match[ 1 ] ) {\n\t\t\t\t\tcontext = context instanceof jQuery ? context[ 0 ] : context;\n\n\t\t\t\t\t// Option to run scripts is true for back-compat\n\t\t\t\t\t// Intentionally let the error be thrown if parseHTML is not present\n\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\n\t\t\t\t\t\tmatch[ 1 ],\n\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) );\n\n\t\t\t\t\t// HANDLE: $(html, props)\n\t\t\t\t\tif ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {\n\t\t\t\t\t\tfor ( match in context ) {\n\n\t\t\t\t\t\t\t// Properties of context are called as methods if possible\n\t\t\t\t\t\t\tif ( jQuery.isFunction( this[ match ] ) ) {\n\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\n\n\t\t\t\t\t\t\t// ...and otherwise set as attributes\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this;\n\n\t\t\t\t// HANDLE: $(#id)\n\t\t\t\t} else {\n\t\t\t\t\telem = document.getElementById( match[ 2 ] );\n\n\t\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t\t// Inject the element directly into the jQuery object\n\t\t\t\t\t\tthis[ 0 ] = elem;\n\t\t\t\t\t\tthis.length = 1;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t// HANDLE: $(expr, $(...))\n\t\t\t} else if ( !context || context.jquery ) {\n\t\t\t\treturn ( context || root ).find( selector );\n\n\t\t\t// HANDLE: $(expr, context)\n\t\t\t// (which is just equivalent to: $(context).find(expr)\n\t\t\t} else {\n\t\t\t\treturn this.constructor( context ).find( selector );\n\t\t\t}\n\n\t\t// HANDLE: $(DOMElement)\n\t\t} else if ( selector.nodeType ) {\n\t\t\tthis[ 0 ] = selector;\n\t\t\tthis.length = 1;\n\t\t\treturn this;\n\n\t\t// HANDLE: $(function)\n\t\t// Shortcut for document ready\n\t\t} else if ( jQuery.isFunction( selector ) ) {\n\t\t\treturn root.ready !== undefined ?\n\t\t\t\troot.ready( selector ) :\n\n\t\t\t\t// Execute immediately if ready is not present\n\t\t\t\tselector( jQuery );\n\t\t}\n\n\t\treturn jQuery.makeArray( selector, this );\n\t};\n\n// Give the init function the jQuery prototype for later instantiation\ninit.prototype = jQuery.fn;\n\n// Initialize central reference\nrootjQuery = jQuery( document );\n\n\nvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\n\n\t// Methods guaranteed to produce a unique set when starting from a unique set\n\tguaranteedUnique = {\n\t\tchildren: true,\n\t\tcontents: true,\n\t\tnext: true,\n\t\tprev: true\n\t};\n\njQuery.fn.extend( {\n\thas: function( target ) {\n\t\tvar targets = jQuery( target, this ),\n\t\t\tl = targets.length;\n\n\t\treturn this.filter( function() {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tif ( jQuery.contains( this, targets[ i ] ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\tclosest: function( selectors, context ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tmatched = [],\n\t\t\ttargets = typeof selectors !== "string" && jQuery( selectors );\n\n\t\t// Positional selectors never match, since there\'s no _selection_ context\n\t\tif ( !rneedsContext.test( selectors ) ) {\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tfor ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {\n\n\t\t\t\t\t// Always skip document fragments\n\t\t\t\t\tif ( cur.nodeType < 11 && ( targets ?\n\t\t\t\t\t\ttargets.index( cur ) > -1 :\n\n\t\t\t\t\t\t// Don\'t pass non-elements to Sizzle\n\t\t\t\t\t\tcur.nodeType === 1 &&\n\t\t\t\t\t\t\tjQuery.find.matchesSelector( cur, selectors ) ) ) {\n\n\t\t\t\t\t\tmatched.push( cur );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );\n\t},\n\n\t// Determine the position of an element within the set\n\tindex: function( elem ) {\n\n\t\t// No argument, return index in parent\n\t\tif ( !elem ) {\n\t\t\treturn ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;\n\t\t}\n\n\t\t// Index in selector\n\t\tif ( typeof elem === "string" ) {\n\t\t\treturn indexOf.call( jQuery( elem ), this[ 0 ] );\n\t\t}\n\n\t\t// Locate the position of the desired element\n\t\treturn indexOf.call( this,\n\n\t\t\t// If it receives a jQuery object, the first element is used\n\t\t\telem.jquery ? elem[ 0 ] : elem\n\t\t);\n\t},\n\n\tadd: function( selector, context ) {\n\t\treturn this.pushStack(\n\t\t\tjQuery.uniqueSort(\n\t\t\t\tjQuery.merge( this.get(), jQuery( selector, context ) )\n\t\t\t)\n\t\t);\n\t},\n\n\taddBack: function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter( selector )\n\t\t);\n\t}\n} );\n\nfunction sibling( cur, dir ) {\n\twhile ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}\n\treturn cur;\n}\n\njQuery.each( {\n\tparent: function( elem ) {\n\t\tvar parent = elem.parentNode;\n\t\treturn parent && parent.nodeType !== 11 ? parent : null;\n\t},\n\tparents: function( elem ) {\n\t\treturn dir( elem, "parentNode" );\n\t},\n\tparentsUntil: function( elem, i, until ) {\n\t\treturn dir( elem, "parentNode", until );\n\t},\n\tnext: function( elem ) {\n\t\treturn sibling( elem, "nextSibling" );\n\t},\n\tprev: function( elem ) {\n\t\treturn sibling( elem, "previousSibling" );\n\t},\n\tnextAll: function( elem ) {\n\t\treturn dir( elem, "nextSibling" );\n\t},\n\tprevAll: function( elem ) {\n\t\treturn dir( elem, "previousSibling" );\n\t},\n\tnextUntil: function( elem, i, until ) {\n\t\treturn dir( elem, "nextSibling", until );\n\t},\n\tprevUntil: function( elem, i, until ) {\n\t\treturn dir( elem, "previousSibling", until );\n\t},\n\tsiblings: function( elem ) {\n\t\treturn siblings( ( elem.parentNode || {} ).firstChild, elem );\n\t},\n\tchildren: function( elem ) {\n\t\treturn siblings( elem.firstChild );\n\t},\n\tcontents: function( elem ) {\n\t\treturn elem.contentDocument || jQuery.merge( [], elem.childNodes );\n\t}\n}, function( name, fn ) {\n\tjQuery.fn[ name ] = function( until, selector ) {\n\t\tvar matched = jQuery.map( this, fn, until );\n\n\t\tif ( name.slice( -5 ) !== "Until" ) {\n\t\t\tselector = until;\n\t\t}\n\n\t\tif ( selector && typeof selector === "string" ) {\n\t\t\tmatched = jQuery.filter( selector, matched );\n\t\t}\n\n\t\tif ( this.length > 1 ) {\n\n\t\t\t// Remove duplicates\n\t\t\tif ( !guaranteedUnique[ name ] ) {\n\t\t\t\tjQuery.uniqueSort( matched );\n\t\t\t}\n\n\t\t\t// Reverse order for parents* and prev-derivatives\n\t\t\tif ( rparentsprev.test( name ) ) {\n\t\t\t\tmatched.reverse();\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched );\n\t};\n} );\nvar rnothtmlwhite = ( /[^\\x20\\t\\r\\n\\f]+/g );\n\n\n\n// Convert String-formatted options into Object-formatted ones\nfunction createOptions( options ) {\n\tvar object = {};\n\tjQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {\n\t\tobject[ flag ] = true;\n\t} );\n\treturn object;\n}\n\n/*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * "fired" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest "memorized"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\njQuery.Callbacks = function( options ) {\n\n\t// Convert options from String-formatted to Object-formatted if needed\n\t// (we check in cache first)\n\toptions = typeof options === "string" ?\n\t\tcreateOptions( options ) :\n\t\tjQuery.extend( {}, options );\n\n\tvar // Flag to know if list is currently firing\n\t\tfiring,\n\n\t\t// Last fire value for non-forgettable lists\n\t\tmemory,\n\n\t\t// Flag to know if list was already fired\n\t\tfired,\n\n\t\t// Flag to prevent firing\n\t\tlocked,\n\n\t\t// Actual callback list\n\t\tlist = [],\n\n\t\t// Queue of execution data for repeatable lists\n\t\tqueue = [],\n\n\t\t// Index of currently firing callback (modified by add/remove as needed)\n\t\tfiringIndex = -1,\n\n\t\t// Fire callbacks\n\t\tfire = function() {\n\n\t\t\t// Enforce single-firing\n\t\t\tlocked = options.once;\n\n\t\t\t// Execute callbacks for all pending executions,\n\t\t\t// respecting firingIndex overrides and runtime changes\n\t\t\tfired = firing = true;\n\t\t\tfor ( ; queue.length; firingIndex = -1 ) {\n\t\t\t\tmemory = queue.shift();\n\t\t\t\twhile ( ++firingIndex < list.length ) {\n\n\t\t\t\t\t// Run callback and check for early termination\n\t\t\t\t\tif ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&\n\t\t\t\t\t\toptions.stopOnFalse ) {\n\n\t\t\t\t\t\t// Jump to end and forget the data so .add doesn\'t re-fire\n\t\t\t\t\t\tfiringIndex = list.length;\n\t\t\t\t\t\tmemory = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Forget the data if we\'re done with it\n\t\t\tif ( !options.memory ) {\n\t\t\t\tmemory = false;\n\t\t\t}\n\n\t\t\tfiring = false;\n\n\t\t\t// Clean up if we\'re done firing for good\n\t\t\tif ( locked ) {\n\n\t\t\t\t// Keep an empty list if we have data for future add calls\n\t\t\t\tif ( memory ) {\n\t\t\t\t\tlist = [];\n\n\t\t\t\t// Otherwise, this object is spent\n\t\t\t\t} else {\n\t\t\t\t\tlist = "";\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t// Actual Callbacks object\n\t\tself = {\n\n\t\t\t// Add a callback or a collection of callbacks to the list\n\t\t\tadd: function() {\n\t\t\t\tif ( list ) {\n\n\t\t\t\t\t// If we have memory from a past run, we should fire after adding\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfiringIndex = list.length - 1;\n\t\t\t\t\t\tqueue.push( memory );\n\t\t\t\t\t}\n\n\t\t\t\t\t( function add( args ) {\n\t\t\t\t\t\tjQuery.each( args, function( _, arg ) {\n\t\t\t\t\t\t\tif ( jQuery.isFunction( arg ) ) {\n\t\t\t\t\t\t\t\tif ( !options.unique || !self.has( arg ) ) {\n\t\t\t\t\t\t\t\t\tlist.push( arg );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if ( arg && arg.length && jQuery.type( arg ) !== "string" ) {\n\n\t\t\t\t\t\t\t\t// Inspect recursively\n\t\t\t\t\t\t\t\tadd( arg );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t} )( arguments );\n\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Remove a callback from the list\n\t\t\tremove: function() {\n\t\t\t\tjQuery.each( arguments, function( _, arg ) {\n\t\t\t\t\tvar index;\n\t\t\t\t\twhile ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\n\t\t\t\t\t\tlist.splice( index, 1 );\n\n\t\t\t\t\t\t// Handle firing indexes\n\t\t\t\t\t\tif ( index <= firingIndex ) {\n\t\t\t\t\t\t\tfiringIndex--;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Check if a given callback is in the list.\n\t\t\t// If no argument is given, return whether or not list has callbacks attached.\n\t\t\thas: function( fn ) {\n\t\t\t\treturn fn ?\n\t\t\t\t\tjQuery.inArray( fn, list ) > -1 :\n\t\t\t\t\tlist.length > 0;\n\t\t\t},\n\n\t\t\t// Remove all callbacks from the list\n\t\t\tempty: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\tlist = [];\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Disable .fire and .add\n\t\t\t// Abort any current/pending executions\n\t\t\t// Clear all callbacks and values\n\t\t\tdisable: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tlist = memory = "";\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tdisabled: function() {\n\t\t\t\treturn !list;\n\t\t\t},\n\n\t\t\t// Disable .fire\n\t\t\t// Also disable .add unless we have memory (since it would have no effect)\n\t\t\t// Abort any pending executions\n\t\t\tlock: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tif ( !memory && !firing ) {\n\t\t\t\t\tlist = memory = "";\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tlocked: function() {\n\t\t\t\treturn !!locked;\n\t\t\t},\n\n\t\t\t// Call all callbacks with the given context and arguments\n\t\t\tfireWith: function( context, args ) {\n\t\t\t\tif ( !locked ) {\n\t\t\t\t\targs = args || [];\n\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\n\t\t\t\t\tqueue.push( args );\n\t\t\t\t\tif ( !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Call all the callbacks with the given arguments\n\t\t\tfire: function() {\n\t\t\t\tself.fireWith( this, arguments );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// To know if the callbacks have already been called at least once\n\t\t\tfired: function() {\n\t\t\t\treturn !!fired;\n\t\t\t}\n\t\t};\n\n\treturn self;\n};\n\n\nfunction Identity( v ) {\n\treturn v;\n}\nfunction Thrower( ex ) {\n\tthrow ex;\n}\n\nfunction adoptValue( value, resolve, reject ) {\n\tvar method;\n\n\ttry {\n\n\t\t// Check for promise aspect first to privilege synchronous behavior\n\t\tif ( value && jQuery.isFunction( ( method = value.promise ) ) ) {\n\t\t\tmethod.call( value ).done( resolve ).fail( reject );\n\n\t\t// Other thenables\n\t\t} else if ( value && jQuery.isFunction( ( method = value.then ) ) ) {\n\t\t\tmethod.call( value, resolve, reject );\n\n\t\t// Other non-thenables\n\t\t} else {\n\n\t\t\t// Support: Android 4.0 only\n\t\t\t// Strict mode functions invoked without .call/.apply get global-object context\n\t\t\tresolve.call( undefined, value );\n\t\t}\n\n\t// For Promises/A+, convert exceptions into rejections\n\t// Since jQuery.when doesn\'t unwrap thenables, we can skip the extra checks appearing in\n\t// Deferred#then to conditionally suppress rejection.\n\t} catch ( value ) {\n\n\t\t// Support: Android 4.0 only\n\t\t// Strict mode functions invoked without .call/.apply get global-object context\n\t\treject.call( undefined, value );\n\t}\n}\n\njQuery.extend( {\n\n\tDeferred: function( func ) {\n\t\tvar tuples = [\n\n\t\t\t\t// action, add listener, callbacks,\n\t\t\t\t// ... .then handlers, argument index, [final state]\n\t\t\t\t[ "notify", "progress", jQuery.Callbacks( "memory" ),\n\t\t\t\t\tjQuery.Callbacks( "memory" ), 2 ],\n\t\t\t\t[ "resolve", "done", jQuery.Callbacks( "once memory" ),\n\t\t\t\t\tjQuery.Callbacks( "once memory" ), 0, "resolved" ],\n\t\t\t\t[ "reject", "fail", jQuery.Callbacks( "once memory" ),\n\t\t\t\t\tjQuery.Callbacks( "once memory" ), 1, "rejected" ]\n\t\t\t],\n\t\t\tstate = "pending",\n\t\t\tpromise = {\n\t\t\t\tstate: function() {\n\t\t\t\t\treturn state;\n\t\t\t\t},\n\t\t\t\talways: function() {\n\t\t\t\t\tdeferred.done( arguments ).fail( arguments );\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\t\t\t\t"catch": function( fn ) {\n\t\t\t\t\treturn promise.then( null, fn );\n\t\t\t\t},\n\n\t\t\t\t// Keep pipe for back-compat\n\t\t\t\tpipe: function( /* fnDone, fnFail, fnProgress */ ) {\n\t\t\t\t\tvar fns = arguments;\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\t\t\t\t\t\tjQuery.each( tuples, function( i, tuple ) {\n\n\t\t\t\t\t\t\t// Map tuples (progress, done, fail) to arguments (done, fail, progress)\n\t\t\t\t\t\t\tvar fn = jQuery.isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];\n\n\t\t\t\t\t\t\t// deferred.progress(function() { bind to newDefer or newDefer.notify })\n\t\t\t\t\t\t\t// deferred.done(function() { bind to newDefer or newDefer.resolve })\n\t\t\t\t\t\t\t// deferred.fail(function() { bind to newDefer or newDefer.reject })\n\t\t\t\t\t\t\tdeferred[ tuple[ 1 ] ]( function() {\n\t\t\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\n\t\t\t\t\t\t\t\tif ( returned && jQuery.isFunction( returned.promise ) ) {\n\t\t\t\t\t\t\t\t\treturned.promise()\n\t\t\t\t\t\t\t\t\t\t.progress( newDefer.notify )\n\t\t\t\t\t\t\t\t\t\t.done( newDefer.resolve )\n\t\t\t\t\t\t\t\t\t\t.fail( newDefer.reject );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnewDefer[ tuple[ 0 ] + "With" ](\n\t\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t\tfn ? [ returned ] : arguments\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tfns = null;\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\t\t\t\tthen: function( onFulfilled, onRejected, onProgress ) {\n\t\t\t\t\tvar maxDepth = 0;\n\t\t\t\t\tfunction resolve( depth, deferred, handler, special ) {\n\t\t\t\t\t\treturn function() {\n\t\t\t\t\t\t\tvar that = this,\n\t\t\t\t\t\t\t\targs = arguments,\n\t\t\t\t\t\t\t\tmightThrow = function() {\n\t\t\t\t\t\t\t\t\tvar returned, then;\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.3\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-59\n\t\t\t\t\t\t\t\t\t// Ignore double-resolution attempts\n\t\t\t\t\t\t\t\t\tif ( depth < maxDepth ) {\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\treturned = handler.apply( that, args );\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.1\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-48\n\t\t\t\t\t\t\t\t\tif ( returned === deferred.promise() ) {\n\t\t\t\t\t\t\t\t\t\tthrow new TypeError( "Thenable self-resolution" );\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ sections 2.3.3.1, 3.5\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-54\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-75\n\t\t\t\t\t\t\t\t\t// Retrieve `then` only once\n\t\t\t\t\t\t\t\t\tthen = returned &&\n\n\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.4\n\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-64\n\t\t\t\t\t\t\t\t\t\t// Only check objects and functions for thenability\n\t\t\t\t\t\t\t\t\t\t( typeof returned === "object" ||\n\t\t\t\t\t\t\t\t\t\t\ttypeof returned === "function" ) &&\n\t\t\t\t\t\t\t\t\t\treturned.then;\n\n\t\t\t\t\t\t\t\t\t// Handle a returned thenable\n\t\t\t\t\t\t\t\t\tif ( jQuery.isFunction( then ) ) {\n\n\t\t\t\t\t\t\t\t\t\t// Special processors (notify) just wait for resolution\n\t\t\t\t\t\t\t\t\t\tif ( special ) {\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special )\n\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t// Normal processors (resolve) also hook into progress\n\t\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t\t// ...and disregard older resolution values\n\t\t\t\t\t\t\t\t\t\t\tmaxDepth++;\n\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdeferred.notifyWith )\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Handle all other returned values\n\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\tif ( handler !== Identity ) {\n\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\targs = [ returned ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t// Process the value(s)\n\t\t\t\t\t\t\t\t\t\t// Default process is resolve\n\t\t\t\t\t\t\t\t\t\t( special || deferred.resolveWith )( that, args );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\t\t// Only normal processors (resolve) catch and reject exceptions\n\t\t\t\t\t\t\t\tprocess = special ?\n\t\t\t\t\t\t\t\t\tmightThrow :\n\t\t\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\tmightThrow();\n\t\t\t\t\t\t\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t\t\t\t\t\t\tif ( jQuery.Deferred.exceptionHook ) {\n\t\t\t\t\t\t\t\t\t\t\t\tjQuery.Deferred.exceptionHook( e,\n\t\t\t\t\t\t\t\t\t\t\t\t\tprocess.stackTrace );\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.4.1\n\t\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-61\n\t\t\t\t\t\t\t\t\t\t\t// Ignore post-resolution exceptions\n\t\t\t\t\t\t\t\t\t\t\tif ( depth + 1 >= maxDepth ) {\n\n\t\t\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\t\t\tif ( handler !== Thrower ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\t\t\targs = [ e ];\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\tdeferred.rejectWith( that, args );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.1\n\t\t\t\t\t\t\t// https://promisesaplus.com/#point-57\n\t\t\t\t\t\t\t// Re-resolve promises immediately to dodge false rejection from\n\t\t\t\t\t\t\t// subsequent errors\n\t\t\t\t\t\t\tif ( depth ) {\n\t\t\t\t\t\t\t\tprocess();\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t// Call an optional hook to record the stack, in case of exception\n\t\t\t\t\t\t\t\t// since it\'s otherwise lost when execution goes async\n\t\t\t\t\t\t\t\tif ( jQuery.Deferred.getStackHook ) {\n\t\t\t\t\t\t\t\t\tprocess.stackTrace = jQuery.Deferred.getStackHook();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\twindow.setTimeout( process );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\n\t\t\t\t\t\t// progress_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 0 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tjQuery.isFunction( onProgress ) ?\n\t\t\t\t\t\t\t\t\tonProgress :\n\t\t\t\t\t\t\t\t\tIdentity,\n\t\t\t\t\t\t\t\tnewDefer.notifyWith\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// fulfilled_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 1 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tjQuery.isFunction( onFulfilled ) ?\n\t\t\t\t\t\t\t\t\tonFulfilled :\n\t\t\t\t\t\t\t\t\tIdentity\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// rejected_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 2 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tjQuery.isFunction( onRejected ) ?\n\t\t\t\t\t\t\t\t\tonRejected :\n\t\t\t\t\t\t\t\t\tThrower\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\n\t\t\t\t// Get a promise for this deferred\n\t\t\t\t// If obj is provided, the promise aspect is added to the object\n\t\t\t\tpromise: function( obj ) {\n\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdeferred = {};\n\n\t\t// Add list-specific methods\n\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\tvar list = tuple[ 2 ],\n\t\t\t\tstateString = tuple[ 5 ];\n\n\t\t\t// promise.progress = list.add\n\t\t\t// promise.done = list.add\n\t\t\t// promise.fail = list.add\n\t\t\tpromise[ tuple[ 1 ] ] = list.add;\n\n\t\t\t// Handle state\n\t\t\tif ( stateString ) {\n\t\t\t\tlist.add(\n\t\t\t\t\tfunction() {\n\n\t\t\t\t\t\t// state = "resolved" (i.e., fulfilled)\n\t\t\t\t\t\t// state = "rejected"\n\t\t\t\t\t\tstate = stateString;\n\t\t\t\t\t},\n\n\t\t\t\t\t// rejected_callbacks.disable\n\t\t\t\t\t// fulfilled_callbacks.disable\n\t\t\t\t\ttuples[ 3 - i ][ 2 ].disable,\n\n\t\t\t\t\t// progress_callbacks.lock\n\t\t\t\t\ttuples[ 0 ][ 2 ].lock\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// progress_handlers.fire\n\t\t\t// fulfilled_handlers.fire\n\t\t\t// rejected_handlers.fire\n\t\t\tlist.add( tuple[ 3 ].fire );\n\n\t\t\t// deferred.notify = function() { deferred.notifyWith(...) }\n\t\t\t// deferred.resolve = function() { deferred.resolveWith(...) }\n\t\t\t// deferred.reject = function() { deferred.rejectWith(...) }\n\t\t\tdeferred[ tuple[ 0 ] ] = function() {\n\t\t\t\tdeferred[ tuple[ 0 ] + "With" ]( this === deferred ? undefined : this, arguments );\n\t\t\t\treturn this;\n\t\t\t};\n\n\t\t\t// deferred.notifyWith = list.fireWith\n\t\t\t// deferred.resolveWith = list.fireWith\n\t\t\t// deferred.rejectWith = list.fireWith\n\t\t\tdeferred[ tuple[ 0 ] + "With" ] = list.fireWith;\n\t\t} );\n\n\t\t// Make the deferred a promise\n\t\tpromise.promise( deferred );\n\n\t\t// Call given func if any\n\t\tif ( func ) {\n\t\t\tfunc.call( deferred, deferred );\n\t\t}\n\n\t\t// All done!\n\t\treturn deferred;\n\t},\n\n\t// Deferred helper\n\twhen: function( singleValue ) {\n\t\tvar\n\n\t\t\t// count of uncompleted subordinates\n\t\t\tremaining = arguments.length,\n\n\t\t\t// count of unprocessed arguments\n\t\t\ti = remaining,\n\n\t\t\t// subordinate fulfillment data\n\t\t\tresolveContexts = Array( i ),\n\t\t\tresolveValues = slice.call( arguments ),\n\n\t\t\t// the master Deferred\n\t\t\tmaster = jQuery.Deferred(),\n\n\t\t\t// subordinate callback factory\n\t\t\tupdateFunc = function( i ) {\n\t\t\t\treturn function( value ) {\n\t\t\t\t\tresolveContexts[ i ] = this;\n\t\t\t\t\tresolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;\n\t\t\t\t\tif ( !( --remaining ) ) {\n\t\t\t\t\t\tmaster.resolveWith( resolveContexts, resolveValues );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\n\t\t// Single- and empty arguments are adopted like Promise.resolve\n\t\tif ( remaining <= 1 ) {\n\t\t\tadoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject );\n\n\t\t\t// Use .then() to unwrap secondary thenables (cf. gh-3000)\n\t\t\tif ( master.state() === "pending" ||\n\t\t\t\tjQuery.isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {\n\n\t\t\t\treturn master.then();\n\t\t\t}\n\t\t}\n\n\t\t// Multiple arguments are aggregated like Promise.all array elements\n\t\twhile ( i-- ) {\n\t\t\tadoptValue( resolveValues[ i ], updateFunc( i ), master.reject );\n\t\t}\n\n\t\treturn master.promise();\n\t}\n} );\n\n\n// These usually indicate a programmer mistake during development,\n// warn about them ASAP rather than swallowing them by default.\nvar rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\n\njQuery.Deferred.exceptionHook = function( error, stack ) {\n\n\t// Support: IE 8 - 9 only\n\t// Console exists when dev tools are open, which can happen at any time\n\tif ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {\n\t\twindow.console.warn( "jQuery.Deferred exception: " + error.message, error.stack, stack );\n\t}\n};\n\n\n\n\njQuery.readyException = function( error ) {\n\twindow.setTimeout( function() {\n\t\tthrow error;\n\t} );\n};\n\n\n\n\n// The deferred used on DOM ready\nvar readyList = jQuery.Deferred();\n\njQuery.fn.ready = function( fn ) {\n\n\treadyList\n\t\t.then( fn )\n\n\t\t// Wrap jQuery.readyException in a function so that the lookup\n\t\t// happens at the time of error handling instead of callback\n\t\t// registration.\n\t\t.catch( function( error ) {\n\t\t\tjQuery.readyException( error );\n\t\t} );\n\n\treturn this;\n};\n\njQuery.extend( {\n\n\t// Is the DOM ready to be used? Set to true once it occurs.\n\tisReady: false,\n\n\t// A counter to track how many items to wait for before\n\t// the ready event fires. See #6781\n\treadyWait: 1,\n\n\t// Hold (or release) the ready event\n\tholdReady: function( hold ) {\n\t\tif ( hold ) {\n\t\t\tjQuery.readyWait++;\n\t\t} else {\n\t\t\tjQuery.ready( true );\n\t\t}\n\t},\n\n\t// Handle when the DOM is ready\n\tready: function( wait ) {\n\n\t\t// Abort if there are pending holds or we\'re already ready\n\t\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Remember that the DOM is ready\n\t\tjQuery.isReady = true;\n\n\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\n\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there are functions bound, to execute\n\t\treadyList.resolveWith( document, [ jQuery ] );\n\t}\n} );\n\njQuery.ready.then = readyList.then;\n\n// The ready event handler and self cleanup method\nfunction completed() {\n\tdocument.removeEventListener( "DOMContentLoaded", completed );\n\twindow.removeEventListener( "load", completed );\n\tjQuery.ready();\n}\n\n// Catch cases where $(document).ready() is called\n// after the browser event has already occurred.\n// Support: IE <=9 - 10 only\n// Older IE sometimes signals "interactive" too soon\nif ( document.readyState === "complete" ||\n\t( document.readyState !== "loading" && !document.documentElement.doScroll ) ) {\n\n\t// Handle it asynchronously to allow scripts the opportunity to delay ready\n\twindow.setTimeout( jQuery.ready );\n\n} else {\n\n\t// Use the handy event callback\n\tdocument.addEventListener( "DOMContentLoaded", completed );\n\n\t// A fallback to window.onload, that will always work\n\twindow.addEventListener( "load", completed );\n}\n\n\n\n\n// Multifunctional method to get and set values of a collection\n// The value/s can optionally be executed if it\'s a function\nvar access = function( elems, fn, key, value, chainable, emptyGet, raw ) {\n\tvar i = 0,\n\t\tlen = elems.length,\n\t\tbulk = key == null;\n\n\t// Sets many values\n\tif ( jQuery.type( key ) === "object" ) {\n\t\tchainable = true;\n\t\tfor ( i in key ) {\n\t\t\taccess( elems, fn, i, key[ i ], true, emptyGet, raw );\n\t\t}\n\n\t// Sets one value\n\t} else if ( value !== undefined ) {\n\t\tchainable = true;\n\n\t\tif ( !jQuery.isFunction( value ) ) {\n\t\t\traw = true;\n\t\t}\n\n\t\tif ( bulk ) {\n\n\t\t\t// Bulk operations run against the entire set\n\t\t\tif ( raw ) {\n\t\t\t\tfn.call( elems, value );\n\t\t\t\tfn = null;\n\n\t\t\t// ...except when executing function values\n\t\t\t} else {\n\t\t\t\tbulk = fn;\n\t\t\t\tfn = function( elem, key, value ) {\n\t\t\t\t\treturn bulk.call( jQuery( elem ), value );\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif ( fn ) {\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\tfn(\n\t\t\t\t\telems[ i ], key, raw ?\n\t\t\t\t\tvalue :\n\t\t\t\t\tvalue.call( elems[ i ], i, fn( elems[ i ], key ) )\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( chainable ) {\n\t\treturn elems;\n\t}\n\n\t// Gets\n\tif ( bulk ) {\n\t\treturn fn.call( elems );\n\t}\n\n\treturn len ? fn( elems[ 0 ], key ) : emptyGet;\n};\nvar acceptData = function( owner ) {\n\n\t// Accepts only:\n\t// - Node\n\t// - Node.ELEMENT_NODE\n\t// - Node.DOCUMENT_NODE\n\t// - Object\n\t// - Any\n\treturn owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );\n};\n\n\n\n\nfunction Data() {\n\tthis.expando = jQuery.expando + Data.uid++;\n}\n\nData.uid = 1;\n\nData.prototype = {\n\n\tcache: function( owner ) {\n\n\t\t// Check if the owner object already has a cache\n\t\tvar value = owner[ this.expando ];\n\n\t\t// If not, create one\n\t\tif ( !value ) {\n\t\t\tvalue = {};\n\n\t\t\t// We can accept data for non-element nodes in modern browsers,\n\t\t\t// but we should not, see #8335.\n\t\t\t// Always return an empty object.\n\t\t\tif ( acceptData( owner ) ) {\n\n\t\t\t\t// If it is a node unlikely to be stringify-ed or looped over\n\t\t\t\t// use plain assignment\n\t\t\t\tif ( owner.nodeType ) {\n\t\t\t\t\towner[ this.expando ] = value;\n\n\t\t\t\t// Otherwise secure it in a non-enumerable property\n\t\t\t\t// configurable must be true to allow the property to be\n\t\t\t\t// deleted when data is removed\n\t\t\t\t} else {\n\t\t\t\t\tObject.defineProperty( owner, this.expando, {\n\t\t\t\t\t\tvalue: value,\n\t\t\t\t\t\tconfigurable: true\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t},\n\tset: function( owner, data, value ) {\n\t\tvar prop,\n\t\t\tcache = this.cache( owner );\n\n\t\t// Handle: [ owner, key, value ] args\n\t\t// Always use camelCase key (gh-2257)\n\t\tif ( typeof data === "string" ) {\n\t\t\tcache[ jQuery.camelCase( data ) ] = value;\n\n\t\t// Handle: [ owner, { properties } ] args\n\t\t} else {\n\n\t\t\t// Copy the properties one-by-one to the cache object\n\t\t\tfor ( prop in data ) {\n\t\t\t\tcache[ jQuery.camelCase( prop ) ] = data[ prop ];\n\t\t\t}\n\t\t}\n\t\treturn cache;\n\t},\n\tget: function( owner, key ) {\n\t\treturn key === undefined ?\n\t\t\tthis.cache( owner ) :\n\n\t\t\t// Always use camelCase key (gh-2257)\n\t\t\towner[ this.expando ] && owner[ this.expando ][ jQuery.camelCase( key ) ];\n\t},\n\taccess: function( owner, key, value ) {\n\n\t\t// In cases where either:\n\t\t//\n\t\t// 1. No key was specified\n\t\t// 2. A string key was specified, but no value provided\n\t\t//\n\t\t// Take the "read" path and allow the get method to determine\n\t\t// which value to return, respectively either:\n\t\t//\n\t\t// 1. The entire cache object\n\t\t// 2. The data stored at the key\n\t\t//\n\t\tif ( key === undefined ||\n\t\t\t\t( ( key && typeof key === "string" ) && value === undefined ) ) {\n\n\t\t\treturn this.get( owner, key );\n\t\t}\n\n\t\t// When the key is not a string, or both a key and value\n\t\t// are specified, set or extend (existing objects) with either:\n\t\t//\n\t\t// 1. An object of properties\n\t\t// 2. A key and value\n\t\t//\n\t\tthis.set( owner, key, value );\n\n\t\t// Since the "set" path can have two possible entry points\n\t\t// return the expected data based on which path was taken[*]\n\t\treturn value !== undefined ? value : key;\n\t},\n\tremove: function( owner, key ) {\n\t\tvar i,\n\t\t\tcache = owner[ this.expando ];\n\n\t\tif ( cache === undefined ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( key !== undefined ) {\n\n\t\t\t// Support array or space separated string of keys\n\t\t\tif ( jQuery.isArray( key ) ) {\n\n\t\t\t\t// If key is an array of keys...\n\t\t\t\t// We always set camelCase keys, so remove that.\n\t\t\t\tkey = key.map( jQuery.camelCase );\n\t\t\t} else {\n\t\t\t\tkey = jQuery.camelCase( key );\n\n\t\t\t\t// If a key with the spaces exists, use it.\n\t\t\t\t// Otherwise, create an array by matching non-whitespace\n\t\t\t\tkey = key in cache ?\n\t\t\t\t\t[ key ] :\n\t\t\t\t\t( key.match( rnothtmlwhite ) || [] );\n\t\t\t}\n\n\t\t\ti = key.length;\n\n\t\t\twhile ( i-- ) {\n\t\t\t\tdelete cache[ key[ i ] ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove the expando if there\'s no more data\n\t\tif ( key === undefined || jQuery.isEmptyObject( cache ) ) {\n\n\t\t\t// Support: Chrome <=35 - 45\n\t\t\t// Webkit & Blink performance suffers when deleting properties\n\t\t\t// from DOM nodes, so set to undefined instead\n\t\t\t// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n\t\t\tif ( owner.nodeType ) {\n\t\t\t\towner[ this.expando ] = undefined;\n\t\t\t} else {\n\t\t\t\tdelete owner[ this.expando ];\n\t\t\t}\n\t\t}\n\t},\n\thasData: function( owner ) {\n\t\tvar cache = owner[ this.expando ];\n\t\treturn cache !== undefined && !jQuery.isEmptyObject( cache );\n\t}\n};\nvar dataPriv = new Data();\n\nvar dataUser = new Data();\n\n\n\n//\tImplementation Summary\n//\n//\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n//\t2. Improve the module\'s maintainability by reducing the storage\n//\t\tpaths to a single mechanism.\n//\t3. Use the same single mechanism to support "private" and "user" data.\n//\t4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData)\n//\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n//\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n\nvar rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n\trmultiDash = /[A-Z]/g;\n\nfunction getData( data ) {\n\tif ( data === "true" ) {\n\t\treturn true;\n\t}\n\n\tif ( data === "false" ) {\n\t\treturn false;\n\t}\n\n\tif ( data === "null" ) {\n\t\treturn null;\n\t}\n\n\t// Only convert to a number if it doesn\'t change the string\n\tif ( data === +data + "" ) {\n\t\treturn +data;\n\t}\n\n\tif ( rbrace.test( data ) ) {\n\t\treturn JSON.parse( data );\n\t}\n\n\treturn data;\n}\n\nfunction dataAttr( elem, key, data ) {\n\tvar name;\n\n\t// If nothing was found internally, try to fetch any\n\t// data from the HTML5 data-* attribute\n\tif ( data === undefined && elem.nodeType === 1 ) {\n\t\tname = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase();\n\t\tdata = elem.getAttribute( name );\n\n\t\tif ( typeof data === "string" ) {\n\t\t\ttry {\n\t\t\t\tdata = getData( data );\n\t\t\t} catch ( e ) {}\n\n\t\t\t// Make sure we set the data so it isn\'t changed later\n\t\t\tdataUser.set( elem, key, data );\n\t\t} else {\n\t\t\tdata = undefined;\n\t\t}\n\t}\n\treturn data;\n}\n\njQuery.extend( {\n\thasData: function( elem ) {\n\t\treturn dataUser.hasData( elem ) || dataPriv.hasData( elem );\n\t},\n\n\tdata: function( elem, name, data ) {\n\t\treturn dataUser.access( elem, name, data );\n\t},\n\n\tremoveData: function( elem, name ) {\n\t\tdataUser.remove( elem, name );\n\t},\n\n\t// TODO: Now that all calls to _data and _removeData have been replaced\n\t// with direct calls to dataPriv methods, these can be deprecated.\n\t_data: function( elem, name, data ) {\n\t\treturn dataPriv.access( elem, name, data );\n\t},\n\n\t_removeData: function( elem, name ) {\n\t\tdataPriv.remove( elem, name );\n\t}\n} );\n\njQuery.fn.extend( {\n\tdata: function( key, value ) {\n\t\tvar i, name, data,\n\t\t\telem = this[ 0 ],\n\t\t\tattrs = elem && elem.attributes;\n\n\t\t// Gets all values\n\t\tif ( key === undefined ) {\n\t\t\tif ( this.length ) {\n\t\t\t\tdata = dataUser.get( elem );\n\n\t\t\t\tif ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) {\n\t\t\t\t\ti = attrs.length;\n\t\t\t\t\twhile ( i-- ) {\n\n\t\t\t\t\t\t// Support: IE 11 only\n\t\t\t\t\t\t// The attrs elements can be null (#14894)\n\t\t\t\t\t\tif ( attrs[ i ] ) {\n\t\t\t\t\t\t\tname = attrs[ i ].name;\n\t\t\t\t\t\t\tif ( name.indexOf( "data-" ) === 0 ) {\n\t\t\t\t\t\t\t\tname = jQuery.camelCase( name.slice( 5 ) );\n\t\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdataPriv.set( elem, "hasDataAttrs", true );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\t\t// Sets multiple values\n\t\tif ( typeof key === "object" ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tdataUser.set( this, key );\n\t\t\t} );\n\t\t}\n\n\t\treturn access( this, function( value ) {\n\t\t\tvar data;\n\n\t\t\t// The calling jQuery object (element matches) is not empty\n\t\t\t// (and therefore has an element appears at this[ 0 ]) and the\n\t\t\t// `value` parameter was not undefined. An empty jQuery object\n\t\t\t// will result in `undefined` for elem = this[ 0 ] which will\n\t\t\t// throw an exception if an attempt to read a data cache is made.\n\t\t\tif ( elem && value === undefined ) {\n\n\t\t\t\t// Attempt to get data from the cache\n\t\t\t\t// The key will always be camelCased in Data\n\t\t\t\tdata = dataUser.get( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// Attempt to "discover" the data in\n\t\t\t\t// HTML5 custom data-* attrs\n\t\t\t\tdata = dataAttr( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// We tried really hard, but the data doesn\'t exist.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Set the data...\n\t\t\tthis.each( function() {\n\n\t\t\t\t// We always store the camelCased key\n\t\t\t\tdataUser.set( this, key, value );\n\t\t\t} );\n\t\t}, null, value, arguments.length > 1, null, true );\n\t},\n\n\tremoveData: function( key ) {\n\t\treturn this.each( function() {\n\t\t\tdataUser.remove( this, key );\n\t\t} );\n\t}\n} );\n\n\njQuery.extend( {\n\tqueue: function( elem, type, data ) {\n\t\tvar queue;\n\n\t\tif ( elem ) {\n\t\t\ttype = ( type || "fx" ) + "queue";\n\t\t\tqueue = dataPriv.get( elem, type );\n\n\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\n\t\t\tif ( data ) {\n\t\t\t\tif ( !queue || jQuery.isArray( data ) ) {\n\t\t\t\t\tqueue = dataPriv.access( elem, type, jQuery.makeArray( data ) );\n\t\t\t\t} else {\n\t\t\t\t\tqueue.push( data );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn queue || [];\n\t\t}\n\t},\n\n\tdequeue: function( elem, type ) {\n\t\ttype = type || "fx";\n\n\t\tvar queue = jQuery.queue( elem, type ),\n\t\t\tstartLength = queue.length,\n\t\t\tfn = queue.shift(),\n\t\t\thooks = jQuery._queueHooks( elem, type ),\n\t\t\tnext = function() {\n\t\t\t\tjQuery.dequeue( elem, type );\n\t\t\t};\n\n\t\t// If the fx queue is dequeued, always remove the progress sentinel\n\t\tif ( fn === "inprogress" ) {\n\t\t\tfn = queue.shift();\n\t\t\tstartLength--;\n\t\t}\n\n\t\tif ( fn ) {\n\n\t\t\t// Add a progress sentinel to prevent the fx queue from being\n\t\t\t// automatically dequeued\n\t\t\tif ( type === "fx" ) {\n\t\t\t\tqueue.unshift( "inprogress" );\n\t\t\t}\n\n\t\t\t// Clear up the last queue stop function\n\t\t\tdelete hooks.stop;\n\t\t\tfn.call( elem, next, hooks );\n\t\t}\n\n\t\tif ( !startLength && hooks ) {\n\t\t\thooks.empty.fire();\n\t\t}\n\t},\n\n\t// Not public - generate a queueHooks object, or return the current one\n\t_queueHooks: function( elem, type ) {\n\t\tvar key = type + "queueHooks";\n\t\treturn dataPriv.get( elem, key ) || dataPriv.access( elem, key, {\n\t\t\tempty: jQuery.Callbacks( "once memory" ).add( function() {\n\t\t\t\tdataPriv.remove( elem, [ type + "queue", key ] );\n\t\t\t} )\n\t\t} );\n\t}\n} );\n\njQuery.fn.extend( {\n\tqueue: function( type, data ) {\n\t\tvar setter = 2;\n\n\t\tif ( typeof type !== "string" ) {\n\t\t\tdata = type;\n\t\t\ttype = "fx";\n\t\t\tsetter--;\n\t\t}\n\n\t\tif ( arguments.length < setter ) {\n\t\t\treturn jQuery.queue( this[ 0 ], type );\n\t\t}\n\n\t\treturn data === undefined ?\n\t\t\tthis :\n\t\t\tthis.each( function() {\n\t\t\t\tvar queue = jQuery.queue( this, type, data );\n\n\t\t\t\t// Ensure a hooks for this queue\n\t\t\t\tjQuery._queueHooks( this, type );\n\n\t\t\t\tif ( type === "fx" && queue[ 0 ] !== "inprogress" ) {\n\t\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t\t}\n\t\t\t} );\n\t},\n\tdequeue: function( type ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.dequeue( this, type );\n\t\t} );\n\t},\n\tclearQueue: function( type ) {\n\t\treturn this.queue( type || "fx", [] );\n\t},\n\n\t// Get a promise resolved when queues of a certain type\n\t// are emptied (fx is the type by default)\n\tpromise: function( type, obj ) {\n\t\tvar tmp,\n\t\t\tcount = 1,\n\t\t\tdefer = jQuery.Deferred(),\n\t\t\telements = this,\n\t\t\ti = this.length,\n\t\t\tresolve = function() {\n\t\t\t\tif ( !( --count ) ) {\n\t\t\t\t\tdefer.resolveWith( elements, [ elements ] );\n\t\t\t\t}\n\t\t\t};\n\n\t\tif ( typeof type !== "string" ) {\n\t\t\tobj = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\ttype = type || "fx";\n\n\t\twhile ( i-- ) {\n\t\t\ttmp = dataPriv.get( elements[ i ], type + "queueHooks" );\n\t\t\tif ( tmp && tmp.empty ) {\n\t\t\t\tcount++;\n\t\t\t\ttmp.empty.add( resolve );\n\t\t\t}\n\t\t}\n\t\tresolve();\n\t\treturn defer.promise( obj );\n\t}\n} );\nvar pnum = ( /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/ ).source;\n\nvar rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" );\n\n\nvar cssExpand = [ "Top", "Right", "Bottom", "Left" ];\n\nvar isHiddenWithinTree = function( elem, el ) {\n\n\t\t// isHiddenWithinTree might be called from jQuery#filter function;\n\t\t// in that case, element will be second argument\n\t\telem = el || elem;\n\n\t\t// Inline style trumps all\n\t\treturn elem.style.display === "none" ||\n\t\t\telem.style.display === "" &&\n\n\t\t\t// Otherwise, check computed style\n\t\t\t// Support: Firefox <=43 - 45\n\t\t\t// Disconnected elements can have computed display: none, so first confirm that elem is\n\t\t\t// in the document.\n\t\t\tjQuery.contains( elem.ownerDocument, elem ) &&\n\n\t\t\tjQuery.css( elem, "display" ) === "none";\n\t};\n\nvar swap = function( elem, options, callback, args ) {\n\tvar ret, name,\n\t\told = {};\n\n\t// Remember the old values, and insert the new ones\n\tfor ( name in options ) {\n\t\told[ name ] = elem.style[ name ];\n\t\telem.style[ name ] = options[ name ];\n\t}\n\n\tret = callback.apply( elem, args || [] );\n\n\t// Revert the old values\n\tfor ( name in options ) {\n\t\telem.style[ name ] = old[ name ];\n\t}\n\n\treturn ret;\n};\n\n\n\n\nfunction adjustCSS( elem, prop, valueParts, tween ) {\n\tvar adjusted,\n\t\tscale = 1,\n\t\tmaxIterations = 20,\n\t\tcurrentValue = tween ?\n\t\t\tfunction() {\n\t\t\t\treturn tween.cur();\n\t\t\t} :\n\t\t\tfunction() {\n\t\t\t\treturn jQuery.css( elem, prop, "" );\n\t\t\t},\n\t\tinitial = currentValue(),\n\t\tunit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ),\n\n\t\t// Starting value computation is required for potential unit mismatches\n\t\tinitialInUnit = ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) &&\n\t\t\trcssNum.exec( jQuery.css( elem, prop ) );\n\n\tif ( initialInUnit && initialInUnit[ 3 ] !== unit ) {\n\n\t\t// Trust units reported by jQuery.css\n\t\tunit = unit || initialInUnit[ 3 ];\n\n\t\t// Make sure we update the tween properties later on\n\t\tvalueParts = valueParts || [];\n\n\t\t// Iteratively approximate from a nonzero starting point\n\t\tinitialInUnit = +initial || 1;\n\n\t\tdo {\n\n\t\t\t// If previous iteration zeroed out, double until we get *something*.\n\t\t\t// Use string for doubling so we don\'t accidentally see scale as unchanged below\n\t\t\tscale = scale || ".5";\n\n\t\t\t// Adjust and apply\n\t\t\tinitialInUnit = initialInUnit / scale;\n\t\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\n\t\t// Update scale, tolerating zero or NaN from tween.cur()\n\t\t// Break the loop if scale is unchanged or perfect, or if we\'ve just had enough.\n\t\t} while (\n\t\t\tscale !== ( scale = currentValue() / initial ) && scale !== 1 && --maxIterations\n\t\t);\n\t}\n\n\tif ( valueParts ) {\n\t\tinitialInUnit = +initialInUnit || +initial || 0;\n\n\t\t// Apply relative offset (+=/-=) if specified\n\t\tadjusted = valueParts[ 1 ] ?\n\t\t\tinitialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :\n\t\t\t+valueParts[ 2 ];\n\t\tif ( tween ) {\n\t\t\ttween.unit = unit;\n\t\t\ttween.start = initialInUnit;\n\t\t\ttween.end = adjusted;\n\t\t}\n\t}\n\treturn adjusted;\n}\n\n\nvar defaultDisplayMap = {};\n\nfunction getDefaultDisplay( elem ) {\n\tvar temp,\n\t\tdoc = elem.ownerDocument,\n\t\tnodeName = elem.nodeName,\n\t\tdisplay = defaultDisplayMap[ nodeName ];\n\n\tif ( display ) {\n\t\treturn display;\n\t}\n\n\ttemp = doc.body.appendChild( doc.createElement( nodeName ) );\n\tdisplay = jQuery.css( temp, "display" );\n\n\ttemp.parentNode.removeChild( temp );\n\n\tif ( display === "none" ) {\n\t\tdisplay = "block";\n\t}\n\tdefaultDisplayMap[ nodeName ] = display;\n\n\treturn display;\n}\n\nfunction showHide( elements, show ) {\n\tvar display, elem,\n\t\tvalues = [],\n\t\tindex = 0,\n\t\tlength = elements.length;\n\n\t// Determine new display value for elements that need to change\n\tfor ( ; index < length; index++ ) {\n\t\telem = elements[ index ];\n\t\tif ( !elem.style ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tdisplay = elem.style.display;\n\t\tif ( show ) {\n\n\t\t\t// Since we force visibility upon cascade-hidden elements, an immediate (and slow)\n\t\t\t// check is required in this first loop unless we have a nonempty display value (either\n\t\t\t// inline or about-to-be-restored)\n\t\t\tif ( display === "none" ) {\n\t\t\t\tvalues[ index ] = dataPriv.get( elem, "display" ) || null;\n\t\t\t\tif ( !values[ index ] ) {\n\t\t\t\t\telem.style.display = "";\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( elem.style.display === "" && isHiddenWithinTree( elem ) ) {\n\t\t\t\tvalues[ index ] = getDefaultDisplay( elem );\n\t\t\t}\n\t\t} else {\n\t\t\tif ( display !== "none" ) {\n\t\t\t\tvalues[ index ] = "none";\n\n\t\t\t\t// Remember what we\'re overwriting\n\t\t\t\tdataPriv.set( elem, "display", display );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Set the display of the elements in a second loop to avoid constant reflow\n\tfor ( index = 0; index < length; index++ ) {\n\t\tif ( values[ index ] != null ) {\n\t\t\telements[ index ].style.display = values[ index ];\n\t\t}\n\t}\n\n\treturn elements;\n}\n\njQuery.fn.extend( {\n\tshow: function() {\n\t\treturn showHide( this, true );\n\t},\n\thide: function() {\n\t\treturn showHide( this );\n\t},\n\ttoggle: function( state ) {\n\t\tif ( typeof state === "boolean" ) {\n\t\t\treturn state ? this.show() : this.hide();\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tif ( isHiddenWithinTree( this ) ) {\n\t\t\t\tjQuery( this ).show();\n\t\t\t} else {\n\t\t\t\tjQuery( this ).hide();\n\t\t\t}\n\t\t} );\n\t}\n} );\nvar rcheckableType = ( /^(?:checkbox|radio)$/i );\n\nvar rtagName = ( /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]+)/i );\n\nvar rscriptType = ( /^$|\\/(?:java|ecma)script/i );\n\n\n\n// We have to close these tags to support XHTML (#13200)\nvar wrapMap = {\n\n\t// Support: IE <=9 only\n\toption: [ 1, "<select multiple=\'multiple\'>", "</select>" ],\n\n\t// XHTML parsers do not magically insert elements in the\n\t// same way that tag soup parsers do. So we cannot shorten\n\t// this by omitting <tbody> or other required elements.\n\tthead: [ 1, "<table>", "</table>" ],\n\tcol: [ 2, "<table><colgroup>", "</colgroup></table>" ],\n\ttr: [ 2, "<table><tbody>", "</tbody></table>" ],\n\ttd: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ],\n\n\t_default: [ 0, "", "" ]\n};\n\n// Support: IE <=9 only\nwrapMap.optgroup = wrapMap.option;\n\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\n\nfunction getAll( context, tag ) {\n\n\t// Support: IE <=9 - 11 only\n\t// Use typeof to avoid zero-argument method invocation on host objects (#15151)\n\tvar ret;\n\n\tif ( typeof context.getElementsByTagName !== "undefined" ) {\n\t\tret = context.getElementsByTagName( tag || "*" );\n\n\t} else if ( typeof context.querySelectorAll !== "undefined" ) {\n\t\tret = context.querySelectorAll( tag || "*" );\n\n\t} else {\n\t\tret = [];\n\t}\n\n\tif ( tag === undefined || tag && jQuery.nodeName( context, tag ) ) {\n\t\treturn jQuery.merge( [ context ], ret );\n\t}\n\n\treturn ret;\n}\n\n\n// Mark scripts as having already been evaluated\nfunction setGlobalEval( elems, refElements ) {\n\tvar i = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\tdataPriv.set(\n\t\t\telems[ i ],\n\t\t\t"globalEval",\n\t\t\t!refElements || dataPriv.get( refElements[ i ], "globalEval" )\n\t\t);\n\t}\n}\n\n\nvar rhtml = /<|&#?\\w+;/;\n\nfunction buildFragment( elems, context, scripts, selection, ignored ) {\n\tvar elem, tmp, tag, wrap, contains, j,\n\t\tfragment = context.createDocumentFragment(),\n\t\tnodes = [],\n\t\ti = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\telem = elems[ i ];\n\n\t\tif ( elem || elem === 0 ) {\n\n\t\t\t// Add nodes directly\n\t\t\tif ( jQuery.type( elem ) === "object" ) {\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\n\n\t\t\t// Convert non-html into a text node\n\t\t\t} else if ( !rhtml.test( elem ) ) {\n\t\t\t\tnodes.push( context.createTextNode( elem ) );\n\n\t\t\t// Convert html into DOM nodes\n\t\t\t} else {\n\t\t\t\ttmp = tmp || fragment.appendChild( context.createElement( "div" ) );\n\n\t\t\t\t// Deserialize a standard representation\n\t\t\t\ttag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase();\n\t\t\t\twrap = wrapMap[ tag ] || wrapMap._default;\n\t\t\t\ttmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];\n\n\t\t\t\t// Descend through wrappers to the right content\n\t\t\t\tj = wrap[ 0 ];\n\t\t\t\twhile ( j-- ) {\n\t\t\t\t\ttmp = tmp.lastChild;\n\t\t\t\t}\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, tmp.childNodes );\n\n\t\t\t\t// Remember the top-level container\n\t\t\t\ttmp = fragment.firstChild;\n\n\t\t\t\t// Ensure the created nodes are orphaned (#12392)\n\t\t\t\ttmp.textContent = "";\n\t\t\t}\n\t\t}\n\t}\n\n\t// Remove wrapper from fragment\n\tfragment.textContent = "";\n\n\ti = 0;\n\twhile ( ( elem = nodes[ i++ ] ) ) {\n\n\t\t// Skip elements already in the context collection (trac-4087)\n\t\tif ( selection && jQuery.inArray( elem, selection ) > -1 ) {\n\t\t\tif ( ignored ) {\n\t\t\t\tignored.push( elem );\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tcontains = jQuery.contains( elem.ownerDocument, elem );\n\n\t\t// Append to fragment\n\t\ttmp = getAll( fragment.appendChild( elem ), "script" );\n\n\t\t// Preserve script evaluation history\n\t\tif ( contains ) {\n\t\t\tsetGlobalEval( tmp );\n\t\t}\n\n\t\t// Capture executables\n\t\tif ( scripts ) {\n\t\t\tj = 0;\n\t\t\twhile ( ( elem = tmp[ j++ ] ) ) {\n\t\t\t\tif ( rscriptType.test( elem.type || "" ) ) {\n\t\t\t\t\tscripts.push( elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn fragment;\n}\n\n\n( function() {\n\tvar fragment = document.createDocumentFragment(),\n\t\tdiv = fragment.appendChild( document.createElement( "div" ) ),\n\t\tinput = document.createElement( "input" );\n\n\t// Support: Android 4.0 - 4.3 only\n\t// Check state lost if the name is set (#11217)\n\t// Support: Windows Web Apps (WWA)\n\t// `name` and `type` must use .setAttribute for WWA (#14901)\n\tinput.setAttribute( "type", "radio" );\n\tinput.setAttribute( "checked", "checked" );\n\tinput.setAttribute( "name", "t" );\n\n\tdiv.appendChild( input );\n\n\t// Support: Android <=4.1 only\n\t// Older WebKit doesn\'t clone checked state correctly in fragments\n\tsupport.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;\n\n\t// Support: IE <=11 only\n\t// Make sure textarea (and checkbox) defaultValue is properly cloned\n\tdiv.innerHTML = "<textarea>x</textarea>";\n\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\n} )();\nvar documentElement = document.documentElement;\n\n\n\nvar\n\trkeyEvent = /^key/,\n\trmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,\n\trtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\n}\n\n// Support: IE <=9 only\n// See #13393 for more info\nfunction safeActiveElement() {\n\ttry {\n\t\treturn document.activeElement;\n\t} catch ( err ) { }\n}\n\nfunction on( elem, types, selector, data, fn, one ) {\n\tvar origFn, type;\n\n\t// Types can be a map of types/handlers\n\tif ( typeof types === "object" ) {\n\n\t\t// ( types-Object, selector, data )\n\t\tif ( typeof selector !== "string" ) {\n\n\t\t\t// ( types-Object, data )\n\t\t\tdata = data || selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tfor ( type in types ) {\n\t\t\ton( elem, type, selector, data, types[ type ], one );\n\t\t}\n\t\treturn elem;\n\t}\n\n\tif ( data == null && fn == null ) {\n\n\t\t// ( types, fn )\n\t\tfn = selector;\n\t\tdata = selector = undefined;\n\t} else if ( fn == null ) {\n\t\tif ( typeof selector === "string" ) {\n\n\t\t\t// ( types, selector, fn )\n\t\t\tfn = data;\n\t\t\tdata = undefined;\n\t\t} else {\n\n\t\t\t// ( types, data, fn )\n\t\t\tfn = data;\n\t\t\tdata = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t}\n\tif ( fn === false ) {\n\t\tfn = returnFalse;\n\t} else if ( !fn ) {\n\t\treturn elem;\n\t}\n\n\tif ( one === 1 ) {\n\t\torigFn = fn;\n\t\tfn = function( event ) {\n\n\t\t\t// Can use an empty set, since event contains the info\n\t\t\tjQuery().off( event );\n\t\t\treturn origFn.apply( this, arguments );\n\t\t};\n\n\t\t// Use same guid so caller can remove using origFn\n\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\n\t}\n\treturn elem.each( function() {\n\t\tjQuery.event.add( this, types, fn, data, selector );\n\t} );\n}\n\n/*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards\' addEvent library for many of the ideas.\n */\njQuery.event = {\n\n\tglobal: {},\n\n\tadd: function( elem, types, handler, data, selector ) {\n\n\t\tvar handleObjIn, eventHandle, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.get( elem );\n\n\t\t// Don\'t attach events to noData or text/comment nodes (but allow plain objects)\n\t\tif ( !elemData ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Caller can pass in an object of custom data in lieu of the handler\n\t\tif ( handler.handler ) {\n\t\t\thandleObjIn = handler;\n\t\t\thandler = handleObjIn.handler;\n\t\t\tselector = handleObjIn.selector;\n\t\t}\n\n\t\t// Ensure that invalid selectors throw exceptions at attach time\n\t\t// Evaluate against documentElement in case elem is a non-element node (e.g., document)\n\t\tif ( selector ) {\n\t\t\tjQuery.find.matchesSelector( documentElement, selector );\n\t\t}\n\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\n\t\tif ( !handler.guid ) {\n\t\t\thandler.guid = jQuery.guid++;\n\t\t}\n\n\t\t// Init the element\'s event structure and main handler, if this is the first\n\t\tif ( !( events = elemData.events ) ) {\n\t\t\tevents = elemData.events = {};\n\t\t}\n\t\tif ( !( eventHandle = elemData.handle ) ) {\n\t\t\teventHandle = elemData.handle = function( e ) {\n\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\n\t\t\t\t// when an event is called after a page has unloaded\n\t\t\t\treturn typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ?\n\t\t\t\t\tjQuery.event.dispatch.apply( elem, arguments ) : undefined;\n\t\t\t};\n\t\t}\n\n\t\t// Handle multiple events separated by a space\n\t\ttypes = ( types || "" ).match( rnothtmlwhite ) || [ "" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || "" ).split( "." ).sort();\n\n\t\t\t// There *must* be a type, no attaching namespace-only handlers\n\t\t\tif ( !type ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If event changes its type, use the special event handlers for the changed type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// If selector defined, determine special event api type, otherwise given type\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\n\t\t\t// Update special based on newly reset type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// handleObj is passed to all event handlers\n\t\t\thandleObj = jQuery.extend( {\n\t\t\t\ttype: type,\n\t\t\t\torigType: origType,\n\t\t\t\tdata: data,\n\t\t\t\thandler: handler,\n\t\t\t\tguid: handler.guid,\n\t\t\t\tselector: selector,\n\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\n\t\t\t\tnamespace: namespaces.join( "." )\n\t\t\t}, handleObjIn );\n\n\t\t\t// Init the event handler queue if we\'re the first\n\t\t\tif ( !( handlers = events[ type ] ) ) {\n\t\t\t\thandlers = events[ type ] = [];\n\t\t\t\thandlers.delegateCount = 0;\n\n\t\t\t\t// Only use addEventListener if the special events handler returns false\n\t\t\t\tif ( !special.setup ||\n\t\t\t\t\tspecial.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\n\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\telem.addEventListener( type, eventHandle );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( special.add ) {\n\t\t\t\tspecial.add.call( elem, handleObj );\n\n\t\t\t\tif ( !handleObj.handler.guid ) {\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add to the element\'s handler list, delegates in front\n\t\t\tif ( selector ) {\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\n\t\t\t} else {\n\t\t\t\thandlers.push( handleObj );\n\t\t\t}\n\n\t\t\t// Keep track of which events have ever been used, for event optimization\n\t\t\tjQuery.event.global[ type ] = true;\n\t\t}\n\n\t},\n\n\t// Detach an event or set of events from an element\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\n\t\tvar j, origCount, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.hasData( elem ) && dataPriv.get( elem );\n\n\t\tif ( !elemData || !( events = elemData.events ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Once for each type.namespace in types; type may be omitted\n\t\ttypes = ( types || "" ).match( rnothtmlwhite ) || [ "" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || "" ).split( "." ).sort();\n\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\n\t\t\tif ( !type ) {\n\t\t\t\tfor ( type in events ) {\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\t\t\thandlers = events[ type ] || [];\n\t\t\ttmp = tmp[ 2 ] &&\n\t\t\t\tnew RegExp( "(^|\\\\.)" + namespaces.join( "\\\\.(?:.*\\\\.|)" ) + "(\\\\.|$)" );\n\n\t\t\t// Remove matching events\n\t\t\torigCount = j = handlers.length;\n\t\t\twhile ( j-- ) {\n\t\t\t\thandleObj = handlers[ j ];\n\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\n\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\n\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\n\t\t\t\t\t( !selector || selector === handleObj.selector ||\n\t\t\t\t\t\tselector === "**" && handleObj.selector ) ) {\n\t\t\t\t\thandlers.splice( j, 1 );\n\n\t\t\t\t\tif ( handleObj.selector ) {\n\t\t\t\t\t\thandlers.delegateCount--;\n\t\t\t\t\t}\n\t\t\t\t\tif ( special.remove ) {\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove generic event handler if we removed something and no more handlers exist\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\n\t\t\tif ( origCount && !handlers.length ) {\n\t\t\t\tif ( !special.teardown ||\n\t\t\t\t\tspecial.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\n\t\t\t\t}\n\n\t\t\t\tdelete events[ type ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove data and the expando if it\'s no longer used\n\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\tdataPriv.remove( elem, "handle events" );\n\t\t}\n\t},\n\n\tdispatch: function( nativeEvent ) {\n\n\t\t// Make a writable jQuery.Event from the native event object\n\t\tvar event = jQuery.event.fix( nativeEvent );\n\n\t\tvar i, j, ret, matched, handleObj, handlerQueue,\n\t\t\targs = new Array( arguments.length ),\n\t\t\thandlers = ( dataPriv.get( this, "events" ) || {} )[ event.type ] || [],\n\t\t\tspecial = jQuery.event.special[ event.type ] || {};\n\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\n\t\targs[ 0 ] = event;\n\n\t\tfor ( i = 1; i < arguments.length; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tevent.delegateTarget = this;\n\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine handlers\n\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\n\n\t\t// Run delegates first; they may want to stop propagation beneath us\n\t\ti = 0;\n\t\twhile ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tevent.currentTarget = matched.elem;\n\n\t\t\tj = 0;\n\t\t\twhile ( ( handleObj = matched.handlers[ j++ ] ) &&\n\t\t\t\t!event.isImmediatePropagationStopped() ) {\n\n\t\t\t\t// Triggered event must either 1) have no namespace, or 2) have namespace(s)\n\t\t\t\t// a subset or equal to those in the bound event (both can have no namespace).\n\t\t\t\tif ( !event.rnamespace || event.rnamespace.test( handleObj.namespace ) ) {\n\n\t\t\t\t\tevent.handleObj = handleObj;\n\t\t\t\t\tevent.data = handleObj.data;\n\n\t\t\t\t\tret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||\n\t\t\t\t\t\thandleObj.handler ).apply( matched.elem, args );\n\n\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\tif ( ( event.result = ret ) === false ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Call the postDispatch hook for the mapped type\n\t\tif ( special.postDispatch ) {\n\t\t\tspecial.postDispatch.call( this, event );\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\thandlers: function( event, handlers ) {\n\t\tvar i, handleObj, sel, matchedHandlers, matchedSelectors,\n\t\t\thandlerQueue = [],\n\t\t\tdelegateCount = handlers.delegateCount,\n\t\t\tcur = event.target;\n\n\t\t// Find delegate handlers\n\t\tif ( delegateCount &&\n\n\t\t\t// Support: IE <=9\n\t\t\t// Black-hole SVG <use> instance trees (trac-13180)\n\t\t\tcur.nodeType &&\n\n\t\t\t// Support: Firefox <=42\n\t\t\t// Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n\t\t\t// https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n\t\t\t// Support: IE 11 only\n\t\t\t// ...but not arrow key "clicks" of radio inputs, which can have `button` -1 (gh-2343)\n\t\t\t!( event.type === "click" && event.button >= 1 ) ) {\n\n\t\t\tfor ( ; cur !== this; cur = cur.parentNode || this ) {\n\n\t\t\t\t// Don\'t check non-elements (#13208)\n\t\t\t\t// Don\'t process clicks on disabled elements (#6911, #8165, #11382, #11764)\n\t\t\t\tif ( cur.nodeType === 1 && !( event.type === "click" && cur.disabled === true ) ) {\n\t\t\t\t\tmatchedHandlers = [];\n\t\t\t\t\tmatchedSelectors = {};\n\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\n\t\t\t\t\t\thandleObj = handlers[ i ];\n\n\t\t\t\t\t\t// Don\'t conflict with Object.prototype properties (#13203)\n\t\t\t\t\t\tsel = handleObj.selector + " ";\n\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] === undefined ) {\n\t\t\t\t\t\t\tmatchedSelectors[ sel ] = handleObj.needsContext ?\n\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) > -1 :\n\t\t\t\t\t\t\t\tjQuery.find( sel, this, null, [ cur ] ).length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] ) {\n\t\t\t\t\t\t\tmatchedHandlers.push( handleObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( matchedHandlers.length ) {\n\t\t\t\t\t\thandlerQueue.push( { elem: cur, handlers: matchedHandlers } );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add the remaining (directly-bound) handlers\n\t\tcur = this;\n\t\tif ( delegateCount < handlers.length ) {\n\t\t\thandlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );\n\t\t}\n\n\t\treturn handlerQueue;\n\t},\n\n\taddProp: function( name, hook ) {\n\t\tObject.defineProperty( jQuery.Event.prototype, name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\n\t\t\tget: jQuery.isFunction( hook ) ?\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\t\treturn hook( this.originalEvent );\n\t\t\t\t\t}\n\t\t\t\t} :\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\t\treturn this.originalEvent[ name ];\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\tset: function( value ) {\n\t\t\t\tObject.defineProperty( this, name, {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t\twritable: true,\n\t\t\t\t\tvalue: value\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t},\n\n\tfix: function( originalEvent ) {\n\t\treturn originalEvent[ jQuery.expando ] ?\n\t\t\toriginalEvent :\n\t\t\tnew jQuery.Event( originalEvent );\n\t},\n\n\tspecial: {\n\t\tload: {\n\n\t\t\t// Prevent triggered image.load events from bubbling to window.load\n\t\t\tnoBubble: true\n\t\t},\n\t\tfocus: {\n\n\t\t\t// Fire native event if possible so blur/focus sequence is correct\n\t\t\ttrigger: function() {\n\t\t\t\tif ( this !== safeActiveElement() && this.focus ) {\n\t\t\t\t\tthis.focus();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdelegateType: "focusin"\n\t\t},\n\t\tblur: {\n\t\t\ttrigger: function() {\n\t\t\t\tif ( this === safeActiveElement() && this.blur ) {\n\t\t\t\t\tthis.blur();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdelegateType: "focusout"\n\t\t},\n\t\tclick: {\n\n\t\t\t// For checkbox, fire native event so checked state will be right\n\t\t\ttrigger: function() {\n\t\t\t\tif ( this.type === "checkbox" && this.click && jQuery.nodeName( this, "input" ) ) {\n\t\t\t\t\tthis.click();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t// For cross-browser consistency, don\'t fire native .click() on links\n\t\t\t_default: function( event ) {\n\t\t\t\treturn jQuery.nodeName( event.target, "a" );\n\t\t\t}\n\t\t},\n\n\t\tbeforeunload: {\n\t\t\tpostDispatch: function( event ) {\n\n\t\t\t\t// Support: Firefox 20+\n\t\t\t\t// Firefox doesn\'t alert if the returnValue field is not set.\n\t\t\t\tif ( event.result !== undefined && event.originalEvent ) {\n\t\t\t\t\tevent.originalEvent.returnValue = event.result;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\njQuery.removeEvent = function( elem, type, handle ) {\n\n\t// This "if" is needed for plain objects\n\tif ( elem.removeEventListener ) {\n\t\telem.removeEventListener( type, handle );\n\t}\n};\n\njQuery.Event = function( src, props ) {\n\n\t// Allow instantiation without the \'new\' keyword\n\tif ( !( this instanceof jQuery.Event ) ) {\n\t\treturn new jQuery.Event( src, props );\n\t}\n\n\t// Event object\n\tif ( src && src.type ) {\n\t\tthis.originalEvent = src;\n\t\tthis.type = src.type;\n\n\t\t// Events bubbling up the document may have been marked as prevented\n\t\t// by a handler lower down the tree; reflect the correct value.\n\t\tthis.isDefaultPrevented = src.defaultPrevented ||\n\t\t\t\tsrc.defaultPrevented === undefined &&\n\n\t\t\t\t// Support: Android <=2.3 only\n\t\t\t\tsrc.returnValue === false ?\n\t\t\treturnTrue :\n\t\t\treturnFalse;\n\n\t\t// Create target properties\n\t\t// Support: Safari <=6 - 7 only\n\t\t// Target should not be a text node (#504, #13143)\n\t\tthis.target = ( src.target && src.target.nodeType === 3 ) ?\n\t\t\tsrc.target.parentNode :\n\t\t\tsrc.target;\n\n\t\tthis.currentTarget = src.currentTarget;\n\t\tthis.relatedTarget = src.relatedTarget;\n\n\t// Event type\n\t} else {\n\t\tthis.type = src;\n\t}\n\n\t// Put explicitly provided properties onto the event object\n\tif ( props ) {\n\t\tjQuery.extend( this, props );\n\t}\n\n\t// Create a timestamp if incoming event doesn\'t have one\n\tthis.timeStamp = src && src.timeStamp || jQuery.now();\n\n\t// Mark it as fixed\n\tthis[ jQuery.expando ] = true;\n};\n\n// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\njQuery.Event.prototype = {\n\tconstructor: jQuery.Event,\n\tisDefaultPrevented: returnFalse,\n\tisPropagationStopped: returnFalse,\n\tisImmediatePropagationStopped: returnFalse,\n\tisSimulated: false,\n\n\tpreventDefault: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isDefaultPrevented = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.preventDefault();\n\t\t}\n\t},\n\tstopPropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isPropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopPropagation();\n\t\t}\n\t},\n\tstopImmediatePropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isImmediatePropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\n\t\tthis.stopPropagation();\n\t}\n};\n\n// Includes all common event props including KeyEvent and MouseEvent specific props\njQuery.each( {\n\taltKey: true,\n\tbubbles: true,\n\tcancelable: true,\n\tchangedTouches: true,\n\tctrlKey: true,\n\tdetail: true,\n\teventPhase: true,\n\tmetaKey: true,\n\tpageX: true,\n\tpageY: true,\n\tshiftKey: true,\n\tview: true,\n\t"char": true,\n\tcharCode: true,\n\tkey: true,\n\tkeyCode: true,\n\tbutton: true,\n\tbuttons: true,\n\tclientX: true,\n\tclientY: true,\n\toffsetX: true,\n\toffsetY: true,\n\tpointerId: true,\n\tpointerType: true,\n\tscreenX: true,\n\tscreenY: true,\n\ttargetTouches: true,\n\ttoElement: true,\n\ttouches: true,\n\n\twhich: function( event ) {\n\t\tvar button = event.button;\n\n\t\t// Add which for key events\n\t\tif ( event.which == null && rkeyEvent.test( event.type ) ) {\n\t\t\treturn event.charCode != null ? event.charCode : event.keyCode;\n\t\t}\n\n\t\t// Add which for click: 1 === left; 2 === middle; 3 === right\n\t\tif ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) {\n\t\t\tif ( button & 1 ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\tif ( button & 2 ) {\n\t\t\t\treturn 3;\n\t\t\t}\n\n\t\t\tif ( button & 4 ) {\n\t\t\t\treturn 2;\n\t\t\t}\n\n\t\t\treturn 0;\n\t\t}\n\n\t\treturn event.which;\n\t}\n}, jQuery.event.addProp );\n\n// Create mouseenter/leave events using mouseover/out and event-time checks\n// so that event delegation works in jQuery.\n// Do the same for pointerenter/pointerleave and pointerover/pointerout\n//\n// Support: Safari 7 only\n// Safari sends mouseenter too often; see:\n// https://bugs.chromium.org/p/chromium/issues/detail?id=470258\n// for the description of the bug (it existed in older Chrome versions as well).\njQuery.each( {\n\tmouseenter: "mouseover",\n\tmouseleave: "mouseout",\n\tpointerenter: "pointerover",\n\tpointerleave: "pointerout"\n}, function( orig, fix ) {\n\tjQuery.event.special[ orig ] = {\n\t\tdelegateType: fix,\n\t\tbindType: fix,\n\n\t\thandle: function( event ) {\n\t\t\tvar ret,\n\t\t\t\ttarget = this,\n\t\t\t\trelated = event.relatedTarget,\n\t\t\t\thandleObj = event.handleObj;\n\n\t\t\t// For mouseenter/leave call the handler if related is outside the target.\n\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\n\t\t\tif ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {\n\t\t\t\tevent.type = handleObj.origType;\n\t\t\t\tret = handleObj.handler.apply( this, arguments );\n\t\t\t\tevent.type = fix;\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\t};\n} );\n\njQuery.fn.extend( {\n\n\ton: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn );\n\t},\n\tone: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn, 1 );\n\t},\n\toff: function( types, selector, fn ) {\n\t\tvar handleObj, type;\n\t\tif ( types && types.preventDefault && types.handleObj ) {\n\n\t\t\t// ( event ) dispatched jQuery.Event\n\t\t\thandleObj = types.handleObj;\n\t\t\tjQuery( types.delegateTarget ).off(\n\t\t\t\thandleObj.namespace ?\n\t\t\t\t\thandleObj.origType + "." + handleObj.namespace :\n\t\t\t\t\thandleObj.origType,\n\t\t\t\thandleObj.selector,\n\t\t\t\thandleObj.handler\n\t\t\t);\n\t\t\treturn this;\n\t\t}\n\t\tif ( typeof types === "object" ) {\n\n\t\t\t// ( types-object [, selector] )\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.off( type, selector, types[ type ] );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif ( selector === false || typeof selector === "function" ) {\n\n\t\t\t// ( types [, fn] )\n\t\t\tfn = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.remove( this, types, fn, selector );\n\t\t} );\n\t}\n} );\n\n\nvar\n\n\t/* eslint-disable max-len */\n\n\t// See https://github.com/eslint/eslint/issues/3229\n\trxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)[^>]*)\\/>/gi,\n\n\t/* eslint-enable */\n\n\t// Support: IE <=10 - 11, Edge 12 - 13\n\t// In IE/Edge using regex groups here causes severe slowdowns.\n\t// See https://connect.microsoft.com/IE/feedback/details/1736512/\n\trnoInnerhtml = /<script|<style|<link/i,\n\n\t// checked="checked" or checked\n\trchecked = /checked\\s*(?:[^=]|=\\s*.checked.)/i,\n\trscriptTypeMasked = /^true\\/(.*)/,\n\trcleanScript = /^\\s*<!(?:\\[CDATA\\[|--)|(?:\\]\\]|--)>\\s*$/g;\n\nfunction manipulationTarget( elem, content ) {\n\tif ( jQuery.nodeName( elem, "table" ) &&\n\t\tjQuery.nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ) {\n\n\t\treturn elem.getElementsByTagName( "tbody" )[ 0 ] || elem;\n\t}\n\n\treturn elem;\n}\n\n// Replace/restore the type attribute of script elements for safe DOM manipulation\nfunction disableScript( elem ) {\n\telem.type = ( elem.getAttribute( "type" ) !== null ) + "/" + elem.type;\n\treturn elem;\n}\nfunction restoreScript( elem ) {\n\tvar match = rscriptTypeMasked.exec( elem.type );\n\n\tif ( match ) {\n\t\telem.type = match[ 1 ];\n\t} else {\n\t\telem.removeAttribute( "type" );\n\t}\n\n\treturn elem;\n}\n\nfunction cloneCopyEvent( src, dest ) {\n\tvar i, l, type, pdataOld, pdataCur, udataOld, udataCur, events;\n\n\tif ( dest.nodeType !== 1 ) {\n\t\treturn;\n\t}\n\n\t// 1. Copy private data: events, handlers, etc.\n\tif ( dataPriv.hasData( src ) ) {\n\t\tpdataOld = dataPriv.access( src );\n\t\tpdataCur = dataPriv.set( dest, pdataOld );\n\t\tevents = pdataOld.events;\n\n\t\tif ( events ) {\n\t\t\tdelete pdataCur.handle;\n\t\t\tpdataCur.events = {};\n\n\t\t\tfor ( type in events ) {\n\t\t\t\tfor ( i = 0, l = events[ type ].length; i < l; i++ ) {\n\t\t\t\t\tjQuery.event.add( dest, type, events[ type ][ i ] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// 2. Copy user data\n\tif ( dataUser.hasData( src ) ) {\n\t\tudataOld = dataUser.access( src );\n\t\tudataCur = jQuery.extend( {}, udataOld );\n\n\t\tdataUser.set( dest, udataCur );\n\t}\n}\n\n// Fix IE bugs, see support tests\nfunction fixInput( src, dest ) {\n\tvar nodeName = dest.nodeName.toLowerCase();\n\n\t// Fails to persist the checked state of a cloned checkbox or radio button.\n\tif ( nodeName === "input" && rcheckableType.test( src.type ) ) {\n\t\tdest.checked = src.checked;\n\n\t// Fails to return the selected option to the default selected state when cloning options\n\t} else if ( nodeName === "input" || nodeName === "textarea" ) {\n\t\tdest.defaultValue = src.defaultValue;\n\t}\n}\n\nfunction domManip( collection, args, callback, ignored ) {\n\n\t// Flatten any nested arrays\n\targs = concat.apply( [], args );\n\n\tvar fragment, first, scripts, hasScripts, node, doc,\n\t\ti = 0,\n\t\tl = collection.length,\n\t\tiNoClone = l - 1,\n\t\tvalue = args[ 0 ],\n\t\tisFunction = jQuery.isFunction( value );\n\n\t// We can\'t cloneNode fragments that contain checked, in WebKit\n\tif ( isFunction ||\n\t\t\t( l > 1 && typeof value === "string" &&\n\t\t\t\t!support.checkClone && rchecked.test( value ) ) ) {\n\t\treturn collection.each( function( index ) {\n\t\t\tvar self = collection.eq( index );\n\t\t\tif ( isFunction ) {\n\t\t\t\targs[ 0 ] = value.call( this, index, self.html() );\n\t\t\t}\n\t\t\tdomManip( self, args, callback, ignored );\n\t\t} );\n\t}\n\n\tif ( l ) {\n\t\tfragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );\n\t\tfirst = fragment.firstChild;\n\n\t\tif ( fragment.childNodes.length === 1 ) {\n\t\t\tfragment = first;\n\t\t}\n\n\t\t// Require either new content or an interest in ignored elements to invoke the callback\n\t\tif ( first || ignored ) {\n\t\t\tscripts = jQuery.map( getAll( fragment, "script" ), disableScript );\n\t\t\thasScripts = scripts.length;\n\n\t\t\t// Use the original fragment for the last item\n\t\t\t// instead of the first because it can end up\n\t\t\t// being emptied incorrectly in certain situations (#8070).\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tnode = fragment;\n\n\t\t\t\tif ( i !== iNoClone ) {\n\t\t\t\t\tnode = jQuery.clone( node, true, true );\n\n\t\t\t\t\t// Keep references to cloned scripts for later restoration\n\t\t\t\t\tif ( hasScripts ) {\n\n\t\t\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\t\t\tjQuery.merge( scripts, getAll( node, "script" ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcallback.call( collection[ i ], node, i );\n\t\t\t}\n\n\t\t\tif ( hasScripts ) {\n\t\t\t\tdoc = scripts[ scripts.length - 1 ].ownerDocument;\n\n\t\t\t\t// Reenable scripts\n\t\t\t\tjQuery.map( scripts, restoreScript );\n\n\t\t\t\t// Evaluate executable scripts on first document insertion\n\t\t\t\tfor ( i = 0; i < hasScripts; i++ ) {\n\t\t\t\t\tnode = scripts[ i ];\n\t\t\t\t\tif ( rscriptType.test( node.type || "" ) &&\n\t\t\t\t\t\t!dataPriv.access( node, "globalEval" ) &&\n\t\t\t\t\t\tjQuery.contains( doc, node ) ) {\n\n\t\t\t\t\t\tif ( node.src ) {\n\n\t\t\t\t\t\t\t// Optional AJAX dependency, but won\'t run scripts if not present\n\t\t\t\t\t\t\tif ( jQuery._evalUrl ) {\n\t\t\t\t\t\t\t\tjQuery._evalUrl( node.src );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tDOMEval( node.textContent.replace( rcleanScript, "" ), doc );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn collection;\n}\n\nfunction remove( elem, selector, keepData ) {\n\tvar node,\n\t\tnodes = selector ? jQuery.filter( selector, elem ) : elem,\n\t\ti = 0;\n\n\tfor ( ; ( node = nodes[ i ] ) != null; i++ ) {\n\t\tif ( !keepData && node.nodeType === 1 ) {\n\t\t\tjQuery.cleanData( getAll( node ) );\n\t\t}\n\n\t\tif ( node.parentNode ) {\n\t\t\tif ( keepData && jQuery.contains( node.ownerDocument, node ) ) {\n\t\t\t\tsetGlobalEval( getAll( node, "script" ) );\n\t\t\t}\n\t\t\tnode.parentNode.removeChild( node );\n\t\t}\n\t}\n\n\treturn elem;\n}\n\njQuery.extend( {\n\thtmlPrefilter: function( html ) {\n\t\treturn html.replace( rxhtmlTag, "<$1></$2>" );\n\t},\n\n\tclone: function( elem, dataAndEvents, deepDataAndEvents ) {\n\t\tvar i, l, srcElements, destElements,\n\t\t\tclone = elem.cloneNode( true ),\n\t\t\tinPage = jQuery.contains( elem.ownerDocument, elem );\n\n\t\t// Fix IE cloning issues\n\t\tif ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&\n\t\t\t\t!jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2\n\t\t\tdestElements = getAll( clone );\n\t\t\tsrcElements = getAll( elem );\n\n\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\tfixInput( srcElements[ i ], destElements[ i ] );\n\t\t\t}\n\t\t}\n\n\t\t// Copy the events from the original to the clone\n\t\tif ( dataAndEvents ) {\n\t\t\tif ( deepDataAndEvents ) {\n\t\t\t\tsrcElements = srcElements || getAll( elem );\n\t\t\t\tdestElements = destElements || getAll( clone );\n\n\t\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\t\tcloneCopyEvent( srcElements[ i ], destElements[ i ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcloneCopyEvent( elem, clone );\n\t\t\t}\n\t\t}\n\n\t\t// Preserve script evaluation history\n\t\tdestElements = getAll( clone, "script" );\n\t\tif ( destElements.length > 0 ) {\n\t\t\tsetGlobalEval( destElements, !inPage && getAll( elem, "script" ) );\n\t\t}\n\n\t\t// Return the cloned set\n\t\treturn clone;\n\t},\n\n\tcleanData: function( elems ) {\n\t\tvar data, elem, type,\n\t\t\tspecial = jQuery.event.special,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {\n\t\t\tif ( acceptData( elem ) ) {\n\t\t\t\tif ( ( data = elem[ dataPriv.expando ] ) ) {\n\t\t\t\t\tif ( data.events ) {\n\t\t\t\t\t\tfor ( type in data.events ) {\n\t\t\t\t\t\t\tif ( special[ type ] ) {\n\t\t\t\t\t\t\t\tjQuery.event.remove( elem, type );\n\n\t\t\t\t\t\t\t// This is a shortcut to avoid jQuery.event.remove\'s overhead\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.removeEvent( elem, type, data.handle );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataPriv.expando ] = undefined;\n\t\t\t\t}\n\t\t\t\tif ( elem[ dataUser.expando ] ) {\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataUser.expando ] = undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n} );\n\njQuery.fn.extend( {\n\tdetach: function( selector ) {\n\t\treturn remove( this, selector, true );\n\t},\n\n\tremove: function( selector ) {\n\t\treturn remove( this, selector );\n\t},\n\n\ttext: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\treturn value === undefined ?\n\t\t\t\tjQuery.text( this ) :\n\t\t\t\tthis.empty().each( function() {\n\t\t\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\t\t\tthis.textContent = value;\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t}, null, value, arguments.length );\n\t},\n\n\tappend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.appendChild( elem );\n\t\t\t}\n\t\t} );\n\t},\n\n\tprepend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.insertBefore( elem, target.firstChild );\n\t\t\t}\n\t\t} );\n\t},\n\n\tbefore: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this );\n\t\t\t}\n\t\t} );\n\t},\n\n\tafter: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this.nextSibling );\n\t\t\t}\n\t\t} );\n\t},\n\n\tempty: function() {\n\t\tvar elem,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = this[ i ] ) != null; i++ ) {\n\t\t\tif ( elem.nodeType === 1 ) {\n\n\t\t\t\t// Prevent memory leaks\n\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\n\t\t\t\t// Remove any remaining nodes\n\t\t\t\telem.textContent = "";\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tclone: function( dataAndEvents, deepDataAndEvents ) {\n\t\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n\t\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n\n\t\treturn this.map( function() {\n\t\t\treturn jQuery.clone( this, dataAndEvents, deepDataAndEvents );\n\t\t} );\n\t},\n\n\thtml: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\tvar elem = this[ 0 ] || {},\n\t\t\t\ti = 0,\n\t\t\t\tl = this.length;\n\n\t\t\tif ( value === undefined && elem.nodeType === 1 ) {\n\t\t\t\treturn elem.innerHTML;\n\t\t\t}\n\n\t\t\t// See if we can take a shortcut and just use innerHTML\n\t\t\tif ( typeof value === "string" && !rnoInnerhtml.test( value ) &&\n\t\t\t\t!wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) {\n\n\t\t\t\tvalue = jQuery.htmlPrefilter( value );\n\n\t\t\t\ttry {\n\t\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\t\telem = this[ i ] || {};\n\n\t\t\t\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t\t\t\t\telem.innerHTML = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\telem = 0;\n\n\t\t\t\t// If using innerHTML throws an exception, use the fallback method\n\t\t\t\t} catch ( e ) {}\n\t\t\t}\n\n\t\t\tif ( elem ) {\n\t\t\t\tthis.empty().append( value );\n\t\t\t}\n\t\t}, null, value, arguments.length );\n\t},\n\n\treplaceWith: function() {\n\t\tvar ignored = [];\n\n\t\t// Make the changes, replacing each non-ignored context element with the new content\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tvar parent = this.parentNode;\n\n\t\t\tif ( jQuery.inArray( this, ignored ) < 0 ) {\n\t\t\t\tjQuery.cleanData( getAll( this ) );\n\t\t\t\tif ( parent ) {\n\t\t\t\t\tparent.replaceChild( elem, this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Force callback invocation\n\t\t}, ignored );\n\t}\n} );\n\njQuery.each( {\n\tappendTo: "append",\n\tprependTo: "prepend",\n\tinsertBefore: "before",\n\tinsertAfter: "after",\n\treplaceAll: "replaceWith"\n}, function( name, original ) {\n\tjQuery.fn[ name ] = function( selector ) {\n\t\tvar elems,\n\t\t\tret = [],\n\t\t\tinsert = jQuery( selector ),\n\t\t\tlast = insert.length - 1,\n\t\t\ti = 0;\n\n\t\tfor ( ; i <= last; i++ ) {\n\t\t\telems = i === last ? this : this.clone( true );\n\t\t\tjQuery( insert[ i ] )[ original ]( elems );\n\n\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t// .get() because push.apply(_, arraylike) throws on ancient WebKit\n\t\t\tpush.apply( ret, elems.get() );\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n} );\nvar rmargin = ( /^margin/ );\n\nvar rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" );\n\nvar getStyles = function( elem ) {\n\n\t\t// Support: IE <=11 only, Firefox <=30 (#15098, #14150)\n\t\t// IE throws on elements created in popups\n\t\t// FF meanwhile throws on frame elements through "defaultView.getComputedStyle"\n\t\tvar view = elem.ownerDocument.defaultView;\n\n\t\tif ( !view || !view.opener ) {\n\t\t\tview = window;\n\t\t}\n\n\t\treturn view.getComputedStyle( elem );\n\t};\n\n\n\n( function() {\n\n\t// Executing both pixelPosition & boxSizingReliable tests require only one layout\n\t// so they\'re executed at the same time to save the second computation.\n\tfunction computeStyleTests() {\n\n\t\t// This is a singleton, we need to execute it only once\n\t\tif ( !div ) {\n\t\t\treturn;\n\t\t}\n\n\t\tdiv.style.cssText =\n\t\t\t"box-sizing:border-box;" +\n\t\t\t"position:relative;display:block;" +\n\t\t\t"margin:auto;border:1px;padding:1px;" +\n\t\t\t"top:1%;width:50%";\n\t\tdiv.innerHTML = "";\n\t\tdocumentElement.appendChild( container );\n\n\t\tvar divStyle = window.getComputedStyle( div );\n\t\tpixelPositionVal = divStyle.top !== "1%";\n\n\t\t// Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n\t\treliableMarginLeftVal = divStyle.marginLeft === "2px";\n\t\tboxSizingReliableVal = divStyle.width === "4px";\n\n\t\t// Support: Android 4.0 - 4.3 only\n\t\t// Some styles come back with percentage values, even though they shouldn\'t\n\t\tdiv.style.marginRight = "50%";\n\t\tpixelMarginRightVal = divStyle.marginRight === "4px";\n\n\t\tdocumentElement.removeChild( container );\n\n\t\t// Nullify the div so it wouldn\'t be stored in the memory and\n\t\t// it will also be a sign that checks already performed\n\t\tdiv = null;\n\t}\n\n\tvar pixelPositionVal, boxSizingReliableVal, pixelMarginRightVal, reliableMarginLeftVal,\n\t\tcontainer = document.createElement( "div" ),\n\t\tdiv = document.createElement( "div" );\n\n\t// Finish early in limited (non-browser) environments\n\tif ( !div.style ) {\n\t\treturn;\n\t}\n\n\t// Support: IE <=9 - 11 only\n\t// Style of cloned element affects source element cloned (#8908)\n\tdiv.style.backgroundClip = "content-box";\n\tdiv.cloneNode( true ).style.backgroundClip = "";\n\tsupport.clearCloneStyle = div.style.backgroundClip === "content-box";\n\n\tcontainer.style.cssText = "border:0;width:8px;height:0;top:0;left:-9999px;" +\n\t\t"padding:0;margin-top:1px;position:absolute";\n\tcontainer.appendChild( div );\n\n\tjQuery.extend( support, {\n\t\tpixelPosition: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelPositionVal;\n\t\t},\n\t\tboxSizingReliable: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn boxSizingReliableVal;\n\t\t},\n\t\tpixelMarginRight: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelMarginRightVal;\n\t\t},\n\t\treliableMarginLeft: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn reliableMarginLeftVal;\n\t\t}\n\t} );\n} )();\n\n\nfunction curCSS( elem, name, computed ) {\n\tvar width, minWidth, maxWidth, ret,\n\t\tstyle = elem.style;\n\n\tcomputed = computed || getStyles( elem );\n\n\t// Support: IE <=9 only\n\t// getPropertyValue is only needed for .css(\'filter\') (#12537)\n\tif ( computed ) {\n\t\tret = computed.getPropertyValue( name ) || computed[ name ];\n\n\t\tif ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) {\n\t\t\tret = jQuery.style( elem, name );\n\t\t}\n\n\t\t// A tribute to the "awesome hack by Dean Edwards"\n\t\t// Android Browser returns percentage for some values,\n\t\t// but width seems to be reliably pixels.\n\t\t// This is against the CSSOM draft spec:\n\t\t// https://drafts.csswg.org/cssom/#resolved-values\n\t\tif ( !support.pixelMarginRight() && rnumnonpx.test( ret ) && rmargin.test( name ) ) {\n\n\t\t\t// Remember the original values\n\t\t\twidth = style.width;\n\t\t\tminWidth = style.minWidth;\n\t\t\tmaxWidth = style.maxWidth;\n\n\t\t\t// Put in the new values to get a computed value out\n\t\t\tstyle.minWidth = style.maxWidth = style.width = ret;\n\t\t\tret = computed.width;\n\n\t\t\t// Revert the changed values\n\t\t\tstyle.width = width;\n\t\t\tstyle.minWidth = minWidth;\n\t\t\tstyle.maxWidth = maxWidth;\n\t\t}\n\t}\n\n\treturn ret !== undefined ?\n\n\t\t// Support: IE <=9 - 11 only\n\t\t// IE returns zIndex value as an integer.\n\t\tret + "" :\n\t\tret;\n}\n\n\nfunction addGetHookIf( conditionFn, hookFn ) {\n\n\t// Define the hook, we\'ll check on the first run if it\'s really needed.\n\treturn {\n\t\tget: function() {\n\t\t\tif ( conditionFn() ) {\n\n\t\t\t\t// Hook not needed (or it\'s not possible to use it due\n\t\t\t\t// to missing dependency), remove it.\n\t\t\t\tdelete this.get;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Hook needed; redefine it so that the support test is not executed again.\n\t\t\treturn ( this.get = hookFn ).apply( this, arguments );\n\t\t}\n\t};\n}\n\n\nvar\n\n\t// Swappable if display is none or starts with table\n\t// except "table", "table-cell", or "table-caption"\n\t// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n\trdisplayswap = /^(none|table(?!-c[ea]).+)/,\n\tcssShow = { position: "absolute", visibility: "hidden", display: "block" },\n\tcssNormalTransform = {\n\t\tletterSpacing: "0",\n\t\tfontWeight: "400"\n\t},\n\n\tcssPrefixes = [ "Webkit", "Moz", "ms" ],\n\temptyStyle = document.createElement( "div" ).style;\n\n// Return a css property mapped to a potentially vendor prefixed property\nfunction vendorPropName( name ) {\n\n\t// Shortcut for names that are not vendor prefixed\n\tif ( name in emptyStyle ) {\n\t\treturn name;\n\t}\n\n\t// Check for vendor prefixed names\n\tvar capName = name[ 0 ].toUpperCase() + name.slice( 1 ),\n\t\ti = cssPrefixes.length;\n\n\twhile ( i-- ) {\n\t\tname = cssPrefixes[ i ] + capName;\n\t\tif ( name in emptyStyle ) {\n\t\t\treturn name;\n\t\t}\n\t}\n}\n\nfunction setPositiveNumber( elem, value, subtract ) {\n\n\t// Any relative (+/-) values have already been\n\t// normalized at this point\n\tvar matches = rcssNum.exec( value );\n\treturn matches ?\n\n\t\t// Guard against undefined "subtract", e.g., when used as in cssHooks\n\t\tMath.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || "px" ) :\n\t\tvalue;\n}\n\nfunction augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) {\n\tvar i,\n\t\tval = 0;\n\n\t// If we already have the right measurement, avoid augmentation\n\tif ( extra === ( isBorderBox ? "border" : "content" ) ) {\n\t\ti = 4;\n\n\t// Otherwise initialize for horizontal or vertical properties\n\t} else {\n\t\ti = name === "width" ? 1 : 0;\n\t}\n\n\tfor ( ; i < 4; i += 2 ) {\n\n\t\t// Both box models exclude margin, so add it if we want it\n\t\tif ( extra === "margin" ) {\n\t\t\tval += jQuery.css( elem, extra + cssExpand[ i ], true, styles );\n\t\t}\n\n\t\tif ( isBorderBox ) {\n\n\t\t\t// border-box includes padding, so remove it if we want content\n\t\t\tif ( extra === "content" ) {\n\t\t\t\tval -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );\n\t\t\t}\n\n\t\t\t// At this point, extra isn\'t border nor margin, so remove border\n\t\t\tif ( extra !== "margin" ) {\n\t\t\t\tval -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );\n\t\t\t}\n\t\t} else {\n\n\t\t\t// At this point, extra isn\'t content, so add padding\n\t\t\tval += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );\n\n\t\t\t// At this point, extra isn\'t content nor padding, so add border\n\t\t\tif ( extra !== "padding" ) {\n\t\t\t\tval += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );\n\t\t\t}\n\t\t}\n\t}\n\n\treturn val;\n}\n\nfunction getWidthOrHeight( elem, name, extra ) {\n\n\t// Start with offset property, which is equivalent to the border-box value\n\tvar val,\n\t\tvalueIsBorderBox = true,\n\t\tstyles = getStyles( elem ),\n\t\tisBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box";\n\n\t// Support: IE <=11 only\n\t// Running getBoundingClientRect on a disconnected node\n\t// in IE throws an error.\n\tif ( elem.getClientRects().length ) {\n\t\tval = elem.getBoundingClientRect()[ name ];\n\t}\n\n\t// Some non-html elements return undefined for offsetWidth, so check for null/undefined\n\t// svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285\n\t// MathML - https://bugzilla.mozilla.org/show_bug.cgi?id=491668\n\tif ( val <= 0 || val == null ) {\n\n\t\t// Fall back to computed then uncomputed css if necessary\n\t\tval = curCSS( elem, name, styles );\n\t\tif ( val < 0 || val == null ) {\n\t\t\tval = elem.style[ name ];\n\t\t}\n\n\t\t// Computed unit is not pixels. Stop here and return.\n\t\tif ( rnumnonpx.test( val ) ) {\n\t\t\treturn val;\n\t\t}\n\n\t\t// Check for style in case a browser which returns unreliable values\n\t\t// for getComputedStyle silently falls back to the reliable elem.style\n\t\tvalueIsBorderBox = isBorderBox &&\n\t\t\t( support.boxSizingReliable() || val === elem.style[ name ] );\n\n\t\t// Normalize "", auto, and prepare for extra\n\t\tval = parseFloat( val ) || 0;\n\t}\n\n\t// Use the active box-sizing model to add/subtract irrelevant styles\n\treturn ( val +\n\t\taugmentWidthOrHeight(\n\t\t\telem,\n\t\t\tname,\n\t\t\textra || ( isBorderBox ? "border" : "content" ),\n\t\t\tvalueIsBorderBox,\n\t\t\tstyles\n\t\t)\n\t) + "px";\n}\n\njQuery.extend( {\n\n\t// Add in style property hooks for overriding the default\n\t// behavior of getting and setting a style property\n\tcssHooks: {\n\t\topacity: {\n\t\t\tget: function( elem, computed ) {\n\t\t\t\tif ( computed ) {\n\n\t\t\t\t\t// We should always get a number back from opacity\n\t\t\t\t\tvar ret = curCSS( elem, "opacity" );\n\t\t\t\t\treturn ret === "" ? "1" : ret;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t// Don\'t automatically add "px" to these possibly-unitless properties\n\tcssNumber: {\n\t\t"animationIterationCount": true,\n\t\t"columnCount": true,\n\t\t"fillOpacity": true,\n\t\t"flexGrow": true,\n\t\t"flexShrink": true,\n\t\t"fontWeight": true,\n\t\t"lineHeight": true,\n\t\t"opacity": true,\n\t\t"order": true,\n\t\t"orphans": true,\n\t\t"widows": true,\n\t\t"zIndex": true,\n\t\t"zoom": true\n\t},\n\n\t// Add in properties whose names you wish to fix before\n\t// setting or getting the value\n\tcssProps: {\n\t\t"float": "cssFloat"\n\t},\n\n\t// Get and set the style property on a DOM Node\n\tstyle: function( elem, name, value, extra ) {\n\n\t\t// Don\'t set styles on text and comment nodes\n\t\tif ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Make sure that we\'re working with the right name\n\t\tvar ret, type, hooks,\n\t\t\torigName = jQuery.camelCase( name ),\n\t\t\tstyle = elem.style;\n\n\t\tname = jQuery.cssProps[ origName ] ||\n\t\t\t( jQuery.cssProps[ origName ] = vendorPropName( origName ) || origName );\n\n\t\t// Gets hook for the prefixed version, then unprefixed version\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// Check if we\'re setting a value\n\t\tif ( value !== undefined ) {\n\t\t\ttype = typeof value;\n\n\t\t\t// Convert "+=" or "-=" to relative numbers (#7345)\n\t\t\tif ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {\n\t\t\t\tvalue = adjustCSS( elem, name, ret );\n\n\t\t\t\t// Fixes bug #9237\n\t\t\t\ttype = "number";\n\t\t\t}\n\n\t\t\t// Make sure that null and NaN values aren\'t set (#7116)\n\t\t\tif ( value == null || value !== value ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If a number was passed in, add the unit (except for certain CSS properties)\n\t\t\tif ( type === "number" ) {\n\t\t\t\tvalue += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" );\n\t\t\t}\n\n\t\t\t// background-* props affect original clone\'s values\n\t\t\tif ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) {\n\t\t\t\tstyle[ name ] = "inherit";\n\t\t\t}\n\n\t\t\t// If a hook was provided, use that value, otherwise just set the specified value\n\t\t\tif ( !hooks || !( "set" in hooks ) ||\n\t\t\t\t( value = hooks.set( elem, value, extra ) ) !== undefined ) {\n\n\t\t\t\tstyle[ name ] = value;\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// If a hook was provided get the non-computed value from there\n\t\t\tif ( hooks && "get" in hooks &&\n\t\t\t\t( ret = hooks.get( elem, false, extra ) ) !== undefined ) {\n\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\t// Otherwise just get the value from the style object\n\t\t\treturn style[ name ];\n\t\t}\n\t},\n\n\tcss: function( elem, name, extra, styles ) {\n\t\tvar val, num, hooks,\n\t\t\torigName = jQuery.camelCase( name );\n\n\t\t// Make sure that we\'re working with the right name\n\t\tname = jQuery.cssProps[ origName ] ||\n\t\t\t( jQuery.cssProps[ origName ] = vendorPropName( origName ) || origName );\n\n\t\t// Try prefixed name followed by the unprefixed name\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// If a hook was provided get the computed value from there\n\t\tif ( hooks && "get" in hooks ) {\n\t\t\tval = hooks.get( elem, true, extra );\n\t\t}\n\n\t\t// Otherwise, if a way to get the computed value exists, use that\n\t\tif ( val === undefined ) {\n\t\t\tval = curCSS( elem, name, styles );\n\t\t}\n\n\t\t// Convert "normal" to computed value\n\t\tif ( val === "normal" && name in cssNormalTransform ) {\n\t\t\tval = cssNormalTransform[ name ];\n\t\t}\n\n\t\t// Make numeric if forced or a qualifier was provided and val looks numeric\n\t\tif ( extra === "" || extra ) {\n\t\t\tnum = parseFloat( val );\n\t\t\treturn extra === true || isFinite( num ) ? num || 0 : val;\n\t\t}\n\t\treturn val;\n\t}\n} );\n\njQuery.each( [ "height", "width" ], function( i, name ) {\n\tjQuery.cssHooks[ name ] = {\n\t\tget: function( elem, computed, extra ) {\n\t\t\tif ( computed ) {\n\n\t\t\t\t// Certain elements can have dimension info if we invisibly show them\n\t\t\t\t// but it must have a current display style that would benefit\n\t\t\t\treturn rdisplayswap.test( jQuery.css( elem, "display" ) ) &&\n\n\t\t\t\t\t// Support: Safari 8+\n\t\t\t\t\t// Table columns in Safari have non-zero offsetWidth & zero\n\t\t\t\t\t// getBoundingClientRect().width unless display is changed.\n\t\t\t\t\t// Support: IE <=11 only\n\t\t\t\t\t// Running getBoundingClientRect on a disconnected node\n\t\t\t\t\t// in IE throws an error.\n\t\t\t\t\t( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?\n\t\t\t\t\t\tswap( elem, cssShow, function() {\n\t\t\t\t\t\t\treturn getWidthOrHeight( elem, name, extra );\n\t\t\t\t\t\t} ) :\n\t\t\t\t\t\tgetWidthOrHeight( elem, name, extra );\n\t\t\t}\n\t\t},\n\n\t\tset: function( elem, value, extra ) {\n\t\t\tvar matches,\n\t\t\t\tstyles = extra && getStyles( elem ),\n\t\t\t\tsubtract = extra && augmentWidthOrHeight(\n\t\t\t\t\telem,\n\t\t\t\t\tname,\n\t\t\t\t\textra,\n\t\t\t\t\tjQuery.css( elem, "boxSizing", false, styles ) === "border-box",\n\t\t\t\t\tstyles\n\t\t\t\t);\n\n\t\t\t// Convert to pixels if value adjustment is needed\n\t\t\tif ( subtract && ( matches = rcssNum.exec( value ) ) &&\n\t\t\t\t( matches[ 3 ] || "px" ) !== "px" ) {\n\n\t\t\t\telem.style[ name ] = value;\n\t\t\t\tvalue = jQuery.css( elem, name );\n\t\t\t}\n\n\t\t\treturn setPositiveNumber( elem, value, subtract );\n\t\t}\n\t};\n} );\n\njQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,\n\tfunction( elem, computed ) {\n\t\tif ( computed ) {\n\t\t\treturn ( parseFloat( curCSS( elem, "marginLeft" ) ) ||\n\t\t\t\telem.getBoundingClientRect().left -\n\t\t\t\t\tswap( elem, { marginLeft: 0 }, function() {\n\t\t\t\t\t\treturn elem.getBoundingClientRect().left;\n\t\t\t\t\t} )\n\t\t\t\t) + "px";\n\t\t}\n\t}\n);\n\n// These hooks are used by animate to expand properties\njQuery.each( {\n\tmargin: "",\n\tpadding: "",\n\tborder: "Width"\n}, function( prefix, suffix ) {\n\tjQuery.cssHooks[ prefix + suffix ] = {\n\t\texpand: function( value ) {\n\t\t\tvar i = 0,\n\t\t\t\texpanded = {},\n\n\t\t\t\t// Assumes a single number if not a string\n\t\t\t\tparts = typeof value === "string" ? value.split( " " ) : [ value ];\n\n\t\t\tfor ( ; i < 4; i++ ) {\n\t\t\t\texpanded[ prefix + cssExpand[ i ] + suffix ] =\n\t\t\t\t\tparts[ i ] || parts[ i - 2 ] || parts[ 0 ];\n\t\t\t}\n\n\t\t\treturn expanded;\n\t\t}\n\t};\n\n\tif ( !rmargin.test( prefix ) ) {\n\t\tjQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;\n\t}\n} );\n\njQuery.fn.extend( {\n\tcss: function( name, value ) {\n\t\treturn access( this, function( elem, name, value ) {\n\t\t\tvar styles, len,\n\t\t\t\tmap = {},\n\t\t\t\ti = 0;\n\n\t\t\tif ( jQuery.isArray( name ) ) {\n\t\t\t\tstyles = getStyles( elem );\n\t\t\t\tlen = name.length;\n\n\t\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t\tmap[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );\n\t\t\t\t}\n\n\t\t\t\treturn map;\n\t\t\t}\n\n\t\t\treturn value !== undefined ?\n\t\t\t\tjQuery.style( elem, name, value ) :\n\t\t\t\tjQuery.css( elem, name );\n\t\t}, name, value, arguments.length > 1 );\n\t}\n} );\n\n\nfunction Tween( elem, options, prop, end, easing ) {\n\treturn new Tween.prototype.init( elem, options, prop, end, easing );\n}\njQuery.Tween = Tween;\n\nTween.prototype = {\n\tconstructor: Tween,\n\tinit: function( elem, options, prop, end, easing, unit ) {\n\t\tthis.elem = elem;\n\t\tthis.prop = prop;\n\t\tthis.easing = easing || jQuery.easing._default;\n\t\tthis.options = options;\n\t\tthis.start = this.now = this.cur();\n\t\tthis.end = end;\n\t\tthis.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" );\n\t},\n\tcur: function() {\n\t\tvar hooks = Tween.propHooks[ this.prop ];\n\n\t\treturn hooks && hooks.get ?\n\t\t\thooks.get( this ) :\n\t\t\tTween.propHooks._default.get( this );\n\t},\n\trun: function( percent ) {\n\t\tvar eased,\n\t\t\thooks = Tween.propHooks[ this.prop ];\n\n\t\tif ( this.options.duration ) {\n\t\t\tthis.pos = eased = jQuery.easing[ this.easing ](\n\t\t\t\tpercent, this.options.duration * percent, 0, 1, this.options.duration\n\t\t\t);\n\t\t} else {\n\t\t\tthis.pos = eased = percent;\n\t\t}\n\t\tthis.now = ( this.end - this.start ) * eased + this.start;\n\n\t\tif ( this.options.step ) {\n\t\t\tthis.options.step.call( this.elem, this.now, this );\n\t\t}\n\n\t\tif ( hooks && hooks.set ) {\n\t\t\thooks.set( this );\n\t\t} else {\n\t\t\tTween.propHooks._default.set( this );\n\t\t}\n\t\treturn this;\n\t}\n};\n\nTween.prototype.init.prototype = Tween.prototype;\n\nTween.propHooks = {\n\t_default: {\n\t\tget: function( tween ) {\n\t\t\tvar result;\n\n\t\t\t// Use a property on the element directly when it is not a DOM element,\n\t\t\t// or when there is no matching style property that exists.\n\t\t\tif ( tween.elem.nodeType !== 1 ||\n\t\t\t\ttween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {\n\t\t\t\treturn tween.elem[ tween.prop ];\n\t\t\t}\n\n\t\t\t// Passing an empty string as a 3rd parameter to .css will automatically\n\t\t\t// attempt a parseFloat and fallback to a string if the parse fails.\n\t\t\t// Simple values such as "10px" are parsed to Float;\n\t\t\t// complex values such as "rotate(1rad)" are returned as-is.\n\t\t\tresult = jQuery.css( tween.elem, tween.prop, "" );\n\n\t\t\t// Empty strings, null, undefined and "auto" are converted to 0.\n\t\t\treturn !result || result === "auto" ? 0 : result;\n\t\t},\n\t\tset: function( tween ) {\n\n\t\t\t// Use step hook for back compat.\n\t\t\t// Use cssHook if its there.\n\t\t\t// Use .style if available and use plain properties where available.\n\t\t\tif ( jQuery.fx.step[ tween.prop ] ) {\n\t\t\t\tjQuery.fx.step[ tween.prop ]( tween );\n\t\t\t} else if ( tween.elem.nodeType === 1 &&\n\t\t\t\t( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null ||\n\t\t\t\t\tjQuery.cssHooks[ tween.prop ] ) ) {\n\t\t\t\tjQuery.style( tween.elem, tween.prop, tween.now + tween.unit );\n\t\t\t} else {\n\t\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Support: IE <=9 only\n// Panic based approach to setting things on disconnected nodes\nTween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n\tset: function( tween ) {\n\t\tif ( tween.elem.nodeType && tween.elem.parentNode ) {\n\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t}\n\t}\n};\n\njQuery.easing = {\n\tlinear: function( p ) {\n\t\treturn p;\n\t},\n\tswing: function( p ) {\n\t\treturn 0.5 - Math.cos( p * Math.PI ) / 2;\n\t},\n\t_default: "swing"\n};\n\njQuery.fx = Tween.prototype.init;\n\n// Back compat <1.8 extension point\njQuery.fx.step = {};\n\n\n\n\nvar\n\tfxNow, timerId,\n\trfxtypes = /^(?:toggle|show|hide)$/,\n\trrun = /queueHooks$/;\n\nfunction raf() {\n\tif ( timerId ) {\n\t\twindow.requestAnimationFrame( raf );\n\t\tjQuery.fx.tick();\n\t}\n}\n\n// Animations created synchronously will run synchronously\nfunction createFxNow() {\n\twindow.setTimeout( function() {\n\t\tfxNow = undefined;\n\t} );\n\treturn ( fxNow = jQuery.now() );\n}\n\n// Generate parameters to create a standard animation\nfunction genFx( type, includeWidth ) {\n\tvar which,\n\t\ti = 0,\n\t\tattrs = { height: type };\n\n\t// If we include width, step value is 1 to do all cssExpand values,\n\t// otherwise step value is 2 to skip over Left and Right\n\tincludeWidth = includeWidth ? 1 : 0;\n\tfor ( ; i < 4; i += 2 - includeWidth ) {\n\t\twhich = cssExpand[ i ];\n\t\tattrs[ "margin" + which ] = attrs[ "padding" + which ] = type;\n\t}\n\n\tif ( includeWidth ) {\n\t\tattrs.opacity = attrs.width = type;\n\t}\n\n\treturn attrs;\n}\n\nfunction createTween( value, prop, animation ) {\n\tvar tween,\n\t\tcollection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ "*" ] ),\n\t\tindex = 0,\n\t\tlength = collection.length;\n\tfor ( ; index < length; index++ ) {\n\t\tif ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {\n\n\t\t\t// We\'re done with this property\n\t\t\treturn tween;\n\t\t}\n\t}\n}\n\nfunction defaultPrefilter( elem, props, opts ) {\n\tvar prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display,\n\t\tisBox = "width" in props || "height" in props,\n\t\tanim = this,\n\t\torig = {},\n\t\tstyle = elem.style,\n\t\thidden = elem.nodeType && isHiddenWithinTree( elem ),\n\t\tdataShow = dataPriv.get( elem, "fxshow" );\n\n\t// Queue-skipping animations hijack the fx hooks\n\tif ( !opts.queue ) {\n\t\thooks = jQuery._queueHooks( elem, "fx" );\n\t\tif ( hooks.unqueued == null ) {\n\t\t\thooks.unqueued = 0;\n\t\t\toldfire = hooks.empty.fire;\n\t\t\thooks.empty.fire = function() {\n\t\t\t\tif ( !hooks.unqueued ) {\n\t\t\t\t\toldfire();\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\thooks.unqueued++;\n\n\t\tanim.always( function() {\n\n\t\t\t// Ensure the complete handler is called before this completes\n\t\t\tanim.always( function() {\n\t\t\t\thooks.unqueued--;\n\t\t\t\tif ( !jQuery.queue( elem, "fx" ).length ) {\n\t\t\t\t\thooks.empty.fire();\n\t\t\t\t}\n\t\t\t} );\n\t\t} );\n\t}\n\n\t// Detect show/hide animations\n\tfor ( prop in props ) {\n\t\tvalue = props[ prop ];\n\t\tif ( rfxtypes.test( value ) ) {\n\t\t\tdelete props[ prop ];\n\t\t\ttoggle = toggle || value === "toggle";\n\t\t\tif ( value === ( hidden ? "hide" : "show" ) ) {\n\n\t\t\t\t// Pretend to be hidden if this is a "show" and\n\t\t\t\t// there is still data from a stopped show/hide\n\t\t\t\tif ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) {\n\t\t\t\t\thidden = true;\n\n\t\t\t\t// Ignore all other no-op show/hide data\n\t\t\t\t} else {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\torig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );\n\t\t}\n\t}\n\n\t// Bail out if this is a no-op like .hide().hide()\n\tpropTween = !jQuery.isEmptyObject( props );\n\tif ( !propTween && jQuery.isEmptyObject( orig ) ) {\n\t\treturn;\n\t}\n\n\t// Restrict "overflow" and "display" styles during box animations\n\tif ( isBox && elem.nodeType === 1 ) {\n\n\t\t// Support: IE <=9 - 11, Edge 12 - 13\n\t\t// Record all 3 overflow attributes because IE does not infer the shorthand\n\t\t// from identically-valued overflowX and overflowY\n\t\topts.overflow = [ style.overflow, style.overflowX, style.overflowY ];\n\n\t\t// Identify a display type, preferring old show/hide data over the CSS cascade\n\t\trestoreDisplay = dataShow && dataShow.display;\n\t\tif ( restoreDisplay == null ) {\n\t\t\trestoreDisplay = dataPriv.get( elem, "display" );\n\t\t}\n\t\tdisplay = jQuery.css( elem, "display" );\n\t\tif ( display === "none" ) {\n\t\t\tif ( restoreDisplay ) {\n\t\t\t\tdisplay = restoreDisplay;\n\t\t\t} else {\n\n\t\t\t\t// Get nonempty value(s) by temporarily forcing visibility\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t\trestoreDisplay = elem.style.display || restoreDisplay;\n\t\t\t\tdisplay = jQuery.css( elem, "display" );\n\t\t\t\tshowHide( [ elem ] );\n\t\t\t}\n\t\t}\n\n\t\t// Animate inline elements as inline-block\n\t\tif ( display === "inline" || display === "inline-block" && restoreDisplay != null ) {\n\t\t\tif ( jQuery.css( elem, "float" ) === "none" ) {\n\n\t\t\t\t// Restore the original display value at the end of pure show/hide animations\n\t\t\t\tif ( !propTween ) {\n\t\t\t\t\tanim.done( function() {\n\t\t\t\t\t\tstyle.display = restoreDisplay;\n\t\t\t\t\t} );\n\t\t\t\t\tif ( restoreDisplay == null ) {\n\t\t\t\t\t\tdisplay = style.display;\n\t\t\t\t\t\trestoreDisplay = display === "none" ? "" : display;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tstyle.display = "inline-block";\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( opts.overflow ) {\n\t\tstyle.overflow = "hidden";\n\t\tanim.always( function() {\n\t\t\tstyle.overflow = opts.overflow[ 0 ];\n\t\t\tstyle.overflowX = opts.overflow[ 1 ];\n\t\t\tstyle.overflowY = opts.overflow[ 2 ];\n\t\t} );\n\t}\n\n\t// Implement show/hide animations\n\tpropTween = false;\n\tfor ( prop in orig ) {\n\n\t\t// General show/hide setup for this element animation\n\t\tif ( !propTween ) {\n\t\t\tif ( dataShow ) {\n\t\t\t\tif ( "hidden" in dataShow ) {\n\t\t\t\t\thidden = dataShow.hidden;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdataShow = dataPriv.access( elem, "fxshow", { display: restoreDisplay } );\n\t\t\t}\n\n\t\t\t// Store hidden/visible for toggle so `.stop().toggle()` "reverses"\n\t\t\tif ( toggle ) {\n\t\t\t\tdataShow.hidden = !hidden;\n\t\t\t}\n\n\t\t\t// Show elements before animating them\n\t\t\tif ( hidden ) {\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t}\n\n\t\t\t/* eslint-disable no-loop-func */\n\n\t\t\tanim.done( function() {\n\n\t\t\t/* eslint-enable no-loop-func */\n\n\t\t\t\t// The final step of a "hide" animation is actually hiding the element\n\t\t\t\tif ( !hidden ) {\n\t\t\t\t\tshowHide( [ elem ] );\n\t\t\t\t}\n\t\t\t\tdataPriv.remove( elem, "fxshow" );\n\t\t\t\tfor ( prop in orig ) {\n\t\t\t\t\tjQuery.style( elem, prop, orig[ prop ] );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\t// Per-property setup\n\t\tpropTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );\n\t\tif ( !( prop in dataShow ) ) {\n\t\t\tdataShow[ prop ] = propTween.start;\n\t\t\tif ( hidden ) {\n\t\t\t\tpropTween.end = propTween.start;\n\t\t\t\tpropTween.start = 0;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction propFilter( props, specialEasing ) {\n\tvar index, name, easing, value, hooks;\n\n\t// camelCase, specialEasing and expand cssHook pass\n\tfor ( index in props ) {\n\t\tname = jQuery.camelCase( index );\n\t\teasing = specialEasing[ name ];\n\t\tvalue = props[ index ];\n\t\tif ( jQuery.isArray( value ) ) {\n\t\t\teasing = value[ 1 ];\n\t\t\tvalue = props[ index ] = value[ 0 ];\n\t\t}\n\n\t\tif ( index !== name ) {\n\t\t\tprops[ name ] = value;\n\t\t\tdelete props[ index ];\n\t\t}\n\n\t\thooks = jQuery.cssHooks[ name ];\n\t\tif ( hooks && "expand" in hooks ) {\n\t\t\tvalue = hooks.expand( value );\n\t\t\tdelete props[ name ];\n\n\t\t\t// Not quite $.extend, this won\'t overwrite existing keys.\n\t\t\t// Reusing \'index\' because we have the correct "name"\n\t\t\tfor ( index in value ) {\n\t\t\t\tif ( !( index in props ) ) {\n\t\t\t\t\tprops[ index ] = value[ index ];\n\t\t\t\t\tspecialEasing[ index ] = easing;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tspecialEasing[ name ] = easing;\n\t\t}\n\t}\n}\n\nfunction Animation( elem, properties, options ) {\n\tvar result,\n\t\tstopped,\n\t\tindex = 0,\n\t\tlength = Animation.prefilters.length,\n\t\tdeferred = jQuery.Deferred().always( function() {\n\n\t\t\t// Don\'t match elem in the :animated selector\n\t\t\tdelete tick.elem;\n\t\t} ),\n\t\ttick = function() {\n\t\t\tif ( stopped ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tvar currentTime = fxNow || createFxNow(),\n\t\t\t\tremaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),\n\n\t\t\t\t// Support: Android 2.3 only\n\t\t\t\t// Archaic crash bug won\'t allow us to use `1 - ( 0.5 || 0 )` (#12497)\n\t\t\t\ttemp = remaining / animation.duration || 0,\n\t\t\t\tpercent = 1 - temp,\n\t\t\t\tindex = 0,\n\t\t\t\tlength = animation.tweens.length;\n\n\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\tanimation.tweens[ index ].run( percent );\n\t\t\t}\n\n\t\t\tdeferred.notifyWith( elem, [ animation, percent, remaining ] );\n\n\t\t\tif ( percent < 1 && length ) {\n\t\t\t\treturn remaining;\n\t\t\t} else {\n\t\t\t\tdeferred.resolveWith( elem, [ animation ] );\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\t\tanimation = deferred.promise( {\n\t\t\telem: elem,\n\t\t\tprops: jQuery.extend( {}, properties ),\n\t\t\topts: jQuery.extend( true, {\n\t\t\t\tspecialEasing: {},\n\t\t\t\teasing: jQuery.easing._default\n\t\t\t}, options ),\n\t\t\toriginalProperties: properties,\n\t\t\toriginalOptions: options,\n\t\t\tstartTime: fxNow || createFxNow(),\n\t\t\tduration: options.duration,\n\t\t\ttweens: [],\n\t\t\tcreateTween: function( prop, end ) {\n\t\t\t\tvar tween = jQuery.Tween( elem, animation.opts, prop, end,\n\t\t\t\t\t\tanimation.opts.specialEasing[ prop ] || animation.opts.easing );\n\t\t\t\tanimation.tweens.push( tween );\n\t\t\t\treturn tween;\n\t\t\t},\n\t\t\tstop: function( gotoEnd ) {\n\t\t\t\tvar index = 0,\n\n\t\t\t\t\t// If we are going to the end, we want to run all the tweens\n\t\t\t\t\t// otherwise we skip this part\n\t\t\t\t\tlength = gotoEnd ? animation.tweens.length : 0;\n\t\t\t\tif ( stopped ) {\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t\tstopped = true;\n\t\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\t\tanimation.tweens[ index ].run( 1 );\n\t\t\t\t}\n\n\t\t\t\t// Resolve when we played the last frame; otherwise, reject\n\t\t\t\tif ( gotoEnd ) {\n\t\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t\t\tdeferred.resolveWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t} else {\n\t\t\t\t\tdeferred.rejectWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t}\n\t\t} ),\n\t\tprops = animation.props;\n\n\tpropFilter( props, animation.opts.specialEasing );\n\n\tfor ( ; index < length; index++ ) {\n\t\tresult = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );\n\t\tif ( result ) {\n\t\t\tif ( jQuery.isFunction( result.stop ) ) {\n\t\t\t\tjQuery._queueHooks( animation.elem, animation.opts.queue ).stop =\n\t\t\t\t\tjQuery.proxy( result.stop, result );\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\t}\n\n\tjQuery.map( props, createTween, animation );\n\n\tif ( jQuery.isFunction( animation.opts.start ) ) {\n\t\tanimation.opts.start.call( elem, animation );\n\t}\n\n\tjQuery.fx.timer(\n\t\tjQuery.extend( tick, {\n\t\t\telem: elem,\n\t\t\tanim: animation,\n\t\t\tqueue: animation.opts.queue\n\t\t} )\n\t);\n\n\t// attach callbacks from options\n\treturn animation.progress( animation.opts.progress )\n\t\t.done( animation.opts.done, animation.opts.complete )\n\t\t.fail( animation.opts.fail )\n\t\t.always( animation.opts.always );\n}\n\njQuery.Animation = jQuery.extend( Animation, {\n\n\ttweeners: {\n\t\t"*": [ function( prop, value ) {\n\t\t\tvar tween = this.createTween( prop, value );\n\t\t\tadjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );\n\t\t\treturn tween;\n\t\t} ]\n\t},\n\n\ttweener: function( props, callback ) {\n\t\tif ( jQuery.isFunction( props ) ) {\n\t\t\tcallback = props;\n\t\t\tprops = [ "*" ];\n\t\t} else {\n\t\t\tprops = props.match( rnothtmlwhite );\n\t\t}\n\n\t\tvar prop,\n\t\t\tindex = 0,\n\t\t\tlength = props.length;\n\n\t\tfor ( ; index < length; index++ ) {\n\t\t\tprop = props[ index ];\n\t\t\tAnimation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];\n\t\t\tAnimation.tweeners[ prop ].unshift( callback );\n\t\t}\n\t},\n\n\tprefilters: [ defaultPrefilter ],\n\n\tprefilter: function( callback, prepend ) {\n\t\tif ( prepend ) {\n\t\t\tAnimation.prefilters.unshift( callback );\n\t\t} else {\n\t\t\tAnimation.prefilters.push( callback );\n\t\t}\n\t}\n} );\n\njQuery.speed = function( speed, easing, fn ) {\n\tvar opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : {\n\t\tcomplete: fn || !fn && easing ||\n\t\t\tjQuery.isFunction( speed ) && speed,\n\t\tduration: speed,\n\t\teasing: fn && easing || easing && !jQuery.isFunction( easing ) && easing\n\t};\n\n\t// Go to the end state if fx are off or if document is hidden\n\tif ( jQuery.fx.off || document.hidden ) {\n\t\topt.duration = 0;\n\n\t} else {\n\t\tif ( typeof opt.duration !== "number" ) {\n\t\t\tif ( opt.duration in jQuery.fx.speeds ) {\n\t\t\t\topt.duration = jQuery.fx.speeds[ opt.duration ];\n\n\t\t\t} else {\n\t\t\t\topt.duration = jQuery.fx.speeds._default;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Normalize opt.queue - true/undefined/null -> "fx"\n\tif ( opt.queue == null || opt.queue === true ) {\n\t\topt.queue = "fx";\n\t}\n\n\t// Queueing\n\topt.old = opt.complete;\n\n\topt.complete = function() {\n\t\tif ( jQuery.isFunction( opt.old ) ) {\n\t\t\topt.old.call( this );\n\t\t}\n\n\t\tif ( opt.queue ) {\n\t\t\tjQuery.dequeue( this, opt.queue );\n\t\t}\n\t};\n\n\treturn opt;\n};\n\njQuery.fn.extend( {\n\tfadeTo: function( speed, to, easing, callback ) {\n\n\t\t// Show any hidden elements after setting opacity to 0\n\t\treturn this.filter( isHiddenWithinTree ).css( "opacity", 0 ).show()\n\n\t\t\t// Animate to the value specified\n\t\t\t.end().animate( { opacity: to }, speed, easing, callback );\n\t},\n\tanimate: function( prop, speed, easing, callback ) {\n\t\tvar empty = jQuery.isEmptyObject( prop ),\n\t\t\toptall = jQuery.speed( speed, easing, callback ),\n\t\t\tdoAnimation = function() {\n\n\t\t\t\t// Operate on a copy of prop so per-property easing won\'t be lost\n\t\t\t\tvar anim = Animation( this, jQuery.extend( {}, prop ), optall );\n\n\t\t\t\t// Empty animations, or finishing resolves immediately\n\t\t\t\tif ( empty || dataPriv.get( this, "finish" ) ) {\n\t\t\t\t\tanim.stop( true );\n\t\t\t\t}\n\t\t\t};\n\t\t\tdoAnimation.finish = doAnimation;\n\n\t\treturn empty || optall.queue === false ?\n\t\t\tthis.each( doAnimation ) :\n\t\t\tthis.queue( optall.queue, doAnimation );\n\t},\n\tstop: function( type, clearQueue, gotoEnd ) {\n\t\tvar stopQueue = function( hooks ) {\n\t\t\tvar stop = hooks.stop;\n\t\t\tdelete hooks.stop;\n\t\t\tstop( gotoEnd );\n\t\t};\n\n\t\tif ( typeof type !== "string" ) {\n\t\t\tgotoEnd = clearQueue;\n\t\t\tclearQueue = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\tif ( clearQueue && type !== false ) {\n\t\t\tthis.queue( type || "fx", [] );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar dequeue = true,\n\t\t\t\tindex = type != null && type + "queueHooks",\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tdata = dataPriv.get( this );\n\n\t\t\tif ( index ) {\n\t\t\t\tif ( data[ index ] && data[ index ].stop ) {\n\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( index in data ) {\n\t\t\t\t\tif ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {\n\t\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this &&\n\t\t\t\t\t( type == null || timers[ index ].queue === type ) ) {\n\n\t\t\t\t\ttimers[ index ].anim.stop( gotoEnd );\n\t\t\t\t\tdequeue = false;\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Start the next in the queue if the last step wasn\'t forced.\n\t\t\t// Timers currently will call their complete callbacks, which\n\t\t\t// will dequeue but only if they were gotoEnd.\n\t\t\tif ( dequeue || !gotoEnd ) {\n\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t}\n\t\t} );\n\t},\n\tfinish: function( type ) {\n\t\tif ( type !== false ) {\n\t\t\ttype = type || "fx";\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tvar index,\n\t\t\t\tdata = dataPriv.get( this ),\n\t\t\t\tqueue = data[ type + "queue" ],\n\t\t\t\thooks = data[ type + "queueHooks" ],\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tlength = queue ? queue.length : 0;\n\n\t\t\t// Enable finishing flag on private data\n\t\t\tdata.finish = true;\n\n\t\t\t// Empty the queue first\n\t\t\tjQuery.queue( this, type, [] );\n\n\t\t\tif ( hooks && hooks.stop ) {\n\t\t\t\thooks.stop.call( this, true );\n\t\t\t}\n\n\t\t\t// Look for any active animations, and finish them\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this && timers[ index ].queue === type ) {\n\t\t\t\t\ttimers[ index ].anim.stop( true );\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Look for any animations in the old queue and finish them\n\t\t\tfor ( index = 0; index < length; index++ ) {\n\t\t\t\tif ( queue[ index ] && queue[ index ].finish ) {\n\t\t\t\t\tqueue[ index ].finish.call( this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Turn off finishing flag\n\t\t\tdelete data.finish;\n\t\t} );\n\t}\n} );\n\njQuery.each( [ "toggle", "show", "hide" ], function( i, name ) {\n\tvar cssFn = jQuery.fn[ name ];\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn speed == null || typeof speed === "boolean" ?\n\t\t\tcssFn.apply( this, arguments ) :\n\t\t\tthis.animate( genFx( name, true ), speed, easing, callback );\n\t};\n} );\n\n// Generate shortcuts for custom animations\njQuery.each( {\n\tslideDown: genFx( "show" ),\n\tslideUp: genFx( "hide" ),\n\tslideToggle: genFx( "toggle" ),\n\tfadeIn: { opacity: "show" },\n\tfadeOut: { opacity: "hide" },\n\tfadeToggle: { opacity: "toggle" }\n}, function( name, props ) {\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn this.animate( props, speed, easing, callback );\n\t};\n} );\n\njQuery.timers = [];\njQuery.fx.tick = function() {\n\tvar timer,\n\t\ti = 0,\n\t\ttimers = jQuery.timers;\n\n\tfxNow = jQuery.now();\n\n\tfor ( ; i < timers.length; i++ ) {\n\t\ttimer = timers[ i ];\n\n\t\t// Checks the timer has not already been removed\n\t\tif ( !timer() && timers[ i ] === timer ) {\n\t\t\ttimers.splice( i--, 1 );\n\t\t}\n\t}\n\n\tif ( !timers.length ) {\n\t\tjQuery.fx.stop();\n\t}\n\tfxNow = undefined;\n};\n\njQuery.fx.timer = function( timer ) {\n\tjQuery.timers.push( timer );\n\tif ( timer() ) {\n\t\tjQuery.fx.start();\n\t} else {\n\t\tjQuery.timers.pop();\n\t}\n};\n\njQuery.fx.interval = 13;\njQuery.fx.start = function() {\n\tif ( !timerId ) {\n\t\ttimerId = window.requestAnimationFrame ?\n\t\t\twindow.requestAnimationFrame( raf ) :\n\t\t\twindow.setInterval( jQuery.fx.tick, jQuery.fx.interval );\n\t}\n};\n\njQuery.fx.stop = function() {\n\tif ( window.cancelAnimationFrame ) {\n\t\twindow.cancelAnimationFrame( timerId );\n\t} else {\n\t\twindow.clearInterval( timerId );\n\t}\n\n\ttimerId = null;\n};\n\njQuery.fx.speeds = {\n\tslow: 600,\n\tfast: 200,\n\n\t// Default speed\n\t_default: 400\n};\n\n\n// Based off of the plugin by Clint Helfers, with permission.\n// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/\njQuery.fn.delay = function( time, type ) {\n\ttime = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;\n\ttype = type || "fx";\n\n\treturn this.queue( type, function( next, hooks ) {\n\t\tvar timeout = window.setTimeout( next, time );\n\t\thooks.stop = function() {\n\t\t\twindow.clearTimeout( timeout );\n\t\t};\n\t} );\n};\n\n\n( function() {\n\tvar input = document.createElement( "input" ),\n\t\tselect = document.createElement( "select" ),\n\t\topt = select.appendChild( document.createElement( "option" ) );\n\n\tinput.type = "checkbox";\n\n\t// Support: Android <=4.3 only\n\t// Default value for a checkbox should be "on"\n\tsupport.checkOn = input.value !== "";\n\n\t// Support: IE <=11 only\n\t// Must access selectedIndex to make default options select\n\tsupport.optSelected = opt.selected;\n\n\t// Support: IE <=11 only\n\t// An input loses its value after becoming a radio\n\tinput = document.createElement( "input" );\n\tinput.value = "t";\n\tinput.type = "radio";\n\tsupport.radioValue = input.value === "t";\n} )();\n\n\nvar boolHook,\n\tattrHandle = jQuery.expr.attrHandle;\n\njQuery.fn.extend( {\n\tattr: function( name, value ) {\n\t\treturn access( this, jQuery.attr, name, value, arguments.length > 1 );\n\t},\n\n\tremoveAttr: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.removeAttr( this, name );\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tattr: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don\'t get/set attributes on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Fallback to prop when attributes are not supported\n\t\tif ( typeof elem.getAttribute === "undefined" ) {\n\t\t\treturn jQuery.prop( elem, name, value );\n\t\t}\n\n\t\t// Attribute hooks are determined by the lowercase version\n\t\t// Grab necessary hook if one is defined\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\t\t\thooks = jQuery.attrHooks[ name.toLowerCase() ] ||\n\t\t\t\t( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( value === null ) {\n\t\t\t\tjQuery.removeAttr( elem, name );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( hooks && "set" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\telem.setAttribute( name, value + "" );\n\t\t\treturn value;\n\t\t}\n\n\t\tif ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\tret = jQuery.find.attr( elem, name );\n\n\t\t// Non-existent attributes return null, we normalize to undefined\n\t\treturn ret == null ? undefined : ret;\n\t},\n\n\tattrHooks: {\n\t\ttype: {\n\t\t\tset: function( elem, value ) {\n\t\t\t\tif ( !support.radioValue && value === "radio" &&\n\t\t\t\t\tjQuery.nodeName( elem, "input" ) ) {\n\t\t\t\t\tvar val = elem.value;\n\t\t\t\t\telem.setAttribute( "type", value );\n\t\t\t\t\tif ( val ) {\n\t\t\t\t\t\telem.value = val;\n\t\t\t\t\t}\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tremoveAttr: function( elem, value ) {\n\t\tvar name,\n\t\t\ti = 0,\n\n\t\t\t// Attribute names can contain non-HTML whitespace characters\n\t\t\t// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n\t\t\tattrNames = value && value.match( rnothtmlwhite );\n\n\t\tif ( attrNames && elem.nodeType === 1 ) {\n\t\t\twhile ( ( name = attrNames[ i++ ] ) ) {\n\t\t\t\telem.removeAttribute( name );\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Hooks for boolean attributes\nboolHook = {\n\tset: function( elem, value, name ) {\n\t\tif ( value === false ) {\n\n\t\t\t// Remove boolean attributes when set to false\n\t\t\tjQuery.removeAttr( elem, name );\n\t\t} else {\n\t\t\telem.setAttribute( name, name );\n\t\t}\n\t\treturn name;\n\t}\n};\n\njQuery.each( jQuery.expr.match.bool.source.match( /\\w+/g ), function( i, name ) {\n\tvar getter = attrHandle[ name ] || jQuery.find.attr;\n\n\tattrHandle[ name ] = function( elem, name, isXML ) {\n\t\tvar ret, handle,\n\t\t\tlowercaseName = name.toLowerCase();\n\n\t\tif ( !isXML ) {\n\n\t\t\t// Avoid an infinite loop by temporarily removing this function from the getter\n\t\t\thandle = attrHandle[ lowercaseName ];\n\t\t\tattrHandle[ lowercaseName ] = ret;\n\t\t\tret = getter( elem, name, isXML ) != null ?\n\t\t\t\tlowercaseName :\n\t\t\t\tnull;\n\t\t\tattrHandle[ lowercaseName ] = handle;\n\t\t}\n\t\treturn ret;\n\t};\n} );\n\n\n\n\nvar rfocusable = /^(?:input|select|textarea|button)$/i,\n\trclickable = /^(?:a|area)$/i;\n\njQuery.fn.extend( {\n\tprop: function( name, value ) {\n\t\treturn access( this, jQuery.prop, name, value, arguments.length > 1 );\n\t},\n\n\tremoveProp: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tdelete this[ jQuery.propFix[ name ] || name ];\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tprop: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don\'t get/set properties on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// Fix name and attach hooks\n\t\t\tname = jQuery.propFix[ name ] || name;\n\t\t\thooks = jQuery.propHooks[ name ];\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( hooks && "set" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\treturn ( elem[ name ] = value );\n\t\t}\n\n\t\tif ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\treturn elem[ name ];\n\t},\n\n\tpropHooks: {\n\t\ttabIndex: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\t// Support: IE <=9 - 11 only\n\t\t\t\t// elem.tabIndex doesn\'t always return the\n\t\t\t\t// correct value when it hasn\'t been explicitly set\n\t\t\t\t// https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/\n\t\t\t\t// Use proper attribute retrieval(#12072)\n\t\t\t\tvar tabindex = jQuery.find.attr( elem, "tabindex" );\n\n\t\t\t\tif ( tabindex ) {\n\t\t\t\t\treturn parseInt( tabindex, 10 );\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\trfocusable.test( elem.nodeName ) ||\n\t\t\t\t\trclickable.test( elem.nodeName ) &&\n\t\t\t\t\telem.href\n\t\t\t\t) {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t},\n\n\tpropFix: {\n\t\t"for": "htmlFor",\n\t\t"class": "className"\n\t}\n} );\n\n// Support: IE <=11 only\n// Accessing the selectedIndex property\n// forces the browser to respect setting selected\n// on the option\n// The getter ensures a default option is selected\n// when in an optgroup\n// eslint rule "no-unused-expressions" is disabled for this code\n// since it considers such accessions noop\nif ( !support.optSelected ) {\n\tjQuery.propHooks.selected = {\n\t\tget: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: "off" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent && parent.parentNode ) {\n\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t}\n\t\t\treturn null;\n\t\t},\n\t\tset: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: "off" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent ) {\n\t\t\t\tparent.selectedIndex;\n\n\t\t\t\tif ( parent.parentNode ) {\n\t\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\njQuery.each( [\n\t"tabIndex",\n\t"readOnly",\n\t"maxLength",\n\t"cellSpacing",\n\t"cellPadding",\n\t"rowSpan",\n\t"colSpan",\n\t"useMap",\n\t"frameBorder",\n\t"contentEditable"\n], function() {\n\tjQuery.propFix[ this.toLowerCase() ] = this;\n} );\n\n\n\n\n\t// Strip and collapse whitespace according to HTML spec\n\t// https://html.spec.whatwg.org/multipage/infrastructure.html#strip-and-collapse-whitespace\n\tfunction stripAndCollapse( value ) {\n\t\tvar tokens = value.match( rnothtmlwhite ) || [];\n\t\treturn tokens.join( " " );\n\t}\n\n\nfunction getClass( elem ) {\n\treturn elem.getAttribute && elem.getAttribute( "class" ) || "";\n}\n\njQuery.fn.extend( {\n\taddClass: function( value ) {\n\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\n\t\t\ti = 0;\n\n\t\tif ( jQuery.isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).addClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tif ( typeof value === "string" && value ) {\n\t\t\tclasses = value.match( rnothtmlwhite ) || [];\n\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\tcurValue = getClass( elem );\n\t\t\t\tcur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\t\t\t\t\t\tif ( cur.indexOf( " " + clazz + " " ) < 0 ) {\n\t\t\t\t\t\t\tcur += clazz + " ";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\telem.setAttribute( "class", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tremoveClass: function( value ) {\n\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\n\t\t\ti = 0;\n\n\t\tif ( jQuery.isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tif ( !arguments.length ) {\n\t\t\treturn this.attr( "class", "" );\n\t\t}\n\n\t\tif ( typeof value === "string" && value ) {\n\t\t\tclasses = value.match( rnothtmlwhite ) || [];\n\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\tcurValue = getClass( elem );\n\n\t\t\t\t// This expression is here for better compressibility (see addClass)\n\t\t\t\tcur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\n\t\t\t\t\t\t// Remove *all* instances\n\t\t\t\t\t\twhile ( cur.indexOf( " " + clazz + " " ) > -1 ) {\n\t\t\t\t\t\t\tcur = cur.replace( " " + clazz + " ", " " );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\telem.setAttribute( "class", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\ttoggleClass: function( value, stateVal ) {\n\t\tvar type = typeof value;\n\n\t\tif ( typeof stateVal === "boolean" && type === "string" ) {\n\t\t\treturn stateVal ? this.addClass( value ) : this.removeClass( value );\n\t\t}\n\n\t\tif ( jQuery.isFunction( value ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).toggleClass(\n\t\t\t\t\tvalue.call( this, i, getClass( this ), stateVal ),\n\t\t\t\t\tstateVal\n\t\t\t\t);\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar className, i, self, classNames;\n\n\t\t\tif ( type === "string" ) {\n\n\t\t\t\t// Toggle individual class names\n\t\t\t\ti = 0;\n\t\t\t\tself = jQuery( this );\n\t\t\t\tclassNames = value.match( rnothtmlwhite ) || [];\n\n\t\t\t\twhile ( ( className = classNames[ i++ ] ) ) {\n\n\t\t\t\t\t// Check each className given, space separated list\n\t\t\t\t\tif ( self.hasClass( className ) ) {\n\t\t\t\t\t\tself.removeClass( className );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.addClass( className );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Toggle whole class name\n\t\t\t} else if ( value === undefined || type === "boolean" ) {\n\t\t\t\tclassName = getClass( this );\n\t\t\t\tif ( className ) {\n\n\t\t\t\t\t// Store className if set\n\t\t\t\t\tdataPriv.set( this, "__className__", className );\n\t\t\t\t}\n\n\t\t\t\t// If the element has a class name or if we\'re passed `false`,\n\t\t\t\t// then remove the whole classname (if there was one, the above saved it).\n\t\t\t\t// Otherwise bring back whatever was previously saved (if anything),\n\t\t\t\t// falling back to the empty string if nothing was stored.\n\t\t\t\tif ( this.setAttribute ) {\n\t\t\t\t\tthis.setAttribute( "class",\n\t\t\t\t\t\tclassName || value === false ?\n\t\t\t\t\t\t"" :\n\t\t\t\t\t\tdataPriv.get( this, "__className__" ) || ""\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\thasClass: function( selector ) {\n\t\tvar className, elem,\n\t\t\ti = 0;\n\n\t\tclassName = " " + selector + " ";\n\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\tif ( elem.nodeType === 1 &&\n\t\t\t\t( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) {\n\t\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n} );\n\n\n\n\nvar rreturn = /\\r/g;\n\njQuery.fn.extend( {\n\tval: function( value ) {\n\t\tvar hooks, ret, isFunction,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !arguments.length ) {\n\t\t\tif ( elem ) {\n\t\t\t\thooks = jQuery.valHooks[ elem.type ] ||\n\t\t\t\t\tjQuery.valHooks[ elem.nodeName.toLowerCase() ];\n\n\t\t\t\tif ( hooks &&\n\t\t\t\t\t"get" in hooks &&\n\t\t\t\t\t( ret = hooks.get( elem, "value" ) ) !== undefined\n\t\t\t\t) {\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\n\t\t\t\tret = elem.value;\n\n\t\t\t\t// Handle most common string cases\n\t\t\t\tif ( typeof ret === "string" ) {\n\t\t\t\t\treturn ret.replace( rreturn, "" );\n\t\t\t\t}\n\n\t\t\t\t// Handle cases where value is null/undef or number\n\t\t\t\treturn ret == null ? "" : ret;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tisFunction = jQuery.isFunction( value );\n\n\t\treturn this.each( function( i ) {\n\t\t\tvar val;\n\n\t\t\tif ( this.nodeType !== 1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( isFunction ) {\n\t\t\t\tval = value.call( this, i, jQuery( this ).val() );\n\t\t\t} else {\n\t\t\t\tval = value;\n\t\t\t}\n\n\t\t\t// Treat null/undefined as ""; convert numbers to string\n\t\t\tif ( val == null ) {\n\t\t\t\tval = "";\n\n\t\t\t} else if ( typeof val === "number" ) {\n\t\t\t\tval += "";\n\n\t\t\t} else if ( jQuery.isArray( val ) ) {\n\t\t\t\tval = jQuery.map( val, function( value ) {\n\t\t\t\t\treturn value == null ? "" : value + "";\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\thooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];\n\n\t\t\t// If set returns undefined, fall back to normal setting\n\t\t\tif ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) {\n\t\t\t\tthis.value = val;\n\t\t\t}\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tvalHooks: {\n\t\toption: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\tvar val = jQuery.find.attr( elem, "value" );\n\t\t\t\treturn val != null ?\n\t\t\t\t\tval :\n\n\t\t\t\t\t// Support: IE <=10 - 11 only\n\t\t\t\t\t// option.text throws exceptions (#14686, #14858)\n\t\t\t\t\t// Strip and collapse whitespace\n\t\t\t\t\t// https://html.spec.whatwg.org/#strip-and-collapse-whitespace\n\t\t\t\t\tstripAndCollapse( jQuery.text( elem ) );\n\t\t\t}\n\t\t},\n\t\tselect: {\n\t\t\tget: function( elem ) {\n\t\t\t\tvar value, option, i,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tindex = elem.selectedIndex,\n\t\t\t\t\tone = elem.type === "select-one",\n\t\t\t\t\tvalues = one ? null : [],\n\t\t\t\t\tmax = one ? index + 1 : options.length;\n\n\t\t\t\tif ( index < 0 ) {\n\t\t\t\t\ti = max;\n\n\t\t\t\t} else {\n\t\t\t\t\ti = one ? index : 0;\n\t\t\t\t}\n\n\t\t\t\t// Loop through all the selected options\n\t\t\t\tfor ( ; i < max; i++ ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t// IE8-9 doesn\'t update selected after form reset (#2551)\n\t\t\t\t\tif ( ( option.selected || i === index ) &&\n\n\t\t\t\t\t\t\t// Don\'t return options that are disabled or in a disabled optgroup\n\t\t\t\t\t\t\t!option.disabled &&\n\t\t\t\t\t\t\t( !option.parentNode.disabled ||\n\t\t\t\t\t\t\t\t!jQuery.nodeName( option.parentNode, "optgroup" ) ) ) {\n\n\t\t\t\t\t\t// Get the specific value for the option\n\t\t\t\t\t\tvalue = jQuery( option ).val();\n\n\t\t\t\t\t\t// We don\'t need an array for one selects\n\t\t\t\t\t\tif ( one ) {\n\t\t\t\t\t\t\treturn value;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Multi-Selects return an array\n\t\t\t\t\t\tvalues.push( value );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn values;\n\t\t\t},\n\n\t\t\tset: function( elem, value ) {\n\t\t\t\tvar optionSet, option,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tvalues = jQuery.makeArray( value ),\n\t\t\t\t\ti = options.length;\n\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t/* eslint-disable no-cond-assign */\n\n\t\t\t\t\tif ( option.selected =\n\t\t\t\t\t\tjQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1\n\t\t\t\t\t) {\n\t\t\t\t\t\toptionSet = true;\n\t\t\t\t\t}\n\n\t\t\t\t\t/* eslint-enable no-cond-assign */\n\t\t\t\t}\n\n\t\t\t\t// Force browsers to behave consistently when non-matching value is set\n\t\t\t\tif ( !optionSet ) {\n\t\t\t\t\telem.selectedIndex = -1;\n\t\t\t\t}\n\t\t\t\treturn values;\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Radios and checkboxes getter/setter\njQuery.each( [ "radio", "checkbox" ], function() {\n\tjQuery.valHooks[ this ] = {\n\t\tset: function( elem, value ) {\n\t\t\tif ( jQuery.isArray( value ) ) {\n\t\t\t\treturn ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );\n\t\t\t}\n\t\t}\n\t};\n\tif ( !support.checkOn ) {\n\t\tjQuery.valHooks[ this ].get = function( elem ) {\n\t\t\treturn elem.getAttribute( "value" ) === null ? "on" : elem.value;\n\t\t};\n\t}\n} );\n\n\n\n\n// Return jQuery for attributes-only inclusion\n\n\nvar rfocusMorph = /^(?:focusinfocus|focusoutblur)$/;\n\njQuery.extend( jQuery.event, {\n\n\ttrigger: function( event, data, elem, onlyHandlers ) {\n\n\t\tvar i, cur, tmp, bubbleType, ontype, handle, special,\n\t\t\teventPath = [ elem || document ],\n\t\t\ttype = hasOwn.call( event, "type" ) ? event.type : event,\n\t\t\tnamespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : [];\n\n\t\tcur = tmp = elem = elem || document;\n\n\t\t// Don\'t do events on text and comment nodes\n\t\tif ( elem.nodeType === 3 || elem.nodeType === 8 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// focus/blur morphs to focusin/out; ensure we\'re not firing them right now\n\t\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( type.indexOf( "." ) > -1 ) {\n\n\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\n\t\t\tnamespaces = type.split( "." );\n\t\t\ttype = namespaces.shift();\n\t\t\tnamespaces.sort();\n\t\t}\n\t\tontype = type.indexOf( ":" ) < 0 && "on" + type;\n\n\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\n\t\tevent = event[ jQuery.expando ] ?\n\t\t\tevent :\n\t\t\tnew jQuery.Event( type, typeof event === "object" && event );\n\n\t\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\t\tevent.isTrigger = onlyHandlers ? 2 : 3;\n\t\tevent.namespace = namespaces.join( "." );\n\t\tevent.rnamespace = event.namespace ?\n\t\t\tnew RegExp( "(^|\\\\.)" + namespaces.join( "\\\\.(?:.*\\\\.|)" ) + "(\\\\.|$)" ) :\n\t\t\tnull;\n\n\t\t// Clean up the event in case it is being reused\n\t\tevent.result = undefined;\n\t\tif ( !event.target ) {\n\t\t\tevent.target = elem;\n\t\t}\n\n\t\t// Clone any incoming data and prepend the event, creating the handler arg list\n\t\tdata = data == null ?\n\t\t\t[ event ] :\n\t\t\tjQuery.makeArray( data, [ event ] );\n\n\t\t// Allow special events to draw outside the lines\n\t\tspecial = jQuery.event.special[ type ] || {};\n\t\tif ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine event propagation path in advance, per W3C events spec (#9951)\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\n\t\tif ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) {\n\n\t\t\tbubbleType = special.delegateType || type;\n\t\t\tif ( !rfocusMorph.test( bubbleType + type ) ) {\n\t\t\t\tcur = cur.parentNode;\n\t\t\t}\n\t\t\tfor ( ; cur; cur = cur.parentNode ) {\n\t\t\t\teventPath.push( cur );\n\t\t\t\ttmp = cur;\n\t\t\t}\n\n\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\n\t\t\tif ( tmp === ( elem.ownerDocument || document ) ) {\n\t\t\t\teventPath.push( tmp.defaultView || tmp.parentWindow || window );\n\t\t\t}\n\t\t}\n\n\t\t// Fire handlers on the event path\n\t\ti = 0;\n\t\twhile ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {\n\n\t\t\tevent.type = i > 1 ?\n\t\t\t\tbubbleType :\n\t\t\t\tspecial.bindType || type;\n\n\t\t\t// jQuery handler\n\t\t\thandle = ( dataPriv.get( cur, "events" ) || {} )[ event.type ] &&\n\t\t\t\tdataPriv.get( cur, "handle" );\n\t\t\tif ( handle ) {\n\t\t\t\thandle.apply( cur, data );\n\t\t\t}\n\n\t\t\t// Native handler\n\t\t\thandle = ontype && cur[ ontype ];\n\t\t\tif ( handle && handle.apply && acceptData( cur ) ) {\n\t\t\t\tevent.result = handle.apply( cur, data );\n\t\t\t\tif ( event.result === false ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tevent.type = type;\n\n\t\t// If nobody prevented the default action, do it now\n\t\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\n\n\t\t\tif ( ( !special._default ||\n\t\t\t\tspecial._default.apply( eventPath.pop(), data ) === false ) &&\n\t\t\t\tacceptData( elem ) ) {\n\n\t\t\t\t// Call a native DOM method on the target with the same name as the event.\n\t\t\t\t// Don\'t do default actions on window, that\'s where global variables be (#6170)\n\t\t\t\tif ( ontype && jQuery.isFunction( elem[ type ] ) && !jQuery.isWindow( elem ) ) {\n\n\t\t\t\t\t// Don\'t re-trigger an onFOO event when we call its FOO() method\n\t\t\t\t\ttmp = elem[ ontype ];\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = null;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\n\t\t\t\t\tjQuery.event.triggered = type;\n\t\t\t\t\telem[ type ]();\n\t\t\t\t\tjQuery.event.triggered = undefined;\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = tmp;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\t// Piggyback on a donor event to simulate a different one\n\t// Used only for `focus(in | out)` events\n\tsimulate: function( type, elem, event ) {\n\t\tvar e = jQuery.extend(\n\t\t\tnew jQuery.Event(),\n\t\t\tevent,\n\t\t\t{\n\t\t\t\ttype: type,\n\t\t\t\tisSimulated: true\n\t\t\t}\n\t\t);\n\n\t\tjQuery.event.trigger( e, null, elem );\n\t}\n\n} );\n\njQuery.fn.extend( {\n\n\ttrigger: function( type, data ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.trigger( type, data, this );\n\t\t} );\n\t},\n\ttriggerHandler: function( type, data ) {\n\t\tvar elem = this[ 0 ];\n\t\tif ( elem ) {\n\t\t\treturn jQuery.event.trigger( type, data, elem, true );\n\t\t}\n\t}\n} );\n\n\njQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " +\n\t"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +\n\t"change select submit keydown keypress keyup contextmenu" ).split( " " ),\n\tfunction( i, name ) {\n\n\t// Handle event binding\n\tjQuery.fn[ name ] = function( data, fn ) {\n\t\treturn arguments.length > 0 ?\n\t\t\tthis.on( name, null, data, fn ) :\n\t\t\tthis.trigger( name );\n\t};\n} );\n\njQuery.fn.extend( {\n\thover: function( fnOver, fnOut ) {\n\t\treturn this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );\n\t}\n} );\n\n\n\n\nsupport.focusin = "onfocusin" in window;\n\n\n// Support: Firefox <=44\n// Firefox doesn\'t have focus(in | out) events\n// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\n//\n// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1\n// focus(in | out) events fire after focus & blur events,\n// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\n// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857\nif ( !support.focusin ) {\n\tjQuery.each( { focus: "focusin", blur: "focusout" }, function( orig, fix ) {\n\n\t\t// Attach a single capturing handler on the document while someone wants focusin/focusout\n\t\tvar handler = function( event ) {\n\t\t\tjQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );\n\t\t};\n\n\t\tjQuery.event.special[ fix ] = {\n\t\t\tsetup: function() {\n\t\t\t\tvar doc = this.ownerDocument || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix );\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.addEventListener( orig, handler, true );\n\t\t\t\t}\n\t\t\t\tdataPriv.access( doc, fix, ( attaches || 0 ) + 1 );\n\t\t\t},\n\t\t\tteardown: function() {\n\t\t\t\tvar doc = this.ownerDocument || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix ) - 1;\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.removeEventListener( orig, handler, true );\n\t\t\t\t\tdataPriv.remove( doc, fix );\n\n\t\t\t\t} else {\n\t\t\t\t\tdataPriv.access( doc, fix, attaches );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t} );\n}\nvar location = window.location;\n\nvar nonce = jQuery.now();\n\nvar rquery = ( /\\?/ );\n\n\n\n// Cross-browser xml parsing\njQuery.parseXML = function( data ) {\n\tvar xml;\n\tif ( !data || typeof data !== "string" ) {\n\t\treturn null;\n\t}\n\n\t// Support: IE 9 - 11 only\n\t// IE throws on parseFromString with invalid input.\n\ttry {\n\t\txml = ( new window.DOMParser() ).parseFromString( data, "text/xml" );\n\t} catch ( e ) {\n\t\txml = undefined;\n\t}\n\n\tif ( !xml || xml.getElementsByTagName( "parsererror" ).length ) {\n\t\tjQuery.error( "Invalid XML: " + data );\n\t}\n\treturn xml;\n};\n\n\nvar\n\trbracket = /\\[\\]$/,\n\trCRLF = /\\r?\\n/g,\n\trsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n\trsubmittable = /^(?:input|select|textarea|keygen)/i;\n\nfunction buildParams( prefix, obj, traditional, add ) {\n\tvar name;\n\n\tif ( jQuery.isArray( obj ) ) {\n\n\t\t// Serialize array item.\n\t\tjQuery.each( obj, function( i, v ) {\n\t\t\tif ( traditional || rbracket.test( prefix ) ) {\n\n\t\t\t\t// Treat each array item as a scalar.\n\t\t\t\tadd( prefix, v );\n\n\t\t\t} else {\n\n\t\t\t\t// Item is non-scalar (array or object), encode its numeric index.\n\t\t\t\tbuildParams(\n\t\t\t\t\tprefix + "[" + ( typeof v === "object" && v != null ? i : "" ) + "]",\n\t\t\t\t\tv,\n\t\t\t\t\ttraditional,\n\t\t\t\t\tadd\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\n\t} else if ( !traditional && jQuery.type( obj ) === "object" ) {\n\n\t\t// Serialize object item.\n\t\tfor ( name in obj ) {\n\t\t\tbuildParams( prefix + "[" + name + "]", obj[ name ], traditional, add );\n\t\t}\n\n\t} else {\n\n\t\t// Serialize scalar item.\n\t\tadd( prefix, obj );\n\t}\n}\n\n// Serialize an array of form elements or a set of\n// key/values into a query string\njQuery.param = function( a, traditional ) {\n\tvar prefix,\n\t\ts = [],\n\t\tadd = function( key, valueOrFunction ) {\n\n\t\t\t// If value is a function, invoke it and use its return value\n\t\t\tvar value = jQuery.isFunction( valueOrFunction ) ?\n\t\t\t\tvalueOrFunction() :\n\t\t\t\tvalueOrFunction;\n\n\t\t\ts[ s.length ] = encodeURIComponent( key ) + "=" +\n\t\t\t\tencodeURIComponent( value == null ? "" : value );\n\t\t};\n\n\t// If an array was passed in, assume that it is an array of form elements.\n\tif ( jQuery.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {\n\n\t\t// Serialize the form elements\n\t\tjQuery.each( a, function() {\n\t\t\tadd( this.name, this.value );\n\t\t} );\n\n\t} else {\n\n\t\t// If traditional, encode the "old" way (the way 1.3.2 or older\n\t\t// did it), otherwise encode params recursively.\n\t\tfor ( prefix in a ) {\n\t\t\tbuildParams( prefix, a[ prefix ], traditional, add );\n\t\t}\n\t}\n\n\t// Return the resulting serialization\n\treturn s.join( "&" );\n};\n\njQuery.fn.extend( {\n\tserialize: function() {\n\t\treturn jQuery.param( this.serializeArray() );\n\t},\n\tserializeArray: function() {\n\t\treturn this.map( function() {\n\n\t\t\t// Can add propHook for "elements" to filter or add form elements\n\t\t\tvar elements = jQuery.prop( this, "elements" );\n\t\t\treturn elements ? jQuery.makeArray( elements ) : this;\n\t\t} )\n\t\t.filter( function() {\n\t\t\tvar type = this.type;\n\n\t\t\t// Use .is( ":disabled" ) so that fieldset[disabled] works\n\t\t\treturn this.name && !jQuery( this ).is( ":disabled" ) &&\n\t\t\t\trsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&\n\t\t\t\t( this.checked || !rcheckableType.test( type ) );\n\t\t} )\n\t\t.map( function( i, elem ) {\n\t\t\tvar val = jQuery( this ).val();\n\n\t\t\tif ( val == null ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tif ( jQuery.isArray( val ) ) {\n\t\t\t\treturn jQuery.map( val, function( val ) {\n\t\t\t\t\treturn { name: elem.name, value: val.replace( rCRLF, "\\r\\n" ) };\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn { name: elem.name, value: val.replace( rCRLF, "\\r\\n" ) };\n\t\t} ).get();\n\t}\n} );\n\n\nvar\n\tr20 = /%20/g,\n\trhash = /#.*$/,\n\trantiCache = /([?&])_=[^&]*/,\n\trheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n\n\t// #7653, #8125, #8152: local protocol detection\n\trlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n\trnoContent = /^(?:GET|HEAD)$/,\n\trprotocol = /^\\/\\//,\n\n\t/* Prefilters\n\t * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n\t * 2) These are called:\n\t * - BEFORE asking for a transport\n\t * - AFTER param serialization (s.data is a string if s.processData is true)\n\t * 3) key is the dataType\n\t * 4) the catchall symbol "*" can be used\n\t * 5) execution will start with transport dataType and THEN continue down to "*" if needed\n\t */\n\tprefilters = {},\n\n\t/* Transports bindings\n\t * 1) key is the dataType\n\t * 2) the catchall symbol "*" can be used\n\t * 3) selection will start with transport dataType and THEN go to "*" if needed\n\t */\n\ttransports = {},\n\n\t// Avoid comment-prolog char sequence (#10098); must appease lint and evade compression\n\tallTypes = "*/".concat( "*" ),\n\n\t// Anchor tag for parsing the document origin\n\toriginAnchor = document.createElement( "a" );\n\toriginAnchor.href = location.href;\n\n// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\nfunction addToPrefiltersOrTransports( structure ) {\n\n\t// dataTypeExpression is optional and defaults to "*"\n\treturn function( dataTypeExpression, func ) {\n\n\t\tif ( typeof dataTypeExpression !== "string" ) {\n\t\t\tfunc = dataTypeExpression;\n\t\t\tdataTypeExpression = "*";\n\t\t}\n\n\t\tvar dataType,\n\t\t\ti = 0,\n\t\t\tdataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || [];\n\n\t\tif ( jQuery.isFunction( func ) ) {\n\n\t\t\t// For each dataType in the dataTypeExpression\n\t\t\twhile ( ( dataType = dataTypes[ i++ ] ) ) {\n\n\t\t\t\t// Prepend if requested\n\t\t\t\tif ( dataType[ 0 ] === "+" ) {\n\t\t\t\t\tdataType = dataType.slice( 1 ) || "*";\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );\n\n\t\t\t\t// Otherwise append\n\t\t\t\t} else {\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).push( func );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\n// Base inspection function for prefilters and transports\nfunction inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {\n\n\tvar inspected = {},\n\t\tseekingTransport = ( structure === transports );\n\n\tfunction inspect( dataType ) {\n\t\tvar selected;\n\t\tinspected[ dataType ] = true;\n\t\tjQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {\n\t\t\tvar dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );\n\t\t\tif ( typeof dataTypeOrTransport === "string" &&\n\t\t\t\t!seekingTransport && !inspected[ dataTypeOrTransport ] ) {\n\n\t\t\t\toptions.dataTypes.unshift( dataTypeOrTransport );\n\t\t\t\tinspect( dataTypeOrTransport );\n\t\t\t\treturn false;\n\t\t\t} else if ( seekingTransport ) {\n\t\t\t\treturn !( selected = dataTypeOrTransport );\n\t\t\t}\n\t\t} );\n\t\treturn selected;\n\t}\n\n\treturn inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" );\n}\n\n// A special extend for ajax options\n// that takes "flat" options (not to be deep extended)\n// Fixes #9887\nfunction ajaxExtend( target, src ) {\n\tvar key, deep,\n\t\tflatOptions = jQuery.ajaxSettings.flatOptions || {};\n\n\tfor ( key in src ) {\n\t\tif ( src[ key ] !== undefined ) {\n\t\t\t( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];\n\t\t}\n\t}\n\tif ( deep ) {\n\t\tjQuery.extend( true, target, deep );\n\t}\n\n\treturn target;\n}\n\n/* Handles responses to an ajax request:\n * - finds the right dataType (mediates between content-type and expected dataType)\n * - returns the corresponding response\n */\nfunction ajaxHandleResponses( s, jqXHR, responses ) {\n\n\tvar ct, type, finalDataType, firstDataType,\n\t\tcontents = s.contents,\n\t\tdataTypes = s.dataTypes;\n\n\t// Remove auto dataType and get content-type in the process\n\twhile ( dataTypes[ 0 ] === "*" ) {\n\t\tdataTypes.shift();\n\t\tif ( ct === undefined ) {\n\t\t\tct = s.mimeType || jqXHR.getResponseHeader( "Content-Type" );\n\t\t}\n\t}\n\n\t// Check if we\'re dealing with a known content-type\n\tif ( ct ) {\n\t\tfor ( type in contents ) {\n\t\t\tif ( contents[ type ] && contents[ type ].test( ct ) ) {\n\t\t\t\tdataTypes.unshift( type );\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check to see if we have a response for the expected dataType\n\tif ( dataTypes[ 0 ] in responses ) {\n\t\tfinalDataType = dataTypes[ 0 ];\n\t} else {\n\n\t\t// Try convertible dataTypes\n\t\tfor ( type in responses ) {\n\t\t\tif ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[ 0 ] ] ) {\n\t\t\t\tfinalDataType = type;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( !firstDataType ) {\n\t\t\t\tfirstDataType = type;\n\t\t\t}\n\t\t}\n\n\t\t// Or just use first one\n\t\tfinalDataType = finalDataType || firstDataType;\n\t}\n\n\t// If we found a dataType\n\t// We add the dataType to the list if needed\n\t// and return the corresponding response\n\tif ( finalDataType ) {\n\t\tif ( finalDataType !== dataTypes[ 0 ] ) {\n\t\t\tdataTypes.unshift( finalDataType );\n\t\t}\n\t\treturn responses[ finalDataType ];\n\t}\n}\n\n/* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\nfunction ajaxConvert( s, response, jqXHR, isSuccess ) {\n\tvar conv2, current, conv, tmp, prev,\n\t\tconverters = {},\n\n\t\t// Work with a copy of dataTypes in case we need to modify it for conversion\n\t\tdataTypes = s.dataTypes.slice();\n\n\t// Create converters map with lowercased keys\n\tif ( dataTypes[ 1 ] ) {\n\t\tfor ( conv in s.converters ) {\n\t\t\tconverters[ conv.toLowerCase() ] = s.converters[ conv ];\n\t\t}\n\t}\n\n\tcurrent = dataTypes.shift();\n\n\t// Convert to each sequential dataType\n\twhile ( current ) {\n\n\t\tif ( s.responseFields[ current ] ) {\n\t\t\tjqXHR[ s.responseFields[ current ] ] = response;\n\t\t}\n\n\t\t// Apply the dataFilter if provided\n\t\tif ( !prev && isSuccess && s.dataFilter ) {\n\t\t\tresponse = s.dataFilter( response, s.dataType );\n\t\t}\n\n\t\tprev = current;\n\t\tcurrent = dataTypes.shift();\n\n\t\tif ( current ) {\n\n\t\t\t// There\'s only work to do if current dataType is non-auto\n\t\t\tif ( current === "*" ) {\n\n\t\t\t\tcurrent = prev;\n\n\t\t\t// Convert response if prev dataType is non-auto and differs from current\n\t\t\t} else if ( prev !== "*" && prev !== current ) {\n\n\t\t\t\t// Seek a direct converter\n\t\t\t\tconv = converters[ prev + " " + current ] || converters[ "* " + current ];\n\n\t\t\t\t// If none found, seek a pair\n\t\t\t\tif ( !conv ) {\n\t\t\t\t\tfor ( conv2 in converters ) {\n\n\t\t\t\t\t\t// If conv2 outputs current\n\t\t\t\t\t\ttmp = conv2.split( " " );\n\t\t\t\t\t\tif ( tmp[ 1 ] === current ) {\n\n\t\t\t\t\t\t\t// If prev can be converted to accepted input\n\t\t\t\t\t\t\tconv = converters[ prev + " " + tmp[ 0 ] ] ||\n\t\t\t\t\t\t\t\tconverters[ "* " + tmp[ 0 ] ];\n\t\t\t\t\t\t\tif ( conv ) {\n\n\t\t\t\t\t\t\t\t// Condense equivalence converters\n\t\t\t\t\t\t\t\tif ( conv === true ) {\n\t\t\t\t\t\t\t\t\tconv = converters[ conv2 ];\n\n\t\t\t\t\t\t\t\t// Otherwise, insert the intermediate dataType\n\t\t\t\t\t\t\t\t} else if ( converters[ conv2 ] !== true ) {\n\t\t\t\t\t\t\t\t\tcurrent = tmp[ 0 ];\n\t\t\t\t\t\t\t\t\tdataTypes.unshift( tmp[ 1 ] );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Apply converter (if not an equivalence)\n\t\t\t\tif ( conv !== true ) {\n\n\t\t\t\t\t// Unless errors are allowed to bubble, catch and return them\n\t\t\t\t\tif ( conv && s.throws ) {\n\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tstate: "parsererror",\n\t\t\t\t\t\t\t\terror: conv ? e : "No conversion from " + prev + " to " + current\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn { state: "success", data: response };\n}\n\njQuery.extend( {\n\n\t// Counter for holding the number of active queries\n\tactive: 0,\n\n\t// Last-Modified header cache for next request\n\tlastModified: {},\n\tetag: {},\n\n\tajaxSettings: {\n\t\turl: location.href,\n\t\ttype: "GET",\n\t\tisLocal: rlocalProtocol.test( location.protocol ),\n\t\tglobal: true,\n\t\tprocessData: true,\n\t\tasync: true,\n\t\tcontentType: "application/x-www-form-urlencoded; charset=UTF-8",\n\n\t\t/*\n\t\ttimeout: 0,\n\t\tdata: null,\n\t\tdataType: null,\n\t\tusername: null,\n\t\tpassword: null,\n\t\tcache: null,\n\t\tthrows: false,\n\t\ttraditional: false,\n\t\theaders: {},\n\t\t*/\n\n\t\taccepts: {\n\t\t\t"*": allTypes,\n\t\t\ttext: "text/plain",\n\t\t\thtml: "text/html",\n\t\t\txml: "application/xml, text/xml",\n\t\t\tjson: "application/json, text/javascript"\n\t\t},\n\n\t\tcontents: {\n\t\t\txml: /\\bxml\\b/,\n\t\t\thtml: /\\bhtml/,\n\t\t\tjson: /\\bjson\\b/\n\t\t},\n\n\t\tresponseFields: {\n\t\t\txml: "responseXML",\n\t\t\ttext: "responseText",\n\t\t\tjson: "responseJSON"\n\t\t},\n\n\t\t// Data converters\n\t\t// Keys separate source (or catchall "*") and destination types with a single space\n\t\tconverters: {\n\n\t\t\t// Convert anything to text\n\t\t\t"* text": String,\n\n\t\t\t// Text to html (true = no transformation)\n\t\t\t"text html": true,\n\n\t\t\t// Evaluate text as a json expression\n\t\t\t"text json": JSON.parse,\n\n\t\t\t// Parse text as xml\n\t\t\t"text xml": jQuery.parseXML\n\t\t},\n\n\t\t// For options that shouldn\'t be deep extended:\n\t\t// you can add your own custom options here if\n\t\t// and when you create one that shouldn\'t be\n\t\t// deep extended (see ajaxExtend)\n\t\tflatOptions: {\n\t\t\turl: true,\n\t\t\tcontext: true\n\t\t}\n\t},\n\n\t// Creates a full fledged settings object into target\n\t// with both ajaxSettings and settings fields.\n\t// If target is omitted, writes into ajaxSettings.\n\tajaxSetup: function( target, settings ) {\n\t\treturn settings ?\n\n\t\t\t// Building a settings object\n\t\t\tajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :\n\n\t\t\t// Extending ajaxSettings\n\t\t\tajaxExtend( jQuery.ajaxSettings, target );\n\t},\n\n\tajaxPrefilter: addToPrefiltersOrTransports( prefilters ),\n\tajaxTransport: addToPrefiltersOrTransports( transports ),\n\n\t// Main method\n\tajax: function( url, options ) {\n\n\t\t// If url is an object, simulate pre-1.5 signature\n\t\tif ( typeof url === "object" ) {\n\t\t\toptions = url;\n\t\t\turl = undefined;\n\t\t}\n\n\t\t// Force options to be an object\n\t\toptions = options || {};\n\n\t\tvar transport,\n\n\t\t\t// URL without anti-cache param\n\t\t\tcacheURL,\n\n\t\t\t// Response headers\n\t\t\tresponseHeadersString,\n\t\t\tresponseHeaders,\n\n\t\t\t// timeout handle\n\t\t\ttimeoutTimer,\n\n\t\t\t// Url cleanup var\n\t\t\turlAnchor,\n\n\t\t\t// Request state (becomes false upon send and true upon completion)\n\t\t\tcompleted,\n\n\t\t\t// To know if global events are to be dispatched\n\t\t\tfireGlobals,\n\n\t\t\t// Loop variable\n\t\t\ti,\n\n\t\t\t// uncached part of the url\n\t\t\tuncached,\n\n\t\t\t// Create the final options object\n\t\t\ts = jQuery.ajaxSetup( {}, options ),\n\n\t\t\t// Callbacks context\n\t\t\tcallbackContext = s.context || s,\n\n\t\t\t// Context for global events is callbackContext if it is a DOM node or jQuery collection\n\t\t\tglobalEventContext = s.context &&\n\t\t\t\t( callbackContext.nodeType || callbackContext.jquery ) ?\n\t\t\t\t\tjQuery( callbackContext ) :\n\t\t\t\t\tjQuery.event,\n\n\t\t\t// Deferreds\n\t\t\tdeferred = jQuery.Deferred(),\n\t\t\tcompleteDeferred = jQuery.Callbacks( "once memory" ),\n\n\t\t\t// Status-dependent callbacks\n\t\t\tstatusCode = s.statusCode || {},\n\n\t\t\t// Headers (they are sent all at once)\n\t\t\trequestHeaders = {},\n\t\t\trequestHeadersNames = {},\n\n\t\t\t// Default abort message\n\t\t\tstrAbort = "canceled",\n\n\t\t\t// Fake xhr\n\t\t\tjqXHR = {\n\t\t\t\treadyState: 0,\n\n\t\t\t\t// Builds headers hashtable if needed\n\t\t\t\tgetResponseHeader: function( key ) {\n\t\t\t\t\tvar match;\n\t\t\t\t\tif ( completed ) {\n\t\t\t\t\t\tif ( !responseHeaders ) {\n\t\t\t\t\t\t\tresponseHeaders = {};\n\t\t\t\t\t\t\twhile ( ( match = rheaders.exec( responseHeadersString ) ) ) {\n\t\t\t\t\t\t\t\tresponseHeaders[ match[ 1 ].toLowerCase() ] = match[ 2 ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmatch = responseHeaders[ key.toLowerCase() ];\n\t\t\t\t\t}\n\t\t\t\t\treturn match == null ? null : match;\n\t\t\t\t},\n\n\t\t\t\t// Raw string\n\t\t\t\tgetAllResponseHeaders: function() {\n\t\t\t\t\treturn completed ? responseHeadersString : null;\n\t\t\t\t},\n\n\t\t\t\t// Caches the header\n\t\t\t\tsetRequestHeader: function( name, value ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\tname = requestHeadersNames[ name.toLowerCase() ] =\n\t\t\t\t\t\t\trequestHeadersNames[ name.toLowerCase() ] || name;\n\t\t\t\t\t\trequestHeaders[ name ] = value;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Overrides response content-type header\n\t\t\t\toverrideMimeType: function( type ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\ts.mimeType = type;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Status-dependent callbacks\n\t\t\t\tstatusCode: function( map ) {\n\t\t\t\t\tvar code;\n\t\t\t\t\tif ( map ) {\n\t\t\t\t\t\tif ( completed ) {\n\n\t\t\t\t\t\t\t// Execute the appropriate callbacks\n\t\t\t\t\t\t\tjqXHR.always( map[ jqXHR.status ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Lazy-add the new callbacks in a way that preserves old ones\n\t\t\t\t\t\t\tfor ( code in map ) {\n\t\t\t\t\t\t\t\tstatusCode[ code ] = [ statusCode[ code ], map[ code ] ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Cancel the request\n\t\t\t\tabort: function( statusText ) {\n\t\t\t\t\tvar finalText = statusText || strAbort;\n\t\t\t\t\tif ( transport ) {\n\t\t\t\t\t\ttransport.abort( finalText );\n\t\t\t\t\t}\n\t\t\t\t\tdone( 0, finalText );\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t};\n\n\t\t// Attach deferreds\n\t\tdeferred.promise( jqXHR );\n\n\t\t// Add protocol if not provided (prefilters might expect it)\n\t\t// Handle falsy url in the settings object (#10093: consistency with old signature)\n\t\t// We also use the url parameter if available\n\t\ts.url = ( ( url || s.url || location.href ) + "" )\n\t\t\t.replace( rprotocol, location.protocol + "//" );\n\n\t\t// Alias method option to type as per ticket #12004\n\t\ts.type = options.method || options.type || s.method || s.type;\n\n\t\t// Extract dataTypes list\n\t\ts.dataTypes = ( s.dataType || "*" ).toLowerCase().match( rnothtmlwhite ) || [ "" ];\n\n\t\t// A cross-domain request is in order when the origin doesn\'t match the current origin.\n\t\tif ( s.crossDomain == null ) {\n\t\t\turlAnchor = document.createElement( "a" );\n\n\t\t\t// Support: IE <=8 - 11, Edge 12 - 13\n\t\t\t// IE throws exception on accessing the href property if url is malformed,\n\t\t\t// e.g. http://example.com:80x/\n\t\t\ttry {\n\t\t\t\turlAnchor.href = s.url;\n\n\t\t\t\t// Support: IE <=8 - 11 only\n\t\t\t\t// Anchor\'s host property isn\'t correctly set when s.url is relative\n\t\t\t\turlAnchor.href = urlAnchor.href;\n\t\t\t\ts.crossDomain = originAnchor.protocol + "//" + originAnchor.host !==\n\t\t\t\t\turlAnchor.protocol + "//" + urlAnchor.host;\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// If there is an error parsing the URL, assume it is crossDomain,\n\t\t\t\t// it can be rejected by the transport if it is invalid\n\t\t\t\ts.crossDomain = true;\n\t\t\t}\n\t\t}\n\n\t\t// Convert data if not already a string\n\t\tif ( s.data && s.processData && typeof s.data !== "string" ) {\n\t\t\ts.data = jQuery.param( s.data, s.traditional );\n\t\t}\n\n\t\t// Apply prefilters\n\t\tinspectPrefiltersOrTransports( prefilters, s, options, jqXHR );\n\n\t\t// If request was aborted inside a prefilter, stop there\n\t\tif ( completed ) {\n\t\t\treturn jqXHR;\n\t\t}\n\n\t\t// We can fire global events as of now if asked to\n\t\t// Don\'t fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)\n\t\tfireGlobals = jQuery.event && s.global;\n\n\t\t// Watch for a new set of requests\n\t\tif ( fireGlobals && jQuery.active++ === 0 ) {\n\t\t\tjQuery.event.trigger( "ajaxStart" );\n\t\t}\n\n\t\t// Uppercase the type\n\t\ts.type = s.type.toUpperCase();\n\n\t\t// Determine if request has content\n\t\ts.hasContent = !rnoContent.test( s.type );\n\n\t\t// Save the URL in case we\'re toying with the If-Modified-Since\n\t\t// and/or If-None-Match header later on\n\t\t// Remove hash to simplify url manipulation\n\t\tcacheURL = s.url.replace( rhash, "" );\n\n\t\t// More options handling for requests with no content\n\t\tif ( !s.hasContent ) {\n\n\t\t\t// Remember the hash so we can put it back\n\t\t\tuncached = s.url.slice( cacheURL.length );\n\n\t\t\t// If data is available, append data to url\n\t\t\tif ( s.data ) {\n\t\t\t\tcacheURL += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data;\n\n\t\t\t\t// #9682: remove data so that it\'s not used in an eventual retry\n\t\t\t\tdelete s.data;\n\t\t\t}\n\n\t\t\t// Add or update anti-cache param if needed\n\t\t\tif ( s.cache === false ) {\n\t\t\t\tcacheURL = cacheURL.replace( rantiCache, "$1" );\n\t\t\t\tuncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce++ ) + uncached;\n\t\t\t}\n\n\t\t\t// Put hash and anti-cache on the URL that will be requested (gh-1732)\n\t\t\ts.url = cacheURL + uncached;\n\n\t\t// Change \'%20\' to \'+\' if this is encoded form body content (gh-2658)\n\t\t} else if ( s.data && s.processData &&\n\t\t\t( s.contentType || "" ).indexOf( "application/x-www-form-urlencoded" ) === 0 ) {\n\t\t\ts.data = s.data.replace( r20, "+" );\n\t\t}\n\n\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\tif ( s.ifModified ) {\n\t\t\tif ( jQuery.lastModified[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] );\n\t\t\t}\n\t\t\tif ( jQuery.etag[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] );\n\t\t\t}\n\t\t}\n\n\t\t// Set the correct header, if data is being sent\n\t\tif ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {\n\t\t\tjqXHR.setRequestHeader( "Content-Type", s.contentType );\n\t\t}\n\n\t\t// Set the Accepts header for the server, depending on the dataType\n\t\tjqXHR.setRequestHeader(\n\t\t\t"Accept",\n\t\t\ts.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?\n\t\t\t\ts.accepts[ s.dataTypes[ 0 ] ] +\n\t\t\t\t\t( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) :\n\t\t\t\ts.accepts[ "*" ]\n\t\t);\n\n\t\t// Check for headers option\n\t\tfor ( i in s.headers ) {\n\t\t\tjqXHR.setRequestHeader( i, s.headers[ i ] );\n\t\t}\n\n\t\t// Allow custom headers/mimetypes and early abort\n\t\tif ( s.beforeSend &&\n\t\t\t( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) {\n\n\t\t\t// Abort if not done already and return\n\t\t\treturn jqXHR.abort();\n\t\t}\n\n\t\t// Aborting is no longer a cancellation\n\t\tstrAbort = "abort";\n\n\t\t// Install callbacks on deferreds\n\t\tcompleteDeferred.add( s.complete );\n\t\tjqXHR.done( s.success );\n\t\tjqXHR.fail( s.error );\n\n\t\t// Get transport\n\t\ttransport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );\n\n\t\t// If no transport, we auto-abort\n\t\tif ( !transport ) {\n\t\t\tdone( -1, "No Transport" );\n\t\t} else {\n\t\t\tjqXHR.readyState = 1;\n\n\t\t\t// Send global event\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( "ajaxSend", [ jqXHR, s ] );\n\t\t\t}\n\n\t\t\t// If request was aborted inside ajaxSend, stop there\n\t\t\tif ( completed ) {\n\t\t\t\treturn jqXHR;\n\t\t\t}\n\n\t\t\t// Timeout\n\t\t\tif ( s.async && s.timeout > 0 ) {\n\t\t\t\ttimeoutTimer = window.setTimeout( function() {\n\t\t\t\t\tjqXHR.abort( "timeout" );\n\t\t\t\t}, s.timeout );\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tcompleted = false;\n\t\t\t\ttransport.send( requestHeaders, done );\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// Rethrow post-completion exceptions\n\t\t\t\tif ( completed ) {\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\n\t\t\t\t// Propagate others as results\n\t\t\t\tdone( -1, e );\n\t\t\t}\n\t\t}\n\n\t\t// Callback for when everything is done\n\t\tfunction done( status, nativeStatusText, responses, headers ) {\n\t\t\tvar isSuccess, success, error, response, modified,\n\t\t\t\tstatusText = nativeStatusText;\n\n\t\t\t// Ignore repeat invocations\n\t\t\tif ( completed ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tcompleted = true;\n\n\t\t\t// Clear timeout if it exists\n\t\t\tif ( timeoutTimer ) {\n\t\t\t\twindow.clearTimeout( timeoutTimer );\n\t\t\t}\n\n\t\t\t// Dereference transport for early garbage collection\n\t\t\t// (no matter how long the jqXHR object will be used)\n\t\t\ttransport = undefined;\n\n\t\t\t// Cache response headers\n\t\t\tresponseHeadersString = headers || "";\n\n\t\t\t// Set readyState\n\t\t\tjqXHR.readyState = status > 0 ? 4 : 0;\n\n\t\t\t// Determine if successful\n\t\t\tisSuccess = status >= 200 && status < 300 || status === 304;\n\n\t\t\t// Get response data\n\t\t\tif ( responses ) {\n\t\t\t\tresponse = ajaxHandleResponses( s, jqXHR, responses );\n\t\t\t}\n\n\t\t\t// Convert no matter what (that way responseXXX fields are always set)\n\t\t\tresponse = ajaxConvert( s, response, jqXHR, isSuccess );\n\n\t\t\t// If successful, handle type chaining\n\t\t\tif ( isSuccess ) {\n\n\t\t\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\t\t\tif ( s.ifModified ) {\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( "Last-Modified" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.lastModified[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( "etag" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.etag[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// if no content\n\t\t\t\tif ( status === 204 || s.type === "HEAD" ) {\n\t\t\t\t\tstatusText = "nocontent";\n\n\t\t\t\t// if not modified\n\t\t\t\t} else if ( status === 304 ) {\n\t\t\t\t\tstatusText = "notmodified";\n\n\t\t\t\t// If we have data, let\'s convert it\n\t\t\t\t} else {\n\t\t\t\t\tstatusText = response.state;\n\t\t\t\t\tsuccess = response.data;\n\t\t\t\t\terror = response.error;\n\t\t\t\t\tisSuccess = !error;\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// Extract error from statusText and normalize for non-aborts\n\t\t\t\terror = statusText;\n\t\t\t\tif ( status || !statusText ) {\n\t\t\t\t\tstatusText = "error";\n\t\t\t\t\tif ( status < 0 ) {\n\t\t\t\t\t\tstatus = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Set data for the fake xhr object\n\t\t\tjqXHR.status = status;\n\t\t\tjqXHR.statusText = ( nativeStatusText || statusText ) + "";\n\n\t\t\t// Success/Error\n\t\t\tif ( isSuccess ) {\n\t\t\t\tdeferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );\n\t\t\t} else {\n\t\t\t\tdeferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );\n\t\t\t}\n\n\t\t\t// Status-dependent callbacks\n\t\t\tjqXHR.statusCode( statusCode );\n\t\t\tstatusCode = undefined;\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError",\n\t\t\t\t\t[ jqXHR, s, isSuccess ? success : error ] );\n\t\t\t}\n\n\t\t\t// Complete\n\t\t\tcompleteDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] );\n\n\t\t\t\t// Handle the global AJAX counter\n\t\t\t\tif ( !( --jQuery.active ) ) {\n\t\t\t\t\tjQuery.event.trigger( "ajaxStop" );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn jqXHR;\n\t},\n\n\tgetJSON: function( url, data, callback ) {\n\t\treturn jQuery.get( url, data, callback, "json" );\n\t},\n\n\tgetScript: function( url, callback ) {\n\t\treturn jQuery.get( url, undefined, callback, "script" );\n\t}\n} );\n\njQuery.each( [ "get", "post" ], function( i, method ) {\n\tjQuery[ method ] = function( url, data, callback, type ) {\n\n\t\t// Shift arguments if data argument was omitted\n\t\tif ( jQuery.isFunction( data ) ) {\n\t\t\ttype = type || callback;\n\t\t\tcallback = data;\n\t\t\tdata = undefined;\n\t\t}\n\n\t\t// The url can be an options object (which then must have .url)\n\t\treturn jQuery.ajax( jQuery.extend( {\n\t\t\turl: url,\n\t\t\ttype: method,\n\t\t\tdataType: type,\n\t\t\tdata: data,\n\t\t\tsuccess: callback\n\t\t}, jQuery.isPlainObject( url ) && url ) );\n\t};\n} );\n\n\njQuery._evalUrl = function( url ) {\n\treturn jQuery.ajax( {\n\t\turl: url,\n\n\t\t// Make this explicit, since user can override this through ajaxSetup (#11264)\n\t\ttype: "GET",\n\t\tdataType: "script",\n\t\tcache: true,\n\t\tasync: false,\n\t\tglobal: false,\n\t\t"throws": true\n\t} );\n};\n\n\njQuery.fn.extend( {\n\twrapAll: function( html ) {\n\t\tvar wrap;\n\n\t\tif ( this[ 0 ] ) {\n\t\t\tif ( jQuery.isFunction( html ) ) {\n\t\t\t\thtml = html.call( this[ 0 ] );\n\t\t\t}\n\n\t\t\t// The elements to wrap the target around\n\t\t\twrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );\n\n\t\t\tif ( this[ 0 ].parentNode ) {\n\t\t\t\twrap.insertBefore( this[ 0 ] );\n\t\t\t}\n\n\t\t\twrap.map( function() {\n\t\t\t\tvar elem = this;\n\n\t\t\t\twhile ( elem.firstElementChild ) {\n\t\t\t\t\telem = elem.firstElementChild;\n\t\t\t\t}\n\n\t\t\t\treturn elem;\n\t\t\t} ).append( this );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\twrapInner: function( html ) {\n\t\tif ( jQuery.isFunction( html ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).wrapInner( html.call( this, i ) );\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar self = jQuery( this ),\n\t\t\t\tcontents = self.contents();\n\n\t\t\tif ( contents.length ) {\n\t\t\t\tcontents.wrapAll( html );\n\n\t\t\t} else {\n\t\t\t\tself.append( html );\n\t\t\t}\n\t\t} );\n\t},\n\n\twrap: function( html ) {\n\t\tvar isFunction = jQuery.isFunction( html );\n\n\t\treturn this.each( function( i ) {\n\t\t\tjQuery( this ).wrapAll( isFunction ? html.call( this, i ) : html );\n\t\t} );\n\t},\n\n\tunwrap: function( selector ) {\n\t\tthis.parent( selector ).not( "body" ).each( function() {\n\t\t\tjQuery( this ).replaceWith( this.childNodes );\n\t\t} );\n\t\treturn this;\n\t}\n} );\n\n\njQuery.expr.pseudos.hidden = function( elem ) {\n\treturn !jQuery.expr.pseudos.visible( elem );\n};\njQuery.expr.pseudos.visible = function( elem ) {\n\treturn !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );\n};\n\n\n\n\njQuery.ajaxSettings.xhr = function() {\n\ttry {\n\t\treturn new window.XMLHttpRequest();\n\t} catch ( e ) {}\n};\n\nvar xhrSuccessStatus = {\n\n\t\t// File protocol always yields status code 0, assume 200\n\t\t0: 200,\n\n\t\t// Support: IE <=9 only\n\t\t// #1450: sometimes IE returns 1223 when it should be 204\n\t\t1223: 204\n\t},\n\txhrSupported = jQuery.ajaxSettings.xhr();\n\nsupport.cors = !!xhrSupported && ( "withCredentials" in xhrSupported );\nsupport.ajax = xhrSupported = !!xhrSupported;\n\njQuery.ajaxTransport( function( options ) {\n\tvar callback, errorCallback;\n\n\t// Cross domain only allowed if supported through XMLHttpRequest\n\tif ( support.cors || xhrSupported && !options.crossDomain ) {\n\t\treturn {\n\t\t\tsend: function( headers, complete ) {\n\t\t\t\tvar i,\n\t\t\t\t\txhr = options.xhr();\n\n\t\t\t\txhr.open(\n\t\t\t\t\toptions.type,\n\t\t\t\t\toptions.url,\n\t\t\t\t\toptions.async,\n\t\t\t\t\toptions.username,\n\t\t\t\t\toptions.password\n\t\t\t\t);\n\n\t\t\t\t// Apply custom fields if provided\n\t\t\t\tif ( options.xhrFields ) {\n\t\t\t\t\tfor ( i in options.xhrFields ) {\n\t\t\t\t\t\txhr[ i ] = options.xhrFields[ i ];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Override mime type if needed\n\t\t\t\tif ( options.mimeType && xhr.overrideMimeType ) {\n\t\t\t\t\txhr.overrideMimeType( options.mimeType );\n\t\t\t\t}\n\n\t\t\t\t// X-Requested-With header\n\t\t\t\t// For cross-domain requests, seeing as conditions for a preflight are\n\t\t\t\t// akin to a jigsaw puzzle, we simply never set it to be sure.\n\t\t\t\t// (it can always be set on a per-request basis or even using ajaxSetup)\n\t\t\t\t// For same-domain requests, won\'t change header if already provided.\n\t\t\t\tif ( !options.crossDomain && !headers[ "X-Requested-With" ] ) {\n\t\t\t\t\theaders[ "X-Requested-With" ] = "XMLHttpRequest";\n\t\t\t\t}\n\n\t\t\t\t// Set headers\n\t\t\t\tfor ( i in headers ) {\n\t\t\t\t\txhr.setRequestHeader( i, headers[ i ] );\n\t\t\t\t}\n\n\t\t\t\t// Callback\n\t\t\t\tcallback = function( type ) {\n\t\t\t\t\treturn function() {\n\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\tcallback = errorCallback = xhr.onload =\n\t\t\t\t\t\t\t\txhr.onerror = xhr.onabort = xhr.onreadystatechange = null;\n\n\t\t\t\t\t\t\tif ( type === "abort" ) {\n\t\t\t\t\t\t\t\txhr.abort();\n\t\t\t\t\t\t\t} else if ( type === "error" ) {\n\n\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t// On a manual native abort, IE9 throws\n\t\t\t\t\t\t\t\t// errors on any property access that is not readyState\n\t\t\t\t\t\t\t\tif ( typeof xhr.status !== "number" ) {\n\t\t\t\t\t\t\t\t\tcomplete( 0, "error" );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tcomplete(\n\n\t\t\t\t\t\t\t\t\t\t// File: protocol always yields status 0; see #8605, #14207\n\t\t\t\t\t\t\t\t\t\txhr.status,\n\t\t\t\t\t\t\t\t\t\txhr.statusText\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tcomplete(\n\t\t\t\t\t\t\t\t\txhrSuccessStatus[ xhr.status ] || xhr.status,\n\t\t\t\t\t\t\t\t\txhr.statusText,\n\n\t\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t\t// IE9 has no XHR2 but throws on binary (trac-11426)\n\t\t\t\t\t\t\t\t\t// For XHR2 non-text, let the caller handle it (gh-2498)\n\t\t\t\t\t\t\t\t\t( xhr.responseType || "text" ) !== "text" ||\n\t\t\t\t\t\t\t\t\ttypeof xhr.responseText !== "string" ?\n\t\t\t\t\t\t\t\t\t\t{ binary: xhr.response } :\n\t\t\t\t\t\t\t\t\t\t{ text: xhr.responseText },\n\t\t\t\t\t\t\t\t\txhr.getAllResponseHeaders()\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t};\n\n\t\t\t\t// Listen to events\n\t\t\t\txhr.onload = callback();\n\t\t\t\terrorCallback = xhr.onerror = callback( "error" );\n\n\t\t\t\t// Support: IE 9 only\n\t\t\t\t// Use onreadystatechange to replace onabort\n\t\t\t\t// to handle uncaught aborts\n\t\t\t\tif ( xhr.onabort !== undefined ) {\n\t\t\t\t\txhr.onabort = errorCallback;\n\t\t\t\t} else {\n\t\t\t\t\txhr.onreadystatechange = function() {\n\n\t\t\t\t\t\t// Check readyState before timeout as it changes\n\t\t\t\t\t\tif ( xhr.readyState === 4 ) {\n\n\t\t\t\t\t\t\t// Allow onerror to be called first,\n\t\t\t\t\t\t\t// but that will not handle a native abort\n\t\t\t\t\t\t\t// Also, save errorCallback to a variable\n\t\t\t\t\t\t\t// as xhr.onerror cannot be accessed\n\t\t\t\t\t\t\twindow.setTimeout( function() {\n\t\t\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\t\t\terrorCallback();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\t// Create the abort callback\n\t\t\t\tcallback = callback( "abort" );\n\n\t\t\t\ttry {\n\n\t\t\t\t\t// Do send the request (this may raise an exception)\n\t\t\t\t\txhr.send( options.hasContent && options.data || null );\n\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t// #14683: Only rethrow if this hasn\'t been notified as an error yet\n\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\tthrow e;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\n// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)\njQuery.ajaxPrefilter( function( s ) {\n\tif ( s.crossDomain ) {\n\t\ts.contents.script = false;\n\t}\n} );\n\n// Install script dataType\njQuery.ajaxSetup( {\n\taccepts: {\n\t\tscript: "text/javascript, application/javascript, " +\n\t\t\t"application/ecmascript, application/x-ecmascript"\n\t},\n\tcontents: {\n\t\tscript: /\\b(?:java|ecma)script\\b/\n\t},\n\tconverters: {\n\t\t"text script": function( text ) {\n\t\t\tjQuery.globalEval( text );\n\t\t\treturn text;\n\t\t}\n\t}\n} );\n\n// Handle cache\'s special case and crossDomain\njQuery.ajaxPrefilter( "script", function( s ) {\n\tif ( s.cache === undefined ) {\n\t\ts.cache = false;\n\t}\n\tif ( s.crossDomain ) {\n\t\ts.type = "GET";\n\t}\n} );\n\n// Bind script tag hack transport\njQuery.ajaxTransport( "script", function( s ) {\n\n\t// This transport only deals with cross domain requests\n\tif ( s.crossDomain ) {\n\t\tvar script, callback;\n\t\treturn {\n\t\t\tsend: function( _, complete ) {\n\t\t\t\tscript = jQuery( "<script>" ).prop( {\n\t\t\t\t\tcharset: s.scriptCharset,\n\t\t\t\t\tsrc: s.url\n\t\t\t\t} ).on(\n\t\t\t\t\t"load error",\n\t\t\t\t\tcallback = function( evt ) {\n\t\t\t\t\t\tscript.remove();\n\t\t\t\t\t\tcallback = null;\n\t\t\t\t\t\tif ( evt ) {\n\t\t\t\t\t\t\tcomplete( evt.type === "error" ? 404 : 200, evt.type );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\t// Use native DOM manipulation to avoid our domManip AJAX trickery\n\t\t\t\tdocument.head.appendChild( script[ 0 ] );\n\t\t\t},\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\nvar oldCallbacks = [],\n\trjsonp = /(=)\\?(?=&|$)|\\?\\?/;\n\n// Default jsonp settings\njQuery.ajaxSetup( {\n\tjsonp: "callback",\n\tjsonpCallback: function() {\n\t\tvar callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce++ ) );\n\t\tthis[ callback ] = true;\n\t\treturn callback;\n\t}\n} );\n\n// Detect, normalize options and install callbacks for jsonp requests\njQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) {\n\n\tvar callbackName, overwritten, responseContainer,\n\t\tjsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ?\n\t\t\t"url" :\n\t\t\ttypeof s.data === "string" &&\n\t\t\t\t( s.contentType || "" )\n\t\t\t\t\t.indexOf( "application/x-www-form-urlencoded" ) === 0 &&\n\t\t\t\trjsonp.test( s.data ) && "data"\n\t\t);\n\n\t// Handle iff the expected data type is "jsonp" or we have a parameter to set\n\tif ( jsonProp || s.dataTypes[ 0 ] === "jsonp" ) {\n\n\t\t// Get callback name, remembering preexisting value associated with it\n\t\tcallbackName = s.jsonpCallback = jQuery.isFunction( s.jsonpCallback ) ?\n\t\t\ts.jsonpCallback() :\n\t\t\ts.jsonpCallback;\n\n\t\t// Insert callback into url or form data\n\t\tif ( jsonProp ) {\n\t\t\ts[ jsonProp ] = s[ jsonProp ].replace( rjsonp, "$1" + callbackName );\n\t\t} else if ( s.jsonp !== false ) {\n\t\t\ts.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.jsonp + "=" + callbackName;\n\t\t}\n\n\t\t// Use data converter to retrieve json after script execution\n\t\ts.converters[ "script json" ] = function() {\n\t\t\tif ( !responseContainer ) {\n\t\t\t\tjQuery.error( callbackName + " was not called" );\n\t\t\t}\n\t\t\treturn responseContainer[ 0 ];\n\t\t};\n\n\t\t// Force json dataType\n\t\ts.dataTypes[ 0 ] = "json";\n\n\t\t// Install callback\n\t\toverwritten = window[ callbackName ];\n\t\twindow[ callbackName ] = function() {\n\t\t\tresponseContainer = arguments;\n\t\t};\n\n\t\t// Clean-up function (fires after converters)\n\t\tjqXHR.always( function() {\n\n\t\t\t// If previous value didn\'t exist - remove it\n\t\t\tif ( overwritten === undefined ) {\n\t\t\t\tjQuery( window ).removeProp( callbackName );\n\n\t\t\t// Otherwise restore preexisting value\n\t\t\t} else {\n\t\t\t\twindow[ callbackName ] = overwritten;\n\t\t\t}\n\n\t\t\t// Save back as free\n\t\t\tif ( s[ callbackName ] ) {\n\n\t\t\t\t// Make sure that re-using the options doesn\'t screw things around\n\t\t\t\ts.jsonpCallback = originalSettings.jsonpCallback;\n\n\t\t\t\t// Save the callback name for future use\n\t\t\t\toldCallbacks.push( callbackName );\n\t\t\t}\n\n\t\t\t// Call if it was a function and we have a response\n\t\t\tif ( responseContainer && jQuery.isFunction( overwritten ) ) {\n\t\t\t\toverwritten( responseContainer[ 0 ] );\n\t\t\t}\n\n\t\t\tresponseContainer = overwritten = undefined;\n\t\t} );\n\n\t\t// Delegate to script\n\t\treturn "script";\n\t}\n} );\n\n\n\n\n// Support: Safari 8 only\n// In Safari 8 documents created via document.implementation.createHTMLDocument\n// collapse sibling forms: the second one becomes a child of the first one.\n// Because of that, this security measure has to be disabled in Safari 8.\n// https://bugs.webkit.org/show_bug.cgi?id=137337\nsupport.createHTMLDocument = ( function() {\n\tvar body = document.implementation.createHTMLDocument( "" ).body;\n\tbody.innerHTML = "<form></form><form></form>";\n\treturn body.childNodes.length === 2;\n} )();\n\n\n// Argument "data" should be string of html\n// context (optional): If specified, the fragment will be created in this context,\n// defaults to document\n// keepScripts (optional): If true, will include scripts passed in the html string\njQuery.parseHTML = function( data, context, keepScripts ) {\n\tif ( typeof data !== "string" ) {\n\t\treturn [];\n\t}\n\tif ( typeof context === "boolean" ) {\n\t\tkeepScripts = context;\n\t\tcontext = false;\n\t}\n\n\tvar base, parsed, scripts;\n\n\tif ( !context ) {\n\n\t\t// Stop scripts or inline event handlers from being executed immediately\n\t\t// by using document.implementation\n\t\tif ( support.createHTMLDocument ) {\n\t\t\tcontext = document.implementation.createHTMLDocument( "" );\n\n\t\t\t// Set the base href for the created document\n\t\t\t// so any parsed elements with URLs\n\t\t\t// are based on the document\'s URL (gh-2965)\n\t\t\tbase = context.createElement( "base" );\n\t\t\tbase.href = document.location.href;\n\t\t\tcontext.head.appendChild( base );\n\t\t} else {\n\t\t\tcontext = document;\n\t\t}\n\t}\n\n\tparsed = rsingleTag.exec( data );\n\tscripts = !keepScripts && [];\n\n\t// Single tag\n\tif ( parsed ) {\n\t\treturn [ context.createElement( parsed[ 1 ] ) ];\n\t}\n\n\tparsed = buildFragment( [ data ], context, scripts );\n\n\tif ( scripts && scripts.length ) {\n\t\tjQuery( scripts ).remove();\n\t}\n\n\treturn jQuery.merge( [], parsed.childNodes );\n};\n\n\n/**\n * Load a url into a page\n */\njQuery.fn.load = function( url, params, callback ) {\n\tvar selector, type, response,\n\t\tself = this,\n\t\toff = url.indexOf( " " );\n\n\tif ( off > -1 ) {\n\t\tselector = stripAndCollapse( url.slice( off ) );\n\t\turl = url.slice( 0, off );\n\t}\n\n\t// If it\'s a function\n\tif ( jQuery.isFunction( params ) ) {\n\n\t\t// We assume that it\'s the callback\n\t\tcallback = params;\n\t\tparams = undefined;\n\n\t// Otherwise, build a param string\n\t} else if ( params && typeof params === "object" ) {\n\t\ttype = "POST";\n\t}\n\n\t// If we have elements to modify, make the request\n\tif ( self.length > 0 ) {\n\t\tjQuery.ajax( {\n\t\t\turl: url,\n\n\t\t\t// If "type" variable is undefined, then "GET" method will be used.\n\t\t\t// Make value of this field explicit since\n\t\t\t// user can override it through ajaxSetup method\n\t\t\ttype: type || "GET",\n\t\t\tdataType: "html",\n\t\t\tdata: params\n\t\t} ).done( function( responseText ) {\n\n\t\t\t// Save response for use in complete callback\n\t\t\tresponse = arguments;\n\n\t\t\tself.html( selector ?\n\n\t\t\t\t// If a selector was specified, locate the right elements in a dummy div\n\t\t\t\t// Exclude scripts to avoid IE \'Permission Denied\' errors\n\t\t\t\tjQuery( "<div>" ).append( jQuery.parseHTML( responseText ) ).find( selector ) :\n\n\t\t\t\t// Otherwise use the full result\n\t\t\t\tresponseText );\n\n\t\t// If the request succeeds, this function gets "data", "status", "jqXHR"\n\t\t// but they are ignored because response was set above.\n\t\t// If it fails, this function gets "jqXHR", "status", "error"\n\t\t} ).always( callback && function( jqXHR, status ) {\n\t\t\tself.each( function() {\n\t\t\t\tcallback.apply( this, response || [ jqXHR.responseText, status, jqXHR ] );\n\t\t\t} );\n\t\t} );\n\t}\n\n\treturn this;\n};\n\n\n\n\n// Attach a bunch of functions for handling common AJAX events\njQuery.each( [\n\t"ajaxStart",\n\t"ajaxStop",\n\t"ajaxComplete",\n\t"ajaxError",\n\t"ajaxSuccess",\n\t"ajaxSend"\n], function( i, type ) {\n\tjQuery.fn[ type ] = function( fn ) {\n\t\treturn this.on( type, fn );\n\t};\n} );\n\n\n\n\njQuery.expr.pseudos.animated = function( elem ) {\n\treturn jQuery.grep( jQuery.timers, function( fn ) {\n\t\treturn elem === fn.elem;\n\t} ).length;\n};\n\n\n\n\n/**\n * Gets a window from an element\n */\nfunction getWindow( elem ) {\n\treturn jQuery.isWindow( elem ) ? elem : elem.nodeType === 9 && elem.defaultView;\n}\n\njQuery.offset = {\n\tsetOffset: function( elem, options, i ) {\n\t\tvar curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition,\n\t\t\tposition = jQuery.css( elem, "position" ),\n\t\t\tcurElem = jQuery( elem ),\n\t\t\tprops = {};\n\n\t\t// Set position first, in-case top/left are set even on static elem\n\t\tif ( position === "static" ) {\n\t\t\telem.style.position = "relative";\n\t\t}\n\n\t\tcurOffset = curElem.offset();\n\t\tcurCSSTop = jQuery.css( elem, "top" );\n\t\tcurCSSLeft = jQuery.css( elem, "left" );\n\t\tcalculatePosition = ( position === "absolute" || position === "fixed" ) &&\n\t\t\t( curCSSTop + curCSSLeft ).indexOf( "auto" ) > -1;\n\n\t\t// Need to be able to calculate position if either\n\t\t// top or left is auto and position is either absolute or fixed\n\t\tif ( calculatePosition ) {\n\t\t\tcurPosition = curElem.position();\n\t\t\tcurTop = curPosition.top;\n\t\t\tcurLeft = curPosition.left;\n\n\t\t} else {\n\t\t\tcurTop = parseFloat( curCSSTop ) || 0;\n\t\t\tcurLeft = parseFloat( curCSSLeft ) || 0;\n\t\t}\n\n\t\tif ( jQuery.isFunction( options ) ) {\n\n\t\t\t// Use jQuery.extend here to allow modification of coordinates argument (gh-1848)\n\t\t\toptions = options.call( elem, i, jQuery.extend( {}, curOffset ) );\n\t\t}\n\n\t\tif ( options.top != null ) {\n\t\t\tprops.top = ( options.top - curOffset.top ) + curTop;\n\t\t}\n\t\tif ( options.left != null ) {\n\t\t\tprops.left = ( options.left - curOffset.left ) + curLeft;\n\t\t}\n\n\t\tif ( "using" in options ) {\n\t\t\toptions.using.call( elem, props );\n\n\t\t} else {\n\t\t\tcurElem.css( props );\n\t\t}\n\t}\n};\n\njQuery.fn.extend( {\n\toffset: function( options ) {\n\n\t\t// Preserve chaining for setter\n\t\tif ( arguments.length ) {\n\t\t\treturn options === undefined ?\n\t\t\t\tthis :\n\t\t\t\tthis.each( function( i ) {\n\t\t\t\t\tjQuery.offset.setOffset( this, options, i );\n\t\t\t\t} );\n\t\t}\n\n\t\tvar docElem, win, rect, doc,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !elem ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Support: IE <=11 only\n\t\t// Running getBoundingClientRect on a\n\t\t// disconnected node in IE throws an error\n\t\tif ( !elem.getClientRects().length ) {\n\t\t\treturn { top: 0, left: 0 };\n\t\t}\n\n\t\trect = elem.getBoundingClientRect();\n\n\t\t// Make sure element is not hidden (display: none)\n\t\tif ( rect.width || rect.height ) {\n\t\t\tdoc = elem.ownerDocument;\n\t\t\twin = getWindow( doc );\n\t\t\tdocElem = doc.documentElement;\n\n\t\t\treturn {\n\t\t\t\ttop: rect.top + win.pageYOffset - docElem.clientTop,\n\t\t\t\tleft: rect.left + win.pageXOffset - docElem.clientLeft\n\t\t\t};\n\t\t}\n\n\t\t// Return zeros for disconnected and hidden elements (gh-2310)\n\t\treturn rect;\n\t},\n\n\tposition: function() {\n\t\tif ( !this[ 0 ] ) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar offsetParent, offset,\n\t\t\telem = this[ 0 ],\n\t\t\tparentOffset = { top: 0, left: 0 };\n\n\t\t// Fixed elements are offset from window (parentOffset = {top:0, left: 0},\n\t\t// because it is its only offset parent\n\t\tif ( jQuery.css( elem, "position" ) === "fixed" ) {\n\n\t\t\t// Assume getBoundingClientRect is there when computed position is fixed\n\t\t\toffset = elem.getBoundingClientRect();\n\n\t\t} else {\n\n\t\t\t// Get *real* offsetParent\n\t\t\toffsetParent = this.offsetParent();\n\n\t\t\t// Get correct offsets\n\t\t\toffset = this.offset();\n\t\t\tif ( !jQuery.nodeName( offsetParent[ 0 ], "html" ) ) {\n\t\t\t\tparentOffset = offsetParent.offset();\n\t\t\t}\n\n\t\t\t// Add offsetParent borders\n\t\t\tparentOffset = {\n\t\t\t\ttop: parentOffset.top + jQuery.css( offsetParent[ 0 ], "borderTopWidth", true ),\n\t\t\t\tleft: parentOffset.left + jQuery.css( offsetParent[ 0 ], "borderLeftWidth", true )\n\t\t\t};\n\t\t}\n\n\t\t// Subtract parent offsets and element margins\n\t\treturn {\n\t\t\ttop: offset.top - parentOffset.top - jQuery.css( elem, "marginTop", true ),\n\t\t\tleft: offset.left - parentOffset.left - jQuery.css( elem, "marginLeft", true )\n\t\t};\n\t},\n\n\t// This method will return documentElement in the following cases:\n\t// 1) For the element inside the iframe without offsetParent, this method will return\n\t// documentElement of the parent window\n\t// 2) For the hidden or detached element\n\t// 3) For body or html element, i.e. in case of the html node - it will return itself\n\t//\n\t// but those exceptions were never presented as a real life use-cases\n\t// and might be considered as more preferable results.\n\t//\n\t// This logic, however, is not guaranteed and can change at any point in the future\n\toffsetParent: function() {\n\t\treturn this.map( function() {\n\t\t\tvar offsetParent = this.offsetParent;\n\n\t\t\twhile ( offsetParent && jQuery.css( offsetParent, "position" ) === "static" ) {\n\t\t\t\toffsetParent = offsetParent.offsetParent;\n\t\t\t}\n\n\t\t\treturn offsetParent || documentElement;\n\t\t} );\n\t}\n} );\n\n// Create scrollLeft and scrollTop methods\njQuery.each( { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function( method, prop ) {\n\tvar top = "pageYOffset" === prop;\n\n\tjQuery.fn[ method ] = function( val ) {\n\t\treturn access( this, function( elem, method, val ) {\n\t\t\tvar win = getWindow( elem );\n\n\t\t\tif ( val === undefined ) {\n\t\t\t\treturn win ? win[ prop ] : elem[ method ];\n\t\t\t}\n\n\t\t\tif ( win ) {\n\t\t\t\twin.scrollTo(\n\t\t\t\t\t!top ? val : win.pageXOffset,\n\t\t\t\t\ttop ? val : win.pageYOffset\n\t\t\t\t);\n\n\t\t\t} else {\n\t\t\t\telem[ method ] = val;\n\t\t\t}\n\t\t}, method, val, arguments.length );\n\t};\n} );\n\n// Support: Safari <=7 - 9.1, Chrome <=37 - 49\n// Add the top/left cssHooks using jQuery.fn.position\n// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084\n// Blink bug: https://bugs.chromium.org/p/chromium/issues/detail?id=589347\n// getComputedStyle returns percent when specified for top/left/bottom/right;\n// rather than make the css module depend on the offset module, just check for it here\njQuery.each( [ "top", "left" ], function( i, prop ) {\n\tjQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,\n\t\tfunction( elem, computed ) {\n\t\t\tif ( computed ) {\n\t\t\t\tcomputed = curCSS( elem, prop );\n\n\t\t\t\t// If curCSS returns percentage, fallback to offset\n\t\t\t\treturn rnumnonpx.test( computed ) ?\n\t\t\t\t\tjQuery( elem ).position()[ prop ] + "px" :\n\t\t\t\t\tcomputed;\n\t\t\t}\n\t\t}\n\t);\n} );\n\n\n// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods\njQuery.each( { Height: "height", Width: "width" }, function( name, type ) {\n\tjQuery.each( { padding: "inner" + name, content: type, "": "outer" + name },\n\t\tfunction( defaultExtra, funcName ) {\n\n\t\t// Margin is only for outerHeight, outerWidth\n\t\tjQuery.fn[ funcName ] = function( margin, value ) {\n\t\t\tvar chainable = arguments.length && ( defaultExtra || typeof margin !== "boolean" ),\n\t\t\t\textra = defaultExtra || ( margin === true || value === true ? "margin" : "border" );\n\n\t\t\treturn access( this, function( elem, type, value ) {\n\t\t\t\tvar doc;\n\n\t\t\t\tif ( jQuery.isWindow( elem ) ) {\n\n\t\t\t\t\t// $( window ).outerWidth/Height return w/h including scrollbars (gh-1729)\n\t\t\t\t\treturn funcName.indexOf( "outer" ) === 0 ?\n\t\t\t\t\t\telem[ "inner" + name ] :\n\t\t\t\t\t\telem.document.documentElement[ "client" + name ];\n\t\t\t\t}\n\n\t\t\t\t// Get document width or height\n\t\t\t\tif ( elem.nodeType === 9 ) {\n\t\t\t\t\tdoc = elem.documentElement;\n\n\t\t\t\t\t// Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height],\n\t\t\t\t\t// whichever is greatest\n\t\t\t\t\treturn Math.max(\n\t\t\t\t\t\telem.body[ "scroll" + name ], doc[ "scroll" + name ],\n\t\t\t\t\t\telem.body[ "offset" + name ], doc[ "offset" + name ],\n\t\t\t\t\t\tdoc[ "client" + name ]\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn value === undefined ?\n\n\t\t\t\t\t// Get width or height on the element, requesting but not forcing parseFloat\n\t\t\t\t\tjQuery.css( elem, type, extra ) :\n\n\t\t\t\t\t// Set width or height on the element\n\t\t\t\t\tjQuery.style( elem, type, value, extra );\n\t\t\t}, type, chainable ? margin : undefined, chainable );\n\t\t};\n\t} );\n} );\n\n\njQuery.fn.extend( {\n\n\tbind: function( types, data, fn ) {\n\t\treturn this.on( types, null, data, fn );\n\t},\n\tunbind: function( types, fn ) {\n\t\treturn this.off( types, null, fn );\n\t},\n\n\tdelegate: function( selector, types, data, fn ) {\n\t\treturn this.on( types, selector, data, fn );\n\t},\n\tundelegate: function( selector, types, fn ) {\n\n\t\t// ( namespace ) or ( selector, types [, fn] )\n\t\treturn arguments.length === 1 ?\n\t\t\tthis.off( selector, "**" ) :\n\t\t\tthis.off( types, selector || "**", fn );\n\t}\n} );\n\njQuery.parseJSON = JSON.parse;\n\n\n\n\n// Register as a named AMD module, since jQuery can be concatenated with other\n// files that may use define, but not via a proper concatenation script that\n// understands anonymous AMD modules. A named AMD is safest and most robust\n// way to register. Lowercase jquery is used because AMD module names are\n// derived from file names, and jQuery is normally delivered in a lowercase\n// file name. Do this after creating the global so that if an AMD module wants\n// to call noConflict to hide this version of jQuery, it will work.\n\n// Note that for maximum portability, libraries that are not jQuery should\n// declare themselves as anonymous modules, and avoid setting a global if an\n// AMD loader is present. jQuery is a special case. For more information, see\n// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon\n\nif ( typeof define === "function" && define.amd ) {\n\tdefine( "jquery", [], function() {\n\t\treturn jQuery;\n\t} );\n}\n\n\n\n\nvar\n\n\t// Map over jQuery in case of overwrite\n\t_jQuery = window.jQuery,\n\n\t// Map over the $ in case of overwrite\n\t_$ = window.$;\n\njQuery.noConflict = function( deep ) {\n\tif ( window.$ === jQuery ) {\n\t\twindow.$ = _$;\n\t}\n\n\tif ( deep && window.jQuery === jQuery ) {\n\t\twindow.jQuery = _jQuery;\n\t}\n\n\treturn jQuery;\n};\n\n// Expose jQuery and $ identifiers, even in AMD\n// (#7102#comment:10, https://github.com/jquery/jquery/pull/557)\n// and CommonJS for browser emulators (#13566)\nif ( !noGlobal ) {\n\twindow.jQuery = window.$ = jQuery;\n}\n\n\n\n\n\nreturn jQuery;\n} );\n';
},function(e,t){e.exports=" /*\n * # Semantic UI - 2.2.11\n * https://github.com/Semantic-Org/Semantic-UI\n * http://www.semantic-ui.com/\n *\n * Copyright 2014 Contributors\n * Released under the MIT license\n * http://opensource.org/licenses/MIT\n *\n */\n/*!\n * # Semantic UI 2.2.11 - Site\n * http://github.com/semantic-org/semantic-ui/\n *\n *\n * Released under the MIT license\n * http://opensource.org/licenses/MIT\n *\n */\n\n;(function ($, window, document, undefined) {\n\n$.site = $.fn.site = function(parameters) {\n var\n time = new Date().getTime(),\n performance = [],\n\n query = arguments[0],\n methodInvoked = (typeof query == 'string'),\n queryArguments = [].slice.call(arguments, 1),\n\n settings = ( $.isPlainObject(parameters) )\n ? $.extend(true, {}, $.site.settings, parameters)\n : $.extend({}, $.site.settings),\n\n namespace = settings.namespace,\n error = settings.error,\n\n eventNamespace = '.' + namespace,\n moduleNamespace = 'module-' + namespace,\n\n $document = $(document),\n $module = $document,\n element = this,\n instance = $module.data(moduleNamespace),\n\n module,\n returnedValue\n ;\n module = {\n\n initialize: function() {\n module.instantiate();\n },\n\n instantiate: function() {\n module.verbose('Storing instance of site', module);\n instance = module;\n $module\n .data(moduleNamespace, module)\n ;\n },\n\n normalize: function() {\n module.fix.console();\n module.fix.requestAnimationFrame();\n },\n\n fix: {\n console: function() {\n module.debug('Normalizing window.console');\n if (console === undefined || console.log === undefined) {\n module.verbose('Console not available, normalizing events');\n module.disable.console();\n }\n if (typeof console.group == 'undefined' || typeof console.groupEnd == 'undefined' || typeof console.groupCollapsed == 'undefined') {\n module.verbose('Console group not available, normalizing events');\n window.console.group = function() {};\n window.console.groupEnd = function() {};\n window.console.groupCollapsed = function() {};\n }\n if (typeof console.markTimeline == 'undefined') {\n module.verbose('Mark timeline not available, normalizing events');\n window.console.markTimeline = function() {};\n }\n },\n consoleClear: function() {\n module.debug('Disabling programmatic console clearing');\n window.console.clear = function() {};\n },\n requestAnimationFrame: function() {\n module.debug('Normalizing requestAnimationFrame');\n if(window.requestAnimationFrame === undefined) {\n module.debug('RequestAnimationFrame not available, normalizing event');\n window.requestAnimationFrame = window.requestAnimationFrame\n || window.mozRequestAnimationFrame\n || window.webkitRequestAnimationFrame\n || window.msRequestAnimationFrame\n || function(callback) { setTimeout(callback, 0); }\n ;\n }\n }\n },\n\n moduleExists: function(name) {\n return ($.fn[name] !== undefined && $.fn[name].settings !== undefined);\n },\n\n enabled: {\n modules: function(modules) {\n var\n enabledModules = []\n ;\n modules = modules || settings.modules;\n $.each(modules, function(index, name) {\n if(module.moduleExists(name)) {\n enabledModules.push(name);\n }\n });\n return enabledModules;\n }\n },\n\n disabled: {\n modules: function(modules) {\n var\n disabledModules = []\n ;\n modules = modules || settings.modules;\n $.each(modules, function(index, name) {\n if(!module.moduleExists(name)) {\n disabledModules.push(name);\n }\n });\n return disabledModules;\n }\n },\n\n change: {\n setting: function(setting, value, modules, modifyExisting) {\n modules = (typeof modules === 'string')\n ? (modules === 'all')\n ? settings.modules\n : [modules]\n : modules || settings.modules\n ;\n modifyExisting = (modifyExisting !== undefined)\n ? modifyExisting\n : true\n ;\n $.each(modules, function(index, name) {\n var\n namespace = (module.moduleExists(name))\n ? $.fn[name].settings.namespace || false\n : true,\n $existingModules\n ;\n if(module.moduleExists(name)) {\n module.verbose('Changing default setting', setting, value, name);\n $.fn[name].settings[setting] = value;\n if(modifyExisting && namespace) {\n $existingModules = $(':data(module-' + namespace + ')');\n if($existingModules.length > 0) {\n module.verbose('Modifying existing settings', $existingModules);\n $existingModules[name]('setting', setting, value);\n }\n }\n }\n });\n },\n settings: function(newSettings, modules, modifyExisting) {\n modules = (typeof modules === 'string')\n ? [modules]\n : modules || settings.modules\n ;\n modifyExisting = (modifyExisting !== undefined)\n ? modifyExisting\n : true\n ;\n $.each(modules, function(index, name) {\n var\n $existingModules\n ;\n if(module.moduleExists(name)) {\n module.verbose('Changing default setting', newSettings, name);\n $.extend(true, $.fn[name].settings, newSettings);\n if(modifyExisting && namespace) {\n $existingModules = $(':data(module-' + namespace + ')');\n if($existingModules.length > 0) {\n module.verbose('Modifying existing settings', $existingModules);\n $existingModules[name]('setting', newSettings);\n }\n }\n }\n });\n }\n },\n\n enable: {\n console: function() {\n module.console(true);\n },\n debug: function(modules, modifyExisting) {\n modules = modules || settings.modules;\n module.debug('Enabling debug for modules', modules);\n module.change.setting('debug', true, modules, modifyExisting);\n },\n verbose: function(modules, modifyExisting) {\n modules = modules || settings.modules;\n module.debug('Enabling verbose debug for modules', modules);\n module.change.setting('verbose', true, modules, modifyExisting);\n }\n },\n disable: {\n console: function() {\n module.console(false);\n },\n debug: function(modules, modifyExisting) {\n modules = modules || settings.modules;\n module.debug('Disabling debug for modules', modules);\n module.change.setting('debug', false, modules, modifyExisting);\n },\n verbose: function(modules, modifyExisting) {\n modules = modules || settings.modules;\n module.debug('Disabling verbose debug for modules', modules);\n module.change.setting('verbose', false, modules, modifyExisting);\n }\n },\n\n console: function(enable) {\n if(enable) {\n if(instance.cache.console === undefined) {\n module.error(error.console);\n return;\n }\n module.debug('Restoring console function');\n window.console = instance.cache.console;\n }\n else {\n module.debug('Disabling console function');\n instance.cache.console = window.console;\n window.console = {\n clear : function(){},\n error : function(){},\n group : function(){},\n groupCollapsed : function(){},\n groupEnd : function(){},\n info : function(){},\n log : function(){},\n markTimeline : function(){},\n warn : function(){}\n };\n }\n },\n\n destroy: function() {\n module.verbose('Destroying previous site for', $module);\n $module\n .removeData(moduleNamespace)\n ;\n },\n\n cache: {},\n\n setting: function(name, value) {\n if( $.isPlainObject(name) ) {\n $.extend(true, settings, name);\n }\n else if(value !== undefined) {\n settings[name] = value;\n }\n else {\n return settings[name];\n }\n },\n internal: function(name, value) {\n if( $.isPlainObject(name) ) {\n $.extend(true, module, name);\n }\n else if(value !== undefined) {\n module[name] = value;\n }\n else {\n return module[name];\n }\n },\n debug: function() {\n if(settings.debug) {\n if(settings.performance) {\n module.performance.log(arguments);\n }\n else {\n module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');\n module.debug.apply(console, arguments);\n }\n }\n },\n verbose: function() {\n if(settings.verbose && settings.debug) {\n if(settings.performance) {\n module.performance.log(arguments);\n }\n else {\n module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');\n module.verbose.apply(console, arguments);\n }\n }\n },\n error: function() {\n module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');\n module.error.apply(console, arguments);\n },\n performance: {\n log: function(message) {\n var\n currentTime,\n executionTime,\n previousTime\n ;\n if(settings.performance) {\n currentTime = new Date().getTime();\n previousTime = time || currentTime;\n executionTime = currentTime - previousTime;\n time = currentTime;\n performance.push({\n 'Element' : element,\n 'Name' : message[0],\n 'Arguments' : [].slice.call(message, 1) || '',\n 'Execution Time' : executionTime\n });\n }\n clearTimeout(module.performance.timer);\n module.performance.timer = setTimeout(module.performance.display, 500);\n },\n display: function() {\n var\n title = settings.name + ':',\n totalTime = 0\n ;\n time = false;\n clearTimeout(module.performance.timer);\n $.each(performance, function(index, data) {\n totalTime += data['Execution Time'];\n });\n title += ' ' + totalTime + 'ms';\n if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {\n console.groupCollapsed(title);\n if(console.table) {\n console.table(performance);\n }\n else {\n $.each(performance, function(index, data) {\n console.log(data['Name'] + ': ' + data['Execution Time']+'ms');\n });\n }\n console.groupEnd();\n }\n performance = [];\n }\n },\n invoke: function(query, passedArguments, context) {\n var\n object = instance,\n maxDepth,\n found,\n response\n ;\n passedArguments = passedArguments || queryArguments;\n context = element || context;\n if(typeof query == 'string' && object !== undefined) {\n query = query.split(/[\\. ]/);\n maxDepth = query.length - 1;\n $.each(query, function(depth, value) {\n var camelCaseValue = (depth != maxDepth)\n ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)\n : query\n ;\n if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {\n object = object[camelCaseValue];\n }\n else if( object[camelCaseValue] !== undefined ) {\n found = object[camelCaseValue];\n return false;\n }\n else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {\n object = object[value];\n }\n else if( object[value] !== undefined ) {\n found = object[value];\n return false;\n }\n else {\n module.error(error.method, query);\n return false;\n }\n });\n }\n if ( $.isFunction( found ) ) {\n response = found.apply(context, passedArguments);\n }\n else if(found !== undefined) {\n response = found;\n }\n if($.isArray(returnedValue)) {\n returnedValue.push(response);\n }\n else if(returnedValue !== undefined) {\n returnedValue = [returnedValue, response];\n }\n else if(response !== undefined) {\n returnedValue = response;\n }\n return found;\n }\n };\n\n if(methodInvoked) {\n if(instance === undefined) {\n module.initialize();\n }\n module.invoke(query);\n }\n else {\n if(instance !== undefined) {\n module.destroy();\n }\n module.initialize();\n }\n return (returnedValue !== undefined)\n ? returnedValue\n : this\n ;\n};\n\n$.site.settings = {\n\n name : 'Site',\n namespace : 'site',\n\n error : {\n console : 'Console cannot be restored, most likely it was overwritten outside of module',\n method : 'The method you called is not defined.'\n },\n\n debug : false,\n verbose : false,\n performance : true,\n\n modules: [\n 'accordion',\n 'api',\n 'checkbox',\n 'dimmer',\n 'dropdown',\n 'embed',\n 'form',\n 'modal',\n 'nag',\n 'popup',\n 'rating',\n 'shape',\n 'sidebar',\n 'state',\n 'sticky',\n 'tab',\n 'transition',\n 'visit',\n 'visibility'\n ],\n\n siteNamespace : 'site',\n namespaceStub : {\n cache : {},\n config : {},\n sections : {},\n section : {},\n utilities : {}\n }\n\n};\n\n// allows for selection of elements with data attributes\n$.extend($.expr[ \":\" ], {\n data: ($.expr.createPseudo)\n ? $.expr.createPseudo(function(dataName) {\n return function(elem) {\n return !!$.data(elem, dataName);\n };\n })\n : function(elem, i, match) {\n // support: jQuery < 1.8\n return !!$.data(elem, match[ 3 ]);\n }\n});\n\n\n})( jQuery, window, document );\n\n/*!\n * # Semantic UI 2.2.11 - Form Validation\n * http://github.com/semantic-org/semantic-ui/\n *\n *\n * Released under the MIT license\n * http://opensource.org/licenses/MIT\n *\n */\n\n;(function ($, window, document, undefined) {\n\n\"use strict\";\n\nwindow = (typeof window != 'undefined' && window.Math == Math)\n ? window\n : (typeof self != 'undefined' && self.Math == Math)\n ? self\n : Function('return this')()\n;\n\n$.fn.form = function(parameters) {\n var\n $allModules = $(this),\n moduleSelector = $allModules.selector || '',\n\n time = new Date().getTime(),\n performance = [],\n\n query = arguments[0],\n legacyParameters = arguments[1],\n methodInvoked = (typeof query == 'string'),\n queryArguments = [].slice.call(arguments, 1),\n returnedValue\n ;\n $allModules\n .each(function() {\n var\n $module = $(this),\n element = this,\n\n formErrors = [],\n keyHeldDown = false,\n\n // set at run-time\n $field,\n $group,\n $message,\n $prompt,\n $submit,\n $clear,\n $reset,\n\n settings,\n validation,\n\n metadata,\n selector,\n className,\n regExp,\n error,\n\n namespace,\n moduleNamespace,\n eventNamespace,\n\n instance,\n module\n ;\n\n module = {\n\n initialize: function() {\n\n // settings grabbed at run time\n module.get.settings();\n if(methodInvoked) {\n if(instance === undefined) {\n module.instantiate();\n }\n module.invoke(query);\n }\n else {\n if(instance !== undefined) {\n instance.invoke('destroy');\n }\n module.verbose('Initializing form validation', $module, settings);\n module.bindEvents();\n module.set.defaults();\n module.instantiate();\n }\n },\n\n instantiate: function() {\n module.verbose('Storing instance of module', module);\n instance = module;\n $module\n .data(moduleNamespace, module)\n ;\n },\n\n destroy: function() {\n module.verbose('Destroying previous module', instance);\n module.removeEvents();\n $module\n .removeData(moduleNamespace)\n ;\n },\n\n refresh: function() {\n module.verbose('Refreshing selector cache');\n $field = $module.find(selector.field);\n $group = $module.find(selector.group);\n $message = $module.find(selector.message);\n $prompt = $module.find(selector.prompt);\n\n $submit = $module.find(selector.submit);\n $clear = $module.find(selector.clear);\n $reset = $module.find(selector.reset);\n },\n\n submit: function() {\n module.verbose('Submitting form', $module);\n $module\n .submit()\n ;\n },\n\n attachEvents: function(selector, action) {\n action = action || 'submit';\n $(selector)\n .on('click' + eventNamespace, function(event) {\n module[action]();\n event.preventDefault();\n })\n ;\n },\n\n bindEvents: function() {\n module.verbose('Attaching form events');\n $module\n .on('submit' + eventNamespace, module.validate.form)\n .on('blur' + eventNamespace, selector.field, module.event.field.blur)\n .on('click' + eventNamespace, selector.submit, module.submit)\n .on('click' + eventNamespace, selector.reset, module.reset)\n .on('click' + eventNamespace, selector.clear, module.clear)\n ;\n if(settings.keyboardShortcuts) {\n $module\n .on('keydown' + eventNamespace, selector.field, module.event.field.keydown)\n ;\n }\n $field\n .each(function() {\n var\n $input = $(this),\n type = $input.prop('type'),\n inputEvent = module.get.changeEvent(type, $input)\n ;\n $(this)\n .on(inputEvent + eventNamespace, module.event.field.change)\n ;\n })\n ;\n },\n\n clear: function() {\n $field\n .each(function () {\n var\n $field = $(this),\n $element = $field.parent(),\n $fieldGroup = $field.closest($group),\n $prompt = $fieldGroup.find(selector.prompt),\n defaultValue = $field.data(metadata.defaultValue) || '',\n isCheckbox = $element.is(selector.uiCheckbox),\n isDropdown = $element.is(selector.uiDropdown),\n isErrored = $fieldGroup.hasClass(className.error)\n ;\n if(isErrored) {\n module.verbose('Resetting error on field', $fieldGroup);\n $fieldGroup.removeClass(className.error);\n $prompt.remove();\n }\n if(isDropdown) {\n module.verbose('Resetting dropdown value', $element, defaultValue);\n $element.dropdown('clear');\n }\n else if(isCheckbox) {\n $field.prop('checked', false);\n }\n else {\n module.verbose('Resetting field value', $field, defaultValue);\n $field.val('');\n }\n })\n ;\n },\n\n reset: function() {\n $field\n .each(function () {\n var\n $field = $(this),\n $element = $field.parent(),\n $fieldGroup = $field.closest($group),\n $prompt = $fieldGroup.find(selector.prompt),\n defaultValue = $field.data(metadata.defaultValue),\n isCheckbox = $element.is(selector.uiCheckbox),\n isDropdown = $element.is(selector.uiDropdown),\n isErrored = $fieldGroup.hasClass(className.error)\n ;\n if(defaultValue === undefined) {\n return;\n }\n if(isErrored) {\n module.verbose('Resetting error on field', $fieldGroup);\n $fieldGroup.removeClass(className.error);\n $prompt.remove();\n }\n if(isDropdown) {\n module.verbose('Resetting dropdown value', $element, defaultValue);\n $element.dropdown('restore defaults');\n }\n else if(isCheckbox) {\n module.verbose('Resetting checkbox value', $element, defaultValue);\n $field.prop('checked', defaultValue);\n }\n else {\n module.verbose('Resetting field value', $field, defaultValue);\n $field.val(defaultValue);\n }\n })\n ;\n },\n\n determine: {\n isValid: function() {\n var\n allValid = true\n ;\n $.each(validation, function(fieldName, field) {\n if( !( module.validate.field(field, fieldName, true) ) ) {\n allValid = false;\n }\n });\n return allValid;\n }\n },\n\n is: {\n bracketedRule: function(rule) {\n return (rule.type && rule.type.match(settings.regExp.bracket));\n },\n shorthandFields: function(fields) {\n var\n fieldKeys = Object.keys(fields),\n firstRule = fields[fieldKeys[0]]\n ;\n return module.is.shorthandRules(firstRule);\n },\n // duck type rule test\n shorthandRules: function(rules) {\n return (typeof rules == 'string' || $.isArray(rules));\n },\n empty: function($field) {\n if(!$field || $field.length === 0) {\n return true;\n }\n else if($field.is('input[type=\"checkbox\"]')) {\n return !$field.is(':checked');\n }\n else {\n return module.is.blank($field);\n }\n },\n blank: function($field) {\n return $.trim($field.val()) === '';\n },\n valid: function(field) {\n var\n allValid = true\n ;\n if(field) {\n module.verbose('Checking if field is valid', field);\n return module.validate.field(validation[field], field, false);\n }\n else {\n module.verbose('Checking if form is valid');\n $.each(validation, function(fieldName, field) {\n if( !module.is.valid(fieldName) ) {\n allValid = false;\n }\n });\n return allValid;\n }\n }\n },\n\n removeEvents: function() {\n $module\n .off(eventNamespace)\n ;\n $field\n .off(eventNamespace)\n ;\n $submit\n .off(eventNamespace)\n ;\n $field\n .off(eventNamespace)\n ;\n },\n\n event: {\n field: {\n keydown: function(event) {\n var\n $field = $(this),\n key = event.which,\n isInput = $field.is(selector.input),\n isCheckbox = $field.is(selector.checkbox),\n isInDropdown = ($field.closest(selector.uiDropdown).length > 0),\n keyCode = {\n enter : 13,\n escape : 27\n }\n ;\n if( key == keyCode.escape) {\n module.verbose('Escape key pressed blurring field');\n $field\n .blur()\n ;\n }\n if(!event.ctrlKey && key == keyCode.enter && isInput && !isInDropdown && !isCheckbox) {\n if(!keyHeldDown) {\n $field\n .one('keyup' + eventNamespace, module.event.field.keyup)\n ;\n module.submit();\n module.debug('Enter pressed on input submitting form');\n }\n keyHeldDown = true;\n }\n },\n keyup: function() {\n keyHeldDown = false;\n },\n blur: function(event) {\n var\n $field = $(this),\n $fieldGroup = $field.closest($group),\n validationRules = module.get.validation($field)\n ;\n if( $fieldGroup.hasClass(className.error) ) {\n module.debug('Revalidating field', $field, validationRules);\n if(validationRules) {\n module.validate.field( validationRules );\n }\n }\n else if(settings.on == 'blur' || settings.on == 'change') {\n if(validationRules) {\n module.validate.field( validationRules );\n }\n }\n },\n change: function(event) {\n var\n $field = $(this),\n $fieldGroup = $field.closest($group),\n validationRules = module.get.validation($field)\n ;\n if(validationRules && (settings.on == 'change' || ( $fieldGroup.hasClass(className.error) && settings.revalidate) )) {\n clearTimeout(module.timer);\n module.timer = setTimeout(function() {\n module.debug('Revalidating field', $field, module.get.validation($field));\n module.validate.field( validationRules );\n }, settings.delay);\n }\n }\n }\n\n },\n\n get: {\n ancillaryValue: function(rule) {\n if(!rule.type || (!rule.value && !module.is.bracketedRule(rule))) {\n return false;\n }\n return (rule.value !== undefined)\n ? rule.value\n : rule.type.match(settings.regExp.bracket)[1] + ''\n ;\n },\n ruleName: function(rule) {\n if( module.is.bracketedRule(rule) ) {\n return rule.type.replace(rule.type.match(settings.regExp.bracket)[0], '');\n }\n return rule.type;\n },\n changeEvent: function(type, $input) {\n if(type == 'checkbox' || type == 'radio' || type == 'hidden' || $input.is('select')) {\n return 'change';\n }\n else {\n return module.get.inputEvent();\n }\n },\n inputEvent: function() {\n return (document.createElement('input').oninput !== undefined)\n ? 'input'\n : (document.createElement('input').onpropertychange !== undefined)\n ? 'propertychange'\n : 'keyup'\n ;\n },\n fieldsFromShorthand: function(fields) {\n var\n fullFields = {}\n ;\n $.each(fields, function(name, rules) {\n if(typeof rules == 'string') {\n rules = [rules];\n }\n fullFields[name] = {\n rules: []\n };\n $.each(rules, function(index, rule) {\n fullFields[name].rules.push({ type: rule });\n });\n });\n return fullFields;\n },\n prompt: function(rule, field) {\n var\n ruleName = module.get.ruleName(rule),\n ancillary = module.get.ancillaryValue(rule),\n prompt = rule.prompt || settings.prompt[ruleName] || settings.text.unspecifiedRule,\n requiresValue = (prompt.search('{value}') !== -1),\n requiresName = (prompt.search('{name}') !== -1),\n $label,\n $field,\n name\n ;\n if(requiresName || requiresValue) {\n $field = module.get.field(field.identifier);\n }\n if(requiresValue) {\n prompt = prompt.replace('{value}', $field.val());\n }\n if(requiresName) {\n $label = $field.closest(selector.group).find('label').eq(0);\n name = ($label.length == 1)\n ? $label.text()\n : $field.prop('placeholder') || settings.text.unspecifiedField\n ;\n prompt = prompt.replace('{name}', name);\n }\n prompt = prompt.replace('{identifier}', field.identifier);\n prompt = prompt.replace('{ruleValue}', ancillary);\n if(!rule.prompt) {\n module.verbose('Using default validation prompt for type', prompt, ruleName);\n }\n return prompt;\n },\n settings: function() {\n if($.isPlainObject(parameters)) {\n var\n keys = Object.keys(parameters),\n isLegacySettings = (keys.length > 0)\n ? (parameters[keys[0]].identifier !== undefined && parameters[keys[0]].rules !== undefined)\n : false,\n ruleKeys\n ;\n if(isLegacySettings) {\n // 1.x (ducktyped)\n settings = $.extend(true, {}, $.fn.form.settings, legacyParameters);\n validation = $.extend({}, $.fn.form.settings.defaults, parameters);\n module.error(settings.error.oldSyntax, element);\n module.verbose('Extending settings from legacy parameters', validation, settings);\n }\n else {\n // 2.x\n if(parameters.fields && module.is.shorthandFields(parameters.fields)) {\n parameters.fields = module.get.fieldsFromShorthand(parameters.fields);\n }\n settings = $.extend(true, {}, $.fn.form.settings, parameters);\n validation = $.extend({}, $.fn.form.settings.defaults, settings.fields);\n module.verbose('Extending settings', validation, settings);\n }\n }\n else {\n settings = $.fn.form.settings;\n validation = $.fn.form.settings.defaults;\n module.verbose('Using default form validation', validation, settings);\n }\n\n // shorthand\n namespace = settings.namespace;\n metadata = settings.metadata;\n selector = settings.selector;\n className = settings.className;\n regExp = settings.regExp;\n error = settings.error;\n moduleNamespace = 'module-' + namespace;\n eventNamespace = '.' + namespace;\n\n // grab instance\n instance = $module.data(moduleNamespace);\n\n // refresh selector cache\n module.refresh();\n },\n field: function(identifier) {\n module.verbose('Finding field with identifier', identifier);\n identifier = module.escape.string(identifier);\n if($field.filter('#' + identifier).length > 0 ) {\n return $field.filter('#' + identifier);\n }\n else if( $field.filter('[name=\"' + identifier +'\"]').length > 0 ) {\n return $field.filter('[name=\"' + identifier +'\"]');\n }\n else if( $field.filter('[name=\"' + identifier +'[]\"]').length > 0 ) {\n return $field.filter('[name=\"' + identifier +'[]\"]');\n }\n else if( $field.filter('[data-' + metadata.validate + '=\"'+ identifier +'\"]').length > 0 ) {\n return $field.filter('[data-' + metadata.validate + '=\"'+ identifier +'\"]');\n }\n return $('<input/>');\n },\n fields: function(fields) {\n var\n $fields = $()\n ;\n $.each(fields, function(index, name) {\n $fields = $fields.add( module.get.field(name) );\n });\n return $fields;\n },\n validation: function($field) {\n var\n fieldValidation,\n identifier\n ;\n if(!validation) {\n return false;\n }\n $.each(validation, function(fieldName, field) {\n identifier = field.identifier || fieldName;\n if( module.get.field(identifier)[0] == $field[0] ) {\n field.identifier = identifier;\n fieldValidation = field;\n }\n });\n return fieldValidation || false;\n },\n value: function (field) {\n var\n fields = [],\n results\n ;\n fields.push(field);\n results = module.get.values.call(element, fields);\n return results[field];\n },\n values: function (fields) {\n var\n $fields = $.isArray(fields)\n ? module.get.fields(fields)\n : $field,\n values = {}\n ;\n $fields.each(function(index, field) {\n var\n $field = $(field),\n type = $field.prop('type'),\n name = $field.prop('name'),\n value = $field.val(),\n isCheckbox = $field.is(selector.checkbox),\n isRadio = $field.is(selector.radio),\n isMultiple = (name.indexOf('[]') !== -1),\n isChecked = (isCheckbox)\n ? $field.is(':checked')\n : false\n ;\n if(name) {\n if(isMultiple) {\n name = name.replace('[]', '');\n if(!values[name]) {\n values[name] = [];\n }\n if(isCheckbox) {\n if(isChecked) {\n values[name].push(value || true);\n }\n else {\n values[name].push(false);\n }\n }\n else {\n values[name].push(value);\n }\n }\n else {\n if(isRadio) {\n if(values[name] === undefined) {\n values[name] = (isChecked)\n ? true\n : false\n ;\n }\n }\n else if(isCheckbox) {\n if(isChecked) {\n values[name] = value || true;\n }\n else {\n values[name] = false;\n }\n }\n else {\n values[name] = value;\n }\n }\n }\n });\n return values;\n }\n },\n\n has: {\n\n field: function(identifier) {\n module.verbose('Checking for existence of a field with identifier', identifier);\n identifier = module.escape.string(identifier);\n if(typeof identifier !== 'string') {\n module.error(error.identifier, identifier);\n }\n if($field.filter('#' + identifier).length > 0 ) {\n return true;\n }\n else if( $field.filter('[name=\"' + identifier +'\"]').length > 0 ) {\n return true;\n }\n else if( $field.filter('[data-' + metadata.validate + '=\"'+ identifier +'\"]').length > 0 ) {\n return true;\n }\n return false;\n }\n\n },\n\n escape: {\n string: function(text) {\n text = String(text);\n return text.replace(regExp.escape, '\\\\$&');\n }\n },\n\n add: {\n // alias\n rule: function(name, rules) {\n module.add.field(name, rules);\n },\n field: function(name, rules) {\n var\n newValidation = {}\n ;\n if(module.is.shorthandRules(rules)) {\n rules = $.isArray(rules)\n ? rules\n : [rules]\n ;\n newValidation[name] = {\n rules: []\n };\n $.each(rules, function(index, rule) {\n newValidation[name].rules.push({ type: rule });\n });\n }\n else {\n newValidation[name] = rules;\n }\n validation = $.extend({}, validation, newValidation);\n module.debug('Adding rules', newValidation, validation);\n },\n fields: function(fields) {\n var\n newValidation\n ;\n if(fields && module.is.shorthandFields(fields)) {\n newValidation = module.get.fieldsFromShorthand(fields);\n }\n else {\n newValidation = fields;\n }\n validation = $.extend({}, validation, newValidation);\n },\n prompt: function(identifier, errors) {\n var\n $field = module.get.field(identifier),\n $fieldGroup = $field.closest($group),\n $prompt = $fieldGroup.children(selector.prompt),\n promptExists = ($prompt.length !== 0)\n ;\n errors = (typeof errors == 'string')\n ? [errors]\n : errors\n ;\n module.verbose('Adding field error state', identifier);\n $fieldGroup\n .addClass(className.error)\n ;\n if(settings.inline) {\n if(!promptExists) {\n $prompt = settings.templates.prompt(errors);\n $prompt\n .appendTo($fieldGroup)\n ;\n }\n $prompt\n .html(errors[0])\n ;\n if(!promptExists) {\n if(settings.transition && $.fn.transition !== undefined && $module.transition('is supported')) {\n module.verbose('Displaying error with css transition', settings.transition);\n $prompt.transition(settings.transition + ' in', settings.duration);\n }\n else {\n module.verbose('Displaying error with fallback javascript animation');\n $prompt\n .fadeIn(settings.duration)\n ;\n }\n }\n else {\n module.verbose('Inline errors are disabled, no inline error added', identifier);\n }\n }\n },\n errors: function(errors) {\n module.debug('Adding form error messages', errors);\n module.set.error();\n $message\n .html( settings.templates.error(errors) )\n ;\n }\n },\n\n remove: {\n rule: function(field, rule) {\n var\n rules = $.isArray(rule)\n ? rule\n : [rule]\n ;\n if(rule == undefined) {\n module.debug('Removed all rules');\n validation[field].rules = [];\n return;\n }\n if(validation[field] == undefined || !$.isArray(validation[field].rules)) {\n return;\n }\n $.each(validation[field].rules, function(index, rule) {\n if(rules.indexOf(rule.type) !== -1) {\n module.debug('Removed rule', rule.type);\n validation[field].rules.splice(index, 1);\n }\n });\n },\n field: function(field) {\n var\n fields = $.isArray(field)\n ? field\n : [field]\n ;\n $.each(fields, function(index, field) {\n module.remove.rule(field);\n });\n },\n // alias\n rules: function(field, rules) {\n if($.isArray(field)) {\n $.each(fields, function(index, field) {\n module.remove.rule(field, rules);\n });\n }\n else {\n module.remove.rule(field, rules);\n }\n },\n fields: function(fields) {\n module.remove.field(fields);\n },\n prompt: function(identifier) {\n var\n $field = module.get.field(identifier),\n $fieldGroup = $field.closest($group),\n $prompt = $fieldGroup.children(selector.prompt)\n ;\n $fieldGroup\n .removeClass(className.error)\n ;\n if(settings.inline && $prompt.is(':visible')) {\n module.verbose('Removing prompt for field', identifier);\n if(settings.transition && $.fn.transition !== undefined && $module.transition('is supported')) {\n $prompt.transition(settings.transition + ' out', settings.duration, function() {\n $prompt.remove();\n });\n }\n else {\n $prompt\n .fadeOut(settings.duration, function(){\n $prompt.remove();\n })\n ;\n }\n }\n }\n },\n\n set: {\n success: function() {\n $module\n .removeClass(className.error)\n .addClass(className.success)\n ;\n },\n defaults: function () {\n $field\n .each(function () {\n var\n $field = $(this),\n isCheckbox = ($field.filter(selector.checkbox).length > 0),\n value = (isCheckbox)\n ? $field.is(':checked')\n : $field.val()\n ;\n $field.data(metadata.defaultValue, value);\n })\n ;\n },\n error: function() {\n $module\n .removeClass(className.success)\n .addClass(className.error)\n ;\n },\n value: function (field, value) {\n var\n fields = {}\n ;\n fields[field] = value;\n return module.set.values.call(element, fields);\n },\n values: function (fields) {\n if($.isEmptyObject(fields)) {\n return;\n }\n $.each(fields, function(key, value) {\n var\n $field = module.get.field(key),\n $element = $field.parent(),\n isMultiple = $.isArray(value),\n isCheckbox = $element.is(selector.uiCheckbox),\n isDropdown = $element.is(selector.uiDropdown),\n isRadio = ($field.is(selector.radio) && isCheckbox),\n fieldExists = ($field.length > 0),\n $multipleField\n ;\n if(fieldExists) {\n if(isMultiple && isCheckbox) {\n module.verbose('Selecting multiple', value, $field);\n $element.checkbox('uncheck');\n $.each(value, function(index, value) {\n $multipleField = $field.filter('[value=\"' + value + '\"]');\n $element = $multipleField.parent();\n if($multipleField.length > 0) {\n $element.checkbox('check');\n }\n });\n }\n else if(isRadio) {\n module.verbose('Selecting radio value', value, $field);\n $field.filter('[value=\"' + value + '\"]')\n .parent(selector.uiCheckbox)\n .checkbox('check')\n ;\n }\n else if(isCheckbox) {\n module.verbose('Setting checkbox value', value, $element);\n if(value === true) {\n $element.checkbox('check');\n }\n else {\n $element.checkbox('uncheck');\n }\n }\n else if(isDropdown) {\n module.verbose('Setting dropdown value', value, $element);\n $element.dropdown('set selected', value);\n }\n else {\n module.verbose('Setting field value', value, $field);\n $field.val(value);\n }\n }\n });\n }\n },\n\n validate: {\n\n form: function(event, ignoreCallbacks) {\n var\n values = module.get.values(),\n apiRequest\n ;\n\n // input keydown event will fire submit repeatedly by browser default\n if(keyHeldDown) {\n return false;\n }\n\n // reset errors\n formErrors = [];\n if( module.determine.isValid() ) {\n module.debug('Form has no validation errors, submitting');\n module.set.success();\n if(ignoreCallbacks !== true) {\n return settings.onSuccess.call(element, event, values);\n }\n }\n else {\n module.debug('Form has errors');\n module.set.error();\n if(!settings.inline) {\n module.add.errors(formErrors);\n }\n // prevent ajax submit\n if($module.data('moduleApi') !== undefined) {\n event.stopImmediatePropagation();\n }\n if(ignoreCallbacks !== true) {\n return settings.onFailure.call(element, formErrors, values);\n }\n }\n },\n\n // takes a validation object and returns whether field passes validation\n field: function(field, fieldName, showErrors) {\n showErrors = (showErrors !== undefined)\n ? showErrors\n : true\n ;\n if(typeof field == 'string') {\n module.verbose('Validating field', field);\n fieldName = field;\n field = validation[field];\n }\n var\n identifier = field.identifier || fieldName,\n $field = module.get.field(identifier),\n $dependsField = (field.depends)\n ? module.get.field(field.depends)\n : false,\n fieldValid = true,\n fieldErrors = []\n ;\n if(!field.identifier) {\n module.debug('Using field name as identifier', identifier);\n field.identifier = identifier;\n }\n if($field.prop('disabled')) {\n module.debug('Field is disabled. Skipping', identifier);\n fieldValid = true;\n }\n else if(field.optional && module.is.blank($field)){\n module.debug('Field is optional and blank. Skipping', identifier);\n fieldValid = true;\n }\n else if(field.depends && module.is.empty($dependsField)) {\n module.debug('Field depends on another value that is not present or empty. Skipping', $dependsField);\n fieldValid = true;\n }\n else if(field.rules !== undefined) {\n $.each(field.rules, function(index, rule) {\n if( module.has.field(identifier) && !( module.validate.rule(field, rule) ) ) {\n module.debug('Field is invalid', identifier, rule.type);\n fieldErrors.push(module.get.prompt(rule, field));\n fieldValid = false;\n }\n });\n }\n if(fieldValid) {\n if(showErrors) {\n module.remove.prompt(identifier, fieldErrors);\n settings.onValid.call($field);\n }\n }\n else {\n if(showErrors) {\n formErrors = formErrors.concat(fieldErrors);\n module.add.prompt(identifier, fieldErrors);\n settings.onInvalid.call($field, fieldErrors);\n }\n return false;\n }\n return true;\n },\n\n // takes validation rule and returns whether field passes rule\n rule: function(field, rule) {\n var\n $field = module.get.field(field.identifier),\n type = rule.type,\n value = $field.val(),\n isValid = true,\n ancillary = module.get.ancillaryValue(rule),\n ruleName = module.get.ruleName(rule),\n ruleFunction = settings.rules[ruleName]\n ;\n if( !$.isFunction(ruleFunction) ) {\n module.error(error.noRule, ruleName);\n return;\n }\n // cast to string avoiding encoding special values\n value = (value === undefined || value === '' || value === null)\n ? ''\n : $.trim(value + '')\n ;\n return ruleFunction.call($field, value, ancillary);\n }\n },\n\n setting: function(name, value) {\n if( $.isPlainObject(name) ) {\n $.extend(true, settings, name);\n }\n else if(value !== undefined) {\n settings[name] = value;\n }\n else {\n return settings[name];\n }\n },\n internal: function(name, value) {\n if( $.isPlainObject(name) ) {\n $.extend(true, module, name);\n }\n else if(value !== undefined) {\n module[name] = value;\n }\n else {\n return module[name];\n }\n },\n debug: function() {\n if(!settings.silent && settings.debug) {\n if(settings.performance) {\n module.performance.log(arguments);\n }\n else {\n module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');\n module.debug.apply(console, arguments);\n }\n }\n },\n verbose: function() {\n if(!settings.silent && settings.verbose && settings.debug) {\n if(settings.performance) {\n module.performance.log(arguments);\n }\n else {\n module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');\n module.verbose.apply(console, arguments);\n }\n }\n },\n error: function() {\n if(!settings.silent) {\n module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');\n module.error.apply(console, arguments);\n }\n },\n performance: {\n log: function(message) {\n var\n currentTime,\n executionTime,\n previousTime\n ;\n if(settings.performance) {\n currentTime = new Date().getTime();\n previousTime = time || currentTime;\n executionTime = currentTime - previousTime;\n time = currentTime;\n performance.push({\n 'Name' : message[0],\n 'Arguments' : [].slice.call(message, 1) || '',\n 'Element' : element,\n 'Execution Time' : executionTime\n });\n }\n clearTimeout(module.performance.timer);\n module.performance.timer = setTimeout(module.performance.display, 500);\n },\n display: function() {\n var\n title = settings.name + ':',\n totalTime = 0\n ;\n time = false;\n clearTimeout(module.performance.timer);\n $.each(performance, function(index, data) {\n totalTime += data['Execution Time'];\n });\n title += ' ' + totalTime + 'ms';\n if(moduleSelector) {\n title += ' \\'' + moduleSelector + '\\'';\n }\n if($allModules.length > 1) {\n title += ' ' + '(' + $allModules.length + ')';\n }\n if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {\n console.groupCollapsed(title);\n if(console.table) {\n console.table(performance);\n }\n else {\n $.each(performance, function(index, data) {\n console.log(data['Name'] + ': ' + data['Execution Time']+'ms');\n });\n }\n console.groupEnd();\n }\n performance = [];\n }\n },\n invoke: function(query, passedArguments, context) {\n var\n object = instance,\n maxDepth,\n found,\n response\n ;\n passedArguments = passedArguments || queryArguments;\n context = element || context;\n if(typeof query == 'string' && object !== undefined) {\n query = query.split(/[\\. ]/);\n maxDepth = query.length - 1;\n $.each(query, function(depth, value) {\n var camelCaseValue = (depth != maxDepth)\n ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)\n : query\n ;\n if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {\n object = object[camelCaseValue];\n }\n else if( object[camelCaseValue] !== undefined ) {\n found = object[camelCaseValue];\n return false;\n }\n else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {\n object = object[value];\n }\n else if( object[value] !== undefined ) {\n found = object[value];\n return false;\n }\n else {\n return false;\n }\n });\n }\n if( $.isFunction( found ) ) {\n response = found.apply(context, passedArguments);\n }\n else if(found !== undefined) {\n response = found;\n }\n if($.isArray(returnedValue)) {\n returnedValue.push(response);\n }\n else if(returnedValue !== undefined) {\n returnedValue = [returnedValue, response];\n }\n else if(response !== undefined) {\n returnedValue = response;\n }\n return found;\n }\n };\n module.initialize();\n })\n ;\n\n return (returnedValue !== undefined)\n ? returnedValue\n : this\n ;\n};\n\n$.fn.form.settings = {\n\n name : 'Form',\n namespace : 'form',\n\n debug : false,\n verbose : false,\n performance : true,\n\n fields : false,\n\n keyboardShortcuts : true,\n on : 'submit',\n inline : false,\n\n delay : 200,\n revalidate : true,\n\n transition : 'scale',\n duration : 200,\n\n onValid : function() {},\n onInvalid : function() {},\n onSuccess : function() { return true; },\n onFailure : function() { return false; },\n\n metadata : {\n defaultValue : 'default',\n validate : 'validate'\n },\n\n regExp: {\n htmlID : /^[a-zA-Z][\\w:.-]*$/g,\n bracket : /\\[(.*)\\]/i,\n decimal : /^\\d+\\.?\\d*$/,\n email : /^[a-z0-9!#$%&'*+\\/=?^_`{|}~.-]+@[a-z0-9]([a-z0-9-]*[a-z0-9])?(\\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i,\n escape : /[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g,\n flags : /^\\/(.*)\\/(.*)?/,\n integer : /^\\-?\\d+$/,\n number : /^\\-?\\d*(\\.\\d+)?$/,\n url : /(https?:\\/\\/(?:www\\.|(?!www))[^\\s\\.]+\\.[^\\s]{2,}|www\\.[^\\s]+\\.[^\\s]{2,})/i\n },\n\n text: {\n unspecifiedRule : 'Please enter a valid value',\n unspecifiedField : 'This field'\n },\n\n prompt: {\n empty : '{name} must have a value',\n checked : '{name} must be checked',\n email : '{name} must be a valid e-mail',\n url : '{name} must be a valid url',\n regExp : '{name} is not formatted correctly',\n integer : '{name} must be an integer',\n decimal : '{name} must be a decimal number',\n number : '{name} must be set to a number',\n is : '{name} must be \"{ruleValue}\"',\n isExactly : '{name} must be exactly \"{ruleValue}\"',\n not : '{name} cannot be set to \"{ruleValue}\"',\n notExactly : '{name} cannot be set to exactly \"{ruleValue}\"',\n contain : '{name} cannot contain \"{ruleValue}\"',\n containExactly : '{name} cannot contain exactly \"{ruleValue}\"',\n doesntContain : '{name} must contain \"{ruleValue}\"',\n doesntContainExactly : '{name} must contain exactly \"{ruleValue}\"',\n minLength : '{name} must be at least {ruleValue} characters',\n length : '{name} must be at least {ruleValue} characters',\n exactLength : '{name} must be exactly {ruleValue} characters',\n maxLength : '{name} cannot be longer than {ruleValue} characters',\n match : '{name} must match {ruleValue} field',\n different : '{name} must have a different value than {ruleValue} field',\n creditCard : '{name} must be a valid credit card number',\n minCount : '{name} must have at least {ruleValue} choices',\n exactCount : '{name} must have exactly {ruleValue} choices',\n maxCount : '{name} must have {ruleValue} or less choices'\n },\n\n selector : {\n checkbox : 'input[type=\"checkbox\"], input[type=\"radio\"]',\n clear : '.clear',\n field : 'input, textarea, select',\n group : '.field',\n input : 'input',\n message : '.error.message',\n prompt : '.prompt.label',\n radio : 'input[type=\"radio\"]',\n reset : '.reset:not([type=\"reset\"])',\n submit : '.submit:not([type=\"submit\"])',\n uiCheckbox : '.ui.checkbox',\n uiDropdown : '.ui.dropdown'\n },\n\n className : {\n error : 'error',\n label : 'ui prompt label',\n pressed : 'down',\n success : 'success'\n },\n\n error: {\n identifier : 'You must specify a string identifier for each field',\n method : 'The method you called is not defined.',\n noRule : 'There is no rule matching the one you specified',\n oldSyntax : 'Starting in 2.0 forms now only take a single settings object. Validation settings converted to new syntax automatically.'\n },\n\n templates: {\n\n // template that produces error message\n error: function(errors) {\n var\n html = '<ul class=\"list\">'\n ;\n $.each(errors, function(index, value) {\n html += '<li>' + value + '</li>';\n });\n html += '</ul>';\n return $(html);\n },\n\n // template that produces label\n prompt: function(errors) {\n return $('<div/>')\n .addClass('ui basic red pointing prompt label')\n .html(errors[0])\n ;\n }\n },\n\n rules: {\n\n // is not empty or blank string\n empty: function(value) {\n return !(value === undefined || '' === value || $.isArray(value) && value.length === 0);\n },\n\n // checkbox checked\n checked: function() {\n return ($(this).filter(':checked').length > 0);\n },\n\n // is most likely an email\n email: function(value){\n return $.fn.form.settings.regExp.email.test(value);\n },\n\n // value is most likely url\n url: function(value) {\n return $.fn.form.settings.regExp.url.test(value);\n },\n\n // matches specified regExp\n regExp: function(value, regExp) {\n if(regExp instanceof RegExp) {\n return value.match(regExp);\n }\n var\n regExpParts = regExp.match($.fn.form.settings.regExp.flags),\n flags\n ;\n // regular expression specified as /baz/gi (flags)\n if(regExpParts) {\n regExp = (regExpParts.length >= 2)\n ? regExpParts[1]\n : regExp\n ;\n flags = (regExpParts.length >= 3)\n ? regExpParts[2]\n : ''\n ;\n }\n return value.match( new RegExp(regExp, flags) );\n },\n\n // is valid integer or matches range\n integer: function(value, range) {\n var\n intRegExp = $.fn.form.settings.regExp.integer,\n min,\n max,\n parts\n ;\n if( !range || ['', '..'].indexOf(range) !== -1) {\n // do nothing\n }\n else if(range.indexOf('..') == -1) {\n if(intRegExp.test(range)) {\n min = max = range - 0;\n }\n }\n else {\n parts = range.split('..', 2);\n if(intRegExp.test(parts[0])) {\n min = parts[0] - 0;\n }\n if(intRegExp.test(parts[1])) {\n max = parts[1] - 0;\n }\n }\n return (\n intRegExp.test(value) &&\n (min === undefined || value >= min) &&\n (max === undefined || value <= max)\n );\n },\n\n // is valid number (with decimal)\n decimal: function(value) {\n return $.fn.form.settings.regExp.decimal.test(value);\n },\n\n // is valid number\n number: function(value) {\n return $.fn.form.settings.regExp.number.test(value);\n },\n\n // is value (case insensitive)\n is: function(value, text) {\n text = (typeof text == 'string')\n ? text.toLowerCase()\n : text\n ;\n value = (typeof value == 'string')\n ? value.toLowerCase()\n : value\n ;\n return (value == text);\n },\n\n // is value\n isExactly: function(value, text) {\n return (value == text);\n },\n\n // value is not another value (case insensitive)\n not: function(value, notValue) {\n value = (typeof value == 'string')\n ? value.toLowerCase()\n : value\n ;\n notValue = (typeof notValue == 'string')\n ? notValue.toLowerCase()\n : notValue\n ;\n return (value != notValue);\n },\n\n // value is not another value (case sensitive)\n notExactly: function(value, notValue) {\n return (value != notValue);\n },\n\n // value contains text (insensitive)\n contains: function(value, text) {\n // escape regex characters\n text = text.replace($.fn.form.settings.regExp.escape, \"\\\\$&\");\n return (value.search( new RegExp(text, 'i') ) !== -1);\n },\n\n // value contains text (case sensitive)\n containsExactly: function(value, text) {\n // escape regex characters\n text = text.replace($.fn.form.settings.regExp.escape, \"\\\\$&\");\n return (value.search( new RegExp(text) ) !== -1);\n },\n\n // value contains text (insensitive)\n doesntContain: function(value, text) {\n // escape regex characters\n text = text.replace($.fn.form.settings.regExp.escape, \"\\\\$&\");\n return (value.search( new RegExp(text, 'i') ) === -1);\n },\n\n // value contains text (case sensitive)\n doesntContainExactly: function(value, text) {\n // escape regex characters\n text = text.replace($.fn.form.settings.regExp.escape, \"\\\\$&\");\n return (value.search( new RegExp(text) ) === -1);\n },\n\n // is at least string length\n minLength: function(value, requiredLength) {\n return (value !== undefined)\n ? (value.length >= requiredLength)\n : false\n ;\n },\n\n // see rls notes for 2.0.6 (this is a duplicate of minLength)\n length: function(value, requiredLength) {\n return (value !== undefined)\n ? (value.length >= requiredLength)\n : false\n ;\n },\n\n // is exactly length\n exactLength: function(value, requiredLength) {\n return (value !== undefined)\n ? (value.length == requiredLength)\n : false\n ;\n },\n\n // is less than length\n maxLength: function(value, maxLength) {\n return (value !== undefined)\n ? (value.length <= maxLength)\n : false\n ;\n },\n\n // matches another field\n match: function(value, identifier) {\n var\n $form = $(this),\n matchingValue\n ;\n if( $('[data-validate=\"'+ identifier +'\"]').length > 0 ) {\n matchingValue = $('[data-validate=\"'+ identifier +'\"]').val();\n }\n else if($('#' + identifier).length > 0) {\n matchingValue = $('#' + identifier).val();\n }\n else if($('[name=\"' + identifier +'\"]').length > 0) {\n matchingValue = $('[name=\"' + identifier + '\"]').val();\n }\n else if( $('[name=\"' + identifier +'[]\"]').length > 0 ) {\n matchingValue = $('[name=\"' + identifier +'[]\"]');\n }\n return (matchingValue !== undefined)\n ? ( value.toString() == matchingValue.toString() )\n : false\n ;\n },\n\n // different than another field\n different: function(value, identifier) {\n // use either id or name of field\n var\n $form = $(this),\n matchingValue\n ;\n if( $('[data-validate=\"'+ identifier +'\"]').length > 0 ) {\n matchingValue = $('[data-validate=\"'+ identifier +'\"]').val();\n }\n else if($('#' + identifier).length > 0) {\n matchingValue = $('#' + identifier).val();\n }\n else if($('[name=\"' + identifier +'\"]').length > 0) {\n matchingValue = $('[name=\"' + identifier + '\"]').val();\n }\n else if( $('[name=\"' + identifier +'[]\"]').length > 0 ) {\n matchingValue = $('[name=\"' + identifier +'[]\"]');\n }\n return (matchingValue !== undefined)\n ? ( value.toString() !== matchingValue.toString() )\n : false\n ;\n },\n\n creditCard: function(cardNumber, cardTypes) {\n var\n cards = {\n visa: {\n pattern : /^4/,\n length : [16]\n },\n amex: {\n pattern : /^3[47]/,\n length : [15]\n },\n mastercard: {\n pattern : /^5[1-5]/,\n length : [16]\n },\n discover: {\n pattern : /^(6011|622(12[6-9]|1[3-9][0-9]|[2-8][0-9]{2}|9[0-1][0-9]|92[0-5]|64[4-9])|65)/,\n length : [16]\n },\n unionPay: {\n pattern : /^(62|88)/,\n length : [16, 17, 18, 19]\n },\n jcb: {\n pattern : /^35(2[89]|[3-8][0-9])/,\n length : [16]\n },\n maestro: {\n pattern : /^(5018|5020|5038|6304|6759|676[1-3])/,\n length : [12, 13, 14, 15, 16, 17, 18, 19]\n },\n dinersClub: {\n pattern : /^(30[0-5]|^36)/,\n length : [14]\n },\n laser: {\n pattern : /^(6304|670[69]|6771)/,\n length : [16, 17, 18, 19]\n },\n visaElectron: {\n pattern : /^(4026|417500|4508|4844|491(3|7))/,\n length : [16]\n }\n },\n valid = {},\n validCard = false,\n requiredTypes = (typeof cardTypes == 'string')\n ? cardTypes.split(',')\n : false,\n unionPay,\n validation\n ;\n\n if(typeof cardNumber !== 'string' || cardNumber.length === 0) {\n return;\n }\n\n // allow dashes in card\n cardNumber = cardNumber.replace(/[\\-]/g, '');\n\n // verify card types\n if(requiredTypes) {\n $.each(requiredTypes, function(index, type){\n // verify each card type\n validation = cards[type];\n if(validation) {\n valid = {\n length : ($.inArray(cardNumber.length, validation.length) !== -1),\n pattern : (cardNumber.search(validation.pattern) !== -1)\n };\n if(valid.length && valid.pattern) {\n validCard = true;\n }\n }\n });\n\n if(!validCard) {\n return false;\n }\n }\n\n // skip luhn for UnionPay\n unionPay = {\n number : ($.inArray(cardNumber.length, cards.unionPay.length) !== -1),\n pattern : (cardNumber.search(cards.unionPay.pattern) !== -1)\n };\n if(unionPay.number && unionPay.pattern) {\n return true;\n }\n\n // verify luhn, adapted from <https://gist.github.com/2134376>\n var\n length = cardNumber.length,\n multiple = 0,\n producedValue = [\n [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],\n [0, 2, 4, 6, 8, 1, 3, 5, 7, 9]\n ],\n sum = 0\n ;\n while (length--) {\n sum += producedValue[multiple][parseInt(cardNumber.charAt(length), 10)];\n multiple ^= 1;\n }\n return (sum % 10 === 0 && sum > 0);\n },\n\n minCount: function(value, minCount) {\n if(minCount == 0) {\n return true;\n }\n if(minCount == 1) {\n return (value !== '');\n }\n return (value.split(',').length >= minCount);\n },\n\n exactCount: function(value, exactCount) {\n if(exactCount == 0) {\n return (value === '');\n }\n if(exactCount == 1) {\n return (value !== '' && value.search(',') === -1);\n }\n return (value.split(',').length == exactCount);\n },\n\n maxCount: function(value, maxCount) {\n if(maxCount == 0) {\n return false;\n }\n if(maxCount == 1) {\n return (value.search(',') === -1);\n }\n return (value.split(',').length <= maxCount);\n }\n }\n\n};\n\n})( jQuery, window, document );\n\n/*!\n * # Semantic UI 2.2.11 - Accordion\n * http://github.com/semantic-org/semantic-ui/\n *\n *\n * Released under the MIT license\n * http://opensource.org/licenses/MIT\n *\n */\n\n;(function ($, window, document, undefined) {\n\n\"use strict\";\n\nwindow = (typeof window != 'undefined' && window.Math == Math)\n ? window\n : (typeof self != 'undefined' && self.Math == Math)\n ? self\n : Function('return this')()\n;\n\n$.fn.accordion = function(parameters) {\n var\n $allModules = $(this),\n\n time = new Date().getTime(),\n performance = [],\n\n query = arguments[0],\n methodInvoked = (typeof query == 'string'),\n queryArguments = [].slice.call(arguments, 1),\n\n requestAnimationFrame = window.requestAnimationFrame\n || window.mozRequestAnimationFrame\n || window.webkitRequestAnimationFrame\n || window.msRequestAnimationFrame\n || function(callback) { setTimeout(callback, 0); },\n\n returnedValue\n ;\n $allModules\n .each(function() {\n var\n settings = ( $.isPlainObject(parameters) )\n ? $.extend(true, {}, $.fn.accordion.settings, parameters)\n : $.extend({}, $.fn.accordion.settings),\n\n className = settings.className,\n namespace = settings.namespace,\n selector = settings.selector,\n error = settings.error,\n\n eventNamespace = '.' + namespace,\n moduleNamespace = 'module-' + namespace,\n moduleSelector = $allModules.selector || '',\n\n $module = $(this),\n $title = $module.find(selector.title),\n $content = $module.find(selector.content),\n\n element = this,\n instance = $module.data(moduleNamespace),\n observer,\n module\n ;\n\n module = {\n\n initialize: function() {\n module.debug('Initializing', $module);\n module.bind.events();\n if(settings.observeChanges) {\n module.observeChanges();\n }\n module.instantiate();\n },\n\n instantiate: function() {\n instance = module;\n $module\n .data(moduleNamespace, module)\n ;\n },\n\n destroy: function() {\n module.debug('Destroying previous instance', $module);\n $module\n .off(eventNamespace)\n .removeData(moduleNamespace)\n ;\n },\n\n refresh: function() {\n $title = $module.find(selector.title);\n $content = $module.find(selector.content);\n },\n\n observeChanges: function() {\n if('MutationObserver' in window) {\n observer = new MutationObserver(function(mutations) {\n module.debug('DOM tree modified, updating selector cache');\n module.refresh();\n });\n observer.observe(element, {\n childList : true,\n subtree : true\n });\n module.debug('Setting up mutation observer', observer);\n }\n },\n\n bind: {\n events: function() {\n module.debug('Binding delegated events');\n $module\n .on(settings.on + eventNamespace, selector.trigger, module.event.click)\n ;\n }\n },\n\n event: {\n click: function() {\n module.toggle.call(this);\n }\n },\n\n toggle: function(query) {\n var\n $activeTitle = (query !== undefined)\n ? (typeof query === 'number')\n ? $title.eq(query)\n : $(query).closest(selector.title)\n : $(this).closest(selector.title),\n $activeContent = $activeTitle.next($content),\n isAnimating = $activeContent.hasClass(className.animating),\n isActive = $activeContent.hasClass(className.active),\n isOpen = (isActive && !isAnimating),\n isOpening = (!isActive && isAnimating)\n ;\n module.debug('Toggling visibility of content', $activeTitle);\n if(isOpen || isOpening) {\n if(settings.collapsible) {\n module.close.call($activeTitle);\n }\n else {\n module.debug('Cannot close accordion content collapsing is disabled');\n }\n }\n else {\n module.open.call($activeTitle);\n }\n },\n\n open: function(query) {\n var\n $activeTitle = (query !== undefined)\n ? (typeof query === 'number')\n ? $title.eq(query)\n : $(query).closest(selector.title)\n : $(this).closest(selector.title),\n $activeContent = $activeTitle.next($content),\n isAnimating = $activeContent.hasClass(className.animating),\n isActive = $activeContent.hasClass(className.active),\n isOpen = (isActive || isAnimating)\n ;\n if(isOpen) {\n module.debug('Accordion already open, skipping', $activeContent);\n return;\n }\n module.debug('Opening accordion content', $activeTitle);\n settings.onOpening.call($activeContent);\n if(settings.exclusive) {\n module.closeOthers.call($activeTitle);\n }\n $activeTitle\n .addClass(className.active)\n ;\n $activeContent\n .stop(true, true)\n .addClass(className.animating)\n ;\n if(settings.animateChildren) {\n if($.fn.transition !== undefined && $module.transition('is supported')) {\n $activeContent\n .children()\n .transition({\n animation : 'fade in',\n queue : false,\n useFailSafe : true,\n debug : settings.debug,\n verbose : settings.verbose,\n duration : settings.duration\n })\n ;\n }\n else {\n $activeContent\n .children()\n .stop(true, true)\n .animate({\n opacity: 1\n }, settings.duration, module.resetOpacity)\n ;\n }\n }\n $activeContent\n .slideDown(settings.duration, settings.easing, function() {\n $activeContent\n .removeClass(className.animating)\n .addClass(className.active)\n ;\n module.reset.display.call(this);\n settings.onOpen.call(this);\n settings.onChange.call(this);\n })\n ;\n },\n\n close: function(query) {\n var\n $activeTitle = (query !== undefined)\n ? (typeof query === 'number')\n ? $title.eq(query)\n : $(query).closest(selector.title)\n : $(this).closest(selector.title),\n $activeContent = $activeTitle.next($content),\n isAnimating = $activeContent.hasClass(className.animating),\n isActive = $activeContent.hasClass(className.active),\n isOpening = (!isActive && isAnimating),\n isClosing = (isActive && isAnimating)\n ;\n if((isActive || isOpening) && !isClosing) {\n module.debug('Closing accordion content', $activeContent);\n settings.onClosing.call($activeContent);\n $activeTitle\n .removeClass(className.active)\n ;\n $activeContent\n .stop(true, true)\n .addClass(className.animating)\n ;\n if(settings.animateChildren) {\n if($.fn.transition !== undefined && $module.transition('is supported')) {\n $activeContent\n .children()\n .transition({\n animation : 'fade out',\n queue : false,\n useFailSafe : true,\n debug : settings.debug,\n verbose : settings.verbose,\n duration : settings.duration\n })\n ;\n }\n else {\n $activeContent\n .children()\n .stop(true, true)\n .animate({\n opacity: 0\n }, settings.duration, module.resetOpacity)\n ;\n }\n }\n $activeContent\n .slideUp(settings.duration, settings.easing, function() {\n $activeContent\n .removeClass(className.animating)\n .removeClass(className.active)\n ;\n module.reset.display.call(this);\n settings.onClose.call(this);\n settings.onChange.call(this);\n })\n ;\n }\n },\n\n closeOthers: function(index) {\n var\n $activeTitle = (index !== undefined)\n ? $title.eq(index)\n : $(this).closest(selector.title),\n $parentTitles = $activeTitle.parents(selector.content).prev(selector.title),\n $activeAccordion = $activeTitle.closest(selector.accordion),\n activeSelector = selector.title + '.' + className.active + ':visible',\n activeContent = selector.content + '.' + className.active + ':visible',\n $openTitles,\n $nestedTitles,\n $openContents\n ;\n if(settings.closeNested) {\n $openTitles = $activeAccordion.find(activeSelector).not($parentTitles);\n $openContents = $openTitles.next($content);\n }\n else {\n $openTitles = $activeAccordion.find(activeSelector).not($parentTitles);\n $nestedTitles = $activeAccordion.find(activeContent).find(activeSelector).not($parentTitles);\n $openTitles = $openTitles.not($nestedTitles);\n $openContents = $openTitles.next($content);\n }\n if( ($openTitles.length > 0) ) {\n module.debug('Exclusive enabled, closing other content', $openTitles);\n $openTitles\n .removeClass(className.active)\n ;\n $openContents\n .removeClass(className.animating)\n .stop(true, true)\n ;\n if(settings.animateChildren) {\n if($.fn.transition !== undefined && $module.transition('is supported')) {\n $openContents\n .children()\n .transition({\n animation : 'fade out',\n useFailSafe : true,\n debug : settings.debug,\n verbose : settings.verbose,\n duration : settings.duration\n })\n ;\n }\n else {\n $openContents\n .children()\n .stop(true, true)\n .animate({\n opacity: 0\n }, settings.duration, module.resetOpacity)\n ;\n }\n }\n $openContents\n .slideUp(settings.duration , settings.easing, function() {\n $(this).removeClass(className.active);\n module.reset.display.call(this);\n })\n ;\n }\n },\n\n reset: {\n\n display: function() {\n module.verbose('Removing inline display from element', this);\n $(this).css('display', '');\n if( $(this).attr('style') === '') {\n $(this)\n .attr('style', '')\n .removeAttr('style')\n ;\n }\n },\n\n opacity: function() {\n module.verbose('Removing inline opacity from element', this);\n $(this).css('opacity', '');\n if( $(this).attr('style') === '') {\n $(this)\n .attr('style', '')\n .removeAttr('style')\n ;\n }\n },\n\n },\n\n setting: function(name, value) {\n module.debug('Changing setting', name, value);\n if( $.isPlainObject(name) ) {\n $.extend(true, settings, name);\n }\n else if(value !== undefined) {\n if($.isPlainObject(settings[name])) {\n $.extend(true, settings[name], value);\n }\n else {\n settings[name] = value;\n }\n }\n else {\n return settings[name];\n }\n },\n internal: function(name, value) {\n module.debug('Changing internal', name, value);\n if(value !== undefined) {\n if( $.isPlainObject(name) ) {\n $.extend(true, module, name);\n }\n else {\n module[name] = value;\n }\n }\n else {\n return module[name];\n }\n },\n debug: function() {\n if(!settings.silent && settings.debug) {\n if(settings.performance) {\n module.performance.log(arguments);\n }\n else {\n module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');\n module.debug.apply(console, arguments);\n }\n }\n },\n verbose: function() {\n if(!settings.silent && settings.verbose && settings.debug) {\n if(settings.performance) {\n module.performance.log(arguments);\n }\n else {\n module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');\n module.verbose.apply(console, arguments);\n }\n }\n },\n error: function() {\n if(!settings.silent) {\n module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');\n module.error.apply(console, arguments);\n }\n },\n performance: {\n log: function(message) {\n var\n currentTime,\n executionTime,\n previousTime\n ;\n if(settings.performance) {\n currentTime = new Date().getTime();\n previousTime = time || currentTime;\n executionTime = currentTime - previousTime;\n time = currentTime;\n performance.push({\n 'Name' : message[0],\n 'Arguments' : [].slice.call(message, 1) || '',\n 'Element' : element,\n 'Execution Time' : executionTime\n });\n }\n clearTimeout(module.performance.timer);\n module.performance.timer = setTimeout(module.performance.display, 500);\n },\n display: function() {\n var\n title = settings.name + ':',\n totalTime = 0\n ;\n time = false;\n clearTimeout(module.performance.timer);\n $.each(performance, function(index, data) {\n totalTime += data['Execution Time'];\n });\n title += ' ' + totalTime + 'ms';\n if(moduleSelector) {\n title += ' \\'' + moduleSelector + '\\'';\n }\n if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {\n console.groupCollapsed(title);\n if(console.table) {\n console.table(performance);\n }\n else {\n $.each(performance, function(index, data) {\n console.log(data['Name'] + ': ' + data['Execution Time']+'ms');\n });\n }\n console.groupEnd();\n }\n performance = [];\n }\n },\n invoke: function(query, passedArguments, context) {\n var\n object = instance,\n maxDepth,\n found,\n response\n ;\n passedArguments = passedArguments || queryArguments;\n context = element || context;\n if(typeof query == 'string' && object !== undefined) {\n query = query.split(/[\\. ]/);\n maxDepth = query.length - 1;\n $.each(query, function(depth, value) {\n var camelCaseValue = (depth != maxDepth)\n ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)\n : query\n ;\n if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {\n object = object[camelCaseValue];\n }\n else if( object[camelCaseValue] !== undefined ) {\n found = object[camelCaseValue];\n return false;\n }\n else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {\n object = object[value];\n }\n else if( object[value] !== undefined ) {\n found = object[value];\n return false;\n }\n else {\n module.error(error.method, query);\n return false;\n }\n });\n }\n if ( $.isFunction( found ) ) {\n response = found.apply(context, passedArguments);\n }\n else if(found !== undefined) {\n response = found;\n }\n if($.isArray(returnedValue)) {\n returnedValue.push(response);\n }\n else if(returnedValue !== undefined) {\n returnedValue = [returnedValue, response];\n }\n else if(response !== undefined) {\n returnedValue = response;\n }\n return found;\n }\n };\n if(methodInvoked) {\n if(instance === undefined) {\n module.initialize();\n }\n module.invoke(query);\n }\n else {\n if(instance !== undefined) {\n instance.invoke('destroy');\n }\n module.initialize();\n }\n })\n ;\n return (returnedValue !== undefined)\n ? returnedValue\n : this\n ;\n};\n\n$.fn.accordion.settings = {\n\n name : 'Accordion',\n namespace : 'accordion',\n\n silent : false,\n debug : false,\n verbose : false,\n performance : true,\n\n on : 'click', // event on title that opens accordion\n\n observeChanges : true, // whether accordion should automatically refresh on DOM insertion\n\n exclusive : true, // whether a single accordion content panel should be open at once\n collapsible : true, // whether accordion content can be closed\n closeNested : false, // whether nested content should be closed when a panel is closed\n animateChildren : true, // whether children opacity should be animated\n\n duration : 350, // duration of animation\n easing : 'easeOutQuad', // easing equation for animation\n\n\n onOpening : function(){}, // callback before open animation\n onOpen : function(){}, // callback after open animation\n onClosing : function(){}, // callback before closing animation\n onClose : function(){}, // callback after closing animation\n onChange : function(){}, // callback after closing or opening animation\n\n error: {\n method : 'The method you called is not defined'\n },\n\n className : {\n active : 'active',\n animating : 'animating'\n },\n\n selector : {\n accordion : '.accordion',\n title : '.title',\n trigger : '.title',\n content : '.content'\n }\n\n};\n\n// Adds easing\n$.extend( $.easing, {\n easeOutQuad: function (x, t, b, c, d) {\n return -c *(t/=d)*(t-2) + b;\n }\n});\n\n})( jQuery, window, document );\n\n\n/*!\n * # Semantic UI 2.2.11 - Checkbox\n * http://github.com/semantic-org/semantic-ui/\n *\n *\n * Released under the MIT license\n * http://opensource.org/licenses/MIT\n *\n */\n\n;(function ($, window, document, undefined) {\n\n\"use strict\";\n\nwindow = (typeof window != 'undefined' && window.Math == Math)\n ? window\n : (typeof self != 'undefined' && self.Math == Math)\n ? self\n : Function('return this')()\n;\n\n$.fn.checkbox = function(parameters) {\n var\n $allModules = $(this),\n moduleSelector = $allModules.selector || '',\n\n time = new Date().getTime(),\n performance = [],\n\n query = arguments[0],\n methodInvoked = (typeof query == 'string'),\n queryArguments = [].slice.call(arguments, 1),\n returnedValue\n ;\n\n $allModules\n .each(function() {\n var\n settings = $.extend(true, {}, $.fn.checkbox.settings, parameters),\n\n className = settings.className,\n namespace = settings.namespace,\n selector = settings.selector,\n error = settings.error,\n\n eventNamespace = '.' + namespace,\n moduleNamespace = 'module-' + namespace,\n\n $module = $(this),\n $label = $(this).children(selector.label),\n $input = $(this).children(selector.input),\n input = $input[0],\n\n initialLoad = false,\n shortcutPressed = false,\n instance = $module.data(moduleNamespace),\n\n observer,\n element = this,\n module\n ;\n\n module = {\n\n initialize: function() {\n module.verbose('Initializing checkbox', settings);\n\n module.create.label();\n module.bind.events();\n\n module.set.tabbable();\n module.hide.input();\n\n module.observeChanges();\n module.instantiate();\n module.setup();\n },\n\n instantiate: function() {\n module.verbose('Storing instance of module', module);\n instance = module;\n $module\n .data(moduleNamespace, module)\n ;\n },\n\n destroy: function() {\n module.verbose('Destroying module');\n module.unbind.events();\n module.show.input();\n $module.removeData(moduleNamespace);\n },\n\n fix: {\n reference: function() {\n if( $module.is(selector.input) ) {\n module.debug('Behavior called on <input> adjusting invoked element');\n $module = $module.closest(selector.checkbox);\n module.refresh();\n }\n }\n },\n\n setup: function() {\n module.set.initialLoad();\n if( module.is.indeterminate() ) {\n module.debug('Initial value is indeterminate');\n module.indeterminate();\n }\n else if( module.is.checked() ) {\n module.debug('Initial value is checked');\n module.check();\n }\n else {\n module.debug('Initial value is unchecked');\n module.uncheck();\n }\n module.remove.initialLoad();\n },\n\n refresh: function() {\n $label = $module.children(selector.label);\n $input = $module.children(selector.input);\n input = $input[0];\n },\n\n hide: {\n input: function() {\n module.verbose('Modifying <input> z-index to be unselectable');\n $input.addClass(className.hidden);\n }\n },\n show: {\n input: function() {\n module.verbose('Modifying <input> z-index to be selectable');\n $input.removeClass(className.hidden);\n }\n },\n\n observeChanges: function() {\n if('MutationObserver' in window) {\n observer = new MutationObserver(function(mutations) {\n module.debug('DOM tree modified, updating selector cache');\n module.refresh();\n });\n observer.observe(element, {\n childList : true,\n subtree : true\n });\n module.debug('Setting up mutation observer', observer);\n }\n },\n\n attachEvents: function(selector, event) {\n var\n $element = $(selector)\n ;\n event = $.isFunction(module[event])\n ? module[event]\n : module.toggle\n ;\n if($element.length > 0) {\n module.debug('Attaching checkbox events to element', selector, event);\n $element\n .on('click' + eventNamespace, event)\n ;\n }\n else {\n module.error(error.notFound);\n }\n },\n\n event: {\n click: function(event) {\n var\n $target = $(event.target)\n ;\n if( $target.is(selector.input) ) {\n module.verbose('Using default check action on initialized checkbox');\n return;\n }\n if( $target.is(selector.link) ) {\n module.debug('Clicking link inside checkbox, skipping toggle');\n return;\n }\n module.toggle();\n $input.focus();\n event.preventDefault();\n },\n keydown: function(event) {\n var\n key = event.which,\n keyCode = {\n enter : 13,\n space : 32,\n escape : 27\n }\n ;\n if(key == keyCode.escape) {\n module.verbose('Escape key pressed blurring field');\n $input.blur();\n shortcutPressed = true;\n }\n else if(!event.ctrlKey && ( key == keyCode.space || key == keyCode.enter) ) {\n module.verbose('Enter/space key pressed, toggling checkbox');\n module.toggle();\n shortcutPressed = true;\n }\n else {\n shortcutPressed = false;\n }\n },\n keyup: function(event) {\n if(shortcutPressed) {\n event.preventDefault();\n }\n }\n },\n\n check: function() {\n if( !module.should.allowCheck() ) {\n return;\n }\n module.debug('Checking checkbox', $input);\n module.set.checked();\n if( !module.should.ignoreCallbacks() ) {\n settings.onChecked.call(input);\n settings.onChange.call(input);\n }\n },\n\n uncheck: function() {\n if( !module.should.allowUncheck() ) {\n return;\n }\n module.debug('Unchecking checkbox');\n module.set.unchecked();\n if( !module.should.ignoreCallbacks() ) {\n settings.onUnchecked.call(input);\n settings.onChange.call(input);\n }\n },\n\n indeterminate: function() {\n if( module.should.allowIndeterminate() ) {\n module.debug('Checkbox is already indeterminate');\n return;\n }\n module.debug('Making checkbox indeterminate');\n module.set.indeterminate();\n if( !module.should.ignoreCallbacks() ) {\n settings.onIndeterminate.call(input);\n settings.onChange.call(input);\n }\n },\n\n determinate: function() {\n if( module.should.allowDeterminate() ) {\n module.debug('Checkbox is already determinate');\n return;\n }\n module.debug('Making checkbox determinate');\n module.set.determinate();\n if( !module.should.ignoreCallbacks() ) {\n settings.onDeterminate.call(input);\n settings.onChange.call(input);\n }\n },\n\n enable: function() {\n if( module.is.enabled() ) {\n module.debug('Checkbox is already enabled');\n return;\n }\n module.debug('Enabling checkbox');\n module.set.enabled();\n settings.onEnable.call(input);\n // preserve legacy callbacks\n settings.onEnabled.call(input);\n },\n\n disable: function() {\n if( module.is.disabled() ) {\n module.debug('Checkbox is already disabled');\n return;\n }\n module.debug('Disabling checkbox');\n module.set.disabled();\n settings.onDisable.call(input);\n // preserve legacy callbacks\n settings.onDisabled.call(input);\n },\n\n get: {\n radios: function() {\n var\n name = module.get.name()\n ;\n return $('input[name=\"' + name + '\"]').closest(selector.checkbox);\n },\n otherRadios: function() {\n return module.get.radios().not($module);\n },\n name: function() {\n return $input.attr('name');\n }\n },\n\n is: {\n initialLoad: function() {\n return initialLoad;\n },\n radio: function() {\n return ($input.hasClass(className.radio) || $input.attr('type') == 'radio');\n },\n indeterminate: function() {\n return $input.prop('indeterminate') !== undefined && $input.prop('indeterminate');\n },\n checked: function() {\n return $input.prop('checked') !== undefined && $input.prop('checked');\n },\n disabled: function() {\n return $input.prop('disabled') !== undefined && $input.prop('disabled');\n },\n enabled: function() {\n return !module.is.disabled();\n },\n determinate: function() {\n return !module.is.indeterminate();\n },\n unchecked: function() {\n return !module.is.checked();\n }\n },\n\n should: {\n allowCheck: function() {\n if(module.is.determinate() && module.is.checked() && !module.should.forceCallbacks() ) {\n module.debug('Should not allow check, checkbox is already checked');\n return false;\n }\n if(settings.beforeChecked.apply(input) === false) {\n module.debug('Should not allow check, beforeChecked cancelled');\n return false;\n }\n return true;\n },\n allowUncheck: function() {\n if(module.is.determinate() && module.is.unchecked() && !module.should.forceCallbacks() ) {\n module.debug('Should not allow uncheck, checkbox is already unchecked');\n return false;\n }\n if(settings.beforeUnchecked.apply(input) === false) {\n module.debug('Should not allow uncheck, beforeUnchecked cancelled');\n return false;\n }\n return true;\n },\n allowIndeterminate: function() {\n if(module.is.indeterminate() && !module.should.forceCallbacks() ) {\n module.debug('Should not allow indeterminate, checkbox is already indeterminate');\n return false;\n }\n if(settings.beforeIndeterminate.apply(input) === false) {\n module.debug('Should not allow indeterminate, beforeIndeterminate cancelled');\n return false;\n }\n return true;\n },\n allowDeterminate: function() {\n if(module.is.determinate() && !module.should.forceCallbacks() ) {\n module.debug('Should not allow determinate, checkbox is already determinate');\n return false;\n }\n if(settings.beforeDeterminate.apply(input) === false) {\n module.debug('Should not allow determinate, beforeDeterminate cancelled');\n return false;\n }\n return true;\n },\n forceCallbacks: function() {\n return (module.is.initialLoad() && settings.fireOnInit);\n },\n ignoreCallbacks: function() {\n return (initialLoad && !settings.fireOnInit);\n }\n },\n\n can: {\n change: function() {\n return !( $module.hasClass(className.disabled) || $module.hasClass(className.readOnly) || $input.prop('disabled') || $input.prop('readonly') );\n },\n uncheck: function() {\n return (typeof settings.uncheckable === 'boolean')\n ? settings.uncheckable\n : !module.is.radio()\n ;\n }\n },\n\n set: {\n initialLoad: function() {\n initialLoad = true;\n },\n checked: function() {\n module.verbose('Setting class to checked');\n $module\n .removeClass(className.indeterminate)\n .addClass(className.checked)\n ;\n if( module.is.radio() ) {\n module.uncheckOthers();\n }\n if(!module.is.indeterminate() && module.is.checked()) {\n module.debug('Input is already checked, skipping input property change');\n return;\n }\n module.verbose('Setting state to checked', input);\n $input\n .prop('indeterminate', false)\n .prop('checked', true)\n ;\n module.trigger.change();\n },\n unchecked: function() {\n module.verbose('Removing checked class');\n $module\n .removeClass(className.indeterminate)\n .removeClass(className.checked)\n ;\n if(!module.is.indeterminate() && module.is.unchecked() ) {\n module.debug('Input is already unchecked');\n return;\n }\n module.debug('Setting state to unchecked');\n $input\n .prop('indeterminate', false)\n .prop('checked', false)\n ;\n module.trigger.change();\n },\n indeterminate: function() {\n module.verbose('Setting class to indeterminate');\n $module\n .addClass(className.indeterminate)\n ;\n if( module.is.indeterminate() ) {\n module.debug('Input is already indeterminate, skipping input property change');\n return;\n }\n module.debug('Setting state to indeterminate');\n $input\n .prop('indeterminate', true)\n ;\n module.trigger.change();\n },\n determinate: function() {\n module.verbose('Removing indeterminate class');\n $module\n .removeClass(className.indeterminate)\n ;\n if( module.is.determinate() ) {\n module.debug('Input is already determinate, skipping input property change');\n return;\n }\n module.debug('Setting state to determinate');\n $input\n .prop('indeterminate', false)\n ;\n },\n disabled: function() {\n module.verbose('Setting class to disabled');\n $module\n .addClass(className.disabled)\n ;\n if( module.is.disabled() ) {\n module.debug('Input is already disabled, skipping input property change');\n return;\n }\n module.debug('Setting state to disabled');\n $input\n .prop('disabled', 'disabled')\n ;\n module.trigger.change();\n },\n enabled: function() {\n module.verbose('Removing disabled class');\n $module.removeClass(className.disabled);\n if( module.is.enabled() ) {\n module.debug('Input is already enabled, skipping input property change');\n return;\n }\n module.debug('Setting state to enabled');\n $input\n .prop('disabled', false)\n ;\n module.trigger.change();\n },\n tabbable: function() {\n module.verbose('Adding tabindex to checkbox');\n if( $input.attr('tabindex') === undefined) {\n $input.attr('tabindex', 0);\n }\n }\n },\n\n remove: {\n initialLoad: function() {\n initialLoad = false;\n }\n },\n\n trigger: {\n change: function() {\n var\n events = document.createEvent('HTMLEvents'),\n inputElement = $input[0]\n ;\n if(inputElement) {\n module.verbose('Triggering native change event');\n events.initEvent('change', true, false);\n inputElement.dispatchEvent(events);\n }\n }\n },\n\n\n create: {\n label: function() {\n if($input.prevAll(selector.label).length > 0) {\n $input.prev(selector.label).detach().insertAfter($input);\n module.debug('Moving existing label', $label);\n }\n else if( !module.has.label() ) {\n $label = $('<label>').insertAfter($input);\n module.debug('Creating label', $label);\n }\n }\n },\n\n has: {\n label: function() {\n return ($label.length > 0);\n }\n },\n\n bind: {\n events: function() {\n module.verbose('Attaching checkbox events');\n $module\n .on('click' + eventNamespace, module.event.click)\n .on('keydown' + eventNamespace, selector.input, module.event.keydown)\n .on('keyup' + eventNamespace, selector.input, module.event.keyup)\n ;\n }\n },\n\n unbind: {\n events: function() {\n module.debug('Removing events');\n $module\n .off(eventNamespace)\n ;\n }\n },\n\n uncheckOthers: function() {\n var\n $radios = module.get.otherRadios()\n ;\n module.debug('Unchecking other radios', $radios);\n $radios.removeClass(className.checked);\n },\n\n toggle: function() {\n if( !module.can.change() ) {\n if(!module.is.radio()) {\n module.debug('Checkbox is read-only or disabled, ignoring toggle');\n }\n return;\n }\n if( module.is.indeterminate() || module.is.unchecked() ) {\n module.debug('Currently unchecked');\n module.check();\n }\n else if( module.is.checked() && module.can.uncheck() ) {\n module.debug('Currently checked');\n module.uncheck();\n }\n },\n setting: function(name, value) {\n module.debug('Changing setting', name, value);\n if( $.isPlainObject(name) ) {\n $.extend(true, settings, name);\n }\n else if(value !== undefined) {\n if($.isPlainObject(settings[name])) {\n $.extend(true, settings[name], value);\n }\n else {\n settings[name] = value;\n }\n }\n else {\n return settings[name];\n }\n },\n internal: function(name, value) {\n if( $.isPlainObject(name) ) {\n $.extend(true, module, name);\n }\n else if(value !== undefined) {\n module[name] = value;\n }\n else {\n return module[name];\n }\n },\n debug: function() {\n if(!settings.silent && settings.debug) {\n if(settings.performance) {\n module.performance.log(arguments);\n }\n else {\n module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');\n module.debug.apply(console, arguments);\n }\n }\n },\n verbose: function() {\n if(!settings.silent && settings.verbose && settings.debug) {\n if(settings.performance) {\n module.performance.log(arguments);\n }\n else {\n module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');\n module.verbose.apply(console, arguments);\n }\n }\n },\n error: function() {\n if(!settings.silent) {\n module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');\n module.error.apply(console, arguments);\n }\n },\n performance: {\n log: function(message) {\n var\n currentTime,\n executionTime,\n previousTime\n ;\n if(settings.performance) {\n currentTime = new Date().getTime();\n previousTime = time || currentTime;\n executionTime = currentTime - previousTime;\n time = currentTime;\n performance.push({\n 'Name' : message[0],\n 'Arguments' : [].slice.call(message, 1) || '',\n 'Element' : element,\n 'Execution Time' : executionTime\n });\n }\n clearTimeout(module.performance.timer);\n module.performance.timer = setTimeout(module.performance.display, 500);\n },\n display: function() {\n var\n title = settings.name + ':',\n totalTime = 0\n ;\n time = false;\n clearTimeout(module.performance.timer);\n $.each(performance, function(index, data) {\n totalTime += data['Execution Time'];\n });\n title += ' ' + totalTime + 'ms';\n if(moduleSelector) {\n title += ' \\'' + moduleSelector + '\\'';\n }\n if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {\n console.groupCollapsed(title);\n if(console.table) {\n console.table(performance);\n }\n else {\n $.each(performance, function(index, data) {\n console.log(data['Name'] + ': ' + data['Execution Time']+'ms');\n });\n }\n console.groupEnd();\n }\n performance = [];\n }\n },\n invoke: function(query, passedArguments, context) {\n var\n object = instance,\n maxDepth,\n found,\n response\n ;\n passedArguments = passedArguments || queryArguments;\n context = element || context;\n if(typeof query == 'string' && object !== undefined) {\n query = query.split(/[\\. ]/);\n maxDepth = query.length - 1;\n $.each(query, function(depth, value) {\n var camelCaseValue = (depth != maxDepth)\n ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)\n : query\n ;\n if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {\n object = object[camelCaseValue];\n }\n else if( object[camelCaseValue] !== undefined ) {\n found = object[camelCaseValue];\n return false;\n }\n else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {\n object = object[value];\n }\n else if( object[value] !== undefined ) {\n found = object[value];\n return false;\n }\n else {\n module.error(error.method, query);\n return false;\n }\n });\n }\n if ( $.isFunction( found ) ) {\n response = found.apply(context, passedArguments);\n }\n else if(found !== undefined) {\n response = found;\n }\n if($.isArray(returnedValue)) {\n returnedValue.push(response);\n }\n else if(returnedValue !== undefined) {\n returnedValue = [returnedValue, response];\n }\n else if(response !== undefined) {\n returnedValue = response;\n }\n return found;\n }\n };\n\n if(methodInvoked) {\n if(instance === undefined) {\n module.initialize();\n }\n module.invoke(query);\n }\n else {\n if(instance !== undefined) {\n instance.invoke('destroy');\n }\n module.initialize();\n }\n })\n ;\n\n return (returnedValue !== undefined)\n ? returnedValue\n : this\n ;\n};\n\n$.fn.checkbox.settings = {\n\n name : 'Checkbox',\n namespace : 'checkbox',\n\n silent : false,\n debug : false,\n verbose : true,\n performance : true,\n\n // delegated event context\n uncheckable : 'auto',\n fireOnInit : false,\n\n onChange : function(){},\n\n beforeChecked : function(){},\n beforeUnchecked : function(){},\n beforeDeterminate : function(){},\n beforeIndeterminate : function(){},\n\n onChecked : function(){},\n onUnchecked : function(){},\n\n onDeterminate : function() {},\n onIndeterminate : function() {},\n\n onEnable : function(){},\n onDisable : function(){},\n\n // preserve misspelled callbacks (will be removed in 3.0)\n onEnabled : function(){},\n onDisabled : function(){},\n\n className : {\n checked : 'checked',\n indeterminate : 'indeterminate',\n disabled : 'disabled',\n hidden : 'hidden',\n radio : 'radio',\n readOnly : 'read-only'\n },\n\n error : {\n method : 'The method you called is not defined'\n },\n\n selector : {\n checkbox : '.ui.checkbox',\n label : 'label, .box',\n input : 'input[type=\"checkbox\"], input[type=\"radio\"]',\n link : 'a[href]'\n }\n\n};\n\n})( jQuery, window, document );\n\n/*!\n * # Semantic UI 2.2.11 - Dimmer\n * http://github.com/semantic-org/semantic-ui/\n *\n *\n * Released under the MIT license\n * http://opensource.org/licenses/MIT\n *\n */\n\n;(function ($, window, document, undefined) {\n\n\"use strict\";\n\nwindow = (typeof window != 'undefined' && window.Math == Math)\n ? window\n : (typeof self != 'undefined' && self.Math == Math)\n ? self\n : Function('return this')()\n;\n\n$.fn.dimmer = function(parameters) {\n var\n $allModules = $(this),\n\n time = new Date().getTime(),\n performance = [],\n\n query = arguments[0],\n methodInvoked = (typeof query == 'string'),\n queryArguments = [].slice.call(arguments, 1),\n\n returnedValue\n ;\n\n $allModules\n .each(function() {\n var\n settings = ( $.isPlainObject(parameters) )\n ? $.extend(true, {}, $.fn.dimmer.settings, parameters)\n : $.extend({}, $.fn.dimmer.settings),\n\n selector = settings.selector,\n namespace = settings.namespace,\n className = settings.className,\n error = settings.error,\n\n eventNamespace = '.' + namespace,\n moduleNamespace = 'module-' + namespace,\n moduleSelector = $allModules.selector || '',\n\n clickEvent = ('ontouchstart' in document.documentElement)\n ? 'touchstart'\n : 'click',\n\n $module = $(this),\n $dimmer,\n $dimmable,\n\n element = this,\n instance = $module.data(moduleNamespace),\n module\n ;\n\n module = {\n\n preinitialize: function() {\n if( module.is.dimmer() ) {\n\n $dimmable = $module.parent();\n $dimmer = $module;\n }\n else {\n $dimmable = $module;\n if( module.has.dimmer() ) {\n if(settings.dimmerName) {\n $dimmer = $dimmable.find(selector.dimmer).filter('.' + settings.dimmerName);\n }\n else {\n $dimmer = $dimmable.find(selector.dimmer);\n }\n }\n else {\n $dimmer = module.create();\n }\n module.set.variation();\n }\n },\n\n initialize: function() {\n module.debug('Initializing dimmer', settings);\n\n module.bind.events();\n module.set.dimmable();\n module.instantiate();\n },\n\n instantiate: function() {\n module.verbose('Storing instance of module', module);\n instance = module;\n $module\n .data(moduleNamespace, instance)\n ;\n },\n\n destroy: function() {\n module.verbose('Destroying previous module', $dimmer);\n module.unbind.events();\n module.remove.variation();\n $dimmable\n .off(eventNamespace)\n ;\n },\n\n bind: {\n events: function() {\n if(settings.on == 'hover') {\n $dimmable\n .on('mouseenter' + eventNamespace, module.show)\n .on('mouseleave' + eventNamespace, module.hide)\n ;\n }\n else if(settings.on == 'click') {\n $dimmable\n .on(clickEvent + eventNamespace, module.toggle)\n ;\n }\n if( module.is.page() ) {\n module.debug('Setting as a page dimmer', $dimmable);\n module.set.pageDimmer();\n }\n\n if( module.is.closable() ) {\n module.verbose('Adding dimmer close event', $dimmer);\n $dimmable\n .on(clickEvent + eventNamespace, selector.dimmer, module.event.click)\n ;\n }\n }\n },\n\n unbind: {\n events: function() {\n $module\n .removeData(moduleNamespace)\n ;\n $dimmable\n .off(eventNamespace)\n ;\n }\n },\n\n event: {\n click: function(event) {\n module.verbose('Determining if event occured on dimmer', event);\n if( $dimmer.find(event.target).length === 0 || $(event.target).is(selector.content) ) {\n module.hide();\n event.stopImmediatePropagation();\n }\n }\n },\n\n addContent: function(element) {\n var\n $content = $(element)\n ;\n module.debug('Add content to dimmer', $content);\n if($content.parent()[0] !== $dimmer[0]) {\n $content.detach().appendTo($dimmer);\n }\n },\n\n create: function() {\n var\n $element = $( settings.template.dimmer() )\n ;\n if(settings.dimmerName) {\n module.debug('Creating named dimmer', settings.dimmerName);\n $element.addClass(settings.dimmerName);\n }\n $element\n .appendTo($dimmable)\n ;\n return $element;\n },\n\n show: function(callback) {\n callback = $.isFunction(callback)\n ? callback\n : function(){}\n ;\n module.debug('Showing dimmer', $dimmer, settings);\n if( (!module.is.dimmed() || module.is.animating()) && module.is.enabled() ) {\n module.animate.show(callback);\n settings.onShow.call(element);\n settings.onChange.call(element);\n }\n else {\n module.debug('Dimmer is already shown or disabled');\n }\n },\n\n hide: function(callback) {\n callback = $.isFunction(callback)\n ? callback\n : function(){}\n ;\n if( module.is.dimmed() || module.is.animating() ) {\n module.debug('Hiding dimmer', $dimmer);\n module.animate.hide(callback);\n settings.onHide.call(element);\n settings.onChange.call(element);\n }\n else {\n module.debug('Dimmer is not visible');\n }\n },\n\n toggle: function() {\n module.verbose('Toggling dimmer visibility', $dimmer);\n if( !module.is.dimmed() ) {\n module.show();\n }\n else {\n module.hide();\n }\n },\n\n animate: {\n show: function(callback) {\n callback = $.isFunction(callback)\n ? callback\n : function(){}\n ;\n if(settings.useCSS && $.fn.transition !== undefined && $dimmer.transition('is supported')) {\n if(settings.opacity !== 'auto') {\n module.set.opacity();\n }\n $dimmer\n .transition({\n animation : settings.transition + ' in',\n queue : false,\n duration : module.get.duration(),\n useFailSafe : true,\n onStart : function() {\n module.set.dimmed();\n },\n onComplete : function() {\n module.set.active();\n callback();\n }\n })\n ;\n }\n else {\n module.verbose('Showing dimmer animation with javascript');\n module.set.dimmed();\n if(settings.opacity == 'auto') {\n settings.opacity = 0.8;\n }\n $dimmer\n .stop()\n .css({\n opacity : 0,\n width : '100%',\n height : '100%'\n })\n .fadeTo(module.get.duration(), settings.opacity, function() {\n $dimmer.removeAttr('style');\n module.set.active();\n callback();\n })\n ;\n }\n },\n hide: function(callback) {\n callback = $.isFunction(callback)\n ? callback\n : function(){}\n ;\n if(settings.useCSS && $.fn.transition !== undefined && $dimmer.transition('is supported')) {\n module.verbose('Hiding dimmer with css');\n $dimmer\n .transition({\n animation : settings.transition + ' out',\n queue : false,\n duration : module.get.duration(),\n useFailSafe : true,\n onStart : function() {\n module.remove.dimmed();\n },\n onComplete : function() {\n module.remove.active();\n callback();\n }\n })\n ;\n }\n else {\n module.verbose('Hiding dimmer with javascript');\n module.remove.dimmed();\n $dimmer\n .stop()\n .fadeOut(module.get.duration(), function() {\n module.remove.active();\n $dimmer.removeAttr('style');\n callback();\n })\n ;\n }\n }\n },\n\n get: {\n dimmer: function() {\n return $dimmer;\n },\n duration: function() {\n if(typeof settings.duration == 'object') {\n if( module.is.active() ) {\n return settings.duration.hide;\n }\n else {\n return settings.duration.show;\n }\n }\n return settings.duration;\n }\n },\n\n has: {\n dimmer: function() {\n if(settings.dimmerName) {\n return ($module.find(selector.dimmer).filter('.' + settings.dimmerName).length > 0);\n }\n else {\n return ( $module.find(selector.dimmer).length > 0 );\n }\n }\n },\n\n is: {\n active: function() {\n return $dimmer.hasClass(className.active);\n },\n animating: function() {\n return ( $dimmer.is(':animated') || $dimmer.hasClass(className.animating) );\n },\n closable: function() {\n if(settings.closable == 'auto') {\n if(settings.on == 'hover') {\n return false;\n }\n return true;\n }\n return settings.closable;\n },\n dimmer: function() {\n return $module.hasClass(className.dimmer);\n },\n dimmable: function() {\n return $module.hasClass(className.dimmable);\n },\n dimmed: function() {\n return $dimmable.hasClass(className.dimmed);\n },\n disabled: function() {\n return $dimmable.hasClass(className.disabled);\n },\n enabled: function() {\n return !module.is.disabled();\n },\n page: function () {\n return $dimmable.is('body');\n },\n pageDimmer: function() {\n return $dimmer.hasClass(className.pageDimmer);\n }\n },\n\n can: {\n show: function() {\n return !$dimmer.hasClass(className.disabled);\n }\n },\n\n set: {\n opacity: function(opacity) {\n var\n color = $dimmer.css('background-color'),\n colorArray = color.split(','),\n isRGB = (colorArray && colorArray.length == 3),\n isRGBA = (colorArray && colorArray.length == 4)\n ;\n opacity = settings.opacity === 0 ? 0 : settings.opacity || opacity;\n if(isRGB || isRGBA) {\n colorArray[3] = opacity + ')';\n color = colorArray.join(',');\n }\n else {\n color = 'rgba(0, 0, 0, ' + opacity + ')';\n }\n module.debug('Setting opacity to', opacity);\n $dimmer.css('background-color', color);\n },\n active: function() {\n $dimmer.addClass(className.active);\n },\n dimmable: function() {\n $dimmable.addClass(className.dimmable);\n },\n dimmed: function() {\n $dimmable.addClass(className.dimmed);\n },\n pageDimmer: function() {\n $dimmer.addClass(className.pageDimmer);\n },\n disabled: function() {\n $dimmer.addClass(className.disabled);\n },\n variation: function(variation) {\n variation = variation || settings.variation;\n if(variation) {\n $dimmer.addClass(variation);\n }\n }\n },\n\n remove: {\n active: function() {\n $dimmer\n .removeClass(className.active)\n ;\n },\n dimmed: function() {\n $dimmable.removeClass(className.dimmed);\n },\n disabled: function() {\n $dimmer.removeClass(className.disabled);\n },\n variation: function(variation) {\n variation = variation || settings.variation;\n if(variation) {\n $dimmer.removeClass(variation);\n }\n }\n },\n\n setting: function(name, value) {\n module.debug('Changing setting', name, value);\n if( $.isPlainObject(name) ) {\n $.extend(true, settings, name);\n }\n else if(value !== undefined) {\n if($.isPlainObject(settings[name])) {\n $.extend(true, settings[name], value);\n }\n else {\n settings[name] = value;\n }\n }\n else {\n return settings[name];\n }\n },\n internal: function(name, value) {\n if( $.isPlainObject(name) ) {\n $.extend(true, module, name);\n }\n else if(value !== undefined) {\n module[name] = value;\n }\n else {\n return module[name];\n }\n },\n debug: function() {\n if(!settings.silent && settings.debug) {\n if(settings.performance) {\n module.performance.log(arguments);\n }\n else {\n module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');\n module.debug.apply(console, arguments);\n }\n }\n },\n verbose: function() {\n if(!settings.silent && settings.verbose && settings.debug) {\n if(settings.performance) {\n module.performance.log(arguments);\n }\n else {\n module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');\n module.verbose.apply(console, arguments);\n }\n }\n },\n error: function() {\n if(!settings.silent) {\n module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');\n module.error.apply(console, arguments);\n }\n },\n performance: {\n log: function(message) {\n var\n currentTime,\n executionTime,\n previousTime\n ;\n if(settings.performance) {\n currentTime = new Date().getTime();\n previousTime = time || currentTime;\n executionTime = currentTime - previousTime;\n time = currentTime;\n performance.push({\n 'Name' : message[0],\n 'Arguments' : [].slice.call(message, 1) || '',\n 'Element' : element,\n 'Execution Time' : executionTime\n });\n }\n clearTimeout(module.performance.timer);\n module.performance.timer = setTimeout(module.performance.display, 500);\n },\n display: function() {\n var\n title = settings.name + ':',\n totalTime = 0\n ;\n time = false;\n clearTimeout(module.performance.timer);\n $.each(performance, function(index, data) {\n totalTime += data['Execution Time'];\n });\n title += ' ' + totalTime + 'ms';\n if(moduleSelector) {\n title += ' \\'' + moduleSelector + '\\'';\n }\n if($allModules.length > 1) {\n title += ' ' + '(' + $allModules.length + ')';\n }\n if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {\n console.groupCollapsed(title);\n if(console.table) {\n console.table(performance);\n }\n else {\n $.each(performance, function(index, data) {\n console.log(data['Name'] + ': ' + data['Execution Time']+'ms');\n });\n }\n console.groupEnd();\n }\n performance = [];\n }\n },\n invoke: function(query, passedArguments, context) {\n var\n object = instance,\n maxDepth,\n found,\n response\n ;\n passedArguments = passedArguments || queryArguments;\n context = element || context;\n if(typeof query == 'string' && object !== undefined) {\n query = query.split(/[\\. ]/);\n maxDepth = query.length - 1;\n $.each(query, function(depth, value) {\n var camelCaseValue = (depth != maxDepth)\n ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)\n : query\n ;\n if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {\n object = object[camelCaseValue];\n }\n else if( object[camelCaseValue] !== undefined ) {\n found = object[camelCaseValue];\n return false;\n }\n else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {\n object = object[value];\n }\n else if( object[value] !== undefined ) {\n found = object[value];\n return false;\n }\n else {\n module.error(error.method, query);\n return false;\n }\n });\n }\n if ( $.isFunction( found ) ) {\n response = found.apply(context, passedArguments);\n }\n else if(found !== undefined) {\n response = found;\n }\n if($.isArray(returnedValue)) {\n returnedValue.push(response);\n }\n else if(returnedValue !== undefined) {\n returnedValue = [returnedValue, response];\n }\n else if(response !== undefined) {\n returnedValue = response;\n }\n return found;\n }\n };\n\n module.preinitialize();\n\n if(methodInvoked) {\n if(instance === undefined) {\n module.initialize();\n }\n module.invoke(query);\n }\n else {\n if(instance !== undefined) {\n instance.invoke('destroy');\n }\n module.initialize();\n }\n })\n ;\n\n return (returnedValue !== undefined)\n ? returnedValue\n : this\n ;\n};\n\n$.fn.dimmer.settings = {\n\n name : 'Dimmer',\n namespace : 'dimmer',\n\n silent : false,\n debug : false,\n verbose : false,\n performance : true,\n\n // name to distinguish between multiple dimmers in context\n dimmerName : false,\n\n // whether to add a variation type\n variation : false,\n\n // whether to bind close events\n closable : 'auto',\n\n // whether to use css animations\n useCSS : true,\n\n // css animation to use\n transition : 'fade',\n\n // event to bind to\n on : false,\n\n // overriding opacity value\n opacity : 'auto',\n\n // transition durations\n duration : {\n show : 500,\n hide : 500\n },\n\n onChange : function(){},\n onShow : function(){},\n onHide : function(){},\n\n error : {\n method : 'The method you called is not defined.'\n },\n\n className : {\n active : 'active',\n animating : 'animating',\n dimmable : 'dimmable',\n dimmed : 'dimmed',\n dimmer : 'dimmer',\n disabled : 'disabled',\n hide : 'hide',\n pageDimmer : 'page',\n show : 'show'\n },\n\n selector: {\n dimmer : '> .ui.dimmer',\n content : '.ui.dimmer > .content, .ui.dimmer > .content > .center'\n },\n\n template: {\n dimmer: function() {\n return $('<div />').attr('class', 'ui dimmer');\n }\n }\n\n};\n\n})( jQuery, window, document );\n\n/*!\n * # Semantic UI 2.2.11 - Dropdown\n * http://github.com/semantic-org/semantic-ui/\n *\n *\n * Released under the MIT license\n * http://opensource.org/licenses/MIT\n *\n */\n\n;(function ($, window, document, undefined) {\n\n\"use strict\";\n\nwindow = (typeof window != 'undefined' && window.Math == Math)\n ? window\n : (typeof self != 'undefined' && self.Math == Math)\n ? self\n : Function('return this')()\n;\n\n$.fn.dropdown = function(parameters) {\n var\n $allModules = $(this),\n $document = $(document),\n\n moduleSelector = $allModules.selector || '',\n\n hasTouch = ('ontouchstart' in document.documentElement),\n time = new Date().getTime(),\n performance = [],\n\n query = arguments[0],\n methodInvoked = (typeof query == 'string'),\n queryArguments = [].slice.call(arguments, 1),\n returnedValue\n ;\n\n $allModules\n .each(function(elementIndex) {\n var\n settings = ( $.isPlainObject(parameters) )\n ? $.extend(true, {}, $.fn.dropdown.settings, parameters)\n : $.extend({}, $.fn.dropdown.settings),\n\n className = settings.className,\n message = settings.message,\n fields = settings.fields,\n keys = settings.keys,\n metadata = settings.metadata,\n namespace = settings.namespace,\n regExp = settings.regExp,\n selector = settings.selector,\n error = settings.error,\n templates = settings.templates,\n\n eventNamespace = '.' + namespace,\n moduleNamespace = 'module-' + namespace,\n\n $module = $(this),\n $context = $(settings.context),\n $text = $module.find(selector.text),\n $search = $module.find(selector.search),\n $sizer = $module.find(selector.sizer),\n $input = $module.find(selector.input),\n $icon = $module.find(selector.icon),\n\n $combo = ($module.prev().find(selector.text).length > 0)\n ? $module.prev().find(selector.text)\n : $module.prev(),\n\n $menu = $module.children(selector.menu),\n $item = $menu.find(selector.item),\n\n activated = false,\n itemActivated = false,\n internalChange = false,\n element = this,\n instance = $module.data(moduleNamespace),\n\n initialLoad,\n pageLostFocus,\n willRefocus,\n elementNamespace,\n id,\n selectObserver,\n menuObserver,\n module\n ;\n\n module = {\n\n initialize: function() {\n module.debug('Initializing dropdown', settings);\n\n if( module.is.alreadySetup() ) {\n module.setup.reference();\n }\n else {\n module.setup.layout();\n module.refreshData();\n\n module.save.defaults();\n module.restore.selected();\n\n module.create.id();\n module.bind.events();\n\n module.observeChanges();\n module.instantiate();\n }\n\n },\n\n instantiate: function() {\n module.verbose('Storing instance of dropdown', module);\n instance = module;\n $module\n .data(moduleNamespace, module)\n ;\n },\n\n destroy: function() {\n module.verbose('Destroying previous dropdown', $module);\n module.remove.tabbable();\n $module\n .off(eventNamespace)\n .removeData(moduleNamespace)\n ;\n $menu\n .off(eventNamespace)\n ;\n $document\n .off(elementNamespace)\n ;\n module.disconnect.menuObserver();\n module.disconnect.selectObserver();\n },\n\n observeChanges: function() {\n if('MutationObserver' in window) {\n selectObserver = new MutationObserver(module.event.select.mutation);\n menuObserver = new MutationObserver(module.event.menu.mutation);\n module.debug('Setting up mutation observer', selectObserver, menuObserver);\n module.observe.select();\n module.observe.menu();\n }\n },\n\n disconnect: {\n menuObserver: function() {\n if(menuObserver) {\n menuObserver.disconnect();\n }\n },\n selectObserver: function() {\n if(selectObserver) {\n selectObserver.disconnect();\n }\n }\n },\n observe: {\n select: function() {\n if(module.has.input()) {\n selectObserver.observe($input[0], {\n childList : true,\n subtree : true\n });\n }\n },\n menu: function() {\n if(module.has.menu()) {\n menuObserver.observe($menu[0], {\n childList : true,\n subtree : true\n });\n }\n }\n },\n\n create: {\n id: function() {\n id = (Math.random().toString(16) + '000000000').substr(2, 8);\n elementNamespace = '.' + id;\n module.verbose('Creating unique id for element', id);\n },\n userChoice: function(values) {\n var\n $userChoices,\n $userChoice,\n isUserValue,\n html\n ;\n values = values || module.get.userValues();\n if(!values) {\n return false;\n }\n values = $.isArray(values)\n ? values\n : [values]\n ;\n $.each(values, function(index, value) {\n if(module.get.item(value) === false) {\n html = settings.templates.addition( module.add.variables(message.addResult, value) );\n $userChoice = $('<div />')\n .html(html)\n .attr('data-' + metadata.value, value)\n .attr('data-' + metadata.text, value)\n .addClass(className.addition)\n .addClass(className.item)\n ;\n if(settings.hideAdditions) {\n $userChoice.addClass(className.hidden);\n }\n $userChoices = ($userChoices === undefined)\n ? $userChoice\n : $userChoices.add($userChoice)\n ;\n module.verbose('Creating user choices for value', value, $userChoice);\n }\n });\n return $userChoices;\n },\n userLabels: function(value) {\n var\n userValues = module.get.userValues()\n ;\n if(userValues) {\n module.debug('Adding user labels', userValues);\n $.each(userValues, function(index, value) {\n module.verbose('Adding custom user value');\n module.add.label(value, value);\n });\n }\n },\n menu: function() {\n $menu = $('<div />')\n .addClass(className.menu)\n .appendTo($module)\n ;\n },\n sizer: function() {\n $sizer = $('<span />')\n .addClass(className.sizer)\n .insertAfter($search)\n ;\n }\n },\n\n search: function(query) {\n query = (query !== undefined)\n ? query\n : module.get.query()\n ;\n module.verbose('Searching for query', query);\n if(module.has.minCharacters(query)) {\n module.filter(query);\n }\n else {\n module.hide();\n }\n },\n\n select: {\n firstUnfiltered: function() {\n module.verbose('Selecting first non-filtered element');\n module.remove.selectedItem();\n $item\n .not(selector.unselectable)\n .not(selector.addition + selector.hidden)\n .eq(0)\n .addClass(className.selected)\n ;\n },\n nextAvailable: function($selected) {\n $selected = $selected.eq(0);\n var\n $nextAvailable = $selected.nextAll(selector.item).not(selector.unselectable).eq(0),\n $prevAvailable = $selected.prevAll(selector.item).not(selector.unselectable).eq(0),\n hasNext = ($nextAvailable.length > 0)\n ;\n if(hasNext) {\n module.verbose('Moving selection to', $nextAvailable);\n $nextAvailable.addClass(className.selected);\n }\n else {\n module.verbose('Moving selection to', $prevAvailable);\n $prevAvailable.addClass(className.selected);\n }\n }\n },\n\n setup: {\n api: function() {\n var\n apiSettings = {\n debug : settings.debug,\n urlData : {\n value : module.get.value(),\n query : module.get.query()\n },\n on : false\n }\n ;\n module.verbose('First request, initializing API');\n $module\n .api(apiSettings)\n ;\n },\n layout: function() {\n if( $module.is('select') ) {\n module.setup.select();\n module.setup.returnedObject();\n }\n if( !module.has.menu() ) {\n module.create.menu();\n }\n if( module.is.search() && !module.has.search() ) {\n module.verbose('Adding search input');\n $search = $('<input />')\n .addClass(className.search)\n .prop('autocomplete', 'off')\n .insertBefore($text)\n ;\n }\n if( module.is.multiple() && module.is.searchSelection() && !module.has.sizer()) {\n module.create.sizer();\n }\n if(settings.allowTab) {\n module.set.tabbable();\n }\n },\n select: function() {\n var\n selectValues = module.get.selectValues()\n ;\n module.debug('Dropdown initialized on a select', selectValues);\n if( $module.is('select') ) {\n $input = $module;\n }\n // see if select is placed correctly already\n if($input.parent(selector.dropdown).length > 0) {\n module.debug('UI dropdown already exists. Creating dropdown menu only');\n $module = $input.closest(selector.dropdown);\n if( !module.has.menu() ) {\n module.create.menu();\n }\n $menu = $module.children(selector.menu);\n module.setup.menu(selectValues);\n }\n else {\n module.debug('Creating entire dropdown from select');\n $module = $('<div />')\n .attr('class', $input.attr('class') )\n .addClass(className.selection)\n .addClass(className.dropdown)\n .html( templates.dropdown(selectValues) )\n .insertBefore($input)\n ;\n if($input.hasClass(className.multiple) && $input.prop('multiple') === false) {\n module.error(error.missingMultiple);\n $input.prop('multiple', true);\n }\n if($input.is('[multiple]')) {\n module.set.multiple();\n }\n if ($input.prop('disabled')) {\n module.debug('Disabling dropdown');\n $module.addClass(className.disabled);\n }\n $input\n .removeAttr('class')\n .detach()\n .prependTo($module)\n ;\n }\n module.refresh();\n },\n menu: function(values) {\n $menu.html( templates.menu(values, fields));\n $item = $menu.find(selector.item);\n },\n reference: function() {\n module.debug('Dropdown behavior was called on select, replacing with closest dropdown');\n // replace module reference\n $module = $module.parent(selector.dropdown);\n module.refresh();\n module.setup.returnedObject();\n // invoke method in context of current instance\n if(methodInvoked) {\n instance = module;\n module.invoke(query);\n }\n },\n returnedObject: function() {\n var\n $firstModules = $allModules.slice(0, elementIndex),\n $lastModules = $allModules.slice(elementIndex + 1)\n ;\n // adjust all modules to use correct reference\n $allModules = $firstModules.add($module).add($lastModules);\n }\n },\n\n refresh: function() {\n module.refreshSelectors();\n module.refreshData();\n },\n\n refreshItems: function() {\n $item = $menu.find(selector.item);\n },\n\n refreshSelectors: function() {\n module.verbose('Refreshing selector cache');\n $text = $module.find(selector.text);\n $search = $module.find(selector.search);\n $input = $module.find(selector.input);\n $icon = $module.find(selector.icon);\n $combo = ($module.prev().find(selector.text).length > 0)\n ? $module.prev().find(selector.text)\n : $module.prev()\n ;\n $menu = $module.children(selector.menu);\n $item = $menu.find(selector.item);\n },\n\n refreshData: function() {\n module.verbose('Refreshing cached metadata');\n $item\n .removeData(metadata.text)\n .removeData(metadata.value)\n ;\n },\n\n clearData: function() {\n module.verbose('Clearing metadata');\n $item\n .removeData(metadata.text)\n .removeData(metadata.value)\n ;\n $module\n .removeData(metadata.defaultText)\n .removeData(metadata.defaultValue)\n .removeData(metadata.placeholderText)\n ;\n },\n\n toggle: function() {\n module.verbose('Toggling menu visibility');\n if( !module.is.active() ) {\n module.show();\n }\n else {\n module.hide();\n }\n },\n\n show: function(callback) {\n callback = $.isFunction(callback)\n ? callback\n : function(){}\n ;\n if(!module.can.show() && module.is.remote()) {\n module.debug('No API results retrieved, searching before show');\n module.queryRemote(module.get.query(), module.show);\n }\n if( module.can.show() && !module.is.active() ) {\n module.debug('Showing dropdown');\n if(module.has.message() && !(module.has.maxSelections() || module.has.allResultsFiltered()) ) {\n module.remove.message();\n }\n if(module.is.allFiltered()) {\n return true;\n }\n if(settings.onShow.call(element) !== false) {\n module.animate.show(function() {\n if( module.can.click() ) {\n module.bind.intent();\n }\n if(module.has.menuSearch()) {\n module.focusSearch();\n }\n module.set.visible();\n callback.call(element);\n });\n }\n }\n },\n\n hide: function(callback) {\n callback = $.isFunction(callback)\n ? callback\n : function(){}\n ;\n if( module.is.active() ) {\n module.debug('Hiding dropdown');\n if(settings.onHide.call(element) !== false) {\n module.animate.hide(function() {\n module.remove.visible();\n callback.call(element);\n });\n }\n }\n },\n\n hideOthers: function() {\n module.verbose('Finding other dropdowns to hide');\n $allModules\n .not($module)\n .has(selector.menu + '.' + className.visible)\n .dropdown('hide')\n ;\n },\n\n hideMenu: function() {\n module.verbose('Hiding menu instantaneously');\n module.remove.active();\n module.remove.visible();\n $menu.transition('hide');\n },\n\n hideSubMenus: function() {\n var\n $subMenus = $menu.children(selector.item).find(selector.menu)\n ;\n module.verbose('Hiding sub menus', $subMenus);\n $subMenus.transition('hide');\n },\n\n bind: {\n events: function() {\n if(hasTouch) {\n module.bind.touchEvents();\n }\n module.bind.keyboardEvents();\n module.bind.inputEvents();\n module.bind.mouseEvents();\n },\n touchEvents: function() {\n module.debug('Touch device detected binding additional touch events');\n if( module.is.searchSelection() ) {\n // do nothing special yet\n }\n else if( module.is.single() ) {\n $module\n .on('touchstart' + eventNamespace, module.event.test.toggle)\n ;\n }\n $menu\n .on('touchstart' + eventNamespace, selector.item, module.event.item.mouseenter)\n ;\n },\n keyboardEvents: function() {\n module.verbose('Binding keyboard events');\n $module\n .on('keydown' + eventNamespace, module.event.keydown)\n ;\n if( module.has.search() ) {\n $module\n .on(module.get.inputEvent() + eventNamespace, selector.search, module.event.input)\n ;\n }\n if( module.is.multiple() ) {\n $document\n .on('keydown' + elementNamespace, module.event.document.keydown)\n ;\n }\n },\n inputEvents: function() {\n module.verbose('Binding input change events');\n $module\n .on('change' + eventNamespace, selector.input, module.event.change)\n ;\n },\n mouseEvents: function() {\n module.verbose('Binding mouse events');\n if(module.is.multiple()) {\n $module\n .on('click' + eventNamespace, selector.label, module.event.label.click)\n .on('click' + eventNamespace, selector.remove, module.event.remove.click)\n ;\n }\n if( module.is.searchSelection() ) {\n $module\n .on('mousedown' + eventNamespace, module.event.mousedown)\n .on('mouseup' + eventNamespace, module.event.mouseup)\n .on('mousedown' + eventNamespace, selector.menu, module.event.menu.mousedown)\n .on('mouseup' + eventNamespace, selector.menu, module.event.menu.mouseup)\n .on('click' + eventNamespace, selector.icon, module.event.icon.click)\n .on('focus' + eventNamespace, selector.search, module.event.search.focus)\n .on('click' + eventNamespace, selector.search, module.event.search.focus)\n .on('blur' + eventNamespace, selector.search, module.event.search.blur)\n .on('click' + eventNamespace, selector.text, module.event.text.focus)\n ;\n if(module.is.multiple()) {\n $module\n .on('click' + eventNamespace, module.event.click)\n ;\n }\n }\n else {\n if(settings.on == 'click') {\n $module\n .on('click' + eventNamespace, selector.icon, module.event.icon.click)\n .on('click' + eventNamespace, module.event.test.toggle)\n ;\n }\n else if(settings.on == 'hover') {\n $module\n .on('mouseenter' + eventNamespace, module.delay.show)\n .on('mouseleave' + eventNamespace, module.delay.hide)\n ;\n }\n else {\n $module\n .on(settings.on + eventNamespace, module.toggle)\n ;\n }\n $module\n .on('mousedown' + eventNamespace, module.event.mousedown)\n .on('mouseup' + eventNamespace, module.event.mouseup)\n .on('focus' + eventNamespace, module.event.focus)\n ;\n if(module.has.menuSearch() ) {\n $module\n .on('blur' + eventNamespace, selector.search, module.event.search.blur)\n ;\n }\n else {\n $module\n .on('blur' + eventNamespace, module.event.blur)\n ;\n }\n }\n $menu\n .on('mouseenter' + eventNamespace, selector.item, module.event.item.mouseenter)\n .on('mouseleave' + eventNamespace, selector.item, module.event.item.mouseleave)\n .on('click' + eventNamespace, selector.item, module.event.item.click)\n ;\n },\n intent: function() {\n module.verbose('Binding hide intent event to document');\n if(hasTouch) {\n $document\n .on('touchstart' + elementNamespace, module.event.test.touch)\n .on('touchmove' + elementNamespace, module.event.test.touch)\n ;\n }\n $document\n .on('click' + elementNamespace, module.event.test.hide)\n ;\n }\n },\n\n unbind: {\n intent: function() {\n module.verbose('Removing hide intent event from document');\n if(hasTouch) {\n $document\n .off('touchstart' + elementNamespace)\n .off('touchmove' + elementNamespace)\n ;\n }\n $document\n .off('click' + elementNamespace)\n ;\n }\n },\n\n filter: function(query) {\n var\n searchTerm = (query !== undefined)\n ? query\n : module.get.query(),\n afterFiltered = function() {\n if(module.is.multiple()) {\n module.filterActive();\n }\n if(query || (!query && module.get.activeItem().length == 0)) {\n module.select.firstUnfiltered();\n }\n if( module.has.allResultsFiltered() ) {\n if( settings.onNoResults.call(element, searchTerm) ) {\n if(settings.allowAdditions) {\n if(settings.hideAdditions) {\n module.verbose('User addition with no menu, setting empty style');\n module.set.empty();\n module.hideMenu();\n }\n }\n else {\n module.verbose('All items filtered, showing message', searchTerm);\n module.add.message(message.noResults);\n }\n }\n else {\n module.verbose('All items filtered, hiding dropdown', searchTerm);\n module.hideMenu();\n }\n }\n else {\n module.remove.empty();\n module.remove.message();\n }\n if(settings.allowAdditions) {\n module.add.userSuggestion(query);\n }\n if(module.is.searchSelection() && module.can.show() && module.is.focusedOnSearch() ) {\n module.show();\n }\n }\n ;\n if(settings.useLabels && module.has.maxSelections()) {\n return;\n }\n if(settings.apiSettings) {\n if( module.can.useAPI() ) {\n module.queryRemote(searchTerm, function() {\n if(settings.filterRemoteData) {\n module.filterItems(searchTerm);\n }\n afterFiltered();\n });\n }\n else {\n module.error(error.noAPI);\n }\n }\n else {\n module.filterItems(searchTerm);\n afterFiltered();\n }\n },\n\n queryRemote: function(query, callback) {\n var\n apiSettings = {\n errorDuration : false,\n cache : 'local',\n throttle : settings.throttle,\n urlData : {\n query: query\n },\n onError: function() {\n module.add.message(message.serverError);\n callback();\n },\n onFailure: function() {\n module.add.message(message.serverError);\n callback();\n },\n onSuccess : function(response) {\n module.remove.message();\n module.setup.menu({\n values: response[fields.remoteValues]\n });\n callback();\n }\n }\n ;\n if( !$module.api('get request') ) {\n module.setup.api();\n }\n apiSettings = $.extend(true, {}, apiSettings, settings.apiSettings);\n $module\n .api('setting', apiSettings)\n .api('query')\n ;\n },\n\n filterItems: function(query) {\n var\n searchTerm = (query !== undefined)\n ? query\n : module.get.query(),\n results = null,\n escapedTerm = module.escape.string(searchTerm),\n beginsWithRegExp = new RegExp('^' + escapedTerm, 'igm')\n ;\n // avoid loop if we're matching nothing\n if( module.has.query() ) {\n results = [];\n\n module.verbose('Searching for matching values', searchTerm);\n $item\n .each(function(){\n var\n $choice = $(this),\n text,\n value\n ;\n if(settings.match == 'both' || settings.match == 'text') {\n text = String(module.get.choiceText($choice, false));\n if(text.search(beginsWithRegExp) !== -1) {\n results.push(this);\n return true;\n }\n else if (settings.fullTextSearch === 'exact' && module.exactSearch(searchTerm, text)) {\n results.push(this);\n return true;\n }\n else if (settings.fullTextSearch === true && module.fuzzySearch(searchTerm, text)) {\n results.push(this);\n return true;\n }\n }\n if(settings.match == 'both' || settings.match == 'value') {\n value = String(module.get.choiceValue($choice, text));\n if(value.search(beginsWithRegExp) !== -1) {\n results.push(this);\n return true;\n }\n else if (settings.fullTextSearch === 'exact' && module.exactSearch(searchTerm, value)) {\n results.push(this);\n return true;\n }\n else if (settings.fullTextSearch === true && module.fuzzySearch(searchTerm, value)) {\n results.push(this);\n return true;\n }\n }\n })\n ;\n }\n module.debug('Showing only matched items', searchTerm);\n module.remove.filteredItem();\n if(results) {\n $item\n .not(results)\n .addClass(className.filtered)\n ;\n }\n },\n\n fuzzySearch: function(query, term) {\n var\n termLength = term.length,\n queryLength = query.length\n ;\n query = query.toLowerCase();\n term = term.toLowerCase();\n if(queryLength > termLength) {\n return false;\n }\n if(queryLength === termLength) {\n return (query === term);\n }\n search: for (var characterIndex = 0, nextCharacterIndex = 0; characterIndex < queryLength; characterIndex++) {\n var\n queryCharacter = query.charCodeAt(characterIndex)\n ;\n while(nextCharacterIndex < termLength) {\n if(term.charCodeAt(nextCharacterIndex++) === queryCharacter) {\n continue search;\n }\n }\n return false;\n }\n return true;\n },\n exactSearch: function (query, term) {\n query = query.toLowerCase();\n term = term.toLowerCase();\n if(term.indexOf(query) > -1) {\n return true;\n }\n return false;\n },\n filterActive: function() {\n if(settings.useLabels) {\n $item.filter('.' + className.active)\n .addClass(className.filtered)\n ;\n }\n },\n\n focusSearch: function(skipHandler) {\n if( module.has.search() && !module.is.focusedOnSearch() ) {\n if(skipHandler) {\n $module.off('focus' + eventNamespace, selector.search);\n $search.focus();\n $module.on('focus' + eventNamespace, selector.search, module.event.search.focus);\n }\n else {\n $search.focus();\n }\n }\n },\n\n forceSelection: function() {\n var\n $currentlySelected = $item.not(className.filtered).filter('.' + className.selected).eq(0),\n $activeItem = $item.not(className.filtered).filter('.' + className.active).eq(0),\n $selectedItem = ($currentlySelected.length > 0)\n ? $currentlySelected\n : $activeItem,\n hasSelected = ($selectedItem.length > 0)\n ;\n if(hasSelected && !module.is.multiple()) {\n module.debug('Forcing partial selection to selected item', $selectedItem);\n module.event.item.click.call($selectedItem, {}, true);\n return;\n }\n else {\n if(settings.allowAdditions) {\n module.set.selected(module.get.query());\n module.remove.searchTerm();\n }\n else {\n module.remove.searchTerm();\n }\n }\n },\n\n event: {\n change: function() {\n if(!internalChange) {\n module.debug('Input changed, updating selection');\n module.set.selected();\n }\n },\n focus: function() {\n if(settings.showOnFocus && !activated && module.is.hidden() && !pageLostFocus) {\n module.show();\n }\n },\n blur: function(event) {\n pageLostFocus = (document.activeElement === this);\n if(!activated && !pageLostFocus) {\n module.remove.activeLabel();\n module.hide();\n }\n },\n mousedown: function() {\n if(module.is.searchSelection()) {\n // prevent menu hiding on immediate re-focus\n willRefocus = true;\n }\n else {\n // prevents focus callback from occurring on mousedown\n activated = true;\n }\n },\n mouseup: function() {\n if(module.is.searchSelection()) {\n // prevent menu hiding on immediate re-focus\n willRefocus = false;\n }\n else {\n activated = false;\n }\n },\n click: function(event) {\n var\n $target = $(event.target)\n ;\n // focus search\n if($target.is($module)) {\n if(!module.is.focusedOnSearch()) {\n module.focusSearch();\n }\n else {\n module.show();\n }\n }\n },\n search: {\n focus: function() {\n activated = true;\n if(module.is.multiple()) {\n module.remove.activeLabel();\n }\n if(settings.showOnFocus) {\n module.search();\n }\n },\n blur: function(event) {\n pageLostFocus = (document.activeElement === this);\n if(module.is.searchSelection() && !willRefocus) {\n if(!itemActivated && !pageLostFocus) {\n if(settings.forceSelection) {\n module.forceSelection();\n }\n module.hide();\n }\n }\n willRefocus = false;\n }\n },\n icon: {\n click: function(event) {\n module.toggle();\n }\n },\n text: {\n focus: function(event) {\n activated = true;\n module.focusSearch();\n }\n },\n input: function(event) {\n if(module.is.multiple() || module.is.searchSelection()) {\n module.set.filtered();\n }\n clearTimeout(module.timer);\n module.timer = setTimeout(module.search, settings.delay.search);\n },\n label: {\n click: function(event) {\n var\n $label = $(this),\n $labels = $module.find(selector.label),\n $activeLabels = $labels.filter('.' + className.active),\n $nextActive = $label.nextAll('.' + className.active),\n $prevActive = $label.prevAll('.' + className.active),\n $range = ($nextActive.length > 0)\n ? $label.nextUntil($nextActive).add($activeLabels).add($label)\n : $label.prevUntil($prevActive).add($activeLabels).add($label)\n ;\n if(event.shiftKey) {\n $activeLabels.removeClass(className.active);\n $range.addClass(className.active);\n }\n else if(event.ctrlKey) {\n $label.toggleClass(className.active);\n }\n else {\n $activeLabels.removeClass(className.active);\n $label.addClass(className.active);\n }\n settings.onLabelSelect.apply(this, $labels.filter('.' + className.active));\n }\n },\n remove: {\n click: function() {\n var\n $label = $(this).parent()\n ;\n if( $label.hasClass(className.active) ) {\n // remove all selected labels\n module.remove.activeLabels();\n }\n else {\n // remove this label only\n module.remove.activeLabels( $label );\n }\n }\n },\n test: {\n toggle: function(event) {\n var\n toggleBehavior = (module.is.multiple())\n ? module.show\n : module.toggle\n ;\n if(module.is.bubbledLabelClick(event) || module.is.bubbledIconClick(event)) {\n return;\n }\n if( module.determine.eventOnElement(event, toggleBehavior) ) {\n event.preventDefault();\n }\n },\n touch: function(event) {\n module.determine.eventOnElement(event, function() {\n if(event.type == 'touchstart') {\n module.timer = setTimeout(function() {\n module.hide();\n }, settings.delay.touch);\n }\n else if(event.type == 'touchmove') {\n clearTimeout(module.timer);\n }\n });\n event.stopPropagation();\n },\n hide: function(event) {\n module.determine.eventInModule(event, module.hide);\n }\n },\n select: {\n mutation: function(mutations) {\n module.debug('<select> modified, recreating menu');\n module.setup.select();\n }\n },\n menu: {\n mutation: function(mutations) {\n var\n mutation = mutations[0],\n $addedNode = mutation.addedNodes\n ? $(mutation.addedNodes[0])\n : $(false),\n $removedNode = mutation.removedNodes\n ? $(mutation.removedNodes[0])\n : $(false),\n $changedNodes = $addedNode.add($removedNode),\n isUserAddition = $changedNodes.is(selector.addition) || $changedNodes.closest(selector.addition).length > 0,\n isMessage = $changedNodes.is(selector.message) || $changedNodes.closest(selector.message).length > 0\n ;\n if(isUserAddition || isMessage) {\n module.debug('Updating item selector cache');\n module.refreshItems();\n }\n else {\n module.debug('Menu modified, updating selector cache');\n module.refresh();\n }\n },\n mousedown: function() {\n itemActivated = true;\n },\n mouseup: function() {\n itemActivated = false;\n }\n },\n item: {\n mouseenter: function(event) {\n var\n $target = $(event.target),\n $item = $(this),\n $subMenu = $item.children(selector.menu),\n $otherMenus = $item.siblings(selector.item).children(selector.menu),\n hasSubMenu = ($subMenu.length > 0),\n isBubbledEvent = ($subMenu.find($target).length > 0)\n ;\n if( !isBubbledEvent && hasSubMenu ) {\n clearTimeout(module.itemTimer);\n module.itemTimer = setTimeout(function() {\n module.verbose('Showing sub-menu', $subMenu);\n $.each($otherMenus, function() {\n module.animate.hide(false, $(this));\n });\n module.animate.show(false, $subMenu);\n }, settings.delay.show);\n event.preventDefault();\n }\n },\n mouseleave: function(event) {\n var\n $subMenu = $(this).children(selector.menu)\n ;\n if($subMenu.length > 0) {\n clearTimeout(module.itemTimer);\n module.itemTimer = setTimeout(function() {\n module.verbose('Hiding sub-menu', $subMenu);\n module.animate.hide(false, $subMenu);\n }, settings.delay.hide);\n }\n },\n click: function (event, skipRefocus) {\n var\n $choice = $(this),\n $target = (event)\n ? $(event.target)\n : $(''),\n $subMenu = $choice.find(selector.menu),\n text = module.get.choiceText($choice),\n value = module.get.choiceValue($choice, text),\n hasSubMenu = ($subMenu.length > 0),\n isBubbledEvent = ($subMenu.find($target).length > 0)\n ;\n // prevents IE11 bug where menu receives focus even though `tabindex=-1`\n if(module.has.menuSearch()) {\n $(document.activeElement).blur();\n }\n if(!isBubbledEvent && (!hasSubMenu || settings.allowCategorySelection)) {\n if(module.is.searchSelection()) {\n if(settings.allowAdditions) {\n module.remove.userAddition();\n }\n module.remove.searchTerm();\n if(!module.is.focusedOnSearch() && !(skipRefocus == true)) {\n module.focusSearch(true);\n }\n }\n if(!settings.useLabels) {\n module.remove.filteredItem();\n module.set.scrollPosition($choice);\n }\n module.determine.selectAction.call(this, text, value);\n }\n }\n },\n\n document: {\n // label selection should occur even when element has no focus\n keydown: function(event) {\n var\n pressedKey = event.which,\n isShortcutKey = module.is.inObject(pressedKey, keys)\n ;\n if(isShortcutKey) {\n var\n $label = $module.find(selector.label),\n $activeLabel = $label.filter('.' + className.active),\n activeValue = $activeLabel.data(metadata.value),\n labelIndex = $label.index($activeLabel),\n labelCount = $label.length,\n hasActiveLabel = ($activeLabel.length > 0),\n hasMultipleActive = ($activeLabel.length > 1),\n isFirstLabel = (labelIndex === 0),\n isLastLabel = (labelIndex + 1 == labelCount),\n isSearch = module.is.searchSelection(),\n isFocusedOnSearch = module.is.focusedOnSearch(),\n isFocused = module.is.focused(),\n caretAtStart = (isFocusedOnSearch && module.get.caretPosition() === 0),\n $nextLabel\n ;\n if(isSearch && !hasActiveLabel && !isFocusedOnSearch) {\n return;\n }\n\n if(pressedKey == keys.leftArrow) {\n // activate previous label\n if((isFocused || caretAtStart) && !hasActiveLabel) {\n module.verbose('Selecting previous label');\n $label.last().addClass(className.active);\n }\n else if(hasActiveLabel) {\n if(!event.shiftKey) {\n module.verbose('Selecting previous label');\n $label.removeClass(className.active);\n }\n else {\n module.verbose('Adding previous label to selection');\n }\n if(isFirstLabel && !hasMultipleActive) {\n $activeLabel.addClass(className.active);\n }\n else {\n $activeLabel.prev(selector.siblingLabel)\n .addClass(className.active)\n .end()\n ;\n }\n event.preventDefault();\n }\n }\n else if(pressedKey == keys.rightArrow) {\n // activate first label\n if(isFocused && !hasActiveLabel) {\n $label.first().addClass(className.active);\n }\n // activate next label\n if(hasActiveLabel) {\n if(!event.shiftKey) {\n module.verbose('Selecting next label');\n $label.removeClass(className.active);\n }\n else {\n module.verbose('Adding next label to selection');\n }\n if(isLastLabel) {\n if(isSearch) {\n if(!isFocusedOnSearch) {\n module.focusSearch();\n }\n else {\n $label.removeClass(className.active);\n }\n }\n else if(hasMultipleActive) {\n $activeLabel.next(selector.siblingLabel).addClass(className.active);\n }\n else {\n $activeLabel.addClass(className.active);\n }\n }\n else {\n $activeLabel.next(selector.siblingLabel).addClass(className.active);\n }\n event.preventDefault();\n }\n }\n else if(pressedKey == keys.deleteKey || pressedKey == keys.backspace) {\n if(hasActiveLabel) {\n module.verbose('Removing active labels');\n if(isLastLabel) {\n if(isSearch && !isFocusedOnSearch) {\n module.focusSearch();\n }\n }\n $activeLabel.last().next(selector.siblingLabel).addClass(className.active);\n module.remove.activeLabels($activeLabel);\n event.preventDefault();\n }\n else if(caretAtStart && !hasActiveLabel && pressedKey == keys.backspace) {\n module.verbose('Removing last label on input backspace');\n $activeLabel = $label.last().addClass(className.active);\n module.remove.activeLabels($activeLabel);\n }\n }\n else {\n $activeLabel.removeClass(className.active);\n }\n }\n }\n },\n\n keydown: function(event) {\n var\n pressedKey = event.which,\n isShortcutKey = module.is.inObject(pressedKey, keys)\n ;\n if(isShortcutKey) {\n var\n $currentlySelected = $item.not(selector.unselectable).filter('.' + className.selected).eq(0),\n $activeItem = $menu.children('.' + className.active).eq(0),\n $selectedItem = ($currentlySelected.length > 0)\n ? $currentlySelected\n : $activeItem,\n $visibleItems = ($selectedItem.length > 0)\n ? $selectedItem.siblings(':not(.' + className.filtered +')').addBack()\n : $menu.children(':not(.' + className.filtered +')'),\n $subMenu = $selectedItem.children(selector.menu),\n $parentMenu = $selectedItem.closest(selector.menu),\n inVisibleMenu = ($parentMenu.hasClass(className.visible) || $parentMenu.hasClass(className.animating) || $parentMenu.parent(selector.menu).length > 0),\n hasSubMenu = ($subMenu.length> 0),\n hasSelectedItem = ($selectedItem.length > 0),\n selectedIsSelectable = ($selectedItem.not(selector.unselectable).length > 0),\n delimiterPressed = (pressedKey == keys.delimiter && settings.allowAdditions && module.is.multiple()),\n isAdditionWithoutMenu = (settings.allowAdditions && settings.hideAdditions && (pressedKey == keys.enter || delimiterPressed) && selectedIsSelectable),\n $nextItem,\n isSubMenuItem,\n newIndex\n ;\n // allow selection with menu closed\n if(isAdditionWithoutMenu) {\n module.verbose('Selecting item from keyboard shortcut', $selectedItem);\n module.event.item.click.call($selectedItem, event);\n if(module.is.searchSelection()) {\n module.remove.searchTerm();\n }\n }\n\n // visible menu keyboard shortcuts\n if( module.is.visible() ) {\n\n // enter (select or open sub-menu)\n if(pressedKey == keys.enter || delimiterPressed) {\n if(pressedKey == keys.enter && hasSelectedItem && hasSubMenu && !settings.allowCategorySelection) {\n module.verbose('Pressed enter on unselectable category, opening sub menu');\n pressedKey = keys.rightArrow;\n }\n else if(selectedIsSelectable) {\n module.verbose('Selecting item from keyboard shortcut', $selectedItem);\n module.event.item.click.call($selectedItem, event);\n if(module.is.searchSelection()) {\n module.remove.searchTerm();\n }\n }\n event.preventDefault();\n }\n\n // sub-menu actions\n if(hasSelectedItem) {\n\n if(pressedKey == keys.leftArrow) {\n\n isSubMenuItem = ($parentMenu[0] !== $menu[0]);\n\n if(isSubMenuItem) {\n module.verbose('Left key pressed, closing sub-menu');\n module.animate.hide(false, $parentMenu);\n $selectedItem\n .removeClass(className.selected)\n ;\n $parentMenu\n .closest(selector.item)\n .addClass(className.selected)\n ;\n event.preventDefault();\n }\n }\n\n // right arrow (show sub-menu)\n if(pressedKey == keys.rightArrow) {\n if(hasSubMenu) {\n module.verbose('Right key pressed, opening sub-menu');\n module.animate.show(false, $subMenu);\n $selectedItem\n .removeClass(className.selected)\n ;\n $subMenu\n .find(selector.item).eq(0)\n .addClass(className.selected)\n ;\n event.preventDefault();\n }\n }\n }\n\n // up arrow (traverse menu up)\n if(pressedKey == keys.upArrow) {\n $nextItem = (hasSelectedItem && inVisibleMenu)\n ? $selectedItem.prevAll(selector.item + ':not(' + selector.unselectable + ')').eq(0)\n : $item.eq(0)\n ;\n if($visibleItems.index( $nextItem ) < 0) {\n module.verbose('Up key pressed but reached top of current menu');\n event.preventDefault();\n return;\n }\n else {\n module.verbose('Up key pressed, changing active item');\n $selectedItem\n .removeClass(className.selected)\n ;\n $nextItem\n .addClass(className.selected)\n ;\n module.set.scrollPosition($nextItem);\n if(settings.selectOnKeydown && module.is.single()) {\n module.set.selectedItem($nextItem);\n }\n }\n event.preventDefault();\n }\n\n // down arrow (traverse menu down)\n if(pressedKey == keys.downArrow) {\n $nextItem = (hasSelectedItem && inVisibleMenu)\n ? $nextItem = $selectedItem.nextAll(selector.item + ':not(' + selector.unselectable + ')').eq(0)\n : $item.eq(0)\n ;\n if($nextItem.length === 0) {\n module.verbose('Down key pressed but reached bottom of current menu');\n event.preventDefault();\n return;\n }\n else {\n module.verbose('Down key pressed, changing active item');\n $item\n .removeClass(className.selected)\n ;\n $nextItem\n .addClass(className.selected)\n ;\n module.set.scrollPosition($nextItem);\n if(settings.selectOnKeydown && module.is.single()) {\n module.set.selectedItem($nextItem);\n }\n }\n event.preventDefault();\n }\n\n // page down (show next page)\n if(pressedKey == keys.pageUp) {\n module.scrollPage('up');\n event.preventDefault();\n }\n if(pressedKey == keys.pageDown) {\n module.scrollPage('down');\n event.preventDefault();\n }\n\n // escape (close menu)\n if(pressedKey == keys.escape) {\n module.verbose('Escape key pressed, closing dropdown');\n module.hide();\n }\n\n }\n else {\n // delimiter key\n if(delimiterPressed) {\n event.preventDefault();\n }\n // down arrow (open menu)\n if(pressedKey == keys.downArrow && !module.is.visible()) {\n module.verbose('Down key pressed, showing dropdown');\n module.show();\n event.preventDefault();\n }\n }\n }\n else {\n if( !module.has.search() ) {\n module.set.selectedLetter( String.fromCharCode(pressedKey) );\n }\n }\n }\n },\n\n trigger: {\n change: function() {\n var\n events = document.createEvent('HTMLEvents'),\n inputElement = $input[0]\n ;\n if(inputElement) {\n module.verbose('Triggering native change event');\n events.initEvent('change', true, false);\n inputElement.dispatchEvent(events);\n }\n }\n },\n\n determine: {\n selectAction: function(text, value) {\n module.verbose('Determining action', settings.action);\n if( $.isFunction( module.action[settings.action] ) ) {\n module.verbose('Triggering preset action', settings.action, text, value);\n module.action[ settings.action ].call(element, text, value, this);\n }\n else if( $.isFunction(settings.action) ) {\n module.verbose('Triggering user action', settings.action, text, value);\n settings.action.call(element, text, value, this);\n }\n else {\n module.error(error.action, settings.action);\n }\n },\n eventInModule: function(event, callback) {\n var\n $target = $(event.target),\n inDocument = ($target.closest(document.documentElement).length > 0),\n inModule = ($target.closest($module).length > 0)\n ;\n callback = $.isFunction(callback)\n ? callback\n : function(){}\n ;\n if(inDocument && !inModule) {\n module.verbose('Triggering event', callback);\n callback();\n return true;\n }\n else {\n module.verbose('Event occurred in dropdown, canceling callback');\n return false;\n }\n },\n eventOnElement: function(event, callback) {\n var\n $target = $(event.target),\n $label = $target.closest(selector.siblingLabel),\n inVisibleDOM = document.body.contains(event.target),\n notOnLabel = ($module.find($label).length === 0),\n notInMenu = ($target.closest($menu).length === 0)\n ;\n callback = $.isFunction(callback)\n ? callback\n : function(){}\n ;\n if(inVisibleDOM && notOnLabel && notInMenu) {\n module.verbose('Triggering event', callback);\n callback();\n return true;\n }\n else {\n module.verbose('Event occurred in dropdown menu, canceling callback');\n return false;\n }\n }\n },\n\n action: {\n\n nothing: function() {},\n\n activate: function(text, value, element) {\n value = (value !== undefined)\n ? value\n : text\n ;\n if( module.can.activate( $(element) ) ) {\n module.set.selected(value, $(element));\n if(module.is.multiple() && !module.is.allFiltered()) {\n return;\n }\n else {\n module.hideAndClear();\n }\n }\n },\n\n select: function(text, value, element) {\n value = (value !== undefined)\n ? value\n : text\n ;\n if( module.can.activate( $(element) ) ) {\n module.set.value(value, $(element));\n if(module.is.multiple() && !module.is.allFiltered()) {\n return;\n }\n else {\n module.hideAndClear();\n }\n }\n },\n\n combo: function(text, value, element) {\n value = (value !== undefined)\n ? value\n : text\n ;\n module.set.selected(value, $(element));\n module.hideAndClear();\n },\n\n hide: function(text, value, element) {\n module.set.value(value, text);\n module.hideAndClear();\n }\n\n },\n\n get: {\n id: function() {\n return id;\n },\n defaultText: function() {\n return $module.data(metadata.defaultText);\n },\n defaultValue: function() {\n return $module.data(metadata.defaultValue);\n },\n placeholderText: function() {\n return $module.data(metadata.placeholderText) || '';\n },\n text: function() {\n return $text.text();\n },\n query: function() {\n return $.trim($search.val());\n },\n searchWidth: function(value) {\n value = (value !== undefined)\n ? value\n : $search.val()\n ;\n $sizer.text(value);\n // prevent rounding issues\n return Math.ceil( $sizer.width() + 1);\n },\n selectionCount: function() {\n var\n values = module.get.values(),\n count\n ;\n count = ( module.is.multiple() )\n ? $.isArray(values)\n ? values.length\n : 0\n : (module.get.value() !== '')\n ? 1\n : 0\n ;\n return count;\n },\n transition: function($subMenu) {\n return (settings.transition == 'auto')\n ? module.is.upward($subMenu)\n ? 'slide up'\n : 'slide down'\n : settings.transition\n ;\n },\n userValues: function() {\n var\n values = module.get.values()\n ;\n if(!values) {\n return false;\n }\n values = $.isArray(values)\n ? values\n : [values]\n ;\n return $.grep(values, function(value) {\n return (module.get.item(value) === false);\n });\n },\n uniqueArray: function(array) {\n return $.grep(array, function (value, index) {\n return $.inArray(value, array) === index;\n });\n },\n caretPosition: function() {\n var\n input = $search.get(0),\n range,\n rangeLength\n ;\n if('selectionStart' in input) {\n return input.selectionStart;\n }\n else if (document.selection) {\n input.focus();\n range = document.selection.createRange();\n rangeLength = range.text.length;\n range.moveStart('character', -input.value.length);\n return range.text.length - rangeLength;\n }\n },\n value: function() {\n var\n value = ($input.length > 0)\n ? $input.val()\n : $module.data(metadata.value),\n isEmptyMultiselect = ($.isArray(value) && value.length === 1 && value[0] === '')\n ;\n // prevents placeholder element from being selected when multiple\n return (value === undefined || isEmptyMultiselect)\n ? ''\n : value\n ;\n },\n values: function() {\n var\n value = module.get.value()\n ;\n if(value === '') {\n return '';\n }\n return ( !module.has.selectInput() && module.is.multiple() )\n ? (typeof value == 'string') // delimited string\n ? value.split(settings.delimiter)\n : ''\n : value\n ;\n },\n remoteValues: function() {\n var\n values = module.get.values(),\n remoteValues = false\n ;\n if(values) {\n if(typeof values == 'string') {\n values = [values];\n }\n $.each(values, function(index, value) {\n var\n name = module.read.remoteData(value)\n ;\n module.verbose('Restoring value from session data', name, value);\n if(name) {\n if(!remoteValues) {\n remoteValues = {};\n }\n remoteValues[value] = name;\n }\n });\n }\n return remoteValues;\n },\n choiceText: function($choice, preserveHTML) {\n preserveHTML = (preserveHTML !== undefined)\n ? preserveHTML\n : settings.preserveHTML\n ;\n if($choice) {\n if($choice.find(selector.menu).length > 0) {\n module.verbose('Retrieving text of element with sub-menu');\n $choice = $choice.clone();\n $choice.find(selector.menu).remove();\n $choice.find(selector.menuIcon).remove();\n }\n return ($choice.data(metadata.text) !== undefined)\n ? $choice.data(metadata.text)\n : (preserveHTML)\n ? $.trim($choice.html())\n : $.trim($choice.text())\n ;\n }\n },\n choiceValue: function($choice, choiceText) {\n choiceText = choiceText || module.get.choiceText($choice);\n if(!$choice) {\n return false;\n }\n return ($choice.data(metadata.value) !== undefined)\n ? String( $choice.data(metadata.value) )\n : (typeof choiceText === 'string')\n ? $.trim(choiceText.toLowerCase())\n : String(choiceText)\n ;\n },\n inputEvent: function() {\n var\n input = $search[0]\n ;\n if(input) {\n return (input.oninput !== undefined)\n ? 'input'\n : (input.onpropertychange !== undefined)\n ? 'propertychange'\n : 'keyup'\n ;\n }\n return false;\n },\n selectValues: function() {\n var\n select = {}\n ;\n select.values = [];\n $module\n .find('option')\n .each(function() {\n var\n $option = $(this),\n name = $option.html(),\n disabled = $option.attr('disabled'),\n value = ( $option.attr('value') !== undefined )\n ? $option.attr('value')\n : name\n ;\n if(settings.placeholder === 'auto' && value === '') {\n select.placeholder = name;\n }\n else {\n select.values.push({\n name : name,\n value : value,\n disabled : disabled\n });\n }\n })\n ;\n if(settings.placeholder && settings.placeholder !== 'auto') {\n module.debug('Setting placeholder value to', settings.placeholder);\n select.placeholder = settings.placeholder;\n }\n if(settings.sortSelect) {\n select.values.sort(function(a, b) {\n return (a.name > b.name)\n ? 1\n : -1\n ;\n });\n module.debug('Retrieved and sorted values from select', select);\n }\n else {\n module.debug('Retrieved values from select', select);\n }\n return select;\n },\n activeItem: function() {\n return $item.filter('.' + className.active);\n },\n selectedItem: function() {\n var\n $selectedItem = $item.not(selector.unselectable).filter('.' + className.selected)\n ;\n return ($selectedItem.length > 0)\n ? $selectedItem\n : $item.eq(0)\n ;\n },\n itemWithAdditions: function(value) {\n var\n $items = module.get.item(value),\n $userItems = module.create.userChoice(value),\n hasUserItems = ($userItems && $userItems.length > 0)\n ;\n if(hasUserItems) {\n $items = ($items.length > 0)\n ? $items.add($userItems)\n : $userItems\n ;\n }\n return $items;\n },\n item: function(value, strict) {\n var\n $selectedItem = false,\n shouldSearch,\n isMultiple\n ;\n value = (value !== undefined)\n ? value\n : ( module.get.values() !== undefined)\n ? module.get.values()\n : module.get.text()\n ;\n shouldSearch = (isMultiple)\n ? (value.length > 0)\n : (value !== undefined && value !== null)\n ;\n isMultiple = (module.is.multiple() && $.isArray(value));\n strict = (value === '' || value === 0)\n ? true\n : strict || false\n ;\n if(shouldSearch) {\n $item\n .each(function() {\n var\n $choice = $(this),\n optionText = module.get.choiceText($choice),\n optionValue = module.get.choiceValue($choice, optionText)\n ;\n // safe early exit\n if(optionValue === null || optionValue === undefined) {\n return;\n }\n if(isMultiple) {\n if($.inArray( String(optionValue), value) !== -1 || $.inArray(optionText, value) !== -1) {\n $selectedItem = ($selectedItem)\n ? $selectedItem.add($choice)\n : $choice\n ;\n }\n }\n else if(strict) {\n module.verbose('Ambiguous dropdown value using strict type check', $choice, value);\n if( optionValue === value || optionText === value) {\n $selectedItem = $choice;\n return true;\n }\n }\n else {\n if( String(optionValue) == String(value) || optionText == value) {\n module.verbose('Found select item by value', optionValue, value);\n $selectedItem = $choice;\n return true;\n }\n }\n })\n ;\n }\n return $selectedItem;\n }\n },\n\n check: {\n maxSelections: function(selectionCount) {\n if(settings.maxSelections) {\n selectionCount = (selectionCount !== undefined)\n ? selectionCount\n : module.get.selectionCount()\n ;\n if(selectionCount >= settings.maxSelections) {\n module.debug('Maximum selection count reached');\n if(settings.useLabels) {\n $item.addClass(className.filtered);\n module.add.message(message.maxSelections);\n }\n return true;\n }\n else {\n module.verbose('No longer at maximum selection count');\n module.remove.message();\n module.remove.filteredItem();\n if(module.is.searchSelection()) {\n module.filterItems();\n }\n return false;\n }\n }\n return true;\n }\n },\n\n restore: {\n defaults: function() {\n module.clear();\n module.restore.defaultText();\n module.restore.defaultValue();\n },\n defaultText: function() {\n var\n defaultText = module.get.defaultText(),\n placeholderText = module.get.placeholderText\n ;\n if(defaultText === placeholderText) {\n module.debug('Restoring default placeholder text', defaultText);\n module.set.placeholderText(defaultText);\n }\n else {\n module.debug('Restoring default text', defaultText);\n module.set.text(defaultText);\n }\n },\n placeholderText: function() {\n module.set.placeholderText();\n },\n defaultValue: function() {\n var\n defaultValue = module.get.defaultValue()\n ;\n if(defaultValue !== undefined) {\n module.debug('Restoring default value', defaultValue);\n if(defaultValue !== '') {\n module.set.value(defaultValue);\n module.set.selected();\n }\n else {\n module.remove.activeItem();\n module.remove.selectedItem();\n }\n }\n },\n labels: function() {\n if(settings.allowAdditions) {\n if(!settings.useLabels) {\n module.error(error.labels);\n settings.useLabels = true;\n }\n module.debug('Restoring selected values');\n module.create.userLabels();\n }\n module.check.maxSelections();\n },\n selected: function() {\n module.restore.values();\n if(module.is.multiple()) {\n module.debug('Restoring previously selected values and labels');\n module.restore.labels();\n }\n else {\n module.debug('Restoring previously selected values');\n }\n },\n values: function() {\n // prevents callbacks from occurring on initial load\n module.set.initialLoad();\n if(settings.apiSettings && settings.saveRemoteData && module.get.remoteValues()) {\n module.restore.remoteValues();\n }\n else {\n module.set.selected();\n }\n module.remove.initialLoad();\n },\n remoteValues: function() {\n var\n values = module.get.remoteValues()\n ;\n module.debug('Recreating selected from session data', values);\n if(values) {\n if( module.is.single() ) {\n $.each(values, function(value, name) {\n module.set.text(name);\n });\n }\n else {\n $.each(values, function(value, name) {\n module.add.label(value, name);\n });\n }\n }\n }\n },\n\n read: {\n remoteData: function(value) {\n var\n name\n ;\n if(window.Storage === undefined) {\n module.error(error.noStorage);\n return;\n }\n name = sessionStorage.getItem(value);\n return (name !== undefined)\n ? name\n : false\n ;\n }\n },\n\n save: {\n defaults: function() {\n module.save.defaultText();\n module.save.placeholderText();\n module.save.defaultValue();\n },\n defaultValue: function() {\n var\n value = module.get.value()\n ;\n module.verbose('Saving default value as', value);\n $module.data(metadata.defaultValue, value);\n },\n defaultText: function() {\n var\n text = module.get.text()\n ;\n module.verbose('Saving default text as', text);\n $module.data(metadata.defaultText, text);\n },\n placeholderText: function() {\n var\n text\n ;\n if(settings.placeholder !== false && $text.hasClass(className.placeholder)) {\n text = module.get.text();\n module.verbose('Saving placeholder text as', text);\n $module.data(metadata.placeholderText, text);\n }\n },\n remoteData: function(name, value) {\n if(window.Storage === undefined) {\n module.error(error.noStorage);\n return;\n }\n module.verbose('Saving remote data to session storage', value, name);\n sessionStorage.setItem(value, name);\n }\n },\n\n clear: function() {\n if(module.is.multiple() && settings.useLabels) {\n module.remove.labels();\n }\n else {\n module.remove.activeItem();\n module.remove.selectedItem();\n }\n module.set.placeholderText();\n module.clearValue();\n },\n\n clearValue: function() {\n module.set.value('');\n },\n\n scrollPage: function(direction, $selectedItem) {\n var\n $currentItem = $selectedItem || module.get.selectedItem(),\n $menu = $currentItem.closest(selector.menu),\n menuHeight = $menu.outerHeight(),\n currentScroll = $menu.scrollTop(),\n itemHeight = $item.eq(0).outerHeight(),\n itemsPerPage = Math.floor(menuHeight / itemHeight),\n maxScroll = $menu.prop('scrollHeight'),\n newScroll = (direction == 'up')\n ? currentScroll - (itemHeight * itemsPerPage)\n : currentScroll + (itemHeight * itemsPerPage),\n $selectableItem = $item.not(selector.unselectable),\n isWithinRange,\n $nextSelectedItem,\n elementIndex\n ;\n elementIndex = (direction == 'up')\n ? $selectableItem.index($currentItem) - itemsPerPage\n : $selectableItem.index($currentItem) + itemsPerPage\n ;\n isWithinRange = (direction == 'up')\n ? (elementIndex >= 0)\n : (elementIndex < $selectableItem.length)\n ;\n $nextSelectedItem = (isWithinRange)\n ? $selectableItem.eq(elementIndex)\n : (direction == 'up')\n ? $selectableItem.first()\n : $selectableItem.last()\n ;\n if($nextSelectedItem.length > 0) {\n module.debug('Scrolling page', direction, $nextSelectedItem);\n $currentItem\n .removeClass(className.selected)\n ;\n $nextSelectedItem\n .addClass(className.selected)\n ;\n if(settings.selectOnKeydown && module.is.single()) {\n module.set.selectedItem($nextSelectedItem);\n }\n $menu\n .scrollTop(newScroll)\n ;\n }\n },\n\n set: {\n filtered: function() {\n var\n isMultiple = module.is.multiple(),\n isSearch = module.is.searchSelection(),\n isSearchMultiple = (isMultiple && isSearch),\n searchValue = (isSearch)\n ? module.get.query()\n : '',\n hasSearchValue = (typeof searchValue === 'string' && searchValue.length > 0),\n searchWidth = module.get.searchWidth(),\n valueIsSet = searchValue !== ''\n ;\n if(isMultiple && hasSearchValue) {\n module.verbose('Adjusting input width', searchWidth, settings.glyphWidth);\n $search.css('width', searchWidth);\n }\n if(hasSearchValue || (isSearchMultiple && valueIsSet)) {\n module.verbose('Hiding placeholder text');\n $text.addClass(className.filtered);\n }\n else if(!isMultiple || (isSearchMultiple && !valueIsSet)) {\n module.verbose('Showing placeholder text');\n $text.removeClass(className.filtered);\n }\n },\n empty: function() {\n $module.addClass(className.empty);\n },\n loading: function() {\n $module.addClass(className.loading);\n },\n placeholderText: function(text) {\n text = text || module.get.placeholderText();\n module.debug('Setting placeholder text', text);\n module.set.text(text);\n $text.addClass(className.placeholder);\n },\n tabbable: function() {\n if( module.is.searchSelection() ) {\n module.debug('Added tabindex to searchable dropdown');\n $search\n .val('')\n .attr('tabindex', 0)\n ;\n $menu\n .attr('tabindex', -1)\n ;\n }\n else {\n module.debug('Added tabindex to dropdown');\n if( $module.attr('tabindex') === undefined) {\n $module\n .attr('tabindex', 0)\n ;\n $menu\n .attr('tabindex', -1)\n ;\n }\n }\n },\n initialLoad: function() {\n module.verbose('Setting initial load');\n initialLoad = true;\n },\n activeItem: function($item) {\n if( settings.allowAdditions && $item.filter(selector.addition).length > 0 ) {\n $item.addClass(className.filtered);\n }\n else {\n $item.addClass(className.active);\n }\n },\n partialSearch: function(text) {\n var\n length = module.get.query().length\n ;\n $search.val( text.substr(0 , length));\n },\n scrollPosition: function($item, forceScroll) {\n var\n edgeTolerance = 5,\n $menu,\n hasActive,\n offset,\n itemHeight,\n itemOffset,\n menuOffset,\n menuScroll,\n menuHeight,\n abovePage,\n belowPage\n ;\n\n $item = $item || module.get.selectedItem();\n $menu = $item.closest(selector.menu);\n hasActive = ($item && $item.length > 0);\n forceScroll = (forceScroll !== undefined)\n ? forceScroll\n : false\n ;\n if($item && $menu.length > 0 && hasActive) {\n itemOffset = $item.position().top;\n\n $menu.addClass(className.loading);\n menuScroll = $menu.scrollTop();\n menuOffset = $menu.offset().top;\n itemOffset = $item.offset().top;\n offset = menuScroll - menuOffset + itemOffset;\n if(!forceScroll) {\n menuHeight = $menu.height();\n belowPage = menuScroll + menuHeight < (offset + edgeTolerance);\n abovePage = ((offset - edgeTolerance) < menuScroll);\n }\n module.debug('Scrolling to active item', offset);\n if(forceScroll || abovePage || belowPage) {\n $menu.scrollTop(offset);\n }\n $menu.removeClass(className.loading);\n }\n },\n text: function(text) {\n if(settings.action !== 'select') {\n if(settings.action == 'combo') {\n module.debug('Changing combo button text', text, $combo);\n if(settings.preserveHTML) {\n $combo.html(text);\n }\n else {\n $combo.text(text);\n }\n }\n else {\n if(text !== module.get.placeholderText()) {\n $text.removeClass(className.placeholder);\n }\n module.debug('Changing text', text, $text);\n $text\n .removeClass(className.filtered)\n ;\n if(settings.preserveHTML) {\n $text.html(text);\n }\n else {\n $text.text(text);\n }\n }\n }\n },\n selectedItem: function($item) {\n var\n value = module.get.choiceValue($item),\n searchText = module.get.choiceText($item, false),\n text = module.get.choiceText($item, true)\n ;\n module.debug('Setting user selection to item', $item);\n module.remove.activeItem();\n module.set.partialSearch(searchText);\n module.set.activeItem($item);\n module.set.selected(value, $item);\n module.set.text(text);\n },\n selectedLetter: function(letter) {\n var\n $selectedItem = $item.filter('.' + className.selected),\n alreadySelectedLetter = $selectedItem.length > 0 && module.has.firstLetter($selectedItem, letter),\n $nextValue = false,\n $nextItem\n ;\n // check next of same letter\n if(alreadySelectedLetter) {\n $nextItem = $selectedItem.nextAll($item).eq(0);\n if( module.has.firstLetter($nextItem, letter) ) {\n $nextValue = $nextItem;\n }\n }\n // check all values\n if(!$nextValue) {\n $item\n .each(function(){\n if(module.has.firstLetter($(this), letter)) {\n $nextValue = $(this);\n return false;\n }\n })\n ;\n }\n // set next value\n if($nextValue) {\n module.verbose('Scrolling to next value with letter', letter);\n module.set.scrollPosition($nextValue);\n $selectedItem.removeClass(className.selected);\n $nextValue.addClass(className.selected);\n if(settings.selectOnKeydown && module.is.single()) {\n module.set.selectedItem($nextValue);\n }\n }\n },\n direction: function($menu) {\n if(settings.direction == 'auto') {\n // reset position\n module.remove.upward();\n\n if(module.can.openDownward($menu)) {\n module.remove.upward($menu);\n }\n else {\n module.set.upward($menu);\n }\n if(!module.is.leftward($menu) && !module.can.openRightward($menu)) {\n module.set.leftward($menu);\n }\n }\n else if(settings.direction == 'upward') {\n module.set.upward($menu);\n }\n },\n upward: function($currentMenu) {\n var $element = $currentMenu || $module;\n $element.addClass(className.upward);\n },\n leftward: function($currentMenu) {\n var $element = $currentMenu || $menu;\n $element.addClass(className.leftward);\n },\n value: function(value, text, $selected) {\n var\n escapedValue = module.escape.value(value),\n hasInput = ($input.length > 0),\n isAddition = !module.has.value(value),\n currentValue = module.get.values(),\n stringValue = (value !== undefined)\n ? String(value)\n : value,\n newValue\n ;\n if(hasInput) {\n if(!settings.allowReselection && stringValue == currentValue) {\n module.verbose('Skipping value update already same value', value, currentValue);\n if(!module.is.initialLoad()) {\n return;\n }\n }\n\n if( module.is.single() && module.has.selectInput() && module.can.extendSelect() ) {\n module.debug('Adding user option', value);\n module.add.optionValue(value);\n }\n module.debug('Updating input value', escapedValue, currentValue);\n internalChange = true;\n $input\n .val(escapedValue)\n ;\n if(settings.fireOnInit === false && module.is.initialLoad()) {\n module.debug('Input native change event ignored on initial load');\n }\n else {\n module.trigger.change();\n }\n internalChange = false;\n }\n else {\n module.verbose('Storing value in metadata', escapedValue, $input);\n if(escapedValue !== currentValue) {\n $module.data(metadata.value, stringValue);\n }\n }\n if(settings.fireOnInit === false && module.is.initialLoad()) {\n module.verbose('No callback on initial load', settings.onChange);\n }\n else {\n settings.onChange.call(element, value, text, $selected);\n }\n },\n active: function() {\n $module\n .addClass(className.active)\n ;\n },\n multiple: function() {\n $module.addClass(className.multiple);\n },\n visible: function() {\n $module.addClass(className.visible);\n },\n exactly: function(value, $selectedItem) {\n module.debug('Setting selected to exact values');\n module.clear();\n module.set.selected(value, $selectedItem);\n },\n selected: function(value, $selectedItem) {\n var\n isMultiple = module.is.multiple(),\n $userSelectedItem\n ;\n $selectedItem = (settings.allowAdditions)\n ? $selectedItem || module.get.itemWithAdditions(value)\n : $selectedItem || module.get.item(value)\n ;\n if(!$selectedItem) {\n return;\n }\n module.debug('Setting selected menu item to', $selectedItem);\n if(module.is.multiple()) {\n module.remove.searchWidth();\n }\n if(module.is.single()) {\n module.remove.activeItem();\n module.remove.selectedItem();\n }\n else if(settings.useLabels) {\n module.remove.selectedItem();\n }\n // select each item\n $selectedItem\n .each(function() {\n var\n $selected = $(this),\n selectedText = module.get.choiceText($selected),\n selectedValue = module.get.choiceValue($selected, selectedText),\n\n isFiltered = $selected.hasClass(className.filtered),\n isActive = $selected.hasClass(className.active),\n isUserValue = $selected.hasClass(className.addition),\n shouldAnimate = (isMultiple && $selectedItem.length == 1)\n ;\n if(isMultiple) {\n if(!isActive || isUserValue) {\n if(settings.apiSettings && settings.saveRemoteData) {\n module.save.remoteData(selectedText, selectedValue);\n }\n if(settings.useLabels) {\n module.add.value(selectedValue, selectedText, $selected);\n module.add.label(selectedValue, selectedText, shouldAnimate);\n module.set.activeItem($selected);\n module.filterActive();\n module.select.nextAvailable($selectedItem);\n }\n else {\n module.add.value(selectedValue, selectedText, $selected);\n module.set.text(module.add.variables(message.count));\n module.set.activeItem($selected);\n }\n }\n else if(!isFiltered) {\n module.debug('Selected active value, removing label');\n module.remove.selected(selectedValue);\n }\n }\n else {\n if(settings.apiSettings && settings.saveRemoteData) {\n module.save.remoteData(selectedText, selectedValue);\n }\n module.set.text(selectedText);\n module.set.value(selectedValue, selectedText, $selected);\n $selected\n .addClass(className.active)\n .addClass(className.selected)\n ;\n }\n })\n ;\n }\n },\n\n add: {\n label: function(value, text, shouldAnimate) {\n var\n $next = module.is.searchSelection()\n ? $search\n : $text,\n escapedValue = module.escape.value(value),\n $label\n ;\n $label = $('<a />')\n .addClass(className.label)\n .attr('data-' + metadata.value, escapedValue)\n .html(templates.label(escapedValue, text))\n ;\n $label = settings.onLabelCreate.call($label, escapedValue, text);\n\n if(module.has.label(value)) {\n module.debug('Label already exists, skipping', escapedValue);\n return;\n }\n if(settings.label.variation) {\n $label.addClass(settings.label.variation);\n }\n if(shouldAnimate === true) {\n module.debug('Animating in label', $label);\n $label\n .addClass(className.hidden)\n .insertBefore($next)\n .transition(settings.label.transition, settings.label.duration)\n ;\n }\n else {\n module.debug('Adding selection label', $label);\n $label\n .insertBefore($next)\n ;\n }\n },\n message: function(message) {\n var\n $message = $menu.children(selector.message),\n html = settings.templates.message(module.add.variables(message))\n ;\n if($message.length > 0) {\n $message\n .html(html)\n ;\n }\n else {\n $message = $('<div/>')\n .html(html)\n .addClass(className.message)\n .appendTo($menu)\n ;\n }\n },\n optionValue: function(value) {\n var\n escapedValue = module.escape.value(value),\n $option = $input.find('option[value=\"' + module.escape.string(escapedValue) + '\"]'),\n hasOption = ($option.length > 0)\n ;\n if(hasOption) {\n return;\n }\n // temporarily disconnect observer\n module.disconnect.selectObserver();\n if( module.is.single() ) {\n module.verbose('Removing previous user addition');\n $input.find('option.' + className.addition).remove();\n }\n $('<option/>')\n .prop('value', escapedValue)\n .addClass(className.addition)\n .html(value)\n .appendTo($input)\n ;\n module.verbose('Adding user addition as an <option>', value);\n module.observe.select();\n },\n userSuggestion: function(value) {\n var\n $addition = $menu.children(selector.addition),\n $existingItem = module.get.item(value),\n alreadyHasValue = $existingItem && $existingItem.not(selector.addition).length,\n hasUserSuggestion = $addition.length > 0,\n html\n ;\n if(settings.useLabels && module.has.maxSelections()) {\n return;\n }\n if(value === '' || alreadyHasValue) {\n $addition.remove();\n return;\n }\n if(hasUserSuggestion) {\n $addition\n .data(metadata.value, value)\n .data(metadata.text, value)\n .attr('data-' + metadata.value, value)\n .attr('data-' + metadata.text, value)\n .removeClass(className.filtered)\n ;\n if(!settings.hideAdditions) {\n html = settings.templates.addition( module.add.variables(message.addResult, value) );\n $addition\n .html(html)\n ;\n }\n module.verbose('Replacing user suggestion with new value', $addition);\n }\n else {\n $addition = module.create.userChoice(value);\n $addition\n .prependTo($menu)\n ;\n module.verbose('Adding item choice to menu corresponding with user choice addition', $addition);\n }\n if(!settings.hideAdditions || module.is.allFiltered()) {\n $addition\n .addClass(className.selected)\n .siblings()\n .removeClass(className.selected)\n ;\n }\n module.refreshItems();\n },\n variables: function(message, term) {\n var\n hasCount = (message.search('{count}') !== -1),\n hasMaxCount = (message.search('{maxCount}') !== -1),\n hasTerm = (message.search('{term}') !== -1),\n values,\n count,\n query\n ;\n module.verbose('Adding templated variables to message', message);\n if(hasCount) {\n count = module.get.selectionCount();\n message = message.replace('{count}', count);\n }\n if(hasMaxCount) {\n count = module.get.selectionCount();\n message = message.replace('{maxCount}', settings.maxSelections);\n }\n if(hasTerm) {\n query = term || module.get.query();\n message = message.replace('{term}', query);\n }\n return message;\n },\n value: function(addedValue, addedText, $selectedItem) {\n var\n currentValue = module.get.values(),\n newValue\n ;\n if(addedValue === '') {\n module.debug('Cannot select blank values from multiselect');\n return;\n }\n // extend current array\n if($.isArray(currentValue)) {\n newValue = currentValue.concat([addedValue]);\n newValue = module.get.uniqueArray(newValue);\n }\n else {\n newValue = [addedValue];\n }\n // add values\n if( module.has.selectInput() ) {\n if(module.can.extendSelect()) {\n module.debug('Adding value to select', addedValue, newValue, $input);\n module.add.optionValue(addedValue);\n }\n }\n else {\n newValue = newValue.join(settings.delimiter);\n module.debug('Setting hidden input to delimited value', newValue, $input);\n }\n\n if(settings.fireOnInit === false && module.is.initialLoad()) {\n module.verbose('Skipping onadd callback on initial load', settings.onAdd);\n }\n else {\n settings.onAdd.call(element, addedValue, addedText, $selectedItem);\n }\n module.set.value(newValue, addedValue, addedText, $selectedItem);\n module.check.maxSelections();\n }\n },\n\n remove: {\n active: function() {\n $module.removeClass(className.active);\n },\n activeLabel: function() {\n $module.find(selector.label).removeClass(className.active);\n },\n empty: function() {\n $module.removeClass(className.empty);\n },\n loading: function() {\n $module.removeClass(className.loading);\n },\n initialLoad: function() {\n initialLoad = false;\n },\n upward: function($currentMenu) {\n var $element = $currentMenu || $module;\n $element.removeClass(className.upward);\n },\n leftward: function($currentMenu) {\n var $element = $currentMenu || $menu;\n $element.removeClass(className.leftward);\n },\n visible: function() {\n $module.removeClass(className.visible);\n },\n activeItem: function() {\n $item.removeClass(className.active);\n },\n filteredItem: function() {\n if(settings.useLabels && module.has.maxSelections() ) {\n return;\n }\n if(settings.useLabels && module.is.multiple()) {\n $item.not('.' + className.active).removeClass(className.filtered);\n }\n else {\n $item.removeClass(className.filtered);\n }\n module.remove.empty();\n },\n optionValue: function(value) {\n var\n escapedValue = module.escape.value(value),\n $option = $input.find('option[value=\"' + module.escape.string(escapedValue) + '\"]'),\n hasOption = ($option.length > 0)\n ;\n if(!hasOption || !$option.hasClass(className.addition)) {\n return;\n }\n // temporarily disconnect observer\n if(selectObserver) {\n selectObserver.disconnect();\n module.verbose('Temporarily disconnecting mutation observer');\n }\n $option.remove();\n module.verbose('Removing user addition as an <option>', escapedValue);\n if(selectObserver) {\n selectObserver.observe($input[0], {\n childList : true,\n subtree : true\n });\n }\n },\n message: function() {\n $menu.children(selector.message).remove();\n },\n searchWidth: function() {\n $search.css('width', '');\n },\n searchTerm: function() {\n module.verbose('Cleared search term');\n $search.val('');\n module.set.filtered();\n },\n userAddition: function() {\n $item.filter(selector.addition).remove();\n },\n selected: function(value, $selectedItem) {\n $selectedItem = (settings.allowAdditions)\n ? $selectedItem || module.get.itemWithAdditions(value)\n : $selectedItem || module.get.item(value)\n ;\n\n if(!$selectedItem) {\n return false;\n }\n\n $selectedItem\n .each(function() {\n var\n $selected = $(this),\n selectedText = module.get.choiceText($selected),\n selectedValue = module.get.choiceValue($selected, selectedText)\n ;\n if(module.is.multiple()) {\n if(settings.useLabels) {\n module.remove.value(selectedValue, selectedText, $selected);\n module.remove.label(selectedValue);\n }\n else {\n module.remove.value(selectedValue, selectedText, $selected);\n if(module.get.selectionCount() === 0) {\n module.set.placeholderText();\n }\n else {\n module.set.text(module.add.variables(message.count));\n }\n }\n }\n else {\n module.remove.value(selectedValue, selectedText, $selected);\n }\n $selected\n .removeClass(className.filtered)\n .removeClass(className.active)\n ;\n if(settings.useLabels) {\n $selected.removeClass(className.selected);\n }\n })\n ;\n },\n selectedItem: function() {\n $item.removeClass(className.selected);\n },\n value: function(removedValue, removedText, $removedItem) {\n var\n values = module.get.values(),\n newValue\n ;\n if( module.has.selectInput() ) {\n module.verbose('Input is <select> removing selected option', removedValue);\n newValue = module.remove.arrayValue(removedValue, values);\n module.remove.optionValue(removedValue);\n }\n else {\n module.verbose('Removing from delimited values', removedValue);\n newValue = module.remove.arrayValue(removedValue, values);\n newValue = newValue.join(settings.delimiter);\n }\n if(settings.fireOnInit === false && module.is.initialLoad()) {\n module.verbose('No callback on initial load', settings.onRemove);\n }\n else {\n settings.onRemove.call(element, removedValue, removedText, $removedItem);\n }\n module.set.value(newValue, removedText, $removedItem);\n module.check.maxSelections();\n },\n arrayValue: function(removedValue, values) {\n if( !$.isArray(values) ) {\n values = [values];\n }\n values = $.grep(values, function(value){\n return (removedValue != value);\n });\n module.verbose('Removed value from delimited string', removedValue, values);\n return values;\n },\n label: function(value, shouldAnimate) {\n var\n $labels = $module.find(selector.label),\n $removedLabel = $labels.filter('[data-' + metadata.value + '=\"' + module.escape.string(value) +'\"]')\n ;\n module.verbose('Removing label', $removedLabel);\n $removedLabel.remove();\n },\n activeLabels: function($activeLabels) {\n $activeLabels = $activeLabels || $module.find(selector.label).filter('.' + className.active);\n module.verbose('Removing active label selections', $activeLabels);\n module.remove.labels($activeLabels);\n },\n labels: function($labels) {\n $labels = $labels || $module.find(selector.label);\n module.verbose('Removing labels', $labels);\n $labels\n .each(function(){\n var\n $label = $(this),\n value = $label.data(metadata.value),\n stringValue = (value !== undefined)\n ? String(value)\n : value,\n isUserValue = module.is.userValue(stringValue)\n ;\n if(settings.onLabelRemove.call($label, value) === false) {\n module.debug('Label remove callback cancelled removal');\n return;\n }\n module.remove.message();\n if(isUserValue) {\n module.remove.value(stringValue);\n module.remove.label(stringValue);\n }\n else {\n // selected will also remove label\n module.remove.selected(stringValue);\n }\n })\n ;\n },\n tabbable: function() {\n if( module.is.searchSelection() ) {\n module.debug('Searchable dropdown initialized');\n $search\n .removeAttr('tabindex')\n ;\n $menu\n .removeAttr('tabindex')\n ;\n }\n else {\n module.debug('Simple selection dropdown initialized');\n $module\n .removeAttr('tabindex')\n ;\n $menu\n .removeAttr('tabindex')\n ;\n }\n }\n },\n\n has: {\n menuSearch: function() {\n return (module.has.search() && $search.closest($menu).length > 0);\n },\n search: function() {\n return ($search.length > 0);\n },\n sizer: function() {\n return ($sizer.length > 0);\n },\n selectInput: function() {\n return ( $input.is('select') );\n },\n minCharacters: function(searchTerm) {\n if(settings.minCharacters) {\n searchTerm = (searchTerm !== undefined)\n ? String(searchTerm)\n : String(module.get.query())\n ;\n return (searchTerm.length >= settings.minCharacters);\n }\n return true;\n },\n firstLetter: function($item, letter) {\n var\n text,\n firstLetter\n ;\n if(!$item || $item.length === 0 || typeof letter !== 'string') {\n return false;\n }\n text = module.get.choiceText($item, false);\n letter = letter.toLowerCase();\n firstLetter = String(text).charAt(0).toLowerCase();\n return (letter == firstLetter);\n },\n input: function() {\n return ($input.length > 0);\n },\n items: function() {\n return ($item.length > 0);\n },\n menu: function() {\n return ($menu.length > 0);\n },\n message: function() {\n return ($menu.children(selector.message).length !== 0);\n },\n label: function(value) {\n var\n escapedValue = module.escape.value(value),\n $labels = $module.find(selector.label)\n ;\n return ($labels.filter('[data-' + metadata.value + '=\"' + module.escape.string(escapedValue) +'\"]').length > 0);\n },\n maxSelections: function() {\n return (settings.maxSelections && module.get.selectionCount() >= settings.maxSelections);\n },\n allResultsFiltered: function() {\n var\n $normalResults = $item.not(selector.addition)\n ;\n return ($normalResults.filter(selector.unselectable).length === $normalResults.length);\n },\n userSuggestion: function() {\n return ($menu.children(selector.addition).length > 0);\n },\n query: function() {\n return (module.get.query() !== '');\n },\n value: function(value) {\n var\n values = module.get.values(),\n hasValue = $.isArray(values)\n ? values && ($.inArray(value, values) !== -1)\n : (values == value)\n ;\n return (hasValue)\n ? true\n : false\n ;\n }\n },\n\n is: {\n active: function() {\n return $module.hasClass(className.active);\n },\n bubbledLabelClick: function(event) {\n return $(event.target).is('select, input') && $module.closest('label').length > 0;\n },\n bubbledIconClick: function(event) {\n return $(event.target).closest($icon).length > 0;\n },\n alreadySetup: function() {\n return ($module.is('select') && $module.parent(selector.dropdown).length > 0 && $module.prev().length === 0);\n },\n animating: function($subMenu) {\n return ($subMenu)\n ? $subMenu.transition && $subMenu.transition('is animating')\n : $menu.transition && $menu.transition('is animating')\n ;\n },\n leftward: function($subMenu) {\n var $selectedMenu = $subMenu || $menu;\n return $selectedMenu.hasClass(className.leftward);\n },\n disabled: function() {\n return $module.hasClass(className.disabled);\n },\n focused: function() {\n return (document.activeElement === $module[0]);\n },\n focusedOnSearch: function() {\n return (document.activeElement === $search[0]);\n },\n allFiltered: function() {\n return( (module.is.multiple() || module.has.search()) && !(settings.hideAdditions == false && module.has.userSuggestion()) && !module.has.message() && module.has.allResultsFiltered() );\n },\n hidden: function($subMenu) {\n return !module.is.visible($subMenu);\n },\n initialLoad: function() {\n return initialLoad;\n },\n inObject: function(needle, object) {\n var\n found = false\n ;\n $.each(object, function(index, property) {\n if(property == needle) {\n found = true;\n return true;\n }\n });\n return found;\n },\n multiple: function() {\n return $module.hasClass(className.multiple);\n },\n remote: function() {\n return settings.apiSettings && module.can.useAPI();\n },\n single: function() {\n return !module.is.multiple();\n },\n selectMutation: function(mutations) {\n var\n selectChanged = false\n ;\n $.each(mutations, function(index, mutation) {\n if(mutation.target && $(mutation.target).is('select')) {\n selectChanged = true;\n return true;\n }\n });\n return selectChanged;\n },\n search: function() {\n return $module.hasClass(className.search);\n },\n searchSelection: function() {\n return ( module.has.search() && $search.parent(selector.dropdown).length === 1 );\n },\n selection: function() {\n return $module.hasClass(className.selection);\n },\n userValue: function(value) {\n return ($.inArray(value, module.get.userValues()) !== -1);\n },\n upward: function($menu) {\n var $element = $menu || $module;\n return $element.hasClass(className.upward);\n },\n visible: function($subMenu) {\n return ($subMenu)\n ? $subMenu.hasClass(className.visible)\n : $menu.hasClass(className.visible)\n ;\n },\n verticallyScrollableContext: function() {\n var\n overflowY = ($context.get(0) !== window)\n ? $context.css('overflow-y')\n : false\n ;\n return (overflowY == 'auto' || overflowY == 'scroll');\n },\n horizontallyScrollableContext: function() {\n var\n overflowX = ($context.get(0) !== window)\n ? $context.css('overflow-X')\n : false\n ;\n return (overflowX == 'auto' || overflowX == 'scroll');\n }\n },\n\n can: {\n activate: function($item) {\n if(settings.useLabels) {\n return true;\n }\n if(!module.has.maxSelections()) {\n return true;\n }\n if(module.has.maxSelections() && $item.hasClass(className.active)) {\n return true;\n }\n return false;\n },\n openDownward: function($subMenu) {\n var\n $currentMenu = $subMenu || $menu,\n canOpenDownward = true,\n onScreen = {},\n calculations\n ;\n $currentMenu\n .addClass(className.loading)\n ;\n calculations = {\n context: {\n scrollTop : $context.scrollTop(),\n height : $context.outerHeight()\n },\n menu : {\n offset: $currentMenu.offset(),\n height: $currentMenu.outerHeight()\n }\n };\n if(module.is.verticallyScrollableContext()) {\n calculations.menu.offset.top += calculations.context.scrollTop;\n }\n onScreen = {\n above : (calculations.context.scrollTop) <= calculations.menu.offset.top - calculations.menu.height,\n below : (calculations.context.scrollTop + calculations.context.height) >= calculations.menu.offset.top + calculations.menu.height\n };\n if(onScreen.below) {\n module.verbose('Dropdown can fit in context downward', onScreen);\n canOpenDownward = true;\n }\n else if(!onScreen.below && !onScreen.above) {\n module.verbose('Dropdown cannot fit in either direction, favoring downward', onScreen);\n canOpenDownward = true;\n }\n else {\n module.verbose('Dropdown cannot fit below, opening upward', onScreen);\n canOpenDownward = false;\n }\n $currentMenu.removeClass(className.loading);\n return canOpenDownward;\n },\n openRightward: function($subMenu) {\n var\n $currentMenu = $subMenu || $menu,\n canOpenRightward = true,\n isOffscreenRight = false,\n calculations\n ;\n $currentMenu\n .addClass(className.loading)\n ;\n calculations = {\n context: {\n scrollLeft : $context.scrollLeft(),\n width : $context.outerWidth()\n },\n menu: {\n offset : $currentMenu.offset(),\n width : $currentMenu.outerWidth()\n }\n };\n if(module.is.horizontallyScrollableContext()) {\n calculations.menu.offset.left += calculations.context.scrollLeft;\n }\n isOffscreenRight = (calculations.menu.offset.left + calculations.menu.width >= calculations.context.scrollLeft + calculations.context.width);\n if(isOffscreenRight) {\n module.verbose('Dropdown cannot fit in context rightward', isOffscreenRight);\n canOpenRightward = false;\n }\n $currentMenu.removeClass(className.loading);\n return canOpenRightward;\n },\n click: function() {\n return (hasTouch || settings.on == 'click');\n },\n extendSelect: function() {\n return settings.allowAdditions || settings.apiSettings;\n },\n show: function() {\n return !module.is.disabled() && (module.has.items() || module.has.message());\n },\n useAPI: function() {\n return $.fn.api !== undefined;\n }\n },\n\n animate: {\n show: function(callback, $subMenu) {\n var\n $currentMenu = $subMenu || $menu,\n start = ($subMenu)\n ? function() {}\n : function() {\n module.hideSubMenus();\n module.hideOthers();\n module.set.active();\n },\n transition\n ;\n callback = $.isFunction(callback)\n ? callback\n : function(){}\n ;\n module.verbose('Doing menu show animation', $currentMenu);\n module.set.direction($subMenu);\n transition = module.get.transition($subMenu);\n if( module.is.selection() ) {\n module.set.scrollPosition(module.get.selectedItem(), true);\n }\n if( module.is.hidden($currentMenu) || module.is.animating($currentMenu) ) {\n if(transition == 'none') {\n start();\n $currentMenu.transition('show');\n callback.call(element);\n }\n else if($.fn.transition !== undefined && $module.transition('is supported')) {\n $currentMenu\n .transition({\n animation : transition + ' in',\n debug : settings.debug,\n verbose : settings.verbose,\n duration : settings.duration,\n queue : true,\n onStart : start,\n onComplete : function() {\n callback.call(element);\n }\n })\n ;\n }\n else {\n module.error(error.noTransition, transition);\n }\n }\n },\n hide: function(callback, $subMenu) {\n var\n $currentMenu = $subMenu || $menu,\n duration = ($subMenu)\n ? (settings.duration * 0.9)\n : settings.duration,\n start = ($subMenu)\n ? function() {}\n : function() {\n if( module.can.click() ) {\n module.unbind.intent();\n }\n module.remove.active();\n },\n transition = module.get.transition($subMenu)\n ;\n callback = $.isFunction(callback)\n ? callback\n : function(){}\n ;\n if( module.is.visible($currentMenu) || module.is.animating($currentMenu) ) {\n module.verbose('Doing menu hide animation', $currentMenu);\n\n if(transition == 'none') {\n start();\n $currentMenu.transition('hide');\n callback.call(element);\n }\n else if($.fn.transition !== undefined && $module.transition('is supported')) {\n $currentMenu\n .transition({\n animation : transition + ' out',\n duration : settings.duration,\n debug : settings.debug,\n verbose : settings.verbose,\n queue : true,\n onStart : start,\n onComplete : function() {\n callback.call(element);\n }\n })\n ;\n }\n else {\n module.error(error.transition);\n }\n }\n }\n },\n\n hideAndClear: function() {\n module.remove.searchTerm();\n if( module.has.maxSelections() ) {\n return;\n }\n if(module.has.search()) {\n module.hide(function() {\n module.remove.filteredItem();\n });\n }\n else {\n module.hide();\n }\n },\n\n delay: {\n show: function() {\n module.verbose('Delaying show event to ensure user intent');\n clearTimeout(module.timer);\n module.timer = setTimeout(module.show, settings.delay.show);\n },\n hide: function() {\n module.verbose('Delaying hide event to ensure user intent');\n clearTimeout(module.timer);\n module.timer = setTimeout(module.hide, settings.delay.hide);\n }\n },\n\n escape: {\n value: function(value) {\n var\n multipleValues = $.isArray(value),\n stringValue = (typeof value === 'string'),\n isUnparsable = (!stringValue && !multipleValues),\n hasQuotes = (stringValue && value.search(regExp.quote) !== -1),\n values = []\n ;\n if(isUnparsable || !hasQuotes) {\n return value;\n }\n module.debug('Encoding quote values for use in select', value);\n if(multipleValues) {\n $.each(value, function(index, value){\n values.push(value.replace(regExp.quote, '"'));\n });\n return values;\n }\n return value.replace(regExp.quote, '"');\n },\n string: function(text) {\n text = String(text);\n return text.replace(regExp.escape, '\\\\$&');\n }\n },\n\n setting: function(name, value) {\n module.debug('Changing setting', name, value);\n if( $.isPlainObject(name) ) {\n $.extend(true, settings, name);\n }\n else if(value !== undefined) {\n if($.isPlainObject(settings[name])) {\n $.extend(true, settings[name], value);\n }\n else {\n settings[name] = value;\n }\n }\n else {\n return settings[name];\n }\n },\n internal: function(name, value) {\n if( $.isPlainObject(name) ) {\n $.extend(true, module, name);\n }\n else if(value !== undefined) {\n module[name] = value;\n }\n else {\n return module[name];\n }\n },\n debug: function() {\n if(!settings.silent && settings.debug) {\n if(settings.performance) {\n module.performance.log(arguments);\n }\n else {\n module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');\n module.debug.apply(console, arguments);\n }\n }\n },\n verbose: function() {\n if(!settings.silent && settings.verbose && settings.debug) {\n if(settings.performance) {\n module.performance.log(arguments);\n }\n else {\n module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');\n module.verbose.apply(console, arguments);\n }\n }\n },\n error: function() {\n if(!settings.silent) {\n module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');\n module.error.apply(console, arguments);\n }\n },\n performance: {\n log: function(message) {\n var\n currentTime,\n executionTime,\n previousTime\n ;\n if(settings.performance) {\n currentTime = new Date().getTime();\n previousTime = time || currentTime;\n executionTime = currentTime - previousTime;\n time = currentTime;\n performance.push({\n 'Name' : message[0],\n 'Arguments' : [].slice.call(message, 1) || '',\n 'Element' : element,\n 'Execution Time' : executionTime\n });\n }\n clearTimeout(module.performance.timer);\n module.performance.timer = setTimeout(module.performance.display, 500);\n },\n display: function() {\n var\n title = settings.name + ':',\n totalTime = 0\n ;\n time = false;\n clearTimeout(module.performance.timer);\n $.each(performance, function(index, data) {\n totalTime += data['Execution Time'];\n });\n title += ' ' + totalTime + 'ms';\n if(moduleSelector) {\n title += ' \\'' + moduleSelector + '\\'';\n }\n if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {\n console.groupCollapsed(title);\n if(console.table) {\n console.table(performance);\n }\n else {\n $.each(performance, function(index, data) {\n console.log(data['Name'] + ': ' + data['Execution Time']+'ms');\n });\n }\n console.groupEnd();\n }\n performance = [];\n }\n },\n invoke: function(query, passedArguments, context) {\n var\n object = instance,\n maxDepth,\n found,\n response\n ;\n passedArguments = passedArguments || queryArguments;\n context = element || context;\n if(typeof query == 'string' && object !== undefined) {\n query = query.split(/[\\. ]/);\n maxDepth = query.length - 1;\n $.each(query, function(depth, value) {\n var camelCaseValue = (depth != maxDepth)\n ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)\n : query\n ;\n if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {\n object = object[camelCaseValue];\n }\n else if( object[camelCaseValue] !== undefined ) {\n found = object[camelCaseValue];\n return false;\n }\n else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {\n object = object[value];\n }\n else if( object[value] !== undefined ) {\n found = object[value];\n return false;\n }\n else {\n module.error(error.method, query);\n return false;\n }\n });\n }\n if ( $.isFunction( found ) ) {\n response = found.apply(context, passedArguments);\n }\n else if(found !== undefined) {\n response = found;\n }\n if($.isArray(returnedValue)) {\n returnedValue.push(response);\n }\n else if(returnedValue !== undefined) {\n returnedValue = [returnedValue, response];\n }\n else if(response !== undefined) {\n returnedValue = response;\n }\n return found;\n }\n };\n\n if(methodInvoked) {\n if(instance === undefined) {\n module.initialize();\n }\n module.invoke(query);\n }\n else {\n if(instance !== undefined) {\n instance.invoke('destroy');\n }\n module.initialize();\n }\n })\n ;\n return (returnedValue !== undefined)\n ? returnedValue\n : $allModules\n ;\n};\n\n$.fn.dropdown.settings = {\n\n silent : false,\n debug : false,\n verbose : false,\n performance : true,\n\n on : 'click', // what event should show menu action on item selection\n action : 'activate', // action on item selection (nothing, activate, select, combo, hide, function(){})\n\n\n apiSettings : false,\n selectOnKeydown : true, // Whether selection should occur automatically when keyboard shortcuts used\n minCharacters : 0, // Minimum characters required to trigger API call\n\n filterRemoteData : false, // Whether API results should be filtered after being returned for query term\n saveRemoteData : true, // Whether remote name/value pairs should be stored in sessionStorage to allow remote data to be restored on page refresh\n\n throttle : 200, // How long to wait after last user input to search remotely\n\n context : window, // Context to use when determining if on screen\n direction : 'auto', // Whether dropdown should always open in one direction\n keepOnScreen : true, // Whether dropdown should check whether it is on screen before showing\n\n match : 'both', // what to match against with search selection (both, text, or label)\n fullTextSearch : false, // search anywhere in value (set to 'exact' to require exact matches)\n\n placeholder : 'auto', // whether to convert blank <select> values to placeholder text\n preserveHTML : true, // preserve html when selecting value\n sortSelect : false, // sort selection on init\n\n forceSelection : true, // force a choice on blur with search selection\n\n allowAdditions : false, // whether multiple select should allow user added values\n hideAdditions : true, // whether or not to hide special message prompting a user they can enter a value\n\n maxSelections : false, // When set to a number limits the number of selections to this count\n useLabels : true, // whether multiple select should filter currently active selections from choices\n delimiter : ',', // when multiselect uses normal <input> the values will be delimited with this character\n\n showOnFocus : true, // show menu on focus\n allowReselection : false, // whether current value should trigger callbacks when reselected\n allowTab : true, // add tabindex to element\n allowCategorySelection : false, // allow elements with sub-menus to be selected\n\n fireOnInit : false, // Whether callbacks should fire when initializing dropdown values\n\n transition : 'auto', // auto transition will slide down or up based on direction\n duration : 200, // duration of transition\n\n glyphWidth : 1.037, // widest glyph width in em (W is 1.037 em) used to calculate multiselect input width\n\n // label settings on multi-select\n label: {\n transition : 'scale',\n duration : 200,\n variation : false\n },\n\n // delay before event\n delay : {\n hide : 300,\n show : 200,\n search : 20,\n touch : 50\n },\n\n /* Callbacks */\n onChange : function(value, text, $selected){},\n onAdd : function(value, text, $selected){},\n onRemove : function(value, text, $selected){},\n\n onLabelSelect : function($selectedLabels){},\n onLabelCreate : function(value, text) { return $(this); },\n onLabelRemove : function(value) { return true; },\n onNoResults : function(searchTerm) { return true; },\n onShow : function(){},\n onHide : function(){},\n\n /* Component */\n name : 'Dropdown',\n namespace : 'dropdown',\n\n message: {\n addResult : 'Add <b>{term}</b>',\n count : '{count} selected',\n maxSelections : 'Max {maxCount} selections',\n noResults : 'No results found.',\n serverError : 'There was an error contacting the server'\n },\n\n error : {\n action : 'You called a dropdown action that was not defined',\n alreadySetup : 'Once a select has been initialized behaviors must be called on the created ui dropdown',\n labels : 'Allowing user additions currently requires the use of labels.',\n missingMultiple : '<select> requires multiple property to be set to correctly preserve multiple values',\n method : 'The method you called is not defined.',\n noAPI : 'The API module is required to load resources remotely',\n noStorage : 'Saving remote data requires session storage',\n noTransition : 'This module requires ui transitions <https://github.com/Semantic-Org/UI-Transition>'\n },\n\n regExp : {\n escape : /[-[\\]{}()*+?.,\\\\^$|#\\s]/g,\n quote : /\"/g\n },\n\n metadata : {\n defaultText : 'defaultText',\n defaultValue : 'defaultValue',\n placeholderText : 'placeholder',\n text : 'text',\n value : 'value'\n },\n\n // property names for remote query\n fields: {\n remoteValues : 'results', // grouping for api results\n values : 'values', // grouping for all dropdown values\n disabled : 'disabled', // whether value should be disabled\n name : 'name', // displayed dropdown text\n value : 'value', // actual dropdown value\n text : 'text' // displayed text when selected\n },\n\n keys : {\n backspace : 8,\n delimiter : 188, // comma\n deleteKey : 46,\n enter : 13,\n escape : 27,\n pageUp : 33,\n pageDown : 34,\n leftArrow : 37,\n upArrow : 38,\n rightArrow : 39,\n downArrow : 40\n },\n\n selector : {\n addition : '.addition',\n dropdown : '.ui.dropdown',\n hidden : '.hidden',\n icon : '> .dropdown.icon',\n input : '> input[type=\"hidden\"], > select',\n item : '.item',\n label : '> .label',\n remove : '> .label > .delete.icon',\n siblingLabel : '.label',\n menu : '.menu',\n message : '.message',\n menuIcon : '.dropdown.icon',\n search : 'input.search, .menu > .search > input, .menu input.search',\n sizer : '> input.sizer',\n text : '> .text:not(.icon)',\n unselectable : '.disabled, .filtered'\n },\n\n className : {\n active : 'active',\n addition : 'addition',\n animating : 'animating',\n disabled : 'disabled',\n empty : 'empty',\n dropdown : 'ui dropdown',\n filtered : 'filtered',\n hidden : 'hidden transition',\n item : 'item',\n label : 'ui label',\n loading : 'loading',\n menu : 'menu',\n message : 'message',\n multiple : 'multiple',\n placeholder : 'default',\n sizer : 'sizer',\n search : 'search',\n selected : 'selected',\n selection : 'selection',\n upward : 'upward',\n leftward : 'left',\n visible : 'visible'\n }\n\n};\n\n/* Templates */\n$.fn.dropdown.settings.templates = {\n\n // generates dropdown from select values\n dropdown: function(select) {\n var\n placeholder = select.placeholder || false,\n values = select.values || {},\n html = ''\n ;\n html += '<i class=\"dropdown icon\"></i>';\n if(select.placeholder) {\n html += '<div class=\"default text\">' + placeholder + '</div>';\n }\n else {\n html += '<div class=\"text\"></div>';\n }\n html += '<div class=\"menu\">';\n $.each(select.values, function(index, option) {\n html += (option.disabled)\n ? '<div class=\"disabled item\" data-value=\"' + option.value + '\">' + option.name + '</div>'\n : '<div class=\"item\" data-value=\"' + option.value + '\">' + option.name + '</div>'\n ;\n });\n html += '</div>';\n return html;\n },\n\n // generates just menu from select\n menu: function(response, fields) {\n var\n values = response[fields.values] || {},\n html = ''\n ;\n $.each(values, function(index, option) {\n var\n maybeText = (option[fields.text])\n ? 'data-text=\"' + option[fields.text] + '\"'\n : '',\n maybeDisabled = (option[fields.disabled])\n ? 'disabled '\n : ''\n ;\n html += '<div class=\"'+ maybeDisabled +'item\" data-value=\"' + option[fields.value] + '\"' + maybeText + '>'\n html += option[fields.name];\n html += '</div>';\n });\n return html;\n },\n\n // generates label for multiselect\n label: function(value, text) {\n return text + '<i class=\"delete icon\"></i>';\n },\n\n\n // generates messages like \"No results\"\n message: function(message) {\n return message;\n },\n\n // generates user addition to selection menu\n addition: function(choice) {\n return choice;\n }\n\n};\n\n})( jQuery, window, document );\n\n/*!\n * # Semantic UI 2.2.11 - Embed\n * http://github.com/semantic-org/semantic-ui/\n *\n *\n * Released under the MIT license\n * http://opensource.org/licenses/MIT\n *\n */\n\n;(function ($, window, document, undefined) {\n\n\"use strict\";\n\nwindow = (typeof window != 'undefined' && window.Math == Math)\n ? window\n : (typeof self != 'undefined' && self.Math == Math)\n ? self\n : Function('return this')()\n;\n\n$.fn.embed = function(parameters) {\n\n var\n $allModules = $(this),\n\n moduleSelector = $allModules.selector || '',\n\n time = new Date().getTime(),\n performance = [],\n\n query = arguments[0],\n methodInvoked = (typeof query == 'string'),\n queryArguments = [].slice.call(arguments, 1),\n\n returnedValue\n ;\n\n $allModules\n .each(function() {\n var\n settings = ( $.isPlainObject(parameters) )\n ? $.extend(true, {}, $.fn.embed.settings, parameters)\n : $.extend({}, $.fn.embed.settings),\n\n selector = settings.selector,\n className = settings.className,\n sources = settings.sources,\n error = settings.error,\n metadata = settings.metadata,\n namespace = settings.namespace,\n templates = settings.templates,\n\n eventNamespace = '.' + namespace,\n moduleNamespace = 'module-' + namespace,\n\n $window = $(window),\n $module = $(this),\n $placeholder = $module.find(selector.placeholder),\n $icon = $module.find(selector.icon),\n $embed = $module.find(selector.embed),\n\n element = this,\n instance = $module.data(moduleNamespace),\n module\n ;\n\n module = {\n\n initialize: function() {\n module.debug('Initializing embed');\n module.determine.autoplay();\n module.create();\n module.bind.events();\n module.instantiate();\n },\n\n instantiate: function() {\n module.verbose('Storing instance of module', module);\n instance = module;\n $module\n .data(moduleNamespace, module)\n ;\n },\n\n destroy: function() {\n module.verbose('Destroying previous instance of embed');\n module.reset();\n $module\n .removeData(moduleNamespace)\n .off(eventNamespace)\n ;\n },\n\n refresh: function() {\n module.verbose('Refreshing selector cache');\n $placeholder = $module.find(selector.placeholder);\n $icon = $module.find(selector.icon);\n $embed = $module.find(selector.embed);\n },\n\n bind: {\n events: function() {\n if( module.has.placeholder() ) {\n module.debug('Adding placeholder events');\n $module\n .on('click' + eventNamespace, selector.placeholder, module.createAndShow)\n .on('click' + eventNamespace, selector.icon, module.createAndShow)\n ;\n }\n }\n },\n\n create: function() {\n var\n placeholder = module.get.placeholder()\n ;\n if(placeholder) {\n module.createPlaceholder();\n }\n else {\n module.createAndShow();\n }\n },\n\n createPlaceholder: function(placeholder) {\n var\n icon = module.get.icon(),\n url = module.get.url(),\n embed = module.generate.embed(url)\n ;\n placeholder = placeholder || module.get.placeholder();\n $module.html( templates.placeholder(placeholder, icon) );\n module.debug('Creating placeholder for embed', placeholder, icon);\n },\n\n createEmbed: function(url) {\n module.refresh();\n url = url || module.get.url();\n $embed = $('<div/>')\n .addClass(className.embed)\n .html( module.generate.embed(url) )\n .appendTo($module)\n ;\n settings.onCreate.call(element, url);\n module.debug('Creating embed object', $embed);\n },\n\n changeEmbed: function(url) {\n $embed\n .html( module.generate.embed(url) )\n ;\n },\n\n createAndShow: function() {\n module.createEmbed();\n module.show();\n },\n\n // sets new embed\n change: function(source, id, url) {\n module.debug('Changing video to ', source, id, url);\n $module\n .data(metadata.source, source)\n .data(metadata.id, id)\n ;\n if(url) {\n $module.data(metadata.url, url);\n }\n else {\n $module.removeData(metadata.url);\n }\n if(module.has.embed()) {\n module.changeEmbed();\n }\n else {\n module.create();\n }\n },\n\n // clears embed\n reset: function() {\n module.debug('Clearing embed and showing placeholder');\n module.remove.active();\n module.remove.embed();\n module.showPlaceholder();\n settings.onReset.call(element);\n },\n\n // shows current embed\n show: function() {\n module.debug('Showing embed');\n module.set.active();\n settings.onDisplay.call(element);\n },\n\n hide: function() {\n module.debug('Hiding embed');\n module.showPlaceholder();\n },\n\n showPlaceholder: function() {\n module.debug('Showing placeholder image');\n module.remove.active();\n settings.onPlaceholderDisplay.call(element);\n },\n\n get: {\n id: function() {\n return settings.id || $module.data(metadata.id);\n },\n placeholder: function() {\n return settings.placeholder || $module.data(metadata.placeholder);\n },\n icon: function() {\n return (settings.icon)\n ? settings.icon\n : ($module.data(metadata.icon) !== undefined)\n ? $module.data(metadata.icon)\n : module.determine.icon()\n ;\n },\n source: function(url) {\n return (settings.source)\n ? settings.source\n : ($module.data(metadata.source) !== undefined)\n ? $module.data(metadata.source)\n : module.determine.source()\n ;\n },\n type: function() {\n var source = module.get.source();\n return (sources[source] !== undefined)\n ? sources[source].type\n : false\n ;\n },\n url: function() {\n return (settings.url)\n ? settings.url\n : ($module.data(metadata.url) !== undefined)\n ? $module.data(metadata.url)\n : module.determine.url()\n ;\n }\n },\n\n determine: {\n autoplay: function() {\n if(module.should.autoplay()) {\n settings.autoplay = true;\n }\n },\n source: function(url) {\n var\n matchedSource = false\n ;\n url = url || module.get.url();\n if(url) {\n $.each(sources, function(name, source) {\n if(url.search(source.domain) !== -1) {\n matchedSource = name;\n return false;\n }\n });\n }\n return matchedSource;\n },\n icon: function() {\n var\n source = module.get.source()\n ;\n return (sources[source] !== undefined)\n ? sources[source].icon\n : false\n ;\n },\n url: function() {\n var\n id = settings.id || $module.data(metadata.id),\n source = settings.source || $module.data(metadata.source),\n url\n ;\n url = (sources[source] !== undefined)\n ? sources[source].url.replace('{id}', id)\n : false\n ;\n if(url) {\n $module.data(metadata.url, url);\n }\n return url;\n }\n },\n\n\n set: {\n active: function() {\n $module.addClass(className.active);\n }\n },\n\n remove: {\n active: function() {\n $module.removeClass(className.active);\n },\n embed: function() {\n $embed.empty();\n }\n },\n\n encode: {\n parameters: function(parameters) {\n var\n urlString = [],\n index\n ;\n for (index in parameters) {\n urlString.push( encodeURIComponent(index) + '=' + encodeURIComponent( parameters[index] ) );\n }\n return urlString.join('&');\n }\n },\n\n generate: {\n embed: function(url) {\n module.debug('Generating embed html');\n var\n source = module.get.source(),\n html,\n parameters\n ;\n url = module.get.url(url);\n if(url) {\n parameters = module.generate.parameters(source);\n html = templates.iframe(url, parameters);\n }\n else {\n module.error(error.noURL, $module);\n }\n return html;\n },\n parameters: function(source, extraParameters) {\n var\n parameters = (sources[source] && sources[source].parameters !== undefined)\n ? sources[source].parameters(settings)\n : {}\n ;\n extraParameters = extraParameters || settings.parameters;\n if(extraParameters) {\n parameters = $.extend({}, parameters, extraParameters);\n }\n parameters = settings.onEmbed(parameters);\n return module.encode.parameters(parameters);\n }\n },\n\n has: {\n embed: function() {\n return ($embed.length > 0);\n },\n placeholder: function() {\n return settings.placeholder || $module.data(metadata.placeholder);\n }\n },\n\n should: {\n autoplay: function() {\n return (settings.autoplay === 'auto')\n ? (settings.placeholder || $module.data(metadata.placeholder) !== undefined)\n : settings.autoplay\n ;\n }\n },\n\n is: {\n video: function() {\n return module.get.type() == 'video';\n }\n },\n\n setting: function(name, value) {\n module.debug('Changing setting', name, value);\n if( $.isPlainObject(name) ) {\n $.extend(true, settings, name);\n }\n else if(value !== undefined) {\n if($.isPlainObject(settings[name])) {\n $.extend(true, settings[name], value);\n }\n else {\n settings[name] = value;\n }\n }\n else {\n return settings[name];\n }\n },\n internal: function(name, value) {\n if( $.isPlainObject(name) ) {\n $.extend(true, module, name);\n }\n else if(value !== undefined) {\n module[name] = value;\n }\n else {\n return module[name];\n }\n },\n debug: function() {\n if(!settings.silent && settings.debug) {\n if(settings.performance) {\n module.performance.log(arguments);\n }\n else {\n module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');\n module.debug.apply(console, arguments);\n }\n }\n },\n verbose: function() {\n if(!settings.silent && settings.verbose && settings.debug) {\n if(settings.performance) {\n module.performance.log(arguments);\n }\n else {\n module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');\n module.verbose.apply(console, arguments);\n }\n }\n },\n error: function() {\n if(!settings.silent) {\n module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');\n module.error.apply(console, arguments);\n }\n },\n performance: {\n log: function(message) {\n var\n currentTime,\n executionTime,\n previousTime\n ;\n if(settings.performance) {\n currentTime = new Date().getTime();\n previousTime = time || currentTime;\n executionTime = currentTime - previousTime;\n time = currentTime;\n performance.push({\n 'Name' : message[0],\n 'Arguments' : [].slice.call(message, 1) || '',\n 'Element' : element,\n 'Execution Time' : executionTime\n });\n }\n clearTimeout(module.performance.timer);\n module.performance.timer = setTimeout(module.performance.display, 500);\n },\n display: function() {\n var\n title = settings.name + ':',\n totalTime = 0\n ;\n time = false;\n clearTimeout(module.performance.timer);\n $.each(performance, function(index, data) {\n totalTime += data['Execution Time'];\n });\n title += ' ' + totalTime + 'ms';\n if(moduleSelector) {\n title += ' \\'' + moduleSelector + '\\'';\n }\n if($allModules.length > 1) {\n title += ' ' + '(' + $allModules.length + ')';\n }\n if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {\n console.groupCollapsed(title);\n if(console.table) {\n console.table(performance);\n }\n else {\n $.each(performance, function(index, data) {\n console.log(data['Name'] + ': ' + data['Execution Time']+'ms');\n });\n }\n console.groupEnd();\n }\n performance = [];\n }\n },\n invoke: function(query, passedArguments, context) {\n var\n object = instance,\n maxDepth,\n found,\n response\n ;\n passedArguments = passedArguments || queryArguments;\n context = element || context;\n if(typeof query == 'string' && object !== undefined) {\n query = query.split(/[\\. ]/);\n maxDepth = query.length - 1;\n $.each(query, function(depth, value) {\n var camelCaseValue = (depth != maxDepth)\n ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)\n : query\n ;\n if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {\n object = object[camelCaseValue];\n }\n else if( object[camelCaseValue] !== undefined ) {\n found = object[camelCaseValue];\n return false;\n }\n else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {\n object = object[value];\n }\n else if( object[value] !== undefined ) {\n found = object[value];\n return false;\n }\n else {\n module.error(error.method, query);\n return false;\n }\n });\n }\n if ( $.isFunction( found ) ) {\n response = found.apply(context, passedArguments);\n }\n else if(found !== undefined) {\n response = found;\n }\n if($.isArray(returnedValue)) {\n returnedValue.push(response);\n }\n else if(returnedValue !== undefined) {\n returnedValue = [returnedValue, response];\n }\n else if(response !== undefined) {\n returnedValue = response;\n }\n return found;\n }\n };\n\n if(methodInvoked) {\n if(instance === undefined) {\n module.initialize();\n }\n module.invoke(query);\n }\n else {\n if(instance !== undefined) {\n instance.invoke('destroy');\n }\n module.initialize();\n }\n })\n ;\n return (returnedValue !== undefined)\n ? returnedValue\n : this\n ;\n};\n\n$.fn.embed.settings = {\n\n name : 'Embed',\n namespace : 'embed',\n\n silent : false,\n debug : false,\n verbose : false,\n performance : true,\n\n icon : false,\n source : false,\n url : false,\n id : false,\n\n // standard video settings\n autoplay : 'auto',\n color : '#444444',\n hd : true,\n brandedUI : false,\n\n // additional parameters to include with the embed\n parameters: false,\n\n onDisplay : function() {},\n onPlaceholderDisplay : function() {},\n onReset : function() {},\n onCreate : function(url) {},\n onEmbed : function(parameters) {\n return parameters;\n },\n\n metadata : {\n id : 'id',\n icon : 'icon',\n placeholder : 'placeholder',\n source : 'source',\n url : 'url'\n },\n\n error : {\n noURL : 'No URL specified',\n method : 'The method you called is not defined'\n },\n\n className : {\n active : 'active',\n embed : 'embed'\n },\n\n selector : {\n embed : '.embed',\n placeholder : '.placeholder',\n icon : '.icon'\n },\n\n sources: {\n youtube: {\n name : 'youtube',\n type : 'video',\n icon : 'video play',\n domain : 'youtube.com',\n url : '//www.youtube.com/embed/{id}',\n parameters: function(settings) {\n return {\n autohide : !settings.brandedUI,\n autoplay : settings.autoplay,\n color : settings.color || undefined,\n hq : settings.hd,\n jsapi : settings.api,\n modestbranding : !settings.brandedUI\n };\n }\n },\n vimeo: {\n name : 'vimeo',\n type : 'video',\n icon : 'video play',\n domain : 'vimeo.com',\n url : '//player.vimeo.com/video/{id}',\n parameters: function(settings) {\n return {\n api : settings.api,\n autoplay : settings.autoplay,\n byline : settings.brandedUI,\n color : settings.color || undefined,\n portrait : settings.brandedUI,\n title : settings.brandedUI\n };\n }\n }\n },\n\n templates: {\n iframe : function(url, parameters) {\n var src = url;\n if (parameters) {\n src += '?' + parameters;\n }\n return ''\n + '<iframe src=\"' + src + '\"'\n + ' width=\"100%\" height=\"100%\"'\n + ' frameborder=\"0\" scrolling=\"no\" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>'\n ;\n },\n placeholder : function(image, icon) {\n var\n html = ''\n ;\n if(icon) {\n html += '<i class=\"' + icon + ' icon\"></i>';\n }\n if(image) {\n html += '<img class=\"placeholder\" src=\"' + image + '\">';\n }\n return html;\n }\n },\n\n // NOT YET IMPLEMENTED\n api : false,\n onPause : function() {},\n onPlay : function() {},\n onStop : function() {}\n\n};\n\n\n\n})( jQuery, window, document );\n\n/*!\n * # Semantic UI 2.2.11 - Modal\n * http://github.com/semantic-org/semantic-ui/\n *\n *\n * Released under the MIT license\n * http://opensource.org/licenses/MIT\n *\n */\n\n;(function ($, window, document, undefined) {\n\n\"use strict\";\n\nwindow = (typeof window != 'undefined' && window.Math == Math)\n ? window\n : (typeof self != 'undefined' && self.Math == Math)\n ? self\n : Function('return this')()\n;\n\n$.fn.modal = function(parameters) {\n var\n $allModules = $(this),\n $window = $(window),\n $document = $(document),\n $body = $('body'),\n\n moduleSelector = $allModules.selector || '',\n\n time = new Date().getTime(),\n performance = [],\n\n query = arguments[0],\n methodInvoked = (typeof query == 'string'),\n queryArguments = [].slice.call(arguments, 1),\n\n requestAnimationFrame = window.requestAnimationFrame\n || window.mozRequestAnimationFrame\n || window.webkitRequestAnimationFrame\n || window.msRequestAnimationFrame\n || function(callback) { setTimeout(callback, 0); },\n\n returnedValue\n ;\n\n $allModules\n .each(function() {\n var\n settings = ( $.isPlainObject(parameters) )\n ? $.extend(true, {}, $.fn.modal.settings, parameters)\n : $.extend({}, $.fn.modal.settings),\n\n selector = settings.selector,\n className = settings.className,\n namespace = settings.namespace,\n error = settings.error,\n\n eventNamespace = '.' + namespace,\n moduleNamespace = 'module-' + namespace,\n\n $module = $(this),\n $context = $(settings.context),\n $close = $module.find(selector.close),\n\n $allModals,\n $otherModals,\n $focusedElement,\n $dimmable,\n $dimmer,\n\n element = this,\n instance = $module.data(moduleNamespace),\n\n ignoreRepeatedEvents = false,\n\n elementEventNamespace,\n id,\n observer,\n module\n ;\n module = {\n\n initialize: function() {\n module.verbose('Initializing dimmer', $context);\n\n module.create.id();\n module.create.dimmer();\n module.refreshModals();\n\n module.bind.events();\n if(settings.observeChanges) {\n module.observeChanges();\n }\n module.instantiate();\n },\n\n instantiate: function() {\n module.verbose('Storing instance of modal');\n instance = module;\n $module\n .data(moduleNamespace, instance)\n ;\n },\n\n create: {\n dimmer: function() {\n var\n defaultSettings = {\n debug : settings.debug,\n dimmerName : 'modals'\n },\n dimmerSettings = $.extend(true, defaultSettings, settings.dimmerSettings)\n ;\n if($.fn.dimmer === undefined) {\n module.error(error.dimmer);\n return;\n }\n module.debug('Creating dimmer');\n $dimmable = $context.dimmer(dimmerSettings);\n if(settings.detachable) {\n module.verbose('Modal is detachable, moving content into dimmer');\n $dimmable.dimmer('add content', $module);\n }\n else {\n module.set.undetached();\n }\n $dimmer = $dimmable.dimmer('get dimmer');\n },\n id: function() {\n id = (Math.random().toString(16) + '000000000').substr(2,8);\n elementEventNamespace = '.' + id;\n module.verbose('Creating unique id for element', id);\n }\n },\n\n destroy: function() {\n module.verbose('Destroying previous modal');\n $module\n .removeData(moduleNamespace)\n .off(eventNamespace)\n ;\n $window.off(elementEventNamespace);\n $dimmer.off(elementEventNamespace);\n $close.off(eventNamespace);\n $context.dimmer('destroy');\n },\n\n observeChanges: function() {\n if('MutationObserver' in window) {\n observer = new MutationObserver(function(mutations) {\n module.debug('DOM tree modified, refreshing');\n module.refresh();\n });\n observer.observe(element, {\n childList : true,\n subtree : true\n });\n module.debug('Setting up mutation observer', observer);\n }\n },\n\n refresh: function() {\n module.remove.scrolling();\n module.cacheSizes();\n module.set.screenHeight();\n module.set.type();\n module.set.position();\n },\n\n refreshModals: function() {\n $otherModals = $module.siblings(selector.modal);\n $allModals = $otherModals.add($module);\n },\n\n attachEvents: function(selector, event) {\n var\n $toggle = $(selector)\n ;\n event = $.isFunction(module[event])\n ? module[event]\n : module.toggle\n ;\n if($toggle.length > 0) {\n module.debug('Attaching modal events to element', selector, event);\n $toggle\n .off(eventNamespace)\n .on('click' + eventNamespace, event)\n ;\n }\n else {\n module.error(error.notFound, selector);\n }\n },\n\n bind: {\n events: function() {\n module.verbose('Attaching events');\n $module\n .on('click' + eventNamespace, selector.close, module.event.close)\n .on('click' + eventNamespace, selector.approve, module.event.approve)\n .on('click' + eventNamespace, selector.deny, module.event.deny)\n ;\n $window\n .on('resize' + elementEventNamespace, module.event.resize)\n ;\n }\n },\n\n get: {\n id: function() {\n return (Math.random().toString(16) + '000000000').substr(2,8);\n }\n },\n\n event: {\n approve: function() {\n if(ignoreRepeatedEvents || settings.onApprove.call(element, $(this)) === false) {\n module.verbose('Approve callback returned false cancelling hide');\n return;\n }\n ignoreRepeatedEvents = true;\n module.hide(function() {\n ignoreRepeatedEvents = false;\n });\n },\n deny: function() {\n if(ignoreRepeatedEvents || settings.onDeny.call(element, $(this)) === false) {\n module.verbose('Deny callback returned false cancelling hide');\n return;\n }\n ignoreRepeatedEvents = true;\n module.hide(function() {\n ignoreRepeatedEvents = false;\n });\n },\n close: function() {\n module.hide();\n },\n click: function(event) {\n var\n $target = $(event.target),\n isInModal = ($target.closest(selector.modal).length > 0),\n isInDOM = $.contains(document.documentElement, event.target)\n ;\n if(!isInModal && isInDOM) {\n module.debug('Dimmer clicked, hiding all modals');\n if( module.is.active() ) {\n module.remove.clickaway();\n if(settings.allowMultiple) {\n module.hide();\n }\n else {\n module.hideAll();\n }\n }\n }\n },\n debounce: function(method, delay) {\n clearTimeout(module.timer);\n module.timer = setTimeout(method, delay);\n },\n keyboard: function(event) {\n var\n keyCode = event.which,\n escapeKey = 27\n ;\n if(keyCode == escapeKey) {\n if(settings.closable) {\n module.debug('Escape key pressed hiding modal');\n module.hide();\n }\n else {\n module.debug('Escape key pressed, but closable is set to false');\n }\n event.preventDefault();\n }\n },\n resize: function() {\n if( $dimmable.dimmer('is active') && ( module.is.animating() || module.is.active() ) ) {\n requestAnimationFrame(module.refresh);\n }\n }\n },\n\n toggle: function() {\n if( module.is.active() || module.is.animating() ) {\n module.hide();\n }\n else {\n module.show();\n }\n },\n\n show: function(callback) {\n callback = $.isFunction(callback)\n ? callback\n : function(){}\n ;\n module.refreshModals();\n module.set.dimmerSettings();\n module.showModal(callback);\n },\n\n hide: function(callback) {\n callback = $.isFunction(callback)\n ? callback\n : function(){}\n ;\n module.refreshModals();\n module.hideModal(callback);\n },\n\n showModal: function(callback) {\n callback = $.isFunction(callback)\n ? callback\n : function(){}\n ;\n if( module.is.animating() || !module.is.active() ) {\n\n module.showDimmer();\n module.cacheSizes();\n module.set.position();\n module.set.screenHeight();\n module.set.type();\n module.set.clickaway();\n\n if( !settings.allowMultiple && module.others.active() ) {\n module.hideOthers(module.showModal);\n }\n else {\n settings.onShow.call(element);\n if(settings.transition && $.fn.transition !== undefined && $module.transition('is supported')) {\n module.debug('Showing modal with css animations');\n $module\n .transition({\n debug : settings.debug,\n animation : settings.transition + ' in',\n queue : settings.queue,\n duration : settings.duration,\n useFailSafe : true,\n onComplete : function() {\n settings.onVisible.apply(element);\n if(settings.keyboardShortcuts) {\n module.add.keyboardShortcuts();\n }\n module.save.focus();\n module.set.active();\n if(settings.autofocus) {\n module.set.autofocus();\n }\n callback();\n }\n })\n ;\n }\n else {\n module.error(error.noTransition);\n }\n }\n }\n else {\n module.debug('Modal is already visible');\n }\n },\n\n hideModal: function(callback, keepDimmed) {\n callback = $.isFunction(callback)\n ? callback\n : function(){}\n ;\n module.debug('Hiding modal');\n if(settings.onHide.call(element, $(this)) === false) {\n module.verbose('Hide callback returned false cancelling hide');\n return;\n }\n\n if( module.is.animating() || module.is.active() ) {\n if(settings.transition && $.fn.transition !== undefined && $module.transition('is supported')) {\n module.remove.active();\n $module\n .transition({\n debug : settings.debug,\n animation : settings.transition + ' out',\n queue : settings.queue,\n duration : settings.duration,\n useFailSafe : true,\n onStart : function() {\n if(!module.others.active() && !keepDimmed) {\n module.hideDimmer();\n }\n if(settings.keyboardShortcuts) {\n module.remove.keyboardShortcuts();\n }\n },\n onComplete : function() {\n settings.onHidden.call(element);\n module.restore.focus();\n callback();\n }\n })\n ;\n }\n else {\n module.error(error.noTransition);\n }\n }\n },\n\n showDimmer: function() {\n if($dimmable.dimmer('is animating') || !$dimmable.dimmer('is active') ) {\n module.debug('Showing dimmer');\n $dimmable.dimmer('show');\n }\n else {\n module.debug('Dimmer already visible');\n }\n },\n\n hideDimmer: function() {\n if( $dimmable.dimmer('is animating') || ($dimmable.dimmer('is active')) ) {\n $dimmable.dimmer('hide', function() {\n module.remove.clickaway();\n module.remove.screenHeight();\n });\n }\n else {\n module.debug('Dimmer is not visible cannot hide');\n return;\n }\n },\n\n hideAll: function(callback) {\n var\n $visibleModals = $allModals.filter('.' + className.active + ', .' + className.animating)\n ;\n callback = $.isFunction(callback)\n ? callback\n : function(){}\n ;\n if( $visibleModals.length > 0 ) {\n module.debug('Hiding all visible modals');\n module.hideDimmer();\n $visibleModals\n .modal('hide modal', callback)\n ;\n }\n },\n\n hideOthers: function(callback) {\n var\n $visibleModals = $otherModals.filter('.' + className.active + ', .' + className.animating)\n ;\n callback = $.isFunction(callback)\n ? callback\n : function(){}\n ;\n if( $visibleModals.length > 0 ) {\n module.debug('Hiding other modals', $otherModals);\n $visibleModals\n .modal('hide modal', callback, true)\n ;\n }\n },\n\n others: {\n active: function() {\n return ($otherModals.filter('.' + className.active).length > 0);\n },\n animating: function() {\n return ($otherModals.filter('.' + className.animating).length > 0);\n }\n },\n\n\n add: {\n keyboardShortcuts: function() {\n module.verbose('Adding keyboard shortcuts');\n $document\n .on('keyup' + eventNamespace, module.event.keyboard)\n ;\n }\n },\n\n save: {\n focus: function() {\n $focusedElement = $(document.activeElement).blur();\n }\n },\n\n restore: {\n focus: function() {\n if($focusedElement && $focusedElement.length > 0) {\n $focusedElement.focus();\n }\n }\n },\n\n remove: {\n active: function() {\n $module.removeClass(className.active);\n },\n clickaway: function() {\n if(settings.closable) {\n $dimmer\n .off('click' + elementEventNamespace)\n ;\n }\n },\n bodyStyle: function() {\n if($body.attr('style') === '') {\n module.verbose('Removing style attribute');\n $body.removeAttr('style');\n }\n },\n screenHeight: function() {\n module.debug('Removing page height');\n $body\n .css('height', '')\n ;\n },\n keyboardShortcuts: function() {\n module.verbose('Removing keyboard shortcuts');\n $document\n .off('keyup' + eventNamespace)\n ;\n },\n scrolling: function() {\n $dimmable.removeClass(className.scrolling);\n $module.removeClass(className.scrolling);\n }\n },\n\n cacheSizes: function() {\n var\n modalHeight = $module.outerHeight()\n ;\n if(module.cache === undefined || modalHeight !== 0) {\n module.cache = {\n pageHeight : $(document).outerHeight(),\n height : modalHeight + settings.offset,\n contextHeight : (settings.context == 'body')\n ? $(window).height()\n : $dimmable.height()\n };\n }\n module.debug('Caching modal and container sizes', module.cache);\n },\n\n can: {\n fit: function() {\n return ( ( module.cache.height + (settings.padding * 2) ) < module.cache.contextHeight);\n }\n },\n\n is: {\n active: function() {\n return $module.hasClass(className.active);\n },\n animating: function() {\n return $module.transition('is supported')\n ? $module.transition('is animating')\n : $module.is(':visible')\n ;\n },\n scrolling: function() {\n return $dimmable.hasClass(className.scrolling);\n },\n modernBrowser: function() {\n // appName for IE11 reports 'Netscape' can no longer use\n return !(window.ActiveXObject || \"ActiveXObject\" in window);\n }\n },\n\n set: {\n autofocus: function() {\n var\n $inputs = $module.find('[tabindex], :input').filter(':visible'),\n $autofocus = $inputs.filter('[autofocus]'),\n $input = ($autofocus.length > 0)\n ? $autofocus.first()\n : $inputs.first()\n ;\n if($input.length > 0) {\n $input.focus();\n }\n },\n clickaway: function() {\n if(settings.closable) {\n $dimmer\n .on('click' + elementEventNamespace, module.event.click)\n ;\n }\n },\n dimmerSettings: function() {\n if($.fn.dimmer === undefined) {\n module.error(error.dimmer);\n return;\n }\n var\n defaultSettings = {\n debug : settings.debug,\n dimmerName : 'modals',\n variation : false,\n closable : 'auto',\n duration : {\n show : settings.duration,\n hide : settings.duration\n }\n },\n dimmerSettings = $.extend(true, defaultSettings, settings.dimmerSettings)\n ;\n if(settings.inverted) {\n dimmerSettings.variation = (dimmerSettings.variation !== undefined)\n ? dimmerSettings.variation + ' inverted'\n : 'inverted'\n ;\n $dimmer.addClass(className.inverted);\n }\n else {\n $dimmer.removeClass(className.inverted);\n }\n if(settings.blurring) {\n $dimmable.addClass(className.blurring);\n }\n else {\n $dimmable.removeClass(className.blurring);\n }\n $context.dimmer('setting', dimmerSettings);\n },\n screenHeight: function() {\n if( module.can.fit() ) {\n $body.css('height', '');\n }\n else {\n module.debug('Modal is taller than page content, resizing page height');\n $body\n .css('height', module.cache.height + (settings.padding * 2) )\n ;\n }\n },\n active: function() {\n $module.addClass(className.active);\n },\n scrolling: function() {\n $dimmable.addClass(className.scrolling);\n $module.addClass(className.scrolling);\n },\n type: function() {\n if(module.can.fit()) {\n module.verbose('Modal fits on screen');\n if(!module.others.active() && !module.others.animating()) {\n module.remove.scrolling();\n }\n }\n else {\n module.verbose('Modal cannot fit on screen setting to scrolling');\n module.set.scrolling();\n }\n },\n position: function() {\n module.verbose('Centering modal on page', module.cache);\n if(module.can.fit()) {\n $module\n .css({\n top: '',\n marginTop: -(module.cache.height / 2)\n })\n ;\n }\n else {\n $module\n .css({\n marginTop : '',\n top : $document.scrollTop()\n })\n ;\n }\n },\n undetached: function() {\n $dimmable.addClass(className.undetached);\n }\n },\n\n setting: function(name, value) {\n module.debug('Changing setting', name, value);\n if( $.isPlainObject(name) ) {\n $.extend(true, settings, name);\n }\n else if(value !== undefined) {\n if($.isPlainObject(settings[name])) {\n $.extend(true, settings[name], value);\n }\n else {\n settings[name] = value;\n }\n }\n else {\n return settings[name];\n }\n },\n internal: function(name, value) {\n if( $.isPlainObject(name) ) {\n $.extend(true, module, name);\n }\n else if(value !== undefined) {\n module[name] = value;\n }\n else {\n return module[name];\n }\n },\n debug: function() {\n if(!settings.silent && settings.debug) {\n if(settings.performance) {\n module.performance.log(arguments);\n }\n else {\n module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');\n module.debug.apply(console, arguments);\n }\n }\n },\n verbose: function() {\n if(!settings.silent && settings.verbose && settings.debug) {\n if(settings.performance) {\n module.performance.log(arguments);\n }\n else {\n module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');\n module.verbose.apply(console, arguments);\n }\n }\n },\n error: function() {\n if(!settings.silent) {\n module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');\n module.error.apply(console, arguments);\n }\n },\n performance: {\n log: function(message) {\n var\n currentTime,\n executionTime,\n previousTime\n ;\n if(settings.performance) {\n currentTime = new Date().getTime();\n previousTime = time || currentTime;\n executionTime = currentTime - previousTime;\n time = currentTime;\n performance.push({\n 'Name' : message[0],\n 'Arguments' : [].slice.call(message, 1) || '',\n 'Element' : element,\n 'Execution Time' : executionTime\n });\n }\n clearTimeout(module.performance.timer);\n module.performance.timer = setTimeout(module.performance.display, 500);\n },\n display: function() {\n var\n title = settings.name + ':',\n totalTime = 0\n ;\n time = false;\n clearTimeout(module.performance.timer);\n $.each(performance, function(index, data) {\n totalTime += data['Execution Time'];\n });\n title += ' ' + totalTime + 'ms';\n if(moduleSelector) {\n title += ' \\'' + moduleSelector + '\\'';\n }\n if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {\n console.groupCollapsed(title);\n if(console.table) {\n console.table(performance);\n }\n else {\n $.each(performance, function(index, data) {\n console.log(data['Name'] + ': ' + data['Execution Time']+'ms');\n });\n }\n console.groupEnd();\n }\n performance = [];\n }\n },\n invoke: function(query, passedArguments, context) {\n var\n object = instance,\n maxDepth,\n found,\n response\n ;\n passedArguments = passedArguments || queryArguments;\n context = element || context;\n if(typeof query == 'string' && object !== undefined) {\n query = query.split(/[\\. ]/);\n maxDepth = query.length - 1;\n $.each(query, function(depth, value) {\n var camelCaseValue = (depth != maxDepth)\n ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)\n : query\n ;\n if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {\n object = object[camelCaseValue];\n }\n else if( object[camelCaseValue] !== undefined ) {\n found = object[camelCaseValue];\n return false;\n }\n else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {\n object = object[value];\n }\n else if( object[value] !== undefined ) {\n found = object[value];\n return false;\n }\n else {\n return false;\n }\n });\n }\n if ( $.isFunction( found ) ) {\n response = found.apply(context, passedArguments);\n }\n else if(found !== undefined) {\n response = found;\n }\n if($.isArray(returnedValue)) {\n returnedValue.push(response);\n }\n else if(returnedValue !== undefined) {\n returnedValue = [returnedValue, response];\n }\n else if(response !== undefined) {\n returnedValue = response;\n }\n return found;\n }\n };\n\n if(methodInvoked) {\n if(instance === undefined) {\n module.initialize();\n }\n module.invoke(query);\n }\n else {\n if(instance !== undefined) {\n instance.invoke('destroy');\n }\n module.initialize();\n }\n })\n ;\n\n return (returnedValue !== undefined)\n ? returnedValue\n : this\n ;\n};\n\n$.fn.modal.settings = {\n\n name : 'Modal',\n namespace : 'modal',\n\n silent : false,\n debug : false,\n verbose : false,\n performance : true,\n\n observeChanges : false,\n\n allowMultiple : false,\n detachable : true,\n closable : true,\n autofocus : true,\n\n inverted : false,\n blurring : false,\n\n dimmerSettings : {\n closable : false,\n useCSS : true\n },\n\n // whether to use keyboard shortcuts\n keyboardShortcuts: true,\n\n context : 'body',\n\n queue : false,\n duration : 500,\n offset : 0,\n transition : 'scale',\n\n // padding with edge of page\n padding : 50,\n\n // called before show animation\n onShow : function(){},\n\n // called after show animation\n onVisible : function(){},\n\n // called before hide animation\n onHide : function(){ return true; },\n\n // called after hide animation\n onHidden : function(){},\n\n // called after approve selector match\n onApprove : function(){ return true; },\n\n // called after deny selector match\n onDeny : function(){ return true; },\n\n selector : {\n close : '> .close',\n approve : '.actions .positive, .actions .approve, .actions .ok',\n deny : '.actions .negative, .actions .deny, .actions .cancel',\n modal : '.ui.modal'\n },\n error : {\n dimmer : 'UI Dimmer, a required component is not included in this page',\n method : 'The method you called is not defined.',\n notFound : 'The element you specified could not be found'\n },\n className : {\n active : 'active',\n animating : 'animating',\n blurring : 'blurring',\n inverted : 'inverted',\n scrolling : 'scrolling',\n undetached : 'undetached'\n }\n};\n\n\n})( jQuery, window, document );\n\n/*!\n * # Semantic UI 2.2.11 - Nag\n * http://github.com/semantic-org/semantic-ui/\n *\n *\n * Released under the MIT license\n * http://opensource.org/licenses/MIT\n *\n */\n\n;(function ($, window, document, undefined) {\n\n\"use strict\";\n\nwindow = (typeof window != 'undefined' && window.Math == Math)\n ? window\n : (typeof self != 'undefined' && self.Math == Math)\n ? self\n : Function('return this')()\n;\n\n$.fn.nag = function(parameters) {\n var\n $allModules = $(this),\n moduleSelector = $allModules.selector || '',\n\n time = new Date().getTime(),\n performance = [],\n\n query = arguments[0],\n methodInvoked = (typeof query == 'string'),\n queryArguments = [].slice.call(arguments, 1),\n returnedValue\n ;\n $allModules\n .each(function() {\n var\n settings = ( $.isPlainObject(parameters) )\n ? $.extend(true, {}, $.fn.nag.settings, parameters)\n : $.extend({}, $.fn.nag.settings),\n\n className = settings.className,\n selector = settings.selector,\n error = settings.error,\n namespace = settings.namespace,\n\n eventNamespace = '.' + namespace,\n moduleNamespace = namespace + '-module',\n\n $module = $(this),\n\n $close = $module.find(selector.close),\n $context = (settings.context)\n ? $(settings.context)\n : $('body'),\n\n element = this,\n instance = $module.data(moduleNamespace),\n\n moduleOffset,\n moduleHeight,\n\n contextWidth,\n contextHeight,\n contextOffset,\n\n yOffset,\n yPosition,\n\n timer,\n module,\n\n requestAnimationFrame = window.requestAnimationFrame\n || window.mozRequestAnimationFrame\n || window.webkitRequestAnimationFrame\n || window.msRequestAnimationFrame\n || function(callback) { setTimeout(callback, 0); }\n ;\n module = {\n\n initialize: function() {\n module.verbose('Initializing element');\n\n $module\n .on('click' + eventNamespace, selector.close, module.dismiss)\n .data(moduleNamespace, module)\n ;\n\n if(settings.detachable && $module.parent()[0] !== $context[0]) {\n $module\n .detach()\n .prependTo($context)\n ;\n }\n\n if(settings.displayTime > 0) {\n setTimeout(module.hide, settings.displayTime);\n }\n module.show();\n },\n\n destroy: function() {\n module.verbose('Destroying instance');\n $module\n .removeData(moduleNamespace)\n .off(eventNamespace)\n ;\n },\n\n show: function() {\n if( module.should.show() && !$module.is(':visible') ) {\n module.debug('Showing nag', settings.animation.show);\n if(settings.animation.show == 'fade') {\n $module\n .fadeIn(settings.duration, settings.easing)\n ;\n }\n else {\n $module\n .slideDown(settings.duration, settings.easing)\n ;\n }\n }\n },\n\n hide: function() {\n module.debug('Showing nag', settings.animation.hide);\n if(settings.animation.show == 'fade') {\n $module\n .fadeIn(settings.duration, settings.easing)\n ;\n }\n else {\n $module\n .slideUp(settings.duration, settings.easing)\n ;\n }\n },\n\n onHide: function() {\n module.debug('Removing nag', settings.animation.hide);\n $module.remove();\n if (settings.onHide) {\n settings.onHide();\n }\n },\n\n dismiss: function(event) {\n if(settings.storageMethod) {\n module.storage.set(settings.key, settings.value);\n }\n module.hide();\n event.stopImmediatePropagation();\n event.preventDefault();\n },\n\n should: {\n show: function() {\n if(settings.persist) {\n module.debug('Persistent nag is set, can show nag');\n return true;\n }\n if( module.storage.get(settings.key) != settings.value.toString() ) {\n module.debug('Stored value is not set, can show nag', module.storage.get(settings.key));\n return true;\n }\n module.debug('Stored value is set, cannot show nag', module.storage.get(settings.key));\n return false;\n }\n },\n\n get: {\n storageOptions: function() {\n var\n options = {}\n ;\n if(settings.expires) {\n options.expires = settings.expires;\n }\n if(settings.domain) {\n options.domain = settings.domain;\n }\n if(settings.path) {\n options.path = settings.path;\n }\n return options;\n }\n },\n\n clear: function() {\n module.storage.remove(settings.key);\n },\n\n storage: {\n set: function(key, value) {\n var\n options = module.get.storageOptions()\n ;\n if(settings.storageMethod == 'localstorage' && window.localStorage !== undefined) {\n window.localStorage.setItem(key, value);\n module.debug('Value stored using local storage', key, value);\n }\n else if(settings.storageMethod == 'sessionstorage' && window.sessionStorage !== undefined) {\n window.sessionStorage.setItem(key, value);\n module.debug('Value stored using session storage', key, value);\n }\n else if($.cookie !== undefined) {\n $.cookie(key, value, options);\n module.debug('Value stored using cookie', key, value, options);\n }\n else {\n module.error(error.noCookieStorage);\n return;\n }\n },\n get: function(key, value) {\n var\n storedValue\n ;\n if(settings.storageMethod == 'localstorage' && window.localStorage !== undefined) {\n storedValue = window.localStorage.getItem(key);\n }\n else if(settings.storageMethod == 'sessionstorage' && window.sessionStorage !== undefined) {\n storedValue = window.sessionStorage.getItem(key);\n }\n // get by cookie\n else if($.cookie !== undefined) {\n storedValue = $.cookie(key);\n }\n else {\n module.error(error.noCookieStorage);\n }\n if(storedValue == 'undefined' || storedValue == 'null' || storedValue === undefined || storedValue === null) {\n storedValue = undefined;\n }\n return storedValue;\n },\n remove: function(key) {\n var\n options = module.get.storageOptions()\n ;\n if(settings.storageMethod == 'localstorage' && window.localStorage !== undefined) {\n window.localStorage.removeItem(key);\n }\n else if(settings.storageMethod == 'sessionstorage' && window.sessionStorage !== undefined) {\n window.sessionStorage.removeItem(key);\n }\n // store by cookie\n else if($.cookie !== undefined) {\n $.removeCookie(key, options);\n }\n else {\n module.error(error.noStorage);\n }\n }\n },\n\n setting: function(name, value) {\n module.debug('Changing setting', name, value);\n if( $.isPlainObject(name) ) {\n $.extend(true, settings, name);\n }\n else if(value !== undefined) {\n if($.isPlainObject(settings[name])) {\n $.extend(true, settings[name], value);\n }\n else {\n settings[name] = value;\n }\n }\n else {\n return settings[name];\n }\n },\n internal: function(name, value) {\n if( $.isPlainObject(name) ) {\n $.extend(true, module, name);\n }\n else if(value !== undefined) {\n module[name] = value;\n }\n else {\n return module[name];\n }\n },\n debug: function() {\n if(!settings.silent && settings.debug) {\n if(settings.performance) {\n module.performance.log(arguments);\n }\n else {\n module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');\n module.debug.apply(console, arguments);\n }\n }\n },\n verbose: function() {\n if(!settings.silent && settings.verbose && settings.debug) {\n if(settings.performance) {\n module.performance.log(arguments);\n }\n else {\n module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');\n module.verbose.apply(console, arguments);\n }\n }\n },\n error: function() {\n if(!settings.silent) {\n module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');\n module.error.apply(console, arguments);\n }\n },\n performance: {\n log: function(message) {\n var\n currentTime,\n executionTime,\n previousTime\n ;\n if(settings.performance) {\n currentTime = new Date().getTime();\n previousTime = time || currentTime;\n executionTime = currentTime - previousTime;\n time = currentTime;\n performance.push({\n 'Name' : message[0],\n 'Arguments' : [].slice.call(message, 1) || '',\n 'Element' : element,\n 'Execution Time' : executionTime\n });\n }\n clearTimeout(module.performance.timer);\n module.performance.timer = setTimeout(module.performance.display, 500);\n },\n display: function() {\n var\n title = settings.name + ':',\n totalTime = 0\n ;\n time = false;\n clearTimeout(module.performance.timer);\n $.each(performance, function(index, data) {\n totalTime += data['Execution Time'];\n });\n title += ' ' + totalTime + 'ms';\n if(moduleSelector) {\n title += ' \\'' + moduleSelector + '\\'';\n }\n if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {\n console.groupCollapsed(title);\n if(console.table) {\n console.table(performance);\n }\n else {\n $.each(performance, function(index, data) {\n console.log(data['Name'] + ': ' + data['Execution Time']+'ms');\n });\n }\n console.groupEnd();\n }\n performance = [];\n }\n },\n invoke: function(query, passedArguments, context) {\n var\n object = instance,\n maxDepth,\n found,\n response\n ;\n passedArguments = passedArguments || queryArguments;\n context = element || context;\n if(typeof query == 'string' && object !== undefined) {\n query = query.split(/[\\. ]/);\n maxDepth = query.length - 1;\n $.each(query, function(depth, value) {\n var camelCaseValue = (depth != maxDepth)\n ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)\n : query\n ;\n if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {\n object = object[camelCaseValue];\n }\n else if( object[camelCaseValue] !== undefined ) {\n found = object[camelCaseValue];\n return false;\n }\n else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {\n object = object[value];\n }\n else if( object[value] !== undefined ) {\n found = object[value];\n return false;\n }\n else {\n module.error(error.method, query);\n return false;\n }\n });\n }\n if ( $.isFunction( found ) ) {\n response = found.apply(context, passedArguments);\n }\n else if(found !== undefined) {\n response = found;\n }\n if($.isArray(returnedValue)) {\n returnedValue.push(response);\n }\n else if(returnedValue !== undefined) {\n returnedValue = [returnedValue, response];\n }\n else if(response !== undefined) {\n returnedValue = response;\n }\n return found;\n }\n };\n\n if(methodInvoked) {\n if(instance === undefined) {\n module.initialize();\n }\n module.invoke(query);\n }\n else {\n if(instance !== undefined) {\n instance.invoke('destroy');\n }\n module.initialize();\n }\n })\n ;\n\n return (returnedValue !== undefined)\n ? returnedValue\n : this\n ;\n};\n\n$.fn.nag.settings = {\n\n name : 'Nag',\n\n silent : false,\n debug : false,\n verbose : false,\n performance : true,\n\n namespace : 'Nag',\n\n // allows cookie to be overridden\n persist : false,\n\n // set to zero to require manually dismissal, otherwise hides on its own\n displayTime : 0,\n\n animation : {\n show : 'slide',\n hide : 'slide'\n },\n\n context : false,\n detachable : false,\n\n expires : 30,\n domain : false,\n path : '/',\n\n // type of storage to use\n storageMethod : 'cookie',\n\n // value to store in dismissed localstorage/cookie\n key : 'nag',\n value : 'dismiss',\n\n error: {\n noCookieStorage : '$.cookie is not included. A storage solution is required.',\n noStorage : 'Neither $.cookie or store is defined. A storage solution is required for storing state',\n method : 'The method you called is not defined.'\n },\n\n className : {\n bottom : 'bottom',\n fixed : 'fixed'\n },\n\n selector : {\n close : '.close.icon'\n },\n\n speed : 500,\n easing : 'easeOutQuad',\n\n onHide: function() {}\n\n};\n\n// Adds easing\n$.extend( $.easing, {\n easeOutQuad: function (x, t, b, c, d) {\n return -c *(t/=d)*(t-2) + b;\n }\n});\n\n})( jQuery, window, document );\n\n/*!\n * # Semantic UI 2.2.11 - Popup\n * http://github.com/semantic-org/semantic-ui/\n *\n *\n * Released under the MIT license\n * http://opensource.org/licenses/MIT\n *\n */\n\n;(function ($, window, document, undefined) {\n\n\"use strict\";\n\nwindow = (typeof window != 'undefined' && window.Math == Math)\n ? window\n : (typeof self != 'undefined' && self.Math == Math)\n ? self\n : Function('return this')()\n;\n\n$.fn.popup = function(parameters) {\n var\n $allModules = $(this),\n $document = $(document),\n $window = $(window),\n $body = $('body'),\n\n moduleSelector = $allModules.selector || '',\n\n hasTouch = (true),\n time = new Date().getTime(),\n performance = [],\n\n query = arguments[0],\n methodInvoked = (typeof query == 'string'),\n queryArguments = [].slice.call(arguments, 1),\n\n returnedValue\n ;\n $allModules\n .each(function() {\n var\n settings = ( $.isPlainObject(parameters) )\n ? $.extend(true, {}, $.fn.popup.settings, parameters)\n : $.extend({}, $.fn.popup.settings),\n\n selector = settings.selector,\n className = settings.className,\n error = settings.error,\n metadata = settings.metadata,\n namespace = settings.namespace,\n\n eventNamespace = '.' + settings.namespace,\n moduleNamespace = 'module-' + namespace,\n\n $module = $(this),\n $context = $(settings.context),\n $scrollContext = $(settings.scrollContext),\n $boundary = $(settings.boundary),\n $target = (settings.target)\n ? $(settings.target)\n : $module,\n\n $popup,\n $offsetParent,\n\n searchDepth = 0,\n triedPositions = false,\n openedWithTouch = false,\n\n element = this,\n instance = $module.data(moduleNamespace),\n\n documentObserver,\n elementNamespace,\n id,\n module\n ;\n\n module = {\n\n // binds events\n initialize: function() {\n module.debug('Initializing', $module);\n module.createID();\n module.bind.events();\n if(!module.exists() && settings.preserve) {\n module.create();\n }\n if(settings.observeChanges) {\n module.observeChanges();\n }\n module.instantiate();\n },\n\n instantiate: function() {\n module.verbose('Storing instance', module);\n instance = module;\n $module\n .data(moduleNamespace, instance)\n ;\n },\n\n observeChanges: function() {\n if('MutationObserver' in window) {\n documentObserver = new MutationObserver(module.event.documentChanged);\n documentObserver.observe(document, {\n childList : true,\n subtree : true\n });\n module.debug('Setting up mutation observer', documentObserver);\n }\n },\n\n refresh: function() {\n if(settings.popup) {\n $popup = $(settings.popup).eq(0);\n }\n else {\n if(settings.inline) {\n $popup = $target.nextAll(selector.popup).eq(0);\n settings.popup = $popup;\n }\n }\n if(settings.popup) {\n $popup.addClass(className.loading);\n $offsetParent = module.get.offsetParent($target);\n $popup.removeClass(className.loading);\n if(settings.movePopup && module.has.popup() && module.get.offsetParent($popup)[0] !== $offsetParent[0]) {\n module.debug('Moving popup to the same offset parent as target');\n $popup\n .detach()\n .appendTo($offsetParent)\n ;\n }\n }\n else {\n $offsetParent = (settings.inline)\n ? module.get.offsetParent($target)\n : module.has.popup()\n ? module.get.offsetParent($target)\n : $body\n ;\n }\n if( $offsetParent.is('html') && $offsetParent[0] !== $body[0] ) {\n module.debug('Setting page as offset parent');\n $offsetParent = $body;\n }\n if( module.get.variation() ) {\n module.set.variation();\n }\n },\n\n reposition: function() {\n module.refresh();\n module.set.position();\n },\n\n destroy: function() {\n module.debug('Destroying previous module');\n if(documentObserver) {\n documentObserver.disconnect();\n }\n // remove element only if was created dynamically\n if($popup && !settings.preserve) {\n module.removePopup();\n }\n // clear all timeouts\n clearTimeout(module.hideTimer);\n clearTimeout(module.showTimer);\n // remove events\n module.unbind.close();\n module.unbind.events();\n $module\n .removeData(moduleNamespace)\n ;\n },\n\n event: {\n start: function(event) {\n var\n delay = ($.isPlainObject(settings.delay))\n ? settings.delay.show\n : settings.delay\n ;\n clearTimeout(module.hideTimer);\n if(!openedWithTouch) {\n module.showTimer = setTimeout(module.show, delay);\n }\n },\n end: function() {\n var\n delay = ($.isPlainObject(settings.delay))\n ? settings.delay.hide\n : settings.delay\n ;\n clearTimeout(module.showTimer);\n module.hideTimer = setTimeout(module.hide, delay);\n },\n touchstart: function(event) {\n openedWithTouch = true;\n module.show();\n },\n resize: function() {\n if( module.is.visible() ) {\n module.set.position();\n }\n },\n documentChanged: function(mutations) {\n [].forEach.call(mutations, function(mutation) {\n if(mutation.removedNodes) {\n [].forEach.call(mutation.removedNodes, function(node) {\n if(node == element || $(node).find(element).length > 0) {\n module.debug('Element removed from DOM, tearing down events');\n module.destroy();\n }\n });\n }\n });\n },\n hideGracefully: function(event) {\n var\n $target = $(event.target),\n isInDOM = $.contains(document.documentElement, event.target),\n inPopup = ($target.closest(selector.popup).length > 0)\n ;\n // don't close on clicks inside popup\n if(event && !inPopup && isInDOM) {\n module.debug('Click occurred outside popup hiding popup');\n module.hide();\n }\n else {\n module.debug('Click was inside popup, keeping popup open');\n }\n }\n },\n\n // generates popup html from metadata\n create: function() {\n var\n html = module.get.html(),\n title = module.get.title(),\n content = module.get.content()\n ;\n\n if(html || content || title) {\n module.debug('Creating pop-up html');\n if(!html) {\n html = settings.templates.popup({\n title : title,\n content : content\n });\n }\n $popup = $('<div/>')\n .addClass(className.popup)\n .data(metadata.activator, $module)\n .html(html)\n ;\n if(settings.inline) {\n module.verbose('Inserting popup element inline', $popup);\n $popup\n .insertAfter($module)\n ;\n }\n else {\n module.verbose('Appending popup element to body', $popup);\n $popup\n .appendTo( $context )\n ;\n }\n module.refresh();\n module.set.variation();\n\n if(settings.hoverable) {\n module.bind.popup();\n }\n settings.onCreate.call($popup, element);\n }\n else if($target.next(selector.popup).length !== 0) {\n module.verbose('Pre-existing popup found');\n settings.inline = true;\n settings.popup = $target.next(selector.popup).data(metadata.activator, $module);\n module.refresh();\n if(settings.hoverable) {\n module.bind.popup();\n }\n }\n else if(settings.popup) {\n $(settings.popup).data(metadata.activator, $module);\n module.verbose('Used popup specified in settings');\n module.refresh();\n if(settings.hoverable) {\n module.bind.popup();\n }\n }\n else {\n module.debug('No content specified skipping display', element);\n }\n },\n\n createID: function() {\n id = (Math.random().toString(16) + '000000000').substr(2, 8);\n elementNamespace = '.' + id;\n module.verbose('Creating unique id for element', id);\n },\n\n // determines popup state\n toggle: function() {\n module.debug('Toggling pop-up');\n if( module.is.hidden() ) {\n module.debug('Popup is hidden, showing pop-up');\n module.unbind.close();\n module.show();\n }\n else {\n module.debug('Popup is visible, hiding pop-up');\n module.hide();\n }\n },\n\n show: function(callback) {\n callback = callback || function(){};\n module.debug('Showing pop-up', settings.transition);\n if(module.is.hidden() && !( module.is.active() && module.is.dropdown()) ) {\n if( !module.exists() ) {\n module.create();\n }\n if(settings.onShow.call($popup, element) === false) {\n module.debug('onShow callback returned false, cancelling popup animation');\n return;\n }\n else if(!settings.preserve && !settings.popup) {\n module.refresh();\n }\n if( $popup && module.set.position() ) {\n module.save.conditions();\n if(settings.exclusive) {\n module.hideAll();\n }\n module.animate.show(callback);\n }\n }\n },\n\n\n hide: function(callback) {\n callback = callback || function(){};\n if( module.is.visible() || module.is.animating() ) {\n if(settings.onHide.call($popup, element) === false) {\n module.debug('onHide callback returned false, cancelling popup animation');\n return;\n }\n module.remove.visible();\n module.unbind.close();\n module.restore.conditions();\n module.animate.hide(callback);\n }\n },\n\n hideAll: function() {\n $(selector.popup)\n .filter('.' + className.popupVisible)\n .each(function() {\n $(this)\n .data(metadata.activator)\n .popup('hide')\n ;\n })\n ;\n },\n exists: function() {\n if(!$popup) {\n return false;\n }\n if(settings.inline || settings.popup) {\n return ( module.has.popup() );\n }\n else {\n return ( $popup.closest($context).length >= 1 )\n ? true\n : false\n ;\n }\n },\n\n removePopup: function() {\n if( module.has.popup() && !settings.popup) {\n module.debug('Removing popup', $popup);\n $popup.remove();\n $popup = undefined;\n settings.onRemove.call($popup, element);\n }\n },\n\n save: {\n conditions: function() {\n module.cache = {\n title: $module.attr('title')\n };\n if (module.cache.title) {\n $module.removeAttr('title');\n }\n module.verbose('Saving original attributes', module.cache.title);\n }\n },\n restore: {\n conditions: function() {\n if(module.cache && module.cache.title) {\n $module.attr('title', module.cache.title);\n module.verbose('Restoring original attributes', module.cache.title);\n }\n return true;\n }\n },\n supports: {\n svg: function() {\n return (typeof SVGGraphicsElement === 'undefined');\n }\n },\n animate: {\n show: function(callback) {\n callback = $.isFunction(callback) ? callback : function(){};\n if(settings.transition && $.fn.transition !== undefined && $module.transition('is supported')) {\n module.set.visible();\n $popup\n .transition({\n animation : settings.transition + ' in',\n queue : false,\n debug : settings.debug,\n verbose : settings.verbose,\n duration : settings.duration,\n onComplete : function() {\n module.bind.close();\n callback.call($popup, element);\n settings.onVisible.call($popup, element);\n }\n })\n ;\n }\n else {\n module.error(error.noTransition);\n }\n },\n hide: function(callback) {\n callback = $.isFunction(callback) ? callback : function(){};\n module.debug('Hiding pop-up');\n if(settings.onHide.call($popup, element) === false) {\n module.debug('onHide callback returned false, cancelling popup animation');\n return;\n }\n if(settings.transition && $.fn.transition !== undefined && $module.transition('is supported')) {\n $popup\n .transition({\n animation : settings.transition + ' out',\n queue : false,\n duration : settings.duration,\n debug : settings.debug,\n verbose : settings.verbose,\n onComplete : function() {\n module.reset();\n callback.call($popup, element);\n settings.onHidden.call($popup, element);\n }\n })\n ;\n }\n else {\n module.error(error.noTransition);\n }\n }\n },\n\n change: {\n content: function(html) {\n $popup.html(html);\n }\n },\n\n get: {\n html: function() {\n $module.removeData(metadata.html);\n return $module.data(metadata.html) || settings.html;\n },\n title: function() {\n $module.removeData(metadata.title);\n return $module.data(metadata.title) || settings.title;\n },\n content: function() {\n $module.removeData(metadata.content);\n return $module.data(metadata.content) || $module.attr('title') || settings.content;\n },\n variation: function() {\n $module.removeData(metadata.variation);\n return $module.data(metadata.variation) || settings.variation;\n },\n popup: function() {\n return $popup;\n },\n popupOffset: function() {\n return $popup.offset();\n },\n calculations: function() {\n var\n targetElement = $target[0],\n isWindow = ($boundary[0] == window),\n targetPosition = (settings.inline || (settings.popup && settings.movePopup))\n ? $target.position()\n : $target.offset(),\n screenPosition = (isWindow)\n ? { top: 0, left: 0 }\n : $boundary.offset(),\n calculations = {},\n scroll = (isWindow)\n ? { top: $window.scrollTop(), left: $window.scrollLeft() }\n : { top: 0, left: 0},\n screen\n ;\n calculations = {\n // element which is launching popup\n target : {\n element : $target[0],\n width : $target.outerWidth(),\n height : $target.outerHeight(),\n top : targetPosition.top,\n left : targetPosition.left,\n margin : {}\n },\n // popup itself\n popup : {\n width : $popup.outerWidth(),\n height : $popup.outerHeight()\n },\n // offset container (or 3d context)\n parent : {\n width : $offsetParent.outerWidth(),\n height : $offsetParent.outerHeight()\n },\n // screen boundaries\n screen : {\n top : screenPosition.top,\n left : screenPosition.left,\n scroll: {\n top : scroll.top,\n left : scroll.left\n },\n width : $boundary.width(),\n height : $boundary.height()\n }\n };\n\n // add in container calcs if fluid\n if( settings.setFluidWidth && module.is.fluid() ) {\n calculations.container = {\n width: $popup.parent().outerWidth()\n };\n calculations.popup.width = calculations.container.width;\n }\n\n // add in margins if inline\n calculations.target.margin.top = (settings.inline)\n ? parseInt( window.getComputedStyle(targetElement).getPropertyValue('margin-top'), 10)\n : 0\n ;\n calculations.target.margin.left = (settings.inline)\n ? module.is.rtl()\n ? parseInt( window.getComputedStyle(targetElement).getPropertyValue('margin-right'), 10)\n : parseInt( window.getComputedStyle(targetElement).getPropertyValue('margin-left'), 10)\n : 0\n ;\n // calculate screen boundaries\n screen = calculations.screen;\n calculations.boundary = {\n top : screen.top + screen.scroll.top,\n bottom : screen.top + screen.scroll.top + screen.height,\n left : screen.left + screen.scroll.left,\n right : screen.left + screen.scroll.left + screen.width\n };\n return calculations;\n },\n id: function() {\n return id;\n },\n startEvent: function() {\n if(settings.on == 'hover') {\n return 'mouseenter';\n }\n else if(settings.on == 'focus') {\n return 'focus';\n }\n return false;\n },\n scrollEvent: function() {\n return 'scroll';\n },\n endEvent: function() {\n if(settings.on == 'hover') {\n return 'mouseleave';\n }\n else if(settings.on == 'focus') {\n return 'blur';\n }\n return false;\n },\n distanceFromBoundary: function(offset, calculations) {\n var\n distanceFromBoundary = {},\n popup,\n boundary\n ;\n calculations = calculations || module.get.calculations();\n\n // shorthand\n popup = calculations.popup;\n boundary = calculations.boundary;\n\n if(offset) {\n distanceFromBoundary = {\n top : (offset.top - boundary.top),\n left : (offset.left - boundary.left),\n right : (boundary.right - (offset.left + popup.width) ),\n bottom : (boundary.bottom - (offset.top + popup.height) )\n };\n module.verbose('Distance from boundaries determined', offset, distanceFromBoundary);\n }\n return distanceFromBoundary;\n },\n offsetParent: function($target) {\n var\n element = ($target !== undefined)\n ? $target[0]\n : $module[0],\n parentNode = element.parentNode,\n $node = $(parentNode)\n ;\n if(parentNode) {\n var\n is2D = ($node.css('transform') === 'none'),\n isStatic = ($node.css('position') === 'static'),\n isHTML = $node.is('html')\n ;\n while(parentNode && !isHTML && isStatic && is2D) {\n parentNode = parentNode.parentNode;\n $node = $(parentNode);\n is2D = ($node.css('transform') === 'none');\n isStatic = ($node.css('position') === 'static');\n isHTML = $node.is('html');\n }\n }\n return ($node && $node.length > 0)\n ? $node\n : $()\n ;\n },\n positions: function() {\n return {\n 'top left' : false,\n 'top center' : false,\n 'top right' : false,\n 'bottom left' : false,\n 'bottom center' : false,\n 'bottom right' : false,\n 'left center' : false,\n 'right center' : false\n };\n },\n nextPosition: function(position) {\n var\n positions = position.split(' '),\n verticalPosition = positions[0],\n horizontalPosition = positions[1],\n opposite = {\n top : 'bottom',\n bottom : 'top',\n left : 'right',\n right : 'left'\n },\n adjacent = {\n left : 'center',\n center : 'right',\n right : 'left'\n },\n backup = {\n 'top left' : 'top center',\n 'top center' : 'top right',\n 'top right' : 'right center',\n 'right center' : 'bottom right',\n 'bottom right' : 'bottom center',\n 'bottom center' : 'bottom left',\n 'bottom left' : 'left center',\n 'left center' : 'top left'\n },\n adjacentsAvailable = (verticalPosition == 'top' || verticalPosition == 'bottom'),\n oppositeTried = false,\n adjacentTried = false,\n nextPosition = false\n ;\n if(!triedPositions) {\n module.verbose('All available positions available');\n triedPositions = module.get.positions();\n }\n\n module.debug('Recording last position tried', position);\n triedPositions[position] = true;\n\n if(settings.prefer === 'opposite') {\n nextPosition = [opposite[verticalPosition], horizontalPosition];\n nextPosition = nextPosition.join(' ');\n oppositeTried = (triedPositions[nextPosition] === true);\n module.debug('Trying opposite strategy', nextPosition);\n }\n if((settings.prefer === 'adjacent') && adjacentsAvailable ) {\n nextPosition = [verticalPosition, adjacent[horizontalPosition]];\n nextPosition = nextPosition.join(' ');\n adjacentTried = (triedPositions[nextPosition] === true);\n module.debug('Trying adjacent strategy', nextPosition);\n }\n if(adjacentTried || oppositeTried) {\n module.debug('Using backup position', nextPosition);\n nextPosition = backup[position];\n }\n return nextPosition;\n }\n },\n\n set: {\n position: function(position, calculations) {\n\n // exit conditions\n if($target.length === 0 || $popup.length === 0) {\n module.error(error.notFound);\n return;\n }\n var\n offset,\n distanceAway,\n target,\n popup,\n parent,\n positioning,\n popupOffset,\n distanceFromBoundary\n ;\n\n calculations = calculations || module.get.calculations();\n position = position || $module.data(metadata.position) || settings.position;\n\n offset = $module.data(metadata.offset) || settings.offset;\n distanceAway = settings.distanceAway;\n\n // shorthand\n target = calculations.target;\n popup = calculations.popup;\n parent = calculations.parent;\n\n if(target.width === 0 && target.height === 0 && !module.is.svg(target.element)) {\n module.debug('Popup target is hidden, no action taken');\n return false;\n }\n\n if(settings.inline) {\n module.debug('Adding margin to calculation', target.margin);\n if(position == 'left center' || position == 'right center') {\n offset += target.margin.top;\n distanceAway += -target.margin.left;\n }\n else if (position == 'top left' || position == 'top center' || position == 'top right') {\n offset += target.margin.left;\n distanceAway -= target.margin.top;\n }\n else {\n offset += target.margin.left;\n distanceAway += target.margin.top;\n }\n }\n\n module.debug('Determining popup position from calculations', position, calculations);\n\n if (module.is.rtl()) {\n position = position.replace(/left|right/g, function (match) {\n return (match == 'left')\n ? 'right'\n : 'left'\n ;\n });\n module.debug('RTL: Popup position updated', position);\n }\n\n // if last attempt use specified last resort position\n if(searchDepth == settings.maxSearchDepth && typeof settings.lastResort === 'string') {\n position = settings.lastResort;\n }\n\n switch (position) {\n case 'top left':\n positioning = {\n top : 'auto',\n bottom : parent.height - target.top + distanceAway,\n left : target.left + offset,\n right : 'auto'\n };\n break;\n case 'top center':\n positioning = {\n bottom : parent.height - target.top + distanceAway,\n left : target.left + (target.width / 2) - (popup.width / 2) + offset,\n top : 'auto',\n right : 'auto'\n };\n break;\n case 'top right':\n positioning = {\n bottom : parent.height - target.top + distanceAway,\n right : parent.width - target.left - target.width - offset,\n top : 'auto',\n left : 'auto'\n };\n break;\n case 'left center':\n positioning = {\n top : target.top + (target.height / 2) - (popup.height / 2) + offset,\n right : parent.width - target.left + distanceAway,\n left : 'auto',\n bottom : 'auto'\n };\n break;\n case 'right center':\n positioning = {\n top : target.top + (target.height / 2) - (popup.height / 2) + offset,\n left : target.left + target.width + distanceAway,\n bottom : 'auto',\n right : 'auto'\n };\n break;\n case 'bottom left':\n positioning = {\n top : target.top + target.height + distanceAway,\n left : target.left + offset,\n bottom : 'auto',\n right : 'auto'\n };\n break;\n case 'bottom center':\n positioning = {\n top : target.top + target.height + distanceAway,\n left : target.left + (target.width / 2) - (popup.width / 2) + offset,\n bottom : 'auto',\n right : 'auto'\n };\n break;\n case 'bottom right':\n positioning = {\n top : target.top + target.height + distanceAway,\n right : parent.width - target.left - target.width - offset,\n left : 'auto',\n bottom : 'auto'\n };\n break;\n }\n if(positioning === undefined) {\n module.error(error.invalidPosition, position);\n }\n\n module.debug('Calculated popup positioning values', positioning);\n\n // tentatively place on stage\n $popup\n .css(positioning)\n .removeClass(className.position)\n .addClass(position)\n .addClass(className.loading)\n ;\n\n popupOffset = module.get.popupOffset();\n\n // see if any boundaries are surpassed with this tentative position\n distanceFromBoundary = module.get.distanceFromBoundary(popupOffset, calculations);\n\n if( module.is.offstage(distanceFromBoundary, position) ) {\n module.debug('Position is outside viewport', position);\n if(searchDepth < settings.maxSearchDepth) {\n searchDepth++;\n position = module.get.nextPosition(position);\n module.debug('Trying new position', position);\n return ($popup)\n ? module.set.position(position, calculations)\n : false\n ;\n }\n else {\n if(settings.lastResort) {\n module.debug('No position found, showing with last position');\n }\n else {\n module.debug('Popup could not find a position to display', $popup);\n module.error(error.cannotPlace, element);\n module.remove.attempts();\n module.remove.loading();\n module.reset();\n settings.onUnplaceable.call($popup, element);\n return false;\n }\n }\n }\n module.debug('Position is on stage', position);\n module.remove.attempts();\n module.remove.loading();\n if( settings.setFluidWidth && module.is.fluid() ) {\n module.set.fluidWidth(calculations);\n }\n return true;\n },\n\n fluidWidth: function(calculations) {\n calculations = calculations || module.get.calculations();\n module.debug('Automatically setting element width to parent width', calculations.parent.width);\n $popup.css('width', calculations.container.width);\n },\n\n variation: function(variation) {\n variation = variation || module.get.variation();\n if(variation && module.has.popup() ) {\n module.verbose('Adding variation to popup', variation);\n $popup.addClass(variation);\n }\n },\n\n visible: function() {\n $module.addClass(className.visible);\n }\n },\n\n remove: {\n loading: function() {\n $popup.removeClass(className.loading);\n },\n variation: function(variation) {\n variation = variation || module.get.variation();\n if(variation) {\n module.verbose('Removing variation', variation);\n $popup.removeClass(variation);\n }\n },\n visible: function() {\n $module.removeClass(className.visible);\n },\n attempts: function() {\n module.verbose('Resetting all searched positions');\n searchDepth = 0;\n triedPositions = false;\n }\n },\n\n bind: {\n events: function() {\n module.debug('Binding popup events to module');\n if(settings.on == 'click') {\n $module\n .on('click' + eventNamespace, module.toggle)\n ;\n }\n if(settings.on == 'hover' && hasTouch) {\n $module\n .on('touchstart' + eventNamespace, module.event.touchstart)\n ;\n }\n if( module.get.startEvent() ) {\n $module\n .on(module.get.startEvent() + eventNamespace, module.event.start)\n .on(module.get.endEvent() + eventNamespace, module.event.end)\n ;\n }\n if(settings.target) {\n module.debug('Target set to element', $target);\n }\n $window.on('resize' + elementNamespace, module.event.resize);\n },\n popup: function() {\n module.verbose('Allowing hover events on popup to prevent closing');\n if( $popup && module.has.popup() ) {\n $popup\n .on('mouseenter' + eventNamespace, module.event.start)\n .on('mouseleave' + eventNamespace, module.event.end)\n ;\n }\n },\n close: function() {\n if(settings.hideOnScroll === true || (settings.hideOnScroll == 'auto' && settings.on != 'click')) {\n module.bind.closeOnScroll();\n }\n if(settings.on == 'hover' && openedWithTouch) {\n module.bind.touchClose();\n }\n if(settings.on == 'click' && settings.closable) {\n module.bind.clickaway();\n }\n },\n closeOnScroll: function() {\n module.verbose('Binding scroll close event to document');\n $scrollContext\n .one(module.get.scrollEvent() + elementNamespace, module.event.hideGracefully)\n ;\n },\n touchClose: function() {\n module.verbose('Binding popup touchclose event to document');\n $document\n .on('touchstart' + elementNamespace, function(event) {\n module.verbose('Touched away from popup');\n module.event.hideGracefully.call(element, event);\n })\n ;\n },\n clickaway: function() {\n module.verbose('Binding popup close event to document');\n $document\n .on('click' + elementNamespace, function(event) {\n module.verbose('Clicked away from popup');\n module.event.hideGracefully.call(element, event);\n })\n ;\n }\n },\n\n unbind: {\n events: function() {\n $window\n .off(elementNamespace)\n ;\n $module\n .off(eventNamespace)\n ;\n },\n close: function() {\n $document\n .off(elementNamespace)\n ;\n $scrollContext\n .off(elementNamespace)\n ;\n },\n },\n\n has: {\n popup: function() {\n return ($popup && $popup.length > 0);\n }\n },\n\n is: {\n offstage: function(distanceFromBoundary, position) {\n var\n offstage = []\n ;\n // return boundaries that have been surpassed\n $.each(distanceFromBoundary, function(direction, distance) {\n if(distance < -settings.jitter) {\n module.debug('Position exceeds allowable distance from edge', direction, distance, position);\n offstage.push(direction);\n }\n });\n if(offstage.length > 0) {\n return true;\n }\n else {\n return false;\n }\n },\n svg: function(element) {\n return module.supports.svg() && (element instanceof SVGGraphicsElement);\n },\n active: function() {\n return $module.hasClass(className.active);\n },\n animating: function() {\n return ($popup !== undefined && $popup.hasClass(className.animating) );\n },\n fluid: function() {\n return ($popup !== undefined && $popup.hasClass(className.fluid));\n },\n visible: function() {\n return ($popup !== undefined && $popup.hasClass(className.popupVisible));\n },\n dropdown: function() {\n return $module.hasClass(className.dropdown);\n },\n hidden: function() {\n return !module.is.visible();\n },\n rtl: function () {\n return $module.css('direction') == 'rtl';\n }\n },\n\n reset: function() {\n module.remove.visible();\n if(settings.preserve) {\n if($.fn.transition !== undefined) {\n $popup\n .transition('remove transition')\n ;\n }\n }\n else {\n module.removePopup();\n }\n },\n\n setting: function(name, value) {\n if( $.isPlainObject(name) ) {\n $.extend(true, settings, name);\n }\n else if(value !== undefined) {\n settings[name] = value;\n }\n else {\n return settings[name];\n }\n },\n internal: function(name, value) {\n if( $.isPlainObject(name) ) {\n $.extend(true, module, name);\n }\n else if(value !== undefined) {\n module[name] = value;\n }\n else {\n return module[name];\n }\n },\n debug: function() {\n if(!settings.silent && settings.debug) {\n if(settings.performance) {\n module.performance.log(arguments);\n }\n else {\n module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');\n module.debug.apply(console, arguments);\n }\n }\n },\n verbose: function() {\n if(!settings.silent && settings.verbose && settings.debug) {\n if(settings.performance) {\n module.performance.log(arguments);\n }\n else {\n module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');\n module.verbose.apply(console, arguments);\n }\n }\n },\n error: function() {\n if(!settings.silent) {\n module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');\n module.error.apply(console, arguments);\n }\n },\n performance: {\n log: function(message) {\n var\n currentTime,\n executionTime,\n previousTime\n ;\n if(settings.performance) {\n currentTime = new Date().getTime();\n previousTime = time || currentTime;\n executionTime = currentTime - previousTime;\n time = currentTime;\n performance.push({\n 'Name' : message[0],\n 'Arguments' : [].slice.call(message, 1) || '',\n 'Element' : element,\n 'Execution Time' : executionTime\n });\n }\n clearTimeout(module.performance.timer);\n module.performance.timer = setTimeout(module.performance.display, 500);\n },\n display: function() {\n var\n title = settings.name + ':',\n totalTime = 0\n ;\n time = false;\n clearTimeout(module.performance.timer);\n $.each(performance, function(index, data) {\n totalTime += data['Execution Time'];\n });\n title += ' ' + totalTime + 'ms';\n if(moduleSelector) {\n title += ' \\'' + moduleSelector + '\\'';\n }\n if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {\n console.groupCollapsed(title);\n if(console.table) {\n console.table(performance);\n }\n else {\n $.each(performance, function(index, data) {\n console.log(data['Name'] + ': ' + data['Execution Time']+'ms');\n });\n }\n console.groupEnd();\n }\n performance = [];\n }\n },\n invoke: function(query, passedArguments, context) {\n var\n object = instance,\n maxDepth,\n found,\n response\n ;\n passedArguments = passedArguments || queryArguments;\n context = element || context;\n if(typeof query == 'string' && object !== undefined) {\n query = query.split(/[\\. ]/);\n maxDepth = query.length - 1;\n $.each(query, function(depth, value) {\n var camelCaseValue = (depth != maxDepth)\n ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)\n : query\n ;\n if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {\n object = object[camelCaseValue];\n }\n else if( object[camelCaseValue] !== undefined ) {\n found = object[camelCaseValue];\n return false;\n }\n else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {\n object = object[value];\n }\n else if( object[value] !== undefined ) {\n found = object[value];\n return false;\n }\n else {\n return false;\n }\n });\n }\n if ( $.isFunction( found ) ) {\n response = found.apply(context, passedArguments);\n }\n else if(found !== undefined) {\n response = found;\n }\n if($.isArray(returnedValue)) {\n returnedValue.push(response);\n }\n else if(returnedValue !== undefined) {\n returnedValue = [returnedValue, response];\n }\n else if(response !== undefined) {\n returnedValue = response;\n }\n return found;\n }\n };\n\n if(methodInvoked) {\n if(instance === undefined) {\n module.initialize();\n }\n module.invoke(query);\n }\n else {\n if(instance !== undefined) {\n instance.invoke('destroy');\n }\n module.initialize();\n }\n })\n ;\n\n return (returnedValue !== undefined)\n ? returnedValue\n : this\n ;\n};\n\n$.fn.popup.settings = {\n\n name : 'Popup',\n\n // module settings\n silent : false,\n debug : false,\n verbose : false,\n performance : true,\n namespace : 'popup',\n\n // whether it should use dom mutation observers\n observeChanges : true,\n\n // callback only when element added to dom\n onCreate : function(){},\n\n // callback before element removed from dom\n onRemove : function(){},\n\n // callback before show animation\n onShow : function(){},\n\n // callback after show animation\n onVisible : function(){},\n\n // callback before hide animation\n onHide : function(){},\n\n // callback when popup cannot be positioned in visible screen\n onUnplaceable : function(){},\n\n // callback after hide animation\n onHidden : function(){},\n\n // when to show popup\n on : 'hover',\n\n // element to use to determine if popup is out of boundary\n boundary : window,\n\n // whether to add touchstart events when using hover\n addTouchEvents : true,\n\n // default position relative to element\n position : 'top left',\n\n // name of variation to use\n variation : '',\n\n // whether popup should be moved to context\n movePopup : true,\n\n // element which popup should be relative to\n target : false,\n\n // jq selector or element that should be used as popup\n popup : false,\n\n // popup should remain inline next to activator\n inline : false,\n\n // popup should be removed from page on hide\n preserve : false,\n\n // popup should not close when being hovered on\n hoverable : false,\n\n // explicitly set content\n content : false,\n\n // explicitly set html\n html : false,\n\n // explicitly set title\n title : false,\n\n // whether automatically close on clickaway when on click\n closable : true,\n\n // automatically hide on scroll\n hideOnScroll : 'auto',\n\n // hide other popups on show\n exclusive : false,\n\n // context to attach popups\n context : 'body',\n\n // context for binding scroll events\n scrollContext : window,\n\n // position to prefer when calculating new position\n prefer : 'opposite',\n\n // specify position to appear even if it doesn't fit\n lastResort : false,\n\n // delay used to prevent accidental refiring of animations due to user error\n delay : {\n show : 50,\n hide : 70\n },\n\n // whether fluid variation should assign width explicitly\n setFluidWidth : true,\n\n // transition settings\n duration : 200,\n transition : 'scale',\n\n // distance away from activating element in px\n distanceAway : 0,\n\n // number of pixels an element is allowed to be \"offstage\" for a position to be chosen (allows for rounding)\n jitter : 2,\n\n // offset on aligning axis from calculated position\n offset : 0,\n\n // maximum times to look for a position before failing (9 positions total)\n maxSearchDepth : 15,\n\n error: {\n invalidPosition : 'The position you specified is not a valid position',\n cannotPlace : 'Popup does not fit within the boundaries of the viewport',\n method : 'The method you called is not defined.',\n noTransition : 'This module requires ui transitions <https://github.com/Semantic-Org/UI-Transition>',\n notFound : 'The target or popup you specified does not exist on the page'\n },\n\n metadata: {\n activator : 'activator',\n content : 'content',\n html : 'html',\n offset : 'offset',\n position : 'position',\n title : 'title',\n variation : 'variation'\n },\n\n className : {\n active : 'active',\n animating : 'animating',\n dropdown : 'dropdown',\n fluid : 'fluid',\n loading : 'loading',\n popup : 'ui popup',\n position : 'top left center bottom right',\n visible : 'visible',\n popupVisible : 'visible'\n },\n\n selector : {\n popup : '.ui.popup'\n },\n\n templates: {\n escape: function(string) {\n var\n badChars = /[&<>\"'`]/g,\n shouldEscape = /[&<>\"'`]/,\n escape = {\n \"&\": \"&\",\n \"<\": \"<\",\n \">\": \">\",\n '\"': \""\",\n \"'\": \"'\",\n \"`\": \"`\"\n },\n escapedChar = function(chr) {\n return escape[chr];\n }\n ;\n if(shouldEscape.test(string)) {\n return string.replace(badChars, escapedChar);\n }\n return string;\n },\n popup: function(text) {\n var\n html = '',\n escape = $.fn.popup.settings.templates.escape\n ;\n if(typeof text !== undefined) {\n if(typeof text.title !== undefined && text.title) {\n text.title = escape(text.title);\n html += '<div class=\"header\">' + text.title + '</div>';\n }\n if(typeof text.content !== undefined && text.content) {\n text.content = escape(text.content);\n html += '<div class=\"content\">' + text.content + '</div>';\n }\n }\n return html;\n }\n }\n\n};\n\n\n})( jQuery, window, document );\n\n/*!\n * # Semantic UI 2.2.11 - Progress\n * http://github.com/semantic-org/semantic-ui/\n *\n *\n * Released under the MIT license\n * http://opensource.org/licenses/MIT\n *\n */\n\n;(function ($, window, document, undefined) {\n\n\"use strict\";\n\nwindow = (typeof window != 'undefined' && window.Math == Math)\n ? window\n : (typeof self != 'undefined' && self.Math == Math)\n ? self\n : Function('return this')()\n;\n\nvar\n global = (typeof window != 'undefined' && window.Math == Math)\n ? window\n : (typeof self != 'undefined' && self.Math == Math)\n ? self\n : Function('return this')()\n;\n\n$.fn.progress = function(parameters) {\n var\n $allModules = $(this),\n\n moduleSelector = $allModules.selector || '',\n\n time = new Date().getTime(),\n performance = [],\n\n query = arguments[0],\n methodInvoked = (typeof query == 'string'),\n queryArguments = [].slice.call(arguments, 1),\n\n returnedValue\n ;\n\n $allModules\n .each(function() {\n var\n settings = ( $.isPlainObject(parameters) )\n ? $.extend(true, {}, $.fn.progress.settings, parameters)\n : $.extend({}, $.fn.progress.settings),\n\n className = settings.className,\n metadata = settings.metadata,\n namespace = settings.namespace,\n selector = settings.selector,\n error = settings.error,\n\n eventNamespace = '.' + namespace,\n moduleNamespace = 'module-' + namespace,\n\n $module = $(this),\n $bar = $(this).find(selector.bar),\n $progress = $(this).find(selector.progress),\n $label = $(this).find(selector.label),\n\n element = this,\n instance = $module.data(moduleNamespace),\n\n animating = false,\n transitionEnd,\n module\n ;\n\n module = {\n\n initialize: function() {\n module.debug('Initializing progress bar', settings);\n\n module.set.duration();\n module.set.transitionEvent();\n\n module.read.metadata();\n module.read.settings();\n\n module.instantiate();\n },\n\n instantiate: function() {\n module.verbose('Storing instance of progress', module);\n instance = module;\n $module\n .data(moduleNamespace, module)\n ;\n },\n destroy: function() {\n module.verbose('Destroying previous progress for', $module);\n clearInterval(instance.interval);\n module.remove.state();\n $module.removeData(moduleNamespace);\n instance = undefined;\n },\n\n reset: function() {\n module.remove.nextValue();\n module.update.progress(0);\n },\n\n complete: function() {\n if(module.percent === undefined || module.percent < 100) {\n module.remove.progressPoll();\n module.set.percent(100);\n }\n },\n\n read: {\n metadata: function() {\n var\n data = {\n percent : $module.data(metadata.percent),\n total : $module.data(metadata.total),\n value : $module.data(metadata.value)\n }\n ;\n if(data.percent) {\n module.debug('Current percent value set from metadata', data.percent);\n module.set.percent(data.percent);\n }\n if(data.total) {\n module.debug('Total value set from metadata', data.total);\n module.set.total(data.total);\n }\n if(data.value) {\n module.debug('Current value set from metadata', data.value);\n module.set.value(data.value);\n module.set.progress(data.value);\n }\n },\n settings: function() {\n if(settings.total !== false) {\n module.debug('Current total set in settings', settings.total);\n module.set.total(settings.total);\n }\n if(settings.value !== false) {\n module.debug('Current value set in settings', settings.value);\n module.set.value(settings.value);\n module.set.progress(module.value);\n }\n if(settings.percent !== false) {\n module.debug('Current percent set in settings', settings.percent);\n module.set.percent(settings.percent);\n }\n }\n },\n\n bind: {\n transitionEnd: function(callback) {\n var\n transitionEnd = module.get.transitionEnd()\n ;\n $bar\n .one(transitionEnd + eventNamespace, function(event) {\n clearTimeout(module.failSafeTimer);\n callback.call(this, event);\n })\n ;\n module.failSafeTimer = setTimeout(function() {\n $bar.triggerHandler(transitionEnd);\n }, settings.duration + settings.failSafeDelay);\n module.verbose('Adding fail safe timer', module.timer);\n }\n },\n\n increment: function(incrementValue) {\n var\n maxValue,\n startValue,\n newValue\n ;\n if( module.has.total() ) {\n startValue = module.get.value();\n incrementValue = incrementValue || 1;\n newValue = startValue + incrementValue;\n }\n else {\n startValue = module.get.percent();\n incrementValue = incrementValue || module.get.randomValue();\n\n newValue = startValue + incrementValue;\n maxValue = 100;\n module.debug('Incrementing percentage by', startValue, newValue);\n }\n newValue = module.get.normalizedValue(newValue);\n module.set.progress(newValue);\n },\n decrement: function(decrementValue) {\n var\n total = module.get.total(),\n startValue,\n newValue\n ;\n if(total) {\n startValue = module.get.value();\n decrementValue = decrementValue || 1;\n newValue = startValue - decrementValue;\n module.debug('Decrementing value by', decrementValue, startValue);\n }\n else {\n startValue = module.get.percent();\n decrementValue = decrementValue || module.get.randomValue();\n newValue = startValue - decrementValue;\n module.debug('Decrementing percentage by', decrementValue, startValue);\n }\n newValue = module.get.normalizedValue(newValue);\n module.set.progress(newValue);\n },\n\n has: {\n progressPoll: function() {\n return module.progressPoll;\n },\n total: function() {\n return (module.get.total() !== false);\n }\n },\n\n get: {\n text: function(templateText) {\n var\n value = module.value || 0,\n total = module.total || 0,\n percent = (animating)\n ? module.get.displayPercent()\n : module.percent || 0,\n left = (module.total > 0)\n ? (total - value)\n : (100 - percent)\n ;\n templateText = templateText || '';\n templateText = templateText\n .replace('{value}', value)\n .replace('{total}', total)\n .replace('{left}', left)\n .replace('{percent}', percent)\n ;\n module.verbose('Adding variables to progress bar text', templateText);\n return templateText;\n },\n\n normalizedValue: function(value) {\n if(value < 0) {\n module.debug('Value cannot decrement below 0');\n return 0;\n }\n if(module.has.total()) {\n if(value > module.total) {\n module.debug('Value cannot increment above total', module.total);\n return module.total;\n }\n }\n else if(value > 100 ) {\n module.debug('Value cannot increment above 100 percent');\n return 100;\n }\n return value;\n },\n\n updateInterval: function() {\n if(settings.updateInterval == 'auto') {\n return settings.duration;\n }\n return settings.updateInterval;\n },\n\n randomValue: function() {\n module.debug('Generating random increment percentage');\n return Math.floor((Math.random() * settings.random.max) + settings.random.min);\n },\n\n numericValue: function(value) {\n return (typeof value === 'string')\n ? (value.replace(/[^\\d.]/g, '') !== '')\n ? +(value.replace(/[^\\d.]/g, ''))\n : false\n : value\n ;\n },\n\n transitionEnd: function() {\n var\n element = document.createElement('element'),\n transitions = {\n 'transition' :'transitionend',\n 'OTransition' :'oTransitionEnd',\n 'MozTransition' :'transitionend',\n 'WebkitTransition' :'webkitTransitionEnd'\n },\n transition\n ;\n for(transition in transitions){\n if( element.style[transition] !== undefined ){\n return transitions[transition];\n }\n }\n },\n\n // gets current displayed percentage (if animating values this is the intermediary value)\n displayPercent: function() {\n var\n barWidth = $bar.width(),\n totalWidth = $module.width(),\n minDisplay = parseInt($bar.css('min-width'), 10),\n displayPercent = (barWidth > minDisplay)\n ? (barWidth / totalWidth * 100)\n : module.percent\n ;\n return (settings.precision > 0)\n ? Math.round(displayPercent * (10 * settings.precision)) / (10 * settings.precision)\n : Math.round(displayPercent)\n ;\n },\n\n percent: function() {\n return module.percent || 0;\n },\n value: function() {\n return module.nextValue || module.value || 0;\n },\n total: function() {\n return module.total || false;\n }\n },\n\n create: {\n progressPoll: function() {\n module.progressPoll = setTimeout(function() {\n module.update.toNextValue();\n module.remove.progressPoll();\n }, module.get.updateInterval());\n },\n },\n\n is: {\n complete: function() {\n return module.is.success() || module.is.warning() || module.is.error();\n },\n success: function() {\n return $module.hasClass(className.success);\n },\n warning: function() {\n return $module.hasClass(className.warning);\n },\n error: function() {\n return $module.hasClass(className.error);\n },\n active: function() {\n return $module.hasClass(className.active);\n },\n visible: function() {\n return $module.is(':visible');\n }\n },\n\n remove: {\n progressPoll: function() {\n module.verbose('Removing progress poll timer');\n if(module.progressPoll) {\n clearTimeout(module.progressPoll);\n delete module.progressPoll;\n }\n },\n nextValue: function() {\n module.verbose('Removing progress value stored for next update');\n delete module.nextValue;\n },\n state: function() {\n module.verbose('Removing stored state');\n delete module.total;\n delete module.percent;\n delete module.value;\n },\n active: function() {\n module.verbose('Removing active state');\n $module.removeClass(className.active);\n },\n success: function() {\n module.verbose('Removing success state');\n $module.removeClass(className.success);\n },\n warning: function() {\n module.verbose('Removing warning state');\n $module.removeClass(className.warning);\n },\n error: function() {\n module.verbose('Removing error state');\n $module.removeClass(className.error);\n }\n },\n\n set: {\n barWidth: function(value) {\n if(value > 100) {\n module.error(error.tooHigh, value);\n }\n else if (value < 0) {\n module.error(error.tooLow, value);\n }\n else {\n $bar\n .css('width', value + '%')\n ;\n $module\n .attr('data-percent', parseInt(value, 10))\n ;\n }\n },\n duration: function(duration) {\n duration = duration || settings.duration;\n duration = (typeof duration == 'number')\n ? duration + 'ms'\n : duration\n ;\n module.verbose('Setting progress bar transition duration', duration);\n $bar\n .css({\n 'transition-duration': duration\n })\n ;\n },\n percent: function(percent) {\n percent = (typeof percent == 'string')\n ? +(percent.replace('%', ''))\n : percent\n ;\n // round display percentage\n percent = (settings.precision > 0)\n ? Math.round(percent * (10 * settings.precision)) / (10 * settings.precision)\n : Math.round(percent)\n ;\n module.percent = percent;\n if( !module.has.total() ) {\n module.value = (settings.precision > 0)\n ? Math.round( (percent / 100) * module.total * (10 * settings.precision)) / (10 * settings.precision)\n : Math.round( (percent / 100) * module.total * 10) / 10\n ;\n if(settings.limitValues) {\n module.value = (module.value > 100)\n ? 100\n : (module.value < 0)\n ? 0\n : module.value\n ;\n }\n }\n module.set.barWidth(percent);\n module.set.labelInterval();\n module.set.labels();\n settings.onChange.call(element, percent, module.value, module.total);\n },\n labelInterval: function() {\n var\n animationCallback = function() {\n module.verbose('Bar finished animating, removing continuous label updates');\n clearInterval(module.interval);\n animating = false;\n module.set.labels();\n }\n ;\n clearInterval(module.interval);\n module.bind.transitionEnd(animationCallback);\n animating = true;\n module.interval = setInterval(function() {\n var\n isInDOM = $.contains(document.documentElement, element)\n ;\n if(!isInDOM) {\n clearInterval(module.interval);\n animating = false;\n }\n module.set.labels();\n }, settings.framerate);\n },\n labels: function() {\n module.verbose('Setting both bar progress and outer label text');\n module.set.barLabel();\n module.set.state();\n },\n label: function(text) {\n text = text || '';\n if(text) {\n text = module.get.text(text);\n module.verbose('Setting label to text', text);\n $label.text(text);\n }\n },\n state: function(percent) {\n percent = (percent !== undefined)\n ? percent\n : module.percent\n ;\n if(percent === 100) {\n if(settings.autoSuccess && !(module.is.warning() || module.is.error() || module.is.success())) {\n module.set.success();\n module.debug('Automatically triggering success at 100%');\n }\n else {\n module.verbose('Reached 100% removing active state');\n module.remove.active();\n module.remove.progressPoll();\n }\n }\n else if(percent > 0) {\n module.verbose('Adjusting active progress bar label', percent);\n module.set.active();\n }\n else {\n module.remove.active();\n module.set.label(settings.text.active);\n }\n },\n barLabel: function(text) {\n if(text !== undefined) {\n $progress.text( module.get.text(text) );\n }\n else if(settings.label == 'ratio' && module.total) {\n module.verbose('Adding ratio to bar label');\n $progress.text( module.get.text(settings.text.ratio) );\n }\n else if(settings.label == 'percent') {\n module.verbose('Adding percentage to bar label');\n $progress.text( module.get.text(settings.text.percent) );\n }\n },\n active: function(text) {\n text = text || settings.text.active;\n module.debug('Setting active state');\n if(settings.showActivity && !module.is.active() ) {\n $module.addClass(className.active);\n }\n module.remove.warning();\n module.remove.error();\n module.remove.success();\n text = settings.onLabelUpdate('active', text, module.value, module.total);\n if(text) {\n module.set.label(text);\n }\n module.bind.transitionEnd(function() {\n settings.onActive.call(element, module.value, module.total);\n });\n },\n success : function(text) {\n text = text || settings.text.success || settings.text.active;\n module.debug('Setting success state');\n $module.addClass(className.success);\n module.remove.active();\n module.remove.warning();\n module.remove.error();\n module.complete();\n if(settings.text.success) {\n text = settings.onLabelUpdate('success', text, module.value, module.total);\n module.set.label(text);\n }\n else {\n text = settings.onLabelUpdate('active', text, module.value, module.total);\n module.set.label(text);\n }\n module.bind.transitionEnd(function() {\n settings.onSuccess.call(element, module.total);\n });\n },\n warning : function(text) {\n text = text || settings.text.warning;\n module.debug('Setting warning state');\n $module.addClass(className.warning);\n module.remove.active();\n module.remove.success();\n module.remove.error();\n module.complete();\n text = settings.onLabelUpdate('warning', text, module.value, module.total);\n if(text) {\n module.set.label(text);\n }\n module.bind.transitionEnd(function() {\n settings.onWarning.call(element, module.value, module.total);\n });\n },\n error : function(text) {\n text = text || settings.text.error;\n module.debug('Setting error state');\n $module.addClass(className.error);\n module.remove.active();\n module.remove.success();\n module.remove.warning();\n module.complete();\n text = settings.onLabelUpdate('error', text, module.value, module.total);\n if(text) {\n module.set.label(text);\n }\n module.bind.transitionEnd(function() {\n settings.onError.call(element, module.value, module.total);\n });\n },\n transitionEvent: function() {\n transitionEnd = module.get.transitionEnd();\n },\n total: function(totalValue) {\n module.total = totalValue;\n },\n value: function(value) {\n module.value = value;\n },\n progress: function(value) {\n if(!module.has.progressPoll()) {\n module.debug('First update in progress update interval, immediately updating', value);\n module.update.progress(value);\n module.create.progressPoll();\n }\n else {\n module.debug('Updated within interval, setting next update to use new value', value);\n module.set.nextValue(value);\n }\n },\n nextValue: function(value) {\n module.nextValue = value;\n }\n },\n\n update: {\n toNextValue: function() {\n var\n nextValue = module.nextValue\n ;\n if(nextValue) {\n module.debug('Update interval complete using last updated value', nextValue);\n module.update.progress(nextValue);\n module.remove.nextValue();\n }\n },\n progress: function(value) {\n var\n percentComplete\n ;\n value = module.get.numericValue(value);\n if(value === false) {\n module.error(error.nonNumeric, value);\n }\n value = module.get.normalizedValue(value);\n if( module.has.total() ) {\n module.set.value(value);\n percentComplete = (value / module.total) * 100;\n module.debug('Calculating percent complete from total', percentComplete);\n module.set.percent( percentComplete );\n }\n else {\n percentComplete = value;\n module.debug('Setting value to exact percentage value', percentComplete);\n module.set.percent( percentComplete );\n }\n }\n },\n\n setting: function(name, value) {\n module.debug('Changing setting', name, value);\n if( $.isPlainObject(name) ) {\n $.extend(true, settings, name);\n }\n else if(value !== undefined) {\n if($.isPlainObject(settings[name])) {\n $.extend(true, settings[name], value);\n }\n else {\n settings[name] = value;\n }\n }\n else {\n return settings[name];\n }\n },\n internal: function(name, value) {\n if( $.isPlainObject(name) ) {\n $.extend(true, module, name);\n }\n else if(value !== undefined) {\n module[name] = value;\n }\n else {\n return module[name];\n }\n },\n debug: function() {\n if(!settings.silent && settings.debug) {\n if(settings.performance) {\n module.performance.log(arguments);\n }\n else {\n module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');\n module.debug.apply(console, arguments);\n }\n }\n },\n verbose: function() {\n if(!settings.silent && settings.verbose && settings.debug) {\n if(settings.performance) {\n module.performance.log(arguments);\n }\n else {\n module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');\n module.verbose.apply(console, arguments);\n }\n }\n },\n error: function() {\n if(!settings.silent) {\n module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');\n module.error.apply(console, arguments);\n }\n },\n performance: {\n log: function(message) {\n var\n currentTime,\n executionTime,\n previousTime\n ;\n if(settings.performance) {\n currentTime = new Date().getTime();\n previousTime = time || currentTime;\n executionTime = currentTime - previousTime;\n time = currentTime;\n performance.push({\n 'Name' : message[0],\n 'Arguments' : [].slice.call(message, 1) || '',\n 'Element' : element,\n 'Execution Time' : executionTime\n });\n }\n clearTimeout(module.performance.timer);\n module.performance.timer = setTimeout(module.performance.display, 500);\n },\n display: function() {\n var\n title = settings.name + ':',\n totalTime = 0\n ;\n time = false;\n clearTimeout(module.performance.timer);\n $.each(performance, function(index, data) {\n totalTime += data['Execution Time'];\n });\n title += ' ' + totalTime + 'ms';\n if(moduleSelector) {\n title += ' \\'' + moduleSelector + '\\'';\n }\n if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {\n console.groupCollapsed(title);\n if(console.table) {\n console.table(performance);\n }\n else {\n $.each(performance, function(index, data) {\n console.log(data['Name'] + ': ' + data['Execution Time']+'ms');\n });\n }\n console.groupEnd();\n }\n performance = [];\n }\n },\n invoke: function(query, passedArguments, context) {\n var\n object = instance,\n maxDepth,\n found,\n response\n ;\n passedArguments = passedArguments || queryArguments;\n context = element || context;\n if(typeof query == 'string' && object !== undefined) {\n query = query.split(/[\\. ]/);\n maxDepth = query.length - 1;\n $.each(query, function(depth, value) {\n var camelCaseValue = (depth != maxDepth)\n ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)\n : query\n ;\n if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {\n object = object[camelCaseValue];\n }\n else if( object[camelCaseValue] !== undefined ) {\n found = object[camelCaseValue];\n return false;\n }\n else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {\n object = object[value];\n }\n else if( object[value] !== undefined ) {\n found = object[value];\n return false;\n }\n else {\n module.error(error.method, query);\n return false;\n }\n });\n }\n if ( $.isFunction( found ) ) {\n response = found.apply(context, passedArguments);\n }\n else if(found !== undefined) {\n response = found;\n }\n if($.isArray(returnedValue)) {\n returnedValue.push(response);\n }\n else if(returnedValue !== undefined) {\n returnedValue = [returnedValue, response];\n }\n else if(response !== undefined) {\n returnedValue = response;\n }\n return found;\n }\n };\n\n if(methodInvoked) {\n if(instance === undefined) {\n module.initialize();\n }\n module.invoke(query);\n }\n else {\n if(instance !== undefined) {\n instance.invoke('destroy');\n }\n module.initialize();\n }\n })\n ;\n\n return (returnedValue !== undefined)\n ? returnedValue\n : this\n ;\n};\n\n$.fn.progress.settings = {\n\n name : 'Progress',\n namespace : 'progress',\n\n silent : false,\n debug : false,\n verbose : false,\n performance : true,\n\n random : {\n min : 2,\n max : 5\n },\n\n duration : 300,\n\n updateInterval : 'auto',\n\n autoSuccess : true,\n showActivity : true,\n limitValues : true,\n\n label : 'percent',\n precision : 0,\n framerate : (1000 / 30), /// 30 fps\n\n percent : false,\n total : false,\n value : false,\n\n // delay in ms for fail safe animation callback\n failSafeDelay : 100,\n\n onLabelUpdate : function(state, text, value, total){\n return text;\n },\n onChange : function(percent, value, total){},\n onSuccess : function(total){},\n onActive : function(value, total){},\n onError : function(value, total){},\n onWarning : function(value, total){},\n\n error : {\n method : 'The method you called is not defined.',\n nonNumeric : 'Progress value is non numeric',\n tooHigh : 'Value specified is above 100%',\n tooLow : 'Value specified is below 0%'\n },\n\n regExp: {\n variable: /\\{\\$*[A-z0-9]+\\}/g\n },\n\n metadata: {\n percent : 'percent',\n total : 'total',\n value : 'value'\n },\n\n selector : {\n bar : '> .bar',\n label : '> .label',\n progress : '.bar > .progress'\n },\n\n text : {\n active : false,\n error : false,\n success : false,\n warning : false,\n percent : '{percent}%',\n ratio : '{value} of {total}'\n },\n\n className : {\n active : 'active',\n error : 'error',\n success : 'success',\n warning : 'warning'\n }\n\n};\n\n\n})( jQuery, window, document );\n\n/*!\n * # Semantic UI 2.2.11 - Rating\n * http://github.com/semantic-org/semantic-ui/\n *\n *\n * Released under the MIT license\n * http://opensource.org/licenses/MIT\n *\n */\n\n;(function ($, window, document, undefined) {\n\n\"use strict\";\n\nwindow = (typeof window != 'undefined' && window.Math == Math)\n ? window\n : (typeof self != 'undefined' && self.Math == Math)\n ? self\n : Function('return this')()\n;\n\n$.fn.rating = function(parameters) {\n var\n $allModules = $(this),\n moduleSelector = $allModules.selector || '',\n\n time = new Date().getTime(),\n performance = [],\n\n query = arguments[0],\n methodInvoked = (typeof query == 'string'),\n queryArguments = [].slice.call(arguments, 1),\n returnedValue\n ;\n $allModules\n .each(function() {\n var\n settings = ( $.isPlainObject(parameters) )\n ? $.extend(true, {}, $.fn.rating.settings, parameters)\n : $.extend({}, $.fn.rating.settings),\n\n namespace = settings.namespace,\n className = settings.className,\n metadata = settings.metadata,\n selector = settings.selector,\n error = settings.error,\n\n eventNamespace = '.' + namespace,\n moduleNamespace = 'module-' + namespace,\n\n element = this,\n instance = $(this).data(moduleNamespace),\n\n $module = $(this),\n $icon = $module.find(selector.icon),\n\n initialLoad,\n module\n ;\n\n module = {\n\n initialize: function() {\n module.verbose('Initializing rating module', settings);\n\n if($icon.length === 0) {\n module.setup.layout();\n }\n\n if(settings.interactive) {\n module.enable();\n }\n else {\n module.disable();\n }\n module.set.initialLoad();\n module.set.rating( module.get.initialRating() );\n module.remove.initialLoad();\n module.instantiate();\n },\n\n instantiate: function() {\n module.verbose('Instantiating module', settings);\n instance = module;\n $module\n .data(moduleNamespace, module)\n ;\n },\n\n destroy: function() {\n module.verbose('Destroying previous instance', instance);\n module.remove.events();\n $module\n .removeData(moduleNamespace)\n ;\n },\n\n refresh: function() {\n $icon = $module.find(selector.icon);\n },\n\n setup: {\n layout: function() {\n var\n maxRating = module.get.maxRating(),\n html = $.fn.rating.settings.templates.icon(maxRating)\n ;\n module.debug('Generating icon html dynamically');\n $module\n .html(html)\n ;\n module.refresh();\n }\n },\n\n event: {\n mouseenter: function() {\n var\n $activeIcon = $(this)\n ;\n $activeIcon\n .nextAll()\n .removeClass(className.selected)\n ;\n $module\n .addClass(className.selected)\n ;\n $activeIcon\n .addClass(className.selected)\n .prevAll()\n .addClass(className.selected)\n ;\n },\n mouseleave: function() {\n $module\n .removeClass(className.selected)\n ;\n $icon\n .removeClass(className.selected)\n ;\n },\n click: function() {\n var\n $activeIcon = $(this),\n currentRating = module.get.rating(),\n rating = $icon.index($activeIcon) + 1,\n canClear = (settings.clearable == 'auto')\n ? ($icon.length === 1)\n : settings.clearable\n ;\n if(canClear && currentRating == rating) {\n module.clearRating();\n }\n else {\n module.set.rating( rating );\n }\n }\n },\n\n clearRating: function() {\n module.debug('Clearing current rating');\n module.set.rating(0);\n },\n\n bind: {\n events: function() {\n module.verbose('Binding events');\n $module\n .on('mouseenter' + eventNamespace, selector.icon, module.event.mouseenter)\n .on('mouseleave' + eventNamespace, selector.icon, module.event.mouseleave)\n .on('click' + eventNamespace, selector.icon, module.event.click)\n ;\n }\n },\n\n remove: {\n events: function() {\n module.verbose('Removing events');\n $module\n .off(eventNamespace)\n ;\n },\n initialLoad: function() {\n initialLoad = false;\n }\n },\n\n enable: function() {\n module.debug('Setting rating to interactive mode');\n module.bind.events();\n $module\n .removeClass(className.disabled)\n ;\n },\n\n disable: function() {\n module.debug('Setting rating to read-only mode');\n module.remove.events();\n $module\n .addClass(className.disabled)\n ;\n },\n\n is: {\n initialLoad: function() {\n return initialLoad;\n }\n },\n\n get: {\n initialRating: function() {\n if($module.data(metadata.rating) !== undefined) {\n $module.removeData(metadata.rating);\n return $module.data(metadata.rating);\n }\n return settings.initialRating;\n },\n maxRating: function() {\n if($module.data(metadata.maxRating) !== undefined) {\n $module.removeData(metadata.maxRating);\n return $module.data(metadata.maxRating);\n }\n return settings.maxRating;\n },\n rating: function() {\n var\n currentRating = $icon.filter('.' + className.active).length\n ;\n module.verbose('Current rating retrieved', currentRating);\n return currentRating;\n }\n },\n\n set: {\n rating: function(rating) {\n var\n ratingIndex = (rating - 1 >= 0)\n ? (rating - 1)\n : 0,\n $activeIcon = $icon.eq(ratingIndex)\n ;\n $module\n .removeClass(className.selected)\n ;\n $icon\n .removeClass(className.selected)\n .removeClass(className.active)\n ;\n if(rating > 0) {\n module.verbose('Setting current rating to', rating);\n $activeIcon\n .prevAll()\n .addBack()\n .addClass(className.active)\n ;\n }\n if(!module.is.initialLoad()) {\n settings.onRate.call(element, rating);\n }\n },\n initialLoad: function() {\n initialLoad = true;\n }\n },\n\n setting: function(name, value) {\n module.debug('Changing setting', name, value);\n if( $.isPlainObject(name) ) {\n $.extend(true, settings, name);\n }\n else if(value !== undefined) {\n if($.isPlainObject(settings[name])) {\n $.extend(true, settings[name], value);\n }\n else {\n settings[name] = value;\n }\n }\n else {\n return settings[name];\n }\n },\n internal: function(name, value) {\n if( $.isPlainObject(name) ) {\n $.extend(true, module, name);\n }\n else if(value !== undefined) {\n module[name] = value;\n }\n else {\n return module[name];\n }\n },\n debug: function() {\n if(!settings.silent && settings.debug) {\n if(settings.performance) {\n module.performance.log(arguments);\n }\n else {\n module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');\n module.debug.apply(console, arguments);\n }\n }\n },\n verbose: function() {\n if(!settings.silent && settings.verbose && settings.debug) {\n if(settings.performance) {\n module.performance.log(arguments);\n }\n else {\n module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');\n module.verbose.apply(console, arguments);\n }\n }\n },\n error: function() {\n if(!settings.silent) {\n module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');\n module.error.apply(console, arguments);\n }\n },\n performance: {\n log: function(message) {\n var\n currentTime,\n executionTime,\n previousTime\n ;\n if(settings.performance) {\n currentTime = new Date().getTime();\n previousTime = time || currentTime;\n executionTime = currentTime - previousTime;\n time = currentTime;\n performance.push({\n 'Name' : message[0],\n 'Arguments' : [].slice.call(message, 1) || '',\n 'Element' : element,\n 'Execution Time' : executionTime\n });\n }\n clearTimeout(module.performance.timer);\n module.performance.timer = setTimeout(module.performance.display, 500);\n },\n display: function() {\n var\n title = settings.name + ':',\n totalTime = 0\n ;\n time = false;\n clearTimeout(module.performance.timer);\n $.each(performance, function(index, data) {\n totalTime += data['Execution Time'];\n });\n title += ' ' + totalTime + 'ms';\n if(moduleSelector) {\n title += ' \\'' + moduleSelector + '\\'';\n }\n if($allModules.length > 1) {\n title += ' ' + '(' + $allModules.length + ')';\n }\n if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {\n console.groupCollapsed(title);\n if(console.table) {\n console.table(performance);\n }\n else {\n $.each(performance, function(index, data) {\n console.log(data['Name'] + ': ' + data['Execution Time']+'ms');\n });\n }\n console.groupEnd();\n }\n performance = [];\n }\n },\n invoke: function(query, passedArguments, context) {\n var\n object = instance,\n maxDepth,\n found,\n response\n ;\n passedArguments = passedArguments || queryArguments;\n context = element || context;\n if(typeof query == 'string' && object !== undefined) {\n query = query.split(/[\\. ]/);\n maxDepth = query.length - 1;\n $.each(query, function(depth, value) {\n var camelCaseValue = (depth != maxDepth)\n ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)\n : query\n ;\n if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {\n object = object[camelCaseValue];\n }\n else if( object[camelCaseValue] !== undefined ) {\n found = object[camelCaseValue];\n return false;\n }\n else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {\n object = object[value];\n }\n else if( object[value] !== undefined ) {\n found = object[value];\n return false;\n }\n else {\n return false;\n }\n });\n }\n if ( $.isFunction( found ) ) {\n response = found.apply(context, passedArguments);\n }\n else if(found !== undefined) {\n response = found;\n }\n if($.isArray(returnedValue)) {\n returnedValue.push(response);\n }\n else if(returnedValue !== undefined) {\n returnedValue = [returnedValue, response];\n }\n else if(response !== undefined) {\n returnedValue = response;\n }\n return found;\n }\n };\n if(methodInvoked) {\n if(instance === undefined) {\n module.initialize();\n }\n module.invoke(query);\n }\n else {\n if(instance !== undefined) {\n instance.invoke('destroy');\n }\n module.initialize();\n }\n })\n ;\n\n return (returnedValue !== undefined)\n ? returnedValue\n : this\n ;\n};\n\n$.fn.rating.settings = {\n\n name : 'Rating',\n namespace : 'rating',\n\n slent : false,\n debug : false,\n verbose : false,\n performance : true,\n\n initialRating : 0,\n interactive : true,\n maxRating : 4,\n clearable : 'auto',\n\n fireOnInit : false,\n\n onRate : function(rating){},\n\n error : {\n method : 'The method you called is not defined',\n noMaximum : 'No maximum rating specified. Cannot generate HTML automatically'\n },\n\n\n metadata: {\n rating : 'rating',\n maxRating : 'maxRating'\n },\n\n className : {\n active : 'active',\n disabled : 'disabled',\n selected : 'selected',\n loading : 'loading'\n },\n\n selector : {\n icon : '.icon'\n },\n\n templates: {\n icon: function(maxRating) {\n var\n icon = 1,\n html = ''\n ;\n while(icon <= maxRating) {\n html += '<i class=\"icon\"></i>';\n icon++;\n }\n return html;\n }\n }\n\n};\n\n})( jQuery, window, document );\n\n/*!\n * # Semantic UI 2.2.11 - Search\n * http://github.com/semantic-org/semantic-ui/\n *\n *\n * Released under the MIT license\n * http://opensource.org/licenses/MIT\n *\n */\n\n;(function ($, window, document, undefined) {\n\n\"use strict\";\n\nwindow = (typeof window != 'undefined' && window.Math == Math)\n ? window\n : (typeof self != 'undefined' && self.Math == Math)\n ? self\n : Function('return this')()\n;\n\n$.fn.search = function(parameters) {\n var\n $allModules = $(this),\n moduleSelector = $allModules.selector || '',\n\n time = new Date().getTime(),\n performance = [],\n\n query = arguments[0],\n methodInvoked = (typeof query == 'string'),\n queryArguments = [].slice.call(arguments, 1),\n returnedValue\n ;\n $(this)\n .each(function() {\n var\n settings = ( $.isPlainObject(parameters) )\n ? $.extend(true, {}, $.fn.search.settings, parameters)\n : $.extend({}, $.fn.search.settings),\n\n className = settings.className,\n metadata = settings.metadata,\n regExp = settings.regExp,\n fields = settings.fields,\n selector = settings.selector,\n error = settings.error,\n namespace = settings.namespace,\n\n eventNamespace = '.' + namespace,\n moduleNamespace = namespace + '-module',\n\n $module = $(this),\n $prompt = $module.find(selector.prompt),\n $searchButton = $module.find(selector.searchButton),\n $results = $module.find(selector.results),\n $result = $module.find(selector.result),\n $category = $module.find(selector.category),\n\n element = this,\n instance = $module.data(moduleNamespace),\n\n disabledBubbled = false,\n resultsDismissed = false,\n\n module\n ;\n\n module = {\n\n initialize: function() {\n module.verbose('Initializing module');\n module.determine.searchFields();\n module.bind.events();\n module.set.type();\n module.create.results();\n module.instantiate();\n },\n instantiate: function() {\n module.verbose('Storing instance of module', module);\n instance = module;\n $module\n .data(moduleNamespace, module)\n ;\n },\n destroy: function() {\n module.verbose('Destroying instance');\n $module\n .off(eventNamespace)\n .removeData(moduleNamespace)\n ;\n },\n\n refresh: function() {\n module.debug('Refreshing selector cache');\n $prompt = $module.find(selector.prompt);\n $searchButton = $module.find(selector.searchButton);\n $category = $module.find(selector.category);\n $results = $module.find(selector.results);\n $result = $module.find(selector.result);\n },\n\n refreshResults: function() {\n $results = $module.find(selector.results);\n $result = $module.find(selector.result);\n },\n\n bind: {\n events: function() {\n module.verbose('Binding events to search');\n if(settings.automatic) {\n $module\n .on(module.get.inputEvent() + eventNamespace, selector.prompt, module.event.input)\n ;\n $prompt\n .attr('autocomplete', 'off')\n ;\n }\n $module\n // prompt\n .on('focus' + eventNamespace, selector.prompt, module.event.focus)\n .on('blur' + eventNamespace, selector.prompt, module.event.blur)\n .on('keydown' + eventNamespace, selector.prompt, module.handleKeyboard)\n // search button\n .on('click' + eventNamespace, selector.searchButton, module.query)\n // results\n .on('mousedown' + eventNamespace, selector.results, module.event.result.mousedown)\n .on('mouseup' + eventNamespace, selector.results, module.event.result.mouseup)\n .on('click' + eventNamespace, selector.result, module.event.result.click)\n ;\n }\n },\n\n determine: {\n searchFields: function() {\n // this makes sure $.extend does not add specified search fields to default fields\n // this is the only setting which should not extend defaults\n if(parameters && parameters.searchFields !== undefined) {\n settings.searchFields = parameters.searchFields;\n }\n }\n },\n\n event: {\n input: function() {\n if(settings.searchDelay) {\n clearTimeout(module.timer);\n module.timer = setTimeout(function() {\n if(module.is.focused()) {\n module.query();\n }\n }, settings.searchDelay);\n }\n else {\n module.query();\n }\n },\n focus: function() {\n module.set.focus();\n if(settings.searchOnFocus && module.has.minimumCharacters() ) {\n module.query(function() {\n if(module.can.show() ) {\n module.showResults();\n }\n });\n }\n },\n blur: function(event) {\n var\n pageLostFocus = (document.activeElement === this),\n callback = function() {\n module.cancel.query();\n module.remove.focus();\n module.timer = setTimeout(module.hideResults, settings.hideDelay);\n }\n ;\n if(pageLostFocus) {\n return;\n }\n resultsDismissed = false;\n if(module.resultsClicked) {\n module.debug('Determining if user action caused search to close');\n $module\n .one('click.close' + eventNamespace, selector.results, function(event) {\n if(module.is.inMessage(event) || disabledBubbled) {\n $prompt.focus();\n return;\n }\n disabledBubbled = false;\n if( !module.is.animating() && !module.is.hidden()) {\n callback();\n }\n })\n ;\n }\n else {\n module.debug('Input blurred without user action, closing results');\n callback();\n }\n },\n result: {\n mousedown: function() {\n module.resultsClicked = true;\n },\n mouseup: function() {\n module.resultsClicked = false;\n },\n click: function(event) {\n module.debug('Search result selected');\n var\n $result = $(this),\n $title = $result.find(selector.title).eq(0),\n $link = $result.is('a[href]')\n ? $result\n : $result.find('a[href]').eq(0),\n href = $link.attr('href') || false,\n target = $link.attr('target') || false,\n title = $title.html(),\n // title is used for result lookup\n value = ($title.length > 0)\n ? $title.text()\n : false,\n results = module.get.results(),\n result = $result.data(metadata.result) || module.get.result(value, results),\n returnedValue\n ;\n if( $.isFunction(settings.onSelect) ) {\n if(settings.onSelect.call(element, result, results) === false) {\n module.debug('Custom onSelect callback cancelled default select action');\n disabledBubbled = true;\n return;\n }\n }\n module.hideResults();\n if(value) {\n module.set.value(value);\n }\n if(href) {\n module.verbose('Opening search link found in result', $link);\n if(target == '_blank' || event.ctrlKey) {\n window.open(href);\n }\n else {\n window.location.href = (href);\n }\n }\n }\n }\n },\n handleKeyboard: function(event) {\n var\n // force selector refresh\n $result = $module.find(selector.result),\n $category = $module.find(selector.category),\n $activeResult = $result.filter('.' + className.active),\n currentIndex = $result.index( $activeResult ),\n resultSize = $result.length,\n hasActiveResult = $activeResult.length > 0,\n\n keyCode = event.which,\n keys = {\n backspace : 8,\n enter : 13,\n escape : 27,\n upArrow : 38,\n downArrow : 40\n },\n newIndex\n ;\n // search shortcuts\n if(keyCode == keys.escape) {\n module.verbose('Escape key pressed, blurring search field');\n module.hideResults();\n resultsDismissed = true;\n }\n if( module.is.visible() ) {\n if(keyCode == keys.enter) {\n module.verbose('Enter key pressed, selecting active result');\n if( $result.filter('.' + className.active).length > 0 ) {\n module.event.result.click.call($result.filter('.' + className.active), event);\n event.preventDefault();\n return false;\n }\n }\n else if(keyCode == keys.upArrow && hasActiveResult) {\n module.verbose('Up key pressed, changing active result');\n newIndex = (currentIndex - 1 < 0)\n ? currentIndex\n : currentIndex - 1\n ;\n $category\n .removeClass(className.active)\n ;\n $result\n .removeClass(className.active)\n .eq(newIndex)\n .addClass(className.active)\n .closest($category)\n .addClass(className.active)\n ;\n event.preventDefault();\n }\n else if(keyCode == keys.downArrow) {\n module.verbose('Down key pressed, changing active result');\n newIndex = (currentIndex + 1 >= resultSize)\n ? currentIndex\n : currentIndex + 1\n ;\n $category\n .removeClass(className.active)\n ;\n $result\n .removeClass(className.active)\n .eq(newIndex)\n .addClass(className.active)\n .closest($category)\n .addClass(className.active)\n ;\n event.preventDefault();\n }\n }\n else {\n // query shortcuts\n if(keyCode == keys.enter) {\n module.verbose('Enter key pressed, executing query');\n module.query();\n module.set.buttonPressed();\n $prompt.one('keyup', module.remove.buttonFocus);\n }\n }\n },\n\n setup: {\n api: function(searchTerm, callback) {\n var\n apiSettings = {\n debug : settings.debug,\n on : false,\n cache : true,\n action : 'search',\n urlData : {\n query : searchTerm\n },\n onSuccess : function(response) {\n module.parse.response.call(element, response, searchTerm);\n callback();\n },\n onFailure : function() {\n module.displayMessage(error.serverError);\n callback();\n },\n onAbort : function(response) {\n },\n onError : module.error\n },\n searchHTML\n ;\n $.extend(true, apiSettings, settings.apiSettings);\n module.verbose('Setting up API request', apiSettings);\n $module.api(apiSettings);\n }\n },\n\n can: {\n useAPI: function() {\n return $.fn.api !== undefined;\n },\n show: function() {\n return module.is.focused() && !module.is.visible() && !module.is.empty();\n },\n transition: function() {\n return settings.transition && $.fn.transition !== undefined && $module.transition('is supported');\n }\n },\n\n is: {\n animating: function() {\n return $results.hasClass(className.animating);\n },\n hidden: function() {\n return $results.hasClass(className.hidden);\n },\n inMessage: function(event) {\n if(!event.target) {\n return;\n }\n var\n $target = $(event.target),\n isInDOM = $.contains(document.documentElement, event.target)\n ;\n return (isInDOM && $target.closest(selector.message).length > 0);\n },\n empty: function() {\n return ($results.html() === '');\n },\n visible: function() {\n return ($results.filter(':visible').length > 0);\n },\n focused: function() {\n return ($prompt.filter(':focus').length > 0);\n }\n },\n\n get: {\n inputEvent: function() {\n var\n prompt = $prompt[0],\n inputEvent = (prompt !== undefined && prompt.oninput !== undefined)\n ? 'input'\n : (prompt !== undefined && prompt.onpropertychange !== undefined)\n ? 'propertychange'\n : 'keyup'\n ;\n return inputEvent;\n },\n value: function() {\n return $prompt.val();\n },\n results: function() {\n var\n results = $module.data(metadata.results)\n ;\n return results;\n },\n result: function(value, results) {\n var\n lookupFields = ['title', 'id'],\n result = false\n ;\n value = (value !== undefined)\n ? value\n : module.get.value()\n ;\n results = (results !== undefined)\n ? results\n : module.get.results()\n ;\n if(settings.type === 'category') {\n module.debug('Finding result that matches', value);\n $.each(results, function(index, category) {\n if($.isArray(category.results)) {\n result = module.search.object(value, category.results, lookupFields)[0];\n // don't continue searching if a result is found\n if(result) {\n return false;\n }\n }\n });\n }\n else {\n module.debug('Finding result in results object', value);\n result = module.search.object(value, results, lookupFields)[0];\n }\n return result || false;\n },\n },\n\n select: {\n firstResult: function() {\n module.verbose('Selecting first result');\n $result.first().addClass(className.active);\n }\n },\n\n set: {\n focus: function() {\n $module.addClass(className.focus);\n },\n loading: function() {\n $module.addClass(className.loading);\n },\n value: function(value) {\n module.verbose('Setting search input value', value);\n $prompt\n .val(value)\n ;\n },\n type: function(type) {\n type = type || settings.type;\n if(settings.type == 'category') {\n $module.addClass(settings.type);\n }\n },\n buttonPressed: function() {\n $searchButton.addClass(className.pressed);\n }\n },\n\n remove: {\n loading: function() {\n $module.removeClass(className.loading);\n },\n focus: function() {\n $module.removeClass(className.focus);\n },\n buttonPressed: function() {\n $searchButton.removeClass(className.pressed);\n }\n },\n\n query: function(callback) {\n callback = $.isFunction(callback)\n ? callback\n : function(){}\n ;\n var\n searchTerm = module.get.value(),\n cache = module.read.cache(searchTerm)\n ;\n callback = callback || function() {};\n if( module.has.minimumCharacters() ) {\n if(cache) {\n module.debug('Reading result from cache', searchTerm);\n module.save.results(cache.results);\n module.addResults(cache.html);\n module.inject.id(cache.results);\n callback();\n }\n else {\n module.debug('Querying for', searchTerm);\n if($.isPlainObject(settings.source) || $.isArray(settings.source)) {\n module.search.local(searchTerm);\n callback();\n }\n else if( module.can.useAPI() ) {\n module.search.remote(searchTerm, callback);\n }\n else {\n module.error(error.source);\n callback();\n }\n }\n settings.onSearchQuery.call(element, searchTerm);\n }\n else {\n module.hideResults();\n }\n },\n\n search: {\n local: function(searchTerm) {\n var\n results = module.search.object(searchTerm, settings.content),\n searchHTML\n ;\n module.set.loading();\n module.save.results(results);\n module.debug('Returned local search results', results);\n\n searchHTML = module.generateResults({\n results: results\n });\n module.remove.loading();\n module.addResults(searchHTML);\n module.inject.id(results);\n module.write.cache(searchTerm, {\n html : searchHTML,\n results : results\n });\n },\n remote: function(searchTerm, callback) {\n callback = $.isFunction(callback)\n ? callback\n : function(){}\n ;\n if($module.api('is loading')) {\n $module.api('abort');\n }\n module.setup.api(searchTerm, callback);\n $module\n .api('query')\n ;\n },\n object: function(searchTerm, source, searchFields) {\n var\n results = [],\n fuzzyResults = [],\n searchExp = searchTerm.toString().replace(regExp.escape, '\\\\$&'),\n matchRegExp = new RegExp(regExp.beginsWith + searchExp, 'i'),\n\n // avoid duplicates when pushing results\n addResult = function(array, result) {\n var\n notResult = ($.inArray(result, results) == -1),\n notFuzzyResult = ($.inArray(result, fuzzyResults) == -1)\n ;\n if(notResult && notFuzzyResult) {\n array.push(result);\n }\n }\n ;\n source = source || settings.source;\n searchFields = (searchFields !== undefined)\n ? searchFields\n : settings.searchFields\n ;\n\n // search fields should be array to loop correctly\n if(!$.isArray(searchFields)) {\n searchFields = [searchFields];\n }\n\n // exit conditions if no source\n if(source === undefined || source === false) {\n module.error(error.source);\n return [];\n }\n\n // iterate through search fields looking for matches\n $.each(searchFields, function(index, field) {\n $.each(source, function(label, content) {\n var\n fieldExists = (typeof content[field] == 'string')\n ;\n if(fieldExists) {\n if( content[field].search(matchRegExp) !== -1) {\n // content starts with value (first in results)\n addResult(results, content);\n }\n else if(settings.searchFullText && module.fuzzySearch(searchTerm, content[field]) ) {\n // content fuzzy matches (last in results)\n addResult(fuzzyResults, content);\n }\n }\n });\n });\n return $.merge(results, fuzzyResults);\n }\n },\n\n fuzzySearch: function(query, term) {\n var\n termLength = term.length,\n queryLength = query.length\n ;\n if(typeof query !== 'string') {\n return false;\n }\n query = query.toLowerCase();\n term = term.toLowerCase();\n if(queryLength > termLength) {\n return false;\n }\n if(queryLength === termLength) {\n return (query === term);\n }\n search: for (var characterIndex = 0, nextCharacterIndex = 0; characterIndex < queryLength; characterIndex++) {\n var\n queryCharacter = query.charCodeAt(characterIndex)\n ;\n while(nextCharacterIndex < termLength) {\n if(term.charCodeAt(nextCharacterIndex++) === queryCharacter) {\n continue search;\n }\n }\n return false;\n }\n return true;\n },\n\n parse: {\n response: function(response, searchTerm) {\n var\n searchHTML = module.generateResults(response)\n ;\n module.verbose('Parsing server response', response);\n if(response !== undefined) {\n if(searchTerm !== undefined && response[fields.results] !== undefined) {\n module.addResults(searchHTML);\n module.inject.id(response[fields.results]);\n module.write.cache(searchTerm, {\n html : searchHTML,\n results : response[fields.results]\n });\n module.save.results(response[fields.results]);\n }\n }\n }\n },\n\n cancel: {\n query: function() {\n if( module.can.useAPI() ) {\n $module.api('abort');\n }\n }\n },\n\n has: {\n minimumCharacters: function() {\n var\n searchTerm = module.get.value(),\n numCharacters = searchTerm.length\n ;\n return (numCharacters >= settings.minCharacters);\n },\n results: function() {\n if($results.length === 0) {\n return false;\n }\n var\n html = $results.html()\n ;\n return html != '';\n }\n },\n\n clear: {\n cache: function(value) {\n var\n cache = $module.data(metadata.cache)\n ;\n if(!value) {\n module.debug('Clearing cache', value);\n $module.removeData(metadata.cache);\n }\n else if(value && cache && cache[value]) {\n module.debug('Removing value from cache', value);\n delete cache[value];\n $module.data(metadata.cache, cache);\n }\n }\n },\n\n read: {\n cache: function(name) {\n var\n cache = $module.data(metadata.cache)\n ;\n if(settings.cache) {\n module.verbose('Checking cache for generated html for query', name);\n return (typeof cache == 'object') && (cache[name] !== undefined)\n ? cache[name]\n : false\n ;\n }\n return false;\n }\n },\n\n create: {\n id: function(resultIndex, categoryIndex) {\n var\n resultID = (resultIndex + 1), // not zero indexed\n categoryID = (categoryIndex + 1),\n firstCharCode,\n letterID,\n id\n ;\n if(categoryIndex !== undefined) {\n // start char code for \"A\"\n letterID = String.fromCharCode(97 + categoryIndex);\n id = letterID + resultID;\n module.verbose('Creating category result id', id);\n }\n else {\n id = resultID;\n module.verbose('Creating result id', id);\n }\n return id;\n },\n results: function() {\n if($results.length === 0) {\n $results = $('<div />')\n .addClass(className.results)\n .appendTo($module)\n ;\n }\n }\n },\n\n inject: {\n result: function(result, resultIndex, categoryIndex) {\n module.verbose('Injecting result into results');\n var\n $selectedResult = (categoryIndex !== undefined)\n ? $results\n .children().eq(categoryIndex)\n .children(selector.result).eq(resultIndex)\n : $results\n .children(selector.result).eq(resultIndex)\n ;\n module.verbose('Injecting results metadata', $selectedResult);\n $selectedResult\n .data(metadata.result, result)\n ;\n },\n id: function(results) {\n module.debug('Injecting unique ids into results');\n var\n // since results may be object, we must use counters\n categoryIndex = 0,\n resultIndex = 0\n ;\n if(settings.type === 'category') {\n // iterate through each category result\n $.each(results, function(index, category) {\n resultIndex = 0;\n $.each(category.results, function(index, value) {\n var\n result = category.results[index]\n ;\n if(result.id === undefined) {\n result.id = module.create.id(resultIndex, categoryIndex);\n }\n module.inject.result(result, resultIndex, categoryIndex);\n resultIndex++;\n });\n categoryIndex++;\n });\n }\n else {\n // top level\n $.each(results, function(index, value) {\n var\n result = results[index]\n ;\n if(result.id === undefined) {\n result.id = module.create.id(resultIndex);\n }\n module.inject.result(result, resultIndex);\n resultIndex++;\n });\n }\n return results;\n }\n },\n\n save: {\n results: function(results) {\n module.verbose('Saving current search results to metadata', results);\n $module.data(metadata.results, results);\n }\n },\n\n write: {\n cache: function(name, value) {\n var\n cache = ($module.data(metadata.cache) !== undefined)\n ? $module.data(metadata.cache)\n : {}\n ;\n if(settings.cache) {\n module.verbose('Writing generated html to cache', name, value);\n cache[name] = value;\n $module\n .data(metadata.cache, cache)\n ;\n }\n }\n },\n\n addResults: function(html) {\n if( $.isFunction(settings.onResultsAdd) ) {\n if( settings.onResultsAdd.call($results, html) === false ) {\n module.debug('onResultsAdd callback cancelled default action');\n return false;\n }\n }\n if(html) {\n $results\n .html(html)\n ;\n module.refreshResults();\n if(settings.selectFirstResult) {\n module.select.firstResult();\n }\n module.showResults();\n }\n else {\n module.hideResults(function() {\n $results.empty();\n });\n }\n },\n\n showResults: function(callback) {\n callback = $.isFunction(callback)\n ? callback\n : function(){}\n ;\n if(resultsDismissed) {\n return;\n }\n if(!module.is.visible() && module.has.results()) {\n if( module.can.transition() ) {\n module.debug('Showing results with css animations');\n $results\n .transition({\n animation : settings.transition + ' in',\n debug : settings.debug,\n verbose : settings.verbose,\n duration : settings.duration,\n onComplete : function() {\n callback();\n },\n queue : true\n })\n ;\n }\n else {\n module.debug('Showing results with javascript');\n $results\n .stop()\n .fadeIn(settings.duration, settings.easing)\n ;\n }\n settings.onResultsOpen.call($results);\n }\n },\n hideResults: function(callback) {\n callback = $.isFunction(callback)\n ? callback\n : function(){}\n ;\n if( module.is.visible() ) {\n if( module.can.transition() ) {\n module.debug('Hiding results with css animations');\n $results\n .transition({\n animation : settings.transition + ' out',\n debug : settings.debug,\n verbose : settings.verbose,\n duration : settings.duration,\n onComplete : function() {\n callback();\n },\n queue : true\n })\n ;\n }\n else {\n module.debug('Hiding results with javascript');\n $results\n .stop()\n .fadeOut(settings.duration, settings.easing)\n ;\n }\n settings.onResultsClose.call($results);\n }\n },\n\n generateResults: function(response) {\n module.debug('Generating html from response', response);\n var\n template = settings.templates[settings.type],\n isProperObject = ($.isPlainObject(response[fields.results]) && !$.isEmptyObject(response[fields.results])),\n isProperArray = ($.isArray(response[fields.results]) && response[fields.results].length > 0),\n html = ''\n ;\n if(isProperObject || isProperArray ) {\n if(settings.maxResults > 0) {\n if(isProperObject) {\n if(settings.type == 'standard') {\n module.error(error.maxResults);\n }\n }\n else {\n response[fields.results] = response[fields.results].slice(0, settings.maxResults);\n }\n }\n if($.isFunction(template)) {\n html = template(response, fields);\n }\n else {\n module.error(error.noTemplate, false);\n }\n }\n else if(settings.showNoResults) {\n html = module.displayMessage(error.noResults, 'empty');\n }\n settings.onResults.call(element, response);\n return html;\n },\n\n displayMessage: function(text, type) {\n type = type || 'standard';\n module.debug('Displaying message', text, type);\n module.addResults( settings.templates.message(text, type) );\n return settings.templates.message(text, type);\n },\n\n setting: function(name, value) {\n if( $.isPlainObject(name) ) {\n $.extend(true, settings, name);\n }\n else if(value !== undefined) {\n settings[name] = value;\n }\n else {\n return settings[name];\n }\n },\n internal: function(name, value) {\n if( $.isPlainObject(name) ) {\n $.extend(true, module, name);\n }\n else if(value !== undefined) {\n module[name] = value;\n }\n else {\n return module[name];\n }\n },\n debug: function() {\n if(!settings.silent && settings.debug) {\n if(settings.performance) {\n module.performance.log(arguments);\n }\n else {\n module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');\n module.debug.apply(console, arguments);\n }\n }\n },\n verbose: function() {\n if(!settings.silent && settings.verbose && settings.debug) {\n if(settings.performance) {\n module.performance.log(arguments);\n }\n else {\n module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');\n module.verbose.apply(console, arguments);\n }\n }\n },\n error: function() {\n if(!settings.silent) {\n module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');\n module.error.apply(console, arguments);\n }\n },\n performance: {\n log: function(message) {\n var\n currentTime,\n executionTime,\n previousTime\n ;\n if(settings.performance) {\n currentTime = new Date().getTime();\n previousTime = time || currentTime;\n executionTime = currentTime - previousTime;\n time = currentTime;\n performance.push({\n 'Name' : message[0],\n 'Arguments' : [].slice.call(message, 1) || '',\n 'Element' : element,\n 'Execution Time' : executionTime\n });\n }\n clearTimeout(module.performance.timer);\n module.performance.timer = setTimeout(module.performance.display, 500);\n },\n display: function() {\n var\n title = settings.name + ':',\n totalTime = 0\n ;\n time = false;\n clearTimeout(module.performance.timer);\n $.each(performance, function(index, data) {\n totalTime += data['Execution Time'];\n });\n title += ' ' + totalTime + 'ms';\n if(moduleSelector) {\n title += ' \\'' + moduleSelector + '\\'';\n }\n if($allModules.length > 1) {\n title += ' ' + '(' + $allModules.length + ')';\n }\n if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {\n console.groupCollapsed(title);\n if(console.table) {\n console.table(performance);\n }\n else {\n $.each(performance, function(index, data) {\n console.log(data['Name'] + ': ' + data['Execution Time']+'ms');\n });\n }\n console.groupEnd();\n }\n performance = [];\n }\n },\n invoke: function(query, passedArguments, context) {\n var\n object = instance,\n maxDepth,\n found,\n response\n ;\n passedArguments = passedArguments || queryArguments;\n context = element || context;\n if(typeof query == 'string' && object !== undefined) {\n query = query.split(/[\\. ]/);\n maxDepth = query.length - 1;\n $.each(query, function(depth, value) {\n var camelCaseValue = (depth != maxDepth)\n ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)\n : query\n ;\n if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {\n object = object[camelCaseValue];\n }\n else if( object[camelCaseValue] !== undefined ) {\n found = object[camelCaseValue];\n return false;\n }\n else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {\n object = object[value];\n }\n else if( object[value] !== undefined ) {\n found = object[value];\n return false;\n }\n else {\n return false;\n }\n });\n }\n if( $.isFunction( found ) ) {\n response = found.apply(context, passedArguments);\n }\n else if(found !== undefined) {\n response = found;\n }\n if($.isArray(returnedValue)) {\n returnedValue.push(response);\n }\n else if(returnedValue !== undefined) {\n returnedValue = [returnedValue, response];\n }\n else if(response !== undefined) {\n returnedValue = response;\n }\n return found;\n }\n };\n if(methodInvoked) {\n if(instance === undefined) {\n module.initialize();\n }\n module.invoke(query);\n }\n else {\n if(instance !== undefined) {\n instance.invoke('destroy');\n }\n module.initialize();\n }\n\n })\n ;\n\n return (returnedValue !== undefined)\n ? returnedValue\n : this\n ;\n};\n\n$.fn.search.settings = {\n\n name : 'Search',\n namespace : 'search',\n\n silent : false,\n debug : false,\n verbose : false,\n performance : true,\n\n // template to use (specified in settings.templates)\n type : 'standard',\n\n // minimum characters required to search\n minCharacters : 1,\n\n // whether to select first result after searching automatically\n selectFirstResult : false,\n\n // API config\n apiSettings : false,\n\n // object to search\n source : false,\n\n // Whether search should query current term on focus\n searchOnFocus : true,\n\n // fields to search\n searchFields : [\n 'title',\n 'description'\n ],\n\n // field to display in standard results template\n displayField : '',\n\n // whether to include fuzzy results in local search\n searchFullText : true,\n\n // whether to add events to prompt automatically\n automatic : true,\n\n // delay before hiding menu after blur\n hideDelay : 0,\n\n // delay before searching\n searchDelay : 200,\n\n // maximum results returned from local\n maxResults : 7,\n\n // whether to store lookups in local cache\n cache : true,\n\n // whether no results errors should be shown\n showNoResults : true,\n\n // transition settings\n transition : 'scale',\n duration : 200,\n easing : 'easeOutExpo',\n\n // callbacks\n onSelect : false,\n onResultsAdd : false,\n\n onSearchQuery : function(query){},\n onResults : function(response){},\n\n onResultsOpen : function(){},\n onResultsClose : function(){},\n\n className: {\n animating : 'animating',\n active : 'active',\n empty : 'empty',\n focus : 'focus',\n hidden : 'hidden',\n loading : 'loading',\n results : 'results',\n pressed : 'down'\n },\n\n error : {\n source : 'Cannot search. No source used, and Semantic API module was not included',\n noResults : 'Your search returned no results',\n logging : 'Error in debug logging, exiting.',\n noEndpoint : 'No search endpoint was specified',\n noTemplate : 'A valid template name was not specified.',\n serverError : 'There was an issue querying the server.',\n maxResults : 'Results must be an array to use maxResults setting',\n method : 'The method you called is not defined.'\n },\n\n metadata: {\n cache : 'cache',\n results : 'results',\n result : 'result'\n },\n\n regExp: {\n escape : /[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g,\n beginsWith : '(?:\\s|^)'\n },\n\n // maps api response attributes to internal representation\n fields: {\n categories : 'results', // array of categories (category view)\n categoryName : 'name', // name of category (category view)\n categoryResults : 'results', // array of results (category view)\n description : 'description', // result description\n image : 'image', // result image\n price : 'price', // result price\n results : 'results', // array of results (standard)\n title : 'title', // result title\n url : 'url', // result url\n action : 'action', // \"view more\" object name\n actionText : 'text', // \"view more\" text\n actionURL : 'url' // \"view more\" url\n },\n\n selector : {\n prompt : '.prompt',\n searchButton : '.search.button',\n results : '.results',\n message : '.results > .message',\n category : '.category',\n result : '.result',\n title : '.title, .name'\n },\n\n templates: {\n escape: function(string) {\n var\n badChars = /[&<>\"'`]/g,\n shouldEscape = /[&<>\"'`]/,\n escape = {\n \"&\": \"&\",\n \"<\": \"<\",\n \">\": \">\",\n '\"': \""\",\n \"'\": \"'\",\n \"`\": \"`\"\n },\n escapedChar = function(chr) {\n return escape[chr];\n }\n ;\n if(shouldEscape.test(string)) {\n return string.replace(badChars, escapedChar);\n }\n return string;\n },\n message: function(message, type) {\n var\n html = ''\n ;\n if(message !== undefined && type !== undefined) {\n html += ''\n + '<div class=\"message ' + type + '\">'\n ;\n // message type\n if(type == 'empty') {\n html += ''\n + '<div class=\"header\">No Results</div class=\"header\">'\n + '<div class=\"description\">' + message + '</div class=\"description\">'\n ;\n }\n else {\n html += ' <div class=\"description\">' + message + '</div>';\n }\n html += '</div>';\n }\n return html;\n },\n category: function(response, fields) {\n var\n html = '',\n escape = $.fn.search.settings.templates.escape\n ;\n if(response[fields.categoryResults] !== undefined) {\n\n // each category\n $.each(response[fields.categoryResults], function(index, category) {\n if(category[fields.results] !== undefined && category.results.length > 0) {\n\n html += '<div class=\"category\">';\n\n if(category[fields.categoryName] !== undefined) {\n html += '<div class=\"name\">' + category[fields.categoryName] + '</div>';\n }\n\n // each item inside category\n $.each(category.results, function(index, result) {\n if(result[fields.url]) {\n html += '<a class=\"result\" href=\"' + result[fields.url] + '\">';\n }\n else {\n html += '<a class=\"result\">';\n }\n if(result[fields.image] !== undefined) {\n html += ''\n + '<div class=\"image\">'\n + ' <img src=\"' + result[fields.image] + '\">'\n + '</div>'\n ;\n }\n html += '<div class=\"content\">';\n if(result[fields.price] !== undefined) {\n html += '<div class=\"price\">' + result[fields.price] + '</div>';\n }\n if(result[fields.title] !== undefined) {\n html += '<div class=\"title\">' + result[fields.title] + '</div>';\n }\n if(result[fields.description] !== undefined) {\n html += '<div class=\"description\">' + result[fields.description] + '</div>';\n }\n html += ''\n + '</div>'\n ;\n html += '</a>';\n });\n html += ''\n + '</div>'\n ;\n }\n });\n if(response[fields.action]) {\n html += ''\n + '<a href=\"' + response[fields.action][fields.actionURL] + '\" class=\"action\">'\n + response[fields.action][fields.actionText]\n + '</a>';\n }\n return html;\n }\n return false;\n },\n standard: function(response, fields) {\n var\n html = ''\n ;\n if(response[fields.results] !== undefined) {\n\n // each result\n $.each(response[fields.results], function(index, result) {\n if(result[fields.url]) {\n html += '<a class=\"result\" href=\"' + result[fields.url] + '\">';\n }\n else {\n html += '<a class=\"result\">';\n }\n if(result[fields.image] !== undefined) {\n html += ''\n + '<div class=\"image\">'\n + ' <img src=\"' + result[fields.image] + '\">'\n + '</div>'\n ;\n }\n html += '<div class=\"content\">';\n if(result[fields.price] !== undefined) {\n html += '<div class=\"price\">' + result[fields.price] + '</div>';\n }\n if(result[fields.title] !== undefined) {\n html += '<div class=\"title\">' + result[fields.title] + '</div>';\n }\n if(result[fields.description] !== undefined) {\n html += '<div class=\"description\">' + result[fields.description] + '</div>';\n }\n html += ''\n + '</div>'\n ;\n html += '</a>';\n });\n\n if(response[fields.action]) {\n html += ''\n + '<a href=\"' + response[fields.action][fields.actionURL] + '\" class=\"action\">'\n + response[fields.action][fields.actionText]\n + '</a>';\n }\n return html;\n }\n return false;\n }\n }\n};\n\n})( jQuery, window, document );\n\n/*!\n * # Semantic UI 2.2.11 - Shape\n * http://github.com/semantic-org/semantic-ui/\n *\n *\n * Released under the MIT license\n * http://opensource.org/licenses/MIT\n *\n */\n\n;(function ($, window, document, undefined) {\n\n\"use strict\";\n\nwindow = (typeof window != 'undefined' && window.Math == Math)\n ? window\n : (typeof self != 'undefined' && self.Math == Math)\n ? self\n : Function('return this')()\n;\n\n$.fn.shape = function(parameters) {\n var\n $allModules = $(this),\n $body = $('body'),\n\n time = new Date().getTime(),\n performance = [],\n\n query = arguments[0],\n methodInvoked = (typeof query == 'string'),\n queryArguments = [].slice.call(arguments, 1),\n\n requestAnimationFrame = window.requestAnimationFrame\n || window.mozRequestAnimationFrame\n || window.webkitRequestAnimationFrame\n || window.msRequestAnimationFrame\n || function(callback) { setTimeout(callback, 0); },\n\n returnedValue\n ;\n\n $allModules\n .each(function() {\n var\n moduleSelector = $allModules.selector || '',\n settings = ( $.isPlainObject(parameters) )\n ? $.extend(true, {}, $.fn.shape.settings, parameters)\n : $.extend({}, $.fn.shape.settings),\n\n // internal aliases\n namespace = settings.namespace,\n selector = settings.selector,\n error = settings.error,\n className = settings.className,\n\n // define namespaces for modules\n eventNamespace = '.' + namespace,\n moduleNamespace = 'module-' + namespace,\n\n // selector cache\n $module = $(this),\n $sides = $module.find(selector.sides),\n $side = $module.find(selector.side),\n\n // private variables\n nextIndex = false,\n $activeSide,\n $nextSide,\n\n // standard module\n element = this,\n instance = $module.data(moduleNamespace),\n module\n ;\n\n module = {\n\n initialize: function() {\n module.verbose('Initializing module for', element);\n module.set.defaultSide();\n module.instantiate();\n },\n\n instantiate: function() {\n module.verbose('Storing instance of module', module);\n instance = module;\n $module\n .data(moduleNamespace, instance)\n ;\n },\n\n destroy: function() {\n module.verbose('Destroying previous module for', element);\n $module\n .removeData(moduleNamespace)\n .off(eventNamespace)\n ;\n },\n\n refresh: function() {\n module.verbose('Refreshing selector cache for', element);\n $module = $(element);\n $sides = $(this).find(selector.shape);\n $side = $(this).find(selector.side);\n },\n\n repaint: function() {\n module.verbose('Forcing repaint event');\n var\n shape = $sides[0] || document.createElement('div'),\n fakeAssignment = shape.offsetWidth\n ;\n },\n\n animate: function(propertyObject, callback) {\n module.verbose('Animating box with properties', propertyObject);\n callback = callback || function(event) {\n module.verbose('Executing animation callback');\n if(event !== undefined) {\n event.stopPropagation();\n }\n module.reset();\n module.set.active();\n };\n settings.beforeChange.call($nextSide[0]);\n if(module.get.transitionEvent()) {\n module.verbose('Starting CSS animation');\n $module\n .addClass(className.animating)\n ;\n $sides\n .css(propertyObject)\n .one(module.get.transitionEvent(), callback)\n ;\n module.set.duration(settings.duration);\n requestAnimationFrame(function() {\n $module\n .addClass(className.animating)\n ;\n $activeSide\n .addClass(className.hidden)\n ;\n });\n }\n else {\n callback();\n }\n },\n\n queue: function(method) {\n module.debug('Queueing animation of', method);\n $sides\n .one(module.get.transitionEvent(), function() {\n module.debug('Executing queued animation');\n setTimeout(function(){\n $module.shape(method);\n }, 0);\n })\n ;\n },\n\n reset: function() {\n module.verbose('Animating states reset');\n $module\n .removeClass(className.animating)\n .attr('style', '')\n .removeAttr('style')\n ;\n // removeAttr style does not consistently work in safari\n $sides\n .attr('style', '')\n .removeAttr('style')\n ;\n $side\n .attr('style', '')\n .removeAttr('style')\n .removeClass(className.hidden)\n ;\n $nextSide\n .removeClass(className.animating)\n .attr('style', '')\n .removeAttr('style')\n ;\n },\n\n is: {\n complete: function() {\n return ($side.filter('.' + className.active)[0] == $nextSide[0]);\n },\n animating: function() {\n return $module.hasClass(className.animating);\n }\n },\n\n set: {\n\n defaultSide: function() {\n $activeSide = $module.find('.' + settings.className.active);\n $nextSide = ( $activeSide.next(selector.side).length > 0 )\n ? $activeSide.next(selector.side)\n : $module.find(selector.side).first()\n ;\n nextIndex = false;\n module.verbose('Active side set to', $activeSide);\n module.verbose('Next side set to', $nextSide);\n },\n\n duration: function(duration) {\n duration = duration || settings.duration;\n duration = (typeof duration == 'number')\n ? duration + 'ms'\n : duration\n ;\n module.verbose('Setting animation duration', duration);\n if(settings.duration || settings.duration === 0) {\n $sides.add($side)\n .css({\n '-webkit-transition-duration': duration,\n '-moz-transition-duration': duration,\n '-ms-transition-duration': duration,\n '-o-transition-duration': duration,\n 'transition-duration': duration\n })\n ;\n }\n },\n\n currentStageSize: function() {\n var\n $activeSide = $module.find('.' + settings.className.active),\n width = $activeSide.outerWidth(true),\n height = $activeSide.outerHeight(true)\n ;\n $module\n .css({\n width: width,\n height: height\n })\n ;\n },\n\n stageSize: function() {\n var\n $clone = $module.clone().addClass(className.loading),\n $activeSide = $clone.find('.' + settings.className.active),\n $nextSide = (nextIndex)\n ? $clone.find(selector.side).eq(nextIndex)\n : ( $activeSide.next(selector.side).length > 0 )\n ? $activeSide.next(selector.side)\n : $clone.find(selector.side).first(),\n newWidth = (settings.width == 'next')\n ? $nextSide.outerWidth(true)\n : (settings.width == 'initial')\n ? $module.width()\n : settings.width,\n newHeight = (settings.height == 'next')\n ? $nextSide.outerHeight(true)\n : (settings.height == 'initial')\n ? $module.height()\n : settings.height\n ;\n $activeSide.removeClass(className.active);\n $nextSide.addClass(className.active);\n $clone.insertAfter($module);\n $clone.remove();\n if(settings.width != 'auto') {\n $module.css('width', newWidth + settings.jitter);\n module.verbose('Specifying width during animation', newWidth);\n }\n if(settings.height != 'auto') {\n $module.css('height', newHeight + settings.jitter);\n module.verbose('Specifying height during animation', newHeight);\n }\n },\n\n nextSide: function(selector) {\n nextIndex = selector;\n $nextSide = $side.filter(selector);\n nextIndex = $side.index($nextSide);\n if($nextSide.length === 0) {\n module.set.defaultSide();\n module.error(error.side);\n }\n module.verbose('Next side manually set to', $nextSide);\n },\n\n active: function() {\n module.verbose('Setting new side to active', $nextSide);\n $side\n .removeClass(className.active)\n ;\n $nextSide\n .addClass(className.active)\n ;\n settings.onChange.call($nextSide[0]);\n module.set.defaultSide();\n }\n },\n\n flip: {\n\n up: function() {\n if(module.is.complete() && !module.is.animating() && !settings.allowRepeats) {\n module.debug('Side already visible', $nextSide);\n return;\n }\n if( !module.is.animating()) {\n module.debug('Flipping up', $nextSide);\n var\n transform = module.get.transform.up()\n ;\n module.set.stageSize();\n module.stage.above();\n module.animate(transform);\n }\n else {\n module.queue('flip up');\n }\n },\n\n down: function() {\n if(module.is.complete() && !module.is.animating() && !settings.allowRepeats) {\n module.debug('Side already visible', $nextSide);\n return;\n }\n if( !module.is.animating()) {\n module.debug('Flipping down', $nextSide);\n var\n transform = module.get.transform.down()\n ;\n module.set.stageSize();\n module.stage.below();\n module.animate(transform);\n }\n else {\n module.queue('flip down');\n }\n },\n\n left: function() {\n if(module.is.complete() && !module.is.animating() && !settings.allowRepeats) {\n module.debug('Side already visible', $nextSide);\n return;\n }\n if( !module.is.animating()) {\n module.debug('Flipping left', $nextSide);\n var\n transform = module.get.transform.left()\n ;\n module.set.stageSize();\n module.stage.left();\n module.animate(transform);\n }\n else {\n module.queue('flip left');\n }\n },\n\n right: function() {\n if(module.is.complete() && !module.is.animating() && !settings.allowRepeats) {\n module.debug('Side already visible', $nextSide);\n return;\n }\n if( !module.is.animating()) {\n module.debug('Flipping right', $nextSide);\n var\n transform = module.get.transform.right()\n ;\n module.set.stageSize();\n module.stage.right();\n module.animate(transform);\n }\n else {\n module.queue('flip right');\n }\n },\n\n over: function() {\n if(module.is.complete() && !module.is.animating() && !settings.allowRepeats) {\n module.debug('Side already visible', $nextSide);\n return;\n }\n if( !module.is.animating()) {\n module.debug('Flipping over', $nextSide);\n module.set.stageSize();\n module.stage.behind();\n module.animate(module.get.transform.over() );\n }\n else {\n module.queue('flip over');\n }\n },\n\n back: function() {\n if(module.is.complete() && !module.is.animating() && !settings.allowRepeats) {\n module.debug('Side already visible', $nextSide);\n return;\n }\n if( !module.is.animating()) {\n module.debug('Flipping back', $nextSide);\n module.set.stageSize();\n module.stage.behind();\n module.animate(module.get.transform.back() );\n }\n else {\n module.queue('flip back');\n }\n }\n\n },\n\n get: {\n\n transform: {\n up: function() {\n var\n translate = {\n y: -(($activeSide.outerHeight(true) - $nextSide.outerHeight(true)) / 2),\n z: -($activeSide.outerHeight(true) / 2)\n }\n ;\n return {\n transform: 'translateY(' + translate.y + 'px) translateZ('+ translate.z + 'px) rotateX(-90deg)'\n };\n },\n\n down: function() {\n var\n translate = {\n y: -(($activeSide.outerHeight(true) - $nextSide.outerHeight(true)) / 2),\n z: -($activeSide.outerHeight(true) / 2)\n }\n ;\n return {\n transform: 'translateY(' + translate.y + 'px) translateZ('+ translate.z + 'px) rotateX(90deg)'\n };\n },\n\n left: function() {\n var\n translate = {\n x : -(($activeSide.outerWidth(true) - $nextSide.outerWidth(true)) / 2),\n z : -($activeSide.outerWidth(true) / 2)\n }\n ;\n return {\n transform: 'translateX(' + translate.x + 'px) translateZ(' + translate.z + 'px) rotateY(90deg)'\n };\n },\n\n right: function() {\n var\n translate = {\n x : -(($activeSide.outerWidth(true) - $nextSide.outerWidth(true)) / 2),\n z : -($activeSide.outerWidth(true) / 2)\n }\n ;\n return {\n transform: 'translateX(' + translate.x + 'px) translateZ(' + translate.z + 'px) rotateY(-90deg)'\n };\n },\n\n over: function() {\n var\n translate = {\n x : -(($activeSide.outerWidth(true) - $nextSide.outerWidth(true)) / 2)\n }\n ;\n return {\n transform: 'translateX(' + translate.x + 'px) rotateY(180deg)'\n };\n },\n\n back: function() {\n var\n translate = {\n x : -(($activeSide.outerWidth(true) - $nextSide.outerWidth(true)) / 2)\n }\n ;\n return {\n transform: 'translateX(' + translate.x + 'px) rotateY(-180deg)'\n };\n }\n },\n\n transitionEvent: function() {\n var\n element = document.createElement('element'),\n transitions = {\n 'transition' :'transitionend',\n 'OTransition' :'oTransitionEnd',\n 'MozTransition' :'transitionend',\n 'WebkitTransition' :'webkitTransitionEnd'\n },\n transition\n ;\n for(transition in transitions){\n if( element.style[transition] !== undefined ){\n return transitions[transition];\n }\n }\n },\n\n nextSide: function() {\n return ( $activeSide.next(selector.side).length > 0 )\n ? $activeSide.next(selector.side)\n : $module.find(selector.side).first()\n ;\n }\n\n },\n\n stage: {\n\n above: function() {\n var\n box = {\n origin : (($activeSide.outerHeight(true) - $nextSide.outerHeight(true)) / 2),\n depth : {\n active : ($nextSide.outerHeight(true) / 2),\n next : ($activeSide.outerHeight(true) / 2)\n }\n }\n ;\n module.verbose('Setting the initial animation position as above', $nextSide, box);\n $sides\n .css({\n 'transform' : 'translateZ(-' + box.depth.active + 'px)'\n })\n ;\n $activeSide\n .css({\n 'transform' : 'rotateY(0deg) translateZ(' + box.depth.active + 'px)'\n })\n ;\n $nextSide\n .addClass(className.animating)\n .css({\n 'top' : box.origin + 'px',\n 'transform' : 'rotateX(90deg) translateZ(' + box.depth.next + 'px)'\n })\n ;\n },\n\n below: function() {\n var\n box = {\n origin : (($activeSide.outerHeight(true) - $nextSide.outerHeight(true)) / 2),\n depth : {\n active : ($nextSide.outerHeight(true) / 2),\n next : ($activeSide.outerHeight(true) / 2)\n }\n }\n ;\n module.verbose('Setting the initial animation position as below', $nextSide, box);\n $sides\n .css({\n 'transform' : 'translateZ(-' + box.depth.active + 'px)'\n })\n ;\n $activeSide\n .css({\n 'transform' : 'rotateY(0deg) translateZ(' + box.depth.active + 'px)'\n })\n ;\n $nextSide\n .addClass(className.animating)\n .css({\n 'top' : box.origin + 'px',\n 'transform' : 'rotateX(-90deg) translateZ(' + box.depth.next + 'px)'\n })\n ;\n },\n\n left: function() {\n var\n height = {\n active : $activeSide.outerWidth(true),\n next : $nextSide.outerWidth(true)\n },\n box = {\n origin : ( ( height.active - height.next ) / 2),\n depth : {\n active : (height.next / 2),\n next : (height.active / 2)\n }\n }\n ;\n module.verbose('Setting the initial animation position as left', $nextSide, box);\n $sides\n .css({\n 'transform' : 'translateZ(-' + box.depth.active + 'px)'\n })\n ;\n $activeSide\n .css({\n 'transform' : 'rotateY(0deg) translateZ(' + box.depth.active + 'px)'\n })\n ;\n $nextSide\n .addClass(className.animating)\n .css({\n 'left' : box.origin + 'px',\n 'transform' : 'rotateY(-90deg) translateZ(' + box.depth.next + 'px)'\n })\n ;\n },\n\n right: function() {\n var\n height = {\n active : $activeSide.outerWidth(true),\n next : $nextSide.outerWidth(true)\n },\n box = {\n origin : ( ( height.active - height.next ) / 2),\n depth : {\n active : (height.next / 2),\n next : (height.active / 2)\n }\n }\n ;\n module.verbose('Setting the initial animation position as left', $nextSide, box);\n $sides\n .css({\n 'transform' : 'translateZ(-' + box.depth.active + 'px)'\n })\n ;\n $activeSide\n .css({\n 'transform' : 'rotateY(0deg) translateZ(' + box.depth.active + 'px)'\n })\n ;\n $nextSide\n .addClass(className.animating)\n .css({\n 'left' : box.origin + 'px',\n 'transform' : 'rotateY(90deg) translateZ(' + box.depth.next + 'px)'\n })\n ;\n },\n\n behind: function() {\n var\n height = {\n active : $activeSide.outerWidth(true),\n next : $nextSide.outerWidth(true)\n },\n box = {\n origin : ( ( height.active - height.next ) / 2),\n depth : {\n active : (height.next / 2),\n next : (height.active / 2)\n }\n }\n ;\n module.verbose('Setting the initial animation position as behind', $nextSide, box);\n $activeSide\n .css({\n 'transform' : 'rotateY(0deg)'\n })\n ;\n $nextSide\n .addClass(className.animating)\n .css({\n 'left' : box.origin + 'px',\n 'transform' : 'rotateY(-180deg)'\n })\n ;\n }\n },\n setting: function(name, value) {\n module.debug('Changing setting', name, value);\n if( $.isPlainObject(name) ) {\n $.extend(true, settings, name);\n }\n else if(value !== undefined) {\n if($.isPlainObject(settings[name])) {\n $.extend(true, settings[name], value);\n }\n else {\n settings[name] = value;\n }\n }\n else {\n return settings[name];\n }\n },\n internal: function(name, value) {\n if( $.isPlainObject(name) ) {\n $.extend(true, module, name);\n }\n else if(value !== undefined) {\n module[name] = value;\n }\n else {\n return module[name];\n }\n },\n debug: function() {\n if(!settings.silent && settings.debug) {\n if(settings.performance) {\n module.performance.log(arguments);\n }\n else {\n module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');\n module.debug.apply(console, arguments);\n }\n }\n },\n verbose: function() {\n if(!settings.silent && settings.verbose && settings.debug) {\n if(settings.performance) {\n module.performance.log(arguments);\n }\n else {\n module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');\n module.verbose.apply(console, arguments);\n }\n }\n },\n error: function() {\n if(!settings.silent) {\n module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');\n module.error.apply(console, arguments);\n }\n },\n performance: {\n log: function(message) {\n var\n currentTime,\n executionTime,\n previousTime\n ;\n if(settings.performance) {\n currentTime = new Date().getTime();\n previousTime = time || currentTime;\n executionTime = currentTime - previousTime;\n time = currentTime;\n performance.push({\n 'Name' : message[0],\n 'Arguments' : [].slice.call(message, 1) || '',\n 'Element' : element,\n 'Execution Time' : executionTime\n });\n }\n clearTimeout(module.performance.timer);\n module.performance.timer = setTimeout(module.performance.display, 500);\n },\n display: function() {\n var\n title = settings.name + ':',\n totalTime = 0\n ;\n time = false;\n clearTimeout(module.performance.timer);\n $.each(performance, function(index, data) {\n totalTime += data['Execution Time'];\n });\n title += ' ' + totalTime + 'ms';\n if(moduleSelector) {\n title += ' \\'' + moduleSelector + '\\'';\n }\n if($allModules.length > 1) {\n title += ' ' + '(' + $allModules.length + ')';\n }\n if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {\n console.groupCollapsed(title);\n if(console.table) {\n console.table(performance);\n }\n else {\n $.each(performance, function(index, data) {\n console.log(data['Name'] + ': ' + data['Execution Time']+'ms');\n });\n }\n console.groupEnd();\n }\n performance = [];\n }\n },\n invoke: function(query, passedArguments, context) {\n var\n object = instance,\n maxDepth,\n found,\n response\n ;\n passedArguments = passedArguments || queryArguments;\n context = element || context;\n if(typeof query == 'string' && object !== undefined) {\n query = query.split(/[\\. ]/);\n maxDepth = query.length - 1;\n $.each(query, function(depth, value) {\n var camelCaseValue = (depth != maxDepth)\n ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)\n : query\n ;\n if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {\n object = object[camelCaseValue];\n }\n else if( object[camelCaseValue] !== undefined ) {\n found = object[camelCaseValue];\n return false;\n }\n else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {\n object = object[value];\n }\n else if( object[value] !== undefined ) {\n found = object[value];\n return false;\n }\n else {\n return false;\n }\n });\n }\n if ( $.isFunction( found ) ) {\n response = found.apply(context, passedArguments);\n }\n else if(found !== undefined) {\n response = found;\n }\n if($.isArray(returnedValue)) {\n returnedValue.push(response);\n }\n else if(returnedValue !== undefined) {\n returnedValue = [returnedValue, response];\n }\n else if(response !== undefined) {\n returnedValue = response;\n }\n return found;\n }\n };\n\n if(methodInvoked) {\n if(instance === undefined) {\n module.initialize();\n }\n module.invoke(query);\n }\n else {\n if(instance !== undefined) {\n instance.invoke('destroy');\n }\n module.initialize();\n }\n })\n ;\n\n return (returnedValue !== undefined)\n ? returnedValue\n : this\n ;\n};\n\n$.fn.shape.settings = {\n\n // module info\n name : 'Shape',\n\n // hide all debug content\n silent : false,\n\n // debug content outputted to console\n debug : false,\n\n // verbose debug output\n verbose : false,\n\n // fudge factor in pixels when swapping from 2d to 3d (can be useful to correct rounding errors)\n jitter : 0,\n\n // performance data output\n performance: true,\n\n // event namespace\n namespace : 'shape',\n\n // width during animation, can be set to 'auto', initial', 'next' or pixel amount\n width: 'initial',\n\n // height during animation, can be set to 'auto', 'initial', 'next' or pixel amount\n height: 'initial',\n\n // callback occurs on side change\n beforeChange : function() {},\n onChange : function() {},\n\n // allow animation to same side\n allowRepeats: false,\n\n // animation duration\n duration : false,\n\n // possible errors\n error: {\n side : 'You tried to switch to a side that does not exist.',\n method : 'The method you called is not defined'\n },\n\n // classnames used\n className : {\n animating : 'animating',\n hidden : 'hidden',\n loading : 'loading',\n active : 'active'\n },\n\n // selectors used\n selector : {\n sides : '.sides',\n side : '.side'\n }\n\n};\n\n\n})( jQuery, window, document );\n\n/*!\n * # Semantic UI 2.2.11 - Sidebar\n * http://github.com/semantic-org/semantic-ui/\n *\n *\n * Released under the MIT license\n * http://opensource.org/licenses/MIT\n *\n */\n\n;(function ($, window, document, undefined) {\n\n\"use strict\";\n\nwindow = (typeof window != 'undefined' && window.Math == Math)\n ? window\n : (typeof self != 'undefined' && self.Math == Math)\n ? self\n : Function('return this')()\n;\n\n$.fn.sidebar = function(parameters) {\n var\n $allModules = $(this),\n $window = $(window),\n $document = $(document),\n $html = $('html'),\n $head = $('head'),\n\n moduleSelector = $allModules.selector || '',\n\n time = new Date().getTime(),\n performance = [],\n\n query = arguments[0],\n methodInvoked = (typeof query == 'string'),\n queryArguments = [].slice.call(arguments, 1),\n\n requestAnimationFrame = window.requestAnimationFrame\n || window.mozRequestAnimationFrame\n || window.webkitRequestAnimationFrame\n || window.msRequestAnimationFrame\n || function(callback) { setTimeout(callback, 0); },\n\n returnedValue\n ;\n\n $allModules\n .each(function() {\n var\n settings = ( $.isPlainObject(parameters) )\n ? $.extend(true, {}, $.fn.sidebar.settings, parameters)\n : $.extend({}, $.fn.sidebar.settings),\n\n selector = settings.selector,\n className = settings.className,\n namespace = settings.namespace,\n regExp = settings.regExp,\n error = settings.error,\n\n eventNamespace = '.' + namespace,\n moduleNamespace = 'module-' + namespace,\n\n $module = $(this),\n $context = $(settings.context),\n\n $sidebars = $module.children(selector.sidebar),\n $fixed = $context.children(selector.fixed),\n $pusher = $context.children(selector.pusher),\n $style,\n\n element = this,\n instance = $module.data(moduleNamespace),\n\n elementNamespace,\n id,\n currentScroll,\n transitionEvent,\n\n module\n ;\n\n module = {\n\n initialize: function() {\n module.debug('Initializing sidebar', parameters);\n\n module.create.id();\n\n transitionEvent = module.get.transitionEvent();\n\n // avoids locking rendering if initialized in onReady\n if(settings.delaySetup) {\n requestAnimationFrame(module.setup.layout);\n }\n else {\n module.setup.layout();\n }\n\n requestAnimationFrame(function() {\n module.setup.cache();\n });\n\n module.instantiate();\n },\n\n instantiate: function() {\n module.verbose('Storing instance of module', module);\n instance = module;\n $module\n .data(moduleNamespace, module)\n ;\n },\n\n create: {\n id: function() {\n id = (Math.random().toString(16) + '000000000').substr(2,8);\n elementNamespace = '.' + id;\n module.verbose('Creating unique id for element', id);\n }\n },\n\n destroy: function() {\n module.verbose('Destroying previous module for', $module);\n $module\n .off(eventNamespace)\n .removeData(moduleNamespace)\n ;\n if(module.is.ios()) {\n module.remove.ios();\n }\n // bound by uuid\n $context.off(elementNamespace);\n $window.off(elementNamespace);\n $document.off(elementNamespace);\n },\n\n event: {\n clickaway: function(event) {\n var\n clickedInPusher = ($pusher.find(event.target).length > 0 || $pusher.is(event.target)),\n clickedContext = ($context.is(event.target))\n ;\n if(clickedInPusher) {\n module.verbose('User clicked on dimmed page');\n module.hide();\n }\n if(clickedContext) {\n module.verbose('User clicked on dimmable context (scaled out page)');\n module.hide();\n }\n },\n touch: function(event) {\n //event.stopPropagation();\n },\n containScroll: function(event) {\n if(element.scrollTop <= 0) {\n element.scrollTop = 1;\n }\n if((element.scrollTop + element.offsetHeight) >= element.scrollHeight) {\n element.scrollTop = element.scrollHeight - element.offsetHeight - 1;\n }\n },\n scroll: function(event) {\n if( $(event.target).closest(selector.sidebar).length === 0 ) {\n event.preventDefault();\n }\n }\n },\n\n bind: {\n clickaway: function() {\n module.verbose('Adding clickaway events to context', $context);\n if(settings.closable) {\n $context\n .on('click' + elementNamespace, module.event.clickaway)\n .on('touchend' + elementNamespace, module.event.clickaway)\n ;\n }\n },\n scrollLock: function() {\n if(settings.scrollLock) {\n module.debug('Disabling page scroll');\n $window\n .on('DOMMouseScroll' + elementNamespace, module.event.scroll)\n ;\n }\n module.verbose('Adding events to contain sidebar scroll');\n $document\n .on('touchmove' + elementNamespace, module.event.touch)\n ;\n $module\n .on('scroll' + eventNamespace, module.event.containScroll)\n ;\n }\n },\n unbind: {\n clickaway: function() {\n module.verbose('Removing clickaway events from context', $context);\n $context.off(elementNamespace);\n },\n scrollLock: function() {\n module.verbose('Removing scroll lock from page');\n $document.off(elementNamespace);\n $window.off(elementNamespace);\n $module.off('scroll' + eventNamespace);\n }\n },\n\n add: {\n inlineCSS: function() {\n var\n width = module.cache.width || $module.outerWidth(),\n height = module.cache.height || $module.outerHeight(),\n isRTL = module.is.rtl(),\n direction = module.get.direction(),\n distance = {\n left : width,\n right : -width,\n top : height,\n bottom : -height\n },\n style\n ;\n\n if(isRTL){\n module.verbose('RTL detected, flipping widths');\n distance.left = -width;\n distance.right = width;\n }\n\n style = '<style>';\n\n if(direction === 'left' || direction === 'right') {\n module.debug('Adding CSS rules for animation distance', width);\n style += ''\n + ' .ui.visible.' + direction + '.sidebar ~ .fixed,'\n + ' .ui.visible.' + direction + '.sidebar ~ .pusher {'\n + ' -webkit-transform: translate3d('+ distance[direction] + 'px, 0, 0);'\n + ' transform: translate3d('+ distance[direction] + 'px, 0, 0);'\n + ' }'\n ;\n }\n else if(direction === 'top' || direction == 'bottom') {\n style += ''\n + ' .ui.visible.' + direction + '.sidebar ~ .fixed,'\n + ' .ui.visible.' + direction + '.sidebar ~ .pusher {'\n + ' -webkit-transform: translate3d(0, ' + distance[direction] + 'px, 0);'\n + ' transform: translate3d(0, ' + distance[direction] + 'px, 0);'\n + ' }'\n ;\n }\n\n /* IE is only browser not to create context with transforms */\n /* https://www.w3.org/Bugs/Public/show_bug.cgi?id=16328 */\n if( module.is.ie() ) {\n if(direction === 'left' || direction === 'right') {\n module.debug('Adding CSS rules for animation distance', width);\n style += ''\n + ' body.pushable > .ui.visible.' + direction + '.sidebar ~ .pusher:after {'\n + ' -webkit-transform: translate3d('+ distance[direction] + 'px, 0, 0);'\n + ' transform: translate3d('+ distance[direction] + 'px, 0, 0);'\n + ' }'\n ;\n }\n else if(direction === 'top' || direction == 'bottom') {\n style += ''\n + ' body.pushable > .ui.visible.' + direction + '.sidebar ~ .pusher:after {'\n + ' -webkit-transform: translate3d(0, ' + distance[direction] + 'px, 0);'\n + ' transform: translate3d(0, ' + distance[direction] + 'px, 0);'\n + ' }'\n ;\n }\n /* opposite sides visible forces content overlay */\n style += ''\n + ' body.pushable > .ui.visible.left.sidebar ~ .ui.visible.right.sidebar ~ .pusher:after,'\n + ' body.pushable > .ui.visible.right.sidebar ~ .ui.visible.left.sidebar ~ .pusher:after {'\n + ' -webkit-transform: translate3d(0px, 0, 0);'\n + ' transform: translate3d(0px, 0, 0);'\n + ' }'\n ;\n }\n style += '</style>';\n $style = $(style)\n .appendTo($head)\n ;\n module.debug('Adding sizing css to head', $style);\n }\n },\n\n refresh: function() {\n module.verbose('Refreshing selector cache');\n $context = $(settings.context);\n $sidebars = $context.children(selector.sidebar);\n $pusher = $context.children(selector.pusher);\n $fixed = $context.children(selector.fixed);\n module.clear.cache();\n },\n\n refreshSidebars: function() {\n module.verbose('Refreshing other sidebars');\n $sidebars = $context.children(selector.sidebar);\n },\n\n repaint: function() {\n module.verbose('Forcing repaint event');\n element.style.display = 'none';\n var ignored = element.offsetHeight;\n element.scrollTop = element.scrollTop;\n element.style.display = '';\n },\n\n setup: {\n cache: function() {\n module.cache = {\n width : $module.outerWidth(),\n height : $module.outerHeight(),\n rtl : ($module.css('direction') == 'rtl')\n };\n },\n layout: function() {\n if( $context.children(selector.pusher).length === 0 ) {\n module.debug('Adding wrapper element for sidebar');\n module.error(error.pusher);\n $pusher = $('<div class=\"pusher\" />');\n $context\n .children()\n .not(selector.omitted)\n .not($sidebars)\n .wrapAll($pusher)\n ;\n module.refresh();\n }\n if($module.nextAll(selector.pusher).length === 0 || $module.nextAll(selector.pusher)[0] !== $pusher[0]) {\n module.debug('Moved sidebar to correct parent element');\n module.error(error.movedSidebar, element);\n $module.detach().prependTo($context);\n module.refresh();\n }\n module.clear.cache();\n module.set.pushable();\n module.set.direction();\n }\n },\n\n attachEvents: function(selector, event) {\n var\n $toggle = $(selector)\n ;\n event = $.isFunction(module[event])\n ? module[event]\n : module.toggle\n ;\n if($toggle.length > 0) {\n module.debug('Attaching sidebar events to element', selector, event);\n $toggle\n .on('click' + eventNamespace, event)\n ;\n }\n else {\n module.error(error.notFound, selector);\n }\n },\n\n show: function(callback) {\n callback = $.isFunction(callback)\n ? callback\n : function(){}\n ;\n if(module.is.hidden()) {\n module.refreshSidebars();\n if(settings.overlay) {\n module.error(error.overlay);\n settings.transition = 'overlay';\n }\n module.refresh();\n if(module.othersActive()) {\n module.debug('Other sidebars currently visible');\n if(settings.exclusive) {\n // if not overlay queue animation after hide\n if(settings.transition != 'overlay') {\n module.hideOthers(module.show);\n return;\n }\n else {\n module.hideOthers();\n }\n }\n else {\n settings.transition = 'overlay';\n }\n }\n module.pushPage(function() {\n callback.call(element);\n settings.onShow.call(element);\n });\n settings.onChange.call(element);\n settings.onVisible.call(element);\n }\n else {\n module.debug('Sidebar is already visible');\n }\n },\n\n hide: function(callback) {\n callback = $.isFunction(callback)\n ? callback\n : function(){}\n ;\n if(module.is.visible() || module.is.animating()) {\n module.debug('Hiding sidebar', callback);\n module.refreshSidebars();\n module.pullPage(function() {\n callback.call(element);\n settings.onHidden.call(element);\n });\n settings.onChange.call(element);\n settings.onHide.call(element);\n }\n },\n\n othersAnimating: function() {\n return ($sidebars.not($module).filter('.' + className.animating).length > 0);\n },\n othersVisible: function() {\n return ($sidebars.not($module).filter('.' + className.visible).length > 0);\n },\n othersActive: function() {\n return(module.othersVisible() || module.othersAnimating());\n },\n\n hideOthers: function(callback) {\n var\n $otherSidebars = $sidebars.not($module).filter('.' + className.visible),\n sidebarCount = $otherSidebars.length,\n callbackCount = 0\n ;\n callback = callback || function(){};\n $otherSidebars\n .sidebar('hide', function() {\n callbackCount++;\n if(callbackCount == sidebarCount) {\n callback();\n }\n })\n ;\n },\n\n toggle: function() {\n module.verbose('Determining toggled direction');\n if(module.is.hidden()) {\n module.show();\n }\n else {\n module.hide();\n }\n },\n\n pushPage: function(callback) {\n var\n transition = module.get.transition(),\n $transition = (transition === 'overlay' || module.othersActive())\n ? $module\n : $pusher,\n animate,\n dim,\n transitionEnd\n ;\n callback = $.isFunction(callback)\n ? callback\n : function(){}\n ;\n if(settings.transition == 'scale down') {\n module.scrollToTop();\n }\n module.set.transition(transition);\n module.repaint();\n animate = function() {\n module.bind.clickaway();\n module.add.inlineCSS();\n module.set.animating();\n module.set.visible();\n };\n dim = function() {\n module.set.dimmed();\n };\n transitionEnd = function(event) {\n if( event.target == $transition[0] ) {\n $transition.off(transitionEvent + elementNamespace, transitionEnd);\n module.remove.animating();\n module.bind.scrollLock();\n callback.call(element);\n }\n };\n $transition.off(transitionEvent + elementNamespace);\n $transition.on(transitionEvent + elementNamespace, transitionEnd);\n requestAnimationFrame(animate);\n if(settings.dimPage && !module.othersVisible()) {\n requestAnimationFrame(dim);\n }\n },\n\n pullPage: function(callback) {\n var\n transition = module.get.transition(),\n $transition = (transition == 'overlay' || module.othersActive())\n ? $module\n : $pusher,\n animate,\n transitionEnd\n ;\n callback = $.isFunction(callback)\n ? callback\n : function(){}\n ;\n module.verbose('Removing context push state', module.get.direction());\n\n module.unbind.clickaway();\n module.unbind.scrollLock();\n\n animate = function() {\n module.set.transition(transition);\n module.set.animating();\n module.remove.visible();\n if(settings.dimPage && !module.othersVisible()) {\n $pusher.removeClass(className.dimmed);\n }\n };\n transitionEnd = function(event) {\n if( event.target == $transition[0] ) {\n $transition.off(transitionEvent + elementNamespace, transitionEnd);\n module.remove.animating();\n module.remove.transition();\n module.remove.inlineCSS();\n if(transition == 'scale down' || (settings.returnScroll && module.is.mobile()) ) {\n module.scrollBack();\n }\n callback.call(element);\n }\n };\n $transition.off(transitionEvent + elementNamespace);\n $transition.on(transitionEvent + elementNamespace, transitionEnd);\n requestAnimationFrame(animate);\n },\n\n scrollToTop: function() {\n module.verbose('Scrolling to top of page to avoid animation issues');\n currentScroll = $(window).scrollTop();\n $module.scrollTop(0);\n window.scrollTo(0, 0);\n },\n\n scrollBack: function() {\n module.verbose('Scrolling back to original page position');\n window.scrollTo(0, currentScroll);\n },\n\n clear: {\n cache: function() {\n module.verbose('Clearing cached dimensions');\n module.cache = {};\n }\n },\n\n set: {\n\n // ios only (scroll on html not document). This prevent auto-resize canvas/scroll in ios\n // (This is no longer necessary in latest iOS)\n ios: function() {\n $html.addClass(className.ios);\n },\n\n // container\n pushed: function() {\n $context.addClass(className.pushed);\n },\n pushable: function() {\n $context.addClass(className.pushable);\n },\n\n // pusher\n dimmed: function() {\n $pusher.addClass(className.dimmed);\n },\n\n // sidebar\n active: function() {\n $module.addClass(className.active);\n },\n animating: function() {\n $module.addClass(className.animating);\n },\n transition: function(transition) {\n transition = transition || module.get.transition();\n $module.addClass(transition);\n },\n direction: function(direction) {\n direction = direction || module.get.direction();\n $module.addClass(className[direction]);\n },\n visible: function() {\n $module.addClass(className.visible);\n },\n overlay: function() {\n $module.addClass(className.overlay);\n }\n },\n remove: {\n\n inlineCSS: function() {\n module.debug('Removing inline css styles', $style);\n if($style && $style.length > 0) {\n $style.remove();\n }\n },\n\n // ios scroll on html not document\n ios: function() {\n $html.removeClass(className.ios);\n },\n\n // context\n pushed: function() {\n $context.removeClass(className.pushed);\n },\n pushable: function() {\n $context.removeClass(className.pushable);\n },\n\n // sidebar\n active: function() {\n $module.removeClass(className.active);\n },\n animating: function() {\n $module.removeClass(className.animating);\n },\n transition: function(transition) {\n transition = transition || module.get.transition();\n $module.removeClass(transition);\n },\n direction: function(direction) {\n direction = direction || module.get.direction();\n $module.removeClass(className[direction]);\n },\n visible: function() {\n $module.removeClass(className.visible);\n },\n overlay: function() {\n $module.removeClass(className.overlay);\n }\n },\n\n get: {\n direction: function() {\n if($module.hasClass(className.top)) {\n return className.top;\n }\n else if($module.hasClass(className.right)) {\n return className.right;\n }\n else if($module.hasClass(className.bottom)) {\n return className.bottom;\n }\n return className.left;\n },\n transition: function() {\n var\n direction = module.get.direction(),\n transition\n ;\n transition = ( module.is.mobile() )\n ? (settings.mobileTransition == 'auto')\n ? settings.defaultTransition.mobile[direction]\n : settings.mobileTransition\n : (settings.transition == 'auto')\n ? settings.defaultTransition.computer[direction]\n : settings.transition\n ;\n module.verbose('Determined transition', transition);\n return transition;\n },\n transitionEvent: function() {\n var\n element = document.createElement('element'),\n transitions = {\n 'transition' :'transitionend',\n 'OTransition' :'oTransitionEnd',\n 'MozTransition' :'transitionend',\n 'WebkitTransition' :'webkitTransitionEnd'\n },\n transition\n ;\n for(transition in transitions){\n if( element.style[transition] !== undefined ){\n return transitions[transition];\n }\n }\n }\n },\n\n is: {\n\n ie: function() {\n var\n isIE11 = (!(window.ActiveXObject) && 'ActiveXObject' in window),\n isIE = ('ActiveXObject' in window)\n ;\n return (isIE11 || isIE);\n },\n\n ios: function() {\n var\n userAgent = navigator.userAgent,\n isIOS = userAgent.match(regExp.ios),\n isMobileChrome = userAgent.match(regExp.mobileChrome)\n ;\n if(isIOS && !isMobileChrome) {\n module.verbose('Browser was found to be iOS', userAgent);\n return true;\n }\n else {\n return false;\n }\n },\n mobile: function() {\n var\n userAgent = navigator.userAgent,\n isMobile = userAgent.match(regExp.mobile)\n ;\n if(isMobile) {\n module.verbose('Browser was found to be mobile', userAgent);\n return true;\n }\n else {\n module.verbose('Browser is not mobile, using regular transition', userAgent);\n return false;\n }\n },\n hidden: function() {\n return !module.is.visible();\n },\n visible: function() {\n return $module.hasClass(className.visible);\n },\n // alias\n open: function() {\n return module.is.visible();\n },\n closed: function() {\n return module.is.hidden();\n },\n vertical: function() {\n return $module.hasClass(className.top);\n },\n animating: function() {\n return $context.hasClass(className.animating);\n },\n rtl: function () {\n if(module.cache.rtl === undefined) {\n module.cache.rtl = ($module.css('direction') == 'rtl');\n }\n return module.cache.rtl;\n }\n },\n\n setting: function(name, value) {\n module.debug('Changing setting', name, value);\n if( $.isPlainObject(name) ) {\n $.extend(true, settings, name);\n }\n else if(value !== undefined) {\n if($.isPlainObject(settings[name])) {\n $.extend(true, settings[name], value);\n }\n else {\n settings[name] = value;\n }\n }\n else {\n return settings[name];\n }\n },\n internal: function(name, value) {\n if( $.isPlainObject(name) ) {\n $.extend(true, module, name);\n }\n else if(value !== undefined) {\n module[name] = value;\n }\n else {\n return module[name];\n }\n },\n debug: function() {\n if(!settings.silent && settings.debug) {\n if(settings.performance) {\n module.performance.log(arguments);\n }\n else {\n module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');\n module.debug.apply(console, arguments);\n }\n }\n },\n verbose: function() {\n if(!settings.silent && settings.verbose && settings.debug) {\n if(settings.performance) {\n module.performance.log(arguments);\n }\n else {\n module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');\n module.verbose.apply(console, arguments);\n }\n }\n },\n error: function() {\n if(!settings.silent) {\n module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');\n module.error.apply(console, arguments);\n }\n },\n performance: {\n log: function(message) {\n var\n currentTime,\n executionTime,\n previousTime\n ;\n if(settings.performance) {\n currentTime = new Date().getTime();\n previousTime = time || currentTime;\n executionTime = currentTime - previousTime;\n time = currentTime;\n performance.push({\n 'Name' : message[0],\n 'Arguments' : [].slice.call(message, 1) || '',\n 'Element' : element,\n 'Execution Time' : executionTime\n });\n }\n clearTimeout(module.performance.timer);\n module.performance.timer = setTimeout(module.performance.display, 500);\n },\n display: function() {\n var\n title = settings.name + ':',\n totalTime = 0\n ;\n time = false;\n clearTimeout(module.performance.timer);\n $.each(performance, function(index, data) {\n totalTime += data['Execution Time'];\n });\n title += ' ' + totalTime + 'ms';\n if(moduleSelector) {\n title += ' \\'' + moduleSelector + '\\'';\n }\n if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {\n console.groupCollapsed(title);\n if(console.table) {\n console.table(performance);\n }\n else {\n $.each(performance, function(index, data) {\n console.log(data['Name'] + ': ' + data['Execution Time']+'ms');\n });\n }\n console.groupEnd();\n }\n performance = [];\n }\n },\n invoke: function(query, passedArguments, context) {\n var\n object = instance,\n maxDepth,\n found,\n response\n ;\n passedArguments = passedArguments || queryArguments;\n context = element || context;\n if(typeof query == 'string' && object !== undefined) {\n query = query.split(/[\\. ]/);\n maxDepth = query.length - 1;\n $.each(query, function(depth, value) {\n var camelCaseValue = (depth != maxDepth)\n ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)\n : query\n ;\n if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {\n object = object[camelCaseValue];\n }\n else if( object[camelCaseValue] !== undefined ) {\n found = object[camelCaseValue];\n return false;\n }\n else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {\n object = object[value];\n }\n else if( object[value] !== undefined ) {\n found = object[value];\n return false;\n }\n else {\n module.error(error.method, query);\n return false;\n }\n });\n }\n if ( $.isFunction( found ) ) {\n response = found.apply(context, passedArguments);\n }\n else if(found !== undefined) {\n response = found;\n }\n if($.isArray(returnedValue)) {\n returnedValue.push(response);\n }\n else if(returnedValue !== undefined) {\n returnedValue = [returnedValue, response];\n }\n else if(response !== undefined) {\n returnedValue = response;\n }\n return found;\n }\n }\n ;\n\n if(methodInvoked) {\n if(instance === undefined) {\n module.initialize();\n }\n module.invoke(query);\n }\n else {\n if(instance !== undefined) {\n module.invoke('destroy');\n }\n module.initialize();\n }\n });\n\n return (returnedValue !== undefined)\n ? returnedValue\n : this\n ;\n};\n\n$.fn.sidebar.settings = {\n\n name : 'Sidebar',\n namespace : 'sidebar',\n\n silent : false,\n debug : false,\n verbose : false,\n performance : true,\n\n transition : 'auto',\n mobileTransition : 'auto',\n\n defaultTransition : {\n computer: {\n left : 'uncover',\n right : 'uncover',\n top : 'overlay',\n bottom : 'overlay'\n },\n mobile: {\n left : 'uncover',\n right : 'uncover',\n top : 'overlay',\n bottom : 'overlay'\n }\n },\n\n context : 'body',\n exclusive : false,\n closable : true,\n dimPage : true,\n scrollLock : false,\n returnScroll : false,\n delaySetup : false,\n\n duration : 500,\n\n onChange : function(){},\n onShow : function(){},\n onHide : function(){},\n\n onHidden : function(){},\n onVisible : function(){},\n\n className : {\n active : 'active',\n animating : 'animating',\n dimmed : 'dimmed',\n ios : 'ios',\n pushable : 'pushable',\n pushed : 'pushed',\n right : 'right',\n top : 'top',\n left : 'left',\n bottom : 'bottom',\n visible : 'visible'\n },\n\n selector: {\n fixed : '.fixed',\n omitted : 'script, link, style, .ui.modal, .ui.dimmer, .ui.nag, .ui.fixed',\n pusher : '.pusher',\n sidebar : '.ui.sidebar'\n },\n\n regExp: {\n ios : /(iPad|iPhone|iPod)/g,\n mobileChrome : /(CriOS)/g,\n mobile : /Mobile|iP(hone|od|ad)|Android|BlackBerry|IEMobile|Kindle|NetFront|Silk-Accelerated|(hpw|web)OS|Fennec|Minimo|Opera M(obi|ini)|Blazer|Dolfin|Dolphin|Skyfire|Zune/g\n },\n\n error : {\n method : 'The method you called is not defined.',\n pusher : 'Had to add pusher element. For optimal performance make sure body content is inside a pusher element',\n movedSidebar : 'Had to move sidebar. For optimal performance make sure sidebar and pusher are direct children of your body tag',\n overlay : 'The overlay setting is no longer supported, use animation: overlay',\n notFound : 'There were no elements that matched the specified selector'\n }\n\n};\n\n\n})( jQuery, window, document );\n\n/*!\n * # Semantic UI 2.2.11 - Sticky\n * http://github.com/semantic-org/semantic-ui/\n *\n *\n * Released under the MIT license\n * http://opensource.org/licenses/MIT\n *\n */\n\n;(function ($, window, document, undefined) {\n\n\"use strict\";\n\nwindow = (typeof window != 'undefined' && window.Math == Math)\n ? window\n : (typeof self != 'undefined' && self.Math == Math)\n ? self\n : Function('return this')()\n;\n\n$.fn.sticky = function(parameters) {\n var\n $allModules = $(this),\n moduleSelector = $allModules.selector || '',\n\n time = new Date().getTime(),\n performance = [],\n\n query = arguments[0],\n methodInvoked = (typeof query == 'string'),\n queryArguments = [].slice.call(arguments, 1),\n returnedValue\n ;\n\n $allModules\n .each(function() {\n var\n settings = ( $.isPlainObject(parameters) )\n ? $.extend(true, {}, $.fn.sticky.settings, parameters)\n : $.extend({}, $.fn.sticky.settings),\n\n className = settings.className,\n namespace = settings.namespace,\n error = settings.error,\n\n eventNamespace = '.' + namespace,\n moduleNamespace = 'module-' + namespace,\n\n $module = $(this),\n $window = $(window),\n $scroll = $(settings.scrollContext),\n $container,\n $context,\n\n selector = $module.selector || '',\n instance = $module.data(moduleNamespace),\n\n requestAnimationFrame = window.requestAnimationFrame\n || window.mozRequestAnimationFrame\n || window.webkitRequestAnimationFrame\n || window.msRequestAnimationFrame\n || function(callback) { setTimeout(callback, 0); },\n\n element = this,\n\n documentObserver,\n observer,\n module\n ;\n\n module = {\n\n initialize: function() {\n\n module.determineContainer();\n module.determineContext();\n module.verbose('Initializing sticky', settings, $container);\n\n module.save.positions();\n module.checkErrors();\n module.bind.events();\n\n if(settings.observeChanges) {\n module.observeChanges();\n }\n module.instantiate();\n },\n\n instantiate: function() {\n module.verbose('Storing instance of module', module);\n instance = module;\n $module\n .data(moduleNamespace, module)\n ;\n },\n\n destroy: function() {\n module.verbose('Destroying previous instance');\n module.reset();\n if(documentObserver) {\n documentObserver.disconnect();\n }\n if(observer) {\n observer.disconnect();\n }\n $window\n .off('load' + eventNamespace, module.event.load)\n .off('resize' + eventNamespace, module.event.resize)\n ;\n $scroll\n .off('scrollchange' + eventNamespace, module.event.scrollchange)\n ;\n $module.removeData(moduleNamespace);\n },\n\n observeChanges: function() {\n if('MutationObserver' in window) {\n documentObserver = new MutationObserver(module.event.documentChanged);\n observer = new MutationObserver(module.event.changed);\n documentObserver.observe(document, {\n childList : true,\n subtree : true\n });\n observer.observe(element, {\n childList : true,\n subtree : true\n });\n observer.observe($context[0], {\n childList : true,\n subtree : true\n });\n module.debug('Setting up mutation observer', observer);\n }\n },\n\n determineContainer: function() {\n if(settings.container) {\n $container = $(settings.container);\n }\n else {\n $container = $module.offsetParent();\n }\n },\n\n determineContext: function() {\n if(settings.context) {\n $context = $(settings.context);\n }\n else {\n $context = $container;\n }\n if($context.length === 0) {\n module.error(error.invalidContext, settings.context, $module);\n return;\n }\n },\n\n checkErrors: function() {\n if( module.is.hidden() ) {\n module.error(error.visible, $module);\n }\n if(module.cache.element.height > module.cache.context.height) {\n module.reset();\n module.error(error.elementSize, $module);\n return;\n }\n },\n\n bind: {\n events: function() {\n $window\n .on('load' + eventNamespace, module.event.load)\n .on('resize' + eventNamespace, module.event.resize)\n ;\n // pub/sub pattern\n $scroll\n .off('scroll' + eventNamespace)\n .on('scroll' + eventNamespace, module.event.scroll)\n .on('scrollchange' + eventNamespace, module.event.scrollchange)\n ;\n }\n },\n\n event: {\n changed: function(mutations) {\n clearTimeout(module.timer);\n module.timer = setTimeout(function() {\n module.verbose('DOM tree modified, updating sticky menu', mutations);\n module.refresh();\n }, 100);\n },\n documentChanged: function(mutations) {\n [].forEach.call(mutations, function(mutation) {\n if(mutation.removedNodes) {\n [].forEach.call(mutation.removedNodes, function(node) {\n if(node == element || $(node).find(element).length > 0) {\n module.debug('Element removed from DOM, tearing down events');\n module.destroy();\n }\n });\n }\n });\n },\n load: function() {\n module.verbose('Page contents finished loading');\n requestAnimationFrame(module.refresh);\n },\n resize: function() {\n module.verbose('Window resized');\n requestAnimationFrame(module.refresh);\n },\n scroll: function() {\n requestAnimationFrame(function() {\n $scroll.triggerHandler('scrollchange' + eventNamespace, $scroll.scrollTop() );\n });\n },\n scrollchange: function(event, scrollPosition) {\n module.stick(scrollPosition);\n settings.onScroll.call(element);\n }\n },\n\n refresh: function(hardRefresh) {\n module.reset();\n if(!settings.context) {\n module.determineContext();\n }\n if(hardRefresh) {\n module.determineContainer();\n }\n module.save.positions();\n module.stick();\n settings.onReposition.call(element);\n },\n\n supports: {\n sticky: function() {\n var\n $element = $('<div/>'),\n element = $element[0]\n ;\n $element.addClass(className.supported);\n return($element.css('position').match('sticky'));\n }\n },\n\n save: {\n lastScroll: function(scroll) {\n module.lastScroll = scroll;\n },\n elementScroll: function(scroll) {\n module.elementScroll = scroll;\n },\n positions: function() {\n var\n scrollContext = {\n height : $scroll.height()\n },\n element = {\n margin: {\n top : parseInt($module.css('margin-top'), 10),\n bottom : parseInt($module.css('margin-bottom'), 10),\n },\n offset : $module.offset(),\n width : $module.outerWidth(),\n height : $module.outerHeight()\n },\n context = {\n offset : $context.offset(),\n height : $context.outerHeight()\n },\n container = {\n height: $container.outerHeight()\n }\n ;\n if( !module.is.standardScroll() ) {\n module.debug('Non-standard scroll. Removing scroll offset from element offset');\n\n scrollContext.top = $scroll.scrollTop();\n scrollContext.left = $scroll.scrollLeft();\n\n element.offset.top += scrollContext.top;\n context.offset.top += scrollContext.top;\n element.offset.left += scrollContext.left;\n context.offset.left += scrollContext.left;\n }\n module.cache = {\n fits : ( (element.height + settings.offset) <= scrollContext.height),\n sameHeight : (element.height == context.height),\n scrollContext : {\n height : scrollContext.height\n },\n element: {\n margin : element.margin,\n top : element.offset.top - element.margin.top,\n left : element.offset.left,\n width : element.width,\n height : element.height,\n bottom : element.offset.top + element.height\n },\n context: {\n top : context.offset.top,\n height : context.height,\n bottom : context.offset.top + context.height\n }\n };\n module.set.containerSize();\n\n module.stick();\n module.debug('Caching element positions', module.cache);\n }\n },\n\n get: {\n direction: function(scroll) {\n var\n direction = 'down'\n ;\n scroll = scroll || $scroll.scrollTop();\n if(module.lastScroll !== undefined) {\n if(module.lastScroll < scroll) {\n direction = 'down';\n }\n else if(module.lastScroll > scroll) {\n direction = 'up';\n }\n }\n return direction;\n },\n scrollChange: function(scroll) {\n scroll = scroll || $scroll.scrollTop();\n return (module.lastScroll)\n ? (scroll - module.lastScroll)\n : 0\n ;\n },\n currentElementScroll: function() {\n if(module.elementScroll) {\n return module.elementScroll;\n }\n return ( module.is.top() )\n ? Math.abs(parseInt($module.css('top'), 10)) || 0\n : Math.abs(parseInt($module.css('bottom'), 10)) || 0\n ;\n },\n\n elementScroll: function(scroll) {\n scroll = scroll || $scroll.scrollTop();\n var\n element = module.cache.element,\n scrollContext = module.cache.scrollContext,\n delta = module.get.scrollChange(scroll),\n maxScroll = (element.height - scrollContext.height + settings.offset),\n elementScroll = module.get.currentElementScroll(),\n possibleScroll = (elementScroll + delta)\n ;\n if(module.cache.fits || possibleScroll < 0) {\n elementScroll = 0;\n }\n else if(possibleScroll > maxScroll ) {\n elementScroll = maxScroll;\n }\n else {\n elementScroll = possibleScroll;\n }\n return elementScroll;\n }\n },\n\n remove: {\n lastScroll: function() {\n delete module.lastScroll;\n },\n elementScroll: function(scroll) {\n delete module.elementScroll;\n },\n minimumSize: function() {\n $container\n .css('min-height', '')\n ;\n },\n offset: function() {\n $module.css('margin-top', '');\n }\n },\n\n set: {\n offset: function() {\n module.verbose('Setting offset on element', settings.offset);\n $module\n .css('margin-top', settings.offset)\n ;\n },\n containerSize: function() {\n var\n tagName = $container.get(0).tagName\n ;\n if(tagName === 'HTML' || tagName == 'body') {\n // this can trigger for too many reasons\n //module.error(error.container, tagName, $module);\n module.determineContainer();\n }\n else {\n if( Math.abs($container.outerHeight() - module.cache.context.height) > settings.jitter) {\n module.debug('Context has padding, specifying exact height for container', module.cache.context.height);\n $container.css({\n height: module.cache.context.height\n });\n }\n }\n },\n minimumSize: function() {\n var\n element = module.cache.element\n ;\n $container\n .css('min-height', element.height)\n ;\n },\n scroll: function(scroll) {\n module.debug('Setting scroll on element', scroll);\n if(module.elementScroll == scroll) {\n return;\n }\n if( module.is.top() ) {\n $module\n .css('bottom', '')\n .css('top', -scroll)\n ;\n }\n if( module.is.bottom() ) {\n $module\n .css('top', '')\n .css('bottom', scroll)\n ;\n }\n },\n size: function() {\n if(module.cache.element.height !== 0 && module.cache.element.width !== 0) {\n element.style.setProperty('width', module.cache.element.width + 'px', 'important');\n element.style.setProperty('height', module.cache.element.height + 'px', 'important');\n }\n }\n },\n\n is: {\n standardScroll: function() {\n return ($scroll[0] == window);\n },\n top: function() {\n return $module.hasClass(className.top);\n },\n bottom: function() {\n return $module.hasClass(className.bottom);\n },\n initialPosition: function() {\n return (!module.is.fixed() && !module.is.bound());\n },\n hidden: function() {\n return (!$module.is(':visible'));\n },\n bound: function() {\n return $module.hasClass(className.bound);\n },\n fixed: function() {\n return $module.hasClass(className.fixed);\n }\n },\n\n stick: function(scroll) {\n var\n cachedPosition = scroll || $scroll.scrollTop(),\n cache = module.cache,\n fits = cache.fits,\n sameHeight = cache.sameHeight,\n element = cache.element,\n scrollContext = cache.scrollContext,\n context = cache.context,\n offset = (module.is.bottom() && settings.pushing)\n ? settings.bottomOffset\n : settings.offset,\n scroll = {\n top : cachedPosition + offset,\n bottom : cachedPosition + offset + scrollContext.height\n },\n direction = module.get.direction(scroll.top),\n elementScroll = (fits)\n ? 0\n : module.get.elementScroll(scroll.top),\n\n // shorthand\n doesntFit = !fits,\n elementVisible = (element.height !== 0)\n ;\n if(elementVisible && !sameHeight) {\n\n if( module.is.initialPosition() ) {\n if(scroll.top >= context.bottom) {\n module.debug('Initial element position is bottom of container');\n module.bindBottom();\n }\n else if(scroll.top > element.top) {\n if( (element.height + scroll.top - elementScroll) >= context.bottom ) {\n module.debug('Initial element position is bottom of container');\n module.bindBottom();\n }\n else {\n module.debug('Initial element position is fixed');\n module.fixTop();\n }\n }\n\n }\n else if( module.is.fixed() ) {\n\n // currently fixed top\n if( module.is.top() ) {\n if( scroll.top <= element.top ) {\n module.debug('Fixed element reached top of container');\n module.setInitialPosition();\n }\n else if( (element.height + scroll.top - elementScroll) >= context.bottom ) {\n module.debug('Fixed element reached bottom of container');\n module.bindBottom();\n }\n // scroll element if larger than screen\n else if(doesntFit) {\n module.set.scroll(elementScroll);\n module.save.lastScroll(scroll.top);\n module.save.elementScroll(elementScroll);\n }\n }\n\n // currently fixed bottom\n else if(module.is.bottom() ) {\n\n // top edge\n if( (scroll.bottom - element.height) <= element.top) {\n module.debug('Bottom fixed rail has reached top of container');\n module.setInitialPosition();\n }\n // bottom edge\n else if(scroll.bottom >= context.bottom) {\n module.debug('Bottom fixed rail has reached bottom of container');\n module.bindBottom();\n }\n // scroll element if larger than screen\n else if(doesntFit) {\n module.set.scroll(elementScroll);\n module.save.lastScroll(scroll.top);\n module.save.elementScroll(elementScroll);\n }\n\n }\n }\n else if( module.is.bottom() ) {\n if( scroll.top <= element.top ) {\n module.debug('Jumped from bottom fixed to top fixed, most likely used home/end button');\n module.setInitialPosition();\n }\n else {\n if(settings.pushing) {\n if(module.is.bound() && scroll.bottom <= context.bottom ) {\n module.debug('Fixing bottom attached element to bottom of browser.');\n module.fixBottom();\n }\n }\n else {\n if(module.is.bound() && (scroll.top <= context.bottom - element.height) ) {\n module.debug('Fixing bottom attached element to top of browser.');\n module.fixTop();\n }\n }\n }\n }\n }\n },\n\n bindTop: function() {\n module.debug('Binding element to top of parent container');\n module.remove.offset();\n $module\n .css({\n left : '',\n top : '',\n marginBottom : ''\n })\n .removeClass(className.fixed)\n .removeClass(className.bottom)\n .addClass(className.bound)\n .addClass(className.top)\n ;\n settings.onTop.call(element);\n settings.onUnstick.call(element);\n },\n bindBottom: function() {\n module.debug('Binding element to bottom of parent container');\n module.remove.offset();\n $module\n .css({\n left : '',\n top : ''\n })\n .removeClass(className.fixed)\n .removeClass(className.top)\n .addClass(className.bound)\n .addClass(className.bottom)\n ;\n settings.onBottom.call(element);\n settings.onUnstick.call(element);\n },\n\n setInitialPosition: function() {\n module.debug('Returning to initial position');\n module.unfix();\n module.unbind();\n },\n\n\n fixTop: function() {\n module.debug('Fixing element to top of page');\n if(settings.setSize) {\n module.set.size();\n }\n module.set.minimumSize();\n module.set.offset();\n $module\n .css({\n left : module.cache.element.left,\n bottom : '',\n marginBottom : ''\n })\n .removeClass(className.bound)\n .removeClass(className.bottom)\n .addClass(className.fixed)\n .addClass(className.top)\n ;\n settings.onStick.call(element);\n },\n\n fixBottom: function() {\n module.debug('Sticking element to bottom of page');\n if(settings.setSize) {\n module.set.size();\n }\n module.set.minimumSize();\n module.set.offset();\n $module\n .css({\n left : module.cache.element.left,\n bottom : '',\n marginBottom : ''\n })\n .removeClass(className.bound)\n .removeClass(className.top)\n .addClass(className.fixed)\n .addClass(className.bottom)\n ;\n settings.onStick.call(element);\n },\n\n unbind: function() {\n if( module.is.bound() ) {\n module.debug('Removing container bound position on element');\n module.remove.offset();\n $module\n .removeClass(className.bound)\n .removeClass(className.top)\n .removeClass(className.bottom)\n ;\n }\n },\n\n unfix: function() {\n if( module.is.fixed() ) {\n module.debug('Removing fixed position on element');\n module.remove.minimumSize();\n module.remove.offset();\n $module\n .removeClass(className.fixed)\n .removeClass(className.top)\n .removeClass(className.bottom)\n ;\n settings.onUnstick.call(element);\n }\n },\n\n reset: function() {\n module.debug('Resetting elements position');\n module.unbind();\n module.unfix();\n module.resetCSS();\n module.remove.offset();\n module.remove.lastScroll();\n },\n\n resetCSS: function() {\n $module\n .css({\n width : '',\n height : ''\n })\n ;\n $container\n .css({\n height: ''\n })\n ;\n },\n\n setting: function(name, value) {\n if( $.isPlainObject(name) ) {\n $.extend(true, settings, name);\n }\n else if(value !== undefined) {\n settings[name] = value;\n }\n else {\n return settings[name];\n }\n },\n internal: function(name, value) {\n if( $.isPlainObject(name) ) {\n $.extend(true, module, name);\n }\n else if(value !== undefined) {\n module[name] = value;\n }\n else {\n return module[name];\n }\n },\n debug: function() {\n if(!settings.silent && settings.debug) {\n if(settings.performance) {\n module.performance.log(arguments);\n }\n else {\n module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');\n module.debug.apply(console, arguments);\n }\n }\n },\n verbose: function() {\n if(!settings.silent && settings.verbose && settings.debug) {\n if(settings.performance) {\n module.performance.log(arguments);\n }\n else {\n module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');\n module.verbose.apply(console, arguments);\n }\n }\n },\n error: function() {\n if(!settings.silent) {\n module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');\n module.error.apply(console, arguments);\n }\n },\n performance: {\n log: function(message) {\n var\n currentTime,\n executionTime,\n previousTime\n ;\n if(settings.performance) {\n currentTime = new Date().getTime();\n previousTime = time || currentTime;\n executionTime = currentTime - previousTime;\n time = currentTime;\n performance.push({\n 'Name' : message[0],\n 'Arguments' : [].slice.call(message, 1) || '',\n 'Element' : element,\n 'Execution Time' : executionTime\n });\n }\n clearTimeout(module.performance.timer);\n module.performance.timer = setTimeout(module.performance.display, 0);\n },\n display: function() {\n var\n title = settings.name + ':',\n totalTime = 0\n ;\n time = false;\n clearTimeout(module.performance.timer);\n $.each(performance, function(index, data) {\n totalTime += data['Execution Time'];\n });\n title += ' ' + totalTime + 'ms';\n if(moduleSelector) {\n title += ' \\'' + moduleSelector + '\\'';\n }\n if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {\n console.groupCollapsed(title);\n if(console.table) {\n console.table(performance);\n }\n else {\n $.each(performance, function(index, data) {\n console.log(data['Name'] + ': ' + data['Execution Time']+'ms');\n });\n }\n console.groupEnd();\n }\n performance = [];\n }\n },\n invoke: function(query, passedArguments, context) {\n var\n object = instance,\n maxDepth,\n found,\n response\n ;\n passedArguments = passedArguments || queryArguments;\n context = element || context;\n if(typeof query == 'string' && object !== undefined) {\n query = query.split(/[\\. ]/);\n maxDepth = query.length - 1;\n $.each(query, function(depth, value) {\n var camelCaseValue = (depth != maxDepth)\n ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)\n : query\n ;\n if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {\n object = object[camelCaseValue];\n }\n else if( object[camelCaseValue] !== undefined ) {\n found = object[camelCaseValue];\n return false;\n }\n else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {\n object = object[value];\n }\n else if( object[value] !== undefined ) {\n found = object[value];\n return false;\n }\n else {\n return false;\n }\n });\n }\n if ( $.isFunction( found ) ) {\n response = found.apply(context, passedArguments);\n }\n else if(found !== undefined) {\n response = found;\n }\n if($.isArray(returnedValue)) {\n returnedValue.push(response);\n }\n else if(returnedValue !== undefined) {\n returnedValue = [returnedValue, response];\n }\n else if(response !== undefined) {\n returnedValue = response;\n }\n return found;\n }\n };\n\n if(methodInvoked) {\n if(instance === undefined) {\n module.initialize();\n }\n module.invoke(query);\n }\n else {\n if(instance !== undefined) {\n instance.invoke('destroy');\n }\n module.initialize();\n }\n })\n ;\n\n return (returnedValue !== undefined)\n ? returnedValue\n : this\n ;\n};\n\n$.fn.sticky.settings = {\n\n name : 'Sticky',\n namespace : 'sticky',\n\n silent : false,\n debug : false,\n verbose : true,\n performance : true,\n\n // whether to stick in the opposite direction on scroll up\n pushing : false,\n\n context : false,\n container : false,\n\n // Context to watch scroll events\n scrollContext : window,\n\n // Offset to adjust scroll\n offset : 0,\n\n // Offset to adjust scroll when attached to bottom of screen\n bottomOffset : 0,\n\n // will only set container height if difference between context and container is larger than this number\n jitter : 5,\n\n // set width of sticky element when it is fixed to page (used to make sure 100% width is maintained if no fixed size set)\n setSize : true,\n\n // Whether to automatically observe changes with Mutation Observers\n observeChanges : false,\n\n // Called when position is recalculated\n onReposition : function(){},\n\n // Called on each scroll\n onScroll : function(){},\n\n // Called when element is stuck to viewport\n onStick : function(){},\n\n // Called when element is unstuck from viewport\n onUnstick : function(){},\n\n // Called when element reaches top of context\n onTop : function(){},\n\n // Called when element reaches bottom of context\n onBottom : function(){},\n\n error : {\n container : 'Sticky element must be inside a relative container',\n visible : 'Element is hidden, you must call refresh after element becomes visible. Use silent setting to surpress this warning in production.',\n method : 'The method you called is not defined.',\n invalidContext : 'Context specified does not exist',\n elementSize : 'Sticky element is larger than its container, cannot create sticky.'\n },\n\n className : {\n bound : 'bound',\n fixed : 'fixed',\n supported : 'native',\n top : 'top',\n bottom : 'bottom'\n }\n\n};\n\n})( jQuery, window, document );\n\n/*!\n * # Semantic UI 2.2.11 - Tab\n * http://github.com/semantic-org/semantic-ui/\n *\n *\n * Released under the MIT license\n * http://opensource.org/licenses/MIT\n *\n */\n\n;(function ($, window, document, undefined) {\n\n\"use strict\";\n\nwindow = (typeof window != 'undefined' && window.Math == Math)\n ? window\n : (typeof self != 'undefined' && self.Math == Math)\n ? self\n : Function('return this')()\n;\n\n$.fn.tab = function(parameters) {\n\n var\n // use window context if none specified\n $allModules = $.isFunction(this)\n ? $(window)\n : $(this),\n\n moduleSelector = $allModules.selector || '',\n time = new Date().getTime(),\n performance = [],\n\n query = arguments[0],\n methodInvoked = (typeof query == 'string'),\n queryArguments = [].slice.call(arguments, 1),\n\n initializedHistory = false,\n returnedValue\n ;\n\n $allModules\n .each(function() {\n var\n\n settings = ( $.isPlainObject(parameters) )\n ? $.extend(true, {}, $.fn.tab.settings, parameters)\n : $.extend({}, $.fn.tab.settings),\n\n className = settings.className,\n metadata = settings.metadata,\n selector = settings.selector,\n error = settings.error,\n\n eventNamespace = '.' + settings.namespace,\n moduleNamespace = 'module-' + settings.namespace,\n\n $module = $(this),\n $context,\n $tabs,\n\n cache = {},\n firstLoad = true,\n recursionDepth = 0,\n element = this,\n instance = $module.data(moduleNamespace),\n\n activeTabPath,\n parameterArray,\n module,\n\n historyEvent\n\n ;\n\n module = {\n\n initialize: function() {\n module.debug('Initializing tab menu item', $module);\n module.fix.callbacks();\n module.determineTabs();\n\n module.debug('Determining tabs', settings.context, $tabs);\n // set up automatic routing\n if(settings.auto) {\n module.set.auto();\n }\n module.bind.events();\n\n if(settings.history && !initializedHistory) {\n module.initializeHistory();\n initializedHistory = true;\n }\n\n module.instantiate();\n },\n\n instantiate: function () {\n module.verbose('Storing instance of module', module);\n instance = module;\n $module\n .data(moduleNamespace, module)\n ;\n },\n\n destroy: function() {\n module.debug('Destroying tabs', $module);\n $module\n .removeData(moduleNamespace)\n .off(eventNamespace)\n ;\n },\n\n bind: {\n events: function() {\n // if using $.tab don't add events\n if( !$.isWindow( element ) ) {\n module.debug('Attaching tab activation events to element', $module);\n $module\n .on('click' + eventNamespace, module.event.click)\n ;\n }\n }\n },\n\n determineTabs: function() {\n var\n $reference\n ;\n\n // determine tab context\n if(settings.context === 'parent') {\n if($module.closest(selector.ui).length > 0) {\n $reference = $module.closest(selector.ui);\n module.verbose('Using closest UI element as parent', $reference);\n }\n else {\n $reference = $module;\n }\n $context = $reference.parent();\n module.verbose('Determined parent element for creating context', $context);\n }\n else if(settings.context) {\n $context = $(settings.context);\n module.verbose('Using selector for tab context', settings.context, $context);\n }\n else {\n $context = $('body');\n }\n // find tabs\n if(settings.childrenOnly) {\n $tabs = $context.children(selector.tabs);\n module.debug('Searching tab context children for tabs', $context, $tabs);\n }\n else {\n $tabs = $context.find(selector.tabs);\n module.debug('Searching tab context for tabs', $context, $tabs);\n }\n },\n\n fix: {\n callbacks: function() {\n if( $.isPlainObject(parameters) && (parameters.onTabLoad || parameters.onTabInit) ) {\n if(parameters.onTabLoad) {\n parameters.onLoad = parameters.onTabLoad;\n delete parameters.onTabLoad;\n module.error(error.legacyLoad, parameters.onLoad);\n }\n if(parameters.onTabInit) {\n parameters.onFirstLoad = parameters.onTabInit;\n delete parameters.onTabInit;\n module.error(error.legacyInit, parameters.onFirstLoad);\n }\n settings = $.extend(true, {}, $.fn.tab.settings, parameters);\n }\n }\n },\n\n initializeHistory: function() {\n module.debug('Initializing page state');\n if( $.address === undefined ) {\n module.error(error.state);\n return false;\n }\n else {\n if(settings.historyType == 'state') {\n module.debug('Using HTML5 to manage state');\n if(settings.path !== false) {\n $.address\n .history(true)\n .state(settings.path)\n ;\n }\n else {\n module.error(error.path);\n return false;\n }\n }\n $.address\n .bind('change', module.event.history.change)\n ;\n }\n },\n\n event: {\n click: function(event) {\n var\n tabPath = $(this).data(metadata.tab)\n ;\n if(tabPath !== undefined) {\n if(settings.history) {\n module.verbose('Updating page state', event);\n $.address.value(tabPath);\n }\n else {\n module.verbose('Changing tab', event);\n module.changeTab(tabPath);\n }\n event.preventDefault();\n }\n else {\n module.debug('No tab specified');\n }\n },\n history: {\n change: function(event) {\n var\n tabPath = event.pathNames.join('/') || module.get.initialPath(),\n pageTitle = settings.templates.determineTitle(tabPath) || false\n ;\n module.performance.display();\n module.debug('History change event', tabPath, event);\n historyEvent = event;\n if(tabPath !== undefined) {\n module.changeTab(tabPath);\n }\n if(pageTitle) {\n $.address.title(pageTitle);\n }\n }\n }\n },\n\n refresh: function() {\n if(activeTabPath) {\n module.debug('Refreshing tab', activeTabPath);\n module.changeTab(activeTabPath);\n }\n },\n\n cache: {\n\n read: function(cacheKey) {\n return (cacheKey !== undefined)\n ? cache[cacheKey]\n : false\n ;\n },\n add: function(cacheKey, content) {\n cacheKey = cacheKey || activeTabPath;\n module.debug('Adding cached content for', cacheKey);\n cache[cacheKey] = content;\n },\n remove: function(cacheKey) {\n cacheKey = cacheKey || activeTabPath;\n module.debug('Removing cached content for', cacheKey);\n delete cache[cacheKey];\n }\n },\n\n set: {\n auto: function() {\n var\n url = (typeof settings.path == 'string')\n ? settings.path.replace(/\\/$/, '') + '/{$tab}'\n : '/{$tab}'\n ;\n module.verbose('Setting up automatic tab retrieval from server', url);\n if($.isPlainObject(settings.apiSettings)) {\n settings.apiSettings.url = url;\n }\n else {\n settings.apiSettings = {\n url: url\n };\n }\n },\n loading: function(tabPath) {\n var\n $tab = module.get.tabElement(tabPath),\n isLoading = $tab.hasClass(className.loading)\n ;\n if(!isLoading) {\n module.verbose('Setting loading state for', $tab);\n $tab\n .addClass(className.loading)\n .siblings($tabs)\n .removeClass(className.active + ' ' + className.loading)\n ;\n if($tab.length > 0) {\n settings.onRequest.call($tab[0], tabPath);\n }\n }\n },\n state: function(state) {\n $.address.value(state);\n }\n },\n\n changeTab: function(tabPath) {\n var\n pushStateAvailable = (window.history && window.history.pushState),\n shouldIgnoreLoad = (pushStateAvailable && settings.ignoreFirstLoad && firstLoad),\n remoteContent = (settings.auto || $.isPlainObject(settings.apiSettings) ),\n // only add default path if not remote content\n pathArray = (remoteContent && !shouldIgnoreLoad)\n ? module.utilities.pathToArray(tabPath)\n : module.get.defaultPathArray(tabPath)\n ;\n tabPath = module.utilities.arrayToPath(pathArray);\n $.each(pathArray, function(index, tab) {\n var\n currentPathArray = pathArray.slice(0, index + 1),\n currentPath = module.utilities.arrayToPath(currentPathArray),\n\n isTab = module.is.tab(currentPath),\n isLastIndex = (index + 1 == pathArray.length),\n\n $tab = module.get.tabElement(currentPath),\n $anchor,\n nextPathArray,\n nextPath,\n isLastTab\n ;\n module.verbose('Looking for tab', tab);\n if(isTab) {\n module.verbose('Tab was found', tab);\n // scope up\n activeTabPath = currentPath;\n parameterArray = module.utilities.filterArray(pathArray, currentPathArray);\n\n if(isLastIndex) {\n isLastTab = true;\n }\n else {\n nextPathArray = pathArray.slice(0, index + 2);\n nextPath = module.utilities.arrayToPath(nextPathArray);\n isLastTab = ( !module.is.tab(nextPath) );\n if(isLastTab) {\n module.verbose('Tab parameters found', nextPathArray);\n }\n }\n if(isLastTab && remoteContent) {\n if(!shouldIgnoreLoad) {\n module.activate.navigation(currentPath);\n module.fetch.content(currentPath, tabPath);\n }\n else {\n module.debug('Ignoring remote content on first tab load', currentPath);\n firstLoad = false;\n module.cache.add(tabPath, $tab.html());\n module.activate.all(currentPath);\n settings.onFirstLoad.call($tab[0], currentPath, parameterArray, historyEvent);\n settings.onLoad.call($tab[0], currentPath, parameterArray, historyEvent);\n }\n return false;\n }\n else {\n module.debug('Opened local tab', currentPath);\n module.activate.all(currentPath);\n if( !module.cache.read(currentPath) ) {\n module.cache.add(currentPath, true);\n module.debug('First time tab loaded calling tab init');\n settings.onFirstLoad.call($tab[0], currentPath, parameterArray, historyEvent);\n }\n settings.onLoad.call($tab[0], currentPath, parameterArray, historyEvent);\n }\n\n }\n else if(tabPath.search('/') == -1 && tabPath !== '') {\n // look for in page anchor\n $anchor = $('#' + tabPath + ', a[name=\"' + tabPath + '\"]');\n currentPath = $anchor.closest('[data-tab]').data(metadata.tab);\n $tab = module.get.tabElement(currentPath);\n // if anchor exists use parent tab\n if($anchor && $anchor.length > 0 && currentPath) {\n module.debug('Anchor link used, opening parent tab', $tab, $anchor);\n if( !$tab.hasClass(className.active) ) {\n setTimeout(function() {\n module.scrollTo($anchor);\n }, 0);\n }\n module.activate.all(currentPath);\n if( !module.cache.read(currentPath) ) {\n module.cache.add(currentPath, true);\n module.debug('First time tab loaded calling tab init');\n settings.onFirstLoad.call($tab[0], currentPath, parameterArray, historyEvent);\n }\n settings.onLoad.call($tab[0], currentPath, parameterArray, historyEvent);\n return false;\n }\n }\n else {\n module.error(error.missingTab, $module, $context, currentPath);\n return false;\n }\n });\n },\n\n scrollTo: function($element) {\n var\n scrollOffset = ($element && $element.length > 0)\n ? $element.offset().top\n : false\n ;\n if(scrollOffset !== false) {\n module.debug('Forcing scroll to an in-page link in a hidden tab', scrollOffset, $element);\n $(document).scrollTop(scrollOffset);\n }\n },\n\n update: {\n content: function(tabPath, html, evaluateScripts) {\n var\n $tab = module.get.tabElement(tabPath),\n tab = $tab[0]\n ;\n evaluateScripts = (evaluateScripts !== undefined)\n ? evaluateScripts\n : settings.evaluateScripts\n ;\n if(typeof settings.cacheType == 'string' && settings.cacheType.toLowerCase() == 'dom' && typeof html !== 'string') {\n $tab\n .empty()\n .append($(html).clone(true))\n ;\n }\n else {\n if(evaluateScripts) {\n module.debug('Updating HTML and evaluating inline scripts', tabPath, html);\n $tab.html(html);\n }\n else {\n module.debug('Updating HTML', tabPath, html);\n tab.innerHTML = html;\n }\n }\n }\n },\n\n fetch: {\n\n content: function(tabPath, fullTabPath) {\n var\n $tab = module.get.tabElement(tabPath),\n apiSettings = {\n dataType : 'html',\n encodeParameters : false,\n on : 'now',\n cache : settings.alwaysRefresh,\n headers : {\n 'X-Remote': true\n },\n onSuccess : function(response) {\n if(settings.cacheType == 'response') {\n module.cache.add(fullTabPath, response);\n }\n module.update.content(tabPath, response);\n if(tabPath == activeTabPath) {\n module.debug('Content loaded', tabPath);\n module.activate.tab(tabPath);\n }\n else {\n module.debug('Content loaded in background', tabPath);\n }\n settings.onFirstLoad.call($tab[0], tabPath, parameterArray, historyEvent);\n settings.onLoad.call($tab[0], tabPath, parameterArray, historyEvent);\n\n if(settings.loadOnce) {\n module.cache.add(fullTabPath, true);\n }\n else if(typeof settings.cacheType == 'string' && settings.cacheType.toLowerCase() == 'dom' && $tab.children().length > 0) {\n setTimeout(function() {\n var\n $clone = $tab.children().clone(true)\n ;\n $clone = $clone.not('script');\n module.cache.add(fullTabPath, $clone);\n }, 0);\n }\n else {\n module.cache.add(fullTabPath, $tab.html());\n }\n },\n urlData: {\n tab: fullTabPath\n }\n },\n request = $tab.api('get request') || false,\n existingRequest = ( request && request.state() === 'pending' ),\n requestSettings,\n cachedContent\n ;\n\n fullTabPath = fullTabPath || tabPath;\n cachedContent = module.cache.read(fullTabPath);\n\n\n if(settings.cache && cachedContent) {\n module.activate.tab(tabPath);\n module.debug('Adding cached content', fullTabPath);\n if(!settings.loadOnce) {\n if(settings.evaluateScripts == 'once') {\n module.update.content(tabPath, cachedContent, false);\n }\n else {\n module.update.content(tabPath, cachedContent);\n }\n }\n settings.onLoad.call($tab[0], tabPath, parameterArray, historyEvent);\n }\n else if(existingRequest) {\n module.set.loading(tabPath);\n module.debug('Content is already loading', fullTabPath);\n }\n else if($.api !== undefined) {\n requestSettings = $.extend(true, {}, settings.apiSettings, apiSettings);\n module.debug('Retrieving remote content', fullTabPath, requestSettings);\n module.set.loading(tabPath);\n $tab.api(requestSettings);\n }\n else {\n module.error(error.api);\n }\n }\n },\n\n activate: {\n all: function(tabPath) {\n module.activate.tab(tabPath);\n module.activate.navigation(tabPath);\n },\n tab: function(tabPath) {\n var\n $tab = module.get.tabElement(tabPath),\n $deactiveTabs = (settings.deactivate == 'siblings')\n ? $tab.siblings($tabs)\n : $tabs.not($tab),\n isActive = $tab.hasClass(className.active)\n ;\n module.verbose('Showing tab content for', $tab);\n if(!isActive) {\n $tab\n .addClass(className.active)\n ;\n $deactiveTabs\n .removeClass(className.active + ' ' + className.loading)\n ;\n if($tab.length > 0) {\n settings.onVisible.call($tab[0], tabPath);\n }\n }\n },\n navigation: function(tabPath) {\n var\n $navigation = module.get.navElement(tabPath),\n $deactiveNavigation = (settings.deactivate == 'siblings')\n ? $navigation.siblings($allModules)\n : $allModules.not($navigation),\n isActive = $navigation.hasClass(className.active)\n ;\n module.verbose('Activating tab navigation for', $navigation, tabPath);\n if(!isActive) {\n $navigation\n .addClass(className.active)\n ;\n $deactiveNavigation\n .removeClass(className.active + ' ' + className.loading)\n ;\n }\n }\n },\n\n deactivate: {\n all: function() {\n module.deactivate.navigation();\n module.deactivate.tabs();\n },\n navigation: function() {\n $allModules\n .removeClass(className.active)\n ;\n },\n tabs: function() {\n $tabs\n .removeClass(className.active + ' ' + className.loading)\n ;\n }\n },\n\n is: {\n tab: function(tabName) {\n return (tabName !== undefined)\n ? ( module.get.tabElement(tabName).length > 0 )\n : false\n ;\n }\n },\n\n get: {\n initialPath: function() {\n return $allModules.eq(0).data(metadata.tab) || $tabs.eq(0).data(metadata.tab);\n },\n path: function() {\n return $.address.value();\n },\n // adds default tabs to tab path\n defaultPathArray: function(tabPath) {\n return module.utilities.pathToArray( module.get.defaultPath(tabPath) );\n },\n defaultPath: function(tabPath) {\n var\n $defaultNav = $allModules.filter('[data-' + metadata.tab + '^=\"' + tabPath + '/\"]').eq(0),\n defaultTab = $defaultNav.data(metadata.tab) || false\n ;\n if( defaultTab ) {\n module.debug('Found default tab', defaultTab);\n if(recursionDepth < settings.maxDepth) {\n recursionDepth++;\n return module.get.defaultPath(defaultTab);\n }\n module.error(error.recursion);\n }\n else {\n module.debug('No default tabs found for', tabPath, $tabs);\n }\n recursionDepth = 0;\n return tabPath;\n },\n navElement: function(tabPath) {\n tabPath = tabPath || activeTabPath;\n return $allModules.filter('[data-' + metadata.tab + '=\"' + tabPath + '\"]');\n },\n tabElement: function(tabPath) {\n var\n $fullPathTab,\n $simplePathTab,\n tabPathArray,\n lastTab\n ;\n tabPath = tabPath || activeTabPath;\n tabPathArray = module.utilities.pathToArray(tabPath);\n lastTab = module.utilities.last(tabPathArray);\n $fullPathTab = $tabs.filter('[data-' + metadata.tab + '=\"' + tabPath + '\"]');\n $simplePathTab = $tabs.filter('[data-' + metadata.tab + '=\"' + lastTab + '\"]');\n return ($fullPathTab.length > 0)\n ? $fullPathTab\n : $simplePathTab\n ;\n },\n tab: function() {\n return activeTabPath;\n }\n },\n\n utilities: {\n filterArray: function(keepArray, removeArray) {\n return $.grep(keepArray, function(keepValue) {\n return ( $.inArray(keepValue, removeArray) == -1);\n });\n },\n last: function(array) {\n return $.isArray(array)\n ? array[ array.length - 1]\n : false\n ;\n },\n pathToArray: function(pathName) {\n if(pathName === undefined) {\n pathName = activeTabPath;\n }\n return typeof pathName == 'string'\n ? pathName.split('/')\n : [pathName]\n ;\n },\n arrayToPath: function(pathArray) {\n return $.isArray(pathArray)\n ? pathArray.join('/')\n : false\n ;\n }\n },\n\n setting: function(name, value) {\n module.debug('Changing setting', name, value);\n if( $.isPlainObject(name) ) {\n $.extend(true, settings, name);\n }\n else if(value !== undefined) {\n if($.isPlainObject(settings[name])) {\n $.extend(true, settings[name], value);\n }\n else {\n settings[name] = value;\n }\n }\n else {\n return settings[name];\n }\n },\n internal: function(name, value) {\n if( $.isPlainObject(name) ) {\n $.extend(true, module, name);\n }\n else if(value !== undefined) {\n module[name] = value;\n }\n else {\n return module[name];\n }\n },\n debug: function() {\n if(!settings.silent && settings.debug) {\n if(settings.performance) {\n module.performance.log(arguments);\n }\n else {\n module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');\n module.debug.apply(console, arguments);\n }\n }\n },\n verbose: function() {\n if(!settings.silent && settings.verbose && settings.debug) {\n if(settings.performance) {\n module.performance.log(arguments);\n }\n else {\n module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');\n module.verbose.apply(console, arguments);\n }\n }\n },\n error: function() {\n if(!settings.silent) {\n module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');\n module.error.apply(console, arguments);\n }\n },\n performance: {\n log: function(message) {\n var\n currentTime,\n executionTime,\n previousTime\n ;\n if(settings.performance) {\n currentTime = new Date().getTime();\n previousTime = time || currentTime;\n executionTime = currentTime - previousTime;\n time = currentTime;\n performance.push({\n 'Name' : message[0],\n 'Arguments' : [].slice.call(message, 1) || '',\n 'Element' : element,\n 'Execution Time' : executionTime\n });\n }\n clearTimeout(module.performance.timer);\n module.performance.timer = setTimeout(module.performance.display, 500);\n },\n display: function() {\n var\n title = settings.name + ':',\n totalTime = 0\n ;\n time = false;\n clearTimeout(module.performance.timer);\n $.each(performance, function(index, data) {\n totalTime += data['Execution Time'];\n });\n title += ' ' + totalTime + 'ms';\n if(moduleSelector) {\n title += ' \\'' + moduleSelector + '\\'';\n }\n if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {\n console.groupCollapsed(title);\n if(console.table) {\n console.table(performance);\n }\n else {\n $.each(performance, function(index, data) {\n console.log(data['Name'] + ': ' + data['Execution Time']+'ms');\n });\n }\n console.groupEnd();\n }\n performance = [];\n }\n },\n invoke: function(query, passedArguments, context) {\n var\n object = instance,\n maxDepth,\n found,\n response\n ;\n passedArguments = passedArguments || queryArguments;\n context = element || context;\n if(typeof query == 'string' && object !== undefined) {\n query = query.split(/[\\. ]/);\n maxDepth = query.length - 1;\n $.each(query, function(depth, value) {\n var camelCaseValue = (depth != maxDepth)\n ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)\n : query\n ;\n if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {\n object = object[camelCaseValue];\n }\n else if( object[camelCaseValue] !== undefined ) {\n found = object[camelCaseValue];\n return false;\n }\n else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {\n object = object[value];\n }\n else if( object[value] !== undefined ) {\n found = object[value];\n return false;\n }\n else {\n module.error(error.method, query);\n return false;\n }\n });\n }\n if ( $.isFunction( found ) ) {\n response = found.apply(context, passedArguments);\n }\n else if(found !== undefined) {\n response = found;\n }\n if($.isArray(returnedValue)) {\n returnedValue.push(response);\n }\n else if(returnedValue !== undefined) {\n returnedValue = [returnedValue, response];\n }\n else if(response !== undefined) {\n returnedValue = response;\n }\n return found;\n }\n };\n if(methodInvoked) {\n if(instance === undefined) {\n module.initialize();\n }\n module.invoke(query);\n }\n else {\n if(instance !== undefined) {\n instance.invoke('destroy');\n }\n module.initialize();\n }\n })\n ;\n return (returnedValue !== undefined)\n ? returnedValue\n : this\n ;\n\n};\n\n// shortcut for tabbed content with no defined navigation\n$.tab = function() {\n $(window).tab.apply(this, arguments);\n};\n\n$.fn.tab.settings = {\n\n name : 'Tab',\n namespace : 'tab',\n\n silent : false,\n debug : false,\n verbose : false,\n performance : true,\n\n auto : false, // uses pjax style endpoints fetching content from same url with remote-content headers\n history : false, // use browser history\n historyType : 'hash', // #/ or html5 state\n path : false, // base path of url\n\n context : false, // specify a context that tabs must appear inside\n childrenOnly : false, // use only tabs that are children of context\n maxDepth : 25, // max depth a tab can be nested\n\n deactivate : 'siblings', // whether tabs should deactivate sibling menu elements or all elements initialized together\n\n alwaysRefresh : false, // load tab content new every tab click\n cache : true, // cache the content requests to pull locally\n loadOnce : false, // Whether tab data should only be loaded once when using remote content\n cacheType : 'response', // Whether to cache exact response, or to html cache contents after scripts execute\n ignoreFirstLoad : false, // don't load remote content on first load\n\n apiSettings : false, // settings for api call\n evaluateScripts : 'once', // whether inline scripts should be parsed (true/false/once). Once will not re-evaluate on cached content\n\n onFirstLoad : function(tabPath, parameterArray, historyEvent) {}, // called first time loaded\n onLoad : function(tabPath, parameterArray, historyEvent) {}, // called on every load\n onVisible : function(tabPath, parameterArray, historyEvent) {}, // called every time tab visible\n onRequest : function(tabPath, parameterArray, historyEvent) {}, // called ever time a tab beings loading remote content\n\n templates : {\n determineTitle: function(tabArray) {} // returns page title for path\n },\n\n error: {\n api : 'You attempted to load content without API module',\n method : 'The method you called is not defined',\n missingTab : 'Activated tab cannot be found. Tabs are case-sensitive.',\n noContent : 'The tab you specified is missing a content url.',\n path : 'History enabled, but no path was specified',\n recursion : 'Max recursive depth reached',\n legacyInit : 'onTabInit has been renamed to onFirstLoad in 2.0, please adjust your code.',\n legacyLoad : 'onTabLoad has been renamed to onLoad in 2.0. Please adjust your code',\n state : 'History requires Asual\\'s Address library <https://github.com/asual/jquery-address>'\n },\n\n metadata : {\n tab : 'tab',\n loaded : 'loaded',\n promise: 'promise'\n },\n\n className : {\n loading : 'loading',\n active : 'active'\n },\n\n selector : {\n tabs : '.ui.tab',\n ui : '.ui'\n }\n\n};\n\n})( jQuery, window, document );\n\n/*!\n * # Semantic UI 2.2.11 - Transition\n * http://github.com/semantic-org/semantic-ui/\n *\n *\n * Released under the MIT license\n * http://opensource.org/licenses/MIT\n *\n */\n\n;(function ($, window, document, undefined) {\n\n\"use strict\";\n\nwindow = (typeof window != 'undefined' && window.Math == Math)\n ? window\n : (typeof self != 'undefined' && self.Math == Math)\n ? self\n : Function('return this')()\n;\n\n$.fn.transition = function() {\n var\n $allModules = $(this),\n moduleSelector = $allModules.selector || '',\n\n time = new Date().getTime(),\n performance = [],\n\n moduleArguments = arguments,\n query = moduleArguments[0],\n queryArguments = [].slice.call(arguments, 1),\n methodInvoked = (typeof query === 'string'),\n\n requestAnimationFrame = window.requestAnimationFrame\n || window.mozRequestAnimationFrame\n || window.webkitRequestAnimationFrame\n || window.msRequestAnimationFrame\n || function(callback) { setTimeout(callback, 0); },\n\n returnedValue\n ;\n $allModules\n .each(function(index) {\n var\n $module = $(this),\n element = this,\n\n // set at run time\n settings,\n instance,\n\n error,\n className,\n metadata,\n animationEnd,\n animationName,\n\n namespace,\n moduleNamespace,\n eventNamespace,\n module\n ;\n\n module = {\n\n initialize: function() {\n\n // get full settings\n settings = module.get.settings.apply(element, moduleArguments);\n\n // shorthand\n className = settings.className;\n error = settings.error;\n metadata = settings.metadata;\n\n // define namespace\n eventNamespace = '.' + settings.namespace;\n moduleNamespace = 'module-' + settings.namespace;\n instance = $module.data(moduleNamespace) || module;\n\n // get vendor specific events\n animationEnd = module.get.animationEndEvent();\n\n if(methodInvoked) {\n methodInvoked = module.invoke(query);\n }\n\n // method not invoked, lets run an animation\n if(methodInvoked === false) {\n module.verbose('Converted arguments into settings object', settings);\n if(settings.interval) {\n module.delay(settings.animate);\n }\n else {\n module.animate();\n }\n module.instantiate();\n }\n },\n\n instantiate: function() {\n module.verbose('Storing instance of module', module);\n instance = module;\n $module\n .data(moduleNamespace, instance)\n ;\n },\n\n destroy: function() {\n module.verbose('Destroying previous module for', element);\n $module\n .removeData(moduleNamespace)\n ;\n },\n\n refresh: function() {\n module.verbose('Refreshing display type on next animation');\n delete module.displayType;\n },\n\n forceRepaint: function() {\n module.verbose('Forcing element repaint');\n var\n $parentElement = $module.parent(),\n $nextElement = $module.next()\n ;\n if($nextElement.length === 0) {\n $module.detach().appendTo($parentElement);\n }\n else {\n $module.detach().insertBefore($nextElement);\n }\n },\n\n repaint: function() {\n module.verbose('Repainting element');\n var\n fakeAssignment = element.offsetWidth\n ;\n },\n\n delay: function(interval) {\n var\n direction = module.get.animationDirection(),\n shouldReverse,\n delay\n ;\n if(!direction) {\n direction = module.can.transition()\n ? module.get.direction()\n : 'static'\n ;\n }\n interval = (interval !== undefined)\n ? interval\n : settings.interval\n ;\n shouldReverse = (settings.reverse == 'auto' && direction == className.outward);\n delay = (shouldReverse || settings.reverse == true)\n ? ($allModules.length - index) * settings.interval\n : index * settings.interval\n ;\n module.debug('Delaying animation by', delay);\n setTimeout(module.animate, delay);\n },\n\n animate: function(overrideSettings) {\n settings = overrideSettings || settings;\n if(!module.is.supported()) {\n module.error(error.support);\n return false;\n }\n module.debug('Preparing animation', settings.animation);\n if(module.is.animating()) {\n if(settings.queue) {\n if(!settings.allowRepeats && module.has.direction() && module.is.occurring() && module.queuing !== true) {\n module.debug('Animation is currently occurring, preventing queueing same animation', settings.animation);\n }\n else {\n module.queue(settings.animation);\n }\n return false;\n }\n else if(!settings.allowRepeats && module.is.occurring()) {\n module.debug('Animation is already occurring, will not execute repeated animation', settings.animation);\n return false;\n }\n else {\n module.debug('New animation started, completing previous early', settings.animation);\n instance.complete();\n }\n }\n if( module.can.animate() ) {\n module.set.animating(settings.animation);\n }\n else {\n module.error(error.noAnimation, settings.animation, element);\n }\n },\n\n reset: function() {\n module.debug('Resetting animation to beginning conditions');\n module.remove.animationCallbacks();\n module.restore.conditions();\n module.remove.animating();\n },\n\n queue: function(animation) {\n module.debug('Queueing animation of', animation);\n module.queuing = true;\n $module\n .one(animationEnd + '.queue' + eventNamespace, function() {\n module.queuing = false;\n module.repaint();\n module.animate.apply(this, settings);\n })\n ;\n },\n\n complete: function (event) {\n module.debug('Animation complete', settings.animation);\n module.remove.completeCallback();\n module.remove.failSafe();\n if(!module.is.looping()) {\n if( module.is.outward() ) {\n module.verbose('Animation is outward, hiding element');\n module.restore.conditions();\n module.hide();\n }\n else if( module.is.inward() ) {\n module.verbose('Animation is outward, showing element');\n module.restore.conditions();\n module.show();\n }\n else {\n module.verbose('Static animation completed');\n module.restore.conditions();\n settings.onComplete.call(element);\n }\n }\n },\n\n force: {\n visible: function() {\n var\n style = $module.attr('style'),\n userStyle = module.get.userStyle(),\n displayType = module.get.displayType(),\n overrideStyle = userStyle + 'display: ' + displayType + ' !important;',\n currentDisplay = $module.css('display'),\n emptyStyle = (style === undefined || style === '')\n ;\n if(currentDisplay !== displayType) {\n module.verbose('Overriding default display to show element', displayType);\n $module\n .attr('style', overrideStyle)\n ;\n }\n else if(emptyStyle) {\n $module.removeAttr('style');\n }\n },\n hidden: function() {\n var\n style = $module.attr('style'),\n currentDisplay = $module.css('display'),\n emptyStyle = (style === undefined || style === '')\n ;\n if(currentDisplay !== 'none' && !module.is.hidden()) {\n module.verbose('Overriding default display to hide element');\n $module\n .css('display', 'none')\n ;\n }\n else if(emptyStyle) {\n $module\n .removeAttr('style')\n ;\n }\n }\n },\n\n has: {\n direction: function(animation) {\n var\n hasDirection = false\n ;\n animation = animation || settings.animation;\n if(typeof animation === 'string') {\n animation = animation.split(' ');\n $.each(animation, function(index, word){\n if(word === className.inward || word === className.outward) {\n hasDirection = true;\n }\n });\n }\n return hasDirection;\n },\n inlineDisplay: function() {\n var\n style = $module.attr('style') || ''\n ;\n return $.isArray(style.match(/display.*?;/, ''));\n }\n },\n\n set: {\n animating: function(animation) {\n var\n animationClass,\n direction\n ;\n // remove previous callbacks\n module.remove.completeCallback();\n\n // determine exact animation\n animation = animation || settings.animation;\n animationClass = module.get.animationClass(animation);\n\n // save animation class in cache to restore class names\n module.save.animation(animationClass);\n\n // override display if necessary so animation appears visibly\n module.force.visible();\n\n module.remove.hidden();\n module.remove.direction();\n\n module.start.animation(animationClass);\n\n },\n duration: function(animationName, duration) {\n duration = duration || settings.duration;\n duration = (typeof duration == 'number')\n ? duration + 'ms'\n : duration\n ;\n if(duration || duration === 0) {\n module.verbose('Setting animation duration', duration);\n $module\n .css({\n 'animation-duration': duration\n })\n ;\n }\n },\n direction: function(direction) {\n direction = direction || module.get.direction();\n if(direction == className.inward) {\n module.set.inward();\n }\n else {\n module.set.outward();\n }\n },\n looping: function() {\n module.debug('Transition set to loop');\n $module\n .addClass(className.looping)\n ;\n },\n hidden: function() {\n $module\n .addClass(className.transition)\n .addClass(className.hidden)\n ;\n },\n inward: function() {\n module.debug('Setting direction to inward');\n $module\n .removeClass(className.outward)\n .addClass(className.inward)\n ;\n },\n outward: function() {\n module.debug('Setting direction to outward');\n $module\n .removeClass(className.inward)\n .addClass(className.outward)\n ;\n },\n visible: function() {\n $module\n .addClass(className.transition)\n .addClass(className.visible)\n ;\n }\n },\n\n start: {\n animation: function(animationClass) {\n animationClass = animationClass || module.get.animationClass();\n module.debug('Starting tween', animationClass);\n $module\n .addClass(animationClass)\n .one(animationEnd + '.complete' + eventNamespace, module.complete)\n ;\n if(settings.useFailSafe) {\n module.add.failSafe();\n }\n module.set.duration(settings.duration);\n settings.onStart.call(element);\n }\n },\n\n save: {\n animation: function(animation) {\n if(!module.cache) {\n module.cache = {};\n }\n module.cache.animation = animation;\n },\n displayType: function(displayType) {\n if(displayType !== 'none') {\n $module.data(metadata.displayType, displayType);\n }\n },\n transitionExists: function(animation, exists) {\n $.fn.transition.exists[animation] = exists;\n module.verbose('Saving existence of transition', animation, exists);\n }\n },\n\n restore: {\n conditions: function() {\n var\n animation = module.get.currentAnimation()\n ;\n if(animation) {\n $module\n .removeClass(animation)\n ;\n module.verbose('Removing animation class', module.cache);\n }\n module.remove.duration();\n }\n },\n\n add: {\n failSafe: function() {\n var\n duration = module.get.duration()\n ;\n module.timer = setTimeout(function() {\n $module.triggerHandler(animationEnd);\n }, duration + settings.failSafeDelay);\n module.verbose('Adding fail safe timer', module.timer);\n }\n },\n\n remove: {\n animating: function() {\n $module.removeClass(className.animating);\n },\n animationCallbacks: function() {\n module.remove.queueCallback();\n module.remove.completeCallback();\n },\n queueCallback: function() {\n $module.off('.queue' + eventNamespace);\n },\n completeCallback: function() {\n $module.off('.complete' + eventNamespace);\n },\n display: function() {\n $module.css('display', '');\n },\n direction: function() {\n $module\n .removeClass(className.inward)\n .removeClass(className.outward)\n ;\n },\n duration: function() {\n $module\n .css('animation-duration', '')\n ;\n },\n failSafe: function() {\n module.verbose('Removing fail safe timer', module.timer);\n if(module.timer) {\n clearTimeout(module.timer);\n }\n },\n hidden: function() {\n $module.removeClass(className.hidden);\n },\n visible: function() {\n $module.removeClass(className.visible);\n },\n looping: function() {\n module.debug('Transitions are no longer looping');\n if( module.is.looping() ) {\n module.reset();\n $module\n .removeClass(className.looping)\n ;\n }\n },\n transition: function() {\n $module\n .removeClass(className.visible)\n .removeClass(className.hidden)\n ;\n }\n },\n get: {\n settings: function(animation, duration, onComplete) {\n // single settings object\n if(typeof animation == 'object') {\n return $.extend(true, {}, $.fn.transition.settings, animation);\n }\n // all arguments provided\n else if(typeof onComplete == 'function') {\n return $.extend({}, $.fn.transition.settings, {\n animation : animation,\n onComplete : onComplete,\n duration : duration\n });\n }\n // only duration provided\n else if(typeof duration == 'string' || typeof duration == 'number') {\n return $.extend({}, $.fn.transition.settings, {\n animation : animation,\n duration : duration\n });\n }\n // duration is actually settings object\n else if(typeof duration == 'object') {\n return $.extend({}, $.fn.transition.settings, duration, {\n animation : animation\n });\n }\n // duration is actually callback\n else if(typeof duration == 'function') {\n return $.extend({}, $.fn.transition.settings, {\n animation : animation,\n onComplete : duration\n });\n }\n // only animation provided\n else {\n return $.extend({}, $.fn.transition.settings, {\n animation : animation\n });\n }\n },\n animationClass: function(animation) {\n var\n animationClass = animation || settings.animation,\n directionClass = (module.can.transition() && !module.has.direction())\n ? module.get.direction() + ' '\n : ''\n ;\n return className.animating + ' '\n + className.transition + ' '\n + directionClass\n + animationClass\n ;\n },\n currentAnimation: function() {\n return (module.cache && module.cache.animation !== undefined)\n ? module.cache.animation\n : false\n ;\n },\n currentDirection: function() {\n return module.is.inward()\n ? className.inward\n : className.outward\n ;\n },\n direction: function() {\n return module.is.hidden() || !module.is.visible()\n ? className.inward\n : className.outward\n ;\n },\n animationDirection: function(animation) {\n var\n direction\n ;\n animation = animation || settings.animation;\n if(typeof animation === 'string') {\n animation = animation.split(' ');\n // search animation name for out/in class\n $.each(animation, function(index, word){\n if(word === className.inward) {\n direction = className.inward;\n }\n else if(word === className.outward) {\n direction = className.outward;\n }\n });\n }\n // return found direction\n if(direction) {\n return direction;\n }\n return false;\n },\n duration: function(duration) {\n duration = duration || settings.duration;\n if(duration === false) {\n duration = $module.css('animation-duration') || 0;\n }\n return (typeof duration === 'string')\n ? (duration.indexOf('ms') > -1)\n ? parseFloat(duration)\n : parseFloat(duration) * 1000\n : duration\n ;\n },\n displayType: function(shouldDetermine) {\n shouldDetermine = (shouldDetermine !== undefined)\n ? shouldDetermine\n : true\n ;\n if(settings.displayType) {\n return settings.displayType;\n }\n if(shouldDetermine && $module.data(metadata.displayType) === undefined) {\n // create fake element to determine display state\n module.can.transition(true);\n }\n return $module.data(metadata.displayType);\n },\n userStyle: function(style) {\n style = style || $module.attr('style') || '';\n return style.replace(/display.*?;/, '');\n },\n transitionExists: function(animation) {\n return $.fn.transition.exists[animation];\n },\n animationStartEvent: function() {\n var\n element = document.createElement('div'),\n animations = {\n 'animation' :'animationstart',\n 'OAnimation' :'oAnimationStart',\n 'MozAnimation' :'mozAnimationStart',\n 'WebkitAnimation' :'webkitAnimationStart'\n },\n animation\n ;\n for(animation in animations){\n if( element.style[animation] !== undefined ){\n return animations[animation];\n }\n }\n return false;\n },\n animationEndEvent: function() {\n var\n element = document.createElement('div'),\n animations = {\n 'animation' :'animationend',\n 'OAnimation' :'oAnimationEnd',\n 'MozAnimation' :'mozAnimationEnd',\n 'WebkitAnimation' :'webkitAnimationEnd'\n },\n animation\n ;\n for(animation in animations){\n if( element.style[animation] !== undefined ){\n return animations[animation];\n }\n }\n return false;\n }\n\n },\n\n can: {\n transition: function(forced) {\n var\n animation = settings.animation,\n transitionExists = module.get.transitionExists(animation),\n displayType = module.get.displayType(false),\n elementClass,\n tagName,\n $clone,\n currentAnimation,\n inAnimation,\n directionExists\n ;\n if( transitionExists === undefined || forced) {\n module.verbose('Determining whether animation exists');\n elementClass = $module.attr('class');\n tagName = $module.prop('tagName');\n\n $clone = $('<' + tagName + ' />').addClass( elementClass ).insertAfter($module);\n currentAnimation = $clone\n .addClass(animation)\n .removeClass(className.inward)\n .removeClass(className.outward)\n .addClass(className.animating)\n .addClass(className.transition)\n .css('animationName')\n ;\n inAnimation = $clone\n .addClass(className.inward)\n .css('animationName')\n ;\n if(!displayType) {\n displayType = $clone\n .attr('class', elementClass)\n .removeAttr('style')\n .removeClass(className.hidden)\n .removeClass(className.visible)\n .show()\n .css('display')\n ;\n module.verbose('Determining final display state', displayType);\n module.save.displayType(displayType);\n }\n\n $clone.remove();\n if(currentAnimation != inAnimation) {\n module.debug('Direction exists for animation', animation);\n directionExists = true;\n }\n else if(currentAnimation == 'none' || !currentAnimation) {\n module.debug('No animation defined in css', animation);\n return;\n }\n else {\n module.debug('Static animation found', animation, displayType);\n directionExists = false;\n }\n module.save.transitionExists(animation, directionExists);\n }\n return (transitionExists !== undefined)\n ? transitionExists\n : directionExists\n ;\n },\n animate: function() {\n // can transition does not return a value if animation does not exist\n return (module.can.transition() !== undefined);\n }\n },\n\n is: {\n animating: function() {\n return $module.hasClass(className.animating);\n },\n inward: function() {\n return $module.hasClass(className.inward);\n },\n outward: function() {\n return $module.hasClass(className.outward);\n },\n looping: function() {\n return $module.hasClass(className.looping);\n },\n occurring: function(animation) {\n animation = animation || settings.animation;\n animation = '.' + animation.replace(' ', '.');\n return ( $module.filter(animation).length > 0 );\n },\n visible: function() {\n return $module.is(':visible');\n },\n hidden: function() {\n return $module.css('visibility') === 'hidden';\n },\n supported: function() {\n return(animationEnd !== false);\n }\n },\n\n hide: function() {\n module.verbose('Hiding element');\n if( module.is.animating() ) {\n module.reset();\n }\n element.blur(); // IE will trigger focus change if element is not blurred before hiding\n module.remove.display();\n module.remove.visible();\n module.set.hidden();\n module.force.hidden();\n settings.onHide.call(element);\n settings.onComplete.call(element);\n // module.repaint();\n },\n\n show: function(display) {\n module.verbose('Showing element', display);\n module.remove.hidden();\n module.set.visible();\n module.force.visible();\n settings.onShow.call(element);\n settings.onComplete.call(element);\n // module.repaint();\n },\n\n toggle: function() {\n if( module.is.visible() ) {\n module.hide();\n }\n else {\n module.show();\n }\n },\n\n stop: function() {\n module.debug('Stopping current animation');\n $module.triggerHandler(animationEnd);\n },\n\n stopAll: function() {\n module.debug('Stopping all animation');\n module.remove.queueCallback();\n $module.triggerHandler(animationEnd);\n },\n\n clear: {\n queue: function() {\n module.debug('Clearing animation queue');\n module.remove.queueCallback();\n }\n },\n\n enable: function() {\n module.verbose('Starting animation');\n $module.removeClass(className.disabled);\n },\n\n disable: function() {\n module.debug('Stopping animation');\n $module.addClass(className.disabled);\n },\n\n setting: function(name, value) {\n module.debug('Changing setting', name, value);\n if( $.isPlainObject(name) ) {\n $.extend(true, settings, name);\n }\n else if(value !== undefined) {\n if($.isPlainObject(settings[name])) {\n $.extend(true, settings[name], value);\n }\n else {\n settings[name] = value;\n }\n }\n else {\n return settings[name];\n }\n },\n internal: function(name, value) {\n if( $.isPlainObject(name) ) {\n $.extend(true, module, name);\n }\n else if(value !== undefined) {\n module[name] = value;\n }\n else {\n return module[name];\n }\n },\n debug: function() {\n if(!settings.silent && settings.debug) {\n if(settings.performance) {\n module.performance.log(arguments);\n }\n else {\n module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');\n module.debug.apply(console, arguments);\n }\n }\n },\n verbose: function() {\n if(!settings.silent && settings.verbose && settings.debug) {\n if(settings.performance) {\n module.performance.log(arguments);\n }\n else {\n module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');\n module.verbose.apply(console, arguments);\n }\n }\n },\n error: function() {\n if(!settings.silent) {\n module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');\n module.error.apply(console, arguments);\n }\n },\n performance: {\n log: function(message) {\n var\n currentTime,\n executionTime,\n previousTime\n ;\n if(settings.performance) {\n currentTime = new Date().getTime();\n previousTime = time || currentTime;\n executionTime = currentTime - previousTime;\n time = currentTime;\n performance.push({\n 'Name' : message[0],\n 'Arguments' : [].slice.call(message, 1) || '',\n 'Element' : element,\n 'Execution Time' : executionTime\n });\n }\n clearTimeout(module.performance.timer);\n module.performance.timer = setTimeout(module.performance.display, 500);\n },\n display: function() {\n var\n title = settings.name + ':',\n totalTime = 0\n ;\n time = false;\n clearTimeout(module.performance.timer);\n $.each(performance, function(index, data) {\n totalTime += data['Execution Time'];\n });\n title += ' ' + totalTime + 'ms';\n if(moduleSelector) {\n title += ' \\'' + moduleSelector + '\\'';\n }\n if($allModules.length > 1) {\n title += ' ' + '(' + $allModules.length + ')';\n }\n if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {\n console.groupCollapsed(title);\n if(console.table) {\n console.table(performance);\n }\n else {\n $.each(performance, function(index, data) {\n console.log(data['Name'] + ': ' + data['Execution Time']+'ms');\n });\n }\n console.groupEnd();\n }\n performance = [];\n }\n },\n // modified for transition to return invoke success\n invoke: function(query, passedArguments, context) {\n var\n object = instance,\n maxDepth,\n found,\n response\n ;\n passedArguments = passedArguments || queryArguments;\n context = element || context;\n if(typeof query == 'string' && object !== undefined) {\n query = query.split(/[\\. ]/);\n maxDepth = query.length - 1;\n $.each(query, function(depth, value) {\n var camelCaseValue = (depth != maxDepth)\n ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)\n : query\n ;\n if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {\n object = object[camelCaseValue];\n }\n else if( object[camelCaseValue] !== undefined ) {\n found = object[camelCaseValue];\n return false;\n }\n else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {\n object = object[value];\n }\n else if( object[value] !== undefined ) {\n found = object[value];\n return false;\n }\n else {\n return false;\n }\n });\n }\n if ( $.isFunction( found ) ) {\n response = found.apply(context, passedArguments);\n }\n else if(found !== undefined) {\n response = found;\n }\n\n if($.isArray(returnedValue)) {\n returnedValue.push(response);\n }\n else if(returnedValue !== undefined) {\n returnedValue = [returnedValue, response];\n }\n else if(response !== undefined) {\n returnedValue = response;\n }\n return (found !== undefined)\n ? found\n : false\n ;\n }\n };\n module.initialize();\n })\n ;\n return (returnedValue !== undefined)\n ? returnedValue\n : this\n ;\n};\n\n// Records if CSS transition is available\n$.fn.transition.exists = {};\n\n$.fn.transition.settings = {\n\n // module info\n name : 'Transition',\n\n // hide all output from this component regardless of other settings\n silent : false,\n\n // debug content outputted to console\n debug : false,\n\n // verbose debug output\n verbose : false,\n\n // performance data output\n performance : true,\n\n // event namespace\n namespace : 'transition',\n\n // delay between animations in group\n interval : 0,\n\n // whether group animations should be reversed\n reverse : 'auto',\n\n // animation callback event\n onStart : function() {},\n onComplete : function() {},\n onShow : function() {},\n onHide : function() {},\n\n // whether timeout should be used to ensure callback fires in cases animationend does not\n useFailSafe : true,\n\n // delay in ms for fail safe\n failSafeDelay : 100,\n\n // whether EXACT animation can occur twice in a row\n allowRepeats : false,\n\n // Override final display type on visible\n displayType : false,\n\n // animation duration\n animation : 'fade',\n duration : false,\n\n // new animations will occur after previous ones\n queue : true,\n\n metadata : {\n displayType: 'display'\n },\n\n className : {\n animating : 'animating',\n disabled : 'disabled',\n hidden : 'hidden',\n inward : 'in',\n loading : 'loading',\n looping : 'looping',\n outward : 'out',\n transition : 'transition',\n visible : 'visible'\n },\n\n // possible errors\n error: {\n noAnimation : 'Element is no longer attached to DOM. Unable to animate. Use silent setting to surpress this warning in production.',\n repeated : 'That animation is already occurring, cancelling repeated animation',\n method : 'The method you called is not defined',\n support : 'This browser does not support CSS animations'\n }\n\n};\n\n\n})( jQuery, window, document );\n\n/*!\n * # Semantic UI 2.2.11 - API\n * http://github.com/semantic-org/semantic-ui/\n *\n *\n * Released under the MIT license\n * http://opensource.org/licenses/MIT\n *\n */\n\n;(function ($, window, document, undefined) {\n\n\"use strict\";\n\nvar\n window = (typeof window != 'undefined' && window.Math == Math)\n ? window\n : (typeof self != 'undefined' && self.Math == Math)\n ? self\n : Function('return this')()\n;\n\n$.api = $.fn.api = function(parameters) {\n\n var\n // use window context if none specified\n $allModules = $.isFunction(this)\n ? $(window)\n : $(this),\n moduleSelector = $allModules.selector || '',\n time = new Date().getTime(),\n performance = [],\n\n query = arguments[0],\n methodInvoked = (typeof query == 'string'),\n queryArguments = [].slice.call(arguments, 1),\n\n returnedValue\n ;\n\n $allModules\n .each(function() {\n var\n settings = ( $.isPlainObject(parameters) )\n ? $.extend(true, {}, $.fn.api.settings, parameters)\n : $.extend({}, $.fn.api.settings),\n\n // internal aliases\n namespace = settings.namespace,\n metadata = settings.metadata,\n selector = settings.selector,\n error = settings.error,\n className = settings.className,\n\n // define namespaces for modules\n eventNamespace = '.' + namespace,\n moduleNamespace = 'module-' + namespace,\n\n // element that creates request\n $module = $(this),\n $form = $module.closest(selector.form),\n\n // context used for state\n $context = (settings.stateContext)\n ? $(settings.stateContext)\n : $module,\n\n // request details\n ajaxSettings,\n requestSettings,\n url,\n data,\n requestStartTime,\n\n // standard module\n element = this,\n context = $context[0],\n instance = $module.data(moduleNamespace),\n module\n ;\n\n module = {\n\n initialize: function() {\n if(!methodInvoked) {\n module.bind.events();\n }\n module.instantiate();\n },\n\n instantiate: function() {\n module.verbose('Storing instance of module', module);\n instance = module;\n $module\n .data(moduleNamespace, instance)\n ;\n },\n\n destroy: function() {\n module.verbose('Destroying previous module for', element);\n $module\n .removeData(moduleNamespace)\n .off(eventNamespace)\n ;\n },\n\n bind: {\n events: function() {\n var\n triggerEvent = module.get.event()\n ;\n if( triggerEvent ) {\n module.verbose('Attaching API events to element', triggerEvent);\n $module\n .on(triggerEvent + eventNamespace, module.event.trigger)\n ;\n }\n else if(settings.on == 'now') {\n module.debug('Querying API endpoint immediately');\n module.query();\n }\n }\n },\n\n decode: {\n json: function(response) {\n if(response !== undefined && typeof response == 'string') {\n try {\n response = JSON.parse(response);\n }\n catch(e) {\n // isnt json string\n }\n }\n return response;\n }\n },\n\n read: {\n cachedResponse: function(url) {\n var\n response\n ;\n if(window.Storage === undefined) {\n module.error(error.noStorage);\n return;\n }\n response = sessionStorage.getItem(url);\n module.debug('Using cached response', url, response);\n response = module.decode.json(response);\n return response;\n }\n },\n write: {\n cachedResponse: function(url, response) {\n if(response && response === '') {\n module.debug('Response empty, not caching', response);\n return;\n }\n if(window.Storage === undefined) {\n module.error(error.noStorage);\n return;\n }\n if( $.isPlainObject(response) ) {\n response = JSON.stringify(response);\n }\n sessionStorage.setItem(url, response);\n module.verbose('Storing cached response for url', url, response);\n }\n },\n\n query: function() {\n\n if(module.is.disabled()) {\n module.debug('Element is disabled API request aborted');\n return;\n }\n\n if(module.is.loading()) {\n if(settings.interruptRequests) {\n module.debug('Interrupting previous request');\n module.abort();\n }\n else {\n module.debug('Cancelling request, previous request is still pending');\n return;\n }\n }\n\n // pass element metadata to url (value, text)\n if(settings.defaultData) {\n $.extend(true, settings.urlData, module.get.defaultData());\n }\n\n // Add form content\n if(settings.serializeForm) {\n settings.data = module.add.formData(settings.data);\n }\n\n // call beforesend and get any settings changes\n requestSettings = module.get.settings();\n\n // check if before send cancelled request\n if(requestSettings === false) {\n module.cancelled = true;\n module.error(error.beforeSend);\n return;\n }\n else {\n module.cancelled = false;\n }\n\n // get url\n url = module.get.templatedURL();\n\n if(!url && !module.is.mocked()) {\n module.error(error.missingURL);\n return;\n }\n\n // replace variables\n url = module.add.urlData( url );\n // missing url parameters\n if( !url && !module.is.mocked()) {\n return;\n }\n\n requestSettings.url = settings.base + url;\n\n // look for jQuery ajax parameters in settings\n ajaxSettings = $.extend(true, {}, settings, {\n type : settings.method || settings.type,\n data : data,\n url : settings.base + url,\n beforeSend : settings.beforeXHR,\n success : function() {},\n failure : function() {},\n complete : function() {}\n });\n\n module.debug('Querying URL', ajaxSettings.url);\n module.verbose('Using AJAX settings', ajaxSettings);\n if(settings.cache === 'local' && module.read.cachedResponse(url)) {\n module.debug('Response returned from local cache');\n module.request = module.create.request();\n module.request.resolveWith(context, [ module.read.cachedResponse(url) ]);\n return;\n }\n\n if( !settings.throttle ) {\n module.debug('Sending request', data, ajaxSettings.method);\n module.send.request();\n }\n else {\n if(!settings.throttleFirstRequest && !module.timer) {\n module.debug('Sending request', data, ajaxSettings.method);\n module.send.request();\n module.timer = setTimeout(function(){}, settings.throttle);\n }\n else {\n module.debug('Throttling request', settings.throttle);\n clearTimeout(module.timer);\n module.timer = setTimeout(function() {\n if(module.timer) {\n delete module.timer;\n }\n module.debug('Sending throttled request', data, ajaxSettings.method);\n module.send.request();\n }, settings.throttle);\n }\n }\n\n },\n\n should: {\n removeError: function() {\n return ( settings.hideError === true || (settings.hideError === 'auto' && !module.is.form()) );\n }\n },\n\n is: {\n disabled: function() {\n return ($module.filter(selector.disabled).length > 0);\n },\n expectingJSON: function() {\n return settings.dataType === 'json' || settings.dataType === 'jsonp';\n },\n form: function() {\n return $module.is('form') || $context.is('form');\n },\n mocked: function() {\n return (settings.mockResponse || settings.mockResponseAsync || settings.response || settings.responseAsync);\n },\n input: function() {\n return $module.is('input');\n },\n loading: function() {\n return (module.request)\n ? (module.request.state() == 'pending')\n : false\n ;\n },\n abortedRequest: function(xhr) {\n if(xhr && xhr.readyState !== undefined && xhr.readyState === 0) {\n module.verbose('XHR request determined to be aborted');\n return true;\n }\n else {\n module.verbose('XHR request was not aborted');\n return false;\n }\n },\n validResponse: function(response) {\n if( (!module.is.expectingJSON()) || !$.isFunction(settings.successTest) ) {\n module.verbose('Response is not JSON, skipping validation', settings.successTest, response);\n return true;\n }\n module.debug('Checking JSON returned success', settings.successTest, response);\n if( settings.successTest(response) ) {\n module.debug('Response passed success test', response);\n return true;\n }\n else {\n module.debug('Response failed success test', response);\n return false;\n }\n }\n },\n\n was: {\n cancelled: function() {\n return (module.cancelled || false);\n },\n succesful: function() {\n return (module.request && module.request.state() == 'resolved');\n },\n failure: function() {\n return (module.request && module.request.state() == 'rejected');\n },\n complete: function() {\n return (module.request && (module.request.state() == 'resolved' || module.request.state() == 'rejected') );\n }\n },\n\n add: {\n urlData: function(url, urlData) {\n var\n requiredVariables,\n optionalVariables\n ;\n if(url) {\n requiredVariables = url.match(settings.regExp.required);\n optionalVariables = url.match(settings.regExp.optional);\n urlData = urlData || settings.urlData;\n if(requiredVariables) {\n module.debug('Looking for required URL variables', requiredVariables);\n $.each(requiredVariables, function(index, templatedString) {\n var\n // allow legacy {$var} style\n variable = (templatedString.indexOf('$') !== -1)\n ? templatedString.substr(2, templatedString.length - 3)\n : templatedString.substr(1, templatedString.length - 2),\n value = ($.isPlainObject(urlData) && urlData[variable] !== undefined)\n ? urlData[variable]\n : ($module.data(variable) !== undefined)\n ? $module.data(variable)\n : ($context.data(variable) !== undefined)\n ? $context.data(variable)\n : urlData[variable]\n ;\n // remove value\n if(value === undefined) {\n module.error(error.requiredParameter, variable, url);\n url = false;\n return false;\n }\n else {\n module.verbose('Found required variable', variable, value);\n value = (settings.encodeParameters)\n ? module.get.urlEncodedValue(value)\n : value\n ;\n url = url.replace(templatedString, value);\n }\n });\n }\n if(optionalVariables) {\n module.debug('Looking for optional URL variables', requiredVariables);\n $.each(optionalVariables, function(index, templatedString) {\n var\n // allow legacy {/$var} style\n variable = (templatedString.indexOf('$') !== -1)\n ? templatedString.substr(3, templatedString.length - 4)\n : templatedString.substr(2, templatedString.length - 3),\n value = ($.isPlainObject(urlData) && urlData[variable] !== undefined)\n ? urlData[variable]\n : ($module.data(variable) !== undefined)\n ? $module.data(variable)\n : ($context.data(variable) !== undefined)\n ? $context.data(variable)\n : urlData[variable]\n ;\n // optional replacement\n if(value !== undefined) {\n module.verbose('Optional variable Found', variable, value);\n url = url.replace(templatedString, value);\n }\n else {\n module.verbose('Optional variable not found', variable);\n // remove preceding slash if set\n if(url.indexOf('/' + templatedString) !== -1) {\n url = url.replace('/' + templatedString, '');\n }\n else {\n url = url.replace(templatedString, '');\n }\n }\n });\n }\n }\n return url;\n },\n formData: function(data) {\n var\n canSerialize = ($.fn.serializeObject !== undefined),\n formData = (canSerialize)\n ? $form.serializeObject()\n : $form.serialize(),\n hasOtherData\n ;\n data = data || settings.data;\n hasOtherData = $.isPlainObject(data);\n\n if(hasOtherData) {\n if(canSerialize) {\n module.debug('Extending existing data with form data', data, formData);\n data = $.extend(true, {}, data, formData);\n }\n else {\n module.error(error.missingSerialize);\n module.debug('Cant extend data. Replacing data with form data', data, formData);\n data = formData;\n }\n }\n else {\n module.debug('Adding form data', formData);\n data = formData;\n }\n return data;\n }\n },\n\n send: {\n request: function() {\n module.set.loading();\n module.request = module.create.request();\n if( module.is.mocked() ) {\n module.mockedXHR = module.create.mockedXHR();\n }\n else {\n module.xhr = module.create.xhr();\n }\n settings.onRequest.call(context, module.request, module.xhr);\n }\n },\n\n event: {\n trigger: function(event) {\n module.query();\n if(event.type == 'submit' || event.type == 'click') {\n event.preventDefault();\n }\n },\n xhr: {\n always: function() {\n // nothing special\n },\n done: function(response, textStatus, xhr) {\n var\n context = this,\n elapsedTime = (new Date().getTime() - requestStartTime),\n timeLeft = (settings.loadingDuration - elapsedTime),\n translatedResponse = ( $.isFunction(settings.onResponse) )\n ? module.is.expectingJSON()\n ? settings.onResponse.call(context, $.extend(true, {}, response))\n : settings.onResponse.call(context, response)\n : false\n ;\n timeLeft = (timeLeft > 0)\n ? timeLeft\n : 0\n ;\n if(translatedResponse) {\n module.debug('Modified API response in onResponse callback', settings.onResponse, translatedResponse, response);\n response = translatedResponse;\n }\n if(timeLeft > 0) {\n module.debug('Response completed early delaying state change by', timeLeft);\n }\n setTimeout(function() {\n if( module.is.validResponse(response) ) {\n module.request.resolveWith(context, [response, xhr]);\n }\n else {\n module.request.rejectWith(context, [xhr, 'invalid']);\n }\n }, timeLeft);\n },\n fail: function(xhr, status, httpMessage) {\n var\n context = this,\n elapsedTime = (new Date().getTime() - requestStartTime),\n timeLeft = (settings.loadingDuration - elapsedTime)\n ;\n timeLeft = (timeLeft > 0)\n ? timeLeft\n : 0\n ;\n if(timeLeft > 0) {\n module.debug('Response completed early delaying state change by', timeLeft);\n }\n setTimeout(function() {\n if( module.is.abortedRequest(xhr) ) {\n module.request.rejectWith(context, [xhr, 'aborted', httpMessage]);\n }\n else {\n module.request.rejectWith(context, [xhr, 'error', status, httpMessage]);\n }\n }, timeLeft);\n }\n },\n request: {\n done: function(response, xhr) {\n module.debug('Successful API Response', response);\n if(settings.cache === 'local' && url) {\n module.write.cachedResponse(url, response);\n module.debug('Saving server response locally', module.cache);\n }\n settings.onSuccess.call(context, response, $module, xhr);\n },\n complete: function(firstParameter, secondParameter) {\n var\n xhr,\n response\n ;\n // have to guess callback parameters based on request success\n if( module.was.succesful() ) {\n response = firstParameter;\n xhr = secondParameter;\n }\n else {\n xhr = firstParameter;\n response = module.get.responseFromXHR(xhr);\n }\n module.remove.loading();\n settings.onComplete.call(context, response, $module, xhr);\n },\n fail: function(xhr, status, httpMessage) {\n var\n // pull response from xhr if available\n response = module.get.responseFromXHR(xhr),\n errorMessage = module.get.errorFromRequest(response, status, httpMessage)\n ;\n if(status == 'aborted') {\n module.debug('XHR Aborted (Most likely caused by page navigation or CORS Policy)', status, httpMessage);\n settings.onAbort.call(context, status, $module, xhr);\n return true;\n }\n else if(status == 'invalid') {\n module.debug('JSON did not pass success test. A server-side error has most likely occurred', response);\n }\n else if(status == 'error') {\n if(xhr !== undefined) {\n module.debug('XHR produced a server error', status, httpMessage);\n // make sure we have an error to display to console\n if( xhr.status != 200 && httpMessage !== undefined && httpMessage !== '') {\n module.error(error.statusMessage + httpMessage, ajaxSettings.url);\n }\n settings.onError.call(context, errorMessage, $module, xhr);\n }\n }\n\n if(settings.errorDuration && status !== 'aborted') {\n module.debug('Adding error state');\n module.set.error();\n if( module.should.removeError() ) {\n setTimeout(module.remove.error, settings.errorDuration);\n }\n }\n module.debug('API Request failed', errorMessage, xhr);\n settings.onFailure.call(context, response, $module, xhr);\n }\n }\n },\n\n create: {\n\n request: function() {\n // api request promise\n return $.Deferred()\n .always(module.event.request.complete)\n .done(module.event.request.done)\n .fail(module.event.request.fail)\n ;\n },\n\n mockedXHR: function () {\n var\n // xhr does not simulate these properties of xhr but must return them\n textStatus = false,\n status = false,\n httpMessage = false,\n responder = settings.mockResponse || settings.response,\n asyncResponder = settings.mockResponseAsync || settings.responseAsync,\n asyncCallback,\n response,\n mockedXHR\n ;\n\n mockedXHR = $.Deferred()\n .always(module.event.xhr.complete)\n .done(module.event.xhr.done)\n .fail(module.event.xhr.fail)\n ;\n\n if(responder) {\n if( $.isFunction(responder) ) {\n module.debug('Using specified synchronous callback', responder);\n response = responder.call(context, requestSettings);\n }\n else {\n module.debug('Using settings specified response', responder);\n response = responder;\n }\n // simulating response\n mockedXHR.resolveWith(context, [ response, textStatus, { responseText: response }]);\n }\n else if( $.isFunction(asyncResponder) ) {\n asyncCallback = function(response) {\n module.debug('Async callback returned response', response);\n\n if(response) {\n mockedXHR.resolveWith(context, [ response, textStatus, { responseText: response }]);\n }\n else {\n mockedXHR.rejectWith(context, [{ responseText: response }, status, httpMessage]);\n }\n };\n module.debug('Using specified async response callback', asyncResponder);\n asyncResponder.call(context, requestSettings, asyncCallback);\n }\n return mockedXHR;\n },\n\n xhr: function() {\n var\n xhr\n ;\n // ajax request promise\n xhr = $.ajax(ajaxSettings)\n .always(module.event.xhr.always)\n .done(module.event.xhr.done)\n .fail(module.event.xhr.fail)\n ;\n module.verbose('Created server request', xhr, ajaxSettings);\n return xhr;\n }\n },\n\n set: {\n error: function() {\n module.verbose('Adding error state to element', $context);\n $context.addClass(className.error);\n },\n loading: function() {\n module.verbose('Adding loading state to element', $context);\n $context.addClass(className.loading);\n requestStartTime = new Date().getTime();\n }\n },\n\n remove: {\n error: function() {\n module.verbose('Removing error state from element', $context);\n $context.removeClass(className.error);\n },\n loading: function() {\n module.verbose('Removing loading state from element', $context);\n $context.removeClass(className.loading);\n }\n },\n\n get: {\n responseFromXHR: function(xhr) {\n return $.isPlainObject(xhr)\n ? (module.is.expectingJSON())\n ? module.decode.json(xhr.responseText)\n : xhr.responseText\n : false\n ;\n },\n errorFromRequest: function(response, status, httpMessage) {\n return ($.isPlainObject(response) && response.error !== undefined)\n ? response.error // use json error message\n : (settings.error[status] !== undefined) // use server error message\n ? settings.error[status]\n : httpMessage\n ;\n },\n request: function() {\n return module.request || false;\n },\n xhr: function() {\n return module.xhr || false;\n },\n settings: function() {\n var\n runSettings\n ;\n runSettings = settings.beforeSend.call(context, settings);\n if(runSettings) {\n if(runSettings.success !== undefined) {\n module.debug('Legacy success callback detected', runSettings);\n module.error(error.legacyParameters, runSettings.success);\n runSettings.onSuccess = runSettings.success;\n }\n if(runSettings.failure !== undefined) {\n module.debug('Legacy failure callback detected', runSettings);\n module.error(error.legacyParameters, runSettings.failure);\n runSettings.onFailure = runSettings.failure;\n }\n if(runSettings.complete !== undefined) {\n module.debug('Legacy complete callback detected', runSettings);\n module.error(error.legacyParameters, runSettings.complete);\n runSettings.onComplete = runSettings.complete;\n }\n }\n if(runSettings === undefined) {\n module.error(error.noReturnedValue);\n }\n if(runSettings === false) {\n return runSettings;\n }\n return (runSettings !== undefined)\n ? $.extend(true, {}, runSettings)\n : $.extend(true, {}, settings)\n ;\n },\n urlEncodedValue: function(value) {\n var\n decodedValue = window.decodeURIComponent(value),\n encodedValue = window.encodeURIComponent(value),\n alreadyEncoded = (decodedValue !== value)\n ;\n if(alreadyEncoded) {\n module.debug('URL value is already encoded, avoiding double encoding', value);\n return value;\n }\n module.verbose('Encoding value using encodeURIComponent', value, encodedValue);\n return encodedValue;\n },\n defaultData: function() {\n var\n data = {}\n ;\n if( !$.isWindow(element) ) {\n if( module.is.input() ) {\n data.value = $module.val();\n }\n else if( module.is.form() ) {\n\n }\n else {\n data.text = $module.text();\n }\n }\n return data;\n },\n event: function() {\n if( $.isWindow(element) || settings.on == 'now' ) {\n module.debug('API called without element, no events attached');\n return false;\n }\n else if(settings.on == 'auto') {\n if( $module.is('input') ) {\n return (element.oninput !== undefined)\n ? 'input'\n : (element.onpropertychange !== undefined)\n ? 'propertychange'\n : 'keyup'\n ;\n }\n else if( $module.is('form') ) {\n return 'submit';\n }\n else {\n return 'click';\n }\n }\n else {\n return settings.on;\n }\n },\n templatedURL: function(action) {\n action = action || $module.data(metadata.action) || settings.action || false;\n url = $module.data(metadata.url) || settings.url || false;\n if(url) {\n module.debug('Using specified url', url);\n return url;\n }\n if(action) {\n module.debug('Looking up url for action', action, settings.api);\n if(settings.api[action] === undefined && !module.is.mocked()) {\n module.error(error.missingAction, settings.action, settings.api);\n return;\n }\n url = settings.api[action];\n }\n else if( module.is.form() ) {\n url = $module.attr('action') || $context.attr('action') || false;\n module.debug('No url or action specified, defaulting to form action', url);\n }\n return url;\n }\n },\n\n abort: function() {\n var\n xhr = module.get.xhr()\n ;\n if( xhr && xhr.state() !== 'resolved') {\n module.debug('Cancelling API request');\n xhr.abort();\n }\n },\n\n // reset state\n reset: function() {\n module.remove.error();\n module.remove.loading();\n },\n\n setting: function(name, value) {\n module.debug('Changing setting', name, value);\n if( $.isPlainObject(name) ) {\n $.extend(true, settings, name);\n }\n else if(value !== undefined) {\n if($.isPlainObject(settings[name])) {\n $.extend(true, settings[name], value);\n }\n else {\n settings[name] = value;\n }\n }\n else {\n return settings[name];\n }\n },\n internal: function(name, value) {\n if( $.isPlainObject(name) ) {\n $.extend(true, module, name);\n }\n else if(value !== undefined) {\n module[name] = value;\n }\n else {\n return module[name];\n }\n },\n debug: function() {\n if(!settings.silent && settings.debug) {\n if(settings.performance) {\n module.performance.log(arguments);\n }\n else {\n module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');\n module.debug.apply(console, arguments);\n }\n }\n },\n verbose: function() {\n if(!settings.silent && settings.verbose && settings.debug) {\n if(settings.performance) {\n module.performance.log(arguments);\n }\n else {\n module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');\n module.verbose.apply(console, arguments);\n }\n }\n },\n error: function() {\n if(!settings.silent) {\n module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');\n module.error.apply(console, arguments);\n }\n },\n performance: {\n log: function(message) {\n var\n currentTime,\n executionTime,\n previousTime\n ;\n if(settings.performance) {\n currentTime = new Date().getTime();\n previousTime = time || currentTime;\n executionTime = currentTime - previousTime;\n time = currentTime;\n performance.push({\n 'Name' : message[0],\n 'Arguments' : [].slice.call(message, 1) || '',\n //'Element' : element,\n 'Execution Time' : executionTime\n });\n }\n clearTimeout(module.performance.timer);\n module.performance.timer = setTimeout(module.performance.display, 500);\n },\n display: function() {\n var\n title = settings.name + ':',\n totalTime = 0\n ;\n time = false;\n clearTimeout(module.performance.timer);\n $.each(performance, function(index, data) {\n totalTime += data['Execution Time'];\n });\n title += ' ' + totalTime + 'ms';\n if(moduleSelector) {\n title += ' \\'' + moduleSelector + '\\'';\n }\n if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {\n console.groupCollapsed(title);\n if(console.table) {\n console.table(performance);\n }\n else {\n $.each(performance, function(index, data) {\n console.log(data['Name'] + ': ' + data['Execution Time']+'ms');\n });\n }\n console.groupEnd();\n }\n performance = [];\n }\n },\n invoke: function(query, passedArguments, context) {\n var\n object = instance,\n maxDepth,\n found,\n response\n ;\n passedArguments = passedArguments || queryArguments;\n context = element || context;\n if(typeof query == 'string' && object !== undefined) {\n query = query.split(/[\\. ]/);\n maxDepth = query.length - 1;\n $.each(query, function(depth, value) {\n var camelCaseValue = (depth != maxDepth)\n ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)\n : query\n ;\n if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {\n object = object[camelCaseValue];\n }\n else if( object[camelCaseValue] !== undefined ) {\n found = object[camelCaseValue];\n return false;\n }\n else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {\n object = object[value];\n }\n else if( object[value] !== undefined ) {\n found = object[value];\n return false;\n }\n else {\n module.error(error.method, query);\n return false;\n }\n });\n }\n if ( $.isFunction( found ) ) {\n response = found.apply(context, passedArguments);\n }\n else if(found !== undefined) {\n response = found;\n }\n if($.isArray(returnedValue)) {\n returnedValue.push(response);\n }\n else if(returnedValue !== undefined) {\n returnedValue = [returnedValue, response];\n }\n else if(response !== undefined) {\n returnedValue = response;\n }\n return found;\n }\n };\n\n if(methodInvoked) {\n if(instance === undefined) {\n module.initialize();\n }\n module.invoke(query);\n }\n else {\n if(instance !== undefined) {\n instance.invoke('destroy');\n }\n module.initialize();\n }\n })\n ;\n\n return (returnedValue !== undefined)\n ? returnedValue\n : this\n ;\n};\n\n$.api.settings = {\n\n name : 'API',\n namespace : 'api',\n\n debug : false,\n verbose : false,\n performance : true,\n\n // object containing all templates endpoints\n api : {},\n\n // whether to cache responses\n cache : true,\n\n // whether new requests should abort previous requests\n interruptRequests : true,\n\n // event binding\n on : 'auto',\n\n // context for applying state classes\n stateContext : false,\n\n // duration for loading state\n loadingDuration : 0,\n\n // whether to hide errors after a period of time\n hideError : 'auto',\n\n // duration for error state\n errorDuration : 2000,\n\n // whether parameters should be encoded with encodeURIComponent\n encodeParameters : true,\n\n // API action to use\n action : false,\n\n // templated URL to use\n url : false,\n\n // base URL to apply to all endpoints\n base : '',\n\n // data that will\n urlData : {},\n\n // whether to add default data to url data\n defaultData : true,\n\n // whether to serialize closest form\n serializeForm : false,\n\n // how long to wait before request should occur\n throttle : 0,\n\n // whether to throttle first request or only repeated\n throttleFirstRequest : true,\n\n // standard ajax settings\n method : 'get',\n data : {},\n dataType : 'json',\n\n // mock response\n mockResponse : false,\n mockResponseAsync : false,\n\n // aliases for mock\n response : false,\n responseAsync : false,\n\n // callbacks before request\n beforeSend : function(settings) { return settings; },\n beforeXHR : function(xhr) {},\n onRequest : function(promise, xhr) {},\n\n // after request\n onResponse : false, // function(response) { },\n\n // response was successful, if JSON passed validation\n onSuccess : function(response, $module) {},\n\n // request finished without aborting\n onComplete : function(response, $module) {},\n\n // failed JSON success test\n onFailure : function(response, $module) {},\n\n // server error\n onError : function(errorMessage, $module) {},\n\n // request aborted\n onAbort : function(errorMessage, $module) {},\n\n successTest : false,\n\n // errors\n error : {\n beforeSend : 'The before send function has aborted the request',\n error : 'There was an error with your request',\n exitConditions : 'API Request Aborted. Exit conditions met',\n JSONParse : 'JSON could not be parsed during error handling',\n legacyParameters : 'You are using legacy API success callback names',\n method : 'The method you called is not defined',\n missingAction : 'API action used but no url was defined',\n missingSerialize : 'jquery-serialize-object is required to add form data to an existing data object',\n missingURL : 'No URL specified for api event',\n noReturnedValue : 'The beforeSend callback must return a settings object, beforeSend ignored.',\n noStorage : 'Caching responses locally requires session storage',\n parseError : 'There was an error parsing your request',\n requiredParameter : 'Missing a required URL parameter: ',\n statusMessage : 'Server gave an error: ',\n timeout : 'Your request timed out'\n },\n\n regExp : {\n required : /\\{\\$*[A-z0-9]+\\}/g,\n optional : /\\{\\/\\$*[A-z0-9]+\\}/g,\n },\n\n className: {\n loading : 'loading',\n error : 'error'\n },\n\n selector: {\n disabled : '.disabled',\n form : 'form'\n },\n\n metadata: {\n action : 'action',\n url : 'url'\n }\n};\n\n\n\n})( jQuery, window, document );\n\n/*!\n * # Semantic UI 2.2.11 - State\n * http://github.com/semantic-org/semantic-ui/\n *\n *\n * Released under the MIT license\n * http://opensource.org/licenses/MIT\n *\n */\n\n;(function ($, window, document, undefined) {\n\n\"use strict\";\n\nwindow = (typeof window != 'undefined' && window.Math == Math)\n ? window\n : (typeof self != 'undefined' && self.Math == Math)\n ? self\n : Function('return this')()\n;\n\n$.fn.state = function(parameters) {\n var\n $allModules = $(this),\n\n moduleSelector = $allModules.selector || '',\n\n hasTouch = ('ontouchstart' in document.documentElement),\n time = new Date().getTime(),\n performance = [],\n\n query = arguments[0],\n methodInvoked = (typeof query == 'string'),\n queryArguments = [].slice.call(arguments, 1),\n\n returnedValue\n ;\n $allModules\n .each(function() {\n var\n settings = ( $.isPlainObject(parameters) )\n ? $.extend(true, {}, $.fn.state.settings, parameters)\n : $.extend({}, $.fn.state.settings),\n\n error = settings.error,\n metadata = settings.metadata,\n className = settings.className,\n namespace = settings.namespace,\n states = settings.states,\n text = settings.text,\n\n eventNamespace = '.' + namespace,\n moduleNamespace = namespace + '-module',\n\n $module = $(this),\n\n element = this,\n instance = $module.data(moduleNamespace),\n\n module\n ;\n module = {\n\n initialize: function() {\n module.verbose('Initializing module');\n\n // allow module to guess desired state based on element\n if(settings.automatic) {\n module.add.defaults();\n }\n\n // bind events with delegated events\n if(settings.context && moduleSelector !== '') {\n $(settings.context)\n .on(moduleSelector, 'mouseenter' + eventNamespace, module.change.text)\n .on(moduleSelector, 'mouseleave' + eventNamespace, module.reset.text)\n .on(moduleSelector, 'click' + eventNamespace, module.toggle.state)\n ;\n }\n else {\n $module\n .on('mouseenter' + eventNamespace, module.change.text)\n .on('mouseleave' + eventNamespace, module.reset.text)\n .on('click' + eventNamespace, module.toggle.state)\n ;\n }\n module.instantiate();\n },\n\n instantiate: function() {\n module.verbose('Storing instance of module', module);\n instance = module;\n $module\n .data(moduleNamespace, module)\n ;\n },\n\n destroy: function() {\n module.verbose('Destroying previous module', instance);\n $module\n .off(eventNamespace)\n .removeData(moduleNamespace)\n ;\n },\n\n refresh: function() {\n module.verbose('Refreshing selector cache');\n $module = $(element);\n },\n\n add: {\n defaults: function() {\n var\n userStates = parameters && $.isPlainObject(parameters.states)\n ? parameters.states\n : {}\n ;\n $.each(settings.defaults, function(type, typeStates) {\n if( module.is[type] !== undefined && module.is[type]() ) {\n module.verbose('Adding default states', type, element);\n $.extend(settings.states, typeStates, userStates);\n }\n });\n }\n },\n\n is: {\n\n active: function() {\n return $module.hasClass(className.active);\n },\n loading: function() {\n return $module.hasClass(className.loading);\n },\n inactive: function() {\n return !( $module.hasClass(className.active) );\n },\n state: function(state) {\n if(className[state] === undefined) {\n return false;\n }\n return $module.hasClass( className[state] );\n },\n\n enabled: function() {\n return !( $module.is(settings.filter.active) );\n },\n disabled: function() {\n return ( $module.is(settings.filter.active) );\n },\n textEnabled: function() {\n return !( $module.is(settings.filter.text) );\n },\n\n // definitions for automatic type detection\n button: function() {\n return $module.is('.button:not(a, .submit)');\n },\n input: function() {\n return $module.is('input');\n },\n progress: function() {\n return $module.is('.ui.progress');\n }\n },\n\n allow: function(state) {\n module.debug('Now allowing state', state);\n states[state] = true;\n },\n disallow: function(state) {\n module.debug('No longer allowing', state);\n states[state] = false;\n },\n\n allows: function(state) {\n return states[state] || false;\n },\n\n enable: function() {\n $module.removeClass(className.disabled);\n },\n\n disable: function() {\n $module.addClass(className.disabled);\n },\n\n setState: function(state) {\n if(module.allows(state)) {\n $module.addClass( className[state] );\n }\n },\n\n removeState: function(state) {\n if(module.allows(state)) {\n $module.removeClass( className[state] );\n }\n },\n\n toggle: {\n state: function() {\n var\n apiRequest,\n requestCancelled\n ;\n if( module.allows('active') && module.is.enabled() ) {\n module.refresh();\n if($.fn.api !== undefined) {\n apiRequest = $module.api('get request');\n requestCancelled = $module.api('was cancelled');\n if( requestCancelled ) {\n module.debug('API Request cancelled by beforesend');\n settings.activateTest = function(){ return false; };\n settings.deactivateTest = function(){ return false; };\n }\n else if(apiRequest) {\n module.listenTo(apiRequest);\n return;\n }\n }\n module.change.state();\n }\n }\n },\n\n listenTo: function(apiRequest) {\n module.debug('API request detected, waiting for state signal', apiRequest);\n if(apiRequest) {\n if(text.loading) {\n module.update.text(text.loading);\n }\n $.when(apiRequest)\n .then(function() {\n if(apiRequest.state() == 'resolved') {\n module.debug('API request succeeded');\n settings.activateTest = function(){ return true; };\n settings.deactivateTest = function(){ return true; };\n }\n else {\n module.debug('API request failed');\n settings.activateTest = function(){ return false; };\n settings.deactivateTest = function(){ return false; };\n }\n module.change.state();\n })\n ;\n }\n },\n\n // checks whether active/inactive state can be given\n change: {\n\n state: function() {\n module.debug('Determining state change direction');\n // inactive to active change\n if( module.is.inactive() ) {\n module.activate();\n }\n else {\n module.deactivate();\n }\n if(settings.sync) {\n module.sync();\n }\n settings.onChange.call(element);\n },\n\n text: function() {\n if( module.is.textEnabled() ) {\n if(module.is.disabled() ) {\n module.verbose('Changing text to disabled text', text.hover);\n module.update.text(text.disabled);\n }\n else if( module.is.active() ) {\n if(text.hover) {\n module.verbose('Changing text to hover text', text.hover);\n module.update.text(text.hover);\n }\n else if(text.deactivate) {\n module.verbose('Changing text to deactivating text', text.deactivate);\n module.update.text(text.deactivate);\n }\n }\n else {\n if(text.hover) {\n module.verbose('Changing text to hover text', text.hover);\n module.update.text(text.hover);\n }\n else if(text.activate){\n module.verbose('Changing text to activating text', text.activate);\n module.update.text(text.activate);\n }\n }\n }\n }\n\n },\n\n activate: function() {\n if( settings.activateTest.call(element) ) {\n module.debug('Setting state to active');\n $module\n .addClass(className.active)\n ;\n module.update.text(text.active);\n settings.onActivate.call(element);\n }\n },\n\n deactivate: function() {\n if( settings.deactivateTest.call(element) ) {\n module.debug('Setting state to inactive');\n $module\n .removeClass(className.active)\n ;\n module.update.text(text.inactive);\n settings.onDeactivate.call(element);\n }\n },\n\n sync: function() {\n module.verbose('Syncing other buttons to current state');\n if( module.is.active() ) {\n $allModules\n .not($module)\n .state('activate');\n }\n else {\n $allModules\n .not($module)\n .state('deactivate')\n ;\n }\n },\n\n get: {\n text: function() {\n return (settings.selector.text)\n ? $module.find(settings.selector.text).text()\n : $module.html()\n ;\n },\n textFor: function(state) {\n return text[state] || false;\n }\n },\n\n flash: {\n text: function(text, duration, callback) {\n var\n previousText = module.get.text()\n ;\n module.debug('Flashing text message', text, duration);\n text = text || settings.text.flash;\n duration = duration || settings.flashDuration;\n callback = callback || function() {};\n module.update.text(text);\n setTimeout(function(){\n module.update.text(previousText);\n callback.call(element);\n }, duration);\n }\n },\n\n reset: {\n // on mouseout sets text to previous value\n text: function() {\n var\n activeText = text.active || $module.data(metadata.storedText),\n inactiveText = text.inactive || $module.data(metadata.storedText)\n ;\n if( module.is.textEnabled() ) {\n if( module.is.active() && activeText) {\n module.verbose('Resetting active text', activeText);\n module.update.text(activeText);\n }\n else if(inactiveText) {\n module.verbose('Resetting inactive text', activeText);\n module.update.text(inactiveText);\n }\n }\n }\n },\n\n update: {\n text: function(text) {\n var\n currentText = module.get.text()\n ;\n if(text && text !== currentText) {\n module.debug('Updating text', text);\n if(settings.selector.text) {\n $module\n .data(metadata.storedText, text)\n .find(settings.selector.text)\n .text(text)\n ;\n }\n else {\n $module\n .data(metadata.storedText, text)\n .html(text)\n ;\n }\n }\n else {\n module.debug('Text is already set, ignoring update', text);\n }\n }\n },\n\n setting: function(name, value) {\n module.debug('Changing setting', name, value);\n if( $.isPlainObject(name) ) {\n $.extend(true, settings, name);\n }\n else if(value !== undefined) {\n if($.isPlainObject(settings[name])) {\n $.extend(true, settings[name], value);\n }\n else {\n settings[name] = value;\n }\n }\n else {\n return settings[name];\n }\n },\n internal: function(name, value) {\n if( $.isPlainObject(name) ) {\n $.extend(true, module, name);\n }\n else if(value !== undefined) {\n module[name] = value;\n }\n else {\n return module[name];\n }\n },\n debug: function() {\n if(!settings.silent && settings.debug) {\n if(settings.performance) {\n module.performance.log(arguments);\n }\n else {\n module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');\n module.debug.apply(console, arguments);\n }\n }\n },\n verbose: function() {\n if(!settings.silent && settings.verbose && settings.debug) {\n if(settings.performance) {\n module.performance.log(arguments);\n }\n else {\n module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');\n module.verbose.apply(console, arguments);\n }\n }\n },\n error: function() {\n if(!settings.silent) {\n module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');\n module.error.apply(console, arguments);\n }\n },\n performance: {\n log: function(message) {\n var\n currentTime,\n executionTime,\n previousTime\n ;\n if(settings.performance) {\n currentTime = new Date().getTime();\n previousTime = time || currentTime;\n executionTime = currentTime - previousTime;\n time = currentTime;\n performance.push({\n 'Name' : message[0],\n 'Arguments' : [].slice.call(message, 1) || '',\n 'Element' : element,\n 'Execution Time' : executionTime\n });\n }\n clearTimeout(module.performance.timer);\n module.performance.timer = setTimeout(module.performance.display, 500);\n },\n display: function() {\n var\n title = settings.name + ':',\n totalTime = 0\n ;\n time = false;\n clearTimeout(module.performance.timer);\n $.each(performance, function(index, data) {\n totalTime += data['Execution Time'];\n });\n title += ' ' + totalTime + 'ms';\n if(moduleSelector) {\n title += ' \\'' + moduleSelector + '\\'';\n }\n if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {\n console.groupCollapsed(title);\n if(console.table) {\n console.table(performance);\n }\n else {\n $.each(performance, function(index, data) {\n console.log(data['Name'] + ': ' + data['Execution Time']+'ms');\n });\n }\n console.groupEnd();\n }\n performance = [];\n }\n },\n invoke: function(query, passedArguments, context) {\n var\n object = instance,\n maxDepth,\n found,\n response\n ;\n passedArguments = passedArguments || queryArguments;\n context = element || context;\n if(typeof query == 'string' && object !== undefined) {\n query = query.split(/[\\. ]/);\n maxDepth = query.length - 1;\n $.each(query, function(depth, value) {\n var camelCaseValue = (depth != maxDepth)\n ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)\n : query\n ;\n if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {\n object = object[camelCaseValue];\n }\n else if( object[camelCaseValue] !== undefined ) {\n found = object[camelCaseValue];\n return false;\n }\n else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {\n object = object[value];\n }\n else if( object[value] !== undefined ) {\n found = object[value];\n return false;\n }\n else {\n module.error(error.method, query);\n return false;\n }\n });\n }\n if ( $.isFunction( found ) ) {\n response = found.apply(context, passedArguments);\n }\n else if(found !== undefined) {\n response = found;\n }\n if($.isArray(returnedValue)) {\n returnedValue.push(response);\n }\n else if(returnedValue !== undefined) {\n returnedValue = [returnedValue, response];\n }\n else if(response !== undefined) {\n returnedValue = response;\n }\n return found;\n }\n };\n\n if(methodInvoked) {\n if(instance === undefined) {\n module.initialize();\n }\n module.invoke(query);\n }\n else {\n if(instance !== undefined) {\n instance.invoke('destroy');\n }\n module.initialize();\n }\n })\n ;\n\n return (returnedValue !== undefined)\n ? returnedValue\n : this\n ;\n};\n\n$.fn.state.settings = {\n\n // module info\n name : 'State',\n\n // debug output\n debug : false,\n\n // verbose debug output\n verbose : false,\n\n // namespace for events\n namespace : 'state',\n\n // debug data includes performance\n performance : true,\n\n // callback occurs on state change\n onActivate : function() {},\n onDeactivate : function() {},\n onChange : function() {},\n\n // state test functions\n activateTest : function() { return true; },\n deactivateTest : function() { return true; },\n\n // whether to automatically map default states\n automatic : true,\n\n // activate / deactivate changes all elements instantiated at same time\n sync : false,\n\n // default flash text duration, used for temporarily changing text of an element\n flashDuration : 1000,\n\n // selector filter\n filter : {\n text : '.loading, .disabled',\n active : '.disabled'\n },\n\n context : false,\n\n // error\n error: {\n beforeSend : 'The before send function has cancelled state change',\n method : 'The method you called is not defined.'\n },\n\n // metadata\n metadata: {\n promise : 'promise',\n storedText : 'stored-text'\n },\n\n // change class on state\n className: {\n active : 'active',\n disabled : 'disabled',\n error : 'error',\n loading : 'loading',\n success : 'success',\n warning : 'warning'\n },\n\n selector: {\n // selector for text node\n text: false\n },\n\n defaults : {\n input: {\n disabled : true,\n loading : true,\n active : true\n },\n button: {\n disabled : true,\n loading : true,\n active : true,\n },\n progress: {\n active : true,\n success : true,\n warning : true,\n error : true\n }\n },\n\n states : {\n active : true,\n disabled : true,\n error : true,\n loading : true,\n success : true,\n warning : true\n },\n\n text : {\n disabled : false,\n flash : false,\n hover : false,\n active : false,\n inactive : false,\n activate : false,\n deactivate : false\n }\n\n};\n\n\n\n})( jQuery, window, document );\n\n/*!\n * # Semantic UI 2.2.11 - Visibility\n * http://github.com/semantic-org/semantic-ui/\n *\n *\n * Released under the MIT license\n * http://opensource.org/licenses/MIT\n *\n */\n\n;(function ($, window, document, undefined) {\n\n\"use strict\";\n\nwindow = (typeof window != 'undefined' && window.Math == Math)\n ? window\n : (typeof self != 'undefined' && self.Math == Math)\n ? self\n : Function('return this')()\n;\n\n$.fn.visibility = function(parameters) {\n var\n $allModules = $(this),\n moduleSelector = $allModules.selector || '',\n\n time = new Date().getTime(),\n performance = [],\n\n query = arguments[0],\n methodInvoked = (typeof query == 'string'),\n queryArguments = [].slice.call(arguments, 1),\n returnedValue,\n\n moduleCount = $allModules.length,\n loadedCount = 0\n ;\n\n $allModules\n .each(function() {\n var\n settings = ( $.isPlainObject(parameters) )\n ? $.extend(true, {}, $.fn.visibility.settings, parameters)\n : $.extend({}, $.fn.visibility.settings),\n\n className = settings.className,\n namespace = settings.namespace,\n error = settings.error,\n metadata = settings.metadata,\n\n eventNamespace = '.' + namespace,\n moduleNamespace = 'module-' + namespace,\n\n $window = $(window),\n\n $module = $(this),\n $context = $(settings.context),\n\n $placeholder,\n\n selector = $module.selector || '',\n instance = $module.data(moduleNamespace),\n\n requestAnimationFrame = window.requestAnimationFrame\n || window.mozRequestAnimationFrame\n || window.webkitRequestAnimationFrame\n || window.msRequestAnimationFrame\n || function(callback) { setTimeout(callback, 0); },\n\n element = this,\n disabled = false,\n\n contextObserver,\n observer,\n module\n ;\n\n module = {\n\n initialize: function() {\n module.debug('Initializing', settings);\n\n module.setup.cache();\n\n if( module.should.trackChanges() ) {\n\n if(settings.type == 'image') {\n module.setup.image();\n }\n if(settings.type == 'fixed') {\n module.setup.fixed();\n }\n\n if(settings.observeChanges) {\n module.observeChanges();\n }\n module.bind.events();\n }\n\n module.save.position();\n if( !module.is.visible() ) {\n module.error(error.visible, $module);\n }\n\n if(settings.initialCheck) {\n module.checkVisibility();\n }\n module.instantiate();\n },\n\n instantiate: function() {\n module.debug('Storing instance', module);\n $module\n .data(moduleNamespace, module)\n ;\n instance = module;\n },\n\n destroy: function() {\n module.verbose('Destroying previous module');\n if(observer) {\n observer.disconnect();\n }\n if(contextObserver) {\n contextObserver.disconnect();\n }\n $window\n .off('load' + eventNamespace, module.event.load)\n .off('resize' + eventNamespace, module.event.resize)\n ;\n $context\n .off('scroll' + eventNamespace, module.event.scroll)\n .off('scrollchange' + eventNamespace, module.event.scrollchange)\n ;\n if(settings.type == 'fixed') {\n module.resetFixed();\n module.remove.placeholder();\n }\n $module\n .off(eventNamespace)\n .removeData(moduleNamespace)\n ;\n },\n\n observeChanges: function() {\n if('MutationObserver' in window) {\n contextObserver = new MutationObserver(module.event.contextChanged);\n observer = new MutationObserver(module.event.changed);\n contextObserver.observe(document, {\n childList : true,\n subtree : true\n });\n observer.observe(element, {\n childList : true,\n subtree : true\n });\n module.debug('Setting up mutation observer', observer);\n }\n },\n\n bind: {\n events: function() {\n module.verbose('Binding visibility events to scroll and resize');\n if(settings.refreshOnLoad) {\n $window\n .on('load' + eventNamespace, module.event.load)\n ;\n }\n $window\n .on('resize' + eventNamespace, module.event.resize)\n ;\n // pub/sub pattern\n $context\n .off('scroll' + eventNamespace)\n .on('scroll' + eventNamespace, module.event.scroll)\n .on('scrollchange' + eventNamespace, module.event.scrollchange)\n ;\n }\n },\n\n event: {\n changed: function(mutations) {\n module.verbose('DOM tree modified, updating visibility calculations');\n module.timer = setTimeout(function() {\n module.verbose('DOM tree modified, updating sticky menu');\n module.refresh();\n }, 100);\n },\n contextChanged: function(mutations) {\n [].forEach.call(mutations, function(mutation) {\n if(mutation.removedNodes) {\n [].forEach.call(mutation.removedNodes, function(node) {\n if(node == element || $(node).find(element).length > 0) {\n module.debug('Element removed from DOM, tearing down events');\n module.destroy();\n }\n });\n }\n });\n },\n resize: function() {\n module.debug('Window resized');\n if(settings.refreshOnResize) {\n requestAnimationFrame(module.refresh);\n }\n },\n load: function() {\n module.debug('Page finished loading');\n requestAnimationFrame(module.refresh);\n },\n // publishes scrollchange event on one scroll\n scroll: function() {\n if(settings.throttle) {\n clearTimeout(module.timer);\n module.timer = setTimeout(function() {\n $context.triggerHandler('scrollchange' + eventNamespace, [ $context.scrollTop() ]);\n }, settings.throttle);\n }\n else {\n requestAnimationFrame(function() {\n $context.triggerHandler('scrollchange' + eventNamespace, [ $context.scrollTop() ]);\n });\n }\n },\n // subscribes to scrollchange\n scrollchange: function(event, scrollPosition) {\n module.checkVisibility(scrollPosition);\n },\n },\n\n precache: function(images, callback) {\n if (!(images instanceof Array)) {\n images = [images];\n }\n var\n imagesLength = images.length,\n loadedCounter = 0,\n cache = [],\n cacheImage = document.createElement('img'),\n handleLoad = function() {\n loadedCounter++;\n if (loadedCounter >= images.length) {\n if ($.isFunction(callback)) {\n callback();\n }\n }\n }\n ;\n while (imagesLength--) {\n cacheImage = document.createElement('img');\n cacheImage.onload = handleLoad;\n cacheImage.onerror = handleLoad;\n cacheImage.src = images[imagesLength];\n cache.push(cacheImage);\n }\n },\n\n enableCallbacks: function() {\n module.debug('Allowing callbacks to occur');\n disabled = false;\n },\n\n disableCallbacks: function() {\n module.debug('Disabling all callbacks temporarily');\n disabled = true;\n },\n\n should: {\n trackChanges: function() {\n if(methodInvoked) {\n module.debug('One time query, no need to bind events');\n return false;\n }\n module.debug('Callbacks being attached');\n return true;\n }\n },\n\n setup: {\n cache: function() {\n module.cache = {\n occurred : {},\n screen : {},\n element : {},\n };\n },\n image: function() {\n var\n src = $module.data(metadata.src)\n ;\n if(src) {\n module.verbose('Lazy loading image', src);\n settings.once = true;\n settings.observeChanges = false;\n\n // show when top visible\n settings.onOnScreen = function() {\n module.debug('Image on screen', element);\n module.precache(src, function() {\n module.set.image(src, function() {\n loadedCount++;\n if(loadedCount == moduleCount) {\n settings.onAllLoaded.call(this);\n }\n settings.onLoad.call(this);\n });\n });\n };\n }\n },\n fixed: function() {\n module.debug('Setting up fixed');\n settings.once = false;\n settings.observeChanges = false;\n settings.initialCheck = true;\n settings.refreshOnLoad = true;\n if(!parameters.transition) {\n settings.transition = false;\n }\n module.create.placeholder();\n module.debug('Added placeholder', $placeholder);\n settings.onTopPassed = function() {\n module.debug('Element passed, adding fixed position', $module);\n module.show.placeholder();\n module.set.fixed();\n if(settings.transition) {\n if($.fn.transition !== undefined) {\n $module.transition(settings.transition, settings.duration);\n }\n }\n };\n settings.onTopPassedReverse = function() {\n module.debug('Element returned to position, removing fixed', $module);\n module.hide.placeholder();\n module.remove.fixed();\n };\n }\n },\n\n create: {\n placeholder: function() {\n module.verbose('Creating fixed position placeholder');\n $placeholder = $module\n .clone(false)\n .css('display', 'none')\n .addClass(className.placeholder)\n .insertAfter($module)\n ;\n }\n },\n\n show: {\n placeholder: function() {\n module.verbose('Showing placeholder');\n $placeholder\n .css('display', 'block')\n .css('visibility', 'hidden')\n ;\n }\n },\n hide: {\n placeholder: function() {\n module.verbose('Hiding placeholder');\n $placeholder\n .css('display', 'none')\n .css('visibility', '')\n ;\n }\n },\n\n set: {\n fixed: function() {\n module.verbose('Setting element to fixed position');\n $module\n .addClass(className.fixed)\n .css({\n position : 'fixed',\n top : settings.offset + 'px',\n left : 'auto',\n zIndex : settings.zIndex\n })\n ;\n settings.onFixed.call(element);\n },\n image: function(src, callback) {\n $module\n .attr('src', src)\n ;\n if(settings.transition) {\n if( $.fn.transition !== undefined) {\n if($module.hasClass(className.visible)) {\n module.debug('Transition already occurred on this image, skipping animation');\n return;\n }\n $module.transition(settings.transition, settings.duration, callback);\n }\n else {\n $module.fadeIn(settings.duration, callback);\n }\n }\n else {\n $module.show();\n }\n }\n },\n\n is: {\n onScreen: function() {\n var\n calculations = module.get.elementCalculations()\n ;\n return calculations.onScreen;\n },\n offScreen: function() {\n var\n calculations = module.get.elementCalculations()\n ;\n return calculations.offScreen;\n },\n visible: function() {\n if(module.cache && module.cache.element) {\n return !(module.cache.element.width === 0 && module.cache.element.offset.top === 0);\n }\n return false;\n },\n verticallyScrollableContext: function() {\n var\n overflowY = ($context.get(0) !== window)\n ? $context.css('overflow-y')\n : false\n ;\n return (overflowY == 'auto' || overflowY == 'scroll');\n },\n horizontallyScrollableContext: function() {\n var\n overflowX = ($context.get(0) !== window)\n ? $context.css('overflow-x')\n : false\n ;\n return (overflowX == 'auto' || overflowX == 'scroll');\n }\n },\n\n refresh: function() {\n module.debug('Refreshing constants (width/height)');\n if(settings.type == 'fixed') {\n module.resetFixed();\n }\n module.reset();\n module.save.position();\n if(settings.checkOnRefresh) {\n module.checkVisibility();\n }\n settings.onRefresh.call(element);\n },\n\n resetFixed: function () {\n module.remove.fixed();\n module.remove.occurred();\n },\n\n reset: function() {\n module.verbose('Resetting all cached values');\n if( $.isPlainObject(module.cache) ) {\n module.cache.screen = {};\n module.cache.element = {};\n }\n },\n\n checkVisibility: function(scroll) {\n module.verbose('Checking visibility of element', module.cache.element);\n\n if( !disabled && module.is.visible() ) {\n\n // save scroll position\n module.save.scroll(scroll);\n\n // update calculations derived from scroll\n module.save.calculations();\n\n // percentage\n module.passed();\n\n // reverse (must be first)\n module.passingReverse();\n module.topVisibleReverse();\n module.bottomVisibleReverse();\n module.topPassedReverse();\n module.bottomPassedReverse();\n\n // one time\n module.onScreen();\n module.offScreen();\n module.passing();\n module.topVisible();\n module.bottomVisible();\n module.topPassed();\n module.bottomPassed();\n\n // on update callback\n if(settings.onUpdate) {\n settings.onUpdate.call(element, module.get.elementCalculations());\n }\n }\n },\n\n passed: function(amount, newCallback) {\n var\n calculations = module.get.elementCalculations(),\n amountInPixels\n ;\n // assign callback\n if(amount && newCallback) {\n settings.onPassed[amount] = newCallback;\n }\n else if(amount !== undefined) {\n return (module.get.pixelsPassed(amount) > calculations.pixelsPassed);\n }\n else if(calculations.passing) {\n $.each(settings.onPassed, function(amount, callback) {\n if(calculations.bottomVisible || calculations.pixelsPassed > module.get.pixelsPassed(amount)) {\n module.execute(callback, amount);\n }\n else if(!settings.once) {\n module.remove.occurred(callback);\n }\n });\n }\n },\n\n onScreen: function(newCallback) {\n var\n calculations = module.get.elementCalculations(),\n callback = newCallback || settings.onOnScreen,\n callbackName = 'onScreen'\n ;\n if(newCallback) {\n module.debug('Adding callback for onScreen', newCallback);\n settings.onOnScreen = newCallback;\n }\n if(calculations.onScreen) {\n module.execute(callback, callbackName);\n }\n else if(!settings.once) {\n module.remove.occurred(callbackName);\n }\n if(newCallback !== undefined) {\n return calculations.onOnScreen;\n }\n },\n\n offScreen: function(newCallback) {\n var\n calculations = module.get.elementCalculations(),\n callback = newCallback || settings.onOffScreen,\n callbackName = 'offScreen'\n ;\n if(newCallback) {\n module.debug('Adding callback for offScreen', newCallback);\n settings.onOffScreen = newCallback;\n }\n if(calculations.offScreen) {\n module.execute(callback, callbackName);\n }\n else if(!settings.once) {\n module.remove.occurred(callbackName);\n }\n if(newCallback !== undefined) {\n return calculations.onOffScreen;\n }\n },\n\n passing: function(newCallback) {\n var\n calculations = module.get.elementCalculations(),\n callback = newCallback || settings.onPassing,\n callbackName = 'passing'\n ;\n if(newCallback) {\n module.debug('Adding callback for passing', newCallback);\n settings.onPassing = newCallback;\n }\n if(calculations.passing) {\n module.execute(callback, callbackName);\n }\n else if(!settings.once) {\n module.remove.occurred(callbackName);\n }\n if(newCallback !== undefined) {\n return calculations.passing;\n }\n },\n\n\n topVisible: function(newCallback) {\n var\n calculations = module.get.elementCalculations(),\n callback = newCallback || settings.onTopVisible,\n callbackName = 'topVisible'\n ;\n if(newCallback) {\n module.debug('Adding callback for top visible', newCallback);\n settings.onTopVisible = newCallback;\n }\n if(calculations.topVisible) {\n module.execute(callback, callbackName);\n }\n else if(!settings.once) {\n module.remove.occurred(callbackName);\n }\n if(newCallback === undefined) {\n return calculations.topVisible;\n }\n },\n\n bottomVisible: function(newCallback) {\n var\n calculations = module.get.elementCalculations(),\n callback = newCallback || settings.onBottomVisible,\n callbackName = 'bottomVisible'\n ;\n if(newCallback) {\n module.debug('Adding callback for bottom visible', newCallback);\n settings.onBottomVisible = newCallback;\n }\n if(calculations.bottomVisible) {\n module.execute(callback, callbackName);\n }\n else if(!settings.once) {\n module.remove.occurred(callbackName);\n }\n if(newCallback === undefined) {\n return calculations.bottomVisible;\n }\n },\n\n topPassed: function(newCallback) {\n var\n calculations = module.get.elementCalculations(),\n callback = newCallback || settings.onTopPassed,\n callbackName = 'topPassed'\n ;\n if(newCallback) {\n module.debug('Adding callback for top passed', newCallback);\n settings.onTopPassed = newCallback;\n }\n if(calculations.topPassed) {\n module.execute(callback, callbackName);\n }\n else if(!settings.once) {\n module.remove.occurred(callbackName);\n }\n if(newCallback === undefined) {\n return calculations.topPassed;\n }\n },\n\n bottomPassed: function(newCallback) {\n var\n calculations = module.get.elementCalculations(),\n callback = newCallback || settings.onBottomPassed,\n callbackName = 'bottomPassed'\n ;\n if(newCallback) {\n module.debug('Adding callback for bottom passed', newCallback);\n settings.onBottomPassed = newCallback;\n }\n if(calculations.bottomPassed) {\n module.execute(callback, callbackName);\n }\n else if(!settings.once) {\n module.remove.occurred(callbackName);\n }\n if(newCallback === undefined) {\n return calculations.bottomPassed;\n }\n },\n\n passingReverse: function(newCallback) {\n var\n calculations = module.get.elementCalculations(),\n callback = newCallback || settings.onPassingReverse,\n callbackName = 'passingReverse'\n ;\n if(newCallback) {\n module.debug('Adding callback for passing reverse', newCallback);\n settings.onPassingReverse = newCallback;\n }\n if(!calculations.passing) {\n if(module.get.occurred('passing')) {\n module.execute(callback, callbackName);\n }\n }\n else if(!settings.once) {\n module.remove.occurred(callbackName);\n }\n if(newCallback !== undefined) {\n return !calculations.passing;\n }\n },\n\n\n topVisibleReverse: function(newCallback) {\n var\n calculations = module.get.elementCalculations(),\n callback = newCallback || settings.onTopVisibleReverse,\n callbackName = 'topVisibleReverse'\n ;\n if(newCallback) {\n module.debug('Adding callback for top visible reverse', newCallback);\n settings.onTopVisibleReverse = newCallback;\n }\n if(!calculations.topVisible) {\n if(module.get.occurred('topVisible')) {\n module.execute(callback, callbackName);\n }\n }\n else if(!settings.once) {\n module.remove.occurred(callbackName);\n }\n if(newCallback === undefined) {\n return !calculations.topVisible;\n }\n },\n\n bottomVisibleReverse: function(newCallback) {\n var\n calculations = module.get.elementCalculations(),\n callback = newCallback || settings.onBottomVisibleReverse,\n callbackName = 'bottomVisibleReverse'\n ;\n if(newCallback) {\n module.debug('Adding callback for bottom visible reverse', newCallback);\n settings.onBottomVisibleReverse = newCallback;\n }\n if(!calculations.bottomVisible) {\n if(module.get.occurred('bottomVisible')) {\n module.execute(callback, callbackName);\n }\n }\n else if(!settings.once) {\n module.remove.occurred(callbackName);\n }\n if(newCallback === undefined) {\n return !calculations.bottomVisible;\n }\n },\n\n topPassedReverse: function(newCallback) {\n var\n calculations = module.get.elementCalculations(),\n callback = newCallback || settings.onTopPassedReverse,\n callbackName = 'topPassedReverse'\n ;\n if(newCallback) {\n module.debug('Adding callback for top passed reverse', newCallback);\n settings.onTopPassedReverse = newCallback;\n }\n if(!calculations.topPassed) {\n if(module.get.occurred('topPassed')) {\n module.execute(callback, callbackName);\n }\n }\n else if(!settings.once) {\n module.remove.occurred(callbackName);\n }\n if(newCallback === undefined) {\n return !calculations.onTopPassed;\n }\n },\n\n bottomPassedReverse: function(newCallback) {\n var\n calculations = module.get.elementCalculations(),\n callback = newCallback || settings.onBottomPassedReverse,\n callbackName = 'bottomPassedReverse'\n ;\n if(newCallback) {\n module.debug('Adding callback for bottom passed reverse', newCallback);\n settings.onBottomPassedReverse = newCallback;\n }\n if(!calculations.bottomPassed) {\n if(module.get.occurred('bottomPassed')) {\n module.execute(callback, callbackName);\n }\n }\n else if(!settings.once) {\n module.remove.occurred(callbackName);\n }\n if(newCallback === undefined) {\n return !calculations.bottomPassed;\n }\n },\n\n execute: function(callback, callbackName) {\n var\n calculations = module.get.elementCalculations(),\n screen = module.get.screenCalculations()\n ;\n callback = callback || false;\n if(callback) {\n if(settings.continuous) {\n module.debug('Callback being called continuously', callbackName, calculations);\n callback.call(element, calculations, screen);\n }\n else if(!module.get.occurred(callbackName)) {\n module.debug('Conditions met', callbackName, calculations);\n callback.call(element, calculations, screen);\n }\n }\n module.save.occurred(callbackName);\n },\n\n remove: {\n fixed: function() {\n module.debug('Removing fixed position');\n $module\n .removeClass(className.fixed)\n .css({\n position : '',\n top : '',\n left : '',\n zIndex : ''\n })\n ;\n settings.onUnfixed.call(element);\n },\n placeholder: function() {\n module.debug('Removing placeholder content');\n if($placeholder) {\n $placeholder.remove();\n }\n },\n occurred: function(callback) {\n if(callback) {\n var\n occurred = module.cache.occurred\n ;\n if(occurred[callback] !== undefined && occurred[callback] === true) {\n module.debug('Callback can now be called again', callback);\n module.cache.occurred[callback] = false;\n }\n }\n else {\n module.cache.occurred = {};\n }\n }\n },\n\n save: {\n calculations: function() {\n module.verbose('Saving all calculations necessary to determine positioning');\n module.save.direction();\n module.save.screenCalculations();\n module.save.elementCalculations();\n },\n occurred: function(callback) {\n if(callback) {\n if(module.cache.occurred[callback] === undefined || (module.cache.occurred[callback] !== true)) {\n module.verbose('Saving callback occurred', callback);\n module.cache.occurred[callback] = true;\n }\n }\n },\n scroll: function(scrollPosition) {\n scrollPosition = scrollPosition + settings.offset || $context.scrollTop() + settings.offset;\n module.cache.scroll = scrollPosition;\n },\n direction: function() {\n var\n scroll = module.get.scroll(),\n lastScroll = module.get.lastScroll(),\n direction\n ;\n if(scroll > lastScroll && lastScroll) {\n direction = 'down';\n }\n else if(scroll < lastScroll && lastScroll) {\n direction = 'up';\n }\n else {\n direction = 'static';\n }\n module.cache.direction = direction;\n return module.cache.direction;\n },\n elementPosition: function() {\n var\n element = module.cache.element,\n screen = module.get.screenSize()\n ;\n module.verbose('Saving element position');\n // (quicker than $.extend)\n element.fits = (element.height < screen.height);\n element.offset = $module.offset();\n element.width = $module.outerWidth();\n element.height = $module.outerHeight();\n // compensate for scroll in context\n if(module.is.verticallyScrollableContext()) {\n element.offset.top += $context.scrollTop() - $context.offset().top;\n }\n if(module.is.horizontallyScrollableContext()) {\n element.offset.left += $context.scrollLeft - $context.offset().left;\n }\n // store\n module.cache.element = element;\n return element;\n },\n elementCalculations: function() {\n var\n screen = module.get.screenCalculations(),\n element = module.get.elementPosition()\n ;\n // offset\n if(settings.includeMargin) {\n element.margin = {};\n element.margin.top = parseInt($module.css('margin-top'), 10);\n element.margin.bottom = parseInt($module.css('margin-bottom'), 10);\n element.top = element.offset.top - element.margin.top;\n element.bottom = element.offset.top + element.height + element.margin.bottom;\n }\n else {\n element.top = element.offset.top;\n element.bottom = element.offset.top + element.height;\n }\n\n // visibility\n element.topPassed = (screen.top >= element.top);\n element.bottomPassed = (screen.top >= element.bottom);\n element.topVisible = (screen.bottom >= element.top) && !element.bottomPassed;\n element.bottomVisible = (screen.bottom >= element.bottom) && !element.topPassed;\n element.pixelsPassed = 0;\n element.percentagePassed = 0;\n\n // meta calculations\n element.onScreen = (element.topVisible && !element.bottomPassed);\n element.passing = (element.topPassed && !element.bottomPassed);\n element.offScreen = (!element.onScreen);\n\n // passing calculations\n if(element.passing) {\n element.pixelsPassed = (screen.top - element.top);\n element.percentagePassed = (screen.top - element.top) / element.height;\n }\n module.cache.element = element;\n module.verbose('Updated element calculations', element);\n return element;\n },\n screenCalculations: function() {\n var\n scroll = module.get.scroll()\n ;\n module.save.direction();\n module.cache.screen.top = scroll;\n module.cache.screen.bottom = scroll + module.cache.screen.height;\n return module.cache.screen;\n },\n screenSize: function() {\n module.verbose('Saving window position');\n module.cache.screen = {\n height: $context.height()\n };\n },\n position: function() {\n module.save.screenSize();\n module.save.elementPosition();\n }\n },\n\n get: {\n pixelsPassed: function(amount) {\n var\n element = module.get.elementCalculations()\n ;\n if(amount.search('%') > -1) {\n return ( element.height * (parseInt(amount, 10) / 100) );\n }\n return parseInt(amount, 10);\n },\n occurred: function(callback) {\n return (module.cache.occurred !== undefined)\n ? module.cache.occurred[callback] || false\n : false\n ;\n },\n direction: function() {\n if(module.cache.direction === undefined) {\n module.save.direction();\n }\n return module.cache.direction;\n },\n elementPosition: function() {\n if(module.cache.element === undefined) {\n module.save.elementPosition();\n }\n return module.cache.element;\n },\n elementCalculations: function() {\n if(module.cache.element === undefined) {\n module.save.elementCalculations();\n }\n return module.cache.element;\n },\n screenCalculations: function() {\n if(module.cache.screen === undefined) {\n module.save.screenCalculations();\n }\n return module.cache.screen;\n },\n screenSize: function() {\n if(module.cache.screen === undefined) {\n module.save.screenSize();\n }\n return module.cache.screen;\n },\n scroll: function() {\n if(module.cache.scroll === undefined) {\n module.save.scroll();\n }\n return module.cache.scroll;\n },\n lastScroll: function() {\n if(module.cache.screen === undefined) {\n module.debug('First scroll event, no last scroll could be found');\n return false;\n }\n return module.cache.screen.top;\n }\n },\n\n setting: function(name, value) {\n if( $.isPlainObject(name) ) {\n $.extend(true, settings, name);\n }\n else if(value !== undefined) {\n settings[name] = value;\n }\n else {\n return settings[name];\n }\n },\n internal: function(name, value) {\n if( $.isPlainObject(name) ) {\n $.extend(true, module, name);\n }\n else if(value !== undefined) {\n module[name] = value;\n }\n else {\n return module[name];\n }\n },\n debug: function() {\n if(!settings.silent && settings.debug) {\n if(settings.performance) {\n module.performance.log(arguments);\n }\n else {\n module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');\n module.debug.apply(console, arguments);\n }\n }\n },\n verbose: function() {\n if(!settings.silent && settings.verbose && settings.debug) {\n if(settings.performance) {\n module.performance.log(arguments);\n }\n else {\n module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');\n module.verbose.apply(console, arguments);\n }\n }\n },\n error: function() {\n if(!settings.silent) {\n module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');\n module.error.apply(console, arguments);\n }\n },\n performance: {\n log: function(message) {\n var\n currentTime,\n executionTime,\n previousTime\n ;\n if(settings.performance) {\n currentTime = new Date().getTime();\n previousTime = time || currentTime;\n executionTime = currentTime - previousTime;\n time = currentTime;\n performance.push({\n 'Name' : message[0],\n 'Arguments' : [].slice.call(message, 1) || '',\n 'Element' : element,\n 'Execution Time' : executionTime\n });\n }\n clearTimeout(module.performance.timer);\n module.performance.timer = setTimeout(module.performance.display, 500);\n },\n display: function() {\n var\n title = settings.name + ':',\n totalTime = 0\n ;\n time = false;\n clearTimeout(module.performance.timer);\n $.each(performance, function(index, data) {\n totalTime += data['Execution Time'];\n });\n title += ' ' + totalTime + 'ms';\n if(moduleSelector) {\n title += ' \\'' + moduleSelector + '\\'';\n }\n if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {\n console.groupCollapsed(title);\n if(console.table) {\n console.table(performance);\n }\n else {\n $.each(performance, function(index, data) {\n console.log(data['Name'] + ': ' + data['Execution Time']+'ms');\n });\n }\n console.groupEnd();\n }\n performance = [];\n }\n },\n invoke: function(query, passedArguments, context) {\n var\n object = instance,\n maxDepth,\n found,\n response\n ;\n passedArguments = passedArguments || queryArguments;\n context = element || context;\n if(typeof query == 'string' && object !== undefined) {\n query = query.split(/[\\. ]/);\n maxDepth = query.length - 1;\n $.each(query, function(depth, value) {\n var camelCaseValue = (depth != maxDepth)\n ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)\n : query\n ;\n if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {\n object = object[camelCaseValue];\n }\n else if( object[camelCaseValue] !== undefined ) {\n found = object[camelCaseValue];\n return false;\n }\n else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {\n object = object[value];\n }\n else if( object[value] !== undefined ) {\n found = object[value];\n return false;\n }\n else {\n module.error(error.method, query);\n return false;\n }\n });\n }\n if ( $.isFunction( found ) ) {\n response = found.apply(context, passedArguments);\n }\n else if(found !== undefined) {\n response = found;\n }\n if($.isArray(returnedValue)) {\n returnedValue.push(response);\n }\n else if(returnedValue !== undefined) {\n returnedValue = [returnedValue, response];\n }\n else if(response !== undefined) {\n returnedValue = response;\n }\n return found;\n }\n };\n\n if(methodInvoked) {\n if(instance === undefined) {\n module.initialize();\n }\n instance.save.scroll();\n instance.save.calculations();\n module.invoke(query);\n }\n else {\n if(instance !== undefined) {\n instance.invoke('destroy');\n }\n module.initialize();\n }\n })\n ;\n\n return (returnedValue !== undefined)\n ? returnedValue\n : this\n ;\n};\n\n$.fn.visibility.settings = {\n\n name : 'Visibility',\n namespace : 'visibility',\n\n debug : false,\n verbose : false,\n performance : true,\n\n // whether to use mutation observers to follow changes\n observeChanges : true,\n\n // check position immediately on init\n initialCheck : true,\n\n // whether to refresh calculations after all page images load\n refreshOnLoad : true,\n\n // whether to refresh calculations after page resize event\n refreshOnResize : true,\n\n // should call callbacks on refresh event (resize, etc)\n checkOnRefresh : true,\n\n // callback should only occur one time\n once : true,\n\n // callback should fire continuously whe evaluates to true\n continuous : false,\n\n // offset to use with scroll top\n offset : 0,\n\n // whether to include margin in elements position\n includeMargin : false,\n\n // scroll context for visibility checks\n context : window,\n\n // visibility check delay in ms (defaults to animationFrame)\n throttle : false,\n\n // special visibility type (image, fixed)\n type : false,\n\n // z-index to use with visibility 'fixed'\n zIndex : '10',\n\n // image only animation settings\n transition : 'fade in',\n duration : 1000,\n\n // array of callbacks for percentage\n onPassed : {},\n\n // standard callbacks\n onOnScreen : false,\n onOffScreen : false,\n onPassing : false,\n onTopVisible : false,\n onBottomVisible : false,\n onTopPassed : false,\n onBottomPassed : false,\n\n // reverse callbacks\n onPassingReverse : false,\n onTopVisibleReverse : false,\n onBottomVisibleReverse : false,\n onTopPassedReverse : false,\n onBottomPassedReverse : false,\n\n // special callbacks for image\n onLoad : function() {},\n onAllLoaded : function() {},\n\n // special callbacks for fixed position\n onFixed : function() {},\n onUnfixed : function() {},\n\n // utility callbacks\n onUpdate : false, // disabled by default for performance\n onRefresh : function(){},\n\n metadata : {\n src: 'src'\n },\n\n className: {\n fixed : 'fixed',\n placeholder : 'placeholder',\n visible : 'visible'\n },\n\n error : {\n method : 'The method you called is not defined.',\n visible : 'Element is hidden, you must call refresh after element becomes visible'\n }\n\n};\n\n})( jQuery, window, document );\n";
},,function(e,t,n){"use strict";var o=n(601),r=n(162),i=n(591),a=n(344),s=n(346),u=n(613),l=n(1);n.d(t,"f",function(){return o.e}),n.d(t,"c",function(){return o.b}),n.d(t,"g",function(){return o.f}),n.d(t,"e",function(){return o.d}),n.d(t,"d",function(){return o.c}),n.d(t,"F",function(){return o.g}),n.d(t,"a",function(){return o.a}),n.d(t,"v",function(){return r.b}),n.d(t,"b",function(){return i.a}),n.d(t,"i",function(){return a.b}),n.d(t,"j",function(){return a.c}),n.d(t,"k",function(){return a.d}),n.d(t,"l",function(){return a.e}),n.d(t,"m",function(){return a.f}),n.d(t,"n",function(){return a.g}),n.d(t,"o",function(){return a.h}),n.d(t,"p",function(){return a.i}),n.d(t,"q",function(){return a.j}),n.d(t,"r",function(){return a.k}),n.d(t,"z",function(){return s.i}),n.d(t,"t",function(){return s.d}),n.d(t,"u",function(){return s.e}),n.d(t,"h",function(){return s.b}),n.d(t,"w",function(){return s.f}),n.d(t,"x",function(){return s.g}),n.d(t,"y",function(){return s.h}),n.d(t,"s",function(){return s.c}),n.d(t,"A",function(){return s.j}),n.d(t,"B",function(){return s.k}),n.d(t,"C",function(){return s.l}),n.d(t,"D",function(){return u.a}),n.d(t,"E",function(){return l.Version})},function(e,t,n){"use strict";var o=n(1),r=n(344),i=n(162),a=n(346);n.d(t,"a",function(){return s});var s=function(){function CommonModule(){}return CommonModule.decorators=[{type:o.NgModule,args:[{declarations:[r.a,a.a],exports:[r.a,a.a],providers:[{provide:i.b,useClass:i.c}]}]}],CommonModule.ctorParameters=function(){return[]},CommonModule}()},function(e,t,n){"use strict";var o=n(1),r=n(598),i=n(45);n.d(t,"a",function(){return a});var a=function(){function NgClass(e,t,n,o){this._iterableDiffers=e,this._keyValueDiffers=t,this._ngEl=n,this._renderer=o,this._initialClasses=[]}return Object.defineProperty(NgClass.prototype,"klass",{set:function(e){this._applyInitialClasses(!0),this._initialClasses="string"==typeof e?e.split(/\s+/):[],this._applyInitialClasses(!1),this._applyClasses(this._rawClass,!1)},enumerable:!0,configurable:!0}),Object.defineProperty(NgClass.prototype,"ngClass",{set:function(e){this._cleanupClasses(this._rawClass),this._iterableDiffer=null,this._keyValueDiffer=null,this._rawClass="string"==typeof e?e.split(/\s+/):e,this._rawClass&&(n.i(r.a)(this._rawClass)?this._iterableDiffer=this._iterableDiffers.find(this._rawClass).create(null):this._keyValueDiffer=this._keyValueDiffers.find(this._rawClass).create(null))},enumerable:!0,configurable:!0}),NgClass.prototype.ngDoCheck=function(){if(this._iterableDiffer){var e=this._iterableDiffer.diff(this._rawClass);e&&this._applyIterableChanges(e)}else if(this._keyValueDiffer){var e=this._keyValueDiffer.diff(this._rawClass);e&&this._applyKeyValueChanges(e)}},NgClass.prototype._cleanupClasses=function(e){this._applyClasses(e,!0),this._applyInitialClasses(!1)},NgClass.prototype._applyKeyValueChanges=function(e){var t=this;e.forEachAddedItem(function(e){return t._toggleClass(e.key,e.currentValue)}),e.forEachChangedItem(function(e){return t._toggleClass(e.key,e.currentValue)}),e.forEachRemovedItem(function(e){e.previousValue&&t._toggleClass(e.key,!1)})},NgClass.prototype._applyIterableChanges=function(e){var t=this;e.forEachAddedItem(function(e){if("string"!=typeof e.item)throw new Error("NgClass can only toggle CSS classes expressed as strings, got "+n.i(i.e)(e.item));t._toggleClass(e.item,!0)}),e.forEachRemovedItem(function(e){return t._toggleClass(e.item,!1)})},NgClass.prototype._applyInitialClasses=function(e){var t=this;this._initialClasses.forEach(function(n){return t._toggleClass(n,!e)})},NgClass.prototype._applyClasses=function(e,t){var n=this;e&&(Array.isArray(e)||e instanceof Set?e.forEach(function(e){return n._toggleClass(e,!t)}):Object.keys(e).forEach(function(o){null!=e[o]&&n._toggleClass(o,!t)}))},NgClass.prototype._toggleClass=function(e,t){var n=this;e=e.trim(),e&&e.split(/\s+/g).forEach(function(e){n._renderer.setElementClass(n._ngEl.nativeElement,e,t)})},NgClass.decorators=[{type:o.Directive,args:[{selector:"[ngClass]"}]}],NgClass.ctorParameters=function(){return[{type:o.IterableDiffers},{type:o.KeyValueDiffers},{type:o.ElementRef},{type:o.Renderer}]},NgClass.propDecorators={klass:[{type:o.Input,args:["class"]}],ngClass:[{type:o.Input}]},NgClass}()},function(e,t,n){"use strict";var o=n(1),r=n(45);n.d(t,"a",function(){return a});var i=function(){function NgForRow(e,t,n){this.$implicit=e,this.index=t,this.count=n}return Object.defineProperty(NgForRow.prototype,"first",{get:function(){return 0===this.index},enumerable:!0,configurable:!0}),Object.defineProperty(NgForRow.prototype,"last",{get:function(){return this.index===this.count-1},enumerable:!0,configurable:!0}),Object.defineProperty(NgForRow.prototype,"even",{get:function(){return this.index%2===0},enumerable:!0,configurable:!0}),Object.defineProperty(NgForRow.prototype,"odd",{get:function(){return!this.even},enumerable:!0,configurable:!0}),NgForRow}(),a=function(){function NgFor(e,t,n,o){this._viewContainer=e,this._template=t,this._differs=n,this._cdr=o,this._differ=null}return Object.defineProperty(NgFor.prototype,"ngForTrackBy",{get:function(){return this._trackByFn},set:function(e){n.i(o.isDevMode)()&&null!=e&&"function"!=typeof e&&console&&console.warn&&console.warn("trackBy must be a function, but received "+JSON.stringify(e)+". See https://angular.io/docs/ts/latest/api/common/index/NgFor-directive.html#!#change-propagation for more information."),this._trackByFn=e},enumerable:!0,configurable:!0}),Object.defineProperty(NgFor.prototype,"ngForTemplate",{set:function(e){e&&(this._template=e)},enumerable:!0,configurable:!0}),NgFor.prototype.ngOnChanges=function(e){if("ngForOf"in e){var t=e.ngForOf.currentValue;if(!this._differ&&t)try{this._differ=this._differs.find(t).create(this._cdr,this.ngForTrackBy)}catch(o){throw new Error("Cannot find a differ supporting object '"+t+"' of type '"+n.i(r.f)(t)+"'. NgFor only supports binding to Iterables such as Arrays.")}}},NgFor.prototype.ngDoCheck=function(){if(this._differ){var e=this._differ.diff(this.ngForOf);e&&this._applyChanges(e)}},NgFor.prototype._applyChanges=function(e){var t=this,n=[];e.forEachOperation(function(e,o,r){if(null==e.previousIndex){var a=t._viewContainer.createEmbeddedView(t._template,new i(null,null,null),r),u=new s(e,a);n.push(u)}else if(null==r)t._viewContainer.remove(o);else{var a=t._viewContainer.get(o);t._viewContainer.move(a,r);var u=new s(e,a);n.push(u)}});for(var o=0;o<n.length;o++)this._perViewChange(n[o].view,n[o].record);for(var o=0,r=this._viewContainer.length;o<r;o++){var a=this._viewContainer.get(o);a.context.index=o,a.context.count=r}e.forEachIdentityChange(function(e){var n=t._viewContainer.get(e.currentIndex);n.context.$implicit=e.item})},NgFor.prototype._perViewChange=function(e,t){e.context.$implicit=t.item},NgFor.decorators=[{type:o.Directive,args:[{selector:"[ngFor][ngForOf]"}]}],NgFor.ctorParameters=function(){return[{type:o.ViewContainerRef},{type:o.TemplateRef},{type:o.IterableDiffers},{type:o.ChangeDetectorRef}]},NgFor.propDecorators={ngForOf:[{type:o.Input}],ngForTrackBy:[{type:o.Input}],ngForTemplate:[{type:o.Input}]},NgFor}(),s=function(){function RecordViewTuple(e,t){this.record=e,this.view=t}return RecordViewTuple}()},function(e,t,n){"use strict";var o=n(1);n.d(t,"a",function(){return r});var r=function(){function NgIf(e,t){this._viewContainer=e,this._template=t,this._hasView=!1}return Object.defineProperty(NgIf.prototype,"ngIf",{set:function(e){e&&!this._hasView?(this._hasView=!0,this._viewContainer.createEmbeddedView(this._template)):!e&&this._hasView&&(this._hasView=!1,this._viewContainer.clear())},enumerable:!0,configurable:!0}),NgIf.decorators=[{type:o.Directive,args:[{selector:"[ngIf]"}]}],NgIf.ctorParameters=function(){return[{type:o.ViewContainerRef},{type:o.TemplateRef}]},NgIf.propDecorators={ngIf:[{type:o.Input}]},NgIf}()},function(e,t,n){"use strict";var o=n(1),r=n(162),i=n(345);n.d(t,"a",function(){return a}),n.d(t,"b",function(){return s});var a=function(){function NgPlural(e){this._localization=e,this._caseViews={}}return Object.defineProperty(NgPlural.prototype,"ngPlural",{set:function(e){this._switchValue=e,this._updateView()},enumerable:!0,configurable:!0}),NgPlural.prototype.addCase=function(e,t){this._caseViews[e]=t},NgPlural.prototype._updateView=function(){this._clearViews();var e=Object.keys(this._caseViews),t=n.i(r.a)(this._switchValue,e,this._localization);this._activateView(this._caseViews[t])},NgPlural.prototype._clearViews=function(){this._activeView&&this._activeView.destroy()},NgPlural.prototype._activateView=function(e){e&&(this._activeView=e,this._activeView.create())},NgPlural.decorators=[{type:o.Directive,args:[{selector:"[ngPlural]"}]}],NgPlural.ctorParameters=function(){return[{type:r.b}]},NgPlural.propDecorators={ngPlural:[{type:o.Input}]},NgPlural}(),s=function(){function NgPluralCase(e,t,n,o){this.value=e;var r=!isNaN(Number(e));o.addCase(r?"="+e:e,new i.a(n,t))}return NgPluralCase.decorators=[{type:o.Directive,args:[{selector:"[ngPluralCase]"}]}],NgPluralCase.ctorParameters=function(){return[{type:void 0,decorators:[{type:o.Attribute,args:["ngPluralCase"]}]},{type:o.TemplateRef},{type:o.ViewContainerRef},{type:a,decorators:[{type:o.Host}]}]},NgPluralCase}()},function(e,t,n){"use strict";var o=n(1);n.d(t,"a",function(){return r});var r=function(){function NgStyle(e,t,n){this._differs=e,this._ngEl=t,this._renderer=n}return Object.defineProperty(NgStyle.prototype,"ngStyle",{set:function(e){this._ngStyle=e,!this._differ&&e&&(this._differ=this._differs.find(e).create(null))},enumerable:!0,configurable:!0}),NgStyle.prototype.ngDoCheck=function(){if(this._differ){var e=this._differ.diff(this._ngStyle);e&&this._applyChanges(e)}},NgStyle.prototype._applyChanges=function(e){var t=this;e.forEachRemovedItem(function(e){return t._setStyle(e.key,null)}),e.forEachAddedItem(function(e){return t._setStyle(e.key,e.currentValue)}),e.forEachChangedItem(function(e){return t._setStyle(e.key,e.currentValue)})},NgStyle.prototype._setStyle=function(e,t){var n=e.split("."),o=n[0],r=n[1];t=t&&r?""+t+r:t,this._renderer.setElementStyle(this._ngEl.nativeElement,o,t)},NgStyle.decorators=[{type:o.Directive,args:[{selector:"[ngStyle]"}]}],NgStyle.ctorParameters=function(){return[{type:o.KeyValueDiffers},{type:o.ElementRef},{type:o.Renderer}]},NgStyle.propDecorators={ngStyle:[{type:o.Input}]},NgStyle}()},function(e,t,n){"use strict";var o=n(1);n.d(t,"a",function(){return r});var r=function(){function NgTemplateOutlet(e){this._viewContainerRef=e}return Object.defineProperty(NgTemplateOutlet.prototype,"ngOutletContext",{set:function(e){this._context=e},enumerable:!0,configurable:!0}),Object.defineProperty(NgTemplateOutlet.prototype,"ngTemplateOutlet",{set:function(e){this._templateRef=e},enumerable:!0,configurable:!0}),NgTemplateOutlet.prototype.ngOnChanges=function(e){this._viewRef&&this._viewContainerRef.remove(this._viewContainerRef.indexOf(this._viewRef)),this._templateRef&&(this._viewRef=this._viewContainerRef.createEmbeddedView(this._templateRef,this._context))},NgTemplateOutlet.decorators=[{type:o.Directive,args:[{selector:"[ngTemplateOutlet]"}]}],NgTemplateOutlet.ctorParameters=function(){return[{type:o.ViewContainerRef}]},NgTemplateOutlet.propDecorators={ngOutletContext:[{type:o.Input}],ngTemplateOutlet:[{type:o.Input}]},NgTemplateOutlet}()},function(e,t,n){"use strict";function isListLikeIterable(e){return!!n.i(o.c)(e)&&(Array.isArray(e)||!(e instanceof Map)&&n.i(o.d)()in e)}var o=n(45);t.a=isListLikeIterable;(function(){function StringMapWrapper(){}return StringMapWrapper.merge=function(e,t){for(var n={},o=0,r=Object.keys(e);o<r.length;o++){var i=r[o];n[i]=e[i]}for(var a=0,s=Object.keys(t);a<s.length;a++){var i=s[a];n[i]=t[i]}return n},StringMapWrapper.equals=function(e,t){var n=Object.keys(e),o=Object.keys(t);if(n.length!=o.length)return!1;for(var r=0;r<n.length;r++){var i=n[r];if(e[i]!==t[i])return!1}return!0},StringMapWrapper})(),function(){function ListWrapper(){}return ListWrapper.findLast=function(e,t){for(var n=e.length-1;n>=0;n--)if(t(e[n]))return e[n];return null},ListWrapper.removeAll=function(e,t){for(var n=0;n<t.length;++n){var o=e.indexOf(t[n]);o>-1&&e.splice(o,1)}},ListWrapper.remove=function(e,t){var n=e.indexOf(t);return n>-1&&(e.splice(n,1),!0)},ListWrapper.equals=function(e,t){if(e.length!=t.length)return!1;for(var n=0;n<e.length;++n)if(e[n]!==t[n])return!1;return!0},ListWrapper.flatten=function(e){return e.reduce(function(e,t){var n=Array.isArray(t)?ListWrapper.flatten(t):t;return e.concat(n)},[])},ListWrapper}()},function(e,t,n){"use strict";n.d(t,"a",function(){return r});var o=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},r=function(e){function BaseError(t){e.call(this,t);var n=new Error(t);this._nativeError=n}return o(BaseError,e),Object.defineProperty(BaseError.prototype,"message",{get:function(){return this._nativeError.message},set:function(e){this._nativeError.message=e},enumerable:!0,configurable:!0}),Object.defineProperty(BaseError.prototype,"name",{get:function(){return this._nativeError.name},enumerable:!0,configurable:!0}),Object.defineProperty(BaseError.prototype,"stack",{get:function(){return this._nativeError.stack},set:function(e){this._nativeError.stack=e},enumerable:!0,configurable:!0}),BaseError.prototype.toString=function(){return this._nativeError.toString()},BaseError}(Error);(function(e){function WrappedError(t,n){e.call(this,t+" caused by: "+(n instanceof Error?n.message:n)),this.originalError=n}return o(WrappedError,e),Object.defineProperty(WrappedError.prototype,"stack",{get:function(){return(this.originalError instanceof Error?this.originalError:this._nativeError).stack},enumerable:!0,configurable:!0}),WrappedError})(r)},function(e,t,n){"use strict";var o=n(1),r=n(45),i=n(237),a=n(163),s=n(238);n.d(t,"a",function(){return l});var u=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},l=function(e){function HashLocationStrategy(t,o){e.call(this),this._platformLocation=t,this._baseHref="",n.i(r.a)(o)&&(this._baseHref=o)}return u(HashLocationStrategy,e),HashLocationStrategy.prototype.onPopState=function(e){this._platformLocation.onPopState(e),this._platformLocation.onHashChange(e)},HashLocationStrategy.prototype.getBaseHref=function(){return this._baseHref},HashLocationStrategy.prototype.path=function(e){void 0===e&&(e=!1);var t=this._platformLocation.hash;return n.i(r.a)(t)||(t="#"),t.length>0?t.substring(1):t},HashLocationStrategy.prototype.prepareExternalUrl=function(e){var t=i.a.joinWithSlash(this._baseHref,e);return t.length>0?"#"+t:t},HashLocationStrategy.prototype.pushState=function(e,t,n,o){var r=this.prepareExternalUrl(n+i.a.normalizeQueryParams(o));0==r.length&&(r=this._platformLocation.pathname),this._platformLocation.pushState(e,t,r)},HashLocationStrategy.prototype.replaceState=function(e,t,n,o){var r=this.prepareExternalUrl(n+i.a.normalizeQueryParams(o));0==r.length&&(r=this._platformLocation.pathname),this._platformLocation.replaceState(e,t,r)},HashLocationStrategy.prototype.forward=function(){this._platformLocation.forward()},HashLocationStrategy.prototype.back=function(){this._platformLocation.back()},HashLocationStrategy.decorators=[{type:o.Injectable}],HashLocationStrategy.ctorParameters=function(){return[{type:s.a},{type:void 0,decorators:[{type:o.Optional},{type:o.Inject,args:[a.b]}]}]},HashLocationStrategy}(a.a)},function(e,t,n){"use strict";var o=n(238),r=n(163),i=n(600),a=n(602),s=n(237);n.d(t,"g",function(){return o.b}),n.d(t,"a",function(){return o.a}),n.d(t,"b",function(){return r.a}),n.d(t,"f",function(){return r.b}),n.d(t,"d",function(){return i.a}),n.d(t,"c",function(){return a.a}),n.d(t,"e",function(){return s.a})},function(e,t,n){"use strict";var o=n(1),r=n(45),i=n(237),a=n(163),s=n(238);n.d(t,"a",function(){return l});var u=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},l=function(e){function PathLocationStrategy(t,o){if(e.call(this),this._platformLocation=t,n.i(r.b)(o)&&(o=this._platformLocation.getBaseHrefFromDOM()),n.i(r.b)(o))throw new Error("No base href set. Please provide a value for the APP_BASE_HREF token or add a base element to the document.");this._baseHref=o}return u(PathLocationStrategy,e),PathLocationStrategy.prototype.onPopState=function(e){this._platformLocation.onPopState(e),this._platformLocation.onHashChange(e)},PathLocationStrategy.prototype.getBaseHref=function(){return this._baseHref},PathLocationStrategy.prototype.prepareExternalUrl=function(e){return i.a.joinWithSlash(this._baseHref,e)},PathLocationStrategy.prototype.path=function(e){void 0===e&&(e=!1);var t=this._platformLocation.pathname+i.a.normalizeQueryParams(this._platformLocation.search),n=this._platformLocation.hash;return n&&e?""+t+n:t},PathLocationStrategy.prototype.pushState=function(e,t,n,o){var r=this.prepareExternalUrl(n+i.a.normalizeQueryParams(o));this._platformLocation.pushState(e,t,r)},PathLocationStrategy.prototype.replaceState=function(e,t,n,o){var r=this.prepareExternalUrl(n+i.a.normalizeQueryParams(o));this._platformLocation.replaceState(e,t,r)},PathLocationStrategy.prototype.forward=function(){this._platformLocation.forward()},PathLocationStrategy.prototype.back=function(){this._platformLocation.back()},PathLocationStrategy.decorators=[{type:o.Injectable}],PathLocationStrategy.ctorParameters=function(){return[{type:s.a},{type:void 0,decorators:[{type:o.Optional},{type:o.Inject,args:[a.b]}]}]},PathLocationStrategy}(a.a)},function(e,t,n){"use strict";var o=n(1),r=n(612),i=n(70);n.d(t,"a",function(){return c});var a=function(){function ObservableStrategy(){}return ObservableStrategy.prototype.createSubscription=function(e,t){return e.subscribe({next:t,error:function(e){throw e}})},ObservableStrategy.prototype.dispose=function(e){e.unsubscribe()},ObservableStrategy.prototype.onDestroy=function(e){e.unsubscribe()},ObservableStrategy}(),s=function(){function PromiseStrategy(){}return PromiseStrategy.prototype.createSubscription=function(e,t){return e.then(t,function(e){throw e})},PromiseStrategy.prototype.dispose=function(e){},PromiseStrategy.prototype.onDestroy=function(e){},PromiseStrategy}(),u=new s,l=new a,c=function(){function AsyncPipe(e){this._ref=e,this._latestValue=null,this._latestReturnedValue=null,this._subscription=null,this._obj=null,this._strategy=null}return AsyncPipe.prototype.ngOnDestroy=function(){this._subscription&&this._dispose()},AsyncPipe.prototype.transform=function(e){return this._obj?e!==this._obj?(this._dispose(),this.transform(e)):this._latestValue===this._latestReturnedValue?this._latestReturnedValue:(this._latestReturnedValue=this._latestValue,o.WrappedValue.wrap(this._latestValue)):(e&&this._subscribe(e),this._latestReturnedValue=this._latestValue,this._latestValue)},AsyncPipe.prototype._subscribe=function(e){var t=this;this._obj=e,this._strategy=this._selectStrategy(e),this._subscription=this._strategy.createSubscription(e,function(n){return t._updateLatestValue(e,n)})},AsyncPipe.prototype._selectStrategy=function(e){if(n.i(r.a)(e))return u;if(n.i(r.b)(e))return l;throw new i.a(AsyncPipe,e)},AsyncPipe.prototype._dispose=function(){this._strategy.dispose(this._subscription),this._latestValue=null,this._latestReturnedValue=null,this._subscription=null,this._obj=null},AsyncPipe.prototype._updateLatestValue=function(e,t){e===this._obj&&(this._latestValue=t,this._ref.markForCheck())},AsyncPipe.decorators=[{type:o.Pipe,args:[{name:"async",pure:!1}]}],AsyncPipe.ctorParameters=function(){return[{type:o.ChangeDetectorRef}]},AsyncPipe}()},function(e,t,n){"use strict";function isBlank(e){return null==e||""===e}function isDate(e){return e instanceof Date&&!isNaN(e.valueOf())}function isoStringToDate(e){var t=new Date(0),n=0,o=0,r=e[8]?t.setUTCFullYear:t.setFullYear,i=e[8]?t.setUTCHours:t.setHours;e[9]&&(n=toInt(e[9]+e[10]),o=toInt(e[9]+e[11])),r.call(t,toInt(e[1]),toInt(e[2])-1,toInt(e[3]));var a=toInt(e[4]||"0")-n,s=toInt(e[5]||"0")-o,u=toInt(e[6]||"0"),l=Math.round(1e3*parseFloat("0."+(e[7]||0)));return i.call(t,a,s,u,l),t}function toInt(e){return parseInt(e,10)}var o=n(1),r=n(45),i=n(347),a=n(70);n.d(t,"a",function(){return u});var s=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/,u=function(){function DatePipe(e){this._locale=e}return DatePipe.prototype.transform=function(e,t){void 0===t&&(t="mediumDate");var n;if(isBlank(e)||e!==e)return null;if("string"==typeof e&&(e=e.trim()),isDate(e))n=e;else if(r.g.isNumeric(e))n=new Date(parseFloat(e));else if("string"==typeof e&&/^(\d{4}-\d{1,2}-\d{1,2})$/.test(e)){var o=e.split("-").map(function(e){return parseInt(e,10)}),u=o[0],l=o[1],c=o[2];n=new Date(u,l-1,c)}else n=new Date(e);if(!isDate(n)){var d=void 0;if("string"!=typeof e||!(d=e.match(s)))throw new a.a(DatePipe,e);n=isoStringToDate(d)}return i.a.format(n,this._locale,DatePipe._ALIASES[t]||t)},DatePipe._ALIASES={medium:"yMMMdjms","short":"yMdjm",fullDate:"yMMMMEEEEd",longDate:"yMMMMd",mediumDate:"yMMMd",shortDate:"yMd",mediumTime:"jms",shortTime:"jm"},DatePipe.decorators=[{type:o.Pipe,args:[{name:"date",pure:!0}]}],DatePipe.ctorParameters=function(){return[{type:void 0,decorators:[{type:o.Inject,args:[o.LOCALE_ID]}]}]},DatePipe}()},function(e,t,n){"use strict";var o=n(1),r=n(162),i=n(70);n.d(t,"a",function(){return s});var a=/#/g,s=function(){function I18nPluralPipe(e){this._localization=e}return I18nPluralPipe.prototype.transform=function(e,t){if(null==e)return"";if("object"!=typeof t||null===t)throw new i.a(I18nPluralPipe,t);var o=n.i(r.a)(e,Object.keys(t),this._localization);return t[o].replace(a,e.toString())},I18nPluralPipe.decorators=[{type:o.Pipe,args:[{name:"i18nPlural",pure:!0}]}],I18nPluralPipe.ctorParameters=function(){return[{type:r.b}]},I18nPluralPipe}()},function(e,t,n){"use strict";var o=n(1),r=n(70);n.d(t,"a",function(){return i});var i=function(){function I18nSelectPipe(){}return I18nSelectPipe.prototype.transform=function(e,t){if(null==e)return"";if("object"!=typeof t||"string"!=typeof e)throw new r.a(I18nSelectPipe,t);return t.hasOwnProperty(e)?t[e]:t.hasOwnProperty("other")?t.other:""},I18nSelectPipe.decorators=[{type:o.Pipe,args:[{name:"i18nSelect",pure:!0}]}],I18nSelectPipe.ctorParameters=function(){return[]},I18nSelectPipe}()},function(e,t,n){"use strict";var o=n(1);n.d(t,"a",function(){return r});var r=function(){function JsonPipe(){}return JsonPipe.prototype.transform=function(e){return JSON.stringify(e,null,2)},JsonPipe.decorators=[{type:o.Pipe,args:[{name:"json",pure:!1}]}],JsonPipe.ctorParameters=function(){return[]},JsonPipe}()},function(e,t,n){"use strict";var o=n(1),r=n(45),i=n(70);n.d(t,"a",function(){return a});var a=function(){function LowerCasePipe(){}return LowerCasePipe.prototype.transform=function(e){if(n.i(r.b)(e))return e;if("string"!=typeof e)throw new i.a(LowerCasePipe,e);return e.toLowerCase()},LowerCasePipe.decorators=[{type:o.Pipe,args:[{name:"lowercase"}]}],LowerCasePipe.ctorParameters=function(){return[]},LowerCasePipe}()},function(e,t,n){"use strict";function formatNumber(e,t,n,o,u,l,c){if(void 0===l&&(l=null),void 0===c&&(c=!1),null==n)return null;if(n="string"==typeof n&&r.g.isNumeric(n)?+n:n,"number"!=typeof n)throw new a.a(e,n);var d,p,g;if(o!==i.b.Currency&&(d=1,p=0,g=3),u){var f=u.match(s);if(null===f)throw new Error(u+" is not a valid digit info for number pipes");null!=f[1]&&(d=r.g.parseIntAutoRadix(f[1])),null!=f[3]&&(p=r.g.parseIntAutoRadix(f[3])),null!=f[5]&&(g=r.g.parseIntAutoRadix(f[5]))}return i.c.format(n,t,o,{minimumIntegerDigits:d,minimumFractionDigits:p,maximumFractionDigits:g,currency:l,currencyAsSymbol:c})}var o=n(1),r=n(45),i=n(347),a=n(70);n.d(t,"a",function(){return u}),n.d(t,"b",function(){return l}),n.d(t,"c",function(){return c});var s=/^(\d+)?\.((\d+)(-(\d+))?)?$/,u=function(){function DecimalPipe(e){this._locale=e}return DecimalPipe.prototype.transform=function(e,t){return void 0===t&&(t=null),formatNumber(DecimalPipe,this._locale,e,i.b.Decimal,t)},DecimalPipe.decorators=[{type:o.Pipe,args:[{name:"number"}]}],DecimalPipe.ctorParameters=function(){return[{type:void 0,decorators:[{type:o.Inject,args:[o.LOCALE_ID]}]}]},DecimalPipe}(),l=function(){function PercentPipe(e){this._locale=e}return PercentPipe.prototype.transform=function(e,t){return void 0===t&&(t=null),formatNumber(PercentPipe,this._locale,e,i.b.Percent,t)},PercentPipe.decorators=[{type:o.Pipe,args:[{name:"percent"}]}],PercentPipe.ctorParameters=function(){return[{type:void 0,decorators:[{type:o.Inject,args:[o.LOCALE_ID]}]}]},PercentPipe}(),c=function(){function CurrencyPipe(e){this._locale=e}return CurrencyPipe.prototype.transform=function(e,t,n,o){return void 0===t&&(t="USD"),void 0===n&&(n=!1),void 0===o&&(o=null),formatNumber(CurrencyPipe,this._locale,e,i.b.Currency,o,t,n)},CurrencyPipe.decorators=[{type:o.Pipe,args:[{name:"currency"}]}],CurrencyPipe.ctorParameters=function(){return[{type:void 0,decorators:[{type:o.Inject,args:[o.LOCALE_ID]}]}]},CurrencyPipe}()},function(e,t,n){"use strict";var o=n(1),r=n(70);n.d(t,"a",function(){return i});var i=function(){function SlicePipe(){}return SlicePipe.prototype.transform=function(e,t,n){if(null==e)return e;if(!this.supports(e))throw new r.a(SlicePipe,e);return e.slice(t,n)},SlicePipe.prototype.supports=function(e){return"string"==typeof e||Array.isArray(e)},SlicePipe.decorators=[{type:o.Pipe,args:[{name:"slice",pure:!1}]}],SlicePipe.ctorParameters=function(){return[]},SlicePipe}()},function(e,t,n){"use strict";var o=n(1),r=n(45),i=n(70);n.d(t,"a",function(){return a});var a=function(){function UpperCasePipe(){}return UpperCasePipe.prototype.transform=function(e){if(n.i(r.b)(e))return e;if("string"!=typeof e)throw new i.a(UpperCasePipe,e);return e.toUpperCase()},UpperCasePipe.decorators=[{type:o.Pipe,args:[{name:"uppercase"}]}],UpperCasePipe.ctorParameters=function(){return[]},UpperCasePipe}()},function(e,t,n){"use strict";var o=n(1);n.d(t,"a",function(){return r}),n.d(t,"b",function(){return i});var r=o.__core_private__.isPromise,i=o.__core_private__.isObservable},function(e,t,n){"use strict";var o=n(1);n.d(t,"a",function(){return r});var r=new o.Version("2.4.10")},function(e,t,n){"use strict";var o=n(7);n.d(t,"a",function(){return i});var r=function(){function StylesCollectionEntry(e,t){this.time=e,this.value=t}return StylesCollectionEntry.prototype.matches=function(e,t){return e==this.time&&t==this.value},StylesCollectionEntry}(),i=function(){function StylesCollection(){this.styles={}}return StylesCollection.prototype.insertAtTime=function(e,t,i){var a=new r(t,i),s=this.styles[e];n.i(o.f)(s)||(s=this.styles[e]=[]);for(var u=0,l=s.length-1;l>=0;l--)if(s[l].time<=t){u=l+1;break}s.splice(u,0,a)},StylesCollection.prototype.getByIndex=function(e,t){var r=this.styles[e];return n.i(o.f)(r)?t>=r.length?null:r[t]:null},StylesCollection.prototype.indexOfAtOrBeforeTime=function(e,t){var r=this.styles[e];if(n.i(o.f)(r))for(var i=r.length-1;i>=0;i--)if(r[i].time<=t)return i;return null},StylesCollection}()},function(e,t,n){"use strict";n(1),n(165),n(72),n(123),n(124),n(73),n(125),n(106),n(168),n(126),n(86),n(171),n(127),n(249),n(128),n(17),n(172),n(174),n(129),n(88),n(130),n(239),n(240),n(241),n(71),n(242),n(243)},function(e,t,n){"use strict";n.d(t,"a",function(){return o});var o=function(){function GeneratedFile(e,t,n){this.srcFileUrl=e,this.genFileUrl=t,this.source=n}return GeneratedFile}()},function(e,t,n){"use strict";n.d(t,"a",function(){return r});var o=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},r=function(e){function BaseError(t){e.call(this,t);var n=new Error(t);this._nativeError=n}return o(BaseError,e),Object.defineProperty(BaseError.prototype,"message",{get:function(){return this._nativeError.message},set:function(e){this._nativeError.message=e},enumerable:!0,configurable:!0}),Object.defineProperty(BaseError.prototype,"name",{get:function(){return this._nativeError.name},enumerable:!0,configurable:!0}),Object.defineProperty(BaseError.prototype,"stack",{get:function(){return this._nativeError.stack},set:function(e){this._nativeError.stack=e},enumerable:!0,configurable:!0}),BaseError.prototype.toString=function(){return this._nativeError.toString()},BaseError}(Error);(function(e){function WrappedError(t,n){e.call(this,t+" caused by: "+(n instanceof Error?n.message:n)),this.originalError=n}return o(WrappedError,e),Object.defineProperty(WrappedError.prototype,"stack",{get:function(){return(this.originalError instanceof Error?this.originalError:this._nativeError).stack},enumerable:!0,configurable:!0}),WrappedError})(r)},function(e,t,n){"use strict";var o=n(1),r=n(239),i=n(240),a=n(241),s=n(71),u=n(242),l=n(243),c=n(72),d=n(123),p=n(124),g=n(126),f=n(86),h=n(47),m=n(127),y=n(128),b=n(172),v=n(88),_=n(168),E=n(357);(function(){function Extractor(e,t,n,o){this.host=e,this.staticSymbolResolver=t,this.messageBundle=n,this.metadataResolver=o}return Extractor.prototype.extract=function(e){var t=this,o=n.i(r.b)(this.staticSymbolResolver,e,this.host),i=n.i(r.c)(o,this.host,this.metadataResolver),a=i.files,s=i.ngModules;return Promise.all(s.map(function(e){return t.metadataResolver.loadNgModuleDirectiveAndPipeMetadata(e.type.reference,!1)})).then(function(){var e=[];if(a.forEach(function(n){var o=[];n.directives.forEach(function(e){var n=t.metadataResolver.getDirectiveMetadata(e);n&&n.isComponent&&o.push(n)}),o.forEach(function(o){var r=o.template.template,i=h.b.fromArray(o.template.interpolation);e.push.apply(e,t.messageBundle.updateFromTemplate(r,n.srcUrl,i))})}),e.length)throw new Error(e.map(function(e){return e.toString()}).join("\n"));return t.messageBundle})},Extractor.create=function(e){var t=new _.a(new f.a),r=n.i(v.c)(),h=new s.b,T=new l.a(e,h),S=new u.a(e,h,T),A=new a.a(S);i.a.install(A);var M=new c.a({genDebugInfo:!1,defaultEncapsulation:o.ViewEncapsulation.Emulated,logBindingUpdate:!1,useJit:!1}),C=new d.a({get:function(t){return e.loadResource(t)}},r,t,M),k=new b.a,R=new g.a(new m.a(A),new p.a(A),new y.a(A),T,k,C,A),N=new E.a(t,[],{}),O=new Extractor(e,S,N,R);return{extractor:O,staticReflector:A}},Extractor})()},function(e,t,n){"use strict";function createI18nMessageFactory(e){var t=new c(l,e);return function(e,n,o){return t.toI18nMessage(e,n,o)}}function _extractPlaceholderName(e){return e.split(d)[1]}var o=n(125),r=n(106),i=n(74),a=n(246),s=n(167),u=n(620);t.a=createI18nMessageFactory;var l=new r.a(new o.c),c=function(){function _I18nVisitor(e,t){this._expressionParser=e,this._interpolationConfig=t}return _I18nVisitor.prototype.toI18nMessage=function(e,t,n){this._isIcu=1==e.length&&e[0]instanceof i.b,this._icuDepth=0,this._placeholderRegistry=new u.a,this._placeholderToContent={},this._placeholderToMessage={};var o=i.g(this,e,{});return new s.a(o,this._placeholderToContent,this._placeholderToMessage,t,n)},_I18nVisitor.prototype.visitElement=function(e,t){var o=i.g(this,e.children),r={};e.attrs.forEach(function(e){r[e.name]=e.value});var u=n.i(a.a)(e.name).isVoid,l=this._placeholderRegistry.getStartTagPlaceholderName(e.name,r,u);this._placeholderToContent[l]=e.sourceSpan.toString();var c="";return u||(c=this._placeholderRegistry.getCloseTagPlaceholderName(e.name),this._placeholderToContent[c]="</"+e.name+">"),new s.b(e.name,r,l,c,o,u,e.sourceSpan)},_I18nVisitor.prototype.visitAttribute=function(e,t){return this._visitTextWithInterpolation(e.value,e.sourceSpan)},_I18nVisitor.prototype.visitText=function(e,t){return this._visitTextWithInterpolation(e.value,e.sourceSpan)},_I18nVisitor.prototype.visitComment=function(e,t){
return null},_I18nVisitor.prototype.visitExpansion=function(e,t){var n=this;this._icuDepth++;var o={},r=new s.c(e.switchValue,e.type,o,e.sourceSpan);if(e.cases.forEach(function(e){o[e.value]=new s.d(e.expression.map(function(e){return e.visit(n,{})}),e.expSourceSpan)}),this._icuDepth--,this._isIcu||this._icuDepth>0){var i=this._placeholderRegistry.getUniquePlaceholder("VAR_"+e.type);return r.expressionPlaceholder=i,this._placeholderToContent[i]=e.switchValue,r}var a=this._placeholderRegistry.getPlaceholderName("ICU",e.sourceSpan.toString()),u=new _I18nVisitor(this._expressionParser,this._interpolationConfig);return this._placeholderToMessage[a]=u.toI18nMessage([e],"",""),new s.e(r,a,e.sourceSpan)},_I18nVisitor.prototype.visitExpansionCase=function(e,t){throw new Error("Unreachable code")},_I18nVisitor.prototype._visitTextWithInterpolation=function(e,t){var n=this._expressionParser.splitInterpolation(e,t.start.toString(),this._interpolationConfig);if(!n)return new s.f(e,t);for(var o=[],r=new s.d(o,t),i=this._interpolationConfig,a=i.start,u=i.end,l=0;l<n.strings.length-1;l++){var c=n.expressions[l],d=_extractPlaceholderName(c)||"INTERPOLATION",p=this._placeholderRegistry.getPlaceholderName(d,c);n.strings[l].length&&o.push(new s.f(n.strings[l],t)),o.push(new s.g(c,p,t)),this._placeholderToContent[p]=a+c+u}var g=n.strings.length-1;return n.strings[g].length&&o.push(new s.f(n.strings[g],t)),r},_I18nVisitor}(),d=/\/\/[\s\S]*i18n[\s\S]*\([\s\S]*ph[\s\S]*=[\s\S]*"([\s\S]*?)"[\s\S]*\)/g},function(e,t,n){"use strict";n.d(t,"a",function(){return r});var o={A:"LINK",B:"BOLD_TEXT",BR:"LINE_BREAK",EM:"EMPHASISED_TEXT",H1:"HEADING_LEVEL1",H2:"HEADING_LEVEL2",H3:"HEADING_LEVEL3",H4:"HEADING_LEVEL4",H5:"HEADING_LEVEL5",H6:"HEADING_LEVEL6",HR:"HORIZONTAL_RULE",I:"ITALIC_TEXT",LI:"LIST_ITEM",LINK:"MEDIA_LINK",OL:"ORDERED_LIST",P:"PARAGRAPH",Q:"QUOTATION",S:"STRIKETHROUGH_TEXT",SMALL:"SMALL_TEXT",SUB:"SUBSTRIPT",SUP:"SUPERSCRIPT",TBODY:"TABLE_BODY",TD:"TABLE_CELL",TFOOT:"TABLE_FOOTER",TH:"TABLE_HEADER_CELL",THEAD:"TABLE_HEADER",TR:"TABLE_ROW",TT:"MONOSPACED_TEXT",U:"UNDERLINED_TEXT",UL:"UNORDERED_LIST"},r=function(){function PlaceholderRegistry(){this._placeHolderNameCounts={},this._signatureToName={}}return PlaceholderRegistry.prototype.getStartTagPlaceholderName=function(e,t,n){var r=this._hashTag(e,t,n);if(this._signatureToName[r])return this._signatureToName[r];var i=e.toUpperCase(),a=o[i]||"TAG_"+i,s=this._generateUniqueName(n?a:"START_"+a);return this._signatureToName[r]=s,s},PlaceholderRegistry.prototype.getCloseTagPlaceholderName=function(e){var t=this._hashClosingTag(e);if(this._signatureToName[t])return this._signatureToName[t];var n=e.toUpperCase(),r=o[n]||"TAG_"+n,i=this._generateUniqueName("CLOSE_"+r);return this._signatureToName[t]=i,i},PlaceholderRegistry.prototype.getPlaceholderName=function(e,t){var n=e.toUpperCase(),o="PH: "+n+"="+t;if(this._signatureToName[o])return this._signatureToName[o];var r=this._generateUniqueName(n);return this._signatureToName[o]=r,r},PlaceholderRegistry.prototype.getUniquePlaceholder=function(e){return this._generateUniqueName(e.toUpperCase())},PlaceholderRegistry.prototype._hashTag=function(e,t,n){var o="<"+e,r=Object.keys(t).sort().map(function(e){return" "+e+"="+t[e]}).join(""),i=n?"/>":"></"+e+">";return o+r+i},PlaceholderRegistry.prototype._hashClosingTag=function(e){return this._hashTag("/"+e,{},!1)},PlaceholderRegistry.prototype._generateUniqueName=function(e){var t=this._placeHolderNameCounts.hasOwnProperty(e);if(!t)return this._placeHolderNameCounts[e]=1,e;var n=this._placeHolderNameCounts[e];return this._placeHolderNameCounts[e]=n+1,e+"_"+n},PlaceholderRegistry}()},function(e,t,n){"use strict";var o=n(86),r=n(169);n.d(t,"a",function(){return i});var i=function(){function TranslationBundle(e,t,n){void 0===e&&(e={}),this._i18nNodesByMsgId=e,this.digest=t,this.mapperFactory=n,this._i18nToHtml=new a(e,t,n)}return TranslationBundle.load=function(e,t,n){var o=n.load(e,t),r=function(e){return n.digest(e)},i=function(e){return n.createNameMapper(e)};return new TranslationBundle(o,r,i)},TranslationBundle.prototype.get=function(e){var t=this._i18nToHtml.convert(e);if(t.errors.length)throw new Error(t.errors.join("\n"));return t.nodes},TranslationBundle.prototype.has=function(e){return this.digest(e)in this._i18nNodesByMsgId},TranslationBundle}(),a=function(){function I18nToHtmlVisitor(e,t,n){void 0===e&&(e={}),this._i18nNodesByMsgId=e,this._digest=t,this._mapperFactory=n,this._contextStack=[],this._errors=[]}return I18nToHtmlVisitor.prototype.convert=function(e){this._contextStack.length=0,this._errors.length=0;var t=this._convertToText(e),n=e.nodes[0].sourceSpan.start.file.url,r=(new o.a).parse(t,n,!0);return{nodes:r.rootNodes,errors:this._errors.concat(r.errors)}},I18nToHtmlVisitor.prototype.visitText=function(e,t){return e.value},I18nToHtmlVisitor.prototype.visitContainer=function(e,t){var n=this;return e.children.map(function(e){return e.visit(n)}).join("")},I18nToHtmlVisitor.prototype.visitIcu=function(e,t){var n=this,o=Object.keys(e.cases).map(function(t){return t+" {"+e.cases[t].visit(n)+"}"}),r=this._srcMsg.placeholders.hasOwnProperty(e.expression)?this._srcMsg.placeholders[e.expression]:e.expression;return"{"+r+", "+e.type+", "+o.join(" ")+"}"},I18nToHtmlVisitor.prototype.visitPlaceholder=function(e,t){var n=this._mapper(e.name);return this._srcMsg.placeholders.hasOwnProperty(n)?this._srcMsg.placeholders[n]:this._srcMsg.placeholderToMessage.hasOwnProperty(n)?this._convertToText(this._srcMsg.placeholderToMessage[n]):(this._addError(e,"Unknown placeholder"),"")},I18nToHtmlVisitor.prototype.visitTagPlaceholder=function(e,t){throw"unreachable code"},I18nToHtmlVisitor.prototype.visitIcuPlaceholder=function(e,t){throw"unreachable code"},I18nToHtmlVisitor.prototype._convertToText=function(e){var t=this,n=this._digest(e),o=this._mapperFactory?this._mapperFactory(e):null;if(this._i18nNodesByMsgId.hasOwnProperty(n)){this._contextStack.push({msg:this._srcMsg,mapper:this._mapper}),this._srcMsg=e,this._mapper=function(e){return o?o.toInternalName(e):e};var r=this._i18nNodesByMsgId[n],i=r.map(function(e){return e.visit(t)}).join(""),a=this._contextStack.pop();return this._srcMsg=a.msg,this._mapper=a.mapper,i}return this._addError(e.nodes[0],"Missing translation for message "+n),""},I18nToHtmlVisitor.prototype._addError=function(e,t){this._errors.push(new r.a(e.sourceSpan,t))},I18nToHtmlVisitor}()},function(e,t,n){"use strict";function _initReflector(){b.a.reflectionCapabilities=new b.M}function _mergeOptions(e){return{useDebug:_lastDefined(e.map(function(e){return e.useDebug})),useJit:_lastDefined(e.map(function(e){return e.useJit})),defaultEncapsulation:_lastDefined(e.map(function(e){return e.defaultEncapsulation})),providers:_mergeArrays(e.map(function(e){return e.providers}))}}function _lastDefined(e){for(var t=e.length-1;t>=0;t--)if(void 0!==e[t])return e[t]}function _mergeArrays(e){var t=[];return e.forEach(function(e){return e&&t.push.apply(t,e)}),t}var o=n(1),r=n(165),i=n(72),a=n(123),s=n(124),u=n(73),l=n(125),c=n(106),d=n(356),p=n(20),g=n(126),f=n(86),h=n(171),m=n(127),y=n(128),b=n(17),v=n(250),_=n(172),E=n(75),T=n(174),S=n(251),A=n(129),M=n(88),C=n(130),k=n(361);n.d(t,"a",function(){return x});var R=this&&this.__decorate||function(e,t,n,o){var r,i=arguments.length,a=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,n):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,o);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(a=(i<3?r(a):i>3?r(t,n,a):r(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},N=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},O={get:function(e){throw new Error("No ResourceLoader implementation has been provided. Can't read the url \""+e+'"')}},D=new o.OpaqueToken("HtmlParser"),w=[{provide:b.N,useValue:b.a},{provide:b.F,useExisting:b.N},{provide:v.a,useValue:O},S.a,b.C,l.c,c.a,{provide:D,useClass:f.a},{provide:d.a,useFactory:function(e,t,n){return new d.a(e,t,n)},deps:[D,[new o.Optional,new o.Inject(o.TRANSLATIONS)],[new o.Optional,new o.Inject(o.TRANSLATIONS_FORMAT)]]},{provide:f.a,useExisting:d.a},A.a,a.a,g.a,M.d,T.a,C.d,h.a,u.a,{provide:i.a,useValue:new i.a},k.a,{provide:o.Compiler,useExisting:k.a},_.a,{provide:E.a,useExisting:_.a},M.a,s.a,y.a,m.a,r.a],I=function(){function JitCompilerFactory(e){this._defaultOptions=[{useDebug:n.i(o.isDevMode)(),useJit:!0,defaultEncapsulation:o.ViewEncapsulation.Emulated}].concat(e)}return JitCompilerFactory.prototype.createCompiler=function(e){void 0===e&&(e=[]);var t=_mergeOptions(this._defaultOptions.concat(e)),n=o.ReflectiveInjector.resolveAndCreate([w,{provide:i.a,useFactory:function(){return new i.a({genDebugInfo:t.useDebug,useJit:t.useJit,defaultEncapsulation:t.defaultEncapsulation,logBindingUpdate:t.useDebug})},deps:[]},t.providers]);return n.get(o.Compiler)},JitCompilerFactory.ctorParameters=function(){return[{type:Array,decorators:[{type:o.Inject,args:[o.COMPILER_OPTIONS]}]}]},JitCompilerFactory=R([n.i(p.a)(),N("design:paramtypes",[Array])],JitCompilerFactory)}(),x=n.i(o.createPlatformFactory)(o.platformCore,"coreDynamic",[{provide:o.COMPILER_OPTIONS,useValue:{},multi:!0},{provide:o.CompilerFactory,useClass:I},{provide:o.PLATFORM_INITIALIZER,useValue:_initReflector,multi:!0}])},function(e,t,n){"use strict";function hasLifecycleHook(e,t){return o.a.hasLifecycleHook(t,getHookName(e))}function getHookName(e){switch(e){case o.H.OnInit:return"ngOnInit";case o.H.OnDestroy:return"ngOnDestroy";case o.H.DoCheck:return"ngDoCheck";case o.H.OnChanges:return"ngOnChanges";case o.H.AfterContentInit:return"ngAfterContentInit";case o.H.AfterContentChecked:return"ngAfterContentChecked";case o.H.AfterViewInit:return"ngAfterViewInit";case o.H.AfterViewChecked:return"ngAfterViewChecked"}}var o=n(17);t.a=hasLifecycleHook},function(e,t,n){"use strict";function expandNodes(e){var t=new l;return new s(r.g(t,e),t.isExpanded,t.errors)}function _expandPluralForm(e,t){var n=e.cases.map(function(e){a.indexOf(e.value)!=-1||e.value.match(/^=\d+$/)||t.push(new u(e.valueSourceSpan,'Plural cases should be "=<number>" or one of '+a.join(", ")));var n=expandNodes(e.expression);return t.push.apply(t,n.errors),new r.e("template",[new r.f("ngPluralCase",""+e.value,e.valueSourceSpan)],n.nodes,e.sourceSpan,e.sourceSpan,e.sourceSpan)}),o=new r.f("[ngPlural]",e.switchValue,e.switchValueSourceSpan);return new r.e("ng-container",[o],n,e.sourceSpan,e.sourceSpan,e.sourceSpan)}function _expandDefaultForm(e,t){var n=e.cases.map(function(e){var n=expandNodes(e.expression);return t.push.apply(t,n.errors),"other"===e.value?new r.e("template",[new r.f("ngSwitchDefault","",e.valueSourceSpan)],n.nodes,e.sourceSpan,e.sourceSpan,e.sourceSpan):new r.e("template",[new r.f("ngSwitchCase",""+e.value,e.valueSourceSpan)],n.nodes,e.sourceSpan,e.sourceSpan,e.sourceSpan)}),o=new r.f("[ngSwitch]",e.switchValue,e.switchValueSourceSpan);return new r.e("ng-container",[o],n,e.sourceSpan,e.sourceSpan,e.sourceSpan)}var o=n(40),r=n(74);t.a=expandNodes;var i=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},a=["zero","one","two","few","many","other"],s=function(){function ExpansionResult(e,t,n){this.nodes=e,this.expanded=t,this.errors=n}return ExpansionResult}(),u=function(e){function ExpansionError(t,n){e.call(this,t,n)}return i(ExpansionError,e),ExpansionError}(o.a),l=function(){function _Expander(){this.isExpanded=!1,this.errors=[]}return _Expander.prototype.visitElement=function(e,t){return new r.e(e.name,e.attrs,r.g(this,e.children),e.sourceSpan,e.startSourceSpan,e.endSourceSpan)},_Expander.prototype.visitAttribute=function(e,t){return e},_Expander.prototype.visitText=function(e,t){return e},_Expander.prototype.visitComment=function(e,t){return e},_Expander.prototype.visitExpansion=function(e,t){return this.isExpanded=!0,"plural"==e.type?_expandPluralForm(e,this.errors):_expandDefaultForm(e,this.errors)},_Expander.prototype.visitExpansionCase=function(e,t){throw new Error("Should not be reached")},_Expander}()},function(e,t,n){"use strict";function tokenize(e,t,n,o,a){return void 0===o&&(o=!1),void 0===a&&(a=i.a),new f(new r.b(e,t),n,o,a).tokenize()}function _unexpectedCharacterErrorMsg(e){var t=e===o.a?"EOF":String.fromCharCode(e);return'Unexpected character "'+t+'"'}function _unknownEntityErrorMsg(e){return'Unknown entity "'+e+'" - use the "&#<decimal>;" or "&#x<hex>;" syntax'}function isNotWhitespace(e){return!o.E(e)||e===o.a}function isNameEnd(e){return o.E(e)||e===o.y||e===o.t||e===o.n||e===o.o||e===o.z}function isPrefixEnd(e){return(e<o.H||o.I<e)&&(e<o.J||o.K<e)&&(e<o._3||e>o._4)}function isDigitEntityEnd(e){return e==o.m||e==o.a||!o._5(e)}function isNamedEntityEnd(e){return e==o.m||e==o.a||!o.N(e)}function isExpansionFormStart(e,t,n){var r=!!n&&e.indexOf(n.start,t)==t;return e.charCodeAt(t)==o.g&&!r}function isExpansionCaseStart(e){return e===o.z||o.N(e)}function compareCharCodeCaseInsensitive(e,t){return toUpperCaseCharCode(e)==toUpperCaseCharCode(t)}function toUpperCaseCharCode(e){return e>=o.H&&e<=o.I?e-o.H+o.J:e}function mergeTextTokens(e){for(var t,n=[],o=0;o<e.length;o++){var r=e[o];t&&t.type==u.TEXT&&r.type==u.TEXT?(t.parts[0]+=r.parts[0],t.sourceSpan.end=r.sourceSpan.end):(t=r,n.push(t))}return n}var o=n(166),r=n(40),i=n(47),a=n(87);n.d(t,"b",function(){return u}),n.d(t,"c",function(){return l}),t.a=tokenize;var s=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},u={};u.TAG_OPEN_START=0,u.TAG_OPEN_END=1,u.TAG_OPEN_END_VOID=2,u.TAG_CLOSE=3,u.TEXT=4,u.ESCAPABLE_RAW_TEXT=5,u.RAW_TEXT=6,u.COMMENT_START=7,u.COMMENT_END=8,u.CDATA_START=9,u.CDATA_END=10,u.ATTR_NAME=11,u.ATTR_VALUE=12,u.DOC_TYPE=13,u.EXPANSION_FORM_START=14,u.EXPANSION_CASE_VALUE=15,u.EXPANSION_CASE_EXP_START=16,u.EXPANSION_CASE_EXP_END=17,u.EXPANSION_FORM_END=18,u.EOF=19,u[u.TAG_OPEN_START]="TAG_OPEN_START",u[u.TAG_OPEN_END]="TAG_OPEN_END",u[u.TAG_OPEN_END_VOID]="TAG_OPEN_END_VOID",u[u.TAG_CLOSE]="TAG_CLOSE",u[u.TEXT]="TEXT",u[u.ESCAPABLE_RAW_TEXT]="ESCAPABLE_RAW_TEXT",u[u.RAW_TEXT]="RAW_TEXT",u[u.COMMENT_START]="COMMENT_START",u[u.COMMENT_END]="COMMENT_END",u[u.CDATA_START]="CDATA_START",u[u.CDATA_END]="CDATA_END",u[u.ATTR_NAME]="ATTR_NAME",u[u.ATTR_VALUE]="ATTR_VALUE",u[u.DOC_TYPE]="DOC_TYPE",u[u.EXPANSION_FORM_START]="EXPANSION_FORM_START",u[u.EXPANSION_CASE_VALUE]="EXPANSION_CASE_VALUE",u[u.EXPANSION_CASE_EXP_START]="EXPANSION_CASE_EXP_START",u[u.EXPANSION_CASE_EXP_END]="EXPANSION_CASE_EXP_END",u[u.EXPANSION_FORM_END]="EXPANSION_FORM_END",u[u.EOF]="EOF";var l=function(){function Token(e,t,n){this.type=e,this.parts=t,this.sourceSpan=n}return Token}(),c=function(e){function TokenError(t,n,o){e.call(this,o,t),this.tokenType=n}return s(TokenError,e),TokenError}(r.a),d=function(){function TokenizeResult(e,t){this.tokens=e,this.errors=t}return TokenizeResult}(),p=/\r\n?/g,g=function(){function _ControlFlowError(e){this.error=e}return _ControlFlowError}(),f=function(){function _Tokenizer(e,t,n,o){void 0===o&&(o=i.a),this._file=e,this._getTagDefinition=t,this._tokenizeIcu=n,this._interpolationConfig=o,this._peek=-1,this._nextPeek=-1,this._index=-1,this._line=0,this._column=-1,this._expansionCaseStack=[],this._inInterpolation=!1,this.tokens=[],this.errors=[],this._input=e.content,this._length=e.content.length,this._advance()}return _Tokenizer.prototype._processCarriageReturns=function(e){return e.replace(p,"\n")},_Tokenizer.prototype.tokenize=function(){for(;this._peek!==o.a;){var e=this._getLocation();try{this._attemptCharCode(o.x)?this._attemptCharCode(o.A)?this._attemptCharCode(o.i)?this._consumeCdata(e):this._attemptCharCode(o.r)?this._consumeComment(e):this._consumeDocType(e):this._attemptCharCode(o.t)?this._consumeTagClose(e):this._consumeTagOpen(e):this._tokenizeIcu&&this._tokenizeExpansionForm()||this._consumeText()}catch(t){if(!(t instanceof g))throw t;this.errors.push(t.error)}}return this._beginToken(u.EOF),this._endToken([]),new d(mergeTextTokens(this.tokens),this.errors)},_Tokenizer.prototype._tokenizeExpansionForm=function(){if(isExpansionFormStart(this._input,this._index,this._interpolationConfig))return this._consumeExpansionFormStart(),!0;if(isExpansionCaseStart(this._peek)&&this._isInExpansionForm())return this._consumeExpansionCaseStart(),!0;if(this._peek===o.h){if(this._isInExpansionCase())return this._consumeExpansionCaseEnd(),!0;if(this._isInExpansionForm())return this._consumeExpansionFormEnd(),!0}return!1},_Tokenizer.prototype._getLocation=function(){return new r.c(this._file,this._index,this._line,this._column)},_Tokenizer.prototype._getSpan=function(e,t){return void 0===e&&(e=this._getLocation()),void 0===t&&(t=this._getLocation()),new r.d(e,t)},_Tokenizer.prototype._beginToken=function(e,t){void 0===t&&(t=this._getLocation()),this._currentTokenStart=t,this._currentTokenType=e},_Tokenizer.prototype._endToken=function(e,t){void 0===t&&(t=this._getLocation());var n=new l(this._currentTokenType,e,new r.d(this._currentTokenStart,t));return this.tokens.push(n),this._currentTokenStart=null,this._currentTokenType=null,n},_Tokenizer.prototype._createError=function(e,t){this._isInExpansionForm()&&(e+=' (Do you have an unescaped "{" in your template? Use "{{ \'{\' }}") to escape it.)');var n=new c(e,this._currentTokenType,t);return this._currentTokenStart=null,this._currentTokenType=null,new g(n)},_Tokenizer.prototype._advance=function(){if(this._index>=this._length)throw this._createError(_unexpectedCharacterErrorMsg(o.a),this._getSpan());this._peek===o.S?(this._line++,this._column=0):this._peek!==o.S&&this._peek!==o.W&&this._column++,this._index++,this._peek=this._index>=this._length?o.a:this._input.charCodeAt(this._index),this._nextPeek=this._index+1>=this._length?o.a:this._input.charCodeAt(this._index+1)},_Tokenizer.prototype._attemptCharCode=function(e){return this._peek===e&&(this._advance(),!0)},_Tokenizer.prototype._attemptCharCodeCaseInsensitive=function(e){return!!compareCharCodeCaseInsensitive(this._peek,e)&&(this._advance(),!0)},_Tokenizer.prototype._requireCharCode=function(e){var t=this._getLocation();if(!this._attemptCharCode(e))throw this._createError(_unexpectedCharacterErrorMsg(this._peek),this._getSpan(t,t))},_Tokenizer.prototype._attemptStr=function(e){var t=e.length;if(this._index+t>this._length)return!1;for(var n=this._savePosition(),o=0;o<t;o++)if(!this._attemptCharCode(e.charCodeAt(o)))return this._restorePosition(n),!1;return!0},_Tokenizer.prototype._attemptStrCaseInsensitive=function(e){for(var t=0;t<e.length;t++)if(!this._attemptCharCodeCaseInsensitive(e.charCodeAt(t)))return!1;return!0},_Tokenizer.prototype._requireStr=function(e){var t=this._getLocation();if(!this._attemptStr(e))throw this._createError(_unexpectedCharacterErrorMsg(this._peek),this._getSpan(t))},_Tokenizer.prototype._attemptCharCodeUntilFn=function(e){for(;!e(this._peek);)this._advance()},_Tokenizer.prototype._requireCharCodeUntilFn=function(e,t){var n=this._getLocation();if(this._attemptCharCodeUntilFn(e),this._index-n.offset<t)throw this._createError(_unexpectedCharacterErrorMsg(this._peek),this._getSpan(n,n))},_Tokenizer.prototype._attemptUntilChar=function(e){for(;this._peek!==e;)this._advance()},_Tokenizer.prototype._readChar=function(e){if(e&&this._peek===o.B)return this._decodeEntity();var t=this._index;return this._advance(),this._input[t]},_Tokenizer.prototype._decodeEntity=function(){var e=this._getLocation();if(this._advance(),!this._attemptCharCode(o.p)){var t=this._savePosition();if(this._attemptCharCodeUntilFn(isNamedEntityEnd),this._peek!=o.m)return this._restorePosition(t),"&";this._advance();var n=this._input.substring(e.offset+1,this._index-1),r=a.b[n];if(!r)throw this._createError(_unknownEntityErrorMsg(n),this._getSpan(e));return r}var i=this._attemptCharCode(o._1)||this._attemptCharCode(o._2),s=this._getLocation().offset;if(this._attemptCharCodeUntilFn(isDigitEntityEnd),this._peek!=o.m)throw this._createError(_unexpectedCharacterErrorMsg(this._peek),this._getSpan());this._advance();var u=this._input.substring(s,this._index-1);try{var l=parseInt(u,i?16:10);return String.fromCharCode(l)}catch(c){var d=this._input.substring(e.offset+1,this._index-1);throw this._createError(_unknownEntityErrorMsg(d),this._getSpan(e))}},_Tokenizer.prototype._consumeRawText=function(e,t,n){var o,r=this._getLocation();this._beginToken(e?u.ESCAPABLE_RAW_TEXT:u.RAW_TEXT,r);for(var i=[];;){if(o=this._getLocation(),this._attemptCharCode(t)&&n())break;for(this._index>o.offset&&i.push(this._input.substring(o.offset,this._index));this._peek!==t;)i.push(this._readChar(e))}return this._endToken([this._processCarriageReturns(i.join(""))],o)},_Tokenizer.prototype._consumeComment=function(e){var t=this;this._beginToken(u.COMMENT_START,e),this._requireCharCode(o.r),this._endToken([]);var n=this._consumeRawText(!1,o.r,function(){return t._attemptStr("->")});this._beginToken(u.COMMENT_END,n.sourceSpan.end),this._endToken([])},_Tokenizer.prototype._consumeCdata=function(e){var t=this;this._beginToken(u.CDATA_START,e),this._requireStr("CDATA["),this._endToken([]);var n=this._consumeRawText(!1,o.j,function(){return t._attemptStr("]>")});this._beginToken(u.CDATA_END,n.sourceSpan.end),this._endToken([])},_Tokenizer.prototype._consumeDocType=function(e){this._beginToken(u.DOC_TYPE,e),this._attemptUntilChar(o.y),this._advance(),this._endToken([this._input.substring(e.offset+2,this._index-1)])},_Tokenizer.prototype._consumePrefixAndName=function(){for(var e=this._index,t=null;this._peek!==o.l&&!isPrefixEnd(this._peek);)this._advance();var n;this._peek===o.l?(this._advance(),t=this._input.substring(e,this._index-1),n=this._index):n=e,this._requireCharCodeUntilFn(isNameEnd,this._index===n?1:0);var r=this._input.substring(n,this._index);return[t,r]},_Tokenizer.prototype._consumeTagOpen=function(e){var t,n,r=this._savePosition();try{if(!o.N(this._peek))throw this._createError(_unexpectedCharacterErrorMsg(this._peek),this._getSpan());var i=this._index;for(this._consumeTagOpenStart(e),t=this._input.substring(i,this._index),n=t.toLowerCase(),this._attemptCharCodeUntilFn(isNotWhitespace);this._peek!==o.t&&this._peek!==o.y;)this._consumeAttributeName(),this._attemptCharCodeUntilFn(isNotWhitespace),this._attemptCharCode(o.z)&&(this._attemptCharCodeUntilFn(isNotWhitespace),this._consumeAttributeValue()),this._attemptCharCodeUntilFn(isNotWhitespace);this._consumeTagOpenEnd()}catch(s){if(s instanceof g)return this._restorePosition(r),this._beginToken(u.TEXT,e),void this._endToken(["<"]);throw s}var l=this._getTagDefinition(t).contentType;l===a.a.RAW_TEXT?this._consumeRawTextWithTagClose(n,!1):l===a.a.ESCAPABLE_RAW_TEXT&&this._consumeRawTextWithTagClose(n,!0)},_Tokenizer.prototype._consumeRawTextWithTagClose=function(e,t){var n=this,r=this._consumeRawText(t,o.x,function(){return!!n._attemptCharCode(o.t)&&(n._attemptCharCodeUntilFn(isNotWhitespace),!!n._attemptStrCaseInsensitive(e)&&(n._attemptCharCodeUntilFn(isNotWhitespace),n._attemptCharCode(o.y)))});this._beginToken(u.TAG_CLOSE,r.sourceSpan.end),this._endToken([null,e])},_Tokenizer.prototype._consumeTagOpenStart=function(e){this._beginToken(u.TAG_OPEN_START,e);var t=this._consumePrefixAndName();this._endToken(t)},_Tokenizer.prototype._consumeAttributeName=function(){this._beginToken(u.ATTR_NAME);var e=this._consumePrefixAndName();this._endToken(e)},_Tokenizer.prototype._consumeAttributeValue=function(){this._beginToken(u.ATTR_VALUE);var e;if(this._peek===o.n||this._peek===o.o){var t=this._peek;this._advance();for(var n=[];this._peek!==t;)n.push(this._readChar(!0));e=n.join(""),this._advance()}else{var r=this._index;this._requireCharCodeUntilFn(isNameEnd,1),e=this._input.substring(r,this._index)}this._endToken([this._processCarriageReturns(e)])},_Tokenizer.prototype._consumeTagOpenEnd=function(){var e=this._attemptCharCode(o.t)?u.TAG_OPEN_END_VOID:u.TAG_OPEN_END;this._beginToken(e),this._requireCharCode(o.y),this._endToken([])},_Tokenizer.prototype._consumeTagClose=function(e){this._beginToken(u.TAG_CLOSE,e),this._attemptCharCodeUntilFn(isNotWhitespace);var t=this._consumePrefixAndName();this._attemptCharCodeUntilFn(isNotWhitespace),this._requireCharCode(o.y),this._endToken(t)},_Tokenizer.prototype._consumeExpansionFormStart=function(){this._beginToken(u.EXPANSION_FORM_START,this._getLocation()),this._requireCharCode(o.g),this._endToken([]),this._expansionCaseStack.push(u.EXPANSION_FORM_START),this._beginToken(u.RAW_TEXT,this._getLocation());var e=this._readUntil(o.k);this._endToken([e],this._getLocation()),this._requireCharCode(o.k),this._attemptCharCodeUntilFn(isNotWhitespace),this._beginToken(u.RAW_TEXT,this._getLocation());var t=this._readUntil(o.k);this._endToken([t],this._getLocation()),this._requireCharCode(o.k),this._attemptCharCodeUntilFn(isNotWhitespace)},_Tokenizer.prototype._consumeExpansionCaseStart=function(){this._beginToken(u.EXPANSION_CASE_VALUE,this._getLocation());var e=this._readUntil(o.g).trim();this._endToken([e],this._getLocation()),this._attemptCharCodeUntilFn(isNotWhitespace),this._beginToken(u.EXPANSION_CASE_EXP_START,this._getLocation()),this._requireCharCode(o.g),this._endToken([],this._getLocation()),this._attemptCharCodeUntilFn(isNotWhitespace),this._expansionCaseStack.push(u.EXPANSION_CASE_EXP_START)},_Tokenizer.prototype._consumeExpansionCaseEnd=function(){this._beginToken(u.EXPANSION_CASE_EXP_END,this._getLocation()),this._requireCharCode(o.h),this._endToken([],this._getLocation()),this._attemptCharCodeUntilFn(isNotWhitespace),this._expansionCaseStack.pop()},_Tokenizer.prototype._consumeExpansionFormEnd=function(){this._beginToken(u.EXPANSION_FORM_END,this._getLocation()),this._requireCharCode(o.h),this._endToken([]),this._expansionCaseStack.pop()},_Tokenizer.prototype._consumeText=function(){var e=this._getLocation();this._beginToken(u.TEXT,e);var t=[];do this._interpolationConfig&&this._attemptStr(this._interpolationConfig.start)?(t.push(this._interpolationConfig.start),this._inInterpolation=!0):this._interpolationConfig&&this._inInterpolation&&this._attemptStr(this._interpolationConfig.end)?(t.push(this._interpolationConfig.end),this._inInterpolation=!1):t.push(this._readChar(!0));while(!this._isTextEnd());this._endToken([this._processCarriageReturns(t.join(""))])},_Tokenizer.prototype._isTextEnd=function(){if(this._peek===o.x||this._peek===o.a)return!0;if(this._tokenizeIcu&&!this._inInterpolation){if(isExpansionFormStart(this._input,this._index,this._interpolationConfig))return!0;if(this._peek===o.h&&this._isInExpansionCase())return!0}return!1},_Tokenizer.prototype._savePosition=function(){return[this._peek,this._index,this._column,this._line,this.tokens.length]},_Tokenizer.prototype._readUntil=function(e){var t=this._index;return this._attemptUntilChar(e),this._input.substring(t,this._index)},_Tokenizer.prototype._restorePosition=function(e){this._peek=e[0],this._index=e[1],this._column=e[2],this._line=e[3];var t=e[4];t<this.tokens.length&&(this.tokens=this.tokens.slice(0,t))},_Tokenizer.prototype._isInExpansionCase=function(){return this._expansionCaseStack.length>0&&this._expansionCaseStack[this._expansionCaseStack.length-1]===u.EXPANSION_CASE_EXP_START},_Tokenizer.prototype._isInExpansionForm=function(){return this._expansionCaseStack.length>0&&this._expansionCaseStack[this._expansionCaseStack.length-1]===u.EXPANSION_FORM_START},_Tokenizer}()},function(e,t,n){"use strict";function getXmlTagDefinition(e){return i}var o=n(87);t.a=getXmlTagDefinition;var r=function(){function XmlTagDefinition(){this.closedByParent=!1,this.contentType=o.a.PARSABLE_DATA,this.isVoid=!1,this.ignoreFirstLf=!1,this.canSelfClose=!0}return XmlTagDefinition.prototype.requireExtraParent=function(e){return!1},XmlTagDefinition.prototype.isClosedByChild=function(e){return!1},XmlTagDefinition}(),i=new r},function(e,t,n){"use strict";var o=n(7),r=n(247),i=n(10);n.d(t,"a",function(){return s});var a=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},s=function(e){function AbstractJsEmitterVisitor(){e.call(this,!1)}return a(AbstractJsEmitterVisitor,e),AbstractJsEmitterVisitor.prototype.visitDeclareClassStmt=function(e,t){var r=this;return t.pushClass(e),this._visitClassConstructor(e,t),n.i(o.f)(e.parent)&&(t.print(e.name+".prototype = Object.create("),e.parent.visitExpression(this,t),t.println(".prototype);")),e.getters.forEach(function(n){return r._visitClassGetter(e,n,t)}),e.methods.forEach(function(n){return r._visitClassMethod(e,n,t)}),t.popClass(),null},AbstractJsEmitterVisitor.prototype._visitClassConstructor=function(e,t){t.print("function "+e.name+"("),n.i(o.f)(e.constructorMethod)&&this._visitParams(e.constructorMethod.params,t),t.println(") {"),t.incIndent(),n.i(o.f)(e.constructorMethod)&&e.constructorMethod.body.length>0&&(t.println("var self = this;"),this.visitAllStatements(e.constructorMethod.body,t)),t.decIndent(),t.println("}")},AbstractJsEmitterVisitor.prototype._visitClassGetter=function(e,t,n){n.println("Object.defineProperty("+e.name+".prototype, '"+t.name+"', { get: function() {"),n.incIndent(),t.body.length>0&&(n.println("var self = this;"),this.visitAllStatements(t.body,n)),n.decIndent(),n.println("}});")},AbstractJsEmitterVisitor.prototype._visitClassMethod=function(e,t,n){n.print(e.name+".prototype."+t.name+" = function("),this._visitParams(t.params,n),n.println(") {"),n.incIndent(),t.body.length>0&&(n.println("var self = this;"),this.visitAllStatements(t.body,n)),n.decIndent(),n.println("};")},AbstractJsEmitterVisitor.prototype.visitReadVarExpr=function(t,n){if(t.builtin===i.L.This)n.print("self");else{if(t.builtin===i.L.Super)throw new Error("'super' needs to be handled at a parent ast node, not at the variable level!");e.prototype.visitReadVarExpr.call(this,t,n)}return null},AbstractJsEmitterVisitor.prototype.visitDeclareVarStmt=function(e,t){return t.print("var "+e.name+" = "),e.value.visitExpression(this,t),t.println(";"),null},AbstractJsEmitterVisitor.prototype.visitCastExpr=function(e,t){return e.value.visitExpression(this,t),null},AbstractJsEmitterVisitor.prototype.visitInvokeFunctionExpr=function(t,n){var o=t.fn;return o instanceof i.q&&o.builtin===i.L.Super?(n.currentClass.parent.visitExpression(this,n),n.print(".call(this"),t.args.length>0&&(n.print(", "),this.visitAllExpressions(t.args,n,",")),n.print(")")):e.prototype.visitInvokeFunctionExpr.call(this,t,n),null},AbstractJsEmitterVisitor.prototype.visitFunctionExpr=function(e,t){return t.print("function("),this._visitParams(e.params,t),t.println(") {"),t.incIndent(),this.visitAllStatements(e.statements,t),t.decIndent(),t.print("}"),null},AbstractJsEmitterVisitor.prototype.visitDeclareFunctionStmt=function(e,t){return t.print("function "+e.name+"("),this._visitParams(e.params,t),t.println(") {"),t.incIndent(),this.visitAllStatements(e.statements,t),t.decIndent(),t.println("}"),null},AbstractJsEmitterVisitor.prototype.visitTryCatchStmt=function(e,t){t.println("try {"),t.incIndent(),this.visitAllStatements(e.bodyStmts,t),t.decIndent(),t.println("} catch ("+r.b.name+") {"),t.incIndent();var n=[r.c.set(r.b.prop("stack")).toDeclStmt(null,[i.b.Final])].concat(e.catchStmts);return this.visitAllStatements(n,t),t.decIndent(),t.println("}"),null},AbstractJsEmitterVisitor.prototype._visitParams=function(e,t){this.visitAllObjects(function(e){return t.print(e.name)},e,t,",")},AbstractJsEmitterVisitor.prototype.getBuiltinMethodName=function(e){var t;switch(e){case i.x.ConcatArray:t="concat";break;case i.x.SubscribeObservable:t="subscribe";break;case i.x.Bind:t="bind";break;default:throw new Error("Unknown builtin method: "+e)}return t},AbstractJsEmitterVisitor;
}(r.d)},function(e,t,n){"use strict";function interpretStatements(e,t){var i=e.concat([new r.t(r.g(t))]),s=new a(null,null,null,new Map),l=new u,c=l.visitAllStatements(i,s);return n.i(o.f)(c)?c.value:null}function _executeFunctionStatements(e,t,r,i,a){for(var s=i.createChildWihtLocalVars(),u=0;u<e.length;u++)s.vars.set(e[u],t[u]);var l=a.visitAllStatements(r,s);return n.i(o.f)(l)?l.value:null}function createDynamicClass(e,t,n){var o={};e.getters.forEach(function(r){o[r.name]={configurable:!1,get:function(){var o=new a(t,this,e.name,t.vars);return _executeFunctionStatements([],[],r.body,o,n)}}}),e.methods.forEach(function(r){var i=r.params.map(function(e){return e.name});o[r.name]={writable:!1,configurable:!1,value:function(){for(var o=[],s=0;s<arguments.length;s++)o[s-0]=arguments[s];var u=new a(t,this,e.name,t.vars);return _executeFunctionStatements(i,o,r.body,u,n)}}});var r=e.constructorMethod.params.map(function(e){return e.name}),i=function(){for(var o=this,i=[],s=0;s<arguments.length;s++)i[s-0]=arguments[s];var u=new a(t,this,e.name,t.vars);e.fields.forEach(function(e){o[e.name]=void 0}),_executeFunctionStatements(r,i,e.constructorMethod.body,u,n)},s=e.parent?e.parent.visitExpression(n,t):Object;return i.prototype=Object.create(s.prototype,o),i}function _declareFn(e,t,n,o){return function(){for(var r=[],i=0;i<arguments.length;i++)r[i-0]=arguments[i];return _executeFunctionStatements(e,r,t,n,o)}}var o=n(7),r=n(10),i=n(249);t.a=interpretStatements;var a=function(){function _ExecutionContext(e,t,n,o){this.parent=e,this.instance=t,this.className=n,this.vars=o}return _ExecutionContext.prototype.createChildWihtLocalVars=function(){return new _ExecutionContext(this,this.instance,this.className,new Map)},_ExecutionContext}(),s=function(){function ReturnValue(e){this.value=e}return ReturnValue}(),u=function(){function StatementInterpreter(){}return StatementInterpreter.prototype.debugAst=function(e){return n.i(i.b)(e)},StatementInterpreter.prototype.visitDeclareVarStmt=function(e,t){return t.vars.set(e.name,e.value.visitExpression(this,t)),null},StatementInterpreter.prototype.visitWriteVarExpr=function(e,t){for(var n=e.value.visitExpression(this,t),o=t;null!=o;){if(o.vars.has(e.name))return o.vars.set(e.name,n),n;o=o.parent}throw new Error("Not declared variable "+e.name)},StatementInterpreter.prototype.visitReadVarExpr=function(e,t){var i=e.name;if(n.i(o.f)(e.builtin))switch(e.builtin){case r.L.Super:return t.instance.__proto__;case r.L.This:return t.instance;case r.L.CatchError:i=l;break;case r.L.CatchStack:i=c;break;default:throw new Error("Unknown builtin variable "+e.builtin)}for(var a=t;null!=a;){if(a.vars.has(i))return a.vars.get(i);a=a.parent}throw new Error("Not declared variable "+i)},StatementInterpreter.prototype.visitWriteKeyExpr=function(e,t){var n=e.receiver.visitExpression(this,t),o=e.index.visitExpression(this,t),r=e.value.visitExpression(this,t);return n[o]=r,r},StatementInterpreter.prototype.visitWritePropExpr=function(e,t){var n=e.receiver.visitExpression(this,t),o=e.value.visitExpression(this,t);return n[e.name]=o,o},StatementInterpreter.prototype.visitInvokeMethodExpr=function(e,t){var i,a=e.receiver.visitExpression(this,t),s=this.visitAllExpressions(e.args,t);if(n.i(o.f)(e.builtin))switch(e.builtin){case r.x.ConcatArray:i=a.concat.apply(a,s);break;case r.x.SubscribeObservable:i=a.subscribe({next:s[0]});break;case r.x.Bind:i=a.bind.apply(a,s);break;default:throw new Error("Unknown builtin method "+e.builtin)}else i=a[e.name].apply(a,s);return i},StatementInterpreter.prototype.visitInvokeFunctionExpr=function(e,t){var n=this.visitAllExpressions(e.args,t),o=e.fn;if(o instanceof r.q&&o.builtin===r.L.Super)return t.instance.constructor.prototype.constructor.apply(t.instance,n),null;var i=e.fn.visitExpression(this,t);return i.apply(null,n)},StatementInterpreter.prototype.visitReturnStmt=function(e,t){return new s(e.value.visitExpression(this,t))},StatementInterpreter.prototype.visitDeclareClassStmt=function(e,t){var n=createDynamicClass(e,t,this);return t.vars.set(e.name,n),null},StatementInterpreter.prototype.visitExpressionStmt=function(e,t){return e.expr.visitExpression(this,t)},StatementInterpreter.prototype.visitIfStmt=function(e,t){var r=e.condition.visitExpression(this,t);return r?this.visitAllStatements(e.trueCase,t):n.i(o.f)(e.falseCase)?this.visitAllStatements(e.falseCase,t):null},StatementInterpreter.prototype.visitTryCatchStmt=function(e,t){try{return this.visitAllStatements(e.bodyStmts,t)}catch(n){var o=t.createChildWihtLocalVars();return o.vars.set(l,n),o.vars.set(c,n.stack),this.visitAllStatements(e.catchStmts,o)}},StatementInterpreter.prototype.visitThrowStmt=function(e,t){throw e.error.visitExpression(this,t)},StatementInterpreter.prototype.visitCommentStmt=function(e,t){return null},StatementInterpreter.prototype.visitInstantiateExpr=function(e,t){var n=this.visitAllExpressions(e.args,t),o=e.classExpr.visitExpression(this,t);return new(o.bind.apply(o,[void 0].concat(n)))},StatementInterpreter.prototype.visitLiteralExpr=function(e,t){return e.value},StatementInterpreter.prototype.visitExternalExpr=function(e,t){return e.value.reference},StatementInterpreter.prototype.visitConditionalExpr=function(e,t){return e.condition.visitExpression(this,t)?e.trueCase.visitExpression(this,t):n.i(o.f)(e.falseCase)?e.falseCase.visitExpression(this,t):null},StatementInterpreter.prototype.visitNotExpr=function(e,t){return!e.condition.visitExpression(this,t)},StatementInterpreter.prototype.visitCastExpr=function(e,t){return e.value.visitExpression(this,t)},StatementInterpreter.prototype.visitFunctionExpr=function(e,t){var n=e.params.map(function(e){return e.name});return _declareFn(n,e.statements,t,this)},StatementInterpreter.prototype.visitDeclareFunctionStmt=function(e,t){var n=e.params.map(function(e){return e.name});return t.vars.set(e.name,_declareFn(n,e.statements,t,this)),null},StatementInterpreter.prototype.visitBinaryOperatorExpr=function(e,t){var n=this,o=function(){return e.lhs.visitExpression(n,t)},i=function(){return e.rhs.visitExpression(n,t)};switch(e.operator){case r.l.Equals:return o()==i();case r.l.Identical:return o()===i();case r.l.NotEquals:return o()!=i();case r.l.NotIdentical:return o()!==i();case r.l.And:return o()&&i();case r.l.Or:return o()||i();case r.l.Plus:return o()+i();case r.l.Minus:return o()-i();case r.l.Divide:return o()/i();case r.l.Multiply:return o()*i();case r.l.Modulo:return o()%i();case r.l.Lower:return o()<i();case r.l.LowerEquals:return o()<=i();case r.l.Bigger:return o()>i();case r.l.BiggerEquals:return o()>=i();default:throw new Error("Unknown operator "+e.operator)}},StatementInterpreter.prototype.visitReadPropExpr=function(e,t){var n,o=e.receiver.visitExpression(this,t);return n=o[e.name]},StatementInterpreter.prototype.visitReadKeyExpr=function(e,t){var n=e.receiver.visitExpression(this,t),o=e.index.visitExpression(this,t);return n[o]},StatementInterpreter.prototype.visitLiteralArrayExpr=function(e,t){return this.visitAllExpressions(e.entries,t)},StatementInterpreter.prototype.visitLiteralMapExpr=function(e,t){var n=this,o={};return e.entries.forEach(function(e){return o[e.key]=e.value.visitExpression(n,t)}),o},StatementInterpreter.prototype.visitAllExpressions=function(e,t){var n=this;return e.map(function(e){return e.visitExpression(n,t)})},StatementInterpreter.prototype.visitAllStatements=function(e,t){for(var n=0;n<e.length;n++){var o=e[n],r=o.visitStatement(this,t);if(r instanceof s)return r}return null},StatementInterpreter}(),l="error",c="stack"},function(e,t,n){"use strict";function evalExpression(e,t,n,o){var r=n+"\nreturn "+t+"\n//# sourceURL="+e,i=[],a=[];for(var s in o)i.push(s),a.push(o[s]);return(new(Function.bind.apply(Function,[void 0].concat(i.concat(r))))).apply(void 0,a)}function jitStatements(e,t,n){var o=new s,i=r.a.createRoot([n]);return o.visitAllStatements(t,i),evalExpression(e,n,i.toSource(),o.getArgs())}var o=n(14),r=n(247),i=n(627);t.a=jitStatements;var a=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},s=function(e){function JitEmitterVisitor(){e.apply(this,arguments),this._evalArgNames=[],this._evalArgValues=[]}return a(JitEmitterVisitor,e),JitEmitterVisitor.prototype.getArgs=function(){for(var e={},t=0;t<this._evalArgNames.length;t++)e[this._evalArgNames[t]]=this._evalArgValues[t];return e},JitEmitterVisitor.prototype.visitExternalExpr=function(e,t){var r=e.value.reference,i=this._evalArgValues.indexOf(r);if(i===-1){i=this._evalArgValues.length,this._evalArgValues.push(r);var a=n.i(o.c)(e.value)||"val";this._evalArgNames.push("jit_"+a+i)}return t.print(this._evalArgNames[i]),null},JitEmitterVisitor}(i.a)},function(e,t,n){"use strict";(function(){function ImportResolver(){}return ImportResolver.prototype.fileNameToModuleName=function(e,t){},ImportResolver})()},function(e,t,n){"use strict";function registerContext(e,t){for(var n=0,o=t;n<o.length;n++){var i=o[n];r[i.toLowerCase()]=e}}var o=n(1);n.d(t,"a",function(){return r});var r={};registerContext(o.SecurityContext.HTML,["iframe|srcdoc","*|innerHTML","*|outerHTML"]),registerContext(o.SecurityContext.STYLE,["*|style"]),registerContext(o.SecurityContext.URL,["*|formAction","area|href","area|ping","audio|src","a|href","a|ping","blockquote|cite","body|background","del|cite","form|action","img|src","img|srcset","input|src","ins|cite","q|cite","source|src","source|srcset","track|src","video|poster","video|src"]),registerContext(o.SecurityContext.RESOURCE_URL,["applet|code","applet|codebase","base|href","embed|src","frame|src","head|profile","html|manifest","iframe|src","link|href","media|src","object|codebase","object|data","script|src"])},function(e,t,n){"use strict";function stripComments(e){return e.replace(E,"")}function extractSourceMappingUrl(e){var t=e.match(T);return t?t[0]:""}function processRules(e,t){var n=escapeBlocks(e),o=0;return n.escapedString.replace(S,function(){for(var e=[],r=0;r<arguments.length;r++)e[r-0]=arguments[r];var i=e[2],a="",s=e[4],u="";s&&s.startsWith("{"+k)&&(a=n.blocks[o++],s=s.substring(k.length+1),u="{");var l=t(new R(i,a));return""+e[1]+l.selector+e[3]+u+l.content+s})}function escapeBlocks(e){for(var t=e.split(A),n=[],o=[],r=0,i=[],a=0;a<t.length;a++){var s=t[a];s==C&&r--,r>0?i.push(s):(i.length>0&&(o.push(i.join("")),n.push(k),i=[]),n.push(s)),s==M&&r++}return i.length>0&&(o.push(i.join("")),n.push(k)),new N(n.join(""),o)}n.d(t,"a",function(){return o});var o=function(){function ShadowCss(){this.strictStyling=!0}return ShadowCss.prototype.shimCssText=function(e,t,n){void 0===n&&(n="");var o=extractSourceMappingUrl(e);return e=stripComments(e),e=this._insertDirectives(e),this._scopeCssText(e,t,n)+o},ShadowCss.prototype._insertDirectives=function(e){return e=this._insertPolyfillDirectivesInCssText(e),this._insertPolyfillRulesInCssText(e)},ShadowCss.prototype._insertPolyfillDirectivesInCssText=function(e){return e.replace(i,function(){for(var e=[],t=0;t<arguments.length;t++)e[t-0]=arguments[t];return e[2]+"{"})},ShadowCss.prototype._insertPolyfillRulesInCssText=function(e){return e.replace(a,function(){for(var e=[],t=0;t<arguments.length;t++)e[t-0]=arguments[t];var n=e[0].replace(e[1],"").replace(e[2],"");return e[4]+n})},ShadowCss.prototype._scopeCssText=function(e,t,n){var o=this._extractUnscopedRulesFromCssText(e);return e=this._insertPolyfillHostInCssText(e),e=this._convertColonHost(e),e=this._convertColonHostContext(e),e=this._convertShadowDOMSelectors(e),t&&(e=this._scopeSelectors(e,t,n)),e=e+"\n"+o,e.trim()},ShadowCss.prototype._extractUnscopedRulesFromCssText=function(e){var t,n="";for(s.lastIndex=0;null!==(t=s.exec(e));){var o=t[0].replace(t[2],"").replace(t[1],t[4]);n+=o+"\n\n"}return n},ShadowCss.prototype._convertColonHost=function(e){return this._convertColonRule(e,d,this._colonHostPartReplacer)},ShadowCss.prototype._convertColonHostContext=function(e){return this._convertColonRule(e,p,this._colonHostContextPartReplacer)},ShadowCss.prototype._convertColonRule=function(e,t,n){return e.replace(t,function(){for(var e=[],t=0;t<arguments.length;t++)e[t-0]=arguments[t];if(e[2]){for(var o=e[2].split(","),r=[],i=0;i<o.length;i++){var a=o[i].trim();if(!a)break;r.push(n(g,a,e[3]))}return r.join(",")}return g+e[3]})},ShadowCss.prototype._colonHostContextPartReplacer=function(e,t,n){return t.indexOf(u)>-1?this._colonHostPartReplacer(e,t,n):e+t+n+", "+t+" "+e+n},ShadowCss.prototype._colonHostPartReplacer=function(e,t,n){return e+t.replace(u,"")+n},ShadowCss.prototype._convertShadowDOMSelectors=function(e){return h.reduce(function(e,t){return e.replace(t," ")},e)},ShadowCss.prototype._scopeSelectors=function(e,t,n){var o=this;return processRules(e,function(e){var r=e.selector,i=e.content;return"@"!=e.selector[0]?r=o._scopeSelector(e.selector,t,n,o.strictStyling):(e.selector.startsWith("@media")||e.selector.startsWith("@supports")||e.selector.startsWith("@page")||e.selector.startsWith("@document"))&&(i=o._scopeSelectors(e.content,t,n)),new R(r,i)})},ShadowCss.prototype._scopeSelector=function(e,t,n,o){var r=this;return e.split(",").map(function(e){return e.trim().split(m)}).map(function(e){var i=e[0],a=e.slice(1),s=function(e){return r._selectorNeedsScoping(e,t)?o?r._applyStrictSelectorScope(e,t,n):r._applySelectorScope(e,t,n):e};return[s(i)].concat(a).join(" ")}).join(", ")},ShadowCss.prototype._selectorNeedsScoping=function(e,t){var n=this._makeScopeMatcher(t);return!n.test(e)},ShadowCss.prototype._makeScopeMatcher=function(e){var t=/\[/g,n=/\]/g;return e=e.replace(t,"\\[").replace(n,"\\]"),new RegExp("^("+e+")"+y,"m")},ShadowCss.prototype._applySelectorScope=function(e,t,n){return this._applySimpleSelectorScope(e,t,n)},ShadowCss.prototype._applySimpleSelectorScope=function(e,t,n){if(b.lastIndex=0,b.test(e)){var o=this.strictStyling?"["+n+"]":t;return e.replace(f,function(e,t){return t.replace(/([^:]*)(:*)(.*)/,function(e,t,n,r){return t+o+n+r})}).replace(b,o+" ")}return t+" "+e},ShadowCss.prototype._applyStrictSelectorScope=function(e,t,n){var o=this,i=/\[is=([^\]]*)\]/g;t=t.replace(i,function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];return t[0]});var a="["+t+"]",s=function(e){var r=e.trim();if(!r)return"";if(e.indexOf(g)>-1)r=o._applySimpleSelectorScope(e,t,n);else{var i=e.replace(b,"");if(i.length>0){var s=i.match(/([^:]*)(:*)(.*)/);s&&(r=s[1]+a+s[2]+s[3])}}return r},u=new r(e);e=u.content();for(var l,c="",d=0,p=/( |>|\+|~(?!=))\s*/g,f=e.indexOf(g);null!==(l=p.exec(e));){var h=l[1],m=e.slice(d,l.index).trim(),y=d>=f?s(m):m;c+=y+" "+h+" ",d=p.lastIndex}return c+=s(e.substring(d)),u.restore(c)},ShadowCss.prototype._insertPolyfillHostInCssText=function(e){return e.replace(_,l).replace(v,u)},ShadowCss}(),r=function(){function SafeSelector(e){var t=this;this.placeholders=[],this.index=0,e=e.replace(/(\[[^\]]*\])/g,function(e,n){var o="__ph-"+t.index+"__";return t.placeholders.push(n),t.index++,o}),this._content=e.replace(/(:nth-[-\w]+)(\([^)]+\))/g,function(e,n,o){var r="__ph-"+t.index+"__";return t.placeholders.push(o),t.index++,n+r})}return SafeSelector.prototype.restore=function(e){var t=this;return e.replace(/__ph-(\d+)__/g,function(e,n){return t.placeholders[+n]})},SafeSelector.prototype.content=function(){return this._content},SafeSelector}(),i=/polyfill-next-selector[^}]*content:[\s]*?(['"])(.*?)\1[;\s]*}([^{]*?){/gim,a=/(polyfill-rule)[^}]*(content:[\s]*(['"])(.*?)\3)[;\s]*[^}]*}/gim,s=/(polyfill-unscoped-rule)[^}]*(content:[\s]*(['"])(.*?)\3)[;\s]*[^}]*}/gim,u="-shadowcsshost",l="-shadowcsscontext",c=")(?:\\(((?:\\([^)(]*\\)|[^)(]*)+?)\\))?([^,{]*)",d=new RegExp("("+u+c,"gim"),p=new RegExp("("+l+c,"gim"),g=u+"-no-combinator",f=/-shadowcsshost-no-combinator([^\s]*)/,h=[/::shadow/g,/::content/g,/\/shadow-deep\//g,/\/shadow\//g],m=/(?:>>>)|(?:\/deep\/)/g,y="([>\\s~+[.,{:][\\s\\S]*)?$",b=/-shadowcsshost/gim,v=/:host/gim,_=/:host-context/gim,E=/\/\*\s*[\s\S]*?\*\//g,T=/\/\*\s*#\s*sourceMappingURL=[\s\S]+?\*\//,S=/(\s*)([^;\{\}]+?)(\s*)((?:{%BLOCK%}?\s*;?)|(?:\s*;))/g,A=/([{}])/g,M="{",C="}",k="%BLOCK%",R=function(){function CssRule(e,t){this.selector=e,this.content=t}return CssRule}(),N=function(){function StringWithEscapedBlocks(e,t){this.escapedString=e,this.blocks=t}return StringWithEscapedBlocks}()},function(e,t,n){"use strict";var o=n(1);new o.Version("2.4.10")},function(e,t,n){"use strict";function _findPipeMeta(e,t){for(var n=null,o=e.pipeMetas.length-1;o>=0;o--){var r=e.pipeMetas[o];if(r.name==t){n=r;break}}if(!n)throw new Error("Illegal state: Could not find pipe "+t+" although the parser should have detected this error!");return n}var o=n(14),r=n(46),i=n(19),a=n(10),s=n(89);n.d(t,"a",function(){return u});var u=function(){function CompilePipe(e,t){var r=this;this.view=e,this.meta=t,this._purePipeProxyCount=0,this.instance=a.c.prop("_pipe_"+t.name+"_"+e.pipeCount++);var u=this.meta.type.diDeps.map(function(t){return n.i(o.a)(t.token)===n.i(i.a)(i.b.ChangeDetectorRef)?n.i(s.a)(a.c.prop("ref"),r.view,r.view.componentView):n.i(s.b)(e,t.token,!1)});this.view.fields.push(new a.a(this.instance.name,a.B(this.meta.type))),this.view.createMethod.resetDebugInfo(null,null),this.view.createMethod.addStmt(a.c.prop(this.instance.name).set(a.d(this.meta.type).instantiate(u)).toStmt())}return CompilePipe.call=function(e,t,n){var o,r=e.componentView,i=_findPipeMeta(r,t);return i.pure?(o=r.purePipes.get(t),o||(o=new CompilePipe(r,i),r.purePipes.set(t,o),r.pipes.push(o))):(o=new CompilePipe(e,i),e.pipes.push(o)),o._call(e,n)},Object.defineProperty(CompilePipe.prototype,"pure",{get:function(){return this.meta.pure},enumerable:!0,configurable:!0}),CompilePipe.prototype._call=function(e,t){if(this.meta.pure){var o=a.c.prop(this.instance.name+"_"+this._purePipeProxyCount++),u=n.i(s.a)(this.instance,e,this.view);return n.i(r.a)(u.prop("transform").callMethod(a.x.Bind,[u]),t.length,o,{fields:e.fields,ctorStmts:e.createMethod}),a.d(n.i(i.e)(i.b.castByValue)).callFn([o,u.prop("transform")]).callFn(t)}return n.i(s.a)(this.instance,e,this.view).callMethod("transform",t)},CompilePipe}()},function(e,t,n){"use strict";function bindOutputs(e,t,n,o){var r=collectEvents(e,t);return!!r.size&&(o&&subscribeToRenderEvents(r,n),subscribeToDirectiveEvents(r,t,n),generateHandleEventMethod(e,t,n),!0)}function collectEvents(e,t){var n=new Map;return e.forEach(function(e){n.set(e.fullName,e)}),t.forEach(function(e){e.hostEvents.forEach(function(e){n.set(e.fullName,e)})}),n}function subscribeToRenderEvents(e,t){var o=[];if(e.forEach(function(e){e.phase||o.push(s.f(e.name),s.f(e.target))}),o.length){var i=s.g("disposable_"+t.view.disposables.length);t.view.disposables.push(i),t.view.createMethod.addStmt(i.set(s.d(n.i(a.e)(a.b.subscribeToRenderElement)).callFn([s.c,t.renderNode,n.i(r.d)(o),handleEventExpr(t)])).toDeclStmt(s.C,[s.b.Private]))}}function subscribeToDirectiveEvents(e,t,n){var o=Array.from(e.keys());t.forEach(function(e){var t=n.directiveWrapperInstance.get(e.directive.type.reference);n.view.createMethod.addStmts(i.b.subscribe(e.directive,e.hostProperties,o,t,s.c,handleEventExpr(n)))})}function generateHandleEventMethod(e,t,r){var a=t.some(function(e){return e.hostEvents.some(function(t){return e.directive.isComponent})}),c=a?r.compViewExpr:s.c,d=new u.a(r.view);d.resetDebugInfo(r.nodeIndex,r.sourceAst),d.push(c.callMethod("markPathToRootAsCheckOnce",[]).toStmt());var p=s.g("eventName"),g=s.g("result");d.push(g.set(s.f(!0)).toDeclStmt(s.D)),t.forEach(function(e,t){var n=r.directiveWrapperInstance.get(e.directive.type.reference);e.hostEvents.length>0&&d.push(g.set(i.b.handleEvent(e.hostEvents,n,p,o.c.event).and(g)).toStmt())}),e.forEach(function(e,t){var i=n.i(o.b)(r.view,r.view,r.view.componentContext,e.handler,"sub_"+t),a=i.stmts;i.preventDefault&&a.push(g.set(i.preventDefault.and(g)).toStmt()),d.push(new s.e(p.equals(s.f(e.fullName)),a))}),d.push(new s.t(g)),r.view.methods.push(new s.z(n.i(l.d)(r.nodeIndex),[new s.r(p.name,s.F),new s.r(o.c.event.name,s.h)],d.finish(),s.D))}function handleEventExpr(e){var t=n.i(l.d)(e.nodeIndex);return s.c.callMethod("eventHandler",[s.c.prop(t)])}var o=n(122),r=n(46),i=n(73),a=n(19),s=n(10),u=n(252),l=n(89);t.a=bindOutputs},function(e,t,n){"use strict";function bindDirectiveAfterContentLifecycleCallbacks(e,t,n){var o=n.view,a=e.type.lifecycleHooks,s=o.afterContentLifecycleCallbacksMethod;s.resetDebugInfo(n.nodeIndex,n.sourceAst),a.indexOf(i.H.AfterContentInit)!==-1&&s.addStmt(new r.e(u,[t.callMethod("ngAfterContentInit",[]).toStmt()])),a.indexOf(i.H.AfterContentChecked)!==-1&&s.addStmt(t.callMethod("ngAfterContentChecked",[]).toStmt())}function bindDirectiveAfterViewLifecycleCallbacks(e,t,n){var o=n.view,a=e.type.lifecycleHooks,s=o.afterViewLifecycleCallbacksMethod;s.resetDebugInfo(n.nodeIndex,n.sourceAst),a.indexOf(i.H.AfterViewInit)!==-1&&s.addStmt(new r.e(u,[t.callMethod("ngAfterViewInit",[]).toStmt()])),a.indexOf(i.H.AfterViewChecked)!==-1&&s.addStmt(t.callMethod("ngAfterViewChecked",[]).toStmt())}function bindDirectiveWrapperLifecycleCallbacks(e,t,n){n.view.destroyMethod.addStmts(o.b.ngOnDestroy(e.directive,t)),n.view.detachMethod.addStmts(o.b.ngOnDetach(e.hostProperties,t,r.c,n.compViewExpr||r.c,n.renderNode))}function bindInjectableDestroyLifecycleCallbacks(e,t,n){var o=n.view.destroyMethod;o.resetDebugInfo(n.nodeIndex,n.sourceAst),e.providerType!==a.a.Directive&&e.providerType!==a.a.Component&&e.lifecycleHooks.indexOf(i.H.OnDestroy)!==-1&&o.addStmt(t.callMethod("ngOnDestroy",[]).toStmt())}function bindPipeDestroyLifecycleCallbacks(e,t,n){var o=n.destroyMethod;e.type.lifecycleHooks.indexOf(i.H.OnDestroy)!==-1&&o.addStmt(t.callMethod("ngOnDestroy",[]).toStmt())}var o=n(73),r=n(10),i=n(17),a=n(48),s=n(175);t.b=bindDirectiveAfterContentLifecycleCallbacks,t.c=bindDirectiveAfterViewLifecycleCallbacks,t.d=bindDirectiveWrapperLifecycleCallbacks,t.e=bindInjectableDestroyLifecycleCallbacks,t.a=bindPipeDestroyLifecycleCallbacks;var u=r.c.prop("numberOfChecks").identical(new r.E(0));r.p(s.b.throwOnChange)},function(e,t,n){"use strict";function bindRenderText(e,t,i){var a=n.i(o.a)(i),s=n.i(r.a)(i,i,i.componentContext,e.value,a.bindingId);return s?(i.detectChangesRenderPropertiesMethod.resetDebugInfo(t.nodeIndex,e),void i.detectChangesRenderPropertiesMethod.addStmts(n.i(o.b)(s,a.expression,p.b.throwOnChange,[l.c.prop("renderer").callMethod("setText",[t.renderNode,s.currValExpr]).toStmt()]))):null}function bindRenderInputs(e,t,i,s){var c=s.view,f=s.renderNode;e.forEach(function(e){var h=n.i(o.a)(c);c.detectChangesRenderPropertiesMethod.resetDebugInfo(s.nodeIndex,e);var m=n.i(r.a)(c,c,s.view.componentContext,e.value,h.bindingId);if(m){var y=[],b=c.detectChangesRenderPropertiesMethod;switch(e.type){case d.e.Property:case d.e.Attribute:case d.e.Class:case d.e.Style:y.push.apply(y,n.i(a.b)(l.c,e,f,m.currValExpr,c.genConfig.logBindingUpdate));break;case d.e.Animation:b=c.animationBindingsMethod;var v=n.i(a.a)(l.c,l.c,e,t,(i?l.c.prop(n.i(g.d)(s.nodeIndex)):l.d(n.i(u.e)(u.b.noop))).callMethod(l.x.Bind,[l.c]),s.renderNode,m.currValExpr,h.expression),_=v.updateStmts,E=v.detachStmts;y.push.apply(y,_),c.detachMethod.addStmts(E)}b.addStmts(n.i(o.b)(m,h.expression,p.b.throwOnChange,y))}})}function bindDirectiveHostProps(e,t,o,r,a){var c=e.hostProperties.filter(function(e){return e.needsRuntimeSecurityContext}).map(function(e){var t;switch(e.type){case d.e.Property:t=a.securityContext(r,e.name,!1);break;case d.e.Attribute:t=a.securityContext(r,e.name,!0);break;default:throw new Error("Illegal state: Only property / attribute bindings can have an unknown security context! Binding "+e.name)}return n.i(i.b)(u.b.SecurityContext,t)});o.view.detectChangesRenderPropertiesMethod.addStmts(s.b.checkHost(e.hostProperties,t,l.c,o.compViewExpr||l.c,o.renderNode,p.b.throwOnChange,c))}function bindDirectiveInputs(e,t,o,i){var a=i.view,u=a.detectChangesInInputsMethod;u.resetDebugInfo(i.nodeIndex,i.sourceAst),e.inputs.forEach(function(e,s){var c=i.nodeIndex+"_"+o+"_"+s;u.resetDebugInfo(i.nodeIndex,e);var d=n.i(r.a)(a,a,a.componentContext,e.value,c);d&&(u.addStmts(d.stmts),u.addStmt(t.callMethod("check_"+e.directiveName,[d.currValExpr,p.b.throwOnChange,d.forceUpdate||l.f(!1)]).toStmt()))});var d=e.directive.isComponent&&!n.i(c.K)(e.directive.changeDetection),g=s.b.ngDoCheck(t,l.c,i.renderNode,p.b.throwOnChange),f=d?new l.e(g,[i.compViewExpr.callMethod("markAsCheckOnce",[]).toStmt()]):g.toStmt();u.addStmt(f)}var o=n(352),r=n(122),i=n(46),a=n(353),s=n(73),u=n(19),l=n(10),c=n(17),d=n(48),p=n(175),g=n(89);t.a=bindRenderText,t.b=bindRenderInputs,t.d=bindDirectiveHostProps,t.c=bindDirectiveInputs},function(e,t,n){"use strict";function bindQueryValues(e){var t=[];e.getProviderTokens().forEach(function(n){var o=e.getQueriesFor(n);t.push.apply(t,o.map(function(e){return new r(e,n)}))}),Object.keys(e.referenceTokens).forEach(function(n){var o={value:n};t.push.apply(t,e.getQueriesFor(o).map(function(e){return new r(e,o)}))}),t.forEach(function(t){var r;if(t.read.identifier)r=e.instances.get(n.i(o.a)(t.read));else{var i=e.referenceTokens[t.read.value];r=i?e.instances.get(n.i(o.a)(i)):e.elementRef}r&&t.query.addValue(r,e.view)})}var o=n(14);t.a=bindQueryValues;var r=function(){function _QueryWithRead(e,t){this.query=e,this.read=e.meta.read||t}return _QueryWithRead}()},function(e,t,n){"use strict";function bindView(e,t,o){var i=new l(e,o);n.i(r.g)(i,t),e.pipes.forEach(function(e){n.i(a.a)(e.meta,e.instance,e.view)})}var o=n(14),r=n(48),i=n(635),a=n(636),s=n(637),u=n(638);t.a=bindView;var l=function(){function ViewBinderVisitor(e,t){this.view=e,this._schemaRegistry=t,this._nodeIndex=0}return ViewBinderVisitor.prototype.visitBoundText=function(e,t){var o=this.view.nodes[this._nodeIndex++];return n.i(s.a)(e,o,this.view),null},ViewBinderVisitor.prototype.visitText=function(e,t){return this._nodeIndex++,null},ViewBinderVisitor.prototype.visitNgContent=function(e,t){return null},ViewBinderVisitor.prototype.visitElement=function(e,t){var l=this,c=this.view.nodes[this._nodeIndex++];n.i(u.a)(c);var d=n.i(i.a)(e.outputs,e.directives,c,!0);return n.i(s.b)(e.inputs,e.outputs,d,c),e.directives.forEach(function(t,o){var r=c.directiveWrapperInstance.get(t.directive.type.reference);n.i(s.c)(t,r,o,c),n.i(s.d)(t,r,c,e.name,l._schemaRegistry)}),n.i(r.g)(this,e.children,c),e.directives.forEach(function(e){var t=c.instances.get(e.directive.type.reference),o=c.directiveWrapperInstance.get(e.directive.type.reference);n.i(a.b)(e.directive,t,c),n.i(a.c)(e.directive,t,c),n.i(a.d)(e,o,c)}),e.providers.forEach(function(e){var t=c.instances.get(n.i(o.a)(e.token));n.i(a.e)(e,t,c)}),null},ViewBinderVisitor.prototype.visitEmbeddedTemplate=function(e,t){var r=this.view.nodes[this._nodeIndex++];return n.i(u.a)(r),n.i(i.a)(e.outputs,e.directives,r,!1),e.directives.forEach(function(e,t){var o=r.instances.get(e.directive.type.reference),i=r.directiveWrapperInstance.get(e.directive.type.reference);n.i(s.c)(e,i,t,r),n.i(a.b)(e.directive,o,r),n.i(a.c)(e.directive,o,r),n.i(a.d)(e,i,r)}),e.providers.forEach(function(e){var t=r.instances.get(n.i(o.a)(e.token));n.i(a.e)(e,t,r)}),bindView(r.embeddedView,e.children,this._schemaRegistry),null},ViewBinderVisitor.prototype.visitAttr=function(e,t){return null},ViewBinderVisitor.prototype.visitDirective=function(e,t){return null},ViewBinderVisitor.prototype.visitEvent=function(e,t){return null},ViewBinderVisitor.prototype.visitReference=function(e,t){return null},ViewBinderVisitor.prototype.visitVariable=function(e,t){return null},ViewBinderVisitor.prototype.visitDirectiveProperty=function(e,t){return null},ViewBinderVisitor.prototype.visitElementProperty=function(e,t){return null},ViewBinderVisitor}()},function(e,t,n){"use strict";function buildView(e,t,o){var r=new A(e,o),i=e.declarationElement.isNull()?e.declarationElement:e.declarationElement.parent;return n.i(p.g)(r,t,i),e.viewType!==d.l.EMBEDDED&&e.viewType!==d.l.HOST||(e.lastRenderNode=r.getOrCreateLastRenderNode()),r.nestedViewCount}function finishView(e,t){e.nodes.forEach(function(e){e instanceof g.a&&(e.finish(),e.hasEmbeddedView&&finishView(e.embeddedView,t))}),e.finish(),createViewTopLevelStmts(e,t)}function _getOuterContainerOrSelf(e){for(var t=e.view;_isNgContainer(e.parent,t);)e=e.parent;return e}function _getOuterContainerParentOrSelf(e){for(var t=e.view;_isNgContainer(e,t);)e=e.parent;return e}function _isNgContainer(e,t){return!e.isNull()&&e.sourceAst.name===E&&e.view===t}function _mergeHtmlAndDirectiveAttrs(e,t){var o={};Object.keys(e).forEach(function(t){o[t]=e[t]}),t.forEach(function(e){Object.keys(e.hostAttributes).forEach(function(t){var r=e.hostAttributes[t],i=o[t];o[t]=n.i(s.f)(i)?mergeAttributeValue(t,i,r):r})});var r=[];return Object.keys(o).sort().forEach(function(e){r.push(e,o[e])}),r}function _readHtmlAttrs(e){var t={};return e.forEach(function(e){t[e.name]=e.value}),t}function mergeAttributeValue(e,t,n){return e==v||e==_?t+" "+n:n}function createViewTopLevelStmts(e,t){var o=c.k;e.genConfig.genDebugInfo&&(o=c.g("nodeDebugInfos_"+n.i(r.c)(e.component.type)+e.viewIndex),t.push(o.set(c.n(e.nodes.map(createStaticNodeDebugInfo),new c.u(c.B(n.i(u.e)(u.b.StaticNodeDebugInfo)),[c.J.Const]))).toDeclStmt(null,[c.b.Final])));var i=c.g("renderType_"+n.i(r.c)(e.component.type));if(0===e.viewIndex){var a=void 0;a=e.component.template.templateUrl==n.i(r.m)(e.component.type)?n.i(r.m)(e.component.type)+" class "+n.i(r.c)(e.component.type)+" - inline template":e.component.template.templateUrl,t.push(i.set(c.d(n.i(u.e)(u.b.createRenderComponentType)).callFn([e.genConfig.genDebugInfo?c.f(a):c.f(""),c.f(e.component.template.ngContentSelectors.length),h.d.fromValue(e.component.template.encapsulation),e.styles,c.o(e.animations.map(function(e){return[e.name,e.fnExp]}),null,!0)])).toDeclStmt(c.B(n.i(u.e)(u.b.RenderComponentType))))}var s=createViewClass(e,i,o);t.push(s)}function createStaticNodeDebugInfo(e){var t=e instanceof g.a?e:null,o=[],r=c.k,i=[];return n.i(s.f)(t)&&(o=t.getProviderTokens().map(function(e){return n.i(a.c)(e)}),n.i(s.f)(t.component)&&(r=n.i(a.c)(n.i(u.c)(t.component.type))),Object.keys(t.referenceTokens).forEach(function(e){var o=t.referenceTokens[e];i.push([e,n.i(s.f)(o)?n.i(a.c)(o):c.k])})),c.d(n.i(u.e)(u.b.StaticNodeDebugInfo)).instantiate([c.n(o,new c.u(c.h,[c.J.Const])),r,c.o(i,new c.v(c.h,[c.J.Const]))],c.B(n.i(u.e)(u.b.StaticNodeDebugInfo),null,[c.J.Const]))}function createViewClass(e,t,o){var r=[new c.r(h.e.viewUtils.name,c.B(n.i(u.e)(u.b.ViewUtils))),new c.r(h.e.parentView.name,c.B(n.i(u.e)(u.b.AppView),[c.h])),new c.r(h.e.parentIndex.name,c.U),new c.r(h.e.parentElement.name,c.h)],i=[c.g(e.className),t,h.f.fromValue(e.viewType),h.e.viewUtils,h.e.parentView,h.e.parentIndex,h.e.parentElement,h.g.fromValue(getChangeDetectionMode(e))];e.genConfig.genDebugInfo&&i.push(o),e.viewType===d.l.EMBEDDED&&(r.push(new c.r("declaredViewContainer",c.B(n.i(u.e)(u.b.ViewContainer)))),i.push(c.g("declaredViewContainer")));var a=[new c.z("createInternal",[new c.r(S.name,c.F)],generateCreateMethod(e),c.B(n.i(u.e)(u.b.ComponentRef),[c.h])),new c.z("injectorGetInternal",[new c.r(h.a.token.name,c.h),new c.r(h.a.requestNodeIndex.name,c.U),new c.r(h.a.notFoundResult.name,c.h)],addReturnValuefNotEmpty(e.injectorGetMethod.finish(),h.a.notFoundResult),c.h),new c.z("detectChangesInternal",[new c.r(h.b.throwOnChange.name,c.D)],generateDetectChangesMethod(e)),new c.z("dirtyParentQueriesInternal",[],e.dirtyParentQueriesMethod.finish()),new c.z("destroyInternal",[],generateDestroyMethod(e)),new c.z("detachInternal",[],e.detachMethod.finish()),generateVisitRootNodesMethod(e),generateVisitProjectableNodesMethod(e),generateCreateEmbeddedViewsMethod(e)].filter(function(e){return e.body.length>0}),s=e.genConfig.genDebugInfo?u.b.DebugAppView:u.b.AppView,p=n.i(l.a)({name:e.className,parent:c.d(n.i(u.e)(s),[getContextType(e)]),parentArgs:i,ctorParams:r,builders:[{methods:a},e]});return p}function generateDestroyMethod(e){var t=[];return e.viewContainers.forEach(function(e){
t.push(e.callMethod("destroyNestedViews",[]).toStmt())}),e.viewChildren.forEach(function(e){t.push(e.callMethod("destroy",[]).toStmt())}),t.push.apply(t,e.destroyMethod.finish()),t}function generateCreateMethod(e){var t=c.k,o=[];e.viewType===d.l.COMPONENT&&(t=h.c.renderer.callMethod("createViewRoot",[c.c.prop("parentElement")]),o=[T.set(t).toDeclStmt(c.B(e.genConfig.renderTypes.renderNode),[c.b.Final])]);var r;if(e.viewType===d.l.HOST){var i=e.nodes[0];r=c.d(n.i(u.e)(u.b.ComponentRef_),[c.h]).instantiate([c.f(i.nodeIndex),c.c,i.renderNode,i.getComponent()])}else r=c.k;var a=h.c.renderer.cast(c.h).prop("directRenderer").conditional(c.k,c.n(e.nodes.map(function(e){return e.renderNode})));return o.concat(e.createMethod.finish(),[c.c.callMethod("init",[e.lastRenderNode,a,e.disposables.length?c.n(e.disposables):c.k]).toStmt(),new c.t(r)])}function generateDetectChangesMethod(e){var t=[];if(e.animationBindingsMethod.isEmpty()&&e.detectChangesInInputsMethod.isEmpty()&&e.updateContentQueriesMethod.isEmpty()&&e.afterContentLifecycleCallbacksMethod.isEmpty()&&e.detectChangesRenderPropertiesMethod.isEmpty()&&e.updateViewQueriesMethod.isEmpty()&&e.afterViewLifecycleCallbacksMethod.isEmpty()&&0===e.viewContainers.length&&0===e.viewChildren.length)return t;t.push.apply(t,e.animationBindingsMethod.finish()),t.push.apply(t,e.detectChangesInInputsMethod.finish()),e.viewContainers.forEach(function(e){t.push(e.callMethod("detectChangesInNestedViews",[h.b.throwOnChange]).toStmt())});var o=e.updateContentQueriesMethod.finish().concat(e.afterContentLifecycleCallbacksMethod.finish());o.length>0&&t.push(new c.e(c.p(h.b.throwOnChange),o)),t.push.apply(t,e.detectChangesRenderPropertiesMethod.finish()),e.viewChildren.forEach(function(e){t.push(e.callMethod("internalDetectChanges",[h.b.throwOnChange]).toStmt())});var r=e.updateViewQueriesMethod.finish().concat(e.afterViewLifecycleCallbacksMethod.finish());r.length>0&&t.push(new c.e(c.p(h.b.throwOnChange),r));var a=[],s=c.i(t);return s.has(h.b.changed.name)&&a.push(h.b.changed.set(c.f(!0)).toDeclStmt(c.D)),s.has(h.b.changes.name)&&a.push(h.b.changes.set(c.k).toDeclStmt(new c.v(c.B(n.i(u.e)(u.b.SimpleChange))))),a.push.apply(a,n.i(i.d)(t)),a.concat(t)}function addReturnValuefNotEmpty(e,t){return e.length>0?e.concat([new c.t(t)]):e}function getContextType(e){return e.viewType===d.l.COMPONENT?c.B(e.component.type):c.h}function getChangeDetectionMode(e){var t;return t=e.viewType===d.l.COMPONENT?n.i(d.K)(e.component.changeDetection)?d.p.CheckAlways:d.p.CheckOnce:d.p.CheckAlways}function generateVisitRootNodesMethod(e){var t=c.g("cb"),n=c.g("ctx"),o=generateVisitNodesStmts(e.rootNodes,t,n);return new c.z("visitRootNodesInternal",[new c.r(t.name,c.h),new c.r(n.name,c.h)],o)}function generateVisitProjectableNodesMethod(e){var t=c.g("nodeIndex"),n=c.g("ngContentIndex"),o=c.g("cb"),r=c.g("ctx"),i=[];return e.nodes.forEach(function(e){e instanceof g.a&&e.component&&e.contentNodesByNgContentIndex.forEach(function(a,s){i.push(new c.e(t.equals(c.f(e.nodeIndex)).and(n.equals(c.f(s))),generateVisitNodesStmts(a,o,r)))})}),new c.z("visitProjectableNodesInternal",[new c.r(t.name,c.U),new c.r(n.name,c.U),new c.r(o.name,c.h),new c.r(r.name,c.h)],i)}function generateVisitNodesStmts(e,t,n){var o=[];return e.forEach(function(e){switch(e.type){case f.b.Node:o.push(t.callFn([e.expr,n]).toStmt());break;case f.b.ViewContainer:o.push(t.callFn([e.expr.prop("nativeElement"),n]).toStmt()),o.push(e.expr.callMethod("visitNestedViewRootNodes",[t,n]).toStmt());break;case f.b.NgContent:o.push(c.c.callMethod("visitProjectedNodes",[c.f(e.ngContentIndex),t,n]).toStmt())}}),o}function generateCreateEmbeddedViewsMethod(e){var t=c.g("nodeIndex"),o=[];return e.nodes.forEach(function(e){e instanceof g.a&&e.embeddedView&&o.push(new c.e(t.equals(c.f(e.nodeIndex)),[new c.t(e.embeddedView.classExpr.instantiate([h.c.viewUtils,c.c,c.f(e.nodeIndex),e.renderNode,e.viewContainer]))]))}),o.length>0&&o.push(new c.t(c.k)),new c.z("createEmbeddedViewInternal",[new c.r(t.name,c.U)],o,c.B(n.i(u.e)(u.b.AppView),[c.h]))}var o=n(1),r=n(14),i=n(122),a=n(46),s=n(7),u=n(19),l=n(248),c=n(10),d=n(17),p=n(48),g=n(368),f=n(370),h=n(175),m=n(253),y=n(89);t.a=buildView,t.b=finishView;var b="$implicit",v="class",_="style",E="ng-container",T=c.g("parentRenderNode"),S=c.g("rootSelector"),A=function(){function ViewBuilderVisitor(e,t){this.view=e,this.targetDependencies=t,this.nestedViewCount=0}return ViewBuilderVisitor.prototype._isRootNode=function(e){return e.view!==this.view},ViewBuilderVisitor.prototype._addRootNodeAndProject=function(e){var t=_getOuterContainerOrSelf(e),o=t.parent,r=t.sourceAst.ngContentIndex,i=e instanceof g.a&&e.hasViewContainer?e.viewContainer:null;this._isRootNode(o)?this.view.viewType!==d.l.COMPONENT&&this.view.rootNodes.push(new f.a(i?f.b.ViewContainer:f.b.Node,i||e.renderNode)):n.i(s.f)(o.component)&&n.i(s.f)(r)&&o.addContentNode(r,new f.a(i?f.b.ViewContainer:f.b.Node,i||e.renderNode))},ViewBuilderVisitor.prototype._getParentRenderNode=function(e){return e=_getOuterContainerParentOrSelf(e),this._isRootNode(e)?this.view.viewType===d.l.COMPONENT?T:c.k:n.i(s.f)(e.component)&&e.component.template.encapsulation!==o.ViewEncapsulation.Native?c.k:e.renderNode},ViewBuilderVisitor.prototype.getOrCreateLastRenderNode=function(){var e=this.view;if(0===e.rootNodes.length||e.rootNodes[e.rootNodes.length-1].type!==f.b.Node){var t="_el_"+e.nodes.length;e.fields.push(new c.a(t,c.B(e.genConfig.renderTypes.renderElement))),e.createMethod.addStmt(c.c.prop(t).set(h.c.renderer.callMethod("createTemplateAnchor",[c.k,c.k])).toStmt()),e.rootNodes.push(new f.a(f.b.Node,c.c.prop(t)))}return e.rootNodes[e.rootNodes.length-1].expr},ViewBuilderVisitor.prototype.visitBoundText=function(e,t){return this._visitText(e,"",t)},ViewBuilderVisitor.prototype.visitText=function(e,t){return this._visitText(e,e.value,t)},ViewBuilderVisitor.prototype._visitText=function(e,t,n){var o="_text_"+this.view.nodes.length;this.view.fields.push(new c.a(o,c.B(this.view.genConfig.renderTypes.renderText)));var r=c.c.prop(o),i=new g.b(n,this.view,this.view.nodes.length,r,e),a=c.c.prop(o).set(h.c.renderer.callMethod("createText",[this._getParentRenderNode(n),c.f(t),this.view.createMethod.resetDebugInfoExpr(this.view.nodes.length,e)])).toStmt();return this.view.nodes.push(i),this.view.createMethod.addStmt(a),this._addRootNodeAndProject(i),r},ViewBuilderVisitor.prototype.visitNgContent=function(e,t){this.view.createMethod.resetDebugInfo(null,e);var o=this._getParentRenderNode(t);return o!==c.k?this.view.createMethod.addStmt(c.c.callMethod("projectNodes",[o,c.f(e.index)]).toStmt()):this._isRootNode(t)?this.view.viewType!==d.l.COMPONENT&&this.view.rootNodes.push(new f.a(f.b.NgContent,null,e.index)):n.i(s.f)(t.component)&&n.i(s.f)(e.ngContentIndex)&&t.addContentNode(e.ngContentIndex,new f.a(f.b.NgContent,null,e.index)),null},ViewBuilderVisitor.prototype.visitElement=function(e,t){var o,r=this.view.nodes.length,i=this.view.createMethod.resetDebugInfoExpr(r,e),l=e.directives.map(function(e){return e.directive}),f=l.find(function(e){return e.isComponent});if(e.name===E)o=h.c.renderer.callMethod("createTemplateAnchor",[this._getParentRenderNode(t),i]);else{var b=_readHtmlAttrs(e.attrs),v=n.i(a.d)(_mergeHtmlAndDirectiveAttrs(b,l).map(function(e){return c.f(e)}));o=0===r&&this.view.viewType===d.l.HOST?c.d(n.i(u.e)(u.b.selectOrCreateRenderHostElement)).callFn([h.c.renderer,c.f(e.name),v,S,i]):c.d(n.i(u.e)(u.b.createRenderElement)).callFn([h.c.renderer,this._getParentRenderNode(t),c.f(e.name),v,i])}var _="_el_"+r;this.view.fields.push(new c.a(_,c.B(this.view.genConfig.renderTypes.renderElement))),this.view.createMethod.addStmt(c.c.prop(_).set(o).toStmt());var T=c.c.prop(_),A=new g.a(t,this.view,r,T,e,f,l,e.providers,e.hasViewContainer,(!1),e.references);this.view.nodes.push(A);var M=null;if(n.i(s.f)(f)){var C={reference:null};this.targetDependencies.push(new m.c(f.type,n.i(y.c)(f,0),C)),M=c.c.prop("compView_"+r),this.view.fields.push(new c.a(M.name,c.B(n.i(u.e)(u.b.AppView),[c.B(f.type)]))),this.view.viewChildren.push(M),A.setComponentView(M),this.view.createMethod.addStmt(M.set(c.d(C).instantiate([h.c.viewUtils,c.c,c.f(r),T])).toStmt())}return A.beforeChildren(),this._addRootNodeAndProject(A),n.i(p.g)(this,e.children,A),A.afterChildren(this.view.nodes.length-r-1),n.i(s.f)(M)&&this.view.createMethod.addStmt(M.callMethod("create",[A.getComponent()]).toStmt()),null},ViewBuilderVisitor.prototype.visitEmbeddedTemplate=function(e,t){var n=this.view.nodes.length,o="_anchor_"+n;this.view.fields.push(new c.a(o,c.B(this.view.genConfig.renderTypes.renderComment))),this.view.createMethod.addStmt(c.c.prop(o).set(h.c.renderer.callMethod("createTemplateAnchor",[this._getParentRenderNode(t),this.view.createMethod.resetDebugInfoExpr(n,e)])).toStmt());var r=c.c.prop(o),i=e.variables.map(function(e){return[e.value.length>0?e.value:b,e.name]}),a=e.directives.map(function(e){return e.directive}),s=new g.a(t,this.view,n,r,e,null,a,e.providers,e.hasViewContainer,(!0),e.references);this.view.nodes.push(s),this.nestedViewCount++;var u=new f.c(this.view.component,this.view.genConfig,this.view.pipeMetas,c.k,this.view.animations,this.view.viewIndex+this.nestedViewCount,s,i,this.targetDependencies);return this.nestedViewCount+=buildView(u,e.children,this.targetDependencies),s.beforeChildren(),this._addRootNodeAndProject(s),s.afterChildren(0),null},ViewBuilderVisitor.prototype.visitAttr=function(e,t){return null},ViewBuilderVisitor.prototype.visitDirective=function(e,t){return null},ViewBuilderVisitor.prototype.visitEvent=function(e,t){return null},ViewBuilderVisitor.prototype.visitReference=function(e,t){return null},ViewBuilderVisitor.prototype.visitVariable=function(e,t){return null},ViewBuilderVisitor.prototype.visitDirectiveProperty=function(e,t){return null},ViewBuilderVisitor.prototype.visitElementProperty=function(e,t){return null},ViewBuilderVisitor}()},function(e,t,n){"use strict";function prepareFinalAnimationStyles(e,t,o){void 0===o&&(o=null);var i={};return Object.keys(t).forEach(function(e){var n=t[e];i[e]=n==a.a?o:n.toString()}),Object.keys(e).forEach(function(e){n.i(r.d)(i[e])||(i[e]=o)}),i}function balanceAnimationKeyframes(e,t,i){var s=i.length-1,u=i[0],l=flattenStyles(u.styles.styles),c={},d=!1;Object.keys(e).forEach(function(t){var n=e[t];l[t]||(l[t]=n,c[t]=n,d=!0)});var p=o.e.merge({},l),g=i[s];g.styles.styles.unshift(t);var f=flattenStyles(g.styles.styles),h={},m=!1;return Object.keys(p).forEach(function(e){n.i(r.d)(f[e])||(h[e]=a.a,m=!0)}),m&&g.styles.styles.push(h),Object.keys(f).forEach(function(e){n.i(r.d)(l[e])||(c[e]=a.a,d=!0)}),d&&u.styles.styles.push(c),collectAndResolveStyles(e,[t]),i}function clearStyles(e){var t={};return Object.keys(e).forEach(function(e){t[e]=null}),t}function collectAndResolveStyles(e,t){return t.map(function(t){var o={};return Object.keys(t).forEach(function(s){var u=t[s];u==i.a&&(u=e[s],n.i(r.d)(u)||(u=a.a)),e[s]=u,o[s]=u}),o})}function renderStyles(e,t,n){Object.keys(n).forEach(function(o){t.setElementStyle(e,o,n[o])})}function flattenStyles(e){var t={};return e.forEach(function(e){Object.keys(e).forEach(function(n){t[n]=e[n]})}),t}var o=n(132),r=n(8),i=n(371),a=n(378);t.a=prepareFinalAnimationStyles,t.b=balanceAnimationKeyframes,t.d=clearStyles,t.f=collectAndResolveStyles,t.e=renderStyles,t.c=flattenStyles},function(e,t,n){"use strict";var o=n(377);n.d(t,"a",function(){return r});var r=function(){function AnimationTransition(e,t,n,o){this._player=e,this._fromState=t,this._toState=n,this._totalTime=o}return AnimationTransition.prototype._createEvent=function(e){return new o.a({fromState:this._fromState,toState:this._toState,totalTime:this._totalTime,phaseName:e})},AnimationTransition.prototype.onStart=function(e){var t=this,n=Zone.current.wrap(function(){return e(t._createEvent("start"))},"player.onStart");this._player.onStart(n)},AnimationTransition.prototype.onDone=function(e){var t=this,n=Zone.current.wrap(function(){return e(t._createEvent("done"))},"player.onDone");this._player.onDone(n)},AnimationTransition}()},function(e,t,n){"use strict";var o=n(8);n.d(t,"a",function(){return r});var r=function(){function ViewAnimationMap(){this._map=new Map,this._allPlayers=[]}return ViewAnimationMap.prototype.find=function(e,t){var r=this._map.get(e);if(n.i(o.d)(r))return r[t]},ViewAnimationMap.prototype.findAllPlayersByElement=function(e){var t=this._map.get(e);return t?Object.keys(t).map(function(e){return t[e]}):[]},ViewAnimationMap.prototype.set=function(e,t,r){var i=this._map.get(e);n.i(o.d)(i)||(i={});var a=i[t];n.i(o.d)(a)&&this.remove(e,t),i[t]=r,this._allPlayers.push(r),this._map.set(e,i)},ViewAnimationMap.prototype.getAllPlayers=function(){return this._allPlayers},ViewAnimationMap.prototype.remove=function(e,t,n){void 0===n&&(n=null);var o=this._map.get(e);if(o){var r=o[t];if(!n||r===n){delete o[t];var i=this._allPlayers.indexOf(r);this._allPlayers.splice(i,1),0===Object.keys(o).length&&this._map.delete(e)}}},ViewAnimationMap}()},function(e,t,n){"use strict";function _iterableDiffersFactory(){return s.b}function _keyValueDiffersFactory(){return s.c}function _localeFactory(e){return e||"en-US"}var o=n(374),r=n(255),i=n(256),a=n(176),s=n(177),u=n(108),l=n(386),c=n(133),d=n(184),p=n(394);n.d(t,"a",function(){return g});var g=function(){function ApplicationModule(){}return ApplicationModule.decorators=[{type:p.a,args:[{providers:[i.d,{provide:i.e,useExisting:i.d},r.a,c.b,a.c,d.ViewUtils,o.a,{provide:s.d,useFactory:_iterableDiffersFactory},{provide:s.e,useFactory:_keyValueDiffersFactory},{provide:l.a,useFactory:_localeFactory,deps:[[new u.b(l.a),new u.c,new u.e]]}]}]}],ApplicationModule.ctorParameters=function(){return[]},ApplicationModule}()},function(e,t,n){"use strict";var o=n(177);n.d(t,"a",function(){return o.g}),n.d(t,"b",function(){return o.h}),n.d(t,"g",function(){return o.k}),n.d(t,"h",function(){return o.l}),n.d(t,"d",function(){return o.d}),n.d(t,"i",function(){return o.m}),n.d(t,"e",function(){return o.e}),n.d(t,"c",function(){return o.i}),n.d(t,"f",function(){return o.j})},function(e,t,n){"use strict";var o=n(394),r=n(400),i=n(663),a=n(41),s=n(256),u=n(176),l=n(255),c=n(664),d=n(662),p=n(650),g=n(383),f=n(268),h=n(645),m=n(660),y=n(386),b=n(644),v=n(185),_=n(269),E=n(263),T=n(385),S=n(647),A=n(378),M=n(377),C=n(254),k=n(376),R=n(373),N=n(399);n.d(t,"f",function(){return o.c}),n.d(t,"Z",function(){return o.o}),n.d(t,"_0",function(){return o.p}),n.d(t,"F",function(){return o.h}),n.d(t,"_1",function(){return o.q}),n.d(t,"_2",function(){return o.r}),n.d(t,"G",function(){return o.i}),n.d(t,"H",function(){return o.j}),n.d(t,"D",function(){return o.f}),n.d(t,"E",function(){return o.g}),n.d(t,"B",function(){return o.d}),n.d(t,"C",function(){return o.e}),n.d(t,"J",function(){return o.k}),n.d(t,"_57",function(){return o.s}),n.d(t,"_58",function(){return o.t}),n.d(t,"_59",function(){return o.u}),n.d(t,"_60",function(){return o.v}),n.d(t,"_61",function(){return o.w}),n.d(t,"_62",function(){return o.x}),n.d(t,"_63",function(){return o.y}),n.d(t,"_64",function(){return o.z}),n.d(t,"Y",function(){return o.n}),n.d(t,"X",function(){return o.m}),n.d(t,"I",function(){return o.a}),n.d(t,"c",function(){return o.b}),n.d(t,"V",function(){return o.l}),n.d(t,"a",function(){return r.b}),n.d(t,"_36",function(){return r.a}),n.d(t,"_66",function(){return i.a}),n.d(t,"_67",function(){return a.k}),n.d(t,"A",function(){return a.h}),n.d(t,"q",function(){return a.g}),n.d(t,"_14",function(){return a.f}),n.d(t,"_68",function(){return a.l}),n.d(t,"_69",function(){return a.m}),n.d(t,"w",function(){return a.a}),n.d(t,"y",function(){return a.c}),n.d(t,"x",function(){return a.d}),n.d(t,"R",function(){return a.b}),n.d(t,"T",function(){return a.j}),n.d(t,"U",function(){return a.e}),n.d(t,"S",function(){return a.i}),n.d(t,"_65",function(){return s.l}),n.d(t,"_39",function(){return s.j}),n.d(t,"_38",function(){return s.i}),n.d(t,"_40",function(){return s.b}),n.d(t,"_28",function(){return s.e}),n.d(t,"_41",function(){return s.k}),n.d(t,"e",function(){return s.f}),n.d(t,"_16",function(){return s.c}),n.d(t,"_31",function(){return s.g}),n.d(t,"_37",function(){return s.h}),n.d(t,"_27",function(){return u.e}),n.d(t,"z",function(){return u.d}),n.d(t,"_19",function(){return u.a}),n.d(t,"_42",function(){return u.b}),n.d(t,"_43",function(){return l.b}),n.d(t,"_44",function(){return l.a}),n.d(t,"_26",function(){return c.a}),n.d(t,"j",function(){return d.a}),n.d(t,"r",function(){return d.b}),n.d(t,"_30",function(){return d.c}),n.d(t,"_15",function(){return p.k}),n.d(t,"_12",function(){return p.j}),n.d(t,"_18",function(){return p.l}),n.d(t,"_11",function(){return p.i}),n.d(t,"n",function(){return p.f}),n.d(t,"o",function(){return p.g}),n.d(t,"m",function(){return p.e}),n.d(t,"g",function(){return p.a}),n.d(t,"p",function(){return p.h}),n.d(t,"_70",function(){return p.m}),n.d(t,"_71",function(){return p.n}),n.d(t,"_72",function(){return p.o}),n.d(t,"k",function(){return p.c}),n.d(t,"_73",function(){return p.p}),n.d(t,"_74",function(){return p.q}),n.d(t,"l",function(){return p.d}),n.d(t,"h",function(){return p.b}),n.d(t,"_75",function(){return p.r}),n.d(t,"_76",function(){return p.s}),n.d(t,"_45",function(){return g.a}),n.d(t,"_47",function(){return g.g}),n.d(t,"_29",function(){return g.c}),n.d(t,"_46",function(){return g.d}),n.d(t,"_34",function(){return f.a}),n.d(t,"_48",function(){return f.b}),n.d(t,"_25",function(){return f.c}),n.d(t,"i",function(){return h.b}),n.d(t,"_77",function(){return h.g}),n.d(t,"_78",function(){return h.h}),n.d(t,"d",function(){return h.a}),n.d(t,"_79",function(){return h.i}),n.d(t,"_22",function(){return h.e}),n.d(t,"s",function(){return h.c}),n.d(t,"_23",function(){return h.f}),n.d(t,"_21",function(){return h.d}),n.d(t,"_17",function(){return m.a}),n.d(t,"_13",function(){return y.c}),n.d(t,"u",function(){return y.a}),n.d(t,"v",function(){return y.b}),n.d(t,"_35",function(){return b.a}),n.d(t,"_49",function(){return v.b}),n.d(t,"_50",function(){return v.a}),n.d(t,"_51",function(){return v.c}),n.d(t,"_52",function(){return v.d}),n.d(t,"W",function(){return _.b}),n.d(t,"_20",function(){return E.a}),n.d(t,"_33",function(){return T.a}),n.d(t,"b",function(){return S.a}),n.d(t,"_24",function(){return A.a}),n.d(t,"_80",function(){return A.q}),n.d(t,"_81",function(){return A.r}),n.d(t,"K",function(){return A.b}),n.d(t,"L",function(){return A.c}),n.d(t,"_82",function(){return A.s}),n.d(t,"N",function(){return A.e}),n.d(t,"M",function(){return A.d}),n.d(t,"O",function(){return A.f}),n.d(t,"P",function(){return A.g}),n.d(t,"_83",function(){return A.t}),n.d(t,"Q",function(){return A.h}),n.d(t,"_7",function(){return A.m}),n.d(t,"_10",function(){return A.p}),n.d(t,"_9",function(){return A.o}),n.d(t,"_6",function(){return A.l}),n.d(t,"_4",function(){return A.j}),n.d(t,"_8",function(){return A.n}),n.d(t,"_5",function(){return A.k}),n.d(t,"_3",function(){return A.i}),n.d(t,"_53",function(){return M.a}),n.d(t,"_54",function(){return C.b}),n.d(t,"_55",function(){return k.a}),n.d(t,"_56",function(){return R.a}),n.d(t,"_32",function(){return N.a}),n.d(t,"t",function(){return N.b})},function(e,t,n){"use strict";var o=n(371),r=n(372),i=n(373),a=n(254),s=n(375),u=n(641),l=n(376),c=n(642),d=n(176),p=n(178),g=n(179),f=n(258),h=n(648),m=n(262),y=n(133),b=n(264),v=n(181),_=n(387),E=n(389),T=n(390),S=n(391),A=n(655),M=n(656),C=n(183),k=n(184),R=n(395),N=n(396),O=n(265),D=n(397),w=n(266),I=n(267),x=n(109),B=n(270);n.d(t,"a",function(){return L});var L={isDefaultChangeDetectionStrategy:g.c,ChangeDetectorStatus:g.b,constructDependencies:m.b,LifecycleHooks:R.a,LIFECYCLE_HOOKS_VALUES:R.b,ReflectorReader:w.a,CodegenComponentFactoryResolver:v.b,ComponentRef_:b.b,ViewContainer:M.a,AppView:A.a,DebugAppView:A.b,NgModuleInjector:E.a,registerModuleFactory:T.a,ViewType:C.a,view_utils:k,ViewMetadata:N.a,DebugContext:_.a,StaticNodeDebugInfo:_.b,devModeEqual:p.b,UNINITIALIZED:p.a,ValueUnwrapper:p.c,RenderDebugInfo:I.c,TemplateRef_:S.a,ReflectionCapabilities:D.a,makeDecorator:x.b,DebugDomRootRenderer:h.a,Console:f.a,reflector:O.a,Reflector:O.b,NoOpAnimationPlayer:a.a,AnimationPlayer:a.b,AnimationSequencePlayer:s.a,AnimationGroupPlayer:r.a,AnimationKeyframe:i.a,prepareFinalAnimationStyles:u.a,balanceAnimationKeyframes:u.b,flattenStyles:u.c,clearStyles:u.d,renderStyles:u.e,collectAndResolveStyles:u.f,APP_ID_RANDOM_PROVIDER:d.c,AnimationStyles:l.a,ANY_STATE:o.b,DEFAULT_STATE:o.c,EMPTY_STATE:o.d,FILL_STYLE_FLAG:o.a,ComponentStillLoadingError:y.c,isPromise:B.a,isObservable:B.b,AnimationTransition:c.a}},function(e,t,n){"use strict";var o=n(8),r=n(383);n.d(t,"a",function(){return i});var i=function(){function DebugDomRootRenderer(e){this._delegate=e}return DebugDomRootRenderer.prototype.renderComponent=function(e){return new a(this._delegate.renderComponent(e))},DebugDomRootRenderer}(),a=function(){function DebugDomRenderer(e){this._delegate=e}return DebugDomRenderer.prototype.selectRootElement=function(e,t){var o=this._delegate.selectRootElement(e,t),i=new r.a(o,null,t);return n.i(r.b)(i),o},DebugDomRenderer.prototype.createElement=function(e,t,o){var i=this._delegate.createElement(e,t,o),a=new r.a(i,n.i(r.c)(e),o);return a.name=t,n.i(r.b)(a),i},DebugDomRenderer.prototype.createViewRoot=function(e){return this._delegate.createViewRoot(e)},DebugDomRenderer.prototype.createTemplateAnchor=function(e,t){var o=this._delegate.createTemplateAnchor(e,t),i=new r.d(o,n.i(r.c)(e),t);return n.i(r.b)(i),o},DebugDomRenderer.prototype.createText=function(e,t,o){var i=this._delegate.createText(e,t,o),a=new r.d(i,n.i(r.c)(e),o);return n.i(r.b)(a),i},DebugDomRenderer.prototype.projectNodes=function(e,t){var i=n.i(r.c)(e);if(n.i(o.d)(i)&&i instanceof r.a){var a=i;t.forEach(function(e){a.addChild(n.i(r.c)(e))})}this._delegate.projectNodes(e,t)},DebugDomRenderer.prototype.attachViewAfter=function(e,t){var i=n.i(r.c)(e);if(n.i(o.d)(i)){var a=i.parent;if(t.length>0&&n.i(o.d)(a)){var s=[];t.forEach(function(e){return s.push(n.i(r.c)(e))}),a.insertChildrenAfter(i,s)}}this._delegate.attachViewAfter(e,t)},DebugDomRenderer.prototype.detachView=function(e){e.forEach(function(e){var t=n.i(r.c)(e);n.i(o.d)(t)&&n.i(o.d)(t.parent)&&t.parent.removeChild(t)}),this._delegate.detachView(e)},DebugDomRenderer.prototype.destroyView=function(e,t){t=t||[],t.forEach(function(e){n.i(r.e)(n.i(r.c)(e))}),this._delegate.destroyView(e,t)},DebugDomRenderer.prototype.listen=function(e,t,i){var a=n.i(r.c)(e);return n.i(o.d)(a)&&a.listeners.push(new r.f(t,i)),this._delegate.listen(e,t,i)},DebugDomRenderer.prototype.listenGlobal=function(e,t,n){return this._delegate.listenGlobal(e,t,n)},DebugDomRenderer.prototype.setElementProperty=function(e,t,i){var a=n.i(r.c)(e);n.i(o.d)(a)&&a instanceof r.a&&(a.properties[t]=i),this._delegate.setElementProperty(e,t,i)},DebugDomRenderer.prototype.setElementAttribute=function(e,t,i){var a=n.i(r.c)(e);n.i(o.d)(a)&&a instanceof r.a&&(a.attributes[t]=i),this._delegate.setElementAttribute(e,t,i)},DebugDomRenderer.prototype.setBindingDebugInfo=function(e,t,n){this._delegate.setBindingDebugInfo(e,t,n)},DebugDomRenderer.prototype.setElementClass=function(e,t,i){var a=n.i(r.c)(e);n.i(o.d)(a)&&a instanceof r.a&&(a.classes[t]=i),this._delegate.setElementClass(e,t,i)},DebugDomRenderer.prototype.setElementStyle=function(e,t,i){var a=n.i(r.c)(e);n.i(o.d)(a)&&a instanceof r.a&&(a.styles[t]=i),this._delegate.setElementStyle(e,t,i)},DebugDomRenderer.prototype.invokeElementMethod=function(e,t,n){this._delegate.invokeElementMethod(e,t,n)},DebugDomRenderer.prototype.setText=function(e,t){this._delegate.setText(e,t)},DebugDomRenderer.prototype.animate=function(e,t,n,o,r,i,a){return void 0===a&&(a=[]),this._delegate.animate(e,t,n,o,r,i,a)},DebugDomRenderer}()},function(e,t,n){"use strict";function _mapProviders(e,t){for(var n=new Array(e._providers.length),o=0;o<e._providers.length;++o)n[o]=t(e.getProviderAtIndex(o));return n}var o=n(131),r=n(108),i=n(384),a=n(261),s=n(262);n.d(t,"a",function(){return l});var u=new Object,l=function(){function ReflectiveInjector(){}return ReflectiveInjector.resolve=function(e){return n.i(s.a)(e)},ReflectiveInjector.resolveAndCreate=function(e,t){void 0===t&&(t=null);var n=ReflectiveInjector.resolve(e);return ReflectiveInjector.fromResolvedProviders(n,t)},ReflectiveInjector.fromResolvedProviders=function(e,t){return void 0===t&&(t=null),new c(e,t)},ReflectiveInjector.prototype.parent=function(){},ReflectiveInjector.prototype.resolveAndCreateChild=function(e){},ReflectiveInjector.prototype.createChildFromResolved=function(e){},ReflectiveInjector.prototype.resolveAndInstantiate=function(e){},ReflectiveInjector.prototype.instantiateResolved=function(e){},ReflectiveInjector.prototype.get=function(e,t){},ReflectiveInjector}(),c=function(){function ReflectiveInjector_(e,t){void 0===t&&(t=null),this._constructionCounter=0,this._providers=e,this._parent=t;var n=e.length;this.keyIds=new Array(n),this.objs=new Array(n);for(var o=0;o<n;o++)this.keyIds[o]=e[o].key.id,this.objs[o]=u}return ReflectiveInjector_.prototype.get=function(e,t){return void 0===t&&(t=o.a),this._getByKey(a.a.get(e),null,t)},Object.defineProperty(ReflectiveInjector_.prototype,"parent",{get:function(){return this._parent},enumerable:!0,configurable:!0}),ReflectiveInjector_.prototype.resolveAndCreateChild=function(e){var t=l.resolve(e);return this.createChildFromResolved(t)},ReflectiveInjector_.prototype.createChildFromResolved=function(e){var t=new ReflectiveInjector_(e);return t._parent=this,t},ReflectiveInjector_.prototype.resolveAndInstantiate=function(e){return this.instantiateResolved(l.resolve([e])[0])},ReflectiveInjector_.prototype.instantiateResolved=function(e){return this._instantiateProvider(e)},ReflectiveInjector_.prototype.getProviderAtIndex=function(e){if(e<0||e>=this._providers.length)throw new i.d(e);return this._providers[e]},ReflectiveInjector_.prototype._new=function(e){if(this._constructionCounter++>this._getMaxNumberOfObjects())throw new i.e(this,e.key);return this._instantiateProvider(e)},ReflectiveInjector_.prototype._getMaxNumberOfObjects=function(){return this.objs.length},ReflectiveInjector_.prototype._instantiateProvider=function(e){if(e.multiProvider){for(var t=new Array(e.resolvedFactories.length),n=0;n<e.resolvedFactories.length;++n)t[n]=this._instantiate(e,e.resolvedFactories[n]);return t}return this._instantiate(e,e.resolvedFactories[0])},ReflectiveInjector_.prototype._instantiate=function(e,t){var n,o=this,r=t.factory;try{n=t.dependencies.map(function(e){return o._getByReflectiveDependency(e)})}catch(a){throw(a instanceof i.f||a instanceof i.g)&&a.addKey(this,e.key),a}var s;try{s=r.apply(void 0,n)}catch(a){throw new i.g(this,a,a.stack,e.key)}return s},ReflectiveInjector_.prototype._getByReflectiveDependency=function(e){return this._getByKey(e.key,e.visibility,e.optional?null:o.a)},ReflectiveInjector_.prototype._getByKey=function(e,t,n){return e===d?this:t instanceof r.d?this._getByKeySelf(e,n):this._getByKeyDefault(e,n,t)},ReflectiveInjector_.prototype._getObjByKeyId=function(e){for(var t=0;t<this.keyIds.length;t++)if(this.keyIds[t]===e)return this.objs[t]===u&&(this.objs[t]=this._new(this._providers[t])),this.objs[t];return u},ReflectiveInjector_.prototype._throwOrNull=function(e,t){if(t!==o.a)return t;throw new i.h(this,e)},ReflectiveInjector_.prototype._getByKeySelf=function(e,t){var n=this._getObjByKeyId(e.id);return n!==u?n:this._throwOrNull(e,t)},ReflectiveInjector_.prototype._getByKeyDefault=function(e,t,n){var o;for(o=n instanceof r.e?this._parent:this;o instanceof ReflectiveInjector_;){var i=o,a=i._getObjByKeyId(e.id);if(a!==u)return a;o=i._parent}return null!==o?o.get(e.token,t):this._throwOrNull(e,t)},Object.defineProperty(ReflectiveInjector_.prototype,"displayName",{get:function(){var e=_mapProviders(this,function(e){return' "'+e.key.displayName+'" '}).join(", ");return"ReflectiveInjector(providers: ["+e+"])"},enumerable:!0,configurable:!0}),ReflectiveInjector_.prototype.toString=function(){return this.displayName},ReflectiveInjector_}(),d=a.a.get(o.b)},function(e,t,n){"use strict";var o=n(133),r=n(264),i=n(181),a=n(182),s=n(389),u=n(390),l=n(653),c=n(654),d=n(391),p=n(392),g=n(393);n.d(t,"k",function(){return o.e}),n.d(t,"l",function(){return o.a}),n.d(t,"i",function(){return o.d}),n.d(t,"j",function(){return o.b}),n.d(t,"f",function(){return r.a}),n.d(t,"g",function(){return r.c}),n.d(t,"e",function(){return i.a}),n.d(t,"a",function(){return a.a}),n.d(t,"h",function(){return s.b}),n.d(t,"m",function(){return s.c}),n.d(t,"n",function(){return u.b}),n.d(t,"o",function(){return u.c}),n.d(t,"c",function(){return l.a}),n.d(t,"p",function(){return c.a}),n.d(t,"q",function(){return c.b}),n.d(t,"d",function(){return d.b}),n.d(t,"b",function(){return p.b}),n.d(t,"r",function(){return g.b}),n.d(t,"s",function(){return g.c})},function(e,t,n){"use strict";function _recursePlayers(e,t){e instanceof o.a||e instanceof r.a?e.players.forEach(function(e){return _recursePlayers(e,t)}):t.push(e)}var o=n(372),r=n(375),i=n(643);n.d(t,"a",function(){return a});var a=function(){function AnimationViewContext(e){this._animationQueue=e,this._players=new i.a}return AnimationViewContext.prototype.onAllActiveAnimationsDone=function(e){var t=this._players.getAllPlayers();t.length?new o.a(t).onDone(function(){return e()}):e()},AnimationViewContext.prototype.queueAnimation=function(e,t,n){var o=this;this._animationQueue.enqueue(n),this._players.set(e,t,n),n.onDone(function(){return o._players.remove(e,t,n)})},AnimationViewContext.prototype.getAnimationPlayers=function(e,t){void 0===t&&(t=null);var n=[];if(t){var o=this._players.find(e,t);o&&_recursePlayers(o,n)}else this._players.findAllPlayersByElement(e).forEach(function(e){return _recursePlayers(e,n)});return n},AnimationViewContext}()},function(e,t,n){"use strict";var o=n(131);n.d(t,"a",function(){return i});var r=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},i=function(e){function ElementInjector(t,n){e.call(this),this._view=t,this._nodeIndex=n}return r(ElementInjector,e),ElementInjector.prototype.get=function(e,t){return void 0===t&&(t=o.a),this._view.injectorGet(e,this._nodeIndex,t)},ElementInjector}(o.b)},function(e,t,n){"use strict";var o=n(263),r=n(132),i=n(8);n.d(t,"a",function(){return a});var a=function(){function QueryList(){this._dirty=!0,this._results=[],this._emitter=new o.a}return Object.defineProperty(QueryList.prototype,"changes",{get:function(){return this._emitter},enumerable:!0,configurable:!0}),Object.defineProperty(QueryList.prototype,"length",{get:function(){return this._results.length},enumerable:!0,configurable:!0}),Object.defineProperty(QueryList.prototype,"first",{get:function(){return this._results[0]},enumerable:!0,configurable:!0}),Object.defineProperty(QueryList.prototype,"last",{get:function(){return this._results[this.length-1]},enumerable:!0,configurable:!0}),QueryList.prototype.map=function(e){return this._results.map(e)},QueryList.prototype.filter=function(e){return this._results.filter(e)},QueryList.prototype.find=function(e){return this._results.find(e)},QueryList.prototype.reduce=function(e,t){return this._results.reduce(e,t)},QueryList.prototype.forEach=function(e){this._results.forEach(e)},QueryList.prototype.some=function(e){return this._results.some(e)},QueryList.prototype.toArray=function(){return this._results.slice()},QueryList.prototype[n.i(i.f)()]=function(){return this._results[n.i(i.f)()]()},QueryList.prototype.toString=function(){return this._results.toString()},QueryList.prototype.reset=function(e){this._results=r.d.flatten(e),this._dirty=!1},QueryList.prototype.notifyOnChanges=function(){this._emitter.emit(this)},QueryList.prototype.setDirty=function(){this._dirty=!0},Object.defineProperty(QueryList.prototype,"dirty",{get:function(){return this._dirty},enumerable:!0,configurable:!0}),QueryList}()},function(e,t,n){
"use strict";function checkNotEmpty(e,t,n){if(!e)throw new Error("Cannot find '"+n+"' in '"+t+"'");return e}var o=n(41),r=n(133);n.d(t,"b",function(){return s}),n.d(t,"a",function(){return l});var i="#",a="NgFactory",s=function(){function SystemJsNgModuleLoaderConfig(){}return SystemJsNgModuleLoaderConfig}(),u={factoryPathPrefix:"",factoryPathSuffix:".ngfactory"},l=function(){function SystemJsNgModuleLoader(e,t){this._compiler=e,this._config=t||u}return SystemJsNgModuleLoader.prototype.load=function(e){var t=this._compiler instanceof r.b;return t?this.loadFactory(e):this.loadAndCompile(e)},SystemJsNgModuleLoader.prototype.loadAndCompile=function(e){var t=this,o=e.split(i),r=o[0],a=o[1];return void 0===a&&(a="default"),n(527)(r).then(function(e){return e[a]}).then(function(e){return checkNotEmpty(e,r,a)}).then(function(e){return t._compiler.compileModuleAsync(e)})},SystemJsNgModuleLoader.prototype.loadFactory=function(e){var t=e.split(i),o=t[0],r=t[1],s=a;return void 0===r&&(r="default",s=""),n(527)(this._config.factoryPathPrefix+o+this._config.factoryPathSuffix).then(function(e){return e[r+s]}).then(function(e){return checkNotEmpty(e,o,r)})},SystemJsNgModuleLoader.decorators=[{type:o.b}],SystemJsNgModuleLoader.ctorParameters=function(){return[{type:r.b},{type:s,decorators:[{type:o.d}]}]},SystemJsNgModuleLoader}()},function(e,t,n){"use strict";var o=n(177),r=n(131),i=n(8),a=n(185),s=n(651),u=n(387),l=n(652),c=n(388),d=n(393),p=n(183),g=n(184);n.d(t,"a",function(){return b}),n.d(t,"b",function(){return v});var f=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},h=n.i(a.b)("AppView#check(ascii id)"),m=new Object,y=new Object,b=function(){function AppView(e,t,n,o,r,i,a,s,u){void 0===u&&(u=null),this.clazz=e,this.componentType=t,this.type=n,this.viewUtils=o,this.parentView=r,this.parentIndex=i,this.parentElement=a,this.cdMode=s,this.declaredViewContainer=u,this.numberOfChecks=0,this.ref=new d.a(this,o.animationQueue),n===p.a.COMPONENT||n===p.a.HOST?this.renderer=o.renderComponent(t):this.renderer=r.renderer,this._directRenderer=this.renderer.directRenderer}return Object.defineProperty(AppView.prototype,"animationContext",{get:function(){return this._animationContext||(this._animationContext=new s.a(this.viewUtils.animationQueue)),this._animationContext},enumerable:!0,configurable:!0}),Object.defineProperty(AppView.prototype,"destroyed",{get:function(){return this.cdMode===o.f.Destroyed},enumerable:!0,configurable:!0}),AppView.prototype.create=function(e){return this.context=e,this.createInternal(null)},AppView.prototype.createHostView=function(e,t,o){return this.context=m,this._hasExternalHostElement=n.i(i.d)(e),this._hostInjector=t,this._hostProjectableNodes=o,this.createInternal(e)},AppView.prototype.createInternal=function(e){return null},AppView.prototype.createEmbeddedViewInternal=function(e){return null},AppView.prototype.init=function(e,t,n){this.lastRootNode=e,this.allNodes=t,this.disposables=n,this.type===p.a.COMPONENT&&this.dirtyParentQueriesInternal()},AppView.prototype.injectorGet=function(e,t,o){void 0===o&&(o=r.a);for(var a=y,s=this;a===y;)n.i(i.d)(t)&&(a=s.injectorGetInternal(e,t,y)),a===y&&s.type===p.a.HOST&&(a=s._hostInjector.get(e,o)),t=s.parentIndex,s=s.parentView;return a},AppView.prototype.injectorGetInternal=function(e,t,n){return n},AppView.prototype.injector=function(e){return new l.a(this,e)},AppView.prototype.detachAndDestroy=function(){this.viewContainer?this.viewContainer.detachView(this.viewContainer.nestedViews.indexOf(this)):this.appRef?this.appRef.detachView(this.ref):this._hasExternalHostElement&&this.detach(),this.destroy()},AppView.prototype.destroy=function(){var e=this;if(this.cdMode!==o.f.Destroyed){var t=this.type===p.a.COMPONENT?this.parentElement:null;if(this.disposables)for(var n=0;n<this.disposables.length;n++)this.disposables[n]();this.destroyInternal(),this.dirtyParentQueriesInternal(),this._animationContext?this._animationContext.onAllActiveAnimationsDone(function(){return e.renderer.destroyView(t,e.allNodes)}):this.renderer.destroyView(t,this.allNodes),this.cdMode=o.f.Destroyed}},AppView.prototype.destroyInternal=function(){},AppView.prototype.detachInternal=function(){},AppView.prototype.detach=function(){var e=this;if(this.detachInternal(),this._animationContext?this._animationContext.onAllActiveAnimationsDone(function(){return e._renderDetach()}):this._renderDetach(),this.declaredViewContainer&&this.declaredViewContainer!==this.viewContainer&&this.declaredViewContainer.projectedViews){var t=this.declaredViewContainer.projectedViews,n=t.indexOf(this);n>=t.length-1?t.pop():t.splice(n,1)}this.appRef=null,this.viewContainer=null,this.dirtyParentQueriesInternal()},AppView.prototype._renderDetach=function(){this._directRenderer?this.visitRootNodesInternal(this._directRenderer.remove,null):this.renderer.detachView(this.flatRootNodes)},AppView.prototype.attachToAppRef=function(e){if(this.viewContainer)throw new Error("This view is already attached to a ViewContainer!");this.appRef=e,this.dirtyParentQueriesInternal()},AppView.prototype.attachAfter=function(e,t){if(this.appRef)throw new Error("This view is already attached directly to the ApplicationRef!");this._renderAttach(e,t),this.viewContainer=e,this.declaredViewContainer&&this.declaredViewContainer!==e&&(this.declaredViewContainer.projectedViews||(this.declaredViewContainer.projectedViews=[]),this.declaredViewContainer.projectedViews.push(this)),this.dirtyParentQueriesInternal()},AppView.prototype.moveAfter=function(e,t){this._renderAttach(e,t),this.dirtyParentQueriesInternal()},AppView.prototype._renderAttach=function(e,t){var n=t?t.lastRootNode:e.nativeElement;if(this._directRenderer){var o=this._directRenderer.nextSibling(n);if(o)this.visitRootNodesInternal(this._directRenderer.insertBefore,o);else{var r=this._directRenderer.parentElement(n);r&&this.visitRootNodesInternal(this._directRenderer.appendChild,r)}}else this.renderer.attachViewAfter(n,this.flatRootNodes)},Object.defineProperty(AppView.prototype,"changeDetectorRef",{get:function(){return this.ref},enumerable:!0,configurable:!0}),Object.defineProperty(AppView.prototype,"flatRootNodes",{get:function(){var e=[];return this.visitRootNodesInternal(g.addToArray,e),e},enumerable:!0,configurable:!0}),AppView.prototype.projectNodes=function(e,t){if(this._directRenderer)this.visitProjectedNodes(t,this._directRenderer.appendChild,e);else{var n=[];this.visitProjectedNodes(t,g.addToArray,n),this.renderer.projectNodes(e,n)}},AppView.prototype.visitProjectedNodes=function(e,t,n){switch(this.type){case p.a.EMBEDDED:this.parentView.visitProjectedNodes(e,t,n);break;case p.a.COMPONENT:if(this.parentView.type===p.a.HOST)for(var o=this.parentView._hostProjectableNodes[e]||[],r=0;r<o.length;r++)t(o[r],n);else this.parentView.visitProjectableNodesInternal(this.parentIndex,e,t,n)}},AppView.prototype.visitRootNodesInternal=function(e,t){},AppView.prototype.visitProjectableNodesInternal=function(e,t,n,o){},AppView.prototype.dirtyParentQueriesInternal=function(){},AppView.prototype.internalDetectChanges=function(e){this.cdMode!==o.f.Detached&&this.detectChanges(e)},AppView.prototype.detectChanges=function(e){var t=h(this.clazz);this.cdMode!==o.f.Checked&&this.cdMode!==o.f.Errored&&(this.cdMode===o.f.Destroyed&&this.throwDestroyedError("detectChanges"),this.detectChangesInternal(e),this.cdMode===o.f.CheckOnce&&(this.cdMode=o.f.Checked),this.numberOfChecks++,n.i(a.a)(t))},AppView.prototype.detectChangesInternal=function(e){},AppView.prototype.markAsCheckOnce=function(){this.cdMode=o.f.CheckOnce},AppView.prototype.markPathToRootAsCheckOnce=function(){for(var e=this;n.i(i.d)(e)&&e.cdMode!==o.f.Detached;)e.cdMode===o.f.Checked&&(e.cdMode=o.f.CheckOnce),e=e.type===p.a.COMPONENT?e.parentView:e.viewContainer?e.viewContainer.parentView:null},AppView.prototype.eventHandler=function(e){return e},AppView.prototype.throwDestroyedError=function(e){throw new c.b(e)},AppView}(),v=function(e){function DebugAppView(t,n,o,r,i,a,s,u,l,c){void 0===c&&(c=null),e.call(this,t,n,o,r,i,a,s,u,c),this.staticNodeDebugInfos=l,this._currentDebugContext=null}return f(DebugAppView,e),DebugAppView.prototype.create=function(t){this._resetDebug();try{return e.prototype.create.call(this,t)}catch(n){throw this._rethrowWithContext(n),n}},DebugAppView.prototype.createHostView=function(t,n,o){void 0===o&&(o=null),this._resetDebug();try{return e.prototype.createHostView.call(this,t,n,o)}catch(r){throw this._rethrowWithContext(r),r}},DebugAppView.prototype.injectorGet=function(t,n,o){this._resetDebug();try{return e.prototype.injectorGet.call(this,t,n,o)}catch(r){throw this._rethrowWithContext(r),r}},DebugAppView.prototype.detach=function(){this._resetDebug();try{e.prototype.detach.call(this)}catch(t){throw this._rethrowWithContext(t),t}},DebugAppView.prototype.destroy=function(){this._resetDebug();try{e.prototype.destroy.call(this)}catch(t){throw this._rethrowWithContext(t),t}},DebugAppView.prototype.detectChanges=function(t){this._resetDebug();try{e.prototype.detectChanges.call(this,t)}catch(n){throw this._rethrowWithContext(n),n}},DebugAppView.prototype._resetDebug=function(){this._currentDebugContext=null},DebugAppView.prototype.debug=function(e,t,n){return this._currentDebugContext=new u.a(this,e,t,n)},DebugAppView.prototype._rethrowWithContext=function(e){if(!(e instanceof c.c)&&(e instanceof c.a||(this.cdMode=o.f.Errored),n.i(i.d)(this._currentDebugContext)))throw new c.c(e,this._currentDebugContext)},DebugAppView.prototype.eventHandler=function(t){var n=this,o=e.prototype.eventHandler.call(this,t);return function(e,t){n._resetDebug();try{return o.call(n,e,t)}catch(r){throw n._rethrowWithContext(r),r}}},DebugAppView}(b)},function(e,t,n){"use strict";var o=n(182),r=n(392),i=n(183);n.d(t,"a",function(){return a});var a=function(){function ViewContainer(e,t,n,o){this.index=e,this.parentIndex=t,this.parentView=n,this.nativeElement=o}return Object.defineProperty(ViewContainer.prototype,"elementRef",{get:function(){return new o.a(this.nativeElement)},enumerable:!0,configurable:!0}),Object.defineProperty(ViewContainer.prototype,"vcRef",{get:function(){return new r.a(this)},enumerable:!0,configurable:!0}),Object.defineProperty(ViewContainer.prototype,"parentInjector",{get:function(){return this.parentView.injector(this.parentIndex)},enumerable:!0,configurable:!0}),Object.defineProperty(ViewContainer.prototype,"injector",{get:function(){return this.parentView.injector(this.index)},enumerable:!0,configurable:!0}),ViewContainer.prototype.detectChangesInNestedViews=function(e){if(this.nestedViews)for(var t=0;t<this.nestedViews.length;t++)this.nestedViews[t].detectChanges(e)},ViewContainer.prototype.destroyNestedViews=function(){if(this.nestedViews)for(var e=0;e<this.nestedViews.length;e++)this.nestedViews[e].destroy()},ViewContainer.prototype.visitNestedViewRootNodes=function(e,t){if(this.nestedViews)for(var n=0;n<this.nestedViews.length;n++)this.nestedViews[n].visitRootNodesInternal(e,t)},ViewContainer.prototype.mapNestedViews=function(e,t){var n=[];if(this.nestedViews)for(var o=0;o<this.nestedViews.length;o++){var r=this.nestedViews[o];r.clazz===e&&n.push(t(r))}if(this.projectedViews)for(var o=0;o<this.projectedViews.length;o++){var i=this.projectedViews[o];i.clazz===e&&n.push(t(i))}return n},ViewContainer.prototype.moveView=function(e,t){var n=this.nestedViews.indexOf(e);if(e.type===i.a.COMPONENT)throw new Error("Component views can't be moved!");var o=this.nestedViews;null==o&&(o=[],this.nestedViews=o),o.splice(n,1),o.splice(t,0,e);var r=t>0?o[t-1]:null;e.moveAfter(this,r)},ViewContainer.prototype.attachView=function(e,t){if(e.type===i.a.COMPONENT)throw new Error("Component views can't be moved!");var n=this.nestedViews;null==n&&(n=[],this.nestedViews=n),t>=n.length?n.push(e):n.splice(t,0,e);var o=t>0?n[t-1]:null;e.attachAfter(this,o)},ViewContainer.prototype.detachView=function(e){var t=this.nestedViews[e];if(e>=this.nestedViews.length-1?this.nestedViews.pop():this.nestedViews.splice(e,1),t.type===i.a.COMPONENT)throw new Error("Component views can't be moved!");return t.detach(),t},ViewContainer}()},function(e,t,n){"use strict";var o=n(260),r=n(109);n.d(t,"a",function(){return i}),n.d(t,"c",function(){return a}),n.d(t,"b",function(){return s}),n.d(t,"e",function(){return u}),n.d(t,"d",function(){return l}),n.d(t,"g",function(){return c}),n.d(t,"f",function(){return d});var i=new o.a("AnalyzeForEntryComponents"),a=n.i(r.a)("Attribute",[["attributeName",void 0]]),s=function(){function Query(){}return Query}(),u=n.i(r.c)("ContentChildren",[["selector",void 0],{first:!1,isViewQuery:!1,descendants:!1,read:void 0}],s),l=n.i(r.c)("ContentChild",[["selector",void 0],{first:!0,isViewQuery:!1,descendants:!0,read:void 0}],s),c=n.i(r.c)("ViewChildren",[["selector",void 0],{first:!1,isViewQuery:!0,descendants:!0,read:void 0}],s),d=n.i(r.c)("ViewChild",[["selector",void 0],{first:!0,isViewQuery:!0,descendants:!0,read:void 0}],s)},function(e,t,n){"use strict";var o=n(179),r=n(109);n.d(t,"f",function(){return i}),n.d(t,"e",function(){return a}),n.d(t,"g",function(){return s}),n.d(t,"a",function(){return u}),n.d(t,"b",function(){return l}),n.d(t,"c",function(){return c}),n.d(t,"d",function(){return d});var i=n.i(r.b)("Directive",{selector:void 0,inputs:void 0,outputs:void 0,host:void 0,providers:void 0,exportAs:void 0,queries:void 0}),a=n.i(r.b)("Component",{selector:void 0,inputs:void 0,outputs:void 0,host:void 0,exportAs:void 0,moduleId:void 0,providers:void 0,viewProviders:void 0,changeDetection:o.a.Default,queries:void 0,templateUrl:void 0,template:void 0,styleUrls:void 0,styles:void 0,animations:void 0,encapsulation:void 0,interpolation:void 0,entryComponents:void 0},i),s=n.i(r.b)("Pipe",{name:void 0,pure:!0}),u=n.i(r.c)("Input",[["bindingPropertyName",void 0]]),l=n.i(r.c)("Output",[["bindingPropertyName",void 0]]),c=n.i(r.c)("HostBinding",[["hostPropertyName",void 0]]),d=n.i(r.c)("HostListener",[["eventName",void 0],["args",[]]])},function(e,t,n){"use strict";var o=n(109);n.d(t,"c",function(){return r}),n.d(t,"b",function(){return i}),n.d(t,"a",function(){return a});var r={name:"custom-elements"},i={name:"no-errors-schema"},a=n.i(o.b)("NgModule",{providers:void 0,declarations:void 0,imports:void 0,exports:void 0,entryComponents:void 0,bootstrap:void 0,schemas:void 0,id:void 0})},function(e,t,n){"use strict";function _reflector(){return i.a}var o=n(256),r=n(258),i=n(265),a=n(266),s=n(268);n.d(t,"a",function(){return l});var u=[o.a,{provide:o.b,useExisting:o.a},{provide:i.b,useFactory:_reflector,deps:[]},{provide:a.a,useExisting:i.b},s.b,r.a],l=n.i(o.c)(null,"core",u)},function(e,t,n){"use strict";function detectWTF(){var e=o.a.wtf;return!(!e||!(r=e.trace))&&(i=r.events,!0)}function createScope(e,t){return void 0===t&&(t=null),i.createScope(e,t)}function leave(e,t){return r.leaveScope(e,t),t}function startTimeRange(e,t){return r.beginTimeRange(e,t)}function endTimeRange(e){r.endTimeRange(e)}var o=n(8);t.a=detectWTF,t.b=createScope,t.c=leave,t.d=startTimeRange,t.e=endTimeRange;var r,i},function(e,t,n){"use strict";var o=n(267);n.d(t,"a",function(){return o.b}),n.d(t,"b",function(){return o.d}),n.d(t,"c",function(){return o.a})},function(e,t,n){"use strict";var o=n(109);n.d(t,"a",function(){return o.d})},function(e,t,n){"use strict";var o=n(186);n.d(t,"a",function(){return o.a})},function(e,t,n){"use strict";var o=n(1),r=n(187),i=n(188),a=n(272),s=n(135),u=n(273),l=n(189),c=n(274),d=n(136),p=n(275),g=n(276),f=n(277),h=n(137),m=n(138),y=n(191),b=n(192),v=n(403);n(90);n.d(t,"a",function(){return E}),n.d(t,"c",function(){return T}),n.d(t,"b",function(){return S});var _=[y.b,b.b,i.a,c.a,p.a,r.a,y.a,b.a,d.a,a.a,a.b,v.a,v.b,v.c,v.d,v.e],E=[u.a,l.a,s.a],T=[g.a,h.a,f.a,m.a,m.b],S=function(){function InternalFormsSharedModule(){}return InternalFormsSharedModule.decorators=[{type:o.NgModule,args:[{declarations:_,exports:_}]}],InternalFormsSharedModule.ctorParameters=function(){return[]},InternalFormsSharedModule}()},function(e,t,n){"use strict";function normalizeValidator(e){return e.validate?function(t){return e.validate(t)}:e}function normalizeAsyncValidator(e){return e.validate?function(t){return e.validate(t)}:e}t.a=normalizeValidator,t.b=normalizeAsyncValidator},function(e,t,n){"use strict";var o=n(1),r=n(665),i=n(136),a=n(405);n.d(t,"a",function(){return s}),n.d(t,"b",function(){return u});var s=function(){function FormsModule(){}return FormsModule.decorators=[{type:o.NgModule,args:[{declarations:r.a,providers:[i.b],exports:[r.b,r.a]}]}],FormsModule.ctorParameters=function(){return[]},FormsModule}(),u=function(){function ReactiveFormsModule(){}return ReactiveFormsModule.decorators=[{type:o.NgModule,args:[{declarations:[r.c],providers:[a.a,i.b],exports:[r.b,r.c]}]}],ReactiveFormsModule.ctorParameters=function(){return[]},ReactiveFormsModule}()},function(e,t,n){"use strict";var o=n(271),r=n(134),i=n(187),a=n(57),s=n(42),u=n(188),l=n(90),c=n(272),d=n(135),p=n(273),g=n(189),f=n(136),h=n(276),m=n(277),y=n(137),b=n(138),v=n(191),_=n(192),E=n(403),T=n(405),S=n(193),A=n(49),M=n(669),C=n(667);n.d(t,"s",function(){return o.a}),n.d(t,"b",function(){return r.a}),n.d(t,"c",function(){return i.a}),n.d(t,"d",function(){return a.a}),n.d(t,"e",function(){return s.a}),n.d(t,"f",function(){return u.a}),n.d(t,"g",function(){return l.a}),n.d(t,"h",function(){return c.a}),n.d(t,"i",function(){return c.b}),n.d(t,"j",function(){return d.a}),n.d(t,"k",function(){return p.a}),n.d(t,"l",function(){return g.a}),n.d(t,"m",function(){return f.a}),n.d(t,"n",function(){return h.a}),n.d(t,"o",function(){return m.a}),n.d(t,"p",function(){return y.a}),n.d(t,"q",function(){return b.b}),n.d(t,"r",function(){return b.a}),n.d(t,"a",function(){return v.b}),n.d(t,"t",function(){return v.a}),n.d(t,"u",function(){return _.a}),n.d(t,"w",function(){return E.c}),n.d(t,"x",function(){return E.b}),n.d(t,"y",function(){return E.d}),n.d(t,"z",function(){return E.a}),n.d(t,"v",function(){return E.e}),n.d(t,"A",function(){return T.a}),n.d(t,"C",function(){return S.c}),n.d(t,"D",function(){return S.b}),n.d(t,"E",function(){return S.a}),n.d(t,"B",function(){return S.d}),n.d(t,"F",function(){return A.c}),n.d(t,"G",function(){return A.b}),n.d(t,"H",function(){return A.a}),n.d(t,"I",function(){return M.a}),n.d(t,"J",function(){return C.a}),n.d(t,"K",function(){return C.b})},function(e,t,n){"use strict";var o=n(1);n.d(t,"a",function(){return r});var r=new o.Version("2.4.10")},function(e,t,n){"use strict";function _createDefaultCookieXSRFStrategy(){return new s.a}function httpFactory(e,t){return new c.a(e,t)}function jsonpFactory(e,t){return new c.b(e,t)}var o=n(1),r=n(407),i=n(278),a=n(408),s=n(409),u=n(279),l=n(194),c=n(411),d=n(140);n.d(t,"a",function(){return p}),n.d(t,"b",function(){return g});var p=function(){function HttpModule(){}return HttpModule.decorators=[{type:o.NgModule,args:[{providers:[{provide:c.a,useFactory:httpFactory,deps:[s.b,u.a]},i.a,{provide:u.a,useClass:u.b},{provide:l.a,useClass:l.b},s.b,{provide:d.b,useFactory:_createDefaultCookieXSRFStrategy}]}]}],HttpModule.ctorParameters=function(){return[]},HttpModule}(),g=function(){function JsonpModule(){}return JsonpModule.decorators=[{type:o.NgModule,args:[{providers:[{provide:c.b,useFactory:jsonpFactory,deps:[a.a,u.a]},r.a,{provide:u.a,useClass:u.b},{provide:l.a,useClass:l.b},{provide:a.a,useClass:a.b}]}]}],JsonpModule.ctorParameters=function(){return[]},JsonpModule}()},function(e,t,n){"use strict";var o=n(278),r=n(408),i=n(409),a=n(279),s=n(194),u=n(77),l=n(139),c=n(411),d=n(670),p=n(140),g=n(412),f=n(280),h=n(196),m=n(672);n.d(t,"n",function(){return o.a}),n.d(t,"b",function(){return r.a}),n.d(t,"c",function(){return r.c}),n.d(t,"d",function(){return i.a}),n.d(t,"e",function(){return i.b}),n.d(t,"f",function(){return i.c}),n.d(t,"g",function(){return a.b}),n.d(t,"h",function(){return a.a}),n.d(t,"i",function(){return s.b}),n.d(t,"j",function(){return s.a}),n.d(t,"k",function(){return u.c}),n.d(t,"l",function(){return u.b}),n.d(t,"m",function(){return u.d}),n.d(t,"a",function(){return u.a}),n.d(t,"o",function(){return l.a}),n.d(t,"q",function(){return c.b}),n.d(t,"p",function(){return c.a}),n.d(t,"r",function(){return d.a}),n.d(t,"s",function(){return d.b}),n.d(t,"t",function(){return p.c}),n.d(t,"u",function(){return p.a}),n.d(t,"v",function(){return p.b}),n.d(t,"w",function(){return g.a}),n.d(t,"x",function(){return f.a}),n.d(t,"y",function(){return h.b}),n.d(t,"z",function(){return h.a}),n.d(t,"A",function(){return m.a})},function(e,t,n){"use strict";var o=n(1);n.d(t,"a",function(){return r});var r=new o.Version("2.4.10")},function(e,t,n){"use strict";(function(e){n.d(t,"a",function(){return r});var o;o="undefined"==typeof window?"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:e:window;var r=o;r.assert=function(e){};Object.getPrototypeOf({}),function(){function NumberWrapper(){}return NumberWrapper.parseIntAutoRadix=function(e){var t=parseInt(e);if(isNaN(t))throw new Error("Invalid integer literal when parsing "+e);return t},NumberWrapper.isNumeric=function(e){return!isNaN(e-parseFloat(e))},NumberWrapper}()}).call(t,n(55))},function(e,t,n){"use strict";var o=n(164),r=n(1),i=n(413),a=n(677),s=n(675),u=n(678);n.d(t,"b",function(){return l}),n.d(t,"c",function(){return c}),n.d(t,"d",function(){return s.a}),n.d(t,"a",function(){return u.a});var l=[{provide:o.a,useClass:a.a}],c=n.i(r.createPlatformFactory)(o.b,"browserDynamic",i.a)},function(e,t,n){"use strict";var o=n(413),r=n(414);n.d(t,"a",function(){return i});var i={INTERNAL_BROWSER_DYNAMIC_PLATFORM_PROVIDERS:o.a,ResourceLoaderImpl:r.a}},function(e,t,n){"use strict";var o=n(103);n.d(t,"a",function(){return r});var r=o.__platform_browser_private__.INTERNAL_BROWSER_PLATFORM_PROVIDERS;o.__platform_browser_private__.getDOM},function(e,t,n){"use strict";var o=n(164),r=n(673);n.d(t,"a",function(){return a});var i=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},a=function(e){function CachedResourceLoader(){if(e.call(this),this._cache=r.a.$templateCache,null==this._cache)throw new Error("CachedResourceLoader: Template cache was not found in $templateCache.")}return i(CachedResourceLoader,e),CachedResourceLoader.prototype.get=function(e){return this._cache.hasOwnProperty(e)?Promise.resolve(this._cache[e]):Promise.reject("CachedResourceLoader: Did not find cached template for "+e)},CachedResourceLoader}(o.a)},function(e,t,n){"use strict";var o=n(1);n.d(t,"a",function(){return r});var r=new o.Version("2.4.10")},function(e,t,n){"use strict";var o=n(23),r=n(50);n.d(t,"a",function(){return a});var i=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},a=function(e){function GenericBrowserDomAdapter(){var t=this;e.call(this),this._animationPrefix=null,this._transitionEnd=null;try{var o=this.createElement("div",this.defaultDoc());if(n.i(r.a)(this.getStyle(o,"animationName")))this._animationPrefix="";else for(var i=["Webkit","Moz","O","ms"],a=0;a<i.length;a++)if(n.i(r.a)(this.getStyle(o,i[a]+"AnimationName"))){this._animationPrefix="-"+i[a].toLowerCase()+"-";break}var s={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};Object.keys(s).forEach(function(e){n.i(r.a)(t.getStyle(o,e))&&(t._transitionEnd=s[e])})}catch(u){this._animationPrefix=null,this._transitionEnd=null}}return i(GenericBrowserDomAdapter,e),GenericBrowserDomAdapter.prototype.getDistributedNodes=function(e){return e.getDistributedNodes()},GenericBrowserDomAdapter.prototype.resolveAndSetHref=function(e,t,n){e.href=null==n?t:t+"/../"+n},GenericBrowserDomAdapter.prototype.supportsDOMEvents=function(){return!0},GenericBrowserDomAdapter.prototype.supportsNativeShadowDOM=function(){return"function"==typeof this.defaultDoc().body.createShadowRoot},GenericBrowserDomAdapter.prototype.getAnimationPrefix=function(){return this._animationPrefix?this._animationPrefix:""},GenericBrowserDomAdapter.prototype.getTransitionEnd=function(){return this._transitionEnd?this._transitionEnd:""},GenericBrowserDomAdapter.prototype.supportsAnimation=function(){return n.i(r.a)(this._animationPrefix)&&n.i(r.a)(this._transitionEnd)},GenericBrowserDomAdapter}(o.b)},function(e,t,n){"use strict";function supportsState(){return!!window.history.pushState}t.a=supportsState},function(e,t,n){"use strict";var o=n(1),r=n(23),i=n(685),a=n(50);n.d(t,"a",function(){return u});var s=function(){function ChangeDetectionPerfRecord(e,t){this.msPerTick=e,this.numTicks=t}return ChangeDetectionPerfRecord}(),u=function(){function AngularTools(e){this.profiler=new l(e)}return AngularTools}(),l=function(){function AngularProfiler(e){this.appRef=e.injector.get(o.ApplicationRef)}return AngularProfiler.prototype.timeChangeDetection=function(e){var t=e&&e.record,o="Change Detection",u=n.i(a.a)(i.a.console.profile);t&&u&&i.a.console.profile(o);for(var l=n.i(r.a)().performanceNow(),c=0;c<5||n.i(r.a)().performanceNow()-l<500;)this.appRef.tick(),c++;var d=n.i(r.a)().performanceNow();t&&u&&i.a.console.profileEnd(o);var p=(d-l)/c;return i.a.console.log("ran "+c+" change detection cycles"),i.a.console.log(p.toFixed(2)+" ms per check"),new s(p,c)},AngularProfiler}()},function(e,t,n){"use strict";function enableDebugTools(e){return Object.assign(i.ng,new r.a(e)),e}function disableDebugTools(){i.ng&&delete i.ng.profiler}var o=n(50),r=n(681);t.b=enableDebugTools,t.a=disableDebugTools;var i=o.d},function(e,t,n){"use strict";var o=n(23),r=n(50);n.d(t,"a",function(){return i});var i=function(){function By(){}return By.all=function(){return function(e){return!0}},By.css=function(e){return function(t){return!!n.i(r.a)(t.nativeElement)&&n.i(o.a)().elementMatches(t.nativeElement,e)}},By.directive=function(e){return function(t){return t.providerTokens.indexOf(e)!==-1}},By}()},function(e,t,n){"use strict";function _computeStyle(e,t){return n.i(i.a)().getComputedStyle(e)[t]}function _copyKeyframeStyles(e){var t={};return Object.keys(e).forEach(function(n){"offset"!=n&&(t[n]=e[n])}),t}var o=n(1),r=n(50),i=n(23);n.d(t,"a",function(){return a});var a=function(){function WebAnimationsPlayer(e,t,n,o){var r=this;void 0===o&&(o=[]),this.element=e,this.keyframes=t,this.options=n,this._onDoneFns=[],this._onStartFns=[],this._initialized=!1,this._finished=!1,this._started=!1,this._destroyed=!1,this.parentPlayer=null,this._duration=n.duration,this.previousStyles={},o.forEach(function(e){var t=e._captureStyles();Object.keys(t).forEach(function(e){return r.previousStyles[e]=t[e]})})}return WebAnimationsPlayer.prototype._onFinish=function(){this._finished||(this._finished=!0,this._onDoneFns.forEach(function(e){return e()}),this._onDoneFns=[])},WebAnimationsPlayer.prototype.init=function(){var e=this;if(!this._initialized){this._initialized=!0;var t=this.keyframes.map(function(t){var n={};return Object.keys(t).forEach(function(r,i){var a=t[r];a==o.AUTO_STYLE&&(a=_computeStyle(e.element,r)),void 0!=a&&(n[r]=a)}),n}),i=Object.keys(this.previousStyles);if(i.length){var a=t[0],s=[];if(i.forEach(function(t){n.i(r.a)(a[t])||s.push(t),a[t]=e.previousStyles[t]}),s.length)for(var u=function(n){var o=t[n];s.forEach(function(t){o[t]=_computeStyle(e.element,t)})},l=1;l<t.length;l++)u(l)}this._player=this._triggerWebAnimation(this.element,t,this.options),this._finalKeyframe=_copyKeyframeStyles(t[t.length-1]),this._resetDomPlayerState(),this._player.addEventListener("finish",function(){return e._onFinish()})}},WebAnimationsPlayer.prototype._triggerWebAnimation=function(e,t,n){return e.animate(t,n)},Object.defineProperty(WebAnimationsPlayer.prototype,"domPlayer",{get:function(){return this._player},enumerable:!0,configurable:!0}),WebAnimationsPlayer.prototype.onStart=function(e){this._onStartFns.push(e)},WebAnimationsPlayer.prototype.onDone=function(e){this._onDoneFns.push(e)},WebAnimationsPlayer.prototype.play=function(){this.init(),this.hasStarted()||(this._onStartFns.forEach(function(e){return e()}),this._onStartFns=[],this._started=!0),this._player.play()},WebAnimationsPlayer.prototype.pause=function(){this.init(),this._player.pause()},WebAnimationsPlayer.prototype.finish=function(){this.init(),this._onFinish(),this._player.finish()},WebAnimationsPlayer.prototype.reset=function(){this._resetDomPlayerState(),this._destroyed=!1,this._finished=!1,this._started=!1},WebAnimationsPlayer.prototype._resetDomPlayerState=function(){this._player&&this._player.cancel()},WebAnimationsPlayer.prototype.restart=function(){this.reset(),this.play()},WebAnimationsPlayer.prototype.hasStarted=function(){return this._started},WebAnimationsPlayer.prototype.destroy=function(){this._destroyed||(this._resetDomPlayerState(),this._onFinish(),this._destroyed=!0)},Object.defineProperty(WebAnimationsPlayer.prototype,"totalTime",{get:function(){return this._duration},enumerable:!0,configurable:!0}),WebAnimationsPlayer.prototype.setPosition=function(e){this._player.currentTime=e*this.totalTime},WebAnimationsPlayer.prototype.getPosition=function(){return this._player.currentTime/this.totalTime},WebAnimationsPlayer.prototype._captureStyles=function(){var e=this,t={};return this.hasStarted()&&Object.keys(this._finalKeyframe).forEach(function(n){"offset"!=n&&(t[n]=e._finished?e._finalKeyframe[n]:_computeStyle(e.element,n))}),t},WebAnimationsPlayer}()},function(e,t,n){"use strict";n.d(t,"a",function(){return o});var o="undefined"!=typeof window&&window||{};o.document,o.location,o.gc?function(){return o.gc()}:function(){return null},o.performance?o.performance:null,o.Event,o.MouseEvent,o.KeyboardEvent,o.EventTarget,o.History,o.Location,o.EventListener},function(e,t,n){"use strict";n(50);n.d(t,"a",function(){return o});var o=function(){function StringMapWrapper(){}return StringMapWrapper.merge=function(e,t){for(var n={},o=0,r=Object.keys(e);o<r.length;o++){var i=r[o];n[i]=e[i]}for(var a=0,s=Object.keys(t);a<s.length;a++){var i=s[a];n[i]=t[i]}return n},StringMapWrapper.equals=function(e,t){var n=Object.keys(e),o=Object.keys(t);if(n.length!=o.length)return!1;for(var r=0;r<n.length;r++){var i=n[r];if(e[i]!==t[i])return!1}return!0},StringMapWrapper}();(function(){function ListWrapper(){}return ListWrapper.findLast=function(e,t){for(var n=e.length-1;n>=0;n--)if(t(e[n]))return e[n];return null},ListWrapper.removeAll=function(e,t){for(var n=0;n<t.length;++n){var o=e.indexOf(t[n]);o>-1&&e.splice(o,1)}},ListWrapper.remove=function(e,t){var n=e.indexOf(t);return n>-1&&(e.splice(n,1),!0)},ListWrapper.equals=function(e,t){if(e.length!=t.length)return!1;for(var n=0;n<e.length;++n)if(e[n]!==t[n])return!1;return!0},ListWrapper.flatten=function(e){return e.reduce(function(e,t){var n=Array.isArray(t)?ListWrapper.flatten(t):t;return e.concat(n)},[])},ListWrapper})()},function(e,t,n){"use strict";var o=n(415),r=n(419),i=n(682),a=n(281),s=n(683),u=n(282),l=n(197),c=n(112),d=n(284),p=n(423),g=n(688),f=n(691);n.d(t,"i",function(){return o.e}),n.d(t,"c",function(){return o.d}),n.d(t,"d",function(){return r.a}),n.d(t,"e",function(){return i.a}),n.d(t,"f",function(){return i.b}),n.d(t,"g",function(){return a.a}),n.d(t,"h",function(){return s.a}),n.d(t,"b",function(){return u.b}),n.d(t,"j",function(){return l.a}),n.d(t,"l",function(){return c.a}),n.d(t,"k",function(){return c.c}),n.d(t,"m",function(){return d.b}),n.d(t,"n",function(){return d.c}),n.d(t,"o",function(){return p.a}),n.d(t,"a",function(){return g.a}),n.d(t,"p",function(){return f.a})},function(e,t,n){"use strict";var o=n(415),r=n(416),i=n(417),a=n(418),s=n(282),u=n(23),l=n(283),c=n(420),d=n(284),p=n(421),g=n(285),f=n(422);n.d(t,"a",function(){return h});var h={BrowserPlatformLocation:i.a,
DomAdapter:u.b,BrowserDomAdapter:r.a,BrowserGetTestability:a.a,getDOM:u.a,setRootDomAdapter:u.c,DomRootRenderer_:l.b,DomRootRenderer:l.a,NAMESPACE_URIS:l.c,shimContentAttribute:l.d,shimHostAttribute:l.e,flattenStyles:l.f,splitNamespace:l.g,isNamespaced:l.h,DomSharedStylesHost:g.a,SharedStylesHost:g.b,ELEMENT_PROBE_PROVIDERS:s.a,DomEventsPlugin:c.a,KeyEventsPlugin:p.a,HammerGesturesPlugin:d.a,initDomAdapter:o.a,INTERNAL_BROWSER_PLATFORM_PROVIDERS:o.b,BROWSER_SANITIZATION_PROVIDERS:o.c,WebAnimationsDriver:f.a}},function(e,t,n){"use strict";function getInertElement(){if(a)return a;s=n.i(r.a)();var e=s.createElement("template");if("content"in e)return e;var t=s.createHtmlDocument();if(a=s.querySelector(t,"body"),null==a){var o=s.createElement("html",t);a=s.createElement("body",t),s.appendChild(o,a),s.appendChild(t,o)}return a}function tagSet(e){for(var t={},n=0,o=e.split(",");n<o.length;n++){var r=o[n];t[r]=!0}return t}function merge(){for(var e=[],t=0;t<arguments.length;t++)e[t-0]=arguments[t];for(var n={},o=0,r=e;o<r.length;o++){var i=r[o];for(var a in i)i.hasOwnProperty(a)&&(n[a]=!0)}return n}function encodeEntities(e){return e.replace(/&/g,"&").replace(_,function(e){var t=e.charCodeAt(0),n=e.charCodeAt(1);return"&#"+(1024*(t-55296)+(n-56320)+65536)+";"}).replace(E,function(e){return"&#"+e.charCodeAt(0)+";"}).replace(/</g,"<").replace(/>/g,">")}function stripCustomNsAttrs(e){s.attributeMap(e).forEach(function(t,n){"xmlns:ns1"!==n&&0!==n.indexOf("ns1:")||s.removeAttribute(e,n)});for(var t=0,n=s.childNodesAsList(e);t<n.length;t++){var o=n[t];s.isElementNode(o)&&stripCustomNsAttrs(o)}}function sanitizeHtml(e){try{var t=getInertElement(),r=e?String(e):"",i=5,u=r;do{if(0===i)throw new Error("Failed to sanitize html because the input is unstable");i--,r=u,s.setInnerHTML(t,r),s.defaultDoc().documentMode&&stripCustomNsAttrs(t),u=s.getInnerHTML(t)}while(r!==u);for(var l=new v,c=l.sanitizeChildren(s.getTemplateContent(t)||t),d=s.getTemplateContent(t)||t,p=0,g=s.childNodesAsList(d);p<g.length;p++){var f=g[p];s.removeChild(d,f)}return n.i(o.isDevMode)()&&l.sanitizedSomething&&s.log("WARNING: sanitizing HTML stripped some content (see http://g.co/ng/security#xss)."),c}catch(h){throw a=null,h}}var o=n(1),r=n(23),i=n(287);t.a=sanitizeHtml;var a=null,s=null,u=tagSet("area,br,col,hr,img,wbr"),l=tagSet("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),c=tagSet("rp,rt"),d=merge(c,l),p=merge(l,tagSet("address,article,aside,blockquote,caption,center,del,details,dialog,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,main,map,menu,nav,ol,pre,section,summary,table,ul")),g=merge(c,tagSet("a,abbr,acronym,audio,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,picture,q,ruby,rp,rt,s,samp,small,source,span,strike,strong,sub,sup,time,track,tt,u,var,video")),f=merge(u,p,g,d),h=tagSet("background,cite,href,itemtype,longdesc,poster,src,xlink:href"),m=tagSet("srcset"),y=tagSet("abbr,accesskey,align,alt,autoplay,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,controls,coords,datetime,default,dir,download,face,headers,height,hidden,hreflang,hspace,ismap,itemscope,itemprop,kind,label,lang,language,loop,media,muted,nohref,nowrap,open,preload,rel,rev,role,rows,rowspan,rules,scope,scrolling,shape,size,sizes,span,srclang,start,summary,tabindex,target,title,translate,type,usemap,valign,value,vspace,width"),b=merge(h,m,y),v=function(){function SanitizingHtmlSerializer(){this.sanitizedSomething=!1,this.buf=[]}return SanitizingHtmlSerializer.prototype.sanitizeChildren=function(e){for(var t=e.firstChild;t;)if(s.isElementNode(t)?this.startElement(t):s.isTextNode(t)?this.chars(s.nodeValue(t)):this.sanitizedSomething=!0,s.firstChild(t))t=s.firstChild(t);else for(;t;){if(s.isElementNode(t)&&this.endElement(t),s.nextSibling(t)){t=s.nextSibling(t);break}t=s.parentElement(t)}return this.buf.join("")},SanitizingHtmlSerializer.prototype.startElement=function(e){var t=this,o=s.nodeName(e).toLowerCase();return f.hasOwnProperty(o)?(this.buf.push("<"),this.buf.push(o),s.attributeMap(e).forEach(function(e,o){var r=o.toLowerCase();return b.hasOwnProperty(r)?(h[r]&&(e=n.i(i.a)(e)),m[r]&&(e=n.i(i.b)(e)),t.buf.push(" "),t.buf.push(o),t.buf.push('="'),t.buf.push(encodeEntities(e)),void t.buf.push('"')):void(t.sanitizedSomething=!0)}),void this.buf.push(">")):void(this.sanitizedSomething=!0)},SanitizingHtmlSerializer.prototype.endElement=function(e){var t=s.nodeName(e).toLowerCase();f.hasOwnProperty(t)&&!u.hasOwnProperty(t)&&(this.buf.push("</"),this.buf.push(t),this.buf.push(">"))},SanitizingHtmlSerializer.prototype.chars=function(e){this.buf.push(encodeEntities(e))},SanitizingHtmlSerializer}(),_=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,E=/([^\#-~ |!])/g},function(e,t,n){"use strict";function hasBalancedQuotes(e){for(var t=!0,n=!0,o=0;o<e.length;o++){var r=e.charAt(o);"'"===r&&n?t=!t:'"'===r&&t&&(n=!n)}return t&&n}function sanitizeStyle(e){if(e=String(e).trim(),!e)return"";var t=e.match(g);return t&&n.i(i.a)(t[1])===t[1]||e.match(p)&&hasBalancedQuotes(e)?e:(n.i(o.isDevMode)()&&n.i(r.a)().log("WARNING: sanitizing unsafe style value "+e+" (see http://g.co/ng/security#xss)."),"unsafe")}var o=n(1),r=n(23),i=n(287);t.a=sanitizeStyle;var a="[-,.\"'%_!# a-zA-Z0-9]+",s="(?:matrix|translate|scale|rotate|skew|perspective)(?:X|Y|3d)?",u="(?:rgb|hsl)a?",l="(?:repeating-)?(?:linear|radial)-gradient",c="(?:calc|attr)",d="\\([-0-9.%, #a-zA-Z]+\\)",p=new RegExp("^("+a+"|"+("(?:"+s+"|"+u+"|"+l+"|"+c+")")+(d+")$"),"g"),g=/^url\(([^)]+)\)$/},function(e,t,n){"use strict";var o=n(1);n.d(t,"a",function(){return r});var r=new o.Version("2.4.10")},function(e,t,n){"use strict";function noMatch(e){return new o.Observable(function(t){return t.error(new m(e))})}function absoluteRedirect(e){return new o.Observable(function(t){return t.error(new y(e))})}function canLoadFails(e){return new o.Observable(function(t){return t.error(new g.b("Cannot load children because the guard of the route \"path: '"+e.path+"'\" returned false"))})}function applyRedirects(e,t,n,o){return new b(e,t,n,o).apply()}function runGuards(e,t){var o=t.canLoad;if(!o||0===o.length)return n.i(i.of)(!0);var a=l.map.call(n.i(r.from)(o),function(o){var r=e.get(o);return r.canLoad?n.i(h.b)(r.canLoad(t)):n.i(h.b)(r(t))});return n.i(h.f)(a)}function match(e,t,n){var o={matched:!1,consumedSegments:[],lastChild:0,positionalParamSegments:{}};if(""===t.path)return"full"===t.pathMatch&&(e.hasChildren()||n.length>0)?{matched:!1,consumedSegments:[],lastChild:0,positionalParamSegments:{}}:{matched:!0,consumedSegments:[],lastChild:0,positionalParamSegments:{}};for(var r=t.path,i=r.split("/"),a={},s=[],u=0,l=0;l<i.length;++l){if(u>=n.length)return o;var c=n[u],d=i[l],p=d.startsWith(":");if(!p&&d!==c.path)return o;p&&(a[d.substring(1)]=c),s.push(c),u++}return"full"===t.pathMatch&&(e.hasChildren()||u<n.length)?{matched:!1,consumedSegments:[],lastChild:0,positionalParamSegments:{}}:{matched:!0,consumedSegments:s,lastChild:u,positionalParamSegments:a}}function applyRedirectCommands(e,t,n){var o=t.startsWith("/")?t.substring(1):t;return""===o?[]:createSegments(t,o.split("/"),e,n)}function createSegments(e,t,n,o){return t.map(function(t){return t.startsWith(":")?findPosParam(t,o,e):findOrCreateSegment(t,n)})}function findPosParam(e,t,n){var o=e.substring(1),r=t[o];if(!r)throw new Error("Cannot redirect to '"+n+"'. Cannot find '"+e+"'.");return r}function findOrCreateSegment(e,t){for(var n=0,o=0,r=t;o<r.length;o++){var i=r[o];if(i.path===e)return t.splice(n),i;n++}return new f.c(e,{})}function split(e,t,n,o){if(n.length>0&&containsEmptyPathRedirectsWithNamedOutlets(e,n,o)){var r=new f.a(t,createChildrenForEmptySegments(o,new f.a(n,e.children)));return{segmentGroup:mergeTrivialChildren(r),slicedSegments:[]}}if(0===n.length&&containsEmptyPathRedirects(e,n,o)){var r=new f.a(e.segments,addEmptySegmentsToChildrenIfNeeded(e,n,o,e.children));return{segmentGroup:mergeTrivialChildren(r),slicedSegments:n}}return{segmentGroup:e,slicedSegments:n}}function mergeTrivialChildren(e){if(1===e.numberOfChildren&&e.children[g.a]){var t=e.children[g.a];return new f.a(e.segments.concat(t.segments),t.children)}return e}function addEmptySegmentsToChildrenIfNeeded(e,t,o,r){for(var i={},a=0,s=o;a<s.length;a++){var u=s[a];emptyPathRedirect(e,t,u)&&!r[getOutlet(u)]&&(i[getOutlet(u)]=new f.a([],{}))}return n.i(h.g)(r,i)}function createChildrenForEmptySegments(e,t){var n={};n[g.a]=t;for(var o=0,r=e;o<r.length;o++){var i=r[o];""===i.path&&getOutlet(i)!==g.a&&(n[getOutlet(i)]=new f.a([],{}))}return n}function containsEmptyPathRedirectsWithNamedOutlets(e,t,n){return n.filter(function(n){return emptyPathRedirect(e,t,n)&&getOutlet(n)!==g.a}).length>0}function containsEmptyPathRedirects(e,t,n){return n.filter(function(n){return emptyPathRedirect(e,t,n)}).length>0}function emptyPathRedirect(e,t,n){return(!(e.hasChildren()||t.length>0)||"full"!==n.pathMatch)&&(""===n.path&&void 0!==n.redirectTo)}function getOutlet(e){return e.outlet?e.outlet:g.a}var o=n(0),r=(n.n(o),n(320)),i=(n.n(r),n(117)),a=(n.n(i),n(499)),s=(n.n(a),n(323)),u=(n.n(s),n(501)),l=(n.n(u),n(37)),c=(n.n(l),n(151)),d=(n.n(c),n(158)),p=(n.n(d),n(199)),g=n(58),f=n(91),h=n(59);t.a=applyRedirects;var m=function(){function NoMatch(e){void 0===e&&(e=null),this.segmentGroup=e}return NoMatch}(),y=function(){function AbsoluteRedirect(e){this.segments=e}return AbsoluteRedirect}(),b=function(){function ApplyRedirects(e,t,n,o){this.injector=e,this.configLoader=t,this.urlTree=n,this.config=o,this.allowRedirects=!0}return ApplyRedirects.prototype.apply=function(){var e=this,t=this.expandSegmentGroup(this.injector,this.config,this.urlTree.root,g.a),n=l.map.call(t,function(t){return e.createUrlTree(t)});return a._catch.call(n,function(t){if(t instanceof y){e.allowRedirects=!1;var n=new f.a([],(o={},o[g.a]=new f.a(t.segments,{}),o));return e.match(n)}throw t instanceof m?e.noMatchError(t):t;var o})},ApplyRedirects.prototype.match=function(e){var t=this,n=this.expandSegmentGroup(this.injector,this.config,e,g.a),o=l.map.call(n,function(e){return t.createUrlTree(e)});return a._catch.call(o,function(e){throw e instanceof m?t.noMatchError(e):e})},ApplyRedirects.prototype.noMatchError=function(e){return new Error("Cannot match any routes: '"+e.segmentGroup+"'")},ApplyRedirects.prototype.createUrlTree=function(e){var t=e.segments.length>0?new f.a([],(n={},n[g.a]=e,n)):e;return new f.b(t,this.urlTree.queryParams,this.urlTree.fragment);var n},ApplyRedirects.prototype.expandSegmentGroup=function(e,t,n,o){return 0===n.segments.length&&n.hasChildren()?l.map.call(this.expandChildren(e,t,n),function(e){return new f.a([],e)}):this.expandSegment(e,n,t,n.segments,o,!0)},ApplyRedirects.prototype.expandChildren=function(e,t,o){var r=this;return n.i(h.e)(o.children,function(n,o){return r.expandSegmentGroup(e,t,o,n)})},ApplyRedirects.prototype.expandSegment=function(e,t,o,r,c,p){var g=this,f=i.of.apply(void 0,o),h=l.map.call(f,function(s){var u=g.expandSegmentAgainstRoute(e,t,o,s,r,c,p);return a._catch.call(u,function(e){if(e instanceof m)return n.i(i.of)(null);throw e})}),y=s.concatAll.call(h),b=u.first.call(y,function(e){return!!e});return a._catch.call(b,function(e,n){throw e instanceof d.EmptyError?new m(t):e})},ApplyRedirects.prototype.expandSegmentAgainstRoute=function(e,t,n,o,r,i,a){return getOutlet(o)!==i?noMatch(t):void 0===o.redirectTo||a&&this.allowRedirects?void 0===o.redirectTo?this.matchSegmentAgainstRoute(e,t,o,r):this.expandSegmentAgainstRouteUsingRedirect(e,t,n,o,r,i):noMatch(t)},ApplyRedirects.prototype.expandSegmentAgainstRouteUsingRedirect=function(e,t,n,o,r,i){return"**"===o.path?this.expandWildCardWithParamsAgainstRouteUsingRedirect(o):this.expandRegularSegmentAgainstRouteUsingRedirect(e,t,n,o,r,i)},ApplyRedirects.prototype.expandWildCardWithParamsAgainstRouteUsingRedirect=function(e){var t=applyRedirectCommands([],e.redirectTo,{});return e.redirectTo.startsWith("/")?absoluteRedirect(t):n.i(i.of)(new f.a(t,{}))},ApplyRedirects.prototype.expandRegularSegmentAgainstRouteUsingRedirect=function(e,t,n,o,r,i){var a=match(t,o,r),s=a.matched,u=a.consumedSegments,l=a.lastChild,c=a.positionalParamSegments;if(!s)return noMatch(t);var d=applyRedirectCommands(u,o.redirectTo,c);return o.redirectTo.startsWith("/")?absoluteRedirect(d):this.expandSegment(e,t,n,d.concat(r.slice(l)),i,!1)},ApplyRedirects.prototype.matchSegmentAgainstRoute=function(e,t,o,r){var a=this;if("**"===o.path)return n.i(i.of)(new f.a(r,{}));var s=match(t,o,r),u=s.matched,d=s.consumedSegments,p=s.lastChild;if(!u)return noMatch(t);var h=r.slice(p),m=this.getChildConfig(e,o);return c.mergeMap.call(m,function(e){var o=e.injector,r=e.routes,s=split(t,d,h,r),u=s.segmentGroup,c=s.slicedSegments;if(0===c.length&&u.hasChildren()){var p=a.expandChildren(o,r,u);return l.map.call(p,function(e){return new f.a(d,e)})}if(0===r.length&&0===c.length)return n.i(i.of)(new f.a(d,{}));var p=a.expandSegment(o,u,r,c,g.a,!0);return l.map.call(p,function(e){return new f.a(d.concat(e.segments),e.children)})})},ApplyRedirects.prototype.getChildConfig=function(e,t){var o=this;return t.children?n.i(i.of)(new p.a(t.children,e,null)):t.loadChildren?c.mergeMap.call(runGuards(e,t),function(r){return r?t._loadedConfig?n.i(i.of)(t._loadedConfig):l.map.call(o.configLoader.load(e,t.loadChildren),function(e){return t._loadedConfig=e,e}):canLoadFails(t)}):n.i(i.of)(new p.a([],e,null))},ApplyRedirects}()},function(e,t,n){"use strict";function validateConfig(e){e.forEach(validateNode)}function validateNode(e){if(Array.isArray(e))throw new Error("Invalid route configuration: Array cannot be specified");if(e.redirectTo&&e.children)throw new Error("Invalid configuration of route '"+e.path+"': redirectTo and children cannot be used together");if(e.redirectTo&&e.loadChildren)throw new Error("Invalid configuration of route '"+e.path+"': redirectTo and loadChildren cannot be used together");if(e.children&&e.loadChildren)throw new Error("Invalid configuration of route '"+e.path+"': children and loadChildren cannot be used together");if(e.redirectTo&&e.component)throw new Error("Invalid configuration of route '"+e.path+"': redirectTo and component cannot be used together");if(void 0===e.redirectTo&&!e.component&&!e.children&&!e.loadChildren)throw new Error("Invalid configuration of route '"+e.path+"': one of the following must be provided (component or redirectTo or children or loadChildren)");if(void 0===e.path)throw new Error("Invalid route configuration: routes must have path specified");if(e.path.startsWith("/"))throw new Error("Invalid route configuration of route '"+e.path+"': path cannot start with a slash");if(""===e.path&&void 0!==e.redirectTo&&void 0===e.pathMatch){var t="The default value of 'pathMatch' is 'prefix', but often the intent is to use 'full'.";throw new Error("Invalid route configuration of route '{path: \""+e.path+'", redirectTo: "'+e.redirectTo+"\"}': please provide 'pathMatch'. "+t)}if(void 0!==e.pathMatch&&"full"!==e.pathMatch&&"prefix"!==e.pathMatch)throw new Error("Invalid configuration of route '"+e.path+"': pathMatch can only be set to 'prefix' or 'full'")}t.a=validateConfig},function(e,t,n){"use strict";function createRouterState(e,t){var n=createNode(e._root,t?t._root:void 0);return new r.a(n,e)}function createNode(e,t){if(t&&equalRouteSnapshots(t.value.snapshot,e.value)){var n=t.value;n._futureSnapshot=e.value;var o=createOrReuseChildren(e,t);return new i.b(n,o)}var n=createActivatedRoute(e.value),o=e.children.map(function(e){return createNode(e)});return new i.b(n,o)}function createOrReuseChildren(e,t){return e.children.map(function(e){for(var n=0,o=t.children;n<o.length;n++){var r=o[n];if(equalRouteSnapshots(r.value.snapshot,e.value))return createNode(e,r)}return createNode(e)})}function createActivatedRoute(e){return new r.b(new o.BehaviorSubject(e.url),new o.BehaviorSubject(e.params),new o.BehaviorSubject(e.queryParams),new o.BehaviorSubject(e.fragment),new o.BehaviorSubject(e.data),e.outlet,e.component,e)}function equalRouteSnapshots(e,t){return e._routeConfig===t._routeConfig}var o=n(101),r=(n.n(o),n(113)),i=n(289);t.a=createRouterState},function(e,t,n){"use strict";function createUrlTree(e,t,n,o,i){if(0===n.length)return tree(t.root,t.root,t,o,i);var a=normalizeCommands(n);if(validateCommands(a),navigateToRoot(a))return tree(t.root,new r.a([],{}),t,o,i);var s=findStartingPosition(a,t,e),u=s.processChildren?updateSegmentGroupChildren(s.segmentGroup,s.index,a.commands):updateSegmentGroup(s.segmentGroup,s.index,a.commands);return tree(s.segmentGroup,u,t,o,i)}function validateCommands(e){if(e.isAbsolute&&e.commands.length>0&&isMatrixParams(e.commands[0]))throw new Error("Root segment cannot have matrix parameters");var t=e.commands.filter(function(e){return"object"==typeof e&&void 0!==e.outlets});if(t.length>0&&t[0]!==e.commands[e.commands.length-1])throw new Error("{outlets:{}} has to be the last command")}function isMatrixParams(e){return"object"==typeof e&&void 0===e.outlets&&void 0===e.segmentPath}function tree(e,t,n,o,i){return n.root===e?new r.b(t,stringify(o),i):new r.b(replaceSegment(n.root,e,t),stringify(o),i)}function replaceSegment(e,t,o){var a={};return n.i(i.c)(e.children,function(e,n){e===t?a[n]=o:a[n]=replaceSegment(e,t,o)}),new r.a(e.segments,a)}function navigateToRoot(e){return e.isAbsolute&&1===e.commands.length&&"/"==e.commands[0]}function normalizeCommands(e){if("string"==typeof e[0]&&1===e.length&&"/"==e[0])return new a((!0),0,e);for(var t=0,o=!1,r=[],s=function(a){var s=e[a];if("object"==typeof s&&void 0!==s.outlets){var u={};return n.i(i.c)(s.outlets,function(e,t){"string"==typeof e?u[t]=e.split("/"):u[t]=e}),r.push({outlets:u}),"continue"}if("object"==typeof s&&void 0!==s.segmentPath)return r.push(s.segmentPath),"continue";if("string"!=typeof s)return r.push(s),"continue";if(0===a)for(var l=s.split("/"),c=0;c<l.length;++c){var d=l[c];0==c&&"."==d||(0==c&&""==d?o=!0:".."==d?t++:""!=d&&r.push(d))}else r.push(s)},u=0;u<e.length;++u)s(u);return new a(o,t,r)}function findStartingPosition(e,t,n){if(e.isAbsolute)return new s(t.root,(!0),0);if(n.snapshot._lastPathIndex===-1)return new s(n.snapshot._urlSegment,(!0),0);var o=isMatrixParams(e.commands[0])?0:1,r=n.snapshot._lastPathIndex+o;return createPositionApplyingDoubleDots(n.snapshot._urlSegment,r,e.numberOfDoubleDots)}function createPositionApplyingDoubleDots(e,t,n){for(var o=e,r=t,i=n;i>r;){if(i-=r,o=o.parent,!o)throw new Error("Invalid number of '../'");r=o.segments.length}return new s(o,(!1),r-i)}function getPath(e){return""+e}function getOutlets(e){return"object"!=typeof e[0]?(t={},t[o.a]=e,t):void 0===e[0].outlets?(n={},n[o.a]=e,n):e[0].outlets;var t,n}function updateSegmentGroup(e,t,n){if(e||(e=new r.a([],{})),0===e.segments.length&&e.hasChildren())return updateSegmentGroupChildren(e,t,n);var o=prefixedWith(e,t,n),i=n.slice(o.lastIndex);return o.match&&0===i.length?new r.a(e.segments,{}):o.match&&!e.hasChildren()?createNewSegmentGroup(e,t,n):o.match?updateSegmentGroupChildren(e,0,i):createNewSegmentGroup(e,t,n)}function updateSegmentGroupChildren(e,t,o){if(0===o.length)return new r.a(e.segments,{});var a=getOutlets(o),s={};return n.i(i.c)(a,function(n,o){null!==n&&(s[o]=updateSegmentGroup(e.children[o],t,n))}),n.i(i.c)(e.children,function(e,t){void 0===a[t]&&(s[t]=e)}),new r.a(e.segments,s)}function prefixedWith(e,t,n){for(var o=0,r=t,i={match:!1,lastIndex:0};r<e.segments.length;){if(o>=n.length)return i;var a=e.segments[r],s=getPath(n[o]),u=o<n.length-1?n[o+1]:null;if(s&&u&&"object"==typeof u&&void 0===u.outlets){if(!compare(s,u,a))return i;o+=2}else{if(!compare(s,{},a))return i;o++}r++}return{match:!0,lastIndex:o}}function createNewSegmentGroup(e,t,n){for(var o=e.segments.slice(0,t),i=0;i<n.length;){if("object"==typeof n[i]&&void 0!==n[i].outlets){var a=createNewSegmentChldren(n[i].outlets);return new r.a(o,a)}if(0===i&&isMatrixParams(n[0])){var s=e.segments[t];o.push(new r.c(s.path,n[0])),i++}else{var u=getPath(n[i]),l=i<n.length-1?n[i+1]:null;u&&l&&isMatrixParams(l)?(o.push(new r.c(u,stringify(l))),i+=2):(o.push(new r.c(u,{})),i++)}}return new r.a(o,{})}function createNewSegmentChldren(e){var t={};return n.i(i.c)(e,function(e,n){null!==e&&(t[n]=createNewSegmentGroup(new r.a([],{}),0,e))}),t}function stringify(e){var t={};return n.i(i.c)(e,function(e,n){return t[n]=""+e}),t}function compare(e,t,o){return e==o.path&&n.i(i.d)(t,o.parameters)}var o=n(58),r=n(91),i=n(59);t.a=createUrlTree;var a=function(){function NormalizedNavigationCommands(e,t,n){this.isAbsolute=e,this.numberOfDoubleDots=t,this.commands=n}return NormalizedNavigationCommands}(),s=function(){function Position(e,t,n){this.segmentGroup=e,this.processChildren=t,this.index=n}return Position}()},function(e,t,n){"use strict";var o=n(288),r=n(424),i=n(425),a=n(198),s=n(426),u=n(200),l=n(113),c=n(58),d=n(91),p=n(697);n.d(t,"a",function(){return o.a}),n.d(t,"b",function(){return o.b}),n.d(t,"c",function(){return r.a}),n.d(t,"d",function(){return i.a}),n.d(t,"e",function(){return a.c}),n.d(t,"f",function(){return a.d}),n.d(t,"g",function(){return a.e}),n.d(t,"h",function(){return a.a}),n.d(t,"i",function(){return a.f}),n.d(t,"j",function(){return a.b}),n.d(t,"k",function(){return s.b}),n.d(t,"l",function(){return s.c}),n.d(t,"m",function(){return u.a}),n.d(t,"n",function(){return l.b}),n.d(t,"o",function(){return l.d}),n.d(t,"p",function(){return l.a}),n.d(t,"q",function(){return l.e}),n.d(t,"r",function(){return c.a}),n.d(t,"s",function(){return d.h}),n.d(t,"t",function(){return d.c}),n.d(t,"u",function(){return d.g}),n.d(t,"v",function(){return d.b}),n.d(t,"w",function(){return p.a})},function(e,t,n){"use strict";var o=n(199),r=n(426),i=n(59);n.d(t,"a",function(){return a});var a={ROUTER_PROVIDERS:r.a,ROUTES:o.c,flatten:i.a}},function(e,t,n){"use strict";function recognize(e,t,n,o){return new p(e,t,n,o).recognize()}function sortActivatedRouteSnapshots(e){e.sort(function(e,t){return e.value.outlet===a.a?-1:t.value.outlet===a.a?1:e.value.outlet.localeCompare(t.value.outlet)})}function getChildConfig(e){return e.children?e.children:e.loadChildren?e._loadedConfig.routes:[]}function match(e,t,o,r){if(""===t.path){if("full"===t.pathMatch&&(e.hasChildren()||o.length>0))throw new c;var i=r?r.params:{};return{consumedSegments:[],lastChild:0,parameters:i}}for(var a=t.path,s=a.split("/"),l={},d=[],p=0,g=0;g<s.length;++g){if(p>=o.length)throw new c;var f=o[p],h=s[g],m=h.startsWith(":");if(!m&&h!==f.path)throw new c;m&&(l[h.substring(1)]=f.path),d.push(f),p++}if("full"===t.pathMatch&&(e.hasChildren()||p<o.length))throw new c;var y=n.i(u.g)(l,d[d.length-1].parameters);return{consumedSegments:d,lastChild:p,parameters:y}}function checkOutletNameUniqueness(e){var t={};e.forEach(function(e){var n=t[e.value.outlet];if(n){var o=n.url.map(function(e){return e.toString()}).join("/"),r=e.value.url.map(function(e){return e.toString()}).join("/");throw new Error("Two segments cannot have the same outlet name: '"+o+"' and '"+r+"'.")}t[e.value.outlet]=e.value})}function getSourceSegmentGroup(e){for(var t=e;t._sourceSegment;)t=t._sourceSegment;return t}function getPathIndexShift(e){for(var t=e,n=t._segmentIndexShift?t._segmentIndexShift:0;t._sourceSegment;)t=t._sourceSegment,n+=t._segmentIndexShift?t._segmentIndexShift:0;return n-1}function split(e,t,n,o){if(n.length>0&&containsEmptyPathMatchesWithNamedOutlets(e,n,o)){var r=new s.a(t,createChildrenForEmptyPaths(e,t,o,new s.a(n,e.children)));return r._sourceSegment=e,r._segmentIndexShift=t.length,{segmentGroup:r,slicedSegments:[]}}if(0===n.length&&containsEmptyPathMatches(e,n,o)){var r=new s.a(e.segments,addEmptyPathsToChildrenIfNeeded(e,n,o,e.children));return r._sourceSegment=e,r._segmentIndexShift=t.length,{segmentGroup:r,slicedSegments:n}}var r=new s.a(e.segments,e.children);return r._sourceSegment=e,r._segmentIndexShift=t.length,{segmentGroup:r,slicedSegments:n}}function addEmptyPathsToChildrenIfNeeded(e,t,o,r){for(var i={},a=0,l=o;a<l.length;a++){var c=l[a];if(emptyPathMatch(e,t,c)&&!r[getOutlet(c)]){var d=new s.a([],{});d._sourceSegment=e,d._segmentIndexShift=e.segments.length,i[getOutlet(c)]=d}}return n.i(u.g)(r,i)}function createChildrenForEmptyPaths(e,t,n,o){var r={};r[a.a]=o,o._sourceSegment=e,o._segmentIndexShift=t.length;for(var i=0,u=n;i<u.length;i++){var l=u[i];if(""===l.path&&getOutlet(l)!==a.a){var c=new s.a([],{});c._sourceSegment=e,c._segmentIndexShift=t.length,r[getOutlet(l)]=c}}return r}function containsEmptyPathMatchesWithNamedOutlets(e,t,n){return n.filter(function(n){return emptyPathMatch(e,t,n)&&getOutlet(n)!==a.a}).length>0}function containsEmptyPathMatches(e,t,n){return n.filter(function(n){return emptyPathMatch(e,t,n)}).length>0}function emptyPathMatch(e,t,n){return(!(e.hasChildren()||t.length>0)||"full"!==n.pathMatch)&&(""===n.path&&void 0===n.redirectTo)}function getOutlet(e){return e.outlet?e.outlet:a.a}function getData(e){return e.data?e.data:{}}function getResolve(e){return e.resolve?e.resolve:{}}var o=n(0),r=(n.n(o),n(117)),i=(n.n(r),n(113)),a=n(58),s=n(91),u=n(59),l=n(289);t.a=recognize;var c=function(){function NoMatch(){}return NoMatch}(),d=function(){function InheritedFromParent(e,t,n,o,r){this.parent=e,this.snapshot=t,this.params=n,this.data=o,this.resolve=r}return Object.defineProperty(InheritedFromParent.prototype,"allParams",{get:function(){return this.parent?n.i(u.g)(this.parent.allParams,this.params):this.params},enumerable:!0,configurable:!0}),Object.defineProperty(InheritedFromParent.prototype,"allData",{get:function(){return this.parent?n.i(u.g)(this.parent.allData,this.data):this.data},enumerable:!0,configurable:!0}),InheritedFromParent.empty=function(e){return new InheritedFromParent(null,e,{},{},new i.c(null,{}))},InheritedFromParent}(),p=function(){function Recognizer(e,t,n,o){this.rootComponentType=e,this.config=t,this.urlTree=n,this.url=o}return Recognizer.prototype.recognize=function(){try{var e=split(this.urlTree.root,[],[],this.config).segmentGroup,t=this.processSegmentGroup(this.config,e,d.empty(null),a.a),s=new i.d([],Object.freeze({}),Object.freeze(this.urlTree.queryParams),this.urlTree.fragment,{},a.a,this.rootComponentType,null,this.urlTree.root,(-1),i.c.empty),u=new l.b(s,t);return n.i(r.of)(new i.e(this.url,u))}catch(c){return new o.Observable(function(e){return e.error(c)})}},Recognizer.prototype.processSegmentGroup=function(e,t,n,o){return 0===t.segments.length&&t.hasChildren()?this.processChildren(e,t,n):this.processSegment(e,t,0,t.segments,n,o)},Recognizer.prototype.processChildren=function(e,t,o){var r=this,i=n.i(s.d)(t,function(t,n){return r.processSegmentGroup(e,t,o,n)});return checkOutletNameUniqueness(i),sortActivatedRouteSnapshots(i),i},Recognizer.prototype.processSegment=function(e,t,n,o,r,i){for(var a=0,s=e;a<s.length;a++){var u=s[a];try{return this.processSegmentAgainstRoute(u,t,n,o,r,i)}catch(l){if(!(l instanceof c))throw l}}throw new c},Recognizer.prototype.processSegmentAgainstRoute=function(e,t,o,r,s,p){if(e.redirectTo)throw new c;if((e.outlet?e.outlet:a.a)!==p)throw new c;var g=new i.c(s.resolve,getResolve(e));if("**"===e.path){var f=r.length>0?n.i(u.i)(r).parameters:{},h=new i.d(r,Object.freeze(n.i(u.g)(s.allParams,f)),Object.freeze(this.urlTree.queryParams),this.urlTree.fragment,n.i(u.g)(s.allData,getData(e)),p,e.component,e,getSourceSegmentGroup(t),getPathIndexShift(t)+r.length,g);return[new l.b(h,[])]}var m=match(t,e,r,s.snapshot),y=m.consumedSegments,b=m.parameters,v=m.lastChild,_=r.slice(v),E=getChildConfig(e),T=split(t,y,_,E),S=T.segmentGroup,A=T.slicedSegments,M=new i.d(y,Object.freeze(n.i(u.g)(s.allParams,b)),Object.freeze(this.urlTree.queryParams),this.urlTree.fragment,n.i(u.g)(s.allData,getData(e)),p,e.component,e,getSourceSegmentGroup(t),getPathIndexShift(t)+y.length,g),C=e.component?d.empty(M):new d(s,M,b,getData(e),g);if(0===A.length&&S.hasChildren()){var k=this.processChildren(E,S,C);return[new l.b(M,k)]}if(0===E.length&&0===A.length)return[new l.b(M,[])];var k=this.processSegment(E,S,o+v,A,C,a.a);return[new l.b(M,k)]},Recognizer}()},function(e,t){"use strict";function bootloader(e){"complete"===document.readyState?e():document.addEventListener("DOMContentLoaded",e)}function createNewHosts(e){var t=e.map(function(e){var t=document.createElement(e.tagName),n=t.style.display;t.style.display="none";var o=e.parentNode;return o.insertBefore(t,e),{currentDisplay:n,newNode:t}});return function(){t.forEach(function(e){e.newNode.style.display=e.currentDisplay,e.newNode=null,e.currentDisplay=null})}}function removeNgStyles(){Array.prototype.slice.call(document.head.querySelectorAll("style"),0).filter(function(e){return e.innerText.indexOf("_ng")!==-1}).map(function(e){return e.remove()})}function getInputValues(){var e=document.querySelectorAll("input");return Array.prototype.slice.call(e).map(function(e){return e.value})}function setInputValues(e){var t=document.querySelectorAll("input");e&&t.length===e.length&&e.forEach(function(e,n){var o=t[n];o.value=e,o.dispatchEvent(new CustomEvent("input",{detail:o.value}))})}function createInputTransfer(){var e=getInputValues();return function(){setInputValues(e)}}t.bootloader=bootloader,t.createNewHosts=createNewHosts,t.removeNgStyles=removeNgStyles,t.getInputValues=getInputValues,t.setInputValues=setInputValues,t.createInputTransfer=createInputTransfer},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,n){"use strict";var o=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},r=n(3),i=function(e){function InnerSubscriber(t,n,o){e.call(this),this.parent=t,this.outerValue=n,this.outerIndex=o,this.index=0}return o(InnerSubscriber,e),InnerSubscriber.prototype._next=function(e){this.parent.notifyNext(this.outerValue,e,this.outerIndex,this.index++,this)},InnerSubscriber.prototype._error=function(e){this.parent.notifyError(e,this),this.unsubscribe()},InnerSubscriber.prototype._complete=function(){this.parent.notifyComplete(this),this.unsubscribe()},InnerSubscriber}(r.Subscriber);t.InnerSubscriber=i},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,n){"use strict";var o=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},r=n(0),i=n(319),a=n(84),s=function(e){function ArrayLikeObservable(t,n){e.call(this),this.arrayLike=t,this.scheduler=n,n||1!==t.length||(this._isScalar=!0,this.value=t[0])}return o(ArrayLikeObservable,e),ArrayLikeObservable.create=function(e,t){var n=e.length;return 0===n?new a.EmptyObservable:1===n?new i.ScalarObservable(e[0],t):new ArrayLikeObservable(e,t)},ArrayLikeObservable.dispatch=function(e){var t=e.arrayLike,n=e.index,o=e.length,r=e.subscriber;if(!r.closed){if(n>=o)return void r.complete();r.next(t[n]),e.index=n+1,this.schedule(e)}},ArrayLikeObservable.prototype._subscribe=function(e){var t=0,n=this,o=n.arrayLike,r=n.scheduler,i=o.length;if(r)return r.schedule(ArrayLikeObservable.dispatch,0,{arrayLike:o,index:t,length:i,subscriber:e});for(var a=0;a<i&&!e.closed;a++)e.next(o[a]);e.complete()},ArrayLikeObservable}(r.Observable);t.ArrayLikeObservable=s},,,,,,,,,,,function(e,t,n){"use strict";function getIterator(e){var t=e[a.iterator];if(!t&&"string"==typeof e)return new u(e);if(!t&&void 0!==e.length)return new l(e);if(!t)throw new TypeError("object is not iterable");return e[a.iterator]()}function toLength(e){var t=+e.length;return isNaN(t)?0:0!==t&&numberIsFinite(t)?(t=sign(t)*Math.floor(Math.abs(t)),t<=0?0:t>c?c:t):t}function numberIsFinite(e){return"number"==typeof e&&r.root.isFinite(e)}function sign(e){var t=+e;return 0===t?t:isNaN(t)?t:t<0?-1:1;
}var o=this&&this.__extends||function(e,t){function __(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)},r=n(26),i=n(0),a=n(155),s=function(e){function IteratorObservable(t,n){if(e.call(this),this.scheduler=n,null==t)throw new Error("iterator cannot be null.");this.iterator=getIterator(t)}return o(IteratorObservable,e),IteratorObservable.create=function(e,t){return new IteratorObservable(e,t)},IteratorObservable.dispatch=function(e){var t=e.index,n=e.hasError,o=e.iterator,r=e.subscriber;if(n)return void r.error(e.error);var i=o.next();return i.done?void r.complete():(r.next(i.value),e.index=t+1,r.closed?void("function"==typeof o.return&&o.return()):void this.schedule(e))},IteratorObservable.prototype._subscribe=function(e){var t=0,n=this,o=n.iterator,r=n.scheduler;if(r)return r.schedule(IteratorObservable.dispatch,0,{index:t,iterator:o,subscriber:e});for(;;){var i=o.next();if(i.done){e.complete();break}if(e.next(i.value),e.closed){"function"==typeof o.return&&o.return();break}}},IteratorObservable}(i.Observable);t.IteratorObservable=s;var u=function(){function StringIterator(e,t,n){void 0===t&&(t=0),void 0===n&&(n=e.length),this.str=e,this.idx=t,this.len=n}return StringIterator.prototype[a.iterator]=function(){return this},StringIterator.prototype.next=function(){return this.idx<this.len?{done:!1,value:this.str.charAt(this.idx++)}:{done:!0,value:void 0}},StringIterator}(),l=function(){function ArrayIterator(e,t,n){void 0===t&&(t=0),void 0===n&&(n=toLength(e)),this.arr=e,this.idx=t,this.len=n}return ArrayIterator.prototype[a.iterator]=function(){return this},ArrayIterator.prototype.next=function(){return this.idx<this.len?{done:!1,value:this.arr[this.idx++]}:{done:!0,value:void 0}},ArrayIterator}(),c=Math.pow(2,53)-1},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,n){"use strict";function toSubscriber(e,t,n){if(e){if(e instanceof o.Subscriber)return e;if(e[r.rxSubscriber])return e[r.rxSubscriber]()}return e||t||n?new o.Subscriber(e,t,n):new o.Subscriber(i.empty)}var o=n(3),r=n(228),i=n(490);t.toSubscriber=toSubscriber},,,,,,,,function(e,t,n){"use strict";n(103),n(234),n(1),n(68),n(330),n(233),n(28),n(159),n(69),n(331),n(547),n(548),n(549),n(550),n(551)}],[1198]);